diff --git a/T1_TC_ZH_V01_20251128/FLASHDOWN/APT32F102_FLASHDOWN.elf b/T1_TC_ZH_V01_20251128/FLASHDOWN/APT32F102_FLASHDOWN.elf new file mode 100644 index 0000000..1472d1d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/FLASHDOWN/APT32F102_FLASHDOWN.elf differ diff --git a/T1_TC_ZH_V01_20251128/README.md b/T1_TC_ZH_V01_20251128/README.md new file mode 100644 index 0000000..9f0acd1 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/README.md @@ -0,0 +1,237 @@ +# 版本记录: + +## 2025-11-27 15: 51 叶阳文 + +``` + 对接中弘线控器网关(温控器),初步完成。 + 软件版本:V01 + 硬件版本:BLV_T1_RS485_V02 校验码:0xCABE9EDC +``` + + + +## 2025-08-15 14: 32 叶阳文 + +``` + 发布文件:T1_TC_34650_V06_20250815.ihex 校验码:0x24451505 + 软件版本:V06 + 硬件版本:T1-TC-34650-V02 + 修改点: + 1、增加设置页面9:-老化测试页面,设置后温控器3S切换一次除室温外的所有状态。 +``` + +​ + +## 2025-05-22 叶阳文 + +``` + 发布文件:T1_TC_34650_V05_202505211650.ihex 校验码:0x58963904 + 软件版本:V05 + 硬件版本:V02 + 修改点: 1、修改触摸按键、ADC的电压参考源为芯片电源VDD。 + 2、修改ADC采样换算电压公式。 +``` + + + +## 2025-05-16 叶阳文 + +``` + 发布文件:T1_TC_34650_V04_202505161010.ihex 校验码:0x0092AE1C + 软件版本:V04 + 硬件版本:V02 + 修改点: + 1、未使用bootload。 + 2、使用新触摸库lib_102TKey_f_1_18B_240629。 + 3、触摸参数见蓝板弱电温控器触摸值测试_20250516 + 4、将所有发送全部改为有总线防冲撞机制的发送。 + +设置页面功能描述(长按温度加、温度减): + 页面1: - 温控管制设置 0-冷热阀不分离 1-冷热阀分离 2-无阀 + 页面2: - 设置温差 + 页面3: - 设置背光延时关(1:开启 0:关闭) 485版本默认关闭 无线版本默认打开 + 页面4: - 设置按键灵敏度 (0:低灵敏度 1:中灵敏度 2:高灵敏度) 默认中灵敏度 + 页面5: - 设置本机地址 0~254 + 页面6: - 设置温度显示单位,0x00 为摄氏度显示,0x01 为华氏度显示; + 页面7: - 设置LCD屏幕文本显示,0x00 中英文显示,0x01 中文显示,0x02 英文显示; + 页面8: - 查询软件版本号 +``` + + + +## 2025-05-07 + +``` + 软件版本号:V04 + 1、修改触摸参数,将TK_EC_LEVEL调整为TK_EC_3_6V。 + 2、添加bootload的APP部分程序。 +``` + + + +## 2025-04-22 13: 42 叶阳文 + +``` + 软件版本号:V03 + 1、将所有发送全部改为有总线防冲撞机制的发送。 + 2、当前触摸底层库为lib_102TKey_f_1_18B_240629.a。 + 3、总线空闲判断放在1ms定时器中。 +``` + + + +## 2025-04-11 10: 22 叶阳文 + +``` + 1、eeprom地址范围:0x10000000~0x100007FF。 + 2、eeprom地址按页分配,每页64Byte,不要跨页分配 + 3、设备固件的eeprom使用起始起始地址改为EEPROM_ParaInfo_Address:0x10000100 +``` + + + +## 2025-04-10 + +``` + 1、优化防冲撞机制 + 2、修改主动模式数据上报 +``` + + + +## 2025-03-31 17: 44 + +``` + 1、添加总线防冲撞机制,中断判断总线空闲繁忙状态。 + 2、修改软件触摸底层库为lib_102TKey_f_1_18B_240629.a,调节触摸灵敏度。 + 3、修改触摸环境值打印的数据。 +``` + + + +## 2025-02-26 + +``` + 软件版本号:V02 + 1、修改风速调节,取消风速停档位。 + 2、添加过零信号触发中断的控制继电器机制。 +``` + + + +## 2025-02-25 + +``` + 软件版本:V02 + 1、修改ADC电压采样的时间间隔错误,原先误把System_1ms用成了System_100us。 + 2、温度采样改为1s采样一次,温度采集数组改为储存两秒内数据。 + 3、将主动发送的超时发送改为超时丢弃。 + 4、修改风速调节,取消风速停档位。 +``` + + + +## 2025-01-18 + +``` + 设置页面功能描述:页面1 - 温控管制设置 0-冷热阀不分离 1-冷热阀分离 2-无阀 + 页面2 - 设置温差 + 页面3 - 设置背光延时关(1:开启 0:关闭) 485版本默认关闭 无线版本默认打开 + 页面4 - 设置按键灵敏度 (0:低灵敏度 1:中灵敏度 2:高灵敏度) 默认中灵敏度 + 页面5:- 设置本机地址 0~254 + 页面6:- 设置温度显示单位,0x00 为摄氏度显示,0x01 为华氏度显示; + 页面7:- 设置LCD屏幕文本显示,0x00 中英文显示,0x01 中文显示,0x02 英文显示; + 页面8:- 查询软件版本号 + + +增加功能:1、增加设置页面6,设置温度显示单位,0x00 为摄氏度显示,0x01 为华氏度显示; + 2、增加设置页面7,设置LCD屏幕文本显示,0x00 中英文显示,0x01 中文显示,0x02 英文显示; + 3、增加LCD背光颜色与模式的关联,制冷模式 背光为渐变蓝色,制热模式 背光为渐变红色,通风模式 背光为白色; + 4、增加页面8,查询软件版本号功能 +``` + + + +## 2025-01-16 + +``` + 1、修改为强弱电兼容的大屏温控器 + 2、修改ADC通道引脚 +``` + + + +## 2024-12-16 王佩东 + +``` + 1、添加485端口设置命令:轮询、主动 + 2、485总线检测 数据重发机制 +``` + + + +## 2024-12-05 AC_T1_ + +``` + 设置页面功能描述:页面1 - 温控管制设置 0-冷热阀不分离 1-冷热阀分离 2-无阀 + 页面2 - 设置温差 + 页面3 - 设置背光延时关(1:开启 0:关闭) 485版本默认关闭 无线版本默认打开 + 页面4 - 设置按键灵敏度 (0:低灵敏度 1:中灵敏度 2:高灵敏度) 默认中灵敏度 + 页面5:- 设置本机地址 1~254 + 无阀风机继电器逻辑:1、不配置阀继电器 只配置高中低继电器 + 2、送风模式下风机不启用 + 3、制冷制热模式下 低中高风速到达一定温度后(温度判断标准和非自动风标准风机继电器开启关闭一致)风机继电器关闭 或开启 自动风速下到达一定温度后风机继电器会自动切换最终关闭 + 温控器温度范围改为16-32℃ +``` + + + +## 2024-07-04 AC_T1_V01 + + 初次发布 + + 逻辑功能描述:1、原T1温控器基本功能 + 2、识别硬件485或RF泛至联模块 + + 设置页面功能描述:页面1 - 温控管制设置 0-冷热阀不分离 1-冷热阀分离 + 页面2 - 设置温差 + 页面3 - 设置背光延时关(1:开启 0:关闭) 默认关闭 + 页面4 - 设置按键灵敏度 (0:低灵敏度 1:中灵敏度 2:高灵敏度) 默认中灵敏度 + 页面5:- 设置本机地址 1~254 + + + 串口设置灵敏度通讯协议 + + AF 00 08 4C 01 00 01 FA //设置灵敏度 - 低挡位 + AF 00 08 4B 01 00 02 FA //设置灵敏度 - 中挡位 + AF 00 08 4A 01 00 03 FA //设置灵敏度 - 高挡位 + + AF 00 24 61 01 01 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 00 8C 00 8C 00 8C 00 8C 00 8C 00 8C 06 05 28 14 08 FA //设置1挡位参数 - 错误参数 + AF 00 24 61 01 01 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 8C 00 8C 00 8C 00 8C 00 8C 00 8C 00 06 05 28 14 08 FA //设置1挡位参数 - 正确参数 低灵敏度 + AF 00 24 50 01 02 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 64 00 64 00 64 00 64 00 64 00 64 00 06 05 28 14 08 FA //设置2挡位参数 - 正确参数 中灵敏度 + AF 00 24 3F 01 03 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 3C 00 3C 00 3C 00 3C 00 3C 00 3C 00 06 05 28 14 08 FA //设置3挡位参数 - 正确参数 高灵敏度 + AF 00 24 63 01 03 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 30 00 30 00 30 00 3C 00 3C 00 3C 00 06 05 28 14 08 FA //设置3挡位参数 - 正确参数 高灵敏度 + + AF 00 07 4D 02 00 FA //读取当前使用参数及挡位 + AF 00 07 4C 02 01 FA //读取1挡位 参数 + AF 00 07 4B 02 02 FA //读取2挡位 参数 + AF 00 07 4A 02 03 FA //读取3挡位 参数 + + //设备读取回复内容 + AF 00 24 60 02 01 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 8C 00 8C 00 8C 00 8C 00 8C 00 8C 00 06 05 28 14 08 FA + AF 00 24 4F 02 02 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 64 00 64 00 64 00 64 00 64 00 64 00 06 05 28 14 08 FA + AF 00 24 3E 02 03 B4 00 B4 00 B4 00 B4 00 B4 00 B4 00 3C 00 3C 00 3C 00 3C 00 3C 00 3C 00 06 05 28 14 08 FA + + AF 00 07 4B 03 01 FA //开启调试 触摸差值打印 + AF 00 07 4A 03 02 FA //关闭调试 触摸差值打印 + + AF 00 07 4B 04 00 FA //读取环境值 + AF 00 1E 30 04 13 BB 13 BB 19 0A 19 0B 16 97 16 98 12 19 12 1B 1A D8 1A D6 12 B4 12 B4 FA //回复参数 + + AF 00 07 4A 05 00 FA //复位命令 + + + + +​ +​ \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.2F11821BA8917D3C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.2F11821BA8917D3C.idx new file mode 100644 index 0000000..1731963 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.2F11821BA8917D3C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.77C227FE2F61D80A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.77C227FE2F61D80A.idx new file mode 100644 index 0000000..1b17343 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.77C227FE2F61D80A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.84CDAD8B26FD7EB6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.84CDAD8B26FD7EB6.idx new file mode 100644 index 0000000..09788c2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.84CDAD8B26FD7EB6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.9B75C910986A052D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.9B75C910986A052D.idx new file mode 100644 index 0000000..5bd8acb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.9B75C910986A052D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.A63833948EE24B45.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.A63833948EE24B45.idx new file mode 100644 index 0000000..9360349 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.c.A63833948EE24B45.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.1C28D3BDF7478E78.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.1C28D3BDF7478E78.idx new file mode 100644 index 0000000..f0d1a3e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.1C28D3BDF7478E78.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.2FD2133081399176.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.2FD2133081399176.idx new file mode 100644 index 0000000..c6a9d77 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.2FD2133081399176.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.52750541BACFEE88.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.52750541BACFEE88.idx new file mode 100644 index 0000000..56499f5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.52750541BACFEE88.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.57F5AAB966E0BC36.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.57F5AAB966E0BC36.idx new file mode 100644 index 0000000..c755e9e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.57F5AAB966E0BC36.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.71FB3DEEB3A6F82D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.71FB3DEEB3A6F82D.idx new file mode 100644 index 0000000..831ab1e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.71FB3DEEB3A6F82D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.B214839C2A6EEC03.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.B214839C2A6EEC03.idx new file mode 100644 index 0000000..827b6d9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/Bootload_fun.h.B214839C2A6EEC03.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.0A0AA772D7C39544.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.0A0AA772D7C39544.idx new file mode 100644 index 0000000..4a23be6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.0A0AA772D7C39544.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.0AAD42579913AD7B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.0AAD42579913AD7B.idx new file mode 100644 index 0000000..67a62fc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.0AAD42579913AD7B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.25D3FDE9CB6F6FF1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.25D3FDE9CB6F6FF1.idx new file mode 100644 index 0000000..f56849a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.25D3FDE9CB6F6FF1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.377BCDA3E139A368.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.377BCDA3E139A368.idx new file mode 100644 index 0000000..2f78543 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.377BCDA3E139A368.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.41D450460CD174C1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.41D450460CD174C1.idx new file mode 100644 index 0000000..d08c2bc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.41D450460CD174C1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.6D533211A3818F14.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.6D533211A3818F14.idx new file mode 100644 index 0000000..baabe3b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.6D533211A3818F14.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.86C80D14E78E52B0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.86C80D14E78E52B0.idx new file mode 100644 index 0000000..ff33e54 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.86C80D14E78E52B0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.A6133BF0C284C5E5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.A6133BF0C284C5E5.idx new file mode 100644 index 0000000..b43fb4a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.A6133BF0C284C5E5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.B2CA97ECE7879722.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.B2CA97ECE7879722.idx new file mode 100644 index 0000000..ccef03d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.B2CA97ECE7879722.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.DA35AE4B13B3F2AD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.DA35AE4B13B3F2AD.idx new file mode 100644 index 0000000..2e6b810 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.DA35AE4B13B3F2AD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.E7229AD5E7E32DBA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.E7229AD5E7E32DBA.idx new file mode 100644 index 0000000..bc0104b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.E7229AD5E7E32DBA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.F772524A2DC8278A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.F772524A2DC8278A.idx new file mode 100644 index 0000000..b28c01c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.c.F772524A2DC8278A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.235EEDE179E75BBA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.235EEDE179E75BBA.idx new file mode 100644 index 0000000..62042b0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.235EEDE179E75BBA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.273D1CFC55ED5A81.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.273D1CFC55ED5A81.idx new file mode 100644 index 0000000..db36d08 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.273D1CFC55ED5A81.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.3254F1E191D4AA5C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.3254F1E191D4AA5C.idx new file mode 100644 index 0000000..45736c3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.3254F1E191D4AA5C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.5E121E4DC3D70969.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.5E121E4DC3D70969.idx new file mode 100644 index 0000000..77843b8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.5E121E4DC3D70969.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.6F6F34113A5DEFFB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.6F6F34113A5DEFFB.idx new file mode 100644 index 0000000..350b26d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.6F6F34113A5DEFFB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.9538F48F4916F6FE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.9538F48F4916F6FE.idx new file mode 100644 index 0000000..f724a99 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.9538F48F4916F6FE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.B23D4EA06B3D3673.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.B23D4EA06B3D3673.idx new file mode 100644 index 0000000..ae28966 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.B23D4EA06B3D3673.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.C114AEDD4BB7422A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.C114AEDD4BB7422A.idx new file mode 100644 index 0000000..50649b6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.C114AEDD4BB7422A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.DE22A6DCB2CF4217.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.DE22A6DCB2CF4217.idx new file mode 100644 index 0000000..277fa11 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.DE22A6DCB2CF4217.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.E36EDC8715EF56E3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.E36EDC8715EF56E3.idx new file mode 100644 index 0000000..1e39172 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.E36EDC8715EF56E3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.E5C561A895A6E85C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.E5C561A895A6E85C.idx new file mode 100644 index 0000000..815dcc1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.E5C561A895A6E85C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.F51D3FB0A3D808CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.F51D3FB0A3D808CB.idx new file mode 100644 index 0000000..57b1fb5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/adc.h.F51D3FB0A3D808CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx new file mode 100644 index 0000000..c99a7a3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx new file mode 100644 index 0000000..2242f68 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.148DCB3C625C9B5D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.148DCB3C625C9B5D.idx new file mode 100644 index 0000000..c1bc024 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.148DCB3C625C9B5D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.1BF7E88BD033FF1A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.1BF7E88BD033FF1A.idx new file mode 100644 index 0000000..f62edfd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.1BF7E88BD033FF1A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.2B958D270D55CF89.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.2B958D270D55CF89.idx new file mode 100644 index 0000000..46025ac Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.2B958D270D55CF89.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.5953A2BB39DD1C44.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.5953A2BB39DD1C44.idx new file mode 100644 index 0000000..7a14aac Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.5953A2BB39DD1C44.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.78ED501E2FA28AE7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.78ED501E2FA28AE7.idx new file mode 100644 index 0000000..31fbffb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.78ED501E2FA28AE7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.9AD8AE616721F146.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.9AD8AE616721F146.idx new file mode 100644 index 0000000..f882379 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.9AD8AE616721F146.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.A1D82B17B0E00AE5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.A1D82B17B0E00AE5.idx new file mode 100644 index 0000000..87a3a34 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.A1D82B17B0E00AE5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.B091CDF6A9C731D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.B091CDF6A9C731D6.idx new file mode 100644 index 0000000..50abf60 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.B091CDF6A9C731D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.B5D8CC4F2CBF6F6F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.B5D8CC4F2CBF6F6F.idx new file mode 100644 index 0000000..19f9439 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.B5D8CC4F2CBF6F6F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.C5ADA3CB78676253.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.C5ADA3CB78676253.idx new file mode 100644 index 0000000..c38681d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.C5ADA3CB78676253.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.C7E8DE9B91117CF7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.C7E8DE9B91117CF7.idx new file mode 100644 index 0000000..40fd5ca Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.C7E8DE9B91117CF7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.D18FD4F137043DD1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.D18FD4F137043DD1.idx new file mode 100644 index 0000000..b1e4696 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.D18FD4F137043DD1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.D8555F5DE22D0705.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.D8555F5DE22D0705.idx new file mode 100644 index 0000000..55cd301 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.c.D8555F5DE22D0705.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.58A8C0A47B96A9D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.58A8C0A47B96A9D6.idx new file mode 100644 index 0000000..bb8bac0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.58A8C0A47B96A9D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.711C268798BCC171.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.711C268798BCC171.idx new file mode 100644 index 0000000..69313c3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.711C268798BCC171.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.79F803ADAE09A4F4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.79F803ADAE09A4F4.idx new file mode 100644 index 0000000..31e2d8c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.79F803ADAE09A4F4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.7FAE67E541AFA87C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.7FAE67E541AFA87C.idx new file mode 100644 index 0000000..6e75c68 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.7FAE67E541AFA87C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.8313295AB9FA0966.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.8313295AB9FA0966.idx new file mode 100644 index 0000000..7b7a078 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.8313295AB9FA0966.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.8CD5360688AEF554.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.8CD5360688AEF554.idx new file mode 100644 index 0000000..286dc19 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.8CD5360688AEF554.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.951257B8D7DCAAC3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.951257B8D7DCAAC3.idx new file mode 100644 index 0000000..c619eec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.951257B8D7DCAAC3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.B78D00FFFDE52BED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.B78D00FFFDE52BED.idx new file mode 100644 index 0000000..7991e85 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.B78D00FFFDE52BED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.BBBF78B0B7B7BA48.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.BBBF78B0B7B7BA48.idx new file mode 100644 index 0000000..77b7bce Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.BBBF78B0B7B7BA48.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.CA1FEF77B5968205.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.CA1FEF77B5968205.idx new file mode 100644 index 0000000..a6cdd7c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.CA1FEF77B5968205.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.D7CB722D1B097F52.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.D7CB722D1B097F52.idx new file mode 100644 index 0000000..8eb8636 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.D7CB722D1B097F52.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.DAFD82E4A0DD10B7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.DAFD82E4A0DD10B7.idx new file mode 100644 index 0000000..86d34db Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.DAFD82E4A0DD10B7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.FCCED1E743B5D7E5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.FCCED1E743B5D7E5.idx new file mode 100644 index 0000000..f0247c4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102.h.FCCED1E743B5D7E5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.05D860E60EAE4890.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.05D860E60EAE4890.idx new file mode 100644 index 0000000..49ba754 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.05D860E60EAE4890.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2CC9D6BC8B8A6A4C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2CC9D6BC8B8A6A4C.idx new file mode 100644 index 0000000..839de97 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2CC9D6BC8B8A6A4C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.5963B9D646BB0420.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.5963B9D646BB0420.idx new file mode 100644 index 0000000..7244248 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.5963B9D646BB0420.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.6101A0F9EA3653DC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.6101A0F9EA3653DC.idx new file mode 100644 index 0000000..46e1ea5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.6101A0F9EA3653DC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.96930BA342DD96B0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.96930BA342DD96B0.idx new file mode 100644 index 0000000..b69275c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.96930BA342DD96B0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A27273620EBEA159.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A27273620EBEA159.idx new file mode 100644 index 0000000..4fe0634 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A27273620EBEA159.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.AF3D11860C772C42.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.AF3D11860C772C42.idx new file mode 100644 index 0000000..c598708 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.AF3D11860C772C42.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.B810207E441D5670.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.B810207E441D5670.idx new file mode 100644 index 0000000..b69f29f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.B810207E441D5670.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.B82350007F82E62D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.B82350007F82E62D.idx new file mode 100644 index 0000000..1eae6cb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.B82350007F82E62D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.C8394B954EC11609.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.C8394B954EC11609.idx new file mode 100644 index 0000000..6aef8e8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.C8394B954EC11609.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E3A94D4EC44EF1D9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E3A94D4EC44EF1D9.idx new file mode 100644 index 0000000..1bcd53d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E3A94D4EC44EF1D9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E9CA88839FA06455.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E9CA88839FA06455.idx new file mode 100644 index 0000000..8b14340 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E9CA88839FA06455.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.F388376F7E397B08.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.F388376F7E397B08.idx new file mode 100644 index 0000000..7ed4959 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.c.F388376F7E397B08.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0699D7FF6A382AF9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0699D7FF6A382AF9.idx new file mode 100644 index 0000000..68e230a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.0699D7FF6A382AF9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.16FDE04A709C56EE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.16FDE04A709C56EE.idx new file mode 100644 index 0000000..6394431 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.16FDE04A709C56EE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.29994125029E1A56.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.29994125029E1A56.idx new file mode 100644 index 0000000..84e855c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.29994125029E1A56.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.323A3EFFA3F14A07.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.323A3EFFA3F14A07.idx new file mode 100644 index 0000000..2f88187 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.323A3EFFA3F14A07.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.3D256548F8206E43.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.3D256548F8206E43.idx new file mode 100644 index 0000000..7b6fc2e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.3D256548F8206E43.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.3FB7805384AFDB84.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.3FB7805384AFDB84.idx new file mode 100644 index 0000000..728c977 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.3FB7805384AFDB84.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8F41FAE8D9FB3C17.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8F41FAE8D9FB3C17.idx new file mode 100644 index 0000000..405ab5d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8F41FAE8D9FB3C17.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A76A7C72466EE786.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A76A7C72466EE786.idx new file mode 100644 index 0000000..5676677 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A76A7C72466EE786.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A86473304FE332EC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A86473304FE332EC.idx new file mode 100644 index 0000000..b5e0b5c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A86473304FE332EC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AD82D18C9DA6BE43.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AD82D18C9DA6BE43.idx new file mode 100644 index 0000000..9bc8333 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AD82D18C9DA6BE43.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.CF27CF7470DD782C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.CF27CF7470DD782C.idx new file mode 100644 index 0000000..3580787 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.CF27CF7470DD782C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D6FC8AE830A57B4B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D6FC8AE830A57B4B.idx new file mode 100644 index 0000000..06effe9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D6FC8AE830A57B4B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.DC9EC91980FBD4A2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.DC9EC91980FBD4A2.idx new file mode 100644 index 0000000..d9078c7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_adc.h.DC9EC91980FBD4A2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.022B8690E134DE4E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.022B8690E134DE4E.idx new file mode 100644 index 0000000..2780ee8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.022B8690E134DE4E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.381FF5BCDB2AF402.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.381FF5BCDB2AF402.idx new file mode 100644 index 0000000..a862428 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.381FF5BCDB2AF402.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.393AAF77913EAA24.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.393AAF77913EAA24.idx new file mode 100644 index 0000000..9359faa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.393AAF77913EAA24.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4F01A30C7714F0A8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4F01A30C7714F0A8.idx new file mode 100644 index 0000000..e5d79a3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4F01A30C7714F0A8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4FF7A2045760BCDA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4FF7A2045760BCDA.idx new file mode 100644 index 0000000..319a9f4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4FF7A2045760BCDA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.71B92FEF0C1E09EC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.71B92FEF0C1E09EC.idx new file mode 100644 index 0000000..769c389 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.71B92FEF0C1E09EC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.76A5E87DA531F7BB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.76A5E87DA531F7BB.idx new file mode 100644 index 0000000..326a037 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.76A5E87DA531F7BB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7FE1F554CC6F7C9A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7FE1F554CC6F7C9A.idx new file mode 100644 index 0000000..5c059ec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7FE1F554CC6F7C9A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.950D8B7C75073E36.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.950D8B7C75073E36.idx new file mode 100644 index 0000000..09eb284 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.950D8B7C75073E36.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.97A1AF3D9912FA66.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.97A1AF3D9912FA66.idx new file mode 100644 index 0000000..4aa3a8c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.97A1AF3D9912FA66.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.9852FCEBB659784F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.9852FCEBB659784F.idx new file mode 100644 index 0000000..d344933 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.9852FCEBB659784F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E39F6D4F7166575A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E39F6D4F7166575A.idx new file mode 100644 index 0000000..357959a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E39F6D4F7166575A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E76A71E82DE65BDC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E76A71E82DE65BDC.idx new file mode 100644 index 0000000..bb1caf6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E76A71E82DE65BDC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.05F1D61E439AF3D3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.05F1D61E439AF3D3.idx new file mode 100644 index 0000000..0c2948a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.05F1D61E439AF3D3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.073BB1393F3BC4E6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.073BB1393F3BC4E6.idx new file mode 100644 index 0000000..1b13cc2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.073BB1393F3BC4E6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1B31B66951548CB6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1B31B66951548CB6.idx new file mode 100644 index 0000000..4de774b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1B31B66951548CB6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F13A90BC61FAC8F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F13A90BC61FAC8F.idx new file mode 100644 index 0000000..9abf429 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F13A90BC61FAC8F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.267B0A736EE32201.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.267B0A736EE32201.idx new file mode 100644 index 0000000..fbd6035 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.267B0A736EE32201.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.2FCDD9F5385235CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.2FCDD9F5385235CB.idx new file mode 100644 index 0000000..d417bca Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.2FCDD9F5385235CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3527E0323C3A6C13.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3527E0323C3A6C13.idx new file mode 100644 index 0000000..d545ca7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3527E0323C3A6C13.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5B02027FAA67E6CA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5B02027FAA67E6CA.idx new file mode 100644 index 0000000..142d920 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5B02027FAA67E6CA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70B9116A9593EA85.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70B9116A9593EA85.idx new file mode 100644 index 0000000..b01f9bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70B9116A9593EA85.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.72E75FFE2F02CDA7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.72E75FFE2F02CDA7.idx new file mode 100644 index 0000000..bb2d0bd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.72E75FFE2F02CDA7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.854BFE4E9CEE2DDE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.854BFE4E9CEE2DDE.idx new file mode 100644 index 0000000..7c45680 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.854BFE4E9CEE2DDE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D9945E8128F173EC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D9945E8128F173EC.idx new file mode 100644 index 0000000..d4f443f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.D9945E8128F173EC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FB2481D7F963ABB1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FB2481D7F963ABB1.idx new file mode 100644 index 0000000..3615752 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_bt.h.FB2481D7F963ABB1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.27D1A30DC0013EE8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.27D1A30DC0013EE8.idx new file mode 100644 index 0000000..0499027 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.27D1A30DC0013EE8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.29EE33FCF451A18E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.29EE33FCF451A18E.idx new file mode 100644 index 0000000..1ad7224 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.29EE33FCF451A18E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.50F2E6E70732F479.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.50F2E6E70732F479.idx new file mode 100644 index 0000000..f6f8f0e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.50F2E6E70732F479.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.587CE12D9F1A7A09.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.587CE12D9F1A7A09.idx new file mode 100644 index 0000000..e35aaf3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.587CE12D9F1A7A09.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5D1591395CFFCECC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5D1591395CFFCECC.idx new file mode 100644 index 0000000..9cdfe59 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5D1591395CFFCECC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.6023C1115EE7CC1F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.6023C1115EE7CC1F.idx new file mode 100644 index 0000000..6a7203b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.6023C1115EE7CC1F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8138176A88FFEDCD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8138176A88FFEDCD.idx new file mode 100644 index 0000000..3af7621 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8138176A88FFEDCD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.82E32D00FAD1E965.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.82E32D00FAD1E965.idx new file mode 100644 index 0000000..a172eba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.82E32D00FAD1E965.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.92F13DA26DE2EEF5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.92F13DA26DE2EEF5.idx new file mode 100644 index 0000000..40e8069 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.92F13DA26DE2EEF5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A39332E4A5352ABB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A39332E4A5352ABB.idx new file mode 100644 index 0000000..e89fbc6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A39332E4A5352ABB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.C3F52FA8A4E30C41.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.C3F52FA8A4E30C41.idx new file mode 100644 index 0000000..872c5a3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.C3F52FA8A4E30C41.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.DA5D4A62F53763E7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.DA5D4A62F53763E7.idx new file mode 100644 index 0000000..d6dfbc0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.DA5D4A62F53763E7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E59D6347179A0FFB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E59D6347179A0FFB.idx new file mode 100644 index 0000000..b25a0b3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E59D6347179A0FFB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.097F2FAB22F18F97.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.097F2FAB22F18F97.idx new file mode 100644 index 0000000..f318248 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.097F2FAB22F18F97.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.1947CEB5CBA94E58.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.1947CEB5CBA94E58.idx new file mode 100644 index 0000000..412b3cb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.1947CEB5CBA94E58.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.1A2BD7E39C09143A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.1A2BD7E39C09143A.idx new file mode 100644 index 0000000..5728d7d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.1A2BD7E39C09143A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.31E65C55E66EF985.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.31E65C55E66EF985.idx new file mode 100644 index 0000000..9348866 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.31E65C55E66EF985.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D6C045275F5A43C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D6C045275F5A43C.idx new file mode 100644 index 0000000..4ee2b46 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D6C045275F5A43C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.4A26D6AE10112194.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.4A26D6AE10112194.idx new file mode 100644 index 0000000..882ead6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.4A26D6AE10112194.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7F8A5D8DF656A5D9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7F8A5D8DF656A5D9.idx new file mode 100644 index 0000000..1e63cfb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7F8A5D8DF656A5D9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.97E611C77C385BFF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.97E611C77C385BFF.idx new file mode 100644 index 0000000..05c66b5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.97E611C77C385BFF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.BF4FEA40EAF8477D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.BF4FEA40EAF8477D.idx new file mode 100644 index 0000000..38926cf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.BF4FEA40EAF8477D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.C6937C3A36F71AF9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.C6937C3A36F71AF9.idx new file mode 100644 index 0000000..fd43938 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.C6937C3A36F71AF9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.CF3C487E7EAEBE2E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.CF3C487E7EAEBE2E.idx new file mode 100644 index 0000000..fc9f1c5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.CF3C487E7EAEBE2E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.ED382AA02DD5363D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.ED382AA02DD5363D.idx new file mode 100644 index 0000000..4c8ec7e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.ED382AA02DD5363D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F45612F03D5E2225.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F45612F03D5E2225.idx new file mode 100644 index 0000000..a689ef2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F45612F03D5E2225.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.121C2C554BA92900.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.121C2C554BA92900.idx new file mode 100644 index 0000000..53bb369 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.121C2C554BA92900.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.16C7844F00E4D367.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.16C7844F00E4D367.idx new file mode 100644 index 0000000..9bd0203 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.16C7844F00E4D367.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.36D99A587932CD68.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.36D99A587932CD68.idx new file mode 100644 index 0000000..a605f86 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.36D99A587932CD68.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7AC8EA1C6227845C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7AC8EA1C6227845C.idx new file mode 100644 index 0000000..1878684 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7AC8EA1C6227845C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B083B65F4856627.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B083B65F4856627.idx new file mode 100644 index 0000000..3b09887 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B083B65F4856627.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.860682B62C9BB942.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.860682B62C9BB942.idx new file mode 100644 index 0000000..b9967b4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.860682B62C9BB942.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.A0A21BAA35BB7149.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.A0A21BAA35BB7149.idx new file mode 100644 index 0000000..2cd457f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.A0A21BAA35BB7149.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B55B059AB7A6C5CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B55B059AB7A6C5CB.idx new file mode 100644 index 0000000..91884de Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B55B059AB7A6C5CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C3193466A9A07812.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C3193466A9A07812.idx new file mode 100644 index 0000000..914e333 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C3193466A9A07812.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D24F74807706B985.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D24F74807706B985.idx new file mode 100644 index 0000000..ff81c28 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D24F74807706B985.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D93B77B82F3E836A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D93B77B82F3E836A.idx new file mode 100644 index 0000000..e19d061 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D93B77B82F3E836A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DA8DA2C913D23949.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DA8DA2C913D23949.idx new file mode 100644 index 0000000..7d22a59 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DA8DA2C913D23949.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F1D1656A40A54037.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F1D1656A40A54037.idx new file mode 100644 index 0000000..971ca43 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F1D1656A40A54037.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2D32802B8212699F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2D32802B8212699F.idx new file mode 100644 index 0000000..57b029f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2D32802B8212699F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.333C7944340DA8D4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.333C7944340DA8D4.idx new file mode 100644 index 0000000..4f1d447 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.333C7944340DA8D4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.37031C88CBDE0A97.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.37031C88CBDE0A97.idx new file mode 100644 index 0000000..a7f39bd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.37031C88CBDE0A97.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.4C3276EFEA590D6F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.4C3276EFEA590D6F.idx new file mode 100644 index 0000000..a5b6070 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.4C3276EFEA590D6F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.579FDF4E2A5B9A73.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.579FDF4E2A5B9A73.idx new file mode 100644 index 0000000..7c9aaea Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.579FDF4E2A5B9A73.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.640B4DA845C361F1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.640B4DA845C361F1.idx new file mode 100644 index 0000000..e9ada8d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.640B4DA845C361F1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.802E0134C97F76FC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.802E0134C97F76FC.idx new file mode 100644 index 0000000..9da5daa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.802E0134C97F76FC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8B094546FF195A45.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8B094546FF195A45.idx new file mode 100644 index 0000000..255a9a9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8B094546FF195A45.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8CA1B7BE00CBD345.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8CA1B7BE00CBD345.idx new file mode 100644 index 0000000..b5f63a2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.8CA1B7BE00CBD345.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9A33B2D6EAA04651.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9A33B2D6EAA04651.idx new file mode 100644 index 0000000..cf58cfc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9A33B2D6EAA04651.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.A4A8561F32CAD970.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.A4A8561F32CAD970.idx new file mode 100644 index 0000000..c40f30b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.A4A8561F32CAD970.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C68136B629D3A10B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C68136B629D3A10B.idx new file mode 100644 index 0000000..3445e73 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C68136B629D3A10B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.CC341B966CB19809.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.CC341B966CB19809.idx new file mode 100644 index 0000000..74ee169 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.c.CC341B966CB19809.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3A88D025E3942F71.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3A88D025E3942F71.idx new file mode 100644 index 0000000..b8c4ce7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3A88D025E3942F71.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.52AFC17831E75552.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.52AFC17831E75552.idx new file mode 100644 index 0000000..1ec8357 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.52AFC17831E75552.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5A1EF5CDCD14572D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5A1EF5CDCD14572D.idx new file mode 100644 index 0000000..6dca048 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5A1EF5CDCD14572D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.6EB4B99D049FDF5D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.6EB4B99D049FDF5D.idx new file mode 100644 index 0000000..c65572e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.6EB4B99D049FDF5D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.7AA6CCAC39A1FE9D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.7AA6CCAC39A1FE9D.idx new file mode 100644 index 0000000..a69469e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.7AA6CCAC39A1FE9D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.889575CD6FC198D2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.889575CD6FC198D2.idx new file mode 100644 index 0000000..a3792f8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.889575CD6FC198D2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.9452311D96ABFA87.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.9452311D96ABFA87.idx new file mode 100644 index 0000000..e1bf855 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.9452311D96ABFA87.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A7F5D68655A105F4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A7F5D68655A105F4.idx new file mode 100644 index 0000000..ad9ec84 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A7F5D68655A105F4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A95F1C8D70349F94.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A95F1C8D70349F94.idx new file mode 100644 index 0000000..09015b8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A95F1C8D70349F94.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C4A52FC58B3EBFB3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C4A52FC58B3EBFB3.idx new file mode 100644 index 0000000..eafa929 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C4A52FC58B3EBFB3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.DD996B7ED8D34ED5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.DD996B7ED8D34ED5.idx new file mode 100644 index 0000000..110ccdb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.DD996B7ED8D34ED5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.E99FF73836B27A1B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.E99FF73836B27A1B.idx new file mode 100644 index 0000000..204e93c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.E99FF73836B27A1B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F62A8BB2EBC8984A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F62A8BB2EBC8984A.idx new file mode 100644 index 0000000..01c5f95 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F62A8BB2EBC8984A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.24C455BD0CE65C8D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.24C455BD0CE65C8D.idx new file mode 100644 index 0000000..48d9706 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.24C455BD0CE65C8D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.3013D46C7805D4ED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.3013D46C7805D4ED.idx new file mode 100644 index 0000000..911c13a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.3013D46C7805D4ED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.53EDF9722B00AC4B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.53EDF9722B00AC4B.idx new file mode 100644 index 0000000..5ba73c1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.53EDF9722B00AC4B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.58BEE33F3262FAFE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.58BEE33F3262FAFE.idx new file mode 100644 index 0000000..a9eded7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.58BEE33F3262FAFE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5AE6A537E7FC2247.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5AE6A537E7FC2247.idx new file mode 100644 index 0000000..6c35b4f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5AE6A537E7FC2247.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.838F2F212077C914.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.838F2F212077C914.idx new file mode 100644 index 0000000..428d6c2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.838F2F212077C914.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.849BDCA2C4E46E5B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.849BDCA2C4E46E5B.idx new file mode 100644 index 0000000..17947ec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.849BDCA2C4E46E5B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.95242E74942FDE56.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.95242E74942FDE56.idx new file mode 100644 index 0000000..8614bba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.95242E74942FDE56.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.C51119BAF03C95D8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.C51119BAF03C95D8.idx new file mode 100644 index 0000000..38a6527 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.C51119BAF03C95D8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.CDE83AB6F5C1D42B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.CDE83AB6F5C1D42B.idx new file mode 100644 index 0000000..90466e1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.CDE83AB6F5C1D42B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D32845C97FCEB182.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D32845C97FCEB182.idx new file mode 100644 index 0000000..3f678c1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D32845C97FCEB182.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D5FA65C28095DCDE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D5FA65C28095DCDE.idx new file mode 100644 index 0000000..245f7bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D5FA65C28095DCDE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D9DA01435C3A38C3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D9DA01435C3A38C3.idx new file mode 100644 index 0000000..effd065 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D9DA01435C3A38C3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.1FC7416221A82428.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.1FC7416221A82428.idx new file mode 100644 index 0000000..e36e51b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.1FC7416221A82428.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4E514E82E020160C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4E514E82E020160C.idx new file mode 100644 index 0000000..3ed1d8b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.4E514E82E020160C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.54F14ECEC5AB6E9A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.54F14ECEC5AB6E9A.idx new file mode 100644 index 0000000..0a1dd16 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.54F14ECEC5AB6E9A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.5E430BE4604046C7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.5E430BE4604046C7.idx new file mode 100644 index 0000000..b4342b4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.5E430BE4604046C7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.685551C143709E2E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.685551C143709E2E.idx new file mode 100644 index 0000000..ecc4fa2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.685551C143709E2E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7254AA2B4896F8A5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7254AA2B4896F8A5.idx new file mode 100644 index 0000000..152a3a5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7254AA2B4896F8A5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.85FE5461AAEFF5C9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.85FE5461AAEFF5C9.idx new file mode 100644 index 0000000..6fbbb5a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.85FE5461AAEFF5C9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.9168896D2E0F2287.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.9168896D2E0F2287.idx new file mode 100644 index 0000000..9d9663b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.9168896D2E0F2287.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.9B163279DB80869F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.9B163279DB80869F.idx new file mode 100644 index 0000000..7a5cc08 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.9B163279DB80869F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.B6D9445DFA8E8384.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.B6D9445DFA8E8384.idx new file mode 100644 index 0000000..e91fa0a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.B6D9445DFA8E8384.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BCFCB490445647DE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BCFCB490445647DE.idx new file mode 100644 index 0000000..1f1e9c7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BCFCB490445647DE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.DF4B68B828132BF9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.DF4B68B828132BF9.idx new file mode 100644 index 0000000..03b3137 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.DF4B68B828132BF9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E8D5988CE9CA3C61.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E8D5988CE9CA3C61.idx new file mode 100644 index 0000000..4b94f76 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E8D5988CE9CA3C61.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.0A5CD0CDA7D0D74A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.0A5CD0CDA7D0D74A.idx new file mode 100644 index 0000000..cc7a6f9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.0A5CD0CDA7D0D74A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.195C4246E88307F3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.195C4246E88307F3.idx new file mode 100644 index 0000000..7443fab Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.195C4246E88307F3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.292C6C70A7C461C7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.292C6C70A7C461C7.idx new file mode 100644 index 0000000..089d107 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.292C6C70A7C461C7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2BB64A2049D56D2D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2BB64A2049D56D2D.idx new file mode 100644 index 0000000..3be84fa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2BB64A2049D56D2D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2D900AD0CF0C4169.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2D900AD0CF0C4169.idx new file mode 100644 index 0000000..0f967b9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2D900AD0CF0C4169.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.30367C3CE1BB8B69.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.30367C3CE1BB8B69.idx new file mode 100644 index 0000000..f77e671 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.30367C3CE1BB8B69.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.576A54E55FB3EE8D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.576A54E55FB3EE8D.idx new file mode 100644 index 0000000..6485bc4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.576A54E55FB3EE8D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.660EA54ED385BF3C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.660EA54ED385BF3C.idx new file mode 100644 index 0000000..8c5c45c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.660EA54ED385BF3C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.685CB02B8893F21E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.685CB02B8893F21E.idx new file mode 100644 index 0000000..4c53ace Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.685CB02B8893F21E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.79A4F8CF99304517.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.79A4F8CF99304517.idx new file mode 100644 index 0000000..8e1186f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.79A4F8CF99304517.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.9F168C1FEB7912EC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.9F168C1FEB7912EC.idx new file mode 100644 index 0000000..30acdab Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.9F168C1FEB7912EC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E26E744DCD9119CD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E26E744DCD9119CD.idx new file mode 100644 index 0000000..01ca2ba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E26E744DCD9119CD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EFCA57958A67530D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EFCA57958A67530D.idx new file mode 100644 index 0000000..6723f57 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EFCA57958A67530D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.0D5255C3FDC45DB7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.0D5255C3FDC45DB7.idx new file mode 100644 index 0000000..00149ec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.0D5255C3FDC45DB7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.30F6E173F5B6B4CA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.30F6E173F5B6B4CA.idx new file mode 100644 index 0000000..0280a10 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.30F6E173F5B6B4CA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.4898CCB07ED2B90F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.4898CCB07ED2B90F.idx new file mode 100644 index 0000000..0116753 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.4898CCB07ED2B90F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.6F3C2762F3404E61.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.6F3C2762F3404E61.idx new file mode 100644 index 0000000..a462a91 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.6F3C2762F3404E61.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8CE56EE2E7D67F89.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8CE56EE2E7D67F89.idx new file mode 100644 index 0000000..c2f1cdd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8CE56EE2E7D67F89.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AAFC1B79F9754826.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AAFC1B79F9754826.idx new file mode 100644 index 0000000..66ee681 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AAFC1B79F9754826.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD536C0360F3C11E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD536C0360F3C11E.idx new file mode 100644 index 0000000..7e3429c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD536C0360F3C11E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B0B52DFFB4DCFD8F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B0B52DFFB4DCFD8F.idx new file mode 100644 index 0000000..74f09e9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B0B52DFFB4DCFD8F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.BBF73A345F2968C1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.BBF73A345F2968C1.idx new file mode 100644 index 0000000..249fb03 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.BBF73A345F2968C1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.BDFBBDD017A6BAB8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.BDFBBDD017A6BAB8.idx new file mode 100644 index 0000000..14dc330 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.BDFBBDD017A6BAB8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.C0B8475796D4B15C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.C0B8475796D4B15C.idx new file mode 100644 index 0000000..b77919f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.C0B8475796D4B15C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F07D15D57641211E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F07D15D57641211E.idx new file mode 100644 index 0000000..b7ead41 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F07D15D57641211E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FE481D412031CF25.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FE481D412031CF25.idx new file mode 100644 index 0000000..482eccc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FE481D412031CF25.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04C74FAE7DDA7193.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04C74FAE7DDA7193.idx new file mode 100644 index 0000000..29d93a9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04C74FAE7DDA7193.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04E07A7549F73AC6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04E07A7549F73AC6.idx new file mode 100644 index 0000000..1a3f236 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.04E07A7549F73AC6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.08B6451FD95F8F5D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.08B6451FD95F8F5D.idx new file mode 100644 index 0000000..7ea865c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.08B6451FD95F8F5D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.261458C8516838C1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.261458C8516838C1.idx new file mode 100644 index 0000000..c17ac6f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.261458C8516838C1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.2767EC31EE84A8C3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.2767EC31EE84A8C3.idx new file mode 100644 index 0000000..fb6114d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.2767EC31EE84A8C3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.3F315922DC3D0D35.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.3F315922DC3D0D35.idx new file mode 100644 index 0000000..40eb7f1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.3F315922DC3D0D35.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.6E1D4D1DB370CBF7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.6E1D4D1DB370CBF7.idx new file mode 100644 index 0000000..4a850de Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.6E1D4D1DB370CBF7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.878EF50B4C364324.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.878EF50B4C364324.idx new file mode 100644 index 0000000..3a12fad Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.878EF50B4C364324.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.A184954A0D1BF710.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.A184954A0D1BF710.idx new file mode 100644 index 0000000..50487e0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.A184954A0D1BF710.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.C73BFF95215273CC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.C73BFF95215273CC.idx new file mode 100644 index 0000000..2a972a7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.C73BFF95215273CC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.CCEF9926898F3807.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.CCEF9926898F3807.idx new file mode 100644 index 0000000..d5b7517 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.CCEF9926898F3807.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D8134A5CC6F4E8B3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D8134A5CC6F4E8B3.idx new file mode 100644 index 0000000..efa4788 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D8134A5CC6F4E8B3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.DC7C24184C78A8CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.DC7C24184C78A8CB.idx new file mode 100644 index 0000000..6fd2809 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.c.DC7C24184C78A8CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.059C2645C5CD800D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.059C2645C5CD800D.idx new file mode 100644 index 0000000..52716c9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.059C2645C5CD800D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1519F1543E9F77A1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1519F1543E9F77A1.idx new file mode 100644 index 0000000..2671c54 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1519F1543E9F77A1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.151A4D3111082E9C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.151A4D3111082E9C.idx new file mode 100644 index 0000000..c43ccc9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.151A4D3111082E9C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3928549E97DA69F4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3928549E97DA69F4.idx new file mode 100644 index 0000000..1a6e372 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3928549E97DA69F4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.400BC88BD1F4C43C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.400BC88BD1F4C43C.idx new file mode 100644 index 0000000..1a3557b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.400BC88BD1F4C43C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4743D450E49A7D42.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4743D450E49A7D42.idx new file mode 100644 index 0000000..21399bc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4743D450E49A7D42.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5C90655D046F1363.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5C90655D046F1363.idx new file mode 100644 index 0000000..8818fe1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5C90655D046F1363.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5F183C0FA0C34E6E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5F183C0FA0C34E6E.idx new file mode 100644 index 0000000..ecc7add Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5F183C0FA0C34E6E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.6D4C97E28F9FCAF1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.6D4C97E28F9FCAF1.idx new file mode 100644 index 0000000..69eff00 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.6D4C97E28F9FCAF1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A172D1A04C5C0307.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A172D1A04C5C0307.idx new file mode 100644 index 0000000..d7bbb5b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A172D1A04C5C0307.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C3A95433FA52B0E4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C3A95433FA52B0E4.idx new file mode 100644 index 0000000..09aa47e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C3A95433FA52B0E4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.F662AAE3A284B394.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.F662AAE3A284B394.idx new file mode 100644 index 0000000..4b929f7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.F662AAE3A284B394.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.FD72E9874F63AB03.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.FD72E9874F63AB03.idx new file mode 100644 index 0000000..d9a9706 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ept.h.FD72E9874F63AB03.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.062888430366E2A2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.062888430366E2A2.idx new file mode 100644 index 0000000..1e67d88 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.062888430366E2A2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.12B0002F0844DC99.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.12B0002F0844DC99.idx new file mode 100644 index 0000000..61fa322 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.12B0002F0844DC99.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.2CA5359E3851E295.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.2CA5359E3851E295.idx new file mode 100644 index 0000000..36e052c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.2CA5359E3851E295.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.5F7B8F0D50FE146D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.5F7B8F0D50FE146D.idx new file mode 100644 index 0000000..b8c75a4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.5F7B8F0D50FE146D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.5FF0286CDD88195C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.5FF0286CDD88195C.idx new file mode 100644 index 0000000..638b895 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.5FF0286CDD88195C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.6C0745B883ADC7CE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.6C0745B883ADC7CE.idx new file mode 100644 index 0000000..e43b421 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.6C0745B883ADC7CE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.6E35FDB7BB1D888B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.6E35FDB7BB1D888B.idx new file mode 100644 index 0000000..9a6e4d8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.6E35FDB7BB1D888B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.7054E1EEF3069F43.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.7054E1EEF3069F43.idx new file mode 100644 index 0000000..bee6bb3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.7054E1EEF3069F43.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.7D50B863FC17306B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.7D50B863FC17306B.idx new file mode 100644 index 0000000..e459747 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.7D50B863FC17306B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.986A00FB0A783EB6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.986A00FB0A783EB6.idx new file mode 100644 index 0000000..4cd0035 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.986A00FB0A783EB6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.A8A540F47C19F2A1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.A8A540F47C19F2A1.idx new file mode 100644 index 0000000..51c23b9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.A8A540F47C19F2A1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.E0F1FCF2C4CE5521.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.E0F1FCF2C4CE5521.idx new file mode 100644 index 0000000..0829fb0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.E0F1FCF2C4CE5521.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.ED72F5C57BEE89D2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.ED72F5C57BEE89D2.idx new file mode 100644 index 0000000..c49da78 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.c.ED72F5C57BEE89D2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.0FAD18D5BB82C859.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.0FAD18D5BB82C859.idx new file mode 100644 index 0000000..2a9fc1f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.0FAD18D5BB82C859.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.3453D1F9B883D6A4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.3453D1F9B883D6A4.idx new file mode 100644 index 0000000..c8e339e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.3453D1F9B883D6A4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.352DF5CD5B1FA390.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.352DF5CD5B1FA390.idx new file mode 100644 index 0000000..f2ec480 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.352DF5CD5B1FA390.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.4AB82C29399668A3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.4AB82C29399668A3.idx new file mode 100644 index 0000000..7018734 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.4AB82C29399668A3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.51370633F7403BDC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.51370633F7403BDC.idx new file mode 100644 index 0000000..a79b6c2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.51370633F7403BDC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.7DA93E1250DF4083.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.7DA93E1250DF4083.idx new file mode 100644 index 0000000..a78c872 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.7DA93E1250DF4083.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.837CC59A1E5E8085.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.837CC59A1E5E8085.idx new file mode 100644 index 0000000..1339b58 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.837CC59A1E5E8085.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.989C4B94E954F073.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.989C4B94E954F073.idx new file mode 100644 index 0000000..8ac6912 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.989C4B94E954F073.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.BDDF1E863F354468.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.BDDF1E863F354468.idx new file mode 100644 index 0000000..52fb796 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.BDDF1E863F354468.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.C977F38055B2116C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.C977F38055B2116C.idx new file mode 100644 index 0000000..428f80c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.C977F38055B2116C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.CC5C4A39C9FFF067.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.CC5C4A39C9FFF067.idx new file mode 100644 index 0000000..53d0be5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.CC5C4A39C9FFF067.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.CD27327656D56D32.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.CD27327656D56D32.idx new file mode 100644 index 0000000..8609611 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.CD27327656D56D32.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.DF03E5CA7568E997.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.DF03E5CA7568E997.idx new file mode 100644 index 0000000..524fd4c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_et.h.DF03E5CA7568E997.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.1394B84D4B398E73.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.1394B84D4B398E73.idx new file mode 100644 index 0000000..c5d9755 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.1394B84D4B398E73.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.16AC42A458740B47.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.16AC42A458740B47.idx new file mode 100644 index 0000000..7222967 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.16AC42A458740B47.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.254A0A3856B8B882.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.254A0A3856B8B882.idx new file mode 100644 index 0000000..e6a1d8f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.254A0A3856B8B882.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.3F5F9279BD04E650.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.3F5F9279BD04E650.idx new file mode 100644 index 0000000..2414a83 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.3F5F9279BD04E650.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5193409DB64885EB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5193409DB64885EB.idx new file mode 100644 index 0000000..583e598 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5193409DB64885EB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.64F5F976E6180DFF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.64F5F976E6180DFF.idx new file mode 100644 index 0000000..3c0c5af Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.64F5F976E6180DFF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.6654EC924169EB1A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.6654EC924169EB1A.idx new file mode 100644 index 0000000..670ac6f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.6654EC924169EB1A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.684E83FB56F078E1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.684E83FB56F078E1.idx new file mode 100644 index 0000000..709ed72 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.684E83FB56F078E1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.6CF9F8975901F4AD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.6CF9F8975901F4AD.idx new file mode 100644 index 0000000..48af2e8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.6CF9F8975901F4AD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A867193997E72666.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A867193997E72666.idx new file mode 100644 index 0000000..471e9e7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A867193997E72666.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.C8069020D3D946D0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.C8069020D3D946D0.idx new file mode 100644 index 0000000..2c70c4b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.C8069020D3D946D0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.C92BB3A47F68AD22.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.C92BB3A47F68AD22.idx new file mode 100644 index 0000000..de4324d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.C92BB3A47F68AD22.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E32584C348EDF90D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E32584C348EDF90D.idx new file mode 100644 index 0000000..ae18762 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E32584C348EDF90D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.1630B1C0BBC76705.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.1630B1C0BBC76705.idx new file mode 100644 index 0000000..2fc4d82 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.1630B1C0BBC76705.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.1FD417B1802AB51F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.1FD417B1802AB51F.idx new file mode 100644 index 0000000..769290c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.1FD417B1802AB51F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2682F2B726A43ADB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2682F2B726A43ADB.idx new file mode 100644 index 0000000..bc5b1f4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2682F2B726A43ADB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.346F9405C6161823.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.346F9405C6161823.idx new file mode 100644 index 0000000..a793d75 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.346F9405C6161823.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5522266AE61689EE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5522266AE61689EE.idx new file mode 100644 index 0000000..255cd80 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5522266AE61689EE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.57336E994A02D51B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.57336E994A02D51B.idx new file mode 100644 index 0000000..eebe4c5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.57336E994A02D51B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5D1383EE67BDC5EE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5D1383EE67BDC5EE.idx new file mode 100644 index 0000000..35a92de Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5D1383EE67BDC5EE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.63074C9EC97B1CD8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.63074C9EC97B1CD8.idx new file mode 100644 index 0000000..3140fdc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.63074C9EC97B1CD8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.9A508C95E23BB955.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.9A508C95E23BB955.idx new file mode 100644 index 0000000..6e04be1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.9A508C95E23BB955.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A17DAF77E2BFFD29.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A17DAF77E2BFFD29.idx new file mode 100644 index 0000000..5dc40c2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A17DAF77E2BFFD29.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3FC7E9E087D9C2C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3FC7E9E087D9C2C.idx new file mode 100644 index 0000000..d3e022c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3FC7E9E087D9C2C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.CE48601B3F22CE2E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.CE48601B3F22CE2E.idx new file mode 100644 index 0000000..d7e54d3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.CE48601B3F22CE2E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.CFC7D73E41178184.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.CFC7D73E41178184.idx new file mode 100644 index 0000000..6e84e1a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.CFC7D73E41178184.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.40207CFA78DC001C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.40207CFA78DC001C.idx new file mode 100644 index 0000000..9766429 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.40207CFA78DC001C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.461BC8F80A3BC364.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.461BC8F80A3BC364.idx new file mode 100644 index 0000000..bde59c7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.461BC8F80A3BC364.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.4898C75CE612E413.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.4898C75CE612E413.idx new file mode 100644 index 0000000..b91aa02 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.4898C75CE612E413.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.51C801E079781780.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.51C801E079781780.idx new file mode 100644 index 0000000..0621ffa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.51C801E079781780.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.51FD264C1DB85D26.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.51FD264C1DB85D26.idx new file mode 100644 index 0000000..cc66300 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.51FD264C1DB85D26.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6D2145833F82A38E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6D2145833F82A38E.idx new file mode 100644 index 0000000..d3f8573 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6D2145833F82A38E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6DA4D5ABE0281CCA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6DA4D5ABE0281CCA.idx new file mode 100644 index 0000000..02c8e83 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6DA4D5ABE0281CCA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.8988FB8477C71E66.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.8988FB8477C71E66.idx new file mode 100644 index 0000000..eb9885e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.8988FB8477C71E66.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.8D55E84210BB190D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.8D55E84210BB190D.idx new file mode 100644 index 0000000..7367203 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.8D55E84210BB190D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.AB05F52C8681C94B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.AB05F52C8681C94B.idx new file mode 100644 index 0000000..73a719f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.AB05F52C8681C94B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C298A60803DD0A18.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C298A60803DD0A18.idx new file mode 100644 index 0000000..a0c246c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C298A60803DD0A18.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EC51CF33E6AAB60F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EC51CF33E6AAB60F.idx new file mode 100644 index 0000000..7bdc7a3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EC51CF33E6AAB60F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EFAFCF49293FA372.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EFAFCF49293FA372.idx new file mode 100644 index 0000000..93d9fc0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EFAFCF49293FA372.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.12957A439AAA0F0C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.12957A439AAA0F0C.idx new file mode 100644 index 0000000..6934cb6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.12957A439AAA0F0C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.46D6D9A7602478F3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.46D6D9A7602478F3.idx new file mode 100644 index 0000000..9aa9597 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.46D6D9A7602478F3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.52492DB182D9D62D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.52492DB182D9D62D.idx new file mode 100644 index 0000000..ef5207b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.52492DB182D9D62D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.649A1CF964A1D83A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.649A1CF964A1D83A.idx new file mode 100644 index 0000000..6e1de7d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.649A1CF964A1D83A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6AA133156B7EA6D2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6AA133156B7EA6D2.idx new file mode 100644 index 0000000..daf893d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6AA133156B7EA6D2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.79A4D95287062B98.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.79A4D95287062B98.idx new file mode 100644 index 0000000..a5c9055 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.79A4D95287062B98.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.7F330010F0E92DBB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.7F330010F0E92DBB.idx new file mode 100644 index 0000000..6876d39 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.7F330010F0E92DBB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.7FDE0F197950F013.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.7FDE0F197950F013.idx new file mode 100644 index 0000000..4d9a7b9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.7FDE0F197950F013.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84646F54CF75D4FC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84646F54CF75D4FC.idx new file mode 100644 index 0000000..fc9bdcb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84646F54CF75D4FC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.9B2C52E570C5237F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.9B2C52E570C5237F.idx new file mode 100644 index 0000000..2b32d04 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.9B2C52E570C5237F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.9B5E448FCAAB32DF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.9B5E448FCAAB32DF.idx new file mode 100644 index 0000000..a6ba8e5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.9B5E448FCAAB32DF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A5B13A1F2886DCED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A5B13A1F2886DCED.idx new file mode 100644 index 0000000..382398e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A5B13A1F2886DCED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.F4EE2D8C81E6AA12.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.F4EE2D8C81E6AA12.idx new file mode 100644 index 0000000..b663aae Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.F4EE2D8C81E6AA12.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1508B691E4EBB264.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1508B691E4EBB264.idx new file mode 100644 index 0000000..fc9332e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1508B691E4EBB264.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.22DF76E45BF4E4F5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.22DF76E45BF4E4F5.idx new file mode 100644 index 0000000..5b06e2f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.22DF76E45BF4E4F5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.2C91BDB78790056A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.2C91BDB78790056A.idx new file mode 100644 index 0000000..e394afe Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.2C91BDB78790056A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.3ECFA8270732366E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.3ECFA8270732366E.idx new file mode 100644 index 0000000..f2c896a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.3ECFA8270732366E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C7C8FF33B94798A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C7C8FF33B94798A.idx new file mode 100644 index 0000000..7c3eab2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C7C8FF33B94798A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4D2FECF5A5CC149F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4D2FECF5A5CC149F.idx new file mode 100644 index 0000000..a0e8cd0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4D2FECF5A5CC149F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.5F040FAD0858390A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.5F040FAD0858390A.idx new file mode 100644 index 0000000..941de4e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.5F040FAD0858390A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.643B811779BAA5E1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.643B811779BAA5E1.idx new file mode 100644 index 0000000..a63c79d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.643B811779BAA5E1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9C0FB2544B3BB83B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9C0FB2544B3BB83B.idx new file mode 100644 index 0000000..9259884 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9C0FB2544B3BB83B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.A20363C0DC4BF66B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.A20363C0DC4BF66B.idx new file mode 100644 index 0000000..2d7bd22 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.A20363C0DC4BF66B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DF92E0A6E12F4C27.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DF92E0A6E12F4C27.idx new file mode 100644 index 0000000..f417156 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DF92E0A6E12F4C27.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.F6AAFD55366550E4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.F6AAFD55366550E4.idx new file mode 100644 index 0000000..7c68067 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.F6AAFD55366550E4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.F920E639680AF697.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.F920E639680AF697.idx new file mode 100644 index 0000000..2d6982a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.F920E639680AF697.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.116C982E17CAC275.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.116C982E17CAC275.idx new file mode 100644 index 0000000..6db9410 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.116C982E17CAC275.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1F8FB0A43FAB4375.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1F8FB0A43FAB4375.idx new file mode 100644 index 0000000..d2a6092 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1F8FB0A43FAB4375.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4F1FA16F4C107964.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4F1FA16F4C107964.idx new file mode 100644 index 0000000..26e58bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4F1FA16F4C107964.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.5154F233802B9096.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.5154F233802B9096.idx new file mode 100644 index 0000000..2db6dd3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.5154F233802B9096.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.60910F5910C3F42E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.60910F5910C3F42E.idx new file mode 100644 index 0000000..570f86f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.60910F5910C3F42E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.637D2C4BB6FA3910.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.637D2C4BB6FA3910.idx new file mode 100644 index 0000000..062e3bf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.637D2C4BB6FA3910.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.802C8E93F67B4B5C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.802C8E93F67B4B5C.idx new file mode 100644 index 0000000..b3e175b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.802C8E93F67B4B5C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.9A0A49A70AC7C43C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.9A0A49A70AC7C43C.idx new file mode 100644 index 0000000..2b65572 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.9A0A49A70AC7C43C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.9CE385A190064BCD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.9CE385A190064BCD.idx new file mode 100644 index 0000000..8bc6ffe Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.9CE385A190064BCD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A1C676F5BAEC9965.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A1C676F5BAEC9965.idx new file mode 100644 index 0000000..f2bda08 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A1C676F5BAEC9965.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.AAD7F23C912073B6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.AAD7F23C912073B6.idx new file mode 100644 index 0000000..ecce528 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.AAD7F23C912073B6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.AD9DE74EE9603ED0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.AD9DE74EE9603ED0.idx new file mode 100644 index 0000000..766a8e3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.AD9DE74EE9603ED0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BA0E9E9195FB7F5E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BA0E9E9195FB7F5E.idx new file mode 100644 index 0000000..c3f6ecb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.BA0E9E9195FB7F5E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0830E112E38A9D01.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0830E112E38A9D01.idx new file mode 100644 index 0000000..c8020fd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0830E112E38A9D01.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12ABDF8FDC5A177C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12ABDF8FDC5A177C.idx new file mode 100644 index 0000000..6d40932 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12ABDF8FDC5A177C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.2D3FC7AF758B13C7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.2D3FC7AF758B13C7.idx new file mode 100644 index 0000000..c896bf0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.2D3FC7AF758B13C7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.2F370D932EC62EF3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.2F370D932EC62EF3.idx new file mode 100644 index 0000000..2255484 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.2F370D932EC62EF3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.3AC2C6390973EBDD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.3AC2C6390973EBDD.idx new file mode 100644 index 0000000..73c6de9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.3AC2C6390973EBDD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.3D19E84D72E9274B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.3D19E84D72E9274B.idx new file mode 100644 index 0000000..792db73 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.3D19E84D72E9274B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5DE9E523944C67BF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5DE9E523944C67BF.idx new file mode 100644 index 0000000..6d6d43c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5DE9E523944C67BF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.655B9F5B1A47C60E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.655B9F5B1A47C60E.idx new file mode 100644 index 0000000..3ca8563 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.655B9F5B1A47C60E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.69DD35D1B9B70F48.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.69DD35D1B9B70F48.idx new file mode 100644 index 0000000..1f4db9c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.69DD35D1B9B70F48.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.89CA862F00540C35.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.89CA862F00540C35.idx new file mode 100644 index 0000000..1b6cd83 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.89CA862F00540C35.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.925BCCA3E4005FF8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.925BCCA3E4005FF8.idx new file mode 100644 index 0000000..2f0ff28 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.925BCCA3E4005FF8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.B8627A75D9F0242D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.B8627A75D9F0242D.idx new file mode 100644 index 0000000..0ab2295 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.B8627A75D9F0242D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E14982F9DFEF0145.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E14982F9DFEF0145.idx new file mode 100644 index 0000000..2137265 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E14982F9DFEF0145.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0057190B200570AA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0057190B200570AA.idx new file mode 100644 index 0000000..d3cba65 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0057190B200570AA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.1B8F04B520F44658.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.1B8F04B520F44658.idx new file mode 100644 index 0000000..70b43be Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.1B8F04B520F44658.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.5DA8BBFB791A1652.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.5DA8BBFB791A1652.idx new file mode 100644 index 0000000..cc56420 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.5DA8BBFB791A1652.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.72813536EC7CE443.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.72813536EC7CE443.idx new file mode 100644 index 0000000..ecef314 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.72813536EC7CE443.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.784BDAAB5AC0B89A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.784BDAAB5AC0B89A.idx new file mode 100644 index 0000000..dae4687 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.784BDAAB5AC0B89A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.8259C58DC994FFED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.8259C58DC994FFED.idx new file mode 100644 index 0000000..c58c1b0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.8259C58DC994FFED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.82AC90A8B008A8F7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.82AC90A8B008A8F7.idx new file mode 100644 index 0000000..372bcdf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.82AC90A8B008A8F7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9D87153C0D75F648.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9D87153C0D75F648.idx new file mode 100644 index 0000000..572e584 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9D87153C0D75F648.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AA91D61F1E4A21CE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AA91D61F1E4A21CE.idx new file mode 100644 index 0000000..8a5d24b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AA91D61F1E4A21CE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AE2E967FEEF20793.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AE2E967FEEF20793.idx new file mode 100644 index 0000000..d8bfea9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AE2E967FEEF20793.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BBA8D0C6E11A5F9C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BBA8D0C6E11A5F9C.idx new file mode 100644 index 0000000..8bda8bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BBA8D0C6E11A5F9C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CF10E6B00EA9A6DE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CF10E6B00EA9A6DE.idx new file mode 100644 index 0000000..572e5e5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CF10E6B00EA9A6DE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.E61C70C8370C4E82.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.E61C70C8370C4E82.idx new file mode 100644 index 0000000..243305c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.E61C70C8370C4E82.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.0849FA1F7CF721FA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.0849FA1F7CF721FA.idx new file mode 100644 index 0000000..34da725 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.0849FA1F7CF721FA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.0EB7FAD489AB95CD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.0EB7FAD489AB95CD.idx new file mode 100644 index 0000000..855f0c7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.0EB7FAD489AB95CD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.3A0450D6223B1E94.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.3A0450D6223B1E94.idx new file mode 100644 index 0000000..10ea240 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.3A0450D6223B1E94.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.4F9CF391DEA7B98D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.4F9CF391DEA7B98D.idx new file mode 100644 index 0000000..05ad57e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.4F9CF391DEA7B98D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.517525F7F60302B7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.517525F7F60302B7.idx new file mode 100644 index 0000000..edf901b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.517525F7F60302B7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.645D3E93B3449271.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.645D3E93B3449271.idx new file mode 100644 index 0000000..bb98439 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.645D3E93B3449271.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.857178FAD24AEBCA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.857178FAD24AEBCA.idx new file mode 100644 index 0000000..0d61270 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.857178FAD24AEBCA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B3D62AF04D34C855.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B3D62AF04D34C855.idx new file mode 100644 index 0000000..ba424bc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B3D62AF04D34C855.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.BE20E0CF95528F12.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.BE20E0CF95528F12.idx new file mode 100644 index 0000000..58232cd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.BE20E0CF95528F12.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C93FE196C1606124.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C93FE196C1606124.idx new file mode 100644 index 0000000..188041b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C93FE196C1606124.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E2F781291D67C490.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E2F781291D67C490.idx new file mode 100644 index 0000000..48c515d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E2F781291D67C490.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EFC3C0992D44085A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EFC3C0992D44085A.idx new file mode 100644 index 0000000..6204eb6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EFC3C0992D44085A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.F6806674FED687F2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.F6806674FED687F2.idx new file mode 100644 index 0000000..2a23187 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.F6806674FED687F2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.13AA7C1616EAF142.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.13AA7C1616EAF142.idx new file mode 100644 index 0000000..90e3325 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.13AA7C1616EAF142.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.369D3C2F5708A049.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.369D3C2F5708A049.idx new file mode 100644 index 0000000..d242a6d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.369D3C2F5708A049.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4840E0601EB6D651.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4840E0601EB6D651.idx new file mode 100644 index 0000000..3702b1c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4840E0601EB6D651.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.5AF2C563CE5C7D4E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.5AF2C563CE5C7D4E.idx new file mode 100644 index 0000000..e7d6c8a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.5AF2C563CE5C7D4E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6C2C041D6A07CA60.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6C2C041D6A07CA60.idx new file mode 100644 index 0000000..f0f3448 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.6C2C041D6A07CA60.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.7B06A730F91B412A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.7B06A730F91B412A.idx new file mode 100644 index 0000000..ae85a66 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.7B06A730F91B412A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A4241EC5B81F7AE5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A4241EC5B81F7AE5.idx new file mode 100644 index 0000000..b08fde8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A4241EC5B81F7AE5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C05C7CFCEC53E5A7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C05C7CFCEC53E5A7.idx new file mode 100644 index 0000000..8d22f36 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C05C7CFCEC53E5A7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C1075C18671EA209.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C1075C18671EA209.idx new file mode 100644 index 0000000..1b05fda Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C1075C18671EA209.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C742994BE9F7974A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C742994BE9F7974A.idx new file mode 100644 index 0000000..cad1697 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C742994BE9F7974A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.E17A02398DAFB6CD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.E17A02398DAFB6CD.idx new file mode 100644 index 0000000..b7d362f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.E17A02398DAFB6CD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.F06AF5A8997156E5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.F06AF5A8997156E5.idx new file mode 100644 index 0000000..1ad977f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.F06AF5A8997156E5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FD92781A86768B69.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FD92781A86768B69.idx new file mode 100644 index 0000000..5654b78 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FD92781A86768B69.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.1B8659B9A5D2232E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.1B8659B9A5D2232E.idx new file mode 100644 index 0000000..50f59c9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.1B8659B9A5D2232E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.21BF2F8D286C4D19.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.21BF2F8D286C4D19.idx new file mode 100644 index 0000000..3b841f0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.21BF2F8D286C4D19.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C0B479CDA77133F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C0B479CDA77133F.idx new file mode 100644 index 0000000..073f8e0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C0B479CDA77133F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.558DBD3B2B599F3E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.558DBD3B2B599F3E.idx new file mode 100644 index 0000000..fe050a3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.558DBD3B2B599F3E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5CD41B7737E8390C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5CD41B7737E8390C.idx new file mode 100644 index 0000000..f6ada5d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5CD41B7737E8390C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7A74B847BE57A018.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7A74B847BE57A018.idx new file mode 100644 index 0000000..e5ea83d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7A74B847BE57A018.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.C31E5615E6F6EA62.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.C31E5615E6F6EA62.idx new file mode 100644 index 0000000..8f5f488 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.C31E5615E6F6EA62.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.C71C8FE52CA87397.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.C71C8FE52CA87397.idx new file mode 100644 index 0000000..3d2bb5a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.C71C8FE52CA87397.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CA71A53389E43D14.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CA71A53389E43D14.idx new file mode 100644 index 0000000..027b0d8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CA71A53389E43D14.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CB810E088A1BF71A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CB810E088A1BF71A.idx new file mode 100644 index 0000000..b29fbce Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CB810E088A1BF71A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CC1662C3F3F7F46E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CC1662C3F3F7F46E.idx new file mode 100644 index 0000000..9120d1c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CC1662C3F3F7F46E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.E80C6AC6EA03BE4B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.E80C6AC6EA03BE4B.idx new file mode 100644 index 0000000..5dc7174 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.E80C6AC6EA03BE4B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.F7B924F6527305BA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.F7B924F6527305BA.idx new file mode 100644 index 0000000..e23a940 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.F7B924F6527305BA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.19359993EDA41019.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.19359993EDA41019.idx new file mode 100644 index 0000000..c6753af Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.19359993EDA41019.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.2509609DC7D9DB53.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.2509609DC7D9DB53.idx new file mode 100644 index 0000000..93bff25 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.2509609DC7D9DB53.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.29C71A30615D4EF9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.29C71A30615D4EF9.idx new file mode 100644 index 0000000..3fedb7c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.29C71A30615D4EF9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.47AE5EC7FD3E1B4A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.47AE5EC7FD3E1B4A.idx new file mode 100644 index 0000000..6b0e09f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.47AE5EC7FD3E1B4A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.692FC999CF41AC83.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.692FC999CF41AC83.idx new file mode 100644 index 0000000..faee230 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.692FC999CF41AC83.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.80D07AEF96C58EEB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.80D07AEF96C58EEB.idx new file mode 100644 index 0000000..c3a9700 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.80D07AEF96C58EEB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E60EACA67196083.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E60EACA67196083.idx new file mode 100644 index 0000000..bb95d4d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E60EACA67196083.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.B6A733BB82362CF9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.B6A733BB82362CF9.idx new file mode 100644 index 0000000..b258ab8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.B6A733BB82362CF9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.BB663C46E5E2120C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.BB663C46E5E2120C.idx new file mode 100644 index 0000000..2eef07e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.BB663C46E5E2120C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.D1EA382E072872C2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.D1EA382E072872C2.idx new file mode 100644 index 0000000..3cf6268 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.D1EA382E072872C2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.D8387895A37CD907.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.D8387895A37CD907.idx new file mode 100644 index 0000000..40c362a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.D8387895A37CD907.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.E1BC9D2EF5C0AB85.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.E1BC9D2EF5C0AB85.idx new file mode 100644 index 0000000..62b09d6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.E1BC9D2EF5C0AB85.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F9D6BF39E920DE4D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F9D6BF39E920DE4D.idx new file mode 100644 index 0000000..ce841ec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F9D6BF39E920DE4D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0B1E3AEBF373B74A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0B1E3AEBF373B74A.idx new file mode 100644 index 0000000..c405d27 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0B1E3AEBF373B74A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1BBA3ABE4E716461.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1BBA3ABE4E716461.idx new file mode 100644 index 0000000..8fca4f6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1BBA3ABE4E716461.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.3F2BD0DD50F925B1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.3F2BD0DD50F925B1.idx new file mode 100644 index 0000000..60d5f30 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.3F2BD0DD50F925B1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.49B9F76B022CEB71.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.49B9F76B022CEB71.idx new file mode 100644 index 0000000..2646b30 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.49B9F76B022CEB71.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.4DB9E5A5A581EC41.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.4DB9E5A5A581EC41.idx new file mode 100644 index 0000000..0c9b32f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.4DB9E5A5A581EC41.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5E2DFEFD626CB7D9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5E2DFEFD626CB7D9.idx new file mode 100644 index 0000000..2e1d8ed Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5E2DFEFD626CB7D9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6DA1D2635EE003EC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6DA1D2635EE003EC.idx new file mode 100644 index 0000000..697b657 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6DA1D2635EE003EC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6E9689FA076142FD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6E9689FA076142FD.idx new file mode 100644 index 0000000..47d1160 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6E9689FA076142FD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7DFC6DD9C1F44E8D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7DFC6DD9C1F44E8D.idx new file mode 100644 index 0000000..4a6b67a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7DFC6DD9C1F44E8D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.A547F319DC6127DB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.A547F319DC6127DB.idx new file mode 100644 index 0000000..08cd221 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.A547F319DC6127DB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.AB3ED6221C01A7B7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.AB3ED6221C01A7B7.idx new file mode 100644 index 0000000..7f9c3d9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.AB3ED6221C01A7B7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E44052F16D351872.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E44052F16D351872.idx new file mode 100644 index 0000000..1164bb6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E44052F16D351872.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E8BF0D028C7F7D9C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E8BF0D028C7F7D9C.idx new file mode 100644 index 0000000..f16d031 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E8BF0D028C7F7D9C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.165E8F75720A5B22.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.165E8F75720A5B22.idx new file mode 100644 index 0000000..ce359e4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.165E8F75720A5B22.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1E7806D6FA390FA5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1E7806D6FA390FA5.idx new file mode 100644 index 0000000..22272f3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1E7806D6FA390FA5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.21CBB6C07E65E436.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.21CBB6C07E65E436.idx new file mode 100644 index 0000000..0fb530b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.21CBB6C07E65E436.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.235268128EE47785.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.235268128EE47785.idx new file mode 100644 index 0000000..f623195 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.235268128EE47785.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.34A0EA4D122C1F2E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.34A0EA4D122C1F2E.idx new file mode 100644 index 0000000..6b659b6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.34A0EA4D122C1F2E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4C370380520AD0AF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4C370380520AD0AF.idx new file mode 100644 index 0000000..fd6fe1b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4C370380520AD0AF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.6BA4D10EA1D72EB3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.6BA4D10EA1D72EB3.idx new file mode 100644 index 0000000..b30c9e7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.6BA4D10EA1D72EB3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.6F6C81BA95AA9FEF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.6F6C81BA95AA9FEF.idx new file mode 100644 index 0000000..ce60447 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.6F6C81BA95AA9FEF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.AC221E44E9BB8498.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.AC221E44E9BB8498.idx new file mode 100644 index 0000000..119d0ec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.AC221E44E9BB8498.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.B4DCF5EE702CAD9D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.B4DCF5EE702CAD9D.idx new file mode 100644 index 0000000..e30c120 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.B4DCF5EE702CAD9D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.BB015D3AB3EAB12A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.BB015D3AB3EAB12A.idx new file mode 100644 index 0000000..edd2aa1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.BB015D3AB3EAB12A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.CF65B07134D8D924.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.CF65B07134D8D924.idx new file mode 100644 index 0000000..c1029a4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.CF65B07134D8D924.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.EEFF09C4DCBDF5B5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.EEFF09C4DCBDF5B5.idx new file mode 100644 index 0000000..2937a48 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.c.EEFF09C4DCBDF5B5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.0A871CD97768D6EF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.0A871CD97768D6EF.idx new file mode 100644 index 0000000..ab76e36 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.0A871CD97768D6EF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.0AABE960E694DF87.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.0AABE960E694DF87.idx new file mode 100644 index 0000000..0bed05e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.0AABE960E694DF87.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.3972010D9A4B70CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.3972010D9A4B70CB.idx new file mode 100644 index 0000000..caf80cf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.3972010D9A4B70CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.40CA1A1673F9AF26.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.40CA1A1673F9AF26.idx new file mode 100644 index 0000000..0ba354c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.40CA1A1673F9AF26.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.4E81E1FF8F45C654.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.4E81E1FF8F45C654.idx new file mode 100644 index 0000000..80084a6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.4E81E1FF8F45C654.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.613978F7A4B5BD08.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.613978F7A4B5BD08.idx new file mode 100644 index 0000000..c75ef55 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.613978F7A4B5BD08.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.72DC32F32C3D987A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.72DC32F32C3D987A.idx new file mode 100644 index 0000000..09e2b95 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.72DC32F32C3D987A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.83C4EA3FBC0BC4C0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.83C4EA3FBC0BC4C0.idx new file mode 100644 index 0000000..6b50a99 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.83C4EA3FBC0BC4C0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.91FDB7A16BE9F51D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.91FDB7A16BE9F51D.idx new file mode 100644 index 0000000..172f009 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.91FDB7A16BE9F51D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9EFC3E8CB411A95C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9EFC3E8CB411A95C.idx new file mode 100644 index 0000000..5265786 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9EFC3E8CB411A95C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D8554495A4026055.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D8554495A4026055.idx new file mode 100644 index 0000000..b1b18ae Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D8554495A4026055.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F11825E41C355229.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F11825E41C355229.idx new file mode 100644 index 0000000..8471426 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F11825E41C355229.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FCB78F538D467E55.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FCB78F538D467E55.idx new file mode 100644 index 0000000..6a13897 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FCB78F538D467E55.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.00A9CEA620FBF40D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.00A9CEA620FBF40D.idx new file mode 100644 index 0000000..67b8335 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.00A9CEA620FBF40D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.06C58D2692B70022.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.06C58D2692B70022.idx new file mode 100644 index 0000000..c38877f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.06C58D2692B70022.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0B0E9C9D5006B8C9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0B0E9C9D5006B8C9.idx new file mode 100644 index 0000000..eaf6d5c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0B0E9C9D5006B8C9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.1B7037566E81469B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.1B7037566E81469B.idx new file mode 100644 index 0000000..ec77ce4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.1B7037566E81469B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.1F0A7F6A82EDFABC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.1F0A7F6A82EDFABC.idx new file mode 100644 index 0000000..ec44ada Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.1F0A7F6A82EDFABC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.255974CEB997FD9B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.255974CEB997FD9B.idx new file mode 100644 index 0000000..6e8c0bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.255974CEB997FD9B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.2C34A812F7BB4A9A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.2C34A812F7BB4A9A.idx new file mode 100644 index 0000000..0a27319 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.2C34A812F7BB4A9A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.43277BB9D3A56E57.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.43277BB9D3A56E57.idx new file mode 100644 index 0000000..a8665b7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.43277BB9D3A56E57.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.71F9F690F7BA0A6B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.71F9F690F7BA0A6B.idx new file mode 100644 index 0000000..460b668 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.71F9F690F7BA0A6B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.74843C8B0034FA0E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.74843C8B0034FA0E.idx new file mode 100644 index 0000000..c150abc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.74843C8B0034FA0E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8D60F273761551C5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8D60F273761551C5.idx new file mode 100644 index 0000000..1ef4fe7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8D60F273761551C5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A065CD69A042C477.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A065CD69A042C477.idx new file mode 100644 index 0000000..8b6c79d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A065CD69A042C477.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B5308AF779788617.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B5308AF779788617.idx new file mode 100644 index 0000000..73b1774 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.c.B5308AF779788617.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.0C2DFADC834401E2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.0C2DFADC834401E2.idx new file mode 100644 index 0000000..9383eb7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.0C2DFADC834401E2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.11F8CB6D20DA16E0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.11F8CB6D20DA16E0.idx new file mode 100644 index 0000000..dba4b6d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.11F8CB6D20DA16E0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2AE156590DA3F798.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2AE156590DA3F798.idx new file mode 100644 index 0000000..07612fa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2AE156590DA3F798.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.5531C8D0CE744698.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.5531C8D0CE744698.idx new file mode 100644 index 0000000..c2aabe1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.5531C8D0CE744698.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.669BE1BCEF13F6BB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.669BE1BCEF13F6BB.idx new file mode 100644 index 0000000..21ee2c5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.669BE1BCEF13F6BB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6C09DDCA637327D3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6C09DDCA637327D3.idx new file mode 100644 index 0000000..8f5e883 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6C09DDCA637327D3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.8829364DAEC8B137.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.8829364DAEC8B137.idx new file mode 100644 index 0000000..7398fd2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.8829364DAEC8B137.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.9231070EEA5E1A02.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.9231070EEA5E1A02.idx new file mode 100644 index 0000000..b2eaf15 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.9231070EEA5E1A02.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A184941517D2248D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A184941517D2248D.idx new file mode 100644 index 0000000..04a4825 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A184941517D2248D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CBC4A7B2DED8FF33.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CBC4A7B2DED8FF33.idx new file mode 100644 index 0000000..9820310 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CBC4A7B2DED8FF33.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CFD35F6C4DD7D270.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CFD35F6C4DD7D270.idx new file mode 100644 index 0000000..27a5f86 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CFD35F6C4DD7D270.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F0D46FB81AE50769.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F0D46FB81AE50769.idx new file mode 100644 index 0000000..64a8136 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F0D46FB81AE50769.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F1FA19905677F233.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F1FA19905677F233.idx new file mode 100644 index 0000000..b1cfbc8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_spi.h.F1FA19905677F233.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.12F4014BDFFB3A74.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.12F4014BDFFB3A74.idx new file mode 100644 index 0000000..d470988 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.12F4014BDFFB3A74.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.17E153D9AF327BC6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.17E153D9AF327BC6.idx new file mode 100644 index 0000000..689f9b9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.17E153D9AF327BC6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.2758F291EF2E9D3D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.2758F291EF2E9D3D.idx new file mode 100644 index 0000000..4a7b100 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.2758F291EF2E9D3D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.32BD3BEA47609ADC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.32BD3BEA47609ADC.idx new file mode 100644 index 0000000..2c355a2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.32BD3BEA47609ADC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.445B0FF357296D36.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.445B0FF357296D36.idx new file mode 100644 index 0000000..22b4b90 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.445B0FF357296D36.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.584227FFD5CE0331.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.584227FFD5CE0331.idx new file mode 100644 index 0000000..2acb1f3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.584227FFD5CE0331.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73DC68EF4A4C53B7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73DC68EF4A4C53B7.idx new file mode 100644 index 0000000..95a632a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73DC68EF4A4C53B7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A3B36FD63A56F290.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A3B36FD63A56F290.idx new file mode 100644 index 0000000..1deb73d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A3B36FD63A56F290.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.CB2F0F2062377DB6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.CB2F0F2062377DB6.idx new file mode 100644 index 0000000..96b267f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.CB2F0F2062377DB6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D126B7513F986F12.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D126B7513F986F12.idx new file mode 100644 index 0000000..3eb25f9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D126B7513F986F12.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.E854E49EB05CABB8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.E854E49EB05CABB8.idx new file mode 100644 index 0000000..6d3b31b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.E854E49EB05CABB8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F0F931C99BAFB9B9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F0F931C99BAFB9B9.idx new file mode 100644 index 0000000..73b44ba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F0F931C99BAFB9B9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.FCA481C6E7CCF893.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.FCA481C6E7CCF893.idx new file mode 100644 index 0000000..53df3d4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.FCA481C6E7CCF893.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.0EC22A28F2144ED6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.0EC22A28F2144ED6.idx new file mode 100644 index 0000000..dc4c22e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.0EC22A28F2144ED6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.28FF3EFA8709541A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.28FF3EFA8709541A.idx new file mode 100644 index 0000000..8a503de Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.28FF3EFA8709541A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3D42A3CF0DC7BB51.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3D42A3CF0DC7BB51.idx new file mode 100644 index 0000000..303e01a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3D42A3CF0DC7BB51.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.558F063CFE750D74.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.558F063CFE750D74.idx new file mode 100644 index 0000000..17d101e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.558F063CFE750D74.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B11260DC57B8003E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B11260DC57B8003E.idx new file mode 100644 index 0000000..5035e20 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B11260DC57B8003E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B5573618EFC18829.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B5573618EFC18829.idx new file mode 100644 index 0000000..e5c3d6d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.B5573618EFC18829.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C48A4885C8A490EB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C48A4885C8A490EB.idx new file mode 100644 index 0000000..2ec7c60 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.C48A4885C8A490EB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.CA079ED1C60FC6CC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.CA079ED1C60FC6CC.idx new file mode 100644 index 0000000..2ab3449 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.CA079ED1C60FC6CC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.CD2633352617F471.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.CD2633352617F471.idx new file mode 100644 index 0000000..0dad76f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.CD2633352617F471.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D533F4062490C872.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D533F4062490C872.idx new file mode 100644 index 0000000..c7c808d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D533F4062490C872.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DE085E95E780355A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DE085E95E780355A.idx new file mode 100644 index 0000000..2a8e966 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DE085E95E780355A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EFF89A64D2F15762.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EFF89A64D2F15762.idx new file mode 100644 index 0000000..0bd6bb7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EFF89A64D2F15762.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.F40048628AFDAEBF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.F40048628AFDAEBF.idx new file mode 100644 index 0000000..9f7ef52 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.F40048628AFDAEBF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.120612C0E4CBBB08.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.120612C0E4CBBB08.idx new file mode 100644 index 0000000..bb4a35d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.120612C0E4CBBB08.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2392DEBDDD619675.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2392DEBDDD619675.idx new file mode 100644 index 0000000..3c148f3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2392DEBDDD619675.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2F9F5CD9D79CFC6B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2F9F5CD9D79CFC6B.idx new file mode 100644 index 0000000..fb9851d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2F9F5CD9D79CFC6B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.32B8C18F8D449D49.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.32B8C18F8D449D49.idx new file mode 100644 index 0000000..6e04d0e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.32B8C18F8D449D49.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42091FE710F4F947.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42091FE710F4F947.idx new file mode 100644 index 0000000..df0e336 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42091FE710F4F947.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5ED768AB0D7DF4CE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5ED768AB0D7DF4CE.idx new file mode 100644 index 0000000..926db7b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5ED768AB0D7DF4CE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.6E7B473C25D85672.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.6E7B473C25D85672.idx new file mode 100644 index 0000000..f61426b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.6E7B473C25D85672.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.82C282BAD9C4D483.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.82C282BAD9C4D483.idx new file mode 100644 index 0000000..edd61cb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.82C282BAD9C4D483.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.8A4B8C00C25BEF1C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.8A4B8C00C25BEF1C.idx new file mode 100644 index 0000000..4d12bbc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.8A4B8C00C25BEF1C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.8F9736725B7D4743.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.8F9736725B7D4743.idx new file mode 100644 index 0000000..851b6fc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.8F9736725B7D4743.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.94A554F0E9EB8F8A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.94A554F0E9EB8F8A.idx new file mode 100644 index 0000000..b51fac9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.94A554F0E9EB8F8A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.C414A2A44CDD08DF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.C414A2A44CDD08DF.idx new file mode 100644 index 0000000..c4f9d88 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.C414A2A44CDD08DF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D296F9C0915E7013.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D296F9C0915E7013.idx new file mode 100644 index 0000000..771ac13 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D296F9C0915E7013.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.072D58BA1BBE4DF8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.072D58BA1BBE4DF8.idx new file mode 100644 index 0000000..e749113 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.072D58BA1BBE4DF8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0BA1243C951C4568.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0BA1243C951C4568.idx new file mode 100644 index 0000000..cc37ec9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0BA1243C951C4568.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0CC8CB8D299AF7A7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0CC8CB8D299AF7A7.idx new file mode 100644 index 0000000..0b09859 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.0CC8CB8D299AF7A7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.228C20E8E403EF4F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.228C20E8E403EF4F.idx new file mode 100644 index 0000000..88e8487 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.228C20E8E403EF4F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.3E8E8880E1C6A7B7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.3E8E8880E1C6A7B7.idx new file mode 100644 index 0000000..52d5ca0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.3E8E8880E1C6A7B7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.51C643297D71824E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.51C643297D71824E.idx new file mode 100644 index 0000000..6ef3b61 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.51C643297D71824E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.563CA68A2F813B9E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.563CA68A2F813B9E.idx new file mode 100644 index 0000000..ea943a9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.563CA68A2F813B9E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56ED8E0759E43482.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56ED8E0759E43482.idx new file mode 100644 index 0000000..84c7191 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56ED8E0759E43482.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.61DE1825786046CA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.61DE1825786046CA.idx new file mode 100644 index 0000000..f0ba253 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.61DE1825786046CA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.AA6ACBD494D41462.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.AA6ACBD494D41462.idx new file mode 100644 index 0000000..f4197a0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.AA6ACBD494D41462.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B672BA53677E3C6D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B672BA53677E3C6D.idx new file mode 100644 index 0000000..d4f6b64 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B672BA53677E3C6D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.C38A4B9EBA0A3F19.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.C38A4B9EBA0A3F19.idx new file mode 100644 index 0000000..14db5fd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.C38A4B9EBA0A3F19.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DF0909A15A6F95FA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DF0909A15A6F95FA.idx new file mode 100644 index 0000000..e564ca4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DF0909A15A6F95FA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.06F4C844F26E0444.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.06F4C844F26E0444.idx new file mode 100644 index 0000000..c662d4b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.06F4C844F26E0444.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1BCDA27893891AE8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1BCDA27893891AE8.idx new file mode 100644 index 0000000..bed8daf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1BCDA27893891AE8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2E85F431138DFC2F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2E85F431138DFC2F.idx new file mode 100644 index 0000000..8b15645 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2E85F431138DFC2F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.367A81F8743432ED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.367A81F8743432ED.idx new file mode 100644 index 0000000..68bba22 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.367A81F8743432ED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.49F023B03D4BAD06.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.49F023B03D4BAD06.idx new file mode 100644 index 0000000..7ace209 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.49F023B03D4BAD06.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.553B89F1F82086A4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.553B89F1F82086A4.idx new file mode 100644 index 0000000..84e1ffc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.553B89F1F82086A4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.81B948FB3A6CEDA5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.81B948FB3A6CEDA5.idx new file mode 100644 index 0000000..ccc18db Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.81B948FB3A6CEDA5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.857E92313C2419E9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.857E92313C2419E9.idx new file mode 100644 index 0000000..987e622 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.857E92313C2419E9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B0422270014971E7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B0422270014971E7.idx new file mode 100644 index 0000000..3685051 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B0422270014971E7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C0DD07E88E6FB1FA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C0DD07E88E6FB1FA.idx new file mode 100644 index 0000000..6a3a151 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C0DD07E88E6FB1FA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CE52A9DFF5C9F22F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CE52A9DFF5C9F22F.idx new file mode 100644 index 0000000..6fc7692 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CE52A9DFF5C9F22F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.D9DD89E433E23838.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.D9DD89E433E23838.idx new file mode 100644 index 0000000..d1ff6e3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.D9DD89E433E23838.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DC06C8AD0B02A93D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DC06C8AD0B02A93D.idx new file mode 100644 index 0000000..fa9f7ec Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DC06C8AD0B02A93D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2D143F679B576B21.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2D143F679B576B21.idx new file mode 100644 index 0000000..474fb27 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2D143F679B576B21.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2F87397F52A57664.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2F87397F52A57664.idx new file mode 100644 index 0000000..b6df7c0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.2F87397F52A57664.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.41C14967F75BF6DF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.41C14967F75BF6DF.idx new file mode 100644 index 0000000..ad2fbf5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.41C14967F75BF6DF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.590A965CCEFFA539.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.590A965CCEFFA539.idx new file mode 100644 index 0000000..433409a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.590A965CCEFFA539.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.63C7B125485882F5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.63C7B125485882F5.idx new file mode 100644 index 0000000..603c4ed Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.63C7B125485882F5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7EB4DF81AABE91F9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7EB4DF81AABE91F9.idx new file mode 100644 index 0000000..76ed261 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7EB4DF81AABE91F9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.93CFECB07E82E305.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.93CFECB07E82E305.idx new file mode 100644 index 0000000..a55fec8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.93CFECB07E82E305.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.972285B13452E077.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.972285B13452E077.idx new file mode 100644 index 0000000..4469211 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.972285B13452E077.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B7327DB66A300A94.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B7327DB66A300A94.idx new file mode 100644 index 0000000..d2e8c8d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B7327DB66A300A94.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.BA8AB7645E784A0C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.BA8AB7645E784A0C.idx new file mode 100644 index 0000000..9f159cd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.BA8AB7645E784A0C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.D2EBBEA533354CDE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.D2EBBEA533354CDE.idx new file mode 100644 index 0000000..2caab5e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.D2EBBEA533354CDE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F748CB772285E964.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F748CB772285E964.idx new file mode 100644 index 0000000..029aae4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F748CB772285E964.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FF5C40EA7BA3EF55.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FF5C40EA7BA3EF55.idx new file mode 100644 index 0000000..05f9122 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FF5C40EA7BA3EF55.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.0D810250814FADB3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.0D810250814FADB3.idx new file mode 100644 index 0000000..16f2b03 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.0D810250814FADB3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.129296C1351CCB63.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.129296C1351CCB63.idx new file mode 100644 index 0000000..bffcd9e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.129296C1351CCB63.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1B9EAB4466A2E23A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1B9EAB4466A2E23A.idx new file mode 100644 index 0000000..7441cfe Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1B9EAB4466A2E23A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1BDA8876872310CE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1BDA8876872310CE.idx new file mode 100644 index 0000000..a723153 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1BDA8876872310CE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1C632C8F605F0F65.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1C632C8F605F0F65.idx new file mode 100644 index 0000000..f6f2b6c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.1C632C8F605F0F65.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.26E492AB174FBC07.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.26E492AB174FBC07.idx new file mode 100644 index 0000000..45d5847 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.26E492AB174FBC07.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4716505876BF004F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4716505876BF004F.idx new file mode 100644 index 0000000..ac969b6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4716505876BF004F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.72C6888A83E0F6CF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.72C6888A83E0F6CF.idx new file mode 100644 index 0000000..0190aee Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.72C6888A83E0F6CF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DF28E1B49FF4C371.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DF28E1B49FF4C371.idx new file mode 100644 index 0000000..a250025 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DF28E1B49FF4C371.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.ECFF064614B4B6CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.ECFF064614B4B6CB.idx new file mode 100644 index 0000000..39e0c75 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.ECFF064614B4B6CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.EEAAD4081A265626.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.EEAAD4081A265626.idx new file mode 100644 index 0000000..8ac3631 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.EEAAD4081A265626.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F98AE0E853CAE564.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F98AE0E853CAE564.idx new file mode 100644 index 0000000..8057976 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F98AE0E853CAE564.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FC90E87911A1F0D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FC90E87911A1F0D6.idx new file mode 100644 index 0000000..b18995a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FC90E87911A1F0D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.03F5D71C9B79F2B3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.03F5D71C9B79F2B3.idx new file mode 100644 index 0000000..e094046 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.03F5D71C9B79F2B3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.543AD12293AEB3DC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.543AD12293AEB3DC.idx new file mode 100644 index 0000000..a5e857b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.543AD12293AEB3DC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.607CD48D25D28E5B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.607CD48D25D28E5B.idx new file mode 100644 index 0000000..58309cd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.607CD48D25D28E5B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.78E92AAA13D60027.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.78E92AAA13D60027.idx new file mode 100644 index 0000000..f4c4200 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.78E92AAA13D60027.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9CB84EEBC747BE04.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9CB84EEBC747BE04.idx new file mode 100644 index 0000000..9ba5fb9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9CB84EEBC747BE04.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A5ED878AA62DB7A6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A5ED878AA62DB7A6.idx new file mode 100644 index 0000000..151cedc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A5ED878AA62DB7A6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A89A2E4A57C08B8F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A89A2E4A57C08B8F.idx new file mode 100644 index 0000000..4516945 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A89A2E4A57C08B8F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.BE7D53B9D77DF8BD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.BE7D53B9D77DF8BD.idx new file mode 100644 index 0000000..1f07ac6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.BE7D53B9D77DF8BD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.D9ED9C6884F0FA02.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.D9ED9C6884F0FA02.idx new file mode 100644 index 0000000..dbb6473 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.D9ED9C6884F0FA02.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E4FF6E8D9B54279B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E4FF6E8D9B54279B.idx new file mode 100644 index 0000000..77d4b97 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E4FF6E8D9B54279B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E8C5428A0EC06DD4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E8C5428A0EC06DD4.idx new file mode 100644 index 0000000..f0f1d63 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.E8C5428A0EC06DD4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.ECBDADB7722C34BD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.ECBDADB7722C34BD.idx new file mode 100644 index 0000000..663366d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.ECBDADB7722C34BD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.F6D133970C72B264.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.F6D133970C72B264.idx new file mode 100644 index 0000000..6841f1c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.F6D133970C72B264.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0A60E311509F05D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0A60E311509F05D6.idx new file mode 100644 index 0000000..e428abc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0A60E311509F05D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0DAA4E77452D3863.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0DAA4E77452D3863.idx new file mode 100644 index 0000000..2d89765 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0DAA4E77452D3863.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B02A65A588108A1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B02A65A588108A1.idx new file mode 100644 index 0000000..5cd6ba3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B02A65A588108A1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.765661C0A35567D8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.765661C0A35567D8.idx new file mode 100644 index 0000000..2ee0107 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.765661C0A35567D8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.782E723BB922EED9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.782E723BB922EED9.idx new file mode 100644 index 0000000..e76c395 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.782E723BB922EED9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9E54FCFFC854BE5D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9E54FCFFC854BE5D.idx new file mode 100644 index 0000000..307c7af Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9E54FCFFC854BE5D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.AC6B554C18CC6E55.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.AC6B554C18CC6E55.idx new file mode 100644 index 0000000..1261068 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.AC6B554C18CC6E55.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B62C23F1180E93D3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B62C23F1180E93D3.idx new file mode 100644 index 0000000..2cff628 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B62C23F1180E93D3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.D014B29E2B8FD855.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.D014B29E2B8FD855.idx new file mode 100644 index 0000000..a93e6a4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.D014B29E2B8FD855.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.D025186647C89011.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.D025186647C89011.idx new file mode 100644 index 0000000..d7bda49 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.D025186647C89011.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.E14E1BF42E7B9512.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.E14E1BF42E7B9512.idx new file mode 100644 index 0000000..957109a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.E14E1BF42E7B9512.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F0355437782D6C77.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F0355437782D6C77.idx new file mode 100644 index 0000000..8c7f985 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F0355437782D6C77.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F15A0C50FD3AC87C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F15A0C50FD3AC87C.idx new file mode 100644 index 0000000..bd70b52 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F15A0C50FD3AC87C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.020E0AB9FDAB4BA4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.020E0AB9FDAB4BA4.idx new file mode 100644 index 0000000..b8c851d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.020E0AB9FDAB4BA4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.055F8EC0AEB36423.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.055F8EC0AEB36423.idx new file mode 100644 index 0000000..be76389 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.055F8EC0AEB36423.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.2C745C8B6D552F7C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.2C745C8B6D552F7C.idx new file mode 100644 index 0000000..2f89708 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.2C745C8B6D552F7C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.30CC8912087E3159.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.30CC8912087E3159.idx new file mode 100644 index 0000000..400bd35 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.30CC8912087E3159.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.30D319A42A37E9F6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.30D319A42A37E9F6.idx new file mode 100644 index 0000000..88bf89f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.30D319A42A37E9F6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.379C3DD8B5A255F6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.379C3DD8B5A255F6.idx new file mode 100644 index 0000000..21dc79a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.379C3DD8B5A255F6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.386CAB3D0DBC0766.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.386CAB3D0DBC0766.idx new file mode 100644 index 0000000..21b6d0f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.386CAB3D0DBC0766.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.3A7537AB25AC649E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.3A7537AB25AC649E.idx new file mode 100644 index 0000000..d5522b8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.3A7537AB25AC649E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.41B667D4160EFF19.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.41B667D4160EFF19.idx new file mode 100644 index 0000000..e1a5809 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.41B667D4160EFF19.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.579CE085EF18B411.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.579CE085EF18B411.idx new file mode 100644 index 0000000..365f637 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.579CE085EF18B411.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.A786D651431BBDD7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.A786D651431BBDD7.idx new file mode 100644 index 0000000..64f0e06 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.A786D651431BBDD7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.CF82D1C4F3CC83D2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.CF82D1C4F3CC83D2.idx new file mode 100644 index 0000000..b3ee1d1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.CF82D1C4F3CC83D2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.D9FBB7EF038C2AFA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.D9FBB7EF038C2AFA.idx new file mode 100644 index 0000000..df8069a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/crt0.S.D9FBB7EF038C2AFA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.0BEE43747F118B1C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.0BEE43747F118B1C.idx new file mode 100644 index 0000000..d4483e5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.0BEE43747F118B1C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.0CFFFA43D127B253.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.0CFFFA43D127B253.idx new file mode 100644 index 0000000..8d0db3f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.0CFFFA43D127B253.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.13013E0AB3C934A9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.13013E0AB3C934A9.idx new file mode 100644 index 0000000..8d811a6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.13013E0AB3C934A9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.22B67D49C50B2A8B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.22B67D49C50B2A8B.idx new file mode 100644 index 0000000..503979f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.22B67D49C50B2A8B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.3DB6AA6ABDFCFD74.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.3DB6AA6ABDFCFD74.idx new file mode 100644 index 0000000..8239499 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.3DB6AA6ABDFCFD74.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.6902D2A70DE1BDF9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.6902D2A70DE1BDF9.idx new file mode 100644 index 0000000..a10b77a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.6902D2A70DE1BDF9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.775DB3F0FB31E443.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.775DB3F0FB31E443.idx new file mode 100644 index 0000000..b2b9cfc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.775DB3F0FB31E443.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.7EAD3E28153DB483.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.7EAD3E28153DB483.idx new file mode 100644 index 0000000..9eabce1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.7EAD3E28153DB483.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.7F82CE9B70D227F7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.7F82CE9B70D227F7.idx new file mode 100644 index 0000000..83a274f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.7F82CE9B70D227F7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.C3EAC984A721E943.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.C3EAC984A721E943.idx new file mode 100644 index 0000000..7eed126 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.C3EAC984A721E943.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.D5195CF704901148.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.D5195CF704901148.idx new file mode 100644 index 0000000..58069aa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.D5195CF704901148.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.F9594F2ECF02E489.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.F9594F2ECF02E489.idx new file mode 100644 index 0000000..f2e9f96 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.c.F9594F2ECF02E489.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.02A3AED83DC4FB9A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.02A3AED83DC4FB9A.idx new file mode 100644 index 0000000..493bbd3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.02A3AED83DC4FB9A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.1672BDB43FBAD09F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.1672BDB43FBAD09F.idx new file mode 100644 index 0000000..5662c4a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.1672BDB43FBAD09F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.3C1D14AD1E968F31.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.3C1D14AD1E968F31.idx new file mode 100644 index 0000000..1961f22 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.3C1D14AD1E968F31.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.4197049FBDE69862.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.4197049FBDE69862.idx new file mode 100644 index 0000000..1058af3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.4197049FBDE69862.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.43ED877525710942.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.43ED877525710942.idx new file mode 100644 index 0000000..8d055e6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.43ED877525710942.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.62372DD50D296616.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.62372DD50D296616.idx new file mode 100644 index 0000000..ea423ea Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.62372DD50D296616.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.645D4519F8E11EB8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.645D4519F8E11EB8.idx new file mode 100644 index 0000000..fd315fc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.645D4519F8E11EB8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.6B4A994DB248120D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.6B4A994DB248120D.idx new file mode 100644 index 0000000..aed9a80 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.6B4A994DB248120D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.C91324225255D10E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.C91324225255D10E.idx new file mode 100644 index 0000000..db23d45 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.C91324225255D10E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.CD3B212965A9650E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.CD3B212965A9650E.idx new file mode 100644 index 0000000..1264215 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.CD3B212965A9650E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.D4704C2D1DC09827.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.D4704C2D1DC09827.idx new file mode 100644 index 0000000..f93630b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.D4704C2D1DC09827.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.E63EAA1B9F1E0A63.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.E63EAA1B9F1E0A63.idx new file mode 100644 index 0000000..0b3dc3c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/debug_unit.h.E63EAA1B9F1E0A63.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.c.205E5B7F721F903E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.c.205E5B7F721F903E.idx new file mode 100644 index 0000000..cbc4d65 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.c.205E5B7F721F903E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.h.D702BD16942DF973.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.h.D702BD16942DF973.idx new file mode 100644 index 0000000..7e99fa3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.h.D702BD16942DF973.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.h.DFD97CF0B55DCD7F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.h.DFD97CF0B55DCD7F.idx new file mode 100644 index 0000000..b0868cb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/dip_switch.h.DFD97CF0B55DCD7F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.01B815E8D6E0080E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.01B815E8D6E0080E.idx new file mode 100644 index 0000000..b958f0a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.01B815E8D6E0080E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.0FC2E9185960BB0A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.0FC2E9185960BB0A.idx new file mode 100644 index 0000000..893c2c8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.0FC2E9185960BB0A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.106028EFE05325E6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.106028EFE05325E6.idx new file mode 100644 index 0000000..070b68e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.106028EFE05325E6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.139E890699DD263D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.139E890699DD263D.idx new file mode 100644 index 0000000..7d16a37 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.139E890699DD263D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.2230100079EDD19C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.2230100079EDD19C.idx new file mode 100644 index 0000000..9201d09 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.2230100079EDD19C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.333CA3AD385DEABE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.333CA3AD385DEABE.idx new file mode 100644 index 0000000..d46b406 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.333CA3AD385DEABE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.5505E4A04553F49C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.5505E4A04553F49C.idx new file mode 100644 index 0000000..50be924 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.5505E4A04553F49C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.6687EA541B8CC1AD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.6687EA541B8CC1AD.idx new file mode 100644 index 0000000..1a3acc0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.6687EA541B8CC1AD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.678AC09C1C507266.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.678AC09C1C507266.idx new file mode 100644 index 0000000..6291f87 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.678AC09C1C507266.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.8B0DFEDB4B2A4896.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.8B0DFEDB4B2A4896.idx new file mode 100644 index 0000000..9f6e27e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.8B0DFEDB4B2A4896.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.8B3C5047333BC636.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.8B3C5047333BC636.idx new file mode 100644 index 0000000..bbb69ff Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.8B3C5047333BC636.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.F82611B0E8CA1DED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.F82611B0E8CA1DED.idx new file mode 100644 index 0000000..f1afc42 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.F82611B0E8CA1DED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.FD6022C490183F0D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.FD6022C490183F0D.idx new file mode 100644 index 0000000..cc0fb32 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.c.FD6022C490183F0D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.07ED7CC60A851D03.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.07ED7CC60A851D03.idx new file mode 100644 index 0000000..2a45499 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.07ED7CC60A851D03.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.0E74EFF1ED833617.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.0E74EFF1ED833617.idx new file mode 100644 index 0000000..c443a55 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.0E74EFF1ED833617.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2B2289A8BF3947E8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2B2289A8BF3947E8.idx new file mode 100644 index 0000000..6e1037e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2B2289A8BF3947E8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2B7BD0D5093A0471.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2B7BD0D5093A0471.idx new file mode 100644 index 0000000..b1a8d88 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2B7BD0D5093A0471.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2EA5F9E7FBCB09A0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2EA5F9E7FBCB09A0.idx new file mode 100644 index 0000000..78681c9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.2EA5F9E7FBCB09A0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.3DFBB24038889185.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.3DFBB24038889185.idx new file mode 100644 index 0000000..1acfbf1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.3DFBB24038889185.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.4CED32C38B8B9719.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.4CED32C38B8B9719.idx new file mode 100644 index 0000000..09ec4db Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.4CED32C38B8B9719.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.8FEF09B6CF6FBDC5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.8FEF09B6CF6FBDC5.idx new file mode 100644 index 0000000..38de609 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.8FEF09B6CF6FBDC5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.BA2B6D3AC7858B1E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.BA2B6D3AC7858B1E.idx new file mode 100644 index 0000000..b5674a9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.BA2B6D3AC7858B1E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.C1FAC9C3C8596606.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.C1FAC9C3C8596606.idx new file mode 100644 index 0000000..7405730 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.C1FAC9C3C8596606.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.C286DCDBE4772E07.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.C286DCDBE4772E07.idx new file mode 100644 index 0000000..00dcd55 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.C286DCDBE4772E07.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.D0F017C026FA36D1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.D0F017C026FA36D1.idx new file mode 100644 index 0000000..09e1407 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.D0F017C026FA36D1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.E4AD4CB1BD651950.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.E4AD4CB1BD651950.idx new file mode 100644 index 0000000..979a786 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/display_logic.h.E4AD4CB1BD651950.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.11F2A3A5A7E7B571.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.11F2A3A5A7E7B571.idx new file mode 100644 index 0000000..1a673f9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.11F2A3A5A7E7B571.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.16EE79B6F2FDD84F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.16EE79B6F2FDD84F.idx new file mode 100644 index 0000000..f200e2e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.16EE79B6F2FDD84F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.1856CF85CAE4E66F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.1856CF85CAE4E66F.idx new file mode 100644 index 0000000..427cf83 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.1856CF85CAE4E66F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.1947E977586D1BAA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.1947E977586D1BAA.idx new file mode 100644 index 0000000..51ea0ba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.1947E977586D1BAA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.21295C98387DA4D9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.21295C98387DA4D9.idx new file mode 100644 index 0000000..91cea80 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.21295C98387DA4D9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.3C79608BD47F4517.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.3C79608BD47F4517.idx new file mode 100644 index 0000000..2d6e16e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.3C79608BD47F4517.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.4A1775644ECD6EB5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.4A1775644ECD6EB5.idx new file mode 100644 index 0000000..91d78b6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.4A1775644ECD6EB5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.54883015A4A9E2D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.54883015A4A9E2D6.idx new file mode 100644 index 0000000..c4c0122 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.54883015A4A9E2D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.7F55C45E713D7112.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.7F55C45E713D7112.idx new file mode 100644 index 0000000..5d10f90 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.7F55C45E713D7112.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.89A0427A3BDE355D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.89A0427A3BDE355D.idx new file mode 100644 index 0000000..491dea0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.89A0427A3BDE355D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.9454507AE5641191.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.9454507AE5641191.idx new file mode 100644 index 0000000..336199e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.9454507AE5641191.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.C1CE4B425ADFBD64.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.C1CE4B425ADFBD64.idx new file mode 100644 index 0000000..cc9227f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.C1CE4B425ADFBD64.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.D1198D44346A2099.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.D1198D44346A2099.idx new file mode 100644 index 0000000..62778c5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.c.D1198D44346A2099.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.078C5845D1924850.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.078C5845D1924850.idx new file mode 100644 index 0000000..ed0374a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.078C5845D1924850.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.2C9261B0CCC9AF78.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.2C9261B0CCC9AF78.idx new file mode 100644 index 0000000..5025ba4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.2C9261B0CCC9AF78.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.374EEE5196477DB8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.374EEE5196477DB8.idx new file mode 100644 index 0000000..db02183 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.374EEE5196477DB8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.3C335D4A6F2B09CC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.3C335D4A6F2B09CC.idx new file mode 100644 index 0000000..3131fbe Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.3C335D4A6F2B09CC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.3CDC8DCE0513C692.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.3CDC8DCE0513C692.idx new file mode 100644 index 0000000..1547d2e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.3CDC8DCE0513C692.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.4991383913734B28.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.4991383913734B28.idx new file mode 100644 index 0000000..3f1ac99 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.4991383913734B28.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.71EE69D4A277B4D0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.71EE69D4A277B4D0.idx new file mode 100644 index 0000000..c2f4606 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.71EE69D4A277B4D0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.877D9525F8505D6F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.877D9525F8505D6F.idx new file mode 100644 index 0000000..1dd256e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.877D9525F8505D6F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.C0D7AC118CF811C4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.C0D7AC118CF811C4.idx new file mode 100644 index 0000000..939fb35 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.C0D7AC118CF811C4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.CCD2490337879EEE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.CCD2490337879EEE.idx new file mode 100644 index 0000000..27ad389 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.CCD2490337879EEE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.D13CF7AB2C2A5C00.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.D13CF7AB2C2A5C00.idx new file mode 100644 index 0000000..68b0055 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.D13CF7AB2C2A5C00.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.F541BB4581C006FE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.F541BB4581C006FE.idx new file mode 100644 index 0000000..d59c58f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.F541BB4581C006FE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.FA767DBDB2A2A586.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.FA767DBDB2A2A586.idx new file mode 100644 index 0000000..26946c5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/eeprom.h.FA767DBDB2A2A586.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx new file mode 100644 index 0000000..97450e2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx new file mode 100644 index 0000000..b8b78df Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx new file mode 100644 index 0000000..e12ebef Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx new file mode 100644 index 0000000..0f123ad Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.062EADAC85531A55.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.062EADAC85531A55.idx new file mode 100644 index 0000000..6fe9d8c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.062EADAC85531A55.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.46BE6C8C3B959F5D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.46BE6C8C3B959F5D.idx new file mode 100644 index 0000000..f9490ce Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.46BE6C8C3B959F5D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.598D20680087AFCC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.598D20680087AFCC.idx new file mode 100644 index 0000000..0453c54 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.598D20680087AFCC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.7E5578226B20BA62.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.7E5578226B20BA62.idx new file mode 100644 index 0000000..8199884 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.7E5578226B20BA62.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.87B851B0269F9BBA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.87B851B0269F9BBA.idx new file mode 100644 index 0000000..9180dcc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.87B851B0269F9BBA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.A3FEEAFE1E5D1856.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.A3FEEAFE1E5D1856.idx new file mode 100644 index 0000000..cff7675 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.A3FEEAFE1E5D1856.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.A625B7A7EAB79110.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.A625B7A7EAB79110.idx new file mode 100644 index 0000000..a6b9084 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.A625B7A7EAB79110.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.AC3B70E69553F6D3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.AC3B70E69553F6D3.idx new file mode 100644 index 0000000..0625326 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.AC3B70E69553F6D3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.D925212CC6AA1265.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.D925212CC6AA1265.idx new file mode 100644 index 0000000..9a6af2b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.D925212CC6AA1265.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.E879F41AD10F4054.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.E879F41AD10F4054.idx new file mode 100644 index 0000000..678fd6c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.E879F41AD10F4054.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.EE091B158AF2EE3A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.EE091B158AF2EE3A.idx new file mode 100644 index 0000000..f9fd371 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.EE091B158AF2EE3A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.F4F8FB30DCA48D5F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.F4F8FB30DCA48D5F.idx new file mode 100644 index 0000000..d8076fa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.c.F4F8FB30DCA48D5F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.176AEED6EDBBD532.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.176AEED6EDBBD532.idx new file mode 100644 index 0000000..2b07fba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.176AEED6EDBBD532.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.23D2C44FC1C05104.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.23D2C44FC1C05104.idx new file mode 100644 index 0000000..2c598dc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.23D2C44FC1C05104.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.265676A5A6AE9F1A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.265676A5A6AE9F1A.idx new file mode 100644 index 0000000..d9904b0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.265676A5A6AE9F1A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.38482A2E6782099A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.38482A2E6782099A.idx new file mode 100644 index 0000000..4758ce4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.38482A2E6782099A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.3A778F6B1E51306F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.3A778F6B1E51306F.idx new file mode 100644 index 0000000..8c7afc5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.3A778F6B1E51306F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.3AE9C2682138FD95.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.3AE9C2682138FD95.idx new file mode 100644 index 0000000..f791aca Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.3AE9C2682138FD95.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.5CE8A201673AA433.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.5CE8A201673AA433.idx new file mode 100644 index 0000000..420fdda Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.5CE8A201673AA433.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.5DE0CE01C6191C5B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.5DE0CE01C6191C5B.idx new file mode 100644 index 0000000..4d35832 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.5DE0CE01C6191C5B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.834E2E407CAFC078.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.834E2E407CAFC078.idx new file mode 100644 index 0000000..4192e7f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.834E2E407CAFC078.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.884178EAB53F3047.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.884178EAB53F3047.idx new file mode 100644 index 0000000..d4c5ec5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.884178EAB53F3047.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.9F069F06696C1493.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.9F069F06696C1493.idx new file mode 100644 index 0000000..e0c0fd3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.9F069F06696C1493.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.C5D8C0BCCD3830B9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.C5D8C0BCCD3830B9.idx new file mode 100644 index 0000000..ab005bd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/ht1621.h.C5D8C0BCCD3830B9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.2B1E044CFA50565C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.2B1E044CFA50565C.idx new file mode 100644 index 0000000..36dd71c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.2B1E044CFA50565C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.2EF4E3BCA5173AED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.2EF4E3BCA5173AED.idx new file mode 100644 index 0000000..e4b050e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.2EF4E3BCA5173AED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.45F151CF06A7152C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.45F151CF06A7152C.idx new file mode 100644 index 0000000..7a9a7a1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.45F151CF06A7152C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.4F41B502E6247CEA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.4F41B502E6247CEA.idx new file mode 100644 index 0000000..826b1c6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.4F41B502E6247CEA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.604BCE1F49AFEF61.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.604BCE1F49AFEF61.idx new file mode 100644 index 0000000..aebdd14 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.604BCE1F49AFEF61.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.9084D968D2313808.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.9084D968D2313808.idx new file mode 100644 index 0000000..80044ba Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.9084D968D2313808.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.B72F0FAB0F7B0A20.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.B72F0FAB0F7B0A20.idx new file mode 100644 index 0000000..f87bb5d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.B72F0FAB0F7B0A20.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.BDD96BB989D769F9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.BDD96BB989D769F9.idx new file mode 100644 index 0000000..a40a675 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.BDD96BB989D769F9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.C31C42429AD71DA4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.C31C42429AD71DA4.idx new file mode 100644 index 0000000..100eff1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.C31C42429AD71DA4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.C5ABB66322A3AC2D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.C5ABB66322A3AC2D.idx new file mode 100644 index 0000000..731dbc5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.C5ABB66322A3AC2D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.CBEE140036018686.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.CBEE140036018686.idx new file mode 100644 index 0000000..25553bf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.CBEE140036018686.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.D014F8242E32DB46.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.D014F8242E32DB46.idx new file mode 100644 index 0000000..5a2a07e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.D014F8242E32DB46.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.EC08772C01E9B111.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.EC08772C01E9B111.idx new file mode 100644 index 0000000..4aeb2f0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/includes.h.EC08772C01E9B111.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.0CB39DA4C561D32C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.0CB39DA4C561D32C.idx new file mode 100644 index 0000000..4f87f9b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.0CB39DA4C561D32C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.2F17DB59D655E0E6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.2F17DB59D655E0E6.idx new file mode 100644 index 0000000..7131e00 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.2F17DB59D655E0E6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.37B5DC6CD1FBABF6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.37B5DC6CD1FBABF6.idx new file mode 100644 index 0000000..3724977 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.37B5DC6CD1FBABF6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.47E4B19E3C00FF64.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.47E4B19E3C00FF64.idx new file mode 100644 index 0000000..c33bb6b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.47E4B19E3C00FF64.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.52453D3BBDB14702.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.52453D3BBDB14702.idx new file mode 100644 index 0000000..ba0b2e1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.52453D3BBDB14702.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.679F46C5EFBD0185.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.679F46C5EFBD0185.idx new file mode 100644 index 0000000..b4151b0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.679F46C5EFBD0185.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.751B22931CBBD024.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.751B22931CBBD024.idx new file mode 100644 index 0000000..7baeefc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.751B22931CBBD024.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.A1DE5169EE231C53.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.A1DE5169EE231C53.idx new file mode 100644 index 0000000..7075c80 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.A1DE5169EE231C53.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.C60639BD644F6996.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.C60639BD644F6996.idx new file mode 100644 index 0000000..9b54f88 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.C60639BD644F6996.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.E50823C20721A7F6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.E50823C20721A7F6.idx new file mode 100644 index 0000000..50b250a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.E50823C20721A7F6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.F2433578ED359190.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.F2433578ED359190.idx new file mode 100644 index 0000000..68a9873 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.F2433578ED359190.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.F766D6F4C73AFF09.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.F766D6F4C73AFF09.idx new file mode 100644 index 0000000..a5fa302 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.c.F766D6F4C73AFF09.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.1A0145C1D306C1A5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.1A0145C1D306C1A5.idx new file mode 100644 index 0000000..1d5edd3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.1A0145C1D306C1A5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.2B7B78FB04EB46EE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.2B7B78FB04EB46EE.idx new file mode 100644 index 0000000..fcf0eb9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.2B7B78FB04EB46EE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.3DBB34F41A8B9F31.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.3DBB34F41A8B9F31.idx new file mode 100644 index 0000000..8418ce4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.3DBB34F41A8B9F31.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.42B532C309BDBDE3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.42B532C309BDBDE3.idx new file mode 100644 index 0000000..1f830e8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.42B532C309BDBDE3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.5B879B12ADA9DC6C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.5B879B12ADA9DC6C.idx new file mode 100644 index 0000000..ab0d933 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.5B879B12ADA9DC6C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.600B879FF2228336.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.600B879FF2228336.idx new file mode 100644 index 0000000..a2a6b72 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.600B879FF2228336.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.6A163F0218F91E1A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.6A163F0218F91E1A.idx new file mode 100644 index 0000000..1bf0c56 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.6A163F0218F91E1A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.926B4694550C816D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.926B4694550C816D.idx new file mode 100644 index 0000000..ccd808e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.926B4694550C816D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.9332F3B36E727DD2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.9332F3B36E727DD2.idx new file mode 100644 index 0000000..640e349 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.9332F3B36E727DD2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.D3EFAD615D843476.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.D3EFAD615D843476.idx new file mode 100644 index 0000000..4b303d0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.D3EFAD615D843476.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.DC9F105FC385EBE2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.DC9F105FC385EBE2.idx new file mode 100644 index 0000000..a8e2547 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.DC9F105FC385EBE2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.F148369DBB654E0B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.F148369DBB654E0B.idx new file mode 100644 index 0000000..eef4292 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/key_logic.h.F148369DBB654E0B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx new file mode 100644 index 0000000..7ba36e3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx new file mode 100644 index 0000000..9c903fa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.0792FEC70532FA6D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.0792FEC70532FA6D.idx new file mode 100644 index 0000000..71e25ed Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.0792FEC70532FA6D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.23B51A31026176AF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.23B51A31026176AF.idx new file mode 100644 index 0000000..e7bab4e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.23B51A31026176AF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.2406501E1788812A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.2406501E1788812A.idx new file mode 100644 index 0000000..f84e72a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.2406501E1788812A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.2F8B77C5EA68EAEA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.2F8B77C5EA68EAEA.idx new file mode 100644 index 0000000..a2ad2fa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.2F8B77C5EA68EAEA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.3C524A6A66D83EDF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.3C524A6A66D83EDF.idx new file mode 100644 index 0000000..a0a87df Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.3C524A6A66D83EDF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.4CCBA6E102D4B62B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.4CCBA6E102D4B62B.idx new file mode 100644 index 0000000..cb911c1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.4CCBA6E102D4B62B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.4D49BE41EDAD602B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.4D49BE41EDAD602B.idx new file mode 100644 index 0000000..edfa664 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.4D49BE41EDAD602B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.51B9B53CDD818A0A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.51B9B53CDD818A0A.idx new file mode 100644 index 0000000..a87ecb5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.51B9B53CDD818A0A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.6FB6887CFF05F212.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.6FB6887CFF05F212.idx new file mode 100644 index 0000000..437782a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.6FB6887CFF05F212.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.9154DBC3AA64D07E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.9154DBC3AA64D07E.idx new file mode 100644 index 0000000..23613c0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.9154DBC3AA64D07E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.9C34A2FCF08CB7A7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.9C34A2FCF08CB7A7.idx new file mode 100644 index 0000000..9bee296 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.9C34A2FCF08CB7A7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.A9293A609F2E2C2C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.A9293A609F2E2C2C.idx new file mode 100644 index 0000000..8c4d4e1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.A9293A609F2E2C2C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.ED9ACEF817DDE74A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.ED9ACEF817DDE74A.idx new file mode 100644 index 0000000..6ecaa3a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/macro.h.ED9ACEF817DDE74A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.01BFEEC490E82D96.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.01BFEEC490E82D96.idx new file mode 100644 index 0000000..94df3a1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.01BFEEC490E82D96.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.048DF5743A0CF715.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.048DF5743A0CF715.idx new file mode 100644 index 0000000..7a97bfd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.048DF5743A0CF715.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.0BBED34F73AF8A56.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.0BBED34F73AF8A56.idx new file mode 100644 index 0000000..3eb7dae Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.0BBED34F73AF8A56.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.13E11750DDA28728.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.13E11750DDA28728.idx new file mode 100644 index 0000000..28fe7e6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.13E11750DDA28728.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.2A9F5E98E8EC9A7C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.2A9F5E98E8EC9A7C.idx new file mode 100644 index 0000000..57ad4f6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.2A9F5E98E8EC9A7C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.30F09A80E52C700D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.30F09A80E52C700D.idx new file mode 100644 index 0000000..f15d902 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.30F09A80E52C700D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.35B6FB03F7885E5F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.35B6FB03F7885E5F.idx new file mode 100644 index 0000000..1cd8a44 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.35B6FB03F7885E5F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.6CB7ED4FCDDA806C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.6CB7ED4FCDDA806C.idx new file mode 100644 index 0000000..07f79e1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.6CB7ED4FCDDA806C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.77F82630AAE619EE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.77F82630AAE619EE.idx new file mode 100644 index 0000000..946e7e4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.77F82630AAE619EE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.A5F8611B5455B455.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.A5F8611B5455B455.idx new file mode 100644 index 0000000..8a8efd7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.A5F8611B5455B455.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.C7F3CA2E7873FFD7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.C7F3CA2E7873FFD7.idx new file mode 100644 index 0000000..6fa7adc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.C7F3CA2E7873FFD7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.F63D70146FBFF70C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.F63D70146FBFF70C.idx new file mode 100644 index 0000000..c60599d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.F63D70146FBFF70C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.FD0F4A9F0DDB5BD8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.FD0F4A9F0DDB5BD8.idx new file mode 100644 index 0000000..115db69 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/main.c.FD0F4A9F0DDB5BD8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2597B2DB7174338F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2597B2DB7174338F.idx new file mode 100644 index 0000000..1853040 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2597B2DB7174338F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.28BEA58C29106C43.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.28BEA58C29106C43.idx new file mode 100644 index 0000000..f5b34b9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.28BEA58C29106C43.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2AE5B4A75145463E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2AE5B4A75145463E.idx new file mode 100644 index 0000000..d611a4c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2AE5B4A75145463E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2D89E3ADB768BE9F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2D89E3ADB768BE9F.idx new file mode 100644 index 0000000..baa13bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.2D89E3ADB768BE9F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.5802F13B567DB7DF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.5802F13B567DB7DF.idx new file mode 100644 index 0000000..ea1482d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.5802F13B567DB7DF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.668AF1B98EF05971.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.668AF1B98EF05971.idx new file mode 100644 index 0000000..1de8302 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.668AF1B98EF05971.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.74941E4979208A41.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.74941E4979208A41.idx new file mode 100644 index 0000000..34efd43 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.74941E4979208A41.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.7F3C194F2DB873CB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.7F3C194F2DB873CB.idx new file mode 100644 index 0000000..75c9386 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.7F3C194F2DB873CB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.A5C8DA551E68E339.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.A5C8DA551E68E339.idx new file mode 100644 index 0000000..219c0f5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.A5C8DA551E68E339.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.BA0997D0632F478D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.BA0997D0632F478D.idx new file mode 100644 index 0000000..2b76d6f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.BA0997D0632F478D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.CCA4D5BCC1BD7ADD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.CCA4D5BCC1BD7ADD.idx new file mode 100644 index 0000000..3f86bb0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.CCA4D5BCC1BD7ADD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.D3F1E6E6D995A222.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.D3F1E6E6D995A222.idx new file mode 100644 index 0000000..72884d1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.D3F1E6E6D995A222.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.F69D08469DEB9F61.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.F69D08469DEB9F61.idx new file mode 100644 index 0000000..eb98d76 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_initial.c.F69D08469DEB9F61.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.31483C295CA09016.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.31483C295CA09016.idx new file mode 100644 index 0000000..eb60885 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.31483C295CA09016.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.37B8AA6552792C26.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.37B8AA6552792C26.idx new file mode 100644 index 0000000..f0225e6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.37B8AA6552792C26.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5B07936820CEB328.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5B07936820CEB328.idx new file mode 100644 index 0000000..dcec5fc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5B07936820CEB328.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.6E7D56EEF9B040E4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.6E7D56EEF9B040E4.idx new file mode 100644 index 0000000..ceefe66 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.6E7D56EEF9B040E4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.7EA7E1DBD7BABA45.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.7EA7E1DBD7BABA45.idx new file mode 100644 index 0000000..f2010e4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.7EA7E1DBD7BABA45.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.82C08E640AA9A189.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.82C08E640AA9A189.idx new file mode 100644 index 0000000..8b46f9d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.82C08E640AA9A189.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.8D53145BC7C7D07B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.8D53145BC7C7D07B.idx new file mode 100644 index 0000000..ff9584f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.8D53145BC7C7D07B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9440DA4A2D28C84A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9440DA4A2D28C84A.idx new file mode 100644 index 0000000..9d213a3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9440DA4A2D28C84A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A0919C60FBF37E2E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A0919C60FBF37E2E.idx new file mode 100644 index 0000000..7de98db Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A0919C60FBF37E2E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B205018EBB92C554.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B205018EBB92C554.idx new file mode 100644 index 0000000..42a36f1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B205018EBB92C554.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B40B47346FB2FC6E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B40B47346FB2FC6E.idx new file mode 100644 index 0000000..7a3d6a7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B40B47346FB2FC6E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.C3D4B89FB1A0741F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.C3D4B89FB1A0741F.idx new file mode 100644 index 0000000..86359ab Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.C3D4B89FB1A0741F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.F4EE0E9C26E8D12E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.F4EE0E9C26E8D12E.idx new file mode 100644 index 0000000..210a6a7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mcu_interrupt.c.F4EE0E9C26E8D12E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.117A267220E6AD86.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.117A267220E6AD86.idx new file mode 100644 index 0000000..2870e3e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.117A267220E6AD86.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.294B8D96D85F570D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.294B8D96D85F570D.idx new file mode 100644 index 0000000..37d0b2a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.294B8D96D85F570D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.2D694E1D4AC9BF5F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.2D694E1D4AC9BF5F.idx new file mode 100644 index 0000000..5bdb6c1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.2D694E1D4AC9BF5F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.43CC62DC65889367.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.43CC62DC65889367.idx new file mode 100644 index 0000000..7662e8e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.43CC62DC65889367.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.4F8D42F452A4A904.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.4F8D42F452A4A904.idx new file mode 100644 index 0000000..0925195 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.4F8D42F452A4A904.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.5B2269C7B220A592.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.5B2269C7B220A592.idx new file mode 100644 index 0000000..ddb7a23 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.5B2269C7B220A592.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.603608E8B166FC8A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.603608E8B166FC8A.idx new file mode 100644 index 0000000..c091456 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.603608E8B166FC8A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.73D17A3D9AE0FBF8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.73D17A3D9AE0FBF8.idx new file mode 100644 index 0000000..2aa62de Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.73D17A3D9AE0FBF8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.7ACF4D5DDC0F8CC9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.7ACF4D5DDC0F8CC9.idx new file mode 100644 index 0000000..cf7538b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.7ACF4D5DDC0F8CC9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.9202CFB00E4243E6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.9202CFB00E4243E6.idx new file mode 100644 index 0000000..b8b6fdd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.9202CFB00E4243E6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.C6EFBC5F6A9708FE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.C6EFBC5F6A9708FE.idx new file mode 100644 index 0000000..508ed6d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.C6EFBC5F6A9708FE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.D1F90EB5CEE851E8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.D1F90EB5CEE851E8.idx new file mode 100644 index 0000000..4a3f8b7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.D1F90EB5CEE851E8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.F49BEB0A8BED967A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.F49BEB0A8BED967A.idx new file mode 100644 index 0000000..29b49bf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/mem_init.c.F49BEB0A8BED967A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.73D9BDD96D2D94BD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.73D9BDD96D2D94BD.idx new file mode 100644 index 0000000..f5ab97d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.73D9BDD96D2D94BD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.DE59FA4DDC1953A0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.DE59FA4DDC1953A0.idx new file mode 100644 index 0000000..61b13df Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.DE59FA4DDC1953A0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.E2F77D6822691C3B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.E2F77D6822691C3B.idx new file mode 100644 index 0000000..08f7ef0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.E2F77D6822691C3B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.EC18BDD8547139F7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.EC18BDD8547139F7.idx new file mode 100644 index 0000000..e6de47a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.EC18BDD8547139F7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.F12D581C0BADA220.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.F12D581C0BADA220.idx new file mode 100644 index 0000000..1089138 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.c.F12D581C0BADA220.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.19E1D3AD1688B5F5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.19E1D3AD1688B5F5.idx new file mode 100644 index 0000000..277bf86 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.19E1D3AD1688B5F5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.4A409B260A6D0A83.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.4A409B260A6D0A83.idx new file mode 100644 index 0000000..511f47c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.4A409B260A6D0A83.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.5350E45A816C8A44.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.5350E45A816C8A44.idx new file mode 100644 index 0000000..dba80c6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.5350E45A816C8A44.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.A292C0BF53A6AFDE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.A292C0BF53A6AFDE.idx new file mode 100644 index 0000000..f1392d7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.A292C0BF53A6AFDE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.D78F8F0D4F4A3CCF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.D78F8F0D4F4A3CCF.idx new file mode 100644 index 0000000..5f201e7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.D78F8F0D4F4A3CCF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.E3B9CB0134324F4F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.E3B9CB0134324F4F.idx new file mode 100644 index 0000000..b74132b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/model_detection.h.E3B9CB0134324F4F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.33D4B142B7B3717B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.33D4B142B7B3717B.idx new file mode 100644 index 0000000..72ae732 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.33D4B142B7B3717B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.55477E8748D90B99.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.55477E8748D90B99.idx new file mode 100644 index 0000000..0f6cc0f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.55477E8748D90B99.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.6902F23AF155D9F8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.6902F23AF155D9F8.idx new file mode 100644 index 0000000..fe6250a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.6902F23AF155D9F8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.74F51E6C531F44BE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.74F51E6C531F44BE.idx new file mode 100644 index 0000000..c1020b4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.74F51E6C531F44BE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.8EBE86D294A57164.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.8EBE86D294A57164.idx new file mode 100644 index 0000000..aee144e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.8EBE86D294A57164.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.9B225A2D90E2081A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.9B225A2D90E2081A.idx new file mode 100644 index 0000000..8d17a33 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.9B225A2D90E2081A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.B3E664B57184E75A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.B3E664B57184E75A.idx new file mode 100644 index 0000000..87689df Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.B3E664B57184E75A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.B8CE78EB06EED552.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.B8CE78EB06EED552.idx new file mode 100644 index 0000000..3150799 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.B8CE78EB06EED552.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.C63C45B7A66E09C9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.C63C45B7A66E09C9.idx new file mode 100644 index 0000000..28c3ed5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.C63C45B7A66E09C9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.D65D9E9ED5C84FA6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.D65D9E9ED5C84FA6.idx new file mode 100644 index 0000000..171869d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.D65D9E9ED5C84FA6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.FCAF32B56CAB6AE4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.FCAF32B56CAB6AE4.idx new file mode 100644 index 0000000..327320d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.FCAF32B56CAB6AE4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.FFCA93B1073B17A5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.FFCA93B1073B17A5.idx new file mode 100644 index 0000000..bb8161c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.c.FFCA93B1073B17A5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.24C8A6320823FD43.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.24C8A6320823FD43.idx new file mode 100644 index 0000000..bc19385 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.24C8A6320823FD43.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.307C2DC25F9C27B5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.307C2DC25F9C27B5.idx new file mode 100644 index 0000000..5d85384 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.307C2DC25F9C27B5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.59F48650B3D7BBEF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.59F48650B3D7BBEF.idx new file mode 100644 index 0000000..32a7db8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.59F48650B3D7BBEF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.7617B99F771A7F2D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.7617B99F771A7F2D.idx new file mode 100644 index 0000000..4c431b2 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.7617B99F771A7F2D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.88F538C375F67A54.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.88F538C375F67A54.idx new file mode 100644 index 0000000..36d118a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.88F538C375F67A54.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.93E460EE1CB67C6C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.93E460EE1CB67C6C.idx new file mode 100644 index 0000000..6c2f495 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.93E460EE1CB67C6C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.B78A48FCC3B42E52.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.B78A48FCC3B42E52.idx new file mode 100644 index 0000000..3d8124a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.B78A48FCC3B42E52.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.D351E0294C0774DF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.D351E0294C0774DF.idx new file mode 100644 index 0000000..ecdeb5f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.D351E0294C0774DF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F072BE8F5FBE97F8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F072BE8F5FBE97F8.idx new file mode 100644 index 0000000..ce8d83d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F072BE8F5FBE97F8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F0953E54F743A6D7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F0953E54F743A6D7.idx new file mode 100644 index 0000000..4269857 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F0953E54F743A6D7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F1B435139BC8DCEF.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F1B435139BC8DCEF.idx new file mode 100644 index 0000000..f0e8eb1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F1B435139BC8DCEF.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F23E245E1D07F7ED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F23E245E1D07F7ED.idx new file mode 100644 index 0000000..45bde93 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/myrelay.h.F23E245E1D07F7ED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.78A7A61E76C929EB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.78A7A61E76C929EB.idx new file mode 100644 index 0000000..f52f8a7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.78A7A61E76C929EB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.7A123A6457328CCD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.7A123A6457328CCD.idx new file mode 100644 index 0000000..5db527a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.7A123A6457328CCD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.7F274CBF0003F9C8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.7F274CBF0003F9C8.idx new file mode 100644 index 0000000..3feecbe Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.7F274CBF0003F9C8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.999BDAB3A873BEE4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.999BDAB3A873BEE4.idx new file mode 100644 index 0000000..95fe739 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.999BDAB3A873BEE4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.C977EE169E433875.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.C977EE169E433875.idx new file mode 100644 index 0000000..cb7de50 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.C977EE169E433875.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.D9B719514368AADB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.D9B719514368AADB.idx new file mode 100644 index 0000000..7144fff Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.c.D9B719514368AADB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.1F69BAD32EBF87F8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.1F69BAD32EBF87F8.idx new file mode 100644 index 0000000..8b4e2cb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.1F69BAD32EBF87F8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.27E1BBB5A4A6D730.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.27E1BBB5A4A6D730.idx new file mode 100644 index 0000000..4f35362 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.27E1BBB5A4A6D730.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.29B511AF70BC0470.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.29B511AF70BC0470.idx new file mode 100644 index 0000000..4013974 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.29B511AF70BC0470.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.5A7F01100CED7E7E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.5A7F01100CED7E7E.idx new file mode 100644 index 0000000..4282a50 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.5A7F01100CED7E7E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.73EF1509FD529A93.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.73EF1509FD529A93.idx new file mode 100644 index 0000000..3ace324 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.73EF1509FD529A93.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.C54F466BD1EAEF56.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.C54F466BD1EAEF56.idx new file mode 100644 index 0000000..ce6dea6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/rf_uart_protocol.h.C54F466BD1EAEF56.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx new file mode 100644 index 0000000..7246716 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx new file mode 100644 index 0000000..fe1a570 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx new file mode 100644 index 0000000..18b1175 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx new file mode 100644 index 0000000..ce86ad5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx new file mode 100644 index 0000000..0c8f0af Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx new file mode 100644 index 0000000..28f0331 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx new file mode 100644 index 0000000..cfbf938 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx new file mode 100644 index 0000000..e82138a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx new file mode 100644 index 0000000..28d5bcc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx new file mode 100644 index 0000000..bef02f7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.126A28DFB0293F6D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.126A28DFB0293F6D.idx new file mode 100644 index 0000000..460fcae Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.126A28DFB0293F6D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.5E38A6894AF5A1F0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.5E38A6894AF5A1F0.idx new file mode 100644 index 0000000..155ef65 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.5E38A6894AF5A1F0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.775972F14DB852DD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.775972F14DB852DD.idx new file mode 100644 index 0000000..873b96c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.775972F14DB852DD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.FAF6472352AEA74F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.FAF6472352AEA74F.idx new file mode 100644 index 0000000..5207052 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/stdlib.h.FAF6472352AEA74F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx new file mode 100644 index 0000000..ee40b1b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx new file mode 100644 index 0000000..585127b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.3004205700B4F059.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.3004205700B4F059.idx new file mode 100644 index 0000000..8b57da3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.3004205700B4F059.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.475B8B3241A2A01A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.475B8B3241A2A01A.idx new file mode 100644 index 0000000..938c9c1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.475B8B3241A2A01A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.5F9DCE543EB01ECB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.5F9DCE543EB01ECB.idx new file mode 100644 index 0000000..7473c9d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.5F9DCE543EB01ECB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.727F91DA7AF854F4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.727F91DA7AF854F4.idx new file mode 100644 index 0000000..f03487c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.727F91DA7AF854F4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.8F7FC4ECD9D25B4D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.8F7FC4ECD9D25B4D.idx new file mode 100644 index 0000000..8c2ebbd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.8F7FC4ECD9D25B4D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.E8CB937D2285BB7F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.E8CB937D2285BB7F.idx new file mode 100644 index 0000000..1658c7b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.c.E8CB937D2285BB7F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.086548FFC373D024.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.086548FFC373D024.idx new file mode 100644 index 0000000..ecd3d7f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.086548FFC373D024.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.1A87B0CFCE860AE8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.1A87B0CFCE860AE8.idx new file mode 100644 index 0000000..4e23c02 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.1A87B0CFCE860AE8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.674442C04AAFAAF6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.674442C04AAFAAF6.idx new file mode 100644 index 0000000..442ef1c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.674442C04AAFAAF6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.B35F002F34667A7D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.B35F002F34667A7D.idx new file mode 100644 index 0000000..694909c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.B35F002F34667A7D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.B9938DDF247E330F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.B9938DDF247E330F.idx new file mode 100644 index 0000000..6b6d194 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.B9938DDF247E330F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.E31A57CBD5B029A5.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.E31A57CBD5B029A5.idx new file mode 100644 index 0000000..3adf19c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.E31A57CBD5B029A5.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.F0F0EFB70C5B5ED9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.F0F0EFB70C5B5ED9.idx new file mode 100644 index 0000000..b25cc08 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/switch_fun.h.F0F0EFB70C5B5ED9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.015DA15CD57C5D01.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.015DA15CD57C5D01.idx new file mode 100644 index 0000000..eb981a5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.015DA15CD57C5D01.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.0E736234DFD1221C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.0E736234DFD1221C.idx new file mode 100644 index 0000000..b5acfa6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.0E736234DFD1221C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.10D8353F53EF7D32.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.10D8353F53EF7D32.idx new file mode 100644 index 0000000..db44068 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.10D8353F53EF7D32.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.1CE3B9E773BD5E83.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.1CE3B9E773BD5E83.idx new file mode 100644 index 0000000..07ac099 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.1CE3B9E773BD5E83.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.1E1AE931E12D5955.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.1E1AE931E12D5955.idx new file mode 100644 index 0000000..916e769 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.1E1AE931E12D5955.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.27363456AECB2C60.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.27363456AECB2C60.idx new file mode 100644 index 0000000..a9f9b43 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.27363456AECB2C60.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.4529F0104B5EC5EB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.4529F0104B5EC5EB.idx new file mode 100644 index 0000000..eb043b3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.4529F0104B5EC5EB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.4A23D74B810C9958.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.4A23D74B810C9958.idx new file mode 100644 index 0000000..a72cc31 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.4A23D74B810C9958.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.69F6F224C1481817.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.69F6F224C1481817.idx new file mode 100644 index 0000000..2104b6a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.69F6F224C1481817.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.885EEB5FDBBFD368.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.885EEB5FDBBFD368.idx new file mode 100644 index 0000000..ee07a2d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.885EEB5FDBBFD368.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.9D648BCCE53AB868.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.9D648BCCE53AB868.idx new file mode 100644 index 0000000..82e4c44 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.9D648BCCE53AB868.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.A6241E225EBF41A9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.A6241E225EBF41A9.idx new file mode 100644 index 0000000..39c7ad9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.A6241E225EBF41A9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.BF1E05A8789E9D23.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.BF1E05A8789E9D23.idx new file mode 100644 index 0000000..9f7e7ae Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.BF1E05A8789E9D23.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.D5C3CDCA5E47177A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.D5C3CDCA5E47177A.idx new file mode 100644 index 0000000..12c9cfa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.c.D5C3CDCA5E47177A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.057E914874A7AA56.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.057E914874A7AA56.idx new file mode 100644 index 0000000..dfca61b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.057E914874A7AA56.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.20BABCA3371FEA56.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.20BABCA3371FEA56.idx new file mode 100644 index 0000000..447aad7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.20BABCA3371FEA56.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.2CD14A0E2F2F72B0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.2CD14A0E2F2F72B0.idx new file mode 100644 index 0000000..f5aea0f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.2CD14A0E2F2F72B0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.3900428707DA26A6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.3900428707DA26A6.idx new file mode 100644 index 0000000..3355813 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.3900428707DA26A6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.4B9F1D3D36A4B38C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.4B9F1D3D36A4B38C.idx new file mode 100644 index 0000000..b916d67 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.4B9F1D3D36A4B38C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.70E55A3DB05B3085.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.70E55A3DB05B3085.idx new file mode 100644 index 0000000..9f4fa1b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.70E55A3DB05B3085.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.83449822409CFF1D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.83449822409CFF1D.idx new file mode 100644 index 0000000..5ef046c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.83449822409CFF1D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.861FAAF48C1BDFB0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.861FAAF48C1BDFB0.idx new file mode 100644 index 0000000..a72f184 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.861FAAF48C1BDFB0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.AB5271DAE3EF5EE3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.AB5271DAE3EF5EE3.idx new file mode 100644 index 0000000..1a7123f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.AB5271DAE3EF5EE3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.D41E264327EF3D3A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.D41E264327EF3D3A.idx new file mode 100644 index 0000000..99fb697 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.D41E264327EF3D3A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.D4FE4381A42DCAA3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.D4FE4381A42DCAA3.idx new file mode 100644 index 0000000..37c6b46 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.D4FE4381A42DCAA3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.E46D5BB54CAD0EE1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.E46D5BB54CAD0EE1.idx new file mode 100644 index 0000000..5e96be3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.E46D5BB54CAD0EE1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.EBDC76270D2BEB82.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.EBDC76270D2BEB82.idx new file mode 100644 index 0000000..8aec428 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.EBDC76270D2BEB82.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.FA7E398BF2C96BFE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.FA7E398BF2C96BFE.idx new file mode 100644 index 0000000..e2849ac Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tempctrl_unit.h.FA7E398BF2C96BFE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.2C51DCB7A10CA061.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.2C51DCB7A10CA061.idx new file mode 100644 index 0000000..94ec349 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.2C51DCB7A10CA061.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4995B1C706B7E1BA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4995B1C706B7E1BA.idx new file mode 100644 index 0000000..e540eac Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4995B1C706B7E1BA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4B63E1009C7CF09A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4B63E1009C7CF09A.idx new file mode 100644 index 0000000..2993269 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4B63E1009C7CF09A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4CB66E73581E667B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4CB66E73581E667B.idx new file mode 100644 index 0000000..b3ae429 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.4CB66E73581E667B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.65F8F2D42CA0C908.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.65F8F2D42CA0C908.idx new file mode 100644 index 0000000..e10c260 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.65F8F2D42CA0C908.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.C37EDFE81E0AEBE1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.C37EDFE81E0AEBE1.idx new file mode 100644 index 0000000..9fd85f6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.c.C37EDFE81E0AEBE1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.07C117110FE11C53.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.07C117110FE11C53.idx new file mode 100644 index 0000000..5bfca06 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.07C117110FE11C53.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.3DF12553810BDEA7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.3DF12553810BDEA7.idx new file mode 100644 index 0000000..19907b9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.3DF12553810BDEA7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.60A85F33B5A9B0F9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.60A85F33B5A9B0F9.idx new file mode 100644 index 0000000..e258b51 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.60A85F33B5A9B0F9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.9168966CA61F12D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.9168966CA61F12D6.idx new file mode 100644 index 0000000..d7fa946 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.9168966CA61F12D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.B5E6670DBC2CC1F9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.B5E6670DBC2CC1F9.idx new file mode 100644 index 0000000..7701811 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.B5E6670DBC2CC1F9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.B66C1DB7550452D0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.B66C1DB7550452D0.idx new file mode 100644 index 0000000..0943daf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.B66C1DB7550452D0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.D4BF94D7F1235284.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.D4BF94D7F1235284.idx new file mode 100644 index 0000000..a518bc6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/tm1812.h.D4BF94D7F1235284.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.18AD2516E8DBFC6D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.18AD2516E8DBFC6D.idx new file mode 100644 index 0000000..7fc83d9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.18AD2516E8DBFC6D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.2C4337CD994EC316.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.2C4337CD994EC316.idx new file mode 100644 index 0000000..7019fe7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.2C4337CD994EC316.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.3878574E022D9B5D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.3878574E022D9B5D.idx new file mode 100644 index 0000000..046112c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.3878574E022D9B5D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.4ED5784EF21096D3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.4ED5784EF21096D3.idx new file mode 100644 index 0000000..f5ff201 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.4ED5784EF21096D3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.52F80C80B4B26F2C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.52F80C80B4B26F2C.idx new file mode 100644 index 0000000..1cb1b51 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.52F80C80B4B26F2C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.67D3178C4C3274CD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.67D3178C4C3274CD.idx new file mode 100644 index 0000000..498fc97 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.67D3178C4C3274CD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.93DDCDA7198C0FA8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.93DDCDA7198C0FA8.idx new file mode 100644 index 0000000..c5340f6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.93DDCDA7198C0FA8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.A84F4B191175BE35.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.A84F4B191175BE35.idx new file mode 100644 index 0000000..569167b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.A84F4B191175BE35.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.BAA8BC7B89180434.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.BAA8BC7B89180434.idx new file mode 100644 index 0000000..518d404 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.BAA8BC7B89180434.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.C93AF0DCD64DF9D0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.C93AF0DCD64DF9D0.idx new file mode 100644 index 0000000..19374be Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.C93AF0DCD64DF9D0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.DAA1051DA255C6CA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.DAA1051DA255C6CA.idx new file mode 100644 index 0000000..baa9688 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.DAA1051DA255C6CA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.FB509A8ED7ADCC9E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.FB509A8ED7ADCC9E.idx new file mode 100644 index 0000000..8677238 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.c.FB509A8ED7ADCC9E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.0FD1A4AEC2C8CE5F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.0FD1A4AEC2C8CE5F.idx new file mode 100644 index 0000000..3a79ba5 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.0FD1A4AEC2C8CE5F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.1F5EDA835C066BFC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.1F5EDA835C066BFC.idx new file mode 100644 index 0000000..5e5e71d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.1F5EDA835C066BFC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.289C3213252E44E8.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.289C3213252E44E8.idx new file mode 100644 index 0000000..e8d441f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.289C3213252E44E8.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.481889B224160200.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.481889B224160200.idx new file mode 100644 index 0000000..854d145 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.481889B224160200.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.4AE3E025B0200E21.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.4AE3E025B0200E21.idx new file mode 100644 index 0000000..538f1f4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.4AE3E025B0200E21.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.8BA71C78B18B7C1B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.8BA71C78B18B7C1B.idx new file mode 100644 index 0000000..bf41dbe Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.8BA71C78B18B7C1B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.A85B0376D673B42B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.A85B0376D673B42B.idx new file mode 100644 index 0000000..90c8976 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.A85B0376D673B42B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.C6A12E5995359975.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.C6A12E5995359975.idx new file mode 100644 index 0000000..6b6319c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.C6A12E5995359975.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.DCB557A35A842510.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.DCB557A35A842510.idx new file mode 100644 index 0000000..b90fd3e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.DCB557A35A842510.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F24CE006B78C3ABA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F24CE006B78C3ABA.idx new file mode 100644 index 0000000..9d51d79 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F24CE006B78C3ABA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F2EA6A3FF1EDE98B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F2EA6A3FF1EDE98B.idx new file mode 100644 index 0000000..9618e9c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F2EA6A3FF1EDE98B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F92D7BAD95CD34BD.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F92D7BAD95CD34BD.idx new file mode 100644 index 0000000..ca0a45f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/touch_key.h.F92D7BAD95CD34BD.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.082013ED368CEF75.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.082013ED368CEF75.idx new file mode 100644 index 0000000..0b63f4e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.082013ED368CEF75.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.171E20BFAF19FFDA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.171E20BFAF19FFDA.idx new file mode 100644 index 0000000..86d4e1f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.171E20BFAF19FFDA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.4EA7CA08323097C1.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.4EA7CA08323097C1.idx new file mode 100644 index 0000000..9e71dbf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.4EA7CA08323097C1.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.5FA10AA2F5577653.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.5FA10AA2F5577653.idx new file mode 100644 index 0000000..b3e0b2e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.5FA10AA2F5577653.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.5FE6241FD138DEB9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.5FE6241FD138DEB9.idx new file mode 100644 index 0000000..6b4f223 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.5FE6241FD138DEB9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.81E521A2F92F6320.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.81E521A2F92F6320.idx new file mode 100644 index 0000000..819ca29 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.81E521A2F92F6320.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.9168AA50A4926124.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.9168AA50A4926124.idx new file mode 100644 index 0000000..3c676a8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.9168AA50A4926124.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.9E433FF259118595.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.9E433FF259118595.idx new file mode 100644 index 0000000..39c5078 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.9E433FF259118595.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.B07D07640804DC33.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.B07D07640804DC33.idx new file mode 100644 index 0000000..766c938 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.B07D07640804DC33.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.BB85F2B655030A9D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.BB85F2B655030A9D.idx new file mode 100644 index 0000000..8abd204 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.BB85F2B655030A9D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.C36826A8CFC20ABC.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.C36826A8CFC20ABC.idx new file mode 100644 index 0000000..c21f528 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.C36826A8CFC20ABC.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.C4E72F90B8303D23.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.C4E72F90B8303D23.idx new file mode 100644 index 0000000..c4cf381 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.C4E72F90B8303D23.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.D3E2EC18B4602FA2.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.D3E2EC18B4602FA2.idx new file mode 100644 index 0000000..3b10332 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.c.D3E2EC18B4602FA2.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.20B8F8D5A9F7EBF7.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.20B8F8D5A9F7EBF7.idx new file mode 100644 index 0000000..b684c06 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.20B8F8D5A9F7EBF7.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.275F9D25042D325F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.275F9D25042D325F.idx new file mode 100644 index 0000000..a59d5ef Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.275F9D25042D325F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.3C3601FC85E82691.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.3C3601FC85E82691.idx new file mode 100644 index 0000000..9de3941 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.3C3601FC85E82691.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.48BBE24D65F6CF55.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.48BBE24D65F6CF55.idx new file mode 100644 index 0000000..d986ecc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.48BBE24D65F6CF55.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.56F031B193C7A1D6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.56F031B193C7A1D6.idx new file mode 100644 index 0000000..76f0389 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.56F031B193C7A1D6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.579B0A5955F36696.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.579B0A5955F36696.idx new file mode 100644 index 0000000..d060311 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.579B0A5955F36696.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.76C9CCE5CC1305C6.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.76C9CCE5CC1305C6.idx new file mode 100644 index 0000000..b6c991c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.76C9CCE5CC1305C6.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.8C184469CED8B858.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.8C184469CED8B858.idx new file mode 100644 index 0000000..614cfaf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.8C184469CED8B858.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.AE8F047A2895BAAB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.AE8F047A2895BAAB.idx new file mode 100644 index 0000000..7cecadb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.AE8F047A2895BAAB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.B16512AB40FA5EFA.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.B16512AB40FA5EFA.idx new file mode 100644 index 0000000..59f13a8 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.B16512AB40FA5EFA.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.D3BFF14D5A139066.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.D3BFF14D5A139066.idx new file mode 100644 index 0000000..4b6d4be Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.D3BFF14D5A139066.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.E8D0990F29FA5002.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.E8D0990F29FA5002.idx new file mode 100644 index 0000000..ccbfec9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.E8D0990F29FA5002.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.EB9BAE1B47CC7D4E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.EB9BAE1B47CC7D4E.idx new file mode 100644 index 0000000..b963694 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart.h.EB9BAE1B47CC7D4E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.034E26F4881E4CDE.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.034E26F4881E4CDE.idx new file mode 100644 index 0000000..28c109c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.034E26F4881E4CDE.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.16F233BA886FFEF3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.16F233BA886FFEF3.idx new file mode 100644 index 0000000..8434da3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.16F233BA886FFEF3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.1E607D9D82C09E7E.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.1E607D9D82C09E7E.idx new file mode 100644 index 0000000..fe6d3aa Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.1E607D9D82C09E7E.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.3714F1DF6BF753A0.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.3714F1DF6BF753A0.idx new file mode 100644 index 0000000..e2719d4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.3714F1DF6BF753A0.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.40101BD08FD08B21.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.40101BD08FD08B21.idx new file mode 100644 index 0000000..5574c62 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.40101BD08FD08B21.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.407B7E8B1A11C60C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.407B7E8B1A11C60C.idx new file mode 100644 index 0000000..8a390dd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.407B7E8B1A11C60C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.46CBE24C68E8A3C4.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.46CBE24C68E8A3C4.idx new file mode 100644 index 0000000..356b493 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.46CBE24C68E8A3C4.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.70F4C73BAE5A95ED.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.70F4C73BAE5A95ED.idx new file mode 100644 index 0000000..397e04c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.70F4C73BAE5A95ED.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.7F7BE46AC7E7A572.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.7F7BE46AC7E7A572.idx new file mode 100644 index 0000000..c61c041 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.7F7BE46AC7E7A572.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.9FE67B4748ADEEBB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.9FE67B4748ADEEBB.idx new file mode 100644 index 0000000..790129c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.9FE67B4748ADEEBB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.BC6AEF1D800D6B5B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.BC6AEF1D800D6B5B.idx new file mode 100644 index 0000000..6ea918d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.BC6AEF1D800D6B5B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.DA5088CB4D6E2A0D.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.DA5088CB4D6E2A0D.idx new file mode 100644 index 0000000..adc5234 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.DA5088CB4D6E2A0D.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.FD3183EB6A860C8B.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.FD3183EB6A860C8B.idx new file mode 100644 index 0000000..c1c0329 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.c.FD3183EB6A860C8B.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.00EE2817677C5144.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.00EE2817677C5144.idx new file mode 100644 index 0000000..cb46c52 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.00EE2817677C5144.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.0259BD43B7450483.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.0259BD43B7450483.idx new file mode 100644 index 0000000..1448113 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.0259BD43B7450483.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.185366945728F2B3.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.185366945728F2B3.idx new file mode 100644 index 0000000..e4d4851 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.185366945728F2B3.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.1F6949188C5624B9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.1F6949188C5624B9.idx new file mode 100644 index 0000000..240e4d9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.1F6949188C5624B9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.325076591646662C.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.325076591646662C.idx new file mode 100644 index 0000000..76f3b6f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.325076591646662C.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.56E3309D2B8B4791.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.56E3309D2B8B4791.idx new file mode 100644 index 0000000..b3945a0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.56E3309D2B8B4791.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.7DA48444C2D86E53.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.7DA48444C2D86E53.idx new file mode 100644 index 0000000..4c50080 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.7DA48444C2D86E53.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.865334254FE82EDB.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.865334254FE82EDB.idx new file mode 100644 index 0000000..c6e4622 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.865334254FE82EDB.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.9B941A8A7FA86113.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.9B941A8A7FA86113.idx new file mode 100644 index 0000000..8c7c307 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.9B941A8A7FA86113.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.A53595BD14312C3F.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.A53595BD14312C3F.idx new file mode 100644 index 0000000..48ef280 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.A53595BD14312C3F.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.A74518B3AEBF5562.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.A74518B3AEBF5562.idx new file mode 100644 index 0000000..2922e7e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.A74518B3AEBF5562.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.B6C78BC4A08E14A9.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.B6C78BC4A08E14A9.idx new file mode 100644 index 0000000..84dcbae Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.B6C78BC4A08E14A9.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.C4159AA0AD760A5A.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.C4159AA0AD760A5A.idx new file mode 100644 index 0000000..b0da106 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.C4159AA0AD760A5A.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.E3ECDF6BE1D2E678.idx b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.E3ECDF6BE1D2E678.idx new file mode 100644 index 0000000..820c40d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cache/.cache/clangd/index/uart_protocol.h.E3ECDF6BE1D2E678.idx differ diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/compile_commands.json b/T1_TC_ZH_V01_20251128/Source/.cache/compile_commands.json new file mode 100644 index 0000000..414f6db --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/.cache/compile_commands.json @@ -0,0 +1,133 @@ +[{ + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\crt0.S", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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", "-IRF_SDK/inc", "-ISYSTEM/inc", "-IUSRCTRL/inc", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CKCPU_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\crt0.S", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\crt0.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\mem_init.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\mem_init.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\mem_init.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\apt32f102_iostring.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\apt32f102_iostring.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\arch\\apt32f102_iostring.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_syscon.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_syscon.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_syscon.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_gpio.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_gpio.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_gpio.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_lpt.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_lpt.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_lpt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_crc.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_crc.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_crc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_wwdt.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_wwdt.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_wwdt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_countera.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_countera.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_countera.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_et.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_et.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_et.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_bt.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_bt.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_bt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_gpt.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_gpt.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_gpt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_sio.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_sio.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_sio.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_spi.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_spi.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_spi.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_uart.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_uart.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_uart.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_i2c.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_i2c.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_i2c.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_ept.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_ept.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_ept.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_rtc.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_rtc.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_rtc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_adc.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_adc.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_adc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_ifc.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_ifc.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_ifc.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_tkey_parameter.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_tkey_parameter.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_tkey_parameter.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_coret.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_coret.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\FWlib\\apt32f102_coret.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\main.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\main.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\main.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\mcu_initial.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\mcu_initial.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\mcu_initial.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\mcu_interrupt.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\mcu_interrupt.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\mcu_interrupt.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\drivers\\apt32f102.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\drivers\\apt32f102.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\drivers\\apt32f102.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\drivers\\apt32f102_ck801.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\drivers\\apt32f102_ck801.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\drivers\\apt32f102_ck801.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\uart.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\uart.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\uart.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\eeprom.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\eeprom.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\eeprom.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\Bootload_fun.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\Bootload_fun.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\Bootload_fun.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\tempctrl_unit.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\tempctrl_unit.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\tempctrl_unit.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\uart_protocol.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\uart_protocol.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\uart_protocol.o"] + }, { + "file": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\dip_switch.c", + "directory": "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\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.", "-IRF_SDK/inc", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\dip_switch.c", "-o", "G:\\WorkSpace_YYW2\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\SYSTEM\\dip_switch.o"] + }] \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/.cache/macro.h b/T1_TC_ZH_V01_20251128/Source/.cache/macro.h new file mode 100644 index 0000000..1c2239e --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/.cache/project.conf b/T1_TC_ZH_V01_20251128/Source/.cache/project.conf new file mode 100644 index 0000000..fcd2aa5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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\\4 Duijie\\TC2\\T1_TC_ZH_V01_20251127\\Source\\.cache/" +} \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/.cdk/Project.session b/T1_TC_ZH_V01_20251128/Source/.cdk/Project.session new file mode 100644 index 0000000..7585f31 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/.cdk/Project.session @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/T1_TC_ZH_V01_20251128/Source/.cdk/refactoring.db b/T1_TC_ZH_V01_20251128/Source/.cdk/refactoring.db new file mode 100644 index 0000000..9da8d1e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/.cdk/refactoring.db differ diff --git a/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_adc.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_adc.c new file mode 100644 index 0000000..d59e771 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_bt.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_bt.c new file mode 100644 index 0000000..d560b42 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_coret.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_coret.c new file mode 100644 index 0000000..255e73c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_countera.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_countera.c new file mode 100644 index 0000000..60dea0b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_crc.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_crc.c new file mode 100644 index 0000000..b5d6ec3 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_et.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_et.c new file mode 100644 index 0000000..f633abc --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_gpio.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_gpio.c new file mode 100644 index 0000000..15c6744 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_hwdiv.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_hwdiv.c new file mode 100644 index 0000000..a9a7c91 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_i2c.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_i2c.c new file mode 100644 index 0000000..998f0e9 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_ifc.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_ifc.c new file mode 100644 index 0000000..bd23380 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_iostring.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_iostring.c new file mode 100644 index 0000000..1a9420a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_lpt.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_lpt.c new file mode 100644 index 0000000..1e5751c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_rtc.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_rtc.c new file mode 100644 index 0000000..654813a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_sio.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_sio.c new file mode 100644 index 0000000..48259f0 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_spi.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_spi.c new file mode 100644 index 0000000..48e9d4d --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_syscon.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_syscon.c new file mode 100644 index 0000000..efe2770 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_tkey_parameter.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_tkey_parameter.c new file mode 100644 index 0000000..a70e6d0 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_tkey_parameter.c @@ -0,0 +1,98 @@ +/* + ****************************************************************************** + * @file apt32f102_tkey_parameter.c + * @author APT AE Team + * @version V1.08 + * @date 2021/06/21 + ****************************************************************************** + *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES + *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS. + *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT, + *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF + *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION + *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES + *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION + ****************************************************************************** + */ +#include "apt32f102_tkey.h" + +void tk_parameter_init(void) +{ +/**************************************************** +//TK parameter define +*****************************************************/ + TK_IO_ENABLE=0x4F01; //TK IO ENABLE Bit16-->Bit0;0=DISABLE 1=ENABLE + + TK_senprd[0]=180; //TCH0 scan period = TCH0 sens + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + TK_senprd[8]=180; //TCH8 scan period = TCH8 sens + TK_senprd[9]=180; //TCH9 scan period = TCH9 sens + TK_senprd[10]=70; //TCH10 scan period = TCH10 sens + TK_senprd[11]=70; //TCH11 scan period = TCH11 sens + TK_senprd[12]=180; //TCH12 scan period = TCH12 sens + TK_senprd[13]=180; //TCH13 scan period = TCH13 sens + TK_senprd[14]=180; //TCH14 scan period = TCH14 sens + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + TK_Triggerlevel[0]=100; //TCH0 TK_Trigger level + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + TK_Triggerlevel[8]=100; //TCH8 TK_Trigger level + TK_Triggerlevel[9]=100; //TCH9 TK_Trigger level + TK_Triggerlevel[10]=40; //TCH10 TK_Trigger level + TK_Triggerlevel[11]=40; //TCH11 TK_Trigger level + TK_Triggerlevel[12]=100; //TCH12 TK_Trigger level + TK_Triggerlevel[13]=100; //TCH13 TK_Trigger level + TK_Triggerlevel[14]=100; //TCH14 TK_Trigger level + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + Press_debounce_data=6; //Press debounce 1~10 + Release_debounce_data=5; //Release debounce 1~10 + Key_mode=1; //Key mode 0=single key 1=multi key + MultiTimes_Filter=40; //MultiTimes Filter,>4 ENABLE <4 DISABLE + Valid_Key_Num=6; //Valid Key number when touched + Base_Speed=20; //baseline update speed + TK_longpress_time=8; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + TK_Wakeup_level=50; //touch key Trigger level in sleep +/**************************************************** +//TK special parameter define +*****************************************************/ + TK_PSEL_MODE=TK_PSEL_FVR; //tk power sel:TK_PSEL_FVR/TK_PSEL_AVDD when select TK_PSEL_FVR PA0.2(TCH3) need a 104 cap + TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + TK_icon[0]=6; //TCH0 TK Scan icon range 0~7 + TK_icon[1]=6; //TCH1 TK Scan icon range 0~7 + TK_icon[2]=6; //TCH2 TK Scan icon range 0~7 + TK_icon[3]=6; //TCH3 TK Scan icon range 0~7 + TK_icon[4]=6; //TCH4 TK Scan icon range 0~7 + TK_icon[5]=6; //TCH5 TK Scan icon range 0~7 + TK_icon[6]=6; //TCH6 TK Scan icon range 0~7 + TK_icon[7]=6; //TCH7 TK Scan icon range 0~7 + TK_icon[8]=6; //TCH8 TK Scan icon range 0~7 + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + TK_icon[14]=6; //TCH14 TK Scan icon range 0~7 + TK_icon[15]=6; //TCH15 TK Scan icon range 0~7 + TK_icon[16]=6; //TCH16 TK Scan icon range 0~7 +} \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_uart.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_uart.c new file mode 100644 index 0000000..bd81163 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_wwdt.c b/T1_TC_ZH_V01_20251128/Source/FWlib/apt32f102_wwdt.c new file mode 100644 index 0000000..35591a1 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240329.asm b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240329.asm new file mode 100644 index 0000000..fe58464 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240329.asm @@ -0,0 +1,18625 @@ + +.//Obj/RF_T1F_TC_V01_20240329.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003786 .long 0x00003786 + 8: 00003776 .long 0x00003776 + c: 00000184 .long 0x00000184 + 10: 0000377e .long 0x0000377e + 14: 0000373c .long 0x0000373c + 18: 00000184 .long 0x00000184 + 1c: 0000376e .long 0x0000376e + 20: 00003766 .long 0x00003766 + 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: 0000375e .long 0x0000375e + 44: 00003756 .long 0x00003756 + 48: 0000374e .long 0x0000374e + 4c: 00003746 .long 0x00003746 + 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: 0000373e .long 0x0000373e + 80: 00006864 .long 0x00006864 + 84: 00002e1c .long 0x00002e1c + 88: 00002f0c .long 0x00002f0c + 8c: 00002f74 .long 0x00002f74 + 90: 00002fdc .long 0x00002fdc + 94: 00000184 .long 0x00000184 + 98: 00003188 .long 0x00003188 + 9c: 000034f4 .long 0x000034f4 + a0: 00003524 .long 0x00003524 + a4: 000031bc .long 0x000031bc + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 0000323c .long 0x0000323c + b4: 000032ac .long 0x000032ac + b8: 000032e8 .long 0x000032e8 + bc: 00003324 .long 0x00003324 + c0: 00000184 .long 0x00000184 + c4: 00003796 .long 0x00003796 + c8: 00000184 .long 0x00000184 + cc: 000033b8 .long 0x000033b8 + d0: 000034a0 .long 0x000034a0 + d4: 00003554 .long 0x00003554 + d8: 0000359c .long 0x0000359c + dc: 000035f8 .long 0x000035f8 + e0: 0000378e .long 0x0000378e + e4: 00006250 .long 0x00006250 + e8: 00003658 .long 0x00003658 + ec: 00000184 .long 0x00000184 + f0: 0000368c .long 0x0000368c + f4: 000036d8 .long 0x000036d8 + 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, 0x2bf4 // 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: 00002bf4 .long 0x00002bf4 + 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, 0x7104 // 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: 00007104 .long 0x00007104 + 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, 0x7104 // 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, 0x7104 // 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: 00007104 .long 0x00007104 + 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, 0x7134 // 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: 00007134 .long 0x00007134 + +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, 0x7134 // 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: 00007134 .long 0x00007134 + 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, 0x7134 // 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: 00007134 .long 0x00007134 + +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, 0x7148 // 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: 00007148 .long 0x00007148 + +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, 0x7588 // 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, 0x200000a4 // 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, 0x200007f4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a4 // 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: 00007588 .long 0x00007588 + 1a7c: 200000a4 .long 0x200000a4 + 1a80: 200007f4 .long 0x200007f4 + 1a84: 200000a4 .long 0x200000a4 + +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_DriveStrength_EN: + +00001e68 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1e68: 4121 lsli r1, r1, 1 + 1e6a: 3301 movi r3, 1 + 1e6c: 9049 ld.w r2, (r0, 0x24) + 1e6e: 70c4 lsl r3, r1 + 1e70: 6cc8 or r3, r2 + 1e72: b069 st.w r3, (r0, 0x24) +} + 1e74: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001e76 : +//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<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 1e88: 1064 lrw r3, 0x20000014 // 1e98 + 1e8a: 9340 ld.w r2, (r3, 0x0) + 1e8c: 9261 ld.w r3, (r2, 0x4) + 1e8e: 3bac bseti r3, 12 + 1e90: 3bae bseti r3, 14 + 1e92: b261 st.w r3, (r2, 0x4) +} + 1e94: 783c jmp r15 + 1e96: 0000 bkpt + 1e98: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00001e9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 1e9c: 1063 lrw r3, 0x20000010 // 1ea8 + 1e9e: 9360 ld.w r3, (r3, 0x0) + 1ea0: 9340 ld.w r2, (r3, 0x0) + 1ea2: 6c08 or r0, r2 + 1ea4: b300 st.w r0, (r3, 0x0) +} + 1ea6: 783c jmp r15 + 1ea8: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00001eac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 1eac: 3300 movi r3, 0 + 1eae: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 1eb0: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 1eb2: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 1eb4: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 1eb6: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 1eb8: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 1eba: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 1ebc: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 1ebe: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 1ec0: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 1ec2: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 1ec4: b06d st.w r3, (r0, 0x34) +} + 1ec6: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00001ec8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 1ec8: 9060 ld.w r3, (r0, 0x0) + 1eca: 3ba0 bseti r3, 0 + 1ecc: b060 st.w r3, (r0, 0x0) +} + 1ece: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00001ed0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 1ed0: 9060 ld.w r3, (r0, 0x0) + 1ed2: 3bac bseti r3, 12 + 1ed4: 3bae bseti r3, 14 + 1ed6: b060 st.w r3, (r0, 0x0) +} + 1ed8: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00001eda : +//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) +{ + 1eda: 14c3 push r4-r6 + 1edc: 98a4 ld.w r5, (r14, 0x10) + 1ede: 6d97 mov r6, r5 + 1ee0: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 1ee2: 6d18 or r4, r6 + 1ee4: 6cd0 or r3, r4 + 1ee6: 90a1 ld.w r5, (r0, 0x4) + 1ee8: 6c4c or r1, r3 + 1eea: 6c54 or r1, r5 + 1eec: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 1eee: b042 st.w r2, (r0, 0x8) +} + 1ef0: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00001ef2 : +//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) +{ + 1ef2: 14c4 push r4-r7 + 1ef4: 1421 subi r14, r14, 4 + 1ef6: 9885 ld.w r4, (r14, 0x14) + 1ef8: 6dd3 mov r7, r4 + 1efa: 9886 ld.w r4, (r14, 0x18) + 1efc: b880 st.w r4, (r14, 0x0) + 1efe: 9887 ld.w r4, (r14, 0x1c) + 1f00: 6d93 mov r6, r4 + 1f02: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 1f04: 6d58 or r5, r6 + 1f06: 98c0 ld.w r6, (r14, 0x0) + 1f08: 6d58 or r5, r6 + 1f0a: 6d5c or r5, r7 + 1f0c: 6cd4 or r3, r5 + 1f0e: 6c8c or r2, r3 + 1f10: 9081 ld.w r4, (r0, 0x4) + 1f12: 6c48 or r1, r2 + 1f14: 6d04 or r4, r1 + 1f16: 6d9f mov r6, r7 + 1f18: b081 st.w r4, (r0, 0x4) +} + 1f1a: 1401 addi r14, r14, 4 + 1f1c: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00001f1e : +//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; + 1f1e: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 1f20: b044 st.w r2, (r0, 0x10) +} + 1f22: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00001f24 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 1f24: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 1f26: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 1f28: 0c04 bf 0x1f30 // 1f30 + BTx->IMCR |= BT_IMSCR_X; + 1f2a: 6c8c or r2, r3 + 1f2c: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 1f2e: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 1f30: 68c9 andn r3, r2 + 1f32: b06b st.w r3, (r0, 0x2c) +} + 1f34: 07fd br 0x1f2e // 1f2e + +Disassembly of section .text.BT1_INT_ENABLE: + +00001f38 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 1f38: 3380 movi r3, 128 + 1f3a: 4376 lsli r3, r3, 22 + 1f3c: 1042 lrw r2, 0xe000e100 // 1f44 + 1f3e: b260 st.w r3, (r2, 0x0) +} + 1f40: 783c jmp r15 + 1f42: 0000 bkpt + 1f44: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00001f48 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 1f48: 1065 lrw r3, 0x20000040 // 1f5c + 1f4a: 3200 movi r2, 0 + 1f4c: 9360 ld.w r3, (r3, 0x0) + 1f4e: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 1f50: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 1f52: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 1f54: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 1f56: b344 st.w r2, (r3, 0x10) +} + 1f58: 783c jmp r15 + 1f5a: 0000 bkpt + 1f5c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00001f60 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 1f60: 1065 lrw r3, 0x2000003c // 1f74 + 1f62: 3200 movi r2, 0 + 1f64: 9360 ld.w r3, (r3, 0x0) + 1f66: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 1f68: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 1f6a: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 1f6c: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 1f6e: b344 st.w r2, (r3, 0x10) +} + 1f70: 783c jmp r15 + 1f72: 0000 bkpt + 1f74: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00001f78 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 1f78: 1065 lrw r3, 0x20000038 // 1f8c + 1f7a: 3200 movi r2, 0 + 1f7c: 9360 ld.w r3, (r3, 0x0) + 1f7e: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 1f80: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 1f82: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 1f84: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 1f86: b344 st.w r2, (r3, 0x10) +} + 1f88: 783c jmp r15 + 1f8a: 0000 bkpt + 1f8c: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00001f90 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 1f90: 1065 lrw r3, 0x20000040 // 1fa4 + 1f92: 320f movi r2, 15 + 1f94: 9360 ld.w r3, (r3, 0x0) + 1f96: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1f98: 3380 movi r3, 128 + 1f9a: 4366 lsli r3, r3, 6 + 1f9c: 1043 lrw r2, 0xe000e100 // 1fa8 + 1f9e: b260 st.w r3, (r2, 0x0) +} + 1fa0: 783c jmp r15 + 1fa2: 0000 bkpt + 1fa4: 20000040 .long 0x20000040 + 1fa8: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00001fac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 1fac: 1065 lrw r3, 0x20000038 // 1fc0 + 1fae: 320f movi r2, 15 + 1fb0: 9360 ld.w r3, (r3, 0x0) + 1fb2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1fb4: 3380 movi r3, 128 + 1fb6: 4368 lsli r3, r3, 8 + 1fb8: 1043 lrw r2, 0xe000e100 // 1fc4 + 1fba: b260 st.w r3, (r2, 0x0) +} + 1fbc: 783c jmp r15 + 1fbe: 0000 bkpt + 1fc0: 20000038 .long 0x20000038 + 1fc4: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00001fc8 : +//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) + 1fc8: 3840 cmpnei r0, 0 + 1fca: 0821 bt 0x200c // 200c + { + if(UART_IO_G==0) + 1fcc: 3940 cmpnei r1, 0 + 1fce: 080a bt 0x1fe2 // 1fe2 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 1fd0: 1177 lrw r3, 0x2000004c // 20ac + 1fd2: 31ff movi r1, 255 + 1fd4: 9340 ld.w r2, (r3, 0x0) + 1fd6: 9260 ld.w r3, (r2, 0x0) + 1fd8: 68c5 andn r3, r1 + 1fda: 3ba2 bseti r3, 2 + 1fdc: 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 + 1fde: b260 st.w r3, (r2, 0x0) + 1fe0: 0415 br 0x200a // 200a + else if(UART_IO_G==1) + 1fe2: 3941 cmpnei r1, 1 + 1fe4: 0813 bt 0x200a // 200a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 1fe6: 1172 lrw r3, 0x2000004c // 20ac + 1fe8: 31f0 movi r1, 240 + 1fea: 9340 ld.w r2, (r3, 0x0) + 1fec: 9260 ld.w r3, (r2, 0x0) + 1fee: 4130 lsli r1, r1, 16 + 1ff0: 68c5 andn r3, r1 + 1ff2: 31e0 movi r1, 224 + 1ff4: 412f lsli r1, r1, 15 + 1ff6: 6cc4 or r3, r1 + 1ff8: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 1ffa: 31f0 movi r1, 240 + 1ffc: 9261 ld.w r3, (r2, 0x4) + 1ffe: 412c lsli r1, r1, 12 + 2000: 68c5 andn r3, r1 + 2002: 31e0 movi r1, 224 + 2004: 412b lsli r1, r1, 11 + 2006: 6cc4 or r3, r1 + 2008: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 200a: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 200c: 3841 cmpnei r0, 1 + 200e: 082d bt 0x2068 // 2068 + if(UART_IO_G==0) + 2010: 3940 cmpnei r1, 0 + 2012: 0814 bt 0x203a // 203a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2014: 1167 lrw r3, 0x20000048 // 20b0 + 2016: 310f movi r1, 15 + 2018: 9340 ld.w r2, (r3, 0x0) + 201a: 9260 ld.w r3, (r2, 0x0) + 201c: 68c5 andn r3, r1 + 201e: 3107 movi r1, 7 + 2020: 6cc4 or r3, r1 + 2022: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2024: 32f0 movi r2, 240 + 2026: 1162 lrw r3, 0x2000004c // 20ac + 2028: 4250 lsli r2, r2, 16 + 202a: 9320 ld.w r1, (r3, 0x0) + 202c: 9161 ld.w r3, (r1, 0x4) + 202e: 68c9 andn r3, r2 + 2030: 32e0 movi r2, 224 + 2032: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2034: 6cc8 or r3, r2 + 2036: b161 st.w r3, (r1, 0x4) + 2038: 07e9 br 0x200a // 200a + else if(UART_IO_G==1) + 203a: 3941 cmpnei r1, 1 + 203c: 080c bt 0x2054 // 2054 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 203e: 107c lrw r3, 0x2000004c // 20ac + 2040: 32ff movi r2, 255 + 2042: 9320 ld.w r1, (r3, 0x0) + 2044: 424c lsli r2, r2, 12 + 2046: 9160 ld.w r3, (r1, 0x0) + 2048: 68c9 andn r3, r2 + 204a: 32ee movi r2, 238 + 204c: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 204e: 6cc8 or r3, r2 + 2050: b160 st.w r3, (r1, 0x0) +} + 2052: 07dc br 0x200a // 200a + else if(UART_IO_G==2) + 2054: 3942 cmpnei r1, 2 + 2056: 0bda bt 0x200a // 200a + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2058: 1075 lrw r3, 0x2000004c // 20ac + 205a: 32ee movi r2, 238 + 205c: 9320 ld.w r1, (r3, 0x0) + 205e: 9161 ld.w r3, (r1, 0x4) + 2060: 4368 lsli r3, r3, 8 + 2062: 4b68 lsri r3, r3, 8 + 2064: 4257 lsli r2, r2, 23 + 2066: 07e7 br 0x2034 // 2034 + if (IO_UART_NUM==IO_UART2) + 2068: 3842 cmpnei r0, 2 + 206a: 0bd0 bt 0x200a // 200a + if(UART_IO_G==0) + 206c: 3940 cmpnei r1, 0 + 206e: 0809 bt 0x2080 // 2080 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2070: 106f lrw r3, 0x2000004c // 20ac + 2072: 31ff movi r1, 255 + 2074: 9340 ld.w r2, (r3, 0x0) + 2076: 9260 ld.w r3, (r2, 0x0) + 2078: 68c5 andn r3, r1 + 207a: 3177 movi r1, 119 + 207c: 6cc4 or r3, r1 + 207e: 07b0 br 0x1fde // 1fde + else if(UART_IO_G==1) + 2080: 3941 cmpnei r1, 1 + 2082: 0809 bt 0x2094 // 2094 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 2084: 106a lrw r3, 0x2000004c // 20ac + 2086: 32ee movi r2, 238 + 2088: 9320 ld.w r1, (r3, 0x0) + 208a: 9160 ld.w r3, (r1, 0x0) + 208c: 4368 lsli r3, r3, 8 + 208e: 4b68 lsri r3, r3, 8 + 2090: 4257 lsli r2, r2, 23 + 2092: 07de br 0x204e // 204e + else if(UART_IO_G==2) + 2094: 3942 cmpnei r1, 2 + 2096: 0bba bt 0x200a // 200a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2098: 1066 lrw r3, 0x20000048 // 20b0 + 209a: 32ff movi r2, 255 + 209c: 9320 ld.w r1, (r3, 0x0) + 209e: 4250 lsli r2, r2, 16 + 20a0: 9160 ld.w r3, (r1, 0x0) + 20a2: 68c9 andn r3, r2 + 20a4: 32cc movi r2, 204 + 20a6: 424f lsli r2, r2, 15 + 20a8: 07d3 br 0x204e // 204e + 20aa: 0000 bkpt + 20ac: 2000004c .long 0x2000004c + 20b0: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000020b4 : +//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); + 20b4: 1063 lrw r3, 0x8000f // 20c0 + 20b6: 6c8c or r2, r3 + 20b8: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 20ba: b024 st.w r1, (r0, 0x10) +} + 20bc: 783c jmp r15 + 20be: 0000 bkpt + 20c0: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000020c4 : +//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) +{ + 20c4: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 20c6: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 20c8: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 20ca: 5b85 subu r4, r3, r1 + 20cc: 6490 cmphs r4, r2 + 20ce: 0c02 bf 0x20d2 // 20d2 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 20d0: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 20d2: 8380 ld.b r4, (r3, 0x0) + 20d4: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 20d6: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 20d8: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 20da: 3c40 cmpnei r4, 0 + 20dc: 0bfd bt 0x20d6 // 20d6 + 20de: 2300 addi r3, 1 + 20e0: 07f5 br 0x20ca // 20ca + +Disassembly of section .text.EPT_Software_Prg: + +000020e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 20e4: 1067 lrw r3, 0x20000020 // 2100 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 20e6: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 20e8: 9340 ld.w r2, (r3, 0x0) + 20ea: 9260 ld.w r3, (r2, 0x0) + 20ec: 3ba0 bseti r3, 0 + 20ee: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 20f0: 9261 ld.w r3, (r2, 0x4) + 20f2: 4128 lsli r1, r1, 8 + 20f4: 68c5 andn r3, r1 + 20f6: 3bac bseti r3, 12 + 20f8: 3bae bseti r3, 14 + 20fa: b261 st.w r3, (r2, 0x4) +} + 20fc: 783c jmp r15 + 20fe: 0000 bkpt + 2100: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +00002104 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2104: 1068 lrw r3, 0x20000020 // 2124 + 2106: 3280 movi r2, 128 + 2108: 9360 ld.w r3, (r3, 0x0) + 210a: 608c addu r2, r3 + 210c: 1027 lrw r1, 0xa55ac73a // 2128 + 210e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2110: 9341 ld.w r2, (r3, 0x4) + 2112: 3aa0 bseti r2, 0 + 2114: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 2116: 3101 movi r1, 1 + 2118: 9341 ld.w r2, (r3, 0x4) + 211a: 6884 and r2, r1 + 211c: 3a40 cmpnei r2, 0 + 211e: 0ffd bf 0x2118 // 2118 +} + 2120: 783c jmp r15 + 2122: 0000 bkpt + 2124: 20000020 .long 0x20000020 + 2128: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +0000212c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 212c: 1068 lrw r3, 0x20000020 // 214c + 212e: 3280 movi r2, 128 + 2130: 9360 ld.w r3, (r3, 0x0) + 2132: 608c addu r2, r3 + 2134: 1027 lrw r1, 0xa55ac73a // 2150 + 2136: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2138: 9341 ld.w r2, (r3, 0x4) + 213a: 31fe movi r1, 254 + 213c: 6884 and r2, r1 + 213e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2140: 3101 movi r1, 1 + 2142: 9341 ld.w r2, (r3, 0x4) + 2144: 6884 and r2, r1 + 2146: 3a40 cmpnei r2, 0 + 2148: 0bfd bt 0x2142 // 2142 +} + 214a: 783c jmp r15 + 214c: 20000020 .long 0x20000020 + 2150: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +00002154 : +//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) + 2154: 3840 cmpnei r0, 0 + 2156: 0822 bt 0x219a // 219a + { + if(IO_Num_X==IO_NUM_PA07) + 2158: 3950 cmpnei r1, 16 + 215a: 080a bt 0x216e // 216e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 215c: 0375 lrw r3, 0x2000004c // 2384 + 215e: 9340 ld.w r2, (r3, 0x0) + 2160: 9260 ld.w r3, (r2, 0x0) + 2162: 4364 lsli r3, r3, 4 + 2164: 4b64 lsri r3, r3, 4 + 2166: 3bbd bseti r3, 29 + 2168: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 216a: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 216c: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 216e: 3951 cmpnei r1, 17 + 2170: 080b bt 0x2186 // 2186 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 2172: 037a lrw r3, 0x2000004c // 2384 + 2174: 32f0 movi r2, 240 + 2176: 9320 ld.w r1, (r3, 0x0) + 2178: 9161 ld.w r3, (r1, 0x4) + 217a: 4244 lsli r2, r2, 4 + 217c: 68c9 andn r3, r2 + 217e: 3ba8 bseti r3, 8 + 2180: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 2182: b161 st.w r3, (r1, 0x4) + 2184: 07f4 br 0x216c // 216c + else if(IO_Num_X==IO_NUM_PA15) + 2186: 3952 cmpnei r1, 18 + 2188: 0bf2 bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 218a: 137f lrw r3, 0x2000004c // 2384 + 218c: 9340 ld.w r2, (r3, 0x0) + 218e: 9261 ld.w r3, (r2, 0x4) + 2190: 4364 lsli r3, r3, 4 + 2192: 4b64 lsri r3, r3, 4 + 2194: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2196: b261 st.w r3, (r2, 0x4) + 2198: 07ea br 0x216c // 216c + else if(EPT_IO_X==EPT_IO_CHAY) + 219a: 3841 cmpnei r0, 1 + 219c: 0823 bt 0x21e2 // 21e2 + if(IO_Num_X==IO_NUM_PB03) + 219e: 3953 cmpnei r1, 19 + 21a0: 080a bt 0x21b4 // 21b4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 21a2: 137a lrw r3, 0x20000048 // 2388 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 21a4: 9320 ld.w r1, (r3, 0x0) + 21a6: 32f0 movi r2, 240 + 21a8: 9160 ld.w r3, (r1, 0x0) + 21aa: 4248 lsli r2, r2, 8 + 21ac: 68c9 andn r3, r2 + 21ae: 3bac bseti r3, 12 + 21b0: 3bae bseti r3, 14 + 21b2: 040b br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PB05) + 21b4: 3954 cmpnei r1, 20 + 21b6: 080b bt 0x21cc // 21cc + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 21b8: 1374 lrw r3, 0x20000048 // 2388 + 21ba: 32f0 movi r2, 240 + 21bc: 9320 ld.w r1, (r3, 0x0) + 21be: 9160 ld.w r3, (r1, 0x0) + 21c0: 4250 lsli r2, r2, 16 + 21c2: 68c9 andn r3, r2 + 21c4: 3bb4 bseti r3, 20 + 21c6: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 21c8: b160 st.w r3, (r1, 0x0) +} + 21ca: 07d1 br 0x216c // 216c + else if(IO_Num_X==IO_NUM_PA12) + 21cc: 3955 cmpnei r1, 21 + 21ce: 0bcf bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 21d0: 136d lrw r3, 0x2000004c // 2384 + 21d2: 32f0 movi r2, 240 + 21d4: 9320 ld.w r1, (r3, 0x0) + 21d6: 9161 ld.w r3, (r1, 0x4) + 21d8: 424c lsli r2, r2, 12 + 21da: 68c9 andn r3, r2 + 21dc: 3bb0 bseti r3, 16 + 21de: 3bb2 bseti r3, 18 + 21e0: 07d1 br 0x2182 // 2182 + else if(EPT_IO_X==EPT_IO_CHBX) + 21e2: 3842 cmpnei r0, 2 + 21e4: 0821 bt 0x2226 // 2226 + if(IO_Num_X==IO_NUM_PB02) + 21e6: 3956 cmpnei r1, 22 + 21e8: 080a bt 0x21fc // 21fc + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 21ea: 1368 lrw r3, 0x20000048 // 2388 + 21ec: 32f0 movi r2, 240 + 21ee: 9320 ld.w r1, (r3, 0x0) + 21f0: 9160 ld.w r3, (r1, 0x0) + 21f2: 4244 lsli r2, r2, 4 + 21f4: 68c9 andn r3, r2 + 21f6: 3ba9 bseti r3, 9 + 21f8: 3baa bseti r3, 10 + 21fa: 07e7 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA11) + 21fc: 3957 cmpnei r1, 23 + 21fe: 080a bt 0x2212 // 2212 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2200: 1361 lrw r3, 0x2000004c // 2384 + 2202: 32f0 movi r2, 240 + 2204: 9320 ld.w r1, (r3, 0x0) + 2206: 9161 ld.w r3, (r1, 0x4) + 2208: 4248 lsli r2, r2, 8 + 220a: 68c9 andn r3, r2 + 220c: 3bac bseti r3, 12 + 220e: 3bae bseti r3, 14 + 2210: 07b9 br 0x2182 // 2182 + else if(IO_Num_X==IO_NUM_PA14) + 2212: 3958 cmpnei r1, 24 + 2214: 0bac bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 2216: 127c lrw r3, 0x2000004c // 2384 + 2218: 32f0 movi r2, 240 + 221a: 9320 ld.w r1, (r3, 0x0) + 221c: 9161 ld.w r3, (r1, 0x4) + 221e: 4254 lsli r2, r2, 20 + 2220: 68c9 andn r3, r2 + 2222: 3bba bseti r3, 26 + 2224: 07af br 0x2182 // 2182 + else if(EPT_IO_X==EPT_IO_CHBY) + 2226: 3843 cmpnei r0, 3 + 2228: 0820 bt 0x2268 // 2268 + if(IO_Num_X==IO_NUM_PB04) + 222a: 3959 cmpnei r1, 25 + 222c: 080a bt 0x2240 // 2240 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 222e: 1277 lrw r3, 0x20000048 // 2388 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2230: 9320 ld.w r1, (r3, 0x0) + 2232: 32f0 movi r2, 240 + 2234: 9160 ld.w r3, (r1, 0x0) + 2236: 424c lsli r2, r2, 12 + 2238: 68c9 andn r3, r2 + 223a: 3bb0 bseti r3, 16 + 223c: 3bb2 bseti r3, 18 + 223e: 07c5 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA05) + 2240: 395a cmpnei r1, 26 + 2242: 0809 bt 0x2254 // 2254 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 2244: 1270 lrw r3, 0x2000004c // 2384 + 2246: 32f0 movi r2, 240 + 2248: 9320 ld.w r1, (r3, 0x0) + 224a: 9160 ld.w r3, (r1, 0x0) + 224c: 4250 lsli r2, r2, 16 + 224e: 68c9 andn r3, r2 + 2250: 3bb7 bseti r3, 23 + 2252: 07bb br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA08) + 2254: 395b cmpnei r1, 27 + 2256: 0b8b bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 2258: 126b lrw r3, 0x2000004c // 2384 + 225a: 310f movi r1, 15 + 225c: 9340 ld.w r2, (r3, 0x0) + 225e: 9261 ld.w r3, (r2, 0x4) + 2260: 68c5 andn r3, r1 + 2262: 3ba0 bseti r3, 0 + 2264: 3ba2 bseti r3, 2 + 2266: 0798 br 0x2196 // 2196 + else if(EPT_IO_X==EPT_IO_CHCX) + 2268: 3844 cmpnei r0, 4 + 226a: 0823 bt 0x22b0 // 22b0 + if(IO_Num_X==IO_NUM_PB05) + 226c: 3954 cmpnei r1, 20 + 226e: 0809 bt 0x2280 // 2280 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 2270: 1266 lrw r3, 0x20000048 // 2388 + 2272: 32f0 movi r2, 240 + 2274: 9320 ld.w r1, (r3, 0x0) + 2276: 9160 ld.w r3, (r1, 0x0) + 2278: 4250 lsli r2, r2, 16 + 227a: 68c9 andn r3, r2 + 227c: 3bb6 bseti r3, 22 + 227e: 07a5 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA03) + 2280: 395c cmpnei r1, 28 + 2282: 0803 bt 0x2288 // 2288 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 2284: 1260 lrw r3, 0x2000004c // 2384 + 2286: 078f br 0x21a4 // 21a4 + else if(IO_Num_X==IO_NUM_PB03) + 2288: 3953 cmpnei r1, 19 + 228a: 0809 bt 0x229c // 229c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 228c: 117f lrw r3, 0x20000048 // 2388 + 228e: 32f0 movi r2, 240 + 2290: 9320 ld.w r1, (r3, 0x0) + 2292: 9160 ld.w r3, (r1, 0x0) + 2294: 4248 lsli r2, r2, 8 + 2296: 68c9 andn r3, r2 + 2298: 3bae bseti r3, 14 + 229a: 0797 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PB00) + 229c: 395d cmpnei r1, 29 + 229e: 0b67 bt 0x216c // 216c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22a0: 117a lrw r3, 0x20000048 // 2388 + 22a2: 310f movi r1, 15 + 22a4: 9340 ld.w r2, (r3, 0x0) + 22a6: 9260 ld.w r3, (r2, 0x0) + 22a8: 68c5 andn r3, r1 + 22aa: 3ba0 bseti r3, 0 + 22ac: 3ba2 bseti r3, 2 + 22ae: 075e br 0x216a // 216a + else if(EPT_IO_X==EPT_IO_CHCY) + 22b0: 3845 cmpnei r0, 5 + 22b2: 0825 bt 0x22fc // 22fc + if(IO_Num_X==IO_NUM_PB04) + 22b4: 3959 cmpnei r1, 25 + 22b6: 0809 bt 0x22c8 // 22c8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 22b8: 1174 lrw r3, 0x20000048 // 2388 + 22ba: 32f0 movi r2, 240 + 22bc: 9320 ld.w r1, (r3, 0x0) + 22be: 9160 ld.w r3, (r1, 0x0) + 22c0: 424c lsli r2, r2, 12 + 22c2: 68c9 andn r3, r2 + 22c4: 3bb2 bseti r3, 18 + 22c6: 0781 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA04) + 22c8: 395e cmpnei r1, 30 + 22ca: 0803 bt 0x22d0 // 22d0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 22cc: 116e lrw r3, 0x2000004c // 2384 + 22ce: 07b1 br 0x2230 // 2230 + else if(IO_Num_X==IO_NUM_PA09) + 22d0: 395f cmpnei r1, 31 + 22d2: 0809 bt 0x22e4 // 22e4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 22d4: 116c lrw r3, 0x2000004c // 2384 + 22d6: 31f0 movi r1, 240 + 22d8: 9340 ld.w r2, (r3, 0x0) + 22da: 9261 ld.w r3, (r2, 0x4) + 22dc: 68c5 andn r3, r1 + 22de: 3170 movi r1, 112 + 22e0: 6cc4 or r3, r1 + 22e2: 075a br 0x2196 // 2196 + else if(IO_Num_X==IO_NUM_PA013) + 22e4: 3320 movi r3, 32 + 22e6: 64c6 cmpne r1, r3 + 22e8: 0b42 bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 22ea: 1167 lrw r3, 0x2000004c // 2384 + 22ec: 32f0 movi r2, 240 + 22ee: 9320 ld.w r1, (r3, 0x0) + 22f0: 9161 ld.w r3, (r1, 0x4) + 22f2: 4250 lsli r2, r2, 16 + 22f4: 68c9 andn r3, r2 + 22f6: 3bb4 bseti r3, 20 + 22f8: 3bb6 bseti r3, 22 + 22fa: 0744 br 0x2182 // 2182 + else if(EPT_IO_X==EPT_IO_CHD) + 22fc: 3846 cmpnei r0, 6 + 22fe: 0815 bt 0x2328 // 2328 + if(IO_Num_X==IO_NUM_PB03) + 2300: 3953 cmpnei r1, 19 + 2302: 080a bt 0x2316 // 2316 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 2304: 1161 lrw r3, 0x20000048 // 2388 + 2306: 32f0 movi r2, 240 + 2308: 9320 ld.w r1, (r3, 0x0) + 230a: 9160 ld.w r3, (r1, 0x0) + 230c: 4248 lsli r2, r2, 8 + 230e: 68c9 andn r3, r2 + 2310: 3bad bseti r3, 13 + 2312: 3bae bseti r3, 14 + 2314: 075a br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA08) + 2316: 395b cmpnei r1, 27 + 2318: 0b2a bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 231a: 107b lrw r3, 0x2000004c // 2384 + 231c: 310f movi r1, 15 + 231e: 9340 ld.w r2, (r3, 0x0) + 2320: 9261 ld.w r3, (r2, 0x4) + 2322: 68c5 andn r3, r1 + 2324: 3ba2 bseti r3, 2 + 2326: 0738 br 0x2196 // 2196 + else if(EPT_IO_X==EPT_IO_EPI) + 2328: 3847 cmpnei r0, 7 + 232a: 0b21 bt 0x216c // 216c + if(IO_Num_X==IO_NUM_PA07) + 232c: 3950 cmpnei r1, 16 + 232e: 0809 bt 0x2340 // 2340 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2330: 1075 lrw r3, 0x2000004c // 2384 + 2332: 9340 ld.w r2, (r3, 0x0) + 2334: 9260 ld.w r3, (r2, 0x0) + 2336: 4364 lsli r3, r3, 4 + 2338: 4b64 lsri r3, r3, 4 + 233a: 3bbc bseti r3, 28 + 233c: 3bbe bseti r3, 30 + 233e: 0716 br 0x216a // 216a + else if(IO_Num_X==IO_NUM_PA013) + 2340: 3320 movi r3, 32 + 2342: 64c6 cmpne r1, r3 + 2344: 0809 bt 0x2356 // 2356 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 2346: 1070 lrw r3, 0x2000004c // 2384 + 2348: 32f0 movi r2, 240 + 234a: 9320 ld.w r1, (r3, 0x0) + 234c: 9161 ld.w r3, (r1, 0x4) + 234e: 4250 lsli r2, r2, 16 + 2350: 68c9 andn r3, r2 + 2352: 3bb6 bseti r3, 22 + 2354: 0717 br 0x2182 // 2182 + else if(IO_Num_X==IO_NUM_PB03) + 2356: 3953 cmpnei r1, 19 + 2358: 080b bt 0x236e // 236e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 235a: 106c lrw r3, 0x20000048 // 2388 + 235c: 32f0 movi r2, 240 + 235e: 9320 ld.w r1, (r3, 0x0) + 2360: 4248 lsli r2, r2, 8 + 2362: 9160 ld.w r3, (r1, 0x0) + 2364: 68c9 andn r3, r2 + 2366: 32e0 movi r2, 224 + 2368: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 236a: 6cc8 or r3, r2 + 236c: 072e br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PB02) + 236e: 3956 cmpnei r1, 22 + 2370: 0afe bt 0x216c // 216c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2372: 1066 lrw r3, 0x20000048 // 2388 + 2374: 32f0 movi r2, 240 + 2376: 9320 ld.w r1, (r3, 0x0) + 2378: 4244 lsli r2, r2, 4 + 237a: 9160 ld.w r3, (r1, 0x0) + 237c: 68c9 andn r3, r2 + 237e: 32e0 movi r2, 224 + 2380: 4243 lsli r2, r2, 3 + 2382: 07f4 br 0x236a // 236a + 2384: 2000004c .long 0x2000004c + 2388: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +0000238c : +//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) +{ + 238c: 14c3 push r4-r6 + 238e: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 2390: 104b lrw r2, 0x20000020 // 23bc + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 2392: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 2394: 92a0 ld.w r5, (r2, 0x0) + 2396: 9580 ld.w r4, (r5, 0x0) + 2398: 32ff movi r2, 255 + 239a: 6909 andn r4, r2 + 239c: 3ca0 bseti r4, 0 + 239e: 3ca1 bseti r4, 1 + 23a0: 6d00 or r4, r0 + 23a2: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23a4: 0802 bt 0x23a8 // 23a8 + { + EPT0->PSCR=EPT_PSCR; + 23a6: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 23a8: 9543 ld.w r2, (r5, 0xc) + 23aa: 1066 lrw r3, 0x7003f // 23c0 + 23ac: 688d andn r2, r3 + 23ae: 6c98 or r2, r6 + 23b0: 3aa2 bseti r2, 2 + 23b2: 3ab2 bseti r2, 18 + 23b4: 6c48 or r1, r2 + 23b6: b523 st.w r1, (r5, 0xc) +} + 23b8: 1483 pop r4-r6 + 23ba: 0000 bkpt + 23bc: 20000020 .long 0x20000020 + 23c0: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +000023c4 : + 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 + ) +{ + 23c4: 14c4 push r4-r7 + 23c6: 1425 subi r14, r14, 20 + 23c8: 9889 ld.w r4, (r14, 0x24) + 23ca: b880 st.w r4, (r14, 0x0) + 23cc: 988a ld.w r4, (r14, 0x28) + 23ce: b881 st.w r4, (r14, 0x4) + 23d0: 988b ld.w r4, (r14, 0x2c) + 23d2: b882 st.w r4, (r14, 0x8) + 23d4: 988c ld.w r4, (r14, 0x30) + 23d6: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 23d8: 3840 cmpnei r0, 0 +{ + 23da: 988d ld.w r4, (r14, 0x34) + 23dc: b884 st.w r4, (r14, 0x10) + 23de: 98ce ld.w r6, (r14, 0x38) + 23e0: 98ef ld.w r7, (r14, 0x3c) + 23e2: 98b0 ld.w r5, (r14, 0x40) + 23e4: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 23e6: 0816 bt 0x2412 // 2412 + { + 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; + 23e8: 6d14 or r4, r5 + 23ea: 6d1c or r4, r7 + 23ec: 98a4 ld.w r5, (r14, 0x10) + 23ee: 6d18 or r4, r6 + 23f0: 6d14 or r4, r5 + 23f2: 98a3 ld.w r5, (r14, 0xc) + 23f4: 6d14 or r4, r5 + 23f6: 98a2 ld.w r5, (r14, 0x8) + 23f8: 6d14 or r4, r5 + 23fa: 98a1 ld.w r5, (r14, 0x4) + 23fc: 6d14 or r4, r5 + 23fe: 98a0 ld.w r5, (r14, 0x0) + 2400: 6d14 or r4, r5 + 2402: 6cd0 or r3, r4 + 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| + 2404: 1105 lrw r0, 0x20000020 // 2498 + 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; + 2406: 6c8c or r2, r3 + 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| + 2408: 9000 ld.w r0, (r0, 0x0) + 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; + 240a: 6c48 or r1, r2 + 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| + 240c: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 240e: 1405 addi r14, r14, 20 + 2410: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 2412: 3841 cmpnei r0, 1 + 2414: 0815 bt 0x243e // 243e + 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; + 2416: 6d14 or r4, r5 + 2418: 6d1c or r4, r7 + 241a: 98a4 ld.w r5, (r14, 0x10) + 241c: 6d18 or r4, r6 + 241e: 6d14 or r4, r5 + 2420: 98a3 ld.w r5, (r14, 0xc) + 2422: 6d14 or r4, r5 + 2424: 98a2 ld.w r5, (r14, 0x8) + 2426: 6d14 or r4, r5 + 2428: 98a1 ld.w r5, (r14, 0x4) + 242a: 6d14 or r4, r5 + 242c: 98a0 ld.w r5, (r14, 0x0) + 242e: 6d14 or r4, r5 + 2430: 6cd0 or r3, r4 + 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| + 2432: 101a lrw r0, 0x20000020 // 2498 + 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; + 2434: 6c8c or r2, r3 + 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| + 2436: 9000 ld.w r0, (r0, 0x0) + 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; + 2438: 6c48 or r1, r2 + 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| + 243a: b033 st.w r1, (r0, 0x4c) + 243c: 07e9 br 0x240e // 240e + else if(EPT_PWMX_Selecte==EPT_PWMC) + 243e: 3842 cmpnei r0, 2 + 2440: 0815 bt 0x246a // 246a + 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; + 2442: 6d14 or r4, r5 + 2444: 6d1c or r4, r7 + 2446: 98a4 ld.w r5, (r14, 0x10) + 2448: 6d18 or r4, r6 + 244a: 6d14 or r4, r5 + 244c: 98a3 ld.w r5, (r14, 0xc) + 244e: 6d14 or r4, r5 + 2450: 98a2 ld.w r5, (r14, 0x8) + 2452: 6d14 or r4, r5 + 2454: 98a1 ld.w r5, (r14, 0x4) + 2456: 6d14 or r4, r5 + 2458: 98a0 ld.w r5, (r14, 0x0) + 245a: 6d14 or r4, r5 + 245c: 6cd0 or r3, r4 + 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| + 245e: 100f lrw r0, 0x20000020 // 2498 + 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; + 2460: 6c8c or r2, r3 + 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| + 2462: 9000 ld.w r0, (r0, 0x0) + 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; + 2464: 6c48 or r1, r2 + 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| + 2466: b034 st.w r1, (r0, 0x50) + 2468: 07d3 br 0x240e // 240e + else if(EPT_PWMX_Selecte==EPT_PWMD) + 246a: 3843 cmpnei r0, 3 + 246c: 0bd1 bt 0x240e // 240e + 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; + 246e: 6d14 or r4, r5 + 2470: 6d1c or r4, r7 + 2472: 98a4 ld.w r5, (r14, 0x10) + 2474: 6d18 or r4, r6 + 2476: 6d14 or r4, r5 + 2478: 98a3 ld.w r5, (r14, 0xc) + 247a: 6d14 or r4, r5 + 247c: 98a2 ld.w r5, (r14, 0x8) + 247e: 6d14 or r4, r5 + 2480: 98a1 ld.w r5, (r14, 0x4) + 2482: 6d14 or r4, r5 + 2484: 98a0 ld.w r5, (r14, 0x0) + 2486: 6d14 or r4, r5 + 2488: 6cd0 or r3, r4 + 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| + 248a: 1004 lrw r0, 0x20000020 // 2498 + 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; + 248c: 6c8c or r2, r3 + 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| + 248e: 9000 ld.w r0, (r0, 0x0) + 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; + 2490: 6c48 or r1, r2 + 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| + 2492: b035 st.w r1, (r0, 0x54) +} + 2494: 07bd br 0x240e // 240e + 2496: 0000 bkpt + 2498: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +0000249c : +//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) +{ + 249c: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 249e: 1086 lrw r4, 0x20000020 // 24b4 +{ + 24a0: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 24a4: 9480 ld.w r4, (r4, 0x0) + 24a6: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 24a8: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 24aa: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 24ac: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 24ae: b4ae st.w r5, (r4, 0x38) +} + 24b0: 1482 pop r4-r5 + 24b2: 0000 bkpt + 24b4: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +000024b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 24b8: 1078 lrw r3, 0x20000050 // 2518 + 24ba: 3200 movi r2, 0 + 24bc: 9360 ld.w r3, (r3, 0x0) + 24be: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 24c0: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 24c2: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 24c4: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 24c6: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 24c8: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 24ca: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 24cc: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 24ce: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 24d0: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 24d2: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 24d4: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 24d6: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 24d8: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 24da: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 24dc: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 24de: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 24e0: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 24e2: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 24e4: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 24e6: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 24e8: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 24ea: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 24ec: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 24ee: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 24f0: 23ff addi r3, 256 + 24f2: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 24f4: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 24f6: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 24f8: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 24fa: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 24fc: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 24fe: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2500: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 2502: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 2504: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 2506: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2508: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 250a: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 250c: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 250e: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2510: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 2512: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 2514: b351 st.w r2, (r3, 0x44) +} + 2516: 783c jmp r15 + 2518: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +0000251c : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 251c: 1063 lrw r3, 0x20000050 // 2528 + 251e: 9340 ld.w r2, (r3, 0x0) + 2520: 9264 ld.w r3, (r2, 0x10) + 2522: 6c0c or r0, r3 + 2524: b204 st.w r0, (r2, 0x10) +} + 2526: 783c jmp r15 + 2528: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +0000252c : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 252c: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 252e: 3002 movi r0, 2 + 2530: e3fffff6 bsr 0x251c // 251c + while(!(ADC0->SR &ADC12_ADCENS)); + 2534: 1065 lrw r3, 0x20000050 // 2548 + 2536: 3280 movi r2, 128 + 2538: 9320 ld.w r1, (r3, 0x0) + 253a: 4241 lsli r2, r2, 1 + 253c: 9168 ld.w r3, (r1, 0x20) + 253e: 68c8 and r3, r2 + 2540: 3b40 cmpnei r3, 0 + 2542: 0ffd bf 0x253c // 253c + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2544: 1490 pop r15 + 2546: 0000 bkpt + 2548: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +0000254c : + if (NewState != DISABLE) + 254c: 3940 cmpnei r1, 0 + 254e: 106a lrw r3, 0x20000050 // 2574 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2550: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 2552: 0c09 bf 0x2564 // 2564 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2554: 9260 ld.w r3, (r2, 0x0) + 2556: 6cc0 or r3, r0 + 2558: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 255a: 9262 ld.w r3, (r2, 0x8) + 255c: 68c0 and r3, r0 + 255e: 3b40 cmpnei r3, 0 + 2560: 0ffd bf 0x255a // 255a +} + 2562: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2564: 9261 ld.w r3, (r2, 0x4) + 2566: 6cc0 or r3, r0 + 2568: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 256a: 9262 ld.w r3, (r2, 0x8) + 256c: 68c0 and r3, r0 + 256e: 3b40 cmpnei r3, 0 + 2570: 0bfd bt 0x256a // 256a + 2572: 07f8 br 0x2562 // 2562 + 2574: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00002578 : +{ + 2578: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 257a: 3001 movi r0, 1 + 257c: e3ffffd0 bsr 0x251c // 251c +} + 2580: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00002584 : +{ + 2584: 14d0 push r15 + if (NewState != DISABLE) + 2586: 3840 cmpnei r0, 0 + 2588: 0c04 bf 0x2590 // 2590 + 258a: e3ffffd1 bsr 0x252c // 252c +} + 258e: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 2590: 3004 movi r0, 4 + 2592: e3ffffc5 bsr 0x251c // 251c + while(ADC0->SR&ADC12_ADCENS); + 2596: 1065 lrw r3, 0x20000050 // 25a8 + 2598: 3280 movi r2, 128 + 259a: 9320 ld.w r1, (r3, 0x0) + 259c: 4241 lsli r2, r2, 1 + 259e: 9168 ld.w r3, (r1, 0x20) + 25a0: 68c8 and r3, r2 + 25a2: 3b40 cmpnei r3, 0 + 25a4: 0bfd bt 0x259e // 259e + 25a6: 07f4 br 0x258e // 258e + 25a8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +000025ac : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 25ac: 1064 lrw r3, 0x20000050 // 25bc + 25ae: 3202 movi r2, 2 + 25b0: 9320 ld.w r1, (r3, 0x0) + 25b2: 9168 ld.w r3, (r1, 0x20) + 25b4: 68c8 and r3, r2 + 25b6: 3b40 cmpnei r3, 0 + 25b8: 0ffd bf 0x25b2 // 25b2 +} + 25ba: 783c jmp r15 + 25bc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +000025c0 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 25c0: 200f addi r0, 16 + 25c2: 1065 lrw r3, 0x20000050 // 25d4 + 25c4: 3201 movi r2, 1 + 25c6: 9320 ld.w r1, (r3, 0x0) + 25c8: 7080 lsl r2, r0 + 25ca: 9168 ld.w r3, (r1, 0x20) + 25cc: 68c8 and r3, r2 + 25ce: 3b40 cmpnei r3, 0 + 25d0: 0ffd bf 0x25ca // 25ca +} + 25d2: 783c jmp r15 + 25d4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +000025d8 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 25d8: 203f addi r0, 64 + 25da: 1064 lrw r3, 0x20000050 // 25e8 + 25dc: 4002 lsli r0, r0, 2 + 25de: 9360 ld.w r3, (r3, 0x0) + 25e0: 600c addu r0, r3 + 25e2: 9000 ld.w r0, (r0, 0x0) + 25e4: 7401 zexth r0, r0 +} + 25e6: 783c jmp r15 + 25e8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +000025ec : + //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 ) +{ + 25ec: 14d4 push r4-r7, r15 + 25ee: 1422 subi r14, r14, 8 + 25f0: 1c08 addi r4, r14, 32 + 25f2: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 25f4: 2d00 subi r5, 1 +{ + 25f6: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 25f8: 10db lrw r6, 0x20000050 // 2664 +{ + 25fa: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 25fe: 45aa lsli r5, r5, 10 + 2600: 9680 ld.w r4, (r6, 0x0) + 2602: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 2604: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2606: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2608: 081c bt 0x2640 // 2640 + { + ADC0->MR&=~CONTCV; //one short mode + 260a: 9425 ld.w r1, (r4, 0x14) + 260c: 4121 lsli r1, r1, 1 + 260e: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2610: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 2612: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 2614: 4002 lsli r0, r0, 2 + 2616: 9428 ld.w r1, (r4, 0x20) + 2618: 6840 and r1, r0 + 261a: 3940 cmpnei r1, 0 + 261c: 0bfd bt 0x2616 // 2616 + 261e: b861 st.w r3, (r14, 0x4) + 2620: b840 st.w r2, (r14, 0x0) + 2622: e3ffff85 bsr 0x252c // 252c + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 2626: 3f40 cmpnei r7, 0 + 2628: 9840 ld.w r2, (r14, 0x0) + 262a: 9861 ld.w r3, (r14, 0x4) + 262c: 0c16 bf 0x2658 // 2658 + { + ADC0->CR|=ADC12_10BITor12BIT; + 262e: 9600 ld.w r0, (r6, 0x0) + 2630: 9024 ld.w r1, (r0, 0x10) + 2632: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 2634: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 2636: 9620 ld.w r1, (r6, 0x0) + 2638: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 263a: b166 st.w r3, (r1, 0x18) +} + 263c: 1402 addi r14, r14, 8 + 263e: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2640: 3941 cmpnei r1, 1 + 2642: 0bee bt 0x261e // 261e + ADC0->MR|=CONTCV; //Continuous mode + 2644: 9425 ld.w r1, (r4, 0x14) + 2646: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 2648: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 264a: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 264c: 4002 lsli r0, r0, 2 + 264e: 9428 ld.w r1, (r4, 0x20) + 2650: 6840 and r1, r0 + 2652: 3940 cmpnei r1, 0 + 2654: 0ffd bf 0x264e // 264e + 2656: 07e4 br 0x261e // 261e + ADC0->CR&=~ADC12_10BITor12BIT; + 2658: 9600 ld.w r0, (r6, 0x0) + 265a: 9024 ld.w r1, (r0, 0x10) + 265c: 4121 lsli r1, r1, 1 + 265e: 4921 lsri r1, r1, 1 + 2660: 07ea br 0x2634 // 2634 + 2662: 0000 bkpt + 2664: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00002668 : +//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) + 2668: 3840 cmpnei r0, 0 + 266a: 0808 bt 0x267a // 267a + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 266c: 127c lrw r3, 0x20000050 // 27dc + 266e: 123d lrw r1, 0x103c0 // 27e0 + 2670: 9340 ld.w r2, (r3, 0x0) + 2672: 9264 ld.w r3, (r2, 0x10) + 2674: 68c5 andn r3, r1 + 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); + 2676: b264 st.w r3, (r2, 0x10) + } +} + 2678: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 267a: 3841 cmpnei r0, 1 + 267c: 0810 bt 0x269c // 269c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 267e: 127a lrw r3, 0x2000004c // 27e4 + 2680: 32f0 movi r2, 240 + 2682: 9320 ld.w r1, (r3, 0x0) + 2684: 9160 ld.w r3, (r1, 0x0) + 2686: 4244 lsli r2, r2, 4 + 2688: 68c9 andn r3, r2 + 268a: 3bab bseti r3, 11 + 268c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 268e: 1235 lrw r1, 0x103c0 // 27e0 + 2690: 1273 lrw r3, 0x20000050 // 27dc + 2692: 9340 ld.w r2, (r3, 0x0) + 2694: 9264 ld.w r3, (r2, 0x10) + 2696: 68c5 andn r3, r1 + 2698: 3ba6 bseti r3, 6 + 269a: 07ee br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 269c: 3842 cmpnei r0, 2 + 269e: 0811 bt 0x26c0 // 26c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26a0: 1271 lrw r3, 0x2000004c // 27e4 + 26a2: 32f0 movi r2, 240 + 26a4: 9320 ld.w r1, (r3, 0x0) + 26a6: 9160 ld.w r3, (r1, 0x0) + 26a8: 4244 lsli r2, r2, 4 + 26aa: 68c9 andn r3, r2 + 26ac: 3bab bseti r3, 11 + 26ae: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 26b0: 122e lrw r1, 0x30103c0 // 27e8 + 26b2: 126b lrw r3, 0x20000050 // 27dc + 26b4: 9340 ld.w r2, (r3, 0x0) + 26b6: 9264 ld.w r3, (r2, 0x10) + 26b8: 68c5 andn r3, r1 + 26ba: 3ba7 bseti r3, 7 + 26bc: 3bb8 bseti r3, 24 + 26be: 07dc br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 26c0: 3843 cmpnei r0, 3 + 26c2: 0811 bt 0x26e4 // 26e4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26c4: 1268 lrw r3, 0x2000004c // 27e4 + 26c6: 32f0 movi r2, 240 + 26c8: 9320 ld.w r1, (r3, 0x0) + 26ca: 9160 ld.w r3, (r1, 0x0) + 26cc: 4244 lsli r2, r2, 4 + 26ce: 68c9 andn r3, r2 + 26d0: 3bab bseti r3, 11 + 26d2: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 26d4: 1225 lrw r1, 0x30103c0 // 27e8 + 26d6: 1262 lrw r3, 0x20000050 // 27dc + 26d8: 9340 ld.w r2, (r3, 0x0) + 26da: 9264 ld.w r3, (r2, 0x10) + 26dc: 68c5 andn r3, r1 + 26de: 1224 lrw r1, 0x30000c0 // 27ec + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 26e0: 6cc4 or r3, r1 + 26e2: 07ca br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 26e4: 3845 cmpnei r0, 5 + 26e6: 0809 bt 0x26f8 // 26f8 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 26e8: 117d lrw r3, 0x20000050 // 27dc + 26ea: 1222 lrw r1, 0x503c0 // 27f0 + 26ec: 9340 ld.w r2, (r3, 0x0) + 26ee: 9264 ld.w r3, (r2, 0x10) + 26f0: 68c5 andn r3, r1 + 26f2: 3ba8 bseti r3, 8 + 26f4: 3bb2 bseti r3, 18 + 26f6: 07c0 br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 26f8: 3846 cmpnei r0, 6 + 26fa: 0812 bt 0x271e // 271e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 26fc: 117a lrw r3, 0x2000004c // 27e4 + 26fe: 32f0 movi r2, 240 + 2700: 9320 ld.w r1, (r3, 0x0) + 2702: 9160 ld.w r3, (r1, 0x0) + 2704: 4248 lsli r2, r2, 8 + 2706: 68c9 andn r3, r2 + 2708: 32b0 movi r2, 176 + 270a: 4248 lsli r2, r2, 8 + 270c: 6cc8 or r3, r2 + 270e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2710: 1134 lrw r1, 0x103c0 // 27e0 + 2712: 1173 lrw r3, 0x20000050 // 27dc + 2714: 9340 ld.w r2, (r3, 0x0) + 2716: 9264 ld.w r3, (r2, 0x10) + 2718: 68c5 andn r3, r1 + 271a: 3ba9 bseti r3, 9 + 271c: 07ad br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 271e: 3847 cmpnei r0, 7 + 2720: 0819 bt 0x2752 // 2752 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2722: 1171 lrw r3, 0x2000004c // 27e4 + 2724: 31f0 movi r1, 240 + 2726: 9340 ld.w r2, (r3, 0x0) + 2728: 9260 ld.w r3, (r2, 0x0) + 272a: 4128 lsli r1, r1, 8 + 272c: 68c5 andn r3, r1 + 272e: 31b0 movi r1, 176 + 2730: 4128 lsli r1, r1, 8 + 2732: 6cc4 or r3, r1 + 2734: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2736: 31f0 movi r1, 240 + 2738: 9260 ld.w r3, (r2, 0x0) + 273a: 4124 lsli r1, r1, 4 + 273c: 68c5 andn r3, r1 + 273e: 3bab bseti r3, 11 + 2740: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 2742: 1128 lrw r1, 0x103c0 // 27e0 + 2744: 1166 lrw r3, 0x20000050 // 27dc + 2746: 9340 ld.w r2, (r3, 0x0) + 2748: 9264 ld.w r3, (r2, 0x10) + 274a: 68c5 andn r3, r1 + 274c: 3ba6 bseti r3, 6 + 274e: 3ba9 bseti r3, 9 + 2750: 0793 br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 2752: 3848 cmpnei r0, 8 + 2754: 0818 bt 0x2784 // 2784 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2756: 1164 lrw r3, 0x2000004c // 27e4 + 2758: 31f0 movi r1, 240 + 275a: 9340 ld.w r2, (r3, 0x0) + 275c: 9260 ld.w r3, (r2, 0x0) + 275e: 4128 lsli r1, r1, 8 + 2760: 68c5 andn r3, r1 + 2762: 31b0 movi r1, 176 + 2764: 4128 lsli r1, r1, 8 + 2766: 6cc4 or r3, r1 + 2768: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 276a: 31f0 movi r1, 240 + 276c: 9260 ld.w r3, (r2, 0x0) + 276e: 4124 lsli r1, r1, 4 + 2770: 68c5 andn r3, r1 + 2772: 3bab bseti r3, 11 + 2774: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 2776: 103d lrw r1, 0x30103c0 // 27e8 + 2778: 1079 lrw r3, 0x20000050 // 27dc + 277a: 9340 ld.w r2, (r3, 0x0) + 277c: 9264 ld.w r3, (r2, 0x10) + 277e: 68c5 andn r3, r1 + 2780: 103d lrw r1, 0x1000280 // 27f4 + 2782: 07af br 0x26e0 // 26e0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 2784: 3849 cmpnei r0, 9 + 2786: 0818 bt 0x27b6 // 27b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2788: 1077 lrw r3, 0x2000004c // 27e4 + 278a: 31f0 movi r1, 240 + 278c: 9340 ld.w r2, (r3, 0x0) + 278e: 9260 ld.w r3, (r2, 0x0) + 2790: 4128 lsli r1, r1, 8 + 2792: 68c5 andn r3, r1 + 2794: 31b0 movi r1, 176 + 2796: 4128 lsli r1, r1, 8 + 2798: 6cc4 or r3, r1 + 279a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 279c: 31f0 movi r1, 240 + 279e: 9260 ld.w r3, (r2, 0x0) + 27a0: 4124 lsli r1, r1, 4 + 27a2: 68c5 andn r3, r1 + 27a4: 3bab bseti r3, 11 + 27a6: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 27a8: 1030 lrw r1, 0x30103c0 // 27e8 + 27aa: 106d lrw r3, 0x20000050 // 27dc + 27ac: 9340 ld.w r2, (r3, 0x0) + 27ae: 9264 ld.w r3, (r2, 0x10) + 27b0: 68c5 andn r3, r1 + 27b2: 1032 lrw r1, 0x30002c0 // 27f8 + 27b4: 0796 br 0x26e0 // 26e0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 27b6: 384b cmpnei r0, 11 + 27b8: 0b60 bt 0x2678 // 2678 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ba: 106b lrw r3, 0x2000004c // 27e4 + 27bc: 32f0 movi r2, 240 + 27be: 9320 ld.w r1, (r3, 0x0) + 27c0: 9160 ld.w r3, (r1, 0x0) + 27c2: 4248 lsli r2, r2, 8 + 27c4: 68c9 andn r3, r2 + 27c6: 32b0 movi r2, 176 + 27c8: 4248 lsli r2, r2, 8 + 27ca: 6cc8 or r3, r2 + 27cc: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 27ce: 1029 lrw r1, 0x503c0 // 27f0 + 27d0: 1063 lrw r3, 0x20000050 // 27dc + 27d2: 9340 ld.w r2, (r3, 0x0) + 27d4: 9264 ld.w r3, (r2, 0x10) + 27d6: 68c5 andn r3, r1 + 27d8: 1029 lrw r1, 0x40300 // 27fc + 27da: 0783 br 0x26e0 // 26e0 + 27dc: 20000050 .long 0x20000050 + 27e0: 000103c0 .long 0x000103c0 + 27e4: 2000004c .long 0x2000004c + 27e8: 030103c0 .long 0x030103c0 + 27ec: 030000c0 .long 0x030000c0 + 27f0: 000503c0 .long 0x000503c0 + 27f4: 01000280 .long 0x01000280 + 27f8: 030002c0 .long 0x030002c0 + 27fc: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002800 : +//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) +{ + 2800: 14d4 push r4-r7, r15 + 2802: 1421 subi r14, r14, 4 + 2804: b840 st.w r2, (r14, 0x0) + 2806: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2808: 125b lrw r2, 0x20000050 // 2974 + 280a: 92c0 ld.w r6, (r2, 0x0) + 280c: 3200 movi r2, 0 + 280e: 4202 lsli r0, r2, 2 + 2810: 6018 addu r0, r6 + 2812: 908c ld.w r4, (r0, 0x30) + 2814: 2200 addi r2, 1 + 2816: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2818: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 281a: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 281c: 0bf9 bt 0x280e // 280e + } + switch(ADC12_ADCINX) + 281e: 3d0f cmphsi r5, 16 + 2820: 0825 bt 0x286a // 286a + 2822: 6c17 mov r0, r5 + 2824: 1255 lrw r2, 0x2000004c // 2978 + 2826: 1296 lrw r4, 0x20000048 // 297c + 2828: e3fff26a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 282c: 322c1408 .long 0x322c1408 + 2830: 4d474039 .long 0x4d474039 + 2834: 756d6559 .long 0x756d6559 + 2838: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 283c: 9240 ld.w r2, (r2, 0x0) + 283e: 9200 ld.w r0, (r2, 0x0) + 2840: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2842: 9201 ld.w r0, (r2, 0x4) + 2844: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 2846: 9400 ld.w r0, (r4, 0x0) + 2848: 9040 ld.w r2, (r0, 0x0) + 284a: 34f0 movi r4, 240 + 284c: 6891 andn r2, r4 + 284e: 3aa4 bseti r2, 4 + 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; + 2850: b040 st.w r2, (r0, 0x0) + break; + 2852: 040c br 0x286a // 286a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2854: 9200 ld.w r0, (r2, 0x0) + 2856: 9040 ld.w r2, (r0, 0x0) + 2858: 370f movi r7, 15 + 285a: 689d andn r2, r7 + 285c: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 285e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2860: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2862: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2864: 9440 ld.w r2, (r4, 0x0) + 2866: 9200 ld.w r0, (r2, 0x0) + 2868: b200 st.w r0, (r2, 0x0) + 286a: 4362 lsli r3, r3, 2 + 286c: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 286e: 966c ld.w r3, (r6, 0x30) + 2870: 3300 movi r3, 0 + 2872: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2874: 9860 ld.w r3, (r14, 0x0) + 2876: 6c4c or r1, r3 + 2878: 964c ld.w r2, (r6, 0x30) + 287a: 6d44 or r5, r1 + 287c: 6d48 or r5, r2 + 287e: b6ac st.w r5, (r6, 0x30) +} + 2880: 1401 addi r14, r14, 4 + 2882: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 2884: 9200 ld.w r0, (r2, 0x0) + 2886: 9040 ld.w r2, (r0, 0x0) + 2888: 37f0 movi r7, 240 + 288a: 689d andn r2, r7 + 288c: 3aa4 bseti r2, 4 + 288e: 07e8 br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 2890: 9200 ld.w r0, (r2, 0x0) + 2892: 37f0 movi r7, 240 + 2894: 9040 ld.w r2, (r0, 0x0) + 2896: 47e8 lsli r7, r7, 8 + 2898: 689d andn r2, r7 + 289a: 3aac bseti r2, 12 + 289c: 07e1 br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 289e: 9200 ld.w r0, (r2, 0x0) + 28a0: 37f0 movi r7, 240 + 28a2: 9040 ld.w r2, (r0, 0x0) + 28a4: 47f0 lsli r7, r7, 16 + 28a6: 689d andn r2, r7 + 28a8: 3ab4 bseti r2, 20 + 28aa: 07da br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 28ac: 9200 ld.w r0, (r2, 0x0) + 28ae: 37f0 movi r7, 240 + 28b0: 9040 ld.w r2, (r0, 0x0) + 28b2: 47f4 lsli r7, r7, 20 + 28b4: 689d andn r2, r7 + 28b6: 3ab8 bseti r2, 24 + 28b8: 07d3 br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28ba: 9200 ld.w r0, (r2, 0x0) + 28bc: 9040 ld.w r2, (r0, 0x0) + 28be: 4244 lsli r2, r2, 4 + 28c0: 4a44 lsri r2, r2, 4 + 28c2: 3abc bseti r2, 28 + 28c4: 07cd br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 28c6: 9240 ld.w r2, (r2, 0x0) + 28c8: 9200 ld.w r0, (r2, 0x0) + 28ca: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28cc: 9201 ld.w r0, (r2, 0x4) + 28ce: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 28d0: 9400 ld.w r0, (r4, 0x0) + 28d2: 34f0 movi r4, 240 + 28d4: 9040 ld.w r2, (r0, 0x0) + 28d6: 4484 lsli r4, r4, 4 + 28d8: 6891 andn r2, r4 + 28da: 3aa8 bseti r2, 8 + 28dc: 07ba br 0x2850 // 2850 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 28de: 9240 ld.w r2, (r2, 0x0) + 28e0: 9200 ld.w r0, (r2, 0x0) + 28e2: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28e4: 9201 ld.w r0, (r2, 0x4) + 28e6: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 28e8: 9400 ld.w r0, (r4, 0x0) + 28ea: 34f0 movi r4, 240 + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 4488 lsli r4, r4, 8 + 28f0: 6891 andn r2, r4 + 28f2: 3aac bseti r2, 12 + 28f4: 07ae br 0x2850 // 2850 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: 9040 ld.w r2, (r0, 0x0) + 28fa: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 28fc: 9041 ld.w r2, (r0, 0x4) + 28fe: 370f movi r7, 15 + 2900: 689d andn r2, r7 + 2902: 3aa0 bseti r2, 0 + 2904: 07af br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2906: 9200 ld.w r0, (r2, 0x0) + 2908: 9040 ld.w r2, (r0, 0x0) + 290a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 290c: 9041 ld.w r2, (r0, 0x4) + 290e: 37f0 movi r7, 240 + 2910: 689d andn r2, r7 + 2912: 3aa4 bseti r2, 4 + 2914: 07a7 br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2916: 9200 ld.w r0, (r2, 0x0) + 2918: 9040 ld.w r2, (r0, 0x0) + 291a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 291c: 37f0 movi r7, 240 + 291e: 9041 ld.w r2, (r0, 0x4) + 2920: 47e4 lsli r7, r7, 4 + 2922: 689d andn r2, r7 + 2924: 3aa8 bseti r2, 8 + 2926: 079e br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2928: 9200 ld.w r0, (r2, 0x0) + 292a: 9040 ld.w r2, (r0, 0x0) + 292c: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 292e: 37f0 movi r7, 240 + 2930: 9041 ld.w r2, (r0, 0x4) + 2932: 47e8 lsli r7, r7, 8 + 2934: 689d andn r2, r7 + 2936: 3aac bseti r2, 12 + 2938: 0795 br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 293a: 9200 ld.w r0, (r2, 0x0) + 293c: 9040 ld.w r2, (r0, 0x0) + 293e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2940: 37f0 movi r7, 240 + 2942: 9041 ld.w r2, (r0, 0x4) + 2944: 47ec lsli r7, r7, 12 + 2946: 689d andn r2, r7 + 2948: 3ab0 bseti r2, 16 + 294a: 078c br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 294c: 9200 ld.w r0, (r2, 0x0) + 294e: 9040 ld.w r2, (r0, 0x0) + 2950: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2952: 37f0 movi r7, 240 + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 47f0 lsli r7, r7, 16 + 2958: 689d andn r2, r7 + 295a: 3ab4 bseti r2, 20 + 295c: 0783 br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 295e: 9240 ld.w r2, (r2, 0x0) + 2960: 9200 ld.w r0, (r2, 0x0) + 2962: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2964: 9201 ld.w r0, (r2, 0x4) + 2966: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2968: 9400 ld.w r0, (r4, 0x0) + 296a: 9040 ld.w r2, (r0, 0x0) + 296c: 340f movi r4, 15 + 296e: 6891 andn r2, r4 + 2970: 3aa0 bseti r2, 0 + 2972: 076f br 0x2850 // 2850 + 2974: 20000050 .long 0x20000050 + 2978: 2000004c .long 0x2000004c + 297c: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002980 : + 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) +{ + 2980: 14c4 push r4-r7 + 2982: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2984: 1165 lrw r3, 0x20000060 // 2a18 + 2986: 1186 lrw r4, 0x5a5a5a5a // 2a1c + 2988: 9360 ld.w r3, (r3, 0x0) + 298a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 298c: 3407 movi r4, 7 + 298e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2990: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2992: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2994: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2996: 9384 ld.w r4, (r3, 0x10) + 2998: 3c40 cmpnei r4, 0 + 299a: 0bfe bt 0x2996 // 2996 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 299c: 2102 addi r1, 3 + 299e: 4922 lsri r1, r1, 2 + 29a0: 4122 lsli r1, r1, 2 + 29a2: 6048 addu r1, r2 + 29a4: b820 st.w r1, (r14, 0x0) + 29a6: 5829 subu r1, r0, r2 + 29a8: b821 st.w r1, (r14, 0x4) + 29aa: 9820 ld.w r1, (r14, 0x0) + 29ac: 644a cmpne r2, r1 + 29ae: 0826 bt 0x29fa // 29fa + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 29b0: 3106 movi r1, 6 + SetUserKey; + 29b2: 105b lrw r2, 0x5a5a5a5a // 2a1c + 29b4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 29b6: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29b8: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 29ba: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29bc: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29be: 9324 ld.w r1, (r3, 0x10) + 29c0: 3940 cmpnei r1, 0 + 29c2: 0bfe bt 0x29be // 29be + //Perform pre-programming 4 + SetUserKey; + 29c4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 29c6: 3201 movi r2, 1 + 29c8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 29ca: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29cc: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 29ce: 934a ld.w r2, (r3, 0x28) + 29d0: 3a44 cmpnei r2, 4 + 29d2: 0bfe bt 0x29ce // 29ce + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 29d4: 3102 movi r1, 2 + SetUserKey; + 29d6: 1052 lrw r2, 0x5a5a5a5a // 2a1c + 29d8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 29da: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 29dc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 29de: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29e0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 29e2: 932a ld.w r1, (r3, 0x28) + 29e4: 3941 cmpnei r1, 1 + 29e6: 0bfe bt 0x29e2 // 29e2 + //Write page cache data to flash memory 6 + SetUserKey; + 29e8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 29ea: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 29ec: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ee: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 29f0: 934a ld.w r2, (r3, 0x28) + 29f2: 3a42 cmpnei r2, 2 + 29f4: 0bfe bt 0x29f0 // 29f0 +} + 29f6: 1402 addi r14, r14, 8 + 29f8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 29fa: 82e0 ld.b r7, (r2, 0x0) + 29fc: 8281 ld.b r4, (r2, 0x1) + 29fe: 4488 lsli r4, r4, 8 + 2a00: 8222 ld.b r1, (r2, 0x2) + 2a02: 611c addu r4, r7 + 2a04: 82a3 ld.b r5, (r2, 0x3) + 2a06: 4130 lsli r1, r1, 16 + 2a08: 98c1 ld.w r6, (r14, 0x4) + 2a0a: 6050 addu r1, r4 + 2a0c: 45b8 lsli r5, r5, 24 + 2a0e: 6188 addu r6, r2 + 2a10: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a12: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a14: 2203 addi r2, 4 + 2a16: 07ca br 0x29aa // 29aa + 2a18: 20000060 .long 0x20000060 + 2a1c: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a20 : +//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) +{ + 2a20: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a2c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a2e: 3b40 cmpnei r3, 0 + 2a30: 0c06 bf 0x2a3c // 2a3c + 2a32: 6d0f mov r4, r3 + 2a34: 6914 and r4, r5 + 2a36: 3c40 cmpnei r4, 0 + 2a38: 0802 bt 0x2a3c // 2a3c + RdStartAdd +=4; + 2a3a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a3c: 6d0f mov r4, r3 + 2a3e: 6914 and r4, r5 + 2a40: 6100 addu r4, r0 + 2a42: 8480 ld.b r4, (r4, 0x0) + 2a44: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002a4c : +void tk_parameter_init(void) +{ +/**************************************************** +//TK parameter define +*****************************************************/ + TK_IO_ENABLE=0x3E00; + 2a4c: 33f8 movi r3, 248 + 2a4e: 4366 lsli r3, r3, 6 + 2a50: 1159 lrw r2, 0x20000108 // 2b34 + 2a52: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a54: 3246 movi r2, 70 + 2a56: 1179 lrw r3, 0x2000010e // 2b38 + 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 + 2a58: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a5a: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2a5c: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2a5e: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2a60: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2a62: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2a64: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2a66: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2a68: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2a6a: 1155 lrw r2, 0x20000204 // 2b3c + 2a6c: 8a22 ld.h r1, (r2, 0x4) + 2a6e: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2a70: 8a23 ld.h r1, (r2, 0x6) + 2a72: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2a74: 8a24 ld.h r1, (r2, 0x8) + 2a76: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2a78: 8a25 ld.h r1, (r2, 0xa) + 2a7a: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2a7c: 8a26 ld.h r1, (r2, 0xc) + 2a7e: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2a80: 3146 movi r1, 70 + 2a82: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2a84: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2a86: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2a88: 3128 movi r1, 40 + 2a8a: 116e lrw r3, 0x20000132 // 2b40 + 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 + 2a8c: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2a8e: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2a90: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2a92: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2a94: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2a96: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2a98: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2a9a: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2a9c: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2a9e: 8a27 ld.h r1, (r2, 0xe) + 2aa0: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2aa2: 8a28 ld.h r1, (r2, 0x10) + 2aa4: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2aa6: 8a29 ld.h r1, (r2, 0x12) + 2aa8: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2aaa: 8a2a ld.h r1, (r2, 0x14) + 2aac: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2aae: 8a2b ld.h r1, (r2, 0x16) + 2ab0: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2ab2: 3128 movi r1, 40 + 2ab4: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2ab6: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2ab8: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2aba: 8220 ld.b r1, (r2, 0x0) + 2abc: 1162 lrw r3, 0x200000d8 // 2b44 + 2abe: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2ac0: 8221 ld.b r1, (r2, 0x1) + 2ac2: 1162 lrw r3, 0x200000e0 // 2b48 + 2ac4: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2ac6: 3101 movi r1, 1 + 2ac8: 1161 lrw r3, 0x200000e1 // 2b4c + 2aca: a320 st.b r1, (r3, 0x0) + MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + 2acc: 8222 ld.b r1, (r2, 0x2) + 2ace: 1161 lrw r3, 0x20000104 // 2b50 + 2ad0: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2ad2: 3106 movi r1, 6 + 2ad4: 1160 lrw r3, 0x2000010c // 2b54 + 2ad6: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2ad8: 8223 ld.b r1, (r2, 0x3) + 2ada: 1160 lrw r3, 0x20000105 // 2b58 + 2adc: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2ade: 9246 ld.w r2, (r2, 0x18) + 2ae0: 107f lrw r3, 0x200000dc // 2b5c + 2ae2: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2ae4: 105f lrw r2, 0xea5f // 2b60 + 2ae6: 1160 lrw r3, 0x20000158 // 2b64 + 2ae8: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2aea: 3200 movi r2, 0 + 2aec: 107f lrw r3, 0x200000d9 // 2b68 + 2aee: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2af0: 3202 movi r2, 2 + 2af2: 107f lrw r3, 0x200000da // 2b6c + 2af4: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2af6: 3232 movi r2, 50 + 2af8: 107e lrw r3, 0x20000130 // 2b70 + 2afa: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2afc: 3200 movi r2, 0 + 2afe: 107e lrw r3, 0x2000015c // 2b74 + 2b00: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b02: 107e lrw r3, 0x20000156 // 2b78 + 2b04: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b06: 107e lrw r3, 0x20000154 // 2b7c + 2b08: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=6; //TCH0 TK Scan icon range 0~7 + 2b0a: 3206 movi r2, 6 + 2b0c: 107d lrw r3, 0x200000e2 // 2b80 + 2b0e: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=6; //TCH1 TK Scan icon range 0~7 + 2b10: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=6; //TCH2 TK Scan icon range 0~7 + 2b12: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=6; //TCH3 TK Scan icon range 0~7 + 2b14: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=6; //TCH4 TK Scan icon range 0~7 + 2b16: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=6; //TCH5 TK Scan icon range 0~7 + 2b18: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=6; //TCH6 TK Scan icon range 0~7 + 2b1a: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=6; //TCH7 TK Scan icon range 0~7 + 2b1c: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=6; //TCH8 TK Scan icon range 0~7 + 2b1e: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + 2b20: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + 2b22: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + 2b24: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + 2b26: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + 2b28: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=6; //TCH14 TK Scan icon range 0~7 + 2b2a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=6; //TCH15 TK Scan icon range 0~7 + 2b2c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=6; //TCH16 TK Scan icon range 0~7 + 2b2e: ab50 st.h r2, (r3, 0x20) + 2b30: 783c jmp r15 + 2b32: 0000 bkpt + 2b34: 20000108 .long 0x20000108 + 2b38: 2000010e .long 0x2000010e + 2b3c: 20000204 .long 0x20000204 + 2b40: 20000132 .long 0x20000132 + 2b44: 200000d8 .long 0x200000d8 + 2b48: 200000e0 .long 0x200000e0 + 2b4c: 200000e1 .long 0x200000e1 + 2b50: 20000104 .long 0x20000104 + 2b54: 2000010c .long 0x2000010c + 2b58: 20000105 .long 0x20000105 + 2b5c: 200000dc .long 0x200000dc + 2b60: 0000ea5f .long 0x0000ea5f + 2b64: 20000158 .long 0x20000158 + 2b68: 200000d9 .long 0x200000d9 + 2b6c: 200000da .long 0x200000da + 2b70: 20000130 .long 0x20000130 + 2b74: 2000015c .long 0x2000015c + 2b78: 20000156 .long 0x20000156 + 2b7c: 20000154 .long 0x20000154 + 2b80: 200000e2 .long 0x200000e2 + +Disassembly of section .text.CORET_DeInit: + +00002b84 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2b84: 1065 lrw r3, 0x20000064 // 2b98 + 2b86: 3204 movi r2, 4 + 2b88: 9360 ld.w r3, (r3, 0x0) + 2b8a: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2b8c: 3200 movi r2, 0 + 2b8e: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2b90: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2b92: b347 st.w r2, (r3, 0x1c) +} + 2b94: 783c jmp r15 + 2b96: 0000 bkpt + 2b98: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002b9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2b9c: 1064 lrw r3, 0x20000064 // 2bac + 2b9e: 3200 movi r2, 0 + 2ba0: 9360 ld.w r3, (r3, 0x0) + 2ba2: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2ba4: 3201 movi r2, 1 + 2ba6: 1063 lrw r3, 0xe000e100 // 2bb0 + 2ba8: b340 st.w r2, (r3, 0x0) +} + 2baa: 783c jmp r15 + 2bac: 20000064 .long 0x20000064 + 2bb0: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002bb4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2bb4: 1063 lrw r3, 0x20000064 // 2bc0 + 2bb6: 9340 ld.w r2, (r3, 0x0) + 2bb8: 9264 ld.w r3, (r2, 0x10) + 2bba: 3ba0 bseti r3, 0 + 2bbc: b264 st.w r3, (r2, 0x10) +} + 2bbe: 783c jmp r15 + 2bc0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002bc4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2bc4: 1063 lrw r3, 0x20000064 // 2bd0 + 2bc6: 9340 ld.w r2, (r3, 0x0) + 2bc8: 9264 ld.w r3, (r2, 0x10) + 2bca: 3b82 bclri r3, 2 + 2bcc: b264 st.w r3, (r2, 0x10) +} + 2bce: 783c jmp r15 + 2bd0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002bd4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2bd4: 1063 lrw r3, 0x20000064 // 2be0 + 2bd6: 9340 ld.w r2, (r3, 0x0) + 2bd8: 9264 ld.w r3, (r2, 0x10) + 2bda: 3ba1 bseti r3, 1 + 2bdc: b264 st.w r3, (r2, 0x10) +} + 2bde: 783c jmp r15 + 2be0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002be4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2be4: 1063 lrw r3, 0x20000064 // 2bf0 + 2be6: 3200 movi r2, 0 + 2be8: 9360 ld.w r3, (r3, 0x0) + 2bea: b346 st.w r2, (r3, 0x18) +} + 2bec: 783c jmp r15 + 2bee: 0000 bkpt + 2bf0: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002bf4
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2bf4: 14d0 push r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2bf6: e00000d1 bsr 0x2d98 // 2d98 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2bfa: 1072 lrw r3, 0x20000264 // 2c40 + 2bfc: 8340 ld.b r2, (r3, 0x0) + 2bfe: 1032 lrw r1, 0x7248 // 2c44 + 2c00: 3000 movi r0, 0 + 2c02: e00006e1 bsr 0x39c4 // 39c4 + + TemCtrl_Init(); + 2c06: e00010b1 bsr 0x4d68 // 4d68 + DisPlay_Init(); + 2c0a: e000154b bsr 0x56a0 // 56a0 + Debug_Init(); + 2c0e: e0001637 bsr 0x587c // 587c + RF_Info_Init(); + 2c12: e0001709 bsr 0x5a24 // 5a24 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c16: e3fff827 bsr 0x1c64 // 1c64 + + UART2_TASK(); + 2c1a: e0000683 bsr 0x3920 // 3920 + + Touch_Key_Task(); + 2c1e: e0000829 bsr 0x3c70 // 3c70 + + TemCtrl_Pro(); + 2c22: e0001245 bsr 0x50ac // 50ac + + DisPlay_Task(); + 2c26: e000154d bsr 0x56c0 // 56c0 + + HT1621_Refresh_Task(); + 2c2a: e000106f bsr 0x4d08 // 4d08 + + ADC_Sample_Task(); + 2c2e: e0000d5b bsr 0x46e4 // 46e4 + + Debug_Task(); + 2c32: e000166d bsr 0x590c // 590c + + TemFun_Report_Task(); + 2c36: e00018e7 bsr 0x5e04 // 5e04 + + zigbee_uart_service(); + 2c3a: e0001881 bsr 0x5d3c // 5d3c + 2c3e: 07ec br 0x2c16 // 2c16 + 2c40: 20000264 .long 0x20000264 + 2c44: 00007248 .long 0x00007248 + +Disassembly of section .text.delay_nms: + +00002c48 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2c48: 14d0 push r15 + 2c4a: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2c4c: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2c4e: 3300 movi r3, 0 + j = 50* t; + 2c50: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2c52: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2c54: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2c56: b860 st.w r3, (r14, 0x0) + 2c58: 9840 ld.w r2, (r14, 0x0) + 2c5a: 9861 ld.w r3, (r14, 0x4) + 2c5c: 64c8 cmphs r2, r3 + 2c5e: 0c03 bf 0x2c64 // 2c64 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2c60: 1403 addi r14, r14, 12 + 2c62: 1490 pop r15 + k++; + 2c64: 9862 ld.w r3, (r14, 0x8) + 2c66: 2300 addi r3, 1 + 2c68: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2c6a: e3fff7fd bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2c6e: 9860 ld.w r3, (r14, 0x0) + 2c70: 2300 addi r3, 1 + 2c72: 07f2 br 0x2c56 // 2c56 + +Disassembly of section .text.EPT0_CONFIG: + +00002c74 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2c74: 14d1 push r4, r15 + 2c76: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2c78: e3fffa36 bsr 0x20e4 // 20e4 +//------------ 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_PB00); //CX channel selection + 2c7c: 311d movi r1, 29 + 2c7e: 3004 movi r0, 4 + 2c80: e3fffa6a bsr 0x2154 // 2154 + //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) + 2c84: 3300 movi r3, 0 + 2c86: 3200 movi r2, 0 + 2c88: 3100 movi r1, 0 + 2c8a: 3000 movi r0, 0 + 2c8c: e3fffb80 bsr 0x238c // 238c +// 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, + 2c90: 3380 movi r3, 128 + 2c92: 3400 movi r4, 0 + 2c94: b862 st.w r3, (r14, 0x8) + 2c96: 3280 movi r2, 128 + 2c98: 3320 movi r3, 32 + 2c9a: 3180 movi r1, 128 + 2c9c: b861 st.w r3, (r14, 0x4) + 2c9e: 4250 lsli r2, r2, 16 + 2ca0: 412e lsli r1, r1, 14 + 2ca2: b888 st.w r4, (r14, 0x20) + 2ca4: b887 st.w r4, (r14, 0x1c) + 2ca6: b886 st.w r4, (r14, 0x18) + 2ca8: b885 st.w r4, (r14, 0x14) + 2caa: b884 st.w r4, (r14, 0x10) + 2cac: b883 st.w r4, (r14, 0xc) + 2cae: b880 st.w r4, (r14, 0x0) + 2cb0: 3301 movi r3, 1 + 2cb2: 3002 movi r0, 2 + 2cb4: e3fffb88 bsr 0x23c4 // 23c4 +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2cb8: 1066 lrw r3, 0xbb8 // 2cd0 + 2cba: 3200 movi r2, 0 + 2cbc: 3100 movi r1, 0 + 2cbe: 6c0f mov r0, r3 + 2cc0: b880 st.w r4, (r14, 0x0) + 2cc2: e3fffbed bsr 0x249c // 249c + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2cc6: e3fffa1f bsr 0x2104 // 2104 + +} + 2cca: 1409 addi r14, r14, 36 + 2ccc: 1491 pop r4, r15 + 2cce: 0000 bkpt + 2cd0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002cd4 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2cd4: 14d2 push r4-r5, r15 + 2cd6: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2cd8: 1095 lrw r4, 0x20000008 // 2d2c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2cda: 3500 movi r5, 0 + BT_DeInit(BT1); + 2cdc: 9400 ld.w r0, (r4, 0x0) + 2cde: e3fff8e7 bsr 0x1eac // 1eac + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2ce2: 9400 ld.w r0, (r4, 0x0) + 2ce4: b8a1 st.w r5, (r14, 0x4) + 2ce6: b8a0 st.w r5, (r14, 0x0) + 2ce8: 3308 movi r3, 8 + 2cea: 3200 movi r2, 0 + 2cec: 3101 movi r1, 1 + 2cee: e3fff8f6 bsr 0x1eda // 1eda + 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); + 2cf2: 3380 movi r3, 128 + 2cf4: 4363 lsli r3, r3, 3 + 2cf6: b861 st.w r3, (r14, 0x4) + 2cf8: 9400 ld.w r0, (r4, 0x0) + 2cfa: 3300 movi r3, 0 + 2cfc: b8a3 st.w r5, (r14, 0xc) + 2cfe: b8a2 st.w r5, (r14, 0x8) + 2d00: b8a0 st.w r5, (r14, 0x0) + 2d02: 3200 movi r2, 0 + 2d04: 3180 movi r1, 128 + 2d06: e3fff8f6 bsr 0x1ef2 // 1ef2 + BT_Period_CMP_Write(BT1,4780,1); + 2d0a: 3201 movi r2, 1 + 2d0c: 1029 lrw r1, 0x12ac // 2d30 + 2d0e: 9400 ld.w r0, (r4, 0x0) + 2d10: e3fff907 bsr 0x1f1e // 1f1e + BT_Start(BT1); + 2d14: 9400 ld.w r0, (r4, 0x0) + 2d16: e3fff8d9 bsr 0x1ec8 // 1ec8 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2d1a: 9400 ld.w r0, (r4, 0x0) + 2d1c: 3202 movi r2, 2 + 2d1e: 3101 movi r1, 1 + 2d20: e3fff902 bsr 0x1f24 // 1f24 + BT1_INT_ENABLE(); + 2d24: e3fff90a bsr 0x1f38 // 1f38 + +} + 2d28: 1404 addi r14, r14, 16 + 2d2a: 1492 pop r4-r5, r15 + 2d2c: 20000008 .long 0x20000008 + 2d30: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002d34 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2d34: 14d0 push r15 + 2d36: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2d38: e3fff6e2 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2d3c: 3101 movi r1, 1 + 2d3e: 3001 movi r0, 1 + 2d40: e3fff704 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 + 2d44: 3000 movi r0, 0 + 2d46: e3fff75d 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 + 2d4a: 3180 movi r1, 128 + 2d4c: 3308 movi r3, 8 + 2d4e: 3200 movi r2, 0 + 2d50: 4121 lsli r1, r1, 1 + 2d52: 3002 movi r0, 2 + 2d54: e3fff712 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2d58: 30c0 movi r0, 192 + 2d5a: 3118 movi r1, 24 + 2d5c: 4002 lsli r0, r0, 2 + 2d5e: e3fff78d bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2d62: 3001 movi r0, 1 + 2d64: e3fff762 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2d68: e3fff77e bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2d6c: e3fff7b0 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 + 2d70: 3340 movi r3, 64 + 2d72: b860 st.w r3, (r14, 0x0) + 2d74: 31c0 movi r1, 192 + 2d76: 3380 movi r3, 128 + 2d78: 4364 lsli r3, r3, 4 + 2d7a: 3200 movi r2, 0 + 2d7c: 4123 lsli r1, r1, 3 + 2d7e: 3000 movi r0, 0 + 2d80: e3fff788 bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2d84: e3fff796 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2d88: e3fff7d0 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 + 2d8c: 3000 movi r0, 0 + 2d8e: e0001ebf bsr 0x6b0c // 6b0c + +} + 2d92: 1401 addi r14, r14, 4 + 2d94: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002d98 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2d98: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2d9a: 107c lrw r3, 0x2000005c // 2e08 + Sys_RSR = 0x00000000; + 2d9c: 105c lrw r2, 0x200000a8 // 2e0c + 2d9e: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2da0: 9360 ld.w r3, (r3, 0x0) + 2da2: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2da4: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2da6: 600c addu r0, r3 + 2da8: 9004 ld.w r0, (r0, 0x10) + 2daa: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2dac: 1059 lrw r2, 0x200000a4 // 2e10 + 2dae: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2db0: 3180 movi r1, 128 + 2db2: 4121 lsli r1, r1, 1 + 2db4: 604c addu r1, r3 + 2db6: 9120 ld.w r1, (r1, 0x0) + 2db8: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2dba: 1057 lrw r2, 0xfffffff // 2e14 + 2dbc: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2dbe: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2dc0: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2dc2: 934c ld.w r2, (r3, 0x30) + 2dc4: 6884 and r2, r1 + 2dc6: 3a40 cmpnei r2, 0 + 2dc8: 0ffd bf 0x2dc2 // 2dc2 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2dca: e3ffffb5 bsr 0x2d34 // 2d34 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2dce: e000051f bsr 0x380c // 380c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2dd2: e3fff7b1 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2dd6: 3101 movi r1, 1 + 2dd8: 300f movi r0, 15 + 2dda: e3fff7bf bsr 0x1d58 // 1d58 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2dde: 3102 movi r1, 2 + 2de0: 3019 movi r0, 25 + 2de2: e3fff7bb bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2de6: e0001877 bsr 0x5ed4 // 5ed4 + + EPT0_CONFIG(); + 2dea: e3ffff45 bsr 0x2c74 // 2c74 + + BT_CONFIG(); //BT initial + 2dee: e3ffff73 bsr 0x2cd4 // 2cd4 + + +// UARTx_Init(UART_1,NULL); + UARTx_Init(UART_2,TouchKey_Comm_Processing); //通讯串口 + 2df2: 102a lrw r1, 0x4090 // 2e18 + 2df4: 3002 movi r0, 2 + 2df6: e000050f bsr 0x3814 // 3814 + + HT1621_Init(); //显示驱动初始化 + 2dfa: e0000d11 bsr 0x481c // 481c + + Touch_Key_Init(); + 2dfe: e00005eb bsr 0x39d4 // 39d4 + + ADC_Init(); + 2e02: e0000bbf bsr 0x4580 // 4580 + +} + 2e06: 1490 pop r15 + 2e08: 2000005c .long 0x2000005c + 2e0c: 200000a8 .long 0x200000a8 + 2e10: 200000a4 .long 0x200000a4 + 2e14: 0fffffff .long 0x0fffffff + 2e18: 00004090 .long 0x00004090 + +Disassembly of section .text.SYSCONIntHandler: + +00002e1c : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2e1c: 1460 nie + 2e1e: 1462 ipush + // ISR content ... + nop; + 2e20: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2e22: 117a lrw r3, 0x2000005c // 2f08 + 2e24: 3280 movi r2, 128 + 2e26: 9360 ld.w r3, (r3, 0x0) + 2e28: 60c8 addu r3, r2 + 2e2a: 9323 ld.w r1, (r3, 0xc) + 2e2c: 3001 movi r0, 1 + 2e2e: 6840 and r1, r0 + 2e30: 3940 cmpnei r1, 0 + 2e32: 0c04 bf 0x2e3a // 2e3a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2e34: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2e36: 1463 ipop + 2e38: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2e3a: 9323 ld.w r1, (r3, 0xc) + 2e3c: 3002 movi r0, 2 + 2e3e: 6840 and r1, r0 + 2e40: 3940 cmpnei r1, 0 + 2e42: 0bf9 bt 0x2e34 // 2e34 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2e44: 9323 ld.w r1, (r3, 0xc) + 2e46: 3008 movi r0, 8 + 2e48: 6840 and r1, r0 + 2e4a: 3940 cmpnei r1, 0 + 2e4c: 0bf4 bt 0x2e34 // 2e34 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2e4e: 9323 ld.w r1, (r3, 0xc) + 2e50: 3010 movi r0, 16 + 2e52: 6840 and r1, r0 + 2e54: 3940 cmpnei r1, 0 + 2e56: 0bef bt 0x2e34 // 2e34 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2e58: 9323 ld.w r1, (r3, 0xc) + 2e5a: 6848 and r1, r2 + 2e5c: 3940 cmpnei r1, 0 + 2e5e: 0c03 bf 0x2e64 // 2e64 + SYSCON->ICR = CMD_ERR_ST; + 2e60: b341 st.w r2, (r3, 0x4) +} + 2e62: 07ea br 0x2e36 // 2e36 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2e64: 3280 movi r2, 128 + 2e66: 9323 ld.w r1, (r3, 0xc) + 2e68: 4241 lsli r2, r2, 1 + 2e6a: 6848 and r1, r2 + 2e6c: 3940 cmpnei r1, 0 + 2e6e: 0bf9 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2e70: 3280 movi r2, 128 + 2e72: 9323 ld.w r1, (r3, 0xc) + 2e74: 4242 lsli r2, r2, 2 + 2e76: 6848 and r1, r2 + 2e78: 3940 cmpnei r1, 0 + 2e7a: 0bf3 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2e7c: 3280 movi r2, 128 + 2e7e: 9323 ld.w r1, (r3, 0xc) + 2e80: 4243 lsli r2, r2, 3 + 2e82: 6848 and r1, r2 + 2e84: 3940 cmpnei r1, 0 + 2e86: 0bed bt 0x2e60 // 2e60 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2e88: 3280 movi r2, 128 + 2e8a: 9323 ld.w r1, (r3, 0xc) + 2e8c: 4244 lsli r2, r2, 4 + 2e8e: 6848 and r1, r2 + 2e90: 3940 cmpnei r1, 0 + 2e92: 0c03 bf 0x2e98 // 2e98 + nop; + 2e94: 6c03 mov r0, r0 + 2e96: 07e5 br 0x2e60 // 2e60 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2e98: 3280 movi r2, 128 + 2e9a: 9323 ld.w r1, (r3, 0xc) + 2e9c: 4245 lsli r2, r2, 5 + 2e9e: 6848 and r1, r2 + 2ea0: 3940 cmpnei r1, 0 + 2ea2: 0bdf bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2ea4: 3280 movi r2, 128 + 2ea6: 9323 ld.w r1, (r3, 0xc) + 2ea8: 4246 lsli r2, r2, 6 + 2eaa: 6848 and r1, r2 + 2eac: 3940 cmpnei r1, 0 + 2eae: 0bd9 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2eb0: 3280 movi r2, 128 + 2eb2: 9323 ld.w r1, (r3, 0xc) + 2eb4: 4247 lsli r2, r2, 7 + 2eb6: 6848 and r1, r2 + 2eb8: 3940 cmpnei r1, 0 + 2eba: 0bd3 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2ebc: 3280 movi r2, 128 + 2ebe: 9323 ld.w r1, (r3, 0xc) + 2ec0: 424b lsli r2, r2, 11 + 2ec2: 6848 and r1, r2 + 2ec4: 3940 cmpnei r1, 0 + 2ec6: 0bcd bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2ec8: 3280 movi r2, 128 + 2eca: 9323 ld.w r1, (r3, 0xc) + 2ecc: 424c lsli r2, r2, 12 + 2ece: 6848 and r1, r2 + 2ed0: 3940 cmpnei r1, 0 + 2ed2: 0bc7 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2ed4: 3280 movi r2, 128 + 2ed6: 9323 ld.w r1, (r3, 0xc) + 2ed8: 424d lsli r2, r2, 13 + 2eda: 6848 and r1, r2 + 2edc: 3940 cmpnei r1, 0 + 2ede: 0bc1 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2ee0: 3280 movi r2, 128 + 2ee2: 9323 ld.w r1, (r3, 0xc) + 2ee4: 424e lsli r2, r2, 14 + 2ee6: 6848 and r1, r2 + 2ee8: 3940 cmpnei r1, 0 + 2eea: 0bbb bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2eec: 3280 movi r2, 128 + 2eee: 9323 ld.w r1, (r3, 0xc) + 2ef0: 424f lsli r2, r2, 15 + 2ef2: 6848 and r1, r2 + 2ef4: 3940 cmpnei r1, 0 + 2ef6: 0bb5 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2ef8: 3280 movi r2, 128 + 2efa: 9323 ld.w r1, (r3, 0xc) + 2efc: 4256 lsli r2, r2, 22 + 2efe: 6848 and r1, r2 + 2f00: 3940 cmpnei r1, 0 + 2f02: 0baf bt 0x2e60 // 2e60 + 2f04: 0799 br 0x2e36 // 2e36 + 2f06: 0000 bkpt + 2f08: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002f0c : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2f0c: 1460 nie + 2f0e: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2f10: 1078 lrw r3, 0x20000060 // 2f70 + 2f12: 3101 movi r1, 1 + 2f14: 9360 ld.w r3, (r3, 0x0) + 2f16: 934b ld.w r2, (r3, 0x2c) + 2f18: 6884 and r2, r1 + 2f1a: 3a40 cmpnei r2, 0 + 2f1c: 0c04 bf 0x2f24 // 2f24 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2f1e: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2f20: 1463 ipop + 2f22: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2f24: 934b ld.w r2, (r3, 0x2c) + 2f26: 3102 movi r1, 2 + 2f28: 6884 and r2, r1 + 2f2a: 3a40 cmpnei r2, 0 + 2f2c: 0bf9 bt 0x2f1e // 2f1e + else if(IFC->MISR&PEP_END_INT) + 2f2e: 934b ld.w r2, (r3, 0x2c) + 2f30: 3104 movi r1, 4 + 2f32: 6884 and r2, r1 + 2f34: 3a40 cmpnei r2, 0 + 2f36: 0bf4 bt 0x2f1e // 2f1e + else if(IFC->MISR&PROT_ERR_INT) + 2f38: 3280 movi r2, 128 + 2f3a: 932b ld.w r1, (r3, 0x2c) + 2f3c: 4245 lsli r2, r2, 5 + 2f3e: 6848 and r1, r2 + 2f40: 3940 cmpnei r1, 0 + 2f42: 0c03 bf 0x2f48 // 2f48 + IFC->ICR=OVW_ERR_INT; + 2f44: b34c st.w r2, (r3, 0x30) +} + 2f46: 07ed br 0x2f20 // 2f20 + else if(IFC->MISR&UDEF_ERR_INT) + 2f48: 3280 movi r2, 128 + 2f4a: 932b ld.w r1, (r3, 0x2c) + 2f4c: 4246 lsli r2, r2, 6 + 2f4e: 6848 and r1, r2 + 2f50: 3940 cmpnei r1, 0 + 2f52: 0bf9 bt 0x2f44 // 2f44 + else if(IFC->MISR&ADDR_ERR_INT) + 2f54: 3280 movi r2, 128 + 2f56: 932b ld.w r1, (r3, 0x2c) + 2f58: 4247 lsli r2, r2, 7 + 2f5a: 6848 and r1, r2 + 2f5c: 3940 cmpnei r1, 0 + 2f5e: 0bf3 bt 0x2f44 // 2f44 + else if(IFC->MISR&OVW_ERR_INT) + 2f60: 3280 movi r2, 128 + 2f62: 932b ld.w r1, (r3, 0x2c) + 2f64: 4248 lsli r2, r2, 8 + 2f66: 6848 and r1, r2 + 2f68: 3940 cmpnei r1, 0 + 2f6a: 0bed bt 0x2f44 // 2f44 + 2f6c: 07da br 0x2f20 // 2f20 + 2f6e: 0000 bkpt + 2f70: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00002f74 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 2f74: 1460 nie + 2f76: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2f78: 1078 lrw r3, 0x20000050 // 2fd8 + 2f7a: 3101 movi r1, 1 + 2f7c: 9360 ld.w r3, (r3, 0x0) + 2f7e: 9348 ld.w r2, (r3, 0x20) + 2f80: 6884 and r2, r1 + 2f82: 3a40 cmpnei r2, 0 + 2f84: 0c04 bf 0x2f8c // 2f8c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 2f86: 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; + } +} + 2f88: 1463 ipop + 2f8a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2f8c: 9348 ld.w r2, (r3, 0x20) + 2f8e: 3102 movi r1, 2 + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0bf9 bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 2f96: 9348 ld.w r2, (r3, 0x20) + 2f98: 3104 movi r1, 4 + 2f9a: 6884 and r2, r1 + 2f9c: 3a40 cmpnei r2, 0 + 2f9e: 0bf4 bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2fa0: 9348 ld.w r2, (r3, 0x20) + 2fa2: 3110 movi r1, 16 + 2fa4: 6884 and r2, r1 + 2fa6: 3a40 cmpnei r2, 0 + 2fa8: 0bef bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2faa: 9348 ld.w r2, (r3, 0x20) + 2fac: 3120 movi r1, 32 + 2fae: 6884 and r2, r1 + 2fb0: 3a40 cmpnei r2, 0 + 2fb2: 0bea bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 2fb4: 9348 ld.w r2, (r3, 0x20) + 2fb6: 3140 movi r1, 64 + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0be5 bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 2fbe: 9348 ld.w r2, (r3, 0x20) + 2fc0: 3180 movi r1, 128 + 2fc2: 6884 and r2, r1 + 2fc4: 3a40 cmpnei r2, 0 + 2fc6: 0be0 bt 0x2f86 // 2f86 + 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 + 2fc8: 3280 movi r2, 128 + 2fca: 9328 ld.w r1, (r3, 0x20) + 2fcc: 4249 lsli r2, r2, 9 + 2fce: 6848 and r1, r2 + 2fd0: 3940 cmpnei r1, 0 + 2fd2: 0fdb bf 0x2f88 // 2f88 + ADC0->CSR = ADC12_SEQ_END0; + 2fd4: b347 st.w r2, (r3, 0x1c) +} + 2fd6: 07d9 br 0x2f88 // 2f88 + 2fd8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00002fdc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 2fdc: 1460 nie + 2fde: 1462 ipush + 2fe0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 2fe2: 1387 lrw r4, 0x20000020 // 317c + 2fe4: 3280 movi r2, 128 + 2fe6: 9460 ld.w r3, (r4, 0x0) + 2fe8: 60c8 addu r3, r2 + 2fea: 9335 ld.w r1, (r3, 0x54) + 2fec: 3001 movi r0, 1 + 2fee: 6840 and r1, r0 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0c03 bf 0x2ff8 // 2ff8 + 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; + 2ff4: b317 st.w r0, (r3, 0x5c) + 2ff6: 0424 br 0x303e // 303e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2ff8: 9335 ld.w r1, (r3, 0x54) + 2ffa: 3002 movi r0, 2 + 2ffc: 6840 and r1, r0 + 2ffe: 3940 cmpnei r1, 0 + 3000: 0bfa bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3002: 9335 ld.w r1, (r3, 0x54) + 3004: 3004 movi r0, 4 + 3006: 6840 and r1, r0 + 3008: 3940 cmpnei r1, 0 + 300a: 0bf5 bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 300c: 9335 ld.w r1, (r3, 0x54) + 300e: 3008 movi r0, 8 + 3010: 6840 and r1, r0 + 3012: 3940 cmpnei r1, 0 + 3014: 0bf0 bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3016: 9335 ld.w r1, (r3, 0x54) + 3018: 3010 movi r0, 16 + 301a: 6840 and r1, r0 + 301c: 3940 cmpnei r1, 0 + 301e: 0c1f bf 0x305c // 305c + EPT0->ICR=EPT_CAP_LD0; + 3020: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3022: 3200 movi r2, 0 + 3024: 3101 movi r1, 1 + 3026: 3000 movi r0, 0 + 3028: e3fff660 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 302c: 3201 movi r2, 1 + 302e: 3101 movi r1, 1 + 3030: 3001 movi r0, 1 + 3032: e3fff65b bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3036: 9460 ld.w r3, (r4, 0x0) + 3038: 934b ld.w r2, (r3, 0x2c) + 303a: 1272 lrw r3, 0x20000164 // 3180 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 303c: 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 + 303e: 9460 ld.w r3, (r4, 0x0) + 3040: 3280 movi r2, 128 + 3042: 60c8 addu r3, r2 + 3044: 932b ld.w r1, (r3, 0x2c) + 3046: 3001 movi r0, 1 + 3048: 6840 and r1, r0 + 304a: 3940 cmpnei r1, 0 + 304c: 0c61 bf 0x310e // 310e + { + 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; + 304e: 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; + } +} + 3050: d9ee2001 ld.w r15, (r14, 0x4) + 3054: 9880 ld.w r4, (r14, 0x0) + 3056: 1402 addi r14, r14, 8 + 3058: 1463 ipop + 305a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 305c: 9335 ld.w r1, (r3, 0x54) + 305e: 3020 movi r0, 32 + 3060: 6840 and r1, r0 + 3062: 3940 cmpnei r1, 0 + 3064: 0c10 bf 0x3084 // 3084 + EPT0->ICR=EPT_CAP_LD1; + 3066: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3068: 3200 movi r2, 0 + 306a: 3101 movi r1, 1 + 306c: 3001 movi r0, 1 + 306e: e3fff63d bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3072: 3201 movi r2, 1 + 3074: 3101 movi r1, 1 + 3076: 3000 movi r0, 0 + 3078: e3fff638 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 307c: 9460 ld.w r3, (r4, 0x0) + 307e: 934c ld.w r2, (r3, 0x30) + 3080: 1261 lrw r3, 0x20000160 // 3184 + 3082: 07dd br 0x303c // 303c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3084: 9335 ld.w r1, (r3, 0x54) + 3086: 3040 movi r0, 64 + 3088: 6840 and r1, r0 + 308a: 3940 cmpnei r1, 0 + 308c: 0bb4 bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 308e: 9335 ld.w r1, (r3, 0x54) + 3090: 6848 and r1, r2 + 3092: 3940 cmpnei r1, 0 + 3094: 0c03 bf 0x309a // 309a + EPT0->ICR=EPT_CDD; + 3096: b357 st.w r2, (r3, 0x5c) + 3098: 07d3 br 0x303e // 303e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 309a: 3280 movi r2, 128 + 309c: 9335 ld.w r1, (r3, 0x54) + 309e: 4241 lsli r2, r2, 1 + 30a0: 6848 and r1, r2 + 30a2: 3940 cmpnei r1, 0 + 30a4: 0bf9 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 30a6: 3280 movi r2, 128 + 30a8: 9335 ld.w r1, (r3, 0x54) + 30aa: 4242 lsli r2, r2, 2 + 30ac: 6848 and r1, r2 + 30ae: 3940 cmpnei r1, 0 + 30b0: 0bf3 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 30b2: 3280 movi r2, 128 + 30b4: 9335 ld.w r1, (r3, 0x54) + 30b6: 4243 lsli r2, r2, 3 + 30b8: 6848 and r1, r2 + 30ba: 3940 cmpnei r1, 0 + 30bc: 0bed bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 30be: 3280 movi r2, 128 + 30c0: 9335 ld.w r1, (r3, 0x54) + 30c2: 4244 lsli r2, r2, 4 + 30c4: 6848 and r1, r2 + 30c6: 3940 cmpnei r1, 0 + 30c8: 0be7 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 30ca: 3280 movi r2, 128 + 30cc: 9335 ld.w r1, (r3, 0x54) + 30ce: 4245 lsli r2, r2, 5 + 30d0: 6848 and r1, r2 + 30d2: 3940 cmpnei r1, 0 + 30d4: 0be1 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 30d6: 3280 movi r2, 128 + 30d8: 9335 ld.w r1, (r3, 0x54) + 30da: 4246 lsli r2, r2, 6 + 30dc: 6848 and r1, r2 + 30de: 3940 cmpnei r1, 0 + 30e0: 0bdb bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 30e2: 3280 movi r2, 128 + 30e4: 9335 ld.w r1, (r3, 0x54) + 30e6: 4247 lsli r2, r2, 7 + 30e8: 6848 and r1, r2 + 30ea: 3940 cmpnei r1, 0 + 30ec: 0bd5 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 30ee: 3280 movi r2, 128 + 30f0: 9335 ld.w r1, (r3, 0x54) + 30f2: 4248 lsli r2, r2, 8 + 30f4: 6848 and r1, r2 + 30f6: 3940 cmpnei r1, 0 + 30f8: 0bcf bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 30fa: 3280 movi r2, 128 + 30fc: 9335 ld.w r1, (r3, 0x54) + 30fe: 4249 lsli r2, r2, 9 + 3100: 6848 and r1, r2 + 3102: 3940 cmpnei r1, 0 + 3104: 0f9d bf 0x303e // 303e + EPT0->ICR=EPT_PEND; + 3106: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3108: e3fff812 bsr 0x212c // 212c + 310c: 0799 br 0x303e // 303e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 310e: 932b ld.w r1, (r3, 0x2c) + 3110: 3002 movi r0, 2 + 3112: 6840 and r1, r0 + 3114: 3940 cmpnei r1, 0 + 3116: 0b9c bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3118: 932b ld.w r1, (r3, 0x2c) + 311a: 3004 movi r0, 4 + 311c: 6840 and r1, r0 + 311e: 3940 cmpnei r1, 0 + 3120: 0b97 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3122: 932b ld.w r1, (r3, 0x2c) + 3124: 3008 movi r0, 8 + 3126: 6840 and r1, r0 + 3128: 3940 cmpnei r1, 0 + 312a: 0b92 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 312c: 932b ld.w r1, (r3, 0x2c) + 312e: 3010 movi r0, 16 + 3130: 6840 and r1, r0 + 3132: 3940 cmpnei r1, 0 + 3134: 0b8d bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3136: 932b ld.w r1, (r3, 0x2c) + 3138: 3020 movi r0, 32 + 313a: 6840 and r1, r0 + 313c: 3940 cmpnei r1, 0 + 313e: 0b88 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3140: 932b ld.w r1, (r3, 0x2c) + 3142: 3040 movi r0, 64 + 3144: 6840 and r1, r0 + 3146: 3940 cmpnei r1, 0 + 3148: 0b83 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 314a: 932b ld.w r1, (r3, 0x2c) + 314c: 6848 and r1, r2 + 314e: 3940 cmpnei r1, 0 + 3150: 0c03 bf 0x3156 // 3156 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3152: b34d st.w r2, (r3, 0x34) +} + 3154: 077e br 0x3050 // 3050 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3156: 3280 movi r2, 128 + 3158: 932b ld.w r1, (r3, 0x2c) + 315a: 4241 lsli r2, r2, 1 + 315c: 6848 and r1, r2 + 315e: 3940 cmpnei r1, 0 + 3160: 0bf9 bt 0x3152 // 3152 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3162: 3280 movi r2, 128 + 3164: 932b ld.w r1, (r3, 0x2c) + 3166: 4242 lsli r2, r2, 2 + 3168: 6848 and r1, r2 + 316a: 3940 cmpnei r1, 0 + 316c: 0bf3 bt 0x3152 // 3152 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 316e: 3280 movi r2, 128 + 3170: 932b ld.w r1, (r3, 0x2c) + 3172: 4243 lsli r2, r2, 3 + 3174: 6848 and r1, r2 + 3176: 3940 cmpnei r1, 0 + 3178: 0bed bt 0x3152 // 3152 + 317a: 076b br 0x3050 // 3050 + 317c: 20000020 .long 0x20000020 + 3180: 20000164 .long 0x20000164 + 3184: 20000160 .long 0x20000160 + +Disassembly of section .text.WWDTHandler: + +00003188 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3188: 1460 nie + 318a: 1462 ipush + 318c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 318e: 10ab lrw r5, 0x20000010 // 31b8 + 3190: 3401 movi r4, 1 + 3192: 9560 ld.w r3, (r5, 0x0) + 3194: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3196: 30ff movi r0, 255 + 3198: e3fff682 bsr 0x1e9c // 1e9c + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 319c: 9540 ld.w r2, (r5, 0x0) + 319e: 9263 ld.w r3, (r2, 0xc) + 31a0: 68d0 and r3, r4 + 31a2: 3b40 cmpnei r3, 0 + 31a4: 0c02 bf 0x31a8 // 31a8 + { + WWDT->ICR = WWDT_EVI; + 31a6: b285 st.w r4, (r2, 0x14) + } +} + 31a8: d9ee2002 ld.w r15, (r14, 0x8) + 31ac: 98a1 ld.w r5, (r14, 0x4) + 31ae: 9880 ld.w r4, (r14, 0x0) + 31b0: 1403 addi r14, r14, 12 + 31b2: 1463 ipop + 31b4: 1461 nir + 31b6: 0000 bkpt + 31b8: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000031bc : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 31bc: 1460 nie + 31be: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 31c0: 107e lrw r3, 0x20000024 // 3238 + 31c2: 3101 movi r1, 1 + 31c4: 9360 ld.w r3, (r3, 0x0) + 31c6: 237f addi r3, 128 + 31c8: 9355 ld.w r2, (r3, 0x54) + 31ca: 6884 and r2, r1 + 31cc: 3a40 cmpnei r2, 0 + 31ce: 0c04 bf 0x31d6 // 31d6 + { + 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; + 31d0: 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; + } +} + 31d2: 1463 ipop + 31d4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 31d6: 9355 ld.w r2, (r3, 0x54) + 31d8: 3102 movi r1, 2 + 31da: 6884 and r2, r1 + 31dc: 3a40 cmpnei r2, 0 + 31de: 0bf9 bt 0x31d0 // 31d0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 31e0: 9355 ld.w r2, (r3, 0x54) + 31e2: 3110 movi r1, 16 + 31e4: 6884 and r2, r1 + 31e6: 3a40 cmpnei r2, 0 + 31e8: 0bf4 bt 0x31d0 // 31d0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 31ea: 9355 ld.w r2, (r3, 0x54) + 31ec: 3120 movi r1, 32 + 31ee: 6884 and r2, r1 + 31f0: 3a40 cmpnei r2, 0 + 31f2: 0bef bt 0x31d0 // 31d0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 31f4: 3280 movi r2, 128 + 31f6: 9335 ld.w r1, (r3, 0x54) + 31f8: 4241 lsli r2, r2, 1 + 31fa: 6848 and r1, r2 + 31fc: 3940 cmpnei r1, 0 + 31fe: 0c03 bf 0x3204 // 3204 + GPT0->ICR = GPT_INT_PEND; + 3200: b357 st.w r2, (r3, 0x5c) +} + 3202: 07e8 br 0x31d2 // 31d2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3204: 3280 movi r2, 128 + 3206: 9335 ld.w r1, (r3, 0x54) + 3208: 4242 lsli r2, r2, 2 + 320a: 6848 and r1, r2 + 320c: 3940 cmpnei r1, 0 + 320e: 0bf9 bt 0x3200 // 3200 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3210: 3280 movi r2, 128 + 3212: 9335 ld.w r1, (r3, 0x54) + 3214: 4243 lsli r2, r2, 3 + 3216: 6848 and r1, r2 + 3218: 3940 cmpnei r1, 0 + 321a: 0bf3 bt 0x3200 // 3200 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 321c: 3280 movi r2, 128 + 321e: 9335 ld.w r1, (r3, 0x54) + 3220: 4244 lsli r2, r2, 4 + 3222: 6848 and r1, r2 + 3224: 3940 cmpnei r1, 0 + 3226: 0bed bt 0x3200 // 3200 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3228: 3280 movi r2, 128 + 322a: 9335 ld.w r1, (r3, 0x54) + 322c: 4249 lsli r2, r2, 9 + 322e: 6848 and r1, r2 + 3230: 3940 cmpnei r1, 0 + 3232: 0be7 bt 0x3200 // 3200 + 3234: 07cf br 0x31d2 // 31d2 + 3236: 0000 bkpt + 3238: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +0000323c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 323c: 1460 nie + 323e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3240: 1079 lrw r3, 0x20000018 // 32a4 + 3242: 3101 movi r1, 1 + 3244: 9360 ld.w r3, (r3, 0x0) + 3246: 934a ld.w r2, (r3, 0x28) + 3248: 6884 and r2, r1 + 324a: 3a40 cmpnei r2, 0 + 324c: 0c14 bf 0x3274 // 3274 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 324e: 1057 lrw r2, 0xca53 // 32a8 + RTC->ICR=ALRA_INT; + 3250: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3252: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3254: 9342 ld.w r2, (r3, 0x8) + 3256: 6c84 or r2, r1 + 3258: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 325a: 3280 movi r2, 128 + 325c: 424d lsli r2, r2, 13 + 325e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3260: 3102 movi r1, 2 + 3262: 9342 ld.w r2, (r3, 0x8) + 3264: 6884 and r2, r1 + 3266: 3a40 cmpnei r2, 0 + 3268: 0bfd bt 0x3262 // 3262 + RTC->CR &= ~0x1; + 326a: 9342 ld.w r2, (r3, 0x8) + 326c: 3a80 bclri r2, 0 + 326e: 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; + } +} + 3270: 1463 ipop + 3272: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3274: 934a ld.w r2, (r3, 0x28) + 3276: 3102 movi r1, 2 + 3278: 6884 and r2, r1 + 327a: 3a40 cmpnei r2, 0 + 327c: 0c03 bf 0x3282 // 3282 + RTC->ICR=RTC_TRGEV1_INT; + 327e: b32b st.w r1, (r3, 0x2c) +} + 3280: 07f8 br 0x3270 // 3270 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3282: 934a ld.w r2, (r3, 0x28) + 3284: 3104 movi r1, 4 + 3286: 6884 and r2, r1 + 3288: 3a40 cmpnei r2, 0 + 328a: 0bfa bt 0x327e // 327e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 328c: 934a ld.w r2, (r3, 0x28) + 328e: 3108 movi r1, 8 + 3290: 6884 and r2, r1 + 3292: 3a40 cmpnei r2, 0 + 3294: 0bf5 bt 0x327e // 327e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3296: 934a ld.w r2, (r3, 0x28) + 3298: 3110 movi r1, 16 + 329a: 6884 and r2, r1 + 329c: 3a40 cmpnei r2, 0 + 329e: 0bf0 bt 0x327e // 327e + 32a0: 07e8 br 0x3270 // 3270 + 32a2: 0000 bkpt + 32a4: 20000018 .long 0x20000018 + 32a8: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000032ac : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 32ac: 1460 nie + 32ae: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 32b0: 106d lrw r3, 0x20000040 // 32e4 + 32b2: 3102 movi r1, 2 + 32b4: 9360 ld.w r3, (r3, 0x0) + 32b6: 9343 ld.w r2, (r3, 0xc) + 32b8: 6884 and r2, r1 + 32ba: 3a40 cmpnei r2, 0 + 32bc: 0c03 bf 0x32c2 // 32c2 + { + 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; + 32be: b323 st.w r1, (r3, 0xc) + } +} + 32c0: 0410 br 0x32e0 // 32e0 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 32c2: 9343 ld.w r2, (r3, 0xc) + 32c4: 3101 movi r1, 1 + 32c6: 6884 and r2, r1 + 32c8: 3a40 cmpnei r2, 0 + 32ca: 0bfa bt 0x32be // 32be + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 32cc: 9343 ld.w r2, (r3, 0xc) + 32ce: 3108 movi r1, 8 + 32d0: 6884 and r2, r1 + 32d2: 3a40 cmpnei r2, 0 + 32d4: 0bf5 bt 0x32be // 32be + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 32d6: 9343 ld.w r2, (r3, 0xc) + 32d8: 3104 movi r1, 4 + 32da: 6884 and r2, r1 + 32dc: 3a40 cmpnei r2, 0 + 32de: 0bf0 bt 0x32be // 32be +} + 32e0: 1463 ipop + 32e2: 1461 nir + 32e4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +000032e8 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 32e8: 1460 nie + 32ea: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 32ec: 106d lrw r3, 0x2000003c // 3320 + 32ee: 3102 movi r1, 2 + 32f0: 9360 ld.w r3, (r3, 0x0) + 32f2: 9343 ld.w r2, (r3, 0xc) + 32f4: 6884 and r2, r1 + 32f6: 3a40 cmpnei r2, 0 + 32f8: 0c03 bf 0x32fe // 32fe + { + 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; + 32fa: b323 st.w r1, (r3, 0xc) + } +} + 32fc: 0410 br 0x331c // 331c + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 32fe: 9343 ld.w r2, (r3, 0xc) + 3300: 3101 movi r1, 1 + 3302: 6884 and r2, r1 + 3304: 3a40 cmpnei r2, 0 + 3306: 0bfa bt 0x32fa // 32fa + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3308: 9343 ld.w r2, (r3, 0xc) + 330a: 3108 movi r1, 8 + 330c: 6884 and r2, r1 + 330e: 3a40 cmpnei r2, 0 + 3310: 0bf5 bt 0x32fa // 32fa + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3312: 9343 ld.w r2, (r3, 0xc) + 3314: 3104 movi r1, 4 + 3316: 6884 and r2, r1 + 3318: 3a40 cmpnei r2, 0 + 331a: 0bf0 bt 0x32fa // 32fa +} + 331c: 1463 ipop + 331e: 1461 nir + 3320: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003324 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3324: 1460 nie + 3326: 1462 ipush + 3328: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 332a: 107f lrw r3, 0x20000038 // 33a4 + 332c: 3102 movi r1, 2 + 332e: 9360 ld.w r3, (r3, 0x0) + 3330: 9343 ld.w r2, (r3, 0xc) + 3332: 6884 and r2, r1 + 3334: 3a40 cmpnei r2, 0 + 3336: 0c0b bf 0x334c // 334c + { + UART2->ISR=UART_RX_INT_S; + 3338: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 333a: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 333c: 7400 zextb r0, r0 + 333e: e00002bd bsr 0x38b8 // 38b8 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3342: d9ee2000 ld.w r15, (r14, 0x0) + 3346: 1401 addi r14, r14, 4 + 3348: 1463 ipop + 334a: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 334c: 9323 ld.w r1, (r3, 0xc) + 334e: 3201 movi r2, 1 + 3350: 6848 and r1, r2 + 3352: 3940 cmpnei r1, 0 + 3354: 0c0d bf 0x336e // 336e + UART2->ISR=UART_TX_INT_S; + 3356: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3358: 1074 lrw r3, 0x200000b8 // 33a8 + 335a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 335c: 1074 lrw r3, 0x200000bc // 33ac + 335e: 9360 ld.w r3, (r3, 0x0) + 3360: 3b41 cmpnei r3, 1 + 3362: 0bf0 bt 0x3342 // 3342 + RS485_Comm_Start ++; + 3364: 1053 lrw r2, 0x200000c0 // 33b0 + RS485_Comm_End ++; + 3366: 9260 ld.w r3, (r2, 0x0) + 3368: 2300 addi r3, 1 + 336a: b260 st.w r3, (r2, 0x0) +} + 336c: 07eb br 0x3342 // 3342 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 336e: 9343 ld.w r2, (r3, 0xc) + 3370: 3108 movi r1, 8 + 3372: 6884 and r2, r1 + 3374: 3a40 cmpnei r2, 0 + 3376: 0c03 bf 0x337c // 337c + UART2->ISR=UART_TX_IOV_S; + 3378: b323 st.w r1, (r3, 0xc) + 337a: 07e4 br 0x3342 // 3342 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 337c: 9343 ld.w r2, (r3, 0xc) + 337e: 3104 movi r1, 4 + 3380: 6884 and r2, r1 + 3382: 3a40 cmpnei r2, 0 + 3384: 0bfa bt 0x3378 // 3378 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3386: 3180 movi r1, 128 + 3388: 9303 ld.w r0, (r3, 0xc) + 338a: 412c lsli r1, r1, 12 + 338c: 6804 and r0, r1 + 338e: 3840 cmpnei r0, 0 + 3390: 0fd9 bf 0x3342 // 3342 + UART2->ISR=UART_TX_DONE_S; + 3392: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3394: 1065 lrw r3, 0x200000b8 // 33a8 + 3396: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3398: 1065 lrw r3, 0x200000bc // 33ac + 339a: 9360 ld.w r3, (r3, 0x0) + 339c: 3b41 cmpnei r3, 1 + 339e: 0bd2 bt 0x3342 // 3342 + RS485_Comm_End ++; + 33a0: 1045 lrw r2, 0x200000c4 // 33b4 + 33a2: 07e2 br 0x3366 // 3366 + 33a4: 20000038 .long 0x20000038 + 33a8: 200000b8 .long 0x200000b8 + 33ac: 200000bc .long 0x200000bc + 33b0: 200000c0 .long 0x200000c0 + 33b4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.SPI0IntHandler: + +000033b8 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 33b8: 1460 nie + 33ba: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 33bc: 1178 lrw r3, 0x20000034 // 349c + 33be: 3101 movi r1, 1 + 33c0: 9360 ld.w r3, (r3, 0x0) + 33c2: 9347 ld.w r2, (r3, 0x1c) + 33c4: 6884 and r2, r1 + 33c6: 3a40 cmpnei r2, 0 + 33c8: 0c03 bf 0x33ce // 33ce + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 33ca: b328 st.w r1, (r3, 0x20) + } + +} + 33cc: 0407 br 0x33da // 33da + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 33ce: 9347 ld.w r2, (r3, 0x1c) + 33d0: 3002 movi r0, 2 + 33d2: 6880 and r2, r0 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0c04 bf 0x33de // 33de + SPI0->ICR = SPI_RTIM; + 33d8: b308 st.w r0, (r3, 0x20) +} + 33da: 1463 ipop + 33dc: 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 + 33de: 9347 ld.w r2, (r3, 0x1c) + 33e0: 3004 movi r0, 4 + 33e2: 6880 and r2, r0 + 33e4: 3a40 cmpnei r2, 0 + 33e6: 0c55 bf 0x3490 // 3490 + SPI0->ICR = SPI_RXIM; + 33e8: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 33ea: 9302 ld.w r0, (r3, 0x8) + 33ec: 32aa movi r2, 170 + 33ee: 6482 cmpne r0, r2 + 33f0: 083e bt 0x346c // 346c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 33f2: 3102 movi r1, 2 + 33f4: 9343 ld.w r2, (r3, 0xc) + 33f6: 6884 and r2, r1 + 33f8: 3a40 cmpnei r2, 0 + 33fa: 0ffd bf 0x33f4 // 33f4 + SPI0->DR = 0x11; + 33fc: 3211 movi r2, 17 + 33fe: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3400: 3110 movi r1, 16 + 3402: 9343 ld.w r2, (r3, 0xc) + 3404: 6884 and r2, r1 + 3406: 3a40 cmpnei r2, 0 + 3408: 0bfd bt 0x3402 // 3402 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 340a: 3102 movi r1, 2 + 340c: 9343 ld.w r2, (r3, 0xc) + 340e: 6884 and r2, r1 + 3410: 3a40 cmpnei r2, 0 + 3412: 0ffd bf 0x340c // 340c + SPI0->DR = 0x12; + 3414: 3212 movi r2, 18 + 3416: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3418: 3110 movi r1, 16 + 341a: 9343 ld.w r2, (r3, 0xc) + 341c: 6884 and r2, r1 + 341e: 3a40 cmpnei r2, 0 + 3420: 0bfd bt 0x341a // 341a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3422: 3102 movi r1, 2 + 3424: 9343 ld.w r2, (r3, 0xc) + 3426: 6884 and r2, r1 + 3428: 3a40 cmpnei r2, 0 + 342a: 0ffd bf 0x3424 // 3424 + SPI0->DR = 0x13; + 342c: 3213 movi r2, 19 + 342e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3430: 3110 movi r1, 16 + 3432: 9343 ld.w r2, (r3, 0xc) + 3434: 6884 and r2, r1 + 3436: 3a40 cmpnei r2, 0 + 3438: 0bfd bt 0x3432 // 3432 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 343a: 3102 movi r1, 2 + 343c: 9343 ld.w r2, (r3, 0xc) + 343e: 6884 and r2, r1 + 3440: 3a40 cmpnei r2, 0 + 3442: 0ffd bf 0x343c // 343c + SPI0->DR = 0x14; + 3444: 3214 movi r2, 20 + 3446: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3448: 3110 movi r1, 16 + 344a: 9343 ld.w r2, (r3, 0xc) + 344c: 6884 and r2, r1 + 344e: 3a40 cmpnei r2, 0 + 3450: 0bfd bt 0x344a // 344a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3452: 3102 movi r1, 2 + 3454: 9343 ld.w r2, (r3, 0xc) + 3456: 6884 and r2, r1 + 3458: 3a40 cmpnei r2, 0 + 345a: 0ffd bf 0x3454 // 3454 + SPI0->DR = 0x15; + 345c: 3215 movi r2, 21 + 345e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3460: 3110 movi r1, 16 + 3462: 9343 ld.w r2, (r3, 0xc) + 3464: 6884 and r2, r1 + 3466: 3a40 cmpnei r2, 0 + 3468: 0bfd bt 0x3462 // 3462 + 346a: 07b8 br 0x33da // 33da + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 346c: 9343 ld.w r2, (r3, 0xc) + 346e: 6884 and r2, r1 + 3470: 3a40 cmpnei r2, 0 + 3472: 0bb4 bt 0x33da // 33da + SPI0->DR=0x0; //FIFO=0 + 3474: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3476: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3478: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 347a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 347c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 347e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3480: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3482: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3484: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3486: 9343 ld.w r2, (r3, 0xc) + 3488: 6884 and r2, r1 + 348a: 3a40 cmpnei r2, 0 + 348c: 0bfd bt 0x3486 // 3486 + 348e: 07a6 br 0x33da // 33da + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 3490: 9347 ld.w r2, (r3, 0x1c) + 3492: 3108 movi r1, 8 + 3494: 6884 and r2, r1 + 3496: 3a40 cmpnei r2, 0 + 3498: 0b99 bt 0x33ca // 33ca + 349a: 07a0 br 0x33da // 33da + 349c: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000034a0 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 34a0: 1460 nie + 34a2: 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) + 34a4: 1073 lrw r3, 0x2000002c // 34f0 + 34a6: 3104 movi r1, 4 + 34a8: 9360 ld.w r3, (r3, 0x0) + 34aa: 9349 ld.w r2, (r3, 0x24) + 34ac: 6884 and r2, r1 + 34ae: 3a40 cmpnei r2, 0 + 34b0: 0c02 bf 0x34b4 // 34b4 + { + SIO0->ICR=0X04; + 34b2: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 34b4: 9349 ld.w r2, (r3, 0x24) + 34b6: 3101 movi r1, 1 + 34b8: 6884 and r2, r1 + 34ba: 3a40 cmpnei r2, 0 + 34bc: 0c02 bf 0x34c0 // 34c0 + { + SIO0->ICR=0X01; + 34be: 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 + 34c0: 9349 ld.w r2, (r3, 0x24) + 34c2: 3102 movi r1, 2 + 34c4: 6884 and r2, r1 + 34c6: 3a40 cmpnei r2, 0 + 34c8: 0c03 bf 0x34ce // 34ce + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 34ca: b32b st.w r1, (r3, 0x2c) + } +} + 34cc: 0410 br 0x34ec // 34ec + else if(SIO0->MISR&0X08) //RXBUFFULL + 34ce: 9349 ld.w r2, (r3, 0x24) + 34d0: 3108 movi r1, 8 + 34d2: 6884 and r2, r1 + 34d4: 3a40 cmpnei r2, 0 + 34d6: 0bfa bt 0x34ca // 34ca + else if(SIO0->MISR&0X010) //BREAK + 34d8: 9349 ld.w r2, (r3, 0x24) + 34da: 3110 movi r1, 16 + 34dc: 6884 and r2, r1 + 34de: 3a40 cmpnei r2, 0 + 34e0: 0bf5 bt 0x34ca // 34ca + else if(SIO0->MISR&0X020) //TIMEOUT + 34e2: 9349 ld.w r2, (r3, 0x24) + 34e4: 3120 movi r1, 32 + 34e6: 6884 and r2, r1 + 34e8: 3a40 cmpnei r2, 0 + 34ea: 0bf0 bt 0x34ca // 34ca +} + 34ec: 1463 ipop + 34ee: 1461 nir + 34f0: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +000034f4 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 34f4: 1460 nie + 34f6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 34f8: 106a lrw r3, 0x2000005c // 3520 + 34fa: 3101 movi r1, 1 + 34fc: 9360 ld.w r3, (r3, 0x0) + 34fe: 237f addi r3, 128 + 3500: 934c ld.w r2, (r3, 0x30) + 3502: 6884 and r2, r1 + 3504: 3a40 cmpnei r2, 0 + 3506: 0c04 bf 0x350e // 350e + { + SYSCON->EXICR = EXI_PIN0; + 3508: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 350a: 1463 ipop + 350c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 350e: 3280 movi r2, 128 + 3510: 932c ld.w r1, (r3, 0x30) + 3512: 4249 lsli r2, r2, 9 + 3514: 6848 and r1, r2 + 3516: 3940 cmpnei r1, 0 + 3518: 0ff9 bf 0x350a // 350a + SYSCON->EXICR = EXI_PIN16; + 351a: b34b st.w r2, (r3, 0x2c) +} + 351c: 07f7 br 0x350a // 350a + 351e: 0000 bkpt + 3520: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00003524 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 3524: 1460 nie + 3526: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 3528: 106a lrw r3, 0x2000005c // 3550 + 352a: 3102 movi r1, 2 + 352c: 9360 ld.w r3, (r3, 0x0) + 352e: 237f addi r3, 128 + 3530: 934c ld.w r2, (r3, 0x30) + 3532: 6884 and r2, r1 + 3534: 3a40 cmpnei r2, 0 + 3536: 0c04 bf 0x353e // 353e + { + SYSCON->EXICR = EXI_PIN1; + 3538: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 353a: 1463 ipop + 353c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 353e: 3280 movi r2, 128 + 3540: 932c ld.w r1, (r3, 0x30) + 3542: 424a lsli r2, r2, 10 + 3544: 6848 and r1, r2 + 3546: 3940 cmpnei r1, 0 + 3548: 0ff9 bf 0x353a // 353a + SYSCON->EXICR = EXI_PIN17; + 354a: b34b st.w r2, (r3, 0x2c) +} + 354c: 07f7 br 0x353a // 353a + 354e: 0000 bkpt + 3550: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00003554 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 3554: 1460 nie + 3556: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 3558: 1070 lrw r3, 0x2000005c // 3598 + 355a: 3104 movi r1, 4 + 355c: 9360 ld.w r3, (r3, 0x0) + 355e: 237f addi r3, 128 + 3560: 934c ld.w r2, (r3, 0x30) + 3562: 6884 and r2, r1 + 3564: 3a40 cmpnei r2, 0 + 3566: 0c04 bf 0x356e // 356e + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3568: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 356a: 1463 ipop + 356c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 356e: 934c ld.w r2, (r3, 0x30) + 3570: 3108 movi r1, 8 + 3572: 6884 and r2, r1 + 3574: 3a40 cmpnei r2, 0 + 3576: 0bf9 bt 0x3568 // 3568 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3578: 3280 movi r2, 128 + 357a: 932c ld.w r1, (r3, 0x30) + 357c: 424b lsli r2, r2, 11 + 357e: 6848 and r1, r2 + 3580: 3940 cmpnei r1, 0 + 3582: 0c03 bf 0x3588 // 3588 + SYSCON->EXICR = EXI_PIN19; + 3584: b34b st.w r2, (r3, 0x2c) +} + 3586: 07f2 br 0x356a // 356a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3588: 3280 movi r2, 128 + 358a: 932c ld.w r1, (r3, 0x30) + 358c: 424c lsli r2, r2, 12 + 358e: 6848 and r1, r2 + 3590: 3940 cmpnei r1, 0 + 3592: 0bf9 bt 0x3584 // 3584 + 3594: 07eb br 0x356a // 356a + 3596: 0000 bkpt + 3598: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +0000359c : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 359c: 1460 nie + 359e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 35a0: 1075 lrw r3, 0x2000005c // 35f4 + 35a2: 3280 movi r2, 128 + 35a4: 9360 ld.w r3, (r3, 0x0) + 35a6: 60c8 addu r3, r2 + 35a8: 932c ld.w r1, (r3, 0x30) + 35aa: 3010 movi r0, 16 + 35ac: 6840 and r1, r0 + 35ae: 3940 cmpnei r1, 0 + 35b0: 0c04 bf 0x35b8 // 35b8 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 35b2: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 35b4: 1463 ipop + 35b6: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 35b8: 932c ld.w r1, (r3, 0x30) + 35ba: 3020 movi r0, 32 + 35bc: 6840 and r1, r0 + 35be: 3940 cmpnei r1, 0 + 35c0: 0bf9 bt 0x35b2 // 35b2 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 35c2: 932c ld.w r1, (r3, 0x30) + 35c4: 3040 movi r0, 64 + 35c6: 6840 and r1, r0 + 35c8: 3940 cmpnei r1, 0 + 35ca: 0bf4 bt 0x35b2 // 35b2 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 35cc: 932c ld.w r1, (r3, 0x30) + 35ce: 6848 and r1, r2 + 35d0: 3940 cmpnei r1, 0 + 35d2: 0c03 bf 0x35d8 // 35d8 + SYSCON->EXICR = EXI_PIN9; + 35d4: b34b st.w r2, (r3, 0x2c) +} + 35d6: 07ef br 0x35b4 // 35b4 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 35d8: 3280 movi r2, 128 + 35da: 932c ld.w r1, (r3, 0x30) + 35dc: 4241 lsli r2, r2, 1 + 35de: 6848 and r1, r2 + 35e0: 3940 cmpnei r1, 0 + 35e2: 0bf9 bt 0x35d4 // 35d4 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 35e4: 3280 movi r2, 128 + 35e6: 932c ld.w r1, (r3, 0x30) + 35e8: 4242 lsli r2, r2, 2 + 35ea: 6848 and r1, r2 + 35ec: 3940 cmpnei r1, 0 + 35ee: 0bf3 bt 0x35d4 // 35d4 + 35f0: 07e2 br 0x35b4 // 35b4 + 35f2: 0000 bkpt + 35f4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000035f8 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 35f8: 1460 nie + 35fa: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 35fc: 1076 lrw r3, 0x2000005c // 3654 + 35fe: 3280 movi r2, 128 + 3600: 9360 ld.w r3, (r3, 0x0) + 3602: 237f addi r3, 128 + 3604: 932c ld.w r1, (r3, 0x30) + 3606: 4243 lsli r2, r2, 3 + 3608: 6848 and r1, r2 + 360a: 3940 cmpnei r1, 0 + 360c: 0c03 bf 0x3612 // 3612 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 360e: b34b st.w r2, (r3, 0x2c) + } +} + 3610: 041f br 0x364e // 364e + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 3612: 3280 movi r2, 128 + 3614: 932c ld.w r1, (r3, 0x30) + 3616: 4244 lsli r2, r2, 4 + 3618: 6848 and r1, r2 + 361a: 3940 cmpnei r1, 0 + 361c: 0bf9 bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 361e: 3280 movi r2, 128 + 3620: 932c ld.w r1, (r3, 0x30) + 3622: 4245 lsli r2, r2, 5 + 3624: 6848 and r1, r2 + 3626: 3940 cmpnei r1, 0 + 3628: 0bf3 bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 362a: 3280 movi r2, 128 + 362c: 932c ld.w r1, (r3, 0x30) + 362e: 4246 lsli r2, r2, 6 + 3630: 6848 and r1, r2 + 3632: 3940 cmpnei r1, 0 + 3634: 0bed bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3636: 3280 movi r2, 128 + 3638: 932c ld.w r1, (r3, 0x30) + 363a: 4247 lsli r2, r2, 7 + 363c: 6848 and r1, r2 + 363e: 3940 cmpnei r1, 0 + 3640: 0be7 bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 3642: 3280 movi r2, 128 + 3644: 932c ld.w r1, (r3, 0x30) + 3646: 4248 lsli r2, r2, 8 + 3648: 6848 and r1, r2 + 364a: 3940 cmpnei r1, 0 + 364c: 0be1 bt 0x360e // 360e +} + 364e: 1463 ipop + 3650: 1461 nir + 3652: 0000 bkpt + 3654: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00003658 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3658: 1460 nie + 365a: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 365c: 106b lrw r3, 0x20000014 // 3688 + 365e: 3101 movi r1, 1 + 3660: 9360 ld.w r3, (r3, 0x0) + 3662: 934e ld.w r2, (r3, 0x38) + 3664: 6884 and r2, r1 + 3666: 3a40 cmpnei r2, 0 + 3668: 0c03 bf 0x366e // 366e + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 366a: b330 st.w r1, (r3, 0x40) + } +} + 366c: 040b br 0x3682 // 3682 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 366e: 934e ld.w r2, (r3, 0x38) + 3670: 3102 movi r1, 2 + 3672: 6884 and r2, r1 + 3674: 3a40 cmpnei r2, 0 + 3676: 0bfa bt 0x366a // 366a + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3678: 934e ld.w r2, (r3, 0x38) + 367a: 3104 movi r1, 4 + 367c: 6884 and r2, r1 + 367e: 3a40 cmpnei r2, 0 + 3680: 0bf5 bt 0x366a // 366a +} + 3682: 1463 ipop + 3684: 1461 nir + 3686: 0000 bkpt + 3688: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +0000368c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 368c: 1460 nie + 368e: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3690: 1071 lrw r3, 0x2000000c // 36d4 + 3692: 3101 movi r1, 1 + 3694: 9360 ld.w r3, (r3, 0x0) + 3696: 934c ld.w r2, (r3, 0x30) + 3698: 6884 and r2, r1 + 369a: 3a40 cmpnei r2, 0 + 369c: 0c0a bf 0x36b0 // 36b0 + { + BT0->ICR = BT_PEND; + 369e: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 36a0: 9341 ld.w r2, (r3, 0x4) + 36a2: 3a86 bclri r2, 6 + 36a4: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 36a6: 9340 ld.w r2, (r3, 0x0) + 36a8: 3200 movi r2, 0 + 36aa: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 36ac: 1463 ipop + 36ae: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 36b0: 934c ld.w r2, (r3, 0x30) + 36b2: 3102 movi r1, 2 + 36b4: 6884 and r2, r1 + 36b6: 3a40 cmpnei r2, 0 + 36b8: 0c03 bf 0x36be // 36be + BT0->ICR = BT_EVTRG; + 36ba: b32d st.w r1, (r3, 0x34) +} + 36bc: 07f8 br 0x36ac // 36ac + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 36be: 934c ld.w r2, (r3, 0x30) + 36c0: 3104 movi r1, 4 + 36c2: 6884 and r2, r1 + 36c4: 3a40 cmpnei r2, 0 + 36c6: 0bfa bt 0x36ba // 36ba + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 36c8: 934c ld.w r2, (r3, 0x30) + 36ca: 3108 movi r1, 8 + 36cc: 6884 and r2, r1 + 36ce: 3a40 cmpnei r2, 0 + 36d0: 0bf5 bt 0x36ba // 36ba + 36d2: 07ed br 0x36ac // 36ac + 36d4: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000036d8 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 36d8: 1460 nie + 36da: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 36dc: 1076 lrw r3, 0x20000008 // 3734 + 36de: 3101 movi r1, 1 + 36e0: 9360 ld.w r3, (r3, 0x0) + 36e2: 934c ld.w r2, (r3, 0x30) + 36e4: 6884 and r2, r1 + 36e6: 3a40 cmpnei r2, 0 + 36e8: 0c03 bf 0x36ee // 36ee + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 36ea: b32d st.w r1, (r3, 0x34) + } +} + 36ec: 0416 br 0x3718 // 3718 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 36ee: 934c ld.w r2, (r3, 0x30) + 36f0: 3102 movi r1, 2 + 36f2: 6884 and r2, r1 + 36f4: 3a40 cmpnei r2, 0 + 36f6: 0c13 bf 0x371c // 371c + BT1->ICR = BT_CMP; + 36f8: b32d st.w r1, (r3, 0x34) + NUM++; + 36fa: 1070 lrw r3, 0x200000ac // 3738 + 36fc: 8340 ld.b r2, (r3, 0x0) + 36fe: 2200 addi r2, 1 + 3700: 7488 zextb r2, r2 + SysTick_100us++; + 3702: 9321 ld.w r1, (r3, 0x4) + 3704: 2100 addi r1, 1 + if(NUM >= 10){ + 3706: 3a09 cmphsi r2, 10 + NUM++; + 3708: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 370a: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 370c: 0c06 bf 0x3718 // 3718 + NUM = 0; + 370e: 3200 movi r2, 0 + 3710: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3712: 9342 ld.w r2, (r3, 0x8) + 3714: 2200 addi r2, 1 + 3716: b342 st.w r2, (r3, 0x8) +} + 3718: 1463 ipop + 371a: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 371c: 934c ld.w r2, (r3, 0x30) + 371e: 3104 movi r1, 4 + 3720: 6884 and r2, r1 + 3722: 3a40 cmpnei r2, 0 + 3724: 0be3 bt 0x36ea // 36ea + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 3726: 934c ld.w r2, (r3, 0x30) + 3728: 3108 movi r1, 8 + 372a: 6884 and r2, r1 + 372c: 3a40 cmpnei r2, 0 + 372e: 0bde bt 0x36ea // 36ea + 3730: 07f4 br 0x3718 // 3718 + 3732: 0000 bkpt + 3734: 20000008 .long 0x20000008 + 3738: 200000ac .long 0x200000ac + +Disassembly of section .text.PriviledgeVioHandler: + +0000373c : + 373c: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +0000373e : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 373e: 1460 nie + 3740: 1462 ipush + // ISR content ... + +} + 3742: 1463 ipop + 3744: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00003746 : + 3746: 1460 nie + 3748: 1462 ipush + 374a: 1463 ipop + 374c: 1461 nir + +Disassembly of section .text.Trap2Handler: + +0000374e : + 374e: 1460 nie + 3750: 1462 ipush + 3752: 1463 ipop + 3754: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00003756 : + 3756: 1460 nie + 3758: 1462 ipush + 375a: 1463 ipop + 375c: 1461 nir + +Disassembly of section .text.Trap0Handler: + +0000375e : + 375e: 1460 nie + 3760: 1462 ipush + 3762: 1463 ipop + 3764: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003766 : + 3766: 1460 nie + 3768: 1462 ipush + 376a: 1463 ipop + 376c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000376e : + 376e: 1460 nie + 3770: 1462 ipush + 3772: 1463 ipop + 3774: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003776 : + 3776: 1460 nie + 3778: 1462 ipush + 377a: 1463 ipop + 377c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000377e : + 377e: 1460 nie + 3780: 1462 ipush + 3782: 1463 ipop + 3784: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003786 : + 3786: 1460 nie + 3788: 1462 ipush + 378a: 1463 ipop + 378c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000378e : + 378e: 1460 nie + 3790: 1462 ipush + 3792: 1463 ipop + 3794: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003796 : + 3796: 1460 nie + 3798: 1462 ipush + 379a: 1463 ipop + 379c: 1461 nir + +Disassembly of section .text.__divsi3: + +000037a0 <__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) +{ + 37a0: 14c1 push r4 + int PSR; + __asm volatile( + 37a2: c0006023 mfcr r3, cr<0, 0> + 37a6: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 37aa: 1046 lrw r2, 0x20000000 // 37c0 <__divsi3+0x20> + 37ac: 3400 movi r4, 0 + 37ae: 9240 ld.w r2, (r2, 0x0) + 37b0: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 37b2: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 37b4: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 37b6: b221 st.w r1, (r2, 0x4) + __asm volatile( + 37b8: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 37bc: 9202 ld.w r0, (r2, 0x8) +} + 37be: 1481 pop r4 + 37c0: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000037c4 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 37c4: 14c1 push r4 + int PSR; + __asm volatile( + 37c6: c0006023 mfcr r3, cr<0, 0> + 37ca: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 37ce: 1046 lrw r2, 0x20000000 // 37e4 <__udivsi3+0x20> + 37d0: 3401 movi r4, 1 + 37d2: 9240 ld.w r2, (r2, 0x0) + 37d4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 37d6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 37d8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 37da: b221 st.w r1, (r2, 0x4) + __asm volatile( + 37dc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 37e0: 9202 ld.w r0, (r2, 0x8) +} + 37e2: 1481 pop r4 + 37e4: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000037e8 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 37e8: 14c1 push r4 + int PSR; + __asm volatile( + 37ea: c0006023 mfcr r3, cr<0, 0> + 37ee: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 37f2: 1046 lrw r2, 0x20000000 // 3808 <__umodsi3+0x20> + 37f4: 3401 movi r4, 1 + 37f6: 9240 ld.w r2, (r2, 0x0) + 37f8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 37fa: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 37fc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 37fe: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3800: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3804: 9203 ld.w r0, (r2, 0xc) +} + 3806: 1481 pop r4 + 3808: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +0000380c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 380c: c1807420 psrset ee, ie +} + 3810: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003814 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3814: 14d1 push r4, r15 + switch(uart_id){ + 3816: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3818: 6d07 mov r4, r1 + switch(uart_id){ + 381a: 0c15 bf 0x3844 // 3844 + 381c: 3840 cmpnei r0, 0 + 381e: 0c04 bf 0x3826 // 3826 + 3820: 3842 cmpnei r0, 2 + 3822: 0c1f bf 0x3860 // 3860 +// GPIO_DriveStrength_EN(GPIOB0,1); +// GPIO_Write_Low(GPIOB0,1); + + break; + } +} + 3824: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 3826: e3fff391 bsr 0x1f48 // 1f48 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 382a: 3100 movi r1, 0 + 382c: 3000 movi r0, 0 + 382e: e3fff3cd bsr 0x1fc8 // 1fc8 + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3832: 107b lrw r3, 0x20000040 // 389c + 3834: 3200 movi r2, 0 + 3836: 9300 ld.w r0, (r3, 0x0) + 3838: 103a lrw r1, 0x2710 // 38a0 + 383a: e3fff43d bsr 0x20b4 // 20b4 + UART0_Int_Enable(); + 383e: e3fff3a9 bsr 0x1f90 // 1f90 + break; + 3842: 07f1 br 0x3824 // 3824 + UART1_DeInit(); //clear all UART Register + 3844: e3fff38e bsr 0x1f60 // 1f60 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3848: 3102 movi r1, 2 + 384a: 3001 movi r0, 1 + 384c: e3fff3be bsr 0x1fc8 // 1fc8 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3850: 1075 lrw r3, 0x2000003c // 38a4 + 3852: 31d0 movi r1, 208 + 3854: 9300 ld.w r0, (r3, 0x0) + 3856: 3200 movi r2, 0 + 3858: 4121 lsli r1, r1, 1 + 385a: e3fff42d bsr 0x20b4 // 20b4 + break; + 385e: 07e3 br 0x3824 // 3824 + UART2_DeInit(); //clear all UART Register + 3860: e3fff38c bsr 0x1f78 // 1f78 + UART_IO_Init(IO_UART2,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3864: 3102 movi r1, 2 + 3866: 3002 movi r0, 2 + 3868: e3fff3b0 bsr 0x1fc8 // 1fc8 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 386c: 106f lrw r3, 0x20000038 // 38a8 + 386e: 3200 movi r2, 0 + 3870: 9300 ld.w r0, (r3, 0x0) + 3872: 102f lrw r1, 0x1388 // 38ac + 3874: e3fff420 bsr 0x20b4 // 20b4 + UART2_Int_Enable(); + 3878: e3fff39a bsr 0x1fac // 1fac + memset(&g_uart,0,sizeof(UART_t)); + 387c: 3273 movi r2, 115 + 387e: 3100 movi r1, 0 + 3880: 100c lrw r0, 0x20000190 // 38b0 + 3882: e3fff071 bsr 0x1964 // 1964 <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 3886: 106c lrw r3, 0x200001f7 // 38b4 + 3888: 3203 movi r2, 3 + 388a: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 388c: 4c48 lsri r2, r4, 8 + 388e: a388 st.b r4, (r3, 0x8) + 3890: a349 st.b r2, (r3, 0x9) + 3892: 4c50 lsri r2, r4, 16 + 3894: 4c98 lsri r4, r4, 24 + 3896: a34a st.b r2, (r3, 0xa) + 3898: a38b st.b r4, (r3, 0xb) +} + 389a: 07c5 br 0x3824 // 3824 + 389c: 20000040 .long 0x20000040 + 38a0: 00002710 .long 0x00002710 + 38a4: 2000003c .long 0x2000003c + 38a8: 20000038 .long 0x20000038 + 38ac: 00001388 .long 0x00001388 + 38b0: 20000190 .long 0x20000190 + 38b4: 200001f7 .long 0x200001f7 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000038b8 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 38b8: 14d2 push r4-r5, r15 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 38ba: 1096 lrw r4, 0x200001f0 // 3910 + 38bc: 8466 ld.b r3, (r4, 0x6) + 38be: 8445 ld.b r2, (r4, 0x5) + 38c0: 4368 lsli r3, r3, 8 + 38c2: 6cc8 or r3, r2 + 38c4: 3262 movi r2, 98 + 38c6: 10b4 lrw r5, 0x20000190 // 3914 + 38c8: 3140 movi r1, 64 + 38ca: 64c9 cmplt r2, r3 + 38cc: 6054 addu r1, r5 + 38ce: 0c06 bf 0x38da // 38da + 38d0: 3325 movi r3, 37 + 38d2: 60c4 addu r3, r1 + 38d4: 3200 movi r2, 0 + 38d6: a340 st.b r2, (r3, 0x0) + 38d8: a341 st.b r2, (r3, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 38da: 8466 ld.b r3, (r4, 0x6) + 38dc: 8445 ld.b r2, (r4, 0x5) + 38de: 4368 lsli r3, r3, 8 + 38e0: 6cc8 or r3, r2 + 38e2: 5b42 addi r2, r3, 1 + 38e4: 2124 addi r1, 37 + 38e6: 7489 zexth r2, r2 + 38e8: 60d4 addu r3, r5 + 38ea: a140 st.b r2, (r1, 0x0) + 38ec: 4a48 lsri r2, r2, 8 + 38ee: a141 st.b r2, (r1, 0x1) + 38f0: a300 st.b r0, (r3, 0x0) + + uart_receive_input((U8_T)data); + 38f2: e000104f bsr 0x5990 // 5990 + + g_uart.RecvIdleTiming = SysTick_1ms; + 38f6: 1069 lrw r3, 0x200000b4 // 3918 + 38f8: 1049 lrw r2, 0x200001fb // 391c + 38fa: 9360 ld.w r3, (r3, 0x0) + 38fc: 4b28 lsri r1, r3, 8 + 38fe: a260 st.b r3, (r2, 0x0) + 3900: a221 st.b r1, (r2, 0x1) + 3902: 4b30 lsri r1, r3, 16 + 3904: 4b78 lsri r3, r3, 24 + 3906: a263 st.b r3, (r2, 0x3) + g_uart.Receiving = 0x01; + 3908: 3301 movi r3, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 390a: a222 st.b r1, (r2, 0x2) + g_uart.Receiving = 0x01; + 390c: a464 st.b r3, (r4, 0x4) +} + 390e: 1492 pop r4-r5, r15 + 3910: 200001f0 .long 0x200001f0 + 3914: 20000190 .long 0x20000190 + 3918: 200000b4 .long 0x200000b4 + 391c: 200001fb .long 0x200001fb + +Disassembly of section .text.UART2_TASK: + +00003920 : + + +void UART2_TASK(void){ + 3920: 14d1 push r4, r15 + U8_T ret = 0x00; + if(g_uart.Receiving == 0x01){ + 3922: 1185 lrw r4, 0x200001f0 // 39b4 + 3924: 8464 ld.b r3, (r4, 0x4) + 3926: 3b41 cmpnei r3, 1 + 3928: 0845 bt 0x39b2 // 39b2 + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 392a: 844c ld.b r2, (r4, 0xc) + 392c: 846b ld.b r3, (r4, 0xb) + 392e: 4248 lsli r2, r2, 8 + 3930: 6c8c or r2, r3 + 3932: 846d ld.b r3, (r4, 0xd) + 3934: 4370 lsli r3, r3, 16 + 3936: 6c8c or r2, r3 + 3938: 846e ld.b r3, (r4, 0xe) + 393a: 1100 lrw r0, 0x200000b4 // 39b8 + 393c: 4378 lsli r3, r3, 24 + 393e: 6cc8 or r3, r2 + 3940: 9020 ld.w r1, (r0, 0x0) + 3942: 8448 ld.b r2, (r4, 0x8) + 3944: 604e subu r1, r3 + 3946: 4248 lsli r2, r2, 8 + 3948: 8467 ld.b r3, (r4, 0x7) + 394a: 6c8c or r2, r3 + 394c: 8469 ld.b r3, (r4, 0x9) + 394e: 4370 lsli r3, r3, 16 + 3950: 6c8c or r2, r3 + 3952: 846a ld.b r3, (r4, 0xa) + 3954: 4378 lsli r3, r3, 24 + 3956: 6cc8 or r3, r2 + 3958: 644c cmphs r3, r1 + 395a: 082c bt 0x39b2 // 39b2 + g_uart.RecvIdleTiming = SysTick_1ms; + 395c: 9060 ld.w r3, (r0, 0x0) + 395e: 320b movi r2, 11 + 3960: 6090 addu r2, r4 + 3962: 4b28 lsri r1, r3, 8 + 3964: a260 st.b r3, (r2, 0x0) + 3966: a221 st.b r1, (r2, 0x1) + 3968: 4b30 lsri r1, r3, 16 + 396a: 4b78 lsri r3, r3, 24 + 396c: a222 st.b r1, (r2, 0x2) + 396e: 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){ + 3970: 8450 ld.b r2, (r4, 0x10) + 3972: 846f ld.b r3, (r4, 0xf) + 3974: 4248 lsli r2, r2, 8 + 3976: 6c8c or r2, r3 + 3978: 8471 ld.b r3, (r4, 0x11) + 397a: 4370 lsli r3, r3, 16 + 397c: 6c8c or r2, r3 + 397e: 8472 ld.b r3, (r4, 0x12) + 3980: 4378 lsli r3, r3, 24 + 3982: 6cc8 or r3, r2 + 3984: 3b40 cmpnei r3, 0 + 3986: 0c10 bf 0x39a6 // 39a6 + ret = g_uart.processing_cf(g_uart.RecvBuffer,g_uart.RecvLen); + 3988: 8426 ld.b r1, (r4, 0x6) + 398a: 8445 ld.b r2, (r4, 0x5) + 398c: 4128 lsli r1, r1, 8 + 398e: 6c48 or r1, r2 + 3990: 100b lrw r0, 0x20000190 // 39bc + 3992: 7bcd jsr r3 + } + + if(ret == 0x01){ + 3994: 3841 cmpnei r0, 1 + 3996: 0808 bt 0x39a6 // 39a6 + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart.RecvBuffer,g_uart.RecvLen); + 3998: 8426 ld.b r1, (r4, 0x6) + 399a: 8465 ld.b r3, (r4, 0x5) + 399c: 4128 lsli r1, r1, 8 + 399e: 6c4c or r1, r3 + 39a0: 1007 lrw r0, 0x20000190 // 39bc + 39a2: e0000377 bsr 0x4090 // 4090 + } + + g_uart.RecvLen = 0; + 39a6: 1067 lrw r3, 0x200001f5 // 39c0 + 39a8: 3200 movi r2, 0 + 39aa: a340 st.b r2, (r3, 0x0) + 39ac: a341 st.b r2, (r3, 0x1) + g_uart.Receiving = 0; + 39ae: 3300 movi r3, 0 + 39b0: a464 st.b r3, (r4, 0x4) + } + } +} + 39b2: 1491 pop r4, r15 + 39b4: 200001f0 .long 0x200001f0 + 39b8: 200000b4 .long 0x200000b4 + 39bc: 20000190 .long 0x20000190 + 39c0: 200001f5 .long 0x200001f5 + +Disassembly of section .text.Dbg_Println: + +000039c4 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 39c4: 1423 subi r14, r14, 12 + 39c6: b862 st.w r3, (r14, 0x8) + 39c8: b841 st.w r2, (r14, 0x4) + 39ca: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 39cc: 1403 addi r14, r14, 12 + 39ce: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +000039d0 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 39d0: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +000039d4 : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 39d4: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 39d6: 3230 movi r2, 48 + 39d8: 3100 movi r1, 0 + 39da: 101c lrw r0, 0x20000234 // 3a48 + 39dc: e3ffefc4 bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + 39e0: 3214 movi r2, 20 + 39e2: 3100 movi r1, 0 + 39e4: 101a lrw r0, 0x20000220 // 3a4c + 39e6: e3ffefbf bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 39ea: 321c movi r2, 28 + 39ec: 3100 movi r1, 0 + 39ee: 1019 lrw r0, 0x20000204 // 3a50 + 39f0: e3ffefba bsr 0x1964 // 1964 <__memset_fast> + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 39f4: 1098 lrw r4, 0x20000264 // 3a54 + EEPROM_Init(); //按键库初始化前先读取参数 + 39f6: e000045d bsr 0x42b0 // 42b0 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 39fa: 8405 ld.b r0, (r4, 0x5) + 39fc: 1035 lrw r1, 0x20000204 // 3a50 + 39fe: e00004b7 bsr 0x436c // 436c + if(rev == 0x00){ + 3a02: 3840 cmpnei r0, 0 + 3a04: 0818 bt 0x3a34 // 3a34 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3a06: 8405 ld.b r0, (r4, 0x5) + 3a08: 1032 lrw r1, 0x20000204 // 3a50 + 3a0a: e0000507 bsr 0x4418 // 4418 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3a0e: 1011 lrw r0, 0x20000204 // 3a50 + 3a10: e0000578 bsr 0x4500 // 4500 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + + GPIO_Init(GPIOB0,3,Output); + 3a14: 1091 lrw r4, 0x20000048 // 3a58 + tk_init(); //触摸库初始化 + 3a16: e00017bb bsr 0x698c // 698c + GPIO_Init(GPIOB0,3,Output); + 3a1a: 3200 movi r2, 0 + 3a1c: 9400 ld.w r0, (r4, 0x0) + 3a1e: 3103 movi r1, 3 + 3a20: e3fff1b4 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOB0,3); + 3a24: 9400 ld.w r0, (r4, 0x0) + 3a26: 3103 movi r1, 3 + 3a28: e3fff220 bsr 0x1e68 // 1e68 + + base_update_f = 0x01; //触摸状态强制更新 + 3a2c: 106c lrw r3, 0x20000643 // 3a5c + 3a2e: 3201 movi r2, 1 + 3a30: a340 st.b r2, (r3, 0x0) + +} + 3a32: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3a34: 102b lrw r1, 0x7256 // 3a60 + 3a36: 3000 movi r0, 0 + 3a38: e3ffffc6 bsr 0x39c4 // 39c4 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3a3c: 8405 ld.b r0, (r4, 0x5) + 3a3e: 1025 lrw r1, 0x20000204 // 3a50 + 3a40: e0000540 bsr 0x44c0 // 44c0 + 3a44: 07e5 br 0x3a0e // 3a0e + 3a46: 0000 bkpt + 3a48: 20000234 .long 0x20000234 + 3a4c: 20000220 .long 0x20000220 + 3a50: 20000204 .long 0x20000204 + 3a54: 20000264 .long 0x20000264 + 3a58: 20000048 .long 0x20000048 + 3a5c: 20000643 .long 0x20000643 + 3a60: 00007256 .long 0x00007256 + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003a64 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3a64: 14d0 push r15 + 3a66: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3a68: 1121 lrw r1, 0x20000068 // 3aec + send_buff[send_len++] = 0x0D; + 3a6a: 330d movi r3, 13 + 3a6c: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a70: 8140 ld.b r2, (r1, 0x0) + send_buff[send_len++] = 0x0A; + 3a72: 330a movi r3, 10 + 3a74: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a78: 4241 lsli r2, r2, 1 + 3a7a: 107e lrw r3, 0x2000078e // 3af0 + 3a7c: 608c addu r2, r3 + 3a7e: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3a80: 8a40 ld.h r2, (r2, 0x0) + 3a82: dc4e0003 st.b r2, (r14, 0x3) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a86: 8141 ld.b r2, (r1, 0x1) + 3a88: 4241 lsli r2, r2, 1 + 3a8a: 608c addu r2, r3 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a8c: 4808 lsri r0, r0, 8 + 3a8e: dc0e0002 st.b r0, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a92: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3a94: 8a40 ld.h r2, (r2, 0x0) + 3a96: dc4e0005 st.b r2, (r14, 0x5) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a9a: 8142 ld.b r2, (r1, 0x2) + 3a9c: 4241 lsli r2, r2, 1 + 3a9e: 608c addu r2, r3 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aa0: 4808 lsri r0, r0, 8 + 3aa2: dc0e0004 st.b r0, (r14, 0x4) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aa6: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3aa8: 8a40 ld.h r2, (r2, 0x0) + 3aaa: dc4e0007 st.b r2, (r14, 0x7) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aae: 8143 ld.b r2, (r1, 0x3) + 3ab0: 4241 lsli r2, r2, 1 + 3ab2: 608c addu r2, r3 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ab4: 4808 lsri r0, r0, 8 + 3ab6: dc0e0006 st.b r0, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aba: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3abc: 8a40 ld.h r2, (r2, 0x0) + 3abe: dc4e0009 st.b r2, (r14, 0x9) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ac2: 8144 ld.b r2, (r1, 0x4) + 3ac4: 4241 lsli r2, r2, 1 + 3ac6: 60c8 addu r3, r2 + 3ac8: 8b40 ld.h r2, (r3, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3aca: 8b60 ld.h r3, (r3, 0x0) + 3acc: dc6e000b st.b r3, (r14, 0xb) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ad0: 4808 lsri r0, r0, 8 +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + +// MCU485_SendData(send_buff,send_len); + UARTTransmit(UART2,send_buff,send_len); + 3ad2: 1069 lrw r3, 0x20000038 // 3af4 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ad4: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ad6: dc0e0008 st.b r0, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ada: dc4e000a st.b r2, (r14, 0xa) + UARTTransmit(UART2,send_buff,send_len); + 3ade: 9300 ld.w r0, (r3, 0x0) + 3ae0: 320c movi r2, 12 + 3ae2: 6c7b mov r1, r14 + 3ae4: e3fff2f0 bsr 0x20c4 // 20c4 + +} + 3ae8: 140d addi r14, r14, 52 + 3aea: 1490 pop r15 + 3aec: 20000068 .long 0x20000068 + 3af0: 2000078e .long 0x2000078e + 3af4: 20000038 .long 0x20000038 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003af8 : +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3af8: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3afa: 3804 cmphsi r0, 5 + 3afc: 0818 bt 0x3b2c // 3b2c + 3afe: 106d lrw r3, 0x20000234 // 3b30 + 3b00: e3ffe8fe bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3b04: 0e0b0803 .long 0x0e0b0803 + 3b08: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3b0a: 9309 ld.w r0, (r3, 0x24) + 3b0c: 4809 lsri r0, r0, 9 + if(g_key.key_state & 0x1000){ + state = 0x01; + } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3b0e: 3301 movi r3, 1 + U8_T state = 0; + 3b10: 680c and r0, r3 + } + break; + } + + return state; +} + 3b12: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3b14: 9309 ld.w r0, (r3, 0x24) + 3b16: 480a lsri r0, r0, 10 + 3b18: 07fb br 0x3b0e // 3b0e + if(g_key.key_state & 0x0800){ + 3b1a: 9309 ld.w r0, (r3, 0x24) + 3b1c: 480b lsri r0, r0, 11 + 3b1e: 07f8 br 0x3b0e // 3b0e + if(g_key.key_state & 0x1000){ + 3b20: 9309 ld.w r0, (r3, 0x24) + 3b22: 480c lsri r0, r0, 12 + 3b24: 07f5 br 0x3b0e // 3b0e + if(g_key.key_state & 0x2000){ + 3b26: 9309 ld.w r0, (r3, 0x24) + 3b28: 480d lsri r0, r0, 13 + 3b2a: 07f2 br 0x3b0e // 3b0e + U8_T state = 0; + 3b2c: 3000 movi r0, 0 + 3b2e: 07f2 br 0x3b12 // 3b12 + 3b30: 20000234 .long 0x20000234 + +Disassembly of section .text.TouchKey_Error_Scan: + +00003b34 : + + +void TouchKey_Error_Scan(void){ + 3b34: 14d4 push r4-r7, r15 + 3b36: 3400 movi r4, 0 + U8_T i = 0; + U8_T temp_flag = 0; + 3b38: 3700 movi r7, 0 + U16_T temp_val = 0; + + for(i = 0;i < TKE_CH_MAX;i++){ + if(Get_TouchKey_CH_State(i) == 0x00){ + //如果通道在没有触发的情况下,差值大于TOUCH_Anomaly_UpperLimit 便启动强制更新 + if(offset_data0[MCU_Touch_CH[i]] >= TOUCH_Anomaly_UpperLimit){ + 3b3a: 10af lrw r5, 0x20000068 // 3b74 + 3b3c: 10cf lrw r6, 0x200005d6 // 3b78 + if(Get_TouchKey_CH_State(i) == 0x00){ + 3b3e: 7410 zextb r0, r4 + 3b40: e3ffffdc bsr 0x3af8 // 3af8 + 3b44: 3840 cmpnei r0, 0 + 3b46: 080e bt 0x3b62 // 3b62 + if(offset_data0[MCU_Touch_CH[i]] >= TOUCH_Anomaly_UpperLimit){ + 3b48: 5d70 addu r3, r5, r4 + 3b4a: 8360 ld.b r3, (r3, 0x0) + 3b4c: 4361 lsli r3, r3, 1 + 3b4e: 60d8 addu r3, r6 + 3b50: 8b60 ld.h r3, (r3, 0x0) + 3b52: 74cf sexth r3, r3 + 3b54: 104a lrw r2, 0x3a97 // 3b7c + 3b56: 64c9 cmplt r2, r3 + 3b58: 0c05 bf 0x3b62 // 3b62 + temp_flag = 0x01; + + Dbg_Println(DBG_BIT_SYS_STATUS,"SYSCON_Software_Reset_01\r\n"); + 3b5a: 102a lrw r1, 0x7268 // 3b80 + 3b5c: e3ffff34 bsr 0x39c4 // 39c4 + temp_flag = 0x01; + 3b60: 3701 movi r7, 1 + 3b62: 2400 addi r4, 1 + for(i = 0;i < TKE_CH_MAX;i++){ + 3b64: 3c45 cmpnei r4, 5 + 3b66: 0bec bt 0x3b3e // 3b3e + } + } + } + + if(temp_flag == 0x01){ + 3b68: 3f41 cmpnei r7, 1 + 3b6a: 0804 bt 0x3b72 // 3b72 + base_update_f = 0x01; //强制更新触摸 + 3b6c: 1066 lrw r3, 0x20000643 // 3b84 + 3b6e: 3201 movi r2, 1 + 3b70: a340 st.b r2, (r3, 0x0) +// +// SYSCON_Software_Reset(); +// } + + +} + 3b72: 1494 pop r4-r7, r15 + 3b74: 20000068 .long 0x20000068 + 3b78: 200005d6 .long 0x200005d6 + 3b7c: 00003a97 .long 0x00003a97 + 3b80: 00007268 .long 0x00007268 + 3b84: 20000643 .long 0x20000643 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003b88 : + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3b88: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3b8a: 118a lrw r4, 0x20000234 // 3c30 + 3b8c: 8465 ld.b r3, (r4, 0x5) + 3b8e: 3b42 cmpnei r3, 2 + 3b90: 081c bt 0x3bc8 // 3bc8 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3b92: 3300 movi r3, 0 + 3b94: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3b96: 8466 ld.b r3, (r4, 0x6) + 3b98: 3b42 cmpnei r3, 2 + 3b9a: 0820 bt 0x3bda // 3bda + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3b9c: 3300 movi r3, 0 + 3b9e: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3ba0: 8467 ld.b r3, (r4, 0x7) + 3ba2: 3b42 cmpnei r3, 2 + 3ba4: 0824 bt 0x3bec // 3bec + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3ba6: 3300 movi r3, 0 + 3ba8: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3baa: e0000c37 bsr 0x5418 // 5418 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3bae: 8468 ld.b r3, (r4, 0x8) + 3bb0: 3b42 cmpnei r3, 2 + 3bb2: 0829 bt 0x3c04 // 3c04 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3bb4: 3300 movi r3, 0 + 3bb6: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3bb8: e0000cd6 bsr 0x5564 // 5564 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3bbc: 8469 ld.b r3, (r4, 0x9) + 3bbe: 3b42 cmpnei r3, 2 + 3bc0: 082e bt 0x3c1c // 3c1c + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3bc2: 3300 movi r3, 0 + 3bc4: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3bc6: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3bc8: 3b44 cmpnei r3, 4 + 3bca: 0fe4 bf 0x3b92 // 3b92 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3bcc: 3b41 cmpnei r3, 1 + 3bce: 0be4 bt 0x3b96 // 3b96 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3bd0: 3300 movi r3, 0 + 3bd2: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3bd4: e0000ae4 bsr 0x519c // 519c + 3bd8: 07df br 0x3b96 // 3b96 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3bda: 3b44 cmpnei r3, 4 + 3bdc: 0fe0 bf 0x3b9c // 3b9c + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3bde: 3b41 cmpnei r3, 1 + 3be0: 0be0 bt 0x3ba0 // 3ba0 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3be2: 3300 movi r3, 0 + 3be4: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3be6: e0000b43 bsr 0x526c // 526c + 3bea: 07db br 0x3ba0 // 3ba0 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3bec: 3b44 cmpnei r3, 4 + 3bee: 0804 bt 0x3bf6 // 3bf6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3bf0: 3300 movi r3, 0 + 3bf2: a467 st.b r3, (r4, 0x7) + 3bf4: 07dd br 0x3bae // 3bae + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3bf6: 3b41 cmpnei r3, 1 + 3bf8: 0bdb bt 0x3bae // 3bae + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3bfa: 3300 movi r3, 0 + 3bfc: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3bfe: e0000b9f bsr 0x533c // 533c + 3c02: 07d6 br 0x3bae // 3bae + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3c04: 3b44 cmpnei r3, 4 + 3c06: 0804 bt 0x3c0e // 3c0e + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3c08: 3300 movi r3, 0 + 3c0a: a468 st.b r3, (r4, 0x8) + 3c0c: 07d8 br 0x3bbc // 3bbc + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3c0e: 3b41 cmpnei r3, 1 + 3c10: 0bd6 bt 0x3bbc // 3bbc + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3c12: 3300 movi r3, 0 + 3c14: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3c16: e0000c37 bsr 0x5484 // 5484 + 3c1a: 07d1 br 0x3bbc // 3bbc + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3c1c: 3b44 cmpnei r3, 4 + 3c1e: 0fd2 bf 0x3bc2 // 3bc2 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3c20: 3b41 cmpnei r3, 1 + 3c22: 0bd2 bt 0x3bc6 // 3bc6 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3c24: 3300 movi r3, 0 + 3c26: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3c28: e0000cd4 bsr 0x55d0 // 55d0 +} + 3c2c: 07cd br 0x3bc6 // 3bc6 + 3c2e: 0000 bkpt + 3c30: 20000234 .long 0x20000234 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003c34 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3c34: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3c36: 106c lrw r3, 0x200002f5 // 3c64 + 3c38: 8340 ld.b r2, (r3, 0x0) + 3c3a: 3a41 cmpnei r2, 1 + 3c3c: 0c04 bf 0x3c44 // 3c44 + 3c3e: 8362 ld.b r3, (r3, 0x2) + 3c40: 3b45 cmpnei r3, 5 + 3c42: 0c10 bf 0x3c62 // 3c62 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3c44: 1069 lrw r3, 0x20000234 // 3c68 + 3c46: 8359 ld.b r2, (r3, 0x19) + 3c48: 3a41 cmpnei r2, 1 + 3c4a: 080c bt 0x3c62 // 3c62 + if(SysTick_1ms - g_key.key_dug_tick >= 50){ + 3c4c: 1028 lrw r1, 0x200000b4 // 3c6c + 3c4e: 9140 ld.w r2, (r1, 0x0) + 3c50: 930b ld.w r0, (r3, 0x2c) + 3c52: 6082 subu r2, r0 + 3c54: 3031 movi r0, 49 + 3c56: 6480 cmphs r0, r2 + 3c58: 0805 bt 0x3c62 // 3c62 + g_key.key_dug_tick = SysTick_1ms; + 3c5a: 9140 ld.w r2, (r1, 0x0) + 3c5c: b34b st.w r2, (r3, 0x2c) + + /*打印触摸按键数值*/ + TouchKey_RS485_Printf(); + 3c5e: e3ffff03 bsr 0x3a64 // 3a64 + } + } +} + 3c62: 1490 pop r15 + 3c64: 200002f5 .long 0x200002f5 + 3c68: 20000234 .long 0x20000234 + 3c6c: 200000b4 .long 0x200000b4 + +Disassembly of section .text.Touch_Key_Task: + +00003c70 : +void Touch_Key_Task(void){ + 3c70: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3c72: 1133 lrw r1, 0x200000b4 // 3d3c + 3c74: 1173 lrw r3, 0x20000234 // 3d40 + 3c76: 9140 ld.w r2, (r1, 0x0) + 3c78: 930a ld.w r0, (r3, 0x28) + 3c7a: 6082 subu r2, r0 + 3c7c: 3a04 cmphsi r2, 5 + 3c7e: 0806 bt 0x3c8a // 3c8a + break; + } + } + } + + Touch_Key_Event_Handling(); + 3c80: e3ffff84 bsr 0x3b88 // 3b88 + + TouchKey_Set_Interface_Task(); + 3c84: e3ffffd8 bsr 0x3c34 // 3c34 + +} + 3c88: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3c8a: 9140 ld.w r2, (r1, 0x0) + 3c8c: b34a st.w r2, (r3, 0x28) + if(Key_Map != 0x00){ + 3c8e: 112e lrw r1, 0x20000660 // 3d44 + 3c90: 9140 ld.w r2, (r1, 0x0) + 3c92: 3a40 cmpnei r2, 0 + 3c94: 0c02 bf 0x3c98 // 3c98 + g_key.key_state = Key_Map; + 3c96: 9140 ld.w r2, (r1, 0x0) + 3c98: 118a lrw r4, 0x20000234 // 3d40 + TouchKey_Error_Scan(); + 3c9a: 6d93 mov r6, r4 + g_key.key_state = 0; + 3c9c: b349 st.w r2, (r3, 0x24) + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3c9e: 3500 movi r5, 0 + TouchKey_Error_Scan(); + 3ca0: e3ffff4a bsr 0x3b34 // 3b34 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3ca4: 11e9 lrw r7, 0x257 // 3d48 + switch (g_key.KEY_STA[i]) { + 3ca6: 8460 ld.b r3, (r4, 0x0) + 3ca8: 3b41 cmpnei r3, 1 + 3caa: 0c24 bf 0x3cf2 // 3cf2 + 3cac: 3b40 cmpnei r3, 0 + 3cae: 0c0a bf 0x3cc2 // 3cc2 + 3cb0: 3b42 cmpnei r3, 2 + 3cb2: 0c39 bf 0x3d24 // 3d24 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3cb4: 2500 addi r5, 1 + 3cb6: 7554 zextb r5, r5 + 3cb8: 3d45 cmpnei r5, 5 + 3cba: 2400 addi r4, 1 + 3cbc: 2601 addi r6, 2 + 3cbe: 0bf4 bt 0x3ca6 // 3ca6 + 3cc0: 07e0 br 0x3c80 // 3c80 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3cc2: 6c17 mov r0, r5 + 3cc4: e3ffff1a bsr 0x3af8 // 3af8 + 3cc8: 3841 cmpnei r0, 1 + 3cca: 080f bt 0x3ce8 // 3ce8 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3ccc: 8474 ld.b r3, (r4, 0x14) + 3cce: 3b01 cmphsi r3, 2 + 3cd0: 0804 bt 0x3cd8 // 3cd8 + g_key.delayCnt[i]++; + 3cd2: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3cd4: a474 st.b r3, (r4, 0x14) + 3cd6: 07ef br 0x3cb4 // 3cb4 + Controlled_Buzzer(0x01); + 3cd8: 3001 movi r0, 1 + 3cda: e0000763 bsr 0x4ba0 // 4ba0 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3cde: 3301 movi r3, 1 + 3ce0: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ce2: 3300 movi r3, 0 + 3ce4: ae6d st.h r3, (r6, 0x1a) + 3ce6: 07f7 br 0x3cd4 // 3cd4 + g_key.delayCnt[i] = 0; + 3ce8: 3300 movi r3, 0 + 3cea: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3cec: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3cee: a465 st.b r3, (r4, 0x5) + 3cf0: 07e2 br 0x3cb4 // 3cb4 + g_key.key_time[i]++; + 3cf2: 8e6d ld.h r3, (r6, 0x1a) + 3cf4: 2300 addi r3, 1 + 3cf6: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3cf8: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3cfa: ae6d st.h r3, (r6, 0x1a) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3cfc: 0c0c bf 0x3d14 // 3d14 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3cfe: 6c17 mov r0, r5 + 3d00: e3fffefc bsr 0x3af8 // 3af8 + 3d04: 3840 cmpnei r0, 0 + 3d06: 0bd7 bt 0x3cb4 // 3cb4 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3d08: 3301 movi r3, 1 + 3d0a: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3d0c: 3300 movi r3, 0 + 3d0e: ae6d st.h r3, (r6, 0x1a) + g_key.KEY_STA[i] = KEY_STA_S0; + 3d10: a460 st.b r3, (r4, 0x0) + 3d12: 07d1 br 0x3cb4 // 3cb4 + g_key.KEY_STA[i] = KEY_STA_S2; + 3d14: 3302 movi r3, 2 + 3d16: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3d18: 3300 movi r3, 0 + 3d1a: ae6d st.h r3, (r6, 0x1a) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3d1c: 3303 movi r3, 3 + 3d1e: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3d20: 3302 movi r3, 2 + 3d22: 07e6 br 0x3cee // 3cee + g_key.key_longPress[i] = KEY_VAL_NOT; + 3d24: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3d26: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3d28: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3d2a: e3fffee7 bsr 0x3af8 // 3af8 + 3d2e: 3840 cmpnei r0, 0 + 3d30: 0bc2 bt 0x3cb4 // 3cb4 + g_key.KEY_STA[i] = KEY_STA_S0; + 3d32: 3300 movi r3, 0 + 3d34: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3d36: 3304 movi r3, 4 + 3d38: 07db br 0x3cee // 3cee + 3d3a: 0000 bkpt + 3d3c: 200000b4 .long 0x200000b4 + 3d40: 20000234 .long 0x20000234 + 3d44: 20000660 .long 0x20000660 + 3d48: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003d4c : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3d4c: 6040 addu r1, r0 + U8_T data_sum = 0; + 3d4e: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3d54: 6cce nor r3, r3 + 3d56: 740c zextb r0, r3 +} + 3d58: 783c jmp r15 + data_sum += data[i]; + 3d5a: 8040 ld.b r2, (r0, 0x0) + 3d5c: 60c8 addu r3, r2 + 3d5e: 74cc zextb r3, r3 + 3d60: 2000 addi r0, 1 + 3d62: 07f7 br 0x3d50 // 3d50 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003d64 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3d64: 14d2 push r4-r5, r15 + 3d66: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3d68: 5992 addi r4, r1, 5 + 3d6a: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3d6c: 3331 movi r3, 49 + 3d6e: 650c cmphs r3, r4 + 3d70: 0803 bt 0x3d76 // 3d76 + para_len = 44; + 3d72: 312c movi r1, 44 + reply_len = 50; + 3d74: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3d76: 3300 movi r3, 0 + 3d78: 2b50 subi r3, 81 + 3d7a: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3d7e: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3d82: 1073 lrw r3, 0x20000264 // 3dcc + 3d84: 8360 ld.b r3, (r3, 0x0) + 3d86: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3d8a: 3300 movi r3, 0 + 3d8c: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3d96: 3200 movi r2, 0 + 3d98: 60f8 addu r3, r14 + 3d9a: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3d9c: 6c53 mov r1, r4 + 3d9e: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3da0: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3da2: e3ffffd5 bsr 0x3d4c // 3d4c + +// MCU485_SendData(send_data,reply_len); + UARTTransmit(UART2,send_data,reply_len); + 3da6: 106b lrw r3, 0x20000038 // 3dd0 + 3da8: 6c93 mov r2, r4 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3daa: dc0e0003 st.b r0, (r14, 0x3) + UARTTransmit(UART2,send_data,reply_len); + 3dae: 6c7b mov r1, r14 + 3db0: 9300 ld.w r0, (r3, 0x0) + 3db2: e3fff189 bsr 0x20c4 // 20c4 + +} + 3db6: 140f addi r14, r14, 60 + 3db8: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3dba: 6c8f mov r2, r3 + 3dbc: 58ac addu r5, r0, r3 + 3dbe: 60b8 addu r2, r14 + 3dc0: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 3dca: 0000 bkpt + 3dcc: 20000264 .long 0x20000264 + 3dd0: 20000038 .long 0x20000038 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003dd4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3dd4: 14d4 push r4-r7, r15 + 3dd6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3dd8: 80a0 ld.b r5, (r0, 0x0) + 3dda: 5dc3 subi r6, r5, 1 + 3ddc: 7598 zextb r6, r6 + 3dde: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3de0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3de2: 0834 bt 0x3e4a // 3e4a + 3de4: 1125 lrw r1, 0x20000204 // 3e78 + 3de6: 350b movi r5, 11 + 3de8: 5862 addi r3, r0, 1 + 3dea: 6140 addu r5, r0 + 3dec: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3e0a: 8479 ld.b r3, (r4, 0x19) + 3e0c: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3e0e: 847a ld.b r3, (r4, 0x1a) + 3e10: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3e12: 847b ld.b r3, (r4, 0x1b) + 3e14: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3e16: 847c ld.b r3, (r4, 0x1c) + 3e18: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e1a: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3e1c: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e1e: 1037 lrw r1, 0x20000204 // 3e78 + touch_para.longpress_time = para[29]; + 3e20: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e22: e00002fb bsr 0x4418 // 4418 + + if(rev == 0x00){ + 3e26: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e28: 6d43 mov r5, r0 + if(rev == 0x00){ + 3e2a: 0805 bt 0x3e34 // 3e34 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3e2c: 1033 lrw r1, 0x20000204 // 3e78 + 3e2e: 6c1b mov r0, r6 + 3e30: e0000268 bsr 0x4300 // 4300 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 3e34: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 3e36: 3102 movi r1, 2 + 3e38: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 3e3a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 3e3e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 3e42: e3ffff91 bsr 0x3d64 // 3d64 +} + 3e46: 1401 addi r14, r14, 4 + 3e48: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 3e4a: 3d40 cmpnei r5, 0 + 3e4c: 0c03 bf 0x3e52 // 3e52 + rev = 0x01; + 3e4e: 3501 movi r5, 1 + 3e50: 07f2 br 0x3e34 // 3e34 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 3e52: 8061 ld.b r3, (r0, 0x1) + 3e54: 104a lrw r2, 0x6d90 // 3e7c + 3e56: 102b lrw r1, 0x7283 // 3e80 + 3e58: 3000 movi r0, 0 + 3e5a: e3fffdb5 bsr 0x39c4 // 39c4 + if( (para[1] > 0) && (para[1] <= 3) ){ + 3e5e: 8461 ld.b r3, (r4, 0x1) + 3e60: 2b00 subi r3, 1 + 3e62: 74cc zextb r3, r3 + 3e64: 3b02 cmphsi r3, 3 + 3e66: 0bf4 bt 0x3e4e // 3e4e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 3e68: 1047 lrw r2, 0x200002f5 // 3e84 + g_eeprom.key_sens_level = para[1] - 1; + 3e6a: 1008 lrw r0, 0x20000264 // 3e88 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 3e6c: a266 st.b r3, (r2, 0x6) + g_eeprom.key_sens_level = para[1] - 1; + 3e6e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 3e70: e00001c2 bsr 0x41f4 // 41f4 + 3e74: 07e0 br 0x3e34 // 3e34 + 3e76: 0000 bkpt + 3e78: 20000204 .long 0x20000204 + 3e7c: 00006d90 .long 0x00006d90 + 3e80: 00007283 .long 0x00007283 + 3e84: 200002f5 .long 0x200002f5 + 3e88: 20000264 .long 0x20000264 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00003e8c : +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 3e8c: 14d2 push r4-r5, r15 + 3e8e: 142d subi r14, r14, 52 + 3e90: 6d03 mov r4, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 3e92: 3232 movi r2, 50 + 3e94: 3100 movi r1, 0 + 3e96: 6c3b mov r0, r14 + 3e98: e3ffed66 bsr 0x1964 // 1964 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 3e9c: 8400 ld.b r0, (r4, 0x0) + reply_buff[reply_len++] = 0x02; + 3e9e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 3ea0: 3840 cmpnei r0, 0 + reply_buff[reply_len++] = 0x02; + 3ea2: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 3ea6: 082d bt 0x3f00 // 3f00 + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 3ea8: 1170 lrw r3, 0x20000264 // 3f68 + 3eaa: 8365 ld.b r3, (r3, 0x5) + 3eac: 2300 addi r3, 1 + 3eae: 1130 lrw r1, 0x20000204 // 3f6c + 3eb0: 6c87 mov r2, r1 + 3eb2: dc6e0001 st.b r3, (r14, 0x1) + 3eb6: 6cfb mov r3, r14 + + for(i=0;i> 8; + 3ebe: 4c88 lsri r4, r4, 8 + 3ec0: a383 st.b r4, (r3, 0x3) + for(i=0;i> 8; + 3eca: 4c88 lsri r4, r4, 8 + 3ecc: a38f st.b r4, (r3, 0xf) + 3ece: 2101 addi r1, 2 + 3ed0: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 3ed4: 8260 ld.b r3, (r2, 0x0) + 3ed6: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 3eda: 8261 ld.b r3, (r2, 0x1) + 3edc: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 3ee0: 8262 ld.b r3, (r2, 0x2) + 3ee2: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 3ee6: 8263 ld.b r3, (r2, 0x3) + 3ee8: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 3eec: 8278 ld.b r3, (r2, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 3eee: dc6e001e st.b r3, (r14, 0x1e) + 3ef2: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 3ef4: 7445 zexth r1, r1 + 3ef6: 6c3b mov r0, r14 + 3ef8: e3ffff36 bsr 0x3d64 // 3d64 +} + 3efc: 140d addi r14, r14, 52 + 3efe: 1492 pop r4-r5, r15 + }else if(para[0] <= 3){ + 3f00: 3803 cmphsi r0, 4 + 3f02: 0831 bt 0x3f64 // 3f64 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 3f04: 2800 subi r0, 1 + 3f06: 7400 zextb r0, r0 + 3f08: 1039 lrw r1, 0x20000204 // 3f6c + 3f0a: e0000231 bsr 0x436c // 436c + if(rev != 0x00){ + 3f0e: 3840 cmpnei r0, 0 + 3f10: 10b7 lrw r5, 0x20000204 // 3f6c + 3f12: 0c07 bf 0x3f20 // 3f20 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 3f14: 8400 ld.b r0, (r4, 0x0) + 3f16: 2800 subi r0, 1 + 3f18: 7400 zextb r0, r0 + 3f1a: 6c57 mov r1, r5 + 3f1c: e00002d2 bsr 0x44c0 // 44c0 + reply_buff[reply_len++] = para[0]; + 3f20: 8460 ld.b r3, (r4, 0x0) + 3f22: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 3f2a: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 3f2c: 8902 ld.h r0, (r1, 0x4) + 3f2e: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 3f32: 4808 lsri r0, r0, 8 + 3f34: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 3f3e: 4808 lsri r0, r0, 8 + 3f40: a30f st.b r0, (r3, 0xf) + 3f42: 2101 addi r1, 2 + 3f44: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 3f48: 8560 ld.b r3, (r5, 0x0) + 3f4a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 3f4e: 8561 ld.b r3, (r5, 0x1) + 3f50: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 3f54: 8562 ld.b r3, (r5, 0x2) + 3f56: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 3f5a: 8563 ld.b r3, (r5, 0x3) + 3f5c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 3f60: 8578 ld.b r3, (r5, 0x18) + 3f62: 07c6 br 0x3eee // 3eee + reply_buff[reply_len++] = 0x00; + 3f64: 3102 movi r1, 2 + 3f66: 07c7 br 0x3ef4 // 3ef4 + 3f68: 20000264 .long 0x20000264 + 3f6c: 20000204 .long 0x20000204 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00003f70 : +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 3f70: 14d0 push r15 + 3f72: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 3f74: 8060 ld.b r3, (r0, 0x0) + 3f76: 3b41 cmpnei r3, 1 + 3f78: 0810 bt 0x3f98 // 3f98 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 3f7a: 106b lrw r3, 0x20000234 // 3fa4 + 3f7c: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 3f7e: a359 st.b r2, (r3, 0x19) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 3f80: 3303 movi r3, 3 + 3f82: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 3f86: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 3f88: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 3f8a: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 3f8c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 3f90: e3fffeea bsr 0x3d64 // 3d64 +} + 3f94: 1401 addi r14, r14, 4 + 3f96: 1490 pop r15 + }else if(para[0] == 0x02){ + 3f98: 3b42 cmpnei r3, 2 + 3f9a: 0bf3 bt 0x3f80 // 3f80 + g_key.key_dug_printf = 0x00; + 3f9c: 1062 lrw r3, 0x20000234 // 3fa4 + 3f9e: 3200 movi r2, 0 + 3fa0: 07ef br 0x3f7e // 3f7e + 3fa2: 0000 bkpt + 3fa4: 20000234 .long 0x20000234 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00003fa8 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 3fa8: 14d0 push r15 + 3faa: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=0; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3fac: 1150 lrw r2, 0x200007d2 // 406c + reply_buff[reply_len++] = 0x04; //CMD + 3fae: 3304 movi r3, 4 + 3fb0: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3fb4: 8a60 ld.h r3, (r2, 0x0) + 3fb6: 4b68 lsri r3, r3, 8 + 3fb8: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 3fbc: 8a60 ld.h r3, (r2, 0x0) + 3fbe: dc6e0002 st.b r3, (r14, 0x2) + reply_buff[reply_len++] = sampling_data0[i]>>8; + reply_buff[reply_len++] = sampling_data0[i]&0xff; + reply_buff[reply_len++] = baseline_data0[i]>>8; + reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 3fc2: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 3fc4: 116b lrw r3, 0x2000052c // 4070 + 3fc6: 8b20 ld.h r1, (r3, 0x0) + 3fc8: 4928 lsri r1, r1, 8 + 3fca: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 3fce: 8b20 ld.h r1, (r3, 0x0) + 3fd0: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3fd4: 8a28 ld.h r1, (r2, 0x10) + 3fd6: 4928 lsri r1, r1, 8 + 3fd8: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 3fdc: 8a28 ld.h r1, (r2, 0x10) + 3fde: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 3fe2: 8b28 ld.h r1, (r3, 0x10) + 3fe4: 4928 lsri r1, r1, 8 + 3fe6: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 3fea: 8b28 ld.h r1, (r3, 0x10) + 3fec: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3ff0: 8a29 ld.h r1, (r2, 0x12) + 3ff2: 4928 lsri r1, r1, 8 + 3ff4: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 3ff8: 8a29 ld.h r1, (r2, 0x12) + 3ffa: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 3ffe: 8b29 ld.h r1, (r3, 0x12) + 4000: 4928 lsri r1, r1, 8 + 4002: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4006: 8b29 ld.h r1, (r3, 0x12) + 4008: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 400c: 8a2e ld.h r1, (r2, 0x1c) + 400e: 4928 lsri r1, r1, 8 + 4010: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4014: 8a2e ld.h r1, (r2, 0x1c) + 4016: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 401a: 8b2e ld.h r1, (r3, 0x1c) + 401c: 4928 lsri r1, r1, 8 + 401e: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4022: 8b2e ld.h r1, (r3, 0x1c) + 4024: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4028: 8a2d ld.h r1, (r2, 0x1a) + 402a: 4928 lsri r1, r1, 8 + 402c: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4030: 8a2d ld.h r1, (r2, 0x1a) + 4032: dc2e0012 st.b r1, (r14, 0x12) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4036: 8b2d ld.h r1, (r3, 0x1a) + 4038: 4928 lsri r1, r1, 8 + 403a: dc2e0013 st.b r1, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 403e: 8b2d ld.h r1, (r3, 0x1a) + 4040: dc2e0014 st.b r1, (r14, 0x14) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4044: 8a2c ld.h r1, (r2, 0x18) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4046: 8a4c ld.h r2, (r2, 0x18) + 4048: dc4e0016 st.b r2, (r14, 0x16) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 404c: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 404e: 8b4c ld.h r2, (r3, 0x18) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4050: dc2e0015 st.b r1, (r14, 0x15) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4054: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4056: 8b6c ld.h r3, (r3, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4058: 3119 movi r1, 25 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 405a: dc4e0017 st.b r2, (r14, 0x17) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 405e: dc6e0018 st.b r3, (r14, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4062: e3fffe81 bsr 0x3d64 // 3d64 +} + 4066: 140d addi r14, r14, 52 + 4068: 1490 pop r15 + 406a: 0000 bkpt + 406c: 200007d2 .long 0x200007d2 + 4070: 2000052c .long 0x2000052c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004074 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4074: 14d0 push r15 + 4076: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4078: 3305 movi r3, 5 + 407a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 407e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4080: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4082: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4084: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4088: e3fffe6e bsr 0x3d64 // 3d64 + 408c: 0400 br 0x408c // 408c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004090 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4090: 14d2 push r4-r5, r15 + 4092: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4094: 8060 ld.b r3, (r0, 0x0) + 4096: 32af movi r2, 175 + 4098: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 409a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 409c: 0c09 bf 0x40ae // 40ae + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 409e: 3000 movi r0, 0 + 40a0: 114b lrw r2, 0x6dac // 414c + 40a2: 112c lrw r1, 0x7293 // 4150 + 40a4: e3fffc90 bsr 0x39c4 // 39c4 + return 0x01; + 40a8: 3001 movi r0, 1 + break; + } + + + return 0; +} + 40aa: 1401 addi r14, r14, 4 + 40ac: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 40ae: 114a lrw r2, 0x20000264 // 4154 + 40b0: 8061 ld.b r3, (r0, 0x1) + 40b2: 8240 ld.b r2, (r2, 0x0) + 40b4: 64ca cmpne r2, r3 + 40b6: 0c08 bf 0x40c6 // 40c6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 40b8: 3000 movi r0, 0 + 40ba: 1145 lrw r2, 0x6dac // 414c + 40bc: 1127 lrw r1, 0x72a5 // 4158 + 40be: e3fffc83 bsr 0x39c4 // 39c4 + return 0x02; + 40c2: 3002 movi r0, 2 + 40c4: 07f3 br 0x40aa // 40aa + if(data[2] != len){ + 40c6: 8062 ld.b r3, (r0, 0x2) + 40c8: 750d zexth r4, r3 + 40ca: 6452 cmpne r4, r1 + 40cc: 0c09 bf 0x40de // 40de + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 40ce: b820 st.w r1, (r14, 0x0) + 40d0: 105f lrw r2, 0x6dac // 414c + 40d2: 1123 lrw r1, 0x72b6 // 415c + 40d4: 3000 movi r0, 0 + 40d6: e3fffc77 bsr 0x39c4 // 39c4 + return 0x03; + 40da: 3003 movi r0, 3 + 40dc: 07e7 br 0x40aa // 40aa + if(data[len-1] != 0xFA){ + 40de: 60c0 addu r3, r0 + 40e0: 2b00 subi r3, 1 + 40e2: 8360 ld.b r3, (r3, 0x0) + 40e4: 32fa movi r2, 250 + 40e6: 648e cmpne r3, r2 + 40e8: 0c07 bf 0x40f6 // 40f6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 40ea: 1059 lrw r2, 0x6dac // 414c + 40ec: 103d lrw r1, 0x72c9 // 4160 + 40ee: 3000 movi r0, 0 + 40f0: e3fffc6a bsr 0x39c4 // 39c4 + 40f4: 07f3 br 0x40da // 40da + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 40f6: 5c23 subi r1, r4, 1 + 40f8: 7445 zexth r1, r1 + 40fa: e3fffe29 bsr 0x3d4c // 3d4c + 40fe: 3840 cmpnei r0, 0 + 4100: 0806 bt 0x410c // 410c + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 4102: 1053 lrw r2, 0x6dac // 414c + 4104: 1038 lrw r1, 0x72d9 // 4164 + 4106: e3fffc5f bsr 0x39c4 // 39c4 + 410a: 07e8 br 0x40da // 40da + switch(data[4]){ + 410c: 8504 ld.b r0, (r5, 0x4) + 410e: 2800 subi r0, 1 + 4110: 3804 cmphsi r0, 5 + 4112: 080c bt 0x412a // 412a + 4114: 5c37 subi r1, r4, 6 + 4116: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4118: 7445 zexth r1, r1 + switch(data[4]){ + 411a: e3ffe5f1 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 411e: 0803 .short 0x0803 + 4120: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 4124: 6c17 mov r0, r5 + 4126: e3fffe57 bsr 0x3dd4 // 3dd4 + return 0; + 412a: 3000 movi r0, 0 + 412c: 07bf br 0x40aa // 40aa + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 412e: 6c17 mov r0, r5 + 4130: e3fffeae bsr 0x3e8c // 3e8c + 4134: 07fb br 0x412a // 412a + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4136: 6c17 mov r0, r5 + 4138: e3ffff1c bsr 0x3f70 // 3f70 + 413c: 07f7 br 0x412a // 412a + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 413e: 6c17 mov r0, r5 + 4140: e3ffff34 bsr 0x3fa8 // 3fa8 + 4144: 07f3 br 0x412a // 412a + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4146: 6c17 mov r0, r5 + 4148: e3ffff96 bsr 0x4074 // 4074 + 414c: 00006dac .long 0x00006dac + 4150: 00007293 .long 0x00007293 + 4154: 20000264 .long 0x20000264 + 4158: 000072a5 .long 0x000072a5 + 415c: 000072b6 .long 0x000072b6 + 4160: 000072c9 .long 0x000072c9 + 4164: 000072d9 .long 0x000072d9 + +Disassembly of section .text.EEPROM_CheckSum: + +00004168 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4168: 6cc3 mov r3, r0 + 416a: 6040 addu r1, r0 + U8_T data_sum = 0; + 416c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4172: 783c jmp r15 + data_sum += data[i]; + 4174: 8340 ld.b r2, (r3, 0x0) + 4176: 6008 addu r0, r2 + 4178: 7400 zextb r0, r0 + 417a: 2300 addi r3, 1 + 417c: 07f9 br 0x416e // 416e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004180 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4180: 14d1 push r4, r15 + 4182: 143b subi r14, r14, 108 + 4184: 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)); + 4186: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4188: 3264 movi r2, 100 + 418a: 3100 movi r1, 0 + 418c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 418e: b860 st.w r3, (r14, 0x0) + 4190: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4194: e3ffebe8 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4198: 6cbb mov r2, r14 + 419a: 3104 movi r1, 4 + 419c: 1014 lrw r0, 0x10000020 // 41ec + 419e: e3fff441 bsr 0x2a20 // 2a20 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 41a2: d84e0000 ld.b r2, (r14, 0x0) + 41a6: 33a6 movi r3, 166 + 41a8: 64ca cmpne r2, r3 + 41aa: 0c04 bf 0x41b2 // 41b2 + return 0x00; + } + } + } + + return 0x01; + 41ac: 3001 movi r0, 1 +} + 41ae: 141b addi r14, r14, 108 + 41b0: 1491 pop r4, r15 + read_len |= read_info[1]; + 41b2: d82e0002 ld.b r1, (r14, 0x2) + 41b6: d86e0001 ld.b r3, (r14, 0x1) + 41ba: 4128 lsli r1, r1, 8 + 41bc: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 41be: 3364 movi r3, 100 + 41c0: 644c cmphs r3, r1 + 41c2: 0ff5 bf 0x41ac // 41ac + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 41c4: 1a02 addi r2, r14, 8 + 41c6: 100b lrw r0, 0x10000024 // 41f0 + 41c8: e3fff42c bsr 0x2a20 // 2a20 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 41cc: 3106 movi r1, 6 + 41ce: 1802 addi r0, r14, 8 + 41d0: e3ffffcc bsr 0x4168 // 4168 + 41d4: d86e0003 ld.b r3, (r14, 0x3) + 41d8: 640e cmpne r3, r0 + 41da: 0be9 bt 0x41ac // 41ac + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 41dc: 3206 movi r2, 6 + 41de: 1902 addi r1, r14, 8 + 41e0: 6c13 mov r0, r4 + 41e2: e3ffec05 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 41e6: 3000 movi r0, 0 + 41e8: 07e3 br 0x41ae // 41ae + 41ea: 0000 bkpt + 41ec: 10000020 .long 0x10000020 + 41f0: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000041f4 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 41f4: 14d0 push r15 + 41f6: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 41f8: 3300 movi r3, 0 + 41fa: 2b59 subi r3, 90 + 41fc: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4200: 3306 movi r3, 6 + 4202: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4206: 3300 movi r3, 0 + 4208: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 420c: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 420e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4210: 3206 movi r2, 6 + 4212: 6c0f mov r0, r3 + 4214: e3ffebec bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4218: 3106 movi r1, 6 + 421a: e3ffffa7 bsr 0x4168 // 4168 + 421e: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 4222: 6cbb mov r2, r14 + 4224: 310a movi r1, 10 + 4226: 1004 lrw r0, 0x10000020 // 4234 + 4228: e3fff3ac bsr 0x2980 // 2980 + + return 0; +} + 422c: 3000 movi r0, 0 + 422e: 141b addi r14, r14, 108 + 4230: 1490 pop r15 + 4232: 0000 bkpt + 4234: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004238 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4238: 14d1 push r4, r15 + 423a: 1421 subi r14, r14, 4 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 423c: 8062 ld.b r3, (r0, 0x2) + 423e: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4240: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4242: 0c03 bf 0x4248 // 4248 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4244: 3309 movi r3, 9 + 4246: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4248: 8442 ld.b r2, (r4, 0x2) + 424a: 1032 lrw r1, 0x72e8 // 4290 + 424c: 3000 movi r0, 0 + 424e: e3fffbbb bsr 0x39c4 // 39c4 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4252: 8463 ld.b r3, (r4, 0x3) + 4254: 3b02 cmphsi r3, 3 + 4256: 0c03 bf 0x425c // 425c + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4258: 3300 movi r3, 0 + 425a: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 425c: 8464 ld.b r3, (r4, 0x4) + 425e: 3b01 cmphsi r3, 2 + 4260: 0c03 bf 0x4266 // 4266 + { + info->backlight_en = 0x01; + 4262: 3301 movi r3, 1 + 4264: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag >= 0x02) + 4266: 8461 ld.b r3, (r4, 0x1) + 4268: 3b01 cmphsi r3, 2 + 426a: 0c03 bf 0x4270 // 4270 + { + info->pipe_flag = 0x00; + 426c: 3300 movi r3, 0 + 426e: a461 st.b r3, (r4, 0x1) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4270: 8465 ld.b r3, (r4, 0x5) + 4272: 3b02 cmphsi r3, 3 + 4274: 0c03 bf 0x427a // 427a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4276: 3301 movi r3, 1 + 4278: a465 st.b r3, (r4, 0x5) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info save_curr %d backlight_en:%d key_sens_level:%d",info->temp_select,info->backlight_en,info->key_sens_level); + 427a: 8425 ld.b r1, (r4, 0x5) + 427c: b820 st.w r1, (r14, 0x0) + 427e: 8464 ld.b r3, (r4, 0x4) + 4280: 8443 ld.b r2, (r4, 0x3) + 4282: 1025 lrw r1, 0x72ff // 4294 + 4284: 3000 movi r0, 0 + 4286: e3fffb9f bsr 0x39c4 // 39c4 + + return 0; +} + 428a: 3000 movi r0, 0 + 428c: 1401 addi r14, r14, 4 + 428e: 1491 pop r4, r15 + 4290: 000072e8 .long 0x000072e8 + 4294: 000072ff .long 0x000072ff + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004298 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x00; + 4298: 3300 movi r3, 0 + 429a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 429c: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 429e: 3309 movi r3, 9 + 42a0: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 42a2: 3300 movi r3, 0 + 42a4: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x01; + 42a6: 3301 movi r3, 1 + 42a8: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 42aa: a065 st.b r3, (r0, 0x5) +} + 42ac: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +000042b0 : +void EEPROM_Init(void){ + 42b0: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 42b2: 1071 lrw r3, 0x20000060 // 42f4 + 42b4: 3201 movi r2, 1 + 42b6: 9360 ld.w r3, (r3, 0x0) + 42b8: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 42ba: 9345 ld.w r2, (r3, 0x14) + 42bc: 3aa1 bseti r2, 1 + 42be: 3ab0 bseti r2, 16 + 42c0: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 42c2: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 42c4: 108d lrw r4, 0x20000264 // 42f8 + delay_nms(10); + 42c6: e3fff4c1 bsr 0x2c48 // 2c48 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 42ca: 6c13 mov r0, r4 + 42cc: e3ffff5a bsr 0x4180 // 4180 + if(rev == 0x00){ + 42d0: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 42d2: 6c13 mov r0, r4 + if(rev == 0x00){ + 42d4: 0804 bt 0x42dc // 42dc + EEPROM_Validate_ParaInfo(&g_eeprom); + 42d6: e3ffffb1 bsr 0x4238 // 4238 +} + 42da: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 42dc: e3ffffde bsr 0x4298 // 4298 + EEPROM_WriteParaInfo(&g_eeprom); + 42e0: 6c13 mov r0, r4 + 42e2: e3ffff89 bsr 0x41f4 // 41f4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 42e6: 8441 ld.b r2, (r4, 0x1) + 42e8: 1025 lrw r1, 0x733a // 42fc + 42ea: 3000 movi r0, 0 + 42ec: e3fffb6c bsr 0x39c4 // 39c4 +} + 42f0: 07f5 br 0x42da // 42da + 42f2: 0000 bkpt + 42f4: 20000060 .long 0x20000060 + 42f8: 20000264 .long 0x20000264 + 42fc: 0000733a .long 0x0000733a + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004300 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4300: 14d2 push r4-r5, r15 + 4302: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4304: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4306: 6d47 mov r5, r1 + switch(level){ + 4308: 0c07 bf 0x4316 // 4316 + 430a: 3840 cmpnei r0, 0 + 430c: 0c27 bf 0x435a // 435a + 430e: 3842 cmpnei r0, 2 + 4310: 0c23 bf 0x4356 // 4356 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4312: 3001 movi r0, 1 + 4314: 041f br 0x4352 // 4352 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4316: 1093 lrw r4, 0x10000180 // 4360 + break; + } + + memset(save_para,0,sizeof(save_para)); + 4318: 323c movi r2, 60 + 431a: 3100 movi r1, 0 + 431c: 6c3b mov r0, r14 + 431e: e3ffeb23 bsr 0x1964 // 1964 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4322: 3300 movi r3, 0 + 4324: 2b59 subi r3, 90 + 4326: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 432a: 331c movi r3, 28 + 432c: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4330: 1b01 addi r3, r14, 4 + 4332: 321c movi r2, 28 + 4334: 6c0f mov r0, r3 + 4336: 6c57 mov r1, r5 + 4338: e3ffeb5a bsr 0x19ec // 19ec <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 433c: 311c movi r1, 28 + 433e: e3ffff15 bsr 0x4168 // 4168 + 4342: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4346: 6cbb mov r2, r14 + 4348: 6c13 mov r0, r4 + 434a: 3120 movi r1, 32 + 434c: e3fff31a bsr 0x2980 // 2980 + + return 0; + 4350: 3000 movi r0, 0 +} + 4352: 140f addi r14, r14, 60 + 4354: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4356: 1084 lrw r4, 0x10000200 // 4364 + break; + 4358: 07e0 br 0x4318 // 4318 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 435a: 1084 lrw r4, 0x10000100 // 4368 + 435c: 07de br 0x4318 // 4318 + 435e: 0000 bkpt + 4360: 10000180 .long 0x10000180 + 4364: 10000200 .long 0x10000200 + 4368: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +0000436c : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 436c: 14d2 push r4-r5, r15 + 436e: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4370: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4372: 6d07 mov r4, r1 + switch(level){ + 4374: 0c3a bf 0x43e8 // 43e8 + 4376: 3840 cmpnei r0, 0 + 4378: 0c05 bf 0x4382 // 4382 + 437a: 3842 cmpnei r0, 2 + 437c: 0c34 bf 0x43e4 // 43e4 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Error:%d",read_info,4); + } + + return 0x01; + 437e: 3001 movi r0, 1 + 4380: 0430 br 0x43e0 // 43e0 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4382: 11a1 lrw r5, 0x10000100 // 4404 + memset(read_info,0,sizeof(read_info)); + 4384: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4386: 3234 movi r2, 52 + 4388: 3100 movi r1, 0 + 438a: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 438c: b860 st.w r3, (r14, 0x0) + 438e: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4392: e3ffeae9 bsr 0x1964 // 1964 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4396: 6cbb mov r2, r14 + 4398: 3104 movi r1, 4 + 439a: 6c17 mov r0, r5 + 439c: e3fff342 bsr 0x2a20 // 2a20 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 43a0: d84e0000 ld.b r2, (r14, 0x0) + 43a4: 33a6 movi r3, 166 + 43a6: 64ca cmpne r2, r3 + 43a8: 0827 bt 0x43f6 // 43f6 + read_len |= read_info[1]; + 43aa: d84e0002 ld.b r2, (r14, 0x2) + 43ae: d86e0001 ld.b r3, (r14, 0x1) + 43b2: 4248 lsli r2, r2, 8 + 43b4: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 43b6: 3a5c cmpnei r2, 28 + 43b8: 081a bt 0x43ec // 43ec + temp_addr += EEPROM_Offset_Data; + 43ba: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 43bc: 1a02 addi r2, r14, 8 + 43be: 311c movi r1, 28 + 43c0: e3fff330 bsr 0x2a20 // 2a20 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 43c4: 311c movi r1, 28 + 43c6: 1802 addi r0, r14, 8 + 43c8: e3fffed0 bsr 0x4168 // 4168 + 43cc: d86e0003 ld.b r3, (r14, 0x3) + 43d0: 640e cmpne r3, r0 + 43d2: 0bd6 bt 0x437e // 437e + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 43d4: 321c movi r2, 28 + 43d6: 1902 addi r1, r14, 8 + 43d8: 6c13 mov r0, r4 + 43da: e3ffeb09 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 43de: 3000 movi r0, 0 +} + 43e0: 140f addi r14, r14, 60 + 43e2: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 43e4: 10a9 lrw r5, 0x10000200 // 4408 + break; + 43e6: 07cf br 0x4384 // 4384 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 43e8: 10a9 lrw r5, 0x10000180 // 440c + 43ea: 07cd br 0x4384 // 4384 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 43ec: 1029 lrw r1, 0x7353 // 4410 + 43ee: 3000 movi r0, 0 + 43f0: e3fffaea bsr 0x39c4 // 39c4 + 43f4: 07c5 br 0x437e // 437e + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Error:%d",read_info,4); + 43f6: 3304 movi r3, 4 + 43f8: 6cbb mov r2, r14 + 43fa: 1027 lrw r1, 0x7375 // 4414 + 43fc: 3000 movi r0, 0 + 43fe: e3fffae9 bsr 0x39d0 // 39d0 + 4402: 07be br 0x437e // 437e + 4404: 10000100 .long 0x10000100 + 4408: 10000200 .long 0x10000200 + 440c: 10000180 .long 0x10000180 + 4410: 00007353 .long 0x00007353 + 4414: 00007375 .long 0x00007375 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00004418 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4418: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 441a: 8163 ld.b r3, (r1, 0x3) + 441c: 2b00 subi r3, 1 + 441e: 74cc zextb r3, r3 + 4420: 3263 movi r2, 99 + 4422: 64c8 cmphs r2, r3 + 4424: 0845 bt 0x44ae // 44ae + para->base_speed = 20; //默认参数 - 20 + 4426: 3314 movi r3, 20 + 4428: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 442a: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 442c: 8140 ld.b r2, (r1, 0x0) + 442e: 2a00 subi r2, 1 + 4430: 7488 zextb r2, r2 + 4432: 3a09 cmphsi r2, 10 + 4434: 0c04 bf 0x443c // 443c + para->press_debounce = 6; //默认参数 - 6 + 4436: 3306 movi r3, 6 + 4438: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 443a: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 443c: 8141 ld.b r2, (r1, 0x1) + 443e: 2a00 subi r2, 1 + 4440: 7488 zextb r2, r2 + 4442: 3a09 cmphsi r2, 10 + 4444: 0c04 bf 0x444c // 444c + para->release_debounce = 5; //默认参数 - 5 + 4446: 3305 movi r3, 5 + 4448: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 444a: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 444c: 8142 ld.b r2, (r1, 0x2) + 444e: 2a00 subi r2, 1 + 4450: 7488 zextb r2, r2 + 4452: 3463 movi r4, 99 + 4454: 6490 cmphs r4, r2 + 4456: 0804 bt 0x445e // 445e + para->multiTimes_filt = 40; //默认参数 - 40 + 4458: 3328 movi r3, 40 + 445a: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 445c: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 445e: 9146 ld.w r2, (r1, 0x18) + 4460: 2a00 subi r2, 1 + 4462: 3a1f cmphsi r2, 32 + 4464: 0c04 bf 0x446c // 446c + para->longpress_time = 8; //默认参数 - 8 + 4466: 3308 movi r3, 8 + 4468: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 446a: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 446c: 34a0 movi r4, 160 + rev = 0x01; + } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 446e: 36f5 movi r6, 245 + 4470: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4472: 10f3 lrw r7, 0x3de // 44bc + 4474: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 4476: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4478: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 447a: 8aa0 ld.h r5, (r2, 0x0) + 447c: 2d09 subi r5, 10 + 447e: 7555 zexth r5, r5 + 4480: 655c cmphs r7, r5 + 4482: 0803 bt 0x4488 // 4488 + para->senprd[i] = 320; //默认参数 - 320 + 4484: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 4486: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4488: 8aa5 ld.h r5, (r2, 0xa) + 448a: 2d13 subi r5, 20 + 448c: 7555 zexth r5, r5 + 448e: 6558 cmphs r6, r5 + 4490: 080a bt 0x44a4 // 44a4 + + switch(level){ + 4492: 3841 cmpnei r0, 1 + 4494: 0c11 bf 0x44b6 // 44b6 + 4496: 3840 cmpnei r0, 0 + 4498: 0c0d bf 0x44b2 // 44b2 + 449a: 3842 cmpnei r0, 2 + 449c: 080d bt 0x44b6 // 44b6 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 449e: 333c movi r3, 60 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 44a0: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 44a2: 3301 movi r3, 1 + 44a4: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 44aa: 6c0f mov r0, r3 + 44ac: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 44ae: 3300 movi r3, 0 + 44b0: 07be br 0x442c // 442c + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 44b2: 338c movi r3, 140 + 44b4: 07f6 br 0x44a0 // 44a0 + para->triggerlevel[i] = 100; + 44b6: 3364 movi r3, 100 + 44b8: 07f4 br 0x44a0 // 44a0 + 44ba: 0000 bkpt + 44bc: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000044c0 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44c0: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 44c2: 3314 movi r3, 20 + 44c4: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 44c6: 3306 movi r3, 6 + 44c8: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 44ca: 3305 movi r3, 5 + 44cc: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 44ce: 3328 movi r3, 40 + 44d0: a162 st.b r3, (r1, 0x2) + para->longpress_time = 8; //默认参数 - 8 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 44d2: 32a0 movi r2, 160 + para->longpress_time = 8; //默认参数 - 8 + 44d4: 3308 movi r3, 8 + 44d6: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 44d8: 4241 lsli r2, r2, 1 + 44da: 596e addi r3, r1, 4 + 44dc: 210d addi r1, 14 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 44de: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 44e0: ab40 st.h r2, (r3, 0x0) + switch(level){ + 44e2: 0c0d bf 0x44fc // 44fc + 44e4: 3840 cmpnei r0, 0 + 44e6: 0c09 bf 0x44f8 // 44f8 + 44e8: 3842 cmpnei r0, 2 + 44ea: 0809 bt 0x44fc // 44fc + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 44ec: 343c movi r4, 60 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 44ee: ab85 st.h r4, (r3, 0xa) + 44f0: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 44f6: 1481 pop r4 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 44f8: 348c movi r4, 140 + 44fa: 07fa br 0x44ee // 44ee + para->triggerlevel[i] = 100; + 44fc: 3464 movi r4, 100 + 44fe: 07f8 br 0x44ee // 44ee + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004500 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4500: 14d4 push r4-r7, r15 + 4502: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4504: 8043 ld.b r2, (r0, 0x3) + 4506: 1038 lrw r1, 0x7398 // 4564 + 4508: 3000 movi r0, 0 + 450a: e3fffa5d bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 450e: 8440 ld.b r2, (r4, 0x0) + 4510: 1036 lrw r1, 0x73b0 // 4568 + 4512: 3000 movi r0, 0 + 4514: e3fffa58 bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4518: 8441 ld.b r2, (r4, 0x1) + 451a: 1035 lrw r1, 0x73cc // 456c + 451c: 3000 movi r0, 0 + 451e: e3fffa53 bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4522: 8442 ld.b r2, (r4, 0x2) + 4524: 1033 lrw r1, 0x73ea // 4570 + 4526: 3000 movi r0, 0 + 4528: e3fffa4e bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 452c: 9446 ld.w r2, (r4, 0x18) + 452e: 3000 movi r0, 0 + 4530: 1031 lrw r1, 0x7407 // 4574 + 4532: e3fffa49 bsr 0x39c4 // 39c4 + 4536: 2403 addi r4, 4 + 4538: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 453a: 10f0 lrw r7, 0x7423 // 4578 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 453c: 10d0 lrw r6, 0x743c // 457c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 453e: e3ffeb93 bsr 0x1c64 // 1c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4542: 8c60 ld.h r3, (r4, 0x0) + 4544: 6c97 mov r2, r5 + 4546: 6c5f mov r1, r7 + 4548: 3000 movi r0, 0 + 454a: e3fffa3d bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 454e: 8c65 ld.h r3, (r4, 0xa) + 4550: 6c97 mov r2, r5 + 4552: 6c5b mov r1, r6 + 4554: 3000 movi r0, 0 + 4556: 2500 addi r5, 1 + 4558: e3fffa36 bsr 0x39c4 // 39c4 + for(i=0;i + } + +} + 4562: 1494 pop r4-r7, r15 + 4564: 00007398 .long 0x00007398 + 4568: 000073b0 .long 0x000073b0 + 456c: 000073cc .long 0x000073cc + 4570: 000073ea .long 0x000073ea + 4574: 00007407 .long 0x00007407 + 4578: 00007423 .long 0x00007423 + 457c: 0000743c .long 0x0000743c + +Disassembly of section .text.ADC_Init: + +00004580 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4580: 14d0 push r15 + 4582: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4584: e3ffef9a bsr 0x24b8 // 24b8 + ADC12_Software_Reset(); //ADC软件复位 + 4588: e3ffeff8 bsr 0x2578 // 2578 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 458c: 3101 movi r1, 1 + 458e: 3002 movi r0, 2 + 4590: e3ffefde bsr 0x254c // 254c + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4594: 3301 movi r3, 1 + 4596: b861 st.w r3, (r14, 0x4) + 4598: 3302 movi r3, 2 + 459a: b860 st.w r3, (r14, 0x0) + 459c: 3200 movi r2, 0 + 459e: 3306 movi r3, 6 + 45a0: 3101 movi r1, 1 + 45a2: 3001 movi r0, 1 + 45a4: e3fff024 bsr 0x25ec // 25ec + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 45a8: 3003 movi r0, 3 + 45aa: e3fff05f bsr 0x2668 // 2668 + + ADC12_ConversionChannel_Config(ADC12_ADCIN9,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 45ae: 3300 movi r3, 0 + 45b0: 3200 movi r2, 0 + 45b2: 3100 movi r1, 0 + 45b4: 3009 movi r0, 9 + 45b6: e3fff125 bsr 0x2800 // 2800 + + ADC12_CMD(ENABLE); + 45ba: 3001 movi r0, 1 + 45bc: e3ffefe4 bsr 0x2584 // 2584 + + ADC12_ready_wait(); + 45c0: e3ffeff6 bsr 0x25ac // 25ac + + ADC12_Control(ADC12_START); + 45c4: 3008 movi r0, 8 + 45c6: e3ffefab bsr 0x251c // 251c + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 45ca: 3237 movi r2, 55 + 45cc: 3100 movi r1, 0 + 45ce: 1003 lrw r0, 0x2000026a // 45d8 + 45d0: e3ffe9ca bsr 0x1964 // 1964 <__memset_fast> +} + 45d4: 1402 addi r14, r14, 8 + 45d6: 1490 pop r15 + 45d8: 2000026a .long 0x2000026a + +Disassembly of section .text.Thermistor_Array_Transform: + +000045dc : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 45dc: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 45de: 1070 lrw r3, 0x79bd // 461c + 45e0: 640c cmphs r3, r0 +{ + 45e2: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 45e4: 0c16 bf 0x4610 // 4610 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 45e6: 33a1 movi r3, 161 + 45e8: 4365 lsli r3, r3, 5 + 45ea: 640c cmphs r3, r0 + 45ec: 0814 bt 0x4614 // 4614 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 45f2: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 45f6: 8a60 ld.h r3, (r2, 0x0) + 45f8: 644c cmphs r3, r1 + 45fa: 0c04 bf 0x4602 // 4602 + 45fc: 8a61 ld.h r3, (r2, 0x2) + 45fe: 644c cmphs r3, r1 + 4600: 0c07 bf 0x460e // 460e + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 460c: 30fa movi r0, 250 +} + 460e: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 4610: 3000 movi r0, 0 + 4612: 07fe br 0x460e // 460e + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4614: 30c8 movi r0, 200 + 4616: 4001 lsli r0, r0, 1 + 4618: 07fb br 0x460e // 460e + 461a: 0000 bkpt + 461c: 000079bd .long 0x000079bd + 4620: 00006dc6 .long 0x00006dc6 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004624 : + +void Calculate_ADC_Sample_Average(void) +{ + 4624: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4628: 3200 movi r2, 0 + uint32_t temp_val = 0; + 462a: 3000 movi r0, 0 + 462c: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 462e: 5a66 addi r3, r2, 2 + 4630: 4361 lsli r3, r3, 1 + 4632: 60dc addu r3, r7 + 4634: 8323 ld.b r1, (r3, 0x3) + 4636: 8364 ld.b r3, (r3, 0x4) + 4638: 4368 lsli r3, r3, 8 + 463a: 2200 addi r2, 1 + 463c: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4644: 310a movi r1, 10 + 4646: e3fff8bf bsr 0x37c4 // 37c4 <__udivsi3> + 464a: 74c1 zexth r3, r0 + 464c: 748c zextb r2, r3 + 464e: 11c2 lrw r6, 0x2000026d // 46d4 + 4650: 4b68 lsri r3, r3, 8 + 4652: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4654: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4656: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4658: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 465a: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 465c: 4368 lsli r3, r3, 8 + 465e: 875b ld.b r2, (r7, 0x1b) + 4660: 6cc8 or r3, r2 + 4662: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4664: 6d03 mov r4, r0 + 4666: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4668: 0c1a bf 0x469c // 469c + g_adc.temp_index = 0; + 466a: 3300 movi r3, 0 + 466c: a660 st.b r3, (r6, 0x0) + 466e: a661 st.b r3, (r6, 0x1) + 4670: 3200 movi r2, 0 + temp_val = 0; + 4672: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 468c: 310a movi r1, 10 + 468e: e3fff89b bsr 0x37c4 // 37c4 <__udivsi3> + 4692: 7401 zexth r0, r0 + 4694: 1071 lrw r3, 0x20000287 // 46d8 + 4696: a300 st.b r0, (r3, 0x0) + 4698: 4808 lsri r0, r0, 8 + 469a: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 469c: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 469e: 859c ld.b r4, (r5, 0x1c) + 46a0: 857b ld.b r3, (r5, 0x1b) + 46a2: 4488 lsli r4, r4, 8 + 46a4: 6d0c or r4, r3 + 46a6: 5c62 addi r3, r4, 1 + 46a8: 74cd zexth r3, r3 + 46aa: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 46ac: 100c lrw r0, 0x2710 // 46dc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 46ae: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 46b0: 102c lrw r1, 0xce4 // 46e0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 46b2: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 46b4: 7c08 mult r0, r2 + 46b6: 604a subu r1, r2 + 46b8: e3fff874 bsr 0x37a0 // 37a0 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 46bc: 240d addi r4, 14 + 46be: 7401 zexth r0, r0 + 46c0: 4481 lsli r4, r4, 1 + 46c2: e3ffff8d bsr 0x45dc // 45dc + 46c6: 6114 addu r4, r5 + 46c8: a403 st.b r0, (r4, 0x3) + 46ca: 4808 lsri r0, r0, 8 + 46cc: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 46ce: 1494 pop r4-r7, r15 + 46d0: 2000026a .long 0x2000026a + 46d4: 2000026d .long 0x2000026d + 46d8: 20000287 .long 0x20000287 + 46dc: 00002710 .long 0x00002710 + 46e0: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000046e4 : + +void ADC_Sample_Task(void){ + 46e4: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 46e6: 1188 lrw r4, 0x2000026a // 4784 + 46e8: 3020 movi r0, 32 + 46ea: 6010 addu r0, r4 + 46ec: 8054 ld.b r2, (r0, 0x14) + 46ee: 8073 ld.b r3, (r0, 0x13) + 46f0: 4248 lsli r2, r2, 8 + 46f2: 6c8c or r2, r3 + 46f4: 8075 ld.b r3, (r0, 0x15) + 46f6: 4370 lsli r3, r3, 16 + 46f8: 6c8c or r2, r3 + 46fa: 8076 ld.b r3, (r0, 0x16) + 46fc: 11a3 lrw r5, 0x200000b4 // 4788 + 46fe: 4378 lsli r3, r3, 24 + 4700: 9520 ld.w r1, (r5, 0x0) + 4702: 6cc8 or r3, r2 + 4704: 604e subu r1, r3 + 4706: 390a cmphsi r1, 11 + 4708: 0c28 bf 0x4758 // 4758 + g_adc.sample_tick = SysTick_100us; + 470a: 1161 lrw r3, 0x200000b0 // 478c + 470c: 3233 movi r2, 51 + 470e: 9360 ld.w r3, (r3, 0x0) + 4710: 6090 addu r2, r4 + 4712: 4b28 lsri r1, r3, 8 + 4714: a260 st.b r3, (r2, 0x0) + 4716: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 4718: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 471a: 4b30 lsri r1, r3, 16 + 471c: 4b78 lsri r3, r3, 24 + 471e: a263 st.b r3, (r2, 0x3) + 4720: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 4722: e3ffef4f bsr 0x25c0 // 25c0 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4726: 84c2 ld.b r6, (r4, 0x2) + 4728: 8461 ld.b r3, (r4, 0x1) + 472a: 46c8 lsli r6, r6, 8 + 472c: 6d8c or r6, r3 + 472e: 3000 movi r0, 0 + 4730: e3ffef54 bsr 0x25d8 // 25d8 + 4734: 5e66 addi r3, r6, 2 + 4736: 4361 lsli r3, r3, 1 + 4738: 60d0 addu r3, r4 + 473a: a303 st.b r0, (r3, 0x3) + 473c: 4808 lsri r0, r0, 8 + 473e: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 4740: 8462 ld.b r3, (r4, 0x2) + 4742: 8441 ld.b r2, (r4, 0x1) + 4744: 4368 lsli r3, r3, 8 + 4746: 6cc8 or r3, r2 + 4748: 2300 addi r3, 1 + 474a: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 474c: 3b09 cmphsi r3, 10 + 474e: 5c42 addi r2, r4, 1 + 4750: 0813 bt 0x4776 // 4776 + g_adc.index++; + 4752: a461 st.b r3, (r4, 0x1) + 4754: 4b68 lsri r3, r3, 8 + 4756: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4758: 8460 ld.b r3, (r4, 0x0) + 475a: 3b41 cmpnei r3, 1 + 475c: 080c bt 0x4774 // 4774 + if (SysTick_1ms - adc_tick >= 100) { + 475e: 104d lrw r2, 0x200000cc // 4790 + 4760: 9220 ld.w r1, (r2, 0x0) + 4762: 9560 ld.w r3, (r5, 0x0) + 4764: 60c6 subu r3, r1 + 4766: 3163 movi r1, 99 + 4768: 64c4 cmphs r1, r3 + 476a: 0805 bt 0x4774 // 4774 + adc_tick = SysTick_1ms; + 476c: 9560 ld.w r3, (r5, 0x0) + 476e: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4770: e3ffff5a bsr 0x4624 // 4624 + } + } +} + 4774: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4776: 3300 movi r3, 0 + 4778: a461 st.b r3, (r4, 0x1) + 477a: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 477c: 3301 movi r3, 1 + 477e: a460 st.b r3, (r4, 0x0) + 4780: 07ec br 0x4758 // 4758 + 4782: 0000 bkpt + 4784: 2000026a .long 0x2000026a + 4788: 200000b4 .long 0x200000b4 + 478c: 200000b0 .long 0x200000b0 + 4790: 200000cc .long 0x200000cc + +Disassembly of section .text.Get_Temp_Val: + +00004794 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4794: 1063 lrw r3, 0x2000026a // 47a0 + 4796: 831e ld.b r0, (r3, 0x1e) + 4798: 835d ld.b r2, (r3, 0x1d) + 479a: 4008 lsli r0, r0, 8 + 479c: 6c08 or r0, r2 +} + 479e: 783c jmp r15 + 47a0: 2000026a .long 0x2000026a + +Disassembly of section .text.HT1621_WR_Data: + +000047a4 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 47a4: 14d4 push r4-r7, r15 + 47a6: 6d43 mov r5, r0 + 47a8: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 47b2: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 47b4: 3103 movi r1, 3 + 47b6: 9600 ld.w r0, (r6, 0x0) + 47b8: e3ffeb63 bsr 0x1e7e // 1e7e + nop; + 47bc: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 47be: 74d6 sextb r3, r5 + 47c0: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 47c2: 3104 movi r1, 4 + 47c4: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 47c6: 0c0d bf 0x47e0 // 47e0 + HT1621_DATA_HIGH; + 47c8: e3ffeb57 bsr 0x1e76 // 1e76 + nop; + 47cc: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 47ce: 3103 movi r1, 3 + 47d0: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 47d2: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 47da: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 47e0: e3ffeb4f bsr 0x1e7e // 1e7e + 47e4: 07f4 br 0x47cc // 47cc + 47e6: 0000 bkpt + 47e8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000047ec : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 47ec: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 47ee: 108b lrw r4, 0x2000004c // 4818 +{ + 47f0: 6d43 mov r5, r0 + HT1621_CS_LOW; + 47f2: 3100 movi r1, 0 + 47f4: 9400 ld.w r0, (r4, 0x0) + 47f6: e3ffeb44 bsr 0x1e7e // 1e7e + nop; + 47fa: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 47fc: 3104 movi r1, 4 + 47fe: 3080 movi r0, 128 + 4800: e3ffffd2 bsr 0x47a4 // 47a4 + HT1621_WR_Data(cmd,8); + 4804: 6c17 mov r0, r5 + 4806: 3108 movi r1, 8 + 4808: e3ffffce bsr 0x47a4 // 47a4 + HT1621_CS_HIGH; + 480c: 9400 ld.w r0, (r4, 0x0) + 480e: 3100 movi r1, 0 + 4810: e3ffeb33 bsr 0x1e76 // 1e76 + nop; + 4814: 6c03 mov r0, r0 +} + 4816: 1492 pop r4-r5, r15 + 4818: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +0000481c : +void HT1621_Init(void){ + 481c: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 481e: 1188 lrw r4, 0x2000004c // 48bc + 4820: 3200 movi r2, 0 + 4822: 9400 ld.w r0, (r4, 0x0) + 4824: 3100 movi r1, 0 + 4826: e3ffeab1 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,1,Output); + 482a: 9400 ld.w r0, (r4, 0x0) + 482c: 3200 movi r2, 0 + 482e: 3101 movi r1, 1 + 4830: e3ffeaac bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,3,Output); + 4834: 9400 ld.w r0, (r4, 0x0) + 4836: 3200 movi r2, 0 + 4838: 3103 movi r1, 3 + 483a: e3ffeaa7 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,4,Output); + 483e: 3200 movi r2, 0 + 4840: 9400 ld.w r0, (r4, 0x0) + 4842: 3104 movi r1, 4 + 4844: e3ffeaa2 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,0); + 4848: 9400 ld.w r0, (r4, 0x0) + 484a: 3100 movi r1, 0 + 484c: e3ffeb0e bsr 0x1e68 // 1e68 + GPIO_DriveStrength_EN(GPIOA0,1); + 4850: 9400 ld.w r0, (r4, 0x0) + 4852: 3101 movi r1, 1 + 4854: e3ffeb0a bsr 0x1e68 // 1e68 + GPIO_DriveStrength_EN(GPIOA0,3); + 4858: 9400 ld.w r0, (r4, 0x0) + 485a: 3103 movi r1, 3 + 485c: e3ffeb06 bsr 0x1e68 // 1e68 + GPIO_DriveStrength_EN(GPIOA0,4); + 4860: 9400 ld.w r0, (r4, 0x0) + 4862: 3104 movi r1, 4 + 4864: e3ffeb02 bsr 0x1e68 // 1e68 + HT1621_CS_LOW; + 4868: 9400 ld.w r0, (r4, 0x0) + 486a: 3100 movi r1, 0 + 486c: e3ffeb09 bsr 0x1e7e // 1e7e + HT1621_WR_LOW; + 4870: 9400 ld.w r0, (r4, 0x0) + 4872: 3103 movi r1, 3 + 4874: e3ffeb05 bsr 0x1e7e // 1e7e + HT1621_RD_LOW; + 4878: 9400 ld.w r0, (r4, 0x0) + 487a: 3101 movi r1, 1 + 487c: e3ffeb01 bsr 0x1e7e // 1e7e + HT1621_DATA_LOW; + 4880: 3104 movi r1, 4 + 4882: 9400 ld.w r0, (r4, 0x0) + 4884: e3ffeafd bsr 0x1e7e // 1e7e + HT1621_WR_CMD(HT1621_BIAS); + 4888: 3052 movi r0, 82 + 488a: e3ffffb1 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_RC256); + 488e: 3030 movi r0, 48 + 4890: e3ffffae bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_SYSDIS); + 4894: 3000 movi r0, 0 + 4896: e3ffffab bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_WDTDIS); + 489a: 300a movi r0, 10 + 489c: e3ffffa8 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_SYSEN); + 48a0: 3002 movi r0, 2 + 48a2: e3ffffa5 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_LCDON); + 48a6: 3006 movi r0, 6 + 48a8: e3ffffa2 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_BIOFF); + 48ac: 3010 movi r0, 16 + 48ae: e3ffff9f bsr 0x47ec // 47ec + HT1621_CS_HIGH; + 48b2: 9400 ld.w r0, (r4, 0x0) + 48b4: 3100 movi r1, 0 + 48b6: e3ffeae0 bsr 0x1e76 // 1e76 +} + 48ba: 1491 pop r4, r15 + 48bc: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +000048c0 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 48c0: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 48c2: 3212 movi r2, 18 + 48c4: 3100 movi r1, 0 + + HT1621_CS_LOW; + 48c6: 10b1 lrw r5, 0x2000004c // 4908 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 48c8: 1011 lrw r0, 0x200002b0 // 490c + 48ca: e3ffe84d bsr 0x1964 // 1964 <__memset_fast> + HT1621_CS_LOW; + 48ce: 3100 movi r1, 0 + 48d0: 9500 ld.w r0, (r5, 0x0) + 48d2: e3ffead6 bsr 0x1e7e // 1e7e + nop; + 48d6: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 48d8: 3103 movi r1, 3 + 48da: 30a0 movi r0, 160 + 48dc: e3ffff64 bsr 0x47a4 // 47a4 + HT1621_WR_Data(0,6); + 48e0: 3106 movi r1, 6 + 48e2: 3000 movi r0, 0 + 48e4: e3ffff60 bsr 0x47a4 // 47a4 + 48e8: 3412 movi r4, 18 + 48ea: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 48fa: 9500 ld.w r0, (r5, 0x0) + 48fc: 3100 movi r1, 0 + 48fe: e3ffeabc bsr 0x1e76 // 1e76 + nop; + 4902: 6c03 mov r0, r0 +} + 4904: 1492 pop r4-r5, r15 + 4906: 0000 bkpt + 4908: 2000004c .long 0x2000004c + 490c: 200002b0 .long 0x200002b0 + +Disassembly of section .text.HT1621_ALLON: + +00004910 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 4910: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4912: 10af lrw r5, 0x2000004c // 494c + 4914: 3100 movi r1, 0 + 4916: 9500 ld.w r0, (r5, 0x0) + 4918: e3ffeab3 bsr 0x1e7e // 1e7e + nop; + 491c: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 491e: 3103 movi r1, 3 + 4920: 30a0 movi r0, 160 + 4922: e3ffff41 bsr 0x47a4 // 47a4 + HT1621_WR_Data(0,6); + 4926: 3106 movi r1, 6 + 4928: 3000 movi r0, 0 + 492a: e3ffff3d bsr 0x47a4 // 47a4 + 492e: 3412 movi r4, 18 + 4930: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4940: 9500 ld.w r0, (r5, 0x0) + 4942: 3100 movi r1, 0 + 4944: e3ffea99 bsr 0x1e76 // 1e76 + nop; + 4948: 6c03 mov r0, r0 +} + 494a: 1492 pop r4-r5, r15 + 494c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00004950 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 4950: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4952: 1091 lrw r4, 0x2000004c // 4994 + 4954: 3100 movi r1, 0 + 4956: 9400 ld.w r0, (r4, 0x0) + 4958: e3ffea93 bsr 0x1e7e // 1e7e + nop; + 495c: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 495e: 3103 movi r1, 3 + 4960: 30a0 movi r0, 160 + 4962: e3ffff21 bsr 0x47a4 // 47a4 + HT1621_WR_Data(0,6); + 4966: 3106 movi r1, 6 + 4968: 3000 movi r0, 0 + 496a: e3ffff1d bsr 0x47a4 // 47a4 + 496e: 3500 movi r5, 0 + for(U8_T i=0;i + 4972: 60d4 addu r3, r5 + 4974: 830c ld.b r0, (r3, 0xc) + 4976: 4004 lsli r0, r0, 4 + 4978: 7400 zextb r0, r0 + 497a: 3104 movi r1, 4 + 497c: 2500 addi r5, 1 + 497e: e3ffff13 bsr 0x47a4 // 47a4 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4986: 9400 ld.w r0, (r4, 0x0) + 4988: 3100 movi r1, 0 + 498a: e3ffea76 bsr 0x1e76 // 1e76 + nop; + 498e: 6c03 mov r0, r0 +} + 4990: 1492 pop r4-r5, r15 + 4992: 0000 bkpt + 4994: 2000004c .long 0x2000004c + 4998: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Set_Temperature_Display: + +0000499c : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 499c: 14d4 push r4-r7, r15 + 499e: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 49a0: 310a movi r1, 10 + 49a2: b801 st.w r0, (r14, 0x4) + 49a4: e3fff710 bsr 0x37c4 // 37c4 <__udivsi3> + 49a8: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 49aa: 310a movi r1, 10 + 49ac: 6c17 mov r0, r5 + 49ae: e3fff70b bsr 0x37c4 // 37c4 <__udivsi3> + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + HT1621.show_cache[6] = 0x00; + HT1621.show_cache[5] &= 0x08; + + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49b2: 10fb lrw r7, 0x70fa // 4a1c + 49b4: 7400 zextb r0, r0 + 49b6: 109b lrw r4, 0x200002a4 // 4a20 + 49b8: 601c addu r0, r7 + HT1621.show_cache[9] &= 0x08; + 49ba: 3608 movi r6, 8 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49bc: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[9] &= 0x08; + 49be: 8455 ld.b r2, (r4, 0x15) + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49c0: 4904 lsri r0, r1, 4 + HT1621.show_cache[9] &= 0x08; + 49c2: 6898 and r2, r6 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49c4: 6c80 or r2, r0 + 49c6: a455 st.b r2, (r4, 0x15) + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 49c8: 320f movi r2, 15 + 49ca: 6848 and r1, r2 + 49cc: a436 st.b r1, (r4, 0x16) + U8_T tmp_L = tmp_Integer%10; + 49ce: 6c17 mov r0, r5 + 49d0: 310a movi r1, 10 + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 49d2: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 49d4: e3fff70a bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 49d8: 7400 zextb r0, r0 + 49da: 601c addu r0, r7 + 49dc: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 49de: 9840 ld.w r2, (r14, 0x0) + 49e0: 6c57 mov r1, r5 + 49e2: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 49e4: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 49e6: a434 st.b r1, (r4, 0x14) + U8_T tmp_quantile = tmp%10; + 49e8: 6c0f mov r0, r3 + 49ea: 310a movi r1, 10 + 49ec: e3fff6fe bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 49f0: 7401 zexth r0, r0 + 49f2: 61c0 addu r7, r0 + 49f4: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[6] |= Diaital[tmp_quantile]&0x0F; + 49f6: 9840 ld.w r2, (r14, 0x0) + 49f8: 688c and r2, r3 + 49fa: a452 st.b r2, (r4, 0x12) + + //显示“℃” + HT1621.show_cache[3] |= 0x08; + 49fc: 844f ld.b r2, (r4, 0xf) + 49fe: 6c98 or r2, r6 + 4a00: a44f st.b r2, (r4, 0xf) + HT1621.show_cache[4] |= 0x0B; + 4a02: 310b movi r1, 11 + 4a04: 8450 ld.b r2, (r4, 0x10) + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4a06: 4b64 lsri r3, r3, 4 + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4a08: 4da4 lsri r5, r5, 4 + HT1621.show_cache[4] |= 0x0B; + 4a0a: 6c84 or r2, r1 + HT1621.show_cache[5] |= 0x08; + 4a0c: 6cd8 or r3, r6 + + //显示小数点 + HT1621.show_cache[7] |= 0x08; + 4a0e: 6d58 or r5, r6 + HT1621.show_cache[4] |= 0x0B; + 4a10: a450 st.b r2, (r4, 0x10) + HT1621.show_cache[5] |= 0x08; + 4a12: a471 st.b r3, (r4, 0x11) + HT1621.show_cache[7] |= 0x08; + 4a14: a4b3 st.b r5, (r4, 0x13) +} + 4a16: 1402 addi r14, r14, 8 + 4a18: 1494 pop r4-r7, r15 + 4a1a: 0000 bkpt + 4a1c: 000070fa .long 0x000070fa + 4a20: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Local_Temperature_Display: + +00004a24 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 4a24: 14d4 push r4-r7, r15 + 4a26: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4a28: 310a movi r1, 10 + 4a2a: b801 st.w r0, (r14, 0x4) + 4a2c: e3fff6cc bsr 0x37c4 // 37c4 <__udivsi3> + 4a30: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4a32: 310a movi r1, 10 + 4a34: 6c17 mov r0, r5 + 4a36: e3fff6c7 bsr 0x37c4 // 37c4 <__udivsi3> + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4a3a: 10f9 lrw r7, 0x70fa // 4a9c + 4a3c: 7400 zextb r0, r0 + 4a3e: 601c addu r0, r7 + 4a40: 80c0 ld.b r6, (r0, 0x0) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4a42: 320f movi r2, 15 + 4a44: 6c5b mov r1, r6 + 4a46: 1097 lrw r4, 0x200002a4 // 4aa0 + 4a48: 6848 and r1, r2 + 4a4a: a43d st.b r1, (r4, 0x1d) + U8_T tmp_L = tmp_Integer%10; + 4a4c: 6c17 mov r0, r5 + 4a4e: 310a movi r1, 10 + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4a50: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4a52: e3fff6cb bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4a56: 7400 zextb r0, r0 + 4a58: 601c addu r0, r7 + 4a5a: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4a5c: 9840 ld.w r2, (r14, 0x0) + 4a5e: 6c57 mov r1, r5 + 4a60: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4a62: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4a64: a43b st.b r1, (r4, 0x1b) + U8_T tmp_quantile = tmp%10; + 4a66: 6c0f mov r0, r3 + 4a68: 310a movi r1, 10 + 4a6a: e3fff6bf bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4a6e: 7401 zexth r0, r0 + 4a70: 61c0 addu r7, r0 + 4a72: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4a74: 9840 ld.w r2, (r14, 0x0) + 4a76: 688c and r2, r3 + + //显示“℃” + HT1621.show_cache[16] |= 0x08; + HT1621.show_cache[11] |= 0x0B; + 4a78: 8437 ld.b r1, (r4, 0x17) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4a7a: a459 st.b r2, (r4, 0x19) + HT1621.show_cache[11] |= 0x0B; + 4a7c: 300b movi r0, 11 + HT1621.show_cache[16] |= 0x08; + 4a7e: 3208 movi r2, 8 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4a80: 4ec4 lsri r6, r6, 4 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4a82: 4b64 lsri r3, r3, 4 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4a84: 4da4 lsri r5, r5, 4 + HT1621.show_cache[16] |= 0x08; + 4a86: 6d88 or r6, r2 + HT1621.show_cache[11] |= 0x0B; + 4a88: 6c40 or r1, r0 + HT1621.show_cache[12] |= 0x08; + 4a8a: 6cc8 or r3, r2 + + //显示小数点 + HT1621.show_cache[14] |= 0x08; + 4a8c: 6d48 or r5, r2 + HT1621.show_cache[16] |= 0x08; + 4a8e: a4dc st.b r6, (r4, 0x1c) + HT1621.show_cache[11] |= 0x0B; + 4a90: a437 st.b r1, (r4, 0x17) + HT1621.show_cache[12] |= 0x08; + 4a92: a478 st.b r3, (r4, 0x18) + HT1621.show_cache[14] |= 0x08; + 4a94: a4ba st.b r5, (r4, 0x1a) +} + 4a96: 1402 addi r14, r14, 8 + 4a98: 1494 pop r4-r7, r15 + 4a9a: 0000 bkpt + 4a9c: 000070fa .long 0x000070fa + 4aa0: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Control_Mode: + +00004aa4 : +* 1 -> 制热模式 +* 2 -> 送风模式 +* 3 -> 除湿 +*/ +void Control_Mode(U8_T mode){ + switch(mode){ + 4aa4: 3842 cmpnei r0, 2 + 4aa6: 0c0f bf 0x4ac4 // 4ac4 + 4aa8: 3844 cmpnei r0, 4 + 4aaa: 0c16 bf 0x4ad6 // 4ad6 + 4aac: 3840 cmpnei r0, 0 + 4aae: 080a bt 0x4ac2 // 4ac2 + case 0x00: + HT1621.show_cache[0] &= ~0x07; + 4ab0: 104e lrw r2, 0x200002a4 // 4ae8 + 4ab2: 3107 movi r1, 7 + 4ab4: 826c ld.b r3, (r2, 0xc) + 4ab6: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ab8: 822d ld.b r1, (r2, 0xd) + 4aba: 3980 bclri r1, 0 + 4abc: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x04; + 4abe: 3ba2 bseti r3, 2 + HT1621.show_cache[0] |= 0x02; + break; + case 0x04: + HT1621.show_cache[0] &= ~0x07; + HT1621.show_cache[1] &= ~0x01; + HT1621.show_cache[0] |= 0x01; + 4ac0: a26c st.b r3, (r2, 0xc) +// case 0x03: +// HT1621.show_cache[0] &= ~0x07; +// HT1621.show_cache[1] |= 0x01; +// break; + } +} + 4ac2: 783c jmp r15 + HT1621.show_cache[0] &= ~0x07; + 4ac4: 1049 lrw r2, 0x200002a4 // 4ae8 + 4ac6: 3107 movi r1, 7 + 4ac8: 826c ld.b r3, (r2, 0xc) + 4aca: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4acc: 822d ld.b r1, (r2, 0xd) + 4ace: 3980 bclri r1, 0 + 4ad0: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x02; + 4ad2: 3ba1 bseti r3, 1 + 4ad4: 07f6 br 0x4ac0 // 4ac0 + HT1621.show_cache[0] &= ~0x07; + 4ad6: 1045 lrw r2, 0x200002a4 // 4ae8 + 4ad8: 3107 movi r1, 7 + 4ada: 826c ld.b r3, (r2, 0xc) + 4adc: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ade: 822d ld.b r1, (r2, 0xd) + 4ae0: 3980 bclri r1, 0 + 4ae2: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x01; + 4ae4: 3ba0 bseti r3, 0 + 4ae6: 07ed br 0x4ac0 // 4ac0 + 4ae8: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Control_wind_velocity: + +00004aec : +* 2 -> 高风速 +* 3 -> 自动风速 +* 4 -> 风速停 +*/ +void Control_wind_velocity(U8_T velocity) +{ + 4aec: 14d0 push r15 + switch(velocity) + 4aee: 3803 cmphsi r0, 4 + 4af0: 080f bt 0x4b0e // 4b0e + 4af2: 107a lrw r3, 0x200002a4 // 4b58 + 4af4: e3ffe104 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4af8: 0e0c0214 .long 0x0e0c0214 + { + case 1: //低风速 + HT1621.show_cache[2] = 0x0C; + 4afc: 320c movi r2, 12 + HT1621.show_cache[3] &= ~0x03; + HT1621.show_cache[1] &= ~0x02; + break; + case 2: //中风速 + HT1621.show_cache[2] = 0x0F; + 4afe: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4b00: 834f ld.b r2, (r3, 0xf) + 4b02: 3a80 bclri r2, 0 + 4b04: 3a81 bclri r2, 1 + 4b06: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[1] &= ~0x02; + 4b08: 834d ld.b r2, (r3, 0xd) + 4b0a: 3a81 bclri r2, 1 + 4b0c: a34d st.b r2, (r3, 0xd) + } + break; + default: + break; + } +} + 4b0e: 1490 pop r15 + HT1621.show_cache[2] = 0x0F; + 4b10: 320f movi r2, 15 + 4b12: 07f6 br 0x4afe // 4afe + HT1621.show_cache[2] = 0x0F; + 4b14: 320f movi r2, 15 + 4b16: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4b18: 834f ld.b r2, (r3, 0xf) + 4b1a: 3aa0 bseti r2, 0 + 4b1c: 3aa1 bseti r2, 1 + 4b1e: 07f4 br 0x4b06 // 4b06 + HT1621.show_cache[1] |= 0x02; + 4b20: 834d ld.b r2, (r3, 0xd) + 4b22: 3aa1 bseti r2, 1 + 4b24: a34d st.b r2, (r3, 0xd) + if(HT1621.wind_velocity == 0) //关风扇 + 4b26: 8343 ld.b r2, (r3, 0x3) + 4b28: 3a40 cmpnei r2, 0 + 4b2a: 0807 bt 0x4b38 // 4b38 + HT1621.show_cache[2] = 0x0F; + 4b2c: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4b2e: 834f ld.b r2, (r3, 0xf) + 4b30: 3a80 bclri r2, 0 + 4b32: 3a81 bclri r2, 1 + HT1621.show_cache[3] |= 0x03; + 4b34: a34f st.b r2, (r3, 0xf) +} + 4b36: 07ec br 0x4b0e // 4b0e + }else if(HT1621.wind_velocity == 1) //低风速 + 4b38: 3a41 cmpnei r2, 1 + 4b3a: 0803 bt 0x4b40 // 4b40 + HT1621.show_cache[2] = 0x0C; + 4b3c: 320c movi r2, 12 + 4b3e: 07f7 br 0x4b2c // 4b2c + }else if(HT1621.wind_velocity == 2) //中风速 + 4b40: 3a42 cmpnei r2, 2 + 4b42: 0803 bt 0x4b48 // 4b48 + HT1621.show_cache[2] = 0x0F; + 4b44: 320f movi r2, 15 + 4b46: 07f3 br 0x4b2c // 4b2c + }else if(HT1621.wind_velocity == 3) //高风速 + 4b48: 3a43 cmpnei r2, 3 + 4b4a: 0be2 bt 0x4b0e // 4b0e + HT1621.show_cache[2] = 0x0F; + 4b4c: 320f movi r2, 15 + 4b4e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4b50: 834f ld.b r2, (r3, 0xf) + 4b52: 3aa0 bseti r2, 0 + 4b54: 3aa1 bseti r2, 1 + 4b56: 07ef br 0x4b34 // 4b34 + 4b58: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Control_Prompt_Text: + +00004b5c : +*函数功能:显示 提示文字 +*参数功能:state : 0 -> 关 +* 1 -> 开 +*/ +void Control_Prompt_Text(U8_T state){ + if(state == 0x01){ + 4b5c: 3841 cmpnei r0, 1 + 4b5e: 1070 lrw r3, 0x200002a4 // 4b9c + 4b60: 0810 bt 0x4b80 // 4b80 + HT1621.show_cache[0] |= 0x08; //模式 + 4b62: 3008 movi r0, 8 + 4b64: 832c ld.b r1, (r3, 0xc) + 4b66: 6c40 or r1, r0 + 4b68: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x0C; //风速 + 4b6a: 832d ld.b r1, (r3, 0xd) + 4b6c: 39a2 bseti r1, 2 + 4b6e: 39a3 bseti r1, 3 + 4b70: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4b72: 832f ld.b r1, (r3, 0xf) + 4b74: 39a2 bseti r1, 2 + HT1621.show_cache[9] |= 0x08; //室内温度 + 4b76: 8355 ld.b r2, (r3, 0x15) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4b78: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[9] |= 0x08; //室内温度 + 4b7a: 6c80 or r2, r0 + }else{ + HT1621.show_cache[0] &= ~0x08; //模式 + HT1621.show_cache[1] &= ~0x0C; //风速 + HT1621.show_cache[3] &= ~0x04; //设置温度 + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4b7c: a355 st.b r2, (r3, 0x15) + } +} + 4b7e: 783c jmp r15 + HT1621.show_cache[0] &= ~0x08; //模式 + 4b80: 834c ld.b r2, (r3, 0xc) + 4b82: 3a83 bclri r2, 3 + 4b84: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x0C; //风速 + 4b86: 834d ld.b r2, (r3, 0xd) + 4b88: 3a82 bclri r2, 2 + 4b8a: 3a83 bclri r2, 3 + 4b8c: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x04; //设置温度 + 4b8e: 834f ld.b r2, (r3, 0xf) + 4b90: 3a82 bclri r2, 2 + 4b92: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4b94: 8355 ld.b r2, (r3, 0x15) + 4b96: 3a83 bclri r2, 3 + 4b98: 07f2 br 0x4b7c // 4b7c + 4b9a: 0000 bkpt + 4b9c: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Controlled_Buzzer: + +00004ba0 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 4ba0: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 4ba2: 3841 cmpnei r0, 1 + 4ba4: 0c0a bf 0x4bb8 // 4bb8 + 4ba6: 3840 cmpnei r0, 0 + 4ba8: 0c04 bf 0x4bb0 // 4bb0 + 4baa: 3842 cmpnei r0, 2 + 4bac: 0c12 bf 0x4bd0 // 4bd0 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 4bae: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 4bb0: 3010 movi r0, 16 + 4bb2: e3fffe1d bsr 0x47ec // 47ec + break; + 4bb6: 07fc br 0x4bae // 4bae + HT1621_WR_CMD(HT1621_BLON); + 4bb8: 3012 movi r0, 18 + 4bba: e3fffe19 bsr 0x47ec // 47ec + HT1621.buz_control = 0x01; + 4bbe: 1069 lrw r3, 0x200002a4 // 4be0 + 4bc0: 3220 movi r2, 32 + 4bc2: 608c addu r2, r3 + 4bc4: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 4bc6: a222 st.b r1, (r2, 0x2) + HT1621.buz_tick = SysTick_1ms; + 4bc8: 1047 lrw r2, 0x200000b4 // 4be4 + 4bca: 9240 ld.w r2, (r2, 0x0) + 4bcc: b34d st.w r2, (r3, 0x34) +} + 4bce: 07f0 br 0x4bae // 4bae + HT1621_WR_CMD(HT1621_BLON); + 4bd0: 3012 movi r0, 18 + 4bd2: e3fffe0d bsr 0x47ec // 47ec + HT1621.buz_control = 0x02; + 4bd6: 1063 lrw r3, 0x200002a4 // 4be0 + 4bd8: 3220 movi r2, 32 + 4bda: 608c addu r2, r3 + 4bdc: 3102 movi r1, 2 + 4bde: 07f4 br 0x4bc6 // 4bc6 + 4be0: 200002a4 .long 0x200002a4 + 4be4: 200000b4 .long 0x200000b4 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00004be8 : +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_LCD_Backlight(U8_T state){ + switch (state) { + 4be8: 3840 cmpnei r0, 0 + 4bea: 0c04 bf 0x4bf2 // 4bf2 + 4bec: 3841 cmpnei r0, 1 + 4bee: 0c07 bf 0x4bfc // 4bfc + break; + case 0x01: + EPT0->CMPC=0; + break; + } +} + 4bf0: 783c jmp r15 + EPT0->CMPC=3000; + 4bf2: 1065 lrw r3, 0x20000020 // 4c04 + 4bf4: 1045 lrw r2, 0xbb8 // 4c08 + 4bf6: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPC=0; + 4bf8: b34d st.w r2, (r3, 0x34) +} + 4bfa: 07fb br 0x4bf0 // 4bf0 + EPT0->CMPC=0; + 4bfc: 1062 lrw r3, 0x20000020 // 4c04 + 4bfe: 3200 movi r2, 0 + 4c00: 9360 ld.w r3, (r3, 0x0) + 4c02: 07fb br 0x4bf8 // 4bf8 + 4c04: 20000020 .long 0x20000020 + 4c08: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Set_Device_ADDR: + +00004c0c : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4c0c: 14d4 push r4-r7, r15 + 4c0e: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c10: 11a3 lrw r5, 0x70fa // 4c9c + 4c12: 1184 lrw r4, 0x200002a4 // 4ca0 + 4c14: 6014 addu r0, r5 + HT1621.show_cache[7] &= 0x08; + 4c16: 3308 movi r3, 8 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4c18: 6c87 mov r2, r1 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c1a: 8000 ld.b r0, (r0, 0x0) + HT1621.show_cache[7] &= 0x08; + 4c1c: 8433 ld.b r1, (r4, 0x13) + 4c1e: 684c and r1, r3 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c20: 48c4 lsri r6, r0, 4 + 4c22: 6c58 or r1, r6 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4c24: 370f movi r7, 15 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c26: a433 st.b r1, (r4, 0x13) + HT1621.show_cache[17] = 0x00; + HT1621.show_cache[16] &= 0x08; + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4c28: 8438 ld.b r1, (r4, 0x18) + 4c2a: 684c and r1, r3 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4c2c: 681c and r0, r7 + 4c2e: a414 st.b r0, (r4, 0x14) + HT1621.show_cache[14] &= 0x08; + 4c30: 84da ld.b r6, (r4, 0x1a) + HT1621.show_cache[12] &= 0x08; + 4c32: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 4c34: 6c0b mov r0, r2 + 4c36: 3164 movi r1, 100 + HT1621.show_cache[14] &= 0x08; + 4c38: 698c and r6, r3 + HT1621.show_cache[12] &= 0x08; + 4c3a: b862 st.w r3, (r14, 0x8) + U8_T tmp_H = tmp_Integer/10; + 4c3c: b841 st.w r2, (r14, 0x4) + 4c3e: e3fff5c3 bsr 0x37c4 // 37c4 <__udivsi3> + + //显示设置地址 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c42: 7400 zextb r0, r0 + 4c44: 6014 addu r0, r5 + 4c46: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[16] &= 0x08; + 4c48: 9862 ld.w r3, (r14, 0x8) + 4c4a: 841c ld.b r0, (r4, 0x1c) + 4c4c: 68c0 and r3, r0 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c4e: 4904 lsri r0, r1, 4 + 4c50: 6cc0 or r3, r0 + U8_T tmp_Integer = addr/10; + 4c52: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c54: 685c and r1, r7 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c56: a47c st.b r3, (r4, 0x1c) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c58: a43d st.b r1, (r4, 0x1d) + U8_T tmp_Integer = addr/10; + 4c5a: 6c0b mov r0, r2 + 4c5c: 310a movi r1, 10 + 4c5e: e3fff5b3 bsr 0x37c4 // 37c4 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 4c62: 7400 zextb r0, r0 + 4c64: 310a movi r1, 10 + 4c66: e3fff5c1 bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c6a: 7400 zextb r0, r0 + 4c6c: 6014 addu r0, r5 + 4c6e: 8060 ld.b r3, (r0, 0x0) + 4c70: 4b24 lsri r1, r3, 4 + U8_T tmp_quantile = addr%10; + 4c72: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c74: 68dc and r3, r7 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c76: 6d84 or r6, r1 + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c78: a47b st.b r3, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c7a: a4da st.b r6, (r4, 0x1a) + U8_T tmp_quantile = addr%10; + 4c7c: 310a movi r1, 10 + 4c7e: 6c0b mov r0, r2 + 4c80: e3fff5b4 bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c84: 7400 zextb r0, r0 + 4c86: 6140 addu r5, r0 + 4c88: 8560 ld.b r3, (r5, 0x0) + 4c8a: 4b44 lsri r2, r3, 4 + 4c8c: 9820 ld.w r1, (r14, 0x0) + 4c8e: 6c84 or r2, r1 + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c90: 69cc and r7, r3 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c92: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c94: a4f9 st.b r7, (r4, 0x19) +} + 4c96: 1403 addi r14, r14, 12 + 4c98: 1494 pop r4-r7, r15 + 4c9a: 0000 bkpt + 4c9c: 000070fa .long 0x000070fa + 4ca0: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Set_Temp_Difference: + +00004ca4 : + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4ca4: 1057 lrw r2, 0x200002a4 // 4d00 + HT1621.show_cache[7] &= 0x08; + 4ca6: 3108 movi r1, 8 + 4ca8: 8273 ld.b r3, (r2, 0x13) + 4caa: 68c4 and r3, r1 + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4cac: 3ba0 bseti r3, 0 + 4cae: 3ba1 bseti r3, 1 + 4cb0: a273 st.b r3, (r2, 0x13) + HT1621.show_cache[8] |= Diaital[2]&0x0F; + 4cb2: 330d movi r3, 13 + 4cb4: a274 st.b r3, (r2, 0x14) + + //清楚原数字 + HT1621.show_cache[17] = 0x00; + 4cb6: 3300 movi r3, 0 + 4cb8: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] &= 0x08; + 4cba: 827c ld.b r3, (r2, 0x1c) + 4cbc: 68c4 and r3, r1 + 4cbe: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] = 0x00; + 4cc0: 3300 movi r3, 0 + 4cc2: a27b st.b r3, (r2, 0x1b) + HT1621.show_cache[14] &= 0x08; + 4cc4: 827a ld.b r3, (r2, 0x1a) + 4cc6: 68c4 and r3, r1 + 4cc8: a27a st.b r3, (r2, 0x1a) + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4cca: 8278 ld.b r3, (r2, 0x18) + 4ccc: 684c and r1, r3 + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 4cce: 3300 movi r3, 0 + 4cd0: 2b08 subi r3, 9 + 4cd2: 60c0 addu r3, r0 + 4cd4: 74cc zextb r3, r3 + 4cd6: 3b09 cmphsi r3, 10 + 4cd8: 0c08 bf 0x4ce8 // 4ce8 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 4cda: 3808 cmphsi r0, 9 + 4cdc: 0810 bt 0x4cfc // 4cfc + tmp_quantile = 9 - diff; + 4cde: 3309 movi r3, 9 + 4ce0: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[14] = 0x02; + 4ce2: 3002 movi r0, 2 + tmp_quantile = 9 - diff; + 4ce4: 74cc zextb r3, r3 + HT1621.show_cache[14] = 0x02; + 4ce6: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] = 0x00; + } + + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4ce8: 1007 lrw r0, 0x70fa // 4d04 + 4cea: 60c0 addu r3, r0 + 4cec: 8360 ld.b r3, (r3, 0x0) + 4cee: 4b04 lsri r0, r3, 4 + 4cf0: 6c40 or r1, r0 + 4cf2: a238 st.b r1, (r2, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4cf4: 310f movi r1, 15 + 4cf6: 68c4 and r3, r1 + 4cf8: a279 st.b r3, (r2, 0x19) +} + 4cfa: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 4cfc: 3300 movi r3, 0 + 4cfe: 07f5 br 0x4ce8 // 4ce8 + 4d00: 200002a4 .long 0x200002a4 + 4d04: 000070fa .long 0x000070fa + +Disassembly of section .text.HT1621_Refresh_Task: + +00004d08 : + + +void HT1621_Refresh_Task(void){ + 4d08: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 4d0a: 10b4 lrw r5, 0x200000b4 // 4d58 + 4d0c: 1094 lrw r4, 0x200002a4 // 4d5c + 4d0e: 9560 ld.w r3, (r5, 0x0) + 4d10: 944b ld.w r2, (r4, 0x2c) + 4d12: 60ca subu r3, r2 + 4d14: 1053 lrw r2, 0x1f3 // 4d60 + 4d16: 64c8 cmphs r2, r3 + 4d18: 0806 bt 0x4d24 // 4d24 + HT1621.Refresh_timing = HT1621_Refresh_time; + 4d1a: 33fa movi r3, 250 + 4d1c: 4361 lsli r3, r3, 1 + 4d1e: b46b st.w r3, (r4, 0x2c) + + HT1621_Refresh_Data(); + 4d20: e3fffe18 bsr 0x4950 // 4950 + +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 4d24: 1070 lrw r3, 0x200002c4 // 4d64 + 4d26: 8342 ld.b r2, (r3, 0x2) + 4d28: 3a41 cmpnei r2, 1 + 4d2a: 080f bt 0x4d48 // 4d48 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 4d2c: 942d ld.w r1, (r4, 0x34) + 4d2e: 9540 ld.w r2, (r5, 0x0) + 4d30: 6086 subu r2, r1 + 4d32: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4d34: 6484 cmphs r1, r2 + 4d36: 0808 bt 0x4d46 // 4d46 + HT1621.buz_tick = SysTick_1ms; + 4d38: 9540 ld.w r2, (r5, 0x0) + 4d3a: b44d st.w r2, (r4, 0x34) + HT1621_WR_CMD(HT1621_BIOFF); + 4d3c: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 4d3e: 3200 movi r2, 0 + 4d40: a342 st.b r2, (r3, 0x2) + HT1621_WR_CMD(HT1621_BIOFF); + 4d42: e3fffd55 bsr 0x47ec // 47ec + Controlled_Buzzer(0x00); + } + } + + +} + 4d46: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 4d48: 3a42 cmpnei r2, 2 + 4d4a: 0bfe bt 0x4d46 // 4d46 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4d4c: 942d ld.w r1, (r4, 0x34) + 4d4e: 9540 ld.w r2, (r5, 0x0) + 4d50: 6086 subu r2, r1 + 4d52: 1024 lrw r1, 0x1f3 // 4d60 + 4d54: 07f0 br 0x4d34 // 4d34 + 4d56: 0000 bkpt + 4d58: 200000b4 .long 0x200000b4 + 4d5c: 200002a4 .long 0x200002a4 + 4d60: 000001f3 .long 0x000001f3 + 4d64: 200002c4 .long 0x200002c4 + +Disassembly of section .text.TemCtrl_Init: + +00004d68 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 4d68: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 4d6a: 1286 lrw r4, 0x200002e0 // 4e80 + 4d6c: 3215 movi r2, 21 + 4d6e: 3100 movi r1, 0 + 4d70: 6c13 mov r0, r4 + 4d72: e3ffe5f9 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 4d76: 1264 lrw r3, 0x200000a8 // 4e84 + 4d78: 9360 ld.w r3, (r3, 0x0) + 4d7a: 3b80 bclri r3, 0 + 4d7c: 3b40 cmpnei r3, 0 + 4d7e: 0c7a bf 0x4e72 // 4e72 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 4d80: 1222 lrw r1, 0x745b // 4e88 + 4d82: 3000 movi r0, 0 + 4d84: e3fff620 bsr 0x39c4 // 39c4 + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 4d88: 1261 lrw r3, 0x200000a4 // 4e8c + 4d8a: 30ff movi r0, 255 + 4d8c: 9320 ld.w r1, (r3, 0x0) + 4d8e: 6840 and r1, r0 + 4d90: 3940 cmpnei r1, 0 + 4d92: 0c05 bf 0x4d9c // 4d9c + 4d94: 9340 ld.w r2, (r3, 0x0) + 4d96: 6880 and r2, r0 + 4d98: 3a41 cmpnei r2, 1 + 4d9a: 085f bt 0x4e58 // 4e58 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 4d9c: 9340 ld.w r2, (r3, 0x0) + 4d9e: 4227 lsli r1, r2, 7 + 4da0: 307f movi r0, 127 + 4da2: 8442 ld.b r2, (r4, 0x2) + 4da4: 6880 and r2, r0 + 4da6: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 4da8: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 4daa: 9340 ld.w r2, (r3, 0x0) + 4dac: 4a48 lsri r2, r2, 8 + 4dae: 7488 zextb r2, r2 + 4db0: 3a03 cmphsi r2, 4 + 4db2: 0857 bt 0x4e60 // 4e60 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 4db4: 9340 ld.w r2, (r3, 0x0) + 4db6: 3107 movi r1, 7 + 4db8: 4a48 lsri r2, r2, 8 + 4dba: 6884 and r2, r1 + 4dbc: 3070 movi r0, 112 + 4dbe: 8422 ld.b r1, (r4, 0x2) + 4dc0: 4244 lsli r2, r2, 4 + 4dc2: 6841 andn r1, r0 + 4dc4: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 4dc6: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 4dc8: 9340 ld.w r2, (r3, 0x0) + 4dca: 4a50 lsri r2, r2, 16 + 4dcc: 7488 zextb r2, r2 + 4dce: 3a03 cmphsi r2, 4 + 4dd0: 084c bt 0x4e68 // 4e68 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 4dd2: 9340 ld.w r2, (r3, 0x0) + 4dd4: 3107 movi r1, 7 + 4dd6: 4a50 lsri r2, r2, 16 + 4dd8: 6884 and r2, r1 + 4dda: 300e movi r0, 14 + 4ddc: 8422 ld.b r1, (r4, 0x2) + 4dde: 4241 lsli r2, r2, 1 + 4de0: 6841 andn r1, r0 + 4de2: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 4de4: a442 st.b r2, (r4, 0x2) + } + + if((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) //读取的温控设置温度合法 + 4de6: 9340 ld.w r2, (r3, 0x0) + 4de8: 4a58 lsri r2, r2, 24 + 4dea: 3a0f cmphsi r2, 16 + 4dec: 0c48 bf 0x4e7c // 4e7c + 4dee: 3284 movi r2, 132 + 4df0: 4256 lsli r2, r2, 22 + 4df2: 9320 ld.w r1, (r3, 0x0) + 4df4: 2a00 subi r2, 1 + 4df6: 6448 cmphs r2, r1 + 4df8: 0c42 bf 0x4e7c // 4e7c + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 4dfa: 9360 ld.w r3, (r3, 0x0) + 4dfc: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 4dfe: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 4e00: e3fffcca bsr 0x4794 // 4794 + 4e04: 1163 lrw r3, 0x20000264 // 4e90 + 4e06: 8362 ld.b r3, (r3, 0x2) + 4e08: 320a movi r2, 10 + 4e0a: 7cc8 mult r3, r2 + 4e0c: 2b59 subi r3, 90 + 4e0e: 600c addu r0, r3 + 4e10: 7401 zexth r0, r0 + 4e12: 4868 lsri r3, r0, 8 + 4e14: a469 st.b r3, (r4, 0x9) + 4e16: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 4e18: 310a movi r1, 10 + 4e1a: e3fff4d5 bsr 0x37c4 // 37c4 <__udivsi3> +// TempCtrl.CardState = 0x01; //默认插卡 +// TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + SYSCON->UREG0 = 0x00000000; + 4e1e: 107e lrw r3, 0x2000005c // 4e94 + 4e20: 3200 movi r2, 0 + 4e22: 9360 ld.w r3, (r3, 0x0) + 4e24: 23ff addi r3, 256 + 4e26: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 4e28: 8442 ld.b r2, (r4, 0x2) + 4e2a: 4239 lsli r1, r2, 25 + 4e2c: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 4e2e: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 4e30: 4128 lsli r1, r1, 8 + 4e32: 9300 ld.w r0, (r3, 0x0) + 4e34: 6c40 or r1, r0 + 4e36: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 4e38: 423c lsli r1, r2, 28 + 4e3a: 493d lsri r1, r1, 29 + 4e3c: 9300 ld.w r0, (r3, 0x0) + 4e3e: 4130 lsli r1, r1, 16 + 4e40: 6c40 or r1, r0 + 4e42: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 4e44: 8421 ld.b r1, (r4, 0x1) + 4e46: 9300 ld.w r0, (r3, 0x0) + 4e48: 4138 lsli r1, r1, 24 + 4e4a: 6c40 or r1, r0 + 4e4c: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 4e4e: 9320 ld.w r1, (r3, 0x0) + 4e50: 4a47 lsri r2, r2, 7 + 4e52: 6c84 or r2, r1 + 4e54: b340 st.w r2, (r3, 0x0) +} + 4e56: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 4e58: 8442 ld.b r2, (r4, 0x2) + 4e5a: 317f movi r1, 127 + 4e5c: 6884 and r2, r1 + 4e5e: 07a5 br 0x4da8 // 4da8 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 4e60: 8442 ld.b r2, (r4, 0x2) + 4e62: 3170 movi r1, 112 + 4e64: 6885 andn r2, r1 + 4e66: 07b0 br 0x4dc6 // 4dc6 + TempCtrl.TemState_Now.fan = FAN_MID; + 4e68: 8442 ld.b r2, (r4, 0x2) + 4e6a: 310e movi r1, 14 + 4e6c: 6885 andn r2, r1 + 4e6e: 3aa2 bseti r2, 2 + 4e70: 07ba br 0x4de4 // 4de4 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 4e72: 8462 ld.b r3, (r4, 0x2) + 4e74: 320e movi r2, 14 + 4e76: 68c9 andn r3, r2 + 4e78: 3ba2 bseti r3, 2 + 4e7a: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 4e7c: 3318 movi r3, 24 + 4e7e: 07c0 br 0x4dfe // 4dfe + 4e80: 200002e0 .long 0x200002e0 + 4e84: 200000a8 .long 0x200000a8 + 4e88: 0000745b .long 0x0000745b + 4e8c: 200000a4 .long 0x200000a4 + 4e90: 20000264 .long 0x20000264 + 4e94: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00004e98 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 4e98: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4e9a: 1031 lrw r1, 0x200002e0 // 4edc + 4e9c: 8162 ld.b r3, (r1, 0x2) + 4e9e: 748e sextb r2, r3 + 4ea0: 3adf btsti r2, 31 + 4ea2: 0c14 bf 0x4eca // 4eca + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 4ea4: 4359 lsli r2, r3, 25 + 4ea6: 4a5d lsri r2, r2, 29 + 4ea8: 3a42 cmpnei r2, 2 + 4eaa: 0c11 bf 0x4ecc // 4ecc + 4eac: 3a44 cmpnei r2, 4 + 4eae: 0c13 bf 0x4ed4 // 4ed4 + 4eb0: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 4eb2: 3270 movi r2, 112 + 4eb4: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 4eb6: 0802 bt 0x4eba // 4eba + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 4eb8: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //冷制 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 4eba: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 4ebc: 8142 ld.b r2, (r1, 0x2) + 4ebe: 4259 lsli r2, r2, 25 + 4ec0: 4a5d lsri r2, r2, 29 + 4ec2: 1028 lrw r1, 0x7474 // 4ee0 + 4ec4: 3000 movi r0, 0 + 4ec6: e3fff57f bsr 0x39c4 // 39c4 +} + 4eca: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 4ecc: 3270 movi r2, 112 + 4ece: 68c9 andn r3, r2 + 4ed0: 3ba6 bseti r3, 6 + 4ed2: 07f4 br 0x4eba // 4eba + TempCtrl.TemState_Now.mode = MODEL_COLD; //冷制 + 4ed4: 3270 movi r2, 112 + 4ed6: 68c9 andn r3, r2 + 4ed8: 07f1 br 0x4eba // 4eba + 4eda: 0000 bkpt + 4edc: 200002e0 .long 0x200002e0 + 4ee0: 00007474 .long 0x00007474 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00004ee4 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 4ee4: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4ee6: 1071 lrw r3, 0x200002e0 // 4f28 + 4ee8: 8342 ld.b r2, (r3, 0x2) + 4eea: 744a sextb r1, r2 + 4eec: 39df btsti r1, 31 + 4eee: 0c15 bf 0x4f18 // 4f18 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 4ef0: 421c lsli r0, r2, 28 + 4ef2: 481d lsri r0, r0, 29 + 4ef4: 3803 cmphsi r0, 4 + 4ef6: 0815 bt 0x4f20 // 4f20 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 4ef8: 8342 ld.b r2, (r3, 0x2) + 4efa: 310e movi r1, 14 + 4efc: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 4efe: e3ffdeff bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4f02: 0211 .short 0x0211 + 4f04: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 4f06: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; + 4f08: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 4f0a: 8342 ld.b r2, (r3, 0x2) + 4f0c: 425c lsli r2, r2, 28 + 4f0e: 4a5d lsri r2, r2, 29 + 4f10: 1027 lrw r1, 0x747d // 4f2c + 4f12: 3000 movi r0, 0 + 4f14: e3fff558 bsr 0x39c4 // 39c4 +} + 4f18: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 4f1a: 3aa1 bseti r2, 1 + 4f1c: 3aa2 bseti r2, 2 + 4f1e: 07f5 br 0x4f08 // 4f08 + TempCtrl.TemState_Now.fan = FAN_LOW; + 4f20: 310e movi r1, 14 + 4f22: 6885 andn r2, r1 + 4f24: 3aa1 bseti r2, 1 + 4f26: 07f1 br 0x4f08 // 4f08 + 4f28: 200002e0 .long 0x200002e0 + 4f2c: 0000747d .long 0x0000747d + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00004f30 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 4f30: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4f32: 106a lrw r3, 0x200002e0 // 4f58 + 4f34: 8342 ld.b r2, (r3, 0x2) + 4f36: 748a sextb r2, r2 + 4f38: 3adf btsti r2, 31 + 4f3a: 0c0b bf 0x4f50 // 4f50 + { + return ; + } + + TemSet = TempCtrl.TemState_Now.set_t;//TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 4f3c: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 4f3e: 3a05 cmphsi r2, 6 + 4f40: 0c09 bf 0x4f52 // 4f52 + { + TemSet--; //超过最低温度,就减 + 4f42: 2a00 subi r2, 1 + 4f44: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 4f46: 1026 lrw r1, 0x7484 // 4f5c + 4f48: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 4f4a: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 4f4c: e3fff53c bsr 0x39c4 // 39c4 +} + 4f50: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 4f52: 3205 movi r2, 5 + 4f54: 07f9 br 0x4f46 // 4f46 + 4f56: 0000 bkpt + 4f58: 200002e0 .long 0x200002e0 + 4f5c: 00007484 .long 0x00007484 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00004f60 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 4f60: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4f62: 106a lrw r3, 0x200002e0 // 4f88 + 4f64: 8342 ld.b r2, (r3, 0x2) + 4f66: 748a sextb r2, r2 + 4f68: 3adf btsti r2, 31 + 4f6a: 0c0c bf 0x4f82 // 4f82 + { + return ; + } + + TemSet = TempCtrl.TemState_Now.set_t;//TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 4f6c: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 4f6e: 3122 movi r1, 34 + 4f70: 6484 cmphs r1, r2 + 4f72: 0c09 bf 0x4f84 // 4f84 + { + TemSet++; + 4f74: 2200 addi r2, 1 + 4f76: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 4f78: 1025 lrw r1, 0x748d // 4f8c + 4f7a: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 4f7c: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 4f7e: e3fff523 bsr 0x39c4 // 39c4 +} + 4f82: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 4f84: 3223 movi r2, 35 + 4f86: 07f9 br 0x4f78 // 4f78 + 4f88: 200002e0 .long 0x200002e0 + 4f8c: 0000748d .long 0x0000748d + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00004f90 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 4f90: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 4f92: 104b lrw r2, 0x200002e0 // 4fbc + 4f94: 8262 ld.b r3, (r2, 0x2) + 4f96: 4b27 lsri r1, r3, 7 + 4f98: 3940 cmpnei r1, 0 + 4f9a: 0c0d bf 0x4fb4 // 4fb4 + 4f9c: 3941 cmpnei r1, 1 + 4f9e: 080b bt 0x4fb4 // 4fb4 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 4fa0: 317f movi r1, 127 + 4fa2: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 4fa4: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 4fa6: 8242 ld.b r2, (r2, 0x2) + 4fa8: 4a47 lsri r2, r2, 7 + 4faa: 1026 lrw r1, 0x748d // 4fc0 + 4fac: 3000 movi r0, 0 + 4fae: e3fff50b bsr 0x39c4 // 39c4 +} + 4fb2: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 4fb4: 3100 movi r1, 0 + 4fb6: 297f subi r1, 128 + 4fb8: 6cc4 or r3, r1 + 4fba: 07f5 br 0x4fa4 // 4fa4 + 4fbc: 200002e0 .long 0x200002e0 + 4fc0: 0000748d .long 0x0000748d + +Disassembly of section .text.Tem_Valve_Ctrl: + +00004fc4 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 4fc4: 14d2 push r4-r5, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 4fc6: 1196 lrw r4, 0x200002e0 // 509c + 4fc8: 8420 ld.b r1, (r4, 0x0) + 4fca: 3940 cmpnei r1, 0 + 4fcc: 0802 bt 0x4fd0 // 4fd0 + 4fce: 3123 movi r1, 35 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 4fd0: 8441 ld.b r2, (r4, 0x1) + 4fd2: 3a40 cmpnei r2, 0 + 4fd4: 0802 bt 0x4fd8 // 4fd8 + 4fd6: 3223 movi r2, 35 + switch(TempCtrl.TemState_Now.on_off) // + 4fd8: 8462 ld.b r3, (r4, 0x2) + 4fda: 4b07 lsri r0, r3, 7 + 4fdc: 3840 cmpnei r0, 0 + 4fde: 0c2c bf 0x5036 // 5036 + 4fe0: 3841 cmpnei r0, 1 + 4fe2: 085c bt 0x509a // 509a + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 4fe4: 4319 lsli r0, r3, 25 + 4fe6: 481d lsri r0, r0, 29 + 4fe8: 3842 cmpnei r0, 2 + 4fea: 0c23 bf 0x5030 // 5030 + 4fec: 3844 cmpnei r0, 4 + 4fee: 0c24 bf 0x5036 // 5036 + 4ff0: 3840 cmpnei r0, 0 + 4ff2: 0854 bt 0x509a // 509a + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 4ff4: 5a03 subi r0, r2, 1 + 4ff6: 6405 cmplt r1, r0 + 4ff8: 0c0d bf 0x5012 // 5012 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY2_COLD_CLOSE; + 4ffa: 11aa lrw r5, 0x2000004c // 50a0 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 4ffc: 3b80 bclri r3, 0 + RLY2_COLD_CLOSE; + 4ffe: 310f movi r1, 15 + 5000: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5002: a462 st.b r3, (r4, 0x2) + RLY2_COLD_CLOSE; + 5004: e3ffe73d bsr 0x1e7e // 1e7e + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + { + RLY2_COLD_OPEN; + RLY1_HOT_CLOSE; + 5008: 9500 ld.w r0, (r5, 0x0) + 500a: 310e movi r1, 14 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 500c: e3ffe739 bsr 0x1e7e // 1e7e + 5010: 0437 br 0x507e // 507e + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5012: 2200 addi r2, 1 + 5014: 6449 cmplt r2, r1 + 5016: 0c42 bf 0x509a // 509a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 5018: 3ba0 bseti r3, 0 + 501a: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 501c: 1162 lrw r3, 0x20000264 // 50a4 + 501e: 8361 ld.b r3, (r3, 0x1) + 5020: 3b41 cmpnei r3, 1 + 5022: 0823 bt 0x5068 // 5068 + RLY2_COLD_OPEN; + 5024: 10bf lrw r5, 0x2000004c // 50a0 + 5026: 310f movi r1, 15 + 5028: 9500 ld.w r0, (r5, 0x0) + 502a: e3ffe726 bsr 0x1e76 // 1e76 + 502e: 07ed br 0x5008 // 5008 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5030: 5a02 addi r0, r2, 1 + 5032: 6441 cmplt r0, r1 + 5034: 0c09 bf 0x5046 // 5046 + RLY1_HOT_CLOSE; + 5036: 10bb lrw r5, 0x2000004c // 50a0 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5038: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 503a: 310e movi r1, 14 + 503c: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 503e: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 5040: e3ffe71f bsr 0x1e7e // 1e7e + 5044: 040f br 0x5062 // 5062 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 5046: 2a00 subi r2, 1 + 5048: 6485 cmplt r1, r2 + 504a: 0c28 bf 0x509a // 509a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 504c: 3ba0 bseti r3, 0 + 504e: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 5050: 1075 lrw r3, 0x20000264 // 50a4 + 5052: 8361 ld.b r3, (r3, 0x1) + 5054: 3b41 cmpnei r3, 1 + 5056: 0809 bt 0x5068 // 5068 + RLY1_HOT_OPEN; + 5058: 10b2 lrw r5, 0x2000004c // 50a0 + 505a: 310e movi r1, 14 + 505c: 9500 ld.w r0, (r5, 0x0) + 505e: e3ffe70c bsr 0x1e76 // 1e76 + RLY2_COLD_CLOSE; + 5062: 9500 ld.w r0, (r5, 0x0) + 5064: 310f movi r1, 15 + 5066: 07d3 br 0x500c // 500c + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 5068: 3b40 cmpnei r3, 0 + 506a: 080a bt 0x507e // 507e + RLY2_COLD_OPEN; + 506c: 10ad lrw r5, 0x2000004c // 50a0 + 506e: 310f movi r1, 15 + 5070: 9500 ld.w r0, (r5, 0x0) + 5072: e3ffe702 bsr 0x1e76 // 1e76 + RLY1_HOT_OPEN; + 5076: 9500 ld.w r0, (r5, 0x0) + 5078: 310e movi r1, 14 + 507a: e3ffe6fe bsr 0x1e76 // 1e76 + if(rf_info.valve_state_last != TempCtrl.TemState_Now.valve) + 507e: 8462 ld.b r3, (r4, 0x2) + 5080: 437f lsli r3, r3, 31 + 5082: 4b7f lsri r3, r3, 31 + 5084: 1049 lrw r2, 0x200004a0 // 50a8 + 5086: 744c zextb r1, r3 + 5088: 8202 ld.b r0, (r2, 0x2) + 508a: 6442 cmpne r0, r1 + 508c: 0c07 bf 0x509a // 509a + { + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + rf_info.valve_flag = 0x01; + 508e: 3100 movi r1, 0 + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + 5090: a262 st.b r3, (r2, 0x2) + rf_info.valve_flag = 0x01; + 5092: 297f subi r1, 128 + 5094: 8261 ld.b r3, (r2, 0x1) + 5096: 6cc4 or r3, r1 + 5098: a261 st.b r3, (r2, 0x1) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 509a: 1492 pop r4-r5, r15 + 509c: 200002e0 .long 0x200002e0 + 50a0: 2000004c .long 0x2000004c + 50a4: 20000264 .long 0x20000264 + 50a8: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TemCtrl_Pro: + +000050ac : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 50ac: 14d1 push r4, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 50ae: 1117 lrw r0, 0x200000b4 // 5188 + 50b0: 1137 lrw r1, 0x200000d0 // 518c + 50b2: 9040 ld.w r2, (r0, 0x0) + 50b4: 9160 ld.w r3, (r1, 0x0) + 50b6: 608e subu r2, r3 + 50b8: 33fa movi r3, 250 + 50ba: 4362 lsli r3, r3, 2 + 50bc: 648c cmphs r3, r2 + 50be: 0833 bt 0x5124 // 5124 + { + tick = SysTick_1ms; + 50c0: 9060 ld.w r3, (r0, 0x0) + 50c2: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 50c4: e3fffb68 bsr 0x4794 // 4794 + 50c8: 1172 lrw r3, 0x20000264 // 5190 + 50ca: 8362 ld.b r3, (r3, 0x2) + 50cc: 320a movi r2, 10 + 50ce: 7cc8 mult r3, r2 + 50d0: 2b59 subi r3, 90 + 50d2: 600c addu r0, r3 + 50d4: 7401 zexth r0, r0 + 50d6: 1190 lrw r4, 0x200002e0 // 5194 + 50d8: 7480 zextb r2, r0 + 50da: 4868 lsri r3, r0, 8 + 50dc: a448 st.b r2, (r4, 0x8) + 50de: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 50e0: a44c st.b r2, (r4, 0xc) + 50e2: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50e4: 310a movi r1, 10 + 50e6: e3fff36f bsr 0x37c4 // 37c4 <__udivsi3> + 50ea: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 50ec: e3ffff6c bsr 0x4fc4 // 4fc4 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 50f0: 8462 ld.b r3, (r4, 0x2) + 50f2: 3271 movi r2, 113 + 50f4: 6c4f mov r1, r3 + 50f6: 6849 andn r1, r2 + 50f8: 3280 movi r2, 128 + 50fa: 6486 cmpne r1, r2 + 50fc: 083f bt 0x517a // 517a + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 50fe: 3270 movi r2, 112 + 5100: 68c8 and r3, r2 + 5102: 3b40 cmpnei r3, 0 + 5104: 0829 bt 0x5156 // 5156 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5106: 8461 ld.b r3, (r4, 0x1) + 5108: 8440 ld.b r2, (r4, 0x0) + 510a: 5b27 subi r1, r3, 2 + 510c: 6449 cmplt r2, r1 + 510e: 0c0c bf 0x5126 // 5126 + { + Relay_Stop(); //风速停 + 5110: e000074e bsr 0x5fac // 5fac + HT1621.wind_velocity = 0; + 5114: 1161 lrw r3, 0x200002a4 // 5198 + 5116: 3200 movi r2, 0 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 1; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5118: 8402 ld.b r0, (r4, 0x2) + 511a: 401c lsli r0, r0, 28 + 511c: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 1; + 511e: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5120: e3fffce6 bsr 0x4aec // 4aec + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 5124: 1491 pop r4, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5126: 5b23 subi r1, r3, 1 + 5128: 644a cmpne r2, r1 + 512a: 0806 bt 0x5136 // 5136 + Relay_Low(); //低风速 + 512c: e000072e bsr 0x5f88 // 5f88 + HT1621.wind_velocity = 1; + 5130: 107a lrw r3, 0x200002a4 // 5198 + 5132: 3201 movi r2, 1 + 5134: 07f2 br 0x5118 // 5118 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5136: 5b22 addi r1, r3, 1 + 5138: 644a cmpne r2, r1 + 513a: 0806 bt 0x5146 // 5146 + Relay_Mid(); //中风速 + 513c: e0000714 bsr 0x5f64 // 5f64 + HT1621.wind_velocity = 2; + 5140: 1076 lrw r3, 0x200002a4 // 5198 + 5142: 3202 movi r2, 2 + 5144: 07ea br 0x5118 // 5118 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5146: 2301 addi r3, 2 + 5148: 648d cmplt r3, r2 + 514a: 0fed bf 0x5124 // 5124 + Relay_High(); //高风速 + 514c: e00006fa bsr 0x5f40 // 5f40 + HT1621.wind_velocity = 3; + 5150: 1072 lrw r3, 0x200002a4 // 5198 + 5152: 3203 movi r2, 3 + 5154: 07e2 br 0x5118 // 5118 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 5156: 3220 movi r2, 32 + 5158: 648e cmpne r3, r2 + 515a: 0be5 bt 0x5124 // 5124 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 515c: 8461 ld.b r3, (r4, 0x1) + 515e: 8440 ld.b r2, (r4, 0x0) + 5160: 5b27 subi r1, r3, 2 + 5162: 6449 cmplt r2, r1 + 5164: 0bf4 bt 0x514c // 514c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5166: 5b23 subi r1, r3, 1 + 5168: 644a cmpne r2, r1 + 516a: 0fe9 bf 0x513c // 513c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 516c: 5b22 addi r1, r3, 1 + 516e: 644a cmpne r2, r1 + 5170: 0fde bf 0x512c // 512c + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5172: 2301 addi r3, 2 + 5174: 648d cmplt r3, r2 + 5176: 0fd7 bf 0x5124 // 5124 + 5178: 07cc br 0x5110 // 5110 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 517a: 74ce sextb r3, r3 + 517c: 3bdf btsti r3, 31 + 517e: 0bd3 bt 0x5124 // 5124 + Relay_Stop(); //风速停 + 5180: e0000716 bsr 0x5fac // 5fac + 5184: 07d0 br 0x5124 // 5124 + 5186: 0000 bkpt + 5188: 200000b4 .long 0x200000b4 + 518c: 200000d0 .long 0x200000d0 + 5190: 20000264 .long 0x20000264 + 5194: 200002e0 .long 0x200002e0 + 5198: 200002a4 .long 0x200002a4 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +0000519c : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 519c: 14d2 push r4-r5, r15 + 519e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 51a0: 112d lrw r1, 0x749b // 5254 + 51a2: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 51a4: 118d lrw r4, 0x200002f5 // 5258 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 51a6: e3fff40f bsr 0x39c4 // 39c4 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 51aa: 8460 ld.b r3, (r4, 0x0) + 51ac: 3b41 cmpnei r3, 1 + 51ae: 11ac lrw r5, 0x200000b4 // 525c + 51b0: 082e bt 0x520c // 520c + { + Debug_Inf.Tick = SysTick_1ms; + 51b2: 9560 ld.w r3, (r5, 0x0) + 51b4: 4b48 lsri r2, r3, 8 + 51b6: a467 st.b r3, (r4, 0x7) + 51b8: a448 st.b r2, (r4, 0x8) + 51ba: 4b50 lsri r2, r3, 16 + 51bc: 4b78 lsri r3, r3, 24 + 51be: a46a st.b r3, (r4, 0xa) + if(Debug_Inf.Page < PAGE5ID) + 51c0: 8462 ld.b r3, (r4, 0x2) + 51c2: 3b04 cmphsi r3, 5 + Debug_Inf.Tick = SysTick_1ms; + 51c4: a449 st.b r2, (r4, 0x9) + if(Debug_Inf.Page < PAGE5ID) + 51c6: 0803 bt 0x51cc // 51cc + { + Debug_Inf.Page++; + 51c8: 2300 addi r3, 1 + 51ca: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 51cc: e3fffb7a bsr 0x48c0 // 48c0 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 51d0: 8462 ld.b r3, (r4, 0x2) + 51d2: 3b42 cmpnei r3, 2 + 51d4: 0806 bt 0x51e0 // 51e0 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 51d6: 8404 ld.b r0, (r4, 0x4) + 51d8: e3fffd66 bsr 0x4ca4 // 4ca4 + } + } + + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 51dc: 1401 addi r14, r14, 4 + 51de: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 51e0: 3b41 cmpnei r3, 1 + 51e2: 0806 bt 0x51ee // 51ee + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 51e4: 8423 ld.b r1, (r4, 0x3) + 51e6: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 51e8: e3fffd12 bsr 0x4c0c // 4c0c + 51ec: 07f8 br 0x51dc // 51dc + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 51ee: 3b43 cmpnei r3, 3 + 51f0: 0804 bt 0x51f8 // 51f8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 51f2: 8425 ld.b r1, (r4, 0x5) + 51f4: 3003 movi r0, 3 + 51f6: 07f9 br 0x51e8 // 51e8 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 51f8: 3b44 cmpnei r3, 4 + 51fa: 0804 bt 0x5202 // 5202 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 51fc: 8426 ld.b r1, (r4, 0x6) + 51fe: 3004 movi r0, 4 + 5200: 07f4 br 0x51e8 // 51e8 + else if(Debug_Inf.Page == PAGE5ID) //暂时无功能 + 5202: 3b45 cmpnei r3, 5 + 5204: 0bec bt 0x51dc // 51dc + Set_Device_ADDR(Debug_Inf.Page,0x00); + 5206: 3100 movi r1, 0 + 5208: 3005 movi r0, 5 + 520a: 07ef br 0x51e8 // 51e8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 520c: 1095 lrw r4, 0x200002e0 // 5260 + 520e: 8462 ld.b r3, (r4, 0x2) + 5210: 74ce sextb r3, r3 + 5212: 3bdf btsti r3, 31 + 5214: 0c17 bf 0x5242 // 5242 + TemCtrl_Model_Set(); //模式切换 + 5216: e3fffe41 bsr 0x4e98 // 4e98 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 521a: 1073 lrw r3, 0x200004a0 // 5264 + 521c: 8340 ld.b r2, (r3, 0x0) + 521e: 3a41 cmpnei r2, 1 + 5220: 080a bt 0x5234 // 5234 + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,ACTIVE); + 5222: 8462 ld.b r3, (r4, 0x2) + 5224: 4379 lsli r3, r3, 25 + 5226: b840 st.w r2, (r14, 0x0) + 5228: 4b7d lsri r3, r3, 29 + 522a: 3204 movi r2, 4 + 522c: 3102 movi r1, 2 + 522e: 3005 movi r0, 5 + 5230: e000049a bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 5234: 106d lrw r3, 0x20000264 // 5268 + 5236: 8364 ld.b r3, (r3, 0x4) + 5238: 3b41 cmpnei r3, 1 + 523a: 0804 bt 0x5242 // 5242 + Controlled_LCD_Backlight(1); + 523c: 3001 movi r0, 1 + 523e: e3fffcd5 bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 5242: 9560 ld.w r3, (r5, 0x0) + 5244: 4b48 lsri r2, r3, 8 + 5246: a470 st.b r3, (r4, 0x10) + 5248: a451 st.b r2, (r4, 0x11) + 524a: 4b50 lsri r2, r3, 16 + 524c: 4b78 lsri r3, r3, 24 + 524e: a452 st.b r2, (r4, 0x12) + 5250: a473 st.b r3, (r4, 0x13) +} + 5252: 07c5 br 0x51dc // 51dc + 5254: 0000749b .long 0x0000749b + 5258: 200002f5 .long 0x200002f5 + 525c: 200000b4 .long 0x200000b4 + 5260: 200002e0 .long 0x200002e0 + 5264: 200004a0 .long 0x200004a0 + 5268: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +0000526c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 526c: 14d2 push r4-r5, r15 + 526e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5270: 112d lrw r1, 0x74b0 // 5324 + 5272: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5274: 118d lrw r4, 0x200002f5 // 5328 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5276: e3fff3a7 bsr 0x39c4 // 39c4 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 527a: 8460 ld.b r3, (r4, 0x0) + 527c: 3b41 cmpnei r3, 1 + 527e: 11ac lrw r5, 0x200000b4 // 532c + 5280: 082e bt 0x52dc // 52dc + { + Debug_Inf.Tick = SysTick_1ms; + 5282: 9560 ld.w r3, (r5, 0x0) + 5284: 4b48 lsri r2, r3, 8 + 5286: a467 st.b r3, (r4, 0x7) + 5288: a448 st.b r2, (r4, 0x8) + 528a: 4b50 lsri r2, r3, 16 + 528c: 4b78 lsri r3, r3, 24 + 528e: a46a st.b r3, (r4, 0xa) + if(Debug_Inf.Page > PAGE1ID) + 5290: 8462 ld.b r3, (r4, 0x2) + 5292: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 5294: a449 st.b r2, (r4, 0x9) + if(Debug_Inf.Page > PAGE1ID) + 5296: 0c03 bf 0x529c // 529c + { + Debug_Inf.Page--; + 5298: 2b00 subi r3, 1 + 529a: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 529c: e3fffb12 bsr 0x48c0 // 48c0 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 52a0: 8462 ld.b r3, (r4, 0x2) + 52a2: 3b42 cmpnei r3, 2 + 52a4: 0806 bt 0x52b0 // 52b0 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 52a6: 8404 ld.b r0, (r4, 0x4) + 52a8: e3fffcfe bsr 0x4ca4 // 4ca4 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 52ac: 1401 addi r14, r14, 4 + 52ae: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 52b0: 3b41 cmpnei r3, 1 + 52b2: 0806 bt 0x52be // 52be + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 52b4: 8423 ld.b r1, (r4, 0x3) + 52b6: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 52b8: e3fffcaa bsr 0x4c0c // 4c0c + 52bc: 07f8 br 0x52ac // 52ac + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 52be: 3b43 cmpnei r3, 3 + 52c0: 0804 bt 0x52c8 // 52c8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 52c2: 8425 ld.b r1, (r4, 0x5) + 52c4: 3003 movi r0, 3 + 52c6: 07f9 br 0x52b8 // 52b8 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 52c8: 3b44 cmpnei r3, 4 + 52ca: 0804 bt 0x52d2 // 52d2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 52cc: 8426 ld.b r1, (r4, 0x6) + 52ce: 3004 movi r0, 4 + 52d0: 07f4 br 0x52b8 // 52b8 + else if(Debug_Inf.Page == PAGE5ID) //暂时无功能 + 52d2: 3b45 cmpnei r3, 5 + 52d4: 0bec bt 0x52ac // 52ac + Set_Device_ADDR(Debug_Inf.Page,0x00); + 52d6: 3100 movi r1, 0 + 52d8: 3005 movi r0, 5 + 52da: 07ef br 0x52b8 // 52b8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 52dc: 1095 lrw r4, 0x200002e0 // 5330 + 52de: 8462 ld.b r3, (r4, 0x2) + 52e0: 74ce sextb r3, r3 + 52e2: 3bdf btsti r3, 31 + 52e4: 0c17 bf 0x5312 // 5312 + TemCtrl_Fan_Set(); //风速切换 + 52e6: e3fffdff bsr 0x4ee4 // 4ee4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 52ea: 1073 lrw r3, 0x200004a0 // 5334 + 52ec: 8340 ld.b r2, (r3, 0x0) + 52ee: 3a41 cmpnei r2, 1 + 52f0: 080a bt 0x5304 // 5304 + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,ACTIVE); + 52f2: 8462 ld.b r3, (r4, 0x2) + 52f4: 437c lsli r3, r3, 28 + 52f6: b840 st.w r2, (r14, 0x0) + 52f8: 4b7d lsri r3, r3, 29 + 52fa: 3204 movi r2, 4 + 52fc: 3140 movi r1, 64 + 52fe: 3005 movi r0, 5 + 5300: e0000432 bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 5304: 106d lrw r3, 0x20000264 // 5338 + 5306: 8364 ld.b r3, (r3, 0x4) + 5308: 3b41 cmpnei r3, 1 + 530a: 0804 bt 0x5312 // 5312 + Controlled_LCD_Backlight(1); + 530c: 3001 movi r0, 1 + 530e: e3fffc6d bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 5312: 9560 ld.w r3, (r5, 0x0) + 5314: 4b48 lsri r2, r3, 8 + 5316: a470 st.b r3, (r4, 0x10) + 5318: a451 st.b r2, (r4, 0x11) + 531a: 4b50 lsri r2, r3, 16 + 531c: 4b78 lsri r3, r3, 24 + 531e: a452 st.b r2, (r4, 0x12) + 5320: a473 st.b r3, (r4, 0x13) +} + 5322: 07c5 br 0x52ac // 52ac + 5324: 000074b0 .long 0x000074b0 + 5328: 200002f5 .long 0x200002f5 + 532c: 200000b4 .long 0x200000b4 + 5330: 200002e0 .long 0x200002e0 + 5334: 200004a0 .long 0x200004a0 + 5338: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +0000533c : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 533c: 14d2 push r4-r5, r15 + 533e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 5340: 1130 lrw r1, 0x74c3 // 5400 + 5342: 3000 movi r0, 0 + 5344: e3fff340 bsr 0x39c4 // 39c4 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5348: 116f lrw r3, 0x200002f5 // 5404 + 534a: 8340 ld.b r2, (r3, 0x0) + 534c: 3a41 cmpnei r2, 1 + 534e: 11af lrw r5, 0x200000b4 // 5408 + 5350: 0834 bt 0x53b8 // 53b8 + { + Debug_Inf.Tick = SysTick_1ms; + 5352: 9540 ld.w r2, (r5, 0x0) + 5354: 4a28 lsri r1, r2, 8 + 5356: a347 st.b r2, (r3, 0x7) + 5358: a328 st.b r1, (r3, 0x8) + 535a: 4a30 lsri r1, r2, 16 + 535c: 4a58 lsri r2, r2, 24 + 535e: a34a st.b r2, (r3, 0xa) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 5360: 8342 ld.b r2, (r3, 0x2) + 5362: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5364: a329 st.b r1, (r3, 0x9) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 5366: 0807 bt 0x5374 // 5374 + { + Debug_Inf.PipeFlag = 0x01; + 5368: a343 st.b r2, (r3, 0x3) + //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 536a: 3101 movi r1, 1 + 536c: 3001 movi r0, 1 + Debug_Inf.KSens_Level++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + } + else if(Debug_Inf.Page == 0x05) //暂时无功能 + { + Set_Device_ADDR(Debug_Inf.Page,0x00); + 536e: e3fffc4f bsr 0x4c0c // 4c0c + 5372: 040b br 0x5388 // 5388 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 5374: 3a42 cmpnei r2, 2 + 5376: 080b bt 0x538c // 538c + 5378: 8304 ld.b r0, (r3, 0x4) + 537a: 3811 cmphsi r0, 18 + 537c: 0806 bt 0x5388 // 5388 + Debug_Inf.TempDiff++; + 537e: 2000 addi r0, 1 + 5380: 7400 zextb r0, r0 + 5382: a304 st.b r0, (r3, 0x4) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5384: e3fffc90 bsr 0x4ca4 // 4ca4 + + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 5388: 1401 addi r14, r14, 4 + 538a: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 538c: 3a43 cmpnei r2, 3 + 538e: 0806 bt 0x539a // 539a + Debug_Inf.BackLight_En = 0x01; + 5390: 3201 movi r2, 1 + 5392: a345 st.b r2, (r3, 0x5) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5394: 3101 movi r1, 1 + 5396: 3003 movi r0, 3 + 5398: 07eb br 0x536e // 536e + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 539a: 3a44 cmpnei r2, 4 + 539c: 0809 bt 0x53ae // 53ae + 539e: 8326 ld.b r1, (r3, 0x6) + 53a0: 3901 cmphsi r1, 2 + 53a2: 0bf3 bt 0x5388 // 5388 + Debug_Inf.KSens_Level++; + 53a4: 2100 addi r1, 1 + 53a6: 7444 zextb r1, r1 + 53a8: a326 st.b r1, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 53aa: 3004 movi r0, 4 + 53ac: 07e1 br 0x536e // 536e + else if(Debug_Inf.Page == 0x05) //暂时无功能 + 53ae: 3a45 cmpnei r2, 5 + 53b0: 0bec bt 0x5388 // 5388 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 53b2: 3100 movi r1, 0 + 53b4: 3005 movi r0, 5 + 53b6: 07dc br 0x536e // 536e + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 53b8: 1095 lrw r4, 0x200002e0 // 540c + 53ba: 8462 ld.b r3, (r4, 0x2) + 53bc: 74ce sextb r3, r3 + 53be: 3bdf btsti r3, 31 + 53c0: 0c17 bf 0x53ee // 53ee + TemCtrl_Temperature_Add(); //设置温度+ + 53c2: e3fffdcf bsr 0x4f60 // 4f60 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 53c6: 1073 lrw r3, 0x200004a0 // 5410 + 53c8: 8340 ld.b r2, (r3, 0x0) + 53ca: 3a41 cmpnei r2, 1 + 53cc: 080a bt 0x53e0 // 53e0 + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 53ce: 310a movi r1, 10 + 53d0: 8461 ld.b r3, (r4, 0x1) + 53d2: 7cc4 mult r3, r1 + 53d4: b840 st.w r2, (r14, 0x0) + 53d6: 3110 movi r1, 16 + 53d8: 3202 movi r2, 2 + 53da: 3008 movi r0, 8 + 53dc: e00003c4 bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 53e0: 106d lrw r3, 0x20000264 // 5414 + 53e2: 8364 ld.b r3, (r3, 0x4) + 53e4: 3b41 cmpnei r3, 1 + 53e6: 0804 bt 0x53ee // 53ee + Controlled_LCD_Backlight(1); + 53e8: 3001 movi r0, 1 + 53ea: e3fffbff bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 53ee: 9560 ld.w r3, (r5, 0x0) + 53f0: 4b48 lsri r2, r3, 8 + 53f2: a470 st.b r3, (r4, 0x10) + 53f4: a451 st.b r2, (r4, 0x11) + 53f6: 4b50 lsri r2, r3, 16 + 53f8: 4b78 lsri r3, r3, 24 + 53fa: a452 st.b r2, (r4, 0x12) + 53fc: a473 st.b r3, (r4, 0x13) +} + 53fe: 07c5 br 0x5388 // 5388 + 5400: 000074c3 .long 0x000074c3 + 5404: 200002f5 .long 0x200002f5 + 5408: 200000b4 .long 0x200000b4 + 540c: 200002e0 .long 0x200002e0 + 5410: 200004a0 .long 0x200004a0 + 5414: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00005418 : + + +void KEY3_Long_Press_Fun(void) +{ + 5418: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 541a: 1097 lrw r4, 0x200002f5 // 5474 + 541c: 8460 ld.b r3, (r4, 0x0) + 541e: 3b40 cmpnei r3, 0 + 5420: 0828 bt 0x5470 // 5470 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 5422: 8461 ld.b r3, (r4, 0x1) + 5424: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5426: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 5428: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 542a: 0823 bt 0x5470 // 5470 + 542c: 1073 lrw r3, 0x200002e0 // 5478 + 542e: 8362 ld.b r3, (r3, 0x2) + 5430: 74ce sextb r3, r3 + 5432: 3bdf btsti r3, 31 + 5434: 081e bt 0x5470 // 5470 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 5436: 1032 lrw r1, 0x74da // 547c + 5438: 3000 movi r0, 0 + 543a: e3fff2c5 bsr 0x39c4 // 39c4 + Debug_Inf.Tick = SysTick_1ms; + 543e: 1071 lrw r3, 0x200000b4 // 5480 + 5440: 9360 ld.w r3, (r3, 0x0) + 5442: 4b48 lsri r2, r3, 8 + 5444: a467 st.b r3, (r4, 0x7) + 5446: a448 st.b r2, (r4, 0x8) + 5448: 4b50 lsri r2, r3, 16 + 544a: 4b78 lsri r3, r3, 24 + 544c: a46a st.b r3, (r4, 0xa) + Debug_Inf.Press_Flag = 0x00; + 544e: 3300 movi r3, 0 + 5450: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 5452: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 5454: a449 st.b r2, (r4, 0x9) + Debug_Inf.State = 0x01; + 5456: a460 st.b r3, (r4, 0x0) + HT1621_Clear(); + 5458: e3fffa34 bsr 0x48c0 // 48c0 + Controlled_LCD_Backlight(0x01); + 545c: 3001 movi r0, 1 + 545e: e3fffbc5 bsr 0x4be8 // 4be8 + Controlled_Buzzer(0x01); + 5462: 3001 movi r0, 1 + 5464: e3fffb9e bsr 0x4ba0 // 4ba0 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 5468: 8423 ld.b r1, (r4, 0x3) + 546a: 3001 movi r0, 1 + 546c: e3fffbd0 bsr 0x4c0c // 4c0c + + } + } + +} + 5470: 1491 pop r4, r15 + 5472: 0000 bkpt + 5474: 200002f5 .long 0x200002f5 + 5478: 200002e0 .long 0x200002e0 + 547c: 000074da .long 0x000074da + 5480: 200000b4 .long 0x200000b4 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00005484 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 5484: 14d2 push r4-r5, r15 + 5486: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 5488: 1131 lrw r1, 0x74e3 // 554c + 548a: 3000 movi r0, 0 + 548c: e3fff29c bsr 0x39c4 // 39c4 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5490: 1170 lrw r3, 0x200002f5 // 5550 + 5492: 8340 ld.b r2, (r3, 0x0) + 5494: 3a41 cmpnei r2, 1 + 5496: 11b0 lrw r5, 0x200000b4 // 5554 + 5498: 0835 bt 0x5502 // 5502 + { + Debug_Inf.Tick = SysTick_1ms; + 549a: 9540 ld.w r2, (r5, 0x0) + 549c: 4a28 lsri r1, r2, 8 + 549e: a347 st.b r2, (r3, 0x7) + 54a0: a328 st.b r1, (r3, 0x8) + 54a2: 4a30 lsri r1, r2, 16 + 54a4: 4a58 lsri r2, r2, 24 + 54a6: a34a st.b r2, (r3, 0xa) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 54a8: 8342 ld.b r2, (r3, 0x2) + 54aa: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 54ac: a329 st.b r1, (r3, 0x9) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 54ae: 0808 bt 0x54be // 54be + { +// Debug_Inf.DevAddr--; + Debug_Inf.PipeFlag = 0x00; + 54b0: 3200 movi r2, 0 + 54b2: a343 st.b r2, (r3, 0x3) + //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 54b4: 3100 movi r1, 0 + 54b6: 3001 movi r0, 1 + Debug_Inf.KSens_Level--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + } + else if(Debug_Inf.Page == 0x05) //暂时无功能 + { + Set_Device_ADDR(Debug_Inf.Page,0x00); + 54b8: e3fffbaa bsr 0x4c0c // 4c0c + 54bc: 040b br 0x54d2 // 54d2 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 54be: 3a42 cmpnei r2, 2 + 54c0: 080b bt 0x54d6 // 54d6 + 54c2: 8304 ld.b r0, (r3, 0x4) + 54c4: 3840 cmpnei r0, 0 + 54c6: 0c06 bf 0x54d2 // 54d2 + Debug_Inf.TempDiff--; + 54c8: 2800 subi r0, 1 + 54ca: 7400 zextb r0, r0 + 54cc: a304 st.b r0, (r3, 0x4) + Set_Temp_Difference(Debug_Inf.TempDiff); + 54ce: e3fffbeb bsr 0x4ca4 // 4ca4 + + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 54d2: 1401 addi r14, r14, 4 + 54d4: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 54d6: 3a43 cmpnei r2, 3 + 54d8: 0806 bt 0x54e4 // 54e4 + Debug_Inf.BackLight_En = 0x00; + 54da: 3200 movi r2, 0 + 54dc: a345 st.b r2, (r3, 0x5) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 54de: 3100 movi r1, 0 + 54e0: 3003 movi r0, 3 + 54e2: 07eb br 0x54b8 // 54b8 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 54e4: 3a44 cmpnei r2, 4 + 54e6: 0809 bt 0x54f8 // 54f8 + 54e8: 8326 ld.b r1, (r3, 0x6) + 54ea: 3940 cmpnei r1, 0 + 54ec: 0ff3 bf 0x54d2 // 54d2 + Debug_Inf.KSens_Level--; + 54ee: 2900 subi r1, 1 + 54f0: 7444 zextb r1, r1 + 54f2: a326 st.b r1, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 54f4: 3004 movi r0, 4 + 54f6: 07e1 br 0x54b8 // 54b8 + else if(Debug_Inf.Page == 0x05) //暂时无功能 + 54f8: 3a45 cmpnei r2, 5 + 54fa: 0bec bt 0x54d2 // 54d2 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 54fc: 3100 movi r1, 0 + 54fe: 3005 movi r0, 5 + 5500: 07dc br 0x54b8 // 54b8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5502: 1096 lrw r4, 0x200002e0 // 5558 + 5504: 8462 ld.b r3, (r4, 0x2) + 5506: 74ce sextb r3, r3 + 5508: 3bdf btsti r3, 31 + 550a: 0c17 bf 0x5538 // 5538 + TemCtrl_Temperature_Dec(); //设置温度- + 550c: e3fffd12 bsr 0x4f30 // 4f30 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5510: 1073 lrw r3, 0x200004a0 // 555c + 5512: 8340 ld.b r2, (r3, 0x0) + 5514: 3a41 cmpnei r2, 1 + 5516: 080a bt 0x552a // 552a + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 5518: 310a movi r1, 10 + 551a: 8461 ld.b r3, (r4, 0x1) + 551c: 7cc4 mult r3, r1 + 551e: b840 st.w r2, (r14, 0x0) + 5520: 3110 movi r1, 16 + 5522: 3202 movi r2, 2 + 5524: 3008 movi r0, 8 + 5526: e000031f bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 552a: 106e lrw r3, 0x20000264 // 5560 + 552c: 8364 ld.b r3, (r3, 0x4) + 552e: 3b41 cmpnei r3, 1 + 5530: 0804 bt 0x5538 // 5538 + Controlled_LCD_Backlight(1); + 5532: 3001 movi r0, 1 + 5534: e3fffb5a bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 5538: 9560 ld.w r3, (r5, 0x0) + 553a: 4b48 lsri r2, r3, 8 + 553c: a470 st.b r3, (r4, 0x10) + 553e: a451 st.b r2, (r4, 0x11) + 5540: 4b50 lsri r2, r3, 16 + 5542: 4b78 lsri r3, r3, 24 + 5544: a452 st.b r2, (r4, 0x12) + 5546: a473 st.b r3, (r4, 0x13) +} + 5548: 07c5 br 0x54d2 // 54d2 + 554a: 0000 bkpt + 554c: 000074e3 .long 0x000074e3 + 5550: 200002f5 .long 0x200002f5 + 5554: 200000b4 .long 0x200000b4 + 5558: 200002e0 .long 0x200002e0 + 555c: 200004a0 .long 0x200004a0 + 5560: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY4_Long_Press: + +00005564 : + +void KEY4_Long_Press(void) +{ + 5564: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 5566: 1097 lrw r4, 0x200002f5 // 55c0 + 5568: 8460 ld.b r3, (r4, 0x0) + 556a: 3b40 cmpnei r3, 0 + 556c: 0828 bt 0x55bc // 55bc + { + Debug_Inf.Press_Flag |= (0x01<<1); + 556e: 8461 ld.b r3, (r4, 0x1) + 5570: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5572: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 5574: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5576: 0823 bt 0x55bc // 55bc + 5578: 1073 lrw r3, 0x200002e0 // 55c4 + 557a: 8362 ld.b r3, (r3, 0x2) + 557c: 74ce sextb r3, r3 + 557e: 3bdf btsti r3, 31 + 5580: 081e bt 0x55bc // 55bc + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 5582: 1032 lrw r1, 0x74da // 55c8 + 5584: 3000 movi r0, 0 + 5586: e3fff21f bsr 0x39c4 // 39c4 + Debug_Inf.Tick = SysTick_1ms; + 558a: 1071 lrw r3, 0x200000b4 // 55cc + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Controlled_LCD_Backlight(0x01); + 558c: 3001 movi r0, 1 + Debug_Inf.Tick = SysTick_1ms; + 558e: 9360 ld.w r3, (r3, 0x0) + 5590: 4b48 lsri r2, r3, 8 + 5592: a467 st.b r3, (r4, 0x7) + 5594: a448 st.b r2, (r4, 0x8) + 5596: 4b50 lsri r2, r3, 16 + 5598: 4b78 lsri r3, r3, 24 + 559a: a46a st.b r3, (r4, 0xa) + Debug_Inf.Press_Flag = 0x00; + 559c: 3300 movi r3, 0 + 559e: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 55a0: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 55a2: a449 st.b r2, (r4, 0x9) + Debug_Inf.State = 0x01; + 55a4: a460 st.b r3, (r4, 0x0) + Controlled_LCD_Backlight(0x01); + 55a6: e3fffb21 bsr 0x4be8 // 4be8 + HT1621_Clear(); + 55aa: e3fff98b bsr 0x48c0 // 48c0 + Controlled_Buzzer(0x01); + 55ae: 3001 movi r0, 1 + 55b0: e3fffaf8 bsr 0x4ba0 // 4ba0 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 55b4: 8423 ld.b r1, (r4, 0x3) + 55b6: 3001 movi r0, 1 + 55b8: e3fffb2a bsr 0x4c0c // 4c0c + + } + } +} + 55bc: 1491 pop r4, r15 + 55be: 0000 bkpt + 55c0: 200002f5 .long 0x200002f5 + 55c4: 200002e0 .long 0x200002e0 + 55c8: 000074da .long 0x000074da + 55cc: 200000b4 .long 0x200000b4 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +000055d0 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 55d0: 14d1 push r4, r15 + 55d2: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 55d4: 103a lrw r1, 0x74fa // 563c + 55d6: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 55d8: 109a lrw r4, 0x200002f5 // 5640 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 55da: e3fff1f5 bsr 0x39c4 // 39c4 + if(Debug_Inf.State == 0x00) //正常模式 + 55de: 8460 ld.b r3, (r4, 0x0) + 55e0: 3b40 cmpnei r3, 0 + 55e2: 081a bt 0x5616 // 5616 + { + TemCtrl_OnOff_Set(); //开关机切换 + 55e4: e3fffcd6 bsr 0x4f90 // 4f90 + + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 55e8: 1077 lrw r3, 0x200004a0 // 5644 + 55ea: 8340 ld.b r2, (r3, 0x0) + 55ec: 3a41 cmpnei r2, 1 + 55ee: 1097 lrw r4, 0x200002e0 // 5648 + 55f0: 0808 bt 0x5600 // 5600 + { + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,ACTIVE); + 55f2: 8462 ld.b r3, (r4, 0x2) + 55f4: 4b67 lsri r3, r3, 7 + 55f6: b840 st.w r2, (r14, 0x0) + 55f8: 3101 movi r1, 1 + 55fa: 3005 movi r0, 5 + 55fc: e00002b4 bsr 0x5b64 // 5b64 + } + + TempCtrl.BackLightTick = SysTick_1ms; + 5600: 1073 lrw r3, 0x200000b4 // 564c + 5602: 9360 ld.w r3, (r3, 0x0) + 5604: 4b48 lsri r2, r3, 8 + 5606: a470 st.b r3, (r4, 0x10) + 5608: a451 st.b r2, (r4, 0x11) + 560a: 4b50 lsri r2, r3, 16 + 560c: 4b78 lsri r3, r3, 24 + 560e: a452 st.b r2, (r4, 0x12) + 5610: a473 st.b r3, (r4, 0x13) + //关背光 + Controlled_LCD_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 5612: 1401 addi r14, r14, 4 + 5614: 1491 pop r4, r15 + else if(Debug_Inf.State == 0x01) //设置模式 + 5616: 3b41 cmpnei r3, 1 + 5618: 0bfd bt 0x5612 // 5612 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 561a: 102e lrw r1, 0x750f // 5650 + 561c: 3000 movi r0, 0 + 561e: e3fff1d3 bsr 0x39c4 // 39c4 + Debug_Inf.State = 0x00; + 5622: 3300 movi r3, 0 + 5624: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 5626: 3301 movi r3, 1 + 5628: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 562a: e3fff94b bsr 0x48c0 // 48c0 + Controlled_LCD_Backlight(0x00); + 562e: 3000 movi r0, 0 + 5630: e3fffadc bsr 0x4be8 // 4be8 + Dev_SaveData(); + 5634: e000013c bsr 0x58ac // 58ac +} + 5638: 07ed br 0x5612 // 5612 + 563a: 0000 bkpt + 563c: 000074fa .long 0x000074fa + 5640: 200002f5 .long 0x200002f5 + 5644: 200004a0 .long 0x200004a0 + 5648: 200002e0 .long 0x200002e0 + 564c: 200000b4 .long 0x200000b4 + 5650: 0000750f .long 0x0000750f + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00005654 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 5654: 14d1 push r4, r15 + if(state == TEMP_ON) + 5656: 3841 cmpnei r0, 1 + 5658: 081f bt 0x5696 // 5696 + { + Control_Prompt_Text(1); + Control_Mode(TempCtrl.TemState_Now.mode); + 565a: 1091 lrw r4, 0x200002e0 // 569c + Control_Prompt_Text(1); + 565c: e3fffa80 bsr 0x4b5c // 4b5c + Control_Mode(TempCtrl.TemState_Now.mode); + 5660: 8402 ld.b r0, (r4, 0x2) + 5662: 4019 lsli r0, r0, 25 + 5664: 481d lsri r0, r0, 29 + 5666: e3fffa1f bsr 0x4aa4 // 4aa4 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 566a: 8402 ld.b r0, (r4, 0x2) + 566c: 401c lsli r0, r0, 28 + 566e: 481d lsri r0, r0, 29 + 5670: e3fffa3e bsr 0x4aec // 4aec + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5674: 8401 ld.b r0, (r4, 0x1) + 5676: 3840 cmpnei r0, 0 + 5678: 0c0c bf 0x5690 // 5690 + 567a: 330a movi r3, 10 + 567c: 7c0c mult r0, r3 + 567e: e3fff98f bsr 0x499c // 499c + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 5682: 8400 ld.b r0, (r4, 0x0) + 5684: 330a movi r3, 10 + 5686: 7c0c mult r0, r3 + 5688: 7401 zexth r0, r0 + 568a: e3fff9cd bsr 0x4a24 // 4a24 + } + else + { + HT1621_Clear(); + } +} + 568e: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5690: 30af movi r0, 175 + 5692: 4001 lsli r0, r0, 1 + 5694: 07f5 br 0x567e // 567e + HT1621_Clear(); + 5696: e3fff915 bsr 0x48c0 // 48c0 +} + 569a: 07fa br 0x568e // 568e + 569c: 200002e0 .long 0x200002e0 + +Disassembly of section .text.DisPlay_Init: + +000056a0 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 56a0: 14d0 push r15 + HT1621_ALLON(); + 56a2: e3fff937 bsr 0x4910 // 4910 + + delay_nms(5000); + 56a6: 1005 lrw r0, 0x1388 // 56b8 + 56a8: e3ffead0 bsr 0x2c48 // 2c48 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 56ac: 1064 lrw r3, 0x200002e0 // 56bc + 56ae: 8302 ld.b r0, (r3, 0x2) + 56b0: 4807 lsri r0, r0, 7 + 56b2: e3ffffd1 bsr 0x5654 // 5654 + +} + 56b6: 1490 pop r15 + 56b8: 00001388 .long 0x00001388 + 56bc: 200002e0 .long 0x200002e0 + +Disassembly of section .text.DisPlay_Task: + +000056c0 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 56c0: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 56c2: 1368 lrw r3, 0x200002f5 // 5860 + 56c4: 8360 ld.b r3, (r3, 0x0) + 56c6: 3b40 cmpnei r3, 0 + 56c8: 08c5 bt 0x5852 // 5852 + { + + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 56ca: 1367 lrw r3, 0x20000264 // 5864 + 56cc: 8364 ld.b r3, (r3, 0x4) + 56ce: 3b41 cmpnei r3, 1 + 56d0: 1386 lrw r4, 0x200002e0 // 5868 + 56d2: 081c bt 0x570a // 570a + 56d4: 8451 ld.b r2, (r4, 0x11) + 56d6: 8470 ld.b r3, (r4, 0x10) + 56d8: 4248 lsli r2, r2, 8 + 56da: 6c8c or r2, r3 + 56dc: 8472 ld.b r3, (r4, 0x12) + 56de: 4370 lsli r3, r3, 16 + 56e0: 6c8c or r2, r3 + 56e2: 8473 ld.b r3, (r4, 0x13) + 56e4: 1302 lrw r0, 0x200000b4 // 586c + 56e6: 4378 lsli r3, r3, 24 + 56e8: 6cc8 or r3, r2 + 56ea: 9020 ld.w r1, (r0, 0x0) + 56ec: 604e subu r1, r3 + 56ee: 1361 lrw r3, 0x1388 // 5870 + 56f0: 644c cmphs r3, r1 + 56f2: 080c bt 0x570a // 570a + { + TempCtrl.BackLightTick = SysTick_1ms; + 56f4: 9060 ld.w r3, (r0, 0x0) + 56f6: 4b48 lsri r2, r3, 8 + 56f8: a470 st.b r3, (r4, 0x10) + 56fa: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 56fc: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 56fe: 4b50 lsri r2, r3, 16 + 5700: 4b78 lsri r3, r3, 24 + 5702: a452 st.b r2, (r4, 0x12) + 5704: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 5706: e3fffa71 bsr 0x4be8 // 4be8 + } + + + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 570a: 8402 ld.b r0, (r4, 0x2) + 570c: 74c2 sextb r3, r0 + 570e: 3bdf btsti r3, 31 + 5710: 0c84 bf 0x5818 // 5818 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 5712: 8466 ld.b r3, (r4, 0x6) + 5714: 4019 lsli r0, r0, 25 + 5716: 4359 lsli r2, r3, 25 + 5718: 481d lsri r0, r0, 29 + 571a: 4a5d lsri r2, r2, 29 + 571c: 640a cmpne r2, r0 + 571e: 0c17 bf 0x574c // 574c + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 5720: 3170 movi r1, 112 + 5722: 4044 lsli r2, r0, 4 + 5724: 68c5 andn r3, r1 + 5726: 6cc8 or r3, r2 + 5728: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 572a: e3fff9bd bsr 0x4aa4 // 4aa4 + + SYSCON->UREG0 &= 0xFFFF00FF; + 572e: 1272 lrw r3, 0x2000005c // 5874 + 5730: 31ff movi r1, 255 + 5732: 9340 ld.w r2, (r3, 0x0) + 5734: 22ff addi r2, 256 + 5736: 9260 ld.w r3, (r2, 0x0) + 5738: 4128 lsli r1, r1, 8 + 573a: 68c5 andn r3, r1 + 573c: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 573e: 8462 ld.b r3, (r4, 0x2) + 5740: 4379 lsli r3, r3, 25 + 5742: 4b7d lsri r3, r3, 29 + 5744: 9220 ld.w r1, (r2, 0x0) + 5746: 4368 lsli r3, r3, 8 + 5748: 6cc4 or r3, r1 + 574a: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 574c: 8402 ld.b r0, (r4, 0x2) + 574e: 8466 ld.b r3, (r4, 0x6) + 5750: 401c lsli r0, r0, 28 + 5752: 435c lsli r2, r3, 28 + 5754: 481d lsri r0, r0, 29 + 5756: 4a5d lsri r2, r2, 29 + 5758: 640a cmpne r2, r0 + 575a: 0c22 bf 0x579e // 579e + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 575c: 310e movi r1, 14 + 575e: 4041 lsli r2, r0, 1 + 5760: 68c5 andn r3, r1 + 5762: 6cc8 or r3, r2 + 5764: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5766: e3fff9c3 bsr 0x4aec // 4aec + switch(TempCtrl.TemState_Now.fan) + 576a: 8462 ld.b r3, (r4, 0x2) + 576c: 437c lsli r3, r3, 28 + 576e: 4b7d lsri r3, r3, 29 + 5770: 3b42 cmpnei r3, 2 + 5772: 0c71 bf 0x5854 // 5854 + 5774: 3b43 cmpnei r3, 3 + 5776: 0c72 bf 0x585a // 585a + 5778: 3b41 cmpnei r3, 1 + 577a: 0803 bt 0x5780 // 5780 + { + case FAN_LOW: + Relay_Low(); + 577c: e0000406 bsr 0x5f88 // 5f88 +// break; + default: + break; + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 5780: 117d lrw r3, 0x2000005c // 5874 + 5782: 31ff movi r1, 255 + 5784: 9340 ld.w r2, (r3, 0x0) + 5786: 22ff addi r2, 256 + 5788: 9260 ld.w r3, (r2, 0x0) + 578a: 4130 lsli r1, r1, 16 + 578c: 68c5 andn r3, r1 + 578e: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5790: 8462 ld.b r3, (r4, 0x2) + 5792: 437c lsli r3, r3, 28 + 5794: 4b7d lsri r3, r3, 29 + 5796: 9220 ld.w r1, (r2, 0x0) + 5798: 4370 lsli r3, r3, 16 + 579a: 6cc4 or r3, r1 + 579c: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 579e: 8401 ld.b r0, (r4, 0x1) + 57a0: 8465 ld.b r3, (r4, 0x5) + 57a2: 640e cmpne r3, r0 + 57a4: 0c06 bf 0x57b0 // 57b0 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 57a6: 330a movi r3, 10 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 57a8: a405 st.b r0, (r4, 0x5) + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 57aa: 7c0c mult r0, r3 + 57ac: e3fff8f8 bsr 0x499c // 499c + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 57b0: 8409 ld.b r0, (r4, 0x9) + 57b2: 8468 ld.b r3, (r4, 0x8) + 57b4: 4008 lsli r0, r0, 8 + 57b6: 6c0c or r0, r3 + 57b8: 846b ld.b r3, (r4, 0xb) + 57ba: 844a ld.b r2, (r4, 0xa) + 57bc: 4368 lsli r3, r3, 8 + 57be: 6cc8 or r3, r2 + 57c0: 640e cmpne r3, r0 + 57c2: 0c12 bf 0x57e6 // 57e6 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 57c4: 4868 lsri r3, r0, 8 + 57c6: a46b st.b r3, (r4, 0xb) + 57c8: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 57ca: e3fff92d bsr 0x4a24 // 4a24 + + SYSCON->UREG0 &= 0x00FFFFFF; + 57ce: 116a lrw r3, 0x2000005c // 5874 + 57d0: 9340 ld.w r2, (r3, 0x0) + 57d2: 22ff addi r2, 256 + 57d4: 9260 ld.w r3, (r2, 0x0) + 57d6: 4368 lsli r3, r3, 8 + 57d8: 4b68 lsri r3, r3, 8 + 57da: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 57dc: 8461 ld.b r3, (r4, 0x1) + 57de: 9220 ld.w r1, (r2, 0x0) + 57e0: 4378 lsli r3, r3, 24 + 57e2: 6cc4 or r3, r1 + 57e4: b260 st.w r3, (r2, 0x0) + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 57e6: 844f ld.b r2, (r4, 0xf) + 57e8: 846e ld.b r3, (r4, 0xe) + 57ea: 4248 lsli r2, r2, 8 + 57ec: 6c8c or r2, r3 + 57ee: 846d ld.b r3, (r4, 0xd) + 57f0: 842c ld.b r1, (r4, 0xc) + 57f2: 4368 lsli r3, r3, 8 + 57f4: 6cc4 or r3, r1 + 57f6: 648c cmphs r3, r2 + 57f8: 0804 bt 0x5800 // 5800 + 57fa: 5a2d subu r1, r2, r3 + 57fc: 3925 cmplti r1, 6 + 57fe: 0c06 bf 0x580a // 580a + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 5800: 64c8 cmphs r2, r3 + 5802: 080b bt 0x5818 // 5818 + 5804: 5b49 subu r2, r3, r2 + 5806: 3a25 cmplti r2, 6 + 5808: 0808 bt 0x5818 // 5818 + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + rf_info.roomc_flag = 0x01; + 580a: 105c lrw r2, 0x200004a0 // 5878 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 580c: a46e st.b r3, (r4, 0xe) + 580e: 4b68 lsri r3, r3, 8 + 5810: a46f st.b r3, (r4, 0xf) + rf_info.roomc_flag = 0x01; + 5812: 8261 ld.b r3, (r2, 0x1) + 5814: 3ba5 bseti r3, 5 + 5816: a261 st.b r3, (r2, 0x1) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 5818: 8402 ld.b r0, (r4, 0x2) + 581a: 8466 ld.b r3, (r4, 0x6) + 581c: 4807 lsri r0, r0, 7 + 581e: 4b47 lsri r2, r3, 7 + 5820: 640a cmpne r2, r0 + 5822: 0c18 bf 0x5852 // 5852 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 5824: 317f movi r1, 127 + 5826: 4047 lsli r2, r0, 7 + 5828: 68c4 and r3, r1 + 582a: 6cc8 or r3, r2 + 582c: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 582e: e3fff9dd bsr 0x4be8 // 4be8 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5832: 8402 ld.b r0, (r4, 0x2) + 5834: 4807 lsri r0, r0, 7 + 5836: e3ffff0f bsr 0x5654 // 5654 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 583a: 106f lrw r3, 0x2000005c // 5874 + 583c: 31ff movi r1, 255 + 583e: 9340 ld.w r2, (r3, 0x0) + 5840: 22ff addi r2, 256 + 5842: 9260 ld.w r3, (r2, 0x0) + 5844: 68c5 andn r3, r1 + 5846: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5848: 8462 ld.b r3, (r4, 0x2) + 584a: 9220 ld.w r1, (r2, 0x0) + 584c: 4b67 lsri r3, r3, 7 + 584e: 6cc4 or r3, r1 + 5850: b260 st.w r3, (r2, 0x0) + } + } +} + 5852: 1491 pop r4, r15 + Relay_Mid(); + 5854: e0000388 bsr 0x5f64 // 5f64 + break; + 5858: 0794 br 0x5780 // 5780 + Relay_High(); + 585a: e0000373 bsr 0x5f40 // 5f40 + break; + 585e: 0791 br 0x5780 // 5780 + 5860: 200002f5 .long 0x200002f5 + 5864: 20000264 .long 0x20000264 + 5868: 200002e0 .long 0x200002e0 + 586c: 200000b4 .long 0x200000b4 + 5870: 00001388 .long 0x00001388 + 5874: 2000005c .long 0x2000005c + 5878: 200004a0 .long 0x200004a0 + +Disassembly of section .text.Debug_Init: + +0000587c : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 587c: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 587e: 108a lrw r4, 0x200002f5 // 58a4 + 5880: 320b movi r2, 11 + 5882: 3100 movi r1, 0 + 5884: 6c13 mov r0, r4 + 5886: e3ffe06f bsr 0x1964 // 1964 <__memset_fast> + Debug_Inf.Page = 0x01; + 588a: 3301 movi r3, 1 + 588c: a462 st.b r3, (r4, 0x2) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 588e: 1067 lrw r3, 0x20000264 // 58a8 + 5890: 8341 ld.b r2, (r3, 0x1) + 5892: a443 st.b r2, (r4, 0x3) + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 5894: 8342 ld.b r2, (r3, 0x2) + 5896: a444 st.b r2, (r4, 0x4) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5898: 8344 ld.b r2, (r3, 0x4) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 589a: 8365 ld.b r3, (r3, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 589c: a445 st.b r2, (r4, 0x5) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 589e: a466 st.b r3, (r4, 0x6) +} + 58a0: 1491 pop r4, r15 + 58a2: 0000 bkpt + 58a4: 200002f5 .long 0x200002f5 + 58a8: 20000264 .long 0x20000264 + +Disassembly of section .text.Dev_SaveData: + +000058ac : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 58ac: 14d1 push r4, r15 + 58ae: 1422 subi r14, r14, 8 + if(Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 58b0: 1074 lrw r3, 0x200002f5 // 5900 + 58b2: 1095 lrw r4, 0x20000264 // 5904 + 58b4: 8343 ld.b r2, (r3, 0x3) + 58b6: 8421 ld.b r1, (r4, 0x1) + 58b8: 6486 cmpne r1, r2 + 58ba: 080d bt 0x58d4 // 58d4 + 58bc: 8304 ld.b r0, (r3, 0x4) + 58be: 8422 ld.b r1, (r4, 0x2) + 58c0: 6442 cmpne r0, r1 + 58c2: 0809 bt 0x58d4 // 58d4 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level) + 58c4: 8305 ld.b r0, (r3, 0x5) + 58c6: 8424 ld.b r1, (r4, 0x4) + 58c8: 6442 cmpne r0, r1 + 58ca: 0805 bt 0x58d4 // 58d4 + 58cc: 8306 ld.b r0, (r3, 0x6) + 58ce: 8425 ld.b r1, (r4, 0x5) + 58d0: 6442 cmpne r0, r1 + 58d2: 0c15 bf 0x58fc // 58fc + { + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 58d4: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 58d6: 8344 ld.b r2, (r3, 0x4) + 58d8: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 58da: 8345 ld.b r2, (r3, 0x5) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + + EEPROM_WriteParaInfo(&g_eeprom); + 58dc: 100a lrw r0, 0x20000264 // 5904 + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 58de: 8366 ld.b r3, (r3, 0x6) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 58e0: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 58e2: a465 st.b r3, (r4, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 58e4: e3fff488 bsr 0x41f4 // 41f4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 58e8: 8425 ld.b r1, (r4, 0x5) + 58ea: b821 st.w r1, (r14, 0x4) + 58ec: 8424 ld.b r1, (r4, 0x4) + 58ee: b820 st.w r1, (r14, 0x0) + 58f0: 8462 ld.b r3, (r4, 0x2) + 58f2: 8441 ld.b r2, (r4, 0x1) + 58f4: 1025 lrw r1, 0x7519 // 5908 + 58f6: 3000 movi r0, 0 + 58f8: e3fff066 bsr 0x39c4 // 39c4 + g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + } +} + 58fc: 1402 addi r14, r14, 8 + 58fe: 1491 pop r4, r15 + 5900: 200002f5 .long 0x200002f5 + 5904: 20000264 .long 0x20000264 + 5908: 00007519 .long 0x00007519 + +Disassembly of section .text.Debug_Task: + +0000590c : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 590c: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE5ID)) //设置模式 + 590e: 1077 lrw r3, 0x200002f5 // 5968 + 5910: 8340 ld.b r2, (r3, 0x0) + 5912: 3a41 cmpnei r2, 1 + 5914: 0829 bt 0x5966 // 5966 + 5916: 8328 ld.b r1, (r3, 0x8) + 5918: 8347 ld.b r2, (r3, 0x7) + 591a: 4128 lsli r1, r1, 8 + 591c: 6c48 or r1, r2 + 591e: 8349 ld.b r2, (r3, 0x9) + 5920: 4250 lsli r2, r2, 16 + 5922: 6c48 or r1, r2 + 5924: 834a ld.b r2, (r3, 0xa) + 5926: 1092 lrw r4, 0x200000b4 // 596c + 5928: 4258 lsli r2, r2, 24 + 592a: 6c84 or r2, r1 + 592c: 9400 ld.w r0, (r4, 0x0) + 592e: 600a subu r0, r2 + 5930: 1050 lrw r2, 0x2710 // 5970 + 5932: 6408 cmphs r2, r0 + 5934: 0819 bt 0x5966 // 5966 + 5936: 8342 ld.b r2, (r3, 0x2) + 5938: 3a45 cmpnei r2, 5 + 593a: 0c16 bf 0x5966 // 5966 + { + Debug_Inf.Tick = SysTick_1ms; + 593c: 9440 ld.w r2, (r4, 0x0) + 593e: 4a28 lsri r1, r2, 8 + 5940: a347 st.b r2, (r3, 0x7) + 5942: a328 st.b r1, (r3, 0x8) + 5944: 4a30 lsri r1, r2, 16 + 5946: 4a58 lsri r2, r2, 24 + 5948: a34a st.b r2, (r3, 0xa) + Debug_Inf.State = 0x00; + 594a: 3200 movi r2, 0 + Debug_Inf.Tick = SysTick_1ms; + 594c: a329 st.b r1, (r3, 0x9) + Debug_Inf.State = 0x00; + 594e: a340 st.b r2, (r3, 0x0) + Dev_SaveData(); + 5950: e3ffffae bsr 0x58ac // 58ac + + HT1621_Clear(); + 5954: e3fff7b6 bsr 0x48c0 // 48c0 + //关背光 + Controlled_LCD_Backlight(0x00); + 5958: 3000 movi r0, 0 + 595a: e3fff947 bsr 0x4be8 // 4be8 +// Controlled_Key_Backlight(0x00); + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 595e: 1026 lrw r1, 0x755c // 5974 + 5960: 3000 movi r0, 0 + 5962: e3fff031 bsr 0x39c4 // 39c4 + } + 5966: 1491 pop r4, r15 + 5968: 200002f5 .long 0x200002f5 + 596c: 200000b4 .long 0x200000b4 + 5970: 00002710 .long 0x00002710 + 5974: 0000755c .long 0x0000755c + +Disassembly of section .text.get_check_sum: + +00005978 : +* @param[in] {pack} the head address of array +* @param[in] {pack_len} the length of array +* @return sum +*/ +unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len) +{ + 5978: 6cc3 mov r3, r0 + 597a: 6040 addu r1, r0 + unsigned short i; + unsigned char check_sum = 0; + 597c: 3000 movi r0, 0 + + for(i = 0; i < pack_len; i ++){ + 597e: 644e cmpne r3, r1 + 5980: 0802 bt 0x5984 // 5984 + check_sum += *pack ++; + } + + return check_sum; +} + 5982: 783c jmp r15 + check_sum += *pack ++; + 5984: 8340 ld.b r2, (r3, 0x0) + 5986: 6008 addu r0, r2 + 5988: 7400 zextb r0, r0 + 598a: 2300 addi r3, 1 + 598c: 07f9 br 0x597e // 597e + +Disassembly of section .text.uart_receive_input: + +00005990 : +* @brief copy receive data from uart receive interrupt +* @param[in] {value} Data received from interrupt +* @return void +*/ +void uart_receive_input(unsigned char value) +{ + 5990: 14c1 push r4 +// #error "please call this fuction in the interrupt fuction of serial receive, and delete this line" + + if(1 == queue_out - queue_in) { + 5992: 106d lrw r3, 0x2000049c // 59c4 + 5994: 9320 ld.w r1, (r3, 0x0) + 5996: 106d lrw r3, 0x2000040c // 59c8 + 5998: 9340 ld.w r2, (r3, 0x0) + 599a: 5989 subu r4, r1, r2 + 599c: 3c41 cmpnei r4, 1 + 599e: 0c11 bf 0x59c0 // 59c0 + //queue full + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_1"); + + }else if((queue_in > queue_out) && ((queue_in - queue_out) >= sizeof(zigbee_queue_buf))) { + 59a0: 6484 cmphs r1, r2 + 59a2: 0806 bt 0x59ae // 59ae + 59a4: 5a85 subu r4, r2, r1 + 59a6: 3184 movi r1, 132 + 59a8: 4121 lsli r1, r1, 1 + 59aa: 6504 cmphs r1, r4 + 59ac: 0c0a bf 0x59c0 // 59c0 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_2"); + + }else { + //queue not full + if(queue_in >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))){ + 59ae: 1028 lrw r1, 0x20000409 // 59cc + 59b0: 6448 cmphs r2, r1 + 59b2: 0c03 bf 0x59b8 // 59b8 + queue_in = (unsigned char *)(zigbee_queue_buf); + 59b4: 1047 lrw r2, 0x20000300 // 59d0 + 59b6: b340 st.w r2, (r3, 0x0) + } + *queue_in ++ = value; + 59b8: 9340 ld.w r2, (r3, 0x0) + 59ba: 5a22 addi r1, r2, 1 + 59bc: b320 st.w r1, (r3, 0x0) + 59be: a200 st.b r0, (r2, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_receive: %02X",value); + + } +} + 59c0: 1481 pop r4 + 59c2: 0000 bkpt + 59c4: 2000049c .long 0x2000049c + 59c8: 2000040c .long 0x2000040c + 59cc: 20000409 .long 0x20000409 + 59d0: 20000300 .long 0x20000300 + +Disassembly of section .text.Queue_Read_Byte: + +000059d4 : +*/ +unsigned char Queue_Read_Byte(void) +{ + unsigned char value; + + if(queue_out != queue_in) { + 59d4: 1069 lrw r3, 0x2000049c // 59f8 + 59d6: 102a lrw r1, 0x2000040c // 59fc + 59d8: 9340 ld.w r2, (r3, 0x0) + 59da: 9120 ld.w r1, (r1, 0x0) + 59dc: 644a cmpne r2, r1 + 59de: 0c0b bf 0x59f4 // 59f4 + //have data in queue + if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) { + 59e0: 1028 lrw r1, 0x20000409 // 5a00 + 59e2: 6448 cmphs r2, r1 + 59e4: 0c03 bf 0x59ea // 59ea + queue_out = (unsigned char *)(zigbee_queue_buf); + 59e6: 1048 lrw r2, 0x20000300 // 5a04 + 59e8: b340 st.w r2, (r3, 0x0) + } + value = *queue_out ++; + 59ea: 9340 ld.w r2, (r3, 0x0) + 59ec: 5a22 addi r1, r2, 1 + 59ee: b320 st.w r1, (r3, 0x0) + 59f0: 8200 ld.b r0, (r2, 0x0) + 59f2: 7400 zextb r0, r0 + } + + + return value; +} + 59f4: 783c jmp r15 + 59f6: 0000 bkpt + 59f8: 2000049c .long 0x2000049c + 59fc: 2000040c .long 0x2000040c + 5a00: 20000409 .long 0x20000409 + 5a04: 20000300 .long 0x20000300 + +Disassembly of section .text.with_data_rxbuff: + +00005a08 : + * @param Null + * @return the queue state + */ +unsigned char with_data_rxbuff(void) +{ + if(queue_out != queue_in) + 5a08: 1065 lrw r3, 0x2000049c // 5a1c + 5a0a: 3000 movi r0, 0 + 5a0c: 9340 ld.w r2, (r3, 0x0) + 5a0e: 1065 lrw r3, 0x2000040c // 5a20 + 5a10: 9360 ld.w r3, (r3, 0x0) + 5a12: 64ca cmpne r2, r3 + 5a14: 6001 addc r0, r0 + 5a16: 7400 zextb r0, r0 + return 1; + else + return 0; +} + 5a18: 783c jmp r15 + 5a1a: 0000 bkpt + 5a1c: 2000049c .long 0x2000049c + 5a20: 2000040c .long 0x2000040c + +Disassembly of section .text.RF_Info_Init: + +00005a24 : + + + + +void RF_Info_Init(void) +{ + 5a24: 14d1 push r4, r15 + memset(&rf_info,0,sizeof(RF_INFO)); + 5a26: 1089 lrw r4, 0x200004a0 // 5a48 + 5a28: 3203 movi r2, 3 + 5a2a: 3100 movi r1, 0 + 5a2c: 6c13 mov r0, r4 + 5a2e: e3ffdf9b bsr 0x1964 // 1964 <__memset_fast> + + queue_in = (unsigned char *)zigbee_queue_buf; + 5a32: 1067 lrw r3, 0x20000300 // 5a4c + 5a34: 1047 lrw r2, 0x2000040c // 5a50 + 5a36: b260 st.w r3, (r2, 0x0) + queue_out = (unsigned char *)zigbee_queue_buf; + 5a38: 1047 lrw r2, 0x2000049c // 5a54 + 5a3a: b260 st.w r3, (r2, 0x0) + + rf_info.net_state = 0x01; + 5a3c: 3301 movi r3, 1 + 5a3e: a460 st.b r3, (r4, 0x0) + rf_info.setc_flag = 0x01; + rf_info.setf_flag = 0x01; + rf_info.fan_flag = 0x01; + rf_info.roomc_flag = 0x01; + rf_info.roomf_flag = 0x01; + rf_info.valve_flag = 0x01; + 5a40: 3300 movi r3, 0 + 5a42: 2b00 subi r3, 1 + 5a44: a461 st.b r3, (r4, 0x1) + +} + 5a46: 1491 pop r4, r15 + 5a48: 200004a0 .long 0x200004a0 + 5a4c: 20000300 .long 0x20000300 + 5a50: 2000040c .long 0x2000040c + 5a54: 2000049c .long 0x2000049c + +Disassembly of section .text.Add_Frame_Head: + +00005a58 : +* +* +* +*/ +void Add_Frame_Head(U8_T *data, U8_T cmd, U8_T lens) +{ + 5a58: 14c2 push r4-r5 + U16_T frameno = 0x00; + + data[HEAD_FIRST] = FIRST_FRAME_HEAD; + 5a5a: 3355 movi r3, 85 + 5a5c: a060 st.b r3, (r0, 0x0) + data[HEAD_SECOND] = SECOND_FRAME_HEAD; + 5a5e: 3300 movi r3, 0 + 5a60: 2b55 subi r3, 86 + 5a62: a061 st.b r3, (r0, 0x1) + data[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER; + 5a64: 3302 movi r3, 2 + 5a66: a062 st.b r3, (r0, 0x2) + if(seq_num > 0xfff0){ + 5a68: 10aa lrw r5, 0xfff0 // 5a90 + seq_num ++; + 5a6a: 106b lrw r3, 0x200000d4 // 5a94 + 5a6c: 8b80 ld.h r4, (r3, 0x0) + 5a6e: 2400 addi r4, 1 + 5a70: 7511 zexth r4, r4 + if(seq_num > 0xfff0){ + 5a72: 6514 cmphs r5, r4 + 5a74: 0c0b bf 0x5a8a // 5a8a + seq_num = 1; + 5a76: ab80 st.h r4, (r3, 0x0) + return seq_num; + 5a78: 8b60 ld.h r3, (r3, 0x0) + + frameno = seq_num_get(); + data[SEQ_HIGH] = (frameno << 8); + 5a7a: 3400 movi r4, 0 + data[SEQ_LOW] = (frameno & 0xff); + 5a7c: a064 st.b r3, (r0, 0x4) + + data[FRAME_TYPE] = cmd; + + data[LENGTH_HIGH] = lens >> 8; + 5a7e: 3300 movi r3, 0 + data[SEQ_HIGH] = (frameno << 8); + 5a80: a083 st.b r4, (r0, 0x3) + data[FRAME_TYPE] = cmd; + 5a82: a025 st.b r1, (r0, 0x5) + data[LENGTH_HIGH] = lens >> 8; + 5a84: a066 st.b r3, (r0, 0x6) + data[LENGTH_LOW] = lens & 0xff; + 5a86: a047 st.b r2, (r0, 0x7) + +} + 5a88: 1482 pop r4-r5 + seq_num = 1; + 5a8a: 3401 movi r4, 1 + 5a8c: 07f5 br 0x5a76 // 5a76 + 5a8e: 0000 bkpt + 5a90: 0000fff0 .long 0x0000fff0 + 5a94: 200000d4 .long 0x200000d4 + +Disassembly of section .text.Product_Info_Update: + +00005a98 : + + + +void Product_Info_Update(void) +{ + 5a98: 14d0 push r15 + 5a9a: 142a subi r14, r14, 40 + U8_T data[37]; + memset(data,0,sizeof(data)); + 5a9c: 6c3b mov r0, r14 + 5a9e: 3225 movi r2, 37 + 5aa0: 3100 movi r1, 0 + 5aa2: e3ffdf61 bsr 0x1964 // 1964 <__memset_fast> + U8_T lens = 0x00; + + lens += strlen("{\"p\":\""); + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5aa6: 107b lrw r3, 0x2270227b // 5b10 + + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5aa8: 300d movi r0, 13 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5aaa: b862 st.w r3, (r14, 0x8) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5aac: 6038 addu r0, r14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5aae: 107f lrw r3, 0x223a // 5b28 + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ab0: 3208 movi r2, 8 + 5ab2: 1039 lrw r1, 0x7567 // 5b14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5ab4: dc6e1006 st.h r3, (r14, 0xc) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ab8: e3ffdf9a bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen((U8_T *)PRODUCT_KEY); + + memcpy(&data[DATA_START + lens-1],"\",\"v\":\"",strlen("\",\"v\":\"")); + 5abc: 3015 movi r0, 21 + 5abe: 6038 addu r0, r14 + 5ac0: 3207 movi r2, 7 + 5ac2: 1036 lrw r1, 0x7570 // 5b18 + 5ac4: e3ffdf94 bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen("\",\"v\":\""); + + memcpy(&data[DATA_START + lens-1],(U8_T *)MCU_VER,strlen((U8_T *)MCU_VER)); + 5ac8: 1055 lrw r2, 0x2e302e31 // 5b1c + 5aca: b847 st.w r2, (r14, 0x1c) + 5acc: 1b07 addi r3, r14, 28 + 5ace: 3230 movi r2, 48 + 5ad0: a344 st.b r2, (r3, 0x4) + lens += strlen((U8_T *)MCU_VER); + + memcpy(&data[DATA_START + lens-1],"\"}",strlen("\"}")); + 5ad2: 3321 movi r3, 33 + 5ad4: 60f8 addu r3, r14 + 5ad6: 3222 movi r2, 34 + 5ad8: a340 st.b r2, (r3, 0x0) + 5ada: 327d movi r2, 125 + 5adc: a341 st.b r2, (r3, 0x1) + lens += strlen("\"}"); + + Add_Frame_Head(data,PRODUCT_INFO_CMD,lens); + 5ade: 6c3b mov r0, r14 + 5ae0: 321c movi r2, 28 + 5ae2: 3101 movi r1, 1 + 5ae4: e3ffffba bsr 0x5a58 // 5a58 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 5ae8: 3124 movi r1, 36 + 5aea: 6c3b mov r0, r14 + 5aec: e3ffff46 bsr 0x5978 // 5978 + 5af0: 1b08 addi r3, r14, 32 + 5af2: a304 st.b r0, (r3, 0x4) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 5af4: 6cbb mov r2, r14 + 5af6: 3325 movi r3, 37 + 5af8: 102a lrw r1, 0x7578 // 5b20 + 5afa: 3000 movi r0, 0 + 5afc: e3ffef6a bsr 0x39d0 // 39d0 + + UARTTransmit(UART2,data,lens); + 5b00: 1069 lrw r3, 0x20000038 // 5b24 + 5b02: 3225 movi r2, 37 + 5b04: 9300 ld.w r0, (r3, 0x0) + 5b06: 6c7b mov r1, r14 + 5b08: e3ffe2de bsr 0x20c4 // 20c4 +} + 5b0c: 140a addi r14, r14, 40 + 5b0e: 1490 pop r15 + 5b10: 2270227b .long 0x2270227b + 5b14: 00007567 .long 0x00007567 + 5b18: 00007570 .long 0x00007570 + 5b1c: 2e302e31 .long 0x2e302e31 + 5b20: 00007578 .long 0x00007578 + 5b24: 20000038 .long 0x20000038 + 5b28: 0000223a .long 0x0000223a + +Disassembly of section .text.Recv_RFNetState_Ack: + +00005b2c : + +void Recv_RFNetState_Ack(void) +{ + 5b2c: 14d0 push r15 + 5b2e: 1423 subi r14, r14, 12 + U8_T data[9]; + memset(data,0,sizeof(data)); + 5b30: 6c3b mov r0, r14 + 5b32: 3209 movi r2, 9 + 5b34: 3100 movi r1, 0 + 5b36: e3ffdf17 bsr 0x1964 // 1964 <__memset_fast> + + U8_T lens = 0x00; + + Add_Frame_Head(data,ZIGBEE_STATE_CMD,lens); + 5b3a: 3200 movi r2, 0 + 5b3c: 6c3b mov r0, r14 + 5b3e: 3102 movi r1, 2 + 5b40: e3ffff8c bsr 0x5a58 // 5a58 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 5b44: 3108 movi r1, 8 + 5b46: 6c3b mov r0, r14 + 5b48: e3ffff18 bsr 0x5978 // 5978 + + UARTTransmit(UART2,data,lens); + 5b4c: 1065 lrw r3, 0x20000038 // 5b60 + 5b4e: 3209 movi r2, 9 + data[lens-1] = get_check_sum(data,(lens-1)); + 5b50: dc0e0008 st.b r0, (r14, 0x8) + UARTTransmit(UART2,data,lens); + 5b54: 6c7b mov r1, r14 + 5b56: 9300 ld.w r0, (r3, 0x0) + 5b58: e3ffe2b6 bsr 0x20c4 // 20c4 +} + 5b5c: 1403 addi r14, r14, 12 + 5b5e: 1490 pop r15 + 5b60: 20000038 .long 0x20000038 + +Disassembly of section .text.Tem_Fun_Ctrl_Report: + +00005b64 : + + +void Tem_Fun_Ctrl_Report(U8_T datalens,U8_T dpid,U8_T type,U32_T state,U8_T source) +{ + 5b64: 14d4 push r4-r7, r15 + 5b66: 1426 subi r14, r14, 24 + 5b68: 6d4f mov r5, r3 + 5b6a: 1b0b addi r3, r14, 44 + 5b6c: 6d8b mov r6, r2 + 5b6e: 8360 ld.b r3, (r3, 0x0) + 5b70: 6dc7 mov r7, r1 + 5b72: 6d03 mov r4, r0 + U8_T data[17]; + memset(data,0,sizeof(data)); + 5b74: 3211 movi r2, 17 + 5b76: 3100 movi r1, 0 + 5b78: 1801 addi r0, r14, 4 +{ + 5b7a: b860 st.w r3, (r14, 0x0) + memset(data,0,sizeof(data)); + 5b7c: e3ffdef4 bsr 0x1964 // 1964 <__memset_fast> + U8_T cmd = 0x00; + + data[DATA_START] = dpid; //dpID + data[DATA_START+1] = type; //数据类型 + + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 5b80: 3e41 cmpnei r6, 1 + data[DATA_START] = dpid; //dpID + 5b82: dcee000c st.b r7, (r14, 0xc) + data[DATA_START+1] = type; //数据类型 + 5b86: dcce000d st.b r6, (r14, 0xd) + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 5b8a: 9860 ld.w r3, (r14, 0x0) + 5b8c: 0c03 bf 0x5b92 // 5b92 + 5b8e: 3e44 cmpnei r6, 4 + 5b90: 0829 bt 0x5be2 // 5be2 + { + data[DATA_START+2] = 0x00; + data[DATA_START+3] = 0x01; + 5b92: 3201 movi r2, 1 + 5b94: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state&0xff; + 5b98: dcae0010 st.b r5, (r14, 0x10) + data[DATA_START+5] = state>>16; + data[DATA_START+6] = state>>8; + data[DATA_START+7] = state&0xff; + } + + if(source == ACTIVE) + 5b9c: 3b41 cmpnei r3, 1 + 5b9e: 0c33 bf 0x5c04 // 5c04 + { + cmd = 0x06; + } + else if(source == PASSIVE) + 5ba0: 3b42 cmpnei r3, 2 + 5ba2: 0833 bt 0x5c08 // 5c08 + { + cmd = 0x05; + 5ba4: 3105 movi r1, 5 + } + + Add_Frame_Head(data,cmd,datalens); + 5ba6: 6c93 mov r2, r4 + + lens = PROTOCOL_HEAD + datalens; + 5ba8: 2408 addi r4, 9 + 5baa: 7510 zextb r4, r4 + + data[lens-1] = get_check_sum(data,(lens-1)); + 5bac: 7551 zexth r5, r4 + Add_Frame_Head(data,cmd,datalens); + 5bae: 1801 addi r0, r14, 4 + 5bb0: e3ffff54 bsr 0x5a58 // 5a58 + data[lens-1] = get_check_sum(data,(lens-1)); + 5bb4: 5d23 subi r1, r5, 1 + 5bb6: 7445 zexth r1, r1 + 5bb8: 1801 addi r0, r14, 4 + 5bba: e3fffedf bsr 0x5978 // 5978 + 5bbe: 1b01 addi r3, r14, 4 + 5bc0: 610c addu r4, r3 + 5bc2: 2c00 subi r4, 1 + 5bc4: a400 st.b r0, (r4, 0x0) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 5bc6: 6cd7 mov r3, r5 + 5bc8: 1a01 addi r2, r14, 4 + 5bca: 1031 lrw r1, 0x7578 // 5c0c + 5bcc: 3000 movi r0, 0 + 5bce: e3ffef01 bsr 0x39d0 // 39d0 + + UARTTransmit(UART2,data,lens); + 5bd2: 1070 lrw r3, 0x20000038 // 5c10 + 5bd4: 6c97 mov r2, r5 + 5bd6: 9300 ld.w r0, (r3, 0x0) + 5bd8: 1901 addi r1, r14, 4 + 5bda: e3ffe275 bsr 0x20c4 // 20c4 +} + 5bde: 1406 addi r14, r14, 24 + 5be0: 1494 pop r4-r7, r15 + else if(type == DP_TYPE_VALUE) + 5be2: 3e42 cmpnei r6, 2 + 5be4: 0bdc bt 0x5b9c // 5b9c + data[DATA_START+3] = 0x04; + 5be6: 3204 movi r2, 4 + 5be8: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state>>24; + 5bec: 4d58 lsri r2, r5, 24 + 5bee: dc4e0010 st.b r2, (r14, 0x10) + data[DATA_START+5] = state>>16; + 5bf2: 4d50 lsri r2, r5, 16 + 5bf4: dc4e0011 st.b r2, (r14, 0x11) + data[DATA_START+6] = state>>8; + 5bf8: 4d48 lsri r2, r5, 8 + 5bfa: dc4e0012 st.b r2, (r14, 0x12) + data[DATA_START+7] = state&0xff; + 5bfe: dcae0013 st.b r5, (r14, 0x13) + 5c02: 07cd br 0x5b9c // 5b9c + cmd = 0x06; + 5c04: 3106 movi r1, 6 + 5c06: 07d0 br 0x5ba6 // 5ba6 + U8_T cmd = 0x00; + 5c08: 3100 movi r1, 0 + 5c0a: 07ce br 0x5ba6 // 5ba6 + 5c0c: 00007578 .long 0x00007578 + 5c10: 20000038 .long 0x20000038 + +Disassembly of section .text.data_handle: + +00005c14 : +* @brief handle received frame from zigbee module baseon frame cmd id +* @param[in] {void} +* @return result of handle +*/ +int data_handle(unsigned short offset) +{ + 5c14: 14d2 push r4-r5, r15 + unsigned char ret; + unsigned short i; + + U32_T temp = 0x00; + + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c16: 5872 addi r3, r0, 5 + 5c18: 1286 lrw r4, 0x20000410 // 5d30 + + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 5c1a: 5856 addi r2, r0, 6 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c1c: 60d0 addu r3, r4 + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 5c1e: 6090 addu r2, r4 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c20: 8360 ld.b r3, (r3, 0x0) + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 5c22: 8240 ld.b r2, (r2, 0x0) + total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW]; + 5c24: 585a addi r2, r0, 7 + 5c26: 6090 addu r2, r4 + 5c28: 8240 ld.b r2, (r2, 0x0) + + seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8; + 5c2a: 584a addi r2, r0, 3 + 5c2c: 6090 addu r2, r4 + 5c2e: 8240 ld.b r2, (r2, 0x0) + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c30: 74cc zextb r3, r3 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 5c32: 584e addi r2, r0, 4 + 5c34: 6090 addu r2, r4 + + switch(cmd_type) + 5c36: 3b42 cmpnei r3, 2 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 5c38: 8240 ld.b r2, (r2, 0x0) + switch(cmd_type) + 5c3a: 0c09 bf 0x5c4c // 5c4c + 5c3c: 3b44 cmpnei r3, 4 + 5c3e: 0c13 bf 0x5c64 // 5c64 + 5c40: 3b41 cmpnei r3, 1 + 5c42: 0803 bt 0x5c48 // 5c48 + { + case PRODUCT_INFO_CMD: //RF查询产品信息 + Product_Info_Update(); + 5c44: e3ffff2a bsr 0x5a98 // 5a98 + default: + return ret = 0x01; + break; + } + return 1; +} + 5c48: 3001 movi r0, 1 + 5c4a: 1492 pop r4-r5, r15 + if(rf_info.net_state != zigbee_uart_rx_buf[offset + DATA_START]) + 5c4c: 587e addi r3, r0, 8 + 5c4e: 5c0c addu r0, r4, r3 + 5c50: 1179 lrw r3, 0x200004a0 // 5d34 + 5c52: 8040 ld.b r2, (r0, 0x0) + 5c54: 8320 ld.b r1, (r3, 0x0) + 5c56: 6486 cmpne r1, r2 + 5c58: 0c03 bf 0x5c5e // 5c5e + rf_info.net_state = zigbee_uart_rx_buf[offset + DATA_START]; + 5c5a: 8040 ld.b r2, (r0, 0x0) + 5c5c: a340 st.b r2, (r3, 0x0) + Recv_RFNetState_Ack(); + 5c5e: e3ffff67 bsr 0x5b2c // 5b2c + break; + 5c62: 07f3 br 0x5c48 // 5c48 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 5c64: 587e addi r3, r0, 8 + 5c66: 60d0 addu r3, r4 + 5c68: 8360 ld.b r3, (r3, 0x0) + 5c6a: 74cc zextb r3, r3 + 5c6c: 3b42 cmpnei r3, 2 + 5c6e: 0c2a bf 0x5cc2 // 5cc2 + 5c70: 3b02 cmphsi r3, 3 + 5c72: 0812 bt 0x5c96 // 5c96 + 5c74: 3b41 cmpnei r3, 1 + 5c76: 0be9 bt 0x5c48 // 5c48 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5c78: 200b addi r0, 12 + 5c7a: 6010 addu r0, r4 + 5c7c: 8060 ld.b r3, (r0, 0x0) + 5c7e: 112f lrw r1, 0x200002e0 // 5d38 + 5c80: 4347 lsli r2, r3, 7 + 5c82: 307f movi r0, 127 + 5c84: 8162 ld.b r3, (r1, 0x2) + 5c86: 68c0 and r3, r0 + 5c88: 6cc8 or r3, r2 + rf_info.switc_flag = 0x01; + 5c8a: 114b lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5c8c: a162 st.b r3, (r1, 0x2) + rf_info.switc_flag = 0x01; + 5c8e: 8261 ld.b r3, (r2, 0x1) + 5c90: 3ba0 bseti r3, 0 + rf_info.fan_flag = 0x01; + 5c92: a261 st.b r3, (r2, 0x1) + break; + 5c94: 07da br 0x5c48 // 5c48 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 5c96: 3b50 cmpnei r3, 16 + 5c98: 0c25 bf 0x5ce2 // 5ce2 + 5c9a: 3240 movi r2, 64 + 5c9c: 648e cmpne r3, r2 + 5c9e: 0bd5 bt 0x5c48 // 5c48 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5ca0: 6cc3 mov r3, r0 + 5ca2: 230b addi r3, 12 + 5ca4: 5c0c addu r0, r4, r3 + 5ca6: 8060 ld.b r3, (r0, 0x0) + 5ca8: 3207 movi r2, 7 + 5caa: 1124 lrw r1, 0x200002e0 // 5d38 + 5cac: 68c8 and r3, r2 + 5cae: 4341 lsli r2, r3, 1 + 5cb0: 300e movi r0, 14 + 5cb2: 8162 ld.b r3, (r1, 0x2) + 5cb4: 68c1 andn r3, r0 + 5cb6: 6cc8 or r3, r2 + rf_info.fan_flag = 0x01; + 5cb8: 105f lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5cba: a162 st.b r3, (r1, 0x2) + rf_info.fan_flag = 0x01; + 5cbc: 8261 ld.b r3, (r2, 0x1) + 5cbe: 3ba4 bseti r3, 4 + 5cc0: 07e9 br 0x5c92 // 5c92 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5cc2: 200b addi r0, 12 + 5cc4: 6010 addu r0, r4 + 5cc6: 8060 ld.b r3, (r0, 0x0) + 5cc8: 3207 movi r2, 7 + 5cca: 103c lrw r1, 0x200002e0 // 5d38 + 5ccc: 68c8 and r3, r2 + 5cce: 4344 lsli r2, r3, 4 + 5cd0: 3070 movi r0, 112 + 5cd2: 8162 ld.b r3, (r1, 0x2) + 5cd4: 68c1 andn r3, r0 + 5cd6: 6cc8 or r3, r2 + rf_info.model_flag = 0x01; + 5cd8: 1057 lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5cda: a162 st.b r3, (r1, 0x2) + rf_info.model_flag = 0x01; + 5cdc: 8261 ld.b r3, (r2, 0x1) + 5cde: 3ba1 bseti r3, 1 + 5ce0: 07d9 br 0x5c92 // 5c92 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 5ce2: 330c movi r3, 12 + 5ce4: 60c0 addu r3, r0 + 5ce6: 60d0 addu r3, r4 + 5ce8: 83a0 ld.b r5, (r3, 0x0) + 5cea: 330d movi r3, 13 + 5cec: 60c0 addu r3, r0 + 5cee: 60d0 addu r3, r4 + 5cf0: 8340 ld.b r2, (r3, 0x0) + 5cf2: 330e movi r3, 14 + 5cf4: 60c0 addu r3, r0 + 5cf6: 6c43 mov r1, r0 + 5cf8: 60d0 addu r3, r4 + 5cfa: 8360 ld.b r3, (r3, 0x0) + 5cfc: 4250 lsli r2, r2, 16 + 5cfe: 210e addi r1, 15 + 5d00: 4518 lsli r0, r5, 24 + 5d02: 6008 addu r0, r2 + 5d04: 4368 lsli r3, r3, 8 + 5d06: 6050 addu r1, r4 + 5d08: 600c addu r0, r3 + 5d0a: 8120 ld.b r1, (r1, 0x0) + if((temp>=50) && (temp<=350)) + 5d0c: 3200 movi r2, 0 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 5d0e: 6004 addu r0, r1 + if((temp>=50) && (temp<=350)) + 5d10: 2a31 subi r2, 50 + 5d12: 3396 movi r3, 150 + 5d14: 6080 addu r2, r0 + 5d16: 4361 lsli r3, r3, 1 + 5d18: 648c cmphs r3, r2 + 5d1a: 0f97 bf 0x5c48 // 5c48 + TempCtrl.TemState_Now.set_t = temp / 10; + 5d1c: 310a movi r1, 10 + 5d1e: e3ffed53 bsr 0x37c4 // 37c4 <__udivsi3> + 5d22: 1066 lrw r3, 0x200002e0 // 5d38 + rf_info.setc_flag = 0x01; + 5d24: 1044 lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.set_t = temp / 10; + 5d26: a301 st.b r0, (r3, 0x1) + rf_info.setc_flag = 0x01; + 5d28: 8261 ld.b r3, (r2, 0x1) + 5d2a: 3ba2 bseti r3, 2 + 5d2c: 07b3 br 0x5c92 // 5c92 + 5d2e: 0000 bkpt + 5d30: 20000410 .long 0x20000410 + 5d34: 200004a0 .long 0x200004a0 + 5d38: 200002e0 .long 0x200002e0 + +Disassembly of section .text.zigbee_uart_service: + +00005d3c : +* @brief uart receive data handle, call this function at mian loop +* @param[in] {void} +* @return void +*/ +void zigbee_uart_service(void) +{ + 5d3c: 14d4 push r4-r7, r15 + unsigned short rx_value_len = 0; + unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD; + + + + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 5d3e: 11d0 lrw r6, 0x200000d4 // 5dfc + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 5d40: 11b0 lrw r5, 0x20000410 // 5e00 + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 5d42: 8e81 ld.h r4, (r6, 0x2) + 5d44: 3388 movi r3, 136 + 5d46: 650c cmphs r3, r4 + 5d48: 0c07 bf 0x5d56 // 5d56 + 5d4a: e3fffe5f bsr 0x5a08 // 5a08 + 5d4e: 3840 cmpnei r0, 0 + 5d50: 081c bt 0x5d88 // 5d88 + } + + if(rx_in < PROTOCOL_HEAD){ + 5d52: 3c08 cmphsi r4, 9 + 5d54: 0c19 bf 0x5d86 // 5d86 + 5d56: 3400 movi r4, 0 + while((rx_in - offset) >= PROTOCOL_HEAD){ + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + + + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 5d58: 11ea lrw r7, 0x20000410 // 5e00 + while((rx_in - offset) >= PROTOCOL_HEAD){ + 5d5a: 8e61 ld.h r3, (r6, 0x2) + 5d5c: 60d2 subu r3, r4 + 5d5e: 3b28 cmplti r3, 9 + 5d60: 0c1b bf 0x5d96 // 5d96 + } + + data_handle(offset); + offset += rx_value_len; + } + rx_in -= offset; + 5d62: 74cd zexth r3, r3 + + if(rx_in > 0){ + 5d64: 3b40 cmpnei r3, 0 + rx_in -= offset; + 5d66: ae61 st.h r3, (r6, 0x2) + if(rx_in > 0){ + 5d68: 0c0f bf 0x5d86 // 5d86 + if((offset == 0) && (rx_in >= sizeof(zigbee_uart_rx_buf))){ + 5d6a: 3c40 cmpnei r4, 0 + 5d6c: 0807 bt 0x5d7a // 5d7a + 5d6e: 3288 movi r2, 136 + 5d70: 64c8 cmphs r2, r3 + 5d72: 0804 bt 0x5d7a // 5d7a + offset++; + rx_in -= offset; + 5d74: 2b00 subi r3, 1 + 5d76: ae61 st.h r3, (r6, 0x2) + offset++; + 5d78: 3401 movi r4, 1 + } + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + 5d7a: 1122 lrw r1, 0x20000410 // 5e00 + 5d7c: 8e41 ld.h r2, (r6, 0x2) + 5d7e: 6050 addu r1, r4 + 5d80: 1100 lrw r0, 0x20000410 // 5e00 + 5d82: e3ffde35 bsr 0x19ec // 19ec <__memcpy_fast> + } +} + 5d86: 1494 pop r4-r7, r15 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 5d88: 5c62 addi r3, r4, 1 + 5d8a: ae61 st.h r3, (r6, 0x2) + 5d8c: 6114 addu r4, r5 + 5d8e: e3fffe23 bsr 0x59d4 // 59d4 + 5d92: a400 st.b r0, (r4, 0x0) + 5d94: 07d7 br 0x5d42 // 5d42 + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 5d96: 5f10 addu r0, r7, r4 + 5d98: 3255 movi r2, 85 + 5d9a: 8020 ld.b r1, (r0, 0x0) + 5d9c: 6486 cmpne r1, r2 + 5d9e: 5c42 addi r2, r4, 1 + 5da0: 0c03 bf 0x5da6 // 5da6 + offset += 2; + 5da2: 7509 zexth r4, r2 + continue; + 5da4: 07db br 0x5d5a // 5d5a + if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){ + 5da6: 5f28 addu r1, r7, r2 + 5da8: 81a0 ld.b r5, (r1, 0x0) + 5daa: 31aa movi r1, 170 + 5dac: 6456 cmpne r5, r1 + 5dae: 0bfa bt 0x5da2 // 5da2 + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + 5db0: 5c46 addi r2, r4, 2 + 5db2: 5f28 addu r1, r7, r2 + 5db4: 8120 ld.b r1, (r1, 0x0) + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + 5db6: 3942 cmpnei r1, 2 + 5db8: 0bf5 bt 0x5da2 // 5da2 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 5dba: 5c56 addi r2, r4, 6 + 5dbc: 609c addu r2, r7 + 5dbe: 82a0 ld.b r5, (r2, 0x0) + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 5dc0: 5c5a addi r2, r4, 7 + 5dc2: 609c addu r2, r7 + 5dc4: 8240 ld.b r2, (r2, 0x0) + 5dc6: 2208 addi r2, 9 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 5dc8: 45a8 lsli r5, r5, 8 + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 5dca: 6148 addu r5, r2 + 5dcc: 7555 zexth r5, r5 + if(rx_value_len > sizeof(zigbee_uart_rx_buf)){ + 5dce: 3289 movi r2, 137 + 5dd0: 6548 cmphs r2, r5 + 5dd2: 0804 bt 0x5dda // 5dda + offset += 3; + 5dd4: 2402 addi r4, 3 + 5dd6: 7511 zexth r4, r4 + continue; + 5dd8: 07c1 br 0x5d5a // 5d5a + if((rx_in - offset) < rx_value_len){ + 5dda: 654d cmplt r3, r5 + 5ddc: 0bc3 bt 0x5d62 // 5d62 + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + 5dde: 5d23 subi r1, r5, 1 + 5de0: 7445 zexth r1, r1 + 5de2: 6150 addu r5, r4 + 5de4: e3fffdca bsr 0x5978 // 5978 + 5de8: 5d63 subi r3, r5, 1 + 5dea: 60dc addu r3, r7 + 5dec: 8360 ld.b r3, (r3, 0x0) + 5dee: 64c2 cmpne r0, r3 + 5df0: 0bf2 bt 0x5dd4 // 5dd4 + data_handle(offset); + 5df2: 6c13 mov r0, r4 + 5df4: e3ffff10 bsr 0x5c14 // 5c14 + offset += rx_value_len; + 5df8: 7515 zexth r4, r5 + 5dfa: 07b0 br 0x5d5a // 5d5a + 5dfc: 200000d4 .long 0x200000d4 + 5e00: 20000410 .long 0x20000410 + +Disassembly of section .text.TemFun_Report_Task: + +00005e04 : + + + +void TemFun_Report_Task(void) +{ + 5e04: 14d1 push r4, r15 + 5e06: 1421 subi r14, r14, 4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5e08: 1151 lrw r2, 0x200004a0 // 5ecc + 5e0a: 8200 ld.b r0, (r2, 0x0) + 5e0c: 3841 cmpnei r0, 1 + 5e0e: 0831 bt 0x5e70 // 5e70 + { + if(rf_info.switc_flag == 0x01) //开关 + 5e10: 8261 ld.b r3, (r2, 0x1) + 5e12: 744c zextb r1, r3 + 5e14: 3401 movi r4, 1 + 5e16: 6904 and r4, r1 + 5e18: 3c40 cmpnei r4, 0 + 5e1a: 0c0c bf 0x5e32 // 5e32 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report onoff"); + rf_info.switc_flag = 0x00; + 5e1c: 3b80 bclri r3, 0 + 5e1e: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,PASSIVE); + 5e20: 3202 movi r2, 2 + 5e22: 116c lrw r3, 0x200002e0 // 5ed0 + 5e24: 8362 ld.b r3, (r3, 0x2) + 5e26: 4b67 lsri r3, r3, 7 + 5e28: b840 st.w r2, (r14, 0x0) + 5e2a: 3101 movi r1, 1 + 5e2c: 3201 movi r2, 1 + } + else if(rf_info.valve_flag == 0x01) //阀门状态 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + rf_info.valve_flag = 0x00; + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 5e2e: 3005 movi r0, 5 + 5e30: 041e br 0x5e6c // 5e6c + else if(rf_info.model_flag == 0x01) //模式 + 5e32: 3402 movi r4, 2 + 5e34: 6904 and r4, r1 + 5e36: 3c40 cmpnei r4, 0 + 5e38: 0c0c bf 0x5e50 // 5e50 + rf_info.model_flag = 0x00; + 5e3a: 3b81 bclri r3, 1 + 5e3c: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,PASSIVE); + 5e3e: 3202 movi r2, 2 + 5e40: 1164 lrw r3, 0x200002e0 // 5ed0 + 5e42: 8362 ld.b r3, (r3, 0x2) + 5e44: 4379 lsli r3, r3, 25 + 5e46: b840 st.w r2, (r14, 0x0) + 5e48: 4b7d lsri r3, r3, 29 + 5e4a: 3204 movi r2, 4 + 5e4c: 3102 movi r1, 2 + 5e4e: 07f0 br 0x5e2e // 5e2e + else if(rf_info.setc_flag == 0x01) //设置温度 + 5e50: 3404 movi r4, 4 + 5e52: 6904 and r4, r1 + 5e54: 3c40 cmpnei r4, 0 + 5e56: 0c0f bf 0x5e74 // 5e74 + rf_info.setc_flag = 0x00; + 5e58: 3b82 bclri r3, 2 + 5e5a: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),PASSIVE); + 5e5c: 320a movi r2, 10 + 5e5e: 107d lrw r3, 0x200002e0 // 5ed0 + 5e60: 8361 ld.b r3, (r3, 0x1) + 5e62: 7cc8 mult r3, r2 + 5e64: 3202 movi r2, 2 + 5e66: b840 st.w r2, (r14, 0x0) + 5e68: 3110 movi r1, 16 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 5e6a: 3008 movi r0, 8 + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 5e6c: e3fffe7c bsr 0x5b64 // 5b64 + } + } + 5e70: 1401 addi r14, r14, 4 + 5e72: 1491 pop r4, r15 + else if(rf_info.fan_flag == 0x01) //风速 + 5e74: 3410 movi r4, 16 + 5e76: 6904 and r4, r1 + 5e78: 3c40 cmpnei r4, 0 + 5e7a: 0c0c bf 0x5e92 // 5e92 + rf_info.fan_flag = 0x00; + 5e7c: 3b84 bclri r3, 4 + 5e7e: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,PASSIVE); + 5e80: 3202 movi r2, 2 + 5e82: 1074 lrw r3, 0x200002e0 // 5ed0 + 5e84: 8362 ld.b r3, (r3, 0x2) + 5e86: 437c lsli r3, r3, 28 + 5e88: b840 st.w r2, (r14, 0x0) + 5e8a: 4b7d lsri r3, r3, 29 + 5e8c: 3204 movi r2, 4 + 5e8e: 3140 movi r1, 64 + 5e90: 07cf br 0x5e2e // 5e2e + else if(rf_info.roomc_flag == 0x01) //室内温度 + 5e92: 3420 movi r4, 32 + 5e94: 6904 and r4, r1 + 5e96: 3c40 cmpnei r4, 0 + 5e98: 0c0c bf 0x5eb0 // 5eb0 + rf_info.roomc_flag = 0x00; + 5e9a: 3b85 bclri r3, 5 + 5e9c: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 5e9e: 104d lrw r2, 0x200002e0 // 5ed0 + 5ea0: 8269 ld.b r3, (r2, 0x9) + 5ea2: 8228 ld.b r1, (r2, 0x8) + 5ea4: 4368 lsli r3, r3, 8 + 5ea6: 6cc4 or r3, r1 + 5ea8: b800 st.w r0, (r14, 0x0) + 5eaa: 3202 movi r2, 2 + 5eac: 3118 movi r1, 24 + 5eae: 07de br 0x5e6a // 5e6a + else if(rf_info.valve_flag == 0x01) //阀门状态 + 5eb0: 7446 sextb r1, r1 + 5eb2: 39df btsti r1, 31 + 5eb4: 0fde bf 0x5e70 // 5e70 + rf_info.valve_flag = 0x00; + 5eb6: 317f movi r1, 127 + 5eb8: 68c4 and r3, r1 + 5eba: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 5ebc: 3124 movi r1, 36 + 5ebe: 1065 lrw r3, 0x200002e0 // 5ed0 + 5ec0: 8362 ld.b r3, (r3, 0x2) + 5ec2: 437f lsli r3, r3, 31 + 5ec4: 4b7f lsri r3, r3, 31 + 5ec6: b800 st.w r0, (r14, 0x0) + 5ec8: 3204 movi r2, 4 + 5eca: 07b2 br 0x5e2e // 5e2e + 5ecc: 200004a0 .long 0x200004a0 + 5ed0: 200002e0 .long 0x200002e0 + +Disassembly of section .text.Relay_Init: + +00005ed4 : +#include "includes.h" + + +void Relay_Init(void) +{ + 5ed4: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,RLY1_HOT_PIN,Output); + 5ed6: 10b9 lrw r5, 0x2000004c // 5f38 + 5ed8: 3200 movi r2, 0 + 5eda: 9500 ld.w r0, (r5, 0x0) + 5edc: 310e movi r1, 14 + 5ede: e3ffdf55 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 5ee2: 1097 lrw r4, 0x20000048 // 5f3c + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + 5ee4: 3200 movi r2, 0 + 5ee6: 9500 ld.w r0, (r5, 0x0) + 5ee8: 310f movi r1, 15 + 5eea: e3ffdf4f bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 5eee: 9400 ld.w r0, (r4, 0x0) + 5ef0: 3200 movi r2, 0 + 5ef2: 3101 movi r1, 1 + 5ef4: e3ffdf4a bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY4_MID_PIN,Output); + 5ef8: 9400 ld.w r0, (r4, 0x0) + 5efa: 3200 movi r2, 0 + 5efc: 3102 movi r1, 2 + 5efe: e3ffdf45 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY5_LOW_PIN,Output); + 5f02: 3200 movi r2, 0 + 5f04: 9400 ld.w r0, (r4, 0x0) + 5f06: 3103 movi r1, 3 + 5f08: e3ffdf40 bsr 0x1d88 // 1d88 + + RLY1_HOT_CLOSE; + 5f0c: 9500 ld.w r0, (r5, 0x0) + 5f0e: 310e movi r1, 14 + 5f10: e3ffdfb7 bsr 0x1e7e // 1e7e + RLY2_COLD_CLOSE; + 5f14: 9500 ld.w r0, (r5, 0x0) + 5f16: 310f movi r1, 15 + 5f18: e3ffdfb3 bsr 0x1e7e // 1e7e + RLY3_HIGH_CLOSE; + 5f1c: 9400 ld.w r0, (r4, 0x0) + 5f1e: 3101 movi r1, 1 + 5f20: e3ffdfaf bsr 0x1e7e // 1e7e + RLY4_MID_CLOSE; + 5f24: 9400 ld.w r0, (r4, 0x0) + 5f26: 3102 movi r1, 2 + 5f28: e3ffdfab bsr 0x1e7e // 1e7e + RLY5_LOW_CLOSE; + 5f2c: 9400 ld.w r0, (r4, 0x0) + 5f2e: 3103 movi r1, 3 + 5f30: e3ffdfa7 bsr 0x1e7e // 1e7e + +} + 5f34: 1492 pop r4-r5, r15 + 5f36: 0000 bkpt + 5f38: 2000004c .long 0x2000004c + 5f3c: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_High: + +00005f40 : + + +void Relay_High(void) +{ + 5f40: 14d1 push r4, r15 + RLY3_HIGH_OPEN; + 5f42: 1088 lrw r4, 0x20000048 // 5f60 + 5f44: 3101 movi r1, 1 + 5f46: 9400 ld.w r0, (r4, 0x0) + 5f48: e3ffdf97 bsr 0x1e76 // 1e76 + RLY4_MID_CLOSE; + 5f4c: 9400 ld.w r0, (r4, 0x0) + 5f4e: 3102 movi r1, 2 + 5f50: e3ffdf97 bsr 0x1e7e // 1e7e + RLY5_LOW_CLOSE; + 5f54: 9400 ld.w r0, (r4, 0x0) + 5f56: 3103 movi r1, 3 + 5f58: e3ffdf93 bsr 0x1e7e // 1e7e +} + 5f5c: 1491 pop r4, r15 + 5f5e: 0000 bkpt + 5f60: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Mid: + +00005f64 : + + +void Relay_Mid(void) +{ + 5f64: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 5f66: 1088 lrw r4, 0x20000048 // 5f84 + 5f68: 3101 movi r1, 1 + 5f6a: 9400 ld.w r0, (r4, 0x0) + 5f6c: e3ffdf89 bsr 0x1e7e // 1e7e + RLY4_MID_OPEN; + 5f70: 9400 ld.w r0, (r4, 0x0) + 5f72: 3102 movi r1, 2 + 5f74: e3ffdf81 bsr 0x1e76 // 1e76 + RLY5_LOW_CLOSE; + 5f78: 9400 ld.w r0, (r4, 0x0) + 5f7a: 3103 movi r1, 3 + 5f7c: e3ffdf81 bsr 0x1e7e // 1e7e +} + 5f80: 1491 pop r4, r15 + 5f82: 0000 bkpt + 5f84: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Low: + +00005f88 : + + + +void Relay_Low(void) +{ + 5f88: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 5f8a: 1088 lrw r4, 0x20000048 // 5fa8 + 5f8c: 3101 movi r1, 1 + 5f8e: 9400 ld.w r0, (r4, 0x0) + 5f90: e3ffdf77 bsr 0x1e7e // 1e7e + RLY4_MID_CLOSE; + 5f94: 9400 ld.w r0, (r4, 0x0) + 5f96: 3102 movi r1, 2 + 5f98: e3ffdf73 bsr 0x1e7e // 1e7e + RLY5_LOW_OPEN; + 5f9c: 9400 ld.w r0, (r4, 0x0) + 5f9e: 3103 movi r1, 3 + 5fa0: e3ffdf6b bsr 0x1e76 // 1e76 +} + 5fa4: 1491 pop r4, r15 + 5fa6: 0000 bkpt + 5fa8: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Stop: + +00005fac : + +void Relay_Stop(void) +{ + 5fac: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 5fae: 1088 lrw r4, 0x20000048 // 5fcc + 5fb0: 3101 movi r1, 1 + 5fb2: 9400 ld.w r0, (r4, 0x0) + 5fb4: e3ffdf65 bsr 0x1e7e // 1e7e + RLY4_MID_CLOSE; + 5fb8: 9400 ld.w r0, (r4, 0x0) + 5fba: 3102 movi r1, 2 + 5fbc: e3ffdf61 bsr 0x1e7e // 1e7e + RLY5_LOW_CLOSE; + 5fc0: 9400 ld.w r0, (r4, 0x0) + 5fc2: 3103 movi r1, 3 + 5fc4: e3ffdf5d bsr 0x1e7e // 1e7e +} + 5fc8: 1491 pop r4, r15 + 5fca: 0000 bkpt + 5fcc: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00005fd0 : + 5fd0: 1063 lrw r3, 0x20000058 // 5fdc + 5fd2: 9340 ld.w r2, (r3, 0x0) + 5fd4: 926b ld.w r3, (r2, 0x2c) + 5fd6: 6c0c or r0, r3 + 5fd8: b20b st.w r0, (r2, 0x2c) + 5fda: 783c jmp r15 + 5fdc: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00005fe0 : + 5fe0: 14c1 push r4 + 5fe2: 1069 lrw r3, 0x20000058 // 6004 + 5fe4: 3840 cmpnei r0, 0 + 5fe6: 9380 ld.w r4, (r3, 0x0) + 5fe8: 9400 ld.w r0, (r4, 0x0) + 5fea: 0c0b bf 0x6000 // 6000 + 5fec: 38a0 bseti r0, 0 + 5fee: b400 st.w r0, (r4, 0x0) + 5ff0: 9360 ld.w r3, (r3, 0x0) + 5ff2: 4248 lsli r2, r2, 8 + 5ff4: 4122 lsli r1, r1, 2 + 5ff6: 9300 ld.w r0, (r3, 0x0) + 5ff8: 6c48 or r1, r2 + 5ffa: 6c40 or r1, r0 + 5ffc: b320 st.w r1, (r3, 0x0) + 5ffe: 1481 pop r4 + 6000: 3880 bclri r0, 0 + 6002: 07f6 br 0x5fee // 5fee + 6004: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +00006008 : + 6008: 14c4 push r4-r7 + 600a: 1429 subi r14, r14, 36 + 600c: b840 st.w r2, (r14, 0x0) + 600e: 984d ld.w r2, (r14, 0x34) + 6010: b841 st.w r2, (r14, 0x4) + 6012: 984e ld.w r2, (r14, 0x38) + 6014: b842 st.w r2, (r14, 0x8) + 6016: 984f ld.w r2, (r14, 0x3c) + 6018: b843 st.w r2, (r14, 0xc) + 601a: 9850 ld.w r2, (r14, 0x40) + 601c: 9895 ld.w r4, (r14, 0x54) + 601e: b844 st.w r2, (r14, 0x10) + 6020: 9853 ld.w r2, (r14, 0x4c) + 6022: b845 st.w r2, (r14, 0x14) + 6024: b887 st.w r4, (r14, 0x1c) + 6026: 9854 ld.w r2, (r14, 0x50) + 6028: 1c11 addi r4, r14, 68 + 602a: b846 st.w r2, (r14, 0x18) + 602c: 8c80 ld.h r4, (r4, 0x0) + 602e: 1a15 addi r2, r14, 84 + 6030: 1d12 addi r5, r14, 72 + 6032: 8244 ld.b r2, (r2, 0x4) + 6034: 3c40 cmpnei r4, 0 + 6036: 8dc0 ld.h r6, (r5, 0x0) + 6038: b848 st.w r2, (r14, 0x20) + 603a: 0813 bt 0x6060 // 6060 + 603c: 105f lrw r2, 0x2000004c // 60b8 + 603e: 35f0 movi r5, 240 + 6040: 92e0 ld.w r7, (r2, 0x0) + 6042: 9740 ld.w r2, (r7, 0x0) + 6044: 45a4 lsli r5, r5, 4 + 6046: 6895 andn r2, r5 + 6048: 3aab bseti r2, 11 + 604a: b740 st.w r2, (r7, 0x0) + 604c: 3502 movi r5, 2 + 604e: 105c lrw r2, 0x20000050 // 60bc + 6050: 3e41 cmpnei r6, 1 + 6052: 9240 ld.w r2, (r2, 0x0) + 6054: b2a0 st.w r5, (r2, 0x0) + 6056: 0828 bt 0x60a6 // 60a6 + 6058: 92a4 ld.w r5, (r2, 0x10) + 605a: 3db8 bseti r5, 24 + 605c: 3db9 bseti r5, 25 + 605e: b2a4 st.w r5, (r2, 0x10) + 6060: 1058 lrw r2, 0x20000058 // 60c0 + 6062: 448d lsli r4, r4, 13 + 6064: 92a0 ld.w r5, (r2, 0x0) + 6066: 9541 ld.w r2, (r5, 0x4) + 6068: 3200 movi r2, 0 + 606a: b541 st.w r2, (r5, 0x4) + 606c: 9541 ld.w r2, (r5, 0x4) + 606e: 98c7 ld.w r6, (r14, 0x1c) + 6070: 6c98 or r2, r6 + 6072: 98c6 ld.w r6, (r14, 0x18) + 6074: 6c98 or r2, r6 + 6076: 98c5 ld.w r6, (r14, 0x14) + 6078: 6c98 or r2, r6 + 607a: 98c8 ld.w r6, (r14, 0x20) + 607c: 46d8 lsli r6, r6, 24 + 607e: 6c98 or r2, r6 + 6080: 98c4 ld.w r6, (r14, 0x10) + 6082: 6c98 or r2, r6 + 6084: 98c3 ld.w r6, (r14, 0xc) + 6086: 6c98 or r2, r6 + 6088: 98c2 ld.w r6, (r14, 0x8) + 608a: 6c98 or r2, r6 + 608c: 98c1 ld.w r6, (r14, 0x4) + 608e: 6c98 or r2, r6 + 6090: 6c48 or r1, r2 + 6092: 9840 ld.w r2, (r14, 0x0) + 6094: 6c04 or r0, r1 + 6096: 4242 lsli r2, r2, 2 + 6098: 6c08 or r0, r2 + 609a: 6d00 or r4, r0 + 609c: 4367 lsli r3, r3, 7 + 609e: 6cd0 or r3, r4 + 60a0: b561 st.w r3, (r5, 0x4) + 60a2: 1409 addi r14, r14, 36 + 60a4: 1484 pop r4-r7 + 60a6: 3e40 cmpnei r6, 0 + 60a8: 0bdc bt 0x6060 // 6060 + 60aa: 9264 ld.w r3, (r2, 0x10) + 60ac: 3b98 bclri r3, 24 + 60ae: 3b99 bclri r3, 25 + 60b0: 3bb8 bseti r3, 24 + 60b2: b264 st.w r3, (r2, 0x10) + 60b4: 3300 movi r3, 0 + 60b6: 07d5 br 0x6060 // 6060 + 60b8: 2000004c .long 0x2000004c + 60bc: 20000050 .long 0x20000050 + 60c0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +000060c4 : + 60c4: 14d4 push r4-r7, r15 + 60c6: 1422 subi r14, r14, 8 + 60c8: 1269 lrw r3, 0x2000004c // 61ec + 60ca: 31f0 movi r1, 240 + 60cc: 9360 ld.w r3, (r3, 0x0) + 60ce: 9340 ld.w r2, (r3, 0x0) + 60d0: 4130 lsli r1, r1, 16 + 60d2: 6885 andn r2, r1 + 60d4: 3ab4 bseti r2, 20 + 60d6: 3ab7 bseti r2, 23 + 60d8: b340 st.w r2, (r3, 0x0) + 60da: 35f0 movi r5, 240 + 60dc: 1245 lrw r2, 0x20000108 // 61f0 + 60de: 36f0 movi r6, 240 + 60e0: 9240 ld.w r2, (r2, 0x0) + 60e2: b841 st.w r2, (r14, 0x4) + 60e4: 3400 movi r4, 0 + 60e6: 1244 lrw r2, 0x20000048 // 61f4 + 60e8: 45ac lsli r5, r5, 12 + 60ea: 9240 ld.w r2, (r2, 0x0) + 60ec: b820 st.w r1, (r14, 0x0) + 60ee: 46c8 lsli r6, r6, 8 + 60f0: 3701 movi r7, 1 + 60f2: 71d0 lsl r7, r4 + 60f4: 9821 ld.w r1, (r14, 0x4) + 60f6: 69c4 and r7, r1 + 60f8: 3f40 cmpnei r7, 0 + 60fa: 7410 zextb r0, r4 + 60fc: 0c1b bf 0x6132 // 6132 + 60fe: 2800 subi r0, 1 + 6100: 380f cmphsi r0, 16 + 6102: 080b bt 0x6118 // 6118 + 6104: e3ffd5fc bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6108: 27201a0f .long 0x27201a0f + 610c: 3d38312c .long 0x3d38312c + 6110: 56514a44 .long 0x56514a44 + 6114: 6c67615b .long 0x6c67615b + 6118: 9200 ld.w r0, (r2, 0x0) + 611a: 37f0 movi r7, 240 + 611c: 681d andn r0, r7 + 611e: 38a4 bseti r0, 4 + 6120: 38a7 bseti r0, 7 + 6122: b200 st.w r0, (r2, 0x0) + 6124: 0407 br 0x6132 // 6132 + 6126: 9300 ld.w r0, (r3, 0x0) + 6128: 370f movi r7, 15 + 612a: 681d andn r0, r7 + 612c: 38a0 bseti r0, 0 + 612e: 38a3 bseti r0, 3 + 6130: b300 st.w r0, (r3, 0x0) + 6132: 2400 addi r4, 1 + 6134: 3c51 cmpnei r4, 17 + 6136: 0bdd bt 0x60f0 // 60f0 + 6138: 1402 addi r14, r14, 8 + 613a: 1494 pop r4-r7, r15 + 613c: 9300 ld.w r0, (r3, 0x0) + 613e: 37f0 movi r7, 240 + 6140: 681d andn r0, r7 + 6142: 38a4 bseti r0, 4 + 6144: 38a7 bseti r0, 7 + 6146: 07f5 br 0x6130 // 6130 + 6148: 37f0 movi r7, 240 + 614a: 9300 ld.w r0, (r3, 0x0) + 614c: 47e4 lsli r7, r7, 4 + 614e: 681d andn r0, r7 + 6150: 38a8 bseti r0, 8 + 6152: 38ab bseti r0, 11 + 6154: 07ee br 0x6130 // 6130 + 6156: 9300 ld.w r0, (r3, 0x0) + 6158: 6819 andn r0, r6 + 615a: 38ac bseti r0, 12 + 615c: 38af bseti r0, 15 + 615e: 07e9 br 0x6130 // 6130 + 6160: 9300 ld.w r0, (r3, 0x0) + 6162: 6815 andn r0, r5 + 6164: 38b0 bseti r0, 16 + 6166: 38b3 bseti r0, 19 + 6168: 07e4 br 0x6130 // 6130 + 616a: 37f0 movi r7, 240 + 616c: 9200 ld.w r0, (r2, 0x0) + 616e: 47e4 lsli r7, r7, 4 + 6170: 681d andn r0, r7 + 6172: 38a8 bseti r0, 8 + 6174: 38ab bseti r0, 11 + 6176: 07d6 br 0x6122 // 6122 + 6178: 9200 ld.w r0, (r2, 0x0) + 617a: 6819 andn r0, r6 + 617c: 38ac bseti r0, 12 + 617e: 38af bseti r0, 15 + 6180: 07d1 br 0x6122 // 6122 + 6182: 9301 ld.w r0, (r3, 0x4) + 6184: 370f movi r7, 15 + 6186: 681d andn r0, r7 + 6188: 38a0 bseti r0, 0 + 618a: 38a3 bseti r0, 3 + 618c: b301 st.w r0, (r3, 0x4) + 618e: 07d2 br 0x6132 // 6132 + 6190: 9301 ld.w r0, (r3, 0x4) + 6192: 37f0 movi r7, 240 + 6194: 681d andn r0, r7 + 6196: 38a4 bseti r0, 4 + 6198: 38a7 bseti r0, 7 + 619a: 07f9 br 0x618c // 618c + 619c: 37f0 movi r7, 240 + 619e: 9301 ld.w r0, (r3, 0x4) + 61a0: 47e4 lsli r7, r7, 4 + 61a2: 681d andn r0, r7 + 61a4: 38a8 bseti r0, 8 + 61a6: 38ab bseti r0, 11 + 61a8: 07f2 br 0x618c // 618c + 61aa: 9301 ld.w r0, (r3, 0x4) + 61ac: 6819 andn r0, r6 + 61ae: 38ac bseti r0, 12 + 61b0: 38af bseti r0, 15 + 61b2: 07ed br 0x618c // 618c + 61b4: 9301 ld.w r0, (r3, 0x4) + 61b6: 6815 andn r0, r5 + 61b8: 38b0 bseti r0, 16 + 61ba: 38b3 bseti r0, 19 + 61bc: 07e8 br 0x618c // 618c + 61be: 9301 ld.w r0, (r3, 0x4) + 61c0: 9820 ld.w r1, (r14, 0x0) + 61c2: 6805 andn r0, r1 + 61c4: 38b4 bseti r0, 20 + 61c6: 38b7 bseti r0, 23 + 61c8: 07e2 br 0x618c // 618c + 61ca: 9200 ld.w r0, (r2, 0x0) + 61cc: 370f movi r7, 15 + 61ce: 681d andn r0, r7 + 61d0: 38a0 bseti r0, 0 + 61d2: 38a3 bseti r0, 3 + 61d4: 07a7 br 0x6122 // 6122 + 61d6: 9200 ld.w r0, (r2, 0x0) + 61d8: 6815 andn r0, r5 + 61da: 38b0 bseti r0, 16 + 61dc: 38b3 bseti r0, 19 + 61de: 07a2 br 0x6122 // 6122 + 61e0: 9200 ld.w r0, (r2, 0x0) + 61e2: 9820 ld.w r1, (r14, 0x0) + 61e4: 6805 andn r0, r1 + 61e6: 38b4 bseti r0, 20 + 61e8: 38b7 bseti r0, 23 + 61ea: 079c br 0x6122 // 6122 + 61ec: 2000004c .long 0x2000004c + 61f0: 20000108 .long 0x20000108 + 61f4: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +000061f8 : + 61f8: 14c4 push r4-r7 + 61fa: 1072 lrw r3, 0x20000054 // 6240 + 61fc: 1012 lrw r0, 0x200007d2 // 6244 + 61fe: 1093 lrw r4, 0x20000643 // 6248 + 6200: 6d83 mov r6, r0 + 6202: 93a0 ld.w r5, (r3, 0x0) + 6204: 3300 movi r3, 0 + 6206: 4342 lsli r2, r3, 2 + 6208: 6094 addu r2, r5 + 620a: 9220 ld.w r1, (r2, 0x0) + 620c: 4341 lsli r2, r3, 1 + 620e: 6080 addu r2, r0 + 6210: 7445 zexth r1, r1 + 6212: aa20 st.h r1, (r2, 0x0) + 6214: 8440 ld.b r2, (r4, 0x0) + 6216: 3a41 cmpnei r2, 1 + 6218: 080f bt 0x6236 // 6236 + 621a: 3300 movi r3, 0 + 621c: 10ec lrw r7, 0x2000052c // 624c + 621e: 4341 lsli r2, r3, 1 + 6220: 5e28 addu r1, r6, r2 + 6222: 8920 ld.h r1, (r1, 0x0) + 6224: 2300 addi r3, 1 + 6226: 7445 zexth r1, r1 + 6228: 609c addu r2, r7 + 622a: 3b51 cmpnei r3, 17 + 622c: aa20 st.h r1, (r2, 0x0) + 622e: 0bf8 bt 0x621e // 621e + 6230: 3300 movi r3, 0 + 6232: a460 st.b r3, (r4, 0x0) + 6234: 3311 movi r3, 17 + 6236: 2300 addi r3, 1 + 6238: 74cc zextb r3, r3 + 623a: 3b10 cmphsi r3, 17 + 623c: 0fe5 bf 0x6206 // 6206 + 623e: 1484 pop r4-r7 + 6240: 20000054 .long 0x20000054 + 6244: 200007d2 .long 0x200007d2 + 6248: 20000643 .long 0x20000643 + 624c: 2000052c .long 0x2000052c + +Disassembly of section .text.TKEYIntHandler: + +00006250 : + 6250: 1460 nie + 6252: 1462 ipush + 6254: 14d1 push r4, r15 + 6256: 109e lrw r4, 0x20000070 // 62cc + 6258: 9460 ld.w r3, (r4, 0x0) + 625a: 3b40 cmpnei r3, 0 + 625c: 080b bt 0x6272 // 6272 + 625e: 3301 movi r3, 1 + 6260: b460 st.w r3, (r4, 0x0) + 6262: 107c lrw r3, 0x200005c0 // 62d0 + 6264: 8360 ld.b r3, (r3, 0x0) + 6266: 3b41 cmpnei r3, 1 + 6268: 0805 bt 0x6272 // 6272 + 626a: e3ffffc7 bsr 0x61f8 // 61f8 + 626e: 3301 movi r3, 1 + 6270: a464 st.b r3, (r4, 0x4) + 6272: 1079 lrw r3, 0x20000058 // 62d4 + 6274: 3101 movi r1, 1 + 6276: 9360 ld.w r3, (r3, 0x0) + 6278: 934a ld.w r2, (r3, 0x28) + 627a: 6884 and r2, r1 + 627c: 3a40 cmpnei r2, 0 + 627e: 0c02 bf 0x6282 // 6282 + 6280: b32c st.w r1, (r3, 0x30) + 6282: 934a ld.w r2, (r3, 0x28) + 6284: 3102 movi r1, 2 + 6286: 6884 and r2, r1 + 6288: 3a40 cmpnei r2, 0 + 628a: 0c02 bf 0x628e // 628e + 628c: b32c st.w r1, (r3, 0x30) + 628e: 934a ld.w r2, (r3, 0x28) + 6290: 3104 movi r1, 4 + 6292: 6884 and r2, r1 + 6294: 3a40 cmpnei r2, 0 + 6296: 0c02 bf 0x629a // 629a + 6298: b32c st.w r1, (r3, 0x30) + 629a: 934a ld.w r2, (r3, 0x28) + 629c: 3108 movi r1, 8 + 629e: 6884 and r2, r1 + 62a0: 3a40 cmpnei r2, 0 + 62a2: 0c02 bf 0x62a6 // 62a6 + 62a4: b32c st.w r1, (r3, 0x30) + 62a6: 934a ld.w r2, (r3, 0x28) + 62a8: 3110 movi r1, 16 + 62aa: 6884 and r2, r1 + 62ac: 3a40 cmpnei r2, 0 + 62ae: 0c02 bf 0x62b2 // 62b2 + 62b0: b32c st.w r1, (r3, 0x30) + 62b2: 934a ld.w r2, (r3, 0x28) + 62b4: 3120 movi r1, 32 + 62b6: 6884 and r2, r1 + 62b8: 3a40 cmpnei r2, 0 + 62ba: 0c02 bf 0x62be // 62be + 62bc: b32c st.w r1, (r3, 0x30) + 62be: d9ee2001 ld.w r15, (r14, 0x4) + 62c2: 9880 ld.w r4, (r14, 0x0) + 62c4: 1402 addi r14, r14, 8 + 62c6: 1463 ipop + 62c8: 1461 nir + 62ca: 0000 bkpt + 62cc: 20000070 .long 0x20000070 + 62d0: 200005c0 .long 0x200005c0 + 62d4: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +000062d8 : + 62d8: 14c2 push r4-r5 + 62da: 3200 movi r2, 0 + 62dc: 3000 movi r0, 0 + 62de: 1088 lrw r4, 0x20000660 // 62fc + 62e0: 3501 movi r5, 1 + 62e2: 3120 movi r1, 32 + 62e4: 9460 ld.w r3, (r4, 0x0) + 62e6: 70c9 lsr r3, r2 + 62e8: 68d4 and r3, r5 + 62ea: 3b40 cmpnei r3, 0 + 62ec: 0c02 bf 0x62f0 // 62f0 + 62ee: 2000 addi r0, 1 + 62f0: 2200 addi r2, 1 + 62f2: 644a cmpne r2, r1 + 62f4: 0bf8 bt 0x62e4 // 62e4 + 62f6: 7400 zextb r0, r0 + 62f8: 1482 pop r4-r5 + 62fa: 0000 bkpt + 62fc: 20000660 .long 0x20000660 + +Disassembly of section .text.TK_Baseline_prog: + +00006300 : + 6300: 14c4 push r4-r7 + 6302: 1423 subi r14, r14, 12 + 6304: 1079 lrw r3, 0x20000058 // 6368 + 6306: 105a lrw r2, 0x2000052c // 636c + 6308: 10ba lrw r5, 0x20000070 // 6370 + 630a: b842 st.w r2, (r14, 0x8) + 630c: 9360 ld.w r3, (r3, 0x0) + 630e: b860 st.w r3, (r14, 0x0) + 6310: 1079 lrw r3, 0x20000054 // 6374 + 6312: 9360 ld.w r3, (r3, 0x0) + 6314: b861 st.w r3, (r14, 0x4) + 6316: 3306 movi r3, 6 + 6318: 3201 movi r2, 1 + 631a: 9820 ld.w r1, (r14, 0x0) + 631c: b142 st.w r2, (r1, 0x8) + 631e: 3200 movi r2, 0 + 6320: b540 st.w r2, (r5, 0x0) + 6322: 9540 ld.w r2, (r5, 0x0) + 6324: 3a40 cmpnei r2, 0 + 6326: 0ffe bf 0x6322 // 6322 + 6328: 6c03 mov r0, r0 + 632a: 3200 movi r2, 0 + 632c: 10d3 lrw r6, 0x200007d2 // 6378 + 632e: 4202 lsli r0, r2, 2 + 6330: 9821 ld.w r1, (r14, 0x4) + 6332: 6004 addu r0, r1 + 6334: 9080 ld.w r4, (r0, 0x0) + 6336: 4221 lsli r1, r2, 1 + 6338: 98e2 ld.w r7, (r14, 0x8) + 633a: 61c4 addu r7, r1 + 633c: 7511 zexth r4, r4 + 633e: af80 st.h r4, (r7, 0x0) + 6340: 9000 ld.w r0, (r0, 0x0) + 6342: 2200 addi r2, 1 + 6344: 7401 zexth r0, r0 + 6346: 6058 addu r1, r6 + 6348: 3a51 cmpnei r2, 17 + 634a: a900 st.h r0, (r1, 0x0) + 634c: 0bf1 bt 0x632e // 632e + 634e: 2b00 subi r3, 1 + 6350: 74cc zextb r3, r3 + 6352: 3b40 cmpnei r3, 0 + 6354: 0be2 bt 0x6318 // 6318 + 6356: 106a lrw r3, 0x200005c0 // 637c + 6358: 3201 movi r2, 1 + 635a: a340 st.b r2, (r3, 0x0) + 635c: 3200 movi r2, 0 + 635e: 1069 lrw r3, 0x20000749 // 6380 + 6360: a340 st.b r2, (r3, 0x0) + 6362: 1403 addi r14, r14, 12 + 6364: 1484 pop r4-r7 + 6366: 0000 bkpt + 6368: 20000058 .long 0x20000058 + 636c: 2000052c .long 0x2000052c + 6370: 20000070 .long 0x20000070 + 6374: 20000054 .long 0x20000054 + 6378: 200007d2 .long 0x200007d2 + 637c: 200005c0 .long 0x200005c0 + 6380: 20000749 .long 0x20000749 + +Disassembly of section .text.TK_Scan_Start: + +00006384 : + 6384: 1046 lrw r2, 0x20000070 // 639c + 6386: 8264 ld.b r3, (r2, 0x4) + 6388: 74cc zextb r3, r3 + 638a: 3b41 cmpnei r3, 1 + 638c: 0807 bt 0x639a // 639a + 638e: 1025 lrw r1, 0x20000058 // 63a0 + 6390: 9120 ld.w r1, (r1, 0x0) + 6392: b162 st.w r3, (r1, 0x8) + 6394: 3300 movi r3, 0 + 6396: b260 st.w r3, (r2, 0x0) + 6398: a264 st.b r3, (r2, 0x4) + 639a: 783c jmp r15 + 639c: 20000070 .long 0x20000070 + 63a0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +000063a4 : + 63a4: 14d4 push r4-r7, r15 + 63a6: 1425 subi r14, r14, 20 + 63a8: 1271 lrw r3, 0x20000104 // 64ec + 63aa: 8360 ld.b r3, (r3, 0x0) + 63ac: b860 st.w r3, (r14, 0x0) + 63ae: 3400 movi r4, 0 + 63b0: 1270 lrw r3, 0x200000d8 // 64f0 + 63b2: 8360 ld.b r3, (r3, 0x0) + 63b4: b861 st.w r3, (r14, 0x4) + 63b6: 12f0 lrw r7, 0x200005d6 // 64f4 + 63b8: 1270 lrw r3, 0x200000e1 // 64f8 + 63ba: 83a0 ld.b r5, (r3, 0x0) + 63bc: 1270 lrw r3, 0x200000e0 // 64fc + 63be: 8360 ld.b r3, (r3, 0x0) + 63c0: b862 st.w r3, (r14, 0x8) + 63c2: 6d9f mov r6, r7 + 63c4: 126f lrw r3, 0x200007d2 // 6500 + 63c6: b863 st.w r3, (r14, 0xc) + 63c8: 4461 lsli r3, r4, 1 + 63ca: 9843 ld.w r2, (r14, 0xc) + 63cc: 608c addu r2, r3 + 63ce: 122e lrw r1, 0x2000052c // 6504 + 63d0: 604c addu r1, r3 + 63d2: 8a40 ld.h r2, (r2, 0x0) + 63d4: 8920 ld.h r1, (r1, 0x0) + 63d6: 6086 subu r2, r1 + 63d8: 748b sexth r2, r2 + 63da: 5f2c addu r1, r7, r3 + 63dc: a940 st.h r2, (r1, 0x0) + 63de: 8940 ld.h r2, (r1, 0x0) + 63e0: 748b sexth r2, r2 + 63e2: 3adf btsti r2, 31 + 63e4: 1249 lrw r2, 0x2000078e // 6508 + 63e6: 608c addu r2, r3 + 63e8: 0c37 bf 0x6456 // 6456 + 63ea: 3100 movi r1, 0 + 63ec: aa20 st.h r1, (r2, 0x0) + 63ee: 9840 ld.w r2, (r14, 0x0) + 63f0: 3a01 cmphsi r2, 2 + 63f2: 0c6d bf 0x64cc // 64cc + 63f4: 4461 lsli r3, r4, 1 + 63f6: 5e2c addu r1, r6, r3 + 63f8: 1205 lrw r0, 0x20000132 // 650c + 63fa: 8940 ld.h r2, (r1, 0x0) + 63fc: 60c0 addu r3, r0 + 63fe: 748b sexth r2, r2 + 6400: 8b60 ld.h r3, (r3, 0x0) + 6402: 648d cmplt r3, r2 + 6404: 9840 ld.w r2, (r14, 0x0) + 6406: 7cc8 mult r3, r2 + 6408: 0c2a bf 0x645c // 645c + 640a: 8940 ld.h r2, (r1, 0x0) + 640c: 748b sexth r2, r2 + 640e: 64c9 cmplt r2, r3 + 6410: 0c26 bf 0x645c // 645c + 6412: 1240 lrw r2, 0x200005c4 // 6510 + 6414: 6090 addu r2, r4 + 6416: 8260 ld.b r3, (r2, 0x0) + 6418: 2300 addi r3, 1 + 641a: 74cc zextb r3, r3 + 641c: a260 st.b r3, (r2, 0x0) + 641e: 3100 movi r1, 0 + 6420: 117d lrw r3, 0x200005aa // 6514 + 6422: 60d0 addu r3, r4 + 6424: a320 st.b r1, (r3, 0x0) + 6426: 117d lrw r3, 0x20000686 // 6518 + 6428: 60d0 addu r3, r4 + 642a: a320 st.b r1, (r3, 0x0) + 642c: 117c lrw r3, 0x20000700 // 651c + 642e: 60d0 addu r3, r4 + 6430: a320 st.b r1, (r3, 0x0) + 6432: 8260 ld.b r3, (r2, 0x0) + 6434: 9821 ld.w r1, (r14, 0x4) + 6436: 64c4 cmphs r1, r3 + 6438: 081f bt 0x6476 // 6476 + 643a: 3d40 cmpnei r5, 0 + 643c: 0852 bt 0x64e0 // 64e0 + 643e: 1139 lrw r1, 0x200005bc // 6520 + 6440: 9160 ld.w r3, (r1, 0x0) + 6442: 3b40 cmpnei r3, 0 + 6444: 0806 bt 0x6450 // 6450 + 6446: 9100 ld.w r0, (r1, 0x0) + 6448: 3301 movi r3, 1 + 644a: 70d0 lsl r3, r4 + 644c: 6cc0 or r3, r0 + 644e: b160 st.w r3, (r1, 0x0) + 6450: 3300 movi r3, 0 + 6452: a260 st.b r3, (r2, 0x0) + 6454: 0411 br 0x6476 // 6476 + 6456: 8920 ld.h r1, (r1, 0x0) + 6458: 7445 zexth r1, r1 + 645a: 07c9 br 0x63ec // 63ec + 645c: 4441 lsli r2, r4, 1 + 645e: 6098 addu r2, r6 + 6460: 8a40 ld.h r2, (r2, 0x0) + 6462: 748b sexth r2, r2 + 6464: 648d cmplt r3, r2 + 6466: 0c08 bf 0x6476 // 6476 + 6468: 3300 movi r3, 0 + 646a: 114e lrw r2, 0x200005bc // 6520 + 646c: 2b01 subi r3, 2 + 646e: 9220 ld.w r1, (r2, 0x0) + 6470: 70d3 rotl r3, r4 + 6472: 68c4 and r3, r1 + 6474: b260 st.w r3, (r2, 0x0) + 6476: 4441 lsli r2, r4, 1 + 6478: 5e68 addu r3, r6, r2 + 647a: 8b60 ld.h r3, (r3, 0x0) + 647c: 74cf sexth r3, r3 + 647e: b864 st.w r3, (r14, 0x10) + 6480: 3105 movi r1, 5 + 6482: 1163 lrw r3, 0x20000132 // 650c + 6484: 608c addu r2, r3 + 6486: 8a00 ld.h r0, (r2, 0x0) + 6488: 4002 lsli r0, r0, 2 + 648a: e3ffe98b bsr 0x37a0 // 37a0 <__divsi3> + 648e: 9864 ld.w r3, (r14, 0x10) + 6490: 640d cmplt r3, r0 + 6492: 0c18 bf 0x64c2 // 64c2 + 6494: 1140 lrw r2, 0x200005aa // 6514 + 6496: 6090 addu r2, r4 + 6498: 8260 ld.b r3, (r2, 0x0) + 649a: 2300 addi r3, 1 + 649c: 74cc zextb r3, r3 + 649e: a260 st.b r3, (r2, 0x0) + 64a0: 3100 movi r1, 0 + 64a2: 107c lrw r3, 0x200005c4 // 6510 + 64a4: 60d0 addu r3, r4 + 64a6: a320 st.b r1, (r3, 0x0) + 64a8: 8260 ld.b r3, (r2, 0x0) + 64aa: 9822 ld.w r1, (r14, 0x8) + 64ac: 64c4 cmphs r1, r3 + 64ae: 080a bt 0x64c2 // 64c2 + 64b0: 3300 movi r3, 0 + 64b2: 103c lrw r1, 0x200005bc // 6520 + 64b4: 2b01 subi r3, 2 + 64b6: 9100 ld.w r0, (r1, 0x0) + 64b8: 70d3 rotl r3, r4 + 64ba: 68c0 and r3, r0 + 64bc: b160 st.w r3, (r1, 0x0) + 64be: 3300 movi r3, 0 + 64c0: a260 st.b r3, (r2, 0x0) + 64c2: 2400 addi r4, 1 + 64c4: 3c51 cmpnei r4, 17 + 64c6: 0b81 bt 0x63c8 // 63c8 + 64c8: 1405 addi r14, r14, 20 + 64ca: 1494 pop r4-r7, r15 + 64cc: 60d8 addu r3, r6 + 64ce: 4441 lsli r2, r4, 1 + 64d0: 102f lrw r1, 0x20000132 // 650c + 64d2: 8b60 ld.h r3, (r3, 0x0) + 64d4: 6084 addu r2, r1 + 64d6: 74cf sexth r3, r3 + 64d8: 8a40 ld.h r2, (r2, 0x0) + 64da: 64c9 cmplt r2, r3 + 64dc: 0fcd bf 0x6476 // 6476 + 64de: 079a br 0x6412 // 6412 + 64e0: 3d41 cmpnei r5, 1 + 64e2: 0bb7 bt 0x6450 // 6450 + 64e4: 102f lrw r1, 0x200005bc // 6520 + 64e6: 6cd7 mov r3, r5 + 64e8: 9100 ld.w r0, (r1, 0x0) + 64ea: 07b0 br 0x644a // 644a + 64ec: 20000104 .long 0x20000104 + 64f0: 200000d8 .long 0x200000d8 + 64f4: 200005d6 .long 0x200005d6 + 64f8: 200000e1 .long 0x200000e1 + 64fc: 200000e0 .long 0x200000e0 + 6500: 200007d2 .long 0x200007d2 + 6504: 2000052c .long 0x2000052c + 6508: 2000078e .long 0x2000078e + 650c: 20000132 .long 0x20000132 + 6510: 200005c4 .long 0x200005c4 + 6514: 200005aa .long 0x200005aa + 6518: 20000686 .long 0x20000686 + 651c: 20000700 .long 0x20000700 + 6520: 200005bc .long 0x200005bc + +Disassembly of section .text.TK_overflow_predict: + +00006524 : + 6524: 14d4 push r4-r7, r15 + 6526: 1421 subi r14, r14, 4 + 6528: 11d9 lrw r6, 0x20000070 // 660c + 652a: 8665 ld.b r3, (r6, 0x5) + 652c: 3b41 cmpnei r3, 1 + 652e: 085f bt 0x65ec // 65ec + 6530: 1158 lrw r2, 0x200006dc // 6610 + 6532: 8260 ld.b r3, (r2, 0x0) + 6534: 2300 addi r3, 1 + 6536: 74cc zextb r3, r3 + 6538: a260 st.b r3, (r2, 0x0) + 653a: 8260 ld.b r3, (r2, 0x0) + 653c: 1136 lrw r1, 0x20000105 // 6614 + 653e: 8120 ld.b r1, (r1, 0x0) + 6540: 64c4 cmphs r1, r3 + 6542: 0855 bt 0x65ec // 65ec + 6544: 3300 movi r3, 0 + 6546: a260 st.b r3, (r2, 0x0) + 6548: 3500 movi r5, 0 + 654a: 11f4 lrw r7, 0x20000108 // 6618 + 654c: 2605 addi r6, 6 + 654e: 9760 ld.w r3, (r7, 0x0) + 6550: 70d5 lsr r3, r5 + 6552: 3201 movi r2, 1 + 6554: 68c8 and r3, r2 + 6556: 3b40 cmpnei r3, 0 + 6558: 0c34 bf 0x65c0 // 65c0 + 655a: 4581 lsli r4, r5, 1 + 655c: 5e70 addu r3, r6, r4 + 655e: 8b00 ld.h r0, (r3, 0x0) + 6560: e3ffd820 bsr 0x15a0 // 15a0 <__floatunsidf> + 6564: 6cc7 mov r3, r1 + 6566: 3180 movi r1, 128 + 6568: 6c83 mov r2, r0 + 656a: 4137 lsli r1, r1, 23 + 656c: 3000 movi r0, 0 + 656e: e3ffce23 bsr 0x1b4 // 1b4 <__GI_pow> + 6572: 116b lrw r3, 0x2000010e // 661c + 6574: 60d0 addu r3, r4 + 6576: 8b60 ld.h r3, (r3, 0x0) + 6578: 4364 lsli r3, r3, 4 + 657a: 230e addi r3, 15 + 657c: b860 st.w r3, (r14, 0x0) + 657e: e3ffd3c9 bsr 0xd10 // d10 <__fixunsdfsi> + 6582: 9860 ld.w r3, (r14, 0x0) + 6584: 7cc0 mult r3, r0 + 6586: 1147 lrw r2, 0x2000076c // 6620 + 6588: 740d zexth r0, r3 + 658a: 6090 addu r2, r4 + 658c: 1166 lrw r3, 0x200007d2 // 6624 + 658e: 60d0 addu r3, r4 + 6590: aa00 st.h r0, (r2, 0x0) + 6592: 8b60 ld.h r3, (r3, 0x0) + 6594: 8a00 ld.h r0, (r2, 0x0) + 6596: 7401 zexth r0, r0 + 6598: 325f movi r2, 95 + 659a: 74cd zexth r3, r3 + 659c: 7c08 mult r0, r2 + 659e: 3164 movi r1, 100 + 65a0: b860 st.w r3, (r14, 0x0) + 65a2: e3ffe8ff bsr 0x37a0 // 37a0 <__divsi3> + 65a6: 9860 ld.w r3, (r14, 0x0) + 65a8: 64c1 cmplt r0, r3 + 65aa: 0c0b bf 0x65c0 // 65c0 + 65ac: 107f lrw r3, 0x200000e2 // 6628 + 65ae: 610c addu r4, r3 + 65b0: 8c60 ld.h r3, (r4, 0x0) + 65b2: 3b06 cmphsi r3, 7 + 65b4: 0806 bt 0x65c0 // 65c0 + 65b6: 2300 addi r3, 1 + 65b8: ac60 st.h r3, (r4, 0x0) + 65ba: 3201 movi r2, 1 + 65bc: 107c lrw r3, 0x20000631 // 662c + 65be: a340 st.b r2, (r3, 0x0) + 65c0: 2500 addi r5, 1 + 65c2: 3d51 cmpnei r5, 17 + 65c4: 0bc5 bt 0x654e // 654e + 65c6: 107a lrw r3, 0x20000631 // 662c + 65c8: 8340 ld.b r2, (r3, 0x0) + 65ca: 3a41 cmpnei r2, 1 + 65cc: 0810 bt 0x65ec // 65ec + 65ce: 3200 movi r2, 0 + 65d0: a340 st.b r2, (r3, 0x0) + 65d2: 3200 movi r2, 0 + 65d4: 1077 lrw r3, 0x20000058 // 6630 + 65d6: 1018 lrw r0, 0x200006ff // 6634 + 65d8: 10b8 lrw r5, 0x20000738 // 6638 + 65da: 10d4 lrw r6, 0x200000e2 // 6628 + 65dc: 9360 ld.w r3, (r3, 0x0) + 65de: b342 st.w r2, (r3, 0x8) + 65e0: 1077 lrw r3, 0x20000054 // 663c + 65e2: 9380 ld.w r4, (r3, 0x0) + 65e4: 3300 movi r3, 0 + 65e6: 8040 ld.b r2, (r0, 0x0) + 65e8: 648c cmphs r3, r2 + 65ea: 0c03 bf 0x65f0 // 65f0 + 65ec: 1401 addi r14, r14, 4 + 65ee: 1494 pop r4-r7, r15 + 65f0: 5d4c addu r2, r5, r3 + 65f2: 8240 ld.b r2, (r2, 0x0) + 65f4: 4241 lsli r2, r2, 1 + 65f6: 4322 lsli r1, r3, 2 + 65f8: 6098 addu r2, r6 + 65fa: 6050 addu r1, r4 + 65fc: 8a40 ld.h r2, (r2, 0x0) + 65fe: 91f2 ld.w r7, (r1, 0x48) + 6600: 4254 lsli r2, r2, 20 + 6602: 6c9c or r2, r7 + 6604: 2300 addi r3, 1 + 6606: b152 st.w r2, (r1, 0x48) + 6608: 74cc zextb r3, r3 + 660a: 07ee br 0x65e6 // 65e6 + 660c: 20000070 .long 0x20000070 + 6610: 200006dc .long 0x200006dc + 6614: 20000105 .long 0x20000105 + 6618: 20000108 .long 0x20000108 + 661c: 2000010e .long 0x2000010e + 6620: 2000076c .long 0x2000076c + 6624: 200007d2 .long 0x200007d2 + 6628: 200000e2 .long 0x200000e2 + 662c: 20000631 .long 0x20000631 + 6630: 20000058 .long 0x20000058 + 6634: 200006ff .long 0x200006ff + 6638: 20000738 .long 0x20000738 + 663c: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00006640 : + 6640: 14c4 push r4-r7 + 6642: 1422 subi r14, r14, 8 + 6644: 1348 lrw r2, 0x2000065e // 67e4 + 6646: 8260 ld.b r3, (r2, 0x0) + 6648: 2300 addi r3, 1 + 664a: 74cc zextb r3, r3 + 664c: a260 st.b r3, (r2, 0x0) + 664e: 8260 ld.b r3, (r2, 0x0) + 6650: 1326 lrw r1, 0x20000105 // 67e8 + 6652: 8120 ld.b r1, (r1, 0x0) + 6654: 644c cmphs r3, r1 + 6656: 0cad bf 0x67b0 // 67b0 + 6658: 3300 movi r3, 0 + 665a: a260 st.b r3, (r2, 0x0) + 665c: 1364 lrw r3, 0x200005bc // 67ec + 665e: 9360 ld.w r3, (r3, 0x0) + 6660: 3b40 cmpnei r3, 0 + 6662: 08a7 bt 0x67b0 // 67b0 + 6664: 1323 lrw r1, 0x200005d6 // 67f0 + 6666: 6dc7 mov r7, r1 + 6668: b820 st.w r1, (r14, 0x0) + 666a: 3200 movi r2, 0 + 666c: 1362 lrw r3, 0x20000132 // 67f4 + 666e: 1323 lrw r1, 0x2000052c // 67f8 + 6670: 4201 lsli r0, r2, 1 + 6672: 9880 ld.w r4, (r14, 0x0) + 6674: 6100 addu r4, r0 + 6676: 8c80 ld.h r4, (r4, 0x0) + 6678: 7513 sexth r4, r4 + 667a: 3cdf btsti r4, 31 + 667c: 0c27 bf 0x66ca // 66ca + 667e: 13a0 lrw r5, 0x200007d2 // 67fc + 6680: 5980 addu r4, r1, r0 + 6682: 6014 addu r0, r5 + 6684: b881 st.w r4, (r14, 0x4) + 6686: 8c80 ld.h r4, (r4, 0x0) + 6688: 88c0 ld.h r6, (r0, 0x0) + 668a: 7511 zexth r4, r4 + 668c: 7599 zexth r6, r6 + 668e: 8ba0 ld.h r5, (r3, 0x0) + 6690: 611a subu r4, r6 + 6692: 6551 cmplt r4, r5 + 6694: 081b bt 0x66ca // 66ca + 6696: 9881 ld.w r4, (r14, 0x4) + 6698: 8c80 ld.h r4, (r4, 0x0) + 669a: 8800 ld.h r0, (r0, 0x0) + 669c: 7511 zexth r4, r4 + 669e: 7401 zexth r0, r0 + 66a0: 5c01 subu r0, r4, r0 + 66a2: 4581 lsli r4, r5, 1 + 66a4: 6150 addu r5, r4 + 66a6: 6541 cmplt r0, r5 + 66a8: 0c11 bf 0x66ca // 66ca + 66aa: 1296 lrw r4, 0x20000700 // 6800 + 66ac: 6108 addu r4, r2 + 66ae: 8400 ld.b r0, (r4, 0x0) + 66b0: 2000 addi r0, 1 + 66b2: 7400 zextb r0, r0 + 66b4: a400 st.b r0, (r4, 0x0) + 66b6: 1214 lrw r0, 0x20000090 // 6804 + 66b8: 84a0 ld.b r5, (r4, 0x0) + 66ba: 8008 ld.b r0, (r0, 0x8) + 66bc: 6540 cmphs r0, r5 + 66be: 0806 bt 0x66ca // 66ca + 66c0: 1212 lrw r0, 0x20000643 // 6808 + 66c2: 3501 movi r5, 1 + 66c4: a0a0 st.b r5, (r0, 0x0) + 66c6: 3000 movi r0, 0 + 66c8: a400 st.b r0, (r4, 0x0) + 66ca: 4201 lsli r0, r2, 1 + 66cc: 5f80 addu r4, r7, r0 + 66ce: 8c80 ld.h r4, (r4, 0x0) + 66d0: 7513 sexth r4, r4 + 66d2: 3c20 cmplti r4, 1 + 66d4: 0870 bt 0x67b4 // 67b4 + 66d6: 128a lrw r4, 0x200007d2 // 67fc + 66d8: 6100 addu r4, r0 + 66da: 59a0 addu r5, r1, r0 + 66dc: 8c80 ld.h r4, (r4, 0x0) + 66de: 8da0 ld.h r5, (r5, 0x0) + 66e0: 7555 zexth r5, r5 + 66e2: 7511 zexth r4, r4 + 66e4: 6116 subu r4, r5 + 66e6: 8ba0 ld.h r5, (r3, 0x0) + 66e8: 45a2 lsli r5, r5, 2 + 66ea: 6551 cmplt r4, r5 + 66ec: 0864 bt 0x67b4 // 67b4 + 66ee: 1288 lrw r4, 0x20000686 // 680c + 66f0: 6108 addu r4, r2 + 66f2: 84a0 ld.b r5, (r4, 0x0) + 66f4: 2500 addi r5, 1 + 66f6: 7554 zextb r5, r5 + 66f8: a4a0 st.b r5, (r4, 0x0) + 66fa: 12a3 lrw r5, 0x20000090 // 6804 + 66fc: 84c0 ld.b r6, (r4, 0x0) + 66fe: 85a9 ld.b r5, (r5, 0x9) + 6700: 6594 cmphs r5, r6 + 6702: 0806 bt 0x670e // 670e + 6704: 12a1 lrw r5, 0x20000643 // 6808 + 6706: 3601 movi r6, 1 + 6708: a5c0 st.b r6, (r5, 0x0) + 670a: 3500 movi r5, 0 + 670c: a4a0 st.b r5, (r4, 0x0) + 670e: 5f80 addu r4, r7, r0 + 6710: 8c80 ld.h r4, (r4, 0x0) + 6712: 7513 sexth r4, r4 + 6714: 3cdf btsti r4, 31 + 6716: 0c10 bf 0x6736 // 6736 + 6718: 11d9 lrw r6, 0x200007d2 // 67fc + 671a: 59a0 addu r5, r1, r0 + 671c: 6180 addu r6, r0 + 671e: 8d80 ld.h r4, (r5, 0x0) + 6720: 8ec0 ld.h r6, (r6, 0x0) + 6722: 7599 zexth r6, r6 + 6724: 7511 zexth r4, r4 + 6726: 611a subu r4, r6 + 6728: 8bc0 ld.h r6, (r3, 0x0) + 672a: 6591 cmplt r4, r6 + 672c: 0c05 bf 0x6736 // 6736 + 672e: 8d80 ld.h r4, (r5, 0x0) + 6730: 2c00 subi r4, 1 + 6732: 7511 zexth r4, r4 + 6734: ad80 st.h r4, (r5, 0x0) + 6736: 5f80 addu r4, r7, r0 + 6738: 8c80 ld.h r4, (r4, 0x0) + 673a: 7513 sexth r4, r4 + 673c: 3cdf btsti r4, 31 + 673e: 0c11 bf 0x6760 // 6760 + 6740: 11cf lrw r6, 0x200007d2 // 67fc + 6742: 59a0 addu r5, r1, r0 + 6744: 6180 addu r6, r0 + 6746: 8d80 ld.h r4, (r5, 0x0) + 6748: 8ec0 ld.h r6, (r6, 0x0) + 674a: 7599 zexth r6, r6 + 674c: 7511 zexth r4, r4 + 674e: 611a subu r4, r6 + 6750: 8bc0 ld.h r6, (r3, 0x0) + 6752: 4ec1 lsri r6, r6, 1 + 6754: 6591 cmplt r4, r6 + 6756: 0805 bt 0x6760 // 6760 + 6758: 8d80 ld.h r4, (r5, 0x0) + 675a: 2c01 subi r4, 2 + 675c: 7511 zexth r4, r4 + 675e: ad80 st.h r4, (r5, 0x0) + 6760: 5fa0 addu r5, r7, r0 + 6762: 8d80 ld.h r4, (r5, 0x0) + 6764: 7513 sexth r4, r4 + 6766: 3c20 cmplti r4, 1 + 6768: 080c bt 0x6780 // 6780 + 676a: 8da0 ld.h r5, (r5, 0x0) + 676c: 8b80 ld.h r4, (r3, 0x0) + 676e: 7557 sexth r5, r5 + 6770: 4c81 lsri r4, r4, 1 + 6772: 6515 cmplt r5, r4 + 6774: 0c06 bf 0x6780 // 6780 + 6776: 59a0 addu r5, r1, r0 + 6778: 8d80 ld.h r4, (r5, 0x0) + 677a: 2400 addi r4, 1 + 677c: 7511 zexth r4, r4 + 677e: ad80 st.h r4, (r5, 0x0) + 6780: 5fa0 addu r5, r7, r0 + 6782: 8d80 ld.h r4, (r5, 0x0) + 6784: 7513 sexth r4, r4 + 6786: 3c20 cmplti r4, 1 + 6788: 0810 bt 0x67a8 // 67a8 + 678a: 8dc0 ld.h r6, (r5, 0x0) + 678c: 759b sexth r6, r6 + 678e: 8b80 ld.h r4, (r3, 0x0) + 6790: 6519 cmplt r6, r4 + 6792: 0c0b bf 0x67a8 // 67a8 + 6794: 8da0 ld.h r5, (r5, 0x0) + 6796: 7557 sexth r5, r5 + 6798: 4c81 lsri r4, r4, 1 + 679a: 6515 cmplt r5, r4 + 679c: 0806 bt 0x67a8 // 67a8 + 679e: 6004 addu r0, r1 + 67a0: 8880 ld.h r4, (r0, 0x0) + 67a2: 2401 addi r4, 2 + 67a4: 7511 zexth r4, r4 + 67a6: a880 st.h r4, (r0, 0x0) + 67a8: 2200 addi r2, 1 + 67aa: 3a51 cmpnei r2, 17 + 67ac: 2301 addi r3, 2 + 67ae: 0b61 bt 0x6670 // 6670 + 67b0: 1402 addi r14, r14, 8 + 67b2: 1484 pop r4-r7 + 67b4: 5f80 addu r4, r7, r0 + 67b6: 8c80 ld.h r4, (r4, 0x0) + 67b8: 7513 sexth r4, r4 + 67ba: 3cdf btsti r4, 31 + 67bc: 0fa9 bf 0x670e // 670e + 67be: 10b0 lrw r5, 0x200007d2 // 67fc + 67c0: 5980 addu r4, r1, r0 + 67c2: 6140 addu r5, r0 + 67c4: 8c80 ld.h r4, (r4, 0x0) + 67c6: 8da0 ld.h r5, (r5, 0x0) + 67c8: 7555 zexth r5, r5 + 67ca: 8bc0 ld.h r6, (r3, 0x0) + 67cc: 7511 zexth r4, r4 + 67ce: 6116 subu r4, r5 + 67d0: 46a1 lsli r5, r6, 1 + 67d2: 6158 addu r5, r6 + 67d4: 6551 cmplt r4, r5 + 67d6: 0b9c bt 0x670e // 670e + 67d8: 108c lrw r4, 0x20000643 // 6808 + 67da: 3501 movi r5, 1 + 67dc: a4a0 st.b r5, (r4, 0x0) + 67de: 6c03 mov r0, r0 + 67e0: 0797 br 0x670e // 670e + 67e2: 0000 bkpt + 67e4: 2000065e .long 0x2000065e + 67e8: 20000105 .long 0x20000105 + 67ec: 200005bc .long 0x200005bc + 67f0: 200005d6 .long 0x200005d6 + 67f4: 20000132 .long 0x20000132 + 67f8: 2000052c .long 0x2000052c + 67fc: 200007d2 .long 0x200007d2 + 6800: 20000700 .long 0x20000700 + 6804: 20000090 .long 0x20000090 + 6808: 20000643 .long 0x20000643 + 680c: 20000686 .long 0x20000686 + +Disassembly of section .text.TK_result_prog: + +00006810 : + 6810: 14d2 push r4-r5, r15 + 6812: 1050 lrw r2, 0x200005bc // 6850 + 6814: 1090 lrw r4, 0x20000660 // 6854 + 6816: 9260 ld.w r3, (r2, 0x0) + 6818: 3b40 cmpnei r3, 0 + 681a: 0c02 bf 0x681e // 681e + 681c: 9260 ld.w r3, (r2, 0x0) + 681e: b460 st.w r3, (r4, 0x0) + 6820: 9460 ld.w r3, (r4, 0x0) + 6822: 3b40 cmpnei r3, 0 + 6824: 10ad lrw r5, 0x20000734 // 6858 + 6826: 0c11 bf 0x6848 // 6848 + 6828: 9440 ld.w r2, (r4, 0x0) + 682a: 9560 ld.w r3, (r5, 0x0) + 682c: 64ca cmpne r2, r3 + 682e: 0c03 bf 0x6834 // 6834 + 6830: 9460 ld.w r3, (r4, 0x0) + 6832: b560 st.w r3, (r5, 0x0) + 6834: e3fffd52 bsr 0x62d8 // 62d8 + 6838: 1069 lrw r3, 0x2000010c // 685c + 683a: 8360 ld.b r3, (r3, 0x0) + 683c: 640c cmphs r3, r0 + 683e: 0804 bt 0x6846 // 6846 + 6840: 3300 movi r3, 0 + 6842: b460 st.w r3, (r4, 0x0) + 6844: b560 st.w r3, (r5, 0x0) + 6846: 1492 pop r4-r5, r15 + 6848: 1046 lrw r2, 0x20000658 // 6860 + 684a: b560 st.w r3, (r5, 0x0) + 684c: b260 st.w r3, (r2, 0x0) + 684e: 07fc br 0x6846 // 6846 + 6850: 200005bc .long 0x200005bc + 6854: 20000660 .long 0x20000660 + 6858: 20000734 .long 0x20000734 + 685c: 2000010c .long 0x2000010c + 6860: 20000658 .long 0x20000658 + +Disassembly of section .text.CORETHandler: + +00006864 : + 6864: 1460 nie + 6866: 1462 ipush + 6868: 14d1 push r4, r15 + 686a: 1077 lrw r3, 0x20000064 // 68c4 + 686c: 3400 movi r4, 0 + 686e: 9360 ld.w r3, (r3, 0x0) + 6870: b386 st.w r4, (r3, 0x18) + 6872: 1076 lrw r3, 0x200005c0 // 68c8 + 6874: 8360 ld.b r3, (r3, 0x0) + 6876: 3b41 cmpnei r3, 1 + 6878: 0820 bt 0x68b8 // 68b8 + 687a: e3fffd85 bsr 0x6384 // 6384 + 687e: e3fffd93 bsr 0x63a4 // 63a4 + 6882: e3fffe51 bsr 0x6524 // 6524 + 6886: e3fffedd bsr 0x6640 // 6640 + 688a: e3ffffc3 bsr 0x6810 // 6810 + 688e: 1070 lrw r3, 0x20000660 // 68cc + 6890: 9360 ld.w r3, (r3, 0x0) + 6892: 3b40 cmpnei r3, 0 + 6894: 0c12 bf 0x68b8 // 68b8 + 6896: 106f lrw r3, 0x200000dc // 68d0 + 6898: 9340 ld.w r2, (r3, 0x0) + 689a: 3a40 cmpnei r2, 0 + 689c: 0c0e bf 0x68b8 // 68b8 + 689e: 106e lrw r3, 0x20000658 // 68d4 + 68a0: 3064 movi r0, 100 + 68a2: 9320 ld.w r1, (r3, 0x0) + 68a4: 2100 addi r1, 1 + 68a6: b320 st.w r1, (r3, 0x0) + 68a8: 9320 ld.w r1, (r3, 0x0) + 68aa: 7c80 mult r2, r0 + 68ac: 6448 cmphs r2, r1 + 68ae: 0805 bt 0x68b8 // 68b8 + 68b0: 104a lrw r2, 0x20000643 // 68d8 + 68b2: 3101 movi r1, 1 + 68b4: a220 st.b r1, (r2, 0x0) + 68b6: b380 st.w r4, (r3, 0x0) + 68b8: d9ee2001 ld.w r15, (r14, 0x4) + 68bc: 9880 ld.w r4, (r14, 0x0) + 68be: 1402 addi r14, r14, 8 + 68c0: 1463 ipop + 68c2: 1461 nir + 68c4: 20000064 .long 0x20000064 + 68c8: 200005c0 .long 0x200005c0 + 68cc: 20000660 .long 0x20000660 + 68d0: 200000dc .long 0x200000dc + 68d4: 20000658 .long 0x20000658 + 68d8: 20000643 .long 0x20000643 + +Disassembly of section .text.get_key_seq: + +000068dc : + 68dc: 14c3 push r4-r6 + 68de: 106b lrw r3, 0x20000108 // 6908 + 68e0: 3000 movi r0, 0 + 68e2: 9320 ld.w r1, (r3, 0x0) + 68e4: 3401 movi r4, 1 + 68e6: 3300 movi r3, 0 + 68e8: 10a9 lrw r5, 0x20000738 // 690c + 68ea: 6c87 mov r2, r1 + 68ec: 708d lsr r2, r3 + 68ee: 6890 and r2, r4 + 68f0: 3a40 cmpnei r2, 0 + 68f2: 0c05 bf 0x68fc // 68fc + 68f4: 5dc0 addu r6, r5, r0 + 68f6: 748c zextb r2, r3 + 68f8: a640 st.b r2, (r6, 0x0) + 68fa: 2000 addi r0, 1 + 68fc: 2300 addi r3, 1 + 68fe: 3b51 cmpnei r3, 17 + 6900: 0bf5 bt 0x68ea // 68ea + 6902: 7400 zextb r0, r0 + 6904: 1483 pop r4-r6 + 6906: 0000 bkpt + 6908: 20000108 .long 0x20000108 + 690c: 20000738 .long 0x20000738 + +Disassembly of section .text.CORET_CONFIG: + +00006910 : + 6910: 14d0 push r15 + 6912: e3ffe139 bsr 0x2b84 // 2b84 + 6916: 3180 movi r1, 128 + 6918: 4124 lsli r1, r1, 4 + 691a: 3001 movi r0, 1 + 691c: e3ffd916 bsr 0x1b48 // 1b48 + 6920: 1068 lrw r3, 0x20000064 // 6940 + 6922: 1049 lrw r2, 0x20000158 // 6944 + 6924: 9360 ld.w r3, (r3, 0x0) + 6926: 9240 ld.w r2, (r2, 0x0) + 6928: b345 st.w r2, (r3, 0x14) + 692a: e3ffe15d bsr 0x2be4 // 2be4 + 692e: e3ffe14b bsr 0x2bc4 // 2bc4 + 6932: e3ffe151 bsr 0x2bd4 // 2bd4 + 6936: e3ffe13f bsr 0x2bb4 // 2bb4 + 693a: e3ffe131 bsr 0x2b9c // 2b9c + 693e: 1490 pop r15 + 6940: 20000064 .long 0x20000064 + 6944: 20000158 .long 0x20000158 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00006948 : + 6948: 1066 lrw r3, 0x20000054 // 6960 + 694a: 3100 movi r1, 0 + 694c: 9300 ld.w r0, (r3, 0x0) + 694e: 3300 movi r3, 0 + 6950: 4342 lsli r2, r3, 2 + 6952: 2300 addi r3, 1 + 6954: 6080 addu r2, r0 + 6956: 3b52 cmpnei r3, 18 + 6958: b220 st.w r1, (r2, 0x0) + 695a: b232 st.w r1, (r2, 0x48) + 695c: 0bfa bt 0x6950 // 6950 + 695e: 783c jmp r15 + 6960: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +00006964 : + 6964: 1065 lrw r3, 0x2000005c // 6978 + 6966: 1046 lrw r2, 0xa67a6cc7 // 697c + 6968: 9360 ld.w r3, (r3, 0x0) + 696a: b356 st.w r2, (r3, 0x58) + 696c: 1045 lrw r2, 0x21f1f04 // 6980 + 696e: b355 st.w r2, (r3, 0x54) + 6970: 1045 lrw r2, 0x69966996 // 6984 + 6972: 1066 lrw r3, 0x40011180 // 6988 + 6974: b35f st.w r2, (r3, 0x7c) + 6976: 783c jmp r15 + 6978: 2000005c .long 0x2000005c + 697c: a67a6cc7 .long 0xa67a6cc7 + 6980: 021f1f04 .long 0x021f1f04 + 6984: 69966996 .long 0x69966996 + 6988: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +0000698c : + 698c: 14d4 push r4-r7, r15 + 698e: 142c subi r14, r14, 48 + 6990: e3ffffea bsr 0x6964 // 6964 + 6994: e3ffe05c bsr 0x2a4c // 2a4c + 6998: 1268 lrw r3, 0x20000070 // 6ab8 + 699a: 934b ld.w r2, (r3, 0x2c) + 699c: 1268 lrw r3, 0x40011200 // 6abc + 699e: b350 st.w r2, (r3, 0x40) + 69a0: 1268 lrw r3, 0x200000d9 // 6ac0 + 69a2: 8360 ld.b r3, (r3, 0x0) + 69a4: 3b41 cmpnei r3, 1 + 69a6: 0817 bt 0x69d4 // 69d4 + 69a8: 1267 lrw r3, 0x20000058 // 6ac4 + 69aa: 3105 movi r1, 5 + 69ac: 9380 ld.w r4, (r3, 0x0) + 69ae: 1267 lrw r3, 0x20000130 // 6ac8 + 69b0: 8300 ld.b r0, (r3, 0x0) + 69b2: e3ffe709 bsr 0x37c4 // 37c4 <__udivsi3> + 69b6: 7400 zextb r0, r0 + 69b8: 1265 lrw r3, 0x200000da // 6acc + 69ba: b408 st.w r0, (r4, 0x20) + 69bc: 8300 ld.b r0, (r3, 0x0) + 69be: 3804 cmphsi r0, 5 + 69c0: 1264 lrw r3, 0x2000065c // 6ad0 + 69c2: 085a bt 0x6a76 // 6a76 + 69c4: e3ffd19c bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 69c8: 53575103 .long 0x53575103 + 69cc: 0055 .short 0x0055 + 69ce: 3296 movi r2, 150 + 69d0: 4242 lsli r2, r2, 2 + 69d2: ab40 st.h r2, (r3, 0x0) + 69d4: e3fffb78 bsr 0x60c4 // 60c4 + 69d8: 3200 movi r2, 0 + 69da: 3100 movi r1, 0 + 69dc: 3001 movi r0, 1 + 69de: e3fffb01 bsr 0x5fe0 // 5fe0 + 69e2: e3ffffb3 bsr 0x6948 // 6948 + 69e6: e3ffff7b bsr 0x68dc // 68dc + 69ea: 119b lrw r4, 0x200006ff // 6ad4 + 69ec: 3101 movi r1, 1 + 69ee: a400 st.b r0, (r4, 0x0) + 69f0: 8440 ld.b r2, (r4, 0x0) + 69f2: 117a lrw r3, 0x20000154 // 6ad8 + 69f4: 8b60 ld.h r3, (r3, 0x0) + 69f6: b829 st.w r1, (r14, 0x24) + 69f8: 3180 movi r1, 128 + 69fa: 412d lsli r1, r1, 13 + 69fc: b828 st.w r1, (r14, 0x20) + 69fe: 3180 movi r1, 128 + 6a00: 4129 lsli r1, r1, 9 + 6a02: b827 st.w r1, (r14, 0x1c) + 6a04: 3100 movi r1, 0 + 6a06: b826 st.w r1, (r14, 0x18) + 6a08: 2a00 subi r2, 1 + 6a0a: 1115 lrw r0, 0x20000156 // 6adc + 6a0c: 8800 ld.h r0, (r0, 0x0) + 6a0e: b805 st.w r0, (r14, 0x14) + 6a10: 7488 zextb r2, r2 + 6a12: 1114 lrw r0, 0x2000015c // 6ae0 + 6a14: 8800 ld.h r0, (r0, 0x0) + 6a16: b804 st.w r0, (r14, 0x10) + 6a18: 3080 movi r0, 128 + 6a1a: 4005 lsli r0, r0, 5 + 6a1c: b803 st.w r0, (r14, 0xc) + 6a1e: 3080 movi r0, 128 + 6a20: 4004 lsli r0, r0, 4 + 6a22: b802 st.w r0, (r14, 0x8) + 6a24: b821 st.w r1, (r14, 0x4) + 6a26: b820 st.w r1, (r14, 0x0) + 6a28: 3001 movi r0, 1 + 6a2a: 3102 movi r1, 2 + 6a2c: e3fffaee bsr 0x6008 // 6008 + 6a30: 3002 movi r0, 2 + 6a32: e3fffacf bsr 0x5fd0 // 5fd0 + 6a36: 3020 movi r0, 32 + 6a38: e3fffacc bsr 0x5fd0 // 5fd0 + 6a3c: 3380 movi r3, 128 + 6a3e: 4372 lsli r3, r3, 18 + 6a40: 1149 lrw r2, 0xe000e100 // 6ae4 + 6a42: b260 st.w r3, (r2, 0x0) + 6a44: b270 st.w r3, (r2, 0x40) + 6a46: 11e9 lrw r7, 0x20000076 // 6ae8 + 6a48: 1169 lrw r3, 0x20000054 // 6aec + 6a4a: 11aa lrw r5, 0x20000738 // 6af0 + 6a4c: 11ca lrw r6, 0x2000010e // 6af4 + 6a4e: 9360 ld.w r3, (r3, 0x0) + 6a50: b86a st.w r3, (r14, 0x28) + 6a52: b88b st.w r4, (r14, 0x2c) + 6a54: 3300 movi r3, 0 + 6a56: 984b ld.w r2, (r14, 0x2c) + 6a58: 8240 ld.b r2, (r2, 0x0) + 6a5a: 648c cmphs r3, r2 + 6a5c: 0c0f bf 0x6a7a // 6a7a + 6a5e: e3ffff59 bsr 0x6910 // 6910 + 6a62: e3fffc4f bsr 0x6300 // 6300 + 6a66: 140c addi r14, r14, 48 + 6a68: 1494 pop r4-r7, r15 + 6a6a: 1145 lrw r2, 0x5dc // 6afc + 6a6c: 07b3 br 0x69d2 // 69d2 + 6a6e: 1145 lrw r2, 0x1194 // 6b00 + 6a70: 07b1 br 0x69d2 // 69d2 + 6a72: 1145 lrw r2, 0x1770 // 6b04 + 6a74: 07af br 0x69d2 // 69d2 + 6a76: 1145 lrw r2, 0xbb8 // 6b08 + 6a78: 07ad br 0x69d2 // 69d2 + 6a7a: 5d0c addu r0, r5, r3 + 6a7c: 8020 ld.b r1, (r0, 0x0) + 6a7e: 8040 ld.b r2, (r0, 0x0) + 6a80: 8080 ld.b r4, (r0, 0x0) + 6a82: 8000 ld.b r0, (r0, 0x0) + 6a84: 4001 lsli r0, r0, 1 + 6a86: 6018 addu r0, r6 + 6a88: 4121 lsli r1, r1, 1 + 6a8a: 8800 ld.h r0, (r0, 0x0) + 6a8c: 605c addu r1, r7 + 6a8e: 448f lsli r4, r4, 15 + 6a90: 6d00 or r4, r0 + 6a92: 4241 lsli r2, r2, 1 + 6a94: 8900 ld.h r0, (r1, 0x0) + 6a96: 1039 lrw r1, 0x200000e2 // 6af8 + 6a98: 6084 addu r2, r1 + 6a9a: 4018 lsli r0, r0, 24 + 6a9c: 6c10 or r0, r4 + 6a9e: 8a80 ld.h r4, (r2, 0x0) + 6aa0: 3212 movi r2, 18 + 6aa2: 608c addu r2, r3 + 6aa4: 4494 lsli r4, r4, 20 + 6aa6: 4242 lsli r2, r2, 2 + 6aa8: 982a ld.w r1, (r14, 0x28) + 6aaa: 6c10 or r0, r4 + 6aac: 6084 addu r2, r1 + 6aae: 2300 addi r3, 1 + 6ab0: b200 st.w r0, (r2, 0x0) + 6ab2: 74cc zextb r3, r3 + 6ab4: 07d1 br 0x6a56 // 6a56 + 6ab6: 0000 bkpt + 6ab8: 20000070 .long 0x20000070 + 6abc: 40011200 .long 0x40011200 + 6ac0: 200000d9 .long 0x200000d9 + 6ac4: 20000058 .long 0x20000058 + 6ac8: 20000130 .long 0x20000130 + 6acc: 200000da .long 0x200000da + 6ad0: 2000065c .long 0x2000065c + 6ad4: 200006ff .long 0x200006ff + 6ad8: 20000154 .long 0x20000154 + 6adc: 20000156 .long 0x20000156 + 6ae0: 2000015c .long 0x2000015c + 6ae4: e000e100 .long 0xe000e100 + 6ae8: 20000076 .long 0x20000076 + 6aec: 20000054 .long 0x20000054 + 6af0: 20000738 .long 0x20000738 + 6af4: 2000010e .long 0x2000010e + 6af8: 200000e2 .long 0x200000e2 + 6afc: 000005dc .long 0x000005dc + 6b00: 00001194 .long 0x00001194 + 6b04: 00001770 .long 0x00001770 + 6b08: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +00006b0c : + 6b0c: 14d4 push r4-r7, r15 + 6b0e: 142d subi r14, r14, 52 + 6b10: 3201 movi r2, 1 + 6b12: 03ce lrw r6, 0x2000005c // 6d54 + 6b14: 6cc3 mov r3, r0 + 6b16: dc4e000a st.b r2, (r14, 0xa) + 6b1a: 9640 ld.w r2, (r6, 0x0) + 6b1c: 9247 ld.w r2, (r2, 0x1c) + 6b1e: 7488 zextb r2, r2 + 6b20: dc4e0009 st.b r2, (r14, 0x9) + 6b24: d84e0009 ld.b r2, (r14, 0x9) + 6b28: 3a40 cmpnei r2, 0 + 6b2a: 0c08 bf 0x6b3a // 6b3a + 6b2c: d84e0009 ld.b r2, (r14, 0x9) + 6b30: 3a42 cmpnei r2, 2 + 6b32: 0c04 bf 0x6b3a // 6b3a + 6b34: 3000 movi r0, 0 + 6b36: 140d addi r14, r14, 52 + 6b38: 1494 pop r4-r7, r15 + 6b3a: 0397 lrw r4, 0x2000000c // 6d58 + 6b3c: 3209 movi r2, 9 + 6b3e: 9400 ld.w r0, (r4, 0x0) + 6b40: 3b40 cmpnei r3, 0 + 6b42: b041 st.w r2, (r0, 0x4) + 6b44: 0857 bt 0x6bf2 // 6bf2 + 6b46: 3307 movi r3, 7 + 6b48: dc6e000b st.b r3, (r14, 0xb) + 6b4c: 037b lrw r3, 0x2dc6c00 // 6d5c + 6b4e: b863 st.w r3, (r14, 0xc) + 6b50: 3380 movi r3, 128 + 6b52: 4362 lsli r3, r3, 2 + 6b54: b867 st.w r3, (r14, 0x1c) + 6b56: d86e000b ld.b r3, (r14, 0xb) + 6b5a: 74cc zextb r3, r3 + 6b5c: b062 st.w r3, (r0, 0x8) + 6b5e: 037e lrw r3, 0xffff // 6d60 + 6b60: b063 st.w r3, (r0, 0xc) + 6b62: 3201 movi r2, 1 + 6b64: 3101 movi r1, 1 + 6b66: 03bf lrw r5, 0x20000014 // 6d64 + 6b68: e3ffd9de bsr 0x1f24 // 1f24 + 6b6c: 95e0 ld.w r7, (r5, 0x0) + 6b6e: 137f lrw r3, 0xbe9c0005 // 6d68 + 6b70: b760 st.w r3, (r7, 0x0) + 6b72: 135f lrw r2, 0x30010 // 6d6c + 6b74: 3300 movi r3, 0 + 6b76: b762 st.w r3, (r7, 0x8) + 6b78: b743 st.w r2, (r7, 0xc) + 6b7a: 32d8 movi r2, 216 + 6b7c: b745 st.w r2, (r7, 0x14) + 6b7e: 974f ld.w r2, (r7, 0x3c) + 6b80: 3aa2 bseti r2, 2 + 6b82: b74f st.w r2, (r7, 0x3c) + 6b84: 9803 ld.w r0, (r14, 0xc) + 6b86: d82e000b ld.b r1, (r14, 0xb) + 6b8a: 327d movi r2, 125 + 6b8c: 2100 addi r1, 1 + 6b8e: 7c48 mult r1, r2 + 6b90: b861 st.w r3, (r14, 0x4) + 6b92: e3ffe619 bsr 0x37c4 // 37c4 <__udivsi3> + 6b96: b804 st.w r0, (r14, 0x10) + 6b98: 32fa movi r2, 250 + 6b9a: 9824 ld.w r1, (r14, 0x10) + 6b9c: 4242 lsli r2, r2, 2 + 6b9e: 6448 cmphs r2, r1 + 6ba0: 0bca bt 0x6b34 // 6b34 + 6ba2: 9844 ld.w r2, (r14, 0x10) + 6ba4: 3178 movi r1, 120 + 6ba6: 9804 ld.w r0, (r14, 0x10) + 6ba8: b840 st.w r2, (r14, 0x0) + 6baa: e3ffe60d bsr 0x37c4 // 37c4 <__udivsi3> + 6bae: 9840 ld.w r2, (r14, 0x0) + 6bb0: 6082 subu r2, r0 + 6bb2: b845 st.w r2, (r14, 0x14) + 6bb4: 9804 ld.w r0, (r14, 0x10) + 6bb6: 3178 movi r1, 120 + 6bb8: 9844 ld.w r2, (r14, 0x10) + 6bba: b840 st.w r2, (r14, 0x0) + 6bbc: e3ffe604 bsr 0x37c4 // 37c4 <__udivsi3> + 6bc0: 9840 ld.w r2, (r14, 0x0) + 6bc2: 6008 addu r0, r2 + 6bc4: b806 st.w r0, (r14, 0x18) + 6bc6: c0807020 psrclr ie + 6bca: 9640 ld.w r2, (r6, 0x0) + 6bcc: 9254 ld.w r2, (r2, 0x50) + 6bce: b848 st.w r2, (r14, 0x20) + 6bd0: 9861 ld.w r3, (r14, 0x4) + 6bd2: 9440 ld.w r2, (r4, 0x0) + 6bd4: b260 st.w r3, (r2, 0x0) + 6bd6: b761 st.w r3, (r7, 0x4) + 6bd8: d86e000a ld.b r3, (r14, 0xa) + 6bdc: 3b40 cmpnei r3, 0 + 6bde: 083e bt 0x6c5a // 6c5a + 6be0: e3ffd954 bsr 0x1e88 // 1e88 + 6be4: 9400 ld.w r0, (r4, 0x0) + 6be6: e3ffd975 bsr 0x1ed0 // 1ed0 + 6bea: c1807420 psrset ee, ie + 6bee: 3001 movi r0, 1 + 6bf0: 07a3 br 0x6b36 // 6b36 + 6bf2: 3b41 cmpnei r3, 1 + 6bf4: 0806 bt 0x6c00 // 6c00 + 6bf6: 3303 movi r3, 3 + 6bf8: dc6e000b st.b r3, (r14, 0xb) + 6bfc: 127d lrw r3, 0x16e3600 // 6d70 + 6bfe: 07a8 br 0x6b4e // 6b4e + 6c00: 3b42 cmpnei r3, 2 + 6c02: 0806 bt 0x6c0e // 6c0e + 6c04: 3301 movi r3, 1 + 6c06: dc6e000b st.b r3, (r14, 0xb) + 6c0a: 127b lrw r3, 0xb71b00 // 6d74 + 6c0c: 07a1 br 0x6b4e // 6b4e + 6c0e: 3b43 cmpnei r3, 3 + 6c10: 0806 bt 0x6c1c // 6c1c + 6c12: 3300 movi r3, 0 + 6c14: dc6e000b st.b r3, (r14, 0xb) + 6c18: 1278 lrw r3, 0x5b8d80 // 6d78 + 6c1a: 079a br 0x6b4e // 6b4e + 6c1c: 3b44 cmpnei r3, 4 + 6c1e: 0809 bt 0x6c30 // 6c30 + 6c20: 3300 movi r3, 0 + 6c22: dc6e000b st.b r3, (r14, 0xb) + 6c26: 1276 lrw r3, 0x54c720 // 6d7c + 6c28: b863 st.w r3, (r14, 0xc) + 6c2a: 3380 movi r3, 128 + 6c2c: 4369 lsli r3, r3, 9 + 6c2e: 0793 br 0x6b54 // 6b54 + 6c30: 3b45 cmpnei r3, 5 + 6c32: 0806 bt 0x6c3e // 6c3e + 6c34: 3300 movi r3, 0 + 6c36: dc6e000b st.b r3, (r14, 0xb) + 6c3a: 1272 lrw r3, 0x3ffed0 // 6d80 + 6c3c: 07f6 br 0x6c28 // 6c28 + 6c3e: 3b46 cmpnei r3, 6 + 6c40: 0806 bt 0x6c4c // 6c4c + 6c42: 3300 movi r3, 0 + 6c44: dc6e000b st.b r3, (r14, 0xb) + 6c48: 126f lrw r3, 0x1fff68 // 6d84 + 6c4a: 07ef br 0x6c28 // 6c28 + 6c4c: 3b47 cmpnei r3, 7 + 6c4e: 0b84 bt 0x6b56 // 6b56 + 6c50: 3300 movi r3, 0 + 6c52: dc6e000b st.b r3, (r14, 0xb) + 6c56: 126d lrw r3, 0x1ffb8 // 6d88 + 6c58: 07e8 br 0x6c28 // 6c28 + 6c5a: 9560 ld.w r3, (r5, 0x0) + 6c5c: 3101 movi r1, 1 + 6c5e: 9440 ld.w r2, (r4, 0x0) + 6c60: b321 st.w r1, (r3, 0x4) + 6c62: b220 st.w r1, (r2, 0x0) + 6c64: 3100 movi r1, 0 + 6c66: b327 st.w r1, (r3, 0x1c) + 6c68: 3004 movi r0, 4 + 6c6a: b225 st.w r1, (r2, 0x14) + 6c6c: 932e ld.w r1, (r3, 0x38) + 6c6e: 6840 and r1, r0 + 6c70: 3940 cmpnei r1, 0 + 6c72: 0ffd bf 0x6c6c // 6c6c + 6c74: 9225 ld.w r1, (r2, 0x14) + 6c76: b82a st.w r1, (r14, 0x28) + 6c78: 3100 movi r1, 0 + 6c7a: b310 st.w r0, (r3, 0x40) + 6c7c: b327 st.w r1, (r3, 0x1c) + 6c7e: 3004 movi r0, 4 + 6c80: b225 st.w r1, (r2, 0x14) + 6c82: 932e ld.w r1, (r3, 0x38) + 6c84: 6840 and r1, r0 + 6c86: 3940 cmpnei r1, 0 + 6c88: 0ffd bf 0x6c82 // 6c82 + 6c8a: 9225 ld.w r1, (r2, 0x14) + 6c8c: b82b st.w r1, (r14, 0x2c) + 6c8e: 3100 movi r1, 0 + 6c90: b310 st.w r0, (r3, 0x40) + 6c92: b327 st.w r1, (r3, 0x1c) + 6c94: 3004 movi r0, 4 + 6c96: b225 st.w r1, (r2, 0x14) + 6c98: 932e ld.w r1, (r3, 0x38) + 6c9a: 6840 and r1, r0 + 6c9c: 3940 cmpnei r1, 0 + 6c9e: 0ffd bf 0x6c98 // 6c98 + 6ca0: 9225 ld.w r1, (r2, 0x14) + 6ca2: b82c st.w r1, (r14, 0x30) + 6ca4: b310 st.w r0, (r3, 0x40) + 6ca6: 982b ld.w r1, (r14, 0x2c) + 6ca8: 980c ld.w r0, (r14, 0x30) + 6caa: 6040 addu r1, r0 + 6cac: b829 st.w r1, (r14, 0x24) + 6cae: 9829 ld.w r1, (r14, 0x24) + 6cb0: 4921 lsri r1, r1, 1 + 6cb2: b829 st.w r1, (r14, 0x24) + 6cb4: 3100 movi r1, 0 + 6cb6: b321 st.w r1, (r3, 0x4) + 6cb8: b220 st.w r1, (r2, 0x0) + 6cba: b327 st.w r1, (r3, 0x1c) + 6cbc: b225 st.w r1, (r2, 0x14) + 6cbe: d86e0009 ld.b r3, (r14, 0x9) + 6cc2: 3b42 cmpnei r3, 2 + 6cc4: 9849 ld.w r2, (r14, 0x24) + 6cc6: 082c bt 0x6d1e // 6d1e + 6cc8: 1171 lrw r3, 0x7ff // 6d8c + 6cca: 648c cmphs r3, r2 + 6ccc: 0c03 bf 0x6cd2 // 6cd2 + 6cce: 3300 movi r3, 0 + 6cd0: 040f br 0x6cee // 6cee + 6cd2: 9849 ld.w r2, (r14, 0x24) + 6cd4: 9866 ld.w r3, (r14, 0x18) + 6cd6: 648c cmphs r3, r2 + 6cd8: 080e bt 0x6cf4 // 6cf4 + 6cda: 9868 ld.w r3, (r14, 0x20) + 6cdc: 9847 ld.w r2, (r14, 0x1c) + 6cde: 60ca subu r3, r2 + 6ce0: b868 st.w r3, (r14, 0x20) + 6ce2: 32fe movi r2, 254 + 6ce4: 9868 ld.w r3, (r14, 0x20) + 6ce6: 4248 lsli r2, r2, 8 + 6ce8: 68c8 and r3, r2 + 6cea: 3b40 cmpnei r3, 0 + 6cec: 0812 bt 0x6d10 // 6d10 + 6cee: dc6e000a st.b r3, (r14, 0xa) + 6cf2: 0721 br 0x6b34 // 6b34 + 6cf4: 9849 ld.w r2, (r14, 0x24) + 6cf6: 9865 ld.w r3, (r14, 0x14) + 6cf8: 64c8 cmphs r2, r3 + 6cfa: 0829 bt 0x6d4c // 6d4c + 6cfc: 9868 ld.w r3, (r14, 0x20) + 6cfe: 9847 ld.w r2, (r14, 0x1c) + 6d00: 60c8 addu r3, r2 + 6d02: b868 st.w r3, (r14, 0x20) + 6d04: 33fe movi r3, 254 + 6d06: 9848 ld.w r2, (r14, 0x20) + 6d08: 4368 lsli r3, r3, 8 + 6d0a: 688c and r2, r3 + 6d0c: 64ca cmpne r2, r3 + 6d0e: 0fe0 bf 0x6cce // 6cce + 6d10: 9660 ld.w r3, (r6, 0x0) + 6d12: 9848 ld.w r2, (r14, 0x20) + 6d14: b354 st.w r2, (r3, 0x50) + 6d16: 3001 movi r0, 1 + 6d18: e3ffdf98 bsr 0x2c48 // 2c48 + 6d1c: 075e br 0x6bd8 // 6bd8 + 6d1e: 9866 ld.w r3, (r14, 0x18) + 6d20: 648c cmphs r3, r2 + 6d22: 0809 bt 0x6d34 // 6d34 + 6d24: 9868 ld.w r3, (r14, 0x20) + 6d26: 9847 ld.w r2, (r14, 0x1c) + 6d28: 60ca subu r3, r2 + 6d2a: b868 st.w r3, (r14, 0x20) + 6d2c: 32ff movi r2, 255 + 6d2e: 9868 ld.w r3, (r14, 0x20) + 6d30: 4250 lsli r2, r2, 16 + 6d32: 07db br 0x6ce8 // 6ce8 + 6d34: 9849 ld.w r2, (r14, 0x24) + 6d36: 9865 ld.w r3, (r14, 0x14) + 6d38: 64c8 cmphs r2, r3 + 6d3a: 0809 bt 0x6d4c // 6d4c + 6d3c: 9868 ld.w r3, (r14, 0x20) + 6d3e: 9847 ld.w r2, (r14, 0x1c) + 6d40: 60c8 addu r3, r2 + 6d42: b868 st.w r3, (r14, 0x20) + 6d44: 33ff movi r3, 255 + 6d46: 9848 ld.w r2, (r14, 0x20) + 6d48: 4370 lsli r3, r3, 16 + 6d4a: 07e0 br 0x6d0a // 6d0a + 6d4c: 3300 movi r3, 0 + 6d4e: dc6e000a st.b r3, (r14, 0xa) + 6d52: 07e2 br 0x6d16 // 6d16 + 6d54: 2000005c .long 0x2000005c + 6d58: 2000000c .long 0x2000000c + 6d5c: 02dc6c00 .long 0x02dc6c00 + 6d60: 0000ffff .long 0x0000ffff + 6d64: 20000014 .long 0x20000014 + 6d68: be9c0005 .long 0xbe9c0005 + 6d6c: 00030010 .long 0x00030010 + 6d70: 016e3600 .long 0x016e3600 + 6d74: 00b71b00 .long 0x00b71b00 + 6d78: 005b8d80 .long 0x005b8d80 + 6d7c: 0054c720 .long 0x0054c720 + 6d80: 003ffed0 .long 0x003ffed0 + 6d84: 001fff68 .long 0x001fff68 + 6d88: 0001ffb8 .long 0x0001ffb8 + 6d8c: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240329.map b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240329.map new file mode 100644 index 0000000..d8dc334 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240329.map @@ -0,0 +1,2887 @@ +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: 458200 (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: 239 + Section header string table index: 236 + +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_DriveS PROGBITS 00001e68 002e68 00000e 00 AX 0 0 2 + [20] .text.GPIO_Write_ PROGBITS 00001e76 002e76 000008 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 00001e7e 002e7e 000008 00 AX 0 0 2 + [22] .text.LPT_Soft_Re PROGBITS 00001e88 002e88 000014 00 AX 0 0 4 + [23] .text.WWDT_CNT_Lo PROGBITS 00001e9c 002e9c 000010 00 AX 0 0 4 + [24] .text.BT_DeInit PROGBITS 00001eac 002eac 00001c 00 AX 0 0 2 + [25] .text.BT_Start PROGBITS 00001ec8 002ec8 000008 00 AX 0 0 2 + [26] .text.BT_Soft_Res PROGBITS 00001ed0 002ed0 00000a 00 AX 0 0 2 + [27] .text.BT_Configur PROGBITS 00001eda 002eda 000018 00 AX 0 0 2 + [28] .text.BT_ControlS PROGBITS 00001ef2 002ef2 00002c 00 AX 0 0 2 + [29] .text.BT_Period_C PROGBITS 00001f1e 002f1e 000006 00 AX 0 0 2 + [30] .text.BT_ConfigIn PROGBITS 00001f24 002f24 000012 00 AX 0 0 2 + [31] .text.BT1_INT_ENA PROGBITS 00001f38 002f38 000010 00 AX 0 0 4 + [32] .text.UART0_DeIni PROGBITS 00001f48 002f48 000018 00 AX 0 0 4 + [33] .text.UART1_DeIni PROGBITS 00001f60 002f60 000018 00 AX 0 0 4 + [34] .text.UART2_DeIni PROGBITS 00001f78 002f78 000018 00 AX 0 0 4 + [35] .text.UART0_Int_E PROGBITS 00001f90 002f90 00001c 00 AX 0 0 4 + [36] .text.UART2_Int_E PROGBITS 00001fac 002fac 00001c 00 AX 0 0 4 + [37] .text.UART_IO_Ini PROGBITS 00001fc8 002fc8 0000ec 00 AX 0 0 4 + [38] .text.UARTInitRxT PROGBITS 000020b4 0030b4 000010 00 AX 0 0 4 + [39] .text.UARTTransmi PROGBITS 000020c4 0030c4 00001e 00 AX 0 0 2 + [40] .text.EPT_Softwar PROGBITS 000020e4 0030e4 000020 00 AX 0 0 4 + [41] .text.EPT_Start PROGBITS 00002104 003104 000028 00 AX 0 0 4 + [42] .text.EPT_Stop PROGBITS 0000212c 00312c 000028 00 AX 0 0 4 + [43] .text.EPT_IO_SET PROGBITS 00002154 003154 000238 00 AX 0 0 4 + [44] .text.EPT_PWM_Con PROGBITS 0000238c 00338c 000038 00 AX 0 0 4 + [45] .text.EPT_PWMX_Ou PROGBITS 000023c4 0033c4 0000d8 00 AX 0 0 4 + [46] .text.EPT_PRDR_CM PROGBITS 0000249c 00349c 00001c 00 AX 0 0 4 + [47] .text.ADC12_RESET PROGBITS 000024b8 0034b8 000064 00 AX 0 0 4 + [48] .text.ADC12_Contr PROGBITS 0000251c 00351c 000010 00 AX 0 0 4 + [49] .text.ADC12_CMD.p PROGBITS 0000252c 00352c 000020 00 AX 0 0 4 + [50] .text.ADC12_CLK_C PROGBITS 0000254c 00354c 00002c 00 AX 0 0 4 + [51] .text.ADC12_Softw PROGBITS 00002578 003578 00000a 00 AX 0 0 2 + [52] .text.ADC12_CMD PROGBITS 00002584 003584 000028 00 AX 0 0 4 + [53] .text.ADC12_ready PROGBITS 000025ac 0035ac 000014 00 AX 0 0 4 + [54] .text.ADC12_SEQEN PROGBITS 000025c0 0035c0 000018 00 AX 0 0 4 + [55] .text.ADC12_DATA_ PROGBITS 000025d8 0035d8 000014 00 AX 0 0 4 + [56] .text.ADC12_Confi PROGBITS 000025ec 0035ec 00007c 00 AX 0 0 4 + [57] .text.ADC12_Confi PROGBITS 00002668 003668 000198 00 AX 0 0 4 + [58] .text.ADC12_Conve PROGBITS 00002800 003800 000180 00 AX 0 0 4 + [59] .text.Page_Progra PROGBITS 00002980 003980 0000a0 00 AX 0 0 4 + [60] .text.ReadDataArr PROGBITS 00002a20 003a20 00002a 00 AX 0 0 2 + [61] .text.tk_paramete PROGBITS 00002a4c 003a4c 000138 00 AX 0 0 4 + [62] .text.CORET_DeIni PROGBITS 00002b84 003b84 000018 00 AX 0 0 4 + [63] .text.CORET_Int_E PROGBITS 00002b9c 003b9c 000018 00 AX 0 0 4 + [64] .text.CORET_start PROGBITS 00002bb4 003bb4 000010 00 AX 0 0 4 + [65] .text.CORET_CLKSO PROGBITS 00002bc4 003bc4 000010 00 AX 0 0 4 + [66] .text.CORET_TICKI PROGBITS 00002bd4 003bd4 000010 00 AX 0 0 4 + [67] .text.CORET_reloa PROGBITS 00002be4 003be4 000010 00 AX 0 0 4 + [68] .text.startup.mai PROGBITS 00002bf4 003bf4 000054 00 AX 0 0 4 + [69] .text.delay_nms PROGBITS 00002c48 003c48 00002c 00 AX 0 0 2 + [70] .text.EPT0_CONFIG PROGBITS 00002c74 003c74 000060 00 AX 0 0 4 + [71] .text.BT_CONFIG PROGBITS 00002cd4 003cd4 000060 00 AX 0 0 4 + [72] .text.SYSCON_CONF PROGBITS 00002d34 003d34 000062 00 AX 0 0 2 + [73] .text.APT32F102_i PROGBITS 00002d98 003d98 000084 00 AX 0 0 4 + [74] .text.SYSCONIntHa PROGBITS 00002e1c 003e1c 0000f0 00 AX 0 0 4 + [75] .text.IFCIntHandl PROGBITS 00002f0c 003f0c 000068 00 AX 0 0 4 + [76] .text.ADCIntHandl PROGBITS 00002f74 003f74 000068 00 AX 0 0 4 + [77] .text.EPT0IntHand PROGBITS 00002fdc 003fdc 0001ac 00 AX 0 0 4 + [78] .text.WWDTHandler PROGBITS 00003188 004188 000034 00 AX 0 0 4 + [79] .text.GPT0IntHand PROGBITS 000031bc 0041bc 000080 00 AX 0 0 4 + [80] .text.RTCIntHandl PROGBITS 0000323c 00423c 000070 00 AX 0 0 4 + [81] .text.UART0IntHan PROGBITS 000032ac 0042ac 00003c 00 AX 0 0 4 + [82] .text.UART1IntHan PROGBITS 000032e8 0042e8 00003c 00 AX 0 0 4 + [83] .text.UART2IntHan PROGBITS 00003324 004324 000094 00 AX 0 0 4 + [84] .text.SPI0IntHand PROGBITS 000033b8 0043b8 0000e8 00 AX 0 0 4 + [85] .text.SIO0IntHand PROGBITS 000034a0 0044a0 000054 00 AX 0 0 4 + [86] .text.EXI0IntHand PROGBITS 000034f4 0044f4 000030 00 AX 0 0 4 + [87] .text.EXI1IntHand PROGBITS 00003524 004524 000030 00 AX 0 0 4 + [88] .text.EXI2to3IntH PROGBITS 00003554 004554 000048 00 AX 0 0 4 + [89] .text.EXI4to9IntH PROGBITS 0000359c 00459c 00005c 00 AX 0 0 4 + [90] .text.EXI10to15In PROGBITS 000035f8 0045f8 000060 00 AX 0 0 4 + [91] .text.LPTIntHandl PROGBITS 00003658 004658 000034 00 AX 0 0 4 + [92] .text.BT0IntHandl PROGBITS 0000368c 00468c 00004c 00 AX 0 0 4 + [93] .text.BT1IntHandl PROGBITS 000036d8 0046d8 000064 00 AX 0 0 4 + [94] .text.PriviledgeV PROGBITS 0000373c 00473c 000002 00 AX 0 0 2 + [95] .text.PendTrapHan PROGBITS 0000373e 00473e 000008 00 AX 0 0 2 + [96] .text.Trap3Handle PROGBITS 00003746 004746 000008 00 AX 0 0 2 + [97] .text.Trap2Handle PROGBITS 0000374e 00474e 000008 00 AX 0 0 2 + [98] .text.Trap1Handle PROGBITS 00003756 004756 000008 00 AX 0 0 2 + [99] .text.Trap0Handle PROGBITS 0000375e 00475e 000008 00 AX 0 0 2 + [100] .text.UnrecExecpH PROGBITS 00003766 004766 000008 00 AX 0 0 2 + [101] .text.BreakPointH PROGBITS 0000376e 00476e 000008 00 AX 0 0 2 + [102] .text.AccessErrHa PROGBITS 00003776 004776 000008 00 AX 0 0 2 + [103] .text.IllegalInst PROGBITS 0000377e 00477e 000008 00 AX 0 0 2 + [104] .text.MisalignedH PROGBITS 00003786 004786 000008 00 AX 0 0 2 + [105] .text.CNTAIntHand PROGBITS 0000378e 00478e 000008 00 AX 0 0 2 + [106] .text.I2CIntHandl PROGBITS 00003796 004796 000008 00 AX 0 0 2 + [107] .text.__divsi3 PROGBITS 000037a0 0047a0 000024 00 AX 0 0 4 + [108] .text.__udivsi3 PROGBITS 000037c4 0047c4 000024 00 AX 0 0 4 + [109] .text.__umodsi3 PROGBITS 000037e8 0047e8 000024 00 AX 0 0 4 + [110] .text.CK_CPU_EnAl PROGBITS 0000380c 00480c 000006 00 AX 0 0 2 + [111] .text.UARTx_Init PROGBITS 00003814 004814 0000a4 00 AX 0 0 4 + [112] .text.UART2_RecvI PROGBITS 000038b8 0048b8 000068 00 AX 0 0 4 + [113] .text.UART2_TASK PROGBITS 00003920 004920 0000a4 00 AX 0 0 4 + [114] .text.Dbg_Println PROGBITS 000039c4 0049c4 00000c 00 AX 0 0 2 + [115] .text.Dbg_Print_B PROGBITS 000039d0 0049d0 000002 00 AX 0 0 2 + [116] .text.Touch_Key_I PROGBITS 000039d4 0049d4 000090 00 AX 0 0 4 + [117] .text.TouchKey_RS PROGBITS 00003a64 004a64 000094 00 AX 0 0 4 + [118] .text.Get_TouchKe PROGBITS 00003af8 004af8 00003c 00 AX 0 0 4 + [119] .text.TouchKey_Er PROGBITS 00003b34 004b34 000054 00 AX 0 0 4 + [120] .text.Touch_Key_E PROGBITS 00003b88 004b88 0000ac 00 AX 0 0 4 + [121] .text.TouchKey_Se PROGBITS 00003c34 004c34 00003c 00 AX 0 0 4 + [122] .text.Touch_Key_T PROGBITS 00003c70 004c70 0000dc 00 AX 0 0 4 + [123] .text.TouchKey_Ch PROGBITS 00003d4c 004d4c 000018 00 AX 0 0 2 + [124] .text.TouchKey_Co PROGBITS 00003d64 004d64 000070 00 AX 0 0 4 + [125] .text.TouchKey_Se PROGBITS 00003dd4 004dd4 0000b8 00 AX 0 0 4 + [126] .text.TouchKey_Re PROGBITS 00003e8c 004e8c 0000e4 00 AX 0 0 4 + [127] .text.TouchKey_Du PROGBITS 00003f70 004f70 000038 00 AX 0 0 4 + [128] .text.TouchKey_Re PROGBITS 00003fa8 004fa8 0000cc 00 AX 0 0 4 + [129] .text.TouchKey_Re PROGBITS 00004074 005074 00001a 00 AX 0 0 2 + [130] .text.TouchKey_Co PROGBITS 00004090 005090 0000d8 00 AX 0 0 4 + [131] .text.EEPROM_Chec PROGBITS 00004168 005168 000016 00 AX 0 0 2 + [132] .text.EEPROM_Read PROGBITS 00004180 005180 000074 00 AX 0 0 4 + [133] .text.EEPROM_Writ PROGBITS 000041f4 0051f4 000044 00 AX 0 0 4 + [134] .text.EEPROM_Vali PROGBITS 00004238 005238 000060 00 AX 0 0 4 + [135] .text.EEPROM_Defa PROGBITS 00004298 005298 000016 00 AX 0 0 2 + [136] .text.EEPROM_Init PROGBITS 000042b0 0052b0 000050 00 AX 0 0 4 + [137] .text.EEPROM_Writ PROGBITS 00004300 005300 00006c 00 AX 0 0 4 + [138] .text.EEPROM_Read PROGBITS 0000436c 00536c 0000ac 00 AX 0 0 4 + [139] .text.EEPROM_Vali PROGBITS 00004418 005418 0000a8 00 AX 0 0 4 + [140] .text.EEPROM_Defa PROGBITS 000044c0 0054c0 000040 00 AX 0 0 2 + [141] .text.EEPROM_Touc PROGBITS 00004500 005500 000080 00 AX 0 0 4 + [142] .text.ADC_Init PROGBITS 00004580 005580 00005c 00 AX 0 0 4 + [143] .text.Thermistor_ PROGBITS 000045dc 0055dc 000048 00 AX 0 0 4 + [144] .text.Calculate_A PROGBITS 00004624 005624 0000c0 00 AX 0 0 4 + [145] .text.ADC_Sample_ PROGBITS 000046e4 0056e4 0000b0 00 AX 0 0 4 + [146] .text.Get_Temp_Va PROGBITS 00004794 005794 000010 00 AX 0 0 4 + [147] .text.HT1621_WR_D PROGBITS 000047a4 0057a4 000048 00 AX 0 0 4 + [148] .text.HT1621_WR_C PROGBITS 000047ec 0057ec 000030 00 AX 0 0 4 + [149] .text.HT1621_Init PROGBITS 0000481c 00581c 0000a4 00 AX 0 0 4 + [150] .text.HT1621_Clea PROGBITS 000048c0 0058c0 000050 00 AX 0 0 4 + [151] .text.HT1621_ALLO PROGBITS 00004910 005910 000040 00 AX 0 0 4 + [152] .text.HT1621_Refr PROGBITS 00004950 005950 00004c 00 AX 0 0 4 + [153] .text.Set_Tempera PROGBITS 0000499c 00599c 000088 00 AX 0 0 4 + [154] .text.Local_Tempe PROGBITS 00004a24 005a24 000080 00 AX 0 0 4 + [155] .text.Control_Mod PROGBITS 00004aa4 005aa4 000048 00 AX 0 0 4 + [156] .text.Control_win PROGBITS 00004aec 005aec 000070 00 AX 0 0 4 + [157] .text.Control_Pro PROGBITS 00004b5c 005b5c 000044 00 AX 0 0 4 + [158] .text.Controlled_ PROGBITS 00004ba0 005ba0 000048 00 AX 0 0 4 + [159] .text.Controlled_ PROGBITS 00004be8 005be8 000024 00 AX 0 0 4 + [160] .text.Set_Device_ PROGBITS 00004c0c 005c0c 000098 00 AX 0 0 4 + [161] .text.Set_Temp_Di PROGBITS 00004ca4 005ca4 000064 00 AX 0 0 4 + [162] .text.HT1621_Refr PROGBITS 00004d08 005d08 000060 00 AX 0 0 4 + [163] .text.TemCtrl_Ini PROGBITS 00004d68 005d68 000130 00 AX 0 0 4 + [164] .text.TemCtrl_Mod PROGBITS 00004e98 005e98 00004c 00 AX 0 0 4 + [165] .text.TemCtrl_Fan PROGBITS 00004ee4 005ee4 00004c 00 AX 0 0 4 + [166] .text.TemCtrl_Tem PROGBITS 00004f30 005f30 000030 00 AX 0 0 4 + [167] .text.TemCtrl_Tem PROGBITS 00004f60 005f60 000030 00 AX 0 0 4 + [168] .text.TemCtrl_OnO PROGBITS 00004f90 005f90 000034 00 AX 0 0 4 + [169] .text.Tem_Valve_C PROGBITS 00004fc4 005fc4 0000e8 00 AX 0 0 4 + [170] .text.TemCtrl_Pro PROGBITS 000050ac 0060ac 0000f0 00 AX 0 0 4 + [171] .text.KEY1_Model_ PROGBITS 0000519c 00619c 0000d0 00 AX 0 0 4 + [172] .text.KEY2_Fan_Pr PROGBITS 0000526c 00626c 0000d0 00 AX 0 0 4 + [173] .text.KEY3_TempAd PROGBITS 0000533c 00633c 0000dc 00 AX 0 0 4 + [174] .text.KEY3_Long_P PROGBITS 00005418 006418 00006c 00 AX 0 0 4 + [175] .text.KEY4_TempDe PROGBITS 00005484 006484 0000e0 00 AX 0 0 4 + [176] .text.KEY4_Long_P PROGBITS 00005564 006564 00006c 00 AX 0 0 4 + [177] .text.KEY5_OnOff_ PROGBITS 000055d0 0065d0 000084 00 AX 0 0 4 + [178] .text.TempCtrl_On PROGBITS 00005654 006654 00004c 00 AX 0 0 4 + [179] .text.DisPlay_Ini PROGBITS 000056a0 0066a0 000020 00 AX 0 0 4 + [180] .text.DisPlay_Tas PROGBITS 000056c0 0066c0 0001bc 00 AX 0 0 4 + [181] .text.Debug_Init PROGBITS 0000587c 00687c 000030 00 AX 0 0 4 + [182] .text.Dev_SaveDat PROGBITS 000058ac 0068ac 000060 00 AX 0 0 4 + [183] .text.Debug_Task PROGBITS 0000590c 00690c 00006c 00 AX 0 0 4 + [184] .text.get_check_s PROGBITS 00005978 006978 000016 00 AX 0 0 2 + [185] .text.uart_receiv PROGBITS 00005990 006990 000044 00 AX 0 0 4 + [186] .text.Queue_Read_ PROGBITS 000059d4 0069d4 000034 00 AX 0 0 4 + [187] .text.with_data_r PROGBITS 00005a08 006a08 00001c 00 AX 0 0 4 + [188] .text.RF_Info_Ini PROGBITS 00005a24 006a24 000034 00 AX 0 0 4 + [189] .text.Add_Frame_H PROGBITS 00005a58 006a58 000040 00 AX 0 0 4 + [190] .text.Product_Inf PROGBITS 00005a98 006a98 000094 00 AX 0 0 4 + [191] .text.Recv_RFNetS PROGBITS 00005b2c 006b2c 000038 00 AX 0 0 4 + [192] .text.Tem_Fun_Ctr PROGBITS 00005b64 006b64 0000b0 00 AX 0 0 4 + [193] .text.data_handle PROGBITS 00005c14 006c14 000128 00 AX 0 0 4 + [194] .text.zigbee_uart PROGBITS 00005d3c 006d3c 0000c8 00 AX 0 0 4 + [195] .text.TemFun_Repo PROGBITS 00005e04 006e04 0000d0 00 AX 0 0 4 + [196] .text.Relay_Init PROGBITS 00005ed4 006ed4 00006c 00 AX 0 0 4 + [197] .text.Relay_High PROGBITS 00005f40 006f40 000024 00 AX 0 0 4 + [198] .text.Relay_Mid PROGBITS 00005f64 006f64 000024 00 AX 0 0 4 + [199] .text.Relay_Low PROGBITS 00005f88 006f88 000024 00 AX 0 0 4 + [200] .text.Relay_Stop PROGBITS 00005fac 006fac 000024 00 AX 0 0 4 + [201] .text.TK_ConfigIn PROGBITS 00005fd0 006fd0 000010 00 AX 0 0 4 + [202] .text.tk_clk_conf PROGBITS 00005fe0 006fe0 000028 00 AX 0 0 4 + [203] .text.TK_con0_con PROGBITS 00006008 007008 0000bc 00 AX 0 0 4 + [204] .text.TK_IO_Enabl PROGBITS 000060c4 0070c4 000134 00 AX 0 0 4 + [205] .text.TK_Sampling PROGBITS 000061f8 0071f8 000058 00 AX 0 0 4 + [206] .text.TKEYIntHand PROGBITS 00006250 007250 000088 00 AX 0 0 4 + [207] .text.get_key_num PROGBITS 000062d8 0072d8 000028 00 AX 0 0 4 + [208] .text.TK_Baseline PROGBITS 00006300 007300 000084 00 AX 0 0 4 + [209] .text.TK_Scan_Sta PROGBITS 00006384 007384 000020 00 AX 0 0 4 + [210] .text.TK_Keymap_p PROGBITS 000063a4 0073a4 000180 00 AX 0 0 4 + [211] .text.TK_overflow PROGBITS 00006524 007524 00011c 00 AX 0 0 4 + [212] .text.TK_Baseline PROGBITS 00006640 007640 0001d0 00 AX 0 0 4 + [213] .text.TK_result_p PROGBITS 00006810 007810 000054 00 AX 0 0 4 + [214] .text.CORETHandle PROGBITS 00006864 007864 000078 00 AX 0 0 4 + [215] .text.get_key_seq PROGBITS 000068dc 0078dc 000034 00 AX 0 0 4 + [216] .text.CORET_CONFI PROGBITS 00006910 007910 000038 00 AX 0 0 4 + [217] .text.tk_chxval_s PROGBITS 00006948 007948 00001c 00 AX 0 0 4 + [218] .text.tk_reserved PROGBITS 00006964 007964 000028 00 AX 0 0 4 + [219] .text.tk_init PROGBITS 0000698c 00798c 000180 00 AX 0 0 4 + [220] .text.std_clk_cal PROGBITS 00006b0c 007b0c 000284 00 AX 0 0 4 + [221] .RomCode PROGBITS 00006d90 0090a4 000000 00 W 0 0 1 + [222] .rodata PROGBITS 00006d90 007d90 0007f8 00 A 0 0 4 + [223] .data PROGBITS 20000000 009000 0000a4 00 WA 0 0 4 + [224] .bss NOBITS 200000a4 0090a4 000750 00 WA 0 0 4 + [225] .csky.attributes CSKY_ATTRIBUTES 00000000 0090a4 000022 00 0 0 1 + [226] .comment PROGBITS 00000000 0090c6 000042 01 MS 0 0 1 + [227] .csky_stack_size PROGBITS 00000000 009110 0009bc 00 0 0 16 + [228] .debug_line PROGBITS 00000000 009acc 0056b2 00 0 0 1 + [229] .debug_info PROGBITS 00000000 00f17e 0441c0 00 0 0 1 + [230] .debug_abbrev PROGBITS 00000000 05333e 003d2c 00 0 0 1 + [231] .debug_aranges PROGBITS 00000000 057070 000fa8 00 0 0 8 + [232] .debug_ranges PROGBITS 00000000 058018 000f38 00 0 0 1 + [233] .debug_str PROGBITS 00000000 058f50 00940b 01 MS 0 0 1 + [234] .debug_frame PROGBITS 00000000 06235c 0024a4 00 0 0 4 + [235] .debug_loc PROGBITS 00000000 064800 002fd7 00 0 0 1 + [236] .shstrtab STRTAB 00000000 06e929 0014ac 00 0 0 1 + [237] .symtab SYMTAB 00000000 0677d8 0056f0 10 238 1006 4 + [238] .strtab STRTAB 00000000 06cec8 001a61 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 0x07588 0x07588 R E 0x1000 + LOAD 0x009000 0x20000000 0x00007588 0x000a4 0x007f4 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_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .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.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.EPT0_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.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.TouchKey_Error_Scan .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.get_check_sum .text.uart_receive_input .text.Queue_Read_Byte .text.with_data_rxbuff .text.RF_Info_Init .text.Add_Frame_Head .text.Product_Info_Update .text.Recv_RFNetState_Ack .text.Tem_Fun_Ctrl_Report .text.data_handle .text.zigbee_uart_service .text.TemFun_Report_Task .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Low) 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.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_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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.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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Error_Scan) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.TouchKey_Error_Scan) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Error_Scan) for TouchKey_Error_Scan + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.uart_receive_input) for uart_receive_input + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Queue_Read_Byte) for Queue_Read_Byte + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.with_data_rxbuff) for with_data_rxbuff + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) for RF_Info_Init + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) for Product_Info_Update + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) for Recv_RFNetState_Ack + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) for data_handle + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) for zigbee_uart_service + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) for TemFun_Report_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) 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), (2875 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_PullHigh_Init(Obj/FWlib_apt32f102_gpio.o), (20 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.GPIO_Read_Status(Obj/FWlib_apt32f102_gpio.o), (16 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), (3069 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), (3386 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), (3131 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), (7994 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), (4099 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), (3502 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.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), (3618 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4818 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.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.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART1_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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Controlled_Key_Backlight(Obj/SYSTEM_ht1621.o), (36 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .text.Rest_RFNetState(Obj/USRCTRL_rf_uart_protocol.o), (64 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.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), (89 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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). + +590 unused seciton(s) (total 152757 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_rf_uart_protocol.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.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_DriveStrength_EN + $t 0x00001e68 0 .text.GPIO_DriveStrength_EN + $d 0x00001e76 0 .text.GPIO_Write_High + $t 0x00001e76 0 .text.GPIO_Write_High + $d 0x00001e7e 0 .text.GPIO_Write_Low + $t 0x00001e7e 0 .text.GPIO_Write_Low + $d 0x00001e88 0 .text.LPT_Soft_Reset + $t 0x00001e88 0 .text.LPT_Soft_Reset + $d 0x00001e98 0 .text.LPT_Soft_Reset + $d 0x00001e9c 0 .text.WWDT_CNT_Load + $t 0x00001e9c 0 .text.WWDT_CNT_Load + $d 0x00001ea8 0 .text.WWDT_CNT_Load + $d 0x00001eac 0 .text.BT_DeInit + $t 0x00001eac 0 .text.BT_DeInit + $d 0x00001ec8 0 .text.BT_Start + $t 0x00001ec8 0 .text.BT_Start + $d 0x00001ed0 0 .text.BT_Soft_Reset + $t 0x00001ed0 0 .text.BT_Soft_Reset + $d 0x00001eda 0 .text.BT_Configure + $t 0x00001eda 0 .text.BT_Configure + $d 0x00001ef2 0 .text.BT_ControlSet_Configure + $t 0x00001ef2 0 .text.BT_ControlSet_Configure + $d 0x00001f1e 0 .text.BT_Period_CMP_Write + $t 0x00001f1e 0 .text.BT_Period_CMP_Write + $d 0x00001f24 0 .text.BT_ConfigInterrupt_CMD + $t 0x00001f24 0 .text.BT_ConfigInterrupt_CMD + $d 0x00001f38 0 .text.BT1_INT_ENABLE + $t 0x00001f38 0 .text.BT1_INT_ENABLE + $d 0x00001f44 0 .text.BT1_INT_ENABLE + $d 0x00001f48 0 .text.UART0_DeInit + $t 0x00001f48 0 .text.UART0_DeInit + $d 0x00001f5c 0 .text.UART0_DeInit + $d 0x00001f60 0 .text.UART1_DeInit + $t 0x00001f60 0 .text.UART1_DeInit + $d 0x00001f74 0 .text.UART1_DeInit + $d 0x00001f78 0 .text.UART2_DeInit + $t 0x00001f78 0 .text.UART2_DeInit + $d 0x00001f8c 0 .text.UART2_DeInit + $d 0x00001f90 0 .text.UART0_Int_Enable + $t 0x00001f90 0 .text.UART0_Int_Enable + $d 0x00001fa4 0 .text.UART0_Int_Enable + $d 0x00001fac 0 .text.UART2_Int_Enable + $t 0x00001fac 0 .text.UART2_Int_Enable + $d 0x00001fc0 0 .text.UART2_Int_Enable + $d 0x00001fc8 0 .text.UART_IO_Init + $t 0x00001fc8 0 .text.UART_IO_Init + $d 0x000020ac 0 .text.UART_IO_Init + $d 0x000020b4 0 .text.UARTInitRxTxIntEn + $t 0x000020b4 0 .text.UARTInitRxTxIntEn + $d 0x000020c0 0 .text.UARTInitRxTxIntEn + $d 0x000020c4 0 .text.UARTTransmit + $t 0x000020c4 0 .text.UARTTransmit + $d 0x000020e4 0 .text.EPT_Software_Prg + $t 0x000020e4 0 .text.EPT_Software_Prg + $d 0x00002100 0 .text.EPT_Software_Prg + $d 0x00002104 0 .text.EPT_Start + $t 0x00002104 0 .text.EPT_Start + $d 0x00002124 0 .text.EPT_Start + $d 0x0000212c 0 .text.EPT_Stop + $t 0x0000212c 0 .text.EPT_Stop + $d 0x0000214c 0 .text.EPT_Stop + $d 0x00002154 0 .text.EPT_IO_SET + $t 0x00002154 0 .text.EPT_IO_SET + $d 0x00002384 0 .text.EPT_IO_SET + $d 0x0000238c 0 .text.EPT_PWM_Config + $t 0x0000238c 0 .text.EPT_PWM_Config + $d 0x000023bc 0 .text.EPT_PWM_Config + $d 0x000023c4 0 .text.EPT_PWMX_Output_Control + $t 0x000023c4 0 .text.EPT_PWMX_Output_Control + $d 0x00002498 0 .text.EPT_PWMX_Output_Control + $d 0x0000249c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x0000249c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x000024b4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x000024b8 0 .text.ADC12_RESET_VALUE + $t 0x000024b8 0 .text.ADC12_RESET_VALUE + $d 0x00002518 0 .text.ADC12_RESET_VALUE + $d 0x0000251c 0 .text.ADC12_Control + $t 0x0000251c 0 .text.ADC12_Control + $d 0x00002528 0 .text.ADC12_Control + ADC12_CMD.part.0 0x0000252c F 32 .text.ADC12_CMD.part.0 + $d 0x0000252c 0 .text.ADC12_CMD.part.0 + $t 0x0000252c 0 .text.ADC12_CMD.part.0 + $d 0x00002548 0 .text.ADC12_CMD.part.0 + $d 0x0000254c 0 .text.ADC12_CLK_CMD + $t 0x0000254c 0 .text.ADC12_CLK_CMD + $d 0x00002574 0 .text.ADC12_CLK_CMD + $d 0x00002578 0 .text.ADC12_Software_Reset + $t 0x00002578 0 .text.ADC12_Software_Reset + $d 0x00002584 0 .text.ADC12_CMD + $t 0x00002584 0 .text.ADC12_CMD + $d 0x000025a8 0 .text.ADC12_CMD + $d 0x000025ac 0 .text.ADC12_ready_wait + $t 0x000025ac 0 .text.ADC12_ready_wait + $d 0x000025bc 0 .text.ADC12_ready_wait + $d 0x000025c0 0 .text.ADC12_SEQEND_wait + $t 0x000025c0 0 .text.ADC12_SEQEND_wait + $d 0x000025d4 0 .text.ADC12_SEQEND_wait + $d 0x000025d8 0 .text.ADC12_DATA_OUPUT + $t 0x000025d8 0 .text.ADC12_DATA_OUPUT + $d 0x000025e8 0 .text.ADC12_DATA_OUPUT + $d 0x000025ec 0 .text.ADC12_Configure_Mode + $t 0x000025ec 0 .text.ADC12_Configure_Mode + $d 0x00002664 0 .text.ADC12_Configure_Mode + $d 0x00002668 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00002668 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000027dc 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002800 0 .text.ADC12_ConversionChannel_Config + $t 0x00002800 0 .text.ADC12_ConversionChannel_Config + $d 0x0000282c 0 .text.ADC12_ConversionChannel_Config + $t 0x0000283c 0 .text.ADC12_ConversionChannel_Config + $d 0x00002974 0 .text.ADC12_ConversionChannel_Config + $d 0x00002980 0 .text.Page_ProgramData + $t 0x00002980 0 .text.Page_ProgramData + $d 0x00002a18 0 .text.Page_ProgramData + $d 0x00002a20 0 .text.ReadDataArry_U8 + $t 0x00002a20 0 .text.ReadDataArry_U8 + $d 0x00002a4c 0 .text.tk_parameter_init + $t 0x00002a4c 0 .text.tk_parameter_init + $d 0x00002b34 0 .text.tk_parameter_init + $d 0x00002b84 0 .text.CORET_DeInit + $t 0x00002b84 0 .text.CORET_DeInit + $d 0x00002b98 0 .text.CORET_DeInit + $d 0x00002b9c 0 .text.CORET_Int_Enable + $t 0x00002b9c 0 .text.CORET_Int_Enable + $d 0x00002bac 0 .text.CORET_Int_Enable + $d 0x00002bb4 0 .text.CORET_start + $t 0x00002bb4 0 .text.CORET_start + $d 0x00002bc0 0 .text.CORET_start + $d 0x00002bc4 0 .text.CORET_CLKSOURCE_EX + $t 0x00002bc4 0 .text.CORET_CLKSOURCE_EX + $d 0x00002bd0 0 .text.CORET_CLKSOURCE_EX + $d 0x00002bd4 0 .text.CORET_TICKINT_Enable + $t 0x00002bd4 0 .text.CORET_TICKINT_Enable + $d 0x00002be0 0 .text.CORET_TICKINT_Enable + $d 0x00002be4 0 .text.CORET_reload + $t 0x00002be4 0 .text.CORET_reload + $d 0x00002bf0 0 .text.CORET_reload + $d 0x00002bf4 0 .text.startup.main + $t 0x00002bf4 0 .text.startup.main + $d 0x00002c40 0 .text.startup.main + $d 0x00002c48 0 .text.delay_nms + $t 0x00002c48 0 .text.delay_nms + $d 0x00002c74 0 .text.EPT0_CONFIG + $t 0x00002c74 0 .text.EPT0_CONFIG + $d 0x00002cd0 0 .text.EPT0_CONFIG + $d 0x00002cd4 0 .text.BT_CONFIG + $t 0x00002cd4 0 .text.BT_CONFIG + $d 0x00002d2c 0 .text.BT_CONFIG + $d 0x00002d34 0 .text.SYSCON_CONFIG + $t 0x00002d34 0 .text.SYSCON_CONFIG + $d 0x00002d98 0 .text.APT32F102_init + $t 0x00002d98 0 .text.APT32F102_init + $d 0x00002e08 0 .text.APT32F102_init + $d 0x00002e1c 0 .text.SYSCONIntHandler + $t 0x00002e1c 0 .text.SYSCONIntHandler + $d 0x00002f08 0 .text.SYSCONIntHandler + $d 0x00002f0c 0 .text.IFCIntHandler + $t 0x00002f0c 0 .text.IFCIntHandler + $d 0x00002f70 0 .text.IFCIntHandler + $d 0x00002f74 0 .text.ADCIntHandler + $t 0x00002f74 0 .text.ADCIntHandler + $d 0x00002fd8 0 .text.ADCIntHandler + $d 0x00002fdc 0 .text.EPT0IntHandler + $t 0x00002fdc 0 .text.EPT0IntHandler + $d 0x0000317c 0 .text.EPT0IntHandler + $d 0x00003188 0 .text.WWDTHandler + $t 0x00003188 0 .text.WWDTHandler + $d 0x000031b8 0 .text.WWDTHandler + $d 0x000031bc 0 .text.GPT0IntHandler + $t 0x000031bc 0 .text.GPT0IntHandler + $d 0x00003238 0 .text.GPT0IntHandler + $d 0x0000323c 0 .text.RTCIntHandler + $t 0x0000323c 0 .text.RTCIntHandler + $d 0x000032a4 0 .text.RTCIntHandler + $d 0x000032ac 0 .text.UART0IntHandler + $t 0x000032ac 0 .text.UART0IntHandler + $d 0x000032e4 0 .text.UART0IntHandler + $d 0x000032e8 0 .text.UART1IntHandler + $t 0x000032e8 0 .text.UART1IntHandler + $d 0x00003320 0 .text.UART1IntHandler + $d 0x00003324 0 .text.UART2IntHandler + $t 0x00003324 0 .text.UART2IntHandler + $d 0x000033a4 0 .text.UART2IntHandler + $d 0x000033b8 0 .text.SPI0IntHandler + $t 0x000033b8 0 .text.SPI0IntHandler + $d 0x0000349c 0 .text.SPI0IntHandler + $d 0x000034a0 0 .text.SIO0IntHandler + $t 0x000034a0 0 .text.SIO0IntHandler + $d 0x000034f0 0 .text.SIO0IntHandler + $d 0x000034f4 0 .text.EXI0IntHandler + $t 0x000034f4 0 .text.EXI0IntHandler + $d 0x00003520 0 .text.EXI0IntHandler + $d 0x00003524 0 .text.EXI1IntHandler + $t 0x00003524 0 .text.EXI1IntHandler + $d 0x00003550 0 .text.EXI1IntHandler + $d 0x00003554 0 .text.EXI2to3IntHandler + $t 0x00003554 0 .text.EXI2to3IntHandler + $d 0x00003598 0 .text.EXI2to3IntHandler + $d 0x0000359c 0 .text.EXI4to9IntHandler + $t 0x0000359c 0 .text.EXI4to9IntHandler + $d 0x000035f4 0 .text.EXI4to9IntHandler + $d 0x000035f8 0 .text.EXI10to15IntHandler + $t 0x000035f8 0 .text.EXI10to15IntHandler + $d 0x00003654 0 .text.EXI10to15IntHandler + $d 0x00003658 0 .text.LPTIntHandler + $t 0x00003658 0 .text.LPTIntHandler + $d 0x00003688 0 .text.LPTIntHandler + $d 0x0000368c 0 .text.BT0IntHandler + $t 0x0000368c 0 .text.BT0IntHandler + $d 0x000036d4 0 .text.BT0IntHandler + $d 0x000036d8 0 .text.BT1IntHandler + $t 0x000036d8 0 .text.BT1IntHandler + $d 0x00003734 0 .text.BT1IntHandler + $d 0x0000373c 0 .text.PriviledgeVioHandler + $t 0x0000373c 0 .text.PriviledgeVioHandler + $d 0x0000373e 0 .text.PendTrapHandler + $t 0x0000373e 0 .text.PendTrapHandler + $d 0x00003746 0 .text.Trap3Handler + $t 0x00003746 0 .text.Trap3Handler + $d 0x0000374e 0 .text.Trap2Handler + $t 0x0000374e 0 .text.Trap2Handler + $d 0x00003756 0 .text.Trap1Handler + $t 0x00003756 0 .text.Trap1Handler + $d 0x0000375e 0 .text.Trap0Handler + $t 0x0000375e 0 .text.Trap0Handler + $d 0x00003766 0 .text.UnrecExecpHandler + $t 0x00003766 0 .text.UnrecExecpHandler + $d 0x0000376e 0 .text.BreakPointHandler + $t 0x0000376e 0 .text.BreakPointHandler + $d 0x00003776 0 .text.AccessErrHandler + $t 0x00003776 0 .text.AccessErrHandler + $d 0x0000377e 0 .text.IllegalInstrHandler + $t 0x0000377e 0 .text.IllegalInstrHandler + $d 0x00003786 0 .text.MisalignedHandler + $t 0x00003786 0 .text.MisalignedHandler + $d 0x0000378e 0 .text.CNTAIntHandler + $t 0x0000378e 0 .text.CNTAIntHandler + $d 0x00003796 0 .text.I2CIntHandler + $t 0x00003796 0 .text.I2CIntHandler + $d 0x000037a0 0 .text.__divsi3 + $t 0x000037a0 0 .text.__divsi3 + $d 0x000037c0 0 .text.__divsi3 + $d 0x000037c4 0 .text.__udivsi3 + $t 0x000037c4 0 .text.__udivsi3 + $d 0x000037e4 0 .text.__udivsi3 + $d 0x000037e8 0 .text.__umodsi3 + $t 0x000037e8 0 .text.__umodsi3 + $d 0x00003808 0 .text.__umodsi3 + $d 0x0000380c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x0000380c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00003814 0 .text.UARTx_Init + $t 0x00003814 0 .text.UARTx_Init + $d 0x0000389c 0 .text.UARTx_Init + $d 0x000038b8 0 .text.UART2_RecvINT_Processing + $t 0x000038b8 0 .text.UART2_RecvINT_Processing + $d 0x00003910 0 .text.UART2_RecvINT_Processing + $d 0x00003920 0 .text.UART2_TASK + $t 0x00003920 0 .text.UART2_TASK + $d 0x000039b4 0 .text.UART2_TASK + $d 0x000039c4 0 .text.Dbg_Println + $t 0x000039c4 0 .text.Dbg_Println + $d 0x000039d0 0 .text.Dbg_Print_Buff + $t 0x000039d0 0 .text.Dbg_Print_Buff + $d 0x000039d4 0 .text.Touch_Key_Init + $t 0x000039d4 0 .text.Touch_Key_Init + $d 0x00003a48 0 .text.Touch_Key_Init + $d 0x00003a64 0 .text.TouchKey_RS485_Printf + $t 0x00003a64 0 .text.TouchKey_RS485_Printf + $d 0x00003aec 0 .text.TouchKey_RS485_Printf + $d 0x00003af8 0 .text.Get_TouchKey_CH_State + $t 0x00003af8 0 .text.Get_TouchKey_CH_State + $d 0x00003b04 0 .text.Get_TouchKey_CH_State + $t 0x00003b0a 0 .text.Get_TouchKey_CH_State + $d 0x00003b30 0 .text.Get_TouchKey_CH_State + $d 0x00003b34 0 .text.TouchKey_Error_Scan + $t 0x00003b34 0 .text.TouchKey_Error_Scan + $d 0x00003b74 0 .text.TouchKey_Error_Scan + $d 0x00003b88 0 .text.Touch_Key_Event_Handling + $t 0x00003b88 0 .text.Touch_Key_Event_Handling + $d 0x00003c30 0 .text.Touch_Key_Event_Handling + $d 0x00003c34 0 .text.TouchKey_Set_Interface_Task + $t 0x00003c34 0 .text.TouchKey_Set_Interface_Task + $d 0x00003c64 0 .text.TouchKey_Set_Interface_Task + $d 0x00003c70 0 .text.Touch_Key_Task + $t 0x00003c70 0 .text.Touch_Key_Task + $d 0x00003d3c 0 .text.Touch_Key_Task + $d 0x00003d4c 0 .text.TouchKey_CheckSum + $t 0x00003d4c 0 .text.TouchKey_CheckSum + $d 0x00003d64 0 .text.TouchKey_Comm_Reply + $t 0x00003d64 0 .text.TouchKey_Comm_Reply + $d 0x00003dcc 0 .text.TouchKey_Comm_Reply + $d 0x00003dd4 0 .text.TouchKey_SetPara_Processing + $t 0x00003dd4 0 .text.TouchKey_SetPara_Processing + $d 0x00003e78 0 .text.TouchKey_SetPara_Processing + $d 0x00003e8c 0 .text.TouchKey_ReadPara_Processing + $t 0x00003e8c 0 .text.TouchKey_ReadPara_Processing + $d 0x00003f68 0 .text.TouchKey_ReadPara_Processing + $d 0x00003f70 0 .text.TouchKey_DugPrintf_Processing + $t 0x00003f70 0 .text.TouchKey_DugPrintf_Processing + $d 0x00003fa4 0 .text.TouchKey_DugPrintf_Processing + $d 0x00003fa8 0 .text.TouchKey_ReadEnve_Processing + $t 0x00003fa8 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000406c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004074 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004074 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004090 0 .text.TouchKey_Comm_Processing + $t 0x00004090 0 .text.TouchKey_Comm_Processing + $d 0x0000411e 0 .text.TouchKey_Comm_Processing + $t 0x00004124 0 .text.TouchKey_Comm_Processing + $d 0x0000414c 0 .text.TouchKey_Comm_Processing + $d 0x00004168 0 .text.EEPROM_CheckSum + $t 0x00004168 0 .text.EEPROM_CheckSum + $d 0x00004180 0 .text.EEPROM_ReadParaInfo + $t 0x00004180 0 .text.EEPROM_ReadParaInfo + $d 0x000041ec 0 .text.EEPROM_ReadParaInfo + $d 0x000041f4 0 .text.EEPROM_WriteParaInfo + $t 0x000041f4 0 .text.EEPROM_WriteParaInfo + $d 0x00004234 0 .text.EEPROM_WriteParaInfo + $d 0x00004238 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004238 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004290 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004298 0 .text.EEPROM_Default_ParaInfo + $t 0x00004298 0 .text.EEPROM_Default_ParaInfo + $d 0x000042b0 0 .text.EEPROM_Init + $t 0x000042b0 0 .text.EEPROM_Init + $d 0x000042f4 0 .text.EEPROM_Init + $d 0x00004300 0 .text.EEPROM_WriteTouchPara + $t 0x00004300 0 .text.EEPROM_WriteTouchPara + $d 0x00004360 0 .text.EEPROM_WriteTouchPara + $d 0x0000436c 0 .text.EEPROM_ReadTouchPara + $t 0x0000436c 0 .text.EEPROM_ReadTouchPara + $d 0x00004404 0 .text.EEPROM_ReadTouchPara + $d 0x00004418 0 .text.EEPROM_Validate_TouchPara + $t 0x00004418 0 .text.EEPROM_Validate_TouchPara + $d 0x000044bc 0 .text.EEPROM_Validate_TouchPara + $d 0x000044c0 0 .text.EEPROM_Default_TouchPara + $t 0x000044c0 0 .text.EEPROM_Default_TouchPara + $d 0x00004500 0 .text.EEPROM_TouchPara_Printf + $t 0x00004500 0 .text.EEPROM_TouchPara_Printf + $d 0x00004564 0 .text.EEPROM_TouchPara_Printf + $d 0x00004580 0 .text.ADC_Init + $t 0x00004580 0 .text.ADC_Init + $d 0x000045d8 0 .text.ADC_Init + $d 0x000045dc 0 .text.Thermistor_Array_Transform + $t 0x000045dc 0 .text.Thermistor_Array_Transform + $d 0x0000461c 0 .text.Thermistor_Array_Transform + $d 0x00004624 0 .text.Calculate_ADC_Sample_Average + $t 0x00004624 0 .text.Calculate_ADC_Sample_Average + $d 0x000046d0 0 .text.Calculate_ADC_Sample_Average + $d 0x000046e4 0 .text.ADC_Sample_Task + $t 0x000046e4 0 .text.ADC_Sample_Task + $d 0x00004784 0 .text.ADC_Sample_Task + $d 0x00004794 0 .text.Get_Temp_Val + $t 0x00004794 0 .text.Get_Temp_Val + $d 0x000047a0 0 .text.Get_Temp_Val + $d 0x000047a4 0 .text.HT1621_WR_Data + $t 0x000047a4 0 .text.HT1621_WR_Data + $d 0x000047e8 0 .text.HT1621_WR_Data + $d 0x000047ec 0 .text.HT1621_WR_CMD + $t 0x000047ec 0 .text.HT1621_WR_CMD + $d 0x00004818 0 .text.HT1621_WR_CMD + $d 0x0000481c 0 .text.HT1621_Init + $t 0x0000481c 0 .text.HT1621_Init + $d 0x000048bc 0 .text.HT1621_Init + $d 0x000048c0 0 .text.HT1621_Clear + $t 0x000048c0 0 .text.HT1621_Clear + $d 0x00004908 0 .text.HT1621_Clear + $d 0x00004910 0 .text.HT1621_ALLON + $t 0x00004910 0 .text.HT1621_ALLON + $d 0x0000494c 0 .text.HT1621_ALLON + $d 0x00004950 0 .text.HT1621_Refresh_Data + $t 0x00004950 0 .text.HT1621_Refresh_Data + $d 0x00004994 0 .text.HT1621_Refresh_Data + $d 0x0000499c 0 .text.Set_Temperature_Display + $t 0x0000499c 0 .text.Set_Temperature_Display + $d 0x00004a1c 0 .text.Set_Temperature_Display + $d 0x00004a24 0 .text.Local_Temperature_Display + $t 0x00004a24 0 .text.Local_Temperature_Display + $d 0x00004a9c 0 .text.Local_Temperature_Display + $d 0x00004aa4 0 .text.Control_Mode + $t 0x00004aa4 0 .text.Control_Mode + $d 0x00004ae8 0 .text.Control_Mode + $d 0x00004aec 0 .text.Control_wind_velocity + $t 0x00004aec 0 .text.Control_wind_velocity + $d 0x00004af8 0 .text.Control_wind_velocity + $t 0x00004afc 0 .text.Control_wind_velocity + $d 0x00004b58 0 .text.Control_wind_velocity + $d 0x00004b5c 0 .text.Control_Prompt_Text + $t 0x00004b5c 0 .text.Control_Prompt_Text + $d 0x00004b9c 0 .text.Control_Prompt_Text + $d 0x00004ba0 0 .text.Controlled_Buzzer + $t 0x00004ba0 0 .text.Controlled_Buzzer + $d 0x00004be0 0 .text.Controlled_Buzzer + $d 0x00004be8 0 .text.Controlled_LCD_Backlight + $t 0x00004be8 0 .text.Controlled_LCD_Backlight + $d 0x00004c04 0 .text.Controlled_LCD_Backlight + $d 0x00004c0c 0 .text.Set_Device_ADDR + $t 0x00004c0c 0 .text.Set_Device_ADDR + $d 0x00004c9c 0 .text.Set_Device_ADDR + $d 0x00004ca4 0 .text.Set_Temp_Difference + $t 0x00004ca4 0 .text.Set_Temp_Difference + $d 0x00004d00 0 .text.Set_Temp_Difference + $d 0x00004d08 0 .text.HT1621_Refresh_Task + $t 0x00004d08 0 .text.HT1621_Refresh_Task + $d 0x00004d58 0 .text.HT1621_Refresh_Task + $d 0x00004d68 0 .text.TemCtrl_Init + $t 0x00004d68 0 .text.TemCtrl_Init + $d 0x00004e80 0 .text.TemCtrl_Init + $d 0x00004e98 0 .text.TemCtrl_Model_Set + $t 0x00004e98 0 .text.TemCtrl_Model_Set + $d 0x00004edc 0 .text.TemCtrl_Model_Set + $d 0x00004ee4 0 .text.TemCtrl_Fan_Set + $t 0x00004ee4 0 .text.TemCtrl_Fan_Set + $d 0x00004f02 0 .text.TemCtrl_Fan_Set + $t 0x00004f06 0 .text.TemCtrl_Fan_Set + $d 0x00004f28 0 .text.TemCtrl_Fan_Set + $d 0x00004f30 0 .text.TemCtrl_Temperature_Dec + $t 0x00004f30 0 .text.TemCtrl_Temperature_Dec + $d 0x00004f58 0 .text.TemCtrl_Temperature_Dec + $d 0x00004f60 0 .text.TemCtrl_Temperature_Add + $t 0x00004f60 0 .text.TemCtrl_Temperature_Add + $d 0x00004f88 0 .text.TemCtrl_Temperature_Add + $d 0x00004f90 0 .text.TemCtrl_OnOff_Set + $t 0x00004f90 0 .text.TemCtrl_OnOff_Set + $d 0x00004fbc 0 .text.TemCtrl_OnOff_Set + $d 0x00004fc4 0 .text.Tem_Valve_Ctrl + $t 0x00004fc4 0 .text.Tem_Valve_Ctrl + $d 0x0000509c 0 .text.Tem_Valve_Ctrl + $d 0x000050ac 0 .text.TemCtrl_Pro + $t 0x000050ac 0 .text.TemCtrl_Pro + $d 0x00005188 0 .text.TemCtrl_Pro + $d 0x0000519c 0 .text.KEY1_Model_Press_Fun + $t 0x0000519c 0 .text.KEY1_Model_Press_Fun + $d 0x00005254 0 .text.KEY1_Model_Press_Fun + $d 0x0000526c 0 .text.KEY2_Fan_Press_Fun + $t 0x0000526c 0 .text.KEY2_Fan_Press_Fun + $d 0x00005324 0 .text.KEY2_Fan_Press_Fun + $d 0x0000533c 0 .text.KEY3_TempAdd_Press_Fun + $t 0x0000533c 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005400 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005418 0 .text.KEY3_Long_Press_Fun + $t 0x00005418 0 .text.KEY3_Long_Press_Fun + $d 0x00005474 0 .text.KEY3_Long_Press_Fun + $d 0x00005484 0 .text.KEY4_TempDec_Press_Fun + $t 0x00005484 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000554c 0 .text.KEY4_TempDec_Press_Fun + $d 0x00005564 0 .text.KEY4_Long_Press + $t 0x00005564 0 .text.KEY4_Long_Press + $d 0x000055c0 0 .text.KEY4_Long_Press + $d 0x000055d0 0 .text.KEY5_OnOff_Press_Fun + $t 0x000055d0 0 .text.KEY5_OnOff_Press_Fun + $d 0x0000563c 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005654 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00005654 0 .text.TempCtrl_OnOff_DisPlay + $d 0x0000569c 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000056a0 0 .text.DisPlay_Init + $t 0x000056a0 0 .text.DisPlay_Init + $d 0x000056b8 0 .text.DisPlay_Init + $d 0x000056c0 0 .text.DisPlay_Task + $t 0x000056c0 0 .text.DisPlay_Task + $d 0x00005860 0 .text.DisPlay_Task + $d 0x0000587c 0 .text.Debug_Init + $t 0x0000587c 0 .text.Debug_Init + $d 0x000058a4 0 .text.Debug_Init + $d 0x000058ac 0 .text.Dev_SaveData + $t 0x000058ac 0 .text.Dev_SaveData + $d 0x00005900 0 .text.Dev_SaveData + $d 0x0000590c 0 .text.Debug_Task + $t 0x0000590c 0 .text.Debug_Task + $d 0x00005968 0 .text.Debug_Task + $d 0x00005978 0 .text.get_check_sum + $t 0x00005978 0 .text.get_check_sum + $d 0x00005990 0 .text.uart_receive_input + $t 0x00005990 0 .text.uart_receive_input + $d 0x000059c4 0 .text.uart_receive_input + $d 0x000059d4 0 .text.Queue_Read_Byte + $t 0x000059d4 0 .text.Queue_Read_Byte + $d 0x000059f8 0 .text.Queue_Read_Byte + $d 0x00005a08 0 .text.with_data_rxbuff + $t 0x00005a08 0 .text.with_data_rxbuff + $d 0x00005a1c 0 .text.with_data_rxbuff + $d 0x00005a24 0 .text.RF_Info_Init + $t 0x00005a24 0 .text.RF_Info_Init + $d 0x00005a48 0 .text.RF_Info_Init + $d 0x00005a58 0 .text.Add_Frame_Head + $t 0x00005a58 0 .text.Add_Frame_Head + $d 0x00005a90 0 .text.Add_Frame_Head + $d 0x00005a98 0 .text.Product_Info_Update + $t 0x00005a98 0 .text.Product_Info_Update + $d 0x00005b10 0 .text.Product_Info_Update + $d 0x00005b2c 0 .text.Recv_RFNetState_Ack + $t 0x00005b2c 0 .text.Recv_RFNetState_Ack + $d 0x00005b60 0 .text.Recv_RFNetState_Ack + $d 0x00005b64 0 .text.Tem_Fun_Ctrl_Report + $t 0x00005b64 0 .text.Tem_Fun_Ctrl_Report + $d 0x00005c0c 0 .text.Tem_Fun_Ctrl_Report + $d 0x00005c14 0 .text.data_handle + $t 0x00005c14 0 .text.data_handle + $d 0x00005d30 0 .text.data_handle + $d 0x00005d3c 0 .text.zigbee_uart_service + $t 0x00005d3c 0 .text.zigbee_uart_service + $d 0x00005dfc 0 .text.zigbee_uart_service + $d 0x00005e04 0 .text.TemFun_Report_Task + $t 0x00005e04 0 .text.TemFun_Report_Task + $d 0x00005ecc 0 .text.TemFun_Report_Task + $d 0x00005ed4 0 .text.Relay_Init + $t 0x00005ed4 0 .text.Relay_Init + $d 0x00005f38 0 .text.Relay_Init + $d 0x00005f40 0 .text.Relay_High + $t 0x00005f40 0 .text.Relay_High + $d 0x00005f60 0 .text.Relay_High + $d 0x00005f64 0 .text.Relay_Mid + $t 0x00005f64 0 .text.Relay_Mid + $d 0x00005f84 0 .text.Relay_Mid + $d 0x00005f88 0 .text.Relay_Low + $t 0x00005f88 0 .text.Relay_Low + $d 0x00005fa8 0 .text.Relay_Low + $d 0x00005fac 0 .text.Relay_Stop + $t 0x00005fac 0 .text.Relay_Stop + $d 0x00005fcc 0 .text.Relay_Stop + TK_ConfigInterrupt_CMD.part.0 0x00005fd0 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00005fd0 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00005fd0 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00005fdc 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00005fe0 0 .text.tk_clk_config + $t 0x00005fe0 0 .text.tk_clk_config + $d 0x00006004 0 .text.tk_clk_config + $d 0x00006008 0 .text.TK_con0_config + $t 0x00006008 0 .text.TK_con0_config + $d 0x000060b8 0 .text.TK_con0_config + $d 0x000060c4 0 .text.TK_IO_Enable + $t 0x000060c4 0 .text.TK_IO_Enable + $d 0x00006108 0 .text.TK_IO_Enable + $t 0x00006118 0 .text.TK_IO_Enable + $d 0x000061ec 0 .text.TK_IO_Enable + $d 0x000061f8 0 .text.TK_Sampling_prog + $t 0x000061f8 0 .text.TK_Sampling_prog + $d 0x00006240 0 .text.TK_Sampling_prog + $d 0x00006250 0 .text.TKEYIntHandler + $t 0x00006250 0 .text.TKEYIntHandler + $d 0x000062cc 0 .text.TKEYIntHandler + $d 0x000062d8 0 .text.get_key_number + $t 0x000062d8 0 .text.get_key_number + $d 0x000062fc 0 .text.get_key_number + $d 0x00006300 0 .text.TK_Baseline_prog + $t 0x00006300 0 .text.TK_Baseline_prog + $d 0x00006368 0 .text.TK_Baseline_prog + $d 0x00006384 0 .text.TK_Scan_Start + $t 0x00006384 0 .text.TK_Scan_Start + $d 0x0000639c 0 .text.TK_Scan_Start + $d 0x000063a4 0 .text.TK_Keymap_prog + $t 0x000063a4 0 .text.TK_Keymap_prog + $d 0x000064ec 0 .text.TK_Keymap_prog + $d 0x00006524 0 .text.TK_overflow_predict + $t 0x00006524 0 .text.TK_overflow_predict + $d 0x0000660c 0 .text.TK_overflow_predict + $d 0x00006640 0 .text.TK_Baseline_tracking + $t 0x00006640 0 .text.TK_Baseline_tracking + $d 0x000067e4 0 .text.TK_Baseline_tracking + $d 0x00006810 0 .text.TK_result_prog + $t 0x00006810 0 .text.TK_result_prog + $d 0x00006850 0 .text.TK_result_prog + $d 0x00006864 0 .text.CORETHandler + $t 0x00006864 0 .text.CORETHandler + $d 0x000068c4 0 .text.CORETHandler + $d 0x000068dc 0 .text.get_key_seq + $t 0x000068dc 0 .text.get_key_seq + $d 0x00006908 0 .text.get_key_seq + $d 0x00006910 0 .text.CORET_CONFIG + $t 0x00006910 0 .text.CORET_CONFIG + $d 0x00006940 0 .text.CORET_CONFIG + $d 0x00006948 0 .text.tk_chxval_seqxcon_clr + $t 0x00006948 0 .text.tk_chxval_seqxcon_clr + $d 0x00006960 0 .text.tk_chxval_seqxcon_clr + $d 0x00006964 0 .text.tk_reserved_init + $t 0x00006964 0 .text.tk_reserved_init + $d 0x00006978 0 .text.tk_reserved_init + $d 0x0000698c 0 .text.tk_init + $t 0x0000698c 0 .text.tk_init + $d 0x000069c8 0 .text.tk_init + $t 0x000069ce 0 .text.tk_init + $d 0x00006ab8 0 .text.tk_init + $d 0x00006b0c 0 .text.std_clk_calib + $t 0x00006b0c 0 .text.std_clk_calib + $d 0x00006d54 0 .text.std_clk_calib + __func__.6268 0x00006d90 O 28 .rodata + __func__.6306 0x00006dac O 25 .rodata + bp 0x00007104 O 16 .rodata + dp_l 0x00007114 O 16 .rodata + dp_h 0x00007124 O 16 .rodata + NUM.6293 0x200000ac O 1 .bss + adc_tick.6207 0x200000cc O 4 .bss + tick.6232 0x200000d0 O 4 .bss + rx_in.6269 0x200000d6 O 2 .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_DriveStrength_EN 0x00001e68 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e76 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001e7e F 8 .text.GPIO_Write_Low + LPT_Soft_Reset 0x00001e88 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00001e9c F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00001eac F 28 .text.BT_DeInit + BT_Start 0x00001ec8 F 8 .text.BT_Start + BT_Soft_Reset 0x00001ed0 F 10 .text.BT_Soft_Reset + BT_Configure 0x00001eda F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00001ef2 F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00001f1e F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00001f24 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00001f38 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00001f48 F 24 .text.UART0_DeInit + UART1_DeInit 0x00001f60 F 24 .text.UART1_DeInit + UART2_DeInit 0x00001f78 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00001f90 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00001fac F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00001fc8 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x000020b4 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000020c4 F 30 .text.UARTTransmit + EPT_Software_Prg 0x000020e4 F 32 .text.EPT_Software_Prg + EPT_Start 0x00002104 F 40 .text.EPT_Start + EPT_Stop 0x0000212c F 40 .text.EPT_Stop + EPT_IO_SET 0x00002154 F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x0000238c F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x000023c4 F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x0000249c F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x000024b8 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x0000251c F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x0000254c F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00002578 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00002584 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x000025ac F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x000025c0 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x000025d8 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x000025ec F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00002668 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002800 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002980 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a20 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002a4c F 312 .text.tk_parameter_init + CORET_DeInit 0x00002b84 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002b9c F 24 .text.CORET_Int_Enable + CORET_start 0x00002bb4 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002bc4 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002bd4 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002be4 F 16 .text.CORET_reload + main 0x00002bf4 F 84 .text.startup.main + delay_nms 0x00002c48 F 44 .text.delay_nms + EPT0_CONFIG 0x00002c74 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002cd4 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002d34 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002d98 F 132 .text.APT32F102_init + SYSCONIntHandler 0x00002e1c F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002f0c F 104 .text.IFCIntHandler + ADCIntHandler 0x00002f74 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00002fdc F 428 .text.EPT0IntHandler + WWDTHandler 0x00003188 F 52 .text.WWDTHandler + GPT0IntHandler 0x000031bc F 128 .text.GPT0IntHandler + RTCIntHandler 0x0000323c F 112 .text.RTCIntHandler + UART0IntHandler 0x000032ac F 60 .text.UART0IntHandler + UART1IntHandler 0x000032e8 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003324 F 148 .text.UART2IntHandler + SPI0IntHandler 0x000033b8 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000034a0 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x000034f4 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00003524 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00003554 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x0000359c F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000035f8 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00003658 F 52 .text.LPTIntHandler + BT0IntHandler 0x0000368c F 76 .text.BT0IntHandler + BT1IntHandler 0x000036d8 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x0000373c F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x0000373e F 8 .text.PendTrapHandler + Trap3Handler 0x00003746 F 8 .text.Trap3Handler + Trap2Handler 0x0000374e F 8 .text.Trap2Handler + Trap1Handler 0x00003756 F 8 .text.Trap1Handler + Trap0Handler 0x0000375e F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003766 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000376e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003776 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000377e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003786 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000378e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003796 F 8 .text.I2CIntHandler + __divsi3 0x000037a0 F 36 .text.__divsi3 + __udivsi3 0x000037c4 F 36 .text.__udivsi3 + __umodsi3 0x000037e8 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x0000380c F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00003814 F 164 .text.UARTx_Init + UART2_RecvINT_Processing 0x000038b8 F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003920 F 164 .text.UART2_TASK + Dbg_Println 0x000039c4 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x000039d0 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x000039d4 F 144 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003a64 F 148 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003af8 F 60 .text.Get_TouchKey_CH_State + TouchKey_Error_Scan 0x00003b34 F 84 .text.TouchKey_Error_Scan + Touch_Key_Event_Handling 0x00003b88 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003c34 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003c70 F 220 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003d4c F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003d64 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003dd4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00003e8c F 228 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00003f70 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00003fa8 F 204 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004074 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004090 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004168 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004180 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000041f4 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004238 F 96 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004298 F 22 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x000042b0 F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x00004300 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x0000436c F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00004418 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000044c0 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004500 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004580 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000045dc F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004624 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000046e4 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004794 F 16 .text.Get_Temp_Val + HT1621_WR_Data 0x000047a4 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000047ec F 48 .text.HT1621_WR_CMD + HT1621_Init 0x0000481c F 164 .text.HT1621_Init + HT1621_Clear 0x000048c0 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00004910 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00004950 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x0000499c F 136 .text.Set_Temperature_Display + Local_Temperature_Display 0x00004a24 F 128 .text.Local_Temperature_Display + Control_Mode 0x00004aa4 F 72 .text.Control_Mode + Control_wind_velocity 0x00004aec F 112 .text.Control_wind_velocity + Control_Prompt_Text 0x00004b5c F 68 .text.Control_Prompt_Text + Controlled_Buzzer 0x00004ba0 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00004be8 F 36 .text.Controlled_LCD_Backlight + Set_Device_ADDR 0x00004c0c F 152 .text.Set_Device_ADDR + Set_Temp_Difference 0x00004ca4 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00004d08 F 96 .text.HT1621_Refresh_Task + TemCtrl_Init 0x00004d68 F 304 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00004e98 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00004ee4 F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00004f30 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00004f60 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00004f90 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00004fc4 F 232 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000050ac F 240 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x0000519c F 208 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x0000526c F 208 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x0000533c F 220 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00005418 F 108 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00005484 F 224 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00005564 F 108 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x000055d0 F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00005654 F 76 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x000056a0 F 32 .text.DisPlay_Init + DisPlay_Task 0x000056c0 F 444 .text.DisPlay_Task + Debug_Init 0x0000587c F 48 .text.Debug_Init + Dev_SaveData 0x000058ac F 96 .text.Dev_SaveData + Debug_Task 0x0000590c F 108 .text.Debug_Task + get_check_sum 0x00005978 F 22 .text.get_check_sum + uart_receive_input 0x00005990 F 68 .text.uart_receive_input + Queue_Read_Byte 0x000059d4 F 52 .text.Queue_Read_Byte + with_data_rxbuff 0x00005a08 F 28 .text.with_data_rxbuff + RF_Info_Init 0x00005a24 F 52 .text.RF_Info_Init + Add_Frame_Head 0x00005a58 F 64 .text.Add_Frame_Head + Product_Info_Update 0x00005a98 F 144 .text.Product_Info_Update + Recv_RFNetState_Ack 0x00005b2c F 56 .text.Recv_RFNetState_Ack + Tem_Fun_Ctrl_Report 0x00005b64 F 176 .text.Tem_Fun_Ctrl_Report + data_handle 0x00005c14 F 296 .text.data_handle + zigbee_uart_service 0x00005d3c F 200 .text.zigbee_uart_service + TemFun_Report_Task 0x00005e04 F 208 .text.TemFun_Report_Task + Relay_Init 0x00005ed4 F 108 .text.Relay_Init + Relay_High 0x00005f40 F 36 .text.Relay_High + Relay_Mid 0x00005f64 F 36 .text.Relay_Mid + Relay_Low 0x00005f88 F 36 .text.Relay_Low + Relay_Stop 0x00005fac F 36 .text.Relay_Stop + tk_clk_config 0x00005fe0 F 40 .text.tk_clk_config + TK_con0_config 0x00006008 F 188 .text.TK_con0_config + TK_IO_Enable 0x000060c4 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x000061f8 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00006250 F 136 .text.TKEYIntHandler + get_key_number 0x000062d8 F 40 .text.get_key_number + TK_Baseline_prog 0x00006300 F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00006384 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x000063a4 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00006524 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00006640 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00006810 F 84 .text.TK_result_prog + CORETHandler 0x00006864 F 120 .text.CORETHandler + get_key_seq 0x000068dc F 52 .text.get_key_seq + CORET_CONFIG 0x00006910 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00006948 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x00006964 F 40 .text.tk_reserved_init + tk_init 0x0000698c F 368 .text.tk_init + std_clk_calib 0x00006b0c F 644 .text.std_clk_calib + R_Array 0x00006dc6 O 820 .rodata + Diaital 0x000070fa O 10 .rodata + __thenan_df 0x00007134 O 20 .rodata + __clz_tab 0x00007148 O 256 .rodata + _end_rodata 0x00007588 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 + MCU_Touch_CH 0x20000068 O 5 .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 + Sav_Temp 0x200000a4 O 4 .bss + _bss_start 0x200000a4 0 .bss + Sys_RSR 0x200000a8 O 4 .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 + Dbg_Switch 0x200000c8 O 4 .bss + seq_num 0x200000d4 O 2 .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 + touch_para 0x20000204 O 28 .bss + touch_state 0x20000220 O 20 .bss + g_key 0x20000234 O 48 .bss + g_eeprom 0x20000264 O 6 .bss + g_adc 0x2000026a O 55 .bss + HT1621 0x200002a4 O 60 .bss + TempCtrl 0x200002e0 O 21 .bss + Debug_Inf 0x200002f5 O 11 .bss + zigbee_queue_buf 0x20000300 O 265 .bss + queue_in 0x2000040c O 4 .bss + zigbee_uart_rx_buf 0x20000410 O 137 .bss + queue_out 0x2000049c O 4 .bss + rf_info 0x200004a0 O 3 .bss + zigbee_uart_tx_buf 0x200004a3 O 137 .bss + baseline_data0 0x2000052c O 34 .bss + TK_Postive_build2 0x2000054e O 17 .bss + Key_Map1 0x20000560 O 4 .bss + offset_data2_abs 0x20000564 O 34 .bss + scan_f 0x20000586 O 1 .bss + offset_data1_abs 0x20000588 O 34 .bss + Release_debounce0 0x200005aa O 17 .bss + Key_Map0 0x200005bc O 4 .bss + bsae_over_f 0x200005c0 O 1 .bss + scan_cnt 0x200005c2 O 2 .bss + Press_debounce0 0x200005c4 O 17 .bss + offset_data0 0x200005d6 O 34 .bss + sampling_data1 0x200005f8 O 34 .bss + Key_Map2 0x2000061c O 4 .bss + Release_debounce1 0x20000620 O 17 .bss + tk_overflow_f 0x20000631 O 1 .bss + TK_Negtive_build2 0x20000632 O 17 .bss + base_update_f 0x20000643 O 1 .bss + TK_Postive_build1 0x20000644 O 17 .bss + time_cnt 0x20000658 O 4 .bss + lpt_scan_pend_cnt 0x2000065c O 2 .bss + TK_track_cnt 0x2000065e O 1 .bss + Key_Map 0x20000660 O 4 .bss + baseline_data1 0x20000664 O 34 .bss + TK_Postive_build0 0x20000686 O 17 .bss + sampling_data2 0x20000698 O 34 .bss + offset_data1 0x200006ba O 34 .bss + TK_ovrdect_cnt 0x200006dc O 1 .bss + Press_debounce2 0x200006dd O 17 .bss + TK_Negtive_build1 0x200006ee O 17 .bss + tk_num 0x200006ff O 1 .bss + TK_Negtive_build0 0x20000700 O 17 .bss + Press_debounce1 0x20000711 O 17 .bss + Release_debounce2 0x20000722 O 17 .bss + r_Key_Map_Temp 0x20000734 O 4 .bss + tk_seque 0x20000738 O 17 .bss + scan_step 0x20000749 O 1 .bss + baseline_data2 0x2000074a O 34 .bss + tk_sampling_max 0x2000076c O 34 .bss + offset_data0_abs 0x2000078e O 34 .bss + offset_data2 0x200007b0 O 34 .bss + sampling_data0 0x200007d2 O 34 .bss + _ebss 0x200007f4 0 .bss + _end 0x200007f4 0 .bss + end 0x200007f4 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: 0x00007588, 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 1187 .text pow.o + 0x00000b5e 0x00000006 Code RO 1195 .text fabs.o + 0x00000b64 0x00000020 Code RO 1201 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1208 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1219 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1224 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1231 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1238 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1245 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1252 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1259 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1266 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1273 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1280 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1294 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1301 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1308 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1314 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1321 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1328 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1349 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1354 .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 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e76 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001e7e 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001e88 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00001e9c 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00001eac 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00001ec8 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00001ed0 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00001eda 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00001ef2 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f1e 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00001f24 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00001f38 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00001f48 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001f60 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001f78 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001f90 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001fac 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001fc8 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000020b4 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000020c4 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000020e4 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x00002104 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x0000212c 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002154 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x0000238c 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x000023c4 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x0000249c 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x000024b8 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x0000251c 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x0000252c 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x0000254c 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00002578 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00002584 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x000025ac 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x000025c0 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x000025d8 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x000025ec 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00002668 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002800 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002980 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a20 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002a4c 0x00000138 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002b84 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002b9c 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002bb4 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002bc4 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002bd4 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002be4 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002bf4 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00002c48 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002c74 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002cd4 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002d34 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002d98 0x00000084 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002e1c 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002f0c 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00002f74 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00002fdc 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003188 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000031bc 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x0000323c 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000032ac 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x000032e8 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003324 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000033b8 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000034a0 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x000034f4 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00003524 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00003554 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x0000359c 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000035f8 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003658 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x0000368c 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000036d8 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x0000373c 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x0000373e 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00003746 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x0000374e 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00003756 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x0000375e 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003766 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000376e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003776 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000377e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003786 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000378e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003796 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000037a0 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000037c4 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000037e8 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x0000380c 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003814 0x000000a4 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000038b8 0x00000068 Code RO 837 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003920 0x000000a4 Code RO 838 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000039c4 0x0000000c Code RO 842 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000039d0 0x00000002 Code RO 843 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x000039d4 0x00000090 Code RO 860 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003a64 0x00000094 Code RO 862 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003af8 0x0000003c Code RO 863 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003b34 0x00000054 Code RO 864 .text.TouchKey_Error_Scan Obj/SYSTEM_touch_key.o + 0x00003b88 0x000000ac Code RO 865 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003c34 0x0000003c Code RO 866 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003c70 0x000000dc Code RO 867 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003d4c 0x00000018 Code RO 868 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003d64 0x00000070 Code RO 869 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003dd4 0x000000b8 Code RO 870 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00003e8c 0x000000e4 Code RO 871 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00003f70 0x00000038 Code RO 872 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00003fa8 0x000000cc Code RO 873 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004074 0x0000001a Code RO 874 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004090 0x000000d8 Code RO 875 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004168 0x00000016 Code RO 894 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004180 0x00000074 Code RO 895 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000041f4 0x00000044 Code RO 896 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004238 0x00000060 Code RO 898 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004298 0x00000016 Code RO 899 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000042b0 0x00000050 Code RO 900 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00004300 0x0000006c Code RO 901 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x0000436c 0x000000ac Code RO 902 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00004418 0x000000a8 Code RO 903 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000044c0 0x00000040 Code RO 904 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004500 0x00000080 Code RO 905 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004580 0x0000005c Code RO 923 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000045dc 0x00000048 Code RO 924 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004624 0x000000c0 Code RO 925 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000046e4 0x000000b0 Code RO 926 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004794 0x00000010 Code RO 927 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x000047a4 0x00000048 Code RO 945 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000047ec 0x00000030 Code RO 946 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x0000481c 0x000000a4 Code RO 947 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x000048c0 0x00000050 Code RO 951 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00004910 0x00000040 Code RO 952 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00004950 0x0000004c Code RO 953 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x0000499c 0x00000088 Code RO 954 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004a24 0x00000080 Code RO 955 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004aa4 0x00000048 Code RO 956 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00004aec 0x00000070 Code RO 957 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00004b5c 0x00000044 Code RO 958 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00004ba0 0x00000048 Code RO 959 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00004be8 0x00000024 Code RO 960 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00004c0c 0x00000098 Code RO 962 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00004ca4 0x00000064 Code RO 963 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00004d08 0x00000060 Code RO 964 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00004d68 0x00000130 Code RO 984 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00004e98 0x0000004c Code RO 985 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00004ee4 0x0000004c Code RO 986 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00004f30 0x00000030 Code RO 987 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00004f60 0x00000030 Code RO 988 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00004f90 0x00000034 Code RO 989 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00004fc4 0x000000e8 Code RO 990 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000050ac 0x000000f0 Code RO 991 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x0000519c 0x000000d0 Code RO 1009 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000526c 0x000000d0 Code RO 1010 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000533c 0x000000dc Code RO 1011 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005418 0x0000006c Code RO 1012 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005484 0x000000e0 Code RO 1013 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005564 0x0000006c Code RO 1014 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x000055d0 0x00000084 Code RO 1015 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005654 0x0000004c Code RO 1031 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x000056a0 0x00000020 Code RO 1032 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x000056c0 0x000001bc Code RO 1033 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x0000587c 0x00000030 Code RO 1049 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x000058ac 0x00000060 Code RO 1050 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x0000590c 0x0000006c Code RO 1051 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00005978 0x00000016 Code RO 1068 .text.get_check_sum Obj/USRCTRL_rf_uart_protocol.o + 0x00005990 0x00000044 Code RO 1069 .text.uart_receive_input Obj/USRCTRL_rf_uart_protocol.o + 0x000059d4 0x00000034 Code RO 1070 .text.Queue_Read_Byte Obj/USRCTRL_rf_uart_protocol.o + 0x00005a08 0x0000001c Code RO 1071 .text.with_data_rxbuff Obj/USRCTRL_rf_uart_protocol.o + 0x00005a24 0x00000034 Code RO 1072 .text.RF_Info_Init Obj/USRCTRL_rf_uart_protocol.o + 0x00005a58 0x00000040 Code RO 1073 .text.Add_Frame_Head Obj/USRCTRL_rf_uart_protocol.o + 0x00005a98 0x00000094 Code RO 1074 .text.Product_Info_Update Obj/USRCTRL_rf_uart_protocol.o + 0x00005b2c 0x00000038 Code RO 1075 .text.Recv_RFNetState_Ack Obj/USRCTRL_rf_uart_protocol.o + 0x00005b64 0x000000b0 Code RO 1076 .text.Tem_Fun_Ctrl_Report Obj/USRCTRL_rf_uart_protocol.o + 0x00005c14 0x00000128 Code RO 1078 .text.data_handle Obj/USRCTRL_rf_uart_protocol.o + 0x00005d3c 0x000000c8 Code RO 1079 .text.zigbee_uart_service Obj/USRCTRL_rf_uart_protocol.o + 0x00005e04 0x000000d0 Code RO 1080 .text.TemFun_Report_Task Obj/USRCTRL_rf_uart_protocol.o + 0x00005ed4 0x0000006c Code RO 1098 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00005f40 0x00000024 Code RO 1099 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00005f64 0x00000024 Code RO 1100 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x00005f88 0x00000024 Code RO 1101 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00005fac 0x00000024 Code RO 1102 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00005fd0 0x00000010 Code RO 1126 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x00005fe0 0x00000028 Code RO 1128 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006008 0x000000bc Code RO 1129 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x000060c4 0x00000134 Code RO 1132 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x000061f8 0x00000058 Code RO 1133 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006250 0x00000088 Code RO 1137 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000062d8 0x00000028 Code RO 1138 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006300 0x00000084 Code RO 1139 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006384 0x00000020 Code RO 1140 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x000063a4 0x00000180 Code RO 1141 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006524 0x0000011c Code RO 1142 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00006640 0x000001d0 Code RO 1143 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00006810 0x00000054 Code RO 1144 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006864 0x00000078 Code RO 1145 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000068dc 0x00000034 Code RO 1146 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x00006910 0x00000038 Code RO 1147 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x00006948 0x0000001c Code RO 1148 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x00006964 0x00000028 Code RO 1149 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x0000698c 0x00000180 Code RO 1150 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x00006b0c 0x00000284 Code RO 1167 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00006d90 0x00000035 Data RO 876 .rodata Obj/SYSTEM_touch_key.o + 0x00006dc5 0x00000001 PAD + 0x00006dc6 0x00000334 Data RO 928 .rodata Obj/SYSTEM_adc.o + 0x000070fa 0x0000000a Data RO 966 .rodata Obj/SYSTEM_ht1621.o + 0x00007104 0x00000030 Data RO 1190 .rodata pow.o + 0x00007134 0x00000014 Data RO 1290 .rodata _thenan_df.o + 0x00007148 0x00000100 Data RO 1338 .rodata _clz.o + 0x00007248 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00007256 0x00000092 Data RO 877 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x000072e8 0x00000173 Data RO 906 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000745b 0x00000040 Data RO 992 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000749b 0x0000007e Data RO 1016 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00007519 0x0000004e Data RO 1052 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00007567 0x00000021 Data RO 1081 .rodata.str1.1 Obj/USRCTRL_rf_uart_protocol.o + + Region RAM (Base: 0x20000000, Size: 0x000007f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 858 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1124 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000ac 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000b8 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000cc 0x00000004 Zero RW 922 .bss Obj/SYSTEM_adc.o + 0x200000d0 0x00000004 Zero RW 983 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200000d4 0x00000004 Zero RW 1067 .bss Obj/USRCTRL_rf_uart_protocol.o + 0x200000d8 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x2000015e 0x00000002 PAD + 0x20000160 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000190 0x00000073 Zero RW 856 COMMON Obj/SYSTEM_uart.o + 0x20000203 0x00000001 PAD + 0x20000204 0x00000060 Zero RW 890 COMMON Obj/SYSTEM_touch_key.o + 0x20000264 0x00000006 Zero RW 919 COMMON Obj/SYSTEM_eeprom.o + 0x2000026a 0x00000037 Zero RW 941 COMMON Obj/SYSTEM_adc.o + 0x200002a1 0x00000003 PAD + 0x200002a4 0x0000003c Zero RW 980 COMMON Obj/SYSTEM_ht1621.o + 0x200002e0 0x00000015 Zero RW 1005 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200002f5 0x0000000b Zero RW 1064 COMMON Obj/USRCTRL_debug_unit.o + 0x20000300 0x0000022c Zero RW 1094 COMMON Obj/USRCTRL_rf_uart_protocol.o + 0x2000052c 0x000002c8 Zero RW 1163 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 250 Obj/arch_crt0.o + 56 0 0 0 786 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 254 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 + 410 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 312 0 0 134 9268 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 12055 Obj/main.o + 466 0 0 0 15449 Obj/mcu_initial.o + 2434 0 0 60 15023 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 446 0 0 135 13203 Obj/SYSTEM_uart.o + 1938 199 5 96 16083 Obj/SYSTEM_touch_key.o + 1044 371 0 6 13951 Obj/SYSTEM_eeprom.o + 548 820 0 59 12624 Obj/SYSTEM_adc.o + 1476 10 0 60 15544 Obj/SYSTEM_ht1621.o + 1076 64 0 25 12100 Obj/USRCTRL_tempctrl_unit.o + 1208 126 0 0 11684 Obj/USRCTRL_key_logic.o + 552 0 0 0 11141 Obj/USRCTRL_display_logic.o + 252 78 0 11 11100 Obj/USRCTRL_debug_unit.o + 1370 33 0 560 14204 Obj/USRCTRL_rf_uart_protocol.o + 252 0 0 0 11143 Obj/USRCTRL_myrelay.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 18202 1715 109 1154 359240 Object Totals + 4 1 6 6 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 + + 2876 0 49 712 16345 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 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 + 28022 2040 164 1872 384260 Grand Totals + 28022 2040 164 1872 384260 Elf Image Totals + 28022 2040 164 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 30062 ( 29.36kB) +Total RW Size (RW Data + ZI Data) 2036 ( 1.99kB) +Total ROM Size (Code + RO Data + RW Data) 30226 ( 29.52kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240415.asm b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240415.asm new file mode 100644 index 0000000..01f4c19 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240415.asm @@ -0,0 +1,20233 @@ + +.//Obj/RF_T1F_TC_V01_20240415.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003826 .long 0x00003826 + 8: 00003816 .long 0x00003816 + c: 00000184 .long 0x00000184 + 10: 0000381e .long 0x0000381e + 14: 000037dc .long 0x000037dc + 18: 00000184 .long 0x00000184 + 1c: 0000380e .long 0x0000380e + 20: 00003806 .long 0x00003806 + 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: 000037fe .long 0x000037fe + 44: 000037f6 .long 0x000037f6 + 48: 000037ee .long 0x000037ee + 4c: 000037e6 .long 0x000037e6 + 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: 000037de .long 0x000037de + 80: 00007100 .long 0x00007100 + 84: 00002ebc .long 0x00002ebc + 88: 00002fac .long 0x00002fac + 8c: 00003014 .long 0x00003014 + 90: 0000307c .long 0x0000307c + 94: 00000184 .long 0x00000184 + 98: 00003228 .long 0x00003228 + 9c: 00003594 .long 0x00003594 + a0: 000035c4 .long 0x000035c4 + a4: 0000325c .long 0x0000325c + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000032dc .long 0x000032dc + b4: 0000334c .long 0x0000334c + b8: 00003388 .long 0x00003388 + bc: 000033c4 .long 0x000033c4 + c0: 00000184 .long 0x00000184 + c4: 00003836 .long 0x00003836 + c8: 00000184 .long 0x00000184 + cc: 00003458 .long 0x00003458 + d0: 00003540 .long 0x00003540 + d4: 000035f4 .long 0x000035f4 + d8: 0000363c .long 0x0000363c + dc: 00003698 .long 0x00003698 + e0: 0000382e .long 0x0000382e + e4: 00006aec .long 0x00006aec + e8: 000036f8 .long 0x000036f8 + ec: 00000184 .long 0x00000184 + f0: 0000372c .long 0x0000372c + f4: 00003778 .long 0x00003778 + 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, 0x2c54 // 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: 00002c54 .long 0x00002c54 + 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, 0x79a0 // 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: 000079a0 .long 0x000079a0 + 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, 0x79a0 // 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, 0x79a0 // 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: 000079a0 .long 0x000079a0 + 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, 0x79d0 // 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: 000079d0 .long 0x000079d0 + +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, 0x79d0 // 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: 000079d0 .long 0x000079d0 + 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, 0x79d0 // 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: 000079d0 .long 0x000079d0 + +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, 0x79e4 // 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: 000079e4 .long 0x000079e4 + +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, 0x7eb0 // 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, 0x200000a4 // 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, 0x200008f4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a4 // 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: 00007eb0 .long 0x00007eb0 + 1a7c: 200000a4 .long 0x200000a4 + 1a80: 200008f4 .long 0x200008f4 + 1a84: 200000a4 .long 0x200000a4 + +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_PullHighLow_DIS: + +00001e7c : +{ + (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)); + 1e7c: 4121 lsli r1, r1, 1 + 1e7e: 3203 movi r2, 3 + 1e80: 9068 ld.w r3, (r0, 0x20) + 1e82: 7084 lsl r2, r1 + 1e84: 68c9 andn r3, r2 + 1e86: b068 st.w r3, (r0, 0x20) +} + 1e88: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001e8a : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1e8a: 4121 lsli r1, r1, 1 + 1e8c: 3301 movi r3, 1 + 1e8e: 9049 ld.w r2, (r0, 0x24) + 1e90: 70c4 lsl r3, r1 + 1e92: 6cc8 or r3, r2 + 1e94: b069 st.w r3, (r0, 0x24) +} + 1e96: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001e98 : +//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; + 1ea8: 9045 ld.w r2, (r0, 0x14) + 1eaa: 3301 movi r3, 1 + 1eac: 7085 lsr r2, r1 + 1eae: 688c and r2, r3 + { + if (dat==1) + 1eb0: 3a40 cmpnei r2, 0 + 1eb2: 70c4 lsl r3, r1 + 1eb4: 0c03 bf 0x1eba // 1eba + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00001ebe : +/*************************************************************/ +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); + 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.UART0_DeInit: + +00001f90 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 1f90: 1065 lrw r3, 0x20000040 // 1fa4 + 1f92: 3200 movi r2, 0 + 1f94: 9360 ld.w r3, (r3, 0x0) + 1f96: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 1f98: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 1f9a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 1f9c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 1f9e: b344 st.w r2, (r3, 0x10) +} + 1fa0: 783c jmp r15 + 1fa2: 0000 bkpt + 1fa4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00001fa8 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 1fa8: 1065 lrw r3, 0x2000003c // 1fbc + 1faa: 3200 movi r2, 0 + 1fac: 9360 ld.w r3, (r3, 0x0) + 1fae: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 1fb0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 1fb2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 1fb4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 1fb6: b344 st.w r2, (r3, 0x10) +} + 1fb8: 783c jmp r15 + 1fba: 0000 bkpt + 1fbc: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00001fc0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 1fc0: 1065 lrw r3, 0x20000038 // 1fd4 + 1fc2: 3200 movi r2, 0 + 1fc4: 9360 ld.w r3, (r3, 0x0) + 1fc6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 1fc8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 1fca: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 1fcc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 1fce: b344 st.w r2, (r3, 0x10) +} + 1fd0: 783c jmp r15 + 1fd2: 0000 bkpt + 1fd4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00001fd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 1fd8: 1065 lrw r3, 0x20000040 // 1fec + 1fda: 320f movi r2, 15 + 1fdc: 9360 ld.w r3, (r3, 0x0) + 1fde: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1fe0: 3380 movi r3, 128 + 1fe2: 4366 lsli r3, r3, 6 + 1fe4: 1043 lrw r2, 0xe000e100 // 1ff0 + 1fe6: b260 st.w r3, (r2, 0x0) +} + 1fe8: 783c jmp r15 + 1fea: 0000 bkpt + 1fec: 20000040 .long 0x20000040 + 1ff0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00001ff4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 1ff4: 1065 lrw r3, 0x20000038 // 2008 + 1ff6: 320f movi r2, 15 + 1ff8: 9360 ld.w r3, (r3, 0x0) + 1ffa: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1ffc: 3380 movi r3, 128 + 1ffe: 4368 lsli r3, r3, 8 + 2000: 1043 lrw r2, 0xe000e100 // 200c + 2002: b260 st.w r3, (r2, 0x0) +} + 2004: 783c jmp r15 + 2006: 0000 bkpt + 2008: 20000038 .long 0x20000038 + 200c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002010 : +//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) + 2010: 3840 cmpnei r0, 0 + 2012: 0821 bt 0x2054 // 2054 + { + if(UART_IO_G==0) + 2014: 3940 cmpnei r1, 0 + 2016: 080a bt 0x202a // 202a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2018: 1177 lrw r3, 0x2000004c // 20f4 + 201a: 31ff movi r1, 255 + 201c: 9340 ld.w r2, (r3, 0x0) + 201e: 9260 ld.w r3, (r2, 0x0) + 2020: 68c5 andn r3, r1 + 2022: 3ba2 bseti r3, 2 + 2024: 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 + 2026: b260 st.w r3, (r2, 0x0) + 2028: 0415 br 0x2052 // 2052 + else if(UART_IO_G==1) + 202a: 3941 cmpnei r1, 1 + 202c: 0813 bt 0x2052 // 2052 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 202e: 1172 lrw r3, 0x2000004c // 20f4 + 2030: 31f0 movi r1, 240 + 2032: 9340 ld.w r2, (r3, 0x0) + 2034: 9260 ld.w r3, (r2, 0x0) + 2036: 4130 lsli r1, r1, 16 + 2038: 68c5 andn r3, r1 + 203a: 31e0 movi r1, 224 + 203c: 412f lsli r1, r1, 15 + 203e: 6cc4 or r3, r1 + 2040: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2042: 31f0 movi r1, 240 + 2044: 9261 ld.w r3, (r2, 0x4) + 2046: 412c lsli r1, r1, 12 + 2048: 68c5 andn r3, r1 + 204a: 31e0 movi r1, 224 + 204c: 412b lsli r1, r1, 11 + 204e: 6cc4 or r3, r1 + 2050: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2052: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2054: 3841 cmpnei r0, 1 + 2056: 082d bt 0x20b0 // 20b0 + if(UART_IO_G==0) + 2058: 3940 cmpnei r1, 0 + 205a: 0814 bt 0x2082 // 2082 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 205c: 1167 lrw r3, 0x20000048 // 20f8 + 205e: 310f movi r1, 15 + 2060: 9340 ld.w r2, (r3, 0x0) + 2062: 9260 ld.w r3, (r2, 0x0) + 2064: 68c5 andn r3, r1 + 2066: 3107 movi r1, 7 + 2068: 6cc4 or r3, r1 + 206a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 206c: 32f0 movi r2, 240 + 206e: 1162 lrw r3, 0x2000004c // 20f4 + 2070: 4250 lsli r2, r2, 16 + 2072: 9320 ld.w r1, (r3, 0x0) + 2074: 9161 ld.w r3, (r1, 0x4) + 2076: 68c9 andn r3, r2 + 2078: 32e0 movi r2, 224 + 207a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 207c: 6cc8 or r3, r2 + 207e: b161 st.w r3, (r1, 0x4) + 2080: 07e9 br 0x2052 // 2052 + else if(UART_IO_G==1) + 2082: 3941 cmpnei r1, 1 + 2084: 080c bt 0x209c // 209c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2086: 107c lrw r3, 0x2000004c // 20f4 + 2088: 32ff movi r2, 255 + 208a: 9320 ld.w r1, (r3, 0x0) + 208c: 424c lsli r2, r2, 12 + 208e: 9160 ld.w r3, (r1, 0x0) + 2090: 68c9 andn r3, r2 + 2092: 32ee movi r2, 238 + 2094: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2096: 6cc8 or r3, r2 + 2098: b160 st.w r3, (r1, 0x0) +} + 209a: 07dc br 0x2052 // 2052 + else if(UART_IO_G==2) + 209c: 3942 cmpnei r1, 2 + 209e: 0bda bt 0x2052 // 2052 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 20a0: 1075 lrw r3, 0x2000004c // 20f4 + 20a2: 32ee movi r2, 238 + 20a4: 9320 ld.w r1, (r3, 0x0) + 20a6: 9161 ld.w r3, (r1, 0x4) + 20a8: 4368 lsli r3, r3, 8 + 20aa: 4b68 lsri r3, r3, 8 + 20ac: 4257 lsli r2, r2, 23 + 20ae: 07e7 br 0x207c // 207c + if (IO_UART_NUM==IO_UART2) + 20b0: 3842 cmpnei r0, 2 + 20b2: 0bd0 bt 0x2052 // 2052 + if(UART_IO_G==0) + 20b4: 3940 cmpnei r1, 0 + 20b6: 0809 bt 0x20c8 // 20c8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 20b8: 106f lrw r3, 0x2000004c // 20f4 + 20ba: 31ff movi r1, 255 + 20bc: 9340 ld.w r2, (r3, 0x0) + 20be: 9260 ld.w r3, (r2, 0x0) + 20c0: 68c5 andn r3, r1 + 20c2: 3177 movi r1, 119 + 20c4: 6cc4 or r3, r1 + 20c6: 07b0 br 0x2026 // 2026 + else if(UART_IO_G==1) + 20c8: 3941 cmpnei r1, 1 + 20ca: 0809 bt 0x20dc // 20dc + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 20cc: 106a lrw r3, 0x2000004c // 20f4 + 20ce: 32ee movi r2, 238 + 20d0: 9320 ld.w r1, (r3, 0x0) + 20d2: 9160 ld.w r3, (r1, 0x0) + 20d4: 4368 lsli r3, r3, 8 + 20d6: 4b68 lsri r3, r3, 8 + 20d8: 4257 lsli r2, r2, 23 + 20da: 07de br 0x2096 // 2096 + else if(UART_IO_G==2) + 20dc: 3942 cmpnei r1, 2 + 20de: 0bba bt 0x2052 // 2052 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 20e0: 1066 lrw r3, 0x20000048 // 20f8 + 20e2: 32ff movi r2, 255 + 20e4: 9320 ld.w r1, (r3, 0x0) + 20e6: 4250 lsli r2, r2, 16 + 20e8: 9160 ld.w r3, (r1, 0x0) + 20ea: 68c9 andn r3, r2 + 20ec: 32cc movi r2, 204 + 20ee: 424f lsli r2, r2, 15 + 20f0: 07d3 br 0x2096 // 2096 + 20f2: 0000 bkpt + 20f4: 2000004c .long 0x2000004c + 20f8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000020fc : +//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); + 20fc: 1063 lrw r3, 0x80003 // 2108 + 20fe: 6c8c or r2, r3 + 2100: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2102: b024 st.w r1, (r0, 0x10) +} + 2104: 783c jmp r15 + 2106: 0000 bkpt + 2108: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +0000210c : +//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); + 210c: 1063 lrw r3, 0x8000f // 2118 + 210e: 6c8c or r2, r3 + 2110: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2112: b024 st.w r1, (r0, 0x10) +} + 2114: 783c jmp r15 + 2116: 0000 bkpt + 2118: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +0000211c : +//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) +{ + 211c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 211e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2120: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2122: 5b85 subu r4, r3, r1 + 2124: 6490 cmphs r4, r2 + 2126: 0c02 bf 0x212a // 212a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2128: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 212a: 8380 ld.b r4, (r3, 0x0) + 212c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 212e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2130: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2132: 3c40 cmpnei r4, 0 + 2134: 0bfd bt 0x212e // 212e + 2136: 2300 addi r3, 1 + 2138: 07f5 br 0x2122 // 2122 + +Disassembly of section .text.EPT_Software_Prg: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 213c: 1067 lrw r3, 0x20000020 // 2158 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 213e: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 2140: 9340 ld.w r2, (r3, 0x0) + 2142: 9260 ld.w r3, (r2, 0x0) + 2144: 3ba0 bseti r3, 0 + 2146: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 2148: 9261 ld.w r3, (r2, 0x4) + 214a: 4128 lsli r1, r1, 8 + 214c: 68c5 andn r3, r1 + 214e: 3bac bseti r3, 12 + 2150: 3bae bseti r3, 14 + 2152: b261 st.w r3, (r2, 0x4) +} + 2154: 783c jmp r15 + 2156: 0000 bkpt + 2158: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +0000215c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 215c: 1068 lrw r3, 0x20000020 // 217c + 215e: 3280 movi r2, 128 + 2160: 9360 ld.w r3, (r3, 0x0) + 2162: 608c addu r2, r3 + 2164: 1027 lrw r1, 0xa55ac73a // 2180 + 2166: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2168: 9341 ld.w r2, (r3, 0x4) + 216a: 3aa0 bseti r2, 0 + 216c: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 216e: 3101 movi r1, 1 + 2170: 9341 ld.w r2, (r3, 0x4) + 2172: 6884 and r2, r1 + 2174: 3a40 cmpnei r2, 0 + 2176: 0ffd bf 0x2170 // 2170 +} + 2178: 783c jmp r15 + 217a: 0000 bkpt + 217c: 20000020 .long 0x20000020 + 2180: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +00002184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2184: 1068 lrw r3, 0x20000020 // 21a4 + 2186: 3280 movi r2, 128 + 2188: 9360 ld.w r3, (r3, 0x0) + 218a: 608c addu r2, r3 + 218c: 1027 lrw r1, 0xa55ac73a // 21a8 + 218e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2190: 9341 ld.w r2, (r3, 0x4) + 2192: 31fe movi r1, 254 + 2194: 6884 and r2, r1 + 2196: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2198: 3101 movi r1, 1 + 219a: 9341 ld.w r2, (r3, 0x4) + 219c: 6884 and r2, r1 + 219e: 3a40 cmpnei r2, 0 + 21a0: 0bfd bt 0x219a // 219a +} + 21a2: 783c jmp r15 + 21a4: 20000020 .long 0x20000020 + 21a8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +000021ac : +//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) + 21ac: 3840 cmpnei r0, 0 + 21ae: 0822 bt 0x21f2 // 21f2 + { + if(IO_Num_X==IO_NUM_PA07) + 21b0: 3950 cmpnei r1, 16 + 21b2: 080a bt 0x21c6 // 21c6 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 21b4: 0375 lrw r3, 0x2000004c // 23dc + 21b6: 9340 ld.w r2, (r3, 0x0) + 21b8: 9260 ld.w r3, (r2, 0x0) + 21ba: 4364 lsli r3, r3, 4 + 21bc: 4b64 lsri r3, r3, 4 + 21be: 3bbd bseti r3, 29 + 21c0: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 21c2: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 21c4: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 21c6: 3951 cmpnei r1, 17 + 21c8: 080b bt 0x21de // 21de + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 21ca: 037a lrw r3, 0x2000004c // 23dc + 21cc: 32f0 movi r2, 240 + 21ce: 9320 ld.w r1, (r3, 0x0) + 21d0: 9161 ld.w r3, (r1, 0x4) + 21d2: 4244 lsli r2, r2, 4 + 21d4: 68c9 andn r3, r2 + 21d6: 3ba8 bseti r3, 8 + 21d8: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 21da: b161 st.w r3, (r1, 0x4) + 21dc: 07f4 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA15) + 21de: 3952 cmpnei r1, 18 + 21e0: 0bf2 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 21e2: 137f lrw r3, 0x2000004c // 23dc + 21e4: 9340 ld.w r2, (r3, 0x0) + 21e6: 9261 ld.w r3, (r2, 0x4) + 21e8: 4364 lsli r3, r3, 4 + 21ea: 4b64 lsri r3, r3, 4 + 21ec: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 21ee: b261 st.w r3, (r2, 0x4) + 21f0: 07ea br 0x21c4 // 21c4 + else if(EPT_IO_X==EPT_IO_CHAY) + 21f2: 3841 cmpnei r0, 1 + 21f4: 0823 bt 0x223a // 223a + if(IO_Num_X==IO_NUM_PB03) + 21f6: 3953 cmpnei r1, 19 + 21f8: 080a bt 0x220c // 220c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 21fa: 137a lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 21fc: 9320 ld.w r1, (r3, 0x0) + 21fe: 32f0 movi r2, 240 + 2200: 9160 ld.w r3, (r1, 0x0) + 2202: 4248 lsli r2, r2, 8 + 2204: 68c9 andn r3, r2 + 2206: 3bac bseti r3, 12 + 2208: 3bae bseti r3, 14 + 220a: 040b br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB05) + 220c: 3954 cmpnei r1, 20 + 220e: 080b bt 0x2224 // 2224 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 2210: 1374 lrw r3, 0x20000048 // 23e0 + 2212: 32f0 movi r2, 240 + 2214: 9320 ld.w r1, (r3, 0x0) + 2216: 9160 ld.w r3, (r1, 0x0) + 2218: 4250 lsli r2, r2, 16 + 221a: 68c9 andn r3, r2 + 221c: 3bb4 bseti r3, 20 + 221e: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2220: b160 st.w r3, (r1, 0x0) +} + 2222: 07d1 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA12) + 2224: 3955 cmpnei r1, 21 + 2226: 0bcf bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 2228: 136d lrw r3, 0x2000004c // 23dc + 222a: 32f0 movi r2, 240 + 222c: 9320 ld.w r1, (r3, 0x0) + 222e: 9161 ld.w r3, (r1, 0x4) + 2230: 424c lsli r2, r2, 12 + 2232: 68c9 andn r3, r2 + 2234: 3bb0 bseti r3, 16 + 2236: 3bb2 bseti r3, 18 + 2238: 07d1 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBX) + 223a: 3842 cmpnei r0, 2 + 223c: 0821 bt 0x227e // 227e + if(IO_Num_X==IO_NUM_PB02) + 223e: 3956 cmpnei r1, 22 + 2240: 080a bt 0x2254 // 2254 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 2242: 1368 lrw r3, 0x20000048 // 23e0 + 2244: 32f0 movi r2, 240 + 2246: 9320 ld.w r1, (r3, 0x0) + 2248: 9160 ld.w r3, (r1, 0x0) + 224a: 4244 lsli r2, r2, 4 + 224c: 68c9 andn r3, r2 + 224e: 3ba9 bseti r3, 9 + 2250: 3baa bseti r3, 10 + 2252: 07e7 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA11) + 2254: 3957 cmpnei r1, 23 + 2256: 080a bt 0x226a // 226a + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2258: 1361 lrw r3, 0x2000004c // 23dc + 225a: 32f0 movi r2, 240 + 225c: 9320 ld.w r1, (r3, 0x0) + 225e: 9161 ld.w r3, (r1, 0x4) + 2260: 4248 lsli r2, r2, 8 + 2262: 68c9 andn r3, r2 + 2264: 3bac bseti r3, 12 + 2266: 3bae bseti r3, 14 + 2268: 07b9 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PA14) + 226a: 3958 cmpnei r1, 24 + 226c: 0bac bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 226e: 127c lrw r3, 0x2000004c // 23dc + 2270: 32f0 movi r2, 240 + 2272: 9320 ld.w r1, (r3, 0x0) + 2274: 9161 ld.w r3, (r1, 0x4) + 2276: 4254 lsli r2, r2, 20 + 2278: 68c9 andn r3, r2 + 227a: 3bba bseti r3, 26 + 227c: 07af br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBY) + 227e: 3843 cmpnei r0, 3 + 2280: 0820 bt 0x22c0 // 22c0 + if(IO_Num_X==IO_NUM_PB04) + 2282: 3959 cmpnei r1, 25 + 2284: 080a bt 0x2298 // 2298 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 2286: 1277 lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2288: 9320 ld.w r1, (r3, 0x0) + 228a: 32f0 movi r2, 240 + 228c: 9160 ld.w r3, (r1, 0x0) + 228e: 424c lsli r2, r2, 12 + 2290: 68c9 andn r3, r2 + 2292: 3bb0 bseti r3, 16 + 2294: 3bb2 bseti r3, 18 + 2296: 07c5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA05) + 2298: 395a cmpnei r1, 26 + 229a: 0809 bt 0x22ac // 22ac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 229c: 1270 lrw r3, 0x2000004c // 23dc + 229e: 32f0 movi r2, 240 + 22a0: 9320 ld.w r1, (r3, 0x0) + 22a2: 9160 ld.w r3, (r1, 0x0) + 22a4: 4250 lsli r2, r2, 16 + 22a6: 68c9 andn r3, r2 + 22a8: 3bb7 bseti r3, 23 + 22aa: 07bb br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 22ac: 395b cmpnei r1, 27 + 22ae: 0b8b bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 22b0: 126b lrw r3, 0x2000004c // 23dc + 22b2: 310f movi r1, 15 + 22b4: 9340 ld.w r2, (r3, 0x0) + 22b6: 9261 ld.w r3, (r2, 0x4) + 22b8: 68c5 andn r3, r1 + 22ba: 3ba0 bseti r3, 0 + 22bc: 3ba2 bseti r3, 2 + 22be: 0798 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_CHCX) + 22c0: 3844 cmpnei r0, 4 + 22c2: 0823 bt 0x2308 // 2308 + if(IO_Num_X==IO_NUM_PB05) + 22c4: 3954 cmpnei r1, 20 + 22c6: 0809 bt 0x22d8 // 22d8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 22c8: 1266 lrw r3, 0x20000048 // 23e0 + 22ca: 32f0 movi r2, 240 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 9160 ld.w r3, (r1, 0x0) + 22d0: 4250 lsli r2, r2, 16 + 22d2: 68c9 andn r3, r2 + 22d4: 3bb6 bseti r3, 22 + 22d6: 07a5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA03) + 22d8: 395c cmpnei r1, 28 + 22da: 0803 bt 0x22e0 // 22e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 22dc: 1260 lrw r3, 0x2000004c // 23dc + 22de: 078f br 0x21fc // 21fc + else if(IO_Num_X==IO_NUM_PB03) + 22e0: 3953 cmpnei r1, 19 + 22e2: 0809 bt 0x22f4 // 22f4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 22e4: 117f lrw r3, 0x20000048 // 23e0 + 22e6: 32f0 movi r2, 240 + 22e8: 9320 ld.w r1, (r3, 0x0) + 22ea: 9160 ld.w r3, (r1, 0x0) + 22ec: 4248 lsli r2, r2, 8 + 22ee: 68c9 andn r3, r2 + 22f0: 3bae bseti r3, 14 + 22f2: 0797 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB00) + 22f4: 395d cmpnei r1, 29 + 22f6: 0b67 bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22f8: 117a lrw r3, 0x20000048 // 23e0 + 22fa: 310f movi r1, 15 + 22fc: 9340 ld.w r2, (r3, 0x0) + 22fe: 9260 ld.w r3, (r2, 0x0) + 2300: 68c5 andn r3, r1 + 2302: 3ba0 bseti r3, 0 + 2304: 3ba2 bseti r3, 2 + 2306: 075e br 0x21c2 // 21c2 + else if(EPT_IO_X==EPT_IO_CHCY) + 2308: 3845 cmpnei r0, 5 + 230a: 0825 bt 0x2354 // 2354 + if(IO_Num_X==IO_NUM_PB04) + 230c: 3959 cmpnei r1, 25 + 230e: 0809 bt 0x2320 // 2320 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 2310: 1174 lrw r3, 0x20000048 // 23e0 + 2312: 32f0 movi r2, 240 + 2314: 9320 ld.w r1, (r3, 0x0) + 2316: 9160 ld.w r3, (r1, 0x0) + 2318: 424c lsli r2, r2, 12 + 231a: 68c9 andn r3, r2 + 231c: 3bb2 bseti r3, 18 + 231e: 0781 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA04) + 2320: 395e cmpnei r1, 30 + 2322: 0803 bt 0x2328 // 2328 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2324: 116e lrw r3, 0x2000004c // 23dc + 2326: 07b1 br 0x2288 // 2288 + else if(IO_Num_X==IO_NUM_PA09) + 2328: 395f cmpnei r1, 31 + 232a: 0809 bt 0x233c // 233c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 232c: 116c lrw r3, 0x2000004c // 23dc + 232e: 31f0 movi r1, 240 + 2330: 9340 ld.w r2, (r3, 0x0) + 2332: 9261 ld.w r3, (r2, 0x4) + 2334: 68c5 andn r3, r1 + 2336: 3170 movi r1, 112 + 2338: 6cc4 or r3, r1 + 233a: 075a br 0x21ee // 21ee + else if(IO_Num_X==IO_NUM_PA013) + 233c: 3320 movi r3, 32 + 233e: 64c6 cmpne r1, r3 + 2340: 0b42 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 2342: 1167 lrw r3, 0x2000004c // 23dc + 2344: 32f0 movi r2, 240 + 2346: 9320 ld.w r1, (r3, 0x0) + 2348: 9161 ld.w r3, (r1, 0x4) + 234a: 4250 lsli r2, r2, 16 + 234c: 68c9 andn r3, r2 + 234e: 3bb4 bseti r3, 20 + 2350: 3bb6 bseti r3, 22 + 2352: 0744 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHD) + 2354: 3846 cmpnei r0, 6 + 2356: 0815 bt 0x2380 // 2380 + if(IO_Num_X==IO_NUM_PB03) + 2358: 3953 cmpnei r1, 19 + 235a: 080a bt 0x236e // 236e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 235c: 1161 lrw r3, 0x20000048 // 23e0 + 235e: 32f0 movi r2, 240 + 2360: 9320 ld.w r1, (r3, 0x0) + 2362: 9160 ld.w r3, (r1, 0x0) + 2364: 4248 lsli r2, r2, 8 + 2366: 68c9 andn r3, r2 + 2368: 3bad bseti r3, 13 + 236a: 3bae bseti r3, 14 + 236c: 075a br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 236e: 395b cmpnei r1, 27 + 2370: 0b2a bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2372: 107b lrw r3, 0x2000004c // 23dc + 2374: 310f movi r1, 15 + 2376: 9340 ld.w r2, (r3, 0x0) + 2378: 9261 ld.w r3, (r2, 0x4) + 237a: 68c5 andn r3, r1 + 237c: 3ba2 bseti r3, 2 + 237e: 0738 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_EPI) + 2380: 3847 cmpnei r0, 7 + 2382: 0b21 bt 0x21c4 // 21c4 + if(IO_Num_X==IO_NUM_PA07) + 2384: 3950 cmpnei r1, 16 + 2386: 0809 bt 0x2398 // 2398 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2388: 1075 lrw r3, 0x2000004c // 23dc + 238a: 9340 ld.w r2, (r3, 0x0) + 238c: 9260 ld.w r3, (r2, 0x0) + 238e: 4364 lsli r3, r3, 4 + 2390: 4b64 lsri r3, r3, 4 + 2392: 3bbc bseti r3, 28 + 2394: 3bbe bseti r3, 30 + 2396: 0716 br 0x21c2 // 21c2 + else if(IO_Num_X==IO_NUM_PA013) + 2398: 3320 movi r3, 32 + 239a: 64c6 cmpne r1, r3 + 239c: 0809 bt 0x23ae // 23ae + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 239e: 1070 lrw r3, 0x2000004c // 23dc + 23a0: 32f0 movi r2, 240 + 23a2: 9320 ld.w r1, (r3, 0x0) + 23a4: 9161 ld.w r3, (r1, 0x4) + 23a6: 4250 lsli r2, r2, 16 + 23a8: 68c9 andn r3, r2 + 23aa: 3bb6 bseti r3, 22 + 23ac: 0717 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PB03) + 23ae: 3953 cmpnei r1, 19 + 23b0: 080b bt 0x23c6 // 23c6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 23b2: 106c lrw r3, 0x20000048 // 23e0 + 23b4: 32f0 movi r2, 240 + 23b6: 9320 ld.w r1, (r3, 0x0) + 23b8: 4248 lsli r2, r2, 8 + 23ba: 9160 ld.w r3, (r1, 0x0) + 23bc: 68c9 andn r3, r2 + 23be: 32e0 movi r2, 224 + 23c0: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23c2: 6cc8 or r3, r2 + 23c4: 072e br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB02) + 23c6: 3956 cmpnei r1, 22 + 23c8: 0afe bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23ca: 1066 lrw r3, 0x20000048 // 23e0 + 23cc: 32f0 movi r2, 240 + 23ce: 9320 ld.w r1, (r3, 0x0) + 23d0: 4244 lsli r2, r2, 4 + 23d2: 9160 ld.w r3, (r1, 0x0) + 23d4: 68c9 andn r3, r2 + 23d6: 32e0 movi r2, 224 + 23d8: 4243 lsli r2, r2, 3 + 23da: 07f4 br 0x23c2 // 23c2 + 23dc: 2000004c .long 0x2000004c + 23e0: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +000023e4 : +//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) +{ + 23e4: 14c3 push r4-r6 + 23e6: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23e8: 104b lrw r2, 0x20000020 // 2414 + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23ea: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23ec: 92a0 ld.w r5, (r2, 0x0) + 23ee: 9580 ld.w r4, (r5, 0x0) + 23f0: 32ff movi r2, 255 + 23f2: 6909 andn r4, r2 + 23f4: 3ca0 bseti r4, 0 + 23f6: 3ca1 bseti r4, 1 + 23f8: 6d00 or r4, r0 + 23fa: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23fc: 0802 bt 0x2400 // 2400 + { + EPT0->PSCR=EPT_PSCR; + 23fe: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 2400: 9543 ld.w r2, (r5, 0xc) + 2402: 1066 lrw r3, 0x7003f // 2418 + 2404: 688d andn r2, r3 + 2406: 6c98 or r2, r6 + 2408: 3aa2 bseti r2, 2 + 240a: 3ab2 bseti r2, 18 + 240c: 6c48 or r1, r2 + 240e: b523 st.w r1, (r5, 0xc) +} + 2410: 1483 pop r4-r6 + 2412: 0000 bkpt + 2414: 20000020 .long 0x20000020 + 2418: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +0000241c : + 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 + ) +{ + 241c: 14c4 push r4-r7 + 241e: 1425 subi r14, r14, 20 + 2420: 9889 ld.w r4, (r14, 0x24) + 2422: b880 st.w r4, (r14, 0x0) + 2424: 988a ld.w r4, (r14, 0x28) + 2426: b881 st.w r4, (r14, 0x4) + 2428: 988b ld.w r4, (r14, 0x2c) + 242a: b882 st.w r4, (r14, 0x8) + 242c: 988c ld.w r4, (r14, 0x30) + 242e: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 2430: 3840 cmpnei r0, 0 +{ + 2432: 988d ld.w r4, (r14, 0x34) + 2434: b884 st.w r4, (r14, 0x10) + 2436: 98ce ld.w r6, (r14, 0x38) + 2438: 98ef ld.w r7, (r14, 0x3c) + 243a: 98b0 ld.w r5, (r14, 0x40) + 243c: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 243e: 0816 bt 0x246a // 246a + { + 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; + 2440: 6d14 or r4, r5 + 2442: 6d1c or r4, r7 + 2444: 98a4 ld.w r5, (r14, 0x10) + 2446: 6d18 or r4, r6 + 2448: 6d14 or r4, r5 + 244a: 98a3 ld.w r5, (r14, 0xc) + 244c: 6d14 or r4, r5 + 244e: 98a2 ld.w r5, (r14, 0x8) + 2450: 6d14 or r4, r5 + 2452: 98a1 ld.w r5, (r14, 0x4) + 2454: 6d14 or r4, r5 + 2456: 98a0 ld.w r5, (r14, 0x0) + 2458: 6d14 or r4, r5 + 245a: 6cd0 or r3, r4 + 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| + 245c: 1105 lrw r0, 0x20000020 // 24f0 + 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; + 245e: 6c8c or r2, r3 + 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| + 2460: 9000 ld.w r0, (r0, 0x0) + 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; + 2462: 6c48 or r1, r2 + 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| + 2464: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 2466: 1405 addi r14, r14, 20 + 2468: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 246a: 3841 cmpnei r0, 1 + 246c: 0815 bt 0x2496 // 2496 + 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; + 246e: 6d14 or r4, r5 + 2470: 6d1c or r4, r7 + 2472: 98a4 ld.w r5, (r14, 0x10) + 2474: 6d18 or r4, r6 + 2476: 6d14 or r4, r5 + 2478: 98a3 ld.w r5, (r14, 0xc) + 247a: 6d14 or r4, r5 + 247c: 98a2 ld.w r5, (r14, 0x8) + 247e: 6d14 or r4, r5 + 2480: 98a1 ld.w r5, (r14, 0x4) + 2482: 6d14 or r4, r5 + 2484: 98a0 ld.w r5, (r14, 0x0) + 2486: 6d14 or r4, r5 + 2488: 6cd0 or r3, r4 + 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| + 248a: 101a lrw r0, 0x20000020 // 24f0 + 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; + 248c: 6c8c or r2, r3 + 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| + 248e: 9000 ld.w r0, (r0, 0x0) + 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; + 2490: 6c48 or r1, r2 + 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| + 2492: b033 st.w r1, (r0, 0x4c) + 2494: 07e9 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMC) + 2496: 3842 cmpnei r0, 2 + 2498: 0815 bt 0x24c2 // 24c2 + 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; + 249a: 6d14 or r4, r5 + 249c: 6d1c or r4, r7 + 249e: 98a4 ld.w r5, (r14, 0x10) + 24a0: 6d18 or r4, r6 + 24a2: 6d14 or r4, r5 + 24a4: 98a3 ld.w r5, (r14, 0xc) + 24a6: 6d14 or r4, r5 + 24a8: 98a2 ld.w r5, (r14, 0x8) + 24aa: 6d14 or r4, r5 + 24ac: 98a1 ld.w r5, (r14, 0x4) + 24ae: 6d14 or r4, r5 + 24b0: 98a0 ld.w r5, (r14, 0x0) + 24b2: 6d14 or r4, r5 + 24b4: 6cd0 or r3, r4 + 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| + 24b6: 100f lrw r0, 0x20000020 // 24f0 + 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; + 24b8: 6c8c or r2, r3 + 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| + 24ba: 9000 ld.w r0, (r0, 0x0) + 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; + 24bc: 6c48 or r1, r2 + 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| + 24be: b034 st.w r1, (r0, 0x50) + 24c0: 07d3 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMD) + 24c2: 3843 cmpnei r0, 3 + 24c4: 0bd1 bt 0x2466 // 2466 + 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; + 24c6: 6d14 or r4, r5 + 24c8: 6d1c or r4, r7 + 24ca: 98a4 ld.w r5, (r14, 0x10) + 24cc: 6d18 or r4, r6 + 24ce: 6d14 or r4, r5 + 24d0: 98a3 ld.w r5, (r14, 0xc) + 24d2: 6d14 or r4, r5 + 24d4: 98a2 ld.w r5, (r14, 0x8) + 24d6: 6d14 or r4, r5 + 24d8: 98a1 ld.w r5, (r14, 0x4) + 24da: 6d14 or r4, r5 + 24dc: 98a0 ld.w r5, (r14, 0x0) + 24de: 6d14 or r4, r5 + 24e0: 6cd0 or r3, r4 + 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| + 24e2: 1004 lrw r0, 0x20000020 // 24f0 + 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; + 24e4: 6c8c or r2, r3 + 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| + 24e6: 9000 ld.w r0, (r0, 0x0) + 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; + 24e8: 6c48 or r1, r2 + 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| + 24ea: b035 st.w r1, (r0, 0x54) +} + 24ec: 07bd br 0x2466 // 2466 + 24ee: 0000 bkpt + 24f0: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +000024f4 : +//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) +{ + 24f4: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 24f6: 1086 lrw r4, 0x20000020 // 250c +{ + 24f8: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 24fc: 9480 ld.w r4, (r4, 0x0) + 24fe: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 2500: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 2502: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 2504: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 2506: b4ae st.w r5, (r4, 0x38) +} + 2508: 1482 pop r4-r5 + 250a: 0000 bkpt + 250c: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002510 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2510: 1078 lrw r3, 0x20000050 // 2570 + 2512: 3200 movi r2, 0 + 2514: 9360 ld.w r3, (r3, 0x0) + 2516: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2518: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 251a: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 251c: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 251e: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2520: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 2522: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 2524: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 2526: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2528: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 252a: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 252c: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 252e: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2530: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 2532: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 2534: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 2536: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2538: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 253a: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 253c: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 253e: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2540: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 2542: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2544: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 2546: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2548: 23ff addi r3, 256 + 254a: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 254c: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 254e: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2550: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 2552: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2554: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 2556: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2558: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 255a: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 255c: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 255e: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2560: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 2562: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2564: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 2566: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2568: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 256a: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 256c: b351 st.w r2, (r3, 0x44) +} + 256e: 783c jmp r15 + 2570: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002574 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2574: 1063 lrw r3, 0x20000050 // 2580 + 2576: 9340 ld.w r2, (r3, 0x0) + 2578: 9264 ld.w r3, (r2, 0x10) + 257a: 6c0c or r0, r3 + 257c: b204 st.w r0, (r2, 0x10) +} + 257e: 783c jmp r15 + 2580: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002584 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2584: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 2586: 3002 movi r0, 2 + 2588: e3fffff6 bsr 0x2574 // 2574 + while(!(ADC0->SR &ADC12_ADCENS)); + 258c: 1065 lrw r3, 0x20000050 // 25a0 + 258e: 3280 movi r2, 128 + 2590: 9320 ld.w r1, (r3, 0x0) + 2592: 4241 lsli r2, r2, 1 + 2594: 9168 ld.w r3, (r1, 0x20) + 2596: 68c8 and r3, r2 + 2598: 3b40 cmpnei r3, 0 + 259a: 0ffd bf 0x2594 // 2594 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 259c: 1490 pop r15 + 259e: 0000 bkpt + 25a0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +000025a4 : + if (NewState != DISABLE) + 25a4: 3940 cmpnei r1, 0 + 25a6: 106a lrw r3, 0x20000050 // 25cc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25a8: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 25aa: 0c09 bf 0x25bc // 25bc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25ac: 9260 ld.w r3, (r2, 0x0) + 25ae: 6cc0 or r3, r0 + 25b0: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 25b2: 9262 ld.w r3, (r2, 0x8) + 25b4: 68c0 and r3, r0 + 25b6: 3b40 cmpnei r3, 0 + 25b8: 0ffd bf 0x25b2 // 25b2 +} + 25ba: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 25bc: 9261 ld.w r3, (r2, 0x4) + 25be: 6cc0 or r3, r0 + 25c0: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 25c2: 9262 ld.w r3, (r2, 0x8) + 25c4: 68c0 and r3, r0 + 25c6: 3b40 cmpnei r3, 0 + 25c8: 0bfd bt 0x25c2 // 25c2 + 25ca: 07f8 br 0x25ba // 25ba + 25cc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +000025d0 : +{ + 25d0: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 25d2: 3001 movi r0, 1 + 25d4: e3ffffd0 bsr 0x2574 // 2574 +} + 25d8: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000025dc : +{ + 25dc: 14d0 push r15 + if (NewState != DISABLE) + 25de: 3840 cmpnei r0, 0 + 25e0: 0c04 bf 0x25e8 // 25e8 + 25e2: e3ffffd1 bsr 0x2584 // 2584 +} + 25e6: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 25e8: 3004 movi r0, 4 + 25ea: e3ffffc5 bsr 0x2574 // 2574 + while(ADC0->SR&ADC12_ADCENS); + 25ee: 1065 lrw r3, 0x20000050 // 2600 + 25f0: 3280 movi r2, 128 + 25f2: 9320 ld.w r1, (r3, 0x0) + 25f4: 4241 lsli r2, r2, 1 + 25f6: 9168 ld.w r3, (r1, 0x20) + 25f8: 68c8 and r3, r2 + 25fa: 3b40 cmpnei r3, 0 + 25fc: 0bfd bt 0x25f6 // 25f6 + 25fe: 07f4 br 0x25e6 // 25e6 + 2600: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00002604 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 2604: 1064 lrw r3, 0x20000050 // 2614 + 2606: 3202 movi r2, 2 + 2608: 9320 ld.w r1, (r3, 0x0) + 260a: 9168 ld.w r3, (r1, 0x20) + 260c: 68c8 and r3, r2 + 260e: 3b40 cmpnei r3, 0 + 2610: 0ffd bf 0x260a // 260a +} + 2612: 783c jmp r15 + 2614: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002618 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2618: 200f addi r0, 16 + 261a: 1065 lrw r3, 0x20000050 // 262c + 261c: 3201 movi r2, 1 + 261e: 9320 ld.w r1, (r3, 0x0) + 2620: 7080 lsl r2, r0 + 2622: 9168 ld.w r3, (r1, 0x20) + 2624: 68c8 and r3, r2 + 2626: 3b40 cmpnei r3, 0 + 2628: 0ffd bf 0x2622 // 2622 +} + 262a: 783c jmp r15 + 262c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002630 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2630: 203f addi r0, 64 + 2632: 1064 lrw r3, 0x20000050 // 2640 + 2634: 4002 lsli r0, r0, 2 + 2636: 9360 ld.w r3, (r3, 0x0) + 2638: 600c addu r0, r3 + 263a: 9000 ld.w r0, (r0, 0x0) + 263c: 7401 zexth r0, r0 +} + 263e: 783c jmp r15 + 2640: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002644 : + //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 ) +{ + 2644: 14d4 push r4-r7, r15 + 2646: 1422 subi r14, r14, 8 + 2648: 1c08 addi r4, r14, 32 + 264a: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 264c: 2d00 subi r5, 1 +{ + 264e: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2650: 10db lrw r6, 0x20000050 // 26bc +{ + 2652: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2656: 45aa lsli r5, r5, 10 + 2658: 9680 ld.w r4, (r6, 0x0) + 265a: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 265c: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 265e: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2660: 081c bt 0x2698 // 2698 + { + ADC0->MR&=~CONTCV; //one short mode + 2662: 9425 ld.w r1, (r4, 0x14) + 2664: 4121 lsli r1, r1, 1 + 2666: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2668: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 266a: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 266c: 4002 lsli r0, r0, 2 + 266e: 9428 ld.w r1, (r4, 0x20) + 2670: 6840 and r1, r0 + 2672: 3940 cmpnei r1, 0 + 2674: 0bfd bt 0x266e // 266e + 2676: b861 st.w r3, (r14, 0x4) + 2678: b840 st.w r2, (r14, 0x0) + 267a: e3ffff85 bsr 0x2584 // 2584 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 267e: 3f40 cmpnei r7, 0 + 2680: 9840 ld.w r2, (r14, 0x0) + 2682: 9861 ld.w r3, (r14, 0x4) + 2684: 0c16 bf 0x26b0 // 26b0 + { + ADC0->CR|=ADC12_10BITor12BIT; + 2686: 9600 ld.w r0, (r6, 0x0) + 2688: 9024 ld.w r1, (r0, 0x10) + 268a: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 268c: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 268e: 9620 ld.w r1, (r6, 0x0) + 2690: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 2692: b166 st.w r3, (r1, 0x18) +} + 2694: 1402 addi r14, r14, 8 + 2696: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2698: 3941 cmpnei r1, 1 + 269a: 0bee bt 0x2676 // 2676 + ADC0->MR|=CONTCV; //Continuous mode + 269c: 9425 ld.w r1, (r4, 0x14) + 269e: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 26a0: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 26a2: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 26a4: 4002 lsli r0, r0, 2 + 26a6: 9428 ld.w r1, (r4, 0x20) + 26a8: 6840 and r1, r0 + 26aa: 3940 cmpnei r1, 0 + 26ac: 0ffd bf 0x26a6 // 26a6 + 26ae: 07e4 br 0x2676 // 2676 + ADC0->CR&=~ADC12_10BITor12BIT; + 26b0: 9600 ld.w r0, (r6, 0x0) + 26b2: 9024 ld.w r1, (r0, 0x10) + 26b4: 4121 lsli r1, r1, 1 + 26b6: 4921 lsri r1, r1, 1 + 26b8: 07ea br 0x268c // 268c + 26ba: 0000 bkpt + 26bc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +000026c0 : +//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) + 26c0: 3840 cmpnei r0, 0 + 26c2: 0808 bt 0x26d2 // 26d2 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 26c4: 127c lrw r3, 0x20000050 // 2834 + 26c6: 123d lrw r1, 0x103c0 // 2838 + 26c8: 9340 ld.w r2, (r3, 0x0) + 26ca: 9264 ld.w r3, (r2, 0x10) + 26cc: 68c5 andn r3, r1 + 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); + 26ce: b264 st.w r3, (r2, 0x10) + } +} + 26d0: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 26d2: 3841 cmpnei r0, 1 + 26d4: 0810 bt 0x26f4 // 26f4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26d6: 127a lrw r3, 0x2000004c // 283c + 26d8: 32f0 movi r2, 240 + 26da: 9320 ld.w r1, (r3, 0x0) + 26dc: 9160 ld.w r3, (r1, 0x0) + 26de: 4244 lsli r2, r2, 4 + 26e0: 68c9 andn r3, r2 + 26e2: 3bab bseti r3, 11 + 26e4: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 26e6: 1235 lrw r1, 0x103c0 // 2838 + 26e8: 1273 lrw r3, 0x20000050 // 2834 + 26ea: 9340 ld.w r2, (r3, 0x0) + 26ec: 9264 ld.w r3, (r2, 0x10) + 26ee: 68c5 andn r3, r1 + 26f0: 3ba6 bseti r3, 6 + 26f2: 07ee br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 26f4: 3842 cmpnei r0, 2 + 26f6: 0811 bt 0x2718 // 2718 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26f8: 1271 lrw r3, 0x2000004c // 283c + 26fa: 32f0 movi r2, 240 + 26fc: 9320 ld.w r1, (r3, 0x0) + 26fe: 9160 ld.w r3, (r1, 0x0) + 2700: 4244 lsli r2, r2, 4 + 2702: 68c9 andn r3, r2 + 2704: 3bab bseti r3, 11 + 2706: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2708: 122e lrw r1, 0x30103c0 // 2840 + 270a: 126b lrw r3, 0x20000050 // 2834 + 270c: 9340 ld.w r2, (r3, 0x0) + 270e: 9264 ld.w r3, (r2, 0x10) + 2710: 68c5 andn r3, r1 + 2712: 3ba7 bseti r3, 7 + 2714: 3bb8 bseti r3, 24 + 2716: 07dc br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2718: 3843 cmpnei r0, 3 + 271a: 0811 bt 0x273c // 273c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 271c: 1268 lrw r3, 0x2000004c // 283c + 271e: 32f0 movi r2, 240 + 2720: 9320 ld.w r1, (r3, 0x0) + 2722: 9160 ld.w r3, (r1, 0x0) + 2724: 4244 lsli r2, r2, 4 + 2726: 68c9 andn r3, r2 + 2728: 3bab bseti r3, 11 + 272a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 272c: 1225 lrw r1, 0x30103c0 // 2840 + 272e: 1262 lrw r3, 0x20000050 // 2834 + 2730: 9340 ld.w r2, (r3, 0x0) + 2732: 9264 ld.w r3, (r2, 0x10) + 2734: 68c5 andn r3, r1 + 2736: 1224 lrw r1, 0x30000c0 // 2844 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2738: 6cc4 or r3, r1 + 273a: 07ca br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 273c: 3845 cmpnei r0, 5 + 273e: 0809 bt 0x2750 // 2750 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2740: 117d lrw r3, 0x20000050 // 2834 + 2742: 1222 lrw r1, 0x503c0 // 2848 + 2744: 9340 ld.w r2, (r3, 0x0) + 2746: 9264 ld.w r3, (r2, 0x10) + 2748: 68c5 andn r3, r1 + 274a: 3ba8 bseti r3, 8 + 274c: 3bb2 bseti r3, 18 + 274e: 07c0 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2750: 3846 cmpnei r0, 6 + 2752: 0812 bt 0x2776 // 2776 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2754: 117a lrw r3, 0x2000004c // 283c + 2756: 32f0 movi r2, 240 + 2758: 9320 ld.w r1, (r3, 0x0) + 275a: 9160 ld.w r3, (r1, 0x0) + 275c: 4248 lsli r2, r2, 8 + 275e: 68c9 andn r3, r2 + 2760: 32b0 movi r2, 176 + 2762: 4248 lsli r2, r2, 8 + 2764: 6cc8 or r3, r2 + 2766: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2768: 1134 lrw r1, 0x103c0 // 2838 + 276a: 1173 lrw r3, 0x20000050 // 2834 + 276c: 9340 ld.w r2, (r3, 0x0) + 276e: 9264 ld.w r3, (r2, 0x10) + 2770: 68c5 andn r3, r1 + 2772: 3ba9 bseti r3, 9 + 2774: 07ad br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2776: 3847 cmpnei r0, 7 + 2778: 0819 bt 0x27aa // 27aa + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 277a: 1171 lrw r3, 0x2000004c // 283c + 277c: 31f0 movi r1, 240 + 277e: 9340 ld.w r2, (r3, 0x0) + 2780: 9260 ld.w r3, (r2, 0x0) + 2782: 4128 lsli r1, r1, 8 + 2784: 68c5 andn r3, r1 + 2786: 31b0 movi r1, 176 + 2788: 4128 lsli r1, r1, 8 + 278a: 6cc4 or r3, r1 + 278c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 278e: 31f0 movi r1, 240 + 2790: 9260 ld.w r3, (r2, 0x0) + 2792: 4124 lsli r1, r1, 4 + 2794: 68c5 andn r3, r1 + 2796: 3bab bseti r3, 11 + 2798: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 279a: 1128 lrw r1, 0x103c0 // 2838 + 279c: 1166 lrw r3, 0x20000050 // 2834 + 279e: 9340 ld.w r2, (r3, 0x0) + 27a0: 9264 ld.w r3, (r2, 0x10) + 27a2: 68c5 andn r3, r1 + 27a4: 3ba6 bseti r3, 6 + 27a6: 3ba9 bseti r3, 9 + 27a8: 0793 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 27aa: 3848 cmpnei r0, 8 + 27ac: 0818 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ae: 1164 lrw r3, 0x2000004c // 283c + 27b0: 31f0 movi r1, 240 + 27b2: 9340 ld.w r2, (r3, 0x0) + 27b4: 9260 ld.w r3, (r2, 0x0) + 27b6: 4128 lsli r1, r1, 8 + 27b8: 68c5 andn r3, r1 + 27ba: 31b0 movi r1, 176 + 27bc: 4128 lsli r1, r1, 8 + 27be: 6cc4 or r3, r1 + 27c0: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27c2: 31f0 movi r1, 240 + 27c4: 9260 ld.w r3, (r2, 0x0) + 27c6: 4124 lsli r1, r1, 4 + 27c8: 68c5 andn r3, r1 + 27ca: 3bab bseti r3, 11 + 27cc: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 27ce: 103d lrw r1, 0x30103c0 // 2840 + 27d0: 1079 lrw r3, 0x20000050 // 2834 + 27d2: 9340 ld.w r2, (r3, 0x0) + 27d4: 9264 ld.w r3, (r2, 0x10) + 27d6: 68c5 andn r3, r1 + 27d8: 103d lrw r1, 0x1000280 // 284c + 27da: 07af br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 27dc: 3849 cmpnei r0, 9 + 27de: 0818 bt 0x280e // 280e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27e0: 1077 lrw r3, 0x2000004c // 283c + 27e2: 31f0 movi r1, 240 + 27e4: 9340 ld.w r2, (r3, 0x0) + 27e6: 9260 ld.w r3, (r2, 0x0) + 27e8: 4128 lsli r1, r1, 8 + 27ea: 68c5 andn r3, r1 + 27ec: 31b0 movi r1, 176 + 27ee: 4128 lsli r1, r1, 8 + 27f0: 6cc4 or r3, r1 + 27f2: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27f4: 31f0 movi r1, 240 + 27f6: 9260 ld.w r3, (r2, 0x0) + 27f8: 4124 lsli r1, r1, 4 + 27fa: 68c5 andn r3, r1 + 27fc: 3bab bseti r3, 11 + 27fe: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2800: 1030 lrw r1, 0x30103c0 // 2840 + 2802: 106d lrw r3, 0x20000050 // 2834 + 2804: 9340 ld.w r2, (r3, 0x0) + 2806: 9264 ld.w r3, (r2, 0x10) + 2808: 68c5 andn r3, r1 + 280a: 1032 lrw r1, 0x30002c0 // 2850 + 280c: 0796 br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 280e: 384b cmpnei r0, 11 + 2810: 0b60 bt 0x26d0 // 26d0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2812: 106b lrw r3, 0x2000004c // 283c + 2814: 32f0 movi r2, 240 + 2816: 9320 ld.w r1, (r3, 0x0) + 2818: 9160 ld.w r3, (r1, 0x0) + 281a: 4248 lsli r2, r2, 8 + 281c: 68c9 andn r3, r2 + 281e: 32b0 movi r2, 176 + 2820: 4248 lsli r2, r2, 8 + 2822: 6cc8 or r3, r2 + 2824: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2826: 1029 lrw r1, 0x503c0 // 2848 + 2828: 1063 lrw r3, 0x20000050 // 2834 + 282a: 9340 ld.w r2, (r3, 0x0) + 282c: 9264 ld.w r3, (r2, 0x10) + 282e: 68c5 andn r3, r1 + 2830: 1029 lrw r1, 0x40300 // 2854 + 2832: 0783 br 0x2738 // 2738 + 2834: 20000050 .long 0x20000050 + 2838: 000103c0 .long 0x000103c0 + 283c: 2000004c .long 0x2000004c + 2840: 030103c0 .long 0x030103c0 + 2844: 030000c0 .long 0x030000c0 + 2848: 000503c0 .long 0x000503c0 + 284c: 01000280 .long 0x01000280 + 2850: 030002c0 .long 0x030002c0 + 2854: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002858 : +//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) +{ + 2858: 14d4 push r4-r7, r15 + 285a: 1421 subi r14, r14, 4 + 285c: b840 st.w r2, (r14, 0x0) + 285e: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2860: 125b lrw r2, 0x20000050 // 29cc + 2862: 92c0 ld.w r6, (r2, 0x0) + 2864: 3200 movi r2, 0 + 2866: 4202 lsli r0, r2, 2 + 2868: 6018 addu r0, r6 + 286a: 908c ld.w r4, (r0, 0x30) + 286c: 2200 addi r2, 1 + 286e: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2870: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2872: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2874: 0bf9 bt 0x2866 // 2866 + } + switch(ADC12_ADCINX) + 2876: 3d0f cmphsi r5, 16 + 2878: 0825 bt 0x28c2 // 28c2 + 287a: 6c17 mov r0, r5 + 287c: 1255 lrw r2, 0x2000004c // 29d0 + 287e: 1296 lrw r4, 0x20000048 // 29d4 + 2880: e3fff23e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2884: 322c1408 .long 0x322c1408 + 2888: 4d474039 .long 0x4d474039 + 288c: 756d6559 .long 0x756d6559 + 2890: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2894: 9240 ld.w r2, (r2, 0x0) + 2896: 9200 ld.w r0, (r2, 0x0) + 2898: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 289a: 9201 ld.w r0, (r2, 0x4) + 289c: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 289e: 9400 ld.w r0, (r4, 0x0) + 28a0: 9040 ld.w r2, (r0, 0x0) + 28a2: 34f0 movi r4, 240 + 28a4: 6891 andn r2, r4 + 28a6: 3aa4 bseti r2, 4 + 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; + 28a8: b040 st.w r2, (r0, 0x0) + break; + 28aa: 040c br 0x28c2 // 28c2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 28ac: 9200 ld.w r0, (r2, 0x0) + 28ae: 9040 ld.w r2, (r0, 0x0) + 28b0: 370f movi r7, 15 + 28b2: 689d andn r2, r7 + 28b4: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28b6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28b8: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 28ba: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 28bc: 9440 ld.w r2, (r4, 0x0) + 28be: 9200 ld.w r0, (r2, 0x0) + 28c0: b200 st.w r0, (r2, 0x0) + 28c2: 4362 lsli r3, r3, 2 + 28c4: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 28c6: 966c ld.w r3, (r6, 0x30) + 28c8: 3300 movi r3, 0 + 28ca: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 28cc: 9860 ld.w r3, (r14, 0x0) + 28ce: 6c4c or r1, r3 + 28d0: 964c ld.w r2, (r6, 0x30) + 28d2: 6d44 or r5, r1 + 28d4: 6d48 or r5, r2 + 28d6: b6ac st.w r5, (r6, 0x30) +} + 28d8: 1401 addi r14, r14, 4 + 28da: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 28dc: 9200 ld.w r0, (r2, 0x0) + 28de: 9040 ld.w r2, (r0, 0x0) + 28e0: 37f0 movi r7, 240 + 28e2: 689d andn r2, r7 + 28e4: 3aa4 bseti r2, 4 + 28e6: 07e8 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 28e8: 9200 ld.w r0, (r2, 0x0) + 28ea: 37f0 movi r7, 240 + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 47e8 lsli r7, r7, 8 + 28f0: 689d andn r2, r7 + 28f2: 3aac bseti r2, 12 + 28f4: 07e1 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: 37f0 movi r7, 240 + 28fa: 9040 ld.w r2, (r0, 0x0) + 28fc: 47f0 lsli r7, r7, 16 + 28fe: 689d andn r2, r7 + 2900: 3ab4 bseti r2, 20 + 2902: 07da br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2904: 9200 ld.w r0, (r2, 0x0) + 2906: 37f0 movi r7, 240 + 2908: 9040 ld.w r2, (r0, 0x0) + 290a: 47f4 lsli r7, r7, 20 + 290c: 689d andn r2, r7 + 290e: 3ab8 bseti r2, 24 + 2910: 07d3 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2912: 9200 ld.w r0, (r2, 0x0) + 2914: 9040 ld.w r2, (r0, 0x0) + 2916: 4244 lsli r2, r2, 4 + 2918: 4a44 lsri r2, r2, 4 + 291a: 3abc bseti r2, 28 + 291c: 07cd br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 291e: 9240 ld.w r2, (r2, 0x0) + 2920: 9200 ld.w r0, (r2, 0x0) + 2922: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2924: 9201 ld.w r0, (r2, 0x4) + 2926: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2928: 9400 ld.w r0, (r4, 0x0) + 292a: 34f0 movi r4, 240 + 292c: 9040 ld.w r2, (r0, 0x0) + 292e: 4484 lsli r4, r4, 4 + 2930: 6891 andn r2, r4 + 2932: 3aa8 bseti r2, 8 + 2934: 07ba br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2936: 9240 ld.w r2, (r2, 0x0) + 2938: 9200 ld.w r0, (r2, 0x0) + 293a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 293c: 9201 ld.w r0, (r2, 0x4) + 293e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2940: 9400 ld.w r0, (r4, 0x0) + 2942: 34f0 movi r4, 240 + 2944: 9040 ld.w r2, (r0, 0x0) + 2946: 4488 lsli r4, r4, 8 + 2948: 6891 andn r2, r4 + 294a: 3aac bseti r2, 12 + 294c: 07ae br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 294e: 9200 ld.w r0, (r2, 0x0) + 2950: 9040 ld.w r2, (r0, 0x0) + 2952: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 370f movi r7, 15 + 2958: 689d andn r2, r7 + 295a: 3aa0 bseti r2, 0 + 295c: 07af br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 295e: 9200 ld.w r0, (r2, 0x0) + 2960: 9040 ld.w r2, (r0, 0x0) + 2962: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2964: 9041 ld.w r2, (r0, 0x4) + 2966: 37f0 movi r7, 240 + 2968: 689d andn r2, r7 + 296a: 3aa4 bseti r2, 4 + 296c: 07a7 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 296e: 9200 ld.w r0, (r2, 0x0) + 2970: 9040 ld.w r2, (r0, 0x0) + 2972: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2974: 37f0 movi r7, 240 + 2976: 9041 ld.w r2, (r0, 0x4) + 2978: 47e4 lsli r7, r7, 4 + 297a: 689d andn r2, r7 + 297c: 3aa8 bseti r2, 8 + 297e: 079e br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2980: 9200 ld.w r0, (r2, 0x0) + 2982: 9040 ld.w r2, (r0, 0x0) + 2984: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2986: 37f0 movi r7, 240 + 2988: 9041 ld.w r2, (r0, 0x4) + 298a: 47e8 lsli r7, r7, 8 + 298c: 689d andn r2, r7 + 298e: 3aac bseti r2, 12 + 2990: 0795 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2992: 9200 ld.w r0, (r2, 0x0) + 2994: 9040 ld.w r2, (r0, 0x0) + 2996: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2998: 37f0 movi r7, 240 + 299a: 9041 ld.w r2, (r0, 0x4) + 299c: 47ec lsli r7, r7, 12 + 299e: 689d andn r2, r7 + 29a0: 3ab0 bseti r2, 16 + 29a2: 078c br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 29a4: 9200 ld.w r0, (r2, 0x0) + 29a6: 9040 ld.w r2, (r0, 0x0) + 29a8: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 29aa: 37f0 movi r7, 240 + 29ac: 9041 ld.w r2, (r0, 0x4) + 29ae: 47f0 lsli r7, r7, 16 + 29b0: 689d andn r2, r7 + 29b2: 3ab4 bseti r2, 20 + 29b4: 0783 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 29b6: 9240 ld.w r2, (r2, 0x0) + 29b8: 9200 ld.w r0, (r2, 0x0) + 29ba: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29bc: 9201 ld.w r0, (r2, 0x4) + 29be: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 29c0: 9400 ld.w r0, (r4, 0x0) + 29c2: 9040 ld.w r2, (r0, 0x0) + 29c4: 340f movi r4, 15 + 29c6: 6891 andn r2, r4 + 29c8: 3aa0 bseti r2, 0 + 29ca: 076f br 0x28a8 // 28a8 + 29cc: 20000050 .long 0x20000050 + 29d0: 2000004c .long 0x2000004c + 29d4: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +000029d8 : + 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) +{ + 29d8: 14c4 push r4-r7 + 29da: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 29dc: 1165 lrw r3, 0x20000060 // 2a70 + 29de: 1186 lrw r4, 0x5a5a5a5a // 2a74 + 29e0: 9360 ld.w r3, (r3, 0x0) + 29e2: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 29e4: 3407 movi r4, 7 + 29e6: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29e8: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 29ea: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ec: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29ee: 9384 ld.w r4, (r3, 0x10) + 29f0: 3c40 cmpnei r4, 0 + 29f2: 0bfe bt 0x29ee // 29ee + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 29f4: 2102 addi r1, 3 + 29f6: 4922 lsri r1, r1, 2 + 29f8: 4122 lsli r1, r1, 2 + 29fa: 6048 addu r1, r2 + 29fc: b820 st.w r1, (r14, 0x0) + 29fe: 5829 subu r1, r0, r2 + 2a00: b821 st.w r1, (r14, 0x4) + 2a02: 9820 ld.w r1, (r14, 0x0) + 2a04: 644a cmpne r2, r1 + 2a06: 0826 bt 0x2a52 // 2a52 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2a08: 3106 movi r1, 6 + SetUserKey; + 2a0a: 105b lrw r2, 0x5a5a5a5a // 2a74 + 2a0c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2a0e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2a10: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2a12: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a14: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2a16: 9324 ld.w r1, (r3, 0x10) + 2a18: 3940 cmpnei r1, 0 + 2a1a: 0bfe bt 0x2a16 // 2a16 + //Perform pre-programming 4 + SetUserKey; + 2a1c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a1e: 3201 movi r2, 1 + 2a20: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a22: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a24: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2a26: 934a ld.w r2, (r3, 0x28) + 2a28: 3a44 cmpnei r2, 4 + 2a2a: 0bfe bt 0x2a26 // 2a26 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2a2c: 3102 movi r1, 2 + SetUserKey; + 2a2e: 1052 lrw r2, 0x5a5a5a5a // 2a74 + 2a30: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2a32: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a34: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a36: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a38: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a3a: 932a ld.w r1, (r3, 0x28) + 2a3c: 3941 cmpnei r1, 1 + 2a3e: 0bfe bt 0x2a3a // 2a3a + //Write page cache data to flash memory 6 + SetUserKey; + 2a40: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a42: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a44: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a46: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a48: 934a ld.w r2, (r3, 0x28) + 2a4a: 3a42 cmpnei r2, 2 + 2a4c: 0bfe bt 0x2a48 // 2a48 +} + 2a4e: 1402 addi r14, r14, 8 + 2a50: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a52: 82e0 ld.b r7, (r2, 0x0) + 2a54: 8281 ld.b r4, (r2, 0x1) + 2a56: 4488 lsli r4, r4, 8 + 2a58: 8222 ld.b r1, (r2, 0x2) + 2a5a: 611c addu r4, r7 + 2a5c: 82a3 ld.b r5, (r2, 0x3) + 2a5e: 4130 lsli r1, r1, 16 + 2a60: 98c1 ld.w r6, (r14, 0x4) + 2a62: 6050 addu r1, r4 + 2a64: 45b8 lsli r5, r5, 24 + 2a66: 6188 addu r6, r2 + 2a68: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a6a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a6c: 2203 addi r2, 4 + 2a6e: 07ca br 0x2a02 // 2a02 + 2a70: 20000060 .long 0x20000060 + 2a74: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a78 : +//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) +{ + 2a78: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a84: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a86: 3b40 cmpnei r3, 0 + 2a88: 0c06 bf 0x2a94 // 2a94 + 2a8a: 6d0f mov r4, r3 + 2a8c: 6914 and r4, r5 + 2a8e: 3c40 cmpnei r4, 0 + 2a90: 0802 bt 0x2a94 // 2a94 + RdStartAdd +=4; + 2a92: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a94: 6d0f mov r4, r3 + 2a96: 6914 and r4, r5 + 2a98: 6100 addu r4, r0 + 2a9a: 8480 ld.b r4, (r4, 0x0) + 2a9c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002aa4 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2aa4: 33f8 movi r3, 248 + 2aa6: 4366 lsli r3, r3, 6 + 2aa8: 115b lrw r2, 0x2000010c // 2b94 + 2aaa: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2aac: 3246 movi r2, 70 + 2aae: 117b lrw r3, 0x20000112 // 2b98 + 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 + 2ab0: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2ab2: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2ab4: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2ab6: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2ab8: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2aba: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2abc: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2abe: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2ac0: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2ac2: 1157 lrw r2, 0x200002f0 // 2b9c + 2ac4: 8a22 ld.h r1, (r2, 0x4) + 2ac6: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2ac8: 8a23 ld.h r1, (r2, 0x6) + 2aca: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2acc: 8a24 ld.h r1, (r2, 0x8) + 2ace: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2ad0: 8a25 ld.h r1, (r2, 0xa) + 2ad2: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2ad4: 8a26 ld.h r1, (r2, 0xc) + 2ad6: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2ad8: 3146 movi r1, 70 + 2ada: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2adc: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2ade: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae0: 3128 movi r1, 40 + 2ae2: 1170 lrw r3, 0x20000136 // 2ba0 + 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 + 2ae4: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae6: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2ae8: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2aea: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2aec: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2aee: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2af0: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2af2: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2af4: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2af6: 8a27 ld.h r1, (r2, 0xe) + 2af8: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2afa: 8a28 ld.h r1, (r2, 0x10) + 2afc: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2afe: 8a29 ld.h r1, (r2, 0x12) + 2b00: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2b02: 8a2a ld.h r1, (r2, 0x14) + 2b04: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2b06: 8a2b ld.h r1, (r2, 0x16) + 2b08: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2b0a: 3128 movi r1, 40 + 2b0c: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2b0e: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2b10: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2b12: 8220 ld.b r1, (r2, 0x0) + 2b14: 1164 lrw r3, 0x200000dc // 2ba4 + 2b16: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2b18: 8221 ld.b r1, (r2, 0x1) + 2b1a: 1164 lrw r3, 0x200000e4 // 2ba8 + 2b1c: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2b1e: 3101 movi r1, 1 + 2b20: 1163 lrw r3, 0x200000e5 // 2bac + 2b22: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2b24: 3100 movi r1, 0 + 2b26: 1163 lrw r3, 0x20000108 // 2bb0 + 2b28: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2b2a: 3106 movi r1, 6 + 2b2c: 1162 lrw r3, 0x20000110 // 2bb4 + 2b2e: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2b30: 8223 ld.b r1, (r2, 0x3) + 2b32: 1162 lrw r3, 0x20000109 // 2bb8 + 2b34: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b36: 9246 ld.w r2, (r2, 0x18) + 2b38: 1161 lrw r3, 0x200000e0 // 2bbc + 2b3a: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b3c: 1141 lrw r2, 0xea5f // 2bc0 + 2b3e: 1162 lrw r3, 0x2000015c // 2bc4 + 2b40: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b42: 3200 movi r2, 0 + 2b44: 1161 lrw r3, 0x200000dd // 2bc8 + 2b46: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b48: 3202 movi r2, 2 + 2b4a: 1161 lrw r3, 0x200000de // 2bcc + 2b4c: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b4e: 3232 movi r2, 50 + 2b50: 1160 lrw r3, 0x20000134 // 2bd0 + 2b52: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b54: 3200 movi r2, 0 + 2b56: 1160 lrw r3, 0x20000160 // 2bd4 + 2b58: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b5a: 3201 movi r2, 1 + 2b5c: 107f lrw r3, 0x2000015a // 2bd8 + 2b5e: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b60: 3200 movi r2, 0 + 2b62: 107f lrw r3, 0x20000158 // 2bdc + 2b64: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b66: 3204 movi r2, 4 + 2b68: 107e lrw r3, 0x200000e6 // 2be0 + 2b6a: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2b6c: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2b6e: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2b70: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2b72: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2b74: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2b76: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2b78: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2b7a: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2b7c: 3207 movi r2, 7 + 2b7e: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2b80: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2b82: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2b84: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2b86: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2b88: 3204 movi r2, 4 + 2b8a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2b8c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2b8e: ab50 st.h r2, (r3, 0x20) + 2b90: 783c jmp r15 + 2b92: 0000 bkpt + 2b94: 2000010c .long 0x2000010c + 2b98: 20000112 .long 0x20000112 + 2b9c: 200002f0 .long 0x200002f0 + 2ba0: 20000136 .long 0x20000136 + 2ba4: 200000dc .long 0x200000dc + 2ba8: 200000e4 .long 0x200000e4 + 2bac: 200000e5 .long 0x200000e5 + 2bb0: 20000108 .long 0x20000108 + 2bb4: 20000110 .long 0x20000110 + 2bb8: 20000109 .long 0x20000109 + 2bbc: 200000e0 .long 0x200000e0 + 2bc0: 0000ea5f .long 0x0000ea5f + 2bc4: 2000015c .long 0x2000015c + 2bc8: 200000dd .long 0x200000dd + 2bcc: 200000de .long 0x200000de + 2bd0: 20000134 .long 0x20000134 + 2bd4: 20000160 .long 0x20000160 + 2bd8: 2000015a .long 0x2000015a + 2bdc: 20000158 .long 0x20000158 + 2be0: 200000e6 .long 0x200000e6 + +Disassembly of section .text.CORET_DeInit: + +00002be4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2be4: 1065 lrw r3, 0x20000064 // 2bf8 + 2be6: 3204 movi r2, 4 + 2be8: 9360 ld.w r3, (r3, 0x0) + 2bea: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2bec: 3200 movi r2, 0 + 2bee: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2bf0: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2bf2: b347 st.w r2, (r3, 0x1c) +} + 2bf4: 783c jmp r15 + 2bf6: 0000 bkpt + 2bf8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002bfc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2bfc: 1064 lrw r3, 0x20000064 // 2c0c + 2bfe: 3200 movi r2, 0 + 2c00: 9360 ld.w r3, (r3, 0x0) + 2c02: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2c04: 3201 movi r2, 1 + 2c06: 1063 lrw r3, 0xe000e100 // 2c10 + 2c08: b340 st.w r2, (r3, 0x0) +} + 2c0a: 783c jmp r15 + 2c0c: 20000064 .long 0x20000064 + 2c10: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002c14 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2c14: 1063 lrw r3, 0x20000064 // 2c20 + 2c16: 9340 ld.w r2, (r3, 0x0) + 2c18: 9264 ld.w r3, (r2, 0x10) + 2c1a: 3ba0 bseti r3, 0 + 2c1c: b264 st.w r3, (r2, 0x10) +} + 2c1e: 783c jmp r15 + 2c20: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002c24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2c24: 1063 lrw r3, 0x20000064 // 2c30 + 2c26: 9340 ld.w r2, (r3, 0x0) + 2c28: 9264 ld.w r3, (r2, 0x10) + 2c2a: 3b82 bclri r3, 2 + 2c2c: b264 st.w r3, (r2, 0x10) +} + 2c2e: 783c jmp r15 + 2c30: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c34: 1063 lrw r3, 0x20000064 // 2c40 + 2c36: 9340 ld.w r2, (r3, 0x0) + 2c38: 9264 ld.w r3, (r2, 0x10) + 2c3a: 3ba1 bseti r3, 1 + 2c3c: b264 st.w r3, (r2, 0x10) +} + 2c3e: 783c jmp r15 + 2c40: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c44 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c44: 1063 lrw r3, 0x20000064 // 2c50 + 2c46: 3200 movi r2, 0 + 2c48: 9360 ld.w r3, (r3, 0x0) + 2c4a: b346 st.w r2, (r3, 0x18) +} + 2c4c: 783c jmp r15 + 2c4e: 0000 bkpt + 2c50: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c54
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c54: 14d1 push r4, r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2c56: e00000ef bsr 0x2e34 // 2e34 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c5a: 1077 lrw r3, 0x20000350 // 2cb4 + 2c5c: 8340 ld.b r2, (r3, 0x0) + 2c5e: 1037 lrw r1, 0x7ae4 // 2cb8 + 2c60: 3000 movi r0, 0 + 2c62: e0000773 bsr 0x3b48 // 3b48 + + TemCtrl_Init(); + 2c66: e00011d3 bsr 0x500c // 500c + DisPlay_Init(); + 2c6a: e00016b1 bsr 0x59cc // 59cc + Debug_Init(); + 2c6e: e000183f bsr 0x5cec // 5cec + RF_Info_Init(); + 2c72: e00018f9 bsr 0x5e64 // 5e64 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + + if (detect_inf.stop_detect == 0x00) { + 2c76: 1092 lrw r4, 0x200003cc // 2cbc + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c78: e3fff7f6 bsr 0x1c64 // 1c64 + if (detect_inf.stop_detect == 0x00) { + 2c7c: 8462 ld.b r3, (r4, 0x2) + 2c7e: 3b40 cmpnei r3, 0 + 2c80: 0804 bt 0x2c88 // 2c88 + Control_Mode_Detection(); + 2c82: e000116b bsr 0x4f58 // 4f58 + 2c86: 07f9 br 0x2c78 // 2c78 + }else { + + UART2_TASK(); + 2c88: e00006ce bsr 0x3a24 // 3a24 + + Touch_Key_Task(); + 2c8c: e00008d0 bsr 0x3e2c // 3e2c + + TemCtrl_Pro(); + 2c90: e000136c bsr 0x5368 // 5368 + + DisPlay_Task(); + 2c94: e00016ac bsr 0x59ec // 59ec + + HT1621_Refresh_Task(); + 2c98: e000111a bsr 0x4ecc // 4ecc + + ADC_Sample_Task(); + 2c9c: e0000e12 bsr 0x48c0 // 48c0 + + Debug_Task(); + 2ca0: e0001878 bsr 0x5d90 // 5d90 + + if (detect_inf.control_model != 0x00){ + 2ca4: 8463 ld.b r3, (r4, 0x3) + 2ca6: 3b40 cmpnei r3, 0 + 2ca8: 0fe8 bf 0x2c78 // 2c78 + + TemFun_Report_Task(); + 2caa: e0001acd bsr 0x6244 // 6244 + zigbee_uart_service(); + 2cae: e0001a67 bsr 0x617c // 617c + 2cb2: 07e3 br 0x2c78 // 2c78 + 2cb4: 20000350 .long 0x20000350 + 2cb8: 00007ae4 .long 0x00007ae4 + 2cbc: 200003cc .long 0x200003cc + +Disassembly of section .text.delay_nms: + +00002cc0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2cc0: 14d0 push r15 + 2cc2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2cc4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2cc6: 3300 movi r3, 0 + j = 50* t; + 2cc8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2cca: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2ccc: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cce: b860 st.w r3, (r14, 0x0) + 2cd0: 9840 ld.w r2, (r14, 0x0) + 2cd2: 9861 ld.w r3, (r14, 0x4) + 2cd4: 64c8 cmphs r2, r3 + 2cd6: 0c03 bf 0x2cdc // 2cdc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2cd8: 1403 addi r14, r14, 12 + 2cda: 1490 pop r15 + k++; + 2cdc: 9862 ld.w r3, (r14, 0x8) + 2cde: 2300 addi r3, 1 + 2ce0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2ce2: e3fff7c1 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2ce6: 9860 ld.w r3, (r14, 0x0) + 2ce8: 2300 addi r3, 1 + 2cea: 07f2 br 0x2cce // 2cce + +Disassembly of section .text.delay_nus: + +00002cec : +void delay_nus(unsigned int t) +{ + 2cec: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2cee: 3300 movi r3, 0 + 2cf0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2cf2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cf4: b860 st.w r3, (r14, 0x0) + 2cf6: 9840 ld.w r2, (r14, 0x0) + 2cf8: 9861 ld.w r3, (r14, 0x4) + 2cfa: 64c8 cmphs r2, r3 + 2cfc: 0c03 bf 0x2d02 // 2d02 + { + k++; + } +} + 2cfe: 1403 addi r14, r14, 12 + 2d00: 783c jmp r15 + k++; + 2d02: 9862 ld.w r3, (r14, 0x8) + 2d04: 2300 addi r3, 1 + 2d06: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2d08: 9860 ld.w r3, (r14, 0x0) + 2d0a: 2300 addi r3, 1 + 2d0c: 07f4 br 0x2cf4 // 2cf4 + +Disassembly of section .text.EPT0_CONFIG: + +00002d10 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2d10: 14d1 push r4, r15 + 2d12: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2d14: e3fffa14 bsr 0x213c // 213c +//------------ 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_PB00); //CX channel selection + 2d18: 311d movi r1, 29 + 2d1a: 3004 movi r0, 4 + 2d1c: e3fffa48 bsr 0x21ac // 21ac + //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) + 2d20: 3300 movi r3, 0 + 2d22: 3200 movi r2, 0 + 2d24: 3100 movi r1, 0 + 2d26: 3000 movi r0, 0 + 2d28: e3fffb5e bsr 0x23e4 // 23e4 +// 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, + 2d2c: 3380 movi r3, 128 + 2d2e: 3400 movi r4, 0 + 2d30: b862 st.w r3, (r14, 0x8) + 2d32: 3280 movi r2, 128 + 2d34: 3320 movi r3, 32 + 2d36: 3180 movi r1, 128 + 2d38: b861 st.w r3, (r14, 0x4) + 2d3a: 4250 lsli r2, r2, 16 + 2d3c: 412e lsli r1, r1, 14 + 2d3e: b888 st.w r4, (r14, 0x20) + 2d40: b887 st.w r4, (r14, 0x1c) + 2d42: b886 st.w r4, (r14, 0x18) + 2d44: b885 st.w r4, (r14, 0x14) + 2d46: b884 st.w r4, (r14, 0x10) + 2d48: b883 st.w r4, (r14, 0xc) + 2d4a: b880 st.w r4, (r14, 0x0) + 2d4c: 3301 movi r3, 1 + 2d4e: 3002 movi r0, 2 + 2d50: e3fffb66 bsr 0x241c // 241c +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2d54: 1066 lrw r3, 0xbb8 // 2d6c + 2d56: 3200 movi r2, 0 + 2d58: 3100 movi r1, 0 + 2d5a: 6c0f mov r0, r3 + 2d5c: b880 st.w r4, (r14, 0x0) + 2d5e: e3fffbcb bsr 0x24f4 // 24f4 + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2d62: e3fff9fd bsr 0x215c // 215c + +} + 2d66: 1409 addi r14, r14, 36 + 2d68: 1491 pop r4, r15 + 2d6a: 0000 bkpt + 2d6c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002d70 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2d70: 14d2 push r4-r5, r15 + 2d72: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2d74: 1095 lrw r4, 0x20000008 // 2dc8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d76: 3500 movi r5, 0 + BT_DeInit(BT1); + 2d78: 9400 ld.w r0, (r4, 0x0) + 2d7a: e3fff8bd bsr 0x1ef4 // 1ef4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d7e: 9400 ld.w r0, (r4, 0x0) + 2d80: b8a1 st.w r5, (r14, 0x4) + 2d82: b8a0 st.w r5, (r14, 0x0) + 2d84: 3308 movi r3, 8 + 2d86: 3200 movi r2, 0 + 2d88: 3101 movi r1, 1 + 2d8a: e3fff8cc 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); + 2d8e: 3380 movi r3, 128 + 2d90: 4363 lsli r3, r3, 3 + 2d92: b861 st.w r3, (r14, 0x4) + 2d94: 9400 ld.w r0, (r4, 0x0) + 2d96: 3300 movi r3, 0 + 2d98: b8a3 st.w r5, (r14, 0xc) + 2d9a: b8a2 st.w r5, (r14, 0x8) + 2d9c: b8a0 st.w r5, (r14, 0x0) + 2d9e: 3200 movi r2, 0 + 2da0: 3180 movi r1, 128 + 2da2: e3fff8cc bsr 0x1f3a // 1f3a + BT_Period_CMP_Write(BT1,4780,1); + 2da6: 3201 movi r2, 1 + 2da8: 1029 lrw r1, 0x12ac // 2dcc + 2daa: 9400 ld.w r0, (r4, 0x0) + 2dac: e3fff8dd bsr 0x1f66 // 1f66 + BT_Start(BT1); + 2db0: 9400 ld.w r0, (r4, 0x0) + 2db2: e3fff8af bsr 0x1f10 // 1f10 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2db6: 9400 ld.w r0, (r4, 0x0) + 2db8: 3202 movi r2, 2 + 2dba: 3101 movi r1, 1 + 2dbc: e3fff8d8 bsr 0x1f6c // 1f6c + BT1_INT_ENABLE(); + 2dc0: e3fff8e0 bsr 0x1f80 // 1f80 + +} + 2dc4: 1404 addi r14, r14, 16 + 2dc6: 1492 pop r4-r5, r15 + 2dc8: 20000008 .long 0x20000008 + 2dcc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002dd0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2dd0: 14d0 push r15 + 2dd2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2dd4: e3fff694 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2dd8: 3101 movi r1, 1 + 2dda: 3001 movi r0, 1 + 2ddc: e3fff6b6 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 + 2de0: 3000 movi r0, 0 + 2de2: e3fff70f 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 + 2de6: 3180 movi r1, 128 + 2de8: 3308 movi r3, 8 + 2dea: 3200 movi r2, 0 + 2dec: 4121 lsli r1, r1, 1 + 2dee: 3002 movi r0, 2 + 2df0: e3fff6c4 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2df4: 30c0 movi r0, 192 + 2df6: 3118 movi r1, 24 + 2df8: 4002 lsli r0, r0, 2 + 2dfa: e3fff73f bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2dfe: 3001 movi r0, 1 + 2e00: e3fff714 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2e04: e3fff730 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2e08: e3fff762 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 + 2e0c: 3340 movi r3, 64 + 2e0e: b860 st.w r3, (r14, 0x0) + 2e10: 31c0 movi r1, 192 + 2e12: 3380 movi r3, 128 + 2e14: 4364 lsli r3, r3, 4 + 2e16: 3200 movi r2, 0 + 2e18: 4123 lsli r1, r1, 3 + 2e1a: 3000 movi r0, 0 + 2e1c: e3fff73a bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2e20: e3fff748 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2e24: e3fff782 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 + 2e28: 3000 movi r0, 0 + 2e2a: e00022bf bsr 0x73a8 // 73a8 + +} + 2e2e: 1401 addi r14, r14, 4 + 2e30: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002e34 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2e34: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e36: 107d lrw r3, 0x2000005c // 2ea8 + Sys_RSR = 0x00000000; + 2e38: 105d lrw r2, 0x200000a8 // 2eac + 2e3a: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e3c: 9360 ld.w r3, (r3, 0x0) + 2e3e: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2e40: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e42: 600c addu r0, r3 + 2e44: 9004 ld.w r0, (r0, 0x10) + 2e46: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2e48: 105a lrw r2, 0x200000a4 // 2eb0 + 2e4a: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2e4c: 3180 movi r1, 128 + 2e4e: 4121 lsli r1, r1, 1 + 2e50: 604c addu r1, r3 + 2e52: 9120 ld.w r1, (r1, 0x0) + 2e54: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2e56: 1058 lrw r2, 0xfffffff // 2eb4 + 2e58: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5a: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2e5c: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5e: 934c ld.w r2, (r3, 0x30) + 2e60: 6884 and r2, r1 + 2e62: 3a40 cmpnei r2, 0 + 2e64: 0ffd bf 0x2e5e // 2e5e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2e66: e3ffffb5 bsr 0x2dd0 // 2dd0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2e6a: e0000521 bsr 0x38ac // 38ac + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2e6e: e3fff763 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2e72: 3101 movi r1, 1 + 2e74: 300f movi r0, 15 + 2e76: e3fff771 bsr 0x1d58 // 1d58 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2e7a: 3102 movi r1, 2 + 2e7c: 3019 movi r0, 25 + 2e7e: e3fff76d bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2e82: e0001a49 bsr 0x6314 // 6314 + + EPT0_CONFIG(); + 2e86: e3ffff45 bsr 0x2d10 // 2d10 + + BT_CONFIG(); //BT initial + 2e8a: e3ffff73 bsr 0x2d70 // 2d70 + + MODEL_Ctrl_Init(); + 2e8e: e000104f bsr 0x4f2c // 4f2c + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2e92: 102a lrw r1, 0x67a4 // 2eb8 + 2e94: 3002 movi r0, 2 + 2e96: e000050f bsr 0x38b4 // 38b4 + + HT1621_Init(); //显示驱动初始化 + 2e9a: e0000daf bsr 0x49f8 // 49f8 + + Touch_Key_Init(); + 2e9e: e000065d bsr 0x3b58 // 3b58 + + ADC_Init(); + 2ea2: e0000c5d bsr 0x475c // 475c + +} + 2ea6: 1490 pop r15 + 2ea8: 2000005c .long 0x2000005c + 2eac: 200000a8 .long 0x200000a8 + 2eb0: 200000a4 .long 0x200000a4 + 2eb4: 0fffffff .long 0x0fffffff + 2eb8: 000067a4 .long 0x000067a4 + +Disassembly of section .text.SYSCONIntHandler: + +00002ebc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2ebc: 1460 nie + 2ebe: 1462 ipush + // ISR content ... + nop; + 2ec0: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2ec2: 117a lrw r3, 0x2000005c // 2fa8 + 2ec4: 3280 movi r2, 128 + 2ec6: 9360 ld.w r3, (r3, 0x0) + 2ec8: 60c8 addu r3, r2 + 2eca: 9323 ld.w r1, (r3, 0xc) + 2ecc: 3001 movi r0, 1 + 2ece: 6840 and r1, r0 + 2ed0: 3940 cmpnei r1, 0 + 2ed2: 0c04 bf 0x2eda // 2eda + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2ed4: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2ed6: 1463 ipop + 2ed8: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2eda: 9323 ld.w r1, (r3, 0xc) + 2edc: 3002 movi r0, 2 + 2ede: 6840 and r1, r0 + 2ee0: 3940 cmpnei r1, 0 + 2ee2: 0bf9 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2ee4: 9323 ld.w r1, (r3, 0xc) + 2ee6: 3008 movi r0, 8 + 2ee8: 6840 and r1, r0 + 2eea: 3940 cmpnei r1, 0 + 2eec: 0bf4 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2eee: 9323 ld.w r1, (r3, 0xc) + 2ef0: 3010 movi r0, 16 + 2ef2: 6840 and r1, r0 + 2ef4: 3940 cmpnei r1, 0 + 2ef6: 0bef bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2ef8: 9323 ld.w r1, (r3, 0xc) + 2efa: 6848 and r1, r2 + 2efc: 3940 cmpnei r1, 0 + 2efe: 0c03 bf 0x2f04 // 2f04 + SYSCON->ICR = CMD_ERR_ST; + 2f00: b341 st.w r2, (r3, 0x4) +} + 2f02: 07ea br 0x2ed6 // 2ed6 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2f04: 3280 movi r2, 128 + 2f06: 9323 ld.w r1, (r3, 0xc) + 2f08: 4241 lsli r2, r2, 1 + 2f0a: 6848 and r1, r2 + 2f0c: 3940 cmpnei r1, 0 + 2f0e: 0bf9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2f10: 3280 movi r2, 128 + 2f12: 9323 ld.w r1, (r3, 0xc) + 2f14: 4242 lsli r2, r2, 2 + 2f16: 6848 and r1, r2 + 2f18: 3940 cmpnei r1, 0 + 2f1a: 0bf3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2f1c: 3280 movi r2, 128 + 2f1e: 9323 ld.w r1, (r3, 0xc) + 2f20: 4243 lsli r2, r2, 3 + 2f22: 6848 and r1, r2 + 2f24: 3940 cmpnei r1, 0 + 2f26: 0bed bt 0x2f00 // 2f00 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2f28: 3280 movi r2, 128 + 2f2a: 9323 ld.w r1, (r3, 0xc) + 2f2c: 4244 lsli r2, r2, 4 + 2f2e: 6848 and r1, r2 + 2f30: 3940 cmpnei r1, 0 + 2f32: 0c03 bf 0x2f38 // 2f38 + nop; + 2f34: 6c03 mov r0, r0 + 2f36: 07e5 br 0x2f00 // 2f00 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2f38: 3280 movi r2, 128 + 2f3a: 9323 ld.w r1, (r3, 0xc) + 2f3c: 4245 lsli r2, r2, 5 + 2f3e: 6848 and r1, r2 + 2f40: 3940 cmpnei r1, 0 + 2f42: 0bdf bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2f44: 3280 movi r2, 128 + 2f46: 9323 ld.w r1, (r3, 0xc) + 2f48: 4246 lsli r2, r2, 6 + 2f4a: 6848 and r1, r2 + 2f4c: 3940 cmpnei r1, 0 + 2f4e: 0bd9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2f50: 3280 movi r2, 128 + 2f52: 9323 ld.w r1, (r3, 0xc) + 2f54: 4247 lsli r2, r2, 7 + 2f56: 6848 and r1, r2 + 2f58: 3940 cmpnei r1, 0 + 2f5a: 0bd3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2f5c: 3280 movi r2, 128 + 2f5e: 9323 ld.w r1, (r3, 0xc) + 2f60: 424b lsli r2, r2, 11 + 2f62: 6848 and r1, r2 + 2f64: 3940 cmpnei r1, 0 + 2f66: 0bcd bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2f68: 3280 movi r2, 128 + 2f6a: 9323 ld.w r1, (r3, 0xc) + 2f6c: 424c lsli r2, r2, 12 + 2f6e: 6848 and r1, r2 + 2f70: 3940 cmpnei r1, 0 + 2f72: 0bc7 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2f74: 3280 movi r2, 128 + 2f76: 9323 ld.w r1, (r3, 0xc) + 2f78: 424d lsli r2, r2, 13 + 2f7a: 6848 and r1, r2 + 2f7c: 3940 cmpnei r1, 0 + 2f7e: 0bc1 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2f80: 3280 movi r2, 128 + 2f82: 9323 ld.w r1, (r3, 0xc) + 2f84: 424e lsli r2, r2, 14 + 2f86: 6848 and r1, r2 + 2f88: 3940 cmpnei r1, 0 + 2f8a: 0bbb bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2f8c: 3280 movi r2, 128 + 2f8e: 9323 ld.w r1, (r3, 0xc) + 2f90: 424f lsli r2, r2, 15 + 2f92: 6848 and r1, r2 + 2f94: 3940 cmpnei r1, 0 + 2f96: 0bb5 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2f98: 3280 movi r2, 128 + 2f9a: 9323 ld.w r1, (r3, 0xc) + 2f9c: 4256 lsli r2, r2, 22 + 2f9e: 6848 and r1, r2 + 2fa0: 3940 cmpnei r1, 0 + 2fa2: 0baf bt 0x2f00 // 2f00 + 2fa4: 0799 br 0x2ed6 // 2ed6 + 2fa6: 0000 bkpt + 2fa8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002fac : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2fac: 1460 nie + 2fae: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2fb0: 1078 lrw r3, 0x20000060 // 3010 + 2fb2: 3101 movi r1, 1 + 2fb4: 9360 ld.w r3, (r3, 0x0) + 2fb6: 934b ld.w r2, (r3, 0x2c) + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0c04 bf 0x2fc4 // 2fc4 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2fbe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2fc0: 1463 ipop + 2fc2: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2fc4: 934b ld.w r2, (r3, 0x2c) + 2fc6: 3102 movi r1, 2 + 2fc8: 6884 and r2, r1 + 2fca: 3a40 cmpnei r2, 0 + 2fcc: 0bf9 bt 0x2fbe // 2fbe + else if(IFC->MISR&PEP_END_INT) + 2fce: 934b ld.w r2, (r3, 0x2c) + 2fd0: 3104 movi r1, 4 + 2fd2: 6884 and r2, r1 + 2fd4: 3a40 cmpnei r2, 0 + 2fd6: 0bf4 bt 0x2fbe // 2fbe + else if(IFC->MISR&PROT_ERR_INT) + 2fd8: 3280 movi r2, 128 + 2fda: 932b ld.w r1, (r3, 0x2c) + 2fdc: 4245 lsli r2, r2, 5 + 2fde: 6848 and r1, r2 + 2fe0: 3940 cmpnei r1, 0 + 2fe2: 0c03 bf 0x2fe8 // 2fe8 + IFC->ICR=OVW_ERR_INT; + 2fe4: b34c st.w r2, (r3, 0x30) +} + 2fe6: 07ed br 0x2fc0 // 2fc0 + else if(IFC->MISR&UDEF_ERR_INT) + 2fe8: 3280 movi r2, 128 + 2fea: 932b ld.w r1, (r3, 0x2c) + 2fec: 4246 lsli r2, r2, 6 + 2fee: 6848 and r1, r2 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0bf9 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&ADDR_ERR_INT) + 2ff4: 3280 movi r2, 128 + 2ff6: 932b ld.w r1, (r3, 0x2c) + 2ff8: 4247 lsli r2, r2, 7 + 2ffa: 6848 and r1, r2 + 2ffc: 3940 cmpnei r1, 0 + 2ffe: 0bf3 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&OVW_ERR_INT) + 3000: 3280 movi r2, 128 + 3002: 932b ld.w r1, (r3, 0x2c) + 3004: 4248 lsli r2, r2, 8 + 3006: 6848 and r1, r2 + 3008: 3940 cmpnei r1, 0 + 300a: 0bed bt 0x2fe4 // 2fe4 + 300c: 07da br 0x2fc0 // 2fc0 + 300e: 0000 bkpt + 3010: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003014 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3014: 1460 nie + 3016: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3018: 1078 lrw r3, 0x20000050 // 3078 + 301a: 3101 movi r1, 1 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9348 ld.w r2, (r3, 0x20) + 3020: 6884 and r2, r1 + 3022: 3a40 cmpnei r2, 0 + 3024: 0c04 bf 0x302c // 302c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3026: 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; + } +} + 3028: 1463 ipop + 302a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 302c: 9348 ld.w r2, (r3, 0x20) + 302e: 3102 movi r1, 2 + 3030: 6884 and r2, r1 + 3032: 3a40 cmpnei r2, 0 + 3034: 0bf9 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3036: 9348 ld.w r2, (r3, 0x20) + 3038: 3104 movi r1, 4 + 303a: 6884 and r2, r1 + 303c: 3a40 cmpnei r2, 0 + 303e: 0bf4 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3040: 9348 ld.w r2, (r3, 0x20) + 3042: 3110 movi r1, 16 + 3044: 6884 and r2, r1 + 3046: 3a40 cmpnei r2, 0 + 3048: 0bef bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 304a: 9348 ld.w r2, (r3, 0x20) + 304c: 3120 movi r1, 32 + 304e: 6884 and r2, r1 + 3050: 3a40 cmpnei r2, 0 + 3052: 0bea bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3054: 9348 ld.w r2, (r3, 0x20) + 3056: 3140 movi r1, 64 + 3058: 6884 and r2, r1 + 305a: 3a40 cmpnei r2, 0 + 305c: 0be5 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 305e: 9348 ld.w r2, (r3, 0x20) + 3060: 3180 movi r1, 128 + 3062: 6884 and r2, r1 + 3064: 3a40 cmpnei r2, 0 + 3066: 0be0 bt 0x3026 // 3026 + 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 + 3068: 3280 movi r2, 128 + 306a: 9328 ld.w r1, (r3, 0x20) + 306c: 4249 lsli r2, r2, 9 + 306e: 6848 and r1, r2 + 3070: 3940 cmpnei r1, 0 + 3072: 0fdb bf 0x3028 // 3028 + ADC0->CSR = ADC12_SEQ_END0; + 3074: b347 st.w r2, (r3, 0x1c) +} + 3076: 07d9 br 0x3028 // 3028 + 3078: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +0000307c : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 307c: 1460 nie + 307e: 1462 ipush + 3080: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3082: 1387 lrw r4, 0x20000020 // 321c + 3084: 3280 movi r2, 128 + 3086: 9460 ld.w r3, (r4, 0x0) + 3088: 60c8 addu r3, r2 + 308a: 9335 ld.w r1, (r3, 0x54) + 308c: 3001 movi r0, 1 + 308e: 6840 and r1, r0 + 3090: 3940 cmpnei r1, 0 + 3092: 0c03 bf 0x3098 // 3098 + 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; + 3094: b317 st.w r0, (r3, 0x5c) + 3096: 0424 br 0x30de // 30de + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3098: 9335 ld.w r1, (r3, 0x54) + 309a: 3002 movi r0, 2 + 309c: 6840 and r1, r0 + 309e: 3940 cmpnei r1, 0 + 30a0: 0bfa bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 30a2: 9335 ld.w r1, (r3, 0x54) + 30a4: 3004 movi r0, 4 + 30a6: 6840 and r1, r0 + 30a8: 3940 cmpnei r1, 0 + 30aa: 0bf5 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 30ac: 9335 ld.w r1, (r3, 0x54) + 30ae: 3008 movi r0, 8 + 30b0: 6840 and r1, r0 + 30b2: 3940 cmpnei r1, 0 + 30b4: 0bf0 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 30b6: 9335 ld.w r1, (r3, 0x54) + 30b8: 3010 movi r0, 16 + 30ba: 6840 and r1, r0 + 30bc: 3940 cmpnei r1, 0 + 30be: 0c1f bf 0x30fc // 30fc + EPT0->ICR=EPT_CAP_LD0; + 30c0: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 30c2: 3200 movi r2, 0 + 30c4: 3101 movi r1, 1 + 30c6: 3000 movi r0, 0 + 30c8: e3fff610 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 30cc: 3201 movi r2, 1 + 30ce: 3101 movi r1, 1 + 30d0: 3001 movi r0, 1 + 30d2: e3fff60b bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 30d6: 9460 ld.w r3, (r4, 0x0) + 30d8: 934b ld.w r2, (r3, 0x2c) + 30da: 1272 lrw r3, 0x20000168 // 3220 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 30dc: 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 + 30de: 9460 ld.w r3, (r4, 0x0) + 30e0: 3280 movi r2, 128 + 30e2: 60c8 addu r3, r2 + 30e4: 932b ld.w r1, (r3, 0x2c) + 30e6: 3001 movi r0, 1 + 30e8: 6840 and r1, r0 + 30ea: 3940 cmpnei r1, 0 + 30ec: 0c61 bf 0x31ae // 31ae + { + 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; + 30ee: 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; + } +} + 30f0: d9ee2001 ld.w r15, (r14, 0x4) + 30f4: 9880 ld.w r4, (r14, 0x0) + 30f6: 1402 addi r14, r14, 8 + 30f8: 1463 ipop + 30fa: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 30fc: 9335 ld.w r1, (r3, 0x54) + 30fe: 3020 movi r0, 32 + 3100: 6840 and r1, r0 + 3102: 3940 cmpnei r1, 0 + 3104: 0c10 bf 0x3124 // 3124 + EPT0->ICR=EPT_CAP_LD1; + 3106: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3108: 3200 movi r2, 0 + 310a: 3101 movi r1, 1 + 310c: 3001 movi r0, 1 + 310e: e3fff5ed bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3112: 3201 movi r2, 1 + 3114: 3101 movi r1, 1 + 3116: 3000 movi r0, 0 + 3118: e3fff5e8 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 311c: 9460 ld.w r3, (r4, 0x0) + 311e: 934c ld.w r2, (r3, 0x30) + 3120: 1261 lrw r3, 0x20000164 // 3224 + 3122: 07dd br 0x30dc // 30dc + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3124: 9335 ld.w r1, (r3, 0x54) + 3126: 3040 movi r0, 64 + 3128: 6840 and r1, r0 + 312a: 3940 cmpnei r1, 0 + 312c: 0bb4 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 312e: 9335 ld.w r1, (r3, 0x54) + 3130: 6848 and r1, r2 + 3132: 3940 cmpnei r1, 0 + 3134: 0c03 bf 0x313a // 313a + EPT0->ICR=EPT_CDD; + 3136: b357 st.w r2, (r3, 0x5c) + 3138: 07d3 br 0x30de // 30de + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 313a: 3280 movi r2, 128 + 313c: 9335 ld.w r1, (r3, 0x54) + 313e: 4241 lsli r2, r2, 1 + 3140: 6848 and r1, r2 + 3142: 3940 cmpnei r1, 0 + 3144: 0bf9 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3146: 3280 movi r2, 128 + 3148: 9335 ld.w r1, (r3, 0x54) + 314a: 4242 lsli r2, r2, 2 + 314c: 6848 and r1, r2 + 314e: 3940 cmpnei r1, 0 + 3150: 0bf3 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3152: 3280 movi r2, 128 + 3154: 9335 ld.w r1, (r3, 0x54) + 3156: 4243 lsli r2, r2, 3 + 3158: 6848 and r1, r2 + 315a: 3940 cmpnei r1, 0 + 315c: 0bed bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 315e: 3280 movi r2, 128 + 3160: 9335 ld.w r1, (r3, 0x54) + 3162: 4244 lsli r2, r2, 4 + 3164: 6848 and r1, r2 + 3166: 3940 cmpnei r1, 0 + 3168: 0be7 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 316a: 3280 movi r2, 128 + 316c: 9335 ld.w r1, (r3, 0x54) + 316e: 4245 lsli r2, r2, 5 + 3170: 6848 and r1, r2 + 3172: 3940 cmpnei r1, 0 + 3174: 0be1 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3176: 3280 movi r2, 128 + 3178: 9335 ld.w r1, (r3, 0x54) + 317a: 4246 lsli r2, r2, 6 + 317c: 6848 and r1, r2 + 317e: 3940 cmpnei r1, 0 + 3180: 0bdb bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3182: 3280 movi r2, 128 + 3184: 9335 ld.w r1, (r3, 0x54) + 3186: 4247 lsli r2, r2, 7 + 3188: 6848 and r1, r2 + 318a: 3940 cmpnei r1, 0 + 318c: 0bd5 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 318e: 3280 movi r2, 128 + 3190: 9335 ld.w r1, (r3, 0x54) + 3192: 4248 lsli r2, r2, 8 + 3194: 6848 and r1, r2 + 3196: 3940 cmpnei r1, 0 + 3198: 0bcf bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 319a: 3280 movi r2, 128 + 319c: 9335 ld.w r1, (r3, 0x54) + 319e: 4249 lsli r2, r2, 9 + 31a0: 6848 and r1, r2 + 31a2: 3940 cmpnei r1, 0 + 31a4: 0f9d bf 0x30de // 30de + EPT0->ICR=EPT_PEND; + 31a6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 31a8: e3fff7ee bsr 0x2184 // 2184 + 31ac: 0799 br 0x30de // 30de + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 31ae: 932b ld.w r1, (r3, 0x2c) + 31b0: 3002 movi r0, 2 + 31b2: 6840 and r1, r0 + 31b4: 3940 cmpnei r1, 0 + 31b6: 0b9c bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 31b8: 932b ld.w r1, (r3, 0x2c) + 31ba: 3004 movi r0, 4 + 31bc: 6840 and r1, r0 + 31be: 3940 cmpnei r1, 0 + 31c0: 0b97 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 31c2: 932b ld.w r1, (r3, 0x2c) + 31c4: 3008 movi r0, 8 + 31c6: 6840 and r1, r0 + 31c8: 3940 cmpnei r1, 0 + 31ca: 0b92 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 31cc: 932b ld.w r1, (r3, 0x2c) + 31ce: 3010 movi r0, 16 + 31d0: 6840 and r1, r0 + 31d2: 3940 cmpnei r1, 0 + 31d4: 0b8d bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 31d6: 932b ld.w r1, (r3, 0x2c) + 31d8: 3020 movi r0, 32 + 31da: 6840 and r1, r0 + 31dc: 3940 cmpnei r1, 0 + 31de: 0b88 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 31e0: 932b ld.w r1, (r3, 0x2c) + 31e2: 3040 movi r0, 64 + 31e4: 6840 and r1, r0 + 31e6: 3940 cmpnei r1, 0 + 31e8: 0b83 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 31ea: 932b ld.w r1, (r3, 0x2c) + 31ec: 6848 and r1, r2 + 31ee: 3940 cmpnei r1, 0 + 31f0: 0c03 bf 0x31f6 // 31f6 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 31f2: b34d st.w r2, (r3, 0x34) +} + 31f4: 077e br 0x30f0 // 30f0 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 31f6: 3280 movi r2, 128 + 31f8: 932b ld.w r1, (r3, 0x2c) + 31fa: 4241 lsli r2, r2, 1 + 31fc: 6848 and r1, r2 + 31fe: 3940 cmpnei r1, 0 + 3200: 0bf9 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3202: 3280 movi r2, 128 + 3204: 932b ld.w r1, (r3, 0x2c) + 3206: 4242 lsli r2, r2, 2 + 3208: 6848 and r1, r2 + 320a: 3940 cmpnei r1, 0 + 320c: 0bf3 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 320e: 3280 movi r2, 128 + 3210: 932b ld.w r1, (r3, 0x2c) + 3212: 4243 lsli r2, r2, 3 + 3214: 6848 and r1, r2 + 3216: 3940 cmpnei r1, 0 + 3218: 0bed bt 0x31f2 // 31f2 + 321a: 076b br 0x30f0 // 30f0 + 321c: 20000020 .long 0x20000020 + 3220: 20000168 .long 0x20000168 + 3224: 20000164 .long 0x20000164 + +Disassembly of section .text.WWDTHandler: + +00003228 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3228: 1460 nie + 322a: 1462 ipush + 322c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 322e: 10ab lrw r5, 0x20000010 // 3258 + 3230: 3401 movi r4, 1 + 3232: 9560 ld.w r3, (r5, 0x0) + 3234: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3236: 30ff movi r0, 255 + 3238: e3fff656 bsr 0x1ee4 // 1ee4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 323c: 9540 ld.w r2, (r5, 0x0) + 323e: 9263 ld.w r3, (r2, 0xc) + 3240: 68d0 and r3, r4 + 3242: 3b40 cmpnei r3, 0 + 3244: 0c02 bf 0x3248 // 3248 + { + WWDT->ICR = WWDT_EVI; + 3246: b285 st.w r4, (r2, 0x14) + } +} + 3248: d9ee2002 ld.w r15, (r14, 0x8) + 324c: 98a1 ld.w r5, (r14, 0x4) + 324e: 9880 ld.w r4, (r14, 0x0) + 3250: 1403 addi r14, r14, 12 + 3252: 1463 ipop + 3254: 1461 nir + 3256: 0000 bkpt + 3258: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +0000325c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 325c: 1460 nie + 325e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3260: 107e lrw r3, 0x20000024 // 32d8 + 3262: 3101 movi r1, 1 + 3264: 9360 ld.w r3, (r3, 0x0) + 3266: 237f addi r3, 128 + 3268: 9355 ld.w r2, (r3, 0x54) + 326a: 6884 and r2, r1 + 326c: 3a40 cmpnei r2, 0 + 326e: 0c04 bf 0x3276 // 3276 + { + 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; + 3270: 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; + } +} + 3272: 1463 ipop + 3274: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3276: 9355 ld.w r2, (r3, 0x54) + 3278: 3102 movi r1, 2 + 327a: 6884 and r2, r1 + 327c: 3a40 cmpnei r2, 0 + 327e: 0bf9 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3280: 9355 ld.w r2, (r3, 0x54) + 3282: 3110 movi r1, 16 + 3284: 6884 and r2, r1 + 3286: 3a40 cmpnei r2, 0 + 3288: 0bf4 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 328a: 9355 ld.w r2, (r3, 0x54) + 328c: 3120 movi r1, 32 + 328e: 6884 and r2, r1 + 3290: 3a40 cmpnei r2, 0 + 3292: 0bef bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3294: 3280 movi r2, 128 + 3296: 9335 ld.w r1, (r3, 0x54) + 3298: 4241 lsli r2, r2, 1 + 329a: 6848 and r1, r2 + 329c: 3940 cmpnei r1, 0 + 329e: 0c03 bf 0x32a4 // 32a4 + GPT0->ICR = GPT_INT_PEND; + 32a0: b357 st.w r2, (r3, 0x5c) +} + 32a2: 07e8 br 0x3272 // 3272 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 32a4: 3280 movi r2, 128 + 32a6: 9335 ld.w r1, (r3, 0x54) + 32a8: 4242 lsli r2, r2, 2 + 32aa: 6848 and r1, r2 + 32ac: 3940 cmpnei r1, 0 + 32ae: 0bf9 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 32b0: 3280 movi r2, 128 + 32b2: 9335 ld.w r1, (r3, 0x54) + 32b4: 4243 lsli r2, r2, 3 + 32b6: 6848 and r1, r2 + 32b8: 3940 cmpnei r1, 0 + 32ba: 0bf3 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 32bc: 3280 movi r2, 128 + 32be: 9335 ld.w r1, (r3, 0x54) + 32c0: 4244 lsli r2, r2, 4 + 32c2: 6848 and r1, r2 + 32c4: 3940 cmpnei r1, 0 + 32c6: 0bed bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 32c8: 3280 movi r2, 128 + 32ca: 9335 ld.w r1, (r3, 0x54) + 32cc: 4249 lsli r2, r2, 9 + 32ce: 6848 and r1, r2 + 32d0: 3940 cmpnei r1, 0 + 32d2: 0be7 bt 0x32a0 // 32a0 + 32d4: 07cf br 0x3272 // 3272 + 32d6: 0000 bkpt + 32d8: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000032dc : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 32dc: 1460 nie + 32de: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 32e0: 1079 lrw r3, 0x20000018 // 3344 + 32e2: 3101 movi r1, 1 + 32e4: 9360 ld.w r3, (r3, 0x0) + 32e6: 934a ld.w r2, (r3, 0x28) + 32e8: 6884 and r2, r1 + 32ea: 3a40 cmpnei r2, 0 + 32ec: 0c14 bf 0x3314 // 3314 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 32ee: 1057 lrw r2, 0xca53 // 3348 + RTC->ICR=ALRA_INT; + 32f0: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 32f2: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 32f4: 9342 ld.w r2, (r3, 0x8) + 32f6: 6c84 or r2, r1 + 32f8: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 32fa: 3280 movi r2, 128 + 32fc: 424d lsli r2, r2, 13 + 32fe: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3300: 3102 movi r1, 2 + 3302: 9342 ld.w r2, (r3, 0x8) + 3304: 6884 and r2, r1 + 3306: 3a40 cmpnei r2, 0 + 3308: 0bfd bt 0x3302 // 3302 + RTC->CR &= ~0x1; + 330a: 9342 ld.w r2, (r3, 0x8) + 330c: 3a80 bclri r2, 0 + 330e: 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; + } +} + 3310: 1463 ipop + 3312: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3314: 934a ld.w r2, (r3, 0x28) + 3316: 3102 movi r1, 2 + 3318: 6884 and r2, r1 + 331a: 3a40 cmpnei r2, 0 + 331c: 0c03 bf 0x3322 // 3322 + RTC->ICR=RTC_TRGEV1_INT; + 331e: b32b st.w r1, (r3, 0x2c) +} + 3320: 07f8 br 0x3310 // 3310 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3322: 934a ld.w r2, (r3, 0x28) + 3324: 3104 movi r1, 4 + 3326: 6884 and r2, r1 + 3328: 3a40 cmpnei r2, 0 + 332a: 0bfa bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 332c: 934a ld.w r2, (r3, 0x28) + 332e: 3108 movi r1, 8 + 3330: 6884 and r2, r1 + 3332: 3a40 cmpnei r2, 0 + 3334: 0bf5 bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3336: 934a ld.w r2, (r3, 0x28) + 3338: 3110 movi r1, 16 + 333a: 6884 and r2, r1 + 333c: 3a40 cmpnei r2, 0 + 333e: 0bf0 bt 0x331e // 331e + 3340: 07e8 br 0x3310 // 3310 + 3342: 0000 bkpt + 3344: 20000018 .long 0x20000018 + 3348: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +0000334c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 334c: 1460 nie + 334e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3350: 106d lrw r3, 0x20000040 // 3384 + 3352: 3102 movi r1, 2 + 3354: 9360 ld.w r3, (r3, 0x0) + 3356: 9343 ld.w r2, (r3, 0xc) + 3358: 6884 and r2, r1 + 335a: 3a40 cmpnei r2, 0 + 335c: 0c03 bf 0x3362 // 3362 + { + 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; + 335e: b323 st.w r1, (r3, 0xc) + } +} + 3360: 0410 br 0x3380 // 3380 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3362: 9343 ld.w r2, (r3, 0xc) + 3364: 3101 movi r1, 1 + 3366: 6884 and r2, r1 + 3368: 3a40 cmpnei r2, 0 + 336a: 0bfa bt 0x335e // 335e + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 336c: 9343 ld.w r2, (r3, 0xc) + 336e: 3108 movi r1, 8 + 3370: 6884 and r2, r1 + 3372: 3a40 cmpnei r2, 0 + 3374: 0bf5 bt 0x335e // 335e + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3376: 9343 ld.w r2, (r3, 0xc) + 3378: 3104 movi r1, 4 + 337a: 6884 and r2, r1 + 337c: 3a40 cmpnei r2, 0 + 337e: 0bf0 bt 0x335e // 335e +} + 3380: 1463 ipop + 3382: 1461 nir + 3384: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003388 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3388: 1460 nie + 338a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 338c: 106d lrw r3, 0x2000003c // 33c0 + 338e: 3102 movi r1, 2 + 3390: 9360 ld.w r3, (r3, 0x0) + 3392: 9343 ld.w r2, (r3, 0xc) + 3394: 6884 and r2, r1 + 3396: 3a40 cmpnei r2, 0 + 3398: 0c03 bf 0x339e // 339e + { + 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; + 339a: b323 st.w r1, (r3, 0xc) + } +} + 339c: 0410 br 0x33bc // 33bc + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 339e: 9343 ld.w r2, (r3, 0xc) + 33a0: 3101 movi r1, 1 + 33a2: 6884 and r2, r1 + 33a4: 3a40 cmpnei r2, 0 + 33a6: 0bfa bt 0x339a // 339a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33a8: 9343 ld.w r2, (r3, 0xc) + 33aa: 3108 movi r1, 8 + 33ac: 6884 and r2, r1 + 33ae: 3a40 cmpnei r2, 0 + 33b0: 0bf5 bt 0x339a // 339a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33b2: 9343 ld.w r2, (r3, 0xc) + 33b4: 3104 movi r1, 4 + 33b6: 6884 and r2, r1 + 33b8: 3a40 cmpnei r2, 0 + 33ba: 0bf0 bt 0x339a // 339a +} + 33bc: 1463 ipop + 33be: 1461 nir + 33c0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +000033c4 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 33c4: 1460 nie + 33c6: 1462 ipush + 33c8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 33ca: 107f lrw r3, 0x20000038 // 3444 + 33cc: 3102 movi r1, 2 + 33ce: 9360 ld.w r3, (r3, 0x0) + 33d0: 9343 ld.w r2, (r3, 0xc) + 33d2: 6884 and r2, r1 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0c0b bf 0x33ec // 33ec + { + UART2->ISR=UART_RX_INT_S; + 33d8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 33da: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 33dc: 7400 zextb r0, r0 + 33de: e00002ef bsr 0x39bc // 39bc + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 33e2: d9ee2000 ld.w r15, (r14, 0x0) + 33e6: 1401 addi r14, r14, 4 + 33e8: 1463 ipop + 33ea: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 33ec: 9323 ld.w r1, (r3, 0xc) + 33ee: 3201 movi r2, 1 + 33f0: 6848 and r1, r2 + 33f2: 3940 cmpnei r1, 0 + 33f4: 0c0d bf 0x340e // 340e + UART2->ISR=UART_TX_INT_S; + 33f6: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 33f8: 1074 lrw r3, 0x200000bc // 3448 + 33fa: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33fc: 1074 lrw r3, 0x200000c0 // 344c + 33fe: 9360 ld.w r3, (r3, 0x0) + 3400: 3b41 cmpnei r3, 1 + 3402: 0bf0 bt 0x33e2 // 33e2 + RS485_Comm_Start ++; + 3404: 1053 lrw r2, 0x200000c4 // 3450 + RS485_Comm_End ++; + 3406: 9260 ld.w r3, (r2, 0x0) + 3408: 2300 addi r3, 1 + 340a: b260 st.w r3, (r2, 0x0) +} + 340c: 07eb br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 340e: 9343 ld.w r2, (r3, 0xc) + 3410: 3108 movi r1, 8 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0c03 bf 0x341c // 341c + UART2->ISR=UART_TX_IOV_S; + 3418: b323 st.w r1, (r3, 0xc) + 341a: 07e4 br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 341c: 9343 ld.w r2, (r3, 0xc) + 341e: 3104 movi r1, 4 + 3420: 6884 and r2, r1 + 3422: 3a40 cmpnei r2, 0 + 3424: 0bfa bt 0x3418 // 3418 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3426: 3180 movi r1, 128 + 3428: 9303 ld.w r0, (r3, 0xc) + 342a: 412c lsli r1, r1, 12 + 342c: 6804 and r0, r1 + 342e: 3840 cmpnei r0, 0 + 3430: 0fd9 bf 0x33e2 // 33e2 + UART2->ISR=UART_TX_DONE_S; + 3432: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3434: 1065 lrw r3, 0x200000bc // 3448 + 3436: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3438: 1065 lrw r3, 0x200000c0 // 344c + 343a: 9360 ld.w r3, (r3, 0x0) + 343c: 3b41 cmpnei r3, 1 + 343e: 0bd2 bt 0x33e2 // 33e2 + RS485_Comm_End ++; + 3440: 1045 lrw r2, 0x200000c8 // 3454 + 3442: 07e2 br 0x3406 // 3406 + 3444: 20000038 .long 0x20000038 + 3448: 200000bc .long 0x200000bc + 344c: 200000c0 .long 0x200000c0 + 3450: 200000c4 .long 0x200000c4 + 3454: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +00003458 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 3458: 1460 nie + 345a: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 345c: 1178 lrw r3, 0x20000034 // 353c + 345e: 3101 movi r1, 1 + 3460: 9360 ld.w r3, (r3, 0x0) + 3462: 9347 ld.w r2, (r3, 0x1c) + 3464: 6884 and r2, r1 + 3466: 3a40 cmpnei r2, 0 + 3468: 0c03 bf 0x346e // 346e + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 346a: b328 st.w r1, (r3, 0x20) + } + +} + 346c: 0407 br 0x347a // 347a + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 346e: 9347 ld.w r2, (r3, 0x1c) + 3470: 3002 movi r0, 2 + 3472: 6880 and r2, r0 + 3474: 3a40 cmpnei r2, 0 + 3476: 0c04 bf 0x347e // 347e + SPI0->ICR = SPI_RTIM; + 3478: b308 st.w r0, (r3, 0x20) +} + 347a: 1463 ipop + 347c: 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 + 347e: 9347 ld.w r2, (r3, 0x1c) + 3480: 3004 movi r0, 4 + 3482: 6880 and r2, r0 + 3484: 3a40 cmpnei r2, 0 + 3486: 0c55 bf 0x3530 // 3530 + SPI0->ICR = SPI_RXIM; + 3488: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 348a: 9302 ld.w r0, (r3, 0x8) + 348c: 32aa movi r2, 170 + 348e: 6482 cmpne r0, r2 + 3490: 083e bt 0x350c // 350c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3492: 3102 movi r1, 2 + 3494: 9343 ld.w r2, (r3, 0xc) + 3496: 6884 and r2, r1 + 3498: 3a40 cmpnei r2, 0 + 349a: 0ffd bf 0x3494 // 3494 + SPI0->DR = 0x11; + 349c: 3211 movi r2, 17 + 349e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34a0: 3110 movi r1, 16 + 34a2: 9343 ld.w r2, (r3, 0xc) + 34a4: 6884 and r2, r1 + 34a6: 3a40 cmpnei r2, 0 + 34a8: 0bfd bt 0x34a2 // 34a2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34aa: 3102 movi r1, 2 + 34ac: 9343 ld.w r2, (r3, 0xc) + 34ae: 6884 and r2, r1 + 34b0: 3a40 cmpnei r2, 0 + 34b2: 0ffd bf 0x34ac // 34ac + SPI0->DR = 0x12; + 34b4: 3212 movi r2, 18 + 34b6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34b8: 3110 movi r1, 16 + 34ba: 9343 ld.w r2, (r3, 0xc) + 34bc: 6884 and r2, r1 + 34be: 3a40 cmpnei r2, 0 + 34c0: 0bfd bt 0x34ba // 34ba + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34c2: 3102 movi r1, 2 + 34c4: 9343 ld.w r2, (r3, 0xc) + 34c6: 6884 and r2, r1 + 34c8: 3a40 cmpnei r2, 0 + 34ca: 0ffd bf 0x34c4 // 34c4 + SPI0->DR = 0x13; + 34cc: 3213 movi r2, 19 + 34ce: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34d0: 3110 movi r1, 16 + 34d2: 9343 ld.w r2, (r3, 0xc) + 34d4: 6884 and r2, r1 + 34d6: 3a40 cmpnei r2, 0 + 34d8: 0bfd bt 0x34d2 // 34d2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34da: 3102 movi r1, 2 + 34dc: 9343 ld.w r2, (r3, 0xc) + 34de: 6884 and r2, r1 + 34e0: 3a40 cmpnei r2, 0 + 34e2: 0ffd bf 0x34dc // 34dc + SPI0->DR = 0x14; + 34e4: 3214 movi r2, 20 + 34e6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34e8: 3110 movi r1, 16 + 34ea: 9343 ld.w r2, (r3, 0xc) + 34ec: 6884 and r2, r1 + 34ee: 3a40 cmpnei r2, 0 + 34f0: 0bfd bt 0x34ea // 34ea + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34f2: 3102 movi r1, 2 + 34f4: 9343 ld.w r2, (r3, 0xc) + 34f6: 6884 and r2, r1 + 34f8: 3a40 cmpnei r2, 0 + 34fa: 0ffd bf 0x34f4 // 34f4 + SPI0->DR = 0x15; + 34fc: 3215 movi r2, 21 + 34fe: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3500: 3110 movi r1, 16 + 3502: 9343 ld.w r2, (r3, 0xc) + 3504: 6884 and r2, r1 + 3506: 3a40 cmpnei r2, 0 + 3508: 0bfd bt 0x3502 // 3502 + 350a: 07b8 br 0x347a // 347a + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 350c: 9343 ld.w r2, (r3, 0xc) + 350e: 6884 and r2, r1 + 3510: 3a40 cmpnei r2, 0 + 3512: 0bb4 bt 0x347a // 347a + SPI0->DR=0x0; //FIFO=0 + 3514: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3516: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3518: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3520: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3522: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3524: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3526: 9343 ld.w r2, (r3, 0xc) + 3528: 6884 and r2, r1 + 352a: 3a40 cmpnei r2, 0 + 352c: 0bfd bt 0x3526 // 3526 + 352e: 07a6 br 0x347a // 347a + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 3530: 9347 ld.w r2, (r3, 0x1c) + 3532: 3108 movi r1, 8 + 3534: 6884 and r2, r1 + 3536: 3a40 cmpnei r2, 0 + 3538: 0b99 bt 0x346a // 346a + 353a: 07a0 br 0x347a // 347a + 353c: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00003540 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 3540: 1460 nie + 3542: 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) + 3544: 1073 lrw r3, 0x2000002c // 3590 + 3546: 3104 movi r1, 4 + 3548: 9360 ld.w r3, (r3, 0x0) + 354a: 9349 ld.w r2, (r3, 0x24) + 354c: 6884 and r2, r1 + 354e: 3a40 cmpnei r2, 0 + 3550: 0c02 bf 0x3554 // 3554 + { + SIO0->ICR=0X04; + 3552: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 3554: 9349 ld.w r2, (r3, 0x24) + 3556: 3101 movi r1, 1 + 3558: 6884 and r2, r1 + 355a: 3a40 cmpnei r2, 0 + 355c: 0c02 bf 0x3560 // 3560 + { + SIO0->ICR=0X01; + 355e: 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 + 3560: 9349 ld.w r2, (r3, 0x24) + 3562: 3102 movi r1, 2 + 3564: 6884 and r2, r1 + 3566: 3a40 cmpnei r2, 0 + 3568: 0c03 bf 0x356e // 356e + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 356a: b32b st.w r1, (r3, 0x2c) + } +} + 356c: 0410 br 0x358c // 358c + else if(SIO0->MISR&0X08) //RXBUFFULL + 356e: 9349 ld.w r2, (r3, 0x24) + 3570: 3108 movi r1, 8 + 3572: 6884 and r2, r1 + 3574: 3a40 cmpnei r2, 0 + 3576: 0bfa bt 0x356a // 356a + else if(SIO0->MISR&0X010) //BREAK + 3578: 9349 ld.w r2, (r3, 0x24) + 357a: 3110 movi r1, 16 + 357c: 6884 and r2, r1 + 357e: 3a40 cmpnei r2, 0 + 3580: 0bf5 bt 0x356a // 356a + else if(SIO0->MISR&0X020) //TIMEOUT + 3582: 9349 ld.w r2, (r3, 0x24) + 3584: 3120 movi r1, 32 + 3586: 6884 and r2, r1 + 3588: 3a40 cmpnei r2, 0 + 358a: 0bf0 bt 0x356a // 356a +} + 358c: 1463 ipop + 358e: 1461 nir + 3590: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003594 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3594: 1460 nie + 3596: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3598: 106a lrw r3, 0x2000005c // 35c0 + 359a: 3101 movi r1, 1 + 359c: 9360 ld.w r3, (r3, 0x0) + 359e: 237f addi r3, 128 + 35a0: 934c ld.w r2, (r3, 0x30) + 35a2: 6884 and r2, r1 + 35a4: 3a40 cmpnei r2, 0 + 35a6: 0c04 bf 0x35ae // 35ae + { + SYSCON->EXICR = EXI_PIN0; + 35a8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 35aa: 1463 ipop + 35ac: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 35ae: 3280 movi r2, 128 + 35b0: 932c ld.w r1, (r3, 0x30) + 35b2: 4249 lsli r2, r2, 9 + 35b4: 6848 and r1, r2 + 35b6: 3940 cmpnei r1, 0 + 35b8: 0ff9 bf 0x35aa // 35aa + SYSCON->EXICR = EXI_PIN16; + 35ba: b34b st.w r2, (r3, 0x2c) +} + 35bc: 07f7 br 0x35aa // 35aa + 35be: 0000 bkpt + 35c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +000035c4 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 35c4: 1460 nie + 35c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 35c8: 106a lrw r3, 0x2000005c // 35f0 + 35ca: 3102 movi r1, 2 + 35cc: 9360 ld.w r3, (r3, 0x0) + 35ce: 237f addi r3, 128 + 35d0: 934c ld.w r2, (r3, 0x30) + 35d2: 6884 and r2, r1 + 35d4: 3a40 cmpnei r2, 0 + 35d6: 0c04 bf 0x35de // 35de + { + SYSCON->EXICR = EXI_PIN1; + 35d8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 35da: 1463 ipop + 35dc: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 35de: 3280 movi r2, 128 + 35e0: 932c ld.w r1, (r3, 0x30) + 35e2: 424a lsli r2, r2, 10 + 35e4: 6848 and r1, r2 + 35e6: 3940 cmpnei r1, 0 + 35e8: 0ff9 bf 0x35da // 35da + SYSCON->EXICR = EXI_PIN17; + 35ea: b34b st.w r2, (r3, 0x2c) +} + 35ec: 07f7 br 0x35da // 35da + 35ee: 0000 bkpt + 35f0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000035f4 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 35f4: 1460 nie + 35f6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 35f8: 1070 lrw r3, 0x2000005c // 3638 + 35fa: 3104 movi r1, 4 + 35fc: 9360 ld.w r3, (r3, 0x0) + 35fe: 237f addi r3, 128 + 3600: 934c ld.w r2, (r3, 0x30) + 3602: 6884 and r2, r1 + 3604: 3a40 cmpnei r2, 0 + 3606: 0c04 bf 0x360e // 360e + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3608: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 360a: 1463 ipop + 360c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 360e: 934c ld.w r2, (r3, 0x30) + 3610: 3108 movi r1, 8 + 3612: 6884 and r2, r1 + 3614: 3a40 cmpnei r2, 0 + 3616: 0bf9 bt 0x3608 // 3608 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3618: 3280 movi r2, 128 + 361a: 932c ld.w r1, (r3, 0x30) + 361c: 424b lsli r2, r2, 11 + 361e: 6848 and r1, r2 + 3620: 3940 cmpnei r1, 0 + 3622: 0c03 bf 0x3628 // 3628 + SYSCON->EXICR = EXI_PIN19; + 3624: b34b st.w r2, (r3, 0x2c) +} + 3626: 07f2 br 0x360a // 360a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3628: 3280 movi r2, 128 + 362a: 932c ld.w r1, (r3, 0x30) + 362c: 424c lsli r2, r2, 12 + 362e: 6848 and r1, r2 + 3630: 3940 cmpnei r1, 0 + 3632: 0bf9 bt 0x3624 // 3624 + 3634: 07eb br 0x360a // 360a + 3636: 0000 bkpt + 3638: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +0000363c : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 363c: 1460 nie + 363e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 3640: 1075 lrw r3, 0x2000005c // 3694 + 3642: 3280 movi r2, 128 + 3644: 9360 ld.w r3, (r3, 0x0) + 3646: 60c8 addu r3, r2 + 3648: 932c ld.w r1, (r3, 0x30) + 364a: 3010 movi r0, 16 + 364c: 6840 and r1, r0 + 364e: 3940 cmpnei r1, 0 + 3650: 0c04 bf 0x3658 // 3658 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 3652: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 3654: 1463 ipop + 3656: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 3658: 932c ld.w r1, (r3, 0x30) + 365a: 3020 movi r0, 32 + 365c: 6840 and r1, r0 + 365e: 3940 cmpnei r1, 0 + 3660: 0bf9 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3662: 932c ld.w r1, (r3, 0x30) + 3664: 3040 movi r0, 64 + 3666: 6840 and r1, r0 + 3668: 3940 cmpnei r1, 0 + 366a: 0bf4 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 366c: 932c ld.w r1, (r3, 0x30) + 366e: 6848 and r1, r2 + 3670: 3940 cmpnei r1, 0 + 3672: 0c03 bf 0x3678 // 3678 + SYSCON->EXICR = EXI_PIN9; + 3674: b34b st.w r2, (r3, 0x2c) +} + 3676: 07ef br 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3678: 3280 movi r2, 128 + 367a: 932c ld.w r1, (r3, 0x30) + 367c: 4241 lsli r2, r2, 1 + 367e: 6848 and r1, r2 + 3680: 3940 cmpnei r1, 0 + 3682: 0bf9 bt 0x3674 // 3674 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3684: 3280 movi r2, 128 + 3686: 932c ld.w r1, (r3, 0x30) + 3688: 4242 lsli r2, r2, 2 + 368a: 6848 and r1, r2 + 368c: 3940 cmpnei r1, 0 + 368e: 0bf3 bt 0x3674 // 3674 + 3690: 07e2 br 0x3654 // 3654 + 3692: 0000 bkpt + 3694: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003698 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3698: 1460 nie + 369a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 369c: 1076 lrw r3, 0x2000005c // 36f4 + 369e: 3280 movi r2, 128 + 36a0: 9360 ld.w r3, (r3, 0x0) + 36a2: 237f addi r3, 128 + 36a4: 932c ld.w r1, (r3, 0x30) + 36a6: 4243 lsli r2, r2, 3 + 36a8: 6848 and r1, r2 + 36aa: 3940 cmpnei r1, 0 + 36ac: 0c03 bf 0x36b2 // 36b2 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 36ae: b34b st.w r2, (r3, 0x2c) + } +} + 36b0: 041f br 0x36ee // 36ee + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 36b2: 3280 movi r2, 128 + 36b4: 932c ld.w r1, (r3, 0x30) + 36b6: 4244 lsli r2, r2, 4 + 36b8: 6848 and r1, r2 + 36ba: 3940 cmpnei r1, 0 + 36bc: 0bf9 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 36be: 3280 movi r2, 128 + 36c0: 932c ld.w r1, (r3, 0x30) + 36c2: 4245 lsli r2, r2, 5 + 36c4: 6848 and r1, r2 + 36c6: 3940 cmpnei r1, 0 + 36c8: 0bf3 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 36ca: 3280 movi r2, 128 + 36cc: 932c ld.w r1, (r3, 0x30) + 36ce: 4246 lsli r2, r2, 6 + 36d0: 6848 and r1, r2 + 36d2: 3940 cmpnei r1, 0 + 36d4: 0bed bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 36d6: 3280 movi r2, 128 + 36d8: 932c ld.w r1, (r3, 0x30) + 36da: 4247 lsli r2, r2, 7 + 36dc: 6848 and r1, r2 + 36de: 3940 cmpnei r1, 0 + 36e0: 0be7 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 36e2: 3280 movi r2, 128 + 36e4: 932c ld.w r1, (r3, 0x30) + 36e6: 4248 lsli r2, r2, 8 + 36e8: 6848 and r1, r2 + 36ea: 3940 cmpnei r1, 0 + 36ec: 0be1 bt 0x36ae // 36ae +} + 36ee: 1463 ipop + 36f0: 1461 nir + 36f2: 0000 bkpt + 36f4: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000036f8 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 36f8: 1460 nie + 36fa: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 36fc: 106b lrw r3, 0x20000014 // 3728 + 36fe: 3101 movi r1, 1 + 3700: 9360 ld.w r3, (r3, 0x0) + 3702: 934e ld.w r2, (r3, 0x38) + 3704: 6884 and r2, r1 + 3706: 3a40 cmpnei r2, 0 + 3708: 0c03 bf 0x370e // 370e + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 370a: b330 st.w r1, (r3, 0x40) + } +} + 370c: 040b br 0x3722 // 3722 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 370e: 934e ld.w r2, (r3, 0x38) + 3710: 3102 movi r1, 2 + 3712: 6884 and r2, r1 + 3714: 3a40 cmpnei r2, 0 + 3716: 0bfa bt 0x370a // 370a + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3718: 934e ld.w r2, (r3, 0x38) + 371a: 3104 movi r1, 4 + 371c: 6884 and r2, r1 + 371e: 3a40 cmpnei r2, 0 + 3720: 0bf5 bt 0x370a // 370a +} + 3722: 1463 ipop + 3724: 1461 nir + 3726: 0000 bkpt + 3728: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +0000372c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 372c: 1460 nie + 372e: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3730: 1071 lrw r3, 0x2000000c // 3774 + 3732: 3101 movi r1, 1 + 3734: 9360 ld.w r3, (r3, 0x0) + 3736: 934c ld.w r2, (r3, 0x30) + 3738: 6884 and r2, r1 + 373a: 3a40 cmpnei r2, 0 + 373c: 0c0a bf 0x3750 // 3750 + { + BT0->ICR = BT_PEND; + 373e: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3740: 9341 ld.w r2, (r3, 0x4) + 3742: 3a86 bclri r2, 6 + 3744: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3746: 9340 ld.w r2, (r3, 0x0) + 3748: 3200 movi r2, 0 + 374a: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 374c: 1463 ipop + 374e: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3750: 934c ld.w r2, (r3, 0x30) + 3752: 3102 movi r1, 2 + 3754: 6884 and r2, r1 + 3756: 3a40 cmpnei r2, 0 + 3758: 0c03 bf 0x375e // 375e + BT0->ICR = BT_EVTRG; + 375a: b32d st.w r1, (r3, 0x34) +} + 375c: 07f8 br 0x374c // 374c + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 375e: 934c ld.w r2, (r3, 0x30) + 3760: 3104 movi r1, 4 + 3762: 6884 and r2, r1 + 3764: 3a40 cmpnei r2, 0 + 3766: 0bfa bt 0x375a // 375a + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3768: 934c ld.w r2, (r3, 0x30) + 376a: 3108 movi r1, 8 + 376c: 6884 and r2, r1 + 376e: 3a40 cmpnei r2, 0 + 3770: 0bf5 bt 0x375a // 375a + 3772: 07ed br 0x374c // 374c + 3774: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003778 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3778: 1460 nie + 377a: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 377c: 1076 lrw r3, 0x20000008 // 37d4 + 377e: 3101 movi r1, 1 + 3780: 9360 ld.w r3, (r3, 0x0) + 3782: 934c ld.w r2, (r3, 0x30) + 3784: 6884 and r2, r1 + 3786: 3a40 cmpnei r2, 0 + 3788: 0c03 bf 0x378e // 378e + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 378a: b32d st.w r1, (r3, 0x34) + } +} + 378c: 0416 br 0x37b8 // 37b8 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 378e: 934c ld.w r2, (r3, 0x30) + 3790: 3102 movi r1, 2 + 3792: 6884 and r2, r1 + 3794: 3a40 cmpnei r2, 0 + 3796: 0c13 bf 0x37bc // 37bc + BT1->ICR = BT_CMP; + 3798: b32d st.w r1, (r3, 0x34) + NUM++; + 379a: 1070 lrw r3, 0x200000b0 // 37d8 + 379c: 8340 ld.b r2, (r3, 0x0) + 379e: 2200 addi r2, 1 + 37a0: 7488 zextb r2, r2 + SysTick_100us++; + 37a2: 9321 ld.w r1, (r3, 0x4) + 37a4: 2100 addi r1, 1 + if(NUM >= 10){ + 37a6: 3a09 cmphsi r2, 10 + NUM++; + 37a8: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 37aa: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 37ac: 0c06 bf 0x37b8 // 37b8 + NUM = 0; + 37ae: 3200 movi r2, 0 + 37b0: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 37b2: 9342 ld.w r2, (r3, 0x8) + 37b4: 2200 addi r2, 1 + 37b6: b342 st.w r2, (r3, 0x8) +} + 37b8: 1463 ipop + 37ba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 37bc: 934c ld.w r2, (r3, 0x30) + 37be: 3104 movi r1, 4 + 37c0: 6884 and r2, r1 + 37c2: 3a40 cmpnei r2, 0 + 37c4: 0be3 bt 0x378a // 378a + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 37c6: 934c ld.w r2, (r3, 0x30) + 37c8: 3108 movi r1, 8 + 37ca: 6884 and r2, r1 + 37cc: 3a40 cmpnei r2, 0 + 37ce: 0bde bt 0x378a // 378a + 37d0: 07f4 br 0x37b8 // 37b8 + 37d2: 0000 bkpt + 37d4: 20000008 .long 0x20000008 + 37d8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +000037dc : + 37dc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000037de : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 37de: 1460 nie + 37e0: 1462 ipush + // ISR content ... + +} + 37e2: 1463 ipop + 37e4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000037e6 : + 37e6: 1460 nie + 37e8: 1462 ipush + 37ea: 1463 ipop + 37ec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000037ee : + 37ee: 1460 nie + 37f0: 1462 ipush + 37f2: 1463 ipop + 37f4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000037f6 : + 37f6: 1460 nie + 37f8: 1462 ipush + 37fa: 1463 ipop + 37fc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000037fe : + 37fe: 1460 nie + 3800: 1462 ipush + 3802: 1463 ipop + 3804: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003806 : + 3806: 1460 nie + 3808: 1462 ipush + 380a: 1463 ipop + 380c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000380e : + 380e: 1460 nie + 3810: 1462 ipush + 3812: 1463 ipop + 3814: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003816 : + 3816: 1460 nie + 3818: 1462 ipush + 381a: 1463 ipop + 381c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000381e : + 381e: 1460 nie + 3820: 1462 ipush + 3822: 1463 ipop + 3824: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003826 : + 3826: 1460 nie + 3828: 1462 ipush + 382a: 1463 ipop + 382c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000382e : + 382e: 1460 nie + 3830: 1462 ipush + 3832: 1463 ipop + 3834: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003836 : + 3836: 1460 nie + 3838: 1462 ipush + 383a: 1463 ipop + 383c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003840 <__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) +{ + 3840: 14c1 push r4 + int PSR; + __asm volatile( + 3842: c0006023 mfcr r3, cr<0, 0> + 3846: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 384a: 1046 lrw r2, 0x20000000 // 3860 <__divsi3+0x20> + 384c: 3400 movi r4, 0 + 384e: 9240 ld.w r2, (r2, 0x0) + 3850: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3852: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3854: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3856: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3858: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 385c: 9202 ld.w r0, (r2, 0x8) +} + 385e: 1481 pop r4 + 3860: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003864 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3864: 14c1 push r4 + int PSR; + __asm volatile( + 3866: c0006023 mfcr r3, cr<0, 0> + 386a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 386e: 1046 lrw r2, 0x20000000 // 3884 <__udivsi3+0x20> + 3870: 3401 movi r4, 1 + 3872: 9240 ld.w r2, (r2, 0x0) + 3874: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3876: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3878: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 387a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 387c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3880: 9202 ld.w r0, (r2, 0x8) +} + 3882: 1481 pop r4 + 3884: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003888 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3888: 14c1 push r4 + int PSR; + __asm volatile( + 388a: c0006023 mfcr r3, cr<0, 0> + 388e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3892: 1046 lrw r2, 0x20000000 // 38a8 <__umodsi3+0x20> + 3894: 3401 movi r4, 1 + 3896: 9240 ld.w r2, (r2, 0x0) + 3898: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 389a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 389c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 389e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 38a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 38a4: 9203 ld.w r0, (r2, 0xc) +} + 38a6: 1481 pop r4 + 38a8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000038ac : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 38ac: c1807420 psrset ee, ie +} + 38b0: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000038b4 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b4: 14d2 push r4-r5, r15 + switch(uart_id){ + 38b6: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b8: 6d07 mov r4, r1 + switch(uart_id){ + 38ba: 0c32 bf 0x391e // 391e + 38bc: 3840 cmpnei r0, 0 + 38be: 0c04 bf 0x38c6 // 38c6 + 38c0: 3842 cmpnei r0, 2 + 38c2: 0c51 bf 0x3964 // 3964 +// GPIO_DriveStrength_EN(GPIOA0,1); +// GPIO_Write_Low(GPIOA0,1); + + break; + } +} + 38c4: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 38c6: e3fff365 bsr 0x1f90 // 1f90 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 38ca: 3100 movi r1, 0 + 38cc: 3000 movi r0, 0 + 38ce: e3fff3a1 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 38d2: 1170 lrw r3, 0x20000040 // 3990 + 38d4: 3200 movi r2, 0 + 38d6: 9300 ld.w r0, (r3, 0x0) + 38d8: 112f lrw r1, 0x1388 // 3994 + 38da: e3fff419 bsr 0x210c // 210c + UART0_Int_Enable(); + 38de: e3fff37d bsr 0x1fd8 // 1fd8 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 38e2: 3273 movi r2, 115 + 38e4: 3100 movi r1, 0 + 38e6: 110d lrw r0, 0x20000194 // 3998 + 38e8: e3fff03e bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 38ec: 116c lrw r3, 0x200001fb // 399c + 38ee: 3203 movi r2, 3 + 38f0: a340 st.b r2, (r3, 0x0) + g_uart[UART_0].processing_cf = prt_cf; + 38f2: 4c48 lsri r2, r4, 8 + 38f4: a388 st.b r4, (r3, 0x8) + 38f6: a349 st.b r2, (r3, 0x9) + 38f8: 4c50 lsri r2, r4, 16 + 38fa: 4c98 lsri r4, r4, 24 + 38fc: a38b st.b r4, (r3, 0xb) + 38fe: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOA0,3,Output); + 3900: 3103 movi r1, 3 + 3902: 1188 lrw r4, 0x2000004c // 39a0 + 3904: 3200 movi r2, 0 + 3906: 9400 ld.w r0, (r4, 0x0) + 3908: e3fff240 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,3); + 390c: 9400 ld.w r0, (r4, 0x0) + 390e: 3103 movi r1, 3 + 3910: e3fff2bd bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,3); + 3914: 9400 ld.w r0, (r4, 0x0) + 3916: 3103 movi r1, 3 + 3918: e3fff2c4 bsr 0x1ea0 // 1ea0 + break; + 391c: 07d4 br 0x38c4 // 38c4 + UART1_DeInit(); //clear all UART Register + 391e: e3fff345 bsr 0x1fa8 // 1fa8 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3922: 3102 movi r1, 2 + 3924: 3001 movi r0, 1 + 3926: e3fff375 bsr 0x2010 // 2010 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 392a: 10bf lrw r5, 0x2000003c // 39a4 + 392c: 31d0 movi r1, 208 + 392e: 3200 movi r2, 0 + 3930: 4121 lsli r1, r1, 1 + 3932: 9500 ld.w r0, (r5, 0x0) + 3934: e3fff3e4 bsr 0x20fc // 20fc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3938: 31d0 movi r1, 208 + 393a: 9500 ld.w r0, (r5, 0x0) + 393c: 3200 movi r2, 0 + 393e: 4121 lsli r1, r1, 1 + 3940: e3fff3e6 bsr 0x210c // 210c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3944: 3273 movi r2, 115 + 3946: 3100 movi r1, 0 + 3948: 1018 lrw r0, 0x20000207 // 39a8 + 394a: e3fff00d bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 394e: 1078 lrw r3, 0x2000026e // 39ac + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3950: 3203 movi r2, 3 + 3952: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].processing_cf = prt_cf; + 3954: 4c48 lsri r2, r4, 8 + 3956: a388 st.b r4, (r3, 0x8) + 3958: a349 st.b r2, (r3, 0x9) + 395a: 4c50 lsri r2, r4, 16 + 395c: 4c98 lsri r4, r4, 24 + 395e: a34a st.b r2, (r3, 0xa) + 3960: a38b st.b r4, (r3, 0xb) +} + 3962: 07b1 br 0x38c4 // 38c4 + UART2_DeInit(); //clear all UART Register + 3964: e3fff32e bsr 0x1fc0 // 1fc0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3968: 3102 movi r1, 2 + 396a: 3002 movi r0, 2 + 396c: e3fff352 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3970: 1070 lrw r3, 0x20000038 // 39b0 + 3972: 3200 movi r2, 0 + 3974: 9300 ld.w r0, (r3, 0x0) + 3976: 1028 lrw r1, 0x1388 // 3994 + 3978: e3fff3ca bsr 0x210c // 210c + UART2_Int_Enable(); + 397c: e3fff33c bsr 0x1ff4 // 1ff4 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3980: 3273 movi r2, 115 + 3982: 3100 movi r1, 0 + 3984: 100c lrw r0, 0x2000027a // 39b4 + 3986: e3ffefef bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 398a: 106c lrw r3, 0x200002e1 // 39b8 + 398c: 07e2 br 0x3950 // 3950 + 398e: 0000 bkpt + 3990: 20000040 .long 0x20000040 + 3994: 00001388 .long 0x00001388 + 3998: 20000194 .long 0x20000194 + 399c: 200001fb .long 0x200001fb + 39a0: 2000004c .long 0x2000004c + 39a4: 2000003c .long 0x2000003c + 39a8: 20000207 .long 0x20000207 + 39ac: 2000026e .long 0x2000026e + 39b0: 20000038 .long 0x20000038 + 39b4: 2000027a .long 0x2000027a + 39b8: 200002e1 .long 0x200002e1 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000039bc : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 39bc: 14c2 push r4-r5 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 39be: 1056 lrw r2, 0x200002df // 3a14 + 39c0: 8261 ld.b r3, (r2, 0x1) + 39c2: 8280 ld.b r4, (r2, 0x0) + 39c4: 4368 lsli r3, r3, 8 + 39c6: 6cd0 or r3, r4 + 39c8: 3462 movi r4, 98 + 39ca: 5a22 addi r1, r2, 1 + 39cc: 64d1 cmplt r4, r3 + 39ce: 6d07 mov r4, r1 + 39d0: 0c04 bf 0x39d8 // 39d8 + 39d2: 3300 movi r3, 0 + 39d4: a260 st.b r3, (r2, 0x0) + 39d6: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39d8: 8460 ld.b r3, (r4, 0x0) + 39da: 82a0 ld.b r5, (r2, 0x0) + 39dc: 4368 lsli r3, r3, 8 + 39de: 102f lrw r1, 0x20000194 // 3a18 + 39e0: 6cd4 or r3, r5 + 39e2: 5b82 addi r4, r3, 1 + 39e4: 60c4 addu r3, r1 + 39e6: 7511 zexth r4, r4 + 39e8: 23e5 addi r3, 230 + 39ea: a280 st.b r4, (r2, 0x0) + 39ec: a300 st.b r0, (r3, 0x0) + 39ee: 4c88 lsri r4, r4, 8 + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39f0: 106b lrw r3, 0x200000b8 // 3a1c + 39f2: 9360 ld.w r3, (r3, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39f4: a281 st.b r4, (r2, 0x1) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39f6: 104b lrw r2, 0x151 // 3a20 + 39f8: 6084 addu r2, r1 + 39fa: 4b08 lsri r0, r3, 8 + 39fc: a260 st.b r3, (r2, 0x0) + 39fe: a201 st.b r0, (r2, 0x1) + 3a00: 4b10 lsri r0, r3, 16 + 3a02: 4b78 lsri r3, r3, 24 + 3a04: a263 st.b r3, (r2, 0x3) + g_uart[UART_2].Receiving = 0x01; + 3a06: 33a5 movi r3, 165 + 3a08: 4361 lsli r3, r3, 1 + 3a0a: 604c addu r1, r3 + 3a0c: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a0e: a202 st.b r0, (r2, 0x2) + g_uart[UART_2].Receiving = 0x01; + 3a10: a160 st.b r3, (r1, 0x0) +} + 3a12: 1482 pop r4-r5 + 3a14: 200002df .long 0x200002df + 3a18: 20000194 .long 0x20000194 + 3a1c: 200000b8 .long 0x200000b8 + 3a20: 00000151 .long 0x00000151 + +Disassembly of section .text.UART2_TASK: + +00003a24 : + + +void UART2_TASK(void){ + 3a24: 14d3 push r4-r6, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3a26: 1184 lrw r4, 0x200002de // 3ab4 + 3a28: 8460 ld.b r3, (r4, 0x0) + 3a2a: 3b41 cmpnei r3, 1 + 3a2c: 0843 bt 0x3ab2 // 3ab2 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3a2e: 8428 ld.b r1, (r4, 0x8) + 3a30: 8467 ld.b r3, (r4, 0x7) + 3a32: 4128 lsli r1, r1, 8 + 3a34: 6c4c or r1, r3 + 3a36: 8469 ld.b r3, (r4, 0x9) + 3a38: 4370 lsli r3, r3, 16 + 3a3a: 6c4c or r1, r3 + 3a3c: 846a ld.b r3, (r4, 0xa) + 3a3e: 10bf lrw r5, 0x200000b8 // 3ab8 + 3a40: 4378 lsli r3, r3, 24 + 3a42: 6cc4 or r3, r1 + 3a44: 9500 ld.w r0, (r5, 0x0) + 3a46: 8424 ld.b r1, (r4, 0x4) + 3a48: 600e subu r0, r3 + 3a4a: 4128 lsli r1, r1, 8 + 3a4c: 8463 ld.b r3, (r4, 0x3) + 3a4e: 6c4c or r1, r3 + 3a50: 8465 ld.b r3, (r4, 0x5) + 3a52: 4370 lsli r3, r3, 16 + 3a54: 6c4c or r1, r3 + 3a56: 8466 ld.b r3, (r4, 0x6) + 3a58: 4378 lsli r3, r3, 24 + 3a5a: 6cc4 or r3, r1 + 3a5c: 640c cmphs r3, r0 + 3a5e: 082a bt 0x3ab2 // 3ab2 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a60: 9560 ld.w r3, (r5, 0x0) + 3a62: 4b28 lsri r1, r3, 8 + 3a64: a467 st.b r3, (r4, 0x7) + 3a66: a428 st.b r1, (r4, 0x8) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", g_uart[UART_2].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3a68: 844c ld.b r2, (r4, 0xc) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a6a: 4b30 lsri r1, r3, 16 + 3a6c: 4b78 lsri r3, r3, 24 + 3a6e: a46a st.b r3, (r4, 0xa) + if(g_uart[UART_2].processing_cf != NULL){ + 3a70: 4248 lsli r2, r2, 8 + 3a72: 846b ld.b r3, (r4, 0xb) + 3a74: 6c8c or r2, r3 + 3a76: 846d ld.b r3, (r4, 0xd) + 3a78: 4370 lsli r3, r3, 16 + 3a7a: 6c8c or r2, r3 + 3a7c: 846e ld.b r3, (r4, 0xe) + 3a7e: 4378 lsli r3, r3, 24 + 3a80: 6cc8 or r3, r2 + 3a82: 3b40 cmpnei r3, 0 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a84: a429 st.b r1, (r4, 0x9) + 3a86: 5ca2 addi r5, r4, 1 + if(g_uart[UART_2].processing_cf != NULL){ + 3a88: 0c11 bf 0x3aaa // 3aaa + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a8a: 8422 ld.b r1, (r4, 0x2) + 3a8c: 8540 ld.b r2, (r5, 0x0) + 3a8e: 4128 lsli r1, r1, 8 + 3a90: 6c48 or r1, r2 + 3a92: 100b lrw r0, 0x2000027a // 3abc + 3a94: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3a96: 3841 cmpnei r0, 1 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a98: 5cc6 addi r6, r4, 2 + if(rev == 0x01){ + 3a9a: 0808 bt 0x3aaa // 3aaa + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a9c: 8422 ld.b r1, (r4, 0x2) + 3a9e: 8560 ld.b r3, (r5, 0x0) + 3aa0: 4128 lsli r1, r1, 8 + 3aa2: 6c4c or r1, r3 + 3aa4: 1006 lrw r0, 0x2000027a // 3abc + 3aa6: e00003db bsr 0x425c // 425c + } + + g_uart[UART_2].RecvLen = 0; + 3aaa: 3300 movi r3, 0 + 3aac: a560 st.b r3, (r5, 0x0) + 3aae: a561 st.b r3, (r5, 0x1) + g_uart[UART_2].Receiving = 0; + 3ab0: a460 st.b r3, (r4, 0x0) + } + } +} + 3ab2: 1493 pop r4-r6, r15 + 3ab4: 200002de .long 0x200002de + 3ab8: 200000b8 .long 0x200000b8 + 3abc: 2000027a .long 0x2000027a + +Disassembly of section .text.MCU485_SendData: + +00003ac0 : + }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){ + 3ac0: 14d4 push r4-r7, r15 + 3ac2: 1421 subi r14, r14, 4 + 3ac4: b800 st.w r0, (r14, 0x0) + 3ac6: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3ac8: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3aca: 109d lrw r4, 0x200000bc // 3b3c + 3acc: 10dd lrw r6, 0x2000004c // 3b40 + 3ace: 9460 ld.w r3, (r4, 0x0) + 3ad0: 3b41 cmpnei r3, 1 + 3ad2: 0c29 bf 0x3b24 // 3b24 + } + + GPIO_Reverse(GPIOA0,1); + } + + delay_nus(500); + 3ad4: 30fa movi r0, 250 + 3ad6: 4001 lsli r0, r0, 1 + 3ad8: e3fff90a bsr 0x2cec // 2cec + GPIO_Write_High(GPIOA0,1); + 3adc: 3101 movi r1, 1 + 3ade: 9600 ld.w r0, (r6, 0x0) + 3ae0: e3fff1dc bsr 0x1e98 // 1e98 + + RS485_Comm_Flag = 0x01; + 3ae4: 3301 movi r3, 1 + 3ae6: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 3ae8: 3300 movi r3, 0 + 3aea: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 3aec: b463 st.w r3, (r4, 0xc) + + UARTTransmit(UART2,buff,len); + 3aee: 6c9f mov r2, r7 + 3af0: 1075 lrw r3, 0x20000038 // 3b44 + 3af2: 9300 ld.w r0, (r3, 0x0) + 3af4: 9820 ld.w r1, (r14, 0x0) + 3af6: e3fff313 bsr 0x211c // 211c + + do{ + delay_nus(100); + 3afa: 3064 movi r0, 100 + 3afc: e3fff8f8 bsr 0x2cec // 2cec + + delay_cnt ++; + 3b00: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b02: 3363 movi r3, 99 + 3b04: 654c cmphs r3, r5 + 3b06: 0c07 bf 0x3b14 // 3b14 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3b08: 9462 ld.w r3, (r4, 0x8) + 3b0a: 65cd cmplt r3, r7 + 3b0c: 0bf7 bt 0x3afa // 3afa + 3b0e: 9463 ld.w r3, (r4, 0xc) + 3b10: 65cd cmplt r3, r7 + 3b12: 0bf4 bt 0x3afa // 3afa + + GPIO_Write_Low(GPIOA0,1); + 3b14: 9600 ld.w r0, (r6, 0x0) + 3b16: 3101 movi r1, 1 + 3b18: e3fff1c4 bsr 0x1ea0 // 1ea0 + + RS485_Comm_Flag = 0x00; + 3b1c: 3300 movi r3, 0 + 3b1e: b461 st.w r3, (r4, 0x4) +} + 3b20: 1401 addi r14, r14, 4 + 3b22: 1494 pop r4-r7, r15 + delay_nus(100); + 3b24: 3064 movi r0, 100 + 3b26: e3fff8e3 bsr 0x2cec // 2cec + delay_cnt ++; + 3b2a: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b2c: 3364 movi r3, 100 + 3b2e: 64d6 cmpne r5, r3 + 3b30: 0fd2 bf 0x3ad4 // 3ad4 + GPIO_Reverse(GPIOA0,1); + 3b32: 3101 movi r1, 1 + 3b34: 9600 ld.w r0, (r6, 0x0) + 3b36: e3fff1b9 bsr 0x1ea8 // 1ea8 + 3b3a: 07ca br 0x3ace // 3ace + 3b3c: 200000bc .long 0x200000bc + 3b40: 2000004c .long 0x2000004c + 3b44: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003b48 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3b48: 1423 subi r14, r14, 12 + 3b4a: b862 st.w r3, (r14, 0x8) + 3b4c: b841 st.w r2, (r14, 0x4) + 3b4e: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3b50: 1403 addi r14, r14, 12 + 3b52: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003b54 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3b54: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003b58 : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 3b58: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3b5a: 3230 movi r2, 48 + 3b5c: 3100 movi r1, 0 + 3b5e: 1017 lrw r0, 0x20000320 // 3bb8 + 3b60: e3ffef02 bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + 3b64: 3214 movi r2, 20 + 3b66: 3100 movi r1, 0 + 3b68: 1015 lrw r0, 0x2000030c // 3bbc + 3b6a: e3ffeefd bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3b6e: 321c movi r2, 28 + 3b70: 3100 movi r1, 0 + 3b72: 1014 lrw r0, 0x200002f0 // 3bc0 + 3b74: e3ffeef8 bsr 0x1964 // 1964 <__memset_fast> + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b78: 1093 lrw r4, 0x20000350 // 3bc4 + EEPROM_Init(); //按键库初始化前先读取参数 + 3b7a: e0000489 bsr 0x448c // 448c + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b7e: 8405 ld.b r0, (r4, 0x5) + 3b80: 1030 lrw r1, 0x200002f0 // 3bc0 + 3b82: e00004e3 bsr 0x4548 // 4548 + if(rev == 0x00){ + 3b86: 3840 cmpnei r0, 0 + 3b88: 080e bt 0x3ba4 // 3ba4 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3b8a: 8405 ld.b r0, (r4, 0x5) + 3b8c: 102d lrw r1, 0x200002f0 // 3bc0 + 3b8e: e0000533 bsr 0x45f4 // 45f4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3b92: 100c lrw r0, 0x200002f0 // 3bc0 + 3b94: e00005a4 bsr 0x46dc // 46dc + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3b98: e0001b48 bsr 0x7228 // 7228 + + base_update_f = 0x01; //触摸状态强制更新 + 3b9c: 106b lrw r3, 0x20000743 // 3bc8 + 3b9e: 3201 movi r2, 1 + 3ba0: a340 st.b r2, (r3, 0x0) + +} + 3ba2: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3ba4: 102a lrw r1, 0x7af2 // 3bcc + 3ba6: 3000 movi r0, 0 + 3ba8: e3ffffd0 bsr 0x3b48 // 3b48 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3bac: 8405 ld.b r0, (r4, 0x5) + 3bae: 1025 lrw r1, 0x200002f0 // 3bc0 + 3bb0: e0000576 bsr 0x469c // 469c + 3bb4: 07ef br 0x3b92 // 3b92 + 3bb6: 0000 bkpt + 3bb8: 20000320 .long 0x20000320 + 3bbc: 2000030c .long 0x2000030c + 3bc0: 200002f0 .long 0x200002f0 + 3bc4: 20000350 .long 0x20000350 + 3bc8: 20000743 .long 0x20000743 + 3bcc: 00007af2 .long 0x00007af2 + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003bd0 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3bd0: 14d3 push r4-r6, r15 + 3bd2: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3bd4: 1289 lrw r4, 0x20000068 // 3cf8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bd6: 8400 ld.b r0, (r4, 0x0) + 3bd8: 1229 lrw r1, 0x2000088e // 3cfc + 3bda: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3bdc: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bde: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3be0: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3be4: 330a movi r3, 10 + 3be6: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bea: 8a60 ld.h r3, (r2, 0x0) + 3bec: 4b68 lsri r3, r3, 8 + 3bee: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bf2: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3bf4: 1243 lrw r2, 0x200008d2 // 3d00 + 3bf6: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bf8: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3bfc: 8d60 ld.h r3, (r5, 0x0) + 3bfe: 4b68 lsri r3, r3, 8 + 3c00: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c04: 8d60 ld.h r3, (r5, 0x0) + 3c06: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c0a: 117f lrw r3, 0x2000062c // 3d04 + 3c0c: 600c addu r0, r3 + 3c0e: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c10: 8800 ld.h r0, (r0, 0x0) + 3c12: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c16: 8401 ld.b r0, (r4, 0x1) + 3c18: 4001 lsli r0, r0, 1 + 3c1a: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c1c: 4da8 lsri r5, r5, 8 + 3c1e: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c22: 8ea0 ld.h r5, (r6, 0x0) + 3c24: 4da8 lsri r5, r5, 8 + 3c26: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c2a: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c2c: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c2e: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c32: 8ea0 ld.h r5, (r6, 0x0) + 3c34: 4da8 lsri r5, r5, 8 + 3c36: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c3a: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c3c: 8ea0 ld.h r5, (r6, 0x0) + 3c3e: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c42: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c44: 8800 ld.h r0, (r0, 0x0) + 3c46: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c4a: 8402 ld.b r0, (r4, 0x2) + 3c4c: 4001 lsli r0, r0, 1 + 3c4e: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c50: 4da8 lsri r5, r5, 8 + 3c52: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c56: 8ea0 ld.h r5, (r6, 0x0) + 3c58: 4da8 lsri r5, r5, 8 + 3c5a: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c5e: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c60: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c62: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c66: 8ea0 ld.h r5, (r6, 0x0) + 3c68: 4da8 lsri r5, r5, 8 + 3c6a: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c6e: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c70: 8ea0 ld.h r5, (r6, 0x0) + 3c72: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c76: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c78: 8800 ld.h r0, (r0, 0x0) + 3c7a: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c7e: 8403 ld.b r0, (r4, 0x3) + 3c80: 4001 lsli r0, r0, 1 + 3c82: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c84: 4da8 lsri r5, r5, 8 + 3c86: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c8a: 8ea0 ld.h r5, (r6, 0x0) + 3c8c: 4da8 lsri r5, r5, 8 + 3c8e: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c92: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c94: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c96: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c9a: 8ea0 ld.h r5, (r6, 0x0) + 3c9c: 4da8 lsri r5, r5, 8 + 3c9e: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3ca2: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3ca4: 8ea0 ld.h r5, (r6, 0x0) + 3ca6: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3caa: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cac: 8800 ld.h r0, (r0, 0x0) + 3cae: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cb2: 8404 ld.b r0, (r4, 0x4) + 3cb4: 4001 lsli r0, r0, 1 + 3cb6: 6040 addu r1, r0 + 3cb8: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3cba: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3cbc: 8920 ld.h r1, (r1, 0x0) + 3cbe: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cc2: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cc4: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cc6: 8a40 ld.h r2, (r2, 0x0) + 3cc8: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3ccc: 8b40 ld.h r2, (r3, 0x0) + 3cce: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd0: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cd2: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cd4: 4928 lsri r1, r1, 8 + 3cd6: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cda: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cde: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ce2: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3ce6: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3ce8: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3cea: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cec: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3cf0: e3fffee8 bsr 0x3ac0 // 3ac0 +// UARTTransmit(UART2,send_buff,send_len); + +} + 3cf4: 140d addi r14, r14, 52 + 3cf6: 1493 pop r4-r6, r15 + 3cf8: 20000068 .long 0x20000068 + 3cfc: 2000088e .long 0x2000088e + 3d00: 200008d2 .long 0x200008d2 + 3d04: 2000062c .long 0x2000062c + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003d08 : +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3d08: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3d0a: 3804 cmphsi r0, 5 + 3d0c: 0818 bt 0x3d3c // 3d3c + 3d0e: 106d lrw r3, 0x20000320 // 3d40 + 3d10: e3ffe7f6 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3d14: 0e0b0803 .long 0x0e0b0803 + 3d18: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3d1a: 9309 ld.w r0, (r3, 0x24) + 3d1c: 4809 lsri r0, r0, 9 + if(g_key.key_state & 0x1000){ + state = 0x01; + } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3d1e: 3301 movi r3, 1 + U8_T state = 0; + 3d20: 680c and r0, r3 + } + break; + } + + return state; +} + 3d22: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3d24: 9309 ld.w r0, (r3, 0x24) + 3d26: 480a lsri r0, r0, 10 + 3d28: 07fb br 0x3d1e // 3d1e + if(g_key.key_state & 0x0800){ + 3d2a: 9309 ld.w r0, (r3, 0x24) + 3d2c: 480b lsri r0, r0, 11 + 3d2e: 07f8 br 0x3d1e // 3d1e + if(g_key.key_state & 0x1000){ + 3d30: 9309 ld.w r0, (r3, 0x24) + 3d32: 480c lsri r0, r0, 12 + 3d34: 07f5 br 0x3d1e // 3d1e + if(g_key.key_state & 0x2000){ + 3d36: 9309 ld.w r0, (r3, 0x24) + 3d38: 480d lsri r0, r0, 13 + 3d3a: 07f2 br 0x3d1e // 3d1e + U8_T state = 0; + 3d3c: 3000 movi r0, 0 + 3d3e: 07f2 br 0x3d22 // 3d22 + 3d40: 20000320 .long 0x20000320 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003d44 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3d44: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3d46: 118a lrw r4, 0x20000320 // 3dec + 3d48: 8465 ld.b r3, (r4, 0x5) + 3d4a: 3b42 cmpnei r3, 2 + 3d4c: 081c bt 0x3d84 // 3d84 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d4e: 3300 movi r3, 0 + 3d50: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3d52: 8466 ld.b r3, (r4, 0x6) + 3d54: 3b42 cmpnei r3, 2 + 3d56: 0820 bt 0x3d96 // 3d96 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d58: 3300 movi r3, 0 + 3d5a: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3d5c: 8467 ld.b r3, (r4, 0x7) + 3d5e: 3b42 cmpnei r3, 2 + 3d60: 0824 bt 0x3da8 // 3da8 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d62: 3300 movi r3, 0 + 3d64: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3d66: e0000cdb bsr 0x571c // 571c + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3d6a: 8468 ld.b r3, (r4, 0x8) + 3d6c: 3b42 cmpnei r3, 2 + 3d6e: 0829 bt 0x3dc0 // 3dc0 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3d70: 3300 movi r3, 0 + 3d72: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3d74: e0000d88 bsr 0x5884 // 5884 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3d78: 8469 ld.b r3, (r4, 0x9) + 3d7a: 3b42 cmpnei r3, 2 + 3d7c: 082e bt 0x3dd8 // 3dd8 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3d7e: 3300 movi r3, 0 + 3d80: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3d82: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d84: 3b44 cmpnei r3, 4 + 3d86: 0fe4 bf 0x3d4e // 3d4e + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3d88: 3b41 cmpnei r3, 1 + 3d8a: 0be4 bt 0x3d52 // 3d52 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d8c: 3300 movi r3, 0 + 3d8e: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3d90: e0000b64 bsr 0x5458 // 5458 + 3d94: 07df br 0x3d52 // 3d52 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d96: 3b44 cmpnei r3, 4 + 3d98: 0fe0 bf 0x3d58 // 3d58 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3d9a: 3b41 cmpnei r3, 1 + 3d9c: 0be0 bt 0x3d5c // 3d5c + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d9e: 3300 movi r3, 0 + 3da0: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3da2: e0000bcd bsr 0x553c // 553c + 3da6: 07db br 0x3d5c // 3d5c + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3da8: 3b44 cmpnei r3, 4 + 3daa: 0804 bt 0x3db2 // 3db2 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3dac: 3300 movi r3, 0 + 3dae: a467 st.b r3, (r4, 0x7) + 3db0: 07dd br 0x3d6a // 3d6a + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3db2: 3b41 cmpnei r3, 1 + 3db4: 0bdb bt 0x3d6a // 3d6a + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3db6: 3300 movi r3, 0 + 3db8: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3dba: e0000c33 bsr 0x5620 // 5620 + 3dbe: 07d6 br 0x3d6a // 3d6a + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dc0: 3b44 cmpnei r3, 4 + 3dc2: 0804 bt 0x3dca // 3dca + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dc4: 3300 movi r3, 0 + 3dc6: a468 st.b r3, (r4, 0x8) + 3dc8: 07d8 br 0x3d78 // 3d78 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3dca: 3b41 cmpnei r3, 1 + 3dcc: 0bd6 bt 0x3d78 // 3d78 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dce: 3300 movi r3, 0 + 3dd0: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3dd2: e0000cdb bsr 0x5788 // 5788 + 3dd6: 07d1 br 0x3d78 // 3d78 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dd8: 3b44 cmpnei r3, 4 + 3dda: 0fd2 bf 0x3d7e // 3d7e + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3ddc: 3b41 cmpnei r3, 1 + 3dde: 0bd2 bt 0x3d82 // 3d82 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3de0: 3300 movi r3, 0 + 3de2: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3de4: e0000d86 bsr 0x58f0 // 58f0 +} + 3de8: 07cd br 0x3d82 // 3d82 + 3dea: 0000 bkpt + 3dec: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003df0 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3df0: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3df2: 106c lrw r3, 0x200003f3 // 3e20 + 3df4: 8340 ld.b r2, (r3, 0x0) + 3df6: 3a41 cmpnei r2, 1 + 3df8: 0c04 bf 0x3e00 // 3e00 + 3dfa: 8362 ld.b r3, (r3, 0x2) + 3dfc: 3b45 cmpnei r3, 5 + 3dfe: 0c10 bf 0x3e1e // 3e1e + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3e00: 1069 lrw r3, 0x20000320 // 3e24 + 3e02: 8359 ld.b r2, (r3, 0x19) + 3e04: 3a41 cmpnei r2, 1 + 3e06: 080c bt 0x3e1e // 3e1e + if(SysTick_1ms - g_key.key_dug_tick >= 50){ + 3e08: 1028 lrw r1, 0x200000b8 // 3e28 + 3e0a: 9140 ld.w r2, (r1, 0x0) + 3e0c: 930b ld.w r0, (r3, 0x2c) + 3e0e: 6082 subu r2, r0 + 3e10: 3031 movi r0, 49 + 3e12: 6480 cmphs r0, r2 + 3e14: 0805 bt 0x3e1e // 3e1e + g_key.key_dug_tick = SysTick_1ms; + 3e16: 9140 ld.w r2, (r1, 0x0) + 3e18: b34b st.w r2, (r3, 0x2c) + + /*打印触摸按键数值*/ + TouchKey_RS485_Printf(); + 3e1a: e3fffedb bsr 0x3bd0 // 3bd0 + } + } +} + 3e1e: 1490 pop r15 + 3e20: 200003f3 .long 0x200003f3 + 3e24: 20000320 .long 0x20000320 + 3e28: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003e2c : +void Touch_Key_Task(void){ + 3e2c: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3e2e: 1132 lrw r1, 0x200000b8 // 3ef4 + 3e30: 1172 lrw r3, 0x20000320 // 3ef8 + 3e32: 9140 ld.w r2, (r1, 0x0) + 3e34: 930a ld.w r0, (r3, 0x28) + 3e36: 6082 subu r2, r0 + 3e38: 3a04 cmphsi r2, 5 + 3e3a: 0806 bt 0x3e46 // 3e46 + break; + } + } + } + + Touch_Key_Event_Handling(); + 3e3c: e3ffff84 bsr 0x3d44 // 3d44 + + TouchKey_Set_Interface_Task(); + 3e40: e3ffffd8 bsr 0x3df0 // 3df0 + +} + 3e44: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3e46: 9140 ld.w r2, (r1, 0x0) + 3e48: b34a st.w r2, (r3, 0x28) + if(Key_Map != 0x00){ + 3e4a: 112d lrw r1, 0x20000760 // 3efc + 3e4c: 9140 ld.w r2, (r1, 0x0) + 3e4e: 3a40 cmpnei r2, 0 + 3e50: 0c02 bf 0x3e54 // 3e54 + g_key.key_state = Key_Map; + 3e52: 9140 ld.w r2, (r1, 0x0) + 3e54: 1189 lrw r4, 0x20000320 // 3ef8 +void Touch_Key_Task(void){ + 3e56: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3e58: b349 st.w r2, (r3, 0x24) +void Touch_Key_Task(void){ + 3e5a: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3e5c: 11e9 lrw r7, 0x257 // 3f00 + switch (g_key.KEY_STA[i]) { + 3e5e: 8460 ld.b r3, (r4, 0x0) + 3e60: 3b41 cmpnei r3, 1 + 3e62: 0c24 bf 0x3eaa // 3eaa + 3e64: 3b40 cmpnei r3, 0 + 3e66: 0c0a bf 0x3e7a // 3e7a + 3e68: 3b42 cmpnei r3, 2 + 3e6a: 0c39 bf 0x3edc // 3edc + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3e6c: 2500 addi r5, 1 + 3e6e: 7554 zextb r5, r5 + 3e70: 3d45 cmpnei r5, 5 + 3e72: 2400 addi r4, 1 + 3e74: 2601 addi r6, 2 + 3e76: 0bf4 bt 0x3e5e // 3e5e + 3e78: 07e2 br 0x3e3c // 3e3c + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3e7a: 6c17 mov r0, r5 + 3e7c: e3ffff46 bsr 0x3d08 // 3d08 + 3e80: 3841 cmpnei r0, 1 + 3e82: 080f bt 0x3ea0 // 3ea0 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3e84: 8474 ld.b r3, (r4, 0x14) + 3e86: 3b01 cmphsi r3, 2 + 3e88: 0804 bt 0x3e90 // 3e90 + g_key.delayCnt[i]++; + 3e8a: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3e8c: a474 st.b r3, (r4, 0x14) + 3e8e: 07ef br 0x3e6c // 3e6c + Controlled_Buzzer(0x01); + 3e90: 3001 movi r0, 1 + 3e92: e0000769 bsr 0x4d64 // 4d64 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3e96: 3301 movi r3, 1 + 3e98: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3e9a: 3300 movi r3, 0 + 3e9c: ae6d st.h r3, (r6, 0x1a) + 3e9e: 07f7 br 0x3e8c // 3e8c + g_key.delayCnt[i] = 0; + 3ea0: 3300 movi r3, 0 + 3ea2: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ea4: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3ea6: a465 st.b r3, (r4, 0x5) + 3ea8: 07e2 br 0x3e6c // 3e6c + g_key.key_time[i]++; + 3eaa: 8e6d ld.h r3, (r6, 0x1a) + 3eac: 2300 addi r3, 1 + 3eae: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb0: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3eb2: ae6d st.h r3, (r6, 0x1a) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb4: 0c0c bf 0x3ecc // 3ecc + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3eb6: 6c17 mov r0, r5 + 3eb8: e3ffff28 bsr 0x3d08 // 3d08 + 3ebc: 3840 cmpnei r0, 0 + 3ebe: 0bd7 bt 0x3e6c // 3e6c + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ec0: 3301 movi r3, 1 + 3ec2: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3ec4: 3300 movi r3, 0 + 3ec6: ae6d st.h r3, (r6, 0x1a) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ec8: a460 st.b r3, (r4, 0x0) + 3eca: 07d1 br 0x3e6c // 3e6c + g_key.KEY_STA[i] = KEY_STA_S2; + 3ecc: 3302 movi r3, 2 + 3ece: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ed0: 3300 movi r3, 0 + 3ed2: ae6d st.h r3, (r6, 0x1a) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3ed4: 3303 movi r3, 3 + 3ed6: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3ed8: 3302 movi r3, 2 + 3eda: 07e6 br 0x3ea6 // 3ea6 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3edc: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ede: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee0: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee2: e3ffff13 bsr 0x3d08 // 3d08 + 3ee6: 3840 cmpnei r0, 0 + 3ee8: 0bc2 bt 0x3e6c // 3e6c + g_key.KEY_STA[i] = KEY_STA_S0; + 3eea: 3300 movi r3, 0 + 3eec: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3eee: 3304 movi r3, 4 + 3ef0: 07db br 0x3ea6 // 3ea6 + 3ef2: 0000 bkpt + 3ef4: 200000b8 .long 0x200000b8 + 3ef8: 20000320 .long 0x20000320 + 3efc: 20000760 .long 0x20000760 + 3f00: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003f04 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3f04: 6040 addu r1, r0 + U8_T data_sum = 0; + 3f06: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3f0c: 6cce nor r3, r3 + 3f0e: 740c zextb r0, r3 +} + 3f10: 783c jmp r15 + data_sum += data[i]; + 3f12: 8040 ld.b r2, (r0, 0x0) + 3f14: 60c8 addu r3, r2 + 3f16: 74cc zextb r3, r3 + 3f18: 2000 addi r0, 1 + 3f1a: 07f7 br 0x3f08 // 3f08 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003f1c : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3f1c: 14d2 push r4-r5, r15 + 3f1e: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3f20: 5992 addi r4, r1, 5 + 3f22: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3f24: 3331 movi r3, 49 + 3f26: 650c cmphs r3, r4 + 3f28: 0803 bt 0x3f2e // 3f2e + para_len = 44; + 3f2a: 312c movi r1, 44 + reply_len = 50; + 3f2c: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3f2e: 3300 movi r3, 0 + 3f30: 2b50 subi r3, 81 + 3f32: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3f36: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3f3a: 1077 lrw r3, 0x20000350 // 3f94 + 3f3c: 8360 ld.b r3, (r3, 0x0) + 3f3e: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3f42: 3300 movi r3, 0 + 3f44: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3f4e: 3200 movi r2, 0 + 3f50: 60f8 addu r3, r14 + 3f52: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f54: 6c53 mov r1, r4 + 3f56: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3f58: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f5a: e3ffffd5 bsr 0x3f04 // 3f04 + + if (detect_inf.control_model == 0x00){ + 3f5e: 106f lrw r3, 0x200003cc // 3f98 + 3f60: 8363 ld.b r3, (r3, 0x3) + 3f62: 3b40 cmpnei r3, 0 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f64: dc0e0003 st.b r0, (r14, 0x3) + if (detect_inf.control_model == 0x00){ + 3f68: 080f bt 0x3f86 // 3f86 + MCU485_SendData(send_data,reply_len); + 3f6a: 6c53 mov r1, r4 + 3f6c: 6c3b mov r0, r14 + 3f6e: e3fffda9 bsr 0x3ac0 // 3ac0 + }else { + UARTTransmit(UART2,send_data,reply_len); + } +} + 3f72: 140f addi r14, r14, 60 + 3f74: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3f76: 6c8f mov r2, r3 + 3f78: 58ac addu r5, r0, r3 + 3f7a: 60b8 addu r2, r14 + 3f7c: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + UARTTransmit(UART2,send_data,reply_len); + 3f86: 1066 lrw r3, 0x20000038 // 3f9c + 3f88: 6c93 mov r2, r4 + 3f8a: 9300 ld.w r0, (r3, 0x0) + 3f8c: 6c7b mov r1, r14 + 3f8e: e3fff0c7 bsr 0x211c // 211c + 3f92: 07f0 br 0x3f72 // 3f72 + 3f94: 20000350 .long 0x20000350 + 3f98: 200003cc .long 0x200003cc + 3f9c: 20000038 .long 0x20000038 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003fa0 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fa0: 14d4 push r4-r7, r15 + 3fa2: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fa4: 80a0 ld.b r5, (r0, 0x0) + 3fa6: 5dc3 subi r6, r5, 1 + 3fa8: 7598 zextb r6, r6 + 3faa: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fac: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fae: 0834 bt 0x4016 // 4016 + 3fb0: 1125 lrw r1, 0x200002f0 // 4044 + 3fb2: 350b movi r5, 11 + 3fb4: 5862 addi r3, r0, 1 + 3fb6: 6140 addu r5, r0 + 3fb8: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3fd6: 8479 ld.b r3, (r4, 0x19) + 3fd8: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3fda: 847a ld.b r3, (r4, 0x1a) + 3fdc: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3fde: 847b ld.b r3, (r4, 0x1b) + 3fe0: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3fe2: 847c ld.b r3, (r4, 0x1c) + 3fe4: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fe6: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3fe8: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fea: 1037 lrw r1, 0x200002f0 // 4044 + touch_para.longpress_time = para[29]; + 3fec: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fee: e0000303 bsr 0x45f4 // 45f4 + + if(rev == 0x00){ + 3ff2: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff4: 6d43 mov r5, r0 + if(rev == 0x00){ + 3ff6: 0805 bt 0x4000 // 4000 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3ff8: 1033 lrw r1, 0x200002f0 // 4044 + 3ffa: 6c1b mov r0, r6 + 3ffc: e0000270 bsr 0x44dc // 44dc + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4000: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4002: 3102 movi r1, 2 + 4004: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 4006: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 400a: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 400e: e3ffff87 bsr 0x3f1c // 3f1c +} + 4012: 1401 addi r14, r14, 4 + 4014: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 4016: 3d40 cmpnei r5, 0 + 4018: 0c03 bf 0x401e // 401e + rev = 0x01; + 401a: 3501 movi r5, 1 + 401c: 07f2 br 0x4000 // 4000 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 401e: 8061 ld.b r3, (r0, 0x1) + 4020: 104a lrw r2, 0x762c // 4048 + 4022: 102b lrw r1, 0x7b1f // 404c + 4024: 3000 movi r0, 0 + 4026: e3fffd91 bsr 0x3b48 // 3b48 + if( (para[1] > 0) && (para[1] <= 3) ){ + 402a: 8461 ld.b r3, (r4, 0x1) + 402c: 2b00 subi r3, 1 + 402e: 74cc zextb r3, r3 + 4030: 3b02 cmphsi r3, 3 + 4032: 0bf4 bt 0x401a // 401a + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4034: 1047 lrw r2, 0x200003f3 // 4050 + g_eeprom.key_sens_level = para[1] - 1; + 4036: 1008 lrw r0, 0x20000350 // 4054 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4038: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 403a: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 403c: e00001c2 bsr 0x43c0 // 43c0 + 4040: 07e0 br 0x4000 // 4000 + 4042: 0000 bkpt + 4044: 200002f0 .long 0x200002f0 + 4048: 0000762c .long 0x0000762c + 404c: 00007b1f .long 0x00007b1f + 4050: 200003f3 .long 0x200003f3 + 4054: 20000350 .long 0x20000350 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00004058 : +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 4058: 14d2 push r4-r5, r15 + 405a: 142d subi r14, r14, 52 + 405c: 6d03 mov r4, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 405e: 3232 movi r2, 50 + 4060: 3100 movi r1, 0 + 4062: 6c3b mov r0, r14 + 4064: e3ffec80 bsr 0x1964 // 1964 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 4068: 8400 ld.b r0, (r4, 0x0) + reply_buff[reply_len++] = 0x02; + 406a: 3302 movi r3, 2 + if(para[0] == 0x00){ + 406c: 3840 cmpnei r0, 0 + reply_buff[reply_len++] = 0x02; + 406e: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 4072: 082d bt 0x40cc // 40cc + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4074: 1170 lrw r3, 0x20000350 // 4134 + 4076: 8365 ld.b r3, (r3, 0x5) + 4078: 2300 addi r3, 1 + 407a: 1130 lrw r1, 0x200002f0 // 4138 + 407c: 6c87 mov r2, r1 + 407e: dc6e0001 st.b r3, (r14, 0x1) + 4082: 6cfb mov r3, r14 + + for(i=0;i> 8; + 408a: 4c88 lsri r4, r4, 8 + 408c: a383 st.b r4, (r3, 0x3) + for(i=0;i> 8; + 4096: 4c88 lsri r4, r4, 8 + 4098: a38f st.b r4, (r3, 0xf) + 409a: 2101 addi r1, 2 + 409c: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 40a0: 8260 ld.b r3, (r2, 0x0) + 40a2: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 40a6: 8261 ld.b r3, (r2, 0x1) + 40a8: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 40ac: 8262 ld.b r3, (r2, 0x2) + 40ae: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 40b2: 8263 ld.b r3, (r2, 0x3) + 40b4: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40b8: 8278 ld.b r3, (r2, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40ba: dc6e001e st.b r3, (r14, 0x1e) + 40be: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 40c0: 7445 zexth r1, r1 + 40c2: 6c3b mov r0, r14 + 40c4: e3ffff2c bsr 0x3f1c // 3f1c +} + 40c8: 140d addi r14, r14, 52 + 40ca: 1492 pop r4-r5, r15 + }else if(para[0] <= 3){ + 40cc: 3803 cmphsi r0, 4 + 40ce: 0831 bt 0x4130 // 4130 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 40d0: 2800 subi r0, 1 + 40d2: 7400 zextb r0, r0 + 40d4: 1039 lrw r1, 0x200002f0 // 4138 + 40d6: e0000239 bsr 0x4548 // 4548 + if(rev != 0x00){ + 40da: 3840 cmpnei r0, 0 + 40dc: 10b7 lrw r5, 0x200002f0 // 4138 + 40de: 0c07 bf 0x40ec // 40ec + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 40e0: 8400 ld.b r0, (r4, 0x0) + 40e2: 2800 subi r0, 1 + 40e4: 7400 zextb r0, r0 + 40e6: 6c57 mov r1, r5 + 40e8: e00002da bsr 0x469c // 469c + reply_buff[reply_len++] = para[0]; + 40ec: 8460 ld.b r3, (r4, 0x0) + 40ee: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 40f6: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 40f8: 8902 ld.h r0, (r1, 0x4) + 40fa: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 40fe: 4808 lsri r0, r0, 8 + 4100: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 410a: 4808 lsri r0, r0, 8 + 410c: a30f st.b r0, (r3, 0xf) + 410e: 2101 addi r1, 2 + 4110: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4114: 8560 ld.b r3, (r5, 0x0) + 4116: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 411a: 8561 ld.b r3, (r5, 0x1) + 411c: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4120: 8562 ld.b r3, (r5, 0x2) + 4122: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 4126: 8563 ld.b r3, (r5, 0x3) + 4128: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 412c: 8578 ld.b r3, (r5, 0x18) + 412e: 07c6 br 0x40ba // 40ba + reply_buff[reply_len++] = 0x00; + 4130: 3102 movi r1, 2 + 4132: 07c7 br 0x40c0 // 40c0 + 4134: 20000350 .long 0x20000350 + 4138: 200002f0 .long 0x200002f0 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +0000413c : +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 413c: 14d0 push r15 + 413e: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4140: 8060 ld.b r3, (r0, 0x0) + 4142: 3b41 cmpnei r3, 1 + 4144: 0810 bt 0x4164 // 4164 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 4146: 106b lrw r3, 0x20000320 // 4170 + 4148: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 414a: a359 st.b r2, (r3, 0x19) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 414c: 3303 movi r3, 3 + 414e: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4152: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4154: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 4156: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 4158: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 415c: e3fffee0 bsr 0x3f1c // 3f1c +} + 4160: 1401 addi r14, r14, 4 + 4162: 1490 pop r15 + }else if(para[0] == 0x02){ + 4164: 3b42 cmpnei r3, 2 + 4166: 0bf3 bt 0x414c // 414c + g_key.key_dug_printf = 0x00; + 4168: 1062 lrw r3, 0x20000320 // 4170 + 416a: 3200 movi r2, 0 + 416c: 07ef br 0x414a // 414a + 416e: 0000 bkpt + 4170: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004174 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4174: 14d0 push r15 + 4176: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=0; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4178: 1150 lrw r2, 0x200008d2 // 4238 + reply_buff[reply_len++] = 0x04; //CMD + 417a: 3304 movi r3, 4 + 417c: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4180: 8a60 ld.h r3, (r2, 0x0) + 4182: 4b68 lsri r3, r3, 8 + 4184: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4188: 8a60 ld.h r3, (r2, 0x0) + 418a: dc6e0002 st.b r3, (r14, 0x2) + reply_buff[reply_len++] = sampling_data0[i]>>8; + reply_buff[reply_len++] = sampling_data0[i]&0xff; + reply_buff[reply_len++] = baseline_data0[i]>>8; + reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 418e: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4190: 116b lrw r3, 0x2000062c // 423c + 4192: 8b20 ld.h r1, (r3, 0x0) + 4194: 4928 lsri r1, r1, 8 + 4196: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 419a: 8b20 ld.h r1, (r3, 0x0) + 419c: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41a0: 8a28 ld.h r1, (r2, 0x10) + 41a2: 4928 lsri r1, r1, 8 + 41a4: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41a8: 8a28 ld.h r1, (r2, 0x10) + 41aa: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ae: 8b28 ld.h r1, (r3, 0x10) + 41b0: 4928 lsri r1, r1, 8 + 41b2: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41b6: 8b28 ld.h r1, (r3, 0x10) + 41b8: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41bc: 8a29 ld.h r1, (r2, 0x12) + 41be: 4928 lsri r1, r1, 8 + 41c0: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41c4: 8a29 ld.h r1, (r2, 0x12) + 41c6: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ca: 8b29 ld.h r1, (r3, 0x12) + 41cc: 4928 lsri r1, r1, 8 + 41ce: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41d2: 8b29 ld.h r1, (r3, 0x12) + 41d4: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41d8: 8a2e ld.h r1, (r2, 0x1c) + 41da: 4928 lsri r1, r1, 8 + 41dc: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41e0: 8a2e ld.h r1, (r2, 0x1c) + 41e2: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41e6: 8b2e ld.h r1, (r3, 0x1c) + 41e8: 4928 lsri r1, r1, 8 + 41ea: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41ee: 8b2e ld.h r1, (r3, 0x1c) + 41f0: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41f4: 8a2d ld.h r1, (r2, 0x1a) + 41f6: 4928 lsri r1, r1, 8 + 41f8: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41fc: 8a2d ld.h r1, (r2, 0x1a) + 41fe: dc2e0012 st.b r1, (r14, 0x12) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4202: 8b2d ld.h r1, (r3, 0x1a) + 4204: 4928 lsri r1, r1, 8 + 4206: dc2e0013 st.b r1, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 420a: 8b2d ld.h r1, (r3, 0x1a) + 420c: dc2e0014 st.b r1, (r14, 0x14) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4210: 8a2c ld.h r1, (r2, 0x18) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4212: 8a4c ld.h r2, (r2, 0x18) + 4214: dc4e0016 st.b r2, (r14, 0x16) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4218: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 421a: 8b4c ld.h r2, (r3, 0x18) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 421c: dc2e0015 st.b r1, (r14, 0x15) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4220: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4222: 8b6c ld.h r3, (r3, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4224: 3119 movi r1, 25 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4226: dc4e0017 st.b r2, (r14, 0x17) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 422a: dc6e0018 st.b r3, (r14, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 422e: e3fffe77 bsr 0x3f1c // 3f1c +} + 4232: 140d addi r14, r14, 52 + 4234: 1490 pop r15 + 4236: 0000 bkpt + 4238: 200008d2 .long 0x200008d2 + 423c: 2000062c .long 0x2000062c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004240 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4240: 14d0 push r15 + 4242: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4244: 3305 movi r3, 5 + 4246: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 424a: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 424c: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 424e: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4250: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4254: e3fffe64 bsr 0x3f1c // 3f1c + 4258: 0400 br 0x4258 // 4258 + +Disassembly of section .text.TouchKey_Comm_Processing: + +0000425c : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 425c: 14d2 push r4-r5, r15 + 425e: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4260: 8060 ld.b r3, (r0, 0x0) + 4262: 32af movi r2, 175 + 4264: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4266: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 4268: 0c09 bf 0x427a // 427a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 426a: 3000 movi r0, 0 + 426c: 114b lrw r2, 0x7648 // 4318 + 426e: 112c lrw r1, 0x7b2f // 431c + 4270: e3fffc6c bsr 0x3b48 // 3b48 + return 0x01; + 4274: 3001 movi r0, 1 + break; + } + + + return 0; +} + 4276: 1401 addi r14, r14, 4 + 4278: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 427a: 114a lrw r2, 0x20000350 // 4320 + 427c: 8061 ld.b r3, (r0, 0x1) + 427e: 8240 ld.b r2, (r2, 0x0) + 4280: 64ca cmpne r2, r3 + 4282: 0c08 bf 0x4292 // 4292 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4284: 3000 movi r0, 0 + 4286: 1145 lrw r2, 0x7648 // 4318 + 4288: 1127 lrw r1, 0x7b41 // 4324 + 428a: e3fffc5f bsr 0x3b48 // 3b48 + return 0x02; + 428e: 3002 movi r0, 2 + 4290: 07f3 br 0x4276 // 4276 + if(data[2] != len){ + 4292: 8062 ld.b r3, (r0, 0x2) + 4294: 750d zexth r4, r3 + 4296: 6452 cmpne r4, r1 + 4298: 0c09 bf 0x42aa // 42aa + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 429a: b820 st.w r1, (r14, 0x0) + 429c: 105f lrw r2, 0x7648 // 4318 + 429e: 1123 lrw r1, 0x7b52 // 4328 + 42a0: 3000 movi r0, 0 + 42a2: e3fffc53 bsr 0x3b48 // 3b48 + return 0x03; + 42a6: 3003 movi r0, 3 + 42a8: 07e7 br 0x4276 // 4276 + if(data[len-1] != 0xFA){ + 42aa: 60c0 addu r3, r0 + 42ac: 2b00 subi r3, 1 + 42ae: 8360 ld.b r3, (r3, 0x0) + 42b0: 32fa movi r2, 250 + 42b2: 648e cmpne r3, r2 + 42b4: 0c07 bf 0x42c2 // 42c2 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 42b6: 1059 lrw r2, 0x7648 // 4318 + 42b8: 103d lrw r1, 0x7b65 // 432c + 42ba: 3000 movi r0, 0 + 42bc: e3fffc46 bsr 0x3b48 // 3b48 + 42c0: 07f3 br 0x42a6 // 42a6 + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 42c2: 5c23 subi r1, r4, 1 + 42c4: 7445 zexth r1, r1 + 42c6: e3fffe1f bsr 0x3f04 // 3f04 + 42ca: 3840 cmpnei r0, 0 + 42cc: 0806 bt 0x42d8 // 42d8 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 42ce: 1053 lrw r2, 0x7648 // 4318 + 42d0: 1038 lrw r1, 0x7b75 // 4330 + 42d2: e3fffc3b bsr 0x3b48 // 3b48 + 42d6: 07e8 br 0x42a6 // 42a6 + switch(data[4]){ + 42d8: 8504 ld.b r0, (r5, 0x4) + 42da: 2800 subi r0, 1 + 42dc: 3804 cmphsi r0, 5 + 42de: 080c bt 0x42f6 // 42f6 + 42e0: 5c37 subi r1, r4, 6 + 42e2: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42e4: 7445 zexth r1, r1 + switch(data[4]){ + 42e6: e3ffe50b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42ea: 0803 .short 0x0803 + 42ec: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 42f0: 6c17 mov r0, r5 + 42f2: e3fffe57 bsr 0x3fa0 // 3fa0 + return 0; + 42f6: 3000 movi r0, 0 + 42f8: 07bf br 0x4276 // 4276 + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 42fa: 6c17 mov r0, r5 + 42fc: e3fffeae bsr 0x4058 // 4058 + 4300: 07fb br 0x42f6 // 42f6 + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4302: 6c17 mov r0, r5 + 4304: e3ffff1c bsr 0x413c // 413c + 4308: 07f7 br 0x42f6 // 42f6 + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 430a: 6c17 mov r0, r5 + 430c: e3ffff34 bsr 0x4174 // 4174 + 4310: 07f3 br 0x42f6 // 42f6 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4312: 6c17 mov r0, r5 + 4314: e3ffff96 bsr 0x4240 // 4240 + 4318: 00007648 .long 0x00007648 + 431c: 00007b2f .long 0x00007b2f + 4320: 20000350 .long 0x20000350 + 4324: 00007b41 .long 0x00007b41 + 4328: 00007b52 .long 0x00007b52 + 432c: 00007b65 .long 0x00007b65 + 4330: 00007b75 .long 0x00007b75 + +Disassembly of section .text.EEPROM_CheckSum: + +00004334 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4334: 6cc3 mov r3, r0 + 4336: 6040 addu r1, r0 + U8_T data_sum = 0; + 4338: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 433e: 783c jmp r15 + data_sum += data[i]; + 4340: 8340 ld.b r2, (r3, 0x0) + 4342: 6008 addu r0, r2 + 4344: 7400 zextb r0, r0 + 4346: 2300 addi r3, 1 + 4348: 07f9 br 0x433a // 433a + +Disassembly of section .text.EEPROM_ReadParaInfo: + +0000434c : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 434c: 14d1 push r4, r15 + 434e: 143b subi r14, r14, 108 + 4350: 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)); + 4352: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4354: 3264 movi r2, 100 + 4356: 3100 movi r1, 0 + 4358: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 435a: b860 st.w r3, (r14, 0x0) + 435c: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4360: e3ffeb02 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4364: 6cbb mov r2, r14 + 4366: 3104 movi r1, 4 + 4368: 1014 lrw r0, 0x10000020 // 43b8 + 436a: e3fff387 bsr 0x2a78 // 2a78 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 436e: d84e0000 ld.b r2, (r14, 0x0) + 4372: 33a6 movi r3, 166 + 4374: 64ca cmpne r2, r3 + 4376: 0c04 bf 0x437e // 437e + return 0x00; + } + } + } + + return 0x01; + 4378: 3001 movi r0, 1 +} + 437a: 141b addi r14, r14, 108 + 437c: 1491 pop r4, r15 + read_len |= read_info[1]; + 437e: d82e0002 ld.b r1, (r14, 0x2) + 4382: d86e0001 ld.b r3, (r14, 0x1) + 4386: 4128 lsli r1, r1, 8 + 4388: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 438a: 3364 movi r3, 100 + 438c: 644c cmphs r3, r1 + 438e: 0ff5 bf 0x4378 // 4378 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4390: 1a02 addi r2, r14, 8 + 4392: 100b lrw r0, 0x10000024 // 43bc + 4394: e3fff372 bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 4398: 3106 movi r1, 6 + 439a: 1802 addi r0, r14, 8 + 439c: e3ffffcc bsr 0x4334 // 4334 + 43a0: d86e0003 ld.b r3, (r14, 0x3) + 43a4: 640e cmpne r3, r0 + 43a6: 0be9 bt 0x4378 // 4378 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 43a8: 3206 movi r2, 6 + 43aa: 1902 addi r1, r14, 8 + 43ac: 6c13 mov r0, r4 + 43ae: e3ffeb1f bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 43b2: 3000 movi r0, 0 + 43b4: 07e3 br 0x437a // 437a + 43b6: 0000 bkpt + 43b8: 10000020 .long 0x10000020 + 43bc: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000043c0 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43c0: 14d0 push r15 + 43c2: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 43c4: 3300 movi r3, 0 + 43c6: 2b59 subi r3, 90 + 43c8: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 43cc: 3306 movi r3, 6 + 43ce: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 43d2: 3300 movi r3, 0 + 43d4: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43d8: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43da: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43dc: 3206 movi r2, 6 + 43de: 6c0f mov r0, r3 + 43e0: e3ffeb06 bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 43e4: 3106 movi r1, 6 + 43e6: e3ffffa7 bsr 0x4334 // 4334 + 43ea: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 43ee: 6cbb mov r2, r14 + 43f0: 310a movi r1, 10 + 43f2: 1004 lrw r0, 0x10000020 // 4400 + 43f4: e3fff2f2 bsr 0x29d8 // 29d8 + + return 0; +} + 43f8: 3000 movi r0, 0 + 43fa: 141b addi r14, r14, 108 + 43fc: 1490 pop r15 + 43fe: 0000 bkpt + 4400: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004404 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4404: 14d1 push r4, r15 + 4406: 1421 subi r14, r14, 4 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 4408: 8062 ld.b r3, (r0, 0x2) + 440a: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 440c: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 440e: 0c03 bf 0x4414 // 4414 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4410: 3309 movi r3, 9 + 4412: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4414: 8442 ld.b r2, (r4, 0x2) + 4416: 1036 lrw r1, 0x7b84 // 446c + 4418: 3000 movi r0, 0 + 441a: e3fffb97 bsr 0x3b48 // 3b48 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 441e: 8463 ld.b r3, (r4, 0x3) + 4420: 3b02 cmphsi r3, 3 + 4422: 0c03 bf 0x4428 // 4428 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4424: 3300 movi r3, 0 + 4426: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 4428: 8464 ld.b r3, (r4, 0x4) + 442a: 3b01 cmphsi r3, 2 + 442c: 0c03 bf 0x4432 // 4432 + { + info->backlight_en = 0x01; + 442e: 3301 movi r3, 1 + 4430: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag >= 0x02) + 4432: 8461 ld.b r3, (r4, 0x1) + 4434: 3b01 cmphsi r3, 2 + 4436: 0c03 bf 0x443c // 443c + { + info->pipe_flag = 0x00; + 4438: 3300 movi r3, 0 + 443a: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 443c: 8460 ld.b r3, (r4, 0x0) + 443e: 2b00 subi r3, 1 + 4440: 74cc zextb r3, r3 + 4442: 32fd movi r2, 253 + 4444: 64c8 cmphs r2, r3 + 4446: 0803 bt 0x444c // 444c + { + info->pipe_flag = 0x01; + 4448: 3301 movi r3, 1 + 444a: a461 st.b r3, (r4, 0x1) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 444c: 8465 ld.b r3, (r4, 0x5) + 444e: 3b02 cmphsi r3, 3 + 4450: 0c03 bf 0x4456 // 4456 + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4452: 3301 movi r3, 1 + 4454: a465 st.b r3, (r4, 0x5) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info save_curr %d backlight_en:%d key_sens_level:%d",info->temp_select,info->backlight_en,info->key_sens_level); + 4456: 8425 ld.b r1, (r4, 0x5) + 4458: b820 st.w r1, (r14, 0x0) + 445a: 8464 ld.b r3, (r4, 0x4) + 445c: 8443 ld.b r2, (r4, 0x3) + 445e: 1025 lrw r1, 0x7b9b // 4470 + 4460: 3000 movi r0, 0 + 4462: e3fffb73 bsr 0x3b48 // 3b48 + + return 0; +} + 4466: 3000 movi r0, 0 + 4468: 1401 addi r14, r14, 4 + 446a: 1491 pop r4, r15 + 446c: 00007b84 .long 0x00007b84 + 4470: 00007b9b .long 0x00007b9b + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004474 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4474: 3301 movi r3, 1 + 4476: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 4478: 3300 movi r3, 0 + 447a: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 447c: 3309 movi r3, 9 + 447e: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4480: 3300 movi r3, 0 + 4482: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x01; + 4484: 3301 movi r3, 1 + 4486: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 4488: a065 st.b r3, (r0, 0x5) +} + 448a: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +0000448c : +void EEPROM_Init(void){ + 448c: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 448e: 1071 lrw r3, 0x20000060 // 44d0 + 4490: 3201 movi r2, 1 + 4492: 9360 ld.w r3, (r3, 0x0) + 4494: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 4496: 9345 ld.w r2, (r3, 0x14) + 4498: 3aa1 bseti r2, 1 + 449a: 3ab0 bseti r2, 16 + 449c: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 449e: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44a0: 108d lrw r4, 0x20000350 // 44d4 + delay_nms(10); + 44a2: e3fff40f bsr 0x2cc0 // 2cc0 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44a6: 6c13 mov r0, r4 + 44a8: e3ffff52 bsr 0x434c // 434c + if(rev == 0x00){ + 44ac: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44ae: 6c13 mov r0, r4 + if(rev == 0x00){ + 44b0: 0804 bt 0x44b8 // 44b8 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b2: e3ffffa9 bsr 0x4404 // 4404 +} + 44b6: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 44b8: e3ffffde bsr 0x4474 // 4474 + EEPROM_WriteParaInfo(&g_eeprom); + 44bc: 6c13 mov r0, r4 + 44be: e3ffff81 bsr 0x43c0 // 43c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 44c2: 8441 ld.b r2, (r4, 0x1) + 44c4: 1025 lrw r1, 0x7bd6 // 44d8 + 44c6: 3000 movi r0, 0 + 44c8: e3fffb40 bsr 0x3b48 // 3b48 +} + 44cc: 07f5 br 0x44b6 // 44b6 + 44ce: 0000 bkpt + 44d0: 20000060 .long 0x20000060 + 44d4: 20000350 .long 0x20000350 + 44d8: 00007bd6 .long 0x00007bd6 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000044dc : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44dc: 14d2 push r4-r5, r15 + 44de: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 44e0: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e2: 6d47 mov r5, r1 + switch(level){ + 44e4: 0c07 bf 0x44f2 // 44f2 + 44e6: 3840 cmpnei r0, 0 + 44e8: 0c27 bf 0x4536 // 4536 + 44ea: 3842 cmpnei r0, 2 + 44ec: 0c23 bf 0x4532 // 4532 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 44ee: 3001 movi r0, 1 + 44f0: 041f br 0x452e // 452e + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 44f2: 1093 lrw r4, 0x10000180 // 453c + break; + } + + memset(save_para,0,sizeof(save_para)); + 44f4: 323c movi r2, 60 + 44f6: 3100 movi r1, 0 + 44f8: 6c3b mov r0, r14 + 44fa: e3ffea35 bsr 0x1964 // 1964 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 44fe: 3300 movi r3, 0 + 4500: 2b59 subi r3, 90 + 4502: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 4506: 331c movi r3, 28 + 4508: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 450c: 1b01 addi r3, r14, 4 + 450e: 321c movi r2, 28 + 4510: 6c0f mov r0, r3 + 4512: 6c57 mov r1, r5 + 4514: e3ffea6c bsr 0x19ec // 19ec <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4518: 311c movi r1, 28 + 451a: e3ffff0d bsr 0x4334 // 4334 + 451e: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4522: 6cbb mov r2, r14 + 4524: 6c13 mov r0, r4 + 4526: 3120 movi r1, 32 + 4528: e3fff258 bsr 0x29d8 // 29d8 + + return 0; + 452c: 3000 movi r0, 0 +} + 452e: 140f addi r14, r14, 60 + 4530: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4532: 1084 lrw r4, 0x10000200 // 4540 + break; + 4534: 07e0 br 0x44f4 // 44f4 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4536: 1084 lrw r4, 0x10000100 // 4544 + 4538: 07de br 0x44f4 // 44f4 + 453a: 0000 bkpt + 453c: 10000180 .long 0x10000180 + 4540: 10000200 .long 0x10000200 + 4544: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004548 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4548: 14d2 push r4-r5, r15 + 454a: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 454c: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 454e: 6d07 mov r4, r1 + switch(level){ + 4550: 0c3a bf 0x45c4 // 45c4 + 4552: 3840 cmpnei r0, 0 + 4554: 0c05 bf 0x455e // 455e + 4556: 3842 cmpnei r0, 2 + 4558: 0c34 bf 0x45c0 // 45c0 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 455a: 3001 movi r0, 1 + 455c: 0430 br 0x45bc // 45bc + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 455e: 11a1 lrw r5, 0x10000100 // 45e0 + memset(read_info,0,sizeof(read_info)); + 4560: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4562: 3234 movi r2, 52 + 4564: 3100 movi r1, 0 + 4566: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4568: b860 st.w r3, (r14, 0x0) + 456a: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 456e: e3ffe9fb bsr 0x1964 // 1964 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4572: 6cbb mov r2, r14 + 4574: 3104 movi r1, 4 + 4576: 6c17 mov r0, r5 + 4578: e3fff280 bsr 0x2a78 // 2a78 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 457c: d84e0000 ld.b r2, (r14, 0x0) + 4580: 33a6 movi r3, 166 + 4582: 64ca cmpne r2, r3 + 4584: 0827 bt 0x45d2 // 45d2 + read_len |= read_info[1]; + 4586: d84e0002 ld.b r2, (r14, 0x2) + 458a: d86e0001 ld.b r3, (r14, 0x1) + 458e: 4248 lsli r2, r2, 8 + 4590: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4592: 3a5c cmpnei r2, 28 + 4594: 081a bt 0x45c8 // 45c8 + temp_addr += EEPROM_Offset_Data; + 4596: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 4598: 1a02 addi r2, r14, 8 + 459a: 311c movi r1, 28 + 459c: e3fff26e bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 45a0: 311c movi r1, 28 + 45a2: 1802 addi r0, r14, 8 + 45a4: e3fffec8 bsr 0x4334 // 4334 + 45a8: d86e0003 ld.b r3, (r14, 0x3) + 45ac: 640e cmpne r3, r0 + 45ae: 0bd6 bt 0x455a // 455a + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 45b0: 321c movi r2, 28 + 45b2: 1902 addi r1, r14, 8 + 45b4: 6c13 mov r0, r4 + 45b6: e3ffea1b bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 45ba: 3000 movi r0, 0 +} + 45bc: 140f addi r14, r14, 60 + 45be: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 45c0: 10a9 lrw r5, 0x10000200 // 45e4 + break; + 45c2: 07cf br 0x4560 // 4560 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 45c4: 10a9 lrw r5, 0x10000180 // 45e8 + 45c6: 07cd br 0x4560 // 4560 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 45c8: 1029 lrw r1, 0x7bef // 45ec + 45ca: 3000 movi r0, 0 + 45cc: e3fffabe bsr 0x3b48 // 3b48 + 45d0: 07c5 br 0x455a // 455a + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 45d2: 3304 movi r3, 4 + 45d4: 6cbb mov r2, r14 + 45d6: 1027 lrw r1, 0x7c11 // 45f0 + 45d8: 3000 movi r0, 0 + 45da: e3fffabd bsr 0x3b54 // 3b54 + 45de: 07be br 0x455a // 455a + 45e0: 10000100 .long 0x10000100 + 45e4: 10000200 .long 0x10000200 + 45e8: 10000180 .long 0x10000180 + 45ec: 00007bef .long 0x00007bef + 45f0: 00007c11 .long 0x00007c11 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +000045f4 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 45f4: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 45f6: 8163 ld.b r3, (r1, 0x3) + 45f8: 2b00 subi r3, 1 + 45fa: 74cc zextb r3, r3 + 45fc: 3263 movi r2, 99 + 45fe: 64c8 cmphs r2, r3 + 4600: 0845 bt 0x468a // 468a + para->base_speed = 20; //默认参数 - 20 + 4602: 3314 movi r3, 20 + 4604: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 4606: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4608: 8140 ld.b r2, (r1, 0x0) + 460a: 2a00 subi r2, 1 + 460c: 7488 zextb r2, r2 + 460e: 3a09 cmphsi r2, 10 + 4610: 0c04 bf 0x4618 // 4618 + para->press_debounce = 6; //默认参数 - 6 + 4612: 3306 movi r3, 6 + 4614: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 4616: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4618: 8141 ld.b r2, (r1, 0x1) + 461a: 2a00 subi r2, 1 + 461c: 7488 zextb r2, r2 + 461e: 3a09 cmphsi r2, 10 + 4620: 0c04 bf 0x4628 // 4628 + para->release_debounce = 5; //默认参数 - 5 + 4622: 3305 movi r3, 5 + 4624: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 4626: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4628: 8142 ld.b r2, (r1, 0x2) + 462a: 2a00 subi r2, 1 + 462c: 7488 zextb r2, r2 + 462e: 3463 movi r4, 99 + 4630: 6490 cmphs r4, r2 + 4632: 0804 bt 0x463a // 463a + para->multiTimes_filt = 40; //默认参数 - 40 + 4634: 3328 movi r3, 40 + 4636: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4638: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 463a: 9146 ld.w r2, (r1, 0x18) + 463c: 2a00 subi r2, 1 + 463e: 3a1f cmphsi r2, 32 + 4640: 0c04 bf 0x4648 // 4648 + para->longpress_time = 8; //默认参数 - 8 + 4642: 3308 movi r3, 8 + 4644: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 4646: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 4648: 34a0 movi r4, 160 + rev = 0x01; + } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 464a: 36f5 movi r6, 245 + 464c: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 464e: 10f3 lrw r7, 0x3de // 4698 + 4650: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 4652: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4654: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4656: 8aa0 ld.h r5, (r2, 0x0) + 4658: 2d09 subi r5, 10 + 465a: 7555 zexth r5, r5 + 465c: 655c cmphs r7, r5 + 465e: 0803 bt 0x4664 // 4664 + para->senprd[i] = 320; //默认参数 - 320 + 4660: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 4662: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4664: 8aa5 ld.h r5, (r2, 0xa) + 4666: 2d13 subi r5, 20 + 4668: 7555 zexth r5, r5 + 466a: 6558 cmphs r6, r5 + 466c: 080a bt 0x4680 // 4680 + + switch(level){ + 466e: 3841 cmpnei r0, 1 + 4670: 0c11 bf 0x4692 // 4692 + 4672: 3840 cmpnei r0, 0 + 4674: 0c0d bf 0x468e // 468e + 4676: 3842 cmpnei r0, 2 + 4678: 080d bt 0x4692 // 4692 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 467a: 333c movi r3, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 467c: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 467e: 3301 movi r3, 1 + 4680: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 4686: 6c0f mov r0, r3 + 4688: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 468a: 3300 movi r3, 0 + 468c: 07be br 0x4608 // 4608 + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 468e: 3364 movi r3, 100 + 4690: 07f6 br 0x467c // 467c + para->triggerlevel[i] = 80; + 4692: 3350 movi r3, 80 + 4694: 07f4 br 0x467c // 467c + 4696: 0000 bkpt + 4698: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +0000469c : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 469c: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 469e: 3314 movi r3, 20 + 46a0: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 46a2: 3306 movi r3, 6 + 46a4: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 46a6: 3305 movi r3, 5 + 46a8: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 46aa: 3328 movi r3, 40 + 46ac: a162 st.b r3, (r1, 0x2) + para->longpress_time = 8; //默认参数 - 8 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 46ae: 32a0 movi r2, 160 + para->longpress_time = 8; //默认参数 - 8 + 46b0: 3308 movi r3, 8 + 46b2: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 46b4: 4241 lsli r2, r2, 1 + 46b6: 596e addi r3, r1, 4 + 46b8: 210d addi r1, 14 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 46ba: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 46bc: ab40 st.h r2, (r3, 0x0) + switch(level){ + 46be: 0c0d bf 0x46d8 // 46d8 + 46c0: 3840 cmpnei r0, 0 + 46c2: 0c09 bf 0x46d4 // 46d4 + 46c4: 3842 cmpnei r0, 2 + 46c6: 0809 bt 0x46d8 // 46d8 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 46c8: 343c movi r4, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 46ca: ab85 st.h r4, (r3, 0xa) + 46cc: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 46d2: 1481 pop r4 + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 46d4: 3464 movi r4, 100 + 46d6: 07fa br 0x46ca // 46ca + para->triggerlevel[i] = 80; + 46d8: 3450 movi r4, 80 + 46da: 07f8 br 0x46ca // 46ca + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +000046dc : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 46dc: 14d4 push r4-r7, r15 + 46de: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 46e0: 8043 ld.b r2, (r0, 0x3) + 46e2: 1038 lrw r1, 0x7c2f // 4740 + 46e4: 3000 movi r0, 0 + 46e6: e3fffa31 bsr 0x3b48 // 3b48 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 46ea: 8440 ld.b r2, (r4, 0x0) + 46ec: 1036 lrw r1, 0x7c47 // 4744 + 46ee: 3000 movi r0, 0 + 46f0: e3fffa2c bsr 0x3b48 // 3b48 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 46f4: 8441 ld.b r2, (r4, 0x1) + 46f6: 1035 lrw r1, 0x7c63 // 4748 + 46f8: 3000 movi r0, 0 + 46fa: e3fffa27 bsr 0x3b48 // 3b48 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 46fe: 8442 ld.b r2, (r4, 0x2) + 4700: 1033 lrw r1, 0x7c81 // 474c + 4702: 3000 movi r0, 0 + 4704: e3fffa22 bsr 0x3b48 // 3b48 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4708: 9446 ld.w r2, (r4, 0x18) + 470a: 3000 movi r0, 0 + 470c: 1031 lrw r1, 0x7c9e // 4750 + 470e: e3fffa1d bsr 0x3b48 // 3b48 + 4712: 2403 addi r4, 4 + 4714: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 4716: 10f0 lrw r7, 0x7cba // 4754 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4718: 10d0 lrw r6, 0x7cd3 // 4758 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 471a: e3ffeaa5 bsr 0x1c64 // 1c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 471e: 8c60 ld.h r3, (r4, 0x0) + 4720: 6c97 mov r2, r5 + 4722: 6c5f mov r1, r7 + 4724: 3000 movi r0, 0 + 4726: e3fffa11 bsr 0x3b48 // 3b48 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 472a: 8c65 ld.h r3, (r4, 0xa) + 472c: 6c97 mov r2, r5 + 472e: 6c5b mov r1, r6 + 4730: 3000 movi r0, 0 + 4732: 2500 addi r5, 1 + 4734: e3fffa0a bsr 0x3b48 // 3b48 + for(i=0;i + } + +} + 473e: 1494 pop r4-r7, r15 + 4740: 00007c2f .long 0x00007c2f + 4744: 00007c47 .long 0x00007c47 + 4748: 00007c63 .long 0x00007c63 + 474c: 00007c81 .long 0x00007c81 + 4750: 00007c9e .long 0x00007c9e + 4754: 00007cba .long 0x00007cba + 4758: 00007cd3 .long 0x00007cd3 + +Disassembly of section .text.ADC_Init: + +0000475c : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 475c: 14d0 push r15 + 475e: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4760: e3ffeed8 bsr 0x2510 // 2510 + ADC12_Software_Reset(); //ADC软件复位 + 4764: e3ffef36 bsr 0x25d0 // 25d0 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 4768: 3101 movi r1, 1 + 476a: 3002 movi r0, 2 + 476c: e3ffef1c bsr 0x25a4 // 25a4 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4770: 3301 movi r3, 1 + 4772: b861 st.w r3, (r14, 0x4) + 4774: 3302 movi r3, 2 + 4776: b860 st.w r3, (r14, 0x0) + 4778: 3200 movi r2, 0 + 477a: 3306 movi r3, 6 + 477c: 3101 movi r1, 1 + 477e: 3001 movi r0, 1 + 4780: e3ffef62 bsr 0x2644 // 2644 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 4784: 3003 movi r0, 3 + 4786: e3ffef9d bsr 0x26c0 // 26c0 + + ADC12_ConversionChannel_Config(ADC12_ADCIN9,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 478a: 3300 movi r3, 0 + 478c: 3200 movi r2, 0 + 478e: 3100 movi r1, 0 + 4790: 3009 movi r0, 9 + 4792: e3fff063 bsr 0x2858 // 2858 + + ADC12_CMD(ENABLE); + 4796: 3001 movi r0, 1 + 4798: e3ffef22 bsr 0x25dc // 25dc + + ADC12_ready_wait(); + 479c: e3ffef34 bsr 0x2604 // 2604 + + ADC12_Control(ADC12_START); + 47a0: 3008 movi r0, 8 + 47a2: e3ffeee9 bsr 0x2574 // 2574 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 47a6: 3237 movi r2, 55 + 47a8: 3100 movi r1, 0 + 47aa: 1003 lrw r0, 0x20000356 // 47b4 + 47ac: e3ffe8dc bsr 0x1964 // 1964 <__memset_fast> +} + 47b0: 1402 addi r14, r14, 8 + 47b2: 1490 pop r15 + 47b4: 20000356 .long 0x20000356 + +Disassembly of section .text.Thermistor_Array_Transform: + +000047b8 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 47b8: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 47ba: 1070 lrw r3, 0x79bd // 47f8 + 47bc: 640c cmphs r3, r0 +{ + 47be: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 47c0: 0c16 bf 0x47ec // 47ec + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47c2: 33a1 movi r3, 161 + 47c4: 4365 lsli r3, r3, 5 + 47c6: 640c cmphs r3, r0 + 47c8: 0814 bt 0x47f0 // 47f0 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47ce: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 47d2: 8a60 ld.h r3, (r2, 0x0) + 47d4: 644c cmphs r3, r1 + 47d6: 0c04 bf 0x47de // 47de + 47d8: 8a61 ld.h r3, (r2, 0x2) + 47da: 644c cmphs r3, r1 + 47dc: 0c07 bf 0x47ea // 47ea + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 47e8: 30fa movi r0, 250 +} + 47ea: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 47ec: 3000 movi r0, 0 + 47ee: 07fe br 0x47ea // 47ea + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47f0: 30c8 movi r0, 200 + 47f2: 4001 lsli r0, r0, 1 + 47f4: 07fb br 0x47ea // 47ea + 47f6: 0000 bkpt + 47f8: 000079bd .long 0x000079bd + 47fc: 00007662 .long 0x00007662 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004800 : + +void Calculate_ADC_Sample_Average(void) +{ + 4800: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4804: 3200 movi r2, 0 + uint32_t temp_val = 0; + 4806: 3000 movi r0, 0 + 4808: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 480a: 5a66 addi r3, r2, 2 + 480c: 4361 lsli r3, r3, 1 + 480e: 60dc addu r3, r7 + 4810: 8323 ld.b r1, (r3, 0x3) + 4812: 8364 ld.b r3, (r3, 0x4) + 4814: 4368 lsli r3, r3, 8 + 4816: 2200 addi r2, 1 + 4818: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4820: 310a movi r1, 10 + 4822: e3fff821 bsr 0x3864 // 3864 <__udivsi3> + 4826: 74c1 zexth r3, r0 + 4828: 748c zextb r2, r3 + 482a: 11c2 lrw r6, 0x20000359 // 48b0 + 482c: 4b68 lsri r3, r3, 8 + 482e: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4830: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4832: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4834: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4836: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4838: 4368 lsli r3, r3, 8 + 483a: 875b ld.b r2, (r7, 0x1b) + 483c: 6cc8 or r3, r2 + 483e: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4840: 6d03 mov r4, r0 + 4842: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4844: 0c1a bf 0x4878 // 4878 + g_adc.temp_index = 0; + 4846: 3300 movi r3, 0 + 4848: a660 st.b r3, (r6, 0x0) + 484a: a661 st.b r3, (r6, 0x1) + 484c: 3200 movi r2, 0 + temp_val = 0; + 484e: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 4868: 310a movi r1, 10 + 486a: e3fff7fd bsr 0x3864 // 3864 <__udivsi3> + 486e: 7401 zexth r0, r0 + 4870: 1071 lrw r3, 0x20000373 // 48b4 + 4872: a300 st.b r0, (r3, 0x0) + 4874: 4808 lsri r0, r0, 8 + 4876: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4878: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 487a: 859c ld.b r4, (r5, 0x1c) + 487c: 857b ld.b r3, (r5, 0x1b) + 487e: 4488 lsli r4, r4, 8 + 4880: 6d0c or r4, r3 + 4882: 5c62 addi r3, r4, 1 + 4884: 74cd zexth r3, r3 + 4886: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4888: 100c lrw r0, 0x2710 // 48b8 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 488a: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 488c: 102c lrw r1, 0xce4 // 48bc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 488e: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4890: 7c08 mult r0, r2 + 4892: 604a subu r1, r2 + 4894: e3fff7d6 bsr 0x3840 // 3840 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4898: 240d addi r4, 14 + 489a: 7401 zexth r0, r0 + 489c: 4481 lsli r4, r4, 1 + 489e: e3ffff8d bsr 0x47b8 // 47b8 + 48a2: 6114 addu r4, r5 + 48a4: a403 st.b r0, (r4, 0x3) + 48a6: 4808 lsri r0, r0, 8 + 48a8: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 48aa: 1494 pop r4-r7, r15 + 48ac: 20000356 .long 0x20000356 + 48b0: 20000359 .long 0x20000359 + 48b4: 20000373 .long 0x20000373 + 48b8: 00002710 .long 0x00002710 + 48bc: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000048c0 : + +void ADC_Sample_Task(void){ + 48c0: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 48c2: 1188 lrw r4, 0x20000356 // 4960 + 48c4: 3020 movi r0, 32 + 48c6: 6010 addu r0, r4 + 48c8: 8054 ld.b r2, (r0, 0x14) + 48ca: 8073 ld.b r3, (r0, 0x13) + 48cc: 4248 lsli r2, r2, 8 + 48ce: 6c8c or r2, r3 + 48d0: 8075 ld.b r3, (r0, 0x15) + 48d2: 4370 lsli r3, r3, 16 + 48d4: 6c8c or r2, r3 + 48d6: 8076 ld.b r3, (r0, 0x16) + 48d8: 11a3 lrw r5, 0x200000b8 // 4964 + 48da: 4378 lsli r3, r3, 24 + 48dc: 9520 ld.w r1, (r5, 0x0) + 48de: 6cc8 or r3, r2 + 48e0: 604e subu r1, r3 + 48e2: 390a cmphsi r1, 11 + 48e4: 0c28 bf 0x4934 // 4934 + g_adc.sample_tick = SysTick_100us; + 48e6: 1161 lrw r3, 0x200000b4 // 4968 + 48e8: 3233 movi r2, 51 + 48ea: 9360 ld.w r3, (r3, 0x0) + 48ec: 6090 addu r2, r4 + 48ee: 4b28 lsri r1, r3, 8 + 48f0: a260 st.b r3, (r2, 0x0) + 48f2: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 48f4: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 48f6: 4b30 lsri r1, r3, 16 + 48f8: 4b78 lsri r3, r3, 24 + 48fa: a263 st.b r3, (r2, 0x3) + 48fc: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 48fe: e3ffee8d bsr 0x2618 // 2618 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4902: 84c2 ld.b r6, (r4, 0x2) + 4904: 8461 ld.b r3, (r4, 0x1) + 4906: 46c8 lsli r6, r6, 8 + 4908: 6d8c or r6, r3 + 490a: 3000 movi r0, 0 + 490c: e3ffee92 bsr 0x2630 // 2630 + 4910: 5e66 addi r3, r6, 2 + 4912: 4361 lsli r3, r3, 1 + 4914: 60d0 addu r3, r4 + 4916: a303 st.b r0, (r3, 0x3) + 4918: 4808 lsri r0, r0, 8 + 491a: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 491c: 8462 ld.b r3, (r4, 0x2) + 491e: 8441 ld.b r2, (r4, 0x1) + 4920: 4368 lsli r3, r3, 8 + 4922: 6cc8 or r3, r2 + 4924: 2300 addi r3, 1 + 4926: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 4928: 3b09 cmphsi r3, 10 + 492a: 5c42 addi r2, r4, 1 + 492c: 0813 bt 0x4952 // 4952 + g_adc.index++; + 492e: a461 st.b r3, (r4, 0x1) + 4930: 4b68 lsri r3, r3, 8 + 4932: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4934: 8460 ld.b r3, (r4, 0x0) + 4936: 3b41 cmpnei r3, 1 + 4938: 080c bt 0x4950 // 4950 + if (SysTick_1ms - adc_tick >= 100) { + 493a: 104d lrw r2, 0x200000d0 // 496c + 493c: 9220 ld.w r1, (r2, 0x0) + 493e: 9560 ld.w r3, (r5, 0x0) + 4940: 60c6 subu r3, r1 + 4942: 3163 movi r1, 99 + 4944: 64c4 cmphs r1, r3 + 4946: 0805 bt 0x4950 // 4950 + adc_tick = SysTick_1ms; + 4948: 9560 ld.w r3, (r5, 0x0) + 494a: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 494c: e3ffff5a bsr 0x4800 // 4800 + } + } +} + 4950: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4952: 3300 movi r3, 0 + 4954: a461 st.b r3, (r4, 0x1) + 4956: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 4958: 3301 movi r3, 1 + 495a: a460 st.b r3, (r4, 0x0) + 495c: 07ec br 0x4934 // 4934 + 495e: 0000 bkpt + 4960: 20000356 .long 0x20000356 + 4964: 200000b8 .long 0x200000b8 + 4968: 200000b4 .long 0x200000b4 + 496c: 200000d0 .long 0x200000d0 + +Disassembly of section .text.Get_Temp_Val: + +00004970 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4970: 1063 lrw r3, 0x20000356 // 497c + 4972: 831e ld.b r0, (r3, 0x1e) + 4974: 835d ld.b r2, (r3, 0x1d) + 4976: 4008 lsli r0, r0, 8 + 4978: 6c08 or r0, r2 +} + 497a: 783c jmp r15 + 497c: 20000356 .long 0x20000356 + +Disassembly of section .text.HT1621_WR_Data: + +00004980 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 4980: 14d4 push r4-r7, r15 + 4982: 6d43 mov r5, r0 + 4984: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 498e: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 4990: 3103 movi r1, 3 + 4992: 9600 ld.w r0, (r6, 0x0) + 4994: e3ffea86 bsr 0x1ea0 // 1ea0 + nop; + 4998: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 499a: 74d6 sextb r3, r5 + 499c: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 499e: 3104 movi r1, 4 + 49a0: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 49a2: 0c0d bf 0x49bc // 49bc + HT1621_DATA_HIGH; + 49a4: e3ffea7a bsr 0x1e98 // 1e98 + nop; + 49a8: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 49aa: 3103 movi r1, 3 + 49ac: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 49ae: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 49b6: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 49bc: e3ffea72 bsr 0x1ea0 // 1ea0 + 49c0: 07f4 br 0x49a8 // 49a8 + 49c2: 0000 bkpt + 49c4: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000049c8 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 49c8: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 49ca: 108b lrw r4, 0x2000004c // 49f4 +{ + 49cc: 6d43 mov r5, r0 + HT1621_CS_LOW; + 49ce: 3100 movi r1, 0 + 49d0: 9400 ld.w r0, (r4, 0x0) + 49d2: e3ffea67 bsr 0x1ea0 // 1ea0 + nop; + 49d6: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 49d8: 3104 movi r1, 4 + 49da: 3080 movi r0, 128 + 49dc: e3ffffd2 bsr 0x4980 // 4980 + HT1621_WR_Data(cmd,8); + 49e0: 6c17 mov r0, r5 + 49e2: 3108 movi r1, 8 + 49e4: e3ffffce bsr 0x4980 // 4980 + HT1621_CS_HIGH; + 49e8: 9400 ld.w r0, (r4, 0x0) + 49ea: 3100 movi r1, 0 + 49ec: e3ffea56 bsr 0x1e98 // 1e98 + nop; + 49f0: 6c03 mov r0, r0 +} + 49f2: 1492 pop r4-r5, r15 + 49f4: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +000049f8 : +void HT1621_Init(void){ + 49f8: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 49fa: 1182 lrw r4, 0x2000004c // 4a80 + 49fc: 3200 movi r2, 0 + 49fe: 9400 ld.w r0, (r4, 0x0) + 4a00: 3100 movi r1, 0 + 4a02: e3ffe9c3 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,3,Output); + 4a06: 9400 ld.w r0, (r4, 0x0) + 4a08: 3200 movi r2, 0 + 4a0a: 3103 movi r1, 3 + 4a0c: e3ffe9be bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,4,Output); + 4a10: 3200 movi r2, 0 + 4a12: 9400 ld.w r0, (r4, 0x0) + 4a14: 3104 movi r1, 4 + 4a16: e3ffe9b9 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,0); + 4a1a: 9400 ld.w r0, (r4, 0x0) + 4a1c: 3100 movi r1, 0 + 4a1e: e3ffea36 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,3); + 4a22: 9400 ld.w r0, (r4, 0x0) + 4a24: 3103 movi r1, 3 + 4a26: e3ffea32 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,4); + 4a2a: 9400 ld.w r0, (r4, 0x0) + 4a2c: 3104 movi r1, 4 + 4a2e: e3ffea2e bsr 0x1e8a // 1e8a + HT1621_CS_LOW; + 4a32: 9400 ld.w r0, (r4, 0x0) + 4a34: 3100 movi r1, 0 + 4a36: e3ffea35 bsr 0x1ea0 // 1ea0 + HT1621_WR_LOW; + 4a3a: 9400 ld.w r0, (r4, 0x0) + 4a3c: 3103 movi r1, 3 + 4a3e: e3ffea31 bsr 0x1ea0 // 1ea0 + HT1621_DATA_LOW; + 4a42: 3104 movi r1, 4 + 4a44: 9400 ld.w r0, (r4, 0x0) + 4a46: e3ffea2d bsr 0x1ea0 // 1ea0 + HT1621_WR_CMD(HT1621_BIAS); + 4a4a: 3052 movi r0, 82 + 4a4c: e3ffffbe bsr 0x49c8 // 49c8 + HT1621_WR_CMD(HT1621_RC256); + 4a50: 3030 movi r0, 48 + 4a52: e3ffffbb bsr 0x49c8 // 49c8 + HT1621_WR_CMD(HT1621_SYSDIS); + 4a56: 3000 movi r0, 0 + 4a58: e3ffffb8 bsr 0x49c8 // 49c8 + HT1621_WR_CMD(HT1621_WDTDIS); + 4a5c: 300a movi r0, 10 + 4a5e: e3ffffb5 bsr 0x49c8 // 49c8 + HT1621_WR_CMD(HT1621_SYSEN); + 4a62: 3002 movi r0, 2 + 4a64: e3ffffb2 bsr 0x49c8 // 49c8 + HT1621_WR_CMD(HT1621_LCDON); + 4a68: 3006 movi r0, 6 + 4a6a: e3ffffaf bsr 0x49c8 // 49c8 + HT1621_WR_CMD(HT1621_BIOFF); + 4a6e: 3010 movi r0, 16 + 4a70: e3ffffac bsr 0x49c8 // 49c8 + HT1621_CS_HIGH; + 4a74: 9400 ld.w r0, (r4, 0x0) + 4a76: 3100 movi r1, 0 + 4a78: e3ffea10 bsr 0x1e98 // 1e98 +} + 4a7c: 1491 pop r4, r15 + 4a7e: 0000 bkpt + 4a80: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +00004a84 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 4a84: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a86: 3212 movi r2, 18 + 4a88: 3100 movi r1, 0 + + HT1621_CS_LOW; + 4a8a: 10b1 lrw r5, 0x2000004c // 4acc + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a8c: 1011 lrw r0, 0x2000039c // 4ad0 + 4a8e: e3ffe76b bsr 0x1964 // 1964 <__memset_fast> + HT1621_CS_LOW; + 4a92: 3100 movi r1, 0 + 4a94: 9500 ld.w r0, (r5, 0x0) + 4a96: e3ffea05 bsr 0x1ea0 // 1ea0 + nop; + 4a9a: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4a9c: 3103 movi r1, 3 + 4a9e: 30a0 movi r0, 160 + 4aa0: e3ffff70 bsr 0x4980 // 4980 + HT1621_WR_Data(0,6); + 4aa4: 3106 movi r1, 6 + 4aa6: 3000 movi r0, 0 + 4aa8: e3ffff6c bsr 0x4980 // 4980 + 4aac: 3412 movi r4, 18 + 4aae: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4abe: 9500 ld.w r0, (r5, 0x0) + 4ac0: 3100 movi r1, 0 + 4ac2: e3ffe9eb bsr 0x1e98 // 1e98 + nop; + 4ac6: 6c03 mov r0, r0 +} + 4ac8: 1492 pop r4-r5, r15 + 4aca: 0000 bkpt + 4acc: 2000004c .long 0x2000004c + 4ad0: 2000039c .long 0x2000039c + +Disassembly of section .text.HT1621_ALLON: + +00004ad4 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 4ad4: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4ad6: 10af lrw r5, 0x2000004c // 4b10 + 4ad8: 3100 movi r1, 0 + 4ada: 9500 ld.w r0, (r5, 0x0) + 4adc: e3ffe9e2 bsr 0x1ea0 // 1ea0 + nop; + 4ae0: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4ae2: 3103 movi r1, 3 + 4ae4: 30a0 movi r0, 160 + 4ae6: e3ffff4d bsr 0x4980 // 4980 + HT1621_WR_Data(0,6); + 4aea: 3106 movi r1, 6 + 4aec: 3000 movi r0, 0 + 4aee: e3ffff49 bsr 0x4980 // 4980 + 4af2: 3412 movi r4, 18 + 4af4: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b04: 9500 ld.w r0, (r5, 0x0) + 4b06: 3100 movi r1, 0 + 4b08: e3ffe9c8 bsr 0x1e98 // 1e98 + nop; + 4b0c: 6c03 mov r0, r0 +} + 4b0e: 1492 pop r4-r5, r15 + 4b10: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00004b14 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 4b14: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4b16: 1091 lrw r4, 0x2000004c // 4b58 + 4b18: 3100 movi r1, 0 + 4b1a: 9400 ld.w r0, (r4, 0x0) + 4b1c: e3ffe9c2 bsr 0x1ea0 // 1ea0 + nop; + 4b20: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4b22: 3103 movi r1, 3 + 4b24: 30a0 movi r0, 160 + 4b26: e3ffff2d bsr 0x4980 // 4980 + HT1621_WR_Data(0,6); + 4b2a: 3106 movi r1, 6 + 4b2c: 3000 movi r0, 0 + 4b2e: e3ffff29 bsr 0x4980 // 4980 + 4b32: 3500 movi r5, 0 + for(U8_T i=0;i + 4b36: 60d4 addu r3, r5 + 4b38: 830c ld.b r0, (r3, 0xc) + 4b3a: 4004 lsli r0, r0, 4 + 4b3c: 7400 zextb r0, r0 + 4b3e: 3104 movi r1, 4 + 4b40: 2500 addi r5, 1 + 4b42: e3ffff1f bsr 0x4980 // 4980 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b4a: 9400 ld.w r0, (r4, 0x0) + 4b4c: 3100 movi r1, 0 + 4b4e: e3ffe9a5 bsr 0x1e98 // 1e98 + nop; + 4b52: 6c03 mov r0, r0 +} + 4b54: 1492 pop r4-r5, r15 + 4b56: 0000 bkpt + 4b58: 2000004c .long 0x2000004c + 4b5c: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temperature_Display: + +00004b60 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 4b60: 14d4 push r4-r7, r15 + 4b62: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4b64: 310a movi r1, 10 + 4b66: b801 st.w r0, (r14, 0x4) + 4b68: e3fff67e bsr 0x3864 // 3864 <__udivsi3> + 4b6c: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4b6e: 310a movi r1, 10 + 4b70: 6c17 mov r0, r5 + 4b72: e3fff679 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + HT1621.show_cache[6] = 0x00; + HT1621.show_cache[5] &= 0x08; + + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b76: 10fb lrw r7, 0x7996 // 4be0 + 4b78: 7400 zextb r0, r0 + 4b7a: 109b lrw r4, 0x20000390 // 4be4 + 4b7c: 601c addu r0, r7 + HT1621.show_cache[9] &= 0x08; + 4b7e: 3608 movi r6, 8 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b80: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[9] &= 0x08; + 4b82: 8455 ld.b r2, (r4, 0x15) + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b84: 4904 lsri r0, r1, 4 + HT1621.show_cache[9] &= 0x08; + 4b86: 6898 and r2, r6 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b88: 6c80 or r2, r0 + 4b8a: a455 st.b r2, (r4, 0x15) + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b8c: 320f movi r2, 15 + 4b8e: 6848 and r1, r2 + 4b90: a436 st.b r1, (r4, 0x16) + U8_T tmp_L = tmp_Integer%10; + 4b92: 6c17 mov r0, r5 + 4b94: 310a movi r1, 10 + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b96: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4b98: e3fff678 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4b9c: 7400 zextb r0, r0 + 4b9e: 601c addu r0, r7 + 4ba0: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4ba2: 9840 ld.w r2, (r14, 0x0) + 4ba4: 6c57 mov r1, r5 + 4ba6: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4ba8: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4baa: a434 st.b r1, (r4, 0x14) + U8_T tmp_quantile = tmp%10; + 4bac: 6c0f mov r0, r3 + 4bae: 310a movi r1, 10 + 4bb0: e3fff66c bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bb4: 7401 zexth r0, r0 + 4bb6: 61c0 addu r7, r0 + 4bb8: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[6] |= Diaital[tmp_quantile]&0x0F; + 4bba: 9840 ld.w r2, (r14, 0x0) + 4bbc: 688c and r2, r3 + 4bbe: a452 st.b r2, (r4, 0x12) + + //显示“℃” + HT1621.show_cache[3] |= 0x08; + 4bc0: 844f ld.b r2, (r4, 0xf) + 4bc2: 6c98 or r2, r6 + 4bc4: a44f st.b r2, (r4, 0xf) + HT1621.show_cache[4] |= 0x0B; + 4bc6: 310b movi r1, 11 + 4bc8: 8450 ld.b r2, (r4, 0x10) + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bca: 4b64 lsri r3, r3, 4 + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4bcc: 4da4 lsri r5, r5, 4 + HT1621.show_cache[4] |= 0x0B; + 4bce: 6c84 or r2, r1 + HT1621.show_cache[5] |= 0x08; + 4bd0: 6cd8 or r3, r6 + + //显示小数点 + HT1621.show_cache[7] |= 0x08; + 4bd2: 6d58 or r5, r6 + HT1621.show_cache[4] |= 0x0B; + 4bd4: a450 st.b r2, (r4, 0x10) + HT1621.show_cache[5] |= 0x08; + 4bd6: a471 st.b r3, (r4, 0x11) + HT1621.show_cache[7] |= 0x08; + 4bd8: a4b3 st.b r5, (r4, 0x13) +} + 4bda: 1402 addi r14, r14, 8 + 4bdc: 1494 pop r4-r7, r15 + 4bde: 0000 bkpt + 4be0: 00007996 .long 0x00007996 + 4be4: 20000390 .long 0x20000390 + +Disassembly of section .text.Local_Temperature_Display: + +00004be8 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 4be8: 14d4 push r4-r7, r15 + 4bea: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4bec: 310a movi r1, 10 + 4bee: b801 st.w r0, (r14, 0x4) + 4bf0: e3fff63a bsr 0x3864 // 3864 <__udivsi3> + 4bf4: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4bf6: 310a movi r1, 10 + 4bf8: 6c17 mov r0, r5 + 4bfa: e3fff635 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4bfe: 10f9 lrw r7, 0x7996 // 4c60 + 4c00: 7400 zextb r0, r0 + 4c02: 601c addu r0, r7 + 4c04: 80c0 ld.b r6, (r0, 0x0) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c06: 320f movi r2, 15 + 4c08: 6c5b mov r1, r6 + 4c0a: 1097 lrw r4, 0x20000390 // 4c64 + 4c0c: 6848 and r1, r2 + 4c0e: a43d st.b r1, (r4, 0x1d) + U8_T tmp_L = tmp_Integer%10; + 4c10: 6c17 mov r0, r5 + 4c12: 310a movi r1, 10 + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c14: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4c16: e3fff639 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c1a: 7400 zextb r0, r0 + 4c1c: 601c addu r0, r7 + 4c1e: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c20: 9840 ld.w r2, (r14, 0x0) + 4c22: 6c57 mov r1, r5 + 4c24: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4c26: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c28: a43b st.b r1, (r4, 0x1b) + U8_T tmp_quantile = tmp%10; + 4c2a: 6c0f mov r0, r3 + 4c2c: 310a movi r1, 10 + 4c2e: e3fff62d bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c32: 7401 zexth r0, r0 + 4c34: 61c0 addu r7, r0 + 4c36: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c38: 9840 ld.w r2, (r14, 0x0) + 4c3a: 688c and r2, r3 + + //显示“℃” + HT1621.show_cache[16] |= 0x08; + HT1621.show_cache[11] |= 0x0B; + 4c3c: 8437 ld.b r1, (r4, 0x17) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c3e: a459 st.b r2, (r4, 0x19) + HT1621.show_cache[11] |= 0x0B; + 4c40: 300b movi r0, 11 + HT1621.show_cache[16] |= 0x08; + 4c42: 3208 movi r2, 8 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c44: 4ec4 lsri r6, r6, 4 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c46: 4b64 lsri r3, r3, 4 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c48: 4da4 lsri r5, r5, 4 + HT1621.show_cache[16] |= 0x08; + 4c4a: 6d88 or r6, r2 + HT1621.show_cache[11] |= 0x0B; + 4c4c: 6c40 or r1, r0 + HT1621.show_cache[12] |= 0x08; + 4c4e: 6cc8 or r3, r2 + + //显示小数点 + HT1621.show_cache[14] |= 0x08; + 4c50: 6d48 or r5, r2 + HT1621.show_cache[16] |= 0x08; + 4c52: a4dc st.b r6, (r4, 0x1c) + HT1621.show_cache[11] |= 0x0B; + 4c54: a437 st.b r1, (r4, 0x17) + HT1621.show_cache[12] |= 0x08; + 4c56: a478 st.b r3, (r4, 0x18) + HT1621.show_cache[14] |= 0x08; + 4c58: a4ba st.b r5, (r4, 0x1a) +} + 4c5a: 1402 addi r14, r14, 8 + 4c5c: 1494 pop r4-r7, r15 + 4c5e: 0000 bkpt + 4c60: 00007996 .long 0x00007996 + 4c64: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Mode: + +00004c68 : +* 1 -> 制热模式 +* 2 -> 送风模式 +* 3 -> 除湿 +*/ +void Control_Mode(U8_T mode){ + switch(mode){ + 4c68: 3842 cmpnei r0, 2 + 4c6a: 0c0f bf 0x4c88 // 4c88 + 4c6c: 3844 cmpnei r0, 4 + 4c6e: 0c16 bf 0x4c9a // 4c9a + 4c70: 3840 cmpnei r0, 0 + 4c72: 080a bt 0x4c86 // 4c86 + case 0x00: + HT1621.show_cache[0] &= ~0x07; + 4c74: 104e lrw r2, 0x20000390 // 4cac + 4c76: 3107 movi r1, 7 + 4c78: 826c ld.b r3, (r2, 0xc) + 4c7a: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c7c: 822d ld.b r1, (r2, 0xd) + 4c7e: 3980 bclri r1, 0 + 4c80: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x04; + 4c82: 3ba2 bseti r3, 2 + HT1621.show_cache[0] |= 0x02; + break; + case 0x04: + HT1621.show_cache[0] &= ~0x07; + HT1621.show_cache[1] &= ~0x01; + HT1621.show_cache[0] |= 0x01; + 4c84: a26c st.b r3, (r2, 0xc) +// HT1621.show_cache[0] &= ~0x07; +// HT1621.show_cache[1] |= 0x01; +// break; + } + +} + 4c86: 783c jmp r15 + HT1621.show_cache[0] &= ~0x07; + 4c88: 1049 lrw r2, 0x20000390 // 4cac + 4c8a: 3107 movi r1, 7 + 4c8c: 826c ld.b r3, (r2, 0xc) + 4c8e: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c90: 822d ld.b r1, (r2, 0xd) + 4c92: 3980 bclri r1, 0 + 4c94: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x02; + 4c96: 3ba1 bseti r3, 1 + 4c98: 07f6 br 0x4c84 // 4c84 + HT1621.show_cache[0] &= ~0x07; + 4c9a: 1045 lrw r2, 0x20000390 // 4cac + 4c9c: 3107 movi r1, 7 + 4c9e: 826c ld.b r3, (r2, 0xc) + 4ca0: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ca2: 822d ld.b r1, (r2, 0xd) + 4ca4: 3980 bclri r1, 0 + 4ca6: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x01; + 4ca8: 3ba0 bseti r3, 0 + 4caa: 07ed br 0x4c84 // 4c84 + 4cac: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_wind_velocity: + +00004cb0 : +* 2 -> 中风速 +* 3 -> 高风速 +* 0 -> 自动风速 +*/ +void Control_wind_velocity(U8_T velocity) +{ + 4cb0: 14d0 push r15 + switch(velocity) + 4cb2: 3803 cmphsi r0, 4 + 4cb4: 080f bt 0x4cd2 // 4cd2 + 4cb6: 107a lrw r3, 0x20000390 // 4d1c + 4cb8: e3ffe022 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4cbc: 0e0c0214 .long 0x0e0c0214 + { + case 1: //低风速 + HT1621.show_cache[2] = 0x0C; + 4cc0: 320c movi r2, 12 + HT1621.show_cache[3] &= ~0x03; + HT1621.show_cache[1] &= ~0x02; + break; + case 2: //中风速 + HT1621.show_cache[2] = 0x0F; + 4cc2: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cc4: 834f ld.b r2, (r3, 0xf) + 4cc6: 3a80 bclri r2, 0 + 4cc8: 3a81 bclri r2, 1 + 4cca: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[1] &= ~0x02; + 4ccc: 834d ld.b r2, (r3, 0xd) + 4cce: 3a81 bclri r2, 1 + 4cd0: a34d st.b r2, (r3, 0xd) + } + break; + default: + break; + } +} + 4cd2: 1490 pop r15 + HT1621.show_cache[2] = 0x0F; + 4cd4: 320f movi r2, 15 + 4cd6: 07f6 br 0x4cc2 // 4cc2 + HT1621.show_cache[2] = 0x0F; + 4cd8: 320f movi r2, 15 + 4cda: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4cdc: 834f ld.b r2, (r3, 0xf) + 4cde: 3aa0 bseti r2, 0 + 4ce0: 3aa1 bseti r2, 1 + 4ce2: 07f4 br 0x4cca // 4cca + HT1621.show_cache[1] |= 0x02; + 4ce4: 834d ld.b r2, (r3, 0xd) + 4ce6: 3aa1 bseti r2, 1 + 4ce8: a34d st.b r2, (r3, 0xd) + if(HT1621.wind_velocity == 0) //关风扇 + 4cea: 8343 ld.b r2, (r3, 0x3) + 4cec: 3a40 cmpnei r2, 0 + 4cee: 0807 bt 0x4cfc // 4cfc + HT1621.show_cache[2] = 0x0F; + 4cf0: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cf2: 834f ld.b r2, (r3, 0xf) + 4cf4: 3a80 bclri r2, 0 + 4cf6: 3a81 bclri r2, 1 + HT1621.show_cache[3] |= 0x03; + 4cf8: a34f st.b r2, (r3, 0xf) +} + 4cfa: 07ec br 0x4cd2 // 4cd2 + }else if(HT1621.wind_velocity == 1) //低风速 + 4cfc: 3a41 cmpnei r2, 1 + 4cfe: 0803 bt 0x4d04 // 4d04 + HT1621.show_cache[2] = 0x0C; + 4d00: 320c movi r2, 12 + 4d02: 07f7 br 0x4cf0 // 4cf0 + }else if(HT1621.wind_velocity == 2) //中风速 + 4d04: 3a42 cmpnei r2, 2 + 4d06: 0803 bt 0x4d0c // 4d0c + HT1621.show_cache[2] = 0x0F; + 4d08: 320f movi r2, 15 + 4d0a: 07f3 br 0x4cf0 // 4cf0 + }else if(HT1621.wind_velocity == 3) //高风速 + 4d0c: 3a43 cmpnei r2, 3 + 4d0e: 0be2 bt 0x4cd2 // 4cd2 + HT1621.show_cache[2] = 0x0F; + 4d10: 320f movi r2, 15 + 4d12: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4d14: 834f ld.b r2, (r3, 0xf) + 4d16: 3aa0 bseti r2, 0 + 4d18: 3aa1 bseti r2, 1 + 4d1a: 07ef br 0x4cf8 // 4cf8 + 4d1c: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Prompt_Text: + +00004d20 : +*函数功能:显示 提示文字 +*参数功能:state : 0 -> 关 +* 1 -> 开 +*/ +void Control_Prompt_Text(U8_T state){ + if(state == 0x01){ + 4d20: 3841 cmpnei r0, 1 + 4d22: 1070 lrw r3, 0x20000390 // 4d60 + 4d24: 0810 bt 0x4d44 // 4d44 + HT1621.show_cache[0] |= 0x08; //模式 + 4d26: 3008 movi r0, 8 + 4d28: 832c ld.b r1, (r3, 0xc) + 4d2a: 6c40 or r1, r0 + 4d2c: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x0C; //风速 + 4d2e: 832d ld.b r1, (r3, 0xd) + 4d30: 39a2 bseti r1, 2 + 4d32: 39a3 bseti r1, 3 + 4d34: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d36: 832f ld.b r1, (r3, 0xf) + 4d38: 39a2 bseti r1, 2 + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d3a: 8355 ld.b r2, (r3, 0x15) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d3c: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d3e: 6c80 or r2, r0 + }else{ + HT1621.show_cache[0] &= ~0x08; //模式 + HT1621.show_cache[1] &= ~0x0C; //风速 + HT1621.show_cache[3] &= ~0x04; //设置温度 + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d40: a355 st.b r2, (r3, 0x15) + } +} + 4d42: 783c jmp r15 + HT1621.show_cache[0] &= ~0x08; //模式 + 4d44: 834c ld.b r2, (r3, 0xc) + 4d46: 3a83 bclri r2, 3 + 4d48: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x0C; //风速 + 4d4a: 834d ld.b r2, (r3, 0xd) + 4d4c: 3a82 bclri r2, 2 + 4d4e: 3a83 bclri r2, 3 + 4d50: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x04; //设置温度 + 4d52: 834f ld.b r2, (r3, 0xf) + 4d54: 3a82 bclri r2, 2 + 4d56: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d58: 8355 ld.b r2, (r3, 0x15) + 4d5a: 3a83 bclri r2, 3 + 4d5c: 07f2 br 0x4d40 // 4d40 + 4d5e: 0000 bkpt + 4d60: 20000390 .long 0x20000390 + +Disassembly of section .text.Controlled_Buzzer: + +00004d64 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 4d64: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 4d66: 3841 cmpnei r0, 1 + 4d68: 0c0a bf 0x4d7c // 4d7c + 4d6a: 3840 cmpnei r0, 0 + 4d6c: 0c04 bf 0x4d74 // 4d74 + 4d6e: 3842 cmpnei r0, 2 + 4d70: 0c12 bf 0x4d94 // 4d94 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 4d72: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 4d74: 3010 movi r0, 16 + 4d76: e3fffe29 bsr 0x49c8 // 49c8 + break; + 4d7a: 07fc br 0x4d72 // 4d72 + HT1621_WR_CMD(HT1621_BLON); + 4d7c: 3012 movi r0, 18 + 4d7e: e3fffe25 bsr 0x49c8 // 49c8 + HT1621.buz_control = 0x01; + 4d82: 1069 lrw r3, 0x20000390 // 4da4 + 4d84: 3220 movi r2, 32 + 4d86: 608c addu r2, r3 + 4d88: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 4d8a: a222 st.b r1, (r2, 0x2) + HT1621.buz_tick = SysTick_1ms; + 4d8c: 1047 lrw r2, 0x200000b8 // 4da8 + 4d8e: 9240 ld.w r2, (r2, 0x0) + 4d90: b34d st.w r2, (r3, 0x34) +} + 4d92: 07f0 br 0x4d72 // 4d72 + HT1621_WR_CMD(HT1621_BLON); + 4d94: 3012 movi r0, 18 + 4d96: e3fffe19 bsr 0x49c8 // 49c8 + HT1621.buz_control = 0x02; + 4d9a: 1063 lrw r3, 0x20000390 // 4da4 + 4d9c: 3220 movi r2, 32 + 4d9e: 608c addu r2, r3 + 4da0: 3102 movi r1, 2 + 4da2: 07f4 br 0x4d8a // 4d8a + 4da4: 20000390 .long 0x20000390 + 4da8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00004dac : +/* +*函数功能:控制LCD 按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_LCD_Backlight(U8_T state){ + switch (state) { + 4dac: 3840 cmpnei r0, 0 + 4dae: 0c04 bf 0x4db6 // 4db6 + 4db0: 3841 cmpnei r0, 1 + 4db2: 0c07 bf 0x4dc0 // 4dc0 + break; + case 0x01: + EPT0->CMPC=0; + break; + } +} + 4db4: 783c jmp r15 + EPT0->CMPC=3000; + 4db6: 1065 lrw r3, 0x20000020 // 4dc8 + 4db8: 1045 lrw r2, 0xbb8 // 4dcc + 4dba: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPC=0; + 4dbc: b34d st.w r2, (r3, 0x34) +} + 4dbe: 07fb br 0x4db4 // 4db4 + EPT0->CMPC=0; + 4dc0: 1062 lrw r3, 0x20000020 // 4dc8 + 4dc2: 3200 movi r2, 0 + 4dc4: 9360 ld.w r3, (r3, 0x0) + 4dc6: 07fb br 0x4dbc // 4dbc + 4dc8: 20000020 .long 0x20000020 + 4dcc: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Set_Device_ADDR: + +00004dd0 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4dd0: 14d4 push r4-r7, r15 + 4dd2: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4dd4: 11a3 lrw r5, 0x7996 // 4e60 + 4dd6: 1184 lrw r4, 0x20000390 // 4e64 + 4dd8: 6014 addu r0, r5 + HT1621.show_cache[7] &= 0x08; + 4dda: 3308 movi r3, 8 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4ddc: 6c87 mov r2, r1 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4dde: 8000 ld.b r0, (r0, 0x0) + HT1621.show_cache[7] &= 0x08; + 4de0: 8433 ld.b r1, (r4, 0x13) + 4de2: 684c and r1, r3 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4de4: 48c4 lsri r6, r0, 4 + 4de6: 6c58 or r1, r6 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4de8: 370f movi r7, 15 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4dea: a433 st.b r1, (r4, 0x13) + HT1621.show_cache[17] = 0x00; + HT1621.show_cache[16] &= 0x08; + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4dec: 8438 ld.b r1, (r4, 0x18) + 4dee: 684c and r1, r3 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4df0: 681c and r0, r7 + 4df2: a414 st.b r0, (r4, 0x14) + HT1621.show_cache[14] &= 0x08; + 4df4: 84da ld.b r6, (r4, 0x1a) + HT1621.show_cache[12] &= 0x08; + 4df6: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 4df8: 6c0b mov r0, r2 + 4dfa: 3164 movi r1, 100 + HT1621.show_cache[14] &= 0x08; + 4dfc: 698c and r6, r3 + HT1621.show_cache[12] &= 0x08; + 4dfe: b862 st.w r3, (r14, 0x8) + U8_T tmp_H = tmp_Integer/10; + 4e00: b841 st.w r2, (r14, 0x4) + 4e02: e3fff531 bsr 0x3864 // 3864 <__udivsi3> + + //显示设置地址 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e06: 7400 zextb r0, r0 + 4e08: 6014 addu r0, r5 + 4e0a: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[16] &= 0x08; + 4e0c: 9862 ld.w r3, (r14, 0x8) + 4e0e: 841c ld.b r0, (r4, 0x1c) + 4e10: 68c0 and r3, r0 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e12: 4904 lsri r0, r1, 4 + 4e14: 6cc0 or r3, r0 + U8_T tmp_Integer = addr/10; + 4e16: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e18: 685c and r1, r7 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e1a: a47c st.b r3, (r4, 0x1c) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e1c: a43d st.b r1, (r4, 0x1d) + U8_T tmp_Integer = addr/10; + 4e1e: 6c0b mov r0, r2 + 4e20: 310a movi r1, 10 + 4e22: e3fff521 bsr 0x3864 // 3864 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 4e26: 7400 zextb r0, r0 + 4e28: 310a movi r1, 10 + 4e2a: e3fff52f bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e2e: 7400 zextb r0, r0 + 4e30: 6014 addu r0, r5 + 4e32: 8060 ld.b r3, (r0, 0x0) + 4e34: 4b24 lsri r1, r3, 4 + U8_T tmp_quantile = addr%10; + 4e36: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e38: 68dc and r3, r7 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e3a: 6d84 or r6, r1 + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e3c: a47b st.b r3, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e3e: a4da st.b r6, (r4, 0x1a) + U8_T tmp_quantile = addr%10; + 4e40: 310a movi r1, 10 + 4e42: 6c0b mov r0, r2 + 4e44: e3fff522 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e48: 7400 zextb r0, r0 + 4e4a: 6140 addu r5, r0 + 4e4c: 8560 ld.b r3, (r5, 0x0) + 4e4e: 4b44 lsri r2, r3, 4 + 4e50: 9820 ld.w r1, (r14, 0x0) + 4e52: 6c84 or r2, r1 + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e54: 69cc and r7, r3 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e56: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e58: a4f9 st.b r7, (r4, 0x19) +} + 4e5a: 1403 addi r14, r14, 12 + 4e5c: 1494 pop r4-r7, r15 + 4e5e: 0000 bkpt + 4e60: 00007996 .long 0x00007996 + 4e64: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temp_Difference: + +00004e68 : + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e68: 1057 lrw r2, 0x20000390 // 4ec4 + HT1621.show_cache[7] &= 0x08; + 4e6a: 3108 movi r1, 8 + 4e6c: 8273 ld.b r3, (r2, 0x13) + 4e6e: 68c4 and r3, r1 + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e70: 3ba0 bseti r3, 0 + 4e72: 3ba1 bseti r3, 1 + 4e74: a273 st.b r3, (r2, 0x13) + HT1621.show_cache[8] |= Diaital[2]&0x0F; + 4e76: 330d movi r3, 13 + 4e78: a274 st.b r3, (r2, 0x14) + + //清楚原数字 + HT1621.show_cache[17] = 0x00; + 4e7a: 3300 movi r3, 0 + 4e7c: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] &= 0x08; + 4e7e: 827c ld.b r3, (r2, 0x1c) + 4e80: 68c4 and r3, r1 + 4e82: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] = 0x00; + 4e84: 3300 movi r3, 0 + 4e86: a27b st.b r3, (r2, 0x1b) + HT1621.show_cache[14] &= 0x08; + 4e88: 827a ld.b r3, (r2, 0x1a) + 4e8a: 68c4 and r3, r1 + 4e8c: a27a st.b r3, (r2, 0x1a) + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4e8e: 8278 ld.b r3, (r2, 0x18) + 4e90: 684c and r1, r3 + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 4e92: 3300 movi r3, 0 + 4e94: 2b08 subi r3, 9 + 4e96: 60c0 addu r3, r0 + 4e98: 74cc zextb r3, r3 + 4e9a: 3b09 cmphsi r3, 10 + 4e9c: 0c08 bf 0x4eac // 4eac + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 4e9e: 3808 cmphsi r0, 9 + 4ea0: 0810 bt 0x4ec0 // 4ec0 + tmp_quantile = 9 - diff; + 4ea2: 3309 movi r3, 9 + 4ea4: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[14] = 0x02; + 4ea6: 3002 movi r0, 2 + tmp_quantile = 9 - diff; + 4ea8: 74cc zextb r3, r3 + HT1621.show_cache[14] = 0x02; + 4eaa: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] = 0x00; + } + + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4eac: 1007 lrw r0, 0x7996 // 4ec8 + 4eae: 60c0 addu r3, r0 + 4eb0: 8360 ld.b r3, (r3, 0x0) + 4eb2: 4b04 lsri r0, r3, 4 + 4eb4: 6c40 or r1, r0 + 4eb6: a238 st.b r1, (r2, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4eb8: 310f movi r1, 15 + 4eba: 68c4 and r3, r1 + 4ebc: a279 st.b r3, (r2, 0x19) +} + 4ebe: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 4ec0: 3300 movi r3, 0 + 4ec2: 07f5 br 0x4eac // 4eac + 4ec4: 20000390 .long 0x20000390 + 4ec8: 00007996 .long 0x00007996 + +Disassembly of section .text.HT1621_Refresh_Task: + +00004ecc : + + +void HT1621_Refresh_Task(void){ + 4ecc: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 4ece: 10b4 lrw r5, 0x200000b8 // 4f1c + 4ed0: 1094 lrw r4, 0x20000390 // 4f20 + 4ed2: 9560 ld.w r3, (r5, 0x0) + 4ed4: 944b ld.w r2, (r4, 0x2c) + 4ed6: 60ca subu r3, r2 + 4ed8: 1053 lrw r2, 0x1f3 // 4f24 + 4eda: 64c8 cmphs r2, r3 + 4edc: 0806 bt 0x4ee8 // 4ee8 + HT1621.Refresh_timing = HT1621_Refresh_time; + 4ede: 33fa movi r3, 250 + 4ee0: 4361 lsli r3, r3, 1 + 4ee2: b46b st.w r3, (r4, 0x2c) + + HT1621_Refresh_Data(); + 4ee4: e3fffe18 bsr 0x4b14 // 4b14 + +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 4ee8: 1070 lrw r3, 0x200003b0 // 4f28 + 4eea: 8342 ld.b r2, (r3, 0x2) + 4eec: 3a41 cmpnei r2, 1 + 4eee: 080f bt 0x4f0c // 4f0c + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 4ef0: 942d ld.w r1, (r4, 0x34) + 4ef2: 9540 ld.w r2, (r5, 0x0) + 4ef4: 6086 subu r2, r1 + 4ef6: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4ef8: 6484 cmphs r1, r2 + 4efa: 0808 bt 0x4f0a // 4f0a + HT1621.buz_tick = SysTick_1ms; + 4efc: 9540 ld.w r2, (r5, 0x0) + 4efe: b44d st.w r2, (r4, 0x34) + HT1621_WR_CMD(HT1621_BIOFF); + 4f00: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 4f02: 3200 movi r2, 0 + 4f04: a342 st.b r2, (r3, 0x2) + HT1621_WR_CMD(HT1621_BIOFF); + 4f06: e3fffd61 bsr 0x49c8 // 49c8 + Controlled_Buzzer(0x00); + } + } + + +} + 4f0a: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 4f0c: 3a42 cmpnei r2, 2 + 4f0e: 0bfe bt 0x4f0a // 4f0a + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f10: 942d ld.w r1, (r4, 0x34) + 4f12: 9540 ld.w r2, (r5, 0x0) + 4f14: 6086 subu r2, r1 + 4f16: 1024 lrw r1, 0x1f3 // 4f24 + 4f18: 07f0 br 0x4ef8 // 4ef8 + 4f1a: 0000 bkpt + 4f1c: 200000b8 .long 0x200000b8 + 4f20: 20000390 .long 0x20000390 + 4f24: 000001f3 .long 0x000001f3 + 4f28: 200003b0 .long 0x200003b0 + +Disassembly of section .text.MODEL_Ctrl_Init: + +00004f2c : +#include "includes.h" + +MODEL_Struct detect_inf; + +void MODEL_Ctrl_Init(void) +{ + 4f2c: 14d1 push r4, r15 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + GPIO_Init(GPIOA0,1,1); + 4f2e: 1089 lrw r4, 0x2000004c // 4f50 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + 4f30: 3208 movi r2, 8 + 4f32: 3100 movi r1, 0 + 4f34: 1008 lrw r0, 0x200003cc // 4f54 + 4f36: e3ffe517 bsr 0x1964 // 1964 <__memset_fast> + GPIO_Init(GPIOA0,1,1); + 4f3a: 3201 movi r2, 1 + 4f3c: 9400 ld.w r0, (r4, 0x0) + 4f3e: 3101 movi r1, 1 + 4f40: e3ffe724 bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,1); + 4f44: 9400 ld.w r0, (r4, 0x0) + 4f46: 3101 movi r1, 1 + 4f48: e3ffe790 bsr 0x1e68 // 1e68 + +} + 4f4c: 1491 pop r4, r15 + 4f4e: 0000 bkpt + 4f50: 2000004c .long 0x2000004c + 4f54: 200003cc .long 0x200003cc + +Disassembly of section .text.Control_Mode_Detection: + +00004f58 : + +void Control_Mode_Detection(void){ + 4f58: 14d3 push r4-r6, r15 + + if(SysTick_1ms - detect_inf.detection_tick >= 10){ + 4f5a: 1189 lrw r4, 0x200003cc // 4ffc + 4f5c: 8445 ld.b r2, (r4, 0x5) + 4f5e: 8464 ld.b r3, (r4, 0x4) + 4f60: 4248 lsli r2, r2, 8 + 4f62: 6c8c or r2, r3 + 4f64: 8466 ld.b r3, (r4, 0x6) + 4f66: 4370 lsli r3, r3, 16 + 4f68: 6c8c or r2, r3 + 4f6a: 8467 ld.b r3, (r4, 0x7) + 4f6c: 1105 lrw r0, 0x200000b8 // 5000 + 4f6e: 4378 lsli r3, r3, 24 + 4f70: 9020 ld.w r1, (r0, 0x0) + 4f72: 6cc8 or r3, r2 + 4f74: 604e subu r1, r3 + 4f76: 3909 cmphsi r1, 10 + 4f78: 0c18 bf 0x4fa8 // 4fa8 + detect_inf.detection_tick = SysTick_1ms; + 4f7a: 9060 ld.w r3, (r0, 0x0) + 4f7c: 4b48 lsri r2, r3, 8 + + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4f7e: 11a2 lrw r5, 0x2000004c // 5004 + 4f80: 3101 movi r1, 1 + detect_inf.detection_tick = SysTick_1ms; + 4f82: a464 st.b r3, (r4, 0x4) + 4f84: a445 st.b r2, (r4, 0x5) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4f86: 9500 ld.w r0, (r5, 0x0) + detect_inf.detection_tick = SysTick_1ms; + 4f88: 4b50 lsri r2, r3, 16 + 4f8a: 4b78 lsri r3, r3, 24 + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4f8c: 84c1 ld.b r6, (r4, 0x1) + detect_inf.detection_tick = SysTick_1ms; + 4f8e: a446 st.b r2, (r4, 0x6) + 4f90: a467 st.b r3, (r4, 0x7) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4f92: e3ffe796 bsr 0x1ebe // 1ebe + 4f96: 641a cmpne r6, r0 + 4f98: 0c09 bf 0x4faa // 4faa + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4f9a: 9500 ld.w r0, (r5, 0x0) + 4f9c: 3101 movi r1, 1 + 4f9e: e3ffe790 bsr 0x1ebe // 1ebe + detect_inf.count = 0; + 4fa2: 3300 movi r3, 0 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fa4: a401 st.b r0, (r4, 0x1) + detect_inf.count = 0; + 4fa6: a460 st.b r3, (r4, 0x0) + } + } + } + + } +} + 4fa8: 1493 pop r4-r6, r15 + detect_inf.count++; + 4faa: 8460 ld.b r3, (r4, 0x0) + 4fac: 2300 addi r3, 1 + 4fae: 74cc zextb r3, r3 + if (detect_inf.count >= 20) { + 4fb0: 3b13 cmphsi r3, 20 + detect_inf.count++; + 4fb2: a460 st.b r3, (r4, 0x0) + if (detect_inf.count >= 20) { + 4fb4: 0ffa bf 0x4fa8 // 4fa8 + Dbg_Println(DBG_BIT_SYS_STATUS,"last_state %d state %d",detect_inf.last_state , GPIO_Read_Status(GPIOA0,1)); + 4fb6: 3101 movi r1, 1 + 4fb8: 9500 ld.w r0, (r5, 0x0) + 4fba: 84c1 ld.b r6, (r4, 0x1) + 4fbc: e3ffe781 bsr 0x1ebe // 1ebe + 4fc0: 6cc3 mov r3, r0 + 4fc2: 6c9b mov r2, r6 + 4fc4: 1031 lrw r1, 0x7cf2 // 5008 + 4fc6: 3000 movi r0, 0 + 4fc8: e3fff5c0 bsr 0x3b48 // 3b48 + detect_inf.control_model = detect_inf.last_state; + 4fcc: 8461 ld.b r3, (r4, 0x1) + detect_inf.stop_detect = 0x01; + 4fce: 3201 movi r2, 1 + if (detect_inf.control_model == 0x00) { + 4fd0: 3b40 cmpnei r3, 0 + detect_inf.control_model = detect_inf.last_state; + 4fd2: a463 st.b r3, (r4, 0x3) + detect_inf.stop_detect = 0x01; + 4fd4: a442 st.b r2, (r4, 0x2) + if (detect_inf.control_model == 0x00) { + 4fd6: 0be9 bt 0x4fa8 // 4fa8 + GPIO_PullHighLow_DIS(GPIOA0, 1); + 4fd8: 9500 ld.w r0, (r5, 0x0) + 4fda: 3101 movi r1, 1 + 4fdc: e3ffe750 bsr 0x1e7c // 1e7c + GPIO_Init(GPIOA0,1,Output); + 4fe0: 3200 movi r2, 0 + 4fe2: 9500 ld.w r0, (r5, 0x0) + 4fe4: 3101 movi r1, 1 + 4fe6: e3ffe6d1 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,1); + 4fea: 9500 ld.w r0, (r5, 0x0) + 4fec: 3101 movi r1, 1 + 4fee: e3ffe74e bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,1); + 4ff2: 9500 ld.w r0, (r5, 0x0) + 4ff4: 3101 movi r1, 1 + 4ff6: e3ffe755 bsr 0x1ea0 // 1ea0 +} + 4ffa: 07d7 br 0x4fa8 // 4fa8 + 4ffc: 200003cc .long 0x200003cc + 5000: 200000b8 .long 0x200000b8 + 5004: 2000004c .long 0x2000004c + 5008: 00007cf2 .long 0x00007cf2 + +Disassembly of section .text.TemCtrl_Init: + +0000500c : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 500c: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 500e: 1289 lrw r4, 0x200003d4 // 5130 + 5010: 321f movi r2, 31 + 5012: 3100 movi r1, 0 + 5014: 6c13 mov r0, r4 + 5016: e3ffe4a7 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 501a: 1267 lrw r3, 0x200000a8 // 5134 + 501c: 9360 ld.w r3, (r3, 0x0) + 501e: 3b80 bclri r3, 0 + 5020: 3b40 cmpnei r3, 0 + 5022: 0c80 bf 0x5122 // 5122 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 5024: 1225 lrw r1, 0x7d09 // 5138 + 5026: 3000 movi r0, 0 + 5028: e3fff590 bsr 0x3b48 // 3b48 + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 502c: 1264 lrw r3, 0x200000a4 // 513c + 502e: 30ff movi r0, 255 + 5030: 9320 ld.w r1, (r3, 0x0) + 5032: 6840 and r1, r0 + 5034: 3940 cmpnei r1, 0 + 5036: 0c05 bf 0x5040 // 5040 + 5038: 9340 ld.w r2, (r3, 0x0) + 503a: 6880 and r2, r0 + 503c: 3a41 cmpnei r2, 1 + 503e: 0865 bt 0x5108 // 5108 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 5040: 9340 ld.w r2, (r3, 0x0) + 5042: 4227 lsli r1, r2, 7 + 5044: 307f movi r0, 127 + 5046: 8442 ld.b r2, (r4, 0x2) + 5048: 6880 and r2, r0 + 504a: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 504c: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 504e: 9340 ld.w r2, (r3, 0x0) + 5050: 4a48 lsri r2, r2, 8 + 5052: 7488 zextb r2, r2 + 5054: 3a03 cmphsi r2, 4 + 5056: 085d bt 0x5110 // 5110 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 5058: 9340 ld.w r2, (r3, 0x0) + 505a: 3107 movi r1, 7 + 505c: 4a48 lsri r2, r2, 8 + 505e: 6884 and r2, r1 + 5060: 3070 movi r0, 112 + 5062: 8422 ld.b r1, (r4, 0x2) + 5064: 4244 lsli r2, r2, 4 + 5066: 6841 andn r1, r0 + 5068: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 506a: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 506c: 9340 ld.w r2, (r3, 0x0) + 506e: 4a50 lsri r2, r2, 16 + 5070: 7488 zextb r2, r2 + 5072: 3a03 cmphsi r2, 4 + 5074: 0852 bt 0x5118 // 5118 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 5076: 9340 ld.w r2, (r3, 0x0) + 5078: 3107 movi r1, 7 + 507a: 4a50 lsri r2, r2, 16 + 507c: 6884 and r2, r1 + 507e: 300e movi r0, 14 + 5080: 8422 ld.b r1, (r4, 0x2) + 5082: 4241 lsli r2, r2, 1 + 5084: 6841 andn r1, r0 + 5086: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 5088: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 508a: 9340 ld.w r2, (r3, 0x0) + 508c: 4a58 lsri r2, r2, 24 + 508e: 3a0f cmphsi r2, 16 + 5090: 0c05 bf 0x509a // 509a + 5092: 9340 ld.w r2, (r3, 0x0) + 5094: 4a58 lsri r2, r2, 24 + 5096: 3a1f cmphsi r2, 32 + 5098: 0c05 bf 0x50a2 // 50a2 + 509a: 9340 ld.w r2, (r3, 0x0) + 509c: 4a58 lsri r2, r2, 24 + 509e: 3a40 cmpnei r2, 0 + 50a0: 0846 bt 0x512c // 512c + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 50a2: 9360 ld.w r3, (r3, 0x0) + 50a4: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 50a6: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 50a8: e3fffc64 bsr 0x4970 // 4970 + 50ac: 1165 lrw r3, 0x20000350 // 5140 + 50ae: 8362 ld.b r3, (r3, 0x2) + 50b0: 320a movi r2, 10 + 50b2: 7cc8 mult r3, r2 + 50b4: 2b59 subi r3, 90 + 50b6: 600c addu r0, r3 + 50b8: 7401 zexth r0, r0 + 50ba: 4868 lsri r3, r0, 8 + 50bc: a469 st.b r3, (r4, 0x9) + 50be: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50c0: 310a movi r1, 10 + 50c2: e3fff3d1 bsr 0x3864 // 3864 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 50c6: 3301 movi r3, 1 + 50c8: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 50ca: 3300 movi r3, 0 + 50cc: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 50ce: 3200 movi r2, 0 + 50d0: 107d lrw r3, 0x2000005c // 5144 + 50d2: 9360 ld.w r3, (r3, 0x0) + 50d4: 23ff addi r3, 256 + 50d6: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 50d8: 8442 ld.b r2, (r4, 0x2) + 50da: 4239 lsli r1, r2, 25 + 50dc: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50de: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 50e0: 4128 lsli r1, r1, 8 + 50e2: 9300 ld.w r0, (r3, 0x0) + 50e4: 6c40 or r1, r0 + 50e6: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 50e8: 423c lsli r1, r2, 28 + 50ea: 493d lsri r1, r1, 29 + 50ec: 9300 ld.w r0, (r3, 0x0) + 50ee: 4130 lsli r1, r1, 16 + 50f0: 6c40 or r1, r0 + 50f2: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 50f4: 8421 ld.b r1, (r4, 0x1) + 50f6: 9300 ld.w r0, (r3, 0x0) + 50f8: 4138 lsli r1, r1, 24 + 50fa: 6c40 or r1, r0 + 50fc: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 50fe: 9320 ld.w r1, (r3, 0x0) + 5100: 4a47 lsri r2, r2, 7 + 5102: 6c84 or r2, r1 + 5104: b340 st.w r2, (r3, 0x0) +} + 5106: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5108: 8442 ld.b r2, (r4, 0x2) + 510a: 317f movi r1, 127 + 510c: 6884 and r2, r1 + 510e: 079f br 0x504c // 504c + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5110: 8442 ld.b r2, (r4, 0x2) + 5112: 3170 movi r1, 112 + 5114: 6885 andn r2, r1 + 5116: 07aa br 0x506a // 506a + TempCtrl.TemState_Now.fan = FAN_MID; + 5118: 8442 ld.b r2, (r4, 0x2) + 511a: 310e movi r1, 14 + 511c: 6885 andn r2, r1 + 511e: 3aa2 bseti r2, 2 + 5120: 07b4 br 0x5088 // 5088 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 5122: 8462 ld.b r3, (r4, 0x2) + 5124: 320e movi r2, 14 + 5126: 68c9 andn r3, r2 + 5128: 3ba2 bseti r3, 2 + 512a: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 512c: 3318 movi r3, 24 + 512e: 07bc br 0x50a6 // 50a6 + 5130: 200003d4 .long 0x200003d4 + 5134: 200000a8 .long 0x200000a8 + 5138: 00007d09 .long 0x00007d09 + 513c: 200000a4 .long 0x200000a4 + 5140: 20000350 .long 0x20000350 + 5144: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00005148 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 5148: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 514a: 1031 lrw r1, 0x200003d4 // 518c + 514c: 8162 ld.b r3, (r1, 0x2) + 514e: 748e sextb r2, r3 + 5150: 3adf btsti r2, 31 + 5152: 0c14 bf 0x517a // 517a + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 5154: 4359 lsli r2, r3, 25 + 5156: 4a5d lsri r2, r2, 29 + 5158: 3a42 cmpnei r2, 2 + 515a: 0c11 bf 0x517c // 517c + 515c: 3a44 cmpnei r2, 4 + 515e: 0c13 bf 0x5184 // 5184 + 5160: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 5162: 3270 movi r2, 112 + 5164: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 5166: 0802 bt 0x516a // 516a + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 5168: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 516a: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 516c: 8142 ld.b r2, (r1, 0x2) + 516e: 4259 lsli r2, r2, 25 + 5170: 4a5d lsri r2, r2, 29 + 5172: 1028 lrw r1, 0x7d22 // 5190 + 5174: 3000 movi r0, 0 + 5176: e3fff4e9 bsr 0x3b48 // 3b48 +} + 517a: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 517c: 3270 movi r2, 112 + 517e: 68c9 andn r3, r2 + 5180: 3ba6 bseti r3, 6 + 5182: 07f4 br 0x516a // 516a + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 5184: 3270 movi r2, 112 + 5186: 68c9 andn r3, r2 + 5188: 07f1 br 0x516a // 516a + 518a: 0000 bkpt + 518c: 200003d4 .long 0x200003d4 + 5190: 00007d22 .long 0x00007d22 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00005194 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 5194: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 5196: 1071 lrw r3, 0x200003d4 // 51d8 + 5198: 8342 ld.b r2, (r3, 0x2) + 519a: 744a sextb r1, r2 + 519c: 39df btsti r1, 31 + 519e: 0c15 bf 0x51c8 // 51c8 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 51a0: 421c lsli r0, r2, 28 + 51a2: 481d lsri r0, r0, 29 + 51a4: 3803 cmphsi r0, 4 + 51a6: 0815 bt 0x51d0 // 51d0 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 51a8: 8342 ld.b r2, (r3, 0x2) + 51aa: 310e movi r1, 14 + 51ac: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 51ae: e3ffdda7 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 51b2: 0211 .short 0x0211 + 51b4: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 51b6: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; + 51b8: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 51ba: 8342 ld.b r2, (r3, 0x2) + 51bc: 425c lsli r2, r2, 28 + 51be: 4a5d lsri r2, r2, 29 + 51c0: 1027 lrw r1, 0x7d2b // 51dc + 51c2: 3000 movi r0, 0 + 51c4: e3fff4c2 bsr 0x3b48 // 3b48 +} + 51c8: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 51ca: 3aa1 bseti r2, 1 + 51cc: 3aa2 bseti r2, 2 + 51ce: 07f5 br 0x51b8 // 51b8 + TempCtrl.TemState_Now.fan = FAN_LOW; + 51d0: 310e movi r1, 14 + 51d2: 6885 andn r2, r1 + 51d4: 3aa1 bseti r2, 1 + 51d6: 07f1 br 0x51b8 // 51b8 + 51d8: 200003d4 .long 0x200003d4 + 51dc: 00007d2b .long 0x00007d2b + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +000051e0 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 51e0: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 51e2: 106a lrw r3, 0x200003d4 // 5208 + 51e4: 8342 ld.b r2, (r3, 0x2) + 51e6: 748a sextb r2, r2 + 51e8: 3adf btsti r2, 31 + 51ea: 0c0b bf 0x5200 // 5200 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 51ec: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 51ee: 3a05 cmphsi r2, 6 + 51f0: 0c09 bf 0x5202 // 5202 + { + TemSet--; //超过最低温度,就减 + 51f2: 2a00 subi r2, 1 + 51f4: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 51f6: 1026 lrw r1, 0x7d32 // 520c + 51f8: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 51fa: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 51fc: e3fff4a6 bsr 0x3b48 // 3b48 +} + 5200: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 5202: 3205 movi r2, 5 + 5204: 07f9 br 0x51f6 // 51f6 + 5206: 0000 bkpt + 5208: 200003d4 .long 0x200003d4 + 520c: 00007d32 .long 0x00007d32 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00005210 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 5210: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 5212: 106a lrw r3, 0x200003d4 // 5238 + 5214: 8342 ld.b r2, (r3, 0x2) + 5216: 748a sextb r2, r2 + 5218: 3adf btsti r2, 31 + 521a: 0c0c bf 0x5232 // 5232 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 521c: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 521e: 3122 movi r1, 34 + 5220: 6484 cmphs r1, r2 + 5222: 0c09 bf 0x5234 // 5234 + { + TemSet++; + 5224: 2200 addi r2, 1 + 5226: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 5228: 1025 lrw r1, 0x7d3b // 523c + 522a: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 522c: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 522e: e3fff48d bsr 0x3b48 // 3b48 +} + 5232: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 5234: 3223 movi r2, 35 + 5236: 07f9 br 0x5228 // 5228 + 5238: 200003d4 .long 0x200003d4 + 523c: 00007d3b .long 0x00007d3b + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00005240 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 5240: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 5242: 104b lrw r2, 0x200003d4 // 526c + 5244: 8262 ld.b r3, (r2, 0x2) + 5246: 4b27 lsri r1, r3, 7 + 5248: 3940 cmpnei r1, 0 + 524a: 0c0d bf 0x5264 // 5264 + 524c: 3941 cmpnei r1, 1 + 524e: 080b bt 0x5264 // 5264 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 5250: 317f movi r1, 127 + 5252: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 5254: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 5256: 8242 ld.b r2, (r2, 0x2) + 5258: 4a47 lsri r2, r2, 7 + 525a: 1026 lrw r1, 0x7d3b // 5270 + 525c: 3000 movi r0, 0 + 525e: e3fff475 bsr 0x3b48 // 3b48 +} + 5262: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 5264: 3100 movi r1, 0 + 5266: 297f subi r1, 128 + 5268: 6cc4 or r3, r1 + 526a: 07f5 br 0x5254 // 5254 + 526c: 200003d4 .long 0x200003d4 + 5270: 00007d3b .long 0x00007d3b + +Disassembly of section .text.Tem_Valve_Ctrl: + +00005274 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 5274: 14d2 push r4-r5, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 5276: 1198 lrw r4, 0x200003d4 // 5354 + 5278: 8420 ld.b r1, (r4, 0x0) + 527a: 3940 cmpnei r1, 0 + 527c: 0802 bt 0x5280 // 5280 + 527e: 3123 movi r1, 35 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 5280: 8441 ld.b r2, (r4, 0x1) + 5282: 3a40 cmpnei r2, 0 + 5284: 0802 bt 0x5288 // 5288 + 5286: 3223 movi r2, 35 + switch(TempCtrl.TemState_Now.on_off) // + 5288: 8462 ld.b r3, (r4, 0x2) + 528a: 4b07 lsri r0, r3, 7 + 528c: 3840 cmpnei r0, 0 + 528e: 0c2c bf 0x52e6 // 52e6 + 5290: 3841 cmpnei r0, 1 + 5292: 0860 bt 0x5352 // 5352 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 5294: 4319 lsli r0, r3, 25 + 5296: 481d lsri r0, r0, 29 + 5298: 3842 cmpnei r0, 2 + 529a: 0c23 bf 0x52e0 // 52e0 + 529c: 3844 cmpnei r0, 4 + 529e: 0c24 bf 0x52e6 // 52e6 + 52a0: 3840 cmpnei r0, 0 + 52a2: 0858 bt 0x5352 // 5352 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 52a4: 5a03 subi r0, r2, 1 + 52a6: 6405 cmplt r1, r0 + 52a8: 0c0d bf 0x52c2 // 52c2 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY2_COLD_CLOSE; + 52aa: 11ac lrw r5, 0x2000004c // 5358 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52ac: 3b80 bclri r3, 0 + RLY2_COLD_CLOSE; + 52ae: 310f movi r1, 15 + 52b0: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52b2: a462 st.b r3, (r4, 0x2) + RLY2_COLD_CLOSE; + 52b4: e3ffe5f6 bsr 0x1ea0 // 1ea0 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + { + RLY2_COLD_OPEN; + RLY1_HOT_CLOSE; + 52b8: 9500 ld.w r0, (r5, 0x0) + 52ba: 310e movi r1, 14 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 52bc: e3ffe5f2 bsr 0x1ea0 // 1ea0 + 52c0: 0437 br 0x532e // 532e + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 52c2: 2200 addi r2, 1 + 52c4: 6449 cmplt r2, r1 + 52c6: 0c46 bf 0x5352 // 5352 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 52c8: 3ba0 bseti r3, 0 + 52ca: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 52cc: 1164 lrw r3, 0x20000350 // 535c + 52ce: 8361 ld.b r3, (r3, 0x1) + 52d0: 3b41 cmpnei r3, 1 + 52d2: 0823 bt 0x5318 // 5318 + RLY2_COLD_OPEN; + 52d4: 11a1 lrw r5, 0x2000004c // 5358 + 52d6: 310f movi r1, 15 + 52d8: 9500 ld.w r0, (r5, 0x0) + 52da: e3ffe5df bsr 0x1e98 // 1e98 + 52de: 07ed br 0x52b8 // 52b8 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 52e0: 5a02 addi r0, r2, 1 + 52e2: 6441 cmplt r0, r1 + 52e4: 0c09 bf 0x52f6 // 52f6 + RLY1_HOT_CLOSE; + 52e6: 10bd lrw r5, 0x2000004c // 5358 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52e8: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 52ea: 310e movi r1, 14 + 52ec: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52ee: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 52f0: e3ffe5d8 bsr 0x1ea0 // 1ea0 + 52f4: 040f br 0x5312 // 5312 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 52f6: 2a00 subi r2, 1 + 52f8: 6485 cmplt r1, r2 + 52fa: 0c2c bf 0x5352 // 5352 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 52fc: 3ba0 bseti r3, 0 + 52fe: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 5300: 1077 lrw r3, 0x20000350 // 535c + 5302: 8361 ld.b r3, (r3, 0x1) + 5304: 3b41 cmpnei r3, 1 + 5306: 0809 bt 0x5318 // 5318 + RLY1_HOT_OPEN; + 5308: 10b4 lrw r5, 0x2000004c // 5358 + 530a: 310e movi r1, 14 + 530c: 9500 ld.w r0, (r5, 0x0) + 530e: e3ffe5c5 bsr 0x1e98 // 1e98 + RLY2_COLD_CLOSE; + 5312: 9500 ld.w r0, (r5, 0x0) + 5314: 310f movi r1, 15 + 5316: 07d3 br 0x52bc // 52bc + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 5318: 3b40 cmpnei r3, 0 + 531a: 080a bt 0x532e // 532e + RLY2_COLD_OPEN; + 531c: 10af lrw r5, 0x2000004c // 5358 + 531e: 310f movi r1, 15 + 5320: 9500 ld.w r0, (r5, 0x0) + 5322: e3ffe5bb bsr 0x1e98 // 1e98 + RLY1_HOT_OPEN; + 5326: 9500 ld.w r0, (r5, 0x0) + 5328: 310e movi r1, 14 + 532a: e3ffe5b7 bsr 0x1e98 // 1e98 + if (detect_inf.control_model != 0x00){ + 532e: 106d lrw r3, 0x200003cc // 5360 + 5330: 8363 ld.b r3, (r3, 0x3) + 5332: 3b40 cmpnei r3, 0 + 5334: 0c0f bf 0x5352 // 5352 + if(rf_info.valve_state_last != TempCtrl.TemState_Now.valve) + 5336: 8462 ld.b r3, (r4, 0x2) + 5338: 437f lsli r3, r3, 31 + 533a: 4b7f lsri r3, r3, 31 + 533c: 104a lrw r2, 0x200005a0 // 5364 + 533e: 744c zextb r1, r3 + 5340: 8202 ld.b r0, (r2, 0x2) + 5342: 6442 cmpne r0, r1 + 5344: 0c07 bf 0x5352 // 5352 + { + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + rf_info.valve_flag = 0x01; + 5346: 3100 movi r1, 0 + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + 5348: a262 st.b r3, (r2, 0x2) + rf_info.valve_flag = 0x01; + 534a: 297f subi r1, 128 + 534c: 8261 ld.b r3, (r2, 0x1) + 534e: 6cc4 or r3, r1 + 5350: a261 st.b r3, (r2, 0x1) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 5352: 1492 pop r4-r5, r15 + 5354: 200003d4 .long 0x200003d4 + 5358: 2000004c .long 0x2000004c + 535c: 20000350 .long 0x20000350 + 5360: 200003cc .long 0x200003cc + 5364: 200005a0 .long 0x200005a0 + +Disassembly of section .text.TemCtrl_Pro: + +00005368 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 5368: 14d1 push r4, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 536a: 1117 lrw r0, 0x200000b8 // 5444 + 536c: 1137 lrw r1, 0x200000d4 // 5448 + 536e: 9040 ld.w r2, (r0, 0x0) + 5370: 9160 ld.w r3, (r1, 0x0) + 5372: 608e subu r2, r3 + 5374: 33fa movi r3, 250 + 5376: 4362 lsli r3, r3, 2 + 5378: 648c cmphs r3, r2 + 537a: 0833 bt 0x53e0 // 53e0 + { + tick = SysTick_1ms; + 537c: 9060 ld.w r3, (r0, 0x0) + 537e: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 5380: e3fffaf8 bsr 0x4970 // 4970 + 5384: 1172 lrw r3, 0x20000350 // 544c + 5386: 8362 ld.b r3, (r3, 0x2) + 5388: 320a movi r2, 10 + 538a: 7cc8 mult r3, r2 + 538c: 2b59 subi r3, 90 + 538e: 600c addu r0, r3 + 5390: 7401 zexth r0, r0 + 5392: 1190 lrw r4, 0x200003d4 // 5450 + 5394: 7480 zextb r2, r0 + 5396: 4868 lsri r3, r0, 8 + 5398: a448 st.b r2, (r4, 0x8) + 539a: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 539c: a44c st.b r2, (r4, 0xc) + 539e: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 53a0: 310a movi r1, 10 + 53a2: e3fff261 bsr 0x3864 // 3864 <__udivsi3> + 53a6: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 53a8: e3ffff66 bsr 0x5274 // 5274 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 53ac: 8462 ld.b r3, (r4, 0x2) + 53ae: 3271 movi r2, 113 + 53b0: 6c4f mov r1, r3 + 53b2: 6849 andn r1, r2 + 53b4: 3280 movi r2, 128 + 53b6: 6486 cmpne r1, r2 + 53b8: 083f bt 0x5436 // 5436 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 53ba: 3270 movi r2, 112 + 53bc: 68c8 and r3, r2 + 53be: 3b40 cmpnei r3, 0 + 53c0: 0829 bt 0x5412 // 5412 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 53c2: 8461 ld.b r3, (r4, 0x1) + 53c4: 8440 ld.b r2, (r4, 0x0) + 53c6: 5b27 subi r1, r3, 2 + 53c8: 6449 cmplt r2, r1 + 53ca: 0c0c bf 0x53e2 // 53e2 + { + Relay_Stop(); //风速停 + 53cc: e0000810 bsr 0x63ec // 63ec + HT1621.wind_velocity = 0; + 53d0: 1161 lrw r3, 0x20000390 // 5454 + 53d2: 3200 movi r2, 0 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 1; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 53d4: 8402 ld.b r0, (r4, 0x2) + 53d6: 401c lsli r0, r0, 28 + 53d8: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 1; + 53da: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 53dc: e3fffc6a bsr 0x4cb0 // 4cb0 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 53e0: 1491 pop r4, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 53e2: 5b23 subi r1, r3, 1 + 53e4: 644a cmpne r2, r1 + 53e6: 0806 bt 0x53f2 // 53f2 + Relay_Low(); //低风速 + 53e8: e00007f0 bsr 0x63c8 // 63c8 + HT1621.wind_velocity = 1; + 53ec: 107a lrw r3, 0x20000390 // 5454 + 53ee: 3201 movi r2, 1 + 53f0: 07f2 br 0x53d4 // 53d4 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 53f2: 5b22 addi r1, r3, 1 + 53f4: 644a cmpne r2, r1 + 53f6: 0806 bt 0x5402 // 5402 + Relay_Mid(); //中风速 + 53f8: e00007d6 bsr 0x63a4 // 63a4 + HT1621.wind_velocity = 2; + 53fc: 1076 lrw r3, 0x20000390 // 5454 + 53fe: 3202 movi r2, 2 + 5400: 07ea br 0x53d4 // 53d4 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5402: 2301 addi r3, 2 + 5404: 648d cmplt r3, r2 + 5406: 0fed bf 0x53e0 // 53e0 + Relay_High(); //高风速 + 5408: e00007bc bsr 0x6380 // 6380 + HT1621.wind_velocity = 3; + 540c: 1072 lrw r3, 0x20000390 // 5454 + 540e: 3203 movi r2, 3 + 5410: 07e2 br 0x53d4 // 53d4 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 5412: 3220 movi r2, 32 + 5414: 648e cmpne r3, r2 + 5416: 0be5 bt 0x53e0 // 53e0 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5418: 8461 ld.b r3, (r4, 0x1) + 541a: 8440 ld.b r2, (r4, 0x0) + 541c: 5b27 subi r1, r3, 2 + 541e: 6449 cmplt r2, r1 + 5420: 0bf4 bt 0x5408 // 5408 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5422: 5b23 subi r1, r3, 1 + 5424: 644a cmpne r2, r1 + 5426: 0fe9 bf 0x53f8 // 53f8 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5428: 5b22 addi r1, r3, 1 + 542a: 644a cmpne r2, r1 + 542c: 0fde bf 0x53e8 // 53e8 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 542e: 2301 addi r3, 2 + 5430: 648d cmplt r3, r2 + 5432: 0fd7 bf 0x53e0 // 53e0 + 5434: 07cc br 0x53cc // 53cc + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5436: 74ce sextb r3, r3 + 5438: 3bdf btsti r3, 31 + 543a: 0bd3 bt 0x53e0 // 53e0 + Relay_Stop(); //风速停 + 543c: e00007d8 bsr 0x63ec // 63ec + 5440: 07d0 br 0x53e0 // 53e0 + 5442: 0000 bkpt + 5444: 200000b8 .long 0x200000b8 + 5448: 200000d4 .long 0x200000d4 + 544c: 20000350 .long 0x20000350 + 5450: 200003d4 .long 0x200003d4 + 5454: 20000390 .long 0x20000390 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00005458 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 5458: 14d2 push r4-r5, r15 + 545a: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 545c: 1131 lrw r1, 0x7d49 // 5520 + 545e: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5460: 1191 lrw r4, 0x200003f3 // 5524 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 5462: e3fff373 bsr 0x3b48 // 3b48 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5466: 8460 ld.b r3, (r4, 0x0) + 5468: 3b41 cmpnei r3, 1 + 546a: 11b0 lrw r5, 0x200000b8 // 5528 + 546c: 082e bt 0x54c8 // 54c8 + { + Debug_Inf.Tick = SysTick_1ms; + 546e: 9560 ld.w r3, (r5, 0x0) + 5470: 4b48 lsri r2, r3, 8 + 5472: a468 st.b r3, (r4, 0x8) + 5474: a449 st.b r2, (r4, 0x9) + 5476: 4b50 lsri r2, r3, 16 + 5478: 4b78 lsri r3, r3, 24 + 547a: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page < PAGE5ID) + 547c: 8462 ld.b r3, (r4, 0x2) + 547e: 3b04 cmphsi r3, 5 + Debug_Inf.Tick = SysTick_1ms; + 5480: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page < PAGE5ID) + 5482: 0803 bt 0x5488 // 5488 + { + Debug_Inf.Page++; + 5484: 2300 addi r3, 1 + 5486: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 5488: e3fffafe bsr 0x4a84 // 4a84 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 548c: 8462 ld.b r3, (r4, 0x2) + 548e: 3b42 cmpnei r3, 2 + 5490: 0806 bt 0x549c // 549c + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 5492: 8405 ld.b r0, (r4, 0x5) + 5494: e3fffcea bsr 0x4e68 // 4e68 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 5498: 1401 addi r14, r14, 4 + 549a: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 549c: 3b41 cmpnei r3, 1 + 549e: 0806 bt 0x54aa // 54aa + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 54a0: 8424 ld.b r1, (r4, 0x4) + 54a2: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 54a4: e3fffc96 bsr 0x4dd0 // 4dd0 + 54a8: 07f8 br 0x5498 // 5498 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 54aa: 3b43 cmpnei r3, 3 + 54ac: 0804 bt 0x54b4 // 54b4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 54ae: 8426 ld.b r1, (r4, 0x6) + 54b0: 3003 movi r0, 3 + 54b2: 07f9 br 0x54a4 // 54a4 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 54b4: 3b44 cmpnei r3, 4 + 54b6: 0804 bt 0x54be // 54be + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 54b8: 8427 ld.b r1, (r4, 0x7) + 54ba: 3004 movi r0, 4 + 54bc: 07f4 br 0x54a4 // 54a4 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 54be: 3b45 cmpnei r3, 5 + 54c0: 0bec bt 0x5498 // 5498 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 54c2: 8423 ld.b r1, (r4, 0x3) + 54c4: 3005 movi r0, 5 + 54c6: 07ef br 0x54a4 // 54a4 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 54c8: 1099 lrw r4, 0x200003d4 // 552c + 54ca: 8478 ld.b r3, (r4, 0x18) + 54cc: 3b41 cmpnei r3, 1 + 54ce: 081f bt 0x550c // 550c + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 54d0: 8462 ld.b r3, (r4, 0x2) + 54d2: 74ce sextb r3, r3 + 54d4: 3bdf btsti r3, 31 + 54d6: 0c1b bf 0x550c // 550c + TemCtrl_Model_Set(); //模式切换 + 54d8: e3fffe38 bsr 0x5148 // 5148 + if (detect_inf.control_model != 0x00){ + 54dc: 1075 lrw r3, 0x200003cc // 5530 + 54de: 8363 ld.b r3, (r3, 0x3) + 54e0: 3b40 cmpnei r3, 0 + 54e2: 0c0e bf 0x54fe // 54fe + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 54e4: 1074 lrw r3, 0x200005a0 // 5534 + 54e6: 8340 ld.b r2, (r3, 0x0) + 54e8: 3a41 cmpnei r2, 1 + 54ea: 080a bt 0x54fe // 54fe + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,ACTIVE); + 54ec: 8462 ld.b r3, (r4, 0x2) + 54ee: 4379 lsli r3, r3, 25 + 54f0: b840 st.w r2, (r14, 0x0) + 54f2: 4b7d lsri r3, r3, 29 + 54f4: 3204 movi r2, 4 + 54f6: 3102 movi r1, 2 + 54f8: 3005 movi r0, 5 + 54fa: e0000555 bsr 0x5fa4 // 5fa4 + if(g_eeprom.backlight_en == 0x01) + 54fe: 106f lrw r3, 0x20000350 // 5538 + 5500: 8364 ld.b r3, (r3, 0x4) + 5502: 3b41 cmpnei r3, 1 + 5504: 0804 bt 0x550c // 550c + Controlled_LCD_Backlight(1); + 5506: 3001 movi r0, 1 + 5508: e3fffc52 bsr 0x4dac // 4dac + TempCtrl.BackLightTick = SysTick_1ms; + 550c: 9560 ld.w r3, (r5, 0x0) + 550e: 4b48 lsri r2, r3, 8 + 5510: a470 st.b r3, (r4, 0x10) + 5512: a451 st.b r2, (r4, 0x11) + 5514: 4b50 lsri r2, r3, 16 + 5516: 4b78 lsri r3, r3, 24 + 5518: a452 st.b r2, (r4, 0x12) + 551a: a473 st.b r3, (r4, 0x13) +} + 551c: 07be br 0x5498 // 5498 + 551e: 0000 bkpt + 5520: 00007d49 .long 0x00007d49 + 5524: 200003f3 .long 0x200003f3 + 5528: 200000b8 .long 0x200000b8 + 552c: 200003d4 .long 0x200003d4 + 5530: 200003cc .long 0x200003cc + 5534: 200005a0 .long 0x200005a0 + 5538: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +0000553c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 553c: 14d2 push r4-r5, r15 + 553e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5540: 1131 lrw r1, 0x7d5e // 5604 + 5542: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5544: 1191 lrw r4, 0x200003f3 // 5608 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5546: e3fff301 bsr 0x3b48 // 3b48 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 554a: 8460 ld.b r3, (r4, 0x0) + 554c: 3b41 cmpnei r3, 1 + 554e: 11b0 lrw r5, 0x200000b8 // 560c + 5550: 082e bt 0x55ac // 55ac + { + Debug_Inf.Tick = SysTick_1ms; + 5552: 9560 ld.w r3, (r5, 0x0) + 5554: 4b48 lsri r2, r3, 8 + 5556: a468 st.b r3, (r4, 0x8) + 5558: a449 st.b r2, (r4, 0x9) + 555a: 4b50 lsri r2, r3, 16 + 555c: 4b78 lsri r3, r3, 24 + 555e: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page > PAGE1ID) + 5560: 8462 ld.b r3, (r4, 0x2) + 5562: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 5564: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page > PAGE1ID) + 5566: 0c03 bf 0x556c // 556c + { + Debug_Inf.Page--; + 5568: 2b00 subi r3, 1 + 556a: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 556c: e3fffa8c bsr 0x4a84 // 4a84 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 5570: 8462 ld.b r3, (r4, 0x2) + 5572: 3b42 cmpnei r3, 2 + 5574: 0806 bt 0x5580 // 5580 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 5576: 8405 ld.b r0, (r4, 0x5) + 5578: e3fffc78 bsr 0x4e68 // 4e68 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 557c: 1401 addi r14, r14, 4 + 557e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 5580: 3b41 cmpnei r3, 1 + 5582: 0806 bt 0x558e // 558e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5584: 8424 ld.b r1, (r4, 0x4) + 5586: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5588: e3fffc24 bsr 0x4dd0 // 4dd0 + 558c: 07f8 br 0x557c // 557c + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 558e: 3b43 cmpnei r3, 3 + 5590: 0804 bt 0x5598 // 5598 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5592: 8426 ld.b r1, (r4, 0x6) + 5594: 3003 movi r0, 3 + 5596: 07f9 br 0x5588 // 5588 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 5598: 3b44 cmpnei r3, 4 + 559a: 0804 bt 0x55a2 // 55a2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 559c: 8427 ld.b r1, (r4, 0x7) + 559e: 3004 movi r0, 4 + 55a0: 07f4 br 0x5588 // 5588 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 55a2: 3b45 cmpnei r3, 5 + 55a4: 0bec bt 0x557c // 557c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 55a6: 8423 ld.b r1, (r4, 0x3) + 55a8: 3005 movi r0, 5 + 55aa: 07ef br 0x5588 // 5588 + if(TempCtrl.CardState == CARDIN) + 55ac: 1099 lrw r4, 0x200003d4 // 5610 + 55ae: 8478 ld.b r3, (r4, 0x18) + 55b0: 3b41 cmpnei r3, 1 + 55b2: 081f bt 0x55f0 // 55f0 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 55b4: 8462 ld.b r3, (r4, 0x2) + 55b6: 74ce sextb r3, r3 + 55b8: 3bdf btsti r3, 31 + 55ba: 0c1b bf 0x55f0 // 55f0 + TemCtrl_Fan_Set(); //风速切换 + 55bc: e3fffdec bsr 0x5194 // 5194 + if (detect_inf.control_model != 0x00){ + 55c0: 1075 lrw r3, 0x200003cc // 5614 + 55c2: 8363 ld.b r3, (r3, 0x3) + 55c4: 3b40 cmpnei r3, 0 + 55c6: 0c0e bf 0x55e2 // 55e2 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 55c8: 1074 lrw r3, 0x200005a0 // 5618 + 55ca: 8340 ld.b r2, (r3, 0x0) + 55cc: 3a41 cmpnei r2, 1 + 55ce: 080a bt 0x55e2 // 55e2 + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,ACTIVE); + 55d0: 8462 ld.b r3, (r4, 0x2) + 55d2: 437c lsli r3, r3, 28 + 55d4: b840 st.w r2, (r14, 0x0) + 55d6: 4b7d lsri r3, r3, 29 + 55d8: 3204 movi r2, 4 + 55da: 3140 movi r1, 64 + 55dc: 3005 movi r0, 5 + 55de: e00004e3 bsr 0x5fa4 // 5fa4 + if(g_eeprom.backlight_en == 0x01) + 55e2: 106f lrw r3, 0x20000350 // 561c + 55e4: 8364 ld.b r3, (r3, 0x4) + 55e6: 3b41 cmpnei r3, 1 + 55e8: 0804 bt 0x55f0 // 55f0 + Controlled_LCD_Backlight(1); + 55ea: 3001 movi r0, 1 + 55ec: e3fffbe0 bsr 0x4dac // 4dac + TempCtrl.BackLightTick = SysTick_1ms; + 55f0: 9560 ld.w r3, (r5, 0x0) + 55f2: 4b48 lsri r2, r3, 8 + 55f4: a470 st.b r3, (r4, 0x10) + 55f6: a451 st.b r2, (r4, 0x11) + 55f8: 4b50 lsri r2, r3, 16 + 55fa: 4b78 lsri r3, r3, 24 + 55fc: a452 st.b r2, (r4, 0x12) + 55fe: a473 st.b r3, (r4, 0x13) +} + 5600: 07be br 0x557c // 557c + 5602: 0000 bkpt + 5604: 00007d5e .long 0x00007d5e + 5608: 200003f3 .long 0x200003f3 + 560c: 200000b8 .long 0x200000b8 + 5610: 200003d4 .long 0x200003d4 + 5614: 200003cc .long 0x200003cc + 5618: 200005a0 .long 0x200005a0 + 561c: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00005620 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 5620: 14d2 push r4-r5, r15 + 5622: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 5624: 1137 lrw r1, 0x7d71 // 5700 + 5626: 3000 movi r0, 0 + 5628: e3fff290 bsr 0x3b48 // 3b48 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 562c: 1176 lrw r3, 0x200003f3 // 5704 + 562e: 8340 ld.b r2, (r3, 0x0) + 5630: 3a41 cmpnei r2, 1 + 5632: 11b6 lrw r5, 0x200000b8 // 5708 + 5634: 083a bt 0x56a8 // 56a8 + { + Debug_Inf.Tick = SysTick_1ms; + 5636: 9540 ld.w r2, (r5, 0x0) + 5638: 4a28 lsri r1, r2, 8 + 563a: a348 st.b r2, (r3, 0x8) + 563c: a329 st.b r1, (r3, 0x9) + 563e: 4a30 lsri r1, r2, 16 + 5640: 4a58 lsri r2, r2, 24 + 5642: a34b st.b r2, (r3, 0xb) + if(Debug_Inf.Page == 0x01) //设置模式下:页面1 温控管制 + 5644: 8342 ld.b r2, (r3, 0x2) + 5646: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5648: a32a st.b r1, (r3, 0xa) + if(Debug_Inf.Page == 0x01) //设置模式下:页面1 温控管制 + 564a: 0807 bt 0x5658 // 5658 + { + Debug_Inf.PipeFlag = 0x01; //刷新地址 + 564c: a344 st.b r2, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 564e: 3101 movi r1, 1 + 5650: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr++; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5652: e3fffbbf bsr 0x4dd0 // 4dd0 + 5656: 040b br 0x566c // 566c + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 5658: 3a42 cmpnei r2, 2 + 565a: 080b bt 0x5670 // 5670 + 565c: 8305 ld.b r0, (r3, 0x5) + 565e: 3811 cmphsi r0, 18 + 5660: 0806 bt 0x566c // 566c + Debug_Inf.TempDiff++; + 5662: 2000 addi r0, 1 + 5664: 7400 zextb r0, r0 + 5666: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5668: e3fffc00 bsr 0x4e68 // 4e68 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 566c: 1401 addi r14, r14, 4 + 566e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 5670: 3a43 cmpnei r2, 3 + 5672: 0806 bt 0x567e // 567e + Debug_Inf.BackLight_En = 0x01; + 5674: 3201 movi r2, 1 + 5676: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5678: 3101 movi r1, 1 + 567a: 3003 movi r0, 3 + 567c: 07eb br 0x5652 // 5652 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 567e: 3a44 cmpnei r2, 4 + 5680: 0809 bt 0x5692 // 5692 + 5682: 8327 ld.b r1, (r3, 0x7) + 5684: 3901 cmphsi r1, 2 + 5686: 0bf3 bt 0x566c // 566c + Debug_Inf.KSens_Level++; + 5688: 2100 addi r1, 1 + 568a: 7444 zextb r1, r1 + 568c: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 568e: 3004 movi r0, 4 + 5690: 07e1 br 0x5652 // 5652 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + 5692: 3a45 cmpnei r2, 5 + 5694: 0bec bt 0x566c // 566c + 5696: 8323 ld.b r1, (r3, 0x3) + 5698: 32ff movi r2, 255 + 569a: 6486 cmpne r1, r2 + 569c: 0fe8 bf 0x566c // 566c + Debug_Inf.DevAddr++; //刷新地址 + 569e: 2100 addi r1, 1 + 56a0: 7444 zextb r1, r1 + 56a2: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 56a4: 3005 movi r0, 5 + 56a6: 07d6 br 0x5652 // 5652 + if(TempCtrl.CardState == CARDIN) + 56a8: 1099 lrw r4, 0x200003d4 // 570c + 56aa: 8478 ld.b r3, (r4, 0x18) + 56ac: 3b41 cmpnei r3, 1 + 56ae: 081f bt 0x56ec // 56ec + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 56b0: 8462 ld.b r3, (r4, 0x2) + 56b2: 74ce sextb r3, r3 + 56b4: 3bdf btsti r3, 31 + 56b6: 0c1b bf 0x56ec // 56ec + TemCtrl_Temperature_Add(); //设置温度+ + 56b8: e3fffdac bsr 0x5210 // 5210 + if (detect_inf.control_model != 0x00){ + 56bc: 1075 lrw r3, 0x200003cc // 5710 + 56be: 8363 ld.b r3, (r3, 0x3) + 56c0: 3b40 cmpnei r3, 0 + 56c2: 0c0e bf 0x56de // 56de + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 56c4: 1074 lrw r3, 0x200005a0 // 5714 + 56c6: 8340 ld.b r2, (r3, 0x0) + 56c8: 3a41 cmpnei r2, 1 + 56ca: 080a bt 0x56de // 56de + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 56cc: 310a movi r1, 10 + 56ce: 8461 ld.b r3, (r4, 0x1) + 56d0: 7cc4 mult r3, r1 + 56d2: b840 st.w r2, (r14, 0x0) + 56d4: 3110 movi r1, 16 + 56d6: 3202 movi r2, 2 + 56d8: 3008 movi r0, 8 + 56da: e0000465 bsr 0x5fa4 // 5fa4 + if(g_eeprom.backlight_en == 0x01) + 56de: 106f lrw r3, 0x20000350 // 5718 + 56e0: 8364 ld.b r3, (r3, 0x4) + 56e2: 3b41 cmpnei r3, 1 + 56e4: 0804 bt 0x56ec // 56ec + Controlled_LCD_Backlight(1); + 56e6: 3001 movi r0, 1 + 56e8: e3fffb62 bsr 0x4dac // 4dac + TempCtrl.BackLightTick = SysTick_1ms; + 56ec: 9560 ld.w r3, (r5, 0x0) + 56ee: 4b48 lsri r2, r3, 8 + 56f0: a470 st.b r3, (r4, 0x10) + 56f2: a451 st.b r2, (r4, 0x11) + 56f4: 4b50 lsri r2, r3, 16 + 56f6: 4b78 lsri r3, r3, 24 + 56f8: a452 st.b r2, (r4, 0x12) + 56fa: a473 st.b r3, (r4, 0x13) +} + 56fc: 07b8 br 0x566c // 566c + 56fe: 0000 bkpt + 5700: 00007d71 .long 0x00007d71 + 5704: 200003f3 .long 0x200003f3 + 5708: 200000b8 .long 0x200000b8 + 570c: 200003d4 .long 0x200003d4 + 5710: 200003cc .long 0x200003cc + 5714: 200005a0 .long 0x200005a0 + 5718: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +0000571c : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 571c: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 571e: 1097 lrw r4, 0x200003f3 // 5778 + 5720: 8460 ld.b r3, (r4, 0x0) + 5722: 3b40 cmpnei r3, 0 + 5724: 0828 bt 0x5774 // 5774 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 5726: 8461 ld.b r3, (r4, 0x1) + 5728: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 572a: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 572c: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 572e: 0823 bt 0x5774 // 5774 + 5730: 1073 lrw r3, 0x200003d4 // 577c + 5732: 8362 ld.b r3, (r3, 0x2) + 5734: 74ce sextb r3, r3 + 5736: 3bdf btsti r3, 31 + 5738: 081e bt 0x5774 // 5774 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 573a: 1032 lrw r1, 0x7d88 // 5780 + 573c: 3000 movi r0, 0 + 573e: e3fff205 bsr 0x3b48 // 3b48 + Debug_Inf.Tick = SysTick_1ms; + 5742: 1071 lrw r3, 0x200000b8 // 5784 + 5744: 9360 ld.w r3, (r3, 0x0) + 5746: 4b48 lsri r2, r3, 8 + 5748: a468 st.b r3, (r4, 0x8) + 574a: a449 st.b r2, (r4, 0x9) + 574c: 4b50 lsri r2, r3, 16 + 574e: 4b78 lsri r3, r3, 24 + 5750: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 5752: 3300 movi r3, 0 + 5754: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 5756: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 5758: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 575a: a460 st.b r3, (r4, 0x0) + HT1621_Clear(); + 575c: e3fff994 bsr 0x4a84 // 4a84 + Controlled_LCD_Backlight(0x01); + 5760: 3001 movi r0, 1 + 5762: e3fffb25 bsr 0x4dac // 4dac + Controlled_Buzzer(0x01); + 5766: 3001 movi r0, 1 + 5768: e3fffafe bsr 0x4d64 // 4d64 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 576c: 8424 ld.b r1, (r4, 0x4) + 576e: 3001 movi r0, 1 + 5770: e3fffb30 bsr 0x4dd0 // 4dd0 + + } + } + +} + 5774: 1491 pop r4, r15 + 5776: 0000 bkpt + 5778: 200003f3 .long 0x200003f3 + 577c: 200003d4 .long 0x200003d4 + 5780: 00007d88 .long 0x00007d88 + 5784: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00005788 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 5788: 14d2 push r4-r5, r15 + 578a: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 578c: 1137 lrw r1, 0x7d91 // 5868 + 578e: 3000 movi r0, 0 + 5790: e3fff1dc bsr 0x3b48 // 3b48 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5794: 1176 lrw r3, 0x200003f3 // 586c + 5796: 8340 ld.b r2, (r3, 0x0) + 5798: 3a41 cmpnei r2, 1 + 579a: 11b6 lrw r5, 0x200000b8 // 5870 + 579c: 083a bt 0x5810 // 5810 + { + Debug_Inf.Tick = SysTick_1ms; + 579e: 9540 ld.w r2, (r5, 0x0) + 57a0: 4a28 lsri r1, r2, 8 + 57a2: a348 st.b r2, (r3, 0x8) + 57a4: a329 st.b r1, (r3, 0x9) + 57a6: 4a30 lsri r1, r2, 16 + 57a8: 4a58 lsri r2, r2, 24 + 57aa: a34b st.b r2, (r3, 0xb) + if(Debug_Inf.Page == 0x01) //设置模式下:页面1 温控管制 + 57ac: 8342 ld.b r2, (r3, 0x2) + 57ae: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 57b0: a32a st.b r1, (r3, 0xa) + if(Debug_Inf.Page == 0x01) //设置模式下:页面1 温控管制 + 57b2: 0808 bt 0x57c2 // 57c2 + { + Debug_Inf.PipeFlag = 0x00; + 57b4: 3200 movi r2, 0 + 57b6: a344 st.b r2, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 57b8: 3100 movi r1, 0 + 57ba: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr--; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 57bc: e3fffb0a bsr 0x4dd0 // 4dd0 + 57c0: 040b br 0x57d6 // 57d6 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 57c2: 3a42 cmpnei r2, 2 + 57c4: 080b bt 0x57da // 57da + 57c6: 8305 ld.b r0, (r3, 0x5) + 57c8: 3840 cmpnei r0, 0 + 57ca: 0c06 bf 0x57d6 // 57d6 + Debug_Inf.TempDiff--; + 57cc: 2800 subi r0, 1 + 57ce: 7400 zextb r0, r0 + 57d0: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 57d2: e3fffb4b bsr 0x4e68 // 4e68 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 57d6: 1401 addi r14, r14, 4 + 57d8: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 57da: 3a43 cmpnei r2, 3 + 57dc: 0806 bt 0x57e8 // 57e8 + Debug_Inf.BackLight_En = 0x00; + 57de: 3200 movi r2, 0 + 57e0: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 57e2: 3100 movi r1, 0 + 57e4: 3003 movi r0, 3 + 57e6: 07eb br 0x57bc // 57bc + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 57e8: 3a44 cmpnei r2, 4 + 57ea: 0809 bt 0x57fc // 57fc + 57ec: 8327 ld.b r1, (r3, 0x7) + 57ee: 3940 cmpnei r1, 0 + 57f0: 0ff3 bf 0x57d6 // 57d6 + Debug_Inf.KSens_Level--; + 57f2: 2900 subi r1, 1 + 57f4: 7444 zextb r1, r1 + 57f6: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 57f8: 3004 movi r0, 4 + 57fa: 07e1 br 0x57bc // 57bc + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + 57fc: 3a45 cmpnei r2, 5 + 57fe: 0bec bt 0x57d6 // 57d6 + 5800: 8323 ld.b r1, (r3, 0x3) + 5802: 3940 cmpnei r1, 0 + 5804: 0fe9 bf 0x57d6 // 57d6 + Debug_Inf.DevAddr--; //刷新地址 + 5806: 2900 subi r1, 1 + 5808: 7444 zextb r1, r1 + 580a: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 580c: 3005 movi r0, 5 + 580e: 07d7 br 0x57bc // 57bc + if(TempCtrl.CardState == CARDIN) + 5810: 1099 lrw r4, 0x200003d4 // 5874 + 5812: 8478 ld.b r3, (r4, 0x18) + 5814: 3b41 cmpnei r3, 1 + 5816: 081f bt 0x5854 // 5854 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5818: 8462 ld.b r3, (r4, 0x2) + 581a: 74ce sextb r3, r3 + 581c: 3bdf btsti r3, 31 + 581e: 0c1b bf 0x5854 // 5854 + TemCtrl_Temperature_Dec(); //设置温度- + 5820: e3fffce0 bsr 0x51e0 // 51e0 + if (detect_inf.control_model != 0x00){ + 5824: 1075 lrw r3, 0x200003cc // 5878 + 5826: 8363 ld.b r3, (r3, 0x3) + 5828: 3b40 cmpnei r3, 0 + 582a: 0c0e bf 0x5846 // 5846 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 582c: 1074 lrw r3, 0x200005a0 // 587c + 582e: 8340 ld.b r2, (r3, 0x0) + 5830: 3a41 cmpnei r2, 1 + 5832: 080a bt 0x5846 // 5846 + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 5834: 310a movi r1, 10 + 5836: 8461 ld.b r3, (r4, 0x1) + 5838: 7cc4 mult r3, r1 + 583a: b840 st.w r2, (r14, 0x0) + 583c: 3110 movi r1, 16 + 583e: 3202 movi r2, 2 + 5840: 3008 movi r0, 8 + 5842: e00003b1 bsr 0x5fa4 // 5fa4 + if(g_eeprom.backlight_en == 0x01) + 5846: 106f lrw r3, 0x20000350 // 5880 + 5848: 8364 ld.b r3, (r3, 0x4) + 584a: 3b41 cmpnei r3, 1 + 584c: 0804 bt 0x5854 // 5854 + Controlled_LCD_Backlight(1); + 584e: 3001 movi r0, 1 + 5850: e3fffaae bsr 0x4dac // 4dac + TempCtrl.BackLightTick = SysTick_1ms; + 5854: 9560 ld.w r3, (r5, 0x0) + 5856: 4b48 lsri r2, r3, 8 + 5858: a470 st.b r3, (r4, 0x10) + 585a: a451 st.b r2, (r4, 0x11) + 585c: 4b50 lsri r2, r3, 16 + 585e: 4b78 lsri r3, r3, 24 + 5860: a452 st.b r2, (r4, 0x12) + 5862: a473 st.b r3, (r4, 0x13) +} + 5864: 07b9 br 0x57d6 // 57d6 + 5866: 0000 bkpt + 5868: 00007d91 .long 0x00007d91 + 586c: 200003f3 .long 0x200003f3 + 5870: 200000b8 .long 0x200000b8 + 5874: 200003d4 .long 0x200003d4 + 5878: 200003cc .long 0x200003cc + 587c: 200005a0 .long 0x200005a0 + 5880: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY4_Long_Press: + +00005884 : + +void KEY4_Long_Press(void) +{ + 5884: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 5886: 1097 lrw r4, 0x200003f3 // 58e0 + 5888: 8460 ld.b r3, (r4, 0x0) + 588a: 3b40 cmpnei r3, 0 + 588c: 0828 bt 0x58dc // 58dc + { + Debug_Inf.Press_Flag |= (0x01<<1); + 588e: 8461 ld.b r3, (r4, 0x1) + 5890: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5892: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 5894: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5896: 0823 bt 0x58dc // 58dc + 5898: 1073 lrw r3, 0x200003d4 // 58e4 + 589a: 8362 ld.b r3, (r3, 0x2) + 589c: 74ce sextb r3, r3 + 589e: 3bdf btsti r3, 31 + 58a0: 081e bt 0x58dc // 58dc + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 58a2: 1032 lrw r1, 0x7d88 // 58e8 + 58a4: 3000 movi r0, 0 + 58a6: e3fff151 bsr 0x3b48 // 3b48 + Debug_Inf.Tick = SysTick_1ms; + 58aa: 1071 lrw r3, 0x200000b8 // 58ec + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Controlled_LCD_Backlight(0x01); + 58ac: 3001 movi r0, 1 + Debug_Inf.Tick = SysTick_1ms; + 58ae: 9360 ld.w r3, (r3, 0x0) + 58b0: 4b48 lsri r2, r3, 8 + 58b2: a468 st.b r3, (r4, 0x8) + 58b4: a449 st.b r2, (r4, 0x9) + 58b6: 4b50 lsri r2, r3, 16 + 58b8: 4b78 lsri r3, r3, 24 + 58ba: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 58bc: 3300 movi r3, 0 + 58be: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 58c0: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 58c2: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 58c4: a460 st.b r3, (r4, 0x0) + Controlled_LCD_Backlight(0x01); + 58c6: e3fffa73 bsr 0x4dac // 4dac + HT1621_Clear(); + 58ca: e3fff8dd bsr 0x4a84 // 4a84 + Controlled_Buzzer(0x01); + 58ce: 3001 movi r0, 1 + 58d0: e3fffa4a bsr 0x4d64 // 4d64 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 58d4: 8424 ld.b r1, (r4, 0x4) + 58d6: 3001 movi r0, 1 + 58d8: e3fffa7c bsr 0x4dd0 // 4dd0 + + } + } +} + 58dc: 1491 pop r4, r15 + 58de: 0000 bkpt + 58e0: 200003f3 .long 0x200003f3 + 58e4: 200003d4 .long 0x200003d4 + 58e8: 00007d88 .long 0x00007d88 + 58ec: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +000058f0 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 58f0: 14d1 push r4, r15 + 58f2: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 58f4: 103c lrw r1, 0x7da8 // 5964 + 58f6: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 58f8: 109c lrw r4, 0x200003f3 // 5968 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 58fa: e3fff127 bsr 0x3b48 // 3b48 + if(Debug_Inf.State == 0x00) //正常模式 + 58fe: 8460 ld.b r3, (r4, 0x0) + 5900: 3b40 cmpnei r3, 0 + 5902: 081e bt 0x593e // 593e + { + TemCtrl_OnOff_Set(); //开关机切换 + 5904: e3fffc9e bsr 0x5240 // 5240 + + if (detect_inf.control_model != 0x00){ + 5908: 1079 lrw r3, 0x200003cc // 596c + 590a: 8363 ld.b r3, (r3, 0x3) + 590c: 3b40 cmpnei r3, 0 + 590e: 1099 lrw r4, 0x200003d4 // 5970 + 5910: 0c0c bf 0x5928 // 5928 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5912: 1079 lrw r3, 0x200005a0 // 5974 + 5914: 8340 ld.b r2, (r3, 0x0) + 5916: 3a41 cmpnei r2, 1 + 5918: 0808 bt 0x5928 // 5928 + { + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,ACTIVE); + 591a: 8462 ld.b r3, (r4, 0x2) + 591c: 4b67 lsri r3, r3, 7 + 591e: b840 st.w r2, (r14, 0x0) + 5920: 3101 movi r1, 1 + 5922: 3005 movi r0, 5 + 5924: e0000340 bsr 0x5fa4 // 5fa4 + } + + } + + TempCtrl.BackLightTick = SysTick_1ms; + 5928: 1074 lrw r3, 0x200000b8 // 5978 + 592a: 9360 ld.w r3, (r3, 0x0) + 592c: 4b48 lsri r2, r3, 8 + 592e: a470 st.b r3, (r4, 0x10) + 5930: a451 st.b r2, (r4, 0x11) + 5932: 4b50 lsri r2, r3, 16 + 5934: 4b78 lsri r3, r3, 24 + 5936: a452 st.b r2, (r4, 0x12) + 5938: a473 st.b r3, (r4, 0x13) + //关背光 + Controlled_LCD_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 593a: 1401 addi r14, r14, 4 + 593c: 1491 pop r4, r15 + else if(Debug_Inf.State == 0x01) //设置模式 + 593e: 3b41 cmpnei r3, 1 + 5940: 0bfd bt 0x593a // 593a + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 5942: 102f lrw r1, 0x7dbd // 597c + 5944: 3000 movi r0, 0 + 5946: e3fff101 bsr 0x3b48 // 3b48 + Debug_Inf.State = 0x00; + 594a: 3300 movi r3, 0 + 594c: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 594e: 3301 movi r3, 1 + 5950: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 5952: e3fff899 bsr 0x4a84 // 4a84 + Controlled_LCD_Backlight(0x00); + 5956: 3000 movi r0, 0 + 5958: e3fffa2a bsr 0x4dac // 4dac + Dev_SaveData(); + 595c: e00001e2 bsr 0x5d20 // 5d20 +} + 5960: 07ed br 0x593a // 593a + 5962: 0000 bkpt + 5964: 00007da8 .long 0x00007da8 + 5968: 200003f3 .long 0x200003f3 + 596c: 200003cc .long 0x200003cc + 5970: 200003d4 .long 0x200003d4 + 5974: 200005a0 .long 0x200005a0 + 5978: 200000b8 .long 0x200000b8 + 597c: 00007dbd .long 0x00007dbd + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00005980 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 5980: 14d1 push r4, r15 + if(state == TEMP_ON) + 5982: 3841 cmpnei r0, 1 + 5984: 081f bt 0x59c2 // 59c2 + { + Control_Prompt_Text(1); + Control_Mode(TempCtrl.TemState_Now.mode); + 5986: 1091 lrw r4, 0x200003d4 // 59c8 + Control_Prompt_Text(1); + 5988: e3fff9cc bsr 0x4d20 // 4d20 + Control_Mode(TempCtrl.TemState_Now.mode); + 598c: 8402 ld.b r0, (r4, 0x2) + 598e: 4019 lsli r0, r0, 25 + 5990: 481d lsri r0, r0, 29 + 5992: e3fff96b bsr 0x4c68 // 4c68 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5996: 8402 ld.b r0, (r4, 0x2) + 5998: 401c lsli r0, r0, 28 + 599a: 481d lsri r0, r0, 29 + 599c: e3fff98a bsr 0x4cb0 // 4cb0 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 59a0: 8401 ld.b r0, (r4, 0x1) + 59a2: 3840 cmpnei r0, 0 + 59a4: 0c0c bf 0x59bc // 59bc + 59a6: 330a movi r3, 10 + 59a8: 7c0c mult r0, r3 + 59aa: e3fff8db bsr 0x4b60 // 4b60 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 59ae: 8400 ld.b r0, (r4, 0x0) + 59b0: 330a movi r3, 10 + 59b2: 7c0c mult r0, r3 + 59b4: 7401 zexth r0, r0 + 59b6: e3fff919 bsr 0x4be8 // 4be8 + } + else + { + HT1621_Clear(); + } +} + 59ba: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 59bc: 30af movi r0, 175 + 59be: 4001 lsli r0, r0, 1 + 59c0: 07f5 br 0x59aa // 59aa + HT1621_Clear(); + 59c2: e3fff861 bsr 0x4a84 // 4a84 +} + 59c6: 07fa br 0x59ba // 59ba + 59c8: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Init: + +000059cc : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 59cc: 14d0 push r15 + HT1621_ALLON(); + 59ce: e3fff883 bsr 0x4ad4 // 4ad4 + + delay_nms(5000); + 59d2: 1005 lrw r0, 0x1388 // 59e4 + 59d4: e3ffe976 bsr 0x2cc0 // 2cc0 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 59d8: 1064 lrw r3, 0x200003d4 // 59e8 + 59da: 8302 ld.b r0, (r3, 0x2) + 59dc: 4807 lsri r0, r0, 7 + 59de: e3ffffd1 bsr 0x5980 // 5980 + +} + 59e2: 1490 pop r15 + 59e4: 00001388 .long 0x00001388 + 59e8: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Task: + +000059ec : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 59ec: 14d2 push r4-r5, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 59ee: 026b lrw r3, 0x200003f3 // 5cbc + 59f0: 8360 ld.b r3, (r3, 0x0) + 59f2: 3b40 cmpnei r3, 0 + 59f4: 0923 bt 0x5c3a // 5c3a + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 59f6: 028c lrw r4, 0x200003d4 // 5cc0 + 59f8: 8451 ld.b r2, (r4, 0x11) + 59fa: 8470 ld.b r3, (r4, 0x10) + 59fc: 4248 lsli r2, r2, 8 + 59fe: 6c8c or r2, r3 + 5a00: 8472 ld.b r3, (r4, 0x12) + 5a02: 4370 lsli r3, r3, 16 + 5a04: 6c8c or r2, r3 + 5a06: 8473 ld.b r3, (r4, 0x13) + 5a08: 02b0 lrw r5, 0x200000b8 // 5cc4 + 5a0a: 4378 lsli r3, r3, 24 + 5a0c: 6cc8 or r3, r2 + 5a0e: 9520 ld.w r1, (r5, 0x0) + 5a10: 604e subu r1, r3 + 5a12: 0251 lrw r2, 0xbb8 // 5cc8 + 5a14: 6448 cmphs r2, r1 + 5a16: 0913 bt 0x5c3c // 5c3c + 5a18: 8458 ld.b r2, (r4, 0x18) + 5a1a: 3a40 cmpnei r2, 0 + 5a1c: 0910 bt 0x5c3c // 5c3c + { + TempCtrl.BackLightTick = SysTick_1ms; + 5a1e: 9560 ld.w r3, (r5, 0x0) + 5a20: 4b48 lsri r2, r3, 8 + 5a22: a470 st.b r3, (r4, 0x10) + 5a24: a451 st.b r2, (r4, 0x11) + 5a26: 4b50 lsri r2, r3, 16 + 5a28: 4b78 lsri r3, r3, 24 + 5a2a: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 5a2c: 3300 movi r3, 0 + 5a2e: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5a30: 8462 ld.b r3, (r4, 0x2) + 5a32: 74ce sextb r3, r3 + 5a34: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5a36: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5a38: 0803 bt 0x5a3e // 5a3e + { + HT1621_Clear(); + 5a3a: e3fff825 bsr 0x4a84 // 4a84 + } + //关背光 + Controlled_LCD_Backlight(0); + 5a3e: 3000 movi r0, 0 + 5a40: e3fff9b6 bsr 0x4dac // 4dac + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 5a44: 023d lrw r1, 0x7dc7 // 5ccc + { + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5a46: 3000 movi r0, 0 + 5a48: e3fff080 bsr 0x3b48 // 3b48 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 5a4c: 8455 ld.b r2, (r4, 0x15) + 5a4e: 8474 ld.b r3, (r4, 0x14) + 5a50: 4248 lsli r2, r2, 8 + 5a52: 6c8c or r2, r3 + 5a54: 8476 ld.b r3, (r4, 0x16) + 5a56: 4370 lsli r3, r3, 16 + 5a58: 6c8c or r2, r3 + 5a5a: 8477 ld.b r3, (r4, 0x17) + 5a5c: 4378 lsli r3, r3, 24 + 5a5e: 6cc8 or r3, r2 + 5a60: 9520 ld.w r1, (r5, 0x0) + 5a62: 604e subu r1, r3 + 5a64: 33fa movi r3, 250 + 5a66: 4362 lsli r3, r3, 2 + 5a68: 644c cmphs r3, r1 + 5a6a: 0818 bt 0x5a9a // 5a9a + { + TempCtrl.SceneNoTick = SysTick_1ms; + 5a6c: 9560 ld.w r3, (r5, 0x0) + 5a6e: 4b48 lsri r2, r3, 8 + 5a70: a474 st.b r3, (r4, 0x14) + 5a72: a455 st.b r2, (r4, 0x15) + 5a74: 4b50 lsri r2, r3, 16 + 5a76: 4b78 lsri r3, r3, 24 + 5a78: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5a7a: 847b ld.b r3, (r4, 0x1b) + 5a7c: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 5a7e: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5a80: 0903 bt 0x5c86 // 5c86 + 5a82: 847c ld.b r3, (r4, 0x1c) + 5a84: 3b41 cmpnei r3, 1 + 5a86: 0900 bt 0x5c86 // 5c86 + { + TempCtrl.SceneFlag = 0x00; + 5a88: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 5a8a: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 5a8c: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 5a8e: e3fff98f bsr 0x4dac // 4dac + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 5a92: 032f lrw r1, 0x7de9 // 5cd0 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5a94: 3000 movi r0, 0 + 5a96: e3fff059 bsr 0x3b48 // 3b48 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 5a9a: 0370 lrw r3, 0x20000350 // 5cd4 + 5a9c: 8364 ld.b r3, (r3, 0x4) + 5a9e: 3b41 cmpnei r3, 1 + 5aa0: 081b bt 0x5ad6 // 5ad6 + 5aa2: 8451 ld.b r2, (r4, 0x11) + 5aa4: 8470 ld.b r3, (r4, 0x10) + 5aa6: 4248 lsli r2, r2, 8 + 5aa8: 6c8c or r2, r3 + 5aaa: 8472 ld.b r3, (r4, 0x12) + 5aac: 4370 lsli r3, r3, 16 + 5aae: 6c8c or r2, r3 + 5ab0: 8473 ld.b r3, (r4, 0x13) + 5ab2: 4378 lsli r3, r3, 24 + 5ab4: 6cc8 or r3, r2 + 5ab6: 9520 ld.w r1, (r5, 0x0) + 5ab8: 604e subu r1, r3 + 5aba: 0377 lrw r3, 0x1388 // 5cd8 + 5abc: 644c cmphs r3, r1 + 5abe: 080c bt 0x5ad6 // 5ad6 + { + TempCtrl.BackLightTick = SysTick_1ms; + 5ac0: 9560 ld.w r3, (r5, 0x0) + 5ac2: 4b48 lsri r2, r3, 8 + 5ac4: a470 st.b r3, (r4, 0x10) + 5ac6: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 5ac8: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5aca: 4b50 lsri r2, r3, 16 + 5acc: 4b78 lsri r3, r3, 24 + 5ace: a452 st.b r2, (r4, 0x12) + 5ad0: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 5ad2: e3fff96d bsr 0x4dac // 4dac + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5ad6: 8402 ld.b r0, (r4, 0x2) + 5ad8: 74c2 sextb r3, r0 + 5ada: 3bdf btsti r3, 31 + 5adc: 0c92 bf 0x5c00 // 5c00 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 5ade: 8466 ld.b r3, (r4, 0x6) + 5ae0: 4019 lsli r0, r0, 25 + 5ae2: 4359 lsli r2, r3, 25 + 5ae4: 481d lsri r0, r0, 29 + 5ae6: 4a5d lsri r2, r2, 29 + 5ae8: 640a cmpne r2, r0 + 5aea: 0c17 bf 0x5b18 // 5b18 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 5aec: 3170 movi r1, 112 + 5aee: 4044 lsli r2, r0, 4 + 5af0: 68c5 andn r3, r1 + 5af2: 6cc8 or r3, r2 + 5af4: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 5af6: e3fff8b9 bsr 0x4c68 // 4c68 + + SYSCON->UREG0 &= 0xFFFF00FF; + 5afa: 1379 lrw r3, 0x2000005c // 5cdc + 5afc: 31ff movi r1, 255 + 5afe: 9340 ld.w r2, (r3, 0x0) + 5b00: 22ff addi r2, 256 + 5b02: 9260 ld.w r3, (r2, 0x0) + 5b04: 4128 lsli r1, r1, 8 + 5b06: 68c5 andn r3, r1 + 5b08: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5b0a: 8462 ld.b r3, (r4, 0x2) + 5b0c: 4379 lsli r3, r3, 25 + 5b0e: 4b7d lsri r3, r3, 29 + 5b10: 9220 ld.w r1, (r2, 0x0) + 5b12: 4368 lsli r3, r3, 8 + 5b14: 6cc4 or r3, r1 + 5b16: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 5b18: 8402 ld.b r0, (r4, 0x2) + 5b1a: 8466 ld.b r3, (r4, 0x6) + 5b1c: 401c lsli r0, r0, 28 + 5b1e: 435c lsli r2, r3, 28 + 5b20: 481d lsri r0, r0, 29 + 5b22: 4a5d lsri r2, r2, 29 + 5b24: 640a cmpne r2, r0 + 5b26: 0c22 bf 0x5b6a // 5b6a + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 5b28: 310e movi r1, 14 + 5b2a: 4041 lsli r2, r0, 1 + 5b2c: 68c5 andn r3, r1 + 5b2e: 6cc8 or r3, r2 + 5b30: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5b32: e3fff8bf bsr 0x4cb0 // 4cb0 + switch(TempCtrl.TemState_Now.fan) + 5b36: 8462 ld.b r3, (r4, 0x2) + 5b38: 437c lsli r3, r3, 28 + 5b3a: 4b7d lsri r3, r3, 29 + 5b3c: 3b42 cmpnei r3, 2 + 5b3e: 0cb5 bf 0x5ca8 // 5ca8 + 5b40: 3b43 cmpnei r3, 3 + 5b42: 0cb6 bf 0x5cae // 5cae + 5b44: 3b41 cmpnei r3, 1 + 5b46: 0803 bt 0x5b4c // 5b4c + { + case FAN_LOW: + Relay_Low(); + 5b48: e0000440 bsr 0x63c8 // 63c8 +// break; + default: + break; + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 5b4c: 1364 lrw r3, 0x2000005c // 5cdc + 5b4e: 31ff movi r1, 255 + 5b50: 9340 ld.w r2, (r3, 0x0) + 5b52: 22ff addi r2, 256 + 5b54: 9260 ld.w r3, (r2, 0x0) + 5b56: 4130 lsli r1, r1, 16 + 5b58: 68c5 andn r3, r1 + 5b5a: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5b5c: 8462 ld.b r3, (r4, 0x2) + 5b5e: 437c lsli r3, r3, 28 + 5b60: 4b7d lsri r3, r3, 29 + 5b62: 9220 ld.w r1, (r2, 0x0) + 5b64: 4370 lsli r3, r3, 16 + 5b66: 6cc4 or r3, r1 + 5b68: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 5b6a: 8401 ld.b r0, (r4, 0x1) + 5b6c: 8465 ld.b r3, (r4, 0x5) + 5b6e: 640e cmpne r3, r0 + 5b70: 0c14 bf 0x5b98 // 5b98 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 5b72: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 5b74: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 5b76: 089f bt 0x5cb4 // 5cb4 + { + Set_Temperature_Display(320); + 5b78: 30a0 movi r0, 160 + 5b7a: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5b7c: e3fff7f2 bsr 0x4b60 // 4b60 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 5b80: 1277 lrw r3, 0x2000005c // 5cdc + 5b82: 9340 ld.w r2, (r3, 0x0) + 5b84: 22ff addi r2, 256 + 5b86: 9260 ld.w r3, (r2, 0x0) + 5b88: 4368 lsli r3, r3, 8 + 5b8a: 4b68 lsri r3, r3, 8 + 5b8c: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5b8e: 8461 ld.b r3, (r4, 0x1) + 5b90: 9220 ld.w r1, (r2, 0x0) + 5b92: 4378 lsli r3, r3, 24 + 5b94: 6cc4 or r3, r1 + 5b96: b260 st.w r3, (r2, 0x0) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 5b98: 8409 ld.b r0, (r4, 0x9) + 5b9a: 8468 ld.b r3, (r4, 0x8) + 5b9c: 4008 lsli r0, r0, 8 + 5b9e: 6c0c or r0, r3 + 5ba0: 846b ld.b r3, (r4, 0xb) + 5ba2: 844a ld.b r2, (r4, 0xa) + 5ba4: 4368 lsli r3, r3, 8 + 5ba6: 6cc8 or r3, r2 + 5ba8: 640e cmpne r3, r0 + 5baa: 0c12 bf 0x5bce // 5bce + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 5bac: 4868 lsri r3, r0, 8 + 5bae: a46b st.b r3, (r4, 0xb) + 5bb0: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 5bb2: e3fff81b bsr 0x4be8 // 4be8 + + SYSCON->UREG0 &= 0x00FFFFFF; + 5bb6: 126a lrw r3, 0x2000005c // 5cdc + 5bb8: 9340 ld.w r2, (r3, 0x0) + 5bba: 22ff addi r2, 256 + 5bbc: 9260 ld.w r3, (r2, 0x0) + 5bbe: 4368 lsli r3, r3, 8 + 5bc0: 4b68 lsri r3, r3, 8 + 5bc2: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5bc4: 8461 ld.b r3, (r4, 0x1) + 5bc6: 9220 ld.w r1, (r2, 0x0) + 5bc8: 4378 lsli r3, r3, 24 + 5bca: 6cc4 or r3, r1 + 5bcc: b260 st.w r3, (r2, 0x0) + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 5bce: 844f ld.b r2, (r4, 0xf) + 5bd0: 846e ld.b r3, (r4, 0xe) + 5bd2: 4248 lsli r2, r2, 8 + 5bd4: 6c8c or r2, r3 + 5bd6: 846d ld.b r3, (r4, 0xd) + 5bd8: 842c ld.b r1, (r4, 0xc) + 5bda: 4368 lsli r3, r3, 8 + 5bdc: 6cc4 or r3, r1 + 5bde: 648c cmphs r3, r2 + 5be0: 0804 bt 0x5be8 // 5be8 + 5be2: 5a2d subu r1, r2, r3 + 5be4: 3925 cmplti r1, 6 + 5be6: 0c06 bf 0x5bf2 // 5bf2 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 5be8: 64c8 cmphs r2, r3 + 5bea: 080b bt 0x5c00 // 5c00 + 5bec: 5b49 subu r2, r3, r2 + 5bee: 3a25 cmplti r2, 6 + 5bf0: 0808 bt 0x5c00 // 5c00 + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + rf_info.roomc_flag = 0x01; + 5bf2: 115c lrw r2, 0x200005a0 // 5ce0 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 5bf4: a46e st.b r3, (r4, 0xe) + 5bf6: 4b68 lsri r3, r3, 8 + 5bf8: a46f st.b r3, (r4, 0xf) + rf_info.roomc_flag = 0x01; + 5bfa: 8261 ld.b r3, (r2, 0x1) + 5bfc: 3ba5 bseti r3, 5 + 5bfe: a261 st.b r3, (r2, 0x1) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 5c00: 8402 ld.b r0, (r4, 0x2) + 5c02: 8466 ld.b r3, (r4, 0x6) + 5c04: 4807 lsri r0, r0, 7 + 5c06: 4b47 lsri r2, r3, 7 + 5c08: 640a cmpne r2, r0 + 5c0a: 0c18 bf 0x5c3a // 5c3a + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 5c0c: 317f movi r1, 127 + 5c0e: 4047 lsli r2, r0, 7 + 5c10: 68c4 and r3, r1 + 5c12: 6cc8 or r3, r2 + 5c14: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5c16: e3fff8cb bsr 0x4dac // 4dac + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5c1a: 8402 ld.b r0, (r4, 0x2) + 5c1c: 4807 lsri r0, r0, 7 + 5c1e: e3fffeb1 bsr 0x5980 // 5980 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 5c22: 116f lrw r3, 0x2000005c // 5cdc + 5c24: 31ff movi r1, 255 + 5c26: 9340 ld.w r2, (r3, 0x0) + 5c28: 22ff addi r2, 256 + 5c2a: 9260 ld.w r3, (r2, 0x0) + 5c2c: 68c5 andn r3, r1 + 5c2e: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5c30: 8462 ld.b r3, (r4, 0x2) + 5c32: 9220 ld.w r1, (r2, 0x0) + 5c34: 4b67 lsri r3, r3, 7 + 5c36: 6cc4 or r3, r1 + 5c38: b260 st.w r3, (r2, 0x0) + } + } +} + 5c3a: 1492 pop r4-r5, r15 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 5c3c: 9540 ld.w r2, (r5, 0x0) + 5c3e: 608e subu r2, r3 + 5c40: 33fa movi r3, 250 + 5c42: 4363 lsli r3, r3, 3 + 5c44: 648c cmphs r3, r2 + 5c46: 0b03 bt 0x5a4c // 5a4c + 5c48: 8478 ld.b r3, (r4, 0x18) + 5c4a: 3b41 cmpnei r3, 1 + 5c4c: 0b00 bt 0x5a4c // 5a4c + 5c4e: 8479 ld.b r3, (r4, 0x19) + 5c50: 3b41 cmpnei r3, 1 + 5c52: 0afd bt 0x5a4c // 5a4c + TempCtrl.BackLightTick = SysTick_1ms; + 5c54: 9560 ld.w r3, (r5, 0x0) + 5c56: 4b48 lsri r2, r3, 8 + 5c58: a470 st.b r3, (r4, 0x10) + 5c5a: a451 st.b r2, (r4, 0x11) + 5c5c: 4b50 lsri r2, r3, 16 + 5c5e: 4b78 lsri r3, r3, 24 + 5c60: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5c62: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 5c64: 3300 movi r3, 0 + 5c66: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5c68: 74c2 sextb r3, r0 + 5c6a: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5c6c: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5c6e: 0eef bf 0x5a4c // 5a4c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5c70: 4807 lsri r0, r0, 7 + 5c72: e3fffe87 bsr 0x5980 // 5980 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 5c76: 847b ld.b r3, (r4, 0x1b) + 5c78: 3b44 cmpnei r3, 4 + 5c7a: 0ee9 bf 0x5a4c // 5a4c + Controlled_LCD_Backlight(1); + 5c7c: 3001 movi r0, 1 + 5c7e: e3fff897 bsr 0x4dac // 4dac + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5c82: 1039 lrw r1, 0x7dd9 // 5ce4 + 5c84: 06e1 br 0x5a46 // 5a46 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 5c86: 8462 ld.b r3, (r4, 0x2) + 5c88: 74ce sextb r3, r3 + 5c8a: 3bdf btsti r3, 31 + 5c8c: 0f07 bf 0x5a9a // 5a9a + 5c8e: 8478 ld.b r3, (r4, 0x18) + 5c90: 3b41 cmpnei r3, 1 + 5c92: 0b04 bt 0x5a9a // 5a9a + 5c94: 847c ld.b r3, (r4, 0x1c) + 5c96: 3b41 cmpnei r3, 1 + 5c98: 0b01 bt 0x5a9a // 5a9a + TempCtrl.SceneFlag = 0x00; + 5c9a: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 5c9c: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 5c9e: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 5ca0: e3fff886 bsr 0x4dac // 4dac + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5ca4: 1031 lrw r1, 0x7df9 // 5ce8 + 5ca6: 06f7 br 0x5a94 // 5a94 + Relay_Mid(); + 5ca8: e000037e bsr 0x63a4 // 63a4 + break; + 5cac: 0750 br 0x5b4c // 5b4c + Relay_High(); + 5cae: e0000369 bsr 0x6380 // 6380 + break; + 5cb2: 074d br 0x5b4c // 5b4c + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5cb4: 330a movi r3, 10 + 5cb6: 7c0c mult r0, r3 + 5cb8: 0762 br 0x5b7c // 5b7c + 5cba: 0000 bkpt + 5cbc: 200003f3 .long 0x200003f3 + 5cc0: 200003d4 .long 0x200003d4 + 5cc4: 200000b8 .long 0x200000b8 + 5cc8: 00000bb8 .long 0x00000bb8 + 5ccc: 00007dc7 .long 0x00007dc7 + 5cd0: 00007de9 .long 0x00007de9 + 5cd4: 20000350 .long 0x20000350 + 5cd8: 00001388 .long 0x00001388 + 5cdc: 2000005c .long 0x2000005c + 5ce0: 200005a0 .long 0x200005a0 + 5ce4: 00007dd9 .long 0x00007dd9 + 5ce8: 00007df9 .long 0x00007df9 + +Disassembly of section .text.Debug_Init: + +00005cec : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 5cec: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 5cee: 108b lrw r4, 0x200003f3 // 5d18 + 5cf0: 320c movi r2, 12 + 5cf2: 3100 movi r1, 0 + 5cf4: 6c13 mov r0, r4 + 5cf6: e3ffde37 bsr 0x1964 // 1964 <__memset_fast> + Debug_Inf.Page = 0x01; + 5cfa: 3301 movi r3, 1 + 5cfc: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 5cfe: 1068 lrw r3, 0x20000350 // 5d1c + 5d00: 8340 ld.b r2, (r3, 0x0) + 5d02: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 5d04: 8341 ld.b r2, (r3, 0x1) + 5d06: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 5d08: 8342 ld.b r2, (r3, 0x2) + 5d0a: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5d0c: 8344 ld.b r2, (r3, 0x4) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5d0e: 8365 ld.b r3, (r3, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5d10: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5d12: a467 st.b r3, (r4, 0x7) +} + 5d14: 1491 pop r4, r15 + 5d16: 0000 bkpt + 5d18: 200003f3 .long 0x200003f3 + 5d1c: 20000350 .long 0x20000350 + +Disassembly of section .text.Dev_SaveData: + +00005d20 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 5d20: 14d1 push r4, r15 + 5d22: 1423 subi r14, r14, 12 +// g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); +// } +// +// } + + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 5d24: 1078 lrw r3, 0x200003f3 // 5d84 + 5d26: 1099 lrw r4, 0x20000350 // 5d88 + 5d28: 8343 ld.b r2, (r3, 0x3) + 5d2a: 8420 ld.b r1, (r4, 0x0) + 5d2c: 6486 cmpne r1, r2 + 5d2e: 0811 bt 0x5d50 // 5d50 + 5d30: 8304 ld.b r0, (r3, 0x4) + 5d32: 8421 ld.b r1, (r4, 0x1) + 5d34: 6442 cmpne r0, r1 + 5d36: 080d bt 0x5d50 // 5d50 + 5d38: 8305 ld.b r0, (r3, 0x5) + 5d3a: 8422 ld.b r1, (r4, 0x2) + 5d3c: 6442 cmpne r0, r1 + 5d3e: 0809 bt 0x5d50 // 5d50 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level) + 5d40: 8306 ld.b r0, (r3, 0x6) + 5d42: 8424 ld.b r1, (r4, 0x4) + 5d44: 6442 cmpne r0, r1 + 5d46: 0805 bt 0x5d50 // 5d50 + 5d48: 8307 ld.b r0, (r3, 0x7) + 5d4a: 8425 ld.b r1, (r4, 0x5) + 5d4c: 6442 cmpne r0, r1 + 5d4e: 0c19 bf 0x5d80 // 5d80 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 5d50: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 5d52: 8344 ld.b r2, (r3, 0x4) + 5d54: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 5d56: 8345 ld.b r2, (r3, 0x5) + 5d58: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5d5a: 8346 ld.b r2, (r3, 0x6) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + + EEPROM_WriteParaInfo(&g_eeprom); + 5d5c: 100b lrw r0, 0x20000350 // 5d88 + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5d5e: 8367 ld.b r3, (r3, 0x7) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5d60: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5d62: a465 st.b r3, (r4, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 5d64: e3fff32e bsr 0x43c0 // 43c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 5d68: 8425 ld.b r1, (r4, 0x5) + 5d6a: b822 st.w r1, (r14, 0x8) + 5d6c: 8424 ld.b r1, (r4, 0x4) + 5d6e: b821 st.w r1, (r14, 0x4) + 5d70: 8422 ld.b r1, (r4, 0x2) + 5d72: b820 st.w r1, (r14, 0x0) + 5d74: 8461 ld.b r3, (r4, 0x1) + 5d76: 8440 ld.b r2, (r4, 0x0) + 5d78: 1025 lrw r1, 0x7e0c // 5d8c + 5d7a: 3000 movi r0, 0 + 5d7c: e3ffeee6 bsr 0x3b48 // 3b48 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + } +} + 5d80: 1403 addi r14, r14, 12 + 5d82: 1491 pop r4, r15 + 5d84: 200003f3 .long 0x200003f3 + 5d88: 20000350 .long 0x20000350 + 5d8c: 00007e0c .long 0x00007e0c + +Disassembly of section .text.Debug_Task: + +00005d90 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 5d90: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE5ID)) //设置模式 + 5d92: 1077 lrw r3, 0x200003f3 // 5dec + 5d94: 8340 ld.b r2, (r3, 0x0) + 5d96: 3a41 cmpnei r2, 1 + 5d98: 0829 bt 0x5dea // 5dea + 5d9a: 8329 ld.b r1, (r3, 0x9) + 5d9c: 8348 ld.b r2, (r3, 0x8) + 5d9e: 4128 lsli r1, r1, 8 + 5da0: 6c48 or r1, r2 + 5da2: 834a ld.b r2, (r3, 0xa) + 5da4: 4250 lsli r2, r2, 16 + 5da6: 6c48 or r1, r2 + 5da8: 834b ld.b r2, (r3, 0xb) + 5daa: 1092 lrw r4, 0x200000b8 // 5df0 + 5dac: 4258 lsli r2, r2, 24 + 5dae: 6c84 or r2, r1 + 5db0: 9400 ld.w r0, (r4, 0x0) + 5db2: 600a subu r0, r2 + 5db4: 1050 lrw r2, 0x2710 // 5df4 + 5db6: 6408 cmphs r2, r0 + 5db8: 0819 bt 0x5dea // 5dea + 5dba: 8342 ld.b r2, (r3, 0x2) + 5dbc: 3a45 cmpnei r2, 5 + 5dbe: 0c16 bf 0x5dea // 5dea + { + Debug_Inf.Tick = SysTick_1ms; + 5dc0: 9440 ld.w r2, (r4, 0x0) + 5dc2: 4a28 lsri r1, r2, 8 + 5dc4: a348 st.b r2, (r3, 0x8) + 5dc6: a329 st.b r1, (r3, 0x9) + 5dc8: 4a30 lsri r1, r2, 16 + 5dca: 4a58 lsri r2, r2, 24 + 5dcc: a34b st.b r2, (r3, 0xb) + Debug_Inf.State = 0x00; + 5dce: 3200 movi r2, 0 + Debug_Inf.Tick = SysTick_1ms; + 5dd0: a32a st.b r1, (r3, 0xa) + Debug_Inf.State = 0x00; + 5dd2: a340 st.b r2, (r3, 0x0) + Dev_SaveData(); + 5dd4: e3ffffa6 bsr 0x5d20 // 5d20 + + HT1621_Clear(); + 5dd8: e3fff656 bsr 0x4a84 // 4a84 + //关背光 + Controlled_LCD_Backlight(0x00); + 5ddc: 3000 movi r0, 0 + 5dde: e3fff7e7 bsr 0x4dac // 4dac +// Controlled_Key_Backlight(0x00); + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 5de2: 1026 lrw r1, 0x7e58 // 5df8 + 5de4: 3000 movi r0, 0 + 5de6: e3ffeeb1 bsr 0x3b48 // 3b48 + } + 5dea: 1491 pop r4, r15 + 5dec: 200003f3 .long 0x200003f3 + 5df0: 200000b8 .long 0x200000b8 + 5df4: 00002710 .long 0x00002710 + 5df8: 00007e58 .long 0x00007e58 + +Disassembly of section .text.get_check_sum: + +00005dfc : +* @param[in] {pack} the head address of array +* @param[in] {pack_len} the length of array +* @return sum +*/ +unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len) +{ + 5dfc: 6cc3 mov r3, r0 + 5dfe: 6040 addu r1, r0 + unsigned short i; + unsigned char check_sum = 0; + 5e00: 3000 movi r0, 0 + + for(i = 0; i < pack_len; i ++){ + 5e02: 644e cmpne r3, r1 + 5e04: 0802 bt 0x5e08 // 5e08 + check_sum += *pack ++; + } + + return check_sum; +} + 5e06: 783c jmp r15 + check_sum += *pack ++; + 5e08: 8340 ld.b r2, (r3, 0x0) + 5e0a: 6008 addu r0, r2 + 5e0c: 7400 zextb r0, r0 + 5e0e: 2300 addi r3, 1 + 5e10: 07f9 br 0x5e02 // 5e02 + +Disassembly of section .text.Queue_Read_Byte: + +00005e14 : +*/ +unsigned char Queue_Read_Byte(void) +{ + unsigned char value; + + if(queue_out != queue_in) { + 5e14: 1069 lrw r3, 0x2000059c // 5e38 + 5e16: 102a lrw r1, 0x2000050c // 5e3c + 5e18: 9340 ld.w r2, (r3, 0x0) + 5e1a: 9120 ld.w r1, (r1, 0x0) + 5e1c: 644a cmpne r2, r1 + 5e1e: 0c0b bf 0x5e34 // 5e34 + //have data in queue + if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) { + 5e20: 1028 lrw r1, 0x20000509 // 5e40 + 5e22: 6448 cmphs r2, r1 + 5e24: 0c03 bf 0x5e2a // 5e2a + queue_out = (unsigned char *)(zigbee_queue_buf); + 5e26: 1048 lrw r2, 0x20000400 // 5e44 + 5e28: b340 st.w r2, (r3, 0x0) + } + value = *queue_out ++; + 5e2a: 9340 ld.w r2, (r3, 0x0) + 5e2c: 5a22 addi r1, r2, 1 + 5e2e: b320 st.w r1, (r3, 0x0) + 5e30: 8200 ld.b r0, (r2, 0x0) + 5e32: 7400 zextb r0, r0 + } + + + return value; +} + 5e34: 783c jmp r15 + 5e36: 0000 bkpt + 5e38: 2000059c .long 0x2000059c + 5e3c: 2000050c .long 0x2000050c + 5e40: 20000509 .long 0x20000509 + 5e44: 20000400 .long 0x20000400 + +Disassembly of section .text.with_data_rxbuff: + +00005e48 : + * @param Null + * @return the queue state + */ +unsigned char with_data_rxbuff(void) +{ + if(queue_out != queue_in) + 5e48: 1065 lrw r3, 0x2000059c // 5e5c + 5e4a: 3000 movi r0, 0 + 5e4c: 9340 ld.w r2, (r3, 0x0) + 5e4e: 1065 lrw r3, 0x2000050c // 5e60 + 5e50: 9360 ld.w r3, (r3, 0x0) + 5e52: 64ca cmpne r2, r3 + 5e54: 6001 addc r0, r0 + 5e56: 7400 zextb r0, r0 + return 1; + else + return 0; +} + 5e58: 783c jmp r15 + 5e5a: 0000 bkpt + 5e5c: 2000059c .long 0x2000059c + 5e60: 2000050c .long 0x2000050c + +Disassembly of section .text.RF_Info_Init: + +00005e64 : + + + + +void RF_Info_Init(void) +{ + 5e64: 14d1 push r4, r15 + memset(&rf_info,0,sizeof(RF_INFO)); + 5e66: 1089 lrw r4, 0x200005a0 // 5e88 + 5e68: 3203 movi r2, 3 + 5e6a: 3100 movi r1, 0 + 5e6c: 6c13 mov r0, r4 + 5e6e: e3ffdd7b bsr 0x1964 // 1964 <__memset_fast> + + queue_in = (unsigned char *)zigbee_queue_buf; + 5e72: 1067 lrw r3, 0x20000400 // 5e8c + 5e74: 1047 lrw r2, 0x2000050c // 5e90 + 5e76: b260 st.w r3, (r2, 0x0) + queue_out = (unsigned char *)zigbee_queue_buf; + 5e78: 1047 lrw r2, 0x2000059c // 5e94 + 5e7a: b260 st.w r3, (r2, 0x0) + + rf_info.net_state = 0x01; + 5e7c: 3301 movi r3, 1 + 5e7e: a460 st.b r3, (r4, 0x0) + rf_info.setc_flag = 0x01; + rf_info.setf_flag = 0x01; + rf_info.fan_flag = 0x01; + rf_info.roomc_flag = 0x01; + rf_info.roomf_flag = 0x01; + rf_info.valve_flag = 0x01; + 5e80: 3300 movi r3, 0 + 5e82: 2b00 subi r3, 1 + 5e84: a461 st.b r3, (r4, 0x1) + +} + 5e86: 1491 pop r4, r15 + 5e88: 200005a0 .long 0x200005a0 + 5e8c: 20000400 .long 0x20000400 + 5e90: 2000050c .long 0x2000050c + 5e94: 2000059c .long 0x2000059c + +Disassembly of section .text.Add_Frame_Head: + +00005e98 : +* +* +* +*/ +void Add_Frame_Head(U8_T *data, U8_T cmd, U8_T lens) +{ + 5e98: 14c2 push r4-r5 + U16_T frameno = 0x00; + + data[HEAD_FIRST] = FIRST_FRAME_HEAD; + 5e9a: 3355 movi r3, 85 + 5e9c: a060 st.b r3, (r0, 0x0) + data[HEAD_SECOND] = SECOND_FRAME_HEAD; + 5e9e: 3300 movi r3, 0 + 5ea0: 2b55 subi r3, 86 + 5ea2: a061 st.b r3, (r0, 0x1) + data[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER; + 5ea4: 3302 movi r3, 2 + 5ea6: a062 st.b r3, (r0, 0x2) + if(seq_num > 0xfff0){ + 5ea8: 10aa lrw r5, 0xfff0 // 5ed0 + seq_num ++; + 5eaa: 106b lrw r3, 0x200000d8 // 5ed4 + 5eac: 8b80 ld.h r4, (r3, 0x0) + 5eae: 2400 addi r4, 1 + 5eb0: 7511 zexth r4, r4 + if(seq_num > 0xfff0){ + 5eb2: 6514 cmphs r5, r4 + 5eb4: 0c0b bf 0x5eca // 5eca + seq_num = 1; + 5eb6: ab80 st.h r4, (r3, 0x0) + return seq_num; + 5eb8: 8b60 ld.h r3, (r3, 0x0) + + frameno = seq_num_get(); + data[SEQ_HIGH] = (frameno << 8); + 5eba: 3400 movi r4, 0 + data[SEQ_LOW] = (frameno & 0xff); + 5ebc: a064 st.b r3, (r0, 0x4) + + data[FRAME_TYPE] = cmd; + + data[LENGTH_HIGH] = lens >> 8; + 5ebe: 3300 movi r3, 0 + data[SEQ_HIGH] = (frameno << 8); + 5ec0: a083 st.b r4, (r0, 0x3) + data[FRAME_TYPE] = cmd; + 5ec2: a025 st.b r1, (r0, 0x5) + data[LENGTH_HIGH] = lens >> 8; + 5ec4: a066 st.b r3, (r0, 0x6) + data[LENGTH_LOW] = lens & 0xff; + 5ec6: a047 st.b r2, (r0, 0x7) + +} + 5ec8: 1482 pop r4-r5 + seq_num = 1; + 5eca: 3401 movi r4, 1 + 5ecc: 07f5 br 0x5eb6 // 5eb6 + 5ece: 0000 bkpt + 5ed0: 0000fff0 .long 0x0000fff0 + 5ed4: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Product_Info_Update: + +00005ed8 : + + + +void Product_Info_Update(void) +{ + 5ed8: 14d0 push r15 + 5eda: 142a subi r14, r14, 40 + U8_T data[37]; + memset(data,0,sizeof(data)); + 5edc: 6c3b mov r0, r14 + 5ede: 3225 movi r2, 37 + 5ee0: 3100 movi r1, 0 + 5ee2: e3ffdd41 bsr 0x1964 // 1964 <__memset_fast> + U8_T lens = 0x00; + + lens += strlen("{\"p\":\""); + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5ee6: 107b lrw r3, 0x2270227b // 5f50 + + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ee8: 300d movi r0, 13 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5eea: b862 st.w r3, (r14, 0x8) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5eec: 6038 addu r0, r14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5eee: 107f lrw r3, 0x223a // 5f68 + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ef0: 3208 movi r2, 8 + 5ef2: 1039 lrw r1, 0x7e63 // 5f54 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5ef4: dc6e1006 st.h r3, (r14, 0xc) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ef8: e3ffdd7a bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen((U8_T *)PRODUCT_KEY); + + memcpy(&data[DATA_START + lens-1],"\",\"v\":\"",strlen("\",\"v\":\"")); + 5efc: 3015 movi r0, 21 + 5efe: 6038 addu r0, r14 + 5f00: 3207 movi r2, 7 + 5f02: 1036 lrw r1, 0x7e6c // 5f58 + 5f04: e3ffdd74 bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen("\",\"v\":\""); + + memcpy(&data[DATA_START + lens-1],(U8_T *)MCU_VER,strlen((U8_T *)MCU_VER)); + 5f08: 1055 lrw r2, 0x2e302e31 // 5f5c + 5f0a: b847 st.w r2, (r14, 0x1c) + 5f0c: 1b07 addi r3, r14, 28 + 5f0e: 3230 movi r2, 48 + 5f10: a344 st.b r2, (r3, 0x4) + lens += strlen((U8_T *)MCU_VER); + + memcpy(&data[DATA_START + lens-1],"\"}",strlen("\"}")); + 5f12: 3321 movi r3, 33 + 5f14: 60f8 addu r3, r14 + 5f16: 3222 movi r2, 34 + 5f18: a340 st.b r2, (r3, 0x0) + 5f1a: 327d movi r2, 125 + 5f1c: a341 st.b r2, (r3, 0x1) + lens += strlen("\"}"); + + Add_Frame_Head(data,PRODUCT_INFO_CMD,lens); + 5f1e: 6c3b mov r0, r14 + 5f20: 321c movi r2, 28 + 5f22: 3101 movi r1, 1 + 5f24: e3ffffba bsr 0x5e98 // 5e98 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 5f28: 3124 movi r1, 36 + 5f2a: 6c3b mov r0, r14 + 5f2c: e3ffff68 bsr 0x5dfc // 5dfc + 5f30: 1b08 addi r3, r14, 32 + 5f32: a304 st.b r0, (r3, 0x4) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 5f34: 6cbb mov r2, r14 + 5f36: 3325 movi r3, 37 + 5f38: 102a lrw r1, 0x7e74 // 5f60 + 5f3a: 3000 movi r0, 0 + 5f3c: e3ffee0c bsr 0x3b54 // 3b54 + + UARTTransmit(UART2,data,lens); + 5f40: 1069 lrw r3, 0x20000038 // 5f64 + 5f42: 3225 movi r2, 37 + 5f44: 9300 ld.w r0, (r3, 0x0) + 5f46: 6c7b mov r1, r14 + 5f48: e3ffe0ea bsr 0x211c // 211c +} + 5f4c: 140a addi r14, r14, 40 + 5f4e: 1490 pop r15 + 5f50: 2270227b .long 0x2270227b + 5f54: 00007e63 .long 0x00007e63 + 5f58: 00007e6c .long 0x00007e6c + 5f5c: 2e302e31 .long 0x2e302e31 + 5f60: 00007e74 .long 0x00007e74 + 5f64: 20000038 .long 0x20000038 + 5f68: 0000223a .long 0x0000223a + +Disassembly of section .text.Recv_RFNetState_Ack: + +00005f6c : + +void Recv_RFNetState_Ack(void) +{ + 5f6c: 14d0 push r15 + 5f6e: 1423 subi r14, r14, 12 + U8_T data[9]; + memset(data,0,sizeof(data)); + 5f70: 6c3b mov r0, r14 + 5f72: 3209 movi r2, 9 + 5f74: 3100 movi r1, 0 + 5f76: e3ffdcf7 bsr 0x1964 // 1964 <__memset_fast> + + U8_T lens = 0x00; + + Add_Frame_Head(data,ZIGBEE_STATE_CMD,lens); + 5f7a: 3200 movi r2, 0 + 5f7c: 6c3b mov r0, r14 + 5f7e: 3102 movi r1, 2 + 5f80: e3ffff8c bsr 0x5e98 // 5e98 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 5f84: 3108 movi r1, 8 + 5f86: 6c3b mov r0, r14 + 5f88: e3ffff3a bsr 0x5dfc // 5dfc + + UARTTransmit(UART2,data,lens); + 5f8c: 1065 lrw r3, 0x20000038 // 5fa0 + 5f8e: 3209 movi r2, 9 + data[lens-1] = get_check_sum(data,(lens-1)); + 5f90: dc0e0008 st.b r0, (r14, 0x8) + UARTTransmit(UART2,data,lens); + 5f94: 6c7b mov r1, r14 + 5f96: 9300 ld.w r0, (r3, 0x0) + 5f98: e3ffe0c2 bsr 0x211c // 211c +} + 5f9c: 1403 addi r14, r14, 12 + 5f9e: 1490 pop r15 + 5fa0: 20000038 .long 0x20000038 + +Disassembly of section .text.Tem_Fun_Ctrl_Report: + +00005fa4 : + + +void Tem_Fun_Ctrl_Report(U8_T datalens,U8_T dpid,U8_T type,U32_T state,U8_T source) +{ + 5fa4: 14d4 push r4-r7, r15 + 5fa6: 1426 subi r14, r14, 24 + 5fa8: 6d4f mov r5, r3 + 5faa: 1b0b addi r3, r14, 44 + 5fac: 6d8b mov r6, r2 + 5fae: 8360 ld.b r3, (r3, 0x0) + 5fb0: 6dc7 mov r7, r1 + 5fb2: 6d03 mov r4, r0 + U8_T data[17]; + memset(data,0,sizeof(data)); + 5fb4: 3211 movi r2, 17 + 5fb6: 3100 movi r1, 0 + 5fb8: 1801 addi r0, r14, 4 +{ + 5fba: b860 st.w r3, (r14, 0x0) + memset(data,0,sizeof(data)); + 5fbc: e3ffdcd4 bsr 0x1964 // 1964 <__memset_fast> + U8_T cmd = 0x00; + + data[DATA_START] = dpid; //dpID + data[DATA_START+1] = type; //数据类型 + + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 5fc0: 3e41 cmpnei r6, 1 + data[DATA_START] = dpid; //dpID + 5fc2: dcee000c st.b r7, (r14, 0xc) + data[DATA_START+1] = type; //数据类型 + 5fc6: dcce000d st.b r6, (r14, 0xd) + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 5fca: 9860 ld.w r3, (r14, 0x0) + 5fcc: 0c03 bf 0x5fd2 // 5fd2 + 5fce: 3e44 cmpnei r6, 4 + 5fd0: 0829 bt 0x6022 // 6022 + { + data[DATA_START+2] = 0x00; + data[DATA_START+3] = 0x01; + 5fd2: 3201 movi r2, 1 + 5fd4: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state&0xff; + 5fd8: dcae0010 st.b r5, (r14, 0x10) + data[DATA_START+5] = state>>16; + data[DATA_START+6] = state>>8; + data[DATA_START+7] = state&0xff; + } + + if(source == ACTIVE) + 5fdc: 3b41 cmpnei r3, 1 + 5fde: 0c33 bf 0x6044 // 6044 + { + cmd = 0x06; + } + else if(source == PASSIVE) + 5fe0: 3b42 cmpnei r3, 2 + 5fe2: 0833 bt 0x6048 // 6048 + { + cmd = 0x05; + 5fe4: 3105 movi r1, 5 + } + + Add_Frame_Head(data,cmd,datalens); + 5fe6: 6c93 mov r2, r4 + + lens = PROTOCOL_HEAD + datalens; + 5fe8: 2408 addi r4, 9 + 5fea: 7510 zextb r4, r4 + + data[lens-1] = get_check_sum(data,(lens-1)); + 5fec: 7551 zexth r5, r4 + Add_Frame_Head(data,cmd,datalens); + 5fee: 1801 addi r0, r14, 4 + 5ff0: e3ffff54 bsr 0x5e98 // 5e98 + data[lens-1] = get_check_sum(data,(lens-1)); + 5ff4: 5d23 subi r1, r5, 1 + 5ff6: 7445 zexth r1, r1 + 5ff8: 1801 addi r0, r14, 4 + 5ffa: e3ffff01 bsr 0x5dfc // 5dfc + 5ffe: 1b01 addi r3, r14, 4 + 6000: 610c addu r4, r3 + 6002: 2c00 subi r4, 1 + 6004: a400 st.b r0, (r4, 0x0) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 6006: 6cd7 mov r3, r5 + 6008: 1a01 addi r2, r14, 4 + 600a: 1031 lrw r1, 0x7e74 // 604c + 600c: 3000 movi r0, 0 + 600e: e3ffeda3 bsr 0x3b54 // 3b54 + + UARTTransmit(UART2,data,lens); + 6012: 1070 lrw r3, 0x20000038 // 6050 + 6014: 6c97 mov r2, r5 + 6016: 9300 ld.w r0, (r3, 0x0) + 6018: 1901 addi r1, r14, 4 + 601a: e3ffe081 bsr 0x211c // 211c +} + 601e: 1406 addi r14, r14, 24 + 6020: 1494 pop r4-r7, r15 + else if(type == DP_TYPE_VALUE) + 6022: 3e42 cmpnei r6, 2 + 6024: 0bdc bt 0x5fdc // 5fdc + data[DATA_START+3] = 0x04; + 6026: 3204 movi r2, 4 + 6028: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state>>24; + 602c: 4d58 lsri r2, r5, 24 + 602e: dc4e0010 st.b r2, (r14, 0x10) + data[DATA_START+5] = state>>16; + 6032: 4d50 lsri r2, r5, 16 + 6034: dc4e0011 st.b r2, (r14, 0x11) + data[DATA_START+6] = state>>8; + 6038: 4d48 lsri r2, r5, 8 + 603a: dc4e0012 st.b r2, (r14, 0x12) + data[DATA_START+7] = state&0xff; + 603e: dcae0013 st.b r5, (r14, 0x13) + 6042: 07cd br 0x5fdc // 5fdc + cmd = 0x06; + 6044: 3106 movi r1, 6 + 6046: 07d0 br 0x5fe6 // 5fe6 + U8_T cmd = 0x00; + 6048: 3100 movi r1, 0 + 604a: 07ce br 0x5fe6 // 5fe6 + 604c: 00007e74 .long 0x00007e74 + 6050: 20000038 .long 0x20000038 + +Disassembly of section .text.data_handle: + +00006054 : +* @brief handle received frame from zigbee module baseon frame cmd id +* @param[in] {void} +* @return result of handle +*/ +int data_handle(unsigned short offset) +{ + 6054: 14d2 push r4-r5, r15 + unsigned char ret; + unsigned short i; + + U32_T temp = 0x00; + + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6056: 5872 addi r3, r0, 5 + 6058: 1286 lrw r4, 0x20000510 // 6170 + + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 605a: 5856 addi r2, r0, 6 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 605c: 60d0 addu r3, r4 + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 605e: 6090 addu r2, r4 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6060: 8360 ld.b r3, (r3, 0x0) + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 6062: 8240 ld.b r2, (r2, 0x0) + total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW]; + 6064: 585a addi r2, r0, 7 + 6066: 6090 addu r2, r4 + 6068: 8240 ld.b r2, (r2, 0x0) + + seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8; + 606a: 584a addi r2, r0, 3 + 606c: 6090 addu r2, r4 + 606e: 8240 ld.b r2, (r2, 0x0) + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6070: 74cc zextb r3, r3 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 6072: 584e addi r2, r0, 4 + 6074: 6090 addu r2, r4 + + switch(cmd_type) + 6076: 3b42 cmpnei r3, 2 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 6078: 8240 ld.b r2, (r2, 0x0) + switch(cmd_type) + 607a: 0c09 bf 0x608c // 608c + 607c: 3b44 cmpnei r3, 4 + 607e: 0c13 bf 0x60a4 // 60a4 + 6080: 3b41 cmpnei r3, 1 + 6082: 0803 bt 0x6088 // 6088 + { + case PRODUCT_INFO_CMD: //RF查询产品信息 + Product_Info_Update(); + 6084: e3ffff2a bsr 0x5ed8 // 5ed8 + default: + return ret = 0x01; + break; + } + return 1; +} + 6088: 3001 movi r0, 1 + 608a: 1492 pop r4-r5, r15 + if(rf_info.net_state != zigbee_uart_rx_buf[offset + DATA_START]) + 608c: 587e addi r3, r0, 8 + 608e: 5c0c addu r0, r4, r3 + 6090: 1179 lrw r3, 0x200005a0 // 6174 + 6092: 8040 ld.b r2, (r0, 0x0) + 6094: 8320 ld.b r1, (r3, 0x0) + 6096: 6486 cmpne r1, r2 + 6098: 0c03 bf 0x609e // 609e + rf_info.net_state = zigbee_uart_rx_buf[offset + DATA_START]; + 609a: 8040 ld.b r2, (r0, 0x0) + 609c: a340 st.b r2, (r3, 0x0) + Recv_RFNetState_Ack(); + 609e: e3ffff67 bsr 0x5f6c // 5f6c + break; + 60a2: 07f3 br 0x6088 // 6088 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 60a4: 587e addi r3, r0, 8 + 60a6: 60d0 addu r3, r4 + 60a8: 8360 ld.b r3, (r3, 0x0) + 60aa: 74cc zextb r3, r3 + 60ac: 3b42 cmpnei r3, 2 + 60ae: 0c2a bf 0x6102 // 6102 + 60b0: 3b02 cmphsi r3, 3 + 60b2: 0812 bt 0x60d6 // 60d6 + 60b4: 3b41 cmpnei r3, 1 + 60b6: 0be9 bt 0x6088 // 6088 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 60b8: 200b addi r0, 12 + 60ba: 6010 addu r0, r4 + 60bc: 8060 ld.b r3, (r0, 0x0) + 60be: 112f lrw r1, 0x200003d4 // 6178 + 60c0: 4347 lsli r2, r3, 7 + 60c2: 307f movi r0, 127 + 60c4: 8162 ld.b r3, (r1, 0x2) + 60c6: 68c0 and r3, r0 + 60c8: 6cc8 or r3, r2 + rf_info.switc_flag = 0x01; + 60ca: 114b lrw r2, 0x200005a0 // 6174 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 60cc: a162 st.b r3, (r1, 0x2) + rf_info.switc_flag = 0x01; + 60ce: 8261 ld.b r3, (r2, 0x1) + 60d0: 3ba0 bseti r3, 0 + rf_info.fan_flag = 0x01; + 60d2: a261 st.b r3, (r2, 0x1) + break; + 60d4: 07da br 0x6088 // 6088 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 60d6: 3b50 cmpnei r3, 16 + 60d8: 0c25 bf 0x6122 // 6122 + 60da: 3240 movi r2, 64 + 60dc: 648e cmpne r3, r2 + 60de: 0bd5 bt 0x6088 // 6088 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 60e0: 6cc3 mov r3, r0 + 60e2: 230b addi r3, 12 + 60e4: 5c0c addu r0, r4, r3 + 60e6: 8060 ld.b r3, (r0, 0x0) + 60e8: 3207 movi r2, 7 + 60ea: 1124 lrw r1, 0x200003d4 // 6178 + 60ec: 68c8 and r3, r2 + 60ee: 4341 lsli r2, r3, 1 + 60f0: 300e movi r0, 14 + 60f2: 8162 ld.b r3, (r1, 0x2) + 60f4: 68c1 andn r3, r0 + 60f6: 6cc8 or r3, r2 + rf_info.fan_flag = 0x01; + 60f8: 105f lrw r2, 0x200005a0 // 6174 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 60fa: a162 st.b r3, (r1, 0x2) + rf_info.fan_flag = 0x01; + 60fc: 8261 ld.b r3, (r2, 0x1) + 60fe: 3ba4 bseti r3, 4 + 6100: 07e9 br 0x60d2 // 60d2 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6102: 200b addi r0, 12 + 6104: 6010 addu r0, r4 + 6106: 8060 ld.b r3, (r0, 0x0) + 6108: 3207 movi r2, 7 + 610a: 103c lrw r1, 0x200003d4 // 6178 + 610c: 68c8 and r3, r2 + 610e: 4344 lsli r2, r3, 4 + 6110: 3070 movi r0, 112 + 6112: 8162 ld.b r3, (r1, 0x2) + 6114: 68c1 andn r3, r0 + 6116: 6cc8 or r3, r2 + rf_info.model_flag = 0x01; + 6118: 1057 lrw r2, 0x200005a0 // 6174 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 611a: a162 st.b r3, (r1, 0x2) + rf_info.model_flag = 0x01; + 611c: 8261 ld.b r3, (r2, 0x1) + 611e: 3ba1 bseti r3, 1 + 6120: 07d9 br 0x60d2 // 60d2 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 6122: 330c movi r3, 12 + 6124: 60c0 addu r3, r0 + 6126: 60d0 addu r3, r4 + 6128: 83a0 ld.b r5, (r3, 0x0) + 612a: 330d movi r3, 13 + 612c: 60c0 addu r3, r0 + 612e: 60d0 addu r3, r4 + 6130: 8340 ld.b r2, (r3, 0x0) + 6132: 330e movi r3, 14 + 6134: 60c0 addu r3, r0 + 6136: 6c43 mov r1, r0 + 6138: 60d0 addu r3, r4 + 613a: 8360 ld.b r3, (r3, 0x0) + 613c: 4250 lsli r2, r2, 16 + 613e: 210e addi r1, 15 + 6140: 4518 lsli r0, r5, 24 + 6142: 6008 addu r0, r2 + 6144: 4368 lsli r3, r3, 8 + 6146: 6050 addu r1, r4 + 6148: 600c addu r0, r3 + 614a: 8120 ld.b r1, (r1, 0x0) + if((temp>=50) && (temp<=350)) + 614c: 3200 movi r2, 0 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 614e: 6004 addu r0, r1 + if((temp>=50) && (temp<=350)) + 6150: 2a31 subi r2, 50 + 6152: 3396 movi r3, 150 + 6154: 6080 addu r2, r0 + 6156: 4361 lsli r3, r3, 1 + 6158: 648c cmphs r3, r2 + 615a: 0f97 bf 0x6088 // 6088 + TempCtrl.TemState_Now.set_t = temp / 10; + 615c: 310a movi r1, 10 + 615e: e3ffeb83 bsr 0x3864 // 3864 <__udivsi3> + 6162: 1066 lrw r3, 0x200003d4 // 6178 + rf_info.setc_flag = 0x01; + 6164: 1044 lrw r2, 0x200005a0 // 6174 + TempCtrl.TemState_Now.set_t = temp / 10; + 6166: a301 st.b r0, (r3, 0x1) + rf_info.setc_flag = 0x01; + 6168: 8261 ld.b r3, (r2, 0x1) + 616a: 3ba2 bseti r3, 2 + 616c: 07b3 br 0x60d2 // 60d2 + 616e: 0000 bkpt + 6170: 20000510 .long 0x20000510 + 6174: 200005a0 .long 0x200005a0 + 6178: 200003d4 .long 0x200003d4 + +Disassembly of section .text.zigbee_uart_service: + +0000617c : +* @brief uart receive data handle, call this function at mian loop +* @param[in] {void} +* @return void +*/ +void zigbee_uart_service(void) +{ + 617c: 14d4 push r4-r7, r15 + unsigned short rx_value_len = 0; + unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD; + + + + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 617e: 11d0 lrw r6, 0x200000d8 // 623c + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 6180: 11b0 lrw r5, 0x20000510 // 6240 + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 6182: 8e81 ld.h r4, (r6, 0x2) + 6184: 3388 movi r3, 136 + 6186: 650c cmphs r3, r4 + 6188: 0c07 bf 0x6196 // 6196 + 618a: e3fffe5f bsr 0x5e48 // 5e48 + 618e: 3840 cmpnei r0, 0 + 6190: 081c bt 0x61c8 // 61c8 + } + + if(rx_in < PROTOCOL_HEAD){ + 6192: 3c08 cmphsi r4, 9 + 6194: 0c19 bf 0x61c6 // 61c6 + 6196: 3400 movi r4, 0 + while((rx_in - offset) >= PROTOCOL_HEAD){ + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + + + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 6198: 11ea lrw r7, 0x20000510 // 6240 + while((rx_in - offset) >= PROTOCOL_HEAD){ + 619a: 8e61 ld.h r3, (r6, 0x2) + 619c: 60d2 subu r3, r4 + 619e: 3b28 cmplti r3, 9 + 61a0: 0c1b bf 0x61d6 // 61d6 + } + + data_handle(offset); + offset += rx_value_len; + } + rx_in -= offset; + 61a2: 74cd zexth r3, r3 + + if(rx_in > 0){ + 61a4: 3b40 cmpnei r3, 0 + rx_in -= offset; + 61a6: ae61 st.h r3, (r6, 0x2) + if(rx_in > 0){ + 61a8: 0c0f bf 0x61c6 // 61c6 + if((offset == 0) && (rx_in >= sizeof(zigbee_uart_rx_buf))){ + 61aa: 3c40 cmpnei r4, 0 + 61ac: 0807 bt 0x61ba // 61ba + 61ae: 3288 movi r2, 136 + 61b0: 64c8 cmphs r2, r3 + 61b2: 0804 bt 0x61ba // 61ba + offset++; + rx_in -= offset; + 61b4: 2b00 subi r3, 1 + 61b6: ae61 st.h r3, (r6, 0x2) + offset++; + 61b8: 3401 movi r4, 1 + } + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + 61ba: 1122 lrw r1, 0x20000510 // 6240 + 61bc: 8e41 ld.h r2, (r6, 0x2) + 61be: 6050 addu r1, r4 + 61c0: 1100 lrw r0, 0x20000510 // 6240 + 61c2: e3ffdc15 bsr 0x19ec // 19ec <__memcpy_fast> + } +} + 61c6: 1494 pop r4-r7, r15 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 61c8: 5c62 addi r3, r4, 1 + 61ca: ae61 st.h r3, (r6, 0x2) + 61cc: 6114 addu r4, r5 + 61ce: e3fffe23 bsr 0x5e14 // 5e14 + 61d2: a400 st.b r0, (r4, 0x0) + 61d4: 07d7 br 0x6182 // 6182 + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 61d6: 5f10 addu r0, r7, r4 + 61d8: 3255 movi r2, 85 + 61da: 8020 ld.b r1, (r0, 0x0) + 61dc: 6486 cmpne r1, r2 + 61de: 5c42 addi r2, r4, 1 + 61e0: 0c03 bf 0x61e6 // 61e6 + offset += 2; + 61e2: 7509 zexth r4, r2 + continue; + 61e4: 07db br 0x619a // 619a + if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){ + 61e6: 5f28 addu r1, r7, r2 + 61e8: 81a0 ld.b r5, (r1, 0x0) + 61ea: 31aa movi r1, 170 + 61ec: 6456 cmpne r5, r1 + 61ee: 0bfa bt 0x61e2 // 61e2 + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + 61f0: 5c46 addi r2, r4, 2 + 61f2: 5f28 addu r1, r7, r2 + 61f4: 8120 ld.b r1, (r1, 0x0) + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + 61f6: 3942 cmpnei r1, 2 + 61f8: 0bf5 bt 0x61e2 // 61e2 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 61fa: 5c56 addi r2, r4, 6 + 61fc: 609c addu r2, r7 + 61fe: 82a0 ld.b r5, (r2, 0x0) + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 6200: 5c5a addi r2, r4, 7 + 6202: 609c addu r2, r7 + 6204: 8240 ld.b r2, (r2, 0x0) + 6206: 2208 addi r2, 9 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 6208: 45a8 lsli r5, r5, 8 + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 620a: 6148 addu r5, r2 + 620c: 7555 zexth r5, r5 + if(rx_value_len > sizeof(zigbee_uart_rx_buf)){ + 620e: 3289 movi r2, 137 + 6210: 6548 cmphs r2, r5 + 6212: 0804 bt 0x621a // 621a + offset += 3; + 6214: 2402 addi r4, 3 + 6216: 7511 zexth r4, r4 + continue; + 6218: 07c1 br 0x619a // 619a + if((rx_in - offset) < rx_value_len){ + 621a: 654d cmplt r3, r5 + 621c: 0bc3 bt 0x61a2 // 61a2 + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + 621e: 5d23 subi r1, r5, 1 + 6220: 7445 zexth r1, r1 + 6222: 6150 addu r5, r4 + 6224: e3fffdec bsr 0x5dfc // 5dfc + 6228: 5d63 subi r3, r5, 1 + 622a: 60dc addu r3, r7 + 622c: 8360 ld.b r3, (r3, 0x0) + 622e: 64c2 cmpne r0, r3 + 6230: 0bf2 bt 0x6214 // 6214 + data_handle(offset); + 6232: 6c13 mov r0, r4 + 6234: e3ffff10 bsr 0x6054 // 6054 + offset += rx_value_len; + 6238: 7515 zexth r4, r5 + 623a: 07b0 br 0x619a // 619a + 623c: 200000d8 .long 0x200000d8 + 6240: 20000510 .long 0x20000510 + +Disassembly of section .text.TemFun_Report_Task: + +00006244 : + + + +void TemFun_Report_Task(void) +{ + 6244: 14d1 push r4, r15 + 6246: 1421 subi r14, r14, 4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 6248: 1151 lrw r2, 0x200005a0 // 630c + 624a: 8200 ld.b r0, (r2, 0x0) + 624c: 3841 cmpnei r0, 1 + 624e: 0831 bt 0x62b0 // 62b0 + { + if(rf_info.switc_flag == 0x01) //开关 + 6250: 8261 ld.b r3, (r2, 0x1) + 6252: 744c zextb r1, r3 + 6254: 3401 movi r4, 1 + 6256: 6904 and r4, r1 + 6258: 3c40 cmpnei r4, 0 + 625a: 0c0c bf 0x6272 // 6272 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report onoff"); + rf_info.switc_flag = 0x00; + 625c: 3b80 bclri r3, 0 + 625e: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,PASSIVE); + 6260: 3202 movi r2, 2 + 6262: 116c lrw r3, 0x200003d4 // 6310 + 6264: 8362 ld.b r3, (r3, 0x2) + 6266: 4b67 lsri r3, r3, 7 + 6268: b840 st.w r2, (r14, 0x0) + 626a: 3101 movi r1, 1 + 626c: 3201 movi r2, 1 + } + else if(rf_info.valve_flag == 0x01) //阀门状态 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + rf_info.valve_flag = 0x00; + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 626e: 3005 movi r0, 5 + 6270: 041e br 0x62ac // 62ac + else if(rf_info.model_flag == 0x01) //模式 + 6272: 3402 movi r4, 2 + 6274: 6904 and r4, r1 + 6276: 3c40 cmpnei r4, 0 + 6278: 0c0c bf 0x6290 // 6290 + rf_info.model_flag = 0x00; + 627a: 3b81 bclri r3, 1 + 627c: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,PASSIVE); + 627e: 3202 movi r2, 2 + 6280: 1164 lrw r3, 0x200003d4 // 6310 + 6282: 8362 ld.b r3, (r3, 0x2) + 6284: 4379 lsli r3, r3, 25 + 6286: b840 st.w r2, (r14, 0x0) + 6288: 4b7d lsri r3, r3, 29 + 628a: 3204 movi r2, 4 + 628c: 3102 movi r1, 2 + 628e: 07f0 br 0x626e // 626e + else if(rf_info.setc_flag == 0x01) //设置温度 + 6290: 3404 movi r4, 4 + 6292: 6904 and r4, r1 + 6294: 3c40 cmpnei r4, 0 + 6296: 0c0f bf 0x62b4 // 62b4 + rf_info.setc_flag = 0x00; + 6298: 3b82 bclri r3, 2 + 629a: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),PASSIVE); + 629c: 320a movi r2, 10 + 629e: 107d lrw r3, 0x200003d4 // 6310 + 62a0: 8361 ld.b r3, (r3, 0x1) + 62a2: 7cc8 mult r3, r2 + 62a4: 3202 movi r2, 2 + 62a6: b840 st.w r2, (r14, 0x0) + 62a8: 3110 movi r1, 16 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 62aa: 3008 movi r0, 8 + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 62ac: e3fffe7c bsr 0x5fa4 // 5fa4 + } + } + 62b0: 1401 addi r14, r14, 4 + 62b2: 1491 pop r4, r15 + else if(rf_info.fan_flag == 0x01) //风速 + 62b4: 3410 movi r4, 16 + 62b6: 6904 and r4, r1 + 62b8: 3c40 cmpnei r4, 0 + 62ba: 0c0c bf 0x62d2 // 62d2 + rf_info.fan_flag = 0x00; + 62bc: 3b84 bclri r3, 4 + 62be: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,PASSIVE); + 62c0: 3202 movi r2, 2 + 62c2: 1074 lrw r3, 0x200003d4 // 6310 + 62c4: 8362 ld.b r3, (r3, 0x2) + 62c6: 437c lsli r3, r3, 28 + 62c8: b840 st.w r2, (r14, 0x0) + 62ca: 4b7d lsri r3, r3, 29 + 62cc: 3204 movi r2, 4 + 62ce: 3140 movi r1, 64 + 62d0: 07cf br 0x626e // 626e + else if(rf_info.roomc_flag == 0x01) //室内温度 + 62d2: 3420 movi r4, 32 + 62d4: 6904 and r4, r1 + 62d6: 3c40 cmpnei r4, 0 + 62d8: 0c0c bf 0x62f0 // 62f0 + rf_info.roomc_flag = 0x00; + 62da: 3b85 bclri r3, 5 + 62dc: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 62de: 104d lrw r2, 0x200003d4 // 6310 + 62e0: 8269 ld.b r3, (r2, 0x9) + 62e2: 8228 ld.b r1, (r2, 0x8) + 62e4: 4368 lsli r3, r3, 8 + 62e6: 6cc4 or r3, r1 + 62e8: b800 st.w r0, (r14, 0x0) + 62ea: 3202 movi r2, 2 + 62ec: 3118 movi r1, 24 + 62ee: 07de br 0x62aa // 62aa + else if(rf_info.valve_flag == 0x01) //阀门状态 + 62f0: 7446 sextb r1, r1 + 62f2: 39df btsti r1, 31 + 62f4: 0fde bf 0x62b0 // 62b0 + rf_info.valve_flag = 0x00; + 62f6: 317f movi r1, 127 + 62f8: 68c4 and r3, r1 + 62fa: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 62fc: 3124 movi r1, 36 + 62fe: 1065 lrw r3, 0x200003d4 // 6310 + 6300: 8362 ld.b r3, (r3, 0x2) + 6302: 437f lsli r3, r3, 31 + 6304: 4b7f lsri r3, r3, 31 + 6306: b800 st.w r0, (r14, 0x0) + 6308: 3204 movi r2, 4 + 630a: 07b2 br 0x626e // 626e + 630c: 200005a0 .long 0x200005a0 + 6310: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Relay_Init: + +00006314 : +#include "includes.h" + + +void Relay_Init(void) +{ + 6314: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,RLY1_HOT_PIN,Output); + 6316: 10b9 lrw r5, 0x2000004c // 6378 + 6318: 3200 movi r2, 0 + 631a: 9500 ld.w r0, (r5, 0x0) + 631c: 310e movi r1, 14 + 631e: e3ffdd35 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 6322: 1097 lrw r4, 0x20000048 // 637c + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + 6324: 3200 movi r2, 0 + 6326: 9500 ld.w r0, (r5, 0x0) + 6328: 310f movi r1, 15 + 632a: e3ffdd2f bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 632e: 9400 ld.w r0, (r4, 0x0) + 6330: 3200 movi r2, 0 + 6332: 3101 movi r1, 1 + 6334: e3ffdd2a bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY4_MID_PIN,Output); + 6338: 9400 ld.w r0, (r4, 0x0) + 633a: 3200 movi r2, 0 + 633c: 3102 movi r1, 2 + 633e: e3ffdd25 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY5_LOW_PIN,Output); + 6342: 3200 movi r2, 0 + 6344: 9400 ld.w r0, (r4, 0x0) + 6346: 3103 movi r1, 3 + 6348: e3ffdd20 bsr 0x1d88 // 1d88 + + RLY1_HOT_CLOSE; + 634c: 9500 ld.w r0, (r5, 0x0) + 634e: 310e movi r1, 14 + 6350: e3ffdda8 bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 6354: 9500 ld.w r0, (r5, 0x0) + 6356: 310f movi r1, 15 + 6358: e3ffdda4 bsr 0x1ea0 // 1ea0 + RLY3_HIGH_CLOSE; + 635c: 9400 ld.w r0, (r4, 0x0) + 635e: 3101 movi r1, 1 + 6360: e3ffdda0 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 6364: 9400 ld.w r0, (r4, 0x0) + 6366: 3102 movi r1, 2 + 6368: e3ffdd9c bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 636c: 9400 ld.w r0, (r4, 0x0) + 636e: 3103 movi r1, 3 + 6370: e3ffdd98 bsr 0x1ea0 // 1ea0 + +} + 6374: 1492 pop r4-r5, r15 + 6376: 0000 bkpt + 6378: 2000004c .long 0x2000004c + 637c: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_High: + +00006380 : + + +void Relay_High(void) +{ + 6380: 14d1 push r4, r15 + RLY3_HIGH_OPEN; + 6382: 1088 lrw r4, 0x20000048 // 63a0 + 6384: 3101 movi r1, 1 + 6386: 9400 ld.w r0, (r4, 0x0) + 6388: e3ffdd88 bsr 0x1e98 // 1e98 + RLY4_MID_CLOSE; + 638c: 9400 ld.w r0, (r4, 0x0) + 638e: 3102 movi r1, 2 + 6390: e3ffdd88 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 6394: 9400 ld.w r0, (r4, 0x0) + 6396: 3103 movi r1, 3 + 6398: e3ffdd84 bsr 0x1ea0 // 1ea0 +} + 639c: 1491 pop r4, r15 + 639e: 0000 bkpt + 63a0: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Mid: + +000063a4 : + + +void Relay_Mid(void) +{ + 63a4: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 63a6: 1088 lrw r4, 0x20000048 // 63c4 + 63a8: 3101 movi r1, 1 + 63aa: 9400 ld.w r0, (r4, 0x0) + 63ac: e3ffdd7a bsr 0x1ea0 // 1ea0 + RLY4_MID_OPEN; + 63b0: 9400 ld.w r0, (r4, 0x0) + 63b2: 3102 movi r1, 2 + 63b4: e3ffdd72 bsr 0x1e98 // 1e98 + RLY5_LOW_CLOSE; + 63b8: 9400 ld.w r0, (r4, 0x0) + 63ba: 3103 movi r1, 3 + 63bc: e3ffdd72 bsr 0x1ea0 // 1ea0 +} + 63c0: 1491 pop r4, r15 + 63c2: 0000 bkpt + 63c4: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Low: + +000063c8 : + + + +void Relay_Low(void) +{ + 63c8: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 63ca: 1088 lrw r4, 0x20000048 // 63e8 + 63cc: 3101 movi r1, 1 + 63ce: 9400 ld.w r0, (r4, 0x0) + 63d0: e3ffdd68 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 63d4: 9400 ld.w r0, (r4, 0x0) + 63d6: 3102 movi r1, 2 + 63d8: e3ffdd64 bsr 0x1ea0 // 1ea0 + RLY5_LOW_OPEN; + 63dc: 9400 ld.w r0, (r4, 0x0) + 63de: 3103 movi r1, 3 + 63e0: e3ffdd5c bsr 0x1e98 // 1e98 +} + 63e4: 1491 pop r4, r15 + 63e6: 0000 bkpt + 63e8: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Stop: + +000063ec : + +void Relay_Stop(void) +{ + 63ec: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 63ee: 1088 lrw r4, 0x20000048 // 640c + 63f0: 3101 movi r1, 1 + 63f2: 9400 ld.w r0, (r4, 0x0) + 63f4: e3ffdd56 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 63f8: 9400 ld.w r0, (r4, 0x0) + 63fa: 3102 movi r1, 2 + 63fc: e3ffdd52 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 6400: 9400 ld.w r0, (r4, 0x0) + 6402: 3103 movi r1, 3 + 6404: e3ffdd4e bsr 0x1ea0 // 1ea0 +} + 6408: 1491 pop r4, r15 + 640a: 0000 bkpt + 640c: 20000048 .long 0x20000048 + +Disassembly of section .text.NetCRC16: + +00006410 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 6410: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 6412: 3902 cmphsi r1, 3 + 6414: 0c1f bf 0x6452 // 6452 + U16_T alen = len-2; //CRC16??????? + 6416: 2901 subi r1, 2 + 6418: 7445 zexth r1, r1 + 641a: 6d43 mov r5, r0 + 641c: 3200 movi r2, 0 + 641e: 106e lrw r3, 0xffff // 6454 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 6428: 6d8f mov r6, r3 + 642a: 699c and r6, r7 + 642c: 3e40 cmpnei r6, 0 + 642e: 4b61 lsri r3, r3, 1 + 6430: 0c04 bf 0x6438 // 6438 + 6432: 10ca lrw r6, 0xffffa001 // 6458 + 6434: 6cd9 xor r3, r6 + 6436: 74cd zexth r3, r3 + 6438: 2c00 subi r4, 1 + 643a: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 643c: 3c40 cmpnei r4, 0 + 643e: 0bf5 bt 0x6428 // 6428 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 644a: 6040 addu r1, r0 + 644c: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 644e: 4b68 lsri r3, r3, 8 + 6450: a161 st.b r3, (r1, 0x1) +} + 6452: 1484 pop r4-r7 + 6454: 0000ffff .long 0x0000ffff + 6458: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +0000645c : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 645c: 14c3 push r4-r6 + 645e: 6cc3 mov r3, r0 + 6460: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 6462: 10ac lrw r5, 0xffffa001 // 6490 + xda = 0xFFFF ; + 6464: 100c lrw r0, 0xffff // 6494 + for (i = 0; i < len; i++) + 6466: 644e cmpne r3, r1 + 6468: 0802 bt 0x646c // 646c + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 646a: 1483 pop r4-r6 + xda ^= aStr[i] ; + 646c: 8340 ld.b r2, (r3, 0x0) + 646e: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 6470: 3601 movi r6, 1 + xda ^= aStr[i] ; + 6472: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 6474: 6d03 mov r4, r0 + 6476: 6918 and r4, r6 + 6478: 3c40 cmpnei r4, 0 + 647a: 4801 lsri r0, r0, 1 + 647c: 0c03 bf 0x6482 // 6482 + 647e: 6c15 xor r0, r5 + 6480: 7401 zexth r0, r0 + 6482: 2a00 subi r2, 1 + 6484: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 6486: 3a40 cmpnei r2, 0 + 6488: 0bf6 bt 0x6474 // 6474 + 648a: 2300 addi r3, 1 + 648c: 07ed br 0x6466 // 6466 + 648e: 0000 bkpt + 6490: ffffa001 .long 0xffffa001 + 6494: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00006498 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 6498: 6cc3 mov r3, r0 + 649a: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 649c: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 649e: 644e cmpne r3, r1 + 64a0: 0802 bt 0x64a4 // 64a4 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 64a2: 783c jmp r15 + sor_data = sor_data+Data[i]; + 64a4: 8340 ld.b r2, (r3, 0x0) + 64a6: 6008 addu r0, r2 + 64a8: 7400 zextb r0, r0 + 64aa: 2300 addi r3, 1 + 64ac: 07f9 br 0x649e // 649e + +Disassembly of section .text.Rs485AskCycleSend: + +000064b0 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 64b0: 14d0 push r15 + 64b2: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 64b4: 3355 movi r3, 85 + 64b6: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 64ba: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 64be: 3300 movi r3, 0 + 64c0: 2b11 subi r3, 18 + 64c2: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 64c6: 3315 movi r3, 21 + 64c8: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 64cc: 3303 movi r3, 3 + 64ce: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 64d2: 1171 lrw r3, 0x20000350 // 6594 + 64d4: 8360 ld.b r3, (r3, 0x0) + 64d6: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 64da: 3300 movi r3, 0 + 64dc: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 64e0: 116e lrw r3, 0x200003d4 // 6598 + 64e2: 8342 ld.b r2, (r3, 0x2) + 64e4: 4a27 lsri r1, r2, 7 + 64e6: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 64ea: 3100 movi r1, 0 + 64ec: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 64f0: 3170 movi r1, 112 + 64f2: 6884 and r2, r1 + 64f4: 3a40 cmpnei r2, 0 + 64f6: 0841 bt 0x6578 // 6578 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 64f8: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 64fa: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 64fe: 8341 ld.b r2, (r3, 0x1) + 6500: 3a40 cmpnei r2, 0 + 6502: 0802 bt 0x6506 // 6506 + 6504: 3223 movi r2, 35 + 6506: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 650a: 3200 movi r2, 0 + 650c: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 6510: 8342 ld.b r2, (r3, 0x2) + 6512: 425c lsli r2, r2, 28 + 6514: 4a5d lsri r2, r2, 29 + 6516: 3104 movi r1, 4 + 6518: 604a subu r1, r2 + 651a: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 651c: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 651e: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 6522: 0c35 bf 0x658c // 658c + 6524: 3a03 cmphsi r2, 4 + 6526: 0803 bt 0x652c // 652c + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动 + 6528: dc2e000d st.b r1, (r14, 0xd) + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 652c: 3200 movi r2, 0 + 652e: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 6532: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 6536: 8342 ld.b r2, (r3, 0x2) + 6538: 425f lsli r2, r2, 31 + 653a: 4a5f lsri r2, r2, 31 + 653c: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 653e: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 6540: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6544: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 6546: 3200 movi r2, 0 + 6548: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 654c: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 6550: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6554: 0802 bt 0x6558 // 6558 + 6556: 3323 movi r3, 35 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6558: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 655a: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 655e: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 6560: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6562: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 6564: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6568: e3ffff54 bsr 0x6410 // 6410 + + MCU485_SendData(SendData, 24); + 656c: 3118 movi r1, 24 + 656e: 6c3b mov r0, r14 + 6570: e3ffeaa8 bsr 0x3ac0 // 3ac0 + +} + 6574: 1406 addi r14, r14, 24 + 6576: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 6578: 3120 movi r1, 32 + 657a: 644a cmpne r2, r1 + 657c: 0803 bt 0x6582 // 6582 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 657e: 3202 movi r2, 2 + 6580: 07bd br 0x64fa // 64fa + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 6582: 3140 movi r1, 64 + 6584: 644a cmpne r2, r1 + 6586: 0bbc bt 0x64fe // 64fe + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 6588: 3203 movi r2, 3 + 658a: 07b8 br 0x64fa // 64fa + SendData[13] = 0x00; // + 658c: 3200 movi r2, 0 + 658e: dc4e000d st.b r2, (r14, 0xd) + break; + 6592: 07cd br 0x652c // 652c + 6594: 20000350 .long 0x20000350 + 6598: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Rs485AskCtrlSend: + +0000659c : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 659c: 14d0 push r15 + 659e: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 65a0: 3355 movi r3, 85 + 65a2: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 65a6: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 65aa: 3300 movi r3, 0 + 65ac: 2b11 subi r3, 18 + 65ae: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 65b2: 3307 movi r3, 7 + 65b4: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 65b8: 3303 movi r3, 3 + 65ba: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 65be: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 65c0: 106a lrw r3, 0x20000350 // 65e8 + 65c2: 8360 ld.b r3, (r3, 0x0) + 65c4: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 65c8: 8066 ld.b r3, (r0, 0x6) + 65ca: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 65ce: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 65d0: 3003 movi r0, 3 + 65d2: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 65d4: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 65d8: e3ffff1c bsr 0x6410 // 6410 + + MCU485_SendData(SendData, 10); + 65dc: 310a movi r1, 10 + 65de: 6c3b mov r0, r14 + 65e0: e3ffea70 bsr 0x3ac0 // 3ac0 + +} + 65e4: 1403 addi r14, r14, 12 + 65e6: 1490 pop r15 + 65e8: 20000350 .long 0x20000350 + +Disassembly of section .text.Rs485AskReadSend: + +000065ec : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 65ec: 14d0 push r15 + 65ee: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 65f0: 3355 movi r3, 85 + 65f2: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 65f6: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 65fa: 3300 movi r3, 0 + 65fc: 2b11 subi r3, 18 + 65fe: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x08; //长度 + 6602: 3308 movi r3, 8 + 6604: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 6608: 3303 movi r3, 3 + 660a: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 660e: 3108 movi r1, 8 + SendData[5] = g_eeprom.dev_addr; + 6610: 106b lrw r3, 0x20000350 // 663c + 6612: 8360 ld.b r3, (r3, 0x0) + 6614: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6]; + 6618: 8066 ld.b r3, (r0, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 661a: 3003 movi r0, 3 + SendData[6] = Recdata[6]; + 661c: dc6e0006 st.b r3, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6620: 6038 addu r0, r14 + SendData[7] = Project_FW_Version; + 6622: 3301 movi r3, 1 + 6624: dc6e0007 st.b r3, (r14, 0x7) + SendData[8] = Project_HW_Version; + 6628: dc6e0008 st.b r3, (r14, 0x8) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 662c: e3fffef2 bsr 0x6410 // 6410 + + MCU485_SendData(SendData, 11); + 6630: 310b movi r1, 11 + 6632: 6c3b mov r0, r14 + 6634: e3ffea46 bsr 0x3ac0 // 3ac0 + +} + 6638: 1403 addi r14, r14, 12 + 663a: 1490 pop r15 + 663c: 20000350 .long 0x20000350 + +Disassembly of section .text.Temp_Rec_Analysis: + +00006640 : + + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 6640: 14d2 push r4-r5, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 6642: 3300 movi r3, 0 + 6644: 2b08 subi r3, 9 + 6646: 60c4 addu r3, r1 + 6648: 74cd zexth r3, r3 + 664a: 3b01 cmphsi r3, 2 +{ + 664c: 6d03 mov r4, r0 + if(((0x09 != Len) && (0x0A != Len)) + 664e: 08a3 bt 0x6794 // 6794 + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 6650: 8060 ld.b r3, (r0, 0x0) + 6652: 3255 movi r2, 85 + 6654: 648e cmpne r3, r2 + 6656: 089f bt 0x6794 // 6794 + 6658: 8041 ld.b r2, (r0, 0x1) + 665a: 64ca cmpne r2, r3 + 665c: 089c bt 0x6794 // 6794 + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 665e: 8042 ld.b r2, (r0, 0x2) + 6660: 33ee movi r3, 238 + 6662: 64ca cmpne r2, r3 + 6664: 0898 bt 0x6794 // 6794 + 6666: 8063 ld.b r3, (r0, 0x3) + 6668: 5baa addi r5, r3, 3 + 666a: 6456 cmpne r5, r1 + 666c: 0894 bt 0x6794 // 6794 + || (Tem_Type != RecData[4]) + 666e: 8044 ld.b r2, (r0, 0x4) + 6670: 3a43 cmpnei r2, 3 + 6672: 0891 bt 0x6794 // 6794 + || (g_eeprom.dev_addr != RecData[5]) + 6674: 1249 lrw r2, 0x20000350 // 6798 + 6676: 8220 ld.b r1, (r2, 0x0) + 6678: 8045 ld.b r2, (r0, 0x5) + 667a: 6486 cmpne r1, r2 + 667c: 088c bt 0x6794 // 6794 + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 667e: 2b01 subi r3, 2 + 6680: 744d zexth r1, r3 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 6682: 6150 addu r5, r4 + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 6684: 2002 addi r0, 3 + 6686: e3fffeeb bsr 0x645c // 645c + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 668a: 5d63 subi r3, r5, 1 + 668c: 8360 ld.b r3, (r3, 0x0) + 668e: 2d01 subi r5, 2 + 6690: 4368 lsli r3, r3, 8 + 6692: 8540 ld.b r2, (r5, 0x0) + 6694: 60c8 addu r3, r2 + 6696: 64c2 cmpne r0, r3 + 6698: 087e bt 0x6794 // 6794 + { + switch(RecData[6]) + 669a: 8466 ld.b r3, (r4, 0x6) + 669c: 3b4a cmpnei r3, 10 + 669e: 0c27 bf 0x66ec // 66ec + 66a0: 3b0a cmphsi r3, 11 + 66a2: 080e bt 0x66be // 66be + 66a4: 2b00 subi r3, 1 + 66a6: 3203 movi r2, 3 + 66a8: 64c8 cmphs r2, r3 + 66aa: 0824 bt 0x66f2 // 66f2 + TempCtrl.CardState = 0x01; + } + } + break; + } + switch(RecData[6]) + 66ac: 8406 ld.b r0, (r4, 0x6) + 66ae: 2800 subi r0, 1 + 66b0: 3803 cmphsi r0, 4 + 66b2: 082d bt 0x670c // 670c + 66b4: 8467 ld.b r3, (r4, 0x7) + 66b6: e3ffd323 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 66ba: 3824 .short 0x3824 + 66bc: 5a50 .short 0x5a50 + switch(RecData[6]) + 66be: 3b50 cmpnei r3, 16 + 66c0: 0c1d bf 0x66fa // 66fa + 66c2: 3b51 cmpnei r3, 17 + 66c4: 0bf4 bt 0x66ac // 66ac + Rs485AskCtrlSend(RecData); + 66c6: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 66c8: 11b5 lrw r5, 0x200003d4 // 679c + Rs485AskCtrlSend(RecData); + 66ca: e3ffff69 bsr 0x659c // 659c + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 66ce: 855a ld.b r2, (r5, 0x1a) + 66d0: 1134 lrw r1, 0x7e84 // 67a0 + 66d2: 3000 movi r0, 0 + 66d4: e3ffea3a bsr 0x3b48 // 3b48 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 66d8: 8467 ld.b r3, (r4, 0x7) + 66da: 855a ld.b r2, (r5, 0x1a) + 66dc: 64ca cmpne r2, r3 + 66de: 0fe7 bf 0x66ac // 66ac + if(TempCtrl.CardEn == 0x00) + 66e0: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 66e2: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 66e4: 0be4 bt 0x66ac // 66ac + TempCtrl.CardState = 0x01; + 66e6: 3301 movi r3, 1 + 66e8: a578 st.b r3, (r5, 0x18) + 66ea: 07e1 br 0x66ac // 66ac + Rs485AskCycleSend(); + 66ec: e3fffee2 bsr 0x64b0 // 64b0 + 66f0: 07de br 0x66ac // 66ac + Rs485AskCtrlSend(RecData); + 66f2: 6c13 mov r0, r4 + 66f4: e3ffff54 bsr 0x659c // 659c + 66f8: 07da br 0x66ac // 66ac + Rs485AskReadSend(RecData); //版本号查询 + 66fa: 6c13 mov r0, r4 + 66fc: e3ffff78 bsr 0x65ec // 65ec + 6700: 07d6 br 0x66ac // 66ac + { + case 0x01: //开关机命令 + switch(RecData[7]) + 6702: 74cc zextb r3, r3 + 6704: 3b40 cmpnei r3, 0 + 6706: 0c05 bf 0x6710 // 6710 + 6708: 3b41 cmpnei r3, 1 + 670a: 0c09 bf 0x671c // 671c + break; + } + break; + } + + return ret; + 670c: 3000 movi r0, 0 + 670e: 0444 br 0x6796 // 6796 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6710: 1143 lrw r2, 0x200003d4 // 679c + 6712: 8262 ld.b r3, (r2, 0x2) + 6714: 317f movi r1, 127 + 6716: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6718: a262 st.b r3, (r2, 0x2) + 671a: 07f9 br 0x670c // 670c + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 671c: 1120 lrw r1, 0x200003d4 // 679c + 671e: 3200 movi r2, 0 + 6720: 8162 ld.b r3, (r1, 0x2) + 6722: 2a7f subi r2, 128 + 6724: 6cc8 or r3, r2 + 6726: a162 st.b r3, (r1, 0x2) + 6728: 07f2 br 0x670c // 670c + switch(RecData[7]) // + 672a: 74cc zextb r3, r3 + 672c: 3b42 cmpnei r3, 2 + 672e: 0c0a bf 0x6742 // 6742 + 6730: 3b43 cmpnei r3, 3 + 6732: 0c0e bf 0x674e // 674e + 6734: 3b41 cmpnei r3, 1 + 6736: 0beb bt 0x670c // 670c + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6738: 1059 lrw r2, 0x200003d4 // 679c + 673a: 8262 ld.b r3, (r2, 0x2) + 673c: 3170 movi r1, 112 + 673e: 68c5 andn r3, r1 + 6740: 07ec br 0x6718 // 6718 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6742: 1057 lrw r2, 0x200003d4 // 679c + 6744: 8262 ld.b r3, (r2, 0x2) + 6746: 3170 movi r1, 112 + 6748: 68c5 andn r3, r1 + 674a: 3ba5 bseti r3, 5 + 674c: 07e6 br 0x6718 // 6718 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 674e: 1054 lrw r2, 0x200003d4 // 679c + 6750: 8262 ld.b r3, (r2, 0x2) + 6752: 3170 movi r1, 112 + 6754: 68c5 andn r3, r1 + 6756: 3ba6 bseti r3, 6 + 6758: 07e0 br 0x6718 // 6718 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] <= TEM_MAX_SET)) //在指定温度范围内 + 675a: 74cc zextb r3, r3 + 675c: 5b53 subi r2, r3, 5 + 675e: 7488 zextb r2, r2 + 6760: 3a1e cmphsi r2, 31 + 6762: 0bd5 bt 0x670c // 670c + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 6764: 301f movi r0, 31 + 6766: 68c0 and r3, r0 + 6768: 104d lrw r2, 0x200003d4 // 679c + 676a: a261 st.b r3, (r2, 0x1) + 676c: 07d0 br 0x670c // 670c + switch(RecData[7]) //风速 + 676e: 740c zextb r0, r3 + 6770: 106b lrw r3, 0x200003d4 // 679c + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 6772: 8342 ld.b r2, (r3, 0x2) + 6774: 310e movi r1, 14 + switch(RecData[7]) //风速 + 6776: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 6778: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 677a: 080b bt 0x6790 // 6790 + 677c: e3ffd2c0 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6780: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 6784: 3aa1 bseti r2, 1 + 6786: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 6788: a342 st.b r2, (r3, 0x2) + 678a: 07c1 br 0x670c // 670c + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 678c: 3aa2 bseti r2, 2 + 678e: 07fd br 0x6788 // 6788 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 6790: 3aa1 bseti r2, 1 + 6792: 07fb br 0x6788 // 6788 + return ret = 0x01; + 6794: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 6796: 1492 pop r4-r5, r15 + 6798: 20000350 .long 0x20000350 + 679c: 200003d4 .long 0x200003d4 + 67a0: 00007e84 .long 0x00007e84 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000067a4 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 67a4: 14d2 push r4-r5, r15 + 67a6: 6d03 mov r4, r0 + 67a8: 6d47 mov r5, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 67aa: e3ffff4b bsr 0x6640 // 6640 + 67ae: 3840 cmpnei r0, 0 + 67b0: 0803 bt 0x67b6 // 67b6 + { + return ret = 1; + } + } + + return ret; + 67b2: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 67b4: 0409 br 0x67c6 // 67c6 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 67b6: 8440 ld.b r2, (r4, 0x0) + 67b8: 33ff movi r3, 255 + 67ba: 64ca cmpne r2, r3 + 67bc: 0c06 bf 0x67c8 // 67c8 + 67be: 8461 ld.b r3, (r4, 0x1) + 67c0: 3b48 cmpnei r3, 8 + 67c2: 0c03 bf 0x67c8 // 67c8 + return ret = 1; + 67c4: 3001 movi r0, 1 + 67c6: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 67c8: 1125 lrw r1, 0x7e93 // 685c + 67ca: 3000 movi r0, 0 + 67cc: e3ffe9be bsr 0x3b48 // 3b48 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 67d0: 3d45 cmpnei r5, 5 + 67d2: 0814 bt 0x67fa // 67fa + 67d4: 3104 movi r1, 4 + 67d6: 6c13 mov r0, r4 + 67d8: e3fffe60 bsr 0x6498 // 6498 + 67dc: 8464 ld.b r3, (r4, 0x4) + 67de: 640e cmpne r3, r0 + 67e0: 0bf2 bt 0x67c4 // 67c4 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 67e2: 1160 lrw r3, 0x200003d4 // 6860 + 67e4: 8442 ld.b r2, (r4, 0x2) + 67e6: 8338 ld.b r1, (r3, 0x18) + 67e8: 6486 cmpne r1, r2 + 67ea: 0fe4 bf 0x67b2 // 67b2 + 67ec: 833a ld.b r1, (r3, 0x1a) + 67ee: 3941 cmpnei r1, 1 + 67f0: 0be1 bt 0x67b2 // 67b2 + TempCtrl.CardState = RecData[2]; + 67f2: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 67f4: 3201 movi r2, 1 + 67f6: a359 st.b r2, (r3, 0x19) + 67f8: 07dd br 0x67b2 // 67b2 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 67fa: 3d09 cmphsi r5, 10 + 67fc: 0fe4 bf 0x67c4 // 67c4 + 67fe: 5d27 subi r1, r5, 2 + 6800: 7445 zexth r1, r1 + 6802: 6150 addu r5, r4 + 6804: 6c13 mov r0, r4 + 6806: e3fffe2b bsr 0x645c // 645c + 680a: 5d63 subi r3, r5, 1 + 680c: 8360 ld.b r3, (r3, 0x0) + 680e: 2d01 subi r5, 2 + 6810: 4368 lsli r3, r3, 8 + 6812: 8540 ld.b r2, (r5, 0x0) + 6814: 60c8 addu r3, r2 + 6816: 64c2 cmpne r0, r3 + 6818: 0bd6 bt 0x67c4 // 67c4 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 681a: 1072 lrw r3, 0x200003d4 // 6860 + 681c: 8443 ld.b r2, (r4, 0x3) + 681e: 8338 ld.b r1, (r3, 0x18) + 6820: 6486 cmpne r1, r2 + 6822: 0c07 bf 0x6830 // 6830 + 6824: 833a ld.b r1, (r3, 0x1a) + 6826: 3941 cmpnei r1, 1 + 6828: 0804 bt 0x6830 // 6830 + TempCtrl.CardState = RecData[3]; + 682a: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 682c: 3201 movi r2, 1 + 682e: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 6830: 8447 ld.b r2, (r4, 0x7) + 6832: 833b ld.b r1, (r3, 0x1b) + 6834: 6486 cmpne r1, r2 + 6836: 0c0d bf 0x6850 // 6850 + TempCtrl.SceneNo = RecData[7]; + 6838: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 683a: 104b lrw r2, 0x200000b8 // 6864 + 683c: 9240 ld.w r2, (r2, 0x0) + 683e: 4a28 lsri r1, r2, 8 + 6840: a354 st.b r2, (r3, 0x14) + 6842: a335 st.b r1, (r3, 0x15) + 6844: 4a30 lsri r1, r2, 16 + 6846: 4a58 lsri r2, r2, 24 + 6848: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 684a: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 684c: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 684e: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 6850: 835b ld.b r2, (r3, 0x1b) + 6852: 1026 lrw r1, 0x7ea5 // 6868 + 6854: 3000 movi r0, 0 + 6856: e3ffe979 bsr 0x3b48 // 3b48 + 685a: 07ac br 0x67b2 // 67b2 + 685c: 00007e93 .long 0x00007e93 + 6860: 200003d4 .long 0x200003d4 + 6864: 200000b8 .long 0x200000b8 + 6868: 00007ea5 .long 0x00007ea5 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +0000686c : + 686c: 1063 lrw r3, 0x20000058 // 6878 + 686e: 9340 ld.w r2, (r3, 0x0) + 6870: 926b ld.w r3, (r2, 0x2c) + 6872: 6c0c or r0, r3 + 6874: b20b st.w r0, (r2, 0x2c) + 6876: 783c jmp r15 + 6878: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +0000687c : + 687c: 14c1 push r4 + 687e: 1069 lrw r3, 0x20000058 // 68a0 + 6880: 3840 cmpnei r0, 0 + 6882: 9380 ld.w r4, (r3, 0x0) + 6884: 9400 ld.w r0, (r4, 0x0) + 6886: 0c0b bf 0x689c // 689c + 6888: 38a0 bseti r0, 0 + 688a: b400 st.w r0, (r4, 0x0) + 688c: 9360 ld.w r3, (r3, 0x0) + 688e: 4248 lsli r2, r2, 8 + 6890: 4122 lsli r1, r1, 2 + 6892: 9300 ld.w r0, (r3, 0x0) + 6894: 6c48 or r1, r2 + 6896: 6c40 or r1, r0 + 6898: b320 st.w r1, (r3, 0x0) + 689a: 1481 pop r4 + 689c: 3880 bclri r0, 0 + 689e: 07f6 br 0x688a // 688a + 68a0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +000068a4 : + 68a4: 14c4 push r4-r7 + 68a6: 1429 subi r14, r14, 36 + 68a8: b840 st.w r2, (r14, 0x0) + 68aa: 984d ld.w r2, (r14, 0x34) + 68ac: b841 st.w r2, (r14, 0x4) + 68ae: 984e ld.w r2, (r14, 0x38) + 68b0: b842 st.w r2, (r14, 0x8) + 68b2: 984f ld.w r2, (r14, 0x3c) + 68b4: b843 st.w r2, (r14, 0xc) + 68b6: 9850 ld.w r2, (r14, 0x40) + 68b8: 9895 ld.w r4, (r14, 0x54) + 68ba: b844 st.w r2, (r14, 0x10) + 68bc: 9853 ld.w r2, (r14, 0x4c) + 68be: b845 st.w r2, (r14, 0x14) + 68c0: b887 st.w r4, (r14, 0x1c) + 68c2: 9854 ld.w r2, (r14, 0x50) + 68c4: 1c11 addi r4, r14, 68 + 68c6: b846 st.w r2, (r14, 0x18) + 68c8: 8c80 ld.h r4, (r4, 0x0) + 68ca: 1a15 addi r2, r14, 84 + 68cc: 1d12 addi r5, r14, 72 + 68ce: 8244 ld.b r2, (r2, 0x4) + 68d0: 3c40 cmpnei r4, 0 + 68d2: 8dc0 ld.h r6, (r5, 0x0) + 68d4: b848 st.w r2, (r14, 0x20) + 68d6: 0813 bt 0x68fc // 68fc + 68d8: 105f lrw r2, 0x2000004c // 6954 + 68da: 35f0 movi r5, 240 + 68dc: 92e0 ld.w r7, (r2, 0x0) + 68de: 9740 ld.w r2, (r7, 0x0) + 68e0: 45a4 lsli r5, r5, 4 + 68e2: 6895 andn r2, r5 + 68e4: 3aab bseti r2, 11 + 68e6: b740 st.w r2, (r7, 0x0) + 68e8: 3502 movi r5, 2 + 68ea: 105c lrw r2, 0x20000050 // 6958 + 68ec: 3e41 cmpnei r6, 1 + 68ee: 9240 ld.w r2, (r2, 0x0) + 68f0: b2a0 st.w r5, (r2, 0x0) + 68f2: 0828 bt 0x6942 // 6942 + 68f4: 92a4 ld.w r5, (r2, 0x10) + 68f6: 3db8 bseti r5, 24 + 68f8: 3db9 bseti r5, 25 + 68fa: b2a4 st.w r5, (r2, 0x10) + 68fc: 1058 lrw r2, 0x20000058 // 695c + 68fe: 448d lsli r4, r4, 13 + 6900: 92a0 ld.w r5, (r2, 0x0) + 6902: 9541 ld.w r2, (r5, 0x4) + 6904: 3200 movi r2, 0 + 6906: b541 st.w r2, (r5, 0x4) + 6908: 9541 ld.w r2, (r5, 0x4) + 690a: 98c7 ld.w r6, (r14, 0x1c) + 690c: 6c98 or r2, r6 + 690e: 98c6 ld.w r6, (r14, 0x18) + 6910: 6c98 or r2, r6 + 6912: 98c5 ld.w r6, (r14, 0x14) + 6914: 6c98 or r2, r6 + 6916: 98c8 ld.w r6, (r14, 0x20) + 6918: 46d8 lsli r6, r6, 24 + 691a: 6c98 or r2, r6 + 691c: 98c4 ld.w r6, (r14, 0x10) + 691e: 6c98 or r2, r6 + 6920: 98c3 ld.w r6, (r14, 0xc) + 6922: 6c98 or r2, r6 + 6924: 98c2 ld.w r6, (r14, 0x8) + 6926: 6c98 or r2, r6 + 6928: 98c1 ld.w r6, (r14, 0x4) + 692a: 6c98 or r2, r6 + 692c: 6c48 or r1, r2 + 692e: 9840 ld.w r2, (r14, 0x0) + 6930: 6c04 or r0, r1 + 6932: 4242 lsli r2, r2, 2 + 6934: 6c08 or r0, r2 + 6936: 6d00 or r4, r0 + 6938: 4367 lsli r3, r3, 7 + 693a: 6cd0 or r3, r4 + 693c: b561 st.w r3, (r5, 0x4) + 693e: 1409 addi r14, r14, 36 + 6940: 1484 pop r4-r7 + 6942: 3e40 cmpnei r6, 0 + 6944: 0bdc bt 0x68fc // 68fc + 6946: 9264 ld.w r3, (r2, 0x10) + 6948: 3b98 bclri r3, 24 + 694a: 3b99 bclri r3, 25 + 694c: 3bb8 bseti r3, 24 + 694e: b264 st.w r3, (r2, 0x10) + 6950: 3300 movi r3, 0 + 6952: 07d5 br 0x68fc // 68fc + 6954: 2000004c .long 0x2000004c + 6958: 20000050 .long 0x20000050 + 695c: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00006960 : + 6960: 14d4 push r4-r7, r15 + 6962: 1422 subi r14, r14, 8 + 6964: 1269 lrw r3, 0x2000004c // 6a88 + 6966: 31f0 movi r1, 240 + 6968: 9360 ld.w r3, (r3, 0x0) + 696a: 9340 ld.w r2, (r3, 0x0) + 696c: 4130 lsli r1, r1, 16 + 696e: 6885 andn r2, r1 + 6970: 3ab4 bseti r2, 20 + 6972: 3ab7 bseti r2, 23 + 6974: b340 st.w r2, (r3, 0x0) + 6976: 35f0 movi r5, 240 + 6978: 1245 lrw r2, 0x2000010c // 6a8c + 697a: 36f0 movi r6, 240 + 697c: 9240 ld.w r2, (r2, 0x0) + 697e: b841 st.w r2, (r14, 0x4) + 6980: 3400 movi r4, 0 + 6982: 1244 lrw r2, 0x20000048 // 6a90 + 6984: 45ac lsli r5, r5, 12 + 6986: 9240 ld.w r2, (r2, 0x0) + 6988: b820 st.w r1, (r14, 0x0) + 698a: 46c8 lsli r6, r6, 8 + 698c: 3701 movi r7, 1 + 698e: 71d0 lsl r7, r4 + 6990: 9821 ld.w r1, (r14, 0x4) + 6992: 69c4 and r7, r1 + 6994: 3f40 cmpnei r7, 0 + 6996: 7410 zextb r0, r4 + 6998: 0c1b bf 0x69ce // 69ce + 699a: 2800 subi r0, 1 + 699c: 380f cmphsi r0, 16 + 699e: 080b bt 0x69b4 // 69b4 + 69a0: e3ffd1ae bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 69a4: 27201a0f .long 0x27201a0f + 69a8: 3d38312c .long 0x3d38312c + 69ac: 56514a44 .long 0x56514a44 + 69b0: 6c67615b .long 0x6c67615b + 69b4: 9200 ld.w r0, (r2, 0x0) + 69b6: 37f0 movi r7, 240 + 69b8: 681d andn r0, r7 + 69ba: 38a4 bseti r0, 4 + 69bc: 38a7 bseti r0, 7 + 69be: b200 st.w r0, (r2, 0x0) + 69c0: 0407 br 0x69ce // 69ce + 69c2: 9300 ld.w r0, (r3, 0x0) + 69c4: 370f movi r7, 15 + 69c6: 681d andn r0, r7 + 69c8: 38a0 bseti r0, 0 + 69ca: 38a3 bseti r0, 3 + 69cc: b300 st.w r0, (r3, 0x0) + 69ce: 2400 addi r4, 1 + 69d0: 3c51 cmpnei r4, 17 + 69d2: 0bdd bt 0x698c // 698c + 69d4: 1402 addi r14, r14, 8 + 69d6: 1494 pop r4-r7, r15 + 69d8: 9300 ld.w r0, (r3, 0x0) + 69da: 37f0 movi r7, 240 + 69dc: 681d andn r0, r7 + 69de: 38a4 bseti r0, 4 + 69e0: 38a7 bseti r0, 7 + 69e2: 07f5 br 0x69cc // 69cc + 69e4: 37f0 movi r7, 240 + 69e6: 9300 ld.w r0, (r3, 0x0) + 69e8: 47e4 lsli r7, r7, 4 + 69ea: 681d andn r0, r7 + 69ec: 38a8 bseti r0, 8 + 69ee: 38ab bseti r0, 11 + 69f0: 07ee br 0x69cc // 69cc + 69f2: 9300 ld.w r0, (r3, 0x0) + 69f4: 6819 andn r0, r6 + 69f6: 38ac bseti r0, 12 + 69f8: 38af bseti r0, 15 + 69fa: 07e9 br 0x69cc // 69cc + 69fc: 9300 ld.w r0, (r3, 0x0) + 69fe: 6815 andn r0, r5 + 6a00: 38b0 bseti r0, 16 + 6a02: 38b3 bseti r0, 19 + 6a04: 07e4 br 0x69cc // 69cc + 6a06: 37f0 movi r7, 240 + 6a08: 9200 ld.w r0, (r2, 0x0) + 6a0a: 47e4 lsli r7, r7, 4 + 6a0c: 681d andn r0, r7 + 6a0e: 38a8 bseti r0, 8 + 6a10: 38ab bseti r0, 11 + 6a12: 07d6 br 0x69be // 69be + 6a14: 9200 ld.w r0, (r2, 0x0) + 6a16: 6819 andn r0, r6 + 6a18: 38ac bseti r0, 12 + 6a1a: 38af bseti r0, 15 + 6a1c: 07d1 br 0x69be // 69be + 6a1e: 9301 ld.w r0, (r3, 0x4) + 6a20: 370f movi r7, 15 + 6a22: 681d andn r0, r7 + 6a24: 38a0 bseti r0, 0 + 6a26: 38a3 bseti r0, 3 + 6a28: b301 st.w r0, (r3, 0x4) + 6a2a: 07d2 br 0x69ce // 69ce + 6a2c: 9301 ld.w r0, (r3, 0x4) + 6a2e: 37f0 movi r7, 240 + 6a30: 681d andn r0, r7 + 6a32: 38a4 bseti r0, 4 + 6a34: 38a7 bseti r0, 7 + 6a36: 07f9 br 0x6a28 // 6a28 + 6a38: 37f0 movi r7, 240 + 6a3a: 9301 ld.w r0, (r3, 0x4) + 6a3c: 47e4 lsli r7, r7, 4 + 6a3e: 681d andn r0, r7 + 6a40: 38a8 bseti r0, 8 + 6a42: 38ab bseti r0, 11 + 6a44: 07f2 br 0x6a28 // 6a28 + 6a46: 9301 ld.w r0, (r3, 0x4) + 6a48: 6819 andn r0, r6 + 6a4a: 38ac bseti r0, 12 + 6a4c: 38af bseti r0, 15 + 6a4e: 07ed br 0x6a28 // 6a28 + 6a50: 9301 ld.w r0, (r3, 0x4) + 6a52: 6815 andn r0, r5 + 6a54: 38b0 bseti r0, 16 + 6a56: 38b3 bseti r0, 19 + 6a58: 07e8 br 0x6a28 // 6a28 + 6a5a: 9301 ld.w r0, (r3, 0x4) + 6a5c: 9820 ld.w r1, (r14, 0x0) + 6a5e: 6805 andn r0, r1 + 6a60: 38b4 bseti r0, 20 + 6a62: 38b7 bseti r0, 23 + 6a64: 07e2 br 0x6a28 // 6a28 + 6a66: 9200 ld.w r0, (r2, 0x0) + 6a68: 370f movi r7, 15 + 6a6a: 681d andn r0, r7 + 6a6c: 38a0 bseti r0, 0 + 6a6e: 38a3 bseti r0, 3 + 6a70: 07a7 br 0x69be // 69be + 6a72: 9200 ld.w r0, (r2, 0x0) + 6a74: 6815 andn r0, r5 + 6a76: 38b0 bseti r0, 16 + 6a78: 38b3 bseti r0, 19 + 6a7a: 07a2 br 0x69be // 69be + 6a7c: 9200 ld.w r0, (r2, 0x0) + 6a7e: 9820 ld.w r1, (r14, 0x0) + 6a80: 6805 andn r0, r1 + 6a82: 38b4 bseti r0, 20 + 6a84: 38b7 bseti r0, 23 + 6a86: 079c br 0x69be // 69be + 6a88: 2000004c .long 0x2000004c + 6a8c: 2000010c .long 0x2000010c + 6a90: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +00006a94 : + 6a94: 14c4 push r4-r7 + 6a96: 1072 lrw r3, 0x20000054 // 6adc + 6a98: 1012 lrw r0, 0x200008d2 // 6ae0 + 6a9a: 1093 lrw r4, 0x20000743 // 6ae4 + 6a9c: 6d83 mov r6, r0 + 6a9e: 93a0 ld.w r5, (r3, 0x0) + 6aa0: 3300 movi r3, 0 + 6aa2: 4342 lsli r2, r3, 2 + 6aa4: 6094 addu r2, r5 + 6aa6: 9220 ld.w r1, (r2, 0x0) + 6aa8: 4341 lsli r2, r3, 1 + 6aaa: 6080 addu r2, r0 + 6aac: 7445 zexth r1, r1 + 6aae: aa20 st.h r1, (r2, 0x0) + 6ab0: 8440 ld.b r2, (r4, 0x0) + 6ab2: 3a41 cmpnei r2, 1 + 6ab4: 080f bt 0x6ad2 // 6ad2 + 6ab6: 3300 movi r3, 0 + 6ab8: 10ec lrw r7, 0x2000062c // 6ae8 + 6aba: 4341 lsli r2, r3, 1 + 6abc: 5e28 addu r1, r6, r2 + 6abe: 8920 ld.h r1, (r1, 0x0) + 6ac0: 2300 addi r3, 1 + 6ac2: 7445 zexth r1, r1 + 6ac4: 609c addu r2, r7 + 6ac6: 3b51 cmpnei r3, 17 + 6ac8: aa20 st.h r1, (r2, 0x0) + 6aca: 0bf8 bt 0x6aba // 6aba + 6acc: 3300 movi r3, 0 + 6ace: a460 st.b r3, (r4, 0x0) + 6ad0: 3311 movi r3, 17 + 6ad2: 2300 addi r3, 1 + 6ad4: 74cc zextb r3, r3 + 6ad6: 3b10 cmphsi r3, 17 + 6ad8: 0fe5 bf 0x6aa2 // 6aa2 + 6ada: 1484 pop r4-r7 + 6adc: 20000054 .long 0x20000054 + 6ae0: 200008d2 .long 0x200008d2 + 6ae4: 20000743 .long 0x20000743 + 6ae8: 2000062c .long 0x2000062c + +Disassembly of section .text.TKEYIntHandler: + +00006aec : + 6aec: 1460 nie + 6aee: 1462 ipush + 6af0: 14d1 push r4, r15 + 6af2: 109e lrw r4, 0x20000070 // 6b68 + 6af4: 9460 ld.w r3, (r4, 0x0) + 6af6: 3b40 cmpnei r3, 0 + 6af8: 080b bt 0x6b0e // 6b0e + 6afa: 3301 movi r3, 1 + 6afc: b460 st.w r3, (r4, 0x0) + 6afe: 107c lrw r3, 0x200006c0 // 6b6c + 6b00: 8360 ld.b r3, (r3, 0x0) + 6b02: 3b41 cmpnei r3, 1 + 6b04: 0805 bt 0x6b0e // 6b0e + 6b06: e3ffffc7 bsr 0x6a94 // 6a94 + 6b0a: 3301 movi r3, 1 + 6b0c: a464 st.b r3, (r4, 0x4) + 6b0e: 1079 lrw r3, 0x20000058 // 6b70 + 6b10: 3101 movi r1, 1 + 6b12: 9360 ld.w r3, (r3, 0x0) + 6b14: 934a ld.w r2, (r3, 0x28) + 6b16: 6884 and r2, r1 + 6b18: 3a40 cmpnei r2, 0 + 6b1a: 0c02 bf 0x6b1e // 6b1e + 6b1c: b32c st.w r1, (r3, 0x30) + 6b1e: 934a ld.w r2, (r3, 0x28) + 6b20: 3102 movi r1, 2 + 6b22: 6884 and r2, r1 + 6b24: 3a40 cmpnei r2, 0 + 6b26: 0c02 bf 0x6b2a // 6b2a + 6b28: b32c st.w r1, (r3, 0x30) + 6b2a: 934a ld.w r2, (r3, 0x28) + 6b2c: 3104 movi r1, 4 + 6b2e: 6884 and r2, r1 + 6b30: 3a40 cmpnei r2, 0 + 6b32: 0c02 bf 0x6b36 // 6b36 + 6b34: b32c st.w r1, (r3, 0x30) + 6b36: 934a ld.w r2, (r3, 0x28) + 6b38: 3108 movi r1, 8 + 6b3a: 6884 and r2, r1 + 6b3c: 3a40 cmpnei r2, 0 + 6b3e: 0c02 bf 0x6b42 // 6b42 + 6b40: b32c st.w r1, (r3, 0x30) + 6b42: 934a ld.w r2, (r3, 0x28) + 6b44: 3110 movi r1, 16 + 6b46: 6884 and r2, r1 + 6b48: 3a40 cmpnei r2, 0 + 6b4a: 0c02 bf 0x6b4e // 6b4e + 6b4c: b32c st.w r1, (r3, 0x30) + 6b4e: 934a ld.w r2, (r3, 0x28) + 6b50: 3120 movi r1, 32 + 6b52: 6884 and r2, r1 + 6b54: 3a40 cmpnei r2, 0 + 6b56: 0c02 bf 0x6b5a // 6b5a + 6b58: b32c st.w r1, (r3, 0x30) + 6b5a: d9ee2001 ld.w r15, (r14, 0x4) + 6b5e: 9880 ld.w r4, (r14, 0x0) + 6b60: 1402 addi r14, r14, 8 + 6b62: 1463 ipop + 6b64: 1461 nir + 6b66: 0000 bkpt + 6b68: 20000070 .long 0x20000070 + 6b6c: 200006c0 .long 0x200006c0 + 6b70: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00006b74 : + 6b74: 14c2 push r4-r5 + 6b76: 3200 movi r2, 0 + 6b78: 3000 movi r0, 0 + 6b7a: 1088 lrw r4, 0x20000760 // 6b98 + 6b7c: 3501 movi r5, 1 + 6b7e: 3120 movi r1, 32 + 6b80: 9460 ld.w r3, (r4, 0x0) + 6b82: 70c9 lsr r3, r2 + 6b84: 68d4 and r3, r5 + 6b86: 3b40 cmpnei r3, 0 + 6b88: 0c02 bf 0x6b8c // 6b8c + 6b8a: 2000 addi r0, 1 + 6b8c: 2200 addi r2, 1 + 6b8e: 644a cmpne r2, r1 + 6b90: 0bf8 bt 0x6b80 // 6b80 + 6b92: 7400 zextb r0, r0 + 6b94: 1482 pop r4-r5 + 6b96: 0000 bkpt + 6b98: 20000760 .long 0x20000760 + +Disassembly of section .text.TK_Baseline_prog: + +00006b9c : + 6b9c: 14c4 push r4-r7 + 6b9e: 1423 subi r14, r14, 12 + 6ba0: 1079 lrw r3, 0x20000058 // 6c04 + 6ba2: 105a lrw r2, 0x2000062c // 6c08 + 6ba4: 10ba lrw r5, 0x20000070 // 6c0c + 6ba6: b842 st.w r2, (r14, 0x8) + 6ba8: 9360 ld.w r3, (r3, 0x0) + 6baa: b860 st.w r3, (r14, 0x0) + 6bac: 1079 lrw r3, 0x20000054 // 6c10 + 6bae: 9360 ld.w r3, (r3, 0x0) + 6bb0: b861 st.w r3, (r14, 0x4) + 6bb2: 3306 movi r3, 6 + 6bb4: 3201 movi r2, 1 + 6bb6: 9820 ld.w r1, (r14, 0x0) + 6bb8: b142 st.w r2, (r1, 0x8) + 6bba: 3200 movi r2, 0 + 6bbc: b540 st.w r2, (r5, 0x0) + 6bbe: 9540 ld.w r2, (r5, 0x0) + 6bc0: 3a40 cmpnei r2, 0 + 6bc2: 0ffe bf 0x6bbe // 6bbe + 6bc4: 6c03 mov r0, r0 + 6bc6: 3200 movi r2, 0 + 6bc8: 10d3 lrw r6, 0x200008d2 // 6c14 + 6bca: 4202 lsli r0, r2, 2 + 6bcc: 9821 ld.w r1, (r14, 0x4) + 6bce: 6004 addu r0, r1 + 6bd0: 9080 ld.w r4, (r0, 0x0) + 6bd2: 4221 lsli r1, r2, 1 + 6bd4: 98e2 ld.w r7, (r14, 0x8) + 6bd6: 61c4 addu r7, r1 + 6bd8: 7511 zexth r4, r4 + 6bda: af80 st.h r4, (r7, 0x0) + 6bdc: 9000 ld.w r0, (r0, 0x0) + 6bde: 2200 addi r2, 1 + 6be0: 7401 zexth r0, r0 + 6be2: 6058 addu r1, r6 + 6be4: 3a51 cmpnei r2, 17 + 6be6: a900 st.h r0, (r1, 0x0) + 6be8: 0bf1 bt 0x6bca // 6bca + 6bea: 2b00 subi r3, 1 + 6bec: 74cc zextb r3, r3 + 6bee: 3b40 cmpnei r3, 0 + 6bf0: 0be2 bt 0x6bb4 // 6bb4 + 6bf2: 106a lrw r3, 0x200006c0 // 6c18 + 6bf4: 3201 movi r2, 1 + 6bf6: a340 st.b r2, (r3, 0x0) + 6bf8: 3200 movi r2, 0 + 6bfa: 1069 lrw r3, 0x20000849 // 6c1c + 6bfc: a340 st.b r2, (r3, 0x0) + 6bfe: 1403 addi r14, r14, 12 + 6c00: 1484 pop r4-r7 + 6c02: 0000 bkpt + 6c04: 20000058 .long 0x20000058 + 6c08: 2000062c .long 0x2000062c + 6c0c: 20000070 .long 0x20000070 + 6c10: 20000054 .long 0x20000054 + 6c14: 200008d2 .long 0x200008d2 + 6c18: 200006c0 .long 0x200006c0 + 6c1c: 20000849 .long 0x20000849 + +Disassembly of section .text.TK_Scan_Start: + +00006c20 : + 6c20: 1046 lrw r2, 0x20000070 // 6c38 + 6c22: 8264 ld.b r3, (r2, 0x4) + 6c24: 74cc zextb r3, r3 + 6c26: 3b41 cmpnei r3, 1 + 6c28: 0807 bt 0x6c36 // 6c36 + 6c2a: 1025 lrw r1, 0x20000058 // 6c3c + 6c2c: 9120 ld.w r1, (r1, 0x0) + 6c2e: b162 st.w r3, (r1, 0x8) + 6c30: 3300 movi r3, 0 + 6c32: b260 st.w r3, (r2, 0x0) + 6c34: a264 st.b r3, (r2, 0x4) + 6c36: 783c jmp r15 + 6c38: 20000070 .long 0x20000070 + 6c3c: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00006c40 : + 6c40: 14d4 push r4-r7, r15 + 6c42: 1425 subi r14, r14, 20 + 6c44: 1271 lrw r3, 0x20000108 // 6d88 + 6c46: 8360 ld.b r3, (r3, 0x0) + 6c48: b860 st.w r3, (r14, 0x0) + 6c4a: 3400 movi r4, 0 + 6c4c: 1270 lrw r3, 0x200000dc // 6d8c + 6c4e: 8360 ld.b r3, (r3, 0x0) + 6c50: b861 st.w r3, (r14, 0x4) + 6c52: 12f0 lrw r7, 0x200006d6 // 6d90 + 6c54: 1270 lrw r3, 0x200000e5 // 6d94 + 6c56: 83a0 ld.b r5, (r3, 0x0) + 6c58: 1270 lrw r3, 0x200000e4 // 6d98 + 6c5a: 8360 ld.b r3, (r3, 0x0) + 6c5c: b862 st.w r3, (r14, 0x8) + 6c5e: 6d9f mov r6, r7 + 6c60: 126f lrw r3, 0x200008d2 // 6d9c + 6c62: b863 st.w r3, (r14, 0xc) + 6c64: 4461 lsli r3, r4, 1 + 6c66: 9843 ld.w r2, (r14, 0xc) + 6c68: 608c addu r2, r3 + 6c6a: 122e lrw r1, 0x2000062c // 6da0 + 6c6c: 604c addu r1, r3 + 6c6e: 8a40 ld.h r2, (r2, 0x0) + 6c70: 8920 ld.h r1, (r1, 0x0) + 6c72: 6086 subu r2, r1 + 6c74: 748b sexth r2, r2 + 6c76: 5f2c addu r1, r7, r3 + 6c78: a940 st.h r2, (r1, 0x0) + 6c7a: 8940 ld.h r2, (r1, 0x0) + 6c7c: 748b sexth r2, r2 + 6c7e: 3adf btsti r2, 31 + 6c80: 1249 lrw r2, 0x2000088e // 6da4 + 6c82: 608c addu r2, r3 + 6c84: 0c37 bf 0x6cf2 // 6cf2 + 6c86: 3100 movi r1, 0 + 6c88: aa20 st.h r1, (r2, 0x0) + 6c8a: 9840 ld.w r2, (r14, 0x0) + 6c8c: 3a01 cmphsi r2, 2 + 6c8e: 0c6d bf 0x6d68 // 6d68 + 6c90: 4461 lsli r3, r4, 1 + 6c92: 5e2c addu r1, r6, r3 + 6c94: 1205 lrw r0, 0x20000136 // 6da8 + 6c96: 8940 ld.h r2, (r1, 0x0) + 6c98: 60c0 addu r3, r0 + 6c9a: 748b sexth r2, r2 + 6c9c: 8b60 ld.h r3, (r3, 0x0) + 6c9e: 648d cmplt r3, r2 + 6ca0: 9840 ld.w r2, (r14, 0x0) + 6ca2: 7cc8 mult r3, r2 + 6ca4: 0c2a bf 0x6cf8 // 6cf8 + 6ca6: 8940 ld.h r2, (r1, 0x0) + 6ca8: 748b sexth r2, r2 + 6caa: 64c9 cmplt r2, r3 + 6cac: 0c26 bf 0x6cf8 // 6cf8 + 6cae: 1240 lrw r2, 0x200006c4 // 6dac + 6cb0: 6090 addu r2, r4 + 6cb2: 8260 ld.b r3, (r2, 0x0) + 6cb4: 2300 addi r3, 1 + 6cb6: 74cc zextb r3, r3 + 6cb8: a260 st.b r3, (r2, 0x0) + 6cba: 3100 movi r1, 0 + 6cbc: 117d lrw r3, 0x200006aa // 6db0 + 6cbe: 60d0 addu r3, r4 + 6cc0: a320 st.b r1, (r3, 0x0) + 6cc2: 117d lrw r3, 0x20000786 // 6db4 + 6cc4: 60d0 addu r3, r4 + 6cc6: a320 st.b r1, (r3, 0x0) + 6cc8: 117c lrw r3, 0x20000800 // 6db8 + 6cca: 60d0 addu r3, r4 + 6ccc: a320 st.b r1, (r3, 0x0) + 6cce: 8260 ld.b r3, (r2, 0x0) + 6cd0: 9821 ld.w r1, (r14, 0x4) + 6cd2: 64c4 cmphs r1, r3 + 6cd4: 081f bt 0x6d12 // 6d12 + 6cd6: 3d40 cmpnei r5, 0 + 6cd8: 0852 bt 0x6d7c // 6d7c + 6cda: 1139 lrw r1, 0x200006bc // 6dbc + 6cdc: 9160 ld.w r3, (r1, 0x0) + 6cde: 3b40 cmpnei r3, 0 + 6ce0: 0806 bt 0x6cec // 6cec + 6ce2: 9100 ld.w r0, (r1, 0x0) + 6ce4: 3301 movi r3, 1 + 6ce6: 70d0 lsl r3, r4 + 6ce8: 6cc0 or r3, r0 + 6cea: b160 st.w r3, (r1, 0x0) + 6cec: 3300 movi r3, 0 + 6cee: a260 st.b r3, (r2, 0x0) + 6cf0: 0411 br 0x6d12 // 6d12 + 6cf2: 8920 ld.h r1, (r1, 0x0) + 6cf4: 7445 zexth r1, r1 + 6cf6: 07c9 br 0x6c88 // 6c88 + 6cf8: 4441 lsli r2, r4, 1 + 6cfa: 6098 addu r2, r6 + 6cfc: 8a40 ld.h r2, (r2, 0x0) + 6cfe: 748b sexth r2, r2 + 6d00: 648d cmplt r3, r2 + 6d02: 0c08 bf 0x6d12 // 6d12 + 6d04: 3300 movi r3, 0 + 6d06: 114e lrw r2, 0x200006bc // 6dbc + 6d08: 2b01 subi r3, 2 + 6d0a: 9220 ld.w r1, (r2, 0x0) + 6d0c: 70d3 rotl r3, r4 + 6d0e: 68c4 and r3, r1 + 6d10: b260 st.w r3, (r2, 0x0) + 6d12: 4441 lsli r2, r4, 1 + 6d14: 5e68 addu r3, r6, r2 + 6d16: 8b60 ld.h r3, (r3, 0x0) + 6d18: 74cf sexth r3, r3 + 6d1a: b864 st.w r3, (r14, 0x10) + 6d1c: 3105 movi r1, 5 + 6d1e: 1163 lrw r3, 0x20000136 // 6da8 + 6d20: 608c addu r2, r3 + 6d22: 8a00 ld.h r0, (r2, 0x0) + 6d24: 4002 lsli r0, r0, 2 + 6d26: e3ffe58d bsr 0x3840 // 3840 <__divsi3> + 6d2a: 9864 ld.w r3, (r14, 0x10) + 6d2c: 640d cmplt r3, r0 + 6d2e: 0c18 bf 0x6d5e // 6d5e + 6d30: 1140 lrw r2, 0x200006aa // 6db0 + 6d32: 6090 addu r2, r4 + 6d34: 8260 ld.b r3, (r2, 0x0) + 6d36: 2300 addi r3, 1 + 6d38: 74cc zextb r3, r3 + 6d3a: a260 st.b r3, (r2, 0x0) + 6d3c: 3100 movi r1, 0 + 6d3e: 107c lrw r3, 0x200006c4 // 6dac + 6d40: 60d0 addu r3, r4 + 6d42: a320 st.b r1, (r3, 0x0) + 6d44: 8260 ld.b r3, (r2, 0x0) + 6d46: 9822 ld.w r1, (r14, 0x8) + 6d48: 64c4 cmphs r1, r3 + 6d4a: 080a bt 0x6d5e // 6d5e + 6d4c: 3300 movi r3, 0 + 6d4e: 103c lrw r1, 0x200006bc // 6dbc + 6d50: 2b01 subi r3, 2 + 6d52: 9100 ld.w r0, (r1, 0x0) + 6d54: 70d3 rotl r3, r4 + 6d56: 68c0 and r3, r0 + 6d58: b160 st.w r3, (r1, 0x0) + 6d5a: 3300 movi r3, 0 + 6d5c: a260 st.b r3, (r2, 0x0) + 6d5e: 2400 addi r4, 1 + 6d60: 3c51 cmpnei r4, 17 + 6d62: 0b81 bt 0x6c64 // 6c64 + 6d64: 1405 addi r14, r14, 20 + 6d66: 1494 pop r4-r7, r15 + 6d68: 60d8 addu r3, r6 + 6d6a: 4441 lsli r2, r4, 1 + 6d6c: 102f lrw r1, 0x20000136 // 6da8 + 6d6e: 8b60 ld.h r3, (r3, 0x0) + 6d70: 6084 addu r2, r1 + 6d72: 74cf sexth r3, r3 + 6d74: 8a40 ld.h r2, (r2, 0x0) + 6d76: 64c9 cmplt r2, r3 + 6d78: 0fcd bf 0x6d12 // 6d12 + 6d7a: 079a br 0x6cae // 6cae + 6d7c: 3d41 cmpnei r5, 1 + 6d7e: 0bb7 bt 0x6cec // 6cec + 6d80: 102f lrw r1, 0x200006bc // 6dbc + 6d82: 6cd7 mov r3, r5 + 6d84: 9100 ld.w r0, (r1, 0x0) + 6d86: 07b0 br 0x6ce6 // 6ce6 + 6d88: 20000108 .long 0x20000108 + 6d8c: 200000dc .long 0x200000dc + 6d90: 200006d6 .long 0x200006d6 + 6d94: 200000e5 .long 0x200000e5 + 6d98: 200000e4 .long 0x200000e4 + 6d9c: 200008d2 .long 0x200008d2 + 6da0: 2000062c .long 0x2000062c + 6da4: 2000088e .long 0x2000088e + 6da8: 20000136 .long 0x20000136 + 6dac: 200006c4 .long 0x200006c4 + 6db0: 200006aa .long 0x200006aa + 6db4: 20000786 .long 0x20000786 + 6db8: 20000800 .long 0x20000800 + 6dbc: 200006bc .long 0x200006bc + +Disassembly of section .text.TK_overflow_predict: + +00006dc0 : + 6dc0: 14d4 push r4-r7, r15 + 6dc2: 1421 subi r14, r14, 4 + 6dc4: 11d9 lrw r6, 0x20000070 // 6ea8 + 6dc6: 8665 ld.b r3, (r6, 0x5) + 6dc8: 3b41 cmpnei r3, 1 + 6dca: 085f bt 0x6e88 // 6e88 + 6dcc: 1158 lrw r2, 0x200007dc // 6eac + 6dce: 8260 ld.b r3, (r2, 0x0) + 6dd0: 2300 addi r3, 1 + 6dd2: 74cc zextb r3, r3 + 6dd4: a260 st.b r3, (r2, 0x0) + 6dd6: 8260 ld.b r3, (r2, 0x0) + 6dd8: 1136 lrw r1, 0x20000109 // 6eb0 + 6dda: 8120 ld.b r1, (r1, 0x0) + 6ddc: 64c4 cmphs r1, r3 + 6dde: 0855 bt 0x6e88 // 6e88 + 6de0: 3300 movi r3, 0 + 6de2: a260 st.b r3, (r2, 0x0) + 6de4: 3500 movi r5, 0 + 6de6: 11f4 lrw r7, 0x2000010c // 6eb4 + 6de8: 2605 addi r6, 6 + 6dea: 9760 ld.w r3, (r7, 0x0) + 6dec: 70d5 lsr r3, r5 + 6dee: 3201 movi r2, 1 + 6df0: 68c8 and r3, r2 + 6df2: 3b40 cmpnei r3, 0 + 6df4: 0c34 bf 0x6e5c // 6e5c + 6df6: 4581 lsli r4, r5, 1 + 6df8: 5e70 addu r3, r6, r4 + 6dfa: 8b00 ld.h r0, (r3, 0x0) + 6dfc: e3ffd3d2 bsr 0x15a0 // 15a0 <__floatunsidf> + 6e00: 6cc7 mov r3, r1 + 6e02: 3180 movi r1, 128 + 6e04: 6c83 mov r2, r0 + 6e06: 4137 lsli r1, r1, 23 + 6e08: 3000 movi r0, 0 + 6e0a: e3ffc9d5 bsr 0x1b4 // 1b4 <__GI_pow> + 6e0e: 116b lrw r3, 0x20000112 // 6eb8 + 6e10: 60d0 addu r3, r4 + 6e12: 8b60 ld.h r3, (r3, 0x0) + 6e14: 4364 lsli r3, r3, 4 + 6e16: 230e addi r3, 15 + 6e18: b860 st.w r3, (r14, 0x0) + 6e1a: e3ffcf7b bsr 0xd10 // d10 <__fixunsdfsi> + 6e1e: 9860 ld.w r3, (r14, 0x0) + 6e20: 7cc0 mult r3, r0 + 6e22: 1147 lrw r2, 0x2000086c // 6ebc + 6e24: 740d zexth r0, r3 + 6e26: 6090 addu r2, r4 + 6e28: 1166 lrw r3, 0x200008d2 // 6ec0 + 6e2a: 60d0 addu r3, r4 + 6e2c: aa00 st.h r0, (r2, 0x0) + 6e2e: 8b60 ld.h r3, (r3, 0x0) + 6e30: 8a00 ld.h r0, (r2, 0x0) + 6e32: 7401 zexth r0, r0 + 6e34: 325f movi r2, 95 + 6e36: 74cd zexth r3, r3 + 6e38: 7c08 mult r0, r2 + 6e3a: 3164 movi r1, 100 + 6e3c: b860 st.w r3, (r14, 0x0) + 6e3e: e3ffe501 bsr 0x3840 // 3840 <__divsi3> + 6e42: 9860 ld.w r3, (r14, 0x0) + 6e44: 64c1 cmplt r0, r3 + 6e46: 0c0b bf 0x6e5c // 6e5c + 6e48: 107f lrw r3, 0x200000e6 // 6ec4 + 6e4a: 610c addu r4, r3 + 6e4c: 8c60 ld.h r3, (r4, 0x0) + 6e4e: 3b06 cmphsi r3, 7 + 6e50: 0806 bt 0x6e5c // 6e5c + 6e52: 2300 addi r3, 1 + 6e54: ac60 st.h r3, (r4, 0x0) + 6e56: 3201 movi r2, 1 + 6e58: 107c lrw r3, 0x20000731 // 6ec8 + 6e5a: a340 st.b r2, (r3, 0x0) + 6e5c: 2500 addi r5, 1 + 6e5e: 3d51 cmpnei r5, 17 + 6e60: 0bc5 bt 0x6dea // 6dea + 6e62: 107a lrw r3, 0x20000731 // 6ec8 + 6e64: 8340 ld.b r2, (r3, 0x0) + 6e66: 3a41 cmpnei r2, 1 + 6e68: 0810 bt 0x6e88 // 6e88 + 6e6a: 3200 movi r2, 0 + 6e6c: a340 st.b r2, (r3, 0x0) + 6e6e: 3200 movi r2, 0 + 6e70: 1077 lrw r3, 0x20000058 // 6ecc + 6e72: 1018 lrw r0, 0x200007ff // 6ed0 + 6e74: 10b8 lrw r5, 0x20000838 // 6ed4 + 6e76: 10d4 lrw r6, 0x200000e6 // 6ec4 + 6e78: 9360 ld.w r3, (r3, 0x0) + 6e7a: b342 st.w r2, (r3, 0x8) + 6e7c: 1077 lrw r3, 0x20000054 // 6ed8 + 6e7e: 9380 ld.w r4, (r3, 0x0) + 6e80: 3300 movi r3, 0 + 6e82: 8040 ld.b r2, (r0, 0x0) + 6e84: 648c cmphs r3, r2 + 6e86: 0c03 bf 0x6e8c // 6e8c + 6e88: 1401 addi r14, r14, 4 + 6e8a: 1494 pop r4-r7, r15 + 6e8c: 5d4c addu r2, r5, r3 + 6e8e: 8240 ld.b r2, (r2, 0x0) + 6e90: 4241 lsli r2, r2, 1 + 6e92: 4322 lsli r1, r3, 2 + 6e94: 6098 addu r2, r6 + 6e96: 6050 addu r1, r4 + 6e98: 8a40 ld.h r2, (r2, 0x0) + 6e9a: 91f2 ld.w r7, (r1, 0x48) + 6e9c: 4254 lsli r2, r2, 20 + 6e9e: 6c9c or r2, r7 + 6ea0: 2300 addi r3, 1 + 6ea2: b152 st.w r2, (r1, 0x48) + 6ea4: 74cc zextb r3, r3 + 6ea6: 07ee br 0x6e82 // 6e82 + 6ea8: 20000070 .long 0x20000070 + 6eac: 200007dc .long 0x200007dc + 6eb0: 20000109 .long 0x20000109 + 6eb4: 2000010c .long 0x2000010c + 6eb8: 20000112 .long 0x20000112 + 6ebc: 2000086c .long 0x2000086c + 6ec0: 200008d2 .long 0x200008d2 + 6ec4: 200000e6 .long 0x200000e6 + 6ec8: 20000731 .long 0x20000731 + 6ecc: 20000058 .long 0x20000058 + 6ed0: 200007ff .long 0x200007ff + 6ed4: 20000838 .long 0x20000838 + 6ed8: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00006edc : + 6edc: 14c4 push r4-r7 + 6ede: 1422 subi r14, r14, 8 + 6ee0: 1348 lrw r2, 0x2000075e // 7080 + 6ee2: 8260 ld.b r3, (r2, 0x0) + 6ee4: 2300 addi r3, 1 + 6ee6: 74cc zextb r3, r3 + 6ee8: a260 st.b r3, (r2, 0x0) + 6eea: 8260 ld.b r3, (r2, 0x0) + 6eec: 1326 lrw r1, 0x20000109 // 7084 + 6eee: 8120 ld.b r1, (r1, 0x0) + 6ef0: 644c cmphs r3, r1 + 6ef2: 0cad bf 0x704c // 704c + 6ef4: 3300 movi r3, 0 + 6ef6: a260 st.b r3, (r2, 0x0) + 6ef8: 1364 lrw r3, 0x200006bc // 7088 + 6efa: 9360 ld.w r3, (r3, 0x0) + 6efc: 3b40 cmpnei r3, 0 + 6efe: 08a7 bt 0x704c // 704c + 6f00: 1323 lrw r1, 0x200006d6 // 708c + 6f02: 6dc7 mov r7, r1 + 6f04: b820 st.w r1, (r14, 0x0) + 6f06: 3200 movi r2, 0 + 6f08: 1362 lrw r3, 0x20000136 // 7090 + 6f0a: 1323 lrw r1, 0x2000062c // 7094 + 6f0c: 4201 lsli r0, r2, 1 + 6f0e: 9880 ld.w r4, (r14, 0x0) + 6f10: 6100 addu r4, r0 + 6f12: 8c80 ld.h r4, (r4, 0x0) + 6f14: 7513 sexth r4, r4 + 6f16: 3cdf btsti r4, 31 + 6f18: 0c27 bf 0x6f66 // 6f66 + 6f1a: 13a0 lrw r5, 0x200008d2 // 7098 + 6f1c: 5980 addu r4, r1, r0 + 6f1e: 6014 addu r0, r5 + 6f20: b881 st.w r4, (r14, 0x4) + 6f22: 8c80 ld.h r4, (r4, 0x0) + 6f24: 88c0 ld.h r6, (r0, 0x0) + 6f26: 7511 zexth r4, r4 + 6f28: 7599 zexth r6, r6 + 6f2a: 8ba0 ld.h r5, (r3, 0x0) + 6f2c: 611a subu r4, r6 + 6f2e: 6551 cmplt r4, r5 + 6f30: 081b bt 0x6f66 // 6f66 + 6f32: 9881 ld.w r4, (r14, 0x4) + 6f34: 8c80 ld.h r4, (r4, 0x0) + 6f36: 8800 ld.h r0, (r0, 0x0) + 6f38: 7511 zexth r4, r4 + 6f3a: 7401 zexth r0, r0 + 6f3c: 5c01 subu r0, r4, r0 + 6f3e: 4581 lsli r4, r5, 1 + 6f40: 6150 addu r5, r4 + 6f42: 6541 cmplt r0, r5 + 6f44: 0c11 bf 0x6f66 // 6f66 + 6f46: 1296 lrw r4, 0x20000800 // 709c + 6f48: 6108 addu r4, r2 + 6f4a: 8400 ld.b r0, (r4, 0x0) + 6f4c: 2000 addi r0, 1 + 6f4e: 7400 zextb r0, r0 + 6f50: a400 st.b r0, (r4, 0x0) + 6f52: 1214 lrw r0, 0x20000090 // 70a0 + 6f54: 84a0 ld.b r5, (r4, 0x0) + 6f56: 8008 ld.b r0, (r0, 0x8) + 6f58: 6540 cmphs r0, r5 + 6f5a: 0806 bt 0x6f66 // 6f66 + 6f5c: 1212 lrw r0, 0x20000743 // 70a4 + 6f5e: 3501 movi r5, 1 + 6f60: a0a0 st.b r5, (r0, 0x0) + 6f62: 3000 movi r0, 0 + 6f64: a400 st.b r0, (r4, 0x0) + 6f66: 4201 lsli r0, r2, 1 + 6f68: 5f80 addu r4, r7, r0 + 6f6a: 8c80 ld.h r4, (r4, 0x0) + 6f6c: 7513 sexth r4, r4 + 6f6e: 3c20 cmplti r4, 1 + 6f70: 0870 bt 0x7050 // 7050 + 6f72: 128a lrw r4, 0x200008d2 // 7098 + 6f74: 6100 addu r4, r0 + 6f76: 59a0 addu r5, r1, r0 + 6f78: 8c80 ld.h r4, (r4, 0x0) + 6f7a: 8da0 ld.h r5, (r5, 0x0) + 6f7c: 7555 zexth r5, r5 + 6f7e: 7511 zexth r4, r4 + 6f80: 6116 subu r4, r5 + 6f82: 8ba0 ld.h r5, (r3, 0x0) + 6f84: 45a2 lsli r5, r5, 2 + 6f86: 6551 cmplt r4, r5 + 6f88: 0864 bt 0x7050 // 7050 + 6f8a: 1288 lrw r4, 0x20000786 // 70a8 + 6f8c: 6108 addu r4, r2 + 6f8e: 84a0 ld.b r5, (r4, 0x0) + 6f90: 2500 addi r5, 1 + 6f92: 7554 zextb r5, r5 + 6f94: a4a0 st.b r5, (r4, 0x0) + 6f96: 12a3 lrw r5, 0x20000090 // 70a0 + 6f98: 84c0 ld.b r6, (r4, 0x0) + 6f9a: 85a9 ld.b r5, (r5, 0x9) + 6f9c: 6594 cmphs r5, r6 + 6f9e: 0806 bt 0x6faa // 6faa + 6fa0: 12a1 lrw r5, 0x20000743 // 70a4 + 6fa2: 3601 movi r6, 1 + 6fa4: a5c0 st.b r6, (r5, 0x0) + 6fa6: 3500 movi r5, 0 + 6fa8: a4a0 st.b r5, (r4, 0x0) + 6faa: 5f80 addu r4, r7, r0 + 6fac: 8c80 ld.h r4, (r4, 0x0) + 6fae: 7513 sexth r4, r4 + 6fb0: 3cdf btsti r4, 31 + 6fb2: 0c10 bf 0x6fd2 // 6fd2 + 6fb4: 11d9 lrw r6, 0x200008d2 // 7098 + 6fb6: 59a0 addu r5, r1, r0 + 6fb8: 6180 addu r6, r0 + 6fba: 8d80 ld.h r4, (r5, 0x0) + 6fbc: 8ec0 ld.h r6, (r6, 0x0) + 6fbe: 7599 zexth r6, r6 + 6fc0: 7511 zexth r4, r4 + 6fc2: 611a subu r4, r6 + 6fc4: 8bc0 ld.h r6, (r3, 0x0) + 6fc6: 6591 cmplt r4, r6 + 6fc8: 0c05 bf 0x6fd2 // 6fd2 + 6fca: 8d80 ld.h r4, (r5, 0x0) + 6fcc: 2c00 subi r4, 1 + 6fce: 7511 zexth r4, r4 + 6fd0: ad80 st.h r4, (r5, 0x0) + 6fd2: 5f80 addu r4, r7, r0 + 6fd4: 8c80 ld.h r4, (r4, 0x0) + 6fd6: 7513 sexth r4, r4 + 6fd8: 3cdf btsti r4, 31 + 6fda: 0c11 bf 0x6ffc // 6ffc + 6fdc: 11cf lrw r6, 0x200008d2 // 7098 + 6fde: 59a0 addu r5, r1, r0 + 6fe0: 6180 addu r6, r0 + 6fe2: 8d80 ld.h r4, (r5, 0x0) + 6fe4: 8ec0 ld.h r6, (r6, 0x0) + 6fe6: 7599 zexth r6, r6 + 6fe8: 7511 zexth r4, r4 + 6fea: 611a subu r4, r6 + 6fec: 8bc0 ld.h r6, (r3, 0x0) + 6fee: 4ec1 lsri r6, r6, 1 + 6ff0: 6591 cmplt r4, r6 + 6ff2: 0805 bt 0x6ffc // 6ffc + 6ff4: 8d80 ld.h r4, (r5, 0x0) + 6ff6: 2c01 subi r4, 2 + 6ff8: 7511 zexth r4, r4 + 6ffa: ad80 st.h r4, (r5, 0x0) + 6ffc: 5fa0 addu r5, r7, r0 + 6ffe: 8d80 ld.h r4, (r5, 0x0) + 7000: 7513 sexth r4, r4 + 7002: 3c20 cmplti r4, 1 + 7004: 080c bt 0x701c // 701c + 7006: 8da0 ld.h r5, (r5, 0x0) + 7008: 8b80 ld.h r4, (r3, 0x0) + 700a: 7557 sexth r5, r5 + 700c: 4c81 lsri r4, r4, 1 + 700e: 6515 cmplt r5, r4 + 7010: 0c06 bf 0x701c // 701c + 7012: 59a0 addu r5, r1, r0 + 7014: 8d80 ld.h r4, (r5, 0x0) + 7016: 2400 addi r4, 1 + 7018: 7511 zexth r4, r4 + 701a: ad80 st.h r4, (r5, 0x0) + 701c: 5fa0 addu r5, r7, r0 + 701e: 8d80 ld.h r4, (r5, 0x0) + 7020: 7513 sexth r4, r4 + 7022: 3c20 cmplti r4, 1 + 7024: 0810 bt 0x7044 // 7044 + 7026: 8dc0 ld.h r6, (r5, 0x0) + 7028: 759b sexth r6, r6 + 702a: 8b80 ld.h r4, (r3, 0x0) + 702c: 6519 cmplt r6, r4 + 702e: 0c0b bf 0x7044 // 7044 + 7030: 8da0 ld.h r5, (r5, 0x0) + 7032: 7557 sexth r5, r5 + 7034: 4c81 lsri r4, r4, 1 + 7036: 6515 cmplt r5, r4 + 7038: 0806 bt 0x7044 // 7044 + 703a: 6004 addu r0, r1 + 703c: 8880 ld.h r4, (r0, 0x0) + 703e: 2401 addi r4, 2 + 7040: 7511 zexth r4, r4 + 7042: a880 st.h r4, (r0, 0x0) + 7044: 2200 addi r2, 1 + 7046: 3a51 cmpnei r2, 17 + 7048: 2301 addi r3, 2 + 704a: 0b61 bt 0x6f0c // 6f0c + 704c: 1402 addi r14, r14, 8 + 704e: 1484 pop r4-r7 + 7050: 5f80 addu r4, r7, r0 + 7052: 8c80 ld.h r4, (r4, 0x0) + 7054: 7513 sexth r4, r4 + 7056: 3cdf btsti r4, 31 + 7058: 0fa9 bf 0x6faa // 6faa + 705a: 10b0 lrw r5, 0x200008d2 // 7098 + 705c: 5980 addu r4, r1, r0 + 705e: 6140 addu r5, r0 + 7060: 8c80 ld.h r4, (r4, 0x0) + 7062: 8da0 ld.h r5, (r5, 0x0) + 7064: 7555 zexth r5, r5 + 7066: 8bc0 ld.h r6, (r3, 0x0) + 7068: 7511 zexth r4, r4 + 706a: 6116 subu r4, r5 + 706c: 46a1 lsli r5, r6, 1 + 706e: 6158 addu r5, r6 + 7070: 6551 cmplt r4, r5 + 7072: 0b9c bt 0x6faa // 6faa + 7074: 108c lrw r4, 0x20000743 // 70a4 + 7076: 3501 movi r5, 1 + 7078: a4a0 st.b r5, (r4, 0x0) + 707a: 6c03 mov r0, r0 + 707c: 0797 br 0x6faa // 6faa + 707e: 0000 bkpt + 7080: 2000075e .long 0x2000075e + 7084: 20000109 .long 0x20000109 + 7088: 200006bc .long 0x200006bc + 708c: 200006d6 .long 0x200006d6 + 7090: 20000136 .long 0x20000136 + 7094: 2000062c .long 0x2000062c + 7098: 200008d2 .long 0x200008d2 + 709c: 20000800 .long 0x20000800 + 70a0: 20000090 .long 0x20000090 + 70a4: 20000743 .long 0x20000743 + 70a8: 20000786 .long 0x20000786 + +Disassembly of section .text.TK_result_prog: + +000070ac : + 70ac: 14d2 push r4-r5, r15 + 70ae: 1050 lrw r2, 0x200006bc // 70ec + 70b0: 1090 lrw r4, 0x20000760 // 70f0 + 70b2: 9260 ld.w r3, (r2, 0x0) + 70b4: 3b40 cmpnei r3, 0 + 70b6: 0c02 bf 0x70ba // 70ba + 70b8: 9260 ld.w r3, (r2, 0x0) + 70ba: b460 st.w r3, (r4, 0x0) + 70bc: 9460 ld.w r3, (r4, 0x0) + 70be: 3b40 cmpnei r3, 0 + 70c0: 10ad lrw r5, 0x20000834 // 70f4 + 70c2: 0c11 bf 0x70e4 // 70e4 + 70c4: 9440 ld.w r2, (r4, 0x0) + 70c6: 9560 ld.w r3, (r5, 0x0) + 70c8: 64ca cmpne r2, r3 + 70ca: 0c03 bf 0x70d0 // 70d0 + 70cc: 9460 ld.w r3, (r4, 0x0) + 70ce: b560 st.w r3, (r5, 0x0) + 70d0: e3fffd52 bsr 0x6b74 // 6b74 + 70d4: 1069 lrw r3, 0x20000110 // 70f8 + 70d6: 8360 ld.b r3, (r3, 0x0) + 70d8: 640c cmphs r3, r0 + 70da: 0804 bt 0x70e2 // 70e2 + 70dc: 3300 movi r3, 0 + 70de: b460 st.w r3, (r4, 0x0) + 70e0: b560 st.w r3, (r5, 0x0) + 70e2: 1492 pop r4-r5, r15 + 70e4: 1046 lrw r2, 0x20000758 // 70fc + 70e6: b560 st.w r3, (r5, 0x0) + 70e8: b260 st.w r3, (r2, 0x0) + 70ea: 07fc br 0x70e2 // 70e2 + 70ec: 200006bc .long 0x200006bc + 70f0: 20000760 .long 0x20000760 + 70f4: 20000834 .long 0x20000834 + 70f8: 20000110 .long 0x20000110 + 70fc: 20000758 .long 0x20000758 + +Disassembly of section .text.CORETHandler: + +00007100 : + 7100: 1460 nie + 7102: 1462 ipush + 7104: 14d1 push r4, r15 + 7106: 1077 lrw r3, 0x20000064 // 7160 + 7108: 3400 movi r4, 0 + 710a: 9360 ld.w r3, (r3, 0x0) + 710c: b386 st.w r4, (r3, 0x18) + 710e: 1076 lrw r3, 0x200006c0 // 7164 + 7110: 8360 ld.b r3, (r3, 0x0) + 7112: 3b41 cmpnei r3, 1 + 7114: 0820 bt 0x7154 // 7154 + 7116: e3fffd85 bsr 0x6c20 // 6c20 + 711a: e3fffd93 bsr 0x6c40 // 6c40 + 711e: e3fffe51 bsr 0x6dc0 // 6dc0 + 7122: e3fffedd bsr 0x6edc // 6edc + 7126: e3ffffc3 bsr 0x70ac // 70ac + 712a: 1070 lrw r3, 0x20000760 // 7168 + 712c: 9360 ld.w r3, (r3, 0x0) + 712e: 3b40 cmpnei r3, 0 + 7130: 0c12 bf 0x7154 // 7154 + 7132: 106f lrw r3, 0x200000e0 // 716c + 7134: 9340 ld.w r2, (r3, 0x0) + 7136: 3a40 cmpnei r2, 0 + 7138: 0c0e bf 0x7154 // 7154 + 713a: 106e lrw r3, 0x20000758 // 7170 + 713c: 3064 movi r0, 100 + 713e: 9320 ld.w r1, (r3, 0x0) + 7140: 2100 addi r1, 1 + 7142: b320 st.w r1, (r3, 0x0) + 7144: 9320 ld.w r1, (r3, 0x0) + 7146: 7c80 mult r2, r0 + 7148: 6448 cmphs r2, r1 + 714a: 0805 bt 0x7154 // 7154 + 714c: 104a lrw r2, 0x20000743 // 7174 + 714e: 3101 movi r1, 1 + 7150: a220 st.b r1, (r2, 0x0) + 7152: b380 st.w r4, (r3, 0x0) + 7154: d9ee2001 ld.w r15, (r14, 0x4) + 7158: 9880 ld.w r4, (r14, 0x0) + 715a: 1402 addi r14, r14, 8 + 715c: 1463 ipop + 715e: 1461 nir + 7160: 20000064 .long 0x20000064 + 7164: 200006c0 .long 0x200006c0 + 7168: 20000760 .long 0x20000760 + 716c: 200000e0 .long 0x200000e0 + 7170: 20000758 .long 0x20000758 + 7174: 20000743 .long 0x20000743 + +Disassembly of section .text.get_key_seq: + +00007178 : + 7178: 14c3 push r4-r6 + 717a: 106b lrw r3, 0x2000010c // 71a4 + 717c: 3000 movi r0, 0 + 717e: 9320 ld.w r1, (r3, 0x0) + 7180: 3401 movi r4, 1 + 7182: 3300 movi r3, 0 + 7184: 10a9 lrw r5, 0x20000838 // 71a8 + 7186: 6c87 mov r2, r1 + 7188: 708d lsr r2, r3 + 718a: 6890 and r2, r4 + 718c: 3a40 cmpnei r2, 0 + 718e: 0c05 bf 0x7198 // 7198 + 7190: 5dc0 addu r6, r5, r0 + 7192: 748c zextb r2, r3 + 7194: a640 st.b r2, (r6, 0x0) + 7196: 2000 addi r0, 1 + 7198: 2300 addi r3, 1 + 719a: 3b51 cmpnei r3, 17 + 719c: 0bf5 bt 0x7186 // 7186 + 719e: 7400 zextb r0, r0 + 71a0: 1483 pop r4-r6 + 71a2: 0000 bkpt + 71a4: 2000010c .long 0x2000010c + 71a8: 20000838 .long 0x20000838 + +Disassembly of section .text.CORET_CONFIG: + +000071ac : + 71ac: 14d0 push r15 + 71ae: e3ffdd1b bsr 0x2be4 // 2be4 + 71b2: 3180 movi r1, 128 + 71b4: 4124 lsli r1, r1, 4 + 71b6: 3001 movi r0, 1 + 71b8: e3ffd4c8 bsr 0x1b48 // 1b48 + 71bc: 1068 lrw r3, 0x20000064 // 71dc + 71be: 1049 lrw r2, 0x2000015c // 71e0 + 71c0: 9360 ld.w r3, (r3, 0x0) + 71c2: 9240 ld.w r2, (r2, 0x0) + 71c4: b345 st.w r2, (r3, 0x14) + 71c6: e3ffdd3f bsr 0x2c44 // 2c44 + 71ca: e3ffdd2d bsr 0x2c24 // 2c24 + 71ce: e3ffdd33 bsr 0x2c34 // 2c34 + 71d2: e3ffdd21 bsr 0x2c14 // 2c14 + 71d6: e3ffdd13 bsr 0x2bfc // 2bfc + 71da: 1490 pop r15 + 71dc: 20000064 .long 0x20000064 + 71e0: 2000015c .long 0x2000015c + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +000071e4 : + 71e4: 1066 lrw r3, 0x20000054 // 71fc + 71e6: 3100 movi r1, 0 + 71e8: 9300 ld.w r0, (r3, 0x0) + 71ea: 3300 movi r3, 0 + 71ec: 4342 lsli r2, r3, 2 + 71ee: 2300 addi r3, 1 + 71f0: 6080 addu r2, r0 + 71f2: 3b52 cmpnei r3, 18 + 71f4: b220 st.w r1, (r2, 0x0) + 71f6: b232 st.w r1, (r2, 0x48) + 71f8: 0bfa bt 0x71ec // 71ec + 71fa: 783c jmp r15 + 71fc: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +00007200 : + 7200: 1065 lrw r3, 0x2000005c // 7214 + 7202: 1046 lrw r2, 0xa67a6cc7 // 7218 + 7204: 9360 ld.w r3, (r3, 0x0) + 7206: b356 st.w r2, (r3, 0x58) + 7208: 1045 lrw r2, 0x21f1f04 // 721c + 720a: b355 st.w r2, (r3, 0x54) + 720c: 1045 lrw r2, 0x69966996 // 7220 + 720e: 1066 lrw r3, 0x40011180 // 7224 + 7210: b35f st.w r2, (r3, 0x7c) + 7212: 783c jmp r15 + 7214: 2000005c .long 0x2000005c + 7218: a67a6cc7 .long 0xa67a6cc7 + 721c: 021f1f04 .long 0x021f1f04 + 7220: 69966996 .long 0x69966996 + 7224: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00007228 : + 7228: 14d4 push r4-r7, r15 + 722a: 142c subi r14, r14, 48 + 722c: e3ffffea bsr 0x7200 // 7200 + 7230: e3ffdc3a bsr 0x2aa4 // 2aa4 + 7234: 1268 lrw r3, 0x20000070 // 7354 + 7236: 934b ld.w r2, (r3, 0x2c) + 7238: 1268 lrw r3, 0x40011200 // 7358 + 723a: b350 st.w r2, (r3, 0x40) + 723c: 1268 lrw r3, 0x200000dd // 735c + 723e: 8360 ld.b r3, (r3, 0x0) + 7240: 3b41 cmpnei r3, 1 + 7242: 0817 bt 0x7270 // 7270 + 7244: 1267 lrw r3, 0x20000058 // 7360 + 7246: 3105 movi r1, 5 + 7248: 9380 ld.w r4, (r3, 0x0) + 724a: 1267 lrw r3, 0x20000134 // 7364 + 724c: 8300 ld.b r0, (r3, 0x0) + 724e: e3ffe30b bsr 0x3864 // 3864 <__udivsi3> + 7252: 7400 zextb r0, r0 + 7254: 1265 lrw r3, 0x200000de // 7368 + 7256: b408 st.w r0, (r4, 0x20) + 7258: 8300 ld.b r0, (r3, 0x0) + 725a: 3804 cmphsi r0, 5 + 725c: 1264 lrw r3, 0x2000075c // 736c + 725e: 085a bt 0x7312 // 7312 + 7260: e3ffcd4e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7264: 53575103 .long 0x53575103 + 7268: 0055 .short 0x0055 + 726a: 3296 movi r2, 150 + 726c: 4242 lsli r2, r2, 2 + 726e: ab40 st.h r2, (r3, 0x0) + 7270: e3fffb78 bsr 0x6960 // 6960 + 7274: 3200 movi r2, 0 + 7276: 3100 movi r1, 0 + 7278: 3001 movi r0, 1 + 727a: e3fffb01 bsr 0x687c // 687c + 727e: e3ffffb3 bsr 0x71e4 // 71e4 + 7282: e3ffff7b bsr 0x7178 // 7178 + 7286: 119b lrw r4, 0x200007ff // 7370 + 7288: 3101 movi r1, 1 + 728a: a400 st.b r0, (r4, 0x0) + 728c: 8440 ld.b r2, (r4, 0x0) + 728e: 117a lrw r3, 0x20000158 // 7374 + 7290: 8b60 ld.h r3, (r3, 0x0) + 7292: b829 st.w r1, (r14, 0x24) + 7294: 3180 movi r1, 128 + 7296: 412d lsli r1, r1, 13 + 7298: b828 st.w r1, (r14, 0x20) + 729a: 3180 movi r1, 128 + 729c: 4129 lsli r1, r1, 9 + 729e: b827 st.w r1, (r14, 0x1c) + 72a0: 3100 movi r1, 0 + 72a2: b826 st.w r1, (r14, 0x18) + 72a4: 2a00 subi r2, 1 + 72a6: 1115 lrw r0, 0x2000015a // 7378 + 72a8: 8800 ld.h r0, (r0, 0x0) + 72aa: b805 st.w r0, (r14, 0x14) + 72ac: 7488 zextb r2, r2 + 72ae: 1114 lrw r0, 0x20000160 // 737c + 72b0: 8800 ld.h r0, (r0, 0x0) + 72b2: b804 st.w r0, (r14, 0x10) + 72b4: 3080 movi r0, 128 + 72b6: 4005 lsli r0, r0, 5 + 72b8: b803 st.w r0, (r14, 0xc) + 72ba: 3080 movi r0, 128 + 72bc: 4004 lsli r0, r0, 4 + 72be: b802 st.w r0, (r14, 0x8) + 72c0: b821 st.w r1, (r14, 0x4) + 72c2: b820 st.w r1, (r14, 0x0) + 72c4: 3001 movi r0, 1 + 72c6: 3102 movi r1, 2 + 72c8: e3fffaee bsr 0x68a4 // 68a4 + 72cc: 3002 movi r0, 2 + 72ce: e3fffacf bsr 0x686c // 686c + 72d2: 3020 movi r0, 32 + 72d4: e3fffacc bsr 0x686c // 686c + 72d8: 3380 movi r3, 128 + 72da: 4372 lsli r3, r3, 18 + 72dc: 1149 lrw r2, 0xe000e100 // 7380 + 72de: b260 st.w r3, (r2, 0x0) + 72e0: b270 st.w r3, (r2, 0x40) + 72e2: 11e9 lrw r7, 0x20000076 // 7384 + 72e4: 1169 lrw r3, 0x20000054 // 7388 + 72e6: 11aa lrw r5, 0x20000838 // 738c + 72e8: 11ca lrw r6, 0x20000112 // 7390 + 72ea: 9360 ld.w r3, (r3, 0x0) + 72ec: b86a st.w r3, (r14, 0x28) + 72ee: b88b st.w r4, (r14, 0x2c) + 72f0: 3300 movi r3, 0 + 72f2: 984b ld.w r2, (r14, 0x2c) + 72f4: 8240 ld.b r2, (r2, 0x0) + 72f6: 648c cmphs r3, r2 + 72f8: 0c0f bf 0x7316 // 7316 + 72fa: e3ffff59 bsr 0x71ac // 71ac + 72fe: e3fffc4f bsr 0x6b9c // 6b9c + 7302: 140c addi r14, r14, 48 + 7304: 1494 pop r4-r7, r15 + 7306: 1145 lrw r2, 0x5dc // 7398 + 7308: 07b3 br 0x726e // 726e + 730a: 1145 lrw r2, 0x1194 // 739c + 730c: 07b1 br 0x726e // 726e + 730e: 1145 lrw r2, 0x1770 // 73a0 + 7310: 07af br 0x726e // 726e + 7312: 1145 lrw r2, 0xbb8 // 73a4 + 7314: 07ad br 0x726e // 726e + 7316: 5d0c addu r0, r5, r3 + 7318: 8020 ld.b r1, (r0, 0x0) + 731a: 8040 ld.b r2, (r0, 0x0) + 731c: 8080 ld.b r4, (r0, 0x0) + 731e: 8000 ld.b r0, (r0, 0x0) + 7320: 4001 lsli r0, r0, 1 + 7322: 6018 addu r0, r6 + 7324: 4121 lsli r1, r1, 1 + 7326: 8800 ld.h r0, (r0, 0x0) + 7328: 605c addu r1, r7 + 732a: 448f lsli r4, r4, 15 + 732c: 6d00 or r4, r0 + 732e: 4241 lsli r2, r2, 1 + 7330: 8900 ld.h r0, (r1, 0x0) + 7332: 1039 lrw r1, 0x200000e6 // 7394 + 7334: 6084 addu r2, r1 + 7336: 4018 lsli r0, r0, 24 + 7338: 6c10 or r0, r4 + 733a: 8a80 ld.h r4, (r2, 0x0) + 733c: 3212 movi r2, 18 + 733e: 608c addu r2, r3 + 7340: 4494 lsli r4, r4, 20 + 7342: 4242 lsli r2, r2, 2 + 7344: 982a ld.w r1, (r14, 0x28) + 7346: 6c10 or r0, r4 + 7348: 6084 addu r2, r1 + 734a: 2300 addi r3, 1 + 734c: b200 st.w r0, (r2, 0x0) + 734e: 74cc zextb r3, r3 + 7350: 07d1 br 0x72f2 // 72f2 + 7352: 0000 bkpt + 7354: 20000070 .long 0x20000070 + 7358: 40011200 .long 0x40011200 + 735c: 200000dd .long 0x200000dd + 7360: 20000058 .long 0x20000058 + 7364: 20000134 .long 0x20000134 + 7368: 200000de .long 0x200000de + 736c: 2000075c .long 0x2000075c + 7370: 200007ff .long 0x200007ff + 7374: 20000158 .long 0x20000158 + 7378: 2000015a .long 0x2000015a + 737c: 20000160 .long 0x20000160 + 7380: e000e100 .long 0xe000e100 + 7384: 20000076 .long 0x20000076 + 7388: 20000054 .long 0x20000054 + 738c: 20000838 .long 0x20000838 + 7390: 20000112 .long 0x20000112 + 7394: 200000e6 .long 0x200000e6 + 7398: 000005dc .long 0x000005dc + 739c: 00001194 .long 0x00001194 + 73a0: 00001770 .long 0x00001770 + 73a4: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +000073a8 : + 73a8: 14d4 push r4-r7, r15 + 73aa: 142d subi r14, r14, 52 + 73ac: 3201 movi r2, 1 + 73ae: 03ce lrw r6, 0x2000005c // 75f0 + 73b0: 6cc3 mov r3, r0 + 73b2: dc4e000a st.b r2, (r14, 0xa) + 73b6: 9640 ld.w r2, (r6, 0x0) + 73b8: 9247 ld.w r2, (r2, 0x1c) + 73ba: 7488 zextb r2, r2 + 73bc: dc4e0009 st.b r2, (r14, 0x9) + 73c0: d84e0009 ld.b r2, (r14, 0x9) + 73c4: 3a40 cmpnei r2, 0 + 73c6: 0c08 bf 0x73d6 // 73d6 + 73c8: d84e0009 ld.b r2, (r14, 0x9) + 73cc: 3a42 cmpnei r2, 2 + 73ce: 0c04 bf 0x73d6 // 73d6 + 73d0: 3000 movi r0, 0 + 73d2: 140d addi r14, r14, 52 + 73d4: 1494 pop r4-r7, r15 + 73d6: 0397 lrw r4, 0x2000000c // 75f4 + 73d8: 3209 movi r2, 9 + 73da: 9400 ld.w r0, (r4, 0x0) + 73dc: 3b40 cmpnei r3, 0 + 73de: b041 st.w r2, (r0, 0x4) + 73e0: 0857 bt 0x748e // 748e + 73e2: 3307 movi r3, 7 + 73e4: dc6e000b st.b r3, (r14, 0xb) + 73e8: 037b lrw r3, 0x2dc6c00 // 75f8 + 73ea: b863 st.w r3, (r14, 0xc) + 73ec: 3380 movi r3, 128 + 73ee: 4362 lsli r3, r3, 2 + 73f0: b867 st.w r3, (r14, 0x1c) + 73f2: d86e000b ld.b r3, (r14, 0xb) + 73f6: 74cc zextb r3, r3 + 73f8: b062 st.w r3, (r0, 0x8) + 73fa: 037e lrw r3, 0xffff // 75fc + 73fc: b063 st.w r3, (r0, 0xc) + 73fe: 3201 movi r2, 1 + 7400: 3101 movi r1, 1 + 7402: 03bf lrw r5, 0x20000014 // 7600 + 7404: e3ffd5b4 bsr 0x1f6c // 1f6c + 7408: 95e0 ld.w r7, (r5, 0x0) + 740a: 137f lrw r3, 0xbe9c0005 // 7604 + 740c: b760 st.w r3, (r7, 0x0) + 740e: 135f lrw r2, 0x30010 // 7608 + 7410: 3300 movi r3, 0 + 7412: b762 st.w r3, (r7, 0x8) + 7414: b743 st.w r2, (r7, 0xc) + 7416: 32d8 movi r2, 216 + 7418: b745 st.w r2, (r7, 0x14) + 741a: 974f ld.w r2, (r7, 0x3c) + 741c: 3aa2 bseti r2, 2 + 741e: b74f st.w r2, (r7, 0x3c) + 7420: 9803 ld.w r0, (r14, 0xc) + 7422: d82e000b ld.b r1, (r14, 0xb) + 7426: 327d movi r2, 125 + 7428: 2100 addi r1, 1 + 742a: 7c48 mult r1, r2 + 742c: b861 st.w r3, (r14, 0x4) + 742e: e3ffe21b bsr 0x3864 // 3864 <__udivsi3> + 7432: b804 st.w r0, (r14, 0x10) + 7434: 32fa movi r2, 250 + 7436: 9824 ld.w r1, (r14, 0x10) + 7438: 4242 lsli r2, r2, 2 + 743a: 6448 cmphs r2, r1 + 743c: 0bca bt 0x73d0 // 73d0 + 743e: 9844 ld.w r2, (r14, 0x10) + 7440: 3178 movi r1, 120 + 7442: 9804 ld.w r0, (r14, 0x10) + 7444: b840 st.w r2, (r14, 0x0) + 7446: e3ffe20f bsr 0x3864 // 3864 <__udivsi3> + 744a: 9840 ld.w r2, (r14, 0x0) + 744c: 6082 subu r2, r0 + 744e: b845 st.w r2, (r14, 0x14) + 7450: 9804 ld.w r0, (r14, 0x10) + 7452: 3178 movi r1, 120 + 7454: 9844 ld.w r2, (r14, 0x10) + 7456: b840 st.w r2, (r14, 0x0) + 7458: e3ffe206 bsr 0x3864 // 3864 <__udivsi3> + 745c: 9840 ld.w r2, (r14, 0x0) + 745e: 6008 addu r0, r2 + 7460: b806 st.w r0, (r14, 0x18) + 7462: c0807020 psrclr ie + 7466: 9640 ld.w r2, (r6, 0x0) + 7468: 9254 ld.w r2, (r2, 0x50) + 746a: b848 st.w r2, (r14, 0x20) + 746c: 9861 ld.w r3, (r14, 0x4) + 746e: 9440 ld.w r2, (r4, 0x0) + 7470: b260 st.w r3, (r2, 0x0) + 7472: b761 st.w r3, (r7, 0x4) + 7474: d86e000a ld.b r3, (r14, 0xa) + 7478: 3b40 cmpnei r3, 0 + 747a: 083e bt 0x74f6 // 74f6 + 747c: e3ffd52a bsr 0x1ed0 // 1ed0 + 7480: 9400 ld.w r0, (r4, 0x0) + 7482: e3ffd54b bsr 0x1f18 // 1f18 + 7486: c1807420 psrset ee, ie + 748a: 3001 movi r0, 1 + 748c: 07a3 br 0x73d2 // 73d2 + 748e: 3b41 cmpnei r3, 1 + 7490: 0806 bt 0x749c // 749c + 7492: 3303 movi r3, 3 + 7494: dc6e000b st.b r3, (r14, 0xb) + 7498: 127d lrw r3, 0x16e3600 // 760c + 749a: 07a8 br 0x73ea // 73ea + 749c: 3b42 cmpnei r3, 2 + 749e: 0806 bt 0x74aa // 74aa + 74a0: 3301 movi r3, 1 + 74a2: dc6e000b st.b r3, (r14, 0xb) + 74a6: 127b lrw r3, 0xb71b00 // 7610 + 74a8: 07a1 br 0x73ea // 73ea + 74aa: 3b43 cmpnei r3, 3 + 74ac: 0806 bt 0x74b8 // 74b8 + 74ae: 3300 movi r3, 0 + 74b0: dc6e000b st.b r3, (r14, 0xb) + 74b4: 1278 lrw r3, 0x5b8d80 // 7614 + 74b6: 079a br 0x73ea // 73ea + 74b8: 3b44 cmpnei r3, 4 + 74ba: 0809 bt 0x74cc // 74cc + 74bc: 3300 movi r3, 0 + 74be: dc6e000b st.b r3, (r14, 0xb) + 74c2: 1276 lrw r3, 0x54c720 // 7618 + 74c4: b863 st.w r3, (r14, 0xc) + 74c6: 3380 movi r3, 128 + 74c8: 4369 lsli r3, r3, 9 + 74ca: 0793 br 0x73f0 // 73f0 + 74cc: 3b45 cmpnei r3, 5 + 74ce: 0806 bt 0x74da // 74da + 74d0: 3300 movi r3, 0 + 74d2: dc6e000b st.b r3, (r14, 0xb) + 74d6: 1272 lrw r3, 0x3ffed0 // 761c + 74d8: 07f6 br 0x74c4 // 74c4 + 74da: 3b46 cmpnei r3, 6 + 74dc: 0806 bt 0x74e8 // 74e8 + 74de: 3300 movi r3, 0 + 74e0: dc6e000b st.b r3, (r14, 0xb) + 74e4: 126f lrw r3, 0x1fff68 // 7620 + 74e6: 07ef br 0x74c4 // 74c4 + 74e8: 3b47 cmpnei r3, 7 + 74ea: 0b84 bt 0x73f2 // 73f2 + 74ec: 3300 movi r3, 0 + 74ee: dc6e000b st.b r3, (r14, 0xb) + 74f2: 126d lrw r3, 0x1ffb8 // 7624 + 74f4: 07e8 br 0x74c4 // 74c4 + 74f6: 9560 ld.w r3, (r5, 0x0) + 74f8: 3101 movi r1, 1 + 74fa: 9440 ld.w r2, (r4, 0x0) + 74fc: b321 st.w r1, (r3, 0x4) + 74fe: b220 st.w r1, (r2, 0x0) + 7500: 3100 movi r1, 0 + 7502: b327 st.w r1, (r3, 0x1c) + 7504: 3004 movi r0, 4 + 7506: b225 st.w r1, (r2, 0x14) + 7508: 932e ld.w r1, (r3, 0x38) + 750a: 6840 and r1, r0 + 750c: 3940 cmpnei r1, 0 + 750e: 0ffd bf 0x7508 // 7508 + 7510: 9225 ld.w r1, (r2, 0x14) + 7512: b82a st.w r1, (r14, 0x28) + 7514: 3100 movi r1, 0 + 7516: b310 st.w r0, (r3, 0x40) + 7518: b327 st.w r1, (r3, 0x1c) + 751a: 3004 movi r0, 4 + 751c: b225 st.w r1, (r2, 0x14) + 751e: 932e ld.w r1, (r3, 0x38) + 7520: 6840 and r1, r0 + 7522: 3940 cmpnei r1, 0 + 7524: 0ffd bf 0x751e // 751e + 7526: 9225 ld.w r1, (r2, 0x14) + 7528: b82b st.w r1, (r14, 0x2c) + 752a: 3100 movi r1, 0 + 752c: b310 st.w r0, (r3, 0x40) + 752e: b327 st.w r1, (r3, 0x1c) + 7530: 3004 movi r0, 4 + 7532: b225 st.w r1, (r2, 0x14) + 7534: 932e ld.w r1, (r3, 0x38) + 7536: 6840 and r1, r0 + 7538: 3940 cmpnei r1, 0 + 753a: 0ffd bf 0x7534 // 7534 + 753c: 9225 ld.w r1, (r2, 0x14) + 753e: b82c st.w r1, (r14, 0x30) + 7540: b310 st.w r0, (r3, 0x40) + 7542: 982b ld.w r1, (r14, 0x2c) + 7544: 980c ld.w r0, (r14, 0x30) + 7546: 6040 addu r1, r0 + 7548: b829 st.w r1, (r14, 0x24) + 754a: 9829 ld.w r1, (r14, 0x24) + 754c: 4921 lsri r1, r1, 1 + 754e: b829 st.w r1, (r14, 0x24) + 7550: 3100 movi r1, 0 + 7552: b321 st.w r1, (r3, 0x4) + 7554: b220 st.w r1, (r2, 0x0) + 7556: b327 st.w r1, (r3, 0x1c) + 7558: b225 st.w r1, (r2, 0x14) + 755a: d86e0009 ld.b r3, (r14, 0x9) + 755e: 3b42 cmpnei r3, 2 + 7560: 9849 ld.w r2, (r14, 0x24) + 7562: 082c bt 0x75ba // 75ba + 7564: 1171 lrw r3, 0x7ff // 7628 + 7566: 648c cmphs r3, r2 + 7568: 0c03 bf 0x756e // 756e + 756a: 3300 movi r3, 0 + 756c: 040f br 0x758a // 758a + 756e: 9849 ld.w r2, (r14, 0x24) + 7570: 9866 ld.w r3, (r14, 0x18) + 7572: 648c cmphs r3, r2 + 7574: 080e bt 0x7590 // 7590 + 7576: 9868 ld.w r3, (r14, 0x20) + 7578: 9847 ld.w r2, (r14, 0x1c) + 757a: 60ca subu r3, r2 + 757c: b868 st.w r3, (r14, 0x20) + 757e: 32fe movi r2, 254 + 7580: 9868 ld.w r3, (r14, 0x20) + 7582: 4248 lsli r2, r2, 8 + 7584: 68c8 and r3, r2 + 7586: 3b40 cmpnei r3, 0 + 7588: 0812 bt 0x75ac // 75ac + 758a: dc6e000a st.b r3, (r14, 0xa) + 758e: 0721 br 0x73d0 // 73d0 + 7590: 9849 ld.w r2, (r14, 0x24) + 7592: 9865 ld.w r3, (r14, 0x14) + 7594: 64c8 cmphs r2, r3 + 7596: 0829 bt 0x75e8 // 75e8 + 7598: 9868 ld.w r3, (r14, 0x20) + 759a: 9847 ld.w r2, (r14, 0x1c) + 759c: 60c8 addu r3, r2 + 759e: b868 st.w r3, (r14, 0x20) + 75a0: 33fe movi r3, 254 + 75a2: 9848 ld.w r2, (r14, 0x20) + 75a4: 4368 lsli r3, r3, 8 + 75a6: 688c and r2, r3 + 75a8: 64ca cmpne r2, r3 + 75aa: 0fe0 bf 0x756a // 756a + 75ac: 9660 ld.w r3, (r6, 0x0) + 75ae: 9848 ld.w r2, (r14, 0x20) + 75b0: b354 st.w r2, (r3, 0x50) + 75b2: 3001 movi r0, 1 + 75b4: e3ffdb86 bsr 0x2cc0 // 2cc0 + 75b8: 075e br 0x7474 // 7474 + 75ba: 9866 ld.w r3, (r14, 0x18) + 75bc: 648c cmphs r3, r2 + 75be: 0809 bt 0x75d0 // 75d0 + 75c0: 9868 ld.w r3, (r14, 0x20) + 75c2: 9847 ld.w r2, (r14, 0x1c) + 75c4: 60ca subu r3, r2 + 75c6: b868 st.w r3, (r14, 0x20) + 75c8: 32ff movi r2, 255 + 75ca: 9868 ld.w r3, (r14, 0x20) + 75cc: 4250 lsli r2, r2, 16 + 75ce: 07db br 0x7584 // 7584 + 75d0: 9849 ld.w r2, (r14, 0x24) + 75d2: 9865 ld.w r3, (r14, 0x14) + 75d4: 64c8 cmphs r2, r3 + 75d6: 0809 bt 0x75e8 // 75e8 + 75d8: 9868 ld.w r3, (r14, 0x20) + 75da: 9847 ld.w r2, (r14, 0x1c) + 75dc: 60c8 addu r3, r2 + 75de: b868 st.w r3, (r14, 0x20) + 75e0: 33ff movi r3, 255 + 75e2: 9848 ld.w r2, (r14, 0x20) + 75e4: 4370 lsli r3, r3, 16 + 75e6: 07e0 br 0x75a6 // 75a6 + 75e8: 3300 movi r3, 0 + 75ea: dc6e000a st.b r3, (r14, 0xa) + 75ee: 07e2 br 0x75b2 // 75b2 + 75f0: 2000005c .long 0x2000005c + 75f4: 2000000c .long 0x2000000c + 75f8: 02dc6c00 .long 0x02dc6c00 + 75fc: 0000ffff .long 0x0000ffff + 7600: 20000014 .long 0x20000014 + 7604: be9c0005 .long 0xbe9c0005 + 7608: 00030010 .long 0x00030010 + 760c: 016e3600 .long 0x016e3600 + 7610: 00b71b00 .long 0x00b71b00 + 7614: 005b8d80 .long 0x005b8d80 + 7618: 0054c720 .long 0x0054c720 + 761c: 003ffed0 .long 0x003ffed0 + 7620: 001fff68 .long 0x001fff68 + 7624: 0001ffb8 .long 0x0001ffb8 + 7628: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240415.map b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240415.map new file mode 100644 index 0000000..059d812 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/RF_T1F_TC_V01_20240415.map @@ -0,0 +1,3023 @@ +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: 488984 (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: 254 + Section header string table index: 251 + +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_PullHi PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_DriveS PROGBITS 00001e8a 002e8a 00000e 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e98 002e98 000008 00 AX 0 0 2 + [23] .text.GPIO_Write_ PROGBITS 00001ea0 002ea0 000008 00 AX 0 0 2 + [24] .text.GPIO_Revers PROGBITS 00001ea8 002ea8 000016 00 AX 0 0 2 + [25] .text.GPIO_Read_S PROGBITS 00001ebe 002ebe 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.UART0_DeIni PROGBITS 00001f90 002f90 000018 00 AX 0 0 4 + [37] .text.UART1_DeIni PROGBITS 00001fa8 002fa8 000018 00 AX 0 0 4 + [38] .text.UART2_DeIni PROGBITS 00001fc0 002fc0 000018 00 AX 0 0 4 + [39] .text.UART0_Int_E PROGBITS 00001fd8 002fd8 00001c 00 AX 0 0 4 + [40] .text.UART2_Int_E PROGBITS 00001ff4 002ff4 00001c 00 AX 0 0 4 + [41] .text.UART_IO_Ini PROGBITS 00002010 003010 0000ec 00 AX 0 0 4 + [42] .text.UARTInit PROGBITS 000020fc 0030fc 000010 00 AX 0 0 4 + [43] .text.UARTInitRxT PROGBITS 0000210c 00310c 000010 00 AX 0 0 4 + [44] .text.UARTTransmi PROGBITS 0000211c 00311c 00001e 00 AX 0 0 2 + [45] .text.EPT_Softwar PROGBITS 0000213c 00313c 000020 00 AX 0 0 4 + [46] .text.EPT_Start PROGBITS 0000215c 00315c 000028 00 AX 0 0 4 + [47] .text.EPT_Stop PROGBITS 00002184 003184 000028 00 AX 0 0 4 + [48] .text.EPT_IO_SET PROGBITS 000021ac 0031ac 000238 00 AX 0 0 4 + [49] .text.EPT_PWM_Con PROGBITS 000023e4 0033e4 000038 00 AX 0 0 4 + [50] .text.EPT_PWMX_Ou PROGBITS 0000241c 00341c 0000d8 00 AX 0 0 4 + [51] .text.EPT_PRDR_CM PROGBITS 000024f4 0034f4 00001c 00 AX 0 0 4 + [52] .text.ADC12_RESET PROGBITS 00002510 003510 000064 00 AX 0 0 4 + [53] .text.ADC12_Contr PROGBITS 00002574 003574 000010 00 AX 0 0 4 + [54] .text.ADC12_CMD.p PROGBITS 00002584 003584 000020 00 AX 0 0 4 + [55] .text.ADC12_CLK_C PROGBITS 000025a4 0035a4 00002c 00 AX 0 0 4 + [56] .text.ADC12_Softw PROGBITS 000025d0 0035d0 00000a 00 AX 0 0 2 + [57] .text.ADC12_CMD PROGBITS 000025dc 0035dc 000028 00 AX 0 0 4 + [58] .text.ADC12_ready PROGBITS 00002604 003604 000014 00 AX 0 0 4 + [59] .text.ADC12_SEQEN PROGBITS 00002618 003618 000018 00 AX 0 0 4 + [60] .text.ADC12_DATA_ PROGBITS 00002630 003630 000014 00 AX 0 0 4 + [61] .text.ADC12_Confi PROGBITS 00002644 003644 00007c 00 AX 0 0 4 + [62] .text.ADC12_Confi PROGBITS 000026c0 0036c0 000198 00 AX 0 0 4 + [63] .text.ADC12_Conve PROGBITS 00002858 003858 000180 00 AX 0 0 4 + [64] .text.Page_Progra PROGBITS 000029d8 0039d8 0000a0 00 AX 0 0 4 + [65] .text.ReadDataArr PROGBITS 00002a78 003a78 00002a 00 AX 0 0 2 + [66] .text.tk_paramete PROGBITS 00002aa4 003aa4 000140 00 AX 0 0 4 + [67] .text.CORET_DeIni PROGBITS 00002be4 003be4 000018 00 AX 0 0 4 + [68] .text.CORET_Int_E PROGBITS 00002bfc 003bfc 000018 00 AX 0 0 4 + [69] .text.CORET_start PROGBITS 00002c14 003c14 000010 00 AX 0 0 4 + [70] .text.CORET_CLKSO PROGBITS 00002c24 003c24 000010 00 AX 0 0 4 + [71] .text.CORET_TICKI PROGBITS 00002c34 003c34 000010 00 AX 0 0 4 + [72] .text.CORET_reloa PROGBITS 00002c44 003c44 000010 00 AX 0 0 4 + [73] .text.startup.mai PROGBITS 00002c54 003c54 00006c 00 AX 0 0 4 + [74] .text.delay_nms PROGBITS 00002cc0 003cc0 00002c 00 AX 0 0 2 + [75] .text.delay_nus PROGBITS 00002cec 003cec 000022 00 AX 0 0 2 + [76] .text.EPT0_CONFIG PROGBITS 00002d10 003d10 000060 00 AX 0 0 4 + [77] .text.BT_CONFIG PROGBITS 00002d70 003d70 000060 00 AX 0 0 4 + [78] .text.SYSCON_CONF PROGBITS 00002dd0 003dd0 000062 00 AX 0 0 2 + [79] .text.APT32F102_i PROGBITS 00002e34 003e34 000088 00 AX 0 0 4 + [80] .text.SYSCONIntHa PROGBITS 00002ebc 003ebc 0000f0 00 AX 0 0 4 + [81] .text.IFCIntHandl PROGBITS 00002fac 003fac 000068 00 AX 0 0 4 + [82] .text.ADCIntHandl PROGBITS 00003014 004014 000068 00 AX 0 0 4 + [83] .text.EPT0IntHand PROGBITS 0000307c 00407c 0001ac 00 AX 0 0 4 + [84] .text.WWDTHandler PROGBITS 00003228 004228 000034 00 AX 0 0 4 + [85] .text.GPT0IntHand PROGBITS 0000325c 00425c 000080 00 AX 0 0 4 + [86] .text.RTCIntHandl PROGBITS 000032dc 0042dc 000070 00 AX 0 0 4 + [87] .text.UART0IntHan PROGBITS 0000334c 00434c 00003c 00 AX 0 0 4 + [88] .text.UART1IntHan PROGBITS 00003388 004388 00003c 00 AX 0 0 4 + [89] .text.UART2IntHan PROGBITS 000033c4 0043c4 000094 00 AX 0 0 4 + [90] .text.SPI0IntHand PROGBITS 00003458 004458 0000e8 00 AX 0 0 4 + [91] .text.SIO0IntHand PROGBITS 00003540 004540 000054 00 AX 0 0 4 + [92] .text.EXI0IntHand PROGBITS 00003594 004594 000030 00 AX 0 0 4 + [93] .text.EXI1IntHand PROGBITS 000035c4 0045c4 000030 00 AX 0 0 4 + [94] .text.EXI2to3IntH PROGBITS 000035f4 0045f4 000048 00 AX 0 0 4 + [95] .text.EXI4to9IntH PROGBITS 0000363c 00463c 00005c 00 AX 0 0 4 + [96] .text.EXI10to15In PROGBITS 00003698 004698 000060 00 AX 0 0 4 + [97] .text.LPTIntHandl PROGBITS 000036f8 0046f8 000034 00 AX 0 0 4 + [98] .text.BT0IntHandl PROGBITS 0000372c 00472c 00004c 00 AX 0 0 4 + [99] .text.BT1IntHandl PROGBITS 00003778 004778 000064 00 AX 0 0 4 + [100] .text.PriviledgeV PROGBITS 000037dc 0047dc 000002 00 AX 0 0 2 + [101] .text.PendTrapHan PROGBITS 000037de 0047de 000008 00 AX 0 0 2 + [102] .text.Trap3Handle PROGBITS 000037e6 0047e6 000008 00 AX 0 0 2 + [103] .text.Trap2Handle PROGBITS 000037ee 0047ee 000008 00 AX 0 0 2 + [104] .text.Trap1Handle PROGBITS 000037f6 0047f6 000008 00 AX 0 0 2 + [105] .text.Trap0Handle PROGBITS 000037fe 0047fe 000008 00 AX 0 0 2 + [106] .text.UnrecExecpH PROGBITS 00003806 004806 000008 00 AX 0 0 2 + [107] .text.BreakPointH PROGBITS 0000380e 00480e 000008 00 AX 0 0 2 + [108] .text.AccessErrHa PROGBITS 00003816 004816 000008 00 AX 0 0 2 + [109] .text.IllegalInst PROGBITS 0000381e 00481e 000008 00 AX 0 0 2 + [110] .text.MisalignedH PROGBITS 00003826 004826 000008 00 AX 0 0 2 + [111] .text.CNTAIntHand PROGBITS 0000382e 00482e 000008 00 AX 0 0 2 + [112] .text.I2CIntHandl PROGBITS 00003836 004836 000008 00 AX 0 0 2 + [113] .text.__divsi3 PROGBITS 00003840 004840 000024 00 AX 0 0 4 + [114] .text.__udivsi3 PROGBITS 00003864 004864 000024 00 AX 0 0 4 + [115] .text.__umodsi3 PROGBITS 00003888 004888 000024 00 AX 0 0 4 + [116] .text.CK_CPU_EnAl PROGBITS 000038ac 0048ac 000006 00 AX 0 0 2 + [117] .text.UARTx_Init PROGBITS 000038b4 0048b4 000108 00 AX 0 0 4 + [118] .text.UART2_RecvI PROGBITS 000039bc 0049bc 000068 00 AX 0 0 4 + [119] .text.UART2_TASK PROGBITS 00003a24 004a24 00009c 00 AX 0 0 4 + [120] .text.MCU485_Send PROGBITS 00003ac0 004ac0 000088 00 AX 0 0 4 + [121] .text.Dbg_Println PROGBITS 00003b48 004b48 00000c 00 AX 0 0 2 + [122] .text.Dbg_Print_B PROGBITS 00003b54 004b54 000002 00 AX 0 0 2 + [123] .text.Touch_Key_I PROGBITS 00003b58 004b58 000078 00 AX 0 0 4 + [124] .text.TouchKey_RS PROGBITS 00003bd0 004bd0 000138 00 AX 0 0 4 + [125] .text.Get_TouchKe PROGBITS 00003d08 004d08 00003c 00 AX 0 0 4 + [126] .text.Touch_Key_E PROGBITS 00003d44 004d44 0000ac 00 AX 0 0 4 + [127] .text.TouchKey_Se PROGBITS 00003df0 004df0 00003c 00 AX 0 0 4 + [128] .text.Touch_Key_T PROGBITS 00003e2c 004e2c 0000d8 00 AX 0 0 4 + [129] .text.TouchKey_Ch PROGBITS 00003f04 004f04 000018 00 AX 0 0 2 + [130] .text.TouchKey_Co PROGBITS 00003f1c 004f1c 000084 00 AX 0 0 4 + [131] .text.TouchKey_Se PROGBITS 00003fa0 004fa0 0000b8 00 AX 0 0 4 + [132] .text.TouchKey_Re PROGBITS 00004058 005058 0000e4 00 AX 0 0 4 + [133] .text.TouchKey_Du PROGBITS 0000413c 00513c 000038 00 AX 0 0 4 + [134] .text.TouchKey_Re PROGBITS 00004174 005174 0000cc 00 AX 0 0 4 + [135] .text.TouchKey_Re PROGBITS 00004240 005240 00001a 00 AX 0 0 2 + [136] .text.TouchKey_Co PROGBITS 0000425c 00525c 0000d8 00 AX 0 0 4 + [137] .text.EEPROM_Chec PROGBITS 00004334 005334 000016 00 AX 0 0 2 + [138] .text.EEPROM_Read PROGBITS 0000434c 00534c 000074 00 AX 0 0 4 + [139] .text.EEPROM_Writ PROGBITS 000043c0 0053c0 000044 00 AX 0 0 4 + [140] .text.EEPROM_Vali PROGBITS 00004404 005404 000070 00 AX 0 0 4 + [141] .text.EEPROM_Defa PROGBITS 00004474 005474 000018 00 AX 0 0 2 + [142] .text.EEPROM_Init PROGBITS 0000448c 00548c 000050 00 AX 0 0 4 + [143] .text.EEPROM_Writ PROGBITS 000044dc 0054dc 00006c 00 AX 0 0 4 + [144] .text.EEPROM_Read PROGBITS 00004548 005548 0000ac 00 AX 0 0 4 + [145] .text.EEPROM_Vali PROGBITS 000045f4 0055f4 0000a8 00 AX 0 0 4 + [146] .text.EEPROM_Defa PROGBITS 0000469c 00569c 000040 00 AX 0 0 2 + [147] .text.EEPROM_Touc PROGBITS 000046dc 0056dc 000080 00 AX 0 0 4 + [148] .text.ADC_Init PROGBITS 0000475c 00575c 00005c 00 AX 0 0 4 + [149] .text.Thermistor_ PROGBITS 000047b8 0057b8 000048 00 AX 0 0 4 + [150] .text.Calculate_A PROGBITS 00004800 005800 0000c0 00 AX 0 0 4 + [151] .text.ADC_Sample_ PROGBITS 000048c0 0058c0 0000b0 00 AX 0 0 4 + [152] .text.Get_Temp_Va PROGBITS 00004970 005970 000010 00 AX 0 0 4 + [153] .text.HT1621_WR_D PROGBITS 00004980 005980 000048 00 AX 0 0 4 + [154] .text.HT1621_WR_C PROGBITS 000049c8 0059c8 000030 00 AX 0 0 4 + [155] .text.HT1621_Init PROGBITS 000049f8 0059f8 00008c 00 AX 0 0 4 + [156] .text.HT1621_Clea PROGBITS 00004a84 005a84 000050 00 AX 0 0 4 + [157] .text.HT1621_ALLO PROGBITS 00004ad4 005ad4 000040 00 AX 0 0 4 + [158] .text.HT1621_Refr PROGBITS 00004b14 005b14 00004c 00 AX 0 0 4 + [159] .text.Set_Tempera PROGBITS 00004b60 005b60 000088 00 AX 0 0 4 + [160] .text.Local_Tempe PROGBITS 00004be8 005be8 000080 00 AX 0 0 4 + [161] .text.Control_Mod PROGBITS 00004c68 005c68 000048 00 AX 0 0 4 + [162] .text.Control_win PROGBITS 00004cb0 005cb0 000070 00 AX 0 0 4 + [163] .text.Control_Pro PROGBITS 00004d20 005d20 000044 00 AX 0 0 4 + [164] .text.Controlled_ PROGBITS 00004d64 005d64 000048 00 AX 0 0 4 + [165] .text.Controlled_ PROGBITS 00004dac 005dac 000024 00 AX 0 0 4 + [166] .text.Set_Device_ PROGBITS 00004dd0 005dd0 000098 00 AX 0 0 4 + [167] .text.Set_Temp_Di PROGBITS 00004e68 005e68 000064 00 AX 0 0 4 + [168] .text.HT1621_Refr PROGBITS 00004ecc 005ecc 000060 00 AX 0 0 4 + [169] .text.MODEL_Ctrl_ PROGBITS 00004f2c 005f2c 00002c 00 AX 0 0 4 + [170] .text.Control_Mod PROGBITS 00004f58 005f58 0000b4 00 AX 0 0 4 + [171] .text.TemCtrl_Ini PROGBITS 0000500c 00600c 00013c 00 AX 0 0 4 + [172] .text.TemCtrl_Mod PROGBITS 00005148 006148 00004c 00 AX 0 0 4 + [173] .text.TemCtrl_Fan PROGBITS 00005194 006194 00004c 00 AX 0 0 4 + [174] .text.TemCtrl_Tem PROGBITS 000051e0 0061e0 000030 00 AX 0 0 4 + [175] .text.TemCtrl_Tem PROGBITS 00005210 006210 000030 00 AX 0 0 4 + [176] .text.TemCtrl_OnO PROGBITS 00005240 006240 000034 00 AX 0 0 4 + [177] .text.Tem_Valve_C PROGBITS 00005274 006274 0000f4 00 AX 0 0 4 + [178] .text.TemCtrl_Pro PROGBITS 00005368 006368 0000f0 00 AX 0 0 4 + [179] .text.KEY1_Model_ PROGBITS 00005458 006458 0000e4 00 AX 0 0 4 + [180] .text.KEY2_Fan_Pr PROGBITS 0000553c 00653c 0000e4 00 AX 0 0 4 + [181] .text.KEY3_TempAd PROGBITS 00005620 006620 0000fc 00 AX 0 0 4 + [182] .text.KEY3_Long_P PROGBITS 0000571c 00671c 00006c 00 AX 0 0 4 + [183] .text.KEY4_TempDe PROGBITS 00005788 006788 0000fc 00 AX 0 0 4 + [184] .text.KEY4_Long_P PROGBITS 00005884 006884 00006c 00 AX 0 0 4 + [185] .text.KEY5_OnOff_ PROGBITS 000058f0 0068f0 000090 00 AX 0 0 4 + [186] .text.TempCtrl_On PROGBITS 00005980 006980 00004c 00 AX 0 0 4 + [187] .text.DisPlay_Ini PROGBITS 000059cc 0069cc 000020 00 AX 0 0 4 + [188] .text.DisPlay_Tas PROGBITS 000059ec 0069ec 000300 00 AX 0 0 4 + [189] .text.Debug_Init PROGBITS 00005cec 006cec 000034 00 AX 0 0 4 + [190] .text.Dev_SaveDat PROGBITS 00005d20 006d20 000070 00 AX 0 0 4 + [191] .text.Debug_Task PROGBITS 00005d90 006d90 00006c 00 AX 0 0 4 + [192] .text.get_check_s PROGBITS 00005dfc 006dfc 000016 00 AX 0 0 2 + [193] .text.Queue_Read_ PROGBITS 00005e14 006e14 000034 00 AX 0 0 4 + [194] .text.with_data_r PROGBITS 00005e48 006e48 00001c 00 AX 0 0 4 + [195] .text.RF_Info_Ini PROGBITS 00005e64 006e64 000034 00 AX 0 0 4 + [196] .text.Add_Frame_H PROGBITS 00005e98 006e98 000040 00 AX 0 0 4 + [197] .text.Product_Inf PROGBITS 00005ed8 006ed8 000094 00 AX 0 0 4 + [198] .text.Recv_RFNetS PROGBITS 00005f6c 006f6c 000038 00 AX 0 0 4 + [199] .text.Tem_Fun_Ctr PROGBITS 00005fa4 006fa4 0000b0 00 AX 0 0 4 + [200] .text.data_handle PROGBITS 00006054 007054 000128 00 AX 0 0 4 + [201] .text.zigbee_uart PROGBITS 0000617c 00717c 0000c8 00 AX 0 0 4 + [202] .text.TemFun_Repo PROGBITS 00006244 007244 0000d0 00 AX 0 0 4 + [203] .text.Relay_Init PROGBITS 00006314 007314 00006c 00 AX 0 0 4 + [204] .text.Relay_High PROGBITS 00006380 007380 000024 00 AX 0 0 4 + [205] .text.Relay_Mid PROGBITS 000063a4 0073a4 000024 00 AX 0 0 4 + [206] .text.Relay_Low PROGBITS 000063c8 0073c8 000024 00 AX 0 0 4 + [207] .text.Relay_Stop PROGBITS 000063ec 0073ec 000024 00 AX 0 0 4 + [208] .text.NetCRC16 PROGBITS 00006410 007410 00004c 00 AX 0 0 4 + [209] .text.GetCRC16 PROGBITS 0000645c 00745c 00003c 00 AX 0 0 4 + [210] .text.SOR_CRC PROGBITS 00006498 007498 000016 00 AX 0 0 2 + [211] .text.Rs485AskCyc PROGBITS 000064b0 0074b0 0000ec 00 AX 0 0 4 + [212] .text.Rs485AskCtr PROGBITS 0000659c 00759c 000050 00 AX 0 0 4 + [213] .text.Rs485AskRea PROGBITS 000065ec 0075ec 000054 00 AX 0 0 4 + [214] .text.Temp_Rec_An PROGBITS 00006640 007640 000164 00 AX 0 0 4 + [215] .text.Tem_Rs485_R PROGBITS 000067a4 0077a4 0000c8 00 AX 0 0 4 + [216] .text.TK_ConfigIn PROGBITS 0000686c 00786c 000010 00 AX 0 0 4 + [217] .text.tk_clk_conf PROGBITS 0000687c 00787c 000028 00 AX 0 0 4 + [218] .text.TK_con0_con PROGBITS 000068a4 0078a4 0000bc 00 AX 0 0 4 + [219] .text.TK_IO_Enabl PROGBITS 00006960 007960 000134 00 AX 0 0 4 + [220] .text.TK_Sampling PROGBITS 00006a94 007a94 000058 00 AX 0 0 4 + [221] .text.TKEYIntHand PROGBITS 00006aec 007aec 000088 00 AX 0 0 4 + [222] .text.get_key_num PROGBITS 00006b74 007b74 000028 00 AX 0 0 4 + [223] .text.TK_Baseline PROGBITS 00006b9c 007b9c 000084 00 AX 0 0 4 + [224] .text.TK_Scan_Sta PROGBITS 00006c20 007c20 000020 00 AX 0 0 4 + [225] .text.TK_Keymap_p PROGBITS 00006c40 007c40 000180 00 AX 0 0 4 + [226] .text.TK_overflow PROGBITS 00006dc0 007dc0 00011c 00 AX 0 0 4 + [227] .text.TK_Baseline PROGBITS 00006edc 007edc 0001d0 00 AX 0 0 4 + [228] .text.TK_result_p PROGBITS 000070ac 0080ac 000054 00 AX 0 0 4 + [229] .text.CORETHandle PROGBITS 00007100 008100 000078 00 AX 0 0 4 + [230] .text.get_key_seq PROGBITS 00007178 008178 000034 00 AX 0 0 4 + [231] .text.CORET_CONFI PROGBITS 000071ac 0081ac 000038 00 AX 0 0 4 + [232] .text.tk_chxval_s PROGBITS 000071e4 0081e4 00001c 00 AX 0 0 4 + [233] .text.tk_reserved PROGBITS 00007200 008200 000028 00 AX 0 0 4 + [234] .text.tk_init PROGBITS 00007228 008228 000180 00 AX 0 0 4 + [235] .text.std_clk_cal PROGBITS 000073a8 0083a8 000284 00 AX 0 0 4 + [236] .RomCode PROGBITS 0000762c 0090a4 000000 00 W 0 0 1 + [237] .rodata PROGBITS 0000762c 00862c 000884 00 A 0 0 4 + [238] .data PROGBITS 20000000 009000 0000a4 00 WA 0 0 4 + [239] .bss NOBITS 200000a4 0090a4 000850 00 WA 0 0 4 + [240] .csky.attributes CSKY_ATTRIBUTES 00000000 0090a4 000022 00 0 0 1 + [241] .comment PROGBITS 00000000 0090c6 000042 01 MS 0 0 1 + [242] .csky_stack_size PROGBITS 00000000 009110 000a3c 00 0 0 16 + [243] .debug_line PROGBITS 00000000 009b4c 005f0b 00 0 0 1 + [244] .debug_info PROGBITS 00000000 00fa57 049efa 00 0 0 1 + [245] .debug_abbrev PROGBITS 00000000 059951 0041ae 00 0 0 1 + [246] .debug_aranges PROGBITS 00000000 05db00 001040 00 0 0 8 + [247] .debug_ranges PROGBITS 00000000 05eb40 000f98 00 0 0 1 + [248] .debug_str PROGBITS 00000000 05fad8 009618 01 MS 0 0 1 + [249] .debug_frame PROGBITS 00000000 0690f0 002630 00 0 0 4 + [250] .debug_loc PROGBITS 00000000 06b720 0031d0 00 0 0 1 + [251] .shstrtab STRTAB 00000000 076036 0015e1 00 0 0 1 + [252] .symtab SYMTAB 00000000 06e8f0 005bc0 10 253 1066 4 + [253] .strtab STRTAB 00000000 0744b0 001b86 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 0x07eb0 0x07eb0 R E 0x1000 + LOAD 0x009000 0x20000000 0x00007eb0 0x000a4 0x008f4 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_PullHighLow_DIS .text.GPIO_DriveStrength_EN .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.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.EPT0_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.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.MODEL_Ctrl_Init .text.Control_Mode_Detection .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.get_check_sum .text.Queue_Read_Byte .text.with_data_rxbuff .text.RF_Info_Init .text.Add_Frame_Head .text.Product_Info_Update .text.Recv_RFNetState_Ack .text.Tem_Fun_Ctrl_Report .text.data_handle .text.zigbee_uart_service .text.TemFun_Report_Task .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHighLow_DIS) for GPIO_PullHighLow_DIS + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Low) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) 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_model_detection.o(.text.Control_Mode_Detection) 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.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.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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.UART2_TASK) for UART2_TASK + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) for MODEL_Ctrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) for Control_Mode_Detection + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Queue_Read_Byte) for Queue_Read_Byte + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.with_data_rxbuff) for with_data_rxbuff + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) for RF_Info_Init + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) for Product_Info_Update + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) for Recv_RFNetState_Ack + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) for data_handle + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) for zigbee_uart_service + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) for TemFun_Report_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) 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), (2913 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_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_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), (3107 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), (3424 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), (3169 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), (8032 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), (4137 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), (3540 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), (3656 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4856 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (5 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), (76 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.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (160 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (188 bytes). + Removing .text.Controlled_Key_Backlight(Obj/SYSTEM_ht1621.o), (36 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .data(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .bss(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .text.uart_receive_input(Obj/USRCTRL_rf_uart_protocol.o), (68 bytes). + Removing .text.Rest_RFNetState(Obj/USRCTRL_rf_uart_protocol.o), (64 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text.RLY_State_Multi_Control(Obj/USRCTRL_myrelay.o), (184 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (127 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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). + +594 unused seciton(s) (total 153476 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_model_detection.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_rf_uart_protocol.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_PullHighLow_DIS + $t 0x00001e7c 0 .text.GPIO_PullHighLow_DIS + $d 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $t 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $d 0x00001e98 0 .text.GPIO_Write_High + $t 0x00001e98 0 .text.GPIO_Write_High + $d 0x00001ea0 0 .text.GPIO_Write_Low + $t 0x00001ea0 0 .text.GPIO_Write_Low + $d 0x00001ea8 0 .text.GPIO_Reverse + $t 0x00001ea8 0 .text.GPIO_Reverse + $d 0x00001ebe 0 .text.GPIO_Read_Status + $t 0x00001ebe 0 .text.GPIO_Read_Status + $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.UART0_DeInit + $t 0x00001f90 0 .text.UART0_DeInit + $d 0x00001fa4 0 .text.UART0_DeInit + $d 0x00001fa8 0 .text.UART1_DeInit + $t 0x00001fa8 0 .text.UART1_DeInit + $d 0x00001fbc 0 .text.UART1_DeInit + $d 0x00001fc0 0 .text.UART2_DeInit + $t 0x00001fc0 0 .text.UART2_DeInit + $d 0x00001fd4 0 .text.UART2_DeInit + $d 0x00001fd8 0 .text.UART0_Int_Enable + $t 0x00001fd8 0 .text.UART0_Int_Enable + $d 0x00001fec 0 .text.UART0_Int_Enable + $d 0x00001ff4 0 .text.UART2_Int_Enable + $t 0x00001ff4 0 .text.UART2_Int_Enable + $d 0x00002008 0 .text.UART2_Int_Enable + $d 0x00002010 0 .text.UART_IO_Init + $t 0x00002010 0 .text.UART_IO_Init + $d 0x000020f4 0 .text.UART_IO_Init + $d 0x000020fc 0 .text.UARTInit + $t 0x000020fc 0 .text.UARTInit + $d 0x00002108 0 .text.UARTInit + $d 0x0000210c 0 .text.UARTInitRxTxIntEn + $t 0x0000210c 0 .text.UARTInitRxTxIntEn + $d 0x00002118 0 .text.UARTInitRxTxIntEn + $d 0x0000211c 0 .text.UARTTransmit + $t 0x0000211c 0 .text.UARTTransmit + $d 0x0000213c 0 .text.EPT_Software_Prg + $t 0x0000213c 0 .text.EPT_Software_Prg + $d 0x00002158 0 .text.EPT_Software_Prg + $d 0x0000215c 0 .text.EPT_Start + $t 0x0000215c 0 .text.EPT_Start + $d 0x0000217c 0 .text.EPT_Start + $d 0x00002184 0 .text.EPT_Stop + $t 0x00002184 0 .text.EPT_Stop + $d 0x000021a4 0 .text.EPT_Stop + $d 0x000021ac 0 .text.EPT_IO_SET + $t 0x000021ac 0 .text.EPT_IO_SET + $d 0x000023dc 0 .text.EPT_IO_SET + $d 0x000023e4 0 .text.EPT_PWM_Config + $t 0x000023e4 0 .text.EPT_PWM_Config + $d 0x00002414 0 .text.EPT_PWM_Config + $d 0x0000241c 0 .text.EPT_PWMX_Output_Control + $t 0x0000241c 0 .text.EPT_PWMX_Output_Control + $d 0x000024f0 0 .text.EPT_PWMX_Output_Control + $d 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x0000250c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x00002510 0 .text.ADC12_RESET_VALUE + $t 0x00002510 0 .text.ADC12_RESET_VALUE + $d 0x00002570 0 .text.ADC12_RESET_VALUE + $d 0x00002574 0 .text.ADC12_Control + $t 0x00002574 0 .text.ADC12_Control + $d 0x00002580 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002584 F 32 .text.ADC12_CMD.part.0 + $d 0x00002584 0 .text.ADC12_CMD.part.0 + $t 0x00002584 0 .text.ADC12_CMD.part.0 + $d 0x000025a0 0 .text.ADC12_CMD.part.0 + $d 0x000025a4 0 .text.ADC12_CLK_CMD + $t 0x000025a4 0 .text.ADC12_CLK_CMD + $d 0x000025cc 0 .text.ADC12_CLK_CMD + $d 0x000025d0 0 .text.ADC12_Software_Reset + $t 0x000025d0 0 .text.ADC12_Software_Reset + $d 0x000025dc 0 .text.ADC12_CMD + $t 0x000025dc 0 .text.ADC12_CMD + $d 0x00002600 0 .text.ADC12_CMD + $d 0x00002604 0 .text.ADC12_ready_wait + $t 0x00002604 0 .text.ADC12_ready_wait + $d 0x00002614 0 .text.ADC12_ready_wait + $d 0x00002618 0 .text.ADC12_SEQEND_wait + $t 0x00002618 0 .text.ADC12_SEQEND_wait + $d 0x0000262c 0 .text.ADC12_SEQEND_wait + $d 0x00002630 0 .text.ADC12_DATA_OUPUT + $t 0x00002630 0 .text.ADC12_DATA_OUPUT + $d 0x00002640 0 .text.ADC12_DATA_OUPUT + $d 0x00002644 0 .text.ADC12_Configure_Mode + $t 0x00002644 0 .text.ADC12_Configure_Mode + $d 0x000026bc 0 .text.ADC12_Configure_Mode + $d 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $t 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002834 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002858 0 .text.ADC12_ConversionChannel_Config + $t 0x00002858 0 .text.ADC12_ConversionChannel_Config + $d 0x00002884 0 .text.ADC12_ConversionChannel_Config + $t 0x00002894 0 .text.ADC12_ConversionChannel_Config + $d 0x000029cc 0 .text.ADC12_ConversionChannel_Config + $d 0x000029d8 0 .text.Page_ProgramData + $t 0x000029d8 0 .text.Page_ProgramData + $d 0x00002a70 0 .text.Page_ProgramData + $d 0x00002a78 0 .text.ReadDataArry_U8 + $t 0x00002a78 0 .text.ReadDataArry_U8 + $d 0x00002aa4 0 .text.tk_parameter_init + $t 0x00002aa4 0 .text.tk_parameter_init + $d 0x00002b94 0 .text.tk_parameter_init + $d 0x00002be4 0 .text.CORET_DeInit + $t 0x00002be4 0 .text.CORET_DeInit + $d 0x00002bf8 0 .text.CORET_DeInit + $d 0x00002bfc 0 .text.CORET_Int_Enable + $t 0x00002bfc 0 .text.CORET_Int_Enable + $d 0x00002c0c 0 .text.CORET_Int_Enable + $d 0x00002c14 0 .text.CORET_start + $t 0x00002c14 0 .text.CORET_start + $d 0x00002c20 0 .text.CORET_start + $d 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $t 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c30 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c34 0 .text.CORET_TICKINT_Enable + $t 0x00002c34 0 .text.CORET_TICKINT_Enable + $d 0x00002c40 0 .text.CORET_TICKINT_Enable + $d 0x00002c44 0 .text.CORET_reload + $t 0x00002c44 0 .text.CORET_reload + $d 0x00002c50 0 .text.CORET_reload + $d 0x00002c54 0 .text.startup.main + $t 0x00002c54 0 .text.startup.main + $d 0x00002cb4 0 .text.startup.main + $d 0x00002cc0 0 .text.delay_nms + $t 0x00002cc0 0 .text.delay_nms + $d 0x00002cec 0 .text.delay_nus + $t 0x00002cec 0 .text.delay_nus + $d 0x00002d10 0 .text.EPT0_CONFIG + $t 0x00002d10 0 .text.EPT0_CONFIG + $d 0x00002d6c 0 .text.EPT0_CONFIG + $d 0x00002d70 0 .text.BT_CONFIG + $t 0x00002d70 0 .text.BT_CONFIG + $d 0x00002dc8 0 .text.BT_CONFIG + $d 0x00002dd0 0 .text.SYSCON_CONFIG + $t 0x00002dd0 0 .text.SYSCON_CONFIG + $d 0x00002e34 0 .text.APT32F102_init + $t 0x00002e34 0 .text.APT32F102_init + $d 0x00002ea8 0 .text.APT32F102_init + $d 0x00002ebc 0 .text.SYSCONIntHandler + $t 0x00002ebc 0 .text.SYSCONIntHandler + $d 0x00002fa8 0 .text.SYSCONIntHandler + $d 0x00002fac 0 .text.IFCIntHandler + $t 0x00002fac 0 .text.IFCIntHandler + $d 0x00003010 0 .text.IFCIntHandler + $d 0x00003014 0 .text.ADCIntHandler + $t 0x00003014 0 .text.ADCIntHandler + $d 0x00003078 0 .text.ADCIntHandler + $d 0x0000307c 0 .text.EPT0IntHandler + $t 0x0000307c 0 .text.EPT0IntHandler + $d 0x0000321c 0 .text.EPT0IntHandler + $d 0x00003228 0 .text.WWDTHandler + $t 0x00003228 0 .text.WWDTHandler + $d 0x00003258 0 .text.WWDTHandler + $d 0x0000325c 0 .text.GPT0IntHandler + $t 0x0000325c 0 .text.GPT0IntHandler + $d 0x000032d8 0 .text.GPT0IntHandler + $d 0x000032dc 0 .text.RTCIntHandler + $t 0x000032dc 0 .text.RTCIntHandler + $d 0x00003344 0 .text.RTCIntHandler + $d 0x0000334c 0 .text.UART0IntHandler + $t 0x0000334c 0 .text.UART0IntHandler + $d 0x00003384 0 .text.UART0IntHandler + $d 0x00003388 0 .text.UART1IntHandler + $t 0x00003388 0 .text.UART1IntHandler + $d 0x000033c0 0 .text.UART1IntHandler + $d 0x000033c4 0 .text.UART2IntHandler + $t 0x000033c4 0 .text.UART2IntHandler + $d 0x00003444 0 .text.UART2IntHandler + $d 0x00003458 0 .text.SPI0IntHandler + $t 0x00003458 0 .text.SPI0IntHandler + $d 0x0000353c 0 .text.SPI0IntHandler + $d 0x00003540 0 .text.SIO0IntHandler + $t 0x00003540 0 .text.SIO0IntHandler + $d 0x00003590 0 .text.SIO0IntHandler + $d 0x00003594 0 .text.EXI0IntHandler + $t 0x00003594 0 .text.EXI0IntHandler + $d 0x000035c0 0 .text.EXI0IntHandler + $d 0x000035c4 0 .text.EXI1IntHandler + $t 0x000035c4 0 .text.EXI1IntHandler + $d 0x000035f0 0 .text.EXI1IntHandler + $d 0x000035f4 0 .text.EXI2to3IntHandler + $t 0x000035f4 0 .text.EXI2to3IntHandler + $d 0x00003638 0 .text.EXI2to3IntHandler + $d 0x0000363c 0 .text.EXI4to9IntHandler + $t 0x0000363c 0 .text.EXI4to9IntHandler + $d 0x00003694 0 .text.EXI4to9IntHandler + $d 0x00003698 0 .text.EXI10to15IntHandler + $t 0x00003698 0 .text.EXI10to15IntHandler + $d 0x000036f4 0 .text.EXI10to15IntHandler + $d 0x000036f8 0 .text.LPTIntHandler + $t 0x000036f8 0 .text.LPTIntHandler + $d 0x00003728 0 .text.LPTIntHandler + $d 0x0000372c 0 .text.BT0IntHandler + $t 0x0000372c 0 .text.BT0IntHandler + $d 0x00003774 0 .text.BT0IntHandler + $d 0x00003778 0 .text.BT1IntHandler + $t 0x00003778 0 .text.BT1IntHandler + $d 0x000037d4 0 .text.BT1IntHandler + $d 0x000037dc 0 .text.PriviledgeVioHandler + $t 0x000037dc 0 .text.PriviledgeVioHandler + $d 0x000037de 0 .text.PendTrapHandler + $t 0x000037de 0 .text.PendTrapHandler + $d 0x000037e6 0 .text.Trap3Handler + $t 0x000037e6 0 .text.Trap3Handler + $d 0x000037ee 0 .text.Trap2Handler + $t 0x000037ee 0 .text.Trap2Handler + $d 0x000037f6 0 .text.Trap1Handler + $t 0x000037f6 0 .text.Trap1Handler + $d 0x000037fe 0 .text.Trap0Handler + $t 0x000037fe 0 .text.Trap0Handler + $d 0x00003806 0 .text.UnrecExecpHandler + $t 0x00003806 0 .text.UnrecExecpHandler + $d 0x0000380e 0 .text.BreakPointHandler + $t 0x0000380e 0 .text.BreakPointHandler + $d 0x00003816 0 .text.AccessErrHandler + $t 0x00003816 0 .text.AccessErrHandler + $d 0x0000381e 0 .text.IllegalInstrHandler + $t 0x0000381e 0 .text.IllegalInstrHandler + $d 0x00003826 0 .text.MisalignedHandler + $t 0x00003826 0 .text.MisalignedHandler + $d 0x0000382e 0 .text.CNTAIntHandler + $t 0x0000382e 0 .text.CNTAIntHandler + $d 0x00003836 0 .text.I2CIntHandler + $t 0x00003836 0 .text.I2CIntHandler + $d 0x00003840 0 .text.__divsi3 + $t 0x00003840 0 .text.__divsi3 + $d 0x00003860 0 .text.__divsi3 + $d 0x00003864 0 .text.__udivsi3 + $t 0x00003864 0 .text.__udivsi3 + $d 0x00003884 0 .text.__udivsi3 + $d 0x00003888 0 .text.__umodsi3 + $t 0x00003888 0 .text.__umodsi3 + $d 0x000038a8 0 .text.__umodsi3 + $d 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000038b4 0 .text.UARTx_Init + $t 0x000038b4 0 .text.UARTx_Init + $d 0x00003990 0 .text.UARTx_Init + $d 0x000039bc 0 .text.UART2_RecvINT_Processing + $t 0x000039bc 0 .text.UART2_RecvINT_Processing + $d 0x00003a14 0 .text.UART2_RecvINT_Processing + $d 0x00003a24 0 .text.UART2_TASK + $t 0x00003a24 0 .text.UART2_TASK + $d 0x00003ab4 0 .text.UART2_TASK + $d 0x00003ac0 0 .text.MCU485_SendData + $t 0x00003ac0 0 .text.MCU485_SendData + $d 0x00003b3c 0 .text.MCU485_SendData + $d 0x00003b48 0 .text.Dbg_Println + $t 0x00003b48 0 .text.Dbg_Println + $d 0x00003b54 0 .text.Dbg_Print_Buff + $t 0x00003b54 0 .text.Dbg_Print_Buff + $d 0x00003b58 0 .text.Touch_Key_Init + $t 0x00003b58 0 .text.Touch_Key_Init + $d 0x00003bb8 0 .text.Touch_Key_Init + $d 0x00003bd0 0 .text.TouchKey_RS485_Printf + $t 0x00003bd0 0 .text.TouchKey_RS485_Printf + $d 0x00003cf8 0 .text.TouchKey_RS485_Printf + $d 0x00003d08 0 .text.Get_TouchKey_CH_State + $t 0x00003d08 0 .text.Get_TouchKey_CH_State + $d 0x00003d14 0 .text.Get_TouchKey_CH_State + $t 0x00003d1a 0 .text.Get_TouchKey_CH_State + $d 0x00003d40 0 .text.Get_TouchKey_CH_State + $d 0x00003d44 0 .text.Touch_Key_Event_Handling + $t 0x00003d44 0 .text.Touch_Key_Event_Handling + $d 0x00003dec 0 .text.Touch_Key_Event_Handling + $d 0x00003df0 0 .text.TouchKey_Set_Interface_Task + $t 0x00003df0 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e20 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e2c 0 .text.Touch_Key_Task + $t 0x00003e2c 0 .text.Touch_Key_Task + $d 0x00003ef4 0 .text.Touch_Key_Task + $d 0x00003f04 0 .text.TouchKey_CheckSum + $t 0x00003f04 0 .text.TouchKey_CheckSum + $d 0x00003f1c 0 .text.TouchKey_Comm_Reply + $t 0x00003f1c 0 .text.TouchKey_Comm_Reply + $d 0x00003f94 0 .text.TouchKey_Comm_Reply + $d 0x00003fa0 0 .text.TouchKey_SetPara_Processing + $t 0x00003fa0 0 .text.TouchKey_SetPara_Processing + $d 0x00004044 0 .text.TouchKey_SetPara_Processing + $d 0x00004058 0 .text.TouchKey_ReadPara_Processing + $t 0x00004058 0 .text.TouchKey_ReadPara_Processing + $d 0x00004134 0 .text.TouchKey_ReadPara_Processing + $d 0x0000413c 0 .text.TouchKey_DugPrintf_Processing + $t 0x0000413c 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004170 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004174 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004174 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004238 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004240 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004240 0 .text.TouchKey_ResetDevice_Processing + $d 0x0000425c 0 .text.TouchKey_Comm_Processing + $t 0x0000425c 0 .text.TouchKey_Comm_Processing + $d 0x000042ea 0 .text.TouchKey_Comm_Processing + $t 0x000042f0 0 .text.TouchKey_Comm_Processing + $d 0x00004318 0 .text.TouchKey_Comm_Processing + $d 0x00004334 0 .text.EEPROM_CheckSum + $t 0x00004334 0 .text.EEPROM_CheckSum + $d 0x0000434c 0 .text.EEPROM_ReadParaInfo + $t 0x0000434c 0 .text.EEPROM_ReadParaInfo + $d 0x000043b8 0 .text.EEPROM_ReadParaInfo + $d 0x000043c0 0 .text.EEPROM_WriteParaInfo + $t 0x000043c0 0 .text.EEPROM_WriteParaInfo + $d 0x00004400 0 .text.EEPROM_WriteParaInfo + $d 0x00004404 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004404 0 .text.EEPROM_Validate_ParaInfo + $d 0x0000446c 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004474 0 .text.EEPROM_Default_ParaInfo + $t 0x00004474 0 .text.EEPROM_Default_ParaInfo + $d 0x0000448c 0 .text.EEPROM_Init + $t 0x0000448c 0 .text.EEPROM_Init + $d 0x000044d0 0 .text.EEPROM_Init + $d 0x000044dc 0 .text.EEPROM_WriteTouchPara + $t 0x000044dc 0 .text.EEPROM_WriteTouchPara + $d 0x0000453c 0 .text.EEPROM_WriteTouchPara + $d 0x00004548 0 .text.EEPROM_ReadTouchPara + $t 0x00004548 0 .text.EEPROM_ReadTouchPara + $d 0x000045e0 0 .text.EEPROM_ReadTouchPara + $d 0x000045f4 0 .text.EEPROM_Validate_TouchPara + $t 0x000045f4 0 .text.EEPROM_Validate_TouchPara + $d 0x00004698 0 .text.EEPROM_Validate_TouchPara + $d 0x0000469c 0 .text.EEPROM_Default_TouchPara + $t 0x0000469c 0 .text.EEPROM_Default_TouchPara + $d 0x000046dc 0 .text.EEPROM_TouchPara_Printf + $t 0x000046dc 0 .text.EEPROM_TouchPara_Printf + $d 0x00004740 0 .text.EEPROM_TouchPara_Printf + $d 0x0000475c 0 .text.ADC_Init + $t 0x0000475c 0 .text.ADC_Init + $d 0x000047b4 0 .text.ADC_Init + $d 0x000047b8 0 .text.Thermistor_Array_Transform + $t 0x000047b8 0 .text.Thermistor_Array_Transform + $d 0x000047f8 0 .text.Thermistor_Array_Transform + $d 0x00004800 0 .text.Calculate_ADC_Sample_Average + $t 0x00004800 0 .text.Calculate_ADC_Sample_Average + $d 0x000048ac 0 .text.Calculate_ADC_Sample_Average + $d 0x000048c0 0 .text.ADC_Sample_Task + $t 0x000048c0 0 .text.ADC_Sample_Task + $d 0x00004960 0 .text.ADC_Sample_Task + $d 0x00004970 0 .text.Get_Temp_Val + $t 0x00004970 0 .text.Get_Temp_Val + $d 0x0000497c 0 .text.Get_Temp_Val + $d 0x00004980 0 .text.HT1621_WR_Data + $t 0x00004980 0 .text.HT1621_WR_Data + $d 0x000049c4 0 .text.HT1621_WR_Data + $d 0x000049c8 0 .text.HT1621_WR_CMD + $t 0x000049c8 0 .text.HT1621_WR_CMD + $d 0x000049f4 0 .text.HT1621_WR_CMD + $d 0x000049f8 0 .text.HT1621_Init + $t 0x000049f8 0 .text.HT1621_Init + $d 0x00004a80 0 .text.HT1621_Init + $d 0x00004a84 0 .text.HT1621_Clear + $t 0x00004a84 0 .text.HT1621_Clear + $d 0x00004acc 0 .text.HT1621_Clear + $d 0x00004ad4 0 .text.HT1621_ALLON + $t 0x00004ad4 0 .text.HT1621_ALLON + $d 0x00004b10 0 .text.HT1621_ALLON + $d 0x00004b14 0 .text.HT1621_Refresh_Data + $t 0x00004b14 0 .text.HT1621_Refresh_Data + $d 0x00004b58 0 .text.HT1621_Refresh_Data + $d 0x00004b60 0 .text.Set_Temperature_Display + $t 0x00004b60 0 .text.Set_Temperature_Display + $d 0x00004be0 0 .text.Set_Temperature_Display + $d 0x00004be8 0 .text.Local_Temperature_Display + $t 0x00004be8 0 .text.Local_Temperature_Display + $d 0x00004c60 0 .text.Local_Temperature_Display + $d 0x00004c68 0 .text.Control_Mode + $t 0x00004c68 0 .text.Control_Mode + $d 0x00004cac 0 .text.Control_Mode + $d 0x00004cb0 0 .text.Control_wind_velocity + $t 0x00004cb0 0 .text.Control_wind_velocity + $d 0x00004cbc 0 .text.Control_wind_velocity + $t 0x00004cc0 0 .text.Control_wind_velocity + $d 0x00004d1c 0 .text.Control_wind_velocity + $d 0x00004d20 0 .text.Control_Prompt_Text + $t 0x00004d20 0 .text.Control_Prompt_Text + $d 0x00004d60 0 .text.Control_Prompt_Text + $d 0x00004d64 0 .text.Controlled_Buzzer + $t 0x00004d64 0 .text.Controlled_Buzzer + $d 0x00004da4 0 .text.Controlled_Buzzer + $d 0x00004dac 0 .text.Controlled_LCD_Backlight + $t 0x00004dac 0 .text.Controlled_LCD_Backlight + $d 0x00004dc8 0 .text.Controlled_LCD_Backlight + $d 0x00004dd0 0 .text.Set_Device_ADDR + $t 0x00004dd0 0 .text.Set_Device_ADDR + $d 0x00004e60 0 .text.Set_Device_ADDR + $d 0x00004e68 0 .text.Set_Temp_Difference + $t 0x00004e68 0 .text.Set_Temp_Difference + $d 0x00004ec4 0 .text.Set_Temp_Difference + $d 0x00004ecc 0 .text.HT1621_Refresh_Task + $t 0x00004ecc 0 .text.HT1621_Refresh_Task + $d 0x00004f1c 0 .text.HT1621_Refresh_Task + $d 0x00004f2c 0 .text.MODEL_Ctrl_Init + $t 0x00004f2c 0 .text.MODEL_Ctrl_Init + $d 0x00004f50 0 .text.MODEL_Ctrl_Init + $d 0x00004f58 0 .text.Control_Mode_Detection + $t 0x00004f58 0 .text.Control_Mode_Detection + $d 0x00004ffc 0 .text.Control_Mode_Detection + $d 0x0000500c 0 .text.TemCtrl_Init + $t 0x0000500c 0 .text.TemCtrl_Init + $d 0x00005130 0 .text.TemCtrl_Init + $d 0x00005148 0 .text.TemCtrl_Model_Set + $t 0x00005148 0 .text.TemCtrl_Model_Set + $d 0x0000518c 0 .text.TemCtrl_Model_Set + $d 0x00005194 0 .text.TemCtrl_Fan_Set + $t 0x00005194 0 .text.TemCtrl_Fan_Set + $d 0x000051b2 0 .text.TemCtrl_Fan_Set + $t 0x000051b6 0 .text.TemCtrl_Fan_Set + $d 0x000051d8 0 .text.TemCtrl_Fan_Set + $d 0x000051e0 0 .text.TemCtrl_Temperature_Dec + $t 0x000051e0 0 .text.TemCtrl_Temperature_Dec + $d 0x00005208 0 .text.TemCtrl_Temperature_Dec + $d 0x00005210 0 .text.TemCtrl_Temperature_Add + $t 0x00005210 0 .text.TemCtrl_Temperature_Add + $d 0x00005238 0 .text.TemCtrl_Temperature_Add + $d 0x00005240 0 .text.TemCtrl_OnOff_Set + $t 0x00005240 0 .text.TemCtrl_OnOff_Set + $d 0x0000526c 0 .text.TemCtrl_OnOff_Set + $d 0x00005274 0 .text.Tem_Valve_Ctrl + $t 0x00005274 0 .text.Tem_Valve_Ctrl + $d 0x00005354 0 .text.Tem_Valve_Ctrl + $d 0x00005368 0 .text.TemCtrl_Pro + $t 0x00005368 0 .text.TemCtrl_Pro + $d 0x00005444 0 .text.TemCtrl_Pro + $d 0x00005458 0 .text.KEY1_Model_Press_Fun + $t 0x00005458 0 .text.KEY1_Model_Press_Fun + $d 0x00005520 0 .text.KEY1_Model_Press_Fun + $d 0x0000553c 0 .text.KEY2_Fan_Press_Fun + $t 0x0000553c 0 .text.KEY2_Fan_Press_Fun + $d 0x00005604 0 .text.KEY2_Fan_Press_Fun + $d 0x00005620 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00005620 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005700 0 .text.KEY3_TempAdd_Press_Fun + $d 0x0000571c 0 .text.KEY3_Long_Press_Fun + $t 0x0000571c 0 .text.KEY3_Long_Press_Fun + $d 0x00005778 0 .text.KEY3_Long_Press_Fun + $d 0x00005788 0 .text.KEY4_TempDec_Press_Fun + $t 0x00005788 0 .text.KEY4_TempDec_Press_Fun + $d 0x00005868 0 .text.KEY4_TempDec_Press_Fun + $d 0x00005884 0 .text.KEY4_Long_Press + $t 0x00005884 0 .text.KEY4_Long_Press + $d 0x000058e0 0 .text.KEY4_Long_Press + $d 0x000058f0 0 .text.KEY5_OnOff_Press_Fun + $t 0x000058f0 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005964 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005980 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00005980 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000059c8 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000059cc 0 .text.DisPlay_Init + $t 0x000059cc 0 .text.DisPlay_Init + $d 0x000059e4 0 .text.DisPlay_Init + $d 0x000059ec 0 .text.DisPlay_Task + $t 0x000059ec 0 .text.DisPlay_Task + $d 0x00005cbc 0 .text.DisPlay_Task + $d 0x00005cec 0 .text.Debug_Init + $t 0x00005cec 0 .text.Debug_Init + $d 0x00005d18 0 .text.Debug_Init + $d 0x00005d20 0 .text.Dev_SaveData + $t 0x00005d20 0 .text.Dev_SaveData + $d 0x00005d84 0 .text.Dev_SaveData + $d 0x00005d90 0 .text.Debug_Task + $t 0x00005d90 0 .text.Debug_Task + $d 0x00005dec 0 .text.Debug_Task + $d 0x00005dfc 0 .text.get_check_sum + $t 0x00005dfc 0 .text.get_check_sum + $d 0x00005e14 0 .text.Queue_Read_Byte + $t 0x00005e14 0 .text.Queue_Read_Byte + $d 0x00005e38 0 .text.Queue_Read_Byte + $d 0x00005e48 0 .text.with_data_rxbuff + $t 0x00005e48 0 .text.with_data_rxbuff + $d 0x00005e5c 0 .text.with_data_rxbuff + $d 0x00005e64 0 .text.RF_Info_Init + $t 0x00005e64 0 .text.RF_Info_Init + $d 0x00005e88 0 .text.RF_Info_Init + $d 0x00005e98 0 .text.Add_Frame_Head + $t 0x00005e98 0 .text.Add_Frame_Head + $d 0x00005ed0 0 .text.Add_Frame_Head + $d 0x00005ed8 0 .text.Product_Info_Update + $t 0x00005ed8 0 .text.Product_Info_Update + $d 0x00005f50 0 .text.Product_Info_Update + $d 0x00005f6c 0 .text.Recv_RFNetState_Ack + $t 0x00005f6c 0 .text.Recv_RFNetState_Ack + $d 0x00005fa0 0 .text.Recv_RFNetState_Ack + $d 0x00005fa4 0 .text.Tem_Fun_Ctrl_Report + $t 0x00005fa4 0 .text.Tem_Fun_Ctrl_Report + $d 0x0000604c 0 .text.Tem_Fun_Ctrl_Report + $d 0x00006054 0 .text.data_handle + $t 0x00006054 0 .text.data_handle + $d 0x00006170 0 .text.data_handle + $d 0x0000617c 0 .text.zigbee_uart_service + $t 0x0000617c 0 .text.zigbee_uart_service + $d 0x0000623c 0 .text.zigbee_uart_service + $d 0x00006244 0 .text.TemFun_Report_Task + $t 0x00006244 0 .text.TemFun_Report_Task + $d 0x0000630c 0 .text.TemFun_Report_Task + $d 0x00006314 0 .text.Relay_Init + $t 0x00006314 0 .text.Relay_Init + $d 0x00006378 0 .text.Relay_Init + $d 0x00006380 0 .text.Relay_High + $t 0x00006380 0 .text.Relay_High + $d 0x000063a0 0 .text.Relay_High + $d 0x000063a4 0 .text.Relay_Mid + $t 0x000063a4 0 .text.Relay_Mid + $d 0x000063c4 0 .text.Relay_Mid + $d 0x000063c8 0 .text.Relay_Low + $t 0x000063c8 0 .text.Relay_Low + $d 0x000063e8 0 .text.Relay_Low + $d 0x000063ec 0 .text.Relay_Stop + $t 0x000063ec 0 .text.Relay_Stop + $d 0x0000640c 0 .text.Relay_Stop + $d 0x00006410 0 .text.NetCRC16 + $t 0x00006410 0 .text.NetCRC16 + $d 0x00006454 0 .text.NetCRC16 + $d 0x0000645c 0 .text.GetCRC16 + $t 0x0000645c 0 .text.GetCRC16 + $d 0x00006490 0 .text.GetCRC16 + $d 0x00006498 0 .text.SOR_CRC + $t 0x00006498 0 .text.SOR_CRC + $d 0x000064b0 0 .text.Rs485AskCycleSend + $t 0x000064b0 0 .text.Rs485AskCycleSend + $d 0x00006594 0 .text.Rs485AskCycleSend + $d 0x0000659c 0 .text.Rs485AskCtrlSend + $t 0x0000659c 0 .text.Rs485AskCtrlSend + $d 0x000065e8 0 .text.Rs485AskCtrlSend + $d 0x000065ec 0 .text.Rs485AskReadSend + $t 0x000065ec 0 .text.Rs485AskReadSend + $d 0x0000663c 0 .text.Rs485AskReadSend + $d 0x00006640 0 .text.Temp_Rec_Analysis + $t 0x00006640 0 .text.Temp_Rec_Analysis + $d 0x000066ba 0 .text.Temp_Rec_Analysis + $t 0x000066be 0 .text.Temp_Rec_Analysis + $d 0x00006780 0 .text.Temp_Rec_Analysis + $t 0x00006784 0 .text.Temp_Rec_Analysis + $d 0x00006798 0 .text.Temp_Rec_Analysis + $d 0x000067a4 0 .text.Tem_Rs485_Rec_Pro + $t 0x000067a4 0 .text.Tem_Rs485_Rec_Pro + $d 0x0000685c 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x0000686c F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000686c 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x0000686c 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00006878 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000687c 0 .text.tk_clk_config + $t 0x0000687c 0 .text.tk_clk_config + $d 0x000068a0 0 .text.tk_clk_config + $d 0x000068a4 0 .text.TK_con0_config + $t 0x000068a4 0 .text.TK_con0_config + $d 0x00006954 0 .text.TK_con0_config + $d 0x00006960 0 .text.TK_IO_Enable + $t 0x00006960 0 .text.TK_IO_Enable + $d 0x000069a4 0 .text.TK_IO_Enable + $t 0x000069b4 0 .text.TK_IO_Enable + $d 0x00006a88 0 .text.TK_IO_Enable + $d 0x00006a94 0 .text.TK_Sampling_prog + $t 0x00006a94 0 .text.TK_Sampling_prog + $d 0x00006adc 0 .text.TK_Sampling_prog + $d 0x00006aec 0 .text.TKEYIntHandler + $t 0x00006aec 0 .text.TKEYIntHandler + $d 0x00006b68 0 .text.TKEYIntHandler + $d 0x00006b74 0 .text.get_key_number + $t 0x00006b74 0 .text.get_key_number + $d 0x00006b98 0 .text.get_key_number + $d 0x00006b9c 0 .text.TK_Baseline_prog + $t 0x00006b9c 0 .text.TK_Baseline_prog + $d 0x00006c04 0 .text.TK_Baseline_prog + $d 0x00006c20 0 .text.TK_Scan_Start + $t 0x00006c20 0 .text.TK_Scan_Start + $d 0x00006c38 0 .text.TK_Scan_Start + $d 0x00006c40 0 .text.TK_Keymap_prog + $t 0x00006c40 0 .text.TK_Keymap_prog + $d 0x00006d88 0 .text.TK_Keymap_prog + $d 0x00006dc0 0 .text.TK_overflow_predict + $t 0x00006dc0 0 .text.TK_overflow_predict + $d 0x00006ea8 0 .text.TK_overflow_predict + $d 0x00006edc 0 .text.TK_Baseline_tracking + $t 0x00006edc 0 .text.TK_Baseline_tracking + $d 0x00007080 0 .text.TK_Baseline_tracking + $d 0x000070ac 0 .text.TK_result_prog + $t 0x000070ac 0 .text.TK_result_prog + $d 0x000070ec 0 .text.TK_result_prog + $d 0x00007100 0 .text.CORETHandler + $t 0x00007100 0 .text.CORETHandler + $d 0x00007160 0 .text.CORETHandler + $d 0x00007178 0 .text.get_key_seq + $t 0x00007178 0 .text.get_key_seq + $d 0x000071a4 0 .text.get_key_seq + $d 0x000071ac 0 .text.CORET_CONFIG + $t 0x000071ac 0 .text.CORET_CONFIG + $d 0x000071dc 0 .text.CORET_CONFIG + $d 0x000071e4 0 .text.tk_chxval_seqxcon_clr + $t 0x000071e4 0 .text.tk_chxval_seqxcon_clr + $d 0x000071fc 0 .text.tk_chxval_seqxcon_clr + $d 0x00007200 0 .text.tk_reserved_init + $t 0x00007200 0 .text.tk_reserved_init + $d 0x00007214 0 .text.tk_reserved_init + $d 0x00007228 0 .text.tk_init + $t 0x00007228 0 .text.tk_init + $d 0x00007264 0 .text.tk_init + $t 0x0000726a 0 .text.tk_init + $d 0x00007354 0 .text.tk_init + $d 0x000073a8 0 .text.std_clk_calib + $t 0x000073a8 0 .text.std_clk_calib + $d 0x000075f0 0 .text.std_clk_calib + __func__.6297 0x0000762c O 28 .rodata + __func__.6335 0x00007648 O 25 .rodata + bp 0x000079a0 O 16 .rodata + dp_l 0x000079b0 O 16 .rodata + dp_h 0x000079c0 O 16 .rodata + NUM.6322 0x200000b0 O 1 .bss + adc_tick.6236 0x200000d0 O 4 .bss + tick.6261 0x200000d4 O 4 .bss + rx_in.6298 0x200000da O 2 .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_PullHighLow_DIS 0x00001e7c F 14 .text.GPIO_PullHighLow_DIS + GPIO_DriveStrength_EN 0x00001e8a F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e98 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001ea0 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001ea8 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00001ebe F 16 .text.GPIO_Read_Status + 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 + UART0_DeInit 0x00001f90 F 24 .text.UART0_DeInit + UART1_DeInit 0x00001fa8 F 24 .text.UART1_DeInit + UART2_DeInit 0x00001fc0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00001fd8 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00001ff4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002010 F 236 .text.UART_IO_Init + UARTInit 0x000020fc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x0000210c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x0000211c F 30 .text.UARTTransmit + EPT_Software_Prg 0x0000213c F 32 .text.EPT_Software_Prg + EPT_Start 0x0000215c F 40 .text.EPT_Start + EPT_Stop 0x00002184 F 40 .text.EPT_Stop + EPT_IO_SET 0x000021ac F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x000023e4 F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x0000241c F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x000024f4 F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x00002510 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002574 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x000025a4 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x000025d0 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000025dc F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00002604 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002618 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002630 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002644 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x000026c0 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002858 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x000029d8 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a78 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002aa4 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002be4 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002bfc F 24 .text.CORET_Int_Enable + CORET_start 0x00002c14 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002c24 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c34 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c44 F 16 .text.CORET_reload + main 0x00002c54 F 108 .text.startup.main + delay_nms 0x00002cc0 F 44 .text.delay_nms + delay_nus 0x00002cec F 34 .text.delay_nus + EPT0_CONFIG 0x00002d10 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002d70 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002dd0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002e34 F 136 .text.APT32F102_init + SYSCONIntHandler 0x00002ebc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002fac F 104 .text.IFCIntHandler + ADCIntHandler 0x00003014 F 104 .text.ADCIntHandler + EPT0IntHandler 0x0000307c F 428 .text.EPT0IntHandler + WWDTHandler 0x00003228 F 52 .text.WWDTHandler + GPT0IntHandler 0x0000325c F 128 .text.GPT0IntHandler + RTCIntHandler 0x000032dc F 112 .text.RTCIntHandler + UART0IntHandler 0x0000334c F 60 .text.UART0IntHandler + UART1IntHandler 0x00003388 F 60 .text.UART1IntHandler + UART2IntHandler 0x000033c4 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00003458 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00003540 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003594 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x000035c4 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000035f4 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x0000363c F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003698 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000036f8 F 52 .text.LPTIntHandler + BT0IntHandler 0x0000372c F 76 .text.BT0IntHandler + BT1IntHandler 0x00003778 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x000037dc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000037de F 8 .text.PendTrapHandler + Trap3Handler 0x000037e6 F 8 .text.Trap3Handler + Trap2Handler 0x000037ee F 8 .text.Trap2Handler + Trap1Handler 0x000037f6 F 8 .text.Trap1Handler + Trap0Handler 0x000037fe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003806 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000380e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003816 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000381e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003826 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000382e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003836 F 8 .text.I2CIntHandler + __divsi3 0x00003840 F 36 .text.__divsi3 + __udivsi3 0x00003864 F 36 .text.__udivsi3 + __umodsi3 0x00003888 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000038ac F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x000038b4 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x000039bc F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003a24 F 156 .text.UART2_TASK + MCU485_SendData 0x00003ac0 F 136 .text.MCU485_SendData + Dbg_Println 0x00003b48 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003b54 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003b58 F 120 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003bd0 F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003d08 F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003d44 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003df0 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003e2c F 216 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003f04 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003f1c F 132 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003fa0 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00004058 F 228 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x0000413c F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004174 F 204 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004240 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x0000425c F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004334 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x0000434c F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000043c0 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004404 F 112 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004474 F 24 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x0000448c F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000044dc F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004548 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x000045f4 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x0000469c F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x000046dc F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x0000475c F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000047b8 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004800 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000048c0 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004970 F 16 .text.Get_Temp_Val + HT1621_WR_Data 0x00004980 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000049c8 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x000049f8 F 140 .text.HT1621_Init + HT1621_Clear 0x00004a84 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00004ad4 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00004b14 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x00004b60 F 136 .text.Set_Temperature_Display + Local_Temperature_Display 0x00004be8 F 128 .text.Local_Temperature_Display + Control_Mode 0x00004c68 F 72 .text.Control_Mode + Control_wind_velocity 0x00004cb0 F 112 .text.Control_wind_velocity + Control_Prompt_Text 0x00004d20 F 68 .text.Control_Prompt_Text + Controlled_Buzzer 0x00004d64 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00004dac F 36 .text.Controlled_LCD_Backlight + Set_Device_ADDR 0x00004dd0 F 152 .text.Set_Device_ADDR + Set_Temp_Difference 0x00004e68 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00004ecc F 96 .text.HT1621_Refresh_Task + MODEL_Ctrl_Init 0x00004f2c F 44 .text.MODEL_Ctrl_Init + Control_Mode_Detection 0x00004f58 F 180 .text.Control_Mode_Detection + TemCtrl_Init 0x0000500c F 316 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00005148 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00005194 F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x000051e0 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00005210 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00005240 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00005274 F 244 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00005368 F 240 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00005458 F 228 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x0000553c F 228 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00005620 F 252 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x0000571c F 108 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00005788 F 252 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00005884 F 108 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x000058f0 F 144 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00005980 F 76 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x000059cc F 32 .text.DisPlay_Init + DisPlay_Task 0x000059ec F 768 .text.DisPlay_Task + Debug_Init 0x00005cec F 52 .text.Debug_Init + Dev_SaveData 0x00005d20 F 112 .text.Dev_SaveData + Debug_Task 0x00005d90 F 108 .text.Debug_Task + get_check_sum 0x00005dfc F 22 .text.get_check_sum + Queue_Read_Byte 0x00005e14 F 52 .text.Queue_Read_Byte + with_data_rxbuff 0x00005e48 F 28 .text.with_data_rxbuff + RF_Info_Init 0x00005e64 F 52 .text.RF_Info_Init + Add_Frame_Head 0x00005e98 F 64 .text.Add_Frame_Head + Product_Info_Update 0x00005ed8 F 144 .text.Product_Info_Update + Recv_RFNetState_Ack 0x00005f6c F 56 .text.Recv_RFNetState_Ack + Tem_Fun_Ctrl_Report 0x00005fa4 F 176 .text.Tem_Fun_Ctrl_Report + data_handle 0x00006054 F 296 .text.data_handle + zigbee_uart_service 0x0000617c F 200 .text.zigbee_uart_service + TemFun_Report_Task 0x00006244 F 208 .text.TemFun_Report_Task + Relay_Init 0x00006314 F 108 .text.Relay_Init + Relay_High 0x00006380 F 36 .text.Relay_High + Relay_Mid 0x000063a4 F 36 .text.Relay_Mid + Relay_Low 0x000063c8 F 36 .text.Relay_Low + Relay_Stop 0x000063ec F 36 .text.Relay_Stop + NetCRC16 0x00006410 F 76 .text.NetCRC16 + GetCRC16 0x0000645c F 60 .text.GetCRC16 + SOR_CRC 0x00006498 F 22 .text.SOR_CRC + Rs485AskCycleSend 0x000064b0 F 236 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x0000659c F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x000065ec F 84 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x00006640 F 356 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000067a4 F 200 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x0000687c F 40 .text.tk_clk_config + TK_con0_config 0x000068a4 F 188 .text.TK_con0_config + TK_IO_Enable 0x00006960 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x00006a94 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00006aec F 136 .text.TKEYIntHandler + get_key_number 0x00006b74 F 40 .text.get_key_number + TK_Baseline_prog 0x00006b9c F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00006c20 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00006c40 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00006dc0 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00006edc F 464 .text.TK_Baseline_tracking + TK_result_prog 0x000070ac F 84 .text.TK_result_prog + CORETHandler 0x00007100 F 120 .text.CORETHandler + get_key_seq 0x00007178 F 52 .text.get_key_seq + CORET_CONFIG 0x000071ac F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x000071e4 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x00007200 F 40 .text.tk_reserved_init + tk_init 0x00007228 F 368 .text.tk_init + std_clk_calib 0x000073a8 F 644 .text.std_clk_calib + R_Array 0x00007662 O 820 .rodata + Diaital 0x00007996 O 10 .rodata + __thenan_df 0x000079d0 O 20 .rodata + __clz_tab 0x000079e4 O 256 .rodata + _end_rodata 0x00007eb0 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 + MCU_Touch_CH 0x20000068 O 5 .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 + Sav_Temp 0x200000a4 O 4 .bss + _bss_start 0x200000a4 0 .bss + Sys_RSR 0x200000a8 O 4 .bss + test_tick 0x200000ac O 4 .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 + Dbg_Switch 0x200000cc O 4 .bss + seq_num 0x200000d8 O 2 .bss + Press_debounce_data 0x200000dc O 1 .bss + TK_Lowpower_mode 0x200000dd O 1 .bss + TK_Lowpower_level 0x200000de O 1 .bss + TK_longpress_time 0x200000e0 O 4 .bss + Release_debounce_data 0x200000e4 O 1 .bss + Key_mode 0x200000e5 O 1 .bss + TK_icon 0x200000e6 O 34 .bss + MultiTimes_Filter 0x20000108 O 1 .bss + Base_Speed 0x20000109 O 1 .bss + TK_IO_ENABLE 0x2000010c O 4 .bss + Valid_Key_Num 0x20000110 O 1 .bss + TK_senprd 0x20000112 O 34 .bss + TK_Wakeup_level 0x20000134 O 1 .bss + TK_Triggerlevel 0x20000136 O 34 .bss + TK_EC_LEVEL 0x20000158 O 2 .bss + TK_FVR_LEVEL 0x2000015a O 2 .bss + TK_BaseCnt 0x2000015c O 4 .bss + TK_PSEL_MODE 0x20000160 O 2 .bss + R_CMPB_BUF 0x20000164 O 4 .bss + R_CMPA_BUF 0x20000168 O 4 .bss + R_SIORX_buf 0x2000016c O 40 .bss + g_uart 0x20000194 O 345 .bss + touch_para 0x200002f0 O 28 .bss + touch_state 0x2000030c O 20 .bss + g_key 0x20000320 O 48 .bss + g_eeprom 0x20000350 O 6 .bss + g_adc 0x20000356 O 55 .bss + HT1621 0x20000390 O 60 .bss + detect_inf 0x200003cc O 8 .bss + TempCtrl 0x200003d4 O 31 .bss + Debug_Inf 0x200003f3 O 12 .bss + zigbee_queue_buf 0x20000400 O 265 .bss + queue_in 0x2000050c O 4 .bss + zigbee_uart_rx_buf 0x20000510 O 137 .bss + queue_out 0x2000059c O 4 .bss + rf_info 0x200005a0 O 3 .bss + zigbee_uart_tx_buf 0x200005a3 O 137 .bss + baseline_data0 0x2000062c O 34 .bss + TK_Postive_build2 0x2000064e O 17 .bss + Key_Map1 0x20000660 O 4 .bss + offset_data2_abs 0x20000664 O 34 .bss + scan_f 0x20000686 O 1 .bss + offset_data1_abs 0x20000688 O 34 .bss + Release_debounce0 0x200006aa O 17 .bss + Key_Map0 0x200006bc O 4 .bss + bsae_over_f 0x200006c0 O 1 .bss + scan_cnt 0x200006c2 O 2 .bss + Press_debounce0 0x200006c4 O 17 .bss + offset_data0 0x200006d6 O 34 .bss + sampling_data1 0x200006f8 O 34 .bss + Key_Map2 0x2000071c O 4 .bss + Release_debounce1 0x20000720 O 17 .bss + tk_overflow_f 0x20000731 O 1 .bss + TK_Negtive_build2 0x20000732 O 17 .bss + base_update_f 0x20000743 O 1 .bss + TK_Postive_build1 0x20000744 O 17 .bss + time_cnt 0x20000758 O 4 .bss + lpt_scan_pend_cnt 0x2000075c O 2 .bss + TK_track_cnt 0x2000075e O 1 .bss + Key_Map 0x20000760 O 4 .bss + baseline_data1 0x20000764 O 34 .bss + TK_Postive_build0 0x20000786 O 17 .bss + sampling_data2 0x20000798 O 34 .bss + offset_data1 0x200007ba O 34 .bss + TK_ovrdect_cnt 0x200007dc O 1 .bss + Press_debounce2 0x200007dd O 17 .bss + TK_Negtive_build1 0x200007ee O 17 .bss + tk_num 0x200007ff O 1 .bss + TK_Negtive_build0 0x20000800 O 17 .bss + Press_debounce1 0x20000811 O 17 .bss + Release_debounce2 0x20000822 O 17 .bss + r_Key_Map_Temp 0x20000834 O 4 .bss + tk_seque 0x20000838 O 17 .bss + scan_step 0x20000849 O 1 .bss + baseline_data2 0x2000084a O 34 .bss + tk_sampling_max 0x2000086c O 34 .bss + offset_data0_abs 0x2000088e O 34 .bss + offset_data2 0x200008b0 O 34 .bss + sampling_data0 0x200008d2 O 34 .bss + _ebss 0x200008f4 0 .bss + _end 0x200008f4 0 .bss + end 0x200008f4 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: 0x00007eb0, 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 1233 .text pow.o + 0x00000b5e 0x00000006 Code RO 1241 .text fabs.o + 0x00000b64 0x00000020 Code RO 1247 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1254 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1265 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1270 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1277 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1284 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1291 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1298 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1305 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1312 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1319 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1326 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1340 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1347 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1354 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1360 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1367 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1374 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1395 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1400 .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 137 .text.GPIO_PullHighLow_DIS Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e98 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001ea0 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001ea8 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001ebe 0x00000010 Code RO 151 .text.GPIO_Read_Status 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 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fa8 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fc0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fd8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001ff4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002010 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000020fc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x0000210c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x0000211c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x0000213c 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x0000215c 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x00002184 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000021ac 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x000023e4 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x0000241c 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x000024f4 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x00002510 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002574 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002584 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x000025a4 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x000025d0 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000025dc 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00002604 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002618 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002630 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002644 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x000026c0 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002858 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x000029d8 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a78 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002aa4 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002be4 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002bfc 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c14 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002c24 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c34 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c44 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c54 0x0000006c Code RO 705 .text.startup.main Obj/main.o + 0x00002cc0 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002cec 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002d10 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002d70 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002dd0 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002e34 0x00000088 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002ebc 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002fac 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003014 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x0000307c 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003228 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x0000325c 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000032dc 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x0000334c 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003388 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000033c4 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00003458 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00003540 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003594 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x000035c4 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000035f4 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x0000363c 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003698 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000036f8 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x0000372c 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003778 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000037dc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000037de 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000037e6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000037ee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000037f6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000037fe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003806 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000380e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003816 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000381e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003826 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000382e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003836 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003840 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003864 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003888 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000038ac 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000038b4 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000039bc 0x00000068 Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003a24 0x0000009c Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003ac0 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003b48 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003b54 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003b58 0x00000078 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003bd0 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003d08 0x0000003c Code RO 865 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003d44 0x000000ac Code RO 867 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003df0 0x0000003c Code RO 868 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003e2c 0x000000d8 Code RO 869 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003f04 0x00000018 Code RO 870 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003f1c 0x00000084 Code RO 871 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003fa0 0x000000b8 Code RO 872 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00004058 0x000000e4 Code RO 873 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x0000413c 0x00000038 Code RO 874 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004174 0x000000cc Code RO 875 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004240 0x0000001a Code RO 876 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x0000425c 0x000000d8 Code RO 877 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004334 0x00000016 Code RO 896 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x0000434c 0x00000074 Code RO 897 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000043c0 0x00000044 Code RO 898 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004404 0x00000070 Code RO 900 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004474 0x00000018 Code RO 901 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x0000448c 0x00000050 Code RO 902 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000044dc 0x0000006c Code RO 903 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004548 0x000000ac Code RO 904 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x000045f4 0x000000a8 Code RO 905 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x0000469c 0x00000040 Code RO 906 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x000046dc 0x00000080 Code RO 907 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x0000475c 0x0000005c Code RO 925 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000047b8 0x00000048 Code RO 926 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004800 0x000000c0 Code RO 927 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000048c0 0x000000b0 Code RO 928 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004970 0x00000010 Code RO 929 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004980 0x00000048 Code RO 947 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000049c8 0x00000030 Code RO 948 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x000049f8 0x0000008c Code RO 949 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00004a84 0x00000050 Code RO 953 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00004ad4 0x00000040 Code RO 954 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00004b14 0x0000004c Code RO 955 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x00004b60 0x00000088 Code RO 956 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004be8 0x00000080 Code RO 957 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004c68 0x00000048 Code RO 958 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00004cb0 0x00000070 Code RO 959 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00004d20 0x00000044 Code RO 960 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00004d64 0x00000048 Code RO 961 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00004dac 0x00000024 Code RO 962 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00004dd0 0x00000098 Code RO 964 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00004e68 0x00000064 Code RO 965 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00004ecc 0x00000060 Code RO 966 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00004f2c 0x0000002c Code RO 986 .text.MODEL_Ctrl_Init Obj/SYSTEM_model_detection.o + 0x00004f58 0x000000b4 Code RO 987 .text.Control_Mode_Detection Obj/SYSTEM_model_detection.o + 0x0000500c 0x0000013c Code RO 1004 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00005148 0x0000004c Code RO 1005 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00005194 0x0000004c Code RO 1006 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x000051e0 0x00000030 Code RO 1007 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00005210 0x00000030 Code RO 1008 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00005240 0x00000034 Code RO 1009 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00005274 0x000000f4 Code RO 1010 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x00005368 0x000000f0 Code RO 1011 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00005458 0x000000e4 Code RO 1029 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000553c 0x000000e4 Code RO 1030 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005620 0x000000fc Code RO 1031 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000571c 0x0000006c Code RO 1032 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005788 0x000000fc Code RO 1033 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005884 0x0000006c Code RO 1034 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x000058f0 0x00000090 Code RO 1035 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005980 0x0000004c Code RO 1051 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x000059cc 0x00000020 Code RO 1052 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x000059ec 0x00000300 Code RO 1053 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00005cec 0x00000034 Code RO 1070 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00005d20 0x00000070 Code RO 1071 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00005d90 0x0000006c Code RO 1072 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00005dfc 0x00000016 Code RO 1089 .text.get_check_sum Obj/USRCTRL_rf_uart_protocol.o + 0x00005e14 0x00000034 Code RO 1091 .text.Queue_Read_Byte Obj/USRCTRL_rf_uart_protocol.o + 0x00005e48 0x0000001c Code RO 1092 .text.with_data_rxbuff Obj/USRCTRL_rf_uart_protocol.o + 0x00005e64 0x00000034 Code RO 1093 .text.RF_Info_Init Obj/USRCTRL_rf_uart_protocol.o + 0x00005e98 0x00000040 Code RO 1094 .text.Add_Frame_Head Obj/USRCTRL_rf_uart_protocol.o + 0x00005ed8 0x00000094 Code RO 1095 .text.Product_Info_Update Obj/USRCTRL_rf_uart_protocol.o + 0x00005f6c 0x00000038 Code RO 1096 .text.Recv_RFNetState_Ack Obj/USRCTRL_rf_uart_protocol.o + 0x00005fa4 0x000000b0 Code RO 1097 .text.Tem_Fun_Ctrl_Report Obj/USRCTRL_rf_uart_protocol.o + 0x00006054 0x00000128 Code RO 1099 .text.data_handle Obj/USRCTRL_rf_uart_protocol.o + 0x0000617c 0x000000c8 Code RO 1100 .text.zigbee_uart_service Obj/USRCTRL_rf_uart_protocol.o + 0x00006244 0x000000d0 Code RO 1101 .text.TemFun_Report_Task Obj/USRCTRL_rf_uart_protocol.o + 0x00006314 0x0000006c Code RO 1119 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00006380 0x00000024 Code RO 1120 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x000063a4 0x00000024 Code RO 1121 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x000063c8 0x00000024 Code RO 1122 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x000063ec 0x00000024 Code RO 1123 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00006410 0x0000004c Code RO 1139 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x0000645c 0x0000003c Code RO 1140 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00006498 0x00000016 Code RO 1141 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x000064b0 0x000000ec Code RO 1142 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x0000659c 0x00000050 Code RO 1143 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x000065ec 0x00000054 Code RO 1144 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00006640 0x00000164 Code RO 1145 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x000067a4 0x000000c8 Code RO 1146 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x0000686c 0x00000010 Code RO 1172 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x0000687c 0x00000028 Code RO 1174 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x000068a4 0x000000bc Code RO 1175 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006960 0x00000134 Code RO 1178 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x00006a94 0x00000058 Code RO 1179 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006aec 0x00000088 Code RO 1183 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00006b74 0x00000028 Code RO 1184 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006b9c 0x00000084 Code RO 1185 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006c20 0x00000020 Code RO 1186 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00006c40 0x00000180 Code RO 1187 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006dc0 0x0000011c Code RO 1188 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00006edc 0x000001d0 Code RO 1189 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x000070ac 0x00000054 Code RO 1190 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007100 0x00000078 Code RO 1191 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00007178 0x00000034 Code RO 1192 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x000071ac 0x00000038 Code RO 1193 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x000071e4 0x0000001c Code RO 1194 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x00007200 0x00000028 Code RO 1195 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00007228 0x00000180 Code RO 1196 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x000073a8 0x00000284 Code RO 1213 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000762c 0x00000035 Data RO 878 .rodata Obj/SYSTEM_touch_key.o + 0x00007661 0x00000001 PAD + 0x00007662 0x00000334 Data RO 930 .rodata Obj/SYSTEM_adc.o + 0x00007996 0x0000000a Data RO 968 .rodata Obj/SYSTEM_ht1621.o + 0x000079a0 0x00000030 Data RO 1236 .rodata pow.o + 0x000079d0 0x00000014 Data RO 1336 .rodata _thenan_df.o + 0x000079e4 0x00000100 Data RO 1384 .rodata _clz.o + 0x00007ae4 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00007af2 0x00000092 Data RO 879 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00007b84 0x0000016e Data RO 908 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00007cf2 0x00000017 Data RO 988 .rodata.str1.1 Obj/SYSTEM_model_detection.o + 0x00007d09 0x00000040 Data RO 1012 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00007d49 0x0000007e Data RO 1036 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00007dc7 0x00000045 Data RO 1054 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00007e0c 0x00000057 Data RO 1073 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00007e63 0x00000021 Data RO 1102 .rodata.str1.1 Obj/USRCTRL_rf_uart_protocol.o + 0x00007e84 0x0000002c Data RO 1147 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + + Region RAM (Base: 0x20000000, Size: 0x000008f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1170 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x0000000c Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000d0 0x00000004 Zero RW 924 .bss Obj/SYSTEM_adc.o + 0x200000d4 0x00000004 Zero RW 1003 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200000d8 0x00000004 Zero RW 1088 .bss Obj/USRCTRL_rf_uart_protocol.o + 0x200000dc 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x20000162 0x00000002 PAD + 0x20000164 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000194 0x00000159 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x200002ed 0x00000003 PAD + 0x200002f0 0x00000060 Zero RW 892 COMMON Obj/SYSTEM_touch_key.o + 0x20000350 0x00000006 Zero RW 921 COMMON Obj/SYSTEM_eeprom.o + 0x20000356 0x00000037 Zero RW 943 COMMON Obj/SYSTEM_adc.o + 0x2000038d 0x00000003 PAD + 0x20000390 0x0000003c Zero RW 982 COMMON Obj/SYSTEM_ht1621.o + 0x200003cc 0x00000008 Zero RW 1000 COMMON Obj/SYSTEM_model_detection.o + 0x200003d4 0x0000001f Zero RW 1025 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200003f3 0x0000000c Zero RW 1085 COMMON Obj/USRCTRL_debug_unit.o + 0x200003ff 0x00000001 PAD + 0x20000400 0x0000022c Zero RW 1115 COMMON Obj/USRCTRL_rf_uart_protocol.o + 0x2000062c 0x000002c8 Zero RW 1209 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 288 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 21133 Obj/FWlib_apt32f102_syscon.o + 326 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 + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9268 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 108 14 0 12 12466 Obj/main.o + 504 0 0 0 16152 Obj/mcu_initial.o + 2434 0 0 60 15229 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 674 0 0 365 13824 Obj/SYSTEM_uart.o + 2010 199 5 96 16283 Obj/SYSTEM_touch_key.o + 1062 366 0 6 14159 Obj/SYSTEM_eeprom.o + 548 820 0 59 12830 Obj/SYSTEM_adc.o + 1452 10 0 60 15767 Obj/SYSTEM_ht1621.o + 224 23 0 8 11213 Obj/SYSTEM_model_detection.o + 1100 64 0 35 12312 Obj/USRCTRL_tempctrl_unit.o + 1320 126 0 0 11907 Obj/USRCTRL_key_logic.o + 876 69 0 0 11420 Obj/USRCTRL_display_logic.o + 272 87 0 12 11312 Obj/USRCTRL_debug_unit.o + 1302 33 0 560 14410 Obj/USRCTRL_rf_uart_protocol.o + 252 0 0 0 11489 Obj/USRCTRL_myrelay.o + 1114 44 0 0 13294 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 20404 1855 109 1407 388077 Object Totals + 4 1 6 9 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 + + 2876 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 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 + 30224 2180 164 2128 413091 Grand Totals + 30224 2180 164 2128 413091 Elf Image Totals + 30224 2180 164 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 32404 ( 31.64kB) +Total RW Size (RW Data + ZI Data) 2292 ( 2.24kB) +Total ROM Size (Code + RO Data + RW Data) 32568 ( 31.80kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20240708.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20240708.asm new file mode 100644 index 0000000..2055a57 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20240708.asm @@ -0,0 +1,20397 @@ + +.//Obj/T1_AC_TC_V01_20240708.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003826 .long 0x00003826 + 8: 00003816 .long 0x00003816 + c: 00000184 .long 0x00000184 + 10: 0000381e .long 0x0000381e + 14: 000037dc .long 0x000037dc + 18: 00000184 .long 0x00000184 + 1c: 0000380e .long 0x0000380e + 20: 00003806 .long 0x00003806 + 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: 000037fe .long 0x000037fe + 44: 000037f6 .long 0x000037f6 + 48: 000037ee .long 0x000037ee + 4c: 000037e6 .long 0x000037e6 + 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: 000037de .long 0x000037de + 80: 000071e4 .long 0x000071e4 + 84: 00002ebc .long 0x00002ebc + 88: 00002fac .long 0x00002fac + 8c: 00003014 .long 0x00003014 + 90: 0000307c .long 0x0000307c + 94: 00000184 .long 0x00000184 + 98: 00003228 .long 0x00003228 + 9c: 00003594 .long 0x00003594 + a0: 000035c4 .long 0x000035c4 + a4: 0000325c .long 0x0000325c + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000032dc .long 0x000032dc + b4: 0000334c .long 0x0000334c + b8: 00003388 .long 0x00003388 + bc: 000033c4 .long 0x000033c4 + c0: 00000184 .long 0x00000184 + c4: 00003836 .long 0x00003836 + c8: 00000184 .long 0x00000184 + cc: 00003458 .long 0x00003458 + d0: 00003540 .long 0x00003540 + d4: 000035f4 .long 0x000035f4 + d8: 0000363c .long 0x0000363c + dc: 00003698 .long 0x00003698 + e0: 0000382e .long 0x0000382e + e4: 00006bd0 .long 0x00006bd0 + e8: 000036f8 .long 0x000036f8 + ec: 00000184 .long 0x00000184 + f0: 0000372c .long 0x0000372c + f4: 00003778 .long 0x00003778 + 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, 0x2c54 // 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: 00002c54 .long 0x00002c54 + 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, 0x7a84 // 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: 00007a84 .long 0x00007a84 + 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, 0x7a84 // 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, 0x7a84 // 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: 00007a84 .long 0x00007a84 + 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, 0x7ab4 // 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: 00007ab4 .long 0x00007ab4 + +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, 0x7ab4 // 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: 00007ab4 .long 0x00007ab4 + 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, 0x7ab4 // 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: 00007ab4 .long 0x00007ab4 + +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, 0x7ac8 // 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: 00007ac8 .long 0x00007ac8 + +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, 0x7fa0 // 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, 0x200000a4 // 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, 0x200008f4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a4 // 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: 00007fa0 .long 0x00007fa0 + 1a7c: 200000a4 .long 0x200000a4 + 1a80: 200008f4 .long 0x200008f4 + 1a84: 200000a4 .long 0x200000a4 + +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_PullHighLow_DIS: + +00001e7c : +{ + (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)); + 1e7c: 4121 lsli r1, r1, 1 + 1e7e: 3203 movi r2, 3 + 1e80: 9068 ld.w r3, (r0, 0x20) + 1e82: 7084 lsl r2, r1 + 1e84: 68c9 andn r3, r2 + 1e86: b068 st.w r3, (r0, 0x20) +} + 1e88: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001e8a : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1e8a: 4121 lsli r1, r1, 1 + 1e8c: 3301 movi r3, 1 + 1e8e: 9049 ld.w r2, (r0, 0x24) + 1e90: 70c4 lsl r3, r1 + 1e92: 6cc8 or r3, r2 + 1e94: b069 st.w r3, (r0, 0x24) +} + 1e96: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001e98 : +//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; + 1ea8: 9045 ld.w r2, (r0, 0x14) + 1eaa: 3301 movi r3, 1 + 1eac: 7085 lsr r2, r1 + 1eae: 688c and r2, r3 + { + if (dat==1) + 1eb0: 3a40 cmpnei r2, 0 + 1eb2: 70c4 lsl r3, r1 + 1eb4: 0c03 bf 0x1eba // 1eba + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00001ebe : +/*************************************************************/ +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); + 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.UART0_DeInit: + +00001f90 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 1f90: 1065 lrw r3, 0x20000040 // 1fa4 + 1f92: 3200 movi r2, 0 + 1f94: 9360 ld.w r3, (r3, 0x0) + 1f96: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 1f98: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 1f9a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 1f9c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 1f9e: b344 st.w r2, (r3, 0x10) +} + 1fa0: 783c jmp r15 + 1fa2: 0000 bkpt + 1fa4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00001fa8 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 1fa8: 1065 lrw r3, 0x2000003c // 1fbc + 1faa: 3200 movi r2, 0 + 1fac: 9360 ld.w r3, (r3, 0x0) + 1fae: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 1fb0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 1fb2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 1fb4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 1fb6: b344 st.w r2, (r3, 0x10) +} + 1fb8: 783c jmp r15 + 1fba: 0000 bkpt + 1fbc: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00001fc0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 1fc0: 1065 lrw r3, 0x20000038 // 1fd4 + 1fc2: 3200 movi r2, 0 + 1fc4: 9360 ld.w r3, (r3, 0x0) + 1fc6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 1fc8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 1fca: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 1fcc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 1fce: b344 st.w r2, (r3, 0x10) +} + 1fd0: 783c jmp r15 + 1fd2: 0000 bkpt + 1fd4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00001fd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 1fd8: 1065 lrw r3, 0x20000040 // 1fec + 1fda: 320f movi r2, 15 + 1fdc: 9360 ld.w r3, (r3, 0x0) + 1fde: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1fe0: 3380 movi r3, 128 + 1fe2: 4366 lsli r3, r3, 6 + 1fe4: 1043 lrw r2, 0xe000e100 // 1ff0 + 1fe6: b260 st.w r3, (r2, 0x0) +} + 1fe8: 783c jmp r15 + 1fea: 0000 bkpt + 1fec: 20000040 .long 0x20000040 + 1ff0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00001ff4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 1ff4: 1065 lrw r3, 0x20000038 // 2008 + 1ff6: 320f movi r2, 15 + 1ff8: 9360 ld.w r3, (r3, 0x0) + 1ffa: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1ffc: 3380 movi r3, 128 + 1ffe: 4368 lsli r3, r3, 8 + 2000: 1043 lrw r2, 0xe000e100 // 200c + 2002: b260 st.w r3, (r2, 0x0) +} + 2004: 783c jmp r15 + 2006: 0000 bkpt + 2008: 20000038 .long 0x20000038 + 200c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002010 : +//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) + 2010: 3840 cmpnei r0, 0 + 2012: 0821 bt 0x2054 // 2054 + { + if(UART_IO_G==0) + 2014: 3940 cmpnei r1, 0 + 2016: 080a bt 0x202a // 202a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2018: 1177 lrw r3, 0x2000004c // 20f4 + 201a: 31ff movi r1, 255 + 201c: 9340 ld.w r2, (r3, 0x0) + 201e: 9260 ld.w r3, (r2, 0x0) + 2020: 68c5 andn r3, r1 + 2022: 3ba2 bseti r3, 2 + 2024: 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 + 2026: b260 st.w r3, (r2, 0x0) + 2028: 0415 br 0x2052 // 2052 + else if(UART_IO_G==1) + 202a: 3941 cmpnei r1, 1 + 202c: 0813 bt 0x2052 // 2052 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 202e: 1172 lrw r3, 0x2000004c // 20f4 + 2030: 31f0 movi r1, 240 + 2032: 9340 ld.w r2, (r3, 0x0) + 2034: 9260 ld.w r3, (r2, 0x0) + 2036: 4130 lsli r1, r1, 16 + 2038: 68c5 andn r3, r1 + 203a: 31e0 movi r1, 224 + 203c: 412f lsli r1, r1, 15 + 203e: 6cc4 or r3, r1 + 2040: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2042: 31f0 movi r1, 240 + 2044: 9261 ld.w r3, (r2, 0x4) + 2046: 412c lsli r1, r1, 12 + 2048: 68c5 andn r3, r1 + 204a: 31e0 movi r1, 224 + 204c: 412b lsli r1, r1, 11 + 204e: 6cc4 or r3, r1 + 2050: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2052: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2054: 3841 cmpnei r0, 1 + 2056: 082d bt 0x20b0 // 20b0 + if(UART_IO_G==0) + 2058: 3940 cmpnei r1, 0 + 205a: 0814 bt 0x2082 // 2082 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 205c: 1167 lrw r3, 0x20000048 // 20f8 + 205e: 310f movi r1, 15 + 2060: 9340 ld.w r2, (r3, 0x0) + 2062: 9260 ld.w r3, (r2, 0x0) + 2064: 68c5 andn r3, r1 + 2066: 3107 movi r1, 7 + 2068: 6cc4 or r3, r1 + 206a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 206c: 32f0 movi r2, 240 + 206e: 1162 lrw r3, 0x2000004c // 20f4 + 2070: 4250 lsli r2, r2, 16 + 2072: 9320 ld.w r1, (r3, 0x0) + 2074: 9161 ld.w r3, (r1, 0x4) + 2076: 68c9 andn r3, r2 + 2078: 32e0 movi r2, 224 + 207a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 207c: 6cc8 or r3, r2 + 207e: b161 st.w r3, (r1, 0x4) + 2080: 07e9 br 0x2052 // 2052 + else if(UART_IO_G==1) + 2082: 3941 cmpnei r1, 1 + 2084: 080c bt 0x209c // 209c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2086: 107c lrw r3, 0x2000004c // 20f4 + 2088: 32ff movi r2, 255 + 208a: 9320 ld.w r1, (r3, 0x0) + 208c: 424c lsli r2, r2, 12 + 208e: 9160 ld.w r3, (r1, 0x0) + 2090: 68c9 andn r3, r2 + 2092: 32ee movi r2, 238 + 2094: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2096: 6cc8 or r3, r2 + 2098: b160 st.w r3, (r1, 0x0) +} + 209a: 07dc br 0x2052 // 2052 + else if(UART_IO_G==2) + 209c: 3942 cmpnei r1, 2 + 209e: 0bda bt 0x2052 // 2052 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 20a0: 1075 lrw r3, 0x2000004c // 20f4 + 20a2: 32ee movi r2, 238 + 20a4: 9320 ld.w r1, (r3, 0x0) + 20a6: 9161 ld.w r3, (r1, 0x4) + 20a8: 4368 lsli r3, r3, 8 + 20aa: 4b68 lsri r3, r3, 8 + 20ac: 4257 lsli r2, r2, 23 + 20ae: 07e7 br 0x207c // 207c + if (IO_UART_NUM==IO_UART2) + 20b0: 3842 cmpnei r0, 2 + 20b2: 0bd0 bt 0x2052 // 2052 + if(UART_IO_G==0) + 20b4: 3940 cmpnei r1, 0 + 20b6: 0809 bt 0x20c8 // 20c8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 20b8: 106f lrw r3, 0x2000004c // 20f4 + 20ba: 31ff movi r1, 255 + 20bc: 9340 ld.w r2, (r3, 0x0) + 20be: 9260 ld.w r3, (r2, 0x0) + 20c0: 68c5 andn r3, r1 + 20c2: 3177 movi r1, 119 + 20c4: 6cc4 or r3, r1 + 20c6: 07b0 br 0x2026 // 2026 + else if(UART_IO_G==1) + 20c8: 3941 cmpnei r1, 1 + 20ca: 0809 bt 0x20dc // 20dc + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 20cc: 106a lrw r3, 0x2000004c // 20f4 + 20ce: 32ee movi r2, 238 + 20d0: 9320 ld.w r1, (r3, 0x0) + 20d2: 9160 ld.w r3, (r1, 0x0) + 20d4: 4368 lsli r3, r3, 8 + 20d6: 4b68 lsri r3, r3, 8 + 20d8: 4257 lsli r2, r2, 23 + 20da: 07de br 0x2096 // 2096 + else if(UART_IO_G==2) + 20dc: 3942 cmpnei r1, 2 + 20de: 0bba bt 0x2052 // 2052 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 20e0: 1066 lrw r3, 0x20000048 // 20f8 + 20e2: 32ff movi r2, 255 + 20e4: 9320 ld.w r1, (r3, 0x0) + 20e6: 4250 lsli r2, r2, 16 + 20e8: 9160 ld.w r3, (r1, 0x0) + 20ea: 68c9 andn r3, r2 + 20ec: 32cc movi r2, 204 + 20ee: 424f lsli r2, r2, 15 + 20f0: 07d3 br 0x2096 // 2096 + 20f2: 0000 bkpt + 20f4: 2000004c .long 0x2000004c + 20f8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000020fc : +//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); + 20fc: 1063 lrw r3, 0x80003 // 2108 + 20fe: 6c8c or r2, r3 + 2100: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2102: b024 st.w r1, (r0, 0x10) +} + 2104: 783c jmp r15 + 2106: 0000 bkpt + 2108: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +0000210c : +//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); + 210c: 1063 lrw r3, 0x8000f // 2118 + 210e: 6c8c or r2, r3 + 2110: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2112: b024 st.w r1, (r0, 0x10) +} + 2114: 783c jmp r15 + 2116: 0000 bkpt + 2118: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +0000211c : +//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) +{ + 211c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 211e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2120: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2122: 5b85 subu r4, r3, r1 + 2124: 6490 cmphs r4, r2 + 2126: 0c02 bf 0x212a // 212a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2128: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 212a: 8380 ld.b r4, (r3, 0x0) + 212c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 212e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2130: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2132: 3c40 cmpnei r4, 0 + 2134: 0bfd bt 0x212e // 212e + 2136: 2300 addi r3, 1 + 2138: 07f5 br 0x2122 // 2122 + +Disassembly of section .text.EPT_Software_Prg: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 213c: 1067 lrw r3, 0x20000020 // 2158 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 213e: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 2140: 9340 ld.w r2, (r3, 0x0) + 2142: 9260 ld.w r3, (r2, 0x0) + 2144: 3ba0 bseti r3, 0 + 2146: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 2148: 9261 ld.w r3, (r2, 0x4) + 214a: 4128 lsli r1, r1, 8 + 214c: 68c5 andn r3, r1 + 214e: 3bac bseti r3, 12 + 2150: 3bae bseti r3, 14 + 2152: b261 st.w r3, (r2, 0x4) +} + 2154: 783c jmp r15 + 2156: 0000 bkpt + 2158: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +0000215c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 215c: 1068 lrw r3, 0x20000020 // 217c + 215e: 3280 movi r2, 128 + 2160: 9360 ld.w r3, (r3, 0x0) + 2162: 608c addu r2, r3 + 2164: 1027 lrw r1, 0xa55ac73a // 2180 + 2166: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2168: 9341 ld.w r2, (r3, 0x4) + 216a: 3aa0 bseti r2, 0 + 216c: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 216e: 3101 movi r1, 1 + 2170: 9341 ld.w r2, (r3, 0x4) + 2172: 6884 and r2, r1 + 2174: 3a40 cmpnei r2, 0 + 2176: 0ffd bf 0x2170 // 2170 +} + 2178: 783c jmp r15 + 217a: 0000 bkpt + 217c: 20000020 .long 0x20000020 + 2180: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +00002184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2184: 1068 lrw r3, 0x20000020 // 21a4 + 2186: 3280 movi r2, 128 + 2188: 9360 ld.w r3, (r3, 0x0) + 218a: 608c addu r2, r3 + 218c: 1027 lrw r1, 0xa55ac73a // 21a8 + 218e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2190: 9341 ld.w r2, (r3, 0x4) + 2192: 31fe movi r1, 254 + 2194: 6884 and r2, r1 + 2196: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2198: 3101 movi r1, 1 + 219a: 9341 ld.w r2, (r3, 0x4) + 219c: 6884 and r2, r1 + 219e: 3a40 cmpnei r2, 0 + 21a0: 0bfd bt 0x219a // 219a +} + 21a2: 783c jmp r15 + 21a4: 20000020 .long 0x20000020 + 21a8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +000021ac : +//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) + 21ac: 3840 cmpnei r0, 0 + 21ae: 0822 bt 0x21f2 // 21f2 + { + if(IO_Num_X==IO_NUM_PA07) + 21b0: 3950 cmpnei r1, 16 + 21b2: 080a bt 0x21c6 // 21c6 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 21b4: 0375 lrw r3, 0x2000004c // 23dc + 21b6: 9340 ld.w r2, (r3, 0x0) + 21b8: 9260 ld.w r3, (r2, 0x0) + 21ba: 4364 lsli r3, r3, 4 + 21bc: 4b64 lsri r3, r3, 4 + 21be: 3bbd bseti r3, 29 + 21c0: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 21c2: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 21c4: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 21c6: 3951 cmpnei r1, 17 + 21c8: 080b bt 0x21de // 21de + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 21ca: 037a lrw r3, 0x2000004c // 23dc + 21cc: 32f0 movi r2, 240 + 21ce: 9320 ld.w r1, (r3, 0x0) + 21d0: 9161 ld.w r3, (r1, 0x4) + 21d2: 4244 lsli r2, r2, 4 + 21d4: 68c9 andn r3, r2 + 21d6: 3ba8 bseti r3, 8 + 21d8: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 21da: b161 st.w r3, (r1, 0x4) + 21dc: 07f4 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA15) + 21de: 3952 cmpnei r1, 18 + 21e0: 0bf2 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 21e2: 137f lrw r3, 0x2000004c // 23dc + 21e4: 9340 ld.w r2, (r3, 0x0) + 21e6: 9261 ld.w r3, (r2, 0x4) + 21e8: 4364 lsli r3, r3, 4 + 21ea: 4b64 lsri r3, r3, 4 + 21ec: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 21ee: b261 st.w r3, (r2, 0x4) + 21f0: 07ea br 0x21c4 // 21c4 + else if(EPT_IO_X==EPT_IO_CHAY) + 21f2: 3841 cmpnei r0, 1 + 21f4: 0823 bt 0x223a // 223a + if(IO_Num_X==IO_NUM_PB03) + 21f6: 3953 cmpnei r1, 19 + 21f8: 080a bt 0x220c // 220c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 21fa: 137a lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 21fc: 9320 ld.w r1, (r3, 0x0) + 21fe: 32f0 movi r2, 240 + 2200: 9160 ld.w r3, (r1, 0x0) + 2202: 4248 lsli r2, r2, 8 + 2204: 68c9 andn r3, r2 + 2206: 3bac bseti r3, 12 + 2208: 3bae bseti r3, 14 + 220a: 040b br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB05) + 220c: 3954 cmpnei r1, 20 + 220e: 080b bt 0x2224 // 2224 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 2210: 1374 lrw r3, 0x20000048 // 23e0 + 2212: 32f0 movi r2, 240 + 2214: 9320 ld.w r1, (r3, 0x0) + 2216: 9160 ld.w r3, (r1, 0x0) + 2218: 4250 lsli r2, r2, 16 + 221a: 68c9 andn r3, r2 + 221c: 3bb4 bseti r3, 20 + 221e: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2220: b160 st.w r3, (r1, 0x0) +} + 2222: 07d1 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA12) + 2224: 3955 cmpnei r1, 21 + 2226: 0bcf bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 2228: 136d lrw r3, 0x2000004c // 23dc + 222a: 32f0 movi r2, 240 + 222c: 9320 ld.w r1, (r3, 0x0) + 222e: 9161 ld.w r3, (r1, 0x4) + 2230: 424c lsli r2, r2, 12 + 2232: 68c9 andn r3, r2 + 2234: 3bb0 bseti r3, 16 + 2236: 3bb2 bseti r3, 18 + 2238: 07d1 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBX) + 223a: 3842 cmpnei r0, 2 + 223c: 0821 bt 0x227e // 227e + if(IO_Num_X==IO_NUM_PB02) + 223e: 3956 cmpnei r1, 22 + 2240: 080a bt 0x2254 // 2254 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 2242: 1368 lrw r3, 0x20000048 // 23e0 + 2244: 32f0 movi r2, 240 + 2246: 9320 ld.w r1, (r3, 0x0) + 2248: 9160 ld.w r3, (r1, 0x0) + 224a: 4244 lsli r2, r2, 4 + 224c: 68c9 andn r3, r2 + 224e: 3ba9 bseti r3, 9 + 2250: 3baa bseti r3, 10 + 2252: 07e7 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA11) + 2254: 3957 cmpnei r1, 23 + 2256: 080a bt 0x226a // 226a + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2258: 1361 lrw r3, 0x2000004c // 23dc + 225a: 32f0 movi r2, 240 + 225c: 9320 ld.w r1, (r3, 0x0) + 225e: 9161 ld.w r3, (r1, 0x4) + 2260: 4248 lsli r2, r2, 8 + 2262: 68c9 andn r3, r2 + 2264: 3bac bseti r3, 12 + 2266: 3bae bseti r3, 14 + 2268: 07b9 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PA14) + 226a: 3958 cmpnei r1, 24 + 226c: 0bac bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 226e: 127c lrw r3, 0x2000004c // 23dc + 2270: 32f0 movi r2, 240 + 2272: 9320 ld.w r1, (r3, 0x0) + 2274: 9161 ld.w r3, (r1, 0x4) + 2276: 4254 lsli r2, r2, 20 + 2278: 68c9 andn r3, r2 + 227a: 3bba bseti r3, 26 + 227c: 07af br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBY) + 227e: 3843 cmpnei r0, 3 + 2280: 0820 bt 0x22c0 // 22c0 + if(IO_Num_X==IO_NUM_PB04) + 2282: 3959 cmpnei r1, 25 + 2284: 080a bt 0x2298 // 2298 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 2286: 1277 lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2288: 9320 ld.w r1, (r3, 0x0) + 228a: 32f0 movi r2, 240 + 228c: 9160 ld.w r3, (r1, 0x0) + 228e: 424c lsli r2, r2, 12 + 2290: 68c9 andn r3, r2 + 2292: 3bb0 bseti r3, 16 + 2294: 3bb2 bseti r3, 18 + 2296: 07c5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA05) + 2298: 395a cmpnei r1, 26 + 229a: 0809 bt 0x22ac // 22ac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 229c: 1270 lrw r3, 0x2000004c // 23dc + 229e: 32f0 movi r2, 240 + 22a0: 9320 ld.w r1, (r3, 0x0) + 22a2: 9160 ld.w r3, (r1, 0x0) + 22a4: 4250 lsli r2, r2, 16 + 22a6: 68c9 andn r3, r2 + 22a8: 3bb7 bseti r3, 23 + 22aa: 07bb br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 22ac: 395b cmpnei r1, 27 + 22ae: 0b8b bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 22b0: 126b lrw r3, 0x2000004c // 23dc + 22b2: 310f movi r1, 15 + 22b4: 9340 ld.w r2, (r3, 0x0) + 22b6: 9261 ld.w r3, (r2, 0x4) + 22b8: 68c5 andn r3, r1 + 22ba: 3ba0 bseti r3, 0 + 22bc: 3ba2 bseti r3, 2 + 22be: 0798 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_CHCX) + 22c0: 3844 cmpnei r0, 4 + 22c2: 0823 bt 0x2308 // 2308 + if(IO_Num_X==IO_NUM_PB05) + 22c4: 3954 cmpnei r1, 20 + 22c6: 0809 bt 0x22d8 // 22d8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 22c8: 1266 lrw r3, 0x20000048 // 23e0 + 22ca: 32f0 movi r2, 240 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 9160 ld.w r3, (r1, 0x0) + 22d0: 4250 lsli r2, r2, 16 + 22d2: 68c9 andn r3, r2 + 22d4: 3bb6 bseti r3, 22 + 22d6: 07a5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA03) + 22d8: 395c cmpnei r1, 28 + 22da: 0803 bt 0x22e0 // 22e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 22dc: 1260 lrw r3, 0x2000004c // 23dc + 22de: 078f br 0x21fc // 21fc + else if(IO_Num_X==IO_NUM_PB03) + 22e0: 3953 cmpnei r1, 19 + 22e2: 0809 bt 0x22f4 // 22f4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 22e4: 117f lrw r3, 0x20000048 // 23e0 + 22e6: 32f0 movi r2, 240 + 22e8: 9320 ld.w r1, (r3, 0x0) + 22ea: 9160 ld.w r3, (r1, 0x0) + 22ec: 4248 lsli r2, r2, 8 + 22ee: 68c9 andn r3, r2 + 22f0: 3bae bseti r3, 14 + 22f2: 0797 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB00) + 22f4: 395d cmpnei r1, 29 + 22f6: 0b67 bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22f8: 117a lrw r3, 0x20000048 // 23e0 + 22fa: 310f movi r1, 15 + 22fc: 9340 ld.w r2, (r3, 0x0) + 22fe: 9260 ld.w r3, (r2, 0x0) + 2300: 68c5 andn r3, r1 + 2302: 3ba0 bseti r3, 0 + 2304: 3ba2 bseti r3, 2 + 2306: 075e br 0x21c2 // 21c2 + else if(EPT_IO_X==EPT_IO_CHCY) + 2308: 3845 cmpnei r0, 5 + 230a: 0825 bt 0x2354 // 2354 + if(IO_Num_X==IO_NUM_PB04) + 230c: 3959 cmpnei r1, 25 + 230e: 0809 bt 0x2320 // 2320 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 2310: 1174 lrw r3, 0x20000048 // 23e0 + 2312: 32f0 movi r2, 240 + 2314: 9320 ld.w r1, (r3, 0x0) + 2316: 9160 ld.w r3, (r1, 0x0) + 2318: 424c lsli r2, r2, 12 + 231a: 68c9 andn r3, r2 + 231c: 3bb2 bseti r3, 18 + 231e: 0781 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA04) + 2320: 395e cmpnei r1, 30 + 2322: 0803 bt 0x2328 // 2328 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2324: 116e lrw r3, 0x2000004c // 23dc + 2326: 07b1 br 0x2288 // 2288 + else if(IO_Num_X==IO_NUM_PA09) + 2328: 395f cmpnei r1, 31 + 232a: 0809 bt 0x233c // 233c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 232c: 116c lrw r3, 0x2000004c // 23dc + 232e: 31f0 movi r1, 240 + 2330: 9340 ld.w r2, (r3, 0x0) + 2332: 9261 ld.w r3, (r2, 0x4) + 2334: 68c5 andn r3, r1 + 2336: 3170 movi r1, 112 + 2338: 6cc4 or r3, r1 + 233a: 075a br 0x21ee // 21ee + else if(IO_Num_X==IO_NUM_PA013) + 233c: 3320 movi r3, 32 + 233e: 64c6 cmpne r1, r3 + 2340: 0b42 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 2342: 1167 lrw r3, 0x2000004c // 23dc + 2344: 32f0 movi r2, 240 + 2346: 9320 ld.w r1, (r3, 0x0) + 2348: 9161 ld.w r3, (r1, 0x4) + 234a: 4250 lsli r2, r2, 16 + 234c: 68c9 andn r3, r2 + 234e: 3bb4 bseti r3, 20 + 2350: 3bb6 bseti r3, 22 + 2352: 0744 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHD) + 2354: 3846 cmpnei r0, 6 + 2356: 0815 bt 0x2380 // 2380 + if(IO_Num_X==IO_NUM_PB03) + 2358: 3953 cmpnei r1, 19 + 235a: 080a bt 0x236e // 236e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 235c: 1161 lrw r3, 0x20000048 // 23e0 + 235e: 32f0 movi r2, 240 + 2360: 9320 ld.w r1, (r3, 0x0) + 2362: 9160 ld.w r3, (r1, 0x0) + 2364: 4248 lsli r2, r2, 8 + 2366: 68c9 andn r3, r2 + 2368: 3bad bseti r3, 13 + 236a: 3bae bseti r3, 14 + 236c: 075a br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 236e: 395b cmpnei r1, 27 + 2370: 0b2a bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2372: 107b lrw r3, 0x2000004c // 23dc + 2374: 310f movi r1, 15 + 2376: 9340 ld.w r2, (r3, 0x0) + 2378: 9261 ld.w r3, (r2, 0x4) + 237a: 68c5 andn r3, r1 + 237c: 3ba2 bseti r3, 2 + 237e: 0738 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_EPI) + 2380: 3847 cmpnei r0, 7 + 2382: 0b21 bt 0x21c4 // 21c4 + if(IO_Num_X==IO_NUM_PA07) + 2384: 3950 cmpnei r1, 16 + 2386: 0809 bt 0x2398 // 2398 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2388: 1075 lrw r3, 0x2000004c // 23dc + 238a: 9340 ld.w r2, (r3, 0x0) + 238c: 9260 ld.w r3, (r2, 0x0) + 238e: 4364 lsli r3, r3, 4 + 2390: 4b64 lsri r3, r3, 4 + 2392: 3bbc bseti r3, 28 + 2394: 3bbe bseti r3, 30 + 2396: 0716 br 0x21c2 // 21c2 + else if(IO_Num_X==IO_NUM_PA013) + 2398: 3320 movi r3, 32 + 239a: 64c6 cmpne r1, r3 + 239c: 0809 bt 0x23ae // 23ae + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 239e: 1070 lrw r3, 0x2000004c // 23dc + 23a0: 32f0 movi r2, 240 + 23a2: 9320 ld.w r1, (r3, 0x0) + 23a4: 9161 ld.w r3, (r1, 0x4) + 23a6: 4250 lsli r2, r2, 16 + 23a8: 68c9 andn r3, r2 + 23aa: 3bb6 bseti r3, 22 + 23ac: 0717 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PB03) + 23ae: 3953 cmpnei r1, 19 + 23b0: 080b bt 0x23c6 // 23c6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 23b2: 106c lrw r3, 0x20000048 // 23e0 + 23b4: 32f0 movi r2, 240 + 23b6: 9320 ld.w r1, (r3, 0x0) + 23b8: 4248 lsli r2, r2, 8 + 23ba: 9160 ld.w r3, (r1, 0x0) + 23bc: 68c9 andn r3, r2 + 23be: 32e0 movi r2, 224 + 23c0: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23c2: 6cc8 or r3, r2 + 23c4: 072e br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB02) + 23c6: 3956 cmpnei r1, 22 + 23c8: 0afe bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23ca: 1066 lrw r3, 0x20000048 // 23e0 + 23cc: 32f0 movi r2, 240 + 23ce: 9320 ld.w r1, (r3, 0x0) + 23d0: 4244 lsli r2, r2, 4 + 23d2: 9160 ld.w r3, (r1, 0x0) + 23d4: 68c9 andn r3, r2 + 23d6: 32e0 movi r2, 224 + 23d8: 4243 lsli r2, r2, 3 + 23da: 07f4 br 0x23c2 // 23c2 + 23dc: 2000004c .long 0x2000004c + 23e0: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +000023e4 : +//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) +{ + 23e4: 14c3 push r4-r6 + 23e6: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23e8: 104b lrw r2, 0x20000020 // 2414 + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23ea: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23ec: 92a0 ld.w r5, (r2, 0x0) + 23ee: 9580 ld.w r4, (r5, 0x0) + 23f0: 32ff movi r2, 255 + 23f2: 6909 andn r4, r2 + 23f4: 3ca0 bseti r4, 0 + 23f6: 3ca1 bseti r4, 1 + 23f8: 6d00 or r4, r0 + 23fa: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23fc: 0802 bt 0x2400 // 2400 + { + EPT0->PSCR=EPT_PSCR; + 23fe: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 2400: 9543 ld.w r2, (r5, 0xc) + 2402: 1066 lrw r3, 0x7003f // 2418 + 2404: 688d andn r2, r3 + 2406: 6c98 or r2, r6 + 2408: 3aa2 bseti r2, 2 + 240a: 3ab2 bseti r2, 18 + 240c: 6c48 or r1, r2 + 240e: b523 st.w r1, (r5, 0xc) +} + 2410: 1483 pop r4-r6 + 2412: 0000 bkpt + 2414: 20000020 .long 0x20000020 + 2418: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +0000241c : + 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 + ) +{ + 241c: 14c4 push r4-r7 + 241e: 1425 subi r14, r14, 20 + 2420: 9889 ld.w r4, (r14, 0x24) + 2422: b880 st.w r4, (r14, 0x0) + 2424: 988a ld.w r4, (r14, 0x28) + 2426: b881 st.w r4, (r14, 0x4) + 2428: 988b ld.w r4, (r14, 0x2c) + 242a: b882 st.w r4, (r14, 0x8) + 242c: 988c ld.w r4, (r14, 0x30) + 242e: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 2430: 3840 cmpnei r0, 0 +{ + 2432: 988d ld.w r4, (r14, 0x34) + 2434: b884 st.w r4, (r14, 0x10) + 2436: 98ce ld.w r6, (r14, 0x38) + 2438: 98ef ld.w r7, (r14, 0x3c) + 243a: 98b0 ld.w r5, (r14, 0x40) + 243c: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 243e: 0816 bt 0x246a // 246a + { + 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; + 2440: 6d14 or r4, r5 + 2442: 6d1c or r4, r7 + 2444: 98a4 ld.w r5, (r14, 0x10) + 2446: 6d18 or r4, r6 + 2448: 6d14 or r4, r5 + 244a: 98a3 ld.w r5, (r14, 0xc) + 244c: 6d14 or r4, r5 + 244e: 98a2 ld.w r5, (r14, 0x8) + 2450: 6d14 or r4, r5 + 2452: 98a1 ld.w r5, (r14, 0x4) + 2454: 6d14 or r4, r5 + 2456: 98a0 ld.w r5, (r14, 0x0) + 2458: 6d14 or r4, r5 + 245a: 6cd0 or r3, r4 + 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| + 245c: 1105 lrw r0, 0x20000020 // 24f0 + 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; + 245e: 6c8c or r2, r3 + 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| + 2460: 9000 ld.w r0, (r0, 0x0) + 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; + 2462: 6c48 or r1, r2 + 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| + 2464: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 2466: 1405 addi r14, r14, 20 + 2468: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 246a: 3841 cmpnei r0, 1 + 246c: 0815 bt 0x2496 // 2496 + 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; + 246e: 6d14 or r4, r5 + 2470: 6d1c or r4, r7 + 2472: 98a4 ld.w r5, (r14, 0x10) + 2474: 6d18 or r4, r6 + 2476: 6d14 or r4, r5 + 2478: 98a3 ld.w r5, (r14, 0xc) + 247a: 6d14 or r4, r5 + 247c: 98a2 ld.w r5, (r14, 0x8) + 247e: 6d14 or r4, r5 + 2480: 98a1 ld.w r5, (r14, 0x4) + 2482: 6d14 or r4, r5 + 2484: 98a0 ld.w r5, (r14, 0x0) + 2486: 6d14 or r4, r5 + 2488: 6cd0 or r3, r4 + 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| + 248a: 101a lrw r0, 0x20000020 // 24f0 + 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; + 248c: 6c8c or r2, r3 + 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| + 248e: 9000 ld.w r0, (r0, 0x0) + 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; + 2490: 6c48 or r1, r2 + 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| + 2492: b033 st.w r1, (r0, 0x4c) + 2494: 07e9 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMC) + 2496: 3842 cmpnei r0, 2 + 2498: 0815 bt 0x24c2 // 24c2 + 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; + 249a: 6d14 or r4, r5 + 249c: 6d1c or r4, r7 + 249e: 98a4 ld.w r5, (r14, 0x10) + 24a0: 6d18 or r4, r6 + 24a2: 6d14 or r4, r5 + 24a4: 98a3 ld.w r5, (r14, 0xc) + 24a6: 6d14 or r4, r5 + 24a8: 98a2 ld.w r5, (r14, 0x8) + 24aa: 6d14 or r4, r5 + 24ac: 98a1 ld.w r5, (r14, 0x4) + 24ae: 6d14 or r4, r5 + 24b0: 98a0 ld.w r5, (r14, 0x0) + 24b2: 6d14 or r4, r5 + 24b4: 6cd0 or r3, r4 + 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| + 24b6: 100f lrw r0, 0x20000020 // 24f0 + 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; + 24b8: 6c8c or r2, r3 + 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| + 24ba: 9000 ld.w r0, (r0, 0x0) + 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; + 24bc: 6c48 or r1, r2 + 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| + 24be: b034 st.w r1, (r0, 0x50) + 24c0: 07d3 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMD) + 24c2: 3843 cmpnei r0, 3 + 24c4: 0bd1 bt 0x2466 // 2466 + 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; + 24c6: 6d14 or r4, r5 + 24c8: 6d1c or r4, r7 + 24ca: 98a4 ld.w r5, (r14, 0x10) + 24cc: 6d18 or r4, r6 + 24ce: 6d14 or r4, r5 + 24d0: 98a3 ld.w r5, (r14, 0xc) + 24d2: 6d14 or r4, r5 + 24d4: 98a2 ld.w r5, (r14, 0x8) + 24d6: 6d14 or r4, r5 + 24d8: 98a1 ld.w r5, (r14, 0x4) + 24da: 6d14 or r4, r5 + 24dc: 98a0 ld.w r5, (r14, 0x0) + 24de: 6d14 or r4, r5 + 24e0: 6cd0 or r3, r4 + 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| + 24e2: 1004 lrw r0, 0x20000020 // 24f0 + 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; + 24e4: 6c8c or r2, r3 + 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| + 24e6: 9000 ld.w r0, (r0, 0x0) + 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; + 24e8: 6c48 or r1, r2 + 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| + 24ea: b035 st.w r1, (r0, 0x54) +} + 24ec: 07bd br 0x2466 // 2466 + 24ee: 0000 bkpt + 24f0: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +000024f4 : +//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) +{ + 24f4: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 24f6: 1086 lrw r4, 0x20000020 // 250c +{ + 24f8: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 24fc: 9480 ld.w r4, (r4, 0x0) + 24fe: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 2500: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 2502: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 2504: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 2506: b4ae st.w r5, (r4, 0x38) +} + 2508: 1482 pop r4-r5 + 250a: 0000 bkpt + 250c: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002510 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2510: 1078 lrw r3, 0x20000050 // 2570 + 2512: 3200 movi r2, 0 + 2514: 9360 ld.w r3, (r3, 0x0) + 2516: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2518: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 251a: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 251c: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 251e: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2520: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 2522: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 2524: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 2526: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2528: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 252a: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 252c: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 252e: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2530: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 2532: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 2534: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 2536: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2538: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 253a: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 253c: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 253e: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2540: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 2542: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2544: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 2546: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2548: 23ff addi r3, 256 + 254a: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 254c: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 254e: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2550: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 2552: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2554: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 2556: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2558: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 255a: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 255c: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 255e: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2560: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 2562: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2564: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 2566: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2568: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 256a: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 256c: b351 st.w r2, (r3, 0x44) +} + 256e: 783c jmp r15 + 2570: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002574 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2574: 1063 lrw r3, 0x20000050 // 2580 + 2576: 9340 ld.w r2, (r3, 0x0) + 2578: 9264 ld.w r3, (r2, 0x10) + 257a: 6c0c or r0, r3 + 257c: b204 st.w r0, (r2, 0x10) +} + 257e: 783c jmp r15 + 2580: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002584 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2584: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 2586: 3002 movi r0, 2 + 2588: e3fffff6 bsr 0x2574 // 2574 + while(!(ADC0->SR &ADC12_ADCENS)); + 258c: 1065 lrw r3, 0x20000050 // 25a0 + 258e: 3280 movi r2, 128 + 2590: 9320 ld.w r1, (r3, 0x0) + 2592: 4241 lsli r2, r2, 1 + 2594: 9168 ld.w r3, (r1, 0x20) + 2596: 68c8 and r3, r2 + 2598: 3b40 cmpnei r3, 0 + 259a: 0ffd bf 0x2594 // 2594 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 259c: 1490 pop r15 + 259e: 0000 bkpt + 25a0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +000025a4 : + if (NewState != DISABLE) + 25a4: 3940 cmpnei r1, 0 + 25a6: 106a lrw r3, 0x20000050 // 25cc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25a8: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 25aa: 0c09 bf 0x25bc // 25bc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25ac: 9260 ld.w r3, (r2, 0x0) + 25ae: 6cc0 or r3, r0 + 25b0: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 25b2: 9262 ld.w r3, (r2, 0x8) + 25b4: 68c0 and r3, r0 + 25b6: 3b40 cmpnei r3, 0 + 25b8: 0ffd bf 0x25b2 // 25b2 +} + 25ba: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 25bc: 9261 ld.w r3, (r2, 0x4) + 25be: 6cc0 or r3, r0 + 25c0: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 25c2: 9262 ld.w r3, (r2, 0x8) + 25c4: 68c0 and r3, r0 + 25c6: 3b40 cmpnei r3, 0 + 25c8: 0bfd bt 0x25c2 // 25c2 + 25ca: 07f8 br 0x25ba // 25ba + 25cc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +000025d0 : +{ + 25d0: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 25d2: 3001 movi r0, 1 + 25d4: e3ffffd0 bsr 0x2574 // 2574 +} + 25d8: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000025dc : +{ + 25dc: 14d0 push r15 + if (NewState != DISABLE) + 25de: 3840 cmpnei r0, 0 + 25e0: 0c04 bf 0x25e8 // 25e8 + 25e2: e3ffffd1 bsr 0x2584 // 2584 +} + 25e6: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 25e8: 3004 movi r0, 4 + 25ea: e3ffffc5 bsr 0x2574 // 2574 + while(ADC0->SR&ADC12_ADCENS); + 25ee: 1065 lrw r3, 0x20000050 // 2600 + 25f0: 3280 movi r2, 128 + 25f2: 9320 ld.w r1, (r3, 0x0) + 25f4: 4241 lsli r2, r2, 1 + 25f6: 9168 ld.w r3, (r1, 0x20) + 25f8: 68c8 and r3, r2 + 25fa: 3b40 cmpnei r3, 0 + 25fc: 0bfd bt 0x25f6 // 25f6 + 25fe: 07f4 br 0x25e6 // 25e6 + 2600: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00002604 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 2604: 1064 lrw r3, 0x20000050 // 2614 + 2606: 3202 movi r2, 2 + 2608: 9320 ld.w r1, (r3, 0x0) + 260a: 9168 ld.w r3, (r1, 0x20) + 260c: 68c8 and r3, r2 + 260e: 3b40 cmpnei r3, 0 + 2610: 0ffd bf 0x260a // 260a +} + 2612: 783c jmp r15 + 2614: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002618 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2618: 200f addi r0, 16 + 261a: 1065 lrw r3, 0x20000050 // 262c + 261c: 3201 movi r2, 1 + 261e: 9320 ld.w r1, (r3, 0x0) + 2620: 7080 lsl r2, r0 + 2622: 9168 ld.w r3, (r1, 0x20) + 2624: 68c8 and r3, r2 + 2626: 3b40 cmpnei r3, 0 + 2628: 0ffd bf 0x2622 // 2622 +} + 262a: 783c jmp r15 + 262c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002630 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2630: 203f addi r0, 64 + 2632: 1064 lrw r3, 0x20000050 // 2640 + 2634: 4002 lsli r0, r0, 2 + 2636: 9360 ld.w r3, (r3, 0x0) + 2638: 600c addu r0, r3 + 263a: 9000 ld.w r0, (r0, 0x0) + 263c: 7401 zexth r0, r0 +} + 263e: 783c jmp r15 + 2640: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002644 : + //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 ) +{ + 2644: 14d4 push r4-r7, r15 + 2646: 1422 subi r14, r14, 8 + 2648: 1c08 addi r4, r14, 32 + 264a: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 264c: 2d00 subi r5, 1 +{ + 264e: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2650: 10db lrw r6, 0x20000050 // 26bc +{ + 2652: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2656: 45aa lsli r5, r5, 10 + 2658: 9680 ld.w r4, (r6, 0x0) + 265a: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 265c: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 265e: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2660: 081c bt 0x2698 // 2698 + { + ADC0->MR&=~CONTCV; //one short mode + 2662: 9425 ld.w r1, (r4, 0x14) + 2664: 4121 lsli r1, r1, 1 + 2666: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2668: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 266a: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 266c: 4002 lsli r0, r0, 2 + 266e: 9428 ld.w r1, (r4, 0x20) + 2670: 6840 and r1, r0 + 2672: 3940 cmpnei r1, 0 + 2674: 0bfd bt 0x266e // 266e + 2676: b861 st.w r3, (r14, 0x4) + 2678: b840 st.w r2, (r14, 0x0) + 267a: e3ffff85 bsr 0x2584 // 2584 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 267e: 3f40 cmpnei r7, 0 + 2680: 9840 ld.w r2, (r14, 0x0) + 2682: 9861 ld.w r3, (r14, 0x4) + 2684: 0c16 bf 0x26b0 // 26b0 + { + ADC0->CR|=ADC12_10BITor12BIT; + 2686: 9600 ld.w r0, (r6, 0x0) + 2688: 9024 ld.w r1, (r0, 0x10) + 268a: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 268c: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 268e: 9620 ld.w r1, (r6, 0x0) + 2690: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 2692: b166 st.w r3, (r1, 0x18) +} + 2694: 1402 addi r14, r14, 8 + 2696: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2698: 3941 cmpnei r1, 1 + 269a: 0bee bt 0x2676 // 2676 + ADC0->MR|=CONTCV; //Continuous mode + 269c: 9425 ld.w r1, (r4, 0x14) + 269e: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 26a0: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 26a2: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 26a4: 4002 lsli r0, r0, 2 + 26a6: 9428 ld.w r1, (r4, 0x20) + 26a8: 6840 and r1, r0 + 26aa: 3940 cmpnei r1, 0 + 26ac: 0ffd bf 0x26a6 // 26a6 + 26ae: 07e4 br 0x2676 // 2676 + ADC0->CR&=~ADC12_10BITor12BIT; + 26b0: 9600 ld.w r0, (r6, 0x0) + 26b2: 9024 ld.w r1, (r0, 0x10) + 26b4: 4121 lsli r1, r1, 1 + 26b6: 4921 lsri r1, r1, 1 + 26b8: 07ea br 0x268c // 268c + 26ba: 0000 bkpt + 26bc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +000026c0 : +//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) + 26c0: 3840 cmpnei r0, 0 + 26c2: 0808 bt 0x26d2 // 26d2 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 26c4: 127c lrw r3, 0x20000050 // 2834 + 26c6: 123d lrw r1, 0x103c0 // 2838 + 26c8: 9340 ld.w r2, (r3, 0x0) + 26ca: 9264 ld.w r3, (r2, 0x10) + 26cc: 68c5 andn r3, r1 + 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); + 26ce: b264 st.w r3, (r2, 0x10) + } +} + 26d0: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 26d2: 3841 cmpnei r0, 1 + 26d4: 0810 bt 0x26f4 // 26f4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26d6: 127a lrw r3, 0x2000004c // 283c + 26d8: 32f0 movi r2, 240 + 26da: 9320 ld.w r1, (r3, 0x0) + 26dc: 9160 ld.w r3, (r1, 0x0) + 26de: 4244 lsli r2, r2, 4 + 26e0: 68c9 andn r3, r2 + 26e2: 3bab bseti r3, 11 + 26e4: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 26e6: 1235 lrw r1, 0x103c0 // 2838 + 26e8: 1273 lrw r3, 0x20000050 // 2834 + 26ea: 9340 ld.w r2, (r3, 0x0) + 26ec: 9264 ld.w r3, (r2, 0x10) + 26ee: 68c5 andn r3, r1 + 26f0: 3ba6 bseti r3, 6 + 26f2: 07ee br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 26f4: 3842 cmpnei r0, 2 + 26f6: 0811 bt 0x2718 // 2718 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26f8: 1271 lrw r3, 0x2000004c // 283c + 26fa: 32f0 movi r2, 240 + 26fc: 9320 ld.w r1, (r3, 0x0) + 26fe: 9160 ld.w r3, (r1, 0x0) + 2700: 4244 lsli r2, r2, 4 + 2702: 68c9 andn r3, r2 + 2704: 3bab bseti r3, 11 + 2706: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2708: 122e lrw r1, 0x30103c0 // 2840 + 270a: 126b lrw r3, 0x20000050 // 2834 + 270c: 9340 ld.w r2, (r3, 0x0) + 270e: 9264 ld.w r3, (r2, 0x10) + 2710: 68c5 andn r3, r1 + 2712: 3ba7 bseti r3, 7 + 2714: 3bb8 bseti r3, 24 + 2716: 07dc br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2718: 3843 cmpnei r0, 3 + 271a: 0811 bt 0x273c // 273c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 271c: 1268 lrw r3, 0x2000004c // 283c + 271e: 32f0 movi r2, 240 + 2720: 9320 ld.w r1, (r3, 0x0) + 2722: 9160 ld.w r3, (r1, 0x0) + 2724: 4244 lsli r2, r2, 4 + 2726: 68c9 andn r3, r2 + 2728: 3bab bseti r3, 11 + 272a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 272c: 1225 lrw r1, 0x30103c0 // 2840 + 272e: 1262 lrw r3, 0x20000050 // 2834 + 2730: 9340 ld.w r2, (r3, 0x0) + 2732: 9264 ld.w r3, (r2, 0x10) + 2734: 68c5 andn r3, r1 + 2736: 1224 lrw r1, 0x30000c0 // 2844 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2738: 6cc4 or r3, r1 + 273a: 07ca br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 273c: 3845 cmpnei r0, 5 + 273e: 0809 bt 0x2750 // 2750 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2740: 117d lrw r3, 0x20000050 // 2834 + 2742: 1222 lrw r1, 0x503c0 // 2848 + 2744: 9340 ld.w r2, (r3, 0x0) + 2746: 9264 ld.w r3, (r2, 0x10) + 2748: 68c5 andn r3, r1 + 274a: 3ba8 bseti r3, 8 + 274c: 3bb2 bseti r3, 18 + 274e: 07c0 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2750: 3846 cmpnei r0, 6 + 2752: 0812 bt 0x2776 // 2776 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2754: 117a lrw r3, 0x2000004c // 283c + 2756: 32f0 movi r2, 240 + 2758: 9320 ld.w r1, (r3, 0x0) + 275a: 9160 ld.w r3, (r1, 0x0) + 275c: 4248 lsli r2, r2, 8 + 275e: 68c9 andn r3, r2 + 2760: 32b0 movi r2, 176 + 2762: 4248 lsli r2, r2, 8 + 2764: 6cc8 or r3, r2 + 2766: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2768: 1134 lrw r1, 0x103c0 // 2838 + 276a: 1173 lrw r3, 0x20000050 // 2834 + 276c: 9340 ld.w r2, (r3, 0x0) + 276e: 9264 ld.w r3, (r2, 0x10) + 2770: 68c5 andn r3, r1 + 2772: 3ba9 bseti r3, 9 + 2774: 07ad br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2776: 3847 cmpnei r0, 7 + 2778: 0819 bt 0x27aa // 27aa + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 277a: 1171 lrw r3, 0x2000004c // 283c + 277c: 31f0 movi r1, 240 + 277e: 9340 ld.w r2, (r3, 0x0) + 2780: 9260 ld.w r3, (r2, 0x0) + 2782: 4128 lsli r1, r1, 8 + 2784: 68c5 andn r3, r1 + 2786: 31b0 movi r1, 176 + 2788: 4128 lsli r1, r1, 8 + 278a: 6cc4 or r3, r1 + 278c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 278e: 31f0 movi r1, 240 + 2790: 9260 ld.w r3, (r2, 0x0) + 2792: 4124 lsli r1, r1, 4 + 2794: 68c5 andn r3, r1 + 2796: 3bab bseti r3, 11 + 2798: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 279a: 1128 lrw r1, 0x103c0 // 2838 + 279c: 1166 lrw r3, 0x20000050 // 2834 + 279e: 9340 ld.w r2, (r3, 0x0) + 27a0: 9264 ld.w r3, (r2, 0x10) + 27a2: 68c5 andn r3, r1 + 27a4: 3ba6 bseti r3, 6 + 27a6: 3ba9 bseti r3, 9 + 27a8: 0793 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 27aa: 3848 cmpnei r0, 8 + 27ac: 0818 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ae: 1164 lrw r3, 0x2000004c // 283c + 27b0: 31f0 movi r1, 240 + 27b2: 9340 ld.w r2, (r3, 0x0) + 27b4: 9260 ld.w r3, (r2, 0x0) + 27b6: 4128 lsli r1, r1, 8 + 27b8: 68c5 andn r3, r1 + 27ba: 31b0 movi r1, 176 + 27bc: 4128 lsli r1, r1, 8 + 27be: 6cc4 or r3, r1 + 27c0: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27c2: 31f0 movi r1, 240 + 27c4: 9260 ld.w r3, (r2, 0x0) + 27c6: 4124 lsli r1, r1, 4 + 27c8: 68c5 andn r3, r1 + 27ca: 3bab bseti r3, 11 + 27cc: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 27ce: 103d lrw r1, 0x30103c0 // 2840 + 27d0: 1079 lrw r3, 0x20000050 // 2834 + 27d2: 9340 ld.w r2, (r3, 0x0) + 27d4: 9264 ld.w r3, (r2, 0x10) + 27d6: 68c5 andn r3, r1 + 27d8: 103d lrw r1, 0x1000280 // 284c + 27da: 07af br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 27dc: 3849 cmpnei r0, 9 + 27de: 0818 bt 0x280e // 280e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27e0: 1077 lrw r3, 0x2000004c // 283c + 27e2: 31f0 movi r1, 240 + 27e4: 9340 ld.w r2, (r3, 0x0) + 27e6: 9260 ld.w r3, (r2, 0x0) + 27e8: 4128 lsli r1, r1, 8 + 27ea: 68c5 andn r3, r1 + 27ec: 31b0 movi r1, 176 + 27ee: 4128 lsli r1, r1, 8 + 27f0: 6cc4 or r3, r1 + 27f2: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27f4: 31f0 movi r1, 240 + 27f6: 9260 ld.w r3, (r2, 0x0) + 27f8: 4124 lsli r1, r1, 4 + 27fa: 68c5 andn r3, r1 + 27fc: 3bab bseti r3, 11 + 27fe: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2800: 1030 lrw r1, 0x30103c0 // 2840 + 2802: 106d lrw r3, 0x20000050 // 2834 + 2804: 9340 ld.w r2, (r3, 0x0) + 2806: 9264 ld.w r3, (r2, 0x10) + 2808: 68c5 andn r3, r1 + 280a: 1032 lrw r1, 0x30002c0 // 2850 + 280c: 0796 br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 280e: 384b cmpnei r0, 11 + 2810: 0b60 bt 0x26d0 // 26d0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2812: 106b lrw r3, 0x2000004c // 283c + 2814: 32f0 movi r2, 240 + 2816: 9320 ld.w r1, (r3, 0x0) + 2818: 9160 ld.w r3, (r1, 0x0) + 281a: 4248 lsli r2, r2, 8 + 281c: 68c9 andn r3, r2 + 281e: 32b0 movi r2, 176 + 2820: 4248 lsli r2, r2, 8 + 2822: 6cc8 or r3, r2 + 2824: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2826: 1029 lrw r1, 0x503c0 // 2848 + 2828: 1063 lrw r3, 0x20000050 // 2834 + 282a: 9340 ld.w r2, (r3, 0x0) + 282c: 9264 ld.w r3, (r2, 0x10) + 282e: 68c5 andn r3, r1 + 2830: 1029 lrw r1, 0x40300 // 2854 + 2832: 0783 br 0x2738 // 2738 + 2834: 20000050 .long 0x20000050 + 2838: 000103c0 .long 0x000103c0 + 283c: 2000004c .long 0x2000004c + 2840: 030103c0 .long 0x030103c0 + 2844: 030000c0 .long 0x030000c0 + 2848: 000503c0 .long 0x000503c0 + 284c: 01000280 .long 0x01000280 + 2850: 030002c0 .long 0x030002c0 + 2854: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002858 : +//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) +{ + 2858: 14d4 push r4-r7, r15 + 285a: 1421 subi r14, r14, 4 + 285c: b840 st.w r2, (r14, 0x0) + 285e: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2860: 125b lrw r2, 0x20000050 // 29cc + 2862: 92c0 ld.w r6, (r2, 0x0) + 2864: 3200 movi r2, 0 + 2866: 4202 lsli r0, r2, 2 + 2868: 6018 addu r0, r6 + 286a: 908c ld.w r4, (r0, 0x30) + 286c: 2200 addi r2, 1 + 286e: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2870: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2872: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2874: 0bf9 bt 0x2866 // 2866 + } + switch(ADC12_ADCINX) + 2876: 3d0f cmphsi r5, 16 + 2878: 0825 bt 0x28c2 // 28c2 + 287a: 6c17 mov r0, r5 + 287c: 1255 lrw r2, 0x2000004c // 29d0 + 287e: 1296 lrw r4, 0x20000048 // 29d4 + 2880: e3fff23e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2884: 322c1408 .long 0x322c1408 + 2888: 4d474039 .long 0x4d474039 + 288c: 756d6559 .long 0x756d6559 + 2890: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2894: 9240 ld.w r2, (r2, 0x0) + 2896: 9200 ld.w r0, (r2, 0x0) + 2898: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 289a: 9201 ld.w r0, (r2, 0x4) + 289c: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 289e: 9400 ld.w r0, (r4, 0x0) + 28a0: 9040 ld.w r2, (r0, 0x0) + 28a2: 34f0 movi r4, 240 + 28a4: 6891 andn r2, r4 + 28a6: 3aa4 bseti r2, 4 + 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; + 28a8: b040 st.w r2, (r0, 0x0) + break; + 28aa: 040c br 0x28c2 // 28c2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 28ac: 9200 ld.w r0, (r2, 0x0) + 28ae: 9040 ld.w r2, (r0, 0x0) + 28b0: 370f movi r7, 15 + 28b2: 689d andn r2, r7 + 28b4: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28b6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28b8: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 28ba: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 28bc: 9440 ld.w r2, (r4, 0x0) + 28be: 9200 ld.w r0, (r2, 0x0) + 28c0: b200 st.w r0, (r2, 0x0) + 28c2: 4362 lsli r3, r3, 2 + 28c4: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 28c6: 966c ld.w r3, (r6, 0x30) + 28c8: 3300 movi r3, 0 + 28ca: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 28cc: 9860 ld.w r3, (r14, 0x0) + 28ce: 6c4c or r1, r3 + 28d0: 964c ld.w r2, (r6, 0x30) + 28d2: 6d44 or r5, r1 + 28d4: 6d48 or r5, r2 + 28d6: b6ac st.w r5, (r6, 0x30) +} + 28d8: 1401 addi r14, r14, 4 + 28da: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 28dc: 9200 ld.w r0, (r2, 0x0) + 28de: 9040 ld.w r2, (r0, 0x0) + 28e0: 37f0 movi r7, 240 + 28e2: 689d andn r2, r7 + 28e4: 3aa4 bseti r2, 4 + 28e6: 07e8 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 28e8: 9200 ld.w r0, (r2, 0x0) + 28ea: 37f0 movi r7, 240 + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 47e8 lsli r7, r7, 8 + 28f0: 689d andn r2, r7 + 28f2: 3aac bseti r2, 12 + 28f4: 07e1 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: 37f0 movi r7, 240 + 28fa: 9040 ld.w r2, (r0, 0x0) + 28fc: 47f0 lsli r7, r7, 16 + 28fe: 689d andn r2, r7 + 2900: 3ab4 bseti r2, 20 + 2902: 07da br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2904: 9200 ld.w r0, (r2, 0x0) + 2906: 37f0 movi r7, 240 + 2908: 9040 ld.w r2, (r0, 0x0) + 290a: 47f4 lsli r7, r7, 20 + 290c: 689d andn r2, r7 + 290e: 3ab8 bseti r2, 24 + 2910: 07d3 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2912: 9200 ld.w r0, (r2, 0x0) + 2914: 9040 ld.w r2, (r0, 0x0) + 2916: 4244 lsli r2, r2, 4 + 2918: 4a44 lsri r2, r2, 4 + 291a: 3abc bseti r2, 28 + 291c: 07cd br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 291e: 9240 ld.w r2, (r2, 0x0) + 2920: 9200 ld.w r0, (r2, 0x0) + 2922: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2924: 9201 ld.w r0, (r2, 0x4) + 2926: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2928: 9400 ld.w r0, (r4, 0x0) + 292a: 34f0 movi r4, 240 + 292c: 9040 ld.w r2, (r0, 0x0) + 292e: 4484 lsli r4, r4, 4 + 2930: 6891 andn r2, r4 + 2932: 3aa8 bseti r2, 8 + 2934: 07ba br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2936: 9240 ld.w r2, (r2, 0x0) + 2938: 9200 ld.w r0, (r2, 0x0) + 293a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 293c: 9201 ld.w r0, (r2, 0x4) + 293e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2940: 9400 ld.w r0, (r4, 0x0) + 2942: 34f0 movi r4, 240 + 2944: 9040 ld.w r2, (r0, 0x0) + 2946: 4488 lsli r4, r4, 8 + 2948: 6891 andn r2, r4 + 294a: 3aac bseti r2, 12 + 294c: 07ae br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 294e: 9200 ld.w r0, (r2, 0x0) + 2950: 9040 ld.w r2, (r0, 0x0) + 2952: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 370f movi r7, 15 + 2958: 689d andn r2, r7 + 295a: 3aa0 bseti r2, 0 + 295c: 07af br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 295e: 9200 ld.w r0, (r2, 0x0) + 2960: 9040 ld.w r2, (r0, 0x0) + 2962: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2964: 9041 ld.w r2, (r0, 0x4) + 2966: 37f0 movi r7, 240 + 2968: 689d andn r2, r7 + 296a: 3aa4 bseti r2, 4 + 296c: 07a7 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 296e: 9200 ld.w r0, (r2, 0x0) + 2970: 9040 ld.w r2, (r0, 0x0) + 2972: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2974: 37f0 movi r7, 240 + 2976: 9041 ld.w r2, (r0, 0x4) + 2978: 47e4 lsli r7, r7, 4 + 297a: 689d andn r2, r7 + 297c: 3aa8 bseti r2, 8 + 297e: 079e br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2980: 9200 ld.w r0, (r2, 0x0) + 2982: 9040 ld.w r2, (r0, 0x0) + 2984: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2986: 37f0 movi r7, 240 + 2988: 9041 ld.w r2, (r0, 0x4) + 298a: 47e8 lsli r7, r7, 8 + 298c: 689d andn r2, r7 + 298e: 3aac bseti r2, 12 + 2990: 0795 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2992: 9200 ld.w r0, (r2, 0x0) + 2994: 9040 ld.w r2, (r0, 0x0) + 2996: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2998: 37f0 movi r7, 240 + 299a: 9041 ld.w r2, (r0, 0x4) + 299c: 47ec lsli r7, r7, 12 + 299e: 689d andn r2, r7 + 29a0: 3ab0 bseti r2, 16 + 29a2: 078c br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 29a4: 9200 ld.w r0, (r2, 0x0) + 29a6: 9040 ld.w r2, (r0, 0x0) + 29a8: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 29aa: 37f0 movi r7, 240 + 29ac: 9041 ld.w r2, (r0, 0x4) + 29ae: 47f0 lsli r7, r7, 16 + 29b0: 689d andn r2, r7 + 29b2: 3ab4 bseti r2, 20 + 29b4: 0783 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 29b6: 9240 ld.w r2, (r2, 0x0) + 29b8: 9200 ld.w r0, (r2, 0x0) + 29ba: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29bc: 9201 ld.w r0, (r2, 0x4) + 29be: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 29c0: 9400 ld.w r0, (r4, 0x0) + 29c2: 9040 ld.w r2, (r0, 0x0) + 29c4: 340f movi r4, 15 + 29c6: 6891 andn r2, r4 + 29c8: 3aa0 bseti r2, 0 + 29ca: 076f br 0x28a8 // 28a8 + 29cc: 20000050 .long 0x20000050 + 29d0: 2000004c .long 0x2000004c + 29d4: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +000029d8 : + 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) +{ + 29d8: 14c4 push r4-r7 + 29da: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 29dc: 1165 lrw r3, 0x20000060 // 2a70 + 29de: 1186 lrw r4, 0x5a5a5a5a // 2a74 + 29e0: 9360 ld.w r3, (r3, 0x0) + 29e2: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 29e4: 3407 movi r4, 7 + 29e6: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29e8: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 29ea: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ec: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29ee: 9384 ld.w r4, (r3, 0x10) + 29f0: 3c40 cmpnei r4, 0 + 29f2: 0bfe bt 0x29ee // 29ee + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 29f4: 2102 addi r1, 3 + 29f6: 4922 lsri r1, r1, 2 + 29f8: 4122 lsli r1, r1, 2 + 29fa: 6048 addu r1, r2 + 29fc: b820 st.w r1, (r14, 0x0) + 29fe: 5829 subu r1, r0, r2 + 2a00: b821 st.w r1, (r14, 0x4) + 2a02: 9820 ld.w r1, (r14, 0x0) + 2a04: 644a cmpne r2, r1 + 2a06: 0826 bt 0x2a52 // 2a52 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2a08: 3106 movi r1, 6 + SetUserKey; + 2a0a: 105b lrw r2, 0x5a5a5a5a // 2a74 + 2a0c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2a0e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2a10: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2a12: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a14: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2a16: 9324 ld.w r1, (r3, 0x10) + 2a18: 3940 cmpnei r1, 0 + 2a1a: 0bfe bt 0x2a16 // 2a16 + //Perform pre-programming 4 + SetUserKey; + 2a1c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a1e: 3201 movi r2, 1 + 2a20: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a22: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a24: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2a26: 934a ld.w r2, (r3, 0x28) + 2a28: 3a44 cmpnei r2, 4 + 2a2a: 0bfe bt 0x2a26 // 2a26 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2a2c: 3102 movi r1, 2 + SetUserKey; + 2a2e: 1052 lrw r2, 0x5a5a5a5a // 2a74 + 2a30: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2a32: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a34: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a36: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a38: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a3a: 932a ld.w r1, (r3, 0x28) + 2a3c: 3941 cmpnei r1, 1 + 2a3e: 0bfe bt 0x2a3a // 2a3a + //Write page cache data to flash memory 6 + SetUserKey; + 2a40: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a42: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a44: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a46: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a48: 934a ld.w r2, (r3, 0x28) + 2a4a: 3a42 cmpnei r2, 2 + 2a4c: 0bfe bt 0x2a48 // 2a48 +} + 2a4e: 1402 addi r14, r14, 8 + 2a50: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a52: 82e0 ld.b r7, (r2, 0x0) + 2a54: 8281 ld.b r4, (r2, 0x1) + 2a56: 4488 lsli r4, r4, 8 + 2a58: 8222 ld.b r1, (r2, 0x2) + 2a5a: 611c addu r4, r7 + 2a5c: 82a3 ld.b r5, (r2, 0x3) + 2a5e: 4130 lsli r1, r1, 16 + 2a60: 98c1 ld.w r6, (r14, 0x4) + 2a62: 6050 addu r1, r4 + 2a64: 45b8 lsli r5, r5, 24 + 2a66: 6188 addu r6, r2 + 2a68: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a6a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a6c: 2203 addi r2, 4 + 2a6e: 07ca br 0x2a02 // 2a02 + 2a70: 20000060 .long 0x20000060 + 2a74: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a78 : +//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) +{ + 2a78: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a84: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a86: 3b40 cmpnei r3, 0 + 2a88: 0c06 bf 0x2a94 // 2a94 + 2a8a: 6d0f mov r4, r3 + 2a8c: 6914 and r4, r5 + 2a8e: 3c40 cmpnei r4, 0 + 2a90: 0802 bt 0x2a94 // 2a94 + RdStartAdd +=4; + 2a92: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a94: 6d0f mov r4, r3 + 2a96: 6914 and r4, r5 + 2a98: 6100 addu r4, r0 + 2a9a: 8480 ld.b r4, (r4, 0x0) + 2a9c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002aa4 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2aa4: 33f8 movi r3, 248 + 2aa6: 4366 lsli r3, r3, 6 + 2aa8: 115b lrw r2, 0x2000010c // 2b94 + 2aaa: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2aac: 3246 movi r2, 70 + 2aae: 117b lrw r3, 0x20000112 // 2b98 + 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 + 2ab0: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2ab2: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2ab4: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2ab6: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2ab8: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2aba: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2abc: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2abe: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2ac0: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2ac2: 1157 lrw r2, 0x200002f0 // 2b9c + 2ac4: 8a22 ld.h r1, (r2, 0x4) + 2ac6: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2ac8: 8a23 ld.h r1, (r2, 0x6) + 2aca: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2acc: 8a24 ld.h r1, (r2, 0x8) + 2ace: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2ad0: 8a25 ld.h r1, (r2, 0xa) + 2ad2: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2ad4: 8a26 ld.h r1, (r2, 0xc) + 2ad6: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2ad8: 3146 movi r1, 70 + 2ada: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2adc: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2ade: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae0: 3128 movi r1, 40 + 2ae2: 1170 lrw r3, 0x20000136 // 2ba0 + 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 + 2ae4: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae6: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2ae8: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2aea: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2aec: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2aee: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2af0: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2af2: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2af4: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2af6: 8a27 ld.h r1, (r2, 0xe) + 2af8: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2afa: 8a28 ld.h r1, (r2, 0x10) + 2afc: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2afe: 8a29 ld.h r1, (r2, 0x12) + 2b00: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2b02: 8a2a ld.h r1, (r2, 0x14) + 2b04: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2b06: 8a2b ld.h r1, (r2, 0x16) + 2b08: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2b0a: 3128 movi r1, 40 + 2b0c: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2b0e: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2b10: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2b12: 8220 ld.b r1, (r2, 0x0) + 2b14: 1164 lrw r3, 0x200000dc // 2ba4 + 2b16: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2b18: 8221 ld.b r1, (r2, 0x1) + 2b1a: 1164 lrw r3, 0x200000e4 // 2ba8 + 2b1c: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2b1e: 3101 movi r1, 1 + 2b20: 1163 lrw r3, 0x200000e5 // 2bac + 2b22: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2b24: 3100 movi r1, 0 + 2b26: 1163 lrw r3, 0x20000108 // 2bb0 + 2b28: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2b2a: 3106 movi r1, 6 + 2b2c: 1162 lrw r3, 0x20000110 // 2bb4 + 2b2e: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2b30: 8223 ld.b r1, (r2, 0x3) + 2b32: 1162 lrw r3, 0x20000109 // 2bb8 + 2b34: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b36: 9246 ld.w r2, (r2, 0x18) + 2b38: 1161 lrw r3, 0x200000e0 // 2bbc + 2b3a: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b3c: 1141 lrw r2, 0xea5f // 2bc0 + 2b3e: 1162 lrw r3, 0x2000015c // 2bc4 + 2b40: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b42: 3200 movi r2, 0 + 2b44: 1161 lrw r3, 0x200000dd // 2bc8 + 2b46: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b48: 3202 movi r2, 2 + 2b4a: 1161 lrw r3, 0x200000de // 2bcc + 2b4c: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b4e: 3232 movi r2, 50 + 2b50: 1160 lrw r3, 0x20000134 // 2bd0 + 2b52: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b54: 3200 movi r2, 0 + 2b56: 1160 lrw r3, 0x20000160 // 2bd4 + 2b58: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b5a: 3201 movi r2, 1 + 2b5c: 107f lrw r3, 0x2000015a // 2bd8 + 2b5e: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b60: 3200 movi r2, 0 + 2b62: 107f lrw r3, 0x20000158 // 2bdc + 2b64: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b66: 3204 movi r2, 4 + 2b68: 107e lrw r3, 0x200000e6 // 2be0 + 2b6a: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2b6c: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2b6e: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2b70: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2b72: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2b74: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2b76: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2b78: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2b7a: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2b7c: 3207 movi r2, 7 + 2b7e: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2b80: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2b82: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2b84: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2b86: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2b88: 3204 movi r2, 4 + 2b8a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2b8c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2b8e: ab50 st.h r2, (r3, 0x20) + 2b90: 783c jmp r15 + 2b92: 0000 bkpt + 2b94: 2000010c .long 0x2000010c + 2b98: 20000112 .long 0x20000112 + 2b9c: 200002f0 .long 0x200002f0 + 2ba0: 20000136 .long 0x20000136 + 2ba4: 200000dc .long 0x200000dc + 2ba8: 200000e4 .long 0x200000e4 + 2bac: 200000e5 .long 0x200000e5 + 2bb0: 20000108 .long 0x20000108 + 2bb4: 20000110 .long 0x20000110 + 2bb8: 20000109 .long 0x20000109 + 2bbc: 200000e0 .long 0x200000e0 + 2bc0: 0000ea5f .long 0x0000ea5f + 2bc4: 2000015c .long 0x2000015c + 2bc8: 200000dd .long 0x200000dd + 2bcc: 200000de .long 0x200000de + 2bd0: 20000134 .long 0x20000134 + 2bd4: 20000160 .long 0x20000160 + 2bd8: 2000015a .long 0x2000015a + 2bdc: 20000158 .long 0x20000158 + 2be0: 200000e6 .long 0x200000e6 + +Disassembly of section .text.CORET_DeInit: + +00002be4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2be4: 1065 lrw r3, 0x20000064 // 2bf8 + 2be6: 3204 movi r2, 4 + 2be8: 9360 ld.w r3, (r3, 0x0) + 2bea: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2bec: 3200 movi r2, 0 + 2bee: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2bf0: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2bf2: b347 st.w r2, (r3, 0x1c) +} + 2bf4: 783c jmp r15 + 2bf6: 0000 bkpt + 2bf8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002bfc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2bfc: 1064 lrw r3, 0x20000064 // 2c0c + 2bfe: 3200 movi r2, 0 + 2c00: 9360 ld.w r3, (r3, 0x0) + 2c02: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2c04: 3201 movi r2, 1 + 2c06: 1063 lrw r3, 0xe000e100 // 2c10 + 2c08: b340 st.w r2, (r3, 0x0) +} + 2c0a: 783c jmp r15 + 2c0c: 20000064 .long 0x20000064 + 2c10: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002c14 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2c14: 1063 lrw r3, 0x20000064 // 2c20 + 2c16: 9340 ld.w r2, (r3, 0x0) + 2c18: 9264 ld.w r3, (r2, 0x10) + 2c1a: 3ba0 bseti r3, 0 + 2c1c: b264 st.w r3, (r2, 0x10) +} + 2c1e: 783c jmp r15 + 2c20: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002c24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2c24: 1063 lrw r3, 0x20000064 // 2c30 + 2c26: 9340 ld.w r2, (r3, 0x0) + 2c28: 9264 ld.w r3, (r2, 0x10) + 2c2a: 3b82 bclri r3, 2 + 2c2c: b264 st.w r3, (r2, 0x10) +} + 2c2e: 783c jmp r15 + 2c30: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c34: 1063 lrw r3, 0x20000064 // 2c40 + 2c36: 9340 ld.w r2, (r3, 0x0) + 2c38: 9264 ld.w r3, (r2, 0x10) + 2c3a: 3ba1 bseti r3, 1 + 2c3c: b264 st.w r3, (r2, 0x10) +} + 2c3e: 783c jmp r15 + 2c40: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c44 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c44: 1063 lrw r3, 0x20000064 // 2c50 + 2c46: 3200 movi r2, 0 + 2c48: 9360 ld.w r3, (r3, 0x0) + 2c4a: b346 st.w r2, (r3, 0x18) +} + 2c4c: 783c jmp r15 + 2c4e: 0000 bkpt + 2c50: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c54
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c54: 14d1 push r4, r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2c56: e00000ef bsr 0x2e34 // 2e34 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c5a: 1077 lrw r3, 0x20000350 // 2cb4 + 2c5c: 8340 ld.b r2, (r3, 0x0) + 2c5e: 1037 lrw r1, 0x7bc8 // 2cb8 + 2c60: 3000 movi r0, 0 + 2c62: e0000775 bsr 0x3b4c // 3b4c + + TemCtrl_Init(); + 2c66: e00011e7 bsr 0x5034 // 5034 + DisPlay_Init(); + 2c6a: e00016f3 bsr 0x5a50 // 5a50 + Debug_Init(); + 2c6e: e000188d bsr 0x5d88 // 5d88 + RF_Info_Init(); + 2c72: e0001969 bsr 0x5f44 // 5f44 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + + if (detect_inf.stop_detect == 0x00) { + 2c76: 1092 lrw r4, 0x200003cc // 2cbc + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c78: e3fff7f6 bsr 0x1c64 // 1c64 + if (detect_inf.stop_detect == 0x00) { + 2c7c: 8462 ld.b r3, (r4, 0x2) + 2c7e: 3b40 cmpnei r3, 0 + 2c80: 0804 bt 0x2c88 // 2c88 + Control_Mode_Detection(); + 2c82: e000117f bsr 0x4f80 // 4f80 + 2c86: 07f9 br 0x2c78 // 2c78 + }else { + + UART2_TASK(); + 2c88: e00006d0 bsr 0x3a28 // 3a28 + + Touch_Key_Task(); + 2c8c: e00008d2 bsr 0x3e30 // 3e30 + + TemCtrl_Pro(); + 2c90: e000139c bsr 0x53c8 // 53c8 + + DisPlay_Task(); + 2c94: e00016ee bsr 0x5a70 // 5a70 + + HT1621_Refresh_Task(); + 2c98: e000112e bsr 0x4ef4 // 4ef4 + + ADC_Sample_Task(); + 2c9c: e0000e14 bsr 0x48c4 // 48c4 + + Debug_Task(); + 2ca0: e00018c6 bsr 0x5e2c // 5e2c + + if (detect_inf.control_model != 0x00){ + 2ca4: 8463 ld.b r3, (r4, 0x3) + 2ca6: 3b40 cmpnei r3, 0 + 2ca8: 0fe8 bf 0x2c78 // 2c78 + + TemFun_Report_Task(); + 2caa: e0001b3d bsr 0x6324 // 6324 + zigbee_uart_service(); + 2cae: e0001ad7 bsr 0x625c // 625c + 2cb2: 07e3 br 0x2c78 // 2c78 + 2cb4: 20000350 .long 0x20000350 + 2cb8: 00007bc8 .long 0x00007bc8 + 2cbc: 200003cc .long 0x200003cc + +Disassembly of section .text.delay_nms: + +00002cc0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2cc0: 14d0 push r15 + 2cc2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2cc4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2cc6: 3300 movi r3, 0 + j = 50* t; + 2cc8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2cca: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2ccc: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cce: b860 st.w r3, (r14, 0x0) + 2cd0: 9840 ld.w r2, (r14, 0x0) + 2cd2: 9861 ld.w r3, (r14, 0x4) + 2cd4: 64c8 cmphs r2, r3 + 2cd6: 0c03 bf 0x2cdc // 2cdc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2cd8: 1403 addi r14, r14, 12 + 2cda: 1490 pop r15 + k++; + 2cdc: 9862 ld.w r3, (r14, 0x8) + 2cde: 2300 addi r3, 1 + 2ce0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2ce2: e3fff7c1 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2ce6: 9860 ld.w r3, (r14, 0x0) + 2ce8: 2300 addi r3, 1 + 2cea: 07f2 br 0x2cce // 2cce + +Disassembly of section .text.delay_nus: + +00002cec : +void delay_nus(unsigned int t) +{ + 2cec: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2cee: 3300 movi r3, 0 + 2cf0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2cf2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cf4: b860 st.w r3, (r14, 0x0) + 2cf6: 9840 ld.w r2, (r14, 0x0) + 2cf8: 9861 ld.w r3, (r14, 0x4) + 2cfa: 64c8 cmphs r2, r3 + 2cfc: 0c03 bf 0x2d02 // 2d02 + { + k++; + } +} + 2cfe: 1403 addi r14, r14, 12 + 2d00: 783c jmp r15 + k++; + 2d02: 9862 ld.w r3, (r14, 0x8) + 2d04: 2300 addi r3, 1 + 2d06: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2d08: 9860 ld.w r3, (r14, 0x0) + 2d0a: 2300 addi r3, 1 + 2d0c: 07f4 br 0x2cf4 // 2cf4 + +Disassembly of section .text.EPT0_CONFIG: + +00002d10 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2d10: 14d1 push r4, r15 + 2d12: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2d14: e3fffa14 bsr 0x213c // 213c +//------------ 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_PB00); //CX channel selection + 2d18: 311d movi r1, 29 + 2d1a: 3004 movi r0, 4 + 2d1c: e3fffa48 bsr 0x21ac // 21ac + //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) + 2d20: 3300 movi r3, 0 + 2d22: 3200 movi r2, 0 + 2d24: 3100 movi r1, 0 + 2d26: 3000 movi r0, 0 + 2d28: e3fffb5e bsr 0x23e4 // 23e4 +// 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, + 2d2c: 3380 movi r3, 128 + 2d2e: 3400 movi r4, 0 + 2d30: b862 st.w r3, (r14, 0x8) + 2d32: 3280 movi r2, 128 + 2d34: 3320 movi r3, 32 + 2d36: 3180 movi r1, 128 + 2d38: b861 st.w r3, (r14, 0x4) + 2d3a: 4250 lsli r2, r2, 16 + 2d3c: 412e lsli r1, r1, 14 + 2d3e: b888 st.w r4, (r14, 0x20) + 2d40: b887 st.w r4, (r14, 0x1c) + 2d42: b886 st.w r4, (r14, 0x18) + 2d44: b885 st.w r4, (r14, 0x14) + 2d46: b884 st.w r4, (r14, 0x10) + 2d48: b883 st.w r4, (r14, 0xc) + 2d4a: b880 st.w r4, (r14, 0x0) + 2d4c: 3301 movi r3, 1 + 2d4e: 3002 movi r0, 2 + 2d50: e3fffb66 bsr 0x241c // 241c +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2d54: 1066 lrw r3, 0xbb8 // 2d6c + 2d56: 3200 movi r2, 0 + 2d58: 3100 movi r1, 0 + 2d5a: 6c0f mov r0, r3 + 2d5c: b880 st.w r4, (r14, 0x0) + 2d5e: e3fffbcb bsr 0x24f4 // 24f4 + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2d62: e3fff9fd bsr 0x215c // 215c + +} + 2d66: 1409 addi r14, r14, 36 + 2d68: 1491 pop r4, r15 + 2d6a: 0000 bkpt + 2d6c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002d70 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2d70: 14d2 push r4-r5, r15 + 2d72: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2d74: 1095 lrw r4, 0x20000008 // 2dc8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d76: 3500 movi r5, 0 + BT_DeInit(BT1); + 2d78: 9400 ld.w r0, (r4, 0x0) + 2d7a: e3fff8bd bsr 0x1ef4 // 1ef4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d7e: 9400 ld.w r0, (r4, 0x0) + 2d80: b8a1 st.w r5, (r14, 0x4) + 2d82: b8a0 st.w r5, (r14, 0x0) + 2d84: 3308 movi r3, 8 + 2d86: 3200 movi r2, 0 + 2d88: 3101 movi r1, 1 + 2d8a: e3fff8cc 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); + 2d8e: 3380 movi r3, 128 + 2d90: 4363 lsli r3, r3, 3 + 2d92: b861 st.w r3, (r14, 0x4) + 2d94: 9400 ld.w r0, (r4, 0x0) + 2d96: 3300 movi r3, 0 + 2d98: b8a3 st.w r5, (r14, 0xc) + 2d9a: b8a2 st.w r5, (r14, 0x8) + 2d9c: b8a0 st.w r5, (r14, 0x0) + 2d9e: 3200 movi r2, 0 + 2da0: 3180 movi r1, 128 + 2da2: e3fff8cc bsr 0x1f3a // 1f3a + BT_Period_CMP_Write(BT1,4780,1); + 2da6: 3201 movi r2, 1 + 2da8: 1029 lrw r1, 0x12ac // 2dcc + 2daa: 9400 ld.w r0, (r4, 0x0) + 2dac: e3fff8dd bsr 0x1f66 // 1f66 + BT_Start(BT1); + 2db0: 9400 ld.w r0, (r4, 0x0) + 2db2: e3fff8af bsr 0x1f10 // 1f10 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2db6: 9400 ld.w r0, (r4, 0x0) + 2db8: 3202 movi r2, 2 + 2dba: 3101 movi r1, 1 + 2dbc: e3fff8d8 bsr 0x1f6c // 1f6c + BT1_INT_ENABLE(); + 2dc0: e3fff8e0 bsr 0x1f80 // 1f80 + +} + 2dc4: 1404 addi r14, r14, 16 + 2dc6: 1492 pop r4-r5, r15 + 2dc8: 20000008 .long 0x20000008 + 2dcc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002dd0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2dd0: 14d0 push r15 + 2dd2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2dd4: e3fff694 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2dd8: 3101 movi r1, 1 + 2dda: 3001 movi r0, 1 + 2ddc: e3fff6b6 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 + 2de0: 3000 movi r0, 0 + 2de2: e3fff70f 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 + 2de6: 3180 movi r1, 128 + 2de8: 3308 movi r3, 8 + 2dea: 3200 movi r2, 0 + 2dec: 4121 lsli r1, r1, 1 + 2dee: 3002 movi r0, 2 + 2df0: e3fff6c4 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2df4: 30c0 movi r0, 192 + 2df6: 3118 movi r1, 24 + 2df8: 4002 lsli r0, r0, 2 + 2dfa: e3fff73f bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2dfe: 3001 movi r0, 1 + 2e00: e3fff714 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2e04: e3fff730 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2e08: e3fff762 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 + 2e0c: 3340 movi r3, 64 + 2e0e: b860 st.w r3, (r14, 0x0) + 2e10: 31c0 movi r1, 192 + 2e12: 3380 movi r3, 128 + 2e14: 4364 lsli r3, r3, 4 + 2e16: 3200 movi r2, 0 + 2e18: 4123 lsli r1, r1, 3 + 2e1a: 3000 movi r0, 0 + 2e1c: e3fff73a bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2e20: e3fff748 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2e24: e3fff782 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 + 2e28: 3000 movi r0, 0 + 2e2a: e0002331 bsr 0x748c // 748c + +} + 2e2e: 1401 addi r14, r14, 4 + 2e30: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002e34 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2e34: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e36: 107d lrw r3, 0x2000005c // 2ea8 + Sys_RSR = 0x00000000; + 2e38: 105d lrw r2, 0x200000a8 // 2eac + 2e3a: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e3c: 9360 ld.w r3, (r3, 0x0) + 2e3e: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2e40: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e42: 600c addu r0, r3 + 2e44: 9004 ld.w r0, (r0, 0x10) + 2e46: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2e48: 105a lrw r2, 0x200000a4 // 2eb0 + 2e4a: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2e4c: 3180 movi r1, 128 + 2e4e: 4121 lsli r1, r1, 1 + 2e50: 604c addu r1, r3 + 2e52: 9120 ld.w r1, (r1, 0x0) + 2e54: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2e56: 1058 lrw r2, 0xfffffff // 2eb4 + 2e58: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5a: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2e5c: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5e: 934c ld.w r2, (r3, 0x30) + 2e60: 6884 and r2, r1 + 2e62: 3a40 cmpnei r2, 0 + 2e64: 0ffd bf 0x2e5e // 2e5e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2e66: e3ffffb5 bsr 0x2dd0 // 2dd0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2e6a: e0000521 bsr 0x38ac // 38ac + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2e6e: e3fff763 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2e72: 3101 movi r1, 1 + 2e74: 300f movi r0, 15 + 2e76: e3fff771 bsr 0x1d58 // 1d58 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2e7a: 3102 movi r1, 2 + 2e7c: 3019 movi r0, 25 + 2e7e: e3fff76d bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2e82: e0001ab9 bsr 0x63f4 // 63f4 + + EPT0_CONFIG(); + 2e86: e3ffff45 bsr 0x2d10 // 2d10 + + BT_CONFIG(); //BT initial + 2e8a: e3ffff73 bsr 0x2d70 // 2d70 + + MODEL_Ctrl_Init(); + 2e8e: e0001063 bsr 0x4f54 // 4f54 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2e92: 102a lrw r1, 0x6888 // 2eb8 + 2e94: 3002 movi r0, 2 + 2e96: e000050f bsr 0x38b4 // 38b4 + + HT1621_Init(); //显示驱动初始化 + 2e9a: e0000db1 bsr 0x49fc // 49fc + + Touch_Key_Init(); + 2e9e: e000065f bsr 0x3b5c // 3b5c + + ADC_Init(); + 2ea2: e0000c5f bsr 0x4760 // 4760 + +} + 2ea6: 1490 pop r15 + 2ea8: 2000005c .long 0x2000005c + 2eac: 200000a8 .long 0x200000a8 + 2eb0: 200000a4 .long 0x200000a4 + 2eb4: 0fffffff .long 0x0fffffff + 2eb8: 00006888 .long 0x00006888 + +Disassembly of section .text.SYSCONIntHandler: + +00002ebc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2ebc: 1460 nie + 2ebe: 1462 ipush + // ISR content ... + nop; + 2ec0: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2ec2: 117a lrw r3, 0x2000005c // 2fa8 + 2ec4: 3280 movi r2, 128 + 2ec6: 9360 ld.w r3, (r3, 0x0) + 2ec8: 60c8 addu r3, r2 + 2eca: 9323 ld.w r1, (r3, 0xc) + 2ecc: 3001 movi r0, 1 + 2ece: 6840 and r1, r0 + 2ed0: 3940 cmpnei r1, 0 + 2ed2: 0c04 bf 0x2eda // 2eda + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2ed4: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2ed6: 1463 ipop + 2ed8: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2eda: 9323 ld.w r1, (r3, 0xc) + 2edc: 3002 movi r0, 2 + 2ede: 6840 and r1, r0 + 2ee0: 3940 cmpnei r1, 0 + 2ee2: 0bf9 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2ee4: 9323 ld.w r1, (r3, 0xc) + 2ee6: 3008 movi r0, 8 + 2ee8: 6840 and r1, r0 + 2eea: 3940 cmpnei r1, 0 + 2eec: 0bf4 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2eee: 9323 ld.w r1, (r3, 0xc) + 2ef0: 3010 movi r0, 16 + 2ef2: 6840 and r1, r0 + 2ef4: 3940 cmpnei r1, 0 + 2ef6: 0bef bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2ef8: 9323 ld.w r1, (r3, 0xc) + 2efa: 6848 and r1, r2 + 2efc: 3940 cmpnei r1, 0 + 2efe: 0c03 bf 0x2f04 // 2f04 + SYSCON->ICR = CMD_ERR_ST; + 2f00: b341 st.w r2, (r3, 0x4) +} + 2f02: 07ea br 0x2ed6 // 2ed6 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2f04: 3280 movi r2, 128 + 2f06: 9323 ld.w r1, (r3, 0xc) + 2f08: 4241 lsli r2, r2, 1 + 2f0a: 6848 and r1, r2 + 2f0c: 3940 cmpnei r1, 0 + 2f0e: 0bf9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2f10: 3280 movi r2, 128 + 2f12: 9323 ld.w r1, (r3, 0xc) + 2f14: 4242 lsli r2, r2, 2 + 2f16: 6848 and r1, r2 + 2f18: 3940 cmpnei r1, 0 + 2f1a: 0bf3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2f1c: 3280 movi r2, 128 + 2f1e: 9323 ld.w r1, (r3, 0xc) + 2f20: 4243 lsli r2, r2, 3 + 2f22: 6848 and r1, r2 + 2f24: 3940 cmpnei r1, 0 + 2f26: 0bed bt 0x2f00 // 2f00 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2f28: 3280 movi r2, 128 + 2f2a: 9323 ld.w r1, (r3, 0xc) + 2f2c: 4244 lsli r2, r2, 4 + 2f2e: 6848 and r1, r2 + 2f30: 3940 cmpnei r1, 0 + 2f32: 0c03 bf 0x2f38 // 2f38 + nop; + 2f34: 6c03 mov r0, r0 + 2f36: 07e5 br 0x2f00 // 2f00 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2f38: 3280 movi r2, 128 + 2f3a: 9323 ld.w r1, (r3, 0xc) + 2f3c: 4245 lsli r2, r2, 5 + 2f3e: 6848 and r1, r2 + 2f40: 3940 cmpnei r1, 0 + 2f42: 0bdf bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2f44: 3280 movi r2, 128 + 2f46: 9323 ld.w r1, (r3, 0xc) + 2f48: 4246 lsli r2, r2, 6 + 2f4a: 6848 and r1, r2 + 2f4c: 3940 cmpnei r1, 0 + 2f4e: 0bd9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2f50: 3280 movi r2, 128 + 2f52: 9323 ld.w r1, (r3, 0xc) + 2f54: 4247 lsli r2, r2, 7 + 2f56: 6848 and r1, r2 + 2f58: 3940 cmpnei r1, 0 + 2f5a: 0bd3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2f5c: 3280 movi r2, 128 + 2f5e: 9323 ld.w r1, (r3, 0xc) + 2f60: 424b lsli r2, r2, 11 + 2f62: 6848 and r1, r2 + 2f64: 3940 cmpnei r1, 0 + 2f66: 0bcd bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2f68: 3280 movi r2, 128 + 2f6a: 9323 ld.w r1, (r3, 0xc) + 2f6c: 424c lsli r2, r2, 12 + 2f6e: 6848 and r1, r2 + 2f70: 3940 cmpnei r1, 0 + 2f72: 0bc7 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2f74: 3280 movi r2, 128 + 2f76: 9323 ld.w r1, (r3, 0xc) + 2f78: 424d lsli r2, r2, 13 + 2f7a: 6848 and r1, r2 + 2f7c: 3940 cmpnei r1, 0 + 2f7e: 0bc1 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2f80: 3280 movi r2, 128 + 2f82: 9323 ld.w r1, (r3, 0xc) + 2f84: 424e lsli r2, r2, 14 + 2f86: 6848 and r1, r2 + 2f88: 3940 cmpnei r1, 0 + 2f8a: 0bbb bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2f8c: 3280 movi r2, 128 + 2f8e: 9323 ld.w r1, (r3, 0xc) + 2f90: 424f lsli r2, r2, 15 + 2f92: 6848 and r1, r2 + 2f94: 3940 cmpnei r1, 0 + 2f96: 0bb5 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2f98: 3280 movi r2, 128 + 2f9a: 9323 ld.w r1, (r3, 0xc) + 2f9c: 4256 lsli r2, r2, 22 + 2f9e: 6848 and r1, r2 + 2fa0: 3940 cmpnei r1, 0 + 2fa2: 0baf bt 0x2f00 // 2f00 + 2fa4: 0799 br 0x2ed6 // 2ed6 + 2fa6: 0000 bkpt + 2fa8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002fac : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2fac: 1460 nie + 2fae: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2fb0: 1078 lrw r3, 0x20000060 // 3010 + 2fb2: 3101 movi r1, 1 + 2fb4: 9360 ld.w r3, (r3, 0x0) + 2fb6: 934b ld.w r2, (r3, 0x2c) + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0c04 bf 0x2fc4 // 2fc4 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2fbe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2fc0: 1463 ipop + 2fc2: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2fc4: 934b ld.w r2, (r3, 0x2c) + 2fc6: 3102 movi r1, 2 + 2fc8: 6884 and r2, r1 + 2fca: 3a40 cmpnei r2, 0 + 2fcc: 0bf9 bt 0x2fbe // 2fbe + else if(IFC->MISR&PEP_END_INT) + 2fce: 934b ld.w r2, (r3, 0x2c) + 2fd0: 3104 movi r1, 4 + 2fd2: 6884 and r2, r1 + 2fd4: 3a40 cmpnei r2, 0 + 2fd6: 0bf4 bt 0x2fbe // 2fbe + else if(IFC->MISR&PROT_ERR_INT) + 2fd8: 3280 movi r2, 128 + 2fda: 932b ld.w r1, (r3, 0x2c) + 2fdc: 4245 lsli r2, r2, 5 + 2fde: 6848 and r1, r2 + 2fe0: 3940 cmpnei r1, 0 + 2fe2: 0c03 bf 0x2fe8 // 2fe8 + IFC->ICR=OVW_ERR_INT; + 2fe4: b34c st.w r2, (r3, 0x30) +} + 2fe6: 07ed br 0x2fc0 // 2fc0 + else if(IFC->MISR&UDEF_ERR_INT) + 2fe8: 3280 movi r2, 128 + 2fea: 932b ld.w r1, (r3, 0x2c) + 2fec: 4246 lsli r2, r2, 6 + 2fee: 6848 and r1, r2 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0bf9 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&ADDR_ERR_INT) + 2ff4: 3280 movi r2, 128 + 2ff6: 932b ld.w r1, (r3, 0x2c) + 2ff8: 4247 lsli r2, r2, 7 + 2ffa: 6848 and r1, r2 + 2ffc: 3940 cmpnei r1, 0 + 2ffe: 0bf3 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&OVW_ERR_INT) + 3000: 3280 movi r2, 128 + 3002: 932b ld.w r1, (r3, 0x2c) + 3004: 4248 lsli r2, r2, 8 + 3006: 6848 and r1, r2 + 3008: 3940 cmpnei r1, 0 + 300a: 0bed bt 0x2fe4 // 2fe4 + 300c: 07da br 0x2fc0 // 2fc0 + 300e: 0000 bkpt + 3010: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003014 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3014: 1460 nie + 3016: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3018: 1078 lrw r3, 0x20000050 // 3078 + 301a: 3101 movi r1, 1 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9348 ld.w r2, (r3, 0x20) + 3020: 6884 and r2, r1 + 3022: 3a40 cmpnei r2, 0 + 3024: 0c04 bf 0x302c // 302c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3026: 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; + } +} + 3028: 1463 ipop + 302a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 302c: 9348 ld.w r2, (r3, 0x20) + 302e: 3102 movi r1, 2 + 3030: 6884 and r2, r1 + 3032: 3a40 cmpnei r2, 0 + 3034: 0bf9 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3036: 9348 ld.w r2, (r3, 0x20) + 3038: 3104 movi r1, 4 + 303a: 6884 and r2, r1 + 303c: 3a40 cmpnei r2, 0 + 303e: 0bf4 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3040: 9348 ld.w r2, (r3, 0x20) + 3042: 3110 movi r1, 16 + 3044: 6884 and r2, r1 + 3046: 3a40 cmpnei r2, 0 + 3048: 0bef bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 304a: 9348 ld.w r2, (r3, 0x20) + 304c: 3120 movi r1, 32 + 304e: 6884 and r2, r1 + 3050: 3a40 cmpnei r2, 0 + 3052: 0bea bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3054: 9348 ld.w r2, (r3, 0x20) + 3056: 3140 movi r1, 64 + 3058: 6884 and r2, r1 + 305a: 3a40 cmpnei r2, 0 + 305c: 0be5 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 305e: 9348 ld.w r2, (r3, 0x20) + 3060: 3180 movi r1, 128 + 3062: 6884 and r2, r1 + 3064: 3a40 cmpnei r2, 0 + 3066: 0be0 bt 0x3026 // 3026 + 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 + 3068: 3280 movi r2, 128 + 306a: 9328 ld.w r1, (r3, 0x20) + 306c: 4249 lsli r2, r2, 9 + 306e: 6848 and r1, r2 + 3070: 3940 cmpnei r1, 0 + 3072: 0fdb bf 0x3028 // 3028 + ADC0->CSR = ADC12_SEQ_END0; + 3074: b347 st.w r2, (r3, 0x1c) +} + 3076: 07d9 br 0x3028 // 3028 + 3078: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +0000307c : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 307c: 1460 nie + 307e: 1462 ipush + 3080: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3082: 1387 lrw r4, 0x20000020 // 321c + 3084: 3280 movi r2, 128 + 3086: 9460 ld.w r3, (r4, 0x0) + 3088: 60c8 addu r3, r2 + 308a: 9335 ld.w r1, (r3, 0x54) + 308c: 3001 movi r0, 1 + 308e: 6840 and r1, r0 + 3090: 3940 cmpnei r1, 0 + 3092: 0c03 bf 0x3098 // 3098 + 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; + 3094: b317 st.w r0, (r3, 0x5c) + 3096: 0424 br 0x30de // 30de + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3098: 9335 ld.w r1, (r3, 0x54) + 309a: 3002 movi r0, 2 + 309c: 6840 and r1, r0 + 309e: 3940 cmpnei r1, 0 + 30a0: 0bfa bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 30a2: 9335 ld.w r1, (r3, 0x54) + 30a4: 3004 movi r0, 4 + 30a6: 6840 and r1, r0 + 30a8: 3940 cmpnei r1, 0 + 30aa: 0bf5 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 30ac: 9335 ld.w r1, (r3, 0x54) + 30ae: 3008 movi r0, 8 + 30b0: 6840 and r1, r0 + 30b2: 3940 cmpnei r1, 0 + 30b4: 0bf0 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 30b6: 9335 ld.w r1, (r3, 0x54) + 30b8: 3010 movi r0, 16 + 30ba: 6840 and r1, r0 + 30bc: 3940 cmpnei r1, 0 + 30be: 0c1f bf 0x30fc // 30fc + EPT0->ICR=EPT_CAP_LD0; + 30c0: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 30c2: 3200 movi r2, 0 + 30c4: 3101 movi r1, 1 + 30c6: 3000 movi r0, 0 + 30c8: e3fff610 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 30cc: 3201 movi r2, 1 + 30ce: 3101 movi r1, 1 + 30d0: 3001 movi r0, 1 + 30d2: e3fff60b bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 30d6: 9460 ld.w r3, (r4, 0x0) + 30d8: 934b ld.w r2, (r3, 0x2c) + 30da: 1272 lrw r3, 0x20000168 // 3220 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 30dc: 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 + 30de: 9460 ld.w r3, (r4, 0x0) + 30e0: 3280 movi r2, 128 + 30e2: 60c8 addu r3, r2 + 30e4: 932b ld.w r1, (r3, 0x2c) + 30e6: 3001 movi r0, 1 + 30e8: 6840 and r1, r0 + 30ea: 3940 cmpnei r1, 0 + 30ec: 0c61 bf 0x31ae // 31ae + { + 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; + 30ee: 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; + } +} + 30f0: d9ee2001 ld.w r15, (r14, 0x4) + 30f4: 9880 ld.w r4, (r14, 0x0) + 30f6: 1402 addi r14, r14, 8 + 30f8: 1463 ipop + 30fa: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 30fc: 9335 ld.w r1, (r3, 0x54) + 30fe: 3020 movi r0, 32 + 3100: 6840 and r1, r0 + 3102: 3940 cmpnei r1, 0 + 3104: 0c10 bf 0x3124 // 3124 + EPT0->ICR=EPT_CAP_LD1; + 3106: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3108: 3200 movi r2, 0 + 310a: 3101 movi r1, 1 + 310c: 3001 movi r0, 1 + 310e: e3fff5ed bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3112: 3201 movi r2, 1 + 3114: 3101 movi r1, 1 + 3116: 3000 movi r0, 0 + 3118: e3fff5e8 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 311c: 9460 ld.w r3, (r4, 0x0) + 311e: 934c ld.w r2, (r3, 0x30) + 3120: 1261 lrw r3, 0x20000164 // 3224 + 3122: 07dd br 0x30dc // 30dc + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3124: 9335 ld.w r1, (r3, 0x54) + 3126: 3040 movi r0, 64 + 3128: 6840 and r1, r0 + 312a: 3940 cmpnei r1, 0 + 312c: 0bb4 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 312e: 9335 ld.w r1, (r3, 0x54) + 3130: 6848 and r1, r2 + 3132: 3940 cmpnei r1, 0 + 3134: 0c03 bf 0x313a // 313a + EPT0->ICR=EPT_CDD; + 3136: b357 st.w r2, (r3, 0x5c) + 3138: 07d3 br 0x30de // 30de + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 313a: 3280 movi r2, 128 + 313c: 9335 ld.w r1, (r3, 0x54) + 313e: 4241 lsli r2, r2, 1 + 3140: 6848 and r1, r2 + 3142: 3940 cmpnei r1, 0 + 3144: 0bf9 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3146: 3280 movi r2, 128 + 3148: 9335 ld.w r1, (r3, 0x54) + 314a: 4242 lsli r2, r2, 2 + 314c: 6848 and r1, r2 + 314e: 3940 cmpnei r1, 0 + 3150: 0bf3 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3152: 3280 movi r2, 128 + 3154: 9335 ld.w r1, (r3, 0x54) + 3156: 4243 lsli r2, r2, 3 + 3158: 6848 and r1, r2 + 315a: 3940 cmpnei r1, 0 + 315c: 0bed bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 315e: 3280 movi r2, 128 + 3160: 9335 ld.w r1, (r3, 0x54) + 3162: 4244 lsli r2, r2, 4 + 3164: 6848 and r1, r2 + 3166: 3940 cmpnei r1, 0 + 3168: 0be7 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 316a: 3280 movi r2, 128 + 316c: 9335 ld.w r1, (r3, 0x54) + 316e: 4245 lsli r2, r2, 5 + 3170: 6848 and r1, r2 + 3172: 3940 cmpnei r1, 0 + 3174: 0be1 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3176: 3280 movi r2, 128 + 3178: 9335 ld.w r1, (r3, 0x54) + 317a: 4246 lsli r2, r2, 6 + 317c: 6848 and r1, r2 + 317e: 3940 cmpnei r1, 0 + 3180: 0bdb bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3182: 3280 movi r2, 128 + 3184: 9335 ld.w r1, (r3, 0x54) + 3186: 4247 lsli r2, r2, 7 + 3188: 6848 and r1, r2 + 318a: 3940 cmpnei r1, 0 + 318c: 0bd5 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 318e: 3280 movi r2, 128 + 3190: 9335 ld.w r1, (r3, 0x54) + 3192: 4248 lsli r2, r2, 8 + 3194: 6848 and r1, r2 + 3196: 3940 cmpnei r1, 0 + 3198: 0bcf bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 319a: 3280 movi r2, 128 + 319c: 9335 ld.w r1, (r3, 0x54) + 319e: 4249 lsli r2, r2, 9 + 31a0: 6848 and r1, r2 + 31a2: 3940 cmpnei r1, 0 + 31a4: 0f9d bf 0x30de // 30de + EPT0->ICR=EPT_PEND; + 31a6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 31a8: e3fff7ee bsr 0x2184 // 2184 + 31ac: 0799 br 0x30de // 30de + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 31ae: 932b ld.w r1, (r3, 0x2c) + 31b0: 3002 movi r0, 2 + 31b2: 6840 and r1, r0 + 31b4: 3940 cmpnei r1, 0 + 31b6: 0b9c bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 31b8: 932b ld.w r1, (r3, 0x2c) + 31ba: 3004 movi r0, 4 + 31bc: 6840 and r1, r0 + 31be: 3940 cmpnei r1, 0 + 31c0: 0b97 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 31c2: 932b ld.w r1, (r3, 0x2c) + 31c4: 3008 movi r0, 8 + 31c6: 6840 and r1, r0 + 31c8: 3940 cmpnei r1, 0 + 31ca: 0b92 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 31cc: 932b ld.w r1, (r3, 0x2c) + 31ce: 3010 movi r0, 16 + 31d0: 6840 and r1, r0 + 31d2: 3940 cmpnei r1, 0 + 31d4: 0b8d bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 31d6: 932b ld.w r1, (r3, 0x2c) + 31d8: 3020 movi r0, 32 + 31da: 6840 and r1, r0 + 31dc: 3940 cmpnei r1, 0 + 31de: 0b88 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 31e0: 932b ld.w r1, (r3, 0x2c) + 31e2: 3040 movi r0, 64 + 31e4: 6840 and r1, r0 + 31e6: 3940 cmpnei r1, 0 + 31e8: 0b83 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 31ea: 932b ld.w r1, (r3, 0x2c) + 31ec: 6848 and r1, r2 + 31ee: 3940 cmpnei r1, 0 + 31f0: 0c03 bf 0x31f6 // 31f6 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 31f2: b34d st.w r2, (r3, 0x34) +} + 31f4: 077e br 0x30f0 // 30f0 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 31f6: 3280 movi r2, 128 + 31f8: 932b ld.w r1, (r3, 0x2c) + 31fa: 4241 lsli r2, r2, 1 + 31fc: 6848 and r1, r2 + 31fe: 3940 cmpnei r1, 0 + 3200: 0bf9 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3202: 3280 movi r2, 128 + 3204: 932b ld.w r1, (r3, 0x2c) + 3206: 4242 lsli r2, r2, 2 + 3208: 6848 and r1, r2 + 320a: 3940 cmpnei r1, 0 + 320c: 0bf3 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 320e: 3280 movi r2, 128 + 3210: 932b ld.w r1, (r3, 0x2c) + 3212: 4243 lsli r2, r2, 3 + 3214: 6848 and r1, r2 + 3216: 3940 cmpnei r1, 0 + 3218: 0bed bt 0x31f2 // 31f2 + 321a: 076b br 0x30f0 // 30f0 + 321c: 20000020 .long 0x20000020 + 3220: 20000168 .long 0x20000168 + 3224: 20000164 .long 0x20000164 + +Disassembly of section .text.WWDTHandler: + +00003228 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3228: 1460 nie + 322a: 1462 ipush + 322c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 322e: 10ab lrw r5, 0x20000010 // 3258 + 3230: 3401 movi r4, 1 + 3232: 9560 ld.w r3, (r5, 0x0) + 3234: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3236: 30ff movi r0, 255 + 3238: e3fff656 bsr 0x1ee4 // 1ee4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 323c: 9540 ld.w r2, (r5, 0x0) + 323e: 9263 ld.w r3, (r2, 0xc) + 3240: 68d0 and r3, r4 + 3242: 3b40 cmpnei r3, 0 + 3244: 0c02 bf 0x3248 // 3248 + { + WWDT->ICR = WWDT_EVI; + 3246: b285 st.w r4, (r2, 0x14) + } +} + 3248: d9ee2002 ld.w r15, (r14, 0x8) + 324c: 98a1 ld.w r5, (r14, 0x4) + 324e: 9880 ld.w r4, (r14, 0x0) + 3250: 1403 addi r14, r14, 12 + 3252: 1463 ipop + 3254: 1461 nir + 3256: 0000 bkpt + 3258: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +0000325c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 325c: 1460 nie + 325e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3260: 107e lrw r3, 0x20000024 // 32d8 + 3262: 3101 movi r1, 1 + 3264: 9360 ld.w r3, (r3, 0x0) + 3266: 237f addi r3, 128 + 3268: 9355 ld.w r2, (r3, 0x54) + 326a: 6884 and r2, r1 + 326c: 3a40 cmpnei r2, 0 + 326e: 0c04 bf 0x3276 // 3276 + { + 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; + 3270: 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; + } +} + 3272: 1463 ipop + 3274: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3276: 9355 ld.w r2, (r3, 0x54) + 3278: 3102 movi r1, 2 + 327a: 6884 and r2, r1 + 327c: 3a40 cmpnei r2, 0 + 327e: 0bf9 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3280: 9355 ld.w r2, (r3, 0x54) + 3282: 3110 movi r1, 16 + 3284: 6884 and r2, r1 + 3286: 3a40 cmpnei r2, 0 + 3288: 0bf4 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 328a: 9355 ld.w r2, (r3, 0x54) + 328c: 3120 movi r1, 32 + 328e: 6884 and r2, r1 + 3290: 3a40 cmpnei r2, 0 + 3292: 0bef bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3294: 3280 movi r2, 128 + 3296: 9335 ld.w r1, (r3, 0x54) + 3298: 4241 lsli r2, r2, 1 + 329a: 6848 and r1, r2 + 329c: 3940 cmpnei r1, 0 + 329e: 0c03 bf 0x32a4 // 32a4 + GPT0->ICR = GPT_INT_PEND; + 32a0: b357 st.w r2, (r3, 0x5c) +} + 32a2: 07e8 br 0x3272 // 3272 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 32a4: 3280 movi r2, 128 + 32a6: 9335 ld.w r1, (r3, 0x54) + 32a8: 4242 lsli r2, r2, 2 + 32aa: 6848 and r1, r2 + 32ac: 3940 cmpnei r1, 0 + 32ae: 0bf9 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 32b0: 3280 movi r2, 128 + 32b2: 9335 ld.w r1, (r3, 0x54) + 32b4: 4243 lsli r2, r2, 3 + 32b6: 6848 and r1, r2 + 32b8: 3940 cmpnei r1, 0 + 32ba: 0bf3 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 32bc: 3280 movi r2, 128 + 32be: 9335 ld.w r1, (r3, 0x54) + 32c0: 4244 lsli r2, r2, 4 + 32c2: 6848 and r1, r2 + 32c4: 3940 cmpnei r1, 0 + 32c6: 0bed bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 32c8: 3280 movi r2, 128 + 32ca: 9335 ld.w r1, (r3, 0x54) + 32cc: 4249 lsli r2, r2, 9 + 32ce: 6848 and r1, r2 + 32d0: 3940 cmpnei r1, 0 + 32d2: 0be7 bt 0x32a0 // 32a0 + 32d4: 07cf br 0x3272 // 3272 + 32d6: 0000 bkpt + 32d8: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000032dc : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 32dc: 1460 nie + 32de: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 32e0: 1079 lrw r3, 0x20000018 // 3344 + 32e2: 3101 movi r1, 1 + 32e4: 9360 ld.w r3, (r3, 0x0) + 32e6: 934a ld.w r2, (r3, 0x28) + 32e8: 6884 and r2, r1 + 32ea: 3a40 cmpnei r2, 0 + 32ec: 0c14 bf 0x3314 // 3314 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 32ee: 1057 lrw r2, 0xca53 // 3348 + RTC->ICR=ALRA_INT; + 32f0: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 32f2: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 32f4: 9342 ld.w r2, (r3, 0x8) + 32f6: 6c84 or r2, r1 + 32f8: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 32fa: 3280 movi r2, 128 + 32fc: 424d lsli r2, r2, 13 + 32fe: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3300: 3102 movi r1, 2 + 3302: 9342 ld.w r2, (r3, 0x8) + 3304: 6884 and r2, r1 + 3306: 3a40 cmpnei r2, 0 + 3308: 0bfd bt 0x3302 // 3302 + RTC->CR &= ~0x1; + 330a: 9342 ld.w r2, (r3, 0x8) + 330c: 3a80 bclri r2, 0 + 330e: 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; + } +} + 3310: 1463 ipop + 3312: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3314: 934a ld.w r2, (r3, 0x28) + 3316: 3102 movi r1, 2 + 3318: 6884 and r2, r1 + 331a: 3a40 cmpnei r2, 0 + 331c: 0c03 bf 0x3322 // 3322 + RTC->ICR=RTC_TRGEV1_INT; + 331e: b32b st.w r1, (r3, 0x2c) +} + 3320: 07f8 br 0x3310 // 3310 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3322: 934a ld.w r2, (r3, 0x28) + 3324: 3104 movi r1, 4 + 3326: 6884 and r2, r1 + 3328: 3a40 cmpnei r2, 0 + 332a: 0bfa bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 332c: 934a ld.w r2, (r3, 0x28) + 332e: 3108 movi r1, 8 + 3330: 6884 and r2, r1 + 3332: 3a40 cmpnei r2, 0 + 3334: 0bf5 bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3336: 934a ld.w r2, (r3, 0x28) + 3338: 3110 movi r1, 16 + 333a: 6884 and r2, r1 + 333c: 3a40 cmpnei r2, 0 + 333e: 0bf0 bt 0x331e // 331e + 3340: 07e8 br 0x3310 // 3310 + 3342: 0000 bkpt + 3344: 20000018 .long 0x20000018 + 3348: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +0000334c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 334c: 1460 nie + 334e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3350: 106d lrw r3, 0x20000040 // 3384 + 3352: 3102 movi r1, 2 + 3354: 9360 ld.w r3, (r3, 0x0) + 3356: 9343 ld.w r2, (r3, 0xc) + 3358: 6884 and r2, r1 + 335a: 3a40 cmpnei r2, 0 + 335c: 0c03 bf 0x3362 // 3362 + { + 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; + 335e: b323 st.w r1, (r3, 0xc) + } +} + 3360: 0410 br 0x3380 // 3380 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3362: 9343 ld.w r2, (r3, 0xc) + 3364: 3101 movi r1, 1 + 3366: 6884 and r2, r1 + 3368: 3a40 cmpnei r2, 0 + 336a: 0bfa bt 0x335e // 335e + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 336c: 9343 ld.w r2, (r3, 0xc) + 336e: 3108 movi r1, 8 + 3370: 6884 and r2, r1 + 3372: 3a40 cmpnei r2, 0 + 3374: 0bf5 bt 0x335e // 335e + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3376: 9343 ld.w r2, (r3, 0xc) + 3378: 3104 movi r1, 4 + 337a: 6884 and r2, r1 + 337c: 3a40 cmpnei r2, 0 + 337e: 0bf0 bt 0x335e // 335e +} + 3380: 1463 ipop + 3382: 1461 nir + 3384: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003388 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3388: 1460 nie + 338a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 338c: 106d lrw r3, 0x2000003c // 33c0 + 338e: 3102 movi r1, 2 + 3390: 9360 ld.w r3, (r3, 0x0) + 3392: 9343 ld.w r2, (r3, 0xc) + 3394: 6884 and r2, r1 + 3396: 3a40 cmpnei r2, 0 + 3398: 0c03 bf 0x339e // 339e + { + 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; + 339a: b323 st.w r1, (r3, 0xc) + } +} + 339c: 0410 br 0x33bc // 33bc + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 339e: 9343 ld.w r2, (r3, 0xc) + 33a0: 3101 movi r1, 1 + 33a2: 6884 and r2, r1 + 33a4: 3a40 cmpnei r2, 0 + 33a6: 0bfa bt 0x339a // 339a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33a8: 9343 ld.w r2, (r3, 0xc) + 33aa: 3108 movi r1, 8 + 33ac: 6884 and r2, r1 + 33ae: 3a40 cmpnei r2, 0 + 33b0: 0bf5 bt 0x339a // 339a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33b2: 9343 ld.w r2, (r3, 0xc) + 33b4: 3104 movi r1, 4 + 33b6: 6884 and r2, r1 + 33b8: 3a40 cmpnei r2, 0 + 33ba: 0bf0 bt 0x339a // 339a +} + 33bc: 1463 ipop + 33be: 1461 nir + 33c0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +000033c4 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 33c4: 1460 nie + 33c6: 1462 ipush + 33c8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 33ca: 107f lrw r3, 0x20000038 // 3444 + 33cc: 3102 movi r1, 2 + 33ce: 9360 ld.w r3, (r3, 0x0) + 33d0: 9343 ld.w r2, (r3, 0xc) + 33d2: 6884 and r2, r1 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0c0b bf 0x33ec // 33ec + { + UART2->ISR=UART_RX_INT_S; + 33d8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 33da: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 33dc: 7400 zextb r0, r0 + 33de: e00002ef bsr 0x39bc // 39bc + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 33e2: d9ee2000 ld.w r15, (r14, 0x0) + 33e6: 1401 addi r14, r14, 4 + 33e8: 1463 ipop + 33ea: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 33ec: 9323 ld.w r1, (r3, 0xc) + 33ee: 3201 movi r2, 1 + 33f0: 6848 and r1, r2 + 33f2: 3940 cmpnei r1, 0 + 33f4: 0c0d bf 0x340e // 340e + UART2->ISR=UART_TX_INT_S; + 33f6: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 33f8: 1074 lrw r3, 0x200000bc // 3448 + 33fa: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33fc: 1074 lrw r3, 0x200000c0 // 344c + 33fe: 9360 ld.w r3, (r3, 0x0) + 3400: 3b41 cmpnei r3, 1 + 3402: 0bf0 bt 0x33e2 // 33e2 + RS485_Comm_Start ++; + 3404: 1053 lrw r2, 0x200000c4 // 3450 + RS485_Comm_End ++; + 3406: 9260 ld.w r3, (r2, 0x0) + 3408: 2300 addi r3, 1 + 340a: b260 st.w r3, (r2, 0x0) +} + 340c: 07eb br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 340e: 9343 ld.w r2, (r3, 0xc) + 3410: 3108 movi r1, 8 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0c03 bf 0x341c // 341c + UART2->ISR=UART_TX_IOV_S; + 3418: b323 st.w r1, (r3, 0xc) + 341a: 07e4 br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 341c: 9343 ld.w r2, (r3, 0xc) + 341e: 3104 movi r1, 4 + 3420: 6884 and r2, r1 + 3422: 3a40 cmpnei r2, 0 + 3424: 0bfa bt 0x3418 // 3418 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3426: 3180 movi r1, 128 + 3428: 9303 ld.w r0, (r3, 0xc) + 342a: 412c lsli r1, r1, 12 + 342c: 6804 and r0, r1 + 342e: 3840 cmpnei r0, 0 + 3430: 0fd9 bf 0x33e2 // 33e2 + UART2->ISR=UART_TX_DONE_S; + 3432: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3434: 1065 lrw r3, 0x200000bc // 3448 + 3436: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3438: 1065 lrw r3, 0x200000c0 // 344c + 343a: 9360 ld.w r3, (r3, 0x0) + 343c: 3b41 cmpnei r3, 1 + 343e: 0bd2 bt 0x33e2 // 33e2 + RS485_Comm_End ++; + 3440: 1045 lrw r2, 0x200000c8 // 3454 + 3442: 07e2 br 0x3406 // 3406 + 3444: 20000038 .long 0x20000038 + 3448: 200000bc .long 0x200000bc + 344c: 200000c0 .long 0x200000c0 + 3450: 200000c4 .long 0x200000c4 + 3454: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +00003458 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 3458: 1460 nie + 345a: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 345c: 1178 lrw r3, 0x20000034 // 353c + 345e: 3101 movi r1, 1 + 3460: 9360 ld.w r3, (r3, 0x0) + 3462: 9347 ld.w r2, (r3, 0x1c) + 3464: 6884 and r2, r1 + 3466: 3a40 cmpnei r2, 0 + 3468: 0c03 bf 0x346e // 346e + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 346a: b328 st.w r1, (r3, 0x20) + } + +} + 346c: 0407 br 0x347a // 347a + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 346e: 9347 ld.w r2, (r3, 0x1c) + 3470: 3002 movi r0, 2 + 3472: 6880 and r2, r0 + 3474: 3a40 cmpnei r2, 0 + 3476: 0c04 bf 0x347e // 347e + SPI0->ICR = SPI_RTIM; + 3478: b308 st.w r0, (r3, 0x20) +} + 347a: 1463 ipop + 347c: 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 + 347e: 9347 ld.w r2, (r3, 0x1c) + 3480: 3004 movi r0, 4 + 3482: 6880 and r2, r0 + 3484: 3a40 cmpnei r2, 0 + 3486: 0c55 bf 0x3530 // 3530 + SPI0->ICR = SPI_RXIM; + 3488: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 348a: 9302 ld.w r0, (r3, 0x8) + 348c: 32aa movi r2, 170 + 348e: 6482 cmpne r0, r2 + 3490: 083e bt 0x350c // 350c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3492: 3102 movi r1, 2 + 3494: 9343 ld.w r2, (r3, 0xc) + 3496: 6884 and r2, r1 + 3498: 3a40 cmpnei r2, 0 + 349a: 0ffd bf 0x3494 // 3494 + SPI0->DR = 0x11; + 349c: 3211 movi r2, 17 + 349e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34a0: 3110 movi r1, 16 + 34a2: 9343 ld.w r2, (r3, 0xc) + 34a4: 6884 and r2, r1 + 34a6: 3a40 cmpnei r2, 0 + 34a8: 0bfd bt 0x34a2 // 34a2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34aa: 3102 movi r1, 2 + 34ac: 9343 ld.w r2, (r3, 0xc) + 34ae: 6884 and r2, r1 + 34b0: 3a40 cmpnei r2, 0 + 34b2: 0ffd bf 0x34ac // 34ac + SPI0->DR = 0x12; + 34b4: 3212 movi r2, 18 + 34b6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34b8: 3110 movi r1, 16 + 34ba: 9343 ld.w r2, (r3, 0xc) + 34bc: 6884 and r2, r1 + 34be: 3a40 cmpnei r2, 0 + 34c0: 0bfd bt 0x34ba // 34ba + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34c2: 3102 movi r1, 2 + 34c4: 9343 ld.w r2, (r3, 0xc) + 34c6: 6884 and r2, r1 + 34c8: 3a40 cmpnei r2, 0 + 34ca: 0ffd bf 0x34c4 // 34c4 + SPI0->DR = 0x13; + 34cc: 3213 movi r2, 19 + 34ce: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34d0: 3110 movi r1, 16 + 34d2: 9343 ld.w r2, (r3, 0xc) + 34d4: 6884 and r2, r1 + 34d6: 3a40 cmpnei r2, 0 + 34d8: 0bfd bt 0x34d2 // 34d2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34da: 3102 movi r1, 2 + 34dc: 9343 ld.w r2, (r3, 0xc) + 34de: 6884 and r2, r1 + 34e0: 3a40 cmpnei r2, 0 + 34e2: 0ffd bf 0x34dc // 34dc + SPI0->DR = 0x14; + 34e4: 3214 movi r2, 20 + 34e6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34e8: 3110 movi r1, 16 + 34ea: 9343 ld.w r2, (r3, 0xc) + 34ec: 6884 and r2, r1 + 34ee: 3a40 cmpnei r2, 0 + 34f0: 0bfd bt 0x34ea // 34ea + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34f2: 3102 movi r1, 2 + 34f4: 9343 ld.w r2, (r3, 0xc) + 34f6: 6884 and r2, r1 + 34f8: 3a40 cmpnei r2, 0 + 34fa: 0ffd bf 0x34f4 // 34f4 + SPI0->DR = 0x15; + 34fc: 3215 movi r2, 21 + 34fe: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3500: 3110 movi r1, 16 + 3502: 9343 ld.w r2, (r3, 0xc) + 3504: 6884 and r2, r1 + 3506: 3a40 cmpnei r2, 0 + 3508: 0bfd bt 0x3502 // 3502 + 350a: 07b8 br 0x347a // 347a + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 350c: 9343 ld.w r2, (r3, 0xc) + 350e: 6884 and r2, r1 + 3510: 3a40 cmpnei r2, 0 + 3512: 0bb4 bt 0x347a // 347a + SPI0->DR=0x0; //FIFO=0 + 3514: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3516: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3518: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3520: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3522: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3524: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3526: 9343 ld.w r2, (r3, 0xc) + 3528: 6884 and r2, r1 + 352a: 3a40 cmpnei r2, 0 + 352c: 0bfd bt 0x3526 // 3526 + 352e: 07a6 br 0x347a // 347a + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 3530: 9347 ld.w r2, (r3, 0x1c) + 3532: 3108 movi r1, 8 + 3534: 6884 and r2, r1 + 3536: 3a40 cmpnei r2, 0 + 3538: 0b99 bt 0x346a // 346a + 353a: 07a0 br 0x347a // 347a + 353c: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00003540 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 3540: 1460 nie + 3542: 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) + 3544: 1073 lrw r3, 0x2000002c // 3590 + 3546: 3104 movi r1, 4 + 3548: 9360 ld.w r3, (r3, 0x0) + 354a: 9349 ld.w r2, (r3, 0x24) + 354c: 6884 and r2, r1 + 354e: 3a40 cmpnei r2, 0 + 3550: 0c02 bf 0x3554 // 3554 + { + SIO0->ICR=0X04; + 3552: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 3554: 9349 ld.w r2, (r3, 0x24) + 3556: 3101 movi r1, 1 + 3558: 6884 and r2, r1 + 355a: 3a40 cmpnei r2, 0 + 355c: 0c02 bf 0x3560 // 3560 + { + SIO0->ICR=0X01; + 355e: 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 + 3560: 9349 ld.w r2, (r3, 0x24) + 3562: 3102 movi r1, 2 + 3564: 6884 and r2, r1 + 3566: 3a40 cmpnei r2, 0 + 3568: 0c03 bf 0x356e // 356e + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 356a: b32b st.w r1, (r3, 0x2c) + } +} + 356c: 0410 br 0x358c // 358c + else if(SIO0->MISR&0X08) //RXBUFFULL + 356e: 9349 ld.w r2, (r3, 0x24) + 3570: 3108 movi r1, 8 + 3572: 6884 and r2, r1 + 3574: 3a40 cmpnei r2, 0 + 3576: 0bfa bt 0x356a // 356a + else if(SIO0->MISR&0X010) //BREAK + 3578: 9349 ld.w r2, (r3, 0x24) + 357a: 3110 movi r1, 16 + 357c: 6884 and r2, r1 + 357e: 3a40 cmpnei r2, 0 + 3580: 0bf5 bt 0x356a // 356a + else if(SIO0->MISR&0X020) //TIMEOUT + 3582: 9349 ld.w r2, (r3, 0x24) + 3584: 3120 movi r1, 32 + 3586: 6884 and r2, r1 + 3588: 3a40 cmpnei r2, 0 + 358a: 0bf0 bt 0x356a // 356a +} + 358c: 1463 ipop + 358e: 1461 nir + 3590: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003594 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3594: 1460 nie + 3596: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3598: 106a lrw r3, 0x2000005c // 35c0 + 359a: 3101 movi r1, 1 + 359c: 9360 ld.w r3, (r3, 0x0) + 359e: 237f addi r3, 128 + 35a0: 934c ld.w r2, (r3, 0x30) + 35a2: 6884 and r2, r1 + 35a4: 3a40 cmpnei r2, 0 + 35a6: 0c04 bf 0x35ae // 35ae + { + SYSCON->EXICR = EXI_PIN0; + 35a8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 35aa: 1463 ipop + 35ac: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 35ae: 3280 movi r2, 128 + 35b0: 932c ld.w r1, (r3, 0x30) + 35b2: 4249 lsli r2, r2, 9 + 35b4: 6848 and r1, r2 + 35b6: 3940 cmpnei r1, 0 + 35b8: 0ff9 bf 0x35aa // 35aa + SYSCON->EXICR = EXI_PIN16; + 35ba: b34b st.w r2, (r3, 0x2c) +} + 35bc: 07f7 br 0x35aa // 35aa + 35be: 0000 bkpt + 35c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +000035c4 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 35c4: 1460 nie + 35c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 35c8: 106a lrw r3, 0x2000005c // 35f0 + 35ca: 3102 movi r1, 2 + 35cc: 9360 ld.w r3, (r3, 0x0) + 35ce: 237f addi r3, 128 + 35d0: 934c ld.w r2, (r3, 0x30) + 35d2: 6884 and r2, r1 + 35d4: 3a40 cmpnei r2, 0 + 35d6: 0c04 bf 0x35de // 35de + { + SYSCON->EXICR = EXI_PIN1; + 35d8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 35da: 1463 ipop + 35dc: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 35de: 3280 movi r2, 128 + 35e0: 932c ld.w r1, (r3, 0x30) + 35e2: 424a lsli r2, r2, 10 + 35e4: 6848 and r1, r2 + 35e6: 3940 cmpnei r1, 0 + 35e8: 0ff9 bf 0x35da // 35da + SYSCON->EXICR = EXI_PIN17; + 35ea: b34b st.w r2, (r3, 0x2c) +} + 35ec: 07f7 br 0x35da // 35da + 35ee: 0000 bkpt + 35f0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000035f4 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 35f4: 1460 nie + 35f6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 35f8: 1070 lrw r3, 0x2000005c // 3638 + 35fa: 3104 movi r1, 4 + 35fc: 9360 ld.w r3, (r3, 0x0) + 35fe: 237f addi r3, 128 + 3600: 934c ld.w r2, (r3, 0x30) + 3602: 6884 and r2, r1 + 3604: 3a40 cmpnei r2, 0 + 3606: 0c04 bf 0x360e // 360e + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3608: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 360a: 1463 ipop + 360c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 360e: 934c ld.w r2, (r3, 0x30) + 3610: 3108 movi r1, 8 + 3612: 6884 and r2, r1 + 3614: 3a40 cmpnei r2, 0 + 3616: 0bf9 bt 0x3608 // 3608 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3618: 3280 movi r2, 128 + 361a: 932c ld.w r1, (r3, 0x30) + 361c: 424b lsli r2, r2, 11 + 361e: 6848 and r1, r2 + 3620: 3940 cmpnei r1, 0 + 3622: 0c03 bf 0x3628 // 3628 + SYSCON->EXICR = EXI_PIN19; + 3624: b34b st.w r2, (r3, 0x2c) +} + 3626: 07f2 br 0x360a // 360a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3628: 3280 movi r2, 128 + 362a: 932c ld.w r1, (r3, 0x30) + 362c: 424c lsli r2, r2, 12 + 362e: 6848 and r1, r2 + 3630: 3940 cmpnei r1, 0 + 3632: 0bf9 bt 0x3624 // 3624 + 3634: 07eb br 0x360a // 360a + 3636: 0000 bkpt + 3638: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +0000363c : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 363c: 1460 nie + 363e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 3640: 1075 lrw r3, 0x2000005c // 3694 + 3642: 3280 movi r2, 128 + 3644: 9360 ld.w r3, (r3, 0x0) + 3646: 60c8 addu r3, r2 + 3648: 932c ld.w r1, (r3, 0x30) + 364a: 3010 movi r0, 16 + 364c: 6840 and r1, r0 + 364e: 3940 cmpnei r1, 0 + 3650: 0c04 bf 0x3658 // 3658 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 3652: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 3654: 1463 ipop + 3656: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 3658: 932c ld.w r1, (r3, 0x30) + 365a: 3020 movi r0, 32 + 365c: 6840 and r1, r0 + 365e: 3940 cmpnei r1, 0 + 3660: 0bf9 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3662: 932c ld.w r1, (r3, 0x30) + 3664: 3040 movi r0, 64 + 3666: 6840 and r1, r0 + 3668: 3940 cmpnei r1, 0 + 366a: 0bf4 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 366c: 932c ld.w r1, (r3, 0x30) + 366e: 6848 and r1, r2 + 3670: 3940 cmpnei r1, 0 + 3672: 0c03 bf 0x3678 // 3678 + SYSCON->EXICR = EXI_PIN9; + 3674: b34b st.w r2, (r3, 0x2c) +} + 3676: 07ef br 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3678: 3280 movi r2, 128 + 367a: 932c ld.w r1, (r3, 0x30) + 367c: 4241 lsli r2, r2, 1 + 367e: 6848 and r1, r2 + 3680: 3940 cmpnei r1, 0 + 3682: 0bf9 bt 0x3674 // 3674 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3684: 3280 movi r2, 128 + 3686: 932c ld.w r1, (r3, 0x30) + 3688: 4242 lsli r2, r2, 2 + 368a: 6848 and r1, r2 + 368c: 3940 cmpnei r1, 0 + 368e: 0bf3 bt 0x3674 // 3674 + 3690: 07e2 br 0x3654 // 3654 + 3692: 0000 bkpt + 3694: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003698 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3698: 1460 nie + 369a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 369c: 1076 lrw r3, 0x2000005c // 36f4 + 369e: 3280 movi r2, 128 + 36a0: 9360 ld.w r3, (r3, 0x0) + 36a2: 237f addi r3, 128 + 36a4: 932c ld.w r1, (r3, 0x30) + 36a6: 4243 lsli r2, r2, 3 + 36a8: 6848 and r1, r2 + 36aa: 3940 cmpnei r1, 0 + 36ac: 0c03 bf 0x36b2 // 36b2 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 36ae: b34b st.w r2, (r3, 0x2c) + } +} + 36b0: 041f br 0x36ee // 36ee + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 36b2: 3280 movi r2, 128 + 36b4: 932c ld.w r1, (r3, 0x30) + 36b6: 4244 lsli r2, r2, 4 + 36b8: 6848 and r1, r2 + 36ba: 3940 cmpnei r1, 0 + 36bc: 0bf9 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 36be: 3280 movi r2, 128 + 36c0: 932c ld.w r1, (r3, 0x30) + 36c2: 4245 lsli r2, r2, 5 + 36c4: 6848 and r1, r2 + 36c6: 3940 cmpnei r1, 0 + 36c8: 0bf3 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 36ca: 3280 movi r2, 128 + 36cc: 932c ld.w r1, (r3, 0x30) + 36ce: 4246 lsli r2, r2, 6 + 36d0: 6848 and r1, r2 + 36d2: 3940 cmpnei r1, 0 + 36d4: 0bed bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 36d6: 3280 movi r2, 128 + 36d8: 932c ld.w r1, (r3, 0x30) + 36da: 4247 lsli r2, r2, 7 + 36dc: 6848 and r1, r2 + 36de: 3940 cmpnei r1, 0 + 36e0: 0be7 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 36e2: 3280 movi r2, 128 + 36e4: 932c ld.w r1, (r3, 0x30) + 36e6: 4248 lsli r2, r2, 8 + 36e8: 6848 and r1, r2 + 36ea: 3940 cmpnei r1, 0 + 36ec: 0be1 bt 0x36ae // 36ae +} + 36ee: 1463 ipop + 36f0: 1461 nir + 36f2: 0000 bkpt + 36f4: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000036f8 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 36f8: 1460 nie + 36fa: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 36fc: 106b lrw r3, 0x20000014 // 3728 + 36fe: 3101 movi r1, 1 + 3700: 9360 ld.w r3, (r3, 0x0) + 3702: 934e ld.w r2, (r3, 0x38) + 3704: 6884 and r2, r1 + 3706: 3a40 cmpnei r2, 0 + 3708: 0c03 bf 0x370e // 370e + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 370a: b330 st.w r1, (r3, 0x40) + } +} + 370c: 040b br 0x3722 // 3722 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 370e: 934e ld.w r2, (r3, 0x38) + 3710: 3102 movi r1, 2 + 3712: 6884 and r2, r1 + 3714: 3a40 cmpnei r2, 0 + 3716: 0bfa bt 0x370a // 370a + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3718: 934e ld.w r2, (r3, 0x38) + 371a: 3104 movi r1, 4 + 371c: 6884 and r2, r1 + 371e: 3a40 cmpnei r2, 0 + 3720: 0bf5 bt 0x370a // 370a +} + 3722: 1463 ipop + 3724: 1461 nir + 3726: 0000 bkpt + 3728: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +0000372c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 372c: 1460 nie + 372e: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3730: 1071 lrw r3, 0x2000000c // 3774 + 3732: 3101 movi r1, 1 + 3734: 9360 ld.w r3, (r3, 0x0) + 3736: 934c ld.w r2, (r3, 0x30) + 3738: 6884 and r2, r1 + 373a: 3a40 cmpnei r2, 0 + 373c: 0c0a bf 0x3750 // 3750 + { + BT0->ICR = BT_PEND; + 373e: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3740: 9341 ld.w r2, (r3, 0x4) + 3742: 3a86 bclri r2, 6 + 3744: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3746: 9340 ld.w r2, (r3, 0x0) + 3748: 3200 movi r2, 0 + 374a: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 374c: 1463 ipop + 374e: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3750: 934c ld.w r2, (r3, 0x30) + 3752: 3102 movi r1, 2 + 3754: 6884 and r2, r1 + 3756: 3a40 cmpnei r2, 0 + 3758: 0c03 bf 0x375e // 375e + BT0->ICR = BT_EVTRG; + 375a: b32d st.w r1, (r3, 0x34) +} + 375c: 07f8 br 0x374c // 374c + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 375e: 934c ld.w r2, (r3, 0x30) + 3760: 3104 movi r1, 4 + 3762: 6884 and r2, r1 + 3764: 3a40 cmpnei r2, 0 + 3766: 0bfa bt 0x375a // 375a + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3768: 934c ld.w r2, (r3, 0x30) + 376a: 3108 movi r1, 8 + 376c: 6884 and r2, r1 + 376e: 3a40 cmpnei r2, 0 + 3770: 0bf5 bt 0x375a // 375a + 3772: 07ed br 0x374c // 374c + 3774: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003778 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3778: 1460 nie + 377a: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 377c: 1076 lrw r3, 0x20000008 // 37d4 + 377e: 3101 movi r1, 1 + 3780: 9360 ld.w r3, (r3, 0x0) + 3782: 934c ld.w r2, (r3, 0x30) + 3784: 6884 and r2, r1 + 3786: 3a40 cmpnei r2, 0 + 3788: 0c03 bf 0x378e // 378e + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 378a: b32d st.w r1, (r3, 0x34) + } +} + 378c: 0416 br 0x37b8 // 37b8 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 378e: 934c ld.w r2, (r3, 0x30) + 3790: 3102 movi r1, 2 + 3792: 6884 and r2, r1 + 3794: 3a40 cmpnei r2, 0 + 3796: 0c13 bf 0x37bc // 37bc + BT1->ICR = BT_CMP; + 3798: b32d st.w r1, (r3, 0x34) + NUM++; + 379a: 1070 lrw r3, 0x200000b0 // 37d8 + 379c: 8340 ld.b r2, (r3, 0x0) + 379e: 2200 addi r2, 1 + 37a0: 7488 zextb r2, r2 + SysTick_100us++; + 37a2: 9321 ld.w r1, (r3, 0x4) + 37a4: 2100 addi r1, 1 + if(NUM >= 10){ + 37a6: 3a09 cmphsi r2, 10 + NUM++; + 37a8: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 37aa: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 37ac: 0c06 bf 0x37b8 // 37b8 + NUM = 0; + 37ae: 3200 movi r2, 0 + 37b0: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 37b2: 9342 ld.w r2, (r3, 0x8) + 37b4: 2200 addi r2, 1 + 37b6: b342 st.w r2, (r3, 0x8) +} + 37b8: 1463 ipop + 37ba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 37bc: 934c ld.w r2, (r3, 0x30) + 37be: 3104 movi r1, 4 + 37c0: 6884 and r2, r1 + 37c2: 3a40 cmpnei r2, 0 + 37c4: 0be3 bt 0x378a // 378a + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 37c6: 934c ld.w r2, (r3, 0x30) + 37c8: 3108 movi r1, 8 + 37ca: 6884 and r2, r1 + 37cc: 3a40 cmpnei r2, 0 + 37ce: 0bde bt 0x378a // 378a + 37d0: 07f4 br 0x37b8 // 37b8 + 37d2: 0000 bkpt + 37d4: 20000008 .long 0x20000008 + 37d8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +000037dc : + 37dc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000037de : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 37de: 1460 nie + 37e0: 1462 ipush + // ISR content ... + +} + 37e2: 1463 ipop + 37e4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000037e6 : + 37e6: 1460 nie + 37e8: 1462 ipush + 37ea: 1463 ipop + 37ec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000037ee : + 37ee: 1460 nie + 37f0: 1462 ipush + 37f2: 1463 ipop + 37f4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000037f6 : + 37f6: 1460 nie + 37f8: 1462 ipush + 37fa: 1463 ipop + 37fc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000037fe : + 37fe: 1460 nie + 3800: 1462 ipush + 3802: 1463 ipop + 3804: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003806 : + 3806: 1460 nie + 3808: 1462 ipush + 380a: 1463 ipop + 380c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000380e : + 380e: 1460 nie + 3810: 1462 ipush + 3812: 1463 ipop + 3814: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003816 : + 3816: 1460 nie + 3818: 1462 ipush + 381a: 1463 ipop + 381c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000381e : + 381e: 1460 nie + 3820: 1462 ipush + 3822: 1463 ipop + 3824: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003826 : + 3826: 1460 nie + 3828: 1462 ipush + 382a: 1463 ipop + 382c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000382e : + 382e: 1460 nie + 3830: 1462 ipush + 3832: 1463 ipop + 3834: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003836 : + 3836: 1460 nie + 3838: 1462 ipush + 383a: 1463 ipop + 383c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003840 <__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) +{ + 3840: 14c1 push r4 + int PSR; + __asm volatile( + 3842: c0006023 mfcr r3, cr<0, 0> + 3846: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 384a: 1046 lrw r2, 0x20000000 // 3860 <__divsi3+0x20> + 384c: 3400 movi r4, 0 + 384e: 9240 ld.w r2, (r2, 0x0) + 3850: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3852: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3854: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3856: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3858: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 385c: 9202 ld.w r0, (r2, 0x8) +} + 385e: 1481 pop r4 + 3860: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003864 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3864: 14c1 push r4 + int PSR; + __asm volatile( + 3866: c0006023 mfcr r3, cr<0, 0> + 386a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 386e: 1046 lrw r2, 0x20000000 // 3884 <__udivsi3+0x20> + 3870: 3401 movi r4, 1 + 3872: 9240 ld.w r2, (r2, 0x0) + 3874: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3876: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3878: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 387a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 387c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3880: 9202 ld.w r0, (r2, 0x8) +} + 3882: 1481 pop r4 + 3884: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003888 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3888: 14c1 push r4 + int PSR; + __asm volatile( + 388a: c0006023 mfcr r3, cr<0, 0> + 388e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3892: 1046 lrw r2, 0x20000000 // 38a8 <__umodsi3+0x20> + 3894: 3401 movi r4, 1 + 3896: 9240 ld.w r2, (r2, 0x0) + 3898: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 389a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 389c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 389e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 38a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 38a4: 9203 ld.w r0, (r2, 0xc) +} + 38a6: 1481 pop r4 + 38a8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000038ac : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 38ac: c1807420 psrset ee, ie +} + 38b0: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000038b4 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b4: 14d2 push r4-r5, r15 + switch(uart_id){ + 38b6: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b8: 6d07 mov r4, r1 + switch(uart_id){ + 38ba: 0c32 bf 0x391e // 391e + 38bc: 3840 cmpnei r0, 0 + 38be: 0c04 bf 0x38c6 // 38c6 + 38c0: 3842 cmpnei r0, 2 + 38c2: 0c51 bf 0x3964 // 3964 +// GPIO_DriveStrength_EN(GPIOA0,1); +// GPIO_Write_Low(GPIOA0,1); + + break; + } +} + 38c4: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 38c6: e3fff365 bsr 0x1f90 // 1f90 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 38ca: 3100 movi r1, 0 + 38cc: 3000 movi r0, 0 + 38ce: e3fff3a1 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 38d2: 1170 lrw r3, 0x20000040 // 3990 + 38d4: 3200 movi r2, 0 + 38d6: 9300 ld.w r0, (r3, 0x0) + 38d8: 112f lrw r1, 0x1388 // 3994 + 38da: e3fff419 bsr 0x210c // 210c + UART0_Int_Enable(); + 38de: e3fff37d bsr 0x1fd8 // 1fd8 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 38e2: 3273 movi r2, 115 + 38e4: 3100 movi r1, 0 + 38e6: 110d lrw r0, 0x20000194 // 3998 + 38e8: e3fff03e bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 38ec: 116c lrw r3, 0x200001fb // 399c + 38ee: 3203 movi r2, 3 + 38f0: a340 st.b r2, (r3, 0x0) + g_uart[UART_0].processing_cf = prt_cf; + 38f2: 4c48 lsri r2, r4, 8 + 38f4: a388 st.b r4, (r3, 0x8) + 38f6: a349 st.b r2, (r3, 0x9) + 38f8: 4c50 lsri r2, r4, 16 + 38fa: 4c98 lsri r4, r4, 24 + 38fc: a38b st.b r4, (r3, 0xb) + 38fe: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOA0,3,Output); + 3900: 3103 movi r1, 3 + 3902: 1188 lrw r4, 0x2000004c // 39a0 + 3904: 3200 movi r2, 0 + 3906: 9400 ld.w r0, (r4, 0x0) + 3908: e3fff240 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,3); + 390c: 9400 ld.w r0, (r4, 0x0) + 390e: 3103 movi r1, 3 + 3910: e3fff2bd bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,3); + 3914: 9400 ld.w r0, (r4, 0x0) + 3916: 3103 movi r1, 3 + 3918: e3fff2c4 bsr 0x1ea0 // 1ea0 + break; + 391c: 07d4 br 0x38c4 // 38c4 + UART1_DeInit(); //clear all UART Register + 391e: e3fff345 bsr 0x1fa8 // 1fa8 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3922: 3102 movi r1, 2 + 3924: 3001 movi r0, 1 + 3926: e3fff375 bsr 0x2010 // 2010 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 392a: 10bf lrw r5, 0x2000003c // 39a4 + 392c: 31d0 movi r1, 208 + 392e: 3200 movi r2, 0 + 3930: 4121 lsli r1, r1, 1 + 3932: 9500 ld.w r0, (r5, 0x0) + 3934: e3fff3e4 bsr 0x20fc // 20fc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3938: 31d0 movi r1, 208 + 393a: 9500 ld.w r0, (r5, 0x0) + 393c: 3200 movi r2, 0 + 393e: 4121 lsli r1, r1, 1 + 3940: e3fff3e6 bsr 0x210c // 210c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3944: 3273 movi r2, 115 + 3946: 3100 movi r1, 0 + 3948: 1018 lrw r0, 0x20000207 // 39a8 + 394a: e3fff00d bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 394e: 1078 lrw r3, 0x2000026e // 39ac + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3950: 3203 movi r2, 3 + 3952: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].processing_cf = prt_cf; + 3954: 4c48 lsri r2, r4, 8 + 3956: a388 st.b r4, (r3, 0x8) + 3958: a349 st.b r2, (r3, 0x9) + 395a: 4c50 lsri r2, r4, 16 + 395c: 4c98 lsri r4, r4, 24 + 395e: a34a st.b r2, (r3, 0xa) + 3960: a38b st.b r4, (r3, 0xb) +} + 3962: 07b1 br 0x38c4 // 38c4 + UART2_DeInit(); //clear all UART Register + 3964: e3fff32e bsr 0x1fc0 // 1fc0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3968: 3102 movi r1, 2 + 396a: 3002 movi r0, 2 + 396c: e3fff352 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3970: 1070 lrw r3, 0x20000038 // 39b0 + 3972: 3200 movi r2, 0 + 3974: 9300 ld.w r0, (r3, 0x0) + 3976: 1028 lrw r1, 0x1388 // 3994 + 3978: e3fff3ca bsr 0x210c // 210c + UART2_Int_Enable(); + 397c: e3fff33c bsr 0x1ff4 // 1ff4 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3980: 3273 movi r2, 115 + 3982: 3100 movi r1, 0 + 3984: 100c lrw r0, 0x2000027a // 39b4 + 3986: e3ffefef bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 398a: 106c lrw r3, 0x200002e1 // 39b8 + 398c: 07e2 br 0x3950 // 3950 + 398e: 0000 bkpt + 3990: 20000040 .long 0x20000040 + 3994: 00001388 .long 0x00001388 + 3998: 20000194 .long 0x20000194 + 399c: 200001fb .long 0x200001fb + 39a0: 2000004c .long 0x2000004c + 39a4: 2000003c .long 0x2000003c + 39a8: 20000207 .long 0x20000207 + 39ac: 2000026e .long 0x2000026e + 39b0: 20000038 .long 0x20000038 + 39b4: 2000027a .long 0x2000027a + 39b8: 200002e1 .long 0x200002e1 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000039bc : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 39bc: 14d2 push r4-r5, r15 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 39be: 1057 lrw r2, 0x200002df // 3a18 + 39c0: 5a22 addi r1, r2, 1 + 39c2: 8160 ld.b r3, (r1, 0x0) + 39c4: 8280 ld.b r4, (r2, 0x0) + 39c6: 4368 lsli r3, r3, 8 + 39c8: 6cd0 or r3, r4 + 39ca: 3462 movi r4, 98 + 39cc: 64d1 cmplt r4, r3 + 39ce: 0c04 bf 0x39d6 // 39d6 + 39d0: 3300 movi r3, 0 + 39d2: a260 st.b r3, (r2, 0x0) + 39d4: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39d6: 8160 ld.b r3, (r1, 0x0) + 39d8: 82a0 ld.b r5, (r2, 0x0) + 39da: 4368 lsli r3, r3, 8 + 39dc: 6cd4 or r3, r5 + 39de: 1090 lrw r4, 0x20000194 // 3a1c + 39e0: 5b22 addi r1, r3, 1 + 39e2: 7445 zexth r1, r1 + 39e4: 60d0 addu r3, r4 + 39e6: a220 st.b r1, (r2, 0x0) + 39e8: 23e5 addi r3, 230 + 39ea: 4928 lsri r1, r1, 8 + 39ec: a221 st.b r1, (r2, 0x1) + 39ee: a300 st.b r0, (r3, 0x0) + + uart_receive_input((U8_T)data); + 39f0: e0001260 bsr 0x5eb0 // 5eb0 + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39f4: 106b lrw r3, 0x200000b8 // 3a20 + 39f6: 104c lrw r2, 0x151 // 3a24 + 39f8: 9360 ld.w r3, (r3, 0x0) + 39fa: 6090 addu r2, r4 + 39fc: 4b28 lsri r1, r3, 8 + 39fe: a260 st.b r3, (r2, 0x0) + 3a00: a221 st.b r1, (r2, 0x1) + 3a02: 4b30 lsri r1, r3, 16 + 3a04: 4b78 lsri r3, r3, 24 + 3a06: a263 st.b r3, (r2, 0x3) + g_uart[UART_2].Receiving = 0x01; + 3a08: 33a5 movi r3, 165 + 3a0a: 4361 lsli r3, r3, 1 + 3a0c: 610c addu r4, r3 + 3a0e: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a10: a222 st.b r1, (r2, 0x2) + g_uart[UART_2].Receiving = 0x01; + 3a12: a460 st.b r3, (r4, 0x0) +} + 3a14: 1492 pop r4-r5, r15 + 3a16: 0000 bkpt + 3a18: 200002df .long 0x200002df + 3a1c: 20000194 .long 0x20000194 + 3a20: 200000b8 .long 0x200000b8 + 3a24: 00000151 .long 0x00000151 + +Disassembly of section .text.UART2_TASK: + +00003a28 : + + +void UART2_TASK(void){ + 3a28: 14d3 push r4-r6, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3a2a: 1184 lrw r4, 0x200002de // 3ab8 + 3a2c: 8460 ld.b r3, (r4, 0x0) + 3a2e: 3b41 cmpnei r3, 1 + 3a30: 0843 bt 0x3ab6 // 3ab6 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3a32: 8428 ld.b r1, (r4, 0x8) + 3a34: 8467 ld.b r3, (r4, 0x7) + 3a36: 4128 lsli r1, r1, 8 + 3a38: 6c4c or r1, r3 + 3a3a: 8469 ld.b r3, (r4, 0x9) + 3a3c: 4370 lsli r3, r3, 16 + 3a3e: 6c4c or r1, r3 + 3a40: 846a ld.b r3, (r4, 0xa) + 3a42: 10bf lrw r5, 0x200000b8 // 3abc + 3a44: 4378 lsli r3, r3, 24 + 3a46: 6cc4 or r3, r1 + 3a48: 9500 ld.w r0, (r5, 0x0) + 3a4a: 8424 ld.b r1, (r4, 0x4) + 3a4c: 600e subu r0, r3 + 3a4e: 4128 lsli r1, r1, 8 + 3a50: 8463 ld.b r3, (r4, 0x3) + 3a52: 6c4c or r1, r3 + 3a54: 8465 ld.b r3, (r4, 0x5) + 3a56: 4370 lsli r3, r3, 16 + 3a58: 6c4c or r1, r3 + 3a5a: 8466 ld.b r3, (r4, 0x6) + 3a5c: 4378 lsli r3, r3, 24 + 3a5e: 6cc4 or r3, r1 + 3a60: 640c cmphs r3, r0 + 3a62: 082a bt 0x3ab6 // 3ab6 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a64: 9560 ld.w r3, (r5, 0x0) + 3a66: 4b28 lsri r1, r3, 8 + 3a68: a467 st.b r3, (r4, 0x7) + 3a6a: a428 st.b r1, (r4, 0x8) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", g_uart[UART_2].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3a6c: 844c ld.b r2, (r4, 0xc) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a6e: 4b30 lsri r1, r3, 16 + 3a70: 4b78 lsri r3, r3, 24 + 3a72: a46a st.b r3, (r4, 0xa) + if(g_uart[UART_2].processing_cf != NULL){ + 3a74: 4248 lsli r2, r2, 8 + 3a76: 846b ld.b r3, (r4, 0xb) + 3a78: 6c8c or r2, r3 + 3a7a: 846d ld.b r3, (r4, 0xd) + 3a7c: 4370 lsli r3, r3, 16 + 3a7e: 6c8c or r2, r3 + 3a80: 846e ld.b r3, (r4, 0xe) + 3a82: 4378 lsli r3, r3, 24 + 3a84: 6cc8 or r3, r2 + 3a86: 3b40 cmpnei r3, 0 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a88: a429 st.b r1, (r4, 0x9) + 3a8a: 5ca2 addi r5, r4, 1 + if(g_uart[UART_2].processing_cf != NULL){ + 3a8c: 0c11 bf 0x3aae // 3aae + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a8e: 8422 ld.b r1, (r4, 0x2) + 3a90: 8540 ld.b r2, (r5, 0x0) + 3a92: 4128 lsli r1, r1, 8 + 3a94: 6c48 or r1, r2 + 3a96: 100b lrw r0, 0x2000027a // 3ac0 + 3a98: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3a9a: 3841 cmpnei r0, 1 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a9c: 5cc6 addi r6, r4, 2 + if(rev == 0x01){ + 3a9e: 0808 bt 0x3aae // 3aae + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3aa0: 8422 ld.b r1, (r4, 0x2) + 3aa2: 8560 ld.b r3, (r5, 0x0) + 3aa4: 4128 lsli r1, r1, 8 + 3aa6: 6c4c or r1, r3 + 3aa8: 1006 lrw r0, 0x2000027a // 3ac0 + 3aaa: e00003db bsr 0x4260 // 4260 + } + + g_uart[UART_2].RecvLen = 0; + 3aae: 3300 movi r3, 0 + 3ab0: a560 st.b r3, (r5, 0x0) + 3ab2: a561 st.b r3, (r5, 0x1) + g_uart[UART_2].Receiving = 0; + 3ab4: a460 st.b r3, (r4, 0x0) + } + } +} + 3ab6: 1493 pop r4-r6, r15 + 3ab8: 200002de .long 0x200002de + 3abc: 200000b8 .long 0x200000b8 + 3ac0: 2000027a .long 0x2000027a + +Disassembly of section .text.MCU485_SendData: + +00003ac4 : + }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){ + 3ac4: 14d4 push r4-r7, r15 + 3ac6: 1421 subi r14, r14, 4 + 3ac8: b800 st.w r0, (r14, 0x0) + 3aca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3acc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3ace: 109d lrw r4, 0x200000bc // 3b40 + 3ad0: 10dd lrw r6, 0x2000004c // 3b44 + 3ad2: 9460 ld.w r3, (r4, 0x0) + 3ad4: 3b41 cmpnei r3, 1 + 3ad6: 0c29 bf 0x3b28 // 3b28 + } + + GPIO_Reverse(GPIOA0,1); + } + + delay_nus(500); + 3ad8: 30fa movi r0, 250 + 3ada: 4001 lsli r0, r0, 1 + 3adc: e3fff908 bsr 0x2cec // 2cec + GPIO_Write_High(GPIOA0,1); + 3ae0: 3101 movi r1, 1 + 3ae2: 9600 ld.w r0, (r6, 0x0) + 3ae4: e3fff1da bsr 0x1e98 // 1e98 + + RS485_Comm_Flag = 0x01; + 3ae8: 3301 movi r3, 1 + 3aea: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 3aec: 3300 movi r3, 0 + 3aee: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 3af0: b463 st.w r3, (r4, 0xc) + + UARTTransmit(UART2,buff,len); + 3af2: 6c9f mov r2, r7 + 3af4: 1075 lrw r3, 0x20000038 // 3b48 + 3af6: 9300 ld.w r0, (r3, 0x0) + 3af8: 9820 ld.w r1, (r14, 0x0) + 3afa: e3fff311 bsr 0x211c // 211c + + do{ + delay_nus(100); + 3afe: 3064 movi r0, 100 + 3b00: e3fff8f6 bsr 0x2cec // 2cec + + delay_cnt ++; + 3b04: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b06: 3363 movi r3, 99 + 3b08: 654c cmphs r3, r5 + 3b0a: 0c07 bf 0x3b18 // 3b18 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3b0c: 9462 ld.w r3, (r4, 0x8) + 3b0e: 65cd cmplt r3, r7 + 3b10: 0bf7 bt 0x3afe // 3afe + 3b12: 9463 ld.w r3, (r4, 0xc) + 3b14: 65cd cmplt r3, r7 + 3b16: 0bf4 bt 0x3afe // 3afe + + GPIO_Write_Low(GPIOA0,1); + 3b18: 9600 ld.w r0, (r6, 0x0) + 3b1a: 3101 movi r1, 1 + 3b1c: e3fff1c2 bsr 0x1ea0 // 1ea0 + + RS485_Comm_Flag = 0x00; + 3b20: 3300 movi r3, 0 + 3b22: b461 st.w r3, (r4, 0x4) +} + 3b24: 1401 addi r14, r14, 4 + 3b26: 1494 pop r4-r7, r15 + delay_nus(100); + 3b28: 3064 movi r0, 100 + 3b2a: e3fff8e1 bsr 0x2cec // 2cec + delay_cnt ++; + 3b2e: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b30: 3364 movi r3, 100 + 3b32: 64d6 cmpne r5, r3 + 3b34: 0fd2 bf 0x3ad8 // 3ad8 + GPIO_Reverse(GPIOA0,1); + 3b36: 3101 movi r1, 1 + 3b38: 9600 ld.w r0, (r6, 0x0) + 3b3a: e3fff1b7 bsr 0x1ea8 // 1ea8 + 3b3e: 07ca br 0x3ad2 // 3ad2 + 3b40: 200000bc .long 0x200000bc + 3b44: 2000004c .long 0x2000004c + 3b48: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003b4c : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3b4c: 1423 subi r14, r14, 12 + 3b4e: b862 st.w r3, (r14, 0x8) + 3b50: b841 st.w r2, (r14, 0x4) + 3b52: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3b54: 1403 addi r14, r14, 12 + 3b56: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003b58 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3b58: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003b5c : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 3b5c: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3b5e: 3230 movi r2, 48 + 3b60: 3100 movi r1, 0 + 3b62: 1017 lrw r0, 0x20000320 // 3bbc + 3b64: e3ffef00 bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + 3b68: 3214 movi r2, 20 + 3b6a: 3100 movi r1, 0 + 3b6c: 1015 lrw r0, 0x2000030c // 3bc0 + 3b6e: e3ffeefb bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3b72: 321c movi r2, 28 + 3b74: 3100 movi r1, 0 + 3b76: 1014 lrw r0, 0x200002f0 // 3bc4 + 3b78: e3ffeef6 bsr 0x1964 // 1964 <__memset_fast> + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b7c: 1093 lrw r4, 0x20000350 // 3bc8 + EEPROM_Init(); //按键库初始化前先读取参数 + 3b7e: e0000489 bsr 0x4490 // 4490 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b82: 8405 ld.b r0, (r4, 0x5) + 3b84: 1030 lrw r1, 0x200002f0 // 3bc4 + 3b86: e00004e3 bsr 0x454c // 454c + if(rev == 0x00){ + 3b8a: 3840 cmpnei r0, 0 + 3b8c: 080e bt 0x3ba8 // 3ba8 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3b8e: 8405 ld.b r0, (r4, 0x5) + 3b90: 102d lrw r1, 0x200002f0 // 3bc4 + 3b92: e0000533 bsr 0x45f8 // 45f8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3b96: 100c lrw r0, 0x200002f0 // 3bc4 + 3b98: e00005a4 bsr 0x46e0 // 46e0 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3b9c: e0001bb8 bsr 0x730c // 730c + + base_update_f = 0x01; //触摸状态强制更新 + 3ba0: 106b lrw r3, 0x20000743 // 3bcc + 3ba2: 3201 movi r2, 1 + 3ba4: a340 st.b r2, (r3, 0x0) + +} + 3ba6: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3ba8: 102a lrw r1, 0x7bd6 // 3bd0 + 3baa: 3000 movi r0, 0 + 3bac: e3ffffd0 bsr 0x3b4c // 3b4c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3bb0: 8405 ld.b r0, (r4, 0x5) + 3bb2: 1025 lrw r1, 0x200002f0 // 3bc4 + 3bb4: e0000576 bsr 0x46a0 // 46a0 + 3bb8: 07ef br 0x3b96 // 3b96 + 3bba: 0000 bkpt + 3bbc: 20000320 .long 0x20000320 + 3bc0: 2000030c .long 0x2000030c + 3bc4: 200002f0 .long 0x200002f0 + 3bc8: 20000350 .long 0x20000350 + 3bcc: 20000743 .long 0x20000743 + 3bd0: 00007bd6 .long 0x00007bd6 + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003bd4 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3bd4: 14d3 push r4-r6, r15 + 3bd6: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3bd8: 1289 lrw r4, 0x20000068 // 3cfc + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bda: 8400 ld.b r0, (r4, 0x0) + 3bdc: 1229 lrw r1, 0x2000088e // 3d00 + 3bde: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3be0: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3be2: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3be4: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3be8: 330a movi r3, 10 + 3bea: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bee: 8a60 ld.h r3, (r2, 0x0) + 3bf0: 4b68 lsri r3, r3, 8 + 3bf2: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bf6: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3bf8: 1243 lrw r2, 0x200008d2 // 3d04 + 3bfa: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bfc: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c00: 8d60 ld.h r3, (r5, 0x0) + 3c02: 4b68 lsri r3, r3, 8 + 3c04: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c08: 8d60 ld.h r3, (r5, 0x0) + 3c0a: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c0e: 117f lrw r3, 0x2000062c // 3d08 + 3c10: 600c addu r0, r3 + 3c12: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c14: 8800 ld.h r0, (r0, 0x0) + 3c16: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c1a: 8401 ld.b r0, (r4, 0x1) + 3c1c: 4001 lsli r0, r0, 1 + 3c1e: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c20: 4da8 lsri r5, r5, 8 + 3c22: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c26: 8ea0 ld.h r5, (r6, 0x0) + 3c28: 4da8 lsri r5, r5, 8 + 3c2a: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c2e: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c30: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c32: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c36: 8ea0 ld.h r5, (r6, 0x0) + 3c38: 4da8 lsri r5, r5, 8 + 3c3a: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c3e: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c40: 8ea0 ld.h r5, (r6, 0x0) + 3c42: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c46: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c48: 8800 ld.h r0, (r0, 0x0) + 3c4a: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c4e: 8402 ld.b r0, (r4, 0x2) + 3c50: 4001 lsli r0, r0, 1 + 3c52: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c54: 4da8 lsri r5, r5, 8 + 3c56: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c5a: 8ea0 ld.h r5, (r6, 0x0) + 3c5c: 4da8 lsri r5, r5, 8 + 3c5e: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c62: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c64: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c66: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c6a: 8ea0 ld.h r5, (r6, 0x0) + 3c6c: 4da8 lsri r5, r5, 8 + 3c6e: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c72: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c74: 8ea0 ld.h r5, (r6, 0x0) + 3c76: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c7a: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c7c: 8800 ld.h r0, (r0, 0x0) + 3c7e: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c82: 8403 ld.b r0, (r4, 0x3) + 3c84: 4001 lsli r0, r0, 1 + 3c86: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c88: 4da8 lsri r5, r5, 8 + 3c8a: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c8e: 8ea0 ld.h r5, (r6, 0x0) + 3c90: 4da8 lsri r5, r5, 8 + 3c92: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c96: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c98: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c9a: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c9e: 8ea0 ld.h r5, (r6, 0x0) + 3ca0: 4da8 lsri r5, r5, 8 + 3ca2: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3ca6: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3ca8: 8ea0 ld.h r5, (r6, 0x0) + 3caa: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cae: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cb0: 8800 ld.h r0, (r0, 0x0) + 3cb2: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cb6: 8404 ld.b r0, (r4, 0x4) + 3cb8: 4001 lsli r0, r0, 1 + 3cba: 6040 addu r1, r0 + 3cbc: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3cbe: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3cc0: 8920 ld.h r1, (r1, 0x0) + 3cc2: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cc6: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cc8: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cca: 8a40 ld.h r2, (r2, 0x0) + 3ccc: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd0: 8b40 ld.h r2, (r3, 0x0) + 3cd2: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd4: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cd6: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cd8: 4928 lsri r1, r1, 8 + 3cda: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cde: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3ce2: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ce6: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3cea: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cec: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3cee: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cf0: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3cf4: e3fffee8 bsr 0x3ac4 // 3ac4 +// UARTTransmit(UART2,send_buff,send_len); + +} + 3cf8: 140d addi r14, r14, 52 + 3cfa: 1493 pop r4-r6, r15 + 3cfc: 20000068 .long 0x20000068 + 3d00: 2000088e .long 0x2000088e + 3d04: 200008d2 .long 0x200008d2 + 3d08: 2000062c .long 0x2000062c + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003d0c : +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3d0c: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3d0e: 3804 cmphsi r0, 5 + 3d10: 0818 bt 0x3d40 // 3d40 + 3d12: 106d lrw r3, 0x20000320 // 3d44 + 3d14: e3ffe7f4 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3d18: 0e0b0803 .long 0x0e0b0803 + 3d1c: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3d1e: 9309 ld.w r0, (r3, 0x24) + 3d20: 4809 lsri r0, r0, 9 + if(g_key.key_state & 0x1000){ + state = 0x01; + } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3d22: 3301 movi r3, 1 + U8_T state = 0; + 3d24: 680c and r0, r3 + } + break; + } + + return state; +} + 3d26: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3d28: 9309 ld.w r0, (r3, 0x24) + 3d2a: 480a lsri r0, r0, 10 + 3d2c: 07fb br 0x3d22 // 3d22 + if(g_key.key_state & 0x0800){ + 3d2e: 9309 ld.w r0, (r3, 0x24) + 3d30: 480b lsri r0, r0, 11 + 3d32: 07f8 br 0x3d22 // 3d22 + if(g_key.key_state & 0x1000){ + 3d34: 9309 ld.w r0, (r3, 0x24) + 3d36: 480c lsri r0, r0, 12 + 3d38: 07f5 br 0x3d22 // 3d22 + if(g_key.key_state & 0x2000){ + 3d3a: 9309 ld.w r0, (r3, 0x24) + 3d3c: 480d lsri r0, r0, 13 + 3d3e: 07f2 br 0x3d22 // 3d22 + U8_T state = 0; + 3d40: 3000 movi r0, 0 + 3d42: 07f2 br 0x3d26 // 3d26 + 3d44: 20000320 .long 0x20000320 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003d48 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3d48: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3d4a: 118a lrw r4, 0x20000320 // 3df0 + 3d4c: 8465 ld.b r3, (r4, 0x5) + 3d4e: 3b42 cmpnei r3, 2 + 3d50: 081c bt 0x3d88 // 3d88 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d52: 3300 movi r3, 0 + 3d54: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3d56: 8466 ld.b r3, (r4, 0x6) + 3d58: 3b42 cmpnei r3, 2 + 3d5a: 0820 bt 0x3d9a // 3d9a + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d5c: 3300 movi r3, 0 + 3d5e: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3d60: 8467 ld.b r3, (r4, 0x7) + 3d62: 3b42 cmpnei r3, 2 + 3d64: 0824 bt 0x3dac // 3dac + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d66: 3300 movi r3, 0 + 3d68: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3d6a: e0000d0d bsr 0x5784 // 5784 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3d6e: 8468 ld.b r3, (r4, 0x8) + 3d70: 3b42 cmpnei r3, 2 + 3d72: 0829 bt 0x3dc4 // 3dc4 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3d74: 3300 movi r3, 0 + 3d76: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3d78: e0000dbc bsr 0x58f0 // 58f0 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3d7c: 8469 ld.b r3, (r4, 0x9) + 3d7e: 3b42 cmpnei r3, 2 + 3d80: 082e bt 0x3ddc // 3ddc + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3d82: 3300 movi r3, 0 + 3d84: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3d86: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d88: 3b44 cmpnei r3, 4 + 3d8a: 0fe4 bf 0x3d52 // 3d52 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3d8c: 3b41 cmpnei r3, 1 + 3d8e: 0be4 bt 0x3d56 // 3d56 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d90: 3300 movi r3, 0 + 3d92: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3d94: e0000b92 bsr 0x54b8 // 54b8 + 3d98: 07df br 0x3d56 // 3d56 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d9a: 3b44 cmpnei r3, 4 + 3d9c: 0fe0 bf 0x3d5c // 3d5c + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3d9e: 3b41 cmpnei r3, 1 + 3da0: 0be0 bt 0x3d60 // 3d60 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3da2: 3300 movi r3, 0 + 3da4: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3da6: e0000bfb bsr 0x559c // 559c + 3daa: 07db br 0x3d60 // 3d60 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dac: 3b44 cmpnei r3, 4 + 3dae: 0804 bt 0x3db6 // 3db6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3db0: 3300 movi r3, 0 + 3db2: a467 st.b r3, (r4, 0x7) + 3db4: 07dd br 0x3d6e // 3d6e + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3db6: 3b41 cmpnei r3, 1 + 3db8: 0bdb bt 0x3d6e // 3d6e + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3dba: 3300 movi r3, 0 + 3dbc: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3dbe: e0000c61 bsr 0x5680 // 5680 + 3dc2: 07d6 br 0x3d6e // 3d6e + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0804 bt 0x3dce // 3dce + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dc8: 3300 movi r3, 0 + 3dca: a468 st.b r3, (r4, 0x8) + 3dcc: 07d8 br 0x3d7c // 3d7c + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3dce: 3b41 cmpnei r3, 1 + 3dd0: 0bd6 bt 0x3d7c // 3d7c + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dd2: 3300 movi r3, 0 + 3dd4: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3dd6: e0000d0d bsr 0x57f0 // 57f0 + 3dda: 07d1 br 0x3d7c // 3d7c + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ddc: 3b44 cmpnei r3, 4 + 3dde: 0fd2 bf 0x3d82 // 3d82 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3de0: 3b41 cmpnei r3, 1 + 3de2: 0bd2 bt 0x3d86 // 3d86 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3de4: 3300 movi r3, 0 + 3de6: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3de8: e0000dba bsr 0x595c // 595c +} + 3dec: 07cd br 0x3d86 // 3d86 + 3dee: 0000 bkpt + 3df0: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003df4 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3df4: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3df6: 106c lrw r3, 0x200003f3 // 3e24 + 3df8: 8340 ld.b r2, (r3, 0x0) + 3dfa: 3a41 cmpnei r2, 1 + 3dfc: 0c04 bf 0x3e04 // 3e04 + 3dfe: 8362 ld.b r3, (r3, 0x2) + 3e00: 3b45 cmpnei r3, 5 + 3e02: 0c10 bf 0x3e22 // 3e22 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3e04: 1069 lrw r3, 0x20000320 // 3e28 + 3e06: 8359 ld.b r2, (r3, 0x19) + 3e08: 3a41 cmpnei r2, 1 + 3e0a: 080c bt 0x3e22 // 3e22 + if(SysTick_1ms - g_key.key_dug_tick >= 50){ + 3e0c: 1028 lrw r1, 0x200000b8 // 3e2c + 3e0e: 9140 ld.w r2, (r1, 0x0) + 3e10: 930b ld.w r0, (r3, 0x2c) + 3e12: 6082 subu r2, r0 + 3e14: 3031 movi r0, 49 + 3e16: 6480 cmphs r0, r2 + 3e18: 0805 bt 0x3e22 // 3e22 + g_key.key_dug_tick = SysTick_1ms; + 3e1a: 9140 ld.w r2, (r1, 0x0) + 3e1c: b34b st.w r2, (r3, 0x2c) + + /*打印触摸按键数值*/ + TouchKey_RS485_Printf(); + 3e1e: e3fffedb bsr 0x3bd4 // 3bd4 + } + } +} + 3e22: 1490 pop r15 + 3e24: 200003f3 .long 0x200003f3 + 3e28: 20000320 .long 0x20000320 + 3e2c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003e30 : +void Touch_Key_Task(void){ + 3e30: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3e32: 1132 lrw r1, 0x200000b8 // 3ef8 + 3e34: 1172 lrw r3, 0x20000320 // 3efc + 3e36: 9140 ld.w r2, (r1, 0x0) + 3e38: 930a ld.w r0, (r3, 0x28) + 3e3a: 6082 subu r2, r0 + 3e3c: 3a04 cmphsi r2, 5 + 3e3e: 0806 bt 0x3e4a // 3e4a + break; + } + } + } + + Touch_Key_Event_Handling(); + 3e40: e3ffff84 bsr 0x3d48 // 3d48 + + TouchKey_Set_Interface_Task(); + 3e44: e3ffffd8 bsr 0x3df4 // 3df4 + +} + 3e48: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3e4a: 9140 ld.w r2, (r1, 0x0) + 3e4c: b34a st.w r2, (r3, 0x28) + if(Key_Map != 0x00){ + 3e4e: 112d lrw r1, 0x20000760 // 3f00 + 3e50: 9140 ld.w r2, (r1, 0x0) + 3e52: 3a40 cmpnei r2, 0 + 3e54: 0c02 bf 0x3e58 // 3e58 + g_key.key_state = Key_Map; + 3e56: 9140 ld.w r2, (r1, 0x0) + 3e58: 1189 lrw r4, 0x20000320 // 3efc +void Touch_Key_Task(void){ + 3e5a: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3e5c: b349 st.w r2, (r3, 0x24) +void Touch_Key_Task(void){ + 3e5e: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3e60: 11e9 lrw r7, 0x257 // 3f04 + switch (g_key.KEY_STA[i]) { + 3e62: 8460 ld.b r3, (r4, 0x0) + 3e64: 3b41 cmpnei r3, 1 + 3e66: 0c24 bf 0x3eae // 3eae + 3e68: 3b40 cmpnei r3, 0 + 3e6a: 0c0a bf 0x3e7e // 3e7e + 3e6c: 3b42 cmpnei r3, 2 + 3e6e: 0c39 bf 0x3ee0 // 3ee0 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3e70: 2500 addi r5, 1 + 3e72: 7554 zextb r5, r5 + 3e74: 3d45 cmpnei r5, 5 + 3e76: 2400 addi r4, 1 + 3e78: 2601 addi r6, 2 + 3e7a: 0bf4 bt 0x3e62 // 3e62 + 3e7c: 07e2 br 0x3e40 // 3e40 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3e7e: 6c17 mov r0, r5 + 3e80: e3ffff46 bsr 0x3d0c // 3d0c + 3e84: 3841 cmpnei r0, 1 + 3e86: 080f bt 0x3ea4 // 3ea4 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3e88: 8474 ld.b r3, (r4, 0x14) + 3e8a: 3b01 cmphsi r3, 2 + 3e8c: 0804 bt 0x3e94 // 3e94 + g_key.delayCnt[i]++; + 3e8e: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3e90: a474 st.b r3, (r4, 0x14) + 3e92: 07ef br 0x3e70 // 3e70 + Controlled_Buzzer(0x01); + 3e94: 3001 movi r0, 1 + 3e96: e0000769 bsr 0x4d68 // 4d68 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3e9a: 3301 movi r3, 1 + 3e9c: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3e9e: 3300 movi r3, 0 + 3ea0: ae6d st.h r3, (r6, 0x1a) + 3ea2: 07f7 br 0x3e90 // 3e90 + g_key.delayCnt[i] = 0; + 3ea4: 3300 movi r3, 0 + 3ea6: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ea8: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3eaa: a465 st.b r3, (r4, 0x5) + 3eac: 07e2 br 0x3e70 // 3e70 + g_key.key_time[i]++; + 3eae: 8e6d ld.h r3, (r6, 0x1a) + 3eb0: 2300 addi r3, 1 + 3eb2: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb4: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3eb6: ae6d st.h r3, (r6, 0x1a) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb8: 0c0c bf 0x3ed0 // 3ed0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3eba: 6c17 mov r0, r5 + 3ebc: e3ffff28 bsr 0x3d0c // 3d0c + 3ec0: 3840 cmpnei r0, 0 + 3ec2: 0bd7 bt 0x3e70 // 3e70 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ec4: 3301 movi r3, 1 + 3ec6: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3ec8: 3300 movi r3, 0 + 3eca: ae6d st.h r3, (r6, 0x1a) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ecc: a460 st.b r3, (r4, 0x0) + 3ece: 07d1 br 0x3e70 // 3e70 + g_key.KEY_STA[i] = KEY_STA_S2; + 3ed0: 3302 movi r3, 2 + 3ed2: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ed4: 3300 movi r3, 0 + 3ed6: ae6d st.h r3, (r6, 0x1a) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3ed8: 3303 movi r3, 3 + 3eda: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3edc: 3302 movi r3, 2 + 3ede: 07e6 br 0x3eaa // 3eaa + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee0: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee2: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee4: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee6: e3ffff13 bsr 0x3d0c // 3d0c + 3eea: 3840 cmpnei r0, 0 + 3eec: 0bc2 bt 0x3e70 // 3e70 + g_key.KEY_STA[i] = KEY_STA_S0; + 3eee: 3300 movi r3, 0 + 3ef0: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3ef2: 3304 movi r3, 4 + 3ef4: 07db br 0x3eaa // 3eaa + 3ef6: 0000 bkpt + 3ef8: 200000b8 .long 0x200000b8 + 3efc: 20000320 .long 0x20000320 + 3f00: 20000760 .long 0x20000760 + 3f04: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003f08 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3f08: 6040 addu r1, r0 + U8_T data_sum = 0; + 3f0a: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3f10: 6cce nor r3, r3 + 3f12: 740c zextb r0, r3 +} + 3f14: 783c jmp r15 + data_sum += data[i]; + 3f16: 8040 ld.b r2, (r0, 0x0) + 3f18: 60c8 addu r3, r2 + 3f1a: 74cc zextb r3, r3 + 3f1c: 2000 addi r0, 1 + 3f1e: 07f7 br 0x3f0c // 3f0c + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003f20 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3f20: 14d2 push r4-r5, r15 + 3f22: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3f24: 5992 addi r4, r1, 5 + 3f26: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3f28: 3331 movi r3, 49 + 3f2a: 650c cmphs r3, r4 + 3f2c: 0803 bt 0x3f32 // 3f32 + para_len = 44; + 3f2e: 312c movi r1, 44 + reply_len = 50; + 3f30: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3f32: 3300 movi r3, 0 + 3f34: 2b50 subi r3, 81 + 3f36: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3f3a: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3f3e: 1077 lrw r3, 0x20000350 // 3f98 + 3f40: 8360 ld.b r3, (r3, 0x0) + 3f42: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3f46: 3300 movi r3, 0 + 3f48: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3f52: 3200 movi r2, 0 + 3f54: 60f8 addu r3, r14 + 3f56: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f58: 6c53 mov r1, r4 + 3f5a: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3f5c: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f5e: e3ffffd5 bsr 0x3f08 // 3f08 + + if (detect_inf.control_model == 0x00){ + 3f62: 106f lrw r3, 0x200003cc // 3f9c + 3f64: 8363 ld.b r3, (r3, 0x3) + 3f66: 3b40 cmpnei r3, 0 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f68: dc0e0003 st.b r0, (r14, 0x3) + if (detect_inf.control_model == 0x00){ + 3f6c: 080f bt 0x3f8a // 3f8a + MCU485_SendData(send_data,reply_len); + 3f6e: 6c53 mov r1, r4 + 3f70: 6c3b mov r0, r14 + 3f72: e3fffda9 bsr 0x3ac4 // 3ac4 + }else { + UARTTransmit(UART2,send_data,reply_len); + } +} + 3f76: 140f addi r14, r14, 60 + 3f78: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3f7a: 6c8f mov r2, r3 + 3f7c: 58ac addu r5, r0, r3 + 3f7e: 60b8 addu r2, r14 + 3f80: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + UARTTransmit(UART2,send_data,reply_len); + 3f8a: 1066 lrw r3, 0x20000038 // 3fa0 + 3f8c: 6c93 mov r2, r4 + 3f8e: 9300 ld.w r0, (r3, 0x0) + 3f90: 6c7b mov r1, r14 + 3f92: e3fff0c5 bsr 0x211c // 211c + 3f96: 07f0 br 0x3f76 // 3f76 + 3f98: 20000350 .long 0x20000350 + 3f9c: 200003cc .long 0x200003cc + 3fa0: 20000038 .long 0x20000038 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003fa4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fa4: 14d4 push r4-r7, r15 + 3fa6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fa8: 80a0 ld.b r5, (r0, 0x0) + 3faa: 5dc3 subi r6, r5, 1 + 3fac: 7598 zextb r6, r6 + 3fae: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fb0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fb2: 0834 bt 0x401a // 401a + 3fb4: 1125 lrw r1, 0x200002f0 // 4048 + 3fb6: 350b movi r5, 11 + 3fb8: 5862 addi r3, r0, 1 + 3fba: 6140 addu r5, r0 + 3fbc: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3fda: 8479 ld.b r3, (r4, 0x19) + 3fdc: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3fde: 847a ld.b r3, (r4, 0x1a) + 3fe0: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3fe2: 847b ld.b r3, (r4, 0x1b) + 3fe4: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3fe6: 847c ld.b r3, (r4, 0x1c) + 3fe8: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fea: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3fec: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fee: 1037 lrw r1, 0x200002f0 // 4048 + touch_para.longpress_time = para[29]; + 3ff0: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff2: e0000303 bsr 0x45f8 // 45f8 + + if(rev == 0x00){ + 3ff6: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff8: 6d43 mov r5, r0 + if(rev == 0x00){ + 3ffa: 0805 bt 0x4004 // 4004 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3ffc: 1033 lrw r1, 0x200002f0 // 4048 + 3ffe: 6c1b mov r0, r6 + 4000: e0000270 bsr 0x44e0 // 44e0 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4004: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4006: 3102 movi r1, 2 + 4008: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 400a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 400e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4012: e3ffff87 bsr 0x3f20 // 3f20 +} + 4016: 1401 addi r14, r14, 4 + 4018: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 401a: 3d40 cmpnei r5, 0 + 401c: 0c03 bf 0x4022 // 4022 + rev = 0x01; + 401e: 3501 movi r5, 1 + 4020: 07f2 br 0x4004 // 4004 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 4022: 8061 ld.b r3, (r0, 0x1) + 4024: 104a lrw r2, 0x7710 // 404c + 4026: 102b lrw r1, 0x7c03 // 4050 + 4028: 3000 movi r0, 0 + 402a: e3fffd91 bsr 0x3b4c // 3b4c + if( (para[1] > 0) && (para[1] <= 3) ){ + 402e: 8461 ld.b r3, (r4, 0x1) + 4030: 2b00 subi r3, 1 + 4032: 74cc zextb r3, r3 + 4034: 3b02 cmphsi r3, 3 + 4036: 0bf4 bt 0x401e // 401e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4038: 1047 lrw r2, 0x200003f3 // 4054 + g_eeprom.key_sens_level = para[1] - 1; + 403a: 1008 lrw r0, 0x20000350 // 4058 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 403c: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 403e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4040: e00001c2 bsr 0x43c4 // 43c4 + 4044: 07e0 br 0x4004 // 4004 + 4046: 0000 bkpt + 4048: 200002f0 .long 0x200002f0 + 404c: 00007710 .long 0x00007710 + 4050: 00007c03 .long 0x00007c03 + 4054: 200003f3 .long 0x200003f3 + 4058: 20000350 .long 0x20000350 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +0000405c : +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 405c: 14d2 push r4-r5, r15 + 405e: 142d subi r14, r14, 52 + 4060: 6d03 mov r4, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 4062: 3232 movi r2, 50 + 4064: 3100 movi r1, 0 + 4066: 6c3b mov r0, r14 + 4068: e3ffec7e bsr 0x1964 // 1964 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 406c: 8400 ld.b r0, (r4, 0x0) + reply_buff[reply_len++] = 0x02; + 406e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4070: 3840 cmpnei r0, 0 + reply_buff[reply_len++] = 0x02; + 4072: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 4076: 082d bt 0x40d0 // 40d0 + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4078: 1170 lrw r3, 0x20000350 // 4138 + 407a: 8365 ld.b r3, (r3, 0x5) + 407c: 2300 addi r3, 1 + 407e: 1130 lrw r1, 0x200002f0 // 413c + 4080: 6c87 mov r2, r1 + 4082: dc6e0001 st.b r3, (r14, 0x1) + 4086: 6cfb mov r3, r14 + + for(i=0;i> 8; + 408e: 4c88 lsri r4, r4, 8 + 4090: a383 st.b r4, (r3, 0x3) + for(i=0;i> 8; + 409a: 4c88 lsri r4, r4, 8 + 409c: a38f st.b r4, (r3, 0xf) + 409e: 2101 addi r1, 2 + 40a0: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 40a4: 8260 ld.b r3, (r2, 0x0) + 40a6: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 40aa: 8261 ld.b r3, (r2, 0x1) + 40ac: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 40b0: 8262 ld.b r3, (r2, 0x2) + 40b2: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 40b6: 8263 ld.b r3, (r2, 0x3) + 40b8: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40bc: 8278 ld.b r3, (r2, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40be: dc6e001e st.b r3, (r14, 0x1e) + 40c2: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 40c4: 7445 zexth r1, r1 + 40c6: 6c3b mov r0, r14 + 40c8: e3ffff2c bsr 0x3f20 // 3f20 +} + 40cc: 140d addi r14, r14, 52 + 40ce: 1492 pop r4-r5, r15 + }else if(para[0] <= 3){ + 40d0: 3803 cmphsi r0, 4 + 40d2: 0831 bt 0x4134 // 4134 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 40d4: 2800 subi r0, 1 + 40d6: 7400 zextb r0, r0 + 40d8: 1039 lrw r1, 0x200002f0 // 413c + 40da: e0000239 bsr 0x454c // 454c + if(rev != 0x00){ + 40de: 3840 cmpnei r0, 0 + 40e0: 10b7 lrw r5, 0x200002f0 // 413c + 40e2: 0c07 bf 0x40f0 // 40f0 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 40e4: 8400 ld.b r0, (r4, 0x0) + 40e6: 2800 subi r0, 1 + 40e8: 7400 zextb r0, r0 + 40ea: 6c57 mov r1, r5 + 40ec: e00002da bsr 0x46a0 // 46a0 + reply_buff[reply_len++] = para[0]; + 40f0: 8460 ld.b r3, (r4, 0x0) + 40f2: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 40fa: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 40fc: 8902 ld.h r0, (r1, 0x4) + 40fe: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 4102: 4808 lsri r0, r0, 8 + 4104: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 410e: 4808 lsri r0, r0, 8 + 4110: a30f st.b r0, (r3, 0xf) + 4112: 2101 addi r1, 2 + 4114: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4118: 8560 ld.b r3, (r5, 0x0) + 411a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 411e: 8561 ld.b r3, (r5, 0x1) + 4120: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4124: 8562 ld.b r3, (r5, 0x2) + 4126: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 412a: 8563 ld.b r3, (r5, 0x3) + 412c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 4130: 8578 ld.b r3, (r5, 0x18) + 4132: 07c6 br 0x40be // 40be + reply_buff[reply_len++] = 0x00; + 4134: 3102 movi r1, 2 + 4136: 07c7 br 0x40c4 // 40c4 + 4138: 20000350 .long 0x20000350 + 413c: 200002f0 .long 0x200002f0 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00004140 : +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 4140: 14d0 push r15 + 4142: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4144: 8060 ld.b r3, (r0, 0x0) + 4146: 3b41 cmpnei r3, 1 + 4148: 0810 bt 0x4168 // 4168 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 414a: 106b lrw r3, 0x20000320 // 4174 + 414c: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 414e: a359 st.b r2, (r3, 0x19) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 4150: 3303 movi r3, 3 + 4152: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4156: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4158: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 415a: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 415c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4160: e3fffee0 bsr 0x3f20 // 3f20 +} + 4164: 1401 addi r14, r14, 4 + 4166: 1490 pop r15 + }else if(para[0] == 0x02){ + 4168: 3b42 cmpnei r3, 2 + 416a: 0bf3 bt 0x4150 // 4150 + g_key.key_dug_printf = 0x00; + 416c: 1062 lrw r3, 0x20000320 // 4174 + 416e: 3200 movi r2, 0 + 4170: 07ef br 0x414e // 414e + 4172: 0000 bkpt + 4174: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004178 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4178: 14d0 push r15 + 417a: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=0; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 417c: 1150 lrw r2, 0x200008d2 // 423c + reply_buff[reply_len++] = 0x04; //CMD + 417e: 3304 movi r3, 4 + 4180: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4184: 8a60 ld.h r3, (r2, 0x0) + 4186: 4b68 lsri r3, r3, 8 + 4188: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 418c: 8a60 ld.h r3, (r2, 0x0) + 418e: dc6e0002 st.b r3, (r14, 0x2) + reply_buff[reply_len++] = sampling_data0[i]>>8; + reply_buff[reply_len++] = sampling_data0[i]&0xff; + reply_buff[reply_len++] = baseline_data0[i]>>8; + reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4192: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4194: 116b lrw r3, 0x2000062c // 4240 + 4196: 8b20 ld.h r1, (r3, 0x0) + 4198: 4928 lsri r1, r1, 8 + 419a: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 419e: 8b20 ld.h r1, (r3, 0x0) + 41a0: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41a4: 8a28 ld.h r1, (r2, 0x10) + 41a6: 4928 lsri r1, r1, 8 + 41a8: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41ac: 8a28 ld.h r1, (r2, 0x10) + 41ae: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41b2: 8b28 ld.h r1, (r3, 0x10) + 41b4: 4928 lsri r1, r1, 8 + 41b6: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41ba: 8b28 ld.h r1, (r3, 0x10) + 41bc: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41c0: 8a29 ld.h r1, (r2, 0x12) + 41c2: 4928 lsri r1, r1, 8 + 41c4: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41c8: 8a29 ld.h r1, (r2, 0x12) + 41ca: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ce: 8b29 ld.h r1, (r3, 0x12) + 41d0: 4928 lsri r1, r1, 8 + 41d2: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41d6: 8b29 ld.h r1, (r3, 0x12) + 41d8: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41dc: 8a2e ld.h r1, (r2, 0x1c) + 41de: 4928 lsri r1, r1, 8 + 41e0: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41e4: 8a2e ld.h r1, (r2, 0x1c) + 41e6: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ea: 8b2e ld.h r1, (r3, 0x1c) + 41ec: 4928 lsri r1, r1, 8 + 41ee: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41f2: 8b2e ld.h r1, (r3, 0x1c) + 41f4: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41f8: 8a2d ld.h r1, (r2, 0x1a) + 41fa: 4928 lsri r1, r1, 8 + 41fc: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4200: 8a2d ld.h r1, (r2, 0x1a) + 4202: dc2e0012 st.b r1, (r14, 0x12) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4206: 8b2d ld.h r1, (r3, 0x1a) + 4208: 4928 lsri r1, r1, 8 + 420a: dc2e0013 st.b r1, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 420e: 8b2d ld.h r1, (r3, 0x1a) + 4210: dc2e0014 st.b r1, (r14, 0x14) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4214: 8a2c ld.h r1, (r2, 0x18) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4216: 8a4c ld.h r2, (r2, 0x18) + 4218: dc4e0016 st.b r2, (r14, 0x16) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 421c: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 421e: 8b4c ld.h r2, (r3, 0x18) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4220: dc2e0015 st.b r1, (r14, 0x15) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4224: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4226: 8b6c ld.h r3, (r3, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4228: 3119 movi r1, 25 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 422a: dc4e0017 st.b r2, (r14, 0x17) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 422e: dc6e0018 st.b r3, (r14, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4232: e3fffe77 bsr 0x3f20 // 3f20 +} + 4236: 140d addi r14, r14, 52 + 4238: 1490 pop r15 + 423a: 0000 bkpt + 423c: 200008d2 .long 0x200008d2 + 4240: 2000062c .long 0x2000062c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004244 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4244: 14d0 push r15 + 4246: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4248: 3305 movi r3, 5 + 424a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 424e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4250: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4252: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4254: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4258: e3fffe64 bsr 0x3f20 // 3f20 + 425c: 0400 br 0x425c // 425c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004260 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4260: 14d2 push r4-r5, r15 + 4262: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4264: 8060 ld.b r3, (r0, 0x0) + 4266: 32af movi r2, 175 + 4268: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 426a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 426c: 0c09 bf 0x427e // 427e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 426e: 3000 movi r0, 0 + 4270: 114b lrw r2, 0x772c // 431c + 4272: 112c lrw r1, 0x7c13 // 4320 + 4274: e3fffc6c bsr 0x3b4c // 3b4c + return 0x01; + 4278: 3001 movi r0, 1 + break; + } + + + return 0; +} + 427a: 1401 addi r14, r14, 4 + 427c: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 427e: 114a lrw r2, 0x20000350 // 4324 + 4280: 8061 ld.b r3, (r0, 0x1) + 4282: 8240 ld.b r2, (r2, 0x0) + 4284: 64ca cmpne r2, r3 + 4286: 0c08 bf 0x4296 // 4296 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4288: 3000 movi r0, 0 + 428a: 1145 lrw r2, 0x772c // 431c + 428c: 1127 lrw r1, 0x7c25 // 4328 + 428e: e3fffc5f bsr 0x3b4c // 3b4c + return 0x02; + 4292: 3002 movi r0, 2 + 4294: 07f3 br 0x427a // 427a + if(data[2] != len){ + 4296: 8062 ld.b r3, (r0, 0x2) + 4298: 750d zexth r4, r3 + 429a: 6452 cmpne r4, r1 + 429c: 0c09 bf 0x42ae // 42ae + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 429e: b820 st.w r1, (r14, 0x0) + 42a0: 105f lrw r2, 0x772c // 431c + 42a2: 1123 lrw r1, 0x7c36 // 432c + 42a4: 3000 movi r0, 0 + 42a6: e3fffc53 bsr 0x3b4c // 3b4c + return 0x03; + 42aa: 3003 movi r0, 3 + 42ac: 07e7 br 0x427a // 427a + if(data[len-1] != 0xFA){ + 42ae: 60c0 addu r3, r0 + 42b0: 2b00 subi r3, 1 + 42b2: 8360 ld.b r3, (r3, 0x0) + 42b4: 32fa movi r2, 250 + 42b6: 648e cmpne r3, r2 + 42b8: 0c07 bf 0x42c6 // 42c6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 42ba: 1059 lrw r2, 0x772c // 431c + 42bc: 103d lrw r1, 0x7c49 // 4330 + 42be: 3000 movi r0, 0 + 42c0: e3fffc46 bsr 0x3b4c // 3b4c + 42c4: 07f3 br 0x42aa // 42aa + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 42c6: 5c23 subi r1, r4, 1 + 42c8: 7445 zexth r1, r1 + 42ca: e3fffe1f bsr 0x3f08 // 3f08 + 42ce: 3840 cmpnei r0, 0 + 42d0: 0806 bt 0x42dc // 42dc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 42d2: 1053 lrw r2, 0x772c // 431c + 42d4: 1038 lrw r1, 0x7c59 // 4334 + 42d6: e3fffc3b bsr 0x3b4c // 3b4c + 42da: 07e8 br 0x42aa // 42aa + switch(data[4]){ + 42dc: 8504 ld.b r0, (r5, 0x4) + 42de: 2800 subi r0, 1 + 42e0: 3804 cmphsi r0, 5 + 42e2: 080c bt 0x42fa // 42fa + 42e4: 5c37 subi r1, r4, 6 + 42e6: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42e8: 7445 zexth r1, r1 + switch(data[4]){ + 42ea: e3ffe509 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42ee: 0803 .short 0x0803 + 42f0: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 42f4: 6c17 mov r0, r5 + 42f6: e3fffe57 bsr 0x3fa4 // 3fa4 + return 0; + 42fa: 3000 movi r0, 0 + 42fc: 07bf br 0x427a // 427a + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 42fe: 6c17 mov r0, r5 + 4300: e3fffeae bsr 0x405c // 405c + 4304: 07fb br 0x42fa // 42fa + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4306: 6c17 mov r0, r5 + 4308: e3ffff1c bsr 0x4140 // 4140 + 430c: 07f7 br 0x42fa // 42fa + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 430e: 6c17 mov r0, r5 + 4310: e3ffff34 bsr 0x4178 // 4178 + 4314: 07f3 br 0x42fa // 42fa + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4316: 6c17 mov r0, r5 + 4318: e3ffff96 bsr 0x4244 // 4244 + 431c: 0000772c .long 0x0000772c + 4320: 00007c13 .long 0x00007c13 + 4324: 20000350 .long 0x20000350 + 4328: 00007c25 .long 0x00007c25 + 432c: 00007c36 .long 0x00007c36 + 4330: 00007c49 .long 0x00007c49 + 4334: 00007c59 .long 0x00007c59 + +Disassembly of section .text.EEPROM_CheckSum: + +00004338 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4338: 6cc3 mov r3, r0 + 433a: 6040 addu r1, r0 + U8_T data_sum = 0; + 433c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4342: 783c jmp r15 + data_sum += data[i]; + 4344: 8340 ld.b r2, (r3, 0x0) + 4346: 6008 addu r0, r2 + 4348: 7400 zextb r0, r0 + 434a: 2300 addi r3, 1 + 434c: 07f9 br 0x433e // 433e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004350 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4350: 14d1 push r4, r15 + 4352: 143b subi r14, r14, 108 + 4354: 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)); + 4356: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4358: 3264 movi r2, 100 + 435a: 3100 movi r1, 0 + 435c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 435e: b860 st.w r3, (r14, 0x0) + 4360: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4364: e3ffeb00 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4368: 6cbb mov r2, r14 + 436a: 3104 movi r1, 4 + 436c: 1014 lrw r0, 0x10000020 // 43bc + 436e: e3fff385 bsr 0x2a78 // 2a78 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4372: d84e0000 ld.b r2, (r14, 0x0) + 4376: 33a6 movi r3, 166 + 4378: 64ca cmpne r2, r3 + 437a: 0c04 bf 0x4382 // 4382 + return 0x00; + } + } + } + + return 0x01; + 437c: 3001 movi r0, 1 +} + 437e: 141b addi r14, r14, 108 + 4380: 1491 pop r4, r15 + read_len |= read_info[1]; + 4382: d82e0002 ld.b r1, (r14, 0x2) + 4386: d86e0001 ld.b r3, (r14, 0x1) + 438a: 4128 lsli r1, r1, 8 + 438c: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 438e: 3364 movi r3, 100 + 4390: 644c cmphs r3, r1 + 4392: 0ff5 bf 0x437c // 437c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4394: 1a02 addi r2, r14, 8 + 4396: 100b lrw r0, 0x10000024 // 43c0 + 4398: e3fff370 bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 439c: 3106 movi r1, 6 + 439e: 1802 addi r0, r14, 8 + 43a0: e3ffffcc bsr 0x4338 // 4338 + 43a4: d86e0003 ld.b r3, (r14, 0x3) + 43a8: 640e cmpne r3, r0 + 43aa: 0be9 bt 0x437c // 437c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 43ac: 3206 movi r2, 6 + 43ae: 1902 addi r1, r14, 8 + 43b0: 6c13 mov r0, r4 + 43b2: e3ffeb1d bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 43b6: 3000 movi r0, 0 + 43b8: 07e3 br 0x437e // 437e + 43ba: 0000 bkpt + 43bc: 10000020 .long 0x10000020 + 43c0: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000043c4 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43c4: 14d0 push r15 + 43c6: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 43c8: 3300 movi r3, 0 + 43ca: 2b59 subi r3, 90 + 43cc: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 43d0: 3306 movi r3, 6 + 43d2: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 43d6: 3300 movi r3, 0 + 43d8: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43dc: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43de: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43e0: 3206 movi r2, 6 + 43e2: 6c0f mov r0, r3 + 43e4: e3ffeb04 bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 43e8: 3106 movi r1, 6 + 43ea: e3ffffa7 bsr 0x4338 // 4338 + 43ee: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 43f2: 6cbb mov r2, r14 + 43f4: 310a movi r1, 10 + 43f6: 1004 lrw r0, 0x10000020 // 4404 + 43f8: e3fff2f0 bsr 0x29d8 // 29d8 + + return 0; +} + 43fc: 3000 movi r0, 0 + 43fe: 141b addi r14, r14, 108 + 4400: 1490 pop r15 + 4402: 0000 bkpt + 4404: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004408 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4408: 14d1 push r4, r15 + 440a: 1421 subi r14, r14, 4 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 440c: 8062 ld.b r3, (r0, 0x2) + 440e: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4410: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4412: 0c03 bf 0x4418 // 4418 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4414: 3309 movi r3, 9 + 4416: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4418: 8442 ld.b r2, (r4, 0x2) + 441a: 1036 lrw r1, 0x7c68 // 4470 + 441c: 3000 movi r0, 0 + 441e: e3fffb97 bsr 0x3b4c // 3b4c + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4422: 8463 ld.b r3, (r4, 0x3) + 4424: 3b02 cmphsi r3, 3 + 4426: 0c03 bf 0x442c // 442c + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4428: 3300 movi r3, 0 + 442a: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 442c: 8464 ld.b r3, (r4, 0x4) + 442e: 3b01 cmphsi r3, 2 + 4430: 0c03 bf 0x4436 // 4436 + { + info->backlight_en = 0x01; + 4432: 3301 movi r3, 1 + 4434: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag >= 0x02) + 4436: 8461 ld.b r3, (r4, 0x1) + 4438: 3b01 cmphsi r3, 2 + 443a: 0c03 bf 0x4440 // 4440 + { + info->pipe_flag = 0x00; + 443c: 3300 movi r3, 0 + 443e: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4440: 8460 ld.b r3, (r4, 0x0) + 4442: 2b00 subi r3, 1 + 4444: 74cc zextb r3, r3 + 4446: 32fd movi r2, 253 + 4448: 64c8 cmphs r2, r3 + 444a: 0803 bt 0x4450 // 4450 + { + info->pipe_flag = 0x01; + 444c: 3301 movi r3, 1 + 444e: a461 st.b r3, (r4, 0x1) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4450: 8465 ld.b r3, (r4, 0x5) + 4452: 3b02 cmphsi r3, 3 + 4454: 0c03 bf 0x445a // 445a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4456: 3301 movi r3, 1 + 4458: a465 st.b r3, (r4, 0x5) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info save_curr %d backlight_en:%d key_sens_level:%d",info->temp_select,info->backlight_en,info->key_sens_level); + 445a: 8425 ld.b r1, (r4, 0x5) + 445c: b820 st.w r1, (r14, 0x0) + 445e: 8464 ld.b r3, (r4, 0x4) + 4460: 8443 ld.b r2, (r4, 0x3) + 4462: 1025 lrw r1, 0x7c7f // 4474 + 4464: 3000 movi r0, 0 + 4466: e3fffb73 bsr 0x3b4c // 3b4c + + return 0; +} + 446a: 3000 movi r0, 0 + 446c: 1401 addi r14, r14, 4 + 446e: 1491 pop r4, r15 + 4470: 00007c68 .long 0x00007c68 + 4474: 00007c7f .long 0x00007c7f + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004478 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4478: 3301 movi r3, 1 + 447a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 447c: 3300 movi r3, 0 + 447e: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4480: 3309 movi r3, 9 + 4482: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4484: 3300 movi r3, 0 + 4486: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x01; + 4488: 3301 movi r3, 1 + 448a: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 448c: a065 st.b r3, (r0, 0x5) +} + 448e: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +00004490 : +void EEPROM_Init(void){ + 4490: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 4492: 1071 lrw r3, 0x20000060 // 44d4 + 4494: 3201 movi r2, 1 + 4496: 9360 ld.w r3, (r3, 0x0) + 4498: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 449a: 9345 ld.w r2, (r3, 0x14) + 449c: 3aa1 bseti r2, 1 + 449e: 3ab0 bseti r2, 16 + 44a0: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 44a2: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44a4: 108d lrw r4, 0x20000350 // 44d8 + delay_nms(10); + 44a6: e3fff40d bsr 0x2cc0 // 2cc0 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44aa: 6c13 mov r0, r4 + 44ac: e3ffff52 bsr 0x4350 // 4350 + if(rev == 0x00){ + 44b0: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b2: 6c13 mov r0, r4 + if(rev == 0x00){ + 44b4: 0804 bt 0x44bc // 44bc + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b6: e3ffffa9 bsr 0x4408 // 4408 +} + 44ba: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 44bc: e3ffffde bsr 0x4478 // 4478 + EEPROM_WriteParaInfo(&g_eeprom); + 44c0: 6c13 mov r0, r4 + 44c2: e3ffff81 bsr 0x43c4 // 43c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 44c6: 8441 ld.b r2, (r4, 0x1) + 44c8: 1025 lrw r1, 0x7cba // 44dc + 44ca: 3000 movi r0, 0 + 44cc: e3fffb40 bsr 0x3b4c // 3b4c +} + 44d0: 07f5 br 0x44ba // 44ba + 44d2: 0000 bkpt + 44d4: 20000060 .long 0x20000060 + 44d8: 20000350 .long 0x20000350 + 44dc: 00007cba .long 0x00007cba + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000044e0 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e0: 14d2 push r4-r5, r15 + 44e2: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 44e4: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e6: 6d47 mov r5, r1 + switch(level){ + 44e8: 0c07 bf 0x44f6 // 44f6 + 44ea: 3840 cmpnei r0, 0 + 44ec: 0c27 bf 0x453a // 453a + 44ee: 3842 cmpnei r0, 2 + 44f0: 0c23 bf 0x4536 // 4536 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 44f2: 3001 movi r0, 1 + 44f4: 041f br 0x4532 // 4532 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 44f6: 1093 lrw r4, 0x10000180 // 4540 + break; + } + + memset(save_para,0,sizeof(save_para)); + 44f8: 323c movi r2, 60 + 44fa: 3100 movi r1, 0 + 44fc: 6c3b mov r0, r14 + 44fe: e3ffea33 bsr 0x1964 // 1964 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4502: 3300 movi r3, 0 + 4504: 2b59 subi r3, 90 + 4506: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 450a: 331c movi r3, 28 + 450c: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4510: 1b01 addi r3, r14, 4 + 4512: 321c movi r2, 28 + 4514: 6c0f mov r0, r3 + 4516: 6c57 mov r1, r5 + 4518: e3ffea6a bsr 0x19ec // 19ec <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 451c: 311c movi r1, 28 + 451e: e3ffff0d bsr 0x4338 // 4338 + 4522: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4526: 6cbb mov r2, r14 + 4528: 6c13 mov r0, r4 + 452a: 3120 movi r1, 32 + 452c: e3fff256 bsr 0x29d8 // 29d8 + + return 0; + 4530: 3000 movi r0, 0 +} + 4532: 140f addi r14, r14, 60 + 4534: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4536: 1084 lrw r4, 0x10000200 // 4544 + break; + 4538: 07e0 br 0x44f8 // 44f8 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 453a: 1084 lrw r4, 0x10000100 // 4548 + 453c: 07de br 0x44f8 // 44f8 + 453e: 0000 bkpt + 4540: 10000180 .long 0x10000180 + 4544: 10000200 .long 0x10000200 + 4548: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +0000454c : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 454c: 14d2 push r4-r5, r15 + 454e: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4550: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4552: 6d07 mov r4, r1 + switch(level){ + 4554: 0c3a bf 0x45c8 // 45c8 + 4556: 3840 cmpnei r0, 0 + 4558: 0c05 bf 0x4562 // 4562 + 455a: 3842 cmpnei r0, 2 + 455c: 0c34 bf 0x45c4 // 45c4 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 455e: 3001 movi r0, 1 + 4560: 0430 br 0x45c0 // 45c0 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4562: 11a1 lrw r5, 0x10000100 // 45e4 + memset(read_info,0,sizeof(read_info)); + 4564: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4566: 3234 movi r2, 52 + 4568: 3100 movi r1, 0 + 456a: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 456c: b860 st.w r3, (r14, 0x0) + 456e: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4572: e3ffe9f9 bsr 0x1964 // 1964 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4576: 6cbb mov r2, r14 + 4578: 3104 movi r1, 4 + 457a: 6c17 mov r0, r5 + 457c: e3fff27e bsr 0x2a78 // 2a78 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4580: d84e0000 ld.b r2, (r14, 0x0) + 4584: 33a6 movi r3, 166 + 4586: 64ca cmpne r2, r3 + 4588: 0827 bt 0x45d6 // 45d6 + read_len |= read_info[1]; + 458a: d84e0002 ld.b r2, (r14, 0x2) + 458e: d86e0001 ld.b r3, (r14, 0x1) + 4592: 4248 lsli r2, r2, 8 + 4594: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4596: 3a5c cmpnei r2, 28 + 4598: 081a bt 0x45cc // 45cc + temp_addr += EEPROM_Offset_Data; + 459a: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 459c: 1a02 addi r2, r14, 8 + 459e: 311c movi r1, 28 + 45a0: e3fff26c bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 45a4: 311c movi r1, 28 + 45a6: 1802 addi r0, r14, 8 + 45a8: e3fffec8 bsr 0x4338 // 4338 + 45ac: d86e0003 ld.b r3, (r14, 0x3) + 45b0: 640e cmpne r3, r0 + 45b2: 0bd6 bt 0x455e // 455e + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 45b4: 321c movi r2, 28 + 45b6: 1902 addi r1, r14, 8 + 45b8: 6c13 mov r0, r4 + 45ba: e3ffea19 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 45be: 3000 movi r0, 0 +} + 45c0: 140f addi r14, r14, 60 + 45c2: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 45c4: 10a9 lrw r5, 0x10000200 // 45e8 + break; + 45c6: 07cf br 0x4564 // 4564 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 45c8: 10a9 lrw r5, 0x10000180 // 45ec + 45ca: 07cd br 0x4564 // 4564 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 45cc: 1029 lrw r1, 0x7cd3 // 45f0 + 45ce: 3000 movi r0, 0 + 45d0: e3fffabe bsr 0x3b4c // 3b4c + 45d4: 07c5 br 0x455e // 455e + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 45d6: 3304 movi r3, 4 + 45d8: 6cbb mov r2, r14 + 45da: 1027 lrw r1, 0x7cf5 // 45f4 + 45dc: 3000 movi r0, 0 + 45de: e3fffabd bsr 0x3b58 // 3b58 + 45e2: 07be br 0x455e // 455e + 45e4: 10000100 .long 0x10000100 + 45e8: 10000200 .long 0x10000200 + 45ec: 10000180 .long 0x10000180 + 45f0: 00007cd3 .long 0x00007cd3 + 45f4: 00007cf5 .long 0x00007cf5 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +000045f8 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 45f8: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 45fa: 8163 ld.b r3, (r1, 0x3) + 45fc: 2b00 subi r3, 1 + 45fe: 74cc zextb r3, r3 + 4600: 3263 movi r2, 99 + 4602: 64c8 cmphs r2, r3 + 4604: 0845 bt 0x468e // 468e + para->base_speed = 20; //默认参数 - 20 + 4606: 3314 movi r3, 20 + 4608: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 460a: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 460c: 8140 ld.b r2, (r1, 0x0) + 460e: 2a00 subi r2, 1 + 4610: 7488 zextb r2, r2 + 4612: 3a09 cmphsi r2, 10 + 4614: 0c04 bf 0x461c // 461c + para->press_debounce = 6; //默认参数 - 6 + 4616: 3306 movi r3, 6 + 4618: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 461a: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 461c: 8141 ld.b r2, (r1, 0x1) + 461e: 2a00 subi r2, 1 + 4620: 7488 zextb r2, r2 + 4622: 3a09 cmphsi r2, 10 + 4624: 0c04 bf 0x462c // 462c + para->release_debounce = 5; //默认参数 - 5 + 4626: 3305 movi r3, 5 + 4628: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 462a: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 462c: 8142 ld.b r2, (r1, 0x2) + 462e: 2a00 subi r2, 1 + 4630: 7488 zextb r2, r2 + 4632: 3463 movi r4, 99 + 4634: 6490 cmphs r4, r2 + 4636: 0804 bt 0x463e // 463e + para->multiTimes_filt = 40; //默认参数 - 40 + 4638: 3328 movi r3, 40 + 463a: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 463c: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 463e: 9146 ld.w r2, (r1, 0x18) + 4640: 2a00 subi r2, 1 + 4642: 3a1f cmphsi r2, 32 + 4644: 0c04 bf 0x464c // 464c + para->longpress_time = 8; //默认参数 - 8 + 4646: 3308 movi r3, 8 + 4648: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 464a: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 464c: 34a0 movi r4, 160 + rev = 0x01; + } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 464e: 36f5 movi r6, 245 + 4650: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4652: 10f3 lrw r7, 0x3de // 469c + 4654: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 4656: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4658: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 465a: 8aa0 ld.h r5, (r2, 0x0) + 465c: 2d09 subi r5, 10 + 465e: 7555 zexth r5, r5 + 4660: 655c cmphs r7, r5 + 4662: 0803 bt 0x4668 // 4668 + para->senprd[i] = 320; //默认参数 - 320 + 4664: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 4666: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4668: 8aa5 ld.h r5, (r2, 0xa) + 466a: 2d13 subi r5, 20 + 466c: 7555 zexth r5, r5 + 466e: 6558 cmphs r6, r5 + 4670: 080a bt 0x4684 // 4684 + + switch(level){ + 4672: 3841 cmpnei r0, 1 + 4674: 0c11 bf 0x4696 // 4696 + 4676: 3840 cmpnei r0, 0 + 4678: 0c0d bf 0x4692 // 4692 + 467a: 3842 cmpnei r0, 2 + 467c: 080d bt 0x4696 // 4696 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 467e: 333c movi r3, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 4680: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 4682: 3301 movi r3, 1 + 4684: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 468a: 6c0f mov r0, r3 + 468c: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 468e: 3300 movi r3, 0 + 4690: 07be br 0x460c // 460c + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 4692: 3364 movi r3, 100 + 4694: 07f6 br 0x4680 // 4680 + para->triggerlevel[i] = 80; + 4696: 3350 movi r3, 80 + 4698: 07f4 br 0x4680 // 4680 + 469a: 0000 bkpt + 469c: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000046a0 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 46a0: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 46a2: 3314 movi r3, 20 + 46a4: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 46a6: 3306 movi r3, 6 + 46a8: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 46aa: 3305 movi r3, 5 + 46ac: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 46ae: 3328 movi r3, 40 + 46b0: a162 st.b r3, (r1, 0x2) + para->longpress_time = 8; //默认参数 - 8 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 46b2: 32a0 movi r2, 160 + para->longpress_time = 8; //默认参数 - 8 + 46b4: 3308 movi r3, 8 + 46b6: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 46b8: 4241 lsli r2, r2, 1 + 46ba: 596e addi r3, r1, 4 + 46bc: 210d addi r1, 14 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 46be: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 46c0: ab40 st.h r2, (r3, 0x0) + switch(level){ + 46c2: 0c0d bf 0x46dc // 46dc + 46c4: 3840 cmpnei r0, 0 + 46c6: 0c09 bf 0x46d8 // 46d8 + 46c8: 3842 cmpnei r0, 2 + 46ca: 0809 bt 0x46dc // 46dc + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 46cc: 343c movi r4, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 46ce: ab85 st.h r4, (r3, 0xa) + 46d0: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 46d6: 1481 pop r4 + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 46d8: 3464 movi r4, 100 + 46da: 07fa br 0x46ce // 46ce + para->triggerlevel[i] = 80; + 46dc: 3450 movi r4, 80 + 46de: 07f8 br 0x46ce // 46ce + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +000046e0 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 46e0: 14d4 push r4-r7, r15 + 46e2: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 46e4: 8043 ld.b r2, (r0, 0x3) + 46e6: 1038 lrw r1, 0x7d13 // 4744 + 46e8: 3000 movi r0, 0 + 46ea: e3fffa31 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 46ee: 8440 ld.b r2, (r4, 0x0) + 46f0: 1036 lrw r1, 0x7d2b // 4748 + 46f2: 3000 movi r0, 0 + 46f4: e3fffa2c bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 46f8: 8441 ld.b r2, (r4, 0x1) + 46fa: 1035 lrw r1, 0x7d47 // 474c + 46fc: 3000 movi r0, 0 + 46fe: e3fffa27 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4702: 8442 ld.b r2, (r4, 0x2) + 4704: 1033 lrw r1, 0x7d65 // 4750 + 4706: 3000 movi r0, 0 + 4708: e3fffa22 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 470c: 9446 ld.w r2, (r4, 0x18) + 470e: 3000 movi r0, 0 + 4710: 1031 lrw r1, 0x7d82 // 4754 + 4712: e3fffa1d bsr 0x3b4c // 3b4c + 4716: 2403 addi r4, 4 + 4718: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 471a: 10f0 lrw r7, 0x7d9e // 4758 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 471c: 10d0 lrw r6, 0x7db7 // 475c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 471e: e3ffeaa3 bsr 0x1c64 // 1c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4722: 8c60 ld.h r3, (r4, 0x0) + 4724: 6c97 mov r2, r5 + 4726: 6c5f mov r1, r7 + 4728: 3000 movi r0, 0 + 472a: e3fffa11 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 472e: 8c65 ld.h r3, (r4, 0xa) + 4730: 6c97 mov r2, r5 + 4732: 6c5b mov r1, r6 + 4734: 3000 movi r0, 0 + 4736: 2500 addi r5, 1 + 4738: e3fffa0a bsr 0x3b4c // 3b4c + for(i=0;i + } + +} + 4742: 1494 pop r4-r7, r15 + 4744: 00007d13 .long 0x00007d13 + 4748: 00007d2b .long 0x00007d2b + 474c: 00007d47 .long 0x00007d47 + 4750: 00007d65 .long 0x00007d65 + 4754: 00007d82 .long 0x00007d82 + 4758: 00007d9e .long 0x00007d9e + 475c: 00007db7 .long 0x00007db7 + +Disassembly of section .text.ADC_Init: + +00004760 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4760: 14d0 push r15 + 4762: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4764: e3ffeed6 bsr 0x2510 // 2510 + ADC12_Software_Reset(); //ADC软件复位 + 4768: e3ffef34 bsr 0x25d0 // 25d0 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 476c: 3101 movi r1, 1 + 476e: 3002 movi r0, 2 + 4770: e3ffef1a bsr 0x25a4 // 25a4 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4774: 3301 movi r3, 1 + 4776: b861 st.w r3, (r14, 0x4) + 4778: 3302 movi r3, 2 + 477a: b860 st.w r3, (r14, 0x0) + 477c: 3200 movi r2, 0 + 477e: 3306 movi r3, 6 + 4780: 3101 movi r1, 1 + 4782: 3001 movi r0, 1 + 4784: e3ffef60 bsr 0x2644 // 2644 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 4788: 3003 movi r0, 3 + 478a: e3ffef9b bsr 0x26c0 // 26c0 + + ADC12_ConversionChannel_Config(ADC12_ADCIN9,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 478e: 3300 movi r3, 0 + 4790: 3200 movi r2, 0 + 4792: 3100 movi r1, 0 + 4794: 3009 movi r0, 9 + 4796: e3fff061 bsr 0x2858 // 2858 + + ADC12_CMD(ENABLE); + 479a: 3001 movi r0, 1 + 479c: e3ffef20 bsr 0x25dc // 25dc + + ADC12_ready_wait(); + 47a0: e3ffef32 bsr 0x2604 // 2604 + + ADC12_Control(ADC12_START); + 47a4: 3008 movi r0, 8 + 47a6: e3ffeee7 bsr 0x2574 // 2574 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 47aa: 3237 movi r2, 55 + 47ac: 3100 movi r1, 0 + 47ae: 1003 lrw r0, 0x20000356 // 47b8 + 47b0: e3ffe8da bsr 0x1964 // 1964 <__memset_fast> +} + 47b4: 1402 addi r14, r14, 8 + 47b6: 1490 pop r15 + 47b8: 20000356 .long 0x20000356 + +Disassembly of section .text.Thermistor_Array_Transform: + +000047bc : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 47bc: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 47be: 1070 lrw r3, 0x79bd // 47fc + 47c0: 640c cmphs r3, r0 +{ + 47c2: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 47c4: 0c16 bf 0x47f0 // 47f0 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47c6: 33a1 movi r3, 161 + 47c8: 4365 lsli r3, r3, 5 + 47ca: 640c cmphs r3, r0 + 47cc: 0814 bt 0x47f4 // 47f4 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47d2: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 47d6: 8a60 ld.h r3, (r2, 0x0) + 47d8: 644c cmphs r3, r1 + 47da: 0c04 bf 0x47e2 // 47e2 + 47dc: 8a61 ld.h r3, (r2, 0x2) + 47de: 644c cmphs r3, r1 + 47e0: 0c07 bf 0x47ee // 47ee + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 47ec: 30fa movi r0, 250 +} + 47ee: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 47f0: 3000 movi r0, 0 + 47f2: 07fe br 0x47ee // 47ee + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47f4: 30c8 movi r0, 200 + 47f6: 4001 lsli r0, r0, 1 + 47f8: 07fb br 0x47ee // 47ee + 47fa: 0000 bkpt + 47fc: 000079bd .long 0x000079bd + 4800: 00007746 .long 0x00007746 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004804 : + +void Calculate_ADC_Sample_Average(void) +{ + 4804: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4808: 3200 movi r2, 0 + uint32_t temp_val = 0; + 480a: 3000 movi r0, 0 + 480c: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 480e: 5a66 addi r3, r2, 2 + 4810: 4361 lsli r3, r3, 1 + 4812: 60dc addu r3, r7 + 4814: 8323 ld.b r1, (r3, 0x3) + 4816: 8364 ld.b r3, (r3, 0x4) + 4818: 4368 lsli r3, r3, 8 + 481a: 2200 addi r2, 1 + 481c: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4824: 310a movi r1, 10 + 4826: e3fff81f bsr 0x3864 // 3864 <__udivsi3> + 482a: 74c1 zexth r3, r0 + 482c: 748c zextb r2, r3 + 482e: 11c2 lrw r6, 0x20000359 // 48b4 + 4830: 4b68 lsri r3, r3, 8 + 4832: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4834: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4836: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4838: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 483a: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 483c: 4368 lsli r3, r3, 8 + 483e: 875b ld.b r2, (r7, 0x1b) + 4840: 6cc8 or r3, r2 + 4842: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4844: 6d03 mov r4, r0 + 4846: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4848: 0c1a bf 0x487c // 487c + g_adc.temp_index = 0; + 484a: 3300 movi r3, 0 + 484c: a660 st.b r3, (r6, 0x0) + 484e: a661 st.b r3, (r6, 0x1) + 4850: 3200 movi r2, 0 + temp_val = 0; + 4852: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 486c: 310a movi r1, 10 + 486e: e3fff7fb bsr 0x3864 // 3864 <__udivsi3> + 4872: 7401 zexth r0, r0 + 4874: 1071 lrw r3, 0x20000373 // 48b8 + 4876: a300 st.b r0, (r3, 0x0) + 4878: 4808 lsri r0, r0, 8 + 487a: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 487c: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 487e: 859c ld.b r4, (r5, 0x1c) + 4880: 857b ld.b r3, (r5, 0x1b) + 4882: 4488 lsli r4, r4, 8 + 4884: 6d0c or r4, r3 + 4886: 5c62 addi r3, r4, 1 + 4888: 74cd zexth r3, r3 + 488a: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 488c: 100c lrw r0, 0x2710 // 48bc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 488e: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4890: 102c lrw r1, 0xce4 // 48c0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4892: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4894: 7c08 mult r0, r2 + 4896: 604a subu r1, r2 + 4898: e3fff7d4 bsr 0x3840 // 3840 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 489c: 240d addi r4, 14 + 489e: 7401 zexth r0, r0 + 48a0: 4481 lsli r4, r4, 1 + 48a2: e3ffff8d bsr 0x47bc // 47bc + 48a6: 6114 addu r4, r5 + 48a8: a403 st.b r0, (r4, 0x3) + 48aa: 4808 lsri r0, r0, 8 + 48ac: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 48ae: 1494 pop r4-r7, r15 + 48b0: 20000356 .long 0x20000356 + 48b4: 20000359 .long 0x20000359 + 48b8: 20000373 .long 0x20000373 + 48bc: 00002710 .long 0x00002710 + 48c0: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000048c4 : + +void ADC_Sample_Task(void){ + 48c4: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 48c6: 1188 lrw r4, 0x20000356 // 4964 + 48c8: 3020 movi r0, 32 + 48ca: 6010 addu r0, r4 + 48cc: 8054 ld.b r2, (r0, 0x14) + 48ce: 8073 ld.b r3, (r0, 0x13) + 48d0: 4248 lsli r2, r2, 8 + 48d2: 6c8c or r2, r3 + 48d4: 8075 ld.b r3, (r0, 0x15) + 48d6: 4370 lsli r3, r3, 16 + 48d8: 6c8c or r2, r3 + 48da: 8076 ld.b r3, (r0, 0x16) + 48dc: 11a3 lrw r5, 0x200000b8 // 4968 + 48de: 4378 lsli r3, r3, 24 + 48e0: 9520 ld.w r1, (r5, 0x0) + 48e2: 6cc8 or r3, r2 + 48e4: 604e subu r1, r3 + 48e6: 390a cmphsi r1, 11 + 48e8: 0c28 bf 0x4938 // 4938 + g_adc.sample_tick = SysTick_100us; + 48ea: 1161 lrw r3, 0x200000b4 // 496c + 48ec: 3233 movi r2, 51 + 48ee: 9360 ld.w r3, (r3, 0x0) + 48f0: 6090 addu r2, r4 + 48f2: 4b28 lsri r1, r3, 8 + 48f4: a260 st.b r3, (r2, 0x0) + 48f6: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 48f8: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 48fa: 4b30 lsri r1, r3, 16 + 48fc: 4b78 lsri r3, r3, 24 + 48fe: a263 st.b r3, (r2, 0x3) + 4900: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 4902: e3ffee8b bsr 0x2618 // 2618 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4906: 84c2 ld.b r6, (r4, 0x2) + 4908: 8461 ld.b r3, (r4, 0x1) + 490a: 46c8 lsli r6, r6, 8 + 490c: 6d8c or r6, r3 + 490e: 3000 movi r0, 0 + 4910: e3ffee90 bsr 0x2630 // 2630 + 4914: 5e66 addi r3, r6, 2 + 4916: 4361 lsli r3, r3, 1 + 4918: 60d0 addu r3, r4 + 491a: a303 st.b r0, (r3, 0x3) + 491c: 4808 lsri r0, r0, 8 + 491e: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 4920: 8462 ld.b r3, (r4, 0x2) + 4922: 8441 ld.b r2, (r4, 0x1) + 4924: 4368 lsli r3, r3, 8 + 4926: 6cc8 or r3, r2 + 4928: 2300 addi r3, 1 + 492a: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 492c: 3b09 cmphsi r3, 10 + 492e: 5c42 addi r2, r4, 1 + 4930: 0813 bt 0x4956 // 4956 + g_adc.index++; + 4932: a461 st.b r3, (r4, 0x1) + 4934: 4b68 lsri r3, r3, 8 + 4936: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4938: 8460 ld.b r3, (r4, 0x0) + 493a: 3b41 cmpnei r3, 1 + 493c: 080c bt 0x4954 // 4954 + if (SysTick_1ms - adc_tick >= 100) { + 493e: 104d lrw r2, 0x200000d0 // 4970 + 4940: 9220 ld.w r1, (r2, 0x0) + 4942: 9560 ld.w r3, (r5, 0x0) + 4944: 60c6 subu r3, r1 + 4946: 3163 movi r1, 99 + 4948: 64c4 cmphs r1, r3 + 494a: 0805 bt 0x4954 // 4954 + adc_tick = SysTick_1ms; + 494c: 9560 ld.w r3, (r5, 0x0) + 494e: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4950: e3ffff5a bsr 0x4804 // 4804 + } + } +} + 4954: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4956: 3300 movi r3, 0 + 4958: a461 st.b r3, (r4, 0x1) + 495a: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 495c: 3301 movi r3, 1 + 495e: a460 st.b r3, (r4, 0x0) + 4960: 07ec br 0x4938 // 4938 + 4962: 0000 bkpt + 4964: 20000356 .long 0x20000356 + 4968: 200000b8 .long 0x200000b8 + 496c: 200000b4 .long 0x200000b4 + 4970: 200000d0 .long 0x200000d0 + +Disassembly of section .text.Get_Temp_Val: + +00004974 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4974: 1063 lrw r3, 0x20000356 // 4980 + 4976: 831e ld.b r0, (r3, 0x1e) + 4978: 835d ld.b r2, (r3, 0x1d) + 497a: 4008 lsli r0, r0, 8 + 497c: 6c08 or r0, r2 +} + 497e: 783c jmp r15 + 4980: 20000356 .long 0x20000356 + +Disassembly of section .text.HT1621_WR_Data: + +00004984 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 4984: 14d4 push r4-r7, r15 + 4986: 6d43 mov r5, r0 + 4988: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 4992: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 4994: 3103 movi r1, 3 + 4996: 9600 ld.w r0, (r6, 0x0) + 4998: e3ffea84 bsr 0x1ea0 // 1ea0 + nop; + 499c: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 499e: 74d6 sextb r3, r5 + 49a0: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 49a2: 3104 movi r1, 4 + 49a4: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 49a6: 0c0d bf 0x49c0 // 49c0 + HT1621_DATA_HIGH; + 49a8: e3ffea78 bsr 0x1e98 // 1e98 + nop; + 49ac: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 49ae: 3103 movi r1, 3 + 49b0: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 49b2: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 49ba: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 49c0: e3ffea70 bsr 0x1ea0 // 1ea0 + 49c4: 07f4 br 0x49ac // 49ac + 49c6: 0000 bkpt + 49c8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000049cc : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 49cc: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 49ce: 108b lrw r4, 0x2000004c // 49f8 +{ + 49d0: 6d43 mov r5, r0 + HT1621_CS_LOW; + 49d2: 3100 movi r1, 0 + 49d4: 9400 ld.w r0, (r4, 0x0) + 49d6: e3ffea65 bsr 0x1ea0 // 1ea0 + nop; + 49da: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 49dc: 3104 movi r1, 4 + 49de: 3080 movi r0, 128 + 49e0: e3ffffd2 bsr 0x4984 // 4984 + HT1621_WR_Data(cmd,8); + 49e4: 6c17 mov r0, r5 + 49e6: 3108 movi r1, 8 + 49e8: e3ffffce bsr 0x4984 // 4984 + HT1621_CS_HIGH; + 49ec: 9400 ld.w r0, (r4, 0x0) + 49ee: 3100 movi r1, 0 + 49f0: e3ffea54 bsr 0x1e98 // 1e98 + nop; + 49f4: 6c03 mov r0, r0 +} + 49f6: 1492 pop r4-r5, r15 + 49f8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +000049fc : +void HT1621_Init(void){ + 49fc: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 49fe: 1182 lrw r4, 0x2000004c // 4a84 + 4a00: 3200 movi r2, 0 + 4a02: 9400 ld.w r0, (r4, 0x0) + 4a04: 3100 movi r1, 0 + 4a06: e3ffe9c1 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,3,Output); + 4a0a: 9400 ld.w r0, (r4, 0x0) + 4a0c: 3200 movi r2, 0 + 4a0e: 3103 movi r1, 3 + 4a10: e3ffe9bc bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,4,Output); + 4a14: 3200 movi r2, 0 + 4a16: 9400 ld.w r0, (r4, 0x0) + 4a18: 3104 movi r1, 4 + 4a1a: e3ffe9b7 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,0); + 4a1e: 9400 ld.w r0, (r4, 0x0) + 4a20: 3100 movi r1, 0 + 4a22: e3ffea34 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,3); + 4a26: 9400 ld.w r0, (r4, 0x0) + 4a28: 3103 movi r1, 3 + 4a2a: e3ffea30 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,4); + 4a2e: 9400 ld.w r0, (r4, 0x0) + 4a30: 3104 movi r1, 4 + 4a32: e3ffea2c bsr 0x1e8a // 1e8a + HT1621_CS_LOW; + 4a36: 9400 ld.w r0, (r4, 0x0) + 4a38: 3100 movi r1, 0 + 4a3a: e3ffea33 bsr 0x1ea0 // 1ea0 + HT1621_WR_LOW; + 4a3e: 9400 ld.w r0, (r4, 0x0) + 4a40: 3103 movi r1, 3 + 4a42: e3ffea2f bsr 0x1ea0 // 1ea0 + HT1621_DATA_LOW; + 4a46: 3104 movi r1, 4 + 4a48: 9400 ld.w r0, (r4, 0x0) + 4a4a: e3ffea2b bsr 0x1ea0 // 1ea0 + HT1621_WR_CMD(HT1621_BIAS); + 4a4e: 3052 movi r0, 82 + 4a50: e3ffffbe bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_RC256); + 4a54: 3030 movi r0, 48 + 4a56: e3ffffbb bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_SYSDIS); + 4a5a: 3000 movi r0, 0 + 4a5c: e3ffffb8 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_WDTDIS); + 4a60: 300a movi r0, 10 + 4a62: e3ffffb5 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_SYSEN); + 4a66: 3002 movi r0, 2 + 4a68: e3ffffb2 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_LCDON); + 4a6c: 3006 movi r0, 6 + 4a6e: e3ffffaf bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_BIOFF); + 4a72: 3010 movi r0, 16 + 4a74: e3ffffac bsr 0x49cc // 49cc + HT1621_CS_HIGH; + 4a78: 9400 ld.w r0, (r4, 0x0) + 4a7a: 3100 movi r1, 0 + 4a7c: e3ffea0e bsr 0x1e98 // 1e98 +} + 4a80: 1491 pop r4, r15 + 4a82: 0000 bkpt + 4a84: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +00004a88 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 4a88: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a8a: 3212 movi r2, 18 + 4a8c: 3100 movi r1, 0 + + HT1621_CS_LOW; + 4a8e: 10b1 lrw r5, 0x2000004c // 4ad0 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a90: 1011 lrw r0, 0x2000039c // 4ad4 + 4a92: e3ffe769 bsr 0x1964 // 1964 <__memset_fast> + HT1621_CS_LOW; + 4a96: 3100 movi r1, 0 + 4a98: 9500 ld.w r0, (r5, 0x0) + 4a9a: e3ffea03 bsr 0x1ea0 // 1ea0 + nop; + 4a9e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4aa0: 3103 movi r1, 3 + 4aa2: 30a0 movi r0, 160 + 4aa4: e3ffff70 bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4aa8: 3106 movi r1, 6 + 4aaa: 3000 movi r0, 0 + 4aac: e3ffff6c bsr 0x4984 // 4984 + 4ab0: 3412 movi r4, 18 + 4ab2: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4ac2: 9500 ld.w r0, (r5, 0x0) + 4ac4: 3100 movi r1, 0 + 4ac6: e3ffe9e9 bsr 0x1e98 // 1e98 + nop; + 4aca: 6c03 mov r0, r0 +} + 4acc: 1492 pop r4-r5, r15 + 4ace: 0000 bkpt + 4ad0: 2000004c .long 0x2000004c + 4ad4: 2000039c .long 0x2000039c + +Disassembly of section .text.HT1621_ALLON: + +00004ad8 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 4ad8: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4ada: 10af lrw r5, 0x2000004c // 4b14 + 4adc: 3100 movi r1, 0 + 4ade: 9500 ld.w r0, (r5, 0x0) + 4ae0: e3ffe9e0 bsr 0x1ea0 // 1ea0 + nop; + 4ae4: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4ae6: 3103 movi r1, 3 + 4ae8: 30a0 movi r0, 160 + 4aea: e3ffff4d bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4aee: 3106 movi r1, 6 + 4af0: 3000 movi r0, 0 + 4af2: e3ffff49 bsr 0x4984 // 4984 + 4af6: 3412 movi r4, 18 + 4af8: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b08: 9500 ld.w r0, (r5, 0x0) + 4b0a: 3100 movi r1, 0 + 4b0c: e3ffe9c6 bsr 0x1e98 // 1e98 + nop; + 4b10: 6c03 mov r0, r0 +} + 4b12: 1492 pop r4-r5, r15 + 4b14: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00004b18 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 4b18: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4b1a: 1091 lrw r4, 0x2000004c // 4b5c + 4b1c: 3100 movi r1, 0 + 4b1e: 9400 ld.w r0, (r4, 0x0) + 4b20: e3ffe9c0 bsr 0x1ea0 // 1ea0 + nop; + 4b24: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4b26: 3103 movi r1, 3 + 4b28: 30a0 movi r0, 160 + 4b2a: e3ffff2d bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4b2e: 3106 movi r1, 6 + 4b30: 3000 movi r0, 0 + 4b32: e3ffff29 bsr 0x4984 // 4984 + 4b36: 3500 movi r5, 0 + for(U8_T i=0;i + 4b3a: 60d4 addu r3, r5 + 4b3c: 830c ld.b r0, (r3, 0xc) + 4b3e: 4004 lsli r0, r0, 4 + 4b40: 7400 zextb r0, r0 + 4b42: 3104 movi r1, 4 + 4b44: 2500 addi r5, 1 + 4b46: e3ffff1f bsr 0x4984 // 4984 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b4e: 9400 ld.w r0, (r4, 0x0) + 4b50: 3100 movi r1, 0 + 4b52: e3ffe9a3 bsr 0x1e98 // 1e98 + nop; + 4b56: 6c03 mov r0, r0 +} + 4b58: 1492 pop r4-r5, r15 + 4b5a: 0000 bkpt + 4b5c: 2000004c .long 0x2000004c + 4b60: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temperature_Display: + +00004b64 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 4b64: 14d4 push r4-r7, r15 + 4b66: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4b68: 310a movi r1, 10 + 4b6a: b801 st.w r0, (r14, 0x4) + 4b6c: e3fff67c bsr 0x3864 // 3864 <__udivsi3> + 4b70: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4b72: 310a movi r1, 10 + 4b74: 6c17 mov r0, r5 + 4b76: e3fff677 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + HT1621.show_cache[6] = 0x00; + HT1621.show_cache[5] &= 0x08; + + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b7a: 10fb lrw r7, 0x7a7a // 4be4 + 4b7c: 7400 zextb r0, r0 + 4b7e: 109b lrw r4, 0x20000390 // 4be8 + 4b80: 601c addu r0, r7 + HT1621.show_cache[9] &= 0x08; + 4b82: 3608 movi r6, 8 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b84: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[9] &= 0x08; + 4b86: 8455 ld.b r2, (r4, 0x15) + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b88: 4904 lsri r0, r1, 4 + HT1621.show_cache[9] &= 0x08; + 4b8a: 6898 and r2, r6 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b8c: 6c80 or r2, r0 + 4b8e: a455 st.b r2, (r4, 0x15) + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b90: 320f movi r2, 15 + 4b92: 6848 and r1, r2 + 4b94: a436 st.b r1, (r4, 0x16) + U8_T tmp_L = tmp_Integer%10; + 4b96: 6c17 mov r0, r5 + 4b98: 310a movi r1, 10 + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b9a: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4b9c: e3fff676 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4ba0: 7400 zextb r0, r0 + 4ba2: 601c addu r0, r7 + 4ba4: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4ba6: 9840 ld.w r2, (r14, 0x0) + 4ba8: 6c57 mov r1, r5 + 4baa: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4bac: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4bae: a434 st.b r1, (r4, 0x14) + U8_T tmp_quantile = tmp%10; + 4bb0: 6c0f mov r0, r3 + 4bb2: 310a movi r1, 10 + 4bb4: e3fff66a bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bb8: 7401 zexth r0, r0 + 4bba: 61c0 addu r7, r0 + 4bbc: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[6] |= Diaital[tmp_quantile]&0x0F; + 4bbe: 9840 ld.w r2, (r14, 0x0) + 4bc0: 688c and r2, r3 + 4bc2: a452 st.b r2, (r4, 0x12) + + //显示“℃” + HT1621.show_cache[3] |= 0x08; + 4bc4: 844f ld.b r2, (r4, 0xf) + 4bc6: 6c98 or r2, r6 + 4bc8: a44f st.b r2, (r4, 0xf) + HT1621.show_cache[4] |= 0x0B; + 4bca: 310b movi r1, 11 + 4bcc: 8450 ld.b r2, (r4, 0x10) + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bce: 4b64 lsri r3, r3, 4 + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4bd0: 4da4 lsri r5, r5, 4 + HT1621.show_cache[4] |= 0x0B; + 4bd2: 6c84 or r2, r1 + HT1621.show_cache[5] |= 0x08; + 4bd4: 6cd8 or r3, r6 + + //显示小数点 + HT1621.show_cache[7] |= 0x08; + 4bd6: 6d58 or r5, r6 + HT1621.show_cache[4] |= 0x0B; + 4bd8: a450 st.b r2, (r4, 0x10) + HT1621.show_cache[5] |= 0x08; + 4bda: a471 st.b r3, (r4, 0x11) + HT1621.show_cache[7] |= 0x08; + 4bdc: a4b3 st.b r5, (r4, 0x13) +} + 4bde: 1402 addi r14, r14, 8 + 4be0: 1494 pop r4-r7, r15 + 4be2: 0000 bkpt + 4be4: 00007a7a .long 0x00007a7a + 4be8: 20000390 .long 0x20000390 + +Disassembly of section .text.Local_Temperature_Display: + +00004bec : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 4bec: 14d4 push r4-r7, r15 + 4bee: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4bf0: 310a movi r1, 10 + 4bf2: b801 st.w r0, (r14, 0x4) + 4bf4: e3fff638 bsr 0x3864 // 3864 <__udivsi3> + 4bf8: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4bfa: 310a movi r1, 10 + 4bfc: 6c17 mov r0, r5 + 4bfe: e3fff633 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c02: 10f9 lrw r7, 0x7a7a // 4c64 + 4c04: 7400 zextb r0, r0 + 4c06: 601c addu r0, r7 + 4c08: 80c0 ld.b r6, (r0, 0x0) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c0a: 320f movi r2, 15 + 4c0c: 6c5b mov r1, r6 + 4c0e: 1097 lrw r4, 0x20000390 // 4c68 + 4c10: 6848 and r1, r2 + 4c12: a43d st.b r1, (r4, 0x1d) + U8_T tmp_L = tmp_Integer%10; + 4c14: 6c17 mov r0, r5 + 4c16: 310a movi r1, 10 + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c18: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4c1a: e3fff637 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c1e: 7400 zextb r0, r0 + 4c20: 601c addu r0, r7 + 4c22: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c24: 9840 ld.w r2, (r14, 0x0) + 4c26: 6c57 mov r1, r5 + 4c28: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4c2a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c2c: a43b st.b r1, (r4, 0x1b) + U8_T tmp_quantile = tmp%10; + 4c2e: 6c0f mov r0, r3 + 4c30: 310a movi r1, 10 + 4c32: e3fff62b bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c36: 7401 zexth r0, r0 + 4c38: 61c0 addu r7, r0 + 4c3a: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c3c: 9840 ld.w r2, (r14, 0x0) + 4c3e: 688c and r2, r3 + + //显示“℃” + HT1621.show_cache[16] |= 0x08; + HT1621.show_cache[11] |= 0x0B; + 4c40: 8437 ld.b r1, (r4, 0x17) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c42: a459 st.b r2, (r4, 0x19) + HT1621.show_cache[11] |= 0x0B; + 4c44: 300b movi r0, 11 + HT1621.show_cache[16] |= 0x08; + 4c46: 3208 movi r2, 8 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c48: 4ec4 lsri r6, r6, 4 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c4a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c4c: 4da4 lsri r5, r5, 4 + HT1621.show_cache[16] |= 0x08; + 4c4e: 6d88 or r6, r2 + HT1621.show_cache[11] |= 0x0B; + 4c50: 6c40 or r1, r0 + HT1621.show_cache[12] |= 0x08; + 4c52: 6cc8 or r3, r2 + + //显示小数点 + HT1621.show_cache[14] |= 0x08; + 4c54: 6d48 or r5, r2 + HT1621.show_cache[16] |= 0x08; + 4c56: a4dc st.b r6, (r4, 0x1c) + HT1621.show_cache[11] |= 0x0B; + 4c58: a437 st.b r1, (r4, 0x17) + HT1621.show_cache[12] |= 0x08; + 4c5a: a478 st.b r3, (r4, 0x18) + HT1621.show_cache[14] |= 0x08; + 4c5c: a4ba st.b r5, (r4, 0x1a) +} + 4c5e: 1402 addi r14, r14, 8 + 4c60: 1494 pop r4-r7, r15 + 4c62: 0000 bkpt + 4c64: 00007a7a .long 0x00007a7a + 4c68: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Mode: + +00004c6c : +* 1 -> 制热模式 +* 2 -> 送风模式 +* 3 -> 除湿 +*/ +void Control_Mode(U8_T mode){ + switch(mode){ + 4c6c: 3842 cmpnei r0, 2 + 4c6e: 0c0f bf 0x4c8c // 4c8c + 4c70: 3844 cmpnei r0, 4 + 4c72: 0c16 bf 0x4c9e // 4c9e + 4c74: 3840 cmpnei r0, 0 + 4c76: 080a bt 0x4c8a // 4c8a + case 0x00: + HT1621.show_cache[0] &= ~0x07; + 4c78: 104e lrw r2, 0x20000390 // 4cb0 + 4c7a: 3107 movi r1, 7 + 4c7c: 826c ld.b r3, (r2, 0xc) + 4c7e: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c80: 822d ld.b r1, (r2, 0xd) + 4c82: 3980 bclri r1, 0 + 4c84: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x04; + 4c86: 3ba2 bseti r3, 2 + HT1621.show_cache[0] |= 0x02; + break; + case 0x04: + HT1621.show_cache[0] &= ~0x07; + HT1621.show_cache[1] &= ~0x01; + HT1621.show_cache[0] |= 0x01; + 4c88: a26c st.b r3, (r2, 0xc) +// HT1621.show_cache[0] &= ~0x07; +// HT1621.show_cache[1] |= 0x01; +// break; + } + +} + 4c8a: 783c jmp r15 + HT1621.show_cache[0] &= ~0x07; + 4c8c: 1049 lrw r2, 0x20000390 // 4cb0 + 4c8e: 3107 movi r1, 7 + 4c90: 826c ld.b r3, (r2, 0xc) + 4c92: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c94: 822d ld.b r1, (r2, 0xd) + 4c96: 3980 bclri r1, 0 + 4c98: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x02; + 4c9a: 3ba1 bseti r3, 1 + 4c9c: 07f6 br 0x4c88 // 4c88 + HT1621.show_cache[0] &= ~0x07; + 4c9e: 1045 lrw r2, 0x20000390 // 4cb0 + 4ca0: 3107 movi r1, 7 + 4ca2: 826c ld.b r3, (r2, 0xc) + 4ca4: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ca6: 822d ld.b r1, (r2, 0xd) + 4ca8: 3980 bclri r1, 0 + 4caa: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x01; + 4cac: 3ba0 bseti r3, 0 + 4cae: 07ed br 0x4c88 // 4c88 + 4cb0: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_wind_velocity: + +00004cb4 : +* 2 -> 中风速 +* 3 -> 高风速 +* 0 -> 自动风速 +*/ +void Control_wind_velocity(U8_T velocity) +{ + 4cb4: 14d0 push r15 + switch(velocity) + 4cb6: 3803 cmphsi r0, 4 + 4cb8: 080f bt 0x4cd6 // 4cd6 + 4cba: 107a lrw r3, 0x20000390 // 4d20 + 4cbc: e3ffe020 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4cc0: 0e0c0214 .long 0x0e0c0214 + { + case 1: //低风速 + HT1621.show_cache[2] = 0x0C; + 4cc4: 320c movi r2, 12 + HT1621.show_cache[3] &= ~0x03; + HT1621.show_cache[1] &= ~0x02; + break; + case 2: //中风速 + HT1621.show_cache[2] = 0x0F; + 4cc6: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cc8: 834f ld.b r2, (r3, 0xf) + 4cca: 3a80 bclri r2, 0 + 4ccc: 3a81 bclri r2, 1 + 4cce: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[1] &= ~0x02; + 4cd0: 834d ld.b r2, (r3, 0xd) + 4cd2: 3a81 bclri r2, 1 + 4cd4: a34d st.b r2, (r3, 0xd) + } + break; + default: + break; + } +} + 4cd6: 1490 pop r15 + HT1621.show_cache[2] = 0x0F; + 4cd8: 320f movi r2, 15 + 4cda: 07f6 br 0x4cc6 // 4cc6 + HT1621.show_cache[2] = 0x0F; + 4cdc: 320f movi r2, 15 + 4cde: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4ce0: 834f ld.b r2, (r3, 0xf) + 4ce2: 3aa0 bseti r2, 0 + 4ce4: 3aa1 bseti r2, 1 + 4ce6: 07f4 br 0x4cce // 4cce + HT1621.show_cache[1] |= 0x02; + 4ce8: 834d ld.b r2, (r3, 0xd) + 4cea: 3aa1 bseti r2, 1 + 4cec: a34d st.b r2, (r3, 0xd) + if(HT1621.wind_velocity == 0) //关风扇 + 4cee: 8343 ld.b r2, (r3, 0x3) + 4cf0: 3a40 cmpnei r2, 0 + 4cf2: 0807 bt 0x4d00 // 4d00 + HT1621.show_cache[2] = 0x0F; + 4cf4: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cf6: 834f ld.b r2, (r3, 0xf) + 4cf8: 3a80 bclri r2, 0 + 4cfa: 3a81 bclri r2, 1 + HT1621.show_cache[3] |= 0x03; + 4cfc: a34f st.b r2, (r3, 0xf) +} + 4cfe: 07ec br 0x4cd6 // 4cd6 + }else if(HT1621.wind_velocity == 1) //低风速 + 4d00: 3a41 cmpnei r2, 1 + 4d02: 0803 bt 0x4d08 // 4d08 + HT1621.show_cache[2] = 0x0C; + 4d04: 320c movi r2, 12 + 4d06: 07f7 br 0x4cf4 // 4cf4 + }else if(HT1621.wind_velocity == 2) //中风速 + 4d08: 3a42 cmpnei r2, 2 + 4d0a: 0803 bt 0x4d10 // 4d10 + HT1621.show_cache[2] = 0x0F; + 4d0c: 320f movi r2, 15 + 4d0e: 07f3 br 0x4cf4 // 4cf4 + }else if(HT1621.wind_velocity == 3) //高风速 + 4d10: 3a43 cmpnei r2, 3 + 4d12: 0be2 bt 0x4cd6 // 4cd6 + HT1621.show_cache[2] = 0x0F; + 4d14: 320f movi r2, 15 + 4d16: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4d18: 834f ld.b r2, (r3, 0xf) + 4d1a: 3aa0 bseti r2, 0 + 4d1c: 3aa1 bseti r2, 1 + 4d1e: 07ef br 0x4cfc // 4cfc + 4d20: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Prompt_Text: + +00004d24 : +*函数功能:显示 提示文字 +*参数功能:state : 0 -> 关 +* 1 -> 开 +*/ +void Control_Prompt_Text(U8_T state){ + if(state == 0x01){ + 4d24: 3841 cmpnei r0, 1 + 4d26: 1070 lrw r3, 0x20000390 // 4d64 + 4d28: 0810 bt 0x4d48 // 4d48 + HT1621.show_cache[0] |= 0x08; //模式 + 4d2a: 3008 movi r0, 8 + 4d2c: 832c ld.b r1, (r3, 0xc) + 4d2e: 6c40 or r1, r0 + 4d30: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x0C; //风速 + 4d32: 832d ld.b r1, (r3, 0xd) + 4d34: 39a2 bseti r1, 2 + 4d36: 39a3 bseti r1, 3 + 4d38: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d3a: 832f ld.b r1, (r3, 0xf) + 4d3c: 39a2 bseti r1, 2 + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d3e: 8355 ld.b r2, (r3, 0x15) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d40: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d42: 6c80 or r2, r0 + }else{ + HT1621.show_cache[0] &= ~0x08; //模式 + HT1621.show_cache[1] &= ~0x0C; //风速 + HT1621.show_cache[3] &= ~0x04; //设置温度 + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d44: a355 st.b r2, (r3, 0x15) + } +} + 4d46: 783c jmp r15 + HT1621.show_cache[0] &= ~0x08; //模式 + 4d48: 834c ld.b r2, (r3, 0xc) + 4d4a: 3a83 bclri r2, 3 + 4d4c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x0C; //风速 + 4d4e: 834d ld.b r2, (r3, 0xd) + 4d50: 3a82 bclri r2, 2 + 4d52: 3a83 bclri r2, 3 + 4d54: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x04; //设置温度 + 4d56: 834f ld.b r2, (r3, 0xf) + 4d58: 3a82 bclri r2, 2 + 4d5a: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d5c: 8355 ld.b r2, (r3, 0x15) + 4d5e: 3a83 bclri r2, 3 + 4d60: 07f2 br 0x4d44 // 4d44 + 4d62: 0000 bkpt + 4d64: 20000390 .long 0x20000390 + +Disassembly of section .text.Controlled_Buzzer: + +00004d68 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 4d68: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 4d6a: 3841 cmpnei r0, 1 + 4d6c: 0c0a bf 0x4d80 // 4d80 + 4d6e: 3840 cmpnei r0, 0 + 4d70: 0c04 bf 0x4d78 // 4d78 + 4d72: 3842 cmpnei r0, 2 + 4d74: 0c12 bf 0x4d98 // 4d98 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 4d76: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 4d78: 3010 movi r0, 16 + 4d7a: e3fffe29 bsr 0x49cc // 49cc + break; + 4d7e: 07fc br 0x4d76 // 4d76 + HT1621_WR_CMD(HT1621_BLON); + 4d80: 3012 movi r0, 18 + 4d82: e3fffe25 bsr 0x49cc // 49cc + HT1621.buz_control = 0x01; + 4d86: 1069 lrw r3, 0x20000390 // 4da8 + 4d88: 3220 movi r2, 32 + 4d8a: 608c addu r2, r3 + 4d8c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 4d8e: a222 st.b r1, (r2, 0x2) + HT1621.buz_tick = SysTick_1ms; + 4d90: 1047 lrw r2, 0x200000b8 // 4dac + 4d92: 9240 ld.w r2, (r2, 0x0) + 4d94: b34d st.w r2, (r3, 0x34) +} + 4d96: 07f0 br 0x4d76 // 4d76 + HT1621_WR_CMD(HT1621_BLON); + 4d98: 3012 movi r0, 18 + 4d9a: e3fffe19 bsr 0x49cc // 49cc + HT1621.buz_control = 0x02; + 4d9e: 1063 lrw r3, 0x20000390 // 4da8 + 4da0: 3220 movi r2, 32 + 4da2: 608c addu r2, r3 + 4da4: 3102 movi r1, 2 + 4da6: 07f4 br 0x4d8e // 4d8e + 4da8: 20000390 .long 0x20000390 + 4dac: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00004db0 : +/* +*函数功能:控制LCD 按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_LCD_Backlight(U8_T state){ + switch (state) { + 4db0: 3840 cmpnei r0, 0 + 4db2: 0c04 bf 0x4dba // 4dba + 4db4: 3841 cmpnei r0, 1 + 4db6: 0c07 bf 0x4dc4 // 4dc4 + break; + case 0x01: + EPT0->CMPC=0; + break; + } +} + 4db8: 783c jmp r15 + EPT0->CMPC=3000; + 4dba: 1065 lrw r3, 0x20000020 // 4dcc + 4dbc: 1045 lrw r2, 0xbb8 // 4dd0 + 4dbe: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPC=0; + 4dc0: b34d st.w r2, (r3, 0x34) +} + 4dc2: 07fb br 0x4db8 // 4db8 + EPT0->CMPC=0; + 4dc4: 1062 lrw r3, 0x20000020 // 4dcc + 4dc6: 3200 movi r2, 0 + 4dc8: 9360 ld.w r3, (r3, 0x0) + 4dca: 07fb br 0x4dc0 // 4dc0 + 4dcc: 20000020 .long 0x20000020 + 4dd0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Controlled_Key_Backlight: + +00004dd4 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_Key_Backlight(U8_T state){ + switch(state){ + 4dd4: 3840 cmpnei r0, 0 + 4dd6: 0c04 bf 0x4dde // 4dde + 4dd8: 3841 cmpnei r0, 1 + 4dda: 0c07 bf 0x4de8 // 4de8 + break; + case 0x01: + EPT0->CMPB=0; + break; + } +} + 4ddc: 783c jmp r15 + EPT0->CMPB=3000; + 4dde: 1065 lrw r3, 0x20000020 // 4df0 + 4de0: 1045 lrw r2, 0xbb8 // 4df4 + 4de2: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPB=0; + 4de4: b34c st.w r2, (r3, 0x30) +} + 4de6: 07fb br 0x4ddc // 4ddc + EPT0->CMPB=0; + 4de8: 1062 lrw r3, 0x20000020 // 4df0 + 4dea: 3200 movi r2, 0 + 4dec: 9360 ld.w r3, (r3, 0x0) + 4dee: 07fb br 0x4de4 // 4de4 + 4df0: 20000020 .long 0x20000020 + 4df4: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Set_Device_ADDR: + +00004df8 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4df8: 14d4 push r4-r7, r15 + 4dfa: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4dfc: 11a3 lrw r5, 0x7a7a // 4e88 + 4dfe: 1184 lrw r4, 0x20000390 // 4e8c + 4e00: 6014 addu r0, r5 + HT1621.show_cache[7] &= 0x08; + 4e02: 3308 movi r3, 8 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4e04: 6c87 mov r2, r1 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e06: 8000 ld.b r0, (r0, 0x0) + HT1621.show_cache[7] &= 0x08; + 4e08: 8433 ld.b r1, (r4, 0x13) + 4e0a: 684c and r1, r3 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e0c: 48c4 lsri r6, r0, 4 + 4e0e: 6c58 or r1, r6 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4e10: 370f movi r7, 15 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e12: a433 st.b r1, (r4, 0x13) + HT1621.show_cache[17] = 0x00; + HT1621.show_cache[16] &= 0x08; + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4e14: 8438 ld.b r1, (r4, 0x18) + 4e16: 684c and r1, r3 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4e18: 681c and r0, r7 + 4e1a: a414 st.b r0, (r4, 0x14) + HT1621.show_cache[14] &= 0x08; + 4e1c: 84da ld.b r6, (r4, 0x1a) + HT1621.show_cache[12] &= 0x08; + 4e1e: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 4e20: 6c0b mov r0, r2 + 4e22: 3164 movi r1, 100 + HT1621.show_cache[14] &= 0x08; + 4e24: 698c and r6, r3 + HT1621.show_cache[12] &= 0x08; + 4e26: b862 st.w r3, (r14, 0x8) + U8_T tmp_H = tmp_Integer/10; + 4e28: b841 st.w r2, (r14, 0x4) + 4e2a: e3fff51d bsr 0x3864 // 3864 <__udivsi3> + + //显示设置地址 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e2e: 7400 zextb r0, r0 + 4e30: 6014 addu r0, r5 + 4e32: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[16] &= 0x08; + 4e34: 9862 ld.w r3, (r14, 0x8) + 4e36: 841c ld.b r0, (r4, 0x1c) + 4e38: 68c0 and r3, r0 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e3a: 4904 lsri r0, r1, 4 + 4e3c: 6cc0 or r3, r0 + U8_T tmp_Integer = addr/10; + 4e3e: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e40: 685c and r1, r7 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e42: a47c st.b r3, (r4, 0x1c) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e44: a43d st.b r1, (r4, 0x1d) + U8_T tmp_Integer = addr/10; + 4e46: 6c0b mov r0, r2 + 4e48: 310a movi r1, 10 + 4e4a: e3fff50d bsr 0x3864 // 3864 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 4e4e: 7400 zextb r0, r0 + 4e50: 310a movi r1, 10 + 4e52: e3fff51b bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e56: 7400 zextb r0, r0 + 4e58: 6014 addu r0, r5 + 4e5a: 8060 ld.b r3, (r0, 0x0) + 4e5c: 4b24 lsri r1, r3, 4 + U8_T tmp_quantile = addr%10; + 4e5e: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e60: 68dc and r3, r7 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e62: 6d84 or r6, r1 + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e64: a47b st.b r3, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e66: a4da st.b r6, (r4, 0x1a) + U8_T tmp_quantile = addr%10; + 4e68: 310a movi r1, 10 + 4e6a: 6c0b mov r0, r2 + 4e6c: e3fff50e bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e70: 7400 zextb r0, r0 + 4e72: 6140 addu r5, r0 + 4e74: 8560 ld.b r3, (r5, 0x0) + 4e76: 4b44 lsri r2, r3, 4 + 4e78: 9820 ld.w r1, (r14, 0x0) + 4e7a: 6c84 or r2, r1 + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e7c: 69cc and r7, r3 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e7e: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e80: a4f9 st.b r7, (r4, 0x19) +} + 4e82: 1403 addi r14, r14, 12 + 4e84: 1494 pop r4-r7, r15 + 4e86: 0000 bkpt + 4e88: 00007a7a .long 0x00007a7a + 4e8c: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temp_Difference: + +00004e90 : + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e90: 1057 lrw r2, 0x20000390 // 4eec + HT1621.show_cache[7] &= 0x08; + 4e92: 3108 movi r1, 8 + 4e94: 8273 ld.b r3, (r2, 0x13) + 4e96: 68c4 and r3, r1 + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e98: 3ba0 bseti r3, 0 + 4e9a: 3ba1 bseti r3, 1 + 4e9c: a273 st.b r3, (r2, 0x13) + HT1621.show_cache[8] |= Diaital[2]&0x0F; + 4e9e: 330d movi r3, 13 + 4ea0: a274 st.b r3, (r2, 0x14) + + //清楚原数字 + HT1621.show_cache[17] = 0x00; + 4ea2: 3300 movi r3, 0 + 4ea4: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] &= 0x08; + 4ea6: 827c ld.b r3, (r2, 0x1c) + 4ea8: 68c4 and r3, r1 + 4eaa: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] = 0x00; + 4eac: 3300 movi r3, 0 + 4eae: a27b st.b r3, (r2, 0x1b) + HT1621.show_cache[14] &= 0x08; + 4eb0: 827a ld.b r3, (r2, 0x1a) + 4eb2: 68c4 and r3, r1 + 4eb4: a27a st.b r3, (r2, 0x1a) + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4eb6: 8278 ld.b r3, (r2, 0x18) + 4eb8: 684c and r1, r3 + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 4eba: 3300 movi r3, 0 + 4ebc: 2b08 subi r3, 9 + 4ebe: 60c0 addu r3, r0 + 4ec0: 74cc zextb r3, r3 + 4ec2: 3b09 cmphsi r3, 10 + 4ec4: 0c08 bf 0x4ed4 // 4ed4 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 4ec6: 3808 cmphsi r0, 9 + 4ec8: 0810 bt 0x4ee8 // 4ee8 + tmp_quantile = 9 - diff; + 4eca: 3309 movi r3, 9 + 4ecc: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[14] = 0x02; + 4ece: 3002 movi r0, 2 + tmp_quantile = 9 - diff; + 4ed0: 74cc zextb r3, r3 + HT1621.show_cache[14] = 0x02; + 4ed2: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] = 0x00; + } + + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4ed4: 1007 lrw r0, 0x7a7a // 4ef0 + 4ed6: 60c0 addu r3, r0 + 4ed8: 8360 ld.b r3, (r3, 0x0) + 4eda: 4b04 lsri r0, r3, 4 + 4edc: 6c40 or r1, r0 + 4ede: a238 st.b r1, (r2, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4ee0: 310f movi r1, 15 + 4ee2: 68c4 and r3, r1 + 4ee4: a279 st.b r3, (r2, 0x19) +} + 4ee6: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 4ee8: 3300 movi r3, 0 + 4eea: 07f5 br 0x4ed4 // 4ed4 + 4eec: 20000390 .long 0x20000390 + 4ef0: 00007a7a .long 0x00007a7a + +Disassembly of section .text.HT1621_Refresh_Task: + +00004ef4 : + + +void HT1621_Refresh_Task(void){ + 4ef4: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 4ef6: 10b4 lrw r5, 0x200000b8 // 4f44 + 4ef8: 1094 lrw r4, 0x20000390 // 4f48 + 4efa: 9560 ld.w r3, (r5, 0x0) + 4efc: 944b ld.w r2, (r4, 0x2c) + 4efe: 60ca subu r3, r2 + 4f00: 1053 lrw r2, 0x1f3 // 4f4c + 4f02: 64c8 cmphs r2, r3 + 4f04: 0806 bt 0x4f10 // 4f10 + HT1621.Refresh_timing = HT1621_Refresh_time; + 4f06: 33fa movi r3, 250 + 4f08: 4361 lsli r3, r3, 1 + 4f0a: b46b st.w r3, (r4, 0x2c) + + HT1621_Refresh_Data(); + 4f0c: e3fffe06 bsr 0x4b18 // 4b18 + +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 4f10: 1070 lrw r3, 0x200003b0 // 4f50 + 4f12: 8342 ld.b r2, (r3, 0x2) + 4f14: 3a41 cmpnei r2, 1 + 4f16: 080f bt 0x4f34 // 4f34 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 4f18: 942d ld.w r1, (r4, 0x34) + 4f1a: 9540 ld.w r2, (r5, 0x0) + 4f1c: 6086 subu r2, r1 + 4f1e: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f20: 6484 cmphs r1, r2 + 4f22: 0808 bt 0x4f32 // 4f32 + HT1621.buz_tick = SysTick_1ms; + 4f24: 9540 ld.w r2, (r5, 0x0) + 4f26: b44d st.w r2, (r4, 0x34) + HT1621_WR_CMD(HT1621_BIOFF); + 4f28: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 4f2a: 3200 movi r2, 0 + 4f2c: a342 st.b r2, (r3, 0x2) + HT1621_WR_CMD(HT1621_BIOFF); + 4f2e: e3fffd4f bsr 0x49cc // 49cc + Controlled_Buzzer(0x00); + } + } + + +} + 4f32: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 4f34: 3a42 cmpnei r2, 2 + 4f36: 0bfe bt 0x4f32 // 4f32 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f38: 942d ld.w r1, (r4, 0x34) + 4f3a: 9540 ld.w r2, (r5, 0x0) + 4f3c: 6086 subu r2, r1 + 4f3e: 1024 lrw r1, 0x1f3 // 4f4c + 4f40: 07f0 br 0x4f20 // 4f20 + 4f42: 0000 bkpt + 4f44: 200000b8 .long 0x200000b8 + 4f48: 20000390 .long 0x20000390 + 4f4c: 000001f3 .long 0x000001f3 + 4f50: 200003b0 .long 0x200003b0 + +Disassembly of section .text.MODEL_Ctrl_Init: + +00004f54 : +#include "includes.h" + +MODEL_Struct detect_inf; + +void MODEL_Ctrl_Init(void) +{ + 4f54: 14d1 push r4, r15 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + GPIO_Init(GPIOA0,1,1); + 4f56: 1089 lrw r4, 0x2000004c // 4f78 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + 4f58: 3208 movi r2, 8 + 4f5a: 3100 movi r1, 0 + 4f5c: 1008 lrw r0, 0x200003cc // 4f7c + 4f5e: e3ffe503 bsr 0x1964 // 1964 <__memset_fast> + GPIO_Init(GPIOA0,1,1); + 4f62: 3201 movi r2, 1 + 4f64: 9400 ld.w r0, (r4, 0x0) + 4f66: 3101 movi r1, 1 + 4f68: e3ffe710 bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,1); + 4f6c: 9400 ld.w r0, (r4, 0x0) + 4f6e: 3101 movi r1, 1 + 4f70: e3ffe77c bsr 0x1e68 // 1e68 + +} + 4f74: 1491 pop r4, r15 + 4f76: 0000 bkpt + 4f78: 2000004c .long 0x2000004c + 4f7c: 200003cc .long 0x200003cc + +Disassembly of section .text.Control_Mode_Detection: + +00004f80 : + +void Control_Mode_Detection(void){ + 4f80: 14d3 push r4-r6, r15 + + if(SysTick_1ms - detect_inf.detection_tick >= 10){ + 4f82: 1189 lrw r4, 0x200003cc // 5024 + 4f84: 8445 ld.b r2, (r4, 0x5) + 4f86: 8464 ld.b r3, (r4, 0x4) + 4f88: 4248 lsli r2, r2, 8 + 4f8a: 6c8c or r2, r3 + 4f8c: 8466 ld.b r3, (r4, 0x6) + 4f8e: 4370 lsli r3, r3, 16 + 4f90: 6c8c or r2, r3 + 4f92: 8467 ld.b r3, (r4, 0x7) + 4f94: 1105 lrw r0, 0x200000b8 // 5028 + 4f96: 4378 lsli r3, r3, 24 + 4f98: 9020 ld.w r1, (r0, 0x0) + 4f9a: 6cc8 or r3, r2 + 4f9c: 604e subu r1, r3 + 4f9e: 3909 cmphsi r1, 10 + 4fa0: 0c18 bf 0x4fd0 // 4fd0 + detect_inf.detection_tick = SysTick_1ms; + 4fa2: 9060 ld.w r3, (r0, 0x0) + 4fa4: 4b48 lsri r2, r3, 8 + + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fa6: 11a2 lrw r5, 0x2000004c // 502c + 4fa8: 3101 movi r1, 1 + detect_inf.detection_tick = SysTick_1ms; + 4faa: a464 st.b r3, (r4, 0x4) + 4fac: a445 st.b r2, (r4, 0x5) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fae: 9500 ld.w r0, (r5, 0x0) + detect_inf.detection_tick = SysTick_1ms; + 4fb0: 4b50 lsri r2, r3, 16 + 4fb2: 4b78 lsri r3, r3, 24 + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fb4: 84c1 ld.b r6, (r4, 0x1) + detect_inf.detection_tick = SysTick_1ms; + 4fb6: a446 st.b r2, (r4, 0x6) + 4fb8: a467 st.b r3, (r4, 0x7) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fba: e3ffe782 bsr 0x1ebe // 1ebe + 4fbe: 641a cmpne r6, r0 + 4fc0: 0c09 bf 0x4fd2 // 4fd2 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fc2: 9500 ld.w r0, (r5, 0x0) + 4fc4: 3101 movi r1, 1 + 4fc6: e3ffe77c bsr 0x1ebe // 1ebe + detect_inf.count = 0; + 4fca: 3300 movi r3, 0 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fcc: a401 st.b r0, (r4, 0x1) + detect_inf.count = 0; + 4fce: a460 st.b r3, (r4, 0x0) + } + } + } + + } +} + 4fd0: 1493 pop r4-r6, r15 + detect_inf.count++; + 4fd2: 8460 ld.b r3, (r4, 0x0) + 4fd4: 2300 addi r3, 1 + 4fd6: 74cc zextb r3, r3 + if (detect_inf.count >= 20) { + 4fd8: 3b13 cmphsi r3, 20 + detect_inf.count++; + 4fda: a460 st.b r3, (r4, 0x0) + if (detect_inf.count >= 20) { + 4fdc: 0ffa bf 0x4fd0 // 4fd0 + Dbg_Println(DBG_BIT_SYS_STATUS,"last_state %d state %d",detect_inf.last_state , GPIO_Read_Status(GPIOA0,1)); + 4fde: 3101 movi r1, 1 + 4fe0: 9500 ld.w r0, (r5, 0x0) + 4fe2: 84c1 ld.b r6, (r4, 0x1) + 4fe4: e3ffe76d bsr 0x1ebe // 1ebe + 4fe8: 6cc3 mov r3, r0 + 4fea: 6c9b mov r2, r6 + 4fec: 1031 lrw r1, 0x7dd6 // 5030 + 4fee: 3000 movi r0, 0 + 4ff0: e3fff5ae bsr 0x3b4c // 3b4c + detect_inf.control_model = detect_inf.last_state; + 4ff4: 8461 ld.b r3, (r4, 0x1) + detect_inf.stop_detect = 0x01; + 4ff6: 3201 movi r2, 1 + if (detect_inf.control_model == 0x00) { + 4ff8: 3b40 cmpnei r3, 0 + detect_inf.control_model = detect_inf.last_state; + 4ffa: a463 st.b r3, (r4, 0x3) + detect_inf.stop_detect = 0x01; + 4ffc: a442 st.b r2, (r4, 0x2) + if (detect_inf.control_model == 0x00) { + 4ffe: 0be9 bt 0x4fd0 // 4fd0 + GPIO_PullHighLow_DIS(GPIOA0, 1); + 5000: 9500 ld.w r0, (r5, 0x0) + 5002: 3101 movi r1, 1 + 5004: e3ffe73c bsr 0x1e7c // 1e7c + GPIO_Init(GPIOA0,1,Output); + 5008: 3200 movi r2, 0 + 500a: 9500 ld.w r0, (r5, 0x0) + 500c: 3101 movi r1, 1 + 500e: e3ffe6bd bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,1); + 5012: 9500 ld.w r0, (r5, 0x0) + 5014: 3101 movi r1, 1 + 5016: e3ffe73a bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,1); + 501a: 9500 ld.w r0, (r5, 0x0) + 501c: 3101 movi r1, 1 + 501e: e3ffe741 bsr 0x1ea0 // 1ea0 +} + 5022: 07d7 br 0x4fd0 // 4fd0 + 5024: 200003cc .long 0x200003cc + 5028: 200000b8 .long 0x200000b8 + 502c: 2000004c .long 0x2000004c + 5030: 00007dd6 .long 0x00007dd6 + +Disassembly of section .text.TemCtrl_Init: + +00005034 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 5034: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 5036: 1289 lrw r4, 0x200003d4 // 5158 + 5038: 321f movi r2, 31 + 503a: 3100 movi r1, 0 + 503c: 6c13 mov r0, r4 + 503e: e3ffe493 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 5042: 1267 lrw r3, 0x200000a8 // 515c + 5044: 9360 ld.w r3, (r3, 0x0) + 5046: 3b80 bclri r3, 0 + 5048: 3b40 cmpnei r3, 0 + 504a: 0c80 bf 0x514a // 514a + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 504c: 1225 lrw r1, 0x7ded // 5160 + 504e: 3000 movi r0, 0 + 5050: e3fff57e bsr 0x3b4c // 3b4c + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 5054: 1264 lrw r3, 0x200000a4 // 5164 + 5056: 30ff movi r0, 255 + 5058: 9320 ld.w r1, (r3, 0x0) + 505a: 6840 and r1, r0 + 505c: 3940 cmpnei r1, 0 + 505e: 0c05 bf 0x5068 // 5068 + 5060: 9340 ld.w r2, (r3, 0x0) + 5062: 6880 and r2, r0 + 5064: 3a41 cmpnei r2, 1 + 5066: 0865 bt 0x5130 // 5130 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 5068: 9340 ld.w r2, (r3, 0x0) + 506a: 4227 lsli r1, r2, 7 + 506c: 307f movi r0, 127 + 506e: 8442 ld.b r2, (r4, 0x2) + 5070: 6880 and r2, r0 + 5072: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5074: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 5076: 9340 ld.w r2, (r3, 0x0) + 5078: 4a48 lsri r2, r2, 8 + 507a: 7488 zextb r2, r2 + 507c: 3a03 cmphsi r2, 4 + 507e: 085d bt 0x5138 // 5138 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 5080: 9340 ld.w r2, (r3, 0x0) + 5082: 3107 movi r1, 7 + 5084: 4a48 lsri r2, r2, 8 + 5086: 6884 and r2, r1 + 5088: 3070 movi r0, 112 + 508a: 8422 ld.b r1, (r4, 0x2) + 508c: 4244 lsli r2, r2, 4 + 508e: 6841 andn r1, r0 + 5090: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5092: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 5094: 9340 ld.w r2, (r3, 0x0) + 5096: 4a50 lsri r2, r2, 16 + 5098: 7488 zextb r2, r2 + 509a: 3a03 cmphsi r2, 4 + 509c: 0852 bt 0x5140 // 5140 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 509e: 9340 ld.w r2, (r3, 0x0) + 50a0: 3107 movi r1, 7 + 50a2: 4a50 lsri r2, r2, 16 + 50a4: 6884 and r2, r1 + 50a6: 300e movi r0, 14 + 50a8: 8422 ld.b r1, (r4, 0x2) + 50aa: 4241 lsli r2, r2, 1 + 50ac: 6841 andn r1, r0 + 50ae: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 50b0: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 50b2: 9340 ld.w r2, (r3, 0x0) + 50b4: 4a58 lsri r2, r2, 24 + 50b6: 3a0f cmphsi r2, 16 + 50b8: 0c05 bf 0x50c2 // 50c2 + 50ba: 9340 ld.w r2, (r3, 0x0) + 50bc: 4a58 lsri r2, r2, 24 + 50be: 3a1f cmphsi r2, 32 + 50c0: 0c05 bf 0x50ca // 50ca + 50c2: 9340 ld.w r2, (r3, 0x0) + 50c4: 4a58 lsri r2, r2, 24 + 50c6: 3a40 cmpnei r2, 0 + 50c8: 0846 bt 0x5154 // 5154 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 50ca: 9360 ld.w r3, (r3, 0x0) + 50cc: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 50ce: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 50d0: e3fffc52 bsr 0x4974 // 4974 + 50d4: 1165 lrw r3, 0x20000350 // 5168 + 50d6: 8362 ld.b r3, (r3, 0x2) + 50d8: 320a movi r2, 10 + 50da: 7cc8 mult r3, r2 + 50dc: 2b59 subi r3, 90 + 50de: 600c addu r0, r3 + 50e0: 7401 zexth r0, r0 + 50e2: 4868 lsri r3, r0, 8 + 50e4: a469 st.b r3, (r4, 0x9) + 50e6: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50e8: 310a movi r1, 10 + 50ea: e3fff3bd bsr 0x3864 // 3864 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 50ee: 3301 movi r3, 1 + 50f0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 50f2: 3300 movi r3, 0 + 50f4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 50f6: 3200 movi r2, 0 + 50f8: 107d lrw r3, 0x2000005c // 516c + 50fa: 9360 ld.w r3, (r3, 0x0) + 50fc: 23ff addi r3, 256 + 50fe: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5100: 8442 ld.b r2, (r4, 0x2) + 5102: 4239 lsli r1, r2, 25 + 5104: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 5106: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5108: 4128 lsli r1, r1, 8 + 510a: 9300 ld.w r0, (r3, 0x0) + 510c: 6c40 or r1, r0 + 510e: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5110: 423c lsli r1, r2, 28 + 5112: 493d lsri r1, r1, 29 + 5114: 9300 ld.w r0, (r3, 0x0) + 5116: 4130 lsli r1, r1, 16 + 5118: 6c40 or r1, r0 + 511a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 511c: 8421 ld.b r1, (r4, 0x1) + 511e: 9300 ld.w r0, (r3, 0x0) + 5120: 4138 lsli r1, r1, 24 + 5122: 6c40 or r1, r0 + 5124: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5126: 9320 ld.w r1, (r3, 0x0) + 5128: 4a47 lsri r2, r2, 7 + 512a: 6c84 or r2, r1 + 512c: b340 st.w r2, (r3, 0x0) +} + 512e: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5130: 8442 ld.b r2, (r4, 0x2) + 5132: 317f movi r1, 127 + 5134: 6884 and r2, r1 + 5136: 079f br 0x5074 // 5074 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5138: 8442 ld.b r2, (r4, 0x2) + 513a: 3170 movi r1, 112 + 513c: 6885 andn r2, r1 + 513e: 07aa br 0x5092 // 5092 + TempCtrl.TemState_Now.fan = FAN_MID; + 5140: 8442 ld.b r2, (r4, 0x2) + 5142: 310e movi r1, 14 + 5144: 6885 andn r2, r1 + 5146: 3aa2 bseti r2, 2 + 5148: 07b4 br 0x50b0 // 50b0 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 514a: 8462 ld.b r3, (r4, 0x2) + 514c: 320e movi r2, 14 + 514e: 68c9 andn r3, r2 + 5150: 3ba2 bseti r3, 2 + 5152: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 5154: 3318 movi r3, 24 + 5156: 07bc br 0x50ce // 50ce + 5158: 200003d4 .long 0x200003d4 + 515c: 200000a8 .long 0x200000a8 + 5160: 00007ded .long 0x00007ded + 5164: 200000a4 .long 0x200000a4 + 5168: 20000350 .long 0x20000350 + 516c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00005170 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 5170: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 5172: 1031 lrw r1, 0x200003d4 // 51b4 + 5174: 8162 ld.b r3, (r1, 0x2) + 5176: 748e sextb r2, r3 + 5178: 3adf btsti r2, 31 + 517a: 0c14 bf 0x51a2 // 51a2 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 517c: 4359 lsli r2, r3, 25 + 517e: 4a5d lsri r2, r2, 29 + 5180: 3a42 cmpnei r2, 2 + 5182: 0c11 bf 0x51a4 // 51a4 + 5184: 3a44 cmpnei r2, 4 + 5186: 0c13 bf 0x51ac // 51ac + 5188: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 518a: 3270 movi r2, 112 + 518c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 518e: 0802 bt 0x5192 // 5192 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 5190: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 5192: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 5194: 8142 ld.b r2, (r1, 0x2) + 5196: 4259 lsli r2, r2, 25 + 5198: 4a5d lsri r2, r2, 29 + 519a: 1028 lrw r1, 0x7e06 // 51b8 + 519c: 3000 movi r0, 0 + 519e: e3fff4d7 bsr 0x3b4c // 3b4c +} + 51a2: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 51a4: 3270 movi r2, 112 + 51a6: 68c9 andn r3, r2 + 51a8: 3ba6 bseti r3, 6 + 51aa: 07f4 br 0x5192 // 5192 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 51ac: 3270 movi r2, 112 + 51ae: 68c9 andn r3, r2 + 51b0: 07f1 br 0x5192 // 5192 + 51b2: 0000 bkpt + 51b4: 200003d4 .long 0x200003d4 + 51b8: 00007e06 .long 0x00007e06 + +Disassembly of section .text.TemCtrl_Fan_Set: + +000051bc : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 51bc: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 51be: 1071 lrw r3, 0x200003d4 // 5200 + 51c0: 8342 ld.b r2, (r3, 0x2) + 51c2: 744a sextb r1, r2 + 51c4: 39df btsti r1, 31 + 51c6: 0c15 bf 0x51f0 // 51f0 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 51c8: 421c lsli r0, r2, 28 + 51ca: 481d lsri r0, r0, 29 + 51cc: 3803 cmphsi r0, 4 + 51ce: 0815 bt 0x51f8 // 51f8 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 51d0: 8342 ld.b r2, (r3, 0x2) + 51d2: 310e movi r1, 14 + 51d4: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 51d6: e3ffdd93 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 51da: 0211 .short 0x0211 + 51dc: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 51de: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; + 51e0: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 51e2: 8342 ld.b r2, (r3, 0x2) + 51e4: 425c lsli r2, r2, 28 + 51e6: 4a5d lsri r2, r2, 29 + 51e8: 1027 lrw r1, 0x7e0f // 5204 + 51ea: 3000 movi r0, 0 + 51ec: e3fff4b0 bsr 0x3b4c // 3b4c +} + 51f0: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 51f2: 3aa1 bseti r2, 1 + 51f4: 3aa2 bseti r2, 2 + 51f6: 07f5 br 0x51e0 // 51e0 + TempCtrl.TemState_Now.fan = FAN_LOW; + 51f8: 310e movi r1, 14 + 51fa: 6885 andn r2, r1 + 51fc: 3aa1 bseti r2, 1 + 51fe: 07f1 br 0x51e0 // 51e0 + 5200: 200003d4 .long 0x200003d4 + 5204: 00007e0f .long 0x00007e0f + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00005208 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 5208: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 520a: 106a lrw r3, 0x200003d4 // 5230 + 520c: 8342 ld.b r2, (r3, 0x2) + 520e: 748a sextb r2, r2 + 5210: 3adf btsti r2, 31 + 5212: 0c0b bf 0x5228 // 5228 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 5214: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 5216: 3a10 cmphsi r2, 17 + 5218: 0c09 bf 0x522a // 522a + { + TemSet--; //超过最低温度,就减 + 521a: 2a00 subi r2, 1 + 521c: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 521e: 1026 lrw r1, 0x7e16 // 5234 + 5220: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 5222: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 5224: e3fff494 bsr 0x3b4c // 3b4c +} + 5228: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 522a: 3210 movi r2, 16 + 522c: 07f9 br 0x521e // 521e + 522e: 0000 bkpt + 5230: 200003d4 .long 0x200003d4 + 5234: 00007e16 .long 0x00007e16 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00005238 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 5238: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 523a: 106a lrw r3, 0x200003d4 // 5260 + 523c: 8342 ld.b r2, (r3, 0x2) + 523e: 748a sextb r2, r2 + 5240: 3adf btsti r2, 31 + 5242: 0c0b bf 0x5258 // 5258 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 5244: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 5246: 3a1f cmphsi r2, 32 + 5248: 0809 bt 0x525a // 525a + { + TemSet++; + 524a: 2200 addi r2, 1 + 524c: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 524e: 1026 lrw r1, 0x7e1f // 5264 + 5250: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 5252: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 5254: e3fff47c bsr 0x3b4c // 3b4c +} + 5258: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 525a: 3220 movi r2, 32 + 525c: 07f9 br 0x524e // 524e + 525e: 0000 bkpt + 5260: 200003d4 .long 0x200003d4 + 5264: 00007e1f .long 0x00007e1f + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00005268 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 5268: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 526a: 104b lrw r2, 0x200003d4 // 5294 + 526c: 8262 ld.b r3, (r2, 0x2) + 526e: 4b27 lsri r1, r3, 7 + 5270: 3940 cmpnei r1, 0 + 5272: 0c0d bf 0x528c // 528c + 5274: 3941 cmpnei r1, 1 + 5276: 080b bt 0x528c // 528c + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 5278: 317f movi r1, 127 + 527a: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 527c: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 527e: 8242 ld.b r2, (r2, 0x2) + 5280: 4a47 lsri r2, r2, 7 + 5282: 1026 lrw r1, 0x7e1f // 5298 + 5284: 3000 movi r0, 0 + 5286: e3fff463 bsr 0x3b4c // 3b4c +} + 528a: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 528c: 3100 movi r1, 0 + 528e: 297f subi r1, 128 + 5290: 6cc4 or r3, r1 + 5292: 07f5 br 0x527c // 527c + 5294: 200003d4 .long 0x200003d4 + 5298: 00007e1f .long 0x00007e1f + +Disassembly of section .text.Tem_Valve_Ctrl: + +0000529c : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 529c: 14d2 push r4-r5, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 529e: 1285 lrw r4, 0x200003d4 // 53b0 + 52a0: 8420 ld.b r1, (r4, 0x0) + 52a2: 3940 cmpnei r1, 0 + 52a4: 0802 bt 0x52a8 // 52a8 + 52a6: 3120 movi r1, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 52a8: 8441 ld.b r2, (r4, 0x1) + 52aa: 3a40 cmpnei r2, 0 + 52ac: 0802 bt 0x52b0 // 52b0 + 52ae: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 52b0: 8462 ld.b r3, (r4, 0x2) + 52b2: 4b07 lsri r0, r3, 7 + 52b4: 3840 cmpnei r0, 0 + 52b6: 0c41 bf 0x5338 // 5338 + 52b8: 3841 cmpnei r0, 1 + 52ba: 083b bt 0x5330 // 5330 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 52bc: 4319 lsli r0, r3, 25 + 52be: 481d lsri r0, r0, 29 + 52c0: 3842 cmpnei r0, 2 + 52c2: 0c38 bf 0x5332 // 5332 + 52c4: 3844 cmpnei r0, 4 + 52c6: 0c5e bf 0x5382 // 5382 + 52c8: 3840 cmpnei r0, 0 + 52ca: 0833 bt 0x5330 // 5330 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 52cc: 5a03 subi r0, r2, 1 + 52ce: 6405 cmplt r1, r0 + 52d0: 0c09 bf 0x52e2 // 52e2 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52d2: 3b80 bclri r3, 0 + 52d4: a462 st.b r3, (r4, 0x2) + { + RLY2_COLD_OPEN; + RLY1_HOT_OPEN; +// Dbg_Println(DBG_BIT_SYS_STATUS,"cold on pipe 2"); + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + RLY2_COLD_CLOSE; + 52d6: 11b8 lrw r5, 0x2000004c // 53b4 + 52d8: 310f movi r1, 15 + 52da: 9500 ld.w r0, (r5, 0x0) + 52dc: e3ffe5e2 bsr 0x1ea0 // 1ea0 + 52e0: 040f br 0x52fe // 52fe + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 52e2: 2200 addi r2, 1 + 52e4: 6449 cmplt r2, r1 + 52e6: 0c25 bf 0x5330 // 5330 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 52e8: 3ba0 bseti r3, 0 + 52ea: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 52ec: 1173 lrw r3, 0x20000350 // 53b8 + 52ee: 8361 ld.b r3, (r3, 0x1) + 52f0: 3b41 cmpnei r3, 1 + 52f2: 083c bt 0x536a // 536a + RLY2_COLD_OPEN; + 52f4: 11b0 lrw r5, 0x2000004c // 53b4 + 52f6: 310f movi r1, 15 + 52f8: 9500 ld.w r0, (r5, 0x0) + 52fa: e3ffe5cf bsr 0x1e98 // 1e98 + RLY1_HOT_CLOSE; + 52fe: 9500 ld.w r0, (r5, 0x0) + 5300: 310e movi r1, 14 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 5302: e3ffe5cf bsr 0x1ea0 // 1ea0 + 5306: 0403 br 0x530c // 530c + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 5308: 3b42 cmpnei r3, 2 + 530a: 0fe6 bf 0x52d6 // 52d6 + if (detect_inf.control_model != 0x00){ + 530c: 116c lrw r3, 0x200003cc // 53bc + 530e: 8363 ld.b r3, (r3, 0x3) + 5310: 3b40 cmpnei r3, 0 + 5312: 0c0f bf 0x5330 // 5330 + if(rf_info.valve_state_last != TempCtrl.TemState_Now.valve) + 5314: 8462 ld.b r3, (r4, 0x2) + 5316: 437f lsli r3, r3, 31 + 5318: 4b7f lsri r3, r3, 31 + 531a: 114a lrw r2, 0x200005a0 // 53c0 + 531c: 744c zextb r1, r3 + 531e: 8202 ld.b r0, (r2, 0x2) + 5320: 6442 cmpne r0, r1 + 5322: 0c07 bf 0x5330 // 5330 + { + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + rf_info.valve_flag = 0x01; + 5324: 3100 movi r1, 0 + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + 5326: a262 st.b r3, (r2, 0x2) + rf_info.valve_flag = 0x01; + 5328: 297f subi r1, 128 + 532a: 8261 ld.b r3, (r2, 0x1) + 532c: 6cc4 or r3, r1 + 532e: a261 st.b r3, (r2, 0x1) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 5330: 1492 pop r4-r5, r15 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5332: 5a02 addi r0, r2, 1 + 5334: 6441 cmplt r0, r1 + 5336: 0c09 bf 0x5348 // 5348 + RLY1_HOT_CLOSE; + 5338: 10bf lrw r5, 0x2000004c // 53b4 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 533a: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 533c: 310e movi r1, 14 + 533e: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5340: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 5342: e3ffe5af bsr 0x1ea0 // 1ea0 + 5346: 040f br 0x5364 // 5364 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 5348: 2a00 subi r2, 1 + 534a: 6485 cmplt r1, r2 + 534c: 0ff2 bf 0x5330 // 5330 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 534e: 3ba0 bseti r3, 0 + 5350: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 5352: 107a lrw r3, 0x20000350 // 53b8 + 5354: 8361 ld.b r3, (r3, 0x1) + 5356: 3b41 cmpnei r3, 1 + 5358: 0809 bt 0x536a // 536a + RLY1_HOT_OPEN; + 535a: 10b7 lrw r5, 0x2000004c // 53b4 + 535c: 310e movi r1, 14 + 535e: 9500 ld.w r0, (r5, 0x0) + 5360: e3ffe59c bsr 0x1e98 // 1e98 + RLY2_COLD_CLOSE; + 5364: 9500 ld.w r0, (r5, 0x0) + 5366: 310f movi r1, 15 + 5368: 07cd br 0x5302 // 5302 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 536a: 3b40 cmpnei r3, 0 + 536c: 0bce bt 0x5308 // 5308 + RLY2_COLD_OPEN; + 536e: 10b2 lrw r5, 0x2000004c // 53b4 + 5370: 310f movi r1, 15 + 5372: 9500 ld.w r0, (r5, 0x0) + 5374: e3ffe592 bsr 0x1e98 // 1e98 + RLY1_HOT_OPEN; + 5378: 9500 ld.w r0, (r5, 0x0) + 537a: 310e movi r1, 14 + 537c: e3ffe58e bsr 0x1e98 // 1e98 + 5380: 07c6 br 0x530c // 530c + RLY1_HOT_CLOSE; + 5382: 10ad lrw r5, 0x2000004c // 53b4 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5384: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 5386: 310e movi r1, 14 + 5388: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 538a: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 538c: e3ffe58a bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 5390: 9500 ld.w r0, (r5, 0x0) + 5392: 310f movi r1, 15 + 5394: e3ffe586 bsr 0x1ea0 // 1ea0 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 5398: 1068 lrw r3, 0x20000350 // 53b8 + 539a: 8361 ld.b r3, (r3, 0x1) + 539c: 3b42 cmpnei r3, 2 + 539e: 0bb7 bt 0x530c // 530c + Relay_Stop(); + 53a0: e0000896 bsr 0x64cc // 64cc + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 53a4: 1028 lrw r1, 0x7e2d // 53c4 + 53a6: 3000 movi r0, 0 + 53a8: e3fff3d2 bsr 0x3b4c // 3b4c + 53ac: 07b0 br 0x530c // 530c + 53ae: 0000 bkpt + 53b0: 200003d4 .long 0x200003d4 + 53b4: 2000004c .long 0x2000004c + 53b8: 20000350 .long 0x20000350 + 53bc: 200003cc .long 0x200003cc + 53c0: 200005a0 .long 0x200005a0 + 53c4: 00007e2d .long 0x00007e2d + +Disassembly of section .text.TemCtrl_Pro: + +000053c8 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 53c8: 14d1 push r4, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 53ca: 1117 lrw r0, 0x200000b8 // 54a4 + 53cc: 1137 lrw r1, 0x200000d4 // 54a8 + 53ce: 9040 ld.w r2, (r0, 0x0) + 53d0: 9160 ld.w r3, (r1, 0x0) + 53d2: 608e subu r2, r3 + 53d4: 33fa movi r3, 250 + 53d6: 4362 lsli r3, r3, 2 + 53d8: 648c cmphs r3, r2 + 53da: 0833 bt 0x5440 // 5440 + { + tick = SysTick_1ms; + 53dc: 9060 ld.w r3, (r0, 0x0) + 53de: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 53e0: e3fffaca bsr 0x4974 // 4974 + 53e4: 1172 lrw r3, 0x20000350 // 54ac + 53e6: 8362 ld.b r3, (r3, 0x2) + 53e8: 320a movi r2, 10 + 53ea: 7cc8 mult r3, r2 + 53ec: 2b59 subi r3, 90 + 53ee: 600c addu r0, r3 + 53f0: 7401 zexth r0, r0 + 53f2: 1190 lrw r4, 0x200003d4 // 54b0 + 53f4: 7480 zextb r2, r0 + 53f6: 4868 lsri r3, r0, 8 + 53f8: a448 st.b r2, (r4, 0x8) + 53fa: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 53fc: a44c st.b r2, (r4, 0xc) + 53fe: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 5400: 310a movi r1, 10 + 5402: e3fff231 bsr 0x3864 // 3864 <__udivsi3> + 5406: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 5408: e3ffff4a bsr 0x529c // 529c + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 540c: 8462 ld.b r3, (r4, 0x2) + 540e: 3271 movi r2, 113 + 5410: 6c4f mov r1, r3 + 5412: 6849 andn r1, r2 + 5414: 3280 movi r2, 128 + 5416: 6486 cmpne r1, r2 + 5418: 083f bt 0x5496 // 5496 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 541a: 3270 movi r2, 112 + 541c: 68c8 and r3, r2 + 541e: 3b40 cmpnei r3, 0 + 5420: 0829 bt 0x5472 // 5472 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5422: 8461 ld.b r3, (r4, 0x1) + 5424: 8440 ld.b r2, (r4, 0x0) + 5426: 5b27 subi r1, r3, 2 + 5428: 6449 cmplt r2, r1 + 542a: 0c0c bf 0x5442 // 5442 + { + Relay_Stop(); //风速停 + 542c: e0000850 bsr 0x64cc // 64cc + HT1621.wind_velocity = 0; + 5430: 1161 lrw r3, 0x20000390 // 54b4 + 5432: 3200 movi r2, 0 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 1; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5434: 8402 ld.b r0, (r4, 0x2) + 5436: 401c lsli r0, r0, 28 + 5438: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 1; + 543a: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 543c: e3fffc3c bsr 0x4cb4 // 4cb4 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 5440: 1491 pop r4, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5442: 5b23 subi r1, r3, 1 + 5444: 644a cmpne r2, r1 + 5446: 0806 bt 0x5452 // 5452 + Relay_Low(); //低风速 + 5448: e0000830 bsr 0x64a8 // 64a8 + HT1621.wind_velocity = 1; + 544c: 107a lrw r3, 0x20000390 // 54b4 + 544e: 3201 movi r2, 1 + 5450: 07f2 br 0x5434 // 5434 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5452: 5b22 addi r1, r3, 1 + 5454: 644a cmpne r2, r1 + 5456: 0806 bt 0x5462 // 5462 + Relay_Mid(); //中风速 + 5458: e0000816 bsr 0x6484 // 6484 + HT1621.wind_velocity = 2; + 545c: 1076 lrw r3, 0x20000390 // 54b4 + 545e: 3202 movi r2, 2 + 5460: 07ea br 0x5434 // 5434 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5462: 2301 addi r3, 2 + 5464: 648d cmplt r3, r2 + 5466: 0fed bf 0x5440 // 5440 + Relay_High(); //高风速 + 5468: e00007fc bsr 0x6460 // 6460 + HT1621.wind_velocity = 3; + 546c: 1072 lrw r3, 0x20000390 // 54b4 + 546e: 3203 movi r2, 3 + 5470: 07e2 br 0x5434 // 5434 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 5472: 3220 movi r2, 32 + 5474: 648e cmpne r3, r2 + 5476: 0be5 bt 0x5440 // 5440 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5478: 8461 ld.b r3, (r4, 0x1) + 547a: 8440 ld.b r2, (r4, 0x0) + 547c: 5b27 subi r1, r3, 2 + 547e: 6449 cmplt r2, r1 + 5480: 0bf4 bt 0x5468 // 5468 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5482: 5b23 subi r1, r3, 1 + 5484: 644a cmpne r2, r1 + 5486: 0fe9 bf 0x5458 // 5458 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5488: 5b22 addi r1, r3, 1 + 548a: 644a cmpne r2, r1 + 548c: 0fde bf 0x5448 // 5448 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 548e: 2301 addi r3, 2 + 5490: 648d cmplt r3, r2 + 5492: 0fd7 bf 0x5440 // 5440 + 5494: 07cc br 0x542c // 542c + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5496: 74ce sextb r3, r3 + 5498: 3bdf btsti r3, 31 + 549a: 0bd3 bt 0x5440 // 5440 + Relay_Stop(); //风速停 + 549c: e0000818 bsr 0x64cc // 64cc + 54a0: 07d0 br 0x5440 // 5440 + 54a2: 0000 bkpt + 54a4: 200000b8 .long 0x200000b8 + 54a8: 200000d4 .long 0x200000d4 + 54ac: 20000350 .long 0x20000350 + 54b0: 200003d4 .long 0x200003d4 + 54b4: 20000390 .long 0x20000390 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +000054b8 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 54b8: 14d2 push r4-r5, r15 + 54ba: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 54bc: 1131 lrw r1, 0x7e36 // 5580 + 54be: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 54c0: 1191 lrw r4, 0x200003f3 // 5584 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 54c2: e3fff345 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 54c6: 8460 ld.b r3, (r4, 0x0) + 54c8: 3b41 cmpnei r3, 1 + 54ca: 11b0 lrw r5, 0x200000b8 // 5588 + 54cc: 082e bt 0x5528 // 5528 + { + Debug_Inf.Tick = SysTick_1ms; + 54ce: 9560 ld.w r3, (r5, 0x0) + 54d0: 4b48 lsri r2, r3, 8 + 54d2: a468 st.b r3, (r4, 0x8) + 54d4: a449 st.b r2, (r4, 0x9) + 54d6: 4b50 lsri r2, r3, 16 + 54d8: 4b78 lsri r3, r3, 24 + 54da: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page < PAGE5ID) + 54dc: 8462 ld.b r3, (r4, 0x2) + 54de: 3b04 cmphsi r3, 5 + Debug_Inf.Tick = SysTick_1ms; + 54e0: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page < PAGE5ID) + 54e2: 0803 bt 0x54e8 // 54e8 + { + Debug_Inf.Page++; + 54e4: 2300 addi r3, 1 + 54e6: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 54e8: e3fffad0 bsr 0x4a88 // 4a88 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 54ec: 8462 ld.b r3, (r4, 0x2) + 54ee: 3b42 cmpnei r3, 2 + 54f0: 0806 bt 0x54fc // 54fc + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 54f2: 8405 ld.b r0, (r4, 0x5) + 54f4: e3fffcce bsr 0x4e90 // 4e90 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 54f8: 1401 addi r14, r14, 4 + 54fa: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 54fc: 3b41 cmpnei r3, 1 + 54fe: 0806 bt 0x550a // 550a + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5500: 8424 ld.b r1, (r4, 0x4) + 5502: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5504: e3fffc7a bsr 0x4df8 // 4df8 + 5508: 07f8 br 0x54f8 // 54f8 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 550a: 3b43 cmpnei r3, 3 + 550c: 0804 bt 0x5514 // 5514 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 550e: 8426 ld.b r1, (r4, 0x6) + 5510: 3003 movi r0, 3 + 5512: 07f9 br 0x5504 // 5504 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 5514: 3b44 cmpnei r3, 4 + 5516: 0804 bt 0x551e // 551e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 5518: 8427 ld.b r1, (r4, 0x7) + 551a: 3004 movi r0, 4 + 551c: 07f4 br 0x5504 // 5504 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 551e: 3b45 cmpnei r3, 5 + 5520: 0bec bt 0x54f8 // 54f8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5522: 8423 ld.b r1, (r4, 0x3) + 5524: 3005 movi r0, 5 + 5526: 07ef br 0x5504 // 5504 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 5528: 1099 lrw r4, 0x200003d4 // 558c + 552a: 8478 ld.b r3, (r4, 0x18) + 552c: 3b41 cmpnei r3, 1 + 552e: 081f bt 0x556c // 556c + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5530: 8462 ld.b r3, (r4, 0x2) + 5532: 74ce sextb r3, r3 + 5534: 3bdf btsti r3, 31 + 5536: 0c1b bf 0x556c // 556c + TemCtrl_Model_Set(); //模式切换 + 5538: e3fffe1c bsr 0x5170 // 5170 + if (detect_inf.control_model != 0x00){ + 553c: 1075 lrw r3, 0x200003cc // 5590 + 553e: 8363 ld.b r3, (r3, 0x3) + 5540: 3b40 cmpnei r3, 0 + 5542: 0c0e bf 0x555e // 555e + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5544: 1074 lrw r3, 0x200005a0 // 5594 + 5546: 8340 ld.b r2, (r3, 0x0) + 5548: 3a41 cmpnei r2, 1 + 554a: 080a bt 0x555e // 555e + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,ACTIVE); + 554c: 8462 ld.b r3, (r4, 0x2) + 554e: 4379 lsli r3, r3, 25 + 5550: b840 st.w r2, (r14, 0x0) + 5552: 4b7d lsri r3, r3, 29 + 5554: 3204 movi r2, 4 + 5556: 3102 movi r1, 2 + 5558: 3005 movi r0, 5 + 555a: e0000595 bsr 0x6084 // 6084 + if(g_eeprom.backlight_en == 0x01) + 555e: 106f lrw r3, 0x20000350 // 5598 + 5560: 8364 ld.b r3, (r3, 0x4) + 5562: 3b41 cmpnei r3, 1 + 5564: 0804 bt 0x556c // 556c + Controlled_LCD_Backlight(1); + 5566: 3001 movi r0, 1 + 5568: e3fffc24 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 556c: 9560 ld.w r3, (r5, 0x0) + 556e: 4b48 lsri r2, r3, 8 + 5570: a470 st.b r3, (r4, 0x10) + 5572: a451 st.b r2, (r4, 0x11) + 5574: 4b50 lsri r2, r3, 16 + 5576: 4b78 lsri r3, r3, 24 + 5578: a452 st.b r2, (r4, 0x12) + 557a: a473 st.b r3, (r4, 0x13) +} + 557c: 07be br 0x54f8 // 54f8 + 557e: 0000 bkpt + 5580: 00007e36 .long 0x00007e36 + 5584: 200003f3 .long 0x200003f3 + 5588: 200000b8 .long 0x200000b8 + 558c: 200003d4 .long 0x200003d4 + 5590: 200003cc .long 0x200003cc + 5594: 200005a0 .long 0x200005a0 + 5598: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +0000559c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 559c: 14d2 push r4-r5, r15 + 559e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 55a0: 1131 lrw r1, 0x7e4b // 5664 + 55a2: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 55a4: 1191 lrw r4, 0x200003f3 // 5668 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 55a6: e3fff2d3 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 55aa: 8460 ld.b r3, (r4, 0x0) + 55ac: 3b41 cmpnei r3, 1 + 55ae: 11b0 lrw r5, 0x200000b8 // 566c + 55b0: 082e bt 0x560c // 560c + { + Debug_Inf.Tick = SysTick_1ms; + 55b2: 9560 ld.w r3, (r5, 0x0) + 55b4: 4b48 lsri r2, r3, 8 + 55b6: a468 st.b r3, (r4, 0x8) + 55b8: a449 st.b r2, (r4, 0x9) + 55ba: 4b50 lsri r2, r3, 16 + 55bc: 4b78 lsri r3, r3, 24 + 55be: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page > PAGE1ID) + 55c0: 8462 ld.b r3, (r4, 0x2) + 55c2: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 55c4: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page > PAGE1ID) + 55c6: 0c03 bf 0x55cc // 55cc + { + Debug_Inf.Page--; + 55c8: 2b00 subi r3, 1 + 55ca: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 55cc: e3fffa5e bsr 0x4a88 // 4a88 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 55d0: 8462 ld.b r3, (r4, 0x2) + 55d2: 3b42 cmpnei r3, 2 + 55d4: 0806 bt 0x55e0 // 55e0 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 55d6: 8405 ld.b r0, (r4, 0x5) + 55d8: e3fffc5c bsr 0x4e90 // 4e90 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 55dc: 1401 addi r14, r14, 4 + 55de: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 55e0: 3b41 cmpnei r3, 1 + 55e2: 0806 bt 0x55ee // 55ee + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 55e4: 8424 ld.b r1, (r4, 0x4) + 55e6: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 55e8: e3fffc08 bsr 0x4df8 // 4df8 + 55ec: 07f8 br 0x55dc // 55dc + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 55ee: 3b43 cmpnei r3, 3 + 55f0: 0804 bt 0x55f8 // 55f8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 55f2: 8426 ld.b r1, (r4, 0x6) + 55f4: 3003 movi r0, 3 + 55f6: 07f9 br 0x55e8 // 55e8 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 55f8: 3b44 cmpnei r3, 4 + 55fa: 0804 bt 0x5602 // 5602 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 55fc: 8427 ld.b r1, (r4, 0x7) + 55fe: 3004 movi r0, 4 + 5600: 07f4 br 0x55e8 // 55e8 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 5602: 3b45 cmpnei r3, 5 + 5604: 0bec bt 0x55dc // 55dc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5606: 8423 ld.b r1, (r4, 0x3) + 5608: 3005 movi r0, 5 + 560a: 07ef br 0x55e8 // 55e8 + if(TempCtrl.CardState == CARDIN) + 560c: 1099 lrw r4, 0x200003d4 // 5670 + 560e: 8478 ld.b r3, (r4, 0x18) + 5610: 3b41 cmpnei r3, 1 + 5612: 081f bt 0x5650 // 5650 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5614: 8462 ld.b r3, (r4, 0x2) + 5616: 74ce sextb r3, r3 + 5618: 3bdf btsti r3, 31 + 561a: 0c1b bf 0x5650 // 5650 + TemCtrl_Fan_Set(); //风速切换 + 561c: e3fffdd0 bsr 0x51bc // 51bc + if (detect_inf.control_model != 0x00){ + 5620: 1075 lrw r3, 0x200003cc // 5674 + 5622: 8363 ld.b r3, (r3, 0x3) + 5624: 3b40 cmpnei r3, 0 + 5626: 0c0e bf 0x5642 // 5642 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5628: 1074 lrw r3, 0x200005a0 // 5678 + 562a: 8340 ld.b r2, (r3, 0x0) + 562c: 3a41 cmpnei r2, 1 + 562e: 080a bt 0x5642 // 5642 + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,ACTIVE); + 5630: 8462 ld.b r3, (r4, 0x2) + 5632: 437c lsli r3, r3, 28 + 5634: b840 st.w r2, (r14, 0x0) + 5636: 4b7d lsri r3, r3, 29 + 5638: 3204 movi r2, 4 + 563a: 3140 movi r1, 64 + 563c: 3005 movi r0, 5 + 563e: e0000523 bsr 0x6084 // 6084 + if(g_eeprom.backlight_en == 0x01) + 5642: 106f lrw r3, 0x20000350 // 567c + 5644: 8364 ld.b r3, (r3, 0x4) + 5646: 3b41 cmpnei r3, 1 + 5648: 0804 bt 0x5650 // 5650 + Controlled_LCD_Backlight(1); + 564a: 3001 movi r0, 1 + 564c: e3fffbb2 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 5650: 9560 ld.w r3, (r5, 0x0) + 5652: 4b48 lsri r2, r3, 8 + 5654: a470 st.b r3, (r4, 0x10) + 5656: a451 st.b r2, (r4, 0x11) + 5658: 4b50 lsri r2, r3, 16 + 565a: 4b78 lsri r3, r3, 24 + 565c: a452 st.b r2, (r4, 0x12) + 565e: a473 st.b r3, (r4, 0x13) +} + 5660: 07be br 0x55dc // 55dc + 5662: 0000 bkpt + 5664: 00007e4b .long 0x00007e4b + 5668: 200003f3 .long 0x200003f3 + 566c: 200000b8 .long 0x200000b8 + 5670: 200003d4 .long 0x200003d4 + 5674: 200003cc .long 0x200003cc + 5678: 200005a0 .long 0x200005a0 + 567c: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00005680 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 5680: 14d2 push r4-r5, r15 + 5682: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 5684: 1139 lrw r1, 0x7e5e // 5768 + 5686: 3000 movi r0, 0 + 5688: e3fff262 bsr 0x3b4c // 3b4c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 568c: 1178 lrw r3, 0x200003f3 // 576c + 568e: 8340 ld.b r2, (r3, 0x0) + 5690: 3a41 cmpnei r2, 1 + 5692: 11b8 lrw r5, 0x200000b8 // 5770 + 5694: 083e bt 0x5710 // 5710 + { + Debug_Inf.Tick = SysTick_1ms; + 5696: 9540 ld.w r2, (r5, 0x0) + 5698: 4a28 lsri r1, r2, 8 + 569a: a348 st.b r2, (r3, 0x8) + 569c: a329 st.b r1, (r3, 0x9) + 569e: 4a30 lsri r1, r2, 16 + 56a0: 4a58 lsri r2, r2, 24 + 56a2: a34b st.b r2, (r3, 0xb) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 56a4: 8342 ld.b r2, (r3, 0x2) + 56a6: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 56a8: a32a st.b r1, (r3, 0xa) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 56aa: 080b bt 0x56c0 // 56c0 + 56ac: 8324 ld.b r1, (r3, 0x4) + 56ae: 3901 cmphsi r1, 2 + 56b0: 0812 bt 0x56d4 // 56d4 + { + Debug_Inf.PipeFlag ++; + 56b2: 2100 addi r1, 1 + 56b4: 7444 zextb r1, r1 + 56b6: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 56b8: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr++; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 56ba: e3fffb9f bsr 0x4df8 // 4df8 + 56be: 040b br 0x56d4 // 56d4 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 56c0: 3a42 cmpnei r2, 2 + 56c2: 080b bt 0x56d8 // 56d8 + 56c4: 8305 ld.b r0, (r3, 0x5) + 56c6: 3811 cmphsi r0, 18 + 56c8: 0806 bt 0x56d4 // 56d4 + Debug_Inf.TempDiff++; + 56ca: 2000 addi r0, 1 + 56cc: 7400 zextb r0, r0 + 56ce: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 56d0: e3fffbe0 bsr 0x4e90 // 4e90 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 56d4: 1401 addi r14, r14, 4 + 56d6: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 56d8: 3a43 cmpnei r2, 3 + 56da: 0806 bt 0x56e6 // 56e6 + Debug_Inf.BackLight_En = 0x01; + 56dc: 3201 movi r2, 1 + 56de: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 56e0: 3101 movi r1, 1 + 56e2: 3003 movi r0, 3 + 56e4: 07eb br 0x56ba // 56ba + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 56e6: 3a44 cmpnei r2, 4 + 56e8: 0809 bt 0x56fa // 56fa + 56ea: 8327 ld.b r1, (r3, 0x7) + 56ec: 3901 cmphsi r1, 2 + 56ee: 0bf3 bt 0x56d4 // 56d4 + Debug_Inf.KSens_Level++; + 56f0: 2100 addi r1, 1 + 56f2: 7444 zextb r1, r1 + 56f4: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 56f6: 3004 movi r0, 4 + 56f8: 07e1 br 0x56ba // 56ba + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + 56fa: 3a45 cmpnei r2, 5 + 56fc: 0bec bt 0x56d4 // 56d4 + 56fe: 8323 ld.b r1, (r3, 0x3) + 5700: 32ff movi r2, 255 + 5702: 6486 cmpne r1, r2 + 5704: 0fe8 bf 0x56d4 // 56d4 + Debug_Inf.DevAddr++; //刷新地址 + 5706: 2100 addi r1, 1 + 5708: 7444 zextb r1, r1 + 570a: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 570c: 3005 movi r0, 5 + 570e: 07d6 br 0x56ba // 56ba + if(TempCtrl.CardState == CARDIN) + 5710: 1099 lrw r4, 0x200003d4 // 5774 + 5712: 8478 ld.b r3, (r4, 0x18) + 5714: 3b41 cmpnei r3, 1 + 5716: 081f bt 0x5754 // 5754 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5718: 8462 ld.b r3, (r4, 0x2) + 571a: 74ce sextb r3, r3 + 571c: 3bdf btsti r3, 31 + 571e: 0c1b bf 0x5754 // 5754 + TemCtrl_Temperature_Add(); //设置温度+ + 5720: e3fffd8c bsr 0x5238 // 5238 + if (detect_inf.control_model != 0x00){ + 5724: 1075 lrw r3, 0x200003cc // 5778 + 5726: 8363 ld.b r3, (r3, 0x3) + 5728: 3b40 cmpnei r3, 0 + 572a: 0c0e bf 0x5746 // 5746 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 572c: 1074 lrw r3, 0x200005a0 // 577c + 572e: 8340 ld.b r2, (r3, 0x0) + 5730: 3a41 cmpnei r2, 1 + 5732: 080a bt 0x5746 // 5746 + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 5734: 310a movi r1, 10 + 5736: 8461 ld.b r3, (r4, 0x1) + 5738: 7cc4 mult r3, r1 + 573a: b840 st.w r2, (r14, 0x0) + 573c: 3110 movi r1, 16 + 573e: 3202 movi r2, 2 + 5740: 3008 movi r0, 8 + 5742: e00004a1 bsr 0x6084 // 6084 + if(g_eeprom.backlight_en == 0x01) + 5746: 106f lrw r3, 0x20000350 // 5780 + 5748: 8364 ld.b r3, (r3, 0x4) + 574a: 3b41 cmpnei r3, 1 + 574c: 0804 bt 0x5754 // 5754 + Controlled_LCD_Backlight(1); + 574e: 3001 movi r0, 1 + 5750: e3fffb30 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 5754: 9560 ld.w r3, (r5, 0x0) + 5756: 4b48 lsri r2, r3, 8 + 5758: a470 st.b r3, (r4, 0x10) + 575a: a451 st.b r2, (r4, 0x11) + 575c: 4b50 lsri r2, r3, 16 + 575e: 4b78 lsri r3, r3, 24 + 5760: a452 st.b r2, (r4, 0x12) + 5762: a473 st.b r3, (r4, 0x13) +} + 5764: 07b8 br 0x56d4 // 56d4 + 5766: 0000 bkpt + 5768: 00007e5e .long 0x00007e5e + 576c: 200003f3 .long 0x200003f3 + 5770: 200000b8 .long 0x200000b8 + 5774: 200003d4 .long 0x200003d4 + 5778: 200003cc .long 0x200003cc + 577c: 200005a0 .long 0x200005a0 + 5780: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00005784 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 5784: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 5786: 1097 lrw r4, 0x200003f3 // 57e0 + 5788: 8460 ld.b r3, (r4, 0x0) + 578a: 3b40 cmpnei r3, 0 + 578c: 0828 bt 0x57dc // 57dc + { + Debug_Inf.Press_Flag |= (0x01<<0); + 578e: 8461 ld.b r3, (r4, 0x1) + 5790: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5792: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 5794: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5796: 0823 bt 0x57dc // 57dc + 5798: 1073 lrw r3, 0x200003d4 // 57e4 + 579a: 8362 ld.b r3, (r3, 0x2) + 579c: 74ce sextb r3, r3 + 579e: 3bdf btsti r3, 31 + 57a0: 081e bt 0x57dc // 57dc + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 57a2: 1032 lrw r1, 0x7e75 // 57e8 + 57a4: 3000 movi r0, 0 + 57a6: e3fff1d3 bsr 0x3b4c // 3b4c + Debug_Inf.Tick = SysTick_1ms; + 57aa: 1071 lrw r3, 0x200000b8 // 57ec + 57ac: 9360 ld.w r3, (r3, 0x0) + 57ae: 4b48 lsri r2, r3, 8 + 57b0: a468 st.b r3, (r4, 0x8) + 57b2: a449 st.b r2, (r4, 0x9) + 57b4: 4b50 lsri r2, r3, 16 + 57b6: 4b78 lsri r3, r3, 24 + 57b8: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 57ba: 3300 movi r3, 0 + 57bc: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 57be: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 57c0: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 57c2: a460 st.b r3, (r4, 0x0) + HT1621_Clear(); + 57c4: e3fff962 bsr 0x4a88 // 4a88 + Controlled_LCD_Backlight(0x01); + 57c8: 3001 movi r0, 1 + 57ca: e3fffaf3 bsr 0x4db0 // 4db0 + Controlled_Buzzer(0x01); + 57ce: 3001 movi r0, 1 + 57d0: e3fffacc bsr 0x4d68 // 4d68 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 57d4: 8424 ld.b r1, (r4, 0x4) + 57d6: 3001 movi r0, 1 + 57d8: e3fffb10 bsr 0x4df8 // 4df8 + + } + } + +} + 57dc: 1491 pop r4, r15 + 57de: 0000 bkpt + 57e0: 200003f3 .long 0x200003f3 + 57e4: 200003d4 .long 0x200003d4 + 57e8: 00007e75 .long 0x00007e75 + 57ec: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +000057f0 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 57f0: 14d2 push r4-r5, r15 + 57f2: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 57f4: 1138 lrw r1, 0x7e7e // 58d4 + 57f6: 3000 movi r0, 0 + 57f8: e3fff1aa bsr 0x3b4c // 3b4c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 57fc: 1177 lrw r3, 0x200003f3 // 58d8 + 57fe: 8340 ld.b r2, (r3, 0x0) + 5800: 3a41 cmpnei r2, 1 + 5802: 11b7 lrw r5, 0x200000b8 // 58dc + 5804: 083d bt 0x587e // 587e + { + Debug_Inf.Tick = SysTick_1ms; + 5806: 9540 ld.w r2, (r5, 0x0) + 5808: 4a28 lsri r1, r2, 8 + 580a: a348 st.b r2, (r3, 0x8) + 580c: a329 st.b r1, (r3, 0x9) + 580e: 4a30 lsri r1, r2, 16 + 5810: 4a58 lsri r2, r2, 24 + 5812: a34b st.b r2, (r3, 0xb) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 5814: 8342 ld.b r2, (r3, 0x2) + 5816: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5818: a32a st.b r1, (r3, 0xa) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 581a: 080b bt 0x5830 // 5830 + 581c: 8324 ld.b r1, (r3, 0x4) + 581e: 3940 cmpnei r1, 0 + 5820: 0c12 bf 0x5844 // 5844 + { + Debug_Inf.PipeFlag --; + 5822: 2900 subi r1, 1 + 5824: 7444 zextb r1, r1 + 5826: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5828: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr--; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 582a: e3fffae7 bsr 0x4df8 // 4df8 + 582e: 040b br 0x5844 // 5844 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 5830: 3a42 cmpnei r2, 2 + 5832: 080b bt 0x5848 // 5848 + 5834: 8305 ld.b r0, (r3, 0x5) + 5836: 3840 cmpnei r0, 0 + 5838: 0c06 bf 0x5844 // 5844 + Debug_Inf.TempDiff--; + 583a: 2800 subi r0, 1 + 583c: 7400 zextb r0, r0 + 583e: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5840: e3fffb28 bsr 0x4e90 // 4e90 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 5844: 1401 addi r14, r14, 4 + 5846: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 5848: 3a43 cmpnei r2, 3 + 584a: 0806 bt 0x5856 // 5856 + Debug_Inf.BackLight_En = 0x00; + 584c: 3200 movi r2, 0 + 584e: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5850: 3100 movi r1, 0 + 5852: 3003 movi r0, 3 + 5854: 07eb br 0x582a // 582a + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 5856: 3a44 cmpnei r2, 4 + 5858: 0809 bt 0x586a // 586a + 585a: 8327 ld.b r1, (r3, 0x7) + 585c: 3940 cmpnei r1, 0 + 585e: 0ff3 bf 0x5844 // 5844 + Debug_Inf.KSens_Level--; + 5860: 2900 subi r1, 1 + 5862: 7444 zextb r1, r1 + 5864: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 5866: 3004 movi r0, 4 + 5868: 07e1 br 0x582a // 582a + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + 586a: 3a45 cmpnei r2, 5 + 586c: 0bec bt 0x5844 // 5844 + 586e: 8323 ld.b r1, (r3, 0x3) + 5870: 3940 cmpnei r1, 0 + 5872: 0fe9 bf 0x5844 // 5844 + Debug_Inf.DevAddr--; //刷新地址 + 5874: 2900 subi r1, 1 + 5876: 7444 zextb r1, r1 + 5878: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 587a: 3005 movi r0, 5 + 587c: 07d7 br 0x582a // 582a + if(TempCtrl.CardState == CARDIN) + 587e: 1099 lrw r4, 0x200003d4 // 58e0 + 5880: 8478 ld.b r3, (r4, 0x18) + 5882: 3b41 cmpnei r3, 1 + 5884: 081f bt 0x58c2 // 58c2 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5886: 8462 ld.b r3, (r4, 0x2) + 5888: 74ce sextb r3, r3 + 588a: 3bdf btsti r3, 31 + 588c: 0c1b bf 0x58c2 // 58c2 + TemCtrl_Temperature_Dec(); //设置温度- + 588e: e3fffcbd bsr 0x5208 // 5208 + if (detect_inf.control_model != 0x00){ + 5892: 1075 lrw r3, 0x200003cc // 58e4 + 5894: 8363 ld.b r3, (r3, 0x3) + 5896: 3b40 cmpnei r3, 0 + 5898: 0c0e bf 0x58b4 // 58b4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 589a: 1074 lrw r3, 0x200005a0 // 58e8 + 589c: 8340 ld.b r2, (r3, 0x0) + 589e: 3a41 cmpnei r2, 1 + 58a0: 080a bt 0x58b4 // 58b4 + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 58a2: 310a movi r1, 10 + 58a4: 8461 ld.b r3, (r4, 0x1) + 58a6: 7cc4 mult r3, r1 + 58a8: b840 st.w r2, (r14, 0x0) + 58aa: 3110 movi r1, 16 + 58ac: 3202 movi r2, 2 + 58ae: 3008 movi r0, 8 + 58b0: e00003ea bsr 0x6084 // 6084 + if(g_eeprom.backlight_en == 0x01) + 58b4: 106e lrw r3, 0x20000350 // 58ec + 58b6: 8364 ld.b r3, (r3, 0x4) + 58b8: 3b41 cmpnei r3, 1 + 58ba: 0804 bt 0x58c2 // 58c2 + Controlled_LCD_Backlight(1); + 58bc: 3001 movi r0, 1 + 58be: e3fffa79 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 58c2: 9560 ld.w r3, (r5, 0x0) + 58c4: 4b48 lsri r2, r3, 8 + 58c6: a470 st.b r3, (r4, 0x10) + 58c8: a451 st.b r2, (r4, 0x11) + 58ca: 4b50 lsri r2, r3, 16 + 58cc: 4b78 lsri r3, r3, 24 + 58ce: a452 st.b r2, (r4, 0x12) + 58d0: a473 st.b r3, (r4, 0x13) +} + 58d2: 07b9 br 0x5844 // 5844 + 58d4: 00007e7e .long 0x00007e7e + 58d8: 200003f3 .long 0x200003f3 + 58dc: 200000b8 .long 0x200000b8 + 58e0: 200003d4 .long 0x200003d4 + 58e4: 200003cc .long 0x200003cc + 58e8: 200005a0 .long 0x200005a0 + 58ec: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY4_Long_Press: + +000058f0 : + +void KEY4_Long_Press(void) +{ + 58f0: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 58f2: 1097 lrw r4, 0x200003f3 // 594c + 58f4: 8460 ld.b r3, (r4, 0x0) + 58f6: 3b40 cmpnei r3, 0 + 58f8: 0828 bt 0x5948 // 5948 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 58fa: 8461 ld.b r3, (r4, 0x1) + 58fc: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 58fe: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 5900: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5902: 0823 bt 0x5948 // 5948 + 5904: 1073 lrw r3, 0x200003d4 // 5950 + 5906: 8362 ld.b r3, (r3, 0x2) + 5908: 74ce sextb r3, r3 + 590a: 3bdf btsti r3, 31 + 590c: 081e bt 0x5948 // 5948 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 590e: 1032 lrw r1, 0x7e75 // 5954 + 5910: 3000 movi r0, 0 + 5912: e3fff11d bsr 0x3b4c // 3b4c + Debug_Inf.Tick = SysTick_1ms; + 5916: 1071 lrw r3, 0x200000b8 // 5958 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Controlled_LCD_Backlight(0x01); + 5918: 3001 movi r0, 1 + Debug_Inf.Tick = SysTick_1ms; + 591a: 9360 ld.w r3, (r3, 0x0) + 591c: 4b48 lsri r2, r3, 8 + 591e: a468 st.b r3, (r4, 0x8) + 5920: a449 st.b r2, (r4, 0x9) + 5922: 4b50 lsri r2, r3, 16 + 5924: 4b78 lsri r3, r3, 24 + 5926: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 5928: 3300 movi r3, 0 + 592a: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 592c: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 592e: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 5930: a460 st.b r3, (r4, 0x0) + Controlled_LCD_Backlight(0x01); + 5932: e3fffa3f bsr 0x4db0 // 4db0 + HT1621_Clear(); + 5936: e3fff8a9 bsr 0x4a88 // 4a88 + Controlled_Buzzer(0x01); + 593a: 3001 movi r0, 1 + 593c: e3fffa16 bsr 0x4d68 // 4d68 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 5940: 8424 ld.b r1, (r4, 0x4) + 5942: 3001 movi r0, 1 + 5944: e3fffa5a bsr 0x4df8 // 4df8 + + } + } +} + 5948: 1491 pop r4, r15 + 594a: 0000 bkpt + 594c: 200003f3 .long 0x200003f3 + 5950: 200003d4 .long 0x200003d4 + 5954: 00007e75 .long 0x00007e75 + 5958: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +0000595c : + + +void KEY5_OnOff_Press_Fun(void) +{ + 595c: 14d1 push r4, r15 + 595e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 5960: 1122 lrw r1, 0x7e95 // 59e8 + 5962: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 5964: 1182 lrw r4, 0x200003f3 // 59ec + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 5966: e3fff0f3 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x00) //正常模式 + 596a: 8460 ld.b r3, (r4, 0x0) + 596c: 3b40 cmpnei r3, 0 + 596e: 082b bt 0x59c4 // 59c4 + { + if(TempCtrl.CardState == CARDIN) + 5970: 1180 lrw r4, 0x200003d4 // 59f0 + 5972: 8478 ld.b r3, (r4, 0x18) + 5974: 3b41 cmpnei r3, 1 + 5976: 081d bt 0x59b0 // 59b0 + { + TemCtrl_OnOff_Set(); + 5978: e3fffc78 bsr 0x5268 // 5268 + + if (detect_inf.control_model != 0x00){ + 597c: 107e lrw r3, 0x200003cc // 59f4 + 597e: 8363 ld.b r3, (r3, 0x3) + 5980: 3b40 cmpnei r3, 0 + 5982: 0c0c bf 0x599a // 599a + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5984: 107d lrw r3, 0x200005a0 // 59f8 + 5986: 8340 ld.b r2, (r3, 0x0) + 5988: 3a41 cmpnei r2, 1 + 598a: 0808 bt 0x599a // 599a + { + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,ACTIVE); + 598c: 8462 ld.b r3, (r4, 0x2) + 598e: 4b67 lsri r3, r3, 7 + 5990: b840 st.w r2, (r14, 0x0) + 5992: 3101 movi r1, 1 + 5994: 3005 movi r0, 5 + 5996: e0000377 bsr 0x6084 // 6084 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 599a: 1079 lrw r3, 0x200000b8 // 59fc + 599c: 9360 ld.w r3, (r3, 0x0) + 599e: 4b48 lsri r2, r3, 8 + 59a0: a470 st.b r3, (r4, 0x10) + 59a2: a451 st.b r2, (r4, 0x11) + 59a4: 4b50 lsri r2, r3, 16 + 59a6: 4b78 lsri r3, r3, 24 + 59a8: a452 st.b r2, (r4, 0x12) + 59aa: a473 st.b r3, (r4, 0x13) + //关背光 + Controlled_LCD_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 59ac: 1401 addi r14, r14, 4 + 59ae: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 59b0: 3001 movi r0, 1 + 59b2: e0000029 bsr 0x5a04 // 5a04 + Controlled_LCD_Backlight(1); + 59b6: 3001 movi r0, 1 + 59b8: e3fff9fc bsr 0x4db0 // 4db0 + Controlled_Key_Backlight(1); + 59bc: 3001 movi r0, 1 + 59be: e3fffa0b bsr 0x4dd4 // 4dd4 + 59c2: 07ec br 0x599a // 599a + else if(Debug_Inf.State == 0x01) //设置模式 + 59c4: 3b41 cmpnei r3, 1 + 59c6: 0bf3 bt 0x59ac // 59ac + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 59c8: 102e lrw r1, 0x7eaa // 5a00 + 59ca: 3000 movi r0, 0 + 59cc: e3fff0c0 bsr 0x3b4c // 3b4c + Debug_Inf.State = 0x00; + 59d0: 3300 movi r3, 0 + 59d2: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 59d4: 3301 movi r3, 1 + 59d6: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 59d8: e3fff858 bsr 0x4a88 // 4a88 + Controlled_LCD_Backlight(0x00); + 59dc: 3000 movi r0, 0 + 59de: e3fff9e9 bsr 0x4db0 // 4db0 + Dev_SaveData(); + 59e2: e00001ed bsr 0x5dbc // 5dbc +} + 59e6: 07e3 br 0x59ac // 59ac + 59e8: 00007e95 .long 0x00007e95 + 59ec: 200003f3 .long 0x200003f3 + 59f0: 200003d4 .long 0x200003d4 + 59f4: 200003cc .long 0x200003cc + 59f8: 200005a0 .long 0x200005a0 + 59fc: 200000b8 .long 0x200000b8 + 5a00: 00007eaa .long 0x00007eaa + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00005a04 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 5a04: 14d1 push r4, r15 + if(state == TEMP_ON) + 5a06: 3841 cmpnei r0, 1 + 5a08: 081f bt 0x5a46 // 5a46 + { + Control_Prompt_Text(1); + Control_Mode(TempCtrl.TemState_Now.mode); + 5a0a: 1091 lrw r4, 0x200003d4 // 5a4c + Control_Prompt_Text(1); + 5a0c: e3fff98c bsr 0x4d24 // 4d24 + Control_Mode(TempCtrl.TemState_Now.mode); + 5a10: 8402 ld.b r0, (r4, 0x2) + 5a12: 4019 lsli r0, r0, 25 + 5a14: 481d lsri r0, r0, 29 + 5a16: e3fff92b bsr 0x4c6c // 4c6c + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5a1a: 8402 ld.b r0, (r4, 0x2) + 5a1c: 401c lsli r0, r0, 28 + 5a1e: 481d lsri r0, r0, 29 + 5a20: e3fff94a bsr 0x4cb4 // 4cb4 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5a24: 8401 ld.b r0, (r4, 0x1) + 5a26: 3840 cmpnei r0, 0 + 5a28: 0c0c bf 0x5a40 // 5a40 + 5a2a: 330a movi r3, 10 + 5a2c: 7c0c mult r0, r3 + 5a2e: e3fff89b bsr 0x4b64 // 4b64 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 5a32: 8400 ld.b r0, (r4, 0x0) + 5a34: 330a movi r3, 10 + 5a36: 7c0c mult r0, r3 + 5a38: 7401 zexth r0, r0 + 5a3a: e3fff8d9 bsr 0x4bec // 4bec + } + else + { + HT1621_Clear(); + } +} + 5a3e: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5a40: 30a0 movi r0, 160 + 5a42: 4001 lsli r0, r0, 1 + 5a44: 07f5 br 0x5a2e // 5a2e + HT1621_Clear(); + 5a46: e3fff821 bsr 0x4a88 // 4a88 +} + 5a4a: 07fa br 0x5a3e // 5a3e + 5a4c: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Init: + +00005a50 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 5a50: 14d0 push r15 + HT1621_ALLON(); + 5a52: e3fff843 bsr 0x4ad8 // 4ad8 + + delay_nms(5000); + 5a56: 1005 lrw r0, 0x1388 // 5a68 + 5a58: e3ffe934 bsr 0x2cc0 // 2cc0 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5a5c: 1064 lrw r3, 0x200003d4 // 5a6c + 5a5e: 8302 ld.b r0, (r3, 0x2) + 5a60: 4807 lsri r0, r0, 7 + 5a62: e3ffffd1 bsr 0x5a04 // 5a04 + +} + 5a66: 1490 pop r15 + 5a68: 00001388 .long 0x00001388 + 5a6c: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Task: + +00005a70 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 5a70: 14d3 push r4-r6, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 5a72: 0265 lrw r3, 0x200003f3 // 5d58 + 5a74: 8360 ld.b r3, (r3, 0x0) + 5a76: 3b40 cmpnei r3, 0 + 5a78: 0923 bt 0x5cbe // 5cbe + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 5a7a: 0286 lrw r4, 0x200003d4 // 5d5c + 5a7c: 8451 ld.b r2, (r4, 0x11) + 5a7e: 8470 ld.b r3, (r4, 0x10) + 5a80: 4248 lsli r2, r2, 8 + 5a82: 6c8c or r2, r3 + 5a84: 8472 ld.b r3, (r4, 0x12) + 5a86: 4370 lsli r3, r3, 16 + 5a88: 6c8c or r2, r3 + 5a8a: 8473 ld.b r3, (r4, 0x13) + 5a8c: 02aa lrw r5, 0x200000b8 // 5d60 + 5a8e: 4378 lsli r3, r3, 24 + 5a90: 6cc8 or r3, r2 + 5a92: 9520 ld.w r1, (r5, 0x0) + 5a94: 604e subu r1, r3 + 5a96: 024b lrw r2, 0xbb8 // 5d64 + 5a98: 6448 cmphs r2, r1 + 5a9a: 0913 bt 0x5cc0 // 5cc0 + 5a9c: 8458 ld.b r2, (r4, 0x18) + 5a9e: 3a40 cmpnei r2, 0 + 5aa0: 0910 bt 0x5cc0 // 5cc0 + { + TempCtrl.BackLightTick = SysTick_1ms; + 5aa2: 9560 ld.w r3, (r5, 0x0) + 5aa4: 4b48 lsri r2, r3, 8 + 5aa6: a470 st.b r3, (r4, 0x10) + 5aa8: a451 st.b r2, (r4, 0x11) + 5aaa: 4b50 lsri r2, r3, 16 + 5aac: 4b78 lsri r3, r3, 24 + 5aae: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 5ab0: 3300 movi r3, 0 + 5ab2: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5ab4: 8462 ld.b r3, (r4, 0x2) + 5ab6: 74ce sextb r3, r3 + 5ab8: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5aba: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5abc: 0803 bt 0x5ac2 // 5ac2 + { + HT1621_Clear(); + 5abe: e3fff7e5 bsr 0x4a88 // 4a88 + } + //关背光 + Controlled_LCD_Backlight(0); + 5ac2: 3000 movi r0, 0 + 5ac4: e3fff976 bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 5ac8: 0237 lrw r1, 0x7eb4 // 5d68 + { + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5aca: 3000 movi r0, 0 + 5acc: e3fff040 bsr 0x3b4c // 3b4c + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 5ad0: 8455 ld.b r2, (r4, 0x15) + 5ad2: 8474 ld.b r3, (r4, 0x14) + 5ad4: 4248 lsli r2, r2, 8 + 5ad6: 6c8c or r2, r3 + 5ad8: 8476 ld.b r3, (r4, 0x16) + 5ada: 4370 lsli r3, r3, 16 + 5adc: 6c8c or r2, r3 + 5ade: 8477 ld.b r3, (r4, 0x17) + 5ae0: 4378 lsli r3, r3, 24 + 5ae2: 6cc8 or r3, r2 + 5ae4: 9520 ld.w r1, (r5, 0x0) + 5ae6: 604e subu r1, r3 + 5ae8: 33fa movi r3, 250 + 5aea: 4362 lsli r3, r3, 2 + 5aec: 644c cmphs r3, r1 + 5aee: 0818 bt 0x5b1e // 5b1e + { + TempCtrl.SceneNoTick = SysTick_1ms; + 5af0: 9560 ld.w r3, (r5, 0x0) + 5af2: 4b48 lsri r2, r3, 8 + 5af4: a474 st.b r3, (r4, 0x14) + 5af6: a455 st.b r2, (r4, 0x15) + 5af8: 4b50 lsri r2, r3, 16 + 5afa: 4b78 lsri r3, r3, 24 + 5afc: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5afe: 847b ld.b r3, (r4, 0x1b) + 5b00: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 5b02: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5b04: 0903 bt 0x5d0a // 5d0a + 5b06: 847c ld.b r3, (r4, 0x1c) + 5b08: 3b41 cmpnei r3, 1 + 5b0a: 0900 bt 0x5d0a // 5d0a + { + TempCtrl.SceneFlag = 0x00; + 5b0c: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 5b0e: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 5b10: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 5b12: e3fff94f bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 5b16: 0329 lrw r1, 0x7ed6 // 5d6c + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5b18: 3000 movi r0, 0 + 5b1a: e3fff019 bsr 0x3b4c // 3b4c + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 5b1e: 03ca lrw r6, 0x20000350 // 5d70 + 5b20: 8664 ld.b r3, (r6, 0x4) + 5b22: 3b41 cmpnei r3, 1 + 5b24: 081b bt 0x5b5a // 5b5a + 5b26: 8451 ld.b r2, (r4, 0x11) + 5b28: 8470 ld.b r3, (r4, 0x10) + 5b2a: 4248 lsli r2, r2, 8 + 5b2c: 6c8c or r2, r3 + 5b2e: 8472 ld.b r3, (r4, 0x12) + 5b30: 4370 lsli r3, r3, 16 + 5b32: 6c8c or r2, r3 + 5b34: 8473 ld.b r3, (r4, 0x13) + 5b36: 4378 lsli r3, r3, 24 + 5b38: 6cc8 or r3, r2 + 5b3a: 9520 ld.w r1, (r5, 0x0) + 5b3c: 604e subu r1, r3 + 5b3e: 0371 lrw r3, 0x1388 // 5d74 + 5b40: 644c cmphs r3, r1 + 5b42: 080c bt 0x5b5a // 5b5a + { + TempCtrl.BackLightTick = SysTick_1ms; + 5b44: 9560 ld.w r3, (r5, 0x0) + 5b46: 4b48 lsri r2, r3, 8 + 5b48: a470 st.b r3, (r4, 0x10) + 5b4a: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 5b4c: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5b4e: 4b50 lsri r2, r3, 16 + 5b50: 4b78 lsri r3, r3, 24 + 5b52: a452 st.b r2, (r4, 0x12) + 5b54: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 5b56: e3fff92d bsr 0x4db0 // 4db0 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5b5a: 8402 ld.b r0, (r4, 0x2) + 5b5c: 74c2 sextb r3, r0 + 5b5e: 3bdf btsti r3, 31 + 5b60: 0c92 bf 0x5c84 // 5c84 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 5b62: 8466 ld.b r3, (r4, 0x6) + 5b64: 4019 lsli r0, r0, 25 + 5b66: 4359 lsli r2, r3, 25 + 5b68: 481d lsri r0, r0, 29 + 5b6a: 4a5d lsri r2, r2, 29 + 5b6c: 640a cmpne r2, r0 + 5b6e: 0c17 bf 0x5b9c // 5b9c + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 5b70: 3170 movi r1, 112 + 5b72: 4044 lsli r2, r0, 4 + 5b74: 68c5 andn r3, r1 + 5b76: 6cc8 or r3, r2 + 5b78: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 5b7a: e3fff879 bsr 0x4c6c // 4c6c + + SYSCON->UREG0 &= 0xFFFF00FF; + 5b7e: 137f lrw r3, 0x2000005c // 5d78 + 5b80: 31ff movi r1, 255 + 5b82: 9340 ld.w r2, (r3, 0x0) + 5b84: 22ff addi r2, 256 + 5b86: 9260 ld.w r3, (r2, 0x0) + 5b88: 4128 lsli r1, r1, 8 + 5b8a: 68c5 andn r3, r1 + 5b8c: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5b8e: 8462 ld.b r3, (r4, 0x2) + 5b90: 4379 lsli r3, r3, 25 + 5b92: 4b7d lsri r3, r3, 29 + 5b94: 9220 ld.w r1, (r2, 0x0) + 5b96: 4368 lsli r3, r3, 8 + 5b98: 6cc4 or r3, r1 + 5b9a: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 5b9c: 8402 ld.b r0, (r4, 0x2) + 5b9e: 8466 ld.b r3, (r4, 0x6) + 5ba0: 401c lsli r0, r0, 28 + 5ba2: 435c lsli r2, r3, 28 + 5ba4: 481d lsri r0, r0, 29 + 5ba6: 4a5d lsri r2, r2, 29 + 5ba8: 640a cmpne r2, r0 + 5baa: 0c22 bf 0x5bee // 5bee + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 5bac: 310e movi r1, 14 + 5bae: 4041 lsli r2, r0, 1 + 5bb0: 68c5 andn r3, r1 + 5bb2: 6cc8 or r3, r2 + 5bb4: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5bb6: e3fff87f bsr 0x4cb4 // 4cb4 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 5bba: 3270 movi r2, 112 + 5bbc: 8462 ld.b r3, (r4, 0x2) + 5bbe: 68c8 and r3, r2 + 5bc0: 3240 movi r2, 64 + 5bc2: 648e cmpne r3, r2 + 5bc4: 08b4 bt 0x5d2c // 5d2c + 5bc6: 8661 ld.b r3, (r6, 0x1) + 5bc8: 3b42 cmpnei r3, 2 + 5bca: 08b1 bt 0x5d2c // 5d2c + { + Relay_Stop(); + 5bcc: e0000480 bsr 0x64cc // 64cc + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 5bd0: 136a lrw r3, 0x2000005c // 5d78 + 5bd2: 31ff movi r1, 255 + 5bd4: 9340 ld.w r2, (r3, 0x0) + 5bd6: 22ff addi r2, 256 + 5bd8: 9260 ld.w r3, (r2, 0x0) + 5bda: 4130 lsli r1, r1, 16 + 5bdc: 68c5 andn r3, r1 + 5bde: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5be0: 8462 ld.b r3, (r4, 0x2) + 5be2: 437c lsli r3, r3, 28 + 5be4: 4b7d lsri r3, r3, 29 + 5be6: 9220 ld.w r1, (r2, 0x0) + 5be8: 4370 lsli r3, r3, 16 + 5bea: 6cc4 or r3, r1 + 5bec: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 5bee: 8401 ld.b r0, (r4, 0x1) + 5bf0: 8465 ld.b r3, (r4, 0x5) + 5bf2: 640e cmpne r3, r0 + 5bf4: 0c14 bf 0x5c1c // 5c1c + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 5bf6: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 5bf8: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 5bfa: 08ab bt 0x5d50 // 5d50 + { + Set_Temperature_Display(320); + 5bfc: 30a0 movi r0, 160 + 5bfe: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5c00: e3fff7b2 bsr 0x4b64 // 4b64 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 5c04: 127d lrw r3, 0x2000005c // 5d78 + 5c06: 9340 ld.w r2, (r3, 0x0) + 5c08: 22ff addi r2, 256 + 5c0a: 9260 ld.w r3, (r2, 0x0) + 5c0c: 4368 lsli r3, r3, 8 + 5c0e: 4b68 lsri r3, r3, 8 + 5c10: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5c12: 8461 ld.b r3, (r4, 0x1) + 5c14: 9220 ld.w r1, (r2, 0x0) + 5c16: 4378 lsli r3, r3, 24 + 5c18: 6cc4 or r3, r1 + 5c1a: b260 st.w r3, (r2, 0x0) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 5c1c: 8409 ld.b r0, (r4, 0x9) + 5c1e: 8468 ld.b r3, (r4, 0x8) + 5c20: 4008 lsli r0, r0, 8 + 5c22: 6c0c or r0, r3 + 5c24: 846b ld.b r3, (r4, 0xb) + 5c26: 844a ld.b r2, (r4, 0xa) + 5c28: 4368 lsli r3, r3, 8 + 5c2a: 6cc8 or r3, r2 + 5c2c: 640e cmpne r3, r0 + 5c2e: 0c12 bf 0x5c52 // 5c52 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 5c30: 4868 lsri r3, r0, 8 + 5c32: a46b st.b r3, (r4, 0xb) + 5c34: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 5c36: e3fff7db bsr 0x4bec // 4bec + + SYSCON->UREG0 &= 0x00FFFFFF; + 5c3a: 1270 lrw r3, 0x2000005c // 5d78 + 5c3c: 9340 ld.w r2, (r3, 0x0) + 5c3e: 22ff addi r2, 256 + 5c40: 9260 ld.w r3, (r2, 0x0) + 5c42: 4368 lsli r3, r3, 8 + 5c44: 4b68 lsri r3, r3, 8 + 5c46: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5c48: 8461 ld.b r3, (r4, 0x1) + 5c4a: 9220 ld.w r1, (r2, 0x0) + 5c4c: 4378 lsli r3, r3, 24 + 5c4e: 6cc4 or r3, r1 + 5c50: b260 st.w r3, (r2, 0x0) + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 5c52: 844f ld.b r2, (r4, 0xf) + 5c54: 846e ld.b r3, (r4, 0xe) + 5c56: 4248 lsli r2, r2, 8 + 5c58: 6c8c or r2, r3 + 5c5a: 846d ld.b r3, (r4, 0xd) + 5c5c: 842c ld.b r1, (r4, 0xc) + 5c5e: 4368 lsli r3, r3, 8 + 5c60: 6cc4 or r3, r1 + 5c62: 648c cmphs r3, r2 + 5c64: 0804 bt 0x5c6c // 5c6c + 5c66: 5a2d subu r1, r2, r3 + 5c68: 3925 cmplti r1, 6 + 5c6a: 0c06 bf 0x5c76 // 5c76 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 5c6c: 64c8 cmphs r2, r3 + 5c6e: 080b bt 0x5c84 // 5c84 + 5c70: 5b49 subu r2, r3, r2 + 5c72: 3a25 cmplti r2, 6 + 5c74: 0808 bt 0x5c84 // 5c84 + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + rf_info.roomc_flag = 0x01; + 5c76: 1242 lrw r2, 0x200005a0 // 5d7c + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 5c78: a46e st.b r3, (r4, 0xe) + 5c7a: 4b68 lsri r3, r3, 8 + 5c7c: a46f st.b r3, (r4, 0xf) + rf_info.roomc_flag = 0x01; + 5c7e: 8261 ld.b r3, (r2, 0x1) + 5c80: 3ba5 bseti r3, 5 + 5c82: a261 st.b r3, (r2, 0x1) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 5c84: 8402 ld.b r0, (r4, 0x2) + 5c86: 8466 ld.b r3, (r4, 0x6) + 5c88: 4807 lsri r0, r0, 7 + 5c8a: 4b47 lsri r2, r3, 7 + 5c8c: 640a cmpne r2, r0 + 5c8e: 0c18 bf 0x5cbe // 5cbe + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 5c90: 317f movi r1, 127 + 5c92: 4047 lsli r2, r0, 7 + 5c94: 68c4 and r3, r1 + 5c96: 6cc8 or r3, r2 + 5c98: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5c9a: e3fff88b bsr 0x4db0 // 4db0 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5c9e: 8402 ld.b r0, (r4, 0x2) + 5ca0: 4807 lsri r0, r0, 7 + 5ca2: e3fffeb1 bsr 0x5a04 // 5a04 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 5ca6: 1175 lrw r3, 0x2000005c // 5d78 + 5ca8: 31ff movi r1, 255 + 5caa: 9340 ld.w r2, (r3, 0x0) + 5cac: 22ff addi r2, 256 + 5cae: 9260 ld.w r3, (r2, 0x0) + 5cb0: 68c5 andn r3, r1 + 5cb2: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5cb4: 8462 ld.b r3, (r4, 0x2) + 5cb6: 9220 ld.w r1, (r2, 0x0) + 5cb8: 4b67 lsri r3, r3, 7 + 5cba: 6cc4 or r3, r1 + 5cbc: b260 st.w r3, (r2, 0x0) + } + } +} + 5cbe: 1493 pop r4-r6, r15 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 5cc0: 9540 ld.w r2, (r5, 0x0) + 5cc2: 608e subu r2, r3 + 5cc4: 33fa movi r3, 250 + 5cc6: 4363 lsli r3, r3, 3 + 5cc8: 648c cmphs r3, r2 + 5cca: 0b03 bt 0x5ad0 // 5ad0 + 5ccc: 8478 ld.b r3, (r4, 0x18) + 5cce: 3b41 cmpnei r3, 1 + 5cd0: 0b00 bt 0x5ad0 // 5ad0 + 5cd2: 8479 ld.b r3, (r4, 0x19) + 5cd4: 3b41 cmpnei r3, 1 + 5cd6: 0afd bt 0x5ad0 // 5ad0 + TempCtrl.BackLightTick = SysTick_1ms; + 5cd8: 9560 ld.w r3, (r5, 0x0) + 5cda: 4b48 lsri r2, r3, 8 + 5cdc: a470 st.b r3, (r4, 0x10) + 5cde: a451 st.b r2, (r4, 0x11) + 5ce0: 4b50 lsri r2, r3, 16 + 5ce2: 4b78 lsri r3, r3, 24 + 5ce4: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5ce6: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 5ce8: 3300 movi r3, 0 + 5cea: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5cec: 74c2 sextb r3, r0 + 5cee: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5cf0: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5cf2: 0eef bf 0x5ad0 // 5ad0 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5cf4: 4807 lsri r0, r0, 7 + 5cf6: e3fffe87 bsr 0x5a04 // 5a04 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 5cfa: 847b ld.b r3, (r4, 0x1b) + 5cfc: 3b44 cmpnei r3, 4 + 5cfe: 0ee9 bf 0x5ad0 // 5ad0 + Controlled_LCD_Backlight(1); + 5d00: 3001 movi r0, 1 + 5d02: e3fff857 bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5d06: 103f lrw r1, 0x7ec6 // 5d80 + 5d08: 06e1 br 0x5aca // 5aca + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 5d0a: 8462 ld.b r3, (r4, 0x2) + 5d0c: 74ce sextb r3, r3 + 5d0e: 3bdf btsti r3, 31 + 5d10: 0f07 bf 0x5b1e // 5b1e + 5d12: 8478 ld.b r3, (r4, 0x18) + 5d14: 3b41 cmpnei r3, 1 + 5d16: 0b04 bt 0x5b1e // 5b1e + 5d18: 847c ld.b r3, (r4, 0x1c) + 5d1a: 3b41 cmpnei r3, 1 + 5d1c: 0b01 bt 0x5b1e // 5b1e + TempCtrl.SceneFlag = 0x00; + 5d1e: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 5d20: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 5d22: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 5d24: e3fff846 bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5d28: 1037 lrw r1, 0x7ee6 // 5d84 + 5d2a: 06f7 br 0x5b18 // 5b18 + switch(TempCtrl.TemState_Now.fan) + 5d2c: 8462 ld.b r3, (r4, 0x2) + 5d2e: 437c lsli r3, r3, 28 + 5d30: 4b7d lsri r3, r3, 29 + 5d32: 3b42 cmpnei r3, 2 + 5d34: 0c08 bf 0x5d44 // 5d44 + 5d36: 3b43 cmpnei r3, 3 + 5d38: 0c09 bf 0x5d4a // 5d4a + 5d3a: 3b41 cmpnei r3, 1 + 5d3c: 0b4a bt 0x5bd0 // 5bd0 + Relay_Low(); + 5d3e: e00003b5 bsr 0x64a8 // 64a8 + break; + 5d42: 0747 br 0x5bd0 // 5bd0 + Relay_Mid(); + 5d44: e00003a0 bsr 0x6484 // 6484 + break; + 5d48: 0744 br 0x5bd0 // 5bd0 + Relay_High(); + 5d4a: e000038b bsr 0x6460 // 6460 + break; + 5d4e: 0741 br 0x5bd0 // 5bd0 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5d50: 330a movi r3, 10 + 5d52: 7c0c mult r0, r3 + 5d54: 0756 br 0x5c00 // 5c00 + 5d56: 0000 bkpt + 5d58: 200003f3 .long 0x200003f3 + 5d5c: 200003d4 .long 0x200003d4 + 5d60: 200000b8 .long 0x200000b8 + 5d64: 00000bb8 .long 0x00000bb8 + 5d68: 00007eb4 .long 0x00007eb4 + 5d6c: 00007ed6 .long 0x00007ed6 + 5d70: 20000350 .long 0x20000350 + 5d74: 00001388 .long 0x00001388 + 5d78: 2000005c .long 0x2000005c + 5d7c: 200005a0 .long 0x200005a0 + 5d80: 00007ec6 .long 0x00007ec6 + 5d84: 00007ee6 .long 0x00007ee6 + +Disassembly of section .text.Debug_Init: + +00005d88 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 5d88: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 5d8a: 108b lrw r4, 0x200003f3 // 5db4 + 5d8c: 320c movi r2, 12 + 5d8e: 3100 movi r1, 0 + 5d90: 6c13 mov r0, r4 + 5d92: e3ffdde9 bsr 0x1964 // 1964 <__memset_fast> + Debug_Inf.Page = 0x01; + 5d96: 3301 movi r3, 1 + 5d98: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 5d9a: 1068 lrw r3, 0x20000350 // 5db8 + 5d9c: 8340 ld.b r2, (r3, 0x0) + 5d9e: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 5da0: 8341 ld.b r2, (r3, 0x1) + 5da2: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 5da4: 8342 ld.b r2, (r3, 0x2) + 5da6: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5da8: 8344 ld.b r2, (r3, 0x4) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5daa: 8365 ld.b r3, (r3, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5dac: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5dae: a467 st.b r3, (r4, 0x7) +} + 5db0: 1491 pop r4, r15 + 5db2: 0000 bkpt + 5db4: 200003f3 .long 0x200003f3 + 5db8: 20000350 .long 0x20000350 + +Disassembly of section .text.Dev_SaveData: + +00005dbc : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 5dbc: 14d1 push r4, r15 + 5dbe: 1423 subi r14, r14, 12 +// g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); +// } +// +// } + + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 5dc0: 1078 lrw r3, 0x200003f3 // 5e20 + 5dc2: 1099 lrw r4, 0x20000350 // 5e24 + 5dc4: 8343 ld.b r2, (r3, 0x3) + 5dc6: 8420 ld.b r1, (r4, 0x0) + 5dc8: 6486 cmpne r1, r2 + 5dca: 0811 bt 0x5dec // 5dec + 5dcc: 8304 ld.b r0, (r3, 0x4) + 5dce: 8421 ld.b r1, (r4, 0x1) + 5dd0: 6442 cmpne r0, r1 + 5dd2: 080d bt 0x5dec // 5dec + 5dd4: 8305 ld.b r0, (r3, 0x5) + 5dd6: 8422 ld.b r1, (r4, 0x2) + 5dd8: 6442 cmpne r0, r1 + 5dda: 0809 bt 0x5dec // 5dec + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level) + 5ddc: 8306 ld.b r0, (r3, 0x6) + 5dde: 8424 ld.b r1, (r4, 0x4) + 5de0: 6442 cmpne r0, r1 + 5de2: 0805 bt 0x5dec // 5dec + 5de4: 8307 ld.b r0, (r3, 0x7) + 5de6: 8425 ld.b r1, (r4, 0x5) + 5de8: 6442 cmpne r0, r1 + 5dea: 0c19 bf 0x5e1c // 5e1c + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 5dec: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 5dee: 8344 ld.b r2, (r3, 0x4) + 5df0: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 5df2: 8345 ld.b r2, (r3, 0x5) + 5df4: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5df6: 8346 ld.b r2, (r3, 0x6) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + + EEPROM_WriteParaInfo(&g_eeprom); + 5df8: 100b lrw r0, 0x20000350 // 5e24 + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5dfa: 8367 ld.b r3, (r3, 0x7) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5dfc: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5dfe: a465 st.b r3, (r4, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 5e00: e3fff2e2 bsr 0x43c4 // 43c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 5e04: 8425 ld.b r1, (r4, 0x5) + 5e06: b822 st.w r1, (r14, 0x8) + 5e08: 8424 ld.b r1, (r4, 0x4) + 5e0a: b821 st.w r1, (r14, 0x4) + 5e0c: 8422 ld.b r1, (r4, 0x2) + 5e0e: b820 st.w r1, (r14, 0x0) + 5e10: 8461 ld.b r3, (r4, 0x1) + 5e12: 8440 ld.b r2, (r4, 0x0) + 5e14: 1025 lrw r1, 0x7ef9 // 5e28 + 5e16: 3000 movi r0, 0 + 5e18: e3ffee9a bsr 0x3b4c // 3b4c + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + } +} + 5e1c: 1403 addi r14, r14, 12 + 5e1e: 1491 pop r4, r15 + 5e20: 200003f3 .long 0x200003f3 + 5e24: 20000350 .long 0x20000350 + 5e28: 00007ef9 .long 0x00007ef9 + +Disassembly of section .text.Debug_Task: + +00005e2c : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 5e2c: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE5ID)) //设置模式 + 5e2e: 1077 lrw r3, 0x200003f3 // 5e88 + 5e30: 8340 ld.b r2, (r3, 0x0) + 5e32: 3a41 cmpnei r2, 1 + 5e34: 0829 bt 0x5e86 // 5e86 + 5e36: 8329 ld.b r1, (r3, 0x9) + 5e38: 8348 ld.b r2, (r3, 0x8) + 5e3a: 4128 lsli r1, r1, 8 + 5e3c: 6c48 or r1, r2 + 5e3e: 834a ld.b r2, (r3, 0xa) + 5e40: 4250 lsli r2, r2, 16 + 5e42: 6c48 or r1, r2 + 5e44: 834b ld.b r2, (r3, 0xb) + 5e46: 1092 lrw r4, 0x200000b8 // 5e8c + 5e48: 4258 lsli r2, r2, 24 + 5e4a: 6c84 or r2, r1 + 5e4c: 9400 ld.w r0, (r4, 0x0) + 5e4e: 600a subu r0, r2 + 5e50: 1050 lrw r2, 0x2710 // 5e90 + 5e52: 6408 cmphs r2, r0 + 5e54: 0819 bt 0x5e86 // 5e86 + 5e56: 8342 ld.b r2, (r3, 0x2) + 5e58: 3a45 cmpnei r2, 5 + 5e5a: 0c16 bf 0x5e86 // 5e86 + { + Debug_Inf.Tick = SysTick_1ms; + 5e5c: 9440 ld.w r2, (r4, 0x0) + 5e5e: 4a28 lsri r1, r2, 8 + 5e60: a348 st.b r2, (r3, 0x8) + 5e62: a329 st.b r1, (r3, 0x9) + 5e64: 4a30 lsri r1, r2, 16 + 5e66: 4a58 lsri r2, r2, 24 + 5e68: a34b st.b r2, (r3, 0xb) + Debug_Inf.State = 0x00; + 5e6a: 3200 movi r2, 0 + Debug_Inf.Tick = SysTick_1ms; + 5e6c: a32a st.b r1, (r3, 0xa) + Debug_Inf.State = 0x00; + 5e6e: a340 st.b r2, (r3, 0x0) + Dev_SaveData(); + 5e70: e3ffffa6 bsr 0x5dbc // 5dbc + + HT1621_Clear(); + 5e74: e3fff60a bsr 0x4a88 // 4a88 + //关背光 + Controlled_LCD_Backlight(0x00); + 5e78: 3000 movi r0, 0 + 5e7a: e3fff79b bsr 0x4db0 // 4db0 +// Controlled_Key_Backlight(0x00); + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 5e7e: 1026 lrw r1, 0x7f45 // 5e94 + 5e80: 3000 movi r0, 0 + 5e82: e3ffee65 bsr 0x3b4c // 3b4c + } + 5e86: 1491 pop r4, r15 + 5e88: 200003f3 .long 0x200003f3 + 5e8c: 200000b8 .long 0x200000b8 + 5e90: 00002710 .long 0x00002710 + 5e94: 00007f45 .long 0x00007f45 + +Disassembly of section .text.get_check_sum: + +00005e98 : +* @param[in] {pack} the head address of array +* @param[in] {pack_len} the length of array +* @return sum +*/ +unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len) +{ + 5e98: 6cc3 mov r3, r0 + 5e9a: 6040 addu r1, r0 + unsigned short i; + unsigned char check_sum = 0; + 5e9c: 3000 movi r0, 0 + + for(i = 0; i < pack_len; i ++){ + 5e9e: 644e cmpne r3, r1 + 5ea0: 0802 bt 0x5ea4 // 5ea4 + check_sum += *pack ++; + } + + return check_sum; +} + 5ea2: 783c jmp r15 + check_sum += *pack ++; + 5ea4: 8340 ld.b r2, (r3, 0x0) + 5ea6: 6008 addu r0, r2 + 5ea8: 7400 zextb r0, r0 + 5eaa: 2300 addi r3, 1 + 5eac: 07f9 br 0x5e9e // 5e9e + +Disassembly of section .text.uart_receive_input: + +00005eb0 : +* @brief copy receive data from uart receive interrupt +* @param[in] {value} Data received from interrupt +* @return void +*/ +void uart_receive_input(unsigned char value) +{ + 5eb0: 14c1 push r4 +// #error "please call this fuction in the interrupt fuction of serial receive, and delete this line" + + if(1 == queue_out - queue_in) { + 5eb2: 106d lrw r3, 0x2000059c // 5ee4 + 5eb4: 9320 ld.w r1, (r3, 0x0) + 5eb6: 106d lrw r3, 0x2000050c // 5ee8 + 5eb8: 9340 ld.w r2, (r3, 0x0) + 5eba: 5989 subu r4, r1, r2 + 5ebc: 3c41 cmpnei r4, 1 + 5ebe: 0c11 bf 0x5ee0 // 5ee0 + //queue full + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_1"); + + }else if((queue_in > queue_out) && ((queue_in - queue_out) >= sizeof(zigbee_queue_buf))) { + 5ec0: 6484 cmphs r1, r2 + 5ec2: 0806 bt 0x5ece // 5ece + 5ec4: 5a85 subu r4, r2, r1 + 5ec6: 3184 movi r1, 132 + 5ec8: 4121 lsli r1, r1, 1 + 5eca: 6504 cmphs r1, r4 + 5ecc: 0c0a bf 0x5ee0 // 5ee0 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_2"); + + }else { + //queue not full + if(queue_in >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))){ + 5ece: 1028 lrw r1, 0x20000509 // 5eec + 5ed0: 6448 cmphs r2, r1 + 5ed2: 0c03 bf 0x5ed8 // 5ed8 + queue_in = (unsigned char *)(zigbee_queue_buf); + 5ed4: 1047 lrw r2, 0x20000400 // 5ef0 + 5ed6: b340 st.w r2, (r3, 0x0) + } + *queue_in ++ = value; + 5ed8: 9340 ld.w r2, (r3, 0x0) + 5eda: 5a22 addi r1, r2, 1 + 5edc: b320 st.w r1, (r3, 0x0) + 5ede: a200 st.b r0, (r2, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_receive: %02X",value); + + } +} + 5ee0: 1481 pop r4 + 5ee2: 0000 bkpt + 5ee4: 2000059c .long 0x2000059c + 5ee8: 2000050c .long 0x2000050c + 5eec: 20000509 .long 0x20000509 + 5ef0: 20000400 .long 0x20000400 + +Disassembly of section .text.Queue_Read_Byte: + +00005ef4 : +*/ +unsigned char Queue_Read_Byte(void) +{ + unsigned char value; + + if(queue_out != queue_in) { + 5ef4: 1069 lrw r3, 0x2000059c // 5f18 + 5ef6: 102a lrw r1, 0x2000050c // 5f1c + 5ef8: 9340 ld.w r2, (r3, 0x0) + 5efa: 9120 ld.w r1, (r1, 0x0) + 5efc: 644a cmpne r2, r1 + 5efe: 0c0b bf 0x5f14 // 5f14 + //have data in queue + if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) { + 5f00: 1028 lrw r1, 0x20000509 // 5f20 + 5f02: 6448 cmphs r2, r1 + 5f04: 0c03 bf 0x5f0a // 5f0a + queue_out = (unsigned char *)(zigbee_queue_buf); + 5f06: 1048 lrw r2, 0x20000400 // 5f24 + 5f08: b340 st.w r2, (r3, 0x0) + } + value = *queue_out ++; + 5f0a: 9340 ld.w r2, (r3, 0x0) + 5f0c: 5a22 addi r1, r2, 1 + 5f0e: b320 st.w r1, (r3, 0x0) + 5f10: 8200 ld.b r0, (r2, 0x0) + 5f12: 7400 zextb r0, r0 + } + + + return value; +} + 5f14: 783c jmp r15 + 5f16: 0000 bkpt + 5f18: 2000059c .long 0x2000059c + 5f1c: 2000050c .long 0x2000050c + 5f20: 20000509 .long 0x20000509 + 5f24: 20000400 .long 0x20000400 + +Disassembly of section .text.with_data_rxbuff: + +00005f28 : + * @param Null + * @return the queue state + */ +unsigned char with_data_rxbuff(void) +{ + if(queue_out != queue_in) + 5f28: 1065 lrw r3, 0x2000059c // 5f3c + 5f2a: 3000 movi r0, 0 + 5f2c: 9340 ld.w r2, (r3, 0x0) + 5f2e: 1065 lrw r3, 0x2000050c // 5f40 + 5f30: 9360 ld.w r3, (r3, 0x0) + 5f32: 64ca cmpne r2, r3 + 5f34: 6001 addc r0, r0 + 5f36: 7400 zextb r0, r0 + return 1; + else + return 0; +} + 5f38: 783c jmp r15 + 5f3a: 0000 bkpt + 5f3c: 2000059c .long 0x2000059c + 5f40: 2000050c .long 0x2000050c + +Disassembly of section .text.RF_Info_Init: + +00005f44 : + + + + +void RF_Info_Init(void) +{ + 5f44: 14d1 push r4, r15 + memset(&rf_info,0,sizeof(RF_INFO)); + 5f46: 1089 lrw r4, 0x200005a0 // 5f68 + 5f48: 3203 movi r2, 3 + 5f4a: 3100 movi r1, 0 + 5f4c: 6c13 mov r0, r4 + 5f4e: e3ffdd0b bsr 0x1964 // 1964 <__memset_fast> + + queue_in = (unsigned char *)zigbee_queue_buf; + 5f52: 1067 lrw r3, 0x20000400 // 5f6c + 5f54: 1047 lrw r2, 0x2000050c // 5f70 + 5f56: b260 st.w r3, (r2, 0x0) + queue_out = (unsigned char *)zigbee_queue_buf; + 5f58: 1047 lrw r2, 0x2000059c // 5f74 + 5f5a: b260 st.w r3, (r2, 0x0) + + rf_info.net_state = 0x01; + 5f5c: 3301 movi r3, 1 + 5f5e: a460 st.b r3, (r4, 0x0) + rf_info.setc_flag = 0x01; + rf_info.setf_flag = 0x01; + rf_info.fan_flag = 0x01; + rf_info.roomc_flag = 0x01; + rf_info.roomf_flag = 0x01; + rf_info.valve_flag = 0x01; + 5f60: 3300 movi r3, 0 + 5f62: 2b00 subi r3, 1 + 5f64: a461 st.b r3, (r4, 0x1) + +} + 5f66: 1491 pop r4, r15 + 5f68: 200005a0 .long 0x200005a0 + 5f6c: 20000400 .long 0x20000400 + 5f70: 2000050c .long 0x2000050c + 5f74: 2000059c .long 0x2000059c + +Disassembly of section .text.Add_Frame_Head: + +00005f78 : +* +* +* +*/ +void Add_Frame_Head(U8_T *data, U8_T cmd, U8_T lens) +{ + 5f78: 14c2 push r4-r5 + U16_T frameno = 0x00; + + data[HEAD_FIRST] = FIRST_FRAME_HEAD; + 5f7a: 3355 movi r3, 85 + 5f7c: a060 st.b r3, (r0, 0x0) + data[HEAD_SECOND] = SECOND_FRAME_HEAD; + 5f7e: 3300 movi r3, 0 + 5f80: 2b55 subi r3, 86 + 5f82: a061 st.b r3, (r0, 0x1) + data[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER; + 5f84: 3302 movi r3, 2 + 5f86: a062 st.b r3, (r0, 0x2) + if(seq_num > 0xfff0){ + 5f88: 10aa lrw r5, 0xfff0 // 5fb0 + seq_num ++; + 5f8a: 106b lrw r3, 0x200000d8 // 5fb4 + 5f8c: 8b80 ld.h r4, (r3, 0x0) + 5f8e: 2400 addi r4, 1 + 5f90: 7511 zexth r4, r4 + if(seq_num > 0xfff0){ + 5f92: 6514 cmphs r5, r4 + 5f94: 0c0b bf 0x5faa // 5faa + seq_num = 1; + 5f96: ab80 st.h r4, (r3, 0x0) + return seq_num; + 5f98: 8b60 ld.h r3, (r3, 0x0) + + frameno = seq_num_get(); + data[SEQ_HIGH] = (frameno << 8); + 5f9a: 3400 movi r4, 0 + data[SEQ_LOW] = (frameno & 0xff); + 5f9c: a064 st.b r3, (r0, 0x4) + + data[FRAME_TYPE] = cmd; + + data[LENGTH_HIGH] = lens >> 8; + 5f9e: 3300 movi r3, 0 + data[SEQ_HIGH] = (frameno << 8); + 5fa0: a083 st.b r4, (r0, 0x3) + data[FRAME_TYPE] = cmd; + 5fa2: a025 st.b r1, (r0, 0x5) + data[LENGTH_HIGH] = lens >> 8; + 5fa4: a066 st.b r3, (r0, 0x6) + data[LENGTH_LOW] = lens & 0xff; + 5fa6: a047 st.b r2, (r0, 0x7) + +} + 5fa8: 1482 pop r4-r5 + seq_num = 1; + 5faa: 3401 movi r4, 1 + 5fac: 07f5 br 0x5f96 // 5f96 + 5fae: 0000 bkpt + 5fb0: 0000fff0 .long 0x0000fff0 + 5fb4: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Product_Info_Update: + +00005fb8 : + + + +void Product_Info_Update(void) +{ + 5fb8: 14d0 push r15 + 5fba: 142a subi r14, r14, 40 + U8_T data[37]; + memset(data,0,sizeof(data)); + 5fbc: 6c3b mov r0, r14 + 5fbe: 3225 movi r2, 37 + 5fc0: 3100 movi r1, 0 + 5fc2: e3ffdcd1 bsr 0x1964 // 1964 <__memset_fast> + U8_T lens = 0x00; + + lens += strlen("{\"p\":\""); + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5fc6: 107b lrw r3, 0x2270227b // 6030 + + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5fc8: 300d movi r0, 13 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5fca: b862 st.w r3, (r14, 0x8) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5fcc: 6038 addu r0, r14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5fce: 107f lrw r3, 0x223a // 6048 + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5fd0: 3208 movi r2, 8 + 5fd2: 1039 lrw r1, 0x7f50 // 6034 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5fd4: dc6e1006 st.h r3, (r14, 0xc) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5fd8: e3ffdd0a bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen((U8_T *)PRODUCT_KEY); + + memcpy(&data[DATA_START + lens-1],"\",\"v\":\"",strlen("\",\"v\":\"")); + 5fdc: 3015 movi r0, 21 + 5fde: 6038 addu r0, r14 + 5fe0: 3207 movi r2, 7 + 5fe2: 1036 lrw r1, 0x7f59 // 6038 + 5fe4: e3ffdd04 bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen("\",\"v\":\""); + + memcpy(&data[DATA_START + lens-1],(U8_T *)MCU_VER,strlen((U8_T *)MCU_VER)); + 5fe8: 1055 lrw r2, 0x2e302e31 // 603c + 5fea: b847 st.w r2, (r14, 0x1c) + 5fec: 1b07 addi r3, r14, 28 + 5fee: 3230 movi r2, 48 + 5ff0: a344 st.b r2, (r3, 0x4) + lens += strlen((U8_T *)MCU_VER); + + memcpy(&data[DATA_START + lens-1],"\"}",strlen("\"}")); + 5ff2: 3321 movi r3, 33 + 5ff4: 60f8 addu r3, r14 + 5ff6: 3222 movi r2, 34 + 5ff8: a340 st.b r2, (r3, 0x0) + 5ffa: 327d movi r2, 125 + 5ffc: a341 st.b r2, (r3, 0x1) + lens += strlen("\"}"); + + Add_Frame_Head(data,PRODUCT_INFO_CMD,lens); + 5ffe: 6c3b mov r0, r14 + 6000: 321c movi r2, 28 + 6002: 3101 movi r1, 1 + 6004: e3ffffba bsr 0x5f78 // 5f78 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 6008: 3124 movi r1, 36 + 600a: 6c3b mov r0, r14 + 600c: e3ffff46 bsr 0x5e98 // 5e98 + 6010: 1b08 addi r3, r14, 32 + 6012: a304 st.b r0, (r3, 0x4) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 6014: 6cbb mov r2, r14 + 6016: 3325 movi r3, 37 + 6018: 102a lrw r1, 0x7f61 // 6040 + 601a: 3000 movi r0, 0 + 601c: e3ffed9e bsr 0x3b58 // 3b58 + + UARTTransmit(UART2,data,lens); + 6020: 1069 lrw r3, 0x20000038 // 6044 + 6022: 3225 movi r2, 37 + 6024: 9300 ld.w r0, (r3, 0x0) + 6026: 6c7b mov r1, r14 + 6028: e3ffe07a bsr 0x211c // 211c +} + 602c: 140a addi r14, r14, 40 + 602e: 1490 pop r15 + 6030: 2270227b .long 0x2270227b + 6034: 00007f50 .long 0x00007f50 + 6038: 00007f59 .long 0x00007f59 + 603c: 2e302e31 .long 0x2e302e31 + 6040: 00007f61 .long 0x00007f61 + 6044: 20000038 .long 0x20000038 + 6048: 0000223a .long 0x0000223a + +Disassembly of section .text.Recv_RFNetState_Ack: + +0000604c : + +void Recv_RFNetState_Ack(void) +{ + 604c: 14d0 push r15 + 604e: 1423 subi r14, r14, 12 + U8_T data[9]; + memset(data,0,sizeof(data)); + 6050: 6c3b mov r0, r14 + 6052: 3209 movi r2, 9 + 6054: 3100 movi r1, 0 + 6056: e3ffdc87 bsr 0x1964 // 1964 <__memset_fast> + + U8_T lens = 0x00; + + Add_Frame_Head(data,ZIGBEE_STATE_CMD,lens); + 605a: 3200 movi r2, 0 + 605c: 6c3b mov r0, r14 + 605e: 3102 movi r1, 2 + 6060: e3ffff8c bsr 0x5f78 // 5f78 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 6064: 3108 movi r1, 8 + 6066: 6c3b mov r0, r14 + 6068: e3ffff18 bsr 0x5e98 // 5e98 + + UARTTransmit(UART2,data,lens); + 606c: 1065 lrw r3, 0x20000038 // 6080 + 606e: 3209 movi r2, 9 + data[lens-1] = get_check_sum(data,(lens-1)); + 6070: dc0e0008 st.b r0, (r14, 0x8) + UARTTransmit(UART2,data,lens); + 6074: 6c7b mov r1, r14 + 6076: 9300 ld.w r0, (r3, 0x0) + 6078: e3ffe052 bsr 0x211c // 211c +} + 607c: 1403 addi r14, r14, 12 + 607e: 1490 pop r15 + 6080: 20000038 .long 0x20000038 + +Disassembly of section .text.Tem_Fun_Ctrl_Report: + +00006084 : + + +void Tem_Fun_Ctrl_Report(U8_T datalens,U8_T dpid,U8_T type,U32_T state,U8_T source) +{ + 6084: 14d4 push r4-r7, r15 + 6086: 1426 subi r14, r14, 24 + 6088: 6d4f mov r5, r3 + 608a: 1b0b addi r3, r14, 44 + 608c: 6d8b mov r6, r2 + 608e: 8360 ld.b r3, (r3, 0x0) + 6090: 6dc7 mov r7, r1 + 6092: 6d03 mov r4, r0 + U8_T data[17]; + memset(data,0,sizeof(data)); + 6094: 3211 movi r2, 17 + 6096: 3100 movi r1, 0 + 6098: 1801 addi r0, r14, 4 +{ + 609a: b860 st.w r3, (r14, 0x0) + memset(data,0,sizeof(data)); + 609c: e3ffdc64 bsr 0x1964 // 1964 <__memset_fast> + U8_T cmd = 0x00; + + data[DATA_START] = dpid; //dpID + data[DATA_START+1] = type; //数据类型 + + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 60a0: 3e41 cmpnei r6, 1 + data[DATA_START] = dpid; //dpID + 60a2: dcee000c st.b r7, (r14, 0xc) + data[DATA_START+1] = type; //数据类型 + 60a6: dcce000d st.b r6, (r14, 0xd) + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 60aa: 9860 ld.w r3, (r14, 0x0) + 60ac: 0c03 bf 0x60b2 // 60b2 + 60ae: 3e44 cmpnei r6, 4 + 60b0: 0829 bt 0x6102 // 6102 + { + data[DATA_START+2] = 0x00; + data[DATA_START+3] = 0x01; + 60b2: 3201 movi r2, 1 + 60b4: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state&0xff; + 60b8: dcae0010 st.b r5, (r14, 0x10) + data[DATA_START+5] = state>>16; + data[DATA_START+6] = state>>8; + data[DATA_START+7] = state&0xff; + } + + if(source == ACTIVE) + 60bc: 3b41 cmpnei r3, 1 + 60be: 0c33 bf 0x6124 // 6124 + { + cmd = 0x06; + } + else if(source == PASSIVE) + 60c0: 3b42 cmpnei r3, 2 + 60c2: 0833 bt 0x6128 // 6128 + { + cmd = 0x05; + 60c4: 3105 movi r1, 5 + } + + Add_Frame_Head(data,cmd,datalens); + 60c6: 6c93 mov r2, r4 + + lens = PROTOCOL_HEAD + datalens; + 60c8: 2408 addi r4, 9 + 60ca: 7510 zextb r4, r4 + + data[lens-1] = get_check_sum(data,(lens-1)); + 60cc: 7551 zexth r5, r4 + Add_Frame_Head(data,cmd,datalens); + 60ce: 1801 addi r0, r14, 4 + 60d0: e3ffff54 bsr 0x5f78 // 5f78 + data[lens-1] = get_check_sum(data,(lens-1)); + 60d4: 5d23 subi r1, r5, 1 + 60d6: 7445 zexth r1, r1 + 60d8: 1801 addi r0, r14, 4 + 60da: e3fffedf bsr 0x5e98 // 5e98 + 60de: 1b01 addi r3, r14, 4 + 60e0: 610c addu r4, r3 + 60e2: 2c00 subi r4, 1 + 60e4: a400 st.b r0, (r4, 0x0) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 60e6: 6cd7 mov r3, r5 + 60e8: 1a01 addi r2, r14, 4 + 60ea: 1031 lrw r1, 0x7f61 // 612c + 60ec: 3000 movi r0, 0 + 60ee: e3ffed35 bsr 0x3b58 // 3b58 + + UARTTransmit(UART2,data,lens); + 60f2: 1070 lrw r3, 0x20000038 // 6130 + 60f4: 6c97 mov r2, r5 + 60f6: 9300 ld.w r0, (r3, 0x0) + 60f8: 1901 addi r1, r14, 4 + 60fa: e3ffe011 bsr 0x211c // 211c +} + 60fe: 1406 addi r14, r14, 24 + 6100: 1494 pop r4-r7, r15 + else if(type == DP_TYPE_VALUE) + 6102: 3e42 cmpnei r6, 2 + 6104: 0bdc bt 0x60bc // 60bc + data[DATA_START+3] = 0x04; + 6106: 3204 movi r2, 4 + 6108: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state>>24; + 610c: 4d58 lsri r2, r5, 24 + 610e: dc4e0010 st.b r2, (r14, 0x10) + data[DATA_START+5] = state>>16; + 6112: 4d50 lsri r2, r5, 16 + 6114: dc4e0011 st.b r2, (r14, 0x11) + data[DATA_START+6] = state>>8; + 6118: 4d48 lsri r2, r5, 8 + 611a: dc4e0012 st.b r2, (r14, 0x12) + data[DATA_START+7] = state&0xff; + 611e: dcae0013 st.b r5, (r14, 0x13) + 6122: 07cd br 0x60bc // 60bc + cmd = 0x06; + 6124: 3106 movi r1, 6 + 6126: 07d0 br 0x60c6 // 60c6 + U8_T cmd = 0x00; + 6128: 3100 movi r1, 0 + 612a: 07ce br 0x60c6 // 60c6 + 612c: 00007f61 .long 0x00007f61 + 6130: 20000038 .long 0x20000038 + +Disassembly of section .text.data_handle: + +00006134 : +* @brief handle received frame from zigbee module baseon frame cmd id +* @param[in] {void} +* @return result of handle +*/ +int data_handle(unsigned short offset) +{ + 6134: 14d2 push r4-r5, r15 + unsigned char ret; + unsigned short i; + + U32_T temp = 0x00; + + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6136: 5872 addi r3, r0, 5 + 6138: 1286 lrw r4, 0x20000510 // 6250 + + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 613a: 5856 addi r2, r0, 6 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 613c: 60d0 addu r3, r4 + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 613e: 6090 addu r2, r4 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6140: 8360 ld.b r3, (r3, 0x0) + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 6142: 8240 ld.b r2, (r2, 0x0) + total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW]; + 6144: 585a addi r2, r0, 7 + 6146: 6090 addu r2, r4 + 6148: 8240 ld.b r2, (r2, 0x0) + + seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8; + 614a: 584a addi r2, r0, 3 + 614c: 6090 addu r2, r4 + 614e: 8240 ld.b r2, (r2, 0x0) + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6150: 74cc zextb r3, r3 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 6152: 584e addi r2, r0, 4 + 6154: 6090 addu r2, r4 + + switch(cmd_type) + 6156: 3b42 cmpnei r3, 2 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 6158: 8240 ld.b r2, (r2, 0x0) + switch(cmd_type) + 615a: 0c09 bf 0x616c // 616c + 615c: 3b44 cmpnei r3, 4 + 615e: 0c13 bf 0x6184 // 6184 + 6160: 3b41 cmpnei r3, 1 + 6162: 0803 bt 0x6168 // 6168 + { + case PRODUCT_INFO_CMD: //RF查询产品信息 + Product_Info_Update(); + 6164: e3ffff2a bsr 0x5fb8 // 5fb8 + default: + return ret = 0x01; + break; + } + return 1; +} + 6168: 3001 movi r0, 1 + 616a: 1492 pop r4-r5, r15 + if(rf_info.net_state != zigbee_uart_rx_buf[offset + DATA_START]) + 616c: 587e addi r3, r0, 8 + 616e: 5c0c addu r0, r4, r3 + 6170: 1179 lrw r3, 0x200005a0 // 6254 + 6172: 8040 ld.b r2, (r0, 0x0) + 6174: 8320 ld.b r1, (r3, 0x0) + 6176: 6486 cmpne r1, r2 + 6178: 0c03 bf 0x617e // 617e + rf_info.net_state = zigbee_uart_rx_buf[offset + DATA_START]; + 617a: 8040 ld.b r2, (r0, 0x0) + 617c: a340 st.b r2, (r3, 0x0) + Recv_RFNetState_Ack(); + 617e: e3ffff67 bsr 0x604c // 604c + break; + 6182: 07f3 br 0x6168 // 6168 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 6184: 587e addi r3, r0, 8 + 6186: 60d0 addu r3, r4 + 6188: 8360 ld.b r3, (r3, 0x0) + 618a: 74cc zextb r3, r3 + 618c: 3b42 cmpnei r3, 2 + 618e: 0c2a bf 0x61e2 // 61e2 + 6190: 3b02 cmphsi r3, 3 + 6192: 0812 bt 0x61b6 // 61b6 + 6194: 3b41 cmpnei r3, 1 + 6196: 0be9 bt 0x6168 // 6168 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6198: 200b addi r0, 12 + 619a: 6010 addu r0, r4 + 619c: 8060 ld.b r3, (r0, 0x0) + 619e: 112f lrw r1, 0x200003d4 // 6258 + 61a0: 4347 lsli r2, r3, 7 + 61a2: 307f movi r0, 127 + 61a4: 8162 ld.b r3, (r1, 0x2) + 61a6: 68c0 and r3, r0 + 61a8: 6cc8 or r3, r2 + rf_info.switc_flag = 0x01; + 61aa: 114b lrw r2, 0x200005a0 // 6254 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 61ac: a162 st.b r3, (r1, 0x2) + rf_info.switc_flag = 0x01; + 61ae: 8261 ld.b r3, (r2, 0x1) + 61b0: 3ba0 bseti r3, 0 + rf_info.fan_flag = 0x01; + 61b2: a261 st.b r3, (r2, 0x1) + break; + 61b4: 07da br 0x6168 // 6168 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 61b6: 3b50 cmpnei r3, 16 + 61b8: 0c25 bf 0x6202 // 6202 + 61ba: 3240 movi r2, 64 + 61bc: 648e cmpne r3, r2 + 61be: 0bd5 bt 0x6168 // 6168 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 61c0: 6cc3 mov r3, r0 + 61c2: 230b addi r3, 12 + 61c4: 5c0c addu r0, r4, r3 + 61c6: 8060 ld.b r3, (r0, 0x0) + 61c8: 3207 movi r2, 7 + 61ca: 1124 lrw r1, 0x200003d4 // 6258 + 61cc: 68c8 and r3, r2 + 61ce: 4341 lsli r2, r3, 1 + 61d0: 300e movi r0, 14 + 61d2: 8162 ld.b r3, (r1, 0x2) + 61d4: 68c1 andn r3, r0 + 61d6: 6cc8 or r3, r2 + rf_info.fan_flag = 0x01; + 61d8: 105f lrw r2, 0x200005a0 // 6254 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 61da: a162 st.b r3, (r1, 0x2) + rf_info.fan_flag = 0x01; + 61dc: 8261 ld.b r3, (r2, 0x1) + 61de: 3ba4 bseti r3, 4 + 61e0: 07e9 br 0x61b2 // 61b2 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 61e2: 200b addi r0, 12 + 61e4: 6010 addu r0, r4 + 61e6: 8060 ld.b r3, (r0, 0x0) + 61e8: 3207 movi r2, 7 + 61ea: 103c lrw r1, 0x200003d4 // 6258 + 61ec: 68c8 and r3, r2 + 61ee: 4344 lsli r2, r3, 4 + 61f0: 3070 movi r0, 112 + 61f2: 8162 ld.b r3, (r1, 0x2) + 61f4: 68c1 andn r3, r0 + 61f6: 6cc8 or r3, r2 + rf_info.model_flag = 0x01; + 61f8: 1057 lrw r2, 0x200005a0 // 6254 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 61fa: a162 st.b r3, (r1, 0x2) + rf_info.model_flag = 0x01; + 61fc: 8261 ld.b r3, (r2, 0x1) + 61fe: 3ba1 bseti r3, 1 + 6200: 07d9 br 0x61b2 // 61b2 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 6202: 330c movi r3, 12 + 6204: 60c0 addu r3, r0 + 6206: 60d0 addu r3, r4 + 6208: 83a0 ld.b r5, (r3, 0x0) + 620a: 330d movi r3, 13 + 620c: 60c0 addu r3, r0 + 620e: 60d0 addu r3, r4 + 6210: 8340 ld.b r2, (r3, 0x0) + 6212: 330e movi r3, 14 + 6214: 60c0 addu r3, r0 + 6216: 6c43 mov r1, r0 + 6218: 60d0 addu r3, r4 + 621a: 8360 ld.b r3, (r3, 0x0) + 621c: 4250 lsli r2, r2, 16 + 621e: 210e addi r1, 15 + 6220: 4518 lsli r0, r5, 24 + 6222: 6008 addu r0, r2 + 6224: 4368 lsli r3, r3, 8 + 6226: 6050 addu r1, r4 + 6228: 600c addu r0, r3 + 622a: 8120 ld.b r1, (r1, 0x0) + if((temp>=50) && (temp<=350)) + 622c: 3200 movi r2, 0 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 622e: 6004 addu r0, r1 + if((temp>=50) && (temp<=350)) + 6230: 2a31 subi r2, 50 + 6232: 3396 movi r3, 150 + 6234: 6080 addu r2, r0 + 6236: 4361 lsli r3, r3, 1 + 6238: 648c cmphs r3, r2 + 623a: 0f97 bf 0x6168 // 6168 + TempCtrl.TemState_Now.set_t = temp / 10; + 623c: 310a movi r1, 10 + 623e: e3ffeb13 bsr 0x3864 // 3864 <__udivsi3> + 6242: 1066 lrw r3, 0x200003d4 // 6258 + rf_info.setc_flag = 0x01; + 6244: 1044 lrw r2, 0x200005a0 // 6254 + TempCtrl.TemState_Now.set_t = temp / 10; + 6246: a301 st.b r0, (r3, 0x1) + rf_info.setc_flag = 0x01; + 6248: 8261 ld.b r3, (r2, 0x1) + 624a: 3ba2 bseti r3, 2 + 624c: 07b3 br 0x61b2 // 61b2 + 624e: 0000 bkpt + 6250: 20000510 .long 0x20000510 + 6254: 200005a0 .long 0x200005a0 + 6258: 200003d4 .long 0x200003d4 + +Disassembly of section .text.zigbee_uart_service: + +0000625c : +* @brief uart receive data handle, call this function at mian loop +* @param[in] {void} +* @return void +*/ +void zigbee_uart_service(void) +{ + 625c: 14d4 push r4-r7, r15 + unsigned short rx_value_len = 0; + unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD; + + + + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 625e: 11d0 lrw r6, 0x200000d8 // 631c + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 6260: 11b0 lrw r5, 0x20000510 // 6320 + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 6262: 8e81 ld.h r4, (r6, 0x2) + 6264: 3388 movi r3, 136 + 6266: 650c cmphs r3, r4 + 6268: 0c07 bf 0x6276 // 6276 + 626a: e3fffe5f bsr 0x5f28 // 5f28 + 626e: 3840 cmpnei r0, 0 + 6270: 081c bt 0x62a8 // 62a8 + } + + if(rx_in < PROTOCOL_HEAD){ + 6272: 3c08 cmphsi r4, 9 + 6274: 0c19 bf 0x62a6 // 62a6 + 6276: 3400 movi r4, 0 + while((rx_in - offset) >= PROTOCOL_HEAD){ + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + + + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 6278: 11ea lrw r7, 0x20000510 // 6320 + while((rx_in - offset) >= PROTOCOL_HEAD){ + 627a: 8e61 ld.h r3, (r6, 0x2) + 627c: 60d2 subu r3, r4 + 627e: 3b28 cmplti r3, 9 + 6280: 0c1b bf 0x62b6 // 62b6 + } + + data_handle(offset); + offset += rx_value_len; + } + rx_in -= offset; + 6282: 74cd zexth r3, r3 + + if(rx_in > 0){ + 6284: 3b40 cmpnei r3, 0 + rx_in -= offset; + 6286: ae61 st.h r3, (r6, 0x2) + if(rx_in > 0){ + 6288: 0c0f bf 0x62a6 // 62a6 + if((offset == 0) && (rx_in >= sizeof(zigbee_uart_rx_buf))){ + 628a: 3c40 cmpnei r4, 0 + 628c: 0807 bt 0x629a // 629a + 628e: 3288 movi r2, 136 + 6290: 64c8 cmphs r2, r3 + 6292: 0804 bt 0x629a // 629a + offset++; + rx_in -= offset; + 6294: 2b00 subi r3, 1 + 6296: ae61 st.h r3, (r6, 0x2) + offset++; + 6298: 3401 movi r4, 1 + } + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + 629a: 1122 lrw r1, 0x20000510 // 6320 + 629c: 8e41 ld.h r2, (r6, 0x2) + 629e: 6050 addu r1, r4 + 62a0: 1100 lrw r0, 0x20000510 // 6320 + 62a2: e3ffdba5 bsr 0x19ec // 19ec <__memcpy_fast> + } +} + 62a6: 1494 pop r4-r7, r15 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 62a8: 5c62 addi r3, r4, 1 + 62aa: ae61 st.h r3, (r6, 0x2) + 62ac: 6114 addu r4, r5 + 62ae: e3fffe23 bsr 0x5ef4 // 5ef4 + 62b2: a400 st.b r0, (r4, 0x0) + 62b4: 07d7 br 0x6262 // 6262 + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 62b6: 5f10 addu r0, r7, r4 + 62b8: 3255 movi r2, 85 + 62ba: 8020 ld.b r1, (r0, 0x0) + 62bc: 6486 cmpne r1, r2 + 62be: 5c42 addi r2, r4, 1 + 62c0: 0c03 bf 0x62c6 // 62c6 + offset += 2; + 62c2: 7509 zexth r4, r2 + continue; + 62c4: 07db br 0x627a // 627a + if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){ + 62c6: 5f28 addu r1, r7, r2 + 62c8: 81a0 ld.b r5, (r1, 0x0) + 62ca: 31aa movi r1, 170 + 62cc: 6456 cmpne r5, r1 + 62ce: 0bfa bt 0x62c2 // 62c2 + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + 62d0: 5c46 addi r2, r4, 2 + 62d2: 5f28 addu r1, r7, r2 + 62d4: 8120 ld.b r1, (r1, 0x0) + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + 62d6: 3942 cmpnei r1, 2 + 62d8: 0bf5 bt 0x62c2 // 62c2 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 62da: 5c56 addi r2, r4, 6 + 62dc: 609c addu r2, r7 + 62de: 82a0 ld.b r5, (r2, 0x0) + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 62e0: 5c5a addi r2, r4, 7 + 62e2: 609c addu r2, r7 + 62e4: 8240 ld.b r2, (r2, 0x0) + 62e6: 2208 addi r2, 9 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 62e8: 45a8 lsli r5, r5, 8 + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 62ea: 6148 addu r5, r2 + 62ec: 7555 zexth r5, r5 + if(rx_value_len > sizeof(zigbee_uart_rx_buf)){ + 62ee: 3289 movi r2, 137 + 62f0: 6548 cmphs r2, r5 + 62f2: 0804 bt 0x62fa // 62fa + offset += 3; + 62f4: 2402 addi r4, 3 + 62f6: 7511 zexth r4, r4 + continue; + 62f8: 07c1 br 0x627a // 627a + if((rx_in - offset) < rx_value_len){ + 62fa: 654d cmplt r3, r5 + 62fc: 0bc3 bt 0x6282 // 6282 + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + 62fe: 5d23 subi r1, r5, 1 + 6300: 7445 zexth r1, r1 + 6302: 6150 addu r5, r4 + 6304: e3fffdca bsr 0x5e98 // 5e98 + 6308: 5d63 subi r3, r5, 1 + 630a: 60dc addu r3, r7 + 630c: 8360 ld.b r3, (r3, 0x0) + 630e: 64c2 cmpne r0, r3 + 6310: 0bf2 bt 0x62f4 // 62f4 + data_handle(offset); + 6312: 6c13 mov r0, r4 + 6314: e3ffff10 bsr 0x6134 // 6134 + offset += rx_value_len; + 6318: 7515 zexth r4, r5 + 631a: 07b0 br 0x627a // 627a + 631c: 200000d8 .long 0x200000d8 + 6320: 20000510 .long 0x20000510 + +Disassembly of section .text.TemFun_Report_Task: + +00006324 : + + + +void TemFun_Report_Task(void) +{ + 6324: 14d1 push r4, r15 + 6326: 1421 subi r14, r14, 4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 6328: 1151 lrw r2, 0x200005a0 // 63ec + 632a: 8200 ld.b r0, (r2, 0x0) + 632c: 3841 cmpnei r0, 1 + 632e: 0831 bt 0x6390 // 6390 + { + if(rf_info.switc_flag == 0x01) //开关 + 6330: 8261 ld.b r3, (r2, 0x1) + 6332: 744c zextb r1, r3 + 6334: 3401 movi r4, 1 + 6336: 6904 and r4, r1 + 6338: 3c40 cmpnei r4, 0 + 633a: 0c0c bf 0x6352 // 6352 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report onoff"); + rf_info.switc_flag = 0x00; + 633c: 3b80 bclri r3, 0 + 633e: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,PASSIVE); + 6340: 3202 movi r2, 2 + 6342: 116c lrw r3, 0x200003d4 // 63f0 + 6344: 8362 ld.b r3, (r3, 0x2) + 6346: 4b67 lsri r3, r3, 7 + 6348: b840 st.w r2, (r14, 0x0) + 634a: 3101 movi r1, 1 + 634c: 3201 movi r2, 1 + } + else if(rf_info.valve_flag == 0x01) //阀门状态 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + rf_info.valve_flag = 0x00; + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 634e: 3005 movi r0, 5 + 6350: 041e br 0x638c // 638c + else if(rf_info.model_flag == 0x01) //模式 + 6352: 3402 movi r4, 2 + 6354: 6904 and r4, r1 + 6356: 3c40 cmpnei r4, 0 + 6358: 0c0c bf 0x6370 // 6370 + rf_info.model_flag = 0x00; + 635a: 3b81 bclri r3, 1 + 635c: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,PASSIVE); + 635e: 3202 movi r2, 2 + 6360: 1164 lrw r3, 0x200003d4 // 63f0 + 6362: 8362 ld.b r3, (r3, 0x2) + 6364: 4379 lsli r3, r3, 25 + 6366: b840 st.w r2, (r14, 0x0) + 6368: 4b7d lsri r3, r3, 29 + 636a: 3204 movi r2, 4 + 636c: 3102 movi r1, 2 + 636e: 07f0 br 0x634e // 634e + else if(rf_info.setc_flag == 0x01) //设置温度 + 6370: 3404 movi r4, 4 + 6372: 6904 and r4, r1 + 6374: 3c40 cmpnei r4, 0 + 6376: 0c0f bf 0x6394 // 6394 + rf_info.setc_flag = 0x00; + 6378: 3b82 bclri r3, 2 + 637a: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),PASSIVE); + 637c: 320a movi r2, 10 + 637e: 107d lrw r3, 0x200003d4 // 63f0 + 6380: 8361 ld.b r3, (r3, 0x1) + 6382: 7cc8 mult r3, r2 + 6384: 3202 movi r2, 2 + 6386: b840 st.w r2, (r14, 0x0) + 6388: 3110 movi r1, 16 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 638a: 3008 movi r0, 8 + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 638c: e3fffe7c bsr 0x6084 // 6084 + } + } + 6390: 1401 addi r14, r14, 4 + 6392: 1491 pop r4, r15 + else if(rf_info.fan_flag == 0x01) //风速 + 6394: 3410 movi r4, 16 + 6396: 6904 and r4, r1 + 6398: 3c40 cmpnei r4, 0 + 639a: 0c0c bf 0x63b2 // 63b2 + rf_info.fan_flag = 0x00; + 639c: 3b84 bclri r3, 4 + 639e: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,PASSIVE); + 63a0: 3202 movi r2, 2 + 63a2: 1074 lrw r3, 0x200003d4 // 63f0 + 63a4: 8362 ld.b r3, (r3, 0x2) + 63a6: 437c lsli r3, r3, 28 + 63a8: b840 st.w r2, (r14, 0x0) + 63aa: 4b7d lsri r3, r3, 29 + 63ac: 3204 movi r2, 4 + 63ae: 3140 movi r1, 64 + 63b0: 07cf br 0x634e // 634e + else if(rf_info.roomc_flag == 0x01) //室内温度 + 63b2: 3420 movi r4, 32 + 63b4: 6904 and r4, r1 + 63b6: 3c40 cmpnei r4, 0 + 63b8: 0c0c bf 0x63d0 // 63d0 + rf_info.roomc_flag = 0x00; + 63ba: 3b85 bclri r3, 5 + 63bc: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 63be: 104d lrw r2, 0x200003d4 // 63f0 + 63c0: 8269 ld.b r3, (r2, 0x9) + 63c2: 8228 ld.b r1, (r2, 0x8) + 63c4: 4368 lsli r3, r3, 8 + 63c6: 6cc4 or r3, r1 + 63c8: b800 st.w r0, (r14, 0x0) + 63ca: 3202 movi r2, 2 + 63cc: 3118 movi r1, 24 + 63ce: 07de br 0x638a // 638a + else if(rf_info.valve_flag == 0x01) //阀门状态 + 63d0: 7446 sextb r1, r1 + 63d2: 39df btsti r1, 31 + 63d4: 0fde bf 0x6390 // 6390 + rf_info.valve_flag = 0x00; + 63d6: 317f movi r1, 127 + 63d8: 68c4 and r3, r1 + 63da: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 63dc: 3124 movi r1, 36 + 63de: 1065 lrw r3, 0x200003d4 // 63f0 + 63e0: 8362 ld.b r3, (r3, 0x2) + 63e2: 437f lsli r3, r3, 31 + 63e4: 4b7f lsri r3, r3, 31 + 63e6: b800 st.w r0, (r14, 0x0) + 63e8: 3204 movi r2, 4 + 63ea: 07b2 br 0x634e // 634e + 63ec: 200005a0 .long 0x200005a0 + 63f0: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Relay_Init: + +000063f4 : +#include "includes.h" + + +void Relay_Init(void) +{ + 63f4: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,RLY1_HOT_PIN,Output); + 63f6: 10b9 lrw r5, 0x2000004c // 6458 + 63f8: 3200 movi r2, 0 + 63fa: 9500 ld.w r0, (r5, 0x0) + 63fc: 310e movi r1, 14 + 63fe: e3ffdcc5 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 6402: 1097 lrw r4, 0x20000048 // 645c + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + 6404: 3200 movi r2, 0 + 6406: 9500 ld.w r0, (r5, 0x0) + 6408: 310f movi r1, 15 + 640a: e3ffdcbf bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 640e: 9400 ld.w r0, (r4, 0x0) + 6410: 3200 movi r2, 0 + 6412: 3101 movi r1, 1 + 6414: e3ffdcba bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY4_MID_PIN,Output); + 6418: 9400 ld.w r0, (r4, 0x0) + 641a: 3200 movi r2, 0 + 641c: 3102 movi r1, 2 + 641e: e3ffdcb5 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY5_LOW_PIN,Output); + 6422: 3200 movi r2, 0 + 6424: 9400 ld.w r0, (r4, 0x0) + 6426: 3103 movi r1, 3 + 6428: e3ffdcb0 bsr 0x1d88 // 1d88 + + RLY1_HOT_CLOSE; + 642c: 9500 ld.w r0, (r5, 0x0) + 642e: 310e movi r1, 14 + 6430: e3ffdd38 bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 6434: 9500 ld.w r0, (r5, 0x0) + 6436: 310f movi r1, 15 + 6438: e3ffdd34 bsr 0x1ea0 // 1ea0 + RLY3_HIGH_CLOSE; + 643c: 9400 ld.w r0, (r4, 0x0) + 643e: 3101 movi r1, 1 + 6440: e3ffdd30 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 6444: 9400 ld.w r0, (r4, 0x0) + 6446: 3102 movi r1, 2 + 6448: e3ffdd2c bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 644c: 9400 ld.w r0, (r4, 0x0) + 644e: 3103 movi r1, 3 + 6450: e3ffdd28 bsr 0x1ea0 // 1ea0 + +} + 6454: 1492 pop r4-r5, r15 + 6456: 0000 bkpt + 6458: 2000004c .long 0x2000004c + 645c: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_High: + +00006460 : + + +void Relay_High(void) +{ + 6460: 14d1 push r4, r15 + RLY3_HIGH_OPEN; + 6462: 1088 lrw r4, 0x20000048 // 6480 + 6464: 3101 movi r1, 1 + 6466: 9400 ld.w r0, (r4, 0x0) + 6468: e3ffdd18 bsr 0x1e98 // 1e98 + RLY4_MID_CLOSE; + 646c: 9400 ld.w r0, (r4, 0x0) + 646e: 3102 movi r1, 2 + 6470: e3ffdd18 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 6474: 9400 ld.w r0, (r4, 0x0) + 6476: 3103 movi r1, 3 + 6478: e3ffdd14 bsr 0x1ea0 // 1ea0 +} + 647c: 1491 pop r4, r15 + 647e: 0000 bkpt + 6480: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Mid: + +00006484 : + + +void Relay_Mid(void) +{ + 6484: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 6486: 1088 lrw r4, 0x20000048 // 64a4 + 6488: 3101 movi r1, 1 + 648a: 9400 ld.w r0, (r4, 0x0) + 648c: e3ffdd0a bsr 0x1ea0 // 1ea0 + RLY4_MID_OPEN; + 6490: 9400 ld.w r0, (r4, 0x0) + 6492: 3102 movi r1, 2 + 6494: e3ffdd02 bsr 0x1e98 // 1e98 + RLY5_LOW_CLOSE; + 6498: 9400 ld.w r0, (r4, 0x0) + 649a: 3103 movi r1, 3 + 649c: e3ffdd02 bsr 0x1ea0 // 1ea0 +} + 64a0: 1491 pop r4, r15 + 64a2: 0000 bkpt + 64a4: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Low: + +000064a8 : + + + +void Relay_Low(void) +{ + 64a8: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 64aa: 1088 lrw r4, 0x20000048 // 64c8 + 64ac: 3101 movi r1, 1 + 64ae: 9400 ld.w r0, (r4, 0x0) + 64b0: e3ffdcf8 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 64b4: 9400 ld.w r0, (r4, 0x0) + 64b6: 3102 movi r1, 2 + 64b8: e3ffdcf4 bsr 0x1ea0 // 1ea0 + RLY5_LOW_OPEN; + 64bc: 9400 ld.w r0, (r4, 0x0) + 64be: 3103 movi r1, 3 + 64c0: e3ffdcec bsr 0x1e98 // 1e98 +} + 64c4: 1491 pop r4, r15 + 64c6: 0000 bkpt + 64c8: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Stop: + +000064cc : + +void Relay_Stop(void) +{ + 64cc: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 64ce: 1088 lrw r4, 0x20000048 // 64ec + 64d0: 3101 movi r1, 1 + 64d2: 9400 ld.w r0, (r4, 0x0) + 64d4: e3ffdce6 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 64d8: 9400 ld.w r0, (r4, 0x0) + 64da: 3102 movi r1, 2 + 64dc: e3ffdce2 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 64e0: 9400 ld.w r0, (r4, 0x0) + 64e2: 3103 movi r1, 3 + 64e4: e3ffdcde bsr 0x1ea0 // 1ea0 +} + 64e8: 1491 pop r4, r15 + 64ea: 0000 bkpt + 64ec: 20000048 .long 0x20000048 + +Disassembly of section .text.NetCRC16: + +000064f0 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 64f0: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 64f2: 3902 cmphsi r1, 3 + 64f4: 0c1f bf 0x6532 // 6532 + U16_T alen = len-2; //CRC16??????? + 64f6: 2901 subi r1, 2 + 64f8: 7445 zexth r1, r1 + 64fa: 6d43 mov r5, r0 + 64fc: 3200 movi r2, 0 + 64fe: 106e lrw r3, 0xffff // 6534 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 6508: 6d8f mov r6, r3 + 650a: 699c and r6, r7 + 650c: 3e40 cmpnei r6, 0 + 650e: 4b61 lsri r3, r3, 1 + 6510: 0c04 bf 0x6518 // 6518 + 6512: 10ca lrw r6, 0xffffa001 // 6538 + 6514: 6cd9 xor r3, r6 + 6516: 74cd zexth r3, r3 + 6518: 2c00 subi r4, 1 + 651a: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 651c: 3c40 cmpnei r4, 0 + 651e: 0bf5 bt 0x6508 // 6508 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 652a: 6040 addu r1, r0 + 652c: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 652e: 4b68 lsri r3, r3, 8 + 6530: a161 st.b r3, (r1, 0x1) +} + 6532: 1484 pop r4-r7 + 6534: 0000ffff .long 0x0000ffff + 6538: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +0000653c : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 653c: 14c3 push r4-r6 + 653e: 6cc3 mov r3, r0 + 6540: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 6542: 10ac lrw r5, 0xffffa001 // 6570 + xda = 0xFFFF ; + 6544: 100c lrw r0, 0xffff // 6574 + for (i = 0; i < len; i++) + 6546: 644e cmpne r3, r1 + 6548: 0802 bt 0x654c // 654c + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 654a: 1483 pop r4-r6 + xda ^= aStr[i] ; + 654c: 8340 ld.b r2, (r3, 0x0) + 654e: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 6550: 3601 movi r6, 1 + xda ^= aStr[i] ; + 6552: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 6554: 6d03 mov r4, r0 + 6556: 6918 and r4, r6 + 6558: 3c40 cmpnei r4, 0 + 655a: 4801 lsri r0, r0, 1 + 655c: 0c03 bf 0x6562 // 6562 + 655e: 6c15 xor r0, r5 + 6560: 7401 zexth r0, r0 + 6562: 2a00 subi r2, 1 + 6564: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 6566: 3a40 cmpnei r2, 0 + 6568: 0bf6 bt 0x6554 // 6554 + 656a: 2300 addi r3, 1 + 656c: 07ed br 0x6546 // 6546 + 656e: 0000 bkpt + 6570: ffffa001 .long 0xffffa001 + 6574: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00006578 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 6578: 6cc3 mov r3, r0 + 657a: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 657c: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 657e: 644e cmpne r3, r1 + 6580: 0802 bt 0x6584 // 6584 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 6582: 783c jmp r15 + sor_data = sor_data+Data[i]; + 6584: 8340 ld.b r2, (r3, 0x0) + 6586: 6008 addu r0, r2 + 6588: 7400 zextb r0, r0 + 658a: 2300 addi r3, 1 + 658c: 07f9 br 0x657e // 657e + +Disassembly of section .text.Rs485AskCycleSend: + +00006590 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 6590: 14d0 push r15 + 6592: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 6594: 3355 movi r3, 85 + 6596: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 659a: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 659e: 3300 movi r3, 0 + 65a0: 2b11 subi r3, 18 + 65a2: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 65a6: 3315 movi r3, 21 + 65a8: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 65ac: 3303 movi r3, 3 + 65ae: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 65b2: 1171 lrw r3, 0x20000350 // 6674 + 65b4: 8360 ld.b r3, (r3, 0x0) + 65b6: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 65ba: 3300 movi r3, 0 + 65bc: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 65c0: 116e lrw r3, 0x200003d4 // 6678 + 65c2: 8342 ld.b r2, (r3, 0x2) + 65c4: 4a27 lsri r1, r2, 7 + 65c6: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 65ca: 3100 movi r1, 0 + 65cc: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 65d0: 3170 movi r1, 112 + 65d2: 6884 and r2, r1 + 65d4: 3a40 cmpnei r2, 0 + 65d6: 0841 bt 0x6658 // 6658 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 65d8: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 65da: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 65de: 8341 ld.b r2, (r3, 0x1) + 65e0: 3a40 cmpnei r2, 0 + 65e2: 0802 bt 0x65e6 // 65e6 + 65e4: 3220 movi r2, 32 + 65e6: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 65ea: 3200 movi r2, 0 + 65ec: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 65f0: 8342 ld.b r2, (r3, 0x2) + 65f2: 425c lsli r2, r2, 28 + 65f4: 4a5d lsri r2, r2, 29 + 65f6: 3104 movi r1, 4 + 65f8: 604a subu r1, r2 + 65fa: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 65fc: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 65fe: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 6602: 0c35 bf 0x666c // 666c + 6604: 3a03 cmphsi r2, 4 + 6606: 0803 bt 0x660c // 660c + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动 + 6608: dc2e000d st.b r1, (r14, 0xd) + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 660c: 3200 movi r2, 0 + 660e: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 6612: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 6616: 8342 ld.b r2, (r3, 0x2) + 6618: 425f lsli r2, r2, 31 + 661a: 4a5f lsri r2, r2, 31 + 661c: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 661e: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 6620: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6624: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 6626: 3200 movi r2, 0 + 6628: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 662c: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 6630: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6634: 0802 bt 0x6638 // 6638 + 6636: 3320 movi r3, 32 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6638: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 663a: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 663e: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 6640: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6642: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 6644: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6648: e3ffff54 bsr 0x64f0 // 64f0 + + MCU485_SendData(SendData, 24); + 664c: 3118 movi r1, 24 + 664e: 6c3b mov r0, r14 + 6650: e3ffea3a bsr 0x3ac4 // 3ac4 + +} + 6654: 1406 addi r14, r14, 24 + 6656: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 6658: 3120 movi r1, 32 + 665a: 644a cmpne r2, r1 + 665c: 0803 bt 0x6662 // 6662 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 665e: 3202 movi r2, 2 + 6660: 07bd br 0x65da // 65da + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 6662: 3140 movi r1, 64 + 6664: 644a cmpne r2, r1 + 6666: 0bbc bt 0x65de // 65de + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 6668: 3203 movi r2, 3 + 666a: 07b8 br 0x65da // 65da + SendData[13] = 0x00; // + 666c: 3200 movi r2, 0 + 666e: dc4e000d st.b r2, (r14, 0xd) + break; + 6672: 07cd br 0x660c // 660c + 6674: 20000350 .long 0x20000350 + 6678: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Rs485AskCtrlSend: + +0000667c : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 667c: 14d0 push r15 + 667e: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 6680: 3355 movi r3, 85 + 6682: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 6686: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 668a: 3300 movi r3, 0 + 668c: 2b11 subi r3, 18 + 668e: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 6692: 3307 movi r3, 7 + 6694: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 6698: 3303 movi r3, 3 + 669a: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 669e: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 66a0: 106a lrw r3, 0x20000350 // 66c8 + 66a2: 8360 ld.b r3, (r3, 0x0) + 66a4: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 66a8: 8066 ld.b r3, (r0, 0x6) + 66aa: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 66ae: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66b0: 3003 movi r0, 3 + 66b2: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 66b4: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66b8: e3ffff1c bsr 0x64f0 // 64f0 + + MCU485_SendData(SendData, 10); + 66bc: 310a movi r1, 10 + 66be: 6c3b mov r0, r14 + 66c0: e3ffea02 bsr 0x3ac4 // 3ac4 + +} + 66c4: 1403 addi r14, r14, 12 + 66c6: 1490 pop r15 + 66c8: 20000350 .long 0x20000350 + +Disassembly of section .text.Rs485AskReadSend: + +000066cc : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 66cc: 14d0 push r15 + 66ce: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 66d0: 3355 movi r3, 85 + 66d2: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 66d6: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 66da: 3300 movi r3, 0 + 66dc: 2b11 subi r3, 18 + 66de: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x08; //长度 + 66e2: 3308 movi r3, 8 + 66e4: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 66e8: 3303 movi r3, 3 + 66ea: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66ee: 3108 movi r1, 8 + SendData[5] = g_eeprom.dev_addr; + 66f0: 106b lrw r3, 0x20000350 // 671c + 66f2: 8360 ld.b r3, (r3, 0x0) + 66f4: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6]; + 66f8: 8066 ld.b r3, (r0, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66fa: 3003 movi r0, 3 + SendData[6] = Recdata[6]; + 66fc: dc6e0006 st.b r3, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6700: 6038 addu r0, r14 + SendData[7] = Project_FW_Version; + 6702: 3301 movi r3, 1 + 6704: dc6e0007 st.b r3, (r14, 0x7) + SendData[8] = Project_HW_Version; + 6708: dc6e0008 st.b r3, (r14, 0x8) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 670c: e3fffef2 bsr 0x64f0 // 64f0 + + MCU485_SendData(SendData, 11); + 6710: 310b movi r1, 11 + 6712: 6c3b mov r0, r14 + 6714: e3ffe9d8 bsr 0x3ac4 // 3ac4 + +} + 6718: 1403 addi r14, r14, 12 + 671a: 1490 pop r15 + 671c: 20000350 .long 0x20000350 + +Disassembly of section .text.Temp_Rec_Analysis: + +00006720 : + + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 6720: 14d2 push r4-r5, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 6722: 3300 movi r3, 0 + 6724: 2b08 subi r3, 9 + 6726: 60c4 addu r3, r1 + 6728: 74cd zexth r3, r3 + 672a: 3b01 cmphsi r3, 2 +{ + 672c: 6d03 mov r4, r0 + if(((0x09 != Len) && (0x0A != Len)) + 672e: 08a5 bt 0x6878 // 6878 + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 6730: 8060 ld.b r3, (r0, 0x0) + 6732: 3255 movi r2, 85 + 6734: 648e cmpne r3, r2 + 6736: 08a1 bt 0x6878 // 6878 + 6738: 8041 ld.b r2, (r0, 0x1) + 673a: 64ca cmpne r2, r3 + 673c: 089e bt 0x6878 // 6878 + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 673e: 8042 ld.b r2, (r0, 0x2) + 6740: 33ee movi r3, 238 + 6742: 64ca cmpne r2, r3 + 6744: 089a bt 0x6878 // 6878 + 6746: 8063 ld.b r3, (r0, 0x3) + 6748: 5baa addi r5, r3, 3 + 674a: 6456 cmpne r5, r1 + 674c: 0896 bt 0x6878 // 6878 + || (Tem_Type != RecData[4]) + 674e: 8044 ld.b r2, (r0, 0x4) + 6750: 3a43 cmpnei r2, 3 + 6752: 0893 bt 0x6878 // 6878 + || (g_eeprom.dev_addr != RecData[5]) + 6754: 124a lrw r2, 0x20000350 // 687c + 6756: 8220 ld.b r1, (r2, 0x0) + 6758: 8045 ld.b r2, (r0, 0x5) + 675a: 6486 cmpne r1, r2 + 675c: 088e bt 0x6878 // 6878 + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 675e: 2b01 subi r3, 2 + 6760: 744d zexth r1, r3 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 6762: 6150 addu r5, r4 + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 6764: 2002 addi r0, 3 + 6766: e3fffeeb bsr 0x653c // 653c + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 676a: 5d63 subi r3, r5, 1 + 676c: 8360 ld.b r3, (r3, 0x0) + 676e: 2d01 subi r5, 2 + 6770: 4368 lsli r3, r3, 8 + 6772: 8540 ld.b r2, (r5, 0x0) + 6774: 60c8 addu r3, r2 + 6776: 64c2 cmpne r0, r3 + 6778: 0880 bt 0x6878 // 6878 + { + switch(RecData[6]) + 677a: 8466 ld.b r3, (r4, 0x6) + 677c: 3b4a cmpnei r3, 10 + 677e: 0c27 bf 0x67cc // 67cc + 6780: 3b0a cmphsi r3, 11 + 6782: 080e bt 0x679e // 679e + 6784: 2b00 subi r3, 1 + 6786: 3203 movi r2, 3 + 6788: 64c8 cmphs r2, r3 + 678a: 0824 bt 0x67d2 // 67d2 + TempCtrl.CardState = 0x01; + } + } + break; + } + switch(RecData[6]) + 678c: 8406 ld.b r0, (r4, 0x6) + 678e: 2800 subi r0, 1 + 6790: 3803 cmphsi r0, 4 + 6792: 082d bt 0x67ec // 67ec + 6794: 8467 ld.b r3, (r4, 0x7) + 6796: e3ffd2b3 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 679a: 3824 .short 0x3824 + 679c: 5c50 .short 0x5c50 + switch(RecData[6]) + 679e: 3b50 cmpnei r3, 16 + 67a0: 0c1d bf 0x67da // 67da + 67a2: 3b51 cmpnei r3, 17 + 67a4: 0bf4 bt 0x678c // 678c + Rs485AskCtrlSend(RecData); + 67a6: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 67a8: 11b6 lrw r5, 0x200003d4 // 6880 + Rs485AskCtrlSend(RecData); + 67aa: e3ffff69 bsr 0x667c // 667c + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 67ae: 855a ld.b r2, (r5, 0x1a) + 67b0: 1135 lrw r1, 0x7f71 // 6884 + 67b2: 3000 movi r0, 0 + 67b4: e3ffe9cc bsr 0x3b4c // 3b4c + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 67b8: 8467 ld.b r3, (r4, 0x7) + 67ba: 855a ld.b r2, (r5, 0x1a) + 67bc: 64ca cmpne r2, r3 + 67be: 0fe7 bf 0x678c // 678c + if(TempCtrl.CardEn == 0x00) + 67c0: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 67c2: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 67c4: 0be4 bt 0x678c // 678c + TempCtrl.CardState = 0x01; + 67c6: 3301 movi r3, 1 + 67c8: a578 st.b r3, (r5, 0x18) + 67ca: 07e1 br 0x678c // 678c + Rs485AskCycleSend(); + 67cc: e3fffee2 bsr 0x6590 // 6590 + 67d0: 07de br 0x678c // 678c + Rs485AskCtrlSend(RecData); + 67d2: 6c13 mov r0, r4 + 67d4: e3ffff54 bsr 0x667c // 667c + 67d8: 07da br 0x678c // 678c + Rs485AskReadSend(RecData); //版本号查询 + 67da: 6c13 mov r0, r4 + 67dc: e3ffff78 bsr 0x66cc // 66cc + 67e0: 07d6 br 0x678c // 678c + { + case 0x01: //开关机命令 + switch(RecData[7]) + 67e2: 74cc zextb r3, r3 + 67e4: 3b40 cmpnei r3, 0 + 67e6: 0c05 bf 0x67f0 // 67f0 + 67e8: 3b41 cmpnei r3, 1 + 67ea: 0c09 bf 0x67fc // 67fc + break; + } + break; + } + + return ret; + 67ec: 3000 movi r0, 0 + 67ee: 0446 br 0x687a // 687a + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 67f0: 1144 lrw r2, 0x200003d4 // 6880 + 67f2: 8262 ld.b r3, (r2, 0x2) + 67f4: 317f movi r1, 127 + 67f6: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 67f8: a262 st.b r3, (r2, 0x2) + 67fa: 07f9 br 0x67ec // 67ec + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 67fc: 1121 lrw r1, 0x200003d4 // 6880 + 67fe: 3200 movi r2, 0 + 6800: 8162 ld.b r3, (r1, 0x2) + 6802: 2a7f subi r2, 128 + 6804: 6cc8 or r3, r2 + 6806: a162 st.b r3, (r1, 0x2) + 6808: 07f2 br 0x67ec // 67ec + switch(RecData[7]) // + 680a: 74cc zextb r3, r3 + 680c: 3b42 cmpnei r3, 2 + 680e: 0c0a bf 0x6822 // 6822 + 6810: 3b43 cmpnei r3, 3 + 6812: 0c0e bf 0x682e // 682e + 6814: 3b41 cmpnei r3, 1 + 6816: 0beb bt 0x67ec // 67ec + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6818: 105a lrw r2, 0x200003d4 // 6880 + 681a: 8262 ld.b r3, (r2, 0x2) + 681c: 3170 movi r1, 112 + 681e: 68c5 andn r3, r1 + 6820: 07ec br 0x67f8 // 67f8 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6822: 1058 lrw r2, 0x200003d4 // 6880 + 6824: 8262 ld.b r3, (r2, 0x2) + 6826: 3170 movi r1, 112 + 6828: 68c5 andn r3, r1 + 682a: 3ba5 bseti r3, 5 + 682c: 07e6 br 0x67f8 // 67f8 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 682e: 1055 lrw r2, 0x200003d4 // 6880 + 6830: 8262 ld.b r3, (r2, 0x2) + 6832: 3170 movi r1, 112 + 6834: 68c5 andn r3, r1 + 6836: 3ba6 bseti r3, 6 + 6838: 07e0 br 0x67f8 // 67f8 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] <= TEM_MAX_SET)) //在指定温度范围内 + 683a: 3200 movi r2, 0 + 683c: 74cc zextb r3, r3 + 683e: 2a0f subi r2, 16 + 6840: 608c addu r2, r3 + 6842: 7488 zextb r2, r2 + 6844: 3a10 cmphsi r2, 17 + 6846: 0bd3 bt 0x67ec // 67ec + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 6848: 301f movi r0, 31 + 684a: 68c0 and r3, r0 + 684c: 104d lrw r2, 0x200003d4 // 6880 + 684e: a261 st.b r3, (r2, 0x1) + 6850: 07ce br 0x67ec // 67ec + switch(RecData[7]) //风速 + 6852: 740c zextb r0, r3 + 6854: 106b lrw r3, 0x200003d4 // 6880 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 6856: 8342 ld.b r2, (r3, 0x2) + 6858: 310e movi r1, 14 + switch(RecData[7]) //风速 + 685a: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 685c: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 685e: 080b bt 0x6874 // 6874 + 6860: e3ffd24e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6864: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 6868: 3aa1 bseti r2, 1 + 686a: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 686c: a342 st.b r2, (r3, 0x2) + 686e: 07bf br 0x67ec // 67ec + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 6870: 3aa2 bseti r2, 2 + 6872: 07fd br 0x686c // 686c + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 6874: 3aa1 bseti r2, 1 + 6876: 07fb br 0x686c // 686c + return ret = 0x01; + 6878: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 687a: 1492 pop r4-r5, r15 + 687c: 20000350 .long 0x20000350 + 6880: 200003d4 .long 0x200003d4 + 6884: 00007f71 .long 0x00007f71 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00006888 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 6888: 14d2 push r4-r5, r15 + 688a: 6d03 mov r4, r0 + 688c: 6d47 mov r5, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 688e: e3ffff49 bsr 0x6720 // 6720 + 6892: 3840 cmpnei r0, 0 + 6894: 0803 bt 0x689a // 689a + { + return ret = 1; + } + } + + return ret; + 6896: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 6898: 0409 br 0x68aa // 68aa + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 689a: 8440 ld.b r2, (r4, 0x0) + 689c: 33ff movi r3, 255 + 689e: 64ca cmpne r2, r3 + 68a0: 0c06 bf 0x68ac // 68ac + 68a2: 8461 ld.b r3, (r4, 0x1) + 68a4: 3b48 cmpnei r3, 8 + 68a6: 0c03 bf 0x68ac // 68ac + return ret = 1; + 68a8: 3001 movi r0, 1 + 68aa: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 68ac: 1125 lrw r1, 0x7f80 // 6940 + 68ae: 3000 movi r0, 0 + 68b0: e3ffe94e bsr 0x3b4c // 3b4c + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 68b4: 3d45 cmpnei r5, 5 + 68b6: 0814 bt 0x68de // 68de + 68b8: 3104 movi r1, 4 + 68ba: 6c13 mov r0, r4 + 68bc: e3fffe5e bsr 0x6578 // 6578 + 68c0: 8464 ld.b r3, (r4, 0x4) + 68c2: 640e cmpne r3, r0 + 68c4: 0bf2 bt 0x68a8 // 68a8 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 68c6: 1160 lrw r3, 0x200003d4 // 6944 + 68c8: 8442 ld.b r2, (r4, 0x2) + 68ca: 8338 ld.b r1, (r3, 0x18) + 68cc: 6486 cmpne r1, r2 + 68ce: 0fe4 bf 0x6896 // 6896 + 68d0: 833a ld.b r1, (r3, 0x1a) + 68d2: 3941 cmpnei r1, 1 + 68d4: 0be1 bt 0x6896 // 6896 + TempCtrl.CardState = RecData[2]; + 68d6: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 68d8: 3201 movi r2, 1 + 68da: a359 st.b r2, (r3, 0x19) + 68dc: 07dd br 0x6896 // 6896 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 68de: 3d09 cmphsi r5, 10 + 68e0: 0fe4 bf 0x68a8 // 68a8 + 68e2: 5d27 subi r1, r5, 2 + 68e4: 7445 zexth r1, r1 + 68e6: 6150 addu r5, r4 + 68e8: 6c13 mov r0, r4 + 68ea: e3fffe29 bsr 0x653c // 653c + 68ee: 5d63 subi r3, r5, 1 + 68f0: 8360 ld.b r3, (r3, 0x0) + 68f2: 2d01 subi r5, 2 + 68f4: 4368 lsli r3, r3, 8 + 68f6: 8540 ld.b r2, (r5, 0x0) + 68f8: 60c8 addu r3, r2 + 68fa: 64c2 cmpne r0, r3 + 68fc: 0bd6 bt 0x68a8 // 68a8 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 68fe: 1072 lrw r3, 0x200003d4 // 6944 + 6900: 8443 ld.b r2, (r4, 0x3) + 6902: 8338 ld.b r1, (r3, 0x18) + 6904: 6486 cmpne r1, r2 + 6906: 0c07 bf 0x6914 // 6914 + 6908: 833a ld.b r1, (r3, 0x1a) + 690a: 3941 cmpnei r1, 1 + 690c: 0804 bt 0x6914 // 6914 + TempCtrl.CardState = RecData[3]; + 690e: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 6910: 3201 movi r2, 1 + 6912: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 6914: 8447 ld.b r2, (r4, 0x7) + 6916: 833b ld.b r1, (r3, 0x1b) + 6918: 6486 cmpne r1, r2 + 691a: 0c0d bf 0x6934 // 6934 + TempCtrl.SceneNo = RecData[7]; + 691c: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 691e: 104b lrw r2, 0x200000b8 // 6948 + 6920: 9240 ld.w r2, (r2, 0x0) + 6922: 4a28 lsri r1, r2, 8 + 6924: a354 st.b r2, (r3, 0x14) + 6926: a335 st.b r1, (r3, 0x15) + 6928: 4a30 lsri r1, r2, 16 + 692a: 4a58 lsri r2, r2, 24 + 692c: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 692e: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 6930: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 6932: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 6934: 835b ld.b r2, (r3, 0x1b) + 6936: 1026 lrw r1, 0x7f92 // 694c + 6938: 3000 movi r0, 0 + 693a: e3ffe909 bsr 0x3b4c // 3b4c + 693e: 07ac br 0x6896 // 6896 + 6940: 00007f80 .long 0x00007f80 + 6944: 200003d4 .long 0x200003d4 + 6948: 200000b8 .long 0x200000b8 + 694c: 00007f92 .long 0x00007f92 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00006950 : + 6950: 1063 lrw r3, 0x20000058 // 695c + 6952: 9340 ld.w r2, (r3, 0x0) + 6954: 926b ld.w r3, (r2, 0x2c) + 6956: 6c0c or r0, r3 + 6958: b20b st.w r0, (r2, 0x2c) + 695a: 783c jmp r15 + 695c: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00006960 : + 6960: 14c1 push r4 + 6962: 1069 lrw r3, 0x20000058 // 6984 + 6964: 3840 cmpnei r0, 0 + 6966: 9380 ld.w r4, (r3, 0x0) + 6968: 9400 ld.w r0, (r4, 0x0) + 696a: 0c0b bf 0x6980 // 6980 + 696c: 38a0 bseti r0, 0 + 696e: b400 st.w r0, (r4, 0x0) + 6970: 9360 ld.w r3, (r3, 0x0) + 6972: 4248 lsli r2, r2, 8 + 6974: 4122 lsli r1, r1, 2 + 6976: 9300 ld.w r0, (r3, 0x0) + 6978: 6c48 or r1, r2 + 697a: 6c40 or r1, r0 + 697c: b320 st.w r1, (r3, 0x0) + 697e: 1481 pop r4 + 6980: 3880 bclri r0, 0 + 6982: 07f6 br 0x696e // 696e + 6984: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +00006988 : + 6988: 14c4 push r4-r7 + 698a: 1429 subi r14, r14, 36 + 698c: b840 st.w r2, (r14, 0x0) + 698e: 984d ld.w r2, (r14, 0x34) + 6990: b841 st.w r2, (r14, 0x4) + 6992: 984e ld.w r2, (r14, 0x38) + 6994: b842 st.w r2, (r14, 0x8) + 6996: 984f ld.w r2, (r14, 0x3c) + 6998: b843 st.w r2, (r14, 0xc) + 699a: 9850 ld.w r2, (r14, 0x40) + 699c: 9895 ld.w r4, (r14, 0x54) + 699e: b844 st.w r2, (r14, 0x10) + 69a0: 9853 ld.w r2, (r14, 0x4c) + 69a2: b845 st.w r2, (r14, 0x14) + 69a4: b887 st.w r4, (r14, 0x1c) + 69a6: 9854 ld.w r2, (r14, 0x50) + 69a8: 1c11 addi r4, r14, 68 + 69aa: b846 st.w r2, (r14, 0x18) + 69ac: 8c80 ld.h r4, (r4, 0x0) + 69ae: 1a15 addi r2, r14, 84 + 69b0: 1d12 addi r5, r14, 72 + 69b2: 8244 ld.b r2, (r2, 0x4) + 69b4: 3c40 cmpnei r4, 0 + 69b6: 8dc0 ld.h r6, (r5, 0x0) + 69b8: b848 st.w r2, (r14, 0x20) + 69ba: 0813 bt 0x69e0 // 69e0 + 69bc: 105f lrw r2, 0x2000004c // 6a38 + 69be: 35f0 movi r5, 240 + 69c0: 92e0 ld.w r7, (r2, 0x0) + 69c2: 9740 ld.w r2, (r7, 0x0) + 69c4: 45a4 lsli r5, r5, 4 + 69c6: 6895 andn r2, r5 + 69c8: 3aab bseti r2, 11 + 69ca: b740 st.w r2, (r7, 0x0) + 69cc: 3502 movi r5, 2 + 69ce: 105c lrw r2, 0x20000050 // 6a3c + 69d0: 3e41 cmpnei r6, 1 + 69d2: 9240 ld.w r2, (r2, 0x0) + 69d4: b2a0 st.w r5, (r2, 0x0) + 69d6: 0828 bt 0x6a26 // 6a26 + 69d8: 92a4 ld.w r5, (r2, 0x10) + 69da: 3db8 bseti r5, 24 + 69dc: 3db9 bseti r5, 25 + 69de: b2a4 st.w r5, (r2, 0x10) + 69e0: 1058 lrw r2, 0x20000058 // 6a40 + 69e2: 448d lsli r4, r4, 13 + 69e4: 92a0 ld.w r5, (r2, 0x0) + 69e6: 9541 ld.w r2, (r5, 0x4) + 69e8: 3200 movi r2, 0 + 69ea: b541 st.w r2, (r5, 0x4) + 69ec: 9541 ld.w r2, (r5, 0x4) + 69ee: 98c7 ld.w r6, (r14, 0x1c) + 69f0: 6c98 or r2, r6 + 69f2: 98c6 ld.w r6, (r14, 0x18) + 69f4: 6c98 or r2, r6 + 69f6: 98c5 ld.w r6, (r14, 0x14) + 69f8: 6c98 or r2, r6 + 69fa: 98c8 ld.w r6, (r14, 0x20) + 69fc: 46d8 lsli r6, r6, 24 + 69fe: 6c98 or r2, r6 + 6a00: 98c4 ld.w r6, (r14, 0x10) + 6a02: 6c98 or r2, r6 + 6a04: 98c3 ld.w r6, (r14, 0xc) + 6a06: 6c98 or r2, r6 + 6a08: 98c2 ld.w r6, (r14, 0x8) + 6a0a: 6c98 or r2, r6 + 6a0c: 98c1 ld.w r6, (r14, 0x4) + 6a0e: 6c98 or r2, r6 + 6a10: 6c48 or r1, r2 + 6a12: 9840 ld.w r2, (r14, 0x0) + 6a14: 6c04 or r0, r1 + 6a16: 4242 lsli r2, r2, 2 + 6a18: 6c08 or r0, r2 + 6a1a: 6d00 or r4, r0 + 6a1c: 4367 lsli r3, r3, 7 + 6a1e: 6cd0 or r3, r4 + 6a20: b561 st.w r3, (r5, 0x4) + 6a22: 1409 addi r14, r14, 36 + 6a24: 1484 pop r4-r7 + 6a26: 3e40 cmpnei r6, 0 + 6a28: 0bdc bt 0x69e0 // 69e0 + 6a2a: 9264 ld.w r3, (r2, 0x10) + 6a2c: 3b98 bclri r3, 24 + 6a2e: 3b99 bclri r3, 25 + 6a30: 3bb8 bseti r3, 24 + 6a32: b264 st.w r3, (r2, 0x10) + 6a34: 3300 movi r3, 0 + 6a36: 07d5 br 0x69e0 // 69e0 + 6a38: 2000004c .long 0x2000004c + 6a3c: 20000050 .long 0x20000050 + 6a40: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00006a44 : + 6a44: 14d4 push r4-r7, r15 + 6a46: 1422 subi r14, r14, 8 + 6a48: 1269 lrw r3, 0x2000004c // 6b6c + 6a4a: 31f0 movi r1, 240 + 6a4c: 9360 ld.w r3, (r3, 0x0) + 6a4e: 9340 ld.w r2, (r3, 0x0) + 6a50: 4130 lsli r1, r1, 16 + 6a52: 6885 andn r2, r1 + 6a54: 3ab4 bseti r2, 20 + 6a56: 3ab7 bseti r2, 23 + 6a58: b340 st.w r2, (r3, 0x0) + 6a5a: 35f0 movi r5, 240 + 6a5c: 1245 lrw r2, 0x2000010c // 6b70 + 6a5e: 36f0 movi r6, 240 + 6a60: 9240 ld.w r2, (r2, 0x0) + 6a62: b841 st.w r2, (r14, 0x4) + 6a64: 3400 movi r4, 0 + 6a66: 1244 lrw r2, 0x20000048 // 6b74 + 6a68: 45ac lsli r5, r5, 12 + 6a6a: 9240 ld.w r2, (r2, 0x0) + 6a6c: b820 st.w r1, (r14, 0x0) + 6a6e: 46c8 lsli r6, r6, 8 + 6a70: 3701 movi r7, 1 + 6a72: 71d0 lsl r7, r4 + 6a74: 9821 ld.w r1, (r14, 0x4) + 6a76: 69c4 and r7, r1 + 6a78: 3f40 cmpnei r7, 0 + 6a7a: 7410 zextb r0, r4 + 6a7c: 0c1b bf 0x6ab2 // 6ab2 + 6a7e: 2800 subi r0, 1 + 6a80: 380f cmphsi r0, 16 + 6a82: 080b bt 0x6a98 // 6a98 + 6a84: e3ffd13c bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6a88: 27201a0f .long 0x27201a0f + 6a8c: 3d38312c .long 0x3d38312c + 6a90: 56514a44 .long 0x56514a44 + 6a94: 6c67615b .long 0x6c67615b + 6a98: 9200 ld.w r0, (r2, 0x0) + 6a9a: 37f0 movi r7, 240 + 6a9c: 681d andn r0, r7 + 6a9e: 38a4 bseti r0, 4 + 6aa0: 38a7 bseti r0, 7 + 6aa2: b200 st.w r0, (r2, 0x0) + 6aa4: 0407 br 0x6ab2 // 6ab2 + 6aa6: 9300 ld.w r0, (r3, 0x0) + 6aa8: 370f movi r7, 15 + 6aaa: 681d andn r0, r7 + 6aac: 38a0 bseti r0, 0 + 6aae: 38a3 bseti r0, 3 + 6ab0: b300 st.w r0, (r3, 0x0) + 6ab2: 2400 addi r4, 1 + 6ab4: 3c51 cmpnei r4, 17 + 6ab6: 0bdd bt 0x6a70 // 6a70 + 6ab8: 1402 addi r14, r14, 8 + 6aba: 1494 pop r4-r7, r15 + 6abc: 9300 ld.w r0, (r3, 0x0) + 6abe: 37f0 movi r7, 240 + 6ac0: 681d andn r0, r7 + 6ac2: 38a4 bseti r0, 4 + 6ac4: 38a7 bseti r0, 7 + 6ac6: 07f5 br 0x6ab0 // 6ab0 + 6ac8: 37f0 movi r7, 240 + 6aca: 9300 ld.w r0, (r3, 0x0) + 6acc: 47e4 lsli r7, r7, 4 + 6ace: 681d andn r0, r7 + 6ad0: 38a8 bseti r0, 8 + 6ad2: 38ab bseti r0, 11 + 6ad4: 07ee br 0x6ab0 // 6ab0 + 6ad6: 9300 ld.w r0, (r3, 0x0) + 6ad8: 6819 andn r0, r6 + 6ada: 38ac bseti r0, 12 + 6adc: 38af bseti r0, 15 + 6ade: 07e9 br 0x6ab0 // 6ab0 + 6ae0: 9300 ld.w r0, (r3, 0x0) + 6ae2: 6815 andn r0, r5 + 6ae4: 38b0 bseti r0, 16 + 6ae6: 38b3 bseti r0, 19 + 6ae8: 07e4 br 0x6ab0 // 6ab0 + 6aea: 37f0 movi r7, 240 + 6aec: 9200 ld.w r0, (r2, 0x0) + 6aee: 47e4 lsli r7, r7, 4 + 6af0: 681d andn r0, r7 + 6af2: 38a8 bseti r0, 8 + 6af4: 38ab bseti r0, 11 + 6af6: 07d6 br 0x6aa2 // 6aa2 + 6af8: 9200 ld.w r0, (r2, 0x0) + 6afa: 6819 andn r0, r6 + 6afc: 38ac bseti r0, 12 + 6afe: 38af bseti r0, 15 + 6b00: 07d1 br 0x6aa2 // 6aa2 + 6b02: 9301 ld.w r0, (r3, 0x4) + 6b04: 370f movi r7, 15 + 6b06: 681d andn r0, r7 + 6b08: 38a0 bseti r0, 0 + 6b0a: 38a3 bseti r0, 3 + 6b0c: b301 st.w r0, (r3, 0x4) + 6b0e: 07d2 br 0x6ab2 // 6ab2 + 6b10: 9301 ld.w r0, (r3, 0x4) + 6b12: 37f0 movi r7, 240 + 6b14: 681d andn r0, r7 + 6b16: 38a4 bseti r0, 4 + 6b18: 38a7 bseti r0, 7 + 6b1a: 07f9 br 0x6b0c // 6b0c + 6b1c: 37f0 movi r7, 240 + 6b1e: 9301 ld.w r0, (r3, 0x4) + 6b20: 47e4 lsli r7, r7, 4 + 6b22: 681d andn r0, r7 + 6b24: 38a8 bseti r0, 8 + 6b26: 38ab bseti r0, 11 + 6b28: 07f2 br 0x6b0c // 6b0c + 6b2a: 9301 ld.w r0, (r3, 0x4) + 6b2c: 6819 andn r0, r6 + 6b2e: 38ac bseti r0, 12 + 6b30: 38af bseti r0, 15 + 6b32: 07ed br 0x6b0c // 6b0c + 6b34: 9301 ld.w r0, (r3, 0x4) + 6b36: 6815 andn r0, r5 + 6b38: 38b0 bseti r0, 16 + 6b3a: 38b3 bseti r0, 19 + 6b3c: 07e8 br 0x6b0c // 6b0c + 6b3e: 9301 ld.w r0, (r3, 0x4) + 6b40: 9820 ld.w r1, (r14, 0x0) + 6b42: 6805 andn r0, r1 + 6b44: 38b4 bseti r0, 20 + 6b46: 38b7 bseti r0, 23 + 6b48: 07e2 br 0x6b0c // 6b0c + 6b4a: 9200 ld.w r0, (r2, 0x0) + 6b4c: 370f movi r7, 15 + 6b4e: 681d andn r0, r7 + 6b50: 38a0 bseti r0, 0 + 6b52: 38a3 bseti r0, 3 + 6b54: 07a7 br 0x6aa2 // 6aa2 + 6b56: 9200 ld.w r0, (r2, 0x0) + 6b58: 6815 andn r0, r5 + 6b5a: 38b0 bseti r0, 16 + 6b5c: 38b3 bseti r0, 19 + 6b5e: 07a2 br 0x6aa2 // 6aa2 + 6b60: 9200 ld.w r0, (r2, 0x0) + 6b62: 9820 ld.w r1, (r14, 0x0) + 6b64: 6805 andn r0, r1 + 6b66: 38b4 bseti r0, 20 + 6b68: 38b7 bseti r0, 23 + 6b6a: 079c br 0x6aa2 // 6aa2 + 6b6c: 2000004c .long 0x2000004c + 6b70: 2000010c .long 0x2000010c + 6b74: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +00006b78 : + 6b78: 14c4 push r4-r7 + 6b7a: 1072 lrw r3, 0x20000054 // 6bc0 + 6b7c: 1012 lrw r0, 0x200008d2 // 6bc4 + 6b7e: 1093 lrw r4, 0x20000743 // 6bc8 + 6b80: 6d83 mov r6, r0 + 6b82: 93a0 ld.w r5, (r3, 0x0) + 6b84: 3300 movi r3, 0 + 6b86: 4342 lsli r2, r3, 2 + 6b88: 6094 addu r2, r5 + 6b8a: 9220 ld.w r1, (r2, 0x0) + 6b8c: 4341 lsli r2, r3, 1 + 6b8e: 6080 addu r2, r0 + 6b90: 7445 zexth r1, r1 + 6b92: aa20 st.h r1, (r2, 0x0) + 6b94: 8440 ld.b r2, (r4, 0x0) + 6b96: 3a41 cmpnei r2, 1 + 6b98: 080f bt 0x6bb6 // 6bb6 + 6b9a: 3300 movi r3, 0 + 6b9c: 10ec lrw r7, 0x2000062c // 6bcc + 6b9e: 4341 lsli r2, r3, 1 + 6ba0: 5e28 addu r1, r6, r2 + 6ba2: 8920 ld.h r1, (r1, 0x0) + 6ba4: 2300 addi r3, 1 + 6ba6: 7445 zexth r1, r1 + 6ba8: 609c addu r2, r7 + 6baa: 3b51 cmpnei r3, 17 + 6bac: aa20 st.h r1, (r2, 0x0) + 6bae: 0bf8 bt 0x6b9e // 6b9e + 6bb0: 3300 movi r3, 0 + 6bb2: a460 st.b r3, (r4, 0x0) + 6bb4: 3311 movi r3, 17 + 6bb6: 2300 addi r3, 1 + 6bb8: 74cc zextb r3, r3 + 6bba: 3b10 cmphsi r3, 17 + 6bbc: 0fe5 bf 0x6b86 // 6b86 + 6bbe: 1484 pop r4-r7 + 6bc0: 20000054 .long 0x20000054 + 6bc4: 200008d2 .long 0x200008d2 + 6bc8: 20000743 .long 0x20000743 + 6bcc: 2000062c .long 0x2000062c + +Disassembly of section .text.TKEYIntHandler: + +00006bd0 : + 6bd0: 1460 nie + 6bd2: 1462 ipush + 6bd4: 14d1 push r4, r15 + 6bd6: 109e lrw r4, 0x20000070 // 6c4c + 6bd8: 9460 ld.w r3, (r4, 0x0) + 6bda: 3b40 cmpnei r3, 0 + 6bdc: 080b bt 0x6bf2 // 6bf2 + 6bde: 3301 movi r3, 1 + 6be0: b460 st.w r3, (r4, 0x0) + 6be2: 107c lrw r3, 0x200006c0 // 6c50 + 6be4: 8360 ld.b r3, (r3, 0x0) + 6be6: 3b41 cmpnei r3, 1 + 6be8: 0805 bt 0x6bf2 // 6bf2 + 6bea: e3ffffc7 bsr 0x6b78 // 6b78 + 6bee: 3301 movi r3, 1 + 6bf0: a464 st.b r3, (r4, 0x4) + 6bf2: 1079 lrw r3, 0x20000058 // 6c54 + 6bf4: 3101 movi r1, 1 + 6bf6: 9360 ld.w r3, (r3, 0x0) + 6bf8: 934a ld.w r2, (r3, 0x28) + 6bfa: 6884 and r2, r1 + 6bfc: 3a40 cmpnei r2, 0 + 6bfe: 0c02 bf 0x6c02 // 6c02 + 6c00: b32c st.w r1, (r3, 0x30) + 6c02: 934a ld.w r2, (r3, 0x28) + 6c04: 3102 movi r1, 2 + 6c06: 6884 and r2, r1 + 6c08: 3a40 cmpnei r2, 0 + 6c0a: 0c02 bf 0x6c0e // 6c0e + 6c0c: b32c st.w r1, (r3, 0x30) + 6c0e: 934a ld.w r2, (r3, 0x28) + 6c10: 3104 movi r1, 4 + 6c12: 6884 and r2, r1 + 6c14: 3a40 cmpnei r2, 0 + 6c16: 0c02 bf 0x6c1a // 6c1a + 6c18: b32c st.w r1, (r3, 0x30) + 6c1a: 934a ld.w r2, (r3, 0x28) + 6c1c: 3108 movi r1, 8 + 6c1e: 6884 and r2, r1 + 6c20: 3a40 cmpnei r2, 0 + 6c22: 0c02 bf 0x6c26 // 6c26 + 6c24: b32c st.w r1, (r3, 0x30) + 6c26: 934a ld.w r2, (r3, 0x28) + 6c28: 3110 movi r1, 16 + 6c2a: 6884 and r2, r1 + 6c2c: 3a40 cmpnei r2, 0 + 6c2e: 0c02 bf 0x6c32 // 6c32 + 6c30: b32c st.w r1, (r3, 0x30) + 6c32: 934a ld.w r2, (r3, 0x28) + 6c34: 3120 movi r1, 32 + 6c36: 6884 and r2, r1 + 6c38: 3a40 cmpnei r2, 0 + 6c3a: 0c02 bf 0x6c3e // 6c3e + 6c3c: b32c st.w r1, (r3, 0x30) + 6c3e: d9ee2001 ld.w r15, (r14, 0x4) + 6c42: 9880 ld.w r4, (r14, 0x0) + 6c44: 1402 addi r14, r14, 8 + 6c46: 1463 ipop + 6c48: 1461 nir + 6c4a: 0000 bkpt + 6c4c: 20000070 .long 0x20000070 + 6c50: 200006c0 .long 0x200006c0 + 6c54: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00006c58 : + 6c58: 14c2 push r4-r5 + 6c5a: 3200 movi r2, 0 + 6c5c: 3000 movi r0, 0 + 6c5e: 1088 lrw r4, 0x20000760 // 6c7c + 6c60: 3501 movi r5, 1 + 6c62: 3120 movi r1, 32 + 6c64: 9460 ld.w r3, (r4, 0x0) + 6c66: 70c9 lsr r3, r2 + 6c68: 68d4 and r3, r5 + 6c6a: 3b40 cmpnei r3, 0 + 6c6c: 0c02 bf 0x6c70 // 6c70 + 6c6e: 2000 addi r0, 1 + 6c70: 2200 addi r2, 1 + 6c72: 644a cmpne r2, r1 + 6c74: 0bf8 bt 0x6c64 // 6c64 + 6c76: 7400 zextb r0, r0 + 6c78: 1482 pop r4-r5 + 6c7a: 0000 bkpt + 6c7c: 20000760 .long 0x20000760 + +Disassembly of section .text.TK_Baseline_prog: + +00006c80 : + 6c80: 14c4 push r4-r7 + 6c82: 1423 subi r14, r14, 12 + 6c84: 1079 lrw r3, 0x20000058 // 6ce8 + 6c86: 105a lrw r2, 0x2000062c // 6cec + 6c88: 10ba lrw r5, 0x20000070 // 6cf0 + 6c8a: b842 st.w r2, (r14, 0x8) + 6c8c: 9360 ld.w r3, (r3, 0x0) + 6c8e: b860 st.w r3, (r14, 0x0) + 6c90: 1079 lrw r3, 0x20000054 // 6cf4 + 6c92: 9360 ld.w r3, (r3, 0x0) + 6c94: b861 st.w r3, (r14, 0x4) + 6c96: 3306 movi r3, 6 + 6c98: 3201 movi r2, 1 + 6c9a: 9820 ld.w r1, (r14, 0x0) + 6c9c: b142 st.w r2, (r1, 0x8) + 6c9e: 3200 movi r2, 0 + 6ca0: b540 st.w r2, (r5, 0x0) + 6ca2: 9540 ld.w r2, (r5, 0x0) + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0ffe bf 0x6ca2 // 6ca2 + 6ca8: 6c03 mov r0, r0 + 6caa: 3200 movi r2, 0 + 6cac: 10d3 lrw r6, 0x200008d2 // 6cf8 + 6cae: 4202 lsli r0, r2, 2 + 6cb0: 9821 ld.w r1, (r14, 0x4) + 6cb2: 6004 addu r0, r1 + 6cb4: 9080 ld.w r4, (r0, 0x0) + 6cb6: 4221 lsli r1, r2, 1 + 6cb8: 98e2 ld.w r7, (r14, 0x8) + 6cba: 61c4 addu r7, r1 + 6cbc: 7511 zexth r4, r4 + 6cbe: af80 st.h r4, (r7, 0x0) + 6cc0: 9000 ld.w r0, (r0, 0x0) + 6cc2: 2200 addi r2, 1 + 6cc4: 7401 zexth r0, r0 + 6cc6: 6058 addu r1, r6 + 6cc8: 3a51 cmpnei r2, 17 + 6cca: a900 st.h r0, (r1, 0x0) + 6ccc: 0bf1 bt 0x6cae // 6cae + 6cce: 2b00 subi r3, 1 + 6cd0: 74cc zextb r3, r3 + 6cd2: 3b40 cmpnei r3, 0 + 6cd4: 0be2 bt 0x6c98 // 6c98 + 6cd6: 106a lrw r3, 0x200006c0 // 6cfc + 6cd8: 3201 movi r2, 1 + 6cda: a340 st.b r2, (r3, 0x0) + 6cdc: 3200 movi r2, 0 + 6cde: 1069 lrw r3, 0x20000849 // 6d00 + 6ce0: a340 st.b r2, (r3, 0x0) + 6ce2: 1403 addi r14, r14, 12 + 6ce4: 1484 pop r4-r7 + 6ce6: 0000 bkpt + 6ce8: 20000058 .long 0x20000058 + 6cec: 2000062c .long 0x2000062c + 6cf0: 20000070 .long 0x20000070 + 6cf4: 20000054 .long 0x20000054 + 6cf8: 200008d2 .long 0x200008d2 + 6cfc: 200006c0 .long 0x200006c0 + 6d00: 20000849 .long 0x20000849 + +Disassembly of section .text.TK_Scan_Start: + +00006d04 : + 6d04: 1046 lrw r2, 0x20000070 // 6d1c + 6d06: 8264 ld.b r3, (r2, 0x4) + 6d08: 74cc zextb r3, r3 + 6d0a: 3b41 cmpnei r3, 1 + 6d0c: 0807 bt 0x6d1a // 6d1a + 6d0e: 1025 lrw r1, 0x20000058 // 6d20 + 6d10: 9120 ld.w r1, (r1, 0x0) + 6d12: b162 st.w r3, (r1, 0x8) + 6d14: 3300 movi r3, 0 + 6d16: b260 st.w r3, (r2, 0x0) + 6d18: a264 st.b r3, (r2, 0x4) + 6d1a: 783c jmp r15 + 6d1c: 20000070 .long 0x20000070 + 6d20: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00006d24 : + 6d24: 14d4 push r4-r7, r15 + 6d26: 1425 subi r14, r14, 20 + 6d28: 1271 lrw r3, 0x20000108 // 6e6c + 6d2a: 8360 ld.b r3, (r3, 0x0) + 6d2c: b860 st.w r3, (r14, 0x0) + 6d2e: 3400 movi r4, 0 + 6d30: 1270 lrw r3, 0x200000dc // 6e70 + 6d32: 8360 ld.b r3, (r3, 0x0) + 6d34: b861 st.w r3, (r14, 0x4) + 6d36: 12f0 lrw r7, 0x200006d6 // 6e74 + 6d38: 1270 lrw r3, 0x200000e5 // 6e78 + 6d3a: 83a0 ld.b r5, (r3, 0x0) + 6d3c: 1270 lrw r3, 0x200000e4 // 6e7c + 6d3e: 8360 ld.b r3, (r3, 0x0) + 6d40: b862 st.w r3, (r14, 0x8) + 6d42: 6d9f mov r6, r7 + 6d44: 126f lrw r3, 0x200008d2 // 6e80 + 6d46: b863 st.w r3, (r14, 0xc) + 6d48: 4461 lsli r3, r4, 1 + 6d4a: 9843 ld.w r2, (r14, 0xc) + 6d4c: 608c addu r2, r3 + 6d4e: 122e lrw r1, 0x2000062c // 6e84 + 6d50: 604c addu r1, r3 + 6d52: 8a40 ld.h r2, (r2, 0x0) + 6d54: 8920 ld.h r1, (r1, 0x0) + 6d56: 6086 subu r2, r1 + 6d58: 748b sexth r2, r2 + 6d5a: 5f2c addu r1, r7, r3 + 6d5c: a940 st.h r2, (r1, 0x0) + 6d5e: 8940 ld.h r2, (r1, 0x0) + 6d60: 748b sexth r2, r2 + 6d62: 3adf btsti r2, 31 + 6d64: 1249 lrw r2, 0x2000088e // 6e88 + 6d66: 608c addu r2, r3 + 6d68: 0c37 bf 0x6dd6 // 6dd6 + 6d6a: 3100 movi r1, 0 + 6d6c: aa20 st.h r1, (r2, 0x0) + 6d6e: 9840 ld.w r2, (r14, 0x0) + 6d70: 3a01 cmphsi r2, 2 + 6d72: 0c6d bf 0x6e4c // 6e4c + 6d74: 4461 lsli r3, r4, 1 + 6d76: 5e2c addu r1, r6, r3 + 6d78: 1205 lrw r0, 0x20000136 // 6e8c + 6d7a: 8940 ld.h r2, (r1, 0x0) + 6d7c: 60c0 addu r3, r0 + 6d7e: 748b sexth r2, r2 + 6d80: 8b60 ld.h r3, (r3, 0x0) + 6d82: 648d cmplt r3, r2 + 6d84: 9840 ld.w r2, (r14, 0x0) + 6d86: 7cc8 mult r3, r2 + 6d88: 0c2a bf 0x6ddc // 6ddc + 6d8a: 8940 ld.h r2, (r1, 0x0) + 6d8c: 748b sexth r2, r2 + 6d8e: 64c9 cmplt r2, r3 + 6d90: 0c26 bf 0x6ddc // 6ddc + 6d92: 1240 lrw r2, 0x200006c4 // 6e90 + 6d94: 6090 addu r2, r4 + 6d96: 8260 ld.b r3, (r2, 0x0) + 6d98: 2300 addi r3, 1 + 6d9a: 74cc zextb r3, r3 + 6d9c: a260 st.b r3, (r2, 0x0) + 6d9e: 3100 movi r1, 0 + 6da0: 117d lrw r3, 0x200006aa // 6e94 + 6da2: 60d0 addu r3, r4 + 6da4: a320 st.b r1, (r3, 0x0) + 6da6: 117d lrw r3, 0x20000786 // 6e98 + 6da8: 60d0 addu r3, r4 + 6daa: a320 st.b r1, (r3, 0x0) + 6dac: 117c lrw r3, 0x20000800 // 6e9c + 6dae: 60d0 addu r3, r4 + 6db0: a320 st.b r1, (r3, 0x0) + 6db2: 8260 ld.b r3, (r2, 0x0) + 6db4: 9821 ld.w r1, (r14, 0x4) + 6db6: 64c4 cmphs r1, r3 + 6db8: 081f bt 0x6df6 // 6df6 + 6dba: 3d40 cmpnei r5, 0 + 6dbc: 0852 bt 0x6e60 // 6e60 + 6dbe: 1139 lrw r1, 0x200006bc // 6ea0 + 6dc0: 9160 ld.w r3, (r1, 0x0) + 6dc2: 3b40 cmpnei r3, 0 + 6dc4: 0806 bt 0x6dd0 // 6dd0 + 6dc6: 9100 ld.w r0, (r1, 0x0) + 6dc8: 3301 movi r3, 1 + 6dca: 70d0 lsl r3, r4 + 6dcc: 6cc0 or r3, r0 + 6dce: b160 st.w r3, (r1, 0x0) + 6dd0: 3300 movi r3, 0 + 6dd2: a260 st.b r3, (r2, 0x0) + 6dd4: 0411 br 0x6df6 // 6df6 + 6dd6: 8920 ld.h r1, (r1, 0x0) + 6dd8: 7445 zexth r1, r1 + 6dda: 07c9 br 0x6d6c // 6d6c + 6ddc: 4441 lsli r2, r4, 1 + 6dde: 6098 addu r2, r6 + 6de0: 8a40 ld.h r2, (r2, 0x0) + 6de2: 748b sexth r2, r2 + 6de4: 648d cmplt r3, r2 + 6de6: 0c08 bf 0x6df6 // 6df6 + 6de8: 3300 movi r3, 0 + 6dea: 114e lrw r2, 0x200006bc // 6ea0 + 6dec: 2b01 subi r3, 2 + 6dee: 9220 ld.w r1, (r2, 0x0) + 6df0: 70d3 rotl r3, r4 + 6df2: 68c4 and r3, r1 + 6df4: b260 st.w r3, (r2, 0x0) + 6df6: 4441 lsli r2, r4, 1 + 6df8: 5e68 addu r3, r6, r2 + 6dfa: 8b60 ld.h r3, (r3, 0x0) + 6dfc: 74cf sexth r3, r3 + 6dfe: b864 st.w r3, (r14, 0x10) + 6e00: 3105 movi r1, 5 + 6e02: 1163 lrw r3, 0x20000136 // 6e8c + 6e04: 608c addu r2, r3 + 6e06: 8a00 ld.h r0, (r2, 0x0) + 6e08: 4002 lsli r0, r0, 2 + 6e0a: e3ffe51b bsr 0x3840 // 3840 <__divsi3> + 6e0e: 9864 ld.w r3, (r14, 0x10) + 6e10: 640d cmplt r3, r0 + 6e12: 0c18 bf 0x6e42 // 6e42 + 6e14: 1140 lrw r2, 0x200006aa // 6e94 + 6e16: 6090 addu r2, r4 + 6e18: 8260 ld.b r3, (r2, 0x0) + 6e1a: 2300 addi r3, 1 + 6e1c: 74cc zextb r3, r3 + 6e1e: a260 st.b r3, (r2, 0x0) + 6e20: 3100 movi r1, 0 + 6e22: 107c lrw r3, 0x200006c4 // 6e90 + 6e24: 60d0 addu r3, r4 + 6e26: a320 st.b r1, (r3, 0x0) + 6e28: 8260 ld.b r3, (r2, 0x0) + 6e2a: 9822 ld.w r1, (r14, 0x8) + 6e2c: 64c4 cmphs r1, r3 + 6e2e: 080a bt 0x6e42 // 6e42 + 6e30: 3300 movi r3, 0 + 6e32: 103c lrw r1, 0x200006bc // 6ea0 + 6e34: 2b01 subi r3, 2 + 6e36: 9100 ld.w r0, (r1, 0x0) + 6e38: 70d3 rotl r3, r4 + 6e3a: 68c0 and r3, r0 + 6e3c: b160 st.w r3, (r1, 0x0) + 6e3e: 3300 movi r3, 0 + 6e40: a260 st.b r3, (r2, 0x0) + 6e42: 2400 addi r4, 1 + 6e44: 3c51 cmpnei r4, 17 + 6e46: 0b81 bt 0x6d48 // 6d48 + 6e48: 1405 addi r14, r14, 20 + 6e4a: 1494 pop r4-r7, r15 + 6e4c: 60d8 addu r3, r6 + 6e4e: 4441 lsli r2, r4, 1 + 6e50: 102f lrw r1, 0x20000136 // 6e8c + 6e52: 8b60 ld.h r3, (r3, 0x0) + 6e54: 6084 addu r2, r1 + 6e56: 74cf sexth r3, r3 + 6e58: 8a40 ld.h r2, (r2, 0x0) + 6e5a: 64c9 cmplt r2, r3 + 6e5c: 0fcd bf 0x6df6 // 6df6 + 6e5e: 079a br 0x6d92 // 6d92 + 6e60: 3d41 cmpnei r5, 1 + 6e62: 0bb7 bt 0x6dd0 // 6dd0 + 6e64: 102f lrw r1, 0x200006bc // 6ea0 + 6e66: 6cd7 mov r3, r5 + 6e68: 9100 ld.w r0, (r1, 0x0) + 6e6a: 07b0 br 0x6dca // 6dca + 6e6c: 20000108 .long 0x20000108 + 6e70: 200000dc .long 0x200000dc + 6e74: 200006d6 .long 0x200006d6 + 6e78: 200000e5 .long 0x200000e5 + 6e7c: 200000e4 .long 0x200000e4 + 6e80: 200008d2 .long 0x200008d2 + 6e84: 2000062c .long 0x2000062c + 6e88: 2000088e .long 0x2000088e + 6e8c: 20000136 .long 0x20000136 + 6e90: 200006c4 .long 0x200006c4 + 6e94: 200006aa .long 0x200006aa + 6e98: 20000786 .long 0x20000786 + 6e9c: 20000800 .long 0x20000800 + 6ea0: 200006bc .long 0x200006bc + +Disassembly of section .text.TK_overflow_predict: + +00006ea4 : + 6ea4: 14d4 push r4-r7, r15 + 6ea6: 1421 subi r14, r14, 4 + 6ea8: 11d9 lrw r6, 0x20000070 // 6f8c + 6eaa: 8665 ld.b r3, (r6, 0x5) + 6eac: 3b41 cmpnei r3, 1 + 6eae: 085f bt 0x6f6c // 6f6c + 6eb0: 1158 lrw r2, 0x200007dc // 6f90 + 6eb2: 8260 ld.b r3, (r2, 0x0) + 6eb4: 2300 addi r3, 1 + 6eb6: 74cc zextb r3, r3 + 6eb8: a260 st.b r3, (r2, 0x0) + 6eba: 8260 ld.b r3, (r2, 0x0) + 6ebc: 1136 lrw r1, 0x20000109 // 6f94 + 6ebe: 8120 ld.b r1, (r1, 0x0) + 6ec0: 64c4 cmphs r1, r3 + 6ec2: 0855 bt 0x6f6c // 6f6c + 6ec4: 3300 movi r3, 0 + 6ec6: a260 st.b r3, (r2, 0x0) + 6ec8: 3500 movi r5, 0 + 6eca: 11f4 lrw r7, 0x2000010c // 6f98 + 6ecc: 2605 addi r6, 6 + 6ece: 9760 ld.w r3, (r7, 0x0) + 6ed0: 70d5 lsr r3, r5 + 6ed2: 3201 movi r2, 1 + 6ed4: 68c8 and r3, r2 + 6ed6: 3b40 cmpnei r3, 0 + 6ed8: 0c34 bf 0x6f40 // 6f40 + 6eda: 4581 lsli r4, r5, 1 + 6edc: 5e70 addu r3, r6, r4 + 6ede: 8b00 ld.h r0, (r3, 0x0) + 6ee0: e3ffd360 bsr 0x15a0 // 15a0 <__floatunsidf> + 6ee4: 6cc7 mov r3, r1 + 6ee6: 3180 movi r1, 128 + 6ee8: 6c83 mov r2, r0 + 6eea: 4137 lsli r1, r1, 23 + 6eec: 3000 movi r0, 0 + 6eee: e3ffc963 bsr 0x1b4 // 1b4 <__GI_pow> + 6ef2: 116b lrw r3, 0x20000112 // 6f9c + 6ef4: 60d0 addu r3, r4 + 6ef6: 8b60 ld.h r3, (r3, 0x0) + 6ef8: 4364 lsli r3, r3, 4 + 6efa: 230e addi r3, 15 + 6efc: b860 st.w r3, (r14, 0x0) + 6efe: e3ffcf09 bsr 0xd10 // d10 <__fixunsdfsi> + 6f02: 9860 ld.w r3, (r14, 0x0) + 6f04: 7cc0 mult r3, r0 + 6f06: 1147 lrw r2, 0x2000086c // 6fa0 + 6f08: 740d zexth r0, r3 + 6f0a: 6090 addu r2, r4 + 6f0c: 1166 lrw r3, 0x200008d2 // 6fa4 + 6f0e: 60d0 addu r3, r4 + 6f10: aa00 st.h r0, (r2, 0x0) + 6f12: 8b60 ld.h r3, (r3, 0x0) + 6f14: 8a00 ld.h r0, (r2, 0x0) + 6f16: 7401 zexth r0, r0 + 6f18: 325f movi r2, 95 + 6f1a: 74cd zexth r3, r3 + 6f1c: 7c08 mult r0, r2 + 6f1e: 3164 movi r1, 100 + 6f20: b860 st.w r3, (r14, 0x0) + 6f22: e3ffe48f bsr 0x3840 // 3840 <__divsi3> + 6f26: 9860 ld.w r3, (r14, 0x0) + 6f28: 64c1 cmplt r0, r3 + 6f2a: 0c0b bf 0x6f40 // 6f40 + 6f2c: 107f lrw r3, 0x200000e6 // 6fa8 + 6f2e: 610c addu r4, r3 + 6f30: 8c60 ld.h r3, (r4, 0x0) + 6f32: 3b06 cmphsi r3, 7 + 6f34: 0806 bt 0x6f40 // 6f40 + 6f36: 2300 addi r3, 1 + 6f38: ac60 st.h r3, (r4, 0x0) + 6f3a: 3201 movi r2, 1 + 6f3c: 107c lrw r3, 0x20000731 // 6fac + 6f3e: a340 st.b r2, (r3, 0x0) + 6f40: 2500 addi r5, 1 + 6f42: 3d51 cmpnei r5, 17 + 6f44: 0bc5 bt 0x6ece // 6ece + 6f46: 107a lrw r3, 0x20000731 // 6fac + 6f48: 8340 ld.b r2, (r3, 0x0) + 6f4a: 3a41 cmpnei r2, 1 + 6f4c: 0810 bt 0x6f6c // 6f6c + 6f4e: 3200 movi r2, 0 + 6f50: a340 st.b r2, (r3, 0x0) + 6f52: 3200 movi r2, 0 + 6f54: 1077 lrw r3, 0x20000058 // 6fb0 + 6f56: 1018 lrw r0, 0x200007ff // 6fb4 + 6f58: 10b8 lrw r5, 0x20000838 // 6fb8 + 6f5a: 10d4 lrw r6, 0x200000e6 // 6fa8 + 6f5c: 9360 ld.w r3, (r3, 0x0) + 6f5e: b342 st.w r2, (r3, 0x8) + 6f60: 1077 lrw r3, 0x20000054 // 6fbc + 6f62: 9380 ld.w r4, (r3, 0x0) + 6f64: 3300 movi r3, 0 + 6f66: 8040 ld.b r2, (r0, 0x0) + 6f68: 648c cmphs r3, r2 + 6f6a: 0c03 bf 0x6f70 // 6f70 + 6f6c: 1401 addi r14, r14, 4 + 6f6e: 1494 pop r4-r7, r15 + 6f70: 5d4c addu r2, r5, r3 + 6f72: 8240 ld.b r2, (r2, 0x0) + 6f74: 4241 lsli r2, r2, 1 + 6f76: 4322 lsli r1, r3, 2 + 6f78: 6098 addu r2, r6 + 6f7a: 6050 addu r1, r4 + 6f7c: 8a40 ld.h r2, (r2, 0x0) + 6f7e: 91f2 ld.w r7, (r1, 0x48) + 6f80: 4254 lsli r2, r2, 20 + 6f82: 6c9c or r2, r7 + 6f84: 2300 addi r3, 1 + 6f86: b152 st.w r2, (r1, 0x48) + 6f88: 74cc zextb r3, r3 + 6f8a: 07ee br 0x6f66 // 6f66 + 6f8c: 20000070 .long 0x20000070 + 6f90: 200007dc .long 0x200007dc + 6f94: 20000109 .long 0x20000109 + 6f98: 2000010c .long 0x2000010c + 6f9c: 20000112 .long 0x20000112 + 6fa0: 2000086c .long 0x2000086c + 6fa4: 200008d2 .long 0x200008d2 + 6fa8: 200000e6 .long 0x200000e6 + 6fac: 20000731 .long 0x20000731 + 6fb0: 20000058 .long 0x20000058 + 6fb4: 200007ff .long 0x200007ff + 6fb8: 20000838 .long 0x20000838 + 6fbc: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00006fc0 : + 6fc0: 14c4 push r4-r7 + 6fc2: 1422 subi r14, r14, 8 + 6fc4: 1348 lrw r2, 0x2000075e // 7164 + 6fc6: 8260 ld.b r3, (r2, 0x0) + 6fc8: 2300 addi r3, 1 + 6fca: 74cc zextb r3, r3 + 6fcc: a260 st.b r3, (r2, 0x0) + 6fce: 8260 ld.b r3, (r2, 0x0) + 6fd0: 1326 lrw r1, 0x20000109 // 7168 + 6fd2: 8120 ld.b r1, (r1, 0x0) + 6fd4: 644c cmphs r3, r1 + 6fd6: 0cad bf 0x7130 // 7130 + 6fd8: 3300 movi r3, 0 + 6fda: a260 st.b r3, (r2, 0x0) + 6fdc: 1364 lrw r3, 0x200006bc // 716c + 6fde: 9360 ld.w r3, (r3, 0x0) + 6fe0: 3b40 cmpnei r3, 0 + 6fe2: 08a7 bt 0x7130 // 7130 + 6fe4: 1323 lrw r1, 0x200006d6 // 7170 + 6fe6: 6dc7 mov r7, r1 + 6fe8: b820 st.w r1, (r14, 0x0) + 6fea: 3200 movi r2, 0 + 6fec: 1362 lrw r3, 0x20000136 // 7174 + 6fee: 1323 lrw r1, 0x2000062c // 7178 + 6ff0: 4201 lsli r0, r2, 1 + 6ff2: 9880 ld.w r4, (r14, 0x0) + 6ff4: 6100 addu r4, r0 + 6ff6: 8c80 ld.h r4, (r4, 0x0) + 6ff8: 7513 sexth r4, r4 + 6ffa: 3cdf btsti r4, 31 + 6ffc: 0c27 bf 0x704a // 704a + 6ffe: 13a0 lrw r5, 0x200008d2 // 717c + 7000: 5980 addu r4, r1, r0 + 7002: 6014 addu r0, r5 + 7004: b881 st.w r4, (r14, 0x4) + 7006: 8c80 ld.h r4, (r4, 0x0) + 7008: 88c0 ld.h r6, (r0, 0x0) + 700a: 7511 zexth r4, r4 + 700c: 7599 zexth r6, r6 + 700e: 8ba0 ld.h r5, (r3, 0x0) + 7010: 611a subu r4, r6 + 7012: 6551 cmplt r4, r5 + 7014: 081b bt 0x704a // 704a + 7016: 9881 ld.w r4, (r14, 0x4) + 7018: 8c80 ld.h r4, (r4, 0x0) + 701a: 8800 ld.h r0, (r0, 0x0) + 701c: 7511 zexth r4, r4 + 701e: 7401 zexth r0, r0 + 7020: 5c01 subu r0, r4, r0 + 7022: 4581 lsli r4, r5, 1 + 7024: 6150 addu r5, r4 + 7026: 6541 cmplt r0, r5 + 7028: 0c11 bf 0x704a // 704a + 702a: 1296 lrw r4, 0x20000800 // 7180 + 702c: 6108 addu r4, r2 + 702e: 8400 ld.b r0, (r4, 0x0) + 7030: 2000 addi r0, 1 + 7032: 7400 zextb r0, r0 + 7034: a400 st.b r0, (r4, 0x0) + 7036: 1214 lrw r0, 0x20000090 // 7184 + 7038: 84a0 ld.b r5, (r4, 0x0) + 703a: 8008 ld.b r0, (r0, 0x8) + 703c: 6540 cmphs r0, r5 + 703e: 0806 bt 0x704a // 704a + 7040: 1212 lrw r0, 0x20000743 // 7188 + 7042: 3501 movi r5, 1 + 7044: a0a0 st.b r5, (r0, 0x0) + 7046: 3000 movi r0, 0 + 7048: a400 st.b r0, (r4, 0x0) + 704a: 4201 lsli r0, r2, 1 + 704c: 5f80 addu r4, r7, r0 + 704e: 8c80 ld.h r4, (r4, 0x0) + 7050: 7513 sexth r4, r4 + 7052: 3c20 cmplti r4, 1 + 7054: 0870 bt 0x7134 // 7134 + 7056: 128a lrw r4, 0x200008d2 // 717c + 7058: 6100 addu r4, r0 + 705a: 59a0 addu r5, r1, r0 + 705c: 8c80 ld.h r4, (r4, 0x0) + 705e: 8da0 ld.h r5, (r5, 0x0) + 7060: 7555 zexth r5, r5 + 7062: 7511 zexth r4, r4 + 7064: 6116 subu r4, r5 + 7066: 8ba0 ld.h r5, (r3, 0x0) + 7068: 45a2 lsli r5, r5, 2 + 706a: 6551 cmplt r4, r5 + 706c: 0864 bt 0x7134 // 7134 + 706e: 1288 lrw r4, 0x20000786 // 718c + 7070: 6108 addu r4, r2 + 7072: 84a0 ld.b r5, (r4, 0x0) + 7074: 2500 addi r5, 1 + 7076: 7554 zextb r5, r5 + 7078: a4a0 st.b r5, (r4, 0x0) + 707a: 12a3 lrw r5, 0x20000090 // 7184 + 707c: 84c0 ld.b r6, (r4, 0x0) + 707e: 85a9 ld.b r5, (r5, 0x9) + 7080: 6594 cmphs r5, r6 + 7082: 0806 bt 0x708e // 708e + 7084: 12a1 lrw r5, 0x20000743 // 7188 + 7086: 3601 movi r6, 1 + 7088: a5c0 st.b r6, (r5, 0x0) + 708a: 3500 movi r5, 0 + 708c: a4a0 st.b r5, (r4, 0x0) + 708e: 5f80 addu r4, r7, r0 + 7090: 8c80 ld.h r4, (r4, 0x0) + 7092: 7513 sexth r4, r4 + 7094: 3cdf btsti r4, 31 + 7096: 0c10 bf 0x70b6 // 70b6 + 7098: 11d9 lrw r6, 0x200008d2 // 717c + 709a: 59a0 addu r5, r1, r0 + 709c: 6180 addu r6, r0 + 709e: 8d80 ld.h r4, (r5, 0x0) + 70a0: 8ec0 ld.h r6, (r6, 0x0) + 70a2: 7599 zexth r6, r6 + 70a4: 7511 zexth r4, r4 + 70a6: 611a subu r4, r6 + 70a8: 8bc0 ld.h r6, (r3, 0x0) + 70aa: 6591 cmplt r4, r6 + 70ac: 0c05 bf 0x70b6 // 70b6 + 70ae: 8d80 ld.h r4, (r5, 0x0) + 70b0: 2c00 subi r4, 1 + 70b2: 7511 zexth r4, r4 + 70b4: ad80 st.h r4, (r5, 0x0) + 70b6: 5f80 addu r4, r7, r0 + 70b8: 8c80 ld.h r4, (r4, 0x0) + 70ba: 7513 sexth r4, r4 + 70bc: 3cdf btsti r4, 31 + 70be: 0c11 bf 0x70e0 // 70e0 + 70c0: 11cf lrw r6, 0x200008d2 // 717c + 70c2: 59a0 addu r5, r1, r0 + 70c4: 6180 addu r6, r0 + 70c6: 8d80 ld.h r4, (r5, 0x0) + 70c8: 8ec0 ld.h r6, (r6, 0x0) + 70ca: 7599 zexth r6, r6 + 70cc: 7511 zexth r4, r4 + 70ce: 611a subu r4, r6 + 70d0: 8bc0 ld.h r6, (r3, 0x0) + 70d2: 4ec1 lsri r6, r6, 1 + 70d4: 6591 cmplt r4, r6 + 70d6: 0805 bt 0x70e0 // 70e0 + 70d8: 8d80 ld.h r4, (r5, 0x0) + 70da: 2c01 subi r4, 2 + 70dc: 7511 zexth r4, r4 + 70de: ad80 st.h r4, (r5, 0x0) + 70e0: 5fa0 addu r5, r7, r0 + 70e2: 8d80 ld.h r4, (r5, 0x0) + 70e4: 7513 sexth r4, r4 + 70e6: 3c20 cmplti r4, 1 + 70e8: 080c bt 0x7100 // 7100 + 70ea: 8da0 ld.h r5, (r5, 0x0) + 70ec: 8b80 ld.h r4, (r3, 0x0) + 70ee: 7557 sexth r5, r5 + 70f0: 4c81 lsri r4, r4, 1 + 70f2: 6515 cmplt r5, r4 + 70f4: 0c06 bf 0x7100 // 7100 + 70f6: 59a0 addu r5, r1, r0 + 70f8: 8d80 ld.h r4, (r5, 0x0) + 70fa: 2400 addi r4, 1 + 70fc: 7511 zexth r4, r4 + 70fe: ad80 st.h r4, (r5, 0x0) + 7100: 5fa0 addu r5, r7, r0 + 7102: 8d80 ld.h r4, (r5, 0x0) + 7104: 7513 sexth r4, r4 + 7106: 3c20 cmplti r4, 1 + 7108: 0810 bt 0x7128 // 7128 + 710a: 8dc0 ld.h r6, (r5, 0x0) + 710c: 759b sexth r6, r6 + 710e: 8b80 ld.h r4, (r3, 0x0) + 7110: 6519 cmplt r6, r4 + 7112: 0c0b bf 0x7128 // 7128 + 7114: 8da0 ld.h r5, (r5, 0x0) + 7116: 7557 sexth r5, r5 + 7118: 4c81 lsri r4, r4, 1 + 711a: 6515 cmplt r5, r4 + 711c: 0806 bt 0x7128 // 7128 + 711e: 6004 addu r0, r1 + 7120: 8880 ld.h r4, (r0, 0x0) + 7122: 2401 addi r4, 2 + 7124: 7511 zexth r4, r4 + 7126: a880 st.h r4, (r0, 0x0) + 7128: 2200 addi r2, 1 + 712a: 3a51 cmpnei r2, 17 + 712c: 2301 addi r3, 2 + 712e: 0b61 bt 0x6ff0 // 6ff0 + 7130: 1402 addi r14, r14, 8 + 7132: 1484 pop r4-r7 + 7134: 5f80 addu r4, r7, r0 + 7136: 8c80 ld.h r4, (r4, 0x0) + 7138: 7513 sexth r4, r4 + 713a: 3cdf btsti r4, 31 + 713c: 0fa9 bf 0x708e // 708e + 713e: 10b0 lrw r5, 0x200008d2 // 717c + 7140: 5980 addu r4, r1, r0 + 7142: 6140 addu r5, r0 + 7144: 8c80 ld.h r4, (r4, 0x0) + 7146: 8da0 ld.h r5, (r5, 0x0) + 7148: 7555 zexth r5, r5 + 714a: 8bc0 ld.h r6, (r3, 0x0) + 714c: 7511 zexth r4, r4 + 714e: 6116 subu r4, r5 + 7150: 46a1 lsli r5, r6, 1 + 7152: 6158 addu r5, r6 + 7154: 6551 cmplt r4, r5 + 7156: 0b9c bt 0x708e // 708e + 7158: 108c lrw r4, 0x20000743 // 7188 + 715a: 3501 movi r5, 1 + 715c: a4a0 st.b r5, (r4, 0x0) + 715e: 6c03 mov r0, r0 + 7160: 0797 br 0x708e // 708e + 7162: 0000 bkpt + 7164: 2000075e .long 0x2000075e + 7168: 20000109 .long 0x20000109 + 716c: 200006bc .long 0x200006bc + 7170: 200006d6 .long 0x200006d6 + 7174: 20000136 .long 0x20000136 + 7178: 2000062c .long 0x2000062c + 717c: 200008d2 .long 0x200008d2 + 7180: 20000800 .long 0x20000800 + 7184: 20000090 .long 0x20000090 + 7188: 20000743 .long 0x20000743 + 718c: 20000786 .long 0x20000786 + +Disassembly of section .text.TK_result_prog: + +00007190 : + 7190: 14d2 push r4-r5, r15 + 7192: 1050 lrw r2, 0x200006bc // 71d0 + 7194: 1090 lrw r4, 0x20000760 // 71d4 + 7196: 9260 ld.w r3, (r2, 0x0) + 7198: 3b40 cmpnei r3, 0 + 719a: 0c02 bf 0x719e // 719e + 719c: 9260 ld.w r3, (r2, 0x0) + 719e: b460 st.w r3, (r4, 0x0) + 71a0: 9460 ld.w r3, (r4, 0x0) + 71a2: 3b40 cmpnei r3, 0 + 71a4: 10ad lrw r5, 0x20000834 // 71d8 + 71a6: 0c11 bf 0x71c8 // 71c8 + 71a8: 9440 ld.w r2, (r4, 0x0) + 71aa: 9560 ld.w r3, (r5, 0x0) + 71ac: 64ca cmpne r2, r3 + 71ae: 0c03 bf 0x71b4 // 71b4 + 71b0: 9460 ld.w r3, (r4, 0x0) + 71b2: b560 st.w r3, (r5, 0x0) + 71b4: e3fffd52 bsr 0x6c58 // 6c58 + 71b8: 1069 lrw r3, 0x20000110 // 71dc + 71ba: 8360 ld.b r3, (r3, 0x0) + 71bc: 640c cmphs r3, r0 + 71be: 0804 bt 0x71c6 // 71c6 + 71c0: 3300 movi r3, 0 + 71c2: b460 st.w r3, (r4, 0x0) + 71c4: b560 st.w r3, (r5, 0x0) + 71c6: 1492 pop r4-r5, r15 + 71c8: 1046 lrw r2, 0x20000758 // 71e0 + 71ca: b560 st.w r3, (r5, 0x0) + 71cc: b260 st.w r3, (r2, 0x0) + 71ce: 07fc br 0x71c6 // 71c6 + 71d0: 200006bc .long 0x200006bc + 71d4: 20000760 .long 0x20000760 + 71d8: 20000834 .long 0x20000834 + 71dc: 20000110 .long 0x20000110 + 71e0: 20000758 .long 0x20000758 + +Disassembly of section .text.CORETHandler: + +000071e4 : + 71e4: 1460 nie + 71e6: 1462 ipush + 71e8: 14d1 push r4, r15 + 71ea: 1077 lrw r3, 0x20000064 // 7244 + 71ec: 3400 movi r4, 0 + 71ee: 9360 ld.w r3, (r3, 0x0) + 71f0: b386 st.w r4, (r3, 0x18) + 71f2: 1076 lrw r3, 0x200006c0 // 7248 + 71f4: 8360 ld.b r3, (r3, 0x0) + 71f6: 3b41 cmpnei r3, 1 + 71f8: 0820 bt 0x7238 // 7238 + 71fa: e3fffd85 bsr 0x6d04 // 6d04 + 71fe: e3fffd93 bsr 0x6d24 // 6d24 + 7202: e3fffe51 bsr 0x6ea4 // 6ea4 + 7206: e3fffedd bsr 0x6fc0 // 6fc0 + 720a: e3ffffc3 bsr 0x7190 // 7190 + 720e: 1070 lrw r3, 0x20000760 // 724c + 7210: 9360 ld.w r3, (r3, 0x0) + 7212: 3b40 cmpnei r3, 0 + 7214: 0c12 bf 0x7238 // 7238 + 7216: 106f lrw r3, 0x200000e0 // 7250 + 7218: 9340 ld.w r2, (r3, 0x0) + 721a: 3a40 cmpnei r2, 0 + 721c: 0c0e bf 0x7238 // 7238 + 721e: 106e lrw r3, 0x20000758 // 7254 + 7220: 3064 movi r0, 100 + 7222: 9320 ld.w r1, (r3, 0x0) + 7224: 2100 addi r1, 1 + 7226: b320 st.w r1, (r3, 0x0) + 7228: 9320 ld.w r1, (r3, 0x0) + 722a: 7c80 mult r2, r0 + 722c: 6448 cmphs r2, r1 + 722e: 0805 bt 0x7238 // 7238 + 7230: 104a lrw r2, 0x20000743 // 7258 + 7232: 3101 movi r1, 1 + 7234: a220 st.b r1, (r2, 0x0) + 7236: b380 st.w r4, (r3, 0x0) + 7238: d9ee2001 ld.w r15, (r14, 0x4) + 723c: 9880 ld.w r4, (r14, 0x0) + 723e: 1402 addi r14, r14, 8 + 7240: 1463 ipop + 7242: 1461 nir + 7244: 20000064 .long 0x20000064 + 7248: 200006c0 .long 0x200006c0 + 724c: 20000760 .long 0x20000760 + 7250: 200000e0 .long 0x200000e0 + 7254: 20000758 .long 0x20000758 + 7258: 20000743 .long 0x20000743 + +Disassembly of section .text.get_key_seq: + +0000725c : + 725c: 14c3 push r4-r6 + 725e: 106b lrw r3, 0x2000010c // 7288 + 7260: 3000 movi r0, 0 + 7262: 9320 ld.w r1, (r3, 0x0) + 7264: 3401 movi r4, 1 + 7266: 3300 movi r3, 0 + 7268: 10a9 lrw r5, 0x20000838 // 728c + 726a: 6c87 mov r2, r1 + 726c: 708d lsr r2, r3 + 726e: 6890 and r2, r4 + 7270: 3a40 cmpnei r2, 0 + 7272: 0c05 bf 0x727c // 727c + 7274: 5dc0 addu r6, r5, r0 + 7276: 748c zextb r2, r3 + 7278: a640 st.b r2, (r6, 0x0) + 727a: 2000 addi r0, 1 + 727c: 2300 addi r3, 1 + 727e: 3b51 cmpnei r3, 17 + 7280: 0bf5 bt 0x726a // 726a + 7282: 7400 zextb r0, r0 + 7284: 1483 pop r4-r6 + 7286: 0000 bkpt + 7288: 2000010c .long 0x2000010c + 728c: 20000838 .long 0x20000838 + +Disassembly of section .text.CORET_CONFIG: + +00007290 : + 7290: 14d0 push r15 + 7292: e3ffdca9 bsr 0x2be4 // 2be4 + 7296: 3180 movi r1, 128 + 7298: 4124 lsli r1, r1, 4 + 729a: 3001 movi r0, 1 + 729c: e3ffd456 bsr 0x1b48 // 1b48 + 72a0: 1068 lrw r3, 0x20000064 // 72c0 + 72a2: 1049 lrw r2, 0x2000015c // 72c4 + 72a4: 9360 ld.w r3, (r3, 0x0) + 72a6: 9240 ld.w r2, (r2, 0x0) + 72a8: b345 st.w r2, (r3, 0x14) + 72aa: e3ffdccd bsr 0x2c44 // 2c44 + 72ae: e3ffdcbb bsr 0x2c24 // 2c24 + 72b2: e3ffdcc1 bsr 0x2c34 // 2c34 + 72b6: e3ffdcaf bsr 0x2c14 // 2c14 + 72ba: e3ffdca1 bsr 0x2bfc // 2bfc + 72be: 1490 pop r15 + 72c0: 20000064 .long 0x20000064 + 72c4: 2000015c .long 0x2000015c + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +000072c8 : + 72c8: 1066 lrw r3, 0x20000054 // 72e0 + 72ca: 3100 movi r1, 0 + 72cc: 9300 ld.w r0, (r3, 0x0) + 72ce: 3300 movi r3, 0 + 72d0: 4342 lsli r2, r3, 2 + 72d2: 2300 addi r3, 1 + 72d4: 6080 addu r2, r0 + 72d6: 3b52 cmpnei r3, 18 + 72d8: b220 st.w r1, (r2, 0x0) + 72da: b232 st.w r1, (r2, 0x48) + 72dc: 0bfa bt 0x72d0 // 72d0 + 72de: 783c jmp r15 + 72e0: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +000072e4 : + 72e4: 1065 lrw r3, 0x2000005c // 72f8 + 72e6: 1046 lrw r2, 0xa67a6cc7 // 72fc + 72e8: 9360 ld.w r3, (r3, 0x0) + 72ea: b356 st.w r2, (r3, 0x58) + 72ec: 1045 lrw r2, 0x21f1f04 // 7300 + 72ee: b355 st.w r2, (r3, 0x54) + 72f0: 1045 lrw r2, 0x69966996 // 7304 + 72f2: 1066 lrw r3, 0x40011180 // 7308 + 72f4: b35f st.w r2, (r3, 0x7c) + 72f6: 783c jmp r15 + 72f8: 2000005c .long 0x2000005c + 72fc: a67a6cc7 .long 0xa67a6cc7 + 7300: 021f1f04 .long 0x021f1f04 + 7304: 69966996 .long 0x69966996 + 7308: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +0000730c : + 730c: 14d4 push r4-r7, r15 + 730e: 142c subi r14, r14, 48 + 7310: e3ffffea bsr 0x72e4 // 72e4 + 7314: e3ffdbc8 bsr 0x2aa4 // 2aa4 + 7318: 1268 lrw r3, 0x20000070 // 7438 + 731a: 934b ld.w r2, (r3, 0x2c) + 731c: 1268 lrw r3, 0x40011200 // 743c + 731e: b350 st.w r2, (r3, 0x40) + 7320: 1268 lrw r3, 0x200000dd // 7440 + 7322: 8360 ld.b r3, (r3, 0x0) + 7324: 3b41 cmpnei r3, 1 + 7326: 0817 bt 0x7354 // 7354 + 7328: 1267 lrw r3, 0x20000058 // 7444 + 732a: 3105 movi r1, 5 + 732c: 9380 ld.w r4, (r3, 0x0) + 732e: 1267 lrw r3, 0x20000134 // 7448 + 7330: 8300 ld.b r0, (r3, 0x0) + 7332: e3ffe299 bsr 0x3864 // 3864 <__udivsi3> + 7336: 7400 zextb r0, r0 + 7338: 1265 lrw r3, 0x200000de // 744c + 733a: b408 st.w r0, (r4, 0x20) + 733c: 8300 ld.b r0, (r3, 0x0) + 733e: 3804 cmphsi r0, 5 + 7340: 1264 lrw r3, 0x2000075c // 7450 + 7342: 085a bt 0x73f6 // 73f6 + 7344: e3ffccdc bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7348: 53575103 .long 0x53575103 + 734c: 0055 .short 0x0055 + 734e: 3296 movi r2, 150 + 7350: 4242 lsli r2, r2, 2 + 7352: ab40 st.h r2, (r3, 0x0) + 7354: e3fffb78 bsr 0x6a44 // 6a44 + 7358: 3200 movi r2, 0 + 735a: 3100 movi r1, 0 + 735c: 3001 movi r0, 1 + 735e: e3fffb01 bsr 0x6960 // 6960 + 7362: e3ffffb3 bsr 0x72c8 // 72c8 + 7366: e3ffff7b bsr 0x725c // 725c + 736a: 119b lrw r4, 0x200007ff // 7454 + 736c: 3101 movi r1, 1 + 736e: a400 st.b r0, (r4, 0x0) + 7370: 8440 ld.b r2, (r4, 0x0) + 7372: 117a lrw r3, 0x20000158 // 7458 + 7374: 8b60 ld.h r3, (r3, 0x0) + 7376: b829 st.w r1, (r14, 0x24) + 7378: 3180 movi r1, 128 + 737a: 412d lsli r1, r1, 13 + 737c: b828 st.w r1, (r14, 0x20) + 737e: 3180 movi r1, 128 + 7380: 4129 lsli r1, r1, 9 + 7382: b827 st.w r1, (r14, 0x1c) + 7384: 3100 movi r1, 0 + 7386: b826 st.w r1, (r14, 0x18) + 7388: 2a00 subi r2, 1 + 738a: 1115 lrw r0, 0x2000015a // 745c + 738c: 8800 ld.h r0, (r0, 0x0) + 738e: b805 st.w r0, (r14, 0x14) + 7390: 7488 zextb r2, r2 + 7392: 1114 lrw r0, 0x20000160 // 7460 + 7394: 8800 ld.h r0, (r0, 0x0) + 7396: b804 st.w r0, (r14, 0x10) + 7398: 3080 movi r0, 128 + 739a: 4005 lsli r0, r0, 5 + 739c: b803 st.w r0, (r14, 0xc) + 739e: 3080 movi r0, 128 + 73a0: 4004 lsli r0, r0, 4 + 73a2: b802 st.w r0, (r14, 0x8) + 73a4: b821 st.w r1, (r14, 0x4) + 73a6: b820 st.w r1, (r14, 0x0) + 73a8: 3001 movi r0, 1 + 73aa: 3102 movi r1, 2 + 73ac: e3fffaee bsr 0x6988 // 6988 + 73b0: 3002 movi r0, 2 + 73b2: e3fffacf bsr 0x6950 // 6950 + 73b6: 3020 movi r0, 32 + 73b8: e3fffacc bsr 0x6950 // 6950 + 73bc: 3380 movi r3, 128 + 73be: 4372 lsli r3, r3, 18 + 73c0: 1149 lrw r2, 0xe000e100 // 7464 + 73c2: b260 st.w r3, (r2, 0x0) + 73c4: b270 st.w r3, (r2, 0x40) + 73c6: 11e9 lrw r7, 0x20000076 // 7468 + 73c8: 1169 lrw r3, 0x20000054 // 746c + 73ca: 11aa lrw r5, 0x20000838 // 7470 + 73cc: 11ca lrw r6, 0x20000112 // 7474 + 73ce: 9360 ld.w r3, (r3, 0x0) + 73d0: b86a st.w r3, (r14, 0x28) + 73d2: b88b st.w r4, (r14, 0x2c) + 73d4: 3300 movi r3, 0 + 73d6: 984b ld.w r2, (r14, 0x2c) + 73d8: 8240 ld.b r2, (r2, 0x0) + 73da: 648c cmphs r3, r2 + 73dc: 0c0f bf 0x73fa // 73fa + 73de: e3ffff59 bsr 0x7290 // 7290 + 73e2: e3fffc4f bsr 0x6c80 // 6c80 + 73e6: 140c addi r14, r14, 48 + 73e8: 1494 pop r4-r7, r15 + 73ea: 1145 lrw r2, 0x5dc // 747c + 73ec: 07b3 br 0x7352 // 7352 + 73ee: 1145 lrw r2, 0x1194 // 7480 + 73f0: 07b1 br 0x7352 // 7352 + 73f2: 1145 lrw r2, 0x1770 // 7484 + 73f4: 07af br 0x7352 // 7352 + 73f6: 1145 lrw r2, 0xbb8 // 7488 + 73f8: 07ad br 0x7352 // 7352 + 73fa: 5d0c addu r0, r5, r3 + 73fc: 8020 ld.b r1, (r0, 0x0) + 73fe: 8040 ld.b r2, (r0, 0x0) + 7400: 8080 ld.b r4, (r0, 0x0) + 7402: 8000 ld.b r0, (r0, 0x0) + 7404: 4001 lsli r0, r0, 1 + 7406: 6018 addu r0, r6 + 7408: 4121 lsli r1, r1, 1 + 740a: 8800 ld.h r0, (r0, 0x0) + 740c: 605c addu r1, r7 + 740e: 448f lsli r4, r4, 15 + 7410: 6d00 or r4, r0 + 7412: 4241 lsli r2, r2, 1 + 7414: 8900 ld.h r0, (r1, 0x0) + 7416: 1039 lrw r1, 0x200000e6 // 7478 + 7418: 6084 addu r2, r1 + 741a: 4018 lsli r0, r0, 24 + 741c: 6c10 or r0, r4 + 741e: 8a80 ld.h r4, (r2, 0x0) + 7420: 3212 movi r2, 18 + 7422: 608c addu r2, r3 + 7424: 4494 lsli r4, r4, 20 + 7426: 4242 lsli r2, r2, 2 + 7428: 982a ld.w r1, (r14, 0x28) + 742a: 6c10 or r0, r4 + 742c: 6084 addu r2, r1 + 742e: 2300 addi r3, 1 + 7430: b200 st.w r0, (r2, 0x0) + 7432: 74cc zextb r3, r3 + 7434: 07d1 br 0x73d6 // 73d6 + 7436: 0000 bkpt + 7438: 20000070 .long 0x20000070 + 743c: 40011200 .long 0x40011200 + 7440: 200000dd .long 0x200000dd + 7444: 20000058 .long 0x20000058 + 7448: 20000134 .long 0x20000134 + 744c: 200000de .long 0x200000de + 7450: 2000075c .long 0x2000075c + 7454: 200007ff .long 0x200007ff + 7458: 20000158 .long 0x20000158 + 745c: 2000015a .long 0x2000015a + 7460: 20000160 .long 0x20000160 + 7464: e000e100 .long 0xe000e100 + 7468: 20000076 .long 0x20000076 + 746c: 20000054 .long 0x20000054 + 7470: 20000838 .long 0x20000838 + 7474: 20000112 .long 0x20000112 + 7478: 200000e6 .long 0x200000e6 + 747c: 000005dc .long 0x000005dc + 7480: 00001194 .long 0x00001194 + 7484: 00001770 .long 0x00001770 + 7488: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +0000748c : + 748c: 14d4 push r4-r7, r15 + 748e: 142d subi r14, r14, 52 + 7490: 3201 movi r2, 1 + 7492: 03ce lrw r6, 0x2000005c // 76d4 + 7494: 6cc3 mov r3, r0 + 7496: dc4e000a st.b r2, (r14, 0xa) + 749a: 9640 ld.w r2, (r6, 0x0) + 749c: 9247 ld.w r2, (r2, 0x1c) + 749e: 7488 zextb r2, r2 + 74a0: dc4e0009 st.b r2, (r14, 0x9) + 74a4: d84e0009 ld.b r2, (r14, 0x9) + 74a8: 3a40 cmpnei r2, 0 + 74aa: 0c08 bf 0x74ba // 74ba + 74ac: d84e0009 ld.b r2, (r14, 0x9) + 74b0: 3a42 cmpnei r2, 2 + 74b2: 0c04 bf 0x74ba // 74ba + 74b4: 3000 movi r0, 0 + 74b6: 140d addi r14, r14, 52 + 74b8: 1494 pop r4-r7, r15 + 74ba: 0397 lrw r4, 0x2000000c // 76d8 + 74bc: 3209 movi r2, 9 + 74be: 9400 ld.w r0, (r4, 0x0) + 74c0: 3b40 cmpnei r3, 0 + 74c2: b041 st.w r2, (r0, 0x4) + 74c4: 0857 bt 0x7572 // 7572 + 74c6: 3307 movi r3, 7 + 74c8: dc6e000b st.b r3, (r14, 0xb) + 74cc: 037b lrw r3, 0x2dc6c00 // 76dc + 74ce: b863 st.w r3, (r14, 0xc) + 74d0: 3380 movi r3, 128 + 74d2: 4362 lsli r3, r3, 2 + 74d4: b867 st.w r3, (r14, 0x1c) + 74d6: d86e000b ld.b r3, (r14, 0xb) + 74da: 74cc zextb r3, r3 + 74dc: b062 st.w r3, (r0, 0x8) + 74de: 037e lrw r3, 0xffff // 76e0 + 74e0: b063 st.w r3, (r0, 0xc) + 74e2: 3201 movi r2, 1 + 74e4: 3101 movi r1, 1 + 74e6: 03bf lrw r5, 0x20000014 // 76e4 + 74e8: e3ffd542 bsr 0x1f6c // 1f6c + 74ec: 95e0 ld.w r7, (r5, 0x0) + 74ee: 137f lrw r3, 0xbe9c0005 // 76e8 + 74f0: b760 st.w r3, (r7, 0x0) + 74f2: 135f lrw r2, 0x30010 // 76ec + 74f4: 3300 movi r3, 0 + 74f6: b762 st.w r3, (r7, 0x8) + 74f8: b743 st.w r2, (r7, 0xc) + 74fa: 32d8 movi r2, 216 + 74fc: b745 st.w r2, (r7, 0x14) + 74fe: 974f ld.w r2, (r7, 0x3c) + 7500: 3aa2 bseti r2, 2 + 7502: b74f st.w r2, (r7, 0x3c) + 7504: 9803 ld.w r0, (r14, 0xc) + 7506: d82e000b ld.b r1, (r14, 0xb) + 750a: 327d movi r2, 125 + 750c: 2100 addi r1, 1 + 750e: 7c48 mult r1, r2 + 7510: b861 st.w r3, (r14, 0x4) + 7512: e3ffe1a9 bsr 0x3864 // 3864 <__udivsi3> + 7516: b804 st.w r0, (r14, 0x10) + 7518: 32fa movi r2, 250 + 751a: 9824 ld.w r1, (r14, 0x10) + 751c: 4242 lsli r2, r2, 2 + 751e: 6448 cmphs r2, r1 + 7520: 0bca bt 0x74b4 // 74b4 + 7522: 9844 ld.w r2, (r14, 0x10) + 7524: 3178 movi r1, 120 + 7526: 9804 ld.w r0, (r14, 0x10) + 7528: b840 st.w r2, (r14, 0x0) + 752a: e3ffe19d bsr 0x3864 // 3864 <__udivsi3> + 752e: 9840 ld.w r2, (r14, 0x0) + 7530: 6082 subu r2, r0 + 7532: b845 st.w r2, (r14, 0x14) + 7534: 9804 ld.w r0, (r14, 0x10) + 7536: 3178 movi r1, 120 + 7538: 9844 ld.w r2, (r14, 0x10) + 753a: b840 st.w r2, (r14, 0x0) + 753c: e3ffe194 bsr 0x3864 // 3864 <__udivsi3> + 7540: 9840 ld.w r2, (r14, 0x0) + 7542: 6008 addu r0, r2 + 7544: b806 st.w r0, (r14, 0x18) + 7546: c0807020 psrclr ie + 754a: 9640 ld.w r2, (r6, 0x0) + 754c: 9254 ld.w r2, (r2, 0x50) + 754e: b848 st.w r2, (r14, 0x20) + 7550: 9861 ld.w r3, (r14, 0x4) + 7552: 9440 ld.w r2, (r4, 0x0) + 7554: b260 st.w r3, (r2, 0x0) + 7556: b761 st.w r3, (r7, 0x4) + 7558: d86e000a ld.b r3, (r14, 0xa) + 755c: 3b40 cmpnei r3, 0 + 755e: 083e bt 0x75da // 75da + 7560: e3ffd4b8 bsr 0x1ed0 // 1ed0 + 7564: 9400 ld.w r0, (r4, 0x0) + 7566: e3ffd4d9 bsr 0x1f18 // 1f18 + 756a: c1807420 psrset ee, ie + 756e: 3001 movi r0, 1 + 7570: 07a3 br 0x74b6 // 74b6 + 7572: 3b41 cmpnei r3, 1 + 7574: 0806 bt 0x7580 // 7580 + 7576: 3303 movi r3, 3 + 7578: dc6e000b st.b r3, (r14, 0xb) + 757c: 127d lrw r3, 0x16e3600 // 76f0 + 757e: 07a8 br 0x74ce // 74ce + 7580: 3b42 cmpnei r3, 2 + 7582: 0806 bt 0x758e // 758e + 7584: 3301 movi r3, 1 + 7586: dc6e000b st.b r3, (r14, 0xb) + 758a: 127b lrw r3, 0xb71b00 // 76f4 + 758c: 07a1 br 0x74ce // 74ce + 758e: 3b43 cmpnei r3, 3 + 7590: 0806 bt 0x759c // 759c + 7592: 3300 movi r3, 0 + 7594: dc6e000b st.b r3, (r14, 0xb) + 7598: 1278 lrw r3, 0x5b8d80 // 76f8 + 759a: 079a br 0x74ce // 74ce + 759c: 3b44 cmpnei r3, 4 + 759e: 0809 bt 0x75b0 // 75b0 + 75a0: 3300 movi r3, 0 + 75a2: dc6e000b st.b r3, (r14, 0xb) + 75a6: 1276 lrw r3, 0x54c720 // 76fc + 75a8: b863 st.w r3, (r14, 0xc) + 75aa: 3380 movi r3, 128 + 75ac: 4369 lsli r3, r3, 9 + 75ae: 0793 br 0x74d4 // 74d4 + 75b0: 3b45 cmpnei r3, 5 + 75b2: 0806 bt 0x75be // 75be + 75b4: 3300 movi r3, 0 + 75b6: dc6e000b st.b r3, (r14, 0xb) + 75ba: 1272 lrw r3, 0x3ffed0 // 7700 + 75bc: 07f6 br 0x75a8 // 75a8 + 75be: 3b46 cmpnei r3, 6 + 75c0: 0806 bt 0x75cc // 75cc + 75c2: 3300 movi r3, 0 + 75c4: dc6e000b st.b r3, (r14, 0xb) + 75c8: 126f lrw r3, 0x1fff68 // 7704 + 75ca: 07ef br 0x75a8 // 75a8 + 75cc: 3b47 cmpnei r3, 7 + 75ce: 0b84 bt 0x74d6 // 74d6 + 75d0: 3300 movi r3, 0 + 75d2: dc6e000b st.b r3, (r14, 0xb) + 75d6: 126d lrw r3, 0x1ffb8 // 7708 + 75d8: 07e8 br 0x75a8 // 75a8 + 75da: 9560 ld.w r3, (r5, 0x0) + 75dc: 3101 movi r1, 1 + 75de: 9440 ld.w r2, (r4, 0x0) + 75e0: b321 st.w r1, (r3, 0x4) + 75e2: b220 st.w r1, (r2, 0x0) + 75e4: 3100 movi r1, 0 + 75e6: b327 st.w r1, (r3, 0x1c) + 75e8: 3004 movi r0, 4 + 75ea: b225 st.w r1, (r2, 0x14) + 75ec: 932e ld.w r1, (r3, 0x38) + 75ee: 6840 and r1, r0 + 75f0: 3940 cmpnei r1, 0 + 75f2: 0ffd bf 0x75ec // 75ec + 75f4: 9225 ld.w r1, (r2, 0x14) + 75f6: b82a st.w r1, (r14, 0x28) + 75f8: 3100 movi r1, 0 + 75fa: b310 st.w r0, (r3, 0x40) + 75fc: b327 st.w r1, (r3, 0x1c) + 75fe: 3004 movi r0, 4 + 7600: b225 st.w r1, (r2, 0x14) + 7602: 932e ld.w r1, (r3, 0x38) + 7604: 6840 and r1, r0 + 7606: 3940 cmpnei r1, 0 + 7608: 0ffd bf 0x7602 // 7602 + 760a: 9225 ld.w r1, (r2, 0x14) + 760c: b82b st.w r1, (r14, 0x2c) + 760e: 3100 movi r1, 0 + 7610: b310 st.w r0, (r3, 0x40) + 7612: b327 st.w r1, (r3, 0x1c) + 7614: 3004 movi r0, 4 + 7616: b225 st.w r1, (r2, 0x14) + 7618: 932e ld.w r1, (r3, 0x38) + 761a: 6840 and r1, r0 + 761c: 3940 cmpnei r1, 0 + 761e: 0ffd bf 0x7618 // 7618 + 7620: 9225 ld.w r1, (r2, 0x14) + 7622: b82c st.w r1, (r14, 0x30) + 7624: b310 st.w r0, (r3, 0x40) + 7626: 982b ld.w r1, (r14, 0x2c) + 7628: 980c ld.w r0, (r14, 0x30) + 762a: 6040 addu r1, r0 + 762c: b829 st.w r1, (r14, 0x24) + 762e: 9829 ld.w r1, (r14, 0x24) + 7630: 4921 lsri r1, r1, 1 + 7632: b829 st.w r1, (r14, 0x24) + 7634: 3100 movi r1, 0 + 7636: b321 st.w r1, (r3, 0x4) + 7638: b220 st.w r1, (r2, 0x0) + 763a: b327 st.w r1, (r3, 0x1c) + 763c: b225 st.w r1, (r2, 0x14) + 763e: d86e0009 ld.b r3, (r14, 0x9) + 7642: 3b42 cmpnei r3, 2 + 7644: 9849 ld.w r2, (r14, 0x24) + 7646: 082c bt 0x769e // 769e + 7648: 1171 lrw r3, 0x7ff // 770c + 764a: 648c cmphs r3, r2 + 764c: 0c03 bf 0x7652 // 7652 + 764e: 3300 movi r3, 0 + 7650: 040f br 0x766e // 766e + 7652: 9849 ld.w r2, (r14, 0x24) + 7654: 9866 ld.w r3, (r14, 0x18) + 7656: 648c cmphs r3, r2 + 7658: 080e bt 0x7674 // 7674 + 765a: 9868 ld.w r3, (r14, 0x20) + 765c: 9847 ld.w r2, (r14, 0x1c) + 765e: 60ca subu r3, r2 + 7660: b868 st.w r3, (r14, 0x20) + 7662: 32fe movi r2, 254 + 7664: 9868 ld.w r3, (r14, 0x20) + 7666: 4248 lsli r2, r2, 8 + 7668: 68c8 and r3, r2 + 766a: 3b40 cmpnei r3, 0 + 766c: 0812 bt 0x7690 // 7690 + 766e: dc6e000a st.b r3, (r14, 0xa) + 7672: 0721 br 0x74b4 // 74b4 + 7674: 9849 ld.w r2, (r14, 0x24) + 7676: 9865 ld.w r3, (r14, 0x14) + 7678: 64c8 cmphs r2, r3 + 767a: 0829 bt 0x76cc // 76cc + 767c: 9868 ld.w r3, (r14, 0x20) + 767e: 9847 ld.w r2, (r14, 0x1c) + 7680: 60c8 addu r3, r2 + 7682: b868 st.w r3, (r14, 0x20) + 7684: 33fe movi r3, 254 + 7686: 9848 ld.w r2, (r14, 0x20) + 7688: 4368 lsli r3, r3, 8 + 768a: 688c and r2, r3 + 768c: 64ca cmpne r2, r3 + 768e: 0fe0 bf 0x764e // 764e + 7690: 9660 ld.w r3, (r6, 0x0) + 7692: 9848 ld.w r2, (r14, 0x20) + 7694: b354 st.w r2, (r3, 0x50) + 7696: 3001 movi r0, 1 + 7698: e3ffdb14 bsr 0x2cc0 // 2cc0 + 769c: 075e br 0x7558 // 7558 + 769e: 9866 ld.w r3, (r14, 0x18) + 76a0: 648c cmphs r3, r2 + 76a2: 0809 bt 0x76b4 // 76b4 + 76a4: 9868 ld.w r3, (r14, 0x20) + 76a6: 9847 ld.w r2, (r14, 0x1c) + 76a8: 60ca subu r3, r2 + 76aa: b868 st.w r3, (r14, 0x20) + 76ac: 32ff movi r2, 255 + 76ae: 9868 ld.w r3, (r14, 0x20) + 76b0: 4250 lsli r2, r2, 16 + 76b2: 07db br 0x7668 // 7668 + 76b4: 9849 ld.w r2, (r14, 0x24) + 76b6: 9865 ld.w r3, (r14, 0x14) + 76b8: 64c8 cmphs r2, r3 + 76ba: 0809 bt 0x76cc // 76cc + 76bc: 9868 ld.w r3, (r14, 0x20) + 76be: 9847 ld.w r2, (r14, 0x1c) + 76c0: 60c8 addu r3, r2 + 76c2: b868 st.w r3, (r14, 0x20) + 76c4: 33ff movi r3, 255 + 76c6: 9848 ld.w r2, (r14, 0x20) + 76c8: 4370 lsli r3, r3, 16 + 76ca: 07e0 br 0x768a // 768a + 76cc: 3300 movi r3, 0 + 76ce: dc6e000a st.b r3, (r14, 0xa) + 76d2: 07e2 br 0x7696 // 7696 + 76d4: 2000005c .long 0x2000005c + 76d8: 2000000c .long 0x2000000c + 76dc: 02dc6c00 .long 0x02dc6c00 + 76e0: 0000ffff .long 0x0000ffff + 76e4: 20000014 .long 0x20000014 + 76e8: be9c0005 .long 0xbe9c0005 + 76ec: 00030010 .long 0x00030010 + 76f0: 016e3600 .long 0x016e3600 + 76f4: 00b71b00 .long 0x00b71b00 + 76f8: 005b8d80 .long 0x005b8d80 + 76fc: 0054c720 .long 0x0054c720 + 7700: 003ffed0 .long 0x003ffed0 + 7704: 001fff68 .long 0x001fff68 + 7708: 0001ffb8 .long 0x0001ffb8 + 770c: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20240708.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20240708.map new file mode 100644 index 0000000..4d1b675 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20240708.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: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 489316 (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: 256 + Section header string table index: 253 + +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_PullHi PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_DriveS PROGBITS 00001e8a 002e8a 00000e 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e98 002e98 000008 00 AX 0 0 2 + [23] .text.GPIO_Write_ PROGBITS 00001ea0 002ea0 000008 00 AX 0 0 2 + [24] .text.GPIO_Revers PROGBITS 00001ea8 002ea8 000016 00 AX 0 0 2 + [25] .text.GPIO_Read_S PROGBITS 00001ebe 002ebe 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.UART0_DeIni PROGBITS 00001f90 002f90 000018 00 AX 0 0 4 + [37] .text.UART1_DeIni PROGBITS 00001fa8 002fa8 000018 00 AX 0 0 4 + [38] .text.UART2_DeIni PROGBITS 00001fc0 002fc0 000018 00 AX 0 0 4 + [39] .text.UART0_Int_E PROGBITS 00001fd8 002fd8 00001c 00 AX 0 0 4 + [40] .text.UART2_Int_E PROGBITS 00001ff4 002ff4 00001c 00 AX 0 0 4 + [41] .text.UART_IO_Ini PROGBITS 00002010 003010 0000ec 00 AX 0 0 4 + [42] .text.UARTInit PROGBITS 000020fc 0030fc 000010 00 AX 0 0 4 + [43] .text.UARTInitRxT PROGBITS 0000210c 00310c 000010 00 AX 0 0 4 + [44] .text.UARTTransmi PROGBITS 0000211c 00311c 00001e 00 AX 0 0 2 + [45] .text.EPT_Softwar PROGBITS 0000213c 00313c 000020 00 AX 0 0 4 + [46] .text.EPT_Start PROGBITS 0000215c 00315c 000028 00 AX 0 0 4 + [47] .text.EPT_Stop PROGBITS 00002184 003184 000028 00 AX 0 0 4 + [48] .text.EPT_IO_SET PROGBITS 000021ac 0031ac 000238 00 AX 0 0 4 + [49] .text.EPT_PWM_Con PROGBITS 000023e4 0033e4 000038 00 AX 0 0 4 + [50] .text.EPT_PWMX_Ou PROGBITS 0000241c 00341c 0000d8 00 AX 0 0 4 + [51] .text.EPT_PRDR_CM PROGBITS 000024f4 0034f4 00001c 00 AX 0 0 4 + [52] .text.ADC12_RESET PROGBITS 00002510 003510 000064 00 AX 0 0 4 + [53] .text.ADC12_Contr PROGBITS 00002574 003574 000010 00 AX 0 0 4 + [54] .text.ADC12_CMD.p PROGBITS 00002584 003584 000020 00 AX 0 0 4 + [55] .text.ADC12_CLK_C PROGBITS 000025a4 0035a4 00002c 00 AX 0 0 4 + [56] .text.ADC12_Softw PROGBITS 000025d0 0035d0 00000a 00 AX 0 0 2 + [57] .text.ADC12_CMD PROGBITS 000025dc 0035dc 000028 00 AX 0 0 4 + [58] .text.ADC12_ready PROGBITS 00002604 003604 000014 00 AX 0 0 4 + [59] .text.ADC12_SEQEN PROGBITS 00002618 003618 000018 00 AX 0 0 4 + [60] .text.ADC12_DATA_ PROGBITS 00002630 003630 000014 00 AX 0 0 4 + [61] .text.ADC12_Confi PROGBITS 00002644 003644 00007c 00 AX 0 0 4 + [62] .text.ADC12_Confi PROGBITS 000026c0 0036c0 000198 00 AX 0 0 4 + [63] .text.ADC12_Conve PROGBITS 00002858 003858 000180 00 AX 0 0 4 + [64] .text.Page_Progra PROGBITS 000029d8 0039d8 0000a0 00 AX 0 0 4 + [65] .text.ReadDataArr PROGBITS 00002a78 003a78 00002a 00 AX 0 0 2 + [66] .text.tk_paramete PROGBITS 00002aa4 003aa4 000140 00 AX 0 0 4 + [67] .text.CORET_DeIni PROGBITS 00002be4 003be4 000018 00 AX 0 0 4 + [68] .text.CORET_Int_E PROGBITS 00002bfc 003bfc 000018 00 AX 0 0 4 + [69] .text.CORET_start PROGBITS 00002c14 003c14 000010 00 AX 0 0 4 + [70] .text.CORET_CLKSO PROGBITS 00002c24 003c24 000010 00 AX 0 0 4 + [71] .text.CORET_TICKI PROGBITS 00002c34 003c34 000010 00 AX 0 0 4 + [72] .text.CORET_reloa PROGBITS 00002c44 003c44 000010 00 AX 0 0 4 + [73] .text.startup.mai PROGBITS 00002c54 003c54 00006c 00 AX 0 0 4 + [74] .text.delay_nms PROGBITS 00002cc0 003cc0 00002c 00 AX 0 0 2 + [75] .text.delay_nus PROGBITS 00002cec 003cec 000022 00 AX 0 0 2 + [76] .text.EPT0_CONFIG PROGBITS 00002d10 003d10 000060 00 AX 0 0 4 + [77] .text.BT_CONFIG PROGBITS 00002d70 003d70 000060 00 AX 0 0 4 + [78] .text.SYSCON_CONF PROGBITS 00002dd0 003dd0 000062 00 AX 0 0 2 + [79] .text.APT32F102_i PROGBITS 00002e34 003e34 000088 00 AX 0 0 4 + [80] .text.SYSCONIntHa PROGBITS 00002ebc 003ebc 0000f0 00 AX 0 0 4 + [81] .text.IFCIntHandl PROGBITS 00002fac 003fac 000068 00 AX 0 0 4 + [82] .text.ADCIntHandl PROGBITS 00003014 004014 000068 00 AX 0 0 4 + [83] .text.EPT0IntHand PROGBITS 0000307c 00407c 0001ac 00 AX 0 0 4 + [84] .text.WWDTHandler PROGBITS 00003228 004228 000034 00 AX 0 0 4 + [85] .text.GPT0IntHand PROGBITS 0000325c 00425c 000080 00 AX 0 0 4 + [86] .text.RTCIntHandl PROGBITS 000032dc 0042dc 000070 00 AX 0 0 4 + [87] .text.UART0IntHan PROGBITS 0000334c 00434c 00003c 00 AX 0 0 4 + [88] .text.UART1IntHan PROGBITS 00003388 004388 00003c 00 AX 0 0 4 + [89] .text.UART2IntHan PROGBITS 000033c4 0043c4 000094 00 AX 0 0 4 + [90] .text.SPI0IntHand PROGBITS 00003458 004458 0000e8 00 AX 0 0 4 + [91] .text.SIO0IntHand PROGBITS 00003540 004540 000054 00 AX 0 0 4 + [92] .text.EXI0IntHand PROGBITS 00003594 004594 000030 00 AX 0 0 4 + [93] .text.EXI1IntHand PROGBITS 000035c4 0045c4 000030 00 AX 0 0 4 + [94] .text.EXI2to3IntH PROGBITS 000035f4 0045f4 000048 00 AX 0 0 4 + [95] .text.EXI4to9IntH PROGBITS 0000363c 00463c 00005c 00 AX 0 0 4 + [96] .text.EXI10to15In PROGBITS 00003698 004698 000060 00 AX 0 0 4 + [97] .text.LPTIntHandl PROGBITS 000036f8 0046f8 000034 00 AX 0 0 4 + [98] .text.BT0IntHandl PROGBITS 0000372c 00472c 00004c 00 AX 0 0 4 + [99] .text.BT1IntHandl PROGBITS 00003778 004778 000064 00 AX 0 0 4 + [100] .text.PriviledgeV PROGBITS 000037dc 0047dc 000002 00 AX 0 0 2 + [101] .text.PendTrapHan PROGBITS 000037de 0047de 000008 00 AX 0 0 2 + [102] .text.Trap3Handle PROGBITS 000037e6 0047e6 000008 00 AX 0 0 2 + [103] .text.Trap2Handle PROGBITS 000037ee 0047ee 000008 00 AX 0 0 2 + [104] .text.Trap1Handle PROGBITS 000037f6 0047f6 000008 00 AX 0 0 2 + [105] .text.Trap0Handle PROGBITS 000037fe 0047fe 000008 00 AX 0 0 2 + [106] .text.UnrecExecpH PROGBITS 00003806 004806 000008 00 AX 0 0 2 + [107] .text.BreakPointH PROGBITS 0000380e 00480e 000008 00 AX 0 0 2 + [108] .text.AccessErrHa PROGBITS 00003816 004816 000008 00 AX 0 0 2 + [109] .text.IllegalInst PROGBITS 0000381e 00481e 000008 00 AX 0 0 2 + [110] .text.MisalignedH PROGBITS 00003826 004826 000008 00 AX 0 0 2 + [111] .text.CNTAIntHand PROGBITS 0000382e 00482e 000008 00 AX 0 0 2 + [112] .text.I2CIntHandl PROGBITS 00003836 004836 000008 00 AX 0 0 2 + [113] .text.__divsi3 PROGBITS 00003840 004840 000024 00 AX 0 0 4 + [114] .text.__udivsi3 PROGBITS 00003864 004864 000024 00 AX 0 0 4 + [115] .text.__umodsi3 PROGBITS 00003888 004888 000024 00 AX 0 0 4 + [116] .text.CK_CPU_EnAl PROGBITS 000038ac 0048ac 000006 00 AX 0 0 2 + [117] .text.UARTx_Init PROGBITS 000038b4 0048b4 000108 00 AX 0 0 4 + [118] .text.UART2_RecvI PROGBITS 000039bc 0049bc 00006c 00 AX 0 0 4 + [119] .text.UART2_TASK PROGBITS 00003a28 004a28 00009c 00 AX 0 0 4 + [120] .text.MCU485_Send PROGBITS 00003ac4 004ac4 000088 00 AX 0 0 4 + [121] .text.Dbg_Println PROGBITS 00003b4c 004b4c 00000c 00 AX 0 0 2 + [122] .text.Dbg_Print_B PROGBITS 00003b58 004b58 000002 00 AX 0 0 2 + [123] .text.Touch_Key_I PROGBITS 00003b5c 004b5c 000078 00 AX 0 0 4 + [124] .text.TouchKey_RS PROGBITS 00003bd4 004bd4 000138 00 AX 0 0 4 + [125] .text.Get_TouchKe PROGBITS 00003d0c 004d0c 00003c 00 AX 0 0 4 + [126] .text.Touch_Key_E PROGBITS 00003d48 004d48 0000ac 00 AX 0 0 4 + [127] .text.TouchKey_Se PROGBITS 00003df4 004df4 00003c 00 AX 0 0 4 + [128] .text.Touch_Key_T PROGBITS 00003e30 004e30 0000d8 00 AX 0 0 4 + [129] .text.TouchKey_Ch PROGBITS 00003f08 004f08 000018 00 AX 0 0 2 + [130] .text.TouchKey_Co PROGBITS 00003f20 004f20 000084 00 AX 0 0 4 + [131] .text.TouchKey_Se PROGBITS 00003fa4 004fa4 0000b8 00 AX 0 0 4 + [132] .text.TouchKey_Re PROGBITS 0000405c 00505c 0000e4 00 AX 0 0 4 + [133] .text.TouchKey_Du PROGBITS 00004140 005140 000038 00 AX 0 0 4 + [134] .text.TouchKey_Re PROGBITS 00004178 005178 0000cc 00 AX 0 0 4 + [135] .text.TouchKey_Re PROGBITS 00004244 005244 00001a 00 AX 0 0 2 + [136] .text.TouchKey_Co PROGBITS 00004260 005260 0000d8 00 AX 0 0 4 + [137] .text.EEPROM_Chec PROGBITS 00004338 005338 000016 00 AX 0 0 2 + [138] .text.EEPROM_Read PROGBITS 00004350 005350 000074 00 AX 0 0 4 + [139] .text.EEPROM_Writ PROGBITS 000043c4 0053c4 000044 00 AX 0 0 4 + [140] .text.EEPROM_Vali PROGBITS 00004408 005408 000070 00 AX 0 0 4 + [141] .text.EEPROM_Defa PROGBITS 00004478 005478 000018 00 AX 0 0 2 + [142] .text.EEPROM_Init PROGBITS 00004490 005490 000050 00 AX 0 0 4 + [143] .text.EEPROM_Writ PROGBITS 000044e0 0054e0 00006c 00 AX 0 0 4 + [144] .text.EEPROM_Read PROGBITS 0000454c 00554c 0000ac 00 AX 0 0 4 + [145] .text.EEPROM_Vali PROGBITS 000045f8 0055f8 0000a8 00 AX 0 0 4 + [146] .text.EEPROM_Defa PROGBITS 000046a0 0056a0 000040 00 AX 0 0 2 + [147] .text.EEPROM_Touc PROGBITS 000046e0 0056e0 000080 00 AX 0 0 4 + [148] .text.ADC_Init PROGBITS 00004760 005760 00005c 00 AX 0 0 4 + [149] .text.Thermistor_ PROGBITS 000047bc 0057bc 000048 00 AX 0 0 4 + [150] .text.Calculate_A PROGBITS 00004804 005804 0000c0 00 AX 0 0 4 + [151] .text.ADC_Sample_ PROGBITS 000048c4 0058c4 0000b0 00 AX 0 0 4 + [152] .text.Get_Temp_Va PROGBITS 00004974 005974 000010 00 AX 0 0 4 + [153] .text.HT1621_WR_D PROGBITS 00004984 005984 000048 00 AX 0 0 4 + [154] .text.HT1621_WR_C PROGBITS 000049cc 0059cc 000030 00 AX 0 0 4 + [155] .text.HT1621_Init PROGBITS 000049fc 0059fc 00008c 00 AX 0 0 4 + [156] .text.HT1621_Clea PROGBITS 00004a88 005a88 000050 00 AX 0 0 4 + [157] .text.HT1621_ALLO PROGBITS 00004ad8 005ad8 000040 00 AX 0 0 4 + [158] .text.HT1621_Refr PROGBITS 00004b18 005b18 00004c 00 AX 0 0 4 + [159] .text.Set_Tempera PROGBITS 00004b64 005b64 000088 00 AX 0 0 4 + [160] .text.Local_Tempe PROGBITS 00004bec 005bec 000080 00 AX 0 0 4 + [161] .text.Control_Mod PROGBITS 00004c6c 005c6c 000048 00 AX 0 0 4 + [162] .text.Control_win PROGBITS 00004cb4 005cb4 000070 00 AX 0 0 4 + [163] .text.Control_Pro PROGBITS 00004d24 005d24 000044 00 AX 0 0 4 + [164] .text.Controlled_ PROGBITS 00004d68 005d68 000048 00 AX 0 0 4 + [165] .text.Controlled_ PROGBITS 00004db0 005db0 000024 00 AX 0 0 4 + [166] .text.Controlled_ PROGBITS 00004dd4 005dd4 000024 00 AX 0 0 4 + [167] .text.Set_Device_ PROGBITS 00004df8 005df8 000098 00 AX 0 0 4 + [168] .text.Set_Temp_Di PROGBITS 00004e90 005e90 000064 00 AX 0 0 4 + [169] .text.HT1621_Refr PROGBITS 00004ef4 005ef4 000060 00 AX 0 0 4 + [170] .text.MODEL_Ctrl_ PROGBITS 00004f54 005f54 00002c 00 AX 0 0 4 + [171] .text.Control_Mod PROGBITS 00004f80 005f80 0000b4 00 AX 0 0 4 + [172] .text.TemCtrl_Ini PROGBITS 00005034 006034 00013c 00 AX 0 0 4 + [173] .text.TemCtrl_Mod PROGBITS 00005170 006170 00004c 00 AX 0 0 4 + [174] .text.TemCtrl_Fan PROGBITS 000051bc 0061bc 00004c 00 AX 0 0 4 + [175] .text.TemCtrl_Tem PROGBITS 00005208 006208 000030 00 AX 0 0 4 + [176] .text.TemCtrl_Tem PROGBITS 00005238 006238 000030 00 AX 0 0 4 + [177] .text.TemCtrl_OnO PROGBITS 00005268 006268 000034 00 AX 0 0 4 + [178] .text.Tem_Valve_C PROGBITS 0000529c 00629c 00012c 00 AX 0 0 4 + [179] .text.TemCtrl_Pro PROGBITS 000053c8 0063c8 0000f0 00 AX 0 0 4 + [180] .text.KEY1_Model_ PROGBITS 000054b8 0064b8 0000e4 00 AX 0 0 4 + [181] .text.KEY2_Fan_Pr PROGBITS 0000559c 00659c 0000e4 00 AX 0 0 4 + [182] .text.KEY3_TempAd PROGBITS 00005680 006680 000104 00 AX 0 0 4 + [183] .text.KEY3_Long_P PROGBITS 00005784 006784 00006c 00 AX 0 0 4 + [184] .text.KEY4_TempDe PROGBITS 000057f0 0067f0 000100 00 AX 0 0 4 + [185] .text.KEY4_Long_P PROGBITS 000058f0 0068f0 00006c 00 AX 0 0 4 + [186] .text.KEY5_OnOff_ PROGBITS 0000595c 00695c 0000a8 00 AX 0 0 4 + [187] .text.TempCtrl_On PROGBITS 00005a04 006a04 00004c 00 AX 0 0 4 + [188] .text.DisPlay_Ini PROGBITS 00005a50 006a50 000020 00 AX 0 0 4 + [189] .text.DisPlay_Tas PROGBITS 00005a70 006a70 000318 00 AX 0 0 4 + [190] .text.Debug_Init PROGBITS 00005d88 006d88 000034 00 AX 0 0 4 + [191] .text.Dev_SaveDat PROGBITS 00005dbc 006dbc 000070 00 AX 0 0 4 + [192] .text.Debug_Task PROGBITS 00005e2c 006e2c 00006c 00 AX 0 0 4 + [193] .text.get_check_s PROGBITS 00005e98 006e98 000016 00 AX 0 0 2 + [194] .text.uart_receiv PROGBITS 00005eb0 006eb0 000044 00 AX 0 0 4 + [195] .text.Queue_Read_ PROGBITS 00005ef4 006ef4 000034 00 AX 0 0 4 + [196] .text.with_data_r PROGBITS 00005f28 006f28 00001c 00 AX 0 0 4 + [197] .text.RF_Info_Ini PROGBITS 00005f44 006f44 000034 00 AX 0 0 4 + [198] .text.Add_Frame_H PROGBITS 00005f78 006f78 000040 00 AX 0 0 4 + [199] .text.Product_Inf PROGBITS 00005fb8 006fb8 000094 00 AX 0 0 4 + [200] .text.Recv_RFNetS PROGBITS 0000604c 00704c 000038 00 AX 0 0 4 + [201] .text.Tem_Fun_Ctr PROGBITS 00006084 007084 0000b0 00 AX 0 0 4 + [202] .text.data_handle PROGBITS 00006134 007134 000128 00 AX 0 0 4 + [203] .text.zigbee_uart PROGBITS 0000625c 00725c 0000c8 00 AX 0 0 4 + [204] .text.TemFun_Repo PROGBITS 00006324 007324 0000d0 00 AX 0 0 4 + [205] .text.Relay_Init PROGBITS 000063f4 0073f4 00006c 00 AX 0 0 4 + [206] .text.Relay_High PROGBITS 00006460 007460 000024 00 AX 0 0 4 + [207] .text.Relay_Mid PROGBITS 00006484 007484 000024 00 AX 0 0 4 + [208] .text.Relay_Low PROGBITS 000064a8 0074a8 000024 00 AX 0 0 4 + [209] .text.Relay_Stop PROGBITS 000064cc 0074cc 000024 00 AX 0 0 4 + [210] .text.NetCRC16 PROGBITS 000064f0 0074f0 00004c 00 AX 0 0 4 + [211] .text.GetCRC16 PROGBITS 0000653c 00753c 00003c 00 AX 0 0 4 + [212] .text.SOR_CRC PROGBITS 00006578 007578 000016 00 AX 0 0 2 + [213] .text.Rs485AskCyc PROGBITS 00006590 007590 0000ec 00 AX 0 0 4 + [214] .text.Rs485AskCtr PROGBITS 0000667c 00767c 000050 00 AX 0 0 4 + [215] .text.Rs485AskRea PROGBITS 000066cc 0076cc 000054 00 AX 0 0 4 + [216] .text.Temp_Rec_An PROGBITS 00006720 007720 000168 00 AX 0 0 4 + [217] .text.Tem_Rs485_R PROGBITS 00006888 007888 0000c8 00 AX 0 0 4 + [218] .text.TK_ConfigIn PROGBITS 00006950 007950 000010 00 AX 0 0 4 + [219] .text.tk_clk_conf PROGBITS 00006960 007960 000028 00 AX 0 0 4 + [220] .text.TK_con0_con PROGBITS 00006988 007988 0000bc 00 AX 0 0 4 + [221] .text.TK_IO_Enabl PROGBITS 00006a44 007a44 000134 00 AX 0 0 4 + [222] .text.TK_Sampling PROGBITS 00006b78 007b78 000058 00 AX 0 0 4 + [223] .text.TKEYIntHand PROGBITS 00006bd0 007bd0 000088 00 AX 0 0 4 + [224] .text.get_key_num PROGBITS 00006c58 007c58 000028 00 AX 0 0 4 + [225] .text.TK_Baseline PROGBITS 00006c80 007c80 000084 00 AX 0 0 4 + [226] .text.TK_Scan_Sta PROGBITS 00006d04 007d04 000020 00 AX 0 0 4 + [227] .text.TK_Keymap_p PROGBITS 00006d24 007d24 000180 00 AX 0 0 4 + [228] .text.TK_overflow PROGBITS 00006ea4 007ea4 00011c 00 AX 0 0 4 + [229] .text.TK_Baseline PROGBITS 00006fc0 007fc0 0001d0 00 AX 0 0 4 + [230] .text.TK_result_p PROGBITS 00007190 008190 000054 00 AX 0 0 4 + [231] .text.CORETHandle PROGBITS 000071e4 0081e4 000078 00 AX 0 0 4 + [232] .text.get_key_seq PROGBITS 0000725c 00825c 000034 00 AX 0 0 4 + [233] .text.CORET_CONFI PROGBITS 00007290 008290 000038 00 AX 0 0 4 + [234] .text.tk_chxval_s PROGBITS 000072c8 0082c8 00001c 00 AX 0 0 4 + [235] .text.tk_reserved PROGBITS 000072e4 0082e4 000028 00 AX 0 0 4 + [236] .text.tk_init PROGBITS 0000730c 00830c 000180 00 AX 0 0 4 + [237] .text.std_clk_cal PROGBITS 0000748c 00848c 000284 00 AX 0 0 4 + [238] .RomCode PROGBITS 00007710 0090a4 000000 00 W 0 0 1 + [239] .rodata PROGBITS 00007710 008710 000890 00 A 0 0 4 + [240] .data PROGBITS 20000000 009000 0000a4 00 WA 0 0 4 + [241] .bss NOBITS 200000a4 0090a4 000850 00 WA 0 0 4 + [242] .csky.attributes CSKY_ATTRIBUTES 00000000 0090a4 000022 00 0 0 1 + [243] .comment PROGBITS 00000000 0090c6 000042 01 MS 0 0 1 + [244] .csky_stack_size PROGBITS 00000000 009110 000a3c 00 0 0 16 + [245] .debug_line PROGBITS 00000000 009b4c 005f2b 00 0 0 1 + [246] .debug_info PROGBITS 00000000 00fa77 049efa 00 0 0 1 + [247] .debug_abbrev PROGBITS 00000000 059971 0041ae 00 0 0 1 + [248] .debug_aranges PROGBITS 00000000 05db20 001040 00 0 0 8 + [249] .debug_ranges PROGBITS 00000000 05eb60 000f98 00 0 0 1 + [250] .debug_str PROGBITS 00000000 05faf8 009618 01 MS 0 0 1 + [251] .debug_frame PROGBITS 00000000 069110 002634 00 0 0 4 + [252] .debug_loc PROGBITS 00000000 06b744 0031f1 00 0 0 1 + [253] .shstrtab STRTAB 00000000 07614a 001619 00 0 0 1 + [254] .symtab SYMTAB 00000000 06e938 005c60 10 255 1074 4 + [255] .strtab STRTAB 00000000 074598 001bb2 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 0x07fa0 0x07fa0 R E 0x1000 + LOAD 0x009000 0x20000000 0x00007fa0 0x000a4 0x008f4 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_PullHighLow_DIS .text.GPIO_DriveStrength_EN .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.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.EPT0_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.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.MODEL_Ctrl_Init .text.Control_Mode_Detection .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.get_check_sum .text.uart_receive_input .text.Queue_Read_Byte .text.with_data_rxbuff .text.RF_Info_Init .text.Add_Frame_Head .text.Product_Info_Update .text.Recv_RFNetState_Ack .text.Tem_Fun_Ctrl_Report .text.data_handle .text.zigbee_uart_service .text.TemFun_Report_Task .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHighLow_DIS) for GPIO_PullHighLow_DIS + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Low) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) 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_model_detection.o(.text.Control_Mode_Detection) 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.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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.UART2_TASK) for UART2_TASK + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) for MODEL_Ctrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) for Control_Mode_Detection + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.uart_receive_input) for uart_receive_input + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Queue_Read_Byte) for Queue_Read_Byte + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.with_data_rxbuff) for with_data_rxbuff + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) for RF_Info_Init + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) for Product_Info_Update + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) for Recv_RFNetState_Ack + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) for data_handle + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) for zigbee_uart_service + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) for TemFun_Report_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) 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), (2913 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_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_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), (3107 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), (3424 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), (3169 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), (8032 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), (4137 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), (3540 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), (3656 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4856 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (5 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), (76 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.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (160 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (188 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .data(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .bss(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .text.Rest_RFNetState(Obj/USRCTRL_rf_uart_protocol.o), (64 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text.RLY_State_Multi_Control(Obj/USRCTRL_myrelay.o), (184 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (127 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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). + +592 unused seciton(s) (total 153372 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_model_detection.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_rf_uart_protocol.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_PullHighLow_DIS + $t 0x00001e7c 0 .text.GPIO_PullHighLow_DIS + $d 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $t 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $d 0x00001e98 0 .text.GPIO_Write_High + $t 0x00001e98 0 .text.GPIO_Write_High + $d 0x00001ea0 0 .text.GPIO_Write_Low + $t 0x00001ea0 0 .text.GPIO_Write_Low + $d 0x00001ea8 0 .text.GPIO_Reverse + $t 0x00001ea8 0 .text.GPIO_Reverse + $d 0x00001ebe 0 .text.GPIO_Read_Status + $t 0x00001ebe 0 .text.GPIO_Read_Status + $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.UART0_DeInit + $t 0x00001f90 0 .text.UART0_DeInit + $d 0x00001fa4 0 .text.UART0_DeInit + $d 0x00001fa8 0 .text.UART1_DeInit + $t 0x00001fa8 0 .text.UART1_DeInit + $d 0x00001fbc 0 .text.UART1_DeInit + $d 0x00001fc0 0 .text.UART2_DeInit + $t 0x00001fc0 0 .text.UART2_DeInit + $d 0x00001fd4 0 .text.UART2_DeInit + $d 0x00001fd8 0 .text.UART0_Int_Enable + $t 0x00001fd8 0 .text.UART0_Int_Enable + $d 0x00001fec 0 .text.UART0_Int_Enable + $d 0x00001ff4 0 .text.UART2_Int_Enable + $t 0x00001ff4 0 .text.UART2_Int_Enable + $d 0x00002008 0 .text.UART2_Int_Enable + $d 0x00002010 0 .text.UART_IO_Init + $t 0x00002010 0 .text.UART_IO_Init + $d 0x000020f4 0 .text.UART_IO_Init + $d 0x000020fc 0 .text.UARTInit + $t 0x000020fc 0 .text.UARTInit + $d 0x00002108 0 .text.UARTInit + $d 0x0000210c 0 .text.UARTInitRxTxIntEn + $t 0x0000210c 0 .text.UARTInitRxTxIntEn + $d 0x00002118 0 .text.UARTInitRxTxIntEn + $d 0x0000211c 0 .text.UARTTransmit + $t 0x0000211c 0 .text.UARTTransmit + $d 0x0000213c 0 .text.EPT_Software_Prg + $t 0x0000213c 0 .text.EPT_Software_Prg + $d 0x00002158 0 .text.EPT_Software_Prg + $d 0x0000215c 0 .text.EPT_Start + $t 0x0000215c 0 .text.EPT_Start + $d 0x0000217c 0 .text.EPT_Start + $d 0x00002184 0 .text.EPT_Stop + $t 0x00002184 0 .text.EPT_Stop + $d 0x000021a4 0 .text.EPT_Stop + $d 0x000021ac 0 .text.EPT_IO_SET + $t 0x000021ac 0 .text.EPT_IO_SET + $d 0x000023dc 0 .text.EPT_IO_SET + $d 0x000023e4 0 .text.EPT_PWM_Config + $t 0x000023e4 0 .text.EPT_PWM_Config + $d 0x00002414 0 .text.EPT_PWM_Config + $d 0x0000241c 0 .text.EPT_PWMX_Output_Control + $t 0x0000241c 0 .text.EPT_PWMX_Output_Control + $d 0x000024f0 0 .text.EPT_PWMX_Output_Control + $d 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x0000250c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x00002510 0 .text.ADC12_RESET_VALUE + $t 0x00002510 0 .text.ADC12_RESET_VALUE + $d 0x00002570 0 .text.ADC12_RESET_VALUE + $d 0x00002574 0 .text.ADC12_Control + $t 0x00002574 0 .text.ADC12_Control + $d 0x00002580 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002584 F 32 .text.ADC12_CMD.part.0 + $d 0x00002584 0 .text.ADC12_CMD.part.0 + $t 0x00002584 0 .text.ADC12_CMD.part.0 + $d 0x000025a0 0 .text.ADC12_CMD.part.0 + $d 0x000025a4 0 .text.ADC12_CLK_CMD + $t 0x000025a4 0 .text.ADC12_CLK_CMD + $d 0x000025cc 0 .text.ADC12_CLK_CMD + $d 0x000025d0 0 .text.ADC12_Software_Reset + $t 0x000025d0 0 .text.ADC12_Software_Reset + $d 0x000025dc 0 .text.ADC12_CMD + $t 0x000025dc 0 .text.ADC12_CMD + $d 0x00002600 0 .text.ADC12_CMD + $d 0x00002604 0 .text.ADC12_ready_wait + $t 0x00002604 0 .text.ADC12_ready_wait + $d 0x00002614 0 .text.ADC12_ready_wait + $d 0x00002618 0 .text.ADC12_SEQEND_wait + $t 0x00002618 0 .text.ADC12_SEQEND_wait + $d 0x0000262c 0 .text.ADC12_SEQEND_wait + $d 0x00002630 0 .text.ADC12_DATA_OUPUT + $t 0x00002630 0 .text.ADC12_DATA_OUPUT + $d 0x00002640 0 .text.ADC12_DATA_OUPUT + $d 0x00002644 0 .text.ADC12_Configure_Mode + $t 0x00002644 0 .text.ADC12_Configure_Mode + $d 0x000026bc 0 .text.ADC12_Configure_Mode + $d 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $t 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002834 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002858 0 .text.ADC12_ConversionChannel_Config + $t 0x00002858 0 .text.ADC12_ConversionChannel_Config + $d 0x00002884 0 .text.ADC12_ConversionChannel_Config + $t 0x00002894 0 .text.ADC12_ConversionChannel_Config + $d 0x000029cc 0 .text.ADC12_ConversionChannel_Config + $d 0x000029d8 0 .text.Page_ProgramData + $t 0x000029d8 0 .text.Page_ProgramData + $d 0x00002a70 0 .text.Page_ProgramData + $d 0x00002a78 0 .text.ReadDataArry_U8 + $t 0x00002a78 0 .text.ReadDataArry_U8 + $d 0x00002aa4 0 .text.tk_parameter_init + $t 0x00002aa4 0 .text.tk_parameter_init + $d 0x00002b94 0 .text.tk_parameter_init + $d 0x00002be4 0 .text.CORET_DeInit + $t 0x00002be4 0 .text.CORET_DeInit + $d 0x00002bf8 0 .text.CORET_DeInit + $d 0x00002bfc 0 .text.CORET_Int_Enable + $t 0x00002bfc 0 .text.CORET_Int_Enable + $d 0x00002c0c 0 .text.CORET_Int_Enable + $d 0x00002c14 0 .text.CORET_start + $t 0x00002c14 0 .text.CORET_start + $d 0x00002c20 0 .text.CORET_start + $d 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $t 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c30 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c34 0 .text.CORET_TICKINT_Enable + $t 0x00002c34 0 .text.CORET_TICKINT_Enable + $d 0x00002c40 0 .text.CORET_TICKINT_Enable + $d 0x00002c44 0 .text.CORET_reload + $t 0x00002c44 0 .text.CORET_reload + $d 0x00002c50 0 .text.CORET_reload + $d 0x00002c54 0 .text.startup.main + $t 0x00002c54 0 .text.startup.main + $d 0x00002cb4 0 .text.startup.main + $d 0x00002cc0 0 .text.delay_nms + $t 0x00002cc0 0 .text.delay_nms + $d 0x00002cec 0 .text.delay_nus + $t 0x00002cec 0 .text.delay_nus + $d 0x00002d10 0 .text.EPT0_CONFIG + $t 0x00002d10 0 .text.EPT0_CONFIG + $d 0x00002d6c 0 .text.EPT0_CONFIG + $d 0x00002d70 0 .text.BT_CONFIG + $t 0x00002d70 0 .text.BT_CONFIG + $d 0x00002dc8 0 .text.BT_CONFIG + $d 0x00002dd0 0 .text.SYSCON_CONFIG + $t 0x00002dd0 0 .text.SYSCON_CONFIG + $d 0x00002e34 0 .text.APT32F102_init + $t 0x00002e34 0 .text.APT32F102_init + $d 0x00002ea8 0 .text.APT32F102_init + $d 0x00002ebc 0 .text.SYSCONIntHandler + $t 0x00002ebc 0 .text.SYSCONIntHandler + $d 0x00002fa8 0 .text.SYSCONIntHandler + $d 0x00002fac 0 .text.IFCIntHandler + $t 0x00002fac 0 .text.IFCIntHandler + $d 0x00003010 0 .text.IFCIntHandler + $d 0x00003014 0 .text.ADCIntHandler + $t 0x00003014 0 .text.ADCIntHandler + $d 0x00003078 0 .text.ADCIntHandler + $d 0x0000307c 0 .text.EPT0IntHandler + $t 0x0000307c 0 .text.EPT0IntHandler + $d 0x0000321c 0 .text.EPT0IntHandler + $d 0x00003228 0 .text.WWDTHandler + $t 0x00003228 0 .text.WWDTHandler + $d 0x00003258 0 .text.WWDTHandler + $d 0x0000325c 0 .text.GPT0IntHandler + $t 0x0000325c 0 .text.GPT0IntHandler + $d 0x000032d8 0 .text.GPT0IntHandler + $d 0x000032dc 0 .text.RTCIntHandler + $t 0x000032dc 0 .text.RTCIntHandler + $d 0x00003344 0 .text.RTCIntHandler + $d 0x0000334c 0 .text.UART0IntHandler + $t 0x0000334c 0 .text.UART0IntHandler + $d 0x00003384 0 .text.UART0IntHandler + $d 0x00003388 0 .text.UART1IntHandler + $t 0x00003388 0 .text.UART1IntHandler + $d 0x000033c0 0 .text.UART1IntHandler + $d 0x000033c4 0 .text.UART2IntHandler + $t 0x000033c4 0 .text.UART2IntHandler + $d 0x00003444 0 .text.UART2IntHandler + $d 0x00003458 0 .text.SPI0IntHandler + $t 0x00003458 0 .text.SPI0IntHandler + $d 0x0000353c 0 .text.SPI0IntHandler + $d 0x00003540 0 .text.SIO0IntHandler + $t 0x00003540 0 .text.SIO0IntHandler + $d 0x00003590 0 .text.SIO0IntHandler + $d 0x00003594 0 .text.EXI0IntHandler + $t 0x00003594 0 .text.EXI0IntHandler + $d 0x000035c0 0 .text.EXI0IntHandler + $d 0x000035c4 0 .text.EXI1IntHandler + $t 0x000035c4 0 .text.EXI1IntHandler + $d 0x000035f0 0 .text.EXI1IntHandler + $d 0x000035f4 0 .text.EXI2to3IntHandler + $t 0x000035f4 0 .text.EXI2to3IntHandler + $d 0x00003638 0 .text.EXI2to3IntHandler + $d 0x0000363c 0 .text.EXI4to9IntHandler + $t 0x0000363c 0 .text.EXI4to9IntHandler + $d 0x00003694 0 .text.EXI4to9IntHandler + $d 0x00003698 0 .text.EXI10to15IntHandler + $t 0x00003698 0 .text.EXI10to15IntHandler + $d 0x000036f4 0 .text.EXI10to15IntHandler + $d 0x000036f8 0 .text.LPTIntHandler + $t 0x000036f8 0 .text.LPTIntHandler + $d 0x00003728 0 .text.LPTIntHandler + $d 0x0000372c 0 .text.BT0IntHandler + $t 0x0000372c 0 .text.BT0IntHandler + $d 0x00003774 0 .text.BT0IntHandler + $d 0x00003778 0 .text.BT1IntHandler + $t 0x00003778 0 .text.BT1IntHandler + $d 0x000037d4 0 .text.BT1IntHandler + $d 0x000037dc 0 .text.PriviledgeVioHandler + $t 0x000037dc 0 .text.PriviledgeVioHandler + $d 0x000037de 0 .text.PendTrapHandler + $t 0x000037de 0 .text.PendTrapHandler + $d 0x000037e6 0 .text.Trap3Handler + $t 0x000037e6 0 .text.Trap3Handler + $d 0x000037ee 0 .text.Trap2Handler + $t 0x000037ee 0 .text.Trap2Handler + $d 0x000037f6 0 .text.Trap1Handler + $t 0x000037f6 0 .text.Trap1Handler + $d 0x000037fe 0 .text.Trap0Handler + $t 0x000037fe 0 .text.Trap0Handler + $d 0x00003806 0 .text.UnrecExecpHandler + $t 0x00003806 0 .text.UnrecExecpHandler + $d 0x0000380e 0 .text.BreakPointHandler + $t 0x0000380e 0 .text.BreakPointHandler + $d 0x00003816 0 .text.AccessErrHandler + $t 0x00003816 0 .text.AccessErrHandler + $d 0x0000381e 0 .text.IllegalInstrHandler + $t 0x0000381e 0 .text.IllegalInstrHandler + $d 0x00003826 0 .text.MisalignedHandler + $t 0x00003826 0 .text.MisalignedHandler + $d 0x0000382e 0 .text.CNTAIntHandler + $t 0x0000382e 0 .text.CNTAIntHandler + $d 0x00003836 0 .text.I2CIntHandler + $t 0x00003836 0 .text.I2CIntHandler + $d 0x00003840 0 .text.__divsi3 + $t 0x00003840 0 .text.__divsi3 + $d 0x00003860 0 .text.__divsi3 + $d 0x00003864 0 .text.__udivsi3 + $t 0x00003864 0 .text.__udivsi3 + $d 0x00003884 0 .text.__udivsi3 + $d 0x00003888 0 .text.__umodsi3 + $t 0x00003888 0 .text.__umodsi3 + $d 0x000038a8 0 .text.__umodsi3 + $d 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000038b4 0 .text.UARTx_Init + $t 0x000038b4 0 .text.UARTx_Init + $d 0x00003990 0 .text.UARTx_Init + $d 0x000039bc 0 .text.UART2_RecvINT_Processing + $t 0x000039bc 0 .text.UART2_RecvINT_Processing + $d 0x00003a18 0 .text.UART2_RecvINT_Processing + $d 0x00003a28 0 .text.UART2_TASK + $t 0x00003a28 0 .text.UART2_TASK + $d 0x00003ab8 0 .text.UART2_TASK + $d 0x00003ac4 0 .text.MCU485_SendData + $t 0x00003ac4 0 .text.MCU485_SendData + $d 0x00003b40 0 .text.MCU485_SendData + $d 0x00003b4c 0 .text.Dbg_Println + $t 0x00003b4c 0 .text.Dbg_Println + $d 0x00003b58 0 .text.Dbg_Print_Buff + $t 0x00003b58 0 .text.Dbg_Print_Buff + $d 0x00003b5c 0 .text.Touch_Key_Init + $t 0x00003b5c 0 .text.Touch_Key_Init + $d 0x00003bbc 0 .text.Touch_Key_Init + $d 0x00003bd4 0 .text.TouchKey_RS485_Printf + $t 0x00003bd4 0 .text.TouchKey_RS485_Printf + $d 0x00003cfc 0 .text.TouchKey_RS485_Printf + $d 0x00003d0c 0 .text.Get_TouchKey_CH_State + $t 0x00003d0c 0 .text.Get_TouchKey_CH_State + $d 0x00003d18 0 .text.Get_TouchKey_CH_State + $t 0x00003d1e 0 .text.Get_TouchKey_CH_State + $d 0x00003d44 0 .text.Get_TouchKey_CH_State + $d 0x00003d48 0 .text.Touch_Key_Event_Handling + $t 0x00003d48 0 .text.Touch_Key_Event_Handling + $d 0x00003df0 0 .text.Touch_Key_Event_Handling + $d 0x00003df4 0 .text.TouchKey_Set_Interface_Task + $t 0x00003df4 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e24 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e30 0 .text.Touch_Key_Task + $t 0x00003e30 0 .text.Touch_Key_Task + $d 0x00003ef8 0 .text.Touch_Key_Task + $d 0x00003f08 0 .text.TouchKey_CheckSum + $t 0x00003f08 0 .text.TouchKey_CheckSum + $d 0x00003f20 0 .text.TouchKey_Comm_Reply + $t 0x00003f20 0 .text.TouchKey_Comm_Reply + $d 0x00003f98 0 .text.TouchKey_Comm_Reply + $d 0x00003fa4 0 .text.TouchKey_SetPara_Processing + $t 0x00003fa4 0 .text.TouchKey_SetPara_Processing + $d 0x00004048 0 .text.TouchKey_SetPara_Processing + $d 0x0000405c 0 .text.TouchKey_ReadPara_Processing + $t 0x0000405c 0 .text.TouchKey_ReadPara_Processing + $d 0x00004138 0 .text.TouchKey_ReadPara_Processing + $d 0x00004140 0 .text.TouchKey_DugPrintf_Processing + $t 0x00004140 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004174 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004178 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004178 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000423c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004244 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004244 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004260 0 .text.TouchKey_Comm_Processing + $t 0x00004260 0 .text.TouchKey_Comm_Processing + $d 0x000042ee 0 .text.TouchKey_Comm_Processing + $t 0x000042f4 0 .text.TouchKey_Comm_Processing + $d 0x0000431c 0 .text.TouchKey_Comm_Processing + $d 0x00004338 0 .text.EEPROM_CheckSum + $t 0x00004338 0 .text.EEPROM_CheckSum + $d 0x00004350 0 .text.EEPROM_ReadParaInfo + $t 0x00004350 0 .text.EEPROM_ReadParaInfo + $d 0x000043bc 0 .text.EEPROM_ReadParaInfo + $d 0x000043c4 0 .text.EEPROM_WriteParaInfo + $t 0x000043c4 0 .text.EEPROM_WriteParaInfo + $d 0x00004404 0 .text.EEPROM_WriteParaInfo + $d 0x00004408 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004408 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004470 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004478 0 .text.EEPROM_Default_ParaInfo + $t 0x00004478 0 .text.EEPROM_Default_ParaInfo + $d 0x00004490 0 .text.EEPROM_Init + $t 0x00004490 0 .text.EEPROM_Init + $d 0x000044d4 0 .text.EEPROM_Init + $d 0x000044e0 0 .text.EEPROM_WriteTouchPara + $t 0x000044e0 0 .text.EEPROM_WriteTouchPara + $d 0x00004540 0 .text.EEPROM_WriteTouchPara + $d 0x0000454c 0 .text.EEPROM_ReadTouchPara + $t 0x0000454c 0 .text.EEPROM_ReadTouchPara + $d 0x000045e4 0 .text.EEPROM_ReadTouchPara + $d 0x000045f8 0 .text.EEPROM_Validate_TouchPara + $t 0x000045f8 0 .text.EEPROM_Validate_TouchPara + $d 0x0000469c 0 .text.EEPROM_Validate_TouchPara + $d 0x000046a0 0 .text.EEPROM_Default_TouchPara + $t 0x000046a0 0 .text.EEPROM_Default_TouchPara + $d 0x000046e0 0 .text.EEPROM_TouchPara_Printf + $t 0x000046e0 0 .text.EEPROM_TouchPara_Printf + $d 0x00004744 0 .text.EEPROM_TouchPara_Printf + $d 0x00004760 0 .text.ADC_Init + $t 0x00004760 0 .text.ADC_Init + $d 0x000047b8 0 .text.ADC_Init + $d 0x000047bc 0 .text.Thermistor_Array_Transform + $t 0x000047bc 0 .text.Thermistor_Array_Transform + $d 0x000047fc 0 .text.Thermistor_Array_Transform + $d 0x00004804 0 .text.Calculate_ADC_Sample_Average + $t 0x00004804 0 .text.Calculate_ADC_Sample_Average + $d 0x000048b0 0 .text.Calculate_ADC_Sample_Average + $d 0x000048c4 0 .text.ADC_Sample_Task + $t 0x000048c4 0 .text.ADC_Sample_Task + $d 0x00004964 0 .text.ADC_Sample_Task + $d 0x00004974 0 .text.Get_Temp_Val + $t 0x00004974 0 .text.Get_Temp_Val + $d 0x00004980 0 .text.Get_Temp_Val + $d 0x00004984 0 .text.HT1621_WR_Data + $t 0x00004984 0 .text.HT1621_WR_Data + $d 0x000049c8 0 .text.HT1621_WR_Data + $d 0x000049cc 0 .text.HT1621_WR_CMD + $t 0x000049cc 0 .text.HT1621_WR_CMD + $d 0x000049f8 0 .text.HT1621_WR_CMD + $d 0x000049fc 0 .text.HT1621_Init + $t 0x000049fc 0 .text.HT1621_Init + $d 0x00004a84 0 .text.HT1621_Init + $d 0x00004a88 0 .text.HT1621_Clear + $t 0x00004a88 0 .text.HT1621_Clear + $d 0x00004ad0 0 .text.HT1621_Clear + $d 0x00004ad8 0 .text.HT1621_ALLON + $t 0x00004ad8 0 .text.HT1621_ALLON + $d 0x00004b14 0 .text.HT1621_ALLON + $d 0x00004b18 0 .text.HT1621_Refresh_Data + $t 0x00004b18 0 .text.HT1621_Refresh_Data + $d 0x00004b5c 0 .text.HT1621_Refresh_Data + $d 0x00004b64 0 .text.Set_Temperature_Display + $t 0x00004b64 0 .text.Set_Temperature_Display + $d 0x00004be4 0 .text.Set_Temperature_Display + $d 0x00004bec 0 .text.Local_Temperature_Display + $t 0x00004bec 0 .text.Local_Temperature_Display + $d 0x00004c64 0 .text.Local_Temperature_Display + $d 0x00004c6c 0 .text.Control_Mode + $t 0x00004c6c 0 .text.Control_Mode + $d 0x00004cb0 0 .text.Control_Mode + $d 0x00004cb4 0 .text.Control_wind_velocity + $t 0x00004cb4 0 .text.Control_wind_velocity + $d 0x00004cc0 0 .text.Control_wind_velocity + $t 0x00004cc4 0 .text.Control_wind_velocity + $d 0x00004d20 0 .text.Control_wind_velocity + $d 0x00004d24 0 .text.Control_Prompt_Text + $t 0x00004d24 0 .text.Control_Prompt_Text + $d 0x00004d64 0 .text.Control_Prompt_Text + $d 0x00004d68 0 .text.Controlled_Buzzer + $t 0x00004d68 0 .text.Controlled_Buzzer + $d 0x00004da8 0 .text.Controlled_Buzzer + $d 0x00004db0 0 .text.Controlled_LCD_Backlight + $t 0x00004db0 0 .text.Controlled_LCD_Backlight + $d 0x00004dcc 0 .text.Controlled_LCD_Backlight + $d 0x00004dd4 0 .text.Controlled_Key_Backlight + $t 0x00004dd4 0 .text.Controlled_Key_Backlight + $d 0x00004df0 0 .text.Controlled_Key_Backlight + $d 0x00004df8 0 .text.Set_Device_ADDR + $t 0x00004df8 0 .text.Set_Device_ADDR + $d 0x00004e88 0 .text.Set_Device_ADDR + $d 0x00004e90 0 .text.Set_Temp_Difference + $t 0x00004e90 0 .text.Set_Temp_Difference + $d 0x00004eec 0 .text.Set_Temp_Difference + $d 0x00004ef4 0 .text.HT1621_Refresh_Task + $t 0x00004ef4 0 .text.HT1621_Refresh_Task + $d 0x00004f44 0 .text.HT1621_Refresh_Task + $d 0x00004f54 0 .text.MODEL_Ctrl_Init + $t 0x00004f54 0 .text.MODEL_Ctrl_Init + $d 0x00004f78 0 .text.MODEL_Ctrl_Init + $d 0x00004f80 0 .text.Control_Mode_Detection + $t 0x00004f80 0 .text.Control_Mode_Detection + $d 0x00005024 0 .text.Control_Mode_Detection + $d 0x00005034 0 .text.TemCtrl_Init + $t 0x00005034 0 .text.TemCtrl_Init + $d 0x00005158 0 .text.TemCtrl_Init + $d 0x00005170 0 .text.TemCtrl_Model_Set + $t 0x00005170 0 .text.TemCtrl_Model_Set + $d 0x000051b4 0 .text.TemCtrl_Model_Set + $d 0x000051bc 0 .text.TemCtrl_Fan_Set + $t 0x000051bc 0 .text.TemCtrl_Fan_Set + $d 0x000051da 0 .text.TemCtrl_Fan_Set + $t 0x000051de 0 .text.TemCtrl_Fan_Set + $d 0x00005200 0 .text.TemCtrl_Fan_Set + $d 0x00005208 0 .text.TemCtrl_Temperature_Dec + $t 0x00005208 0 .text.TemCtrl_Temperature_Dec + $d 0x00005230 0 .text.TemCtrl_Temperature_Dec + $d 0x00005238 0 .text.TemCtrl_Temperature_Add + $t 0x00005238 0 .text.TemCtrl_Temperature_Add + $d 0x00005260 0 .text.TemCtrl_Temperature_Add + $d 0x00005268 0 .text.TemCtrl_OnOff_Set + $t 0x00005268 0 .text.TemCtrl_OnOff_Set + $d 0x00005294 0 .text.TemCtrl_OnOff_Set + $d 0x0000529c 0 .text.Tem_Valve_Ctrl + $t 0x0000529c 0 .text.Tem_Valve_Ctrl + $d 0x000053b0 0 .text.Tem_Valve_Ctrl + $d 0x000053c8 0 .text.TemCtrl_Pro + $t 0x000053c8 0 .text.TemCtrl_Pro + $d 0x000054a4 0 .text.TemCtrl_Pro + $d 0x000054b8 0 .text.KEY1_Model_Press_Fun + $t 0x000054b8 0 .text.KEY1_Model_Press_Fun + $d 0x00005580 0 .text.KEY1_Model_Press_Fun + $d 0x0000559c 0 .text.KEY2_Fan_Press_Fun + $t 0x0000559c 0 .text.KEY2_Fan_Press_Fun + $d 0x00005664 0 .text.KEY2_Fan_Press_Fun + $d 0x00005680 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00005680 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005768 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005784 0 .text.KEY3_Long_Press_Fun + $t 0x00005784 0 .text.KEY3_Long_Press_Fun + $d 0x000057e0 0 .text.KEY3_Long_Press_Fun + $d 0x000057f0 0 .text.KEY4_TempDec_Press_Fun + $t 0x000057f0 0 .text.KEY4_TempDec_Press_Fun + $d 0x000058d4 0 .text.KEY4_TempDec_Press_Fun + $d 0x000058f0 0 .text.KEY4_Long_Press + $t 0x000058f0 0 .text.KEY4_Long_Press + $d 0x0000594c 0 .text.KEY4_Long_Press + $d 0x0000595c 0 .text.KEY5_OnOff_Press_Fun + $t 0x0000595c 0 .text.KEY5_OnOff_Press_Fun + $d 0x000059e8 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005a04 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00005a04 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00005a4c 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00005a50 0 .text.DisPlay_Init + $t 0x00005a50 0 .text.DisPlay_Init + $d 0x00005a68 0 .text.DisPlay_Init + $d 0x00005a70 0 .text.DisPlay_Task + $t 0x00005a70 0 .text.DisPlay_Task + $d 0x00005d58 0 .text.DisPlay_Task + $d 0x00005d88 0 .text.Debug_Init + $t 0x00005d88 0 .text.Debug_Init + $d 0x00005db4 0 .text.Debug_Init + $d 0x00005dbc 0 .text.Dev_SaveData + $t 0x00005dbc 0 .text.Dev_SaveData + $d 0x00005e20 0 .text.Dev_SaveData + $d 0x00005e2c 0 .text.Debug_Task + $t 0x00005e2c 0 .text.Debug_Task + $d 0x00005e88 0 .text.Debug_Task + $d 0x00005e98 0 .text.get_check_sum + $t 0x00005e98 0 .text.get_check_sum + $d 0x00005eb0 0 .text.uart_receive_input + $t 0x00005eb0 0 .text.uart_receive_input + $d 0x00005ee4 0 .text.uart_receive_input + $d 0x00005ef4 0 .text.Queue_Read_Byte + $t 0x00005ef4 0 .text.Queue_Read_Byte + $d 0x00005f18 0 .text.Queue_Read_Byte + $d 0x00005f28 0 .text.with_data_rxbuff + $t 0x00005f28 0 .text.with_data_rxbuff + $d 0x00005f3c 0 .text.with_data_rxbuff + $d 0x00005f44 0 .text.RF_Info_Init + $t 0x00005f44 0 .text.RF_Info_Init + $d 0x00005f68 0 .text.RF_Info_Init + $d 0x00005f78 0 .text.Add_Frame_Head + $t 0x00005f78 0 .text.Add_Frame_Head + $d 0x00005fb0 0 .text.Add_Frame_Head + $d 0x00005fb8 0 .text.Product_Info_Update + $t 0x00005fb8 0 .text.Product_Info_Update + $d 0x00006030 0 .text.Product_Info_Update + $d 0x0000604c 0 .text.Recv_RFNetState_Ack + $t 0x0000604c 0 .text.Recv_RFNetState_Ack + $d 0x00006080 0 .text.Recv_RFNetState_Ack + $d 0x00006084 0 .text.Tem_Fun_Ctrl_Report + $t 0x00006084 0 .text.Tem_Fun_Ctrl_Report + $d 0x0000612c 0 .text.Tem_Fun_Ctrl_Report + $d 0x00006134 0 .text.data_handle + $t 0x00006134 0 .text.data_handle + $d 0x00006250 0 .text.data_handle + $d 0x0000625c 0 .text.zigbee_uart_service + $t 0x0000625c 0 .text.zigbee_uart_service + $d 0x0000631c 0 .text.zigbee_uart_service + $d 0x00006324 0 .text.TemFun_Report_Task + $t 0x00006324 0 .text.TemFun_Report_Task + $d 0x000063ec 0 .text.TemFun_Report_Task + $d 0x000063f4 0 .text.Relay_Init + $t 0x000063f4 0 .text.Relay_Init + $d 0x00006458 0 .text.Relay_Init + $d 0x00006460 0 .text.Relay_High + $t 0x00006460 0 .text.Relay_High + $d 0x00006480 0 .text.Relay_High + $d 0x00006484 0 .text.Relay_Mid + $t 0x00006484 0 .text.Relay_Mid + $d 0x000064a4 0 .text.Relay_Mid + $d 0x000064a8 0 .text.Relay_Low + $t 0x000064a8 0 .text.Relay_Low + $d 0x000064c8 0 .text.Relay_Low + $d 0x000064cc 0 .text.Relay_Stop + $t 0x000064cc 0 .text.Relay_Stop + $d 0x000064ec 0 .text.Relay_Stop + $d 0x000064f0 0 .text.NetCRC16 + $t 0x000064f0 0 .text.NetCRC16 + $d 0x00006534 0 .text.NetCRC16 + $d 0x0000653c 0 .text.GetCRC16 + $t 0x0000653c 0 .text.GetCRC16 + $d 0x00006570 0 .text.GetCRC16 + $d 0x00006578 0 .text.SOR_CRC + $t 0x00006578 0 .text.SOR_CRC + $d 0x00006590 0 .text.Rs485AskCycleSend + $t 0x00006590 0 .text.Rs485AskCycleSend + $d 0x00006674 0 .text.Rs485AskCycleSend + $d 0x0000667c 0 .text.Rs485AskCtrlSend + $t 0x0000667c 0 .text.Rs485AskCtrlSend + $d 0x000066c8 0 .text.Rs485AskCtrlSend + $d 0x000066cc 0 .text.Rs485AskReadSend + $t 0x000066cc 0 .text.Rs485AskReadSend + $d 0x0000671c 0 .text.Rs485AskReadSend + $d 0x00006720 0 .text.Temp_Rec_Analysis + $t 0x00006720 0 .text.Temp_Rec_Analysis + $d 0x0000679a 0 .text.Temp_Rec_Analysis + $t 0x0000679e 0 .text.Temp_Rec_Analysis + $d 0x00006864 0 .text.Temp_Rec_Analysis + $t 0x00006868 0 .text.Temp_Rec_Analysis + $d 0x0000687c 0 .text.Temp_Rec_Analysis + $d 0x00006888 0 .text.Tem_Rs485_Rec_Pro + $t 0x00006888 0 .text.Tem_Rs485_Rec_Pro + $d 0x00006940 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x00006950 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00006950 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00006950 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000695c 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00006960 0 .text.tk_clk_config + $t 0x00006960 0 .text.tk_clk_config + $d 0x00006984 0 .text.tk_clk_config + $d 0x00006988 0 .text.TK_con0_config + $t 0x00006988 0 .text.TK_con0_config + $d 0x00006a38 0 .text.TK_con0_config + $d 0x00006a44 0 .text.TK_IO_Enable + $t 0x00006a44 0 .text.TK_IO_Enable + $d 0x00006a88 0 .text.TK_IO_Enable + $t 0x00006a98 0 .text.TK_IO_Enable + $d 0x00006b6c 0 .text.TK_IO_Enable + $d 0x00006b78 0 .text.TK_Sampling_prog + $t 0x00006b78 0 .text.TK_Sampling_prog + $d 0x00006bc0 0 .text.TK_Sampling_prog + $d 0x00006bd0 0 .text.TKEYIntHandler + $t 0x00006bd0 0 .text.TKEYIntHandler + $d 0x00006c4c 0 .text.TKEYIntHandler + $d 0x00006c58 0 .text.get_key_number + $t 0x00006c58 0 .text.get_key_number + $d 0x00006c7c 0 .text.get_key_number + $d 0x00006c80 0 .text.TK_Baseline_prog + $t 0x00006c80 0 .text.TK_Baseline_prog + $d 0x00006ce8 0 .text.TK_Baseline_prog + $d 0x00006d04 0 .text.TK_Scan_Start + $t 0x00006d04 0 .text.TK_Scan_Start + $d 0x00006d1c 0 .text.TK_Scan_Start + $d 0x00006d24 0 .text.TK_Keymap_prog + $t 0x00006d24 0 .text.TK_Keymap_prog + $d 0x00006e6c 0 .text.TK_Keymap_prog + $d 0x00006ea4 0 .text.TK_overflow_predict + $t 0x00006ea4 0 .text.TK_overflow_predict + $d 0x00006f8c 0 .text.TK_overflow_predict + $d 0x00006fc0 0 .text.TK_Baseline_tracking + $t 0x00006fc0 0 .text.TK_Baseline_tracking + $d 0x00007164 0 .text.TK_Baseline_tracking + $d 0x00007190 0 .text.TK_result_prog + $t 0x00007190 0 .text.TK_result_prog + $d 0x000071d0 0 .text.TK_result_prog + $d 0x000071e4 0 .text.CORETHandler + $t 0x000071e4 0 .text.CORETHandler + $d 0x00007244 0 .text.CORETHandler + $d 0x0000725c 0 .text.get_key_seq + $t 0x0000725c 0 .text.get_key_seq + $d 0x00007288 0 .text.get_key_seq + $d 0x00007290 0 .text.CORET_CONFIG + $t 0x00007290 0 .text.CORET_CONFIG + $d 0x000072c0 0 .text.CORET_CONFIG + $d 0x000072c8 0 .text.tk_chxval_seqxcon_clr + $t 0x000072c8 0 .text.tk_chxval_seqxcon_clr + $d 0x000072e0 0 .text.tk_chxval_seqxcon_clr + $d 0x000072e4 0 .text.tk_reserved_init + $t 0x000072e4 0 .text.tk_reserved_init + $d 0x000072f8 0 .text.tk_reserved_init + $d 0x0000730c 0 .text.tk_init + $t 0x0000730c 0 .text.tk_init + $d 0x00007348 0 .text.tk_init + $t 0x0000734e 0 .text.tk_init + $d 0x00007438 0 .text.tk_init + $d 0x0000748c 0 .text.std_clk_calib + $t 0x0000748c 0 .text.std_clk_calib + $d 0x000076d4 0 .text.std_clk_calib + __func__.6297 0x00007710 O 28 .rodata + __func__.6335 0x0000772c O 25 .rodata + bp 0x00007a84 O 16 .rodata + dp_l 0x00007a94 O 16 .rodata + dp_h 0x00007aa4 O 16 .rodata + NUM.6322 0x200000b0 O 1 .bss + adc_tick.6236 0x200000d0 O 4 .bss + tick.6261 0x200000d4 O 4 .bss + rx_in.6298 0x200000da O 2 .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_PullHighLow_DIS 0x00001e7c F 14 .text.GPIO_PullHighLow_DIS + GPIO_DriveStrength_EN 0x00001e8a F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e98 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001ea0 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001ea8 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00001ebe F 16 .text.GPIO_Read_Status + 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 + UART0_DeInit 0x00001f90 F 24 .text.UART0_DeInit + UART1_DeInit 0x00001fa8 F 24 .text.UART1_DeInit + UART2_DeInit 0x00001fc0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00001fd8 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00001ff4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002010 F 236 .text.UART_IO_Init + UARTInit 0x000020fc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x0000210c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x0000211c F 30 .text.UARTTransmit + EPT_Software_Prg 0x0000213c F 32 .text.EPT_Software_Prg + EPT_Start 0x0000215c F 40 .text.EPT_Start + EPT_Stop 0x00002184 F 40 .text.EPT_Stop + EPT_IO_SET 0x000021ac F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x000023e4 F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x0000241c F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x000024f4 F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x00002510 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002574 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x000025a4 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x000025d0 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000025dc F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00002604 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002618 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002630 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002644 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x000026c0 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002858 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x000029d8 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a78 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002aa4 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002be4 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002bfc F 24 .text.CORET_Int_Enable + CORET_start 0x00002c14 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002c24 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c34 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c44 F 16 .text.CORET_reload + main 0x00002c54 F 108 .text.startup.main + delay_nms 0x00002cc0 F 44 .text.delay_nms + delay_nus 0x00002cec F 34 .text.delay_nus + EPT0_CONFIG 0x00002d10 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002d70 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002dd0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002e34 F 136 .text.APT32F102_init + SYSCONIntHandler 0x00002ebc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002fac F 104 .text.IFCIntHandler + ADCIntHandler 0x00003014 F 104 .text.ADCIntHandler + EPT0IntHandler 0x0000307c F 428 .text.EPT0IntHandler + WWDTHandler 0x00003228 F 52 .text.WWDTHandler + GPT0IntHandler 0x0000325c F 128 .text.GPT0IntHandler + RTCIntHandler 0x000032dc F 112 .text.RTCIntHandler + UART0IntHandler 0x0000334c F 60 .text.UART0IntHandler + UART1IntHandler 0x00003388 F 60 .text.UART1IntHandler + UART2IntHandler 0x000033c4 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00003458 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00003540 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003594 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x000035c4 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000035f4 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x0000363c F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003698 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000036f8 F 52 .text.LPTIntHandler + BT0IntHandler 0x0000372c F 76 .text.BT0IntHandler + BT1IntHandler 0x00003778 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x000037dc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000037de F 8 .text.PendTrapHandler + Trap3Handler 0x000037e6 F 8 .text.Trap3Handler + Trap2Handler 0x000037ee F 8 .text.Trap2Handler + Trap1Handler 0x000037f6 F 8 .text.Trap1Handler + Trap0Handler 0x000037fe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003806 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000380e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003816 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000381e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003826 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000382e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003836 F 8 .text.I2CIntHandler + __divsi3 0x00003840 F 36 .text.__divsi3 + __udivsi3 0x00003864 F 36 .text.__udivsi3 + __umodsi3 0x00003888 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000038ac F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x000038b4 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x000039bc F 108 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003a28 F 156 .text.UART2_TASK + MCU485_SendData 0x00003ac4 F 136 .text.MCU485_SendData + Dbg_Println 0x00003b4c F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003b58 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003b5c F 120 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003bd4 F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003d0c F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003d48 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003df4 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003e30 F 216 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003f08 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003f20 F 132 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003fa4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x0000405c F 228 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00004140 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004178 F 204 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004244 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004260 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004338 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004350 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000043c4 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004408 F 112 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004478 F 24 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x00004490 F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000044e0 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x0000454c F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x000045f8 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000046a0 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x000046e0 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004760 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000047bc F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004804 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000048c4 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004974 F 16 .text.Get_Temp_Val + HT1621_WR_Data 0x00004984 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000049cc F 48 .text.HT1621_WR_CMD + HT1621_Init 0x000049fc F 140 .text.HT1621_Init + HT1621_Clear 0x00004a88 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00004ad8 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00004b18 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x00004b64 F 136 .text.Set_Temperature_Display + Local_Temperature_Display 0x00004bec F 128 .text.Local_Temperature_Display + Control_Mode 0x00004c6c F 72 .text.Control_Mode + Control_wind_velocity 0x00004cb4 F 112 .text.Control_wind_velocity + Control_Prompt_Text 0x00004d24 F 68 .text.Control_Prompt_Text + Controlled_Buzzer 0x00004d68 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00004db0 F 36 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00004dd4 F 36 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00004df8 F 152 .text.Set_Device_ADDR + Set_Temp_Difference 0x00004e90 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00004ef4 F 96 .text.HT1621_Refresh_Task + MODEL_Ctrl_Init 0x00004f54 F 44 .text.MODEL_Ctrl_Init + Control_Mode_Detection 0x00004f80 F 180 .text.Control_Mode_Detection + TemCtrl_Init 0x00005034 F 316 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00005170 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x000051bc F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00005208 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00005238 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00005268 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x0000529c F 300 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000053c8 F 240 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x000054b8 F 228 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x0000559c F 228 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00005680 F 260 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00005784 F 108 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x000057f0 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x000058f0 F 108 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x0000595c F 168 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00005a04 F 76 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00005a50 F 32 .text.DisPlay_Init + DisPlay_Task 0x00005a70 F 792 .text.DisPlay_Task + Debug_Init 0x00005d88 F 52 .text.Debug_Init + Dev_SaveData 0x00005dbc F 112 .text.Dev_SaveData + Debug_Task 0x00005e2c F 108 .text.Debug_Task + get_check_sum 0x00005e98 F 22 .text.get_check_sum + uart_receive_input 0x00005eb0 F 68 .text.uart_receive_input + Queue_Read_Byte 0x00005ef4 F 52 .text.Queue_Read_Byte + with_data_rxbuff 0x00005f28 F 28 .text.with_data_rxbuff + RF_Info_Init 0x00005f44 F 52 .text.RF_Info_Init + Add_Frame_Head 0x00005f78 F 64 .text.Add_Frame_Head + Product_Info_Update 0x00005fb8 F 144 .text.Product_Info_Update + Recv_RFNetState_Ack 0x0000604c F 56 .text.Recv_RFNetState_Ack + Tem_Fun_Ctrl_Report 0x00006084 F 176 .text.Tem_Fun_Ctrl_Report + data_handle 0x00006134 F 296 .text.data_handle + zigbee_uart_service 0x0000625c F 200 .text.zigbee_uart_service + TemFun_Report_Task 0x00006324 F 208 .text.TemFun_Report_Task + Relay_Init 0x000063f4 F 108 .text.Relay_Init + Relay_High 0x00006460 F 36 .text.Relay_High + Relay_Mid 0x00006484 F 36 .text.Relay_Mid + Relay_Low 0x000064a8 F 36 .text.Relay_Low + Relay_Stop 0x000064cc F 36 .text.Relay_Stop + NetCRC16 0x000064f0 F 76 .text.NetCRC16 + GetCRC16 0x0000653c F 60 .text.GetCRC16 + SOR_CRC 0x00006578 F 22 .text.SOR_CRC + Rs485AskCycleSend 0x00006590 F 236 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x0000667c F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x000066cc F 84 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x00006720 F 360 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00006888 F 200 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x00006960 F 40 .text.tk_clk_config + TK_con0_config 0x00006988 F 188 .text.TK_con0_config + TK_IO_Enable 0x00006a44 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x00006b78 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00006bd0 F 136 .text.TKEYIntHandler + get_key_number 0x00006c58 F 40 .text.get_key_number + TK_Baseline_prog 0x00006c80 F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00006d04 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00006d24 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00006ea4 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00006fc0 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00007190 F 84 .text.TK_result_prog + CORETHandler 0x000071e4 F 120 .text.CORETHandler + get_key_seq 0x0000725c F 52 .text.get_key_seq + CORET_CONFIG 0x00007290 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x000072c8 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x000072e4 F 40 .text.tk_reserved_init + tk_init 0x0000730c F 368 .text.tk_init + std_clk_calib 0x0000748c F 644 .text.std_clk_calib + R_Array 0x00007746 O 820 .rodata + Diaital 0x00007a7a O 10 .rodata + __thenan_df 0x00007ab4 O 20 .rodata + __clz_tab 0x00007ac8 O 256 .rodata + _end_rodata 0x00007fa0 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 + MCU_Touch_CH 0x20000068 O 5 .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 + Sav_Temp 0x200000a4 O 4 .bss + _bss_start 0x200000a4 0 .bss + Sys_RSR 0x200000a8 O 4 .bss + test_tick 0x200000ac O 4 .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 + Dbg_Switch 0x200000cc O 4 .bss + seq_num 0x200000d8 O 2 .bss + Press_debounce_data 0x200000dc O 1 .bss + TK_Lowpower_mode 0x200000dd O 1 .bss + TK_Lowpower_level 0x200000de O 1 .bss + TK_longpress_time 0x200000e0 O 4 .bss + Release_debounce_data 0x200000e4 O 1 .bss + Key_mode 0x200000e5 O 1 .bss + TK_icon 0x200000e6 O 34 .bss + MultiTimes_Filter 0x20000108 O 1 .bss + Base_Speed 0x20000109 O 1 .bss + TK_IO_ENABLE 0x2000010c O 4 .bss + Valid_Key_Num 0x20000110 O 1 .bss + TK_senprd 0x20000112 O 34 .bss + TK_Wakeup_level 0x20000134 O 1 .bss + TK_Triggerlevel 0x20000136 O 34 .bss + TK_EC_LEVEL 0x20000158 O 2 .bss + TK_FVR_LEVEL 0x2000015a O 2 .bss + TK_BaseCnt 0x2000015c O 4 .bss + TK_PSEL_MODE 0x20000160 O 2 .bss + R_CMPB_BUF 0x20000164 O 4 .bss + R_CMPA_BUF 0x20000168 O 4 .bss + R_SIORX_buf 0x2000016c O 40 .bss + g_uart 0x20000194 O 345 .bss + touch_para 0x200002f0 O 28 .bss + touch_state 0x2000030c O 20 .bss + g_key 0x20000320 O 48 .bss + g_eeprom 0x20000350 O 6 .bss + g_adc 0x20000356 O 55 .bss + HT1621 0x20000390 O 60 .bss + detect_inf 0x200003cc O 8 .bss + TempCtrl 0x200003d4 O 31 .bss + Debug_Inf 0x200003f3 O 12 .bss + zigbee_queue_buf 0x20000400 O 265 .bss + queue_in 0x2000050c O 4 .bss + zigbee_uart_rx_buf 0x20000510 O 137 .bss + queue_out 0x2000059c O 4 .bss + rf_info 0x200005a0 O 3 .bss + zigbee_uart_tx_buf 0x200005a3 O 137 .bss + baseline_data0 0x2000062c O 34 .bss + TK_Postive_build2 0x2000064e O 17 .bss + Key_Map1 0x20000660 O 4 .bss + offset_data2_abs 0x20000664 O 34 .bss + scan_f 0x20000686 O 1 .bss + offset_data1_abs 0x20000688 O 34 .bss + Release_debounce0 0x200006aa O 17 .bss + Key_Map0 0x200006bc O 4 .bss + bsae_over_f 0x200006c0 O 1 .bss + scan_cnt 0x200006c2 O 2 .bss + Press_debounce0 0x200006c4 O 17 .bss + offset_data0 0x200006d6 O 34 .bss + sampling_data1 0x200006f8 O 34 .bss + Key_Map2 0x2000071c O 4 .bss + Release_debounce1 0x20000720 O 17 .bss + tk_overflow_f 0x20000731 O 1 .bss + TK_Negtive_build2 0x20000732 O 17 .bss + base_update_f 0x20000743 O 1 .bss + TK_Postive_build1 0x20000744 O 17 .bss + time_cnt 0x20000758 O 4 .bss + lpt_scan_pend_cnt 0x2000075c O 2 .bss + TK_track_cnt 0x2000075e O 1 .bss + Key_Map 0x20000760 O 4 .bss + baseline_data1 0x20000764 O 34 .bss + TK_Postive_build0 0x20000786 O 17 .bss + sampling_data2 0x20000798 O 34 .bss + offset_data1 0x200007ba O 34 .bss + TK_ovrdect_cnt 0x200007dc O 1 .bss + Press_debounce2 0x200007dd O 17 .bss + TK_Negtive_build1 0x200007ee O 17 .bss + tk_num 0x200007ff O 1 .bss + TK_Negtive_build0 0x20000800 O 17 .bss + Press_debounce1 0x20000811 O 17 .bss + Release_debounce2 0x20000822 O 17 .bss + r_Key_Map_Temp 0x20000834 O 4 .bss + tk_seque 0x20000838 O 17 .bss + scan_step 0x20000849 O 1 .bss + baseline_data2 0x2000084a O 34 .bss + tk_sampling_max 0x2000086c O 34 .bss + offset_data0_abs 0x2000088e O 34 .bss + offset_data2 0x200008b0 O 34 .bss + sampling_data0 0x200008d2 O 34 .bss + _ebss 0x200008f4 0 .bss + _end 0x200008f4 0 .bss + end 0x200008f4 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: 0x00007fa0, 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 1233 .text pow.o + 0x00000b5e 0x00000006 Code RO 1241 .text fabs.o + 0x00000b64 0x00000020 Code RO 1247 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1254 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1265 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1270 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1277 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1284 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1291 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1298 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1305 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1312 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1319 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1326 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1340 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1347 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1354 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1360 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1367 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1374 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1395 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1400 .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 137 .text.GPIO_PullHighLow_DIS Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e98 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001ea0 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001ea8 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001ebe 0x00000010 Code RO 151 .text.GPIO_Read_Status 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 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fa8 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fc0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fd8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001ff4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002010 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000020fc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x0000210c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x0000211c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x0000213c 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x0000215c 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x00002184 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000021ac 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x000023e4 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x0000241c 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x000024f4 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x00002510 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002574 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002584 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x000025a4 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x000025d0 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000025dc 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00002604 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002618 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002630 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002644 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x000026c0 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002858 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x000029d8 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a78 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002aa4 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002be4 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002bfc 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c14 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002c24 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c34 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c44 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c54 0x0000006c Code RO 705 .text.startup.main Obj/main.o + 0x00002cc0 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002cec 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002d10 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002d70 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002dd0 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002e34 0x00000088 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002ebc 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002fac 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003014 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x0000307c 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003228 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x0000325c 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000032dc 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x0000334c 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003388 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000033c4 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00003458 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00003540 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003594 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x000035c4 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000035f4 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x0000363c 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003698 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000036f8 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x0000372c 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003778 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000037dc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000037de 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000037e6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000037ee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000037f6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000037fe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003806 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000380e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003816 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000381e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003826 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000382e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003836 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003840 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003864 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003888 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000038ac 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000038b4 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000039bc 0x0000006c Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003a28 0x0000009c Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003ac4 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003b4c 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003b58 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003b5c 0x00000078 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003bd4 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003d0c 0x0000003c Code RO 865 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003d48 0x000000ac Code RO 867 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003df4 0x0000003c Code RO 868 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003e30 0x000000d8 Code RO 869 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003f08 0x00000018 Code RO 870 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003f20 0x00000084 Code RO 871 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003fa4 0x000000b8 Code RO 872 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x0000405c 0x000000e4 Code RO 873 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00004140 0x00000038 Code RO 874 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004178 0x000000cc Code RO 875 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004244 0x0000001a Code RO 876 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004260 0x000000d8 Code RO 877 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004338 0x00000016 Code RO 896 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004350 0x00000074 Code RO 897 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000043c4 0x00000044 Code RO 898 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004408 0x00000070 Code RO 900 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004478 0x00000018 Code RO 901 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004490 0x00000050 Code RO 902 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000044e0 0x0000006c Code RO 903 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x0000454c 0x000000ac Code RO 904 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x000045f8 0x000000a8 Code RO 905 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000046a0 0x00000040 Code RO 906 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x000046e0 0x00000080 Code RO 907 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004760 0x0000005c Code RO 925 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000047bc 0x00000048 Code RO 926 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004804 0x000000c0 Code RO 927 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000048c4 0x000000b0 Code RO 928 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004974 0x00000010 Code RO 929 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004984 0x00000048 Code RO 947 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000049cc 0x00000030 Code RO 948 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x000049fc 0x0000008c Code RO 949 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00004a88 0x00000050 Code RO 953 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00004ad8 0x00000040 Code RO 954 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00004b18 0x0000004c Code RO 955 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x00004b64 0x00000088 Code RO 956 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004bec 0x00000080 Code RO 957 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004c6c 0x00000048 Code RO 958 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00004cb4 0x00000070 Code RO 959 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00004d24 0x00000044 Code RO 960 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00004d68 0x00000048 Code RO 961 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00004db0 0x00000024 Code RO 962 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00004dd4 0x00000024 Code RO 963 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00004df8 0x00000098 Code RO 964 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00004e90 0x00000064 Code RO 965 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00004ef4 0x00000060 Code RO 966 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00004f54 0x0000002c Code RO 986 .text.MODEL_Ctrl_Init Obj/SYSTEM_model_detection.o + 0x00004f80 0x000000b4 Code RO 987 .text.Control_Mode_Detection Obj/SYSTEM_model_detection.o + 0x00005034 0x0000013c Code RO 1004 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00005170 0x0000004c Code RO 1005 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x000051bc 0x0000004c Code RO 1006 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00005208 0x00000030 Code RO 1007 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00005238 0x00000030 Code RO 1008 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00005268 0x00000034 Code RO 1009 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x0000529c 0x0000012c Code RO 1010 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000053c8 0x000000f0 Code RO 1011 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x000054b8 0x000000e4 Code RO 1029 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000559c 0x000000e4 Code RO 1030 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005680 0x00000104 Code RO 1031 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005784 0x0000006c Code RO 1032 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x000057f0 0x00000100 Code RO 1033 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x000058f0 0x0000006c Code RO 1034 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x0000595c 0x000000a8 Code RO 1035 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005a04 0x0000004c Code RO 1051 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00005a50 0x00000020 Code RO 1052 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00005a70 0x00000318 Code RO 1053 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00005d88 0x00000034 Code RO 1070 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00005dbc 0x00000070 Code RO 1071 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00005e2c 0x0000006c Code RO 1072 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00005e98 0x00000016 Code RO 1089 .text.get_check_sum Obj/USRCTRL_rf_uart_protocol.o + 0x00005eb0 0x00000044 Code RO 1090 .text.uart_receive_input Obj/USRCTRL_rf_uart_protocol.o + 0x00005ef4 0x00000034 Code RO 1091 .text.Queue_Read_Byte Obj/USRCTRL_rf_uart_protocol.o + 0x00005f28 0x0000001c Code RO 1092 .text.with_data_rxbuff Obj/USRCTRL_rf_uart_protocol.o + 0x00005f44 0x00000034 Code RO 1093 .text.RF_Info_Init Obj/USRCTRL_rf_uart_protocol.o + 0x00005f78 0x00000040 Code RO 1094 .text.Add_Frame_Head Obj/USRCTRL_rf_uart_protocol.o + 0x00005fb8 0x00000094 Code RO 1095 .text.Product_Info_Update Obj/USRCTRL_rf_uart_protocol.o + 0x0000604c 0x00000038 Code RO 1096 .text.Recv_RFNetState_Ack Obj/USRCTRL_rf_uart_protocol.o + 0x00006084 0x000000b0 Code RO 1097 .text.Tem_Fun_Ctrl_Report Obj/USRCTRL_rf_uart_protocol.o + 0x00006134 0x00000128 Code RO 1099 .text.data_handle Obj/USRCTRL_rf_uart_protocol.o + 0x0000625c 0x000000c8 Code RO 1100 .text.zigbee_uart_service Obj/USRCTRL_rf_uart_protocol.o + 0x00006324 0x000000d0 Code RO 1101 .text.TemFun_Report_Task Obj/USRCTRL_rf_uart_protocol.o + 0x000063f4 0x0000006c Code RO 1119 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00006460 0x00000024 Code RO 1120 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00006484 0x00000024 Code RO 1121 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x000064a8 0x00000024 Code RO 1122 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x000064cc 0x00000024 Code RO 1123 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x000064f0 0x0000004c Code RO 1139 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x0000653c 0x0000003c Code RO 1140 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00006578 0x00000016 Code RO 1141 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00006590 0x000000ec Code RO 1142 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x0000667c 0x00000050 Code RO 1143 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x000066cc 0x00000054 Code RO 1144 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00006720 0x00000168 Code RO 1145 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x00006888 0x000000c8 Code RO 1146 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x00006950 0x00000010 Code RO 1172 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x00006960 0x00000028 Code RO 1174 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006988 0x000000bc Code RO 1175 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006a44 0x00000134 Code RO 1178 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x00006b78 0x00000058 Code RO 1179 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006bd0 0x00000088 Code RO 1183 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00006c58 0x00000028 Code RO 1184 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006c80 0x00000084 Code RO 1185 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006d04 0x00000020 Code RO 1186 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00006d24 0x00000180 Code RO 1187 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006ea4 0x0000011c Code RO 1188 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00006fc0 0x000001d0 Code RO 1189 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00007190 0x00000054 Code RO 1190 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000071e4 0x00000078 Code RO 1191 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000725c 0x00000034 Code RO 1192 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x00007290 0x00000038 Code RO 1193 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x000072c8 0x0000001c Code RO 1194 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x000072e4 0x00000028 Code RO 1195 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x0000730c 0x00000180 Code RO 1196 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x0000748c 0x00000284 Code RO 1213 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00007710 0x00000035 Data RO 878 .rodata Obj/SYSTEM_touch_key.o + 0x00007745 0x00000001 PAD + 0x00007746 0x00000334 Data RO 930 .rodata Obj/SYSTEM_adc.o + 0x00007a7a 0x0000000a Data RO 968 .rodata Obj/SYSTEM_ht1621.o + 0x00007a84 0x00000030 Data RO 1236 .rodata pow.o + 0x00007ab4 0x00000014 Data RO 1336 .rodata _thenan_df.o + 0x00007ac8 0x00000100 Data RO 1384 .rodata _clz.o + 0x00007bc8 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00007bd6 0x00000092 Data RO 879 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00007c68 0x0000016e Data RO 908 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00007dd6 0x00000017 Data RO 988 .rodata.str1.1 Obj/SYSTEM_model_detection.o + 0x00007ded 0x00000049 Data RO 1012 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00007e36 0x0000007e Data RO 1036 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00007eb4 0x00000045 Data RO 1054 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00007ef9 0x00000057 Data RO 1073 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00007f50 0x00000021 Data RO 1102 .rodata.str1.1 Obj/USRCTRL_rf_uart_protocol.o + 0x00007f71 0x0000002c Data RO 1147 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x00007f9d 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x000008f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1170 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x0000000c Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000d0 0x00000004 Zero RW 924 .bss Obj/SYSTEM_adc.o + 0x200000d4 0x00000004 Zero RW 1003 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200000d8 0x00000004 Zero RW 1088 .bss Obj/USRCTRL_rf_uart_protocol.o + 0x200000dc 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x20000162 0x00000002 PAD + 0x20000164 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000194 0x00000159 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x200002ed 0x00000003 PAD + 0x200002f0 0x00000060 Zero RW 892 COMMON Obj/SYSTEM_touch_key.o + 0x20000350 0x00000006 Zero RW 921 COMMON Obj/SYSTEM_eeprom.o + 0x20000356 0x00000037 Zero RW 943 COMMON Obj/SYSTEM_adc.o + 0x2000038d 0x00000003 PAD + 0x20000390 0x0000003c Zero RW 982 COMMON Obj/SYSTEM_ht1621.o + 0x200003cc 0x00000008 Zero RW 1000 COMMON Obj/SYSTEM_model_detection.o + 0x200003d4 0x0000001f Zero RW 1025 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200003f3 0x0000000c Zero RW 1085 COMMON Obj/USRCTRL_debug_unit.o + 0x200003ff 0x00000001 PAD + 0x20000400 0x0000022c Zero RW 1115 COMMON Obj/USRCTRL_rf_uart_protocol.o + 0x2000062c 0x000002c8 Zero RW 1209 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 288 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 21133 Obj/FWlib_apt32f102_syscon.o + 326 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 + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9268 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 108 14 0 12 12466 Obj/main.o + 504 0 0 0 16152 Obj/mcu_initial.o + 2434 0 0 60 15229 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 678 0 0 365 13827 Obj/SYSTEM_uart.o + 2010 199 5 96 16283 Obj/SYSTEM_touch_key.o + 1062 366 0 6 14159 Obj/SYSTEM_eeprom.o + 548 820 0 59 12830 Obj/SYSTEM_adc.o + 1488 10 0 60 15767 Obj/SYSTEM_ht1621.o + 224 23 0 8 11213 Obj/SYSTEM_model_detection.o + 1156 73 0 35 12360 Obj/USRCTRL_tempctrl_unit.o + 1356 126 0 0 11919 Obj/USRCTRL_key_logic.o + 900 69 0 0 11426 Obj/USRCTRL_display_logic.o + 272 87 0 12 11312 Obj/USRCTRL_debug_unit.o + 1370 33 0 560 14410 Obj/USRCTRL_rf_uart_protocol.o + 252 0 0 0 11489 Obj/USRCTRL_myrelay.o + 1118 44 0 0 13294 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 20632 1864 109 1407 388146 Object Totals + 4 4 6 9 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 + + 2876 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 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 + 30452 2192 164 2128 413160 Grand Totals + 30452 2192 164 2128 413160 Elf Image Totals + 30452 2192 164 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 32644 ( 31.88kB) +Total RW Size (RW Data + ZI Data) 2292 ( 2.24kB) +Total ROM Size (Code + RO Data + RW Data) 32808 ( 32.04kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241120.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241120.asm new file mode 100644 index 0000000..a54ad26 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241120.asm @@ -0,0 +1,20452 @@ + +.//Obj/T1_AC_TC_V01_20241120.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003826 .long 0x00003826 + 8: 00003816 .long 0x00003816 + c: 00000184 .long 0x00000184 + 10: 0000381e .long 0x0000381e + 14: 000037dc .long 0x000037dc + 18: 00000184 .long 0x00000184 + 1c: 0000380e .long 0x0000380e + 20: 00003806 .long 0x00003806 + 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: 000037fe .long 0x000037fe + 44: 000037f6 .long 0x000037f6 + 48: 000037ee .long 0x000037ee + 4c: 000037e6 .long 0x000037e6 + 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: 000037de .long 0x000037de + 80: 0000723c .long 0x0000723c + 84: 00002ebc .long 0x00002ebc + 88: 00002fac .long 0x00002fac + 8c: 00003014 .long 0x00003014 + 90: 0000307c .long 0x0000307c + 94: 00000184 .long 0x00000184 + 98: 00003228 .long 0x00003228 + 9c: 00003594 .long 0x00003594 + a0: 000035c4 .long 0x000035c4 + a4: 0000325c .long 0x0000325c + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000032dc .long 0x000032dc + b4: 0000334c .long 0x0000334c + b8: 00003388 .long 0x00003388 + bc: 000033c4 .long 0x000033c4 + c0: 00000184 .long 0x00000184 + c4: 00003836 .long 0x00003836 + c8: 00000184 .long 0x00000184 + cc: 00003458 .long 0x00003458 + d0: 00003540 .long 0x00003540 + d4: 000035f4 .long 0x000035f4 + d8: 0000363c .long 0x0000363c + dc: 00003698 .long 0x00003698 + e0: 0000382e .long 0x0000382e + e4: 00006c28 .long 0x00006c28 + e8: 000036f8 .long 0x000036f8 + ec: 00000184 .long 0x00000184 + f0: 0000372c .long 0x0000372c + f4: 00003778 .long 0x00003778 + 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, 0x2c54 // 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: 00002c54 .long 0x00002c54 + 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, 0x7adc // 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: 00007adc .long 0x00007adc + 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, 0x7adc // 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, 0x7adc // 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: 00007adc .long 0x00007adc + 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, 0x7b0c // 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: 00007b0c .long 0x00007b0c + +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, 0x7b0c // 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: 00007b0c .long 0x00007b0c + 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, 0x7b0c // 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: 00007b0c .long 0x00007b0c + +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, 0x7b20 // 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: 00007b20 .long 0x00007b20 + +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, 0x7ff8 // 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, 0x200000a4 // 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, 0x200008f4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a4 // 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: 00007ff8 .long 0x00007ff8 + 1a7c: 200000a4 .long 0x200000a4 + 1a80: 200008f4 .long 0x200008f4 + 1a84: 200000a4 .long 0x200000a4 + +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_PullHighLow_DIS: + +00001e7c : +{ + (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)); + 1e7c: 4121 lsli r1, r1, 1 + 1e7e: 3203 movi r2, 3 + 1e80: 9068 ld.w r3, (r0, 0x20) + 1e82: 7084 lsl r2, r1 + 1e84: 68c9 andn r3, r2 + 1e86: b068 st.w r3, (r0, 0x20) +} + 1e88: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001e8a : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1e8a: 4121 lsli r1, r1, 1 + 1e8c: 3301 movi r3, 1 + 1e8e: 9049 ld.w r2, (r0, 0x24) + 1e90: 70c4 lsl r3, r1 + 1e92: 6cc8 or r3, r2 + 1e94: b069 st.w r3, (r0, 0x24) +} + 1e96: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001e98 : +//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; + 1ea8: 9045 ld.w r2, (r0, 0x14) + 1eaa: 3301 movi r3, 1 + 1eac: 7085 lsr r2, r1 + 1eae: 688c and r2, r3 + { + if (dat==1) + 1eb0: 3a40 cmpnei r2, 0 + 1eb2: 70c4 lsl r3, r1 + 1eb4: 0c03 bf 0x1eba // 1eba + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00001ebe : +/*************************************************************/ +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); + 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.UART0_DeInit: + +00001f90 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 1f90: 1065 lrw r3, 0x20000040 // 1fa4 + 1f92: 3200 movi r2, 0 + 1f94: 9360 ld.w r3, (r3, 0x0) + 1f96: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 1f98: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 1f9a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 1f9c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 1f9e: b344 st.w r2, (r3, 0x10) +} + 1fa0: 783c jmp r15 + 1fa2: 0000 bkpt + 1fa4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00001fa8 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 1fa8: 1065 lrw r3, 0x2000003c // 1fbc + 1faa: 3200 movi r2, 0 + 1fac: 9360 ld.w r3, (r3, 0x0) + 1fae: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 1fb0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 1fb2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 1fb4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 1fb6: b344 st.w r2, (r3, 0x10) +} + 1fb8: 783c jmp r15 + 1fba: 0000 bkpt + 1fbc: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00001fc0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 1fc0: 1065 lrw r3, 0x20000038 // 1fd4 + 1fc2: 3200 movi r2, 0 + 1fc4: 9360 ld.w r3, (r3, 0x0) + 1fc6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 1fc8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 1fca: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 1fcc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 1fce: b344 st.w r2, (r3, 0x10) +} + 1fd0: 783c jmp r15 + 1fd2: 0000 bkpt + 1fd4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00001fd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 1fd8: 1065 lrw r3, 0x20000040 // 1fec + 1fda: 320f movi r2, 15 + 1fdc: 9360 ld.w r3, (r3, 0x0) + 1fde: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1fe0: 3380 movi r3, 128 + 1fe2: 4366 lsli r3, r3, 6 + 1fe4: 1043 lrw r2, 0xe000e100 // 1ff0 + 1fe6: b260 st.w r3, (r2, 0x0) +} + 1fe8: 783c jmp r15 + 1fea: 0000 bkpt + 1fec: 20000040 .long 0x20000040 + 1ff0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00001ff4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 1ff4: 1065 lrw r3, 0x20000038 // 2008 + 1ff6: 320f movi r2, 15 + 1ff8: 9360 ld.w r3, (r3, 0x0) + 1ffa: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1ffc: 3380 movi r3, 128 + 1ffe: 4368 lsli r3, r3, 8 + 2000: 1043 lrw r2, 0xe000e100 // 200c + 2002: b260 st.w r3, (r2, 0x0) +} + 2004: 783c jmp r15 + 2006: 0000 bkpt + 2008: 20000038 .long 0x20000038 + 200c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002010 : +//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) + 2010: 3840 cmpnei r0, 0 + 2012: 0821 bt 0x2054 // 2054 + { + if(UART_IO_G==0) + 2014: 3940 cmpnei r1, 0 + 2016: 080a bt 0x202a // 202a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2018: 1177 lrw r3, 0x2000004c // 20f4 + 201a: 31ff movi r1, 255 + 201c: 9340 ld.w r2, (r3, 0x0) + 201e: 9260 ld.w r3, (r2, 0x0) + 2020: 68c5 andn r3, r1 + 2022: 3ba2 bseti r3, 2 + 2024: 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 + 2026: b260 st.w r3, (r2, 0x0) + 2028: 0415 br 0x2052 // 2052 + else if(UART_IO_G==1) + 202a: 3941 cmpnei r1, 1 + 202c: 0813 bt 0x2052 // 2052 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 202e: 1172 lrw r3, 0x2000004c // 20f4 + 2030: 31f0 movi r1, 240 + 2032: 9340 ld.w r2, (r3, 0x0) + 2034: 9260 ld.w r3, (r2, 0x0) + 2036: 4130 lsli r1, r1, 16 + 2038: 68c5 andn r3, r1 + 203a: 31e0 movi r1, 224 + 203c: 412f lsli r1, r1, 15 + 203e: 6cc4 or r3, r1 + 2040: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2042: 31f0 movi r1, 240 + 2044: 9261 ld.w r3, (r2, 0x4) + 2046: 412c lsli r1, r1, 12 + 2048: 68c5 andn r3, r1 + 204a: 31e0 movi r1, 224 + 204c: 412b lsli r1, r1, 11 + 204e: 6cc4 or r3, r1 + 2050: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2052: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2054: 3841 cmpnei r0, 1 + 2056: 082d bt 0x20b0 // 20b0 + if(UART_IO_G==0) + 2058: 3940 cmpnei r1, 0 + 205a: 0814 bt 0x2082 // 2082 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 205c: 1167 lrw r3, 0x20000048 // 20f8 + 205e: 310f movi r1, 15 + 2060: 9340 ld.w r2, (r3, 0x0) + 2062: 9260 ld.w r3, (r2, 0x0) + 2064: 68c5 andn r3, r1 + 2066: 3107 movi r1, 7 + 2068: 6cc4 or r3, r1 + 206a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 206c: 32f0 movi r2, 240 + 206e: 1162 lrw r3, 0x2000004c // 20f4 + 2070: 4250 lsli r2, r2, 16 + 2072: 9320 ld.w r1, (r3, 0x0) + 2074: 9161 ld.w r3, (r1, 0x4) + 2076: 68c9 andn r3, r2 + 2078: 32e0 movi r2, 224 + 207a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 207c: 6cc8 or r3, r2 + 207e: b161 st.w r3, (r1, 0x4) + 2080: 07e9 br 0x2052 // 2052 + else if(UART_IO_G==1) + 2082: 3941 cmpnei r1, 1 + 2084: 080c bt 0x209c // 209c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2086: 107c lrw r3, 0x2000004c // 20f4 + 2088: 32ff movi r2, 255 + 208a: 9320 ld.w r1, (r3, 0x0) + 208c: 424c lsli r2, r2, 12 + 208e: 9160 ld.w r3, (r1, 0x0) + 2090: 68c9 andn r3, r2 + 2092: 32ee movi r2, 238 + 2094: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2096: 6cc8 or r3, r2 + 2098: b160 st.w r3, (r1, 0x0) +} + 209a: 07dc br 0x2052 // 2052 + else if(UART_IO_G==2) + 209c: 3942 cmpnei r1, 2 + 209e: 0bda bt 0x2052 // 2052 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 20a0: 1075 lrw r3, 0x2000004c // 20f4 + 20a2: 32ee movi r2, 238 + 20a4: 9320 ld.w r1, (r3, 0x0) + 20a6: 9161 ld.w r3, (r1, 0x4) + 20a8: 4368 lsli r3, r3, 8 + 20aa: 4b68 lsri r3, r3, 8 + 20ac: 4257 lsli r2, r2, 23 + 20ae: 07e7 br 0x207c // 207c + if (IO_UART_NUM==IO_UART2) + 20b0: 3842 cmpnei r0, 2 + 20b2: 0bd0 bt 0x2052 // 2052 + if(UART_IO_G==0) + 20b4: 3940 cmpnei r1, 0 + 20b6: 0809 bt 0x20c8 // 20c8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 20b8: 106f lrw r3, 0x2000004c // 20f4 + 20ba: 31ff movi r1, 255 + 20bc: 9340 ld.w r2, (r3, 0x0) + 20be: 9260 ld.w r3, (r2, 0x0) + 20c0: 68c5 andn r3, r1 + 20c2: 3177 movi r1, 119 + 20c4: 6cc4 or r3, r1 + 20c6: 07b0 br 0x2026 // 2026 + else if(UART_IO_G==1) + 20c8: 3941 cmpnei r1, 1 + 20ca: 0809 bt 0x20dc // 20dc + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 20cc: 106a lrw r3, 0x2000004c // 20f4 + 20ce: 32ee movi r2, 238 + 20d0: 9320 ld.w r1, (r3, 0x0) + 20d2: 9160 ld.w r3, (r1, 0x0) + 20d4: 4368 lsli r3, r3, 8 + 20d6: 4b68 lsri r3, r3, 8 + 20d8: 4257 lsli r2, r2, 23 + 20da: 07de br 0x2096 // 2096 + else if(UART_IO_G==2) + 20dc: 3942 cmpnei r1, 2 + 20de: 0bba bt 0x2052 // 2052 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 20e0: 1066 lrw r3, 0x20000048 // 20f8 + 20e2: 32ff movi r2, 255 + 20e4: 9320 ld.w r1, (r3, 0x0) + 20e6: 4250 lsli r2, r2, 16 + 20e8: 9160 ld.w r3, (r1, 0x0) + 20ea: 68c9 andn r3, r2 + 20ec: 32cc movi r2, 204 + 20ee: 424f lsli r2, r2, 15 + 20f0: 07d3 br 0x2096 // 2096 + 20f2: 0000 bkpt + 20f4: 2000004c .long 0x2000004c + 20f8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000020fc : +//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); + 20fc: 1063 lrw r3, 0x80003 // 2108 + 20fe: 6c8c or r2, r3 + 2100: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2102: b024 st.w r1, (r0, 0x10) +} + 2104: 783c jmp r15 + 2106: 0000 bkpt + 2108: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +0000210c : +//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); + 210c: 1063 lrw r3, 0x8000f // 2118 + 210e: 6c8c or r2, r3 + 2110: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2112: b024 st.w r1, (r0, 0x10) +} + 2114: 783c jmp r15 + 2116: 0000 bkpt + 2118: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +0000211c : +//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) +{ + 211c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 211e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2120: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2122: 5b85 subu r4, r3, r1 + 2124: 6490 cmphs r4, r2 + 2126: 0c02 bf 0x212a // 212a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2128: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 212a: 8380 ld.b r4, (r3, 0x0) + 212c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 212e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2130: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2132: 3c40 cmpnei r4, 0 + 2134: 0bfd bt 0x212e // 212e + 2136: 2300 addi r3, 1 + 2138: 07f5 br 0x2122 // 2122 + +Disassembly of section .text.EPT_Software_Prg: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 213c: 1067 lrw r3, 0x20000020 // 2158 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 213e: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 2140: 9340 ld.w r2, (r3, 0x0) + 2142: 9260 ld.w r3, (r2, 0x0) + 2144: 3ba0 bseti r3, 0 + 2146: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 2148: 9261 ld.w r3, (r2, 0x4) + 214a: 4128 lsli r1, r1, 8 + 214c: 68c5 andn r3, r1 + 214e: 3bac bseti r3, 12 + 2150: 3bae bseti r3, 14 + 2152: b261 st.w r3, (r2, 0x4) +} + 2154: 783c jmp r15 + 2156: 0000 bkpt + 2158: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +0000215c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 215c: 1068 lrw r3, 0x20000020 // 217c + 215e: 3280 movi r2, 128 + 2160: 9360 ld.w r3, (r3, 0x0) + 2162: 608c addu r2, r3 + 2164: 1027 lrw r1, 0xa55ac73a // 2180 + 2166: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2168: 9341 ld.w r2, (r3, 0x4) + 216a: 3aa0 bseti r2, 0 + 216c: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 216e: 3101 movi r1, 1 + 2170: 9341 ld.w r2, (r3, 0x4) + 2172: 6884 and r2, r1 + 2174: 3a40 cmpnei r2, 0 + 2176: 0ffd bf 0x2170 // 2170 +} + 2178: 783c jmp r15 + 217a: 0000 bkpt + 217c: 20000020 .long 0x20000020 + 2180: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +00002184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2184: 1068 lrw r3, 0x20000020 // 21a4 + 2186: 3280 movi r2, 128 + 2188: 9360 ld.w r3, (r3, 0x0) + 218a: 608c addu r2, r3 + 218c: 1027 lrw r1, 0xa55ac73a // 21a8 + 218e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2190: 9341 ld.w r2, (r3, 0x4) + 2192: 31fe movi r1, 254 + 2194: 6884 and r2, r1 + 2196: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2198: 3101 movi r1, 1 + 219a: 9341 ld.w r2, (r3, 0x4) + 219c: 6884 and r2, r1 + 219e: 3a40 cmpnei r2, 0 + 21a0: 0bfd bt 0x219a // 219a +} + 21a2: 783c jmp r15 + 21a4: 20000020 .long 0x20000020 + 21a8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +000021ac : +//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) + 21ac: 3840 cmpnei r0, 0 + 21ae: 0822 bt 0x21f2 // 21f2 + { + if(IO_Num_X==IO_NUM_PA07) + 21b0: 3950 cmpnei r1, 16 + 21b2: 080a bt 0x21c6 // 21c6 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 21b4: 0375 lrw r3, 0x2000004c // 23dc + 21b6: 9340 ld.w r2, (r3, 0x0) + 21b8: 9260 ld.w r3, (r2, 0x0) + 21ba: 4364 lsli r3, r3, 4 + 21bc: 4b64 lsri r3, r3, 4 + 21be: 3bbd bseti r3, 29 + 21c0: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 21c2: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 21c4: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 21c6: 3951 cmpnei r1, 17 + 21c8: 080b bt 0x21de // 21de + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 21ca: 037a lrw r3, 0x2000004c // 23dc + 21cc: 32f0 movi r2, 240 + 21ce: 9320 ld.w r1, (r3, 0x0) + 21d0: 9161 ld.w r3, (r1, 0x4) + 21d2: 4244 lsli r2, r2, 4 + 21d4: 68c9 andn r3, r2 + 21d6: 3ba8 bseti r3, 8 + 21d8: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 21da: b161 st.w r3, (r1, 0x4) + 21dc: 07f4 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA15) + 21de: 3952 cmpnei r1, 18 + 21e0: 0bf2 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 21e2: 137f lrw r3, 0x2000004c // 23dc + 21e4: 9340 ld.w r2, (r3, 0x0) + 21e6: 9261 ld.w r3, (r2, 0x4) + 21e8: 4364 lsli r3, r3, 4 + 21ea: 4b64 lsri r3, r3, 4 + 21ec: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 21ee: b261 st.w r3, (r2, 0x4) + 21f0: 07ea br 0x21c4 // 21c4 + else if(EPT_IO_X==EPT_IO_CHAY) + 21f2: 3841 cmpnei r0, 1 + 21f4: 0823 bt 0x223a // 223a + if(IO_Num_X==IO_NUM_PB03) + 21f6: 3953 cmpnei r1, 19 + 21f8: 080a bt 0x220c // 220c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 21fa: 137a lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 21fc: 9320 ld.w r1, (r3, 0x0) + 21fe: 32f0 movi r2, 240 + 2200: 9160 ld.w r3, (r1, 0x0) + 2202: 4248 lsli r2, r2, 8 + 2204: 68c9 andn r3, r2 + 2206: 3bac bseti r3, 12 + 2208: 3bae bseti r3, 14 + 220a: 040b br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB05) + 220c: 3954 cmpnei r1, 20 + 220e: 080b bt 0x2224 // 2224 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 2210: 1374 lrw r3, 0x20000048 // 23e0 + 2212: 32f0 movi r2, 240 + 2214: 9320 ld.w r1, (r3, 0x0) + 2216: 9160 ld.w r3, (r1, 0x0) + 2218: 4250 lsli r2, r2, 16 + 221a: 68c9 andn r3, r2 + 221c: 3bb4 bseti r3, 20 + 221e: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2220: b160 st.w r3, (r1, 0x0) +} + 2222: 07d1 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA12) + 2224: 3955 cmpnei r1, 21 + 2226: 0bcf bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 2228: 136d lrw r3, 0x2000004c // 23dc + 222a: 32f0 movi r2, 240 + 222c: 9320 ld.w r1, (r3, 0x0) + 222e: 9161 ld.w r3, (r1, 0x4) + 2230: 424c lsli r2, r2, 12 + 2232: 68c9 andn r3, r2 + 2234: 3bb0 bseti r3, 16 + 2236: 3bb2 bseti r3, 18 + 2238: 07d1 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBX) + 223a: 3842 cmpnei r0, 2 + 223c: 0821 bt 0x227e // 227e + if(IO_Num_X==IO_NUM_PB02) + 223e: 3956 cmpnei r1, 22 + 2240: 080a bt 0x2254 // 2254 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 2242: 1368 lrw r3, 0x20000048 // 23e0 + 2244: 32f0 movi r2, 240 + 2246: 9320 ld.w r1, (r3, 0x0) + 2248: 9160 ld.w r3, (r1, 0x0) + 224a: 4244 lsli r2, r2, 4 + 224c: 68c9 andn r3, r2 + 224e: 3ba9 bseti r3, 9 + 2250: 3baa bseti r3, 10 + 2252: 07e7 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA11) + 2254: 3957 cmpnei r1, 23 + 2256: 080a bt 0x226a // 226a + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2258: 1361 lrw r3, 0x2000004c // 23dc + 225a: 32f0 movi r2, 240 + 225c: 9320 ld.w r1, (r3, 0x0) + 225e: 9161 ld.w r3, (r1, 0x4) + 2260: 4248 lsli r2, r2, 8 + 2262: 68c9 andn r3, r2 + 2264: 3bac bseti r3, 12 + 2266: 3bae bseti r3, 14 + 2268: 07b9 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PA14) + 226a: 3958 cmpnei r1, 24 + 226c: 0bac bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 226e: 127c lrw r3, 0x2000004c // 23dc + 2270: 32f0 movi r2, 240 + 2272: 9320 ld.w r1, (r3, 0x0) + 2274: 9161 ld.w r3, (r1, 0x4) + 2276: 4254 lsli r2, r2, 20 + 2278: 68c9 andn r3, r2 + 227a: 3bba bseti r3, 26 + 227c: 07af br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBY) + 227e: 3843 cmpnei r0, 3 + 2280: 0820 bt 0x22c0 // 22c0 + if(IO_Num_X==IO_NUM_PB04) + 2282: 3959 cmpnei r1, 25 + 2284: 080a bt 0x2298 // 2298 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 2286: 1277 lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2288: 9320 ld.w r1, (r3, 0x0) + 228a: 32f0 movi r2, 240 + 228c: 9160 ld.w r3, (r1, 0x0) + 228e: 424c lsli r2, r2, 12 + 2290: 68c9 andn r3, r2 + 2292: 3bb0 bseti r3, 16 + 2294: 3bb2 bseti r3, 18 + 2296: 07c5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA05) + 2298: 395a cmpnei r1, 26 + 229a: 0809 bt 0x22ac // 22ac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 229c: 1270 lrw r3, 0x2000004c // 23dc + 229e: 32f0 movi r2, 240 + 22a0: 9320 ld.w r1, (r3, 0x0) + 22a2: 9160 ld.w r3, (r1, 0x0) + 22a4: 4250 lsli r2, r2, 16 + 22a6: 68c9 andn r3, r2 + 22a8: 3bb7 bseti r3, 23 + 22aa: 07bb br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 22ac: 395b cmpnei r1, 27 + 22ae: 0b8b bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 22b0: 126b lrw r3, 0x2000004c // 23dc + 22b2: 310f movi r1, 15 + 22b4: 9340 ld.w r2, (r3, 0x0) + 22b6: 9261 ld.w r3, (r2, 0x4) + 22b8: 68c5 andn r3, r1 + 22ba: 3ba0 bseti r3, 0 + 22bc: 3ba2 bseti r3, 2 + 22be: 0798 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_CHCX) + 22c0: 3844 cmpnei r0, 4 + 22c2: 0823 bt 0x2308 // 2308 + if(IO_Num_X==IO_NUM_PB05) + 22c4: 3954 cmpnei r1, 20 + 22c6: 0809 bt 0x22d8 // 22d8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 22c8: 1266 lrw r3, 0x20000048 // 23e0 + 22ca: 32f0 movi r2, 240 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 9160 ld.w r3, (r1, 0x0) + 22d0: 4250 lsli r2, r2, 16 + 22d2: 68c9 andn r3, r2 + 22d4: 3bb6 bseti r3, 22 + 22d6: 07a5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA03) + 22d8: 395c cmpnei r1, 28 + 22da: 0803 bt 0x22e0 // 22e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 22dc: 1260 lrw r3, 0x2000004c // 23dc + 22de: 078f br 0x21fc // 21fc + else if(IO_Num_X==IO_NUM_PB03) + 22e0: 3953 cmpnei r1, 19 + 22e2: 0809 bt 0x22f4 // 22f4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 22e4: 117f lrw r3, 0x20000048 // 23e0 + 22e6: 32f0 movi r2, 240 + 22e8: 9320 ld.w r1, (r3, 0x0) + 22ea: 9160 ld.w r3, (r1, 0x0) + 22ec: 4248 lsli r2, r2, 8 + 22ee: 68c9 andn r3, r2 + 22f0: 3bae bseti r3, 14 + 22f2: 0797 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB00) + 22f4: 395d cmpnei r1, 29 + 22f6: 0b67 bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22f8: 117a lrw r3, 0x20000048 // 23e0 + 22fa: 310f movi r1, 15 + 22fc: 9340 ld.w r2, (r3, 0x0) + 22fe: 9260 ld.w r3, (r2, 0x0) + 2300: 68c5 andn r3, r1 + 2302: 3ba0 bseti r3, 0 + 2304: 3ba2 bseti r3, 2 + 2306: 075e br 0x21c2 // 21c2 + else if(EPT_IO_X==EPT_IO_CHCY) + 2308: 3845 cmpnei r0, 5 + 230a: 0825 bt 0x2354 // 2354 + if(IO_Num_X==IO_NUM_PB04) + 230c: 3959 cmpnei r1, 25 + 230e: 0809 bt 0x2320 // 2320 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 2310: 1174 lrw r3, 0x20000048 // 23e0 + 2312: 32f0 movi r2, 240 + 2314: 9320 ld.w r1, (r3, 0x0) + 2316: 9160 ld.w r3, (r1, 0x0) + 2318: 424c lsli r2, r2, 12 + 231a: 68c9 andn r3, r2 + 231c: 3bb2 bseti r3, 18 + 231e: 0781 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA04) + 2320: 395e cmpnei r1, 30 + 2322: 0803 bt 0x2328 // 2328 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2324: 116e lrw r3, 0x2000004c // 23dc + 2326: 07b1 br 0x2288 // 2288 + else if(IO_Num_X==IO_NUM_PA09) + 2328: 395f cmpnei r1, 31 + 232a: 0809 bt 0x233c // 233c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 232c: 116c lrw r3, 0x2000004c // 23dc + 232e: 31f0 movi r1, 240 + 2330: 9340 ld.w r2, (r3, 0x0) + 2332: 9261 ld.w r3, (r2, 0x4) + 2334: 68c5 andn r3, r1 + 2336: 3170 movi r1, 112 + 2338: 6cc4 or r3, r1 + 233a: 075a br 0x21ee // 21ee + else if(IO_Num_X==IO_NUM_PA013) + 233c: 3320 movi r3, 32 + 233e: 64c6 cmpne r1, r3 + 2340: 0b42 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 2342: 1167 lrw r3, 0x2000004c // 23dc + 2344: 32f0 movi r2, 240 + 2346: 9320 ld.w r1, (r3, 0x0) + 2348: 9161 ld.w r3, (r1, 0x4) + 234a: 4250 lsli r2, r2, 16 + 234c: 68c9 andn r3, r2 + 234e: 3bb4 bseti r3, 20 + 2350: 3bb6 bseti r3, 22 + 2352: 0744 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHD) + 2354: 3846 cmpnei r0, 6 + 2356: 0815 bt 0x2380 // 2380 + if(IO_Num_X==IO_NUM_PB03) + 2358: 3953 cmpnei r1, 19 + 235a: 080a bt 0x236e // 236e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 235c: 1161 lrw r3, 0x20000048 // 23e0 + 235e: 32f0 movi r2, 240 + 2360: 9320 ld.w r1, (r3, 0x0) + 2362: 9160 ld.w r3, (r1, 0x0) + 2364: 4248 lsli r2, r2, 8 + 2366: 68c9 andn r3, r2 + 2368: 3bad bseti r3, 13 + 236a: 3bae bseti r3, 14 + 236c: 075a br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 236e: 395b cmpnei r1, 27 + 2370: 0b2a bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2372: 107b lrw r3, 0x2000004c // 23dc + 2374: 310f movi r1, 15 + 2376: 9340 ld.w r2, (r3, 0x0) + 2378: 9261 ld.w r3, (r2, 0x4) + 237a: 68c5 andn r3, r1 + 237c: 3ba2 bseti r3, 2 + 237e: 0738 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_EPI) + 2380: 3847 cmpnei r0, 7 + 2382: 0b21 bt 0x21c4 // 21c4 + if(IO_Num_X==IO_NUM_PA07) + 2384: 3950 cmpnei r1, 16 + 2386: 0809 bt 0x2398 // 2398 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2388: 1075 lrw r3, 0x2000004c // 23dc + 238a: 9340 ld.w r2, (r3, 0x0) + 238c: 9260 ld.w r3, (r2, 0x0) + 238e: 4364 lsli r3, r3, 4 + 2390: 4b64 lsri r3, r3, 4 + 2392: 3bbc bseti r3, 28 + 2394: 3bbe bseti r3, 30 + 2396: 0716 br 0x21c2 // 21c2 + else if(IO_Num_X==IO_NUM_PA013) + 2398: 3320 movi r3, 32 + 239a: 64c6 cmpne r1, r3 + 239c: 0809 bt 0x23ae // 23ae + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 239e: 1070 lrw r3, 0x2000004c // 23dc + 23a0: 32f0 movi r2, 240 + 23a2: 9320 ld.w r1, (r3, 0x0) + 23a4: 9161 ld.w r3, (r1, 0x4) + 23a6: 4250 lsli r2, r2, 16 + 23a8: 68c9 andn r3, r2 + 23aa: 3bb6 bseti r3, 22 + 23ac: 0717 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PB03) + 23ae: 3953 cmpnei r1, 19 + 23b0: 080b bt 0x23c6 // 23c6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 23b2: 106c lrw r3, 0x20000048 // 23e0 + 23b4: 32f0 movi r2, 240 + 23b6: 9320 ld.w r1, (r3, 0x0) + 23b8: 4248 lsli r2, r2, 8 + 23ba: 9160 ld.w r3, (r1, 0x0) + 23bc: 68c9 andn r3, r2 + 23be: 32e0 movi r2, 224 + 23c0: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23c2: 6cc8 or r3, r2 + 23c4: 072e br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB02) + 23c6: 3956 cmpnei r1, 22 + 23c8: 0afe bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23ca: 1066 lrw r3, 0x20000048 // 23e0 + 23cc: 32f0 movi r2, 240 + 23ce: 9320 ld.w r1, (r3, 0x0) + 23d0: 4244 lsli r2, r2, 4 + 23d2: 9160 ld.w r3, (r1, 0x0) + 23d4: 68c9 andn r3, r2 + 23d6: 32e0 movi r2, 224 + 23d8: 4243 lsli r2, r2, 3 + 23da: 07f4 br 0x23c2 // 23c2 + 23dc: 2000004c .long 0x2000004c + 23e0: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +000023e4 : +//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) +{ + 23e4: 14c3 push r4-r6 + 23e6: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23e8: 104b lrw r2, 0x20000020 // 2414 + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23ea: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23ec: 92a0 ld.w r5, (r2, 0x0) + 23ee: 9580 ld.w r4, (r5, 0x0) + 23f0: 32ff movi r2, 255 + 23f2: 6909 andn r4, r2 + 23f4: 3ca0 bseti r4, 0 + 23f6: 3ca1 bseti r4, 1 + 23f8: 6d00 or r4, r0 + 23fa: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23fc: 0802 bt 0x2400 // 2400 + { + EPT0->PSCR=EPT_PSCR; + 23fe: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 2400: 9543 ld.w r2, (r5, 0xc) + 2402: 1066 lrw r3, 0x7003f // 2418 + 2404: 688d andn r2, r3 + 2406: 6c98 or r2, r6 + 2408: 3aa2 bseti r2, 2 + 240a: 3ab2 bseti r2, 18 + 240c: 6c48 or r1, r2 + 240e: b523 st.w r1, (r5, 0xc) +} + 2410: 1483 pop r4-r6 + 2412: 0000 bkpt + 2414: 20000020 .long 0x20000020 + 2418: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +0000241c : + 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 + ) +{ + 241c: 14c4 push r4-r7 + 241e: 1425 subi r14, r14, 20 + 2420: 9889 ld.w r4, (r14, 0x24) + 2422: b880 st.w r4, (r14, 0x0) + 2424: 988a ld.w r4, (r14, 0x28) + 2426: b881 st.w r4, (r14, 0x4) + 2428: 988b ld.w r4, (r14, 0x2c) + 242a: b882 st.w r4, (r14, 0x8) + 242c: 988c ld.w r4, (r14, 0x30) + 242e: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 2430: 3840 cmpnei r0, 0 +{ + 2432: 988d ld.w r4, (r14, 0x34) + 2434: b884 st.w r4, (r14, 0x10) + 2436: 98ce ld.w r6, (r14, 0x38) + 2438: 98ef ld.w r7, (r14, 0x3c) + 243a: 98b0 ld.w r5, (r14, 0x40) + 243c: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 243e: 0816 bt 0x246a // 246a + { + 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; + 2440: 6d14 or r4, r5 + 2442: 6d1c or r4, r7 + 2444: 98a4 ld.w r5, (r14, 0x10) + 2446: 6d18 or r4, r6 + 2448: 6d14 or r4, r5 + 244a: 98a3 ld.w r5, (r14, 0xc) + 244c: 6d14 or r4, r5 + 244e: 98a2 ld.w r5, (r14, 0x8) + 2450: 6d14 or r4, r5 + 2452: 98a1 ld.w r5, (r14, 0x4) + 2454: 6d14 or r4, r5 + 2456: 98a0 ld.w r5, (r14, 0x0) + 2458: 6d14 or r4, r5 + 245a: 6cd0 or r3, r4 + 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| + 245c: 1105 lrw r0, 0x20000020 // 24f0 + 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; + 245e: 6c8c or r2, r3 + 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| + 2460: 9000 ld.w r0, (r0, 0x0) + 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; + 2462: 6c48 or r1, r2 + 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| + 2464: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 2466: 1405 addi r14, r14, 20 + 2468: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 246a: 3841 cmpnei r0, 1 + 246c: 0815 bt 0x2496 // 2496 + 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; + 246e: 6d14 or r4, r5 + 2470: 6d1c or r4, r7 + 2472: 98a4 ld.w r5, (r14, 0x10) + 2474: 6d18 or r4, r6 + 2476: 6d14 or r4, r5 + 2478: 98a3 ld.w r5, (r14, 0xc) + 247a: 6d14 or r4, r5 + 247c: 98a2 ld.w r5, (r14, 0x8) + 247e: 6d14 or r4, r5 + 2480: 98a1 ld.w r5, (r14, 0x4) + 2482: 6d14 or r4, r5 + 2484: 98a0 ld.w r5, (r14, 0x0) + 2486: 6d14 or r4, r5 + 2488: 6cd0 or r3, r4 + 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| + 248a: 101a lrw r0, 0x20000020 // 24f0 + 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; + 248c: 6c8c or r2, r3 + 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| + 248e: 9000 ld.w r0, (r0, 0x0) + 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; + 2490: 6c48 or r1, r2 + 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| + 2492: b033 st.w r1, (r0, 0x4c) + 2494: 07e9 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMC) + 2496: 3842 cmpnei r0, 2 + 2498: 0815 bt 0x24c2 // 24c2 + 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; + 249a: 6d14 or r4, r5 + 249c: 6d1c or r4, r7 + 249e: 98a4 ld.w r5, (r14, 0x10) + 24a0: 6d18 or r4, r6 + 24a2: 6d14 or r4, r5 + 24a4: 98a3 ld.w r5, (r14, 0xc) + 24a6: 6d14 or r4, r5 + 24a8: 98a2 ld.w r5, (r14, 0x8) + 24aa: 6d14 or r4, r5 + 24ac: 98a1 ld.w r5, (r14, 0x4) + 24ae: 6d14 or r4, r5 + 24b0: 98a0 ld.w r5, (r14, 0x0) + 24b2: 6d14 or r4, r5 + 24b4: 6cd0 or r3, r4 + 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| + 24b6: 100f lrw r0, 0x20000020 // 24f0 + 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; + 24b8: 6c8c or r2, r3 + 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| + 24ba: 9000 ld.w r0, (r0, 0x0) + 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; + 24bc: 6c48 or r1, r2 + 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| + 24be: b034 st.w r1, (r0, 0x50) + 24c0: 07d3 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMD) + 24c2: 3843 cmpnei r0, 3 + 24c4: 0bd1 bt 0x2466 // 2466 + 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; + 24c6: 6d14 or r4, r5 + 24c8: 6d1c or r4, r7 + 24ca: 98a4 ld.w r5, (r14, 0x10) + 24cc: 6d18 or r4, r6 + 24ce: 6d14 or r4, r5 + 24d0: 98a3 ld.w r5, (r14, 0xc) + 24d2: 6d14 or r4, r5 + 24d4: 98a2 ld.w r5, (r14, 0x8) + 24d6: 6d14 or r4, r5 + 24d8: 98a1 ld.w r5, (r14, 0x4) + 24da: 6d14 or r4, r5 + 24dc: 98a0 ld.w r5, (r14, 0x0) + 24de: 6d14 or r4, r5 + 24e0: 6cd0 or r3, r4 + 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| + 24e2: 1004 lrw r0, 0x20000020 // 24f0 + 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; + 24e4: 6c8c or r2, r3 + 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| + 24e6: 9000 ld.w r0, (r0, 0x0) + 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; + 24e8: 6c48 or r1, r2 + 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| + 24ea: b035 st.w r1, (r0, 0x54) +} + 24ec: 07bd br 0x2466 // 2466 + 24ee: 0000 bkpt + 24f0: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +000024f4 : +//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) +{ + 24f4: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 24f6: 1086 lrw r4, 0x20000020 // 250c +{ + 24f8: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 24fc: 9480 ld.w r4, (r4, 0x0) + 24fe: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 2500: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 2502: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 2504: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 2506: b4ae st.w r5, (r4, 0x38) +} + 2508: 1482 pop r4-r5 + 250a: 0000 bkpt + 250c: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002510 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2510: 1078 lrw r3, 0x20000050 // 2570 + 2512: 3200 movi r2, 0 + 2514: 9360 ld.w r3, (r3, 0x0) + 2516: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2518: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 251a: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 251c: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 251e: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2520: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 2522: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 2524: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 2526: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2528: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 252a: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 252c: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 252e: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2530: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 2532: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 2534: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 2536: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2538: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 253a: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 253c: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 253e: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2540: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 2542: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2544: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 2546: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2548: 23ff addi r3, 256 + 254a: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 254c: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 254e: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2550: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 2552: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2554: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 2556: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2558: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 255a: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 255c: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 255e: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2560: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 2562: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2564: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 2566: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2568: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 256a: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 256c: b351 st.w r2, (r3, 0x44) +} + 256e: 783c jmp r15 + 2570: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002574 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2574: 1063 lrw r3, 0x20000050 // 2580 + 2576: 9340 ld.w r2, (r3, 0x0) + 2578: 9264 ld.w r3, (r2, 0x10) + 257a: 6c0c or r0, r3 + 257c: b204 st.w r0, (r2, 0x10) +} + 257e: 783c jmp r15 + 2580: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002584 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2584: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 2586: 3002 movi r0, 2 + 2588: e3fffff6 bsr 0x2574 // 2574 + while(!(ADC0->SR &ADC12_ADCENS)); + 258c: 1065 lrw r3, 0x20000050 // 25a0 + 258e: 3280 movi r2, 128 + 2590: 9320 ld.w r1, (r3, 0x0) + 2592: 4241 lsli r2, r2, 1 + 2594: 9168 ld.w r3, (r1, 0x20) + 2596: 68c8 and r3, r2 + 2598: 3b40 cmpnei r3, 0 + 259a: 0ffd bf 0x2594 // 2594 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 259c: 1490 pop r15 + 259e: 0000 bkpt + 25a0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +000025a4 : + if (NewState != DISABLE) + 25a4: 3940 cmpnei r1, 0 + 25a6: 106a lrw r3, 0x20000050 // 25cc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25a8: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 25aa: 0c09 bf 0x25bc // 25bc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25ac: 9260 ld.w r3, (r2, 0x0) + 25ae: 6cc0 or r3, r0 + 25b0: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 25b2: 9262 ld.w r3, (r2, 0x8) + 25b4: 68c0 and r3, r0 + 25b6: 3b40 cmpnei r3, 0 + 25b8: 0ffd bf 0x25b2 // 25b2 +} + 25ba: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 25bc: 9261 ld.w r3, (r2, 0x4) + 25be: 6cc0 or r3, r0 + 25c0: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 25c2: 9262 ld.w r3, (r2, 0x8) + 25c4: 68c0 and r3, r0 + 25c6: 3b40 cmpnei r3, 0 + 25c8: 0bfd bt 0x25c2 // 25c2 + 25ca: 07f8 br 0x25ba // 25ba + 25cc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +000025d0 : +{ + 25d0: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 25d2: 3001 movi r0, 1 + 25d4: e3ffffd0 bsr 0x2574 // 2574 +} + 25d8: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000025dc : +{ + 25dc: 14d0 push r15 + if (NewState != DISABLE) + 25de: 3840 cmpnei r0, 0 + 25e0: 0c04 bf 0x25e8 // 25e8 + 25e2: e3ffffd1 bsr 0x2584 // 2584 +} + 25e6: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 25e8: 3004 movi r0, 4 + 25ea: e3ffffc5 bsr 0x2574 // 2574 + while(ADC0->SR&ADC12_ADCENS); + 25ee: 1065 lrw r3, 0x20000050 // 2600 + 25f0: 3280 movi r2, 128 + 25f2: 9320 ld.w r1, (r3, 0x0) + 25f4: 4241 lsli r2, r2, 1 + 25f6: 9168 ld.w r3, (r1, 0x20) + 25f8: 68c8 and r3, r2 + 25fa: 3b40 cmpnei r3, 0 + 25fc: 0bfd bt 0x25f6 // 25f6 + 25fe: 07f4 br 0x25e6 // 25e6 + 2600: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00002604 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 2604: 1064 lrw r3, 0x20000050 // 2614 + 2606: 3202 movi r2, 2 + 2608: 9320 ld.w r1, (r3, 0x0) + 260a: 9168 ld.w r3, (r1, 0x20) + 260c: 68c8 and r3, r2 + 260e: 3b40 cmpnei r3, 0 + 2610: 0ffd bf 0x260a // 260a +} + 2612: 783c jmp r15 + 2614: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002618 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2618: 200f addi r0, 16 + 261a: 1065 lrw r3, 0x20000050 // 262c + 261c: 3201 movi r2, 1 + 261e: 9320 ld.w r1, (r3, 0x0) + 2620: 7080 lsl r2, r0 + 2622: 9168 ld.w r3, (r1, 0x20) + 2624: 68c8 and r3, r2 + 2626: 3b40 cmpnei r3, 0 + 2628: 0ffd bf 0x2622 // 2622 +} + 262a: 783c jmp r15 + 262c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002630 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2630: 203f addi r0, 64 + 2632: 1064 lrw r3, 0x20000050 // 2640 + 2634: 4002 lsli r0, r0, 2 + 2636: 9360 ld.w r3, (r3, 0x0) + 2638: 600c addu r0, r3 + 263a: 9000 ld.w r0, (r0, 0x0) + 263c: 7401 zexth r0, r0 +} + 263e: 783c jmp r15 + 2640: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002644 : + //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 ) +{ + 2644: 14d4 push r4-r7, r15 + 2646: 1422 subi r14, r14, 8 + 2648: 1c08 addi r4, r14, 32 + 264a: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 264c: 2d00 subi r5, 1 +{ + 264e: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2650: 10db lrw r6, 0x20000050 // 26bc +{ + 2652: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2656: 45aa lsli r5, r5, 10 + 2658: 9680 ld.w r4, (r6, 0x0) + 265a: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 265c: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 265e: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2660: 081c bt 0x2698 // 2698 + { + ADC0->MR&=~CONTCV; //one short mode + 2662: 9425 ld.w r1, (r4, 0x14) + 2664: 4121 lsli r1, r1, 1 + 2666: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2668: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 266a: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 266c: 4002 lsli r0, r0, 2 + 266e: 9428 ld.w r1, (r4, 0x20) + 2670: 6840 and r1, r0 + 2672: 3940 cmpnei r1, 0 + 2674: 0bfd bt 0x266e // 266e + 2676: b861 st.w r3, (r14, 0x4) + 2678: b840 st.w r2, (r14, 0x0) + 267a: e3ffff85 bsr 0x2584 // 2584 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 267e: 3f40 cmpnei r7, 0 + 2680: 9840 ld.w r2, (r14, 0x0) + 2682: 9861 ld.w r3, (r14, 0x4) + 2684: 0c16 bf 0x26b0 // 26b0 + { + ADC0->CR|=ADC12_10BITor12BIT; + 2686: 9600 ld.w r0, (r6, 0x0) + 2688: 9024 ld.w r1, (r0, 0x10) + 268a: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 268c: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 268e: 9620 ld.w r1, (r6, 0x0) + 2690: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 2692: b166 st.w r3, (r1, 0x18) +} + 2694: 1402 addi r14, r14, 8 + 2696: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2698: 3941 cmpnei r1, 1 + 269a: 0bee bt 0x2676 // 2676 + ADC0->MR|=CONTCV; //Continuous mode + 269c: 9425 ld.w r1, (r4, 0x14) + 269e: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 26a0: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 26a2: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 26a4: 4002 lsli r0, r0, 2 + 26a6: 9428 ld.w r1, (r4, 0x20) + 26a8: 6840 and r1, r0 + 26aa: 3940 cmpnei r1, 0 + 26ac: 0ffd bf 0x26a6 // 26a6 + 26ae: 07e4 br 0x2676 // 2676 + ADC0->CR&=~ADC12_10BITor12BIT; + 26b0: 9600 ld.w r0, (r6, 0x0) + 26b2: 9024 ld.w r1, (r0, 0x10) + 26b4: 4121 lsli r1, r1, 1 + 26b6: 4921 lsri r1, r1, 1 + 26b8: 07ea br 0x268c // 268c + 26ba: 0000 bkpt + 26bc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +000026c0 : +//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) + 26c0: 3840 cmpnei r0, 0 + 26c2: 0808 bt 0x26d2 // 26d2 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 26c4: 127c lrw r3, 0x20000050 // 2834 + 26c6: 123d lrw r1, 0x103c0 // 2838 + 26c8: 9340 ld.w r2, (r3, 0x0) + 26ca: 9264 ld.w r3, (r2, 0x10) + 26cc: 68c5 andn r3, r1 + 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); + 26ce: b264 st.w r3, (r2, 0x10) + } +} + 26d0: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 26d2: 3841 cmpnei r0, 1 + 26d4: 0810 bt 0x26f4 // 26f4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26d6: 127a lrw r3, 0x2000004c // 283c + 26d8: 32f0 movi r2, 240 + 26da: 9320 ld.w r1, (r3, 0x0) + 26dc: 9160 ld.w r3, (r1, 0x0) + 26de: 4244 lsli r2, r2, 4 + 26e0: 68c9 andn r3, r2 + 26e2: 3bab bseti r3, 11 + 26e4: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 26e6: 1235 lrw r1, 0x103c0 // 2838 + 26e8: 1273 lrw r3, 0x20000050 // 2834 + 26ea: 9340 ld.w r2, (r3, 0x0) + 26ec: 9264 ld.w r3, (r2, 0x10) + 26ee: 68c5 andn r3, r1 + 26f0: 3ba6 bseti r3, 6 + 26f2: 07ee br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 26f4: 3842 cmpnei r0, 2 + 26f6: 0811 bt 0x2718 // 2718 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26f8: 1271 lrw r3, 0x2000004c // 283c + 26fa: 32f0 movi r2, 240 + 26fc: 9320 ld.w r1, (r3, 0x0) + 26fe: 9160 ld.w r3, (r1, 0x0) + 2700: 4244 lsli r2, r2, 4 + 2702: 68c9 andn r3, r2 + 2704: 3bab bseti r3, 11 + 2706: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2708: 122e lrw r1, 0x30103c0 // 2840 + 270a: 126b lrw r3, 0x20000050 // 2834 + 270c: 9340 ld.w r2, (r3, 0x0) + 270e: 9264 ld.w r3, (r2, 0x10) + 2710: 68c5 andn r3, r1 + 2712: 3ba7 bseti r3, 7 + 2714: 3bb8 bseti r3, 24 + 2716: 07dc br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2718: 3843 cmpnei r0, 3 + 271a: 0811 bt 0x273c // 273c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 271c: 1268 lrw r3, 0x2000004c // 283c + 271e: 32f0 movi r2, 240 + 2720: 9320 ld.w r1, (r3, 0x0) + 2722: 9160 ld.w r3, (r1, 0x0) + 2724: 4244 lsli r2, r2, 4 + 2726: 68c9 andn r3, r2 + 2728: 3bab bseti r3, 11 + 272a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 272c: 1225 lrw r1, 0x30103c0 // 2840 + 272e: 1262 lrw r3, 0x20000050 // 2834 + 2730: 9340 ld.w r2, (r3, 0x0) + 2732: 9264 ld.w r3, (r2, 0x10) + 2734: 68c5 andn r3, r1 + 2736: 1224 lrw r1, 0x30000c0 // 2844 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2738: 6cc4 or r3, r1 + 273a: 07ca br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 273c: 3845 cmpnei r0, 5 + 273e: 0809 bt 0x2750 // 2750 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2740: 117d lrw r3, 0x20000050 // 2834 + 2742: 1222 lrw r1, 0x503c0 // 2848 + 2744: 9340 ld.w r2, (r3, 0x0) + 2746: 9264 ld.w r3, (r2, 0x10) + 2748: 68c5 andn r3, r1 + 274a: 3ba8 bseti r3, 8 + 274c: 3bb2 bseti r3, 18 + 274e: 07c0 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2750: 3846 cmpnei r0, 6 + 2752: 0812 bt 0x2776 // 2776 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2754: 117a lrw r3, 0x2000004c // 283c + 2756: 32f0 movi r2, 240 + 2758: 9320 ld.w r1, (r3, 0x0) + 275a: 9160 ld.w r3, (r1, 0x0) + 275c: 4248 lsli r2, r2, 8 + 275e: 68c9 andn r3, r2 + 2760: 32b0 movi r2, 176 + 2762: 4248 lsli r2, r2, 8 + 2764: 6cc8 or r3, r2 + 2766: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2768: 1134 lrw r1, 0x103c0 // 2838 + 276a: 1173 lrw r3, 0x20000050 // 2834 + 276c: 9340 ld.w r2, (r3, 0x0) + 276e: 9264 ld.w r3, (r2, 0x10) + 2770: 68c5 andn r3, r1 + 2772: 3ba9 bseti r3, 9 + 2774: 07ad br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2776: 3847 cmpnei r0, 7 + 2778: 0819 bt 0x27aa // 27aa + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 277a: 1171 lrw r3, 0x2000004c // 283c + 277c: 31f0 movi r1, 240 + 277e: 9340 ld.w r2, (r3, 0x0) + 2780: 9260 ld.w r3, (r2, 0x0) + 2782: 4128 lsli r1, r1, 8 + 2784: 68c5 andn r3, r1 + 2786: 31b0 movi r1, 176 + 2788: 4128 lsli r1, r1, 8 + 278a: 6cc4 or r3, r1 + 278c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 278e: 31f0 movi r1, 240 + 2790: 9260 ld.w r3, (r2, 0x0) + 2792: 4124 lsli r1, r1, 4 + 2794: 68c5 andn r3, r1 + 2796: 3bab bseti r3, 11 + 2798: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 279a: 1128 lrw r1, 0x103c0 // 2838 + 279c: 1166 lrw r3, 0x20000050 // 2834 + 279e: 9340 ld.w r2, (r3, 0x0) + 27a0: 9264 ld.w r3, (r2, 0x10) + 27a2: 68c5 andn r3, r1 + 27a4: 3ba6 bseti r3, 6 + 27a6: 3ba9 bseti r3, 9 + 27a8: 0793 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 27aa: 3848 cmpnei r0, 8 + 27ac: 0818 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ae: 1164 lrw r3, 0x2000004c // 283c + 27b0: 31f0 movi r1, 240 + 27b2: 9340 ld.w r2, (r3, 0x0) + 27b4: 9260 ld.w r3, (r2, 0x0) + 27b6: 4128 lsli r1, r1, 8 + 27b8: 68c5 andn r3, r1 + 27ba: 31b0 movi r1, 176 + 27bc: 4128 lsli r1, r1, 8 + 27be: 6cc4 or r3, r1 + 27c0: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27c2: 31f0 movi r1, 240 + 27c4: 9260 ld.w r3, (r2, 0x0) + 27c6: 4124 lsli r1, r1, 4 + 27c8: 68c5 andn r3, r1 + 27ca: 3bab bseti r3, 11 + 27cc: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 27ce: 103d lrw r1, 0x30103c0 // 2840 + 27d0: 1079 lrw r3, 0x20000050 // 2834 + 27d2: 9340 ld.w r2, (r3, 0x0) + 27d4: 9264 ld.w r3, (r2, 0x10) + 27d6: 68c5 andn r3, r1 + 27d8: 103d lrw r1, 0x1000280 // 284c + 27da: 07af br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 27dc: 3849 cmpnei r0, 9 + 27de: 0818 bt 0x280e // 280e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27e0: 1077 lrw r3, 0x2000004c // 283c + 27e2: 31f0 movi r1, 240 + 27e4: 9340 ld.w r2, (r3, 0x0) + 27e6: 9260 ld.w r3, (r2, 0x0) + 27e8: 4128 lsli r1, r1, 8 + 27ea: 68c5 andn r3, r1 + 27ec: 31b0 movi r1, 176 + 27ee: 4128 lsli r1, r1, 8 + 27f0: 6cc4 or r3, r1 + 27f2: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27f4: 31f0 movi r1, 240 + 27f6: 9260 ld.w r3, (r2, 0x0) + 27f8: 4124 lsli r1, r1, 4 + 27fa: 68c5 andn r3, r1 + 27fc: 3bab bseti r3, 11 + 27fe: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2800: 1030 lrw r1, 0x30103c0 // 2840 + 2802: 106d lrw r3, 0x20000050 // 2834 + 2804: 9340 ld.w r2, (r3, 0x0) + 2806: 9264 ld.w r3, (r2, 0x10) + 2808: 68c5 andn r3, r1 + 280a: 1032 lrw r1, 0x30002c0 // 2850 + 280c: 0796 br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 280e: 384b cmpnei r0, 11 + 2810: 0b60 bt 0x26d0 // 26d0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2812: 106b lrw r3, 0x2000004c // 283c + 2814: 32f0 movi r2, 240 + 2816: 9320 ld.w r1, (r3, 0x0) + 2818: 9160 ld.w r3, (r1, 0x0) + 281a: 4248 lsli r2, r2, 8 + 281c: 68c9 andn r3, r2 + 281e: 32b0 movi r2, 176 + 2820: 4248 lsli r2, r2, 8 + 2822: 6cc8 or r3, r2 + 2824: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2826: 1029 lrw r1, 0x503c0 // 2848 + 2828: 1063 lrw r3, 0x20000050 // 2834 + 282a: 9340 ld.w r2, (r3, 0x0) + 282c: 9264 ld.w r3, (r2, 0x10) + 282e: 68c5 andn r3, r1 + 2830: 1029 lrw r1, 0x40300 // 2854 + 2832: 0783 br 0x2738 // 2738 + 2834: 20000050 .long 0x20000050 + 2838: 000103c0 .long 0x000103c0 + 283c: 2000004c .long 0x2000004c + 2840: 030103c0 .long 0x030103c0 + 2844: 030000c0 .long 0x030000c0 + 2848: 000503c0 .long 0x000503c0 + 284c: 01000280 .long 0x01000280 + 2850: 030002c0 .long 0x030002c0 + 2854: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002858 : +//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) +{ + 2858: 14d4 push r4-r7, r15 + 285a: 1421 subi r14, r14, 4 + 285c: b840 st.w r2, (r14, 0x0) + 285e: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2860: 125b lrw r2, 0x20000050 // 29cc + 2862: 92c0 ld.w r6, (r2, 0x0) + 2864: 3200 movi r2, 0 + 2866: 4202 lsli r0, r2, 2 + 2868: 6018 addu r0, r6 + 286a: 908c ld.w r4, (r0, 0x30) + 286c: 2200 addi r2, 1 + 286e: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2870: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2872: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2874: 0bf9 bt 0x2866 // 2866 + } + switch(ADC12_ADCINX) + 2876: 3d0f cmphsi r5, 16 + 2878: 0825 bt 0x28c2 // 28c2 + 287a: 6c17 mov r0, r5 + 287c: 1255 lrw r2, 0x2000004c // 29d0 + 287e: 1296 lrw r4, 0x20000048 // 29d4 + 2880: e3fff23e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2884: 322c1408 .long 0x322c1408 + 2888: 4d474039 .long 0x4d474039 + 288c: 756d6559 .long 0x756d6559 + 2890: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2894: 9240 ld.w r2, (r2, 0x0) + 2896: 9200 ld.w r0, (r2, 0x0) + 2898: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 289a: 9201 ld.w r0, (r2, 0x4) + 289c: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 289e: 9400 ld.w r0, (r4, 0x0) + 28a0: 9040 ld.w r2, (r0, 0x0) + 28a2: 34f0 movi r4, 240 + 28a4: 6891 andn r2, r4 + 28a6: 3aa4 bseti r2, 4 + 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; + 28a8: b040 st.w r2, (r0, 0x0) + break; + 28aa: 040c br 0x28c2 // 28c2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 28ac: 9200 ld.w r0, (r2, 0x0) + 28ae: 9040 ld.w r2, (r0, 0x0) + 28b0: 370f movi r7, 15 + 28b2: 689d andn r2, r7 + 28b4: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28b6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28b8: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 28ba: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 28bc: 9440 ld.w r2, (r4, 0x0) + 28be: 9200 ld.w r0, (r2, 0x0) + 28c0: b200 st.w r0, (r2, 0x0) + 28c2: 4362 lsli r3, r3, 2 + 28c4: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 28c6: 966c ld.w r3, (r6, 0x30) + 28c8: 3300 movi r3, 0 + 28ca: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 28cc: 9860 ld.w r3, (r14, 0x0) + 28ce: 6c4c or r1, r3 + 28d0: 964c ld.w r2, (r6, 0x30) + 28d2: 6d44 or r5, r1 + 28d4: 6d48 or r5, r2 + 28d6: b6ac st.w r5, (r6, 0x30) +} + 28d8: 1401 addi r14, r14, 4 + 28da: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 28dc: 9200 ld.w r0, (r2, 0x0) + 28de: 9040 ld.w r2, (r0, 0x0) + 28e0: 37f0 movi r7, 240 + 28e2: 689d andn r2, r7 + 28e4: 3aa4 bseti r2, 4 + 28e6: 07e8 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 28e8: 9200 ld.w r0, (r2, 0x0) + 28ea: 37f0 movi r7, 240 + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 47e8 lsli r7, r7, 8 + 28f0: 689d andn r2, r7 + 28f2: 3aac bseti r2, 12 + 28f4: 07e1 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: 37f0 movi r7, 240 + 28fa: 9040 ld.w r2, (r0, 0x0) + 28fc: 47f0 lsli r7, r7, 16 + 28fe: 689d andn r2, r7 + 2900: 3ab4 bseti r2, 20 + 2902: 07da br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2904: 9200 ld.w r0, (r2, 0x0) + 2906: 37f0 movi r7, 240 + 2908: 9040 ld.w r2, (r0, 0x0) + 290a: 47f4 lsli r7, r7, 20 + 290c: 689d andn r2, r7 + 290e: 3ab8 bseti r2, 24 + 2910: 07d3 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2912: 9200 ld.w r0, (r2, 0x0) + 2914: 9040 ld.w r2, (r0, 0x0) + 2916: 4244 lsli r2, r2, 4 + 2918: 4a44 lsri r2, r2, 4 + 291a: 3abc bseti r2, 28 + 291c: 07cd br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 291e: 9240 ld.w r2, (r2, 0x0) + 2920: 9200 ld.w r0, (r2, 0x0) + 2922: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2924: 9201 ld.w r0, (r2, 0x4) + 2926: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2928: 9400 ld.w r0, (r4, 0x0) + 292a: 34f0 movi r4, 240 + 292c: 9040 ld.w r2, (r0, 0x0) + 292e: 4484 lsli r4, r4, 4 + 2930: 6891 andn r2, r4 + 2932: 3aa8 bseti r2, 8 + 2934: 07ba br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2936: 9240 ld.w r2, (r2, 0x0) + 2938: 9200 ld.w r0, (r2, 0x0) + 293a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 293c: 9201 ld.w r0, (r2, 0x4) + 293e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2940: 9400 ld.w r0, (r4, 0x0) + 2942: 34f0 movi r4, 240 + 2944: 9040 ld.w r2, (r0, 0x0) + 2946: 4488 lsli r4, r4, 8 + 2948: 6891 andn r2, r4 + 294a: 3aac bseti r2, 12 + 294c: 07ae br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 294e: 9200 ld.w r0, (r2, 0x0) + 2950: 9040 ld.w r2, (r0, 0x0) + 2952: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 370f movi r7, 15 + 2958: 689d andn r2, r7 + 295a: 3aa0 bseti r2, 0 + 295c: 07af br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 295e: 9200 ld.w r0, (r2, 0x0) + 2960: 9040 ld.w r2, (r0, 0x0) + 2962: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2964: 9041 ld.w r2, (r0, 0x4) + 2966: 37f0 movi r7, 240 + 2968: 689d andn r2, r7 + 296a: 3aa4 bseti r2, 4 + 296c: 07a7 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 296e: 9200 ld.w r0, (r2, 0x0) + 2970: 9040 ld.w r2, (r0, 0x0) + 2972: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2974: 37f0 movi r7, 240 + 2976: 9041 ld.w r2, (r0, 0x4) + 2978: 47e4 lsli r7, r7, 4 + 297a: 689d andn r2, r7 + 297c: 3aa8 bseti r2, 8 + 297e: 079e br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2980: 9200 ld.w r0, (r2, 0x0) + 2982: 9040 ld.w r2, (r0, 0x0) + 2984: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2986: 37f0 movi r7, 240 + 2988: 9041 ld.w r2, (r0, 0x4) + 298a: 47e8 lsli r7, r7, 8 + 298c: 689d andn r2, r7 + 298e: 3aac bseti r2, 12 + 2990: 0795 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2992: 9200 ld.w r0, (r2, 0x0) + 2994: 9040 ld.w r2, (r0, 0x0) + 2996: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2998: 37f0 movi r7, 240 + 299a: 9041 ld.w r2, (r0, 0x4) + 299c: 47ec lsli r7, r7, 12 + 299e: 689d andn r2, r7 + 29a0: 3ab0 bseti r2, 16 + 29a2: 078c br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 29a4: 9200 ld.w r0, (r2, 0x0) + 29a6: 9040 ld.w r2, (r0, 0x0) + 29a8: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 29aa: 37f0 movi r7, 240 + 29ac: 9041 ld.w r2, (r0, 0x4) + 29ae: 47f0 lsli r7, r7, 16 + 29b0: 689d andn r2, r7 + 29b2: 3ab4 bseti r2, 20 + 29b4: 0783 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 29b6: 9240 ld.w r2, (r2, 0x0) + 29b8: 9200 ld.w r0, (r2, 0x0) + 29ba: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29bc: 9201 ld.w r0, (r2, 0x4) + 29be: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 29c0: 9400 ld.w r0, (r4, 0x0) + 29c2: 9040 ld.w r2, (r0, 0x0) + 29c4: 340f movi r4, 15 + 29c6: 6891 andn r2, r4 + 29c8: 3aa0 bseti r2, 0 + 29ca: 076f br 0x28a8 // 28a8 + 29cc: 20000050 .long 0x20000050 + 29d0: 2000004c .long 0x2000004c + 29d4: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +000029d8 : + 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) +{ + 29d8: 14c4 push r4-r7 + 29da: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 29dc: 1165 lrw r3, 0x20000060 // 2a70 + 29de: 1186 lrw r4, 0x5a5a5a5a // 2a74 + 29e0: 9360 ld.w r3, (r3, 0x0) + 29e2: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 29e4: 3407 movi r4, 7 + 29e6: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29e8: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 29ea: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ec: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29ee: 9384 ld.w r4, (r3, 0x10) + 29f0: 3c40 cmpnei r4, 0 + 29f2: 0bfe bt 0x29ee // 29ee + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 29f4: 2102 addi r1, 3 + 29f6: 4922 lsri r1, r1, 2 + 29f8: 4122 lsli r1, r1, 2 + 29fa: 6048 addu r1, r2 + 29fc: b820 st.w r1, (r14, 0x0) + 29fe: 5829 subu r1, r0, r2 + 2a00: b821 st.w r1, (r14, 0x4) + 2a02: 9820 ld.w r1, (r14, 0x0) + 2a04: 644a cmpne r2, r1 + 2a06: 0826 bt 0x2a52 // 2a52 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2a08: 3106 movi r1, 6 + SetUserKey; + 2a0a: 105b lrw r2, 0x5a5a5a5a // 2a74 + 2a0c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2a0e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2a10: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2a12: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a14: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2a16: 9324 ld.w r1, (r3, 0x10) + 2a18: 3940 cmpnei r1, 0 + 2a1a: 0bfe bt 0x2a16 // 2a16 + //Perform pre-programming 4 + SetUserKey; + 2a1c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a1e: 3201 movi r2, 1 + 2a20: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a22: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a24: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2a26: 934a ld.w r2, (r3, 0x28) + 2a28: 3a44 cmpnei r2, 4 + 2a2a: 0bfe bt 0x2a26 // 2a26 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2a2c: 3102 movi r1, 2 + SetUserKey; + 2a2e: 1052 lrw r2, 0x5a5a5a5a // 2a74 + 2a30: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2a32: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a34: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a36: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a38: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a3a: 932a ld.w r1, (r3, 0x28) + 2a3c: 3941 cmpnei r1, 1 + 2a3e: 0bfe bt 0x2a3a // 2a3a + //Write page cache data to flash memory 6 + SetUserKey; + 2a40: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a42: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a44: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a46: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a48: 934a ld.w r2, (r3, 0x28) + 2a4a: 3a42 cmpnei r2, 2 + 2a4c: 0bfe bt 0x2a48 // 2a48 +} + 2a4e: 1402 addi r14, r14, 8 + 2a50: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a52: 82e0 ld.b r7, (r2, 0x0) + 2a54: 8281 ld.b r4, (r2, 0x1) + 2a56: 4488 lsli r4, r4, 8 + 2a58: 8222 ld.b r1, (r2, 0x2) + 2a5a: 611c addu r4, r7 + 2a5c: 82a3 ld.b r5, (r2, 0x3) + 2a5e: 4130 lsli r1, r1, 16 + 2a60: 98c1 ld.w r6, (r14, 0x4) + 2a62: 6050 addu r1, r4 + 2a64: 45b8 lsli r5, r5, 24 + 2a66: 6188 addu r6, r2 + 2a68: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a6a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a6c: 2203 addi r2, 4 + 2a6e: 07ca br 0x2a02 // 2a02 + 2a70: 20000060 .long 0x20000060 + 2a74: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a78 : +//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) +{ + 2a78: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a84: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a86: 3b40 cmpnei r3, 0 + 2a88: 0c06 bf 0x2a94 // 2a94 + 2a8a: 6d0f mov r4, r3 + 2a8c: 6914 and r4, r5 + 2a8e: 3c40 cmpnei r4, 0 + 2a90: 0802 bt 0x2a94 // 2a94 + RdStartAdd +=4; + 2a92: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a94: 6d0f mov r4, r3 + 2a96: 6914 and r4, r5 + 2a98: 6100 addu r4, r0 + 2a9a: 8480 ld.b r4, (r4, 0x0) + 2a9c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002aa4 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2aa4: 33f8 movi r3, 248 + 2aa6: 4366 lsli r3, r3, 6 + 2aa8: 115b lrw r2, 0x2000010c // 2b94 + 2aaa: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2aac: 3246 movi r2, 70 + 2aae: 117b lrw r3, 0x20000112 // 2b98 + 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 + 2ab0: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2ab2: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2ab4: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2ab6: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2ab8: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2aba: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2abc: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2abe: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2ac0: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2ac2: 1157 lrw r2, 0x200002f0 // 2b9c + 2ac4: 8a22 ld.h r1, (r2, 0x4) + 2ac6: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2ac8: 8a23 ld.h r1, (r2, 0x6) + 2aca: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2acc: 8a24 ld.h r1, (r2, 0x8) + 2ace: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2ad0: 8a25 ld.h r1, (r2, 0xa) + 2ad2: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2ad4: 8a26 ld.h r1, (r2, 0xc) + 2ad6: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2ad8: 3146 movi r1, 70 + 2ada: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2adc: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2ade: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae0: 3128 movi r1, 40 + 2ae2: 1170 lrw r3, 0x20000136 // 2ba0 + 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 + 2ae4: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae6: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2ae8: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2aea: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2aec: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2aee: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2af0: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2af2: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2af4: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2af6: 8a27 ld.h r1, (r2, 0xe) + 2af8: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2afa: 8a28 ld.h r1, (r2, 0x10) + 2afc: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2afe: 8a29 ld.h r1, (r2, 0x12) + 2b00: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2b02: 8a2a ld.h r1, (r2, 0x14) + 2b04: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2b06: 8a2b ld.h r1, (r2, 0x16) + 2b08: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2b0a: 3128 movi r1, 40 + 2b0c: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2b0e: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2b10: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2b12: 8220 ld.b r1, (r2, 0x0) + 2b14: 1164 lrw r3, 0x200000dc // 2ba4 + 2b16: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2b18: 8221 ld.b r1, (r2, 0x1) + 2b1a: 1164 lrw r3, 0x200000e4 // 2ba8 + 2b1c: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2b1e: 3101 movi r1, 1 + 2b20: 1163 lrw r3, 0x200000e5 // 2bac + 2b22: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2b24: 3100 movi r1, 0 + 2b26: 1163 lrw r3, 0x20000108 // 2bb0 + 2b28: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2b2a: 3106 movi r1, 6 + 2b2c: 1162 lrw r3, 0x20000110 // 2bb4 + 2b2e: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2b30: 8223 ld.b r1, (r2, 0x3) + 2b32: 1162 lrw r3, 0x20000109 // 2bb8 + 2b34: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b36: 9246 ld.w r2, (r2, 0x18) + 2b38: 1161 lrw r3, 0x200000e0 // 2bbc + 2b3a: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b3c: 1141 lrw r2, 0xea5f // 2bc0 + 2b3e: 1162 lrw r3, 0x2000015c // 2bc4 + 2b40: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b42: 3200 movi r2, 0 + 2b44: 1161 lrw r3, 0x200000dd // 2bc8 + 2b46: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b48: 3202 movi r2, 2 + 2b4a: 1161 lrw r3, 0x200000de // 2bcc + 2b4c: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b4e: 3232 movi r2, 50 + 2b50: 1160 lrw r3, 0x20000134 // 2bd0 + 2b52: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b54: 3200 movi r2, 0 + 2b56: 1160 lrw r3, 0x20000160 // 2bd4 + 2b58: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b5a: 3201 movi r2, 1 + 2b5c: 107f lrw r3, 0x2000015a // 2bd8 + 2b5e: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b60: 3200 movi r2, 0 + 2b62: 107f lrw r3, 0x20000158 // 2bdc + 2b64: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b66: 3204 movi r2, 4 + 2b68: 107e lrw r3, 0x200000e6 // 2be0 + 2b6a: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2b6c: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2b6e: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2b70: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2b72: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2b74: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2b76: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2b78: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2b7a: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2b7c: 3207 movi r2, 7 + 2b7e: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2b80: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2b82: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2b84: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2b86: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2b88: 3204 movi r2, 4 + 2b8a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2b8c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2b8e: ab50 st.h r2, (r3, 0x20) + 2b90: 783c jmp r15 + 2b92: 0000 bkpt + 2b94: 2000010c .long 0x2000010c + 2b98: 20000112 .long 0x20000112 + 2b9c: 200002f0 .long 0x200002f0 + 2ba0: 20000136 .long 0x20000136 + 2ba4: 200000dc .long 0x200000dc + 2ba8: 200000e4 .long 0x200000e4 + 2bac: 200000e5 .long 0x200000e5 + 2bb0: 20000108 .long 0x20000108 + 2bb4: 20000110 .long 0x20000110 + 2bb8: 20000109 .long 0x20000109 + 2bbc: 200000e0 .long 0x200000e0 + 2bc0: 0000ea5f .long 0x0000ea5f + 2bc4: 2000015c .long 0x2000015c + 2bc8: 200000dd .long 0x200000dd + 2bcc: 200000de .long 0x200000de + 2bd0: 20000134 .long 0x20000134 + 2bd4: 20000160 .long 0x20000160 + 2bd8: 2000015a .long 0x2000015a + 2bdc: 20000158 .long 0x20000158 + 2be0: 200000e6 .long 0x200000e6 + +Disassembly of section .text.CORET_DeInit: + +00002be4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2be4: 1065 lrw r3, 0x20000064 // 2bf8 + 2be6: 3204 movi r2, 4 + 2be8: 9360 ld.w r3, (r3, 0x0) + 2bea: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2bec: 3200 movi r2, 0 + 2bee: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2bf0: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2bf2: b347 st.w r2, (r3, 0x1c) +} + 2bf4: 783c jmp r15 + 2bf6: 0000 bkpt + 2bf8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002bfc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2bfc: 1064 lrw r3, 0x20000064 // 2c0c + 2bfe: 3200 movi r2, 0 + 2c00: 9360 ld.w r3, (r3, 0x0) + 2c02: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2c04: 3201 movi r2, 1 + 2c06: 1063 lrw r3, 0xe000e100 // 2c10 + 2c08: b340 st.w r2, (r3, 0x0) +} + 2c0a: 783c jmp r15 + 2c0c: 20000064 .long 0x20000064 + 2c10: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002c14 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2c14: 1063 lrw r3, 0x20000064 // 2c20 + 2c16: 9340 ld.w r2, (r3, 0x0) + 2c18: 9264 ld.w r3, (r2, 0x10) + 2c1a: 3ba0 bseti r3, 0 + 2c1c: b264 st.w r3, (r2, 0x10) +} + 2c1e: 783c jmp r15 + 2c20: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002c24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2c24: 1063 lrw r3, 0x20000064 // 2c30 + 2c26: 9340 ld.w r2, (r3, 0x0) + 2c28: 9264 ld.w r3, (r2, 0x10) + 2c2a: 3b82 bclri r3, 2 + 2c2c: b264 st.w r3, (r2, 0x10) +} + 2c2e: 783c jmp r15 + 2c30: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c34: 1063 lrw r3, 0x20000064 // 2c40 + 2c36: 9340 ld.w r2, (r3, 0x0) + 2c38: 9264 ld.w r3, (r2, 0x10) + 2c3a: 3ba1 bseti r3, 1 + 2c3c: b264 st.w r3, (r2, 0x10) +} + 2c3e: 783c jmp r15 + 2c40: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c44 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c44: 1063 lrw r3, 0x20000064 // 2c50 + 2c46: 3200 movi r2, 0 + 2c48: 9360 ld.w r3, (r3, 0x0) + 2c4a: b346 st.w r2, (r3, 0x18) +} + 2c4c: 783c jmp r15 + 2c4e: 0000 bkpt + 2c50: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c54
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c54: 14d1 push r4, r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2c56: e00000ef bsr 0x2e34 // 2e34 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c5a: 1077 lrw r3, 0x20000350 // 2cb4 + 2c5c: 8340 ld.b r2, (r3, 0x0) + 2c5e: 1037 lrw r1, 0x7c20 // 2cb8 + 2c60: 3000 movi r0, 0 + 2c62: e0000775 bsr 0x3b4c // 3b4c + + TemCtrl_Init(); + 2c66: e00011e7 bsr 0x5034 // 5034 + DisPlay_Init(); + 2c6a: e000171f bsr 0x5aa8 // 5aa8 + Debug_Init(); + 2c6e: e00018b9 bsr 0x5de0 // 5de0 + RF_Info_Init(); + 2c72: e0001995 bsr 0x5f9c // 5f9c + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + + if (detect_inf.stop_detect == 0x00) { + 2c76: 1092 lrw r4, 0x200003cc // 2cbc + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c78: e3fff7f6 bsr 0x1c64 // 1c64 + if (detect_inf.stop_detect == 0x00) { + 2c7c: 8462 ld.b r3, (r4, 0x2) + 2c7e: 3b40 cmpnei r3, 0 + 2c80: 0804 bt 0x2c88 // 2c88 + Control_Mode_Detection(); + 2c82: e000117f bsr 0x4f80 // 4f80 + 2c86: 07f9 br 0x2c78 // 2c78 + }else { + + UART2_TASK(); + 2c88: e00006d0 bsr 0x3a28 // 3a28 + + Touch_Key_Task(); + 2c8c: e00008d2 bsr 0x3e30 // 3e30 + + TemCtrl_Pro(); + 2c90: e000139c bsr 0x53c8 // 53c8 + + DisPlay_Task(); + 2c94: e000171a bsr 0x5ac8 // 5ac8 + + HT1621_Refresh_Task(); + 2c98: e000112e bsr 0x4ef4 // 4ef4 + + ADC_Sample_Task(); + 2c9c: e0000e14 bsr 0x48c4 // 48c4 + + Debug_Task(); + 2ca0: e00018f2 bsr 0x5e84 // 5e84 + + if (detect_inf.control_model != 0x00){ + 2ca4: 8463 ld.b r3, (r4, 0x3) + 2ca6: 3b40 cmpnei r3, 0 + 2ca8: 0fe8 bf 0x2c78 // 2c78 + + TemFun_Report_Task(); + 2caa: e0001b69 bsr 0x637c // 637c + zigbee_uart_service(); + 2cae: e0001b03 bsr 0x62b4 // 62b4 + 2cb2: 07e3 br 0x2c78 // 2c78 + 2cb4: 20000350 .long 0x20000350 + 2cb8: 00007c20 .long 0x00007c20 + 2cbc: 200003cc .long 0x200003cc + +Disassembly of section .text.delay_nms: + +00002cc0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2cc0: 14d0 push r15 + 2cc2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2cc4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2cc6: 3300 movi r3, 0 + j = 50* t; + 2cc8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2cca: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2ccc: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cce: b860 st.w r3, (r14, 0x0) + 2cd0: 9840 ld.w r2, (r14, 0x0) + 2cd2: 9861 ld.w r3, (r14, 0x4) + 2cd4: 64c8 cmphs r2, r3 + 2cd6: 0c03 bf 0x2cdc // 2cdc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2cd8: 1403 addi r14, r14, 12 + 2cda: 1490 pop r15 + k++; + 2cdc: 9862 ld.w r3, (r14, 0x8) + 2cde: 2300 addi r3, 1 + 2ce0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2ce2: e3fff7c1 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2ce6: 9860 ld.w r3, (r14, 0x0) + 2ce8: 2300 addi r3, 1 + 2cea: 07f2 br 0x2cce // 2cce + +Disassembly of section .text.delay_nus: + +00002cec : +void delay_nus(unsigned int t) +{ + 2cec: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2cee: 3300 movi r3, 0 + 2cf0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2cf2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cf4: b860 st.w r3, (r14, 0x0) + 2cf6: 9840 ld.w r2, (r14, 0x0) + 2cf8: 9861 ld.w r3, (r14, 0x4) + 2cfa: 64c8 cmphs r2, r3 + 2cfc: 0c03 bf 0x2d02 // 2d02 + { + k++; + } +} + 2cfe: 1403 addi r14, r14, 12 + 2d00: 783c jmp r15 + k++; + 2d02: 9862 ld.w r3, (r14, 0x8) + 2d04: 2300 addi r3, 1 + 2d06: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2d08: 9860 ld.w r3, (r14, 0x0) + 2d0a: 2300 addi r3, 1 + 2d0c: 07f4 br 0x2cf4 // 2cf4 + +Disassembly of section .text.EPT0_CONFIG: + +00002d10 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2d10: 14d1 push r4, r15 + 2d12: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2d14: e3fffa14 bsr 0x213c // 213c +//------------ 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_PB00); //CX channel selection + 2d18: 311d movi r1, 29 + 2d1a: 3004 movi r0, 4 + 2d1c: e3fffa48 bsr 0x21ac // 21ac + //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) + 2d20: 3300 movi r3, 0 + 2d22: 3200 movi r2, 0 + 2d24: 3100 movi r1, 0 + 2d26: 3000 movi r0, 0 + 2d28: e3fffb5e bsr 0x23e4 // 23e4 +// 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, + 2d2c: 3380 movi r3, 128 + 2d2e: 3400 movi r4, 0 + 2d30: b862 st.w r3, (r14, 0x8) + 2d32: 3280 movi r2, 128 + 2d34: 3320 movi r3, 32 + 2d36: 3180 movi r1, 128 + 2d38: b861 st.w r3, (r14, 0x4) + 2d3a: 4250 lsli r2, r2, 16 + 2d3c: 412e lsli r1, r1, 14 + 2d3e: b888 st.w r4, (r14, 0x20) + 2d40: b887 st.w r4, (r14, 0x1c) + 2d42: b886 st.w r4, (r14, 0x18) + 2d44: b885 st.w r4, (r14, 0x14) + 2d46: b884 st.w r4, (r14, 0x10) + 2d48: b883 st.w r4, (r14, 0xc) + 2d4a: b880 st.w r4, (r14, 0x0) + 2d4c: 3301 movi r3, 1 + 2d4e: 3002 movi r0, 2 + 2d50: e3fffb66 bsr 0x241c // 241c +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2d54: 1066 lrw r3, 0xbb8 // 2d6c + 2d56: 3200 movi r2, 0 + 2d58: 3100 movi r1, 0 + 2d5a: 6c0f mov r0, r3 + 2d5c: b880 st.w r4, (r14, 0x0) + 2d5e: e3fffbcb bsr 0x24f4 // 24f4 + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2d62: e3fff9fd bsr 0x215c // 215c + +} + 2d66: 1409 addi r14, r14, 36 + 2d68: 1491 pop r4, r15 + 2d6a: 0000 bkpt + 2d6c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002d70 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2d70: 14d2 push r4-r5, r15 + 2d72: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2d74: 1095 lrw r4, 0x20000008 // 2dc8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d76: 3500 movi r5, 0 + BT_DeInit(BT1); + 2d78: 9400 ld.w r0, (r4, 0x0) + 2d7a: e3fff8bd bsr 0x1ef4 // 1ef4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d7e: 9400 ld.w r0, (r4, 0x0) + 2d80: b8a1 st.w r5, (r14, 0x4) + 2d82: b8a0 st.w r5, (r14, 0x0) + 2d84: 3308 movi r3, 8 + 2d86: 3200 movi r2, 0 + 2d88: 3101 movi r1, 1 + 2d8a: e3fff8cc 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); + 2d8e: 3380 movi r3, 128 + 2d90: 4363 lsli r3, r3, 3 + 2d92: b861 st.w r3, (r14, 0x4) + 2d94: 9400 ld.w r0, (r4, 0x0) + 2d96: 3300 movi r3, 0 + 2d98: b8a3 st.w r5, (r14, 0xc) + 2d9a: b8a2 st.w r5, (r14, 0x8) + 2d9c: b8a0 st.w r5, (r14, 0x0) + 2d9e: 3200 movi r2, 0 + 2da0: 3180 movi r1, 128 + 2da2: e3fff8cc bsr 0x1f3a // 1f3a + BT_Period_CMP_Write(BT1,4780,1); + 2da6: 3201 movi r2, 1 + 2da8: 1029 lrw r1, 0x12ac // 2dcc + 2daa: 9400 ld.w r0, (r4, 0x0) + 2dac: e3fff8dd bsr 0x1f66 // 1f66 + BT_Start(BT1); + 2db0: 9400 ld.w r0, (r4, 0x0) + 2db2: e3fff8af bsr 0x1f10 // 1f10 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2db6: 9400 ld.w r0, (r4, 0x0) + 2db8: 3202 movi r2, 2 + 2dba: 3101 movi r1, 1 + 2dbc: e3fff8d8 bsr 0x1f6c // 1f6c + BT1_INT_ENABLE(); + 2dc0: e3fff8e0 bsr 0x1f80 // 1f80 + +} + 2dc4: 1404 addi r14, r14, 16 + 2dc6: 1492 pop r4-r5, r15 + 2dc8: 20000008 .long 0x20000008 + 2dcc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002dd0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2dd0: 14d0 push r15 + 2dd2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2dd4: e3fff694 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2dd8: 3101 movi r1, 1 + 2dda: 3001 movi r0, 1 + 2ddc: e3fff6b6 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 + 2de0: 3000 movi r0, 0 + 2de2: e3fff70f 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 + 2de6: 3180 movi r1, 128 + 2de8: 3308 movi r3, 8 + 2dea: 3200 movi r2, 0 + 2dec: 4121 lsli r1, r1, 1 + 2dee: 3002 movi r0, 2 + 2df0: e3fff6c4 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2df4: 30c0 movi r0, 192 + 2df6: 3118 movi r1, 24 + 2df8: 4002 lsli r0, r0, 2 + 2dfa: e3fff73f bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2dfe: 3001 movi r0, 1 + 2e00: e3fff714 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2e04: e3fff730 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2e08: e3fff762 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 + 2e0c: 3340 movi r3, 64 + 2e0e: b860 st.w r3, (r14, 0x0) + 2e10: 31c0 movi r1, 192 + 2e12: 3380 movi r3, 128 + 2e14: 4364 lsli r3, r3, 4 + 2e16: 3200 movi r2, 0 + 2e18: 4123 lsli r1, r1, 3 + 2e1a: 3000 movi r0, 0 + 2e1c: e3fff73a bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2e20: e3fff748 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2e24: e3fff782 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 + 2e28: 3000 movi r0, 0 + 2e2a: e000235d bsr 0x74e4 // 74e4 + +} + 2e2e: 1401 addi r14, r14, 4 + 2e30: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002e34 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2e34: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e36: 107d lrw r3, 0x2000005c // 2ea8 + Sys_RSR = 0x00000000; + 2e38: 105d lrw r2, 0x200000a8 // 2eac + 2e3a: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e3c: 9360 ld.w r3, (r3, 0x0) + 2e3e: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2e40: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e42: 600c addu r0, r3 + 2e44: 9004 ld.w r0, (r0, 0x10) + 2e46: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2e48: 105a lrw r2, 0x200000a4 // 2eb0 + 2e4a: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2e4c: 3180 movi r1, 128 + 2e4e: 4121 lsli r1, r1, 1 + 2e50: 604c addu r1, r3 + 2e52: 9120 ld.w r1, (r1, 0x0) + 2e54: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2e56: 1058 lrw r2, 0xfffffff // 2eb4 + 2e58: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5a: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2e5c: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5e: 934c ld.w r2, (r3, 0x30) + 2e60: 6884 and r2, r1 + 2e62: 3a40 cmpnei r2, 0 + 2e64: 0ffd bf 0x2e5e // 2e5e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2e66: e3ffffb5 bsr 0x2dd0 // 2dd0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2e6a: e0000521 bsr 0x38ac // 38ac + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2e6e: e3fff763 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2e72: 3101 movi r1, 1 + 2e74: 300f movi r0, 15 + 2e76: e3fff771 bsr 0x1d58 // 1d58 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2e7a: 3102 movi r1, 2 + 2e7c: 3019 movi r0, 25 + 2e7e: e3fff76d bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2e82: e0001ae5 bsr 0x644c // 644c + + EPT0_CONFIG(); + 2e86: e3ffff45 bsr 0x2d10 // 2d10 + + BT_CONFIG(); //BT initial + 2e8a: e3ffff73 bsr 0x2d70 // 2d70 + + MODEL_Ctrl_Init(); + 2e8e: e0001063 bsr 0x4f54 // 4f54 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2e92: 102a lrw r1, 0x68e0 // 2eb8 + 2e94: 3002 movi r0, 2 + 2e96: e000050f bsr 0x38b4 // 38b4 + + HT1621_Init(); //显示驱动初始化 + 2e9a: e0000db1 bsr 0x49fc // 49fc + + Touch_Key_Init(); + 2e9e: e000065f bsr 0x3b5c // 3b5c + + ADC_Init(); + 2ea2: e0000c5f bsr 0x4760 // 4760 + +} + 2ea6: 1490 pop r15 + 2ea8: 2000005c .long 0x2000005c + 2eac: 200000a8 .long 0x200000a8 + 2eb0: 200000a4 .long 0x200000a4 + 2eb4: 0fffffff .long 0x0fffffff + 2eb8: 000068e0 .long 0x000068e0 + +Disassembly of section .text.SYSCONIntHandler: + +00002ebc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2ebc: 1460 nie + 2ebe: 1462 ipush + // ISR content ... + nop; + 2ec0: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2ec2: 117a lrw r3, 0x2000005c // 2fa8 + 2ec4: 3280 movi r2, 128 + 2ec6: 9360 ld.w r3, (r3, 0x0) + 2ec8: 60c8 addu r3, r2 + 2eca: 9323 ld.w r1, (r3, 0xc) + 2ecc: 3001 movi r0, 1 + 2ece: 6840 and r1, r0 + 2ed0: 3940 cmpnei r1, 0 + 2ed2: 0c04 bf 0x2eda // 2eda + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2ed4: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2ed6: 1463 ipop + 2ed8: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2eda: 9323 ld.w r1, (r3, 0xc) + 2edc: 3002 movi r0, 2 + 2ede: 6840 and r1, r0 + 2ee0: 3940 cmpnei r1, 0 + 2ee2: 0bf9 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2ee4: 9323 ld.w r1, (r3, 0xc) + 2ee6: 3008 movi r0, 8 + 2ee8: 6840 and r1, r0 + 2eea: 3940 cmpnei r1, 0 + 2eec: 0bf4 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2eee: 9323 ld.w r1, (r3, 0xc) + 2ef0: 3010 movi r0, 16 + 2ef2: 6840 and r1, r0 + 2ef4: 3940 cmpnei r1, 0 + 2ef6: 0bef bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2ef8: 9323 ld.w r1, (r3, 0xc) + 2efa: 6848 and r1, r2 + 2efc: 3940 cmpnei r1, 0 + 2efe: 0c03 bf 0x2f04 // 2f04 + SYSCON->ICR = CMD_ERR_ST; + 2f00: b341 st.w r2, (r3, 0x4) +} + 2f02: 07ea br 0x2ed6 // 2ed6 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2f04: 3280 movi r2, 128 + 2f06: 9323 ld.w r1, (r3, 0xc) + 2f08: 4241 lsli r2, r2, 1 + 2f0a: 6848 and r1, r2 + 2f0c: 3940 cmpnei r1, 0 + 2f0e: 0bf9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2f10: 3280 movi r2, 128 + 2f12: 9323 ld.w r1, (r3, 0xc) + 2f14: 4242 lsli r2, r2, 2 + 2f16: 6848 and r1, r2 + 2f18: 3940 cmpnei r1, 0 + 2f1a: 0bf3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2f1c: 3280 movi r2, 128 + 2f1e: 9323 ld.w r1, (r3, 0xc) + 2f20: 4243 lsli r2, r2, 3 + 2f22: 6848 and r1, r2 + 2f24: 3940 cmpnei r1, 0 + 2f26: 0bed bt 0x2f00 // 2f00 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2f28: 3280 movi r2, 128 + 2f2a: 9323 ld.w r1, (r3, 0xc) + 2f2c: 4244 lsli r2, r2, 4 + 2f2e: 6848 and r1, r2 + 2f30: 3940 cmpnei r1, 0 + 2f32: 0c03 bf 0x2f38 // 2f38 + nop; + 2f34: 6c03 mov r0, r0 + 2f36: 07e5 br 0x2f00 // 2f00 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2f38: 3280 movi r2, 128 + 2f3a: 9323 ld.w r1, (r3, 0xc) + 2f3c: 4245 lsli r2, r2, 5 + 2f3e: 6848 and r1, r2 + 2f40: 3940 cmpnei r1, 0 + 2f42: 0bdf bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2f44: 3280 movi r2, 128 + 2f46: 9323 ld.w r1, (r3, 0xc) + 2f48: 4246 lsli r2, r2, 6 + 2f4a: 6848 and r1, r2 + 2f4c: 3940 cmpnei r1, 0 + 2f4e: 0bd9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2f50: 3280 movi r2, 128 + 2f52: 9323 ld.w r1, (r3, 0xc) + 2f54: 4247 lsli r2, r2, 7 + 2f56: 6848 and r1, r2 + 2f58: 3940 cmpnei r1, 0 + 2f5a: 0bd3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2f5c: 3280 movi r2, 128 + 2f5e: 9323 ld.w r1, (r3, 0xc) + 2f60: 424b lsli r2, r2, 11 + 2f62: 6848 and r1, r2 + 2f64: 3940 cmpnei r1, 0 + 2f66: 0bcd bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2f68: 3280 movi r2, 128 + 2f6a: 9323 ld.w r1, (r3, 0xc) + 2f6c: 424c lsli r2, r2, 12 + 2f6e: 6848 and r1, r2 + 2f70: 3940 cmpnei r1, 0 + 2f72: 0bc7 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2f74: 3280 movi r2, 128 + 2f76: 9323 ld.w r1, (r3, 0xc) + 2f78: 424d lsli r2, r2, 13 + 2f7a: 6848 and r1, r2 + 2f7c: 3940 cmpnei r1, 0 + 2f7e: 0bc1 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2f80: 3280 movi r2, 128 + 2f82: 9323 ld.w r1, (r3, 0xc) + 2f84: 424e lsli r2, r2, 14 + 2f86: 6848 and r1, r2 + 2f88: 3940 cmpnei r1, 0 + 2f8a: 0bbb bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2f8c: 3280 movi r2, 128 + 2f8e: 9323 ld.w r1, (r3, 0xc) + 2f90: 424f lsli r2, r2, 15 + 2f92: 6848 and r1, r2 + 2f94: 3940 cmpnei r1, 0 + 2f96: 0bb5 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2f98: 3280 movi r2, 128 + 2f9a: 9323 ld.w r1, (r3, 0xc) + 2f9c: 4256 lsli r2, r2, 22 + 2f9e: 6848 and r1, r2 + 2fa0: 3940 cmpnei r1, 0 + 2fa2: 0baf bt 0x2f00 // 2f00 + 2fa4: 0799 br 0x2ed6 // 2ed6 + 2fa6: 0000 bkpt + 2fa8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002fac : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2fac: 1460 nie + 2fae: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2fb0: 1078 lrw r3, 0x20000060 // 3010 + 2fb2: 3101 movi r1, 1 + 2fb4: 9360 ld.w r3, (r3, 0x0) + 2fb6: 934b ld.w r2, (r3, 0x2c) + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0c04 bf 0x2fc4 // 2fc4 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2fbe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2fc0: 1463 ipop + 2fc2: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2fc4: 934b ld.w r2, (r3, 0x2c) + 2fc6: 3102 movi r1, 2 + 2fc8: 6884 and r2, r1 + 2fca: 3a40 cmpnei r2, 0 + 2fcc: 0bf9 bt 0x2fbe // 2fbe + else if(IFC->MISR&PEP_END_INT) + 2fce: 934b ld.w r2, (r3, 0x2c) + 2fd0: 3104 movi r1, 4 + 2fd2: 6884 and r2, r1 + 2fd4: 3a40 cmpnei r2, 0 + 2fd6: 0bf4 bt 0x2fbe // 2fbe + else if(IFC->MISR&PROT_ERR_INT) + 2fd8: 3280 movi r2, 128 + 2fda: 932b ld.w r1, (r3, 0x2c) + 2fdc: 4245 lsli r2, r2, 5 + 2fde: 6848 and r1, r2 + 2fe0: 3940 cmpnei r1, 0 + 2fe2: 0c03 bf 0x2fe8 // 2fe8 + IFC->ICR=OVW_ERR_INT; + 2fe4: b34c st.w r2, (r3, 0x30) +} + 2fe6: 07ed br 0x2fc0 // 2fc0 + else if(IFC->MISR&UDEF_ERR_INT) + 2fe8: 3280 movi r2, 128 + 2fea: 932b ld.w r1, (r3, 0x2c) + 2fec: 4246 lsli r2, r2, 6 + 2fee: 6848 and r1, r2 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0bf9 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&ADDR_ERR_INT) + 2ff4: 3280 movi r2, 128 + 2ff6: 932b ld.w r1, (r3, 0x2c) + 2ff8: 4247 lsli r2, r2, 7 + 2ffa: 6848 and r1, r2 + 2ffc: 3940 cmpnei r1, 0 + 2ffe: 0bf3 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&OVW_ERR_INT) + 3000: 3280 movi r2, 128 + 3002: 932b ld.w r1, (r3, 0x2c) + 3004: 4248 lsli r2, r2, 8 + 3006: 6848 and r1, r2 + 3008: 3940 cmpnei r1, 0 + 300a: 0bed bt 0x2fe4 // 2fe4 + 300c: 07da br 0x2fc0 // 2fc0 + 300e: 0000 bkpt + 3010: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003014 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3014: 1460 nie + 3016: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3018: 1078 lrw r3, 0x20000050 // 3078 + 301a: 3101 movi r1, 1 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9348 ld.w r2, (r3, 0x20) + 3020: 6884 and r2, r1 + 3022: 3a40 cmpnei r2, 0 + 3024: 0c04 bf 0x302c // 302c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3026: 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; + } +} + 3028: 1463 ipop + 302a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 302c: 9348 ld.w r2, (r3, 0x20) + 302e: 3102 movi r1, 2 + 3030: 6884 and r2, r1 + 3032: 3a40 cmpnei r2, 0 + 3034: 0bf9 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3036: 9348 ld.w r2, (r3, 0x20) + 3038: 3104 movi r1, 4 + 303a: 6884 and r2, r1 + 303c: 3a40 cmpnei r2, 0 + 303e: 0bf4 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3040: 9348 ld.w r2, (r3, 0x20) + 3042: 3110 movi r1, 16 + 3044: 6884 and r2, r1 + 3046: 3a40 cmpnei r2, 0 + 3048: 0bef bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 304a: 9348 ld.w r2, (r3, 0x20) + 304c: 3120 movi r1, 32 + 304e: 6884 and r2, r1 + 3050: 3a40 cmpnei r2, 0 + 3052: 0bea bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3054: 9348 ld.w r2, (r3, 0x20) + 3056: 3140 movi r1, 64 + 3058: 6884 and r2, r1 + 305a: 3a40 cmpnei r2, 0 + 305c: 0be5 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 305e: 9348 ld.w r2, (r3, 0x20) + 3060: 3180 movi r1, 128 + 3062: 6884 and r2, r1 + 3064: 3a40 cmpnei r2, 0 + 3066: 0be0 bt 0x3026 // 3026 + 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 + 3068: 3280 movi r2, 128 + 306a: 9328 ld.w r1, (r3, 0x20) + 306c: 4249 lsli r2, r2, 9 + 306e: 6848 and r1, r2 + 3070: 3940 cmpnei r1, 0 + 3072: 0fdb bf 0x3028 // 3028 + ADC0->CSR = ADC12_SEQ_END0; + 3074: b347 st.w r2, (r3, 0x1c) +} + 3076: 07d9 br 0x3028 // 3028 + 3078: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +0000307c : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 307c: 1460 nie + 307e: 1462 ipush + 3080: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3082: 1387 lrw r4, 0x20000020 // 321c + 3084: 3280 movi r2, 128 + 3086: 9460 ld.w r3, (r4, 0x0) + 3088: 60c8 addu r3, r2 + 308a: 9335 ld.w r1, (r3, 0x54) + 308c: 3001 movi r0, 1 + 308e: 6840 and r1, r0 + 3090: 3940 cmpnei r1, 0 + 3092: 0c03 bf 0x3098 // 3098 + 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; + 3094: b317 st.w r0, (r3, 0x5c) + 3096: 0424 br 0x30de // 30de + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3098: 9335 ld.w r1, (r3, 0x54) + 309a: 3002 movi r0, 2 + 309c: 6840 and r1, r0 + 309e: 3940 cmpnei r1, 0 + 30a0: 0bfa bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 30a2: 9335 ld.w r1, (r3, 0x54) + 30a4: 3004 movi r0, 4 + 30a6: 6840 and r1, r0 + 30a8: 3940 cmpnei r1, 0 + 30aa: 0bf5 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 30ac: 9335 ld.w r1, (r3, 0x54) + 30ae: 3008 movi r0, 8 + 30b0: 6840 and r1, r0 + 30b2: 3940 cmpnei r1, 0 + 30b4: 0bf0 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 30b6: 9335 ld.w r1, (r3, 0x54) + 30b8: 3010 movi r0, 16 + 30ba: 6840 and r1, r0 + 30bc: 3940 cmpnei r1, 0 + 30be: 0c1f bf 0x30fc // 30fc + EPT0->ICR=EPT_CAP_LD0; + 30c0: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 30c2: 3200 movi r2, 0 + 30c4: 3101 movi r1, 1 + 30c6: 3000 movi r0, 0 + 30c8: e3fff610 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 30cc: 3201 movi r2, 1 + 30ce: 3101 movi r1, 1 + 30d0: 3001 movi r0, 1 + 30d2: e3fff60b bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 30d6: 9460 ld.w r3, (r4, 0x0) + 30d8: 934b ld.w r2, (r3, 0x2c) + 30da: 1272 lrw r3, 0x20000168 // 3220 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 30dc: 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 + 30de: 9460 ld.w r3, (r4, 0x0) + 30e0: 3280 movi r2, 128 + 30e2: 60c8 addu r3, r2 + 30e4: 932b ld.w r1, (r3, 0x2c) + 30e6: 3001 movi r0, 1 + 30e8: 6840 and r1, r0 + 30ea: 3940 cmpnei r1, 0 + 30ec: 0c61 bf 0x31ae // 31ae + { + 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; + 30ee: 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; + } +} + 30f0: d9ee2001 ld.w r15, (r14, 0x4) + 30f4: 9880 ld.w r4, (r14, 0x0) + 30f6: 1402 addi r14, r14, 8 + 30f8: 1463 ipop + 30fa: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 30fc: 9335 ld.w r1, (r3, 0x54) + 30fe: 3020 movi r0, 32 + 3100: 6840 and r1, r0 + 3102: 3940 cmpnei r1, 0 + 3104: 0c10 bf 0x3124 // 3124 + EPT0->ICR=EPT_CAP_LD1; + 3106: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3108: 3200 movi r2, 0 + 310a: 3101 movi r1, 1 + 310c: 3001 movi r0, 1 + 310e: e3fff5ed bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3112: 3201 movi r2, 1 + 3114: 3101 movi r1, 1 + 3116: 3000 movi r0, 0 + 3118: e3fff5e8 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 311c: 9460 ld.w r3, (r4, 0x0) + 311e: 934c ld.w r2, (r3, 0x30) + 3120: 1261 lrw r3, 0x20000164 // 3224 + 3122: 07dd br 0x30dc // 30dc + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3124: 9335 ld.w r1, (r3, 0x54) + 3126: 3040 movi r0, 64 + 3128: 6840 and r1, r0 + 312a: 3940 cmpnei r1, 0 + 312c: 0bb4 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 312e: 9335 ld.w r1, (r3, 0x54) + 3130: 6848 and r1, r2 + 3132: 3940 cmpnei r1, 0 + 3134: 0c03 bf 0x313a // 313a + EPT0->ICR=EPT_CDD; + 3136: b357 st.w r2, (r3, 0x5c) + 3138: 07d3 br 0x30de // 30de + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 313a: 3280 movi r2, 128 + 313c: 9335 ld.w r1, (r3, 0x54) + 313e: 4241 lsli r2, r2, 1 + 3140: 6848 and r1, r2 + 3142: 3940 cmpnei r1, 0 + 3144: 0bf9 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3146: 3280 movi r2, 128 + 3148: 9335 ld.w r1, (r3, 0x54) + 314a: 4242 lsli r2, r2, 2 + 314c: 6848 and r1, r2 + 314e: 3940 cmpnei r1, 0 + 3150: 0bf3 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3152: 3280 movi r2, 128 + 3154: 9335 ld.w r1, (r3, 0x54) + 3156: 4243 lsli r2, r2, 3 + 3158: 6848 and r1, r2 + 315a: 3940 cmpnei r1, 0 + 315c: 0bed bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 315e: 3280 movi r2, 128 + 3160: 9335 ld.w r1, (r3, 0x54) + 3162: 4244 lsli r2, r2, 4 + 3164: 6848 and r1, r2 + 3166: 3940 cmpnei r1, 0 + 3168: 0be7 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 316a: 3280 movi r2, 128 + 316c: 9335 ld.w r1, (r3, 0x54) + 316e: 4245 lsli r2, r2, 5 + 3170: 6848 and r1, r2 + 3172: 3940 cmpnei r1, 0 + 3174: 0be1 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3176: 3280 movi r2, 128 + 3178: 9335 ld.w r1, (r3, 0x54) + 317a: 4246 lsli r2, r2, 6 + 317c: 6848 and r1, r2 + 317e: 3940 cmpnei r1, 0 + 3180: 0bdb bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3182: 3280 movi r2, 128 + 3184: 9335 ld.w r1, (r3, 0x54) + 3186: 4247 lsli r2, r2, 7 + 3188: 6848 and r1, r2 + 318a: 3940 cmpnei r1, 0 + 318c: 0bd5 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 318e: 3280 movi r2, 128 + 3190: 9335 ld.w r1, (r3, 0x54) + 3192: 4248 lsli r2, r2, 8 + 3194: 6848 and r1, r2 + 3196: 3940 cmpnei r1, 0 + 3198: 0bcf bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 319a: 3280 movi r2, 128 + 319c: 9335 ld.w r1, (r3, 0x54) + 319e: 4249 lsli r2, r2, 9 + 31a0: 6848 and r1, r2 + 31a2: 3940 cmpnei r1, 0 + 31a4: 0f9d bf 0x30de // 30de + EPT0->ICR=EPT_PEND; + 31a6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 31a8: e3fff7ee bsr 0x2184 // 2184 + 31ac: 0799 br 0x30de // 30de + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 31ae: 932b ld.w r1, (r3, 0x2c) + 31b0: 3002 movi r0, 2 + 31b2: 6840 and r1, r0 + 31b4: 3940 cmpnei r1, 0 + 31b6: 0b9c bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 31b8: 932b ld.w r1, (r3, 0x2c) + 31ba: 3004 movi r0, 4 + 31bc: 6840 and r1, r0 + 31be: 3940 cmpnei r1, 0 + 31c0: 0b97 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 31c2: 932b ld.w r1, (r3, 0x2c) + 31c4: 3008 movi r0, 8 + 31c6: 6840 and r1, r0 + 31c8: 3940 cmpnei r1, 0 + 31ca: 0b92 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 31cc: 932b ld.w r1, (r3, 0x2c) + 31ce: 3010 movi r0, 16 + 31d0: 6840 and r1, r0 + 31d2: 3940 cmpnei r1, 0 + 31d4: 0b8d bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 31d6: 932b ld.w r1, (r3, 0x2c) + 31d8: 3020 movi r0, 32 + 31da: 6840 and r1, r0 + 31dc: 3940 cmpnei r1, 0 + 31de: 0b88 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 31e0: 932b ld.w r1, (r3, 0x2c) + 31e2: 3040 movi r0, 64 + 31e4: 6840 and r1, r0 + 31e6: 3940 cmpnei r1, 0 + 31e8: 0b83 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 31ea: 932b ld.w r1, (r3, 0x2c) + 31ec: 6848 and r1, r2 + 31ee: 3940 cmpnei r1, 0 + 31f0: 0c03 bf 0x31f6 // 31f6 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 31f2: b34d st.w r2, (r3, 0x34) +} + 31f4: 077e br 0x30f0 // 30f0 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 31f6: 3280 movi r2, 128 + 31f8: 932b ld.w r1, (r3, 0x2c) + 31fa: 4241 lsli r2, r2, 1 + 31fc: 6848 and r1, r2 + 31fe: 3940 cmpnei r1, 0 + 3200: 0bf9 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3202: 3280 movi r2, 128 + 3204: 932b ld.w r1, (r3, 0x2c) + 3206: 4242 lsli r2, r2, 2 + 3208: 6848 and r1, r2 + 320a: 3940 cmpnei r1, 0 + 320c: 0bf3 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 320e: 3280 movi r2, 128 + 3210: 932b ld.w r1, (r3, 0x2c) + 3212: 4243 lsli r2, r2, 3 + 3214: 6848 and r1, r2 + 3216: 3940 cmpnei r1, 0 + 3218: 0bed bt 0x31f2 // 31f2 + 321a: 076b br 0x30f0 // 30f0 + 321c: 20000020 .long 0x20000020 + 3220: 20000168 .long 0x20000168 + 3224: 20000164 .long 0x20000164 + +Disassembly of section .text.WWDTHandler: + +00003228 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3228: 1460 nie + 322a: 1462 ipush + 322c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 322e: 10ab lrw r5, 0x20000010 // 3258 + 3230: 3401 movi r4, 1 + 3232: 9560 ld.w r3, (r5, 0x0) + 3234: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3236: 30ff movi r0, 255 + 3238: e3fff656 bsr 0x1ee4 // 1ee4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 323c: 9540 ld.w r2, (r5, 0x0) + 323e: 9263 ld.w r3, (r2, 0xc) + 3240: 68d0 and r3, r4 + 3242: 3b40 cmpnei r3, 0 + 3244: 0c02 bf 0x3248 // 3248 + { + WWDT->ICR = WWDT_EVI; + 3246: b285 st.w r4, (r2, 0x14) + } +} + 3248: d9ee2002 ld.w r15, (r14, 0x8) + 324c: 98a1 ld.w r5, (r14, 0x4) + 324e: 9880 ld.w r4, (r14, 0x0) + 3250: 1403 addi r14, r14, 12 + 3252: 1463 ipop + 3254: 1461 nir + 3256: 0000 bkpt + 3258: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +0000325c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 325c: 1460 nie + 325e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3260: 107e lrw r3, 0x20000024 // 32d8 + 3262: 3101 movi r1, 1 + 3264: 9360 ld.w r3, (r3, 0x0) + 3266: 237f addi r3, 128 + 3268: 9355 ld.w r2, (r3, 0x54) + 326a: 6884 and r2, r1 + 326c: 3a40 cmpnei r2, 0 + 326e: 0c04 bf 0x3276 // 3276 + { + 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; + 3270: 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; + } +} + 3272: 1463 ipop + 3274: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3276: 9355 ld.w r2, (r3, 0x54) + 3278: 3102 movi r1, 2 + 327a: 6884 and r2, r1 + 327c: 3a40 cmpnei r2, 0 + 327e: 0bf9 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3280: 9355 ld.w r2, (r3, 0x54) + 3282: 3110 movi r1, 16 + 3284: 6884 and r2, r1 + 3286: 3a40 cmpnei r2, 0 + 3288: 0bf4 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 328a: 9355 ld.w r2, (r3, 0x54) + 328c: 3120 movi r1, 32 + 328e: 6884 and r2, r1 + 3290: 3a40 cmpnei r2, 0 + 3292: 0bef bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3294: 3280 movi r2, 128 + 3296: 9335 ld.w r1, (r3, 0x54) + 3298: 4241 lsli r2, r2, 1 + 329a: 6848 and r1, r2 + 329c: 3940 cmpnei r1, 0 + 329e: 0c03 bf 0x32a4 // 32a4 + GPT0->ICR = GPT_INT_PEND; + 32a0: b357 st.w r2, (r3, 0x5c) +} + 32a2: 07e8 br 0x3272 // 3272 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 32a4: 3280 movi r2, 128 + 32a6: 9335 ld.w r1, (r3, 0x54) + 32a8: 4242 lsli r2, r2, 2 + 32aa: 6848 and r1, r2 + 32ac: 3940 cmpnei r1, 0 + 32ae: 0bf9 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 32b0: 3280 movi r2, 128 + 32b2: 9335 ld.w r1, (r3, 0x54) + 32b4: 4243 lsli r2, r2, 3 + 32b6: 6848 and r1, r2 + 32b8: 3940 cmpnei r1, 0 + 32ba: 0bf3 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 32bc: 3280 movi r2, 128 + 32be: 9335 ld.w r1, (r3, 0x54) + 32c0: 4244 lsli r2, r2, 4 + 32c2: 6848 and r1, r2 + 32c4: 3940 cmpnei r1, 0 + 32c6: 0bed bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 32c8: 3280 movi r2, 128 + 32ca: 9335 ld.w r1, (r3, 0x54) + 32cc: 4249 lsli r2, r2, 9 + 32ce: 6848 and r1, r2 + 32d0: 3940 cmpnei r1, 0 + 32d2: 0be7 bt 0x32a0 // 32a0 + 32d4: 07cf br 0x3272 // 3272 + 32d6: 0000 bkpt + 32d8: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000032dc : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 32dc: 1460 nie + 32de: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 32e0: 1079 lrw r3, 0x20000018 // 3344 + 32e2: 3101 movi r1, 1 + 32e4: 9360 ld.w r3, (r3, 0x0) + 32e6: 934a ld.w r2, (r3, 0x28) + 32e8: 6884 and r2, r1 + 32ea: 3a40 cmpnei r2, 0 + 32ec: 0c14 bf 0x3314 // 3314 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 32ee: 1057 lrw r2, 0xca53 // 3348 + RTC->ICR=ALRA_INT; + 32f0: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 32f2: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 32f4: 9342 ld.w r2, (r3, 0x8) + 32f6: 6c84 or r2, r1 + 32f8: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 32fa: 3280 movi r2, 128 + 32fc: 424d lsli r2, r2, 13 + 32fe: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3300: 3102 movi r1, 2 + 3302: 9342 ld.w r2, (r3, 0x8) + 3304: 6884 and r2, r1 + 3306: 3a40 cmpnei r2, 0 + 3308: 0bfd bt 0x3302 // 3302 + RTC->CR &= ~0x1; + 330a: 9342 ld.w r2, (r3, 0x8) + 330c: 3a80 bclri r2, 0 + 330e: 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; + } +} + 3310: 1463 ipop + 3312: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3314: 934a ld.w r2, (r3, 0x28) + 3316: 3102 movi r1, 2 + 3318: 6884 and r2, r1 + 331a: 3a40 cmpnei r2, 0 + 331c: 0c03 bf 0x3322 // 3322 + RTC->ICR=RTC_TRGEV1_INT; + 331e: b32b st.w r1, (r3, 0x2c) +} + 3320: 07f8 br 0x3310 // 3310 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3322: 934a ld.w r2, (r3, 0x28) + 3324: 3104 movi r1, 4 + 3326: 6884 and r2, r1 + 3328: 3a40 cmpnei r2, 0 + 332a: 0bfa bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 332c: 934a ld.w r2, (r3, 0x28) + 332e: 3108 movi r1, 8 + 3330: 6884 and r2, r1 + 3332: 3a40 cmpnei r2, 0 + 3334: 0bf5 bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3336: 934a ld.w r2, (r3, 0x28) + 3338: 3110 movi r1, 16 + 333a: 6884 and r2, r1 + 333c: 3a40 cmpnei r2, 0 + 333e: 0bf0 bt 0x331e // 331e + 3340: 07e8 br 0x3310 // 3310 + 3342: 0000 bkpt + 3344: 20000018 .long 0x20000018 + 3348: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +0000334c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 334c: 1460 nie + 334e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3350: 106d lrw r3, 0x20000040 // 3384 + 3352: 3102 movi r1, 2 + 3354: 9360 ld.w r3, (r3, 0x0) + 3356: 9343 ld.w r2, (r3, 0xc) + 3358: 6884 and r2, r1 + 335a: 3a40 cmpnei r2, 0 + 335c: 0c03 bf 0x3362 // 3362 + { + 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; + 335e: b323 st.w r1, (r3, 0xc) + } +} + 3360: 0410 br 0x3380 // 3380 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3362: 9343 ld.w r2, (r3, 0xc) + 3364: 3101 movi r1, 1 + 3366: 6884 and r2, r1 + 3368: 3a40 cmpnei r2, 0 + 336a: 0bfa bt 0x335e // 335e + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 336c: 9343 ld.w r2, (r3, 0xc) + 336e: 3108 movi r1, 8 + 3370: 6884 and r2, r1 + 3372: 3a40 cmpnei r2, 0 + 3374: 0bf5 bt 0x335e // 335e + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3376: 9343 ld.w r2, (r3, 0xc) + 3378: 3104 movi r1, 4 + 337a: 6884 and r2, r1 + 337c: 3a40 cmpnei r2, 0 + 337e: 0bf0 bt 0x335e // 335e +} + 3380: 1463 ipop + 3382: 1461 nir + 3384: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003388 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3388: 1460 nie + 338a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 338c: 106d lrw r3, 0x2000003c // 33c0 + 338e: 3102 movi r1, 2 + 3390: 9360 ld.w r3, (r3, 0x0) + 3392: 9343 ld.w r2, (r3, 0xc) + 3394: 6884 and r2, r1 + 3396: 3a40 cmpnei r2, 0 + 3398: 0c03 bf 0x339e // 339e + { + 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; + 339a: b323 st.w r1, (r3, 0xc) + } +} + 339c: 0410 br 0x33bc // 33bc + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 339e: 9343 ld.w r2, (r3, 0xc) + 33a0: 3101 movi r1, 1 + 33a2: 6884 and r2, r1 + 33a4: 3a40 cmpnei r2, 0 + 33a6: 0bfa bt 0x339a // 339a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33a8: 9343 ld.w r2, (r3, 0xc) + 33aa: 3108 movi r1, 8 + 33ac: 6884 and r2, r1 + 33ae: 3a40 cmpnei r2, 0 + 33b0: 0bf5 bt 0x339a // 339a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33b2: 9343 ld.w r2, (r3, 0xc) + 33b4: 3104 movi r1, 4 + 33b6: 6884 and r2, r1 + 33b8: 3a40 cmpnei r2, 0 + 33ba: 0bf0 bt 0x339a // 339a +} + 33bc: 1463 ipop + 33be: 1461 nir + 33c0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +000033c4 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 33c4: 1460 nie + 33c6: 1462 ipush + 33c8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 33ca: 107f lrw r3, 0x20000038 // 3444 + 33cc: 3102 movi r1, 2 + 33ce: 9360 ld.w r3, (r3, 0x0) + 33d0: 9343 ld.w r2, (r3, 0xc) + 33d2: 6884 and r2, r1 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0c0b bf 0x33ec // 33ec + { + UART2->ISR=UART_RX_INT_S; + 33d8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 33da: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 33dc: 7400 zextb r0, r0 + 33de: e00002ef bsr 0x39bc // 39bc + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 33e2: d9ee2000 ld.w r15, (r14, 0x0) + 33e6: 1401 addi r14, r14, 4 + 33e8: 1463 ipop + 33ea: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 33ec: 9323 ld.w r1, (r3, 0xc) + 33ee: 3201 movi r2, 1 + 33f0: 6848 and r1, r2 + 33f2: 3940 cmpnei r1, 0 + 33f4: 0c0d bf 0x340e // 340e + UART2->ISR=UART_TX_INT_S; + 33f6: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 33f8: 1074 lrw r3, 0x200000bc // 3448 + 33fa: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33fc: 1074 lrw r3, 0x200000c0 // 344c + 33fe: 9360 ld.w r3, (r3, 0x0) + 3400: 3b41 cmpnei r3, 1 + 3402: 0bf0 bt 0x33e2 // 33e2 + RS485_Comm_Start ++; + 3404: 1053 lrw r2, 0x200000c4 // 3450 + RS485_Comm_End ++; + 3406: 9260 ld.w r3, (r2, 0x0) + 3408: 2300 addi r3, 1 + 340a: b260 st.w r3, (r2, 0x0) +} + 340c: 07eb br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 340e: 9343 ld.w r2, (r3, 0xc) + 3410: 3108 movi r1, 8 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0c03 bf 0x341c // 341c + UART2->ISR=UART_TX_IOV_S; + 3418: b323 st.w r1, (r3, 0xc) + 341a: 07e4 br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 341c: 9343 ld.w r2, (r3, 0xc) + 341e: 3104 movi r1, 4 + 3420: 6884 and r2, r1 + 3422: 3a40 cmpnei r2, 0 + 3424: 0bfa bt 0x3418 // 3418 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3426: 3180 movi r1, 128 + 3428: 9303 ld.w r0, (r3, 0xc) + 342a: 412c lsli r1, r1, 12 + 342c: 6804 and r0, r1 + 342e: 3840 cmpnei r0, 0 + 3430: 0fd9 bf 0x33e2 // 33e2 + UART2->ISR=UART_TX_DONE_S; + 3432: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3434: 1065 lrw r3, 0x200000bc // 3448 + 3436: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3438: 1065 lrw r3, 0x200000c0 // 344c + 343a: 9360 ld.w r3, (r3, 0x0) + 343c: 3b41 cmpnei r3, 1 + 343e: 0bd2 bt 0x33e2 // 33e2 + RS485_Comm_End ++; + 3440: 1045 lrw r2, 0x200000c8 // 3454 + 3442: 07e2 br 0x3406 // 3406 + 3444: 20000038 .long 0x20000038 + 3448: 200000bc .long 0x200000bc + 344c: 200000c0 .long 0x200000c0 + 3450: 200000c4 .long 0x200000c4 + 3454: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +00003458 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 3458: 1460 nie + 345a: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 345c: 1178 lrw r3, 0x20000034 // 353c + 345e: 3101 movi r1, 1 + 3460: 9360 ld.w r3, (r3, 0x0) + 3462: 9347 ld.w r2, (r3, 0x1c) + 3464: 6884 and r2, r1 + 3466: 3a40 cmpnei r2, 0 + 3468: 0c03 bf 0x346e // 346e + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 346a: b328 st.w r1, (r3, 0x20) + } + +} + 346c: 0407 br 0x347a // 347a + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 346e: 9347 ld.w r2, (r3, 0x1c) + 3470: 3002 movi r0, 2 + 3472: 6880 and r2, r0 + 3474: 3a40 cmpnei r2, 0 + 3476: 0c04 bf 0x347e // 347e + SPI0->ICR = SPI_RTIM; + 3478: b308 st.w r0, (r3, 0x20) +} + 347a: 1463 ipop + 347c: 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 + 347e: 9347 ld.w r2, (r3, 0x1c) + 3480: 3004 movi r0, 4 + 3482: 6880 and r2, r0 + 3484: 3a40 cmpnei r2, 0 + 3486: 0c55 bf 0x3530 // 3530 + SPI0->ICR = SPI_RXIM; + 3488: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 348a: 9302 ld.w r0, (r3, 0x8) + 348c: 32aa movi r2, 170 + 348e: 6482 cmpne r0, r2 + 3490: 083e bt 0x350c // 350c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3492: 3102 movi r1, 2 + 3494: 9343 ld.w r2, (r3, 0xc) + 3496: 6884 and r2, r1 + 3498: 3a40 cmpnei r2, 0 + 349a: 0ffd bf 0x3494 // 3494 + SPI0->DR = 0x11; + 349c: 3211 movi r2, 17 + 349e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34a0: 3110 movi r1, 16 + 34a2: 9343 ld.w r2, (r3, 0xc) + 34a4: 6884 and r2, r1 + 34a6: 3a40 cmpnei r2, 0 + 34a8: 0bfd bt 0x34a2 // 34a2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34aa: 3102 movi r1, 2 + 34ac: 9343 ld.w r2, (r3, 0xc) + 34ae: 6884 and r2, r1 + 34b0: 3a40 cmpnei r2, 0 + 34b2: 0ffd bf 0x34ac // 34ac + SPI0->DR = 0x12; + 34b4: 3212 movi r2, 18 + 34b6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34b8: 3110 movi r1, 16 + 34ba: 9343 ld.w r2, (r3, 0xc) + 34bc: 6884 and r2, r1 + 34be: 3a40 cmpnei r2, 0 + 34c0: 0bfd bt 0x34ba // 34ba + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34c2: 3102 movi r1, 2 + 34c4: 9343 ld.w r2, (r3, 0xc) + 34c6: 6884 and r2, r1 + 34c8: 3a40 cmpnei r2, 0 + 34ca: 0ffd bf 0x34c4 // 34c4 + SPI0->DR = 0x13; + 34cc: 3213 movi r2, 19 + 34ce: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34d0: 3110 movi r1, 16 + 34d2: 9343 ld.w r2, (r3, 0xc) + 34d4: 6884 and r2, r1 + 34d6: 3a40 cmpnei r2, 0 + 34d8: 0bfd bt 0x34d2 // 34d2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34da: 3102 movi r1, 2 + 34dc: 9343 ld.w r2, (r3, 0xc) + 34de: 6884 and r2, r1 + 34e0: 3a40 cmpnei r2, 0 + 34e2: 0ffd bf 0x34dc // 34dc + SPI0->DR = 0x14; + 34e4: 3214 movi r2, 20 + 34e6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34e8: 3110 movi r1, 16 + 34ea: 9343 ld.w r2, (r3, 0xc) + 34ec: 6884 and r2, r1 + 34ee: 3a40 cmpnei r2, 0 + 34f0: 0bfd bt 0x34ea // 34ea + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34f2: 3102 movi r1, 2 + 34f4: 9343 ld.w r2, (r3, 0xc) + 34f6: 6884 and r2, r1 + 34f8: 3a40 cmpnei r2, 0 + 34fa: 0ffd bf 0x34f4 // 34f4 + SPI0->DR = 0x15; + 34fc: 3215 movi r2, 21 + 34fe: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3500: 3110 movi r1, 16 + 3502: 9343 ld.w r2, (r3, 0xc) + 3504: 6884 and r2, r1 + 3506: 3a40 cmpnei r2, 0 + 3508: 0bfd bt 0x3502 // 3502 + 350a: 07b8 br 0x347a // 347a + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 350c: 9343 ld.w r2, (r3, 0xc) + 350e: 6884 and r2, r1 + 3510: 3a40 cmpnei r2, 0 + 3512: 0bb4 bt 0x347a // 347a + SPI0->DR=0x0; //FIFO=0 + 3514: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3516: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3518: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3520: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3522: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3524: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3526: 9343 ld.w r2, (r3, 0xc) + 3528: 6884 and r2, r1 + 352a: 3a40 cmpnei r2, 0 + 352c: 0bfd bt 0x3526 // 3526 + 352e: 07a6 br 0x347a // 347a + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 3530: 9347 ld.w r2, (r3, 0x1c) + 3532: 3108 movi r1, 8 + 3534: 6884 and r2, r1 + 3536: 3a40 cmpnei r2, 0 + 3538: 0b99 bt 0x346a // 346a + 353a: 07a0 br 0x347a // 347a + 353c: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00003540 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 3540: 1460 nie + 3542: 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) + 3544: 1073 lrw r3, 0x2000002c // 3590 + 3546: 3104 movi r1, 4 + 3548: 9360 ld.w r3, (r3, 0x0) + 354a: 9349 ld.w r2, (r3, 0x24) + 354c: 6884 and r2, r1 + 354e: 3a40 cmpnei r2, 0 + 3550: 0c02 bf 0x3554 // 3554 + { + SIO0->ICR=0X04; + 3552: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 3554: 9349 ld.w r2, (r3, 0x24) + 3556: 3101 movi r1, 1 + 3558: 6884 and r2, r1 + 355a: 3a40 cmpnei r2, 0 + 355c: 0c02 bf 0x3560 // 3560 + { + SIO0->ICR=0X01; + 355e: 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 + 3560: 9349 ld.w r2, (r3, 0x24) + 3562: 3102 movi r1, 2 + 3564: 6884 and r2, r1 + 3566: 3a40 cmpnei r2, 0 + 3568: 0c03 bf 0x356e // 356e + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 356a: b32b st.w r1, (r3, 0x2c) + } +} + 356c: 0410 br 0x358c // 358c + else if(SIO0->MISR&0X08) //RXBUFFULL + 356e: 9349 ld.w r2, (r3, 0x24) + 3570: 3108 movi r1, 8 + 3572: 6884 and r2, r1 + 3574: 3a40 cmpnei r2, 0 + 3576: 0bfa bt 0x356a // 356a + else if(SIO0->MISR&0X010) //BREAK + 3578: 9349 ld.w r2, (r3, 0x24) + 357a: 3110 movi r1, 16 + 357c: 6884 and r2, r1 + 357e: 3a40 cmpnei r2, 0 + 3580: 0bf5 bt 0x356a // 356a + else if(SIO0->MISR&0X020) //TIMEOUT + 3582: 9349 ld.w r2, (r3, 0x24) + 3584: 3120 movi r1, 32 + 3586: 6884 and r2, r1 + 3588: 3a40 cmpnei r2, 0 + 358a: 0bf0 bt 0x356a // 356a +} + 358c: 1463 ipop + 358e: 1461 nir + 3590: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003594 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3594: 1460 nie + 3596: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3598: 106a lrw r3, 0x2000005c // 35c0 + 359a: 3101 movi r1, 1 + 359c: 9360 ld.w r3, (r3, 0x0) + 359e: 237f addi r3, 128 + 35a0: 934c ld.w r2, (r3, 0x30) + 35a2: 6884 and r2, r1 + 35a4: 3a40 cmpnei r2, 0 + 35a6: 0c04 bf 0x35ae // 35ae + { + SYSCON->EXICR = EXI_PIN0; + 35a8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 35aa: 1463 ipop + 35ac: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 35ae: 3280 movi r2, 128 + 35b0: 932c ld.w r1, (r3, 0x30) + 35b2: 4249 lsli r2, r2, 9 + 35b4: 6848 and r1, r2 + 35b6: 3940 cmpnei r1, 0 + 35b8: 0ff9 bf 0x35aa // 35aa + SYSCON->EXICR = EXI_PIN16; + 35ba: b34b st.w r2, (r3, 0x2c) +} + 35bc: 07f7 br 0x35aa // 35aa + 35be: 0000 bkpt + 35c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +000035c4 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 35c4: 1460 nie + 35c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 35c8: 106a lrw r3, 0x2000005c // 35f0 + 35ca: 3102 movi r1, 2 + 35cc: 9360 ld.w r3, (r3, 0x0) + 35ce: 237f addi r3, 128 + 35d0: 934c ld.w r2, (r3, 0x30) + 35d2: 6884 and r2, r1 + 35d4: 3a40 cmpnei r2, 0 + 35d6: 0c04 bf 0x35de // 35de + { + SYSCON->EXICR = EXI_PIN1; + 35d8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 35da: 1463 ipop + 35dc: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 35de: 3280 movi r2, 128 + 35e0: 932c ld.w r1, (r3, 0x30) + 35e2: 424a lsli r2, r2, 10 + 35e4: 6848 and r1, r2 + 35e6: 3940 cmpnei r1, 0 + 35e8: 0ff9 bf 0x35da // 35da + SYSCON->EXICR = EXI_PIN17; + 35ea: b34b st.w r2, (r3, 0x2c) +} + 35ec: 07f7 br 0x35da // 35da + 35ee: 0000 bkpt + 35f0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000035f4 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 35f4: 1460 nie + 35f6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 35f8: 1070 lrw r3, 0x2000005c // 3638 + 35fa: 3104 movi r1, 4 + 35fc: 9360 ld.w r3, (r3, 0x0) + 35fe: 237f addi r3, 128 + 3600: 934c ld.w r2, (r3, 0x30) + 3602: 6884 and r2, r1 + 3604: 3a40 cmpnei r2, 0 + 3606: 0c04 bf 0x360e // 360e + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3608: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 360a: 1463 ipop + 360c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 360e: 934c ld.w r2, (r3, 0x30) + 3610: 3108 movi r1, 8 + 3612: 6884 and r2, r1 + 3614: 3a40 cmpnei r2, 0 + 3616: 0bf9 bt 0x3608 // 3608 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3618: 3280 movi r2, 128 + 361a: 932c ld.w r1, (r3, 0x30) + 361c: 424b lsli r2, r2, 11 + 361e: 6848 and r1, r2 + 3620: 3940 cmpnei r1, 0 + 3622: 0c03 bf 0x3628 // 3628 + SYSCON->EXICR = EXI_PIN19; + 3624: b34b st.w r2, (r3, 0x2c) +} + 3626: 07f2 br 0x360a // 360a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3628: 3280 movi r2, 128 + 362a: 932c ld.w r1, (r3, 0x30) + 362c: 424c lsli r2, r2, 12 + 362e: 6848 and r1, r2 + 3630: 3940 cmpnei r1, 0 + 3632: 0bf9 bt 0x3624 // 3624 + 3634: 07eb br 0x360a // 360a + 3636: 0000 bkpt + 3638: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +0000363c : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 363c: 1460 nie + 363e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 3640: 1075 lrw r3, 0x2000005c // 3694 + 3642: 3280 movi r2, 128 + 3644: 9360 ld.w r3, (r3, 0x0) + 3646: 60c8 addu r3, r2 + 3648: 932c ld.w r1, (r3, 0x30) + 364a: 3010 movi r0, 16 + 364c: 6840 and r1, r0 + 364e: 3940 cmpnei r1, 0 + 3650: 0c04 bf 0x3658 // 3658 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 3652: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 3654: 1463 ipop + 3656: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 3658: 932c ld.w r1, (r3, 0x30) + 365a: 3020 movi r0, 32 + 365c: 6840 and r1, r0 + 365e: 3940 cmpnei r1, 0 + 3660: 0bf9 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3662: 932c ld.w r1, (r3, 0x30) + 3664: 3040 movi r0, 64 + 3666: 6840 and r1, r0 + 3668: 3940 cmpnei r1, 0 + 366a: 0bf4 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 366c: 932c ld.w r1, (r3, 0x30) + 366e: 6848 and r1, r2 + 3670: 3940 cmpnei r1, 0 + 3672: 0c03 bf 0x3678 // 3678 + SYSCON->EXICR = EXI_PIN9; + 3674: b34b st.w r2, (r3, 0x2c) +} + 3676: 07ef br 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3678: 3280 movi r2, 128 + 367a: 932c ld.w r1, (r3, 0x30) + 367c: 4241 lsli r2, r2, 1 + 367e: 6848 and r1, r2 + 3680: 3940 cmpnei r1, 0 + 3682: 0bf9 bt 0x3674 // 3674 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3684: 3280 movi r2, 128 + 3686: 932c ld.w r1, (r3, 0x30) + 3688: 4242 lsli r2, r2, 2 + 368a: 6848 and r1, r2 + 368c: 3940 cmpnei r1, 0 + 368e: 0bf3 bt 0x3674 // 3674 + 3690: 07e2 br 0x3654 // 3654 + 3692: 0000 bkpt + 3694: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003698 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3698: 1460 nie + 369a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 369c: 1076 lrw r3, 0x2000005c // 36f4 + 369e: 3280 movi r2, 128 + 36a0: 9360 ld.w r3, (r3, 0x0) + 36a2: 237f addi r3, 128 + 36a4: 932c ld.w r1, (r3, 0x30) + 36a6: 4243 lsli r2, r2, 3 + 36a8: 6848 and r1, r2 + 36aa: 3940 cmpnei r1, 0 + 36ac: 0c03 bf 0x36b2 // 36b2 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 36ae: b34b st.w r2, (r3, 0x2c) + } +} + 36b0: 041f br 0x36ee // 36ee + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 36b2: 3280 movi r2, 128 + 36b4: 932c ld.w r1, (r3, 0x30) + 36b6: 4244 lsli r2, r2, 4 + 36b8: 6848 and r1, r2 + 36ba: 3940 cmpnei r1, 0 + 36bc: 0bf9 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 36be: 3280 movi r2, 128 + 36c0: 932c ld.w r1, (r3, 0x30) + 36c2: 4245 lsli r2, r2, 5 + 36c4: 6848 and r1, r2 + 36c6: 3940 cmpnei r1, 0 + 36c8: 0bf3 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 36ca: 3280 movi r2, 128 + 36cc: 932c ld.w r1, (r3, 0x30) + 36ce: 4246 lsli r2, r2, 6 + 36d0: 6848 and r1, r2 + 36d2: 3940 cmpnei r1, 0 + 36d4: 0bed bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 36d6: 3280 movi r2, 128 + 36d8: 932c ld.w r1, (r3, 0x30) + 36da: 4247 lsli r2, r2, 7 + 36dc: 6848 and r1, r2 + 36de: 3940 cmpnei r1, 0 + 36e0: 0be7 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 36e2: 3280 movi r2, 128 + 36e4: 932c ld.w r1, (r3, 0x30) + 36e6: 4248 lsli r2, r2, 8 + 36e8: 6848 and r1, r2 + 36ea: 3940 cmpnei r1, 0 + 36ec: 0be1 bt 0x36ae // 36ae +} + 36ee: 1463 ipop + 36f0: 1461 nir + 36f2: 0000 bkpt + 36f4: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000036f8 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 36f8: 1460 nie + 36fa: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 36fc: 106b lrw r3, 0x20000014 // 3728 + 36fe: 3101 movi r1, 1 + 3700: 9360 ld.w r3, (r3, 0x0) + 3702: 934e ld.w r2, (r3, 0x38) + 3704: 6884 and r2, r1 + 3706: 3a40 cmpnei r2, 0 + 3708: 0c03 bf 0x370e // 370e + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 370a: b330 st.w r1, (r3, 0x40) + } +} + 370c: 040b br 0x3722 // 3722 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 370e: 934e ld.w r2, (r3, 0x38) + 3710: 3102 movi r1, 2 + 3712: 6884 and r2, r1 + 3714: 3a40 cmpnei r2, 0 + 3716: 0bfa bt 0x370a // 370a + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3718: 934e ld.w r2, (r3, 0x38) + 371a: 3104 movi r1, 4 + 371c: 6884 and r2, r1 + 371e: 3a40 cmpnei r2, 0 + 3720: 0bf5 bt 0x370a // 370a +} + 3722: 1463 ipop + 3724: 1461 nir + 3726: 0000 bkpt + 3728: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +0000372c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 372c: 1460 nie + 372e: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3730: 1071 lrw r3, 0x2000000c // 3774 + 3732: 3101 movi r1, 1 + 3734: 9360 ld.w r3, (r3, 0x0) + 3736: 934c ld.w r2, (r3, 0x30) + 3738: 6884 and r2, r1 + 373a: 3a40 cmpnei r2, 0 + 373c: 0c0a bf 0x3750 // 3750 + { + BT0->ICR = BT_PEND; + 373e: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3740: 9341 ld.w r2, (r3, 0x4) + 3742: 3a86 bclri r2, 6 + 3744: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3746: 9340 ld.w r2, (r3, 0x0) + 3748: 3200 movi r2, 0 + 374a: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 374c: 1463 ipop + 374e: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3750: 934c ld.w r2, (r3, 0x30) + 3752: 3102 movi r1, 2 + 3754: 6884 and r2, r1 + 3756: 3a40 cmpnei r2, 0 + 3758: 0c03 bf 0x375e // 375e + BT0->ICR = BT_EVTRG; + 375a: b32d st.w r1, (r3, 0x34) +} + 375c: 07f8 br 0x374c // 374c + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 375e: 934c ld.w r2, (r3, 0x30) + 3760: 3104 movi r1, 4 + 3762: 6884 and r2, r1 + 3764: 3a40 cmpnei r2, 0 + 3766: 0bfa bt 0x375a // 375a + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3768: 934c ld.w r2, (r3, 0x30) + 376a: 3108 movi r1, 8 + 376c: 6884 and r2, r1 + 376e: 3a40 cmpnei r2, 0 + 3770: 0bf5 bt 0x375a // 375a + 3772: 07ed br 0x374c // 374c + 3774: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003778 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3778: 1460 nie + 377a: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 377c: 1076 lrw r3, 0x20000008 // 37d4 + 377e: 3101 movi r1, 1 + 3780: 9360 ld.w r3, (r3, 0x0) + 3782: 934c ld.w r2, (r3, 0x30) + 3784: 6884 and r2, r1 + 3786: 3a40 cmpnei r2, 0 + 3788: 0c03 bf 0x378e // 378e + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 378a: b32d st.w r1, (r3, 0x34) + } +} + 378c: 0416 br 0x37b8 // 37b8 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 378e: 934c ld.w r2, (r3, 0x30) + 3790: 3102 movi r1, 2 + 3792: 6884 and r2, r1 + 3794: 3a40 cmpnei r2, 0 + 3796: 0c13 bf 0x37bc // 37bc + BT1->ICR = BT_CMP; + 3798: b32d st.w r1, (r3, 0x34) + NUM++; + 379a: 1070 lrw r3, 0x200000b0 // 37d8 + 379c: 8340 ld.b r2, (r3, 0x0) + 379e: 2200 addi r2, 1 + 37a0: 7488 zextb r2, r2 + SysTick_100us++; + 37a2: 9321 ld.w r1, (r3, 0x4) + 37a4: 2100 addi r1, 1 + if(NUM >= 10){ + 37a6: 3a09 cmphsi r2, 10 + NUM++; + 37a8: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 37aa: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 37ac: 0c06 bf 0x37b8 // 37b8 + NUM = 0; + 37ae: 3200 movi r2, 0 + 37b0: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 37b2: 9342 ld.w r2, (r3, 0x8) + 37b4: 2200 addi r2, 1 + 37b6: b342 st.w r2, (r3, 0x8) +} + 37b8: 1463 ipop + 37ba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 37bc: 934c ld.w r2, (r3, 0x30) + 37be: 3104 movi r1, 4 + 37c0: 6884 and r2, r1 + 37c2: 3a40 cmpnei r2, 0 + 37c4: 0be3 bt 0x378a // 378a + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 37c6: 934c ld.w r2, (r3, 0x30) + 37c8: 3108 movi r1, 8 + 37ca: 6884 and r2, r1 + 37cc: 3a40 cmpnei r2, 0 + 37ce: 0bde bt 0x378a // 378a + 37d0: 07f4 br 0x37b8 // 37b8 + 37d2: 0000 bkpt + 37d4: 20000008 .long 0x20000008 + 37d8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +000037dc : + 37dc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000037de : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 37de: 1460 nie + 37e0: 1462 ipush + // ISR content ... + +} + 37e2: 1463 ipop + 37e4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000037e6 : + 37e6: 1460 nie + 37e8: 1462 ipush + 37ea: 1463 ipop + 37ec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000037ee : + 37ee: 1460 nie + 37f0: 1462 ipush + 37f2: 1463 ipop + 37f4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000037f6 : + 37f6: 1460 nie + 37f8: 1462 ipush + 37fa: 1463 ipop + 37fc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000037fe : + 37fe: 1460 nie + 3800: 1462 ipush + 3802: 1463 ipop + 3804: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003806 : + 3806: 1460 nie + 3808: 1462 ipush + 380a: 1463 ipop + 380c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000380e : + 380e: 1460 nie + 3810: 1462 ipush + 3812: 1463 ipop + 3814: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003816 : + 3816: 1460 nie + 3818: 1462 ipush + 381a: 1463 ipop + 381c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000381e : + 381e: 1460 nie + 3820: 1462 ipush + 3822: 1463 ipop + 3824: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003826 : + 3826: 1460 nie + 3828: 1462 ipush + 382a: 1463 ipop + 382c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000382e : + 382e: 1460 nie + 3830: 1462 ipush + 3832: 1463 ipop + 3834: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003836 : + 3836: 1460 nie + 3838: 1462 ipush + 383a: 1463 ipop + 383c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003840 <__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) +{ + 3840: 14c1 push r4 + int PSR; + __asm volatile( + 3842: c0006023 mfcr r3, cr<0, 0> + 3846: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 384a: 1046 lrw r2, 0x20000000 // 3860 <__divsi3+0x20> + 384c: 3400 movi r4, 0 + 384e: 9240 ld.w r2, (r2, 0x0) + 3850: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3852: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3854: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3856: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3858: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 385c: 9202 ld.w r0, (r2, 0x8) +} + 385e: 1481 pop r4 + 3860: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003864 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3864: 14c1 push r4 + int PSR; + __asm volatile( + 3866: c0006023 mfcr r3, cr<0, 0> + 386a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 386e: 1046 lrw r2, 0x20000000 // 3884 <__udivsi3+0x20> + 3870: 3401 movi r4, 1 + 3872: 9240 ld.w r2, (r2, 0x0) + 3874: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3876: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3878: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 387a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 387c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3880: 9202 ld.w r0, (r2, 0x8) +} + 3882: 1481 pop r4 + 3884: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003888 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3888: 14c1 push r4 + int PSR; + __asm volatile( + 388a: c0006023 mfcr r3, cr<0, 0> + 388e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3892: 1046 lrw r2, 0x20000000 // 38a8 <__umodsi3+0x20> + 3894: 3401 movi r4, 1 + 3896: 9240 ld.w r2, (r2, 0x0) + 3898: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 389a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 389c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 389e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 38a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 38a4: 9203 ld.w r0, (r2, 0xc) +} + 38a6: 1481 pop r4 + 38a8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000038ac : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 38ac: c1807420 psrset ee, ie +} + 38b0: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000038b4 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b4: 14d2 push r4-r5, r15 + switch(uart_id){ + 38b6: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b8: 6d07 mov r4, r1 + switch(uart_id){ + 38ba: 0c32 bf 0x391e // 391e + 38bc: 3840 cmpnei r0, 0 + 38be: 0c04 bf 0x38c6 // 38c6 + 38c0: 3842 cmpnei r0, 2 + 38c2: 0c51 bf 0x3964 // 3964 +// GPIO_DriveStrength_EN(GPIOA0,1); +// GPIO_Write_Low(GPIOA0,1); + + break; + } +} + 38c4: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 38c6: e3fff365 bsr 0x1f90 // 1f90 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 38ca: 3100 movi r1, 0 + 38cc: 3000 movi r0, 0 + 38ce: e3fff3a1 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 38d2: 1170 lrw r3, 0x20000040 // 3990 + 38d4: 3200 movi r2, 0 + 38d6: 9300 ld.w r0, (r3, 0x0) + 38d8: 112f lrw r1, 0x1388 // 3994 + 38da: e3fff419 bsr 0x210c // 210c + UART0_Int_Enable(); + 38de: e3fff37d bsr 0x1fd8 // 1fd8 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 38e2: 3273 movi r2, 115 + 38e4: 3100 movi r1, 0 + 38e6: 110d lrw r0, 0x20000194 // 3998 + 38e8: e3fff03e bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 38ec: 116c lrw r3, 0x200001fb // 399c + 38ee: 3203 movi r2, 3 + 38f0: a340 st.b r2, (r3, 0x0) + g_uart[UART_0].processing_cf = prt_cf; + 38f2: 4c48 lsri r2, r4, 8 + 38f4: a388 st.b r4, (r3, 0x8) + 38f6: a349 st.b r2, (r3, 0x9) + 38f8: 4c50 lsri r2, r4, 16 + 38fa: 4c98 lsri r4, r4, 24 + 38fc: a38b st.b r4, (r3, 0xb) + 38fe: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOA0,3,Output); + 3900: 3103 movi r1, 3 + 3902: 1188 lrw r4, 0x2000004c // 39a0 + 3904: 3200 movi r2, 0 + 3906: 9400 ld.w r0, (r4, 0x0) + 3908: e3fff240 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,3); + 390c: 9400 ld.w r0, (r4, 0x0) + 390e: 3103 movi r1, 3 + 3910: e3fff2bd bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,3); + 3914: 9400 ld.w r0, (r4, 0x0) + 3916: 3103 movi r1, 3 + 3918: e3fff2c4 bsr 0x1ea0 // 1ea0 + break; + 391c: 07d4 br 0x38c4 // 38c4 + UART1_DeInit(); //clear all UART Register + 391e: e3fff345 bsr 0x1fa8 // 1fa8 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3922: 3102 movi r1, 2 + 3924: 3001 movi r0, 1 + 3926: e3fff375 bsr 0x2010 // 2010 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 392a: 10bf lrw r5, 0x2000003c // 39a4 + 392c: 31d0 movi r1, 208 + 392e: 3200 movi r2, 0 + 3930: 4121 lsli r1, r1, 1 + 3932: 9500 ld.w r0, (r5, 0x0) + 3934: e3fff3e4 bsr 0x20fc // 20fc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3938: 31d0 movi r1, 208 + 393a: 9500 ld.w r0, (r5, 0x0) + 393c: 3200 movi r2, 0 + 393e: 4121 lsli r1, r1, 1 + 3940: e3fff3e6 bsr 0x210c // 210c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3944: 3273 movi r2, 115 + 3946: 3100 movi r1, 0 + 3948: 1018 lrw r0, 0x20000207 // 39a8 + 394a: e3fff00d bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 394e: 1078 lrw r3, 0x2000026e // 39ac + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3950: 3203 movi r2, 3 + 3952: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].processing_cf = prt_cf; + 3954: 4c48 lsri r2, r4, 8 + 3956: a388 st.b r4, (r3, 0x8) + 3958: a349 st.b r2, (r3, 0x9) + 395a: 4c50 lsri r2, r4, 16 + 395c: 4c98 lsri r4, r4, 24 + 395e: a34a st.b r2, (r3, 0xa) + 3960: a38b st.b r4, (r3, 0xb) +} + 3962: 07b1 br 0x38c4 // 38c4 + UART2_DeInit(); //clear all UART Register + 3964: e3fff32e bsr 0x1fc0 // 1fc0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3968: 3102 movi r1, 2 + 396a: 3002 movi r0, 2 + 396c: e3fff352 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3970: 1070 lrw r3, 0x20000038 // 39b0 + 3972: 3200 movi r2, 0 + 3974: 9300 ld.w r0, (r3, 0x0) + 3976: 1028 lrw r1, 0x1388 // 3994 + 3978: e3fff3ca bsr 0x210c // 210c + UART2_Int_Enable(); + 397c: e3fff33c bsr 0x1ff4 // 1ff4 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3980: 3273 movi r2, 115 + 3982: 3100 movi r1, 0 + 3984: 100c lrw r0, 0x2000027a // 39b4 + 3986: e3ffefef bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 398a: 106c lrw r3, 0x200002e1 // 39b8 + 398c: 07e2 br 0x3950 // 3950 + 398e: 0000 bkpt + 3990: 20000040 .long 0x20000040 + 3994: 00001388 .long 0x00001388 + 3998: 20000194 .long 0x20000194 + 399c: 200001fb .long 0x200001fb + 39a0: 2000004c .long 0x2000004c + 39a4: 2000003c .long 0x2000003c + 39a8: 20000207 .long 0x20000207 + 39ac: 2000026e .long 0x2000026e + 39b0: 20000038 .long 0x20000038 + 39b4: 2000027a .long 0x2000027a + 39b8: 200002e1 .long 0x200002e1 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000039bc : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 39bc: 14d2 push r4-r5, r15 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 39be: 1057 lrw r2, 0x200002df // 3a18 + 39c0: 5a22 addi r1, r2, 1 + 39c2: 8160 ld.b r3, (r1, 0x0) + 39c4: 8280 ld.b r4, (r2, 0x0) + 39c6: 4368 lsli r3, r3, 8 + 39c8: 6cd0 or r3, r4 + 39ca: 3462 movi r4, 98 + 39cc: 64d1 cmplt r4, r3 + 39ce: 0c04 bf 0x39d6 // 39d6 + 39d0: 3300 movi r3, 0 + 39d2: a260 st.b r3, (r2, 0x0) + 39d4: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39d6: 8160 ld.b r3, (r1, 0x0) + 39d8: 82a0 ld.b r5, (r2, 0x0) + 39da: 4368 lsli r3, r3, 8 + 39dc: 6cd4 or r3, r5 + 39de: 1090 lrw r4, 0x20000194 // 3a1c + 39e0: 5b22 addi r1, r3, 1 + 39e2: 7445 zexth r1, r1 + 39e4: 60d0 addu r3, r4 + 39e6: a220 st.b r1, (r2, 0x0) + 39e8: 23e5 addi r3, 230 + 39ea: 4928 lsri r1, r1, 8 + 39ec: a221 st.b r1, (r2, 0x1) + 39ee: a300 st.b r0, (r3, 0x0) + + uart_receive_input((U8_T)data); + 39f0: e000128c bsr 0x5f08 // 5f08 + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39f4: 106b lrw r3, 0x200000b8 // 3a20 + 39f6: 104c lrw r2, 0x151 // 3a24 + 39f8: 9360 ld.w r3, (r3, 0x0) + 39fa: 6090 addu r2, r4 + 39fc: 4b28 lsri r1, r3, 8 + 39fe: a260 st.b r3, (r2, 0x0) + 3a00: a221 st.b r1, (r2, 0x1) + 3a02: 4b30 lsri r1, r3, 16 + 3a04: 4b78 lsri r3, r3, 24 + 3a06: a263 st.b r3, (r2, 0x3) + g_uart[UART_2].Receiving = 0x01; + 3a08: 33a5 movi r3, 165 + 3a0a: 4361 lsli r3, r3, 1 + 3a0c: 610c addu r4, r3 + 3a0e: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a10: a222 st.b r1, (r2, 0x2) + g_uart[UART_2].Receiving = 0x01; + 3a12: a460 st.b r3, (r4, 0x0) +} + 3a14: 1492 pop r4-r5, r15 + 3a16: 0000 bkpt + 3a18: 200002df .long 0x200002df + 3a1c: 20000194 .long 0x20000194 + 3a20: 200000b8 .long 0x200000b8 + 3a24: 00000151 .long 0x00000151 + +Disassembly of section .text.UART2_TASK: + +00003a28 : + + +void UART2_TASK(void){ + 3a28: 14d3 push r4-r6, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3a2a: 1184 lrw r4, 0x200002de // 3ab8 + 3a2c: 8460 ld.b r3, (r4, 0x0) + 3a2e: 3b41 cmpnei r3, 1 + 3a30: 0843 bt 0x3ab6 // 3ab6 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3a32: 8428 ld.b r1, (r4, 0x8) + 3a34: 8467 ld.b r3, (r4, 0x7) + 3a36: 4128 lsli r1, r1, 8 + 3a38: 6c4c or r1, r3 + 3a3a: 8469 ld.b r3, (r4, 0x9) + 3a3c: 4370 lsli r3, r3, 16 + 3a3e: 6c4c or r1, r3 + 3a40: 846a ld.b r3, (r4, 0xa) + 3a42: 10bf lrw r5, 0x200000b8 // 3abc + 3a44: 4378 lsli r3, r3, 24 + 3a46: 6cc4 or r3, r1 + 3a48: 9500 ld.w r0, (r5, 0x0) + 3a4a: 8424 ld.b r1, (r4, 0x4) + 3a4c: 600e subu r0, r3 + 3a4e: 4128 lsli r1, r1, 8 + 3a50: 8463 ld.b r3, (r4, 0x3) + 3a52: 6c4c or r1, r3 + 3a54: 8465 ld.b r3, (r4, 0x5) + 3a56: 4370 lsli r3, r3, 16 + 3a58: 6c4c or r1, r3 + 3a5a: 8466 ld.b r3, (r4, 0x6) + 3a5c: 4378 lsli r3, r3, 24 + 3a5e: 6cc4 or r3, r1 + 3a60: 640c cmphs r3, r0 + 3a62: 082a bt 0x3ab6 // 3ab6 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a64: 9560 ld.w r3, (r5, 0x0) + 3a66: 4b28 lsri r1, r3, 8 + 3a68: a467 st.b r3, (r4, 0x7) + 3a6a: a428 st.b r1, (r4, 0x8) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", g_uart[UART_2].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3a6c: 844c ld.b r2, (r4, 0xc) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a6e: 4b30 lsri r1, r3, 16 + 3a70: 4b78 lsri r3, r3, 24 + 3a72: a46a st.b r3, (r4, 0xa) + if(g_uart[UART_2].processing_cf != NULL){ + 3a74: 4248 lsli r2, r2, 8 + 3a76: 846b ld.b r3, (r4, 0xb) + 3a78: 6c8c or r2, r3 + 3a7a: 846d ld.b r3, (r4, 0xd) + 3a7c: 4370 lsli r3, r3, 16 + 3a7e: 6c8c or r2, r3 + 3a80: 846e ld.b r3, (r4, 0xe) + 3a82: 4378 lsli r3, r3, 24 + 3a84: 6cc8 or r3, r2 + 3a86: 3b40 cmpnei r3, 0 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a88: a429 st.b r1, (r4, 0x9) + 3a8a: 5ca2 addi r5, r4, 1 + if(g_uart[UART_2].processing_cf != NULL){ + 3a8c: 0c11 bf 0x3aae // 3aae + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a8e: 8422 ld.b r1, (r4, 0x2) + 3a90: 8540 ld.b r2, (r5, 0x0) + 3a92: 4128 lsli r1, r1, 8 + 3a94: 6c48 or r1, r2 + 3a96: 100b lrw r0, 0x2000027a // 3ac0 + 3a98: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3a9a: 3841 cmpnei r0, 1 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a9c: 5cc6 addi r6, r4, 2 + if(rev == 0x01){ + 3a9e: 0808 bt 0x3aae // 3aae + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3aa0: 8422 ld.b r1, (r4, 0x2) + 3aa2: 8560 ld.b r3, (r5, 0x0) + 3aa4: 4128 lsli r1, r1, 8 + 3aa6: 6c4c or r1, r3 + 3aa8: 1006 lrw r0, 0x2000027a // 3ac0 + 3aaa: e00003db bsr 0x4260 // 4260 + } + + g_uart[UART_2].RecvLen = 0; + 3aae: 3300 movi r3, 0 + 3ab0: a560 st.b r3, (r5, 0x0) + 3ab2: a561 st.b r3, (r5, 0x1) + g_uart[UART_2].Receiving = 0; + 3ab4: a460 st.b r3, (r4, 0x0) + } + } +} + 3ab6: 1493 pop r4-r6, r15 + 3ab8: 200002de .long 0x200002de + 3abc: 200000b8 .long 0x200000b8 + 3ac0: 2000027a .long 0x2000027a + +Disassembly of section .text.MCU485_SendData: + +00003ac4 : + }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){ + 3ac4: 14d4 push r4-r7, r15 + 3ac6: 1421 subi r14, r14, 4 + 3ac8: b800 st.w r0, (r14, 0x0) + 3aca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3acc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3ace: 109d lrw r4, 0x200000bc // 3b40 + 3ad0: 10dd lrw r6, 0x2000004c // 3b44 + 3ad2: 9460 ld.w r3, (r4, 0x0) + 3ad4: 3b41 cmpnei r3, 1 + 3ad6: 0c29 bf 0x3b28 // 3b28 + } + + GPIO_Reverse(GPIOA0,1); + } + + delay_nus(500); + 3ad8: 30fa movi r0, 250 + 3ada: 4001 lsli r0, r0, 1 + 3adc: e3fff908 bsr 0x2cec // 2cec + GPIO_Write_High(GPIOA0,1); + 3ae0: 3101 movi r1, 1 + 3ae2: 9600 ld.w r0, (r6, 0x0) + 3ae4: e3fff1da bsr 0x1e98 // 1e98 + + RS485_Comm_Flag = 0x01; + 3ae8: 3301 movi r3, 1 + 3aea: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 3aec: 3300 movi r3, 0 + 3aee: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 3af0: b463 st.w r3, (r4, 0xc) + + UARTTransmit(UART2,buff,len); + 3af2: 6c9f mov r2, r7 + 3af4: 1075 lrw r3, 0x20000038 // 3b48 + 3af6: 9300 ld.w r0, (r3, 0x0) + 3af8: 9820 ld.w r1, (r14, 0x0) + 3afa: e3fff311 bsr 0x211c // 211c + + do{ + delay_nus(100); + 3afe: 3064 movi r0, 100 + 3b00: e3fff8f6 bsr 0x2cec // 2cec + + delay_cnt ++; + 3b04: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b06: 3363 movi r3, 99 + 3b08: 654c cmphs r3, r5 + 3b0a: 0c07 bf 0x3b18 // 3b18 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3b0c: 9462 ld.w r3, (r4, 0x8) + 3b0e: 65cd cmplt r3, r7 + 3b10: 0bf7 bt 0x3afe // 3afe + 3b12: 9463 ld.w r3, (r4, 0xc) + 3b14: 65cd cmplt r3, r7 + 3b16: 0bf4 bt 0x3afe // 3afe + + GPIO_Write_Low(GPIOA0,1); + 3b18: 9600 ld.w r0, (r6, 0x0) + 3b1a: 3101 movi r1, 1 + 3b1c: e3fff1c2 bsr 0x1ea0 // 1ea0 + + RS485_Comm_Flag = 0x00; + 3b20: 3300 movi r3, 0 + 3b22: b461 st.w r3, (r4, 0x4) +} + 3b24: 1401 addi r14, r14, 4 + 3b26: 1494 pop r4-r7, r15 + delay_nus(100); + 3b28: 3064 movi r0, 100 + 3b2a: e3fff8e1 bsr 0x2cec // 2cec + delay_cnt ++; + 3b2e: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b30: 3364 movi r3, 100 + 3b32: 64d6 cmpne r5, r3 + 3b34: 0fd2 bf 0x3ad8 // 3ad8 + GPIO_Reverse(GPIOA0,1); + 3b36: 3101 movi r1, 1 + 3b38: 9600 ld.w r0, (r6, 0x0) + 3b3a: e3fff1b7 bsr 0x1ea8 // 1ea8 + 3b3e: 07ca br 0x3ad2 // 3ad2 + 3b40: 200000bc .long 0x200000bc + 3b44: 2000004c .long 0x2000004c + 3b48: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003b4c : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3b4c: 1423 subi r14, r14, 12 + 3b4e: b862 st.w r3, (r14, 0x8) + 3b50: b841 st.w r2, (r14, 0x4) + 3b52: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3b54: 1403 addi r14, r14, 12 + 3b56: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003b58 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3b58: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003b5c : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 3b5c: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3b5e: 3230 movi r2, 48 + 3b60: 3100 movi r1, 0 + 3b62: 1017 lrw r0, 0x20000320 // 3bbc + 3b64: e3ffef00 bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + 3b68: 3214 movi r2, 20 + 3b6a: 3100 movi r1, 0 + 3b6c: 1015 lrw r0, 0x2000030c // 3bc0 + 3b6e: e3ffeefb bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3b72: 321c movi r2, 28 + 3b74: 3100 movi r1, 0 + 3b76: 1014 lrw r0, 0x200002f0 // 3bc4 + 3b78: e3ffeef6 bsr 0x1964 // 1964 <__memset_fast> + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b7c: 1093 lrw r4, 0x20000350 // 3bc8 + EEPROM_Init(); //按键库初始化前先读取参数 + 3b7e: e0000489 bsr 0x4490 // 4490 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b82: 8405 ld.b r0, (r4, 0x5) + 3b84: 1030 lrw r1, 0x200002f0 // 3bc4 + 3b86: e00004e3 bsr 0x454c // 454c + if(rev == 0x00){ + 3b8a: 3840 cmpnei r0, 0 + 3b8c: 080e bt 0x3ba8 // 3ba8 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3b8e: 8405 ld.b r0, (r4, 0x5) + 3b90: 102d lrw r1, 0x200002f0 // 3bc4 + 3b92: e0000533 bsr 0x45f8 // 45f8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3b96: 100c lrw r0, 0x200002f0 // 3bc4 + 3b98: e00005a4 bsr 0x46e0 // 46e0 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3b9c: e0001be4 bsr 0x7364 // 7364 + + base_update_f = 0x01; //触摸状态强制更新 + 3ba0: 106b lrw r3, 0x20000743 // 3bcc + 3ba2: 3201 movi r2, 1 + 3ba4: a340 st.b r2, (r3, 0x0) + +} + 3ba6: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3ba8: 102a lrw r1, 0x7c2e // 3bd0 + 3baa: 3000 movi r0, 0 + 3bac: e3ffffd0 bsr 0x3b4c // 3b4c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3bb0: 8405 ld.b r0, (r4, 0x5) + 3bb2: 1025 lrw r1, 0x200002f0 // 3bc4 + 3bb4: e0000576 bsr 0x46a0 // 46a0 + 3bb8: 07ef br 0x3b96 // 3b96 + 3bba: 0000 bkpt + 3bbc: 20000320 .long 0x20000320 + 3bc0: 2000030c .long 0x2000030c + 3bc4: 200002f0 .long 0x200002f0 + 3bc8: 20000350 .long 0x20000350 + 3bcc: 20000743 .long 0x20000743 + 3bd0: 00007c2e .long 0x00007c2e + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003bd4 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3bd4: 14d3 push r4-r6, r15 + 3bd6: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3bd8: 1289 lrw r4, 0x20000068 // 3cfc + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bda: 8400 ld.b r0, (r4, 0x0) + 3bdc: 1229 lrw r1, 0x2000088e // 3d00 + 3bde: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3be0: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3be2: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3be4: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3be8: 330a movi r3, 10 + 3bea: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bee: 8a60 ld.h r3, (r2, 0x0) + 3bf0: 4b68 lsri r3, r3, 8 + 3bf2: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bf6: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3bf8: 1243 lrw r2, 0x200008d2 // 3d04 + 3bfa: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bfc: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c00: 8d60 ld.h r3, (r5, 0x0) + 3c02: 4b68 lsri r3, r3, 8 + 3c04: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c08: 8d60 ld.h r3, (r5, 0x0) + 3c0a: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c0e: 117f lrw r3, 0x2000062c // 3d08 + 3c10: 600c addu r0, r3 + 3c12: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c14: 8800 ld.h r0, (r0, 0x0) + 3c16: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c1a: 8401 ld.b r0, (r4, 0x1) + 3c1c: 4001 lsli r0, r0, 1 + 3c1e: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c20: 4da8 lsri r5, r5, 8 + 3c22: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c26: 8ea0 ld.h r5, (r6, 0x0) + 3c28: 4da8 lsri r5, r5, 8 + 3c2a: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c2e: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c30: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c32: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c36: 8ea0 ld.h r5, (r6, 0x0) + 3c38: 4da8 lsri r5, r5, 8 + 3c3a: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c3e: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c40: 8ea0 ld.h r5, (r6, 0x0) + 3c42: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c46: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c48: 8800 ld.h r0, (r0, 0x0) + 3c4a: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c4e: 8402 ld.b r0, (r4, 0x2) + 3c50: 4001 lsli r0, r0, 1 + 3c52: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c54: 4da8 lsri r5, r5, 8 + 3c56: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c5a: 8ea0 ld.h r5, (r6, 0x0) + 3c5c: 4da8 lsri r5, r5, 8 + 3c5e: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c62: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c64: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c66: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c6a: 8ea0 ld.h r5, (r6, 0x0) + 3c6c: 4da8 lsri r5, r5, 8 + 3c6e: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c72: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c74: 8ea0 ld.h r5, (r6, 0x0) + 3c76: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c7a: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c7c: 8800 ld.h r0, (r0, 0x0) + 3c7e: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c82: 8403 ld.b r0, (r4, 0x3) + 3c84: 4001 lsli r0, r0, 1 + 3c86: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c88: 4da8 lsri r5, r5, 8 + 3c8a: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c8e: 8ea0 ld.h r5, (r6, 0x0) + 3c90: 4da8 lsri r5, r5, 8 + 3c92: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c96: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c98: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c9a: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c9e: 8ea0 ld.h r5, (r6, 0x0) + 3ca0: 4da8 lsri r5, r5, 8 + 3ca2: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3ca6: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3ca8: 8ea0 ld.h r5, (r6, 0x0) + 3caa: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cae: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cb0: 8800 ld.h r0, (r0, 0x0) + 3cb2: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cb6: 8404 ld.b r0, (r4, 0x4) + 3cb8: 4001 lsli r0, r0, 1 + 3cba: 6040 addu r1, r0 + 3cbc: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3cbe: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3cc0: 8920 ld.h r1, (r1, 0x0) + 3cc2: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cc6: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cc8: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cca: 8a40 ld.h r2, (r2, 0x0) + 3ccc: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd0: 8b40 ld.h r2, (r3, 0x0) + 3cd2: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd4: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cd6: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cd8: 4928 lsri r1, r1, 8 + 3cda: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cde: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3ce2: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ce6: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3cea: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cec: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3cee: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cf0: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3cf4: e3fffee8 bsr 0x3ac4 // 3ac4 +// UARTTransmit(UART2,send_buff,send_len); + +} + 3cf8: 140d addi r14, r14, 52 + 3cfa: 1493 pop r4-r6, r15 + 3cfc: 20000068 .long 0x20000068 + 3d00: 2000088e .long 0x2000088e + 3d04: 200008d2 .long 0x200008d2 + 3d08: 2000062c .long 0x2000062c + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003d0c : +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3d0c: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3d0e: 3804 cmphsi r0, 5 + 3d10: 0818 bt 0x3d40 // 3d40 + 3d12: 106d lrw r3, 0x20000320 // 3d44 + 3d14: e3ffe7f4 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3d18: 0e0b0803 .long 0x0e0b0803 + 3d1c: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3d1e: 9309 ld.w r0, (r3, 0x24) + 3d20: 4809 lsri r0, r0, 9 + if(g_key.key_state & 0x1000){ + state = 0x01; + } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3d22: 3301 movi r3, 1 + U8_T state = 0; + 3d24: 680c and r0, r3 + } + break; + } + + return state; +} + 3d26: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3d28: 9309 ld.w r0, (r3, 0x24) + 3d2a: 480a lsri r0, r0, 10 + 3d2c: 07fb br 0x3d22 // 3d22 + if(g_key.key_state & 0x0800){ + 3d2e: 9309 ld.w r0, (r3, 0x24) + 3d30: 480b lsri r0, r0, 11 + 3d32: 07f8 br 0x3d22 // 3d22 + if(g_key.key_state & 0x1000){ + 3d34: 9309 ld.w r0, (r3, 0x24) + 3d36: 480c lsri r0, r0, 12 + 3d38: 07f5 br 0x3d22 // 3d22 + if(g_key.key_state & 0x2000){ + 3d3a: 9309 ld.w r0, (r3, 0x24) + 3d3c: 480d lsri r0, r0, 13 + 3d3e: 07f2 br 0x3d22 // 3d22 + U8_T state = 0; + 3d40: 3000 movi r0, 0 + 3d42: 07f2 br 0x3d26 // 3d26 + 3d44: 20000320 .long 0x20000320 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003d48 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3d48: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3d4a: 118a lrw r4, 0x20000320 // 3df0 + 3d4c: 8465 ld.b r3, (r4, 0x5) + 3d4e: 3b42 cmpnei r3, 2 + 3d50: 081c bt 0x3d88 // 3d88 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d52: 3300 movi r3, 0 + 3d54: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3d56: 8466 ld.b r3, (r4, 0x6) + 3d58: 3b42 cmpnei r3, 2 + 3d5a: 0820 bt 0x3d9a // 3d9a + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d5c: 3300 movi r3, 0 + 3d5e: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3d60: 8467 ld.b r3, (r4, 0x7) + 3d62: 3b42 cmpnei r3, 2 + 3d64: 0824 bt 0x3dac // 3dac + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d66: 3300 movi r3, 0 + 3d68: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3d6a: e0000d39 bsr 0x57dc // 57dc + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3d6e: 8468 ld.b r3, (r4, 0x8) + 3d70: 3b42 cmpnei r3, 2 + 3d72: 0829 bt 0x3dc4 // 3dc4 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3d74: 3300 movi r3, 0 + 3d76: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3d78: e0000de8 bsr 0x5948 // 5948 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3d7c: 8469 ld.b r3, (r4, 0x9) + 3d7e: 3b42 cmpnei r3, 2 + 3d80: 082e bt 0x3ddc // 3ddc + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3d82: 3300 movi r3, 0 + 3d84: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3d86: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d88: 3b44 cmpnei r3, 4 + 3d8a: 0fe4 bf 0x3d52 // 3d52 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3d8c: 3b41 cmpnei r3, 1 + 3d8e: 0be4 bt 0x3d56 // 3d56 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d90: 3300 movi r3, 0 + 3d92: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3d94: e0000bbe bsr 0x5510 // 5510 + 3d98: 07df br 0x3d56 // 3d56 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d9a: 3b44 cmpnei r3, 4 + 3d9c: 0fe0 bf 0x3d5c // 3d5c + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3d9e: 3b41 cmpnei r3, 1 + 3da0: 0be0 bt 0x3d60 // 3d60 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3da2: 3300 movi r3, 0 + 3da4: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3da6: e0000c27 bsr 0x55f4 // 55f4 + 3daa: 07db br 0x3d60 // 3d60 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dac: 3b44 cmpnei r3, 4 + 3dae: 0804 bt 0x3db6 // 3db6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3db0: 3300 movi r3, 0 + 3db2: a467 st.b r3, (r4, 0x7) + 3db4: 07dd br 0x3d6e // 3d6e + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3db6: 3b41 cmpnei r3, 1 + 3db8: 0bdb bt 0x3d6e // 3d6e + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3dba: 3300 movi r3, 0 + 3dbc: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3dbe: e0000c8d bsr 0x56d8 // 56d8 + 3dc2: 07d6 br 0x3d6e // 3d6e + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0804 bt 0x3dce // 3dce + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dc8: 3300 movi r3, 0 + 3dca: a468 st.b r3, (r4, 0x8) + 3dcc: 07d8 br 0x3d7c // 3d7c + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3dce: 3b41 cmpnei r3, 1 + 3dd0: 0bd6 bt 0x3d7c // 3d7c + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dd2: 3300 movi r3, 0 + 3dd4: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3dd6: e0000d39 bsr 0x5848 // 5848 + 3dda: 07d1 br 0x3d7c // 3d7c + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ddc: 3b44 cmpnei r3, 4 + 3dde: 0fd2 bf 0x3d82 // 3d82 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3de0: 3b41 cmpnei r3, 1 + 3de2: 0bd2 bt 0x3d86 // 3d86 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3de4: 3300 movi r3, 0 + 3de6: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3de8: e0000de6 bsr 0x59b4 // 59b4 +} + 3dec: 07cd br 0x3d86 // 3d86 + 3dee: 0000 bkpt + 3df0: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003df4 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3df4: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3df6: 106c lrw r3, 0x200003f3 // 3e24 + 3df8: 8340 ld.b r2, (r3, 0x0) + 3dfa: 3a41 cmpnei r2, 1 + 3dfc: 0c04 bf 0x3e04 // 3e04 + 3dfe: 8362 ld.b r3, (r3, 0x2) + 3e00: 3b45 cmpnei r3, 5 + 3e02: 0c10 bf 0x3e22 // 3e22 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3e04: 1069 lrw r3, 0x20000320 // 3e28 + 3e06: 8359 ld.b r2, (r3, 0x19) + 3e08: 3a41 cmpnei r2, 1 + 3e0a: 080c bt 0x3e22 // 3e22 + if(SysTick_1ms - g_key.key_dug_tick >= 50){ + 3e0c: 1028 lrw r1, 0x200000b8 // 3e2c + 3e0e: 9140 ld.w r2, (r1, 0x0) + 3e10: 930b ld.w r0, (r3, 0x2c) + 3e12: 6082 subu r2, r0 + 3e14: 3031 movi r0, 49 + 3e16: 6480 cmphs r0, r2 + 3e18: 0805 bt 0x3e22 // 3e22 + g_key.key_dug_tick = SysTick_1ms; + 3e1a: 9140 ld.w r2, (r1, 0x0) + 3e1c: b34b st.w r2, (r3, 0x2c) + + /*打印触摸按键数值*/ + TouchKey_RS485_Printf(); + 3e1e: e3fffedb bsr 0x3bd4 // 3bd4 + } + } +} + 3e22: 1490 pop r15 + 3e24: 200003f3 .long 0x200003f3 + 3e28: 20000320 .long 0x20000320 + 3e2c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003e30 : +void Touch_Key_Task(void){ + 3e30: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3e32: 1132 lrw r1, 0x200000b8 // 3ef8 + 3e34: 1172 lrw r3, 0x20000320 // 3efc + 3e36: 9140 ld.w r2, (r1, 0x0) + 3e38: 930a ld.w r0, (r3, 0x28) + 3e3a: 6082 subu r2, r0 + 3e3c: 3a04 cmphsi r2, 5 + 3e3e: 0806 bt 0x3e4a // 3e4a + break; + } + } + } + + Touch_Key_Event_Handling(); + 3e40: e3ffff84 bsr 0x3d48 // 3d48 + + TouchKey_Set_Interface_Task(); + 3e44: e3ffffd8 bsr 0x3df4 // 3df4 + +} + 3e48: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3e4a: 9140 ld.w r2, (r1, 0x0) + 3e4c: b34a st.w r2, (r3, 0x28) + if(Key_Map != 0x00){ + 3e4e: 112d lrw r1, 0x20000760 // 3f00 + 3e50: 9140 ld.w r2, (r1, 0x0) + 3e52: 3a40 cmpnei r2, 0 + 3e54: 0c02 bf 0x3e58 // 3e58 + g_key.key_state = Key_Map; + 3e56: 9140 ld.w r2, (r1, 0x0) + 3e58: 1189 lrw r4, 0x20000320 // 3efc +void Touch_Key_Task(void){ + 3e5a: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3e5c: b349 st.w r2, (r3, 0x24) +void Touch_Key_Task(void){ + 3e5e: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3e60: 11e9 lrw r7, 0x257 // 3f04 + switch (g_key.KEY_STA[i]) { + 3e62: 8460 ld.b r3, (r4, 0x0) + 3e64: 3b41 cmpnei r3, 1 + 3e66: 0c24 bf 0x3eae // 3eae + 3e68: 3b40 cmpnei r3, 0 + 3e6a: 0c0a bf 0x3e7e // 3e7e + 3e6c: 3b42 cmpnei r3, 2 + 3e6e: 0c39 bf 0x3ee0 // 3ee0 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3e70: 2500 addi r5, 1 + 3e72: 7554 zextb r5, r5 + 3e74: 3d45 cmpnei r5, 5 + 3e76: 2400 addi r4, 1 + 3e78: 2601 addi r6, 2 + 3e7a: 0bf4 bt 0x3e62 // 3e62 + 3e7c: 07e2 br 0x3e40 // 3e40 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3e7e: 6c17 mov r0, r5 + 3e80: e3ffff46 bsr 0x3d0c // 3d0c + 3e84: 3841 cmpnei r0, 1 + 3e86: 080f bt 0x3ea4 // 3ea4 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3e88: 8474 ld.b r3, (r4, 0x14) + 3e8a: 3b01 cmphsi r3, 2 + 3e8c: 0804 bt 0x3e94 // 3e94 + g_key.delayCnt[i]++; + 3e8e: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3e90: a474 st.b r3, (r4, 0x14) + 3e92: 07ef br 0x3e70 // 3e70 + Controlled_Buzzer(0x01); + 3e94: 3001 movi r0, 1 + 3e96: e0000769 bsr 0x4d68 // 4d68 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3e9a: 3301 movi r3, 1 + 3e9c: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3e9e: 3300 movi r3, 0 + 3ea0: ae6d st.h r3, (r6, 0x1a) + 3ea2: 07f7 br 0x3e90 // 3e90 + g_key.delayCnt[i] = 0; + 3ea4: 3300 movi r3, 0 + 3ea6: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ea8: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3eaa: a465 st.b r3, (r4, 0x5) + 3eac: 07e2 br 0x3e70 // 3e70 + g_key.key_time[i]++; + 3eae: 8e6d ld.h r3, (r6, 0x1a) + 3eb0: 2300 addi r3, 1 + 3eb2: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb4: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3eb6: ae6d st.h r3, (r6, 0x1a) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb8: 0c0c bf 0x3ed0 // 3ed0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3eba: 6c17 mov r0, r5 + 3ebc: e3ffff28 bsr 0x3d0c // 3d0c + 3ec0: 3840 cmpnei r0, 0 + 3ec2: 0bd7 bt 0x3e70 // 3e70 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ec4: 3301 movi r3, 1 + 3ec6: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3ec8: 3300 movi r3, 0 + 3eca: ae6d st.h r3, (r6, 0x1a) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ecc: a460 st.b r3, (r4, 0x0) + 3ece: 07d1 br 0x3e70 // 3e70 + g_key.KEY_STA[i] = KEY_STA_S2; + 3ed0: 3302 movi r3, 2 + 3ed2: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ed4: 3300 movi r3, 0 + 3ed6: ae6d st.h r3, (r6, 0x1a) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3ed8: 3303 movi r3, 3 + 3eda: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3edc: 3302 movi r3, 2 + 3ede: 07e6 br 0x3eaa // 3eaa + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee0: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee2: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee4: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee6: e3ffff13 bsr 0x3d0c // 3d0c + 3eea: 3840 cmpnei r0, 0 + 3eec: 0bc2 bt 0x3e70 // 3e70 + g_key.KEY_STA[i] = KEY_STA_S0; + 3eee: 3300 movi r3, 0 + 3ef0: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3ef2: 3304 movi r3, 4 + 3ef4: 07db br 0x3eaa // 3eaa + 3ef6: 0000 bkpt + 3ef8: 200000b8 .long 0x200000b8 + 3efc: 20000320 .long 0x20000320 + 3f00: 20000760 .long 0x20000760 + 3f04: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003f08 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3f08: 6040 addu r1, r0 + U8_T data_sum = 0; + 3f0a: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3f10: 6cce nor r3, r3 + 3f12: 740c zextb r0, r3 +} + 3f14: 783c jmp r15 + data_sum += data[i]; + 3f16: 8040 ld.b r2, (r0, 0x0) + 3f18: 60c8 addu r3, r2 + 3f1a: 74cc zextb r3, r3 + 3f1c: 2000 addi r0, 1 + 3f1e: 07f7 br 0x3f0c // 3f0c + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003f20 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3f20: 14d2 push r4-r5, r15 + 3f22: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3f24: 5992 addi r4, r1, 5 + 3f26: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3f28: 3331 movi r3, 49 + 3f2a: 650c cmphs r3, r4 + 3f2c: 0803 bt 0x3f32 // 3f32 + para_len = 44; + 3f2e: 312c movi r1, 44 + reply_len = 50; + 3f30: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3f32: 3300 movi r3, 0 + 3f34: 2b50 subi r3, 81 + 3f36: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3f3a: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3f3e: 1077 lrw r3, 0x20000350 // 3f98 + 3f40: 8360 ld.b r3, (r3, 0x0) + 3f42: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3f46: 3300 movi r3, 0 + 3f48: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3f52: 3200 movi r2, 0 + 3f54: 60f8 addu r3, r14 + 3f56: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f58: 6c53 mov r1, r4 + 3f5a: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3f5c: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f5e: e3ffffd5 bsr 0x3f08 // 3f08 + + if (detect_inf.control_model == 0x00){ + 3f62: 106f lrw r3, 0x200003cc // 3f9c + 3f64: 8363 ld.b r3, (r3, 0x3) + 3f66: 3b40 cmpnei r3, 0 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f68: dc0e0003 st.b r0, (r14, 0x3) + if (detect_inf.control_model == 0x00){ + 3f6c: 080f bt 0x3f8a // 3f8a + MCU485_SendData(send_data,reply_len); + 3f6e: 6c53 mov r1, r4 + 3f70: 6c3b mov r0, r14 + 3f72: e3fffda9 bsr 0x3ac4 // 3ac4 + }else { + UARTTransmit(UART2,send_data,reply_len); + } +} + 3f76: 140f addi r14, r14, 60 + 3f78: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3f7a: 6c8f mov r2, r3 + 3f7c: 58ac addu r5, r0, r3 + 3f7e: 60b8 addu r2, r14 + 3f80: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + UARTTransmit(UART2,send_data,reply_len); + 3f8a: 1066 lrw r3, 0x20000038 // 3fa0 + 3f8c: 6c93 mov r2, r4 + 3f8e: 9300 ld.w r0, (r3, 0x0) + 3f90: 6c7b mov r1, r14 + 3f92: e3fff0c5 bsr 0x211c // 211c + 3f96: 07f0 br 0x3f76 // 3f76 + 3f98: 20000350 .long 0x20000350 + 3f9c: 200003cc .long 0x200003cc + 3fa0: 20000038 .long 0x20000038 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003fa4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fa4: 14d4 push r4-r7, r15 + 3fa6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fa8: 80a0 ld.b r5, (r0, 0x0) + 3faa: 5dc3 subi r6, r5, 1 + 3fac: 7598 zextb r6, r6 + 3fae: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fb0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fb2: 0834 bt 0x401a // 401a + 3fb4: 1125 lrw r1, 0x200002f0 // 4048 + 3fb6: 350b movi r5, 11 + 3fb8: 5862 addi r3, r0, 1 + 3fba: 6140 addu r5, r0 + 3fbc: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3fda: 8479 ld.b r3, (r4, 0x19) + 3fdc: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3fde: 847a ld.b r3, (r4, 0x1a) + 3fe0: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3fe2: 847b ld.b r3, (r4, 0x1b) + 3fe4: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3fe6: 847c ld.b r3, (r4, 0x1c) + 3fe8: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fea: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3fec: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fee: 1037 lrw r1, 0x200002f0 // 4048 + touch_para.longpress_time = para[29]; + 3ff0: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff2: e0000303 bsr 0x45f8 // 45f8 + + if(rev == 0x00){ + 3ff6: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff8: 6d43 mov r5, r0 + if(rev == 0x00){ + 3ffa: 0805 bt 0x4004 // 4004 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3ffc: 1033 lrw r1, 0x200002f0 // 4048 + 3ffe: 6c1b mov r0, r6 + 4000: e0000270 bsr 0x44e0 // 44e0 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4004: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4006: 3102 movi r1, 2 + 4008: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 400a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 400e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4012: e3ffff87 bsr 0x3f20 // 3f20 +} + 4016: 1401 addi r14, r14, 4 + 4018: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 401a: 3d40 cmpnei r5, 0 + 401c: 0c03 bf 0x4022 // 4022 + rev = 0x01; + 401e: 3501 movi r5, 1 + 4020: 07f2 br 0x4004 // 4004 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 4022: 8061 ld.b r3, (r0, 0x1) + 4024: 104a lrw r2, 0x7768 // 404c + 4026: 102b lrw r1, 0x7c5b // 4050 + 4028: 3000 movi r0, 0 + 402a: e3fffd91 bsr 0x3b4c // 3b4c + if( (para[1] > 0) && (para[1] <= 3) ){ + 402e: 8461 ld.b r3, (r4, 0x1) + 4030: 2b00 subi r3, 1 + 4032: 74cc zextb r3, r3 + 4034: 3b02 cmphsi r3, 3 + 4036: 0bf4 bt 0x401e // 401e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4038: 1047 lrw r2, 0x200003f3 // 4054 + g_eeprom.key_sens_level = para[1] - 1; + 403a: 1008 lrw r0, 0x20000350 // 4058 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 403c: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 403e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4040: e00001c2 bsr 0x43c4 // 43c4 + 4044: 07e0 br 0x4004 // 4004 + 4046: 0000 bkpt + 4048: 200002f0 .long 0x200002f0 + 404c: 00007768 .long 0x00007768 + 4050: 00007c5b .long 0x00007c5b + 4054: 200003f3 .long 0x200003f3 + 4058: 20000350 .long 0x20000350 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +0000405c : +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 405c: 14d2 push r4-r5, r15 + 405e: 142d subi r14, r14, 52 + 4060: 6d03 mov r4, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 4062: 3232 movi r2, 50 + 4064: 3100 movi r1, 0 + 4066: 6c3b mov r0, r14 + 4068: e3ffec7e bsr 0x1964 // 1964 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 406c: 8400 ld.b r0, (r4, 0x0) + reply_buff[reply_len++] = 0x02; + 406e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4070: 3840 cmpnei r0, 0 + reply_buff[reply_len++] = 0x02; + 4072: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 4076: 082d bt 0x40d0 // 40d0 + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4078: 1170 lrw r3, 0x20000350 // 4138 + 407a: 8365 ld.b r3, (r3, 0x5) + 407c: 2300 addi r3, 1 + 407e: 1130 lrw r1, 0x200002f0 // 413c + 4080: 6c87 mov r2, r1 + 4082: dc6e0001 st.b r3, (r14, 0x1) + 4086: 6cfb mov r3, r14 + + for(i=0;i> 8; + 408e: 4c88 lsri r4, r4, 8 + 4090: a383 st.b r4, (r3, 0x3) + for(i=0;i> 8; + 409a: 4c88 lsri r4, r4, 8 + 409c: a38f st.b r4, (r3, 0xf) + 409e: 2101 addi r1, 2 + 40a0: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 40a4: 8260 ld.b r3, (r2, 0x0) + 40a6: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 40aa: 8261 ld.b r3, (r2, 0x1) + 40ac: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 40b0: 8262 ld.b r3, (r2, 0x2) + 40b2: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 40b6: 8263 ld.b r3, (r2, 0x3) + 40b8: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40bc: 8278 ld.b r3, (r2, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40be: dc6e001e st.b r3, (r14, 0x1e) + 40c2: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 40c4: 7445 zexth r1, r1 + 40c6: 6c3b mov r0, r14 + 40c8: e3ffff2c bsr 0x3f20 // 3f20 +} + 40cc: 140d addi r14, r14, 52 + 40ce: 1492 pop r4-r5, r15 + }else if(para[0] <= 3){ + 40d0: 3803 cmphsi r0, 4 + 40d2: 0831 bt 0x4134 // 4134 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 40d4: 2800 subi r0, 1 + 40d6: 7400 zextb r0, r0 + 40d8: 1039 lrw r1, 0x200002f0 // 413c + 40da: e0000239 bsr 0x454c // 454c + if(rev != 0x00){ + 40de: 3840 cmpnei r0, 0 + 40e0: 10b7 lrw r5, 0x200002f0 // 413c + 40e2: 0c07 bf 0x40f0 // 40f0 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 40e4: 8400 ld.b r0, (r4, 0x0) + 40e6: 2800 subi r0, 1 + 40e8: 7400 zextb r0, r0 + 40ea: 6c57 mov r1, r5 + 40ec: e00002da bsr 0x46a0 // 46a0 + reply_buff[reply_len++] = para[0]; + 40f0: 8460 ld.b r3, (r4, 0x0) + 40f2: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 40fa: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 40fc: 8902 ld.h r0, (r1, 0x4) + 40fe: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 4102: 4808 lsri r0, r0, 8 + 4104: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 410e: 4808 lsri r0, r0, 8 + 4110: a30f st.b r0, (r3, 0xf) + 4112: 2101 addi r1, 2 + 4114: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4118: 8560 ld.b r3, (r5, 0x0) + 411a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 411e: 8561 ld.b r3, (r5, 0x1) + 4120: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4124: 8562 ld.b r3, (r5, 0x2) + 4126: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 412a: 8563 ld.b r3, (r5, 0x3) + 412c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 4130: 8578 ld.b r3, (r5, 0x18) + 4132: 07c6 br 0x40be // 40be + reply_buff[reply_len++] = 0x00; + 4134: 3102 movi r1, 2 + 4136: 07c7 br 0x40c4 // 40c4 + 4138: 20000350 .long 0x20000350 + 413c: 200002f0 .long 0x200002f0 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00004140 : +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 4140: 14d0 push r15 + 4142: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4144: 8060 ld.b r3, (r0, 0x0) + 4146: 3b41 cmpnei r3, 1 + 4148: 0810 bt 0x4168 // 4168 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 414a: 106b lrw r3, 0x20000320 // 4174 + 414c: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 414e: a359 st.b r2, (r3, 0x19) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 4150: 3303 movi r3, 3 + 4152: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4156: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4158: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 415a: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 415c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4160: e3fffee0 bsr 0x3f20 // 3f20 +} + 4164: 1401 addi r14, r14, 4 + 4166: 1490 pop r15 + }else if(para[0] == 0x02){ + 4168: 3b42 cmpnei r3, 2 + 416a: 0bf3 bt 0x4150 // 4150 + g_key.key_dug_printf = 0x00; + 416c: 1062 lrw r3, 0x20000320 // 4174 + 416e: 3200 movi r2, 0 + 4170: 07ef br 0x414e // 414e + 4172: 0000 bkpt + 4174: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004178 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4178: 14d0 push r15 + 417a: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=0; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 417c: 1150 lrw r2, 0x200008d2 // 423c + reply_buff[reply_len++] = 0x04; //CMD + 417e: 3304 movi r3, 4 + 4180: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4184: 8a60 ld.h r3, (r2, 0x0) + 4186: 4b68 lsri r3, r3, 8 + 4188: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 418c: 8a60 ld.h r3, (r2, 0x0) + 418e: dc6e0002 st.b r3, (r14, 0x2) + reply_buff[reply_len++] = sampling_data0[i]>>8; + reply_buff[reply_len++] = sampling_data0[i]&0xff; + reply_buff[reply_len++] = baseline_data0[i]>>8; + reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4192: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4194: 116b lrw r3, 0x2000062c // 4240 + 4196: 8b20 ld.h r1, (r3, 0x0) + 4198: 4928 lsri r1, r1, 8 + 419a: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 419e: 8b20 ld.h r1, (r3, 0x0) + 41a0: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41a4: 8a28 ld.h r1, (r2, 0x10) + 41a6: 4928 lsri r1, r1, 8 + 41a8: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41ac: 8a28 ld.h r1, (r2, 0x10) + 41ae: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41b2: 8b28 ld.h r1, (r3, 0x10) + 41b4: 4928 lsri r1, r1, 8 + 41b6: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41ba: 8b28 ld.h r1, (r3, 0x10) + 41bc: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41c0: 8a29 ld.h r1, (r2, 0x12) + 41c2: 4928 lsri r1, r1, 8 + 41c4: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41c8: 8a29 ld.h r1, (r2, 0x12) + 41ca: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ce: 8b29 ld.h r1, (r3, 0x12) + 41d0: 4928 lsri r1, r1, 8 + 41d2: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41d6: 8b29 ld.h r1, (r3, 0x12) + 41d8: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41dc: 8a2e ld.h r1, (r2, 0x1c) + 41de: 4928 lsri r1, r1, 8 + 41e0: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41e4: 8a2e ld.h r1, (r2, 0x1c) + 41e6: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ea: 8b2e ld.h r1, (r3, 0x1c) + 41ec: 4928 lsri r1, r1, 8 + 41ee: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41f2: 8b2e ld.h r1, (r3, 0x1c) + 41f4: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41f8: 8a2d ld.h r1, (r2, 0x1a) + 41fa: 4928 lsri r1, r1, 8 + 41fc: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4200: 8a2d ld.h r1, (r2, 0x1a) + 4202: dc2e0012 st.b r1, (r14, 0x12) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4206: 8b2d ld.h r1, (r3, 0x1a) + 4208: 4928 lsri r1, r1, 8 + 420a: dc2e0013 st.b r1, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 420e: 8b2d ld.h r1, (r3, 0x1a) + 4210: dc2e0014 st.b r1, (r14, 0x14) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4214: 8a2c ld.h r1, (r2, 0x18) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4216: 8a4c ld.h r2, (r2, 0x18) + 4218: dc4e0016 st.b r2, (r14, 0x16) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 421c: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 421e: 8b4c ld.h r2, (r3, 0x18) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4220: dc2e0015 st.b r1, (r14, 0x15) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4224: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4226: 8b6c ld.h r3, (r3, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4228: 3119 movi r1, 25 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 422a: dc4e0017 st.b r2, (r14, 0x17) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 422e: dc6e0018 st.b r3, (r14, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4232: e3fffe77 bsr 0x3f20 // 3f20 +} + 4236: 140d addi r14, r14, 52 + 4238: 1490 pop r15 + 423a: 0000 bkpt + 423c: 200008d2 .long 0x200008d2 + 4240: 2000062c .long 0x2000062c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004244 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4244: 14d0 push r15 + 4246: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4248: 3305 movi r3, 5 + 424a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 424e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4250: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4252: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4254: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4258: e3fffe64 bsr 0x3f20 // 3f20 + 425c: 0400 br 0x425c // 425c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004260 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4260: 14d2 push r4-r5, r15 + 4262: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4264: 8060 ld.b r3, (r0, 0x0) + 4266: 32af movi r2, 175 + 4268: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 426a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 426c: 0c09 bf 0x427e // 427e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 426e: 3000 movi r0, 0 + 4270: 114b lrw r2, 0x7784 // 431c + 4272: 112c lrw r1, 0x7c6b // 4320 + 4274: e3fffc6c bsr 0x3b4c // 3b4c + return 0x01; + 4278: 3001 movi r0, 1 + break; + } + + + return 0; +} + 427a: 1401 addi r14, r14, 4 + 427c: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 427e: 114a lrw r2, 0x20000350 // 4324 + 4280: 8061 ld.b r3, (r0, 0x1) + 4282: 8240 ld.b r2, (r2, 0x0) + 4284: 64ca cmpne r2, r3 + 4286: 0c08 bf 0x4296 // 4296 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4288: 3000 movi r0, 0 + 428a: 1145 lrw r2, 0x7784 // 431c + 428c: 1127 lrw r1, 0x7c7d // 4328 + 428e: e3fffc5f bsr 0x3b4c // 3b4c + return 0x02; + 4292: 3002 movi r0, 2 + 4294: 07f3 br 0x427a // 427a + if(data[2] != len){ + 4296: 8062 ld.b r3, (r0, 0x2) + 4298: 750d zexth r4, r3 + 429a: 6452 cmpne r4, r1 + 429c: 0c09 bf 0x42ae // 42ae + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 429e: b820 st.w r1, (r14, 0x0) + 42a0: 105f lrw r2, 0x7784 // 431c + 42a2: 1123 lrw r1, 0x7c8e // 432c + 42a4: 3000 movi r0, 0 + 42a6: e3fffc53 bsr 0x3b4c // 3b4c + return 0x03; + 42aa: 3003 movi r0, 3 + 42ac: 07e7 br 0x427a // 427a + if(data[len-1] != 0xFA){ + 42ae: 60c0 addu r3, r0 + 42b0: 2b00 subi r3, 1 + 42b2: 8360 ld.b r3, (r3, 0x0) + 42b4: 32fa movi r2, 250 + 42b6: 648e cmpne r3, r2 + 42b8: 0c07 bf 0x42c6 // 42c6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 42ba: 1059 lrw r2, 0x7784 // 431c + 42bc: 103d lrw r1, 0x7ca1 // 4330 + 42be: 3000 movi r0, 0 + 42c0: e3fffc46 bsr 0x3b4c // 3b4c + 42c4: 07f3 br 0x42aa // 42aa + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 42c6: 5c23 subi r1, r4, 1 + 42c8: 7445 zexth r1, r1 + 42ca: e3fffe1f bsr 0x3f08 // 3f08 + 42ce: 3840 cmpnei r0, 0 + 42d0: 0806 bt 0x42dc // 42dc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 42d2: 1053 lrw r2, 0x7784 // 431c + 42d4: 1038 lrw r1, 0x7cb1 // 4334 + 42d6: e3fffc3b bsr 0x3b4c // 3b4c + 42da: 07e8 br 0x42aa // 42aa + switch(data[4]){ + 42dc: 8504 ld.b r0, (r5, 0x4) + 42de: 2800 subi r0, 1 + 42e0: 3804 cmphsi r0, 5 + 42e2: 080c bt 0x42fa // 42fa + 42e4: 5c37 subi r1, r4, 6 + 42e6: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42e8: 7445 zexth r1, r1 + switch(data[4]){ + 42ea: e3ffe509 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42ee: 0803 .short 0x0803 + 42f0: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 42f4: 6c17 mov r0, r5 + 42f6: e3fffe57 bsr 0x3fa4 // 3fa4 + return 0; + 42fa: 3000 movi r0, 0 + 42fc: 07bf br 0x427a // 427a + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 42fe: 6c17 mov r0, r5 + 4300: e3fffeae bsr 0x405c // 405c + 4304: 07fb br 0x42fa // 42fa + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4306: 6c17 mov r0, r5 + 4308: e3ffff1c bsr 0x4140 // 4140 + 430c: 07f7 br 0x42fa // 42fa + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 430e: 6c17 mov r0, r5 + 4310: e3ffff34 bsr 0x4178 // 4178 + 4314: 07f3 br 0x42fa // 42fa + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4316: 6c17 mov r0, r5 + 4318: e3ffff96 bsr 0x4244 // 4244 + 431c: 00007784 .long 0x00007784 + 4320: 00007c6b .long 0x00007c6b + 4324: 20000350 .long 0x20000350 + 4328: 00007c7d .long 0x00007c7d + 432c: 00007c8e .long 0x00007c8e + 4330: 00007ca1 .long 0x00007ca1 + 4334: 00007cb1 .long 0x00007cb1 + +Disassembly of section .text.EEPROM_CheckSum: + +00004338 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4338: 6cc3 mov r3, r0 + 433a: 6040 addu r1, r0 + U8_T data_sum = 0; + 433c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4342: 783c jmp r15 + data_sum += data[i]; + 4344: 8340 ld.b r2, (r3, 0x0) + 4346: 6008 addu r0, r2 + 4348: 7400 zextb r0, r0 + 434a: 2300 addi r3, 1 + 434c: 07f9 br 0x433e // 433e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004350 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4350: 14d1 push r4, r15 + 4352: 143b subi r14, r14, 108 + 4354: 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)); + 4356: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4358: 3264 movi r2, 100 + 435a: 3100 movi r1, 0 + 435c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 435e: b860 st.w r3, (r14, 0x0) + 4360: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4364: e3ffeb00 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4368: 6cbb mov r2, r14 + 436a: 3104 movi r1, 4 + 436c: 1014 lrw r0, 0x10000020 // 43bc + 436e: e3fff385 bsr 0x2a78 // 2a78 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4372: d84e0000 ld.b r2, (r14, 0x0) + 4376: 33a6 movi r3, 166 + 4378: 64ca cmpne r2, r3 + 437a: 0c04 bf 0x4382 // 4382 + return 0x00; + } + } + } + + return 0x01; + 437c: 3001 movi r0, 1 +} + 437e: 141b addi r14, r14, 108 + 4380: 1491 pop r4, r15 + read_len |= read_info[1]; + 4382: d82e0002 ld.b r1, (r14, 0x2) + 4386: d86e0001 ld.b r3, (r14, 0x1) + 438a: 4128 lsli r1, r1, 8 + 438c: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 438e: 3364 movi r3, 100 + 4390: 644c cmphs r3, r1 + 4392: 0ff5 bf 0x437c // 437c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4394: 1a02 addi r2, r14, 8 + 4396: 100b lrw r0, 0x10000024 // 43c0 + 4398: e3fff370 bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 439c: 3106 movi r1, 6 + 439e: 1802 addi r0, r14, 8 + 43a0: e3ffffcc bsr 0x4338 // 4338 + 43a4: d86e0003 ld.b r3, (r14, 0x3) + 43a8: 640e cmpne r3, r0 + 43aa: 0be9 bt 0x437c // 437c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 43ac: 3206 movi r2, 6 + 43ae: 1902 addi r1, r14, 8 + 43b0: 6c13 mov r0, r4 + 43b2: e3ffeb1d bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 43b6: 3000 movi r0, 0 + 43b8: 07e3 br 0x437e // 437e + 43ba: 0000 bkpt + 43bc: 10000020 .long 0x10000020 + 43c0: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000043c4 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43c4: 14d0 push r15 + 43c6: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 43c8: 3300 movi r3, 0 + 43ca: 2b59 subi r3, 90 + 43cc: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 43d0: 3306 movi r3, 6 + 43d2: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 43d6: 3300 movi r3, 0 + 43d8: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43dc: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43de: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43e0: 3206 movi r2, 6 + 43e2: 6c0f mov r0, r3 + 43e4: e3ffeb04 bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 43e8: 3106 movi r1, 6 + 43ea: e3ffffa7 bsr 0x4338 // 4338 + 43ee: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 43f2: 6cbb mov r2, r14 + 43f4: 310a movi r1, 10 + 43f6: 1004 lrw r0, 0x10000020 // 4404 + 43f8: e3fff2f0 bsr 0x29d8 // 29d8 + + return 0; +} + 43fc: 3000 movi r0, 0 + 43fe: 141b addi r14, r14, 108 + 4400: 1490 pop r15 + 4402: 0000 bkpt + 4404: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004408 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4408: 14d1 push r4, r15 + 440a: 1421 subi r14, r14, 4 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 440c: 8062 ld.b r3, (r0, 0x2) + 440e: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4410: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4412: 0c03 bf 0x4418 // 4418 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4414: 3309 movi r3, 9 + 4416: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4418: 8442 ld.b r2, (r4, 0x2) + 441a: 1036 lrw r1, 0x7cc0 // 4470 + 441c: 3000 movi r0, 0 + 441e: e3fffb97 bsr 0x3b4c // 3b4c + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4422: 8463 ld.b r3, (r4, 0x3) + 4424: 3b02 cmphsi r3, 3 + 4426: 0c03 bf 0x442c // 442c + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4428: 3300 movi r3, 0 + 442a: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 442c: 8464 ld.b r3, (r4, 0x4) + 442e: 3b01 cmphsi r3, 2 + 4430: 0c03 bf 0x4436 // 4436 + { + info->backlight_en = 0x01; + 4432: 3301 movi r3, 1 + 4434: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag >= 0x02) + 4436: 8461 ld.b r3, (r4, 0x1) + 4438: 3b01 cmphsi r3, 2 + 443a: 0c03 bf 0x4440 // 4440 + { + info->pipe_flag = 0x00; + 443c: 3300 movi r3, 0 + 443e: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4440: 8460 ld.b r3, (r4, 0x0) + 4442: 2b00 subi r3, 1 + 4444: 74cc zextb r3, r3 + 4446: 32fd movi r2, 253 + 4448: 64c8 cmphs r2, r3 + 444a: 0803 bt 0x4450 // 4450 + { + info->pipe_flag = 0x01; + 444c: 3301 movi r3, 1 + 444e: a461 st.b r3, (r4, 0x1) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4450: 8465 ld.b r3, (r4, 0x5) + 4452: 3b02 cmphsi r3, 3 + 4454: 0c03 bf 0x445a // 445a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4456: 3301 movi r3, 1 + 4458: a465 st.b r3, (r4, 0x5) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info save_curr %d backlight_en:%d key_sens_level:%d",info->temp_select,info->backlight_en,info->key_sens_level); + 445a: 8425 ld.b r1, (r4, 0x5) + 445c: b820 st.w r1, (r14, 0x0) + 445e: 8464 ld.b r3, (r4, 0x4) + 4460: 8443 ld.b r2, (r4, 0x3) + 4462: 1025 lrw r1, 0x7cd7 // 4474 + 4464: 3000 movi r0, 0 + 4466: e3fffb73 bsr 0x3b4c // 3b4c + + return 0; +} + 446a: 3000 movi r0, 0 + 446c: 1401 addi r14, r14, 4 + 446e: 1491 pop r4, r15 + 4470: 00007cc0 .long 0x00007cc0 + 4474: 00007cd7 .long 0x00007cd7 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004478 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4478: 3301 movi r3, 1 + 447a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 447c: 3300 movi r3, 0 + 447e: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4480: 3309 movi r3, 9 + 4482: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4484: 3300 movi r3, 0 + 4486: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x01; + 4488: 3301 movi r3, 1 + 448a: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 448c: a065 st.b r3, (r0, 0x5) +} + 448e: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +00004490 : +void EEPROM_Init(void){ + 4490: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 4492: 1071 lrw r3, 0x20000060 // 44d4 + 4494: 3201 movi r2, 1 + 4496: 9360 ld.w r3, (r3, 0x0) + 4498: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 449a: 9345 ld.w r2, (r3, 0x14) + 449c: 3aa1 bseti r2, 1 + 449e: 3ab0 bseti r2, 16 + 44a0: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 44a2: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44a4: 108d lrw r4, 0x20000350 // 44d8 + delay_nms(10); + 44a6: e3fff40d bsr 0x2cc0 // 2cc0 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44aa: 6c13 mov r0, r4 + 44ac: e3ffff52 bsr 0x4350 // 4350 + if(rev == 0x00){ + 44b0: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b2: 6c13 mov r0, r4 + if(rev == 0x00){ + 44b4: 0804 bt 0x44bc // 44bc + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b6: e3ffffa9 bsr 0x4408 // 4408 +} + 44ba: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 44bc: e3ffffde bsr 0x4478 // 4478 + EEPROM_WriteParaInfo(&g_eeprom); + 44c0: 6c13 mov r0, r4 + 44c2: e3ffff81 bsr 0x43c4 // 43c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 44c6: 8441 ld.b r2, (r4, 0x1) + 44c8: 1025 lrw r1, 0x7d12 // 44dc + 44ca: 3000 movi r0, 0 + 44cc: e3fffb40 bsr 0x3b4c // 3b4c +} + 44d0: 07f5 br 0x44ba // 44ba + 44d2: 0000 bkpt + 44d4: 20000060 .long 0x20000060 + 44d8: 20000350 .long 0x20000350 + 44dc: 00007d12 .long 0x00007d12 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000044e0 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e0: 14d2 push r4-r5, r15 + 44e2: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 44e4: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e6: 6d47 mov r5, r1 + switch(level){ + 44e8: 0c07 bf 0x44f6 // 44f6 + 44ea: 3840 cmpnei r0, 0 + 44ec: 0c27 bf 0x453a // 453a + 44ee: 3842 cmpnei r0, 2 + 44f0: 0c23 bf 0x4536 // 4536 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 44f2: 3001 movi r0, 1 + 44f4: 041f br 0x4532 // 4532 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 44f6: 1093 lrw r4, 0x10000180 // 4540 + break; + } + + memset(save_para,0,sizeof(save_para)); + 44f8: 323c movi r2, 60 + 44fa: 3100 movi r1, 0 + 44fc: 6c3b mov r0, r14 + 44fe: e3ffea33 bsr 0x1964 // 1964 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4502: 3300 movi r3, 0 + 4504: 2b59 subi r3, 90 + 4506: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 450a: 331c movi r3, 28 + 450c: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4510: 1b01 addi r3, r14, 4 + 4512: 321c movi r2, 28 + 4514: 6c0f mov r0, r3 + 4516: 6c57 mov r1, r5 + 4518: e3ffea6a bsr 0x19ec // 19ec <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 451c: 311c movi r1, 28 + 451e: e3ffff0d bsr 0x4338 // 4338 + 4522: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4526: 6cbb mov r2, r14 + 4528: 6c13 mov r0, r4 + 452a: 3120 movi r1, 32 + 452c: e3fff256 bsr 0x29d8 // 29d8 + + return 0; + 4530: 3000 movi r0, 0 +} + 4532: 140f addi r14, r14, 60 + 4534: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4536: 1084 lrw r4, 0x10000200 // 4544 + break; + 4538: 07e0 br 0x44f8 // 44f8 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 453a: 1084 lrw r4, 0x10000100 // 4548 + 453c: 07de br 0x44f8 // 44f8 + 453e: 0000 bkpt + 4540: 10000180 .long 0x10000180 + 4544: 10000200 .long 0x10000200 + 4548: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +0000454c : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 454c: 14d2 push r4-r5, r15 + 454e: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4550: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4552: 6d07 mov r4, r1 + switch(level){ + 4554: 0c3a bf 0x45c8 // 45c8 + 4556: 3840 cmpnei r0, 0 + 4558: 0c05 bf 0x4562 // 4562 + 455a: 3842 cmpnei r0, 2 + 455c: 0c34 bf 0x45c4 // 45c4 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 455e: 3001 movi r0, 1 + 4560: 0430 br 0x45c0 // 45c0 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4562: 11a1 lrw r5, 0x10000100 // 45e4 + memset(read_info,0,sizeof(read_info)); + 4564: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4566: 3234 movi r2, 52 + 4568: 3100 movi r1, 0 + 456a: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 456c: b860 st.w r3, (r14, 0x0) + 456e: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4572: e3ffe9f9 bsr 0x1964 // 1964 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4576: 6cbb mov r2, r14 + 4578: 3104 movi r1, 4 + 457a: 6c17 mov r0, r5 + 457c: e3fff27e bsr 0x2a78 // 2a78 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4580: d84e0000 ld.b r2, (r14, 0x0) + 4584: 33a6 movi r3, 166 + 4586: 64ca cmpne r2, r3 + 4588: 0827 bt 0x45d6 // 45d6 + read_len |= read_info[1]; + 458a: d84e0002 ld.b r2, (r14, 0x2) + 458e: d86e0001 ld.b r3, (r14, 0x1) + 4592: 4248 lsli r2, r2, 8 + 4594: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4596: 3a5c cmpnei r2, 28 + 4598: 081a bt 0x45cc // 45cc + temp_addr += EEPROM_Offset_Data; + 459a: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 459c: 1a02 addi r2, r14, 8 + 459e: 311c movi r1, 28 + 45a0: e3fff26c bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 45a4: 311c movi r1, 28 + 45a6: 1802 addi r0, r14, 8 + 45a8: e3fffec8 bsr 0x4338 // 4338 + 45ac: d86e0003 ld.b r3, (r14, 0x3) + 45b0: 640e cmpne r3, r0 + 45b2: 0bd6 bt 0x455e // 455e + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 45b4: 321c movi r2, 28 + 45b6: 1902 addi r1, r14, 8 + 45b8: 6c13 mov r0, r4 + 45ba: e3ffea19 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 45be: 3000 movi r0, 0 +} + 45c0: 140f addi r14, r14, 60 + 45c2: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 45c4: 10a9 lrw r5, 0x10000200 // 45e8 + break; + 45c6: 07cf br 0x4564 // 4564 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 45c8: 10a9 lrw r5, 0x10000180 // 45ec + 45ca: 07cd br 0x4564 // 4564 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 45cc: 1029 lrw r1, 0x7d2b // 45f0 + 45ce: 3000 movi r0, 0 + 45d0: e3fffabe bsr 0x3b4c // 3b4c + 45d4: 07c5 br 0x455e // 455e + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 45d6: 3304 movi r3, 4 + 45d8: 6cbb mov r2, r14 + 45da: 1027 lrw r1, 0x7d4d // 45f4 + 45dc: 3000 movi r0, 0 + 45de: e3fffabd bsr 0x3b58 // 3b58 + 45e2: 07be br 0x455e // 455e + 45e4: 10000100 .long 0x10000100 + 45e8: 10000200 .long 0x10000200 + 45ec: 10000180 .long 0x10000180 + 45f0: 00007d2b .long 0x00007d2b + 45f4: 00007d4d .long 0x00007d4d + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +000045f8 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 45f8: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 45fa: 8163 ld.b r3, (r1, 0x3) + 45fc: 2b00 subi r3, 1 + 45fe: 74cc zextb r3, r3 + 4600: 3263 movi r2, 99 + 4602: 64c8 cmphs r2, r3 + 4604: 0845 bt 0x468e // 468e + para->base_speed = 20; //默认参数 - 20 + 4606: 3314 movi r3, 20 + 4608: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 460a: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 460c: 8140 ld.b r2, (r1, 0x0) + 460e: 2a00 subi r2, 1 + 4610: 7488 zextb r2, r2 + 4612: 3a09 cmphsi r2, 10 + 4614: 0c04 bf 0x461c // 461c + para->press_debounce = 6; //默认参数 - 6 + 4616: 3306 movi r3, 6 + 4618: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 461a: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 461c: 8141 ld.b r2, (r1, 0x1) + 461e: 2a00 subi r2, 1 + 4620: 7488 zextb r2, r2 + 4622: 3a09 cmphsi r2, 10 + 4624: 0c04 bf 0x462c // 462c + para->release_debounce = 5; //默认参数 - 5 + 4626: 3305 movi r3, 5 + 4628: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 462a: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 462c: 8142 ld.b r2, (r1, 0x2) + 462e: 2a00 subi r2, 1 + 4630: 7488 zextb r2, r2 + 4632: 3463 movi r4, 99 + 4634: 6490 cmphs r4, r2 + 4636: 0804 bt 0x463e // 463e + para->multiTimes_filt = 40; //默认参数 - 40 + 4638: 3328 movi r3, 40 + 463a: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 463c: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 463e: 9146 ld.w r2, (r1, 0x18) + 4640: 2a00 subi r2, 1 + 4642: 3a1f cmphsi r2, 32 + 4644: 0c04 bf 0x464c // 464c + para->longpress_time = 8; //默认参数 - 8 + 4646: 3308 movi r3, 8 + 4648: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 464a: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 464c: 34a0 movi r4, 160 + rev = 0x01; + } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 464e: 36f5 movi r6, 245 + 4650: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4652: 10f3 lrw r7, 0x3de // 469c + 4654: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 4656: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4658: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 465a: 8aa0 ld.h r5, (r2, 0x0) + 465c: 2d09 subi r5, 10 + 465e: 7555 zexth r5, r5 + 4660: 655c cmphs r7, r5 + 4662: 0803 bt 0x4668 // 4668 + para->senprd[i] = 320; //默认参数 - 320 + 4664: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 4666: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4668: 8aa5 ld.h r5, (r2, 0xa) + 466a: 2d13 subi r5, 20 + 466c: 7555 zexth r5, r5 + 466e: 6558 cmphs r6, r5 + 4670: 080a bt 0x4684 // 4684 + + switch(level){ + 4672: 3841 cmpnei r0, 1 + 4674: 0c11 bf 0x4696 // 4696 + 4676: 3840 cmpnei r0, 0 + 4678: 0c0d bf 0x4692 // 4692 + 467a: 3842 cmpnei r0, 2 + 467c: 080d bt 0x4696 // 4696 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 467e: 333c movi r3, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 4680: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 4682: 3301 movi r3, 1 + 4684: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 468a: 6c0f mov r0, r3 + 468c: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 468e: 3300 movi r3, 0 + 4690: 07be br 0x460c // 460c + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 4692: 3364 movi r3, 100 + 4694: 07f6 br 0x4680 // 4680 + para->triggerlevel[i] = 80; + 4696: 3350 movi r3, 80 + 4698: 07f4 br 0x4680 // 4680 + 469a: 0000 bkpt + 469c: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000046a0 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 46a0: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 46a2: 3314 movi r3, 20 + 46a4: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 46a6: 3306 movi r3, 6 + 46a8: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 46aa: 3305 movi r3, 5 + 46ac: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 46ae: 3328 movi r3, 40 + 46b0: a162 st.b r3, (r1, 0x2) + para->longpress_time = 8; //默认参数 - 8 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 46b2: 32a0 movi r2, 160 + para->longpress_time = 8; //默认参数 - 8 + 46b4: 3308 movi r3, 8 + 46b6: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 46b8: 4241 lsli r2, r2, 1 + 46ba: 596e addi r3, r1, 4 + 46bc: 210d addi r1, 14 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 46be: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 46c0: ab40 st.h r2, (r3, 0x0) + switch(level){ + 46c2: 0c0d bf 0x46dc // 46dc + 46c4: 3840 cmpnei r0, 0 + 46c6: 0c09 bf 0x46d8 // 46d8 + 46c8: 3842 cmpnei r0, 2 + 46ca: 0809 bt 0x46dc // 46dc + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 46cc: 343c movi r4, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 46ce: ab85 st.h r4, (r3, 0xa) + 46d0: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 46d6: 1481 pop r4 + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 46d8: 3464 movi r4, 100 + 46da: 07fa br 0x46ce // 46ce + para->triggerlevel[i] = 80; + 46dc: 3450 movi r4, 80 + 46de: 07f8 br 0x46ce // 46ce + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +000046e0 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 46e0: 14d4 push r4-r7, r15 + 46e2: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 46e4: 8043 ld.b r2, (r0, 0x3) + 46e6: 1038 lrw r1, 0x7d6b // 4744 + 46e8: 3000 movi r0, 0 + 46ea: e3fffa31 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 46ee: 8440 ld.b r2, (r4, 0x0) + 46f0: 1036 lrw r1, 0x7d83 // 4748 + 46f2: 3000 movi r0, 0 + 46f4: e3fffa2c bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 46f8: 8441 ld.b r2, (r4, 0x1) + 46fa: 1035 lrw r1, 0x7d9f // 474c + 46fc: 3000 movi r0, 0 + 46fe: e3fffa27 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4702: 8442 ld.b r2, (r4, 0x2) + 4704: 1033 lrw r1, 0x7dbd // 4750 + 4706: 3000 movi r0, 0 + 4708: e3fffa22 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 470c: 9446 ld.w r2, (r4, 0x18) + 470e: 3000 movi r0, 0 + 4710: 1031 lrw r1, 0x7dda // 4754 + 4712: e3fffa1d bsr 0x3b4c // 3b4c + 4716: 2403 addi r4, 4 + 4718: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 471a: 10f0 lrw r7, 0x7df6 // 4758 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 471c: 10d0 lrw r6, 0x7e0f // 475c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 471e: e3ffeaa3 bsr 0x1c64 // 1c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4722: 8c60 ld.h r3, (r4, 0x0) + 4724: 6c97 mov r2, r5 + 4726: 6c5f mov r1, r7 + 4728: 3000 movi r0, 0 + 472a: e3fffa11 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 472e: 8c65 ld.h r3, (r4, 0xa) + 4730: 6c97 mov r2, r5 + 4732: 6c5b mov r1, r6 + 4734: 3000 movi r0, 0 + 4736: 2500 addi r5, 1 + 4738: e3fffa0a bsr 0x3b4c // 3b4c + for(i=0;i + } + +} + 4742: 1494 pop r4-r7, r15 + 4744: 00007d6b .long 0x00007d6b + 4748: 00007d83 .long 0x00007d83 + 474c: 00007d9f .long 0x00007d9f + 4750: 00007dbd .long 0x00007dbd + 4754: 00007dda .long 0x00007dda + 4758: 00007df6 .long 0x00007df6 + 475c: 00007e0f .long 0x00007e0f + +Disassembly of section .text.ADC_Init: + +00004760 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4760: 14d0 push r15 + 4762: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4764: e3ffeed6 bsr 0x2510 // 2510 + ADC12_Software_Reset(); //ADC软件复位 + 4768: e3ffef34 bsr 0x25d0 // 25d0 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 476c: 3101 movi r1, 1 + 476e: 3002 movi r0, 2 + 4770: e3ffef1a bsr 0x25a4 // 25a4 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4774: 3301 movi r3, 1 + 4776: b861 st.w r3, (r14, 0x4) + 4778: 3302 movi r3, 2 + 477a: b860 st.w r3, (r14, 0x0) + 477c: 3200 movi r2, 0 + 477e: 3306 movi r3, 6 + 4780: 3101 movi r1, 1 + 4782: 3001 movi r0, 1 + 4784: e3ffef60 bsr 0x2644 // 2644 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 4788: 3003 movi r0, 3 + 478a: e3ffef9b bsr 0x26c0 // 26c0 + + ADC12_ConversionChannel_Config(ADC12_ADCIN9,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 478e: 3300 movi r3, 0 + 4790: 3200 movi r2, 0 + 4792: 3100 movi r1, 0 + 4794: 3009 movi r0, 9 + 4796: e3fff061 bsr 0x2858 // 2858 + + ADC12_CMD(ENABLE); + 479a: 3001 movi r0, 1 + 479c: e3ffef20 bsr 0x25dc // 25dc + + ADC12_ready_wait(); + 47a0: e3ffef32 bsr 0x2604 // 2604 + + ADC12_Control(ADC12_START); + 47a4: 3008 movi r0, 8 + 47a6: e3ffeee7 bsr 0x2574 // 2574 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 47aa: 3237 movi r2, 55 + 47ac: 3100 movi r1, 0 + 47ae: 1003 lrw r0, 0x20000356 // 47b8 + 47b0: e3ffe8da bsr 0x1964 // 1964 <__memset_fast> +} + 47b4: 1402 addi r14, r14, 8 + 47b6: 1490 pop r15 + 47b8: 20000356 .long 0x20000356 + +Disassembly of section .text.Thermistor_Array_Transform: + +000047bc : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 47bc: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 47be: 1070 lrw r3, 0x79bd // 47fc + 47c0: 640c cmphs r3, r0 +{ + 47c2: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 47c4: 0c16 bf 0x47f0 // 47f0 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47c6: 33a1 movi r3, 161 + 47c8: 4365 lsli r3, r3, 5 + 47ca: 640c cmphs r3, r0 + 47cc: 0814 bt 0x47f4 // 47f4 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47d2: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 47d6: 8a60 ld.h r3, (r2, 0x0) + 47d8: 644c cmphs r3, r1 + 47da: 0c04 bf 0x47e2 // 47e2 + 47dc: 8a61 ld.h r3, (r2, 0x2) + 47de: 644c cmphs r3, r1 + 47e0: 0c07 bf 0x47ee // 47ee + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 47ec: 30fa movi r0, 250 +} + 47ee: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 47f0: 3000 movi r0, 0 + 47f2: 07fe br 0x47ee // 47ee + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47f4: 30c8 movi r0, 200 + 47f6: 4001 lsli r0, r0, 1 + 47f8: 07fb br 0x47ee // 47ee + 47fa: 0000 bkpt + 47fc: 000079bd .long 0x000079bd + 4800: 0000779e .long 0x0000779e + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004804 : + +void Calculate_ADC_Sample_Average(void) +{ + 4804: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4808: 3200 movi r2, 0 + uint32_t temp_val = 0; + 480a: 3000 movi r0, 0 + 480c: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 480e: 5a66 addi r3, r2, 2 + 4810: 4361 lsli r3, r3, 1 + 4812: 60dc addu r3, r7 + 4814: 8323 ld.b r1, (r3, 0x3) + 4816: 8364 ld.b r3, (r3, 0x4) + 4818: 4368 lsli r3, r3, 8 + 481a: 2200 addi r2, 1 + 481c: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4824: 310a movi r1, 10 + 4826: e3fff81f bsr 0x3864 // 3864 <__udivsi3> + 482a: 74c1 zexth r3, r0 + 482c: 748c zextb r2, r3 + 482e: 11c2 lrw r6, 0x20000359 // 48b4 + 4830: 4b68 lsri r3, r3, 8 + 4832: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4834: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4836: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4838: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 483a: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 483c: 4368 lsli r3, r3, 8 + 483e: 875b ld.b r2, (r7, 0x1b) + 4840: 6cc8 or r3, r2 + 4842: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4844: 6d03 mov r4, r0 + 4846: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4848: 0c1a bf 0x487c // 487c + g_adc.temp_index = 0; + 484a: 3300 movi r3, 0 + 484c: a660 st.b r3, (r6, 0x0) + 484e: a661 st.b r3, (r6, 0x1) + 4850: 3200 movi r2, 0 + temp_val = 0; + 4852: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 486c: 310a movi r1, 10 + 486e: e3fff7fb bsr 0x3864 // 3864 <__udivsi3> + 4872: 7401 zexth r0, r0 + 4874: 1071 lrw r3, 0x20000373 // 48b8 + 4876: a300 st.b r0, (r3, 0x0) + 4878: 4808 lsri r0, r0, 8 + 487a: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 487c: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 487e: 859c ld.b r4, (r5, 0x1c) + 4880: 857b ld.b r3, (r5, 0x1b) + 4882: 4488 lsli r4, r4, 8 + 4884: 6d0c or r4, r3 + 4886: 5c62 addi r3, r4, 1 + 4888: 74cd zexth r3, r3 + 488a: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 488c: 100c lrw r0, 0x2710 // 48bc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 488e: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4890: 102c lrw r1, 0xce4 // 48c0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4892: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4894: 7c08 mult r0, r2 + 4896: 604a subu r1, r2 + 4898: e3fff7d4 bsr 0x3840 // 3840 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 489c: 240d addi r4, 14 + 489e: 7401 zexth r0, r0 + 48a0: 4481 lsli r4, r4, 1 + 48a2: e3ffff8d bsr 0x47bc // 47bc + 48a6: 6114 addu r4, r5 + 48a8: a403 st.b r0, (r4, 0x3) + 48aa: 4808 lsri r0, r0, 8 + 48ac: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 48ae: 1494 pop r4-r7, r15 + 48b0: 20000356 .long 0x20000356 + 48b4: 20000359 .long 0x20000359 + 48b8: 20000373 .long 0x20000373 + 48bc: 00002710 .long 0x00002710 + 48c0: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000048c4 : + +void ADC_Sample_Task(void){ + 48c4: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 48c6: 1188 lrw r4, 0x20000356 // 4964 + 48c8: 3020 movi r0, 32 + 48ca: 6010 addu r0, r4 + 48cc: 8054 ld.b r2, (r0, 0x14) + 48ce: 8073 ld.b r3, (r0, 0x13) + 48d0: 4248 lsli r2, r2, 8 + 48d2: 6c8c or r2, r3 + 48d4: 8075 ld.b r3, (r0, 0x15) + 48d6: 4370 lsli r3, r3, 16 + 48d8: 6c8c or r2, r3 + 48da: 8076 ld.b r3, (r0, 0x16) + 48dc: 11a3 lrw r5, 0x200000b8 // 4968 + 48de: 4378 lsli r3, r3, 24 + 48e0: 9520 ld.w r1, (r5, 0x0) + 48e2: 6cc8 or r3, r2 + 48e4: 604e subu r1, r3 + 48e6: 390a cmphsi r1, 11 + 48e8: 0c28 bf 0x4938 // 4938 + g_adc.sample_tick = SysTick_100us; + 48ea: 1161 lrw r3, 0x200000b4 // 496c + 48ec: 3233 movi r2, 51 + 48ee: 9360 ld.w r3, (r3, 0x0) + 48f0: 6090 addu r2, r4 + 48f2: 4b28 lsri r1, r3, 8 + 48f4: a260 st.b r3, (r2, 0x0) + 48f6: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 48f8: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 48fa: 4b30 lsri r1, r3, 16 + 48fc: 4b78 lsri r3, r3, 24 + 48fe: a263 st.b r3, (r2, 0x3) + 4900: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 4902: e3ffee8b bsr 0x2618 // 2618 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4906: 84c2 ld.b r6, (r4, 0x2) + 4908: 8461 ld.b r3, (r4, 0x1) + 490a: 46c8 lsli r6, r6, 8 + 490c: 6d8c or r6, r3 + 490e: 3000 movi r0, 0 + 4910: e3ffee90 bsr 0x2630 // 2630 + 4914: 5e66 addi r3, r6, 2 + 4916: 4361 lsli r3, r3, 1 + 4918: 60d0 addu r3, r4 + 491a: a303 st.b r0, (r3, 0x3) + 491c: 4808 lsri r0, r0, 8 + 491e: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 4920: 8462 ld.b r3, (r4, 0x2) + 4922: 8441 ld.b r2, (r4, 0x1) + 4924: 4368 lsli r3, r3, 8 + 4926: 6cc8 or r3, r2 + 4928: 2300 addi r3, 1 + 492a: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 492c: 3b09 cmphsi r3, 10 + 492e: 5c42 addi r2, r4, 1 + 4930: 0813 bt 0x4956 // 4956 + g_adc.index++; + 4932: a461 st.b r3, (r4, 0x1) + 4934: 4b68 lsri r3, r3, 8 + 4936: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4938: 8460 ld.b r3, (r4, 0x0) + 493a: 3b41 cmpnei r3, 1 + 493c: 080c bt 0x4954 // 4954 + if (SysTick_1ms - adc_tick >= 100) { + 493e: 104d lrw r2, 0x200000d0 // 4970 + 4940: 9220 ld.w r1, (r2, 0x0) + 4942: 9560 ld.w r3, (r5, 0x0) + 4944: 60c6 subu r3, r1 + 4946: 3163 movi r1, 99 + 4948: 64c4 cmphs r1, r3 + 494a: 0805 bt 0x4954 // 4954 + adc_tick = SysTick_1ms; + 494c: 9560 ld.w r3, (r5, 0x0) + 494e: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4950: e3ffff5a bsr 0x4804 // 4804 + } + } +} + 4954: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4956: 3300 movi r3, 0 + 4958: a461 st.b r3, (r4, 0x1) + 495a: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 495c: 3301 movi r3, 1 + 495e: a460 st.b r3, (r4, 0x0) + 4960: 07ec br 0x4938 // 4938 + 4962: 0000 bkpt + 4964: 20000356 .long 0x20000356 + 4968: 200000b8 .long 0x200000b8 + 496c: 200000b4 .long 0x200000b4 + 4970: 200000d0 .long 0x200000d0 + +Disassembly of section .text.Get_Temp_Val: + +00004974 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4974: 1063 lrw r3, 0x20000356 // 4980 + 4976: 831e ld.b r0, (r3, 0x1e) + 4978: 835d ld.b r2, (r3, 0x1d) + 497a: 4008 lsli r0, r0, 8 + 497c: 6c08 or r0, r2 +} + 497e: 783c jmp r15 + 4980: 20000356 .long 0x20000356 + +Disassembly of section .text.HT1621_WR_Data: + +00004984 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 4984: 14d4 push r4-r7, r15 + 4986: 6d43 mov r5, r0 + 4988: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 4992: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 4994: 3103 movi r1, 3 + 4996: 9600 ld.w r0, (r6, 0x0) + 4998: e3ffea84 bsr 0x1ea0 // 1ea0 + nop; + 499c: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 499e: 74d6 sextb r3, r5 + 49a0: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 49a2: 3104 movi r1, 4 + 49a4: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 49a6: 0c0d bf 0x49c0 // 49c0 + HT1621_DATA_HIGH; + 49a8: e3ffea78 bsr 0x1e98 // 1e98 + nop; + 49ac: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 49ae: 3103 movi r1, 3 + 49b0: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 49b2: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 49ba: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 49c0: e3ffea70 bsr 0x1ea0 // 1ea0 + 49c4: 07f4 br 0x49ac // 49ac + 49c6: 0000 bkpt + 49c8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000049cc : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 49cc: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 49ce: 108b lrw r4, 0x2000004c // 49f8 +{ + 49d0: 6d43 mov r5, r0 + HT1621_CS_LOW; + 49d2: 3100 movi r1, 0 + 49d4: 9400 ld.w r0, (r4, 0x0) + 49d6: e3ffea65 bsr 0x1ea0 // 1ea0 + nop; + 49da: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 49dc: 3104 movi r1, 4 + 49de: 3080 movi r0, 128 + 49e0: e3ffffd2 bsr 0x4984 // 4984 + HT1621_WR_Data(cmd,8); + 49e4: 6c17 mov r0, r5 + 49e6: 3108 movi r1, 8 + 49e8: e3ffffce bsr 0x4984 // 4984 + HT1621_CS_HIGH; + 49ec: 9400 ld.w r0, (r4, 0x0) + 49ee: 3100 movi r1, 0 + 49f0: e3ffea54 bsr 0x1e98 // 1e98 + nop; + 49f4: 6c03 mov r0, r0 +} + 49f6: 1492 pop r4-r5, r15 + 49f8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +000049fc : +void HT1621_Init(void){ + 49fc: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 49fe: 1182 lrw r4, 0x2000004c // 4a84 + 4a00: 3200 movi r2, 0 + 4a02: 9400 ld.w r0, (r4, 0x0) + 4a04: 3100 movi r1, 0 + 4a06: e3ffe9c1 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,3,Output); + 4a0a: 9400 ld.w r0, (r4, 0x0) + 4a0c: 3200 movi r2, 0 + 4a0e: 3103 movi r1, 3 + 4a10: e3ffe9bc bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,4,Output); + 4a14: 3200 movi r2, 0 + 4a16: 9400 ld.w r0, (r4, 0x0) + 4a18: 3104 movi r1, 4 + 4a1a: e3ffe9b7 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,0); + 4a1e: 9400 ld.w r0, (r4, 0x0) + 4a20: 3100 movi r1, 0 + 4a22: e3ffea34 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,3); + 4a26: 9400 ld.w r0, (r4, 0x0) + 4a28: 3103 movi r1, 3 + 4a2a: e3ffea30 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,4); + 4a2e: 9400 ld.w r0, (r4, 0x0) + 4a30: 3104 movi r1, 4 + 4a32: e3ffea2c bsr 0x1e8a // 1e8a + HT1621_CS_LOW; + 4a36: 9400 ld.w r0, (r4, 0x0) + 4a38: 3100 movi r1, 0 + 4a3a: e3ffea33 bsr 0x1ea0 // 1ea0 + HT1621_WR_LOW; + 4a3e: 9400 ld.w r0, (r4, 0x0) + 4a40: 3103 movi r1, 3 + 4a42: e3ffea2f bsr 0x1ea0 // 1ea0 + HT1621_DATA_LOW; + 4a46: 3104 movi r1, 4 + 4a48: 9400 ld.w r0, (r4, 0x0) + 4a4a: e3ffea2b bsr 0x1ea0 // 1ea0 + HT1621_WR_CMD(HT1621_BIAS); + 4a4e: 3052 movi r0, 82 + 4a50: e3ffffbe bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_RC256); + 4a54: 3030 movi r0, 48 + 4a56: e3ffffbb bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_SYSDIS); + 4a5a: 3000 movi r0, 0 + 4a5c: e3ffffb8 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_WDTDIS); + 4a60: 300a movi r0, 10 + 4a62: e3ffffb5 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_SYSEN); + 4a66: 3002 movi r0, 2 + 4a68: e3ffffb2 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_LCDON); + 4a6c: 3006 movi r0, 6 + 4a6e: e3ffffaf bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_BIOFF); + 4a72: 3010 movi r0, 16 + 4a74: e3ffffac bsr 0x49cc // 49cc + HT1621_CS_HIGH; + 4a78: 9400 ld.w r0, (r4, 0x0) + 4a7a: 3100 movi r1, 0 + 4a7c: e3ffea0e bsr 0x1e98 // 1e98 +} + 4a80: 1491 pop r4, r15 + 4a82: 0000 bkpt + 4a84: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +00004a88 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 4a88: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a8a: 3212 movi r2, 18 + 4a8c: 3100 movi r1, 0 + + HT1621_CS_LOW; + 4a8e: 10b1 lrw r5, 0x2000004c // 4ad0 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a90: 1011 lrw r0, 0x2000039c // 4ad4 + 4a92: e3ffe769 bsr 0x1964 // 1964 <__memset_fast> + HT1621_CS_LOW; + 4a96: 3100 movi r1, 0 + 4a98: 9500 ld.w r0, (r5, 0x0) + 4a9a: e3ffea03 bsr 0x1ea0 // 1ea0 + nop; + 4a9e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4aa0: 3103 movi r1, 3 + 4aa2: 30a0 movi r0, 160 + 4aa4: e3ffff70 bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4aa8: 3106 movi r1, 6 + 4aaa: 3000 movi r0, 0 + 4aac: e3ffff6c bsr 0x4984 // 4984 + 4ab0: 3412 movi r4, 18 + 4ab2: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4ac2: 9500 ld.w r0, (r5, 0x0) + 4ac4: 3100 movi r1, 0 + 4ac6: e3ffe9e9 bsr 0x1e98 // 1e98 + nop; + 4aca: 6c03 mov r0, r0 +} + 4acc: 1492 pop r4-r5, r15 + 4ace: 0000 bkpt + 4ad0: 2000004c .long 0x2000004c + 4ad4: 2000039c .long 0x2000039c + +Disassembly of section .text.HT1621_ALLON: + +00004ad8 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 4ad8: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4ada: 10af lrw r5, 0x2000004c // 4b14 + 4adc: 3100 movi r1, 0 + 4ade: 9500 ld.w r0, (r5, 0x0) + 4ae0: e3ffe9e0 bsr 0x1ea0 // 1ea0 + nop; + 4ae4: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4ae6: 3103 movi r1, 3 + 4ae8: 30a0 movi r0, 160 + 4aea: e3ffff4d bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4aee: 3106 movi r1, 6 + 4af0: 3000 movi r0, 0 + 4af2: e3ffff49 bsr 0x4984 // 4984 + 4af6: 3412 movi r4, 18 + 4af8: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b08: 9500 ld.w r0, (r5, 0x0) + 4b0a: 3100 movi r1, 0 + 4b0c: e3ffe9c6 bsr 0x1e98 // 1e98 + nop; + 4b10: 6c03 mov r0, r0 +} + 4b12: 1492 pop r4-r5, r15 + 4b14: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00004b18 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 4b18: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4b1a: 1091 lrw r4, 0x2000004c // 4b5c + 4b1c: 3100 movi r1, 0 + 4b1e: 9400 ld.w r0, (r4, 0x0) + 4b20: e3ffe9c0 bsr 0x1ea0 // 1ea0 + nop; + 4b24: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4b26: 3103 movi r1, 3 + 4b28: 30a0 movi r0, 160 + 4b2a: e3ffff2d bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4b2e: 3106 movi r1, 6 + 4b30: 3000 movi r0, 0 + 4b32: e3ffff29 bsr 0x4984 // 4984 + 4b36: 3500 movi r5, 0 + for(U8_T i=0;i + 4b3a: 60d4 addu r3, r5 + 4b3c: 830c ld.b r0, (r3, 0xc) + 4b3e: 4004 lsli r0, r0, 4 + 4b40: 7400 zextb r0, r0 + 4b42: 3104 movi r1, 4 + 4b44: 2500 addi r5, 1 + 4b46: e3ffff1f bsr 0x4984 // 4984 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b4e: 9400 ld.w r0, (r4, 0x0) + 4b50: 3100 movi r1, 0 + 4b52: e3ffe9a3 bsr 0x1e98 // 1e98 + nop; + 4b56: 6c03 mov r0, r0 +} + 4b58: 1492 pop r4-r5, r15 + 4b5a: 0000 bkpt + 4b5c: 2000004c .long 0x2000004c + 4b60: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temperature_Display: + +00004b64 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 4b64: 14d4 push r4-r7, r15 + 4b66: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4b68: 310a movi r1, 10 + 4b6a: b801 st.w r0, (r14, 0x4) + 4b6c: e3fff67c bsr 0x3864 // 3864 <__udivsi3> + 4b70: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4b72: 310a movi r1, 10 + 4b74: 6c17 mov r0, r5 + 4b76: e3fff677 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + HT1621.show_cache[6] = 0x00; + HT1621.show_cache[5] &= 0x08; + + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b7a: 10fb lrw r7, 0x7ad2 // 4be4 + 4b7c: 7400 zextb r0, r0 + 4b7e: 109b lrw r4, 0x20000390 // 4be8 + 4b80: 601c addu r0, r7 + HT1621.show_cache[9] &= 0x08; + 4b82: 3608 movi r6, 8 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b84: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[9] &= 0x08; + 4b86: 8455 ld.b r2, (r4, 0x15) + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b88: 4904 lsri r0, r1, 4 + HT1621.show_cache[9] &= 0x08; + 4b8a: 6898 and r2, r6 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b8c: 6c80 or r2, r0 + 4b8e: a455 st.b r2, (r4, 0x15) + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b90: 320f movi r2, 15 + 4b92: 6848 and r1, r2 + 4b94: a436 st.b r1, (r4, 0x16) + U8_T tmp_L = tmp_Integer%10; + 4b96: 6c17 mov r0, r5 + 4b98: 310a movi r1, 10 + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b9a: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4b9c: e3fff676 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4ba0: 7400 zextb r0, r0 + 4ba2: 601c addu r0, r7 + 4ba4: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4ba6: 9840 ld.w r2, (r14, 0x0) + 4ba8: 6c57 mov r1, r5 + 4baa: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4bac: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4bae: a434 st.b r1, (r4, 0x14) + U8_T tmp_quantile = tmp%10; + 4bb0: 6c0f mov r0, r3 + 4bb2: 310a movi r1, 10 + 4bb4: e3fff66a bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bb8: 7401 zexth r0, r0 + 4bba: 61c0 addu r7, r0 + 4bbc: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[6] |= Diaital[tmp_quantile]&0x0F; + 4bbe: 9840 ld.w r2, (r14, 0x0) + 4bc0: 688c and r2, r3 + 4bc2: a452 st.b r2, (r4, 0x12) + + //显示“℃” + HT1621.show_cache[3] |= 0x08; + 4bc4: 844f ld.b r2, (r4, 0xf) + 4bc6: 6c98 or r2, r6 + 4bc8: a44f st.b r2, (r4, 0xf) + HT1621.show_cache[4] |= 0x0B; + 4bca: 310b movi r1, 11 + 4bcc: 8450 ld.b r2, (r4, 0x10) + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bce: 4b64 lsri r3, r3, 4 + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4bd0: 4da4 lsri r5, r5, 4 + HT1621.show_cache[4] |= 0x0B; + 4bd2: 6c84 or r2, r1 + HT1621.show_cache[5] |= 0x08; + 4bd4: 6cd8 or r3, r6 + + //显示小数点 + HT1621.show_cache[7] |= 0x08; + 4bd6: 6d58 or r5, r6 + HT1621.show_cache[4] |= 0x0B; + 4bd8: a450 st.b r2, (r4, 0x10) + HT1621.show_cache[5] |= 0x08; + 4bda: a471 st.b r3, (r4, 0x11) + HT1621.show_cache[7] |= 0x08; + 4bdc: a4b3 st.b r5, (r4, 0x13) +} + 4bde: 1402 addi r14, r14, 8 + 4be0: 1494 pop r4-r7, r15 + 4be2: 0000 bkpt + 4be4: 00007ad2 .long 0x00007ad2 + 4be8: 20000390 .long 0x20000390 + +Disassembly of section .text.Local_Temperature_Display: + +00004bec : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 4bec: 14d4 push r4-r7, r15 + 4bee: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4bf0: 310a movi r1, 10 + 4bf2: b801 st.w r0, (r14, 0x4) + 4bf4: e3fff638 bsr 0x3864 // 3864 <__udivsi3> + 4bf8: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4bfa: 310a movi r1, 10 + 4bfc: 6c17 mov r0, r5 + 4bfe: e3fff633 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c02: 10f9 lrw r7, 0x7ad2 // 4c64 + 4c04: 7400 zextb r0, r0 + 4c06: 601c addu r0, r7 + 4c08: 80c0 ld.b r6, (r0, 0x0) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c0a: 320f movi r2, 15 + 4c0c: 6c5b mov r1, r6 + 4c0e: 1097 lrw r4, 0x20000390 // 4c68 + 4c10: 6848 and r1, r2 + 4c12: a43d st.b r1, (r4, 0x1d) + U8_T tmp_L = tmp_Integer%10; + 4c14: 6c17 mov r0, r5 + 4c16: 310a movi r1, 10 + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c18: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4c1a: e3fff637 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c1e: 7400 zextb r0, r0 + 4c20: 601c addu r0, r7 + 4c22: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c24: 9840 ld.w r2, (r14, 0x0) + 4c26: 6c57 mov r1, r5 + 4c28: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4c2a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c2c: a43b st.b r1, (r4, 0x1b) + U8_T tmp_quantile = tmp%10; + 4c2e: 6c0f mov r0, r3 + 4c30: 310a movi r1, 10 + 4c32: e3fff62b bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c36: 7401 zexth r0, r0 + 4c38: 61c0 addu r7, r0 + 4c3a: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c3c: 9840 ld.w r2, (r14, 0x0) + 4c3e: 688c and r2, r3 + + //显示“℃” + HT1621.show_cache[16] |= 0x08; + HT1621.show_cache[11] |= 0x0B; + 4c40: 8437 ld.b r1, (r4, 0x17) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c42: a459 st.b r2, (r4, 0x19) + HT1621.show_cache[11] |= 0x0B; + 4c44: 300b movi r0, 11 + HT1621.show_cache[16] |= 0x08; + 4c46: 3208 movi r2, 8 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c48: 4ec4 lsri r6, r6, 4 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c4a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c4c: 4da4 lsri r5, r5, 4 + HT1621.show_cache[16] |= 0x08; + 4c4e: 6d88 or r6, r2 + HT1621.show_cache[11] |= 0x0B; + 4c50: 6c40 or r1, r0 + HT1621.show_cache[12] |= 0x08; + 4c52: 6cc8 or r3, r2 + + //显示小数点 + HT1621.show_cache[14] |= 0x08; + 4c54: 6d48 or r5, r2 + HT1621.show_cache[16] |= 0x08; + 4c56: a4dc st.b r6, (r4, 0x1c) + HT1621.show_cache[11] |= 0x0B; + 4c58: a437 st.b r1, (r4, 0x17) + HT1621.show_cache[12] |= 0x08; + 4c5a: a478 st.b r3, (r4, 0x18) + HT1621.show_cache[14] |= 0x08; + 4c5c: a4ba st.b r5, (r4, 0x1a) +} + 4c5e: 1402 addi r14, r14, 8 + 4c60: 1494 pop r4-r7, r15 + 4c62: 0000 bkpt + 4c64: 00007ad2 .long 0x00007ad2 + 4c68: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Mode: + +00004c6c : +* 1 -> 制热模式 +* 2 -> 送风模式 +* 3 -> 除湿 +*/ +void Control_Mode(U8_T mode){ + switch(mode){ + 4c6c: 3842 cmpnei r0, 2 + 4c6e: 0c0f bf 0x4c8c // 4c8c + 4c70: 3844 cmpnei r0, 4 + 4c72: 0c16 bf 0x4c9e // 4c9e + 4c74: 3840 cmpnei r0, 0 + 4c76: 080a bt 0x4c8a // 4c8a + case 0x00: + HT1621.show_cache[0] &= ~0x07; + 4c78: 104e lrw r2, 0x20000390 // 4cb0 + 4c7a: 3107 movi r1, 7 + 4c7c: 826c ld.b r3, (r2, 0xc) + 4c7e: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c80: 822d ld.b r1, (r2, 0xd) + 4c82: 3980 bclri r1, 0 + 4c84: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x04; + 4c86: 3ba2 bseti r3, 2 + HT1621.show_cache[0] |= 0x02; + break; + case 0x04: + HT1621.show_cache[0] &= ~0x07; + HT1621.show_cache[1] &= ~0x01; + HT1621.show_cache[0] |= 0x01; + 4c88: a26c st.b r3, (r2, 0xc) +// HT1621.show_cache[0] &= ~0x07; +// HT1621.show_cache[1] |= 0x01; +// break; + } + +} + 4c8a: 783c jmp r15 + HT1621.show_cache[0] &= ~0x07; + 4c8c: 1049 lrw r2, 0x20000390 // 4cb0 + 4c8e: 3107 movi r1, 7 + 4c90: 826c ld.b r3, (r2, 0xc) + 4c92: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c94: 822d ld.b r1, (r2, 0xd) + 4c96: 3980 bclri r1, 0 + 4c98: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x02; + 4c9a: 3ba1 bseti r3, 1 + 4c9c: 07f6 br 0x4c88 // 4c88 + HT1621.show_cache[0] &= ~0x07; + 4c9e: 1045 lrw r2, 0x20000390 // 4cb0 + 4ca0: 3107 movi r1, 7 + 4ca2: 826c ld.b r3, (r2, 0xc) + 4ca4: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ca6: 822d ld.b r1, (r2, 0xd) + 4ca8: 3980 bclri r1, 0 + 4caa: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x01; + 4cac: 3ba0 bseti r3, 0 + 4cae: 07ed br 0x4c88 // 4c88 + 4cb0: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_wind_velocity: + +00004cb4 : +* 2 -> 中风速 +* 3 -> 高风速 +* 0 -> 自动风速 +*/ +void Control_wind_velocity(U8_T velocity) +{ + 4cb4: 14d0 push r15 + switch(velocity) + 4cb6: 3803 cmphsi r0, 4 + 4cb8: 080f bt 0x4cd6 // 4cd6 + 4cba: 107a lrw r3, 0x20000390 // 4d20 + 4cbc: e3ffe020 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4cc0: 0e0c0214 .long 0x0e0c0214 + { + case 1: //低风速 + HT1621.show_cache[2] = 0x0C; + 4cc4: 320c movi r2, 12 + HT1621.show_cache[3] &= ~0x03; + HT1621.show_cache[1] &= ~0x02; + break; + case 2: //中风速 + HT1621.show_cache[2] = 0x0F; + 4cc6: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cc8: 834f ld.b r2, (r3, 0xf) + 4cca: 3a80 bclri r2, 0 + 4ccc: 3a81 bclri r2, 1 + 4cce: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[1] &= ~0x02; + 4cd0: 834d ld.b r2, (r3, 0xd) + 4cd2: 3a81 bclri r2, 1 + 4cd4: a34d st.b r2, (r3, 0xd) + } + break; + default: + break; + } +} + 4cd6: 1490 pop r15 + HT1621.show_cache[2] = 0x0F; + 4cd8: 320f movi r2, 15 + 4cda: 07f6 br 0x4cc6 // 4cc6 + HT1621.show_cache[2] = 0x0F; + 4cdc: 320f movi r2, 15 + 4cde: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4ce0: 834f ld.b r2, (r3, 0xf) + 4ce2: 3aa0 bseti r2, 0 + 4ce4: 3aa1 bseti r2, 1 + 4ce6: 07f4 br 0x4cce // 4cce + HT1621.show_cache[1] |= 0x02; + 4ce8: 834d ld.b r2, (r3, 0xd) + 4cea: 3aa1 bseti r2, 1 + 4cec: a34d st.b r2, (r3, 0xd) + if(HT1621.wind_velocity == 0) //关风扇 + 4cee: 8343 ld.b r2, (r3, 0x3) + 4cf0: 3a40 cmpnei r2, 0 + 4cf2: 0807 bt 0x4d00 // 4d00 + HT1621.show_cache[2] = 0x0F; + 4cf4: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cf6: 834f ld.b r2, (r3, 0xf) + 4cf8: 3a80 bclri r2, 0 + 4cfa: 3a81 bclri r2, 1 + HT1621.show_cache[3] |= 0x03; + 4cfc: a34f st.b r2, (r3, 0xf) +} + 4cfe: 07ec br 0x4cd6 // 4cd6 + }else if(HT1621.wind_velocity == 1) //低风速 + 4d00: 3a41 cmpnei r2, 1 + 4d02: 0803 bt 0x4d08 // 4d08 + HT1621.show_cache[2] = 0x0C; + 4d04: 320c movi r2, 12 + 4d06: 07f7 br 0x4cf4 // 4cf4 + }else if(HT1621.wind_velocity == 2) //中风速 + 4d08: 3a42 cmpnei r2, 2 + 4d0a: 0803 bt 0x4d10 // 4d10 + HT1621.show_cache[2] = 0x0F; + 4d0c: 320f movi r2, 15 + 4d0e: 07f3 br 0x4cf4 // 4cf4 + }else if(HT1621.wind_velocity == 3) //高风速 + 4d10: 3a43 cmpnei r2, 3 + 4d12: 0be2 bt 0x4cd6 // 4cd6 + HT1621.show_cache[2] = 0x0F; + 4d14: 320f movi r2, 15 + 4d16: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4d18: 834f ld.b r2, (r3, 0xf) + 4d1a: 3aa0 bseti r2, 0 + 4d1c: 3aa1 bseti r2, 1 + 4d1e: 07ef br 0x4cfc // 4cfc + 4d20: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Prompt_Text: + +00004d24 : +*函数功能:显示 提示文字 +*参数功能:state : 0 -> 关 +* 1 -> 开 +*/ +void Control_Prompt_Text(U8_T state){ + if(state == 0x01){ + 4d24: 3841 cmpnei r0, 1 + 4d26: 1070 lrw r3, 0x20000390 // 4d64 + 4d28: 0810 bt 0x4d48 // 4d48 + HT1621.show_cache[0] |= 0x08; //模式 + 4d2a: 3008 movi r0, 8 + 4d2c: 832c ld.b r1, (r3, 0xc) + 4d2e: 6c40 or r1, r0 + 4d30: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x0C; //风速 + 4d32: 832d ld.b r1, (r3, 0xd) + 4d34: 39a2 bseti r1, 2 + 4d36: 39a3 bseti r1, 3 + 4d38: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d3a: 832f ld.b r1, (r3, 0xf) + 4d3c: 39a2 bseti r1, 2 + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d3e: 8355 ld.b r2, (r3, 0x15) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d40: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d42: 6c80 or r2, r0 + }else{ + HT1621.show_cache[0] &= ~0x08; //模式 + HT1621.show_cache[1] &= ~0x0C; //风速 + HT1621.show_cache[3] &= ~0x04; //设置温度 + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d44: a355 st.b r2, (r3, 0x15) + } +} + 4d46: 783c jmp r15 + HT1621.show_cache[0] &= ~0x08; //模式 + 4d48: 834c ld.b r2, (r3, 0xc) + 4d4a: 3a83 bclri r2, 3 + 4d4c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x0C; //风速 + 4d4e: 834d ld.b r2, (r3, 0xd) + 4d50: 3a82 bclri r2, 2 + 4d52: 3a83 bclri r2, 3 + 4d54: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x04; //设置温度 + 4d56: 834f ld.b r2, (r3, 0xf) + 4d58: 3a82 bclri r2, 2 + 4d5a: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d5c: 8355 ld.b r2, (r3, 0x15) + 4d5e: 3a83 bclri r2, 3 + 4d60: 07f2 br 0x4d44 // 4d44 + 4d62: 0000 bkpt + 4d64: 20000390 .long 0x20000390 + +Disassembly of section .text.Controlled_Buzzer: + +00004d68 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 4d68: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 4d6a: 3841 cmpnei r0, 1 + 4d6c: 0c0a bf 0x4d80 // 4d80 + 4d6e: 3840 cmpnei r0, 0 + 4d70: 0c04 bf 0x4d78 // 4d78 + 4d72: 3842 cmpnei r0, 2 + 4d74: 0c12 bf 0x4d98 // 4d98 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 4d76: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 4d78: 3010 movi r0, 16 + 4d7a: e3fffe29 bsr 0x49cc // 49cc + break; + 4d7e: 07fc br 0x4d76 // 4d76 + HT1621_WR_CMD(HT1621_BLON); + 4d80: 3012 movi r0, 18 + 4d82: e3fffe25 bsr 0x49cc // 49cc + HT1621.buz_control = 0x01; + 4d86: 1069 lrw r3, 0x20000390 // 4da8 + 4d88: 3220 movi r2, 32 + 4d8a: 608c addu r2, r3 + 4d8c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 4d8e: a222 st.b r1, (r2, 0x2) + HT1621.buz_tick = SysTick_1ms; + 4d90: 1047 lrw r2, 0x200000b8 // 4dac + 4d92: 9240 ld.w r2, (r2, 0x0) + 4d94: b34d st.w r2, (r3, 0x34) +} + 4d96: 07f0 br 0x4d76 // 4d76 + HT1621_WR_CMD(HT1621_BLON); + 4d98: 3012 movi r0, 18 + 4d9a: e3fffe19 bsr 0x49cc // 49cc + HT1621.buz_control = 0x02; + 4d9e: 1063 lrw r3, 0x20000390 // 4da8 + 4da0: 3220 movi r2, 32 + 4da2: 608c addu r2, r3 + 4da4: 3102 movi r1, 2 + 4da6: 07f4 br 0x4d8e // 4d8e + 4da8: 20000390 .long 0x20000390 + 4dac: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00004db0 : +/* +*函数功能:控制LCD 按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_LCD_Backlight(U8_T state){ + switch (state) { + 4db0: 3840 cmpnei r0, 0 + 4db2: 0c04 bf 0x4dba // 4dba + 4db4: 3841 cmpnei r0, 1 + 4db6: 0c07 bf 0x4dc4 // 4dc4 + break; + case 0x01: + EPT0->CMPC=0; + break; + } +} + 4db8: 783c jmp r15 + EPT0->CMPC=3000; + 4dba: 1065 lrw r3, 0x20000020 // 4dcc + 4dbc: 1045 lrw r2, 0xbb8 // 4dd0 + 4dbe: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPC=0; + 4dc0: b34d st.w r2, (r3, 0x34) +} + 4dc2: 07fb br 0x4db8 // 4db8 + EPT0->CMPC=0; + 4dc4: 1062 lrw r3, 0x20000020 // 4dcc + 4dc6: 3200 movi r2, 0 + 4dc8: 9360 ld.w r3, (r3, 0x0) + 4dca: 07fb br 0x4dc0 // 4dc0 + 4dcc: 20000020 .long 0x20000020 + 4dd0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Controlled_Key_Backlight: + +00004dd4 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_Key_Backlight(U8_T state){ + switch(state){ + 4dd4: 3840 cmpnei r0, 0 + 4dd6: 0c04 bf 0x4dde // 4dde + 4dd8: 3841 cmpnei r0, 1 + 4dda: 0c07 bf 0x4de8 // 4de8 + break; + case 0x01: + EPT0->CMPB=0; + break; + } +} + 4ddc: 783c jmp r15 + EPT0->CMPB=3000; + 4dde: 1065 lrw r3, 0x20000020 // 4df0 + 4de0: 1045 lrw r2, 0xbb8 // 4df4 + 4de2: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPB=0; + 4de4: b34c st.w r2, (r3, 0x30) +} + 4de6: 07fb br 0x4ddc // 4ddc + EPT0->CMPB=0; + 4de8: 1062 lrw r3, 0x20000020 // 4df0 + 4dea: 3200 movi r2, 0 + 4dec: 9360 ld.w r3, (r3, 0x0) + 4dee: 07fb br 0x4de4 // 4de4 + 4df0: 20000020 .long 0x20000020 + 4df4: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Set_Device_ADDR: + +00004df8 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4df8: 14d4 push r4-r7, r15 + 4dfa: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4dfc: 11a3 lrw r5, 0x7ad2 // 4e88 + 4dfe: 1184 lrw r4, 0x20000390 // 4e8c + 4e00: 6014 addu r0, r5 + HT1621.show_cache[7] &= 0x08; + 4e02: 3308 movi r3, 8 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4e04: 6c87 mov r2, r1 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e06: 8000 ld.b r0, (r0, 0x0) + HT1621.show_cache[7] &= 0x08; + 4e08: 8433 ld.b r1, (r4, 0x13) + 4e0a: 684c and r1, r3 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e0c: 48c4 lsri r6, r0, 4 + 4e0e: 6c58 or r1, r6 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4e10: 370f movi r7, 15 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e12: a433 st.b r1, (r4, 0x13) + HT1621.show_cache[17] = 0x00; + HT1621.show_cache[16] &= 0x08; + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4e14: 8438 ld.b r1, (r4, 0x18) + 4e16: 684c and r1, r3 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4e18: 681c and r0, r7 + 4e1a: a414 st.b r0, (r4, 0x14) + HT1621.show_cache[14] &= 0x08; + 4e1c: 84da ld.b r6, (r4, 0x1a) + HT1621.show_cache[12] &= 0x08; + 4e1e: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 4e20: 6c0b mov r0, r2 + 4e22: 3164 movi r1, 100 + HT1621.show_cache[14] &= 0x08; + 4e24: 698c and r6, r3 + HT1621.show_cache[12] &= 0x08; + 4e26: b862 st.w r3, (r14, 0x8) + U8_T tmp_H = tmp_Integer/10; + 4e28: b841 st.w r2, (r14, 0x4) + 4e2a: e3fff51d bsr 0x3864 // 3864 <__udivsi3> + + //显示设置地址 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e2e: 7400 zextb r0, r0 + 4e30: 6014 addu r0, r5 + 4e32: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[16] &= 0x08; + 4e34: 9862 ld.w r3, (r14, 0x8) + 4e36: 841c ld.b r0, (r4, 0x1c) + 4e38: 68c0 and r3, r0 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e3a: 4904 lsri r0, r1, 4 + 4e3c: 6cc0 or r3, r0 + U8_T tmp_Integer = addr/10; + 4e3e: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e40: 685c and r1, r7 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e42: a47c st.b r3, (r4, 0x1c) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e44: a43d st.b r1, (r4, 0x1d) + U8_T tmp_Integer = addr/10; + 4e46: 6c0b mov r0, r2 + 4e48: 310a movi r1, 10 + 4e4a: e3fff50d bsr 0x3864 // 3864 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 4e4e: 7400 zextb r0, r0 + 4e50: 310a movi r1, 10 + 4e52: e3fff51b bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e56: 7400 zextb r0, r0 + 4e58: 6014 addu r0, r5 + 4e5a: 8060 ld.b r3, (r0, 0x0) + 4e5c: 4b24 lsri r1, r3, 4 + U8_T tmp_quantile = addr%10; + 4e5e: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e60: 68dc and r3, r7 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e62: 6d84 or r6, r1 + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e64: a47b st.b r3, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e66: a4da st.b r6, (r4, 0x1a) + U8_T tmp_quantile = addr%10; + 4e68: 310a movi r1, 10 + 4e6a: 6c0b mov r0, r2 + 4e6c: e3fff50e bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e70: 7400 zextb r0, r0 + 4e72: 6140 addu r5, r0 + 4e74: 8560 ld.b r3, (r5, 0x0) + 4e76: 4b44 lsri r2, r3, 4 + 4e78: 9820 ld.w r1, (r14, 0x0) + 4e7a: 6c84 or r2, r1 + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e7c: 69cc and r7, r3 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e7e: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e80: a4f9 st.b r7, (r4, 0x19) +} + 4e82: 1403 addi r14, r14, 12 + 4e84: 1494 pop r4-r7, r15 + 4e86: 0000 bkpt + 4e88: 00007ad2 .long 0x00007ad2 + 4e8c: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temp_Difference: + +00004e90 : + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e90: 1057 lrw r2, 0x20000390 // 4eec + HT1621.show_cache[7] &= 0x08; + 4e92: 3108 movi r1, 8 + 4e94: 8273 ld.b r3, (r2, 0x13) + 4e96: 68c4 and r3, r1 + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e98: 3ba0 bseti r3, 0 + 4e9a: 3ba1 bseti r3, 1 + 4e9c: a273 st.b r3, (r2, 0x13) + HT1621.show_cache[8] |= Diaital[2]&0x0F; + 4e9e: 330d movi r3, 13 + 4ea0: a274 st.b r3, (r2, 0x14) + + //清楚原数字 + HT1621.show_cache[17] = 0x00; + 4ea2: 3300 movi r3, 0 + 4ea4: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] &= 0x08; + 4ea6: 827c ld.b r3, (r2, 0x1c) + 4ea8: 68c4 and r3, r1 + 4eaa: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] = 0x00; + 4eac: 3300 movi r3, 0 + 4eae: a27b st.b r3, (r2, 0x1b) + HT1621.show_cache[14] &= 0x08; + 4eb0: 827a ld.b r3, (r2, 0x1a) + 4eb2: 68c4 and r3, r1 + 4eb4: a27a st.b r3, (r2, 0x1a) + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4eb6: 8278 ld.b r3, (r2, 0x18) + 4eb8: 684c and r1, r3 + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 4eba: 3300 movi r3, 0 + 4ebc: 2b08 subi r3, 9 + 4ebe: 60c0 addu r3, r0 + 4ec0: 74cc zextb r3, r3 + 4ec2: 3b09 cmphsi r3, 10 + 4ec4: 0c08 bf 0x4ed4 // 4ed4 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 4ec6: 3808 cmphsi r0, 9 + 4ec8: 0810 bt 0x4ee8 // 4ee8 + tmp_quantile = 9 - diff; + 4eca: 3309 movi r3, 9 + 4ecc: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[14] = 0x02; + 4ece: 3002 movi r0, 2 + tmp_quantile = 9 - diff; + 4ed0: 74cc zextb r3, r3 + HT1621.show_cache[14] = 0x02; + 4ed2: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] = 0x00; + } + + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4ed4: 1007 lrw r0, 0x7ad2 // 4ef0 + 4ed6: 60c0 addu r3, r0 + 4ed8: 8360 ld.b r3, (r3, 0x0) + 4eda: 4b04 lsri r0, r3, 4 + 4edc: 6c40 or r1, r0 + 4ede: a238 st.b r1, (r2, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4ee0: 310f movi r1, 15 + 4ee2: 68c4 and r3, r1 + 4ee4: a279 st.b r3, (r2, 0x19) +} + 4ee6: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 4ee8: 3300 movi r3, 0 + 4eea: 07f5 br 0x4ed4 // 4ed4 + 4eec: 20000390 .long 0x20000390 + 4ef0: 00007ad2 .long 0x00007ad2 + +Disassembly of section .text.HT1621_Refresh_Task: + +00004ef4 : + + +void HT1621_Refresh_Task(void){ + 4ef4: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 4ef6: 10b4 lrw r5, 0x200000b8 // 4f44 + 4ef8: 1094 lrw r4, 0x20000390 // 4f48 + 4efa: 9560 ld.w r3, (r5, 0x0) + 4efc: 944b ld.w r2, (r4, 0x2c) + 4efe: 60ca subu r3, r2 + 4f00: 1053 lrw r2, 0x1f3 // 4f4c + 4f02: 64c8 cmphs r2, r3 + 4f04: 0806 bt 0x4f10 // 4f10 + HT1621.Refresh_timing = HT1621_Refresh_time; + 4f06: 33fa movi r3, 250 + 4f08: 4361 lsli r3, r3, 1 + 4f0a: b46b st.w r3, (r4, 0x2c) + + HT1621_Refresh_Data(); + 4f0c: e3fffe06 bsr 0x4b18 // 4b18 + +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 4f10: 1070 lrw r3, 0x200003b0 // 4f50 + 4f12: 8342 ld.b r2, (r3, 0x2) + 4f14: 3a41 cmpnei r2, 1 + 4f16: 080f bt 0x4f34 // 4f34 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 4f18: 942d ld.w r1, (r4, 0x34) + 4f1a: 9540 ld.w r2, (r5, 0x0) + 4f1c: 6086 subu r2, r1 + 4f1e: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f20: 6484 cmphs r1, r2 + 4f22: 0808 bt 0x4f32 // 4f32 + HT1621.buz_tick = SysTick_1ms; + 4f24: 9540 ld.w r2, (r5, 0x0) + 4f26: b44d st.w r2, (r4, 0x34) + HT1621_WR_CMD(HT1621_BIOFF); + 4f28: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 4f2a: 3200 movi r2, 0 + 4f2c: a342 st.b r2, (r3, 0x2) + HT1621_WR_CMD(HT1621_BIOFF); + 4f2e: e3fffd4f bsr 0x49cc // 49cc + Controlled_Buzzer(0x00); + } + } + + +} + 4f32: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 4f34: 3a42 cmpnei r2, 2 + 4f36: 0bfe bt 0x4f32 // 4f32 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f38: 942d ld.w r1, (r4, 0x34) + 4f3a: 9540 ld.w r2, (r5, 0x0) + 4f3c: 6086 subu r2, r1 + 4f3e: 1024 lrw r1, 0x1f3 // 4f4c + 4f40: 07f0 br 0x4f20 // 4f20 + 4f42: 0000 bkpt + 4f44: 200000b8 .long 0x200000b8 + 4f48: 20000390 .long 0x20000390 + 4f4c: 000001f3 .long 0x000001f3 + 4f50: 200003b0 .long 0x200003b0 + +Disassembly of section .text.MODEL_Ctrl_Init: + +00004f54 : +#include "includes.h" + +MODEL_Struct detect_inf; + +void MODEL_Ctrl_Init(void) +{ + 4f54: 14d1 push r4, r15 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + GPIO_Init(GPIOA0,1,1); + 4f56: 1089 lrw r4, 0x2000004c // 4f78 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + 4f58: 3208 movi r2, 8 + 4f5a: 3100 movi r1, 0 + 4f5c: 1008 lrw r0, 0x200003cc // 4f7c + 4f5e: e3ffe503 bsr 0x1964 // 1964 <__memset_fast> + GPIO_Init(GPIOA0,1,1); + 4f62: 3201 movi r2, 1 + 4f64: 9400 ld.w r0, (r4, 0x0) + 4f66: 3101 movi r1, 1 + 4f68: e3ffe710 bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,1); + 4f6c: 9400 ld.w r0, (r4, 0x0) + 4f6e: 3101 movi r1, 1 + 4f70: e3ffe77c bsr 0x1e68 // 1e68 + +} + 4f74: 1491 pop r4, r15 + 4f76: 0000 bkpt + 4f78: 2000004c .long 0x2000004c + 4f7c: 200003cc .long 0x200003cc + +Disassembly of section .text.Control_Mode_Detection: + +00004f80 : + +void Control_Mode_Detection(void){ + 4f80: 14d3 push r4-r6, r15 + + if(SysTick_1ms - detect_inf.detection_tick >= 10){ + 4f82: 1189 lrw r4, 0x200003cc // 5024 + 4f84: 8445 ld.b r2, (r4, 0x5) + 4f86: 8464 ld.b r3, (r4, 0x4) + 4f88: 4248 lsli r2, r2, 8 + 4f8a: 6c8c or r2, r3 + 4f8c: 8466 ld.b r3, (r4, 0x6) + 4f8e: 4370 lsli r3, r3, 16 + 4f90: 6c8c or r2, r3 + 4f92: 8467 ld.b r3, (r4, 0x7) + 4f94: 1105 lrw r0, 0x200000b8 // 5028 + 4f96: 4378 lsli r3, r3, 24 + 4f98: 9020 ld.w r1, (r0, 0x0) + 4f9a: 6cc8 or r3, r2 + 4f9c: 604e subu r1, r3 + 4f9e: 3909 cmphsi r1, 10 + 4fa0: 0c18 bf 0x4fd0 // 4fd0 + detect_inf.detection_tick = SysTick_1ms; + 4fa2: 9060 ld.w r3, (r0, 0x0) + 4fa4: 4b48 lsri r2, r3, 8 + + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fa6: 11a2 lrw r5, 0x2000004c // 502c + 4fa8: 3101 movi r1, 1 + detect_inf.detection_tick = SysTick_1ms; + 4faa: a464 st.b r3, (r4, 0x4) + 4fac: a445 st.b r2, (r4, 0x5) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fae: 9500 ld.w r0, (r5, 0x0) + detect_inf.detection_tick = SysTick_1ms; + 4fb0: 4b50 lsri r2, r3, 16 + 4fb2: 4b78 lsri r3, r3, 24 + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fb4: 84c1 ld.b r6, (r4, 0x1) + detect_inf.detection_tick = SysTick_1ms; + 4fb6: a446 st.b r2, (r4, 0x6) + 4fb8: a467 st.b r3, (r4, 0x7) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fba: e3ffe782 bsr 0x1ebe // 1ebe + 4fbe: 641a cmpne r6, r0 + 4fc0: 0c09 bf 0x4fd2 // 4fd2 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fc2: 9500 ld.w r0, (r5, 0x0) + 4fc4: 3101 movi r1, 1 + 4fc6: e3ffe77c bsr 0x1ebe // 1ebe + detect_inf.count = 0; + 4fca: 3300 movi r3, 0 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fcc: a401 st.b r0, (r4, 0x1) + detect_inf.count = 0; + 4fce: a460 st.b r3, (r4, 0x0) + } + } + } + + } +} + 4fd0: 1493 pop r4-r6, r15 + detect_inf.count++; + 4fd2: 8460 ld.b r3, (r4, 0x0) + 4fd4: 2300 addi r3, 1 + 4fd6: 74cc zextb r3, r3 + if (detect_inf.count >= 20) { + 4fd8: 3b13 cmphsi r3, 20 + detect_inf.count++; + 4fda: a460 st.b r3, (r4, 0x0) + if (detect_inf.count >= 20) { + 4fdc: 0ffa bf 0x4fd0 // 4fd0 + Dbg_Println(DBG_BIT_SYS_STATUS,"last_state %d state %d",detect_inf.last_state , GPIO_Read_Status(GPIOA0,1)); + 4fde: 3101 movi r1, 1 + 4fe0: 9500 ld.w r0, (r5, 0x0) + 4fe2: 84c1 ld.b r6, (r4, 0x1) + 4fe4: e3ffe76d bsr 0x1ebe // 1ebe + 4fe8: 6cc3 mov r3, r0 + 4fea: 6c9b mov r2, r6 + 4fec: 1031 lrw r1, 0x7e2e // 5030 + 4fee: 3000 movi r0, 0 + 4ff0: e3fff5ae bsr 0x3b4c // 3b4c + detect_inf.control_model = detect_inf.last_state; + 4ff4: 8461 ld.b r3, (r4, 0x1) + detect_inf.stop_detect = 0x01; + 4ff6: 3201 movi r2, 1 + if (detect_inf.control_model == 0x00) { + 4ff8: 3b40 cmpnei r3, 0 + detect_inf.control_model = detect_inf.last_state; + 4ffa: a463 st.b r3, (r4, 0x3) + detect_inf.stop_detect = 0x01; + 4ffc: a442 st.b r2, (r4, 0x2) + if (detect_inf.control_model == 0x00) { + 4ffe: 0be9 bt 0x4fd0 // 4fd0 + GPIO_PullHighLow_DIS(GPIOA0, 1); + 5000: 9500 ld.w r0, (r5, 0x0) + 5002: 3101 movi r1, 1 + 5004: e3ffe73c bsr 0x1e7c // 1e7c + GPIO_Init(GPIOA0,1,Output); + 5008: 3200 movi r2, 0 + 500a: 9500 ld.w r0, (r5, 0x0) + 500c: 3101 movi r1, 1 + 500e: e3ffe6bd bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,1); + 5012: 9500 ld.w r0, (r5, 0x0) + 5014: 3101 movi r1, 1 + 5016: e3ffe73a bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,1); + 501a: 9500 ld.w r0, (r5, 0x0) + 501c: 3101 movi r1, 1 + 501e: e3ffe741 bsr 0x1ea0 // 1ea0 +} + 5022: 07d7 br 0x4fd0 // 4fd0 + 5024: 200003cc .long 0x200003cc + 5028: 200000b8 .long 0x200000b8 + 502c: 2000004c .long 0x2000004c + 5030: 00007e2e .long 0x00007e2e + +Disassembly of section .text.TemCtrl_Init: + +00005034 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 5034: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 5036: 1289 lrw r4, 0x200003d4 // 5158 + 5038: 321f movi r2, 31 + 503a: 3100 movi r1, 0 + 503c: 6c13 mov r0, r4 + 503e: e3ffe493 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 5042: 1267 lrw r3, 0x200000a8 // 515c + 5044: 9360 ld.w r3, (r3, 0x0) + 5046: 3b80 bclri r3, 0 + 5048: 3b40 cmpnei r3, 0 + 504a: 0c80 bf 0x514a // 514a + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 504c: 1225 lrw r1, 0x7e45 // 5160 + 504e: 3000 movi r0, 0 + 5050: e3fff57e bsr 0x3b4c // 3b4c + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 5054: 1264 lrw r3, 0x200000a4 // 5164 + 5056: 30ff movi r0, 255 + 5058: 9320 ld.w r1, (r3, 0x0) + 505a: 6840 and r1, r0 + 505c: 3940 cmpnei r1, 0 + 505e: 0c05 bf 0x5068 // 5068 + 5060: 9340 ld.w r2, (r3, 0x0) + 5062: 6880 and r2, r0 + 5064: 3a41 cmpnei r2, 1 + 5066: 0865 bt 0x5130 // 5130 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 5068: 9340 ld.w r2, (r3, 0x0) + 506a: 4227 lsli r1, r2, 7 + 506c: 307f movi r0, 127 + 506e: 8442 ld.b r2, (r4, 0x2) + 5070: 6880 and r2, r0 + 5072: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5074: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 5076: 9340 ld.w r2, (r3, 0x0) + 5078: 4a48 lsri r2, r2, 8 + 507a: 7488 zextb r2, r2 + 507c: 3a03 cmphsi r2, 4 + 507e: 085d bt 0x5138 // 5138 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 5080: 9340 ld.w r2, (r3, 0x0) + 5082: 3107 movi r1, 7 + 5084: 4a48 lsri r2, r2, 8 + 5086: 6884 and r2, r1 + 5088: 3070 movi r0, 112 + 508a: 8422 ld.b r1, (r4, 0x2) + 508c: 4244 lsli r2, r2, 4 + 508e: 6841 andn r1, r0 + 5090: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5092: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 5094: 9340 ld.w r2, (r3, 0x0) + 5096: 4a50 lsri r2, r2, 16 + 5098: 7488 zextb r2, r2 + 509a: 3a03 cmphsi r2, 4 + 509c: 0852 bt 0x5140 // 5140 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 509e: 9340 ld.w r2, (r3, 0x0) + 50a0: 3107 movi r1, 7 + 50a2: 4a50 lsri r2, r2, 16 + 50a4: 6884 and r2, r1 + 50a6: 300e movi r0, 14 + 50a8: 8422 ld.b r1, (r4, 0x2) + 50aa: 4241 lsli r2, r2, 1 + 50ac: 6841 andn r1, r0 + 50ae: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 50b0: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 50b2: 9340 ld.w r2, (r3, 0x0) + 50b4: 4a58 lsri r2, r2, 24 + 50b6: 3a0f cmphsi r2, 16 + 50b8: 0c05 bf 0x50c2 // 50c2 + 50ba: 9340 ld.w r2, (r3, 0x0) + 50bc: 4a58 lsri r2, r2, 24 + 50be: 3a1f cmphsi r2, 32 + 50c0: 0c05 bf 0x50ca // 50ca + 50c2: 9340 ld.w r2, (r3, 0x0) + 50c4: 4a58 lsri r2, r2, 24 + 50c6: 3a40 cmpnei r2, 0 + 50c8: 0846 bt 0x5154 // 5154 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 50ca: 9360 ld.w r3, (r3, 0x0) + 50cc: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 50ce: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 50d0: e3fffc52 bsr 0x4974 // 4974 + 50d4: 1165 lrw r3, 0x20000350 // 5168 + 50d6: 8362 ld.b r3, (r3, 0x2) + 50d8: 320a movi r2, 10 + 50da: 7cc8 mult r3, r2 + 50dc: 2b59 subi r3, 90 + 50de: 600c addu r0, r3 + 50e0: 7401 zexth r0, r0 + 50e2: 4868 lsri r3, r0, 8 + 50e4: a469 st.b r3, (r4, 0x9) + 50e6: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50e8: 310a movi r1, 10 + 50ea: e3fff3bd bsr 0x3864 // 3864 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 50ee: 3301 movi r3, 1 + 50f0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 50f2: 3300 movi r3, 0 + 50f4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 50f6: 3200 movi r2, 0 + 50f8: 107d lrw r3, 0x2000005c // 516c + 50fa: 9360 ld.w r3, (r3, 0x0) + 50fc: 23ff addi r3, 256 + 50fe: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5100: 8442 ld.b r2, (r4, 0x2) + 5102: 4239 lsli r1, r2, 25 + 5104: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 5106: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5108: 4128 lsli r1, r1, 8 + 510a: 9300 ld.w r0, (r3, 0x0) + 510c: 6c40 or r1, r0 + 510e: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5110: 423c lsli r1, r2, 28 + 5112: 493d lsri r1, r1, 29 + 5114: 9300 ld.w r0, (r3, 0x0) + 5116: 4130 lsli r1, r1, 16 + 5118: 6c40 or r1, r0 + 511a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 511c: 8421 ld.b r1, (r4, 0x1) + 511e: 9300 ld.w r0, (r3, 0x0) + 5120: 4138 lsli r1, r1, 24 + 5122: 6c40 or r1, r0 + 5124: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5126: 9320 ld.w r1, (r3, 0x0) + 5128: 4a47 lsri r2, r2, 7 + 512a: 6c84 or r2, r1 + 512c: b340 st.w r2, (r3, 0x0) +} + 512e: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5130: 8442 ld.b r2, (r4, 0x2) + 5132: 317f movi r1, 127 + 5134: 6884 and r2, r1 + 5136: 079f br 0x5074 // 5074 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5138: 8442 ld.b r2, (r4, 0x2) + 513a: 3170 movi r1, 112 + 513c: 6885 andn r2, r1 + 513e: 07aa br 0x5092 // 5092 + TempCtrl.TemState_Now.fan = FAN_MID; + 5140: 8442 ld.b r2, (r4, 0x2) + 5142: 310e movi r1, 14 + 5144: 6885 andn r2, r1 + 5146: 3aa2 bseti r2, 2 + 5148: 07b4 br 0x50b0 // 50b0 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 514a: 8462 ld.b r3, (r4, 0x2) + 514c: 320e movi r2, 14 + 514e: 68c9 andn r3, r2 + 5150: 3ba2 bseti r3, 2 + 5152: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 5154: 3318 movi r3, 24 + 5156: 07bc br 0x50ce // 50ce + 5158: 200003d4 .long 0x200003d4 + 515c: 200000a8 .long 0x200000a8 + 5160: 00007e45 .long 0x00007e45 + 5164: 200000a4 .long 0x200000a4 + 5168: 20000350 .long 0x20000350 + 516c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00005170 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 5170: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 5172: 1031 lrw r1, 0x200003d4 // 51b4 + 5174: 8162 ld.b r3, (r1, 0x2) + 5176: 748e sextb r2, r3 + 5178: 3adf btsti r2, 31 + 517a: 0c14 bf 0x51a2 // 51a2 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 517c: 4359 lsli r2, r3, 25 + 517e: 4a5d lsri r2, r2, 29 + 5180: 3a42 cmpnei r2, 2 + 5182: 0c11 bf 0x51a4 // 51a4 + 5184: 3a44 cmpnei r2, 4 + 5186: 0c13 bf 0x51ac // 51ac + 5188: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 518a: 3270 movi r2, 112 + 518c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 518e: 0802 bt 0x5192 // 5192 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 5190: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 5192: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 5194: 8142 ld.b r2, (r1, 0x2) + 5196: 4259 lsli r2, r2, 25 + 5198: 4a5d lsri r2, r2, 29 + 519a: 1028 lrw r1, 0x7e5e // 51b8 + 519c: 3000 movi r0, 0 + 519e: e3fff4d7 bsr 0x3b4c // 3b4c +} + 51a2: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 51a4: 3270 movi r2, 112 + 51a6: 68c9 andn r3, r2 + 51a8: 3ba6 bseti r3, 6 + 51aa: 07f4 br 0x5192 // 5192 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 51ac: 3270 movi r2, 112 + 51ae: 68c9 andn r3, r2 + 51b0: 07f1 br 0x5192 // 5192 + 51b2: 0000 bkpt + 51b4: 200003d4 .long 0x200003d4 + 51b8: 00007e5e .long 0x00007e5e + +Disassembly of section .text.TemCtrl_Fan_Set: + +000051bc : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 51bc: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 51be: 1071 lrw r3, 0x200003d4 // 5200 + 51c0: 8342 ld.b r2, (r3, 0x2) + 51c2: 744a sextb r1, r2 + 51c4: 39df btsti r1, 31 + 51c6: 0c15 bf 0x51f0 // 51f0 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 51c8: 421c lsli r0, r2, 28 + 51ca: 481d lsri r0, r0, 29 + 51cc: 3803 cmphsi r0, 4 + 51ce: 0815 bt 0x51f8 // 51f8 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 51d0: 8342 ld.b r2, (r3, 0x2) + 51d2: 310e movi r1, 14 + 51d4: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 51d6: e3ffdd93 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 51da: 0211 .short 0x0211 + 51dc: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 51de: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; + 51e0: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 51e2: 8342 ld.b r2, (r3, 0x2) + 51e4: 425c lsli r2, r2, 28 + 51e6: 4a5d lsri r2, r2, 29 + 51e8: 1027 lrw r1, 0x7e67 // 5204 + 51ea: 3000 movi r0, 0 + 51ec: e3fff4b0 bsr 0x3b4c // 3b4c +} + 51f0: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 51f2: 3aa1 bseti r2, 1 + 51f4: 3aa2 bseti r2, 2 + 51f6: 07f5 br 0x51e0 // 51e0 + TempCtrl.TemState_Now.fan = FAN_LOW; + 51f8: 310e movi r1, 14 + 51fa: 6885 andn r2, r1 + 51fc: 3aa1 bseti r2, 1 + 51fe: 07f1 br 0x51e0 // 51e0 + 5200: 200003d4 .long 0x200003d4 + 5204: 00007e67 .long 0x00007e67 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00005208 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 5208: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 520a: 106a lrw r3, 0x200003d4 // 5230 + 520c: 8342 ld.b r2, (r3, 0x2) + 520e: 748a sextb r2, r2 + 5210: 3adf btsti r2, 31 + 5212: 0c0b bf 0x5228 // 5228 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 5214: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 5216: 3a10 cmphsi r2, 17 + 5218: 0c09 bf 0x522a // 522a + { + TemSet--; //超过最低温度,就减 + 521a: 2a00 subi r2, 1 + 521c: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 521e: 1026 lrw r1, 0x7e6e // 5234 + 5220: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 5222: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 5224: e3fff494 bsr 0x3b4c // 3b4c +} + 5228: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 522a: 3210 movi r2, 16 + 522c: 07f9 br 0x521e // 521e + 522e: 0000 bkpt + 5230: 200003d4 .long 0x200003d4 + 5234: 00007e6e .long 0x00007e6e + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00005238 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 5238: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 523a: 106a lrw r3, 0x200003d4 // 5260 + 523c: 8342 ld.b r2, (r3, 0x2) + 523e: 748a sextb r2, r2 + 5240: 3adf btsti r2, 31 + 5242: 0c0b bf 0x5258 // 5258 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 5244: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 5246: 3a1f cmphsi r2, 32 + 5248: 0809 bt 0x525a // 525a + { + TemSet++; + 524a: 2200 addi r2, 1 + 524c: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 524e: 1026 lrw r1, 0x7e77 // 5264 + 5250: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 5252: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 5254: e3fff47c bsr 0x3b4c // 3b4c +} + 5258: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 525a: 3220 movi r2, 32 + 525c: 07f9 br 0x524e // 524e + 525e: 0000 bkpt + 5260: 200003d4 .long 0x200003d4 + 5264: 00007e77 .long 0x00007e77 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00005268 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 5268: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 526a: 104b lrw r2, 0x200003d4 // 5294 + 526c: 8262 ld.b r3, (r2, 0x2) + 526e: 4b27 lsri r1, r3, 7 + 5270: 3940 cmpnei r1, 0 + 5272: 0c0d bf 0x528c // 528c + 5274: 3941 cmpnei r1, 1 + 5276: 080b bt 0x528c // 528c + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 5278: 317f movi r1, 127 + 527a: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 527c: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 527e: 8242 ld.b r2, (r2, 0x2) + 5280: 4a47 lsri r2, r2, 7 + 5282: 1026 lrw r1, 0x7e77 // 5298 + 5284: 3000 movi r0, 0 + 5286: e3fff463 bsr 0x3b4c // 3b4c +} + 528a: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 528c: 3100 movi r1, 0 + 528e: 297f subi r1, 128 + 5290: 6cc4 or r3, r1 + 5292: 07f5 br 0x527c // 527c + 5294: 200003d4 .long 0x200003d4 + 5298: 00007e77 .long 0x00007e77 + +Disassembly of section .text.Tem_Valve_Ctrl: + +0000529c : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 529c: 14d2 push r4-r5, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 529e: 1285 lrw r4, 0x200003d4 // 53b0 + 52a0: 8420 ld.b r1, (r4, 0x0) + 52a2: 3940 cmpnei r1, 0 + 52a4: 0802 bt 0x52a8 // 52a8 + 52a6: 3120 movi r1, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 52a8: 8441 ld.b r2, (r4, 0x1) + 52aa: 3a40 cmpnei r2, 0 + 52ac: 0802 bt 0x52b0 // 52b0 + 52ae: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 52b0: 8462 ld.b r3, (r4, 0x2) + 52b2: 4b07 lsri r0, r3, 7 + 52b4: 3840 cmpnei r0, 0 + 52b6: 0c41 bf 0x5338 // 5338 + 52b8: 3841 cmpnei r0, 1 + 52ba: 083b bt 0x5330 // 5330 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 52bc: 4319 lsli r0, r3, 25 + 52be: 481d lsri r0, r0, 29 + 52c0: 3842 cmpnei r0, 2 + 52c2: 0c38 bf 0x5332 // 5332 + 52c4: 3844 cmpnei r0, 4 + 52c6: 0c5e bf 0x5382 // 5382 + 52c8: 3840 cmpnei r0, 0 + 52ca: 0833 bt 0x5330 // 5330 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 52cc: 5a03 subi r0, r2, 1 + 52ce: 6405 cmplt r1, r0 + 52d0: 0c09 bf 0x52e2 // 52e2 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52d2: 3b80 bclri r3, 0 + 52d4: a462 st.b r3, (r4, 0x2) + { + RLY2_COLD_OPEN; + RLY1_HOT_OPEN; +// Dbg_Println(DBG_BIT_SYS_STATUS,"cold on pipe 2"); + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + RLY2_COLD_CLOSE; + 52d6: 11b8 lrw r5, 0x2000004c // 53b4 + 52d8: 310f movi r1, 15 + 52da: 9500 ld.w r0, (r5, 0x0) + 52dc: e3ffe5e2 bsr 0x1ea0 // 1ea0 + 52e0: 040f br 0x52fe // 52fe + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 52e2: 2200 addi r2, 1 + 52e4: 6449 cmplt r2, r1 + 52e6: 0c25 bf 0x5330 // 5330 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 52e8: 3ba0 bseti r3, 0 + 52ea: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 52ec: 1173 lrw r3, 0x20000350 // 53b8 + 52ee: 8361 ld.b r3, (r3, 0x1) + 52f0: 3b41 cmpnei r3, 1 + 52f2: 083c bt 0x536a // 536a + RLY2_COLD_OPEN; + 52f4: 11b0 lrw r5, 0x2000004c // 53b4 + 52f6: 310f movi r1, 15 + 52f8: 9500 ld.w r0, (r5, 0x0) + 52fa: e3ffe5cf bsr 0x1e98 // 1e98 + RLY1_HOT_CLOSE; + 52fe: 9500 ld.w r0, (r5, 0x0) + 5300: 310e movi r1, 14 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 5302: e3ffe5cf bsr 0x1ea0 // 1ea0 + 5306: 0403 br 0x530c // 530c + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 5308: 3b42 cmpnei r3, 2 + 530a: 0fe6 bf 0x52d6 // 52d6 + if (detect_inf.control_model != 0x00){ + 530c: 116c lrw r3, 0x200003cc // 53bc + 530e: 8363 ld.b r3, (r3, 0x3) + 5310: 3b40 cmpnei r3, 0 + 5312: 0c0f bf 0x5330 // 5330 + if(rf_info.valve_state_last != TempCtrl.TemState_Now.valve) + 5314: 8462 ld.b r3, (r4, 0x2) + 5316: 437f lsli r3, r3, 31 + 5318: 4b7f lsri r3, r3, 31 + 531a: 114a lrw r2, 0x200005a0 // 53c0 + 531c: 744c zextb r1, r3 + 531e: 8202 ld.b r0, (r2, 0x2) + 5320: 6442 cmpne r0, r1 + 5322: 0c07 bf 0x5330 // 5330 + { + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + rf_info.valve_flag = 0x01; + 5324: 3100 movi r1, 0 + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + 5326: a262 st.b r3, (r2, 0x2) + rf_info.valve_flag = 0x01; + 5328: 297f subi r1, 128 + 532a: 8261 ld.b r3, (r2, 0x1) + 532c: 6cc4 or r3, r1 + 532e: a261 st.b r3, (r2, 0x1) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 5330: 1492 pop r4-r5, r15 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5332: 5a02 addi r0, r2, 1 + 5334: 6441 cmplt r0, r1 + 5336: 0c09 bf 0x5348 // 5348 + RLY1_HOT_CLOSE; + 5338: 10bf lrw r5, 0x2000004c // 53b4 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 533a: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 533c: 310e movi r1, 14 + 533e: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5340: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 5342: e3ffe5af bsr 0x1ea0 // 1ea0 + 5346: 040f br 0x5364 // 5364 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 5348: 2a00 subi r2, 1 + 534a: 6485 cmplt r1, r2 + 534c: 0ff2 bf 0x5330 // 5330 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 534e: 3ba0 bseti r3, 0 + 5350: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 5352: 107a lrw r3, 0x20000350 // 53b8 + 5354: 8361 ld.b r3, (r3, 0x1) + 5356: 3b41 cmpnei r3, 1 + 5358: 0809 bt 0x536a // 536a + RLY1_HOT_OPEN; + 535a: 10b7 lrw r5, 0x2000004c // 53b4 + 535c: 310e movi r1, 14 + 535e: 9500 ld.w r0, (r5, 0x0) + 5360: e3ffe59c bsr 0x1e98 // 1e98 + RLY2_COLD_CLOSE; + 5364: 9500 ld.w r0, (r5, 0x0) + 5366: 310f movi r1, 15 + 5368: 07cd br 0x5302 // 5302 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 536a: 3b40 cmpnei r3, 0 + 536c: 0bce bt 0x5308 // 5308 + RLY2_COLD_OPEN; + 536e: 10b2 lrw r5, 0x2000004c // 53b4 + 5370: 310f movi r1, 15 + 5372: 9500 ld.w r0, (r5, 0x0) + 5374: e3ffe592 bsr 0x1e98 // 1e98 + RLY1_HOT_OPEN; + 5378: 9500 ld.w r0, (r5, 0x0) + 537a: 310e movi r1, 14 + 537c: e3ffe58e bsr 0x1e98 // 1e98 + 5380: 07c6 br 0x530c // 530c + RLY1_HOT_CLOSE; + 5382: 10ad lrw r5, 0x2000004c // 53b4 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5384: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 5386: 310e movi r1, 14 + 5388: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 538a: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 538c: e3ffe58a bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 5390: 9500 ld.w r0, (r5, 0x0) + 5392: 310f movi r1, 15 + 5394: e3ffe586 bsr 0x1ea0 // 1ea0 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 5398: 1068 lrw r3, 0x20000350 // 53b8 + 539a: 8361 ld.b r3, (r3, 0x1) + 539c: 3b42 cmpnei r3, 2 + 539e: 0bb7 bt 0x530c // 530c + Relay_Stop(); + 53a0: e00008c2 bsr 0x6524 // 6524 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 53a4: 1028 lrw r1, 0x7e85 // 53c4 + 53a6: 3000 movi r0, 0 + 53a8: e3fff3d2 bsr 0x3b4c // 3b4c + 53ac: 07b0 br 0x530c // 530c + 53ae: 0000 bkpt + 53b0: 200003d4 .long 0x200003d4 + 53b4: 2000004c .long 0x2000004c + 53b8: 20000350 .long 0x20000350 + 53bc: 200003cc .long 0x200003cc + 53c0: 200005a0 .long 0x200005a0 + 53c4: 00007e85 .long 0x00007e85 + +Disassembly of section .text.TemCtrl_Pro: + +000053c8 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 53c8: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 53ca: 120d lrw r0, 0x200000b8 // 54fc + 53cc: 122d lrw r1, 0x200000d4 // 5500 + 53ce: 9040 ld.w r2, (r0, 0x0) + 53d0: 9160 ld.w r3, (r1, 0x0) + 53d2: 608e subu r2, r3 + 53d4: 33fa movi r3, 250 + 53d6: 4362 lsli r3, r3, 2 + 53d8: 648c cmphs r3, r2 + 53da: 0835 bt 0x5444 // 5444 + { + tick = SysTick_1ms; + 53dc: 9060 ld.w r3, (r0, 0x0) + 53de: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 53e0: e3fffaca bsr 0x4974 // 4974 + 53e4: 12c8 lrw r6, 0x20000350 // 5504 + 53e6: 8662 ld.b r3, (r6, 0x2) + 53e8: 320a movi r2, 10 + 53ea: 7cc8 mult r3, r2 + 53ec: 2b59 subi r3, 90 + 53ee: 600c addu r0, r3 + 53f0: 7401 zexth r0, r0 + 53f2: 1286 lrw r4, 0x200003d4 // 5508 + 53f4: 7480 zextb r2, r0 + 53f6: 4868 lsri r3, r0, 8 + 53f8: a448 st.b r2, (r4, 0x8) + 53fa: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 53fc: a44c st.b r2, (r4, 0xc) + 53fe: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 5400: 310a movi r1, 10 + 5402: e3fff231 bsr 0x3864 // 3864 <__udivsi3> + 5406: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 5408: e3ffff4a bsr 0x529c // 529c + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 540c: 8462 ld.b r3, (r4, 0x2) + 540e: 748c zextb r2, r3 + 5410: 3171 movi r1, 113 + 5412: 6c0b mov r0, r2 + 5414: 6805 andn r0, r1 + 5416: 3180 movi r1, 128 + 5418: 6442 cmpne r0, r1 + 541a: 6d53 mov r5, r4 + 541c: 083f bt 0x549a // 549a + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 541e: 3370 movi r3, 112 + 5420: 688c and r2, r3 + 5422: 3a40 cmpnei r2, 0 + 5424: 0829 bt 0x5476 // 5476 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5426: 8461 ld.b r3, (r4, 0x1) + 5428: 8440 ld.b r2, (r4, 0x0) + 542a: 5b27 subi r1, r3, 2 + 542c: 6449 cmplt r2, r1 + 542e: 0c0c bf 0x5446 // 5446 + { + Relay_Stop(); //风速停 + 5430: e000087a bsr 0x6524 // 6524 + HT1621.wind_velocity = 0; + 5434: 1176 lrw r3, 0x20000390 // 550c + 5436: 3200 movi r2, 0 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 1; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5438: 8502 ld.b r0, (r5, 0x2) + 543a: 401c lsli r0, r0, 28 + 543c: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 1; + 543e: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5440: e3fffc3a bsr 0x4cb4 // 4cb4 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 5444: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5446: 5b23 subi r1, r3, 1 + 5448: 644a cmpne r2, r1 + 544a: 0806 bt 0x5456 // 5456 + Relay_Low(); //低风速 + 544c: e000085a bsr 0x6500 // 6500 + HT1621.wind_velocity = 1; + 5450: 116f lrw r3, 0x20000390 // 550c + 5452: 3201 movi r2, 1 + 5454: 07f2 br 0x5438 // 5438 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5456: 5b22 addi r1, r3, 1 + 5458: 644a cmpne r2, r1 + 545a: 0806 bt 0x5466 // 5466 + Relay_Mid(); //中风速 + 545c: e0000840 bsr 0x64dc // 64dc + HT1621.wind_velocity = 2; + 5460: 116b lrw r3, 0x20000390 // 550c + 5462: 3202 movi r2, 2 + 5464: 07ea br 0x5438 // 5438 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5466: 2301 addi r3, 2 + 5468: 648d cmplt r3, r2 + 546a: 0fed bf 0x5444 // 5444 + Relay_High(); //高风速 + 546c: e0000826 bsr 0x64b8 // 64b8 + HT1621.wind_velocity = 3; + 5470: 1167 lrw r3, 0x20000390 // 550c + 5472: 3203 movi r2, 3 + 5474: 07e2 br 0x5438 // 5438 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 5476: 3320 movi r3, 32 + 5478: 64ca cmpne r2, r3 + 547a: 0be5 bt 0x5444 // 5444 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 547c: 8461 ld.b r3, (r4, 0x1) + 547e: 8440 ld.b r2, (r4, 0x0) + 5480: 5b27 subi r1, r3, 2 + 5482: 6449 cmplt r2, r1 + 5484: 0bf4 bt 0x546c // 546c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5486: 5b23 subi r1, r3, 1 + 5488: 644a cmpne r2, r1 + 548a: 0fe9 bf 0x545c // 545c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 548c: 5b22 addi r1, r3, 1 + 548e: 644a cmpne r2, r1 + 5490: 0fde bf 0x544c // 544c + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5492: 2301 addi r3, 2 + 5494: 648d cmplt r3, r2 + 5496: 0fd7 bf 0x5444 // 5444 + 5498: 07cc br 0x5430 // 5430 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 549a: 8621 ld.b r1, (r6, 0x1) + 549c: 3942 cmpnei r1, 2 + 549e: 744a sextb r1, r2 + 54a0: 0829 bt 0x54f2 // 54f2 + 54a2: 39df btsti r1, 31 + 54a4: 0c27 bf 0x54f2 // 54f2 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 54a6: 310e movi r1, 14 + 54a8: 6848 and r1, r2 + 54aa: 3940 cmpnei r1, 0 + 54ac: 0fcc bf 0x5444 // 5444 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 54ae: 3170 movi r1, 112 + 54b0: 6884 and r2, r1 + 54b2: 3a40 cmpnei r2, 0 + 54b4: 0811 bt 0x54d6 // 54d6 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 54b6: 8441 ld.b r2, (r4, 0x1) + 54b8: 2a01 subi r2, 2 + 54ba: 8420 ld.b r1, (r4, 0x0) + 54bc: 6485 cmplt r1, r2 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 54be: 0bb9 bt 0x5430 // 5430 + switch(TempCtrl.TemState_Now.fan) + 54c0: 437c lsli r3, r3, 28 + 54c2: 4b7d lsri r3, r3, 29 + 54c4: 3b42 cmpnei r3, 2 + 54c6: 0c10 bf 0x54e6 // 54e6 + 54c8: 3b43 cmpnei r3, 3 + 54ca: 0c11 bf 0x54ec // 54ec + 54cc: 3b41 cmpnei r3, 1 + 54ce: 0bbb bt 0x5444 // 5444 + Relay_Low(); + 54d0: e0000818 bsr 0x6500 // 6500 + break; + 54d4: 07b8 br 0x5444 // 5444 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 54d6: 3120 movi r1, 32 + 54d8: 644a cmpne r2, r1 + 54da: 0bb5 bt 0x5444 // 5444 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 54dc: 8441 ld.b r2, (r4, 0x1) + 54de: 2201 addi r2, 2 + 54e0: 8420 ld.b r1, (r4, 0x0) + 54e2: 6449 cmplt r2, r1 + 54e4: 07ed br 0x54be // 54be + Relay_Mid(); + 54e6: e00007fb bsr 0x64dc // 64dc + break; + 54ea: 07ad br 0x5444 // 5444 + Relay_High(); + 54ec: e00007e6 bsr 0x64b8 // 64b8 + break; + 54f0: 07aa br 0x5444 // 5444 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 54f2: 39df btsti r1, 31 + 54f4: 0ba8 bt 0x5444 // 5444 + Relay_Stop(); //风速停 + 54f6: e0000817 bsr 0x6524 // 6524 + 54fa: 07a5 br 0x5444 // 5444 + 54fc: 200000b8 .long 0x200000b8 + 5500: 200000d4 .long 0x200000d4 + 5504: 20000350 .long 0x20000350 + 5508: 200003d4 .long 0x200003d4 + 550c: 20000390 .long 0x20000390 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00005510 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 5510: 14d2 push r4-r5, r15 + 5512: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 5514: 1131 lrw r1, 0x7e8e // 55d8 + 5516: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5518: 1191 lrw r4, 0x200003f3 // 55dc + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 551a: e3fff319 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 551e: 8460 ld.b r3, (r4, 0x0) + 5520: 3b41 cmpnei r3, 1 + 5522: 11b0 lrw r5, 0x200000b8 // 55e0 + 5524: 082e bt 0x5580 // 5580 + { + Debug_Inf.Tick = SysTick_1ms; + 5526: 9560 ld.w r3, (r5, 0x0) + 5528: 4b48 lsri r2, r3, 8 + 552a: a468 st.b r3, (r4, 0x8) + 552c: a449 st.b r2, (r4, 0x9) + 552e: 4b50 lsri r2, r3, 16 + 5530: 4b78 lsri r3, r3, 24 + 5532: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page < PAGE5ID) + 5534: 8462 ld.b r3, (r4, 0x2) + 5536: 3b04 cmphsi r3, 5 + Debug_Inf.Tick = SysTick_1ms; + 5538: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page < PAGE5ID) + 553a: 0803 bt 0x5540 // 5540 + { + Debug_Inf.Page++; + 553c: 2300 addi r3, 1 + 553e: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 5540: e3fffaa4 bsr 0x4a88 // 4a88 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 5544: 8462 ld.b r3, (r4, 0x2) + 5546: 3b42 cmpnei r3, 2 + 5548: 0806 bt 0x5554 // 5554 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 554a: 8405 ld.b r0, (r4, 0x5) + 554c: e3fffca2 bsr 0x4e90 // 4e90 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 5550: 1401 addi r14, r14, 4 + 5552: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 5554: 3b41 cmpnei r3, 1 + 5556: 0806 bt 0x5562 // 5562 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5558: 8424 ld.b r1, (r4, 0x4) + 555a: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 555c: e3fffc4e bsr 0x4df8 // 4df8 + 5560: 07f8 br 0x5550 // 5550 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 5562: 3b43 cmpnei r3, 3 + 5564: 0804 bt 0x556c // 556c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5566: 8426 ld.b r1, (r4, 0x6) + 5568: 3003 movi r0, 3 + 556a: 07f9 br 0x555c // 555c + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 556c: 3b44 cmpnei r3, 4 + 556e: 0804 bt 0x5576 // 5576 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 5570: 8427 ld.b r1, (r4, 0x7) + 5572: 3004 movi r0, 4 + 5574: 07f4 br 0x555c // 555c + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 5576: 3b45 cmpnei r3, 5 + 5578: 0bec bt 0x5550 // 5550 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 557a: 8423 ld.b r1, (r4, 0x3) + 557c: 3005 movi r0, 5 + 557e: 07ef br 0x555c // 555c + if(TempCtrl.CardState == CARDIN) //插卡状态 + 5580: 1099 lrw r4, 0x200003d4 // 55e4 + 5582: 8478 ld.b r3, (r4, 0x18) + 5584: 3b41 cmpnei r3, 1 + 5586: 081f bt 0x55c4 // 55c4 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5588: 8462 ld.b r3, (r4, 0x2) + 558a: 74ce sextb r3, r3 + 558c: 3bdf btsti r3, 31 + 558e: 0c1b bf 0x55c4 // 55c4 + TemCtrl_Model_Set(); //模式切换 + 5590: e3fffdf0 bsr 0x5170 // 5170 + if (detect_inf.control_model != 0x00){ + 5594: 1075 lrw r3, 0x200003cc // 55e8 + 5596: 8363 ld.b r3, (r3, 0x3) + 5598: 3b40 cmpnei r3, 0 + 559a: 0c0e bf 0x55b6 // 55b6 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 559c: 1074 lrw r3, 0x200005a0 // 55ec + 559e: 8340 ld.b r2, (r3, 0x0) + 55a0: 3a41 cmpnei r2, 1 + 55a2: 080a bt 0x55b6 // 55b6 + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,ACTIVE); + 55a4: 8462 ld.b r3, (r4, 0x2) + 55a6: 4379 lsli r3, r3, 25 + 55a8: b840 st.w r2, (r14, 0x0) + 55aa: 4b7d lsri r3, r3, 29 + 55ac: 3204 movi r2, 4 + 55ae: 3102 movi r1, 2 + 55b0: 3005 movi r0, 5 + 55b2: e0000595 bsr 0x60dc // 60dc + if(g_eeprom.backlight_en == 0x01) + 55b6: 106f lrw r3, 0x20000350 // 55f0 + 55b8: 8364 ld.b r3, (r3, 0x4) + 55ba: 3b41 cmpnei r3, 1 + 55bc: 0804 bt 0x55c4 // 55c4 + Controlled_LCD_Backlight(1); + 55be: 3001 movi r0, 1 + 55c0: e3fffbf8 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 55c4: 9560 ld.w r3, (r5, 0x0) + 55c6: 4b48 lsri r2, r3, 8 + 55c8: a470 st.b r3, (r4, 0x10) + 55ca: a451 st.b r2, (r4, 0x11) + 55cc: 4b50 lsri r2, r3, 16 + 55ce: 4b78 lsri r3, r3, 24 + 55d0: a452 st.b r2, (r4, 0x12) + 55d2: a473 st.b r3, (r4, 0x13) +} + 55d4: 07be br 0x5550 // 5550 + 55d6: 0000 bkpt + 55d8: 00007e8e .long 0x00007e8e + 55dc: 200003f3 .long 0x200003f3 + 55e0: 200000b8 .long 0x200000b8 + 55e4: 200003d4 .long 0x200003d4 + 55e8: 200003cc .long 0x200003cc + 55ec: 200005a0 .long 0x200005a0 + 55f0: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +000055f4 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 55f4: 14d2 push r4-r5, r15 + 55f6: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 55f8: 1131 lrw r1, 0x7ea3 // 56bc + 55fa: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 55fc: 1191 lrw r4, 0x200003f3 // 56c0 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 55fe: e3fff2a7 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5602: 8460 ld.b r3, (r4, 0x0) + 5604: 3b41 cmpnei r3, 1 + 5606: 11b0 lrw r5, 0x200000b8 // 56c4 + 5608: 082e bt 0x5664 // 5664 + { + Debug_Inf.Tick = SysTick_1ms; + 560a: 9560 ld.w r3, (r5, 0x0) + 560c: 4b48 lsri r2, r3, 8 + 560e: a468 st.b r3, (r4, 0x8) + 5610: a449 st.b r2, (r4, 0x9) + 5612: 4b50 lsri r2, r3, 16 + 5614: 4b78 lsri r3, r3, 24 + 5616: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page > PAGE1ID) + 5618: 8462 ld.b r3, (r4, 0x2) + 561a: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 561c: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page > PAGE1ID) + 561e: 0c03 bf 0x5624 // 5624 + { + Debug_Inf.Page--; + 5620: 2b00 subi r3, 1 + 5622: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 5624: e3fffa32 bsr 0x4a88 // 4a88 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 5628: 8462 ld.b r3, (r4, 0x2) + 562a: 3b42 cmpnei r3, 2 + 562c: 0806 bt 0x5638 // 5638 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 562e: 8405 ld.b r0, (r4, 0x5) + 5630: e3fffc30 bsr 0x4e90 // 4e90 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 5634: 1401 addi r14, r14, 4 + 5636: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 5638: 3b41 cmpnei r3, 1 + 563a: 0806 bt 0x5646 // 5646 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 563c: 8424 ld.b r1, (r4, 0x4) + 563e: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5640: e3fffbdc bsr 0x4df8 // 4df8 + 5644: 07f8 br 0x5634 // 5634 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 5646: 3b43 cmpnei r3, 3 + 5648: 0804 bt 0x5650 // 5650 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 564a: 8426 ld.b r1, (r4, 0x6) + 564c: 3003 movi r0, 3 + 564e: 07f9 br 0x5640 // 5640 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 5650: 3b44 cmpnei r3, 4 + 5652: 0804 bt 0x565a // 565a + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 5654: 8427 ld.b r1, (r4, 0x7) + 5656: 3004 movi r0, 4 + 5658: 07f4 br 0x5640 // 5640 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 565a: 3b45 cmpnei r3, 5 + 565c: 0bec bt 0x5634 // 5634 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 565e: 8423 ld.b r1, (r4, 0x3) + 5660: 3005 movi r0, 5 + 5662: 07ef br 0x5640 // 5640 + if(TempCtrl.CardState == CARDIN) + 5664: 1099 lrw r4, 0x200003d4 // 56c8 + 5666: 8478 ld.b r3, (r4, 0x18) + 5668: 3b41 cmpnei r3, 1 + 566a: 081f bt 0x56a8 // 56a8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 566c: 8462 ld.b r3, (r4, 0x2) + 566e: 74ce sextb r3, r3 + 5670: 3bdf btsti r3, 31 + 5672: 0c1b bf 0x56a8 // 56a8 + TemCtrl_Fan_Set(); //风速切换 + 5674: e3fffda4 bsr 0x51bc // 51bc + if (detect_inf.control_model != 0x00){ + 5678: 1075 lrw r3, 0x200003cc // 56cc + 567a: 8363 ld.b r3, (r3, 0x3) + 567c: 3b40 cmpnei r3, 0 + 567e: 0c0e bf 0x569a // 569a + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5680: 1074 lrw r3, 0x200005a0 // 56d0 + 5682: 8340 ld.b r2, (r3, 0x0) + 5684: 3a41 cmpnei r2, 1 + 5686: 080a bt 0x569a // 569a + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,ACTIVE); + 5688: 8462 ld.b r3, (r4, 0x2) + 568a: 437c lsli r3, r3, 28 + 568c: b840 st.w r2, (r14, 0x0) + 568e: 4b7d lsri r3, r3, 29 + 5690: 3204 movi r2, 4 + 5692: 3140 movi r1, 64 + 5694: 3005 movi r0, 5 + 5696: e0000523 bsr 0x60dc // 60dc + if(g_eeprom.backlight_en == 0x01) + 569a: 106f lrw r3, 0x20000350 // 56d4 + 569c: 8364 ld.b r3, (r3, 0x4) + 569e: 3b41 cmpnei r3, 1 + 56a0: 0804 bt 0x56a8 // 56a8 + Controlled_LCD_Backlight(1); + 56a2: 3001 movi r0, 1 + 56a4: e3fffb86 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 56a8: 9560 ld.w r3, (r5, 0x0) + 56aa: 4b48 lsri r2, r3, 8 + 56ac: a470 st.b r3, (r4, 0x10) + 56ae: a451 st.b r2, (r4, 0x11) + 56b0: 4b50 lsri r2, r3, 16 + 56b2: 4b78 lsri r3, r3, 24 + 56b4: a452 st.b r2, (r4, 0x12) + 56b6: a473 st.b r3, (r4, 0x13) +} + 56b8: 07be br 0x5634 // 5634 + 56ba: 0000 bkpt + 56bc: 00007ea3 .long 0x00007ea3 + 56c0: 200003f3 .long 0x200003f3 + 56c4: 200000b8 .long 0x200000b8 + 56c8: 200003d4 .long 0x200003d4 + 56cc: 200003cc .long 0x200003cc + 56d0: 200005a0 .long 0x200005a0 + 56d4: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +000056d8 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 56d8: 14d2 push r4-r5, r15 + 56da: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 56dc: 1139 lrw r1, 0x7eb6 // 57c0 + 56de: 3000 movi r0, 0 + 56e0: e3fff236 bsr 0x3b4c // 3b4c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 56e4: 1178 lrw r3, 0x200003f3 // 57c4 + 56e6: 8340 ld.b r2, (r3, 0x0) + 56e8: 3a41 cmpnei r2, 1 + 56ea: 11b8 lrw r5, 0x200000b8 // 57c8 + 56ec: 083e bt 0x5768 // 5768 + { + Debug_Inf.Tick = SysTick_1ms; + 56ee: 9540 ld.w r2, (r5, 0x0) + 56f0: 4a28 lsri r1, r2, 8 + 56f2: a348 st.b r2, (r3, 0x8) + 56f4: a329 st.b r1, (r3, 0x9) + 56f6: 4a30 lsri r1, r2, 16 + 56f8: 4a58 lsri r2, r2, 24 + 56fa: a34b st.b r2, (r3, 0xb) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 56fc: 8342 ld.b r2, (r3, 0x2) + 56fe: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5700: a32a st.b r1, (r3, 0xa) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 5702: 080b bt 0x5718 // 5718 + 5704: 8324 ld.b r1, (r3, 0x4) + 5706: 3901 cmphsi r1, 2 + 5708: 0812 bt 0x572c // 572c + { + Debug_Inf.PipeFlag ++; + 570a: 2100 addi r1, 1 + 570c: 7444 zextb r1, r1 + 570e: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5710: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr++; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5712: e3fffb73 bsr 0x4df8 // 4df8 + 5716: 040b br 0x572c // 572c + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 5718: 3a42 cmpnei r2, 2 + 571a: 080b bt 0x5730 // 5730 + 571c: 8305 ld.b r0, (r3, 0x5) + 571e: 3811 cmphsi r0, 18 + 5720: 0806 bt 0x572c // 572c + Debug_Inf.TempDiff++; + 5722: 2000 addi r0, 1 + 5724: 7400 zextb r0, r0 + 5726: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5728: e3fffbb4 bsr 0x4e90 // 4e90 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 572c: 1401 addi r14, r14, 4 + 572e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 5730: 3a43 cmpnei r2, 3 + 5732: 0806 bt 0x573e // 573e + Debug_Inf.BackLight_En = 0x01; + 5734: 3201 movi r2, 1 + 5736: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5738: 3101 movi r1, 1 + 573a: 3003 movi r0, 3 + 573c: 07eb br 0x5712 // 5712 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 573e: 3a44 cmpnei r2, 4 + 5740: 0809 bt 0x5752 // 5752 + 5742: 8327 ld.b r1, (r3, 0x7) + 5744: 3901 cmphsi r1, 2 + 5746: 0bf3 bt 0x572c // 572c + Debug_Inf.KSens_Level++; + 5748: 2100 addi r1, 1 + 574a: 7444 zextb r1, r1 + 574c: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 574e: 3004 movi r0, 4 + 5750: 07e1 br 0x5712 // 5712 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + 5752: 3a45 cmpnei r2, 5 + 5754: 0bec bt 0x572c // 572c + 5756: 8323 ld.b r1, (r3, 0x3) + 5758: 32ff movi r2, 255 + 575a: 6486 cmpne r1, r2 + 575c: 0fe8 bf 0x572c // 572c + Debug_Inf.DevAddr++; //刷新地址 + 575e: 2100 addi r1, 1 + 5760: 7444 zextb r1, r1 + 5762: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5764: 3005 movi r0, 5 + 5766: 07d6 br 0x5712 // 5712 + if(TempCtrl.CardState == CARDIN) + 5768: 1099 lrw r4, 0x200003d4 // 57cc + 576a: 8478 ld.b r3, (r4, 0x18) + 576c: 3b41 cmpnei r3, 1 + 576e: 081f bt 0x57ac // 57ac + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5770: 8462 ld.b r3, (r4, 0x2) + 5772: 74ce sextb r3, r3 + 5774: 3bdf btsti r3, 31 + 5776: 0c1b bf 0x57ac // 57ac + TemCtrl_Temperature_Add(); //设置温度+ + 5778: e3fffd60 bsr 0x5238 // 5238 + if (detect_inf.control_model != 0x00){ + 577c: 1075 lrw r3, 0x200003cc // 57d0 + 577e: 8363 ld.b r3, (r3, 0x3) + 5780: 3b40 cmpnei r3, 0 + 5782: 0c0e bf 0x579e // 579e + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5784: 1074 lrw r3, 0x200005a0 // 57d4 + 5786: 8340 ld.b r2, (r3, 0x0) + 5788: 3a41 cmpnei r2, 1 + 578a: 080a bt 0x579e // 579e + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 578c: 310a movi r1, 10 + 578e: 8461 ld.b r3, (r4, 0x1) + 5790: 7cc4 mult r3, r1 + 5792: b840 st.w r2, (r14, 0x0) + 5794: 3110 movi r1, 16 + 5796: 3202 movi r2, 2 + 5798: 3008 movi r0, 8 + 579a: e00004a1 bsr 0x60dc // 60dc + if(g_eeprom.backlight_en == 0x01) + 579e: 106f lrw r3, 0x20000350 // 57d8 + 57a0: 8364 ld.b r3, (r3, 0x4) + 57a2: 3b41 cmpnei r3, 1 + 57a4: 0804 bt 0x57ac // 57ac + Controlled_LCD_Backlight(1); + 57a6: 3001 movi r0, 1 + 57a8: e3fffb04 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 57ac: 9560 ld.w r3, (r5, 0x0) + 57ae: 4b48 lsri r2, r3, 8 + 57b0: a470 st.b r3, (r4, 0x10) + 57b2: a451 st.b r2, (r4, 0x11) + 57b4: 4b50 lsri r2, r3, 16 + 57b6: 4b78 lsri r3, r3, 24 + 57b8: a452 st.b r2, (r4, 0x12) + 57ba: a473 st.b r3, (r4, 0x13) +} + 57bc: 07b8 br 0x572c // 572c + 57be: 0000 bkpt + 57c0: 00007eb6 .long 0x00007eb6 + 57c4: 200003f3 .long 0x200003f3 + 57c8: 200000b8 .long 0x200000b8 + 57cc: 200003d4 .long 0x200003d4 + 57d0: 200003cc .long 0x200003cc + 57d4: 200005a0 .long 0x200005a0 + 57d8: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +000057dc : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 57dc: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 57de: 1097 lrw r4, 0x200003f3 // 5838 + 57e0: 8460 ld.b r3, (r4, 0x0) + 57e2: 3b40 cmpnei r3, 0 + 57e4: 0828 bt 0x5834 // 5834 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 57e6: 8461 ld.b r3, (r4, 0x1) + 57e8: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 57ea: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 57ec: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 57ee: 0823 bt 0x5834 // 5834 + 57f0: 1073 lrw r3, 0x200003d4 // 583c + 57f2: 8362 ld.b r3, (r3, 0x2) + 57f4: 74ce sextb r3, r3 + 57f6: 3bdf btsti r3, 31 + 57f8: 081e bt 0x5834 // 5834 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 57fa: 1032 lrw r1, 0x7ecd // 5840 + 57fc: 3000 movi r0, 0 + 57fe: e3fff1a7 bsr 0x3b4c // 3b4c + Debug_Inf.Tick = SysTick_1ms; + 5802: 1071 lrw r3, 0x200000b8 // 5844 + 5804: 9360 ld.w r3, (r3, 0x0) + 5806: 4b48 lsri r2, r3, 8 + 5808: a468 st.b r3, (r4, 0x8) + 580a: a449 st.b r2, (r4, 0x9) + 580c: 4b50 lsri r2, r3, 16 + 580e: 4b78 lsri r3, r3, 24 + 5810: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 5812: 3300 movi r3, 0 + 5814: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 5816: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 5818: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 581a: a460 st.b r3, (r4, 0x0) + HT1621_Clear(); + 581c: e3fff936 bsr 0x4a88 // 4a88 + Controlled_LCD_Backlight(0x01); + 5820: 3001 movi r0, 1 + 5822: e3fffac7 bsr 0x4db0 // 4db0 + Controlled_Buzzer(0x01); + 5826: 3001 movi r0, 1 + 5828: e3fffaa0 bsr 0x4d68 // 4d68 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 582c: 8424 ld.b r1, (r4, 0x4) + 582e: 3001 movi r0, 1 + 5830: e3fffae4 bsr 0x4df8 // 4df8 + + } + } + +} + 5834: 1491 pop r4, r15 + 5836: 0000 bkpt + 5838: 200003f3 .long 0x200003f3 + 583c: 200003d4 .long 0x200003d4 + 5840: 00007ecd .long 0x00007ecd + 5844: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00005848 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 5848: 14d2 push r4-r5, r15 + 584a: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 584c: 1138 lrw r1, 0x7ed6 // 592c + 584e: 3000 movi r0, 0 + 5850: e3fff17e bsr 0x3b4c // 3b4c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5854: 1177 lrw r3, 0x200003f3 // 5930 + 5856: 8340 ld.b r2, (r3, 0x0) + 5858: 3a41 cmpnei r2, 1 + 585a: 11b7 lrw r5, 0x200000b8 // 5934 + 585c: 083d bt 0x58d6 // 58d6 + { + Debug_Inf.Tick = SysTick_1ms; + 585e: 9540 ld.w r2, (r5, 0x0) + 5860: 4a28 lsri r1, r2, 8 + 5862: a348 st.b r2, (r3, 0x8) + 5864: a329 st.b r1, (r3, 0x9) + 5866: 4a30 lsri r1, r2, 16 + 5868: 4a58 lsri r2, r2, 24 + 586a: a34b st.b r2, (r3, 0xb) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 586c: 8342 ld.b r2, (r3, 0x2) + 586e: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5870: a32a st.b r1, (r3, 0xa) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 5872: 080b bt 0x5888 // 5888 + 5874: 8324 ld.b r1, (r3, 0x4) + 5876: 3940 cmpnei r1, 0 + 5878: 0c12 bf 0x589c // 589c + { + Debug_Inf.PipeFlag --; + 587a: 2900 subi r1, 1 + 587c: 7444 zextb r1, r1 + 587e: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5880: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr--; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5882: e3fffabb bsr 0x4df8 // 4df8 + 5886: 040b br 0x589c // 589c + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 5888: 3a42 cmpnei r2, 2 + 588a: 080b bt 0x58a0 // 58a0 + 588c: 8305 ld.b r0, (r3, 0x5) + 588e: 3840 cmpnei r0, 0 + 5890: 0c06 bf 0x589c // 589c + Debug_Inf.TempDiff--; + 5892: 2800 subi r0, 1 + 5894: 7400 zextb r0, r0 + 5896: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5898: e3fffafc bsr 0x4e90 // 4e90 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 589c: 1401 addi r14, r14, 4 + 589e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 58a0: 3a43 cmpnei r2, 3 + 58a2: 0806 bt 0x58ae // 58ae + Debug_Inf.BackLight_En = 0x00; + 58a4: 3200 movi r2, 0 + 58a6: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 58a8: 3100 movi r1, 0 + 58aa: 3003 movi r0, 3 + 58ac: 07eb br 0x5882 // 5882 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 58ae: 3a44 cmpnei r2, 4 + 58b0: 0809 bt 0x58c2 // 58c2 + 58b2: 8327 ld.b r1, (r3, 0x7) + 58b4: 3940 cmpnei r1, 0 + 58b6: 0ff3 bf 0x589c // 589c + Debug_Inf.KSens_Level--; + 58b8: 2900 subi r1, 1 + 58ba: 7444 zextb r1, r1 + 58bc: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 58be: 3004 movi r0, 4 + 58c0: 07e1 br 0x5882 // 5882 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + 58c2: 3a45 cmpnei r2, 5 + 58c4: 0bec bt 0x589c // 589c + 58c6: 8323 ld.b r1, (r3, 0x3) + 58c8: 3940 cmpnei r1, 0 + 58ca: 0fe9 bf 0x589c // 589c + Debug_Inf.DevAddr--; //刷新地址 + 58cc: 2900 subi r1, 1 + 58ce: 7444 zextb r1, r1 + 58d0: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 58d2: 3005 movi r0, 5 + 58d4: 07d7 br 0x5882 // 5882 + if(TempCtrl.CardState == CARDIN) + 58d6: 1099 lrw r4, 0x200003d4 // 5938 + 58d8: 8478 ld.b r3, (r4, 0x18) + 58da: 3b41 cmpnei r3, 1 + 58dc: 081f bt 0x591a // 591a + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 58de: 8462 ld.b r3, (r4, 0x2) + 58e0: 74ce sextb r3, r3 + 58e2: 3bdf btsti r3, 31 + 58e4: 0c1b bf 0x591a // 591a + TemCtrl_Temperature_Dec(); //设置温度- + 58e6: e3fffc91 bsr 0x5208 // 5208 + if (detect_inf.control_model != 0x00){ + 58ea: 1075 lrw r3, 0x200003cc // 593c + 58ec: 8363 ld.b r3, (r3, 0x3) + 58ee: 3b40 cmpnei r3, 0 + 58f0: 0c0e bf 0x590c // 590c + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 58f2: 1074 lrw r3, 0x200005a0 // 5940 + 58f4: 8340 ld.b r2, (r3, 0x0) + 58f6: 3a41 cmpnei r2, 1 + 58f8: 080a bt 0x590c // 590c + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 58fa: 310a movi r1, 10 + 58fc: 8461 ld.b r3, (r4, 0x1) + 58fe: 7cc4 mult r3, r1 + 5900: b840 st.w r2, (r14, 0x0) + 5902: 3110 movi r1, 16 + 5904: 3202 movi r2, 2 + 5906: 3008 movi r0, 8 + 5908: e00003ea bsr 0x60dc // 60dc + if(g_eeprom.backlight_en == 0x01) + 590c: 106e lrw r3, 0x20000350 // 5944 + 590e: 8364 ld.b r3, (r3, 0x4) + 5910: 3b41 cmpnei r3, 1 + 5912: 0804 bt 0x591a // 591a + Controlled_LCD_Backlight(1); + 5914: 3001 movi r0, 1 + 5916: e3fffa4d bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 591a: 9560 ld.w r3, (r5, 0x0) + 591c: 4b48 lsri r2, r3, 8 + 591e: a470 st.b r3, (r4, 0x10) + 5920: a451 st.b r2, (r4, 0x11) + 5922: 4b50 lsri r2, r3, 16 + 5924: 4b78 lsri r3, r3, 24 + 5926: a452 st.b r2, (r4, 0x12) + 5928: a473 st.b r3, (r4, 0x13) +} + 592a: 07b9 br 0x589c // 589c + 592c: 00007ed6 .long 0x00007ed6 + 5930: 200003f3 .long 0x200003f3 + 5934: 200000b8 .long 0x200000b8 + 5938: 200003d4 .long 0x200003d4 + 593c: 200003cc .long 0x200003cc + 5940: 200005a0 .long 0x200005a0 + 5944: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY4_Long_Press: + +00005948 : + +void KEY4_Long_Press(void) +{ + 5948: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 594a: 1097 lrw r4, 0x200003f3 // 59a4 + 594c: 8460 ld.b r3, (r4, 0x0) + 594e: 3b40 cmpnei r3, 0 + 5950: 0828 bt 0x59a0 // 59a0 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 5952: 8461 ld.b r3, (r4, 0x1) + 5954: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5956: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 5958: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 595a: 0823 bt 0x59a0 // 59a0 + 595c: 1073 lrw r3, 0x200003d4 // 59a8 + 595e: 8362 ld.b r3, (r3, 0x2) + 5960: 74ce sextb r3, r3 + 5962: 3bdf btsti r3, 31 + 5964: 081e bt 0x59a0 // 59a0 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 5966: 1032 lrw r1, 0x7ecd // 59ac + 5968: 3000 movi r0, 0 + 596a: e3fff0f1 bsr 0x3b4c // 3b4c + Debug_Inf.Tick = SysTick_1ms; + 596e: 1071 lrw r3, 0x200000b8 // 59b0 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Controlled_LCD_Backlight(0x01); + 5970: 3001 movi r0, 1 + Debug_Inf.Tick = SysTick_1ms; + 5972: 9360 ld.w r3, (r3, 0x0) + 5974: 4b48 lsri r2, r3, 8 + 5976: a468 st.b r3, (r4, 0x8) + 5978: a449 st.b r2, (r4, 0x9) + 597a: 4b50 lsri r2, r3, 16 + 597c: 4b78 lsri r3, r3, 24 + 597e: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 5980: 3300 movi r3, 0 + 5982: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 5984: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 5986: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 5988: a460 st.b r3, (r4, 0x0) + Controlled_LCD_Backlight(0x01); + 598a: e3fffa13 bsr 0x4db0 // 4db0 + HT1621_Clear(); + 598e: e3fff87d bsr 0x4a88 // 4a88 + Controlled_Buzzer(0x01); + 5992: 3001 movi r0, 1 + 5994: e3fff9ea bsr 0x4d68 // 4d68 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 5998: 8424 ld.b r1, (r4, 0x4) + 599a: 3001 movi r0, 1 + 599c: e3fffa2e bsr 0x4df8 // 4df8 + + } + } +} + 59a0: 1491 pop r4, r15 + 59a2: 0000 bkpt + 59a4: 200003f3 .long 0x200003f3 + 59a8: 200003d4 .long 0x200003d4 + 59ac: 00007ecd .long 0x00007ecd + 59b0: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +000059b4 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 59b4: 14d1 push r4, r15 + 59b6: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 59b8: 1122 lrw r1, 0x7eed // 5a40 + 59ba: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 59bc: 1182 lrw r4, 0x200003f3 // 5a44 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 59be: e3fff0c7 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x00) //正常模式 + 59c2: 8460 ld.b r3, (r4, 0x0) + 59c4: 3b40 cmpnei r3, 0 + 59c6: 082b bt 0x5a1c // 5a1c + { + if(TempCtrl.CardState == CARDIN) + 59c8: 1180 lrw r4, 0x200003d4 // 5a48 + 59ca: 8478 ld.b r3, (r4, 0x18) + 59cc: 3b41 cmpnei r3, 1 + 59ce: 081d bt 0x5a08 // 5a08 + { + TemCtrl_OnOff_Set(); + 59d0: e3fffc4c bsr 0x5268 // 5268 + + if (detect_inf.control_model != 0x00){ + 59d4: 107e lrw r3, 0x200003cc // 5a4c + 59d6: 8363 ld.b r3, (r3, 0x3) + 59d8: 3b40 cmpnei r3, 0 + 59da: 0c0c bf 0x59f2 // 59f2 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 59dc: 107d lrw r3, 0x200005a0 // 5a50 + 59de: 8340 ld.b r2, (r3, 0x0) + 59e0: 3a41 cmpnei r2, 1 + 59e2: 0808 bt 0x59f2 // 59f2 + { + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,ACTIVE); + 59e4: 8462 ld.b r3, (r4, 0x2) + 59e6: 4b67 lsri r3, r3, 7 + 59e8: b840 st.w r2, (r14, 0x0) + 59ea: 3101 movi r1, 1 + 59ec: 3005 movi r0, 5 + 59ee: e0000377 bsr 0x60dc // 60dc + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 59f2: 1079 lrw r3, 0x200000b8 // 5a54 + 59f4: 9360 ld.w r3, (r3, 0x0) + 59f6: 4b48 lsri r2, r3, 8 + 59f8: a470 st.b r3, (r4, 0x10) + 59fa: a451 st.b r2, (r4, 0x11) + 59fc: 4b50 lsri r2, r3, 16 + 59fe: 4b78 lsri r3, r3, 24 + 5a00: a452 st.b r2, (r4, 0x12) + 5a02: a473 st.b r3, (r4, 0x13) + //关背光 + Controlled_LCD_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 5a04: 1401 addi r14, r14, 4 + 5a06: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 5a08: 3001 movi r0, 1 + 5a0a: e0000029 bsr 0x5a5c // 5a5c + Controlled_LCD_Backlight(1); + 5a0e: 3001 movi r0, 1 + 5a10: e3fff9d0 bsr 0x4db0 // 4db0 + Controlled_Key_Backlight(1); + 5a14: 3001 movi r0, 1 + 5a16: e3fff9df bsr 0x4dd4 // 4dd4 + 5a1a: 07ec br 0x59f2 // 59f2 + else if(Debug_Inf.State == 0x01) //设置模式 + 5a1c: 3b41 cmpnei r3, 1 + 5a1e: 0bf3 bt 0x5a04 // 5a04 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 5a20: 102e lrw r1, 0x7f02 // 5a58 + 5a22: 3000 movi r0, 0 + 5a24: e3fff094 bsr 0x3b4c // 3b4c + Debug_Inf.State = 0x00; + 5a28: 3300 movi r3, 0 + 5a2a: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 5a2c: 3301 movi r3, 1 + 5a2e: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 5a30: e3fff82c bsr 0x4a88 // 4a88 + Controlled_LCD_Backlight(0x00); + 5a34: 3000 movi r0, 0 + 5a36: e3fff9bd bsr 0x4db0 // 4db0 + Dev_SaveData(); + 5a3a: e00001ed bsr 0x5e14 // 5e14 +} + 5a3e: 07e3 br 0x5a04 // 5a04 + 5a40: 00007eed .long 0x00007eed + 5a44: 200003f3 .long 0x200003f3 + 5a48: 200003d4 .long 0x200003d4 + 5a4c: 200003cc .long 0x200003cc + 5a50: 200005a0 .long 0x200005a0 + 5a54: 200000b8 .long 0x200000b8 + 5a58: 00007f02 .long 0x00007f02 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00005a5c : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 5a5c: 14d1 push r4, r15 + if(state == TEMP_ON) + 5a5e: 3841 cmpnei r0, 1 + 5a60: 081f bt 0x5a9e // 5a9e + { + Control_Prompt_Text(1); + Control_Mode(TempCtrl.TemState_Now.mode); + 5a62: 1091 lrw r4, 0x200003d4 // 5aa4 + Control_Prompt_Text(1); + 5a64: e3fff960 bsr 0x4d24 // 4d24 + Control_Mode(TempCtrl.TemState_Now.mode); + 5a68: 8402 ld.b r0, (r4, 0x2) + 5a6a: 4019 lsli r0, r0, 25 + 5a6c: 481d lsri r0, r0, 29 + 5a6e: e3fff8ff bsr 0x4c6c // 4c6c + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5a72: 8402 ld.b r0, (r4, 0x2) + 5a74: 401c lsli r0, r0, 28 + 5a76: 481d lsri r0, r0, 29 + 5a78: e3fff91e bsr 0x4cb4 // 4cb4 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5a7c: 8401 ld.b r0, (r4, 0x1) + 5a7e: 3840 cmpnei r0, 0 + 5a80: 0c0c bf 0x5a98 // 5a98 + 5a82: 330a movi r3, 10 + 5a84: 7c0c mult r0, r3 + 5a86: e3fff86f bsr 0x4b64 // 4b64 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 5a8a: 8400 ld.b r0, (r4, 0x0) + 5a8c: 330a movi r3, 10 + 5a8e: 7c0c mult r0, r3 + 5a90: 7401 zexth r0, r0 + 5a92: e3fff8ad bsr 0x4bec // 4bec + } + else + { + HT1621_Clear(); + } +} + 5a96: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5a98: 30a0 movi r0, 160 + 5a9a: 4001 lsli r0, r0, 1 + 5a9c: 07f5 br 0x5a86 // 5a86 + HT1621_Clear(); + 5a9e: e3fff7f5 bsr 0x4a88 // 4a88 +} + 5aa2: 07fa br 0x5a96 // 5a96 + 5aa4: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Init: + +00005aa8 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 5aa8: 14d0 push r15 + HT1621_ALLON(); + 5aaa: e3fff817 bsr 0x4ad8 // 4ad8 + + delay_nms(5000); + 5aae: 1005 lrw r0, 0x1388 // 5ac0 + 5ab0: e3ffe908 bsr 0x2cc0 // 2cc0 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5ab4: 1064 lrw r3, 0x200003d4 // 5ac4 + 5ab6: 8302 ld.b r0, (r3, 0x2) + 5ab8: 4807 lsri r0, r0, 7 + 5aba: e3ffffd1 bsr 0x5a5c // 5a5c + +} + 5abe: 1490 pop r15 + 5ac0: 00001388 .long 0x00001388 + 5ac4: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Task: + +00005ac8 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 5ac8: 14d3 push r4-r6, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 5aca: 0265 lrw r3, 0x200003f3 // 5db0 + 5acc: 8360 ld.b r3, (r3, 0x0) + 5ace: 3b40 cmpnei r3, 0 + 5ad0: 0923 bt 0x5d16 // 5d16 + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 5ad2: 0286 lrw r4, 0x200003d4 // 5db4 + 5ad4: 8451 ld.b r2, (r4, 0x11) + 5ad6: 8470 ld.b r3, (r4, 0x10) + 5ad8: 4248 lsli r2, r2, 8 + 5ada: 6c8c or r2, r3 + 5adc: 8472 ld.b r3, (r4, 0x12) + 5ade: 4370 lsli r3, r3, 16 + 5ae0: 6c8c or r2, r3 + 5ae2: 8473 ld.b r3, (r4, 0x13) + 5ae4: 02aa lrw r5, 0x200000b8 // 5db8 + 5ae6: 4378 lsli r3, r3, 24 + 5ae8: 6cc8 or r3, r2 + 5aea: 9520 ld.w r1, (r5, 0x0) + 5aec: 604e subu r1, r3 + 5aee: 024b lrw r2, 0xbb8 // 5dbc + 5af0: 6448 cmphs r2, r1 + 5af2: 0913 bt 0x5d18 // 5d18 + 5af4: 8458 ld.b r2, (r4, 0x18) + 5af6: 3a40 cmpnei r2, 0 + 5af8: 0910 bt 0x5d18 // 5d18 + { + TempCtrl.BackLightTick = SysTick_1ms; + 5afa: 9560 ld.w r3, (r5, 0x0) + 5afc: 4b48 lsri r2, r3, 8 + 5afe: a470 st.b r3, (r4, 0x10) + 5b00: a451 st.b r2, (r4, 0x11) + 5b02: 4b50 lsri r2, r3, 16 + 5b04: 4b78 lsri r3, r3, 24 + 5b06: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 5b08: 3300 movi r3, 0 + 5b0a: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5b0c: 8462 ld.b r3, (r4, 0x2) + 5b0e: 74ce sextb r3, r3 + 5b10: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5b12: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5b14: 0803 bt 0x5b1a // 5b1a + { + HT1621_Clear(); + 5b16: e3fff7b9 bsr 0x4a88 // 4a88 + } + //关背光 + Controlled_LCD_Backlight(0); + 5b1a: 3000 movi r0, 0 + 5b1c: e3fff94a bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 5b20: 0237 lrw r1, 0x7f0c // 5dc0 + { + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5b22: 3000 movi r0, 0 + 5b24: e3fff014 bsr 0x3b4c // 3b4c + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 5b28: 8455 ld.b r2, (r4, 0x15) + 5b2a: 8474 ld.b r3, (r4, 0x14) + 5b2c: 4248 lsli r2, r2, 8 + 5b2e: 6c8c or r2, r3 + 5b30: 8476 ld.b r3, (r4, 0x16) + 5b32: 4370 lsli r3, r3, 16 + 5b34: 6c8c or r2, r3 + 5b36: 8477 ld.b r3, (r4, 0x17) + 5b38: 4378 lsli r3, r3, 24 + 5b3a: 6cc8 or r3, r2 + 5b3c: 9520 ld.w r1, (r5, 0x0) + 5b3e: 604e subu r1, r3 + 5b40: 33fa movi r3, 250 + 5b42: 4362 lsli r3, r3, 2 + 5b44: 644c cmphs r3, r1 + 5b46: 0818 bt 0x5b76 // 5b76 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 5b48: 9560 ld.w r3, (r5, 0x0) + 5b4a: 4b48 lsri r2, r3, 8 + 5b4c: a474 st.b r3, (r4, 0x14) + 5b4e: a455 st.b r2, (r4, 0x15) + 5b50: 4b50 lsri r2, r3, 16 + 5b52: 4b78 lsri r3, r3, 24 + 5b54: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5b56: 847b ld.b r3, (r4, 0x1b) + 5b58: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 5b5a: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5b5c: 0903 bt 0x5d62 // 5d62 + 5b5e: 847c ld.b r3, (r4, 0x1c) + 5b60: 3b41 cmpnei r3, 1 + 5b62: 0900 bt 0x5d62 // 5d62 + { + TempCtrl.SceneFlag = 0x00; + 5b64: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 5b66: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 5b68: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 5b6a: e3fff923 bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 5b6e: 0329 lrw r1, 0x7f2e // 5dc4 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5b70: 3000 movi r0, 0 + 5b72: e3ffefed bsr 0x3b4c // 3b4c + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 5b76: 03ca lrw r6, 0x20000350 // 5dc8 + 5b78: 8664 ld.b r3, (r6, 0x4) + 5b7a: 3b41 cmpnei r3, 1 + 5b7c: 081b bt 0x5bb2 // 5bb2 + 5b7e: 8451 ld.b r2, (r4, 0x11) + 5b80: 8470 ld.b r3, (r4, 0x10) + 5b82: 4248 lsli r2, r2, 8 + 5b84: 6c8c or r2, r3 + 5b86: 8472 ld.b r3, (r4, 0x12) + 5b88: 4370 lsli r3, r3, 16 + 5b8a: 6c8c or r2, r3 + 5b8c: 8473 ld.b r3, (r4, 0x13) + 5b8e: 4378 lsli r3, r3, 24 + 5b90: 6cc8 or r3, r2 + 5b92: 9520 ld.w r1, (r5, 0x0) + 5b94: 604e subu r1, r3 + 5b96: 0371 lrw r3, 0x1388 // 5dcc + 5b98: 644c cmphs r3, r1 + 5b9a: 080c bt 0x5bb2 // 5bb2 + { + TempCtrl.BackLightTick = SysTick_1ms; + 5b9c: 9560 ld.w r3, (r5, 0x0) + 5b9e: 4b48 lsri r2, r3, 8 + 5ba0: a470 st.b r3, (r4, 0x10) + 5ba2: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 5ba4: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5ba6: 4b50 lsri r2, r3, 16 + 5ba8: 4b78 lsri r3, r3, 24 + 5baa: a452 st.b r2, (r4, 0x12) + 5bac: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 5bae: e3fff901 bsr 0x4db0 // 4db0 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5bb2: 8402 ld.b r0, (r4, 0x2) + 5bb4: 74c2 sextb r3, r0 + 5bb6: 3bdf btsti r3, 31 + 5bb8: 0c92 bf 0x5cdc // 5cdc + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 5bba: 8466 ld.b r3, (r4, 0x6) + 5bbc: 4019 lsli r0, r0, 25 + 5bbe: 4359 lsli r2, r3, 25 + 5bc0: 481d lsri r0, r0, 29 + 5bc2: 4a5d lsri r2, r2, 29 + 5bc4: 640a cmpne r2, r0 + 5bc6: 0c17 bf 0x5bf4 // 5bf4 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 5bc8: 3170 movi r1, 112 + 5bca: 4044 lsli r2, r0, 4 + 5bcc: 68c5 andn r3, r1 + 5bce: 6cc8 or r3, r2 + 5bd0: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 5bd2: e3fff84d bsr 0x4c6c // 4c6c + + SYSCON->UREG0 &= 0xFFFF00FF; + 5bd6: 137f lrw r3, 0x2000005c // 5dd0 + 5bd8: 31ff movi r1, 255 + 5bda: 9340 ld.w r2, (r3, 0x0) + 5bdc: 22ff addi r2, 256 + 5bde: 9260 ld.w r3, (r2, 0x0) + 5be0: 4128 lsli r1, r1, 8 + 5be2: 68c5 andn r3, r1 + 5be4: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5be6: 8462 ld.b r3, (r4, 0x2) + 5be8: 4379 lsli r3, r3, 25 + 5bea: 4b7d lsri r3, r3, 29 + 5bec: 9220 ld.w r1, (r2, 0x0) + 5bee: 4368 lsli r3, r3, 8 + 5bf0: 6cc4 or r3, r1 + 5bf2: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 5bf4: 8402 ld.b r0, (r4, 0x2) + 5bf6: 8466 ld.b r3, (r4, 0x6) + 5bf8: 401c lsli r0, r0, 28 + 5bfa: 435c lsli r2, r3, 28 + 5bfc: 481d lsri r0, r0, 29 + 5bfe: 4a5d lsri r2, r2, 29 + 5c00: 640a cmpne r2, r0 + 5c02: 0c22 bf 0x5c46 // 5c46 + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 5c04: 310e movi r1, 14 + 5c06: 4041 lsli r2, r0, 1 + 5c08: 68c5 andn r3, r1 + 5c0a: 6cc8 or r3, r2 + 5c0c: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5c0e: e3fff853 bsr 0x4cb4 // 4cb4 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 5c12: 3270 movi r2, 112 + 5c14: 8462 ld.b r3, (r4, 0x2) + 5c16: 68c8 and r3, r2 + 5c18: 3240 movi r2, 64 + 5c1a: 648e cmpne r3, r2 + 5c1c: 08b4 bt 0x5d84 // 5d84 + 5c1e: 8661 ld.b r3, (r6, 0x1) + 5c20: 3b42 cmpnei r3, 2 + 5c22: 08b1 bt 0x5d84 // 5d84 + { + Relay_Stop(); + 5c24: e0000480 bsr 0x6524 // 6524 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 5c28: 136a lrw r3, 0x2000005c // 5dd0 + 5c2a: 31ff movi r1, 255 + 5c2c: 9340 ld.w r2, (r3, 0x0) + 5c2e: 22ff addi r2, 256 + 5c30: 9260 ld.w r3, (r2, 0x0) + 5c32: 4130 lsli r1, r1, 16 + 5c34: 68c5 andn r3, r1 + 5c36: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5c38: 8462 ld.b r3, (r4, 0x2) + 5c3a: 437c lsli r3, r3, 28 + 5c3c: 4b7d lsri r3, r3, 29 + 5c3e: 9220 ld.w r1, (r2, 0x0) + 5c40: 4370 lsli r3, r3, 16 + 5c42: 6cc4 or r3, r1 + 5c44: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 5c46: 8401 ld.b r0, (r4, 0x1) + 5c48: 8465 ld.b r3, (r4, 0x5) + 5c4a: 640e cmpne r3, r0 + 5c4c: 0c14 bf 0x5c74 // 5c74 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 5c4e: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 5c50: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 5c52: 08ab bt 0x5da8 // 5da8 + { + Set_Temperature_Display(320); + 5c54: 30a0 movi r0, 160 + 5c56: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5c58: e3fff786 bsr 0x4b64 // 4b64 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 5c5c: 127d lrw r3, 0x2000005c // 5dd0 + 5c5e: 9340 ld.w r2, (r3, 0x0) + 5c60: 22ff addi r2, 256 + 5c62: 9260 ld.w r3, (r2, 0x0) + 5c64: 4368 lsli r3, r3, 8 + 5c66: 4b68 lsri r3, r3, 8 + 5c68: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5c6a: 8461 ld.b r3, (r4, 0x1) + 5c6c: 9220 ld.w r1, (r2, 0x0) + 5c6e: 4378 lsli r3, r3, 24 + 5c70: 6cc4 or r3, r1 + 5c72: b260 st.w r3, (r2, 0x0) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 5c74: 8409 ld.b r0, (r4, 0x9) + 5c76: 8468 ld.b r3, (r4, 0x8) + 5c78: 4008 lsli r0, r0, 8 + 5c7a: 6c0c or r0, r3 + 5c7c: 846b ld.b r3, (r4, 0xb) + 5c7e: 844a ld.b r2, (r4, 0xa) + 5c80: 4368 lsli r3, r3, 8 + 5c82: 6cc8 or r3, r2 + 5c84: 640e cmpne r3, r0 + 5c86: 0c12 bf 0x5caa // 5caa + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 5c88: 4868 lsri r3, r0, 8 + 5c8a: a46b st.b r3, (r4, 0xb) + 5c8c: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 5c8e: e3fff7af bsr 0x4bec // 4bec + + SYSCON->UREG0 &= 0x00FFFFFF; + 5c92: 1270 lrw r3, 0x2000005c // 5dd0 + 5c94: 9340 ld.w r2, (r3, 0x0) + 5c96: 22ff addi r2, 256 + 5c98: 9260 ld.w r3, (r2, 0x0) + 5c9a: 4368 lsli r3, r3, 8 + 5c9c: 4b68 lsri r3, r3, 8 + 5c9e: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5ca0: 8461 ld.b r3, (r4, 0x1) + 5ca2: 9220 ld.w r1, (r2, 0x0) + 5ca4: 4378 lsli r3, r3, 24 + 5ca6: 6cc4 or r3, r1 + 5ca8: b260 st.w r3, (r2, 0x0) + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 5caa: 844f ld.b r2, (r4, 0xf) + 5cac: 846e ld.b r3, (r4, 0xe) + 5cae: 4248 lsli r2, r2, 8 + 5cb0: 6c8c or r2, r3 + 5cb2: 846d ld.b r3, (r4, 0xd) + 5cb4: 842c ld.b r1, (r4, 0xc) + 5cb6: 4368 lsli r3, r3, 8 + 5cb8: 6cc4 or r3, r1 + 5cba: 648c cmphs r3, r2 + 5cbc: 0804 bt 0x5cc4 // 5cc4 + 5cbe: 5a2d subu r1, r2, r3 + 5cc0: 3925 cmplti r1, 6 + 5cc2: 0c06 bf 0x5cce // 5cce + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 5cc4: 64c8 cmphs r2, r3 + 5cc6: 080b bt 0x5cdc // 5cdc + 5cc8: 5b49 subu r2, r3, r2 + 5cca: 3a25 cmplti r2, 6 + 5ccc: 0808 bt 0x5cdc // 5cdc + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + rf_info.roomc_flag = 0x01; + 5cce: 1242 lrw r2, 0x200005a0 // 5dd4 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 5cd0: a46e st.b r3, (r4, 0xe) + 5cd2: 4b68 lsri r3, r3, 8 + 5cd4: a46f st.b r3, (r4, 0xf) + rf_info.roomc_flag = 0x01; + 5cd6: 8261 ld.b r3, (r2, 0x1) + 5cd8: 3ba5 bseti r3, 5 + 5cda: a261 st.b r3, (r2, 0x1) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 5cdc: 8402 ld.b r0, (r4, 0x2) + 5cde: 8466 ld.b r3, (r4, 0x6) + 5ce0: 4807 lsri r0, r0, 7 + 5ce2: 4b47 lsri r2, r3, 7 + 5ce4: 640a cmpne r2, r0 + 5ce6: 0c18 bf 0x5d16 // 5d16 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 5ce8: 317f movi r1, 127 + 5cea: 4047 lsli r2, r0, 7 + 5cec: 68c4 and r3, r1 + 5cee: 6cc8 or r3, r2 + 5cf0: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5cf2: e3fff85f bsr 0x4db0 // 4db0 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5cf6: 8402 ld.b r0, (r4, 0x2) + 5cf8: 4807 lsri r0, r0, 7 + 5cfa: e3fffeb1 bsr 0x5a5c // 5a5c + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 5cfe: 1175 lrw r3, 0x2000005c // 5dd0 + 5d00: 31ff movi r1, 255 + 5d02: 9340 ld.w r2, (r3, 0x0) + 5d04: 22ff addi r2, 256 + 5d06: 9260 ld.w r3, (r2, 0x0) + 5d08: 68c5 andn r3, r1 + 5d0a: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5d0c: 8462 ld.b r3, (r4, 0x2) + 5d0e: 9220 ld.w r1, (r2, 0x0) + 5d10: 4b67 lsri r3, r3, 7 + 5d12: 6cc4 or r3, r1 + 5d14: b260 st.w r3, (r2, 0x0) + } + } +} + 5d16: 1493 pop r4-r6, r15 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 5d18: 9540 ld.w r2, (r5, 0x0) + 5d1a: 608e subu r2, r3 + 5d1c: 33fa movi r3, 250 + 5d1e: 4363 lsli r3, r3, 3 + 5d20: 648c cmphs r3, r2 + 5d22: 0b03 bt 0x5b28 // 5b28 + 5d24: 8478 ld.b r3, (r4, 0x18) + 5d26: 3b41 cmpnei r3, 1 + 5d28: 0b00 bt 0x5b28 // 5b28 + 5d2a: 8479 ld.b r3, (r4, 0x19) + 5d2c: 3b41 cmpnei r3, 1 + 5d2e: 0afd bt 0x5b28 // 5b28 + TempCtrl.BackLightTick = SysTick_1ms; + 5d30: 9560 ld.w r3, (r5, 0x0) + 5d32: 4b48 lsri r2, r3, 8 + 5d34: a470 st.b r3, (r4, 0x10) + 5d36: a451 st.b r2, (r4, 0x11) + 5d38: 4b50 lsri r2, r3, 16 + 5d3a: 4b78 lsri r3, r3, 24 + 5d3c: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5d3e: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 5d40: 3300 movi r3, 0 + 5d42: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5d44: 74c2 sextb r3, r0 + 5d46: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5d48: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5d4a: 0eef bf 0x5b28 // 5b28 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5d4c: 4807 lsri r0, r0, 7 + 5d4e: e3fffe87 bsr 0x5a5c // 5a5c + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 5d52: 847b ld.b r3, (r4, 0x1b) + 5d54: 3b44 cmpnei r3, 4 + 5d56: 0ee9 bf 0x5b28 // 5b28 + Controlled_LCD_Backlight(1); + 5d58: 3001 movi r0, 1 + 5d5a: e3fff82b bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5d5e: 103f lrw r1, 0x7f1e // 5dd8 + 5d60: 06e1 br 0x5b22 // 5b22 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 5d62: 8462 ld.b r3, (r4, 0x2) + 5d64: 74ce sextb r3, r3 + 5d66: 3bdf btsti r3, 31 + 5d68: 0f07 bf 0x5b76 // 5b76 + 5d6a: 8478 ld.b r3, (r4, 0x18) + 5d6c: 3b41 cmpnei r3, 1 + 5d6e: 0b04 bt 0x5b76 // 5b76 + 5d70: 847c ld.b r3, (r4, 0x1c) + 5d72: 3b41 cmpnei r3, 1 + 5d74: 0b01 bt 0x5b76 // 5b76 + TempCtrl.SceneFlag = 0x00; + 5d76: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 5d78: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 5d7a: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 5d7c: e3fff81a bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5d80: 1037 lrw r1, 0x7f3e // 5ddc + 5d82: 06f7 br 0x5b70 // 5b70 + switch(TempCtrl.TemState_Now.fan) + 5d84: 8462 ld.b r3, (r4, 0x2) + 5d86: 437c lsli r3, r3, 28 + 5d88: 4b7d lsri r3, r3, 29 + 5d8a: 3b42 cmpnei r3, 2 + 5d8c: 0c08 bf 0x5d9c // 5d9c + 5d8e: 3b43 cmpnei r3, 3 + 5d90: 0c09 bf 0x5da2 // 5da2 + 5d92: 3b41 cmpnei r3, 1 + 5d94: 0b4a bt 0x5c28 // 5c28 + Relay_Low(); + 5d96: e00003b5 bsr 0x6500 // 6500 + break; + 5d9a: 0747 br 0x5c28 // 5c28 + Relay_Mid(); + 5d9c: e00003a0 bsr 0x64dc // 64dc + break; + 5da0: 0744 br 0x5c28 // 5c28 + Relay_High(); + 5da2: e000038b bsr 0x64b8 // 64b8 + break; + 5da6: 0741 br 0x5c28 // 5c28 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5da8: 330a movi r3, 10 + 5daa: 7c0c mult r0, r3 + 5dac: 0756 br 0x5c58 // 5c58 + 5dae: 0000 bkpt + 5db0: 200003f3 .long 0x200003f3 + 5db4: 200003d4 .long 0x200003d4 + 5db8: 200000b8 .long 0x200000b8 + 5dbc: 00000bb8 .long 0x00000bb8 + 5dc0: 00007f0c .long 0x00007f0c + 5dc4: 00007f2e .long 0x00007f2e + 5dc8: 20000350 .long 0x20000350 + 5dcc: 00001388 .long 0x00001388 + 5dd0: 2000005c .long 0x2000005c + 5dd4: 200005a0 .long 0x200005a0 + 5dd8: 00007f1e .long 0x00007f1e + 5ddc: 00007f3e .long 0x00007f3e + +Disassembly of section .text.Debug_Init: + +00005de0 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 5de0: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 5de2: 108b lrw r4, 0x200003f3 // 5e0c + 5de4: 320c movi r2, 12 + 5de6: 3100 movi r1, 0 + 5de8: 6c13 mov r0, r4 + 5dea: e3ffddbd bsr 0x1964 // 1964 <__memset_fast> + Debug_Inf.Page = 0x01; + 5dee: 3301 movi r3, 1 + 5df0: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 5df2: 1068 lrw r3, 0x20000350 // 5e10 + 5df4: 8340 ld.b r2, (r3, 0x0) + 5df6: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 5df8: 8341 ld.b r2, (r3, 0x1) + 5dfa: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 5dfc: 8342 ld.b r2, (r3, 0x2) + 5dfe: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5e00: 8344 ld.b r2, (r3, 0x4) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5e02: 8365 ld.b r3, (r3, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5e04: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5e06: a467 st.b r3, (r4, 0x7) +} + 5e08: 1491 pop r4, r15 + 5e0a: 0000 bkpt + 5e0c: 200003f3 .long 0x200003f3 + 5e10: 20000350 .long 0x20000350 + +Disassembly of section .text.Dev_SaveData: + +00005e14 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 5e14: 14d1 push r4, r15 + 5e16: 1423 subi r14, r14, 12 +// g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); +// } +// +// } + + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 5e18: 1078 lrw r3, 0x200003f3 // 5e78 + 5e1a: 1099 lrw r4, 0x20000350 // 5e7c + 5e1c: 8343 ld.b r2, (r3, 0x3) + 5e1e: 8420 ld.b r1, (r4, 0x0) + 5e20: 6486 cmpne r1, r2 + 5e22: 0811 bt 0x5e44 // 5e44 + 5e24: 8304 ld.b r0, (r3, 0x4) + 5e26: 8421 ld.b r1, (r4, 0x1) + 5e28: 6442 cmpne r0, r1 + 5e2a: 080d bt 0x5e44 // 5e44 + 5e2c: 8305 ld.b r0, (r3, 0x5) + 5e2e: 8422 ld.b r1, (r4, 0x2) + 5e30: 6442 cmpne r0, r1 + 5e32: 0809 bt 0x5e44 // 5e44 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level) + 5e34: 8306 ld.b r0, (r3, 0x6) + 5e36: 8424 ld.b r1, (r4, 0x4) + 5e38: 6442 cmpne r0, r1 + 5e3a: 0805 bt 0x5e44 // 5e44 + 5e3c: 8307 ld.b r0, (r3, 0x7) + 5e3e: 8425 ld.b r1, (r4, 0x5) + 5e40: 6442 cmpne r0, r1 + 5e42: 0c19 bf 0x5e74 // 5e74 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 5e44: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 5e46: 8344 ld.b r2, (r3, 0x4) + 5e48: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 5e4a: 8345 ld.b r2, (r3, 0x5) + 5e4c: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5e4e: 8346 ld.b r2, (r3, 0x6) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + + EEPROM_WriteParaInfo(&g_eeprom); + 5e50: 100b lrw r0, 0x20000350 // 5e7c + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5e52: 8367 ld.b r3, (r3, 0x7) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5e54: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5e56: a465 st.b r3, (r4, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 5e58: e3fff2b6 bsr 0x43c4 // 43c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 5e5c: 8425 ld.b r1, (r4, 0x5) + 5e5e: b822 st.w r1, (r14, 0x8) + 5e60: 8424 ld.b r1, (r4, 0x4) + 5e62: b821 st.w r1, (r14, 0x4) + 5e64: 8422 ld.b r1, (r4, 0x2) + 5e66: b820 st.w r1, (r14, 0x0) + 5e68: 8461 ld.b r3, (r4, 0x1) + 5e6a: 8440 ld.b r2, (r4, 0x0) + 5e6c: 1025 lrw r1, 0x7f51 // 5e80 + 5e6e: 3000 movi r0, 0 + 5e70: e3ffee6e bsr 0x3b4c // 3b4c + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + } +} + 5e74: 1403 addi r14, r14, 12 + 5e76: 1491 pop r4, r15 + 5e78: 200003f3 .long 0x200003f3 + 5e7c: 20000350 .long 0x20000350 + 5e80: 00007f51 .long 0x00007f51 + +Disassembly of section .text.Debug_Task: + +00005e84 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 5e84: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE5ID)) //设置模式 + 5e86: 1077 lrw r3, 0x200003f3 // 5ee0 + 5e88: 8340 ld.b r2, (r3, 0x0) + 5e8a: 3a41 cmpnei r2, 1 + 5e8c: 0829 bt 0x5ede // 5ede + 5e8e: 8329 ld.b r1, (r3, 0x9) + 5e90: 8348 ld.b r2, (r3, 0x8) + 5e92: 4128 lsli r1, r1, 8 + 5e94: 6c48 or r1, r2 + 5e96: 834a ld.b r2, (r3, 0xa) + 5e98: 4250 lsli r2, r2, 16 + 5e9a: 6c48 or r1, r2 + 5e9c: 834b ld.b r2, (r3, 0xb) + 5e9e: 1092 lrw r4, 0x200000b8 // 5ee4 + 5ea0: 4258 lsli r2, r2, 24 + 5ea2: 6c84 or r2, r1 + 5ea4: 9400 ld.w r0, (r4, 0x0) + 5ea6: 600a subu r0, r2 + 5ea8: 1050 lrw r2, 0x2710 // 5ee8 + 5eaa: 6408 cmphs r2, r0 + 5eac: 0819 bt 0x5ede // 5ede + 5eae: 8342 ld.b r2, (r3, 0x2) + 5eb0: 3a45 cmpnei r2, 5 + 5eb2: 0c16 bf 0x5ede // 5ede + { + Debug_Inf.Tick = SysTick_1ms; + 5eb4: 9440 ld.w r2, (r4, 0x0) + 5eb6: 4a28 lsri r1, r2, 8 + 5eb8: a348 st.b r2, (r3, 0x8) + 5eba: a329 st.b r1, (r3, 0x9) + 5ebc: 4a30 lsri r1, r2, 16 + 5ebe: 4a58 lsri r2, r2, 24 + 5ec0: a34b st.b r2, (r3, 0xb) + Debug_Inf.State = 0x00; + 5ec2: 3200 movi r2, 0 + Debug_Inf.Tick = SysTick_1ms; + 5ec4: a32a st.b r1, (r3, 0xa) + Debug_Inf.State = 0x00; + 5ec6: a340 st.b r2, (r3, 0x0) + Dev_SaveData(); + 5ec8: e3ffffa6 bsr 0x5e14 // 5e14 + + HT1621_Clear(); + 5ecc: e3fff5de bsr 0x4a88 // 4a88 + //关背光 + Controlled_LCD_Backlight(0x00); + 5ed0: 3000 movi r0, 0 + 5ed2: e3fff76f bsr 0x4db0 // 4db0 +// Controlled_Key_Backlight(0x00); + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 5ed6: 1026 lrw r1, 0x7f9d // 5eec + 5ed8: 3000 movi r0, 0 + 5eda: e3ffee39 bsr 0x3b4c // 3b4c + } + 5ede: 1491 pop r4, r15 + 5ee0: 200003f3 .long 0x200003f3 + 5ee4: 200000b8 .long 0x200000b8 + 5ee8: 00002710 .long 0x00002710 + 5eec: 00007f9d .long 0x00007f9d + +Disassembly of section .text.get_check_sum: + +00005ef0 : +* @param[in] {pack} the head address of array +* @param[in] {pack_len} the length of array +* @return sum +*/ +unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len) +{ + 5ef0: 6cc3 mov r3, r0 + 5ef2: 6040 addu r1, r0 + unsigned short i; + unsigned char check_sum = 0; + 5ef4: 3000 movi r0, 0 + + for(i = 0; i < pack_len; i ++){ + 5ef6: 644e cmpne r3, r1 + 5ef8: 0802 bt 0x5efc // 5efc + check_sum += *pack ++; + } + + return check_sum; +} + 5efa: 783c jmp r15 + check_sum += *pack ++; + 5efc: 8340 ld.b r2, (r3, 0x0) + 5efe: 6008 addu r0, r2 + 5f00: 7400 zextb r0, r0 + 5f02: 2300 addi r3, 1 + 5f04: 07f9 br 0x5ef6 // 5ef6 + +Disassembly of section .text.uart_receive_input: + +00005f08 : +* @brief copy receive data from uart receive interrupt +* @param[in] {value} Data received from interrupt +* @return void +*/ +void uart_receive_input(unsigned char value) +{ + 5f08: 14c1 push r4 +// #error "please call this fuction in the interrupt fuction of serial receive, and delete this line" + + if(1 == queue_out - queue_in) { + 5f0a: 106d lrw r3, 0x2000059c // 5f3c + 5f0c: 9320 ld.w r1, (r3, 0x0) + 5f0e: 106d lrw r3, 0x2000050c // 5f40 + 5f10: 9340 ld.w r2, (r3, 0x0) + 5f12: 5989 subu r4, r1, r2 + 5f14: 3c41 cmpnei r4, 1 + 5f16: 0c11 bf 0x5f38 // 5f38 + //queue full + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_1"); + + }else if((queue_in > queue_out) && ((queue_in - queue_out) >= sizeof(zigbee_queue_buf))) { + 5f18: 6484 cmphs r1, r2 + 5f1a: 0806 bt 0x5f26 // 5f26 + 5f1c: 5a85 subu r4, r2, r1 + 5f1e: 3184 movi r1, 132 + 5f20: 4121 lsli r1, r1, 1 + 5f22: 6504 cmphs r1, r4 + 5f24: 0c0a bf 0x5f38 // 5f38 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_2"); + + }else { + //queue not full + if(queue_in >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))){ + 5f26: 1028 lrw r1, 0x20000509 // 5f44 + 5f28: 6448 cmphs r2, r1 + 5f2a: 0c03 bf 0x5f30 // 5f30 + queue_in = (unsigned char *)(zigbee_queue_buf); + 5f2c: 1047 lrw r2, 0x20000400 // 5f48 + 5f2e: b340 st.w r2, (r3, 0x0) + } + *queue_in ++ = value; + 5f30: 9340 ld.w r2, (r3, 0x0) + 5f32: 5a22 addi r1, r2, 1 + 5f34: b320 st.w r1, (r3, 0x0) + 5f36: a200 st.b r0, (r2, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_receive: %02X",value); + + } +} + 5f38: 1481 pop r4 + 5f3a: 0000 bkpt + 5f3c: 2000059c .long 0x2000059c + 5f40: 2000050c .long 0x2000050c + 5f44: 20000509 .long 0x20000509 + 5f48: 20000400 .long 0x20000400 + +Disassembly of section .text.Queue_Read_Byte: + +00005f4c : +*/ +unsigned char Queue_Read_Byte(void) +{ + unsigned char value; + + if(queue_out != queue_in) { + 5f4c: 1069 lrw r3, 0x2000059c // 5f70 + 5f4e: 102a lrw r1, 0x2000050c // 5f74 + 5f50: 9340 ld.w r2, (r3, 0x0) + 5f52: 9120 ld.w r1, (r1, 0x0) + 5f54: 644a cmpne r2, r1 + 5f56: 0c0b bf 0x5f6c // 5f6c + //have data in queue + if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) { + 5f58: 1028 lrw r1, 0x20000509 // 5f78 + 5f5a: 6448 cmphs r2, r1 + 5f5c: 0c03 bf 0x5f62 // 5f62 + queue_out = (unsigned char *)(zigbee_queue_buf); + 5f5e: 1048 lrw r2, 0x20000400 // 5f7c + 5f60: b340 st.w r2, (r3, 0x0) + } + value = *queue_out ++; + 5f62: 9340 ld.w r2, (r3, 0x0) + 5f64: 5a22 addi r1, r2, 1 + 5f66: b320 st.w r1, (r3, 0x0) + 5f68: 8200 ld.b r0, (r2, 0x0) + 5f6a: 7400 zextb r0, r0 + } + + + return value; +} + 5f6c: 783c jmp r15 + 5f6e: 0000 bkpt + 5f70: 2000059c .long 0x2000059c + 5f74: 2000050c .long 0x2000050c + 5f78: 20000509 .long 0x20000509 + 5f7c: 20000400 .long 0x20000400 + +Disassembly of section .text.with_data_rxbuff: + +00005f80 : + * @param Null + * @return the queue state + */ +unsigned char with_data_rxbuff(void) +{ + if(queue_out != queue_in) + 5f80: 1065 lrw r3, 0x2000059c // 5f94 + 5f82: 3000 movi r0, 0 + 5f84: 9340 ld.w r2, (r3, 0x0) + 5f86: 1065 lrw r3, 0x2000050c // 5f98 + 5f88: 9360 ld.w r3, (r3, 0x0) + 5f8a: 64ca cmpne r2, r3 + 5f8c: 6001 addc r0, r0 + 5f8e: 7400 zextb r0, r0 + return 1; + else + return 0; +} + 5f90: 783c jmp r15 + 5f92: 0000 bkpt + 5f94: 2000059c .long 0x2000059c + 5f98: 2000050c .long 0x2000050c + +Disassembly of section .text.RF_Info_Init: + +00005f9c : + + + + +void RF_Info_Init(void) +{ + 5f9c: 14d1 push r4, r15 + memset(&rf_info,0,sizeof(RF_INFO)); + 5f9e: 1089 lrw r4, 0x200005a0 // 5fc0 + 5fa0: 3203 movi r2, 3 + 5fa2: 3100 movi r1, 0 + 5fa4: 6c13 mov r0, r4 + 5fa6: e3ffdcdf bsr 0x1964 // 1964 <__memset_fast> + + queue_in = (unsigned char *)zigbee_queue_buf; + 5faa: 1067 lrw r3, 0x20000400 // 5fc4 + 5fac: 1047 lrw r2, 0x2000050c // 5fc8 + 5fae: b260 st.w r3, (r2, 0x0) + queue_out = (unsigned char *)zigbee_queue_buf; + 5fb0: 1047 lrw r2, 0x2000059c // 5fcc + 5fb2: b260 st.w r3, (r2, 0x0) + + rf_info.net_state = 0x01; + 5fb4: 3301 movi r3, 1 + 5fb6: a460 st.b r3, (r4, 0x0) + rf_info.setc_flag = 0x01; + rf_info.setf_flag = 0x01; + rf_info.fan_flag = 0x01; + rf_info.roomc_flag = 0x01; + rf_info.roomf_flag = 0x01; + rf_info.valve_flag = 0x01; + 5fb8: 3300 movi r3, 0 + 5fba: 2b00 subi r3, 1 + 5fbc: a461 st.b r3, (r4, 0x1) + +} + 5fbe: 1491 pop r4, r15 + 5fc0: 200005a0 .long 0x200005a0 + 5fc4: 20000400 .long 0x20000400 + 5fc8: 2000050c .long 0x2000050c + 5fcc: 2000059c .long 0x2000059c + +Disassembly of section .text.Add_Frame_Head: + +00005fd0 : +* +* +* +*/ +void Add_Frame_Head(U8_T *data, U8_T cmd, U8_T lens) +{ + 5fd0: 14c2 push r4-r5 + U16_T frameno = 0x00; + + data[HEAD_FIRST] = FIRST_FRAME_HEAD; + 5fd2: 3355 movi r3, 85 + 5fd4: a060 st.b r3, (r0, 0x0) + data[HEAD_SECOND] = SECOND_FRAME_HEAD; + 5fd6: 3300 movi r3, 0 + 5fd8: 2b55 subi r3, 86 + 5fda: a061 st.b r3, (r0, 0x1) + data[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER; + 5fdc: 3302 movi r3, 2 + 5fde: a062 st.b r3, (r0, 0x2) + if(seq_num > 0xfff0){ + 5fe0: 10aa lrw r5, 0xfff0 // 6008 + seq_num ++; + 5fe2: 106b lrw r3, 0x200000d8 // 600c + 5fe4: 8b80 ld.h r4, (r3, 0x0) + 5fe6: 2400 addi r4, 1 + 5fe8: 7511 zexth r4, r4 + if(seq_num > 0xfff0){ + 5fea: 6514 cmphs r5, r4 + 5fec: 0c0b bf 0x6002 // 6002 + seq_num = 1; + 5fee: ab80 st.h r4, (r3, 0x0) + return seq_num; + 5ff0: 8b60 ld.h r3, (r3, 0x0) + + frameno = seq_num_get(); + data[SEQ_HIGH] = (frameno << 8); + 5ff2: 3400 movi r4, 0 + data[SEQ_LOW] = (frameno & 0xff); + 5ff4: a064 st.b r3, (r0, 0x4) + + data[FRAME_TYPE] = cmd; + + data[LENGTH_HIGH] = lens >> 8; + 5ff6: 3300 movi r3, 0 + data[SEQ_HIGH] = (frameno << 8); + 5ff8: a083 st.b r4, (r0, 0x3) + data[FRAME_TYPE] = cmd; + 5ffa: a025 st.b r1, (r0, 0x5) + data[LENGTH_HIGH] = lens >> 8; + 5ffc: a066 st.b r3, (r0, 0x6) + data[LENGTH_LOW] = lens & 0xff; + 5ffe: a047 st.b r2, (r0, 0x7) + +} + 6000: 1482 pop r4-r5 + seq_num = 1; + 6002: 3401 movi r4, 1 + 6004: 07f5 br 0x5fee // 5fee + 6006: 0000 bkpt + 6008: 0000fff0 .long 0x0000fff0 + 600c: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Product_Info_Update: + +00006010 : + + + +void Product_Info_Update(void) +{ + 6010: 14d0 push r15 + 6012: 142a subi r14, r14, 40 + U8_T data[37]; + memset(data,0,sizeof(data)); + 6014: 6c3b mov r0, r14 + 6016: 3225 movi r2, 37 + 6018: 3100 movi r1, 0 + 601a: e3ffdca5 bsr 0x1964 // 1964 <__memset_fast> + U8_T lens = 0x00; + + lens += strlen("{\"p\":\""); + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 601e: 107b lrw r3, 0x2270227b // 6088 + + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6020: 300d movi r0, 13 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 6022: b862 st.w r3, (r14, 0x8) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6024: 6038 addu r0, r14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 6026: 107f lrw r3, 0x223a // 60a0 + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6028: 3208 movi r2, 8 + 602a: 1039 lrw r1, 0x7fa8 // 608c + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 602c: dc6e1006 st.h r3, (r14, 0xc) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6030: e3ffdcde bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen((U8_T *)PRODUCT_KEY); + + memcpy(&data[DATA_START + lens-1],"\",\"v\":\"",strlen("\",\"v\":\"")); + 6034: 3015 movi r0, 21 + 6036: 6038 addu r0, r14 + 6038: 3207 movi r2, 7 + 603a: 1036 lrw r1, 0x7fb1 // 6090 + 603c: e3ffdcd8 bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen("\",\"v\":\""); + + memcpy(&data[DATA_START + lens-1],(U8_T *)MCU_VER,strlen((U8_T *)MCU_VER)); + 6040: 1055 lrw r2, 0x2e302e31 // 6094 + 6042: b847 st.w r2, (r14, 0x1c) + 6044: 1b07 addi r3, r14, 28 + 6046: 3230 movi r2, 48 + 6048: a344 st.b r2, (r3, 0x4) + lens += strlen((U8_T *)MCU_VER); + + memcpy(&data[DATA_START + lens-1],"\"}",strlen("\"}")); + 604a: 3321 movi r3, 33 + 604c: 60f8 addu r3, r14 + 604e: 3222 movi r2, 34 + 6050: a340 st.b r2, (r3, 0x0) + 6052: 327d movi r2, 125 + 6054: a341 st.b r2, (r3, 0x1) + lens += strlen("\"}"); + + Add_Frame_Head(data,PRODUCT_INFO_CMD,lens); + 6056: 6c3b mov r0, r14 + 6058: 321c movi r2, 28 + 605a: 3101 movi r1, 1 + 605c: e3ffffba bsr 0x5fd0 // 5fd0 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 6060: 3124 movi r1, 36 + 6062: 6c3b mov r0, r14 + 6064: e3ffff46 bsr 0x5ef0 // 5ef0 + 6068: 1b08 addi r3, r14, 32 + 606a: a304 st.b r0, (r3, 0x4) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 606c: 6cbb mov r2, r14 + 606e: 3325 movi r3, 37 + 6070: 102a lrw r1, 0x7fb9 // 6098 + 6072: 3000 movi r0, 0 + 6074: e3ffed72 bsr 0x3b58 // 3b58 + + UARTTransmit(UART2,data,lens); + 6078: 1069 lrw r3, 0x20000038 // 609c + 607a: 3225 movi r2, 37 + 607c: 9300 ld.w r0, (r3, 0x0) + 607e: 6c7b mov r1, r14 + 6080: e3ffe04e bsr 0x211c // 211c +} + 6084: 140a addi r14, r14, 40 + 6086: 1490 pop r15 + 6088: 2270227b .long 0x2270227b + 608c: 00007fa8 .long 0x00007fa8 + 6090: 00007fb1 .long 0x00007fb1 + 6094: 2e302e31 .long 0x2e302e31 + 6098: 00007fb9 .long 0x00007fb9 + 609c: 20000038 .long 0x20000038 + 60a0: 0000223a .long 0x0000223a + +Disassembly of section .text.Recv_RFNetState_Ack: + +000060a4 : + +void Recv_RFNetState_Ack(void) +{ + 60a4: 14d0 push r15 + 60a6: 1423 subi r14, r14, 12 + U8_T data[9]; + memset(data,0,sizeof(data)); + 60a8: 6c3b mov r0, r14 + 60aa: 3209 movi r2, 9 + 60ac: 3100 movi r1, 0 + 60ae: e3ffdc5b bsr 0x1964 // 1964 <__memset_fast> + + U8_T lens = 0x00; + + Add_Frame_Head(data,ZIGBEE_STATE_CMD,lens); + 60b2: 3200 movi r2, 0 + 60b4: 6c3b mov r0, r14 + 60b6: 3102 movi r1, 2 + 60b8: e3ffff8c bsr 0x5fd0 // 5fd0 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 60bc: 3108 movi r1, 8 + 60be: 6c3b mov r0, r14 + 60c0: e3ffff18 bsr 0x5ef0 // 5ef0 + + UARTTransmit(UART2,data,lens); + 60c4: 1065 lrw r3, 0x20000038 // 60d8 + 60c6: 3209 movi r2, 9 + data[lens-1] = get_check_sum(data,(lens-1)); + 60c8: dc0e0008 st.b r0, (r14, 0x8) + UARTTransmit(UART2,data,lens); + 60cc: 6c7b mov r1, r14 + 60ce: 9300 ld.w r0, (r3, 0x0) + 60d0: e3ffe026 bsr 0x211c // 211c +} + 60d4: 1403 addi r14, r14, 12 + 60d6: 1490 pop r15 + 60d8: 20000038 .long 0x20000038 + +Disassembly of section .text.Tem_Fun_Ctrl_Report: + +000060dc : + + +void Tem_Fun_Ctrl_Report(U8_T datalens,U8_T dpid,U8_T type,U32_T state,U8_T source) +{ + 60dc: 14d4 push r4-r7, r15 + 60de: 1426 subi r14, r14, 24 + 60e0: 6d4f mov r5, r3 + 60e2: 1b0b addi r3, r14, 44 + 60e4: 6d8b mov r6, r2 + 60e6: 8360 ld.b r3, (r3, 0x0) + 60e8: 6dc7 mov r7, r1 + 60ea: 6d03 mov r4, r0 + U8_T data[17]; + memset(data,0,sizeof(data)); + 60ec: 3211 movi r2, 17 + 60ee: 3100 movi r1, 0 + 60f0: 1801 addi r0, r14, 4 +{ + 60f2: b860 st.w r3, (r14, 0x0) + memset(data,0,sizeof(data)); + 60f4: e3ffdc38 bsr 0x1964 // 1964 <__memset_fast> + U8_T cmd = 0x00; + + data[DATA_START] = dpid; //dpID + data[DATA_START+1] = type; //数据类型 + + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 60f8: 3e41 cmpnei r6, 1 + data[DATA_START] = dpid; //dpID + 60fa: dcee000c st.b r7, (r14, 0xc) + data[DATA_START+1] = type; //数据类型 + 60fe: dcce000d st.b r6, (r14, 0xd) + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 6102: 9860 ld.w r3, (r14, 0x0) + 6104: 0c03 bf 0x610a // 610a + 6106: 3e44 cmpnei r6, 4 + 6108: 0829 bt 0x615a // 615a + { + data[DATA_START+2] = 0x00; + data[DATA_START+3] = 0x01; + 610a: 3201 movi r2, 1 + 610c: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state&0xff; + 6110: dcae0010 st.b r5, (r14, 0x10) + data[DATA_START+5] = state>>16; + data[DATA_START+6] = state>>8; + data[DATA_START+7] = state&0xff; + } + + if(source == ACTIVE) + 6114: 3b41 cmpnei r3, 1 + 6116: 0c33 bf 0x617c // 617c + { + cmd = 0x06; + } + else if(source == PASSIVE) + 6118: 3b42 cmpnei r3, 2 + 611a: 0833 bt 0x6180 // 6180 + { + cmd = 0x05; + 611c: 3105 movi r1, 5 + } + + Add_Frame_Head(data,cmd,datalens); + 611e: 6c93 mov r2, r4 + + lens = PROTOCOL_HEAD + datalens; + 6120: 2408 addi r4, 9 + 6122: 7510 zextb r4, r4 + + data[lens-1] = get_check_sum(data,(lens-1)); + 6124: 7551 zexth r5, r4 + Add_Frame_Head(data,cmd,datalens); + 6126: 1801 addi r0, r14, 4 + 6128: e3ffff54 bsr 0x5fd0 // 5fd0 + data[lens-1] = get_check_sum(data,(lens-1)); + 612c: 5d23 subi r1, r5, 1 + 612e: 7445 zexth r1, r1 + 6130: 1801 addi r0, r14, 4 + 6132: e3fffedf bsr 0x5ef0 // 5ef0 + 6136: 1b01 addi r3, r14, 4 + 6138: 610c addu r4, r3 + 613a: 2c00 subi r4, 1 + 613c: a400 st.b r0, (r4, 0x0) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 613e: 6cd7 mov r3, r5 + 6140: 1a01 addi r2, r14, 4 + 6142: 1031 lrw r1, 0x7fb9 // 6184 + 6144: 3000 movi r0, 0 + 6146: e3ffed09 bsr 0x3b58 // 3b58 + + UARTTransmit(UART2,data,lens); + 614a: 1070 lrw r3, 0x20000038 // 6188 + 614c: 6c97 mov r2, r5 + 614e: 9300 ld.w r0, (r3, 0x0) + 6150: 1901 addi r1, r14, 4 + 6152: e3ffdfe5 bsr 0x211c // 211c +} + 6156: 1406 addi r14, r14, 24 + 6158: 1494 pop r4-r7, r15 + else if(type == DP_TYPE_VALUE) + 615a: 3e42 cmpnei r6, 2 + 615c: 0bdc bt 0x6114 // 6114 + data[DATA_START+3] = 0x04; + 615e: 3204 movi r2, 4 + 6160: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state>>24; + 6164: 4d58 lsri r2, r5, 24 + 6166: dc4e0010 st.b r2, (r14, 0x10) + data[DATA_START+5] = state>>16; + 616a: 4d50 lsri r2, r5, 16 + 616c: dc4e0011 st.b r2, (r14, 0x11) + data[DATA_START+6] = state>>8; + 6170: 4d48 lsri r2, r5, 8 + 6172: dc4e0012 st.b r2, (r14, 0x12) + data[DATA_START+7] = state&0xff; + 6176: dcae0013 st.b r5, (r14, 0x13) + 617a: 07cd br 0x6114 // 6114 + cmd = 0x06; + 617c: 3106 movi r1, 6 + 617e: 07d0 br 0x611e // 611e + U8_T cmd = 0x00; + 6180: 3100 movi r1, 0 + 6182: 07ce br 0x611e // 611e + 6184: 00007fb9 .long 0x00007fb9 + 6188: 20000038 .long 0x20000038 + +Disassembly of section .text.data_handle: + +0000618c : +* @brief handle received frame from zigbee module baseon frame cmd id +* @param[in] {void} +* @return result of handle +*/ +int data_handle(unsigned short offset) +{ + 618c: 14d2 push r4-r5, r15 + unsigned char ret; + unsigned short i; + + U32_T temp = 0x00; + + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 618e: 5872 addi r3, r0, 5 + 6190: 1286 lrw r4, 0x20000510 // 62a8 + + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 6192: 5856 addi r2, r0, 6 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6194: 60d0 addu r3, r4 + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 6196: 6090 addu r2, r4 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 6198: 8360 ld.b r3, (r3, 0x0) + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 619a: 8240 ld.b r2, (r2, 0x0) + total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW]; + 619c: 585a addi r2, r0, 7 + 619e: 6090 addu r2, r4 + 61a0: 8240 ld.b r2, (r2, 0x0) + + seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8; + 61a2: 584a addi r2, r0, 3 + 61a4: 6090 addu r2, r4 + 61a6: 8240 ld.b r2, (r2, 0x0) + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 61a8: 74cc zextb r3, r3 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 61aa: 584e addi r2, r0, 4 + 61ac: 6090 addu r2, r4 + + switch(cmd_type) + 61ae: 3b42 cmpnei r3, 2 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 61b0: 8240 ld.b r2, (r2, 0x0) + switch(cmd_type) + 61b2: 0c09 bf 0x61c4 // 61c4 + 61b4: 3b44 cmpnei r3, 4 + 61b6: 0c13 bf 0x61dc // 61dc + 61b8: 3b41 cmpnei r3, 1 + 61ba: 0803 bt 0x61c0 // 61c0 + { + case PRODUCT_INFO_CMD: //RF查询产品信息 + Product_Info_Update(); + 61bc: e3ffff2a bsr 0x6010 // 6010 + default: + return ret = 0x01; + break; + } + return 1; +} + 61c0: 3001 movi r0, 1 + 61c2: 1492 pop r4-r5, r15 + if(rf_info.net_state != zigbee_uart_rx_buf[offset + DATA_START]) + 61c4: 587e addi r3, r0, 8 + 61c6: 5c0c addu r0, r4, r3 + 61c8: 1179 lrw r3, 0x200005a0 // 62ac + 61ca: 8040 ld.b r2, (r0, 0x0) + 61cc: 8320 ld.b r1, (r3, 0x0) + 61ce: 6486 cmpne r1, r2 + 61d0: 0c03 bf 0x61d6 // 61d6 + rf_info.net_state = zigbee_uart_rx_buf[offset + DATA_START]; + 61d2: 8040 ld.b r2, (r0, 0x0) + 61d4: a340 st.b r2, (r3, 0x0) + Recv_RFNetState_Ack(); + 61d6: e3ffff67 bsr 0x60a4 // 60a4 + break; + 61da: 07f3 br 0x61c0 // 61c0 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 61dc: 587e addi r3, r0, 8 + 61de: 60d0 addu r3, r4 + 61e0: 8360 ld.b r3, (r3, 0x0) + 61e2: 74cc zextb r3, r3 + 61e4: 3b42 cmpnei r3, 2 + 61e6: 0c2a bf 0x623a // 623a + 61e8: 3b02 cmphsi r3, 3 + 61ea: 0812 bt 0x620e // 620e + 61ec: 3b41 cmpnei r3, 1 + 61ee: 0be9 bt 0x61c0 // 61c0 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 61f0: 200b addi r0, 12 + 61f2: 6010 addu r0, r4 + 61f4: 8060 ld.b r3, (r0, 0x0) + 61f6: 112f lrw r1, 0x200003d4 // 62b0 + 61f8: 4347 lsli r2, r3, 7 + 61fa: 307f movi r0, 127 + 61fc: 8162 ld.b r3, (r1, 0x2) + 61fe: 68c0 and r3, r0 + 6200: 6cc8 or r3, r2 + rf_info.switc_flag = 0x01; + 6202: 114b lrw r2, 0x200005a0 // 62ac + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6204: a162 st.b r3, (r1, 0x2) + rf_info.switc_flag = 0x01; + 6206: 8261 ld.b r3, (r2, 0x1) + 6208: 3ba0 bseti r3, 0 + rf_info.fan_flag = 0x01; + 620a: a261 st.b r3, (r2, 0x1) + break; + 620c: 07da br 0x61c0 // 61c0 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 620e: 3b50 cmpnei r3, 16 + 6210: 0c25 bf 0x625a // 625a + 6212: 3240 movi r2, 64 + 6214: 648e cmpne r3, r2 + 6216: 0bd5 bt 0x61c0 // 61c0 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6218: 6cc3 mov r3, r0 + 621a: 230b addi r3, 12 + 621c: 5c0c addu r0, r4, r3 + 621e: 8060 ld.b r3, (r0, 0x0) + 6220: 3207 movi r2, 7 + 6222: 1124 lrw r1, 0x200003d4 // 62b0 + 6224: 68c8 and r3, r2 + 6226: 4341 lsli r2, r3, 1 + 6228: 300e movi r0, 14 + 622a: 8162 ld.b r3, (r1, 0x2) + 622c: 68c1 andn r3, r0 + 622e: 6cc8 or r3, r2 + rf_info.fan_flag = 0x01; + 6230: 105f lrw r2, 0x200005a0 // 62ac + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6232: a162 st.b r3, (r1, 0x2) + rf_info.fan_flag = 0x01; + 6234: 8261 ld.b r3, (r2, 0x1) + 6236: 3ba4 bseti r3, 4 + 6238: 07e9 br 0x620a // 620a + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 623a: 200b addi r0, 12 + 623c: 6010 addu r0, r4 + 623e: 8060 ld.b r3, (r0, 0x0) + 6240: 3207 movi r2, 7 + 6242: 103c lrw r1, 0x200003d4 // 62b0 + 6244: 68c8 and r3, r2 + 6246: 4344 lsli r2, r3, 4 + 6248: 3070 movi r0, 112 + 624a: 8162 ld.b r3, (r1, 0x2) + 624c: 68c1 andn r3, r0 + 624e: 6cc8 or r3, r2 + rf_info.model_flag = 0x01; + 6250: 1057 lrw r2, 0x200005a0 // 62ac + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6252: a162 st.b r3, (r1, 0x2) + rf_info.model_flag = 0x01; + 6254: 8261 ld.b r3, (r2, 0x1) + 6256: 3ba1 bseti r3, 1 + 6258: 07d9 br 0x620a // 620a + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 625a: 330c movi r3, 12 + 625c: 60c0 addu r3, r0 + 625e: 60d0 addu r3, r4 + 6260: 83a0 ld.b r5, (r3, 0x0) + 6262: 330d movi r3, 13 + 6264: 60c0 addu r3, r0 + 6266: 60d0 addu r3, r4 + 6268: 8340 ld.b r2, (r3, 0x0) + 626a: 330e movi r3, 14 + 626c: 60c0 addu r3, r0 + 626e: 6c43 mov r1, r0 + 6270: 60d0 addu r3, r4 + 6272: 8360 ld.b r3, (r3, 0x0) + 6274: 4250 lsli r2, r2, 16 + 6276: 210e addi r1, 15 + 6278: 4518 lsli r0, r5, 24 + 627a: 6008 addu r0, r2 + 627c: 4368 lsli r3, r3, 8 + 627e: 6050 addu r1, r4 + 6280: 600c addu r0, r3 + 6282: 8120 ld.b r1, (r1, 0x0) + if((temp>=50) && (temp<=350)) + 6284: 3200 movi r2, 0 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 6286: 6004 addu r0, r1 + if((temp>=50) && (temp<=350)) + 6288: 2a31 subi r2, 50 + 628a: 3396 movi r3, 150 + 628c: 6080 addu r2, r0 + 628e: 4361 lsli r3, r3, 1 + 6290: 648c cmphs r3, r2 + 6292: 0f97 bf 0x61c0 // 61c0 + TempCtrl.TemState_Now.set_t = temp / 10; + 6294: 310a movi r1, 10 + 6296: e3ffeae7 bsr 0x3864 // 3864 <__udivsi3> + 629a: 1066 lrw r3, 0x200003d4 // 62b0 + rf_info.setc_flag = 0x01; + 629c: 1044 lrw r2, 0x200005a0 // 62ac + TempCtrl.TemState_Now.set_t = temp / 10; + 629e: a301 st.b r0, (r3, 0x1) + rf_info.setc_flag = 0x01; + 62a0: 8261 ld.b r3, (r2, 0x1) + 62a2: 3ba2 bseti r3, 2 + 62a4: 07b3 br 0x620a // 620a + 62a6: 0000 bkpt + 62a8: 20000510 .long 0x20000510 + 62ac: 200005a0 .long 0x200005a0 + 62b0: 200003d4 .long 0x200003d4 + +Disassembly of section .text.zigbee_uart_service: + +000062b4 : +* @brief uart receive data handle, call this function at mian loop +* @param[in] {void} +* @return void +*/ +void zigbee_uart_service(void) +{ + 62b4: 14d4 push r4-r7, r15 + unsigned short rx_value_len = 0; + unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD; + + + + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 62b6: 11d0 lrw r6, 0x200000d8 // 6374 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 62b8: 11b0 lrw r5, 0x20000510 // 6378 + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 62ba: 8e81 ld.h r4, (r6, 0x2) + 62bc: 3388 movi r3, 136 + 62be: 650c cmphs r3, r4 + 62c0: 0c07 bf 0x62ce // 62ce + 62c2: e3fffe5f bsr 0x5f80 // 5f80 + 62c6: 3840 cmpnei r0, 0 + 62c8: 081c bt 0x6300 // 6300 + } + + if(rx_in < PROTOCOL_HEAD){ + 62ca: 3c08 cmphsi r4, 9 + 62cc: 0c19 bf 0x62fe // 62fe + 62ce: 3400 movi r4, 0 + while((rx_in - offset) >= PROTOCOL_HEAD){ + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + + + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 62d0: 11ea lrw r7, 0x20000510 // 6378 + while((rx_in - offset) >= PROTOCOL_HEAD){ + 62d2: 8e61 ld.h r3, (r6, 0x2) + 62d4: 60d2 subu r3, r4 + 62d6: 3b28 cmplti r3, 9 + 62d8: 0c1b bf 0x630e // 630e + } + + data_handle(offset); + offset += rx_value_len; + } + rx_in -= offset; + 62da: 74cd zexth r3, r3 + + if(rx_in > 0){ + 62dc: 3b40 cmpnei r3, 0 + rx_in -= offset; + 62de: ae61 st.h r3, (r6, 0x2) + if(rx_in > 0){ + 62e0: 0c0f bf 0x62fe // 62fe + if((offset == 0) && (rx_in >= sizeof(zigbee_uart_rx_buf))){ + 62e2: 3c40 cmpnei r4, 0 + 62e4: 0807 bt 0x62f2 // 62f2 + 62e6: 3288 movi r2, 136 + 62e8: 64c8 cmphs r2, r3 + 62ea: 0804 bt 0x62f2 // 62f2 + offset++; + rx_in -= offset; + 62ec: 2b00 subi r3, 1 + 62ee: ae61 st.h r3, (r6, 0x2) + offset++; + 62f0: 3401 movi r4, 1 + } + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + 62f2: 1122 lrw r1, 0x20000510 // 6378 + 62f4: 8e41 ld.h r2, (r6, 0x2) + 62f6: 6050 addu r1, r4 + 62f8: 1100 lrw r0, 0x20000510 // 6378 + 62fa: e3ffdb79 bsr 0x19ec // 19ec <__memcpy_fast> + } +} + 62fe: 1494 pop r4-r7, r15 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 6300: 5c62 addi r3, r4, 1 + 6302: ae61 st.h r3, (r6, 0x2) + 6304: 6114 addu r4, r5 + 6306: e3fffe23 bsr 0x5f4c // 5f4c + 630a: a400 st.b r0, (r4, 0x0) + 630c: 07d7 br 0x62ba // 62ba + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 630e: 5f10 addu r0, r7, r4 + 6310: 3255 movi r2, 85 + 6312: 8020 ld.b r1, (r0, 0x0) + 6314: 6486 cmpne r1, r2 + 6316: 5c42 addi r2, r4, 1 + 6318: 0c03 bf 0x631e // 631e + offset += 2; + 631a: 7509 zexth r4, r2 + continue; + 631c: 07db br 0x62d2 // 62d2 + if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){ + 631e: 5f28 addu r1, r7, r2 + 6320: 81a0 ld.b r5, (r1, 0x0) + 6322: 31aa movi r1, 170 + 6324: 6456 cmpne r5, r1 + 6326: 0bfa bt 0x631a // 631a + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + 6328: 5c46 addi r2, r4, 2 + 632a: 5f28 addu r1, r7, r2 + 632c: 8120 ld.b r1, (r1, 0x0) + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + 632e: 3942 cmpnei r1, 2 + 6330: 0bf5 bt 0x631a // 631a + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 6332: 5c56 addi r2, r4, 6 + 6334: 609c addu r2, r7 + 6336: 82a0 ld.b r5, (r2, 0x0) + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 6338: 5c5a addi r2, r4, 7 + 633a: 609c addu r2, r7 + 633c: 8240 ld.b r2, (r2, 0x0) + 633e: 2208 addi r2, 9 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 6340: 45a8 lsli r5, r5, 8 + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 6342: 6148 addu r5, r2 + 6344: 7555 zexth r5, r5 + if(rx_value_len > sizeof(zigbee_uart_rx_buf)){ + 6346: 3289 movi r2, 137 + 6348: 6548 cmphs r2, r5 + 634a: 0804 bt 0x6352 // 6352 + offset += 3; + 634c: 2402 addi r4, 3 + 634e: 7511 zexth r4, r4 + continue; + 6350: 07c1 br 0x62d2 // 62d2 + if((rx_in - offset) < rx_value_len){ + 6352: 654d cmplt r3, r5 + 6354: 0bc3 bt 0x62da // 62da + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + 6356: 5d23 subi r1, r5, 1 + 6358: 7445 zexth r1, r1 + 635a: 6150 addu r5, r4 + 635c: e3fffdca bsr 0x5ef0 // 5ef0 + 6360: 5d63 subi r3, r5, 1 + 6362: 60dc addu r3, r7 + 6364: 8360 ld.b r3, (r3, 0x0) + 6366: 64c2 cmpne r0, r3 + 6368: 0bf2 bt 0x634c // 634c + data_handle(offset); + 636a: 6c13 mov r0, r4 + 636c: e3ffff10 bsr 0x618c // 618c + offset += rx_value_len; + 6370: 7515 zexth r4, r5 + 6372: 07b0 br 0x62d2 // 62d2 + 6374: 200000d8 .long 0x200000d8 + 6378: 20000510 .long 0x20000510 + +Disassembly of section .text.TemFun_Report_Task: + +0000637c : + + + +void TemFun_Report_Task(void) +{ + 637c: 14d1 push r4, r15 + 637e: 1421 subi r14, r14, 4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 6380: 1151 lrw r2, 0x200005a0 // 6444 + 6382: 8200 ld.b r0, (r2, 0x0) + 6384: 3841 cmpnei r0, 1 + 6386: 0831 bt 0x63e8 // 63e8 + { + if(rf_info.switc_flag == 0x01) //开关 + 6388: 8261 ld.b r3, (r2, 0x1) + 638a: 744c zextb r1, r3 + 638c: 3401 movi r4, 1 + 638e: 6904 and r4, r1 + 6390: 3c40 cmpnei r4, 0 + 6392: 0c0c bf 0x63aa // 63aa + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report onoff"); + rf_info.switc_flag = 0x00; + 6394: 3b80 bclri r3, 0 + 6396: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,PASSIVE); + 6398: 3202 movi r2, 2 + 639a: 116c lrw r3, 0x200003d4 // 6448 + 639c: 8362 ld.b r3, (r3, 0x2) + 639e: 4b67 lsri r3, r3, 7 + 63a0: b840 st.w r2, (r14, 0x0) + 63a2: 3101 movi r1, 1 + 63a4: 3201 movi r2, 1 + } + else if(rf_info.valve_flag == 0x01) //阀门状态 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + rf_info.valve_flag = 0x00; + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 63a6: 3005 movi r0, 5 + 63a8: 041e br 0x63e4 // 63e4 + else if(rf_info.model_flag == 0x01) //模式 + 63aa: 3402 movi r4, 2 + 63ac: 6904 and r4, r1 + 63ae: 3c40 cmpnei r4, 0 + 63b0: 0c0c bf 0x63c8 // 63c8 + rf_info.model_flag = 0x00; + 63b2: 3b81 bclri r3, 1 + 63b4: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,PASSIVE); + 63b6: 3202 movi r2, 2 + 63b8: 1164 lrw r3, 0x200003d4 // 6448 + 63ba: 8362 ld.b r3, (r3, 0x2) + 63bc: 4379 lsli r3, r3, 25 + 63be: b840 st.w r2, (r14, 0x0) + 63c0: 4b7d lsri r3, r3, 29 + 63c2: 3204 movi r2, 4 + 63c4: 3102 movi r1, 2 + 63c6: 07f0 br 0x63a6 // 63a6 + else if(rf_info.setc_flag == 0x01) //设置温度 + 63c8: 3404 movi r4, 4 + 63ca: 6904 and r4, r1 + 63cc: 3c40 cmpnei r4, 0 + 63ce: 0c0f bf 0x63ec // 63ec + rf_info.setc_flag = 0x00; + 63d0: 3b82 bclri r3, 2 + 63d2: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),PASSIVE); + 63d4: 320a movi r2, 10 + 63d6: 107d lrw r3, 0x200003d4 // 6448 + 63d8: 8361 ld.b r3, (r3, 0x1) + 63da: 7cc8 mult r3, r2 + 63dc: 3202 movi r2, 2 + 63de: b840 st.w r2, (r14, 0x0) + 63e0: 3110 movi r1, 16 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 63e2: 3008 movi r0, 8 + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 63e4: e3fffe7c bsr 0x60dc // 60dc + } + } + 63e8: 1401 addi r14, r14, 4 + 63ea: 1491 pop r4, r15 + else if(rf_info.fan_flag == 0x01) //风速 + 63ec: 3410 movi r4, 16 + 63ee: 6904 and r4, r1 + 63f0: 3c40 cmpnei r4, 0 + 63f2: 0c0c bf 0x640a // 640a + rf_info.fan_flag = 0x00; + 63f4: 3b84 bclri r3, 4 + 63f6: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,PASSIVE); + 63f8: 3202 movi r2, 2 + 63fa: 1074 lrw r3, 0x200003d4 // 6448 + 63fc: 8362 ld.b r3, (r3, 0x2) + 63fe: 437c lsli r3, r3, 28 + 6400: b840 st.w r2, (r14, 0x0) + 6402: 4b7d lsri r3, r3, 29 + 6404: 3204 movi r2, 4 + 6406: 3140 movi r1, 64 + 6408: 07cf br 0x63a6 // 63a6 + else if(rf_info.roomc_flag == 0x01) //室内温度 + 640a: 3420 movi r4, 32 + 640c: 6904 and r4, r1 + 640e: 3c40 cmpnei r4, 0 + 6410: 0c0c bf 0x6428 // 6428 + rf_info.roomc_flag = 0x00; + 6412: 3b85 bclri r3, 5 + 6414: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 6416: 104d lrw r2, 0x200003d4 // 6448 + 6418: 8269 ld.b r3, (r2, 0x9) + 641a: 8228 ld.b r1, (r2, 0x8) + 641c: 4368 lsli r3, r3, 8 + 641e: 6cc4 or r3, r1 + 6420: b800 st.w r0, (r14, 0x0) + 6422: 3202 movi r2, 2 + 6424: 3118 movi r1, 24 + 6426: 07de br 0x63e2 // 63e2 + else if(rf_info.valve_flag == 0x01) //阀门状态 + 6428: 7446 sextb r1, r1 + 642a: 39df btsti r1, 31 + 642c: 0fde bf 0x63e8 // 63e8 + rf_info.valve_flag = 0x00; + 642e: 317f movi r1, 127 + 6430: 68c4 and r3, r1 + 6432: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 6434: 3124 movi r1, 36 + 6436: 1065 lrw r3, 0x200003d4 // 6448 + 6438: 8362 ld.b r3, (r3, 0x2) + 643a: 437f lsli r3, r3, 31 + 643c: 4b7f lsri r3, r3, 31 + 643e: b800 st.w r0, (r14, 0x0) + 6440: 3204 movi r2, 4 + 6442: 07b2 br 0x63a6 // 63a6 + 6444: 200005a0 .long 0x200005a0 + 6448: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Relay_Init: + +0000644c : +#include "includes.h" + + +void Relay_Init(void) +{ + 644c: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,RLY1_HOT_PIN,Output); + 644e: 10b9 lrw r5, 0x2000004c // 64b0 + 6450: 3200 movi r2, 0 + 6452: 9500 ld.w r0, (r5, 0x0) + 6454: 310e movi r1, 14 + 6456: e3ffdc99 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 645a: 1097 lrw r4, 0x20000048 // 64b4 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + 645c: 3200 movi r2, 0 + 645e: 9500 ld.w r0, (r5, 0x0) + 6460: 310f movi r1, 15 + 6462: e3ffdc93 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 6466: 9400 ld.w r0, (r4, 0x0) + 6468: 3200 movi r2, 0 + 646a: 3101 movi r1, 1 + 646c: e3ffdc8e bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY4_MID_PIN,Output); + 6470: 9400 ld.w r0, (r4, 0x0) + 6472: 3200 movi r2, 0 + 6474: 3102 movi r1, 2 + 6476: e3ffdc89 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY5_LOW_PIN,Output); + 647a: 3200 movi r2, 0 + 647c: 9400 ld.w r0, (r4, 0x0) + 647e: 3103 movi r1, 3 + 6480: e3ffdc84 bsr 0x1d88 // 1d88 + + RLY1_HOT_CLOSE; + 6484: 9500 ld.w r0, (r5, 0x0) + 6486: 310e movi r1, 14 + 6488: e3ffdd0c bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 648c: 9500 ld.w r0, (r5, 0x0) + 648e: 310f movi r1, 15 + 6490: e3ffdd08 bsr 0x1ea0 // 1ea0 + RLY3_HIGH_CLOSE; + 6494: 9400 ld.w r0, (r4, 0x0) + 6496: 3101 movi r1, 1 + 6498: e3ffdd04 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 649c: 9400 ld.w r0, (r4, 0x0) + 649e: 3102 movi r1, 2 + 64a0: e3ffdd00 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 64a4: 9400 ld.w r0, (r4, 0x0) + 64a6: 3103 movi r1, 3 + 64a8: e3ffdcfc bsr 0x1ea0 // 1ea0 + +} + 64ac: 1492 pop r4-r5, r15 + 64ae: 0000 bkpt + 64b0: 2000004c .long 0x2000004c + 64b4: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_High: + +000064b8 : + + +void Relay_High(void) +{ + 64b8: 14d1 push r4, r15 + RLY3_HIGH_OPEN; + 64ba: 1088 lrw r4, 0x20000048 // 64d8 + 64bc: 3101 movi r1, 1 + 64be: 9400 ld.w r0, (r4, 0x0) + 64c0: e3ffdcec bsr 0x1e98 // 1e98 + RLY4_MID_CLOSE; + 64c4: 9400 ld.w r0, (r4, 0x0) + 64c6: 3102 movi r1, 2 + 64c8: e3ffdcec bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 64cc: 9400 ld.w r0, (r4, 0x0) + 64ce: 3103 movi r1, 3 + 64d0: e3ffdce8 bsr 0x1ea0 // 1ea0 +} + 64d4: 1491 pop r4, r15 + 64d6: 0000 bkpt + 64d8: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Mid: + +000064dc : + + +void Relay_Mid(void) +{ + 64dc: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 64de: 1088 lrw r4, 0x20000048 // 64fc + 64e0: 3101 movi r1, 1 + 64e2: 9400 ld.w r0, (r4, 0x0) + 64e4: e3ffdcde bsr 0x1ea0 // 1ea0 + RLY4_MID_OPEN; + 64e8: 9400 ld.w r0, (r4, 0x0) + 64ea: 3102 movi r1, 2 + 64ec: e3ffdcd6 bsr 0x1e98 // 1e98 + RLY5_LOW_CLOSE; + 64f0: 9400 ld.w r0, (r4, 0x0) + 64f2: 3103 movi r1, 3 + 64f4: e3ffdcd6 bsr 0x1ea0 // 1ea0 +} + 64f8: 1491 pop r4, r15 + 64fa: 0000 bkpt + 64fc: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Low: + +00006500 : + + + +void Relay_Low(void) +{ + 6500: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 6502: 1088 lrw r4, 0x20000048 // 6520 + 6504: 3101 movi r1, 1 + 6506: 9400 ld.w r0, (r4, 0x0) + 6508: e3ffdccc bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 650c: 9400 ld.w r0, (r4, 0x0) + 650e: 3102 movi r1, 2 + 6510: e3ffdcc8 bsr 0x1ea0 // 1ea0 + RLY5_LOW_OPEN; + 6514: 9400 ld.w r0, (r4, 0x0) + 6516: 3103 movi r1, 3 + 6518: e3ffdcc0 bsr 0x1e98 // 1e98 +} + 651c: 1491 pop r4, r15 + 651e: 0000 bkpt + 6520: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Stop: + +00006524 : + +void Relay_Stop(void) +{ + 6524: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 6526: 1088 lrw r4, 0x20000048 // 6544 + 6528: 3101 movi r1, 1 + 652a: 9400 ld.w r0, (r4, 0x0) + 652c: e3ffdcba bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 6530: 9400 ld.w r0, (r4, 0x0) + 6532: 3102 movi r1, 2 + 6534: e3ffdcb6 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 6538: 9400 ld.w r0, (r4, 0x0) + 653a: 3103 movi r1, 3 + 653c: e3ffdcb2 bsr 0x1ea0 // 1ea0 +} + 6540: 1491 pop r4, r15 + 6542: 0000 bkpt + 6544: 20000048 .long 0x20000048 + +Disassembly of section .text.NetCRC16: + +00006548 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 6548: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 654a: 3902 cmphsi r1, 3 + 654c: 0c1f bf 0x658a // 658a + U16_T alen = len-2; //CRC16??????? + 654e: 2901 subi r1, 2 + 6550: 7445 zexth r1, r1 + 6552: 6d43 mov r5, r0 + 6554: 3200 movi r2, 0 + 6556: 106e lrw r3, 0xffff // 658c + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 6560: 6d8f mov r6, r3 + 6562: 699c and r6, r7 + 6564: 3e40 cmpnei r6, 0 + 6566: 4b61 lsri r3, r3, 1 + 6568: 0c04 bf 0x6570 // 6570 + 656a: 10ca lrw r6, 0xffffa001 // 6590 + 656c: 6cd9 xor r3, r6 + 656e: 74cd zexth r3, r3 + 6570: 2c00 subi r4, 1 + 6572: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 6574: 3c40 cmpnei r4, 0 + 6576: 0bf5 bt 0x6560 // 6560 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 6582: 6040 addu r1, r0 + 6584: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 6586: 4b68 lsri r3, r3, 8 + 6588: a161 st.b r3, (r1, 0x1) +} + 658a: 1484 pop r4-r7 + 658c: 0000ffff .long 0x0000ffff + 6590: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00006594 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 6594: 14c3 push r4-r6 + 6596: 6cc3 mov r3, r0 + 6598: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 659a: 10ac lrw r5, 0xffffa001 // 65c8 + xda = 0xFFFF ; + 659c: 100c lrw r0, 0xffff // 65cc + for (i = 0; i < len; i++) + 659e: 644e cmpne r3, r1 + 65a0: 0802 bt 0x65a4 // 65a4 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 65a2: 1483 pop r4-r6 + xda ^= aStr[i] ; + 65a4: 8340 ld.b r2, (r3, 0x0) + 65a6: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 65a8: 3601 movi r6, 1 + xda ^= aStr[i] ; + 65aa: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 65ac: 6d03 mov r4, r0 + 65ae: 6918 and r4, r6 + 65b0: 3c40 cmpnei r4, 0 + 65b2: 4801 lsri r0, r0, 1 + 65b4: 0c03 bf 0x65ba // 65ba + 65b6: 6c15 xor r0, r5 + 65b8: 7401 zexth r0, r0 + 65ba: 2a00 subi r2, 1 + 65bc: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 65be: 3a40 cmpnei r2, 0 + 65c0: 0bf6 bt 0x65ac // 65ac + 65c2: 2300 addi r3, 1 + 65c4: 07ed br 0x659e // 659e + 65c6: 0000 bkpt + 65c8: ffffa001 .long 0xffffa001 + 65cc: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +000065d0 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 65d0: 6cc3 mov r3, r0 + 65d2: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 65d4: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 65d6: 644e cmpne r3, r1 + 65d8: 0802 bt 0x65dc // 65dc + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 65da: 783c jmp r15 + sor_data = sor_data+Data[i]; + 65dc: 8340 ld.b r2, (r3, 0x0) + 65de: 6008 addu r0, r2 + 65e0: 7400 zextb r0, r0 + 65e2: 2300 addi r3, 1 + 65e4: 07f9 br 0x65d6 // 65d6 + +Disassembly of section .text.Rs485AskCycleSend: + +000065e8 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 65e8: 14d0 push r15 + 65ea: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 65ec: 3355 movi r3, 85 + 65ee: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 65f2: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 65f6: 3300 movi r3, 0 + 65f8: 2b11 subi r3, 18 + 65fa: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 65fe: 3315 movi r3, 21 + 6600: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 6604: 3303 movi r3, 3 + 6606: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 660a: 1171 lrw r3, 0x20000350 // 66cc + 660c: 8360 ld.b r3, (r3, 0x0) + 660e: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 6612: 3300 movi r3, 0 + 6614: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 6618: 116e lrw r3, 0x200003d4 // 66d0 + 661a: 8342 ld.b r2, (r3, 0x2) + 661c: 4a27 lsri r1, r2, 7 + 661e: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 6622: 3100 movi r1, 0 + 6624: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 6628: 3170 movi r1, 112 + 662a: 6884 and r2, r1 + 662c: 3a40 cmpnei r2, 0 + 662e: 0841 bt 0x66b0 // 66b0 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 6630: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 6632: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 6636: 8341 ld.b r2, (r3, 0x1) + 6638: 3a40 cmpnei r2, 0 + 663a: 0802 bt 0x663e // 663e + 663c: 3220 movi r2, 32 + 663e: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 6642: 3200 movi r2, 0 + 6644: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 6648: 8342 ld.b r2, (r3, 0x2) + 664a: 425c lsli r2, r2, 28 + 664c: 4a5d lsri r2, r2, 29 + 664e: 3104 movi r1, 4 + 6650: 604a subu r1, r2 + 6652: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 6654: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 6656: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 665a: 0c35 bf 0x66c4 // 66c4 + 665c: 3a03 cmphsi r2, 4 + 665e: 0803 bt 0x6664 // 6664 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动 + 6660: dc2e000d st.b r1, (r14, 0xd) + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 6664: 3200 movi r2, 0 + 6666: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 666a: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 666e: 8342 ld.b r2, (r3, 0x2) + 6670: 425f lsli r2, r2, 31 + 6672: 4a5f lsri r2, r2, 31 + 6674: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6676: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 6678: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 667c: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 667e: 3200 movi r2, 0 + 6680: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 6684: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 6688: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 668c: 0802 bt 0x6690 // 6690 + 668e: 3320 movi r3, 32 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6690: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6692: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6696: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 6698: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 669a: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 669c: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66a0: e3ffff54 bsr 0x6548 // 6548 + + MCU485_SendData(SendData, 24); + 66a4: 3118 movi r1, 24 + 66a6: 6c3b mov r0, r14 + 66a8: e3ffea0e bsr 0x3ac4 // 3ac4 + +} + 66ac: 1406 addi r14, r14, 24 + 66ae: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 66b0: 3120 movi r1, 32 + 66b2: 644a cmpne r2, r1 + 66b4: 0803 bt 0x66ba // 66ba + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 66b6: 3202 movi r2, 2 + 66b8: 07bd br 0x6632 // 6632 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 66ba: 3140 movi r1, 64 + 66bc: 644a cmpne r2, r1 + 66be: 0bbc bt 0x6636 // 6636 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 66c0: 3203 movi r2, 3 + 66c2: 07b8 br 0x6632 // 6632 + SendData[13] = 0x00; // + 66c4: 3200 movi r2, 0 + 66c6: dc4e000d st.b r2, (r14, 0xd) + break; + 66ca: 07cd br 0x6664 // 6664 + 66cc: 20000350 .long 0x20000350 + 66d0: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Rs485AskCtrlSend: + +000066d4 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 66d4: 14d0 push r15 + 66d6: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 66d8: 3355 movi r3, 85 + 66da: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 66de: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 66e2: 3300 movi r3, 0 + 66e4: 2b11 subi r3, 18 + 66e6: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 66ea: 3307 movi r3, 7 + 66ec: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 66f0: 3303 movi r3, 3 + 66f2: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66f6: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 66f8: 106a lrw r3, 0x20000350 // 6720 + 66fa: 8360 ld.b r3, (r3, 0x0) + 66fc: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 6700: 8066 ld.b r3, (r0, 0x6) + 6702: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 6706: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6708: 3003 movi r0, 3 + 670a: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 670c: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6710: e3ffff1c bsr 0x6548 // 6548 + + MCU485_SendData(SendData, 10); + 6714: 310a movi r1, 10 + 6716: 6c3b mov r0, r14 + 6718: e3ffe9d6 bsr 0x3ac4 // 3ac4 + +} + 671c: 1403 addi r14, r14, 12 + 671e: 1490 pop r15 + 6720: 20000350 .long 0x20000350 + +Disassembly of section .text.Rs485AskReadSend: + +00006724 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 6724: 14d0 push r15 + 6726: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 6728: 3355 movi r3, 85 + 672a: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 672e: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 6732: 3300 movi r3, 0 + 6734: 2b11 subi r3, 18 + 6736: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x08; //长度 + 673a: 3308 movi r3, 8 + 673c: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 6740: 3303 movi r3, 3 + 6742: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6746: 3108 movi r1, 8 + SendData[5] = g_eeprom.dev_addr; + 6748: 106b lrw r3, 0x20000350 // 6774 + 674a: 8360 ld.b r3, (r3, 0x0) + 674c: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6]; + 6750: 8066 ld.b r3, (r0, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6752: 3003 movi r0, 3 + SendData[6] = Recdata[6]; + 6754: dc6e0006 st.b r3, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6758: 6038 addu r0, r14 + SendData[7] = Project_FW_Version; + 675a: 3301 movi r3, 1 + 675c: dc6e0007 st.b r3, (r14, 0x7) + SendData[8] = Project_HW_Version; + 6760: dc6e0008 st.b r3, (r14, 0x8) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6764: e3fffef2 bsr 0x6548 // 6548 + + MCU485_SendData(SendData, 11); + 6768: 310b movi r1, 11 + 676a: 6c3b mov r0, r14 + 676c: e3ffe9ac bsr 0x3ac4 // 3ac4 + +} + 6770: 1403 addi r14, r14, 12 + 6772: 1490 pop r15 + 6774: 20000350 .long 0x20000350 + +Disassembly of section .text.Temp_Rec_Analysis: + +00006778 : + + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 6778: 14d2 push r4-r5, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 677a: 3300 movi r3, 0 + 677c: 2b08 subi r3, 9 + 677e: 60c4 addu r3, r1 + 6780: 74cd zexth r3, r3 + 6782: 3b01 cmphsi r3, 2 +{ + 6784: 6d03 mov r4, r0 + if(((0x09 != Len) && (0x0A != Len)) + 6786: 08a5 bt 0x68d0 // 68d0 + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 6788: 8060 ld.b r3, (r0, 0x0) + 678a: 3255 movi r2, 85 + 678c: 648e cmpne r3, r2 + 678e: 08a1 bt 0x68d0 // 68d0 + 6790: 8041 ld.b r2, (r0, 0x1) + 6792: 64ca cmpne r2, r3 + 6794: 089e bt 0x68d0 // 68d0 + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 6796: 8042 ld.b r2, (r0, 0x2) + 6798: 33ee movi r3, 238 + 679a: 64ca cmpne r2, r3 + 679c: 089a bt 0x68d0 // 68d0 + 679e: 8063 ld.b r3, (r0, 0x3) + 67a0: 5baa addi r5, r3, 3 + 67a2: 6456 cmpne r5, r1 + 67a4: 0896 bt 0x68d0 // 68d0 + || (Tem_Type != RecData[4]) + 67a6: 8044 ld.b r2, (r0, 0x4) + 67a8: 3a43 cmpnei r2, 3 + 67aa: 0893 bt 0x68d0 // 68d0 + || (g_eeprom.dev_addr != RecData[5]) + 67ac: 124a lrw r2, 0x20000350 // 68d4 + 67ae: 8220 ld.b r1, (r2, 0x0) + 67b0: 8045 ld.b r2, (r0, 0x5) + 67b2: 6486 cmpne r1, r2 + 67b4: 088e bt 0x68d0 // 68d0 + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 67b6: 2b01 subi r3, 2 + 67b8: 744d zexth r1, r3 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 67ba: 6150 addu r5, r4 + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 67bc: 2002 addi r0, 3 + 67be: e3fffeeb bsr 0x6594 // 6594 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 67c2: 5d63 subi r3, r5, 1 + 67c4: 8360 ld.b r3, (r3, 0x0) + 67c6: 2d01 subi r5, 2 + 67c8: 4368 lsli r3, r3, 8 + 67ca: 8540 ld.b r2, (r5, 0x0) + 67cc: 60c8 addu r3, r2 + 67ce: 64c2 cmpne r0, r3 + 67d0: 0880 bt 0x68d0 // 68d0 + { + switch(RecData[6]) + 67d2: 8466 ld.b r3, (r4, 0x6) + 67d4: 3b4a cmpnei r3, 10 + 67d6: 0c27 bf 0x6824 // 6824 + 67d8: 3b0a cmphsi r3, 11 + 67da: 080e bt 0x67f6 // 67f6 + 67dc: 2b00 subi r3, 1 + 67de: 3203 movi r2, 3 + 67e0: 64c8 cmphs r2, r3 + 67e2: 0824 bt 0x682a // 682a + TempCtrl.CardState = 0x01; + } + } + break; + } + switch(RecData[6]) + 67e4: 8406 ld.b r0, (r4, 0x6) + 67e6: 2800 subi r0, 1 + 67e8: 3803 cmphsi r0, 4 + 67ea: 082d bt 0x6844 // 6844 + 67ec: 8467 ld.b r3, (r4, 0x7) + 67ee: e3ffd287 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 67f2: 3824 .short 0x3824 + 67f4: 5c50 .short 0x5c50 + switch(RecData[6]) + 67f6: 3b50 cmpnei r3, 16 + 67f8: 0c1d bf 0x6832 // 6832 + 67fa: 3b51 cmpnei r3, 17 + 67fc: 0bf4 bt 0x67e4 // 67e4 + Rs485AskCtrlSend(RecData); + 67fe: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 6800: 11b6 lrw r5, 0x200003d4 // 68d8 + Rs485AskCtrlSend(RecData); + 6802: e3ffff69 bsr 0x66d4 // 66d4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 6806: 855a ld.b r2, (r5, 0x1a) + 6808: 1135 lrw r1, 0x7fc9 // 68dc + 680a: 3000 movi r0, 0 + 680c: e3ffe9a0 bsr 0x3b4c // 3b4c + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 6810: 8467 ld.b r3, (r4, 0x7) + 6812: 855a ld.b r2, (r5, 0x1a) + 6814: 64ca cmpne r2, r3 + 6816: 0fe7 bf 0x67e4 // 67e4 + if(TempCtrl.CardEn == 0x00) + 6818: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 681a: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 681c: 0be4 bt 0x67e4 // 67e4 + TempCtrl.CardState = 0x01; + 681e: 3301 movi r3, 1 + 6820: a578 st.b r3, (r5, 0x18) + 6822: 07e1 br 0x67e4 // 67e4 + Rs485AskCycleSend(); + 6824: e3fffee2 bsr 0x65e8 // 65e8 + 6828: 07de br 0x67e4 // 67e4 + Rs485AskCtrlSend(RecData); + 682a: 6c13 mov r0, r4 + 682c: e3ffff54 bsr 0x66d4 // 66d4 + 6830: 07da br 0x67e4 // 67e4 + Rs485AskReadSend(RecData); //版本号查询 + 6832: 6c13 mov r0, r4 + 6834: e3ffff78 bsr 0x6724 // 6724 + 6838: 07d6 br 0x67e4 // 67e4 + { + case 0x01: //开关机命令 + switch(RecData[7]) + 683a: 74cc zextb r3, r3 + 683c: 3b40 cmpnei r3, 0 + 683e: 0c05 bf 0x6848 // 6848 + 6840: 3b41 cmpnei r3, 1 + 6842: 0c09 bf 0x6854 // 6854 + break; + } + break; + } + + return ret; + 6844: 3000 movi r0, 0 + 6846: 0446 br 0x68d2 // 68d2 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6848: 1144 lrw r2, 0x200003d4 // 68d8 + 684a: 8262 ld.b r3, (r2, 0x2) + 684c: 317f movi r1, 127 + 684e: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6850: a262 st.b r3, (r2, 0x2) + 6852: 07f9 br 0x6844 // 6844 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6854: 1121 lrw r1, 0x200003d4 // 68d8 + 6856: 3200 movi r2, 0 + 6858: 8162 ld.b r3, (r1, 0x2) + 685a: 2a7f subi r2, 128 + 685c: 6cc8 or r3, r2 + 685e: a162 st.b r3, (r1, 0x2) + 6860: 07f2 br 0x6844 // 6844 + switch(RecData[7]) // + 6862: 74cc zextb r3, r3 + 6864: 3b42 cmpnei r3, 2 + 6866: 0c0a bf 0x687a // 687a + 6868: 3b43 cmpnei r3, 3 + 686a: 0c0e bf 0x6886 // 6886 + 686c: 3b41 cmpnei r3, 1 + 686e: 0beb bt 0x6844 // 6844 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6870: 105a lrw r2, 0x200003d4 // 68d8 + 6872: 8262 ld.b r3, (r2, 0x2) + 6874: 3170 movi r1, 112 + 6876: 68c5 andn r3, r1 + 6878: 07ec br 0x6850 // 6850 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 687a: 1058 lrw r2, 0x200003d4 // 68d8 + 687c: 8262 ld.b r3, (r2, 0x2) + 687e: 3170 movi r1, 112 + 6880: 68c5 andn r3, r1 + 6882: 3ba5 bseti r3, 5 + 6884: 07e6 br 0x6850 // 6850 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 6886: 1055 lrw r2, 0x200003d4 // 68d8 + 6888: 8262 ld.b r3, (r2, 0x2) + 688a: 3170 movi r1, 112 + 688c: 68c5 andn r3, r1 + 688e: 3ba6 bseti r3, 6 + 6890: 07e0 br 0x6850 // 6850 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] <= TEM_MAX_SET)) //在指定温度范围内 + 6892: 3200 movi r2, 0 + 6894: 74cc zextb r3, r3 + 6896: 2a0f subi r2, 16 + 6898: 608c addu r2, r3 + 689a: 7488 zextb r2, r2 + 689c: 3a10 cmphsi r2, 17 + 689e: 0bd3 bt 0x6844 // 6844 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 68a0: 301f movi r0, 31 + 68a2: 68c0 and r3, r0 + 68a4: 104d lrw r2, 0x200003d4 // 68d8 + 68a6: a261 st.b r3, (r2, 0x1) + 68a8: 07ce br 0x6844 // 6844 + switch(RecData[7]) //风速 + 68aa: 740c zextb r0, r3 + 68ac: 106b lrw r3, 0x200003d4 // 68d8 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68ae: 8342 ld.b r2, (r3, 0x2) + 68b0: 310e movi r1, 14 + switch(RecData[7]) //风速 + 68b2: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68b4: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 68b6: 080b bt 0x68cc // 68cc + 68b8: e3ffd222 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 68bc: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 68c0: 3aa1 bseti r2, 1 + 68c2: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68c4: a342 st.b r2, (r3, 0x2) + 68c6: 07bf br 0x6844 // 6844 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 68c8: 3aa2 bseti r2, 2 + 68ca: 07fd br 0x68c4 // 68c4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68cc: 3aa1 bseti r2, 1 + 68ce: 07fb br 0x68c4 // 68c4 + return ret = 0x01; + 68d0: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 68d2: 1492 pop r4-r5, r15 + 68d4: 20000350 .long 0x20000350 + 68d8: 200003d4 .long 0x200003d4 + 68dc: 00007fc9 .long 0x00007fc9 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000068e0 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 68e0: 14d2 push r4-r5, r15 + 68e2: 6d03 mov r4, r0 + 68e4: 6d47 mov r5, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 68e6: e3ffff49 bsr 0x6778 // 6778 + 68ea: 3840 cmpnei r0, 0 + 68ec: 0803 bt 0x68f2 // 68f2 + { + return ret = 1; + } + } + + return ret; + 68ee: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 68f0: 0409 br 0x6902 // 6902 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 68f2: 8440 ld.b r2, (r4, 0x0) + 68f4: 33ff movi r3, 255 + 68f6: 64ca cmpne r2, r3 + 68f8: 0c06 bf 0x6904 // 6904 + 68fa: 8461 ld.b r3, (r4, 0x1) + 68fc: 3b48 cmpnei r3, 8 + 68fe: 0c03 bf 0x6904 // 6904 + return ret = 1; + 6900: 3001 movi r0, 1 + 6902: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 6904: 1125 lrw r1, 0x7fd8 // 6998 + 6906: 3000 movi r0, 0 + 6908: e3ffe922 bsr 0x3b4c // 3b4c + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 690c: 3d45 cmpnei r5, 5 + 690e: 0814 bt 0x6936 // 6936 + 6910: 3104 movi r1, 4 + 6912: 6c13 mov r0, r4 + 6914: e3fffe5e bsr 0x65d0 // 65d0 + 6918: 8464 ld.b r3, (r4, 0x4) + 691a: 640e cmpne r3, r0 + 691c: 0bf2 bt 0x6900 // 6900 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 691e: 1160 lrw r3, 0x200003d4 // 699c + 6920: 8442 ld.b r2, (r4, 0x2) + 6922: 8338 ld.b r1, (r3, 0x18) + 6924: 6486 cmpne r1, r2 + 6926: 0fe4 bf 0x68ee // 68ee + 6928: 833a ld.b r1, (r3, 0x1a) + 692a: 3941 cmpnei r1, 1 + 692c: 0be1 bt 0x68ee // 68ee + TempCtrl.CardState = RecData[2]; + 692e: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 6930: 3201 movi r2, 1 + 6932: a359 st.b r2, (r3, 0x19) + 6934: 07dd br 0x68ee // 68ee + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 6936: 3d09 cmphsi r5, 10 + 6938: 0fe4 bf 0x6900 // 6900 + 693a: 5d27 subi r1, r5, 2 + 693c: 7445 zexth r1, r1 + 693e: 6150 addu r5, r4 + 6940: 6c13 mov r0, r4 + 6942: e3fffe29 bsr 0x6594 // 6594 + 6946: 5d63 subi r3, r5, 1 + 6948: 8360 ld.b r3, (r3, 0x0) + 694a: 2d01 subi r5, 2 + 694c: 4368 lsli r3, r3, 8 + 694e: 8540 ld.b r2, (r5, 0x0) + 6950: 60c8 addu r3, r2 + 6952: 64c2 cmpne r0, r3 + 6954: 0bd6 bt 0x6900 // 6900 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 6956: 1072 lrw r3, 0x200003d4 // 699c + 6958: 8443 ld.b r2, (r4, 0x3) + 695a: 8338 ld.b r1, (r3, 0x18) + 695c: 6486 cmpne r1, r2 + 695e: 0c07 bf 0x696c // 696c + 6960: 833a ld.b r1, (r3, 0x1a) + 6962: 3941 cmpnei r1, 1 + 6964: 0804 bt 0x696c // 696c + TempCtrl.CardState = RecData[3]; + 6966: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 6968: 3201 movi r2, 1 + 696a: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 696c: 8447 ld.b r2, (r4, 0x7) + 696e: 833b ld.b r1, (r3, 0x1b) + 6970: 6486 cmpne r1, r2 + 6972: 0c0d bf 0x698c // 698c + TempCtrl.SceneNo = RecData[7]; + 6974: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 6976: 104b lrw r2, 0x200000b8 // 69a0 + 6978: 9240 ld.w r2, (r2, 0x0) + 697a: 4a28 lsri r1, r2, 8 + 697c: a354 st.b r2, (r3, 0x14) + 697e: a335 st.b r1, (r3, 0x15) + 6980: 4a30 lsri r1, r2, 16 + 6982: 4a58 lsri r2, r2, 24 + 6984: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 6986: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 6988: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 698a: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 698c: 835b ld.b r2, (r3, 0x1b) + 698e: 1026 lrw r1, 0x7fea // 69a4 + 6990: 3000 movi r0, 0 + 6992: e3ffe8dd bsr 0x3b4c // 3b4c + 6996: 07ac br 0x68ee // 68ee + 6998: 00007fd8 .long 0x00007fd8 + 699c: 200003d4 .long 0x200003d4 + 69a0: 200000b8 .long 0x200000b8 + 69a4: 00007fea .long 0x00007fea + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +000069a8 : + 69a8: 1063 lrw r3, 0x20000058 // 69b4 + 69aa: 9340 ld.w r2, (r3, 0x0) + 69ac: 926b ld.w r3, (r2, 0x2c) + 69ae: 6c0c or r0, r3 + 69b0: b20b st.w r0, (r2, 0x2c) + 69b2: 783c jmp r15 + 69b4: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +000069b8 : + 69b8: 14c1 push r4 + 69ba: 1069 lrw r3, 0x20000058 // 69dc + 69bc: 3840 cmpnei r0, 0 + 69be: 9380 ld.w r4, (r3, 0x0) + 69c0: 9400 ld.w r0, (r4, 0x0) + 69c2: 0c0b bf 0x69d8 // 69d8 + 69c4: 38a0 bseti r0, 0 + 69c6: b400 st.w r0, (r4, 0x0) + 69c8: 9360 ld.w r3, (r3, 0x0) + 69ca: 4248 lsli r2, r2, 8 + 69cc: 4122 lsli r1, r1, 2 + 69ce: 9300 ld.w r0, (r3, 0x0) + 69d0: 6c48 or r1, r2 + 69d2: 6c40 or r1, r0 + 69d4: b320 st.w r1, (r3, 0x0) + 69d6: 1481 pop r4 + 69d8: 3880 bclri r0, 0 + 69da: 07f6 br 0x69c6 // 69c6 + 69dc: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +000069e0 : + 69e0: 14c4 push r4-r7 + 69e2: 1429 subi r14, r14, 36 + 69e4: b840 st.w r2, (r14, 0x0) + 69e6: 984d ld.w r2, (r14, 0x34) + 69e8: b841 st.w r2, (r14, 0x4) + 69ea: 984e ld.w r2, (r14, 0x38) + 69ec: b842 st.w r2, (r14, 0x8) + 69ee: 984f ld.w r2, (r14, 0x3c) + 69f0: b843 st.w r2, (r14, 0xc) + 69f2: 9850 ld.w r2, (r14, 0x40) + 69f4: 9895 ld.w r4, (r14, 0x54) + 69f6: b844 st.w r2, (r14, 0x10) + 69f8: 9853 ld.w r2, (r14, 0x4c) + 69fa: b845 st.w r2, (r14, 0x14) + 69fc: b887 st.w r4, (r14, 0x1c) + 69fe: 9854 ld.w r2, (r14, 0x50) + 6a00: 1c11 addi r4, r14, 68 + 6a02: b846 st.w r2, (r14, 0x18) + 6a04: 8c80 ld.h r4, (r4, 0x0) + 6a06: 1a15 addi r2, r14, 84 + 6a08: 1d12 addi r5, r14, 72 + 6a0a: 8244 ld.b r2, (r2, 0x4) + 6a0c: 3c40 cmpnei r4, 0 + 6a0e: 8dc0 ld.h r6, (r5, 0x0) + 6a10: b848 st.w r2, (r14, 0x20) + 6a12: 0813 bt 0x6a38 // 6a38 + 6a14: 105f lrw r2, 0x2000004c // 6a90 + 6a16: 35f0 movi r5, 240 + 6a18: 92e0 ld.w r7, (r2, 0x0) + 6a1a: 9740 ld.w r2, (r7, 0x0) + 6a1c: 45a4 lsli r5, r5, 4 + 6a1e: 6895 andn r2, r5 + 6a20: 3aab bseti r2, 11 + 6a22: b740 st.w r2, (r7, 0x0) + 6a24: 3502 movi r5, 2 + 6a26: 105c lrw r2, 0x20000050 // 6a94 + 6a28: 3e41 cmpnei r6, 1 + 6a2a: 9240 ld.w r2, (r2, 0x0) + 6a2c: b2a0 st.w r5, (r2, 0x0) + 6a2e: 0828 bt 0x6a7e // 6a7e + 6a30: 92a4 ld.w r5, (r2, 0x10) + 6a32: 3db8 bseti r5, 24 + 6a34: 3db9 bseti r5, 25 + 6a36: b2a4 st.w r5, (r2, 0x10) + 6a38: 1058 lrw r2, 0x20000058 // 6a98 + 6a3a: 448d lsli r4, r4, 13 + 6a3c: 92a0 ld.w r5, (r2, 0x0) + 6a3e: 9541 ld.w r2, (r5, 0x4) + 6a40: 3200 movi r2, 0 + 6a42: b541 st.w r2, (r5, 0x4) + 6a44: 9541 ld.w r2, (r5, 0x4) + 6a46: 98c7 ld.w r6, (r14, 0x1c) + 6a48: 6c98 or r2, r6 + 6a4a: 98c6 ld.w r6, (r14, 0x18) + 6a4c: 6c98 or r2, r6 + 6a4e: 98c5 ld.w r6, (r14, 0x14) + 6a50: 6c98 or r2, r6 + 6a52: 98c8 ld.w r6, (r14, 0x20) + 6a54: 46d8 lsli r6, r6, 24 + 6a56: 6c98 or r2, r6 + 6a58: 98c4 ld.w r6, (r14, 0x10) + 6a5a: 6c98 or r2, r6 + 6a5c: 98c3 ld.w r6, (r14, 0xc) + 6a5e: 6c98 or r2, r6 + 6a60: 98c2 ld.w r6, (r14, 0x8) + 6a62: 6c98 or r2, r6 + 6a64: 98c1 ld.w r6, (r14, 0x4) + 6a66: 6c98 or r2, r6 + 6a68: 6c48 or r1, r2 + 6a6a: 9840 ld.w r2, (r14, 0x0) + 6a6c: 6c04 or r0, r1 + 6a6e: 4242 lsli r2, r2, 2 + 6a70: 6c08 or r0, r2 + 6a72: 6d00 or r4, r0 + 6a74: 4367 lsli r3, r3, 7 + 6a76: 6cd0 or r3, r4 + 6a78: b561 st.w r3, (r5, 0x4) + 6a7a: 1409 addi r14, r14, 36 + 6a7c: 1484 pop r4-r7 + 6a7e: 3e40 cmpnei r6, 0 + 6a80: 0bdc bt 0x6a38 // 6a38 + 6a82: 9264 ld.w r3, (r2, 0x10) + 6a84: 3b98 bclri r3, 24 + 6a86: 3b99 bclri r3, 25 + 6a88: 3bb8 bseti r3, 24 + 6a8a: b264 st.w r3, (r2, 0x10) + 6a8c: 3300 movi r3, 0 + 6a8e: 07d5 br 0x6a38 // 6a38 + 6a90: 2000004c .long 0x2000004c + 6a94: 20000050 .long 0x20000050 + 6a98: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00006a9c : + 6a9c: 14d4 push r4-r7, r15 + 6a9e: 1422 subi r14, r14, 8 + 6aa0: 1269 lrw r3, 0x2000004c // 6bc4 + 6aa2: 31f0 movi r1, 240 + 6aa4: 9360 ld.w r3, (r3, 0x0) + 6aa6: 9340 ld.w r2, (r3, 0x0) + 6aa8: 4130 lsli r1, r1, 16 + 6aaa: 6885 andn r2, r1 + 6aac: 3ab4 bseti r2, 20 + 6aae: 3ab7 bseti r2, 23 + 6ab0: b340 st.w r2, (r3, 0x0) + 6ab2: 35f0 movi r5, 240 + 6ab4: 1245 lrw r2, 0x2000010c // 6bc8 + 6ab6: 36f0 movi r6, 240 + 6ab8: 9240 ld.w r2, (r2, 0x0) + 6aba: b841 st.w r2, (r14, 0x4) + 6abc: 3400 movi r4, 0 + 6abe: 1244 lrw r2, 0x20000048 // 6bcc + 6ac0: 45ac lsli r5, r5, 12 + 6ac2: 9240 ld.w r2, (r2, 0x0) + 6ac4: b820 st.w r1, (r14, 0x0) + 6ac6: 46c8 lsli r6, r6, 8 + 6ac8: 3701 movi r7, 1 + 6aca: 71d0 lsl r7, r4 + 6acc: 9821 ld.w r1, (r14, 0x4) + 6ace: 69c4 and r7, r1 + 6ad0: 3f40 cmpnei r7, 0 + 6ad2: 7410 zextb r0, r4 + 6ad4: 0c1b bf 0x6b0a // 6b0a + 6ad6: 2800 subi r0, 1 + 6ad8: 380f cmphsi r0, 16 + 6ada: 080b bt 0x6af0 // 6af0 + 6adc: e3ffd110 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6ae0: 27201a0f .long 0x27201a0f + 6ae4: 3d38312c .long 0x3d38312c + 6ae8: 56514a44 .long 0x56514a44 + 6aec: 6c67615b .long 0x6c67615b + 6af0: 9200 ld.w r0, (r2, 0x0) + 6af2: 37f0 movi r7, 240 + 6af4: 681d andn r0, r7 + 6af6: 38a4 bseti r0, 4 + 6af8: 38a7 bseti r0, 7 + 6afa: b200 st.w r0, (r2, 0x0) + 6afc: 0407 br 0x6b0a // 6b0a + 6afe: 9300 ld.w r0, (r3, 0x0) + 6b00: 370f movi r7, 15 + 6b02: 681d andn r0, r7 + 6b04: 38a0 bseti r0, 0 + 6b06: 38a3 bseti r0, 3 + 6b08: b300 st.w r0, (r3, 0x0) + 6b0a: 2400 addi r4, 1 + 6b0c: 3c51 cmpnei r4, 17 + 6b0e: 0bdd bt 0x6ac8 // 6ac8 + 6b10: 1402 addi r14, r14, 8 + 6b12: 1494 pop r4-r7, r15 + 6b14: 9300 ld.w r0, (r3, 0x0) + 6b16: 37f0 movi r7, 240 + 6b18: 681d andn r0, r7 + 6b1a: 38a4 bseti r0, 4 + 6b1c: 38a7 bseti r0, 7 + 6b1e: 07f5 br 0x6b08 // 6b08 + 6b20: 37f0 movi r7, 240 + 6b22: 9300 ld.w r0, (r3, 0x0) + 6b24: 47e4 lsli r7, r7, 4 + 6b26: 681d andn r0, r7 + 6b28: 38a8 bseti r0, 8 + 6b2a: 38ab bseti r0, 11 + 6b2c: 07ee br 0x6b08 // 6b08 + 6b2e: 9300 ld.w r0, (r3, 0x0) + 6b30: 6819 andn r0, r6 + 6b32: 38ac bseti r0, 12 + 6b34: 38af bseti r0, 15 + 6b36: 07e9 br 0x6b08 // 6b08 + 6b38: 9300 ld.w r0, (r3, 0x0) + 6b3a: 6815 andn r0, r5 + 6b3c: 38b0 bseti r0, 16 + 6b3e: 38b3 bseti r0, 19 + 6b40: 07e4 br 0x6b08 // 6b08 + 6b42: 37f0 movi r7, 240 + 6b44: 9200 ld.w r0, (r2, 0x0) + 6b46: 47e4 lsli r7, r7, 4 + 6b48: 681d andn r0, r7 + 6b4a: 38a8 bseti r0, 8 + 6b4c: 38ab bseti r0, 11 + 6b4e: 07d6 br 0x6afa // 6afa + 6b50: 9200 ld.w r0, (r2, 0x0) + 6b52: 6819 andn r0, r6 + 6b54: 38ac bseti r0, 12 + 6b56: 38af bseti r0, 15 + 6b58: 07d1 br 0x6afa // 6afa + 6b5a: 9301 ld.w r0, (r3, 0x4) + 6b5c: 370f movi r7, 15 + 6b5e: 681d andn r0, r7 + 6b60: 38a0 bseti r0, 0 + 6b62: 38a3 bseti r0, 3 + 6b64: b301 st.w r0, (r3, 0x4) + 6b66: 07d2 br 0x6b0a // 6b0a + 6b68: 9301 ld.w r0, (r3, 0x4) + 6b6a: 37f0 movi r7, 240 + 6b6c: 681d andn r0, r7 + 6b6e: 38a4 bseti r0, 4 + 6b70: 38a7 bseti r0, 7 + 6b72: 07f9 br 0x6b64 // 6b64 + 6b74: 37f0 movi r7, 240 + 6b76: 9301 ld.w r0, (r3, 0x4) + 6b78: 47e4 lsli r7, r7, 4 + 6b7a: 681d andn r0, r7 + 6b7c: 38a8 bseti r0, 8 + 6b7e: 38ab bseti r0, 11 + 6b80: 07f2 br 0x6b64 // 6b64 + 6b82: 9301 ld.w r0, (r3, 0x4) + 6b84: 6819 andn r0, r6 + 6b86: 38ac bseti r0, 12 + 6b88: 38af bseti r0, 15 + 6b8a: 07ed br 0x6b64 // 6b64 + 6b8c: 9301 ld.w r0, (r3, 0x4) + 6b8e: 6815 andn r0, r5 + 6b90: 38b0 bseti r0, 16 + 6b92: 38b3 bseti r0, 19 + 6b94: 07e8 br 0x6b64 // 6b64 + 6b96: 9301 ld.w r0, (r3, 0x4) + 6b98: 9820 ld.w r1, (r14, 0x0) + 6b9a: 6805 andn r0, r1 + 6b9c: 38b4 bseti r0, 20 + 6b9e: 38b7 bseti r0, 23 + 6ba0: 07e2 br 0x6b64 // 6b64 + 6ba2: 9200 ld.w r0, (r2, 0x0) + 6ba4: 370f movi r7, 15 + 6ba6: 681d andn r0, r7 + 6ba8: 38a0 bseti r0, 0 + 6baa: 38a3 bseti r0, 3 + 6bac: 07a7 br 0x6afa // 6afa + 6bae: 9200 ld.w r0, (r2, 0x0) + 6bb0: 6815 andn r0, r5 + 6bb2: 38b0 bseti r0, 16 + 6bb4: 38b3 bseti r0, 19 + 6bb6: 07a2 br 0x6afa // 6afa + 6bb8: 9200 ld.w r0, (r2, 0x0) + 6bba: 9820 ld.w r1, (r14, 0x0) + 6bbc: 6805 andn r0, r1 + 6bbe: 38b4 bseti r0, 20 + 6bc0: 38b7 bseti r0, 23 + 6bc2: 079c br 0x6afa // 6afa + 6bc4: 2000004c .long 0x2000004c + 6bc8: 2000010c .long 0x2000010c + 6bcc: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +00006bd0 : + 6bd0: 14c4 push r4-r7 + 6bd2: 1072 lrw r3, 0x20000054 // 6c18 + 6bd4: 1012 lrw r0, 0x200008d2 // 6c1c + 6bd6: 1093 lrw r4, 0x20000743 // 6c20 + 6bd8: 6d83 mov r6, r0 + 6bda: 93a0 ld.w r5, (r3, 0x0) + 6bdc: 3300 movi r3, 0 + 6bde: 4342 lsli r2, r3, 2 + 6be0: 6094 addu r2, r5 + 6be2: 9220 ld.w r1, (r2, 0x0) + 6be4: 4341 lsli r2, r3, 1 + 6be6: 6080 addu r2, r0 + 6be8: 7445 zexth r1, r1 + 6bea: aa20 st.h r1, (r2, 0x0) + 6bec: 8440 ld.b r2, (r4, 0x0) + 6bee: 3a41 cmpnei r2, 1 + 6bf0: 080f bt 0x6c0e // 6c0e + 6bf2: 3300 movi r3, 0 + 6bf4: 10ec lrw r7, 0x2000062c // 6c24 + 6bf6: 4341 lsli r2, r3, 1 + 6bf8: 5e28 addu r1, r6, r2 + 6bfa: 8920 ld.h r1, (r1, 0x0) + 6bfc: 2300 addi r3, 1 + 6bfe: 7445 zexth r1, r1 + 6c00: 609c addu r2, r7 + 6c02: 3b51 cmpnei r3, 17 + 6c04: aa20 st.h r1, (r2, 0x0) + 6c06: 0bf8 bt 0x6bf6 // 6bf6 + 6c08: 3300 movi r3, 0 + 6c0a: a460 st.b r3, (r4, 0x0) + 6c0c: 3311 movi r3, 17 + 6c0e: 2300 addi r3, 1 + 6c10: 74cc zextb r3, r3 + 6c12: 3b10 cmphsi r3, 17 + 6c14: 0fe5 bf 0x6bde // 6bde + 6c16: 1484 pop r4-r7 + 6c18: 20000054 .long 0x20000054 + 6c1c: 200008d2 .long 0x200008d2 + 6c20: 20000743 .long 0x20000743 + 6c24: 2000062c .long 0x2000062c + +Disassembly of section .text.TKEYIntHandler: + +00006c28 : + 6c28: 1460 nie + 6c2a: 1462 ipush + 6c2c: 14d1 push r4, r15 + 6c2e: 109e lrw r4, 0x20000070 // 6ca4 + 6c30: 9460 ld.w r3, (r4, 0x0) + 6c32: 3b40 cmpnei r3, 0 + 6c34: 080b bt 0x6c4a // 6c4a + 6c36: 3301 movi r3, 1 + 6c38: b460 st.w r3, (r4, 0x0) + 6c3a: 107c lrw r3, 0x200006c0 // 6ca8 + 6c3c: 8360 ld.b r3, (r3, 0x0) + 6c3e: 3b41 cmpnei r3, 1 + 6c40: 0805 bt 0x6c4a // 6c4a + 6c42: e3ffffc7 bsr 0x6bd0 // 6bd0 + 6c46: 3301 movi r3, 1 + 6c48: a464 st.b r3, (r4, 0x4) + 6c4a: 1079 lrw r3, 0x20000058 // 6cac + 6c4c: 3101 movi r1, 1 + 6c4e: 9360 ld.w r3, (r3, 0x0) + 6c50: 934a ld.w r2, (r3, 0x28) + 6c52: 6884 and r2, r1 + 6c54: 3a40 cmpnei r2, 0 + 6c56: 0c02 bf 0x6c5a // 6c5a + 6c58: b32c st.w r1, (r3, 0x30) + 6c5a: 934a ld.w r2, (r3, 0x28) + 6c5c: 3102 movi r1, 2 + 6c5e: 6884 and r2, r1 + 6c60: 3a40 cmpnei r2, 0 + 6c62: 0c02 bf 0x6c66 // 6c66 + 6c64: b32c st.w r1, (r3, 0x30) + 6c66: 934a ld.w r2, (r3, 0x28) + 6c68: 3104 movi r1, 4 + 6c6a: 6884 and r2, r1 + 6c6c: 3a40 cmpnei r2, 0 + 6c6e: 0c02 bf 0x6c72 // 6c72 + 6c70: b32c st.w r1, (r3, 0x30) + 6c72: 934a ld.w r2, (r3, 0x28) + 6c74: 3108 movi r1, 8 + 6c76: 6884 and r2, r1 + 6c78: 3a40 cmpnei r2, 0 + 6c7a: 0c02 bf 0x6c7e // 6c7e + 6c7c: b32c st.w r1, (r3, 0x30) + 6c7e: 934a ld.w r2, (r3, 0x28) + 6c80: 3110 movi r1, 16 + 6c82: 6884 and r2, r1 + 6c84: 3a40 cmpnei r2, 0 + 6c86: 0c02 bf 0x6c8a // 6c8a + 6c88: b32c st.w r1, (r3, 0x30) + 6c8a: 934a ld.w r2, (r3, 0x28) + 6c8c: 3120 movi r1, 32 + 6c8e: 6884 and r2, r1 + 6c90: 3a40 cmpnei r2, 0 + 6c92: 0c02 bf 0x6c96 // 6c96 + 6c94: b32c st.w r1, (r3, 0x30) + 6c96: d9ee2001 ld.w r15, (r14, 0x4) + 6c9a: 9880 ld.w r4, (r14, 0x0) + 6c9c: 1402 addi r14, r14, 8 + 6c9e: 1463 ipop + 6ca0: 1461 nir + 6ca2: 0000 bkpt + 6ca4: 20000070 .long 0x20000070 + 6ca8: 200006c0 .long 0x200006c0 + 6cac: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00006cb0 : + 6cb0: 14c2 push r4-r5 + 6cb2: 3200 movi r2, 0 + 6cb4: 3000 movi r0, 0 + 6cb6: 1088 lrw r4, 0x20000760 // 6cd4 + 6cb8: 3501 movi r5, 1 + 6cba: 3120 movi r1, 32 + 6cbc: 9460 ld.w r3, (r4, 0x0) + 6cbe: 70c9 lsr r3, r2 + 6cc0: 68d4 and r3, r5 + 6cc2: 3b40 cmpnei r3, 0 + 6cc4: 0c02 bf 0x6cc8 // 6cc8 + 6cc6: 2000 addi r0, 1 + 6cc8: 2200 addi r2, 1 + 6cca: 644a cmpne r2, r1 + 6ccc: 0bf8 bt 0x6cbc // 6cbc + 6cce: 7400 zextb r0, r0 + 6cd0: 1482 pop r4-r5 + 6cd2: 0000 bkpt + 6cd4: 20000760 .long 0x20000760 + +Disassembly of section .text.TK_Baseline_prog: + +00006cd8 : + 6cd8: 14c4 push r4-r7 + 6cda: 1423 subi r14, r14, 12 + 6cdc: 1079 lrw r3, 0x20000058 // 6d40 + 6cde: 105a lrw r2, 0x2000062c // 6d44 + 6ce0: 10ba lrw r5, 0x20000070 // 6d48 + 6ce2: b842 st.w r2, (r14, 0x8) + 6ce4: 9360 ld.w r3, (r3, 0x0) + 6ce6: b860 st.w r3, (r14, 0x0) + 6ce8: 1079 lrw r3, 0x20000054 // 6d4c + 6cea: 9360 ld.w r3, (r3, 0x0) + 6cec: b861 st.w r3, (r14, 0x4) + 6cee: 3306 movi r3, 6 + 6cf0: 3201 movi r2, 1 + 6cf2: 9820 ld.w r1, (r14, 0x0) + 6cf4: b142 st.w r2, (r1, 0x8) + 6cf6: 3200 movi r2, 0 + 6cf8: b540 st.w r2, (r5, 0x0) + 6cfa: 9540 ld.w r2, (r5, 0x0) + 6cfc: 3a40 cmpnei r2, 0 + 6cfe: 0ffe bf 0x6cfa // 6cfa + 6d00: 6c03 mov r0, r0 + 6d02: 3200 movi r2, 0 + 6d04: 10d3 lrw r6, 0x200008d2 // 6d50 + 6d06: 4202 lsli r0, r2, 2 + 6d08: 9821 ld.w r1, (r14, 0x4) + 6d0a: 6004 addu r0, r1 + 6d0c: 9080 ld.w r4, (r0, 0x0) + 6d0e: 4221 lsli r1, r2, 1 + 6d10: 98e2 ld.w r7, (r14, 0x8) + 6d12: 61c4 addu r7, r1 + 6d14: 7511 zexth r4, r4 + 6d16: af80 st.h r4, (r7, 0x0) + 6d18: 9000 ld.w r0, (r0, 0x0) + 6d1a: 2200 addi r2, 1 + 6d1c: 7401 zexth r0, r0 + 6d1e: 6058 addu r1, r6 + 6d20: 3a51 cmpnei r2, 17 + 6d22: a900 st.h r0, (r1, 0x0) + 6d24: 0bf1 bt 0x6d06 // 6d06 + 6d26: 2b00 subi r3, 1 + 6d28: 74cc zextb r3, r3 + 6d2a: 3b40 cmpnei r3, 0 + 6d2c: 0be2 bt 0x6cf0 // 6cf0 + 6d2e: 106a lrw r3, 0x200006c0 // 6d54 + 6d30: 3201 movi r2, 1 + 6d32: a340 st.b r2, (r3, 0x0) + 6d34: 3200 movi r2, 0 + 6d36: 1069 lrw r3, 0x20000849 // 6d58 + 6d38: a340 st.b r2, (r3, 0x0) + 6d3a: 1403 addi r14, r14, 12 + 6d3c: 1484 pop r4-r7 + 6d3e: 0000 bkpt + 6d40: 20000058 .long 0x20000058 + 6d44: 2000062c .long 0x2000062c + 6d48: 20000070 .long 0x20000070 + 6d4c: 20000054 .long 0x20000054 + 6d50: 200008d2 .long 0x200008d2 + 6d54: 200006c0 .long 0x200006c0 + 6d58: 20000849 .long 0x20000849 + +Disassembly of section .text.TK_Scan_Start: + +00006d5c : + 6d5c: 1046 lrw r2, 0x20000070 // 6d74 + 6d5e: 8264 ld.b r3, (r2, 0x4) + 6d60: 74cc zextb r3, r3 + 6d62: 3b41 cmpnei r3, 1 + 6d64: 0807 bt 0x6d72 // 6d72 + 6d66: 1025 lrw r1, 0x20000058 // 6d78 + 6d68: 9120 ld.w r1, (r1, 0x0) + 6d6a: b162 st.w r3, (r1, 0x8) + 6d6c: 3300 movi r3, 0 + 6d6e: b260 st.w r3, (r2, 0x0) + 6d70: a264 st.b r3, (r2, 0x4) + 6d72: 783c jmp r15 + 6d74: 20000070 .long 0x20000070 + 6d78: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00006d7c : + 6d7c: 14d4 push r4-r7, r15 + 6d7e: 1425 subi r14, r14, 20 + 6d80: 1271 lrw r3, 0x20000108 // 6ec4 + 6d82: 8360 ld.b r3, (r3, 0x0) + 6d84: b860 st.w r3, (r14, 0x0) + 6d86: 3400 movi r4, 0 + 6d88: 1270 lrw r3, 0x200000dc // 6ec8 + 6d8a: 8360 ld.b r3, (r3, 0x0) + 6d8c: b861 st.w r3, (r14, 0x4) + 6d8e: 12f0 lrw r7, 0x200006d6 // 6ecc + 6d90: 1270 lrw r3, 0x200000e5 // 6ed0 + 6d92: 83a0 ld.b r5, (r3, 0x0) + 6d94: 1270 lrw r3, 0x200000e4 // 6ed4 + 6d96: 8360 ld.b r3, (r3, 0x0) + 6d98: b862 st.w r3, (r14, 0x8) + 6d9a: 6d9f mov r6, r7 + 6d9c: 126f lrw r3, 0x200008d2 // 6ed8 + 6d9e: b863 st.w r3, (r14, 0xc) + 6da0: 4461 lsli r3, r4, 1 + 6da2: 9843 ld.w r2, (r14, 0xc) + 6da4: 608c addu r2, r3 + 6da6: 122e lrw r1, 0x2000062c // 6edc + 6da8: 604c addu r1, r3 + 6daa: 8a40 ld.h r2, (r2, 0x0) + 6dac: 8920 ld.h r1, (r1, 0x0) + 6dae: 6086 subu r2, r1 + 6db0: 748b sexth r2, r2 + 6db2: 5f2c addu r1, r7, r3 + 6db4: a940 st.h r2, (r1, 0x0) + 6db6: 8940 ld.h r2, (r1, 0x0) + 6db8: 748b sexth r2, r2 + 6dba: 3adf btsti r2, 31 + 6dbc: 1249 lrw r2, 0x2000088e // 6ee0 + 6dbe: 608c addu r2, r3 + 6dc0: 0c37 bf 0x6e2e // 6e2e + 6dc2: 3100 movi r1, 0 + 6dc4: aa20 st.h r1, (r2, 0x0) + 6dc6: 9840 ld.w r2, (r14, 0x0) + 6dc8: 3a01 cmphsi r2, 2 + 6dca: 0c6d bf 0x6ea4 // 6ea4 + 6dcc: 4461 lsli r3, r4, 1 + 6dce: 5e2c addu r1, r6, r3 + 6dd0: 1205 lrw r0, 0x20000136 // 6ee4 + 6dd2: 8940 ld.h r2, (r1, 0x0) + 6dd4: 60c0 addu r3, r0 + 6dd6: 748b sexth r2, r2 + 6dd8: 8b60 ld.h r3, (r3, 0x0) + 6dda: 648d cmplt r3, r2 + 6ddc: 9840 ld.w r2, (r14, 0x0) + 6dde: 7cc8 mult r3, r2 + 6de0: 0c2a bf 0x6e34 // 6e34 + 6de2: 8940 ld.h r2, (r1, 0x0) + 6de4: 748b sexth r2, r2 + 6de6: 64c9 cmplt r2, r3 + 6de8: 0c26 bf 0x6e34 // 6e34 + 6dea: 1240 lrw r2, 0x200006c4 // 6ee8 + 6dec: 6090 addu r2, r4 + 6dee: 8260 ld.b r3, (r2, 0x0) + 6df0: 2300 addi r3, 1 + 6df2: 74cc zextb r3, r3 + 6df4: a260 st.b r3, (r2, 0x0) + 6df6: 3100 movi r1, 0 + 6df8: 117d lrw r3, 0x200006aa // 6eec + 6dfa: 60d0 addu r3, r4 + 6dfc: a320 st.b r1, (r3, 0x0) + 6dfe: 117d lrw r3, 0x20000786 // 6ef0 + 6e00: 60d0 addu r3, r4 + 6e02: a320 st.b r1, (r3, 0x0) + 6e04: 117c lrw r3, 0x20000800 // 6ef4 + 6e06: 60d0 addu r3, r4 + 6e08: a320 st.b r1, (r3, 0x0) + 6e0a: 8260 ld.b r3, (r2, 0x0) + 6e0c: 9821 ld.w r1, (r14, 0x4) + 6e0e: 64c4 cmphs r1, r3 + 6e10: 081f bt 0x6e4e // 6e4e + 6e12: 3d40 cmpnei r5, 0 + 6e14: 0852 bt 0x6eb8 // 6eb8 + 6e16: 1139 lrw r1, 0x200006bc // 6ef8 + 6e18: 9160 ld.w r3, (r1, 0x0) + 6e1a: 3b40 cmpnei r3, 0 + 6e1c: 0806 bt 0x6e28 // 6e28 + 6e1e: 9100 ld.w r0, (r1, 0x0) + 6e20: 3301 movi r3, 1 + 6e22: 70d0 lsl r3, r4 + 6e24: 6cc0 or r3, r0 + 6e26: b160 st.w r3, (r1, 0x0) + 6e28: 3300 movi r3, 0 + 6e2a: a260 st.b r3, (r2, 0x0) + 6e2c: 0411 br 0x6e4e // 6e4e + 6e2e: 8920 ld.h r1, (r1, 0x0) + 6e30: 7445 zexth r1, r1 + 6e32: 07c9 br 0x6dc4 // 6dc4 + 6e34: 4441 lsli r2, r4, 1 + 6e36: 6098 addu r2, r6 + 6e38: 8a40 ld.h r2, (r2, 0x0) + 6e3a: 748b sexth r2, r2 + 6e3c: 648d cmplt r3, r2 + 6e3e: 0c08 bf 0x6e4e // 6e4e + 6e40: 3300 movi r3, 0 + 6e42: 114e lrw r2, 0x200006bc // 6ef8 + 6e44: 2b01 subi r3, 2 + 6e46: 9220 ld.w r1, (r2, 0x0) + 6e48: 70d3 rotl r3, r4 + 6e4a: 68c4 and r3, r1 + 6e4c: b260 st.w r3, (r2, 0x0) + 6e4e: 4441 lsli r2, r4, 1 + 6e50: 5e68 addu r3, r6, r2 + 6e52: 8b60 ld.h r3, (r3, 0x0) + 6e54: 74cf sexth r3, r3 + 6e56: b864 st.w r3, (r14, 0x10) + 6e58: 3105 movi r1, 5 + 6e5a: 1163 lrw r3, 0x20000136 // 6ee4 + 6e5c: 608c addu r2, r3 + 6e5e: 8a00 ld.h r0, (r2, 0x0) + 6e60: 4002 lsli r0, r0, 2 + 6e62: e3ffe4ef bsr 0x3840 // 3840 <__divsi3> + 6e66: 9864 ld.w r3, (r14, 0x10) + 6e68: 640d cmplt r3, r0 + 6e6a: 0c18 bf 0x6e9a // 6e9a + 6e6c: 1140 lrw r2, 0x200006aa // 6eec + 6e6e: 6090 addu r2, r4 + 6e70: 8260 ld.b r3, (r2, 0x0) + 6e72: 2300 addi r3, 1 + 6e74: 74cc zextb r3, r3 + 6e76: a260 st.b r3, (r2, 0x0) + 6e78: 3100 movi r1, 0 + 6e7a: 107c lrw r3, 0x200006c4 // 6ee8 + 6e7c: 60d0 addu r3, r4 + 6e7e: a320 st.b r1, (r3, 0x0) + 6e80: 8260 ld.b r3, (r2, 0x0) + 6e82: 9822 ld.w r1, (r14, 0x8) + 6e84: 64c4 cmphs r1, r3 + 6e86: 080a bt 0x6e9a // 6e9a + 6e88: 3300 movi r3, 0 + 6e8a: 103c lrw r1, 0x200006bc // 6ef8 + 6e8c: 2b01 subi r3, 2 + 6e8e: 9100 ld.w r0, (r1, 0x0) + 6e90: 70d3 rotl r3, r4 + 6e92: 68c0 and r3, r0 + 6e94: b160 st.w r3, (r1, 0x0) + 6e96: 3300 movi r3, 0 + 6e98: a260 st.b r3, (r2, 0x0) + 6e9a: 2400 addi r4, 1 + 6e9c: 3c51 cmpnei r4, 17 + 6e9e: 0b81 bt 0x6da0 // 6da0 + 6ea0: 1405 addi r14, r14, 20 + 6ea2: 1494 pop r4-r7, r15 + 6ea4: 60d8 addu r3, r6 + 6ea6: 4441 lsli r2, r4, 1 + 6ea8: 102f lrw r1, 0x20000136 // 6ee4 + 6eaa: 8b60 ld.h r3, (r3, 0x0) + 6eac: 6084 addu r2, r1 + 6eae: 74cf sexth r3, r3 + 6eb0: 8a40 ld.h r2, (r2, 0x0) + 6eb2: 64c9 cmplt r2, r3 + 6eb4: 0fcd bf 0x6e4e // 6e4e + 6eb6: 079a br 0x6dea // 6dea + 6eb8: 3d41 cmpnei r5, 1 + 6eba: 0bb7 bt 0x6e28 // 6e28 + 6ebc: 102f lrw r1, 0x200006bc // 6ef8 + 6ebe: 6cd7 mov r3, r5 + 6ec0: 9100 ld.w r0, (r1, 0x0) + 6ec2: 07b0 br 0x6e22 // 6e22 + 6ec4: 20000108 .long 0x20000108 + 6ec8: 200000dc .long 0x200000dc + 6ecc: 200006d6 .long 0x200006d6 + 6ed0: 200000e5 .long 0x200000e5 + 6ed4: 200000e4 .long 0x200000e4 + 6ed8: 200008d2 .long 0x200008d2 + 6edc: 2000062c .long 0x2000062c + 6ee0: 2000088e .long 0x2000088e + 6ee4: 20000136 .long 0x20000136 + 6ee8: 200006c4 .long 0x200006c4 + 6eec: 200006aa .long 0x200006aa + 6ef0: 20000786 .long 0x20000786 + 6ef4: 20000800 .long 0x20000800 + 6ef8: 200006bc .long 0x200006bc + +Disassembly of section .text.TK_overflow_predict: + +00006efc : + 6efc: 14d4 push r4-r7, r15 + 6efe: 1421 subi r14, r14, 4 + 6f00: 11d9 lrw r6, 0x20000070 // 6fe4 + 6f02: 8665 ld.b r3, (r6, 0x5) + 6f04: 3b41 cmpnei r3, 1 + 6f06: 085f bt 0x6fc4 // 6fc4 + 6f08: 1158 lrw r2, 0x200007dc // 6fe8 + 6f0a: 8260 ld.b r3, (r2, 0x0) + 6f0c: 2300 addi r3, 1 + 6f0e: 74cc zextb r3, r3 + 6f10: a260 st.b r3, (r2, 0x0) + 6f12: 8260 ld.b r3, (r2, 0x0) + 6f14: 1136 lrw r1, 0x20000109 // 6fec + 6f16: 8120 ld.b r1, (r1, 0x0) + 6f18: 64c4 cmphs r1, r3 + 6f1a: 0855 bt 0x6fc4 // 6fc4 + 6f1c: 3300 movi r3, 0 + 6f1e: a260 st.b r3, (r2, 0x0) + 6f20: 3500 movi r5, 0 + 6f22: 11f4 lrw r7, 0x2000010c // 6ff0 + 6f24: 2605 addi r6, 6 + 6f26: 9760 ld.w r3, (r7, 0x0) + 6f28: 70d5 lsr r3, r5 + 6f2a: 3201 movi r2, 1 + 6f2c: 68c8 and r3, r2 + 6f2e: 3b40 cmpnei r3, 0 + 6f30: 0c34 bf 0x6f98 // 6f98 + 6f32: 4581 lsli r4, r5, 1 + 6f34: 5e70 addu r3, r6, r4 + 6f36: 8b00 ld.h r0, (r3, 0x0) + 6f38: e3ffd334 bsr 0x15a0 // 15a0 <__floatunsidf> + 6f3c: 6cc7 mov r3, r1 + 6f3e: 3180 movi r1, 128 + 6f40: 6c83 mov r2, r0 + 6f42: 4137 lsli r1, r1, 23 + 6f44: 3000 movi r0, 0 + 6f46: e3ffc937 bsr 0x1b4 // 1b4 <__GI_pow> + 6f4a: 116b lrw r3, 0x20000112 // 6ff4 + 6f4c: 60d0 addu r3, r4 + 6f4e: 8b60 ld.h r3, (r3, 0x0) + 6f50: 4364 lsli r3, r3, 4 + 6f52: 230e addi r3, 15 + 6f54: b860 st.w r3, (r14, 0x0) + 6f56: e3ffcedd bsr 0xd10 // d10 <__fixunsdfsi> + 6f5a: 9860 ld.w r3, (r14, 0x0) + 6f5c: 7cc0 mult r3, r0 + 6f5e: 1147 lrw r2, 0x2000086c // 6ff8 + 6f60: 740d zexth r0, r3 + 6f62: 6090 addu r2, r4 + 6f64: 1166 lrw r3, 0x200008d2 // 6ffc + 6f66: 60d0 addu r3, r4 + 6f68: aa00 st.h r0, (r2, 0x0) + 6f6a: 8b60 ld.h r3, (r3, 0x0) + 6f6c: 8a00 ld.h r0, (r2, 0x0) + 6f6e: 7401 zexth r0, r0 + 6f70: 325f movi r2, 95 + 6f72: 74cd zexth r3, r3 + 6f74: 7c08 mult r0, r2 + 6f76: 3164 movi r1, 100 + 6f78: b860 st.w r3, (r14, 0x0) + 6f7a: e3ffe463 bsr 0x3840 // 3840 <__divsi3> + 6f7e: 9860 ld.w r3, (r14, 0x0) + 6f80: 64c1 cmplt r0, r3 + 6f82: 0c0b bf 0x6f98 // 6f98 + 6f84: 107f lrw r3, 0x200000e6 // 7000 + 6f86: 610c addu r4, r3 + 6f88: 8c60 ld.h r3, (r4, 0x0) + 6f8a: 3b06 cmphsi r3, 7 + 6f8c: 0806 bt 0x6f98 // 6f98 + 6f8e: 2300 addi r3, 1 + 6f90: ac60 st.h r3, (r4, 0x0) + 6f92: 3201 movi r2, 1 + 6f94: 107c lrw r3, 0x20000731 // 7004 + 6f96: a340 st.b r2, (r3, 0x0) + 6f98: 2500 addi r5, 1 + 6f9a: 3d51 cmpnei r5, 17 + 6f9c: 0bc5 bt 0x6f26 // 6f26 + 6f9e: 107a lrw r3, 0x20000731 // 7004 + 6fa0: 8340 ld.b r2, (r3, 0x0) + 6fa2: 3a41 cmpnei r2, 1 + 6fa4: 0810 bt 0x6fc4 // 6fc4 + 6fa6: 3200 movi r2, 0 + 6fa8: a340 st.b r2, (r3, 0x0) + 6faa: 3200 movi r2, 0 + 6fac: 1077 lrw r3, 0x20000058 // 7008 + 6fae: 1018 lrw r0, 0x200007ff // 700c + 6fb0: 10b8 lrw r5, 0x20000838 // 7010 + 6fb2: 10d4 lrw r6, 0x200000e6 // 7000 + 6fb4: 9360 ld.w r3, (r3, 0x0) + 6fb6: b342 st.w r2, (r3, 0x8) + 6fb8: 1077 lrw r3, 0x20000054 // 7014 + 6fba: 9380 ld.w r4, (r3, 0x0) + 6fbc: 3300 movi r3, 0 + 6fbe: 8040 ld.b r2, (r0, 0x0) + 6fc0: 648c cmphs r3, r2 + 6fc2: 0c03 bf 0x6fc8 // 6fc8 + 6fc4: 1401 addi r14, r14, 4 + 6fc6: 1494 pop r4-r7, r15 + 6fc8: 5d4c addu r2, r5, r3 + 6fca: 8240 ld.b r2, (r2, 0x0) + 6fcc: 4241 lsli r2, r2, 1 + 6fce: 4322 lsli r1, r3, 2 + 6fd0: 6098 addu r2, r6 + 6fd2: 6050 addu r1, r4 + 6fd4: 8a40 ld.h r2, (r2, 0x0) + 6fd6: 91f2 ld.w r7, (r1, 0x48) + 6fd8: 4254 lsli r2, r2, 20 + 6fda: 6c9c or r2, r7 + 6fdc: 2300 addi r3, 1 + 6fde: b152 st.w r2, (r1, 0x48) + 6fe0: 74cc zextb r3, r3 + 6fe2: 07ee br 0x6fbe // 6fbe + 6fe4: 20000070 .long 0x20000070 + 6fe8: 200007dc .long 0x200007dc + 6fec: 20000109 .long 0x20000109 + 6ff0: 2000010c .long 0x2000010c + 6ff4: 20000112 .long 0x20000112 + 6ff8: 2000086c .long 0x2000086c + 6ffc: 200008d2 .long 0x200008d2 + 7000: 200000e6 .long 0x200000e6 + 7004: 20000731 .long 0x20000731 + 7008: 20000058 .long 0x20000058 + 700c: 200007ff .long 0x200007ff + 7010: 20000838 .long 0x20000838 + 7014: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00007018 : + 7018: 14c4 push r4-r7 + 701a: 1422 subi r14, r14, 8 + 701c: 1348 lrw r2, 0x2000075e // 71bc + 701e: 8260 ld.b r3, (r2, 0x0) + 7020: 2300 addi r3, 1 + 7022: 74cc zextb r3, r3 + 7024: a260 st.b r3, (r2, 0x0) + 7026: 8260 ld.b r3, (r2, 0x0) + 7028: 1326 lrw r1, 0x20000109 // 71c0 + 702a: 8120 ld.b r1, (r1, 0x0) + 702c: 644c cmphs r3, r1 + 702e: 0cad bf 0x7188 // 7188 + 7030: 3300 movi r3, 0 + 7032: a260 st.b r3, (r2, 0x0) + 7034: 1364 lrw r3, 0x200006bc // 71c4 + 7036: 9360 ld.w r3, (r3, 0x0) + 7038: 3b40 cmpnei r3, 0 + 703a: 08a7 bt 0x7188 // 7188 + 703c: 1323 lrw r1, 0x200006d6 // 71c8 + 703e: 6dc7 mov r7, r1 + 7040: b820 st.w r1, (r14, 0x0) + 7042: 3200 movi r2, 0 + 7044: 1362 lrw r3, 0x20000136 // 71cc + 7046: 1323 lrw r1, 0x2000062c // 71d0 + 7048: 4201 lsli r0, r2, 1 + 704a: 9880 ld.w r4, (r14, 0x0) + 704c: 6100 addu r4, r0 + 704e: 8c80 ld.h r4, (r4, 0x0) + 7050: 7513 sexth r4, r4 + 7052: 3cdf btsti r4, 31 + 7054: 0c27 bf 0x70a2 // 70a2 + 7056: 13a0 lrw r5, 0x200008d2 // 71d4 + 7058: 5980 addu r4, r1, r0 + 705a: 6014 addu r0, r5 + 705c: b881 st.w r4, (r14, 0x4) + 705e: 8c80 ld.h r4, (r4, 0x0) + 7060: 88c0 ld.h r6, (r0, 0x0) + 7062: 7511 zexth r4, r4 + 7064: 7599 zexth r6, r6 + 7066: 8ba0 ld.h r5, (r3, 0x0) + 7068: 611a subu r4, r6 + 706a: 6551 cmplt r4, r5 + 706c: 081b bt 0x70a2 // 70a2 + 706e: 9881 ld.w r4, (r14, 0x4) + 7070: 8c80 ld.h r4, (r4, 0x0) + 7072: 8800 ld.h r0, (r0, 0x0) + 7074: 7511 zexth r4, r4 + 7076: 7401 zexth r0, r0 + 7078: 5c01 subu r0, r4, r0 + 707a: 4581 lsli r4, r5, 1 + 707c: 6150 addu r5, r4 + 707e: 6541 cmplt r0, r5 + 7080: 0c11 bf 0x70a2 // 70a2 + 7082: 1296 lrw r4, 0x20000800 // 71d8 + 7084: 6108 addu r4, r2 + 7086: 8400 ld.b r0, (r4, 0x0) + 7088: 2000 addi r0, 1 + 708a: 7400 zextb r0, r0 + 708c: a400 st.b r0, (r4, 0x0) + 708e: 1214 lrw r0, 0x20000090 // 71dc + 7090: 84a0 ld.b r5, (r4, 0x0) + 7092: 8008 ld.b r0, (r0, 0x8) + 7094: 6540 cmphs r0, r5 + 7096: 0806 bt 0x70a2 // 70a2 + 7098: 1212 lrw r0, 0x20000743 // 71e0 + 709a: 3501 movi r5, 1 + 709c: a0a0 st.b r5, (r0, 0x0) + 709e: 3000 movi r0, 0 + 70a0: a400 st.b r0, (r4, 0x0) + 70a2: 4201 lsli r0, r2, 1 + 70a4: 5f80 addu r4, r7, r0 + 70a6: 8c80 ld.h r4, (r4, 0x0) + 70a8: 7513 sexth r4, r4 + 70aa: 3c20 cmplti r4, 1 + 70ac: 0870 bt 0x718c // 718c + 70ae: 128a lrw r4, 0x200008d2 // 71d4 + 70b0: 6100 addu r4, r0 + 70b2: 59a0 addu r5, r1, r0 + 70b4: 8c80 ld.h r4, (r4, 0x0) + 70b6: 8da0 ld.h r5, (r5, 0x0) + 70b8: 7555 zexth r5, r5 + 70ba: 7511 zexth r4, r4 + 70bc: 6116 subu r4, r5 + 70be: 8ba0 ld.h r5, (r3, 0x0) + 70c0: 45a2 lsli r5, r5, 2 + 70c2: 6551 cmplt r4, r5 + 70c4: 0864 bt 0x718c // 718c + 70c6: 1288 lrw r4, 0x20000786 // 71e4 + 70c8: 6108 addu r4, r2 + 70ca: 84a0 ld.b r5, (r4, 0x0) + 70cc: 2500 addi r5, 1 + 70ce: 7554 zextb r5, r5 + 70d0: a4a0 st.b r5, (r4, 0x0) + 70d2: 12a3 lrw r5, 0x20000090 // 71dc + 70d4: 84c0 ld.b r6, (r4, 0x0) + 70d6: 85a9 ld.b r5, (r5, 0x9) + 70d8: 6594 cmphs r5, r6 + 70da: 0806 bt 0x70e6 // 70e6 + 70dc: 12a1 lrw r5, 0x20000743 // 71e0 + 70de: 3601 movi r6, 1 + 70e0: a5c0 st.b r6, (r5, 0x0) + 70e2: 3500 movi r5, 0 + 70e4: a4a0 st.b r5, (r4, 0x0) + 70e6: 5f80 addu r4, r7, r0 + 70e8: 8c80 ld.h r4, (r4, 0x0) + 70ea: 7513 sexth r4, r4 + 70ec: 3cdf btsti r4, 31 + 70ee: 0c10 bf 0x710e // 710e + 70f0: 11d9 lrw r6, 0x200008d2 // 71d4 + 70f2: 59a0 addu r5, r1, r0 + 70f4: 6180 addu r6, r0 + 70f6: 8d80 ld.h r4, (r5, 0x0) + 70f8: 8ec0 ld.h r6, (r6, 0x0) + 70fa: 7599 zexth r6, r6 + 70fc: 7511 zexth r4, r4 + 70fe: 611a subu r4, r6 + 7100: 8bc0 ld.h r6, (r3, 0x0) + 7102: 6591 cmplt r4, r6 + 7104: 0c05 bf 0x710e // 710e + 7106: 8d80 ld.h r4, (r5, 0x0) + 7108: 2c00 subi r4, 1 + 710a: 7511 zexth r4, r4 + 710c: ad80 st.h r4, (r5, 0x0) + 710e: 5f80 addu r4, r7, r0 + 7110: 8c80 ld.h r4, (r4, 0x0) + 7112: 7513 sexth r4, r4 + 7114: 3cdf btsti r4, 31 + 7116: 0c11 bf 0x7138 // 7138 + 7118: 11cf lrw r6, 0x200008d2 // 71d4 + 711a: 59a0 addu r5, r1, r0 + 711c: 6180 addu r6, r0 + 711e: 8d80 ld.h r4, (r5, 0x0) + 7120: 8ec0 ld.h r6, (r6, 0x0) + 7122: 7599 zexth r6, r6 + 7124: 7511 zexth r4, r4 + 7126: 611a subu r4, r6 + 7128: 8bc0 ld.h r6, (r3, 0x0) + 712a: 4ec1 lsri r6, r6, 1 + 712c: 6591 cmplt r4, r6 + 712e: 0805 bt 0x7138 // 7138 + 7130: 8d80 ld.h r4, (r5, 0x0) + 7132: 2c01 subi r4, 2 + 7134: 7511 zexth r4, r4 + 7136: ad80 st.h r4, (r5, 0x0) + 7138: 5fa0 addu r5, r7, r0 + 713a: 8d80 ld.h r4, (r5, 0x0) + 713c: 7513 sexth r4, r4 + 713e: 3c20 cmplti r4, 1 + 7140: 080c bt 0x7158 // 7158 + 7142: 8da0 ld.h r5, (r5, 0x0) + 7144: 8b80 ld.h r4, (r3, 0x0) + 7146: 7557 sexth r5, r5 + 7148: 4c81 lsri r4, r4, 1 + 714a: 6515 cmplt r5, r4 + 714c: 0c06 bf 0x7158 // 7158 + 714e: 59a0 addu r5, r1, r0 + 7150: 8d80 ld.h r4, (r5, 0x0) + 7152: 2400 addi r4, 1 + 7154: 7511 zexth r4, r4 + 7156: ad80 st.h r4, (r5, 0x0) + 7158: 5fa0 addu r5, r7, r0 + 715a: 8d80 ld.h r4, (r5, 0x0) + 715c: 7513 sexth r4, r4 + 715e: 3c20 cmplti r4, 1 + 7160: 0810 bt 0x7180 // 7180 + 7162: 8dc0 ld.h r6, (r5, 0x0) + 7164: 759b sexth r6, r6 + 7166: 8b80 ld.h r4, (r3, 0x0) + 7168: 6519 cmplt r6, r4 + 716a: 0c0b bf 0x7180 // 7180 + 716c: 8da0 ld.h r5, (r5, 0x0) + 716e: 7557 sexth r5, r5 + 7170: 4c81 lsri r4, r4, 1 + 7172: 6515 cmplt r5, r4 + 7174: 0806 bt 0x7180 // 7180 + 7176: 6004 addu r0, r1 + 7178: 8880 ld.h r4, (r0, 0x0) + 717a: 2401 addi r4, 2 + 717c: 7511 zexth r4, r4 + 717e: a880 st.h r4, (r0, 0x0) + 7180: 2200 addi r2, 1 + 7182: 3a51 cmpnei r2, 17 + 7184: 2301 addi r3, 2 + 7186: 0b61 bt 0x7048 // 7048 + 7188: 1402 addi r14, r14, 8 + 718a: 1484 pop r4-r7 + 718c: 5f80 addu r4, r7, r0 + 718e: 8c80 ld.h r4, (r4, 0x0) + 7190: 7513 sexth r4, r4 + 7192: 3cdf btsti r4, 31 + 7194: 0fa9 bf 0x70e6 // 70e6 + 7196: 10b0 lrw r5, 0x200008d2 // 71d4 + 7198: 5980 addu r4, r1, r0 + 719a: 6140 addu r5, r0 + 719c: 8c80 ld.h r4, (r4, 0x0) + 719e: 8da0 ld.h r5, (r5, 0x0) + 71a0: 7555 zexth r5, r5 + 71a2: 8bc0 ld.h r6, (r3, 0x0) + 71a4: 7511 zexth r4, r4 + 71a6: 6116 subu r4, r5 + 71a8: 46a1 lsli r5, r6, 1 + 71aa: 6158 addu r5, r6 + 71ac: 6551 cmplt r4, r5 + 71ae: 0b9c bt 0x70e6 // 70e6 + 71b0: 108c lrw r4, 0x20000743 // 71e0 + 71b2: 3501 movi r5, 1 + 71b4: a4a0 st.b r5, (r4, 0x0) + 71b6: 6c03 mov r0, r0 + 71b8: 0797 br 0x70e6 // 70e6 + 71ba: 0000 bkpt + 71bc: 2000075e .long 0x2000075e + 71c0: 20000109 .long 0x20000109 + 71c4: 200006bc .long 0x200006bc + 71c8: 200006d6 .long 0x200006d6 + 71cc: 20000136 .long 0x20000136 + 71d0: 2000062c .long 0x2000062c + 71d4: 200008d2 .long 0x200008d2 + 71d8: 20000800 .long 0x20000800 + 71dc: 20000090 .long 0x20000090 + 71e0: 20000743 .long 0x20000743 + 71e4: 20000786 .long 0x20000786 + +Disassembly of section .text.TK_result_prog: + +000071e8 : + 71e8: 14d2 push r4-r5, r15 + 71ea: 1050 lrw r2, 0x200006bc // 7228 + 71ec: 1090 lrw r4, 0x20000760 // 722c + 71ee: 9260 ld.w r3, (r2, 0x0) + 71f0: 3b40 cmpnei r3, 0 + 71f2: 0c02 bf 0x71f6 // 71f6 + 71f4: 9260 ld.w r3, (r2, 0x0) + 71f6: b460 st.w r3, (r4, 0x0) + 71f8: 9460 ld.w r3, (r4, 0x0) + 71fa: 3b40 cmpnei r3, 0 + 71fc: 10ad lrw r5, 0x20000834 // 7230 + 71fe: 0c11 bf 0x7220 // 7220 + 7200: 9440 ld.w r2, (r4, 0x0) + 7202: 9560 ld.w r3, (r5, 0x0) + 7204: 64ca cmpne r2, r3 + 7206: 0c03 bf 0x720c // 720c + 7208: 9460 ld.w r3, (r4, 0x0) + 720a: b560 st.w r3, (r5, 0x0) + 720c: e3fffd52 bsr 0x6cb0 // 6cb0 + 7210: 1069 lrw r3, 0x20000110 // 7234 + 7212: 8360 ld.b r3, (r3, 0x0) + 7214: 640c cmphs r3, r0 + 7216: 0804 bt 0x721e // 721e + 7218: 3300 movi r3, 0 + 721a: b460 st.w r3, (r4, 0x0) + 721c: b560 st.w r3, (r5, 0x0) + 721e: 1492 pop r4-r5, r15 + 7220: 1046 lrw r2, 0x20000758 // 7238 + 7222: b560 st.w r3, (r5, 0x0) + 7224: b260 st.w r3, (r2, 0x0) + 7226: 07fc br 0x721e // 721e + 7228: 200006bc .long 0x200006bc + 722c: 20000760 .long 0x20000760 + 7230: 20000834 .long 0x20000834 + 7234: 20000110 .long 0x20000110 + 7238: 20000758 .long 0x20000758 + +Disassembly of section .text.CORETHandler: + +0000723c : + 723c: 1460 nie + 723e: 1462 ipush + 7240: 14d1 push r4, r15 + 7242: 1077 lrw r3, 0x20000064 // 729c + 7244: 3400 movi r4, 0 + 7246: 9360 ld.w r3, (r3, 0x0) + 7248: b386 st.w r4, (r3, 0x18) + 724a: 1076 lrw r3, 0x200006c0 // 72a0 + 724c: 8360 ld.b r3, (r3, 0x0) + 724e: 3b41 cmpnei r3, 1 + 7250: 0820 bt 0x7290 // 7290 + 7252: e3fffd85 bsr 0x6d5c // 6d5c + 7256: e3fffd93 bsr 0x6d7c // 6d7c + 725a: e3fffe51 bsr 0x6efc // 6efc + 725e: e3fffedd bsr 0x7018 // 7018 + 7262: e3ffffc3 bsr 0x71e8 // 71e8 + 7266: 1070 lrw r3, 0x20000760 // 72a4 + 7268: 9360 ld.w r3, (r3, 0x0) + 726a: 3b40 cmpnei r3, 0 + 726c: 0c12 bf 0x7290 // 7290 + 726e: 106f lrw r3, 0x200000e0 // 72a8 + 7270: 9340 ld.w r2, (r3, 0x0) + 7272: 3a40 cmpnei r2, 0 + 7274: 0c0e bf 0x7290 // 7290 + 7276: 106e lrw r3, 0x20000758 // 72ac + 7278: 3064 movi r0, 100 + 727a: 9320 ld.w r1, (r3, 0x0) + 727c: 2100 addi r1, 1 + 727e: b320 st.w r1, (r3, 0x0) + 7280: 9320 ld.w r1, (r3, 0x0) + 7282: 7c80 mult r2, r0 + 7284: 6448 cmphs r2, r1 + 7286: 0805 bt 0x7290 // 7290 + 7288: 104a lrw r2, 0x20000743 // 72b0 + 728a: 3101 movi r1, 1 + 728c: a220 st.b r1, (r2, 0x0) + 728e: b380 st.w r4, (r3, 0x0) + 7290: d9ee2001 ld.w r15, (r14, 0x4) + 7294: 9880 ld.w r4, (r14, 0x0) + 7296: 1402 addi r14, r14, 8 + 7298: 1463 ipop + 729a: 1461 nir + 729c: 20000064 .long 0x20000064 + 72a0: 200006c0 .long 0x200006c0 + 72a4: 20000760 .long 0x20000760 + 72a8: 200000e0 .long 0x200000e0 + 72ac: 20000758 .long 0x20000758 + 72b0: 20000743 .long 0x20000743 + +Disassembly of section .text.get_key_seq: + +000072b4 : + 72b4: 14c3 push r4-r6 + 72b6: 106b lrw r3, 0x2000010c // 72e0 + 72b8: 3000 movi r0, 0 + 72ba: 9320 ld.w r1, (r3, 0x0) + 72bc: 3401 movi r4, 1 + 72be: 3300 movi r3, 0 + 72c0: 10a9 lrw r5, 0x20000838 // 72e4 + 72c2: 6c87 mov r2, r1 + 72c4: 708d lsr r2, r3 + 72c6: 6890 and r2, r4 + 72c8: 3a40 cmpnei r2, 0 + 72ca: 0c05 bf 0x72d4 // 72d4 + 72cc: 5dc0 addu r6, r5, r0 + 72ce: 748c zextb r2, r3 + 72d0: a640 st.b r2, (r6, 0x0) + 72d2: 2000 addi r0, 1 + 72d4: 2300 addi r3, 1 + 72d6: 3b51 cmpnei r3, 17 + 72d8: 0bf5 bt 0x72c2 // 72c2 + 72da: 7400 zextb r0, r0 + 72dc: 1483 pop r4-r6 + 72de: 0000 bkpt + 72e0: 2000010c .long 0x2000010c + 72e4: 20000838 .long 0x20000838 + +Disassembly of section .text.CORET_CONFIG: + +000072e8 : + 72e8: 14d0 push r15 + 72ea: e3ffdc7d bsr 0x2be4 // 2be4 + 72ee: 3180 movi r1, 128 + 72f0: 4124 lsli r1, r1, 4 + 72f2: 3001 movi r0, 1 + 72f4: e3ffd42a bsr 0x1b48 // 1b48 + 72f8: 1068 lrw r3, 0x20000064 // 7318 + 72fa: 1049 lrw r2, 0x2000015c // 731c + 72fc: 9360 ld.w r3, (r3, 0x0) + 72fe: 9240 ld.w r2, (r2, 0x0) + 7300: b345 st.w r2, (r3, 0x14) + 7302: e3ffdca1 bsr 0x2c44 // 2c44 + 7306: e3ffdc8f bsr 0x2c24 // 2c24 + 730a: e3ffdc95 bsr 0x2c34 // 2c34 + 730e: e3ffdc83 bsr 0x2c14 // 2c14 + 7312: e3ffdc75 bsr 0x2bfc // 2bfc + 7316: 1490 pop r15 + 7318: 20000064 .long 0x20000064 + 731c: 2000015c .long 0x2000015c + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00007320 : + 7320: 1066 lrw r3, 0x20000054 // 7338 + 7322: 3100 movi r1, 0 + 7324: 9300 ld.w r0, (r3, 0x0) + 7326: 3300 movi r3, 0 + 7328: 4342 lsli r2, r3, 2 + 732a: 2300 addi r3, 1 + 732c: 6080 addu r2, r0 + 732e: 3b52 cmpnei r3, 18 + 7330: b220 st.w r1, (r2, 0x0) + 7332: b232 st.w r1, (r2, 0x48) + 7334: 0bfa bt 0x7328 // 7328 + 7336: 783c jmp r15 + 7338: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +0000733c : + 733c: 1065 lrw r3, 0x2000005c // 7350 + 733e: 1046 lrw r2, 0xa67a6cc7 // 7354 + 7340: 9360 ld.w r3, (r3, 0x0) + 7342: b356 st.w r2, (r3, 0x58) + 7344: 1045 lrw r2, 0x21f1f04 // 7358 + 7346: b355 st.w r2, (r3, 0x54) + 7348: 1045 lrw r2, 0x69966996 // 735c + 734a: 1066 lrw r3, 0x40011180 // 7360 + 734c: b35f st.w r2, (r3, 0x7c) + 734e: 783c jmp r15 + 7350: 2000005c .long 0x2000005c + 7354: a67a6cc7 .long 0xa67a6cc7 + 7358: 021f1f04 .long 0x021f1f04 + 735c: 69966996 .long 0x69966996 + 7360: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00007364 : + 7364: 14d4 push r4-r7, r15 + 7366: 142c subi r14, r14, 48 + 7368: e3ffffea bsr 0x733c // 733c + 736c: e3ffdb9c bsr 0x2aa4 // 2aa4 + 7370: 1268 lrw r3, 0x20000070 // 7490 + 7372: 934b ld.w r2, (r3, 0x2c) + 7374: 1268 lrw r3, 0x40011200 // 7494 + 7376: b350 st.w r2, (r3, 0x40) + 7378: 1268 lrw r3, 0x200000dd // 7498 + 737a: 8360 ld.b r3, (r3, 0x0) + 737c: 3b41 cmpnei r3, 1 + 737e: 0817 bt 0x73ac // 73ac + 7380: 1267 lrw r3, 0x20000058 // 749c + 7382: 3105 movi r1, 5 + 7384: 9380 ld.w r4, (r3, 0x0) + 7386: 1267 lrw r3, 0x20000134 // 74a0 + 7388: 8300 ld.b r0, (r3, 0x0) + 738a: e3ffe26d bsr 0x3864 // 3864 <__udivsi3> + 738e: 7400 zextb r0, r0 + 7390: 1265 lrw r3, 0x200000de // 74a4 + 7392: b408 st.w r0, (r4, 0x20) + 7394: 8300 ld.b r0, (r3, 0x0) + 7396: 3804 cmphsi r0, 5 + 7398: 1264 lrw r3, 0x2000075c // 74a8 + 739a: 085a bt 0x744e // 744e + 739c: e3ffccb0 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 73a0: 53575103 .long 0x53575103 + 73a4: 0055 .short 0x0055 + 73a6: 3296 movi r2, 150 + 73a8: 4242 lsli r2, r2, 2 + 73aa: ab40 st.h r2, (r3, 0x0) + 73ac: e3fffb78 bsr 0x6a9c // 6a9c + 73b0: 3200 movi r2, 0 + 73b2: 3100 movi r1, 0 + 73b4: 3001 movi r0, 1 + 73b6: e3fffb01 bsr 0x69b8 // 69b8 + 73ba: e3ffffb3 bsr 0x7320 // 7320 + 73be: e3ffff7b bsr 0x72b4 // 72b4 + 73c2: 119b lrw r4, 0x200007ff // 74ac + 73c4: 3101 movi r1, 1 + 73c6: a400 st.b r0, (r4, 0x0) + 73c8: 8440 ld.b r2, (r4, 0x0) + 73ca: 117a lrw r3, 0x20000158 // 74b0 + 73cc: 8b60 ld.h r3, (r3, 0x0) + 73ce: b829 st.w r1, (r14, 0x24) + 73d0: 3180 movi r1, 128 + 73d2: 412d lsli r1, r1, 13 + 73d4: b828 st.w r1, (r14, 0x20) + 73d6: 3180 movi r1, 128 + 73d8: 4129 lsli r1, r1, 9 + 73da: b827 st.w r1, (r14, 0x1c) + 73dc: 3100 movi r1, 0 + 73de: b826 st.w r1, (r14, 0x18) + 73e0: 2a00 subi r2, 1 + 73e2: 1115 lrw r0, 0x2000015a // 74b4 + 73e4: 8800 ld.h r0, (r0, 0x0) + 73e6: b805 st.w r0, (r14, 0x14) + 73e8: 7488 zextb r2, r2 + 73ea: 1114 lrw r0, 0x20000160 // 74b8 + 73ec: 8800 ld.h r0, (r0, 0x0) + 73ee: b804 st.w r0, (r14, 0x10) + 73f0: 3080 movi r0, 128 + 73f2: 4005 lsli r0, r0, 5 + 73f4: b803 st.w r0, (r14, 0xc) + 73f6: 3080 movi r0, 128 + 73f8: 4004 lsli r0, r0, 4 + 73fa: b802 st.w r0, (r14, 0x8) + 73fc: b821 st.w r1, (r14, 0x4) + 73fe: b820 st.w r1, (r14, 0x0) + 7400: 3001 movi r0, 1 + 7402: 3102 movi r1, 2 + 7404: e3fffaee bsr 0x69e0 // 69e0 + 7408: 3002 movi r0, 2 + 740a: e3fffacf bsr 0x69a8 // 69a8 + 740e: 3020 movi r0, 32 + 7410: e3fffacc bsr 0x69a8 // 69a8 + 7414: 3380 movi r3, 128 + 7416: 4372 lsli r3, r3, 18 + 7418: 1149 lrw r2, 0xe000e100 // 74bc + 741a: b260 st.w r3, (r2, 0x0) + 741c: b270 st.w r3, (r2, 0x40) + 741e: 11e9 lrw r7, 0x20000076 // 74c0 + 7420: 1169 lrw r3, 0x20000054 // 74c4 + 7422: 11aa lrw r5, 0x20000838 // 74c8 + 7424: 11ca lrw r6, 0x20000112 // 74cc + 7426: 9360 ld.w r3, (r3, 0x0) + 7428: b86a st.w r3, (r14, 0x28) + 742a: b88b st.w r4, (r14, 0x2c) + 742c: 3300 movi r3, 0 + 742e: 984b ld.w r2, (r14, 0x2c) + 7430: 8240 ld.b r2, (r2, 0x0) + 7432: 648c cmphs r3, r2 + 7434: 0c0f bf 0x7452 // 7452 + 7436: e3ffff59 bsr 0x72e8 // 72e8 + 743a: e3fffc4f bsr 0x6cd8 // 6cd8 + 743e: 140c addi r14, r14, 48 + 7440: 1494 pop r4-r7, r15 + 7442: 1145 lrw r2, 0x5dc // 74d4 + 7444: 07b3 br 0x73aa // 73aa + 7446: 1145 lrw r2, 0x1194 // 74d8 + 7448: 07b1 br 0x73aa // 73aa + 744a: 1145 lrw r2, 0x1770 // 74dc + 744c: 07af br 0x73aa // 73aa + 744e: 1145 lrw r2, 0xbb8 // 74e0 + 7450: 07ad br 0x73aa // 73aa + 7452: 5d0c addu r0, r5, r3 + 7454: 8020 ld.b r1, (r0, 0x0) + 7456: 8040 ld.b r2, (r0, 0x0) + 7458: 8080 ld.b r4, (r0, 0x0) + 745a: 8000 ld.b r0, (r0, 0x0) + 745c: 4001 lsli r0, r0, 1 + 745e: 6018 addu r0, r6 + 7460: 4121 lsli r1, r1, 1 + 7462: 8800 ld.h r0, (r0, 0x0) + 7464: 605c addu r1, r7 + 7466: 448f lsli r4, r4, 15 + 7468: 6d00 or r4, r0 + 746a: 4241 lsli r2, r2, 1 + 746c: 8900 ld.h r0, (r1, 0x0) + 746e: 1039 lrw r1, 0x200000e6 // 74d0 + 7470: 6084 addu r2, r1 + 7472: 4018 lsli r0, r0, 24 + 7474: 6c10 or r0, r4 + 7476: 8a80 ld.h r4, (r2, 0x0) + 7478: 3212 movi r2, 18 + 747a: 608c addu r2, r3 + 747c: 4494 lsli r4, r4, 20 + 747e: 4242 lsli r2, r2, 2 + 7480: 982a ld.w r1, (r14, 0x28) + 7482: 6c10 or r0, r4 + 7484: 6084 addu r2, r1 + 7486: 2300 addi r3, 1 + 7488: b200 st.w r0, (r2, 0x0) + 748a: 74cc zextb r3, r3 + 748c: 07d1 br 0x742e // 742e + 748e: 0000 bkpt + 7490: 20000070 .long 0x20000070 + 7494: 40011200 .long 0x40011200 + 7498: 200000dd .long 0x200000dd + 749c: 20000058 .long 0x20000058 + 74a0: 20000134 .long 0x20000134 + 74a4: 200000de .long 0x200000de + 74a8: 2000075c .long 0x2000075c + 74ac: 200007ff .long 0x200007ff + 74b0: 20000158 .long 0x20000158 + 74b4: 2000015a .long 0x2000015a + 74b8: 20000160 .long 0x20000160 + 74bc: e000e100 .long 0xe000e100 + 74c0: 20000076 .long 0x20000076 + 74c4: 20000054 .long 0x20000054 + 74c8: 20000838 .long 0x20000838 + 74cc: 20000112 .long 0x20000112 + 74d0: 200000e6 .long 0x200000e6 + 74d4: 000005dc .long 0x000005dc + 74d8: 00001194 .long 0x00001194 + 74dc: 00001770 .long 0x00001770 + 74e0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +000074e4 : + 74e4: 14d4 push r4-r7, r15 + 74e6: 142d subi r14, r14, 52 + 74e8: 3201 movi r2, 1 + 74ea: 03ce lrw r6, 0x2000005c // 772c + 74ec: 6cc3 mov r3, r0 + 74ee: dc4e000a st.b r2, (r14, 0xa) + 74f2: 9640 ld.w r2, (r6, 0x0) + 74f4: 9247 ld.w r2, (r2, 0x1c) + 74f6: 7488 zextb r2, r2 + 74f8: dc4e0009 st.b r2, (r14, 0x9) + 74fc: d84e0009 ld.b r2, (r14, 0x9) + 7500: 3a40 cmpnei r2, 0 + 7502: 0c08 bf 0x7512 // 7512 + 7504: d84e0009 ld.b r2, (r14, 0x9) + 7508: 3a42 cmpnei r2, 2 + 750a: 0c04 bf 0x7512 // 7512 + 750c: 3000 movi r0, 0 + 750e: 140d addi r14, r14, 52 + 7510: 1494 pop r4-r7, r15 + 7512: 0397 lrw r4, 0x2000000c // 7730 + 7514: 3209 movi r2, 9 + 7516: 9400 ld.w r0, (r4, 0x0) + 7518: 3b40 cmpnei r3, 0 + 751a: b041 st.w r2, (r0, 0x4) + 751c: 0857 bt 0x75ca // 75ca + 751e: 3307 movi r3, 7 + 7520: dc6e000b st.b r3, (r14, 0xb) + 7524: 037b lrw r3, 0x2dc6c00 // 7734 + 7526: b863 st.w r3, (r14, 0xc) + 7528: 3380 movi r3, 128 + 752a: 4362 lsli r3, r3, 2 + 752c: b867 st.w r3, (r14, 0x1c) + 752e: d86e000b ld.b r3, (r14, 0xb) + 7532: 74cc zextb r3, r3 + 7534: b062 st.w r3, (r0, 0x8) + 7536: 037e lrw r3, 0xffff // 7738 + 7538: b063 st.w r3, (r0, 0xc) + 753a: 3201 movi r2, 1 + 753c: 3101 movi r1, 1 + 753e: 03bf lrw r5, 0x20000014 // 773c + 7540: e3ffd516 bsr 0x1f6c // 1f6c + 7544: 95e0 ld.w r7, (r5, 0x0) + 7546: 137f lrw r3, 0xbe9c0005 // 7740 + 7548: b760 st.w r3, (r7, 0x0) + 754a: 135f lrw r2, 0x30010 // 7744 + 754c: 3300 movi r3, 0 + 754e: b762 st.w r3, (r7, 0x8) + 7550: b743 st.w r2, (r7, 0xc) + 7552: 32d8 movi r2, 216 + 7554: b745 st.w r2, (r7, 0x14) + 7556: 974f ld.w r2, (r7, 0x3c) + 7558: 3aa2 bseti r2, 2 + 755a: b74f st.w r2, (r7, 0x3c) + 755c: 9803 ld.w r0, (r14, 0xc) + 755e: d82e000b ld.b r1, (r14, 0xb) + 7562: 327d movi r2, 125 + 7564: 2100 addi r1, 1 + 7566: 7c48 mult r1, r2 + 7568: b861 st.w r3, (r14, 0x4) + 756a: e3ffe17d bsr 0x3864 // 3864 <__udivsi3> + 756e: b804 st.w r0, (r14, 0x10) + 7570: 32fa movi r2, 250 + 7572: 9824 ld.w r1, (r14, 0x10) + 7574: 4242 lsli r2, r2, 2 + 7576: 6448 cmphs r2, r1 + 7578: 0bca bt 0x750c // 750c + 757a: 9844 ld.w r2, (r14, 0x10) + 757c: 3178 movi r1, 120 + 757e: 9804 ld.w r0, (r14, 0x10) + 7580: b840 st.w r2, (r14, 0x0) + 7582: e3ffe171 bsr 0x3864 // 3864 <__udivsi3> + 7586: 9840 ld.w r2, (r14, 0x0) + 7588: 6082 subu r2, r0 + 758a: b845 st.w r2, (r14, 0x14) + 758c: 9804 ld.w r0, (r14, 0x10) + 758e: 3178 movi r1, 120 + 7590: 9844 ld.w r2, (r14, 0x10) + 7592: b840 st.w r2, (r14, 0x0) + 7594: e3ffe168 bsr 0x3864 // 3864 <__udivsi3> + 7598: 9840 ld.w r2, (r14, 0x0) + 759a: 6008 addu r0, r2 + 759c: b806 st.w r0, (r14, 0x18) + 759e: c0807020 psrclr ie + 75a2: 9640 ld.w r2, (r6, 0x0) + 75a4: 9254 ld.w r2, (r2, 0x50) + 75a6: b848 st.w r2, (r14, 0x20) + 75a8: 9861 ld.w r3, (r14, 0x4) + 75aa: 9440 ld.w r2, (r4, 0x0) + 75ac: b260 st.w r3, (r2, 0x0) + 75ae: b761 st.w r3, (r7, 0x4) + 75b0: d86e000a ld.b r3, (r14, 0xa) + 75b4: 3b40 cmpnei r3, 0 + 75b6: 083e bt 0x7632 // 7632 + 75b8: e3ffd48c bsr 0x1ed0 // 1ed0 + 75bc: 9400 ld.w r0, (r4, 0x0) + 75be: e3ffd4ad bsr 0x1f18 // 1f18 + 75c2: c1807420 psrset ee, ie + 75c6: 3001 movi r0, 1 + 75c8: 07a3 br 0x750e // 750e + 75ca: 3b41 cmpnei r3, 1 + 75cc: 0806 bt 0x75d8 // 75d8 + 75ce: 3303 movi r3, 3 + 75d0: dc6e000b st.b r3, (r14, 0xb) + 75d4: 127d lrw r3, 0x16e3600 // 7748 + 75d6: 07a8 br 0x7526 // 7526 + 75d8: 3b42 cmpnei r3, 2 + 75da: 0806 bt 0x75e6 // 75e6 + 75dc: 3301 movi r3, 1 + 75de: dc6e000b st.b r3, (r14, 0xb) + 75e2: 127b lrw r3, 0xb71b00 // 774c + 75e4: 07a1 br 0x7526 // 7526 + 75e6: 3b43 cmpnei r3, 3 + 75e8: 0806 bt 0x75f4 // 75f4 + 75ea: 3300 movi r3, 0 + 75ec: dc6e000b st.b r3, (r14, 0xb) + 75f0: 1278 lrw r3, 0x5b8d80 // 7750 + 75f2: 079a br 0x7526 // 7526 + 75f4: 3b44 cmpnei r3, 4 + 75f6: 0809 bt 0x7608 // 7608 + 75f8: 3300 movi r3, 0 + 75fa: dc6e000b st.b r3, (r14, 0xb) + 75fe: 1276 lrw r3, 0x54c720 // 7754 + 7600: b863 st.w r3, (r14, 0xc) + 7602: 3380 movi r3, 128 + 7604: 4369 lsli r3, r3, 9 + 7606: 0793 br 0x752c // 752c + 7608: 3b45 cmpnei r3, 5 + 760a: 0806 bt 0x7616 // 7616 + 760c: 3300 movi r3, 0 + 760e: dc6e000b st.b r3, (r14, 0xb) + 7612: 1272 lrw r3, 0x3ffed0 // 7758 + 7614: 07f6 br 0x7600 // 7600 + 7616: 3b46 cmpnei r3, 6 + 7618: 0806 bt 0x7624 // 7624 + 761a: 3300 movi r3, 0 + 761c: dc6e000b st.b r3, (r14, 0xb) + 7620: 126f lrw r3, 0x1fff68 // 775c + 7622: 07ef br 0x7600 // 7600 + 7624: 3b47 cmpnei r3, 7 + 7626: 0b84 bt 0x752e // 752e + 7628: 3300 movi r3, 0 + 762a: dc6e000b st.b r3, (r14, 0xb) + 762e: 126d lrw r3, 0x1ffb8 // 7760 + 7630: 07e8 br 0x7600 // 7600 + 7632: 9560 ld.w r3, (r5, 0x0) + 7634: 3101 movi r1, 1 + 7636: 9440 ld.w r2, (r4, 0x0) + 7638: b321 st.w r1, (r3, 0x4) + 763a: b220 st.w r1, (r2, 0x0) + 763c: 3100 movi r1, 0 + 763e: b327 st.w r1, (r3, 0x1c) + 7640: 3004 movi r0, 4 + 7642: b225 st.w r1, (r2, 0x14) + 7644: 932e ld.w r1, (r3, 0x38) + 7646: 6840 and r1, r0 + 7648: 3940 cmpnei r1, 0 + 764a: 0ffd bf 0x7644 // 7644 + 764c: 9225 ld.w r1, (r2, 0x14) + 764e: b82a st.w r1, (r14, 0x28) + 7650: 3100 movi r1, 0 + 7652: b310 st.w r0, (r3, 0x40) + 7654: b327 st.w r1, (r3, 0x1c) + 7656: 3004 movi r0, 4 + 7658: b225 st.w r1, (r2, 0x14) + 765a: 932e ld.w r1, (r3, 0x38) + 765c: 6840 and r1, r0 + 765e: 3940 cmpnei r1, 0 + 7660: 0ffd bf 0x765a // 765a + 7662: 9225 ld.w r1, (r2, 0x14) + 7664: b82b st.w r1, (r14, 0x2c) + 7666: 3100 movi r1, 0 + 7668: b310 st.w r0, (r3, 0x40) + 766a: b327 st.w r1, (r3, 0x1c) + 766c: 3004 movi r0, 4 + 766e: b225 st.w r1, (r2, 0x14) + 7670: 932e ld.w r1, (r3, 0x38) + 7672: 6840 and r1, r0 + 7674: 3940 cmpnei r1, 0 + 7676: 0ffd bf 0x7670 // 7670 + 7678: 9225 ld.w r1, (r2, 0x14) + 767a: b82c st.w r1, (r14, 0x30) + 767c: b310 st.w r0, (r3, 0x40) + 767e: 982b ld.w r1, (r14, 0x2c) + 7680: 980c ld.w r0, (r14, 0x30) + 7682: 6040 addu r1, r0 + 7684: b829 st.w r1, (r14, 0x24) + 7686: 9829 ld.w r1, (r14, 0x24) + 7688: 4921 lsri r1, r1, 1 + 768a: b829 st.w r1, (r14, 0x24) + 768c: 3100 movi r1, 0 + 768e: b321 st.w r1, (r3, 0x4) + 7690: b220 st.w r1, (r2, 0x0) + 7692: b327 st.w r1, (r3, 0x1c) + 7694: b225 st.w r1, (r2, 0x14) + 7696: d86e0009 ld.b r3, (r14, 0x9) + 769a: 3b42 cmpnei r3, 2 + 769c: 9849 ld.w r2, (r14, 0x24) + 769e: 082c bt 0x76f6 // 76f6 + 76a0: 1171 lrw r3, 0x7ff // 7764 + 76a2: 648c cmphs r3, r2 + 76a4: 0c03 bf 0x76aa // 76aa + 76a6: 3300 movi r3, 0 + 76a8: 040f br 0x76c6 // 76c6 + 76aa: 9849 ld.w r2, (r14, 0x24) + 76ac: 9866 ld.w r3, (r14, 0x18) + 76ae: 648c cmphs r3, r2 + 76b0: 080e bt 0x76cc // 76cc + 76b2: 9868 ld.w r3, (r14, 0x20) + 76b4: 9847 ld.w r2, (r14, 0x1c) + 76b6: 60ca subu r3, r2 + 76b8: b868 st.w r3, (r14, 0x20) + 76ba: 32fe movi r2, 254 + 76bc: 9868 ld.w r3, (r14, 0x20) + 76be: 4248 lsli r2, r2, 8 + 76c0: 68c8 and r3, r2 + 76c2: 3b40 cmpnei r3, 0 + 76c4: 0812 bt 0x76e8 // 76e8 + 76c6: dc6e000a st.b r3, (r14, 0xa) + 76ca: 0721 br 0x750c // 750c + 76cc: 9849 ld.w r2, (r14, 0x24) + 76ce: 9865 ld.w r3, (r14, 0x14) + 76d0: 64c8 cmphs r2, r3 + 76d2: 0829 bt 0x7724 // 7724 + 76d4: 9868 ld.w r3, (r14, 0x20) + 76d6: 9847 ld.w r2, (r14, 0x1c) + 76d8: 60c8 addu r3, r2 + 76da: b868 st.w r3, (r14, 0x20) + 76dc: 33fe movi r3, 254 + 76de: 9848 ld.w r2, (r14, 0x20) + 76e0: 4368 lsli r3, r3, 8 + 76e2: 688c and r2, r3 + 76e4: 64ca cmpne r2, r3 + 76e6: 0fe0 bf 0x76a6 // 76a6 + 76e8: 9660 ld.w r3, (r6, 0x0) + 76ea: 9848 ld.w r2, (r14, 0x20) + 76ec: b354 st.w r2, (r3, 0x50) + 76ee: 3001 movi r0, 1 + 76f0: e3ffdae8 bsr 0x2cc0 // 2cc0 + 76f4: 075e br 0x75b0 // 75b0 + 76f6: 9866 ld.w r3, (r14, 0x18) + 76f8: 648c cmphs r3, r2 + 76fa: 0809 bt 0x770c // 770c + 76fc: 9868 ld.w r3, (r14, 0x20) + 76fe: 9847 ld.w r2, (r14, 0x1c) + 7700: 60ca subu r3, r2 + 7702: b868 st.w r3, (r14, 0x20) + 7704: 32ff movi r2, 255 + 7706: 9868 ld.w r3, (r14, 0x20) + 7708: 4250 lsli r2, r2, 16 + 770a: 07db br 0x76c0 // 76c0 + 770c: 9849 ld.w r2, (r14, 0x24) + 770e: 9865 ld.w r3, (r14, 0x14) + 7710: 64c8 cmphs r2, r3 + 7712: 0809 bt 0x7724 // 7724 + 7714: 9868 ld.w r3, (r14, 0x20) + 7716: 9847 ld.w r2, (r14, 0x1c) + 7718: 60c8 addu r3, r2 + 771a: b868 st.w r3, (r14, 0x20) + 771c: 33ff movi r3, 255 + 771e: 9848 ld.w r2, (r14, 0x20) + 7720: 4370 lsli r3, r3, 16 + 7722: 07e0 br 0x76e2 // 76e2 + 7724: 3300 movi r3, 0 + 7726: dc6e000a st.b r3, (r14, 0xa) + 772a: 07e2 br 0x76ee // 76ee + 772c: 2000005c .long 0x2000005c + 7730: 2000000c .long 0x2000000c + 7734: 02dc6c00 .long 0x02dc6c00 + 7738: 0000ffff .long 0x0000ffff + 773c: 20000014 .long 0x20000014 + 7740: be9c0005 .long 0xbe9c0005 + 7744: 00030010 .long 0x00030010 + 7748: 016e3600 .long 0x016e3600 + 774c: 00b71b00 .long 0x00b71b00 + 7750: 005b8d80 .long 0x005b8d80 + 7754: 0054c720 .long 0x0054c720 + 7758: 003ffed0 .long 0x003ffed0 + 775c: 001fff68 .long 0x001fff68 + 7760: 0001ffb8 .long 0x0001ffb8 + 7764: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241120.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241120.map new file mode 100644 index 0000000..36863ae --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241120.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: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 489308 (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: 256 + Section header string table index: 253 + +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_PullHi PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_DriveS PROGBITS 00001e8a 002e8a 00000e 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e98 002e98 000008 00 AX 0 0 2 + [23] .text.GPIO_Write_ PROGBITS 00001ea0 002ea0 000008 00 AX 0 0 2 + [24] .text.GPIO_Revers PROGBITS 00001ea8 002ea8 000016 00 AX 0 0 2 + [25] .text.GPIO_Read_S PROGBITS 00001ebe 002ebe 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.UART0_DeIni PROGBITS 00001f90 002f90 000018 00 AX 0 0 4 + [37] .text.UART1_DeIni PROGBITS 00001fa8 002fa8 000018 00 AX 0 0 4 + [38] .text.UART2_DeIni PROGBITS 00001fc0 002fc0 000018 00 AX 0 0 4 + [39] .text.UART0_Int_E PROGBITS 00001fd8 002fd8 00001c 00 AX 0 0 4 + [40] .text.UART2_Int_E PROGBITS 00001ff4 002ff4 00001c 00 AX 0 0 4 + [41] .text.UART_IO_Ini PROGBITS 00002010 003010 0000ec 00 AX 0 0 4 + [42] .text.UARTInit PROGBITS 000020fc 0030fc 000010 00 AX 0 0 4 + [43] .text.UARTInitRxT PROGBITS 0000210c 00310c 000010 00 AX 0 0 4 + [44] .text.UARTTransmi PROGBITS 0000211c 00311c 00001e 00 AX 0 0 2 + [45] .text.EPT_Softwar PROGBITS 0000213c 00313c 000020 00 AX 0 0 4 + [46] .text.EPT_Start PROGBITS 0000215c 00315c 000028 00 AX 0 0 4 + [47] .text.EPT_Stop PROGBITS 00002184 003184 000028 00 AX 0 0 4 + [48] .text.EPT_IO_SET PROGBITS 000021ac 0031ac 000238 00 AX 0 0 4 + [49] .text.EPT_PWM_Con PROGBITS 000023e4 0033e4 000038 00 AX 0 0 4 + [50] .text.EPT_PWMX_Ou PROGBITS 0000241c 00341c 0000d8 00 AX 0 0 4 + [51] .text.EPT_PRDR_CM PROGBITS 000024f4 0034f4 00001c 00 AX 0 0 4 + [52] .text.ADC12_RESET PROGBITS 00002510 003510 000064 00 AX 0 0 4 + [53] .text.ADC12_Contr PROGBITS 00002574 003574 000010 00 AX 0 0 4 + [54] .text.ADC12_CMD.p PROGBITS 00002584 003584 000020 00 AX 0 0 4 + [55] .text.ADC12_CLK_C PROGBITS 000025a4 0035a4 00002c 00 AX 0 0 4 + [56] .text.ADC12_Softw PROGBITS 000025d0 0035d0 00000a 00 AX 0 0 2 + [57] .text.ADC12_CMD PROGBITS 000025dc 0035dc 000028 00 AX 0 0 4 + [58] .text.ADC12_ready PROGBITS 00002604 003604 000014 00 AX 0 0 4 + [59] .text.ADC12_SEQEN PROGBITS 00002618 003618 000018 00 AX 0 0 4 + [60] .text.ADC12_DATA_ PROGBITS 00002630 003630 000014 00 AX 0 0 4 + [61] .text.ADC12_Confi PROGBITS 00002644 003644 00007c 00 AX 0 0 4 + [62] .text.ADC12_Confi PROGBITS 000026c0 0036c0 000198 00 AX 0 0 4 + [63] .text.ADC12_Conve PROGBITS 00002858 003858 000180 00 AX 0 0 4 + [64] .text.Page_Progra PROGBITS 000029d8 0039d8 0000a0 00 AX 0 0 4 + [65] .text.ReadDataArr PROGBITS 00002a78 003a78 00002a 00 AX 0 0 2 + [66] .text.tk_paramete PROGBITS 00002aa4 003aa4 000140 00 AX 0 0 4 + [67] .text.CORET_DeIni PROGBITS 00002be4 003be4 000018 00 AX 0 0 4 + [68] .text.CORET_Int_E PROGBITS 00002bfc 003bfc 000018 00 AX 0 0 4 + [69] .text.CORET_start PROGBITS 00002c14 003c14 000010 00 AX 0 0 4 + [70] .text.CORET_CLKSO PROGBITS 00002c24 003c24 000010 00 AX 0 0 4 + [71] .text.CORET_TICKI PROGBITS 00002c34 003c34 000010 00 AX 0 0 4 + [72] .text.CORET_reloa PROGBITS 00002c44 003c44 000010 00 AX 0 0 4 + [73] .text.startup.mai PROGBITS 00002c54 003c54 00006c 00 AX 0 0 4 + [74] .text.delay_nms PROGBITS 00002cc0 003cc0 00002c 00 AX 0 0 2 + [75] .text.delay_nus PROGBITS 00002cec 003cec 000022 00 AX 0 0 2 + [76] .text.EPT0_CONFIG PROGBITS 00002d10 003d10 000060 00 AX 0 0 4 + [77] .text.BT_CONFIG PROGBITS 00002d70 003d70 000060 00 AX 0 0 4 + [78] .text.SYSCON_CONF PROGBITS 00002dd0 003dd0 000062 00 AX 0 0 2 + [79] .text.APT32F102_i PROGBITS 00002e34 003e34 000088 00 AX 0 0 4 + [80] .text.SYSCONIntHa PROGBITS 00002ebc 003ebc 0000f0 00 AX 0 0 4 + [81] .text.IFCIntHandl PROGBITS 00002fac 003fac 000068 00 AX 0 0 4 + [82] .text.ADCIntHandl PROGBITS 00003014 004014 000068 00 AX 0 0 4 + [83] .text.EPT0IntHand PROGBITS 0000307c 00407c 0001ac 00 AX 0 0 4 + [84] .text.WWDTHandler PROGBITS 00003228 004228 000034 00 AX 0 0 4 + [85] .text.GPT0IntHand PROGBITS 0000325c 00425c 000080 00 AX 0 0 4 + [86] .text.RTCIntHandl PROGBITS 000032dc 0042dc 000070 00 AX 0 0 4 + [87] .text.UART0IntHan PROGBITS 0000334c 00434c 00003c 00 AX 0 0 4 + [88] .text.UART1IntHan PROGBITS 00003388 004388 00003c 00 AX 0 0 4 + [89] .text.UART2IntHan PROGBITS 000033c4 0043c4 000094 00 AX 0 0 4 + [90] .text.SPI0IntHand PROGBITS 00003458 004458 0000e8 00 AX 0 0 4 + [91] .text.SIO0IntHand PROGBITS 00003540 004540 000054 00 AX 0 0 4 + [92] .text.EXI0IntHand PROGBITS 00003594 004594 000030 00 AX 0 0 4 + [93] .text.EXI1IntHand PROGBITS 000035c4 0045c4 000030 00 AX 0 0 4 + [94] .text.EXI2to3IntH PROGBITS 000035f4 0045f4 000048 00 AX 0 0 4 + [95] .text.EXI4to9IntH PROGBITS 0000363c 00463c 00005c 00 AX 0 0 4 + [96] .text.EXI10to15In PROGBITS 00003698 004698 000060 00 AX 0 0 4 + [97] .text.LPTIntHandl PROGBITS 000036f8 0046f8 000034 00 AX 0 0 4 + [98] .text.BT0IntHandl PROGBITS 0000372c 00472c 00004c 00 AX 0 0 4 + [99] .text.BT1IntHandl PROGBITS 00003778 004778 000064 00 AX 0 0 4 + [100] .text.PriviledgeV PROGBITS 000037dc 0047dc 000002 00 AX 0 0 2 + [101] .text.PendTrapHan PROGBITS 000037de 0047de 000008 00 AX 0 0 2 + [102] .text.Trap3Handle PROGBITS 000037e6 0047e6 000008 00 AX 0 0 2 + [103] .text.Trap2Handle PROGBITS 000037ee 0047ee 000008 00 AX 0 0 2 + [104] .text.Trap1Handle PROGBITS 000037f6 0047f6 000008 00 AX 0 0 2 + [105] .text.Trap0Handle PROGBITS 000037fe 0047fe 000008 00 AX 0 0 2 + [106] .text.UnrecExecpH PROGBITS 00003806 004806 000008 00 AX 0 0 2 + [107] .text.BreakPointH PROGBITS 0000380e 00480e 000008 00 AX 0 0 2 + [108] .text.AccessErrHa PROGBITS 00003816 004816 000008 00 AX 0 0 2 + [109] .text.IllegalInst PROGBITS 0000381e 00481e 000008 00 AX 0 0 2 + [110] .text.MisalignedH PROGBITS 00003826 004826 000008 00 AX 0 0 2 + [111] .text.CNTAIntHand PROGBITS 0000382e 00482e 000008 00 AX 0 0 2 + [112] .text.I2CIntHandl PROGBITS 00003836 004836 000008 00 AX 0 0 2 + [113] .text.__divsi3 PROGBITS 00003840 004840 000024 00 AX 0 0 4 + [114] .text.__udivsi3 PROGBITS 00003864 004864 000024 00 AX 0 0 4 + [115] .text.__umodsi3 PROGBITS 00003888 004888 000024 00 AX 0 0 4 + [116] .text.CK_CPU_EnAl PROGBITS 000038ac 0048ac 000006 00 AX 0 0 2 + [117] .text.UARTx_Init PROGBITS 000038b4 0048b4 000108 00 AX 0 0 4 + [118] .text.UART2_RecvI PROGBITS 000039bc 0049bc 00006c 00 AX 0 0 4 + [119] .text.UART2_TASK PROGBITS 00003a28 004a28 00009c 00 AX 0 0 4 + [120] .text.MCU485_Send PROGBITS 00003ac4 004ac4 000088 00 AX 0 0 4 + [121] .text.Dbg_Println PROGBITS 00003b4c 004b4c 00000c 00 AX 0 0 2 + [122] .text.Dbg_Print_B PROGBITS 00003b58 004b58 000002 00 AX 0 0 2 + [123] .text.Touch_Key_I PROGBITS 00003b5c 004b5c 000078 00 AX 0 0 4 + [124] .text.TouchKey_RS PROGBITS 00003bd4 004bd4 000138 00 AX 0 0 4 + [125] .text.Get_TouchKe PROGBITS 00003d0c 004d0c 00003c 00 AX 0 0 4 + [126] .text.Touch_Key_E PROGBITS 00003d48 004d48 0000ac 00 AX 0 0 4 + [127] .text.TouchKey_Se PROGBITS 00003df4 004df4 00003c 00 AX 0 0 4 + [128] .text.Touch_Key_T PROGBITS 00003e30 004e30 0000d8 00 AX 0 0 4 + [129] .text.TouchKey_Ch PROGBITS 00003f08 004f08 000018 00 AX 0 0 2 + [130] .text.TouchKey_Co PROGBITS 00003f20 004f20 000084 00 AX 0 0 4 + [131] .text.TouchKey_Se PROGBITS 00003fa4 004fa4 0000b8 00 AX 0 0 4 + [132] .text.TouchKey_Re PROGBITS 0000405c 00505c 0000e4 00 AX 0 0 4 + [133] .text.TouchKey_Du PROGBITS 00004140 005140 000038 00 AX 0 0 4 + [134] .text.TouchKey_Re PROGBITS 00004178 005178 0000cc 00 AX 0 0 4 + [135] .text.TouchKey_Re PROGBITS 00004244 005244 00001a 00 AX 0 0 2 + [136] .text.TouchKey_Co PROGBITS 00004260 005260 0000d8 00 AX 0 0 4 + [137] .text.EEPROM_Chec PROGBITS 00004338 005338 000016 00 AX 0 0 2 + [138] .text.EEPROM_Read PROGBITS 00004350 005350 000074 00 AX 0 0 4 + [139] .text.EEPROM_Writ PROGBITS 000043c4 0053c4 000044 00 AX 0 0 4 + [140] .text.EEPROM_Vali PROGBITS 00004408 005408 000070 00 AX 0 0 4 + [141] .text.EEPROM_Defa PROGBITS 00004478 005478 000018 00 AX 0 0 2 + [142] .text.EEPROM_Init PROGBITS 00004490 005490 000050 00 AX 0 0 4 + [143] .text.EEPROM_Writ PROGBITS 000044e0 0054e0 00006c 00 AX 0 0 4 + [144] .text.EEPROM_Read PROGBITS 0000454c 00554c 0000ac 00 AX 0 0 4 + [145] .text.EEPROM_Vali PROGBITS 000045f8 0055f8 0000a8 00 AX 0 0 4 + [146] .text.EEPROM_Defa PROGBITS 000046a0 0056a0 000040 00 AX 0 0 2 + [147] .text.EEPROM_Touc PROGBITS 000046e0 0056e0 000080 00 AX 0 0 4 + [148] .text.ADC_Init PROGBITS 00004760 005760 00005c 00 AX 0 0 4 + [149] .text.Thermistor_ PROGBITS 000047bc 0057bc 000048 00 AX 0 0 4 + [150] .text.Calculate_A PROGBITS 00004804 005804 0000c0 00 AX 0 0 4 + [151] .text.ADC_Sample_ PROGBITS 000048c4 0058c4 0000b0 00 AX 0 0 4 + [152] .text.Get_Temp_Va PROGBITS 00004974 005974 000010 00 AX 0 0 4 + [153] .text.HT1621_WR_D PROGBITS 00004984 005984 000048 00 AX 0 0 4 + [154] .text.HT1621_WR_C PROGBITS 000049cc 0059cc 000030 00 AX 0 0 4 + [155] .text.HT1621_Init PROGBITS 000049fc 0059fc 00008c 00 AX 0 0 4 + [156] .text.HT1621_Clea PROGBITS 00004a88 005a88 000050 00 AX 0 0 4 + [157] .text.HT1621_ALLO PROGBITS 00004ad8 005ad8 000040 00 AX 0 0 4 + [158] .text.HT1621_Refr PROGBITS 00004b18 005b18 00004c 00 AX 0 0 4 + [159] .text.Set_Tempera PROGBITS 00004b64 005b64 000088 00 AX 0 0 4 + [160] .text.Local_Tempe PROGBITS 00004bec 005bec 000080 00 AX 0 0 4 + [161] .text.Control_Mod PROGBITS 00004c6c 005c6c 000048 00 AX 0 0 4 + [162] .text.Control_win PROGBITS 00004cb4 005cb4 000070 00 AX 0 0 4 + [163] .text.Control_Pro PROGBITS 00004d24 005d24 000044 00 AX 0 0 4 + [164] .text.Controlled_ PROGBITS 00004d68 005d68 000048 00 AX 0 0 4 + [165] .text.Controlled_ PROGBITS 00004db0 005db0 000024 00 AX 0 0 4 + [166] .text.Controlled_ PROGBITS 00004dd4 005dd4 000024 00 AX 0 0 4 + [167] .text.Set_Device_ PROGBITS 00004df8 005df8 000098 00 AX 0 0 4 + [168] .text.Set_Temp_Di PROGBITS 00004e90 005e90 000064 00 AX 0 0 4 + [169] .text.HT1621_Refr PROGBITS 00004ef4 005ef4 000060 00 AX 0 0 4 + [170] .text.MODEL_Ctrl_ PROGBITS 00004f54 005f54 00002c 00 AX 0 0 4 + [171] .text.Control_Mod PROGBITS 00004f80 005f80 0000b4 00 AX 0 0 4 + [172] .text.TemCtrl_Ini PROGBITS 00005034 006034 00013c 00 AX 0 0 4 + [173] .text.TemCtrl_Mod PROGBITS 00005170 006170 00004c 00 AX 0 0 4 + [174] .text.TemCtrl_Fan PROGBITS 000051bc 0061bc 00004c 00 AX 0 0 4 + [175] .text.TemCtrl_Tem PROGBITS 00005208 006208 000030 00 AX 0 0 4 + [176] .text.TemCtrl_Tem PROGBITS 00005238 006238 000030 00 AX 0 0 4 + [177] .text.TemCtrl_OnO PROGBITS 00005268 006268 000034 00 AX 0 0 4 + [178] .text.Tem_Valve_C PROGBITS 0000529c 00629c 00012c 00 AX 0 0 4 + [179] .text.TemCtrl_Pro PROGBITS 000053c8 0063c8 000148 00 AX 0 0 4 + [180] .text.KEY1_Model_ PROGBITS 00005510 006510 0000e4 00 AX 0 0 4 + [181] .text.KEY2_Fan_Pr PROGBITS 000055f4 0065f4 0000e4 00 AX 0 0 4 + [182] .text.KEY3_TempAd PROGBITS 000056d8 0066d8 000104 00 AX 0 0 4 + [183] .text.KEY3_Long_P PROGBITS 000057dc 0067dc 00006c 00 AX 0 0 4 + [184] .text.KEY4_TempDe PROGBITS 00005848 006848 000100 00 AX 0 0 4 + [185] .text.KEY4_Long_P PROGBITS 00005948 006948 00006c 00 AX 0 0 4 + [186] .text.KEY5_OnOff_ PROGBITS 000059b4 0069b4 0000a8 00 AX 0 0 4 + [187] .text.TempCtrl_On PROGBITS 00005a5c 006a5c 00004c 00 AX 0 0 4 + [188] .text.DisPlay_Ini PROGBITS 00005aa8 006aa8 000020 00 AX 0 0 4 + [189] .text.DisPlay_Tas PROGBITS 00005ac8 006ac8 000318 00 AX 0 0 4 + [190] .text.Debug_Init PROGBITS 00005de0 006de0 000034 00 AX 0 0 4 + [191] .text.Dev_SaveDat PROGBITS 00005e14 006e14 000070 00 AX 0 0 4 + [192] .text.Debug_Task PROGBITS 00005e84 006e84 00006c 00 AX 0 0 4 + [193] .text.get_check_s PROGBITS 00005ef0 006ef0 000016 00 AX 0 0 2 + [194] .text.uart_receiv PROGBITS 00005f08 006f08 000044 00 AX 0 0 4 + [195] .text.Queue_Read_ PROGBITS 00005f4c 006f4c 000034 00 AX 0 0 4 + [196] .text.with_data_r PROGBITS 00005f80 006f80 00001c 00 AX 0 0 4 + [197] .text.RF_Info_Ini PROGBITS 00005f9c 006f9c 000034 00 AX 0 0 4 + [198] .text.Add_Frame_H PROGBITS 00005fd0 006fd0 000040 00 AX 0 0 4 + [199] .text.Product_Inf PROGBITS 00006010 007010 000094 00 AX 0 0 4 + [200] .text.Recv_RFNetS PROGBITS 000060a4 0070a4 000038 00 AX 0 0 4 + [201] .text.Tem_Fun_Ctr PROGBITS 000060dc 0070dc 0000b0 00 AX 0 0 4 + [202] .text.data_handle PROGBITS 0000618c 00718c 000128 00 AX 0 0 4 + [203] .text.zigbee_uart PROGBITS 000062b4 0072b4 0000c8 00 AX 0 0 4 + [204] .text.TemFun_Repo PROGBITS 0000637c 00737c 0000d0 00 AX 0 0 4 + [205] .text.Relay_Init PROGBITS 0000644c 00744c 00006c 00 AX 0 0 4 + [206] .text.Relay_High PROGBITS 000064b8 0074b8 000024 00 AX 0 0 4 + [207] .text.Relay_Mid PROGBITS 000064dc 0074dc 000024 00 AX 0 0 4 + [208] .text.Relay_Low PROGBITS 00006500 007500 000024 00 AX 0 0 4 + [209] .text.Relay_Stop PROGBITS 00006524 007524 000024 00 AX 0 0 4 + [210] .text.NetCRC16 PROGBITS 00006548 007548 00004c 00 AX 0 0 4 + [211] .text.GetCRC16 PROGBITS 00006594 007594 00003c 00 AX 0 0 4 + [212] .text.SOR_CRC PROGBITS 000065d0 0075d0 000016 00 AX 0 0 2 + [213] .text.Rs485AskCyc PROGBITS 000065e8 0075e8 0000ec 00 AX 0 0 4 + [214] .text.Rs485AskCtr PROGBITS 000066d4 0076d4 000050 00 AX 0 0 4 + [215] .text.Rs485AskRea PROGBITS 00006724 007724 000054 00 AX 0 0 4 + [216] .text.Temp_Rec_An PROGBITS 00006778 007778 000168 00 AX 0 0 4 + [217] .text.Tem_Rs485_R PROGBITS 000068e0 0078e0 0000c8 00 AX 0 0 4 + [218] .text.TK_ConfigIn PROGBITS 000069a8 0079a8 000010 00 AX 0 0 4 + [219] .text.tk_clk_conf PROGBITS 000069b8 0079b8 000028 00 AX 0 0 4 + [220] .text.TK_con0_con PROGBITS 000069e0 0079e0 0000bc 00 AX 0 0 4 + [221] .text.TK_IO_Enabl PROGBITS 00006a9c 007a9c 000134 00 AX 0 0 4 + [222] .text.TK_Sampling PROGBITS 00006bd0 007bd0 000058 00 AX 0 0 4 + [223] .text.TKEYIntHand PROGBITS 00006c28 007c28 000088 00 AX 0 0 4 + [224] .text.get_key_num PROGBITS 00006cb0 007cb0 000028 00 AX 0 0 4 + [225] .text.TK_Baseline PROGBITS 00006cd8 007cd8 000084 00 AX 0 0 4 + [226] .text.TK_Scan_Sta PROGBITS 00006d5c 007d5c 000020 00 AX 0 0 4 + [227] .text.TK_Keymap_p PROGBITS 00006d7c 007d7c 000180 00 AX 0 0 4 + [228] .text.TK_overflow PROGBITS 00006efc 007efc 00011c 00 AX 0 0 4 + [229] .text.TK_Baseline PROGBITS 00007018 008018 0001d0 00 AX 0 0 4 + [230] .text.TK_result_p PROGBITS 000071e8 0081e8 000054 00 AX 0 0 4 + [231] .text.CORETHandle PROGBITS 0000723c 00823c 000078 00 AX 0 0 4 + [232] .text.get_key_seq PROGBITS 000072b4 0082b4 000034 00 AX 0 0 4 + [233] .text.CORET_CONFI PROGBITS 000072e8 0082e8 000038 00 AX 0 0 4 + [234] .text.tk_chxval_s PROGBITS 00007320 008320 00001c 00 AX 0 0 4 + [235] .text.tk_reserved PROGBITS 0000733c 00833c 000028 00 AX 0 0 4 + [236] .text.tk_init PROGBITS 00007364 008364 000180 00 AX 0 0 4 + [237] .text.std_clk_cal PROGBITS 000074e4 0084e4 000284 00 AX 0 0 4 + [238] .RomCode PROGBITS 00007768 0090a4 000000 00 W 0 0 1 + [239] .rodata PROGBITS 00007768 008768 000890 00 A 0 0 4 + [240] .data PROGBITS 20000000 009000 0000a4 00 WA 0 0 4 + [241] .bss NOBITS 200000a4 0090a4 000850 00 WA 0 0 4 + [242] .csky.attributes CSKY_ATTRIBUTES 00000000 0090a4 000022 00 0 0 1 + [243] .comment PROGBITS 00000000 0090c6 000042 01 MS 0 0 1 + [244] .csky_stack_size PROGBITS 00000000 009110 000a3c 00 0 0 16 + [245] .debug_line PROGBITS 00000000 009b4c 005f44 00 0 0 1 + [246] .debug_info PROGBITS 00000000 00fa90 049ee3 00 0 0 1 + [247] .debug_abbrev PROGBITS 00000000 059973 0041ae 00 0 0 1 + [248] .debug_aranges PROGBITS 00000000 05db28 001040 00 0 0 8 + [249] .debug_ranges PROGBITS 00000000 05eb68 000f98 00 0 0 1 + [250] .debug_str PROGBITS 00000000 05fb00 009601 01 MS 0 0 1 + [251] .debug_frame PROGBITS 00000000 069104 002638 00 0 0 4 + [252] .debug_loc PROGBITS 00000000 06b73c 0031f1 00 0 0 1 + [253] .shstrtab STRTAB 00000000 076142 001619 00 0 0 1 + [254] .symtab SYMTAB 00000000 06e930 005c60 10 255 1074 4 + [255] .strtab STRTAB 00000000 074590 001bb2 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 0x07ff8 0x07ff8 R E 0x1000 + LOAD 0x009000 0x20000000 0x00007ff8 0x000a4 0x008f4 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_PullHighLow_DIS .text.GPIO_DriveStrength_EN .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.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.EPT0_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.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.MODEL_Ctrl_Init .text.Control_Mode_Detection .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.get_check_sum .text.uart_receive_input .text.Queue_Read_Byte .text.with_data_rxbuff .text.RF_Info_Init .text.Add_Frame_Head .text.Product_Info_Update .text.Recv_RFNetState_Ack .text.Tem_Fun_Ctrl_Report .text.data_handle .text.zigbee_uart_service .text.TemFun_Report_Task .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHighLow_DIS) for GPIO_PullHighLow_DIS + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Low) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) 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_model_detection.o(.text.Control_Mode_Detection) 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.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.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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.UART2_TASK) for UART2_TASK + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) for MODEL_Ctrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) for Control_Mode_Detection + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.uart_receive_input) for uart_receive_input + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Queue_Read_Byte) for Queue_Read_Byte + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.with_data_rxbuff) for with_data_rxbuff + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) for RF_Info_Init + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) for Product_Info_Update + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) for Recv_RFNetState_Ack + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) for data_handle + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) for zigbee_uart_service + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) for TemFun_Report_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) 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), (2890 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_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_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), (3084 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), (3401 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), (3146 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), (8009 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), (4114 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), (3517 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), (3633 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4833 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (5 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), (76 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.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (160 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (188 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .data(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .bss(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .text.Rest_RFNetState(Obj/USRCTRL_rf_uart_protocol.o), (64 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text.RLY_State_Multi_Control(Obj/USRCTRL_myrelay.o), (184 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (104 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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). + +592 unused seciton(s) (total 153142 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_model_detection.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_rf_uart_protocol.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_PullHighLow_DIS + $t 0x00001e7c 0 .text.GPIO_PullHighLow_DIS + $d 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $t 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $d 0x00001e98 0 .text.GPIO_Write_High + $t 0x00001e98 0 .text.GPIO_Write_High + $d 0x00001ea0 0 .text.GPIO_Write_Low + $t 0x00001ea0 0 .text.GPIO_Write_Low + $d 0x00001ea8 0 .text.GPIO_Reverse + $t 0x00001ea8 0 .text.GPIO_Reverse + $d 0x00001ebe 0 .text.GPIO_Read_Status + $t 0x00001ebe 0 .text.GPIO_Read_Status + $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.UART0_DeInit + $t 0x00001f90 0 .text.UART0_DeInit + $d 0x00001fa4 0 .text.UART0_DeInit + $d 0x00001fa8 0 .text.UART1_DeInit + $t 0x00001fa8 0 .text.UART1_DeInit + $d 0x00001fbc 0 .text.UART1_DeInit + $d 0x00001fc0 0 .text.UART2_DeInit + $t 0x00001fc0 0 .text.UART2_DeInit + $d 0x00001fd4 0 .text.UART2_DeInit + $d 0x00001fd8 0 .text.UART0_Int_Enable + $t 0x00001fd8 0 .text.UART0_Int_Enable + $d 0x00001fec 0 .text.UART0_Int_Enable + $d 0x00001ff4 0 .text.UART2_Int_Enable + $t 0x00001ff4 0 .text.UART2_Int_Enable + $d 0x00002008 0 .text.UART2_Int_Enable + $d 0x00002010 0 .text.UART_IO_Init + $t 0x00002010 0 .text.UART_IO_Init + $d 0x000020f4 0 .text.UART_IO_Init + $d 0x000020fc 0 .text.UARTInit + $t 0x000020fc 0 .text.UARTInit + $d 0x00002108 0 .text.UARTInit + $d 0x0000210c 0 .text.UARTInitRxTxIntEn + $t 0x0000210c 0 .text.UARTInitRxTxIntEn + $d 0x00002118 0 .text.UARTInitRxTxIntEn + $d 0x0000211c 0 .text.UARTTransmit + $t 0x0000211c 0 .text.UARTTransmit + $d 0x0000213c 0 .text.EPT_Software_Prg + $t 0x0000213c 0 .text.EPT_Software_Prg + $d 0x00002158 0 .text.EPT_Software_Prg + $d 0x0000215c 0 .text.EPT_Start + $t 0x0000215c 0 .text.EPT_Start + $d 0x0000217c 0 .text.EPT_Start + $d 0x00002184 0 .text.EPT_Stop + $t 0x00002184 0 .text.EPT_Stop + $d 0x000021a4 0 .text.EPT_Stop + $d 0x000021ac 0 .text.EPT_IO_SET + $t 0x000021ac 0 .text.EPT_IO_SET + $d 0x000023dc 0 .text.EPT_IO_SET + $d 0x000023e4 0 .text.EPT_PWM_Config + $t 0x000023e4 0 .text.EPT_PWM_Config + $d 0x00002414 0 .text.EPT_PWM_Config + $d 0x0000241c 0 .text.EPT_PWMX_Output_Control + $t 0x0000241c 0 .text.EPT_PWMX_Output_Control + $d 0x000024f0 0 .text.EPT_PWMX_Output_Control + $d 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x0000250c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x00002510 0 .text.ADC12_RESET_VALUE + $t 0x00002510 0 .text.ADC12_RESET_VALUE + $d 0x00002570 0 .text.ADC12_RESET_VALUE + $d 0x00002574 0 .text.ADC12_Control + $t 0x00002574 0 .text.ADC12_Control + $d 0x00002580 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002584 F 32 .text.ADC12_CMD.part.0 + $d 0x00002584 0 .text.ADC12_CMD.part.0 + $t 0x00002584 0 .text.ADC12_CMD.part.0 + $d 0x000025a0 0 .text.ADC12_CMD.part.0 + $d 0x000025a4 0 .text.ADC12_CLK_CMD + $t 0x000025a4 0 .text.ADC12_CLK_CMD + $d 0x000025cc 0 .text.ADC12_CLK_CMD + $d 0x000025d0 0 .text.ADC12_Software_Reset + $t 0x000025d0 0 .text.ADC12_Software_Reset + $d 0x000025dc 0 .text.ADC12_CMD + $t 0x000025dc 0 .text.ADC12_CMD + $d 0x00002600 0 .text.ADC12_CMD + $d 0x00002604 0 .text.ADC12_ready_wait + $t 0x00002604 0 .text.ADC12_ready_wait + $d 0x00002614 0 .text.ADC12_ready_wait + $d 0x00002618 0 .text.ADC12_SEQEND_wait + $t 0x00002618 0 .text.ADC12_SEQEND_wait + $d 0x0000262c 0 .text.ADC12_SEQEND_wait + $d 0x00002630 0 .text.ADC12_DATA_OUPUT + $t 0x00002630 0 .text.ADC12_DATA_OUPUT + $d 0x00002640 0 .text.ADC12_DATA_OUPUT + $d 0x00002644 0 .text.ADC12_Configure_Mode + $t 0x00002644 0 .text.ADC12_Configure_Mode + $d 0x000026bc 0 .text.ADC12_Configure_Mode + $d 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $t 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002834 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002858 0 .text.ADC12_ConversionChannel_Config + $t 0x00002858 0 .text.ADC12_ConversionChannel_Config + $d 0x00002884 0 .text.ADC12_ConversionChannel_Config + $t 0x00002894 0 .text.ADC12_ConversionChannel_Config + $d 0x000029cc 0 .text.ADC12_ConversionChannel_Config + $d 0x000029d8 0 .text.Page_ProgramData + $t 0x000029d8 0 .text.Page_ProgramData + $d 0x00002a70 0 .text.Page_ProgramData + $d 0x00002a78 0 .text.ReadDataArry_U8 + $t 0x00002a78 0 .text.ReadDataArry_U8 + $d 0x00002aa4 0 .text.tk_parameter_init + $t 0x00002aa4 0 .text.tk_parameter_init + $d 0x00002b94 0 .text.tk_parameter_init + $d 0x00002be4 0 .text.CORET_DeInit + $t 0x00002be4 0 .text.CORET_DeInit + $d 0x00002bf8 0 .text.CORET_DeInit + $d 0x00002bfc 0 .text.CORET_Int_Enable + $t 0x00002bfc 0 .text.CORET_Int_Enable + $d 0x00002c0c 0 .text.CORET_Int_Enable + $d 0x00002c14 0 .text.CORET_start + $t 0x00002c14 0 .text.CORET_start + $d 0x00002c20 0 .text.CORET_start + $d 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $t 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c30 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c34 0 .text.CORET_TICKINT_Enable + $t 0x00002c34 0 .text.CORET_TICKINT_Enable + $d 0x00002c40 0 .text.CORET_TICKINT_Enable + $d 0x00002c44 0 .text.CORET_reload + $t 0x00002c44 0 .text.CORET_reload + $d 0x00002c50 0 .text.CORET_reload + $d 0x00002c54 0 .text.startup.main + $t 0x00002c54 0 .text.startup.main + $d 0x00002cb4 0 .text.startup.main + $d 0x00002cc0 0 .text.delay_nms + $t 0x00002cc0 0 .text.delay_nms + $d 0x00002cec 0 .text.delay_nus + $t 0x00002cec 0 .text.delay_nus + $d 0x00002d10 0 .text.EPT0_CONFIG + $t 0x00002d10 0 .text.EPT0_CONFIG + $d 0x00002d6c 0 .text.EPT0_CONFIG + $d 0x00002d70 0 .text.BT_CONFIG + $t 0x00002d70 0 .text.BT_CONFIG + $d 0x00002dc8 0 .text.BT_CONFIG + $d 0x00002dd0 0 .text.SYSCON_CONFIG + $t 0x00002dd0 0 .text.SYSCON_CONFIG + $d 0x00002e34 0 .text.APT32F102_init + $t 0x00002e34 0 .text.APT32F102_init + $d 0x00002ea8 0 .text.APT32F102_init + $d 0x00002ebc 0 .text.SYSCONIntHandler + $t 0x00002ebc 0 .text.SYSCONIntHandler + $d 0x00002fa8 0 .text.SYSCONIntHandler + $d 0x00002fac 0 .text.IFCIntHandler + $t 0x00002fac 0 .text.IFCIntHandler + $d 0x00003010 0 .text.IFCIntHandler + $d 0x00003014 0 .text.ADCIntHandler + $t 0x00003014 0 .text.ADCIntHandler + $d 0x00003078 0 .text.ADCIntHandler + $d 0x0000307c 0 .text.EPT0IntHandler + $t 0x0000307c 0 .text.EPT0IntHandler + $d 0x0000321c 0 .text.EPT0IntHandler + $d 0x00003228 0 .text.WWDTHandler + $t 0x00003228 0 .text.WWDTHandler + $d 0x00003258 0 .text.WWDTHandler + $d 0x0000325c 0 .text.GPT0IntHandler + $t 0x0000325c 0 .text.GPT0IntHandler + $d 0x000032d8 0 .text.GPT0IntHandler + $d 0x000032dc 0 .text.RTCIntHandler + $t 0x000032dc 0 .text.RTCIntHandler + $d 0x00003344 0 .text.RTCIntHandler + $d 0x0000334c 0 .text.UART0IntHandler + $t 0x0000334c 0 .text.UART0IntHandler + $d 0x00003384 0 .text.UART0IntHandler + $d 0x00003388 0 .text.UART1IntHandler + $t 0x00003388 0 .text.UART1IntHandler + $d 0x000033c0 0 .text.UART1IntHandler + $d 0x000033c4 0 .text.UART2IntHandler + $t 0x000033c4 0 .text.UART2IntHandler + $d 0x00003444 0 .text.UART2IntHandler + $d 0x00003458 0 .text.SPI0IntHandler + $t 0x00003458 0 .text.SPI0IntHandler + $d 0x0000353c 0 .text.SPI0IntHandler + $d 0x00003540 0 .text.SIO0IntHandler + $t 0x00003540 0 .text.SIO0IntHandler + $d 0x00003590 0 .text.SIO0IntHandler + $d 0x00003594 0 .text.EXI0IntHandler + $t 0x00003594 0 .text.EXI0IntHandler + $d 0x000035c0 0 .text.EXI0IntHandler + $d 0x000035c4 0 .text.EXI1IntHandler + $t 0x000035c4 0 .text.EXI1IntHandler + $d 0x000035f0 0 .text.EXI1IntHandler + $d 0x000035f4 0 .text.EXI2to3IntHandler + $t 0x000035f4 0 .text.EXI2to3IntHandler + $d 0x00003638 0 .text.EXI2to3IntHandler + $d 0x0000363c 0 .text.EXI4to9IntHandler + $t 0x0000363c 0 .text.EXI4to9IntHandler + $d 0x00003694 0 .text.EXI4to9IntHandler + $d 0x00003698 0 .text.EXI10to15IntHandler + $t 0x00003698 0 .text.EXI10to15IntHandler + $d 0x000036f4 0 .text.EXI10to15IntHandler + $d 0x000036f8 0 .text.LPTIntHandler + $t 0x000036f8 0 .text.LPTIntHandler + $d 0x00003728 0 .text.LPTIntHandler + $d 0x0000372c 0 .text.BT0IntHandler + $t 0x0000372c 0 .text.BT0IntHandler + $d 0x00003774 0 .text.BT0IntHandler + $d 0x00003778 0 .text.BT1IntHandler + $t 0x00003778 0 .text.BT1IntHandler + $d 0x000037d4 0 .text.BT1IntHandler + $d 0x000037dc 0 .text.PriviledgeVioHandler + $t 0x000037dc 0 .text.PriviledgeVioHandler + $d 0x000037de 0 .text.PendTrapHandler + $t 0x000037de 0 .text.PendTrapHandler + $d 0x000037e6 0 .text.Trap3Handler + $t 0x000037e6 0 .text.Trap3Handler + $d 0x000037ee 0 .text.Trap2Handler + $t 0x000037ee 0 .text.Trap2Handler + $d 0x000037f6 0 .text.Trap1Handler + $t 0x000037f6 0 .text.Trap1Handler + $d 0x000037fe 0 .text.Trap0Handler + $t 0x000037fe 0 .text.Trap0Handler + $d 0x00003806 0 .text.UnrecExecpHandler + $t 0x00003806 0 .text.UnrecExecpHandler + $d 0x0000380e 0 .text.BreakPointHandler + $t 0x0000380e 0 .text.BreakPointHandler + $d 0x00003816 0 .text.AccessErrHandler + $t 0x00003816 0 .text.AccessErrHandler + $d 0x0000381e 0 .text.IllegalInstrHandler + $t 0x0000381e 0 .text.IllegalInstrHandler + $d 0x00003826 0 .text.MisalignedHandler + $t 0x00003826 0 .text.MisalignedHandler + $d 0x0000382e 0 .text.CNTAIntHandler + $t 0x0000382e 0 .text.CNTAIntHandler + $d 0x00003836 0 .text.I2CIntHandler + $t 0x00003836 0 .text.I2CIntHandler + $d 0x00003840 0 .text.__divsi3 + $t 0x00003840 0 .text.__divsi3 + $d 0x00003860 0 .text.__divsi3 + $d 0x00003864 0 .text.__udivsi3 + $t 0x00003864 0 .text.__udivsi3 + $d 0x00003884 0 .text.__udivsi3 + $d 0x00003888 0 .text.__umodsi3 + $t 0x00003888 0 .text.__umodsi3 + $d 0x000038a8 0 .text.__umodsi3 + $d 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000038b4 0 .text.UARTx_Init + $t 0x000038b4 0 .text.UARTx_Init + $d 0x00003990 0 .text.UARTx_Init + $d 0x000039bc 0 .text.UART2_RecvINT_Processing + $t 0x000039bc 0 .text.UART2_RecvINT_Processing + $d 0x00003a18 0 .text.UART2_RecvINT_Processing + $d 0x00003a28 0 .text.UART2_TASK + $t 0x00003a28 0 .text.UART2_TASK + $d 0x00003ab8 0 .text.UART2_TASK + $d 0x00003ac4 0 .text.MCU485_SendData + $t 0x00003ac4 0 .text.MCU485_SendData + $d 0x00003b40 0 .text.MCU485_SendData + $d 0x00003b4c 0 .text.Dbg_Println + $t 0x00003b4c 0 .text.Dbg_Println + $d 0x00003b58 0 .text.Dbg_Print_Buff + $t 0x00003b58 0 .text.Dbg_Print_Buff + $d 0x00003b5c 0 .text.Touch_Key_Init + $t 0x00003b5c 0 .text.Touch_Key_Init + $d 0x00003bbc 0 .text.Touch_Key_Init + $d 0x00003bd4 0 .text.TouchKey_RS485_Printf + $t 0x00003bd4 0 .text.TouchKey_RS485_Printf + $d 0x00003cfc 0 .text.TouchKey_RS485_Printf + $d 0x00003d0c 0 .text.Get_TouchKey_CH_State + $t 0x00003d0c 0 .text.Get_TouchKey_CH_State + $d 0x00003d18 0 .text.Get_TouchKey_CH_State + $t 0x00003d1e 0 .text.Get_TouchKey_CH_State + $d 0x00003d44 0 .text.Get_TouchKey_CH_State + $d 0x00003d48 0 .text.Touch_Key_Event_Handling + $t 0x00003d48 0 .text.Touch_Key_Event_Handling + $d 0x00003df0 0 .text.Touch_Key_Event_Handling + $d 0x00003df4 0 .text.TouchKey_Set_Interface_Task + $t 0x00003df4 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e24 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e30 0 .text.Touch_Key_Task + $t 0x00003e30 0 .text.Touch_Key_Task + $d 0x00003ef8 0 .text.Touch_Key_Task + $d 0x00003f08 0 .text.TouchKey_CheckSum + $t 0x00003f08 0 .text.TouchKey_CheckSum + $d 0x00003f20 0 .text.TouchKey_Comm_Reply + $t 0x00003f20 0 .text.TouchKey_Comm_Reply + $d 0x00003f98 0 .text.TouchKey_Comm_Reply + $d 0x00003fa4 0 .text.TouchKey_SetPara_Processing + $t 0x00003fa4 0 .text.TouchKey_SetPara_Processing + $d 0x00004048 0 .text.TouchKey_SetPara_Processing + $d 0x0000405c 0 .text.TouchKey_ReadPara_Processing + $t 0x0000405c 0 .text.TouchKey_ReadPara_Processing + $d 0x00004138 0 .text.TouchKey_ReadPara_Processing + $d 0x00004140 0 .text.TouchKey_DugPrintf_Processing + $t 0x00004140 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004174 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004178 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004178 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000423c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004244 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004244 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004260 0 .text.TouchKey_Comm_Processing + $t 0x00004260 0 .text.TouchKey_Comm_Processing + $d 0x000042ee 0 .text.TouchKey_Comm_Processing + $t 0x000042f4 0 .text.TouchKey_Comm_Processing + $d 0x0000431c 0 .text.TouchKey_Comm_Processing + $d 0x00004338 0 .text.EEPROM_CheckSum + $t 0x00004338 0 .text.EEPROM_CheckSum + $d 0x00004350 0 .text.EEPROM_ReadParaInfo + $t 0x00004350 0 .text.EEPROM_ReadParaInfo + $d 0x000043bc 0 .text.EEPROM_ReadParaInfo + $d 0x000043c4 0 .text.EEPROM_WriteParaInfo + $t 0x000043c4 0 .text.EEPROM_WriteParaInfo + $d 0x00004404 0 .text.EEPROM_WriteParaInfo + $d 0x00004408 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004408 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004470 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004478 0 .text.EEPROM_Default_ParaInfo + $t 0x00004478 0 .text.EEPROM_Default_ParaInfo + $d 0x00004490 0 .text.EEPROM_Init + $t 0x00004490 0 .text.EEPROM_Init + $d 0x000044d4 0 .text.EEPROM_Init + $d 0x000044e0 0 .text.EEPROM_WriteTouchPara + $t 0x000044e0 0 .text.EEPROM_WriteTouchPara + $d 0x00004540 0 .text.EEPROM_WriteTouchPara + $d 0x0000454c 0 .text.EEPROM_ReadTouchPara + $t 0x0000454c 0 .text.EEPROM_ReadTouchPara + $d 0x000045e4 0 .text.EEPROM_ReadTouchPara + $d 0x000045f8 0 .text.EEPROM_Validate_TouchPara + $t 0x000045f8 0 .text.EEPROM_Validate_TouchPara + $d 0x0000469c 0 .text.EEPROM_Validate_TouchPara + $d 0x000046a0 0 .text.EEPROM_Default_TouchPara + $t 0x000046a0 0 .text.EEPROM_Default_TouchPara + $d 0x000046e0 0 .text.EEPROM_TouchPara_Printf + $t 0x000046e0 0 .text.EEPROM_TouchPara_Printf + $d 0x00004744 0 .text.EEPROM_TouchPara_Printf + $d 0x00004760 0 .text.ADC_Init + $t 0x00004760 0 .text.ADC_Init + $d 0x000047b8 0 .text.ADC_Init + $d 0x000047bc 0 .text.Thermistor_Array_Transform + $t 0x000047bc 0 .text.Thermistor_Array_Transform + $d 0x000047fc 0 .text.Thermistor_Array_Transform + $d 0x00004804 0 .text.Calculate_ADC_Sample_Average + $t 0x00004804 0 .text.Calculate_ADC_Sample_Average + $d 0x000048b0 0 .text.Calculate_ADC_Sample_Average + $d 0x000048c4 0 .text.ADC_Sample_Task + $t 0x000048c4 0 .text.ADC_Sample_Task + $d 0x00004964 0 .text.ADC_Sample_Task + $d 0x00004974 0 .text.Get_Temp_Val + $t 0x00004974 0 .text.Get_Temp_Val + $d 0x00004980 0 .text.Get_Temp_Val + $d 0x00004984 0 .text.HT1621_WR_Data + $t 0x00004984 0 .text.HT1621_WR_Data + $d 0x000049c8 0 .text.HT1621_WR_Data + $d 0x000049cc 0 .text.HT1621_WR_CMD + $t 0x000049cc 0 .text.HT1621_WR_CMD + $d 0x000049f8 0 .text.HT1621_WR_CMD + $d 0x000049fc 0 .text.HT1621_Init + $t 0x000049fc 0 .text.HT1621_Init + $d 0x00004a84 0 .text.HT1621_Init + $d 0x00004a88 0 .text.HT1621_Clear + $t 0x00004a88 0 .text.HT1621_Clear + $d 0x00004ad0 0 .text.HT1621_Clear + $d 0x00004ad8 0 .text.HT1621_ALLON + $t 0x00004ad8 0 .text.HT1621_ALLON + $d 0x00004b14 0 .text.HT1621_ALLON + $d 0x00004b18 0 .text.HT1621_Refresh_Data + $t 0x00004b18 0 .text.HT1621_Refresh_Data + $d 0x00004b5c 0 .text.HT1621_Refresh_Data + $d 0x00004b64 0 .text.Set_Temperature_Display + $t 0x00004b64 0 .text.Set_Temperature_Display + $d 0x00004be4 0 .text.Set_Temperature_Display + $d 0x00004bec 0 .text.Local_Temperature_Display + $t 0x00004bec 0 .text.Local_Temperature_Display + $d 0x00004c64 0 .text.Local_Temperature_Display + $d 0x00004c6c 0 .text.Control_Mode + $t 0x00004c6c 0 .text.Control_Mode + $d 0x00004cb0 0 .text.Control_Mode + $d 0x00004cb4 0 .text.Control_wind_velocity + $t 0x00004cb4 0 .text.Control_wind_velocity + $d 0x00004cc0 0 .text.Control_wind_velocity + $t 0x00004cc4 0 .text.Control_wind_velocity + $d 0x00004d20 0 .text.Control_wind_velocity + $d 0x00004d24 0 .text.Control_Prompt_Text + $t 0x00004d24 0 .text.Control_Prompt_Text + $d 0x00004d64 0 .text.Control_Prompt_Text + $d 0x00004d68 0 .text.Controlled_Buzzer + $t 0x00004d68 0 .text.Controlled_Buzzer + $d 0x00004da8 0 .text.Controlled_Buzzer + $d 0x00004db0 0 .text.Controlled_LCD_Backlight + $t 0x00004db0 0 .text.Controlled_LCD_Backlight + $d 0x00004dcc 0 .text.Controlled_LCD_Backlight + $d 0x00004dd4 0 .text.Controlled_Key_Backlight + $t 0x00004dd4 0 .text.Controlled_Key_Backlight + $d 0x00004df0 0 .text.Controlled_Key_Backlight + $d 0x00004df8 0 .text.Set_Device_ADDR + $t 0x00004df8 0 .text.Set_Device_ADDR + $d 0x00004e88 0 .text.Set_Device_ADDR + $d 0x00004e90 0 .text.Set_Temp_Difference + $t 0x00004e90 0 .text.Set_Temp_Difference + $d 0x00004eec 0 .text.Set_Temp_Difference + $d 0x00004ef4 0 .text.HT1621_Refresh_Task + $t 0x00004ef4 0 .text.HT1621_Refresh_Task + $d 0x00004f44 0 .text.HT1621_Refresh_Task + $d 0x00004f54 0 .text.MODEL_Ctrl_Init + $t 0x00004f54 0 .text.MODEL_Ctrl_Init + $d 0x00004f78 0 .text.MODEL_Ctrl_Init + $d 0x00004f80 0 .text.Control_Mode_Detection + $t 0x00004f80 0 .text.Control_Mode_Detection + $d 0x00005024 0 .text.Control_Mode_Detection + $d 0x00005034 0 .text.TemCtrl_Init + $t 0x00005034 0 .text.TemCtrl_Init + $d 0x00005158 0 .text.TemCtrl_Init + $d 0x00005170 0 .text.TemCtrl_Model_Set + $t 0x00005170 0 .text.TemCtrl_Model_Set + $d 0x000051b4 0 .text.TemCtrl_Model_Set + $d 0x000051bc 0 .text.TemCtrl_Fan_Set + $t 0x000051bc 0 .text.TemCtrl_Fan_Set + $d 0x000051da 0 .text.TemCtrl_Fan_Set + $t 0x000051de 0 .text.TemCtrl_Fan_Set + $d 0x00005200 0 .text.TemCtrl_Fan_Set + $d 0x00005208 0 .text.TemCtrl_Temperature_Dec + $t 0x00005208 0 .text.TemCtrl_Temperature_Dec + $d 0x00005230 0 .text.TemCtrl_Temperature_Dec + $d 0x00005238 0 .text.TemCtrl_Temperature_Add + $t 0x00005238 0 .text.TemCtrl_Temperature_Add + $d 0x00005260 0 .text.TemCtrl_Temperature_Add + $d 0x00005268 0 .text.TemCtrl_OnOff_Set + $t 0x00005268 0 .text.TemCtrl_OnOff_Set + $d 0x00005294 0 .text.TemCtrl_OnOff_Set + $d 0x0000529c 0 .text.Tem_Valve_Ctrl + $t 0x0000529c 0 .text.Tem_Valve_Ctrl + $d 0x000053b0 0 .text.Tem_Valve_Ctrl + $d 0x000053c8 0 .text.TemCtrl_Pro + $t 0x000053c8 0 .text.TemCtrl_Pro + $d 0x000054fc 0 .text.TemCtrl_Pro + $d 0x00005510 0 .text.KEY1_Model_Press_Fun + $t 0x00005510 0 .text.KEY1_Model_Press_Fun + $d 0x000055d8 0 .text.KEY1_Model_Press_Fun + $d 0x000055f4 0 .text.KEY2_Fan_Press_Fun + $t 0x000055f4 0 .text.KEY2_Fan_Press_Fun + $d 0x000056bc 0 .text.KEY2_Fan_Press_Fun + $d 0x000056d8 0 .text.KEY3_TempAdd_Press_Fun + $t 0x000056d8 0 .text.KEY3_TempAdd_Press_Fun + $d 0x000057c0 0 .text.KEY3_TempAdd_Press_Fun + $d 0x000057dc 0 .text.KEY3_Long_Press_Fun + $t 0x000057dc 0 .text.KEY3_Long_Press_Fun + $d 0x00005838 0 .text.KEY3_Long_Press_Fun + $d 0x00005848 0 .text.KEY4_TempDec_Press_Fun + $t 0x00005848 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000592c 0 .text.KEY4_TempDec_Press_Fun + $d 0x00005948 0 .text.KEY4_Long_Press + $t 0x00005948 0 .text.KEY4_Long_Press + $d 0x000059a4 0 .text.KEY4_Long_Press + $d 0x000059b4 0 .text.KEY5_OnOff_Press_Fun + $t 0x000059b4 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005a40 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005a5c 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00005a5c 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00005aa4 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00005aa8 0 .text.DisPlay_Init + $t 0x00005aa8 0 .text.DisPlay_Init + $d 0x00005ac0 0 .text.DisPlay_Init + $d 0x00005ac8 0 .text.DisPlay_Task + $t 0x00005ac8 0 .text.DisPlay_Task + $d 0x00005db0 0 .text.DisPlay_Task + $d 0x00005de0 0 .text.Debug_Init + $t 0x00005de0 0 .text.Debug_Init + $d 0x00005e0c 0 .text.Debug_Init + $d 0x00005e14 0 .text.Dev_SaveData + $t 0x00005e14 0 .text.Dev_SaveData + $d 0x00005e78 0 .text.Dev_SaveData + $d 0x00005e84 0 .text.Debug_Task + $t 0x00005e84 0 .text.Debug_Task + $d 0x00005ee0 0 .text.Debug_Task + $d 0x00005ef0 0 .text.get_check_sum + $t 0x00005ef0 0 .text.get_check_sum + $d 0x00005f08 0 .text.uart_receive_input + $t 0x00005f08 0 .text.uart_receive_input + $d 0x00005f3c 0 .text.uart_receive_input + $d 0x00005f4c 0 .text.Queue_Read_Byte + $t 0x00005f4c 0 .text.Queue_Read_Byte + $d 0x00005f70 0 .text.Queue_Read_Byte + $d 0x00005f80 0 .text.with_data_rxbuff + $t 0x00005f80 0 .text.with_data_rxbuff + $d 0x00005f94 0 .text.with_data_rxbuff + $d 0x00005f9c 0 .text.RF_Info_Init + $t 0x00005f9c 0 .text.RF_Info_Init + $d 0x00005fc0 0 .text.RF_Info_Init + $d 0x00005fd0 0 .text.Add_Frame_Head + $t 0x00005fd0 0 .text.Add_Frame_Head + $d 0x00006008 0 .text.Add_Frame_Head + $d 0x00006010 0 .text.Product_Info_Update + $t 0x00006010 0 .text.Product_Info_Update + $d 0x00006088 0 .text.Product_Info_Update + $d 0x000060a4 0 .text.Recv_RFNetState_Ack + $t 0x000060a4 0 .text.Recv_RFNetState_Ack + $d 0x000060d8 0 .text.Recv_RFNetState_Ack + $d 0x000060dc 0 .text.Tem_Fun_Ctrl_Report + $t 0x000060dc 0 .text.Tem_Fun_Ctrl_Report + $d 0x00006184 0 .text.Tem_Fun_Ctrl_Report + $d 0x0000618c 0 .text.data_handle + $t 0x0000618c 0 .text.data_handle + $d 0x000062a8 0 .text.data_handle + $d 0x000062b4 0 .text.zigbee_uart_service + $t 0x000062b4 0 .text.zigbee_uart_service + $d 0x00006374 0 .text.zigbee_uart_service + $d 0x0000637c 0 .text.TemFun_Report_Task + $t 0x0000637c 0 .text.TemFun_Report_Task + $d 0x00006444 0 .text.TemFun_Report_Task + $d 0x0000644c 0 .text.Relay_Init + $t 0x0000644c 0 .text.Relay_Init + $d 0x000064b0 0 .text.Relay_Init + $d 0x000064b8 0 .text.Relay_High + $t 0x000064b8 0 .text.Relay_High + $d 0x000064d8 0 .text.Relay_High + $d 0x000064dc 0 .text.Relay_Mid + $t 0x000064dc 0 .text.Relay_Mid + $d 0x000064fc 0 .text.Relay_Mid + $d 0x00006500 0 .text.Relay_Low + $t 0x00006500 0 .text.Relay_Low + $d 0x00006520 0 .text.Relay_Low + $d 0x00006524 0 .text.Relay_Stop + $t 0x00006524 0 .text.Relay_Stop + $d 0x00006544 0 .text.Relay_Stop + $d 0x00006548 0 .text.NetCRC16 + $t 0x00006548 0 .text.NetCRC16 + $d 0x0000658c 0 .text.NetCRC16 + $d 0x00006594 0 .text.GetCRC16 + $t 0x00006594 0 .text.GetCRC16 + $d 0x000065c8 0 .text.GetCRC16 + $d 0x000065d0 0 .text.SOR_CRC + $t 0x000065d0 0 .text.SOR_CRC + $d 0x000065e8 0 .text.Rs485AskCycleSend + $t 0x000065e8 0 .text.Rs485AskCycleSend + $d 0x000066cc 0 .text.Rs485AskCycleSend + $d 0x000066d4 0 .text.Rs485AskCtrlSend + $t 0x000066d4 0 .text.Rs485AskCtrlSend + $d 0x00006720 0 .text.Rs485AskCtrlSend + $d 0x00006724 0 .text.Rs485AskReadSend + $t 0x00006724 0 .text.Rs485AskReadSend + $d 0x00006774 0 .text.Rs485AskReadSend + $d 0x00006778 0 .text.Temp_Rec_Analysis + $t 0x00006778 0 .text.Temp_Rec_Analysis + $d 0x000067f2 0 .text.Temp_Rec_Analysis + $t 0x000067f6 0 .text.Temp_Rec_Analysis + $d 0x000068bc 0 .text.Temp_Rec_Analysis + $t 0x000068c0 0 .text.Temp_Rec_Analysis + $d 0x000068d4 0 .text.Temp_Rec_Analysis + $d 0x000068e0 0 .text.Tem_Rs485_Rec_Pro + $t 0x000068e0 0 .text.Tem_Rs485_Rec_Pro + $d 0x00006998 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x000069a8 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000069a8 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x000069a8 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000069b4 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000069b8 0 .text.tk_clk_config + $t 0x000069b8 0 .text.tk_clk_config + $d 0x000069dc 0 .text.tk_clk_config + $d 0x000069e0 0 .text.TK_con0_config + $t 0x000069e0 0 .text.TK_con0_config + $d 0x00006a90 0 .text.TK_con0_config + $d 0x00006a9c 0 .text.TK_IO_Enable + $t 0x00006a9c 0 .text.TK_IO_Enable + $d 0x00006ae0 0 .text.TK_IO_Enable + $t 0x00006af0 0 .text.TK_IO_Enable + $d 0x00006bc4 0 .text.TK_IO_Enable + $d 0x00006bd0 0 .text.TK_Sampling_prog + $t 0x00006bd0 0 .text.TK_Sampling_prog + $d 0x00006c18 0 .text.TK_Sampling_prog + $d 0x00006c28 0 .text.TKEYIntHandler + $t 0x00006c28 0 .text.TKEYIntHandler + $d 0x00006ca4 0 .text.TKEYIntHandler + $d 0x00006cb0 0 .text.get_key_number + $t 0x00006cb0 0 .text.get_key_number + $d 0x00006cd4 0 .text.get_key_number + $d 0x00006cd8 0 .text.TK_Baseline_prog + $t 0x00006cd8 0 .text.TK_Baseline_prog + $d 0x00006d40 0 .text.TK_Baseline_prog + $d 0x00006d5c 0 .text.TK_Scan_Start + $t 0x00006d5c 0 .text.TK_Scan_Start + $d 0x00006d74 0 .text.TK_Scan_Start + $d 0x00006d7c 0 .text.TK_Keymap_prog + $t 0x00006d7c 0 .text.TK_Keymap_prog + $d 0x00006ec4 0 .text.TK_Keymap_prog + $d 0x00006efc 0 .text.TK_overflow_predict + $t 0x00006efc 0 .text.TK_overflow_predict + $d 0x00006fe4 0 .text.TK_overflow_predict + $d 0x00007018 0 .text.TK_Baseline_tracking + $t 0x00007018 0 .text.TK_Baseline_tracking + $d 0x000071bc 0 .text.TK_Baseline_tracking + $d 0x000071e8 0 .text.TK_result_prog + $t 0x000071e8 0 .text.TK_result_prog + $d 0x00007228 0 .text.TK_result_prog + $d 0x0000723c 0 .text.CORETHandler + $t 0x0000723c 0 .text.CORETHandler + $d 0x0000729c 0 .text.CORETHandler + $d 0x000072b4 0 .text.get_key_seq + $t 0x000072b4 0 .text.get_key_seq + $d 0x000072e0 0 .text.get_key_seq + $d 0x000072e8 0 .text.CORET_CONFIG + $t 0x000072e8 0 .text.CORET_CONFIG + $d 0x00007318 0 .text.CORET_CONFIG + $d 0x00007320 0 .text.tk_chxval_seqxcon_clr + $t 0x00007320 0 .text.tk_chxval_seqxcon_clr + $d 0x00007338 0 .text.tk_chxval_seqxcon_clr + $d 0x0000733c 0 .text.tk_reserved_init + $t 0x0000733c 0 .text.tk_reserved_init + $d 0x00007350 0 .text.tk_reserved_init + $d 0x00007364 0 .text.tk_init + $t 0x00007364 0 .text.tk_init + $d 0x000073a0 0 .text.tk_init + $t 0x000073a6 0 .text.tk_init + $d 0x00007490 0 .text.tk_init + $d 0x000074e4 0 .text.std_clk_calib + $t 0x000074e4 0 .text.std_clk_calib + $d 0x0000772c 0 .text.std_clk_calib + __func__.6297 0x00007768 O 28 .rodata + __func__.6335 0x00007784 O 25 .rodata + bp 0x00007adc O 16 .rodata + dp_l 0x00007aec O 16 .rodata + dp_h 0x00007afc O 16 .rodata + NUM.6322 0x200000b0 O 1 .bss + adc_tick.6236 0x200000d0 O 4 .bss + tick.6261 0x200000d4 O 4 .bss + rx_in.6298 0x200000da O 2 .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_PullHighLow_DIS 0x00001e7c F 14 .text.GPIO_PullHighLow_DIS + GPIO_DriveStrength_EN 0x00001e8a F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e98 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001ea0 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001ea8 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00001ebe F 16 .text.GPIO_Read_Status + 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 + UART0_DeInit 0x00001f90 F 24 .text.UART0_DeInit + UART1_DeInit 0x00001fa8 F 24 .text.UART1_DeInit + UART2_DeInit 0x00001fc0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00001fd8 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00001ff4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002010 F 236 .text.UART_IO_Init + UARTInit 0x000020fc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x0000210c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x0000211c F 30 .text.UARTTransmit + EPT_Software_Prg 0x0000213c F 32 .text.EPT_Software_Prg + EPT_Start 0x0000215c F 40 .text.EPT_Start + EPT_Stop 0x00002184 F 40 .text.EPT_Stop + EPT_IO_SET 0x000021ac F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x000023e4 F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x0000241c F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x000024f4 F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x00002510 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002574 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x000025a4 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x000025d0 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000025dc F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00002604 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002618 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002630 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002644 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x000026c0 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002858 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x000029d8 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a78 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002aa4 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002be4 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002bfc F 24 .text.CORET_Int_Enable + CORET_start 0x00002c14 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002c24 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c34 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c44 F 16 .text.CORET_reload + main 0x00002c54 F 108 .text.startup.main + delay_nms 0x00002cc0 F 44 .text.delay_nms + delay_nus 0x00002cec F 34 .text.delay_nus + EPT0_CONFIG 0x00002d10 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002d70 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002dd0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002e34 F 136 .text.APT32F102_init + SYSCONIntHandler 0x00002ebc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002fac F 104 .text.IFCIntHandler + ADCIntHandler 0x00003014 F 104 .text.ADCIntHandler + EPT0IntHandler 0x0000307c F 428 .text.EPT0IntHandler + WWDTHandler 0x00003228 F 52 .text.WWDTHandler + GPT0IntHandler 0x0000325c F 128 .text.GPT0IntHandler + RTCIntHandler 0x000032dc F 112 .text.RTCIntHandler + UART0IntHandler 0x0000334c F 60 .text.UART0IntHandler + UART1IntHandler 0x00003388 F 60 .text.UART1IntHandler + UART2IntHandler 0x000033c4 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00003458 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00003540 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003594 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x000035c4 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000035f4 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x0000363c F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003698 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000036f8 F 52 .text.LPTIntHandler + BT0IntHandler 0x0000372c F 76 .text.BT0IntHandler + BT1IntHandler 0x00003778 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x000037dc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000037de F 8 .text.PendTrapHandler + Trap3Handler 0x000037e6 F 8 .text.Trap3Handler + Trap2Handler 0x000037ee F 8 .text.Trap2Handler + Trap1Handler 0x000037f6 F 8 .text.Trap1Handler + Trap0Handler 0x000037fe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003806 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000380e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003816 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000381e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003826 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000382e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003836 F 8 .text.I2CIntHandler + __divsi3 0x00003840 F 36 .text.__divsi3 + __udivsi3 0x00003864 F 36 .text.__udivsi3 + __umodsi3 0x00003888 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000038ac F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x000038b4 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x000039bc F 108 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003a28 F 156 .text.UART2_TASK + MCU485_SendData 0x00003ac4 F 136 .text.MCU485_SendData + Dbg_Println 0x00003b4c F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003b58 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003b5c F 120 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003bd4 F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003d0c F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003d48 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003df4 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003e30 F 216 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003f08 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003f20 F 132 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003fa4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x0000405c F 228 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00004140 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004178 F 204 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004244 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004260 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004338 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004350 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000043c4 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004408 F 112 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004478 F 24 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x00004490 F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000044e0 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x0000454c F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x000045f8 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000046a0 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x000046e0 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004760 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000047bc F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004804 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000048c4 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004974 F 16 .text.Get_Temp_Val + HT1621_WR_Data 0x00004984 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000049cc F 48 .text.HT1621_WR_CMD + HT1621_Init 0x000049fc F 140 .text.HT1621_Init + HT1621_Clear 0x00004a88 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00004ad8 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00004b18 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x00004b64 F 136 .text.Set_Temperature_Display + Local_Temperature_Display 0x00004bec F 128 .text.Local_Temperature_Display + Control_Mode 0x00004c6c F 72 .text.Control_Mode + Control_wind_velocity 0x00004cb4 F 112 .text.Control_wind_velocity + Control_Prompt_Text 0x00004d24 F 68 .text.Control_Prompt_Text + Controlled_Buzzer 0x00004d68 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00004db0 F 36 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00004dd4 F 36 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00004df8 F 152 .text.Set_Device_ADDR + Set_Temp_Difference 0x00004e90 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00004ef4 F 96 .text.HT1621_Refresh_Task + MODEL_Ctrl_Init 0x00004f54 F 44 .text.MODEL_Ctrl_Init + Control_Mode_Detection 0x00004f80 F 180 .text.Control_Mode_Detection + TemCtrl_Init 0x00005034 F 316 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00005170 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x000051bc F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00005208 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00005238 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00005268 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x0000529c F 300 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000053c8 F 328 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00005510 F 228 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x000055f4 F 228 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x000056d8 F 260 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x000057dc F 108 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00005848 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00005948 F 108 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x000059b4 F 168 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00005a5c F 76 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00005aa8 F 32 .text.DisPlay_Init + DisPlay_Task 0x00005ac8 F 792 .text.DisPlay_Task + Debug_Init 0x00005de0 F 52 .text.Debug_Init + Dev_SaveData 0x00005e14 F 112 .text.Dev_SaveData + Debug_Task 0x00005e84 F 108 .text.Debug_Task + get_check_sum 0x00005ef0 F 22 .text.get_check_sum + uart_receive_input 0x00005f08 F 68 .text.uart_receive_input + Queue_Read_Byte 0x00005f4c F 52 .text.Queue_Read_Byte + with_data_rxbuff 0x00005f80 F 28 .text.with_data_rxbuff + RF_Info_Init 0x00005f9c F 52 .text.RF_Info_Init + Add_Frame_Head 0x00005fd0 F 64 .text.Add_Frame_Head + Product_Info_Update 0x00006010 F 144 .text.Product_Info_Update + Recv_RFNetState_Ack 0x000060a4 F 56 .text.Recv_RFNetState_Ack + Tem_Fun_Ctrl_Report 0x000060dc F 176 .text.Tem_Fun_Ctrl_Report + data_handle 0x0000618c F 296 .text.data_handle + zigbee_uart_service 0x000062b4 F 200 .text.zigbee_uart_service + TemFun_Report_Task 0x0000637c F 208 .text.TemFun_Report_Task + Relay_Init 0x0000644c F 108 .text.Relay_Init + Relay_High 0x000064b8 F 36 .text.Relay_High + Relay_Mid 0x000064dc F 36 .text.Relay_Mid + Relay_Low 0x00006500 F 36 .text.Relay_Low + Relay_Stop 0x00006524 F 36 .text.Relay_Stop + NetCRC16 0x00006548 F 76 .text.NetCRC16 + GetCRC16 0x00006594 F 60 .text.GetCRC16 + SOR_CRC 0x000065d0 F 22 .text.SOR_CRC + Rs485AskCycleSend 0x000065e8 F 236 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x000066d4 F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00006724 F 84 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x00006778 F 360 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000068e0 F 200 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x000069b8 F 40 .text.tk_clk_config + TK_con0_config 0x000069e0 F 188 .text.TK_con0_config + TK_IO_Enable 0x00006a9c F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x00006bd0 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00006c28 F 136 .text.TKEYIntHandler + get_key_number 0x00006cb0 F 40 .text.get_key_number + TK_Baseline_prog 0x00006cd8 F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00006d5c F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00006d7c F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00006efc F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00007018 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x000071e8 F 84 .text.TK_result_prog + CORETHandler 0x0000723c F 120 .text.CORETHandler + get_key_seq 0x000072b4 F 52 .text.get_key_seq + CORET_CONFIG 0x000072e8 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00007320 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x0000733c F 40 .text.tk_reserved_init + tk_init 0x00007364 F 368 .text.tk_init + std_clk_calib 0x000074e4 F 644 .text.std_clk_calib + R_Array 0x0000779e O 820 .rodata + Diaital 0x00007ad2 O 10 .rodata + __thenan_df 0x00007b0c O 20 .rodata + __clz_tab 0x00007b20 O 256 .rodata + _end_rodata 0x00007ff8 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 + MCU_Touch_CH 0x20000068 O 5 .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 + Sav_Temp 0x200000a4 O 4 .bss + _bss_start 0x200000a4 0 .bss + Sys_RSR 0x200000a8 O 4 .bss + test_tick 0x200000ac O 4 .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 + Dbg_Switch 0x200000cc O 4 .bss + seq_num 0x200000d8 O 2 .bss + Press_debounce_data 0x200000dc O 1 .bss + TK_Lowpower_mode 0x200000dd O 1 .bss + TK_Lowpower_level 0x200000de O 1 .bss + TK_longpress_time 0x200000e0 O 4 .bss + Release_debounce_data 0x200000e4 O 1 .bss + Key_mode 0x200000e5 O 1 .bss + TK_icon 0x200000e6 O 34 .bss + MultiTimes_Filter 0x20000108 O 1 .bss + Base_Speed 0x20000109 O 1 .bss + TK_IO_ENABLE 0x2000010c O 4 .bss + Valid_Key_Num 0x20000110 O 1 .bss + TK_senprd 0x20000112 O 34 .bss + TK_Wakeup_level 0x20000134 O 1 .bss + TK_Triggerlevel 0x20000136 O 34 .bss + TK_EC_LEVEL 0x20000158 O 2 .bss + TK_FVR_LEVEL 0x2000015a O 2 .bss + TK_BaseCnt 0x2000015c O 4 .bss + TK_PSEL_MODE 0x20000160 O 2 .bss + R_CMPB_BUF 0x20000164 O 4 .bss + R_CMPA_BUF 0x20000168 O 4 .bss + R_SIORX_buf 0x2000016c O 40 .bss + g_uart 0x20000194 O 345 .bss + touch_para 0x200002f0 O 28 .bss + touch_state 0x2000030c O 20 .bss + g_key 0x20000320 O 48 .bss + g_eeprom 0x20000350 O 6 .bss + g_adc 0x20000356 O 55 .bss + HT1621 0x20000390 O 60 .bss + detect_inf 0x200003cc O 8 .bss + TempCtrl 0x200003d4 O 31 .bss + Debug_Inf 0x200003f3 O 12 .bss + zigbee_queue_buf 0x20000400 O 265 .bss + queue_in 0x2000050c O 4 .bss + zigbee_uart_rx_buf 0x20000510 O 137 .bss + queue_out 0x2000059c O 4 .bss + rf_info 0x200005a0 O 3 .bss + zigbee_uart_tx_buf 0x200005a3 O 137 .bss + baseline_data0 0x2000062c O 34 .bss + TK_Postive_build2 0x2000064e O 17 .bss + Key_Map1 0x20000660 O 4 .bss + offset_data2_abs 0x20000664 O 34 .bss + scan_f 0x20000686 O 1 .bss + offset_data1_abs 0x20000688 O 34 .bss + Release_debounce0 0x200006aa O 17 .bss + Key_Map0 0x200006bc O 4 .bss + bsae_over_f 0x200006c0 O 1 .bss + scan_cnt 0x200006c2 O 2 .bss + Press_debounce0 0x200006c4 O 17 .bss + offset_data0 0x200006d6 O 34 .bss + sampling_data1 0x200006f8 O 34 .bss + Key_Map2 0x2000071c O 4 .bss + Release_debounce1 0x20000720 O 17 .bss + tk_overflow_f 0x20000731 O 1 .bss + TK_Negtive_build2 0x20000732 O 17 .bss + base_update_f 0x20000743 O 1 .bss + TK_Postive_build1 0x20000744 O 17 .bss + time_cnt 0x20000758 O 4 .bss + lpt_scan_pend_cnt 0x2000075c O 2 .bss + TK_track_cnt 0x2000075e O 1 .bss + Key_Map 0x20000760 O 4 .bss + baseline_data1 0x20000764 O 34 .bss + TK_Postive_build0 0x20000786 O 17 .bss + sampling_data2 0x20000798 O 34 .bss + offset_data1 0x200007ba O 34 .bss + TK_ovrdect_cnt 0x200007dc O 1 .bss + Press_debounce2 0x200007dd O 17 .bss + TK_Negtive_build1 0x200007ee O 17 .bss + tk_num 0x200007ff O 1 .bss + TK_Negtive_build0 0x20000800 O 17 .bss + Press_debounce1 0x20000811 O 17 .bss + Release_debounce2 0x20000822 O 17 .bss + r_Key_Map_Temp 0x20000834 O 4 .bss + tk_seque 0x20000838 O 17 .bss + scan_step 0x20000849 O 1 .bss + baseline_data2 0x2000084a O 34 .bss + tk_sampling_max 0x2000086c O 34 .bss + offset_data0_abs 0x2000088e O 34 .bss + offset_data2 0x200008b0 O 34 .bss + sampling_data0 0x200008d2 O 34 .bss + _ebss 0x200008f4 0 .bss + _end 0x200008f4 0 .bss + end 0x200008f4 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: 0x00007ff8, 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 1233 .text pow.o + 0x00000b5e 0x00000006 Code RO 1241 .text fabs.o + 0x00000b64 0x00000020 Code RO 1247 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1254 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1265 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1270 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1277 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1284 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1291 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1298 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1305 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1312 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1319 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1326 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1340 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1347 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1354 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1360 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1367 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1374 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1395 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1400 .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 137 .text.GPIO_PullHighLow_DIS Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e98 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001ea0 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001ea8 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001ebe 0x00000010 Code RO 151 .text.GPIO_Read_Status 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 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fa8 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fc0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fd8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001ff4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002010 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000020fc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x0000210c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x0000211c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x0000213c 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x0000215c 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x00002184 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000021ac 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x000023e4 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x0000241c 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x000024f4 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x00002510 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002574 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002584 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x000025a4 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x000025d0 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000025dc 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00002604 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002618 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002630 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002644 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x000026c0 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002858 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x000029d8 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a78 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002aa4 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002be4 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002bfc 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c14 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002c24 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c34 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c44 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c54 0x0000006c Code RO 705 .text.startup.main Obj/main.o + 0x00002cc0 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002cec 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002d10 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002d70 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002dd0 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002e34 0x00000088 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002ebc 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002fac 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003014 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x0000307c 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003228 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x0000325c 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000032dc 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x0000334c 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003388 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000033c4 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00003458 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00003540 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003594 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x000035c4 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000035f4 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x0000363c 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003698 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000036f8 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x0000372c 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003778 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000037dc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000037de 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000037e6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000037ee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000037f6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000037fe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003806 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000380e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003816 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000381e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003826 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000382e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003836 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003840 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003864 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003888 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000038ac 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000038b4 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000039bc 0x0000006c Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003a28 0x0000009c Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003ac4 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003b4c 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003b58 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003b5c 0x00000078 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003bd4 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003d0c 0x0000003c Code RO 865 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003d48 0x000000ac Code RO 867 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003df4 0x0000003c Code RO 868 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003e30 0x000000d8 Code RO 869 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003f08 0x00000018 Code RO 870 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003f20 0x00000084 Code RO 871 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003fa4 0x000000b8 Code RO 872 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x0000405c 0x000000e4 Code RO 873 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00004140 0x00000038 Code RO 874 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004178 0x000000cc Code RO 875 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004244 0x0000001a Code RO 876 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004260 0x000000d8 Code RO 877 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004338 0x00000016 Code RO 896 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004350 0x00000074 Code RO 897 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000043c4 0x00000044 Code RO 898 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004408 0x00000070 Code RO 900 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004478 0x00000018 Code RO 901 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004490 0x00000050 Code RO 902 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000044e0 0x0000006c Code RO 903 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x0000454c 0x000000ac Code RO 904 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x000045f8 0x000000a8 Code RO 905 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000046a0 0x00000040 Code RO 906 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x000046e0 0x00000080 Code RO 907 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004760 0x0000005c Code RO 925 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000047bc 0x00000048 Code RO 926 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004804 0x000000c0 Code RO 927 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000048c4 0x000000b0 Code RO 928 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004974 0x00000010 Code RO 929 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004984 0x00000048 Code RO 947 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000049cc 0x00000030 Code RO 948 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x000049fc 0x0000008c Code RO 949 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00004a88 0x00000050 Code RO 953 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00004ad8 0x00000040 Code RO 954 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00004b18 0x0000004c Code RO 955 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x00004b64 0x00000088 Code RO 956 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004bec 0x00000080 Code RO 957 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004c6c 0x00000048 Code RO 958 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00004cb4 0x00000070 Code RO 959 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00004d24 0x00000044 Code RO 960 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00004d68 0x00000048 Code RO 961 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00004db0 0x00000024 Code RO 962 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00004dd4 0x00000024 Code RO 963 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00004df8 0x00000098 Code RO 964 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00004e90 0x00000064 Code RO 965 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00004ef4 0x00000060 Code RO 966 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00004f54 0x0000002c Code RO 986 .text.MODEL_Ctrl_Init Obj/SYSTEM_model_detection.o + 0x00004f80 0x000000b4 Code RO 987 .text.Control_Mode_Detection Obj/SYSTEM_model_detection.o + 0x00005034 0x0000013c Code RO 1004 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00005170 0x0000004c Code RO 1005 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x000051bc 0x0000004c Code RO 1006 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00005208 0x00000030 Code RO 1007 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00005238 0x00000030 Code RO 1008 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00005268 0x00000034 Code RO 1009 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x0000529c 0x0000012c Code RO 1010 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000053c8 0x00000148 Code RO 1011 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00005510 0x000000e4 Code RO 1029 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x000055f4 0x000000e4 Code RO 1030 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x000056d8 0x00000104 Code RO 1031 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x000057dc 0x0000006c Code RO 1032 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005848 0x00000100 Code RO 1033 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005948 0x0000006c Code RO 1034 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x000059b4 0x000000a8 Code RO 1035 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005a5c 0x0000004c Code RO 1051 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00005aa8 0x00000020 Code RO 1052 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00005ac8 0x00000318 Code RO 1053 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00005de0 0x00000034 Code RO 1070 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00005e14 0x00000070 Code RO 1071 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00005e84 0x0000006c Code RO 1072 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00005ef0 0x00000016 Code RO 1089 .text.get_check_sum Obj/USRCTRL_rf_uart_protocol.o + 0x00005f08 0x00000044 Code RO 1090 .text.uart_receive_input Obj/USRCTRL_rf_uart_protocol.o + 0x00005f4c 0x00000034 Code RO 1091 .text.Queue_Read_Byte Obj/USRCTRL_rf_uart_protocol.o + 0x00005f80 0x0000001c Code RO 1092 .text.with_data_rxbuff Obj/USRCTRL_rf_uart_protocol.o + 0x00005f9c 0x00000034 Code RO 1093 .text.RF_Info_Init Obj/USRCTRL_rf_uart_protocol.o + 0x00005fd0 0x00000040 Code RO 1094 .text.Add_Frame_Head Obj/USRCTRL_rf_uart_protocol.o + 0x00006010 0x00000094 Code RO 1095 .text.Product_Info_Update Obj/USRCTRL_rf_uart_protocol.o + 0x000060a4 0x00000038 Code RO 1096 .text.Recv_RFNetState_Ack Obj/USRCTRL_rf_uart_protocol.o + 0x000060dc 0x000000b0 Code RO 1097 .text.Tem_Fun_Ctrl_Report Obj/USRCTRL_rf_uart_protocol.o + 0x0000618c 0x00000128 Code RO 1099 .text.data_handle Obj/USRCTRL_rf_uart_protocol.o + 0x000062b4 0x000000c8 Code RO 1100 .text.zigbee_uart_service Obj/USRCTRL_rf_uart_protocol.o + 0x0000637c 0x000000d0 Code RO 1101 .text.TemFun_Report_Task Obj/USRCTRL_rf_uart_protocol.o + 0x0000644c 0x0000006c Code RO 1119 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x000064b8 0x00000024 Code RO 1120 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x000064dc 0x00000024 Code RO 1121 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x00006500 0x00000024 Code RO 1122 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00006524 0x00000024 Code RO 1123 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00006548 0x0000004c Code RO 1139 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00006594 0x0000003c Code RO 1140 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000065d0 0x00000016 Code RO 1141 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x000065e8 0x000000ec Code RO 1142 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x000066d4 0x00000050 Code RO 1143 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x00006724 0x00000054 Code RO 1144 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00006778 0x00000168 Code RO 1145 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x000068e0 0x000000c8 Code RO 1146 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x000069a8 0x00000010 Code RO 1172 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x000069b8 0x00000028 Code RO 1174 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x000069e0 0x000000bc Code RO 1175 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006a9c 0x00000134 Code RO 1178 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x00006bd0 0x00000058 Code RO 1179 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006c28 0x00000088 Code RO 1183 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00006cb0 0x00000028 Code RO 1184 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006cd8 0x00000084 Code RO 1185 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006d5c 0x00000020 Code RO 1186 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00006d7c 0x00000180 Code RO 1187 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006efc 0x0000011c Code RO 1188 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00007018 0x000001d0 Code RO 1189 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x000071e8 0x00000054 Code RO 1190 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000723c 0x00000078 Code RO 1191 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000072b4 0x00000034 Code RO 1192 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x000072e8 0x00000038 Code RO 1193 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x00007320 0x0000001c Code RO 1194 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x0000733c 0x00000028 Code RO 1195 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00007364 0x00000180 Code RO 1196 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x000074e4 0x00000284 Code RO 1213 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00007768 0x00000035 Data RO 878 .rodata Obj/SYSTEM_touch_key.o + 0x0000779d 0x00000001 PAD + 0x0000779e 0x00000334 Data RO 930 .rodata Obj/SYSTEM_adc.o + 0x00007ad2 0x0000000a Data RO 968 .rodata Obj/SYSTEM_ht1621.o + 0x00007adc 0x00000030 Data RO 1236 .rodata pow.o + 0x00007b0c 0x00000014 Data RO 1336 .rodata _thenan_df.o + 0x00007b20 0x00000100 Data RO 1384 .rodata _clz.o + 0x00007c20 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00007c2e 0x00000092 Data RO 879 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00007cc0 0x0000016e Data RO 908 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00007e2e 0x00000017 Data RO 988 .rodata.str1.1 Obj/SYSTEM_model_detection.o + 0x00007e45 0x00000049 Data RO 1012 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00007e8e 0x0000007e Data RO 1036 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00007f0c 0x00000045 Data RO 1054 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00007f51 0x00000057 Data RO 1073 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00007fa8 0x00000021 Data RO 1102 .rodata.str1.1 Obj/USRCTRL_rf_uart_protocol.o + 0x00007fc9 0x0000002c Data RO 1147 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x00007ff5 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x000008f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1170 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x0000000c Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000d0 0x00000004 Zero RW 924 .bss Obj/SYSTEM_adc.o + 0x200000d4 0x00000004 Zero RW 1003 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200000d8 0x00000004 Zero RW 1088 .bss Obj/USRCTRL_rf_uart_protocol.o + 0x200000dc 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x20000162 0x00000002 PAD + 0x20000164 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000194 0x00000159 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x200002ed 0x00000003 PAD + 0x200002f0 0x00000060 Zero RW 892 COMMON Obj/SYSTEM_touch_key.o + 0x20000350 0x00000006 Zero RW 921 COMMON Obj/SYSTEM_eeprom.o + 0x20000356 0x00000037 Zero RW 943 COMMON Obj/SYSTEM_adc.o + 0x2000038d 0x00000003 PAD + 0x20000390 0x0000003c Zero RW 982 COMMON Obj/SYSTEM_ht1621.o + 0x200003cc 0x00000008 Zero RW 1000 COMMON Obj/SYSTEM_model_detection.o + 0x200003d4 0x0000001f Zero RW 1025 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200003f3 0x0000000c Zero RW 1085 COMMON Obj/USRCTRL_debug_unit.o + 0x200003ff 0x00000001 PAD + 0x20000400 0x0000022c Zero RW 1115 COMMON Obj/USRCTRL_rf_uart_protocol.o + 0x2000062c 0x000002c8 Zero RW 1209 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 265 Obj/arch_crt0.o + 56 0 0 0 799 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 326 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 + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9268 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 108 14 0 12 12466 Obj/main.o + 504 0 0 0 16152 Obj/mcu_initial.o + 2434 0 0 60 15229 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 678 0 0 365 13827 Obj/SYSTEM_uart.o + 2010 199 5 96 16283 Obj/SYSTEM_touch_key.o + 1062 366 0 6 14159 Obj/SYSTEM_eeprom.o + 548 820 0 59 12830 Obj/SYSTEM_adc.o + 1488 10 0 60 15767 Obj/SYSTEM_ht1621.o + 224 23 0 8 11213 Obj/SYSTEM_model_detection.o + 1244 73 0 35 12389 Obj/USRCTRL_tempctrl_unit.o + 1356 126 0 0 11919 Obj/USRCTRL_key_logic.o + 900 69 0 0 11426 Obj/USRCTRL_display_logic.o + 272 87 0 12 11312 Obj/USRCTRL_debug_unit.o + 1370 33 0 560 14410 Obj/USRCTRL_rf_uart_protocol.o + 252 0 0 0 11489 Obj/USRCTRL_myrelay.o + 1118 44 0 0 13294 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 20720 1864 109 1407 388129 Object Totals + 4 4 6 9 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 + + 2876 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 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 + 30540 2192 164 2128 413143 Grand Totals + 30540 2192 164 2128 413143 Elf Image Totals + 30540 2192 164 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 32732 ( 31.96kB) +Total RW Size (RW Data + ZI Data) 2292 ( 2.24kB) +Total ROM Size (Code + RO Data + RW Data) 32896 ( 32.13kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241123.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241123.asm new file mode 100644 index 0000000..d41fae3 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241123.asm @@ -0,0 +1,20468 @@ + +.//Obj/T1_AC_TC_V01_20241123.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003826 .long 0x00003826 + 8: 00003816 .long 0x00003816 + c: 00000184 .long 0x00000184 + 10: 0000381e .long 0x0000381e + 14: 000037dc .long 0x000037dc + 18: 00000184 .long 0x00000184 + 1c: 0000380e .long 0x0000380e + 20: 00003806 .long 0x00003806 + 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: 000037fe .long 0x000037fe + 44: 000037f6 .long 0x000037f6 + 48: 000037ee .long 0x000037ee + 4c: 000037e6 .long 0x000037e6 + 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: 000037de .long 0x000037de + 80: 0000725c .long 0x0000725c + 84: 00002ebc .long 0x00002ebc + 88: 00002fac .long 0x00002fac + 8c: 00003014 .long 0x00003014 + 90: 0000307c .long 0x0000307c + 94: 00000184 .long 0x00000184 + 98: 00003228 .long 0x00003228 + 9c: 00003594 .long 0x00003594 + a0: 000035c4 .long 0x000035c4 + a4: 0000325c .long 0x0000325c + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000032dc .long 0x000032dc + b4: 0000334c .long 0x0000334c + b8: 00003388 .long 0x00003388 + bc: 000033c4 .long 0x000033c4 + c0: 00000184 .long 0x00000184 + c4: 00003836 .long 0x00003836 + c8: 00000184 .long 0x00000184 + cc: 00003458 .long 0x00003458 + d0: 00003540 .long 0x00003540 + d4: 000035f4 .long 0x000035f4 + d8: 0000363c .long 0x0000363c + dc: 00003698 .long 0x00003698 + e0: 0000382e .long 0x0000382e + e4: 00006c48 .long 0x00006c48 + e8: 000036f8 .long 0x000036f8 + ec: 00000184 .long 0x00000184 + f0: 0000372c .long 0x0000372c + f4: 00003778 .long 0x00003778 + 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, 0x2c54 // 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: 00002c54 .long 0x00002c54 + 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, 0x7afc // 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: 00007afc .long 0x00007afc + 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, 0x7afc // 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, 0x7afc // 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: 00007afc .long 0x00007afc + 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, 0x7b2c // 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: 00007b2c .long 0x00007b2c + +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, 0x7b2c // 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: 00007b2c .long 0x00007b2c + 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, 0x7b2c // 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: 00007b2c .long 0x00007b2c + +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, 0x7b40 // 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: 00007b40 .long 0x00007b40 + +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, 0x8018 // 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, 0x200000a4 // 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, 0x200008f4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a4 // 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: 00008018 .long 0x00008018 + 1a7c: 200000a4 .long 0x200000a4 + 1a80: 200008f4 .long 0x200008f4 + 1a84: 200000a4 .long 0x200000a4 + +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_PullHighLow_DIS: + +00001e7c : +{ + (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)); + 1e7c: 4121 lsli r1, r1, 1 + 1e7e: 3203 movi r2, 3 + 1e80: 9068 ld.w r3, (r0, 0x20) + 1e82: 7084 lsl r2, r1 + 1e84: 68c9 andn r3, r2 + 1e86: b068 st.w r3, (r0, 0x20) +} + 1e88: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001e8a : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1e8a: 4121 lsli r1, r1, 1 + 1e8c: 3301 movi r3, 1 + 1e8e: 9049 ld.w r2, (r0, 0x24) + 1e90: 70c4 lsl r3, r1 + 1e92: 6cc8 or r3, r2 + 1e94: b069 st.w r3, (r0, 0x24) +} + 1e96: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001e98 : +//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; + 1ea8: 9045 ld.w r2, (r0, 0x14) + 1eaa: 3301 movi r3, 1 + 1eac: 7085 lsr r2, r1 + 1eae: 688c and r2, r3 + { + if (dat==1) + 1eb0: 3a40 cmpnei r2, 0 + 1eb2: 70c4 lsl r3, r1 + 1eb4: 0c03 bf 0x1eba // 1eba + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00001ebe : +/*************************************************************/ +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); + 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.UART0_DeInit: + +00001f90 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 1f90: 1065 lrw r3, 0x20000040 // 1fa4 + 1f92: 3200 movi r2, 0 + 1f94: 9360 ld.w r3, (r3, 0x0) + 1f96: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 1f98: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 1f9a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 1f9c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 1f9e: b344 st.w r2, (r3, 0x10) +} + 1fa0: 783c jmp r15 + 1fa2: 0000 bkpt + 1fa4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00001fa8 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 1fa8: 1065 lrw r3, 0x2000003c // 1fbc + 1faa: 3200 movi r2, 0 + 1fac: 9360 ld.w r3, (r3, 0x0) + 1fae: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 1fb0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 1fb2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 1fb4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 1fb6: b344 st.w r2, (r3, 0x10) +} + 1fb8: 783c jmp r15 + 1fba: 0000 bkpt + 1fbc: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00001fc0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 1fc0: 1065 lrw r3, 0x20000038 // 1fd4 + 1fc2: 3200 movi r2, 0 + 1fc4: 9360 ld.w r3, (r3, 0x0) + 1fc6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 1fc8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 1fca: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 1fcc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 1fce: b344 st.w r2, (r3, 0x10) +} + 1fd0: 783c jmp r15 + 1fd2: 0000 bkpt + 1fd4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00001fd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 1fd8: 1065 lrw r3, 0x20000040 // 1fec + 1fda: 320f movi r2, 15 + 1fdc: 9360 ld.w r3, (r3, 0x0) + 1fde: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1fe0: 3380 movi r3, 128 + 1fe2: 4366 lsli r3, r3, 6 + 1fe4: 1043 lrw r2, 0xe000e100 // 1ff0 + 1fe6: b260 st.w r3, (r2, 0x0) +} + 1fe8: 783c jmp r15 + 1fea: 0000 bkpt + 1fec: 20000040 .long 0x20000040 + 1ff0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00001ff4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 1ff4: 1065 lrw r3, 0x20000038 // 2008 + 1ff6: 320f movi r2, 15 + 1ff8: 9360 ld.w r3, (r3, 0x0) + 1ffa: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1ffc: 3380 movi r3, 128 + 1ffe: 4368 lsli r3, r3, 8 + 2000: 1043 lrw r2, 0xe000e100 // 200c + 2002: b260 st.w r3, (r2, 0x0) +} + 2004: 783c jmp r15 + 2006: 0000 bkpt + 2008: 20000038 .long 0x20000038 + 200c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002010 : +//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) + 2010: 3840 cmpnei r0, 0 + 2012: 0821 bt 0x2054 // 2054 + { + if(UART_IO_G==0) + 2014: 3940 cmpnei r1, 0 + 2016: 080a bt 0x202a // 202a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2018: 1177 lrw r3, 0x2000004c // 20f4 + 201a: 31ff movi r1, 255 + 201c: 9340 ld.w r2, (r3, 0x0) + 201e: 9260 ld.w r3, (r2, 0x0) + 2020: 68c5 andn r3, r1 + 2022: 3ba2 bseti r3, 2 + 2024: 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 + 2026: b260 st.w r3, (r2, 0x0) + 2028: 0415 br 0x2052 // 2052 + else if(UART_IO_G==1) + 202a: 3941 cmpnei r1, 1 + 202c: 0813 bt 0x2052 // 2052 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 202e: 1172 lrw r3, 0x2000004c // 20f4 + 2030: 31f0 movi r1, 240 + 2032: 9340 ld.w r2, (r3, 0x0) + 2034: 9260 ld.w r3, (r2, 0x0) + 2036: 4130 lsli r1, r1, 16 + 2038: 68c5 andn r3, r1 + 203a: 31e0 movi r1, 224 + 203c: 412f lsli r1, r1, 15 + 203e: 6cc4 or r3, r1 + 2040: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2042: 31f0 movi r1, 240 + 2044: 9261 ld.w r3, (r2, 0x4) + 2046: 412c lsli r1, r1, 12 + 2048: 68c5 andn r3, r1 + 204a: 31e0 movi r1, 224 + 204c: 412b lsli r1, r1, 11 + 204e: 6cc4 or r3, r1 + 2050: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2052: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2054: 3841 cmpnei r0, 1 + 2056: 082d bt 0x20b0 // 20b0 + if(UART_IO_G==0) + 2058: 3940 cmpnei r1, 0 + 205a: 0814 bt 0x2082 // 2082 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 205c: 1167 lrw r3, 0x20000048 // 20f8 + 205e: 310f movi r1, 15 + 2060: 9340 ld.w r2, (r3, 0x0) + 2062: 9260 ld.w r3, (r2, 0x0) + 2064: 68c5 andn r3, r1 + 2066: 3107 movi r1, 7 + 2068: 6cc4 or r3, r1 + 206a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 206c: 32f0 movi r2, 240 + 206e: 1162 lrw r3, 0x2000004c // 20f4 + 2070: 4250 lsli r2, r2, 16 + 2072: 9320 ld.w r1, (r3, 0x0) + 2074: 9161 ld.w r3, (r1, 0x4) + 2076: 68c9 andn r3, r2 + 2078: 32e0 movi r2, 224 + 207a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 207c: 6cc8 or r3, r2 + 207e: b161 st.w r3, (r1, 0x4) + 2080: 07e9 br 0x2052 // 2052 + else if(UART_IO_G==1) + 2082: 3941 cmpnei r1, 1 + 2084: 080c bt 0x209c // 209c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2086: 107c lrw r3, 0x2000004c // 20f4 + 2088: 32ff movi r2, 255 + 208a: 9320 ld.w r1, (r3, 0x0) + 208c: 424c lsli r2, r2, 12 + 208e: 9160 ld.w r3, (r1, 0x0) + 2090: 68c9 andn r3, r2 + 2092: 32ee movi r2, 238 + 2094: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2096: 6cc8 or r3, r2 + 2098: b160 st.w r3, (r1, 0x0) +} + 209a: 07dc br 0x2052 // 2052 + else if(UART_IO_G==2) + 209c: 3942 cmpnei r1, 2 + 209e: 0bda bt 0x2052 // 2052 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 20a0: 1075 lrw r3, 0x2000004c // 20f4 + 20a2: 32ee movi r2, 238 + 20a4: 9320 ld.w r1, (r3, 0x0) + 20a6: 9161 ld.w r3, (r1, 0x4) + 20a8: 4368 lsli r3, r3, 8 + 20aa: 4b68 lsri r3, r3, 8 + 20ac: 4257 lsli r2, r2, 23 + 20ae: 07e7 br 0x207c // 207c + if (IO_UART_NUM==IO_UART2) + 20b0: 3842 cmpnei r0, 2 + 20b2: 0bd0 bt 0x2052 // 2052 + if(UART_IO_G==0) + 20b4: 3940 cmpnei r1, 0 + 20b6: 0809 bt 0x20c8 // 20c8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 20b8: 106f lrw r3, 0x2000004c // 20f4 + 20ba: 31ff movi r1, 255 + 20bc: 9340 ld.w r2, (r3, 0x0) + 20be: 9260 ld.w r3, (r2, 0x0) + 20c0: 68c5 andn r3, r1 + 20c2: 3177 movi r1, 119 + 20c4: 6cc4 or r3, r1 + 20c6: 07b0 br 0x2026 // 2026 + else if(UART_IO_G==1) + 20c8: 3941 cmpnei r1, 1 + 20ca: 0809 bt 0x20dc // 20dc + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 20cc: 106a lrw r3, 0x2000004c // 20f4 + 20ce: 32ee movi r2, 238 + 20d0: 9320 ld.w r1, (r3, 0x0) + 20d2: 9160 ld.w r3, (r1, 0x0) + 20d4: 4368 lsli r3, r3, 8 + 20d6: 4b68 lsri r3, r3, 8 + 20d8: 4257 lsli r2, r2, 23 + 20da: 07de br 0x2096 // 2096 + else if(UART_IO_G==2) + 20dc: 3942 cmpnei r1, 2 + 20de: 0bba bt 0x2052 // 2052 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 20e0: 1066 lrw r3, 0x20000048 // 20f8 + 20e2: 32ff movi r2, 255 + 20e4: 9320 ld.w r1, (r3, 0x0) + 20e6: 4250 lsli r2, r2, 16 + 20e8: 9160 ld.w r3, (r1, 0x0) + 20ea: 68c9 andn r3, r2 + 20ec: 32cc movi r2, 204 + 20ee: 424f lsli r2, r2, 15 + 20f0: 07d3 br 0x2096 // 2096 + 20f2: 0000 bkpt + 20f4: 2000004c .long 0x2000004c + 20f8: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000020fc : +//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); + 20fc: 1063 lrw r3, 0x80003 // 2108 + 20fe: 6c8c or r2, r3 + 2100: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2102: b024 st.w r1, (r0, 0x10) +} + 2104: 783c jmp r15 + 2106: 0000 bkpt + 2108: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +0000210c : +//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); + 210c: 1063 lrw r3, 0x8000f // 2118 + 210e: 6c8c or r2, r3 + 2110: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2112: b024 st.w r1, (r0, 0x10) +} + 2114: 783c jmp r15 + 2116: 0000 bkpt + 2118: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +0000211c : +//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) +{ + 211c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 211e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2120: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2122: 5b85 subu r4, r3, r1 + 2124: 6490 cmphs r4, r2 + 2126: 0c02 bf 0x212a // 212a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2128: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 212a: 8380 ld.b r4, (r3, 0x0) + 212c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 212e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2130: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2132: 3c40 cmpnei r4, 0 + 2134: 0bfd bt 0x212e // 212e + 2136: 2300 addi r3, 1 + 2138: 07f5 br 0x2122 // 2122 + +Disassembly of section .text.EPT_Software_Prg: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 213c: 1067 lrw r3, 0x20000020 // 2158 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 213e: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 2140: 9340 ld.w r2, (r3, 0x0) + 2142: 9260 ld.w r3, (r2, 0x0) + 2144: 3ba0 bseti r3, 0 + 2146: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 2148: 9261 ld.w r3, (r2, 0x4) + 214a: 4128 lsli r1, r1, 8 + 214c: 68c5 andn r3, r1 + 214e: 3bac bseti r3, 12 + 2150: 3bae bseti r3, 14 + 2152: b261 st.w r3, (r2, 0x4) +} + 2154: 783c jmp r15 + 2156: 0000 bkpt + 2158: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +0000215c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 215c: 1068 lrw r3, 0x20000020 // 217c + 215e: 3280 movi r2, 128 + 2160: 9360 ld.w r3, (r3, 0x0) + 2162: 608c addu r2, r3 + 2164: 1027 lrw r1, 0xa55ac73a // 2180 + 2166: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2168: 9341 ld.w r2, (r3, 0x4) + 216a: 3aa0 bseti r2, 0 + 216c: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 216e: 3101 movi r1, 1 + 2170: 9341 ld.w r2, (r3, 0x4) + 2172: 6884 and r2, r1 + 2174: 3a40 cmpnei r2, 0 + 2176: 0ffd bf 0x2170 // 2170 +} + 2178: 783c jmp r15 + 217a: 0000 bkpt + 217c: 20000020 .long 0x20000020 + 2180: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +00002184 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2184: 1068 lrw r3, 0x20000020 // 21a4 + 2186: 3280 movi r2, 128 + 2188: 9360 ld.w r3, (r3, 0x0) + 218a: 608c addu r2, r3 + 218c: 1027 lrw r1, 0xa55ac73a // 21a8 + 218e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2190: 9341 ld.w r2, (r3, 0x4) + 2192: 31fe movi r1, 254 + 2194: 6884 and r2, r1 + 2196: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2198: 3101 movi r1, 1 + 219a: 9341 ld.w r2, (r3, 0x4) + 219c: 6884 and r2, r1 + 219e: 3a40 cmpnei r2, 0 + 21a0: 0bfd bt 0x219a // 219a +} + 21a2: 783c jmp r15 + 21a4: 20000020 .long 0x20000020 + 21a8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +000021ac : +//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) + 21ac: 3840 cmpnei r0, 0 + 21ae: 0822 bt 0x21f2 // 21f2 + { + if(IO_Num_X==IO_NUM_PA07) + 21b0: 3950 cmpnei r1, 16 + 21b2: 080a bt 0x21c6 // 21c6 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 21b4: 0375 lrw r3, 0x2000004c // 23dc + 21b6: 9340 ld.w r2, (r3, 0x0) + 21b8: 9260 ld.w r3, (r2, 0x0) + 21ba: 4364 lsli r3, r3, 4 + 21bc: 4b64 lsri r3, r3, 4 + 21be: 3bbd bseti r3, 29 + 21c0: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 21c2: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 21c4: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 21c6: 3951 cmpnei r1, 17 + 21c8: 080b bt 0x21de // 21de + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 21ca: 037a lrw r3, 0x2000004c // 23dc + 21cc: 32f0 movi r2, 240 + 21ce: 9320 ld.w r1, (r3, 0x0) + 21d0: 9161 ld.w r3, (r1, 0x4) + 21d2: 4244 lsli r2, r2, 4 + 21d4: 68c9 andn r3, r2 + 21d6: 3ba8 bseti r3, 8 + 21d8: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 21da: b161 st.w r3, (r1, 0x4) + 21dc: 07f4 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA15) + 21de: 3952 cmpnei r1, 18 + 21e0: 0bf2 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 21e2: 137f lrw r3, 0x2000004c // 23dc + 21e4: 9340 ld.w r2, (r3, 0x0) + 21e6: 9261 ld.w r3, (r2, 0x4) + 21e8: 4364 lsli r3, r3, 4 + 21ea: 4b64 lsri r3, r3, 4 + 21ec: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 21ee: b261 st.w r3, (r2, 0x4) + 21f0: 07ea br 0x21c4 // 21c4 + else if(EPT_IO_X==EPT_IO_CHAY) + 21f2: 3841 cmpnei r0, 1 + 21f4: 0823 bt 0x223a // 223a + if(IO_Num_X==IO_NUM_PB03) + 21f6: 3953 cmpnei r1, 19 + 21f8: 080a bt 0x220c // 220c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 21fa: 137a lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 21fc: 9320 ld.w r1, (r3, 0x0) + 21fe: 32f0 movi r2, 240 + 2200: 9160 ld.w r3, (r1, 0x0) + 2202: 4248 lsli r2, r2, 8 + 2204: 68c9 andn r3, r2 + 2206: 3bac bseti r3, 12 + 2208: 3bae bseti r3, 14 + 220a: 040b br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB05) + 220c: 3954 cmpnei r1, 20 + 220e: 080b bt 0x2224 // 2224 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 2210: 1374 lrw r3, 0x20000048 // 23e0 + 2212: 32f0 movi r2, 240 + 2214: 9320 ld.w r1, (r3, 0x0) + 2216: 9160 ld.w r3, (r1, 0x0) + 2218: 4250 lsli r2, r2, 16 + 221a: 68c9 andn r3, r2 + 221c: 3bb4 bseti r3, 20 + 221e: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2220: b160 st.w r3, (r1, 0x0) +} + 2222: 07d1 br 0x21c4 // 21c4 + else if(IO_Num_X==IO_NUM_PA12) + 2224: 3955 cmpnei r1, 21 + 2226: 0bcf bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 2228: 136d lrw r3, 0x2000004c // 23dc + 222a: 32f0 movi r2, 240 + 222c: 9320 ld.w r1, (r3, 0x0) + 222e: 9161 ld.w r3, (r1, 0x4) + 2230: 424c lsli r2, r2, 12 + 2232: 68c9 andn r3, r2 + 2234: 3bb0 bseti r3, 16 + 2236: 3bb2 bseti r3, 18 + 2238: 07d1 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBX) + 223a: 3842 cmpnei r0, 2 + 223c: 0821 bt 0x227e // 227e + if(IO_Num_X==IO_NUM_PB02) + 223e: 3956 cmpnei r1, 22 + 2240: 080a bt 0x2254 // 2254 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 2242: 1368 lrw r3, 0x20000048 // 23e0 + 2244: 32f0 movi r2, 240 + 2246: 9320 ld.w r1, (r3, 0x0) + 2248: 9160 ld.w r3, (r1, 0x0) + 224a: 4244 lsli r2, r2, 4 + 224c: 68c9 andn r3, r2 + 224e: 3ba9 bseti r3, 9 + 2250: 3baa bseti r3, 10 + 2252: 07e7 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA11) + 2254: 3957 cmpnei r1, 23 + 2256: 080a bt 0x226a // 226a + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2258: 1361 lrw r3, 0x2000004c // 23dc + 225a: 32f0 movi r2, 240 + 225c: 9320 ld.w r1, (r3, 0x0) + 225e: 9161 ld.w r3, (r1, 0x4) + 2260: 4248 lsli r2, r2, 8 + 2262: 68c9 andn r3, r2 + 2264: 3bac bseti r3, 12 + 2266: 3bae bseti r3, 14 + 2268: 07b9 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PA14) + 226a: 3958 cmpnei r1, 24 + 226c: 0bac bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 226e: 127c lrw r3, 0x2000004c // 23dc + 2270: 32f0 movi r2, 240 + 2272: 9320 ld.w r1, (r3, 0x0) + 2274: 9161 ld.w r3, (r1, 0x4) + 2276: 4254 lsli r2, r2, 20 + 2278: 68c9 andn r3, r2 + 227a: 3bba bseti r3, 26 + 227c: 07af br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHBY) + 227e: 3843 cmpnei r0, 3 + 2280: 0820 bt 0x22c0 // 22c0 + if(IO_Num_X==IO_NUM_PB04) + 2282: 3959 cmpnei r1, 25 + 2284: 080a bt 0x2298 // 2298 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 2286: 1277 lrw r3, 0x20000048 // 23e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2288: 9320 ld.w r1, (r3, 0x0) + 228a: 32f0 movi r2, 240 + 228c: 9160 ld.w r3, (r1, 0x0) + 228e: 424c lsli r2, r2, 12 + 2290: 68c9 andn r3, r2 + 2292: 3bb0 bseti r3, 16 + 2294: 3bb2 bseti r3, 18 + 2296: 07c5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA05) + 2298: 395a cmpnei r1, 26 + 229a: 0809 bt 0x22ac // 22ac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 229c: 1270 lrw r3, 0x2000004c // 23dc + 229e: 32f0 movi r2, 240 + 22a0: 9320 ld.w r1, (r3, 0x0) + 22a2: 9160 ld.w r3, (r1, 0x0) + 22a4: 4250 lsli r2, r2, 16 + 22a6: 68c9 andn r3, r2 + 22a8: 3bb7 bseti r3, 23 + 22aa: 07bb br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 22ac: 395b cmpnei r1, 27 + 22ae: 0b8b bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 22b0: 126b lrw r3, 0x2000004c // 23dc + 22b2: 310f movi r1, 15 + 22b4: 9340 ld.w r2, (r3, 0x0) + 22b6: 9261 ld.w r3, (r2, 0x4) + 22b8: 68c5 andn r3, r1 + 22ba: 3ba0 bseti r3, 0 + 22bc: 3ba2 bseti r3, 2 + 22be: 0798 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_CHCX) + 22c0: 3844 cmpnei r0, 4 + 22c2: 0823 bt 0x2308 // 2308 + if(IO_Num_X==IO_NUM_PB05) + 22c4: 3954 cmpnei r1, 20 + 22c6: 0809 bt 0x22d8 // 22d8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 22c8: 1266 lrw r3, 0x20000048 // 23e0 + 22ca: 32f0 movi r2, 240 + 22cc: 9320 ld.w r1, (r3, 0x0) + 22ce: 9160 ld.w r3, (r1, 0x0) + 22d0: 4250 lsli r2, r2, 16 + 22d2: 68c9 andn r3, r2 + 22d4: 3bb6 bseti r3, 22 + 22d6: 07a5 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA03) + 22d8: 395c cmpnei r1, 28 + 22da: 0803 bt 0x22e0 // 22e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 22dc: 1260 lrw r3, 0x2000004c // 23dc + 22de: 078f br 0x21fc // 21fc + else if(IO_Num_X==IO_NUM_PB03) + 22e0: 3953 cmpnei r1, 19 + 22e2: 0809 bt 0x22f4 // 22f4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 22e4: 117f lrw r3, 0x20000048 // 23e0 + 22e6: 32f0 movi r2, 240 + 22e8: 9320 ld.w r1, (r3, 0x0) + 22ea: 9160 ld.w r3, (r1, 0x0) + 22ec: 4248 lsli r2, r2, 8 + 22ee: 68c9 andn r3, r2 + 22f0: 3bae bseti r3, 14 + 22f2: 0797 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB00) + 22f4: 395d cmpnei r1, 29 + 22f6: 0b67 bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22f8: 117a lrw r3, 0x20000048 // 23e0 + 22fa: 310f movi r1, 15 + 22fc: 9340 ld.w r2, (r3, 0x0) + 22fe: 9260 ld.w r3, (r2, 0x0) + 2300: 68c5 andn r3, r1 + 2302: 3ba0 bseti r3, 0 + 2304: 3ba2 bseti r3, 2 + 2306: 075e br 0x21c2 // 21c2 + else if(EPT_IO_X==EPT_IO_CHCY) + 2308: 3845 cmpnei r0, 5 + 230a: 0825 bt 0x2354 // 2354 + if(IO_Num_X==IO_NUM_PB04) + 230c: 3959 cmpnei r1, 25 + 230e: 0809 bt 0x2320 // 2320 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 2310: 1174 lrw r3, 0x20000048 // 23e0 + 2312: 32f0 movi r2, 240 + 2314: 9320 ld.w r1, (r3, 0x0) + 2316: 9160 ld.w r3, (r1, 0x0) + 2318: 424c lsli r2, r2, 12 + 231a: 68c9 andn r3, r2 + 231c: 3bb2 bseti r3, 18 + 231e: 0781 br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA04) + 2320: 395e cmpnei r1, 30 + 2322: 0803 bt 0x2328 // 2328 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2324: 116e lrw r3, 0x2000004c // 23dc + 2326: 07b1 br 0x2288 // 2288 + else if(IO_Num_X==IO_NUM_PA09) + 2328: 395f cmpnei r1, 31 + 232a: 0809 bt 0x233c // 233c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 232c: 116c lrw r3, 0x2000004c // 23dc + 232e: 31f0 movi r1, 240 + 2330: 9340 ld.w r2, (r3, 0x0) + 2332: 9261 ld.w r3, (r2, 0x4) + 2334: 68c5 andn r3, r1 + 2336: 3170 movi r1, 112 + 2338: 6cc4 or r3, r1 + 233a: 075a br 0x21ee // 21ee + else if(IO_Num_X==IO_NUM_PA013) + 233c: 3320 movi r3, 32 + 233e: 64c6 cmpne r1, r3 + 2340: 0b42 bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 2342: 1167 lrw r3, 0x2000004c // 23dc + 2344: 32f0 movi r2, 240 + 2346: 9320 ld.w r1, (r3, 0x0) + 2348: 9161 ld.w r3, (r1, 0x4) + 234a: 4250 lsli r2, r2, 16 + 234c: 68c9 andn r3, r2 + 234e: 3bb4 bseti r3, 20 + 2350: 3bb6 bseti r3, 22 + 2352: 0744 br 0x21da // 21da + else if(EPT_IO_X==EPT_IO_CHD) + 2354: 3846 cmpnei r0, 6 + 2356: 0815 bt 0x2380 // 2380 + if(IO_Num_X==IO_NUM_PB03) + 2358: 3953 cmpnei r1, 19 + 235a: 080a bt 0x236e // 236e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 235c: 1161 lrw r3, 0x20000048 // 23e0 + 235e: 32f0 movi r2, 240 + 2360: 9320 ld.w r1, (r3, 0x0) + 2362: 9160 ld.w r3, (r1, 0x0) + 2364: 4248 lsli r2, r2, 8 + 2366: 68c9 andn r3, r2 + 2368: 3bad bseti r3, 13 + 236a: 3bae bseti r3, 14 + 236c: 075a br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PA08) + 236e: 395b cmpnei r1, 27 + 2370: 0b2a bt 0x21c4 // 21c4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2372: 107b lrw r3, 0x2000004c // 23dc + 2374: 310f movi r1, 15 + 2376: 9340 ld.w r2, (r3, 0x0) + 2378: 9261 ld.w r3, (r2, 0x4) + 237a: 68c5 andn r3, r1 + 237c: 3ba2 bseti r3, 2 + 237e: 0738 br 0x21ee // 21ee + else if(EPT_IO_X==EPT_IO_EPI) + 2380: 3847 cmpnei r0, 7 + 2382: 0b21 bt 0x21c4 // 21c4 + if(IO_Num_X==IO_NUM_PA07) + 2384: 3950 cmpnei r1, 16 + 2386: 0809 bt 0x2398 // 2398 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2388: 1075 lrw r3, 0x2000004c // 23dc + 238a: 9340 ld.w r2, (r3, 0x0) + 238c: 9260 ld.w r3, (r2, 0x0) + 238e: 4364 lsli r3, r3, 4 + 2390: 4b64 lsri r3, r3, 4 + 2392: 3bbc bseti r3, 28 + 2394: 3bbe bseti r3, 30 + 2396: 0716 br 0x21c2 // 21c2 + else if(IO_Num_X==IO_NUM_PA013) + 2398: 3320 movi r3, 32 + 239a: 64c6 cmpne r1, r3 + 239c: 0809 bt 0x23ae // 23ae + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 239e: 1070 lrw r3, 0x2000004c // 23dc + 23a0: 32f0 movi r2, 240 + 23a2: 9320 ld.w r1, (r3, 0x0) + 23a4: 9161 ld.w r3, (r1, 0x4) + 23a6: 4250 lsli r2, r2, 16 + 23a8: 68c9 andn r3, r2 + 23aa: 3bb6 bseti r3, 22 + 23ac: 0717 br 0x21da // 21da + else if(IO_Num_X==IO_NUM_PB03) + 23ae: 3953 cmpnei r1, 19 + 23b0: 080b bt 0x23c6 // 23c6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 23b2: 106c lrw r3, 0x20000048 // 23e0 + 23b4: 32f0 movi r2, 240 + 23b6: 9320 ld.w r1, (r3, 0x0) + 23b8: 4248 lsli r2, r2, 8 + 23ba: 9160 ld.w r3, (r1, 0x0) + 23bc: 68c9 andn r3, r2 + 23be: 32e0 movi r2, 224 + 23c0: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23c2: 6cc8 or r3, r2 + 23c4: 072e br 0x2220 // 2220 + else if(IO_Num_X==IO_NUM_PB02) + 23c6: 3956 cmpnei r1, 22 + 23c8: 0afe bt 0x21c4 // 21c4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 23ca: 1066 lrw r3, 0x20000048 // 23e0 + 23cc: 32f0 movi r2, 240 + 23ce: 9320 ld.w r1, (r3, 0x0) + 23d0: 4244 lsli r2, r2, 4 + 23d2: 9160 ld.w r3, (r1, 0x0) + 23d4: 68c9 andn r3, r2 + 23d6: 32e0 movi r2, 224 + 23d8: 4243 lsli r2, r2, 3 + 23da: 07f4 br 0x23c2 // 23c2 + 23dc: 2000004c .long 0x2000004c + 23e0: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +000023e4 : +//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) +{ + 23e4: 14c3 push r4-r6 + 23e6: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23e8: 104b lrw r2, 0x20000020 // 2414 + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23ea: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 23ec: 92a0 ld.w r5, (r2, 0x0) + 23ee: 9580 ld.w r4, (r5, 0x0) + 23f0: 32ff movi r2, 255 + 23f2: 6909 andn r4, r2 + 23f4: 3ca0 bseti r4, 0 + 23f6: 3ca1 bseti r4, 1 + 23f8: 6d00 or r4, r0 + 23fa: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23fc: 0802 bt 0x2400 // 2400 + { + EPT0->PSCR=EPT_PSCR; + 23fe: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 2400: 9543 ld.w r2, (r5, 0xc) + 2402: 1066 lrw r3, 0x7003f // 2418 + 2404: 688d andn r2, r3 + 2406: 6c98 or r2, r6 + 2408: 3aa2 bseti r2, 2 + 240a: 3ab2 bseti r2, 18 + 240c: 6c48 or r1, r2 + 240e: b523 st.w r1, (r5, 0xc) +} + 2410: 1483 pop r4-r6 + 2412: 0000 bkpt + 2414: 20000020 .long 0x20000020 + 2418: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +0000241c : + 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 + ) +{ + 241c: 14c4 push r4-r7 + 241e: 1425 subi r14, r14, 20 + 2420: 9889 ld.w r4, (r14, 0x24) + 2422: b880 st.w r4, (r14, 0x0) + 2424: 988a ld.w r4, (r14, 0x28) + 2426: b881 st.w r4, (r14, 0x4) + 2428: 988b ld.w r4, (r14, 0x2c) + 242a: b882 st.w r4, (r14, 0x8) + 242c: 988c ld.w r4, (r14, 0x30) + 242e: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 2430: 3840 cmpnei r0, 0 +{ + 2432: 988d ld.w r4, (r14, 0x34) + 2434: b884 st.w r4, (r14, 0x10) + 2436: 98ce ld.w r6, (r14, 0x38) + 2438: 98ef ld.w r7, (r14, 0x3c) + 243a: 98b0 ld.w r5, (r14, 0x40) + 243c: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 243e: 0816 bt 0x246a // 246a + { + 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; + 2440: 6d14 or r4, r5 + 2442: 6d1c or r4, r7 + 2444: 98a4 ld.w r5, (r14, 0x10) + 2446: 6d18 or r4, r6 + 2448: 6d14 or r4, r5 + 244a: 98a3 ld.w r5, (r14, 0xc) + 244c: 6d14 or r4, r5 + 244e: 98a2 ld.w r5, (r14, 0x8) + 2450: 6d14 or r4, r5 + 2452: 98a1 ld.w r5, (r14, 0x4) + 2454: 6d14 or r4, r5 + 2456: 98a0 ld.w r5, (r14, 0x0) + 2458: 6d14 or r4, r5 + 245a: 6cd0 or r3, r4 + 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| + 245c: 1105 lrw r0, 0x20000020 // 24f0 + 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; + 245e: 6c8c or r2, r3 + 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| + 2460: 9000 ld.w r0, (r0, 0x0) + 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; + 2462: 6c48 or r1, r2 + 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| + 2464: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 2466: 1405 addi r14, r14, 20 + 2468: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 246a: 3841 cmpnei r0, 1 + 246c: 0815 bt 0x2496 // 2496 + 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; + 246e: 6d14 or r4, r5 + 2470: 6d1c or r4, r7 + 2472: 98a4 ld.w r5, (r14, 0x10) + 2474: 6d18 or r4, r6 + 2476: 6d14 or r4, r5 + 2478: 98a3 ld.w r5, (r14, 0xc) + 247a: 6d14 or r4, r5 + 247c: 98a2 ld.w r5, (r14, 0x8) + 247e: 6d14 or r4, r5 + 2480: 98a1 ld.w r5, (r14, 0x4) + 2482: 6d14 or r4, r5 + 2484: 98a0 ld.w r5, (r14, 0x0) + 2486: 6d14 or r4, r5 + 2488: 6cd0 or r3, r4 + 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| + 248a: 101a lrw r0, 0x20000020 // 24f0 + 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; + 248c: 6c8c or r2, r3 + 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| + 248e: 9000 ld.w r0, (r0, 0x0) + 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; + 2490: 6c48 or r1, r2 + 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| + 2492: b033 st.w r1, (r0, 0x4c) + 2494: 07e9 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMC) + 2496: 3842 cmpnei r0, 2 + 2498: 0815 bt 0x24c2 // 24c2 + 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; + 249a: 6d14 or r4, r5 + 249c: 6d1c or r4, r7 + 249e: 98a4 ld.w r5, (r14, 0x10) + 24a0: 6d18 or r4, r6 + 24a2: 6d14 or r4, r5 + 24a4: 98a3 ld.w r5, (r14, 0xc) + 24a6: 6d14 or r4, r5 + 24a8: 98a2 ld.w r5, (r14, 0x8) + 24aa: 6d14 or r4, r5 + 24ac: 98a1 ld.w r5, (r14, 0x4) + 24ae: 6d14 or r4, r5 + 24b0: 98a0 ld.w r5, (r14, 0x0) + 24b2: 6d14 or r4, r5 + 24b4: 6cd0 or r3, r4 + 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| + 24b6: 100f lrw r0, 0x20000020 // 24f0 + 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; + 24b8: 6c8c or r2, r3 + 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| + 24ba: 9000 ld.w r0, (r0, 0x0) + 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; + 24bc: 6c48 or r1, r2 + 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| + 24be: b034 st.w r1, (r0, 0x50) + 24c0: 07d3 br 0x2466 // 2466 + else if(EPT_PWMX_Selecte==EPT_PWMD) + 24c2: 3843 cmpnei r0, 3 + 24c4: 0bd1 bt 0x2466 // 2466 + 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; + 24c6: 6d14 or r4, r5 + 24c8: 6d1c or r4, r7 + 24ca: 98a4 ld.w r5, (r14, 0x10) + 24cc: 6d18 or r4, r6 + 24ce: 6d14 or r4, r5 + 24d0: 98a3 ld.w r5, (r14, 0xc) + 24d2: 6d14 or r4, r5 + 24d4: 98a2 ld.w r5, (r14, 0x8) + 24d6: 6d14 or r4, r5 + 24d8: 98a1 ld.w r5, (r14, 0x4) + 24da: 6d14 or r4, r5 + 24dc: 98a0 ld.w r5, (r14, 0x0) + 24de: 6d14 or r4, r5 + 24e0: 6cd0 or r3, r4 + 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| + 24e2: 1004 lrw r0, 0x20000020 // 24f0 + 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; + 24e4: 6c8c or r2, r3 + 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| + 24e6: 9000 ld.w r0, (r0, 0x0) + 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; + 24e8: 6c48 or r1, r2 + 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| + 24ea: b035 st.w r1, (r0, 0x54) +} + 24ec: 07bd br 0x2466 // 2466 + 24ee: 0000 bkpt + 24f0: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +000024f4 : +//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) +{ + 24f4: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 24f6: 1086 lrw r4, 0x20000020 // 250c +{ + 24f8: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 24fc: 9480 ld.w r4, (r4, 0x0) + 24fe: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 2500: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 2502: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 2504: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 2506: b4ae st.w r5, (r4, 0x38) +} + 2508: 1482 pop r4-r5 + 250a: 0000 bkpt + 250c: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002510 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2510: 1078 lrw r3, 0x20000050 // 2570 + 2512: 3200 movi r2, 0 + 2514: 9360 ld.w r3, (r3, 0x0) + 2516: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2518: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 251a: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 251c: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 251e: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2520: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 2522: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 2524: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 2526: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2528: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 252a: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 252c: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 252e: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2530: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 2532: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 2534: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 2536: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2538: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 253a: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 253c: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 253e: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2540: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 2542: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2544: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 2546: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2548: 23ff addi r3, 256 + 254a: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 254c: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 254e: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2550: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 2552: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2554: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 2556: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2558: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 255a: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 255c: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 255e: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2560: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 2562: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2564: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 2566: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2568: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 256a: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 256c: b351 st.w r2, (r3, 0x44) +} + 256e: 783c jmp r15 + 2570: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002574 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2574: 1063 lrw r3, 0x20000050 // 2580 + 2576: 9340 ld.w r2, (r3, 0x0) + 2578: 9264 ld.w r3, (r2, 0x10) + 257a: 6c0c or r0, r3 + 257c: b204 st.w r0, (r2, 0x10) +} + 257e: 783c jmp r15 + 2580: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002584 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2584: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 2586: 3002 movi r0, 2 + 2588: e3fffff6 bsr 0x2574 // 2574 + while(!(ADC0->SR &ADC12_ADCENS)); + 258c: 1065 lrw r3, 0x20000050 // 25a0 + 258e: 3280 movi r2, 128 + 2590: 9320 ld.w r1, (r3, 0x0) + 2592: 4241 lsli r2, r2, 1 + 2594: 9168 ld.w r3, (r1, 0x20) + 2596: 68c8 and r3, r2 + 2598: 3b40 cmpnei r3, 0 + 259a: 0ffd bf 0x2594 // 2594 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 259c: 1490 pop r15 + 259e: 0000 bkpt + 25a0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +000025a4 : + if (NewState != DISABLE) + 25a4: 3940 cmpnei r1, 0 + 25a6: 106a lrw r3, 0x20000050 // 25cc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25a8: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 25aa: 0c09 bf 0x25bc // 25bc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25ac: 9260 ld.w r3, (r2, 0x0) + 25ae: 6cc0 or r3, r0 + 25b0: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 25b2: 9262 ld.w r3, (r2, 0x8) + 25b4: 68c0 and r3, r0 + 25b6: 3b40 cmpnei r3, 0 + 25b8: 0ffd bf 0x25b2 // 25b2 +} + 25ba: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 25bc: 9261 ld.w r3, (r2, 0x4) + 25be: 6cc0 or r3, r0 + 25c0: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 25c2: 9262 ld.w r3, (r2, 0x8) + 25c4: 68c0 and r3, r0 + 25c6: 3b40 cmpnei r3, 0 + 25c8: 0bfd bt 0x25c2 // 25c2 + 25ca: 07f8 br 0x25ba // 25ba + 25cc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +000025d0 : +{ + 25d0: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 25d2: 3001 movi r0, 1 + 25d4: e3ffffd0 bsr 0x2574 // 2574 +} + 25d8: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000025dc : +{ + 25dc: 14d0 push r15 + if (NewState != DISABLE) + 25de: 3840 cmpnei r0, 0 + 25e0: 0c04 bf 0x25e8 // 25e8 + 25e2: e3ffffd1 bsr 0x2584 // 2584 +} + 25e6: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 25e8: 3004 movi r0, 4 + 25ea: e3ffffc5 bsr 0x2574 // 2574 + while(ADC0->SR&ADC12_ADCENS); + 25ee: 1065 lrw r3, 0x20000050 // 2600 + 25f0: 3280 movi r2, 128 + 25f2: 9320 ld.w r1, (r3, 0x0) + 25f4: 4241 lsli r2, r2, 1 + 25f6: 9168 ld.w r3, (r1, 0x20) + 25f8: 68c8 and r3, r2 + 25fa: 3b40 cmpnei r3, 0 + 25fc: 0bfd bt 0x25f6 // 25f6 + 25fe: 07f4 br 0x25e6 // 25e6 + 2600: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00002604 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 2604: 1064 lrw r3, 0x20000050 // 2614 + 2606: 3202 movi r2, 2 + 2608: 9320 ld.w r1, (r3, 0x0) + 260a: 9168 ld.w r3, (r1, 0x20) + 260c: 68c8 and r3, r2 + 260e: 3b40 cmpnei r3, 0 + 2610: 0ffd bf 0x260a // 260a +} + 2612: 783c jmp r15 + 2614: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002618 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2618: 200f addi r0, 16 + 261a: 1065 lrw r3, 0x20000050 // 262c + 261c: 3201 movi r2, 1 + 261e: 9320 ld.w r1, (r3, 0x0) + 2620: 7080 lsl r2, r0 + 2622: 9168 ld.w r3, (r1, 0x20) + 2624: 68c8 and r3, r2 + 2626: 3b40 cmpnei r3, 0 + 2628: 0ffd bf 0x2622 // 2622 +} + 262a: 783c jmp r15 + 262c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002630 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2630: 203f addi r0, 64 + 2632: 1064 lrw r3, 0x20000050 // 2640 + 2634: 4002 lsli r0, r0, 2 + 2636: 9360 ld.w r3, (r3, 0x0) + 2638: 600c addu r0, r3 + 263a: 9000 ld.w r0, (r0, 0x0) + 263c: 7401 zexth r0, r0 +} + 263e: 783c jmp r15 + 2640: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002644 : + //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 ) +{ + 2644: 14d4 push r4-r7, r15 + 2646: 1422 subi r14, r14, 8 + 2648: 1c08 addi r4, r14, 32 + 264a: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 264c: 2d00 subi r5, 1 +{ + 264e: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2650: 10db lrw r6, 0x20000050 // 26bc +{ + 2652: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2656: 45aa lsli r5, r5, 10 + 2658: 9680 ld.w r4, (r6, 0x0) + 265a: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 265c: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 265e: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2660: 081c bt 0x2698 // 2698 + { + ADC0->MR&=~CONTCV; //one short mode + 2662: 9425 ld.w r1, (r4, 0x14) + 2664: 4121 lsli r1, r1, 1 + 2666: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2668: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 266a: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 266c: 4002 lsli r0, r0, 2 + 266e: 9428 ld.w r1, (r4, 0x20) + 2670: 6840 and r1, r0 + 2672: 3940 cmpnei r1, 0 + 2674: 0bfd bt 0x266e // 266e + 2676: b861 st.w r3, (r14, 0x4) + 2678: b840 st.w r2, (r14, 0x0) + 267a: e3ffff85 bsr 0x2584 // 2584 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 267e: 3f40 cmpnei r7, 0 + 2680: 9840 ld.w r2, (r14, 0x0) + 2682: 9861 ld.w r3, (r14, 0x4) + 2684: 0c16 bf 0x26b0 // 26b0 + { + ADC0->CR|=ADC12_10BITor12BIT; + 2686: 9600 ld.w r0, (r6, 0x0) + 2688: 9024 ld.w r1, (r0, 0x10) + 268a: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 268c: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 268e: 9620 ld.w r1, (r6, 0x0) + 2690: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 2692: b166 st.w r3, (r1, 0x18) +} + 2694: 1402 addi r14, r14, 8 + 2696: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2698: 3941 cmpnei r1, 1 + 269a: 0bee bt 0x2676 // 2676 + ADC0->MR|=CONTCV; //Continuous mode + 269c: 9425 ld.w r1, (r4, 0x14) + 269e: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 26a0: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 26a2: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 26a4: 4002 lsli r0, r0, 2 + 26a6: 9428 ld.w r1, (r4, 0x20) + 26a8: 6840 and r1, r0 + 26aa: 3940 cmpnei r1, 0 + 26ac: 0ffd bf 0x26a6 // 26a6 + 26ae: 07e4 br 0x2676 // 2676 + ADC0->CR&=~ADC12_10BITor12BIT; + 26b0: 9600 ld.w r0, (r6, 0x0) + 26b2: 9024 ld.w r1, (r0, 0x10) + 26b4: 4121 lsli r1, r1, 1 + 26b6: 4921 lsri r1, r1, 1 + 26b8: 07ea br 0x268c // 268c + 26ba: 0000 bkpt + 26bc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +000026c0 : +//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) + 26c0: 3840 cmpnei r0, 0 + 26c2: 0808 bt 0x26d2 // 26d2 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 26c4: 127c lrw r3, 0x20000050 // 2834 + 26c6: 123d lrw r1, 0x103c0 // 2838 + 26c8: 9340 ld.w r2, (r3, 0x0) + 26ca: 9264 ld.w r3, (r2, 0x10) + 26cc: 68c5 andn r3, r1 + 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); + 26ce: b264 st.w r3, (r2, 0x10) + } +} + 26d0: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 26d2: 3841 cmpnei r0, 1 + 26d4: 0810 bt 0x26f4 // 26f4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26d6: 127a lrw r3, 0x2000004c // 283c + 26d8: 32f0 movi r2, 240 + 26da: 9320 ld.w r1, (r3, 0x0) + 26dc: 9160 ld.w r3, (r1, 0x0) + 26de: 4244 lsli r2, r2, 4 + 26e0: 68c9 andn r3, r2 + 26e2: 3bab bseti r3, 11 + 26e4: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 26e6: 1235 lrw r1, 0x103c0 // 2838 + 26e8: 1273 lrw r3, 0x20000050 // 2834 + 26ea: 9340 ld.w r2, (r3, 0x0) + 26ec: 9264 ld.w r3, (r2, 0x10) + 26ee: 68c5 andn r3, r1 + 26f0: 3ba6 bseti r3, 6 + 26f2: 07ee br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 26f4: 3842 cmpnei r0, 2 + 26f6: 0811 bt 0x2718 // 2718 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26f8: 1271 lrw r3, 0x2000004c // 283c + 26fa: 32f0 movi r2, 240 + 26fc: 9320 ld.w r1, (r3, 0x0) + 26fe: 9160 ld.w r3, (r1, 0x0) + 2700: 4244 lsli r2, r2, 4 + 2702: 68c9 andn r3, r2 + 2704: 3bab bseti r3, 11 + 2706: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2708: 122e lrw r1, 0x30103c0 // 2840 + 270a: 126b lrw r3, 0x20000050 // 2834 + 270c: 9340 ld.w r2, (r3, 0x0) + 270e: 9264 ld.w r3, (r2, 0x10) + 2710: 68c5 andn r3, r1 + 2712: 3ba7 bseti r3, 7 + 2714: 3bb8 bseti r3, 24 + 2716: 07dc br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2718: 3843 cmpnei r0, 3 + 271a: 0811 bt 0x273c // 273c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 271c: 1268 lrw r3, 0x2000004c // 283c + 271e: 32f0 movi r2, 240 + 2720: 9320 ld.w r1, (r3, 0x0) + 2722: 9160 ld.w r3, (r1, 0x0) + 2724: 4244 lsli r2, r2, 4 + 2726: 68c9 andn r3, r2 + 2728: 3bab bseti r3, 11 + 272a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 272c: 1225 lrw r1, 0x30103c0 // 2840 + 272e: 1262 lrw r3, 0x20000050 // 2834 + 2730: 9340 ld.w r2, (r3, 0x0) + 2732: 9264 ld.w r3, (r2, 0x10) + 2734: 68c5 andn r3, r1 + 2736: 1224 lrw r1, 0x30000c0 // 2844 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2738: 6cc4 or r3, r1 + 273a: 07ca br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 273c: 3845 cmpnei r0, 5 + 273e: 0809 bt 0x2750 // 2750 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2740: 117d lrw r3, 0x20000050 // 2834 + 2742: 1222 lrw r1, 0x503c0 // 2848 + 2744: 9340 ld.w r2, (r3, 0x0) + 2746: 9264 ld.w r3, (r2, 0x10) + 2748: 68c5 andn r3, r1 + 274a: 3ba8 bseti r3, 8 + 274c: 3bb2 bseti r3, 18 + 274e: 07c0 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2750: 3846 cmpnei r0, 6 + 2752: 0812 bt 0x2776 // 2776 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2754: 117a lrw r3, 0x2000004c // 283c + 2756: 32f0 movi r2, 240 + 2758: 9320 ld.w r1, (r3, 0x0) + 275a: 9160 ld.w r3, (r1, 0x0) + 275c: 4248 lsli r2, r2, 8 + 275e: 68c9 andn r3, r2 + 2760: 32b0 movi r2, 176 + 2762: 4248 lsli r2, r2, 8 + 2764: 6cc8 or r3, r2 + 2766: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2768: 1134 lrw r1, 0x103c0 // 2838 + 276a: 1173 lrw r3, 0x20000050 // 2834 + 276c: 9340 ld.w r2, (r3, 0x0) + 276e: 9264 ld.w r3, (r2, 0x10) + 2770: 68c5 andn r3, r1 + 2772: 3ba9 bseti r3, 9 + 2774: 07ad br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2776: 3847 cmpnei r0, 7 + 2778: 0819 bt 0x27aa // 27aa + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 277a: 1171 lrw r3, 0x2000004c // 283c + 277c: 31f0 movi r1, 240 + 277e: 9340 ld.w r2, (r3, 0x0) + 2780: 9260 ld.w r3, (r2, 0x0) + 2782: 4128 lsli r1, r1, 8 + 2784: 68c5 andn r3, r1 + 2786: 31b0 movi r1, 176 + 2788: 4128 lsli r1, r1, 8 + 278a: 6cc4 or r3, r1 + 278c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 278e: 31f0 movi r1, 240 + 2790: 9260 ld.w r3, (r2, 0x0) + 2792: 4124 lsli r1, r1, 4 + 2794: 68c5 andn r3, r1 + 2796: 3bab bseti r3, 11 + 2798: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 279a: 1128 lrw r1, 0x103c0 // 2838 + 279c: 1166 lrw r3, 0x20000050 // 2834 + 279e: 9340 ld.w r2, (r3, 0x0) + 27a0: 9264 ld.w r3, (r2, 0x10) + 27a2: 68c5 andn r3, r1 + 27a4: 3ba6 bseti r3, 6 + 27a6: 3ba9 bseti r3, 9 + 27a8: 0793 br 0x26ce // 26ce + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 27aa: 3848 cmpnei r0, 8 + 27ac: 0818 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ae: 1164 lrw r3, 0x2000004c // 283c + 27b0: 31f0 movi r1, 240 + 27b2: 9340 ld.w r2, (r3, 0x0) + 27b4: 9260 ld.w r3, (r2, 0x0) + 27b6: 4128 lsli r1, r1, 8 + 27b8: 68c5 andn r3, r1 + 27ba: 31b0 movi r1, 176 + 27bc: 4128 lsli r1, r1, 8 + 27be: 6cc4 or r3, r1 + 27c0: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27c2: 31f0 movi r1, 240 + 27c4: 9260 ld.w r3, (r2, 0x0) + 27c6: 4124 lsli r1, r1, 4 + 27c8: 68c5 andn r3, r1 + 27ca: 3bab bseti r3, 11 + 27cc: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 27ce: 103d lrw r1, 0x30103c0 // 2840 + 27d0: 1079 lrw r3, 0x20000050 // 2834 + 27d2: 9340 ld.w r2, (r3, 0x0) + 27d4: 9264 ld.w r3, (r2, 0x10) + 27d6: 68c5 andn r3, r1 + 27d8: 103d lrw r1, 0x1000280 // 284c + 27da: 07af br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 27dc: 3849 cmpnei r0, 9 + 27de: 0818 bt 0x280e // 280e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27e0: 1077 lrw r3, 0x2000004c // 283c + 27e2: 31f0 movi r1, 240 + 27e4: 9340 ld.w r2, (r3, 0x0) + 27e6: 9260 ld.w r3, (r2, 0x0) + 27e8: 4128 lsli r1, r1, 8 + 27ea: 68c5 andn r3, r1 + 27ec: 31b0 movi r1, 176 + 27ee: 4128 lsli r1, r1, 8 + 27f0: 6cc4 or r3, r1 + 27f2: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27f4: 31f0 movi r1, 240 + 27f6: 9260 ld.w r3, (r2, 0x0) + 27f8: 4124 lsli r1, r1, 4 + 27fa: 68c5 andn r3, r1 + 27fc: 3bab bseti r3, 11 + 27fe: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2800: 1030 lrw r1, 0x30103c0 // 2840 + 2802: 106d lrw r3, 0x20000050 // 2834 + 2804: 9340 ld.w r2, (r3, 0x0) + 2806: 9264 ld.w r3, (r2, 0x10) + 2808: 68c5 andn r3, r1 + 280a: 1032 lrw r1, 0x30002c0 // 2850 + 280c: 0796 br 0x2738 // 2738 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 280e: 384b cmpnei r0, 11 + 2810: 0b60 bt 0x26d0 // 26d0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2812: 106b lrw r3, 0x2000004c // 283c + 2814: 32f0 movi r2, 240 + 2816: 9320 ld.w r1, (r3, 0x0) + 2818: 9160 ld.w r3, (r1, 0x0) + 281a: 4248 lsli r2, r2, 8 + 281c: 68c9 andn r3, r2 + 281e: 32b0 movi r2, 176 + 2820: 4248 lsli r2, r2, 8 + 2822: 6cc8 or r3, r2 + 2824: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2826: 1029 lrw r1, 0x503c0 // 2848 + 2828: 1063 lrw r3, 0x20000050 // 2834 + 282a: 9340 ld.w r2, (r3, 0x0) + 282c: 9264 ld.w r3, (r2, 0x10) + 282e: 68c5 andn r3, r1 + 2830: 1029 lrw r1, 0x40300 // 2854 + 2832: 0783 br 0x2738 // 2738 + 2834: 20000050 .long 0x20000050 + 2838: 000103c0 .long 0x000103c0 + 283c: 2000004c .long 0x2000004c + 2840: 030103c0 .long 0x030103c0 + 2844: 030000c0 .long 0x030000c0 + 2848: 000503c0 .long 0x000503c0 + 284c: 01000280 .long 0x01000280 + 2850: 030002c0 .long 0x030002c0 + 2854: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002858 : +//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) +{ + 2858: 14d4 push r4-r7, r15 + 285a: 1421 subi r14, r14, 4 + 285c: b840 st.w r2, (r14, 0x0) + 285e: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2860: 125b lrw r2, 0x20000050 // 29cc + 2862: 92c0 ld.w r6, (r2, 0x0) + 2864: 3200 movi r2, 0 + 2866: 4202 lsli r0, r2, 2 + 2868: 6018 addu r0, r6 + 286a: 908c ld.w r4, (r0, 0x30) + 286c: 2200 addi r2, 1 + 286e: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2870: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2872: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2874: 0bf9 bt 0x2866 // 2866 + } + switch(ADC12_ADCINX) + 2876: 3d0f cmphsi r5, 16 + 2878: 0825 bt 0x28c2 // 28c2 + 287a: 6c17 mov r0, r5 + 287c: 1255 lrw r2, 0x2000004c // 29d0 + 287e: 1296 lrw r4, 0x20000048 // 29d4 + 2880: e3fff23e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2884: 322c1408 .long 0x322c1408 + 2888: 4d474039 .long 0x4d474039 + 288c: 756d6559 .long 0x756d6559 + 2890: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2894: 9240 ld.w r2, (r2, 0x0) + 2896: 9200 ld.w r0, (r2, 0x0) + 2898: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 289a: 9201 ld.w r0, (r2, 0x4) + 289c: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 289e: 9400 ld.w r0, (r4, 0x0) + 28a0: 9040 ld.w r2, (r0, 0x0) + 28a2: 34f0 movi r4, 240 + 28a4: 6891 andn r2, r4 + 28a6: 3aa4 bseti r2, 4 + 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; + 28a8: b040 st.w r2, (r0, 0x0) + break; + 28aa: 040c br 0x28c2 // 28c2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 28ac: 9200 ld.w r0, (r2, 0x0) + 28ae: 9040 ld.w r2, (r0, 0x0) + 28b0: 370f movi r7, 15 + 28b2: 689d andn r2, r7 + 28b4: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28b6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28b8: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 28ba: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 28bc: 9440 ld.w r2, (r4, 0x0) + 28be: 9200 ld.w r0, (r2, 0x0) + 28c0: b200 st.w r0, (r2, 0x0) + 28c2: 4362 lsli r3, r3, 2 + 28c4: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 28c6: 966c ld.w r3, (r6, 0x30) + 28c8: 3300 movi r3, 0 + 28ca: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 28cc: 9860 ld.w r3, (r14, 0x0) + 28ce: 6c4c or r1, r3 + 28d0: 964c ld.w r2, (r6, 0x30) + 28d2: 6d44 or r5, r1 + 28d4: 6d48 or r5, r2 + 28d6: b6ac st.w r5, (r6, 0x30) +} + 28d8: 1401 addi r14, r14, 4 + 28da: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 28dc: 9200 ld.w r0, (r2, 0x0) + 28de: 9040 ld.w r2, (r0, 0x0) + 28e0: 37f0 movi r7, 240 + 28e2: 689d andn r2, r7 + 28e4: 3aa4 bseti r2, 4 + 28e6: 07e8 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 28e8: 9200 ld.w r0, (r2, 0x0) + 28ea: 37f0 movi r7, 240 + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 47e8 lsli r7, r7, 8 + 28f0: 689d andn r2, r7 + 28f2: 3aac bseti r2, 12 + 28f4: 07e1 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: 37f0 movi r7, 240 + 28fa: 9040 ld.w r2, (r0, 0x0) + 28fc: 47f0 lsli r7, r7, 16 + 28fe: 689d andn r2, r7 + 2900: 3ab4 bseti r2, 20 + 2902: 07da br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2904: 9200 ld.w r0, (r2, 0x0) + 2906: 37f0 movi r7, 240 + 2908: 9040 ld.w r2, (r0, 0x0) + 290a: 47f4 lsli r7, r7, 20 + 290c: 689d andn r2, r7 + 290e: 3ab8 bseti r2, 24 + 2910: 07d3 br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2912: 9200 ld.w r0, (r2, 0x0) + 2914: 9040 ld.w r2, (r0, 0x0) + 2916: 4244 lsli r2, r2, 4 + 2918: 4a44 lsri r2, r2, 4 + 291a: 3abc bseti r2, 28 + 291c: 07cd br 0x28b6 // 28b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 291e: 9240 ld.w r2, (r2, 0x0) + 2920: 9200 ld.w r0, (r2, 0x0) + 2922: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2924: 9201 ld.w r0, (r2, 0x4) + 2926: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2928: 9400 ld.w r0, (r4, 0x0) + 292a: 34f0 movi r4, 240 + 292c: 9040 ld.w r2, (r0, 0x0) + 292e: 4484 lsli r4, r4, 4 + 2930: 6891 andn r2, r4 + 2932: 3aa8 bseti r2, 8 + 2934: 07ba br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2936: 9240 ld.w r2, (r2, 0x0) + 2938: 9200 ld.w r0, (r2, 0x0) + 293a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 293c: 9201 ld.w r0, (r2, 0x4) + 293e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2940: 9400 ld.w r0, (r4, 0x0) + 2942: 34f0 movi r4, 240 + 2944: 9040 ld.w r2, (r0, 0x0) + 2946: 4488 lsli r4, r4, 8 + 2948: 6891 andn r2, r4 + 294a: 3aac bseti r2, 12 + 294c: 07ae br 0x28a8 // 28a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 294e: 9200 ld.w r0, (r2, 0x0) + 2950: 9040 ld.w r2, (r0, 0x0) + 2952: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 370f movi r7, 15 + 2958: 689d andn r2, r7 + 295a: 3aa0 bseti r2, 0 + 295c: 07af br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 295e: 9200 ld.w r0, (r2, 0x0) + 2960: 9040 ld.w r2, (r0, 0x0) + 2962: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2964: 9041 ld.w r2, (r0, 0x4) + 2966: 37f0 movi r7, 240 + 2968: 689d andn r2, r7 + 296a: 3aa4 bseti r2, 4 + 296c: 07a7 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 296e: 9200 ld.w r0, (r2, 0x0) + 2970: 9040 ld.w r2, (r0, 0x0) + 2972: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2974: 37f0 movi r7, 240 + 2976: 9041 ld.w r2, (r0, 0x4) + 2978: 47e4 lsli r7, r7, 4 + 297a: 689d andn r2, r7 + 297c: 3aa8 bseti r2, 8 + 297e: 079e br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2980: 9200 ld.w r0, (r2, 0x0) + 2982: 9040 ld.w r2, (r0, 0x0) + 2984: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2986: 37f0 movi r7, 240 + 2988: 9041 ld.w r2, (r0, 0x4) + 298a: 47e8 lsli r7, r7, 8 + 298c: 689d andn r2, r7 + 298e: 3aac bseti r2, 12 + 2990: 0795 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2992: 9200 ld.w r0, (r2, 0x0) + 2994: 9040 ld.w r2, (r0, 0x0) + 2996: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2998: 37f0 movi r7, 240 + 299a: 9041 ld.w r2, (r0, 0x4) + 299c: 47ec lsli r7, r7, 12 + 299e: 689d andn r2, r7 + 29a0: 3ab0 bseti r2, 16 + 29a2: 078c br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 29a4: 9200 ld.w r0, (r2, 0x0) + 29a6: 9040 ld.w r2, (r0, 0x0) + 29a8: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 29aa: 37f0 movi r7, 240 + 29ac: 9041 ld.w r2, (r0, 0x4) + 29ae: 47f0 lsli r7, r7, 16 + 29b0: 689d andn r2, r7 + 29b2: 3ab4 bseti r2, 20 + 29b4: 0783 br 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 29b6: 9240 ld.w r2, (r2, 0x0) + 29b8: 9200 ld.w r0, (r2, 0x0) + 29ba: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29bc: 9201 ld.w r0, (r2, 0x4) + 29be: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 29c0: 9400 ld.w r0, (r4, 0x0) + 29c2: 9040 ld.w r2, (r0, 0x0) + 29c4: 340f movi r4, 15 + 29c6: 6891 andn r2, r4 + 29c8: 3aa0 bseti r2, 0 + 29ca: 076f br 0x28a8 // 28a8 + 29cc: 20000050 .long 0x20000050 + 29d0: 2000004c .long 0x2000004c + 29d4: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +000029d8 : + 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) +{ + 29d8: 14c4 push r4-r7 + 29da: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 29dc: 1165 lrw r3, 0x20000060 // 2a70 + 29de: 1186 lrw r4, 0x5a5a5a5a // 2a74 + 29e0: 9360 ld.w r3, (r3, 0x0) + 29e2: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 29e4: 3407 movi r4, 7 + 29e6: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29e8: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 29ea: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ec: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29ee: 9384 ld.w r4, (r3, 0x10) + 29f0: 3c40 cmpnei r4, 0 + 29f2: 0bfe bt 0x29ee // 29ee + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 29f4: 2102 addi r1, 3 + 29f6: 4922 lsri r1, r1, 2 + 29f8: 4122 lsli r1, r1, 2 + 29fa: 6048 addu r1, r2 + 29fc: b820 st.w r1, (r14, 0x0) + 29fe: 5829 subu r1, r0, r2 + 2a00: b821 st.w r1, (r14, 0x4) + 2a02: 9820 ld.w r1, (r14, 0x0) + 2a04: 644a cmpne r2, r1 + 2a06: 0826 bt 0x2a52 // 2a52 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2a08: 3106 movi r1, 6 + SetUserKey; + 2a0a: 105b lrw r2, 0x5a5a5a5a // 2a74 + 2a0c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2a0e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2a10: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2a12: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a14: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2a16: 9324 ld.w r1, (r3, 0x10) + 2a18: 3940 cmpnei r1, 0 + 2a1a: 0bfe bt 0x2a16 // 2a16 + //Perform pre-programming 4 + SetUserKey; + 2a1c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a1e: 3201 movi r2, 1 + 2a20: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a22: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a24: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2a26: 934a ld.w r2, (r3, 0x28) + 2a28: 3a44 cmpnei r2, 4 + 2a2a: 0bfe bt 0x2a26 // 2a26 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2a2c: 3102 movi r1, 2 + SetUserKey; + 2a2e: 1052 lrw r2, 0x5a5a5a5a // 2a74 + 2a30: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2a32: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a34: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a36: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a38: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a3a: 932a ld.w r1, (r3, 0x28) + 2a3c: 3941 cmpnei r1, 1 + 2a3e: 0bfe bt 0x2a3a // 2a3a + //Write page cache data to flash memory 6 + SetUserKey; + 2a40: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a42: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a44: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a46: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a48: 934a ld.w r2, (r3, 0x28) + 2a4a: 3a42 cmpnei r2, 2 + 2a4c: 0bfe bt 0x2a48 // 2a48 +} + 2a4e: 1402 addi r14, r14, 8 + 2a50: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a52: 82e0 ld.b r7, (r2, 0x0) + 2a54: 8281 ld.b r4, (r2, 0x1) + 2a56: 4488 lsli r4, r4, 8 + 2a58: 8222 ld.b r1, (r2, 0x2) + 2a5a: 611c addu r4, r7 + 2a5c: 82a3 ld.b r5, (r2, 0x3) + 2a5e: 4130 lsli r1, r1, 16 + 2a60: 98c1 ld.w r6, (r14, 0x4) + 2a62: 6050 addu r1, r4 + 2a64: 45b8 lsli r5, r5, 24 + 2a66: 6188 addu r6, r2 + 2a68: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a6a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a6c: 2203 addi r2, 4 + 2a6e: 07ca br 0x2a02 // 2a02 + 2a70: 20000060 .long 0x20000060 + 2a74: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a78 : +//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) +{ + 2a78: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a84: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a86: 3b40 cmpnei r3, 0 + 2a88: 0c06 bf 0x2a94 // 2a94 + 2a8a: 6d0f mov r4, r3 + 2a8c: 6914 and r4, r5 + 2a8e: 3c40 cmpnei r4, 0 + 2a90: 0802 bt 0x2a94 // 2a94 + RdStartAdd +=4; + 2a92: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a94: 6d0f mov r4, r3 + 2a96: 6914 and r4, r5 + 2a98: 6100 addu r4, r0 + 2a9a: 8480 ld.b r4, (r4, 0x0) + 2a9c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002aa4 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2aa4: 33f8 movi r3, 248 + 2aa6: 4366 lsli r3, r3, 6 + 2aa8: 115b lrw r2, 0x2000010c // 2b94 + 2aaa: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2aac: 3246 movi r2, 70 + 2aae: 117b lrw r3, 0x20000112 // 2b98 + 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 + 2ab0: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2ab2: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2ab4: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2ab6: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2ab8: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2aba: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2abc: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2abe: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2ac0: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2ac2: 1157 lrw r2, 0x200002f0 // 2b9c + 2ac4: 8a22 ld.h r1, (r2, 0x4) + 2ac6: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2ac8: 8a23 ld.h r1, (r2, 0x6) + 2aca: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2acc: 8a24 ld.h r1, (r2, 0x8) + 2ace: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2ad0: 8a25 ld.h r1, (r2, 0xa) + 2ad2: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2ad4: 8a26 ld.h r1, (r2, 0xc) + 2ad6: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2ad8: 3146 movi r1, 70 + 2ada: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2adc: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2ade: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae0: 3128 movi r1, 40 + 2ae2: 1170 lrw r3, 0x20000136 // 2ba0 + 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 + 2ae4: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ae6: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2ae8: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2aea: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2aec: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2aee: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2af0: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2af2: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2af4: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2af6: 8a27 ld.h r1, (r2, 0xe) + 2af8: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2afa: 8a28 ld.h r1, (r2, 0x10) + 2afc: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2afe: 8a29 ld.h r1, (r2, 0x12) + 2b00: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2b02: 8a2a ld.h r1, (r2, 0x14) + 2b04: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2b06: 8a2b ld.h r1, (r2, 0x16) + 2b08: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2b0a: 3128 movi r1, 40 + 2b0c: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2b0e: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2b10: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2b12: 8220 ld.b r1, (r2, 0x0) + 2b14: 1164 lrw r3, 0x200000dc // 2ba4 + 2b16: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2b18: 8221 ld.b r1, (r2, 0x1) + 2b1a: 1164 lrw r3, 0x200000e4 // 2ba8 + 2b1c: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2b1e: 3101 movi r1, 1 + 2b20: 1163 lrw r3, 0x200000e5 // 2bac + 2b22: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2b24: 3100 movi r1, 0 + 2b26: 1163 lrw r3, 0x20000108 // 2bb0 + 2b28: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2b2a: 3106 movi r1, 6 + 2b2c: 1162 lrw r3, 0x20000110 // 2bb4 + 2b2e: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2b30: 8223 ld.b r1, (r2, 0x3) + 2b32: 1162 lrw r3, 0x20000109 // 2bb8 + 2b34: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b36: 9246 ld.w r2, (r2, 0x18) + 2b38: 1161 lrw r3, 0x200000e0 // 2bbc + 2b3a: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b3c: 1141 lrw r2, 0xea5f // 2bc0 + 2b3e: 1162 lrw r3, 0x2000015c // 2bc4 + 2b40: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b42: 3200 movi r2, 0 + 2b44: 1161 lrw r3, 0x200000dd // 2bc8 + 2b46: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b48: 3202 movi r2, 2 + 2b4a: 1161 lrw r3, 0x200000de // 2bcc + 2b4c: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b4e: 3232 movi r2, 50 + 2b50: 1160 lrw r3, 0x20000134 // 2bd0 + 2b52: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b54: 3200 movi r2, 0 + 2b56: 1160 lrw r3, 0x20000160 // 2bd4 + 2b58: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b5a: 3201 movi r2, 1 + 2b5c: 107f lrw r3, 0x2000015a // 2bd8 + 2b5e: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b60: 3200 movi r2, 0 + 2b62: 107f lrw r3, 0x20000158 // 2bdc + 2b64: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b66: 3204 movi r2, 4 + 2b68: 107e lrw r3, 0x200000e6 // 2be0 + 2b6a: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2b6c: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2b6e: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2b70: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2b72: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2b74: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2b76: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2b78: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2b7a: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2b7c: 3207 movi r2, 7 + 2b7e: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2b80: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2b82: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2b84: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2b86: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2b88: 3204 movi r2, 4 + 2b8a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2b8c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2b8e: ab50 st.h r2, (r3, 0x20) + 2b90: 783c jmp r15 + 2b92: 0000 bkpt + 2b94: 2000010c .long 0x2000010c + 2b98: 20000112 .long 0x20000112 + 2b9c: 200002f0 .long 0x200002f0 + 2ba0: 20000136 .long 0x20000136 + 2ba4: 200000dc .long 0x200000dc + 2ba8: 200000e4 .long 0x200000e4 + 2bac: 200000e5 .long 0x200000e5 + 2bb0: 20000108 .long 0x20000108 + 2bb4: 20000110 .long 0x20000110 + 2bb8: 20000109 .long 0x20000109 + 2bbc: 200000e0 .long 0x200000e0 + 2bc0: 0000ea5f .long 0x0000ea5f + 2bc4: 2000015c .long 0x2000015c + 2bc8: 200000dd .long 0x200000dd + 2bcc: 200000de .long 0x200000de + 2bd0: 20000134 .long 0x20000134 + 2bd4: 20000160 .long 0x20000160 + 2bd8: 2000015a .long 0x2000015a + 2bdc: 20000158 .long 0x20000158 + 2be0: 200000e6 .long 0x200000e6 + +Disassembly of section .text.CORET_DeInit: + +00002be4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2be4: 1065 lrw r3, 0x20000064 // 2bf8 + 2be6: 3204 movi r2, 4 + 2be8: 9360 ld.w r3, (r3, 0x0) + 2bea: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2bec: 3200 movi r2, 0 + 2bee: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2bf0: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2bf2: b347 st.w r2, (r3, 0x1c) +} + 2bf4: 783c jmp r15 + 2bf6: 0000 bkpt + 2bf8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002bfc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2bfc: 1064 lrw r3, 0x20000064 // 2c0c + 2bfe: 3200 movi r2, 0 + 2c00: 9360 ld.w r3, (r3, 0x0) + 2c02: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2c04: 3201 movi r2, 1 + 2c06: 1063 lrw r3, 0xe000e100 // 2c10 + 2c08: b340 st.w r2, (r3, 0x0) +} + 2c0a: 783c jmp r15 + 2c0c: 20000064 .long 0x20000064 + 2c10: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002c14 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2c14: 1063 lrw r3, 0x20000064 // 2c20 + 2c16: 9340 ld.w r2, (r3, 0x0) + 2c18: 9264 ld.w r3, (r2, 0x10) + 2c1a: 3ba0 bseti r3, 0 + 2c1c: b264 st.w r3, (r2, 0x10) +} + 2c1e: 783c jmp r15 + 2c20: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002c24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2c24: 1063 lrw r3, 0x20000064 // 2c30 + 2c26: 9340 ld.w r2, (r3, 0x0) + 2c28: 9264 ld.w r3, (r2, 0x10) + 2c2a: 3b82 bclri r3, 2 + 2c2c: b264 st.w r3, (r2, 0x10) +} + 2c2e: 783c jmp r15 + 2c30: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c34: 1063 lrw r3, 0x20000064 // 2c40 + 2c36: 9340 ld.w r2, (r3, 0x0) + 2c38: 9264 ld.w r3, (r2, 0x10) + 2c3a: 3ba1 bseti r3, 1 + 2c3c: b264 st.w r3, (r2, 0x10) +} + 2c3e: 783c jmp r15 + 2c40: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c44 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c44: 1063 lrw r3, 0x20000064 // 2c50 + 2c46: 3200 movi r2, 0 + 2c48: 9360 ld.w r3, (r3, 0x0) + 2c4a: b346 st.w r2, (r3, 0x18) +} + 2c4c: 783c jmp r15 + 2c4e: 0000 bkpt + 2c50: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c54
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c54: 14d1 push r4, r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2c56: e00000ef bsr 0x2e34 // 2e34 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c5a: 1077 lrw r3, 0x20000350 // 2cb4 + 2c5c: 8340 ld.b r2, (r3, 0x0) + 2c5e: 1037 lrw r1, 0x7c40 // 2cb8 + 2c60: 3000 movi r0, 0 + 2c62: e0000775 bsr 0x3b4c // 3b4c + + TemCtrl_Init(); + 2c66: e00011e7 bsr 0x5034 // 5034 + DisPlay_Init(); + 2c6a: e000172f bsr 0x5ac8 // 5ac8 + Debug_Init(); + 2c6e: e00018c9 bsr 0x5e00 // 5e00 + RF_Info_Init(); + 2c72: e00019a5 bsr 0x5fbc // 5fbc + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + + if (detect_inf.stop_detect == 0x00) { + 2c76: 1092 lrw r4, 0x200003cc // 2cbc + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c78: e3fff7f6 bsr 0x1c64 // 1c64 + if (detect_inf.stop_detect == 0x00) { + 2c7c: 8462 ld.b r3, (r4, 0x2) + 2c7e: 3b40 cmpnei r3, 0 + 2c80: 0804 bt 0x2c88 // 2c88 + Control_Mode_Detection(); + 2c82: e000117f bsr 0x4f80 // 4f80 + 2c86: 07f9 br 0x2c78 // 2c78 + }else { + + UART2_TASK(); + 2c88: e00006d0 bsr 0x3a28 // 3a28 + + Touch_Key_Task(); + 2c8c: e00008d2 bsr 0x3e30 // 3e30 + + TemCtrl_Pro(); + 2c90: e000139c bsr 0x53c8 // 53c8 + + DisPlay_Task(); + 2c94: e000172a bsr 0x5ae8 // 5ae8 + + HT1621_Refresh_Task(); + 2c98: e000112e bsr 0x4ef4 // 4ef4 + + ADC_Sample_Task(); + 2c9c: e0000e14 bsr 0x48c4 // 48c4 + + Debug_Task(); + 2ca0: e0001902 bsr 0x5ea4 // 5ea4 + + if (detect_inf.control_model != 0x00){ + 2ca4: 8463 ld.b r3, (r4, 0x3) + 2ca6: 3b40 cmpnei r3, 0 + 2ca8: 0fe8 bf 0x2c78 // 2c78 + + TemFun_Report_Task(); + 2caa: e0001b79 bsr 0x639c // 639c + zigbee_uart_service(); + 2cae: e0001b13 bsr 0x62d4 // 62d4 + 2cb2: 07e3 br 0x2c78 // 2c78 + 2cb4: 20000350 .long 0x20000350 + 2cb8: 00007c40 .long 0x00007c40 + 2cbc: 200003cc .long 0x200003cc + +Disassembly of section .text.delay_nms: + +00002cc0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2cc0: 14d0 push r15 + 2cc2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2cc4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2cc6: 3300 movi r3, 0 + j = 50* t; + 2cc8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2cca: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2ccc: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cce: b860 st.w r3, (r14, 0x0) + 2cd0: 9840 ld.w r2, (r14, 0x0) + 2cd2: 9861 ld.w r3, (r14, 0x4) + 2cd4: 64c8 cmphs r2, r3 + 2cd6: 0c03 bf 0x2cdc // 2cdc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2cd8: 1403 addi r14, r14, 12 + 2cda: 1490 pop r15 + k++; + 2cdc: 9862 ld.w r3, (r14, 0x8) + 2cde: 2300 addi r3, 1 + 2ce0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2ce2: e3fff7c1 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2ce6: 9860 ld.w r3, (r14, 0x0) + 2ce8: 2300 addi r3, 1 + 2cea: 07f2 br 0x2cce // 2cce + +Disassembly of section .text.delay_nus: + +00002cec : +void delay_nus(unsigned int t) +{ + 2cec: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2cee: 3300 movi r3, 0 + 2cf0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2cf2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cf4: b860 st.w r3, (r14, 0x0) + 2cf6: 9840 ld.w r2, (r14, 0x0) + 2cf8: 9861 ld.w r3, (r14, 0x4) + 2cfa: 64c8 cmphs r2, r3 + 2cfc: 0c03 bf 0x2d02 // 2d02 + { + k++; + } +} + 2cfe: 1403 addi r14, r14, 12 + 2d00: 783c jmp r15 + k++; + 2d02: 9862 ld.w r3, (r14, 0x8) + 2d04: 2300 addi r3, 1 + 2d06: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2d08: 9860 ld.w r3, (r14, 0x0) + 2d0a: 2300 addi r3, 1 + 2d0c: 07f4 br 0x2cf4 // 2cf4 + +Disassembly of section .text.EPT0_CONFIG: + +00002d10 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2d10: 14d1 push r4, r15 + 2d12: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2d14: e3fffa14 bsr 0x213c // 213c +//------------ 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_PB00); //CX channel selection + 2d18: 311d movi r1, 29 + 2d1a: 3004 movi r0, 4 + 2d1c: e3fffa48 bsr 0x21ac // 21ac + //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) + 2d20: 3300 movi r3, 0 + 2d22: 3200 movi r2, 0 + 2d24: 3100 movi r1, 0 + 2d26: 3000 movi r0, 0 + 2d28: e3fffb5e bsr 0x23e4 // 23e4 +// 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, + 2d2c: 3380 movi r3, 128 + 2d2e: 3400 movi r4, 0 + 2d30: b862 st.w r3, (r14, 0x8) + 2d32: 3280 movi r2, 128 + 2d34: 3320 movi r3, 32 + 2d36: 3180 movi r1, 128 + 2d38: b861 st.w r3, (r14, 0x4) + 2d3a: 4250 lsli r2, r2, 16 + 2d3c: 412e lsli r1, r1, 14 + 2d3e: b888 st.w r4, (r14, 0x20) + 2d40: b887 st.w r4, (r14, 0x1c) + 2d42: b886 st.w r4, (r14, 0x18) + 2d44: b885 st.w r4, (r14, 0x14) + 2d46: b884 st.w r4, (r14, 0x10) + 2d48: b883 st.w r4, (r14, 0xc) + 2d4a: b880 st.w r4, (r14, 0x0) + 2d4c: 3301 movi r3, 1 + 2d4e: 3002 movi r0, 2 + 2d50: e3fffb66 bsr 0x241c // 241c +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2d54: 1066 lrw r3, 0xbb8 // 2d6c + 2d56: 3200 movi r2, 0 + 2d58: 3100 movi r1, 0 + 2d5a: 6c0f mov r0, r3 + 2d5c: b880 st.w r4, (r14, 0x0) + 2d5e: e3fffbcb bsr 0x24f4 // 24f4 + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2d62: e3fff9fd bsr 0x215c // 215c + +} + 2d66: 1409 addi r14, r14, 36 + 2d68: 1491 pop r4, r15 + 2d6a: 0000 bkpt + 2d6c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002d70 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2d70: 14d2 push r4-r5, r15 + 2d72: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2d74: 1095 lrw r4, 0x20000008 // 2dc8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d76: 3500 movi r5, 0 + BT_DeInit(BT1); + 2d78: 9400 ld.w r0, (r4, 0x0) + 2d7a: e3fff8bd bsr 0x1ef4 // 1ef4 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d7e: 9400 ld.w r0, (r4, 0x0) + 2d80: b8a1 st.w r5, (r14, 0x4) + 2d82: b8a0 st.w r5, (r14, 0x0) + 2d84: 3308 movi r3, 8 + 2d86: 3200 movi r2, 0 + 2d88: 3101 movi r1, 1 + 2d8a: e3fff8cc 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); + 2d8e: 3380 movi r3, 128 + 2d90: 4363 lsli r3, r3, 3 + 2d92: b861 st.w r3, (r14, 0x4) + 2d94: 9400 ld.w r0, (r4, 0x0) + 2d96: 3300 movi r3, 0 + 2d98: b8a3 st.w r5, (r14, 0xc) + 2d9a: b8a2 st.w r5, (r14, 0x8) + 2d9c: b8a0 st.w r5, (r14, 0x0) + 2d9e: 3200 movi r2, 0 + 2da0: 3180 movi r1, 128 + 2da2: e3fff8cc bsr 0x1f3a // 1f3a + BT_Period_CMP_Write(BT1,4780,1); + 2da6: 3201 movi r2, 1 + 2da8: 1029 lrw r1, 0x12ac // 2dcc + 2daa: 9400 ld.w r0, (r4, 0x0) + 2dac: e3fff8dd bsr 0x1f66 // 1f66 + BT_Start(BT1); + 2db0: 9400 ld.w r0, (r4, 0x0) + 2db2: e3fff8af bsr 0x1f10 // 1f10 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2db6: 9400 ld.w r0, (r4, 0x0) + 2db8: 3202 movi r2, 2 + 2dba: 3101 movi r1, 1 + 2dbc: e3fff8d8 bsr 0x1f6c // 1f6c + BT1_INT_ENABLE(); + 2dc0: e3fff8e0 bsr 0x1f80 // 1f80 + +} + 2dc4: 1404 addi r14, r14, 16 + 2dc6: 1492 pop r4-r5, r15 + 2dc8: 20000008 .long 0x20000008 + 2dcc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002dd0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2dd0: 14d0 push r15 + 2dd2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2dd4: e3fff694 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2dd8: 3101 movi r1, 1 + 2dda: 3001 movi r0, 1 + 2ddc: e3fff6b6 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 + 2de0: 3000 movi r0, 0 + 2de2: e3fff70f 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 + 2de6: 3180 movi r1, 128 + 2de8: 3308 movi r3, 8 + 2dea: 3200 movi r2, 0 + 2dec: 4121 lsli r1, r1, 1 + 2dee: 3002 movi r0, 2 + 2df0: e3fff6c4 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2df4: 30c0 movi r0, 192 + 2df6: 3118 movi r1, 24 + 2df8: 4002 lsli r0, r0, 2 + 2dfa: e3fff73f bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2dfe: 3001 movi r0, 1 + 2e00: e3fff714 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2e04: e3fff730 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2e08: e3fff762 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 + 2e0c: 3340 movi r3, 64 + 2e0e: b860 st.w r3, (r14, 0x0) + 2e10: 31c0 movi r1, 192 + 2e12: 3380 movi r3, 128 + 2e14: 4364 lsli r3, r3, 4 + 2e16: 3200 movi r2, 0 + 2e18: 4123 lsli r1, r1, 3 + 2e1a: 3000 movi r0, 0 + 2e1c: e3fff73a bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2e20: e3fff748 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2e24: e3fff782 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 + 2e28: 3000 movi r0, 0 + 2e2a: e000236d bsr 0x7504 // 7504 + +} + 2e2e: 1401 addi r14, r14, 4 + 2e30: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002e34 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2e34: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e36: 107d lrw r3, 0x2000005c // 2ea8 + Sys_RSR = 0x00000000; + 2e38: 105d lrw r2, 0x200000a8 // 2eac + 2e3a: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e3c: 9360 ld.w r3, (r3, 0x0) + 2e3e: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2e40: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e42: 600c addu r0, r3 + 2e44: 9004 ld.w r0, (r0, 0x10) + 2e46: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2e48: 105a lrw r2, 0x200000a4 // 2eb0 + 2e4a: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2e4c: 3180 movi r1, 128 + 2e4e: 4121 lsli r1, r1, 1 + 2e50: 604c addu r1, r3 + 2e52: 9120 ld.w r1, (r1, 0x0) + 2e54: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2e56: 1058 lrw r2, 0xfffffff // 2eb4 + 2e58: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5a: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2e5c: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e5e: 934c ld.w r2, (r3, 0x30) + 2e60: 6884 and r2, r1 + 2e62: 3a40 cmpnei r2, 0 + 2e64: 0ffd bf 0x2e5e // 2e5e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2e66: e3ffffb5 bsr 0x2dd0 // 2dd0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2e6a: e0000521 bsr 0x38ac // 38ac + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2e6e: e3fff763 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2e72: 3101 movi r1, 1 + 2e74: 300f movi r0, 15 + 2e76: e3fff771 bsr 0x1d58 // 1d58 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2e7a: 3102 movi r1, 2 + 2e7c: 3019 movi r0, 25 + 2e7e: e3fff76d bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2e82: e0001af5 bsr 0x646c // 646c + + EPT0_CONFIG(); + 2e86: e3ffff45 bsr 0x2d10 // 2d10 + + BT_CONFIG(); //BT initial + 2e8a: e3ffff73 bsr 0x2d70 // 2d70 + + MODEL_Ctrl_Init(); + 2e8e: e0001063 bsr 0x4f54 // 4f54 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2e92: 102a lrw r1, 0x6900 // 2eb8 + 2e94: 3002 movi r0, 2 + 2e96: e000050f bsr 0x38b4 // 38b4 + + HT1621_Init(); //显示驱动初始化 + 2e9a: e0000db1 bsr 0x49fc // 49fc + + Touch_Key_Init(); + 2e9e: e000065f bsr 0x3b5c // 3b5c + + ADC_Init(); + 2ea2: e0000c5f bsr 0x4760 // 4760 + +} + 2ea6: 1490 pop r15 + 2ea8: 2000005c .long 0x2000005c + 2eac: 200000a8 .long 0x200000a8 + 2eb0: 200000a4 .long 0x200000a4 + 2eb4: 0fffffff .long 0x0fffffff + 2eb8: 00006900 .long 0x00006900 + +Disassembly of section .text.SYSCONIntHandler: + +00002ebc : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2ebc: 1460 nie + 2ebe: 1462 ipush + // ISR content ... + nop; + 2ec0: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2ec2: 117a lrw r3, 0x2000005c // 2fa8 + 2ec4: 3280 movi r2, 128 + 2ec6: 9360 ld.w r3, (r3, 0x0) + 2ec8: 60c8 addu r3, r2 + 2eca: 9323 ld.w r1, (r3, 0xc) + 2ecc: 3001 movi r0, 1 + 2ece: 6840 and r1, r0 + 2ed0: 3940 cmpnei r1, 0 + 2ed2: 0c04 bf 0x2eda // 2eda + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2ed4: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2ed6: 1463 ipop + 2ed8: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2eda: 9323 ld.w r1, (r3, 0xc) + 2edc: 3002 movi r0, 2 + 2ede: 6840 and r1, r0 + 2ee0: 3940 cmpnei r1, 0 + 2ee2: 0bf9 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2ee4: 9323 ld.w r1, (r3, 0xc) + 2ee6: 3008 movi r0, 8 + 2ee8: 6840 and r1, r0 + 2eea: 3940 cmpnei r1, 0 + 2eec: 0bf4 bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2eee: 9323 ld.w r1, (r3, 0xc) + 2ef0: 3010 movi r0, 16 + 2ef2: 6840 and r1, r0 + 2ef4: 3940 cmpnei r1, 0 + 2ef6: 0bef bt 0x2ed4 // 2ed4 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2ef8: 9323 ld.w r1, (r3, 0xc) + 2efa: 6848 and r1, r2 + 2efc: 3940 cmpnei r1, 0 + 2efe: 0c03 bf 0x2f04 // 2f04 + SYSCON->ICR = CMD_ERR_ST; + 2f00: b341 st.w r2, (r3, 0x4) +} + 2f02: 07ea br 0x2ed6 // 2ed6 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2f04: 3280 movi r2, 128 + 2f06: 9323 ld.w r1, (r3, 0xc) + 2f08: 4241 lsli r2, r2, 1 + 2f0a: 6848 and r1, r2 + 2f0c: 3940 cmpnei r1, 0 + 2f0e: 0bf9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2f10: 3280 movi r2, 128 + 2f12: 9323 ld.w r1, (r3, 0xc) + 2f14: 4242 lsli r2, r2, 2 + 2f16: 6848 and r1, r2 + 2f18: 3940 cmpnei r1, 0 + 2f1a: 0bf3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2f1c: 3280 movi r2, 128 + 2f1e: 9323 ld.w r1, (r3, 0xc) + 2f20: 4243 lsli r2, r2, 3 + 2f22: 6848 and r1, r2 + 2f24: 3940 cmpnei r1, 0 + 2f26: 0bed bt 0x2f00 // 2f00 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2f28: 3280 movi r2, 128 + 2f2a: 9323 ld.w r1, (r3, 0xc) + 2f2c: 4244 lsli r2, r2, 4 + 2f2e: 6848 and r1, r2 + 2f30: 3940 cmpnei r1, 0 + 2f32: 0c03 bf 0x2f38 // 2f38 + nop; + 2f34: 6c03 mov r0, r0 + 2f36: 07e5 br 0x2f00 // 2f00 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2f38: 3280 movi r2, 128 + 2f3a: 9323 ld.w r1, (r3, 0xc) + 2f3c: 4245 lsli r2, r2, 5 + 2f3e: 6848 and r1, r2 + 2f40: 3940 cmpnei r1, 0 + 2f42: 0bdf bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2f44: 3280 movi r2, 128 + 2f46: 9323 ld.w r1, (r3, 0xc) + 2f48: 4246 lsli r2, r2, 6 + 2f4a: 6848 and r1, r2 + 2f4c: 3940 cmpnei r1, 0 + 2f4e: 0bd9 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2f50: 3280 movi r2, 128 + 2f52: 9323 ld.w r1, (r3, 0xc) + 2f54: 4247 lsli r2, r2, 7 + 2f56: 6848 and r1, r2 + 2f58: 3940 cmpnei r1, 0 + 2f5a: 0bd3 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2f5c: 3280 movi r2, 128 + 2f5e: 9323 ld.w r1, (r3, 0xc) + 2f60: 424b lsli r2, r2, 11 + 2f62: 6848 and r1, r2 + 2f64: 3940 cmpnei r1, 0 + 2f66: 0bcd bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2f68: 3280 movi r2, 128 + 2f6a: 9323 ld.w r1, (r3, 0xc) + 2f6c: 424c lsli r2, r2, 12 + 2f6e: 6848 and r1, r2 + 2f70: 3940 cmpnei r1, 0 + 2f72: 0bc7 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2f74: 3280 movi r2, 128 + 2f76: 9323 ld.w r1, (r3, 0xc) + 2f78: 424d lsli r2, r2, 13 + 2f7a: 6848 and r1, r2 + 2f7c: 3940 cmpnei r1, 0 + 2f7e: 0bc1 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2f80: 3280 movi r2, 128 + 2f82: 9323 ld.w r1, (r3, 0xc) + 2f84: 424e lsli r2, r2, 14 + 2f86: 6848 and r1, r2 + 2f88: 3940 cmpnei r1, 0 + 2f8a: 0bbb bt 0x2f00 // 2f00 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2f8c: 3280 movi r2, 128 + 2f8e: 9323 ld.w r1, (r3, 0xc) + 2f90: 424f lsli r2, r2, 15 + 2f92: 6848 and r1, r2 + 2f94: 3940 cmpnei r1, 0 + 2f96: 0bb5 bt 0x2f00 // 2f00 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2f98: 3280 movi r2, 128 + 2f9a: 9323 ld.w r1, (r3, 0xc) + 2f9c: 4256 lsli r2, r2, 22 + 2f9e: 6848 and r1, r2 + 2fa0: 3940 cmpnei r1, 0 + 2fa2: 0baf bt 0x2f00 // 2f00 + 2fa4: 0799 br 0x2ed6 // 2ed6 + 2fa6: 0000 bkpt + 2fa8: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002fac : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2fac: 1460 nie + 2fae: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2fb0: 1078 lrw r3, 0x20000060 // 3010 + 2fb2: 3101 movi r1, 1 + 2fb4: 9360 ld.w r3, (r3, 0x0) + 2fb6: 934b ld.w r2, (r3, 0x2c) + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0c04 bf 0x2fc4 // 2fc4 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2fbe: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2fc0: 1463 ipop + 2fc2: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2fc4: 934b ld.w r2, (r3, 0x2c) + 2fc6: 3102 movi r1, 2 + 2fc8: 6884 and r2, r1 + 2fca: 3a40 cmpnei r2, 0 + 2fcc: 0bf9 bt 0x2fbe // 2fbe + else if(IFC->MISR&PEP_END_INT) + 2fce: 934b ld.w r2, (r3, 0x2c) + 2fd0: 3104 movi r1, 4 + 2fd2: 6884 and r2, r1 + 2fd4: 3a40 cmpnei r2, 0 + 2fd6: 0bf4 bt 0x2fbe // 2fbe + else if(IFC->MISR&PROT_ERR_INT) + 2fd8: 3280 movi r2, 128 + 2fda: 932b ld.w r1, (r3, 0x2c) + 2fdc: 4245 lsli r2, r2, 5 + 2fde: 6848 and r1, r2 + 2fe0: 3940 cmpnei r1, 0 + 2fe2: 0c03 bf 0x2fe8 // 2fe8 + IFC->ICR=OVW_ERR_INT; + 2fe4: b34c st.w r2, (r3, 0x30) +} + 2fe6: 07ed br 0x2fc0 // 2fc0 + else if(IFC->MISR&UDEF_ERR_INT) + 2fe8: 3280 movi r2, 128 + 2fea: 932b ld.w r1, (r3, 0x2c) + 2fec: 4246 lsli r2, r2, 6 + 2fee: 6848 and r1, r2 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0bf9 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&ADDR_ERR_INT) + 2ff4: 3280 movi r2, 128 + 2ff6: 932b ld.w r1, (r3, 0x2c) + 2ff8: 4247 lsli r2, r2, 7 + 2ffa: 6848 and r1, r2 + 2ffc: 3940 cmpnei r1, 0 + 2ffe: 0bf3 bt 0x2fe4 // 2fe4 + else if(IFC->MISR&OVW_ERR_INT) + 3000: 3280 movi r2, 128 + 3002: 932b ld.w r1, (r3, 0x2c) + 3004: 4248 lsli r2, r2, 8 + 3006: 6848 and r1, r2 + 3008: 3940 cmpnei r1, 0 + 300a: 0bed bt 0x2fe4 // 2fe4 + 300c: 07da br 0x2fc0 // 2fc0 + 300e: 0000 bkpt + 3010: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003014 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3014: 1460 nie + 3016: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3018: 1078 lrw r3, 0x20000050 // 3078 + 301a: 3101 movi r1, 1 + 301c: 9360 ld.w r3, (r3, 0x0) + 301e: 9348 ld.w r2, (r3, 0x20) + 3020: 6884 and r2, r1 + 3022: 3a40 cmpnei r2, 0 + 3024: 0c04 bf 0x302c // 302c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3026: 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; + } +} + 3028: 1463 ipop + 302a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 302c: 9348 ld.w r2, (r3, 0x20) + 302e: 3102 movi r1, 2 + 3030: 6884 and r2, r1 + 3032: 3a40 cmpnei r2, 0 + 3034: 0bf9 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3036: 9348 ld.w r2, (r3, 0x20) + 3038: 3104 movi r1, 4 + 303a: 6884 and r2, r1 + 303c: 3a40 cmpnei r2, 0 + 303e: 0bf4 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 3040: 9348 ld.w r2, (r3, 0x20) + 3042: 3110 movi r1, 16 + 3044: 6884 and r2, r1 + 3046: 3a40 cmpnei r2, 0 + 3048: 0bef bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 304a: 9348 ld.w r2, (r3, 0x20) + 304c: 3120 movi r1, 32 + 304e: 6884 and r2, r1 + 3050: 3a40 cmpnei r2, 0 + 3052: 0bea bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3054: 9348 ld.w r2, (r3, 0x20) + 3056: 3140 movi r1, 64 + 3058: 6884 and r2, r1 + 305a: 3a40 cmpnei r2, 0 + 305c: 0be5 bt 0x3026 // 3026 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 305e: 9348 ld.w r2, (r3, 0x20) + 3060: 3180 movi r1, 128 + 3062: 6884 and r2, r1 + 3064: 3a40 cmpnei r2, 0 + 3066: 0be0 bt 0x3026 // 3026 + 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 + 3068: 3280 movi r2, 128 + 306a: 9328 ld.w r1, (r3, 0x20) + 306c: 4249 lsli r2, r2, 9 + 306e: 6848 and r1, r2 + 3070: 3940 cmpnei r1, 0 + 3072: 0fdb bf 0x3028 // 3028 + ADC0->CSR = ADC12_SEQ_END0; + 3074: b347 st.w r2, (r3, 0x1c) +} + 3076: 07d9 br 0x3028 // 3028 + 3078: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +0000307c : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 307c: 1460 nie + 307e: 1462 ipush + 3080: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3082: 1387 lrw r4, 0x20000020 // 321c + 3084: 3280 movi r2, 128 + 3086: 9460 ld.w r3, (r4, 0x0) + 3088: 60c8 addu r3, r2 + 308a: 9335 ld.w r1, (r3, 0x54) + 308c: 3001 movi r0, 1 + 308e: 6840 and r1, r0 + 3090: 3940 cmpnei r1, 0 + 3092: 0c03 bf 0x3098 // 3098 + 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; + 3094: b317 st.w r0, (r3, 0x5c) + 3096: 0424 br 0x30de // 30de + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3098: 9335 ld.w r1, (r3, 0x54) + 309a: 3002 movi r0, 2 + 309c: 6840 and r1, r0 + 309e: 3940 cmpnei r1, 0 + 30a0: 0bfa bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 30a2: 9335 ld.w r1, (r3, 0x54) + 30a4: 3004 movi r0, 4 + 30a6: 6840 and r1, r0 + 30a8: 3940 cmpnei r1, 0 + 30aa: 0bf5 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 30ac: 9335 ld.w r1, (r3, 0x54) + 30ae: 3008 movi r0, 8 + 30b0: 6840 and r1, r0 + 30b2: 3940 cmpnei r1, 0 + 30b4: 0bf0 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 30b6: 9335 ld.w r1, (r3, 0x54) + 30b8: 3010 movi r0, 16 + 30ba: 6840 and r1, r0 + 30bc: 3940 cmpnei r1, 0 + 30be: 0c1f bf 0x30fc // 30fc + EPT0->ICR=EPT_CAP_LD0; + 30c0: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 30c2: 3200 movi r2, 0 + 30c4: 3101 movi r1, 1 + 30c6: 3000 movi r0, 0 + 30c8: e3fff610 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 30cc: 3201 movi r2, 1 + 30ce: 3101 movi r1, 1 + 30d0: 3001 movi r0, 1 + 30d2: e3fff60b bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 30d6: 9460 ld.w r3, (r4, 0x0) + 30d8: 934b ld.w r2, (r3, 0x2c) + 30da: 1272 lrw r3, 0x20000168 // 3220 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 30dc: 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 + 30de: 9460 ld.w r3, (r4, 0x0) + 30e0: 3280 movi r2, 128 + 30e2: 60c8 addu r3, r2 + 30e4: 932b ld.w r1, (r3, 0x2c) + 30e6: 3001 movi r0, 1 + 30e8: 6840 and r1, r0 + 30ea: 3940 cmpnei r1, 0 + 30ec: 0c61 bf 0x31ae // 31ae + { + 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; + 30ee: 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; + } +} + 30f0: d9ee2001 ld.w r15, (r14, 0x4) + 30f4: 9880 ld.w r4, (r14, 0x0) + 30f6: 1402 addi r14, r14, 8 + 30f8: 1463 ipop + 30fa: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 30fc: 9335 ld.w r1, (r3, 0x54) + 30fe: 3020 movi r0, 32 + 3100: 6840 and r1, r0 + 3102: 3940 cmpnei r1, 0 + 3104: 0c10 bf 0x3124 // 3124 + EPT0->ICR=EPT_CAP_LD1; + 3106: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3108: 3200 movi r2, 0 + 310a: 3101 movi r1, 1 + 310c: 3001 movi r0, 1 + 310e: e3fff5ed bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3112: 3201 movi r2, 1 + 3114: 3101 movi r1, 1 + 3116: 3000 movi r0, 0 + 3118: e3fff5e8 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 311c: 9460 ld.w r3, (r4, 0x0) + 311e: 934c ld.w r2, (r3, 0x30) + 3120: 1261 lrw r3, 0x20000164 // 3224 + 3122: 07dd br 0x30dc // 30dc + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3124: 9335 ld.w r1, (r3, 0x54) + 3126: 3040 movi r0, 64 + 3128: 6840 and r1, r0 + 312a: 3940 cmpnei r1, 0 + 312c: 0bb4 bt 0x3094 // 3094 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 312e: 9335 ld.w r1, (r3, 0x54) + 3130: 6848 and r1, r2 + 3132: 3940 cmpnei r1, 0 + 3134: 0c03 bf 0x313a // 313a + EPT0->ICR=EPT_CDD; + 3136: b357 st.w r2, (r3, 0x5c) + 3138: 07d3 br 0x30de // 30de + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 313a: 3280 movi r2, 128 + 313c: 9335 ld.w r1, (r3, 0x54) + 313e: 4241 lsli r2, r2, 1 + 3140: 6848 and r1, r2 + 3142: 3940 cmpnei r1, 0 + 3144: 0bf9 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3146: 3280 movi r2, 128 + 3148: 9335 ld.w r1, (r3, 0x54) + 314a: 4242 lsli r2, r2, 2 + 314c: 6848 and r1, r2 + 314e: 3940 cmpnei r1, 0 + 3150: 0bf3 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 3152: 3280 movi r2, 128 + 3154: 9335 ld.w r1, (r3, 0x54) + 3156: 4243 lsli r2, r2, 3 + 3158: 6848 and r1, r2 + 315a: 3940 cmpnei r1, 0 + 315c: 0bed bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 315e: 3280 movi r2, 128 + 3160: 9335 ld.w r1, (r3, 0x54) + 3162: 4244 lsli r2, r2, 4 + 3164: 6848 and r1, r2 + 3166: 3940 cmpnei r1, 0 + 3168: 0be7 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 316a: 3280 movi r2, 128 + 316c: 9335 ld.w r1, (r3, 0x54) + 316e: 4245 lsli r2, r2, 5 + 3170: 6848 and r1, r2 + 3172: 3940 cmpnei r1, 0 + 3174: 0be1 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3176: 3280 movi r2, 128 + 3178: 9335 ld.w r1, (r3, 0x54) + 317a: 4246 lsli r2, r2, 6 + 317c: 6848 and r1, r2 + 317e: 3940 cmpnei r1, 0 + 3180: 0bdb bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3182: 3280 movi r2, 128 + 3184: 9335 ld.w r1, (r3, 0x54) + 3186: 4247 lsli r2, r2, 7 + 3188: 6848 and r1, r2 + 318a: 3940 cmpnei r1, 0 + 318c: 0bd5 bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 318e: 3280 movi r2, 128 + 3190: 9335 ld.w r1, (r3, 0x54) + 3192: 4248 lsli r2, r2, 8 + 3194: 6848 and r1, r2 + 3196: 3940 cmpnei r1, 0 + 3198: 0bcf bt 0x3136 // 3136 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 319a: 3280 movi r2, 128 + 319c: 9335 ld.w r1, (r3, 0x54) + 319e: 4249 lsli r2, r2, 9 + 31a0: 6848 and r1, r2 + 31a2: 3940 cmpnei r1, 0 + 31a4: 0f9d bf 0x30de // 30de + EPT0->ICR=EPT_PEND; + 31a6: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 31a8: e3fff7ee bsr 0x2184 // 2184 + 31ac: 0799 br 0x30de // 30de + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 31ae: 932b ld.w r1, (r3, 0x2c) + 31b0: 3002 movi r0, 2 + 31b2: 6840 and r1, r0 + 31b4: 3940 cmpnei r1, 0 + 31b6: 0b9c bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 31b8: 932b ld.w r1, (r3, 0x2c) + 31ba: 3004 movi r0, 4 + 31bc: 6840 and r1, r0 + 31be: 3940 cmpnei r1, 0 + 31c0: 0b97 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 31c2: 932b ld.w r1, (r3, 0x2c) + 31c4: 3008 movi r0, 8 + 31c6: 6840 and r1, r0 + 31c8: 3940 cmpnei r1, 0 + 31ca: 0b92 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 31cc: 932b ld.w r1, (r3, 0x2c) + 31ce: 3010 movi r0, 16 + 31d0: 6840 and r1, r0 + 31d2: 3940 cmpnei r1, 0 + 31d4: 0b8d bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 31d6: 932b ld.w r1, (r3, 0x2c) + 31d8: 3020 movi r0, 32 + 31da: 6840 and r1, r0 + 31dc: 3940 cmpnei r1, 0 + 31de: 0b88 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 31e0: 932b ld.w r1, (r3, 0x2c) + 31e2: 3040 movi r0, 64 + 31e4: 6840 and r1, r0 + 31e6: 3940 cmpnei r1, 0 + 31e8: 0b83 bt 0x30ee // 30ee + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 31ea: 932b ld.w r1, (r3, 0x2c) + 31ec: 6848 and r1, r2 + 31ee: 3940 cmpnei r1, 0 + 31f0: 0c03 bf 0x31f6 // 31f6 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 31f2: b34d st.w r2, (r3, 0x34) +} + 31f4: 077e br 0x30f0 // 30f0 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 31f6: 3280 movi r2, 128 + 31f8: 932b ld.w r1, (r3, 0x2c) + 31fa: 4241 lsli r2, r2, 1 + 31fc: 6848 and r1, r2 + 31fe: 3940 cmpnei r1, 0 + 3200: 0bf9 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3202: 3280 movi r2, 128 + 3204: 932b ld.w r1, (r3, 0x2c) + 3206: 4242 lsli r2, r2, 2 + 3208: 6848 and r1, r2 + 320a: 3940 cmpnei r1, 0 + 320c: 0bf3 bt 0x31f2 // 31f2 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 320e: 3280 movi r2, 128 + 3210: 932b ld.w r1, (r3, 0x2c) + 3212: 4243 lsli r2, r2, 3 + 3214: 6848 and r1, r2 + 3216: 3940 cmpnei r1, 0 + 3218: 0bed bt 0x31f2 // 31f2 + 321a: 076b br 0x30f0 // 30f0 + 321c: 20000020 .long 0x20000020 + 3220: 20000168 .long 0x20000168 + 3224: 20000164 .long 0x20000164 + +Disassembly of section .text.WWDTHandler: + +00003228 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3228: 1460 nie + 322a: 1462 ipush + 322c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 322e: 10ab lrw r5, 0x20000010 // 3258 + 3230: 3401 movi r4, 1 + 3232: 9560 ld.w r3, (r5, 0x0) + 3234: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3236: 30ff movi r0, 255 + 3238: e3fff656 bsr 0x1ee4 // 1ee4 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 323c: 9540 ld.w r2, (r5, 0x0) + 323e: 9263 ld.w r3, (r2, 0xc) + 3240: 68d0 and r3, r4 + 3242: 3b40 cmpnei r3, 0 + 3244: 0c02 bf 0x3248 // 3248 + { + WWDT->ICR = WWDT_EVI; + 3246: b285 st.w r4, (r2, 0x14) + } +} + 3248: d9ee2002 ld.w r15, (r14, 0x8) + 324c: 98a1 ld.w r5, (r14, 0x4) + 324e: 9880 ld.w r4, (r14, 0x0) + 3250: 1403 addi r14, r14, 12 + 3252: 1463 ipop + 3254: 1461 nir + 3256: 0000 bkpt + 3258: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +0000325c : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 325c: 1460 nie + 325e: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3260: 107e lrw r3, 0x20000024 // 32d8 + 3262: 3101 movi r1, 1 + 3264: 9360 ld.w r3, (r3, 0x0) + 3266: 237f addi r3, 128 + 3268: 9355 ld.w r2, (r3, 0x54) + 326a: 6884 and r2, r1 + 326c: 3a40 cmpnei r2, 0 + 326e: 0c04 bf 0x3276 // 3276 + { + 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; + 3270: 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; + } +} + 3272: 1463 ipop + 3274: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3276: 9355 ld.w r2, (r3, 0x54) + 3278: 3102 movi r1, 2 + 327a: 6884 and r2, r1 + 327c: 3a40 cmpnei r2, 0 + 327e: 0bf9 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3280: 9355 ld.w r2, (r3, 0x54) + 3282: 3110 movi r1, 16 + 3284: 6884 and r2, r1 + 3286: 3a40 cmpnei r2, 0 + 3288: 0bf4 bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 328a: 9355 ld.w r2, (r3, 0x54) + 328c: 3120 movi r1, 32 + 328e: 6884 and r2, r1 + 3290: 3a40 cmpnei r2, 0 + 3292: 0bef bt 0x3270 // 3270 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3294: 3280 movi r2, 128 + 3296: 9335 ld.w r1, (r3, 0x54) + 3298: 4241 lsli r2, r2, 1 + 329a: 6848 and r1, r2 + 329c: 3940 cmpnei r1, 0 + 329e: 0c03 bf 0x32a4 // 32a4 + GPT0->ICR = GPT_INT_PEND; + 32a0: b357 st.w r2, (r3, 0x5c) +} + 32a2: 07e8 br 0x3272 // 3272 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 32a4: 3280 movi r2, 128 + 32a6: 9335 ld.w r1, (r3, 0x54) + 32a8: 4242 lsli r2, r2, 2 + 32aa: 6848 and r1, r2 + 32ac: 3940 cmpnei r1, 0 + 32ae: 0bf9 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 32b0: 3280 movi r2, 128 + 32b2: 9335 ld.w r1, (r3, 0x54) + 32b4: 4243 lsli r2, r2, 3 + 32b6: 6848 and r1, r2 + 32b8: 3940 cmpnei r1, 0 + 32ba: 0bf3 bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 32bc: 3280 movi r2, 128 + 32be: 9335 ld.w r1, (r3, 0x54) + 32c0: 4244 lsli r2, r2, 4 + 32c2: 6848 and r1, r2 + 32c4: 3940 cmpnei r1, 0 + 32c6: 0bed bt 0x32a0 // 32a0 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 32c8: 3280 movi r2, 128 + 32ca: 9335 ld.w r1, (r3, 0x54) + 32cc: 4249 lsli r2, r2, 9 + 32ce: 6848 and r1, r2 + 32d0: 3940 cmpnei r1, 0 + 32d2: 0be7 bt 0x32a0 // 32a0 + 32d4: 07cf br 0x3272 // 3272 + 32d6: 0000 bkpt + 32d8: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000032dc : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 32dc: 1460 nie + 32de: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 32e0: 1079 lrw r3, 0x20000018 // 3344 + 32e2: 3101 movi r1, 1 + 32e4: 9360 ld.w r3, (r3, 0x0) + 32e6: 934a ld.w r2, (r3, 0x28) + 32e8: 6884 and r2, r1 + 32ea: 3a40 cmpnei r2, 0 + 32ec: 0c14 bf 0x3314 // 3314 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 32ee: 1057 lrw r2, 0xca53 // 3348 + RTC->ICR=ALRA_INT; + 32f0: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 32f2: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 32f4: 9342 ld.w r2, (r3, 0x8) + 32f6: 6c84 or r2, r1 + 32f8: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 32fa: 3280 movi r2, 128 + 32fc: 424d lsli r2, r2, 13 + 32fe: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3300: 3102 movi r1, 2 + 3302: 9342 ld.w r2, (r3, 0x8) + 3304: 6884 and r2, r1 + 3306: 3a40 cmpnei r2, 0 + 3308: 0bfd bt 0x3302 // 3302 + RTC->CR &= ~0x1; + 330a: 9342 ld.w r2, (r3, 0x8) + 330c: 3a80 bclri r2, 0 + 330e: 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; + } +} + 3310: 1463 ipop + 3312: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3314: 934a ld.w r2, (r3, 0x28) + 3316: 3102 movi r1, 2 + 3318: 6884 and r2, r1 + 331a: 3a40 cmpnei r2, 0 + 331c: 0c03 bf 0x3322 // 3322 + RTC->ICR=RTC_TRGEV1_INT; + 331e: b32b st.w r1, (r3, 0x2c) +} + 3320: 07f8 br 0x3310 // 3310 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3322: 934a ld.w r2, (r3, 0x28) + 3324: 3104 movi r1, 4 + 3326: 6884 and r2, r1 + 3328: 3a40 cmpnei r2, 0 + 332a: 0bfa bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 332c: 934a ld.w r2, (r3, 0x28) + 332e: 3108 movi r1, 8 + 3330: 6884 and r2, r1 + 3332: 3a40 cmpnei r2, 0 + 3334: 0bf5 bt 0x331e // 331e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3336: 934a ld.w r2, (r3, 0x28) + 3338: 3110 movi r1, 16 + 333a: 6884 and r2, r1 + 333c: 3a40 cmpnei r2, 0 + 333e: 0bf0 bt 0x331e // 331e + 3340: 07e8 br 0x3310 // 3310 + 3342: 0000 bkpt + 3344: 20000018 .long 0x20000018 + 3348: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +0000334c : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 334c: 1460 nie + 334e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3350: 106d lrw r3, 0x20000040 // 3384 + 3352: 3102 movi r1, 2 + 3354: 9360 ld.w r3, (r3, 0x0) + 3356: 9343 ld.w r2, (r3, 0xc) + 3358: 6884 and r2, r1 + 335a: 3a40 cmpnei r2, 0 + 335c: 0c03 bf 0x3362 // 3362 + { + 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; + 335e: b323 st.w r1, (r3, 0xc) + } +} + 3360: 0410 br 0x3380 // 3380 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3362: 9343 ld.w r2, (r3, 0xc) + 3364: 3101 movi r1, 1 + 3366: 6884 and r2, r1 + 3368: 3a40 cmpnei r2, 0 + 336a: 0bfa bt 0x335e // 335e + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 336c: 9343 ld.w r2, (r3, 0xc) + 336e: 3108 movi r1, 8 + 3370: 6884 and r2, r1 + 3372: 3a40 cmpnei r2, 0 + 3374: 0bf5 bt 0x335e // 335e + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3376: 9343 ld.w r2, (r3, 0xc) + 3378: 3104 movi r1, 4 + 337a: 6884 and r2, r1 + 337c: 3a40 cmpnei r2, 0 + 337e: 0bf0 bt 0x335e // 335e +} + 3380: 1463 ipop + 3382: 1461 nir + 3384: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003388 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3388: 1460 nie + 338a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 338c: 106d lrw r3, 0x2000003c // 33c0 + 338e: 3102 movi r1, 2 + 3390: 9360 ld.w r3, (r3, 0x0) + 3392: 9343 ld.w r2, (r3, 0xc) + 3394: 6884 and r2, r1 + 3396: 3a40 cmpnei r2, 0 + 3398: 0c03 bf 0x339e // 339e + { + 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; + 339a: b323 st.w r1, (r3, 0xc) + } +} + 339c: 0410 br 0x33bc // 33bc + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 339e: 9343 ld.w r2, (r3, 0xc) + 33a0: 3101 movi r1, 1 + 33a2: 6884 and r2, r1 + 33a4: 3a40 cmpnei r2, 0 + 33a6: 0bfa bt 0x339a // 339a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33a8: 9343 ld.w r2, (r3, 0xc) + 33aa: 3108 movi r1, 8 + 33ac: 6884 and r2, r1 + 33ae: 3a40 cmpnei r2, 0 + 33b0: 0bf5 bt 0x339a // 339a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33b2: 9343 ld.w r2, (r3, 0xc) + 33b4: 3104 movi r1, 4 + 33b6: 6884 and r2, r1 + 33b8: 3a40 cmpnei r2, 0 + 33ba: 0bf0 bt 0x339a // 339a +} + 33bc: 1463 ipop + 33be: 1461 nir + 33c0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +000033c4 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 33c4: 1460 nie + 33c6: 1462 ipush + 33c8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 33ca: 107f lrw r3, 0x20000038 // 3444 + 33cc: 3102 movi r1, 2 + 33ce: 9360 ld.w r3, (r3, 0x0) + 33d0: 9343 ld.w r2, (r3, 0xc) + 33d2: 6884 and r2, r1 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0c0b bf 0x33ec // 33ec + { + UART2->ISR=UART_RX_INT_S; + 33d8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 33da: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 33dc: 7400 zextb r0, r0 + 33de: e00002ef bsr 0x39bc // 39bc + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 33e2: d9ee2000 ld.w r15, (r14, 0x0) + 33e6: 1401 addi r14, r14, 4 + 33e8: 1463 ipop + 33ea: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 33ec: 9323 ld.w r1, (r3, 0xc) + 33ee: 3201 movi r2, 1 + 33f0: 6848 and r1, r2 + 33f2: 3940 cmpnei r1, 0 + 33f4: 0c0d bf 0x340e // 340e + UART2->ISR=UART_TX_INT_S; + 33f6: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 33f8: 1074 lrw r3, 0x200000bc // 3448 + 33fa: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33fc: 1074 lrw r3, 0x200000c0 // 344c + 33fe: 9360 ld.w r3, (r3, 0x0) + 3400: 3b41 cmpnei r3, 1 + 3402: 0bf0 bt 0x33e2 // 33e2 + RS485_Comm_Start ++; + 3404: 1053 lrw r2, 0x200000c4 // 3450 + RS485_Comm_End ++; + 3406: 9260 ld.w r3, (r2, 0x0) + 3408: 2300 addi r3, 1 + 340a: b260 st.w r3, (r2, 0x0) +} + 340c: 07eb br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 340e: 9343 ld.w r2, (r3, 0xc) + 3410: 3108 movi r1, 8 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0c03 bf 0x341c // 341c + UART2->ISR=UART_TX_IOV_S; + 3418: b323 st.w r1, (r3, 0xc) + 341a: 07e4 br 0x33e2 // 33e2 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 341c: 9343 ld.w r2, (r3, 0xc) + 341e: 3104 movi r1, 4 + 3420: 6884 and r2, r1 + 3422: 3a40 cmpnei r2, 0 + 3424: 0bfa bt 0x3418 // 3418 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3426: 3180 movi r1, 128 + 3428: 9303 ld.w r0, (r3, 0xc) + 342a: 412c lsli r1, r1, 12 + 342c: 6804 and r0, r1 + 342e: 3840 cmpnei r0, 0 + 3430: 0fd9 bf 0x33e2 // 33e2 + UART2->ISR=UART_TX_DONE_S; + 3432: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3434: 1065 lrw r3, 0x200000bc // 3448 + 3436: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3438: 1065 lrw r3, 0x200000c0 // 344c + 343a: 9360 ld.w r3, (r3, 0x0) + 343c: 3b41 cmpnei r3, 1 + 343e: 0bd2 bt 0x33e2 // 33e2 + RS485_Comm_End ++; + 3440: 1045 lrw r2, 0x200000c8 // 3454 + 3442: 07e2 br 0x3406 // 3406 + 3444: 20000038 .long 0x20000038 + 3448: 200000bc .long 0x200000bc + 344c: 200000c0 .long 0x200000c0 + 3450: 200000c4 .long 0x200000c4 + 3454: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +00003458 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 3458: 1460 nie + 345a: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 345c: 1178 lrw r3, 0x20000034 // 353c + 345e: 3101 movi r1, 1 + 3460: 9360 ld.w r3, (r3, 0x0) + 3462: 9347 ld.w r2, (r3, 0x1c) + 3464: 6884 and r2, r1 + 3466: 3a40 cmpnei r2, 0 + 3468: 0c03 bf 0x346e // 346e + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 346a: b328 st.w r1, (r3, 0x20) + } + +} + 346c: 0407 br 0x347a // 347a + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 346e: 9347 ld.w r2, (r3, 0x1c) + 3470: 3002 movi r0, 2 + 3472: 6880 and r2, r0 + 3474: 3a40 cmpnei r2, 0 + 3476: 0c04 bf 0x347e // 347e + SPI0->ICR = SPI_RTIM; + 3478: b308 st.w r0, (r3, 0x20) +} + 347a: 1463 ipop + 347c: 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 + 347e: 9347 ld.w r2, (r3, 0x1c) + 3480: 3004 movi r0, 4 + 3482: 6880 and r2, r0 + 3484: 3a40 cmpnei r2, 0 + 3486: 0c55 bf 0x3530 // 3530 + SPI0->ICR = SPI_RXIM; + 3488: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 348a: 9302 ld.w r0, (r3, 0x8) + 348c: 32aa movi r2, 170 + 348e: 6482 cmpne r0, r2 + 3490: 083e bt 0x350c // 350c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3492: 3102 movi r1, 2 + 3494: 9343 ld.w r2, (r3, 0xc) + 3496: 6884 and r2, r1 + 3498: 3a40 cmpnei r2, 0 + 349a: 0ffd bf 0x3494 // 3494 + SPI0->DR = 0x11; + 349c: 3211 movi r2, 17 + 349e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34a0: 3110 movi r1, 16 + 34a2: 9343 ld.w r2, (r3, 0xc) + 34a4: 6884 and r2, r1 + 34a6: 3a40 cmpnei r2, 0 + 34a8: 0bfd bt 0x34a2 // 34a2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34aa: 3102 movi r1, 2 + 34ac: 9343 ld.w r2, (r3, 0xc) + 34ae: 6884 and r2, r1 + 34b0: 3a40 cmpnei r2, 0 + 34b2: 0ffd bf 0x34ac // 34ac + SPI0->DR = 0x12; + 34b4: 3212 movi r2, 18 + 34b6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34b8: 3110 movi r1, 16 + 34ba: 9343 ld.w r2, (r3, 0xc) + 34bc: 6884 and r2, r1 + 34be: 3a40 cmpnei r2, 0 + 34c0: 0bfd bt 0x34ba // 34ba + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34c2: 3102 movi r1, 2 + 34c4: 9343 ld.w r2, (r3, 0xc) + 34c6: 6884 and r2, r1 + 34c8: 3a40 cmpnei r2, 0 + 34ca: 0ffd bf 0x34c4 // 34c4 + SPI0->DR = 0x13; + 34cc: 3213 movi r2, 19 + 34ce: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34d0: 3110 movi r1, 16 + 34d2: 9343 ld.w r2, (r3, 0xc) + 34d4: 6884 and r2, r1 + 34d6: 3a40 cmpnei r2, 0 + 34d8: 0bfd bt 0x34d2 // 34d2 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34da: 3102 movi r1, 2 + 34dc: 9343 ld.w r2, (r3, 0xc) + 34de: 6884 and r2, r1 + 34e0: 3a40 cmpnei r2, 0 + 34e2: 0ffd bf 0x34dc // 34dc + SPI0->DR = 0x14; + 34e4: 3214 movi r2, 20 + 34e6: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34e8: 3110 movi r1, 16 + 34ea: 9343 ld.w r2, (r3, 0xc) + 34ec: 6884 and r2, r1 + 34ee: 3a40 cmpnei r2, 0 + 34f0: 0bfd bt 0x34ea // 34ea + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34f2: 3102 movi r1, 2 + 34f4: 9343 ld.w r2, (r3, 0xc) + 34f6: 6884 and r2, r1 + 34f8: 3a40 cmpnei r2, 0 + 34fa: 0ffd bf 0x34f4 // 34f4 + SPI0->DR = 0x15; + 34fc: 3215 movi r2, 21 + 34fe: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3500: 3110 movi r1, 16 + 3502: 9343 ld.w r2, (r3, 0xc) + 3504: 6884 and r2, r1 + 3506: 3a40 cmpnei r2, 0 + 3508: 0bfd bt 0x3502 // 3502 + 350a: 07b8 br 0x347a // 347a + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 350c: 9343 ld.w r2, (r3, 0xc) + 350e: 6884 and r2, r1 + 3510: 3a40 cmpnei r2, 0 + 3512: 0bb4 bt 0x347a // 347a + SPI0->DR=0x0; //FIFO=0 + 3514: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3516: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3518: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 351e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3520: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3522: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3524: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3526: 9343 ld.w r2, (r3, 0xc) + 3528: 6884 and r2, r1 + 352a: 3a40 cmpnei r2, 0 + 352c: 0bfd bt 0x3526 // 3526 + 352e: 07a6 br 0x347a // 347a + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 3530: 9347 ld.w r2, (r3, 0x1c) + 3532: 3108 movi r1, 8 + 3534: 6884 and r2, r1 + 3536: 3a40 cmpnei r2, 0 + 3538: 0b99 bt 0x346a // 346a + 353a: 07a0 br 0x347a // 347a + 353c: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00003540 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 3540: 1460 nie + 3542: 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) + 3544: 1073 lrw r3, 0x2000002c // 3590 + 3546: 3104 movi r1, 4 + 3548: 9360 ld.w r3, (r3, 0x0) + 354a: 9349 ld.w r2, (r3, 0x24) + 354c: 6884 and r2, r1 + 354e: 3a40 cmpnei r2, 0 + 3550: 0c02 bf 0x3554 // 3554 + { + SIO0->ICR=0X04; + 3552: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 3554: 9349 ld.w r2, (r3, 0x24) + 3556: 3101 movi r1, 1 + 3558: 6884 and r2, r1 + 355a: 3a40 cmpnei r2, 0 + 355c: 0c02 bf 0x3560 // 3560 + { + SIO0->ICR=0X01; + 355e: 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 + 3560: 9349 ld.w r2, (r3, 0x24) + 3562: 3102 movi r1, 2 + 3564: 6884 and r2, r1 + 3566: 3a40 cmpnei r2, 0 + 3568: 0c03 bf 0x356e // 356e + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 356a: b32b st.w r1, (r3, 0x2c) + } +} + 356c: 0410 br 0x358c // 358c + else if(SIO0->MISR&0X08) //RXBUFFULL + 356e: 9349 ld.w r2, (r3, 0x24) + 3570: 3108 movi r1, 8 + 3572: 6884 and r2, r1 + 3574: 3a40 cmpnei r2, 0 + 3576: 0bfa bt 0x356a // 356a + else if(SIO0->MISR&0X010) //BREAK + 3578: 9349 ld.w r2, (r3, 0x24) + 357a: 3110 movi r1, 16 + 357c: 6884 and r2, r1 + 357e: 3a40 cmpnei r2, 0 + 3580: 0bf5 bt 0x356a // 356a + else if(SIO0->MISR&0X020) //TIMEOUT + 3582: 9349 ld.w r2, (r3, 0x24) + 3584: 3120 movi r1, 32 + 3586: 6884 and r2, r1 + 3588: 3a40 cmpnei r2, 0 + 358a: 0bf0 bt 0x356a // 356a +} + 358c: 1463 ipop + 358e: 1461 nir + 3590: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003594 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3594: 1460 nie + 3596: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3598: 106a lrw r3, 0x2000005c // 35c0 + 359a: 3101 movi r1, 1 + 359c: 9360 ld.w r3, (r3, 0x0) + 359e: 237f addi r3, 128 + 35a0: 934c ld.w r2, (r3, 0x30) + 35a2: 6884 and r2, r1 + 35a4: 3a40 cmpnei r2, 0 + 35a6: 0c04 bf 0x35ae // 35ae + { + SYSCON->EXICR = EXI_PIN0; + 35a8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 35aa: 1463 ipop + 35ac: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 35ae: 3280 movi r2, 128 + 35b0: 932c ld.w r1, (r3, 0x30) + 35b2: 4249 lsli r2, r2, 9 + 35b4: 6848 and r1, r2 + 35b6: 3940 cmpnei r1, 0 + 35b8: 0ff9 bf 0x35aa // 35aa + SYSCON->EXICR = EXI_PIN16; + 35ba: b34b st.w r2, (r3, 0x2c) +} + 35bc: 07f7 br 0x35aa // 35aa + 35be: 0000 bkpt + 35c0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +000035c4 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 35c4: 1460 nie + 35c6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 35c8: 106a lrw r3, 0x2000005c // 35f0 + 35ca: 3102 movi r1, 2 + 35cc: 9360 ld.w r3, (r3, 0x0) + 35ce: 237f addi r3, 128 + 35d0: 934c ld.w r2, (r3, 0x30) + 35d2: 6884 and r2, r1 + 35d4: 3a40 cmpnei r2, 0 + 35d6: 0c04 bf 0x35de // 35de + { + SYSCON->EXICR = EXI_PIN1; + 35d8: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 35da: 1463 ipop + 35dc: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 35de: 3280 movi r2, 128 + 35e0: 932c ld.w r1, (r3, 0x30) + 35e2: 424a lsli r2, r2, 10 + 35e4: 6848 and r1, r2 + 35e6: 3940 cmpnei r1, 0 + 35e8: 0ff9 bf 0x35da // 35da + SYSCON->EXICR = EXI_PIN17; + 35ea: b34b st.w r2, (r3, 0x2c) +} + 35ec: 07f7 br 0x35da // 35da + 35ee: 0000 bkpt + 35f0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000035f4 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 35f4: 1460 nie + 35f6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 35f8: 1070 lrw r3, 0x2000005c // 3638 + 35fa: 3104 movi r1, 4 + 35fc: 9360 ld.w r3, (r3, 0x0) + 35fe: 237f addi r3, 128 + 3600: 934c ld.w r2, (r3, 0x30) + 3602: 6884 and r2, r1 + 3604: 3a40 cmpnei r2, 0 + 3606: 0c04 bf 0x360e // 360e + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3608: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 360a: 1463 ipop + 360c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 360e: 934c ld.w r2, (r3, 0x30) + 3610: 3108 movi r1, 8 + 3612: 6884 and r2, r1 + 3614: 3a40 cmpnei r2, 0 + 3616: 0bf9 bt 0x3608 // 3608 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3618: 3280 movi r2, 128 + 361a: 932c ld.w r1, (r3, 0x30) + 361c: 424b lsli r2, r2, 11 + 361e: 6848 and r1, r2 + 3620: 3940 cmpnei r1, 0 + 3622: 0c03 bf 0x3628 // 3628 + SYSCON->EXICR = EXI_PIN19; + 3624: b34b st.w r2, (r3, 0x2c) +} + 3626: 07f2 br 0x360a // 360a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3628: 3280 movi r2, 128 + 362a: 932c ld.w r1, (r3, 0x30) + 362c: 424c lsli r2, r2, 12 + 362e: 6848 and r1, r2 + 3630: 3940 cmpnei r1, 0 + 3632: 0bf9 bt 0x3624 // 3624 + 3634: 07eb br 0x360a // 360a + 3636: 0000 bkpt + 3638: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +0000363c : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 363c: 1460 nie + 363e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 3640: 1075 lrw r3, 0x2000005c // 3694 + 3642: 3280 movi r2, 128 + 3644: 9360 ld.w r3, (r3, 0x0) + 3646: 60c8 addu r3, r2 + 3648: 932c ld.w r1, (r3, 0x30) + 364a: 3010 movi r0, 16 + 364c: 6840 and r1, r0 + 364e: 3940 cmpnei r1, 0 + 3650: 0c04 bf 0x3658 // 3658 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 3652: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 3654: 1463 ipop + 3656: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 3658: 932c ld.w r1, (r3, 0x30) + 365a: 3020 movi r0, 32 + 365c: 6840 and r1, r0 + 365e: 3940 cmpnei r1, 0 + 3660: 0bf9 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3662: 932c ld.w r1, (r3, 0x30) + 3664: 3040 movi r0, 64 + 3666: 6840 and r1, r0 + 3668: 3940 cmpnei r1, 0 + 366a: 0bf4 bt 0x3652 // 3652 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 366c: 932c ld.w r1, (r3, 0x30) + 366e: 6848 and r1, r2 + 3670: 3940 cmpnei r1, 0 + 3672: 0c03 bf 0x3678 // 3678 + SYSCON->EXICR = EXI_PIN9; + 3674: b34b st.w r2, (r3, 0x2c) +} + 3676: 07ef br 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3678: 3280 movi r2, 128 + 367a: 932c ld.w r1, (r3, 0x30) + 367c: 4241 lsli r2, r2, 1 + 367e: 6848 and r1, r2 + 3680: 3940 cmpnei r1, 0 + 3682: 0bf9 bt 0x3674 // 3674 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3684: 3280 movi r2, 128 + 3686: 932c ld.w r1, (r3, 0x30) + 3688: 4242 lsli r2, r2, 2 + 368a: 6848 and r1, r2 + 368c: 3940 cmpnei r1, 0 + 368e: 0bf3 bt 0x3674 // 3674 + 3690: 07e2 br 0x3654 // 3654 + 3692: 0000 bkpt + 3694: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003698 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3698: 1460 nie + 369a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 369c: 1076 lrw r3, 0x2000005c // 36f4 + 369e: 3280 movi r2, 128 + 36a0: 9360 ld.w r3, (r3, 0x0) + 36a2: 237f addi r3, 128 + 36a4: 932c ld.w r1, (r3, 0x30) + 36a6: 4243 lsli r2, r2, 3 + 36a8: 6848 and r1, r2 + 36aa: 3940 cmpnei r1, 0 + 36ac: 0c03 bf 0x36b2 // 36b2 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 36ae: b34b st.w r2, (r3, 0x2c) + } +} + 36b0: 041f br 0x36ee // 36ee + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 36b2: 3280 movi r2, 128 + 36b4: 932c ld.w r1, (r3, 0x30) + 36b6: 4244 lsli r2, r2, 4 + 36b8: 6848 and r1, r2 + 36ba: 3940 cmpnei r1, 0 + 36bc: 0bf9 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 36be: 3280 movi r2, 128 + 36c0: 932c ld.w r1, (r3, 0x30) + 36c2: 4245 lsli r2, r2, 5 + 36c4: 6848 and r1, r2 + 36c6: 3940 cmpnei r1, 0 + 36c8: 0bf3 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 36ca: 3280 movi r2, 128 + 36cc: 932c ld.w r1, (r3, 0x30) + 36ce: 4246 lsli r2, r2, 6 + 36d0: 6848 and r1, r2 + 36d2: 3940 cmpnei r1, 0 + 36d4: 0bed bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 36d6: 3280 movi r2, 128 + 36d8: 932c ld.w r1, (r3, 0x30) + 36da: 4247 lsli r2, r2, 7 + 36dc: 6848 and r1, r2 + 36de: 3940 cmpnei r1, 0 + 36e0: 0be7 bt 0x36ae // 36ae + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 36e2: 3280 movi r2, 128 + 36e4: 932c ld.w r1, (r3, 0x30) + 36e6: 4248 lsli r2, r2, 8 + 36e8: 6848 and r1, r2 + 36ea: 3940 cmpnei r1, 0 + 36ec: 0be1 bt 0x36ae // 36ae +} + 36ee: 1463 ipop + 36f0: 1461 nir + 36f2: 0000 bkpt + 36f4: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000036f8 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 36f8: 1460 nie + 36fa: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 36fc: 106b lrw r3, 0x20000014 // 3728 + 36fe: 3101 movi r1, 1 + 3700: 9360 ld.w r3, (r3, 0x0) + 3702: 934e ld.w r2, (r3, 0x38) + 3704: 6884 and r2, r1 + 3706: 3a40 cmpnei r2, 0 + 3708: 0c03 bf 0x370e // 370e + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 370a: b330 st.w r1, (r3, 0x40) + } +} + 370c: 040b br 0x3722 // 3722 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 370e: 934e ld.w r2, (r3, 0x38) + 3710: 3102 movi r1, 2 + 3712: 6884 and r2, r1 + 3714: 3a40 cmpnei r2, 0 + 3716: 0bfa bt 0x370a // 370a + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3718: 934e ld.w r2, (r3, 0x38) + 371a: 3104 movi r1, 4 + 371c: 6884 and r2, r1 + 371e: 3a40 cmpnei r2, 0 + 3720: 0bf5 bt 0x370a // 370a +} + 3722: 1463 ipop + 3724: 1461 nir + 3726: 0000 bkpt + 3728: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +0000372c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 372c: 1460 nie + 372e: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3730: 1071 lrw r3, 0x2000000c // 3774 + 3732: 3101 movi r1, 1 + 3734: 9360 ld.w r3, (r3, 0x0) + 3736: 934c ld.w r2, (r3, 0x30) + 3738: 6884 and r2, r1 + 373a: 3a40 cmpnei r2, 0 + 373c: 0c0a bf 0x3750 // 3750 + { + BT0->ICR = BT_PEND; + 373e: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3740: 9341 ld.w r2, (r3, 0x4) + 3742: 3a86 bclri r2, 6 + 3744: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3746: 9340 ld.w r2, (r3, 0x0) + 3748: 3200 movi r2, 0 + 374a: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 374c: 1463 ipop + 374e: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3750: 934c ld.w r2, (r3, 0x30) + 3752: 3102 movi r1, 2 + 3754: 6884 and r2, r1 + 3756: 3a40 cmpnei r2, 0 + 3758: 0c03 bf 0x375e // 375e + BT0->ICR = BT_EVTRG; + 375a: b32d st.w r1, (r3, 0x34) +} + 375c: 07f8 br 0x374c // 374c + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 375e: 934c ld.w r2, (r3, 0x30) + 3760: 3104 movi r1, 4 + 3762: 6884 and r2, r1 + 3764: 3a40 cmpnei r2, 0 + 3766: 0bfa bt 0x375a // 375a + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3768: 934c ld.w r2, (r3, 0x30) + 376a: 3108 movi r1, 8 + 376c: 6884 and r2, r1 + 376e: 3a40 cmpnei r2, 0 + 3770: 0bf5 bt 0x375a // 375a + 3772: 07ed br 0x374c // 374c + 3774: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003778 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3778: 1460 nie + 377a: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 377c: 1076 lrw r3, 0x20000008 // 37d4 + 377e: 3101 movi r1, 1 + 3780: 9360 ld.w r3, (r3, 0x0) + 3782: 934c ld.w r2, (r3, 0x30) + 3784: 6884 and r2, r1 + 3786: 3a40 cmpnei r2, 0 + 3788: 0c03 bf 0x378e // 378e + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 378a: b32d st.w r1, (r3, 0x34) + } +} + 378c: 0416 br 0x37b8 // 37b8 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 378e: 934c ld.w r2, (r3, 0x30) + 3790: 3102 movi r1, 2 + 3792: 6884 and r2, r1 + 3794: 3a40 cmpnei r2, 0 + 3796: 0c13 bf 0x37bc // 37bc + BT1->ICR = BT_CMP; + 3798: b32d st.w r1, (r3, 0x34) + NUM++; + 379a: 1070 lrw r3, 0x200000b0 // 37d8 + 379c: 8340 ld.b r2, (r3, 0x0) + 379e: 2200 addi r2, 1 + 37a0: 7488 zextb r2, r2 + SysTick_100us++; + 37a2: 9321 ld.w r1, (r3, 0x4) + 37a4: 2100 addi r1, 1 + if(NUM >= 10){ + 37a6: 3a09 cmphsi r2, 10 + NUM++; + 37a8: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 37aa: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 37ac: 0c06 bf 0x37b8 // 37b8 + NUM = 0; + 37ae: 3200 movi r2, 0 + 37b0: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 37b2: 9342 ld.w r2, (r3, 0x8) + 37b4: 2200 addi r2, 1 + 37b6: b342 st.w r2, (r3, 0x8) +} + 37b8: 1463 ipop + 37ba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 37bc: 934c ld.w r2, (r3, 0x30) + 37be: 3104 movi r1, 4 + 37c0: 6884 and r2, r1 + 37c2: 3a40 cmpnei r2, 0 + 37c4: 0be3 bt 0x378a // 378a + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 37c6: 934c ld.w r2, (r3, 0x30) + 37c8: 3108 movi r1, 8 + 37ca: 6884 and r2, r1 + 37cc: 3a40 cmpnei r2, 0 + 37ce: 0bde bt 0x378a // 378a + 37d0: 07f4 br 0x37b8 // 37b8 + 37d2: 0000 bkpt + 37d4: 20000008 .long 0x20000008 + 37d8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +000037dc : + 37dc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000037de : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 37de: 1460 nie + 37e0: 1462 ipush + // ISR content ... + +} + 37e2: 1463 ipop + 37e4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000037e6 : + 37e6: 1460 nie + 37e8: 1462 ipush + 37ea: 1463 ipop + 37ec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000037ee : + 37ee: 1460 nie + 37f0: 1462 ipush + 37f2: 1463 ipop + 37f4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000037f6 : + 37f6: 1460 nie + 37f8: 1462 ipush + 37fa: 1463 ipop + 37fc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000037fe : + 37fe: 1460 nie + 3800: 1462 ipush + 3802: 1463 ipop + 3804: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003806 : + 3806: 1460 nie + 3808: 1462 ipush + 380a: 1463 ipop + 380c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000380e : + 380e: 1460 nie + 3810: 1462 ipush + 3812: 1463 ipop + 3814: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003816 : + 3816: 1460 nie + 3818: 1462 ipush + 381a: 1463 ipop + 381c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000381e : + 381e: 1460 nie + 3820: 1462 ipush + 3822: 1463 ipop + 3824: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003826 : + 3826: 1460 nie + 3828: 1462 ipush + 382a: 1463 ipop + 382c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000382e : + 382e: 1460 nie + 3830: 1462 ipush + 3832: 1463 ipop + 3834: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003836 : + 3836: 1460 nie + 3838: 1462 ipush + 383a: 1463 ipop + 383c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003840 <__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) +{ + 3840: 14c1 push r4 + int PSR; + __asm volatile( + 3842: c0006023 mfcr r3, cr<0, 0> + 3846: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 384a: 1046 lrw r2, 0x20000000 // 3860 <__divsi3+0x20> + 384c: 3400 movi r4, 0 + 384e: 9240 ld.w r2, (r2, 0x0) + 3850: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3852: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3854: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3856: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3858: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 385c: 9202 ld.w r0, (r2, 0x8) +} + 385e: 1481 pop r4 + 3860: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003864 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3864: 14c1 push r4 + int PSR; + __asm volatile( + 3866: c0006023 mfcr r3, cr<0, 0> + 386a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 386e: 1046 lrw r2, 0x20000000 // 3884 <__udivsi3+0x20> + 3870: 3401 movi r4, 1 + 3872: 9240 ld.w r2, (r2, 0x0) + 3874: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3876: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3878: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 387a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 387c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3880: 9202 ld.w r0, (r2, 0x8) +} + 3882: 1481 pop r4 + 3884: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003888 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3888: 14c1 push r4 + int PSR; + __asm volatile( + 388a: c0006023 mfcr r3, cr<0, 0> + 388e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3892: 1046 lrw r2, 0x20000000 // 38a8 <__umodsi3+0x20> + 3894: 3401 movi r4, 1 + 3896: 9240 ld.w r2, (r2, 0x0) + 3898: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 389a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 389c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 389e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 38a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 38a4: 9203 ld.w r0, (r2, 0xc) +} + 38a6: 1481 pop r4 + 38a8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000038ac : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 38ac: c1807420 psrset ee, ie +} + 38b0: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000038b4 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b4: 14d2 push r4-r5, r15 + switch(uart_id){ + 38b6: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38b8: 6d07 mov r4, r1 + switch(uart_id){ + 38ba: 0c32 bf 0x391e // 391e + 38bc: 3840 cmpnei r0, 0 + 38be: 0c04 bf 0x38c6 // 38c6 + 38c0: 3842 cmpnei r0, 2 + 38c2: 0c51 bf 0x3964 // 3964 +// GPIO_DriveStrength_EN(GPIOA0,1); +// GPIO_Write_Low(GPIOA0,1); + + break; + } +} + 38c4: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 38c6: e3fff365 bsr 0x1f90 // 1f90 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 38ca: 3100 movi r1, 0 + 38cc: 3000 movi r0, 0 + 38ce: e3fff3a1 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 38d2: 1170 lrw r3, 0x20000040 // 3990 + 38d4: 3200 movi r2, 0 + 38d6: 9300 ld.w r0, (r3, 0x0) + 38d8: 112f lrw r1, 0x1388 // 3994 + 38da: e3fff419 bsr 0x210c // 210c + UART0_Int_Enable(); + 38de: e3fff37d bsr 0x1fd8 // 1fd8 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 38e2: 3273 movi r2, 115 + 38e4: 3100 movi r1, 0 + 38e6: 110d lrw r0, 0x20000194 // 3998 + 38e8: e3fff03e bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 38ec: 116c lrw r3, 0x200001fb // 399c + 38ee: 3203 movi r2, 3 + 38f0: a340 st.b r2, (r3, 0x0) + g_uart[UART_0].processing_cf = prt_cf; + 38f2: 4c48 lsri r2, r4, 8 + 38f4: a388 st.b r4, (r3, 0x8) + 38f6: a349 st.b r2, (r3, 0x9) + 38f8: 4c50 lsri r2, r4, 16 + 38fa: 4c98 lsri r4, r4, 24 + 38fc: a38b st.b r4, (r3, 0xb) + 38fe: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOA0,3,Output); + 3900: 3103 movi r1, 3 + 3902: 1188 lrw r4, 0x2000004c // 39a0 + 3904: 3200 movi r2, 0 + 3906: 9400 ld.w r0, (r4, 0x0) + 3908: e3fff240 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,3); + 390c: 9400 ld.w r0, (r4, 0x0) + 390e: 3103 movi r1, 3 + 3910: e3fff2bd bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,3); + 3914: 9400 ld.w r0, (r4, 0x0) + 3916: 3103 movi r1, 3 + 3918: e3fff2c4 bsr 0x1ea0 // 1ea0 + break; + 391c: 07d4 br 0x38c4 // 38c4 + UART1_DeInit(); //clear all UART Register + 391e: e3fff345 bsr 0x1fa8 // 1fa8 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3922: 3102 movi r1, 2 + 3924: 3001 movi r0, 1 + 3926: e3fff375 bsr 0x2010 // 2010 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 392a: 10bf lrw r5, 0x2000003c // 39a4 + 392c: 31d0 movi r1, 208 + 392e: 3200 movi r2, 0 + 3930: 4121 lsli r1, r1, 1 + 3932: 9500 ld.w r0, (r5, 0x0) + 3934: e3fff3e4 bsr 0x20fc // 20fc + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3938: 31d0 movi r1, 208 + 393a: 9500 ld.w r0, (r5, 0x0) + 393c: 3200 movi r2, 0 + 393e: 4121 lsli r1, r1, 1 + 3940: e3fff3e6 bsr 0x210c // 210c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3944: 3273 movi r2, 115 + 3946: 3100 movi r1, 0 + 3948: 1018 lrw r0, 0x20000207 // 39a8 + 394a: e3fff00d bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 394e: 1078 lrw r3, 0x2000026e // 39ac + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3950: 3203 movi r2, 3 + 3952: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].processing_cf = prt_cf; + 3954: 4c48 lsri r2, r4, 8 + 3956: a388 st.b r4, (r3, 0x8) + 3958: a349 st.b r2, (r3, 0x9) + 395a: 4c50 lsri r2, r4, 16 + 395c: 4c98 lsri r4, r4, 24 + 395e: a34a st.b r2, (r3, 0xa) + 3960: a38b st.b r4, (r3, 0xb) +} + 3962: 07b1 br 0x38c4 // 38c4 + UART2_DeInit(); //clear all UART Register + 3964: e3fff32e bsr 0x1fc0 // 1fc0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3968: 3102 movi r1, 2 + 396a: 3002 movi r0, 2 + 396c: e3fff352 bsr 0x2010 // 2010 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3970: 1070 lrw r3, 0x20000038 // 39b0 + 3972: 3200 movi r2, 0 + 3974: 9300 ld.w r0, (r3, 0x0) + 3976: 1028 lrw r1, 0x1388 // 3994 + 3978: e3fff3ca bsr 0x210c // 210c + UART2_Int_Enable(); + 397c: e3fff33c bsr 0x1ff4 // 1ff4 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3980: 3273 movi r2, 115 + 3982: 3100 movi r1, 0 + 3984: 100c lrw r0, 0x2000027a // 39b4 + 3986: e3ffefef bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 398a: 106c lrw r3, 0x200002e1 // 39b8 + 398c: 07e2 br 0x3950 // 3950 + 398e: 0000 bkpt + 3990: 20000040 .long 0x20000040 + 3994: 00001388 .long 0x00001388 + 3998: 20000194 .long 0x20000194 + 399c: 200001fb .long 0x200001fb + 39a0: 2000004c .long 0x2000004c + 39a4: 2000003c .long 0x2000003c + 39a8: 20000207 .long 0x20000207 + 39ac: 2000026e .long 0x2000026e + 39b0: 20000038 .long 0x20000038 + 39b4: 2000027a .long 0x2000027a + 39b8: 200002e1 .long 0x200002e1 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000039bc : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 39bc: 14d2 push r4-r5, r15 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 39be: 1057 lrw r2, 0x200002df // 3a18 + 39c0: 5a22 addi r1, r2, 1 + 39c2: 8160 ld.b r3, (r1, 0x0) + 39c4: 8280 ld.b r4, (r2, 0x0) + 39c6: 4368 lsli r3, r3, 8 + 39c8: 6cd0 or r3, r4 + 39ca: 3462 movi r4, 98 + 39cc: 64d1 cmplt r4, r3 + 39ce: 0c04 bf 0x39d6 // 39d6 + 39d0: 3300 movi r3, 0 + 39d2: a260 st.b r3, (r2, 0x0) + 39d4: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39d6: 8160 ld.b r3, (r1, 0x0) + 39d8: 82a0 ld.b r5, (r2, 0x0) + 39da: 4368 lsli r3, r3, 8 + 39dc: 6cd4 or r3, r5 + 39de: 1090 lrw r4, 0x20000194 // 3a1c + 39e0: 5b22 addi r1, r3, 1 + 39e2: 7445 zexth r1, r1 + 39e4: 60d0 addu r3, r4 + 39e6: a220 st.b r1, (r2, 0x0) + 39e8: 23e5 addi r3, 230 + 39ea: 4928 lsri r1, r1, 8 + 39ec: a221 st.b r1, (r2, 0x1) + 39ee: a300 st.b r0, (r3, 0x0) + + uart_receive_input((U8_T)data); + 39f0: e000129c bsr 0x5f28 // 5f28 + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39f4: 106b lrw r3, 0x200000b8 // 3a20 + 39f6: 104c lrw r2, 0x151 // 3a24 + 39f8: 9360 ld.w r3, (r3, 0x0) + 39fa: 6090 addu r2, r4 + 39fc: 4b28 lsri r1, r3, 8 + 39fe: a260 st.b r3, (r2, 0x0) + 3a00: a221 st.b r1, (r2, 0x1) + 3a02: 4b30 lsri r1, r3, 16 + 3a04: 4b78 lsri r3, r3, 24 + 3a06: a263 st.b r3, (r2, 0x3) + g_uart[UART_2].Receiving = 0x01; + 3a08: 33a5 movi r3, 165 + 3a0a: 4361 lsli r3, r3, 1 + 3a0c: 610c addu r4, r3 + 3a0e: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a10: a222 st.b r1, (r2, 0x2) + g_uart[UART_2].Receiving = 0x01; + 3a12: a460 st.b r3, (r4, 0x0) +} + 3a14: 1492 pop r4-r5, r15 + 3a16: 0000 bkpt + 3a18: 200002df .long 0x200002df + 3a1c: 20000194 .long 0x20000194 + 3a20: 200000b8 .long 0x200000b8 + 3a24: 00000151 .long 0x00000151 + +Disassembly of section .text.UART2_TASK: + +00003a28 : + + +void UART2_TASK(void){ + 3a28: 14d3 push r4-r6, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3a2a: 1184 lrw r4, 0x200002de // 3ab8 + 3a2c: 8460 ld.b r3, (r4, 0x0) + 3a2e: 3b41 cmpnei r3, 1 + 3a30: 0843 bt 0x3ab6 // 3ab6 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3a32: 8428 ld.b r1, (r4, 0x8) + 3a34: 8467 ld.b r3, (r4, 0x7) + 3a36: 4128 lsli r1, r1, 8 + 3a38: 6c4c or r1, r3 + 3a3a: 8469 ld.b r3, (r4, 0x9) + 3a3c: 4370 lsli r3, r3, 16 + 3a3e: 6c4c or r1, r3 + 3a40: 846a ld.b r3, (r4, 0xa) + 3a42: 10bf lrw r5, 0x200000b8 // 3abc + 3a44: 4378 lsli r3, r3, 24 + 3a46: 6cc4 or r3, r1 + 3a48: 9500 ld.w r0, (r5, 0x0) + 3a4a: 8424 ld.b r1, (r4, 0x4) + 3a4c: 600e subu r0, r3 + 3a4e: 4128 lsli r1, r1, 8 + 3a50: 8463 ld.b r3, (r4, 0x3) + 3a52: 6c4c or r1, r3 + 3a54: 8465 ld.b r3, (r4, 0x5) + 3a56: 4370 lsli r3, r3, 16 + 3a58: 6c4c or r1, r3 + 3a5a: 8466 ld.b r3, (r4, 0x6) + 3a5c: 4378 lsli r3, r3, 24 + 3a5e: 6cc4 or r3, r1 + 3a60: 640c cmphs r3, r0 + 3a62: 082a bt 0x3ab6 // 3ab6 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a64: 9560 ld.w r3, (r5, 0x0) + 3a66: 4b28 lsri r1, r3, 8 + 3a68: a467 st.b r3, (r4, 0x7) + 3a6a: a428 st.b r1, (r4, 0x8) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", g_uart[UART_2].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3a6c: 844c ld.b r2, (r4, 0xc) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a6e: 4b30 lsri r1, r3, 16 + 3a70: 4b78 lsri r3, r3, 24 + 3a72: a46a st.b r3, (r4, 0xa) + if(g_uart[UART_2].processing_cf != NULL){ + 3a74: 4248 lsli r2, r2, 8 + 3a76: 846b ld.b r3, (r4, 0xb) + 3a78: 6c8c or r2, r3 + 3a7a: 846d ld.b r3, (r4, 0xd) + 3a7c: 4370 lsli r3, r3, 16 + 3a7e: 6c8c or r2, r3 + 3a80: 846e ld.b r3, (r4, 0xe) + 3a82: 4378 lsli r3, r3, 24 + 3a84: 6cc8 or r3, r2 + 3a86: 3b40 cmpnei r3, 0 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a88: a429 st.b r1, (r4, 0x9) + 3a8a: 5ca2 addi r5, r4, 1 + if(g_uart[UART_2].processing_cf != NULL){ + 3a8c: 0c11 bf 0x3aae // 3aae + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a8e: 8422 ld.b r1, (r4, 0x2) + 3a90: 8540 ld.b r2, (r5, 0x0) + 3a92: 4128 lsli r1, r1, 8 + 3a94: 6c48 or r1, r2 + 3a96: 100b lrw r0, 0x2000027a // 3ac0 + 3a98: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3a9a: 3841 cmpnei r0, 1 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a9c: 5cc6 addi r6, r4, 2 + if(rev == 0x01){ + 3a9e: 0808 bt 0x3aae // 3aae + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3aa0: 8422 ld.b r1, (r4, 0x2) + 3aa2: 8560 ld.b r3, (r5, 0x0) + 3aa4: 4128 lsli r1, r1, 8 + 3aa6: 6c4c or r1, r3 + 3aa8: 1006 lrw r0, 0x2000027a // 3ac0 + 3aaa: e00003db bsr 0x4260 // 4260 + } + + g_uart[UART_2].RecvLen = 0; + 3aae: 3300 movi r3, 0 + 3ab0: a560 st.b r3, (r5, 0x0) + 3ab2: a561 st.b r3, (r5, 0x1) + g_uart[UART_2].Receiving = 0; + 3ab4: a460 st.b r3, (r4, 0x0) + } + } +} + 3ab6: 1493 pop r4-r6, r15 + 3ab8: 200002de .long 0x200002de + 3abc: 200000b8 .long 0x200000b8 + 3ac0: 2000027a .long 0x2000027a + +Disassembly of section .text.MCU485_SendData: + +00003ac4 : + }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){ + 3ac4: 14d4 push r4-r7, r15 + 3ac6: 1421 subi r14, r14, 4 + 3ac8: b800 st.w r0, (r14, 0x0) + 3aca: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3acc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3ace: 109d lrw r4, 0x200000bc // 3b40 + 3ad0: 10dd lrw r6, 0x2000004c // 3b44 + 3ad2: 9460 ld.w r3, (r4, 0x0) + 3ad4: 3b41 cmpnei r3, 1 + 3ad6: 0c29 bf 0x3b28 // 3b28 + } + + GPIO_Reverse(GPIOA0,1); + } + + delay_nus(500); + 3ad8: 30fa movi r0, 250 + 3ada: 4001 lsli r0, r0, 1 + 3adc: e3fff908 bsr 0x2cec // 2cec + GPIO_Write_High(GPIOA0,1); + 3ae0: 3101 movi r1, 1 + 3ae2: 9600 ld.w r0, (r6, 0x0) + 3ae4: e3fff1da bsr 0x1e98 // 1e98 + + RS485_Comm_Flag = 0x01; + 3ae8: 3301 movi r3, 1 + 3aea: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 3aec: 3300 movi r3, 0 + 3aee: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 3af0: b463 st.w r3, (r4, 0xc) + + UARTTransmit(UART2,buff,len); + 3af2: 6c9f mov r2, r7 + 3af4: 1075 lrw r3, 0x20000038 // 3b48 + 3af6: 9300 ld.w r0, (r3, 0x0) + 3af8: 9820 ld.w r1, (r14, 0x0) + 3afa: e3fff311 bsr 0x211c // 211c + + do{ + delay_nus(100); + 3afe: 3064 movi r0, 100 + 3b00: e3fff8f6 bsr 0x2cec // 2cec + + delay_cnt ++; + 3b04: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b06: 3363 movi r3, 99 + 3b08: 654c cmphs r3, r5 + 3b0a: 0c07 bf 0x3b18 // 3b18 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3b0c: 9462 ld.w r3, (r4, 0x8) + 3b0e: 65cd cmplt r3, r7 + 3b10: 0bf7 bt 0x3afe // 3afe + 3b12: 9463 ld.w r3, (r4, 0xc) + 3b14: 65cd cmplt r3, r7 + 3b16: 0bf4 bt 0x3afe // 3afe + + GPIO_Write_Low(GPIOA0,1); + 3b18: 9600 ld.w r0, (r6, 0x0) + 3b1a: 3101 movi r1, 1 + 3b1c: e3fff1c2 bsr 0x1ea0 // 1ea0 + + RS485_Comm_Flag = 0x00; + 3b20: 3300 movi r3, 0 + 3b22: b461 st.w r3, (r4, 0x4) +} + 3b24: 1401 addi r14, r14, 4 + 3b26: 1494 pop r4-r7, r15 + delay_nus(100); + 3b28: 3064 movi r0, 100 + 3b2a: e3fff8e1 bsr 0x2cec // 2cec + delay_cnt ++; + 3b2e: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b30: 3364 movi r3, 100 + 3b32: 64d6 cmpne r5, r3 + 3b34: 0fd2 bf 0x3ad8 // 3ad8 + GPIO_Reverse(GPIOA0,1); + 3b36: 3101 movi r1, 1 + 3b38: 9600 ld.w r0, (r6, 0x0) + 3b3a: e3fff1b7 bsr 0x1ea8 // 1ea8 + 3b3e: 07ca br 0x3ad2 // 3ad2 + 3b40: 200000bc .long 0x200000bc + 3b44: 2000004c .long 0x2000004c + 3b48: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003b4c : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3b4c: 1423 subi r14, r14, 12 + 3b4e: b862 st.w r3, (r14, 0x8) + 3b50: b841 st.w r2, (r14, 0x4) + 3b52: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3b54: 1403 addi r14, r14, 12 + 3b56: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003b58 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3b58: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003b5c : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 3b5c: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3b5e: 3230 movi r2, 48 + 3b60: 3100 movi r1, 0 + 3b62: 1017 lrw r0, 0x20000320 // 3bbc + 3b64: e3ffef00 bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + 3b68: 3214 movi r2, 20 + 3b6a: 3100 movi r1, 0 + 3b6c: 1015 lrw r0, 0x2000030c // 3bc0 + 3b6e: e3ffeefb bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3b72: 321c movi r2, 28 + 3b74: 3100 movi r1, 0 + 3b76: 1014 lrw r0, 0x200002f0 // 3bc4 + 3b78: e3ffeef6 bsr 0x1964 // 1964 <__memset_fast> + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b7c: 1093 lrw r4, 0x20000350 // 3bc8 + EEPROM_Init(); //按键库初始化前先读取参数 + 3b7e: e0000489 bsr 0x4490 // 4490 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b82: 8405 ld.b r0, (r4, 0x5) + 3b84: 1030 lrw r1, 0x200002f0 // 3bc4 + 3b86: e00004e3 bsr 0x454c // 454c + if(rev == 0x00){ + 3b8a: 3840 cmpnei r0, 0 + 3b8c: 080e bt 0x3ba8 // 3ba8 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3b8e: 8405 ld.b r0, (r4, 0x5) + 3b90: 102d lrw r1, 0x200002f0 // 3bc4 + 3b92: e0000533 bsr 0x45f8 // 45f8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3b96: 100c lrw r0, 0x200002f0 // 3bc4 + 3b98: e00005a4 bsr 0x46e0 // 46e0 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3b9c: e0001bf4 bsr 0x7384 // 7384 + + base_update_f = 0x01; //触摸状态强制更新 + 3ba0: 106b lrw r3, 0x20000743 // 3bcc + 3ba2: 3201 movi r2, 1 + 3ba4: a340 st.b r2, (r3, 0x0) + +} + 3ba6: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3ba8: 102a lrw r1, 0x7c4e // 3bd0 + 3baa: 3000 movi r0, 0 + 3bac: e3ffffd0 bsr 0x3b4c // 3b4c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3bb0: 8405 ld.b r0, (r4, 0x5) + 3bb2: 1025 lrw r1, 0x200002f0 // 3bc4 + 3bb4: e0000576 bsr 0x46a0 // 46a0 + 3bb8: 07ef br 0x3b96 // 3b96 + 3bba: 0000 bkpt + 3bbc: 20000320 .long 0x20000320 + 3bc0: 2000030c .long 0x2000030c + 3bc4: 200002f0 .long 0x200002f0 + 3bc8: 20000350 .long 0x20000350 + 3bcc: 20000743 .long 0x20000743 + 3bd0: 00007c4e .long 0x00007c4e + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003bd4 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3bd4: 14d3 push r4-r6, r15 + 3bd6: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3bd8: 1289 lrw r4, 0x20000068 // 3cfc + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bda: 8400 ld.b r0, (r4, 0x0) + 3bdc: 1229 lrw r1, 0x2000088e // 3d00 + 3bde: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3be0: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3be2: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3be4: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3be8: 330a movi r3, 10 + 3bea: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bee: 8a60 ld.h r3, (r2, 0x0) + 3bf0: 4b68 lsri r3, r3, 8 + 3bf2: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bf6: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3bf8: 1243 lrw r2, 0x200008d2 // 3d04 + 3bfa: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bfc: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c00: 8d60 ld.h r3, (r5, 0x0) + 3c02: 4b68 lsri r3, r3, 8 + 3c04: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c08: 8d60 ld.h r3, (r5, 0x0) + 3c0a: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c0e: 117f lrw r3, 0x2000062c // 3d08 + 3c10: 600c addu r0, r3 + 3c12: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c14: 8800 ld.h r0, (r0, 0x0) + 3c16: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c1a: 8401 ld.b r0, (r4, 0x1) + 3c1c: 4001 lsli r0, r0, 1 + 3c1e: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c20: 4da8 lsri r5, r5, 8 + 3c22: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c26: 8ea0 ld.h r5, (r6, 0x0) + 3c28: 4da8 lsri r5, r5, 8 + 3c2a: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c2e: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c30: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c32: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c36: 8ea0 ld.h r5, (r6, 0x0) + 3c38: 4da8 lsri r5, r5, 8 + 3c3a: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c3e: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c40: 8ea0 ld.h r5, (r6, 0x0) + 3c42: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c46: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c48: 8800 ld.h r0, (r0, 0x0) + 3c4a: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c4e: 8402 ld.b r0, (r4, 0x2) + 3c50: 4001 lsli r0, r0, 1 + 3c52: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c54: 4da8 lsri r5, r5, 8 + 3c56: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c5a: 8ea0 ld.h r5, (r6, 0x0) + 3c5c: 4da8 lsri r5, r5, 8 + 3c5e: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c62: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c64: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c66: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c6a: 8ea0 ld.h r5, (r6, 0x0) + 3c6c: 4da8 lsri r5, r5, 8 + 3c6e: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c72: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c74: 8ea0 ld.h r5, (r6, 0x0) + 3c76: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c7a: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c7c: 8800 ld.h r0, (r0, 0x0) + 3c7e: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c82: 8403 ld.b r0, (r4, 0x3) + 3c84: 4001 lsli r0, r0, 1 + 3c86: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c88: 4da8 lsri r5, r5, 8 + 3c8a: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c8e: 8ea0 ld.h r5, (r6, 0x0) + 3c90: 4da8 lsri r5, r5, 8 + 3c92: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c96: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c98: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c9a: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c9e: 8ea0 ld.h r5, (r6, 0x0) + 3ca0: 4da8 lsri r5, r5, 8 + 3ca2: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3ca6: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3ca8: 8ea0 ld.h r5, (r6, 0x0) + 3caa: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cae: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cb0: 8800 ld.h r0, (r0, 0x0) + 3cb2: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cb6: 8404 ld.b r0, (r4, 0x4) + 3cb8: 4001 lsli r0, r0, 1 + 3cba: 6040 addu r1, r0 + 3cbc: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3cbe: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3cc0: 8920 ld.h r1, (r1, 0x0) + 3cc2: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cc6: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cc8: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cca: 8a40 ld.h r2, (r2, 0x0) + 3ccc: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd0: 8b40 ld.h r2, (r3, 0x0) + 3cd2: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3cd4: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cd6: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cd8: 4928 lsri r1, r1, 8 + 3cda: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cde: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3ce2: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ce6: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3cea: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cec: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3cee: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cf0: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3cf4: e3fffee8 bsr 0x3ac4 // 3ac4 +// UARTTransmit(UART2,send_buff,send_len); + +} + 3cf8: 140d addi r14, r14, 52 + 3cfa: 1493 pop r4-r6, r15 + 3cfc: 20000068 .long 0x20000068 + 3d00: 2000088e .long 0x2000088e + 3d04: 200008d2 .long 0x200008d2 + 3d08: 2000062c .long 0x2000062c + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003d0c : +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3d0c: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3d0e: 3804 cmphsi r0, 5 + 3d10: 0818 bt 0x3d40 // 3d40 + 3d12: 106d lrw r3, 0x20000320 // 3d44 + 3d14: e3ffe7f4 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3d18: 0e0b0803 .long 0x0e0b0803 + 3d1c: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3d1e: 9309 ld.w r0, (r3, 0x24) + 3d20: 4809 lsri r0, r0, 9 + if(g_key.key_state & 0x1000){ + state = 0x01; + } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3d22: 3301 movi r3, 1 + U8_T state = 0; + 3d24: 680c and r0, r3 + } + break; + } + + return state; +} + 3d26: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3d28: 9309 ld.w r0, (r3, 0x24) + 3d2a: 480a lsri r0, r0, 10 + 3d2c: 07fb br 0x3d22 // 3d22 + if(g_key.key_state & 0x0800){ + 3d2e: 9309 ld.w r0, (r3, 0x24) + 3d30: 480b lsri r0, r0, 11 + 3d32: 07f8 br 0x3d22 // 3d22 + if(g_key.key_state & 0x1000){ + 3d34: 9309 ld.w r0, (r3, 0x24) + 3d36: 480c lsri r0, r0, 12 + 3d38: 07f5 br 0x3d22 // 3d22 + if(g_key.key_state & 0x2000){ + 3d3a: 9309 ld.w r0, (r3, 0x24) + 3d3c: 480d lsri r0, r0, 13 + 3d3e: 07f2 br 0x3d22 // 3d22 + U8_T state = 0; + 3d40: 3000 movi r0, 0 + 3d42: 07f2 br 0x3d26 // 3d26 + 3d44: 20000320 .long 0x20000320 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003d48 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3d48: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3d4a: 118a lrw r4, 0x20000320 // 3df0 + 3d4c: 8465 ld.b r3, (r4, 0x5) + 3d4e: 3b42 cmpnei r3, 2 + 3d50: 081c bt 0x3d88 // 3d88 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d52: 3300 movi r3, 0 + 3d54: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3d56: 8466 ld.b r3, (r4, 0x6) + 3d58: 3b42 cmpnei r3, 2 + 3d5a: 0820 bt 0x3d9a // 3d9a + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d5c: 3300 movi r3, 0 + 3d5e: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3d60: 8467 ld.b r3, (r4, 0x7) + 3d62: 3b42 cmpnei r3, 2 + 3d64: 0824 bt 0x3dac // 3dac + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d66: 3300 movi r3, 0 + 3d68: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3d6a: e0000d49 bsr 0x57fc // 57fc + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3d6e: 8468 ld.b r3, (r4, 0x8) + 3d70: 3b42 cmpnei r3, 2 + 3d72: 0829 bt 0x3dc4 // 3dc4 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3d74: 3300 movi r3, 0 + 3d76: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3d78: e0000df8 bsr 0x5968 // 5968 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3d7c: 8469 ld.b r3, (r4, 0x9) + 3d7e: 3b42 cmpnei r3, 2 + 3d80: 082e bt 0x3ddc // 3ddc + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3d82: 3300 movi r3, 0 + 3d84: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3d86: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d88: 3b44 cmpnei r3, 4 + 3d8a: 0fe4 bf 0x3d52 // 3d52 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3d8c: 3b41 cmpnei r3, 1 + 3d8e: 0be4 bt 0x3d56 // 3d56 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d90: 3300 movi r3, 0 + 3d92: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3d94: e0000bce bsr 0x5530 // 5530 + 3d98: 07df br 0x3d56 // 3d56 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d9a: 3b44 cmpnei r3, 4 + 3d9c: 0fe0 bf 0x3d5c // 3d5c + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3d9e: 3b41 cmpnei r3, 1 + 3da0: 0be0 bt 0x3d60 // 3d60 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3da2: 3300 movi r3, 0 + 3da4: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3da6: e0000c37 bsr 0x5614 // 5614 + 3daa: 07db br 0x3d60 // 3d60 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dac: 3b44 cmpnei r3, 4 + 3dae: 0804 bt 0x3db6 // 3db6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3db0: 3300 movi r3, 0 + 3db2: a467 st.b r3, (r4, 0x7) + 3db4: 07dd br 0x3d6e // 3d6e + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3db6: 3b41 cmpnei r3, 1 + 3db8: 0bdb bt 0x3d6e // 3d6e + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3dba: 3300 movi r3, 0 + 3dbc: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3dbe: e0000c9d bsr 0x56f8 // 56f8 + 3dc2: 07d6 br 0x3d6e // 3d6e + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0804 bt 0x3dce // 3dce + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dc8: 3300 movi r3, 0 + 3dca: a468 st.b r3, (r4, 0x8) + 3dcc: 07d8 br 0x3d7c // 3d7c + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3dce: 3b41 cmpnei r3, 1 + 3dd0: 0bd6 bt 0x3d7c // 3d7c + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dd2: 3300 movi r3, 0 + 3dd4: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3dd6: e0000d49 bsr 0x5868 // 5868 + 3dda: 07d1 br 0x3d7c // 3d7c + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ddc: 3b44 cmpnei r3, 4 + 3dde: 0fd2 bf 0x3d82 // 3d82 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3de0: 3b41 cmpnei r3, 1 + 3de2: 0bd2 bt 0x3d86 // 3d86 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3de4: 3300 movi r3, 0 + 3de6: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3de8: e0000df6 bsr 0x59d4 // 59d4 +} + 3dec: 07cd br 0x3d86 // 3d86 + 3dee: 0000 bkpt + 3df0: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003df4 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3df4: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3df6: 106c lrw r3, 0x200003f3 // 3e24 + 3df8: 8340 ld.b r2, (r3, 0x0) + 3dfa: 3a41 cmpnei r2, 1 + 3dfc: 0c04 bf 0x3e04 // 3e04 + 3dfe: 8362 ld.b r3, (r3, 0x2) + 3e00: 3b45 cmpnei r3, 5 + 3e02: 0c10 bf 0x3e22 // 3e22 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3e04: 1069 lrw r3, 0x20000320 // 3e28 + 3e06: 8359 ld.b r2, (r3, 0x19) + 3e08: 3a41 cmpnei r2, 1 + 3e0a: 080c bt 0x3e22 // 3e22 + if(SysTick_1ms - g_key.key_dug_tick >= 50){ + 3e0c: 1028 lrw r1, 0x200000b8 // 3e2c + 3e0e: 9140 ld.w r2, (r1, 0x0) + 3e10: 930b ld.w r0, (r3, 0x2c) + 3e12: 6082 subu r2, r0 + 3e14: 3031 movi r0, 49 + 3e16: 6480 cmphs r0, r2 + 3e18: 0805 bt 0x3e22 // 3e22 + g_key.key_dug_tick = SysTick_1ms; + 3e1a: 9140 ld.w r2, (r1, 0x0) + 3e1c: b34b st.w r2, (r3, 0x2c) + + /*打印触摸按键数值*/ + TouchKey_RS485_Printf(); + 3e1e: e3fffedb bsr 0x3bd4 // 3bd4 + } + } +} + 3e22: 1490 pop r15 + 3e24: 200003f3 .long 0x200003f3 + 3e28: 20000320 .long 0x20000320 + 3e2c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003e30 : +void Touch_Key_Task(void){ + 3e30: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3e32: 1132 lrw r1, 0x200000b8 // 3ef8 + 3e34: 1172 lrw r3, 0x20000320 // 3efc + 3e36: 9140 ld.w r2, (r1, 0x0) + 3e38: 930a ld.w r0, (r3, 0x28) + 3e3a: 6082 subu r2, r0 + 3e3c: 3a04 cmphsi r2, 5 + 3e3e: 0806 bt 0x3e4a // 3e4a + break; + } + } + } + + Touch_Key_Event_Handling(); + 3e40: e3ffff84 bsr 0x3d48 // 3d48 + + TouchKey_Set_Interface_Task(); + 3e44: e3ffffd8 bsr 0x3df4 // 3df4 + +} + 3e48: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3e4a: 9140 ld.w r2, (r1, 0x0) + 3e4c: b34a st.w r2, (r3, 0x28) + if(Key_Map != 0x00){ + 3e4e: 112d lrw r1, 0x20000760 // 3f00 + 3e50: 9140 ld.w r2, (r1, 0x0) + 3e52: 3a40 cmpnei r2, 0 + 3e54: 0c02 bf 0x3e58 // 3e58 + g_key.key_state = Key_Map; + 3e56: 9140 ld.w r2, (r1, 0x0) + 3e58: 1189 lrw r4, 0x20000320 // 3efc +void Touch_Key_Task(void){ + 3e5a: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3e5c: b349 st.w r2, (r3, 0x24) +void Touch_Key_Task(void){ + 3e5e: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3e60: 11e9 lrw r7, 0x257 // 3f04 + switch (g_key.KEY_STA[i]) { + 3e62: 8460 ld.b r3, (r4, 0x0) + 3e64: 3b41 cmpnei r3, 1 + 3e66: 0c24 bf 0x3eae // 3eae + 3e68: 3b40 cmpnei r3, 0 + 3e6a: 0c0a bf 0x3e7e // 3e7e + 3e6c: 3b42 cmpnei r3, 2 + 3e6e: 0c39 bf 0x3ee0 // 3ee0 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3e70: 2500 addi r5, 1 + 3e72: 7554 zextb r5, r5 + 3e74: 3d45 cmpnei r5, 5 + 3e76: 2400 addi r4, 1 + 3e78: 2601 addi r6, 2 + 3e7a: 0bf4 bt 0x3e62 // 3e62 + 3e7c: 07e2 br 0x3e40 // 3e40 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3e7e: 6c17 mov r0, r5 + 3e80: e3ffff46 bsr 0x3d0c // 3d0c + 3e84: 3841 cmpnei r0, 1 + 3e86: 080f bt 0x3ea4 // 3ea4 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3e88: 8474 ld.b r3, (r4, 0x14) + 3e8a: 3b01 cmphsi r3, 2 + 3e8c: 0804 bt 0x3e94 // 3e94 + g_key.delayCnt[i]++; + 3e8e: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3e90: a474 st.b r3, (r4, 0x14) + 3e92: 07ef br 0x3e70 // 3e70 + Controlled_Buzzer(0x01); + 3e94: 3001 movi r0, 1 + 3e96: e0000769 bsr 0x4d68 // 4d68 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3e9a: 3301 movi r3, 1 + 3e9c: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3e9e: 3300 movi r3, 0 + 3ea0: ae6d st.h r3, (r6, 0x1a) + 3ea2: 07f7 br 0x3e90 // 3e90 + g_key.delayCnt[i] = 0; + 3ea4: 3300 movi r3, 0 + 3ea6: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ea8: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3eaa: a465 st.b r3, (r4, 0x5) + 3eac: 07e2 br 0x3e70 // 3e70 + g_key.key_time[i]++; + 3eae: 8e6d ld.h r3, (r6, 0x1a) + 3eb0: 2300 addi r3, 1 + 3eb2: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb4: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3eb6: ae6d st.h r3, (r6, 0x1a) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3eb8: 0c0c bf 0x3ed0 // 3ed0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3eba: 6c17 mov r0, r5 + 3ebc: e3ffff28 bsr 0x3d0c // 3d0c + 3ec0: 3840 cmpnei r0, 0 + 3ec2: 0bd7 bt 0x3e70 // 3e70 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ec4: 3301 movi r3, 1 + 3ec6: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3ec8: 3300 movi r3, 0 + 3eca: ae6d st.h r3, (r6, 0x1a) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ecc: a460 st.b r3, (r4, 0x0) + 3ece: 07d1 br 0x3e70 // 3e70 + g_key.KEY_STA[i] = KEY_STA_S2; + 3ed0: 3302 movi r3, 2 + 3ed2: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ed4: 3300 movi r3, 0 + 3ed6: ae6d st.h r3, (r6, 0x1a) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3ed8: 3303 movi r3, 3 + 3eda: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3edc: 3302 movi r3, 2 + 3ede: 07e6 br 0x3eaa // 3eaa + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee0: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee2: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ee4: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ee6: e3ffff13 bsr 0x3d0c // 3d0c + 3eea: 3840 cmpnei r0, 0 + 3eec: 0bc2 bt 0x3e70 // 3e70 + g_key.KEY_STA[i] = KEY_STA_S0; + 3eee: 3300 movi r3, 0 + 3ef0: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3ef2: 3304 movi r3, 4 + 3ef4: 07db br 0x3eaa // 3eaa + 3ef6: 0000 bkpt + 3ef8: 200000b8 .long 0x200000b8 + 3efc: 20000320 .long 0x20000320 + 3f00: 20000760 .long 0x20000760 + 3f04: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003f08 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3f08: 6040 addu r1, r0 + U8_T data_sum = 0; + 3f0a: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3f10: 6cce nor r3, r3 + 3f12: 740c zextb r0, r3 +} + 3f14: 783c jmp r15 + data_sum += data[i]; + 3f16: 8040 ld.b r2, (r0, 0x0) + 3f18: 60c8 addu r3, r2 + 3f1a: 74cc zextb r3, r3 + 3f1c: 2000 addi r0, 1 + 3f1e: 07f7 br 0x3f0c // 3f0c + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003f20 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3f20: 14d2 push r4-r5, r15 + 3f22: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3f24: 5992 addi r4, r1, 5 + 3f26: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3f28: 3331 movi r3, 49 + 3f2a: 650c cmphs r3, r4 + 3f2c: 0803 bt 0x3f32 // 3f32 + para_len = 44; + 3f2e: 312c movi r1, 44 + reply_len = 50; + 3f30: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3f32: 3300 movi r3, 0 + 3f34: 2b50 subi r3, 81 + 3f36: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3f3a: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3f3e: 1077 lrw r3, 0x20000350 // 3f98 + 3f40: 8360 ld.b r3, (r3, 0x0) + 3f42: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3f46: 3300 movi r3, 0 + 3f48: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3f52: 3200 movi r2, 0 + 3f54: 60f8 addu r3, r14 + 3f56: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f58: 6c53 mov r1, r4 + 3f5a: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3f5c: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f5e: e3ffffd5 bsr 0x3f08 // 3f08 + + if (detect_inf.control_model == 0x00){ + 3f62: 106f lrw r3, 0x200003cc // 3f9c + 3f64: 8363 ld.b r3, (r3, 0x3) + 3f66: 3b40 cmpnei r3, 0 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f68: dc0e0003 st.b r0, (r14, 0x3) + if (detect_inf.control_model == 0x00){ + 3f6c: 080f bt 0x3f8a // 3f8a + MCU485_SendData(send_data,reply_len); + 3f6e: 6c53 mov r1, r4 + 3f70: 6c3b mov r0, r14 + 3f72: e3fffda9 bsr 0x3ac4 // 3ac4 + }else { + UARTTransmit(UART2,send_data,reply_len); + } +} + 3f76: 140f addi r14, r14, 60 + 3f78: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3f7a: 6c8f mov r2, r3 + 3f7c: 58ac addu r5, r0, r3 + 3f7e: 60b8 addu r2, r14 + 3f80: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + UARTTransmit(UART2,send_data,reply_len); + 3f8a: 1066 lrw r3, 0x20000038 // 3fa0 + 3f8c: 6c93 mov r2, r4 + 3f8e: 9300 ld.w r0, (r3, 0x0) + 3f90: 6c7b mov r1, r14 + 3f92: e3fff0c5 bsr 0x211c // 211c + 3f96: 07f0 br 0x3f76 // 3f76 + 3f98: 20000350 .long 0x20000350 + 3f9c: 200003cc .long 0x200003cc + 3fa0: 20000038 .long 0x20000038 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003fa4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fa4: 14d4 push r4-r7, r15 + 3fa6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fa8: 80a0 ld.b r5, (r0, 0x0) + 3faa: 5dc3 subi r6, r5, 1 + 3fac: 7598 zextb r6, r6 + 3fae: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fb0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fb2: 0834 bt 0x401a // 401a + 3fb4: 1125 lrw r1, 0x200002f0 // 4048 + 3fb6: 350b movi r5, 11 + 3fb8: 5862 addi r3, r0, 1 + 3fba: 6140 addu r5, r0 + 3fbc: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3fda: 8479 ld.b r3, (r4, 0x19) + 3fdc: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3fde: 847a ld.b r3, (r4, 0x1a) + 3fe0: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3fe2: 847b ld.b r3, (r4, 0x1b) + 3fe4: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3fe6: 847c ld.b r3, (r4, 0x1c) + 3fe8: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fea: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3fec: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fee: 1037 lrw r1, 0x200002f0 // 4048 + touch_para.longpress_time = para[29]; + 3ff0: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff2: e0000303 bsr 0x45f8 // 45f8 + + if(rev == 0x00){ + 3ff6: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ff8: 6d43 mov r5, r0 + if(rev == 0x00){ + 3ffa: 0805 bt 0x4004 // 4004 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3ffc: 1033 lrw r1, 0x200002f0 // 4048 + 3ffe: 6c1b mov r0, r6 + 4000: e0000270 bsr 0x44e0 // 44e0 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4004: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4006: 3102 movi r1, 2 + 4008: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 400a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 400e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4012: e3ffff87 bsr 0x3f20 // 3f20 +} + 4016: 1401 addi r14, r14, 4 + 4018: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 401a: 3d40 cmpnei r5, 0 + 401c: 0c03 bf 0x4022 // 4022 + rev = 0x01; + 401e: 3501 movi r5, 1 + 4020: 07f2 br 0x4004 // 4004 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 4022: 8061 ld.b r3, (r0, 0x1) + 4024: 104a lrw r2, 0x7788 // 404c + 4026: 102b lrw r1, 0x7c7b // 4050 + 4028: 3000 movi r0, 0 + 402a: e3fffd91 bsr 0x3b4c // 3b4c + if( (para[1] > 0) && (para[1] <= 3) ){ + 402e: 8461 ld.b r3, (r4, 0x1) + 4030: 2b00 subi r3, 1 + 4032: 74cc zextb r3, r3 + 4034: 3b02 cmphsi r3, 3 + 4036: 0bf4 bt 0x401e // 401e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4038: 1047 lrw r2, 0x200003f3 // 4054 + g_eeprom.key_sens_level = para[1] - 1; + 403a: 1008 lrw r0, 0x20000350 // 4058 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 403c: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 403e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4040: e00001c2 bsr 0x43c4 // 43c4 + 4044: 07e0 br 0x4004 // 4004 + 4046: 0000 bkpt + 4048: 200002f0 .long 0x200002f0 + 404c: 00007788 .long 0x00007788 + 4050: 00007c7b .long 0x00007c7b + 4054: 200003f3 .long 0x200003f3 + 4058: 20000350 .long 0x20000350 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +0000405c : +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 405c: 14d2 push r4-r5, r15 + 405e: 142d subi r14, r14, 52 + 4060: 6d03 mov r4, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 4062: 3232 movi r2, 50 + 4064: 3100 movi r1, 0 + 4066: 6c3b mov r0, r14 + 4068: e3ffec7e bsr 0x1964 // 1964 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 406c: 8400 ld.b r0, (r4, 0x0) + reply_buff[reply_len++] = 0x02; + 406e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4070: 3840 cmpnei r0, 0 + reply_buff[reply_len++] = 0x02; + 4072: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 4076: 082d bt 0x40d0 // 40d0 + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4078: 1170 lrw r3, 0x20000350 // 4138 + 407a: 8365 ld.b r3, (r3, 0x5) + 407c: 2300 addi r3, 1 + 407e: 1130 lrw r1, 0x200002f0 // 413c + 4080: 6c87 mov r2, r1 + 4082: dc6e0001 st.b r3, (r14, 0x1) + 4086: 6cfb mov r3, r14 + + for(i=0;i> 8; + 408e: 4c88 lsri r4, r4, 8 + 4090: a383 st.b r4, (r3, 0x3) + for(i=0;i> 8; + 409a: 4c88 lsri r4, r4, 8 + 409c: a38f st.b r4, (r3, 0xf) + 409e: 2101 addi r1, 2 + 40a0: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 40a4: 8260 ld.b r3, (r2, 0x0) + 40a6: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 40aa: 8261 ld.b r3, (r2, 0x1) + 40ac: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 40b0: 8262 ld.b r3, (r2, 0x2) + 40b2: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 40b6: 8263 ld.b r3, (r2, 0x3) + 40b8: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40bc: 8278 ld.b r3, (r2, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40be: dc6e001e st.b r3, (r14, 0x1e) + 40c2: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 40c4: 7445 zexth r1, r1 + 40c6: 6c3b mov r0, r14 + 40c8: e3ffff2c bsr 0x3f20 // 3f20 +} + 40cc: 140d addi r14, r14, 52 + 40ce: 1492 pop r4-r5, r15 + }else if(para[0] <= 3){ + 40d0: 3803 cmphsi r0, 4 + 40d2: 0831 bt 0x4134 // 4134 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 40d4: 2800 subi r0, 1 + 40d6: 7400 zextb r0, r0 + 40d8: 1039 lrw r1, 0x200002f0 // 413c + 40da: e0000239 bsr 0x454c // 454c + if(rev != 0x00){ + 40de: 3840 cmpnei r0, 0 + 40e0: 10b7 lrw r5, 0x200002f0 // 413c + 40e2: 0c07 bf 0x40f0 // 40f0 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 40e4: 8400 ld.b r0, (r4, 0x0) + 40e6: 2800 subi r0, 1 + 40e8: 7400 zextb r0, r0 + 40ea: 6c57 mov r1, r5 + 40ec: e00002da bsr 0x46a0 // 46a0 + reply_buff[reply_len++] = para[0]; + 40f0: 8460 ld.b r3, (r4, 0x0) + 40f2: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 40fa: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 40fc: 8902 ld.h r0, (r1, 0x4) + 40fe: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 4102: 4808 lsri r0, r0, 8 + 4104: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 410e: 4808 lsri r0, r0, 8 + 4110: a30f st.b r0, (r3, 0xf) + 4112: 2101 addi r1, 2 + 4114: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4118: 8560 ld.b r3, (r5, 0x0) + 411a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 411e: 8561 ld.b r3, (r5, 0x1) + 4120: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4124: 8562 ld.b r3, (r5, 0x2) + 4126: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 412a: 8563 ld.b r3, (r5, 0x3) + 412c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 4130: 8578 ld.b r3, (r5, 0x18) + 4132: 07c6 br 0x40be // 40be + reply_buff[reply_len++] = 0x00; + 4134: 3102 movi r1, 2 + 4136: 07c7 br 0x40c4 // 40c4 + 4138: 20000350 .long 0x20000350 + 413c: 200002f0 .long 0x200002f0 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00004140 : +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 4140: 14d0 push r15 + 4142: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4144: 8060 ld.b r3, (r0, 0x0) + 4146: 3b41 cmpnei r3, 1 + 4148: 0810 bt 0x4168 // 4168 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 414a: 106b lrw r3, 0x20000320 // 4174 + 414c: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 414e: a359 st.b r2, (r3, 0x19) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 4150: 3303 movi r3, 3 + 4152: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4156: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4158: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 415a: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 415c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4160: e3fffee0 bsr 0x3f20 // 3f20 +} + 4164: 1401 addi r14, r14, 4 + 4166: 1490 pop r15 + }else if(para[0] == 0x02){ + 4168: 3b42 cmpnei r3, 2 + 416a: 0bf3 bt 0x4150 // 4150 + g_key.key_dug_printf = 0x00; + 416c: 1062 lrw r3, 0x20000320 // 4174 + 416e: 3200 movi r2, 0 + 4170: 07ef br 0x414e // 414e + 4172: 0000 bkpt + 4174: 20000320 .long 0x20000320 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004178 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4178: 14d0 push r15 + 417a: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=0; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 417c: 1150 lrw r2, 0x200008d2 // 423c + reply_buff[reply_len++] = 0x04; //CMD + 417e: 3304 movi r3, 4 + 4180: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4184: 8a60 ld.h r3, (r2, 0x0) + 4186: 4b68 lsri r3, r3, 8 + 4188: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 418c: 8a60 ld.h r3, (r2, 0x0) + 418e: dc6e0002 st.b r3, (r14, 0x2) + reply_buff[reply_len++] = sampling_data0[i]>>8; + reply_buff[reply_len++] = sampling_data0[i]&0xff; + reply_buff[reply_len++] = baseline_data0[i]>>8; + reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4192: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4194: 116b lrw r3, 0x2000062c // 4240 + 4196: 8b20 ld.h r1, (r3, 0x0) + 4198: 4928 lsri r1, r1, 8 + 419a: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 419e: 8b20 ld.h r1, (r3, 0x0) + 41a0: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41a4: 8a28 ld.h r1, (r2, 0x10) + 41a6: 4928 lsri r1, r1, 8 + 41a8: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41ac: 8a28 ld.h r1, (r2, 0x10) + 41ae: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41b2: 8b28 ld.h r1, (r3, 0x10) + 41b4: 4928 lsri r1, r1, 8 + 41b6: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41ba: 8b28 ld.h r1, (r3, 0x10) + 41bc: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41c0: 8a29 ld.h r1, (r2, 0x12) + 41c2: 4928 lsri r1, r1, 8 + 41c4: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41c8: 8a29 ld.h r1, (r2, 0x12) + 41ca: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ce: 8b29 ld.h r1, (r3, 0x12) + 41d0: 4928 lsri r1, r1, 8 + 41d2: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41d6: 8b29 ld.h r1, (r3, 0x12) + 41d8: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41dc: 8a2e ld.h r1, (r2, 0x1c) + 41de: 4928 lsri r1, r1, 8 + 41e0: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41e4: 8a2e ld.h r1, (r2, 0x1c) + 41e6: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41ea: 8b2e ld.h r1, (r3, 0x1c) + 41ec: 4928 lsri r1, r1, 8 + 41ee: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41f2: 8b2e ld.h r1, (r3, 0x1c) + 41f4: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41f8: 8a2d ld.h r1, (r2, 0x1a) + 41fa: 4928 lsri r1, r1, 8 + 41fc: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4200: 8a2d ld.h r1, (r2, 0x1a) + 4202: dc2e0012 st.b r1, (r14, 0x12) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4206: 8b2d ld.h r1, (r3, 0x1a) + 4208: 4928 lsri r1, r1, 8 + 420a: dc2e0013 st.b r1, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 420e: 8b2d ld.h r1, (r3, 0x1a) + 4210: dc2e0014 st.b r1, (r14, 0x14) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4214: 8a2c ld.h r1, (r2, 0x18) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4216: 8a4c ld.h r2, (r2, 0x18) + 4218: dc4e0016 st.b r2, (r14, 0x16) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 421c: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 421e: 8b4c ld.h r2, (r3, 0x18) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4220: dc2e0015 st.b r1, (r14, 0x15) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4224: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4226: 8b6c ld.h r3, (r3, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4228: 3119 movi r1, 25 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 422a: dc4e0017 st.b r2, (r14, 0x17) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 422e: dc6e0018 st.b r3, (r14, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4232: e3fffe77 bsr 0x3f20 // 3f20 +} + 4236: 140d addi r14, r14, 52 + 4238: 1490 pop r15 + 423a: 0000 bkpt + 423c: 200008d2 .long 0x200008d2 + 4240: 2000062c .long 0x2000062c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004244 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4244: 14d0 push r15 + 4246: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4248: 3305 movi r3, 5 + 424a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 424e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4250: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4252: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4254: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4258: e3fffe64 bsr 0x3f20 // 3f20 + 425c: 0400 br 0x425c // 425c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004260 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4260: 14d2 push r4-r5, r15 + 4262: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4264: 8060 ld.b r3, (r0, 0x0) + 4266: 32af movi r2, 175 + 4268: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 426a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 426c: 0c09 bf 0x427e // 427e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 426e: 3000 movi r0, 0 + 4270: 114b lrw r2, 0x77a4 // 431c + 4272: 112c lrw r1, 0x7c8b // 4320 + 4274: e3fffc6c bsr 0x3b4c // 3b4c + return 0x01; + 4278: 3001 movi r0, 1 + break; + } + + + return 0; +} + 427a: 1401 addi r14, r14, 4 + 427c: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 427e: 114a lrw r2, 0x20000350 // 4324 + 4280: 8061 ld.b r3, (r0, 0x1) + 4282: 8240 ld.b r2, (r2, 0x0) + 4284: 64ca cmpne r2, r3 + 4286: 0c08 bf 0x4296 // 4296 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4288: 3000 movi r0, 0 + 428a: 1145 lrw r2, 0x77a4 // 431c + 428c: 1127 lrw r1, 0x7c9d // 4328 + 428e: e3fffc5f bsr 0x3b4c // 3b4c + return 0x02; + 4292: 3002 movi r0, 2 + 4294: 07f3 br 0x427a // 427a + if(data[2] != len){ + 4296: 8062 ld.b r3, (r0, 0x2) + 4298: 750d zexth r4, r3 + 429a: 6452 cmpne r4, r1 + 429c: 0c09 bf 0x42ae // 42ae + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 429e: b820 st.w r1, (r14, 0x0) + 42a0: 105f lrw r2, 0x77a4 // 431c + 42a2: 1123 lrw r1, 0x7cae // 432c + 42a4: 3000 movi r0, 0 + 42a6: e3fffc53 bsr 0x3b4c // 3b4c + return 0x03; + 42aa: 3003 movi r0, 3 + 42ac: 07e7 br 0x427a // 427a + if(data[len-1] != 0xFA){ + 42ae: 60c0 addu r3, r0 + 42b0: 2b00 subi r3, 1 + 42b2: 8360 ld.b r3, (r3, 0x0) + 42b4: 32fa movi r2, 250 + 42b6: 648e cmpne r3, r2 + 42b8: 0c07 bf 0x42c6 // 42c6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 42ba: 1059 lrw r2, 0x77a4 // 431c + 42bc: 103d lrw r1, 0x7cc1 // 4330 + 42be: 3000 movi r0, 0 + 42c0: e3fffc46 bsr 0x3b4c // 3b4c + 42c4: 07f3 br 0x42aa // 42aa + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 42c6: 5c23 subi r1, r4, 1 + 42c8: 7445 zexth r1, r1 + 42ca: e3fffe1f bsr 0x3f08 // 3f08 + 42ce: 3840 cmpnei r0, 0 + 42d0: 0806 bt 0x42dc // 42dc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 42d2: 1053 lrw r2, 0x77a4 // 431c + 42d4: 1038 lrw r1, 0x7cd1 // 4334 + 42d6: e3fffc3b bsr 0x3b4c // 3b4c + 42da: 07e8 br 0x42aa // 42aa + switch(data[4]){ + 42dc: 8504 ld.b r0, (r5, 0x4) + 42de: 2800 subi r0, 1 + 42e0: 3804 cmphsi r0, 5 + 42e2: 080c bt 0x42fa // 42fa + 42e4: 5c37 subi r1, r4, 6 + 42e6: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42e8: 7445 zexth r1, r1 + switch(data[4]){ + 42ea: e3ffe509 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42ee: 0803 .short 0x0803 + 42f0: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 42f4: 6c17 mov r0, r5 + 42f6: e3fffe57 bsr 0x3fa4 // 3fa4 + return 0; + 42fa: 3000 movi r0, 0 + 42fc: 07bf br 0x427a // 427a + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 42fe: 6c17 mov r0, r5 + 4300: e3fffeae bsr 0x405c // 405c + 4304: 07fb br 0x42fa // 42fa + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4306: 6c17 mov r0, r5 + 4308: e3ffff1c bsr 0x4140 // 4140 + 430c: 07f7 br 0x42fa // 42fa + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 430e: 6c17 mov r0, r5 + 4310: e3ffff34 bsr 0x4178 // 4178 + 4314: 07f3 br 0x42fa // 42fa + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4316: 6c17 mov r0, r5 + 4318: e3ffff96 bsr 0x4244 // 4244 + 431c: 000077a4 .long 0x000077a4 + 4320: 00007c8b .long 0x00007c8b + 4324: 20000350 .long 0x20000350 + 4328: 00007c9d .long 0x00007c9d + 432c: 00007cae .long 0x00007cae + 4330: 00007cc1 .long 0x00007cc1 + 4334: 00007cd1 .long 0x00007cd1 + +Disassembly of section .text.EEPROM_CheckSum: + +00004338 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4338: 6cc3 mov r3, r0 + 433a: 6040 addu r1, r0 + U8_T data_sum = 0; + 433c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4342: 783c jmp r15 + data_sum += data[i]; + 4344: 8340 ld.b r2, (r3, 0x0) + 4346: 6008 addu r0, r2 + 4348: 7400 zextb r0, r0 + 434a: 2300 addi r3, 1 + 434c: 07f9 br 0x433e // 433e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004350 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4350: 14d1 push r4, r15 + 4352: 143b subi r14, r14, 108 + 4354: 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)); + 4356: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4358: 3264 movi r2, 100 + 435a: 3100 movi r1, 0 + 435c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 435e: b860 st.w r3, (r14, 0x0) + 4360: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4364: e3ffeb00 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4368: 6cbb mov r2, r14 + 436a: 3104 movi r1, 4 + 436c: 1014 lrw r0, 0x10000020 // 43bc + 436e: e3fff385 bsr 0x2a78 // 2a78 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4372: d84e0000 ld.b r2, (r14, 0x0) + 4376: 33a6 movi r3, 166 + 4378: 64ca cmpne r2, r3 + 437a: 0c04 bf 0x4382 // 4382 + return 0x00; + } + } + } + + return 0x01; + 437c: 3001 movi r0, 1 +} + 437e: 141b addi r14, r14, 108 + 4380: 1491 pop r4, r15 + read_len |= read_info[1]; + 4382: d82e0002 ld.b r1, (r14, 0x2) + 4386: d86e0001 ld.b r3, (r14, 0x1) + 438a: 4128 lsli r1, r1, 8 + 438c: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 438e: 3364 movi r3, 100 + 4390: 644c cmphs r3, r1 + 4392: 0ff5 bf 0x437c // 437c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4394: 1a02 addi r2, r14, 8 + 4396: 100b lrw r0, 0x10000024 // 43c0 + 4398: e3fff370 bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 439c: 3106 movi r1, 6 + 439e: 1802 addi r0, r14, 8 + 43a0: e3ffffcc bsr 0x4338 // 4338 + 43a4: d86e0003 ld.b r3, (r14, 0x3) + 43a8: 640e cmpne r3, r0 + 43aa: 0be9 bt 0x437c // 437c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 43ac: 3206 movi r2, 6 + 43ae: 1902 addi r1, r14, 8 + 43b0: 6c13 mov r0, r4 + 43b2: e3ffeb1d bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 43b6: 3000 movi r0, 0 + 43b8: 07e3 br 0x437e // 437e + 43ba: 0000 bkpt + 43bc: 10000020 .long 0x10000020 + 43c0: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000043c4 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43c4: 14d0 push r15 + 43c6: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 43c8: 3300 movi r3, 0 + 43ca: 2b59 subi r3, 90 + 43cc: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 43d0: 3306 movi r3, 6 + 43d2: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 43d6: 3300 movi r3, 0 + 43d8: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43dc: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43de: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43e0: 3206 movi r2, 6 + 43e2: 6c0f mov r0, r3 + 43e4: e3ffeb04 bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 43e8: 3106 movi r1, 6 + 43ea: e3ffffa7 bsr 0x4338 // 4338 + 43ee: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 43f2: 6cbb mov r2, r14 + 43f4: 310a movi r1, 10 + 43f6: 1004 lrw r0, 0x10000020 // 4404 + 43f8: e3fff2f0 bsr 0x29d8 // 29d8 + + return 0; +} + 43fc: 3000 movi r0, 0 + 43fe: 141b addi r14, r14, 108 + 4400: 1490 pop r15 + 4402: 0000 bkpt + 4404: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004408 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4408: 14d1 push r4, r15 + 440a: 1421 subi r14, r14, 4 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 440c: 8062 ld.b r3, (r0, 0x2) + 440e: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4410: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4412: 0c03 bf 0x4418 // 4418 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4414: 3309 movi r3, 9 + 4416: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4418: 8442 ld.b r2, (r4, 0x2) + 441a: 1036 lrw r1, 0x7ce0 // 4470 + 441c: 3000 movi r0, 0 + 441e: e3fffb97 bsr 0x3b4c // 3b4c + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4422: 8463 ld.b r3, (r4, 0x3) + 4424: 3b02 cmphsi r3, 3 + 4426: 0c03 bf 0x442c // 442c + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4428: 3300 movi r3, 0 + 442a: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 442c: 8464 ld.b r3, (r4, 0x4) + 442e: 3b01 cmphsi r3, 2 + 4430: 0c03 bf 0x4436 // 4436 + { + info->backlight_en = 0x01; + 4432: 3301 movi r3, 1 + 4434: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 4436: 8461 ld.b r3, (r4, 0x1) + 4438: 3b02 cmphsi r3, 3 + 443a: 0c03 bf 0x4440 // 4440 + { + info->pipe_flag = 0x00; + 443c: 3300 movi r3, 0 + 443e: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4440: 8460 ld.b r3, (r4, 0x0) + 4442: 2b00 subi r3, 1 + 4444: 74cc zextb r3, r3 + 4446: 32fd movi r2, 253 + 4448: 64c8 cmphs r2, r3 + 444a: 0803 bt 0x4450 // 4450 + { + info->pipe_flag = 0x01; + 444c: 3301 movi r3, 1 + 444e: a461 st.b r3, (r4, 0x1) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4450: 8465 ld.b r3, (r4, 0x5) + 4452: 3b02 cmphsi r3, 3 + 4454: 0c03 bf 0x445a // 445a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4456: 3301 movi r3, 1 + 4458: a465 st.b r3, (r4, 0x5) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info save_curr %d backlight_en:%d key_sens_level:%d",info->temp_select,info->backlight_en,info->key_sens_level); + 445a: 8425 ld.b r1, (r4, 0x5) + 445c: b820 st.w r1, (r14, 0x0) + 445e: 8464 ld.b r3, (r4, 0x4) + 4460: 8443 ld.b r2, (r4, 0x3) + 4462: 1025 lrw r1, 0x7cf7 // 4474 + 4464: 3000 movi r0, 0 + 4466: e3fffb73 bsr 0x3b4c // 3b4c + + return 0; +} + 446a: 3000 movi r0, 0 + 446c: 1401 addi r14, r14, 4 + 446e: 1491 pop r4, r15 + 4470: 00007ce0 .long 0x00007ce0 + 4474: 00007cf7 .long 0x00007cf7 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004478 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4478: 3301 movi r3, 1 + 447a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 447c: 3300 movi r3, 0 + 447e: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4480: 3309 movi r3, 9 + 4482: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4484: 3300 movi r3, 0 + 4486: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x01; + 4488: 3301 movi r3, 1 + 448a: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 448c: a065 st.b r3, (r0, 0x5) +} + 448e: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +00004490 : +void EEPROM_Init(void){ + 4490: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 4492: 1071 lrw r3, 0x20000060 // 44d4 + 4494: 3201 movi r2, 1 + 4496: 9360 ld.w r3, (r3, 0x0) + 4498: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 449a: 9345 ld.w r2, (r3, 0x14) + 449c: 3aa1 bseti r2, 1 + 449e: 3ab0 bseti r2, 16 + 44a0: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 44a2: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44a4: 108d lrw r4, 0x20000350 // 44d8 + delay_nms(10); + 44a6: e3fff40d bsr 0x2cc0 // 2cc0 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44aa: 6c13 mov r0, r4 + 44ac: e3ffff52 bsr 0x4350 // 4350 + if(rev == 0x00){ + 44b0: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b2: 6c13 mov r0, r4 + if(rev == 0x00){ + 44b4: 0804 bt 0x44bc // 44bc + EEPROM_Validate_ParaInfo(&g_eeprom); + 44b6: e3ffffa9 bsr 0x4408 // 4408 +} + 44ba: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 44bc: e3ffffde bsr 0x4478 // 4478 + EEPROM_WriteParaInfo(&g_eeprom); + 44c0: 6c13 mov r0, r4 + 44c2: e3ffff81 bsr 0x43c4 // 43c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 44c6: 8441 ld.b r2, (r4, 0x1) + 44c8: 1025 lrw r1, 0x7d32 // 44dc + 44ca: 3000 movi r0, 0 + 44cc: e3fffb40 bsr 0x3b4c // 3b4c +} + 44d0: 07f5 br 0x44ba // 44ba + 44d2: 0000 bkpt + 44d4: 20000060 .long 0x20000060 + 44d8: 20000350 .long 0x20000350 + 44dc: 00007d32 .long 0x00007d32 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000044e0 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e0: 14d2 push r4-r5, r15 + 44e2: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 44e4: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e6: 6d47 mov r5, r1 + switch(level){ + 44e8: 0c07 bf 0x44f6 // 44f6 + 44ea: 3840 cmpnei r0, 0 + 44ec: 0c27 bf 0x453a // 453a + 44ee: 3842 cmpnei r0, 2 + 44f0: 0c23 bf 0x4536 // 4536 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 44f2: 3001 movi r0, 1 + 44f4: 041f br 0x4532 // 4532 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 44f6: 1093 lrw r4, 0x10000180 // 4540 + break; + } + + memset(save_para,0,sizeof(save_para)); + 44f8: 323c movi r2, 60 + 44fa: 3100 movi r1, 0 + 44fc: 6c3b mov r0, r14 + 44fe: e3ffea33 bsr 0x1964 // 1964 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4502: 3300 movi r3, 0 + 4504: 2b59 subi r3, 90 + 4506: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 450a: 331c movi r3, 28 + 450c: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4510: 1b01 addi r3, r14, 4 + 4512: 321c movi r2, 28 + 4514: 6c0f mov r0, r3 + 4516: 6c57 mov r1, r5 + 4518: e3ffea6a bsr 0x19ec // 19ec <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 451c: 311c movi r1, 28 + 451e: e3ffff0d bsr 0x4338 // 4338 + 4522: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4526: 6cbb mov r2, r14 + 4528: 6c13 mov r0, r4 + 452a: 3120 movi r1, 32 + 452c: e3fff256 bsr 0x29d8 // 29d8 + + return 0; + 4530: 3000 movi r0, 0 +} + 4532: 140f addi r14, r14, 60 + 4534: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4536: 1084 lrw r4, 0x10000200 // 4544 + break; + 4538: 07e0 br 0x44f8 // 44f8 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 453a: 1084 lrw r4, 0x10000100 // 4548 + 453c: 07de br 0x44f8 // 44f8 + 453e: 0000 bkpt + 4540: 10000180 .long 0x10000180 + 4544: 10000200 .long 0x10000200 + 4548: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +0000454c : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 454c: 14d2 push r4-r5, r15 + 454e: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4550: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4552: 6d07 mov r4, r1 + switch(level){ + 4554: 0c3a bf 0x45c8 // 45c8 + 4556: 3840 cmpnei r0, 0 + 4558: 0c05 bf 0x4562 // 4562 + 455a: 3842 cmpnei r0, 2 + 455c: 0c34 bf 0x45c4 // 45c4 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 455e: 3001 movi r0, 1 + 4560: 0430 br 0x45c0 // 45c0 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4562: 11a1 lrw r5, 0x10000100 // 45e4 + memset(read_info,0,sizeof(read_info)); + 4564: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4566: 3234 movi r2, 52 + 4568: 3100 movi r1, 0 + 456a: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 456c: b860 st.w r3, (r14, 0x0) + 456e: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4572: e3ffe9f9 bsr 0x1964 // 1964 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4576: 6cbb mov r2, r14 + 4578: 3104 movi r1, 4 + 457a: 6c17 mov r0, r5 + 457c: e3fff27e bsr 0x2a78 // 2a78 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4580: d84e0000 ld.b r2, (r14, 0x0) + 4584: 33a6 movi r3, 166 + 4586: 64ca cmpne r2, r3 + 4588: 0827 bt 0x45d6 // 45d6 + read_len |= read_info[1]; + 458a: d84e0002 ld.b r2, (r14, 0x2) + 458e: d86e0001 ld.b r3, (r14, 0x1) + 4592: 4248 lsli r2, r2, 8 + 4594: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4596: 3a5c cmpnei r2, 28 + 4598: 081a bt 0x45cc // 45cc + temp_addr += EEPROM_Offset_Data; + 459a: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 459c: 1a02 addi r2, r14, 8 + 459e: 311c movi r1, 28 + 45a0: e3fff26c bsr 0x2a78 // 2a78 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 45a4: 311c movi r1, 28 + 45a6: 1802 addi r0, r14, 8 + 45a8: e3fffec8 bsr 0x4338 // 4338 + 45ac: d86e0003 ld.b r3, (r14, 0x3) + 45b0: 640e cmpne r3, r0 + 45b2: 0bd6 bt 0x455e // 455e + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 45b4: 321c movi r2, 28 + 45b6: 1902 addi r1, r14, 8 + 45b8: 6c13 mov r0, r4 + 45ba: e3ffea19 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 45be: 3000 movi r0, 0 +} + 45c0: 140f addi r14, r14, 60 + 45c2: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 45c4: 10a9 lrw r5, 0x10000200 // 45e8 + break; + 45c6: 07cf br 0x4564 // 4564 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 45c8: 10a9 lrw r5, 0x10000180 // 45ec + 45ca: 07cd br 0x4564 // 4564 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 45cc: 1029 lrw r1, 0x7d4b // 45f0 + 45ce: 3000 movi r0, 0 + 45d0: e3fffabe bsr 0x3b4c // 3b4c + 45d4: 07c5 br 0x455e // 455e + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 45d6: 3304 movi r3, 4 + 45d8: 6cbb mov r2, r14 + 45da: 1027 lrw r1, 0x7d6d // 45f4 + 45dc: 3000 movi r0, 0 + 45de: e3fffabd bsr 0x3b58 // 3b58 + 45e2: 07be br 0x455e // 455e + 45e4: 10000100 .long 0x10000100 + 45e8: 10000200 .long 0x10000200 + 45ec: 10000180 .long 0x10000180 + 45f0: 00007d4b .long 0x00007d4b + 45f4: 00007d6d .long 0x00007d6d + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +000045f8 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 45f8: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 45fa: 8163 ld.b r3, (r1, 0x3) + 45fc: 2b00 subi r3, 1 + 45fe: 74cc zextb r3, r3 + 4600: 3263 movi r2, 99 + 4602: 64c8 cmphs r2, r3 + 4604: 0845 bt 0x468e // 468e + para->base_speed = 20; //默认参数 - 20 + 4606: 3314 movi r3, 20 + 4608: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 460a: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 460c: 8140 ld.b r2, (r1, 0x0) + 460e: 2a00 subi r2, 1 + 4610: 7488 zextb r2, r2 + 4612: 3a09 cmphsi r2, 10 + 4614: 0c04 bf 0x461c // 461c + para->press_debounce = 6; //默认参数 - 6 + 4616: 3306 movi r3, 6 + 4618: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 461a: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 461c: 8141 ld.b r2, (r1, 0x1) + 461e: 2a00 subi r2, 1 + 4620: 7488 zextb r2, r2 + 4622: 3a09 cmphsi r2, 10 + 4624: 0c04 bf 0x462c // 462c + para->release_debounce = 5; //默认参数 - 5 + 4626: 3305 movi r3, 5 + 4628: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 462a: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 462c: 8142 ld.b r2, (r1, 0x2) + 462e: 2a00 subi r2, 1 + 4630: 7488 zextb r2, r2 + 4632: 3463 movi r4, 99 + 4634: 6490 cmphs r4, r2 + 4636: 0804 bt 0x463e // 463e + para->multiTimes_filt = 40; //默认参数 - 40 + 4638: 3328 movi r3, 40 + 463a: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 463c: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 463e: 9146 ld.w r2, (r1, 0x18) + 4640: 2a00 subi r2, 1 + 4642: 3a1f cmphsi r2, 32 + 4644: 0c04 bf 0x464c // 464c + para->longpress_time = 8; //默认参数 - 8 + 4646: 3308 movi r3, 8 + 4648: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 464a: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 464c: 34a0 movi r4, 160 + rev = 0x01; + } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 464e: 36f5 movi r6, 245 + 4650: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4652: 10f3 lrw r7, 0x3de // 469c + 4654: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 4656: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4658: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 465a: 8aa0 ld.h r5, (r2, 0x0) + 465c: 2d09 subi r5, 10 + 465e: 7555 zexth r5, r5 + 4660: 655c cmphs r7, r5 + 4662: 0803 bt 0x4668 // 4668 + para->senprd[i] = 320; //默认参数 - 320 + 4664: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 4666: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4668: 8aa5 ld.h r5, (r2, 0xa) + 466a: 2d13 subi r5, 20 + 466c: 7555 zexth r5, r5 + 466e: 6558 cmphs r6, r5 + 4670: 080a bt 0x4684 // 4684 + + switch(level){ + 4672: 3841 cmpnei r0, 1 + 4674: 0c11 bf 0x4696 // 4696 + 4676: 3840 cmpnei r0, 0 + 4678: 0c0d bf 0x4692 // 4692 + 467a: 3842 cmpnei r0, 2 + 467c: 080d bt 0x4696 // 4696 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 467e: 333c movi r3, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 4680: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 4682: 3301 movi r3, 1 + 4684: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 468a: 6c0f mov r0, r3 + 468c: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 468e: 3300 movi r3, 0 + 4690: 07be br 0x460c // 460c + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 4692: 3364 movi r3, 100 + 4694: 07f6 br 0x4680 // 4680 + para->triggerlevel[i] = 80; + 4696: 3350 movi r3, 80 + 4698: 07f4 br 0x4680 // 4680 + 469a: 0000 bkpt + 469c: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000046a0 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 46a0: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 46a2: 3314 movi r3, 20 + 46a4: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 46a6: 3306 movi r3, 6 + 46a8: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 46aa: 3305 movi r3, 5 + 46ac: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 46ae: 3328 movi r3, 40 + 46b0: a162 st.b r3, (r1, 0x2) + para->longpress_time = 8; //默认参数 - 8 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 46b2: 32a0 movi r2, 160 + para->longpress_time = 8; //默认参数 - 8 + 46b4: 3308 movi r3, 8 + 46b6: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 46b8: 4241 lsli r2, r2, 1 + 46ba: 596e addi r3, r1, 4 + 46bc: 210d addi r1, 14 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 46be: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 46c0: ab40 st.h r2, (r3, 0x0) + switch(level){ + 46c2: 0c0d bf 0x46dc // 46dc + 46c4: 3840 cmpnei r0, 0 + 46c6: 0c09 bf 0x46d8 // 46d8 + 46c8: 3842 cmpnei r0, 2 + 46ca: 0809 bt 0x46dc // 46dc + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 46cc: 343c movi r4, 60 + break; + case 0x00: + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 80; + 46ce: ab85 st.h r4, (r3, 0xa) + 46d0: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 46d6: 1481 pop r4 + para->triggerlevel[i] = 100; //低灵敏度 默认参数 - 140 + 46d8: 3464 movi r4, 100 + 46da: 07fa br 0x46ce // 46ce + para->triggerlevel[i] = 80; + 46dc: 3450 movi r4, 80 + 46de: 07f8 br 0x46ce // 46ce + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +000046e0 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 46e0: 14d4 push r4-r7, r15 + 46e2: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 46e4: 8043 ld.b r2, (r0, 0x3) + 46e6: 1038 lrw r1, 0x7d8b // 4744 + 46e8: 3000 movi r0, 0 + 46ea: e3fffa31 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 46ee: 8440 ld.b r2, (r4, 0x0) + 46f0: 1036 lrw r1, 0x7da3 // 4748 + 46f2: 3000 movi r0, 0 + 46f4: e3fffa2c bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 46f8: 8441 ld.b r2, (r4, 0x1) + 46fa: 1035 lrw r1, 0x7dbf // 474c + 46fc: 3000 movi r0, 0 + 46fe: e3fffa27 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4702: 8442 ld.b r2, (r4, 0x2) + 4704: 1033 lrw r1, 0x7ddd // 4750 + 4706: 3000 movi r0, 0 + 4708: e3fffa22 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 470c: 9446 ld.w r2, (r4, 0x18) + 470e: 3000 movi r0, 0 + 4710: 1031 lrw r1, 0x7dfa // 4754 + 4712: e3fffa1d bsr 0x3b4c // 3b4c + 4716: 2403 addi r4, 4 + 4718: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 471a: 10f0 lrw r7, 0x7e16 // 4758 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 471c: 10d0 lrw r6, 0x7e2f // 475c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 471e: e3ffeaa3 bsr 0x1c64 // 1c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4722: 8c60 ld.h r3, (r4, 0x0) + 4724: 6c97 mov r2, r5 + 4726: 6c5f mov r1, r7 + 4728: 3000 movi r0, 0 + 472a: e3fffa11 bsr 0x3b4c // 3b4c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 472e: 8c65 ld.h r3, (r4, 0xa) + 4730: 6c97 mov r2, r5 + 4732: 6c5b mov r1, r6 + 4734: 3000 movi r0, 0 + 4736: 2500 addi r5, 1 + 4738: e3fffa0a bsr 0x3b4c // 3b4c + for(i=0;i + } + +} + 4742: 1494 pop r4-r7, r15 + 4744: 00007d8b .long 0x00007d8b + 4748: 00007da3 .long 0x00007da3 + 474c: 00007dbf .long 0x00007dbf + 4750: 00007ddd .long 0x00007ddd + 4754: 00007dfa .long 0x00007dfa + 4758: 00007e16 .long 0x00007e16 + 475c: 00007e2f .long 0x00007e2f + +Disassembly of section .text.ADC_Init: + +00004760 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4760: 14d0 push r15 + 4762: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4764: e3ffeed6 bsr 0x2510 // 2510 + ADC12_Software_Reset(); //ADC软件复位 + 4768: e3ffef34 bsr 0x25d0 // 25d0 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 476c: 3101 movi r1, 1 + 476e: 3002 movi r0, 2 + 4770: e3ffef1a bsr 0x25a4 // 25a4 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4774: 3301 movi r3, 1 + 4776: b861 st.w r3, (r14, 0x4) + 4778: 3302 movi r3, 2 + 477a: b860 st.w r3, (r14, 0x0) + 477c: 3200 movi r2, 0 + 477e: 3306 movi r3, 6 + 4780: 3101 movi r1, 1 + 4782: 3001 movi r0, 1 + 4784: e3ffef60 bsr 0x2644 // 2644 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 4788: 3003 movi r0, 3 + 478a: e3ffef9b bsr 0x26c0 // 26c0 + + ADC12_ConversionChannel_Config(ADC12_ADCIN9,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 478e: 3300 movi r3, 0 + 4790: 3200 movi r2, 0 + 4792: 3100 movi r1, 0 + 4794: 3009 movi r0, 9 + 4796: e3fff061 bsr 0x2858 // 2858 + + ADC12_CMD(ENABLE); + 479a: 3001 movi r0, 1 + 479c: e3ffef20 bsr 0x25dc // 25dc + + ADC12_ready_wait(); + 47a0: e3ffef32 bsr 0x2604 // 2604 + + ADC12_Control(ADC12_START); + 47a4: 3008 movi r0, 8 + 47a6: e3ffeee7 bsr 0x2574 // 2574 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 47aa: 3237 movi r2, 55 + 47ac: 3100 movi r1, 0 + 47ae: 1003 lrw r0, 0x20000356 // 47b8 + 47b0: e3ffe8da bsr 0x1964 // 1964 <__memset_fast> +} + 47b4: 1402 addi r14, r14, 8 + 47b6: 1490 pop r15 + 47b8: 20000356 .long 0x20000356 + +Disassembly of section .text.Thermistor_Array_Transform: + +000047bc : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 47bc: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 47be: 1070 lrw r3, 0x79bd // 47fc + 47c0: 640c cmphs r3, r0 +{ + 47c2: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 47c4: 0c16 bf 0x47f0 // 47f0 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47c6: 33a1 movi r3, 161 + 47c8: 4365 lsli r3, r3, 5 + 47ca: 640c cmphs r3, r0 + 47cc: 0814 bt 0x47f4 // 47f4 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47d2: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 47d6: 8a60 ld.h r3, (r2, 0x0) + 47d8: 644c cmphs r3, r1 + 47da: 0c04 bf 0x47e2 // 47e2 + 47dc: 8a61 ld.h r3, (r2, 0x2) + 47de: 644c cmphs r3, r1 + 47e0: 0c07 bf 0x47ee // 47ee + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 47ec: 30fa movi r0, 250 +} + 47ee: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 47f0: 3000 movi r0, 0 + 47f2: 07fe br 0x47ee // 47ee + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47f4: 30c8 movi r0, 200 + 47f6: 4001 lsli r0, r0, 1 + 47f8: 07fb br 0x47ee // 47ee + 47fa: 0000 bkpt + 47fc: 000079bd .long 0x000079bd + 4800: 000077be .long 0x000077be + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004804 : + +void Calculate_ADC_Sample_Average(void) +{ + 4804: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4808: 3200 movi r2, 0 + uint32_t temp_val = 0; + 480a: 3000 movi r0, 0 + 480c: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 480e: 5a66 addi r3, r2, 2 + 4810: 4361 lsli r3, r3, 1 + 4812: 60dc addu r3, r7 + 4814: 8323 ld.b r1, (r3, 0x3) + 4816: 8364 ld.b r3, (r3, 0x4) + 4818: 4368 lsli r3, r3, 8 + 481a: 2200 addi r2, 1 + 481c: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4824: 310a movi r1, 10 + 4826: e3fff81f bsr 0x3864 // 3864 <__udivsi3> + 482a: 74c1 zexth r3, r0 + 482c: 748c zextb r2, r3 + 482e: 11c2 lrw r6, 0x20000359 // 48b4 + 4830: 4b68 lsri r3, r3, 8 + 4832: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4834: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4836: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4838: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 483a: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 483c: 4368 lsli r3, r3, 8 + 483e: 875b ld.b r2, (r7, 0x1b) + 4840: 6cc8 or r3, r2 + 4842: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4844: 6d03 mov r4, r0 + 4846: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4848: 0c1a bf 0x487c // 487c + g_adc.temp_index = 0; + 484a: 3300 movi r3, 0 + 484c: a660 st.b r3, (r6, 0x0) + 484e: a661 st.b r3, (r6, 0x1) + 4850: 3200 movi r2, 0 + temp_val = 0; + 4852: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 486c: 310a movi r1, 10 + 486e: e3fff7fb bsr 0x3864 // 3864 <__udivsi3> + 4872: 7401 zexth r0, r0 + 4874: 1071 lrw r3, 0x20000373 // 48b8 + 4876: a300 st.b r0, (r3, 0x0) + 4878: 4808 lsri r0, r0, 8 + 487a: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 487c: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 487e: 859c ld.b r4, (r5, 0x1c) + 4880: 857b ld.b r3, (r5, 0x1b) + 4882: 4488 lsli r4, r4, 8 + 4884: 6d0c or r4, r3 + 4886: 5c62 addi r3, r4, 1 + 4888: 74cd zexth r3, r3 + 488a: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 488c: 100c lrw r0, 0x2710 // 48bc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 488e: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4890: 102c lrw r1, 0xce4 // 48c0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4892: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4894: 7c08 mult r0, r2 + 4896: 604a subu r1, r2 + 4898: e3fff7d4 bsr 0x3840 // 3840 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 489c: 240d addi r4, 14 + 489e: 7401 zexth r0, r0 + 48a0: 4481 lsli r4, r4, 1 + 48a2: e3ffff8d bsr 0x47bc // 47bc + 48a6: 6114 addu r4, r5 + 48a8: a403 st.b r0, (r4, 0x3) + 48aa: 4808 lsri r0, r0, 8 + 48ac: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 48ae: 1494 pop r4-r7, r15 + 48b0: 20000356 .long 0x20000356 + 48b4: 20000359 .long 0x20000359 + 48b8: 20000373 .long 0x20000373 + 48bc: 00002710 .long 0x00002710 + 48c0: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000048c4 : + +void ADC_Sample_Task(void){ + 48c4: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 48c6: 1188 lrw r4, 0x20000356 // 4964 + 48c8: 3020 movi r0, 32 + 48ca: 6010 addu r0, r4 + 48cc: 8054 ld.b r2, (r0, 0x14) + 48ce: 8073 ld.b r3, (r0, 0x13) + 48d0: 4248 lsli r2, r2, 8 + 48d2: 6c8c or r2, r3 + 48d4: 8075 ld.b r3, (r0, 0x15) + 48d6: 4370 lsli r3, r3, 16 + 48d8: 6c8c or r2, r3 + 48da: 8076 ld.b r3, (r0, 0x16) + 48dc: 11a3 lrw r5, 0x200000b8 // 4968 + 48de: 4378 lsli r3, r3, 24 + 48e0: 9520 ld.w r1, (r5, 0x0) + 48e2: 6cc8 or r3, r2 + 48e4: 604e subu r1, r3 + 48e6: 390a cmphsi r1, 11 + 48e8: 0c28 bf 0x4938 // 4938 + g_adc.sample_tick = SysTick_100us; + 48ea: 1161 lrw r3, 0x200000b4 // 496c + 48ec: 3233 movi r2, 51 + 48ee: 9360 ld.w r3, (r3, 0x0) + 48f0: 6090 addu r2, r4 + 48f2: 4b28 lsri r1, r3, 8 + 48f4: a260 st.b r3, (r2, 0x0) + 48f6: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 48f8: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 48fa: 4b30 lsri r1, r3, 16 + 48fc: 4b78 lsri r3, r3, 24 + 48fe: a263 st.b r3, (r2, 0x3) + 4900: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 4902: e3ffee8b bsr 0x2618 // 2618 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4906: 84c2 ld.b r6, (r4, 0x2) + 4908: 8461 ld.b r3, (r4, 0x1) + 490a: 46c8 lsli r6, r6, 8 + 490c: 6d8c or r6, r3 + 490e: 3000 movi r0, 0 + 4910: e3ffee90 bsr 0x2630 // 2630 + 4914: 5e66 addi r3, r6, 2 + 4916: 4361 lsli r3, r3, 1 + 4918: 60d0 addu r3, r4 + 491a: a303 st.b r0, (r3, 0x3) + 491c: 4808 lsri r0, r0, 8 + 491e: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 4920: 8462 ld.b r3, (r4, 0x2) + 4922: 8441 ld.b r2, (r4, 0x1) + 4924: 4368 lsli r3, r3, 8 + 4926: 6cc8 or r3, r2 + 4928: 2300 addi r3, 1 + 492a: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 492c: 3b09 cmphsi r3, 10 + 492e: 5c42 addi r2, r4, 1 + 4930: 0813 bt 0x4956 // 4956 + g_adc.index++; + 4932: a461 st.b r3, (r4, 0x1) + 4934: 4b68 lsri r3, r3, 8 + 4936: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4938: 8460 ld.b r3, (r4, 0x0) + 493a: 3b41 cmpnei r3, 1 + 493c: 080c bt 0x4954 // 4954 + if (SysTick_1ms - adc_tick >= 100) { + 493e: 104d lrw r2, 0x200000d0 // 4970 + 4940: 9220 ld.w r1, (r2, 0x0) + 4942: 9560 ld.w r3, (r5, 0x0) + 4944: 60c6 subu r3, r1 + 4946: 3163 movi r1, 99 + 4948: 64c4 cmphs r1, r3 + 494a: 0805 bt 0x4954 // 4954 + adc_tick = SysTick_1ms; + 494c: 9560 ld.w r3, (r5, 0x0) + 494e: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4950: e3ffff5a bsr 0x4804 // 4804 + } + } +} + 4954: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4956: 3300 movi r3, 0 + 4958: a461 st.b r3, (r4, 0x1) + 495a: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 495c: 3301 movi r3, 1 + 495e: a460 st.b r3, (r4, 0x0) + 4960: 07ec br 0x4938 // 4938 + 4962: 0000 bkpt + 4964: 20000356 .long 0x20000356 + 4968: 200000b8 .long 0x200000b8 + 496c: 200000b4 .long 0x200000b4 + 4970: 200000d0 .long 0x200000d0 + +Disassembly of section .text.Get_Temp_Val: + +00004974 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4974: 1063 lrw r3, 0x20000356 // 4980 + 4976: 831e ld.b r0, (r3, 0x1e) + 4978: 835d ld.b r2, (r3, 0x1d) + 497a: 4008 lsli r0, r0, 8 + 497c: 6c08 or r0, r2 +} + 497e: 783c jmp r15 + 4980: 20000356 .long 0x20000356 + +Disassembly of section .text.HT1621_WR_Data: + +00004984 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 4984: 14d4 push r4-r7, r15 + 4986: 6d43 mov r5, r0 + 4988: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 4992: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 4994: 3103 movi r1, 3 + 4996: 9600 ld.w r0, (r6, 0x0) + 4998: e3ffea84 bsr 0x1ea0 // 1ea0 + nop; + 499c: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 499e: 74d6 sextb r3, r5 + 49a0: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 49a2: 3104 movi r1, 4 + 49a4: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 49a6: 0c0d bf 0x49c0 // 49c0 + HT1621_DATA_HIGH; + 49a8: e3ffea78 bsr 0x1e98 // 1e98 + nop; + 49ac: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 49ae: 3103 movi r1, 3 + 49b0: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 49b2: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 49ba: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 49c0: e3ffea70 bsr 0x1ea0 // 1ea0 + 49c4: 07f4 br 0x49ac // 49ac + 49c6: 0000 bkpt + 49c8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000049cc : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 49cc: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 49ce: 108b lrw r4, 0x2000004c // 49f8 +{ + 49d0: 6d43 mov r5, r0 + HT1621_CS_LOW; + 49d2: 3100 movi r1, 0 + 49d4: 9400 ld.w r0, (r4, 0x0) + 49d6: e3ffea65 bsr 0x1ea0 // 1ea0 + nop; + 49da: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 49dc: 3104 movi r1, 4 + 49de: 3080 movi r0, 128 + 49e0: e3ffffd2 bsr 0x4984 // 4984 + HT1621_WR_Data(cmd,8); + 49e4: 6c17 mov r0, r5 + 49e6: 3108 movi r1, 8 + 49e8: e3ffffce bsr 0x4984 // 4984 + HT1621_CS_HIGH; + 49ec: 9400 ld.w r0, (r4, 0x0) + 49ee: 3100 movi r1, 0 + 49f0: e3ffea54 bsr 0x1e98 // 1e98 + nop; + 49f4: 6c03 mov r0, r0 +} + 49f6: 1492 pop r4-r5, r15 + 49f8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +000049fc : +void HT1621_Init(void){ + 49fc: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 49fe: 1182 lrw r4, 0x2000004c // 4a84 + 4a00: 3200 movi r2, 0 + 4a02: 9400 ld.w r0, (r4, 0x0) + 4a04: 3100 movi r1, 0 + 4a06: e3ffe9c1 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,3,Output); + 4a0a: 9400 ld.w r0, (r4, 0x0) + 4a0c: 3200 movi r2, 0 + 4a0e: 3103 movi r1, 3 + 4a10: e3ffe9bc bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,4,Output); + 4a14: 3200 movi r2, 0 + 4a16: 9400 ld.w r0, (r4, 0x0) + 4a18: 3104 movi r1, 4 + 4a1a: e3ffe9b7 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,0); + 4a1e: 9400 ld.w r0, (r4, 0x0) + 4a20: 3100 movi r1, 0 + 4a22: e3ffea34 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,3); + 4a26: 9400 ld.w r0, (r4, 0x0) + 4a28: 3103 movi r1, 3 + 4a2a: e3ffea30 bsr 0x1e8a // 1e8a + GPIO_DriveStrength_EN(GPIOA0,4); + 4a2e: 9400 ld.w r0, (r4, 0x0) + 4a30: 3104 movi r1, 4 + 4a32: e3ffea2c bsr 0x1e8a // 1e8a + HT1621_CS_LOW; + 4a36: 9400 ld.w r0, (r4, 0x0) + 4a38: 3100 movi r1, 0 + 4a3a: e3ffea33 bsr 0x1ea0 // 1ea0 + HT1621_WR_LOW; + 4a3e: 9400 ld.w r0, (r4, 0x0) + 4a40: 3103 movi r1, 3 + 4a42: e3ffea2f bsr 0x1ea0 // 1ea0 + HT1621_DATA_LOW; + 4a46: 3104 movi r1, 4 + 4a48: 9400 ld.w r0, (r4, 0x0) + 4a4a: e3ffea2b bsr 0x1ea0 // 1ea0 + HT1621_WR_CMD(HT1621_BIAS); + 4a4e: 3052 movi r0, 82 + 4a50: e3ffffbe bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_RC256); + 4a54: 3030 movi r0, 48 + 4a56: e3ffffbb bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_SYSDIS); + 4a5a: 3000 movi r0, 0 + 4a5c: e3ffffb8 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_WDTDIS); + 4a60: 300a movi r0, 10 + 4a62: e3ffffb5 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_SYSEN); + 4a66: 3002 movi r0, 2 + 4a68: e3ffffb2 bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_LCDON); + 4a6c: 3006 movi r0, 6 + 4a6e: e3ffffaf bsr 0x49cc // 49cc + HT1621_WR_CMD(HT1621_BIOFF); + 4a72: 3010 movi r0, 16 + 4a74: e3ffffac bsr 0x49cc // 49cc + HT1621_CS_HIGH; + 4a78: 9400 ld.w r0, (r4, 0x0) + 4a7a: 3100 movi r1, 0 + 4a7c: e3ffea0e bsr 0x1e98 // 1e98 +} + 4a80: 1491 pop r4, r15 + 4a82: 0000 bkpt + 4a84: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +00004a88 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 4a88: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a8a: 3212 movi r2, 18 + 4a8c: 3100 movi r1, 0 + + HT1621_CS_LOW; + 4a8e: 10b1 lrw r5, 0x2000004c // 4ad0 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 4a90: 1011 lrw r0, 0x2000039c // 4ad4 + 4a92: e3ffe769 bsr 0x1964 // 1964 <__memset_fast> + HT1621_CS_LOW; + 4a96: 3100 movi r1, 0 + 4a98: 9500 ld.w r0, (r5, 0x0) + 4a9a: e3ffea03 bsr 0x1ea0 // 1ea0 + nop; + 4a9e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4aa0: 3103 movi r1, 3 + 4aa2: 30a0 movi r0, 160 + 4aa4: e3ffff70 bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4aa8: 3106 movi r1, 6 + 4aaa: 3000 movi r0, 0 + 4aac: e3ffff6c bsr 0x4984 // 4984 + 4ab0: 3412 movi r4, 18 + 4ab2: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4ac2: 9500 ld.w r0, (r5, 0x0) + 4ac4: 3100 movi r1, 0 + 4ac6: e3ffe9e9 bsr 0x1e98 // 1e98 + nop; + 4aca: 6c03 mov r0, r0 +} + 4acc: 1492 pop r4-r5, r15 + 4ace: 0000 bkpt + 4ad0: 2000004c .long 0x2000004c + 4ad4: 2000039c .long 0x2000039c + +Disassembly of section .text.HT1621_ALLON: + +00004ad8 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 4ad8: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4ada: 10af lrw r5, 0x2000004c // 4b14 + 4adc: 3100 movi r1, 0 + 4ade: 9500 ld.w r0, (r5, 0x0) + 4ae0: e3ffe9e0 bsr 0x1ea0 // 1ea0 + nop; + 4ae4: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4ae6: 3103 movi r1, 3 + 4ae8: 30a0 movi r0, 160 + 4aea: e3ffff4d bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4aee: 3106 movi r1, 6 + 4af0: 3000 movi r0, 0 + 4af2: e3ffff49 bsr 0x4984 // 4984 + 4af6: 3412 movi r4, 18 + 4af8: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b08: 9500 ld.w r0, (r5, 0x0) + 4b0a: 3100 movi r1, 0 + 4b0c: e3ffe9c6 bsr 0x1e98 // 1e98 + nop; + 4b10: 6c03 mov r0, r0 +} + 4b12: 1492 pop r4-r5, r15 + 4b14: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00004b18 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 4b18: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4b1a: 1091 lrw r4, 0x2000004c // 4b5c + 4b1c: 3100 movi r1, 0 + 4b1e: 9400 ld.w r0, (r4, 0x0) + 4b20: e3ffe9c0 bsr 0x1ea0 // 1ea0 + nop; + 4b24: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 4b26: 3103 movi r1, 3 + 4b28: 30a0 movi r0, 160 + 4b2a: e3ffff2d bsr 0x4984 // 4984 + HT1621_WR_Data(0,6); + 4b2e: 3106 movi r1, 6 + 4b30: 3000 movi r0, 0 + 4b32: e3ffff29 bsr 0x4984 // 4984 + 4b36: 3500 movi r5, 0 + for(U8_T i=0;i + 4b3a: 60d4 addu r3, r5 + 4b3c: 830c ld.b r0, (r3, 0xc) + 4b3e: 4004 lsli r0, r0, 4 + 4b40: 7400 zextb r0, r0 + 4b42: 3104 movi r1, 4 + 4b44: 2500 addi r5, 1 + 4b46: e3ffff1f bsr 0x4984 // 4984 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4b4e: 9400 ld.w r0, (r4, 0x0) + 4b50: 3100 movi r1, 0 + 4b52: e3ffe9a3 bsr 0x1e98 // 1e98 + nop; + 4b56: 6c03 mov r0, r0 +} + 4b58: 1492 pop r4-r5, r15 + 4b5a: 0000 bkpt + 4b5c: 2000004c .long 0x2000004c + 4b60: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temperature_Display: + +00004b64 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 4b64: 14d4 push r4-r7, r15 + 4b66: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4b68: 310a movi r1, 10 + 4b6a: b801 st.w r0, (r14, 0x4) + 4b6c: e3fff67c bsr 0x3864 // 3864 <__udivsi3> + 4b70: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4b72: 310a movi r1, 10 + 4b74: 6c17 mov r0, r5 + 4b76: e3fff677 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + HT1621.show_cache[6] = 0x00; + HT1621.show_cache[5] &= 0x08; + + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b7a: 10fb lrw r7, 0x7af2 // 4be4 + 4b7c: 7400 zextb r0, r0 + 4b7e: 109b lrw r4, 0x20000390 // 4be8 + 4b80: 601c addu r0, r7 + HT1621.show_cache[9] &= 0x08; + 4b82: 3608 movi r6, 8 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b84: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[9] &= 0x08; + 4b86: 8455 ld.b r2, (r4, 0x15) + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b88: 4904 lsri r0, r1, 4 + HT1621.show_cache[9] &= 0x08; + 4b8a: 6898 and r2, r6 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 4b8c: 6c80 or r2, r0 + 4b8e: a455 st.b r2, (r4, 0x15) + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b90: 320f movi r2, 15 + 4b92: 6848 and r1, r2 + 4b94: a436 st.b r1, (r4, 0x16) + U8_T tmp_L = tmp_Integer%10; + 4b96: 6c17 mov r0, r5 + 4b98: 310a movi r1, 10 + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 4b9a: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4b9c: e3fff676 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4ba0: 7400 zextb r0, r0 + 4ba2: 601c addu r0, r7 + 4ba4: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4ba6: 9840 ld.w r2, (r14, 0x0) + 4ba8: 6c57 mov r1, r5 + 4baa: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4bac: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 4bae: a434 st.b r1, (r4, 0x14) + U8_T tmp_quantile = tmp%10; + 4bb0: 6c0f mov r0, r3 + 4bb2: 310a movi r1, 10 + 4bb4: e3fff66a bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bb8: 7401 zexth r0, r0 + 4bba: 61c0 addu r7, r0 + 4bbc: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[6] |= Diaital[tmp_quantile]&0x0F; + 4bbe: 9840 ld.w r2, (r14, 0x0) + 4bc0: 688c and r2, r3 + 4bc2: a452 st.b r2, (r4, 0x12) + + //显示“℃” + HT1621.show_cache[3] |= 0x08; + 4bc4: 844f ld.b r2, (r4, 0xf) + 4bc6: 6c98 or r2, r6 + 4bc8: a44f st.b r2, (r4, 0xf) + HT1621.show_cache[4] |= 0x0B; + 4bca: 310b movi r1, 11 + 4bcc: 8450 ld.b r2, (r4, 0x10) + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4bce: 4b64 lsri r3, r3, 4 + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4bd0: 4da4 lsri r5, r5, 4 + HT1621.show_cache[4] |= 0x0B; + 4bd2: 6c84 or r2, r1 + HT1621.show_cache[5] |= 0x08; + 4bd4: 6cd8 or r3, r6 + + //显示小数点 + HT1621.show_cache[7] |= 0x08; + 4bd6: 6d58 or r5, r6 + HT1621.show_cache[4] |= 0x0B; + 4bd8: a450 st.b r2, (r4, 0x10) + HT1621.show_cache[5] |= 0x08; + 4bda: a471 st.b r3, (r4, 0x11) + HT1621.show_cache[7] |= 0x08; + 4bdc: a4b3 st.b r5, (r4, 0x13) +} + 4bde: 1402 addi r14, r14, 8 + 4be0: 1494 pop r4-r7, r15 + 4be2: 0000 bkpt + 4be4: 00007af2 .long 0x00007af2 + 4be8: 20000390 .long 0x20000390 + +Disassembly of section .text.Local_Temperature_Display: + +00004bec : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 4bec: 14d4 push r4-r7, r15 + 4bee: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4bf0: 310a movi r1, 10 + 4bf2: b801 st.w r0, (r14, 0x4) + 4bf4: e3fff638 bsr 0x3864 // 3864 <__udivsi3> + 4bf8: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4bfa: 310a movi r1, 10 + 4bfc: 6c17 mov r0, r5 + 4bfe: e3fff633 bsr 0x3864 // 3864 <__udivsi3> + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c02: 10f9 lrw r7, 0x7af2 // 4c64 + 4c04: 7400 zextb r0, r0 + 4c06: 601c addu r0, r7 + 4c08: 80c0 ld.b r6, (r0, 0x0) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c0a: 320f movi r2, 15 + 4c0c: 6c5b mov r1, r6 + 4c0e: 1097 lrw r4, 0x20000390 // 4c68 + 4c10: 6848 and r1, r2 + 4c12: a43d st.b r1, (r4, 0x1d) + U8_T tmp_L = tmp_Integer%10; + 4c14: 6c17 mov r0, r5 + 4c16: 310a movi r1, 10 + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c18: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4c1a: e3fff637 bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c1e: 7400 zextb r0, r0 + 4c20: 601c addu r0, r7 + 4c22: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c24: 9840 ld.w r2, (r14, 0x0) + 4c26: 6c57 mov r1, r5 + 4c28: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4c2a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c2c: a43b st.b r1, (r4, 0x1b) + U8_T tmp_quantile = tmp%10; + 4c2e: 6c0f mov r0, r3 + 4c30: 310a movi r1, 10 + 4c32: e3fff62b bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c36: 7401 zexth r0, r0 + 4c38: 61c0 addu r7, r0 + 4c3a: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c3c: 9840 ld.w r2, (r14, 0x0) + 4c3e: 688c and r2, r3 + + //显示“℃” + HT1621.show_cache[16] |= 0x08; + HT1621.show_cache[11] |= 0x0B; + 4c40: 8437 ld.b r1, (r4, 0x17) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c42: a459 st.b r2, (r4, 0x19) + HT1621.show_cache[11] |= 0x0B; + 4c44: 300b movi r0, 11 + HT1621.show_cache[16] |= 0x08; + 4c46: 3208 movi r2, 8 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c48: 4ec4 lsri r6, r6, 4 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c4a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c4c: 4da4 lsri r5, r5, 4 + HT1621.show_cache[16] |= 0x08; + 4c4e: 6d88 or r6, r2 + HT1621.show_cache[11] |= 0x0B; + 4c50: 6c40 or r1, r0 + HT1621.show_cache[12] |= 0x08; + 4c52: 6cc8 or r3, r2 + + //显示小数点 + HT1621.show_cache[14] |= 0x08; + 4c54: 6d48 or r5, r2 + HT1621.show_cache[16] |= 0x08; + 4c56: a4dc st.b r6, (r4, 0x1c) + HT1621.show_cache[11] |= 0x0B; + 4c58: a437 st.b r1, (r4, 0x17) + HT1621.show_cache[12] |= 0x08; + 4c5a: a478 st.b r3, (r4, 0x18) + HT1621.show_cache[14] |= 0x08; + 4c5c: a4ba st.b r5, (r4, 0x1a) +} + 4c5e: 1402 addi r14, r14, 8 + 4c60: 1494 pop r4-r7, r15 + 4c62: 0000 bkpt + 4c64: 00007af2 .long 0x00007af2 + 4c68: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Mode: + +00004c6c : +* 1 -> 制热模式 +* 2 -> 送风模式 +* 3 -> 除湿 +*/ +void Control_Mode(U8_T mode){ + switch(mode){ + 4c6c: 3842 cmpnei r0, 2 + 4c6e: 0c0f bf 0x4c8c // 4c8c + 4c70: 3844 cmpnei r0, 4 + 4c72: 0c16 bf 0x4c9e // 4c9e + 4c74: 3840 cmpnei r0, 0 + 4c76: 080a bt 0x4c8a // 4c8a + case 0x00: + HT1621.show_cache[0] &= ~0x07; + 4c78: 104e lrw r2, 0x20000390 // 4cb0 + 4c7a: 3107 movi r1, 7 + 4c7c: 826c ld.b r3, (r2, 0xc) + 4c7e: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c80: 822d ld.b r1, (r2, 0xd) + 4c82: 3980 bclri r1, 0 + 4c84: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x04; + 4c86: 3ba2 bseti r3, 2 + HT1621.show_cache[0] |= 0x02; + break; + case 0x04: + HT1621.show_cache[0] &= ~0x07; + HT1621.show_cache[1] &= ~0x01; + HT1621.show_cache[0] |= 0x01; + 4c88: a26c st.b r3, (r2, 0xc) +// HT1621.show_cache[0] &= ~0x07; +// HT1621.show_cache[1] |= 0x01; +// break; + } + +} + 4c8a: 783c jmp r15 + HT1621.show_cache[0] &= ~0x07; + 4c8c: 1049 lrw r2, 0x20000390 // 4cb0 + 4c8e: 3107 movi r1, 7 + 4c90: 826c ld.b r3, (r2, 0xc) + 4c92: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4c94: 822d ld.b r1, (r2, 0xd) + 4c96: 3980 bclri r1, 0 + 4c98: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x02; + 4c9a: 3ba1 bseti r3, 1 + 4c9c: 07f6 br 0x4c88 // 4c88 + HT1621.show_cache[0] &= ~0x07; + 4c9e: 1045 lrw r2, 0x20000390 // 4cb0 + 4ca0: 3107 movi r1, 7 + 4ca2: 826c ld.b r3, (r2, 0xc) + 4ca4: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ca6: 822d ld.b r1, (r2, 0xd) + 4ca8: 3980 bclri r1, 0 + 4caa: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x01; + 4cac: 3ba0 bseti r3, 0 + 4cae: 07ed br 0x4c88 // 4c88 + 4cb0: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_wind_velocity: + +00004cb4 : +* 2 -> 中风速 +* 3 -> 高风速 +* 0 -> 自动风速 +*/ +void Control_wind_velocity(U8_T velocity) +{ + 4cb4: 14d0 push r15 + switch(velocity) + 4cb6: 3803 cmphsi r0, 4 + 4cb8: 080f bt 0x4cd6 // 4cd6 + 4cba: 107a lrw r3, 0x20000390 // 4d20 + 4cbc: e3ffe020 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4cc0: 0e0c0214 .long 0x0e0c0214 + { + case 1: //低风速 + HT1621.show_cache[2] = 0x0C; + 4cc4: 320c movi r2, 12 + HT1621.show_cache[3] &= ~0x03; + HT1621.show_cache[1] &= ~0x02; + break; + case 2: //中风速 + HT1621.show_cache[2] = 0x0F; + 4cc6: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cc8: 834f ld.b r2, (r3, 0xf) + 4cca: 3a80 bclri r2, 0 + 4ccc: 3a81 bclri r2, 1 + 4cce: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[1] &= ~0x02; + 4cd0: 834d ld.b r2, (r3, 0xd) + 4cd2: 3a81 bclri r2, 1 + 4cd4: a34d st.b r2, (r3, 0xd) + } + break; + default: + break; + } +} + 4cd6: 1490 pop r15 + HT1621.show_cache[2] = 0x0F; + 4cd8: 320f movi r2, 15 + 4cda: 07f6 br 0x4cc6 // 4cc6 + HT1621.show_cache[2] = 0x0F; + 4cdc: 320f movi r2, 15 + 4cde: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4ce0: 834f ld.b r2, (r3, 0xf) + 4ce2: 3aa0 bseti r2, 0 + 4ce4: 3aa1 bseti r2, 1 + 4ce6: 07f4 br 0x4cce // 4cce + HT1621.show_cache[1] |= 0x02; + 4ce8: 834d ld.b r2, (r3, 0xd) + 4cea: 3aa1 bseti r2, 1 + 4cec: a34d st.b r2, (r3, 0xd) + if(HT1621.wind_velocity == 0) //关风扇 + 4cee: 8343 ld.b r2, (r3, 0x3) + 4cf0: 3a40 cmpnei r2, 0 + 4cf2: 0807 bt 0x4d00 // 4d00 + HT1621.show_cache[2] = 0x0F; + 4cf4: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4cf6: 834f ld.b r2, (r3, 0xf) + 4cf8: 3a80 bclri r2, 0 + 4cfa: 3a81 bclri r2, 1 + HT1621.show_cache[3] |= 0x03; + 4cfc: a34f st.b r2, (r3, 0xf) +} + 4cfe: 07ec br 0x4cd6 // 4cd6 + }else if(HT1621.wind_velocity == 1) //低风速 + 4d00: 3a41 cmpnei r2, 1 + 4d02: 0803 bt 0x4d08 // 4d08 + HT1621.show_cache[2] = 0x0C; + 4d04: 320c movi r2, 12 + 4d06: 07f7 br 0x4cf4 // 4cf4 + }else if(HT1621.wind_velocity == 2) //中风速 + 4d08: 3a42 cmpnei r2, 2 + 4d0a: 0803 bt 0x4d10 // 4d10 + HT1621.show_cache[2] = 0x0F; + 4d0c: 320f movi r2, 15 + 4d0e: 07f3 br 0x4cf4 // 4cf4 + }else if(HT1621.wind_velocity == 3) //高风速 + 4d10: 3a43 cmpnei r2, 3 + 4d12: 0be2 bt 0x4cd6 // 4cd6 + HT1621.show_cache[2] = 0x0F; + 4d14: 320f movi r2, 15 + 4d16: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4d18: 834f ld.b r2, (r3, 0xf) + 4d1a: 3aa0 bseti r2, 0 + 4d1c: 3aa1 bseti r2, 1 + 4d1e: 07ef br 0x4cfc // 4cfc + 4d20: 20000390 .long 0x20000390 + +Disassembly of section .text.Control_Prompt_Text: + +00004d24 : +*函数功能:显示 提示文字 +*参数功能:state : 0 -> 关 +* 1 -> 开 +*/ +void Control_Prompt_Text(U8_T state){ + if(state == 0x01){ + 4d24: 3841 cmpnei r0, 1 + 4d26: 1070 lrw r3, 0x20000390 // 4d64 + 4d28: 0810 bt 0x4d48 // 4d48 + HT1621.show_cache[0] |= 0x08; //模式 + 4d2a: 3008 movi r0, 8 + 4d2c: 832c ld.b r1, (r3, 0xc) + 4d2e: 6c40 or r1, r0 + 4d30: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x0C; //风速 + 4d32: 832d ld.b r1, (r3, 0xd) + 4d34: 39a2 bseti r1, 2 + 4d36: 39a3 bseti r1, 3 + 4d38: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d3a: 832f ld.b r1, (r3, 0xf) + 4d3c: 39a2 bseti r1, 2 + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d3e: 8355 ld.b r2, (r3, 0x15) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4d40: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[9] |= 0x08; //室内温度 + 4d42: 6c80 or r2, r0 + }else{ + HT1621.show_cache[0] &= ~0x08; //模式 + HT1621.show_cache[1] &= ~0x0C; //风速 + HT1621.show_cache[3] &= ~0x04; //设置温度 + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d44: a355 st.b r2, (r3, 0x15) + } +} + 4d46: 783c jmp r15 + HT1621.show_cache[0] &= ~0x08; //模式 + 4d48: 834c ld.b r2, (r3, 0xc) + 4d4a: 3a83 bclri r2, 3 + 4d4c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x0C; //风速 + 4d4e: 834d ld.b r2, (r3, 0xd) + 4d50: 3a82 bclri r2, 2 + 4d52: 3a83 bclri r2, 3 + 4d54: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x04; //设置温度 + 4d56: 834f ld.b r2, (r3, 0xf) + 4d58: 3a82 bclri r2, 2 + 4d5a: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4d5c: 8355 ld.b r2, (r3, 0x15) + 4d5e: 3a83 bclri r2, 3 + 4d60: 07f2 br 0x4d44 // 4d44 + 4d62: 0000 bkpt + 4d64: 20000390 .long 0x20000390 + +Disassembly of section .text.Controlled_Buzzer: + +00004d68 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 4d68: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 4d6a: 3841 cmpnei r0, 1 + 4d6c: 0c0a bf 0x4d80 // 4d80 + 4d6e: 3840 cmpnei r0, 0 + 4d70: 0c04 bf 0x4d78 // 4d78 + 4d72: 3842 cmpnei r0, 2 + 4d74: 0c12 bf 0x4d98 // 4d98 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 4d76: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 4d78: 3010 movi r0, 16 + 4d7a: e3fffe29 bsr 0x49cc // 49cc + break; + 4d7e: 07fc br 0x4d76 // 4d76 + HT1621_WR_CMD(HT1621_BLON); + 4d80: 3012 movi r0, 18 + 4d82: e3fffe25 bsr 0x49cc // 49cc + HT1621.buz_control = 0x01; + 4d86: 1069 lrw r3, 0x20000390 // 4da8 + 4d88: 3220 movi r2, 32 + 4d8a: 608c addu r2, r3 + 4d8c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 4d8e: a222 st.b r1, (r2, 0x2) + HT1621.buz_tick = SysTick_1ms; + 4d90: 1047 lrw r2, 0x200000b8 // 4dac + 4d92: 9240 ld.w r2, (r2, 0x0) + 4d94: b34d st.w r2, (r3, 0x34) +} + 4d96: 07f0 br 0x4d76 // 4d76 + HT1621_WR_CMD(HT1621_BLON); + 4d98: 3012 movi r0, 18 + 4d9a: e3fffe19 bsr 0x49cc // 49cc + HT1621.buz_control = 0x02; + 4d9e: 1063 lrw r3, 0x20000390 // 4da8 + 4da0: 3220 movi r2, 32 + 4da2: 608c addu r2, r3 + 4da4: 3102 movi r1, 2 + 4da6: 07f4 br 0x4d8e // 4d8e + 4da8: 20000390 .long 0x20000390 + 4dac: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00004db0 : +/* +*函数功能:控制LCD 按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_LCD_Backlight(U8_T state){ + switch (state) { + 4db0: 3840 cmpnei r0, 0 + 4db2: 0c04 bf 0x4dba // 4dba + 4db4: 3841 cmpnei r0, 1 + 4db6: 0c07 bf 0x4dc4 // 4dc4 + break; + case 0x01: + EPT0->CMPC=0; + break; + } +} + 4db8: 783c jmp r15 + EPT0->CMPC=3000; + 4dba: 1065 lrw r3, 0x20000020 // 4dcc + 4dbc: 1045 lrw r2, 0xbb8 // 4dd0 + 4dbe: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPC=0; + 4dc0: b34d st.w r2, (r3, 0x34) +} + 4dc2: 07fb br 0x4db8 // 4db8 + EPT0->CMPC=0; + 4dc4: 1062 lrw r3, 0x20000020 // 4dcc + 4dc6: 3200 movi r2, 0 + 4dc8: 9360 ld.w r3, (r3, 0x0) + 4dca: 07fb br 0x4dc0 // 4dc0 + 4dcc: 20000020 .long 0x20000020 + 4dd0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Controlled_Key_Backlight: + +00004dd4 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_Key_Backlight(U8_T state){ + switch(state){ + 4dd4: 3840 cmpnei r0, 0 + 4dd6: 0c04 bf 0x4dde // 4dde + 4dd8: 3841 cmpnei r0, 1 + 4dda: 0c07 bf 0x4de8 // 4de8 + break; + case 0x01: + EPT0->CMPB=0; + break; + } +} + 4ddc: 783c jmp r15 + EPT0->CMPB=3000; + 4dde: 1065 lrw r3, 0x20000020 // 4df0 + 4de0: 1045 lrw r2, 0xbb8 // 4df4 + 4de2: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPB=0; + 4de4: b34c st.w r2, (r3, 0x30) +} + 4de6: 07fb br 0x4ddc // 4ddc + EPT0->CMPB=0; + 4de8: 1062 lrw r3, 0x20000020 // 4df0 + 4dea: 3200 movi r2, 0 + 4dec: 9360 ld.w r3, (r3, 0x0) + 4dee: 07fb br 0x4de4 // 4de4 + 4df0: 20000020 .long 0x20000020 + 4df4: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Set_Device_ADDR: + +00004df8 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4df8: 14d4 push r4-r7, r15 + 4dfa: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4dfc: 11a3 lrw r5, 0x7af2 // 4e88 + 4dfe: 1184 lrw r4, 0x20000390 // 4e8c + 4e00: 6014 addu r0, r5 + HT1621.show_cache[7] &= 0x08; + 4e02: 3308 movi r3, 8 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4e04: 6c87 mov r2, r1 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e06: 8000 ld.b r0, (r0, 0x0) + HT1621.show_cache[7] &= 0x08; + 4e08: 8433 ld.b r1, (r4, 0x13) + 4e0a: 684c and r1, r3 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e0c: 48c4 lsri r6, r0, 4 + 4e0e: 6c58 or r1, r6 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4e10: 370f movi r7, 15 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4e12: a433 st.b r1, (r4, 0x13) + HT1621.show_cache[17] = 0x00; + HT1621.show_cache[16] &= 0x08; + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4e14: 8438 ld.b r1, (r4, 0x18) + 4e16: 684c and r1, r3 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4e18: 681c and r0, r7 + 4e1a: a414 st.b r0, (r4, 0x14) + HT1621.show_cache[14] &= 0x08; + 4e1c: 84da ld.b r6, (r4, 0x1a) + HT1621.show_cache[12] &= 0x08; + 4e1e: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 4e20: 6c0b mov r0, r2 + 4e22: 3164 movi r1, 100 + HT1621.show_cache[14] &= 0x08; + 4e24: 698c and r6, r3 + HT1621.show_cache[12] &= 0x08; + 4e26: b862 st.w r3, (r14, 0x8) + U8_T tmp_H = tmp_Integer/10; + 4e28: b841 st.w r2, (r14, 0x4) + 4e2a: e3fff51d bsr 0x3864 // 3864 <__udivsi3> + + //显示设置地址 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e2e: 7400 zextb r0, r0 + 4e30: 6014 addu r0, r5 + 4e32: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[16] &= 0x08; + 4e34: 9862 ld.w r3, (r14, 0x8) + 4e36: 841c ld.b r0, (r4, 0x1c) + 4e38: 68c0 and r3, r0 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e3a: 4904 lsri r0, r1, 4 + 4e3c: 6cc0 or r3, r0 + U8_T tmp_Integer = addr/10; + 4e3e: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e40: 685c and r1, r7 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4e42: a47c st.b r3, (r4, 0x1c) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4e44: a43d st.b r1, (r4, 0x1d) + U8_T tmp_Integer = addr/10; + 4e46: 6c0b mov r0, r2 + 4e48: 310a movi r1, 10 + 4e4a: e3fff50d bsr 0x3864 // 3864 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 4e4e: 7400 zextb r0, r0 + 4e50: 310a movi r1, 10 + 4e52: e3fff51b bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e56: 7400 zextb r0, r0 + 4e58: 6014 addu r0, r5 + 4e5a: 8060 ld.b r3, (r0, 0x0) + 4e5c: 4b24 lsri r1, r3, 4 + U8_T tmp_quantile = addr%10; + 4e5e: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e60: 68dc and r3, r7 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e62: 6d84 or r6, r1 + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4e64: a47b st.b r3, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4e66: a4da st.b r6, (r4, 0x1a) + U8_T tmp_quantile = addr%10; + 4e68: 310a movi r1, 10 + 4e6a: 6c0b mov r0, r2 + 4e6c: e3fff50e bsr 0x3888 // 3888 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e70: 7400 zextb r0, r0 + 4e72: 6140 addu r5, r0 + 4e74: 8560 ld.b r3, (r5, 0x0) + 4e76: 4b44 lsri r2, r3, 4 + 4e78: 9820 ld.w r1, (r14, 0x0) + 4e7a: 6c84 or r2, r1 + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e7c: 69cc and r7, r3 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4e7e: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4e80: a4f9 st.b r7, (r4, 0x19) +} + 4e82: 1403 addi r14, r14, 12 + 4e84: 1494 pop r4-r7, r15 + 4e86: 0000 bkpt + 4e88: 00007af2 .long 0x00007af2 + 4e8c: 20000390 .long 0x20000390 + +Disassembly of section .text.Set_Temp_Difference: + +00004e90 : + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e90: 1057 lrw r2, 0x20000390 // 4eec + HT1621.show_cache[7] &= 0x08; + 4e92: 3108 movi r1, 8 + 4e94: 8273 ld.b r3, (r2, 0x13) + 4e96: 68c4 and r3, r1 + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4e98: 3ba0 bseti r3, 0 + 4e9a: 3ba1 bseti r3, 1 + 4e9c: a273 st.b r3, (r2, 0x13) + HT1621.show_cache[8] |= Diaital[2]&0x0F; + 4e9e: 330d movi r3, 13 + 4ea0: a274 st.b r3, (r2, 0x14) + + //清楚原数字 + HT1621.show_cache[17] = 0x00; + 4ea2: 3300 movi r3, 0 + 4ea4: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] &= 0x08; + 4ea6: 827c ld.b r3, (r2, 0x1c) + 4ea8: 68c4 and r3, r1 + 4eaa: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] = 0x00; + 4eac: 3300 movi r3, 0 + 4eae: a27b st.b r3, (r2, 0x1b) + HT1621.show_cache[14] &= 0x08; + 4eb0: 827a ld.b r3, (r2, 0x1a) + 4eb2: 68c4 and r3, r1 + 4eb4: a27a st.b r3, (r2, 0x1a) + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4eb6: 8278 ld.b r3, (r2, 0x18) + 4eb8: 684c and r1, r3 + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 4eba: 3300 movi r3, 0 + 4ebc: 2b08 subi r3, 9 + 4ebe: 60c0 addu r3, r0 + 4ec0: 74cc zextb r3, r3 + 4ec2: 3b09 cmphsi r3, 10 + 4ec4: 0c08 bf 0x4ed4 // 4ed4 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 4ec6: 3808 cmphsi r0, 9 + 4ec8: 0810 bt 0x4ee8 // 4ee8 + tmp_quantile = 9 - diff; + 4eca: 3309 movi r3, 9 + 4ecc: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[14] = 0x02; + 4ece: 3002 movi r0, 2 + tmp_quantile = 9 - diff; + 4ed0: 74cc zextb r3, r3 + HT1621.show_cache[14] = 0x02; + 4ed2: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] = 0x00; + } + + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4ed4: 1007 lrw r0, 0x7af2 // 4ef0 + 4ed6: 60c0 addu r3, r0 + 4ed8: 8360 ld.b r3, (r3, 0x0) + 4eda: 4b04 lsri r0, r3, 4 + 4edc: 6c40 or r1, r0 + 4ede: a238 st.b r1, (r2, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4ee0: 310f movi r1, 15 + 4ee2: 68c4 and r3, r1 + 4ee4: a279 st.b r3, (r2, 0x19) +} + 4ee6: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 4ee8: 3300 movi r3, 0 + 4eea: 07f5 br 0x4ed4 // 4ed4 + 4eec: 20000390 .long 0x20000390 + 4ef0: 00007af2 .long 0x00007af2 + +Disassembly of section .text.HT1621_Refresh_Task: + +00004ef4 : + + +void HT1621_Refresh_Task(void){ + 4ef4: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 4ef6: 10b4 lrw r5, 0x200000b8 // 4f44 + 4ef8: 1094 lrw r4, 0x20000390 // 4f48 + 4efa: 9560 ld.w r3, (r5, 0x0) + 4efc: 944b ld.w r2, (r4, 0x2c) + 4efe: 60ca subu r3, r2 + 4f00: 1053 lrw r2, 0x1f3 // 4f4c + 4f02: 64c8 cmphs r2, r3 + 4f04: 0806 bt 0x4f10 // 4f10 + HT1621.Refresh_timing = HT1621_Refresh_time; + 4f06: 33fa movi r3, 250 + 4f08: 4361 lsli r3, r3, 1 + 4f0a: b46b st.w r3, (r4, 0x2c) + + HT1621_Refresh_Data(); + 4f0c: e3fffe06 bsr 0x4b18 // 4b18 + +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 4f10: 1070 lrw r3, 0x200003b0 // 4f50 + 4f12: 8342 ld.b r2, (r3, 0x2) + 4f14: 3a41 cmpnei r2, 1 + 4f16: 080f bt 0x4f34 // 4f34 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 4f18: 942d ld.w r1, (r4, 0x34) + 4f1a: 9540 ld.w r2, (r5, 0x0) + 4f1c: 6086 subu r2, r1 + 4f1e: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f20: 6484 cmphs r1, r2 + 4f22: 0808 bt 0x4f32 // 4f32 + HT1621.buz_tick = SysTick_1ms; + 4f24: 9540 ld.w r2, (r5, 0x0) + 4f26: b44d st.w r2, (r4, 0x34) + HT1621_WR_CMD(HT1621_BIOFF); + 4f28: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 4f2a: 3200 movi r2, 0 + 4f2c: a342 st.b r2, (r3, 0x2) + HT1621_WR_CMD(HT1621_BIOFF); + 4f2e: e3fffd4f bsr 0x49cc // 49cc + Controlled_Buzzer(0x00); + } + } + + +} + 4f32: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 4f34: 3a42 cmpnei r2, 2 + 4f36: 0bfe bt 0x4f32 // 4f32 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4f38: 942d ld.w r1, (r4, 0x34) + 4f3a: 9540 ld.w r2, (r5, 0x0) + 4f3c: 6086 subu r2, r1 + 4f3e: 1024 lrw r1, 0x1f3 // 4f4c + 4f40: 07f0 br 0x4f20 // 4f20 + 4f42: 0000 bkpt + 4f44: 200000b8 .long 0x200000b8 + 4f48: 20000390 .long 0x20000390 + 4f4c: 000001f3 .long 0x000001f3 + 4f50: 200003b0 .long 0x200003b0 + +Disassembly of section .text.MODEL_Ctrl_Init: + +00004f54 : +#include "includes.h" + +MODEL_Struct detect_inf; + +void MODEL_Ctrl_Init(void) +{ + 4f54: 14d1 push r4, r15 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + GPIO_Init(GPIOA0,1,1); + 4f56: 1089 lrw r4, 0x2000004c // 4f78 + memset(&detect_inf,0,sizeof(MODEL_Struct)); + 4f58: 3208 movi r2, 8 + 4f5a: 3100 movi r1, 0 + 4f5c: 1008 lrw r0, 0x200003cc // 4f7c + 4f5e: e3ffe503 bsr 0x1964 // 1964 <__memset_fast> + GPIO_Init(GPIOA0,1,1); + 4f62: 3201 movi r2, 1 + 4f64: 9400 ld.w r0, (r4, 0x0) + 4f66: 3101 movi r1, 1 + 4f68: e3ffe710 bsr 0x1d88 // 1d88 + GPIO_PullHigh_Init(GPIOA0,1); + 4f6c: 9400 ld.w r0, (r4, 0x0) + 4f6e: 3101 movi r1, 1 + 4f70: e3ffe77c bsr 0x1e68 // 1e68 + +} + 4f74: 1491 pop r4, r15 + 4f76: 0000 bkpt + 4f78: 2000004c .long 0x2000004c + 4f7c: 200003cc .long 0x200003cc + +Disassembly of section .text.Control_Mode_Detection: + +00004f80 : + +void Control_Mode_Detection(void){ + 4f80: 14d3 push r4-r6, r15 + + if(SysTick_1ms - detect_inf.detection_tick >= 10){ + 4f82: 1189 lrw r4, 0x200003cc // 5024 + 4f84: 8445 ld.b r2, (r4, 0x5) + 4f86: 8464 ld.b r3, (r4, 0x4) + 4f88: 4248 lsli r2, r2, 8 + 4f8a: 6c8c or r2, r3 + 4f8c: 8466 ld.b r3, (r4, 0x6) + 4f8e: 4370 lsli r3, r3, 16 + 4f90: 6c8c or r2, r3 + 4f92: 8467 ld.b r3, (r4, 0x7) + 4f94: 1105 lrw r0, 0x200000b8 // 5028 + 4f96: 4378 lsli r3, r3, 24 + 4f98: 9020 ld.w r1, (r0, 0x0) + 4f9a: 6cc8 or r3, r2 + 4f9c: 604e subu r1, r3 + 4f9e: 3909 cmphsi r1, 10 + 4fa0: 0c18 bf 0x4fd0 // 4fd0 + detect_inf.detection_tick = SysTick_1ms; + 4fa2: 9060 ld.w r3, (r0, 0x0) + 4fa4: 4b48 lsri r2, r3, 8 + + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fa6: 11a2 lrw r5, 0x2000004c // 502c + 4fa8: 3101 movi r1, 1 + detect_inf.detection_tick = SysTick_1ms; + 4faa: a464 st.b r3, (r4, 0x4) + 4fac: a445 st.b r2, (r4, 0x5) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fae: 9500 ld.w r0, (r5, 0x0) + detect_inf.detection_tick = SysTick_1ms; + 4fb0: 4b50 lsri r2, r3, 16 + 4fb2: 4b78 lsri r3, r3, 24 + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fb4: 84c1 ld.b r6, (r4, 0x1) + detect_inf.detection_tick = SysTick_1ms; + 4fb6: a446 st.b r2, (r4, 0x6) + 4fb8: a467 st.b r3, (r4, 0x7) + if (detect_inf.last_state != GPIO_Read_Status(GPIOA0,1)) { + 4fba: e3ffe782 bsr 0x1ebe // 1ebe + 4fbe: 641a cmpne r6, r0 + 4fc0: 0c09 bf 0x4fd2 // 4fd2 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fc2: 9500 ld.w r0, (r5, 0x0) + 4fc4: 3101 movi r1, 1 + 4fc6: e3ffe77c bsr 0x1ebe // 1ebe + detect_inf.count = 0; + 4fca: 3300 movi r3, 0 + detect_inf.last_state = GPIO_Read_Status(GPIOA0,1); + 4fcc: a401 st.b r0, (r4, 0x1) + detect_inf.count = 0; + 4fce: a460 st.b r3, (r4, 0x0) + } + } + } + + } +} + 4fd0: 1493 pop r4-r6, r15 + detect_inf.count++; + 4fd2: 8460 ld.b r3, (r4, 0x0) + 4fd4: 2300 addi r3, 1 + 4fd6: 74cc zextb r3, r3 + if (detect_inf.count >= 20) { + 4fd8: 3b13 cmphsi r3, 20 + detect_inf.count++; + 4fda: a460 st.b r3, (r4, 0x0) + if (detect_inf.count >= 20) { + 4fdc: 0ffa bf 0x4fd0 // 4fd0 + Dbg_Println(DBG_BIT_SYS_STATUS,"last_state %d state %d",detect_inf.last_state , GPIO_Read_Status(GPIOA0,1)); + 4fde: 3101 movi r1, 1 + 4fe0: 9500 ld.w r0, (r5, 0x0) + 4fe2: 84c1 ld.b r6, (r4, 0x1) + 4fe4: e3ffe76d bsr 0x1ebe // 1ebe + 4fe8: 6cc3 mov r3, r0 + 4fea: 6c9b mov r2, r6 + 4fec: 1031 lrw r1, 0x7e4e // 5030 + 4fee: 3000 movi r0, 0 + 4ff0: e3fff5ae bsr 0x3b4c // 3b4c + detect_inf.control_model = detect_inf.last_state; + 4ff4: 8461 ld.b r3, (r4, 0x1) + detect_inf.stop_detect = 0x01; + 4ff6: 3201 movi r2, 1 + if (detect_inf.control_model == 0x00) { + 4ff8: 3b40 cmpnei r3, 0 + detect_inf.control_model = detect_inf.last_state; + 4ffa: a463 st.b r3, (r4, 0x3) + detect_inf.stop_detect = 0x01; + 4ffc: a442 st.b r2, (r4, 0x2) + if (detect_inf.control_model == 0x00) { + 4ffe: 0be9 bt 0x4fd0 // 4fd0 + GPIO_PullHighLow_DIS(GPIOA0, 1); + 5000: 9500 ld.w r0, (r5, 0x0) + 5002: 3101 movi r1, 1 + 5004: e3ffe73c bsr 0x1e7c // 1e7c + GPIO_Init(GPIOA0,1,Output); + 5008: 3200 movi r2, 0 + 500a: 9500 ld.w r0, (r5, 0x0) + 500c: 3101 movi r1, 1 + 500e: e3ffe6bd bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,1); + 5012: 9500 ld.w r0, (r5, 0x0) + 5014: 3101 movi r1, 1 + 5016: e3ffe73a bsr 0x1e8a // 1e8a + GPIO_Write_Low(GPIOA0,1); + 501a: 9500 ld.w r0, (r5, 0x0) + 501c: 3101 movi r1, 1 + 501e: e3ffe741 bsr 0x1ea0 // 1ea0 +} + 5022: 07d7 br 0x4fd0 // 4fd0 + 5024: 200003cc .long 0x200003cc + 5028: 200000b8 .long 0x200000b8 + 502c: 2000004c .long 0x2000004c + 5030: 00007e4e .long 0x00007e4e + +Disassembly of section .text.TemCtrl_Init: + +00005034 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 5034: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 5036: 1289 lrw r4, 0x200003d4 // 5158 + 5038: 321f movi r2, 31 + 503a: 3100 movi r1, 0 + 503c: 6c13 mov r0, r4 + 503e: e3ffe493 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 5042: 1267 lrw r3, 0x200000a8 // 515c + 5044: 9360 ld.w r3, (r3, 0x0) + 5046: 3b80 bclri r3, 0 + 5048: 3b40 cmpnei r3, 0 + 504a: 0c80 bf 0x514a // 514a + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 504c: 1225 lrw r1, 0x7e65 // 5160 + 504e: 3000 movi r0, 0 + 5050: e3fff57e bsr 0x3b4c // 3b4c + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 5054: 1264 lrw r3, 0x200000a4 // 5164 + 5056: 30ff movi r0, 255 + 5058: 9320 ld.w r1, (r3, 0x0) + 505a: 6840 and r1, r0 + 505c: 3940 cmpnei r1, 0 + 505e: 0c05 bf 0x5068 // 5068 + 5060: 9340 ld.w r2, (r3, 0x0) + 5062: 6880 and r2, r0 + 5064: 3a41 cmpnei r2, 1 + 5066: 0865 bt 0x5130 // 5130 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 5068: 9340 ld.w r2, (r3, 0x0) + 506a: 4227 lsli r1, r2, 7 + 506c: 307f movi r0, 127 + 506e: 8442 ld.b r2, (r4, 0x2) + 5070: 6880 and r2, r0 + 5072: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5074: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 5076: 9340 ld.w r2, (r3, 0x0) + 5078: 4a48 lsri r2, r2, 8 + 507a: 7488 zextb r2, r2 + 507c: 3a03 cmphsi r2, 4 + 507e: 085d bt 0x5138 // 5138 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 5080: 9340 ld.w r2, (r3, 0x0) + 5082: 3107 movi r1, 7 + 5084: 4a48 lsri r2, r2, 8 + 5086: 6884 and r2, r1 + 5088: 3070 movi r0, 112 + 508a: 8422 ld.b r1, (r4, 0x2) + 508c: 4244 lsli r2, r2, 4 + 508e: 6841 andn r1, r0 + 5090: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5092: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 5094: 9340 ld.w r2, (r3, 0x0) + 5096: 4a50 lsri r2, r2, 16 + 5098: 7488 zextb r2, r2 + 509a: 3a03 cmphsi r2, 4 + 509c: 0852 bt 0x5140 // 5140 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 509e: 9340 ld.w r2, (r3, 0x0) + 50a0: 3107 movi r1, 7 + 50a2: 4a50 lsri r2, r2, 16 + 50a4: 6884 and r2, r1 + 50a6: 300e movi r0, 14 + 50a8: 8422 ld.b r1, (r4, 0x2) + 50aa: 4241 lsli r2, r2, 1 + 50ac: 6841 andn r1, r0 + 50ae: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 50b0: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 50b2: 9340 ld.w r2, (r3, 0x0) + 50b4: 4a58 lsri r2, r2, 24 + 50b6: 3a0f cmphsi r2, 16 + 50b8: 0c05 bf 0x50c2 // 50c2 + 50ba: 9340 ld.w r2, (r3, 0x0) + 50bc: 4a58 lsri r2, r2, 24 + 50be: 3a1f cmphsi r2, 32 + 50c0: 0c05 bf 0x50ca // 50ca + 50c2: 9340 ld.w r2, (r3, 0x0) + 50c4: 4a58 lsri r2, r2, 24 + 50c6: 3a40 cmpnei r2, 0 + 50c8: 0846 bt 0x5154 // 5154 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 50ca: 9360 ld.w r3, (r3, 0x0) + 50cc: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 50ce: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 50d0: e3fffc52 bsr 0x4974 // 4974 + 50d4: 1165 lrw r3, 0x20000350 // 5168 + 50d6: 8362 ld.b r3, (r3, 0x2) + 50d8: 320a movi r2, 10 + 50da: 7cc8 mult r3, r2 + 50dc: 2b59 subi r3, 90 + 50de: 600c addu r0, r3 + 50e0: 7401 zexth r0, r0 + 50e2: 4868 lsri r3, r0, 8 + 50e4: a469 st.b r3, (r4, 0x9) + 50e6: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50e8: 310a movi r1, 10 + 50ea: e3fff3bd bsr 0x3864 // 3864 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 50ee: 3301 movi r3, 1 + 50f0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 50f2: 3300 movi r3, 0 + 50f4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 50f6: 3200 movi r2, 0 + 50f8: 107d lrw r3, 0x2000005c // 516c + 50fa: 9360 ld.w r3, (r3, 0x0) + 50fc: 23ff addi r3, 256 + 50fe: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5100: 8442 ld.b r2, (r4, 0x2) + 5102: 4239 lsli r1, r2, 25 + 5104: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 5106: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5108: 4128 lsli r1, r1, 8 + 510a: 9300 ld.w r0, (r3, 0x0) + 510c: 6c40 or r1, r0 + 510e: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5110: 423c lsli r1, r2, 28 + 5112: 493d lsri r1, r1, 29 + 5114: 9300 ld.w r0, (r3, 0x0) + 5116: 4130 lsli r1, r1, 16 + 5118: 6c40 or r1, r0 + 511a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 511c: 8421 ld.b r1, (r4, 0x1) + 511e: 9300 ld.w r0, (r3, 0x0) + 5120: 4138 lsli r1, r1, 24 + 5122: 6c40 or r1, r0 + 5124: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5126: 9320 ld.w r1, (r3, 0x0) + 5128: 4a47 lsri r2, r2, 7 + 512a: 6c84 or r2, r1 + 512c: b340 st.w r2, (r3, 0x0) +} + 512e: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 5130: 8442 ld.b r2, (r4, 0x2) + 5132: 317f movi r1, 127 + 5134: 6884 and r2, r1 + 5136: 079f br 0x5074 // 5074 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 5138: 8442 ld.b r2, (r4, 0x2) + 513a: 3170 movi r1, 112 + 513c: 6885 andn r2, r1 + 513e: 07aa br 0x5092 // 5092 + TempCtrl.TemState_Now.fan = FAN_MID; + 5140: 8442 ld.b r2, (r4, 0x2) + 5142: 310e movi r1, 14 + 5144: 6885 andn r2, r1 + 5146: 3aa2 bseti r2, 2 + 5148: 07b4 br 0x50b0 // 50b0 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 514a: 8462 ld.b r3, (r4, 0x2) + 514c: 320e movi r2, 14 + 514e: 68c9 andn r3, r2 + 5150: 3ba2 bseti r3, 2 + 5152: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 5154: 3318 movi r3, 24 + 5156: 07bc br 0x50ce // 50ce + 5158: 200003d4 .long 0x200003d4 + 515c: 200000a8 .long 0x200000a8 + 5160: 00007e65 .long 0x00007e65 + 5164: 200000a4 .long 0x200000a4 + 5168: 20000350 .long 0x20000350 + 516c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00005170 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 5170: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 5172: 1031 lrw r1, 0x200003d4 // 51b4 + 5174: 8162 ld.b r3, (r1, 0x2) + 5176: 748e sextb r2, r3 + 5178: 3adf btsti r2, 31 + 517a: 0c14 bf 0x51a2 // 51a2 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 517c: 4359 lsli r2, r3, 25 + 517e: 4a5d lsri r2, r2, 29 + 5180: 3a42 cmpnei r2, 2 + 5182: 0c11 bf 0x51a4 // 51a4 + 5184: 3a44 cmpnei r2, 4 + 5186: 0c13 bf 0x51ac // 51ac + 5188: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 518a: 3270 movi r2, 112 + 518c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 518e: 0802 bt 0x5192 // 5192 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 5190: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 5192: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 5194: 8142 ld.b r2, (r1, 0x2) + 5196: 4259 lsli r2, r2, 25 + 5198: 4a5d lsri r2, r2, 29 + 519a: 1028 lrw r1, 0x7e7e // 51b8 + 519c: 3000 movi r0, 0 + 519e: e3fff4d7 bsr 0x3b4c // 3b4c +} + 51a2: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 51a4: 3270 movi r2, 112 + 51a6: 68c9 andn r3, r2 + 51a8: 3ba6 bseti r3, 6 + 51aa: 07f4 br 0x5192 // 5192 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 51ac: 3270 movi r2, 112 + 51ae: 68c9 andn r3, r2 + 51b0: 07f1 br 0x5192 // 5192 + 51b2: 0000 bkpt + 51b4: 200003d4 .long 0x200003d4 + 51b8: 00007e7e .long 0x00007e7e + +Disassembly of section .text.TemCtrl_Fan_Set: + +000051bc : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 51bc: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 51be: 1071 lrw r3, 0x200003d4 // 5200 + 51c0: 8342 ld.b r2, (r3, 0x2) + 51c2: 744a sextb r1, r2 + 51c4: 39df btsti r1, 31 + 51c6: 0c15 bf 0x51f0 // 51f0 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 51c8: 421c lsli r0, r2, 28 + 51ca: 481d lsri r0, r0, 29 + 51cc: 3803 cmphsi r0, 4 + 51ce: 0815 bt 0x51f8 // 51f8 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 51d0: 8342 ld.b r2, (r3, 0x2) + 51d2: 310e movi r1, 14 + 51d4: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 51d6: e3ffdd93 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 51da: 0211 .short 0x0211 + 51dc: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 51de: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; + 51e0: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 51e2: 8342 ld.b r2, (r3, 0x2) + 51e4: 425c lsli r2, r2, 28 + 51e6: 4a5d lsri r2, r2, 29 + 51e8: 1027 lrw r1, 0x7e87 // 5204 + 51ea: 3000 movi r0, 0 + 51ec: e3fff4b0 bsr 0x3b4c // 3b4c +} + 51f0: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 51f2: 3aa1 bseti r2, 1 + 51f4: 3aa2 bseti r2, 2 + 51f6: 07f5 br 0x51e0 // 51e0 + TempCtrl.TemState_Now.fan = FAN_LOW; + 51f8: 310e movi r1, 14 + 51fa: 6885 andn r2, r1 + 51fc: 3aa1 bseti r2, 1 + 51fe: 07f1 br 0x51e0 // 51e0 + 5200: 200003d4 .long 0x200003d4 + 5204: 00007e87 .long 0x00007e87 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00005208 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 5208: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 520a: 106a lrw r3, 0x200003d4 // 5230 + 520c: 8342 ld.b r2, (r3, 0x2) + 520e: 748a sextb r2, r2 + 5210: 3adf btsti r2, 31 + 5212: 0c0b bf 0x5228 // 5228 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 5214: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 5216: 3a10 cmphsi r2, 17 + 5218: 0c09 bf 0x522a // 522a + { + TemSet--; //超过最低温度,就减 + 521a: 2a00 subi r2, 1 + 521c: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 521e: 1026 lrw r1, 0x7e8e // 5234 + 5220: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 5222: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 5224: e3fff494 bsr 0x3b4c // 3b4c +} + 5228: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 522a: 3210 movi r2, 16 + 522c: 07f9 br 0x521e // 521e + 522e: 0000 bkpt + 5230: 200003d4 .long 0x200003d4 + 5234: 00007e8e .long 0x00007e8e + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00005238 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 5238: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 523a: 106a lrw r3, 0x200003d4 // 5260 + 523c: 8342 ld.b r2, (r3, 0x2) + 523e: 748a sextb r2, r2 + 5240: 3adf btsti r2, 31 + 5242: 0c0b bf 0x5258 // 5258 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 5244: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 5246: 3a1f cmphsi r2, 32 + 5248: 0809 bt 0x525a // 525a + { + TemSet++; + 524a: 2200 addi r2, 1 + 524c: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 524e: 1026 lrw r1, 0x7e97 // 5264 + 5250: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 5252: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 5254: e3fff47c bsr 0x3b4c // 3b4c +} + 5258: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 525a: 3220 movi r2, 32 + 525c: 07f9 br 0x524e // 524e + 525e: 0000 bkpt + 5260: 200003d4 .long 0x200003d4 + 5264: 00007e97 .long 0x00007e97 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00005268 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 5268: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 526a: 104b lrw r2, 0x200003d4 // 5294 + 526c: 8262 ld.b r3, (r2, 0x2) + 526e: 4b27 lsri r1, r3, 7 + 5270: 3940 cmpnei r1, 0 + 5272: 0c0d bf 0x528c // 528c + 5274: 3941 cmpnei r1, 1 + 5276: 080b bt 0x528c // 528c + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 5278: 317f movi r1, 127 + 527a: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 527c: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 527e: 8242 ld.b r2, (r2, 0x2) + 5280: 4a47 lsri r2, r2, 7 + 5282: 1026 lrw r1, 0x7e97 // 5298 + 5284: 3000 movi r0, 0 + 5286: e3fff463 bsr 0x3b4c // 3b4c +} + 528a: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 528c: 3100 movi r1, 0 + 528e: 297f subi r1, 128 + 5290: 6cc4 or r3, r1 + 5292: 07f5 br 0x527c // 527c + 5294: 200003d4 .long 0x200003d4 + 5298: 00007e97 .long 0x00007e97 + +Disassembly of section .text.Tem_Valve_Ctrl: + +0000529c : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 529c: 14d2 push r4-r5, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 529e: 1285 lrw r4, 0x200003d4 // 53b0 + 52a0: 8420 ld.b r1, (r4, 0x0) + 52a2: 3940 cmpnei r1, 0 + 52a4: 0802 bt 0x52a8 // 52a8 + 52a6: 3120 movi r1, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 52a8: 8441 ld.b r2, (r4, 0x1) + 52aa: 3a40 cmpnei r2, 0 + 52ac: 0802 bt 0x52b0 // 52b0 + 52ae: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 52b0: 8462 ld.b r3, (r4, 0x2) + 52b2: 4b07 lsri r0, r3, 7 + 52b4: 3840 cmpnei r0, 0 + 52b6: 0c41 bf 0x5338 // 5338 + 52b8: 3841 cmpnei r0, 1 + 52ba: 083b bt 0x5330 // 5330 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 52bc: 4319 lsli r0, r3, 25 + 52be: 481d lsri r0, r0, 29 + 52c0: 3842 cmpnei r0, 2 + 52c2: 0c38 bf 0x5332 // 5332 + 52c4: 3844 cmpnei r0, 4 + 52c6: 0c5e bf 0x5382 // 5382 + 52c8: 3840 cmpnei r0, 0 + 52ca: 0833 bt 0x5330 // 5330 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 52cc: 5a03 subi r0, r2, 1 + 52ce: 6405 cmplt r1, r0 + 52d0: 0c09 bf 0x52e2 // 52e2 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 52d2: 3b80 bclri r3, 0 + 52d4: a462 st.b r3, (r4, 0x2) + { + RLY2_COLD_OPEN; + RLY1_HOT_OPEN; +// Dbg_Println(DBG_BIT_SYS_STATUS,"cold on pipe 2"); + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + RLY2_COLD_CLOSE; + 52d6: 11b8 lrw r5, 0x2000004c // 53b4 + 52d8: 310f movi r1, 15 + 52da: 9500 ld.w r0, (r5, 0x0) + 52dc: e3ffe5e2 bsr 0x1ea0 // 1ea0 + 52e0: 040f br 0x52fe // 52fe + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 52e2: 2200 addi r2, 1 + 52e4: 6449 cmplt r2, r1 + 52e6: 0c25 bf 0x5330 // 5330 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 52e8: 3ba0 bseti r3, 0 + 52ea: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 52ec: 1173 lrw r3, 0x20000350 // 53b8 + 52ee: 8361 ld.b r3, (r3, 0x1) + 52f0: 3b41 cmpnei r3, 1 + 52f2: 083c bt 0x536a // 536a + RLY2_COLD_OPEN; + 52f4: 11b0 lrw r5, 0x2000004c // 53b4 + 52f6: 310f movi r1, 15 + 52f8: 9500 ld.w r0, (r5, 0x0) + 52fa: e3ffe5cf bsr 0x1e98 // 1e98 + RLY1_HOT_CLOSE; + 52fe: 9500 ld.w r0, (r5, 0x0) + 5300: 310e movi r1, 14 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 5302: e3ffe5cf bsr 0x1ea0 // 1ea0 + 5306: 0403 br 0x530c // 530c + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 5308: 3b42 cmpnei r3, 2 + 530a: 0fe6 bf 0x52d6 // 52d6 + if (detect_inf.control_model != 0x00){ + 530c: 116c lrw r3, 0x200003cc // 53bc + 530e: 8363 ld.b r3, (r3, 0x3) + 5310: 3b40 cmpnei r3, 0 + 5312: 0c0f bf 0x5330 // 5330 + if(rf_info.valve_state_last != TempCtrl.TemState_Now.valve) + 5314: 8462 ld.b r3, (r4, 0x2) + 5316: 437f lsli r3, r3, 31 + 5318: 4b7f lsri r3, r3, 31 + 531a: 114a lrw r2, 0x200005a0 // 53c0 + 531c: 744c zextb r1, r3 + 531e: 8202 ld.b r0, (r2, 0x2) + 5320: 6442 cmpne r0, r1 + 5322: 0c07 bf 0x5330 // 5330 + { + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + rf_info.valve_flag = 0x01; + 5324: 3100 movi r1, 0 + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + 5326: a262 st.b r3, (r2, 0x2) + rf_info.valve_flag = 0x01; + 5328: 297f subi r1, 128 + 532a: 8261 ld.b r3, (r2, 0x1) + 532c: 6cc4 or r3, r1 + 532e: a261 st.b r3, (r2, 0x1) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 5330: 1492 pop r4-r5, r15 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5332: 5a02 addi r0, r2, 1 + 5334: 6441 cmplt r0, r1 + 5336: 0c09 bf 0x5348 // 5348 + RLY1_HOT_CLOSE; + 5338: 10bf lrw r5, 0x2000004c // 53b4 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 533a: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 533c: 310e movi r1, 14 + 533e: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5340: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 5342: e3ffe5af bsr 0x1ea0 // 1ea0 + 5346: 040f br 0x5364 // 5364 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 5348: 2a00 subi r2, 1 + 534a: 6485 cmplt r1, r2 + 534c: 0ff2 bf 0x5330 // 5330 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 534e: 3ba0 bseti r3, 0 + 5350: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 5352: 107a lrw r3, 0x20000350 // 53b8 + 5354: 8361 ld.b r3, (r3, 0x1) + 5356: 3b41 cmpnei r3, 1 + 5358: 0809 bt 0x536a // 536a + RLY1_HOT_OPEN; + 535a: 10b7 lrw r5, 0x2000004c // 53b4 + 535c: 310e movi r1, 14 + 535e: 9500 ld.w r0, (r5, 0x0) + 5360: e3ffe59c bsr 0x1e98 // 1e98 + RLY2_COLD_CLOSE; + 5364: 9500 ld.w r0, (r5, 0x0) + 5366: 310f movi r1, 15 + 5368: 07cd br 0x5302 // 5302 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 536a: 3b40 cmpnei r3, 0 + 536c: 0bce bt 0x5308 // 5308 + RLY2_COLD_OPEN; + 536e: 10b2 lrw r5, 0x2000004c // 53b4 + 5370: 310f movi r1, 15 + 5372: 9500 ld.w r0, (r5, 0x0) + 5374: e3ffe592 bsr 0x1e98 // 1e98 + RLY1_HOT_OPEN; + 5378: 9500 ld.w r0, (r5, 0x0) + 537a: 310e movi r1, 14 + 537c: e3ffe58e bsr 0x1e98 // 1e98 + 5380: 07c6 br 0x530c // 530c + RLY1_HOT_CLOSE; + 5382: 10ad lrw r5, 0x2000004c // 53b4 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5384: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 5386: 310e movi r1, 14 + 5388: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 538a: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 538c: e3ffe58a bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 5390: 9500 ld.w r0, (r5, 0x0) + 5392: 310f movi r1, 15 + 5394: e3ffe586 bsr 0x1ea0 // 1ea0 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 5398: 1068 lrw r3, 0x20000350 // 53b8 + 539a: 8361 ld.b r3, (r3, 0x1) + 539c: 3b42 cmpnei r3, 2 + 539e: 0bb7 bt 0x530c // 530c + Relay_Stop(); + 53a0: e00008d2 bsr 0x6544 // 6544 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 53a4: 1028 lrw r1, 0x7ea5 // 53c4 + 53a6: 3000 movi r0, 0 + 53a8: e3fff3d2 bsr 0x3b4c // 3b4c + 53ac: 07b0 br 0x530c // 530c + 53ae: 0000 bkpt + 53b0: 200003d4 .long 0x200003d4 + 53b4: 2000004c .long 0x2000004c + 53b8: 20000350 .long 0x20000350 + 53bc: 200003cc .long 0x200003cc + 53c0: 200005a0 .long 0x200005a0 + 53c4: 00007ea5 .long 0x00007ea5 + +Disassembly of section .text.TemCtrl_Pro: + +000053c8 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 53c8: 14d2 push r4-r5, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 53ca: 1215 lrw r0, 0x200000b8 // 551c + 53cc: 1235 lrw r1, 0x200000d4 // 5520 + 53ce: 9040 ld.w r2, (r0, 0x0) + 53d0: 9160 ld.w r3, (r1, 0x0) + 53d2: 608e subu r2, r3 + 53d4: 33fa movi r3, 250 + 53d6: 4362 lsli r3, r3, 2 + 53d8: 648c cmphs r3, r2 + 53da: 0834 bt 0x5442 // 5442 + { + tick = SysTick_1ms; + 53dc: 9060 ld.w r3, (r0, 0x0) + 53de: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 53e0: e3fffaca bsr 0x4974 // 4974 + 53e4: 12b0 lrw r5, 0x20000350 // 5524 + 53e6: 8562 ld.b r3, (r5, 0x2) + 53e8: 320a movi r2, 10 + 53ea: 7cc8 mult r3, r2 + 53ec: 2b59 subi r3, 90 + 53ee: 600c addu r0, r3 + 53f0: 7401 zexth r0, r0 + 53f2: 128e lrw r4, 0x200003d4 // 5528 + 53f4: 7480 zextb r2, r0 + 53f6: 4868 lsri r3, r0, 8 + 53f8: a448 st.b r2, (r4, 0x8) + 53fa: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 53fc: a44c st.b r2, (r4, 0xc) + 53fe: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 5400: 310a movi r1, 10 + 5402: e3fff231 bsr 0x3864 // 3864 <__udivsi3> + 5406: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 5408: e3ffff4a bsr 0x529c // 529c + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 540c: 8442 ld.b r2, (r4, 0x2) + 540e: 74c8 zextb r3, r2 + 5410: 3171 movi r1, 113 + 5412: 6c0f mov r0, r3 + 5414: 6805 andn r0, r1 + 5416: 3180 movi r1, 128 + 5418: 6442 cmpne r0, r1 + 541a: 083f bt 0x5498 // 5498 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 541c: 3270 movi r2, 112 + 541e: 68c8 and r3, r2 + 5420: 3b40 cmpnei r3, 0 + 5422: 0829 bt 0x5474 // 5474 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5424: 8461 ld.b r3, (r4, 0x1) + 5426: 8440 ld.b r2, (r4, 0x0) + 5428: 5b27 subi r1, r3, 2 + 542a: 6449 cmplt r2, r1 + 542c: 0c0c bf 0x5444 // 5444 + { + Relay_Stop(); //风速停 + 542e: e000088b bsr 0x6544 // 6544 + HT1621.wind_velocity = 0; + 5432: 117f lrw r3, 0x20000390 // 552c + 5434: 3200 movi r2, 0 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 1; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5436: 8402 ld.b r0, (r4, 0x2) + 5438: 401c lsli r0, r0, 28 + 543a: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 1; + 543c: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 543e: e3fffc3b bsr 0x4cb4 // 4cb4 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 5442: 1492 pop r4-r5, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5444: 5b23 subi r1, r3, 1 + 5446: 644a cmpne r2, r1 + 5448: 0806 bt 0x5454 // 5454 + Relay_Low(); //低风速 + 544a: e000086b bsr 0x6520 // 6520 + HT1621.wind_velocity = 1; + 544e: 1178 lrw r3, 0x20000390 // 552c + 5450: 3201 movi r2, 1 + 5452: 07f2 br 0x5436 // 5436 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5454: 5b22 addi r1, r3, 1 + 5456: 644a cmpne r2, r1 + 5458: 0806 bt 0x5464 // 5464 + Relay_Mid(); //中风速 + 545a: e0000851 bsr 0x64fc // 64fc + HT1621.wind_velocity = 2; + 545e: 1174 lrw r3, 0x20000390 // 552c + 5460: 3202 movi r2, 2 + 5462: 07ea br 0x5436 // 5436 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5464: 2301 addi r3, 2 + 5466: 648d cmplt r3, r2 + 5468: 0fed bf 0x5442 // 5442 + Relay_High(); //高风速 + 546a: e0000837 bsr 0x64d8 // 64d8 + HT1621.wind_velocity = 3; + 546e: 1170 lrw r3, 0x20000390 // 552c + 5470: 3203 movi r2, 3 + 5472: 07e2 br 0x5436 // 5436 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 5474: 3220 movi r2, 32 + 5476: 648e cmpne r3, r2 + 5478: 0be5 bt 0x5442 // 5442 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 547a: 8461 ld.b r3, (r4, 0x1) + 547c: 8440 ld.b r2, (r4, 0x0) + 547e: 5b27 subi r1, r3, 2 + 5480: 6449 cmplt r2, r1 + 5482: 0bf4 bt 0x546a // 546a + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5484: 5b23 subi r1, r3, 1 + 5486: 644a cmpne r2, r1 + 5488: 0fe9 bf 0x545a // 545a + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 548a: 5b22 addi r1, r3, 1 + 548c: 644a cmpne r2, r1 + 548e: 0fde bf 0x544a // 544a + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5490: 2301 addi r3, 2 + 5492: 648d cmplt r3, r2 + 5494: 0fd7 bf 0x5442 // 5442 + 5496: 07cc br 0x542e // 542e + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 5498: 8521 ld.b r1, (r5, 0x1) + 549a: 3942 cmpnei r1, 2 + 549c: 744e sextb r1, r3 + 549e: 083a bt 0x5512 // 5512 + 54a0: 39df btsti r1, 31 + 54a2: 0c38 bf 0x5512 // 5512 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 54a4: 310e movi r1, 14 + 54a6: 684c and r1, r3 + 54a8: 3940 cmpnei r1, 0 + 54aa: 0fcc bf 0x5442 // 5442 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 54ac: 3170 movi r1, 112 + 54ae: 68c4 and r3, r1 + 54b0: 3b40 cmpnei r3, 0 + 54b2: 0819 bt 0x54e4 // 54e4 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 54b4: 8461 ld.b r3, (r4, 0x1) + 54b6: 8420 ld.b r1, (r4, 0x0) + 54b8: 5b07 subi r0, r3, 2 + 54ba: 6405 cmplt r1, r0 + 54bc: 0bb9 bt 0x542e // 542e + switch(TempCtrl.TemState_Now.fan) + 54be: 425c lsli r2, r2, 28 + 54c0: 4a5d lsri r2, r2, 29 + 54c2: 3a42 cmpnei r2, 2 + 54c4: 0c09 bf 0x54d6 // 54d6 + 54c6: 3a43 cmpnei r2, 3 + 54c8: 0c0b bf 0x54de // 54de + 54ca: 3a41 cmpnei r2, 1 + 54cc: 0bbb bt 0x5442 // 5442 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 54ce: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 54d0: 64c6 cmpne r1, r3 + 54d2: 0bb8 bt 0x5442 // 5442 + 54d4: 07bb br 0x544a // 544a + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 54d6: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 54d8: 64c6 cmpne r1, r3 + 54da: 0bb4 bt 0x5442 // 5442 + 54dc: 07bf br 0x545a // 545a + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 54de: 2301 addi r3, 2 + 54e0: 644d cmplt r3, r1 + 54e2: 07c3 br 0x5468 // 5468 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 54e4: 3120 movi r1, 32 + 54e6: 644e cmpne r3, r1 + 54e8: 0bad bt 0x5442 // 5442 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 54ea: 8461 ld.b r3, (r4, 0x1) + 54ec: 8420 ld.b r1, (r4, 0x0) + 54ee: 5b06 addi r0, r3, 2 + 54f0: 6441 cmplt r0, r1 + 54f2: 0b9e bt 0x542e // 542e + switch(TempCtrl.TemState_Now.fan) + 54f4: 425c lsli r2, r2, 28 + 54f6: 4a5d lsri r2, r2, 29 + 54f8: 3a42 cmpnei r2, 2 + 54fa: 0c07 bf 0x5508 // 5508 + 54fc: 3a43 cmpnei r2, 3 + 54fe: 0c07 bf 0x550c // 550c + 5500: 3a41 cmpnei r2, 1 + 5502: 0ba0 bt 0x5442 // 5442 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5504: 2300 addi r3, 1 + 5506: 07e5 br 0x54d0 // 54d0 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5508: 2b00 subi r3, 1 + 550a: 07e7 br 0x54d8 // 54d8 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 550c: 2b01 subi r3, 2 + 550e: 64c5 cmplt r1, r3 + 5510: 07ac br 0x5468 // 5468 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5512: 39df btsti r1, 31 + 5514: 0b97 bt 0x5442 // 5442 + Relay_Stop(); //风速停 + 5516: e0000817 bsr 0x6544 // 6544 + 551a: 0794 br 0x5442 // 5442 + 551c: 200000b8 .long 0x200000b8 + 5520: 200000d4 .long 0x200000d4 + 5524: 20000350 .long 0x20000350 + 5528: 200003d4 .long 0x200003d4 + 552c: 20000390 .long 0x20000390 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00005530 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 5530: 14d2 push r4-r5, r15 + 5532: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 5534: 1131 lrw r1, 0x7eae // 55f8 + 5536: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5538: 1191 lrw r4, 0x200003f3 // 55fc + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 553a: e3fff309 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 553e: 8460 ld.b r3, (r4, 0x0) + 5540: 3b41 cmpnei r3, 1 + 5542: 11b0 lrw r5, 0x200000b8 // 5600 + 5544: 082e bt 0x55a0 // 55a0 + { + Debug_Inf.Tick = SysTick_1ms; + 5546: 9560 ld.w r3, (r5, 0x0) + 5548: 4b48 lsri r2, r3, 8 + 554a: a468 st.b r3, (r4, 0x8) + 554c: a449 st.b r2, (r4, 0x9) + 554e: 4b50 lsri r2, r3, 16 + 5550: 4b78 lsri r3, r3, 24 + 5552: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page < PAGE5ID) + 5554: 8462 ld.b r3, (r4, 0x2) + 5556: 3b04 cmphsi r3, 5 + Debug_Inf.Tick = SysTick_1ms; + 5558: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page < PAGE5ID) + 555a: 0803 bt 0x5560 // 5560 + { + Debug_Inf.Page++; + 555c: 2300 addi r3, 1 + 555e: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 5560: e3fffa94 bsr 0x4a88 // 4a88 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 5564: 8462 ld.b r3, (r4, 0x2) + 5566: 3b42 cmpnei r3, 2 + 5568: 0806 bt 0x5574 // 5574 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 556a: 8405 ld.b r0, (r4, 0x5) + 556c: e3fffc92 bsr 0x4e90 // 4e90 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 5570: 1401 addi r14, r14, 4 + 5572: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 5574: 3b41 cmpnei r3, 1 + 5576: 0806 bt 0x5582 // 5582 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5578: 8424 ld.b r1, (r4, 0x4) + 557a: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 557c: e3fffc3e bsr 0x4df8 // 4df8 + 5580: 07f8 br 0x5570 // 5570 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 5582: 3b43 cmpnei r3, 3 + 5584: 0804 bt 0x558c // 558c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5586: 8426 ld.b r1, (r4, 0x6) + 5588: 3003 movi r0, 3 + 558a: 07f9 br 0x557c // 557c + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 558c: 3b44 cmpnei r3, 4 + 558e: 0804 bt 0x5596 // 5596 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 5590: 8427 ld.b r1, (r4, 0x7) + 5592: 3004 movi r0, 4 + 5594: 07f4 br 0x557c // 557c + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 5596: 3b45 cmpnei r3, 5 + 5598: 0bec bt 0x5570 // 5570 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 559a: 8423 ld.b r1, (r4, 0x3) + 559c: 3005 movi r0, 5 + 559e: 07ef br 0x557c // 557c + if(TempCtrl.CardState == CARDIN) //插卡状态 + 55a0: 1099 lrw r4, 0x200003d4 // 5604 + 55a2: 8478 ld.b r3, (r4, 0x18) + 55a4: 3b41 cmpnei r3, 1 + 55a6: 081f bt 0x55e4 // 55e4 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 55a8: 8462 ld.b r3, (r4, 0x2) + 55aa: 74ce sextb r3, r3 + 55ac: 3bdf btsti r3, 31 + 55ae: 0c1b bf 0x55e4 // 55e4 + TemCtrl_Model_Set(); //模式切换 + 55b0: e3fffde0 bsr 0x5170 // 5170 + if (detect_inf.control_model != 0x00){ + 55b4: 1075 lrw r3, 0x200003cc // 5608 + 55b6: 8363 ld.b r3, (r3, 0x3) + 55b8: 3b40 cmpnei r3, 0 + 55ba: 0c0e bf 0x55d6 // 55d6 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 55bc: 1074 lrw r3, 0x200005a0 // 560c + 55be: 8340 ld.b r2, (r3, 0x0) + 55c0: 3a41 cmpnei r2, 1 + 55c2: 080a bt 0x55d6 // 55d6 + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,ACTIVE); + 55c4: 8462 ld.b r3, (r4, 0x2) + 55c6: 4379 lsli r3, r3, 25 + 55c8: b840 st.w r2, (r14, 0x0) + 55ca: 4b7d lsri r3, r3, 29 + 55cc: 3204 movi r2, 4 + 55ce: 3102 movi r1, 2 + 55d0: 3005 movi r0, 5 + 55d2: e0000595 bsr 0x60fc // 60fc + if(g_eeprom.backlight_en == 0x01) + 55d6: 106f lrw r3, 0x20000350 // 5610 + 55d8: 8364 ld.b r3, (r3, 0x4) + 55da: 3b41 cmpnei r3, 1 + 55dc: 0804 bt 0x55e4 // 55e4 + Controlled_LCD_Backlight(1); + 55de: 3001 movi r0, 1 + 55e0: e3fffbe8 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 55e4: 9560 ld.w r3, (r5, 0x0) + 55e6: 4b48 lsri r2, r3, 8 + 55e8: a470 st.b r3, (r4, 0x10) + 55ea: a451 st.b r2, (r4, 0x11) + 55ec: 4b50 lsri r2, r3, 16 + 55ee: 4b78 lsri r3, r3, 24 + 55f0: a452 st.b r2, (r4, 0x12) + 55f2: a473 st.b r3, (r4, 0x13) +} + 55f4: 07be br 0x5570 // 5570 + 55f6: 0000 bkpt + 55f8: 00007eae .long 0x00007eae + 55fc: 200003f3 .long 0x200003f3 + 5600: 200000b8 .long 0x200000b8 + 5604: 200003d4 .long 0x200003d4 + 5608: 200003cc .long 0x200003cc + 560c: 200005a0 .long 0x200005a0 + 5610: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +00005614 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 5614: 14d2 push r4-r5, r15 + 5616: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5618: 1131 lrw r1, 0x7ec3 // 56dc + 561a: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 561c: 1191 lrw r4, 0x200003f3 // 56e0 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 561e: e3fff297 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5622: 8460 ld.b r3, (r4, 0x0) + 5624: 3b41 cmpnei r3, 1 + 5626: 11b0 lrw r5, 0x200000b8 // 56e4 + 5628: 082e bt 0x5684 // 5684 + { + Debug_Inf.Tick = SysTick_1ms; + 562a: 9560 ld.w r3, (r5, 0x0) + 562c: 4b48 lsri r2, r3, 8 + 562e: a468 st.b r3, (r4, 0x8) + 5630: a449 st.b r2, (r4, 0x9) + 5632: 4b50 lsri r2, r3, 16 + 5634: 4b78 lsri r3, r3, 24 + 5636: a46b st.b r3, (r4, 0xb) + if(Debug_Inf.Page > PAGE1ID) + 5638: 8462 ld.b r3, (r4, 0x2) + 563a: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 563c: a44a st.b r2, (r4, 0xa) + if(Debug_Inf.Page > PAGE1ID) + 563e: 0c03 bf 0x5644 // 5644 + { + Debug_Inf.Page--; + 5640: 2b00 subi r3, 1 + 5642: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 5644: e3fffa22 bsr 0x4a88 // 4a88 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 5648: 8462 ld.b r3, (r4, 0x2) + 564a: 3b42 cmpnei r3, 2 + 564c: 0806 bt 0x5658 // 5658 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 564e: 8405 ld.b r0, (r4, 0x5) + 5650: e3fffc20 bsr 0x4e90 // 4e90 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 5654: 1401 addi r14, r14, 4 + 5656: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 5658: 3b41 cmpnei r3, 1 + 565a: 0806 bt 0x5666 // 5666 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 565c: 8424 ld.b r1, (r4, 0x4) + 565e: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5660: e3fffbcc bsr 0x4df8 // 4df8 + 5664: 07f8 br 0x5654 // 5654 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 5666: 3b43 cmpnei r3, 3 + 5668: 0804 bt 0x5670 // 5670 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 566a: 8426 ld.b r1, (r4, 0x6) + 566c: 3003 movi r0, 3 + 566e: 07f9 br 0x5660 // 5660 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 5670: 3b44 cmpnei r3, 4 + 5672: 0804 bt 0x567a // 567a + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 5674: 8427 ld.b r1, (r4, 0x7) + 5676: 3004 movi r0, 4 + 5678: 07f4 br 0x5660 // 5660 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 567a: 3b45 cmpnei r3, 5 + 567c: 0bec bt 0x5654 // 5654 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 567e: 8423 ld.b r1, (r4, 0x3) + 5680: 3005 movi r0, 5 + 5682: 07ef br 0x5660 // 5660 + if(TempCtrl.CardState == CARDIN) + 5684: 1099 lrw r4, 0x200003d4 // 56e8 + 5686: 8478 ld.b r3, (r4, 0x18) + 5688: 3b41 cmpnei r3, 1 + 568a: 081f bt 0x56c8 // 56c8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 568c: 8462 ld.b r3, (r4, 0x2) + 568e: 74ce sextb r3, r3 + 5690: 3bdf btsti r3, 31 + 5692: 0c1b bf 0x56c8 // 56c8 + TemCtrl_Fan_Set(); //风速切换 + 5694: e3fffd94 bsr 0x51bc // 51bc + if (detect_inf.control_model != 0x00){ + 5698: 1075 lrw r3, 0x200003cc // 56ec + 569a: 8363 ld.b r3, (r3, 0x3) + 569c: 3b40 cmpnei r3, 0 + 569e: 0c0e bf 0x56ba // 56ba + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 56a0: 1074 lrw r3, 0x200005a0 // 56f0 + 56a2: 8340 ld.b r2, (r3, 0x0) + 56a4: 3a41 cmpnei r2, 1 + 56a6: 080a bt 0x56ba // 56ba + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,ACTIVE); + 56a8: 8462 ld.b r3, (r4, 0x2) + 56aa: 437c lsli r3, r3, 28 + 56ac: b840 st.w r2, (r14, 0x0) + 56ae: 4b7d lsri r3, r3, 29 + 56b0: 3204 movi r2, 4 + 56b2: 3140 movi r1, 64 + 56b4: 3005 movi r0, 5 + 56b6: e0000523 bsr 0x60fc // 60fc + if(g_eeprom.backlight_en == 0x01) + 56ba: 106f lrw r3, 0x20000350 // 56f4 + 56bc: 8364 ld.b r3, (r3, 0x4) + 56be: 3b41 cmpnei r3, 1 + 56c0: 0804 bt 0x56c8 // 56c8 + Controlled_LCD_Backlight(1); + 56c2: 3001 movi r0, 1 + 56c4: e3fffb76 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 56c8: 9560 ld.w r3, (r5, 0x0) + 56ca: 4b48 lsri r2, r3, 8 + 56cc: a470 st.b r3, (r4, 0x10) + 56ce: a451 st.b r2, (r4, 0x11) + 56d0: 4b50 lsri r2, r3, 16 + 56d2: 4b78 lsri r3, r3, 24 + 56d4: a452 st.b r2, (r4, 0x12) + 56d6: a473 st.b r3, (r4, 0x13) +} + 56d8: 07be br 0x5654 // 5654 + 56da: 0000 bkpt + 56dc: 00007ec3 .long 0x00007ec3 + 56e0: 200003f3 .long 0x200003f3 + 56e4: 200000b8 .long 0x200000b8 + 56e8: 200003d4 .long 0x200003d4 + 56ec: 200003cc .long 0x200003cc + 56f0: 200005a0 .long 0x200005a0 + 56f4: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +000056f8 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 56f8: 14d2 push r4-r5, r15 + 56fa: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 56fc: 1139 lrw r1, 0x7ed6 // 57e0 + 56fe: 3000 movi r0, 0 + 5700: e3fff226 bsr 0x3b4c // 3b4c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5704: 1178 lrw r3, 0x200003f3 // 57e4 + 5706: 8340 ld.b r2, (r3, 0x0) + 5708: 3a41 cmpnei r2, 1 + 570a: 11b8 lrw r5, 0x200000b8 // 57e8 + 570c: 083e bt 0x5788 // 5788 + { + Debug_Inf.Tick = SysTick_1ms; + 570e: 9540 ld.w r2, (r5, 0x0) + 5710: 4a28 lsri r1, r2, 8 + 5712: a348 st.b r2, (r3, 0x8) + 5714: a329 st.b r1, (r3, 0x9) + 5716: 4a30 lsri r1, r2, 16 + 5718: 4a58 lsri r2, r2, 24 + 571a: a34b st.b r2, (r3, 0xb) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 571c: 8342 ld.b r2, (r3, 0x2) + 571e: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5720: a32a st.b r1, (r3, 0xa) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 5722: 080b bt 0x5738 // 5738 + 5724: 8324 ld.b r1, (r3, 0x4) + 5726: 3901 cmphsi r1, 2 + 5728: 0812 bt 0x574c // 574c + { + Debug_Inf.PipeFlag ++; + 572a: 2100 addi r1, 1 + 572c: 7444 zextb r1, r1 + 572e: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 5730: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr++; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5732: e3fffb63 bsr 0x4df8 // 4df8 + 5736: 040b br 0x574c // 574c + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 5738: 3a42 cmpnei r2, 2 + 573a: 080b bt 0x5750 // 5750 + 573c: 8305 ld.b r0, (r3, 0x5) + 573e: 3811 cmphsi r0, 18 + 5740: 0806 bt 0x574c // 574c + Debug_Inf.TempDiff++; + 5742: 2000 addi r0, 1 + 5744: 7400 zextb r0, r0 + 5746: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5748: e3fffba4 bsr 0x4e90 // 4e90 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 574c: 1401 addi r14, r14, 4 + 574e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 5750: 3a43 cmpnei r2, 3 + 5752: 0806 bt 0x575e // 575e + Debug_Inf.BackLight_En = 0x01; + 5754: 3201 movi r2, 1 + 5756: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5758: 3101 movi r1, 1 + 575a: 3003 movi r0, 3 + 575c: 07eb br 0x5732 // 5732 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 575e: 3a44 cmpnei r2, 4 + 5760: 0809 bt 0x5772 // 5772 + 5762: 8327 ld.b r1, (r3, 0x7) + 5764: 3901 cmphsi r1, 2 + 5766: 0bf3 bt 0x574c // 574c + Debug_Inf.KSens_Level++; + 5768: 2100 addi r1, 1 + 576a: 7444 zextb r1, r1 + 576c: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 576e: 3004 movi r0, 4 + 5770: 07e1 br 0x5732 // 5732 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //暂时无功能 + 5772: 3a45 cmpnei r2, 5 + 5774: 0bec bt 0x574c // 574c + 5776: 8323 ld.b r1, (r3, 0x3) + 5778: 32ff movi r2, 255 + 577a: 6486 cmpne r1, r2 + 577c: 0fe8 bf 0x574c // 574c + Debug_Inf.DevAddr++; //刷新地址 + 577e: 2100 addi r1, 1 + 5780: 7444 zextb r1, r1 + 5782: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 5784: 3005 movi r0, 5 + 5786: 07d6 br 0x5732 // 5732 + if(TempCtrl.CardState == CARDIN) + 5788: 1099 lrw r4, 0x200003d4 // 57ec + 578a: 8478 ld.b r3, (r4, 0x18) + 578c: 3b41 cmpnei r3, 1 + 578e: 081f bt 0x57cc // 57cc + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5790: 8462 ld.b r3, (r4, 0x2) + 5792: 74ce sextb r3, r3 + 5794: 3bdf btsti r3, 31 + 5796: 0c1b bf 0x57cc // 57cc + TemCtrl_Temperature_Add(); //设置温度+ + 5798: e3fffd50 bsr 0x5238 // 5238 + if (detect_inf.control_model != 0x00){ + 579c: 1075 lrw r3, 0x200003cc // 57f0 + 579e: 8363 ld.b r3, (r3, 0x3) + 57a0: 3b40 cmpnei r3, 0 + 57a2: 0c0e bf 0x57be // 57be + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 57a4: 1074 lrw r3, 0x200005a0 // 57f4 + 57a6: 8340 ld.b r2, (r3, 0x0) + 57a8: 3a41 cmpnei r2, 1 + 57aa: 080a bt 0x57be // 57be + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 57ac: 310a movi r1, 10 + 57ae: 8461 ld.b r3, (r4, 0x1) + 57b0: 7cc4 mult r3, r1 + 57b2: b840 st.w r2, (r14, 0x0) + 57b4: 3110 movi r1, 16 + 57b6: 3202 movi r2, 2 + 57b8: 3008 movi r0, 8 + 57ba: e00004a1 bsr 0x60fc // 60fc + if(g_eeprom.backlight_en == 0x01) + 57be: 106f lrw r3, 0x20000350 // 57f8 + 57c0: 8364 ld.b r3, (r3, 0x4) + 57c2: 3b41 cmpnei r3, 1 + 57c4: 0804 bt 0x57cc // 57cc + Controlled_LCD_Backlight(1); + 57c6: 3001 movi r0, 1 + 57c8: e3fffaf4 bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 57cc: 9560 ld.w r3, (r5, 0x0) + 57ce: 4b48 lsri r2, r3, 8 + 57d0: a470 st.b r3, (r4, 0x10) + 57d2: a451 st.b r2, (r4, 0x11) + 57d4: 4b50 lsri r2, r3, 16 + 57d6: 4b78 lsri r3, r3, 24 + 57d8: a452 st.b r2, (r4, 0x12) + 57da: a473 st.b r3, (r4, 0x13) +} + 57dc: 07b8 br 0x574c // 574c + 57de: 0000 bkpt + 57e0: 00007ed6 .long 0x00007ed6 + 57e4: 200003f3 .long 0x200003f3 + 57e8: 200000b8 .long 0x200000b8 + 57ec: 200003d4 .long 0x200003d4 + 57f0: 200003cc .long 0x200003cc + 57f4: 200005a0 .long 0x200005a0 + 57f8: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +000057fc : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 57fc: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 57fe: 1097 lrw r4, 0x200003f3 // 5858 + 5800: 8460 ld.b r3, (r4, 0x0) + 5802: 3b40 cmpnei r3, 0 + 5804: 0828 bt 0x5854 // 5854 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 5806: 8461 ld.b r3, (r4, 0x1) + 5808: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 580a: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 580c: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 580e: 0823 bt 0x5854 // 5854 + 5810: 1073 lrw r3, 0x200003d4 // 585c + 5812: 8362 ld.b r3, (r3, 0x2) + 5814: 74ce sextb r3, r3 + 5816: 3bdf btsti r3, 31 + 5818: 081e bt 0x5854 // 5854 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 581a: 1032 lrw r1, 0x7eed // 5860 + 581c: 3000 movi r0, 0 + 581e: e3fff197 bsr 0x3b4c // 3b4c + Debug_Inf.Tick = SysTick_1ms; + 5822: 1071 lrw r3, 0x200000b8 // 5864 + 5824: 9360 ld.w r3, (r3, 0x0) + 5826: 4b48 lsri r2, r3, 8 + 5828: a468 st.b r3, (r4, 0x8) + 582a: a449 st.b r2, (r4, 0x9) + 582c: 4b50 lsri r2, r3, 16 + 582e: 4b78 lsri r3, r3, 24 + 5830: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 5832: 3300 movi r3, 0 + 5834: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 5836: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 5838: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 583a: a460 st.b r3, (r4, 0x0) + HT1621_Clear(); + 583c: e3fff926 bsr 0x4a88 // 4a88 + Controlled_LCD_Backlight(0x01); + 5840: 3001 movi r0, 1 + 5842: e3fffab7 bsr 0x4db0 // 4db0 + Controlled_Buzzer(0x01); + 5846: 3001 movi r0, 1 + 5848: e3fffa90 bsr 0x4d68 // 4d68 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 584c: 8424 ld.b r1, (r4, 0x4) + 584e: 3001 movi r0, 1 + 5850: e3fffad4 bsr 0x4df8 // 4df8 + + } + } + +} + 5854: 1491 pop r4, r15 + 5856: 0000 bkpt + 5858: 200003f3 .long 0x200003f3 + 585c: 200003d4 .long 0x200003d4 + 5860: 00007eed .long 0x00007eed + 5864: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00005868 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 5868: 14d2 push r4-r5, r15 + 586a: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 586c: 1138 lrw r1, 0x7ef6 // 594c + 586e: 3000 movi r0, 0 + 5870: e3fff16e bsr 0x3b4c // 3b4c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5874: 1177 lrw r3, 0x200003f3 // 5950 + 5876: 8340 ld.b r2, (r3, 0x0) + 5878: 3a41 cmpnei r2, 1 + 587a: 11b7 lrw r5, 0x200000b8 // 5954 + 587c: 083d bt 0x58f6 // 58f6 + { + Debug_Inf.Tick = SysTick_1ms; + 587e: 9540 ld.w r2, (r5, 0x0) + 5880: 4a28 lsri r1, r2, 8 + 5882: a348 st.b r2, (r3, 0x8) + 5884: a329 st.b r1, (r3, 0x9) + 5886: 4a30 lsri r1, r2, 16 + 5888: 4a58 lsri r2, r2, 24 + 588a: a34b st.b r2, (r3, 0xb) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 588c: 8342 ld.b r2, (r3, 0x2) + 588e: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5890: a32a st.b r1, (r3, 0xa) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 5892: 080b bt 0x58a8 // 58a8 + 5894: 8324 ld.b r1, (r3, 0x4) + 5896: 3940 cmpnei r1, 0 + 5898: 0c12 bf 0x58bc // 58bc + { + Debug_Inf.PipeFlag --; + 589a: 2900 subi r1, 1 + 589c: 7444 zextb r1, r1 + 589e: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 58a0: 3001 movi r0, 1 + } + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + { +// Set_Device_ADDR(Debug_Inf.Page,0x00); + Debug_Inf.DevAddr--; //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 58a2: e3fffaab bsr 0x4df8 // 4df8 + 58a6: 040b br 0x58bc // 58bc + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 58a8: 3a42 cmpnei r2, 2 + 58aa: 080b bt 0x58c0 // 58c0 + 58ac: 8305 ld.b r0, (r3, 0x5) + 58ae: 3840 cmpnei r0, 0 + 58b0: 0c06 bf 0x58bc // 58bc + Debug_Inf.TempDiff--; + 58b2: 2800 subi r0, 1 + 58b4: 7400 zextb r0, r0 + 58b6: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 58b8: e3fffaec bsr 0x4e90 // 4e90 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 58bc: 1401 addi r14, r14, 4 + 58be: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 58c0: 3a43 cmpnei r2, 3 + 58c2: 0806 bt 0x58ce // 58ce + Debug_Inf.BackLight_En = 0x00; + 58c4: 3200 movi r2, 0 + 58c6: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 58c8: 3100 movi r1, 0 + 58ca: 3003 movi r0, 3 + 58cc: 07eb br 0x58a2 // 58a2 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 58ce: 3a44 cmpnei r2, 4 + 58d0: 0809 bt 0x58e2 // 58e2 + 58d2: 8327 ld.b r1, (r3, 0x7) + 58d4: 3940 cmpnei r1, 0 + 58d6: 0ff3 bf 0x58bc // 58bc + Debug_Inf.KSens_Level--; + 58d8: 2900 subi r1, 1 + 58da: 7444 zextb r1, r1 + 58dc: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 58de: 3004 movi r0, 4 + 58e0: 07e1 br 0x58a2 // 58a2 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //暂时无功能 + 58e2: 3a45 cmpnei r2, 5 + 58e4: 0bec bt 0x58bc // 58bc + 58e6: 8323 ld.b r1, (r3, 0x3) + 58e8: 3940 cmpnei r1, 0 + 58ea: 0fe9 bf 0x58bc // 58bc + Debug_Inf.DevAddr--; //刷新地址 + 58ec: 2900 subi r1, 1 + 58ee: 7444 zextb r1, r1 + 58f0: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 58f2: 3005 movi r0, 5 + 58f4: 07d7 br 0x58a2 // 58a2 + if(TempCtrl.CardState == CARDIN) + 58f6: 1099 lrw r4, 0x200003d4 // 5958 + 58f8: 8478 ld.b r3, (r4, 0x18) + 58fa: 3b41 cmpnei r3, 1 + 58fc: 081f bt 0x593a // 593a + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 58fe: 8462 ld.b r3, (r4, 0x2) + 5900: 74ce sextb r3, r3 + 5902: 3bdf btsti r3, 31 + 5904: 0c1b bf 0x593a // 593a + TemCtrl_Temperature_Dec(); //设置温度- + 5906: e3fffc81 bsr 0x5208 // 5208 + if (detect_inf.control_model != 0x00){ + 590a: 1075 lrw r3, 0x200003cc // 595c + 590c: 8363 ld.b r3, (r3, 0x3) + 590e: 3b40 cmpnei r3, 0 + 5910: 0c0e bf 0x592c // 592c + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5912: 1074 lrw r3, 0x200005a0 // 5960 + 5914: 8340 ld.b r2, (r3, 0x0) + 5916: 3a41 cmpnei r2, 1 + 5918: 080a bt 0x592c // 592c + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 591a: 310a movi r1, 10 + 591c: 8461 ld.b r3, (r4, 0x1) + 591e: 7cc4 mult r3, r1 + 5920: b840 st.w r2, (r14, 0x0) + 5922: 3110 movi r1, 16 + 5924: 3202 movi r2, 2 + 5926: 3008 movi r0, 8 + 5928: e00003ea bsr 0x60fc // 60fc + if(g_eeprom.backlight_en == 0x01) + 592c: 106e lrw r3, 0x20000350 // 5964 + 592e: 8364 ld.b r3, (r3, 0x4) + 5930: 3b41 cmpnei r3, 1 + 5932: 0804 bt 0x593a // 593a + Controlled_LCD_Backlight(1); + 5934: 3001 movi r0, 1 + 5936: e3fffa3d bsr 0x4db0 // 4db0 + TempCtrl.BackLightTick = SysTick_1ms; + 593a: 9560 ld.w r3, (r5, 0x0) + 593c: 4b48 lsri r2, r3, 8 + 593e: a470 st.b r3, (r4, 0x10) + 5940: a451 st.b r2, (r4, 0x11) + 5942: 4b50 lsri r2, r3, 16 + 5944: 4b78 lsri r3, r3, 24 + 5946: a452 st.b r2, (r4, 0x12) + 5948: a473 st.b r3, (r4, 0x13) +} + 594a: 07b9 br 0x58bc // 58bc + 594c: 00007ef6 .long 0x00007ef6 + 5950: 200003f3 .long 0x200003f3 + 5954: 200000b8 .long 0x200000b8 + 5958: 200003d4 .long 0x200003d4 + 595c: 200003cc .long 0x200003cc + 5960: 200005a0 .long 0x200005a0 + 5964: 20000350 .long 0x20000350 + +Disassembly of section .text.KEY4_Long_Press: + +00005968 : + +void KEY4_Long_Press(void) +{ + 5968: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 596a: 1097 lrw r4, 0x200003f3 // 59c4 + 596c: 8460 ld.b r3, (r4, 0x0) + 596e: 3b40 cmpnei r3, 0 + 5970: 0828 bt 0x59c0 // 59c0 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 5972: 8461 ld.b r3, (r4, 0x1) + 5974: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5976: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 5978: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 597a: 0823 bt 0x59c0 // 59c0 + 597c: 1073 lrw r3, 0x200003d4 // 59c8 + 597e: 8362 ld.b r3, (r3, 0x2) + 5980: 74ce sextb r3, r3 + 5982: 3bdf btsti r3, 31 + 5984: 081e bt 0x59c0 // 59c0 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 5986: 1032 lrw r1, 0x7eed // 59cc + 5988: 3000 movi r0, 0 + 598a: e3fff0e1 bsr 0x3b4c // 3b4c + Debug_Inf.Tick = SysTick_1ms; + 598e: 1071 lrw r3, 0x200000b8 // 59d0 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Controlled_LCD_Backlight(0x01); + 5990: 3001 movi r0, 1 + Debug_Inf.Tick = SysTick_1ms; + 5992: 9360 ld.w r3, (r3, 0x0) + 5994: 4b48 lsri r2, r3, 8 + 5996: a468 st.b r3, (r4, 0x8) + 5998: a449 st.b r2, (r4, 0x9) + 599a: 4b50 lsri r2, r3, 16 + 599c: 4b78 lsri r3, r3, 24 + 599e: a46b st.b r3, (r4, 0xb) + Debug_Inf.Press_Flag = 0x00; + 59a0: 3300 movi r3, 0 + 59a2: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 59a4: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 59a6: a44a st.b r2, (r4, 0xa) + Debug_Inf.State = 0x01; + 59a8: a460 st.b r3, (r4, 0x0) + Controlled_LCD_Backlight(0x01); + 59aa: e3fffa03 bsr 0x4db0 // 4db0 + HT1621_Clear(); + 59ae: e3fff86d bsr 0x4a88 // 4a88 + Controlled_Buzzer(0x01); + 59b2: 3001 movi r0, 1 + 59b4: e3fff9da bsr 0x4d68 // 4d68 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 59b8: 8424 ld.b r1, (r4, 0x4) + 59ba: 3001 movi r0, 1 + 59bc: e3fffa1e bsr 0x4df8 // 4df8 + + } + } +} + 59c0: 1491 pop r4, r15 + 59c2: 0000 bkpt + 59c4: 200003f3 .long 0x200003f3 + 59c8: 200003d4 .long 0x200003d4 + 59cc: 00007eed .long 0x00007eed + 59d0: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +000059d4 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 59d4: 14d1 push r4, r15 + 59d6: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 59d8: 1122 lrw r1, 0x7f0d // 5a60 + 59da: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 59dc: 1182 lrw r4, 0x200003f3 // 5a64 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 59de: e3fff0b7 bsr 0x3b4c // 3b4c + if(Debug_Inf.State == 0x00) //正常模式 + 59e2: 8460 ld.b r3, (r4, 0x0) + 59e4: 3b40 cmpnei r3, 0 + 59e6: 082b bt 0x5a3c // 5a3c + { + if(TempCtrl.CardState == CARDIN) + 59e8: 1180 lrw r4, 0x200003d4 // 5a68 + 59ea: 8478 ld.b r3, (r4, 0x18) + 59ec: 3b41 cmpnei r3, 1 + 59ee: 081d bt 0x5a28 // 5a28 + { + TemCtrl_OnOff_Set(); + 59f0: e3fffc3c bsr 0x5268 // 5268 + + if (detect_inf.control_model != 0x00){ + 59f4: 107e lrw r3, 0x200003cc // 5a6c + 59f6: 8363 ld.b r3, (r3, 0x3) + 59f8: 3b40 cmpnei r3, 0 + 59fa: 0c0c bf 0x5a12 // 5a12 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 59fc: 107d lrw r3, 0x200005a0 // 5a70 + 59fe: 8340 ld.b r2, (r3, 0x0) + 5a00: 3a41 cmpnei r2, 1 + 5a02: 0808 bt 0x5a12 // 5a12 + { + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,ACTIVE); + 5a04: 8462 ld.b r3, (r4, 0x2) + 5a06: 4b67 lsri r3, r3, 7 + 5a08: b840 st.w r2, (r14, 0x0) + 5a0a: 3101 movi r1, 1 + 5a0c: 3005 movi r0, 5 + 5a0e: e0000377 bsr 0x60fc // 60fc + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 5a12: 1079 lrw r3, 0x200000b8 // 5a74 + 5a14: 9360 ld.w r3, (r3, 0x0) + 5a16: 4b48 lsri r2, r3, 8 + 5a18: a470 st.b r3, (r4, 0x10) + 5a1a: a451 st.b r2, (r4, 0x11) + 5a1c: 4b50 lsri r2, r3, 16 + 5a1e: 4b78 lsri r3, r3, 24 + 5a20: a452 st.b r2, (r4, 0x12) + 5a22: a473 st.b r3, (r4, 0x13) + //关背光 + Controlled_LCD_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 5a24: 1401 addi r14, r14, 4 + 5a26: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 5a28: 3001 movi r0, 1 + 5a2a: e0000029 bsr 0x5a7c // 5a7c + Controlled_LCD_Backlight(1); + 5a2e: 3001 movi r0, 1 + 5a30: e3fff9c0 bsr 0x4db0 // 4db0 + Controlled_Key_Backlight(1); + 5a34: 3001 movi r0, 1 + 5a36: e3fff9cf bsr 0x4dd4 // 4dd4 + 5a3a: 07ec br 0x5a12 // 5a12 + else if(Debug_Inf.State == 0x01) //设置模式 + 5a3c: 3b41 cmpnei r3, 1 + 5a3e: 0bf3 bt 0x5a24 // 5a24 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 5a40: 102e lrw r1, 0x7f22 // 5a78 + 5a42: 3000 movi r0, 0 + 5a44: e3fff084 bsr 0x3b4c // 3b4c + Debug_Inf.State = 0x00; + 5a48: 3300 movi r3, 0 + 5a4a: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 5a4c: 3301 movi r3, 1 + 5a4e: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 5a50: e3fff81c bsr 0x4a88 // 4a88 + Controlled_LCD_Backlight(0x00); + 5a54: 3000 movi r0, 0 + 5a56: e3fff9ad bsr 0x4db0 // 4db0 + Dev_SaveData(); + 5a5a: e00001ed bsr 0x5e34 // 5e34 +} + 5a5e: 07e3 br 0x5a24 // 5a24 + 5a60: 00007f0d .long 0x00007f0d + 5a64: 200003f3 .long 0x200003f3 + 5a68: 200003d4 .long 0x200003d4 + 5a6c: 200003cc .long 0x200003cc + 5a70: 200005a0 .long 0x200005a0 + 5a74: 200000b8 .long 0x200000b8 + 5a78: 00007f22 .long 0x00007f22 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00005a7c : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 5a7c: 14d1 push r4, r15 + if(state == TEMP_ON) + 5a7e: 3841 cmpnei r0, 1 + 5a80: 081f bt 0x5abe // 5abe + { + Control_Prompt_Text(1); + Control_Mode(TempCtrl.TemState_Now.mode); + 5a82: 1091 lrw r4, 0x200003d4 // 5ac4 + Control_Prompt_Text(1); + 5a84: e3fff950 bsr 0x4d24 // 4d24 + Control_Mode(TempCtrl.TemState_Now.mode); + 5a88: 8402 ld.b r0, (r4, 0x2) + 5a8a: 4019 lsli r0, r0, 25 + 5a8c: 481d lsri r0, r0, 29 + 5a8e: e3fff8ef bsr 0x4c6c // 4c6c + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5a92: 8402 ld.b r0, (r4, 0x2) + 5a94: 401c lsli r0, r0, 28 + 5a96: 481d lsri r0, r0, 29 + 5a98: e3fff90e bsr 0x4cb4 // 4cb4 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5a9c: 8401 ld.b r0, (r4, 0x1) + 5a9e: 3840 cmpnei r0, 0 + 5aa0: 0c0c bf 0x5ab8 // 5ab8 + 5aa2: 330a movi r3, 10 + 5aa4: 7c0c mult r0, r3 + 5aa6: e3fff85f bsr 0x4b64 // 4b64 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 5aaa: 8400 ld.b r0, (r4, 0x0) + 5aac: 330a movi r3, 10 + 5aae: 7c0c mult r0, r3 + 5ab0: 7401 zexth r0, r0 + 5ab2: e3fff89d bsr 0x4bec // 4bec + } + else + { + HT1621_Clear(); + } +} + 5ab6: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5ab8: 30a0 movi r0, 160 + 5aba: 4001 lsli r0, r0, 1 + 5abc: 07f5 br 0x5aa6 // 5aa6 + HT1621_Clear(); + 5abe: e3fff7e5 bsr 0x4a88 // 4a88 +} + 5ac2: 07fa br 0x5ab6 // 5ab6 + 5ac4: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Init: + +00005ac8 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 5ac8: 14d0 push r15 + HT1621_ALLON(); + 5aca: e3fff807 bsr 0x4ad8 // 4ad8 + + delay_nms(5000); + 5ace: 1005 lrw r0, 0x1388 // 5ae0 + 5ad0: e3ffe8f8 bsr 0x2cc0 // 2cc0 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5ad4: 1064 lrw r3, 0x200003d4 // 5ae4 + 5ad6: 8302 ld.b r0, (r3, 0x2) + 5ad8: 4807 lsri r0, r0, 7 + 5ada: e3ffffd1 bsr 0x5a7c // 5a7c + +} + 5ade: 1490 pop r15 + 5ae0: 00001388 .long 0x00001388 + 5ae4: 200003d4 .long 0x200003d4 + +Disassembly of section .text.DisPlay_Task: + +00005ae8 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 5ae8: 14d3 push r4-r6, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 5aea: 0265 lrw r3, 0x200003f3 // 5dd0 + 5aec: 8360 ld.b r3, (r3, 0x0) + 5aee: 3b40 cmpnei r3, 0 + 5af0: 0923 bt 0x5d36 // 5d36 + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 5af2: 0286 lrw r4, 0x200003d4 // 5dd4 + 5af4: 8451 ld.b r2, (r4, 0x11) + 5af6: 8470 ld.b r3, (r4, 0x10) + 5af8: 4248 lsli r2, r2, 8 + 5afa: 6c8c or r2, r3 + 5afc: 8472 ld.b r3, (r4, 0x12) + 5afe: 4370 lsli r3, r3, 16 + 5b00: 6c8c or r2, r3 + 5b02: 8473 ld.b r3, (r4, 0x13) + 5b04: 02aa lrw r5, 0x200000b8 // 5dd8 + 5b06: 4378 lsli r3, r3, 24 + 5b08: 6cc8 or r3, r2 + 5b0a: 9520 ld.w r1, (r5, 0x0) + 5b0c: 604e subu r1, r3 + 5b0e: 024b lrw r2, 0xbb8 // 5ddc + 5b10: 6448 cmphs r2, r1 + 5b12: 0913 bt 0x5d38 // 5d38 + 5b14: 8458 ld.b r2, (r4, 0x18) + 5b16: 3a40 cmpnei r2, 0 + 5b18: 0910 bt 0x5d38 // 5d38 + { + TempCtrl.BackLightTick = SysTick_1ms; + 5b1a: 9560 ld.w r3, (r5, 0x0) + 5b1c: 4b48 lsri r2, r3, 8 + 5b1e: a470 st.b r3, (r4, 0x10) + 5b20: a451 st.b r2, (r4, 0x11) + 5b22: 4b50 lsri r2, r3, 16 + 5b24: 4b78 lsri r3, r3, 24 + 5b26: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 5b28: 3300 movi r3, 0 + 5b2a: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5b2c: 8462 ld.b r3, (r4, 0x2) + 5b2e: 74ce sextb r3, r3 + 5b30: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5b32: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 5b34: 0803 bt 0x5b3a // 5b3a + { + HT1621_Clear(); + 5b36: e3fff7a9 bsr 0x4a88 // 4a88 + } + //关背光 + Controlled_LCD_Backlight(0); + 5b3a: 3000 movi r0, 0 + 5b3c: e3fff93a bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 5b40: 0237 lrw r1, 0x7f2c // 5de0 + { + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5b42: 3000 movi r0, 0 + 5b44: e3fff004 bsr 0x3b4c // 3b4c + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 5b48: 8455 ld.b r2, (r4, 0x15) + 5b4a: 8474 ld.b r3, (r4, 0x14) + 5b4c: 4248 lsli r2, r2, 8 + 5b4e: 6c8c or r2, r3 + 5b50: 8476 ld.b r3, (r4, 0x16) + 5b52: 4370 lsli r3, r3, 16 + 5b54: 6c8c or r2, r3 + 5b56: 8477 ld.b r3, (r4, 0x17) + 5b58: 4378 lsli r3, r3, 24 + 5b5a: 6cc8 or r3, r2 + 5b5c: 9520 ld.w r1, (r5, 0x0) + 5b5e: 604e subu r1, r3 + 5b60: 33fa movi r3, 250 + 5b62: 4362 lsli r3, r3, 2 + 5b64: 644c cmphs r3, r1 + 5b66: 0818 bt 0x5b96 // 5b96 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 5b68: 9560 ld.w r3, (r5, 0x0) + 5b6a: 4b48 lsri r2, r3, 8 + 5b6c: a474 st.b r3, (r4, 0x14) + 5b6e: a455 st.b r2, (r4, 0x15) + 5b70: 4b50 lsri r2, r3, 16 + 5b72: 4b78 lsri r3, r3, 24 + 5b74: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5b76: 847b ld.b r3, (r4, 0x1b) + 5b78: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 5b7a: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 5b7c: 0903 bt 0x5d82 // 5d82 + 5b7e: 847c ld.b r3, (r4, 0x1c) + 5b80: 3b41 cmpnei r3, 1 + 5b82: 0900 bt 0x5d82 // 5d82 + { + TempCtrl.SceneFlag = 0x00; + 5b84: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 5b86: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 5b88: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 5b8a: e3fff913 bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 5b8e: 0329 lrw r1, 0x7f4e // 5de4 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5b90: 3000 movi r0, 0 + 5b92: e3ffefdd bsr 0x3b4c // 3b4c + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 5b96: 03ca lrw r6, 0x20000350 // 5de8 + 5b98: 8664 ld.b r3, (r6, 0x4) + 5b9a: 3b41 cmpnei r3, 1 + 5b9c: 081b bt 0x5bd2 // 5bd2 + 5b9e: 8451 ld.b r2, (r4, 0x11) + 5ba0: 8470 ld.b r3, (r4, 0x10) + 5ba2: 4248 lsli r2, r2, 8 + 5ba4: 6c8c or r2, r3 + 5ba6: 8472 ld.b r3, (r4, 0x12) + 5ba8: 4370 lsli r3, r3, 16 + 5baa: 6c8c or r2, r3 + 5bac: 8473 ld.b r3, (r4, 0x13) + 5bae: 4378 lsli r3, r3, 24 + 5bb0: 6cc8 or r3, r2 + 5bb2: 9520 ld.w r1, (r5, 0x0) + 5bb4: 604e subu r1, r3 + 5bb6: 0371 lrw r3, 0x1388 // 5dec + 5bb8: 644c cmphs r3, r1 + 5bba: 080c bt 0x5bd2 // 5bd2 + { + TempCtrl.BackLightTick = SysTick_1ms; + 5bbc: 9560 ld.w r3, (r5, 0x0) + 5bbe: 4b48 lsri r2, r3, 8 + 5bc0: a470 st.b r3, (r4, 0x10) + 5bc2: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 5bc4: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5bc6: 4b50 lsri r2, r3, 16 + 5bc8: 4b78 lsri r3, r3, 24 + 5bca: a452 st.b r2, (r4, 0x12) + 5bcc: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 5bce: e3fff8f1 bsr 0x4db0 // 4db0 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5bd2: 8402 ld.b r0, (r4, 0x2) + 5bd4: 74c2 sextb r3, r0 + 5bd6: 3bdf btsti r3, 31 + 5bd8: 0c92 bf 0x5cfc // 5cfc + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 5bda: 8466 ld.b r3, (r4, 0x6) + 5bdc: 4019 lsli r0, r0, 25 + 5bde: 4359 lsli r2, r3, 25 + 5be0: 481d lsri r0, r0, 29 + 5be2: 4a5d lsri r2, r2, 29 + 5be4: 640a cmpne r2, r0 + 5be6: 0c17 bf 0x5c14 // 5c14 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 5be8: 3170 movi r1, 112 + 5bea: 4044 lsli r2, r0, 4 + 5bec: 68c5 andn r3, r1 + 5bee: 6cc8 or r3, r2 + 5bf0: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 5bf2: e3fff83d bsr 0x4c6c // 4c6c + + SYSCON->UREG0 &= 0xFFFF00FF; + 5bf6: 137f lrw r3, 0x2000005c // 5df0 + 5bf8: 31ff movi r1, 255 + 5bfa: 9340 ld.w r2, (r3, 0x0) + 5bfc: 22ff addi r2, 256 + 5bfe: 9260 ld.w r3, (r2, 0x0) + 5c00: 4128 lsli r1, r1, 8 + 5c02: 68c5 andn r3, r1 + 5c04: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 5c06: 8462 ld.b r3, (r4, 0x2) + 5c08: 4379 lsli r3, r3, 25 + 5c0a: 4b7d lsri r3, r3, 29 + 5c0c: 9220 ld.w r1, (r2, 0x0) + 5c0e: 4368 lsli r3, r3, 8 + 5c10: 6cc4 or r3, r1 + 5c12: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 5c14: 8402 ld.b r0, (r4, 0x2) + 5c16: 8466 ld.b r3, (r4, 0x6) + 5c18: 401c lsli r0, r0, 28 + 5c1a: 435c lsli r2, r3, 28 + 5c1c: 481d lsri r0, r0, 29 + 5c1e: 4a5d lsri r2, r2, 29 + 5c20: 640a cmpne r2, r0 + 5c22: 0c22 bf 0x5c66 // 5c66 + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 5c24: 310e movi r1, 14 + 5c26: 4041 lsli r2, r0, 1 + 5c28: 68c5 andn r3, r1 + 5c2a: 6cc8 or r3, r2 + 5c2c: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5c2e: e3fff843 bsr 0x4cb4 // 4cb4 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 5c32: 3270 movi r2, 112 + 5c34: 8462 ld.b r3, (r4, 0x2) + 5c36: 68c8 and r3, r2 + 5c38: 3240 movi r2, 64 + 5c3a: 648e cmpne r3, r2 + 5c3c: 08b4 bt 0x5da4 // 5da4 + 5c3e: 8661 ld.b r3, (r6, 0x1) + 5c40: 3b42 cmpnei r3, 2 + 5c42: 08b1 bt 0x5da4 // 5da4 + { + Relay_Stop(); + 5c44: e0000480 bsr 0x6544 // 6544 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 5c48: 136a lrw r3, 0x2000005c // 5df0 + 5c4a: 31ff movi r1, 255 + 5c4c: 9340 ld.w r2, (r3, 0x0) + 5c4e: 22ff addi r2, 256 + 5c50: 9260 ld.w r3, (r2, 0x0) + 5c52: 4130 lsli r1, r1, 16 + 5c54: 68c5 andn r3, r1 + 5c56: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5c58: 8462 ld.b r3, (r4, 0x2) + 5c5a: 437c lsli r3, r3, 28 + 5c5c: 4b7d lsri r3, r3, 29 + 5c5e: 9220 ld.w r1, (r2, 0x0) + 5c60: 4370 lsli r3, r3, 16 + 5c62: 6cc4 or r3, r1 + 5c64: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 5c66: 8401 ld.b r0, (r4, 0x1) + 5c68: 8465 ld.b r3, (r4, 0x5) + 5c6a: 640e cmpne r3, r0 + 5c6c: 0c14 bf 0x5c94 // 5c94 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 5c6e: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 5c70: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 5c72: 08ab bt 0x5dc8 // 5dc8 + { + Set_Temperature_Display(320); + 5c74: 30a0 movi r0, 160 + 5c76: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5c78: e3fff776 bsr 0x4b64 // 4b64 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 5c7c: 127d lrw r3, 0x2000005c // 5df0 + 5c7e: 9340 ld.w r2, (r3, 0x0) + 5c80: 22ff addi r2, 256 + 5c82: 9260 ld.w r3, (r2, 0x0) + 5c84: 4368 lsli r3, r3, 8 + 5c86: 4b68 lsri r3, r3, 8 + 5c88: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5c8a: 8461 ld.b r3, (r4, 0x1) + 5c8c: 9220 ld.w r1, (r2, 0x0) + 5c8e: 4378 lsli r3, r3, 24 + 5c90: 6cc4 or r3, r1 + 5c92: b260 st.w r3, (r2, 0x0) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 5c94: 8409 ld.b r0, (r4, 0x9) + 5c96: 8468 ld.b r3, (r4, 0x8) + 5c98: 4008 lsli r0, r0, 8 + 5c9a: 6c0c or r0, r3 + 5c9c: 846b ld.b r3, (r4, 0xb) + 5c9e: 844a ld.b r2, (r4, 0xa) + 5ca0: 4368 lsli r3, r3, 8 + 5ca2: 6cc8 or r3, r2 + 5ca4: 640e cmpne r3, r0 + 5ca6: 0c12 bf 0x5cca // 5cca + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 5ca8: 4868 lsri r3, r0, 8 + 5caa: a46b st.b r3, (r4, 0xb) + 5cac: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 5cae: e3fff79f bsr 0x4bec // 4bec + + SYSCON->UREG0 &= 0x00FFFFFF; + 5cb2: 1270 lrw r3, 0x2000005c // 5df0 + 5cb4: 9340 ld.w r2, (r3, 0x0) + 5cb6: 22ff addi r2, 256 + 5cb8: 9260 ld.w r3, (r2, 0x0) + 5cba: 4368 lsli r3, r3, 8 + 5cbc: 4b68 lsri r3, r3, 8 + 5cbe: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 5cc0: 8461 ld.b r3, (r4, 0x1) + 5cc2: 9220 ld.w r1, (r2, 0x0) + 5cc4: 4378 lsli r3, r3, 24 + 5cc6: 6cc4 or r3, r1 + 5cc8: b260 st.w r3, (r2, 0x0) + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 5cca: 844f ld.b r2, (r4, 0xf) + 5ccc: 846e ld.b r3, (r4, 0xe) + 5cce: 4248 lsli r2, r2, 8 + 5cd0: 6c8c or r2, r3 + 5cd2: 846d ld.b r3, (r4, 0xd) + 5cd4: 842c ld.b r1, (r4, 0xc) + 5cd6: 4368 lsli r3, r3, 8 + 5cd8: 6cc4 or r3, r1 + 5cda: 648c cmphs r3, r2 + 5cdc: 0804 bt 0x5ce4 // 5ce4 + 5cde: 5a2d subu r1, r2, r3 + 5ce0: 3925 cmplti r1, 6 + 5ce2: 0c06 bf 0x5cee // 5cee + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 5ce4: 64c8 cmphs r2, r3 + 5ce6: 080b bt 0x5cfc // 5cfc + 5ce8: 5b49 subu r2, r3, r2 + 5cea: 3a25 cmplti r2, 6 + 5cec: 0808 bt 0x5cfc // 5cfc + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + rf_info.roomc_flag = 0x01; + 5cee: 1242 lrw r2, 0x200005a0 // 5df4 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 5cf0: a46e st.b r3, (r4, 0xe) + 5cf2: 4b68 lsri r3, r3, 8 + 5cf4: a46f st.b r3, (r4, 0xf) + rf_info.roomc_flag = 0x01; + 5cf6: 8261 ld.b r3, (r2, 0x1) + 5cf8: 3ba5 bseti r3, 5 + 5cfa: a261 st.b r3, (r2, 0x1) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 5cfc: 8402 ld.b r0, (r4, 0x2) + 5cfe: 8466 ld.b r3, (r4, 0x6) + 5d00: 4807 lsri r0, r0, 7 + 5d02: 4b47 lsri r2, r3, 7 + 5d04: 640a cmpne r2, r0 + 5d06: 0c18 bf 0x5d36 // 5d36 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 5d08: 317f movi r1, 127 + 5d0a: 4047 lsli r2, r0, 7 + 5d0c: 68c4 and r3, r1 + 5d0e: 6cc8 or r3, r2 + 5d10: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5d12: e3fff84f bsr 0x4db0 // 4db0 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5d16: 8402 ld.b r0, (r4, 0x2) + 5d18: 4807 lsri r0, r0, 7 + 5d1a: e3fffeb1 bsr 0x5a7c // 5a7c + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 5d1e: 1175 lrw r3, 0x2000005c // 5df0 + 5d20: 31ff movi r1, 255 + 5d22: 9340 ld.w r2, (r3, 0x0) + 5d24: 22ff addi r2, 256 + 5d26: 9260 ld.w r3, (r2, 0x0) + 5d28: 68c5 andn r3, r1 + 5d2a: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5d2c: 8462 ld.b r3, (r4, 0x2) + 5d2e: 9220 ld.w r1, (r2, 0x0) + 5d30: 4b67 lsri r3, r3, 7 + 5d32: 6cc4 or r3, r1 + 5d34: b260 st.w r3, (r2, 0x0) + } + } +} + 5d36: 1493 pop r4-r6, r15 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 5d38: 9540 ld.w r2, (r5, 0x0) + 5d3a: 608e subu r2, r3 + 5d3c: 33fa movi r3, 250 + 5d3e: 4363 lsli r3, r3, 3 + 5d40: 648c cmphs r3, r2 + 5d42: 0b03 bt 0x5b48 // 5b48 + 5d44: 8478 ld.b r3, (r4, 0x18) + 5d46: 3b41 cmpnei r3, 1 + 5d48: 0b00 bt 0x5b48 // 5b48 + 5d4a: 8479 ld.b r3, (r4, 0x19) + 5d4c: 3b41 cmpnei r3, 1 + 5d4e: 0afd bt 0x5b48 // 5b48 + TempCtrl.BackLightTick = SysTick_1ms; + 5d50: 9560 ld.w r3, (r5, 0x0) + 5d52: 4b48 lsri r2, r3, 8 + 5d54: a470 st.b r3, (r4, 0x10) + 5d56: a451 st.b r2, (r4, 0x11) + 5d58: 4b50 lsri r2, r3, 16 + 5d5a: 4b78 lsri r3, r3, 24 + 5d5c: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5d5e: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 5d60: 3300 movi r3, 0 + 5d62: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5d64: 74c2 sextb r3, r0 + 5d66: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 5d68: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5d6a: 0eef bf 0x5b48 // 5b48 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5d6c: 4807 lsri r0, r0, 7 + 5d6e: e3fffe87 bsr 0x5a7c // 5a7c + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 5d72: 847b ld.b r3, (r4, 0x1b) + 5d74: 3b44 cmpnei r3, 4 + 5d76: 0ee9 bf 0x5b48 // 5b48 + Controlled_LCD_Backlight(1); + 5d78: 3001 movi r0, 1 + 5d7a: e3fff81b bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 5d7e: 103f lrw r1, 0x7f3e // 5df8 + 5d80: 06e1 br 0x5b42 // 5b42 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 5d82: 8462 ld.b r3, (r4, 0x2) + 5d84: 74ce sextb r3, r3 + 5d86: 3bdf btsti r3, 31 + 5d88: 0f07 bf 0x5b96 // 5b96 + 5d8a: 8478 ld.b r3, (r4, 0x18) + 5d8c: 3b41 cmpnei r3, 1 + 5d8e: 0b04 bt 0x5b96 // 5b96 + 5d90: 847c ld.b r3, (r4, 0x1c) + 5d92: 3b41 cmpnei r3, 1 + 5d94: 0b01 bt 0x5b96 // 5b96 + TempCtrl.SceneFlag = 0x00; + 5d96: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 5d98: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 5d9a: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 5d9c: e3fff80a bsr 0x4db0 // 4db0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 5da0: 1037 lrw r1, 0x7f5e // 5dfc + 5da2: 06f7 br 0x5b90 // 5b90 + switch(TempCtrl.TemState_Now.fan) + 5da4: 8462 ld.b r3, (r4, 0x2) + 5da6: 437c lsli r3, r3, 28 + 5da8: 4b7d lsri r3, r3, 29 + 5daa: 3b42 cmpnei r3, 2 + 5dac: 0c08 bf 0x5dbc // 5dbc + 5dae: 3b43 cmpnei r3, 3 + 5db0: 0c09 bf 0x5dc2 // 5dc2 + 5db2: 3b41 cmpnei r3, 1 + 5db4: 0b4a bt 0x5c48 // 5c48 + Relay_Low(); + 5db6: e00003b5 bsr 0x6520 // 6520 + break; + 5dba: 0747 br 0x5c48 // 5c48 + Relay_Mid(); + 5dbc: e00003a0 bsr 0x64fc // 64fc + break; + 5dc0: 0744 br 0x5c48 // 5c48 + Relay_High(); + 5dc2: e000038b bsr 0x64d8 // 64d8 + break; + 5dc6: 0741 br 0x5c48 // 5c48 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 5dc8: 330a movi r3, 10 + 5dca: 7c0c mult r0, r3 + 5dcc: 0756 br 0x5c78 // 5c78 + 5dce: 0000 bkpt + 5dd0: 200003f3 .long 0x200003f3 + 5dd4: 200003d4 .long 0x200003d4 + 5dd8: 200000b8 .long 0x200000b8 + 5ddc: 00000bb8 .long 0x00000bb8 + 5de0: 00007f2c .long 0x00007f2c + 5de4: 00007f4e .long 0x00007f4e + 5de8: 20000350 .long 0x20000350 + 5dec: 00001388 .long 0x00001388 + 5df0: 2000005c .long 0x2000005c + 5df4: 200005a0 .long 0x200005a0 + 5df8: 00007f3e .long 0x00007f3e + 5dfc: 00007f5e .long 0x00007f5e + +Disassembly of section .text.Debug_Init: + +00005e00 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 5e00: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 5e02: 108b lrw r4, 0x200003f3 // 5e2c + 5e04: 320c movi r2, 12 + 5e06: 3100 movi r1, 0 + 5e08: 6c13 mov r0, r4 + 5e0a: e3ffddad bsr 0x1964 // 1964 <__memset_fast> + Debug_Inf.Page = 0x01; + 5e0e: 3301 movi r3, 1 + 5e10: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 5e12: 1068 lrw r3, 0x20000350 // 5e30 + 5e14: 8340 ld.b r2, (r3, 0x0) + 5e16: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 5e18: 8341 ld.b r2, (r3, 0x1) + 5e1a: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 5e1c: 8342 ld.b r2, (r3, 0x2) + 5e1e: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5e20: 8344 ld.b r2, (r3, 0x4) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5e22: 8365 ld.b r3, (r3, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5e24: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 5e26: a467 st.b r3, (r4, 0x7) +} + 5e28: 1491 pop r4, r15 + 5e2a: 0000 bkpt + 5e2c: 200003f3 .long 0x200003f3 + 5e30: 20000350 .long 0x20000350 + +Disassembly of section .text.Dev_SaveData: + +00005e34 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 5e34: 14d1 push r4, r15 + 5e36: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 5e38: 1078 lrw r3, 0x200003f3 // 5e98 + 5e3a: 1099 lrw r4, 0x20000350 // 5e9c + 5e3c: 8343 ld.b r2, (r3, 0x3) + 5e3e: 8420 ld.b r1, (r4, 0x0) + 5e40: 6486 cmpne r1, r2 + 5e42: 0811 bt 0x5e64 // 5e64 + 5e44: 8304 ld.b r0, (r3, 0x4) + 5e46: 8421 ld.b r1, (r4, 0x1) + 5e48: 6442 cmpne r0, r1 + 5e4a: 080d bt 0x5e64 // 5e64 + 5e4c: 8305 ld.b r0, (r3, 0x5) + 5e4e: 8422 ld.b r1, (r4, 0x2) + 5e50: 6442 cmpne r0, r1 + 5e52: 0809 bt 0x5e64 // 5e64 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level) + 5e54: 8306 ld.b r0, (r3, 0x6) + 5e56: 8424 ld.b r1, (r4, 0x4) + 5e58: 6442 cmpne r0, r1 + 5e5a: 0805 bt 0x5e64 // 5e64 + 5e5c: 8307 ld.b r0, (r3, 0x7) + 5e5e: 8425 ld.b r1, (r4, 0x5) + 5e60: 6442 cmpne r0, r1 + 5e62: 0c19 bf 0x5e94 // 5e94 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 5e64: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 5e66: 8344 ld.b r2, (r3, 0x4) + 5e68: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 5e6a: 8345 ld.b r2, (r3, 0x5) + 5e6c: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5e6e: 8346 ld.b r2, (r3, 0x6) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + + EEPROM_WriteParaInfo(&g_eeprom); + 5e70: 100b lrw r0, 0x20000350 // 5e9c + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5e72: 8367 ld.b r3, (r3, 0x7) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 5e74: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 5e76: a465 st.b r3, (r4, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 5e78: e3fff2a6 bsr 0x43c4 // 43c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 5e7c: 8425 ld.b r1, (r4, 0x5) + 5e7e: b822 st.w r1, (r14, 0x8) + 5e80: 8424 ld.b r1, (r4, 0x4) + 5e82: b821 st.w r1, (r14, 0x4) + 5e84: 8422 ld.b r1, (r4, 0x2) + 5e86: b820 st.w r1, (r14, 0x0) + 5e88: 8461 ld.b r3, (r4, 0x1) + 5e8a: 8440 ld.b r2, (r4, 0x0) + 5e8c: 1025 lrw r1, 0x7f71 // 5ea0 + 5e8e: 3000 movi r0, 0 + 5e90: e3ffee5e bsr 0x3b4c // 3b4c + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + } +} + 5e94: 1403 addi r14, r14, 12 + 5e96: 1491 pop r4, r15 + 5e98: 200003f3 .long 0x200003f3 + 5e9c: 20000350 .long 0x20000350 + 5ea0: 00007f71 .long 0x00007f71 + +Disassembly of section .text.Debug_Task: + +00005ea4 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 5ea4: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE5ID)) //设置模式 + 5ea6: 1077 lrw r3, 0x200003f3 // 5f00 + 5ea8: 8340 ld.b r2, (r3, 0x0) + 5eaa: 3a41 cmpnei r2, 1 + 5eac: 0829 bt 0x5efe // 5efe + 5eae: 8329 ld.b r1, (r3, 0x9) + 5eb0: 8348 ld.b r2, (r3, 0x8) + 5eb2: 4128 lsli r1, r1, 8 + 5eb4: 6c48 or r1, r2 + 5eb6: 834a ld.b r2, (r3, 0xa) + 5eb8: 4250 lsli r2, r2, 16 + 5eba: 6c48 or r1, r2 + 5ebc: 834b ld.b r2, (r3, 0xb) + 5ebe: 1092 lrw r4, 0x200000b8 // 5f04 + 5ec0: 4258 lsli r2, r2, 24 + 5ec2: 6c84 or r2, r1 + 5ec4: 9400 ld.w r0, (r4, 0x0) + 5ec6: 600a subu r0, r2 + 5ec8: 1050 lrw r2, 0x2710 // 5f08 + 5eca: 6408 cmphs r2, r0 + 5ecc: 0819 bt 0x5efe // 5efe + 5ece: 8342 ld.b r2, (r3, 0x2) + 5ed0: 3a45 cmpnei r2, 5 + 5ed2: 0c16 bf 0x5efe // 5efe + { + Debug_Inf.Tick = SysTick_1ms; + 5ed4: 9440 ld.w r2, (r4, 0x0) + 5ed6: 4a28 lsri r1, r2, 8 + 5ed8: a348 st.b r2, (r3, 0x8) + 5eda: a329 st.b r1, (r3, 0x9) + 5edc: 4a30 lsri r1, r2, 16 + 5ede: 4a58 lsri r2, r2, 24 + 5ee0: a34b st.b r2, (r3, 0xb) + Debug_Inf.State = 0x00; + 5ee2: 3200 movi r2, 0 + Debug_Inf.Tick = SysTick_1ms; + 5ee4: a32a st.b r1, (r3, 0xa) + Debug_Inf.State = 0x00; + 5ee6: a340 st.b r2, (r3, 0x0) + Dev_SaveData(); + 5ee8: e3ffffa6 bsr 0x5e34 // 5e34 + + HT1621_Clear(); + 5eec: e3fff5ce bsr 0x4a88 // 4a88 + //关背光 + Controlled_LCD_Backlight(0x00); + 5ef0: 3000 movi r0, 0 + 5ef2: e3fff75f bsr 0x4db0 // 4db0 +// Controlled_Key_Backlight(0x00); + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 5ef6: 1026 lrw r1, 0x7fbd // 5f0c + 5ef8: 3000 movi r0, 0 + 5efa: e3ffee29 bsr 0x3b4c // 3b4c + } + 5efe: 1491 pop r4, r15 + 5f00: 200003f3 .long 0x200003f3 + 5f04: 200000b8 .long 0x200000b8 + 5f08: 00002710 .long 0x00002710 + 5f0c: 00007fbd .long 0x00007fbd + +Disassembly of section .text.get_check_sum: + +00005f10 : +* @param[in] {pack} the head address of array +* @param[in] {pack_len} the length of array +* @return sum +*/ +unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len) +{ + 5f10: 6cc3 mov r3, r0 + 5f12: 6040 addu r1, r0 + unsigned short i; + unsigned char check_sum = 0; + 5f14: 3000 movi r0, 0 + + for(i = 0; i < pack_len; i ++){ + 5f16: 644e cmpne r3, r1 + 5f18: 0802 bt 0x5f1c // 5f1c + check_sum += *pack ++; + } + + return check_sum; +} + 5f1a: 783c jmp r15 + check_sum += *pack ++; + 5f1c: 8340 ld.b r2, (r3, 0x0) + 5f1e: 6008 addu r0, r2 + 5f20: 7400 zextb r0, r0 + 5f22: 2300 addi r3, 1 + 5f24: 07f9 br 0x5f16 // 5f16 + +Disassembly of section .text.uart_receive_input: + +00005f28 : +* @brief copy receive data from uart receive interrupt +* @param[in] {value} Data received from interrupt +* @return void +*/ +void uart_receive_input(unsigned char value) +{ + 5f28: 14c1 push r4 +// #error "please call this fuction in the interrupt fuction of serial receive, and delete this line" + + if(1 == queue_out - queue_in) { + 5f2a: 106d lrw r3, 0x2000059c // 5f5c + 5f2c: 9320 ld.w r1, (r3, 0x0) + 5f2e: 106d lrw r3, 0x2000050c // 5f60 + 5f30: 9340 ld.w r2, (r3, 0x0) + 5f32: 5989 subu r4, r1, r2 + 5f34: 3c41 cmpnei r4, 1 + 5f36: 0c11 bf 0x5f58 // 5f58 + //queue full + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_1"); + + }else if((queue_in > queue_out) && ((queue_in - queue_out) >= sizeof(zigbee_queue_buf))) { + 5f38: 6484 cmphs r1, r2 + 5f3a: 0806 bt 0x5f46 // 5f46 + 5f3c: 5a85 subu r4, r2, r1 + 5f3e: 3184 movi r1, 132 + 5f40: 4121 lsli r1, r1, 1 + 5f42: 6504 cmphs r1, r4 + 5f44: 0c0a bf 0x5f58 // 5f58 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_2"); + + }else { + //queue not full + if(queue_in >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))){ + 5f46: 1028 lrw r1, 0x20000509 // 5f64 + 5f48: 6448 cmphs r2, r1 + 5f4a: 0c03 bf 0x5f50 // 5f50 + queue_in = (unsigned char *)(zigbee_queue_buf); + 5f4c: 1047 lrw r2, 0x20000400 // 5f68 + 5f4e: b340 st.w r2, (r3, 0x0) + } + *queue_in ++ = value; + 5f50: 9340 ld.w r2, (r3, 0x0) + 5f52: 5a22 addi r1, r2, 1 + 5f54: b320 st.w r1, (r3, 0x0) + 5f56: a200 st.b r0, (r2, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_receive: %02X",value); + + } +} + 5f58: 1481 pop r4 + 5f5a: 0000 bkpt + 5f5c: 2000059c .long 0x2000059c + 5f60: 2000050c .long 0x2000050c + 5f64: 20000509 .long 0x20000509 + 5f68: 20000400 .long 0x20000400 + +Disassembly of section .text.Queue_Read_Byte: + +00005f6c : +*/ +unsigned char Queue_Read_Byte(void) +{ + unsigned char value; + + if(queue_out != queue_in) { + 5f6c: 1069 lrw r3, 0x2000059c // 5f90 + 5f6e: 102a lrw r1, 0x2000050c // 5f94 + 5f70: 9340 ld.w r2, (r3, 0x0) + 5f72: 9120 ld.w r1, (r1, 0x0) + 5f74: 644a cmpne r2, r1 + 5f76: 0c0b bf 0x5f8c // 5f8c + //have data in queue + if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) { + 5f78: 1028 lrw r1, 0x20000509 // 5f98 + 5f7a: 6448 cmphs r2, r1 + 5f7c: 0c03 bf 0x5f82 // 5f82 + queue_out = (unsigned char *)(zigbee_queue_buf); + 5f7e: 1048 lrw r2, 0x20000400 // 5f9c + 5f80: b340 st.w r2, (r3, 0x0) + } + value = *queue_out ++; + 5f82: 9340 ld.w r2, (r3, 0x0) + 5f84: 5a22 addi r1, r2, 1 + 5f86: b320 st.w r1, (r3, 0x0) + 5f88: 8200 ld.b r0, (r2, 0x0) + 5f8a: 7400 zextb r0, r0 + } + + + return value; +} + 5f8c: 783c jmp r15 + 5f8e: 0000 bkpt + 5f90: 2000059c .long 0x2000059c + 5f94: 2000050c .long 0x2000050c + 5f98: 20000509 .long 0x20000509 + 5f9c: 20000400 .long 0x20000400 + +Disassembly of section .text.with_data_rxbuff: + +00005fa0 : + * @param Null + * @return the queue state + */ +unsigned char with_data_rxbuff(void) +{ + if(queue_out != queue_in) + 5fa0: 1065 lrw r3, 0x2000059c // 5fb4 + 5fa2: 3000 movi r0, 0 + 5fa4: 9340 ld.w r2, (r3, 0x0) + 5fa6: 1065 lrw r3, 0x2000050c // 5fb8 + 5fa8: 9360 ld.w r3, (r3, 0x0) + 5faa: 64ca cmpne r2, r3 + 5fac: 6001 addc r0, r0 + 5fae: 7400 zextb r0, r0 + return 1; + else + return 0; +} + 5fb0: 783c jmp r15 + 5fb2: 0000 bkpt + 5fb4: 2000059c .long 0x2000059c + 5fb8: 2000050c .long 0x2000050c + +Disassembly of section .text.RF_Info_Init: + +00005fbc : + + + + +void RF_Info_Init(void) +{ + 5fbc: 14d1 push r4, r15 + memset(&rf_info,0,sizeof(RF_INFO)); + 5fbe: 1089 lrw r4, 0x200005a0 // 5fe0 + 5fc0: 3203 movi r2, 3 + 5fc2: 3100 movi r1, 0 + 5fc4: 6c13 mov r0, r4 + 5fc6: e3ffdccf bsr 0x1964 // 1964 <__memset_fast> + + queue_in = (unsigned char *)zigbee_queue_buf; + 5fca: 1067 lrw r3, 0x20000400 // 5fe4 + 5fcc: 1047 lrw r2, 0x2000050c // 5fe8 + 5fce: b260 st.w r3, (r2, 0x0) + queue_out = (unsigned char *)zigbee_queue_buf; + 5fd0: 1047 lrw r2, 0x2000059c // 5fec + 5fd2: b260 st.w r3, (r2, 0x0) + + rf_info.net_state = 0x01; + 5fd4: 3301 movi r3, 1 + 5fd6: a460 st.b r3, (r4, 0x0) + rf_info.setc_flag = 0x01; + rf_info.setf_flag = 0x01; + rf_info.fan_flag = 0x01; + rf_info.roomc_flag = 0x01; + rf_info.roomf_flag = 0x01; + rf_info.valve_flag = 0x01; + 5fd8: 3300 movi r3, 0 + 5fda: 2b00 subi r3, 1 + 5fdc: a461 st.b r3, (r4, 0x1) + +} + 5fde: 1491 pop r4, r15 + 5fe0: 200005a0 .long 0x200005a0 + 5fe4: 20000400 .long 0x20000400 + 5fe8: 2000050c .long 0x2000050c + 5fec: 2000059c .long 0x2000059c + +Disassembly of section .text.Add_Frame_Head: + +00005ff0 : +* +* +* +*/ +void Add_Frame_Head(U8_T *data, U8_T cmd, U8_T lens) +{ + 5ff0: 14c2 push r4-r5 + U16_T frameno = 0x00; + + data[HEAD_FIRST] = FIRST_FRAME_HEAD; + 5ff2: 3355 movi r3, 85 + 5ff4: a060 st.b r3, (r0, 0x0) + data[HEAD_SECOND] = SECOND_FRAME_HEAD; + 5ff6: 3300 movi r3, 0 + 5ff8: 2b55 subi r3, 86 + 5ffa: a061 st.b r3, (r0, 0x1) + data[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER; + 5ffc: 3302 movi r3, 2 + 5ffe: a062 st.b r3, (r0, 0x2) + if(seq_num > 0xfff0){ + 6000: 10aa lrw r5, 0xfff0 // 6028 + seq_num ++; + 6002: 106b lrw r3, 0x200000d8 // 602c + 6004: 8b80 ld.h r4, (r3, 0x0) + 6006: 2400 addi r4, 1 + 6008: 7511 zexth r4, r4 + if(seq_num > 0xfff0){ + 600a: 6514 cmphs r5, r4 + 600c: 0c0b bf 0x6022 // 6022 + seq_num = 1; + 600e: ab80 st.h r4, (r3, 0x0) + return seq_num; + 6010: 8b60 ld.h r3, (r3, 0x0) + + frameno = seq_num_get(); + data[SEQ_HIGH] = (frameno << 8); + 6012: 3400 movi r4, 0 + data[SEQ_LOW] = (frameno & 0xff); + 6014: a064 st.b r3, (r0, 0x4) + + data[FRAME_TYPE] = cmd; + + data[LENGTH_HIGH] = lens >> 8; + 6016: 3300 movi r3, 0 + data[SEQ_HIGH] = (frameno << 8); + 6018: a083 st.b r4, (r0, 0x3) + data[FRAME_TYPE] = cmd; + 601a: a025 st.b r1, (r0, 0x5) + data[LENGTH_HIGH] = lens >> 8; + 601c: a066 st.b r3, (r0, 0x6) + data[LENGTH_LOW] = lens & 0xff; + 601e: a047 st.b r2, (r0, 0x7) + +} + 6020: 1482 pop r4-r5 + seq_num = 1; + 6022: 3401 movi r4, 1 + 6024: 07f5 br 0x600e // 600e + 6026: 0000 bkpt + 6028: 0000fff0 .long 0x0000fff0 + 602c: 200000d8 .long 0x200000d8 + +Disassembly of section .text.Product_Info_Update: + +00006030 : + + + +void Product_Info_Update(void) +{ + 6030: 14d0 push r15 + 6032: 142a subi r14, r14, 40 + U8_T data[37]; + memset(data,0,sizeof(data)); + 6034: 6c3b mov r0, r14 + 6036: 3225 movi r2, 37 + 6038: 3100 movi r1, 0 + 603a: e3ffdc95 bsr 0x1964 // 1964 <__memset_fast> + U8_T lens = 0x00; + + lens += strlen("{\"p\":\""); + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 603e: 107b lrw r3, 0x2270227b // 60a8 + + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6040: 300d movi r0, 13 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 6042: b862 st.w r3, (r14, 0x8) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6044: 6038 addu r0, r14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 6046: 107f lrw r3, 0x223a // 60c0 + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6048: 3208 movi r2, 8 + 604a: 1039 lrw r1, 0x7fc8 // 60ac + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 604c: dc6e1006 st.h r3, (r14, 0xc) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 6050: e3ffdcce bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen((U8_T *)PRODUCT_KEY); + + memcpy(&data[DATA_START + lens-1],"\",\"v\":\"",strlen("\",\"v\":\"")); + 6054: 3015 movi r0, 21 + 6056: 6038 addu r0, r14 + 6058: 3207 movi r2, 7 + 605a: 1036 lrw r1, 0x7fd1 // 60b0 + 605c: e3ffdcc8 bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen("\",\"v\":\""); + + memcpy(&data[DATA_START + lens-1],(U8_T *)MCU_VER,strlen((U8_T *)MCU_VER)); + 6060: 1055 lrw r2, 0x2e302e31 // 60b4 + 6062: b847 st.w r2, (r14, 0x1c) + 6064: 1b07 addi r3, r14, 28 + 6066: 3230 movi r2, 48 + 6068: a344 st.b r2, (r3, 0x4) + lens += strlen((U8_T *)MCU_VER); + + memcpy(&data[DATA_START + lens-1],"\"}",strlen("\"}")); + 606a: 3321 movi r3, 33 + 606c: 60f8 addu r3, r14 + 606e: 3222 movi r2, 34 + 6070: a340 st.b r2, (r3, 0x0) + 6072: 327d movi r2, 125 + 6074: a341 st.b r2, (r3, 0x1) + lens += strlen("\"}"); + + Add_Frame_Head(data,PRODUCT_INFO_CMD,lens); + 6076: 6c3b mov r0, r14 + 6078: 321c movi r2, 28 + 607a: 3101 movi r1, 1 + 607c: e3ffffba bsr 0x5ff0 // 5ff0 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 6080: 3124 movi r1, 36 + 6082: 6c3b mov r0, r14 + 6084: e3ffff46 bsr 0x5f10 // 5f10 + 6088: 1b08 addi r3, r14, 32 + 608a: a304 st.b r0, (r3, 0x4) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 608c: 6cbb mov r2, r14 + 608e: 3325 movi r3, 37 + 6090: 102a lrw r1, 0x7fd9 // 60b8 + 6092: 3000 movi r0, 0 + 6094: e3ffed62 bsr 0x3b58 // 3b58 + + UARTTransmit(UART2,data,lens); + 6098: 1069 lrw r3, 0x20000038 // 60bc + 609a: 3225 movi r2, 37 + 609c: 9300 ld.w r0, (r3, 0x0) + 609e: 6c7b mov r1, r14 + 60a0: e3ffe03e bsr 0x211c // 211c +} + 60a4: 140a addi r14, r14, 40 + 60a6: 1490 pop r15 + 60a8: 2270227b .long 0x2270227b + 60ac: 00007fc8 .long 0x00007fc8 + 60b0: 00007fd1 .long 0x00007fd1 + 60b4: 2e302e31 .long 0x2e302e31 + 60b8: 00007fd9 .long 0x00007fd9 + 60bc: 20000038 .long 0x20000038 + 60c0: 0000223a .long 0x0000223a + +Disassembly of section .text.Recv_RFNetState_Ack: + +000060c4 : + +void Recv_RFNetState_Ack(void) +{ + 60c4: 14d0 push r15 + 60c6: 1423 subi r14, r14, 12 + U8_T data[9]; + memset(data,0,sizeof(data)); + 60c8: 6c3b mov r0, r14 + 60ca: 3209 movi r2, 9 + 60cc: 3100 movi r1, 0 + 60ce: e3ffdc4b bsr 0x1964 // 1964 <__memset_fast> + + U8_T lens = 0x00; + + Add_Frame_Head(data,ZIGBEE_STATE_CMD,lens); + 60d2: 3200 movi r2, 0 + 60d4: 6c3b mov r0, r14 + 60d6: 3102 movi r1, 2 + 60d8: e3ffff8c bsr 0x5ff0 // 5ff0 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 60dc: 3108 movi r1, 8 + 60de: 6c3b mov r0, r14 + 60e0: e3ffff18 bsr 0x5f10 // 5f10 + + UARTTransmit(UART2,data,lens); + 60e4: 1065 lrw r3, 0x20000038 // 60f8 + 60e6: 3209 movi r2, 9 + data[lens-1] = get_check_sum(data,(lens-1)); + 60e8: dc0e0008 st.b r0, (r14, 0x8) + UARTTransmit(UART2,data,lens); + 60ec: 6c7b mov r1, r14 + 60ee: 9300 ld.w r0, (r3, 0x0) + 60f0: e3ffe016 bsr 0x211c // 211c +} + 60f4: 1403 addi r14, r14, 12 + 60f6: 1490 pop r15 + 60f8: 20000038 .long 0x20000038 + +Disassembly of section .text.Tem_Fun_Ctrl_Report: + +000060fc : + + +void Tem_Fun_Ctrl_Report(U8_T datalens,U8_T dpid,U8_T type,U32_T state,U8_T source) +{ + 60fc: 14d4 push r4-r7, r15 + 60fe: 1426 subi r14, r14, 24 + 6100: 6d4f mov r5, r3 + 6102: 1b0b addi r3, r14, 44 + 6104: 6d8b mov r6, r2 + 6106: 8360 ld.b r3, (r3, 0x0) + 6108: 6dc7 mov r7, r1 + 610a: 6d03 mov r4, r0 + U8_T data[17]; + memset(data,0,sizeof(data)); + 610c: 3211 movi r2, 17 + 610e: 3100 movi r1, 0 + 6110: 1801 addi r0, r14, 4 +{ + 6112: b860 st.w r3, (r14, 0x0) + memset(data,0,sizeof(data)); + 6114: e3ffdc28 bsr 0x1964 // 1964 <__memset_fast> + U8_T cmd = 0x00; + + data[DATA_START] = dpid; //dpID + data[DATA_START+1] = type; //数据类型 + + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 6118: 3e41 cmpnei r6, 1 + data[DATA_START] = dpid; //dpID + 611a: dcee000c st.b r7, (r14, 0xc) + data[DATA_START+1] = type; //数据类型 + 611e: dcce000d st.b r6, (r14, 0xd) + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 6122: 9860 ld.w r3, (r14, 0x0) + 6124: 0c03 bf 0x612a // 612a + 6126: 3e44 cmpnei r6, 4 + 6128: 0829 bt 0x617a // 617a + { + data[DATA_START+2] = 0x00; + data[DATA_START+3] = 0x01; + 612a: 3201 movi r2, 1 + 612c: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state&0xff; + 6130: dcae0010 st.b r5, (r14, 0x10) + data[DATA_START+5] = state>>16; + data[DATA_START+6] = state>>8; + data[DATA_START+7] = state&0xff; + } + + if(source == ACTIVE) + 6134: 3b41 cmpnei r3, 1 + 6136: 0c33 bf 0x619c // 619c + { + cmd = 0x06; + } + else if(source == PASSIVE) + 6138: 3b42 cmpnei r3, 2 + 613a: 0833 bt 0x61a0 // 61a0 + { + cmd = 0x05; + 613c: 3105 movi r1, 5 + } + + Add_Frame_Head(data,cmd,datalens); + 613e: 6c93 mov r2, r4 + + lens = PROTOCOL_HEAD + datalens; + 6140: 2408 addi r4, 9 + 6142: 7510 zextb r4, r4 + + data[lens-1] = get_check_sum(data,(lens-1)); + 6144: 7551 zexth r5, r4 + Add_Frame_Head(data,cmd,datalens); + 6146: 1801 addi r0, r14, 4 + 6148: e3ffff54 bsr 0x5ff0 // 5ff0 + data[lens-1] = get_check_sum(data,(lens-1)); + 614c: 5d23 subi r1, r5, 1 + 614e: 7445 zexth r1, r1 + 6150: 1801 addi r0, r14, 4 + 6152: e3fffedf bsr 0x5f10 // 5f10 + 6156: 1b01 addi r3, r14, 4 + 6158: 610c addu r4, r3 + 615a: 2c00 subi r4, 1 + 615c: a400 st.b r0, (r4, 0x0) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 615e: 6cd7 mov r3, r5 + 6160: 1a01 addi r2, r14, 4 + 6162: 1031 lrw r1, 0x7fd9 // 61a4 + 6164: 3000 movi r0, 0 + 6166: e3ffecf9 bsr 0x3b58 // 3b58 + + UARTTransmit(UART2,data,lens); + 616a: 1070 lrw r3, 0x20000038 // 61a8 + 616c: 6c97 mov r2, r5 + 616e: 9300 ld.w r0, (r3, 0x0) + 6170: 1901 addi r1, r14, 4 + 6172: e3ffdfd5 bsr 0x211c // 211c +} + 6176: 1406 addi r14, r14, 24 + 6178: 1494 pop r4-r7, r15 + else if(type == DP_TYPE_VALUE) + 617a: 3e42 cmpnei r6, 2 + 617c: 0bdc bt 0x6134 // 6134 + data[DATA_START+3] = 0x04; + 617e: 3204 movi r2, 4 + 6180: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state>>24; + 6184: 4d58 lsri r2, r5, 24 + 6186: dc4e0010 st.b r2, (r14, 0x10) + data[DATA_START+5] = state>>16; + 618a: 4d50 lsri r2, r5, 16 + 618c: dc4e0011 st.b r2, (r14, 0x11) + data[DATA_START+6] = state>>8; + 6190: 4d48 lsri r2, r5, 8 + 6192: dc4e0012 st.b r2, (r14, 0x12) + data[DATA_START+7] = state&0xff; + 6196: dcae0013 st.b r5, (r14, 0x13) + 619a: 07cd br 0x6134 // 6134 + cmd = 0x06; + 619c: 3106 movi r1, 6 + 619e: 07d0 br 0x613e // 613e + U8_T cmd = 0x00; + 61a0: 3100 movi r1, 0 + 61a2: 07ce br 0x613e // 613e + 61a4: 00007fd9 .long 0x00007fd9 + 61a8: 20000038 .long 0x20000038 + +Disassembly of section .text.data_handle: + +000061ac : +* @brief handle received frame from zigbee module baseon frame cmd id +* @param[in] {void} +* @return result of handle +*/ +int data_handle(unsigned short offset) +{ + 61ac: 14d2 push r4-r5, r15 + unsigned char ret; + unsigned short i; + + U32_T temp = 0x00; + + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 61ae: 5872 addi r3, r0, 5 + 61b0: 1286 lrw r4, 0x20000510 // 62c8 + + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 61b2: 5856 addi r2, r0, 6 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 61b4: 60d0 addu r3, r4 + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 61b6: 6090 addu r2, r4 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 61b8: 8360 ld.b r3, (r3, 0x0) + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 61ba: 8240 ld.b r2, (r2, 0x0) + total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW]; + 61bc: 585a addi r2, r0, 7 + 61be: 6090 addu r2, r4 + 61c0: 8240 ld.b r2, (r2, 0x0) + + seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8; + 61c2: 584a addi r2, r0, 3 + 61c4: 6090 addu r2, r4 + 61c6: 8240 ld.b r2, (r2, 0x0) + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 61c8: 74cc zextb r3, r3 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 61ca: 584e addi r2, r0, 4 + 61cc: 6090 addu r2, r4 + + switch(cmd_type) + 61ce: 3b42 cmpnei r3, 2 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 61d0: 8240 ld.b r2, (r2, 0x0) + switch(cmd_type) + 61d2: 0c09 bf 0x61e4 // 61e4 + 61d4: 3b44 cmpnei r3, 4 + 61d6: 0c13 bf 0x61fc // 61fc + 61d8: 3b41 cmpnei r3, 1 + 61da: 0803 bt 0x61e0 // 61e0 + { + case PRODUCT_INFO_CMD: //RF查询产品信息 + Product_Info_Update(); + 61dc: e3ffff2a bsr 0x6030 // 6030 + default: + return ret = 0x01; + break; + } + return 1; +} + 61e0: 3001 movi r0, 1 + 61e2: 1492 pop r4-r5, r15 + if(rf_info.net_state != zigbee_uart_rx_buf[offset + DATA_START]) + 61e4: 587e addi r3, r0, 8 + 61e6: 5c0c addu r0, r4, r3 + 61e8: 1179 lrw r3, 0x200005a0 // 62cc + 61ea: 8040 ld.b r2, (r0, 0x0) + 61ec: 8320 ld.b r1, (r3, 0x0) + 61ee: 6486 cmpne r1, r2 + 61f0: 0c03 bf 0x61f6 // 61f6 + rf_info.net_state = zigbee_uart_rx_buf[offset + DATA_START]; + 61f2: 8040 ld.b r2, (r0, 0x0) + 61f4: a340 st.b r2, (r3, 0x0) + Recv_RFNetState_Ack(); + 61f6: e3ffff67 bsr 0x60c4 // 60c4 + break; + 61fa: 07f3 br 0x61e0 // 61e0 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 61fc: 587e addi r3, r0, 8 + 61fe: 60d0 addu r3, r4 + 6200: 8360 ld.b r3, (r3, 0x0) + 6202: 74cc zextb r3, r3 + 6204: 3b42 cmpnei r3, 2 + 6206: 0c2a bf 0x625a // 625a + 6208: 3b02 cmphsi r3, 3 + 620a: 0812 bt 0x622e // 622e + 620c: 3b41 cmpnei r3, 1 + 620e: 0be9 bt 0x61e0 // 61e0 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6210: 200b addi r0, 12 + 6212: 6010 addu r0, r4 + 6214: 8060 ld.b r3, (r0, 0x0) + 6216: 112f lrw r1, 0x200003d4 // 62d0 + 6218: 4347 lsli r2, r3, 7 + 621a: 307f movi r0, 127 + 621c: 8162 ld.b r3, (r1, 0x2) + 621e: 68c0 and r3, r0 + 6220: 6cc8 or r3, r2 + rf_info.switc_flag = 0x01; + 6222: 114b lrw r2, 0x200005a0 // 62cc + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6224: a162 st.b r3, (r1, 0x2) + rf_info.switc_flag = 0x01; + 6226: 8261 ld.b r3, (r2, 0x1) + 6228: 3ba0 bseti r3, 0 + rf_info.fan_flag = 0x01; + 622a: a261 st.b r3, (r2, 0x1) + break; + 622c: 07da br 0x61e0 // 61e0 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 622e: 3b50 cmpnei r3, 16 + 6230: 0c25 bf 0x627a // 627a + 6232: 3240 movi r2, 64 + 6234: 648e cmpne r3, r2 + 6236: 0bd5 bt 0x61e0 // 61e0 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6238: 6cc3 mov r3, r0 + 623a: 230b addi r3, 12 + 623c: 5c0c addu r0, r4, r3 + 623e: 8060 ld.b r3, (r0, 0x0) + 6240: 3207 movi r2, 7 + 6242: 1124 lrw r1, 0x200003d4 // 62d0 + 6244: 68c8 and r3, r2 + 6246: 4341 lsli r2, r3, 1 + 6248: 300e movi r0, 14 + 624a: 8162 ld.b r3, (r1, 0x2) + 624c: 68c1 andn r3, r0 + 624e: 6cc8 or r3, r2 + rf_info.fan_flag = 0x01; + 6250: 105f lrw r2, 0x200005a0 // 62cc + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6252: a162 st.b r3, (r1, 0x2) + rf_info.fan_flag = 0x01; + 6254: 8261 ld.b r3, (r2, 0x1) + 6256: 3ba4 bseti r3, 4 + 6258: 07e9 br 0x622a // 622a + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 625a: 200b addi r0, 12 + 625c: 6010 addu r0, r4 + 625e: 8060 ld.b r3, (r0, 0x0) + 6260: 3207 movi r2, 7 + 6262: 103c lrw r1, 0x200003d4 // 62d0 + 6264: 68c8 and r3, r2 + 6266: 4344 lsli r2, r3, 4 + 6268: 3070 movi r0, 112 + 626a: 8162 ld.b r3, (r1, 0x2) + 626c: 68c1 andn r3, r0 + 626e: 6cc8 or r3, r2 + rf_info.model_flag = 0x01; + 6270: 1057 lrw r2, 0x200005a0 // 62cc + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 6272: a162 st.b r3, (r1, 0x2) + rf_info.model_flag = 0x01; + 6274: 8261 ld.b r3, (r2, 0x1) + 6276: 3ba1 bseti r3, 1 + 6278: 07d9 br 0x622a // 622a + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 627a: 330c movi r3, 12 + 627c: 60c0 addu r3, r0 + 627e: 60d0 addu r3, r4 + 6280: 83a0 ld.b r5, (r3, 0x0) + 6282: 330d movi r3, 13 + 6284: 60c0 addu r3, r0 + 6286: 60d0 addu r3, r4 + 6288: 8340 ld.b r2, (r3, 0x0) + 628a: 330e movi r3, 14 + 628c: 60c0 addu r3, r0 + 628e: 6c43 mov r1, r0 + 6290: 60d0 addu r3, r4 + 6292: 8360 ld.b r3, (r3, 0x0) + 6294: 4250 lsli r2, r2, 16 + 6296: 210e addi r1, 15 + 6298: 4518 lsli r0, r5, 24 + 629a: 6008 addu r0, r2 + 629c: 4368 lsli r3, r3, 8 + 629e: 6050 addu r1, r4 + 62a0: 600c addu r0, r3 + 62a2: 8120 ld.b r1, (r1, 0x0) + if((temp>=50) && (temp<=350)) + 62a4: 3200 movi r2, 0 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 62a6: 6004 addu r0, r1 + if((temp>=50) && (temp<=350)) + 62a8: 2a31 subi r2, 50 + 62aa: 3396 movi r3, 150 + 62ac: 6080 addu r2, r0 + 62ae: 4361 lsli r3, r3, 1 + 62b0: 648c cmphs r3, r2 + 62b2: 0f97 bf 0x61e0 // 61e0 + TempCtrl.TemState_Now.set_t = temp / 10; + 62b4: 310a movi r1, 10 + 62b6: e3ffead7 bsr 0x3864 // 3864 <__udivsi3> + 62ba: 1066 lrw r3, 0x200003d4 // 62d0 + rf_info.setc_flag = 0x01; + 62bc: 1044 lrw r2, 0x200005a0 // 62cc + TempCtrl.TemState_Now.set_t = temp / 10; + 62be: a301 st.b r0, (r3, 0x1) + rf_info.setc_flag = 0x01; + 62c0: 8261 ld.b r3, (r2, 0x1) + 62c2: 3ba2 bseti r3, 2 + 62c4: 07b3 br 0x622a // 622a + 62c6: 0000 bkpt + 62c8: 20000510 .long 0x20000510 + 62cc: 200005a0 .long 0x200005a0 + 62d0: 200003d4 .long 0x200003d4 + +Disassembly of section .text.zigbee_uart_service: + +000062d4 : +* @brief uart receive data handle, call this function at mian loop +* @param[in] {void} +* @return void +*/ +void zigbee_uart_service(void) +{ + 62d4: 14d4 push r4-r7, r15 + unsigned short rx_value_len = 0; + unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD; + + + + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 62d6: 11d0 lrw r6, 0x200000d8 // 6394 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 62d8: 11b0 lrw r5, 0x20000510 // 6398 + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 62da: 8e81 ld.h r4, (r6, 0x2) + 62dc: 3388 movi r3, 136 + 62de: 650c cmphs r3, r4 + 62e0: 0c07 bf 0x62ee // 62ee + 62e2: e3fffe5f bsr 0x5fa0 // 5fa0 + 62e6: 3840 cmpnei r0, 0 + 62e8: 081c bt 0x6320 // 6320 + } + + if(rx_in < PROTOCOL_HEAD){ + 62ea: 3c08 cmphsi r4, 9 + 62ec: 0c19 bf 0x631e // 631e + 62ee: 3400 movi r4, 0 + while((rx_in - offset) >= PROTOCOL_HEAD){ + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + + + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 62f0: 11ea lrw r7, 0x20000510 // 6398 + while((rx_in - offset) >= PROTOCOL_HEAD){ + 62f2: 8e61 ld.h r3, (r6, 0x2) + 62f4: 60d2 subu r3, r4 + 62f6: 3b28 cmplti r3, 9 + 62f8: 0c1b bf 0x632e // 632e + } + + data_handle(offset); + offset += rx_value_len; + } + rx_in -= offset; + 62fa: 74cd zexth r3, r3 + + if(rx_in > 0){ + 62fc: 3b40 cmpnei r3, 0 + rx_in -= offset; + 62fe: ae61 st.h r3, (r6, 0x2) + if(rx_in > 0){ + 6300: 0c0f bf 0x631e // 631e + if((offset == 0) && (rx_in >= sizeof(zigbee_uart_rx_buf))){ + 6302: 3c40 cmpnei r4, 0 + 6304: 0807 bt 0x6312 // 6312 + 6306: 3288 movi r2, 136 + 6308: 64c8 cmphs r2, r3 + 630a: 0804 bt 0x6312 // 6312 + offset++; + rx_in -= offset; + 630c: 2b00 subi r3, 1 + 630e: ae61 st.h r3, (r6, 0x2) + offset++; + 6310: 3401 movi r4, 1 + } + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + 6312: 1122 lrw r1, 0x20000510 // 6398 + 6314: 8e41 ld.h r2, (r6, 0x2) + 6316: 6050 addu r1, r4 + 6318: 1100 lrw r0, 0x20000510 // 6398 + 631a: e3ffdb69 bsr 0x19ec // 19ec <__memcpy_fast> + } +} + 631e: 1494 pop r4-r7, r15 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 6320: 5c62 addi r3, r4, 1 + 6322: ae61 st.h r3, (r6, 0x2) + 6324: 6114 addu r4, r5 + 6326: e3fffe23 bsr 0x5f6c // 5f6c + 632a: a400 st.b r0, (r4, 0x0) + 632c: 07d7 br 0x62da // 62da + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 632e: 5f10 addu r0, r7, r4 + 6330: 3255 movi r2, 85 + 6332: 8020 ld.b r1, (r0, 0x0) + 6334: 6486 cmpne r1, r2 + 6336: 5c42 addi r2, r4, 1 + 6338: 0c03 bf 0x633e // 633e + offset += 2; + 633a: 7509 zexth r4, r2 + continue; + 633c: 07db br 0x62f2 // 62f2 + if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){ + 633e: 5f28 addu r1, r7, r2 + 6340: 81a0 ld.b r5, (r1, 0x0) + 6342: 31aa movi r1, 170 + 6344: 6456 cmpne r5, r1 + 6346: 0bfa bt 0x633a // 633a + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + 6348: 5c46 addi r2, r4, 2 + 634a: 5f28 addu r1, r7, r2 + 634c: 8120 ld.b r1, (r1, 0x0) + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + 634e: 3942 cmpnei r1, 2 + 6350: 0bf5 bt 0x633a // 633a + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 6352: 5c56 addi r2, r4, 6 + 6354: 609c addu r2, r7 + 6356: 82a0 ld.b r5, (r2, 0x0) + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 6358: 5c5a addi r2, r4, 7 + 635a: 609c addu r2, r7 + 635c: 8240 ld.b r2, (r2, 0x0) + 635e: 2208 addi r2, 9 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 6360: 45a8 lsli r5, r5, 8 + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 6362: 6148 addu r5, r2 + 6364: 7555 zexth r5, r5 + if(rx_value_len > sizeof(zigbee_uart_rx_buf)){ + 6366: 3289 movi r2, 137 + 6368: 6548 cmphs r2, r5 + 636a: 0804 bt 0x6372 // 6372 + offset += 3; + 636c: 2402 addi r4, 3 + 636e: 7511 zexth r4, r4 + continue; + 6370: 07c1 br 0x62f2 // 62f2 + if((rx_in - offset) < rx_value_len){ + 6372: 654d cmplt r3, r5 + 6374: 0bc3 bt 0x62fa // 62fa + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + 6376: 5d23 subi r1, r5, 1 + 6378: 7445 zexth r1, r1 + 637a: 6150 addu r5, r4 + 637c: e3fffdca bsr 0x5f10 // 5f10 + 6380: 5d63 subi r3, r5, 1 + 6382: 60dc addu r3, r7 + 6384: 8360 ld.b r3, (r3, 0x0) + 6386: 64c2 cmpne r0, r3 + 6388: 0bf2 bt 0x636c // 636c + data_handle(offset); + 638a: 6c13 mov r0, r4 + 638c: e3ffff10 bsr 0x61ac // 61ac + offset += rx_value_len; + 6390: 7515 zexth r4, r5 + 6392: 07b0 br 0x62f2 // 62f2 + 6394: 200000d8 .long 0x200000d8 + 6398: 20000510 .long 0x20000510 + +Disassembly of section .text.TemFun_Report_Task: + +0000639c : + + + +void TemFun_Report_Task(void) +{ + 639c: 14d1 push r4, r15 + 639e: 1421 subi r14, r14, 4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 63a0: 1151 lrw r2, 0x200005a0 // 6464 + 63a2: 8200 ld.b r0, (r2, 0x0) + 63a4: 3841 cmpnei r0, 1 + 63a6: 0831 bt 0x6408 // 6408 + { + if(rf_info.switc_flag == 0x01) //开关 + 63a8: 8261 ld.b r3, (r2, 0x1) + 63aa: 744c zextb r1, r3 + 63ac: 3401 movi r4, 1 + 63ae: 6904 and r4, r1 + 63b0: 3c40 cmpnei r4, 0 + 63b2: 0c0c bf 0x63ca // 63ca + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report onoff"); + rf_info.switc_flag = 0x00; + 63b4: 3b80 bclri r3, 0 + 63b6: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,PASSIVE); + 63b8: 3202 movi r2, 2 + 63ba: 116c lrw r3, 0x200003d4 // 6468 + 63bc: 8362 ld.b r3, (r3, 0x2) + 63be: 4b67 lsri r3, r3, 7 + 63c0: b840 st.w r2, (r14, 0x0) + 63c2: 3101 movi r1, 1 + 63c4: 3201 movi r2, 1 + } + else if(rf_info.valve_flag == 0x01) //阀门状态 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + rf_info.valve_flag = 0x00; + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 63c6: 3005 movi r0, 5 + 63c8: 041e br 0x6404 // 6404 + else if(rf_info.model_flag == 0x01) //模式 + 63ca: 3402 movi r4, 2 + 63cc: 6904 and r4, r1 + 63ce: 3c40 cmpnei r4, 0 + 63d0: 0c0c bf 0x63e8 // 63e8 + rf_info.model_flag = 0x00; + 63d2: 3b81 bclri r3, 1 + 63d4: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,PASSIVE); + 63d6: 3202 movi r2, 2 + 63d8: 1164 lrw r3, 0x200003d4 // 6468 + 63da: 8362 ld.b r3, (r3, 0x2) + 63dc: 4379 lsli r3, r3, 25 + 63de: b840 st.w r2, (r14, 0x0) + 63e0: 4b7d lsri r3, r3, 29 + 63e2: 3204 movi r2, 4 + 63e4: 3102 movi r1, 2 + 63e6: 07f0 br 0x63c6 // 63c6 + else if(rf_info.setc_flag == 0x01) //设置温度 + 63e8: 3404 movi r4, 4 + 63ea: 6904 and r4, r1 + 63ec: 3c40 cmpnei r4, 0 + 63ee: 0c0f bf 0x640c // 640c + rf_info.setc_flag = 0x00; + 63f0: 3b82 bclri r3, 2 + 63f2: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),PASSIVE); + 63f4: 320a movi r2, 10 + 63f6: 107d lrw r3, 0x200003d4 // 6468 + 63f8: 8361 ld.b r3, (r3, 0x1) + 63fa: 7cc8 mult r3, r2 + 63fc: 3202 movi r2, 2 + 63fe: b840 st.w r2, (r14, 0x0) + 6400: 3110 movi r1, 16 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 6402: 3008 movi r0, 8 + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 6404: e3fffe7c bsr 0x60fc // 60fc + } + } + 6408: 1401 addi r14, r14, 4 + 640a: 1491 pop r4, r15 + else if(rf_info.fan_flag == 0x01) //风速 + 640c: 3410 movi r4, 16 + 640e: 6904 and r4, r1 + 6410: 3c40 cmpnei r4, 0 + 6412: 0c0c bf 0x642a // 642a + rf_info.fan_flag = 0x00; + 6414: 3b84 bclri r3, 4 + 6416: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,PASSIVE); + 6418: 3202 movi r2, 2 + 641a: 1074 lrw r3, 0x200003d4 // 6468 + 641c: 8362 ld.b r3, (r3, 0x2) + 641e: 437c lsli r3, r3, 28 + 6420: b840 st.w r2, (r14, 0x0) + 6422: 4b7d lsri r3, r3, 29 + 6424: 3204 movi r2, 4 + 6426: 3140 movi r1, 64 + 6428: 07cf br 0x63c6 // 63c6 + else if(rf_info.roomc_flag == 0x01) //室内温度 + 642a: 3420 movi r4, 32 + 642c: 6904 and r4, r1 + 642e: 3c40 cmpnei r4, 0 + 6430: 0c0c bf 0x6448 // 6448 + rf_info.roomc_flag = 0x00; + 6432: 3b85 bclri r3, 5 + 6434: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 6436: 104d lrw r2, 0x200003d4 // 6468 + 6438: 8269 ld.b r3, (r2, 0x9) + 643a: 8228 ld.b r1, (r2, 0x8) + 643c: 4368 lsli r3, r3, 8 + 643e: 6cc4 or r3, r1 + 6440: b800 st.w r0, (r14, 0x0) + 6442: 3202 movi r2, 2 + 6444: 3118 movi r1, 24 + 6446: 07de br 0x6402 // 6402 + else if(rf_info.valve_flag == 0x01) //阀门状态 + 6448: 7446 sextb r1, r1 + 644a: 39df btsti r1, 31 + 644c: 0fde bf 0x6408 // 6408 + rf_info.valve_flag = 0x00; + 644e: 317f movi r1, 127 + 6450: 68c4 and r3, r1 + 6452: a261 st.b r3, (r2, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 6454: 3124 movi r1, 36 + 6456: 1065 lrw r3, 0x200003d4 // 6468 + 6458: 8362 ld.b r3, (r3, 0x2) + 645a: 437f lsli r3, r3, 31 + 645c: 4b7f lsri r3, r3, 31 + 645e: b800 st.w r0, (r14, 0x0) + 6460: 3204 movi r2, 4 + 6462: 07b2 br 0x63c6 // 63c6 + 6464: 200005a0 .long 0x200005a0 + 6468: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Relay_Init: + +0000646c : +#include "includes.h" + + +void Relay_Init(void) +{ + 646c: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,RLY1_HOT_PIN,Output); + 646e: 10b9 lrw r5, 0x2000004c // 64d0 + 6470: 3200 movi r2, 0 + 6472: 9500 ld.w r0, (r5, 0x0) + 6474: 310e movi r1, 14 + 6476: e3ffdc89 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 647a: 1097 lrw r4, 0x20000048 // 64d4 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + 647c: 3200 movi r2, 0 + 647e: 9500 ld.w r0, (r5, 0x0) + 6480: 310f movi r1, 15 + 6482: e3ffdc83 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 6486: 9400 ld.w r0, (r4, 0x0) + 6488: 3200 movi r2, 0 + 648a: 3101 movi r1, 1 + 648c: e3ffdc7e bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY4_MID_PIN,Output); + 6490: 9400 ld.w r0, (r4, 0x0) + 6492: 3200 movi r2, 0 + 6494: 3102 movi r1, 2 + 6496: e3ffdc79 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY5_LOW_PIN,Output); + 649a: 3200 movi r2, 0 + 649c: 9400 ld.w r0, (r4, 0x0) + 649e: 3103 movi r1, 3 + 64a0: e3ffdc74 bsr 0x1d88 // 1d88 + + RLY1_HOT_CLOSE; + 64a4: 9500 ld.w r0, (r5, 0x0) + 64a6: 310e movi r1, 14 + 64a8: e3ffdcfc bsr 0x1ea0 // 1ea0 + RLY2_COLD_CLOSE; + 64ac: 9500 ld.w r0, (r5, 0x0) + 64ae: 310f movi r1, 15 + 64b0: e3ffdcf8 bsr 0x1ea0 // 1ea0 + RLY3_HIGH_CLOSE; + 64b4: 9400 ld.w r0, (r4, 0x0) + 64b6: 3101 movi r1, 1 + 64b8: e3ffdcf4 bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 64bc: 9400 ld.w r0, (r4, 0x0) + 64be: 3102 movi r1, 2 + 64c0: e3ffdcf0 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 64c4: 9400 ld.w r0, (r4, 0x0) + 64c6: 3103 movi r1, 3 + 64c8: e3ffdcec bsr 0x1ea0 // 1ea0 + +} + 64cc: 1492 pop r4-r5, r15 + 64ce: 0000 bkpt + 64d0: 2000004c .long 0x2000004c + 64d4: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_High: + +000064d8 : + + +void Relay_High(void) +{ + 64d8: 14d1 push r4, r15 + RLY3_HIGH_OPEN; + 64da: 1088 lrw r4, 0x20000048 // 64f8 + 64dc: 3101 movi r1, 1 + 64de: 9400 ld.w r0, (r4, 0x0) + 64e0: e3ffdcdc bsr 0x1e98 // 1e98 + RLY4_MID_CLOSE; + 64e4: 9400 ld.w r0, (r4, 0x0) + 64e6: 3102 movi r1, 2 + 64e8: e3ffdcdc bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 64ec: 9400 ld.w r0, (r4, 0x0) + 64ee: 3103 movi r1, 3 + 64f0: e3ffdcd8 bsr 0x1ea0 // 1ea0 +} + 64f4: 1491 pop r4, r15 + 64f6: 0000 bkpt + 64f8: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Mid: + +000064fc : + + +void Relay_Mid(void) +{ + 64fc: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 64fe: 1088 lrw r4, 0x20000048 // 651c + 6500: 3101 movi r1, 1 + 6502: 9400 ld.w r0, (r4, 0x0) + 6504: e3ffdcce bsr 0x1ea0 // 1ea0 + RLY4_MID_OPEN; + 6508: 9400 ld.w r0, (r4, 0x0) + 650a: 3102 movi r1, 2 + 650c: e3ffdcc6 bsr 0x1e98 // 1e98 + RLY5_LOW_CLOSE; + 6510: 9400 ld.w r0, (r4, 0x0) + 6512: 3103 movi r1, 3 + 6514: e3ffdcc6 bsr 0x1ea0 // 1ea0 +} + 6518: 1491 pop r4, r15 + 651a: 0000 bkpt + 651c: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Low: + +00006520 : + + + +void Relay_Low(void) +{ + 6520: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 6522: 1088 lrw r4, 0x20000048 // 6540 + 6524: 3101 movi r1, 1 + 6526: 9400 ld.w r0, (r4, 0x0) + 6528: e3ffdcbc bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 652c: 9400 ld.w r0, (r4, 0x0) + 652e: 3102 movi r1, 2 + 6530: e3ffdcb8 bsr 0x1ea0 // 1ea0 + RLY5_LOW_OPEN; + 6534: 9400 ld.w r0, (r4, 0x0) + 6536: 3103 movi r1, 3 + 6538: e3ffdcb0 bsr 0x1e98 // 1e98 +} + 653c: 1491 pop r4, r15 + 653e: 0000 bkpt + 6540: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Stop: + +00006544 : + +void Relay_Stop(void) +{ + 6544: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 6546: 1088 lrw r4, 0x20000048 // 6564 + 6548: 3101 movi r1, 1 + 654a: 9400 ld.w r0, (r4, 0x0) + 654c: e3ffdcaa bsr 0x1ea0 // 1ea0 + RLY4_MID_CLOSE; + 6550: 9400 ld.w r0, (r4, 0x0) + 6552: 3102 movi r1, 2 + 6554: e3ffdca6 bsr 0x1ea0 // 1ea0 + RLY5_LOW_CLOSE; + 6558: 9400 ld.w r0, (r4, 0x0) + 655a: 3103 movi r1, 3 + 655c: e3ffdca2 bsr 0x1ea0 // 1ea0 +} + 6560: 1491 pop r4, r15 + 6562: 0000 bkpt + 6564: 20000048 .long 0x20000048 + +Disassembly of section .text.NetCRC16: + +00006568 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 6568: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 656a: 3902 cmphsi r1, 3 + 656c: 0c1f bf 0x65aa // 65aa + U16_T alen = len-2; //CRC16??????? + 656e: 2901 subi r1, 2 + 6570: 7445 zexth r1, r1 + 6572: 6d43 mov r5, r0 + 6574: 3200 movi r2, 0 + 6576: 106e lrw r3, 0xffff // 65ac + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 6580: 6d8f mov r6, r3 + 6582: 699c and r6, r7 + 6584: 3e40 cmpnei r6, 0 + 6586: 4b61 lsri r3, r3, 1 + 6588: 0c04 bf 0x6590 // 6590 + 658a: 10ca lrw r6, 0xffffa001 // 65b0 + 658c: 6cd9 xor r3, r6 + 658e: 74cd zexth r3, r3 + 6590: 2c00 subi r4, 1 + 6592: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 6594: 3c40 cmpnei r4, 0 + 6596: 0bf5 bt 0x6580 // 6580 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 65a2: 6040 addu r1, r0 + 65a4: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 65a6: 4b68 lsri r3, r3, 8 + 65a8: a161 st.b r3, (r1, 0x1) +} + 65aa: 1484 pop r4-r7 + 65ac: 0000ffff .long 0x0000ffff + 65b0: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +000065b4 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 65b4: 14c3 push r4-r6 + 65b6: 6cc3 mov r3, r0 + 65b8: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 65ba: 10ac lrw r5, 0xffffa001 // 65e8 + xda = 0xFFFF ; + 65bc: 100c lrw r0, 0xffff // 65ec + for (i = 0; i < len; i++) + 65be: 644e cmpne r3, r1 + 65c0: 0802 bt 0x65c4 // 65c4 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 65c2: 1483 pop r4-r6 + xda ^= aStr[i] ; + 65c4: 8340 ld.b r2, (r3, 0x0) + 65c6: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 65c8: 3601 movi r6, 1 + xda ^= aStr[i] ; + 65ca: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 65cc: 6d03 mov r4, r0 + 65ce: 6918 and r4, r6 + 65d0: 3c40 cmpnei r4, 0 + 65d2: 4801 lsri r0, r0, 1 + 65d4: 0c03 bf 0x65da // 65da + 65d6: 6c15 xor r0, r5 + 65d8: 7401 zexth r0, r0 + 65da: 2a00 subi r2, 1 + 65dc: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 65de: 3a40 cmpnei r2, 0 + 65e0: 0bf6 bt 0x65cc // 65cc + 65e2: 2300 addi r3, 1 + 65e4: 07ed br 0x65be // 65be + 65e6: 0000 bkpt + 65e8: ffffa001 .long 0xffffa001 + 65ec: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +000065f0 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 65f0: 6cc3 mov r3, r0 + 65f2: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 65f4: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 65f6: 644e cmpne r3, r1 + 65f8: 0802 bt 0x65fc // 65fc + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 65fa: 783c jmp r15 + sor_data = sor_data+Data[i]; + 65fc: 8340 ld.b r2, (r3, 0x0) + 65fe: 6008 addu r0, r2 + 6600: 7400 zextb r0, r0 + 6602: 2300 addi r3, 1 + 6604: 07f9 br 0x65f6 // 65f6 + +Disassembly of section .text.Rs485AskCycleSend: + +00006608 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 6608: 14d0 push r15 + 660a: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 660c: 3355 movi r3, 85 + 660e: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 6612: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 6616: 3300 movi r3, 0 + 6618: 2b11 subi r3, 18 + 661a: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 661e: 3315 movi r3, 21 + 6620: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 6624: 3303 movi r3, 3 + 6626: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 662a: 1171 lrw r3, 0x20000350 // 66ec + 662c: 8360 ld.b r3, (r3, 0x0) + 662e: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 6632: 3300 movi r3, 0 + 6634: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 6638: 116e lrw r3, 0x200003d4 // 66f0 + 663a: 8342 ld.b r2, (r3, 0x2) + 663c: 4a27 lsri r1, r2, 7 + 663e: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 6642: 3100 movi r1, 0 + 6644: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 6648: 3170 movi r1, 112 + 664a: 6884 and r2, r1 + 664c: 3a40 cmpnei r2, 0 + 664e: 0841 bt 0x66d0 // 66d0 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 6650: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 6652: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 6656: 8341 ld.b r2, (r3, 0x1) + 6658: 3a40 cmpnei r2, 0 + 665a: 0802 bt 0x665e // 665e + 665c: 3220 movi r2, 32 + 665e: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 6662: 3200 movi r2, 0 + 6664: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 6668: 8342 ld.b r2, (r3, 0x2) + 666a: 425c lsli r2, r2, 28 + 666c: 4a5d lsri r2, r2, 29 + 666e: 3104 movi r1, 4 + 6670: 604a subu r1, r2 + 6672: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 6674: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 6676: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 667a: 0c35 bf 0x66e4 // 66e4 + 667c: 3a03 cmphsi r2, 4 + 667e: 0803 bt 0x6684 // 6684 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动 + 6680: dc2e000d st.b r1, (r14, 0xd) + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 6684: 3200 movi r2, 0 + 6686: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 668a: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 668e: 8342 ld.b r2, (r3, 0x2) + 6690: 425f lsli r2, r2, 31 + 6692: 4a5f lsri r2, r2, 31 + 6694: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 6696: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 6698: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 669c: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 669e: 3200 movi r2, 0 + 66a0: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 66a4: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 66a8: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 66ac: 0802 bt 0x66b0 // 66b0 + 66ae: 3320 movi r3, 32 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66b0: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 66b2: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66b6: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 66b8: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66ba: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 66bc: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 66c0: e3ffff54 bsr 0x6568 // 6568 + + MCU485_SendData(SendData, 24); + 66c4: 3118 movi r1, 24 + 66c6: 6c3b mov r0, r14 + 66c8: e3ffe9fe bsr 0x3ac4 // 3ac4 + +} + 66cc: 1406 addi r14, r14, 24 + 66ce: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 66d0: 3120 movi r1, 32 + 66d2: 644a cmpne r2, r1 + 66d4: 0803 bt 0x66da // 66da + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 66d6: 3202 movi r2, 2 + 66d8: 07bd br 0x6652 // 6652 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 66da: 3140 movi r1, 64 + 66dc: 644a cmpne r2, r1 + 66de: 0bbc bt 0x6656 // 6656 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 66e0: 3203 movi r2, 3 + 66e2: 07b8 br 0x6652 // 6652 + SendData[13] = 0x00; // + 66e4: 3200 movi r2, 0 + 66e6: dc4e000d st.b r2, (r14, 0xd) + break; + 66ea: 07cd br 0x6684 // 6684 + 66ec: 20000350 .long 0x20000350 + 66f0: 200003d4 .long 0x200003d4 + +Disassembly of section .text.Rs485AskCtrlSend: + +000066f4 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 66f4: 14d0 push r15 + 66f6: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 66f8: 3355 movi r3, 85 + 66fa: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 66fe: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 6702: 3300 movi r3, 0 + 6704: 2b11 subi r3, 18 + 6706: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 670a: 3307 movi r3, 7 + 670c: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 6710: 3303 movi r3, 3 + 6712: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6716: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 6718: 106a lrw r3, 0x20000350 // 6740 + 671a: 8360 ld.b r3, (r3, 0x0) + 671c: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 6720: 8066 ld.b r3, (r0, 0x6) + 6722: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 6726: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6728: 3003 movi r0, 3 + 672a: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 672c: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6730: e3ffff1c bsr 0x6568 // 6568 + + MCU485_SendData(SendData, 10); + 6734: 310a movi r1, 10 + 6736: 6c3b mov r0, r14 + 6738: e3ffe9c6 bsr 0x3ac4 // 3ac4 + +} + 673c: 1403 addi r14, r14, 12 + 673e: 1490 pop r15 + 6740: 20000350 .long 0x20000350 + +Disassembly of section .text.Rs485AskReadSend: + +00006744 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 6744: 14d0 push r15 + 6746: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 6748: 3355 movi r3, 85 + 674a: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 674e: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 6752: 3300 movi r3, 0 + 6754: 2b11 subi r3, 18 + 6756: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x08; //长度 + 675a: 3308 movi r3, 8 + 675c: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 6760: 3303 movi r3, 3 + 6762: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6766: 3108 movi r1, 8 + SendData[5] = g_eeprom.dev_addr; + 6768: 106b lrw r3, 0x20000350 // 6794 + 676a: 8360 ld.b r3, (r3, 0x0) + 676c: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6]; + 6770: 8066 ld.b r3, (r0, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6772: 3003 movi r0, 3 + SendData[6] = Recdata[6]; + 6774: dc6e0006 st.b r3, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6778: 6038 addu r0, r14 + SendData[7] = Project_FW_Version; + 677a: 3301 movi r3, 1 + 677c: dc6e0007 st.b r3, (r14, 0x7) + SendData[8] = Project_HW_Version; + 6780: dc6e0008 st.b r3, (r14, 0x8) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 6784: e3fffef2 bsr 0x6568 // 6568 + + MCU485_SendData(SendData, 11); + 6788: 310b movi r1, 11 + 678a: 6c3b mov r0, r14 + 678c: e3ffe99c bsr 0x3ac4 // 3ac4 + +} + 6790: 1403 addi r14, r14, 12 + 6792: 1490 pop r15 + 6794: 20000350 .long 0x20000350 + +Disassembly of section .text.Temp_Rec_Analysis: + +00006798 : + + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 6798: 14d2 push r4-r5, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 679a: 3300 movi r3, 0 + 679c: 2b08 subi r3, 9 + 679e: 60c4 addu r3, r1 + 67a0: 74cd zexth r3, r3 + 67a2: 3b01 cmphsi r3, 2 +{ + 67a4: 6d03 mov r4, r0 + if(((0x09 != Len) && (0x0A != Len)) + 67a6: 08a5 bt 0x68f0 // 68f0 + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 67a8: 8060 ld.b r3, (r0, 0x0) + 67aa: 3255 movi r2, 85 + 67ac: 648e cmpne r3, r2 + 67ae: 08a1 bt 0x68f0 // 68f0 + 67b0: 8041 ld.b r2, (r0, 0x1) + 67b2: 64ca cmpne r2, r3 + 67b4: 089e bt 0x68f0 // 68f0 + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 67b6: 8042 ld.b r2, (r0, 0x2) + 67b8: 33ee movi r3, 238 + 67ba: 64ca cmpne r2, r3 + 67bc: 089a bt 0x68f0 // 68f0 + 67be: 8063 ld.b r3, (r0, 0x3) + 67c0: 5baa addi r5, r3, 3 + 67c2: 6456 cmpne r5, r1 + 67c4: 0896 bt 0x68f0 // 68f0 + || (Tem_Type != RecData[4]) + 67c6: 8044 ld.b r2, (r0, 0x4) + 67c8: 3a43 cmpnei r2, 3 + 67ca: 0893 bt 0x68f0 // 68f0 + || (g_eeprom.dev_addr != RecData[5]) + 67cc: 124a lrw r2, 0x20000350 // 68f4 + 67ce: 8220 ld.b r1, (r2, 0x0) + 67d0: 8045 ld.b r2, (r0, 0x5) + 67d2: 6486 cmpne r1, r2 + 67d4: 088e bt 0x68f0 // 68f0 + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 67d6: 2b01 subi r3, 2 + 67d8: 744d zexth r1, r3 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 67da: 6150 addu r5, r4 + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 67dc: 2002 addi r0, 3 + 67de: e3fffeeb bsr 0x65b4 // 65b4 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 67e2: 5d63 subi r3, r5, 1 + 67e4: 8360 ld.b r3, (r3, 0x0) + 67e6: 2d01 subi r5, 2 + 67e8: 4368 lsli r3, r3, 8 + 67ea: 8540 ld.b r2, (r5, 0x0) + 67ec: 60c8 addu r3, r2 + 67ee: 64c2 cmpne r0, r3 + 67f0: 0880 bt 0x68f0 // 68f0 + { + switch(RecData[6]) + 67f2: 8466 ld.b r3, (r4, 0x6) + 67f4: 3b4a cmpnei r3, 10 + 67f6: 0c27 bf 0x6844 // 6844 + 67f8: 3b0a cmphsi r3, 11 + 67fa: 080e bt 0x6816 // 6816 + 67fc: 2b00 subi r3, 1 + 67fe: 3203 movi r2, 3 + 6800: 64c8 cmphs r2, r3 + 6802: 0824 bt 0x684a // 684a + TempCtrl.CardState = 0x01; + } + } + break; + } + switch(RecData[6]) + 6804: 8406 ld.b r0, (r4, 0x6) + 6806: 2800 subi r0, 1 + 6808: 3803 cmphsi r0, 4 + 680a: 082d bt 0x6864 // 6864 + 680c: 8467 ld.b r3, (r4, 0x7) + 680e: e3ffd277 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6812: 3824 .short 0x3824 + 6814: 5c50 .short 0x5c50 + switch(RecData[6]) + 6816: 3b50 cmpnei r3, 16 + 6818: 0c1d bf 0x6852 // 6852 + 681a: 3b51 cmpnei r3, 17 + 681c: 0bf4 bt 0x6804 // 6804 + Rs485AskCtrlSend(RecData); + 681e: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 6820: 11b6 lrw r5, 0x200003d4 // 68f8 + Rs485AskCtrlSend(RecData); + 6822: e3ffff69 bsr 0x66f4 // 66f4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 6826: 855a ld.b r2, (r5, 0x1a) + 6828: 1135 lrw r1, 0x7fe9 // 68fc + 682a: 3000 movi r0, 0 + 682c: e3ffe990 bsr 0x3b4c // 3b4c + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 6830: 8467 ld.b r3, (r4, 0x7) + 6832: 855a ld.b r2, (r5, 0x1a) + 6834: 64ca cmpne r2, r3 + 6836: 0fe7 bf 0x6804 // 6804 + if(TempCtrl.CardEn == 0x00) + 6838: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 683a: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 683c: 0be4 bt 0x6804 // 6804 + TempCtrl.CardState = 0x01; + 683e: 3301 movi r3, 1 + 6840: a578 st.b r3, (r5, 0x18) + 6842: 07e1 br 0x6804 // 6804 + Rs485AskCycleSend(); + 6844: e3fffee2 bsr 0x6608 // 6608 + 6848: 07de br 0x6804 // 6804 + Rs485AskCtrlSend(RecData); + 684a: 6c13 mov r0, r4 + 684c: e3ffff54 bsr 0x66f4 // 66f4 + 6850: 07da br 0x6804 // 6804 + Rs485AskReadSend(RecData); //版本号查询 + 6852: 6c13 mov r0, r4 + 6854: e3ffff78 bsr 0x6744 // 6744 + 6858: 07d6 br 0x6804 // 6804 + { + case 0x01: //开关机命令 + switch(RecData[7]) + 685a: 74cc zextb r3, r3 + 685c: 3b40 cmpnei r3, 0 + 685e: 0c05 bf 0x6868 // 6868 + 6860: 3b41 cmpnei r3, 1 + 6862: 0c09 bf 0x6874 // 6874 + break; + } + break; + } + + return ret; + 6864: 3000 movi r0, 0 + 6866: 0446 br 0x68f2 // 68f2 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6868: 1144 lrw r2, 0x200003d4 // 68f8 + 686a: 8262 ld.b r3, (r2, 0x2) + 686c: 317f movi r1, 127 + 686e: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6870: a262 st.b r3, (r2, 0x2) + 6872: 07f9 br 0x6864 // 6864 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6874: 1121 lrw r1, 0x200003d4 // 68f8 + 6876: 3200 movi r2, 0 + 6878: 8162 ld.b r3, (r1, 0x2) + 687a: 2a7f subi r2, 128 + 687c: 6cc8 or r3, r2 + 687e: a162 st.b r3, (r1, 0x2) + 6880: 07f2 br 0x6864 // 6864 + switch(RecData[7]) // + 6882: 74cc zextb r3, r3 + 6884: 3b42 cmpnei r3, 2 + 6886: 0c0a bf 0x689a // 689a + 6888: 3b43 cmpnei r3, 3 + 688a: 0c0e bf 0x68a6 // 68a6 + 688c: 3b41 cmpnei r3, 1 + 688e: 0beb bt 0x6864 // 6864 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6890: 105a lrw r2, 0x200003d4 // 68f8 + 6892: 8262 ld.b r3, (r2, 0x2) + 6894: 3170 movi r1, 112 + 6896: 68c5 andn r3, r1 + 6898: 07ec br 0x6870 // 6870 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 689a: 1058 lrw r2, 0x200003d4 // 68f8 + 689c: 8262 ld.b r3, (r2, 0x2) + 689e: 3170 movi r1, 112 + 68a0: 68c5 andn r3, r1 + 68a2: 3ba5 bseti r3, 5 + 68a4: 07e6 br 0x6870 // 6870 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 68a6: 1055 lrw r2, 0x200003d4 // 68f8 + 68a8: 8262 ld.b r3, (r2, 0x2) + 68aa: 3170 movi r1, 112 + 68ac: 68c5 andn r3, r1 + 68ae: 3ba6 bseti r3, 6 + 68b0: 07e0 br 0x6870 // 6870 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] <= TEM_MAX_SET)) //在指定温度范围内 + 68b2: 3200 movi r2, 0 + 68b4: 74cc zextb r3, r3 + 68b6: 2a0f subi r2, 16 + 68b8: 608c addu r2, r3 + 68ba: 7488 zextb r2, r2 + 68bc: 3a10 cmphsi r2, 17 + 68be: 0bd3 bt 0x6864 // 6864 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 68c0: 301f movi r0, 31 + 68c2: 68c0 and r3, r0 + 68c4: 104d lrw r2, 0x200003d4 // 68f8 + 68c6: a261 st.b r3, (r2, 0x1) + 68c8: 07ce br 0x6864 // 6864 + switch(RecData[7]) //风速 + 68ca: 740c zextb r0, r3 + 68cc: 106b lrw r3, 0x200003d4 // 68f8 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68ce: 8342 ld.b r2, (r3, 0x2) + 68d0: 310e movi r1, 14 + switch(RecData[7]) //风速 + 68d2: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68d4: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 68d6: 080b bt 0x68ec // 68ec + 68d8: e3ffd212 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 68dc: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 68e0: 3aa1 bseti r2, 1 + 68e2: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68e4: a342 st.b r2, (r3, 0x2) + 68e6: 07bf br 0x6864 // 6864 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 68e8: 3aa2 bseti r2, 2 + 68ea: 07fd br 0x68e4 // 68e4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 68ec: 3aa1 bseti r2, 1 + 68ee: 07fb br 0x68e4 // 68e4 + return ret = 0x01; + 68f0: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 68f2: 1492 pop r4-r5, r15 + 68f4: 20000350 .long 0x20000350 + 68f8: 200003d4 .long 0x200003d4 + 68fc: 00007fe9 .long 0x00007fe9 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00006900 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 6900: 14d2 push r4-r5, r15 + 6902: 6d03 mov r4, r0 + 6904: 6d47 mov r5, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 6906: e3ffff49 bsr 0x6798 // 6798 + 690a: 3840 cmpnei r0, 0 + 690c: 0803 bt 0x6912 // 6912 + { + return ret = 1; + } + } + + return ret; + 690e: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 6910: 0409 br 0x6922 // 6922 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 6912: 8440 ld.b r2, (r4, 0x0) + 6914: 33ff movi r3, 255 + 6916: 64ca cmpne r2, r3 + 6918: 0c06 bf 0x6924 // 6924 + 691a: 8461 ld.b r3, (r4, 0x1) + 691c: 3b48 cmpnei r3, 8 + 691e: 0c03 bf 0x6924 // 6924 + return ret = 1; + 6920: 3001 movi r0, 1 + 6922: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 6924: 1125 lrw r1, 0x7ff8 // 69b8 + 6926: 3000 movi r0, 0 + 6928: e3ffe912 bsr 0x3b4c // 3b4c + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 692c: 3d45 cmpnei r5, 5 + 692e: 0814 bt 0x6956 // 6956 + 6930: 3104 movi r1, 4 + 6932: 6c13 mov r0, r4 + 6934: e3fffe5e bsr 0x65f0 // 65f0 + 6938: 8464 ld.b r3, (r4, 0x4) + 693a: 640e cmpne r3, r0 + 693c: 0bf2 bt 0x6920 // 6920 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 693e: 1160 lrw r3, 0x200003d4 // 69bc + 6940: 8442 ld.b r2, (r4, 0x2) + 6942: 8338 ld.b r1, (r3, 0x18) + 6944: 6486 cmpne r1, r2 + 6946: 0fe4 bf 0x690e // 690e + 6948: 833a ld.b r1, (r3, 0x1a) + 694a: 3941 cmpnei r1, 1 + 694c: 0be1 bt 0x690e // 690e + TempCtrl.CardState = RecData[2]; + 694e: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 6950: 3201 movi r2, 1 + 6952: a359 st.b r2, (r3, 0x19) + 6954: 07dd br 0x690e // 690e + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 6956: 3d09 cmphsi r5, 10 + 6958: 0fe4 bf 0x6920 // 6920 + 695a: 5d27 subi r1, r5, 2 + 695c: 7445 zexth r1, r1 + 695e: 6150 addu r5, r4 + 6960: 6c13 mov r0, r4 + 6962: e3fffe29 bsr 0x65b4 // 65b4 + 6966: 5d63 subi r3, r5, 1 + 6968: 8360 ld.b r3, (r3, 0x0) + 696a: 2d01 subi r5, 2 + 696c: 4368 lsli r3, r3, 8 + 696e: 8540 ld.b r2, (r5, 0x0) + 6970: 60c8 addu r3, r2 + 6972: 64c2 cmpne r0, r3 + 6974: 0bd6 bt 0x6920 // 6920 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 6976: 1072 lrw r3, 0x200003d4 // 69bc + 6978: 8443 ld.b r2, (r4, 0x3) + 697a: 8338 ld.b r1, (r3, 0x18) + 697c: 6486 cmpne r1, r2 + 697e: 0c07 bf 0x698c // 698c + 6980: 833a ld.b r1, (r3, 0x1a) + 6982: 3941 cmpnei r1, 1 + 6984: 0804 bt 0x698c // 698c + TempCtrl.CardState = RecData[3]; + 6986: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 6988: 3201 movi r2, 1 + 698a: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 698c: 8447 ld.b r2, (r4, 0x7) + 698e: 833b ld.b r1, (r3, 0x1b) + 6990: 6486 cmpne r1, r2 + 6992: 0c0d bf 0x69ac // 69ac + TempCtrl.SceneNo = RecData[7]; + 6994: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 6996: 104b lrw r2, 0x200000b8 // 69c0 + 6998: 9240 ld.w r2, (r2, 0x0) + 699a: 4a28 lsri r1, r2, 8 + 699c: a354 st.b r2, (r3, 0x14) + 699e: a335 st.b r1, (r3, 0x15) + 69a0: 4a30 lsri r1, r2, 16 + 69a2: 4a58 lsri r2, r2, 24 + 69a4: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 69a6: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 69a8: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 69aa: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 69ac: 835b ld.b r2, (r3, 0x1b) + 69ae: 1026 lrw r1, 0x800a // 69c4 + 69b0: 3000 movi r0, 0 + 69b2: e3ffe8cd bsr 0x3b4c // 3b4c + 69b6: 07ac br 0x690e // 690e + 69b8: 00007ff8 .long 0x00007ff8 + 69bc: 200003d4 .long 0x200003d4 + 69c0: 200000b8 .long 0x200000b8 + 69c4: 0000800a .long 0x0000800a + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +000069c8 : + 69c8: 1063 lrw r3, 0x20000058 // 69d4 + 69ca: 9340 ld.w r2, (r3, 0x0) + 69cc: 926b ld.w r3, (r2, 0x2c) + 69ce: 6c0c or r0, r3 + 69d0: b20b st.w r0, (r2, 0x2c) + 69d2: 783c jmp r15 + 69d4: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +000069d8 : + 69d8: 14c1 push r4 + 69da: 1069 lrw r3, 0x20000058 // 69fc + 69dc: 3840 cmpnei r0, 0 + 69de: 9380 ld.w r4, (r3, 0x0) + 69e0: 9400 ld.w r0, (r4, 0x0) + 69e2: 0c0b bf 0x69f8 // 69f8 + 69e4: 38a0 bseti r0, 0 + 69e6: b400 st.w r0, (r4, 0x0) + 69e8: 9360 ld.w r3, (r3, 0x0) + 69ea: 4248 lsli r2, r2, 8 + 69ec: 4122 lsli r1, r1, 2 + 69ee: 9300 ld.w r0, (r3, 0x0) + 69f0: 6c48 or r1, r2 + 69f2: 6c40 or r1, r0 + 69f4: b320 st.w r1, (r3, 0x0) + 69f6: 1481 pop r4 + 69f8: 3880 bclri r0, 0 + 69fa: 07f6 br 0x69e6 // 69e6 + 69fc: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +00006a00 : + 6a00: 14c4 push r4-r7 + 6a02: 1429 subi r14, r14, 36 + 6a04: b840 st.w r2, (r14, 0x0) + 6a06: 984d ld.w r2, (r14, 0x34) + 6a08: b841 st.w r2, (r14, 0x4) + 6a0a: 984e ld.w r2, (r14, 0x38) + 6a0c: b842 st.w r2, (r14, 0x8) + 6a0e: 984f ld.w r2, (r14, 0x3c) + 6a10: b843 st.w r2, (r14, 0xc) + 6a12: 9850 ld.w r2, (r14, 0x40) + 6a14: 9895 ld.w r4, (r14, 0x54) + 6a16: b844 st.w r2, (r14, 0x10) + 6a18: 9853 ld.w r2, (r14, 0x4c) + 6a1a: b845 st.w r2, (r14, 0x14) + 6a1c: b887 st.w r4, (r14, 0x1c) + 6a1e: 9854 ld.w r2, (r14, 0x50) + 6a20: 1c11 addi r4, r14, 68 + 6a22: b846 st.w r2, (r14, 0x18) + 6a24: 8c80 ld.h r4, (r4, 0x0) + 6a26: 1a15 addi r2, r14, 84 + 6a28: 1d12 addi r5, r14, 72 + 6a2a: 8244 ld.b r2, (r2, 0x4) + 6a2c: 3c40 cmpnei r4, 0 + 6a2e: 8dc0 ld.h r6, (r5, 0x0) + 6a30: b848 st.w r2, (r14, 0x20) + 6a32: 0813 bt 0x6a58 // 6a58 + 6a34: 105f lrw r2, 0x2000004c // 6ab0 + 6a36: 35f0 movi r5, 240 + 6a38: 92e0 ld.w r7, (r2, 0x0) + 6a3a: 9740 ld.w r2, (r7, 0x0) + 6a3c: 45a4 lsli r5, r5, 4 + 6a3e: 6895 andn r2, r5 + 6a40: 3aab bseti r2, 11 + 6a42: b740 st.w r2, (r7, 0x0) + 6a44: 3502 movi r5, 2 + 6a46: 105c lrw r2, 0x20000050 // 6ab4 + 6a48: 3e41 cmpnei r6, 1 + 6a4a: 9240 ld.w r2, (r2, 0x0) + 6a4c: b2a0 st.w r5, (r2, 0x0) + 6a4e: 0828 bt 0x6a9e // 6a9e + 6a50: 92a4 ld.w r5, (r2, 0x10) + 6a52: 3db8 bseti r5, 24 + 6a54: 3db9 bseti r5, 25 + 6a56: b2a4 st.w r5, (r2, 0x10) + 6a58: 1058 lrw r2, 0x20000058 // 6ab8 + 6a5a: 448d lsli r4, r4, 13 + 6a5c: 92a0 ld.w r5, (r2, 0x0) + 6a5e: 9541 ld.w r2, (r5, 0x4) + 6a60: 3200 movi r2, 0 + 6a62: b541 st.w r2, (r5, 0x4) + 6a64: 9541 ld.w r2, (r5, 0x4) + 6a66: 98c7 ld.w r6, (r14, 0x1c) + 6a68: 6c98 or r2, r6 + 6a6a: 98c6 ld.w r6, (r14, 0x18) + 6a6c: 6c98 or r2, r6 + 6a6e: 98c5 ld.w r6, (r14, 0x14) + 6a70: 6c98 or r2, r6 + 6a72: 98c8 ld.w r6, (r14, 0x20) + 6a74: 46d8 lsli r6, r6, 24 + 6a76: 6c98 or r2, r6 + 6a78: 98c4 ld.w r6, (r14, 0x10) + 6a7a: 6c98 or r2, r6 + 6a7c: 98c3 ld.w r6, (r14, 0xc) + 6a7e: 6c98 or r2, r6 + 6a80: 98c2 ld.w r6, (r14, 0x8) + 6a82: 6c98 or r2, r6 + 6a84: 98c1 ld.w r6, (r14, 0x4) + 6a86: 6c98 or r2, r6 + 6a88: 6c48 or r1, r2 + 6a8a: 9840 ld.w r2, (r14, 0x0) + 6a8c: 6c04 or r0, r1 + 6a8e: 4242 lsli r2, r2, 2 + 6a90: 6c08 or r0, r2 + 6a92: 6d00 or r4, r0 + 6a94: 4367 lsli r3, r3, 7 + 6a96: 6cd0 or r3, r4 + 6a98: b561 st.w r3, (r5, 0x4) + 6a9a: 1409 addi r14, r14, 36 + 6a9c: 1484 pop r4-r7 + 6a9e: 3e40 cmpnei r6, 0 + 6aa0: 0bdc bt 0x6a58 // 6a58 + 6aa2: 9264 ld.w r3, (r2, 0x10) + 6aa4: 3b98 bclri r3, 24 + 6aa6: 3b99 bclri r3, 25 + 6aa8: 3bb8 bseti r3, 24 + 6aaa: b264 st.w r3, (r2, 0x10) + 6aac: 3300 movi r3, 0 + 6aae: 07d5 br 0x6a58 // 6a58 + 6ab0: 2000004c .long 0x2000004c + 6ab4: 20000050 .long 0x20000050 + 6ab8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00006abc : + 6abc: 14d4 push r4-r7, r15 + 6abe: 1422 subi r14, r14, 8 + 6ac0: 1269 lrw r3, 0x2000004c // 6be4 + 6ac2: 31f0 movi r1, 240 + 6ac4: 9360 ld.w r3, (r3, 0x0) + 6ac6: 9340 ld.w r2, (r3, 0x0) + 6ac8: 4130 lsli r1, r1, 16 + 6aca: 6885 andn r2, r1 + 6acc: 3ab4 bseti r2, 20 + 6ace: 3ab7 bseti r2, 23 + 6ad0: b340 st.w r2, (r3, 0x0) + 6ad2: 35f0 movi r5, 240 + 6ad4: 1245 lrw r2, 0x2000010c // 6be8 + 6ad6: 36f0 movi r6, 240 + 6ad8: 9240 ld.w r2, (r2, 0x0) + 6ada: b841 st.w r2, (r14, 0x4) + 6adc: 3400 movi r4, 0 + 6ade: 1244 lrw r2, 0x20000048 // 6bec + 6ae0: 45ac lsli r5, r5, 12 + 6ae2: 9240 ld.w r2, (r2, 0x0) + 6ae4: b820 st.w r1, (r14, 0x0) + 6ae6: 46c8 lsli r6, r6, 8 + 6ae8: 3701 movi r7, 1 + 6aea: 71d0 lsl r7, r4 + 6aec: 9821 ld.w r1, (r14, 0x4) + 6aee: 69c4 and r7, r1 + 6af0: 3f40 cmpnei r7, 0 + 6af2: 7410 zextb r0, r4 + 6af4: 0c1b bf 0x6b2a // 6b2a + 6af6: 2800 subi r0, 1 + 6af8: 380f cmphsi r0, 16 + 6afa: 080b bt 0x6b10 // 6b10 + 6afc: e3ffd100 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6b00: 27201a0f .long 0x27201a0f + 6b04: 3d38312c .long 0x3d38312c + 6b08: 56514a44 .long 0x56514a44 + 6b0c: 6c67615b .long 0x6c67615b + 6b10: 9200 ld.w r0, (r2, 0x0) + 6b12: 37f0 movi r7, 240 + 6b14: 681d andn r0, r7 + 6b16: 38a4 bseti r0, 4 + 6b18: 38a7 bseti r0, 7 + 6b1a: b200 st.w r0, (r2, 0x0) + 6b1c: 0407 br 0x6b2a // 6b2a + 6b1e: 9300 ld.w r0, (r3, 0x0) + 6b20: 370f movi r7, 15 + 6b22: 681d andn r0, r7 + 6b24: 38a0 bseti r0, 0 + 6b26: 38a3 bseti r0, 3 + 6b28: b300 st.w r0, (r3, 0x0) + 6b2a: 2400 addi r4, 1 + 6b2c: 3c51 cmpnei r4, 17 + 6b2e: 0bdd bt 0x6ae8 // 6ae8 + 6b30: 1402 addi r14, r14, 8 + 6b32: 1494 pop r4-r7, r15 + 6b34: 9300 ld.w r0, (r3, 0x0) + 6b36: 37f0 movi r7, 240 + 6b38: 681d andn r0, r7 + 6b3a: 38a4 bseti r0, 4 + 6b3c: 38a7 bseti r0, 7 + 6b3e: 07f5 br 0x6b28 // 6b28 + 6b40: 37f0 movi r7, 240 + 6b42: 9300 ld.w r0, (r3, 0x0) + 6b44: 47e4 lsli r7, r7, 4 + 6b46: 681d andn r0, r7 + 6b48: 38a8 bseti r0, 8 + 6b4a: 38ab bseti r0, 11 + 6b4c: 07ee br 0x6b28 // 6b28 + 6b4e: 9300 ld.w r0, (r3, 0x0) + 6b50: 6819 andn r0, r6 + 6b52: 38ac bseti r0, 12 + 6b54: 38af bseti r0, 15 + 6b56: 07e9 br 0x6b28 // 6b28 + 6b58: 9300 ld.w r0, (r3, 0x0) + 6b5a: 6815 andn r0, r5 + 6b5c: 38b0 bseti r0, 16 + 6b5e: 38b3 bseti r0, 19 + 6b60: 07e4 br 0x6b28 // 6b28 + 6b62: 37f0 movi r7, 240 + 6b64: 9200 ld.w r0, (r2, 0x0) + 6b66: 47e4 lsli r7, r7, 4 + 6b68: 681d andn r0, r7 + 6b6a: 38a8 bseti r0, 8 + 6b6c: 38ab bseti r0, 11 + 6b6e: 07d6 br 0x6b1a // 6b1a + 6b70: 9200 ld.w r0, (r2, 0x0) + 6b72: 6819 andn r0, r6 + 6b74: 38ac bseti r0, 12 + 6b76: 38af bseti r0, 15 + 6b78: 07d1 br 0x6b1a // 6b1a + 6b7a: 9301 ld.w r0, (r3, 0x4) + 6b7c: 370f movi r7, 15 + 6b7e: 681d andn r0, r7 + 6b80: 38a0 bseti r0, 0 + 6b82: 38a3 bseti r0, 3 + 6b84: b301 st.w r0, (r3, 0x4) + 6b86: 07d2 br 0x6b2a // 6b2a + 6b88: 9301 ld.w r0, (r3, 0x4) + 6b8a: 37f0 movi r7, 240 + 6b8c: 681d andn r0, r7 + 6b8e: 38a4 bseti r0, 4 + 6b90: 38a7 bseti r0, 7 + 6b92: 07f9 br 0x6b84 // 6b84 + 6b94: 37f0 movi r7, 240 + 6b96: 9301 ld.w r0, (r3, 0x4) + 6b98: 47e4 lsli r7, r7, 4 + 6b9a: 681d andn r0, r7 + 6b9c: 38a8 bseti r0, 8 + 6b9e: 38ab bseti r0, 11 + 6ba0: 07f2 br 0x6b84 // 6b84 + 6ba2: 9301 ld.w r0, (r3, 0x4) + 6ba4: 6819 andn r0, r6 + 6ba6: 38ac bseti r0, 12 + 6ba8: 38af bseti r0, 15 + 6baa: 07ed br 0x6b84 // 6b84 + 6bac: 9301 ld.w r0, (r3, 0x4) + 6bae: 6815 andn r0, r5 + 6bb0: 38b0 bseti r0, 16 + 6bb2: 38b3 bseti r0, 19 + 6bb4: 07e8 br 0x6b84 // 6b84 + 6bb6: 9301 ld.w r0, (r3, 0x4) + 6bb8: 9820 ld.w r1, (r14, 0x0) + 6bba: 6805 andn r0, r1 + 6bbc: 38b4 bseti r0, 20 + 6bbe: 38b7 bseti r0, 23 + 6bc0: 07e2 br 0x6b84 // 6b84 + 6bc2: 9200 ld.w r0, (r2, 0x0) + 6bc4: 370f movi r7, 15 + 6bc6: 681d andn r0, r7 + 6bc8: 38a0 bseti r0, 0 + 6bca: 38a3 bseti r0, 3 + 6bcc: 07a7 br 0x6b1a // 6b1a + 6bce: 9200 ld.w r0, (r2, 0x0) + 6bd0: 6815 andn r0, r5 + 6bd2: 38b0 bseti r0, 16 + 6bd4: 38b3 bseti r0, 19 + 6bd6: 07a2 br 0x6b1a // 6b1a + 6bd8: 9200 ld.w r0, (r2, 0x0) + 6bda: 9820 ld.w r1, (r14, 0x0) + 6bdc: 6805 andn r0, r1 + 6bde: 38b4 bseti r0, 20 + 6be0: 38b7 bseti r0, 23 + 6be2: 079c br 0x6b1a // 6b1a + 6be4: 2000004c .long 0x2000004c + 6be8: 2000010c .long 0x2000010c + 6bec: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +00006bf0 : + 6bf0: 14c4 push r4-r7 + 6bf2: 1072 lrw r3, 0x20000054 // 6c38 + 6bf4: 1012 lrw r0, 0x200008d2 // 6c3c + 6bf6: 1093 lrw r4, 0x20000743 // 6c40 + 6bf8: 6d83 mov r6, r0 + 6bfa: 93a0 ld.w r5, (r3, 0x0) + 6bfc: 3300 movi r3, 0 + 6bfe: 4342 lsli r2, r3, 2 + 6c00: 6094 addu r2, r5 + 6c02: 9220 ld.w r1, (r2, 0x0) + 6c04: 4341 lsli r2, r3, 1 + 6c06: 6080 addu r2, r0 + 6c08: 7445 zexth r1, r1 + 6c0a: aa20 st.h r1, (r2, 0x0) + 6c0c: 8440 ld.b r2, (r4, 0x0) + 6c0e: 3a41 cmpnei r2, 1 + 6c10: 080f bt 0x6c2e // 6c2e + 6c12: 3300 movi r3, 0 + 6c14: 10ec lrw r7, 0x2000062c // 6c44 + 6c16: 4341 lsli r2, r3, 1 + 6c18: 5e28 addu r1, r6, r2 + 6c1a: 8920 ld.h r1, (r1, 0x0) + 6c1c: 2300 addi r3, 1 + 6c1e: 7445 zexth r1, r1 + 6c20: 609c addu r2, r7 + 6c22: 3b51 cmpnei r3, 17 + 6c24: aa20 st.h r1, (r2, 0x0) + 6c26: 0bf8 bt 0x6c16 // 6c16 + 6c28: 3300 movi r3, 0 + 6c2a: a460 st.b r3, (r4, 0x0) + 6c2c: 3311 movi r3, 17 + 6c2e: 2300 addi r3, 1 + 6c30: 74cc zextb r3, r3 + 6c32: 3b10 cmphsi r3, 17 + 6c34: 0fe5 bf 0x6bfe // 6bfe + 6c36: 1484 pop r4-r7 + 6c38: 20000054 .long 0x20000054 + 6c3c: 200008d2 .long 0x200008d2 + 6c40: 20000743 .long 0x20000743 + 6c44: 2000062c .long 0x2000062c + +Disassembly of section .text.TKEYIntHandler: + +00006c48 : + 6c48: 1460 nie + 6c4a: 1462 ipush + 6c4c: 14d1 push r4, r15 + 6c4e: 109e lrw r4, 0x20000070 // 6cc4 + 6c50: 9460 ld.w r3, (r4, 0x0) + 6c52: 3b40 cmpnei r3, 0 + 6c54: 080b bt 0x6c6a // 6c6a + 6c56: 3301 movi r3, 1 + 6c58: b460 st.w r3, (r4, 0x0) + 6c5a: 107c lrw r3, 0x200006c0 // 6cc8 + 6c5c: 8360 ld.b r3, (r3, 0x0) + 6c5e: 3b41 cmpnei r3, 1 + 6c60: 0805 bt 0x6c6a // 6c6a + 6c62: e3ffffc7 bsr 0x6bf0 // 6bf0 + 6c66: 3301 movi r3, 1 + 6c68: a464 st.b r3, (r4, 0x4) + 6c6a: 1079 lrw r3, 0x20000058 // 6ccc + 6c6c: 3101 movi r1, 1 + 6c6e: 9360 ld.w r3, (r3, 0x0) + 6c70: 934a ld.w r2, (r3, 0x28) + 6c72: 6884 and r2, r1 + 6c74: 3a40 cmpnei r2, 0 + 6c76: 0c02 bf 0x6c7a // 6c7a + 6c78: b32c st.w r1, (r3, 0x30) + 6c7a: 934a ld.w r2, (r3, 0x28) + 6c7c: 3102 movi r1, 2 + 6c7e: 6884 and r2, r1 + 6c80: 3a40 cmpnei r2, 0 + 6c82: 0c02 bf 0x6c86 // 6c86 + 6c84: b32c st.w r1, (r3, 0x30) + 6c86: 934a ld.w r2, (r3, 0x28) + 6c88: 3104 movi r1, 4 + 6c8a: 6884 and r2, r1 + 6c8c: 3a40 cmpnei r2, 0 + 6c8e: 0c02 bf 0x6c92 // 6c92 + 6c90: b32c st.w r1, (r3, 0x30) + 6c92: 934a ld.w r2, (r3, 0x28) + 6c94: 3108 movi r1, 8 + 6c96: 6884 and r2, r1 + 6c98: 3a40 cmpnei r2, 0 + 6c9a: 0c02 bf 0x6c9e // 6c9e + 6c9c: b32c st.w r1, (r3, 0x30) + 6c9e: 934a ld.w r2, (r3, 0x28) + 6ca0: 3110 movi r1, 16 + 6ca2: 6884 and r2, r1 + 6ca4: 3a40 cmpnei r2, 0 + 6ca6: 0c02 bf 0x6caa // 6caa + 6ca8: b32c st.w r1, (r3, 0x30) + 6caa: 934a ld.w r2, (r3, 0x28) + 6cac: 3120 movi r1, 32 + 6cae: 6884 and r2, r1 + 6cb0: 3a40 cmpnei r2, 0 + 6cb2: 0c02 bf 0x6cb6 // 6cb6 + 6cb4: b32c st.w r1, (r3, 0x30) + 6cb6: d9ee2001 ld.w r15, (r14, 0x4) + 6cba: 9880 ld.w r4, (r14, 0x0) + 6cbc: 1402 addi r14, r14, 8 + 6cbe: 1463 ipop + 6cc0: 1461 nir + 6cc2: 0000 bkpt + 6cc4: 20000070 .long 0x20000070 + 6cc8: 200006c0 .long 0x200006c0 + 6ccc: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00006cd0 : + 6cd0: 14c2 push r4-r5 + 6cd2: 3200 movi r2, 0 + 6cd4: 3000 movi r0, 0 + 6cd6: 1088 lrw r4, 0x20000760 // 6cf4 + 6cd8: 3501 movi r5, 1 + 6cda: 3120 movi r1, 32 + 6cdc: 9460 ld.w r3, (r4, 0x0) + 6cde: 70c9 lsr r3, r2 + 6ce0: 68d4 and r3, r5 + 6ce2: 3b40 cmpnei r3, 0 + 6ce4: 0c02 bf 0x6ce8 // 6ce8 + 6ce6: 2000 addi r0, 1 + 6ce8: 2200 addi r2, 1 + 6cea: 644a cmpne r2, r1 + 6cec: 0bf8 bt 0x6cdc // 6cdc + 6cee: 7400 zextb r0, r0 + 6cf0: 1482 pop r4-r5 + 6cf2: 0000 bkpt + 6cf4: 20000760 .long 0x20000760 + +Disassembly of section .text.TK_Baseline_prog: + +00006cf8 : + 6cf8: 14c4 push r4-r7 + 6cfa: 1423 subi r14, r14, 12 + 6cfc: 1079 lrw r3, 0x20000058 // 6d60 + 6cfe: 105a lrw r2, 0x2000062c // 6d64 + 6d00: 10ba lrw r5, 0x20000070 // 6d68 + 6d02: b842 st.w r2, (r14, 0x8) + 6d04: 9360 ld.w r3, (r3, 0x0) + 6d06: b860 st.w r3, (r14, 0x0) + 6d08: 1079 lrw r3, 0x20000054 // 6d6c + 6d0a: 9360 ld.w r3, (r3, 0x0) + 6d0c: b861 st.w r3, (r14, 0x4) + 6d0e: 3306 movi r3, 6 + 6d10: 3201 movi r2, 1 + 6d12: 9820 ld.w r1, (r14, 0x0) + 6d14: b142 st.w r2, (r1, 0x8) + 6d16: 3200 movi r2, 0 + 6d18: b540 st.w r2, (r5, 0x0) + 6d1a: 9540 ld.w r2, (r5, 0x0) + 6d1c: 3a40 cmpnei r2, 0 + 6d1e: 0ffe bf 0x6d1a // 6d1a + 6d20: 6c03 mov r0, r0 + 6d22: 3200 movi r2, 0 + 6d24: 10d3 lrw r6, 0x200008d2 // 6d70 + 6d26: 4202 lsli r0, r2, 2 + 6d28: 9821 ld.w r1, (r14, 0x4) + 6d2a: 6004 addu r0, r1 + 6d2c: 9080 ld.w r4, (r0, 0x0) + 6d2e: 4221 lsli r1, r2, 1 + 6d30: 98e2 ld.w r7, (r14, 0x8) + 6d32: 61c4 addu r7, r1 + 6d34: 7511 zexth r4, r4 + 6d36: af80 st.h r4, (r7, 0x0) + 6d38: 9000 ld.w r0, (r0, 0x0) + 6d3a: 2200 addi r2, 1 + 6d3c: 7401 zexth r0, r0 + 6d3e: 6058 addu r1, r6 + 6d40: 3a51 cmpnei r2, 17 + 6d42: a900 st.h r0, (r1, 0x0) + 6d44: 0bf1 bt 0x6d26 // 6d26 + 6d46: 2b00 subi r3, 1 + 6d48: 74cc zextb r3, r3 + 6d4a: 3b40 cmpnei r3, 0 + 6d4c: 0be2 bt 0x6d10 // 6d10 + 6d4e: 106a lrw r3, 0x200006c0 // 6d74 + 6d50: 3201 movi r2, 1 + 6d52: a340 st.b r2, (r3, 0x0) + 6d54: 3200 movi r2, 0 + 6d56: 1069 lrw r3, 0x20000849 // 6d78 + 6d58: a340 st.b r2, (r3, 0x0) + 6d5a: 1403 addi r14, r14, 12 + 6d5c: 1484 pop r4-r7 + 6d5e: 0000 bkpt + 6d60: 20000058 .long 0x20000058 + 6d64: 2000062c .long 0x2000062c + 6d68: 20000070 .long 0x20000070 + 6d6c: 20000054 .long 0x20000054 + 6d70: 200008d2 .long 0x200008d2 + 6d74: 200006c0 .long 0x200006c0 + 6d78: 20000849 .long 0x20000849 + +Disassembly of section .text.TK_Scan_Start: + +00006d7c : + 6d7c: 1046 lrw r2, 0x20000070 // 6d94 + 6d7e: 8264 ld.b r3, (r2, 0x4) + 6d80: 74cc zextb r3, r3 + 6d82: 3b41 cmpnei r3, 1 + 6d84: 0807 bt 0x6d92 // 6d92 + 6d86: 1025 lrw r1, 0x20000058 // 6d98 + 6d88: 9120 ld.w r1, (r1, 0x0) + 6d8a: b162 st.w r3, (r1, 0x8) + 6d8c: 3300 movi r3, 0 + 6d8e: b260 st.w r3, (r2, 0x0) + 6d90: a264 st.b r3, (r2, 0x4) + 6d92: 783c jmp r15 + 6d94: 20000070 .long 0x20000070 + 6d98: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00006d9c : + 6d9c: 14d4 push r4-r7, r15 + 6d9e: 1425 subi r14, r14, 20 + 6da0: 1271 lrw r3, 0x20000108 // 6ee4 + 6da2: 8360 ld.b r3, (r3, 0x0) + 6da4: b860 st.w r3, (r14, 0x0) + 6da6: 3400 movi r4, 0 + 6da8: 1270 lrw r3, 0x200000dc // 6ee8 + 6daa: 8360 ld.b r3, (r3, 0x0) + 6dac: b861 st.w r3, (r14, 0x4) + 6dae: 12f0 lrw r7, 0x200006d6 // 6eec + 6db0: 1270 lrw r3, 0x200000e5 // 6ef0 + 6db2: 83a0 ld.b r5, (r3, 0x0) + 6db4: 1270 lrw r3, 0x200000e4 // 6ef4 + 6db6: 8360 ld.b r3, (r3, 0x0) + 6db8: b862 st.w r3, (r14, 0x8) + 6dba: 6d9f mov r6, r7 + 6dbc: 126f lrw r3, 0x200008d2 // 6ef8 + 6dbe: b863 st.w r3, (r14, 0xc) + 6dc0: 4461 lsli r3, r4, 1 + 6dc2: 9843 ld.w r2, (r14, 0xc) + 6dc4: 608c addu r2, r3 + 6dc6: 122e lrw r1, 0x2000062c // 6efc + 6dc8: 604c addu r1, r3 + 6dca: 8a40 ld.h r2, (r2, 0x0) + 6dcc: 8920 ld.h r1, (r1, 0x0) + 6dce: 6086 subu r2, r1 + 6dd0: 748b sexth r2, r2 + 6dd2: 5f2c addu r1, r7, r3 + 6dd4: a940 st.h r2, (r1, 0x0) + 6dd6: 8940 ld.h r2, (r1, 0x0) + 6dd8: 748b sexth r2, r2 + 6dda: 3adf btsti r2, 31 + 6ddc: 1249 lrw r2, 0x2000088e // 6f00 + 6dde: 608c addu r2, r3 + 6de0: 0c37 bf 0x6e4e // 6e4e + 6de2: 3100 movi r1, 0 + 6de4: aa20 st.h r1, (r2, 0x0) + 6de6: 9840 ld.w r2, (r14, 0x0) + 6de8: 3a01 cmphsi r2, 2 + 6dea: 0c6d bf 0x6ec4 // 6ec4 + 6dec: 4461 lsli r3, r4, 1 + 6dee: 5e2c addu r1, r6, r3 + 6df0: 1205 lrw r0, 0x20000136 // 6f04 + 6df2: 8940 ld.h r2, (r1, 0x0) + 6df4: 60c0 addu r3, r0 + 6df6: 748b sexth r2, r2 + 6df8: 8b60 ld.h r3, (r3, 0x0) + 6dfa: 648d cmplt r3, r2 + 6dfc: 9840 ld.w r2, (r14, 0x0) + 6dfe: 7cc8 mult r3, r2 + 6e00: 0c2a bf 0x6e54 // 6e54 + 6e02: 8940 ld.h r2, (r1, 0x0) + 6e04: 748b sexth r2, r2 + 6e06: 64c9 cmplt r2, r3 + 6e08: 0c26 bf 0x6e54 // 6e54 + 6e0a: 1240 lrw r2, 0x200006c4 // 6f08 + 6e0c: 6090 addu r2, r4 + 6e0e: 8260 ld.b r3, (r2, 0x0) + 6e10: 2300 addi r3, 1 + 6e12: 74cc zextb r3, r3 + 6e14: a260 st.b r3, (r2, 0x0) + 6e16: 3100 movi r1, 0 + 6e18: 117d lrw r3, 0x200006aa // 6f0c + 6e1a: 60d0 addu r3, r4 + 6e1c: a320 st.b r1, (r3, 0x0) + 6e1e: 117d lrw r3, 0x20000786 // 6f10 + 6e20: 60d0 addu r3, r4 + 6e22: a320 st.b r1, (r3, 0x0) + 6e24: 117c lrw r3, 0x20000800 // 6f14 + 6e26: 60d0 addu r3, r4 + 6e28: a320 st.b r1, (r3, 0x0) + 6e2a: 8260 ld.b r3, (r2, 0x0) + 6e2c: 9821 ld.w r1, (r14, 0x4) + 6e2e: 64c4 cmphs r1, r3 + 6e30: 081f bt 0x6e6e // 6e6e + 6e32: 3d40 cmpnei r5, 0 + 6e34: 0852 bt 0x6ed8 // 6ed8 + 6e36: 1139 lrw r1, 0x200006bc // 6f18 + 6e38: 9160 ld.w r3, (r1, 0x0) + 6e3a: 3b40 cmpnei r3, 0 + 6e3c: 0806 bt 0x6e48 // 6e48 + 6e3e: 9100 ld.w r0, (r1, 0x0) + 6e40: 3301 movi r3, 1 + 6e42: 70d0 lsl r3, r4 + 6e44: 6cc0 or r3, r0 + 6e46: b160 st.w r3, (r1, 0x0) + 6e48: 3300 movi r3, 0 + 6e4a: a260 st.b r3, (r2, 0x0) + 6e4c: 0411 br 0x6e6e // 6e6e + 6e4e: 8920 ld.h r1, (r1, 0x0) + 6e50: 7445 zexth r1, r1 + 6e52: 07c9 br 0x6de4 // 6de4 + 6e54: 4441 lsli r2, r4, 1 + 6e56: 6098 addu r2, r6 + 6e58: 8a40 ld.h r2, (r2, 0x0) + 6e5a: 748b sexth r2, r2 + 6e5c: 648d cmplt r3, r2 + 6e5e: 0c08 bf 0x6e6e // 6e6e + 6e60: 3300 movi r3, 0 + 6e62: 114e lrw r2, 0x200006bc // 6f18 + 6e64: 2b01 subi r3, 2 + 6e66: 9220 ld.w r1, (r2, 0x0) + 6e68: 70d3 rotl r3, r4 + 6e6a: 68c4 and r3, r1 + 6e6c: b260 st.w r3, (r2, 0x0) + 6e6e: 4441 lsli r2, r4, 1 + 6e70: 5e68 addu r3, r6, r2 + 6e72: 8b60 ld.h r3, (r3, 0x0) + 6e74: 74cf sexth r3, r3 + 6e76: b864 st.w r3, (r14, 0x10) + 6e78: 3105 movi r1, 5 + 6e7a: 1163 lrw r3, 0x20000136 // 6f04 + 6e7c: 608c addu r2, r3 + 6e7e: 8a00 ld.h r0, (r2, 0x0) + 6e80: 4002 lsli r0, r0, 2 + 6e82: e3ffe4df bsr 0x3840 // 3840 <__divsi3> + 6e86: 9864 ld.w r3, (r14, 0x10) + 6e88: 640d cmplt r3, r0 + 6e8a: 0c18 bf 0x6eba // 6eba + 6e8c: 1140 lrw r2, 0x200006aa // 6f0c + 6e8e: 6090 addu r2, r4 + 6e90: 8260 ld.b r3, (r2, 0x0) + 6e92: 2300 addi r3, 1 + 6e94: 74cc zextb r3, r3 + 6e96: a260 st.b r3, (r2, 0x0) + 6e98: 3100 movi r1, 0 + 6e9a: 107c lrw r3, 0x200006c4 // 6f08 + 6e9c: 60d0 addu r3, r4 + 6e9e: a320 st.b r1, (r3, 0x0) + 6ea0: 8260 ld.b r3, (r2, 0x0) + 6ea2: 9822 ld.w r1, (r14, 0x8) + 6ea4: 64c4 cmphs r1, r3 + 6ea6: 080a bt 0x6eba // 6eba + 6ea8: 3300 movi r3, 0 + 6eaa: 103c lrw r1, 0x200006bc // 6f18 + 6eac: 2b01 subi r3, 2 + 6eae: 9100 ld.w r0, (r1, 0x0) + 6eb0: 70d3 rotl r3, r4 + 6eb2: 68c0 and r3, r0 + 6eb4: b160 st.w r3, (r1, 0x0) + 6eb6: 3300 movi r3, 0 + 6eb8: a260 st.b r3, (r2, 0x0) + 6eba: 2400 addi r4, 1 + 6ebc: 3c51 cmpnei r4, 17 + 6ebe: 0b81 bt 0x6dc0 // 6dc0 + 6ec0: 1405 addi r14, r14, 20 + 6ec2: 1494 pop r4-r7, r15 + 6ec4: 60d8 addu r3, r6 + 6ec6: 4441 lsli r2, r4, 1 + 6ec8: 102f lrw r1, 0x20000136 // 6f04 + 6eca: 8b60 ld.h r3, (r3, 0x0) + 6ecc: 6084 addu r2, r1 + 6ece: 74cf sexth r3, r3 + 6ed0: 8a40 ld.h r2, (r2, 0x0) + 6ed2: 64c9 cmplt r2, r3 + 6ed4: 0fcd bf 0x6e6e // 6e6e + 6ed6: 079a br 0x6e0a // 6e0a + 6ed8: 3d41 cmpnei r5, 1 + 6eda: 0bb7 bt 0x6e48 // 6e48 + 6edc: 102f lrw r1, 0x200006bc // 6f18 + 6ede: 6cd7 mov r3, r5 + 6ee0: 9100 ld.w r0, (r1, 0x0) + 6ee2: 07b0 br 0x6e42 // 6e42 + 6ee4: 20000108 .long 0x20000108 + 6ee8: 200000dc .long 0x200000dc + 6eec: 200006d6 .long 0x200006d6 + 6ef0: 200000e5 .long 0x200000e5 + 6ef4: 200000e4 .long 0x200000e4 + 6ef8: 200008d2 .long 0x200008d2 + 6efc: 2000062c .long 0x2000062c + 6f00: 2000088e .long 0x2000088e + 6f04: 20000136 .long 0x20000136 + 6f08: 200006c4 .long 0x200006c4 + 6f0c: 200006aa .long 0x200006aa + 6f10: 20000786 .long 0x20000786 + 6f14: 20000800 .long 0x20000800 + 6f18: 200006bc .long 0x200006bc + +Disassembly of section .text.TK_overflow_predict: + +00006f1c : + 6f1c: 14d4 push r4-r7, r15 + 6f1e: 1421 subi r14, r14, 4 + 6f20: 11d9 lrw r6, 0x20000070 // 7004 + 6f22: 8665 ld.b r3, (r6, 0x5) + 6f24: 3b41 cmpnei r3, 1 + 6f26: 085f bt 0x6fe4 // 6fe4 + 6f28: 1158 lrw r2, 0x200007dc // 7008 + 6f2a: 8260 ld.b r3, (r2, 0x0) + 6f2c: 2300 addi r3, 1 + 6f2e: 74cc zextb r3, r3 + 6f30: a260 st.b r3, (r2, 0x0) + 6f32: 8260 ld.b r3, (r2, 0x0) + 6f34: 1136 lrw r1, 0x20000109 // 700c + 6f36: 8120 ld.b r1, (r1, 0x0) + 6f38: 64c4 cmphs r1, r3 + 6f3a: 0855 bt 0x6fe4 // 6fe4 + 6f3c: 3300 movi r3, 0 + 6f3e: a260 st.b r3, (r2, 0x0) + 6f40: 3500 movi r5, 0 + 6f42: 11f4 lrw r7, 0x2000010c // 7010 + 6f44: 2605 addi r6, 6 + 6f46: 9760 ld.w r3, (r7, 0x0) + 6f48: 70d5 lsr r3, r5 + 6f4a: 3201 movi r2, 1 + 6f4c: 68c8 and r3, r2 + 6f4e: 3b40 cmpnei r3, 0 + 6f50: 0c34 bf 0x6fb8 // 6fb8 + 6f52: 4581 lsli r4, r5, 1 + 6f54: 5e70 addu r3, r6, r4 + 6f56: 8b00 ld.h r0, (r3, 0x0) + 6f58: e3ffd324 bsr 0x15a0 // 15a0 <__floatunsidf> + 6f5c: 6cc7 mov r3, r1 + 6f5e: 3180 movi r1, 128 + 6f60: 6c83 mov r2, r0 + 6f62: 4137 lsli r1, r1, 23 + 6f64: 3000 movi r0, 0 + 6f66: e3ffc927 bsr 0x1b4 // 1b4 <__GI_pow> + 6f6a: 116b lrw r3, 0x20000112 // 7014 + 6f6c: 60d0 addu r3, r4 + 6f6e: 8b60 ld.h r3, (r3, 0x0) + 6f70: 4364 lsli r3, r3, 4 + 6f72: 230e addi r3, 15 + 6f74: b860 st.w r3, (r14, 0x0) + 6f76: e3ffcecd bsr 0xd10 // d10 <__fixunsdfsi> + 6f7a: 9860 ld.w r3, (r14, 0x0) + 6f7c: 7cc0 mult r3, r0 + 6f7e: 1147 lrw r2, 0x2000086c // 7018 + 6f80: 740d zexth r0, r3 + 6f82: 6090 addu r2, r4 + 6f84: 1166 lrw r3, 0x200008d2 // 701c + 6f86: 60d0 addu r3, r4 + 6f88: aa00 st.h r0, (r2, 0x0) + 6f8a: 8b60 ld.h r3, (r3, 0x0) + 6f8c: 8a00 ld.h r0, (r2, 0x0) + 6f8e: 7401 zexth r0, r0 + 6f90: 325f movi r2, 95 + 6f92: 74cd zexth r3, r3 + 6f94: 7c08 mult r0, r2 + 6f96: 3164 movi r1, 100 + 6f98: b860 st.w r3, (r14, 0x0) + 6f9a: e3ffe453 bsr 0x3840 // 3840 <__divsi3> + 6f9e: 9860 ld.w r3, (r14, 0x0) + 6fa0: 64c1 cmplt r0, r3 + 6fa2: 0c0b bf 0x6fb8 // 6fb8 + 6fa4: 107f lrw r3, 0x200000e6 // 7020 + 6fa6: 610c addu r4, r3 + 6fa8: 8c60 ld.h r3, (r4, 0x0) + 6faa: 3b06 cmphsi r3, 7 + 6fac: 0806 bt 0x6fb8 // 6fb8 + 6fae: 2300 addi r3, 1 + 6fb0: ac60 st.h r3, (r4, 0x0) + 6fb2: 3201 movi r2, 1 + 6fb4: 107c lrw r3, 0x20000731 // 7024 + 6fb6: a340 st.b r2, (r3, 0x0) + 6fb8: 2500 addi r5, 1 + 6fba: 3d51 cmpnei r5, 17 + 6fbc: 0bc5 bt 0x6f46 // 6f46 + 6fbe: 107a lrw r3, 0x20000731 // 7024 + 6fc0: 8340 ld.b r2, (r3, 0x0) + 6fc2: 3a41 cmpnei r2, 1 + 6fc4: 0810 bt 0x6fe4 // 6fe4 + 6fc6: 3200 movi r2, 0 + 6fc8: a340 st.b r2, (r3, 0x0) + 6fca: 3200 movi r2, 0 + 6fcc: 1077 lrw r3, 0x20000058 // 7028 + 6fce: 1018 lrw r0, 0x200007ff // 702c + 6fd0: 10b8 lrw r5, 0x20000838 // 7030 + 6fd2: 10d4 lrw r6, 0x200000e6 // 7020 + 6fd4: 9360 ld.w r3, (r3, 0x0) + 6fd6: b342 st.w r2, (r3, 0x8) + 6fd8: 1077 lrw r3, 0x20000054 // 7034 + 6fda: 9380 ld.w r4, (r3, 0x0) + 6fdc: 3300 movi r3, 0 + 6fde: 8040 ld.b r2, (r0, 0x0) + 6fe0: 648c cmphs r3, r2 + 6fe2: 0c03 bf 0x6fe8 // 6fe8 + 6fe4: 1401 addi r14, r14, 4 + 6fe6: 1494 pop r4-r7, r15 + 6fe8: 5d4c addu r2, r5, r3 + 6fea: 8240 ld.b r2, (r2, 0x0) + 6fec: 4241 lsli r2, r2, 1 + 6fee: 4322 lsli r1, r3, 2 + 6ff0: 6098 addu r2, r6 + 6ff2: 6050 addu r1, r4 + 6ff4: 8a40 ld.h r2, (r2, 0x0) + 6ff6: 91f2 ld.w r7, (r1, 0x48) + 6ff8: 4254 lsli r2, r2, 20 + 6ffa: 6c9c or r2, r7 + 6ffc: 2300 addi r3, 1 + 6ffe: b152 st.w r2, (r1, 0x48) + 7000: 74cc zextb r3, r3 + 7002: 07ee br 0x6fde // 6fde + 7004: 20000070 .long 0x20000070 + 7008: 200007dc .long 0x200007dc + 700c: 20000109 .long 0x20000109 + 7010: 2000010c .long 0x2000010c + 7014: 20000112 .long 0x20000112 + 7018: 2000086c .long 0x2000086c + 701c: 200008d2 .long 0x200008d2 + 7020: 200000e6 .long 0x200000e6 + 7024: 20000731 .long 0x20000731 + 7028: 20000058 .long 0x20000058 + 702c: 200007ff .long 0x200007ff + 7030: 20000838 .long 0x20000838 + 7034: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00007038 : + 7038: 14c4 push r4-r7 + 703a: 1422 subi r14, r14, 8 + 703c: 1348 lrw r2, 0x2000075e // 71dc + 703e: 8260 ld.b r3, (r2, 0x0) + 7040: 2300 addi r3, 1 + 7042: 74cc zextb r3, r3 + 7044: a260 st.b r3, (r2, 0x0) + 7046: 8260 ld.b r3, (r2, 0x0) + 7048: 1326 lrw r1, 0x20000109 // 71e0 + 704a: 8120 ld.b r1, (r1, 0x0) + 704c: 644c cmphs r3, r1 + 704e: 0cad bf 0x71a8 // 71a8 + 7050: 3300 movi r3, 0 + 7052: a260 st.b r3, (r2, 0x0) + 7054: 1364 lrw r3, 0x200006bc // 71e4 + 7056: 9360 ld.w r3, (r3, 0x0) + 7058: 3b40 cmpnei r3, 0 + 705a: 08a7 bt 0x71a8 // 71a8 + 705c: 1323 lrw r1, 0x200006d6 // 71e8 + 705e: 6dc7 mov r7, r1 + 7060: b820 st.w r1, (r14, 0x0) + 7062: 3200 movi r2, 0 + 7064: 1362 lrw r3, 0x20000136 // 71ec + 7066: 1323 lrw r1, 0x2000062c // 71f0 + 7068: 4201 lsli r0, r2, 1 + 706a: 9880 ld.w r4, (r14, 0x0) + 706c: 6100 addu r4, r0 + 706e: 8c80 ld.h r4, (r4, 0x0) + 7070: 7513 sexth r4, r4 + 7072: 3cdf btsti r4, 31 + 7074: 0c27 bf 0x70c2 // 70c2 + 7076: 13a0 lrw r5, 0x200008d2 // 71f4 + 7078: 5980 addu r4, r1, r0 + 707a: 6014 addu r0, r5 + 707c: b881 st.w r4, (r14, 0x4) + 707e: 8c80 ld.h r4, (r4, 0x0) + 7080: 88c0 ld.h r6, (r0, 0x0) + 7082: 7511 zexth r4, r4 + 7084: 7599 zexth r6, r6 + 7086: 8ba0 ld.h r5, (r3, 0x0) + 7088: 611a subu r4, r6 + 708a: 6551 cmplt r4, r5 + 708c: 081b bt 0x70c2 // 70c2 + 708e: 9881 ld.w r4, (r14, 0x4) + 7090: 8c80 ld.h r4, (r4, 0x0) + 7092: 8800 ld.h r0, (r0, 0x0) + 7094: 7511 zexth r4, r4 + 7096: 7401 zexth r0, r0 + 7098: 5c01 subu r0, r4, r0 + 709a: 4581 lsli r4, r5, 1 + 709c: 6150 addu r5, r4 + 709e: 6541 cmplt r0, r5 + 70a0: 0c11 bf 0x70c2 // 70c2 + 70a2: 1296 lrw r4, 0x20000800 // 71f8 + 70a4: 6108 addu r4, r2 + 70a6: 8400 ld.b r0, (r4, 0x0) + 70a8: 2000 addi r0, 1 + 70aa: 7400 zextb r0, r0 + 70ac: a400 st.b r0, (r4, 0x0) + 70ae: 1214 lrw r0, 0x20000090 // 71fc + 70b0: 84a0 ld.b r5, (r4, 0x0) + 70b2: 8008 ld.b r0, (r0, 0x8) + 70b4: 6540 cmphs r0, r5 + 70b6: 0806 bt 0x70c2 // 70c2 + 70b8: 1212 lrw r0, 0x20000743 // 7200 + 70ba: 3501 movi r5, 1 + 70bc: a0a0 st.b r5, (r0, 0x0) + 70be: 3000 movi r0, 0 + 70c0: a400 st.b r0, (r4, 0x0) + 70c2: 4201 lsli r0, r2, 1 + 70c4: 5f80 addu r4, r7, r0 + 70c6: 8c80 ld.h r4, (r4, 0x0) + 70c8: 7513 sexth r4, r4 + 70ca: 3c20 cmplti r4, 1 + 70cc: 0870 bt 0x71ac // 71ac + 70ce: 128a lrw r4, 0x200008d2 // 71f4 + 70d0: 6100 addu r4, r0 + 70d2: 59a0 addu r5, r1, r0 + 70d4: 8c80 ld.h r4, (r4, 0x0) + 70d6: 8da0 ld.h r5, (r5, 0x0) + 70d8: 7555 zexth r5, r5 + 70da: 7511 zexth r4, r4 + 70dc: 6116 subu r4, r5 + 70de: 8ba0 ld.h r5, (r3, 0x0) + 70e0: 45a2 lsli r5, r5, 2 + 70e2: 6551 cmplt r4, r5 + 70e4: 0864 bt 0x71ac // 71ac + 70e6: 1288 lrw r4, 0x20000786 // 7204 + 70e8: 6108 addu r4, r2 + 70ea: 84a0 ld.b r5, (r4, 0x0) + 70ec: 2500 addi r5, 1 + 70ee: 7554 zextb r5, r5 + 70f0: a4a0 st.b r5, (r4, 0x0) + 70f2: 12a3 lrw r5, 0x20000090 // 71fc + 70f4: 84c0 ld.b r6, (r4, 0x0) + 70f6: 85a9 ld.b r5, (r5, 0x9) + 70f8: 6594 cmphs r5, r6 + 70fa: 0806 bt 0x7106 // 7106 + 70fc: 12a1 lrw r5, 0x20000743 // 7200 + 70fe: 3601 movi r6, 1 + 7100: a5c0 st.b r6, (r5, 0x0) + 7102: 3500 movi r5, 0 + 7104: a4a0 st.b r5, (r4, 0x0) + 7106: 5f80 addu r4, r7, r0 + 7108: 8c80 ld.h r4, (r4, 0x0) + 710a: 7513 sexth r4, r4 + 710c: 3cdf btsti r4, 31 + 710e: 0c10 bf 0x712e // 712e + 7110: 11d9 lrw r6, 0x200008d2 // 71f4 + 7112: 59a0 addu r5, r1, r0 + 7114: 6180 addu r6, r0 + 7116: 8d80 ld.h r4, (r5, 0x0) + 7118: 8ec0 ld.h r6, (r6, 0x0) + 711a: 7599 zexth r6, r6 + 711c: 7511 zexth r4, r4 + 711e: 611a subu r4, r6 + 7120: 8bc0 ld.h r6, (r3, 0x0) + 7122: 6591 cmplt r4, r6 + 7124: 0c05 bf 0x712e // 712e + 7126: 8d80 ld.h r4, (r5, 0x0) + 7128: 2c00 subi r4, 1 + 712a: 7511 zexth r4, r4 + 712c: ad80 st.h r4, (r5, 0x0) + 712e: 5f80 addu r4, r7, r0 + 7130: 8c80 ld.h r4, (r4, 0x0) + 7132: 7513 sexth r4, r4 + 7134: 3cdf btsti r4, 31 + 7136: 0c11 bf 0x7158 // 7158 + 7138: 11cf lrw r6, 0x200008d2 // 71f4 + 713a: 59a0 addu r5, r1, r0 + 713c: 6180 addu r6, r0 + 713e: 8d80 ld.h r4, (r5, 0x0) + 7140: 8ec0 ld.h r6, (r6, 0x0) + 7142: 7599 zexth r6, r6 + 7144: 7511 zexth r4, r4 + 7146: 611a subu r4, r6 + 7148: 8bc0 ld.h r6, (r3, 0x0) + 714a: 4ec1 lsri r6, r6, 1 + 714c: 6591 cmplt r4, r6 + 714e: 0805 bt 0x7158 // 7158 + 7150: 8d80 ld.h r4, (r5, 0x0) + 7152: 2c01 subi r4, 2 + 7154: 7511 zexth r4, r4 + 7156: ad80 st.h r4, (r5, 0x0) + 7158: 5fa0 addu r5, r7, r0 + 715a: 8d80 ld.h r4, (r5, 0x0) + 715c: 7513 sexth r4, r4 + 715e: 3c20 cmplti r4, 1 + 7160: 080c bt 0x7178 // 7178 + 7162: 8da0 ld.h r5, (r5, 0x0) + 7164: 8b80 ld.h r4, (r3, 0x0) + 7166: 7557 sexth r5, r5 + 7168: 4c81 lsri r4, r4, 1 + 716a: 6515 cmplt r5, r4 + 716c: 0c06 bf 0x7178 // 7178 + 716e: 59a0 addu r5, r1, r0 + 7170: 8d80 ld.h r4, (r5, 0x0) + 7172: 2400 addi r4, 1 + 7174: 7511 zexth r4, r4 + 7176: ad80 st.h r4, (r5, 0x0) + 7178: 5fa0 addu r5, r7, r0 + 717a: 8d80 ld.h r4, (r5, 0x0) + 717c: 7513 sexth r4, r4 + 717e: 3c20 cmplti r4, 1 + 7180: 0810 bt 0x71a0 // 71a0 + 7182: 8dc0 ld.h r6, (r5, 0x0) + 7184: 759b sexth r6, r6 + 7186: 8b80 ld.h r4, (r3, 0x0) + 7188: 6519 cmplt r6, r4 + 718a: 0c0b bf 0x71a0 // 71a0 + 718c: 8da0 ld.h r5, (r5, 0x0) + 718e: 7557 sexth r5, r5 + 7190: 4c81 lsri r4, r4, 1 + 7192: 6515 cmplt r5, r4 + 7194: 0806 bt 0x71a0 // 71a0 + 7196: 6004 addu r0, r1 + 7198: 8880 ld.h r4, (r0, 0x0) + 719a: 2401 addi r4, 2 + 719c: 7511 zexth r4, r4 + 719e: a880 st.h r4, (r0, 0x0) + 71a0: 2200 addi r2, 1 + 71a2: 3a51 cmpnei r2, 17 + 71a4: 2301 addi r3, 2 + 71a6: 0b61 bt 0x7068 // 7068 + 71a8: 1402 addi r14, r14, 8 + 71aa: 1484 pop r4-r7 + 71ac: 5f80 addu r4, r7, r0 + 71ae: 8c80 ld.h r4, (r4, 0x0) + 71b0: 7513 sexth r4, r4 + 71b2: 3cdf btsti r4, 31 + 71b4: 0fa9 bf 0x7106 // 7106 + 71b6: 10b0 lrw r5, 0x200008d2 // 71f4 + 71b8: 5980 addu r4, r1, r0 + 71ba: 6140 addu r5, r0 + 71bc: 8c80 ld.h r4, (r4, 0x0) + 71be: 8da0 ld.h r5, (r5, 0x0) + 71c0: 7555 zexth r5, r5 + 71c2: 8bc0 ld.h r6, (r3, 0x0) + 71c4: 7511 zexth r4, r4 + 71c6: 6116 subu r4, r5 + 71c8: 46a1 lsli r5, r6, 1 + 71ca: 6158 addu r5, r6 + 71cc: 6551 cmplt r4, r5 + 71ce: 0b9c bt 0x7106 // 7106 + 71d0: 108c lrw r4, 0x20000743 // 7200 + 71d2: 3501 movi r5, 1 + 71d4: a4a0 st.b r5, (r4, 0x0) + 71d6: 6c03 mov r0, r0 + 71d8: 0797 br 0x7106 // 7106 + 71da: 0000 bkpt + 71dc: 2000075e .long 0x2000075e + 71e0: 20000109 .long 0x20000109 + 71e4: 200006bc .long 0x200006bc + 71e8: 200006d6 .long 0x200006d6 + 71ec: 20000136 .long 0x20000136 + 71f0: 2000062c .long 0x2000062c + 71f4: 200008d2 .long 0x200008d2 + 71f8: 20000800 .long 0x20000800 + 71fc: 20000090 .long 0x20000090 + 7200: 20000743 .long 0x20000743 + 7204: 20000786 .long 0x20000786 + +Disassembly of section .text.TK_result_prog: + +00007208 : + 7208: 14d2 push r4-r5, r15 + 720a: 1050 lrw r2, 0x200006bc // 7248 + 720c: 1090 lrw r4, 0x20000760 // 724c + 720e: 9260 ld.w r3, (r2, 0x0) + 7210: 3b40 cmpnei r3, 0 + 7212: 0c02 bf 0x7216 // 7216 + 7214: 9260 ld.w r3, (r2, 0x0) + 7216: b460 st.w r3, (r4, 0x0) + 7218: 9460 ld.w r3, (r4, 0x0) + 721a: 3b40 cmpnei r3, 0 + 721c: 10ad lrw r5, 0x20000834 // 7250 + 721e: 0c11 bf 0x7240 // 7240 + 7220: 9440 ld.w r2, (r4, 0x0) + 7222: 9560 ld.w r3, (r5, 0x0) + 7224: 64ca cmpne r2, r3 + 7226: 0c03 bf 0x722c // 722c + 7228: 9460 ld.w r3, (r4, 0x0) + 722a: b560 st.w r3, (r5, 0x0) + 722c: e3fffd52 bsr 0x6cd0 // 6cd0 + 7230: 1069 lrw r3, 0x20000110 // 7254 + 7232: 8360 ld.b r3, (r3, 0x0) + 7234: 640c cmphs r3, r0 + 7236: 0804 bt 0x723e // 723e + 7238: 3300 movi r3, 0 + 723a: b460 st.w r3, (r4, 0x0) + 723c: b560 st.w r3, (r5, 0x0) + 723e: 1492 pop r4-r5, r15 + 7240: 1046 lrw r2, 0x20000758 // 7258 + 7242: b560 st.w r3, (r5, 0x0) + 7244: b260 st.w r3, (r2, 0x0) + 7246: 07fc br 0x723e // 723e + 7248: 200006bc .long 0x200006bc + 724c: 20000760 .long 0x20000760 + 7250: 20000834 .long 0x20000834 + 7254: 20000110 .long 0x20000110 + 7258: 20000758 .long 0x20000758 + +Disassembly of section .text.CORETHandler: + +0000725c : + 725c: 1460 nie + 725e: 1462 ipush + 7260: 14d1 push r4, r15 + 7262: 1077 lrw r3, 0x20000064 // 72bc + 7264: 3400 movi r4, 0 + 7266: 9360 ld.w r3, (r3, 0x0) + 7268: b386 st.w r4, (r3, 0x18) + 726a: 1076 lrw r3, 0x200006c0 // 72c0 + 726c: 8360 ld.b r3, (r3, 0x0) + 726e: 3b41 cmpnei r3, 1 + 7270: 0820 bt 0x72b0 // 72b0 + 7272: e3fffd85 bsr 0x6d7c // 6d7c + 7276: e3fffd93 bsr 0x6d9c // 6d9c + 727a: e3fffe51 bsr 0x6f1c // 6f1c + 727e: e3fffedd bsr 0x7038 // 7038 + 7282: e3ffffc3 bsr 0x7208 // 7208 + 7286: 1070 lrw r3, 0x20000760 // 72c4 + 7288: 9360 ld.w r3, (r3, 0x0) + 728a: 3b40 cmpnei r3, 0 + 728c: 0c12 bf 0x72b0 // 72b0 + 728e: 106f lrw r3, 0x200000e0 // 72c8 + 7290: 9340 ld.w r2, (r3, 0x0) + 7292: 3a40 cmpnei r2, 0 + 7294: 0c0e bf 0x72b0 // 72b0 + 7296: 106e lrw r3, 0x20000758 // 72cc + 7298: 3064 movi r0, 100 + 729a: 9320 ld.w r1, (r3, 0x0) + 729c: 2100 addi r1, 1 + 729e: b320 st.w r1, (r3, 0x0) + 72a0: 9320 ld.w r1, (r3, 0x0) + 72a2: 7c80 mult r2, r0 + 72a4: 6448 cmphs r2, r1 + 72a6: 0805 bt 0x72b0 // 72b0 + 72a8: 104a lrw r2, 0x20000743 // 72d0 + 72aa: 3101 movi r1, 1 + 72ac: a220 st.b r1, (r2, 0x0) + 72ae: b380 st.w r4, (r3, 0x0) + 72b0: d9ee2001 ld.w r15, (r14, 0x4) + 72b4: 9880 ld.w r4, (r14, 0x0) + 72b6: 1402 addi r14, r14, 8 + 72b8: 1463 ipop + 72ba: 1461 nir + 72bc: 20000064 .long 0x20000064 + 72c0: 200006c0 .long 0x200006c0 + 72c4: 20000760 .long 0x20000760 + 72c8: 200000e0 .long 0x200000e0 + 72cc: 20000758 .long 0x20000758 + 72d0: 20000743 .long 0x20000743 + +Disassembly of section .text.get_key_seq: + +000072d4 : + 72d4: 14c3 push r4-r6 + 72d6: 106b lrw r3, 0x2000010c // 7300 + 72d8: 3000 movi r0, 0 + 72da: 9320 ld.w r1, (r3, 0x0) + 72dc: 3401 movi r4, 1 + 72de: 3300 movi r3, 0 + 72e0: 10a9 lrw r5, 0x20000838 // 7304 + 72e2: 6c87 mov r2, r1 + 72e4: 708d lsr r2, r3 + 72e6: 6890 and r2, r4 + 72e8: 3a40 cmpnei r2, 0 + 72ea: 0c05 bf 0x72f4 // 72f4 + 72ec: 5dc0 addu r6, r5, r0 + 72ee: 748c zextb r2, r3 + 72f0: a640 st.b r2, (r6, 0x0) + 72f2: 2000 addi r0, 1 + 72f4: 2300 addi r3, 1 + 72f6: 3b51 cmpnei r3, 17 + 72f8: 0bf5 bt 0x72e2 // 72e2 + 72fa: 7400 zextb r0, r0 + 72fc: 1483 pop r4-r6 + 72fe: 0000 bkpt + 7300: 2000010c .long 0x2000010c + 7304: 20000838 .long 0x20000838 + +Disassembly of section .text.CORET_CONFIG: + +00007308 : + 7308: 14d0 push r15 + 730a: e3ffdc6d bsr 0x2be4 // 2be4 + 730e: 3180 movi r1, 128 + 7310: 4124 lsli r1, r1, 4 + 7312: 3001 movi r0, 1 + 7314: e3ffd41a bsr 0x1b48 // 1b48 + 7318: 1068 lrw r3, 0x20000064 // 7338 + 731a: 1049 lrw r2, 0x2000015c // 733c + 731c: 9360 ld.w r3, (r3, 0x0) + 731e: 9240 ld.w r2, (r2, 0x0) + 7320: b345 st.w r2, (r3, 0x14) + 7322: e3ffdc91 bsr 0x2c44 // 2c44 + 7326: e3ffdc7f bsr 0x2c24 // 2c24 + 732a: e3ffdc85 bsr 0x2c34 // 2c34 + 732e: e3ffdc73 bsr 0x2c14 // 2c14 + 7332: e3ffdc65 bsr 0x2bfc // 2bfc + 7336: 1490 pop r15 + 7338: 20000064 .long 0x20000064 + 733c: 2000015c .long 0x2000015c + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00007340 : + 7340: 1066 lrw r3, 0x20000054 // 7358 + 7342: 3100 movi r1, 0 + 7344: 9300 ld.w r0, (r3, 0x0) + 7346: 3300 movi r3, 0 + 7348: 4342 lsli r2, r3, 2 + 734a: 2300 addi r3, 1 + 734c: 6080 addu r2, r0 + 734e: 3b52 cmpnei r3, 18 + 7350: b220 st.w r1, (r2, 0x0) + 7352: b232 st.w r1, (r2, 0x48) + 7354: 0bfa bt 0x7348 // 7348 + 7356: 783c jmp r15 + 7358: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +0000735c : + 735c: 1065 lrw r3, 0x2000005c // 7370 + 735e: 1046 lrw r2, 0xa67a6cc7 // 7374 + 7360: 9360 ld.w r3, (r3, 0x0) + 7362: b356 st.w r2, (r3, 0x58) + 7364: 1045 lrw r2, 0x21f1f04 // 7378 + 7366: b355 st.w r2, (r3, 0x54) + 7368: 1045 lrw r2, 0x69966996 // 737c + 736a: 1066 lrw r3, 0x40011180 // 7380 + 736c: b35f st.w r2, (r3, 0x7c) + 736e: 783c jmp r15 + 7370: 2000005c .long 0x2000005c + 7374: a67a6cc7 .long 0xa67a6cc7 + 7378: 021f1f04 .long 0x021f1f04 + 737c: 69966996 .long 0x69966996 + 7380: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00007384 : + 7384: 14d4 push r4-r7, r15 + 7386: 142c subi r14, r14, 48 + 7388: e3ffffea bsr 0x735c // 735c + 738c: e3ffdb8c bsr 0x2aa4 // 2aa4 + 7390: 1268 lrw r3, 0x20000070 // 74b0 + 7392: 934b ld.w r2, (r3, 0x2c) + 7394: 1268 lrw r3, 0x40011200 // 74b4 + 7396: b350 st.w r2, (r3, 0x40) + 7398: 1268 lrw r3, 0x200000dd // 74b8 + 739a: 8360 ld.b r3, (r3, 0x0) + 739c: 3b41 cmpnei r3, 1 + 739e: 0817 bt 0x73cc // 73cc + 73a0: 1267 lrw r3, 0x20000058 // 74bc + 73a2: 3105 movi r1, 5 + 73a4: 9380 ld.w r4, (r3, 0x0) + 73a6: 1267 lrw r3, 0x20000134 // 74c0 + 73a8: 8300 ld.b r0, (r3, 0x0) + 73aa: e3ffe25d bsr 0x3864 // 3864 <__udivsi3> + 73ae: 7400 zextb r0, r0 + 73b0: 1265 lrw r3, 0x200000de // 74c4 + 73b2: b408 st.w r0, (r4, 0x20) + 73b4: 8300 ld.b r0, (r3, 0x0) + 73b6: 3804 cmphsi r0, 5 + 73b8: 1264 lrw r3, 0x2000075c // 74c8 + 73ba: 085a bt 0x746e // 746e + 73bc: e3ffcca0 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 73c0: 53575103 .long 0x53575103 + 73c4: 0055 .short 0x0055 + 73c6: 3296 movi r2, 150 + 73c8: 4242 lsli r2, r2, 2 + 73ca: ab40 st.h r2, (r3, 0x0) + 73cc: e3fffb78 bsr 0x6abc // 6abc + 73d0: 3200 movi r2, 0 + 73d2: 3100 movi r1, 0 + 73d4: 3001 movi r0, 1 + 73d6: e3fffb01 bsr 0x69d8 // 69d8 + 73da: e3ffffb3 bsr 0x7340 // 7340 + 73de: e3ffff7b bsr 0x72d4 // 72d4 + 73e2: 119b lrw r4, 0x200007ff // 74cc + 73e4: 3101 movi r1, 1 + 73e6: a400 st.b r0, (r4, 0x0) + 73e8: 8440 ld.b r2, (r4, 0x0) + 73ea: 117a lrw r3, 0x20000158 // 74d0 + 73ec: 8b60 ld.h r3, (r3, 0x0) + 73ee: b829 st.w r1, (r14, 0x24) + 73f0: 3180 movi r1, 128 + 73f2: 412d lsli r1, r1, 13 + 73f4: b828 st.w r1, (r14, 0x20) + 73f6: 3180 movi r1, 128 + 73f8: 4129 lsli r1, r1, 9 + 73fa: b827 st.w r1, (r14, 0x1c) + 73fc: 3100 movi r1, 0 + 73fe: b826 st.w r1, (r14, 0x18) + 7400: 2a00 subi r2, 1 + 7402: 1115 lrw r0, 0x2000015a // 74d4 + 7404: 8800 ld.h r0, (r0, 0x0) + 7406: b805 st.w r0, (r14, 0x14) + 7408: 7488 zextb r2, r2 + 740a: 1114 lrw r0, 0x20000160 // 74d8 + 740c: 8800 ld.h r0, (r0, 0x0) + 740e: b804 st.w r0, (r14, 0x10) + 7410: 3080 movi r0, 128 + 7412: 4005 lsli r0, r0, 5 + 7414: b803 st.w r0, (r14, 0xc) + 7416: 3080 movi r0, 128 + 7418: 4004 lsli r0, r0, 4 + 741a: b802 st.w r0, (r14, 0x8) + 741c: b821 st.w r1, (r14, 0x4) + 741e: b820 st.w r1, (r14, 0x0) + 7420: 3001 movi r0, 1 + 7422: 3102 movi r1, 2 + 7424: e3fffaee bsr 0x6a00 // 6a00 + 7428: 3002 movi r0, 2 + 742a: e3fffacf bsr 0x69c8 // 69c8 + 742e: 3020 movi r0, 32 + 7430: e3fffacc bsr 0x69c8 // 69c8 + 7434: 3380 movi r3, 128 + 7436: 4372 lsli r3, r3, 18 + 7438: 1149 lrw r2, 0xe000e100 // 74dc + 743a: b260 st.w r3, (r2, 0x0) + 743c: b270 st.w r3, (r2, 0x40) + 743e: 11e9 lrw r7, 0x20000076 // 74e0 + 7440: 1169 lrw r3, 0x20000054 // 74e4 + 7442: 11aa lrw r5, 0x20000838 // 74e8 + 7444: 11ca lrw r6, 0x20000112 // 74ec + 7446: 9360 ld.w r3, (r3, 0x0) + 7448: b86a st.w r3, (r14, 0x28) + 744a: b88b st.w r4, (r14, 0x2c) + 744c: 3300 movi r3, 0 + 744e: 984b ld.w r2, (r14, 0x2c) + 7450: 8240 ld.b r2, (r2, 0x0) + 7452: 648c cmphs r3, r2 + 7454: 0c0f bf 0x7472 // 7472 + 7456: e3ffff59 bsr 0x7308 // 7308 + 745a: e3fffc4f bsr 0x6cf8 // 6cf8 + 745e: 140c addi r14, r14, 48 + 7460: 1494 pop r4-r7, r15 + 7462: 1145 lrw r2, 0x5dc // 74f4 + 7464: 07b3 br 0x73ca // 73ca + 7466: 1145 lrw r2, 0x1194 // 74f8 + 7468: 07b1 br 0x73ca // 73ca + 746a: 1145 lrw r2, 0x1770 // 74fc + 746c: 07af br 0x73ca // 73ca + 746e: 1145 lrw r2, 0xbb8 // 7500 + 7470: 07ad br 0x73ca // 73ca + 7472: 5d0c addu r0, r5, r3 + 7474: 8020 ld.b r1, (r0, 0x0) + 7476: 8040 ld.b r2, (r0, 0x0) + 7478: 8080 ld.b r4, (r0, 0x0) + 747a: 8000 ld.b r0, (r0, 0x0) + 747c: 4001 lsli r0, r0, 1 + 747e: 6018 addu r0, r6 + 7480: 4121 lsli r1, r1, 1 + 7482: 8800 ld.h r0, (r0, 0x0) + 7484: 605c addu r1, r7 + 7486: 448f lsli r4, r4, 15 + 7488: 6d00 or r4, r0 + 748a: 4241 lsli r2, r2, 1 + 748c: 8900 ld.h r0, (r1, 0x0) + 748e: 1039 lrw r1, 0x200000e6 // 74f0 + 7490: 6084 addu r2, r1 + 7492: 4018 lsli r0, r0, 24 + 7494: 6c10 or r0, r4 + 7496: 8a80 ld.h r4, (r2, 0x0) + 7498: 3212 movi r2, 18 + 749a: 608c addu r2, r3 + 749c: 4494 lsli r4, r4, 20 + 749e: 4242 lsli r2, r2, 2 + 74a0: 982a ld.w r1, (r14, 0x28) + 74a2: 6c10 or r0, r4 + 74a4: 6084 addu r2, r1 + 74a6: 2300 addi r3, 1 + 74a8: b200 st.w r0, (r2, 0x0) + 74aa: 74cc zextb r3, r3 + 74ac: 07d1 br 0x744e // 744e + 74ae: 0000 bkpt + 74b0: 20000070 .long 0x20000070 + 74b4: 40011200 .long 0x40011200 + 74b8: 200000dd .long 0x200000dd + 74bc: 20000058 .long 0x20000058 + 74c0: 20000134 .long 0x20000134 + 74c4: 200000de .long 0x200000de + 74c8: 2000075c .long 0x2000075c + 74cc: 200007ff .long 0x200007ff + 74d0: 20000158 .long 0x20000158 + 74d4: 2000015a .long 0x2000015a + 74d8: 20000160 .long 0x20000160 + 74dc: e000e100 .long 0xe000e100 + 74e0: 20000076 .long 0x20000076 + 74e4: 20000054 .long 0x20000054 + 74e8: 20000838 .long 0x20000838 + 74ec: 20000112 .long 0x20000112 + 74f0: 200000e6 .long 0x200000e6 + 74f4: 000005dc .long 0x000005dc + 74f8: 00001194 .long 0x00001194 + 74fc: 00001770 .long 0x00001770 + 7500: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +00007504 : + 7504: 14d4 push r4-r7, r15 + 7506: 142d subi r14, r14, 52 + 7508: 3201 movi r2, 1 + 750a: 03ce lrw r6, 0x2000005c // 774c + 750c: 6cc3 mov r3, r0 + 750e: dc4e000a st.b r2, (r14, 0xa) + 7512: 9640 ld.w r2, (r6, 0x0) + 7514: 9247 ld.w r2, (r2, 0x1c) + 7516: 7488 zextb r2, r2 + 7518: dc4e0009 st.b r2, (r14, 0x9) + 751c: d84e0009 ld.b r2, (r14, 0x9) + 7520: 3a40 cmpnei r2, 0 + 7522: 0c08 bf 0x7532 // 7532 + 7524: d84e0009 ld.b r2, (r14, 0x9) + 7528: 3a42 cmpnei r2, 2 + 752a: 0c04 bf 0x7532 // 7532 + 752c: 3000 movi r0, 0 + 752e: 140d addi r14, r14, 52 + 7530: 1494 pop r4-r7, r15 + 7532: 0397 lrw r4, 0x2000000c // 7750 + 7534: 3209 movi r2, 9 + 7536: 9400 ld.w r0, (r4, 0x0) + 7538: 3b40 cmpnei r3, 0 + 753a: b041 st.w r2, (r0, 0x4) + 753c: 0857 bt 0x75ea // 75ea + 753e: 3307 movi r3, 7 + 7540: dc6e000b st.b r3, (r14, 0xb) + 7544: 037b lrw r3, 0x2dc6c00 // 7754 + 7546: b863 st.w r3, (r14, 0xc) + 7548: 3380 movi r3, 128 + 754a: 4362 lsli r3, r3, 2 + 754c: b867 st.w r3, (r14, 0x1c) + 754e: d86e000b ld.b r3, (r14, 0xb) + 7552: 74cc zextb r3, r3 + 7554: b062 st.w r3, (r0, 0x8) + 7556: 037e lrw r3, 0xffff // 7758 + 7558: b063 st.w r3, (r0, 0xc) + 755a: 3201 movi r2, 1 + 755c: 3101 movi r1, 1 + 755e: 03bf lrw r5, 0x20000014 // 775c + 7560: e3ffd506 bsr 0x1f6c // 1f6c + 7564: 95e0 ld.w r7, (r5, 0x0) + 7566: 137f lrw r3, 0xbe9c0005 // 7760 + 7568: b760 st.w r3, (r7, 0x0) + 756a: 135f lrw r2, 0x30010 // 7764 + 756c: 3300 movi r3, 0 + 756e: b762 st.w r3, (r7, 0x8) + 7570: b743 st.w r2, (r7, 0xc) + 7572: 32d8 movi r2, 216 + 7574: b745 st.w r2, (r7, 0x14) + 7576: 974f ld.w r2, (r7, 0x3c) + 7578: 3aa2 bseti r2, 2 + 757a: b74f st.w r2, (r7, 0x3c) + 757c: 9803 ld.w r0, (r14, 0xc) + 757e: d82e000b ld.b r1, (r14, 0xb) + 7582: 327d movi r2, 125 + 7584: 2100 addi r1, 1 + 7586: 7c48 mult r1, r2 + 7588: b861 st.w r3, (r14, 0x4) + 758a: e3ffe16d bsr 0x3864 // 3864 <__udivsi3> + 758e: b804 st.w r0, (r14, 0x10) + 7590: 32fa movi r2, 250 + 7592: 9824 ld.w r1, (r14, 0x10) + 7594: 4242 lsli r2, r2, 2 + 7596: 6448 cmphs r2, r1 + 7598: 0bca bt 0x752c // 752c + 759a: 9844 ld.w r2, (r14, 0x10) + 759c: 3178 movi r1, 120 + 759e: 9804 ld.w r0, (r14, 0x10) + 75a0: b840 st.w r2, (r14, 0x0) + 75a2: e3ffe161 bsr 0x3864 // 3864 <__udivsi3> + 75a6: 9840 ld.w r2, (r14, 0x0) + 75a8: 6082 subu r2, r0 + 75aa: b845 st.w r2, (r14, 0x14) + 75ac: 9804 ld.w r0, (r14, 0x10) + 75ae: 3178 movi r1, 120 + 75b0: 9844 ld.w r2, (r14, 0x10) + 75b2: b840 st.w r2, (r14, 0x0) + 75b4: e3ffe158 bsr 0x3864 // 3864 <__udivsi3> + 75b8: 9840 ld.w r2, (r14, 0x0) + 75ba: 6008 addu r0, r2 + 75bc: b806 st.w r0, (r14, 0x18) + 75be: c0807020 psrclr ie + 75c2: 9640 ld.w r2, (r6, 0x0) + 75c4: 9254 ld.w r2, (r2, 0x50) + 75c6: b848 st.w r2, (r14, 0x20) + 75c8: 9861 ld.w r3, (r14, 0x4) + 75ca: 9440 ld.w r2, (r4, 0x0) + 75cc: b260 st.w r3, (r2, 0x0) + 75ce: b761 st.w r3, (r7, 0x4) + 75d0: d86e000a ld.b r3, (r14, 0xa) + 75d4: 3b40 cmpnei r3, 0 + 75d6: 083e bt 0x7652 // 7652 + 75d8: e3ffd47c bsr 0x1ed0 // 1ed0 + 75dc: 9400 ld.w r0, (r4, 0x0) + 75de: e3ffd49d bsr 0x1f18 // 1f18 + 75e2: c1807420 psrset ee, ie + 75e6: 3001 movi r0, 1 + 75e8: 07a3 br 0x752e // 752e + 75ea: 3b41 cmpnei r3, 1 + 75ec: 0806 bt 0x75f8 // 75f8 + 75ee: 3303 movi r3, 3 + 75f0: dc6e000b st.b r3, (r14, 0xb) + 75f4: 127d lrw r3, 0x16e3600 // 7768 + 75f6: 07a8 br 0x7546 // 7546 + 75f8: 3b42 cmpnei r3, 2 + 75fa: 0806 bt 0x7606 // 7606 + 75fc: 3301 movi r3, 1 + 75fe: dc6e000b st.b r3, (r14, 0xb) + 7602: 127b lrw r3, 0xb71b00 // 776c + 7604: 07a1 br 0x7546 // 7546 + 7606: 3b43 cmpnei r3, 3 + 7608: 0806 bt 0x7614 // 7614 + 760a: 3300 movi r3, 0 + 760c: dc6e000b st.b r3, (r14, 0xb) + 7610: 1278 lrw r3, 0x5b8d80 // 7770 + 7612: 079a br 0x7546 // 7546 + 7614: 3b44 cmpnei r3, 4 + 7616: 0809 bt 0x7628 // 7628 + 7618: 3300 movi r3, 0 + 761a: dc6e000b st.b r3, (r14, 0xb) + 761e: 1276 lrw r3, 0x54c720 // 7774 + 7620: b863 st.w r3, (r14, 0xc) + 7622: 3380 movi r3, 128 + 7624: 4369 lsli r3, r3, 9 + 7626: 0793 br 0x754c // 754c + 7628: 3b45 cmpnei r3, 5 + 762a: 0806 bt 0x7636 // 7636 + 762c: 3300 movi r3, 0 + 762e: dc6e000b st.b r3, (r14, 0xb) + 7632: 1272 lrw r3, 0x3ffed0 // 7778 + 7634: 07f6 br 0x7620 // 7620 + 7636: 3b46 cmpnei r3, 6 + 7638: 0806 bt 0x7644 // 7644 + 763a: 3300 movi r3, 0 + 763c: dc6e000b st.b r3, (r14, 0xb) + 7640: 126f lrw r3, 0x1fff68 // 777c + 7642: 07ef br 0x7620 // 7620 + 7644: 3b47 cmpnei r3, 7 + 7646: 0b84 bt 0x754e // 754e + 7648: 3300 movi r3, 0 + 764a: dc6e000b st.b r3, (r14, 0xb) + 764e: 126d lrw r3, 0x1ffb8 // 7780 + 7650: 07e8 br 0x7620 // 7620 + 7652: 9560 ld.w r3, (r5, 0x0) + 7654: 3101 movi r1, 1 + 7656: 9440 ld.w r2, (r4, 0x0) + 7658: b321 st.w r1, (r3, 0x4) + 765a: b220 st.w r1, (r2, 0x0) + 765c: 3100 movi r1, 0 + 765e: b327 st.w r1, (r3, 0x1c) + 7660: 3004 movi r0, 4 + 7662: b225 st.w r1, (r2, 0x14) + 7664: 932e ld.w r1, (r3, 0x38) + 7666: 6840 and r1, r0 + 7668: 3940 cmpnei r1, 0 + 766a: 0ffd bf 0x7664 // 7664 + 766c: 9225 ld.w r1, (r2, 0x14) + 766e: b82a st.w r1, (r14, 0x28) + 7670: 3100 movi r1, 0 + 7672: b310 st.w r0, (r3, 0x40) + 7674: b327 st.w r1, (r3, 0x1c) + 7676: 3004 movi r0, 4 + 7678: b225 st.w r1, (r2, 0x14) + 767a: 932e ld.w r1, (r3, 0x38) + 767c: 6840 and r1, r0 + 767e: 3940 cmpnei r1, 0 + 7680: 0ffd bf 0x767a // 767a + 7682: 9225 ld.w r1, (r2, 0x14) + 7684: b82b st.w r1, (r14, 0x2c) + 7686: 3100 movi r1, 0 + 7688: b310 st.w r0, (r3, 0x40) + 768a: b327 st.w r1, (r3, 0x1c) + 768c: 3004 movi r0, 4 + 768e: b225 st.w r1, (r2, 0x14) + 7690: 932e ld.w r1, (r3, 0x38) + 7692: 6840 and r1, r0 + 7694: 3940 cmpnei r1, 0 + 7696: 0ffd bf 0x7690 // 7690 + 7698: 9225 ld.w r1, (r2, 0x14) + 769a: b82c st.w r1, (r14, 0x30) + 769c: b310 st.w r0, (r3, 0x40) + 769e: 982b ld.w r1, (r14, 0x2c) + 76a0: 980c ld.w r0, (r14, 0x30) + 76a2: 6040 addu r1, r0 + 76a4: b829 st.w r1, (r14, 0x24) + 76a6: 9829 ld.w r1, (r14, 0x24) + 76a8: 4921 lsri r1, r1, 1 + 76aa: b829 st.w r1, (r14, 0x24) + 76ac: 3100 movi r1, 0 + 76ae: b321 st.w r1, (r3, 0x4) + 76b0: b220 st.w r1, (r2, 0x0) + 76b2: b327 st.w r1, (r3, 0x1c) + 76b4: b225 st.w r1, (r2, 0x14) + 76b6: d86e0009 ld.b r3, (r14, 0x9) + 76ba: 3b42 cmpnei r3, 2 + 76bc: 9849 ld.w r2, (r14, 0x24) + 76be: 082c bt 0x7716 // 7716 + 76c0: 1171 lrw r3, 0x7ff // 7784 + 76c2: 648c cmphs r3, r2 + 76c4: 0c03 bf 0x76ca // 76ca + 76c6: 3300 movi r3, 0 + 76c8: 040f br 0x76e6 // 76e6 + 76ca: 9849 ld.w r2, (r14, 0x24) + 76cc: 9866 ld.w r3, (r14, 0x18) + 76ce: 648c cmphs r3, r2 + 76d0: 080e bt 0x76ec // 76ec + 76d2: 9868 ld.w r3, (r14, 0x20) + 76d4: 9847 ld.w r2, (r14, 0x1c) + 76d6: 60ca subu r3, r2 + 76d8: b868 st.w r3, (r14, 0x20) + 76da: 32fe movi r2, 254 + 76dc: 9868 ld.w r3, (r14, 0x20) + 76de: 4248 lsli r2, r2, 8 + 76e0: 68c8 and r3, r2 + 76e2: 3b40 cmpnei r3, 0 + 76e4: 0812 bt 0x7708 // 7708 + 76e6: dc6e000a st.b r3, (r14, 0xa) + 76ea: 0721 br 0x752c // 752c + 76ec: 9849 ld.w r2, (r14, 0x24) + 76ee: 9865 ld.w r3, (r14, 0x14) + 76f0: 64c8 cmphs r2, r3 + 76f2: 0829 bt 0x7744 // 7744 + 76f4: 9868 ld.w r3, (r14, 0x20) + 76f6: 9847 ld.w r2, (r14, 0x1c) + 76f8: 60c8 addu r3, r2 + 76fa: b868 st.w r3, (r14, 0x20) + 76fc: 33fe movi r3, 254 + 76fe: 9848 ld.w r2, (r14, 0x20) + 7700: 4368 lsli r3, r3, 8 + 7702: 688c and r2, r3 + 7704: 64ca cmpne r2, r3 + 7706: 0fe0 bf 0x76c6 // 76c6 + 7708: 9660 ld.w r3, (r6, 0x0) + 770a: 9848 ld.w r2, (r14, 0x20) + 770c: b354 st.w r2, (r3, 0x50) + 770e: 3001 movi r0, 1 + 7710: e3ffdad8 bsr 0x2cc0 // 2cc0 + 7714: 075e br 0x75d0 // 75d0 + 7716: 9866 ld.w r3, (r14, 0x18) + 7718: 648c cmphs r3, r2 + 771a: 0809 bt 0x772c // 772c + 771c: 9868 ld.w r3, (r14, 0x20) + 771e: 9847 ld.w r2, (r14, 0x1c) + 7720: 60ca subu r3, r2 + 7722: b868 st.w r3, (r14, 0x20) + 7724: 32ff movi r2, 255 + 7726: 9868 ld.w r3, (r14, 0x20) + 7728: 4250 lsli r2, r2, 16 + 772a: 07db br 0x76e0 // 76e0 + 772c: 9849 ld.w r2, (r14, 0x24) + 772e: 9865 ld.w r3, (r14, 0x14) + 7730: 64c8 cmphs r2, r3 + 7732: 0809 bt 0x7744 // 7744 + 7734: 9868 ld.w r3, (r14, 0x20) + 7736: 9847 ld.w r2, (r14, 0x1c) + 7738: 60c8 addu r3, r2 + 773a: b868 st.w r3, (r14, 0x20) + 773c: 33ff movi r3, 255 + 773e: 9848 ld.w r2, (r14, 0x20) + 7740: 4370 lsli r3, r3, 16 + 7742: 07e0 br 0x7702 // 7702 + 7744: 3300 movi r3, 0 + 7746: dc6e000a st.b r3, (r14, 0xa) + 774a: 07e2 br 0x770e // 770e + 774c: 2000005c .long 0x2000005c + 7750: 2000000c .long 0x2000000c + 7754: 02dc6c00 .long 0x02dc6c00 + 7758: 0000ffff .long 0x0000ffff + 775c: 20000014 .long 0x20000014 + 7760: be9c0005 .long 0xbe9c0005 + 7764: 00030010 .long 0x00030010 + 7768: 016e3600 .long 0x016e3600 + 776c: 00b71b00 .long 0x00b71b00 + 7770: 005b8d80 .long 0x005b8d80 + 7774: 0054c720 .long 0x0054c720 + 7778: 003ffed0 .long 0x003ffed0 + 777c: 001fff68 .long 0x001fff68 + 7780: 0001ffb8 .long 0x0001ffb8 + 7784: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241123.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241123.map new file mode 100644 index 0000000..7b9b3dd --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241123.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: 0x10c + Start of program headers: 52 (bytes into file) + Start of section headers: 493404 (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: 256 + Section header string table index: 253 + +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_PullHi PROGBITS 00001e7c 002e7c 00000e 00 AX 0 0 2 + [21] .text.GPIO_DriveS PROGBITS 00001e8a 002e8a 00000e 00 AX 0 0 2 + [22] .text.GPIO_Write_ PROGBITS 00001e98 002e98 000008 00 AX 0 0 2 + [23] .text.GPIO_Write_ PROGBITS 00001ea0 002ea0 000008 00 AX 0 0 2 + [24] .text.GPIO_Revers PROGBITS 00001ea8 002ea8 000016 00 AX 0 0 2 + [25] .text.GPIO_Read_S PROGBITS 00001ebe 002ebe 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.UART0_DeIni PROGBITS 00001f90 002f90 000018 00 AX 0 0 4 + [37] .text.UART1_DeIni PROGBITS 00001fa8 002fa8 000018 00 AX 0 0 4 + [38] .text.UART2_DeIni PROGBITS 00001fc0 002fc0 000018 00 AX 0 0 4 + [39] .text.UART0_Int_E PROGBITS 00001fd8 002fd8 00001c 00 AX 0 0 4 + [40] .text.UART2_Int_E PROGBITS 00001ff4 002ff4 00001c 00 AX 0 0 4 + [41] .text.UART_IO_Ini PROGBITS 00002010 003010 0000ec 00 AX 0 0 4 + [42] .text.UARTInit PROGBITS 000020fc 0030fc 000010 00 AX 0 0 4 + [43] .text.UARTInitRxT PROGBITS 0000210c 00310c 000010 00 AX 0 0 4 + [44] .text.UARTTransmi PROGBITS 0000211c 00311c 00001e 00 AX 0 0 2 + [45] .text.EPT_Softwar PROGBITS 0000213c 00313c 000020 00 AX 0 0 4 + [46] .text.EPT_Start PROGBITS 0000215c 00315c 000028 00 AX 0 0 4 + [47] .text.EPT_Stop PROGBITS 00002184 003184 000028 00 AX 0 0 4 + [48] .text.EPT_IO_SET PROGBITS 000021ac 0031ac 000238 00 AX 0 0 4 + [49] .text.EPT_PWM_Con PROGBITS 000023e4 0033e4 000038 00 AX 0 0 4 + [50] .text.EPT_PWMX_Ou PROGBITS 0000241c 00341c 0000d8 00 AX 0 0 4 + [51] .text.EPT_PRDR_CM PROGBITS 000024f4 0034f4 00001c 00 AX 0 0 4 + [52] .text.ADC12_RESET PROGBITS 00002510 003510 000064 00 AX 0 0 4 + [53] .text.ADC12_Contr PROGBITS 00002574 003574 000010 00 AX 0 0 4 + [54] .text.ADC12_CMD.p PROGBITS 00002584 003584 000020 00 AX 0 0 4 + [55] .text.ADC12_CLK_C PROGBITS 000025a4 0035a4 00002c 00 AX 0 0 4 + [56] .text.ADC12_Softw PROGBITS 000025d0 0035d0 00000a 00 AX 0 0 2 + [57] .text.ADC12_CMD PROGBITS 000025dc 0035dc 000028 00 AX 0 0 4 + [58] .text.ADC12_ready PROGBITS 00002604 003604 000014 00 AX 0 0 4 + [59] .text.ADC12_SEQEN PROGBITS 00002618 003618 000018 00 AX 0 0 4 + [60] .text.ADC12_DATA_ PROGBITS 00002630 003630 000014 00 AX 0 0 4 + [61] .text.ADC12_Confi PROGBITS 00002644 003644 00007c 00 AX 0 0 4 + [62] .text.ADC12_Confi PROGBITS 000026c0 0036c0 000198 00 AX 0 0 4 + [63] .text.ADC12_Conve PROGBITS 00002858 003858 000180 00 AX 0 0 4 + [64] .text.Page_Progra PROGBITS 000029d8 0039d8 0000a0 00 AX 0 0 4 + [65] .text.ReadDataArr PROGBITS 00002a78 003a78 00002a 00 AX 0 0 2 + [66] .text.tk_paramete PROGBITS 00002aa4 003aa4 000140 00 AX 0 0 4 + [67] .text.CORET_DeIni PROGBITS 00002be4 003be4 000018 00 AX 0 0 4 + [68] .text.CORET_Int_E PROGBITS 00002bfc 003bfc 000018 00 AX 0 0 4 + [69] .text.CORET_start PROGBITS 00002c14 003c14 000010 00 AX 0 0 4 + [70] .text.CORET_CLKSO PROGBITS 00002c24 003c24 000010 00 AX 0 0 4 + [71] .text.CORET_TICKI PROGBITS 00002c34 003c34 000010 00 AX 0 0 4 + [72] .text.CORET_reloa PROGBITS 00002c44 003c44 000010 00 AX 0 0 4 + [73] .text.startup.mai PROGBITS 00002c54 003c54 00006c 00 AX 0 0 4 + [74] .text.delay_nms PROGBITS 00002cc0 003cc0 00002c 00 AX 0 0 2 + [75] .text.delay_nus PROGBITS 00002cec 003cec 000022 00 AX 0 0 2 + [76] .text.EPT0_CONFIG PROGBITS 00002d10 003d10 000060 00 AX 0 0 4 + [77] .text.BT_CONFIG PROGBITS 00002d70 003d70 000060 00 AX 0 0 4 + [78] .text.SYSCON_CONF PROGBITS 00002dd0 003dd0 000062 00 AX 0 0 2 + [79] .text.APT32F102_i PROGBITS 00002e34 003e34 000088 00 AX 0 0 4 + [80] .text.SYSCONIntHa PROGBITS 00002ebc 003ebc 0000f0 00 AX 0 0 4 + [81] .text.IFCIntHandl PROGBITS 00002fac 003fac 000068 00 AX 0 0 4 + [82] .text.ADCIntHandl PROGBITS 00003014 004014 000068 00 AX 0 0 4 + [83] .text.EPT0IntHand PROGBITS 0000307c 00407c 0001ac 00 AX 0 0 4 + [84] .text.WWDTHandler PROGBITS 00003228 004228 000034 00 AX 0 0 4 + [85] .text.GPT0IntHand PROGBITS 0000325c 00425c 000080 00 AX 0 0 4 + [86] .text.RTCIntHandl PROGBITS 000032dc 0042dc 000070 00 AX 0 0 4 + [87] .text.UART0IntHan PROGBITS 0000334c 00434c 00003c 00 AX 0 0 4 + [88] .text.UART1IntHan PROGBITS 00003388 004388 00003c 00 AX 0 0 4 + [89] .text.UART2IntHan PROGBITS 000033c4 0043c4 000094 00 AX 0 0 4 + [90] .text.SPI0IntHand PROGBITS 00003458 004458 0000e8 00 AX 0 0 4 + [91] .text.SIO0IntHand PROGBITS 00003540 004540 000054 00 AX 0 0 4 + [92] .text.EXI0IntHand PROGBITS 00003594 004594 000030 00 AX 0 0 4 + [93] .text.EXI1IntHand PROGBITS 000035c4 0045c4 000030 00 AX 0 0 4 + [94] .text.EXI2to3IntH PROGBITS 000035f4 0045f4 000048 00 AX 0 0 4 + [95] .text.EXI4to9IntH PROGBITS 0000363c 00463c 00005c 00 AX 0 0 4 + [96] .text.EXI10to15In PROGBITS 00003698 004698 000060 00 AX 0 0 4 + [97] .text.LPTIntHandl PROGBITS 000036f8 0046f8 000034 00 AX 0 0 4 + [98] .text.BT0IntHandl PROGBITS 0000372c 00472c 00004c 00 AX 0 0 4 + [99] .text.BT1IntHandl PROGBITS 00003778 004778 000064 00 AX 0 0 4 + [100] .text.PriviledgeV PROGBITS 000037dc 0047dc 000002 00 AX 0 0 2 + [101] .text.PendTrapHan PROGBITS 000037de 0047de 000008 00 AX 0 0 2 + [102] .text.Trap3Handle PROGBITS 000037e6 0047e6 000008 00 AX 0 0 2 + [103] .text.Trap2Handle PROGBITS 000037ee 0047ee 000008 00 AX 0 0 2 + [104] .text.Trap1Handle PROGBITS 000037f6 0047f6 000008 00 AX 0 0 2 + [105] .text.Trap0Handle PROGBITS 000037fe 0047fe 000008 00 AX 0 0 2 + [106] .text.UnrecExecpH PROGBITS 00003806 004806 000008 00 AX 0 0 2 + [107] .text.BreakPointH PROGBITS 0000380e 00480e 000008 00 AX 0 0 2 + [108] .text.AccessErrHa PROGBITS 00003816 004816 000008 00 AX 0 0 2 + [109] .text.IllegalInst PROGBITS 0000381e 00481e 000008 00 AX 0 0 2 + [110] .text.MisalignedH PROGBITS 00003826 004826 000008 00 AX 0 0 2 + [111] .text.CNTAIntHand PROGBITS 0000382e 00482e 000008 00 AX 0 0 2 + [112] .text.I2CIntHandl PROGBITS 00003836 004836 000008 00 AX 0 0 2 + [113] .text.__divsi3 PROGBITS 00003840 004840 000024 00 AX 0 0 4 + [114] .text.__udivsi3 PROGBITS 00003864 004864 000024 00 AX 0 0 4 + [115] .text.__umodsi3 PROGBITS 00003888 004888 000024 00 AX 0 0 4 + [116] .text.CK_CPU_EnAl PROGBITS 000038ac 0048ac 000006 00 AX 0 0 2 + [117] .text.UARTx_Init PROGBITS 000038b4 0048b4 000108 00 AX 0 0 4 + [118] .text.UART2_RecvI PROGBITS 000039bc 0049bc 00006c 00 AX 0 0 4 + [119] .text.UART2_TASK PROGBITS 00003a28 004a28 00009c 00 AX 0 0 4 + [120] .text.MCU485_Send PROGBITS 00003ac4 004ac4 000088 00 AX 0 0 4 + [121] .text.Dbg_Println PROGBITS 00003b4c 004b4c 00000c 00 AX 0 0 2 + [122] .text.Dbg_Print_B PROGBITS 00003b58 004b58 000002 00 AX 0 0 2 + [123] .text.Touch_Key_I PROGBITS 00003b5c 004b5c 000078 00 AX 0 0 4 + [124] .text.TouchKey_RS PROGBITS 00003bd4 004bd4 000138 00 AX 0 0 4 + [125] .text.Get_TouchKe PROGBITS 00003d0c 004d0c 00003c 00 AX 0 0 4 + [126] .text.Touch_Key_E PROGBITS 00003d48 004d48 0000ac 00 AX 0 0 4 + [127] .text.TouchKey_Se PROGBITS 00003df4 004df4 00003c 00 AX 0 0 4 + [128] .text.Touch_Key_T PROGBITS 00003e30 004e30 0000d8 00 AX 0 0 4 + [129] .text.TouchKey_Ch PROGBITS 00003f08 004f08 000018 00 AX 0 0 2 + [130] .text.TouchKey_Co PROGBITS 00003f20 004f20 000084 00 AX 0 0 4 + [131] .text.TouchKey_Se PROGBITS 00003fa4 004fa4 0000b8 00 AX 0 0 4 + [132] .text.TouchKey_Re PROGBITS 0000405c 00505c 0000e4 00 AX 0 0 4 + [133] .text.TouchKey_Du PROGBITS 00004140 005140 000038 00 AX 0 0 4 + [134] .text.TouchKey_Re PROGBITS 00004178 005178 0000cc 00 AX 0 0 4 + [135] .text.TouchKey_Re PROGBITS 00004244 005244 00001a 00 AX 0 0 2 + [136] .text.TouchKey_Co PROGBITS 00004260 005260 0000d8 00 AX 0 0 4 + [137] .text.EEPROM_Chec PROGBITS 00004338 005338 000016 00 AX 0 0 2 + [138] .text.EEPROM_Read PROGBITS 00004350 005350 000074 00 AX 0 0 4 + [139] .text.EEPROM_Writ PROGBITS 000043c4 0053c4 000044 00 AX 0 0 4 + [140] .text.EEPROM_Vali PROGBITS 00004408 005408 000070 00 AX 0 0 4 + [141] .text.EEPROM_Defa PROGBITS 00004478 005478 000018 00 AX 0 0 2 + [142] .text.EEPROM_Init PROGBITS 00004490 005490 000050 00 AX 0 0 4 + [143] .text.EEPROM_Writ PROGBITS 000044e0 0054e0 00006c 00 AX 0 0 4 + [144] .text.EEPROM_Read PROGBITS 0000454c 00554c 0000ac 00 AX 0 0 4 + [145] .text.EEPROM_Vali PROGBITS 000045f8 0055f8 0000a8 00 AX 0 0 4 + [146] .text.EEPROM_Defa PROGBITS 000046a0 0056a0 000040 00 AX 0 0 2 + [147] .text.EEPROM_Touc PROGBITS 000046e0 0056e0 000080 00 AX 0 0 4 + [148] .text.ADC_Init PROGBITS 00004760 005760 00005c 00 AX 0 0 4 + [149] .text.Thermistor_ PROGBITS 000047bc 0057bc 000048 00 AX 0 0 4 + [150] .text.Calculate_A PROGBITS 00004804 005804 0000c0 00 AX 0 0 4 + [151] .text.ADC_Sample_ PROGBITS 000048c4 0058c4 0000b0 00 AX 0 0 4 + [152] .text.Get_Temp_Va PROGBITS 00004974 005974 000010 00 AX 0 0 4 + [153] .text.HT1621_WR_D PROGBITS 00004984 005984 000048 00 AX 0 0 4 + [154] .text.HT1621_WR_C PROGBITS 000049cc 0059cc 000030 00 AX 0 0 4 + [155] .text.HT1621_Init PROGBITS 000049fc 0059fc 00008c 00 AX 0 0 4 + [156] .text.HT1621_Clea PROGBITS 00004a88 005a88 000050 00 AX 0 0 4 + [157] .text.HT1621_ALLO PROGBITS 00004ad8 005ad8 000040 00 AX 0 0 4 + [158] .text.HT1621_Refr PROGBITS 00004b18 005b18 00004c 00 AX 0 0 4 + [159] .text.Set_Tempera PROGBITS 00004b64 005b64 000088 00 AX 0 0 4 + [160] .text.Local_Tempe PROGBITS 00004bec 005bec 000080 00 AX 0 0 4 + [161] .text.Control_Mod PROGBITS 00004c6c 005c6c 000048 00 AX 0 0 4 + [162] .text.Control_win PROGBITS 00004cb4 005cb4 000070 00 AX 0 0 4 + [163] .text.Control_Pro PROGBITS 00004d24 005d24 000044 00 AX 0 0 4 + [164] .text.Controlled_ PROGBITS 00004d68 005d68 000048 00 AX 0 0 4 + [165] .text.Controlled_ PROGBITS 00004db0 005db0 000024 00 AX 0 0 4 + [166] .text.Controlled_ PROGBITS 00004dd4 005dd4 000024 00 AX 0 0 4 + [167] .text.Set_Device_ PROGBITS 00004df8 005df8 000098 00 AX 0 0 4 + [168] .text.Set_Temp_Di PROGBITS 00004e90 005e90 000064 00 AX 0 0 4 + [169] .text.HT1621_Refr PROGBITS 00004ef4 005ef4 000060 00 AX 0 0 4 + [170] .text.MODEL_Ctrl_ PROGBITS 00004f54 005f54 00002c 00 AX 0 0 4 + [171] .text.Control_Mod PROGBITS 00004f80 005f80 0000b4 00 AX 0 0 4 + [172] .text.TemCtrl_Ini PROGBITS 00005034 006034 00013c 00 AX 0 0 4 + [173] .text.TemCtrl_Mod PROGBITS 00005170 006170 00004c 00 AX 0 0 4 + [174] .text.TemCtrl_Fan PROGBITS 000051bc 0061bc 00004c 00 AX 0 0 4 + [175] .text.TemCtrl_Tem PROGBITS 00005208 006208 000030 00 AX 0 0 4 + [176] .text.TemCtrl_Tem PROGBITS 00005238 006238 000030 00 AX 0 0 4 + [177] .text.TemCtrl_OnO PROGBITS 00005268 006268 000034 00 AX 0 0 4 + [178] .text.Tem_Valve_C PROGBITS 0000529c 00629c 00012c 00 AX 0 0 4 + [179] .text.TemCtrl_Pro PROGBITS 000053c8 0063c8 000168 00 AX 0 0 4 + [180] .text.KEY1_Model_ PROGBITS 00005530 006530 0000e4 00 AX 0 0 4 + [181] .text.KEY2_Fan_Pr PROGBITS 00005614 006614 0000e4 00 AX 0 0 4 + [182] .text.KEY3_TempAd PROGBITS 000056f8 0066f8 000104 00 AX 0 0 4 + [183] .text.KEY3_Long_P PROGBITS 000057fc 0067fc 00006c 00 AX 0 0 4 + [184] .text.KEY4_TempDe PROGBITS 00005868 006868 000100 00 AX 0 0 4 + [185] .text.KEY4_Long_P PROGBITS 00005968 006968 00006c 00 AX 0 0 4 + [186] .text.KEY5_OnOff_ PROGBITS 000059d4 0069d4 0000a8 00 AX 0 0 4 + [187] .text.TempCtrl_On PROGBITS 00005a7c 006a7c 00004c 00 AX 0 0 4 + [188] .text.DisPlay_Ini PROGBITS 00005ac8 006ac8 000020 00 AX 0 0 4 + [189] .text.DisPlay_Tas PROGBITS 00005ae8 006ae8 000318 00 AX 0 0 4 + [190] .text.Debug_Init PROGBITS 00005e00 006e00 000034 00 AX 0 0 4 + [191] .text.Dev_SaveDat PROGBITS 00005e34 006e34 000070 00 AX 0 0 4 + [192] .text.Debug_Task PROGBITS 00005ea4 006ea4 00006c 00 AX 0 0 4 + [193] .text.get_check_s PROGBITS 00005f10 006f10 000016 00 AX 0 0 2 + [194] .text.uart_receiv PROGBITS 00005f28 006f28 000044 00 AX 0 0 4 + [195] .text.Queue_Read_ PROGBITS 00005f6c 006f6c 000034 00 AX 0 0 4 + [196] .text.with_data_r PROGBITS 00005fa0 006fa0 00001c 00 AX 0 0 4 + [197] .text.RF_Info_Ini PROGBITS 00005fbc 006fbc 000034 00 AX 0 0 4 + [198] .text.Add_Frame_H PROGBITS 00005ff0 006ff0 000040 00 AX 0 0 4 + [199] .text.Product_Inf PROGBITS 00006030 007030 000094 00 AX 0 0 4 + [200] .text.Recv_RFNetS PROGBITS 000060c4 0070c4 000038 00 AX 0 0 4 + [201] .text.Tem_Fun_Ctr PROGBITS 000060fc 0070fc 0000b0 00 AX 0 0 4 + [202] .text.data_handle PROGBITS 000061ac 0071ac 000128 00 AX 0 0 4 + [203] .text.zigbee_uart PROGBITS 000062d4 0072d4 0000c8 00 AX 0 0 4 + [204] .text.TemFun_Repo PROGBITS 0000639c 00739c 0000d0 00 AX 0 0 4 + [205] .text.Relay_Init PROGBITS 0000646c 00746c 00006c 00 AX 0 0 4 + [206] .text.Relay_High PROGBITS 000064d8 0074d8 000024 00 AX 0 0 4 + [207] .text.Relay_Mid PROGBITS 000064fc 0074fc 000024 00 AX 0 0 4 + [208] .text.Relay_Low PROGBITS 00006520 007520 000024 00 AX 0 0 4 + [209] .text.Relay_Stop PROGBITS 00006544 007544 000024 00 AX 0 0 4 + [210] .text.NetCRC16 PROGBITS 00006568 007568 00004c 00 AX 0 0 4 + [211] .text.GetCRC16 PROGBITS 000065b4 0075b4 00003c 00 AX 0 0 4 + [212] .text.SOR_CRC PROGBITS 000065f0 0075f0 000016 00 AX 0 0 2 + [213] .text.Rs485AskCyc PROGBITS 00006608 007608 0000ec 00 AX 0 0 4 + [214] .text.Rs485AskCtr PROGBITS 000066f4 0076f4 000050 00 AX 0 0 4 + [215] .text.Rs485AskRea PROGBITS 00006744 007744 000054 00 AX 0 0 4 + [216] .text.Temp_Rec_An PROGBITS 00006798 007798 000168 00 AX 0 0 4 + [217] .text.Tem_Rs485_R PROGBITS 00006900 007900 0000c8 00 AX 0 0 4 + [218] .text.TK_ConfigIn PROGBITS 000069c8 0079c8 000010 00 AX 0 0 4 + [219] .text.tk_clk_conf PROGBITS 000069d8 0079d8 000028 00 AX 0 0 4 + [220] .text.TK_con0_con PROGBITS 00006a00 007a00 0000bc 00 AX 0 0 4 + [221] .text.TK_IO_Enabl PROGBITS 00006abc 007abc 000134 00 AX 0 0 4 + [222] .text.TK_Sampling PROGBITS 00006bf0 007bf0 000058 00 AX 0 0 4 + [223] .text.TKEYIntHand PROGBITS 00006c48 007c48 000088 00 AX 0 0 4 + [224] .text.get_key_num PROGBITS 00006cd0 007cd0 000028 00 AX 0 0 4 + [225] .text.TK_Baseline PROGBITS 00006cf8 007cf8 000084 00 AX 0 0 4 + [226] .text.TK_Scan_Sta PROGBITS 00006d7c 007d7c 000020 00 AX 0 0 4 + [227] .text.TK_Keymap_p PROGBITS 00006d9c 007d9c 000180 00 AX 0 0 4 + [228] .text.TK_overflow PROGBITS 00006f1c 007f1c 00011c 00 AX 0 0 4 + [229] .text.TK_Baseline PROGBITS 00007038 008038 0001d0 00 AX 0 0 4 + [230] .text.TK_result_p PROGBITS 00007208 008208 000054 00 AX 0 0 4 + [231] .text.CORETHandle PROGBITS 0000725c 00825c 000078 00 AX 0 0 4 + [232] .text.get_key_seq PROGBITS 000072d4 0082d4 000034 00 AX 0 0 4 + [233] .text.CORET_CONFI PROGBITS 00007308 008308 000038 00 AX 0 0 4 + [234] .text.tk_chxval_s PROGBITS 00007340 008340 00001c 00 AX 0 0 4 + [235] .text.tk_reserved PROGBITS 0000735c 00835c 000028 00 AX 0 0 4 + [236] .text.tk_init PROGBITS 00007384 008384 000180 00 AX 0 0 4 + [237] .text.std_clk_cal PROGBITS 00007504 008504 000284 00 AX 0 0 4 + [238] .RomCode PROGBITS 00007788 00a0a4 000000 00 W 0 0 1 + [239] .rodata PROGBITS 00007788 008788 000890 00 A 0 0 4 + [240] .data PROGBITS 20000000 00a000 0000a4 00 WA 0 0 4 + [241] .bss NOBITS 200000a4 00a0a4 000850 00 WA 0 0 4 + [242] .csky.attributes CSKY_ATTRIBUTES 00000000 00a0a4 000022 00 0 0 1 + [243] .comment PROGBITS 00000000 00a0c6 000042 01 MS 0 0 1 + [244] .csky_stack_size PROGBITS 00000000 00a110 000a3c 00 0 0 16 + [245] .debug_line PROGBITS 00000000 00ab4c 005f49 00 0 0 1 + [246] .debug_info PROGBITS 00000000 010a95 049ee3 00 0 0 1 + [247] .debug_abbrev PROGBITS 00000000 05a978 0041ae 00 0 0 1 + [248] .debug_aranges PROGBITS 00000000 05eb28 001040 00 0 0 8 + [249] .debug_ranges PROGBITS 00000000 05fb68 000f98 00 0 0 1 + [250] .debug_str PROGBITS 00000000 060b00 009601 01 MS 0 0 1 + [251] .debug_frame PROGBITS 00000000 06a104 002638 00 0 0 4 + [252] .debug_loc PROGBITS 00000000 06c73c 0031f1 00 0 0 1 + [253] .shstrtab STRTAB 00000000 077142 001619 00 0 0 1 + [254] .symtab SYMTAB 00000000 06f930 005c60 10 255 1074 4 + [255] .strtab STRTAB 00000000 075590 001bb2 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 0x08018 0x08018 R E 0x1000 + LOAD 0x00a000 0x20000000 0x00008018 0x000a4 0x008f4 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_PullHighLow_DIS .text.GPIO_DriveStrength_EN .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.UART2_Int_Enable .text.UART_IO_Init .text.UARTInit .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.EPT0_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.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.MODEL_Ctrl_Init .text.Control_Mode_Detection .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.get_check_sum .text.uart_receive_input .text.Queue_Read_Byte .text.with_data_rxbuff .text.RF_Info_Init .text.Add_Frame_Head .text.Product_Info_Update .text.Recv_RFNetState_Ack .text.Tem_Fun_Ctrl_Report .text.data_handle .text.zigbee_uart_service .text.TemFun_Report_Task .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHigh_Init) for GPIO_PullHigh_Init + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_PullHighLow_DIS) for GPIO_PullHighLow_DIS + Obj/SYSTEM_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Low) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) 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_model_detection.o(.text.Control_Mode_Detection) 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.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.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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.UART2_TASK) for UART2_TASK + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) for MODEL_Ctrl_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_model_detection.o(.text.Control_Mode_Detection) for Control_Mode_Detection + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.uart_receive_input) for uart_receive_input + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Queue_Read_Byte) for Queue_Read_Byte + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.with_data_rxbuff) for with_data_rxbuff + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) for RF_Info_Init + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) for Product_Info_Update + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) for Recv_RFNetState_Ack + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) for data_handle + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) for zigbee_uart_service + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) for TemFun_Report_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_model_detection.o(.text.MODEL_Ctrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) 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), (2890 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_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_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), (3084 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), (3401 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), (3146 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), (8009 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), (4114 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), (3517 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), (3633 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4833 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text(Obj/main.o), (0 bytes). + Removing .data(Obj/main.o), (5 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), (76 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.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (160 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (188 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .data(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .bss(Obj/SYSTEM_model_detection.o), (0 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .text.Rest_RFNetState(Obj/USRCTRL_rf_uart_protocol.o), (64 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text.RLY_State_Multi_Control(Obj/USRCTRL_myrelay.o), (184 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (104 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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). + +592 unused seciton(s) (total 153142 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_model_detection.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_rf_uart_protocol.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_PullHighLow_DIS + $t 0x00001e7c 0 .text.GPIO_PullHighLow_DIS + $d 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $t 0x00001e8a 0 .text.GPIO_DriveStrength_EN + $d 0x00001e98 0 .text.GPIO_Write_High + $t 0x00001e98 0 .text.GPIO_Write_High + $d 0x00001ea0 0 .text.GPIO_Write_Low + $t 0x00001ea0 0 .text.GPIO_Write_Low + $d 0x00001ea8 0 .text.GPIO_Reverse + $t 0x00001ea8 0 .text.GPIO_Reverse + $d 0x00001ebe 0 .text.GPIO_Read_Status + $t 0x00001ebe 0 .text.GPIO_Read_Status + $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.UART0_DeInit + $t 0x00001f90 0 .text.UART0_DeInit + $d 0x00001fa4 0 .text.UART0_DeInit + $d 0x00001fa8 0 .text.UART1_DeInit + $t 0x00001fa8 0 .text.UART1_DeInit + $d 0x00001fbc 0 .text.UART1_DeInit + $d 0x00001fc0 0 .text.UART2_DeInit + $t 0x00001fc0 0 .text.UART2_DeInit + $d 0x00001fd4 0 .text.UART2_DeInit + $d 0x00001fd8 0 .text.UART0_Int_Enable + $t 0x00001fd8 0 .text.UART0_Int_Enable + $d 0x00001fec 0 .text.UART0_Int_Enable + $d 0x00001ff4 0 .text.UART2_Int_Enable + $t 0x00001ff4 0 .text.UART2_Int_Enable + $d 0x00002008 0 .text.UART2_Int_Enable + $d 0x00002010 0 .text.UART_IO_Init + $t 0x00002010 0 .text.UART_IO_Init + $d 0x000020f4 0 .text.UART_IO_Init + $d 0x000020fc 0 .text.UARTInit + $t 0x000020fc 0 .text.UARTInit + $d 0x00002108 0 .text.UARTInit + $d 0x0000210c 0 .text.UARTInitRxTxIntEn + $t 0x0000210c 0 .text.UARTInitRxTxIntEn + $d 0x00002118 0 .text.UARTInitRxTxIntEn + $d 0x0000211c 0 .text.UARTTransmit + $t 0x0000211c 0 .text.UARTTransmit + $d 0x0000213c 0 .text.EPT_Software_Prg + $t 0x0000213c 0 .text.EPT_Software_Prg + $d 0x00002158 0 .text.EPT_Software_Prg + $d 0x0000215c 0 .text.EPT_Start + $t 0x0000215c 0 .text.EPT_Start + $d 0x0000217c 0 .text.EPT_Start + $d 0x00002184 0 .text.EPT_Stop + $t 0x00002184 0 .text.EPT_Stop + $d 0x000021a4 0 .text.EPT_Stop + $d 0x000021ac 0 .text.EPT_IO_SET + $t 0x000021ac 0 .text.EPT_IO_SET + $d 0x000023dc 0 .text.EPT_IO_SET + $d 0x000023e4 0 .text.EPT_PWM_Config + $t 0x000023e4 0 .text.EPT_PWM_Config + $d 0x00002414 0 .text.EPT_PWM_Config + $d 0x0000241c 0 .text.EPT_PWMX_Output_Control + $t 0x0000241c 0 .text.EPT_PWMX_Output_Control + $d 0x000024f0 0 .text.EPT_PWMX_Output_Control + $d 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x000024f4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x0000250c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x00002510 0 .text.ADC12_RESET_VALUE + $t 0x00002510 0 .text.ADC12_RESET_VALUE + $d 0x00002570 0 .text.ADC12_RESET_VALUE + $d 0x00002574 0 .text.ADC12_Control + $t 0x00002574 0 .text.ADC12_Control + $d 0x00002580 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002584 F 32 .text.ADC12_CMD.part.0 + $d 0x00002584 0 .text.ADC12_CMD.part.0 + $t 0x00002584 0 .text.ADC12_CMD.part.0 + $d 0x000025a0 0 .text.ADC12_CMD.part.0 + $d 0x000025a4 0 .text.ADC12_CLK_CMD + $t 0x000025a4 0 .text.ADC12_CLK_CMD + $d 0x000025cc 0 .text.ADC12_CLK_CMD + $d 0x000025d0 0 .text.ADC12_Software_Reset + $t 0x000025d0 0 .text.ADC12_Software_Reset + $d 0x000025dc 0 .text.ADC12_CMD + $t 0x000025dc 0 .text.ADC12_CMD + $d 0x00002600 0 .text.ADC12_CMD + $d 0x00002604 0 .text.ADC12_ready_wait + $t 0x00002604 0 .text.ADC12_ready_wait + $d 0x00002614 0 .text.ADC12_ready_wait + $d 0x00002618 0 .text.ADC12_SEQEND_wait + $t 0x00002618 0 .text.ADC12_SEQEND_wait + $d 0x0000262c 0 .text.ADC12_SEQEND_wait + $d 0x00002630 0 .text.ADC12_DATA_OUPUT + $t 0x00002630 0 .text.ADC12_DATA_OUPUT + $d 0x00002640 0 .text.ADC12_DATA_OUPUT + $d 0x00002644 0 .text.ADC12_Configure_Mode + $t 0x00002644 0 .text.ADC12_Configure_Mode + $d 0x000026bc 0 .text.ADC12_Configure_Mode + $d 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $t 0x000026c0 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002834 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002858 0 .text.ADC12_ConversionChannel_Config + $t 0x00002858 0 .text.ADC12_ConversionChannel_Config + $d 0x00002884 0 .text.ADC12_ConversionChannel_Config + $t 0x00002894 0 .text.ADC12_ConversionChannel_Config + $d 0x000029cc 0 .text.ADC12_ConversionChannel_Config + $d 0x000029d8 0 .text.Page_ProgramData + $t 0x000029d8 0 .text.Page_ProgramData + $d 0x00002a70 0 .text.Page_ProgramData + $d 0x00002a78 0 .text.ReadDataArry_U8 + $t 0x00002a78 0 .text.ReadDataArry_U8 + $d 0x00002aa4 0 .text.tk_parameter_init + $t 0x00002aa4 0 .text.tk_parameter_init + $d 0x00002b94 0 .text.tk_parameter_init + $d 0x00002be4 0 .text.CORET_DeInit + $t 0x00002be4 0 .text.CORET_DeInit + $d 0x00002bf8 0 .text.CORET_DeInit + $d 0x00002bfc 0 .text.CORET_Int_Enable + $t 0x00002bfc 0 .text.CORET_Int_Enable + $d 0x00002c0c 0 .text.CORET_Int_Enable + $d 0x00002c14 0 .text.CORET_start + $t 0x00002c14 0 .text.CORET_start + $d 0x00002c20 0 .text.CORET_start + $d 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $t 0x00002c24 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c30 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c34 0 .text.CORET_TICKINT_Enable + $t 0x00002c34 0 .text.CORET_TICKINT_Enable + $d 0x00002c40 0 .text.CORET_TICKINT_Enable + $d 0x00002c44 0 .text.CORET_reload + $t 0x00002c44 0 .text.CORET_reload + $d 0x00002c50 0 .text.CORET_reload + $d 0x00002c54 0 .text.startup.main + $t 0x00002c54 0 .text.startup.main + $d 0x00002cb4 0 .text.startup.main + $d 0x00002cc0 0 .text.delay_nms + $t 0x00002cc0 0 .text.delay_nms + $d 0x00002cec 0 .text.delay_nus + $t 0x00002cec 0 .text.delay_nus + $d 0x00002d10 0 .text.EPT0_CONFIG + $t 0x00002d10 0 .text.EPT0_CONFIG + $d 0x00002d6c 0 .text.EPT0_CONFIG + $d 0x00002d70 0 .text.BT_CONFIG + $t 0x00002d70 0 .text.BT_CONFIG + $d 0x00002dc8 0 .text.BT_CONFIG + $d 0x00002dd0 0 .text.SYSCON_CONFIG + $t 0x00002dd0 0 .text.SYSCON_CONFIG + $d 0x00002e34 0 .text.APT32F102_init + $t 0x00002e34 0 .text.APT32F102_init + $d 0x00002ea8 0 .text.APT32F102_init + $d 0x00002ebc 0 .text.SYSCONIntHandler + $t 0x00002ebc 0 .text.SYSCONIntHandler + $d 0x00002fa8 0 .text.SYSCONIntHandler + $d 0x00002fac 0 .text.IFCIntHandler + $t 0x00002fac 0 .text.IFCIntHandler + $d 0x00003010 0 .text.IFCIntHandler + $d 0x00003014 0 .text.ADCIntHandler + $t 0x00003014 0 .text.ADCIntHandler + $d 0x00003078 0 .text.ADCIntHandler + $d 0x0000307c 0 .text.EPT0IntHandler + $t 0x0000307c 0 .text.EPT0IntHandler + $d 0x0000321c 0 .text.EPT0IntHandler + $d 0x00003228 0 .text.WWDTHandler + $t 0x00003228 0 .text.WWDTHandler + $d 0x00003258 0 .text.WWDTHandler + $d 0x0000325c 0 .text.GPT0IntHandler + $t 0x0000325c 0 .text.GPT0IntHandler + $d 0x000032d8 0 .text.GPT0IntHandler + $d 0x000032dc 0 .text.RTCIntHandler + $t 0x000032dc 0 .text.RTCIntHandler + $d 0x00003344 0 .text.RTCIntHandler + $d 0x0000334c 0 .text.UART0IntHandler + $t 0x0000334c 0 .text.UART0IntHandler + $d 0x00003384 0 .text.UART0IntHandler + $d 0x00003388 0 .text.UART1IntHandler + $t 0x00003388 0 .text.UART1IntHandler + $d 0x000033c0 0 .text.UART1IntHandler + $d 0x000033c4 0 .text.UART2IntHandler + $t 0x000033c4 0 .text.UART2IntHandler + $d 0x00003444 0 .text.UART2IntHandler + $d 0x00003458 0 .text.SPI0IntHandler + $t 0x00003458 0 .text.SPI0IntHandler + $d 0x0000353c 0 .text.SPI0IntHandler + $d 0x00003540 0 .text.SIO0IntHandler + $t 0x00003540 0 .text.SIO0IntHandler + $d 0x00003590 0 .text.SIO0IntHandler + $d 0x00003594 0 .text.EXI0IntHandler + $t 0x00003594 0 .text.EXI0IntHandler + $d 0x000035c0 0 .text.EXI0IntHandler + $d 0x000035c4 0 .text.EXI1IntHandler + $t 0x000035c4 0 .text.EXI1IntHandler + $d 0x000035f0 0 .text.EXI1IntHandler + $d 0x000035f4 0 .text.EXI2to3IntHandler + $t 0x000035f4 0 .text.EXI2to3IntHandler + $d 0x00003638 0 .text.EXI2to3IntHandler + $d 0x0000363c 0 .text.EXI4to9IntHandler + $t 0x0000363c 0 .text.EXI4to9IntHandler + $d 0x00003694 0 .text.EXI4to9IntHandler + $d 0x00003698 0 .text.EXI10to15IntHandler + $t 0x00003698 0 .text.EXI10to15IntHandler + $d 0x000036f4 0 .text.EXI10to15IntHandler + $d 0x000036f8 0 .text.LPTIntHandler + $t 0x000036f8 0 .text.LPTIntHandler + $d 0x00003728 0 .text.LPTIntHandler + $d 0x0000372c 0 .text.BT0IntHandler + $t 0x0000372c 0 .text.BT0IntHandler + $d 0x00003774 0 .text.BT0IntHandler + $d 0x00003778 0 .text.BT1IntHandler + $t 0x00003778 0 .text.BT1IntHandler + $d 0x000037d4 0 .text.BT1IntHandler + $d 0x000037dc 0 .text.PriviledgeVioHandler + $t 0x000037dc 0 .text.PriviledgeVioHandler + $d 0x000037de 0 .text.PendTrapHandler + $t 0x000037de 0 .text.PendTrapHandler + $d 0x000037e6 0 .text.Trap3Handler + $t 0x000037e6 0 .text.Trap3Handler + $d 0x000037ee 0 .text.Trap2Handler + $t 0x000037ee 0 .text.Trap2Handler + $d 0x000037f6 0 .text.Trap1Handler + $t 0x000037f6 0 .text.Trap1Handler + $d 0x000037fe 0 .text.Trap0Handler + $t 0x000037fe 0 .text.Trap0Handler + $d 0x00003806 0 .text.UnrecExecpHandler + $t 0x00003806 0 .text.UnrecExecpHandler + $d 0x0000380e 0 .text.BreakPointHandler + $t 0x0000380e 0 .text.BreakPointHandler + $d 0x00003816 0 .text.AccessErrHandler + $t 0x00003816 0 .text.AccessErrHandler + $d 0x0000381e 0 .text.IllegalInstrHandler + $t 0x0000381e 0 .text.IllegalInstrHandler + $d 0x00003826 0 .text.MisalignedHandler + $t 0x00003826 0 .text.MisalignedHandler + $d 0x0000382e 0 .text.CNTAIntHandler + $t 0x0000382e 0 .text.CNTAIntHandler + $d 0x00003836 0 .text.I2CIntHandler + $t 0x00003836 0 .text.I2CIntHandler + $d 0x00003840 0 .text.__divsi3 + $t 0x00003840 0 .text.__divsi3 + $d 0x00003860 0 .text.__divsi3 + $d 0x00003864 0 .text.__udivsi3 + $t 0x00003864 0 .text.__udivsi3 + $d 0x00003884 0 .text.__udivsi3 + $d 0x00003888 0 .text.__umodsi3 + $t 0x00003888 0 .text.__umodsi3 + $d 0x000038a8 0 .text.__umodsi3 + $d 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000038ac 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000038b4 0 .text.UARTx_Init + $t 0x000038b4 0 .text.UARTx_Init + $d 0x00003990 0 .text.UARTx_Init + $d 0x000039bc 0 .text.UART2_RecvINT_Processing + $t 0x000039bc 0 .text.UART2_RecvINT_Processing + $d 0x00003a18 0 .text.UART2_RecvINT_Processing + $d 0x00003a28 0 .text.UART2_TASK + $t 0x00003a28 0 .text.UART2_TASK + $d 0x00003ab8 0 .text.UART2_TASK + $d 0x00003ac4 0 .text.MCU485_SendData + $t 0x00003ac4 0 .text.MCU485_SendData + $d 0x00003b40 0 .text.MCU485_SendData + $d 0x00003b4c 0 .text.Dbg_Println + $t 0x00003b4c 0 .text.Dbg_Println + $d 0x00003b58 0 .text.Dbg_Print_Buff + $t 0x00003b58 0 .text.Dbg_Print_Buff + $d 0x00003b5c 0 .text.Touch_Key_Init + $t 0x00003b5c 0 .text.Touch_Key_Init + $d 0x00003bbc 0 .text.Touch_Key_Init + $d 0x00003bd4 0 .text.TouchKey_RS485_Printf + $t 0x00003bd4 0 .text.TouchKey_RS485_Printf + $d 0x00003cfc 0 .text.TouchKey_RS485_Printf + $d 0x00003d0c 0 .text.Get_TouchKey_CH_State + $t 0x00003d0c 0 .text.Get_TouchKey_CH_State + $d 0x00003d18 0 .text.Get_TouchKey_CH_State + $t 0x00003d1e 0 .text.Get_TouchKey_CH_State + $d 0x00003d44 0 .text.Get_TouchKey_CH_State + $d 0x00003d48 0 .text.Touch_Key_Event_Handling + $t 0x00003d48 0 .text.Touch_Key_Event_Handling + $d 0x00003df0 0 .text.Touch_Key_Event_Handling + $d 0x00003df4 0 .text.TouchKey_Set_Interface_Task + $t 0x00003df4 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e24 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e30 0 .text.Touch_Key_Task + $t 0x00003e30 0 .text.Touch_Key_Task + $d 0x00003ef8 0 .text.Touch_Key_Task + $d 0x00003f08 0 .text.TouchKey_CheckSum + $t 0x00003f08 0 .text.TouchKey_CheckSum + $d 0x00003f20 0 .text.TouchKey_Comm_Reply + $t 0x00003f20 0 .text.TouchKey_Comm_Reply + $d 0x00003f98 0 .text.TouchKey_Comm_Reply + $d 0x00003fa4 0 .text.TouchKey_SetPara_Processing + $t 0x00003fa4 0 .text.TouchKey_SetPara_Processing + $d 0x00004048 0 .text.TouchKey_SetPara_Processing + $d 0x0000405c 0 .text.TouchKey_ReadPara_Processing + $t 0x0000405c 0 .text.TouchKey_ReadPara_Processing + $d 0x00004138 0 .text.TouchKey_ReadPara_Processing + $d 0x00004140 0 .text.TouchKey_DugPrintf_Processing + $t 0x00004140 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004174 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004178 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004178 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000423c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004244 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004244 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004260 0 .text.TouchKey_Comm_Processing + $t 0x00004260 0 .text.TouchKey_Comm_Processing + $d 0x000042ee 0 .text.TouchKey_Comm_Processing + $t 0x000042f4 0 .text.TouchKey_Comm_Processing + $d 0x0000431c 0 .text.TouchKey_Comm_Processing + $d 0x00004338 0 .text.EEPROM_CheckSum + $t 0x00004338 0 .text.EEPROM_CheckSum + $d 0x00004350 0 .text.EEPROM_ReadParaInfo + $t 0x00004350 0 .text.EEPROM_ReadParaInfo + $d 0x000043bc 0 .text.EEPROM_ReadParaInfo + $d 0x000043c4 0 .text.EEPROM_WriteParaInfo + $t 0x000043c4 0 .text.EEPROM_WriteParaInfo + $d 0x00004404 0 .text.EEPROM_WriteParaInfo + $d 0x00004408 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004408 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004470 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004478 0 .text.EEPROM_Default_ParaInfo + $t 0x00004478 0 .text.EEPROM_Default_ParaInfo + $d 0x00004490 0 .text.EEPROM_Init + $t 0x00004490 0 .text.EEPROM_Init + $d 0x000044d4 0 .text.EEPROM_Init + $d 0x000044e0 0 .text.EEPROM_WriteTouchPara + $t 0x000044e0 0 .text.EEPROM_WriteTouchPara + $d 0x00004540 0 .text.EEPROM_WriteTouchPara + $d 0x0000454c 0 .text.EEPROM_ReadTouchPara + $t 0x0000454c 0 .text.EEPROM_ReadTouchPara + $d 0x000045e4 0 .text.EEPROM_ReadTouchPara + $d 0x000045f8 0 .text.EEPROM_Validate_TouchPara + $t 0x000045f8 0 .text.EEPROM_Validate_TouchPara + $d 0x0000469c 0 .text.EEPROM_Validate_TouchPara + $d 0x000046a0 0 .text.EEPROM_Default_TouchPara + $t 0x000046a0 0 .text.EEPROM_Default_TouchPara + $d 0x000046e0 0 .text.EEPROM_TouchPara_Printf + $t 0x000046e0 0 .text.EEPROM_TouchPara_Printf + $d 0x00004744 0 .text.EEPROM_TouchPara_Printf + $d 0x00004760 0 .text.ADC_Init + $t 0x00004760 0 .text.ADC_Init + $d 0x000047b8 0 .text.ADC_Init + $d 0x000047bc 0 .text.Thermistor_Array_Transform + $t 0x000047bc 0 .text.Thermistor_Array_Transform + $d 0x000047fc 0 .text.Thermistor_Array_Transform + $d 0x00004804 0 .text.Calculate_ADC_Sample_Average + $t 0x00004804 0 .text.Calculate_ADC_Sample_Average + $d 0x000048b0 0 .text.Calculate_ADC_Sample_Average + $d 0x000048c4 0 .text.ADC_Sample_Task + $t 0x000048c4 0 .text.ADC_Sample_Task + $d 0x00004964 0 .text.ADC_Sample_Task + $d 0x00004974 0 .text.Get_Temp_Val + $t 0x00004974 0 .text.Get_Temp_Val + $d 0x00004980 0 .text.Get_Temp_Val + $d 0x00004984 0 .text.HT1621_WR_Data + $t 0x00004984 0 .text.HT1621_WR_Data + $d 0x000049c8 0 .text.HT1621_WR_Data + $d 0x000049cc 0 .text.HT1621_WR_CMD + $t 0x000049cc 0 .text.HT1621_WR_CMD + $d 0x000049f8 0 .text.HT1621_WR_CMD + $d 0x000049fc 0 .text.HT1621_Init + $t 0x000049fc 0 .text.HT1621_Init + $d 0x00004a84 0 .text.HT1621_Init + $d 0x00004a88 0 .text.HT1621_Clear + $t 0x00004a88 0 .text.HT1621_Clear + $d 0x00004ad0 0 .text.HT1621_Clear + $d 0x00004ad8 0 .text.HT1621_ALLON + $t 0x00004ad8 0 .text.HT1621_ALLON + $d 0x00004b14 0 .text.HT1621_ALLON + $d 0x00004b18 0 .text.HT1621_Refresh_Data + $t 0x00004b18 0 .text.HT1621_Refresh_Data + $d 0x00004b5c 0 .text.HT1621_Refresh_Data + $d 0x00004b64 0 .text.Set_Temperature_Display + $t 0x00004b64 0 .text.Set_Temperature_Display + $d 0x00004be4 0 .text.Set_Temperature_Display + $d 0x00004bec 0 .text.Local_Temperature_Display + $t 0x00004bec 0 .text.Local_Temperature_Display + $d 0x00004c64 0 .text.Local_Temperature_Display + $d 0x00004c6c 0 .text.Control_Mode + $t 0x00004c6c 0 .text.Control_Mode + $d 0x00004cb0 0 .text.Control_Mode + $d 0x00004cb4 0 .text.Control_wind_velocity + $t 0x00004cb4 0 .text.Control_wind_velocity + $d 0x00004cc0 0 .text.Control_wind_velocity + $t 0x00004cc4 0 .text.Control_wind_velocity + $d 0x00004d20 0 .text.Control_wind_velocity + $d 0x00004d24 0 .text.Control_Prompt_Text + $t 0x00004d24 0 .text.Control_Prompt_Text + $d 0x00004d64 0 .text.Control_Prompt_Text + $d 0x00004d68 0 .text.Controlled_Buzzer + $t 0x00004d68 0 .text.Controlled_Buzzer + $d 0x00004da8 0 .text.Controlled_Buzzer + $d 0x00004db0 0 .text.Controlled_LCD_Backlight + $t 0x00004db0 0 .text.Controlled_LCD_Backlight + $d 0x00004dcc 0 .text.Controlled_LCD_Backlight + $d 0x00004dd4 0 .text.Controlled_Key_Backlight + $t 0x00004dd4 0 .text.Controlled_Key_Backlight + $d 0x00004df0 0 .text.Controlled_Key_Backlight + $d 0x00004df8 0 .text.Set_Device_ADDR + $t 0x00004df8 0 .text.Set_Device_ADDR + $d 0x00004e88 0 .text.Set_Device_ADDR + $d 0x00004e90 0 .text.Set_Temp_Difference + $t 0x00004e90 0 .text.Set_Temp_Difference + $d 0x00004eec 0 .text.Set_Temp_Difference + $d 0x00004ef4 0 .text.HT1621_Refresh_Task + $t 0x00004ef4 0 .text.HT1621_Refresh_Task + $d 0x00004f44 0 .text.HT1621_Refresh_Task + $d 0x00004f54 0 .text.MODEL_Ctrl_Init + $t 0x00004f54 0 .text.MODEL_Ctrl_Init + $d 0x00004f78 0 .text.MODEL_Ctrl_Init + $d 0x00004f80 0 .text.Control_Mode_Detection + $t 0x00004f80 0 .text.Control_Mode_Detection + $d 0x00005024 0 .text.Control_Mode_Detection + $d 0x00005034 0 .text.TemCtrl_Init + $t 0x00005034 0 .text.TemCtrl_Init + $d 0x00005158 0 .text.TemCtrl_Init + $d 0x00005170 0 .text.TemCtrl_Model_Set + $t 0x00005170 0 .text.TemCtrl_Model_Set + $d 0x000051b4 0 .text.TemCtrl_Model_Set + $d 0x000051bc 0 .text.TemCtrl_Fan_Set + $t 0x000051bc 0 .text.TemCtrl_Fan_Set + $d 0x000051da 0 .text.TemCtrl_Fan_Set + $t 0x000051de 0 .text.TemCtrl_Fan_Set + $d 0x00005200 0 .text.TemCtrl_Fan_Set + $d 0x00005208 0 .text.TemCtrl_Temperature_Dec + $t 0x00005208 0 .text.TemCtrl_Temperature_Dec + $d 0x00005230 0 .text.TemCtrl_Temperature_Dec + $d 0x00005238 0 .text.TemCtrl_Temperature_Add + $t 0x00005238 0 .text.TemCtrl_Temperature_Add + $d 0x00005260 0 .text.TemCtrl_Temperature_Add + $d 0x00005268 0 .text.TemCtrl_OnOff_Set + $t 0x00005268 0 .text.TemCtrl_OnOff_Set + $d 0x00005294 0 .text.TemCtrl_OnOff_Set + $d 0x0000529c 0 .text.Tem_Valve_Ctrl + $t 0x0000529c 0 .text.Tem_Valve_Ctrl + $d 0x000053b0 0 .text.Tem_Valve_Ctrl + $d 0x000053c8 0 .text.TemCtrl_Pro + $t 0x000053c8 0 .text.TemCtrl_Pro + $d 0x0000551c 0 .text.TemCtrl_Pro + $d 0x00005530 0 .text.KEY1_Model_Press_Fun + $t 0x00005530 0 .text.KEY1_Model_Press_Fun + $d 0x000055f8 0 .text.KEY1_Model_Press_Fun + $d 0x00005614 0 .text.KEY2_Fan_Press_Fun + $t 0x00005614 0 .text.KEY2_Fan_Press_Fun + $d 0x000056dc 0 .text.KEY2_Fan_Press_Fun + $d 0x000056f8 0 .text.KEY3_TempAdd_Press_Fun + $t 0x000056f8 0 .text.KEY3_TempAdd_Press_Fun + $d 0x000057e0 0 .text.KEY3_TempAdd_Press_Fun + $d 0x000057fc 0 .text.KEY3_Long_Press_Fun + $t 0x000057fc 0 .text.KEY3_Long_Press_Fun + $d 0x00005858 0 .text.KEY3_Long_Press_Fun + $d 0x00005868 0 .text.KEY4_TempDec_Press_Fun + $t 0x00005868 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000594c 0 .text.KEY4_TempDec_Press_Fun + $d 0x00005968 0 .text.KEY4_Long_Press + $t 0x00005968 0 .text.KEY4_Long_Press + $d 0x000059c4 0 .text.KEY4_Long_Press + $d 0x000059d4 0 .text.KEY5_OnOff_Press_Fun + $t 0x000059d4 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005a60 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005a7c 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00005a7c 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00005ac4 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00005ac8 0 .text.DisPlay_Init + $t 0x00005ac8 0 .text.DisPlay_Init + $d 0x00005ae0 0 .text.DisPlay_Init + $d 0x00005ae8 0 .text.DisPlay_Task + $t 0x00005ae8 0 .text.DisPlay_Task + $d 0x00005dd0 0 .text.DisPlay_Task + $d 0x00005e00 0 .text.Debug_Init + $t 0x00005e00 0 .text.Debug_Init + $d 0x00005e2c 0 .text.Debug_Init + $d 0x00005e34 0 .text.Dev_SaveData + $t 0x00005e34 0 .text.Dev_SaveData + $d 0x00005e98 0 .text.Dev_SaveData + $d 0x00005ea4 0 .text.Debug_Task + $t 0x00005ea4 0 .text.Debug_Task + $d 0x00005f00 0 .text.Debug_Task + $d 0x00005f10 0 .text.get_check_sum + $t 0x00005f10 0 .text.get_check_sum + $d 0x00005f28 0 .text.uart_receive_input + $t 0x00005f28 0 .text.uart_receive_input + $d 0x00005f5c 0 .text.uart_receive_input + $d 0x00005f6c 0 .text.Queue_Read_Byte + $t 0x00005f6c 0 .text.Queue_Read_Byte + $d 0x00005f90 0 .text.Queue_Read_Byte + $d 0x00005fa0 0 .text.with_data_rxbuff + $t 0x00005fa0 0 .text.with_data_rxbuff + $d 0x00005fb4 0 .text.with_data_rxbuff + $d 0x00005fbc 0 .text.RF_Info_Init + $t 0x00005fbc 0 .text.RF_Info_Init + $d 0x00005fe0 0 .text.RF_Info_Init + $d 0x00005ff0 0 .text.Add_Frame_Head + $t 0x00005ff0 0 .text.Add_Frame_Head + $d 0x00006028 0 .text.Add_Frame_Head + $d 0x00006030 0 .text.Product_Info_Update + $t 0x00006030 0 .text.Product_Info_Update + $d 0x000060a8 0 .text.Product_Info_Update + $d 0x000060c4 0 .text.Recv_RFNetState_Ack + $t 0x000060c4 0 .text.Recv_RFNetState_Ack + $d 0x000060f8 0 .text.Recv_RFNetState_Ack + $d 0x000060fc 0 .text.Tem_Fun_Ctrl_Report + $t 0x000060fc 0 .text.Tem_Fun_Ctrl_Report + $d 0x000061a4 0 .text.Tem_Fun_Ctrl_Report + $d 0x000061ac 0 .text.data_handle + $t 0x000061ac 0 .text.data_handle + $d 0x000062c8 0 .text.data_handle + $d 0x000062d4 0 .text.zigbee_uart_service + $t 0x000062d4 0 .text.zigbee_uart_service + $d 0x00006394 0 .text.zigbee_uart_service + $d 0x0000639c 0 .text.TemFun_Report_Task + $t 0x0000639c 0 .text.TemFun_Report_Task + $d 0x00006464 0 .text.TemFun_Report_Task + $d 0x0000646c 0 .text.Relay_Init + $t 0x0000646c 0 .text.Relay_Init + $d 0x000064d0 0 .text.Relay_Init + $d 0x000064d8 0 .text.Relay_High + $t 0x000064d8 0 .text.Relay_High + $d 0x000064f8 0 .text.Relay_High + $d 0x000064fc 0 .text.Relay_Mid + $t 0x000064fc 0 .text.Relay_Mid + $d 0x0000651c 0 .text.Relay_Mid + $d 0x00006520 0 .text.Relay_Low + $t 0x00006520 0 .text.Relay_Low + $d 0x00006540 0 .text.Relay_Low + $d 0x00006544 0 .text.Relay_Stop + $t 0x00006544 0 .text.Relay_Stop + $d 0x00006564 0 .text.Relay_Stop + $d 0x00006568 0 .text.NetCRC16 + $t 0x00006568 0 .text.NetCRC16 + $d 0x000065ac 0 .text.NetCRC16 + $d 0x000065b4 0 .text.GetCRC16 + $t 0x000065b4 0 .text.GetCRC16 + $d 0x000065e8 0 .text.GetCRC16 + $d 0x000065f0 0 .text.SOR_CRC + $t 0x000065f0 0 .text.SOR_CRC + $d 0x00006608 0 .text.Rs485AskCycleSend + $t 0x00006608 0 .text.Rs485AskCycleSend + $d 0x000066ec 0 .text.Rs485AskCycleSend + $d 0x000066f4 0 .text.Rs485AskCtrlSend + $t 0x000066f4 0 .text.Rs485AskCtrlSend + $d 0x00006740 0 .text.Rs485AskCtrlSend + $d 0x00006744 0 .text.Rs485AskReadSend + $t 0x00006744 0 .text.Rs485AskReadSend + $d 0x00006794 0 .text.Rs485AskReadSend + $d 0x00006798 0 .text.Temp_Rec_Analysis + $t 0x00006798 0 .text.Temp_Rec_Analysis + $d 0x00006812 0 .text.Temp_Rec_Analysis + $t 0x00006816 0 .text.Temp_Rec_Analysis + $d 0x000068dc 0 .text.Temp_Rec_Analysis + $t 0x000068e0 0 .text.Temp_Rec_Analysis + $d 0x000068f4 0 .text.Temp_Rec_Analysis + $d 0x00006900 0 .text.Tem_Rs485_Rec_Pro + $t 0x00006900 0 .text.Tem_Rs485_Rec_Pro + $d 0x000069b8 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x000069c8 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000069c8 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x000069c8 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000069d4 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000069d8 0 .text.tk_clk_config + $t 0x000069d8 0 .text.tk_clk_config + $d 0x000069fc 0 .text.tk_clk_config + $d 0x00006a00 0 .text.TK_con0_config + $t 0x00006a00 0 .text.TK_con0_config + $d 0x00006ab0 0 .text.TK_con0_config + $d 0x00006abc 0 .text.TK_IO_Enable + $t 0x00006abc 0 .text.TK_IO_Enable + $d 0x00006b00 0 .text.TK_IO_Enable + $t 0x00006b10 0 .text.TK_IO_Enable + $d 0x00006be4 0 .text.TK_IO_Enable + $d 0x00006bf0 0 .text.TK_Sampling_prog + $t 0x00006bf0 0 .text.TK_Sampling_prog + $d 0x00006c38 0 .text.TK_Sampling_prog + $d 0x00006c48 0 .text.TKEYIntHandler + $t 0x00006c48 0 .text.TKEYIntHandler + $d 0x00006cc4 0 .text.TKEYIntHandler + $d 0x00006cd0 0 .text.get_key_number + $t 0x00006cd0 0 .text.get_key_number + $d 0x00006cf4 0 .text.get_key_number + $d 0x00006cf8 0 .text.TK_Baseline_prog + $t 0x00006cf8 0 .text.TK_Baseline_prog + $d 0x00006d60 0 .text.TK_Baseline_prog + $d 0x00006d7c 0 .text.TK_Scan_Start + $t 0x00006d7c 0 .text.TK_Scan_Start + $d 0x00006d94 0 .text.TK_Scan_Start + $d 0x00006d9c 0 .text.TK_Keymap_prog + $t 0x00006d9c 0 .text.TK_Keymap_prog + $d 0x00006ee4 0 .text.TK_Keymap_prog + $d 0x00006f1c 0 .text.TK_overflow_predict + $t 0x00006f1c 0 .text.TK_overflow_predict + $d 0x00007004 0 .text.TK_overflow_predict + $d 0x00007038 0 .text.TK_Baseline_tracking + $t 0x00007038 0 .text.TK_Baseline_tracking + $d 0x000071dc 0 .text.TK_Baseline_tracking + $d 0x00007208 0 .text.TK_result_prog + $t 0x00007208 0 .text.TK_result_prog + $d 0x00007248 0 .text.TK_result_prog + $d 0x0000725c 0 .text.CORETHandler + $t 0x0000725c 0 .text.CORETHandler + $d 0x000072bc 0 .text.CORETHandler + $d 0x000072d4 0 .text.get_key_seq + $t 0x000072d4 0 .text.get_key_seq + $d 0x00007300 0 .text.get_key_seq + $d 0x00007308 0 .text.CORET_CONFIG + $t 0x00007308 0 .text.CORET_CONFIG + $d 0x00007338 0 .text.CORET_CONFIG + $d 0x00007340 0 .text.tk_chxval_seqxcon_clr + $t 0x00007340 0 .text.tk_chxval_seqxcon_clr + $d 0x00007358 0 .text.tk_chxval_seqxcon_clr + $d 0x0000735c 0 .text.tk_reserved_init + $t 0x0000735c 0 .text.tk_reserved_init + $d 0x00007370 0 .text.tk_reserved_init + $d 0x00007384 0 .text.tk_init + $t 0x00007384 0 .text.tk_init + $d 0x000073c0 0 .text.tk_init + $t 0x000073c6 0 .text.tk_init + $d 0x000074b0 0 .text.tk_init + $d 0x00007504 0 .text.std_clk_calib + $t 0x00007504 0 .text.std_clk_calib + $d 0x0000774c 0 .text.std_clk_calib + __func__.6297 0x00007788 O 28 .rodata + __func__.6335 0x000077a4 O 25 .rodata + bp 0x00007afc O 16 .rodata + dp_l 0x00007b0c O 16 .rodata + dp_h 0x00007b1c O 16 .rodata + NUM.6322 0x200000b0 O 1 .bss + adc_tick.6236 0x200000d0 O 4 .bss + tick.6261 0x200000d4 O 4 .bss + rx_in.6298 0x200000da O 2 .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_PullHighLow_DIS 0x00001e7c F 14 .text.GPIO_PullHighLow_DIS + GPIO_DriveStrength_EN 0x00001e8a F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e98 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001ea0 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001ea8 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00001ebe F 16 .text.GPIO_Read_Status + 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 + UART0_DeInit 0x00001f90 F 24 .text.UART0_DeInit + UART1_DeInit 0x00001fa8 F 24 .text.UART1_DeInit + UART2_DeInit 0x00001fc0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00001fd8 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00001ff4 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002010 F 236 .text.UART_IO_Init + UARTInit 0x000020fc F 16 .text.UARTInit + UARTInitRxTxIntEn 0x0000210c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x0000211c F 30 .text.UARTTransmit + EPT_Software_Prg 0x0000213c F 32 .text.EPT_Software_Prg + EPT_Start 0x0000215c F 40 .text.EPT_Start + EPT_Stop 0x00002184 F 40 .text.EPT_Stop + EPT_IO_SET 0x000021ac F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x000023e4 F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x0000241c F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x000024f4 F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x00002510 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002574 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x000025a4 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x000025d0 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000025dc F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00002604 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002618 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002630 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002644 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x000026c0 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002858 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x000029d8 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a78 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002aa4 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002be4 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002bfc F 24 .text.CORET_Int_Enable + CORET_start 0x00002c14 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002c24 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c34 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c44 F 16 .text.CORET_reload + main 0x00002c54 F 108 .text.startup.main + delay_nms 0x00002cc0 F 44 .text.delay_nms + delay_nus 0x00002cec F 34 .text.delay_nus + EPT0_CONFIG 0x00002d10 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002d70 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002dd0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002e34 F 136 .text.APT32F102_init + SYSCONIntHandler 0x00002ebc F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002fac F 104 .text.IFCIntHandler + ADCIntHandler 0x00003014 F 104 .text.ADCIntHandler + EPT0IntHandler 0x0000307c F 428 .text.EPT0IntHandler + WWDTHandler 0x00003228 F 52 .text.WWDTHandler + GPT0IntHandler 0x0000325c F 128 .text.GPT0IntHandler + RTCIntHandler 0x000032dc F 112 .text.RTCIntHandler + UART0IntHandler 0x0000334c F 60 .text.UART0IntHandler + UART1IntHandler 0x00003388 F 60 .text.UART1IntHandler + UART2IntHandler 0x000033c4 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00003458 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00003540 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003594 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x000035c4 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000035f4 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x0000363c F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003698 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000036f8 F 52 .text.LPTIntHandler + BT0IntHandler 0x0000372c F 76 .text.BT0IntHandler + BT1IntHandler 0x00003778 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x000037dc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000037de F 8 .text.PendTrapHandler + Trap3Handler 0x000037e6 F 8 .text.Trap3Handler + Trap2Handler 0x000037ee F 8 .text.Trap2Handler + Trap1Handler 0x000037f6 F 8 .text.Trap1Handler + Trap0Handler 0x000037fe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003806 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000380e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003816 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000381e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003826 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000382e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003836 F 8 .text.I2CIntHandler + __divsi3 0x00003840 F 36 .text.__divsi3 + __udivsi3 0x00003864 F 36 .text.__udivsi3 + __umodsi3 0x00003888 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000038ac F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x000038b4 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x000039bc F 108 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003a28 F 156 .text.UART2_TASK + MCU485_SendData 0x00003ac4 F 136 .text.MCU485_SendData + Dbg_Println 0x00003b4c F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003b58 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003b5c F 120 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003bd4 F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003d0c F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003d48 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003df4 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003e30 F 216 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003f08 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003f20 F 132 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003fa4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x0000405c F 228 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00004140 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004178 F 204 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004244 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004260 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004338 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004350 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000043c4 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004408 F 112 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004478 F 24 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x00004490 F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000044e0 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x0000454c F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x000045f8 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000046a0 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x000046e0 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004760 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000047bc F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004804 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000048c4 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004974 F 16 .text.Get_Temp_Val + HT1621_WR_Data 0x00004984 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000049cc F 48 .text.HT1621_WR_CMD + HT1621_Init 0x000049fc F 140 .text.HT1621_Init + HT1621_Clear 0x00004a88 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00004ad8 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00004b18 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x00004b64 F 136 .text.Set_Temperature_Display + Local_Temperature_Display 0x00004bec F 128 .text.Local_Temperature_Display + Control_Mode 0x00004c6c F 72 .text.Control_Mode + Control_wind_velocity 0x00004cb4 F 112 .text.Control_wind_velocity + Control_Prompt_Text 0x00004d24 F 68 .text.Control_Prompt_Text + Controlled_Buzzer 0x00004d68 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00004db0 F 36 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00004dd4 F 36 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00004df8 F 152 .text.Set_Device_ADDR + Set_Temp_Difference 0x00004e90 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00004ef4 F 96 .text.HT1621_Refresh_Task + MODEL_Ctrl_Init 0x00004f54 F 44 .text.MODEL_Ctrl_Init + Control_Mode_Detection 0x00004f80 F 180 .text.Control_Mode_Detection + TemCtrl_Init 0x00005034 F 316 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00005170 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x000051bc F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00005208 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00005238 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00005268 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x0000529c F 300 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000053c8 F 360 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00005530 F 228 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x00005614 F 228 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x000056f8 F 260 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x000057fc F 108 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00005868 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00005968 F 108 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x000059d4 F 168 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00005a7c F 76 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00005ac8 F 32 .text.DisPlay_Init + DisPlay_Task 0x00005ae8 F 792 .text.DisPlay_Task + Debug_Init 0x00005e00 F 52 .text.Debug_Init + Dev_SaveData 0x00005e34 F 112 .text.Dev_SaveData + Debug_Task 0x00005ea4 F 108 .text.Debug_Task + get_check_sum 0x00005f10 F 22 .text.get_check_sum + uart_receive_input 0x00005f28 F 68 .text.uart_receive_input + Queue_Read_Byte 0x00005f6c F 52 .text.Queue_Read_Byte + with_data_rxbuff 0x00005fa0 F 28 .text.with_data_rxbuff + RF_Info_Init 0x00005fbc F 52 .text.RF_Info_Init + Add_Frame_Head 0x00005ff0 F 64 .text.Add_Frame_Head + Product_Info_Update 0x00006030 F 144 .text.Product_Info_Update + Recv_RFNetState_Ack 0x000060c4 F 56 .text.Recv_RFNetState_Ack + Tem_Fun_Ctrl_Report 0x000060fc F 176 .text.Tem_Fun_Ctrl_Report + data_handle 0x000061ac F 296 .text.data_handle + zigbee_uart_service 0x000062d4 F 200 .text.zigbee_uart_service + TemFun_Report_Task 0x0000639c F 208 .text.TemFun_Report_Task + Relay_Init 0x0000646c F 108 .text.Relay_Init + Relay_High 0x000064d8 F 36 .text.Relay_High + Relay_Mid 0x000064fc F 36 .text.Relay_Mid + Relay_Low 0x00006520 F 36 .text.Relay_Low + Relay_Stop 0x00006544 F 36 .text.Relay_Stop + NetCRC16 0x00006568 F 76 .text.NetCRC16 + GetCRC16 0x000065b4 F 60 .text.GetCRC16 + SOR_CRC 0x000065f0 F 22 .text.SOR_CRC + Rs485AskCycleSend 0x00006608 F 236 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x000066f4 F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00006744 F 84 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x00006798 F 360 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00006900 F 200 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x000069d8 F 40 .text.tk_clk_config + TK_con0_config 0x00006a00 F 188 .text.TK_con0_config + TK_IO_Enable 0x00006abc F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x00006bf0 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00006c48 F 136 .text.TKEYIntHandler + get_key_number 0x00006cd0 F 40 .text.get_key_number + TK_Baseline_prog 0x00006cf8 F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00006d7c F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00006d9c F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00006f1c F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00007038 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00007208 F 84 .text.TK_result_prog + CORETHandler 0x0000725c F 120 .text.CORETHandler + get_key_seq 0x000072d4 F 52 .text.get_key_seq + CORET_CONFIG 0x00007308 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00007340 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x0000735c F 40 .text.tk_reserved_init + tk_init 0x00007384 F 368 .text.tk_init + std_clk_calib 0x00007504 F 644 .text.std_clk_calib + R_Array 0x000077be O 820 .rodata + Diaital 0x00007af2 O 10 .rodata + __thenan_df 0x00007b2c O 20 .rodata + __clz_tab 0x00007b40 O 256 .rodata + _end_rodata 0x00008018 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 + MCU_Touch_CH 0x20000068 O 5 .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 + Sav_Temp 0x200000a4 O 4 .bss + _bss_start 0x200000a4 0 .bss + Sys_RSR 0x200000a8 O 4 .bss + test_tick 0x200000ac O 4 .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 + Dbg_Switch 0x200000cc O 4 .bss + seq_num 0x200000d8 O 2 .bss + Press_debounce_data 0x200000dc O 1 .bss + TK_Lowpower_mode 0x200000dd O 1 .bss + TK_Lowpower_level 0x200000de O 1 .bss + TK_longpress_time 0x200000e0 O 4 .bss + Release_debounce_data 0x200000e4 O 1 .bss + Key_mode 0x200000e5 O 1 .bss + TK_icon 0x200000e6 O 34 .bss + MultiTimes_Filter 0x20000108 O 1 .bss + Base_Speed 0x20000109 O 1 .bss + TK_IO_ENABLE 0x2000010c O 4 .bss + Valid_Key_Num 0x20000110 O 1 .bss + TK_senprd 0x20000112 O 34 .bss + TK_Wakeup_level 0x20000134 O 1 .bss + TK_Triggerlevel 0x20000136 O 34 .bss + TK_EC_LEVEL 0x20000158 O 2 .bss + TK_FVR_LEVEL 0x2000015a O 2 .bss + TK_BaseCnt 0x2000015c O 4 .bss + TK_PSEL_MODE 0x20000160 O 2 .bss + R_CMPB_BUF 0x20000164 O 4 .bss + R_CMPA_BUF 0x20000168 O 4 .bss + R_SIORX_buf 0x2000016c O 40 .bss + g_uart 0x20000194 O 345 .bss + touch_para 0x200002f0 O 28 .bss + touch_state 0x2000030c O 20 .bss + g_key 0x20000320 O 48 .bss + g_eeprom 0x20000350 O 6 .bss + g_adc 0x20000356 O 55 .bss + HT1621 0x20000390 O 60 .bss + detect_inf 0x200003cc O 8 .bss + TempCtrl 0x200003d4 O 31 .bss + Debug_Inf 0x200003f3 O 12 .bss + zigbee_queue_buf 0x20000400 O 265 .bss + queue_in 0x2000050c O 4 .bss + zigbee_uart_rx_buf 0x20000510 O 137 .bss + queue_out 0x2000059c O 4 .bss + rf_info 0x200005a0 O 3 .bss + zigbee_uart_tx_buf 0x200005a3 O 137 .bss + baseline_data0 0x2000062c O 34 .bss + TK_Postive_build2 0x2000064e O 17 .bss + Key_Map1 0x20000660 O 4 .bss + offset_data2_abs 0x20000664 O 34 .bss + scan_f 0x20000686 O 1 .bss + offset_data1_abs 0x20000688 O 34 .bss + Release_debounce0 0x200006aa O 17 .bss + Key_Map0 0x200006bc O 4 .bss + bsae_over_f 0x200006c0 O 1 .bss + scan_cnt 0x200006c2 O 2 .bss + Press_debounce0 0x200006c4 O 17 .bss + offset_data0 0x200006d6 O 34 .bss + sampling_data1 0x200006f8 O 34 .bss + Key_Map2 0x2000071c O 4 .bss + Release_debounce1 0x20000720 O 17 .bss + tk_overflow_f 0x20000731 O 1 .bss + TK_Negtive_build2 0x20000732 O 17 .bss + base_update_f 0x20000743 O 1 .bss + TK_Postive_build1 0x20000744 O 17 .bss + time_cnt 0x20000758 O 4 .bss + lpt_scan_pend_cnt 0x2000075c O 2 .bss + TK_track_cnt 0x2000075e O 1 .bss + Key_Map 0x20000760 O 4 .bss + baseline_data1 0x20000764 O 34 .bss + TK_Postive_build0 0x20000786 O 17 .bss + sampling_data2 0x20000798 O 34 .bss + offset_data1 0x200007ba O 34 .bss + TK_ovrdect_cnt 0x200007dc O 1 .bss + Press_debounce2 0x200007dd O 17 .bss + TK_Negtive_build1 0x200007ee O 17 .bss + tk_num 0x200007ff O 1 .bss + TK_Negtive_build0 0x20000800 O 17 .bss + Press_debounce1 0x20000811 O 17 .bss + Release_debounce2 0x20000822 O 17 .bss + r_Key_Map_Temp 0x20000834 O 4 .bss + tk_seque 0x20000838 O 17 .bss + scan_step 0x20000849 O 1 .bss + baseline_data2 0x2000084a O 34 .bss + tk_sampling_max 0x2000086c O 34 .bss + offset_data0_abs 0x2000088e O 34 .bss + offset_data2 0x200008b0 O 34 .bss + sampling_data0 0x200008d2 O 34 .bss + _ebss 0x200008f4 0 .bss + _end 0x200008f4 0 .bss + end 0x200008f4 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: 0x00008018, 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 1233 .text pow.o + 0x00000b5e 0x00000006 Code RO 1241 .text fabs.o + 0x00000b64 0x00000020 Code RO 1247 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1254 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1265 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1270 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1277 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1284 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1291 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1298 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1305 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1312 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1319 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1326 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1340 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1347 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1354 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1360 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1367 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1374 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1395 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1400 .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 137 .text.GPIO_PullHighLow_DIS Obj/FWlib_apt32f102_gpio.o + 0x00001e8a 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e98 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001ea0 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001ea8 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001ebe 0x00000010 Code RO 151 .text.GPIO_Read_Status 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 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fa8 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fc0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001fd8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001ff4 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002010 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000020fc 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x0000210c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x0000211c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x0000213c 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x0000215c 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x00002184 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000021ac 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x000023e4 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x0000241c 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x000024f4 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x00002510 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002574 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002584 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x000025a4 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x000025d0 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000025dc 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00002604 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002618 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002630 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002644 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x000026c0 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002858 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x000029d8 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a78 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002aa4 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002be4 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002bfc 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c14 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002c24 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c34 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c44 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c54 0x0000006c Code RO 705 .text.startup.main Obj/main.o + 0x00002cc0 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002cec 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002d10 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002d70 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002dd0 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002e34 0x00000088 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002ebc 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002fac 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003014 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x0000307c 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003228 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x0000325c 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000032dc 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x0000334c 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003388 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000033c4 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00003458 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00003540 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003594 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x000035c4 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000035f4 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x0000363c 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003698 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000036f8 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x0000372c 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003778 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000037dc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000037de 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000037e6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000037ee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000037f6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000037fe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003806 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000380e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003816 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000381e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003826 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000382e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003836 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003840 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003864 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003888 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000038ac 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000038b4 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000039bc 0x0000006c Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003a28 0x0000009c Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003ac4 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003b4c 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003b58 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003b5c 0x00000078 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003bd4 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003d0c 0x0000003c Code RO 865 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003d48 0x000000ac Code RO 867 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003df4 0x0000003c Code RO 868 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003e30 0x000000d8 Code RO 869 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003f08 0x00000018 Code RO 870 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003f20 0x00000084 Code RO 871 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003fa4 0x000000b8 Code RO 872 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x0000405c 0x000000e4 Code RO 873 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00004140 0x00000038 Code RO 874 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004178 0x000000cc Code RO 875 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004244 0x0000001a Code RO 876 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004260 0x000000d8 Code RO 877 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004338 0x00000016 Code RO 896 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004350 0x00000074 Code RO 897 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000043c4 0x00000044 Code RO 898 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004408 0x00000070 Code RO 900 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004478 0x00000018 Code RO 901 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004490 0x00000050 Code RO 902 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000044e0 0x0000006c Code RO 903 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x0000454c 0x000000ac Code RO 904 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x000045f8 0x000000a8 Code RO 905 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000046a0 0x00000040 Code RO 906 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x000046e0 0x00000080 Code RO 907 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004760 0x0000005c Code RO 925 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000047bc 0x00000048 Code RO 926 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004804 0x000000c0 Code RO 927 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000048c4 0x000000b0 Code RO 928 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004974 0x00000010 Code RO 929 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004984 0x00000048 Code RO 947 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000049cc 0x00000030 Code RO 948 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x000049fc 0x0000008c Code RO 949 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00004a88 0x00000050 Code RO 953 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00004ad8 0x00000040 Code RO 954 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00004b18 0x0000004c Code RO 955 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x00004b64 0x00000088 Code RO 956 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004bec 0x00000080 Code RO 957 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004c6c 0x00000048 Code RO 958 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00004cb4 0x00000070 Code RO 959 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00004d24 0x00000044 Code RO 960 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00004d68 0x00000048 Code RO 961 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00004db0 0x00000024 Code RO 962 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00004dd4 0x00000024 Code RO 963 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00004df8 0x00000098 Code RO 964 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00004e90 0x00000064 Code RO 965 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00004ef4 0x00000060 Code RO 966 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00004f54 0x0000002c Code RO 986 .text.MODEL_Ctrl_Init Obj/SYSTEM_model_detection.o + 0x00004f80 0x000000b4 Code RO 987 .text.Control_Mode_Detection Obj/SYSTEM_model_detection.o + 0x00005034 0x0000013c Code RO 1004 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00005170 0x0000004c Code RO 1005 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x000051bc 0x0000004c Code RO 1006 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00005208 0x00000030 Code RO 1007 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00005238 0x00000030 Code RO 1008 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00005268 0x00000034 Code RO 1009 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x0000529c 0x0000012c Code RO 1010 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000053c8 0x00000168 Code RO 1011 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00005530 0x000000e4 Code RO 1029 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005614 0x000000e4 Code RO 1030 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x000056f8 0x00000104 Code RO 1031 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x000057fc 0x0000006c Code RO 1032 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005868 0x00000100 Code RO 1033 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005968 0x0000006c Code RO 1034 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x000059d4 0x000000a8 Code RO 1035 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005a7c 0x0000004c Code RO 1051 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00005ac8 0x00000020 Code RO 1052 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00005ae8 0x00000318 Code RO 1053 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00005e00 0x00000034 Code RO 1070 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00005e34 0x00000070 Code RO 1071 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00005ea4 0x0000006c Code RO 1072 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00005f10 0x00000016 Code RO 1089 .text.get_check_sum Obj/USRCTRL_rf_uart_protocol.o + 0x00005f28 0x00000044 Code RO 1090 .text.uart_receive_input Obj/USRCTRL_rf_uart_protocol.o + 0x00005f6c 0x00000034 Code RO 1091 .text.Queue_Read_Byte Obj/USRCTRL_rf_uart_protocol.o + 0x00005fa0 0x0000001c Code RO 1092 .text.with_data_rxbuff Obj/USRCTRL_rf_uart_protocol.o + 0x00005fbc 0x00000034 Code RO 1093 .text.RF_Info_Init Obj/USRCTRL_rf_uart_protocol.o + 0x00005ff0 0x00000040 Code RO 1094 .text.Add_Frame_Head Obj/USRCTRL_rf_uart_protocol.o + 0x00006030 0x00000094 Code RO 1095 .text.Product_Info_Update Obj/USRCTRL_rf_uart_protocol.o + 0x000060c4 0x00000038 Code RO 1096 .text.Recv_RFNetState_Ack Obj/USRCTRL_rf_uart_protocol.o + 0x000060fc 0x000000b0 Code RO 1097 .text.Tem_Fun_Ctrl_Report Obj/USRCTRL_rf_uart_protocol.o + 0x000061ac 0x00000128 Code RO 1099 .text.data_handle Obj/USRCTRL_rf_uart_protocol.o + 0x000062d4 0x000000c8 Code RO 1100 .text.zigbee_uart_service Obj/USRCTRL_rf_uart_protocol.o + 0x0000639c 0x000000d0 Code RO 1101 .text.TemFun_Report_Task Obj/USRCTRL_rf_uart_protocol.o + 0x0000646c 0x0000006c Code RO 1119 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x000064d8 0x00000024 Code RO 1120 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x000064fc 0x00000024 Code RO 1121 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x00006520 0x00000024 Code RO 1122 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00006544 0x00000024 Code RO 1123 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00006568 0x0000004c Code RO 1139 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000065b4 0x0000003c Code RO 1140 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000065f0 0x00000016 Code RO 1141 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00006608 0x000000ec Code RO 1142 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x000066f4 0x00000050 Code RO 1143 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x00006744 0x00000054 Code RO 1144 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00006798 0x00000168 Code RO 1145 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x00006900 0x000000c8 Code RO 1146 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x000069c8 0x00000010 Code RO 1172 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x000069d8 0x00000028 Code RO 1174 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006a00 0x000000bc Code RO 1175 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006abc 0x00000134 Code RO 1178 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x00006bf0 0x00000058 Code RO 1179 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006c48 0x00000088 Code RO 1183 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00006cd0 0x00000028 Code RO 1184 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006cf8 0x00000084 Code RO 1185 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006d7c 0x00000020 Code RO 1186 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00006d9c 0x00000180 Code RO 1187 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006f1c 0x0000011c Code RO 1188 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00007038 0x000001d0 Code RO 1189 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00007208 0x00000054 Code RO 1190 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x0000725c 0x00000078 Code RO 1191 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000072d4 0x00000034 Code RO 1192 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x00007308 0x00000038 Code RO 1193 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x00007340 0x0000001c Code RO 1194 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x0000735c 0x00000028 Code RO 1195 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00007384 0x00000180 Code RO 1196 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x00007504 0x00000284 Code RO 1213 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00007788 0x00000035 Data RO 878 .rodata Obj/SYSTEM_touch_key.o + 0x000077bd 0x00000001 PAD + 0x000077be 0x00000334 Data RO 930 .rodata Obj/SYSTEM_adc.o + 0x00007af2 0x0000000a Data RO 968 .rodata Obj/SYSTEM_ht1621.o + 0x00007afc 0x00000030 Data RO 1236 .rodata pow.o + 0x00007b2c 0x00000014 Data RO 1336 .rodata _thenan_df.o + 0x00007b40 0x00000100 Data RO 1384 .rodata _clz.o + 0x00007c40 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00007c4e 0x00000092 Data RO 879 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00007ce0 0x0000016e Data RO 908 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00007e4e 0x00000017 Data RO 988 .rodata.str1.1 Obj/SYSTEM_model_detection.o + 0x00007e65 0x00000049 Data RO 1012 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00007eae 0x0000007e Data RO 1036 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00007f2c 0x00000045 Data RO 1054 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00007f71 0x00000057 Data RO 1073 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00007fc8 0x00000021 Data RO 1102 .rodata.str1.1 Obj/USRCTRL_rf_uart_protocol.o + 0x00007fe9 0x0000002c Data RO 1147 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x00008015 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x000008f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1170 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x0000000c Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000d0 0x00000004 Zero RW 924 .bss Obj/SYSTEM_adc.o + 0x200000d4 0x00000004 Zero RW 1003 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200000d8 0x00000004 Zero RW 1088 .bss Obj/USRCTRL_rf_uart_protocol.o + 0x200000dc 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x20000162 0x00000002 PAD + 0x20000164 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000194 0x00000159 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x200002ed 0x00000003 PAD + 0x200002f0 0x00000060 Zero RW 892 COMMON Obj/SYSTEM_touch_key.o + 0x20000350 0x00000006 Zero RW 921 COMMON Obj/SYSTEM_eeprom.o + 0x20000356 0x00000037 Zero RW 943 COMMON Obj/SYSTEM_adc.o + 0x2000038d 0x00000003 PAD + 0x20000390 0x0000003c Zero RW 982 COMMON Obj/SYSTEM_ht1621.o + 0x200003cc 0x00000008 Zero RW 1000 COMMON Obj/SYSTEM_model_detection.o + 0x200003d4 0x0000001f Zero RW 1025 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200003f3 0x0000000c Zero RW 1085 COMMON Obj/USRCTRL_debug_unit.o + 0x200003ff 0x00000001 PAD + 0x20000400 0x0000022c Zero RW 1115 COMMON Obj/USRCTRL_rf_uart_protocol.o + 0x2000062c 0x000002c8 Zero RW 1209 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 265 Obj/arch_crt0.o + 56 0 0 0 799 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 326 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 + 426 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9268 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 108 14 0 12 12466 Obj/main.o + 504 0 0 0 16152 Obj/mcu_initial.o + 2434 0 0 60 15229 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 678 0 0 365 13827 Obj/SYSTEM_uart.o + 2010 199 5 96 16283 Obj/SYSTEM_touch_key.o + 1062 366 0 6 14159 Obj/SYSTEM_eeprom.o + 548 820 0 59 12830 Obj/SYSTEM_adc.o + 1488 10 0 60 15767 Obj/SYSTEM_ht1621.o + 224 23 0 8 11213 Obj/SYSTEM_model_detection.o + 1276 73 0 35 12397 Obj/USRCTRL_tempctrl_unit.o + 1356 126 0 0 11919 Obj/USRCTRL_key_logic.o + 900 69 0 0 11426 Obj/USRCTRL_display_logic.o + 272 87 0 12 11309 Obj/USRCTRL_debug_unit.o + 1370 33 0 560 14410 Obj/USRCTRL_rf_uart_protocol.o + 252 0 0 0 11489 Obj/USRCTRL_myrelay.o + 1118 44 0 0 13294 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 20752 1864 109 1407 388134 Object Totals + 4 4 6 9 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 + + 2876 0 49 712 16339 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 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 + 30572 2192 164 2128 413148 Grand Totals + 30572 2192 164 2128 413148 Elf Image Totals + 30572 2192 164 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 32764 ( 32.00kB) +Total RW Size (RW Data + ZI Data) 2292 ( 2.24kB) +Total ROM Size (Code + RO Data + RW Data) 32928 ( 32.16kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241126.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241126.asm new file mode 100644 index 0000000..8cec0fa --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241126.asm @@ -0,0 +1,22586 @@ + +.//Obj/T1_AC_TC_V01_20241126.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003912 .long 0x00003912 + 8: 00003902 .long 0x00003902 + c: 00000184 .long 0x00000184 + 10: 0000390a .long 0x0000390a + 14: 000038c8 .long 0x000038c8 + 18: 00000184 .long 0x00000184 + 1c: 000038fa .long 0x000038fa + 20: 000038f2 .long 0x000038f2 + 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: 000038ea .long 0x000038ea + 44: 000038e2 .long 0x000038e2 + 48: 000038da .long 0x000038da + 4c: 000038d2 .long 0x000038d2 + 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: 000038ca .long 0x000038ca + 80: 00007dc0 .long 0x00007dc0 + 84: 00002fa8 .long 0x00002fa8 + 88: 00003098 .long 0x00003098 + 8c: 00003100 .long 0x00003100 + 90: 00003168 .long 0x00003168 + 94: 00000184 .long 0x00000184 + 98: 00003314 .long 0x00003314 + 9c: 00003680 .long 0x00003680 + a0: 000036b0 .long 0x000036b0 + a4: 00003348 .long 0x00003348 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000033c8 .long 0x000033c8 + b4: 00003438 .long 0x00003438 + b8: 00003474 .long 0x00003474 + bc: 000034b0 .long 0x000034b0 + c0: 00000184 .long 0x00000184 + c4: 00003922 .long 0x00003922 + c8: 00000184 .long 0x00000184 + cc: 00003544 .long 0x00003544 + d0: 0000362c .long 0x0000362c + d4: 000036e0 .long 0x000036e0 + d8: 00003728 .long 0x00003728 + dc: 00003784 .long 0x00003784 + e0: 0000391a .long 0x0000391a + e4: 000077ac .long 0x000077ac + e8: 000037e4 .long 0x000037e4 + ec: 00000184 .long 0x00000184 + f0: 00003818 .long 0x00003818 + f4: 00003864 .long 0x00003864 + 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, 0x1ab4 // 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, 0x2d64 // 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: 00001ab4 .long 0x00001ab4 + 198: 00000160 .long 0x00000160 + 19c: 00002d64 .long 0x00002d64 + 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: e000072f bsr 0x1054 // 1054 <__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: e0000715 bsr 0x1084 // 1084 <__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: e000082a bsr 0x12f0 // 12f0 <__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: e00006ec bsr 0x10bc // 10bc <__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: e00007e0 bsr 0x12f0 // 12f0 <__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: e000069b bsr 0x1084 // 1084 <__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: e0000666 bsr 0x1084 // 1084 <__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: e000067c bsr 0x10bc // 10bc <__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: e0000674 bsr 0x10bc // 10bc <__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: e000066c bsr 0x10bc // 10bc <__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: e000064a bsr 0x1084 // 1084 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000662 bsr 0x10bc // 10bc <__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: e0000640 bsr 0x1084 // 1084 <__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: e0000654 bsr 0x10bc // 10bc <__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: e000064e bsr 0x10bc // 10bc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e000064a bsr 0x10bc // 10bc <__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: e0000628 bsr 0x1084 // 1084 <__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: e0000608 bsr 0x1054 // 1054 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000061a bsr 0x1084 // 1084 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000614 bsr 0x1084 // 1084 <__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: e0000603 bsr 0x1084 // 1084 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000061b bsr 0x10bc // 10bc <__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: e0000613 bsr 0x10bc // 10bc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e00005d9 bsr 0x1054 // 1054 <__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: e0000605 bsr 0x10bc // 10bc <__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: e00005c7 bsr 0x1054 // 1054 <__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: e00005e7 bsr 0x10bc // 10bc <__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: e00005dc bsr 0x10bc // 10bc <__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, 0x8660 // 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: e000059a bsr 0x1084 // 1084 <__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: e000057a bsr 0x1054 // 1054 <__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: e00006c2 bsr 0x12f0 // 12f0 <__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: 00008660 .long 0x00008660 + 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: e000056a bsr 0x10bc // 10bc <__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: e000055b bsr 0x10bc // 10bc <__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: e0000539 bsr 0x1084 // 1084 <__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: e0000531 bsr 0x1084 // 1084 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000052b bsr 0x1084 // 1084 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e0000543 bsr 0x10bc // 10bc <__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: e0000521 bsr 0x1084 // 1084 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e0000539 bsr 0x10bc // 10bc <__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: e0000531 bsr 0x10bc // 10bc <__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: e0000529 bsr 0x10bc // 10bc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e00004ef bsr 0x1054 // 1054 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e000051f bsr 0x10bc // 10bc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e00004e5 bsr 0x1054 // 1054 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000515 bsr 0x10bc // 10bc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e00004db bsr 0x1054 // 1054 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e000050b bsr 0x10bc // 10bc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e00004d1 bsr 0x1054 // 1054 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e0000501 bsr 0x10bc // 10bc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e00004c7 bsr 0x1054 // 1054 <__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: e00004f3 bsr 0x10bc // 10bc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e00004ed bsr 0x10bc // 10bc <__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: e00004b1 bsr 0x1054 // 1054 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e00004e1 bsr 0x10bc // 10bc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e00004a9 bsr 0x1054 // 1054 <__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: e00004d5 bsr 0x10bc // 10bc <__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: e000049b bsr 0x1054 // 1054 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000497 bsr 0x1054 // 1054 <__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: e00004c4 bsr 0x10bc // 10bc <__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: e00004a0 bsr 0x1084 // 1084 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000049c bsr 0x1084 // 1084 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000496 bsr 0x1084 // 1084 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e00004ae bsr 0x10bc // 10bc <__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: e00004a6 bsr 0x10bc // 10bc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000046c bsr 0x1054 // 1054 <__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: e0000464 bsr 0x1054 // 1054 <__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: e0000491 bsr 0x10bc // 10bc <__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: e000046d bsr 0x1084 // 1084 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000467 bsr 0x1084 // 1084 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000047f bsr 0x10bc // 10bc <__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: e0000477 bsr 0x10bc // 10bc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000043d bsr 0x1054 // 1054 <__adddf3> + 7de: 01db lrw r6, 0x8660 // 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: e0000436 bsr 0x1054 // 1054 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000683 bsr 0x14f8 // 14f8 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0x8660 // 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: e0000423 bsr 0x1054 // 1054 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e000041f bsr 0x1054 // 1054 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000041b bsr 0x1054 // 1054 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000042d bsr 0x1084 // 1084 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e0000429 bsr 0x1084 // 1084 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000425 bsr 0x1084 // 1084 <__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: e00003fc bsr 0x1054 // 1054 <__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: e000040c bsr 0x1084 // 1084 <__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: e00005e6 bsr 0x1444 // 1444 <__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: e00003dc bsr 0x1084 // 1084 <__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: e00003bc bsr 0x1054 // 1054 <__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: e00003ea bsr 0x10bc // 10bc <__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: e00003c6 bsr 0x1084 // 1084 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e00003c0 bsr 0x1084 // 1084 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e00003d8 bsr 0x10bc // 10bc <__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: e00003d0 bsr 0x10bc // 10bc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000396 bsr 0x1054 // 1054 <__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: e000038e bsr 0x1054 // 1054 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e00003a0 bsr 0x1084 // 1084 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000039a bsr 0x1084 // 1084 <__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: e00003ae bsr 0x10bc // 10bc <__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: e00003a8 bsr 0x10bc // 10bc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000388 bsr 0x1084 // 1084 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e00003a0 bsr 0x10bc // 10bc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000368 bsr 0x1054 // 1054 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000398 bsr 0x10bc // 10bc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000378 bsr 0x1084 // 1084 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000390 bsr 0x10bc // 10bc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e0000358 bsr 0x1054 // 1054 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000388 bsr 0x10bc // 10bc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000366 bsr 0x1084 // 1084 <__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: e000037a bsr 0x10bc // 10bc <__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: e0000355 bsr 0x1084 // 1084 <__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: e0000485 bsr 0x12f0 // 12f0 <__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: e0000363 bsr 0x10bc // 10bc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000032b bsr 0x1054 // 1054 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000033d bsr 0x1084 // 1084 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e0000339 bsr 0x1084 // 1084 <__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: e0000333 bsr 0x1084 // 1084 <__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: e0000331 bsr 0x10bc // 10bc <__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: e000030b bsr 0x1084 // 1084 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000521 bsr 0x14bc // 14bc <__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: 00008660 .long 0x00008660 + 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: e000028f bsr 0x10bc // 10bc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e0000255 bsr 0x1054 // 1054 <__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: e0000258 bsr 0x1084 // 1084 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000038a bsr 0x12f0 // 12f0 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000397 bsr 0x1480 // 1480 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e0000405 bsr 0x1568 // 1568 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000018c bsr 0x1084 // 1084 <__subdf3> + d70: e00003fc bsr 0x1568 // 1568 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <_fpadd_parts>: + d80: 14c4 push r4-r7 + d82: 142a subi r14, r14, 40 + d84: 9060 ld.w r3, (r0, 0x0) + d86: 3b01 cmphsi r3, 2 + d88: 6dcb mov r7, r2 + d8a: 0c67 bf 0xe58 // e58 <_fpadd_parts+0xd8> + d8c: 9140 ld.w r2, (r1, 0x0) + d8e: 3a01 cmphsi r2, 2 + d90: 0c66 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d92: 3b44 cmpnei r3, 4 + d94: 0cde bf 0xf50 // f50 <_fpadd_parts+0x1d0> + d96: 3a44 cmpnei r2, 4 + d98: 0c62 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d9a: 3a42 cmpnei r2, 2 + d9c: 0cb7 bf 0xf0a // f0a <_fpadd_parts+0x18a> + d9e: 3b42 cmpnei r3, 2 + da0: 0c5e bf 0xe5c // e5c <_fpadd_parts+0xdc> + da2: 9043 ld.w r2, (r0, 0xc) + da4: 9064 ld.w r3, (r0, 0x10) + da6: 9082 ld.w r4, (r0, 0x8) + da8: 91a2 ld.w r5, (r1, 0x8) + daa: b842 st.w r2, (r14, 0x8) + dac: b863 st.w r3, (r14, 0xc) + dae: 9143 ld.w r2, (r1, 0xc) + db0: 9164 ld.w r3, (r1, 0x10) + db2: b840 st.w r2, (r14, 0x0) + db4: b861 st.w r3, (r14, 0x4) + db6: 5c75 subu r3, r4, r5 + db8: 3bdf btsti r3, 31 + dba: 6c8f mov r2, r3 + dbc: 08d2 bt 0xf60 // f60 <_fpadd_parts+0x1e0> + dbe: 363f movi r6, 63 + dc0: 6499 cmplt r6, r2 + dc2: 0c50 bf 0xe62 // e62 <_fpadd_parts+0xe2> + dc4: 6515 cmplt r5, r4 + dc6: 0cbf bf 0xf44 // f44 <_fpadd_parts+0x1c4> + dc8: 3200 movi r2, 0 + dca: 3300 movi r3, 0 + dcc: b840 st.w r2, (r14, 0x0) + dce: b861 st.w r3, (r14, 0x4) + dd0: 9061 ld.w r3, (r0, 0x4) + dd2: 9141 ld.w r2, (r1, 0x4) + dd4: 648e cmpne r3, r2 + dd6: 0c78 bf 0xec6 // ec6 <_fpadd_parts+0x146> + dd8: 3b40 cmpnei r3, 0 + dda: 0cad bf 0xf34 // f34 <_fpadd_parts+0x1b4> + ddc: 9800 ld.w r0, (r14, 0x0) + dde: 9821 ld.w r1, (r14, 0x4) + de0: 9842 ld.w r2, (r14, 0x8) + de2: 9863 ld.w r3, (r14, 0xc) + de4: 6400 cmphs r0, r0 + de6: 600b subc r0, r2 + de8: 604f subc r1, r3 + dea: 39df btsti r1, 31 + dec: 08bd bt 0xf66 // f66 <_fpadd_parts+0x1e6> + dee: 3300 movi r3, 0 + df0: b761 st.w r3, (r7, 0x4) + df2: b782 st.w r4, (r7, 0x8) + df4: 6c83 mov r2, r0 + df6: 6cc7 mov r3, r1 + df8: b703 st.w r0, (r7, 0xc) + dfa: b724 st.w r1, (r7, 0x10) + dfc: 3000 movi r0, 0 + dfe: 3100 movi r1, 0 + e00: 2800 subi r0, 1 + e02: 2900 subi r1, 1 + e04: 6401 cmplt r0, r0 + e06: 6009 addc r0, r2 + e08: 604d addc r1, r3 + e0a: 038f lrw r4, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e0c: 6450 cmphs r4, r1 + e0e: 0c67 bf 0xedc // edc <_fpadd_parts+0x15c> + e10: 6506 cmpne r1, r4 + e12: 0cfd bf 0x100c // 100c <_fpadd_parts+0x28c> + e14: 3000 movi r0, 0 + e16: 9722 ld.w r1, (r7, 0x8) + e18: 2801 subi r0, 2 + e1a: 2900 subi r1, 1 + e1c: 03d4 lrw r6, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e1e: b802 st.w r0, (r14, 0x8) + e20: b8e0 st.w r7, (r14, 0x0) + e22: 0403 br 0xe28 // e28 <_fpadd_parts+0xa8> + e24: 6596 cmpne r5, r6 + e26: 0c83 bf 0xf2c // f2c <_fpadd_parts+0x1ac> + e28: 4301 lsli r0, r3, 1 + e2a: 4a9f lsri r4, r2, 31 + e2c: 6d00 or r4, r0 + e2e: 42a1 lsli r5, r2, 1 + e30: 6c97 mov r2, r5 + e32: 6cd3 mov r3, r4 + e34: 3500 movi r5, 0 + e36: 3400 movi r4, 0 + e38: 2c00 subi r4, 1 + e3a: 2d00 subi r5, 1 + e3c: 6511 cmplt r4, r4 + e3e: 6109 addc r4, r2 + e40: 614d addc r5, r3 + e42: 6558 cmphs r6, r5 + e44: 6c07 mov r0, r1 + e46: 2900 subi r1, 1 + e48: 0bee bt 0xe24 // e24 <_fpadd_parts+0xa4> + e4a: 98e0 ld.w r7, (r14, 0x0) + e4c: b743 st.w r2, (r7, 0xc) + e4e: b764 st.w r3, (r7, 0x10) + e50: 3303 movi r3, 3 + e52: b702 st.w r0, (r7, 0x8) + e54: b760 st.w r3, (r7, 0x0) + e56: 6c1f mov r0, r7 + e58: 140a addi r14, r14, 40 + e5a: 1484 pop r4-r7 + e5c: 6c07 mov r0, r1 + e5e: 140a addi r14, r14, 40 + e60: 1484 pop r4-r7 + e62: 3b20 cmplti r3, 1 + e64: 088c bt 0xf7c // f7c <_fpadd_parts+0x1fc> + e66: 3300 movi r3, 0 + e68: 2b1f subi r3, 32 + e6a: 60c8 addu r3, r2 + e6c: 3bdf btsti r3, 31 + e6e: b866 st.w r3, (r14, 0x18) + e70: 08bb bt 0xfe6 // fe6 <_fpadd_parts+0x266> + e72: 98a1 ld.w r5, (r14, 0x4) + e74: 714d lsr r5, r3 + e76: b8a4 st.w r5, (r14, 0x10) + e78: 3500 movi r5, 0 + e7a: b8a5 st.w r5, (r14, 0x14) + e7c: 9866 ld.w r3, (r14, 0x18) + e7e: 3bdf btsti r3, 31 + e80: 3500 movi r5, 0 + e82: 3600 movi r6, 0 + e84: 08ad bt 0xfde // fde <_fpadd_parts+0x25e> + e86: 3201 movi r2, 1 + e88: 708c lsl r2, r3 + e8a: 6d8b mov r6, r2 + e8c: 3200 movi r2, 0 + e8e: 3300 movi r3, 0 + e90: 2a00 subi r2, 1 + e92: 2b00 subi r3, 1 + e94: 6489 cmplt r2, r2 + e96: 6095 addc r2, r5 + e98: 60d9 addc r3, r6 + e9a: 98a0 ld.w r5, (r14, 0x0) + e9c: 98c1 ld.w r6, (r14, 0x4) + e9e: 6948 and r5, r2 + ea0: 698c and r6, r3 + ea2: 6c97 mov r2, r5 + ea4: 6cdb mov r3, r6 + ea6: 6c8c or r2, r3 + ea8: 3a40 cmpnei r2, 0 + eaa: 3500 movi r5, 0 + eac: 6155 addc r5, r5 + eae: 6c97 mov r2, r5 + eb0: 3300 movi r3, 0 + eb2: 98a4 ld.w r5, (r14, 0x10) + eb4: 98c5 ld.w r6, (r14, 0x14) + eb6: 6d48 or r5, r2 + eb8: 6d8c or r6, r3 + eba: 9061 ld.w r3, (r0, 0x4) + ebc: 9141 ld.w r2, (r1, 0x4) + ebe: 648e cmpne r3, r2 + ec0: b8a0 st.w r5, (r14, 0x0) + ec2: b8c1 st.w r6, (r14, 0x4) + ec4: 0b8a bt 0xdd8 // dd8 <_fpadd_parts+0x58> + ec6: b761 st.w r3, (r7, 0x4) + ec8: 9800 ld.w r0, (r14, 0x0) + eca: 9821 ld.w r1, (r14, 0x4) + ecc: 9842 ld.w r2, (r14, 0x8) + ece: 9863 ld.w r3, (r14, 0xc) + ed0: 6489 cmplt r2, r2 + ed2: 6081 addc r2, r0 + ed4: 60c5 addc r3, r1 + ed6: b782 st.w r4, (r7, 0x8) + ed8: b743 st.w r2, (r7, 0xc) + eda: b764 st.w r3, (r7, 0x10) + edc: 3103 movi r1, 3 + ede: b720 st.w r1, (r7, 0x0) + ee0: 123b lrw r1, 0x1fffffff // 104c <_fpadd_parts+0x2cc> + ee2: 64c4 cmphs r1, r3 + ee4: 0810 bt 0xf04 // f04 <_fpadd_parts+0x184> + ee6: 439f lsli r4, r3, 31 + ee8: 4a01 lsri r0, r2, 1 + eea: 6c10 or r0, r4 + eec: 3500 movi r5, 0 + eee: 3401 movi r4, 1 + ef0: 4b21 lsri r1, r3, 1 + ef2: 6890 and r2, r4 + ef4: 68d4 and r3, r5 + ef6: 6c80 or r2, r0 + ef8: 6cc4 or r3, r1 + efa: b743 st.w r2, (r7, 0xc) + efc: b764 st.w r3, (r7, 0x10) + efe: 9762 ld.w r3, (r7, 0x8) + f00: 2300 addi r3, 1 + f02: b762 st.w r3, (r7, 0x8) + f04: 6c1f mov r0, r7 + f06: 140a addi r14, r14, 40 + f08: 1484 pop r4-r7 + f0a: 3b42 cmpnei r3, 2 + f0c: 0ba6 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f0e: b760 st.w r3, (r7, 0x0) + f10: 9061 ld.w r3, (r0, 0x4) + f12: b761 st.w r3, (r7, 0x4) + f14: 9062 ld.w r3, (r0, 0x8) + f16: b762 st.w r3, (r7, 0x8) + f18: 9063 ld.w r3, (r0, 0xc) + f1a: b763 st.w r3, (r7, 0xc) + f1c: 9064 ld.w r3, (r0, 0x10) + f1e: 9141 ld.w r2, (r1, 0x4) + f20: b764 st.w r3, (r7, 0x10) + f22: 9061 ld.w r3, (r0, 0x4) + f24: 68c8 and r3, r2 + f26: b761 st.w r3, (r7, 0x4) + f28: 6c1f mov r0, r7 + f2a: 0797 br 0xe58 // e58 <_fpadd_parts+0xd8> + f2c: 98e2 ld.w r7, (r14, 0x8) + f2e: 651c cmphs r7, r4 + f30: 0b7c bt 0xe28 // e28 <_fpadd_parts+0xa8> + f32: 078c br 0xe4a // e4a <_fpadd_parts+0xca> + f34: 9802 ld.w r0, (r14, 0x8) + f36: 9823 ld.w r1, (r14, 0xc) + f38: 9840 ld.w r2, (r14, 0x0) + f3a: 9861 ld.w r3, (r14, 0x4) + f3c: 6400 cmphs r0, r0 + f3e: 600b subc r0, r2 + f40: 604f subc r1, r3 + f42: 0754 br 0xdea // dea <_fpadd_parts+0x6a> + f44: 3200 movi r2, 0 + f46: 3300 movi r3, 0 + f48: 6d17 mov r4, r5 + f4a: b842 st.w r2, (r14, 0x8) + f4c: b863 st.w r3, (r14, 0xc) + f4e: 0741 br 0xdd0 // dd0 <_fpadd_parts+0x50> + f50: 3a44 cmpnei r2, 4 + f52: 0b83 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f54: 9041 ld.w r2, (r0, 0x4) + f56: 9161 ld.w r3, (r1, 0x4) + f58: 64ca cmpne r2, r3 + f5a: 0f7f bf 0xe58 // e58 <_fpadd_parts+0xd8> + f5c: 111d lrw r0, 0x8690 // 1050 <_fpadd_parts+0x2d0> + f5e: 077d br 0xe58 // e58 <_fpadd_parts+0xd8> + f60: 3200 movi r2, 0 + f62: 608e subu r2, r3 + f64: 072d br 0xdbe // dbe <_fpadd_parts+0x3e> + f66: 3301 movi r3, 1 + f68: b761 st.w r3, (r7, 0x4) + f6a: 3200 movi r2, 0 + f6c: 3300 movi r3, 0 + f6e: 6488 cmphs r2, r2 + f70: 6083 subc r2, r0 + f72: 60c7 subc r3, r1 + f74: b782 st.w r4, (r7, 0x8) + f76: b743 st.w r2, (r7, 0xc) + f78: b764 st.w r3, (r7, 0x10) + f7a: 0741 br 0xdfc // dfc <_fpadd_parts+0x7c> + f7c: 3b40 cmpnei r3, 0 + f7e: 0f29 bf 0xdd0 // dd0 <_fpadd_parts+0x50> + f80: 3300 movi r3, 0 + f82: 2b1f subi r3, 32 + f84: 60c8 addu r3, r2 + f86: 3bdf btsti r3, 31 + f88: 6108 addu r4, r2 + f8a: b866 st.w r3, (r14, 0x18) + f8c: 0849 bt 0x101e // 101e <_fpadd_parts+0x29e> + f8e: 9863 ld.w r3, (r14, 0xc) + f90: 98a6 ld.w r5, (r14, 0x18) + f92: 70d5 lsr r3, r5 + f94: b864 st.w r3, (r14, 0x10) + f96: 3300 movi r3, 0 + f98: b865 st.w r3, (r14, 0x14) + f9a: 9866 ld.w r3, (r14, 0x18) + f9c: 3bdf btsti r3, 31 + f9e: 3500 movi r5, 0 + fa0: 3600 movi r6, 0 + fa2: 083a bt 0x1016 // 1016 <_fpadd_parts+0x296> + fa4: 3201 movi r2, 1 + fa6: 708c lsl r2, r3 + fa8: 6d8b mov r6, r2 + faa: 3200 movi r2, 0 + fac: 3300 movi r3, 0 + fae: 2a00 subi r2, 1 + fb0: 2b00 subi r3, 1 + fb2: 6489 cmplt r2, r2 + fb4: 6095 addc r2, r5 + fb6: 60d9 addc r3, r6 + fb8: 98a2 ld.w r5, (r14, 0x8) + fba: 98c3 ld.w r6, (r14, 0xc) + fbc: 6948 and r5, r2 + fbe: 698c and r6, r3 + fc0: 6c97 mov r2, r5 + fc2: 6cdb mov r3, r6 + fc4: 6c8c or r2, r3 + fc6: 3a40 cmpnei r2, 0 + fc8: 3500 movi r5, 0 + fca: 6155 addc r5, r5 + fcc: 6c97 mov r2, r5 + fce: 3300 movi r3, 0 + fd0: 98a4 ld.w r5, (r14, 0x10) + fd2: 98c5 ld.w r6, (r14, 0x14) + fd4: 6d48 or r5, r2 + fd6: 6d8c or r6, r3 + fd8: b8a2 st.w r5, (r14, 0x8) + fda: b8c3 st.w r6, (r14, 0xc) + fdc: 06fa br 0xdd0 // dd0 <_fpadd_parts+0x50> + fde: 3301 movi r3, 1 + fe0: 70c8 lsl r3, r2 + fe2: 6d4f mov r5, r3 + fe4: 0754 br 0xe8c // e8c <_fpadd_parts+0x10c> + fe6: 9861 ld.w r3, (r14, 0x4) + fe8: 361f movi r6, 31 + fea: 43a1 lsli r5, r3, 1 + fec: 618a subu r6, r2 + fee: 7158 lsl r5, r6 + ff0: b8a9 st.w r5, (r14, 0x24) + ff2: 98a0 ld.w r5, (r14, 0x0) + ff4: 98c1 ld.w r6, (r14, 0x4) + ff6: b8a7 st.w r5, (r14, 0x1c) + ff8: b8c8 st.w r6, (r14, 0x20) + ffa: 9867 ld.w r3, (r14, 0x1c) + ffc: 70c9 lsr r3, r2 + ffe: 98a9 ld.w r5, (r14, 0x24) + 1000: 6cd4 or r3, r5 + 1002: b864 st.w r3, (r14, 0x10) + 1004: 9868 ld.w r3, (r14, 0x20) + 1006: 70c9 lsr r3, r2 + 1008: b865 st.w r3, (r14, 0x14) + 100a: 0739 br 0xe7c // e7c <_fpadd_parts+0xfc> + 100c: 3100 movi r1, 0 + 100e: 2901 subi r1, 2 + 1010: 6404 cmphs r1, r0 + 1012: 0b01 bt 0xe14 // e14 <_fpadd_parts+0x94> + 1014: 0764 br 0xedc // edc <_fpadd_parts+0x15c> + 1016: 3301 movi r3, 1 + 1018: 70c8 lsl r3, r2 + 101a: 6d4f mov r5, r3 + 101c: 07c7 br 0xfaa // faa <_fpadd_parts+0x22a> + 101e: 9863 ld.w r3, (r14, 0xc) + 1020: 43c1 lsli r6, r3, 1 + 1022: 351f movi r5, 31 + 1024: 5d69 subu r3, r5, r2 + 1026: 6d5b mov r5, r6 + 1028: 714c lsl r5, r3 + 102a: b8a9 st.w r5, (r14, 0x24) + 102c: 98a2 ld.w r5, (r14, 0x8) + 102e: 98c3 ld.w r6, (r14, 0xc) + 1030: b8a7 st.w r5, (r14, 0x1c) + 1032: b8c8 st.w r6, (r14, 0x20) + 1034: 9867 ld.w r3, (r14, 0x1c) + 1036: 70c9 lsr r3, r2 + 1038: 98a9 ld.w r5, (r14, 0x24) + 103a: 6cd4 or r3, r5 + 103c: b864 st.w r3, (r14, 0x10) + 103e: 9868 ld.w r3, (r14, 0x20) + 1040: 70c9 lsr r3, r2 + 1042: b865 st.w r3, (r14, 0x14) + 1044: 07ab br 0xf9a // f9a <_fpadd_parts+0x21a> + 1046: 0000 bkpt + 1048: 0fffffff .long 0x0fffffff + 104c: 1fffffff .long 0x1fffffff + 1050: 00008690 .long 0x00008690 + +00001054 <__adddf3>: + 1054: 14d0 push r15 + 1056: 1433 subi r14, r14, 76 + 1058: b800 st.w r0, (r14, 0x0) + 105a: b821 st.w r1, (r14, 0x4) + 105c: 6c3b mov r0, r14 + 105e: 1904 addi r1, r14, 16 + 1060: b863 st.w r3, (r14, 0xc) + 1062: b842 st.w r2, (r14, 0x8) + 1064: e00003f4 bsr 0x184c // 184c <__unpack_d> + 1068: 1909 addi r1, r14, 36 + 106a: 1802 addi r0, r14, 8 + 106c: e00003f0 bsr 0x184c // 184c <__unpack_d> + 1070: 1a0e addi r2, r14, 56 + 1072: 1909 addi r1, r14, 36 + 1074: 1804 addi r0, r14, 16 + 1076: e3fffe85 bsr 0xd80 // d80 <_fpadd_parts> + 107a: e000031b bsr 0x16b0 // 16b0 <__pack_d> + 107e: 1413 addi r14, r14, 76 + 1080: 1490 pop r15 + ... + +00001084 <__subdf3>: + 1084: 14d0 push r15 + 1086: 1433 subi r14, r14, 76 + 1088: b800 st.w r0, (r14, 0x0) + 108a: b821 st.w r1, (r14, 0x4) + 108c: 6c3b mov r0, r14 + 108e: 1904 addi r1, r14, 16 + 1090: b842 st.w r2, (r14, 0x8) + 1092: b863 st.w r3, (r14, 0xc) + 1094: e00003dc bsr 0x184c // 184c <__unpack_d> + 1098: 1909 addi r1, r14, 36 + 109a: 1802 addi r0, r14, 8 + 109c: e00003d8 bsr 0x184c // 184c <__unpack_d> + 10a0: 986a ld.w r3, (r14, 0x28) + 10a2: 3201 movi r2, 1 + 10a4: 6cc9 xor r3, r2 + 10a6: 1909 addi r1, r14, 36 + 10a8: 1a0e addi r2, r14, 56 + 10aa: 1804 addi r0, r14, 16 + 10ac: b86a st.w r3, (r14, 0x28) + 10ae: e3fffe69 bsr 0xd80 // d80 <_fpadd_parts> + 10b2: e00002ff bsr 0x16b0 // 16b0 <__pack_d> + 10b6: 1413 addi r14, r14, 76 + 10b8: 1490 pop r15 + ... + +000010bc <__muldf3>: + 10bc: 14d4 push r4-r7, r15 + 10be: 143b subi r14, r14, 108 + 10c0: b808 st.w r0, (r14, 0x20) + 10c2: b829 st.w r1, (r14, 0x24) + 10c4: 1808 addi r0, r14, 32 + 10c6: 190c addi r1, r14, 48 + 10c8: b86b st.w r3, (r14, 0x2c) + 10ca: b84a st.w r2, (r14, 0x28) + 10cc: e00003c0 bsr 0x184c // 184c <__unpack_d> + 10d0: 1911 addi r1, r14, 68 + 10d2: 180a addi r0, r14, 40 + 10d4: e00003bc bsr 0x184c // 184c <__unpack_d> + 10d8: 986c ld.w r3, (r14, 0x30) + 10da: 3b01 cmphsi r3, 2 + 10dc: 0cac bf 0x1234 // 1234 <__muldf3+0x178> + 10de: 9851 ld.w r2, (r14, 0x44) + 10e0: 3a01 cmphsi r2, 2 + 10e2: 0c9c bf 0x121a // 121a <__muldf3+0x15e> + 10e4: 3b44 cmpnei r3, 4 + 10e6: 0ca5 bf 0x1230 // 1230 <__muldf3+0x174> + 10e8: 3a44 cmpnei r2, 4 + 10ea: 0c96 bf 0x1216 // 1216 <__muldf3+0x15a> + 10ec: 3b42 cmpnei r3, 2 + 10ee: 0ca3 bf 0x1234 // 1234 <__muldf3+0x178> + 10f0: 3a42 cmpnei r2, 2 + 10f2: 0c94 bf 0x121a // 121a <__muldf3+0x15e> + 10f4: 98ef ld.w r7, (r14, 0x3c) + 10f6: 98b4 ld.w r5, (r14, 0x50) + 10f8: 9875 ld.w r3, (r14, 0x54) + 10fa: 6d8f mov r6, r3 + 10fc: 6c9f mov r2, r7 + 10fe: 3300 movi r3, 0 + 1100: 6c17 mov r0, r5 + 1102: 3100 movi r1, 0 + 1104: e0000294 bsr 0x162c // 162c <__muldi3> + 1108: b804 st.w r0, (r14, 0x10) + 110a: b825 st.w r1, (r14, 0x14) + 110c: 6c9f mov r2, r7 + 110e: 3300 movi r3, 0 + 1110: 6c1b mov r0, r6 + 1112: 3100 movi r1, 0 + 1114: 9890 ld.w r4, (r14, 0x40) + 1116: b8c2 st.w r6, (r14, 0x8) + 1118: e000028a bsr 0x162c // 162c <__muldi3> + 111c: 6d83 mov r6, r0 + 111e: 6dc7 mov r7, r1 + 1120: 9842 ld.w r2, (r14, 0x8) + 1122: 3300 movi r3, 0 + 1124: 6c13 mov r0, r4 + 1126: 3100 movi r1, 0 + 1128: e0000282 bsr 0x162c // 162c <__muldi3> + 112c: b806 st.w r0, (r14, 0x18) + 112e: b827 st.w r1, (r14, 0x1c) + 1130: 6c97 mov r2, r5 + 1132: 3300 movi r3, 0 + 1134: 6c13 mov r0, r4 + 1136: 3100 movi r1, 0 + 1138: e000027a bsr 0x162c // 162c <__muldi3> + 113c: 6401 cmplt r0, r0 + 113e: 6019 addc r0, r6 + 1140: 605d addc r1, r7 + 1142: 65c4 cmphs r1, r7 + 1144: 0c91 bf 0x1266 // 1266 <__muldf3+0x1aa> + 1146: 645e cmpne r7, r1 + 1148: 0c8d bf 0x1262 // 1262 <__muldf3+0x1a6> + 114a: 3300 movi r3, 0 + 114c: 3400 movi r4, 0 + 114e: b862 st.w r3, (r14, 0x8) + 1150: b883 st.w r4, (r14, 0xc) + 1152: 9884 ld.w r4, (r14, 0x10) + 1154: 98a5 ld.w r5, (r14, 0x14) + 1156: 3600 movi r6, 0 + 1158: 6dc3 mov r7, r0 + 115a: 6c93 mov r2, r4 + 115c: 6cd7 mov r3, r5 + 115e: 6489 cmplt r2, r2 + 1160: 6099 addc r2, r6 + 1162: 60dd addc r3, r7 + 1164: 6d8b mov r6, r2 + 1166: 6dcf mov r7, r3 + 1168: 6c93 mov r2, r4 + 116a: 6cd7 mov r3, r5 + 116c: 64dc cmphs r7, r3 + 116e: 0c70 bf 0x124e // 124e <__muldf3+0x192> + 1170: 65ce cmpne r3, r7 + 1172: 0c6c bf 0x124a // 124a <__muldf3+0x18e> + 1174: 6c87 mov r2, r1 + 1176: 3300 movi r3, 0 + 1178: 9806 ld.w r0, (r14, 0x18) + 117a: 9827 ld.w r1, (r14, 0x1c) + 117c: 6401 cmplt r0, r0 + 117e: 6009 addc r0, r2 + 1180: 604d addc r1, r3 + 1182: 6c83 mov r2, r0 + 1184: 6cc7 mov r3, r1 + 1186: 9802 ld.w r0, (r14, 0x8) + 1188: 9823 ld.w r1, (r14, 0xc) + 118a: 6401 cmplt r0, r0 + 118c: 6009 addc r0, r2 + 118e: 604d addc r1, r3 + 1190: 6c83 mov r2, r0 + 1192: 6cc7 mov r3, r1 + 1194: 988e ld.w r4, (r14, 0x38) + 1196: 9833 ld.w r1, (r14, 0x4c) + 1198: 6104 addu r4, r1 + 119a: 5c2e addi r1, r4, 4 + 119c: b838 st.w r1, (r14, 0x60) + 119e: 980d ld.w r0, (r14, 0x34) + 11a0: 9832 ld.w r1, (r14, 0x48) + 11a2: 6442 cmpne r0, r1 + 11a4: 12b0 lrw r5, 0x1fffffff // 12e4 <__muldf3+0x228> + 11a6: 3100 movi r1, 0 + 11a8: 6045 addc r1, r1 + 11aa: 64d4 cmphs r5, r3 + 11ac: b837 st.w r1, (r14, 0x5c) + 11ae: 0879 bt 0x12a0 // 12a0 <__muldf3+0x1e4> + 11b0: 2404 addi r4, 5 + 11b2: b8a4 st.w r5, (r14, 0x10) + 11b4: 3001 movi r0, 1 + 11b6: 3100 movi r1, 0 + 11b8: 6808 and r0, r2 + 11ba: 684c and r1, r3 + 11bc: 6c04 or r0, r1 + 11be: 3840 cmpnei r0, 0 + 11c0: b882 st.w r4, (r14, 0x8) + 11c2: 0c0e bf 0x11de // 11de <__muldf3+0x122> + 11c4: 473f lsli r1, r7, 31 + 11c6: 4e01 lsri r0, r6, 1 + 11c8: 6c04 or r0, r1 + 11ca: 4f21 lsri r1, r7, 1 + 11cc: b800 st.w r0, (r14, 0x0) + 11ce: b821 st.w r1, (r14, 0x4) + 11d0: 3180 movi r1, 128 + 11d2: 98c0 ld.w r6, (r14, 0x0) + 11d4: 98e1 ld.w r7, (r14, 0x4) + 11d6: 3000 movi r0, 0 + 11d8: 4138 lsli r1, r1, 24 + 11da: 6d80 or r6, r0 + 11dc: 6dc4 or r7, r1 + 11de: 4b21 lsri r1, r3, 1 + 11e0: 43bf lsli r5, r3, 31 + 11e2: 4a01 lsri r0, r2, 1 + 11e4: 6cc7 mov r3, r1 + 11e6: 9824 ld.w r1, (r14, 0x10) + 11e8: 6d40 or r5, r0 + 11ea: 64c4 cmphs r1, r3 + 11ec: 6c97 mov r2, r5 + 11ee: 2400 addi r4, 1 + 11f0: 0fe2 bf 0x11b4 // 11b4 <__muldf3+0xf8> + 11f2: 9822 ld.w r1, (r14, 0x8) + 11f4: b838 st.w r1, (r14, 0x60) + 11f6: 30ff movi r0, 255 + 11f8: 3100 movi r1, 0 + 11fa: 6808 and r0, r2 + 11fc: 684c and r1, r3 + 11fe: 3480 movi r4, 128 + 1200: 6502 cmpne r0, r4 + 1202: 0c37 bf 0x1270 // 1270 <__muldf3+0x1b4> + 1204: b859 st.w r2, (r14, 0x64) + 1206: b87a st.w r3, (r14, 0x68) + 1208: 3303 movi r3, 3 + 120a: b876 st.w r3, (r14, 0x58) + 120c: 1816 addi r0, r14, 88 + 120e: e0000251 bsr 0x16b0 // 16b0 <__pack_d> + 1212: 141b addi r14, r14, 108 + 1214: 1494 pop r4-r7, r15 + 1216: 3b42 cmpnei r3, 2 + 1218: 0c42 bf 0x129c // 129c <__muldf3+0x1e0> + 121a: 9872 ld.w r3, (r14, 0x48) + 121c: 984d ld.w r2, (r14, 0x34) + 121e: 64ca cmpne r2, r3 + 1220: 3300 movi r3, 0 + 1222: 60cd addc r3, r3 + 1224: 1811 addi r0, r14, 68 + 1226: b872 st.w r3, (r14, 0x48) + 1228: e0000244 bsr 0x16b0 // 16b0 <__pack_d> + 122c: 141b addi r14, r14, 108 + 122e: 1494 pop r4-r7, r15 + 1230: 3a42 cmpnei r2, 2 + 1232: 0c35 bf 0x129c // 129c <__muldf3+0x1e0> + 1234: 984d ld.w r2, (r14, 0x34) + 1236: 9872 ld.w r3, (r14, 0x48) + 1238: 64ca cmpne r2, r3 + 123a: 3300 movi r3, 0 + 123c: 60cd addc r3, r3 + 123e: 180c addi r0, r14, 48 + 1240: b86d st.w r3, (r14, 0x34) + 1242: e0000237 bsr 0x16b0 // 16b0 <__pack_d> + 1246: 141b addi r14, r14, 108 + 1248: 1494 pop r4-r7, r15 + 124a: 6498 cmphs r6, r2 + 124c: 0b94 bt 0x1174 // 1174 <__muldf3+0xb8> + 124e: 9882 ld.w r4, (r14, 0x8) + 1250: 98a3 ld.w r5, (r14, 0xc) + 1252: 3201 movi r2, 1 + 1254: 3300 movi r3, 0 + 1256: 6511 cmplt r4, r4 + 1258: 6109 addc r4, r2 + 125a: 614d addc r5, r3 + 125c: b882 st.w r4, (r14, 0x8) + 125e: b8a3 st.w r5, (r14, 0xc) + 1260: 078a br 0x1174 // 1174 <__muldf3+0xb8> + 1262: 6580 cmphs r0, r6 + 1264: 0b73 bt 0x114a // 114a <__muldf3+0x8e> + 1266: 3300 movi r3, 0 + 1268: 3401 movi r4, 1 + 126a: b862 st.w r3, (r14, 0x8) + 126c: b883 st.w r4, (r14, 0xc) + 126e: 0772 br 0x1152 // 1152 <__muldf3+0x96> + 1270: 3940 cmpnei r1, 0 + 1272: 0bc9 bt 0x1204 // 1204 <__muldf3+0x148> + 1274: 3180 movi r1, 128 + 1276: 4121 lsli r1, r1, 1 + 1278: 6848 and r1, r2 + 127a: 3940 cmpnei r1, 0 + 127c: 0bc4 bt 0x1204 // 1204 <__muldf3+0x148> + 127e: 6c5b mov r1, r6 + 1280: 6c5c or r1, r7 + 1282: 3940 cmpnei r1, 0 + 1284: 0fc0 bf 0x1204 // 1204 <__muldf3+0x148> + 1286: 3080 movi r0, 128 + 1288: 3100 movi r1, 0 + 128a: 6401 cmplt r0, r0 + 128c: 6009 addc r0, r2 + 128e: 604d addc r1, r3 + 1290: 34ff movi r4, 255 + 1292: 6d43 mov r5, r0 + 1294: 6951 andn r5, r4 + 1296: 6c97 mov r2, r5 + 1298: 6cc7 mov r3, r1 + 129a: 07b5 br 0x1204 // 1204 <__muldf3+0x148> + 129c: 1013 lrw r0, 0x8690 // 12e8 <__muldf3+0x22c> + 129e: 07b8 br 0x120e // 120e <__muldf3+0x152> + 12a0: 1033 lrw r1, 0xfffffff // 12ec <__muldf3+0x230> + 12a2: 64c4 cmphs r1, r3 + 12a4: 0fa9 bf 0x11f6 // 11f6 <__muldf3+0x13a> + 12a6: 2402 addi r4, 3 + 12a8: b822 st.w r1, (r14, 0x8) + 12aa: 4a1f lsri r0, r2, 31 + 12ac: 4321 lsli r1, r3, 1 + 12ae: 42a1 lsli r5, r2, 1 + 12b0: 6c04 or r0, r1 + 12b2: 3fdf btsti r7, 31 + 12b4: b880 st.w r4, (r14, 0x0) + 12b6: 6c97 mov r2, r5 + 12b8: 6cc3 mov r3, r0 + 12ba: 0c07 bf 0x12c8 // 12c8 <__muldf3+0x20c> + 12bc: 3001 movi r0, 1 + 12be: 3100 movi r1, 0 + 12c0: 6c08 or r0, r2 + 12c2: 6c4c or r1, r3 + 12c4: 6c83 mov r2, r0 + 12c6: 6cc7 mov r3, r1 + 12c8: 4721 lsli r1, r7, 1 + 12ca: 4e1f lsri r0, r6, 31 + 12cc: 6c04 or r0, r1 + 12ce: 9822 ld.w r1, (r14, 0x8) + 12d0: 46a1 lsli r5, r6, 1 + 12d2: 64c4 cmphs r1, r3 + 12d4: 6d97 mov r6, r5 + 12d6: 6dc3 mov r7, r0 + 12d8: 2c00 subi r4, 1 + 12da: 0be8 bt 0x12aa // 12aa <__muldf3+0x1ee> + 12dc: 9820 ld.w r1, (r14, 0x0) + 12de: b838 st.w r1, (r14, 0x60) + 12e0: 078b br 0x11f6 // 11f6 <__muldf3+0x13a> + 12e2: 0000 bkpt + 12e4: 1fffffff .long 0x1fffffff + 12e8: 00008690 .long 0x00008690 + 12ec: 0fffffff .long 0x0fffffff + +000012f0 <__divdf3>: + 12f0: 14d4 push r4-r7, r15 + 12f2: 1432 subi r14, r14, 72 + 12f4: b804 st.w r0, (r14, 0x10) + 12f6: b825 st.w r1, (r14, 0x14) + 12f8: 1804 addi r0, r14, 16 + 12fa: 1908 addi r1, r14, 32 + 12fc: b867 st.w r3, (r14, 0x1c) + 12fe: b846 st.w r2, (r14, 0x18) + 1300: e00002a6 bsr 0x184c // 184c <__unpack_d> + 1304: 190d addi r1, r14, 52 + 1306: 1806 addi r0, r14, 24 + 1308: e00002a2 bsr 0x184c // 184c <__unpack_d> + 130c: 9868 ld.w r3, (r14, 0x20) + 130e: 3b01 cmphsi r3, 2 + 1310: 0c66 bf 0x13dc // 13dc <__divdf3+0xec> + 1312: 982d ld.w r1, (r14, 0x34) + 1314: 3901 cmphsi r1, 2 + 1316: 0c92 bf 0x143a // 143a <__divdf3+0x14a> + 1318: 9849 ld.w r2, (r14, 0x24) + 131a: 980e ld.w r0, (r14, 0x38) + 131c: 6c81 xor r2, r0 + 131e: 3b44 cmpnei r3, 4 + 1320: b849 st.w r2, (r14, 0x24) + 1322: 0c62 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1324: 3b42 cmpnei r3, 2 + 1326: 0c60 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1328: 3944 cmpnei r1, 4 + 132a: 0c62 bf 0x13ee // 13ee <__divdf3+0xfe> + 132c: 3942 cmpnei r1, 2 + 132e: 0c82 bf 0x1432 // 1432 <__divdf3+0x142> + 1330: 982a ld.w r1, (r14, 0x28) + 1332: 986f ld.w r3, (r14, 0x3c) + 1334: 604e subu r1, r3 + 1336: 9890 ld.w r4, (r14, 0x40) + 1338: 98b1 ld.w r5, (r14, 0x44) + 133a: 984b ld.w r2, (r14, 0x2c) + 133c: 986c ld.w r3, (r14, 0x30) + 133e: 654c cmphs r3, r5 + 1340: b82a st.w r1, (r14, 0x28) + 1342: 6d93 mov r6, r4 + 1344: 6dd7 mov r7, r5 + 1346: 0c05 bf 0x1350 // 1350 <__divdf3+0x60> + 1348: 64d6 cmpne r5, r3 + 134a: 080b bt 0x1360 // 1360 <__divdf3+0x70> + 134c: 6508 cmphs r2, r4 + 134e: 0809 bt 0x1360 // 1360 <__divdf3+0x70> + 1350: 4a9f lsri r4, r2, 31 + 1352: 4301 lsli r0, r3, 1 + 1354: 42a1 lsli r5, r2, 1 + 1356: 6d00 or r4, r0 + 1358: 2900 subi r1, 1 + 135a: 6c97 mov r2, r5 + 135c: 6cd3 mov r3, r4 + 135e: b82a st.w r1, (r14, 0x28) + 1360: 3000 movi r0, 0 + 1362: 3100 movi r1, 0 + 1364: b802 st.w r0, (r14, 0x8) + 1366: b823 st.w r1, (r14, 0xc) + 1368: 3180 movi r1, 128 + 136a: 343d movi r4, 61 + 136c: 3000 movi r0, 0 + 136e: 4135 lsli r1, r1, 21 + 1370: b8c0 st.w r6, (r14, 0x0) + 1372: b8e1 st.w r7, (r14, 0x4) + 1374: 98a0 ld.w r5, (r14, 0x0) + 1376: 98c1 ld.w r6, (r14, 0x4) + 1378: 658c cmphs r3, r6 + 137a: 0c10 bf 0x139a // 139a <__divdf3+0xaa> + 137c: 64da cmpne r6, r3 + 137e: 0803 bt 0x1384 // 1384 <__divdf3+0x94> + 1380: 6548 cmphs r2, r5 + 1382: 0c0c bf 0x139a // 139a <__divdf3+0xaa> + 1384: 98a2 ld.w r5, (r14, 0x8) + 1386: 98c3 ld.w r6, (r14, 0xc) + 1388: 6d40 or r5, r0 + 138a: 6d84 or r6, r1 + 138c: b8a2 st.w r5, (r14, 0x8) + 138e: b8c3 st.w r6, (r14, 0xc) + 1390: 98a0 ld.w r5, (r14, 0x0) + 1392: 98c1 ld.w r6, (r14, 0x4) + 1394: 6488 cmphs r2, r2 + 1396: 6097 subc r2, r5 + 1398: 60db subc r3, r6 + 139a: 41bf lsli r5, r1, 31 + 139c: 48e1 lsri r7, r0, 1 + 139e: 6d97 mov r6, r5 + 13a0: 49a1 lsri r5, r1, 1 + 13a2: 6d9c or r6, r7 + 13a4: 6c57 mov r1, r5 + 13a6: 4abf lsri r5, r2, 31 + 13a8: 6c1b mov r0, r6 + 13aa: 2c00 subi r4, 1 + 13ac: 6d97 mov r6, r5 + 13ae: 43a1 lsli r5, r3, 1 + 13b0: 6d94 or r6, r5 + 13b2: 4261 lsli r3, r2, 1 + 13b4: 3c40 cmpnei r4, 0 + 13b6: 6dcf mov r7, r3 + 13b8: 6c8f mov r2, r3 + 13ba: 6cdb mov r3, r6 + 13bc: 0bdc bt 0x1374 // 1374 <__divdf3+0x84> + 13be: 30ff movi r0, 255 + 13c0: 3100 movi r1, 0 + 13c2: 9882 ld.w r4, (r14, 0x8) + 13c4: 98a3 ld.w r5, (r14, 0xc) + 13c6: 6900 and r4, r0 + 13c8: 6944 and r5, r1 + 13ca: 6c13 mov r0, r4 + 13cc: 6c57 mov r1, r5 + 13ce: 3480 movi r4, 128 + 13d0: 6502 cmpne r0, r4 + 13d2: 0c15 bf 0x13fc // 13fc <__divdf3+0x10c> + 13d4: 9862 ld.w r3, (r14, 0x8) + 13d6: 9883 ld.w r4, (r14, 0xc) + 13d8: b86b st.w r3, (r14, 0x2c) + 13da: b88c st.w r4, (r14, 0x30) + 13dc: 1808 addi r0, r14, 32 + 13de: e0000169 bsr 0x16b0 // 16b0 <__pack_d> + 13e2: 1412 addi r14, r14, 72 + 13e4: 1494 pop r4-r7, r15 + 13e6: 644e cmpne r3, r1 + 13e8: 0bfa bt 0x13dc // 13dc <__divdf3+0xec> + 13ea: 1016 lrw r0, 0x8690 // 1440 <__divdf3+0x150> + 13ec: 07f9 br 0x13de // 13de <__divdf3+0xee> + 13ee: 3300 movi r3, 0 + 13f0: 3400 movi r4, 0 + 13f2: b86b st.w r3, (r14, 0x2c) + 13f4: b88c st.w r4, (r14, 0x30) + 13f6: b86a st.w r3, (r14, 0x28) + 13f8: 1808 addi r0, r14, 32 + 13fa: 07f2 br 0x13de // 13de <__divdf3+0xee> + 13fc: 3940 cmpnei r1, 0 + 13fe: 0beb bt 0x13d4 // 13d4 <__divdf3+0xe4> + 1400: 3180 movi r1, 128 + 1402: 4121 lsli r1, r1, 1 + 1404: 9882 ld.w r4, (r14, 0x8) + 1406: 98a3 ld.w r5, (r14, 0xc) + 1408: 6850 and r1, r4 + 140a: 3940 cmpnei r1, 0 + 140c: 0be4 bt 0x13d4 // 13d4 <__divdf3+0xe4> + 140e: 6c98 or r2, r6 + 1410: 3a40 cmpnei r2, 0 + 1412: 0fe1 bf 0x13d4 // 13d4 <__divdf3+0xe4> + 1414: 3280 movi r2, 128 + 1416: 3300 movi r3, 0 + 1418: 6c13 mov r0, r4 + 141a: 6c57 mov r1, r5 + 141c: 6401 cmplt r0, r0 + 141e: 6009 addc r0, r2 + 1420: 604d addc r1, r3 + 1422: 6c83 mov r2, r0 + 1424: 6cc7 mov r3, r1 + 1426: 6c0b mov r0, r2 + 1428: 31ff movi r1, 255 + 142a: 6805 andn r0, r1 + 142c: b802 st.w r0, (r14, 0x8) + 142e: b863 st.w r3, (r14, 0xc) + 1430: 07d2 br 0x13d4 // 13d4 <__divdf3+0xe4> + 1432: 3304 movi r3, 4 + 1434: b868 st.w r3, (r14, 0x20) + 1436: 1808 addi r0, r14, 32 + 1438: 07d3 br 0x13de // 13de <__divdf3+0xee> + 143a: 180d addi r0, r14, 52 + 143c: 07d1 br 0x13de // 13de <__divdf3+0xee> + 143e: 0000 bkpt + 1440: 00008690 .long 0x00008690 + +00001444 <__gtdf2>: + 1444: 14d0 push r15 + 1446: 142e subi r14, r14, 56 + 1448: b800 st.w r0, (r14, 0x0) + 144a: b821 st.w r1, (r14, 0x4) + 144c: 6c3b mov r0, r14 + 144e: 1904 addi r1, r14, 16 + 1450: b863 st.w r3, (r14, 0xc) + 1452: b842 st.w r2, (r14, 0x8) + 1454: e00001fc bsr 0x184c // 184c <__unpack_d> + 1458: 1909 addi r1, r14, 36 + 145a: 1802 addi r0, r14, 8 + 145c: e00001f8 bsr 0x184c // 184c <__unpack_d> + 1460: 9864 ld.w r3, (r14, 0x10) + 1462: 3b01 cmphsi r3, 2 + 1464: 0c0a bf 0x1478 // 1478 <__gtdf2+0x34> + 1466: 9869 ld.w r3, (r14, 0x24) + 1468: 3b01 cmphsi r3, 2 + 146a: 0c07 bf 0x1478 // 1478 <__gtdf2+0x34> + 146c: 1909 addi r1, r14, 36 + 146e: 1804 addi r0, r14, 16 + 1470: e0000250 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 1474: 140e addi r14, r14, 56 + 1476: 1490 pop r15 + 1478: 3000 movi r0, 0 + 147a: 2800 subi r0, 1 + 147c: 140e addi r14, r14, 56 + 147e: 1490 pop r15 + +00001480 <__gedf2>: + 1480: 14d0 push r15 + 1482: 142e subi r14, r14, 56 + 1484: b800 st.w r0, (r14, 0x0) + 1486: b821 st.w r1, (r14, 0x4) + 1488: 6c3b mov r0, r14 + 148a: 1904 addi r1, r14, 16 + 148c: b863 st.w r3, (r14, 0xc) + 148e: b842 st.w r2, (r14, 0x8) + 1490: e00001de bsr 0x184c // 184c <__unpack_d> + 1494: 1909 addi r1, r14, 36 + 1496: 1802 addi r0, r14, 8 + 1498: e00001da bsr 0x184c // 184c <__unpack_d> + 149c: 9864 ld.w r3, (r14, 0x10) + 149e: 3b01 cmphsi r3, 2 + 14a0: 0c0a bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a2: 9869 ld.w r3, (r14, 0x24) + 14a4: 3b01 cmphsi r3, 2 + 14a6: 0c07 bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a8: 1909 addi r1, r14, 36 + 14aa: 1804 addi r0, r14, 16 + 14ac: e0000232 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14b0: 140e addi r14, r14, 56 + 14b2: 1490 pop r15 + 14b4: 3000 movi r0, 0 + 14b6: 2800 subi r0, 1 + 14b8: 140e addi r14, r14, 56 + 14ba: 1490 pop r15 + +000014bc <__ledf2>: + 14bc: 14d0 push r15 + 14be: 142e subi r14, r14, 56 + 14c0: b800 st.w r0, (r14, 0x0) + 14c2: b821 st.w r1, (r14, 0x4) + 14c4: 6c3b mov r0, r14 + 14c6: 1904 addi r1, r14, 16 + 14c8: b863 st.w r3, (r14, 0xc) + 14ca: b842 st.w r2, (r14, 0x8) + 14cc: e00001c0 bsr 0x184c // 184c <__unpack_d> + 14d0: 1909 addi r1, r14, 36 + 14d2: 1802 addi r0, r14, 8 + 14d4: e00001bc bsr 0x184c // 184c <__unpack_d> + 14d8: 9864 ld.w r3, (r14, 0x10) + 14da: 3b01 cmphsi r3, 2 + 14dc: 0c0a bf 0x14f0 // 14f0 <__ledf2+0x34> + 14de: 9869 ld.w r3, (r14, 0x24) + 14e0: 3b01 cmphsi r3, 2 + 14e2: 0c07 bf 0x14f0 // 14f0 <__ledf2+0x34> + 14e4: 1909 addi r1, r14, 36 + 14e6: 1804 addi r0, r14, 16 + 14e8: e0000214 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14ec: 140e addi r14, r14, 56 + 14ee: 1490 pop r15 + 14f0: 3001 movi r0, 1 + 14f2: 140e addi r14, r14, 56 + 14f4: 1490 pop r15 + ... + +000014f8 <__floatsidf>: + 14f8: 14d1 push r4, r15 + 14fa: 1425 subi r14, r14, 20 + 14fc: 3303 movi r3, 3 + 14fe: b860 st.w r3, (r14, 0x0) + 1500: 3840 cmpnei r0, 0 + 1502: 487f lsri r3, r0, 31 + 1504: b861 st.w r3, (r14, 0x4) + 1506: 0808 bt 0x1516 // 1516 <__floatsidf+0x1e> + 1508: 3302 movi r3, 2 + 150a: b860 st.w r3, (r14, 0x0) + 150c: 6c3b mov r0, r14 + 150e: e00000d1 bsr 0x16b0 // 16b0 <__pack_d> + 1512: 1405 addi r14, r14, 20 + 1514: 1491 pop r4, r15 + 1516: 38df btsti r0, 31 + 1518: 0812 bt 0x153c // 153c <__floatsidf+0x44> + 151a: 6d03 mov r4, r0 + 151c: 6c13 mov r0, r4 + 151e: e00000a9 bsr 0x1670 // 1670 <__clzsi2> + 1522: 321d movi r2, 29 + 1524: 6080 addu r2, r0 + 1526: 2802 subi r0, 3 + 1528: 38df btsti r0, 31 + 152a: 0810 bt 0x154a // 154a <__floatsidf+0x52> + 152c: 7100 lsl r4, r0 + 152e: 3300 movi r3, 0 + 1530: b884 st.w r4, (r14, 0x10) + 1532: b863 st.w r3, (r14, 0xc) + 1534: 333c movi r3, 60 + 1536: 60ca subu r3, r2 + 1538: b862 st.w r3, (r14, 0x8) + 153a: 07e9 br 0x150c // 150c <__floatsidf+0x14> + 153c: 3380 movi r3, 128 + 153e: 4378 lsli r3, r3, 24 + 1540: 64c2 cmpne r0, r3 + 1542: 0c0d bf 0x155c // 155c <__floatsidf+0x64> + 1544: 3400 movi r4, 0 + 1546: 6102 subu r4, r0 + 1548: 07ea br 0x151c // 151c <__floatsidf+0x24> + 154a: 311f movi r1, 31 + 154c: 4c61 lsri r3, r4, 1 + 154e: 604a subu r1, r2 + 1550: 6c13 mov r0, r4 + 1552: 70c5 lsr r3, r1 + 1554: 7008 lsl r0, r2 + 1556: b864 st.w r3, (r14, 0x10) + 1558: b803 st.w r0, (r14, 0xc) + 155a: 07ed br 0x1534 // 1534 <__floatsidf+0x3c> + 155c: 3000 movi r0, 0 + 155e: 1022 lrw r1, 0xc1e00000 // 1564 <__floatsidf+0x6c> + 1560: 07d9 br 0x1512 // 1512 <__floatsidf+0x1a> + 1562: 0000 bkpt + 1564: c1e00000 .long 0xc1e00000 + +00001568 <__fixdfsi>: + 1568: 14d0 push r15 + 156a: 1427 subi r14, r14, 28 + 156c: b800 st.w r0, (r14, 0x0) + 156e: b821 st.w r1, (r14, 0x4) + 1570: 6c3b mov r0, r14 + 1572: 1902 addi r1, r14, 8 + 1574: e000016c bsr 0x184c // 184c <__unpack_d> + 1578: 9862 ld.w r3, (r14, 0x8) + 157a: 3b02 cmphsi r3, 3 + 157c: 0c20 bf 0x15bc // 15bc <__fixdfsi+0x54> + 157e: 3b44 cmpnei r3, 4 + 1580: 0c16 bf 0x15ac // 15ac <__fixdfsi+0x44> + 1582: 9864 ld.w r3, (r14, 0x10) + 1584: 3bdf btsti r3, 31 + 1586: 081b bt 0x15bc // 15bc <__fixdfsi+0x54> + 1588: 3b3e cmplti r3, 31 + 158a: 0c11 bf 0x15ac // 15ac <__fixdfsi+0x44> + 158c: 323c movi r2, 60 + 158e: 5a6d subu r3, r2, r3 + 1590: 3200 movi r2, 0 + 1592: 2a1f subi r2, 32 + 1594: 608c addu r2, r3 + 1596: 3adf btsti r2, 31 + 1598: 0815 bt 0x15c2 // 15c2 <__fixdfsi+0x5a> + 159a: 9806 ld.w r0, (r14, 0x18) + 159c: 7009 lsr r0, r2 + 159e: 9863 ld.w r3, (r14, 0xc) + 15a0: 3b40 cmpnei r3, 0 + 15a2: 0c0b bf 0x15b8 // 15b8 <__fixdfsi+0x50> + 15a4: 3300 movi r3, 0 + 15a6: 5b01 subu r0, r3, r0 + 15a8: 1407 addi r14, r14, 28 + 15aa: 1490 pop r15 + 15ac: 9863 ld.w r3, (r14, 0xc) + 15ae: 3b40 cmpnei r3, 0 + 15b0: 3000 movi r0, 0 + 15b2: 6001 addc r0, r0 + 15b4: 1068 lrw r3, 0x7fffffff // 15d4 <__fixdfsi+0x6c> + 15b6: 600c addu r0, r3 + 15b8: 1407 addi r14, r14, 28 + 15ba: 1490 pop r15 + 15bc: 3000 movi r0, 0 + 15be: 1407 addi r14, r14, 28 + 15c0: 1490 pop r15 + 15c2: 9846 ld.w r2, (r14, 0x18) + 15c4: 311f movi r1, 31 + 15c6: 4241 lsli r2, r2, 1 + 15c8: 604e subu r1, r3 + 15ca: 9805 ld.w r0, (r14, 0x14) + 15cc: 7084 lsl r2, r1 + 15ce: 700d lsr r0, r3 + 15d0: 6c08 or r0, r2 + 15d2: 07e6 br 0x159e // 159e <__fixdfsi+0x36> + 15d4: 7fffffff .long 0x7fffffff + +000015d8 <__floatunsidf>: + 15d8: 14d2 push r4-r5, r15 + 15da: 1425 subi r14, r14, 20 + 15dc: 3840 cmpnei r0, 0 + 15de: 3500 movi r5, 0 + 15e0: 6d03 mov r4, r0 + 15e2: b8a1 st.w r5, (r14, 0x4) + 15e4: 0c15 bf 0x160e // 160e <__floatunsidf+0x36> + 15e6: 3303 movi r3, 3 + 15e8: b860 st.w r3, (r14, 0x0) + 15ea: e0000043 bsr 0x1670 // 1670 <__clzsi2> + 15ee: 321d movi r2, 29 + 15f0: 6080 addu r2, r0 + 15f2: 2802 subi r0, 3 + 15f4: 38df btsti r0, 31 + 15f6: 0813 bt 0x161c // 161c <__floatunsidf+0x44> + 15f8: 7100 lsl r4, r0 + 15fa: b884 st.w r4, (r14, 0x10) + 15fc: b8a3 st.w r5, (r14, 0xc) + 15fe: 333c movi r3, 60 + 1600: 60ca subu r3, r2 + 1602: 6c3b mov r0, r14 + 1604: b862 st.w r3, (r14, 0x8) + 1606: e0000055 bsr 0x16b0 // 16b0 <__pack_d> + 160a: 1405 addi r14, r14, 20 + 160c: 1492 pop r4-r5, r15 + 160e: 3302 movi r3, 2 + 1610: 6c3b mov r0, r14 + 1612: b860 st.w r3, (r14, 0x0) + 1614: e000004e bsr 0x16b0 // 16b0 <__pack_d> + 1618: 1405 addi r14, r14, 20 + 161a: 1492 pop r4-r5, r15 + 161c: 311f movi r1, 31 + 161e: 4c61 lsri r3, r4, 1 + 1620: 604a subu r1, r2 + 1622: 70c5 lsr r3, r1 + 1624: 7108 lsl r4, r2 + 1626: b864 st.w r3, (r14, 0x10) + 1628: b883 st.w r4, (r14, 0xc) + 162a: 07ea br 0x15fe // 15fe <__floatunsidf+0x26> + +0000162c <__muldi3>: + 162c: 14c4 push r4-r7 + 162e: 1421 subi r14, r14, 4 + 1630: 7501 zexth r4, r0 + 1632: 48b0 lsri r5, r0, 16 + 1634: 75c9 zexth r7, r2 + 1636: 6d83 mov r6, r0 + 1638: b820 st.w r1, (r14, 0x0) + 163a: 6c13 mov r0, r4 + 163c: 4a30 lsri r1, r2, 16 + 163e: 7c1c mult r0, r7 + 1640: 7d04 mult r4, r1 + 1642: 7dd4 mult r7, r5 + 1644: 611c addu r4, r7 + 1646: 7d44 mult r5, r1 + 1648: 4830 lsri r1, r0, 16 + 164a: 6104 addu r4, r1 + 164c: 65d0 cmphs r4, r7 + 164e: 0804 bt 0x1656 // 1656 <__muldi3+0x2a> + 1650: 3180 movi r1, 128 + 1652: 4129 lsli r1, r1, 9 + 1654: 6144 addu r5, r1 + 1656: 4c30 lsri r1, r4, 16 + 1658: 7cd8 mult r3, r6 + 165a: 6144 addu r5, r1 + 165c: 6c4f mov r1, r3 + 165e: 9860 ld.w r3, (r14, 0x0) + 1660: 7cc8 mult r3, r2 + 1662: 4490 lsli r4, r4, 16 + 1664: 604c addu r1, r3 + 1666: 7401 zexth r0, r0 + 1668: 6010 addu r0, r4 + 166a: 6054 addu r1, r5 + 166c: 1401 addi r14, r14, 4 + 166e: 1484 pop r4-r7 + +00001670 <__clzsi2>: + 1670: 106d lrw r3, 0xffff // 16a4 <__clzsi2+0x34> + 1672: 640c cmphs r3, r0 + 1674: 0c07 bf 0x1682 // 1682 <__clzsi2+0x12> + 1676: 33ff movi r3, 255 + 1678: 640c cmphs r3, r0 + 167a: 0c0f bf 0x1698 // 1698 <__clzsi2+0x28> + 167c: 3320 movi r3, 32 + 167e: 3200 movi r2, 0 + 1680: 0406 br 0x168c // 168c <__clzsi2+0x1c> + 1682: 106a lrw r3, 0xffffff // 16a8 <__clzsi2+0x38> + 1684: 640c cmphs r3, r0 + 1686: 080c bt 0x169e // 169e <__clzsi2+0x2e> + 1688: 3308 movi r3, 8 + 168a: 3218 movi r2, 24 + 168c: 7009 lsr r0, r2 + 168e: 1048 lrw r2, 0x86a4 // 16ac <__clzsi2+0x3c> + 1690: 6008 addu r0, r2 + 1692: 8040 ld.b r2, (r0, 0x0) + 1694: 5b09 subu r0, r3, r2 + 1696: 783c jmp r15 + 1698: 3318 movi r3, 24 + 169a: 3208 movi r2, 8 + 169c: 07f8 br 0x168c // 168c <__clzsi2+0x1c> + 169e: 3310 movi r3, 16 + 16a0: 3210 movi r2, 16 + 16a2: 07f5 br 0x168c // 168c <__clzsi2+0x1c> + 16a4: 0000ffff .long 0x0000ffff + 16a8: 00ffffff .long 0x00ffffff + 16ac: 000086a4 .long 0x000086a4 + +000016b0 <__pack_d>: + 16b0: 14c4 push r4-r7 + 16b2: 1422 subi r14, r14, 8 + 16b4: 9060 ld.w r3, (r0, 0x0) + 16b6: 3b01 cmphsi r3, 2 + 16b8: 90c3 ld.w r6, (r0, 0xc) + 16ba: 90e4 ld.w r7, (r0, 0x10) + 16bc: 9021 ld.w r1, (r0, 0x4) + 16be: 0c46 bf 0x174a // 174a <__pack_d+0x9a> + 16c0: 3b44 cmpnei r3, 4 + 16c2: 0c40 bf 0x1742 // 1742 <__pack_d+0x92> + 16c4: 3b42 cmpnei r3, 2 + 16c6: 0c27 bf 0x1714 // 1714 <__pack_d+0x64> + 16c8: 6cdb mov r3, r6 + 16ca: 6cdc or r3, r7 + 16cc: 3b40 cmpnei r3, 0 + 16ce: 0c23 bf 0x1714 // 1714 <__pack_d+0x64> + 16d0: 9062 ld.w r3, (r0, 0x8) + 16d2: 125a lrw r2, 0xfffffc02 // 1838 <__pack_d+0x188> + 16d4: 648d cmplt r3, r2 + 16d6: 0855 bt 0x1780 // 1780 <__pack_d+0xd0> + 16d8: 1259 lrw r2, 0x3ff // 183c <__pack_d+0x18c> + 16da: 64c9 cmplt r2, r3 + 16dc: 0833 bt 0x1742 // 1742 <__pack_d+0x92> + 16de: 34ff movi r4, 255 + 16e0: 3500 movi r5, 0 + 16e2: 6918 and r4, r6 + 16e4: 695c and r5, r7 + 16e6: 3280 movi r2, 128 + 16e8: 6492 cmpne r4, r2 + 16ea: 0c3f bf 0x1768 // 1768 <__pack_d+0xb8> + 16ec: 347f movi r4, 127 + 16ee: 3500 movi r5, 0 + 16f0: 6599 cmplt r6, r6 + 16f2: 6191 addc r6, r4 + 16f4: 61d5 addc r7, r5 + 16f6: 1253 lrw r2, 0x1fffffff // 1840 <__pack_d+0x190> + 16f8: 65c8 cmphs r2, r7 + 16fa: 0c1a bf 0x172e // 172e <__pack_d+0x7e> + 16fc: 1290 lrw r4, 0x3ff // 183c <__pack_d+0x18c> + 16fe: 610c addu r4, r3 + 1700: 4718 lsli r0, r7, 24 + 1702: 4f68 lsri r3, r7, 8 + 1704: 4e48 lsri r2, r6, 8 + 1706: 6c80 or r2, r0 + 1708: 430c lsli r0, r3, 12 + 170a: 486c lsri r3, r0, 12 + 170c: 120e lrw r0, 0x7ff // 1844 <__pack_d+0x194> + 170e: 6d4b mov r5, r2 + 1710: 6900 and r4, r0 + 1712: 0404 br 0x171a // 171a <__pack_d+0x6a> + 1714: 3400 movi r4, 0 + 1716: 3200 movi r2, 0 + 1718: 3300 movi r3, 0 + 171a: 430c lsli r0, r3, 12 + 171c: 480c lsri r0, r0, 12 + 171e: 4474 lsli r3, r4, 20 + 1720: 419f lsli r4, r1, 31 + 1722: 6c43 mov r1, r0 + 1724: 6c4c or r1, r3 + 1726: 6c50 or r1, r4 + 1728: 6c0b mov r0, r2 + 172a: 1402 addi r14, r14, 8 + 172c: 1484 pop r4-r7 + 172e: 479f lsli r4, r7, 31 + 1730: 4e01 lsri r0, r6, 1 + 1732: 6d00 or r4, r0 + 1734: 6d93 mov r6, r4 + 1736: 3480 movi r4, 128 + 1738: 4f41 lsri r2, r7, 1 + 173a: 4483 lsli r4, r4, 3 + 173c: 6dcb mov r7, r2 + 173e: 610c addu r4, r3 + 1740: 07e0 br 0x1700 // 1700 <__pack_d+0x50> + 1742: 1281 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1744: 3200 movi r2, 0 + 1746: 3300 movi r3, 0 + 1748: 07e9 br 0x171a // 171a <__pack_d+0x6a> + 174a: 4e08 lsri r0, r6, 8 + 174c: 4798 lsli r4, r7, 24 + 174e: 6d00 or r4, r0 + 1750: 3580 movi r5, 128 + 1752: 4705 lsli r0, r7, 5 + 1754: 6c93 mov r2, r4 + 1756: 486d lsri r3, r0, 13 + 1758: 3400 movi r4, 0 + 175a: 45ac lsli r5, r5, 12 + 175c: 6c90 or r2, r4 + 175e: 6cd4 or r3, r5 + 1760: 430c lsli r0, r3, 12 + 1762: 486c lsri r3, r0, 12 + 1764: 1198 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1766: 07da br 0x171a // 171a <__pack_d+0x6a> + 1768: 3d40 cmpnei r5, 0 + 176a: 0bc1 bt 0x16ec // 16ec <__pack_d+0x3c> + 176c: 4241 lsli r2, r2, 1 + 176e: 6898 and r2, r6 + 1770: 3a40 cmpnei r2, 0 + 1772: 0fc2 bf 0x16f6 // 16f6 <__pack_d+0x46> + 1774: 3480 movi r4, 128 + 1776: 3500 movi r5, 0 + 1778: 6599 cmplt r6, r6 + 177a: 6191 addc r6, r4 + 177c: 61d5 addc r7, r5 + 177e: 07bc br 0x16f6 // 16f6 <__pack_d+0x46> + 1780: 5a6d subu r3, r2, r3 + 1782: 3238 movi r2, 56 + 1784: 64c9 cmplt r2, r3 + 1786: 0bc7 bt 0x1714 // 1714 <__pack_d+0x64> + 1788: 3200 movi r2, 0 + 178a: 2a1f subi r2, 32 + 178c: 608c addu r2, r3 + 178e: 3adf btsti r2, 31 + 1790: 0848 bt 0x1820 // 1820 <__pack_d+0x170> + 1792: 6c1f mov r0, r7 + 1794: 7009 lsr r0, r2 + 1796: b800 st.w r0, (r14, 0x0) + 1798: 3000 movi r0, 0 + 179a: b801 st.w r0, (r14, 0x4) + 179c: 3adf btsti r2, 31 + 179e: 083c bt 0x1816 // 1816 <__pack_d+0x166> + 17a0: 3301 movi r3, 1 + 17a2: 70c8 lsl r3, r2 + 17a4: 6d4f mov r5, r3 + 17a6: 3300 movi r3, 0 + 17a8: 6d0f mov r4, r3 + 17aa: 3200 movi r2, 0 + 17ac: 3300 movi r3, 0 + 17ae: 2a00 subi r2, 1 + 17b0: 2b00 subi r3, 1 + 17b2: 6511 cmplt r4, r4 + 17b4: 6109 addc r4, r2 + 17b6: 614d addc r5, r3 + 17b8: 6990 and r6, r4 + 17ba: 69d4 and r7, r5 + 17bc: 6d9c or r6, r7 + 17be: 3e40 cmpnei r6, 0 + 17c0: 3000 movi r0, 0 + 17c2: 6001 addc r0, r0 + 17c4: 6c83 mov r2, r0 + 17c6: 3300 movi r3, 0 + 17c8: 9880 ld.w r4, (r14, 0x0) + 17ca: 98a1 ld.w r5, (r14, 0x4) + 17cc: 6d08 or r4, r2 + 17ce: 6d4c or r5, r3 + 17d0: 32ff movi r2, 255 + 17d2: 3300 movi r3, 0 + 17d4: 6890 and r2, r4 + 17d6: 68d4 and r3, r5 + 17d8: 3080 movi r0, 128 + 17da: 640a cmpne r2, r0 + 17dc: 081b bt 0x1812 // 1812 <__pack_d+0x162> + 17de: 3b40 cmpnei r3, 0 + 17e0: 0819 bt 0x1812 // 1812 <__pack_d+0x162> + 17e2: 3380 movi r3, 128 + 17e4: 4361 lsli r3, r3, 1 + 17e6: 68d0 and r3, r4 + 17e8: 3b40 cmpnei r3, 0 + 17ea: 0c06 bf 0x17f6 // 17f6 <__pack_d+0x146> + 17ec: 3280 movi r2, 128 + 17ee: 3300 movi r3, 0 + 17f0: 6511 cmplt r4, r4 + 17f2: 6109 addc r4, r2 + 17f4: 614d addc r5, r3 + 17f6: 4518 lsli r0, r5, 24 + 17f8: 4c48 lsri r2, r4, 8 + 17fa: 4d68 lsri r3, r5, 8 + 17fc: 1093 lrw r4, 0xfffffff // 1848 <__pack_d+0x198> + 17fe: 6c80 or r2, r0 + 1800: 6550 cmphs r4, r5 + 1802: 430c lsli r0, r3, 12 + 1804: 486c lsri r3, r0, 12 + 1806: 3001 movi r0, 1 + 1808: 0c02 bf 0x180c // 180c <__pack_d+0x15c> + 180a: 3000 movi r0, 0 + 180c: 108e lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 180e: 6900 and r4, r0 + 1810: 0785 br 0x171a // 171a <__pack_d+0x6a> + 1812: 327f movi r2, 127 + 1814: 07ed br 0x17ee // 17ee <__pack_d+0x13e> + 1816: 3201 movi r2, 1 + 1818: 708c lsl r2, r3 + 181a: 3500 movi r5, 0 + 181c: 6d0b mov r4, r2 + 181e: 07c6 br 0x17aa // 17aa <__pack_d+0xfa> + 1820: 341f movi r4, 31 + 1822: 610e subu r4, r3 + 1824: 4701 lsli r0, r7, 1 + 1826: 7010 lsl r0, r4 + 1828: 6d1b mov r4, r6 + 182a: 710d lsr r4, r3 + 182c: 6d00 or r4, r0 + 182e: 6c1f mov r0, r7 + 1830: 700d lsr r0, r3 + 1832: b880 st.w r4, (r14, 0x0) + 1834: b801 st.w r0, (r14, 0x4) + 1836: 07b3 br 0x179c // 179c <__pack_d+0xec> + 1838: fffffc02 .long 0xfffffc02 + 183c: 000003ff .long 0x000003ff + 1840: 1fffffff .long 0x1fffffff + 1844: 000007ff .long 0x000007ff + 1848: 0fffffff .long 0x0fffffff + +0000184c <__unpack_d>: + 184c: 1423 subi r14, r14, 12 + 184e: b880 st.w r4, (r14, 0x0) + 1850: b8c1 st.w r6, (r14, 0x4) + 1852: b8e2 st.w r7, (r14, 0x8) + 1854: 8843 ld.h r2, (r0, 0x6) + 1856: 4251 lsli r2, r2, 17 + 1858: 9061 ld.w r3, (r0, 0x4) + 185a: 9080 ld.w r4, (r0, 0x0) + 185c: 4a55 lsri r2, r2, 21 + 185e: 8007 ld.b r0, (r0, 0x7) + 1860: 436c lsli r3, r3, 12 + 1862: 4807 lsri r0, r0, 7 + 1864: 3a40 cmpnei r2, 0 + 1866: 4b6c lsri r3, r3, 12 + 1868: b101 st.w r0, (r1, 0x4) + 186a: 0819 bt 0x189c // 189c <__unpack_d+0x50> + 186c: 6c93 mov r2, r4 + 186e: 6c8c or r2, r3 + 1870: 3a40 cmpnei r2, 0 + 1872: 0c2d bf 0x18cc // 18cc <__unpack_d+0x80> + 1874: 4c58 lsri r2, r4, 24 + 1876: 4368 lsli r3, r3, 8 + 1878: 6cc8 or r3, r2 + 187a: 3203 movi r2, 3 + 187c: 4408 lsli r0, r4, 8 + 187e: b140 st.w r2, (r1, 0x0) + 1880: 1181 lrw r4, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 1882: 11c2 lrw r6, 0xfffffff // 1908 <__unpack_d+0xbc> + 1884: 485f lsri r2, r0, 31 + 1886: 4361 lsli r3, r3, 1 + 1888: 6cc8 or r3, r2 + 188a: 64d8 cmphs r6, r3 + 188c: 6c93 mov r2, r4 + 188e: 4001 lsli r0, r0, 1 + 1890: 2c00 subi r4, 1 + 1892: 0bf9 bt 0x1884 // 1884 <__unpack_d+0x38> + 1894: b142 st.w r2, (r1, 0x8) + 1896: b103 st.w r0, (r1, 0xc) + 1898: b164 st.w r3, (r1, 0x10) + 189a: 0414 br 0x18c2 // 18c2 <__unpack_d+0x76> + 189c: 101c lrw r0, 0x7ff // 190c <__unpack_d+0xc0> + 189e: 640a cmpne r2, r0 + 18a0: 0c19 bf 0x18d2 // 18d2 <__unpack_d+0x86> + 18a2: 1019 lrw r0, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 18a4: 6080 addu r2, r0 + 18a6: b142 st.w r2, (r1, 0x8) + 18a8: 3203 movi r2, 3 + 18aa: 43e8 lsli r7, r3, 8 + 18ac: b140 st.w r2, (r1, 0x0) + 18ae: 3380 movi r3, 128 + 18b0: 4c58 lsri r2, r4, 24 + 18b2: 6dc8 or r7, r2 + 18b4: 44c8 lsli r6, r4, 8 + 18b6: 3200 movi r2, 0 + 18b8: 4375 lsli r3, r3, 21 + 18ba: 6d88 or r6, r2 + 18bc: 6dcc or r7, r3 + 18be: b1c3 st.w r6, (r1, 0xc) + 18c0: b1e4 st.w r7, (r1, 0x10) + 18c2: 98e2 ld.w r7, (r14, 0x8) + 18c4: 98c1 ld.w r6, (r14, 0x4) + 18c6: 9880 ld.w r4, (r14, 0x0) + 18c8: 1403 addi r14, r14, 12 + 18ca: 783c jmp r15 + 18cc: 3302 movi r3, 2 + 18ce: b160 st.w r3, (r1, 0x0) + 18d0: 07f9 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18d2: 6c93 mov r2, r4 + 18d4: 6c8c or r2, r3 + 18d6: 3a40 cmpnei r2, 0 + 18d8: 0c10 bf 0x18f8 // 18f8 <__unpack_d+0xac> + 18da: 3280 movi r2, 128 + 18dc: 424c lsli r2, r2, 12 + 18de: 688c and r2, r3 + 18e0: 3a40 cmpnei r2, 0 + 18e2: 0c0e bf 0x18fe // 18fe <__unpack_d+0xb2> + 18e4: 3201 movi r2, 1 + 18e6: b140 st.w r2, (r1, 0x0) + 18e8: 4c58 lsri r2, r4, 24 + 18ea: 4368 lsli r3, r3, 8 + 18ec: 6cc8 or r3, r2 + 18ee: 4408 lsli r0, r4, 8 + 18f0: 3b9b bclri r3, 27 + 18f2: b103 st.w r0, (r1, 0xc) + 18f4: b164 st.w r3, (r1, 0x10) + 18f6: 07e6 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18f8: 3304 movi r3, 4 + 18fa: b160 st.w r3, (r1, 0x0) + 18fc: 07e3 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18fe: b140 st.w r2, (r1, 0x0) + 1900: 07f4 br 0x18e8 // 18e8 <__unpack_d+0x9c> + 1902: 0000 bkpt + 1904: fffffc01 .long 0xfffffc01 + 1908: 0fffffff .long 0x0fffffff + 190c: 000007ff .long 0x000007ff + +00001910 <__fpcmp_parts_d>: + 1910: 14c1 push r4 + 1912: 9060 ld.w r3, (r0, 0x0) + 1914: 3b01 cmphsi r3, 2 + 1916: 0c12 bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1918: 9140 ld.w r2, (r1, 0x0) + 191a: 3a01 cmphsi r2, 2 + 191c: 0c0f bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 191e: 3b44 cmpnei r3, 4 + 1920: 0c17 bf 0x194e // 194e <__fpcmp_parts_d+0x3e> + 1922: 3a44 cmpnei r2, 4 + 1924: 0c0f bf 0x1942 // 1942 <__fpcmp_parts_d+0x32> + 1926: 3b42 cmpnei r3, 2 + 1928: 0c0b bf 0x193e // 193e <__fpcmp_parts_d+0x2e> + 192a: 3a42 cmpnei r2, 2 + 192c: 0c13 bf 0x1952 // 1952 <__fpcmp_parts_d+0x42> + 192e: 9061 ld.w r3, (r0, 0x4) + 1930: 9141 ld.w r2, (r1, 0x4) + 1932: 648e cmpne r3, r2 + 1934: 0c14 bf 0x195c // 195c <__fpcmp_parts_d+0x4c> + 1936: 3b40 cmpnei r3, 0 + 1938: 0808 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 193a: 3001 movi r0, 1 + 193c: 1481 pop r4 + 193e: 3a42 cmpnei r2, 2 + 1940: 0c28 bf 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 1942: 9161 ld.w r3, (r1, 0x4) + 1944: 3b40 cmpnei r3, 0 + 1946: 0bfa bt 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1948: 3000 movi r0, 0 + 194a: 2800 subi r0, 1 + 194c: 1481 pop r4 + 194e: 3a44 cmpnei r2, 4 + 1950: 0c22 bf 0x1994 // 1994 <__fpcmp_parts_d+0x84> + 1952: 9061 ld.w r3, (r0, 0x4) + 1954: 3b40 cmpnei r3, 0 + 1956: 0bf9 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1958: 3001 movi r0, 1 + 195a: 07f1 br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 195c: 9082 ld.w r4, (r0, 0x8) + 195e: 9142 ld.w r2, (r1, 0x8) + 1960: 6509 cmplt r2, r4 + 1962: 0bea bt 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1964: 6491 cmplt r4, r2 + 1966: 080d bt 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1968: 9044 ld.w r2, (r0, 0x10) + 196a: 9083 ld.w r4, (r0, 0xc) + 196c: 9103 ld.w r0, (r1, 0xc) + 196e: 9124 ld.w r1, (r1, 0x10) + 1970: 6484 cmphs r1, r2 + 1972: 0fe2 bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1974: 644a cmpne r2, r1 + 1976: 0803 bt 0x197c // 197c <__fpcmp_parts_d+0x6c> + 1978: 6500 cmphs r0, r4 + 197a: 0fde bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 197c: 6448 cmphs r2, r1 + 197e: 0805 bt 0x1988 // 1988 <__fpcmp_parts_d+0x78> + 1980: 3b40 cmpnei r3, 0 + 1982: 0fe3 bf 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1984: 3001 movi r0, 1 + 1986: 07db br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 1988: 6486 cmpne r1, r2 + 198a: 0803 bt 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 198c: 6410 cmphs r4, r0 + 198e: 0ff9 bf 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1990: 3000 movi r0, 0 + 1992: 1481 pop r4 + 1994: 9161 ld.w r3, (r1, 0x4) + 1996: 9041 ld.w r2, (r0, 0x4) + 1998: 5b09 subu r0, r3, r2 + 199a: 1481 pop r4 + +0000199c <__GI_rand>: + 199c: 1065 lrw r3, 0x41c64e6d // 19b0 <__GI_rand+0x14> + 199e: 1046 lrw r2, 0x200000a4 // 19b4 <__GI_rand+0x18> + 19a0: 9220 ld.w r1, (r2, 0x0) + 19a2: 7cc4 mult r3, r1 + 19a4: 1025 lrw r1, 0x3039 // 19b8 <__GI_rand+0x1c> + 19a6: 6c0f mov r0, r3 + 19a8: 6004 addu r0, r1 + 19aa: b200 st.w r0, (r2, 0x0) + 19ac: 4801 lsri r0, r0, 1 + 19ae: 783c jmp r15 + 19b0: 41c64e6d .long 0x41c64e6d + 19b4: 200000a4 .long 0x200000a4 + 19b8: 00003039 .long 0x00003039 + +000019bc <__GI_srand>: + 19bc: 1022 lrw r1, 0x200000a4 // 19c4 <__GI_srand+0x8> + 19be: b100 st.w r0, (r1, 0x0) + 19c0: 783c jmp r15 + 19c2: 0000 .short 0x0000 + 19c4: 200000a4 .long 0x200000a4 + +000019c8 <__memset_fast>: + 19c8: 14c3 push r4-r6 + 19ca: 7444 zextb r1, r1 + 19cc: 3a40 cmpnei r2, 0 + 19ce: 0c1f bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19d0: 6d43 mov r5, r0 + 19d2: 6d03 mov r4, r0 + 19d4: 3603 movi r6, 3 + 19d6: 6918 and r4, r6 + 19d8: 3c40 cmpnei r4, 0 + 19da: 0c1a bf 0x1a0e // 1a0e <__memset_fast+0x46> + 19dc: a520 st.b r1, (r5, 0x0) + 19de: 2a00 subi r2, 1 + 19e0: 3a40 cmpnei r2, 0 + 19e2: 0c15 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19e4: 2500 addi r5, 1 + 19e6: 6d17 mov r4, r5 + 19e8: 3603 movi r6, 3 + 19ea: 6918 and r4, r6 + 19ec: 3c40 cmpnei r4, 0 + 19ee: 0c10 bf 0x1a0e // 1a0e <__memset_fast+0x46> + 19f0: a520 st.b r1, (r5, 0x0) + 19f2: 2a00 subi r2, 1 + 19f4: 3a40 cmpnei r2, 0 + 19f6: 0c0b bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19f8: 2500 addi r5, 1 + 19fa: 6d17 mov r4, r5 + 19fc: 3603 movi r6, 3 + 19fe: 6918 and r4, r6 + 1a00: 3c40 cmpnei r4, 0 + 1a02: 0c06 bf 0x1a0e // 1a0e <__memset_fast+0x46> + 1a04: a520 st.b r1, (r5, 0x0) + 1a06: 2a00 subi r2, 1 + 1a08: 2500 addi r5, 1 + 1a0a: 0402 br 0x1a0e // 1a0e <__memset_fast+0x46> + 1a0c: 1483 pop r4-r6 + 1a0e: 4168 lsli r3, r1, 8 + 1a10: 6c4c or r1, r3 + 1a12: 4170 lsli r3, r1, 16 + 1a14: 6c4c or r1, r3 + 1a16: 3a2f cmplti r2, 16 + 1a18: 0809 bt 0x1a2a // 1a2a <__memset_fast+0x62> + 1a1a: b520 st.w r1, (r5, 0x0) + 1a1c: b521 st.w r1, (r5, 0x4) + 1a1e: b522 st.w r1, (r5, 0x8) + 1a20: b523 st.w r1, (r5, 0xc) + 1a22: 2a0f subi r2, 16 + 1a24: 250f addi r5, 16 + 1a26: 3a2f cmplti r2, 16 + 1a28: 0ff9 bf 0x1a1a // 1a1a <__memset_fast+0x52> + 1a2a: 3a23 cmplti r2, 4 + 1a2c: 0806 bt 0x1a38 // 1a38 <__memset_fast+0x70> + 1a2e: 2a03 subi r2, 4 + 1a30: b520 st.w r1, (r5, 0x0) + 1a32: 2503 addi r5, 4 + 1a34: 3a23 cmplti r2, 4 + 1a36: 0ffc bf 0x1a2e // 1a2e <__memset_fast+0x66> + 1a38: 3a40 cmpnei r2, 0 + 1a3a: 0fe9 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a3c: 2a00 subi r2, 1 + 1a3e: a520 st.b r1, (r5, 0x0) + 1a40: 3a40 cmpnei r2, 0 + 1a42: 0fe5 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a44: 2a00 subi r2, 1 + 1a46: a521 st.b r1, (r5, 0x1) + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0fe1 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a4c: a522 st.b r1, (r5, 0x2) + 1a4e: 1483 pop r4-r6 + +00001a50 <__memcpy_fast>: + 1a50: 14c3 push r4-r6 + 1a52: 6d83 mov r6, r0 + 1a54: 6d07 mov r4, r1 + 1a56: 6d18 or r4, r6 + 1a58: 3303 movi r3, 3 + 1a5a: 690c and r4, r3 + 1a5c: 3c40 cmpnei r4, 0 + 1a5e: 0c0b bf 0x1a74 // 1a74 <__memcpy_fast+0x24> + 1a60: 3a40 cmpnei r2, 0 + 1a62: 0c08 bf 0x1a72 // 1a72 <__memcpy_fast+0x22> + 1a64: 8160 ld.b r3, (r1, 0x0) + 1a66: 2100 addi r1, 1 + 1a68: 2a00 subi r2, 1 + 1a6a: a660 st.b r3, (r6, 0x0) + 1a6c: 2600 addi r6, 1 + 1a6e: 3a40 cmpnei r2, 0 + 1a70: 0bfa bt 0x1a64 // 1a64 <__memcpy_fast+0x14> + 1a72: 1483 pop r4-r6 + 1a74: 3a2f cmplti r2, 16 + 1a76: 080e bt 0x1a92 // 1a92 <__memcpy_fast+0x42> + 1a78: 91a0 ld.w r5, (r1, 0x0) + 1a7a: 9161 ld.w r3, (r1, 0x4) + 1a7c: 9182 ld.w r4, (r1, 0x8) + 1a7e: b6a0 st.w r5, (r6, 0x0) + 1a80: 91a3 ld.w r5, (r1, 0xc) + 1a82: b661 st.w r3, (r6, 0x4) + 1a84: b682 st.w r4, (r6, 0x8) + 1a86: b6a3 st.w r5, (r6, 0xc) + 1a88: 2a0f subi r2, 16 + 1a8a: 210f addi r1, 16 + 1a8c: 260f addi r6, 16 + 1a8e: 3a2f cmplti r2, 16 + 1a90: 0ff4 bf 0x1a78 // 1a78 <__memcpy_fast+0x28> + 1a92: 3a23 cmplti r2, 4 + 1a94: 0808 bt 0x1aa4 // 1aa4 <__memcpy_fast+0x54> + 1a96: 9160 ld.w r3, (r1, 0x0) + 1a98: 2a03 subi r2, 4 + 1a9a: 2103 addi r1, 4 + 1a9c: b660 st.w r3, (r6, 0x0) + 1a9e: 2603 addi r6, 4 + 1aa0: 3a23 cmplti r2, 4 + 1aa2: 0ffa bf 0x1a96 // 1a96 <__memcpy_fast+0x46> + 1aa4: 3a40 cmpnei r2, 0 + 1aa6: 0fe6 bf 0x1a72 // 1a72 <__memcpy_fast+0x22> + 1aa8: 8160 ld.b r3, (r1, 0x0) + 1aaa: 2100 addi r1, 1 + 1aac: 2a00 subi r2, 1 + 1aae: a660 st.b r3, (r6, 0x0) + 1ab0: 2600 addi r6, 1 + 1ab2: 07f9 br 0x1aa4 // 1aa4 <__memcpy_fast+0x54> + +Disassembly of section .text.__main: + +00001ab4 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1ab4: 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 ) { + 1ab6: 1009 lrw r0, 0x20000000 // 1ad8 <__main+0x24> + 1ab8: 1029 lrw r1, 0x8ba4 // 1adc <__main+0x28> + 1aba: 6442 cmpne r0, r1 + 1abc: 0c05 bf 0x1ac6 // 1ac6 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1abe: 1049 lrw r2, 0x200000a8 // 1ae0 <__main+0x2c> + 1ac0: 6082 subu r2, r0 + 1ac2: e3ffffc7 bsr 0x1a50 // 1a50 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1ac6: 1048 lrw r2, 0x200007d0 // 1ae4 <__main+0x30> + 1ac8: 1008 lrw r0, 0x200000a8 // 1ae8 <__main+0x34> + 1aca: 640a cmpne r2, r0 + 1acc: 0c05 bf 0x1ad6 // 1ad6 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1ace: 6082 subu r2, r0 + 1ad0: 3100 movi r1, 0 + 1ad2: e3ffff7b bsr 0x19c8 // 19c8 <__memset_fast> + } + + +} + 1ad6: 1490 pop r15 + 1ad8: 20000000 .long 0x20000000 + 1adc: 00008ba4 .long 0x00008ba4 + 1ae0: 200000a8 .long 0x200000a8 + 1ae4: 200007d0 .long 0x200007d0 + 1ae8: 200000a8 .long 0x200000a8 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001aec : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1aec: 3848 cmpnei r0, 8 + 1aee: 080a bt 0x1b02 // 1b02 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1af0: 107a lrw r3, 0x2000004c // 1b58 + 1af2: 32ff movi r2, 255 + 1af4: 9320 ld.w r1, (r3, 0x0) + 1af6: 9160 ld.w r3, (r1, 0x0) + 1af8: 424c lsli r2, r2, 12 + 1afa: 68c9 andn r3, r2 + 1afc: 3bae bseti r3, 14 + 1afe: 3bb2 bseti r3, 18 + 1b00: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1b02: 1077 lrw r3, 0x2000005c // 1b5c + 1b04: 9360 ld.w r3, (r3, 0x0) + 1b06: 9341 ld.w r2, (r3, 0x4) + 1b08: 6c80 or r2, r0 + 1b0a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1b0c: 9343 ld.w r2, (r3, 0xc) + 1b0e: 6880 and r2, r0 + 1b10: 3a40 cmpnei r2, 0 + 1b12: 0ffd bf 0x1b0c // 1b0c + switch(ENDIS_X) + 1b14: 3842 cmpnei r0, 2 + 1b16: 0807 bt 0x1b24 // 1b24 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1b18: 3102 movi r1, 2 + 1b1a: 9344 ld.w r2, (r3, 0x10) + 1b1c: 6884 and r2, r1 + 1b1e: 3a40 cmpnei r2, 0 + 1b20: 0ffd bf 0x1b1a // 1b1a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1b22: 783c jmp r15 + switch(ENDIS_X) + 1b24: 3802 cmphsi r0, 3 + 1b26: 0809 bt 0x1b38 // 1b38 + 1b28: 3841 cmpnei r0, 1 + 1b2a: 0bfc bt 0x1b22 // 1b22 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1b2c: 3101 movi r1, 1 + 1b2e: 9344 ld.w r2, (r3, 0x10) + 1b30: 6884 and r2, r1 + 1b32: 3a40 cmpnei r2, 0 + 1b34: 0ffd bf 0x1b2e // 1b2e + 1b36: 07f6 br 0x1b22 // 1b22 + switch(ENDIS_X) + 1b38: 3848 cmpnei r0, 8 + 1b3a: 0807 bt 0x1b48 // 1b48 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1b3c: 3108 movi r1, 8 + 1b3e: 9344 ld.w r2, (r3, 0x10) + 1b40: 6884 and r2, r1 + 1b42: 3a40 cmpnei r2, 0 + 1b44: 0ffd bf 0x1b3e // 1b3e + 1b46: 07ee br 0x1b22 // 1b22 + switch(ENDIS_X) + 1b48: 3850 cmpnei r0, 16 + 1b4a: 0bec bt 0x1b22 // 1b22 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1b4c: 3110 movi r1, 16 + 1b4e: 9344 ld.w r2, (r3, 0x10) + 1b50: 6884 and r2, r1 + 1b52: 3a40 cmpnei r2, 0 + 1b54: 0ffd bf 0x1b4e // 1b4e + 1b56: 07e6 br 0x1b22 // 1b22 + 1b58: 2000004c .long 0x2000004c + 1b5c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001b60 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1b60: 106c lrw r3, 0x2000005c // 1b90 + 1b62: 104d lrw r2, 0xffff // 1b94 + 1b64: 9360 ld.w r3, (r3, 0x0) + 1b66: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1b68: 104c lrw r2, 0xffffff // 1b98 + 1b6a: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1b6c: 104c lrw r2, 0xd22d0000 // 1b9c + 1b6e: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1b70: 104c lrw r2, 0x70ff3bff // 1ba0 + 1b72: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1b74: 320a movi r2, 10 + 1b76: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b78: 102b lrw r1, 0x70c // 1ba4 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1b7a: 237f addi r3, 128 + 1b7c: 3200 movi r2, 0 + 1b7e: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1b80: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b82: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1b84: 1029 lrw r1, 0x3fe // 1ba8 + 1b86: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1b88: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1b8a: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1b8c: b35f st.w r2, (r3, 0x7c) +} + 1b8e: 783c jmp r15 + 1b90: 2000005c .long 0x2000005c + 1b94: 0000ffff .long 0x0000ffff + 1b98: 00ffffff .long 0x00ffffff + 1b9c: d22d0000 .long 0xd22d0000 + 1ba0: 70ff3bff .long 0x70ff3bff + 1ba4: 0000070c .long 0x0000070c + 1ba8: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001bac : +{ + 1bac: 14d0 push r15 + if (NewState != DISABLE) + 1bae: 3840 cmpnei r0, 0 + 1bb0: 0c05 bf 0x1bba // 1bba + 1bb2: 6c07 mov r0, r1 + 1bb4: e3ffff9c bsr 0x1aec // 1aec +} + 1bb8: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1bba: 1068 lrw r3, 0x2000005c // 1bd8 + 1bbc: 9360 ld.w r3, (r3, 0x0) + 1bbe: 9342 ld.w r2, (r3, 0x8) + 1bc0: 6c84 or r2, r1 + 1bc2: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1bc4: 9343 ld.w r2, (r3, 0xc) + 1bc6: 6884 and r2, r1 + 1bc8: 3a40 cmpnei r2, 0 + 1bca: 0bfd bt 0x1bc4 // 1bc4 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1bcc: 237f addi r3, 128 + 1bce: 9301 ld.w r0, (r3, 0x4) + 1bd0: 6c40 or r1, r0 + 1bd2: b321 st.w r1, (r3, 0x4) +} + 1bd4: 07f2 br 0x1bb8 // 1bb8 + 1bd6: 0000 bkpt + 1bd8: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001bdc : +//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 ) +{ + 1bdc: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1bde: 3b48 cmpnei r3, 8 + 1be0: 0828 bt 0x1c30 // 1c30 + { + IFC->CEDR=0X01; //CLKEN + 1be2: 109d lrw r4, 0x20000060 // 1c54 + 1be4: 3501 movi r5, 1 + 1be6: 9480 ld.w r4, (r4, 0x0) + 1be8: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1bea: 3504 movi r5, 4 + 1bec: 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)) + 1bee: 5b83 subi r4, r3, 1 + 1bf0: 3c01 cmphsi r4, 2 + 1bf2: 0c2b bf 0x1c48 // 1c48 + { + 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)) + 1bf4: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1bf6: 3c04 cmphsi r4, 5 + 1bf8: 0c03 bf 0x1bfe // 1bfe + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1bfa: 3b4b cmpnei r3, 11 + 1bfc: 0807 bt 0x1c0a // 1c0a + { + IFC->CEDR=0X01; //CLKEN + 1bfe: 1076 lrw r3, 0x20000060 // 1c54 + 1c00: 3401 movi r4, 1 + 1c02: 9360 ld.w r3, (r3, 0x0) + 1c04: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1c06: 3400 movi r4, 0 + 1c08: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c0a: 1094 lrw r4, 0xd22d0000 // 1c58 + 1c0c: 6c10 or r0, r4 + 1c0e: 1074 lrw r3, 0x2000005c // 1c5c + 1c10: 6c40 or r1, r0 + 1c12: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c14: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c16: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c18: 4001 lsli r0, r0, 1 + 1c1a: 9324 ld.w r1, (r3, 0x10) + 1c1c: 6840 and r1, r0 + 1c1e: 3940 cmpnei r1, 0 + 1c20: 0ffd bf 0x1c1a // 1c1a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1c22: 1030 lrw r1, 0xc33c0000 // 1c60 + 1c24: 6c48 or r1, r2 + 1c26: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1c28: 9328 ld.w r1, (r3, 0x20) + 1c2a: 644a cmpne r2, r1 + 1c2c: 0bfe bt 0x1c28 // 1c28 +} + 1c2e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1c30: 3b40 cmpnei r3, 0 + 1c32: 0c03 bf 0x1c38 // 1c38 + 1c34: 3b49 cmpnei r3, 9 + 1c36: 0807 bt 0x1c44 // 1c44 + IFC->CEDR=0X01; //CLKEN + 1c38: 1087 lrw r4, 0x20000060 // 1c54 + 1c3a: 3501 movi r5, 1 + 1c3c: 9480 ld.w r4, (r4, 0x0) + 1c3e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1c40: 3502 movi r5, 2 + 1c42: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1c44: 3b4a cmpnei r3, 10 + 1c46: 0bd4 bt 0x1bee // 1bee + IFC->CEDR=0X01; //CLKEN + 1c48: 1083 lrw r4, 0x20000060 // 1c54 + 1c4a: 3501 movi r5, 1 + 1c4c: 9480 ld.w r4, (r4, 0x0) + 1c4e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1c50: b4a5 st.w r5, (r4, 0x14) + 1c52: 07d1 br 0x1bf4 // 1bf4 + 1c54: 20000060 .long 0x20000060 + 1c58: d22d0000 .long 0xd22d0000 + 1c5c: 2000005c .long 0x2000005c + 1c60: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001c64 : +//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) +{ + 1c64: 14d1 push r4, r15 + 1c66: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1c68: 3110 movi r1, 16 + 1c6a: 3000 movi r0, 0 + 1c6c: e3ffffa0 bsr 0x1bac // 1bac + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1c70: 1066 lrw r3, 0x2000005c // 1c88 + 1c72: 9360 ld.w r3, (r3, 0x0) + 1c74: 9319 ld.w r0, (r3, 0x64) + 1c76: 3884 bclri r0, 4 + 1c78: 3885 bclri r0, 5 + 1c7a: 6c10 or r0, r4 + 1c7c: b319 st.w r0, (r3, 0x64) + 1c7e: 3010 movi r0, 16 + 1c80: e3ffff36 bsr 0x1aec // 1aec + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1c84: 1491 pop r4, r15 + 1c86: 0000 bkpt + 1c88: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001c8c : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1c8c: 106c lrw r3, 0x2000005c // 1cbc + if(NewState != DISABLE) + 1c8e: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c90: 9360 ld.w r3, (r3, 0x0) + 1c92: 237f addi r3, 128 + if(NewState != DISABLE) + 1c94: 0c0a bf 0x1ca8 // 1ca8 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c96: 104b lrw r2, 0x78870000 // 1cc0 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c98: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c9a: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c9c: 4125 lsli r1, r1, 5 + 1c9e: 934d ld.w r2, (r3, 0x34) + 1ca0: 6884 and r2, r1 + 1ca2: 3a40 cmpnei r2, 0 + 1ca4: 0ffd bf 0x1c9e // 1c9e + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1ca6: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1ca8: 1047 lrw r2, 0x788755aa // 1cc4 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1caa: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1cac: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1cae: 4125 lsli r1, r1, 5 + 1cb0: 934d ld.w r2, (r3, 0x34) + 1cb2: 6884 and r2, r1 + 1cb4: 3a40 cmpnei r2, 0 + 1cb6: 0bfd bt 0x1cb0 // 1cb0 + 1cb8: 07f7 br 0x1ca6 // 1ca6 + 1cba: 0000 bkpt + 1cbc: 2000005c .long 0x2000005c + 1cc0: 78870000 .long 0x78870000 + 1cc4: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001cc8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1cc8: 1064 lrw r3, 0x2000005c // 1cd8 + 1cca: 32b4 movi r2, 180 + 1ccc: 9360 ld.w r3, (r3, 0x0) + 1cce: 237f addi r3, 128 + 1cd0: 4257 lsli r2, r2, 23 + 1cd2: b34e st.w r2, (r3, 0x38) +} + 1cd4: 783c jmp r15 + 1cd6: 0000 bkpt + 1cd8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001cdc : +//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; + 1cdc: 1044 lrw r2, 0x87780000 // 1cec + 1cde: 1065 lrw r3, 0x2000005c // 1cf0 + 1ce0: 6c48 or r1, r2 + 1ce2: 9360 ld.w r3, (r3, 0x0) + 1ce4: 6c04 or r0, r1 + 1ce6: 237f addi r3, 128 + 1ce8: b30d st.w r0, (r3, 0x34) +} + 1cea: 783c jmp r15 + 1cec: 87780000 .long 0x87780000 + 1cf0: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001cf4 : +//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) +{ + 1cf4: 14c3 push r4-r6 + 1cf6: 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; + 1cf8: 10c5 lrw r6, 0xb44b0000 // 1d0c + 1cfa: 6d18 or r4, r6 + 1cfc: 6cd0 or r3, r4 + 1cfe: 6c8c or r2, r3 + 1d00: 6c48 or r1, r2 + 1d02: 10a4 lrw r5, 0x2000005c // 1d10 + 1d04: 6c04 or r0, r1 + 1d06: 95a0 ld.w r5, (r5, 0x0) + 1d08: b513 st.w r0, (r5, 0x4c) +} + 1d0a: 1483 pop r4-r6 + 1d0c: b44b0000 .long 0xb44b0000 + 1d10: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001d14 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1d14: 1066 lrw r3, 0x2000005c // 1d2c + 1d16: 3180 movi r1, 128 + 1d18: 9360 ld.w r3, (r3, 0x0) + 1d1a: 3280 movi r2, 128 + 1d1c: 604c addu r1, r3 + 1d1e: 4244 lsli r2, r2, 4 + 1d20: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1d22: 935d ld.w r2, (r3, 0x74) + 1d24: 3aab bseti r2, 11 + 1d26: b35d st.w r2, (r3, 0x74) +} + 1d28: 783c jmp r15 + 1d2a: 0000 bkpt + 1d2c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001d30 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1d30: 1066 lrw r3, 0x2000005c // 1d48 + 1d32: 3180 movi r1, 128 + 1d34: 9360 ld.w r3, (r3, 0x0) + 1d36: 3280 movi r2, 128 + 1d38: 604c addu r1, r3 + 1d3a: 4241 lsli r2, r2, 1 + 1d3c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1d3e: 935d ld.w r2, (r3, 0x74) + 1d40: 3aa8 bseti r2, 8 + 1d42: b35d st.w r2, (r3, 0x74) +} + 1d44: 783c jmp r15 + 1d46: 0000 bkpt + 1d48: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001d4c : +//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) + 1d4c: 3a40 cmpnei r2, 0 + 1d4e: 0c04 bf 0x1d56 // 1d56 + 1d50: 3a41 cmpnei r2, 1 + 1d52: 0c0e bf 0x1d6e // 1d6e + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1d54: 783c jmp r15 + 1d56: 106d lrw r3, 0x2000005c // 1d88 + if(NewState != DISABLE) + 1d58: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1d5a: 9360 ld.w r3, (r3, 0x0) + 1d5c: 237f addi r3, 128 + 1d5e: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 1d60: 0c04 bf 0x1d68 // 1d68 + SYSCON->EXIRT |=EXIPIN; + 1d62: 6c48 or r1, r2 + 1d64: b325 st.w r1, (r3, 0x14) + 1d66: 07f7 br 0x1d54 // 1d54 + SYSCON->EXIRT &=~EXIPIN; + 1d68: 6885 andn r2, r1 + 1d6a: b345 st.w r2, (r3, 0x14) + 1d6c: 07f4 br 0x1d54 // 1d54 + 1d6e: 1067 lrw r3, 0x2000005c // 1d88 + if(NewState != DISABLE) + 1d70: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 1d72: 9360 ld.w r3, (r3, 0x0) + 1d74: 237f addi r3, 128 + 1d76: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 1d78: 0c04 bf 0x1d80 // 1d80 + SYSCON->EXIFT |=EXIPIN; + 1d7a: 6c48 or r1, r2 + 1d7c: b326 st.w r1, (r3, 0x18) + 1d7e: 07eb br 0x1d54 // 1d54 + SYSCON->EXIFT &=~EXIPIN; + 1d80: 6885 andn r2, r1 + 1d82: b346 st.w r2, (r3, 0x18) +} + 1d84: 07e8 br 0x1d54 // 1d54 + 1d86: 0000 bkpt + 1d88: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_Int_Enable: + +00001d8c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1d8c: 3202 movi r2, 2 + 1d8e: 1062 lrw r3, 0xe000e100 // 1d94 + 1d90: b340 st.w r2, (r3, 0x0) +} + 1d92: 783c jmp r15 + 1d94: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001d98 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1d98: 1066 lrw r3, 0xe000e400 // 1db0 + 1d9a: 1047 lrw r2, 0xc0c0c0c0 // 1db4 + 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 + 1d9c: 1027 lrw r1, 0xc0c000c0 // 1db8 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1d9e: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1da0: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1da2: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1da4: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1da6: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1da8: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1daa: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1dac: b347 st.w r2, (r3, 0x1c) +} + 1dae: 783c jmp r15 + 1db0: e000e400 .long 0xe000e400 + 1db4: c0c0c0c0 .long 0xc0c0c0c0 + 1db8: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001dbc : +//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) +{ + 1dbc: 14c1 push r4 + 1dbe: 4862 lsri r3, r0, 2 + 1dc0: 4342 lsli r2, r3, 2 + 1dc2: 106a lrw r3, 0x20000064 // 1de8 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1dc4: 3403 movi r4, 3 + 1dc6: 9360 ld.w r3, (r3, 0x0) + 1dc8: 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)); + 1dda: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1dde: 7040 lsl r1, r0 + 1de0: 6c48 or r1, r2 + 1de2: b320 st.w r1, (r3, 0x0) +} + 1de4: 1481 pop r4 + 1de6: 0000 bkpt + 1de8: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00001dec : +//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) +{ + 1dec: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1dee: 3907 cmphsi r1, 8 +{ + 1df0: 6d03 mov r4, r0 + if(PinNum<8) + 1df2: 0830 bt 0x1e52 // 1e52 + { + switch (PinNum) + 1df4: 5903 subi r0, r1, 1 + 1df6: 3806 cmphsi r0, 7 + 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 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e06: 3300 movi r3, 0 + 1e08: 3104 movi r1, 4 + 1e0a: 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) + 1e0c: 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< + 1e22: 07f5 br 0x1e0c // 1e0c + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e24: 310c movi r1, 12 + 1e26: 1166 lrw r3, 0xffff0fff // 1ebc + 1e28: 07f2 br 0x1e0c // 1e0c + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e2a: 3110 movi r1, 16 + 1e2c: 1165 lrw r3, 0xfff10000 // 1ec0 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e2e: 2b00 subi r3, 1 + 1e30: 07ee br 0x1e0c // 1e0c + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e32: 3114 movi r1, 20 + 1e34: 1164 lrw r3, 0xff100000 // 1ec4 + 1e36: 07fc br 0x1e2e // 1e2e + case 6: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 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e40: 311c movi r1, 28 + 1e42: 1162 lrw r3, 0xfffffff // 1ec8 + 1e44: 07e4 br 0x1e0c // 1e0c + case 0: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)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1e52: 390f cmphsi r1, 16 + 1e54: 0be4 bt 0x1e1c // 1e1c + switch (PinNum) + 1e56: 2908 subi r1, 9 + 1e58: 3906 cmphsi r1, 7 + 1e5a: 6c07 mov r0, r1 + 1e5c: 0827 bt 0x1eaa // 1eaa + 1e5e: e3fff74f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1e62: 1004 .short 0x1004 + 1e64: 1d1a1613 .long 0x1d1a1613 + 1e68: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e6a: 3300 movi r3, 0 + 1e6c: 3104 movi r1, 4 + 1e6e: 2bf0 subi r3, 241 + if (Dir) + 1e70: 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; + 1e82: 3108 movi r1, 8 + 1e84: 106d lrw r3, 0xfffff0ff // 1eb8 + 1e86: 07f5 br 0x1e70 // 1e70 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e88: 310c movi r1, 12 + 1e8a: 106d lrw r3, 0xffff0fff // 1ebc + 1e8c: 07f2 br 0x1e70 // 1e70 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e8e: 3110 movi r1, 16 + 1e90: 106c lrw r3, 0xfff10000 // 1ec0 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e92: 2b00 subi r3, 1 + 1e94: 07ee br 0x1e70 // 1e70 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e96: 3114 movi r1, 20 + 1e98: 106b lrw r3, 0xff100000 // 1ec4 + 1e9a: 07fc br 0x1e92 // 1e92 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e9c: 33f1 movi r3, 241 + 1e9e: 3118 movi r1, 24 + 1ea0: 4378 lsli r3, r3, 24 + 1ea2: 07f8 br 0x1e92 // 1e92 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1ea4: 311c movi r1, 28 + 1ea6: 1069 lrw r3, 0xfffffff // 1ec8 + 1ea8: 07e4 br 0x1e70 // 1e70 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1eaa: 3300 movi r3, 0 + 1eac: 3100 movi r1, 0 + 1eae: 2b0f subi r3, 16 + 1eb0: 07e0 br 0x1e70 // 1e70 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1eb6: 0000 bkpt + 1eb8: fffff0ff .long 0xfffff0ff + 1ebc: ffff0fff .long 0xffff0fff + 1ec0: fff10000 .long 0xfff10000 + 1ec4: ff100000 .long 0xff100000 + 1ec8: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001ecc : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1ecc: 4121 lsli r1, r1, 1 + 1ece: 3301 movi r3, 1 + 1ed0: 9049 ld.w r2, (r0, 0x24) + 1ed2: 70c4 lsl r3, r1 + 1ed4: 6cc8 or r3, r2 + 1ed6: b069 st.w r3, (r0, 0x24) +} + 1ed8: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001eda : +//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; + 1eea: 9045 ld.w r2, (r0, 0x14) + 1eec: 3301 movi r3, 1 + 1eee: 7085 lsr r2, r1 + 1ef0: 688c and r2, r3 + { + if (dat==1) + 1ef2: 3a40 cmpnei r2, 0 + 1ef4: 70c4 lsl r3, r1 + 1ef6: 0c03 bf 0x1efc // 1efc + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.LPT_Soft_Reset: + +00001f00 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 1f00: 1064 lrw r3, 0x20000014 // 1f10 + 1f02: 9340 ld.w r2, (r3, 0x0) + 1f04: 9261 ld.w r3, (r2, 0x4) + 1f06: 3bac bseti r3, 12 + 1f08: 3bae bseti r3, 14 + 1f0a: b261 st.w r3, (r2, 0x4) +} + 1f0c: 783c jmp r15 + 1f0e: 0000 bkpt + 1f10: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00001f14 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 1f14: 1063 lrw r3, 0x20000010 // 1f20 + 1f16: 9360 ld.w r3, (r3, 0x0) + 1f18: 9340 ld.w r2, (r3, 0x0) + 1f1a: 6c08 or r0, r2 + 1f1c: b300 st.w r0, (r3, 0x0) +} + 1f1e: 783c jmp r15 + 1f20: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00001f24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 1f24: 3300 movi r3, 0 + 1f26: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 1f28: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 1f2a: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 1f2c: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 1f2e: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 1f30: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 1f32: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 1f34: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 1f36: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 1f38: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 1f3a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 1f3c: b06d st.w r3, (r0, 0x34) +} + 1f3e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00001f40 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 1f40: 9060 ld.w r3, (r0, 0x0) + 1f42: 3ba0 bseti r3, 0 + 1f44: b060 st.w r3, (r0, 0x0) +} + 1f46: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00001f48 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 1f48: 9060 ld.w r3, (r0, 0x0) + 1f4a: 3bac bseti r3, 12 + 1f4c: 3bae bseti r3, 14 + 1f4e: b060 st.w r3, (r0, 0x0) +} + 1f50: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00001f52 : +//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) +{ + 1f52: 14c3 push r4-r6 + 1f54: 98a4 ld.w r5, (r14, 0x10) + 1f56: 6d97 mov r6, r5 + 1f58: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 1f5a: 6d18 or r4, r6 + 1f5c: 6cd0 or r3, r4 + 1f5e: 90a1 ld.w r5, (r0, 0x4) + 1f60: 6c4c or r1, r3 + 1f62: 6c54 or r1, r5 + 1f64: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 1f66: b042 st.w r2, (r0, 0x8) +} + 1f68: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00001f6a : +//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) +{ + 1f6a: 14c4 push r4-r7 + 1f6c: 1421 subi r14, r14, 4 + 1f6e: 9885 ld.w r4, (r14, 0x14) + 1f70: 6dd3 mov r7, r4 + 1f72: 9886 ld.w r4, (r14, 0x18) + 1f74: b880 st.w r4, (r14, 0x0) + 1f76: 9887 ld.w r4, (r14, 0x1c) + 1f78: 6d93 mov r6, r4 + 1f7a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 1f7c: 6d58 or r5, r6 + 1f7e: 98c0 ld.w r6, (r14, 0x0) + 1f80: 6d58 or r5, r6 + 1f82: 6d5c or r5, r7 + 1f84: 6cd4 or r3, r5 + 1f86: 6c8c or r2, r3 + 1f88: 9081 ld.w r4, (r0, 0x4) + 1f8a: 6c48 or r1, r2 + 1f8c: 6d04 or r4, r1 + 1f8e: 6d9f mov r6, r7 + 1f90: b081 st.w r4, (r0, 0x4) +} + 1f92: 1401 addi r14, r14, 4 + 1f94: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00001f96 : +//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; + 1f96: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 1f98: b044 st.w r2, (r0, 0x10) +} + 1f9a: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00001f9c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 1f9c: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 1f9e: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 1fa0: 0c04 bf 0x1fa8 // 1fa8 + BTx->IMCR |= BT_IMSCR_X; + 1fa2: 6c8c or r2, r3 + 1fa4: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 1fa6: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 1fa8: 68c9 andn r3, r2 + 1faa: b06b st.w r3, (r0, 0x2c) +} + 1fac: 07fd br 0x1fa6 // 1fa6 + +Disassembly of section .text.BT1_INT_ENABLE: + +00001fb0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 1fb0: 3380 movi r3, 128 + 1fb2: 4376 lsli r3, r3, 22 + 1fb4: 1042 lrw r2, 0xe000e100 // 1fbc + 1fb6: b260 st.w r3, (r2, 0x0) +} + 1fb8: 783c jmp r15 + 1fba: 0000 bkpt + 1fbc: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00001fc0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 1fc0: 1067 lrw r3, 0x2000002c // 1fdc + 1fc2: 3200 movi r2, 0 + 1fc4: 9360 ld.w r3, (r3, 0x0) + 1fc6: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 1fc8: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 1fca: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 1fcc: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 1fce: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 1fd0: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 1fd2: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 1fd4: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 1fd6: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 1fd8: b34b st.w r2, (r3, 0x2c) +} + 1fda: 783c jmp r15 + 1fdc: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +00001fe0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 1fe0: 3840 cmpnei r0, 0 + 1fe2: 080a bt 0x1ff6 // 1ff6 + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 1fe4: 1075 lrw r3, 0x2000004c // 2038 + 1fe6: 32f0 movi r2, 240 + 1fe8: 9320 ld.w r1, (r3, 0x0) + 1fea: 9160 ld.w r3, (r1, 0x0) + 1fec: 4244 lsli r2, r2, 4 + 1fee: 68c9 andn r3, r2 + 1ff0: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 1ff2: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 1ff4: 783c jmp r15 + if(IOGx==SIO_PA03) + 1ff6: 3841 cmpnei r0, 1 + 1ff8: 0809 bt 0x200a // 200a + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 1ffa: 1070 lrw r3, 0x2000004c // 2038 + 1ffc: 32f0 movi r2, 240 + 1ffe: 9320 ld.w r1, (r3, 0x0) + 2000: 9160 ld.w r3, (r1, 0x0) + 2002: 4248 lsli r2, r2, 8 + 2004: 68c9 andn r3, r2 + 2006: 3baf bseti r3, 15 + 2008: 07f5 br 0x1ff2 // 1ff2 + if(IOGx==SIO_PA012) + 200a: 3842 cmpnei r0, 2 + 200c: 080a bt 0x2020 // 2020 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 200e: 106b lrw r3, 0x2000004c // 2038 + 2010: 32f0 movi r2, 240 + 2012: 9320 ld.w r1, (r3, 0x0) + 2014: 9161 ld.w r3, (r1, 0x4) + 2016: 424c lsli r2, r2, 12 + 2018: 68c9 andn r3, r2 + 201a: 3bb3 bseti r3, 19 + 201c: b161 st.w r3, (r1, 0x4) + 201e: 07eb br 0x1ff4 // 1ff4 + if(IOGx==SIO_PB01) + 2020: 3843 cmpnei r0, 3 + 2022: 0be9 bt 0x1ff4 // 1ff4 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 2024: 1066 lrw r3, 0x20000048 // 203c + 2026: 31f0 movi r1, 240 + 2028: 9340 ld.w r2, (r3, 0x0) + 202a: 9260 ld.w r3, (r2, 0x0) + 202c: 68c5 andn r3, r1 + 202e: 3170 movi r1, 112 + 2030: 6cc4 or r3, r1 + 2032: b260 st.w r3, (r2, 0x0) +} + 2034: 07e0 br 0x1ff4 // 1ff4 + 2036: 0000 bkpt + 2038: 2000004c .long 0x2000004c + 203c: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +00002040 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 2040: 4130 lsli r1, r1, 16 + 2042: 1063 lrw r3, 0x2000002c // 204c + 2044: 6c04 or r0, r1 + 2046: 9360 ld.w r3, (r3, 0x0) + 2048: b300 st.w r0, (r3, 0x0) + +} + 204a: 783c jmp r15 + 204c: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +00002050 : +//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) +{ + 2050: 14c4 push r4-r7 + 2052: 1423 subi r14, r14, 12 + 2054: 9889 ld.w r4, (r14, 0x24) + 2056: b881 st.w r4, (r14, 0x4) + 2058: 988a ld.w r4, (r14, 0x28) + 205a: b882 st.w r4, (r14, 0x8) + 205c: 1c08 addi r4, r14, 32 + 205e: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2060: 4368 lsli r3, r3, 8 +{ + 2062: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2064: 6cc0 or r3, r0 +{ + 2066: 1c0b addi r4, r14, 44 + 2068: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 206a: 6cc4 or r3, r1 +{ + 206c: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 206e: 4244 lsli r2, r2, 4 + 2070: 10eb lrw r7, 0x2000002c // 209c + 2072: 6cc8 or r3, r2 + 2074: 97e0 ld.w r7, (r7, 0x0) +{ + 2076: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2078: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 207a: 4498 lsli r4, r4, 24 + 207c: 9861 ld.w r3, (r14, 0x4) + 207e: 6d0c or r4, r3 + 2080: 9862 ld.w r3, (r14, 0x8) + 2082: 6d0c or r4, r3 +{ + 2084: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 2088: 9860 ld.w r3, (r14, 0x0) + 208a: 46d0 lsli r6, r6, 16 + 208c: 6d90 or r6, r4 + 208e: 45a2 lsli r5, r5, 2 + 2090: 4385 lsli r4, r3, 5 + 2092: 6d50 or r5, r4 + 2094: 6d58 or r5, r6 + 2096: b7a2 st.w r5, (r7, 0x8) +} + 2098: 1403 addi r14, r14, 12 + 209a: 1484 pop r4-r7 + 209c: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +000020a0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 20a0: 1065 lrw r3, 0x20000040 // 20b4 + 20a2: 3200 movi r2, 0 + 20a4: 9360 ld.w r3, (r3, 0x0) + 20a6: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 20a8: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 20aa: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 20ac: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 20ae: b344 st.w r2, (r3, 0x10) +} + 20b0: 783c jmp r15 + 20b2: 0000 bkpt + 20b4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000020b8 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 20b8: 1065 lrw r3, 0x2000003c // 20cc + 20ba: 3200 movi r2, 0 + 20bc: 9360 ld.w r3, (r3, 0x0) + 20be: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 20c0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 20c2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 20c4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 20c6: b344 st.w r2, (r3, 0x10) +} + 20c8: 783c jmp r15 + 20ca: 0000 bkpt + 20cc: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000020d0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 20d0: 1065 lrw r3, 0x20000038 // 20e4 + 20d2: 3200 movi r2, 0 + 20d4: 9360 ld.w r3, (r3, 0x0) + 20d6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 20d8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 20da: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 20dc: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 20de: b344 st.w r2, (r3, 0x10) +} + 20e0: 783c jmp r15 + 20e2: 0000 bkpt + 20e4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000020e8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 20e8: 1065 lrw r3, 0x20000040 // 20fc + 20ea: 320f movi r2, 15 + 20ec: 9360 ld.w r3, (r3, 0x0) + 20ee: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 20f0: 3380 movi r3, 128 + 20f2: 4366 lsli r3, r3, 6 + 20f4: 1043 lrw r2, 0xe000e100 // 2100 + 20f6: b260 st.w r3, (r2, 0x0) +} + 20f8: 783c jmp r15 + 20fa: 0000 bkpt + 20fc: 20000040 .long 0x20000040 + 2100: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002104 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2104: 1065 lrw r3, 0x20000038 // 2118 + 2106: 320f movi r2, 15 + 2108: 9360 ld.w r3, (r3, 0x0) + 210a: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 210c: 3380 movi r3, 128 + 210e: 4368 lsli r3, r3, 8 + 2110: 1043 lrw r2, 0xe000e100 // 211c + 2112: b260 st.w r3, (r2, 0x0) +} + 2114: 783c jmp r15 + 2116: 0000 bkpt + 2118: 20000038 .long 0x20000038 + 211c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002120 : +//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) + 2120: 3840 cmpnei r0, 0 + 2122: 0821 bt 0x2164 // 2164 + { + if(UART_IO_G==0) + 2124: 3940 cmpnei r1, 0 + 2126: 080a bt 0x213a // 213a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2128: 1177 lrw r3, 0x2000004c // 2204 + 212a: 31ff movi r1, 255 + 212c: 9340 ld.w r2, (r3, 0x0) + 212e: 9260 ld.w r3, (r2, 0x0) + 2130: 68c5 andn r3, r1 + 2132: 3ba2 bseti r3, 2 + 2134: 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 + 2136: b260 st.w r3, (r2, 0x0) + 2138: 0415 br 0x2162 // 2162 + else if(UART_IO_G==1) + 213a: 3941 cmpnei r1, 1 + 213c: 0813 bt 0x2162 // 2162 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 213e: 1172 lrw r3, 0x2000004c // 2204 + 2140: 31f0 movi r1, 240 + 2142: 9340 ld.w r2, (r3, 0x0) + 2144: 9260 ld.w r3, (r2, 0x0) + 2146: 4130 lsli r1, r1, 16 + 2148: 68c5 andn r3, r1 + 214a: 31e0 movi r1, 224 + 214c: 412f lsli r1, r1, 15 + 214e: 6cc4 or r3, r1 + 2150: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2152: 31f0 movi r1, 240 + 2154: 9261 ld.w r3, (r2, 0x4) + 2156: 412c lsli r1, r1, 12 + 2158: 68c5 andn r3, r1 + 215a: 31e0 movi r1, 224 + 215c: 412b lsli r1, r1, 11 + 215e: 6cc4 or r3, r1 + 2160: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2162: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2164: 3841 cmpnei r0, 1 + 2166: 082d bt 0x21c0 // 21c0 + if(UART_IO_G==0) + 2168: 3940 cmpnei r1, 0 + 216a: 0814 bt 0x2192 // 2192 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 216c: 1167 lrw r3, 0x20000048 // 2208 + 216e: 310f movi r1, 15 + 2170: 9340 ld.w r2, (r3, 0x0) + 2172: 9260 ld.w r3, (r2, 0x0) + 2174: 68c5 andn r3, r1 + 2176: 3107 movi r1, 7 + 2178: 6cc4 or r3, r1 + 217a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 217c: 32f0 movi r2, 240 + 217e: 1162 lrw r3, 0x2000004c // 2204 + 2180: 4250 lsli r2, r2, 16 + 2182: 9320 ld.w r1, (r3, 0x0) + 2184: 9161 ld.w r3, (r1, 0x4) + 2186: 68c9 andn r3, r2 + 2188: 32e0 movi r2, 224 + 218a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 218c: 6cc8 or r3, r2 + 218e: b161 st.w r3, (r1, 0x4) + 2190: 07e9 br 0x2162 // 2162 + else if(UART_IO_G==1) + 2192: 3941 cmpnei r1, 1 + 2194: 080c bt 0x21ac // 21ac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 2196: 107c lrw r3, 0x2000004c // 2204 + 2198: 32ff movi r2, 255 + 219a: 9320 ld.w r1, (r3, 0x0) + 219c: 424c lsli r2, r2, 12 + 219e: 9160 ld.w r3, (r1, 0x0) + 21a0: 68c9 andn r3, r2 + 21a2: 32ee movi r2, 238 + 21a4: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 21a6: 6cc8 or r3, r2 + 21a8: b160 st.w r3, (r1, 0x0) +} + 21aa: 07dc br 0x2162 // 2162 + else if(UART_IO_G==2) + 21ac: 3942 cmpnei r1, 2 + 21ae: 0bda bt 0x2162 // 2162 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 21b0: 1075 lrw r3, 0x2000004c // 2204 + 21b2: 32ee movi r2, 238 + 21b4: 9320 ld.w r1, (r3, 0x0) + 21b6: 9161 ld.w r3, (r1, 0x4) + 21b8: 4368 lsli r3, r3, 8 + 21ba: 4b68 lsri r3, r3, 8 + 21bc: 4257 lsli r2, r2, 23 + 21be: 07e7 br 0x218c // 218c + if (IO_UART_NUM==IO_UART2) + 21c0: 3842 cmpnei r0, 2 + 21c2: 0bd0 bt 0x2162 // 2162 + if(UART_IO_G==0) + 21c4: 3940 cmpnei r1, 0 + 21c6: 0809 bt 0x21d8 // 21d8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 21c8: 106f lrw r3, 0x2000004c // 2204 + 21ca: 31ff movi r1, 255 + 21cc: 9340 ld.w r2, (r3, 0x0) + 21ce: 9260 ld.w r3, (r2, 0x0) + 21d0: 68c5 andn r3, r1 + 21d2: 3177 movi r1, 119 + 21d4: 6cc4 or r3, r1 + 21d6: 07b0 br 0x2136 // 2136 + else if(UART_IO_G==1) + 21d8: 3941 cmpnei r1, 1 + 21da: 0809 bt 0x21ec // 21ec + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 21dc: 106a lrw r3, 0x2000004c // 2204 + 21de: 32ee movi r2, 238 + 21e0: 9320 ld.w r1, (r3, 0x0) + 21e2: 9160 ld.w r3, (r1, 0x0) + 21e4: 4368 lsli r3, r3, 8 + 21e6: 4b68 lsri r3, r3, 8 + 21e8: 4257 lsli r2, r2, 23 + 21ea: 07de br 0x21a6 // 21a6 + else if(UART_IO_G==2) + 21ec: 3942 cmpnei r1, 2 + 21ee: 0bba bt 0x2162 // 2162 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 21f0: 1066 lrw r3, 0x20000048 // 2208 + 21f2: 32ff movi r2, 255 + 21f4: 9320 ld.w r1, (r3, 0x0) + 21f6: 4250 lsli r2, r2, 16 + 21f8: 9160 ld.w r3, (r1, 0x0) + 21fa: 68c9 andn r3, r2 + 21fc: 32cc movi r2, 204 + 21fe: 424f lsli r2, r2, 15 + 2200: 07d3 br 0x21a6 // 21a6 + 2202: 0000 bkpt + 2204: 2000004c .long 0x2000004c + 2208: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +0000220c : +//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); + 220c: 1063 lrw r3, 0x80003 // 2218 + 220e: 6c8c or r2, r3 + 2210: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2212: b024 st.w r1, (r0, 0x10) +} + 2214: 783c jmp r15 + 2216: 0000 bkpt + 2218: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +0000221c : +//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); + 221c: 1063 lrw r3, 0x8000f // 2228 + 221e: 6c8c or r2, r3 + 2220: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2222: b024 st.w r1, (r0, 0x10) +} + 2224: 783c jmp r15 + 2226: 0000 bkpt + 2228: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +0000222c : +//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) +{ + 222c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 222e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2230: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2232: 5b85 subu r4, r3, r1 + 2234: 6490 cmphs r4, r2 + 2236: 0c02 bf 0x223a // 223a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2238: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 223a: 8380 ld.b r4, (r3, 0x0) + 223c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 223e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2240: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2242: 3c40 cmpnei r4, 0 + 2244: 0bfd bt 0x223e // 223e + 2246: 2300 addi r3, 1 + 2248: 07f5 br 0x2232 // 2232 + +Disassembly of section .text.EPT_Software_Prg: + +0000224c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 224c: 1067 lrw r3, 0x20000020 // 2268 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 224e: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 2250: 9340 ld.w r2, (r3, 0x0) + 2252: 9260 ld.w r3, (r2, 0x0) + 2254: 3ba0 bseti r3, 0 + 2256: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 2258: 9261 ld.w r3, (r2, 0x4) + 225a: 4128 lsli r1, r1, 8 + 225c: 68c5 andn r3, r1 + 225e: 3bac bseti r3, 12 + 2260: 3bae bseti r3, 14 + 2262: b261 st.w r3, (r2, 0x4) +} + 2264: 783c jmp r15 + 2266: 0000 bkpt + 2268: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +0000226c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 226c: 1068 lrw r3, 0x20000020 // 228c + 226e: 3280 movi r2, 128 + 2270: 9360 ld.w r3, (r3, 0x0) + 2272: 608c addu r2, r3 + 2274: 1027 lrw r1, 0xa55ac73a // 2290 + 2276: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2278: 9341 ld.w r2, (r3, 0x4) + 227a: 3aa0 bseti r2, 0 + 227c: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 227e: 3101 movi r1, 1 + 2280: 9341 ld.w r2, (r3, 0x4) + 2282: 6884 and r2, r1 + 2284: 3a40 cmpnei r2, 0 + 2286: 0ffd bf 0x2280 // 2280 +} + 2288: 783c jmp r15 + 228a: 0000 bkpt + 228c: 20000020 .long 0x20000020 + 2290: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +00002294 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2294: 1068 lrw r3, 0x20000020 // 22b4 + 2296: 3280 movi r2, 128 + 2298: 9360 ld.w r3, (r3, 0x0) + 229a: 608c addu r2, r3 + 229c: 1027 lrw r1, 0xa55ac73a // 22b8 + 229e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 22a0: 9341 ld.w r2, (r3, 0x4) + 22a2: 31fe movi r1, 254 + 22a4: 6884 and r2, r1 + 22a6: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 22a8: 3101 movi r1, 1 + 22aa: 9341 ld.w r2, (r3, 0x4) + 22ac: 6884 and r2, r1 + 22ae: 3a40 cmpnei r2, 0 + 22b0: 0bfd bt 0x22aa // 22aa +} + 22b2: 783c jmp r15 + 22b4: 20000020 .long 0x20000020 + 22b8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +000022bc : +//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) + 22bc: 3840 cmpnei r0, 0 + 22be: 0822 bt 0x2302 // 2302 + { + if(IO_Num_X==IO_NUM_PA07) + 22c0: 3950 cmpnei r1, 16 + 22c2: 080a bt 0x22d6 // 22d6 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 22c4: 0375 lrw r3, 0x2000004c // 24ec + 22c6: 9340 ld.w r2, (r3, 0x0) + 22c8: 9260 ld.w r3, (r2, 0x0) + 22ca: 4364 lsli r3, r3, 4 + 22cc: 4b64 lsri r3, r3, 4 + 22ce: 3bbd bseti r3, 29 + 22d0: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22d2: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 22d4: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 22d6: 3951 cmpnei r1, 17 + 22d8: 080b bt 0x22ee // 22ee + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 22da: 037a lrw r3, 0x2000004c // 24ec + 22dc: 32f0 movi r2, 240 + 22de: 9320 ld.w r1, (r3, 0x0) + 22e0: 9161 ld.w r3, (r1, 0x4) + 22e2: 4244 lsli r2, r2, 4 + 22e4: 68c9 andn r3, r2 + 22e6: 3ba8 bseti r3, 8 + 22e8: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 22ea: b161 st.w r3, (r1, 0x4) + 22ec: 07f4 br 0x22d4 // 22d4 + else if(IO_Num_X==IO_NUM_PA15) + 22ee: 3952 cmpnei r1, 18 + 22f0: 0bf2 bt 0x22d4 // 22d4 + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 22f2: 137f lrw r3, 0x2000004c // 24ec + 22f4: 9340 ld.w r2, (r3, 0x0) + 22f6: 9261 ld.w r3, (r2, 0x4) + 22f8: 4364 lsli r3, r3, 4 + 22fa: 4b64 lsri r3, r3, 4 + 22fc: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 22fe: b261 st.w r3, (r2, 0x4) + 2300: 07ea br 0x22d4 // 22d4 + else if(EPT_IO_X==EPT_IO_CHAY) + 2302: 3841 cmpnei r0, 1 + 2304: 0823 bt 0x234a // 234a + if(IO_Num_X==IO_NUM_PB03) + 2306: 3953 cmpnei r1, 19 + 2308: 080a bt 0x231c // 231c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 230a: 137a lrw r3, 0x20000048 // 24f0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 230c: 9320 ld.w r1, (r3, 0x0) + 230e: 32f0 movi r2, 240 + 2310: 9160 ld.w r3, (r1, 0x0) + 2312: 4248 lsli r2, r2, 8 + 2314: 68c9 andn r3, r2 + 2316: 3bac bseti r3, 12 + 2318: 3bae bseti r3, 14 + 231a: 040b br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PB05) + 231c: 3954 cmpnei r1, 20 + 231e: 080b bt 0x2334 // 2334 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 2320: 1374 lrw r3, 0x20000048 // 24f0 + 2322: 32f0 movi r2, 240 + 2324: 9320 ld.w r1, (r3, 0x0) + 2326: 9160 ld.w r3, (r1, 0x0) + 2328: 4250 lsli r2, r2, 16 + 232a: 68c9 andn r3, r2 + 232c: 3bb4 bseti r3, 20 + 232e: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2330: b160 st.w r3, (r1, 0x0) +} + 2332: 07d1 br 0x22d4 // 22d4 + else if(IO_Num_X==IO_NUM_PA12) + 2334: 3955 cmpnei r1, 21 + 2336: 0bcf bt 0x22d4 // 22d4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 2338: 136d lrw r3, 0x2000004c // 24ec + 233a: 32f0 movi r2, 240 + 233c: 9320 ld.w r1, (r3, 0x0) + 233e: 9161 ld.w r3, (r1, 0x4) + 2340: 424c lsli r2, r2, 12 + 2342: 68c9 andn r3, r2 + 2344: 3bb0 bseti r3, 16 + 2346: 3bb2 bseti r3, 18 + 2348: 07d1 br 0x22ea // 22ea + else if(EPT_IO_X==EPT_IO_CHBX) + 234a: 3842 cmpnei r0, 2 + 234c: 0821 bt 0x238e // 238e + if(IO_Num_X==IO_NUM_PB02) + 234e: 3956 cmpnei r1, 22 + 2350: 080a bt 0x2364 // 2364 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 2352: 1368 lrw r3, 0x20000048 // 24f0 + 2354: 32f0 movi r2, 240 + 2356: 9320 ld.w r1, (r3, 0x0) + 2358: 9160 ld.w r3, (r1, 0x0) + 235a: 4244 lsli r2, r2, 4 + 235c: 68c9 andn r3, r2 + 235e: 3ba9 bseti r3, 9 + 2360: 3baa bseti r3, 10 + 2362: 07e7 br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PA11) + 2364: 3957 cmpnei r1, 23 + 2366: 080a bt 0x237a // 237a + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2368: 1361 lrw r3, 0x2000004c // 24ec + 236a: 32f0 movi r2, 240 + 236c: 9320 ld.w r1, (r3, 0x0) + 236e: 9161 ld.w r3, (r1, 0x4) + 2370: 4248 lsli r2, r2, 8 + 2372: 68c9 andn r3, r2 + 2374: 3bac bseti r3, 12 + 2376: 3bae bseti r3, 14 + 2378: 07b9 br 0x22ea // 22ea + else if(IO_Num_X==IO_NUM_PA14) + 237a: 3958 cmpnei r1, 24 + 237c: 0bac bt 0x22d4 // 22d4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 237e: 127c lrw r3, 0x2000004c // 24ec + 2380: 32f0 movi r2, 240 + 2382: 9320 ld.w r1, (r3, 0x0) + 2384: 9161 ld.w r3, (r1, 0x4) + 2386: 4254 lsli r2, r2, 20 + 2388: 68c9 andn r3, r2 + 238a: 3bba bseti r3, 26 + 238c: 07af br 0x22ea // 22ea + else if(EPT_IO_X==EPT_IO_CHBY) + 238e: 3843 cmpnei r0, 3 + 2390: 0820 bt 0x23d0 // 23d0 + if(IO_Num_X==IO_NUM_PB04) + 2392: 3959 cmpnei r1, 25 + 2394: 080a bt 0x23a8 // 23a8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 2396: 1277 lrw r3, 0x20000048 // 24f0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2398: 9320 ld.w r1, (r3, 0x0) + 239a: 32f0 movi r2, 240 + 239c: 9160 ld.w r3, (r1, 0x0) + 239e: 424c lsli r2, r2, 12 + 23a0: 68c9 andn r3, r2 + 23a2: 3bb0 bseti r3, 16 + 23a4: 3bb2 bseti r3, 18 + 23a6: 07c5 br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PA05) + 23a8: 395a cmpnei r1, 26 + 23aa: 0809 bt 0x23bc // 23bc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 23ac: 1270 lrw r3, 0x2000004c // 24ec + 23ae: 32f0 movi r2, 240 + 23b0: 9320 ld.w r1, (r3, 0x0) + 23b2: 9160 ld.w r3, (r1, 0x0) + 23b4: 4250 lsli r2, r2, 16 + 23b6: 68c9 andn r3, r2 + 23b8: 3bb7 bseti r3, 23 + 23ba: 07bb br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PA08) + 23bc: 395b cmpnei r1, 27 + 23be: 0b8b bt 0x22d4 // 22d4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 23c0: 126b lrw r3, 0x2000004c // 24ec + 23c2: 310f movi r1, 15 + 23c4: 9340 ld.w r2, (r3, 0x0) + 23c6: 9261 ld.w r3, (r2, 0x4) + 23c8: 68c5 andn r3, r1 + 23ca: 3ba0 bseti r3, 0 + 23cc: 3ba2 bseti r3, 2 + 23ce: 0798 br 0x22fe // 22fe + else if(EPT_IO_X==EPT_IO_CHCX) + 23d0: 3844 cmpnei r0, 4 + 23d2: 0823 bt 0x2418 // 2418 + if(IO_Num_X==IO_NUM_PB05) + 23d4: 3954 cmpnei r1, 20 + 23d6: 0809 bt 0x23e8 // 23e8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 23d8: 1266 lrw r3, 0x20000048 // 24f0 + 23da: 32f0 movi r2, 240 + 23dc: 9320 ld.w r1, (r3, 0x0) + 23de: 9160 ld.w r3, (r1, 0x0) + 23e0: 4250 lsli r2, r2, 16 + 23e2: 68c9 andn r3, r2 + 23e4: 3bb6 bseti r3, 22 + 23e6: 07a5 br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PA03) + 23e8: 395c cmpnei r1, 28 + 23ea: 0803 bt 0x23f0 // 23f0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 23ec: 1260 lrw r3, 0x2000004c // 24ec + 23ee: 078f br 0x230c // 230c + else if(IO_Num_X==IO_NUM_PB03) + 23f0: 3953 cmpnei r1, 19 + 23f2: 0809 bt 0x2404 // 2404 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 23f4: 117f lrw r3, 0x20000048 // 24f0 + 23f6: 32f0 movi r2, 240 + 23f8: 9320 ld.w r1, (r3, 0x0) + 23fa: 9160 ld.w r3, (r1, 0x0) + 23fc: 4248 lsli r2, r2, 8 + 23fe: 68c9 andn r3, r2 + 2400: 3bae bseti r3, 14 + 2402: 0797 br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PB00) + 2404: 395d cmpnei r1, 29 + 2406: 0b67 bt 0x22d4 // 22d4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 2408: 117a lrw r3, 0x20000048 // 24f0 + 240a: 310f movi r1, 15 + 240c: 9340 ld.w r2, (r3, 0x0) + 240e: 9260 ld.w r3, (r2, 0x0) + 2410: 68c5 andn r3, r1 + 2412: 3ba0 bseti r3, 0 + 2414: 3ba2 bseti r3, 2 + 2416: 075e br 0x22d2 // 22d2 + else if(EPT_IO_X==EPT_IO_CHCY) + 2418: 3845 cmpnei r0, 5 + 241a: 0825 bt 0x2464 // 2464 + if(IO_Num_X==IO_NUM_PB04) + 241c: 3959 cmpnei r1, 25 + 241e: 0809 bt 0x2430 // 2430 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 2420: 1174 lrw r3, 0x20000048 // 24f0 + 2422: 32f0 movi r2, 240 + 2424: 9320 ld.w r1, (r3, 0x0) + 2426: 9160 ld.w r3, (r1, 0x0) + 2428: 424c lsli r2, r2, 12 + 242a: 68c9 andn r3, r2 + 242c: 3bb2 bseti r3, 18 + 242e: 0781 br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PA04) + 2430: 395e cmpnei r1, 30 + 2432: 0803 bt 0x2438 // 2438 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2434: 116e lrw r3, 0x2000004c // 24ec + 2436: 07b1 br 0x2398 // 2398 + else if(IO_Num_X==IO_NUM_PA09) + 2438: 395f cmpnei r1, 31 + 243a: 0809 bt 0x244c // 244c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 243c: 116c lrw r3, 0x2000004c // 24ec + 243e: 31f0 movi r1, 240 + 2440: 9340 ld.w r2, (r3, 0x0) + 2442: 9261 ld.w r3, (r2, 0x4) + 2444: 68c5 andn r3, r1 + 2446: 3170 movi r1, 112 + 2448: 6cc4 or r3, r1 + 244a: 075a br 0x22fe // 22fe + else if(IO_Num_X==IO_NUM_PA013) + 244c: 3320 movi r3, 32 + 244e: 64c6 cmpne r1, r3 + 2450: 0b42 bt 0x22d4 // 22d4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 2452: 1167 lrw r3, 0x2000004c // 24ec + 2454: 32f0 movi r2, 240 + 2456: 9320 ld.w r1, (r3, 0x0) + 2458: 9161 ld.w r3, (r1, 0x4) + 245a: 4250 lsli r2, r2, 16 + 245c: 68c9 andn r3, r2 + 245e: 3bb4 bseti r3, 20 + 2460: 3bb6 bseti r3, 22 + 2462: 0744 br 0x22ea // 22ea + else if(EPT_IO_X==EPT_IO_CHD) + 2464: 3846 cmpnei r0, 6 + 2466: 0815 bt 0x2490 // 2490 + if(IO_Num_X==IO_NUM_PB03) + 2468: 3953 cmpnei r1, 19 + 246a: 080a bt 0x247e // 247e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 246c: 1161 lrw r3, 0x20000048 // 24f0 + 246e: 32f0 movi r2, 240 + 2470: 9320 ld.w r1, (r3, 0x0) + 2472: 9160 ld.w r3, (r1, 0x0) + 2474: 4248 lsli r2, r2, 8 + 2476: 68c9 andn r3, r2 + 2478: 3bad bseti r3, 13 + 247a: 3bae bseti r3, 14 + 247c: 075a br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PA08) + 247e: 395b cmpnei r1, 27 + 2480: 0b2a bt 0x22d4 // 22d4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2482: 107b lrw r3, 0x2000004c // 24ec + 2484: 310f movi r1, 15 + 2486: 9340 ld.w r2, (r3, 0x0) + 2488: 9261 ld.w r3, (r2, 0x4) + 248a: 68c5 andn r3, r1 + 248c: 3ba2 bseti r3, 2 + 248e: 0738 br 0x22fe // 22fe + else if(EPT_IO_X==EPT_IO_EPI) + 2490: 3847 cmpnei r0, 7 + 2492: 0b21 bt 0x22d4 // 22d4 + if(IO_Num_X==IO_NUM_PA07) + 2494: 3950 cmpnei r1, 16 + 2496: 0809 bt 0x24a8 // 24a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2498: 1075 lrw r3, 0x2000004c // 24ec + 249a: 9340 ld.w r2, (r3, 0x0) + 249c: 9260 ld.w r3, (r2, 0x0) + 249e: 4364 lsli r3, r3, 4 + 24a0: 4b64 lsri r3, r3, 4 + 24a2: 3bbc bseti r3, 28 + 24a4: 3bbe bseti r3, 30 + 24a6: 0716 br 0x22d2 // 22d2 + else if(IO_Num_X==IO_NUM_PA013) + 24a8: 3320 movi r3, 32 + 24aa: 64c6 cmpne r1, r3 + 24ac: 0809 bt 0x24be // 24be + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 24ae: 1070 lrw r3, 0x2000004c // 24ec + 24b0: 32f0 movi r2, 240 + 24b2: 9320 ld.w r1, (r3, 0x0) + 24b4: 9161 ld.w r3, (r1, 0x4) + 24b6: 4250 lsli r2, r2, 16 + 24b8: 68c9 andn r3, r2 + 24ba: 3bb6 bseti r3, 22 + 24bc: 0717 br 0x22ea // 22ea + else if(IO_Num_X==IO_NUM_PB03) + 24be: 3953 cmpnei r1, 19 + 24c0: 080b bt 0x24d6 // 24d6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 24c2: 106c lrw r3, 0x20000048 // 24f0 + 24c4: 32f0 movi r2, 240 + 24c6: 9320 ld.w r1, (r3, 0x0) + 24c8: 4248 lsli r2, r2, 8 + 24ca: 9160 ld.w r3, (r1, 0x0) + 24cc: 68c9 andn r3, r2 + 24ce: 32e0 movi r2, 224 + 24d0: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 24d2: 6cc8 or r3, r2 + 24d4: 072e br 0x2330 // 2330 + else if(IO_Num_X==IO_NUM_PB02) + 24d6: 3956 cmpnei r1, 22 + 24d8: 0afe bt 0x22d4 // 22d4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 24da: 1066 lrw r3, 0x20000048 // 24f0 + 24dc: 32f0 movi r2, 240 + 24de: 9320 ld.w r1, (r3, 0x0) + 24e0: 4244 lsli r2, r2, 4 + 24e2: 9160 ld.w r3, (r1, 0x0) + 24e4: 68c9 andn r3, r2 + 24e6: 32e0 movi r2, 224 + 24e8: 4243 lsli r2, r2, 3 + 24ea: 07f4 br 0x24d2 // 24d2 + 24ec: 2000004c .long 0x2000004c + 24f0: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +000024f4 : +//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) +{ + 24f4: 14c3 push r4-r6 + 24f6: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 24f8: 104b lrw r2, 0x20000020 // 2524 + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 24fa: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 24fc: 92a0 ld.w r5, (r2, 0x0) + 24fe: 9580 ld.w r4, (r5, 0x0) + 2500: 32ff movi r2, 255 + 2502: 6909 andn r4, r2 + 2504: 3ca0 bseti r4, 0 + 2506: 3ca1 bseti r4, 1 + 2508: 6d00 or r4, r0 + 250a: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 250c: 0802 bt 0x2510 // 2510 + { + EPT0->PSCR=EPT_PSCR; + 250e: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 2510: 9543 ld.w r2, (r5, 0xc) + 2512: 1066 lrw r3, 0x7003f // 2528 + 2514: 688d andn r2, r3 + 2516: 6c98 or r2, r6 + 2518: 3aa2 bseti r2, 2 + 251a: 3ab2 bseti r2, 18 + 251c: 6c48 or r1, r2 + 251e: b523 st.w r1, (r5, 0xc) +} + 2520: 1483 pop r4-r6 + 2522: 0000 bkpt + 2524: 20000020 .long 0x20000020 + 2528: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +0000252c : + 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 + ) +{ + 252c: 14c4 push r4-r7 + 252e: 1425 subi r14, r14, 20 + 2530: 9889 ld.w r4, (r14, 0x24) + 2532: b880 st.w r4, (r14, 0x0) + 2534: 988a ld.w r4, (r14, 0x28) + 2536: b881 st.w r4, (r14, 0x4) + 2538: 988b ld.w r4, (r14, 0x2c) + 253a: b882 st.w r4, (r14, 0x8) + 253c: 988c ld.w r4, (r14, 0x30) + 253e: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 2540: 3840 cmpnei r0, 0 +{ + 2542: 988d ld.w r4, (r14, 0x34) + 2544: b884 st.w r4, (r14, 0x10) + 2546: 98ce ld.w r6, (r14, 0x38) + 2548: 98ef ld.w r7, (r14, 0x3c) + 254a: 98b0 ld.w r5, (r14, 0x40) + 254c: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 254e: 0816 bt 0x257a // 257a + { + 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; + 2550: 6d14 or r4, r5 + 2552: 6d1c or r4, r7 + 2554: 98a4 ld.w r5, (r14, 0x10) + 2556: 6d18 or r4, r6 + 2558: 6d14 or r4, r5 + 255a: 98a3 ld.w r5, (r14, 0xc) + 255c: 6d14 or r4, r5 + 255e: 98a2 ld.w r5, (r14, 0x8) + 2560: 6d14 or r4, r5 + 2562: 98a1 ld.w r5, (r14, 0x4) + 2564: 6d14 or r4, r5 + 2566: 98a0 ld.w r5, (r14, 0x0) + 2568: 6d14 or r4, r5 + 256a: 6cd0 or r3, r4 + 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| + 256c: 1105 lrw r0, 0x20000020 // 2600 + 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; + 256e: 6c8c or r2, r3 + 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| + 2570: 9000 ld.w r0, (r0, 0x0) + 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; + 2572: 6c48 or r1, r2 + 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| + 2574: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 2576: 1405 addi r14, r14, 20 + 2578: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 257a: 3841 cmpnei r0, 1 + 257c: 0815 bt 0x25a6 // 25a6 + 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; + 257e: 6d14 or r4, r5 + 2580: 6d1c or r4, r7 + 2582: 98a4 ld.w r5, (r14, 0x10) + 2584: 6d18 or r4, r6 + 2586: 6d14 or r4, r5 + 2588: 98a3 ld.w r5, (r14, 0xc) + 258a: 6d14 or r4, r5 + 258c: 98a2 ld.w r5, (r14, 0x8) + 258e: 6d14 or r4, r5 + 2590: 98a1 ld.w r5, (r14, 0x4) + 2592: 6d14 or r4, r5 + 2594: 98a0 ld.w r5, (r14, 0x0) + 2596: 6d14 or r4, r5 + 2598: 6cd0 or r3, r4 + 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| + 259a: 101a lrw r0, 0x20000020 // 2600 + 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; + 259c: 6c8c or r2, r3 + 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| + 259e: 9000 ld.w r0, (r0, 0x0) + 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; + 25a0: 6c48 or r1, r2 + 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| + 25a2: b033 st.w r1, (r0, 0x4c) + 25a4: 07e9 br 0x2576 // 2576 + else if(EPT_PWMX_Selecte==EPT_PWMC) + 25a6: 3842 cmpnei r0, 2 + 25a8: 0815 bt 0x25d2 // 25d2 + 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; + 25aa: 6d14 or r4, r5 + 25ac: 6d1c or r4, r7 + 25ae: 98a4 ld.w r5, (r14, 0x10) + 25b0: 6d18 or r4, r6 + 25b2: 6d14 or r4, r5 + 25b4: 98a3 ld.w r5, (r14, 0xc) + 25b6: 6d14 or r4, r5 + 25b8: 98a2 ld.w r5, (r14, 0x8) + 25ba: 6d14 or r4, r5 + 25bc: 98a1 ld.w r5, (r14, 0x4) + 25be: 6d14 or r4, r5 + 25c0: 98a0 ld.w r5, (r14, 0x0) + 25c2: 6d14 or r4, r5 + 25c4: 6cd0 or r3, r4 + 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| + 25c6: 100f lrw r0, 0x20000020 // 2600 + 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; + 25c8: 6c8c or r2, r3 + 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| + 25ca: 9000 ld.w r0, (r0, 0x0) + 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; + 25cc: 6c48 or r1, r2 + 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| + 25ce: b034 st.w r1, (r0, 0x50) + 25d0: 07d3 br 0x2576 // 2576 + else if(EPT_PWMX_Selecte==EPT_PWMD) + 25d2: 3843 cmpnei r0, 3 + 25d4: 0bd1 bt 0x2576 // 2576 + 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; + 25d6: 6d14 or r4, r5 + 25d8: 6d1c or r4, r7 + 25da: 98a4 ld.w r5, (r14, 0x10) + 25dc: 6d18 or r4, r6 + 25de: 6d14 or r4, r5 + 25e0: 98a3 ld.w r5, (r14, 0xc) + 25e2: 6d14 or r4, r5 + 25e4: 98a2 ld.w r5, (r14, 0x8) + 25e6: 6d14 or r4, r5 + 25e8: 98a1 ld.w r5, (r14, 0x4) + 25ea: 6d14 or r4, r5 + 25ec: 98a0 ld.w r5, (r14, 0x0) + 25ee: 6d14 or r4, r5 + 25f0: 6cd0 or r3, r4 + 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| + 25f2: 1004 lrw r0, 0x20000020 // 2600 + 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; + 25f4: 6c8c or r2, r3 + 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| + 25f6: 9000 ld.w r0, (r0, 0x0) + 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; + 25f8: 6c48 or r1, r2 + 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| + 25fa: b035 st.w r1, (r0, 0x54) +} + 25fc: 07bd br 0x2576 // 2576 + 25fe: 0000 bkpt + 2600: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +00002604 : +//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) +{ + 2604: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 2606: 1086 lrw r4, 0x20000020 // 261c +{ + 2608: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 260c: 9480 ld.w r4, (r4, 0x0) + 260e: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 2610: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 2612: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 2614: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 2616: b4ae st.w r5, (r4, 0x38) +} + 2618: 1482 pop r4-r5 + 261a: 0000 bkpt + 261c: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002620 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2620: 1078 lrw r3, 0x20000050 // 2680 + 2622: 3200 movi r2, 0 + 2624: 9360 ld.w r3, (r3, 0x0) + 2626: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2628: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 262a: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 262c: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 262e: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2630: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 2632: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 2634: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 2636: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2638: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 263a: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 263c: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 263e: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2640: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 2642: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 2644: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 2646: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2648: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 264a: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 264c: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 264e: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2650: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 2652: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2654: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 2656: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2658: 23ff addi r3, 256 + 265a: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 265c: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 265e: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2660: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 2662: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2664: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 2666: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2668: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 266a: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 266c: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 266e: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2670: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 2672: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2674: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 2676: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2678: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 267a: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 267c: b351 st.w r2, (r3, 0x44) +} + 267e: 783c jmp r15 + 2680: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002684 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2684: 1063 lrw r3, 0x20000050 // 2690 + 2686: 9340 ld.w r2, (r3, 0x0) + 2688: 9264 ld.w r3, (r2, 0x10) + 268a: 6c0c or r0, r3 + 268c: b204 st.w r0, (r2, 0x10) +} + 268e: 783c jmp r15 + 2690: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002694 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2694: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 2696: 3002 movi r0, 2 + 2698: e3fffff6 bsr 0x2684 // 2684 + while(!(ADC0->SR &ADC12_ADCENS)); + 269c: 1065 lrw r3, 0x20000050 // 26b0 + 269e: 3280 movi r2, 128 + 26a0: 9320 ld.w r1, (r3, 0x0) + 26a2: 4241 lsli r2, r2, 1 + 26a4: 9168 ld.w r3, (r1, 0x20) + 26a6: 68c8 and r3, r2 + 26a8: 3b40 cmpnei r3, 0 + 26aa: 0ffd bf 0x26a4 // 26a4 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 26ac: 1490 pop r15 + 26ae: 0000 bkpt + 26b0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +000026b4 : + if (NewState != DISABLE) + 26b4: 3940 cmpnei r1, 0 + 26b6: 106a lrw r3, 0x20000050 // 26dc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 26b8: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 26ba: 0c09 bf 0x26cc // 26cc + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 26bc: 9260 ld.w r3, (r2, 0x0) + 26be: 6cc0 or r3, r0 + 26c0: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 26c2: 9262 ld.w r3, (r2, 0x8) + 26c4: 68c0 and r3, r0 + 26c6: 3b40 cmpnei r3, 0 + 26c8: 0ffd bf 0x26c2 // 26c2 +} + 26ca: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 26cc: 9261 ld.w r3, (r2, 0x4) + 26ce: 6cc0 or r3, r0 + 26d0: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 26d2: 9262 ld.w r3, (r2, 0x8) + 26d4: 68c0 and r3, r0 + 26d6: 3b40 cmpnei r3, 0 + 26d8: 0bfd bt 0x26d2 // 26d2 + 26da: 07f8 br 0x26ca // 26ca + 26dc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +000026e0 : +{ + 26e0: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 26e2: 3001 movi r0, 1 + 26e4: e3ffffd0 bsr 0x2684 // 2684 +} + 26e8: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000026ec : +{ + 26ec: 14d0 push r15 + if (NewState != DISABLE) + 26ee: 3840 cmpnei r0, 0 + 26f0: 0c04 bf 0x26f8 // 26f8 + 26f2: e3ffffd1 bsr 0x2694 // 2694 +} + 26f6: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 26f8: 3004 movi r0, 4 + 26fa: e3ffffc5 bsr 0x2684 // 2684 + while(ADC0->SR&ADC12_ADCENS); + 26fe: 1065 lrw r3, 0x20000050 // 2710 + 2700: 3280 movi r2, 128 + 2702: 9320 ld.w r1, (r3, 0x0) + 2704: 4241 lsli r2, r2, 1 + 2706: 9168 ld.w r3, (r1, 0x20) + 2708: 68c8 and r3, r2 + 270a: 3b40 cmpnei r3, 0 + 270c: 0bfd bt 0x2706 // 2706 + 270e: 07f4 br 0x26f6 // 26f6 + 2710: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00002714 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 2714: 1064 lrw r3, 0x20000050 // 2724 + 2716: 3202 movi r2, 2 + 2718: 9320 ld.w r1, (r3, 0x0) + 271a: 9168 ld.w r3, (r1, 0x20) + 271c: 68c8 and r3, r2 + 271e: 3b40 cmpnei r3, 0 + 2720: 0ffd bf 0x271a // 271a +} + 2722: 783c jmp r15 + 2724: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002728 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2728: 200f addi r0, 16 + 272a: 1065 lrw r3, 0x20000050 // 273c + 272c: 3201 movi r2, 1 + 272e: 9320 ld.w r1, (r3, 0x0) + 2730: 7080 lsl r2, r0 + 2732: 9168 ld.w r3, (r1, 0x20) + 2734: 68c8 and r3, r2 + 2736: 3b40 cmpnei r3, 0 + 2738: 0ffd bf 0x2732 // 2732 +} + 273a: 783c jmp r15 + 273c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002740 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2740: 203f addi r0, 64 + 2742: 1064 lrw r3, 0x20000050 // 2750 + 2744: 4002 lsli r0, r0, 2 + 2746: 9360 ld.w r3, (r3, 0x0) + 2748: 600c addu r0, r3 + 274a: 9000 ld.w r0, (r0, 0x0) + 274c: 7401 zexth r0, r0 +} + 274e: 783c jmp r15 + 2750: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002754 : + //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 ) +{ + 2754: 14d4 push r4-r7, r15 + 2756: 1422 subi r14, r14, 8 + 2758: 1c08 addi r4, r14, 32 + 275a: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 275c: 2d00 subi r5, 1 +{ + 275e: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2760: 10db lrw r6, 0x20000050 // 27cc +{ + 2762: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2766: 45aa lsli r5, r5, 10 + 2768: 9680 ld.w r4, (r6, 0x0) + 276a: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 276c: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 276e: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2770: 081c bt 0x27a8 // 27a8 + { + ADC0->MR&=~CONTCV; //one short mode + 2772: 9425 ld.w r1, (r4, 0x14) + 2774: 4121 lsli r1, r1, 1 + 2776: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2778: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 277a: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 277c: 4002 lsli r0, r0, 2 + 277e: 9428 ld.w r1, (r4, 0x20) + 2780: 6840 and r1, r0 + 2782: 3940 cmpnei r1, 0 + 2784: 0bfd bt 0x277e // 277e + 2786: b861 st.w r3, (r14, 0x4) + 2788: b840 st.w r2, (r14, 0x0) + 278a: e3ffff85 bsr 0x2694 // 2694 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 278e: 3f40 cmpnei r7, 0 + 2790: 9840 ld.w r2, (r14, 0x0) + 2792: 9861 ld.w r3, (r14, 0x4) + 2794: 0c16 bf 0x27c0 // 27c0 + { + ADC0->CR|=ADC12_10BITor12BIT; + 2796: 9600 ld.w r0, (r6, 0x0) + 2798: 9024 ld.w r1, (r0, 0x10) + 279a: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 279c: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 279e: 9620 ld.w r1, (r6, 0x0) + 27a0: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 27a2: b166 st.w r3, (r1, 0x18) +} + 27a4: 1402 addi r14, r14, 8 + 27a6: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 27a8: 3941 cmpnei r1, 1 + 27aa: 0bee bt 0x2786 // 2786 + ADC0->MR|=CONTCV; //Continuous mode + 27ac: 9425 ld.w r1, (r4, 0x14) + 27ae: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 27b0: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 27b2: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 27b4: 4002 lsli r0, r0, 2 + 27b6: 9428 ld.w r1, (r4, 0x20) + 27b8: 6840 and r1, r0 + 27ba: 3940 cmpnei r1, 0 + 27bc: 0ffd bf 0x27b6 // 27b6 + 27be: 07e4 br 0x2786 // 2786 + ADC0->CR&=~ADC12_10BITor12BIT; + 27c0: 9600 ld.w r0, (r6, 0x0) + 27c2: 9024 ld.w r1, (r0, 0x10) + 27c4: 4121 lsli r1, r1, 1 + 27c6: 4921 lsri r1, r1, 1 + 27c8: 07ea br 0x279c // 279c + 27ca: 0000 bkpt + 27cc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +000027d0 : +//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) + 27d0: 3840 cmpnei r0, 0 + 27d2: 0808 bt 0x27e2 // 27e2 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 27d4: 127c lrw r3, 0x20000050 // 2944 + 27d6: 123d lrw r1, 0x103c0 // 2948 + 27d8: 9340 ld.w r2, (r3, 0x0) + 27da: 9264 ld.w r3, (r2, 0x10) + 27dc: 68c5 andn r3, r1 + 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); + 27de: b264 st.w r3, (r2, 0x10) + } +} + 27e0: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 27e2: 3841 cmpnei r0, 1 + 27e4: 0810 bt 0x2804 // 2804 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27e6: 127a lrw r3, 0x2000004c // 294c + 27e8: 32f0 movi r2, 240 + 27ea: 9320 ld.w r1, (r3, 0x0) + 27ec: 9160 ld.w r3, (r1, 0x0) + 27ee: 4244 lsli r2, r2, 4 + 27f0: 68c9 andn r3, r2 + 27f2: 3bab bseti r3, 11 + 27f4: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 27f6: 1235 lrw r1, 0x103c0 // 2948 + 27f8: 1273 lrw r3, 0x20000050 // 2944 + 27fa: 9340 ld.w r2, (r3, 0x0) + 27fc: 9264 ld.w r3, (r2, 0x10) + 27fe: 68c5 andn r3, r1 + 2800: 3ba6 bseti r3, 6 + 2802: 07ee br 0x27de // 27de + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 2804: 3842 cmpnei r0, 2 + 2806: 0811 bt 0x2828 // 2828 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2808: 1271 lrw r3, 0x2000004c // 294c + 280a: 32f0 movi r2, 240 + 280c: 9320 ld.w r1, (r3, 0x0) + 280e: 9160 ld.w r3, (r1, 0x0) + 2810: 4244 lsli r2, r2, 4 + 2812: 68c9 andn r3, r2 + 2814: 3bab bseti r3, 11 + 2816: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2818: 122e lrw r1, 0x30103c0 // 2950 + 281a: 126b lrw r3, 0x20000050 // 2944 + 281c: 9340 ld.w r2, (r3, 0x0) + 281e: 9264 ld.w r3, (r2, 0x10) + 2820: 68c5 andn r3, r1 + 2822: 3ba7 bseti r3, 7 + 2824: 3bb8 bseti r3, 24 + 2826: 07dc br 0x27de // 27de + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2828: 3843 cmpnei r0, 3 + 282a: 0811 bt 0x284c // 284c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 282c: 1268 lrw r3, 0x2000004c // 294c + 282e: 32f0 movi r2, 240 + 2830: 9320 ld.w r1, (r3, 0x0) + 2832: 9160 ld.w r3, (r1, 0x0) + 2834: 4244 lsli r2, r2, 4 + 2836: 68c9 andn r3, r2 + 2838: 3bab bseti r3, 11 + 283a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 283c: 1225 lrw r1, 0x30103c0 // 2950 + 283e: 1262 lrw r3, 0x20000050 // 2944 + 2840: 9340 ld.w r2, (r3, 0x0) + 2842: 9264 ld.w r3, (r2, 0x10) + 2844: 68c5 andn r3, r1 + 2846: 1224 lrw r1, 0x30000c0 // 2954 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2848: 6cc4 or r3, r1 + 284a: 07ca br 0x27de // 27de + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 284c: 3845 cmpnei r0, 5 + 284e: 0809 bt 0x2860 // 2860 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2850: 117d lrw r3, 0x20000050 // 2944 + 2852: 1222 lrw r1, 0x503c0 // 2958 + 2854: 9340 ld.w r2, (r3, 0x0) + 2856: 9264 ld.w r3, (r2, 0x10) + 2858: 68c5 andn r3, r1 + 285a: 3ba8 bseti r3, 8 + 285c: 3bb2 bseti r3, 18 + 285e: 07c0 br 0x27de // 27de + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2860: 3846 cmpnei r0, 6 + 2862: 0812 bt 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2864: 117a lrw r3, 0x2000004c // 294c + 2866: 32f0 movi r2, 240 + 2868: 9320 ld.w r1, (r3, 0x0) + 286a: 9160 ld.w r3, (r1, 0x0) + 286c: 4248 lsli r2, r2, 8 + 286e: 68c9 andn r3, r2 + 2870: 32b0 movi r2, 176 + 2872: 4248 lsli r2, r2, 8 + 2874: 6cc8 or r3, r2 + 2876: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2878: 1134 lrw r1, 0x103c0 // 2948 + 287a: 1173 lrw r3, 0x20000050 // 2944 + 287c: 9340 ld.w r2, (r3, 0x0) + 287e: 9264 ld.w r3, (r2, 0x10) + 2880: 68c5 andn r3, r1 + 2882: 3ba9 bseti r3, 9 + 2884: 07ad br 0x27de // 27de + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2886: 3847 cmpnei r0, 7 + 2888: 0819 bt 0x28ba // 28ba + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 288a: 1171 lrw r3, 0x2000004c // 294c + 288c: 31f0 movi r1, 240 + 288e: 9340 ld.w r2, (r3, 0x0) + 2890: 9260 ld.w r3, (r2, 0x0) + 2892: 4128 lsli r1, r1, 8 + 2894: 68c5 andn r3, r1 + 2896: 31b0 movi r1, 176 + 2898: 4128 lsli r1, r1, 8 + 289a: 6cc4 or r3, r1 + 289c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 289e: 31f0 movi r1, 240 + 28a0: 9260 ld.w r3, (r2, 0x0) + 28a2: 4124 lsli r1, r1, 4 + 28a4: 68c5 andn r3, r1 + 28a6: 3bab bseti r3, 11 + 28a8: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 28aa: 1128 lrw r1, 0x103c0 // 2948 + 28ac: 1166 lrw r3, 0x20000050 // 2944 + 28ae: 9340 ld.w r2, (r3, 0x0) + 28b0: 9264 ld.w r3, (r2, 0x10) + 28b2: 68c5 andn r3, r1 + 28b4: 3ba6 bseti r3, 6 + 28b6: 3ba9 bseti r3, 9 + 28b8: 0793 br 0x27de // 27de + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 28ba: 3848 cmpnei r0, 8 + 28bc: 0818 bt 0x28ec // 28ec + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 28be: 1164 lrw r3, 0x2000004c // 294c + 28c0: 31f0 movi r1, 240 + 28c2: 9340 ld.w r2, (r3, 0x0) + 28c4: 9260 ld.w r3, (r2, 0x0) + 28c6: 4128 lsli r1, r1, 8 + 28c8: 68c5 andn r3, r1 + 28ca: 31b0 movi r1, 176 + 28cc: 4128 lsli r1, r1, 8 + 28ce: 6cc4 or r3, r1 + 28d0: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 28d2: 31f0 movi r1, 240 + 28d4: 9260 ld.w r3, (r2, 0x0) + 28d6: 4124 lsli r1, r1, 4 + 28d8: 68c5 andn r3, r1 + 28da: 3bab bseti r3, 11 + 28dc: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 28de: 103d lrw r1, 0x30103c0 // 2950 + 28e0: 1079 lrw r3, 0x20000050 // 2944 + 28e2: 9340 ld.w r2, (r3, 0x0) + 28e4: 9264 ld.w r3, (r2, 0x10) + 28e6: 68c5 andn r3, r1 + 28e8: 103d lrw r1, 0x1000280 // 295c + 28ea: 07af br 0x2848 // 2848 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 28ec: 3849 cmpnei r0, 9 + 28ee: 0818 bt 0x291e // 291e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 28f0: 1077 lrw r3, 0x2000004c // 294c + 28f2: 31f0 movi r1, 240 + 28f4: 9340 ld.w r2, (r3, 0x0) + 28f6: 9260 ld.w r3, (r2, 0x0) + 28f8: 4128 lsli r1, r1, 8 + 28fa: 68c5 andn r3, r1 + 28fc: 31b0 movi r1, 176 + 28fe: 4128 lsli r1, r1, 8 + 2900: 6cc4 or r3, r1 + 2902: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2904: 31f0 movi r1, 240 + 2906: 9260 ld.w r3, (r2, 0x0) + 2908: 4124 lsli r1, r1, 4 + 290a: 68c5 andn r3, r1 + 290c: 3bab bseti r3, 11 + 290e: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2910: 1030 lrw r1, 0x30103c0 // 2950 + 2912: 106d lrw r3, 0x20000050 // 2944 + 2914: 9340 ld.w r2, (r3, 0x0) + 2916: 9264 ld.w r3, (r2, 0x10) + 2918: 68c5 andn r3, r1 + 291a: 1032 lrw r1, 0x30002c0 // 2960 + 291c: 0796 br 0x2848 // 2848 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 291e: 384b cmpnei r0, 11 + 2920: 0b60 bt 0x27e0 // 27e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2922: 106b lrw r3, 0x2000004c // 294c + 2924: 32f0 movi r2, 240 + 2926: 9320 ld.w r1, (r3, 0x0) + 2928: 9160 ld.w r3, (r1, 0x0) + 292a: 4248 lsli r2, r2, 8 + 292c: 68c9 andn r3, r2 + 292e: 32b0 movi r2, 176 + 2930: 4248 lsli r2, r2, 8 + 2932: 6cc8 or r3, r2 + 2934: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2936: 1029 lrw r1, 0x503c0 // 2958 + 2938: 1063 lrw r3, 0x20000050 // 2944 + 293a: 9340 ld.w r2, (r3, 0x0) + 293c: 9264 ld.w r3, (r2, 0x10) + 293e: 68c5 andn r3, r1 + 2940: 1029 lrw r1, 0x40300 // 2964 + 2942: 0783 br 0x2848 // 2848 + 2944: 20000050 .long 0x20000050 + 2948: 000103c0 .long 0x000103c0 + 294c: 2000004c .long 0x2000004c + 2950: 030103c0 .long 0x030103c0 + 2954: 030000c0 .long 0x030000c0 + 2958: 000503c0 .long 0x000503c0 + 295c: 01000280 .long 0x01000280 + 2960: 030002c0 .long 0x030002c0 + 2964: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002968 : +//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) +{ + 2968: 14d4 push r4-r7, r15 + 296a: 1421 subi r14, r14, 4 + 296c: b840 st.w r2, (r14, 0x0) + 296e: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2970: 125b lrw r2, 0x20000050 // 2adc + 2972: 92c0 ld.w r6, (r2, 0x0) + 2974: 3200 movi r2, 0 + 2976: 4202 lsli r0, r2, 2 + 2978: 6018 addu r0, r6 + 297a: 908c ld.w r4, (r0, 0x30) + 297c: 2200 addi r2, 1 + 297e: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2980: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2982: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2984: 0bf9 bt 0x2976 // 2976 + } + switch(ADC12_ADCINX) + 2986: 3d0f cmphsi r5, 16 + 2988: 0825 bt 0x29d2 // 29d2 + 298a: 6c17 mov r0, r5 + 298c: 1255 lrw r2, 0x2000004c // 2ae0 + 298e: 1296 lrw r4, 0x20000048 // 2ae4 + 2990: e3fff1b6 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2994: 322c1408 .long 0x322c1408 + 2998: 4d474039 .long 0x4d474039 + 299c: 756d6559 .long 0x756d6559 + 29a0: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 29a4: 9240 ld.w r2, (r2, 0x0) + 29a6: 9200 ld.w r0, (r2, 0x0) + 29a8: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29aa: 9201 ld.w r0, (r2, 0x4) + 29ac: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 29ae: 9400 ld.w r0, (r4, 0x0) + 29b0: 9040 ld.w r2, (r0, 0x0) + 29b2: 34f0 movi r4, 240 + 29b4: 6891 andn r2, r4 + 29b6: 3aa4 bseti r2, 4 + 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; + 29b8: b040 st.w r2, (r0, 0x0) + break; + 29ba: 040c br 0x29d2 // 29d2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 29bc: 9200 ld.w r0, (r2, 0x0) + 29be: 9040 ld.w r2, (r0, 0x0) + 29c0: 370f movi r7, 15 + 29c2: 689d andn r2, r7 + 29c4: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 29c6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29c8: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 29ca: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 29cc: 9440 ld.w r2, (r4, 0x0) + 29ce: 9200 ld.w r0, (r2, 0x0) + 29d0: b200 st.w r0, (r2, 0x0) + 29d2: 4362 lsli r3, r3, 2 + 29d4: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 29d6: 966c ld.w r3, (r6, 0x30) + 29d8: 3300 movi r3, 0 + 29da: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 29dc: 9860 ld.w r3, (r14, 0x0) + 29de: 6c4c or r1, r3 + 29e0: 964c ld.w r2, (r6, 0x30) + 29e2: 6d44 or r5, r1 + 29e4: 6d48 or r5, r2 + 29e6: b6ac st.w r5, (r6, 0x30) +} + 29e8: 1401 addi r14, r14, 4 + 29ea: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 29ec: 9200 ld.w r0, (r2, 0x0) + 29ee: 9040 ld.w r2, (r0, 0x0) + 29f0: 37f0 movi r7, 240 + 29f2: 689d andn r2, r7 + 29f4: 3aa4 bseti r2, 4 + 29f6: 07e8 br 0x29c6 // 29c6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 29f8: 9200 ld.w r0, (r2, 0x0) + 29fa: 37f0 movi r7, 240 + 29fc: 9040 ld.w r2, (r0, 0x0) + 29fe: 47e8 lsli r7, r7, 8 + 2a00: 689d andn r2, r7 + 2a02: 3aac bseti r2, 12 + 2a04: 07e1 br 0x29c6 // 29c6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 2a06: 9200 ld.w r0, (r2, 0x0) + 2a08: 37f0 movi r7, 240 + 2a0a: 9040 ld.w r2, (r0, 0x0) + 2a0c: 47f0 lsli r7, r7, 16 + 2a0e: 689d andn r2, r7 + 2a10: 3ab4 bseti r2, 20 + 2a12: 07da br 0x29c6 // 29c6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2a14: 9200 ld.w r0, (r2, 0x0) + 2a16: 37f0 movi r7, 240 + 2a18: 9040 ld.w r2, (r0, 0x0) + 2a1a: 47f4 lsli r7, r7, 20 + 2a1c: 689d andn r2, r7 + 2a1e: 3ab8 bseti r2, 24 + 2a20: 07d3 br 0x29c6 // 29c6 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2a22: 9200 ld.w r0, (r2, 0x0) + 2a24: 9040 ld.w r2, (r0, 0x0) + 2a26: 4244 lsli r2, r2, 4 + 2a28: 4a44 lsri r2, r2, 4 + 2a2a: 3abc bseti r2, 28 + 2a2c: 07cd br 0x29c6 // 29c6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 2a2e: 9240 ld.w r2, (r2, 0x0) + 2a30: 9200 ld.w r0, (r2, 0x0) + 2a32: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2a34: 9201 ld.w r0, (r2, 0x4) + 2a36: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2a38: 9400 ld.w r0, (r4, 0x0) + 2a3a: 34f0 movi r4, 240 + 2a3c: 9040 ld.w r2, (r0, 0x0) + 2a3e: 4484 lsli r4, r4, 4 + 2a40: 6891 andn r2, r4 + 2a42: 3aa8 bseti r2, 8 + 2a44: 07ba br 0x29b8 // 29b8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2a46: 9240 ld.w r2, (r2, 0x0) + 2a48: 9200 ld.w r0, (r2, 0x0) + 2a4a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2a4c: 9201 ld.w r0, (r2, 0x4) + 2a4e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2a50: 9400 ld.w r0, (r4, 0x0) + 2a52: 34f0 movi r4, 240 + 2a54: 9040 ld.w r2, (r0, 0x0) + 2a56: 4488 lsli r4, r4, 8 + 2a58: 6891 andn r2, r4 + 2a5a: 3aac bseti r2, 12 + 2a5c: 07ae br 0x29b8 // 29b8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 2a5e: 9200 ld.w r0, (r2, 0x0) + 2a60: 9040 ld.w r2, (r0, 0x0) + 2a62: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2a64: 9041 ld.w r2, (r0, 0x4) + 2a66: 370f movi r7, 15 + 2a68: 689d andn r2, r7 + 2a6a: 3aa0 bseti r2, 0 + 2a6c: 07af br 0x29ca // 29ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2a6e: 9200 ld.w r0, (r2, 0x0) + 2a70: 9040 ld.w r2, (r0, 0x0) + 2a72: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2a74: 9041 ld.w r2, (r0, 0x4) + 2a76: 37f0 movi r7, 240 + 2a78: 689d andn r2, r7 + 2a7a: 3aa4 bseti r2, 4 + 2a7c: 07a7 br 0x29ca // 29ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2a7e: 9200 ld.w r0, (r2, 0x0) + 2a80: 9040 ld.w r2, (r0, 0x0) + 2a82: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2a84: 37f0 movi r7, 240 + 2a86: 9041 ld.w r2, (r0, 0x4) + 2a88: 47e4 lsli r7, r7, 4 + 2a8a: 689d andn r2, r7 + 2a8c: 3aa8 bseti r2, 8 + 2a8e: 079e br 0x29ca // 29ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2a90: 9200 ld.w r0, (r2, 0x0) + 2a92: 9040 ld.w r2, (r0, 0x0) + 2a94: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2a96: 37f0 movi r7, 240 + 2a98: 9041 ld.w r2, (r0, 0x4) + 2a9a: 47e8 lsli r7, r7, 8 + 2a9c: 689d andn r2, r7 + 2a9e: 3aac bseti r2, 12 + 2aa0: 0795 br 0x29ca // 29ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2aa2: 9200 ld.w r0, (r2, 0x0) + 2aa4: 9040 ld.w r2, (r0, 0x0) + 2aa6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2aa8: 37f0 movi r7, 240 + 2aaa: 9041 ld.w r2, (r0, 0x4) + 2aac: 47ec lsli r7, r7, 12 + 2aae: 689d andn r2, r7 + 2ab0: 3ab0 bseti r2, 16 + 2ab2: 078c br 0x29ca // 29ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 2ab4: 9200 ld.w r0, (r2, 0x0) + 2ab6: 9040 ld.w r2, (r0, 0x0) + 2ab8: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2aba: 37f0 movi r7, 240 + 2abc: 9041 ld.w r2, (r0, 0x4) + 2abe: 47f0 lsli r7, r7, 16 + 2ac0: 689d andn r2, r7 + 2ac2: 3ab4 bseti r2, 20 + 2ac4: 0783 br 0x29ca // 29ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 2ac6: 9240 ld.w r2, (r2, 0x0) + 2ac8: 9200 ld.w r0, (r2, 0x0) + 2aca: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2acc: 9201 ld.w r0, (r2, 0x4) + 2ace: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2ad0: 9400 ld.w r0, (r4, 0x0) + 2ad2: 9040 ld.w r2, (r0, 0x0) + 2ad4: 340f movi r4, 15 + 2ad6: 6891 andn r2, r4 + 2ad8: 3aa0 bseti r2, 0 + 2ada: 076f br 0x29b8 // 29b8 + 2adc: 20000050 .long 0x20000050 + 2ae0: 2000004c .long 0x2000004c + 2ae4: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002ae8 : + 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) +{ + 2ae8: 14c4 push r4-r7 + 2aea: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2aec: 1165 lrw r3, 0x20000060 // 2b80 + 2aee: 1186 lrw r4, 0x5a5a5a5a // 2b84 + 2af0: 9360 ld.w r3, (r3, 0x0) + 2af2: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2af4: 3407 movi r4, 7 + 2af6: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2af8: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2afa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2afc: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2afe: 9384 ld.w r4, (r3, 0x10) + 2b00: 3c40 cmpnei r4, 0 + 2b02: 0bfe bt 0x2afe // 2afe + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2b04: 2102 addi r1, 3 + 2b06: 4922 lsri r1, r1, 2 + 2b08: 4122 lsli r1, r1, 2 + 2b0a: 6048 addu r1, r2 + 2b0c: b820 st.w r1, (r14, 0x0) + 2b0e: 5829 subu r1, r0, r2 + 2b10: b821 st.w r1, (r14, 0x4) + 2b12: 9820 ld.w r1, (r14, 0x0) + 2b14: 644a cmpne r2, r1 + 2b16: 0826 bt 0x2b62 // 2b62 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2b18: 3106 movi r1, 6 + SetUserKey; + 2b1a: 105b lrw r2, 0x5a5a5a5a // 2b84 + 2b1c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2b1e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2b20: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2b22: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2b24: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2b26: 9324 ld.w r1, (r3, 0x10) + 2b28: 3940 cmpnei r1, 0 + 2b2a: 0bfe bt 0x2b26 // 2b26 + //Perform pre-programming 4 + SetUserKey; + 2b2c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2b2e: 3201 movi r2, 1 + 2b30: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2b32: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2b34: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2b36: 934a ld.w r2, (r3, 0x28) + 2b38: 3a44 cmpnei r2, 4 + 2b3a: 0bfe bt 0x2b36 // 2b36 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2b3c: 3102 movi r1, 2 + SetUserKey; + 2b3e: 1052 lrw r2, 0x5a5a5a5a // 2b84 + 2b40: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2b42: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2b44: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2b46: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2b48: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2b4a: 932a ld.w r1, (r3, 0x28) + 2b4c: 3941 cmpnei r1, 1 + 2b4e: 0bfe bt 0x2b4a // 2b4a + //Write page cache data to flash memory 6 + SetUserKey; + 2b50: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2b52: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2b54: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2b56: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2b58: 934a ld.w r2, (r3, 0x28) + 2b5a: 3a42 cmpnei r2, 2 + 2b5c: 0bfe bt 0x2b58 // 2b58 +} + 2b5e: 1402 addi r14, r14, 8 + 2b60: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2b62: 82e0 ld.b r7, (r2, 0x0) + 2b64: 8281 ld.b r4, (r2, 0x1) + 2b66: 4488 lsli r4, r4, 8 + 2b68: 8222 ld.b r1, (r2, 0x2) + 2b6a: 611c addu r4, r7 + 2b6c: 82a3 ld.b r5, (r2, 0x3) + 2b6e: 4130 lsli r1, r1, 16 + 2b70: 98c1 ld.w r6, (r14, 0x4) + 2b72: 6050 addu r1, r4 + 2b74: 45b8 lsli r5, r5, 24 + 2b76: 6188 addu r6, r2 + 2b78: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2b7a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2b7c: 2203 addi r2, 4 + 2b7e: 07ca br 0x2b12 // 2b12 + 2b80: 20000060 .long 0x20000060 + 2b84: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002b88 : +//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) +{ + 2b88: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2b94: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2b96: 3b40 cmpnei r3, 0 + 2b98: 0c06 bf 0x2ba4 // 2ba4 + 2b9a: 6d0f mov r4, r3 + 2b9c: 6914 and r4, r5 + 2b9e: 3c40 cmpnei r4, 0 + 2ba0: 0802 bt 0x2ba4 // 2ba4 + RdStartAdd +=4; + 2ba2: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2ba4: 6d0f mov r4, r3 + 2ba6: 6914 and r4, r5 + 2ba8: 6100 addu r4, r0 + 2baa: 8480 ld.b r4, (r4, 0x0) + 2bac: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002bb4 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2bb4: 33f8 movi r3, 248 + 2bb6: 4366 lsli r3, r3, 6 + 2bb8: 115b lrw r2, 0x200001f8 // 2ca4 + 2bba: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2bbc: 3246 movi r2, 70 + 2bbe: 117b lrw r3, 0x200001fe // 2ca8 + 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 + 2bc0: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2bc2: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2bc4: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2bc6: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2bc8: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2bca: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2bcc: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2bce: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2bd0: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2bd2: 1157 lrw r2, 0x200003e8 // 2cac + 2bd4: 8a22 ld.h r1, (r2, 0x4) + 2bd6: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2bd8: 8a23 ld.h r1, (r2, 0x6) + 2bda: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2bdc: 8a24 ld.h r1, (r2, 0x8) + 2bde: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2be0: 8a25 ld.h r1, (r2, 0xa) + 2be2: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2be4: 8a26 ld.h r1, (r2, 0xc) + 2be6: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2be8: 3146 movi r1, 70 + 2bea: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2bec: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2bee: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2bf0: 3128 movi r1, 40 + 2bf2: 1170 lrw r3, 0x20000222 // 2cb0 + 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 + 2bf4: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2bf6: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2bf8: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2bfa: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2bfc: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2bfe: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2c00: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2c02: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2c04: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2c06: 8a27 ld.h r1, (r2, 0xe) + 2c08: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2c0a: 8a28 ld.h r1, (r2, 0x10) + 2c0c: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2c0e: 8a29 ld.h r1, (r2, 0x12) + 2c10: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2c12: 8a2a ld.h r1, (r2, 0x14) + 2c14: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2c16: 8a2b ld.h r1, (r2, 0x16) + 2c18: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2c1a: 3128 movi r1, 40 + 2c1c: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2c1e: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2c20: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2c22: 8220 ld.b r1, (r2, 0x0) + 2c24: 1164 lrw r3, 0x200001c8 // 2cb4 + 2c26: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2c28: 8221 ld.b r1, (r2, 0x1) + 2c2a: 1164 lrw r3, 0x200001d0 // 2cb8 + 2c2c: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2c2e: 3101 movi r1, 1 + 2c30: 1163 lrw r3, 0x200001d1 // 2cbc + 2c32: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2c34: 3100 movi r1, 0 + 2c36: 1163 lrw r3, 0x200001f4 // 2cc0 + 2c38: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2c3a: 3106 movi r1, 6 + 2c3c: 1162 lrw r3, 0x200001fc // 2cc4 + 2c3e: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2c40: 8223 ld.b r1, (r2, 0x3) + 2c42: 1162 lrw r3, 0x200001f5 // 2cc8 + 2c44: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2c46: 9246 ld.w r2, (r2, 0x18) + 2c48: 1161 lrw r3, 0x200001cc // 2ccc + 2c4a: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2c4c: 1141 lrw r2, 0xea5f // 2cd0 + 2c4e: 1162 lrw r3, 0x20000248 // 2cd4 + 2c50: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2c52: 3200 movi r2, 0 + 2c54: 1161 lrw r3, 0x200001c9 // 2cd8 + 2c56: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2c58: 3202 movi r2, 2 + 2c5a: 1161 lrw r3, 0x200001ca // 2cdc + 2c5c: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2c5e: 3232 movi r2, 50 + 2c60: 1160 lrw r3, 0x20000220 // 2ce0 + 2c62: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2c64: 3200 movi r2, 0 + 2c66: 1160 lrw r3, 0x2000024c // 2ce4 + 2c68: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2c6a: 3201 movi r2, 1 + 2c6c: 107f lrw r3, 0x20000246 // 2ce8 + 2c6e: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2c70: 3200 movi r2, 0 + 2c72: 107f lrw r3, 0x20000244 // 2cec + 2c74: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2c76: 3204 movi r2, 4 + 2c78: 107e lrw r3, 0x200001d2 // 2cf0 + 2c7a: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2c7c: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2c7e: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2c80: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2c82: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2c84: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2c86: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2c88: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2c8a: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2c8c: 3207 movi r2, 7 + 2c8e: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2c90: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2c92: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2c94: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2c96: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2c98: 3204 movi r2, 4 + 2c9a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2c9c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2c9e: ab50 st.h r2, (r3, 0x20) + 2ca0: 783c jmp r15 + 2ca2: 0000 bkpt + 2ca4: 200001f8 .long 0x200001f8 + 2ca8: 200001fe .long 0x200001fe + 2cac: 200003e8 .long 0x200003e8 + 2cb0: 20000222 .long 0x20000222 + 2cb4: 200001c8 .long 0x200001c8 + 2cb8: 200001d0 .long 0x200001d0 + 2cbc: 200001d1 .long 0x200001d1 + 2cc0: 200001f4 .long 0x200001f4 + 2cc4: 200001fc .long 0x200001fc + 2cc8: 200001f5 .long 0x200001f5 + 2ccc: 200001cc .long 0x200001cc + 2cd0: 0000ea5f .long 0x0000ea5f + 2cd4: 20000248 .long 0x20000248 + 2cd8: 200001c9 .long 0x200001c9 + 2cdc: 200001ca .long 0x200001ca + 2ce0: 20000220 .long 0x20000220 + 2ce4: 2000024c .long 0x2000024c + 2ce8: 20000246 .long 0x20000246 + 2cec: 20000244 .long 0x20000244 + 2cf0: 200001d2 .long 0x200001d2 + +Disassembly of section .text.CORET_DeInit: + +00002cf4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2cf4: 1065 lrw r3, 0x20000064 // 2d08 + 2cf6: 3204 movi r2, 4 + 2cf8: 9360 ld.w r3, (r3, 0x0) + 2cfa: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2cfc: 3200 movi r2, 0 + 2cfe: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2d00: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2d02: b347 st.w r2, (r3, 0x1c) +} + 2d04: 783c jmp r15 + 2d06: 0000 bkpt + 2d08: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002d0c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2d0c: 1064 lrw r3, 0x20000064 // 2d1c + 2d0e: 3200 movi r2, 0 + 2d10: 9360 ld.w r3, (r3, 0x0) + 2d12: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2d14: 3201 movi r2, 1 + 2d16: 1063 lrw r3, 0xe000e100 // 2d20 + 2d18: b340 st.w r2, (r3, 0x0) +} + 2d1a: 783c jmp r15 + 2d1c: 20000064 .long 0x20000064 + 2d20: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002d24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2d24: 1063 lrw r3, 0x20000064 // 2d30 + 2d26: 9340 ld.w r2, (r3, 0x0) + 2d28: 9264 ld.w r3, (r2, 0x10) + 2d2a: 3ba0 bseti r3, 0 + 2d2c: b264 st.w r3, (r2, 0x10) +} + 2d2e: 783c jmp r15 + 2d30: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002d34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2d34: 1063 lrw r3, 0x20000064 // 2d40 + 2d36: 9340 ld.w r2, (r3, 0x0) + 2d38: 9264 ld.w r3, (r2, 0x10) + 2d3a: 3b82 bclri r3, 2 + 2d3c: b264 st.w r3, (r2, 0x10) +} + 2d3e: 783c jmp r15 + 2d40: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002d44 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2d44: 1063 lrw r3, 0x20000064 // 2d50 + 2d46: 9340 ld.w r2, (r3, 0x0) + 2d48: 9264 ld.w r3, (r2, 0x10) + 2d4a: 3ba1 bseti r3, 1 + 2d4c: b264 st.w r3, (r2, 0x10) +} + 2d4e: 783c jmp r15 + 2d50: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002d54 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2d54: 1063 lrw r3, 0x20000064 // 2d60 + 2d56: 3200 movi r2, 0 + 2d58: 9360 ld.w r3, (r3, 0x0) + 2d5a: b346 st.w r2, (r3, 0x18) +} + 2d5c: 783c jmp r15 + 2d5e: 0000 bkpt + 2d60: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002d64
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2d64: 14d0 push r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2d66: e00000df bsr 0x2f24 // 2f24 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2d6a: 1070 lrw r3, 0x20000438 // 2da8 + 2d6c: 8340 ld.b r2, (r3, 0x0) + 2d6e: 1030 lrw r1, 0x87a4 // 2dac + 2d70: 3000 movi r0, 0 + 2d72: e0000783 bsr 0x3c78 // 3c78 + + TemCtrl_Init(); + 2d76: e0001937 bsr 0x5fe4 // 5fe4 + DisPlay_Init(); + 2d7a: e0001e63 bsr 0x6a40 // 6a40 + Debug_Init(); + 2d7e: e00020a3 bsr 0x6ec4 // 6ec4 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2d82: e3fff7a3 bsr 0x1cc8 // 1cc8 + + UART2_TASK(); + 2d86: e00006e3 bsr 0x3b4c // 3b4c + + Touch_Key_Task(); + 2d8a: e00008e1 bsr 0x3f4c // 3f4c + +// TKey_Filter_Task(); + + TemCtrl_Pro(); + 2d8e: e0001ad1 bsr 0x6330 // 6330 + + DisPlay_Task(); + 2d92: e0001ef1 bsr 0x6b74 // 6b74 + + HT1621_Refresh_Task(); + 2d96: e00018df bsr 0x5f54 // 5f54 + + ADC_Sample_Task(); + 2d9a: e0000e2f bsr 0x49f8 // 49f8 + + Debug_Task(); + 2d9e: e00020fd bsr 0x6f98 // 6f98 + + Tm1812_Task(); + 2da2: e0001341 bsr 0x5424 // 5424 + 2da6: 07ee br 0x2d82 // 2d82 + 2da8: 20000438 .long 0x20000438 + 2dac: 000087a4 .long 0x000087a4 + +Disassembly of section .text.delay_nms: + +00002db0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2db0: 14d0 push r15 + 2db2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2db4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2db6: 3300 movi r3, 0 + j = 50* t; + 2db8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2dba: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2dbc: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2dbe: b860 st.w r3, (r14, 0x0) + 2dc0: 9840 ld.w r2, (r14, 0x0) + 2dc2: 9861 ld.w r3, (r14, 0x4) + 2dc4: 64c8 cmphs r2, r3 + 2dc6: 0c03 bf 0x2dcc // 2dcc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2dc8: 1403 addi r14, r14, 12 + 2dca: 1490 pop r15 + k++; + 2dcc: 9862 ld.w r3, (r14, 0x8) + 2dce: 2300 addi r3, 1 + 2dd0: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2dd2: e3fff77b bsr 0x1cc8 // 1cc8 + for ( i = 0; i < j; i++ ) + 2dd6: 9860 ld.w r3, (r14, 0x0) + 2dd8: 2300 addi r3, 1 + 2dda: 07f2 br 0x2dbe // 2dbe + +Disassembly of section .text.delay_nus: + +00002ddc : +void delay_nus(unsigned int t) +{ + 2ddc: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2dde: 3300 movi r3, 0 + 2de0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2de2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2de4: b860 st.w r3, (r14, 0x0) + 2de6: 9840 ld.w r2, (r14, 0x0) + 2de8: 9861 ld.w r3, (r14, 0x4) + 2dea: 64c8 cmphs r2, r3 + 2dec: 0c03 bf 0x2df2 // 2df2 + { + k++; + } +} + 2dee: 1403 addi r14, r14, 12 + 2df0: 783c jmp r15 + k++; + 2df2: 9862 ld.w r3, (r14, 0x8) + 2df4: 2300 addi r3, 1 + 2df6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2df8: 9860 ld.w r3, (r14, 0x0) + 2dfa: 2300 addi r3, 1 + 2dfc: 07f4 br 0x2de4 // 2de4 + +Disassembly of section .text.EPT0_CONFIG: + +00002e00 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2e00: 14d1 push r4, r15 + 2e02: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2e04: e3fffa24 bsr 0x224c // 224c +//------------ 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_PB00); //CX channel selection + 2e08: 311d movi r1, 29 + 2e0a: 3004 movi r0, 4 + 2e0c: e3fffa58 bsr 0x22bc // 22bc + //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) + 2e10: 3300 movi r3, 0 + 2e12: 3200 movi r2, 0 + 2e14: 3100 movi r1, 0 + 2e16: 3000 movi r0, 0 + 2e18: e3fffb6e bsr 0x24f4 // 24f4 +// 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, + 2e1c: 3380 movi r3, 128 + 2e1e: 3400 movi r4, 0 + 2e20: b862 st.w r3, (r14, 0x8) + 2e22: 3280 movi r2, 128 + 2e24: 3320 movi r3, 32 + 2e26: 3180 movi r1, 128 + 2e28: b861 st.w r3, (r14, 0x4) + 2e2a: 4250 lsli r2, r2, 16 + 2e2c: 412e lsli r1, r1, 14 + 2e2e: b888 st.w r4, (r14, 0x20) + 2e30: b887 st.w r4, (r14, 0x1c) + 2e32: b886 st.w r4, (r14, 0x18) + 2e34: b885 st.w r4, (r14, 0x14) + 2e36: b884 st.w r4, (r14, 0x10) + 2e38: b883 st.w r4, (r14, 0xc) + 2e3a: b880 st.w r4, (r14, 0x0) + 2e3c: 3301 movi r3, 1 + 2e3e: 3002 movi r0, 2 + 2e40: e3fffb76 bsr 0x252c // 252c +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2e44: 1066 lrw r3, 0xbb8 // 2e5c + 2e46: 3200 movi r2, 0 + 2e48: 3100 movi r1, 0 + 2e4a: 6c0f mov r0, r3 + 2e4c: b880 st.w r4, (r14, 0x0) + 2e4e: e3fffbdb bsr 0x2604 // 2604 + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2e52: e3fffa0d bsr 0x226c // 226c + +} + 2e56: 1409 addi r14, r14, 36 + 2e58: 1491 pop r4, r15 + 2e5a: 0000 bkpt + 2e5c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002e60 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2e60: 14d2 push r4-r5, r15 + 2e62: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2e64: 1095 lrw r4, 0x20000008 // 2eb8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2e66: 3500 movi r5, 0 + BT_DeInit(BT1); + 2e68: 9400 ld.w r0, (r4, 0x0) + 2e6a: e3fff85d bsr 0x1f24 // 1f24 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2e6e: 9400 ld.w r0, (r4, 0x0) + 2e70: b8a1 st.w r5, (r14, 0x4) + 2e72: b8a0 st.w r5, (r14, 0x0) + 2e74: 3308 movi r3, 8 + 2e76: 3200 movi r2, 0 + 2e78: 3101 movi r1, 1 + 2e7a: e3fff86c bsr 0x1f52 // 1f52 + 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); + 2e7e: 3380 movi r3, 128 + 2e80: 4363 lsli r3, r3, 3 + 2e82: b861 st.w r3, (r14, 0x4) + 2e84: 9400 ld.w r0, (r4, 0x0) + 2e86: 3300 movi r3, 0 + 2e88: b8a3 st.w r5, (r14, 0xc) + 2e8a: b8a2 st.w r5, (r14, 0x8) + 2e8c: b8a0 st.w r5, (r14, 0x0) + 2e8e: 3200 movi r2, 0 + 2e90: 3180 movi r1, 128 + 2e92: e3fff86c bsr 0x1f6a // 1f6a + BT_Period_CMP_Write(BT1,4780,1); + 2e96: 3201 movi r2, 1 + 2e98: 1029 lrw r1, 0x12ac // 2ebc + 2e9a: 9400 ld.w r0, (r4, 0x0) + 2e9c: e3fff87d bsr 0x1f96 // 1f96 + BT_Start(BT1); + 2ea0: 9400 ld.w r0, (r4, 0x0) + 2ea2: e3fff84f bsr 0x1f40 // 1f40 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2ea6: 9400 ld.w r0, (r4, 0x0) + 2ea8: 3202 movi r2, 2 + 2eaa: 3101 movi r1, 1 + 2eac: e3fff878 bsr 0x1f9c // 1f9c + BT1_INT_ENABLE(); + 2eb0: e3fff880 bsr 0x1fb0 // 1fb0 + +} + 2eb4: 1404 addi r14, r14, 16 + 2eb6: 1492 pop r4-r5, r15 + 2eb8: 20000008 .long 0x20000008 + 2ebc: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002ec0 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2ec0: 14d0 push r15 + 2ec2: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2ec4: e3fff64e bsr 0x1b60 // 1b60 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2ec8: 3101 movi r1, 1 + 2eca: 3001 movi r0, 1 + 2ecc: e3fff670 bsr 0x1bac // 1bac + //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 + 2ed0: 3000 movi r0, 0 + 2ed2: e3fff6c9 bsr 0x1c64 // 1c64 + 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 + 2ed6: 3180 movi r1, 128 + 2ed8: 3308 movi r3, 8 + 2eda: 3200 movi r2, 0 + 2edc: 4121 lsli r1, r1, 1 + 2ede: 3002 movi r0, 2 + 2ee0: e3fff67e bsr 0x1bdc // 1bdc +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2ee4: 30c0 movi r0, 192 + 2ee6: 3118 movi r1, 24 + 2ee8: 4002 lsli r0, r0, 2 + 2eea: e3fff6f9 bsr 0x1cdc // 1cdc + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2eee: 3001 movi r0, 1 + 2ef0: e3fff6ce bsr 0x1c8c // 1c8c + SYSCON_IWDCNT_Reload(); //reload WDT + 2ef4: e3fff6ea bsr 0x1cc8 // 1cc8 + IWDT_Int_Enable(); + 2ef8: e3fff71c bsr 0x1d30 // 1d30 + //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 + 2efc: 3340 movi r3, 64 + 2efe: b860 st.w r3, (r14, 0x0) + 2f00: 31c0 movi r1, 192 + 2f02: 3380 movi r3, 128 + 2f04: 4364 lsli r3, r3, 4 + 2f06: 3200 movi r2, 0 + 2f08: 4123 lsli r1, r1, 3 + 2f0a: 3000 movi r0, 0 + 2f0c: e3fff6f4 bsr 0x1cf4 // 1cf4 + LVD_Int_Enable(); + 2f10: e3fff702 bsr 0x1d14 // 1d14 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2f14: e3fff73c bsr 0x1d8c // 1d8c + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2f18: 3000 movi r0, 0 + 2f1a: e00028a7 bsr 0x8068 // 8068 + +} + 2f1e: 1401 addi r14, r14, 4 + 2f20: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002f24 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2f24: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2f26: 107c lrw r3, 0x2000005c // 2f94 + Sys_RSR = 0x00000000; + 2f28: 105c lrw r2, 0x200000ac // 2f98 + 2f2a: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2f2c: 9360 ld.w r3, (r3, 0x0) + 2f2e: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2f30: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2f32: 600c addu r0, r3 + 2f34: 9004 ld.w r0, (r0, 0x10) + 2f36: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2f38: 1059 lrw r2, 0x200000a8 // 2f9c + 2f3a: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2f3c: 3180 movi r1, 128 + 2f3e: 4121 lsli r1, r1, 1 + 2f40: 604c addu r1, r3 + 2f42: 9120 ld.w r1, (r1, 0x0) + 2f44: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2f46: 1057 lrw r2, 0xfffffff // 2fa0 + 2f48: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2f4a: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2f4c: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2f4e: 934c ld.w r2, (r3, 0x30) + 2f50: 6884 and r2, r1 + 2f52: 3a40 cmpnei r2, 0 + 2f54: 0ffd bf 0x2f4e // 2f4e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2f56: e3ffffb5 bsr 0x2ec0 // 2ec0 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2f5a: e0000531 bsr 0x39bc // 39bc + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2f5e: e3fff71d bsr 0x1d98 // 1d98 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2f62: 3101 movi r1, 1 + 2f64: 300f movi r0, 15 + 2f66: e3fff72b bsr 0x1dbc // 1dbc + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2f6a: 3102 movi r1, 2 + 2f6c: 3019 movi r0, 25 + 2f6e: e3fff727 bsr 0x1dbc // 1dbc +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ +// Relay_Init(); + + EPT0_CONFIG(); + 2f72: e3ffff47 bsr 0x2e00 // 2e00 + + BT_CONFIG(); //BT initial + 2f76: e3ffff75 bsr 0x2e60 // 2e60 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2f7a: 102b lrw r1, 0x7464 // 2fa4 + 2f7c: 3002 movi r0, 2 + 2f7e: e0000525 bsr 0x39c8 // 39c8 + + HT1621_Init(); //显示驱动初始化 + 2f82: e0001353 bsr 0x5628 // 5628 + + TM1812_LED_Init(); + 2f86: e00012e5 bsr 0x5550 // 5550 + + Touch_Key_Init(); + 2f8a: e000067f bsr 0x3c88 // 3c88 + + ADC_Init(); + 2f8e: e0000c83 bsr 0x4894 // 4894 + +} + 2f92: 1490 pop r15 + 2f94: 2000005c .long 0x2000005c + 2f98: 200000ac .long 0x200000ac + 2f9c: 200000a8 .long 0x200000a8 + 2fa0: 0fffffff .long 0x0fffffff + 2fa4: 00007464 .long 0x00007464 + +Disassembly of section .text.SYSCONIntHandler: + +00002fa8 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2fa8: 1460 nie + 2faa: 1462 ipush + // ISR content ... + nop; + 2fac: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2fae: 117a lrw r3, 0x2000005c // 3094 + 2fb0: 3280 movi r2, 128 + 2fb2: 9360 ld.w r3, (r3, 0x0) + 2fb4: 60c8 addu r3, r2 + 2fb6: 9323 ld.w r1, (r3, 0xc) + 2fb8: 3001 movi r0, 1 + 2fba: 6840 and r1, r0 + 2fbc: 3940 cmpnei r1, 0 + 2fbe: 0c04 bf 0x2fc6 // 2fc6 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2fc0: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2fc2: 1463 ipop + 2fc4: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2fc6: 9323 ld.w r1, (r3, 0xc) + 2fc8: 3002 movi r0, 2 + 2fca: 6840 and r1, r0 + 2fcc: 3940 cmpnei r1, 0 + 2fce: 0bf9 bt 0x2fc0 // 2fc0 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2fd0: 9323 ld.w r1, (r3, 0xc) + 2fd2: 3008 movi r0, 8 + 2fd4: 6840 and r1, r0 + 2fd6: 3940 cmpnei r1, 0 + 2fd8: 0bf4 bt 0x2fc0 // 2fc0 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2fda: 9323 ld.w r1, (r3, 0xc) + 2fdc: 3010 movi r0, 16 + 2fde: 6840 and r1, r0 + 2fe0: 3940 cmpnei r1, 0 + 2fe2: 0bef bt 0x2fc0 // 2fc0 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2fe4: 9323 ld.w r1, (r3, 0xc) + 2fe6: 6848 and r1, r2 + 2fe8: 3940 cmpnei r1, 0 + 2fea: 0c03 bf 0x2ff0 // 2ff0 + SYSCON->ICR = CMD_ERR_ST; + 2fec: b341 st.w r2, (r3, 0x4) +} + 2fee: 07ea br 0x2fc2 // 2fc2 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2ff0: 3280 movi r2, 128 + 2ff2: 9323 ld.w r1, (r3, 0xc) + 2ff4: 4241 lsli r2, r2, 1 + 2ff6: 6848 and r1, r2 + 2ff8: 3940 cmpnei r1, 0 + 2ffa: 0bf9 bt 0x2fec // 2fec + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2ffc: 3280 movi r2, 128 + 2ffe: 9323 ld.w r1, (r3, 0xc) + 3000: 4242 lsli r2, r2, 2 + 3002: 6848 and r1, r2 + 3004: 3940 cmpnei r1, 0 + 3006: 0bf3 bt 0x2fec // 2fec + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3008: 3280 movi r2, 128 + 300a: 9323 ld.w r1, (r3, 0xc) + 300c: 4243 lsli r2, r2, 3 + 300e: 6848 and r1, r2 + 3010: 3940 cmpnei r1, 0 + 3012: 0bed bt 0x2fec // 2fec + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3014: 3280 movi r2, 128 + 3016: 9323 ld.w r1, (r3, 0xc) + 3018: 4244 lsli r2, r2, 4 + 301a: 6848 and r1, r2 + 301c: 3940 cmpnei r1, 0 + 301e: 0c03 bf 0x3024 // 3024 + nop; + 3020: 6c03 mov r0, r0 + 3022: 07e5 br 0x2fec // 2fec + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3024: 3280 movi r2, 128 + 3026: 9323 ld.w r1, (r3, 0xc) + 3028: 4245 lsli r2, r2, 5 + 302a: 6848 and r1, r2 + 302c: 3940 cmpnei r1, 0 + 302e: 0bdf bt 0x2fec // 2fec + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3030: 3280 movi r2, 128 + 3032: 9323 ld.w r1, (r3, 0xc) + 3034: 4246 lsli r2, r2, 6 + 3036: 6848 and r1, r2 + 3038: 3940 cmpnei r1, 0 + 303a: 0bd9 bt 0x2fec // 2fec + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 303c: 3280 movi r2, 128 + 303e: 9323 ld.w r1, (r3, 0xc) + 3040: 4247 lsli r2, r2, 7 + 3042: 6848 and r1, r2 + 3044: 3940 cmpnei r1, 0 + 3046: 0bd3 bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3048: 3280 movi r2, 128 + 304a: 9323 ld.w r1, (r3, 0xc) + 304c: 424b lsli r2, r2, 11 + 304e: 6848 and r1, r2 + 3050: 3940 cmpnei r1, 0 + 3052: 0bcd bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3054: 3280 movi r2, 128 + 3056: 9323 ld.w r1, (r3, 0xc) + 3058: 424c lsli r2, r2, 12 + 305a: 6848 and r1, r2 + 305c: 3940 cmpnei r1, 0 + 305e: 0bc7 bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3060: 3280 movi r2, 128 + 3062: 9323 ld.w r1, (r3, 0xc) + 3064: 424d lsli r2, r2, 13 + 3066: 6848 and r1, r2 + 3068: 3940 cmpnei r1, 0 + 306a: 0bc1 bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 306c: 3280 movi r2, 128 + 306e: 9323 ld.w r1, (r3, 0xc) + 3070: 424e lsli r2, r2, 14 + 3072: 6848 and r1, r2 + 3074: 3940 cmpnei r1, 0 + 3076: 0bbb bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3078: 3280 movi r2, 128 + 307a: 9323 ld.w r1, (r3, 0xc) + 307c: 424f lsli r2, r2, 15 + 307e: 6848 and r1, r2 + 3080: 3940 cmpnei r1, 0 + 3082: 0bb5 bt 0x2fec // 2fec + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3084: 3280 movi r2, 128 + 3086: 9323 ld.w r1, (r3, 0xc) + 3088: 4256 lsli r2, r2, 22 + 308a: 6848 and r1, r2 + 308c: 3940 cmpnei r1, 0 + 308e: 0baf bt 0x2fec // 2fec + 3090: 0799 br 0x2fc2 // 2fc2 + 3092: 0000 bkpt + 3094: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003098 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3098: 1460 nie + 309a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 309c: 1078 lrw r3, 0x20000060 // 30fc + 309e: 3101 movi r1, 1 + 30a0: 9360 ld.w r3, (r3, 0x0) + 30a2: 934b ld.w r2, (r3, 0x2c) + 30a4: 6884 and r2, r1 + 30a6: 3a40 cmpnei r2, 0 + 30a8: 0c04 bf 0x30b0 // 30b0 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 30aa: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 30ac: 1463 ipop + 30ae: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 30b0: 934b ld.w r2, (r3, 0x2c) + 30b2: 3102 movi r1, 2 + 30b4: 6884 and r2, r1 + 30b6: 3a40 cmpnei r2, 0 + 30b8: 0bf9 bt 0x30aa // 30aa + else if(IFC->MISR&PEP_END_INT) + 30ba: 934b ld.w r2, (r3, 0x2c) + 30bc: 3104 movi r1, 4 + 30be: 6884 and r2, r1 + 30c0: 3a40 cmpnei r2, 0 + 30c2: 0bf4 bt 0x30aa // 30aa + else if(IFC->MISR&PROT_ERR_INT) + 30c4: 3280 movi r2, 128 + 30c6: 932b ld.w r1, (r3, 0x2c) + 30c8: 4245 lsli r2, r2, 5 + 30ca: 6848 and r1, r2 + 30cc: 3940 cmpnei r1, 0 + 30ce: 0c03 bf 0x30d4 // 30d4 + IFC->ICR=OVW_ERR_INT; + 30d0: b34c st.w r2, (r3, 0x30) +} + 30d2: 07ed br 0x30ac // 30ac + else if(IFC->MISR&UDEF_ERR_INT) + 30d4: 3280 movi r2, 128 + 30d6: 932b ld.w r1, (r3, 0x2c) + 30d8: 4246 lsli r2, r2, 6 + 30da: 6848 and r1, r2 + 30dc: 3940 cmpnei r1, 0 + 30de: 0bf9 bt 0x30d0 // 30d0 + else if(IFC->MISR&ADDR_ERR_INT) + 30e0: 3280 movi r2, 128 + 30e2: 932b ld.w r1, (r3, 0x2c) + 30e4: 4247 lsli r2, r2, 7 + 30e6: 6848 and r1, r2 + 30e8: 3940 cmpnei r1, 0 + 30ea: 0bf3 bt 0x30d0 // 30d0 + else if(IFC->MISR&OVW_ERR_INT) + 30ec: 3280 movi r2, 128 + 30ee: 932b ld.w r1, (r3, 0x2c) + 30f0: 4248 lsli r2, r2, 8 + 30f2: 6848 and r1, r2 + 30f4: 3940 cmpnei r1, 0 + 30f6: 0bed bt 0x30d0 // 30d0 + 30f8: 07da br 0x30ac // 30ac + 30fa: 0000 bkpt + 30fc: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003100 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3100: 1460 nie + 3102: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3104: 1078 lrw r3, 0x20000050 // 3164 + 3106: 3101 movi r1, 1 + 3108: 9360 ld.w r3, (r3, 0x0) + 310a: 9348 ld.w r2, (r3, 0x20) + 310c: 6884 and r2, r1 + 310e: 3a40 cmpnei r2, 0 + 3110: 0c04 bf 0x3118 // 3118 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3112: 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; + } +} + 3114: 1463 ipop + 3116: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3118: 9348 ld.w r2, (r3, 0x20) + 311a: 3102 movi r1, 2 + 311c: 6884 and r2, r1 + 311e: 3a40 cmpnei r2, 0 + 3120: 0bf9 bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3122: 9348 ld.w r2, (r3, 0x20) + 3124: 3104 movi r1, 4 + 3126: 6884 and r2, r1 + 3128: 3a40 cmpnei r2, 0 + 312a: 0bf4 bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 312c: 9348 ld.w r2, (r3, 0x20) + 312e: 3110 movi r1, 16 + 3130: 6884 and r2, r1 + 3132: 3a40 cmpnei r2, 0 + 3134: 0bef bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3136: 9348 ld.w r2, (r3, 0x20) + 3138: 3120 movi r1, 32 + 313a: 6884 and r2, r1 + 313c: 3a40 cmpnei r2, 0 + 313e: 0bea bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3140: 9348 ld.w r2, (r3, 0x20) + 3142: 3140 movi r1, 64 + 3144: 6884 and r2, r1 + 3146: 3a40 cmpnei r2, 0 + 3148: 0be5 bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 314a: 9348 ld.w r2, (r3, 0x20) + 314c: 3180 movi r1, 128 + 314e: 6884 and r2, r1 + 3150: 3a40 cmpnei r2, 0 + 3152: 0be0 bt 0x3112 // 3112 + 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 + 3154: 3280 movi r2, 128 + 3156: 9328 ld.w r1, (r3, 0x20) + 3158: 4249 lsli r2, r2, 9 + 315a: 6848 and r1, r2 + 315c: 3940 cmpnei r1, 0 + 315e: 0fdb bf 0x3114 // 3114 + ADC0->CSR = ADC12_SEQ_END0; + 3160: b347 st.w r2, (r3, 0x1c) +} + 3162: 07d9 br 0x3114 // 3114 + 3164: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003168 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3168: 1460 nie + 316a: 1462 ipush + 316c: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 316e: 1387 lrw r4, 0x20000020 // 3308 + 3170: 3280 movi r2, 128 + 3172: 9460 ld.w r3, (r4, 0x0) + 3174: 60c8 addu r3, r2 + 3176: 9335 ld.w r1, (r3, 0x54) + 3178: 3001 movi r0, 1 + 317a: 6840 and r1, r0 + 317c: 3940 cmpnei r1, 0 + 317e: 0c03 bf 0x3184 // 3184 + 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; + 3180: b317 st.w r0, (r3, 0x5c) + 3182: 0424 br 0x31ca // 31ca + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3184: 9335 ld.w r1, (r3, 0x54) + 3186: 3002 movi r0, 2 + 3188: 6840 and r1, r0 + 318a: 3940 cmpnei r1, 0 + 318c: 0bfa bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 318e: 9335 ld.w r1, (r3, 0x54) + 3190: 3004 movi r0, 4 + 3192: 6840 and r1, r0 + 3194: 3940 cmpnei r1, 0 + 3196: 0bf5 bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3198: 9335 ld.w r1, (r3, 0x54) + 319a: 3008 movi r0, 8 + 319c: 6840 and r1, r0 + 319e: 3940 cmpnei r1, 0 + 31a0: 0bf0 bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 31a2: 9335 ld.w r1, (r3, 0x54) + 31a4: 3010 movi r0, 16 + 31a6: 6840 and r1, r0 + 31a8: 3940 cmpnei r1, 0 + 31aa: 0c1f bf 0x31e8 // 31e8 + EPT0->ICR=EPT_CAP_LD0; + 31ac: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 31ae: 3200 movi r2, 0 + 31b0: 3101 movi r1, 1 + 31b2: 3000 movi r0, 0 + 31b4: e3fff5cc bsr 0x1d4c // 1d4c + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 31b8: 3201 movi r2, 1 + 31ba: 3101 movi r1, 1 + 31bc: 3001 movi r0, 1 + 31be: e3fff5c7 bsr 0x1d4c // 1d4c + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 31c2: 9460 ld.w r3, (r4, 0x0) + 31c4: 934b ld.w r2, (r3, 0x2c) + 31c6: 1272 lrw r3, 0x20000254 // 330c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 31c8: 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 + 31ca: 9460 ld.w r3, (r4, 0x0) + 31cc: 3280 movi r2, 128 + 31ce: 60c8 addu r3, r2 + 31d0: 932b ld.w r1, (r3, 0x2c) + 31d2: 3001 movi r0, 1 + 31d4: 6840 and r1, r0 + 31d6: 3940 cmpnei r1, 0 + 31d8: 0c61 bf 0x329a // 329a + { + 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; + 31da: 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; + } +} + 31dc: d9ee2001 ld.w r15, (r14, 0x4) + 31e0: 9880 ld.w r4, (r14, 0x0) + 31e2: 1402 addi r14, r14, 8 + 31e4: 1463 ipop + 31e6: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 31e8: 9335 ld.w r1, (r3, 0x54) + 31ea: 3020 movi r0, 32 + 31ec: 6840 and r1, r0 + 31ee: 3940 cmpnei r1, 0 + 31f0: 0c10 bf 0x3210 // 3210 + EPT0->ICR=EPT_CAP_LD1; + 31f2: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 31f4: 3200 movi r2, 0 + 31f6: 3101 movi r1, 1 + 31f8: 3001 movi r0, 1 + 31fa: e3fff5a9 bsr 0x1d4c // 1d4c + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 31fe: 3201 movi r2, 1 + 3200: 3101 movi r1, 1 + 3202: 3000 movi r0, 0 + 3204: e3fff5a4 bsr 0x1d4c // 1d4c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3208: 9460 ld.w r3, (r4, 0x0) + 320a: 934c ld.w r2, (r3, 0x30) + 320c: 1261 lrw r3, 0x20000250 // 3310 + 320e: 07dd br 0x31c8 // 31c8 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3210: 9335 ld.w r1, (r3, 0x54) + 3212: 3040 movi r0, 64 + 3214: 6840 and r1, r0 + 3216: 3940 cmpnei r1, 0 + 3218: 0bb4 bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 321a: 9335 ld.w r1, (r3, 0x54) + 321c: 6848 and r1, r2 + 321e: 3940 cmpnei r1, 0 + 3220: 0c03 bf 0x3226 // 3226 + EPT0->ICR=EPT_CDD; + 3222: b357 st.w r2, (r3, 0x5c) + 3224: 07d3 br 0x31ca // 31ca + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3226: 3280 movi r2, 128 + 3228: 9335 ld.w r1, (r3, 0x54) + 322a: 4241 lsli r2, r2, 1 + 322c: 6848 and r1, r2 + 322e: 3940 cmpnei r1, 0 + 3230: 0bf9 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3232: 3280 movi r2, 128 + 3234: 9335 ld.w r1, (r3, 0x54) + 3236: 4242 lsli r2, r2, 2 + 3238: 6848 and r1, r2 + 323a: 3940 cmpnei r1, 0 + 323c: 0bf3 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 323e: 3280 movi r2, 128 + 3240: 9335 ld.w r1, (r3, 0x54) + 3242: 4243 lsli r2, r2, 3 + 3244: 6848 and r1, r2 + 3246: 3940 cmpnei r1, 0 + 3248: 0bed bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 324a: 3280 movi r2, 128 + 324c: 9335 ld.w r1, (r3, 0x54) + 324e: 4244 lsli r2, r2, 4 + 3250: 6848 and r1, r2 + 3252: 3940 cmpnei r1, 0 + 3254: 0be7 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3256: 3280 movi r2, 128 + 3258: 9335 ld.w r1, (r3, 0x54) + 325a: 4245 lsli r2, r2, 5 + 325c: 6848 and r1, r2 + 325e: 3940 cmpnei r1, 0 + 3260: 0be1 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3262: 3280 movi r2, 128 + 3264: 9335 ld.w r1, (r3, 0x54) + 3266: 4246 lsli r2, r2, 6 + 3268: 6848 and r1, r2 + 326a: 3940 cmpnei r1, 0 + 326c: 0bdb bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 326e: 3280 movi r2, 128 + 3270: 9335 ld.w r1, (r3, 0x54) + 3272: 4247 lsli r2, r2, 7 + 3274: 6848 and r1, r2 + 3276: 3940 cmpnei r1, 0 + 3278: 0bd5 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 327a: 3280 movi r2, 128 + 327c: 9335 ld.w r1, (r3, 0x54) + 327e: 4248 lsli r2, r2, 8 + 3280: 6848 and r1, r2 + 3282: 3940 cmpnei r1, 0 + 3284: 0bcf bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3286: 3280 movi r2, 128 + 3288: 9335 ld.w r1, (r3, 0x54) + 328a: 4249 lsli r2, r2, 9 + 328c: 6848 and r1, r2 + 328e: 3940 cmpnei r1, 0 + 3290: 0f9d bf 0x31ca // 31ca + EPT0->ICR=EPT_PEND; + 3292: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3294: e3fff800 bsr 0x2294 // 2294 + 3298: 0799 br 0x31ca // 31ca + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 329a: 932b ld.w r1, (r3, 0x2c) + 329c: 3002 movi r0, 2 + 329e: 6840 and r1, r0 + 32a0: 3940 cmpnei r1, 0 + 32a2: 0b9c bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 32a4: 932b ld.w r1, (r3, 0x2c) + 32a6: 3004 movi r0, 4 + 32a8: 6840 and r1, r0 + 32aa: 3940 cmpnei r1, 0 + 32ac: 0b97 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 32ae: 932b ld.w r1, (r3, 0x2c) + 32b0: 3008 movi r0, 8 + 32b2: 6840 and r1, r0 + 32b4: 3940 cmpnei r1, 0 + 32b6: 0b92 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 32b8: 932b ld.w r1, (r3, 0x2c) + 32ba: 3010 movi r0, 16 + 32bc: 6840 and r1, r0 + 32be: 3940 cmpnei r1, 0 + 32c0: 0b8d bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 32c2: 932b ld.w r1, (r3, 0x2c) + 32c4: 3020 movi r0, 32 + 32c6: 6840 and r1, r0 + 32c8: 3940 cmpnei r1, 0 + 32ca: 0b88 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 32cc: 932b ld.w r1, (r3, 0x2c) + 32ce: 3040 movi r0, 64 + 32d0: 6840 and r1, r0 + 32d2: 3940 cmpnei r1, 0 + 32d4: 0b83 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 32d6: 932b ld.w r1, (r3, 0x2c) + 32d8: 6848 and r1, r2 + 32da: 3940 cmpnei r1, 0 + 32dc: 0c03 bf 0x32e2 // 32e2 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 32de: b34d st.w r2, (r3, 0x34) +} + 32e0: 077e br 0x31dc // 31dc + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 32e2: 3280 movi r2, 128 + 32e4: 932b ld.w r1, (r3, 0x2c) + 32e6: 4241 lsli r2, r2, 1 + 32e8: 6848 and r1, r2 + 32ea: 3940 cmpnei r1, 0 + 32ec: 0bf9 bt 0x32de // 32de + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 32ee: 3280 movi r2, 128 + 32f0: 932b ld.w r1, (r3, 0x2c) + 32f2: 4242 lsli r2, r2, 2 + 32f4: 6848 and r1, r2 + 32f6: 3940 cmpnei r1, 0 + 32f8: 0bf3 bt 0x32de // 32de + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 32fa: 3280 movi r2, 128 + 32fc: 932b ld.w r1, (r3, 0x2c) + 32fe: 4243 lsli r2, r2, 3 + 3300: 6848 and r1, r2 + 3302: 3940 cmpnei r1, 0 + 3304: 0bed bt 0x32de // 32de + 3306: 076b br 0x31dc // 31dc + 3308: 20000020 .long 0x20000020 + 330c: 20000254 .long 0x20000254 + 3310: 20000250 .long 0x20000250 + +Disassembly of section .text.WWDTHandler: + +00003314 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3314: 1460 nie + 3316: 1462 ipush + 3318: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 331a: 10ab lrw r5, 0x20000010 // 3344 + 331c: 3401 movi r4, 1 + 331e: 9560 ld.w r3, (r5, 0x0) + 3320: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3322: 30ff movi r0, 255 + 3324: e3fff5f8 bsr 0x1f14 // 1f14 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3328: 9540 ld.w r2, (r5, 0x0) + 332a: 9263 ld.w r3, (r2, 0xc) + 332c: 68d0 and r3, r4 + 332e: 3b40 cmpnei r3, 0 + 3330: 0c02 bf 0x3334 // 3334 + { + WWDT->ICR = WWDT_EVI; + 3332: b285 st.w r4, (r2, 0x14) + } +} + 3334: d9ee2002 ld.w r15, (r14, 0x8) + 3338: 98a1 ld.w r5, (r14, 0x4) + 333a: 9880 ld.w r4, (r14, 0x0) + 333c: 1403 addi r14, r14, 12 + 333e: 1463 ipop + 3340: 1461 nir + 3342: 0000 bkpt + 3344: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003348 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3348: 1460 nie + 334a: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 334c: 107e lrw r3, 0x20000024 // 33c4 + 334e: 3101 movi r1, 1 + 3350: 9360 ld.w r3, (r3, 0x0) + 3352: 237f addi r3, 128 + 3354: 9355 ld.w r2, (r3, 0x54) + 3356: 6884 and r2, r1 + 3358: 3a40 cmpnei r2, 0 + 335a: 0c04 bf 0x3362 // 3362 + { + 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; + 335c: 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; + } +} + 335e: 1463 ipop + 3360: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3362: 9355 ld.w r2, (r3, 0x54) + 3364: 3102 movi r1, 2 + 3366: 6884 and r2, r1 + 3368: 3a40 cmpnei r2, 0 + 336a: 0bf9 bt 0x335c // 335c + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 336c: 9355 ld.w r2, (r3, 0x54) + 336e: 3110 movi r1, 16 + 3370: 6884 and r2, r1 + 3372: 3a40 cmpnei r2, 0 + 3374: 0bf4 bt 0x335c // 335c + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3376: 9355 ld.w r2, (r3, 0x54) + 3378: 3120 movi r1, 32 + 337a: 6884 and r2, r1 + 337c: 3a40 cmpnei r2, 0 + 337e: 0bef bt 0x335c // 335c + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3380: 3280 movi r2, 128 + 3382: 9335 ld.w r1, (r3, 0x54) + 3384: 4241 lsli r2, r2, 1 + 3386: 6848 and r1, r2 + 3388: 3940 cmpnei r1, 0 + 338a: 0c03 bf 0x3390 // 3390 + GPT0->ICR = GPT_INT_PEND; + 338c: b357 st.w r2, (r3, 0x5c) +} + 338e: 07e8 br 0x335e // 335e + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3390: 3280 movi r2, 128 + 3392: 9335 ld.w r1, (r3, 0x54) + 3394: 4242 lsli r2, r2, 2 + 3396: 6848 and r1, r2 + 3398: 3940 cmpnei r1, 0 + 339a: 0bf9 bt 0x338c // 338c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 339c: 3280 movi r2, 128 + 339e: 9335 ld.w r1, (r3, 0x54) + 33a0: 4243 lsli r2, r2, 3 + 33a2: 6848 and r1, r2 + 33a4: 3940 cmpnei r1, 0 + 33a6: 0bf3 bt 0x338c // 338c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 33a8: 3280 movi r2, 128 + 33aa: 9335 ld.w r1, (r3, 0x54) + 33ac: 4244 lsli r2, r2, 4 + 33ae: 6848 and r1, r2 + 33b0: 3940 cmpnei r1, 0 + 33b2: 0bed bt 0x338c // 338c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 33b4: 3280 movi r2, 128 + 33b6: 9335 ld.w r1, (r3, 0x54) + 33b8: 4249 lsli r2, r2, 9 + 33ba: 6848 and r1, r2 + 33bc: 3940 cmpnei r1, 0 + 33be: 0be7 bt 0x338c // 338c + 33c0: 07cf br 0x335e // 335e + 33c2: 0000 bkpt + 33c4: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000033c8 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 33c8: 1460 nie + 33ca: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 33cc: 1079 lrw r3, 0x20000018 // 3430 + 33ce: 3101 movi r1, 1 + 33d0: 9360 ld.w r3, (r3, 0x0) + 33d2: 934a ld.w r2, (r3, 0x28) + 33d4: 6884 and r2, r1 + 33d6: 3a40 cmpnei r2, 0 + 33d8: 0c14 bf 0x3400 // 3400 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 33da: 1057 lrw r2, 0xca53 // 3434 + RTC->ICR=ALRA_INT; + 33dc: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 33de: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 33e0: 9342 ld.w r2, (r3, 0x8) + 33e2: 6c84 or r2, r1 + 33e4: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 33e6: 3280 movi r2, 128 + 33e8: 424d lsli r2, r2, 13 + 33ea: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 33ec: 3102 movi r1, 2 + 33ee: 9342 ld.w r2, (r3, 0x8) + 33f0: 6884 and r2, r1 + 33f2: 3a40 cmpnei r2, 0 + 33f4: 0bfd bt 0x33ee // 33ee + RTC->CR &= ~0x1; + 33f6: 9342 ld.w r2, (r3, 0x8) + 33f8: 3a80 bclri r2, 0 + 33fa: 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; + } +} + 33fc: 1463 ipop + 33fe: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3400: 934a ld.w r2, (r3, 0x28) + 3402: 3102 movi r1, 2 + 3404: 6884 and r2, r1 + 3406: 3a40 cmpnei r2, 0 + 3408: 0c03 bf 0x340e // 340e + RTC->ICR=RTC_TRGEV1_INT; + 340a: b32b st.w r1, (r3, 0x2c) +} + 340c: 07f8 br 0x33fc // 33fc + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 340e: 934a ld.w r2, (r3, 0x28) + 3410: 3104 movi r1, 4 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0bfa bt 0x340a // 340a + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3418: 934a ld.w r2, (r3, 0x28) + 341a: 3108 movi r1, 8 + 341c: 6884 and r2, r1 + 341e: 3a40 cmpnei r2, 0 + 3420: 0bf5 bt 0x340a // 340a + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3422: 934a ld.w r2, (r3, 0x28) + 3424: 3110 movi r1, 16 + 3426: 6884 and r2, r1 + 3428: 3a40 cmpnei r2, 0 + 342a: 0bf0 bt 0x340a // 340a + 342c: 07e8 br 0x33fc // 33fc + 342e: 0000 bkpt + 3430: 20000018 .long 0x20000018 + 3434: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003438 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3438: 1460 nie + 343a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 343c: 106d lrw r3, 0x20000040 // 3470 + 343e: 3102 movi r1, 2 + 3440: 9360 ld.w r3, (r3, 0x0) + 3442: 9343 ld.w r2, (r3, 0xc) + 3444: 6884 and r2, r1 + 3446: 3a40 cmpnei r2, 0 + 3448: 0c03 bf 0x344e // 344e + { + 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; + 344a: b323 st.w r1, (r3, 0xc) + } +} + 344c: 0410 br 0x346c // 346c + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 344e: 9343 ld.w r2, (r3, 0xc) + 3450: 3101 movi r1, 1 + 3452: 6884 and r2, r1 + 3454: 3a40 cmpnei r2, 0 + 3456: 0bfa bt 0x344a // 344a + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3458: 9343 ld.w r2, (r3, 0xc) + 345a: 3108 movi r1, 8 + 345c: 6884 and r2, r1 + 345e: 3a40 cmpnei r2, 0 + 3460: 0bf5 bt 0x344a // 344a + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3462: 9343 ld.w r2, (r3, 0xc) + 3464: 3104 movi r1, 4 + 3466: 6884 and r2, r1 + 3468: 3a40 cmpnei r2, 0 + 346a: 0bf0 bt 0x344a // 344a +} + 346c: 1463 ipop + 346e: 1461 nir + 3470: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003474 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3474: 1460 nie + 3476: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3478: 106d lrw r3, 0x2000003c // 34ac + 347a: 3102 movi r1, 2 + 347c: 9360 ld.w r3, (r3, 0x0) + 347e: 9343 ld.w r2, (r3, 0xc) + 3480: 6884 and r2, r1 + 3482: 3a40 cmpnei r2, 0 + 3484: 0c03 bf 0x348a // 348a + { + 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; + 3486: b323 st.w r1, (r3, 0xc) + } +} + 3488: 0410 br 0x34a8 // 34a8 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 348a: 9343 ld.w r2, (r3, 0xc) + 348c: 3101 movi r1, 1 + 348e: 6884 and r2, r1 + 3490: 3a40 cmpnei r2, 0 + 3492: 0bfa bt 0x3486 // 3486 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3494: 9343 ld.w r2, (r3, 0xc) + 3496: 3108 movi r1, 8 + 3498: 6884 and r2, r1 + 349a: 3a40 cmpnei r2, 0 + 349c: 0bf5 bt 0x3486 // 3486 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 349e: 9343 ld.w r2, (r3, 0xc) + 34a0: 3104 movi r1, 4 + 34a2: 6884 and r2, r1 + 34a4: 3a40 cmpnei r2, 0 + 34a6: 0bf0 bt 0x3486 // 3486 +} + 34a8: 1463 ipop + 34aa: 1461 nir + 34ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +000034b0 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 34b0: 1460 nie + 34b2: 1462 ipush + 34b4: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 34b6: 107f lrw r3, 0x20000038 // 3530 + 34b8: 3102 movi r1, 2 + 34ba: 9360 ld.w r3, (r3, 0x0) + 34bc: 9343 ld.w r2, (r3, 0xc) + 34be: 6884 and r2, r1 + 34c0: 3a40 cmpnei r2, 0 + 34c2: 0c0b bf 0x34d8 // 34d8 + { + UART2->ISR=UART_RX_INT_S; + 34c4: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 34c6: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 34c8: 7400 zextb r0, r0 + 34ca: e000030d bsr 0x3ae4 // 3ae4 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 34ce: d9ee2000 ld.w r15, (r14, 0x0) + 34d2: 1401 addi r14, r14, 4 + 34d4: 1463 ipop + 34d6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 34d8: 9323 ld.w r1, (r3, 0xc) + 34da: 3201 movi r2, 1 + 34dc: 6848 and r1, r2 + 34de: 3940 cmpnei r1, 0 + 34e0: 0c0d bf 0x34fa // 34fa + UART2->ISR=UART_TX_INT_S; + 34e2: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 34e4: 1074 lrw r3, 0x200000bc // 3534 + 34e6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 34e8: 1074 lrw r3, 0x200000c0 // 3538 + 34ea: 9360 ld.w r3, (r3, 0x0) + 34ec: 3b41 cmpnei r3, 1 + 34ee: 0bf0 bt 0x34ce // 34ce + RS485_Comm_Start ++; + 34f0: 1053 lrw r2, 0x200000c4 // 353c + RS485_Comm_End ++; + 34f2: 9260 ld.w r3, (r2, 0x0) + 34f4: 2300 addi r3, 1 + 34f6: b260 st.w r3, (r2, 0x0) +} + 34f8: 07eb br 0x34ce // 34ce + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 34fa: 9343 ld.w r2, (r3, 0xc) + 34fc: 3108 movi r1, 8 + 34fe: 6884 and r2, r1 + 3500: 3a40 cmpnei r2, 0 + 3502: 0c03 bf 0x3508 // 3508 + UART2->ISR=UART_TX_IOV_S; + 3504: b323 st.w r1, (r3, 0xc) + 3506: 07e4 br 0x34ce // 34ce + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3508: 9343 ld.w r2, (r3, 0xc) + 350a: 3104 movi r1, 4 + 350c: 6884 and r2, r1 + 350e: 3a40 cmpnei r2, 0 + 3510: 0bfa bt 0x3504 // 3504 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3512: 3180 movi r1, 128 + 3514: 9303 ld.w r0, (r3, 0xc) + 3516: 412c lsli r1, r1, 12 + 3518: 6804 and r0, r1 + 351a: 3840 cmpnei r0, 0 + 351c: 0fd9 bf 0x34ce // 34ce + UART2->ISR=UART_TX_DONE_S; + 351e: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3520: 1065 lrw r3, 0x200000bc // 3534 + 3522: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3524: 1065 lrw r3, 0x200000c0 // 3538 + 3526: 9360 ld.w r3, (r3, 0x0) + 3528: 3b41 cmpnei r3, 1 + 352a: 0bd2 bt 0x34ce // 34ce + RS485_Comm_End ++; + 352c: 1045 lrw r2, 0x200000c8 // 3540 + 352e: 07e2 br 0x34f2 // 34f2 + 3530: 20000038 .long 0x20000038 + 3534: 200000bc .long 0x200000bc + 3538: 200000c0 .long 0x200000c0 + 353c: 200000c4 .long 0x200000c4 + 3540: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +00003544 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 3544: 1460 nie + 3546: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 3548: 1178 lrw r3, 0x20000034 // 3628 + 354a: 3101 movi r1, 1 + 354c: 9360 ld.w r3, (r3, 0x0) + 354e: 9347 ld.w r2, (r3, 0x1c) + 3550: 6884 and r2, r1 + 3552: 3a40 cmpnei r2, 0 + 3554: 0c03 bf 0x355a // 355a + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 3556: b328 st.w r1, (r3, 0x20) + } + +} + 3558: 0407 br 0x3566 // 3566 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 355a: 9347 ld.w r2, (r3, 0x1c) + 355c: 3002 movi r0, 2 + 355e: 6880 and r2, r0 + 3560: 3a40 cmpnei r2, 0 + 3562: 0c04 bf 0x356a // 356a + SPI0->ICR = SPI_RTIM; + 3564: b308 st.w r0, (r3, 0x20) +} + 3566: 1463 ipop + 3568: 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 + 356a: 9347 ld.w r2, (r3, 0x1c) + 356c: 3004 movi r0, 4 + 356e: 6880 and r2, r0 + 3570: 3a40 cmpnei r2, 0 + 3572: 0c55 bf 0x361c // 361c + SPI0->ICR = SPI_RXIM; + 3574: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 3576: 9302 ld.w r0, (r3, 0x8) + 3578: 32aa movi r2, 170 + 357a: 6482 cmpne r0, r2 + 357c: 083e bt 0x35f8 // 35f8 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 357e: 3102 movi r1, 2 + 3580: 9343 ld.w r2, (r3, 0xc) + 3582: 6884 and r2, r1 + 3584: 3a40 cmpnei r2, 0 + 3586: 0ffd bf 0x3580 // 3580 + SPI0->DR = 0x11; + 3588: 3211 movi r2, 17 + 358a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 358c: 3110 movi r1, 16 + 358e: 9343 ld.w r2, (r3, 0xc) + 3590: 6884 and r2, r1 + 3592: 3a40 cmpnei r2, 0 + 3594: 0bfd bt 0x358e // 358e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3596: 3102 movi r1, 2 + 3598: 9343 ld.w r2, (r3, 0xc) + 359a: 6884 and r2, r1 + 359c: 3a40 cmpnei r2, 0 + 359e: 0ffd bf 0x3598 // 3598 + SPI0->DR = 0x12; + 35a0: 3212 movi r2, 18 + 35a2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35a4: 3110 movi r1, 16 + 35a6: 9343 ld.w r2, (r3, 0xc) + 35a8: 6884 and r2, r1 + 35aa: 3a40 cmpnei r2, 0 + 35ac: 0bfd bt 0x35a6 // 35a6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 35ae: 3102 movi r1, 2 + 35b0: 9343 ld.w r2, (r3, 0xc) + 35b2: 6884 and r2, r1 + 35b4: 3a40 cmpnei r2, 0 + 35b6: 0ffd bf 0x35b0 // 35b0 + SPI0->DR = 0x13; + 35b8: 3213 movi r2, 19 + 35ba: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35bc: 3110 movi r1, 16 + 35be: 9343 ld.w r2, (r3, 0xc) + 35c0: 6884 and r2, r1 + 35c2: 3a40 cmpnei r2, 0 + 35c4: 0bfd bt 0x35be // 35be + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 35c6: 3102 movi r1, 2 + 35c8: 9343 ld.w r2, (r3, 0xc) + 35ca: 6884 and r2, r1 + 35cc: 3a40 cmpnei r2, 0 + 35ce: 0ffd bf 0x35c8 // 35c8 + SPI0->DR = 0x14; + 35d0: 3214 movi r2, 20 + 35d2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35d4: 3110 movi r1, 16 + 35d6: 9343 ld.w r2, (r3, 0xc) + 35d8: 6884 and r2, r1 + 35da: 3a40 cmpnei r2, 0 + 35dc: 0bfd bt 0x35d6 // 35d6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 35de: 3102 movi r1, 2 + 35e0: 9343 ld.w r2, (r3, 0xc) + 35e2: 6884 and r2, r1 + 35e4: 3a40 cmpnei r2, 0 + 35e6: 0ffd bf 0x35e0 // 35e0 + SPI0->DR = 0x15; + 35e8: 3215 movi r2, 21 + 35ea: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35ec: 3110 movi r1, 16 + 35ee: 9343 ld.w r2, (r3, 0xc) + 35f0: 6884 and r2, r1 + 35f2: 3a40 cmpnei r2, 0 + 35f4: 0bfd bt 0x35ee // 35ee + 35f6: 07b8 br 0x3566 // 3566 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 35f8: 9343 ld.w r2, (r3, 0xc) + 35fa: 6884 and r2, r1 + 35fc: 3a40 cmpnei r2, 0 + 35fe: 0bb4 bt 0x3566 // 3566 + SPI0->DR=0x0; //FIFO=0 + 3600: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3602: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3604: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3606: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3608: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 360a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 360c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 360e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3610: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3612: 9343 ld.w r2, (r3, 0xc) + 3614: 6884 and r2, r1 + 3616: 3a40 cmpnei r2, 0 + 3618: 0bfd bt 0x3612 // 3612 + 361a: 07a6 br 0x3566 // 3566 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 361c: 9347 ld.w r2, (r3, 0x1c) + 361e: 3108 movi r1, 8 + 3620: 6884 and r2, r1 + 3622: 3a40 cmpnei r2, 0 + 3624: 0b99 bt 0x3556 // 3556 + 3626: 07a0 br 0x3566 // 3566 + 3628: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +0000362c : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 362c: 1460 nie + 362e: 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) + 3630: 1073 lrw r3, 0x2000002c // 367c + 3632: 3104 movi r1, 4 + 3634: 9360 ld.w r3, (r3, 0x0) + 3636: 9349 ld.w r2, (r3, 0x24) + 3638: 6884 and r2, r1 + 363a: 3a40 cmpnei r2, 0 + 363c: 0c02 bf 0x3640 // 3640 + { + SIO0->ICR=0X04; + 363e: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 3640: 9349 ld.w r2, (r3, 0x24) + 3642: 3101 movi r1, 1 + 3644: 6884 and r2, r1 + 3646: 3a40 cmpnei r2, 0 + 3648: 0c02 bf 0x364c // 364c + { + SIO0->ICR=0X01; + 364a: 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 + 364c: 9349 ld.w r2, (r3, 0x24) + 364e: 3102 movi r1, 2 + 3650: 6884 and r2, r1 + 3652: 3a40 cmpnei r2, 0 + 3654: 0c03 bf 0x365a // 365a + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 3656: b32b st.w r1, (r3, 0x2c) + } +} + 3658: 0410 br 0x3678 // 3678 + else if(SIO0->MISR&0X08) //RXBUFFULL + 365a: 9349 ld.w r2, (r3, 0x24) + 365c: 3108 movi r1, 8 + 365e: 6884 and r2, r1 + 3660: 3a40 cmpnei r2, 0 + 3662: 0bfa bt 0x3656 // 3656 + else if(SIO0->MISR&0X010) //BREAK + 3664: 9349 ld.w r2, (r3, 0x24) + 3666: 3110 movi r1, 16 + 3668: 6884 and r2, r1 + 366a: 3a40 cmpnei r2, 0 + 366c: 0bf5 bt 0x3656 // 3656 + else if(SIO0->MISR&0X020) //TIMEOUT + 366e: 9349 ld.w r2, (r3, 0x24) + 3670: 3120 movi r1, 32 + 3672: 6884 and r2, r1 + 3674: 3a40 cmpnei r2, 0 + 3676: 0bf0 bt 0x3656 // 3656 +} + 3678: 1463 ipop + 367a: 1461 nir + 367c: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003680 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3680: 1460 nie + 3682: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3684: 106a lrw r3, 0x2000005c // 36ac + 3686: 3101 movi r1, 1 + 3688: 9360 ld.w r3, (r3, 0x0) + 368a: 237f addi r3, 128 + 368c: 934c ld.w r2, (r3, 0x30) + 368e: 6884 and r2, r1 + 3690: 3a40 cmpnei r2, 0 + 3692: 0c04 bf 0x369a // 369a + { + SYSCON->EXICR = EXI_PIN0; + 3694: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 3696: 1463 ipop + 3698: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 369a: 3280 movi r2, 128 + 369c: 932c ld.w r1, (r3, 0x30) + 369e: 4249 lsli r2, r2, 9 + 36a0: 6848 and r1, r2 + 36a2: 3940 cmpnei r1, 0 + 36a4: 0ff9 bf 0x3696 // 3696 + SYSCON->EXICR = EXI_PIN16; + 36a6: b34b st.w r2, (r3, 0x2c) +} + 36a8: 07f7 br 0x3696 // 3696 + 36aa: 0000 bkpt + 36ac: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +000036b0 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 36b0: 1460 nie + 36b2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 36b4: 106a lrw r3, 0x2000005c // 36dc + 36b6: 3102 movi r1, 2 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: 237f addi r3, 128 + 36bc: 934c ld.w r2, (r3, 0x30) + 36be: 6884 and r2, r1 + 36c0: 3a40 cmpnei r2, 0 + 36c2: 0c04 bf 0x36ca // 36ca + { + SYSCON->EXICR = EXI_PIN1; + 36c4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 36c6: 1463 ipop + 36c8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 36ca: 3280 movi r2, 128 + 36cc: 932c ld.w r1, (r3, 0x30) + 36ce: 424a lsli r2, r2, 10 + 36d0: 6848 and r1, r2 + 36d2: 3940 cmpnei r1, 0 + 36d4: 0ff9 bf 0x36c6 // 36c6 + SYSCON->EXICR = EXI_PIN17; + 36d6: b34b st.w r2, (r3, 0x2c) +} + 36d8: 07f7 br 0x36c6 // 36c6 + 36da: 0000 bkpt + 36dc: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000036e0 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 36e0: 1460 nie + 36e2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 36e4: 1070 lrw r3, 0x2000005c // 3724 + 36e6: 3104 movi r1, 4 + 36e8: 9360 ld.w r3, (r3, 0x0) + 36ea: 237f addi r3, 128 + 36ec: 934c ld.w r2, (r3, 0x30) + 36ee: 6884 and r2, r1 + 36f0: 3a40 cmpnei r2, 0 + 36f2: 0c04 bf 0x36fa // 36fa + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 36f4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 36f6: 1463 ipop + 36f8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 36fa: 934c ld.w r2, (r3, 0x30) + 36fc: 3108 movi r1, 8 + 36fe: 6884 and r2, r1 + 3700: 3a40 cmpnei r2, 0 + 3702: 0bf9 bt 0x36f4 // 36f4 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3704: 3280 movi r2, 128 + 3706: 932c ld.w r1, (r3, 0x30) + 3708: 424b lsli r2, r2, 11 + 370a: 6848 and r1, r2 + 370c: 3940 cmpnei r1, 0 + 370e: 0c03 bf 0x3714 // 3714 + SYSCON->EXICR = EXI_PIN19; + 3710: b34b st.w r2, (r3, 0x2c) +} + 3712: 07f2 br 0x36f6 // 36f6 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3714: 3280 movi r2, 128 + 3716: 932c ld.w r1, (r3, 0x30) + 3718: 424c lsli r2, r2, 12 + 371a: 6848 and r1, r2 + 371c: 3940 cmpnei r1, 0 + 371e: 0bf9 bt 0x3710 // 3710 + 3720: 07eb br 0x36f6 // 36f6 + 3722: 0000 bkpt + 3724: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00003728 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 3728: 1460 nie + 372a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 372c: 1075 lrw r3, 0x2000005c // 3780 + 372e: 3280 movi r2, 128 + 3730: 9360 ld.w r3, (r3, 0x0) + 3732: 60c8 addu r3, r2 + 3734: 932c ld.w r1, (r3, 0x30) + 3736: 3010 movi r0, 16 + 3738: 6840 and r1, r0 + 373a: 3940 cmpnei r1, 0 + 373c: 0c04 bf 0x3744 // 3744 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 373e: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 3740: 1463 ipop + 3742: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 3744: 932c ld.w r1, (r3, 0x30) + 3746: 3020 movi r0, 32 + 3748: 6840 and r1, r0 + 374a: 3940 cmpnei r1, 0 + 374c: 0bf9 bt 0x373e // 373e + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 374e: 932c ld.w r1, (r3, 0x30) + 3750: 3040 movi r0, 64 + 3752: 6840 and r1, r0 + 3754: 3940 cmpnei r1, 0 + 3756: 0bf4 bt 0x373e // 373e + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 3758: 932c ld.w r1, (r3, 0x30) + 375a: 6848 and r1, r2 + 375c: 3940 cmpnei r1, 0 + 375e: 0c03 bf 0x3764 // 3764 + SYSCON->EXICR = EXI_PIN9; + 3760: b34b st.w r2, (r3, 0x2c) +} + 3762: 07ef br 0x3740 // 3740 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3764: 3280 movi r2, 128 + 3766: 932c ld.w r1, (r3, 0x30) + 3768: 4241 lsli r2, r2, 1 + 376a: 6848 and r1, r2 + 376c: 3940 cmpnei r1, 0 + 376e: 0bf9 bt 0x3760 // 3760 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3770: 3280 movi r2, 128 + 3772: 932c ld.w r1, (r3, 0x30) + 3774: 4242 lsli r2, r2, 2 + 3776: 6848 and r1, r2 + 3778: 3940 cmpnei r1, 0 + 377a: 0bf3 bt 0x3760 // 3760 + 377c: 07e2 br 0x3740 // 3740 + 377e: 0000 bkpt + 3780: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003784 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3784: 1460 nie + 3786: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 3788: 1076 lrw r3, 0x2000005c // 37e0 + 378a: 3280 movi r2, 128 + 378c: 9360 ld.w r3, (r3, 0x0) + 378e: 237f addi r3, 128 + 3790: 932c ld.w r1, (r3, 0x30) + 3792: 4243 lsli r2, r2, 3 + 3794: 6848 and r1, r2 + 3796: 3940 cmpnei r1, 0 + 3798: 0c03 bf 0x379e // 379e + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 379a: b34b st.w r2, (r3, 0x2c) + } +} + 379c: 041f br 0x37da // 37da + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 379e: 3280 movi r2, 128 + 37a0: 932c ld.w r1, (r3, 0x30) + 37a2: 4244 lsli r2, r2, 4 + 37a4: 6848 and r1, r2 + 37a6: 3940 cmpnei r1, 0 + 37a8: 0bf9 bt 0x379a // 379a + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 37aa: 3280 movi r2, 128 + 37ac: 932c ld.w r1, (r3, 0x30) + 37ae: 4245 lsli r2, r2, 5 + 37b0: 6848 and r1, r2 + 37b2: 3940 cmpnei r1, 0 + 37b4: 0bf3 bt 0x379a // 379a + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 37b6: 3280 movi r2, 128 + 37b8: 932c ld.w r1, (r3, 0x30) + 37ba: 4246 lsli r2, r2, 6 + 37bc: 6848 and r1, r2 + 37be: 3940 cmpnei r1, 0 + 37c0: 0bed bt 0x379a // 379a + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 37c2: 3280 movi r2, 128 + 37c4: 932c ld.w r1, (r3, 0x30) + 37c6: 4247 lsli r2, r2, 7 + 37c8: 6848 and r1, r2 + 37ca: 3940 cmpnei r1, 0 + 37cc: 0be7 bt 0x379a // 379a + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 37ce: 3280 movi r2, 128 + 37d0: 932c ld.w r1, (r3, 0x30) + 37d2: 4248 lsli r2, r2, 8 + 37d4: 6848 and r1, r2 + 37d6: 3940 cmpnei r1, 0 + 37d8: 0be1 bt 0x379a // 379a +} + 37da: 1463 ipop + 37dc: 1461 nir + 37de: 0000 bkpt + 37e0: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +000037e4 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 37e4: 1460 nie + 37e6: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 37e8: 106b lrw r3, 0x20000014 // 3814 + 37ea: 3101 movi r1, 1 + 37ec: 9360 ld.w r3, (r3, 0x0) + 37ee: 934e ld.w r2, (r3, 0x38) + 37f0: 6884 and r2, r1 + 37f2: 3a40 cmpnei r2, 0 + 37f4: 0c03 bf 0x37fa // 37fa + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 37f6: b330 st.w r1, (r3, 0x40) + } +} + 37f8: 040b br 0x380e // 380e + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 37fa: 934e ld.w r2, (r3, 0x38) + 37fc: 3102 movi r1, 2 + 37fe: 6884 and r2, r1 + 3800: 3a40 cmpnei r2, 0 + 3802: 0bfa bt 0x37f6 // 37f6 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3804: 934e ld.w r2, (r3, 0x38) + 3806: 3104 movi r1, 4 + 3808: 6884 and r2, r1 + 380a: 3a40 cmpnei r2, 0 + 380c: 0bf5 bt 0x37f6 // 37f6 +} + 380e: 1463 ipop + 3810: 1461 nir + 3812: 0000 bkpt + 3814: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00003818 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 3818: 1460 nie + 381a: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 381c: 1071 lrw r3, 0x2000000c // 3860 + 381e: 3101 movi r1, 1 + 3820: 9360 ld.w r3, (r3, 0x0) + 3822: 934c ld.w r2, (r3, 0x30) + 3824: 6884 and r2, r1 + 3826: 3a40 cmpnei r2, 0 + 3828: 0c0a bf 0x383c // 383c + { + BT0->ICR = BT_PEND; + 382a: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 382c: 9341 ld.w r2, (r3, 0x4) + 382e: 3a86 bclri r2, 6 + 3830: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3832: 9340 ld.w r2, (r3, 0x0) + 3834: 3200 movi r2, 0 + 3836: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 3838: 1463 ipop + 383a: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 383c: 934c ld.w r2, (r3, 0x30) + 383e: 3102 movi r1, 2 + 3840: 6884 and r2, r1 + 3842: 3a40 cmpnei r2, 0 + 3844: 0c03 bf 0x384a // 384a + BT0->ICR = BT_EVTRG; + 3846: b32d st.w r1, (r3, 0x34) +} + 3848: 07f8 br 0x3838 // 3838 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 384a: 934c ld.w r2, (r3, 0x30) + 384c: 3104 movi r1, 4 + 384e: 6884 and r2, r1 + 3850: 3a40 cmpnei r2, 0 + 3852: 0bfa bt 0x3846 // 3846 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3854: 934c ld.w r2, (r3, 0x30) + 3856: 3108 movi r1, 8 + 3858: 6884 and r2, r1 + 385a: 3a40 cmpnei r2, 0 + 385c: 0bf5 bt 0x3846 // 3846 + 385e: 07ed br 0x3838 // 3838 + 3860: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003864 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3864: 1460 nie + 3866: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 3868: 1076 lrw r3, 0x20000008 // 38c0 + 386a: 3101 movi r1, 1 + 386c: 9360 ld.w r3, (r3, 0x0) + 386e: 934c ld.w r2, (r3, 0x30) + 3870: 6884 and r2, r1 + 3872: 3a40 cmpnei r2, 0 + 3874: 0c03 bf 0x387a // 387a + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 3876: b32d st.w r1, (r3, 0x34) + } +} + 3878: 0416 br 0x38a4 // 38a4 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 387a: 934c ld.w r2, (r3, 0x30) + 387c: 3102 movi r1, 2 + 387e: 6884 and r2, r1 + 3880: 3a40 cmpnei r2, 0 + 3882: 0c13 bf 0x38a8 // 38a8 + BT1->ICR = BT_CMP; + 3884: b32d st.w r1, (r3, 0x34) + NUM++; + 3886: 1070 lrw r3, 0x200000b0 // 38c4 + 3888: 8340 ld.b r2, (r3, 0x0) + 388a: 2200 addi r2, 1 + 388c: 7488 zextb r2, r2 + SysTick_100us++; + 388e: 9321 ld.w r1, (r3, 0x4) + 3890: 2100 addi r1, 1 + if(NUM >= 10){ + 3892: 3a09 cmphsi r2, 10 + NUM++; + 3894: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 3896: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 3898: 0c06 bf 0x38a4 // 38a4 + NUM = 0; + 389a: 3200 movi r2, 0 + 389c: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 389e: 9342 ld.w r2, (r3, 0x8) + 38a0: 2200 addi r2, 1 + 38a2: b342 st.w r2, (r3, 0x8) +} + 38a4: 1463 ipop + 38a6: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 38a8: 934c ld.w r2, (r3, 0x30) + 38aa: 3104 movi r1, 4 + 38ac: 6884 and r2, r1 + 38ae: 3a40 cmpnei r2, 0 + 38b0: 0be3 bt 0x3876 // 3876 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 38b2: 934c ld.w r2, (r3, 0x30) + 38b4: 3108 movi r1, 8 + 38b6: 6884 and r2, r1 + 38b8: 3a40 cmpnei r2, 0 + 38ba: 0bde bt 0x3876 // 3876 + 38bc: 07f4 br 0x38a4 // 38a4 + 38be: 0000 bkpt + 38c0: 20000008 .long 0x20000008 + 38c4: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +000038c8 : + 38c8: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000038ca : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 38ca: 1460 nie + 38cc: 1462 ipush + // ISR content ... + +} + 38ce: 1463 ipop + 38d0: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000038d2 : + 38d2: 1460 nie + 38d4: 1462 ipush + 38d6: 1463 ipop + 38d8: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000038da : + 38da: 1460 nie + 38dc: 1462 ipush + 38de: 1463 ipop + 38e0: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000038e2 : + 38e2: 1460 nie + 38e4: 1462 ipush + 38e6: 1463 ipop + 38e8: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000038ea : + 38ea: 1460 nie + 38ec: 1462 ipush + 38ee: 1463 ipop + 38f0: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000038f2 : + 38f2: 1460 nie + 38f4: 1462 ipush + 38f6: 1463 ipop + 38f8: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000038fa : + 38fa: 1460 nie + 38fc: 1462 ipush + 38fe: 1463 ipop + 3900: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003902 : + 3902: 1460 nie + 3904: 1462 ipush + 3906: 1463 ipop + 3908: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000390a : + 390a: 1460 nie + 390c: 1462 ipush + 390e: 1463 ipop + 3910: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003912 : + 3912: 1460 nie + 3914: 1462 ipush + 3916: 1463 ipop + 3918: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000391a : + 391a: 1460 nie + 391c: 1462 ipush + 391e: 1463 ipop + 3920: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003922 : + 3922: 1460 nie + 3924: 1462 ipush + 3926: 1463 ipop + 3928: 1461 nir + +Disassembly of section .text.__divsi3: + +0000392c <__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) +{ + 392c: 14c1 push r4 + int PSR; + __asm volatile( + 392e: c0006023 mfcr r3, cr<0, 0> + 3932: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3936: 1046 lrw r2, 0x20000000 // 394c <__divsi3+0x20> + 3938: 3400 movi r4, 0 + 393a: 9240 ld.w r2, (r2, 0x0) + 393c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 393e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3940: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3942: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3944: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3948: 9202 ld.w r0, (r2, 0x8) +} + 394a: 1481 pop r4 + 394c: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003950 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3950: 14c1 push r4 + int PSR; + __asm volatile( + 3952: c0006023 mfcr r3, cr<0, 0> + 3956: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 395a: 1046 lrw r2, 0x20000000 // 3970 <__udivsi3+0x20> + 395c: 3401 movi r4, 1 + 395e: 9240 ld.w r2, (r2, 0x0) + 3960: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3962: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3964: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3966: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3968: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 396c: 9202 ld.w r0, (r2, 0x8) +} + 396e: 1481 pop r4 + 3970: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00003974 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 3974: 14c1 push r4 + int PSR; + __asm volatile( + 3976: c0006023 mfcr r3, cr<0, 0> + 397a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 397e: 1046 lrw r2, 0x20000000 // 3994 <__modsi3+0x20> + 3980: 3400 movi r4, 0 + 3982: 9240 ld.w r2, (r2, 0x0) + 3984: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3986: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3988: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 398a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 398c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3990: 9203 ld.w r0, (r2, 0xc) +} + 3992: 1481 pop r4 + 3994: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003998 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3998: 14c1 push r4 + int PSR; + __asm volatile( + 399a: c0006023 mfcr r3, cr<0, 0> + 399e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 39a2: 1046 lrw r2, 0x20000000 // 39b8 <__umodsi3+0x20> + 39a4: 3401 movi r4, 1 + 39a6: 9240 ld.w r2, (r2, 0x0) + 39a8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 39aa: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 39ac: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 39ae: b221 st.w r1, (r2, 0x4) + __asm volatile( + 39b0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 39b4: 9203 ld.w r0, (r2, 0xc) +} + 39b6: 1481 pop r4 + 39b8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000039bc : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 39bc: c1807420 psrset ee, ie +} + 39c0: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000039c2 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 39c2: c0807020 psrclr ie +} + 39c6: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000039c8 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 39c8: 14d2 push r4-r5, r15 + switch(uart_id){ + 39ca: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 39cc: 6d07 mov r4, r1 + switch(uart_id){ + 39ce: 0c24 bf 0x3a16 // 3a16 + 39d0: 3840 cmpnei r0, 0 + 39d2: 0c04 bf 0x39da // 39da + 39d4: 3842 cmpnei r0, 2 + 39d6: 0c43 bf 0x3a5c // 3a5c + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 39d8: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 39da: e3fff363 bsr 0x20a0 // 20a0 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 39de: 3100 movi r1, 0 + 39e0: 3000 movi r0, 0 + 39e2: e3fff39f bsr 0x2120 // 2120 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 39e6: 1175 lrw r3, 0x20000040 // 3ab8 + 39e8: 3200 movi r2, 0 + 39ea: 9300 ld.w r0, (r3, 0x0) + 39ec: 1134 lrw r1, 0x1388 // 3abc + 39ee: e3fff417 bsr 0x221c // 221c + UART0_Int_Enable(); + 39f2: e3fff37b bsr 0x20e8 // 20e8 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 39f6: 3278 movi r2, 120 + 39f8: 3100 movi r1, 0 + 39fa: 1112 lrw r0, 0x20000280 // 3ac0 + 39fc: e3ffefe6 bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 3a00: 1171 lrw r3, 0x200002e0 // 3ac4 + 3a02: 3203 movi r2, 3 + 3a04: a348 st.b r2, (r3, 0x8) + g_uart[UART_0].processing_cf = prt_cf; + 3a06: 4c48 lsri r2, r4, 8 + 3a08: a394 st.b r4, (r3, 0x14) + 3a0a: a355 st.b r2, (r3, 0x15) + 3a0c: 4c50 lsri r2, r4, 16 + 3a0e: 4c98 lsri r4, r4, 24 + 3a10: a356 st.b r2, (r3, 0x16) + 3a12: a397 st.b r4, (r3, 0x17) + break; + 3a14: 07e2 br 0x39d8 // 39d8 + UART1_DeInit(); //clear all UART Register + 3a16: e3fff351 bsr 0x20b8 // 20b8 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3a1a: 3102 movi r1, 2 + 3a1c: 3001 movi r0, 1 + 3a1e: e3fff381 bsr 0x2120 // 2120 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 3a22: 11aa lrw r5, 0x2000003c // 3ac8 + 3a24: 31d0 movi r1, 208 + 3a26: 3200 movi r2, 0 + 3a28: 4121 lsli r1, r1, 1 + 3a2a: 9500 ld.w r0, (r5, 0x0) + 3a2c: e3fff3f0 bsr 0x220c // 220c + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3a30: 31d0 movi r1, 208 + 3a32: 9500 ld.w r0, (r5, 0x0) + 3a34: 3200 movi r2, 0 + 3a36: 4121 lsli r1, r1, 1 + 3a38: e3fff3f2 bsr 0x221c // 221c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3a3c: 3278 movi r2, 120 + 3a3e: 3100 movi r1, 0 + 3a40: 1103 lrw r0, 0x200002f8 // 3acc + 3a42: e3ffefc3 bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 3a46: 1163 lrw r3, 0x20000360 // 3ad0 + 3a48: 3203 movi r2, 3 + 3a4a: a340 st.b r2, (r3, 0x0) + g_uart[UART_1].processing_cf = prt_cf; + 3a4c: 4c48 lsri r2, r4, 8 + 3a4e: a38c st.b r4, (r3, 0xc) + 3a50: a34d st.b r2, (r3, 0xd) + 3a52: 4c50 lsri r2, r4, 16 + 3a54: 4c98 lsri r4, r4, 24 + 3a56: a34e st.b r2, (r3, 0xe) + 3a58: a38f st.b r4, (r3, 0xf) + break; + 3a5a: 07bf br 0x39d8 // 39d8 + UART2_DeInit(); //clear all UART Register + 3a5c: e3fff33a bsr 0x20d0 // 20d0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3a60: 3102 movi r1, 2 + 3a62: 3002 movi r0, 2 + 3a64: e3fff35e bsr 0x2120 // 2120 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3a68: 107b lrw r3, 0x20000038 // 3ad4 + 3a6a: 3200 movi r2, 0 + 3a6c: 9300 ld.w r0, (r3, 0x0) + 3a6e: 1034 lrw r1, 0x1388 // 3abc + 3a70: e3fff3d6 bsr 0x221c // 221c + UART2_Int_Enable(); + 3a74: e3fff348 bsr 0x2104 // 2104 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3a78: 3278 movi r2, 120 + 3a7a: 3100 movi r1, 0 + 3a7c: 1017 lrw r0, 0x20000370 // 3ad8 + 3a7e: e3ffefa5 bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3a82: 1077 lrw r3, 0x200003c0 // 3adc + 3a84: 3203 movi r2, 3 + 3a86: a358 st.b r2, (r3, 0x18) + g_uart[UART_2].processing_cf = prt_cf; + 3a88: 231f addi r3, 32 + 3a8a: 4c48 lsri r2, r4, 8 + 3a8c: a384 st.b r4, (r3, 0x4) + 3a8e: a345 st.b r2, (r3, 0x5) + 3a90: 4c50 lsri r2, r4, 16 + 3a92: 4c98 lsri r4, r4, 24 + 3a94: a387 st.b r4, (r3, 0x7) + 3a96: a346 st.b r2, (r3, 0x6) + GPIO_Init(GPIOB0,3,Output); + 3a98: 3103 movi r1, 3 + 3a9a: 1092 lrw r4, 0x20000048 // 3ae0 + 3a9c: 3200 movi r2, 0 + 3a9e: 9400 ld.w r0, (r4, 0x0) + 3aa0: e3fff1a6 bsr 0x1dec // 1dec + GPIO_DriveStrength_EN(GPIOB0,3); + 3aa4: 9400 ld.w r0, (r4, 0x0) + 3aa6: 3103 movi r1, 3 + 3aa8: e3fff212 bsr 0x1ecc // 1ecc + GPIO_Write_Low(GPIOB0,3); + 3aac: 9400 ld.w r0, (r4, 0x0) + 3aae: 3103 movi r1, 3 + 3ab0: e3fff219 bsr 0x1ee2 // 1ee2 +} + 3ab4: 0792 br 0x39d8 // 39d8 + 3ab6: 0000 bkpt + 3ab8: 20000040 .long 0x20000040 + 3abc: 00001388 .long 0x00001388 + 3ac0: 20000280 .long 0x20000280 + 3ac4: 200002e0 .long 0x200002e0 + 3ac8: 2000003c .long 0x2000003c + 3acc: 200002f8 .long 0x200002f8 + 3ad0: 20000360 .long 0x20000360 + 3ad4: 20000038 .long 0x20000038 + 3ad8: 20000370 .long 0x20000370 + 3adc: 200003c0 .long 0x200003c0 + 3ae0: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003ae4 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3ae4: 14c2 push r4-r5 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 3ae6: 1057 lrw r2, 0x200003d6 // 3b40 + 3ae8: 8261 ld.b r3, (r2, 0x1) + 3aea: 8280 ld.b r4, (r2, 0x0) + 3aec: 4368 lsli r3, r3, 8 + 3aee: 6cd0 or r3, r4 + 3af0: 3462 movi r4, 98 + 3af2: 5a22 addi r1, r2, 1 + 3af4: 64d1 cmplt r4, r3 + 3af6: 6d07 mov r4, r1 + 3af8: 0c04 bf 0x3b00 // 3b00 + 3afa: 3300 movi r3, 0 + 3afc: a260 st.b r3, (r2, 0x0) + 3afe: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3b00: 8460 ld.b r3, (r4, 0x0) + 3b02: 82a0 ld.b r5, (r2, 0x0) + 3b04: 4368 lsli r3, r3, 8 + 3b06: 6cd4 or r3, r5 + 3b08: 102f lrw r1, 0x20000280 // 3b44 + 3b0a: 5b82 addi r4, r3, 1 + 3b0c: 7511 zexth r4, r4 + 3b0e: 60c4 addu r3, r1 + 3b10: a280 st.b r4, (r2, 0x0) + 3b12: 23ef addi r3, 240 + 3b14: 4c88 lsri r4, r4, 8 + 3b16: a300 st.b r0, (r3, 0x0) + 3b18: a281 st.b r4, (r2, 0x1) + +// uart_receive_input((U8_T)data); + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b1a: 32a0 movi r2, 160 + 3b1c: 106b lrw r3, 0x200000b8 // 3b48 + 3b1e: 4241 lsli r2, r2, 1 + 3b20: 9360 ld.w r3, (r3, 0x0) + 3b22: 6084 addu r2, r1 + 3b24: 4b08 lsri r0, r3, 8 + 3b26: a27c st.b r3, (r2, 0x1c) + 3b28: a21d st.b r0, (r2, 0x1d) + 3b2a: 4b10 lsri r0, r3, 16 + 3b2c: 4b78 lsri r3, r3, 24 + 3b2e: a27f st.b r3, (r2, 0x1f) + g_uart[UART_2].Receiving = 0x01; + 3b30: 33aa movi r3, 170 + 3b32: 4361 lsli r3, r3, 1 + 3b34: 604c addu r1, r3 + 3b36: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b38: a21e st.b r0, (r2, 0x1e) + g_uart[UART_2].Receiving = 0x01; + 3b3a: a160 st.b r3, (r1, 0x0) +} + 3b3c: 1482 pop r4-r5 + 3b3e: 0000 bkpt + 3b40: 200003d6 .long 0x200003d6 + 3b44: 20000280 .long 0x20000280 + 3b48: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_TASK: + +00003b4c : + + +void UART2_TASK(void){ + 3b4c: 14d3 push r4-r6, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3b4e: 1185 lrw r4, 0x200003d4 // 3be0 + 3b50: 8460 ld.b r3, (r4, 0x0) + 3b52: 3b41 cmpnei r3, 1 + 3b54: 0844 bt 0x3bdc // 3bdc + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3b56: 8449 ld.b r2, (r4, 0x9) + 3b58: 8468 ld.b r3, (r4, 0x8) + 3b5a: 4248 lsli r2, r2, 8 + 3b5c: 6c8c or r2, r3 + 3b5e: 846a ld.b r3, (r4, 0xa) + 3b60: 4370 lsli r3, r3, 16 + 3b62: 6c8c or r2, r3 + 3b64: 846b ld.b r3, (r4, 0xb) + 3b66: 1100 lrw r0, 0x200000b8 // 3be4 + 3b68: 4378 lsli r3, r3, 24 + 3b6a: 6cc8 or r3, r2 + 3b6c: 9020 ld.w r1, (r0, 0x0) + 3b6e: 8445 ld.b r2, (r4, 0x5) + 3b70: 604e subu r1, r3 + 3b72: 4248 lsli r2, r2, 8 + 3b74: 8464 ld.b r3, (r4, 0x4) + 3b76: 6c8c or r2, r3 + 3b78: 8466 ld.b r3, (r4, 0x6) + 3b7a: 4370 lsli r3, r3, 16 + 3b7c: 6c8c or r2, r3 + 3b7e: 8467 ld.b r3, (r4, 0x7) + 3b80: 4378 lsli r3, r3, 24 + 3b82: 6cc8 or r3, r2 + 3b84: 644c cmphs r3, r1 + 3b86: 082b bt 0x3bdc // 3bdc + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b88: 9060 ld.w r3, (r0, 0x0) + 3b8a: 1058 lrw r2, 0x200003c0 // 3be8 + 3b8c: 4b28 lsri r1, r3, 8 + 3b8e: a27c st.b r3, (r2, 0x1c) + 3b90: a23d st.b r1, (r2, 0x1d) + 3b92: 4b30 lsri r1, r3, 16 + 3b94: 4b78 lsri r3, r3, 24 + 3b96: a23e st.b r1, (r2, 0x1e) + 3b98: a27f st.b r3, (r2, 0x1f) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", g_uart[UART_2].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3b9a: 8451 ld.b r2, (r4, 0x11) + 3b9c: 8470 ld.b r3, (r4, 0x10) + 3b9e: 4248 lsli r2, r2, 8 + 3ba0: 6c8c or r2, r3 + 3ba2: 8472 ld.b r3, (r4, 0x12) + 3ba4: 4370 lsli r3, r3, 16 + 3ba6: 6c8c or r2, r3 + 3ba8: 8473 ld.b r3, (r4, 0x13) + 3baa: 4378 lsli r3, r3, 24 + 3bac: 6cc8 or r3, r2 + 3bae: 3b40 cmpnei r3, 0 + 3bb0: 5ca6 addi r5, r4, 2 + 3bb2: 0c11 bf 0x3bd4 // 3bd4 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3bb4: 8423 ld.b r1, (r4, 0x3) + 3bb6: 8540 ld.b r2, (r5, 0x0) + 3bb8: 4128 lsli r1, r1, 8 + 3bba: 6c48 or r1, r2 + 3bbc: 100c lrw r0, 0x20000370 // 3bec + 3bbe: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3bc0: 3841 cmpnei r0, 1 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3bc2: 5cca addi r6, r4, 3 + if(rev == 0x01){ + 3bc4: 0808 bt 0x3bd4 // 3bd4 + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3bc6: 8423 ld.b r1, (r4, 0x3) + 3bc8: 8560 ld.b r3, (r5, 0x0) + 3bca: 4128 lsli r1, r1, 8 + 3bcc: 6c4c or r1, r3 + 3bce: 1008 lrw r0, 0x20000370 // 3bec + 3bd0: e00003d0 bsr 0x4370 // 4370 + } + + g_uart[UART_2].RecvLen = 0; + 3bd4: 3300 movi r3, 0 + 3bd6: a560 st.b r3, (r5, 0x0) + 3bd8: a561 st.b r3, (r5, 0x1) + g_uart[UART_2].Receiving = 0; + 3bda: a460 st.b r3, (r4, 0x0) + } + } +} + 3bdc: 1493 pop r4-r6, r15 + 3bde: 0000 bkpt + 3be0: 200003d4 .long 0x200003d4 + 3be4: 200000b8 .long 0x200000b8 + 3be8: 200003c0 .long 0x200003c0 + 3bec: 20000370 .long 0x20000370 + +Disassembly of section .text.MCU485_SendData: + +00003bf0 : + }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){ + 3bf0: 14d4 push r4-r7, r15 + 3bf2: 1421 subi r14, r14, 4 + 3bf4: b800 st.w r0, (r14, 0x0) + 3bf6: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3bf8: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3bfa: 109d lrw r4, 0x200000bc // 3c6c + 3bfc: 10dd lrw r6, 0x20000048 // 3c70 + 3bfe: 9460 ld.w r3, (r4, 0x0) + 3c00: 3b41 cmpnei r3, 1 + 3c02: 0c29 bf 0x3c54 // 3c54 + } + + GPIO_Reverse(GPIOB0,3); + } + + delay_nus(500); + 3c04: 30fa movi r0, 250 + 3c06: 4001 lsli r0, r0, 1 + 3c08: e3fff8ea bsr 0x2ddc // 2ddc + GPIO_Write_High(GPIOB0,3); + 3c0c: 3103 movi r1, 3 + 3c0e: 9600 ld.w r0, (r6, 0x0) + 3c10: e3fff165 bsr 0x1eda // 1eda + + RS485_Comm_Flag = 0x01; + 3c14: 3301 movi r3, 1 + 3c16: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 3c18: 3300 movi r3, 0 + 3c1a: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 3c1c: b463 st.w r3, (r4, 0xc) + + UARTTransmit(UART2,buff,len); + 3c1e: 6c9f mov r2, r7 + 3c20: 1075 lrw r3, 0x20000038 // 3c74 + 3c22: 9300 ld.w r0, (r3, 0x0) + 3c24: 9820 ld.w r1, (r14, 0x0) + 3c26: e3fff303 bsr 0x222c // 222c + + do{ + delay_nus(100); + 3c2a: 3064 movi r0, 100 + 3c2c: e3fff8d8 bsr 0x2ddc // 2ddc + + delay_cnt ++; + 3c30: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3c32: 3363 movi r3, 99 + 3c34: 654c cmphs r3, r5 + 3c36: 0c07 bf 0x3c44 // 3c44 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3c38: 9462 ld.w r3, (r4, 0x8) + 3c3a: 65cd cmplt r3, r7 + 3c3c: 0bf7 bt 0x3c2a // 3c2a + 3c3e: 9463 ld.w r3, (r4, 0xc) + 3c40: 65cd cmplt r3, r7 + 3c42: 0bf4 bt 0x3c2a // 3c2a + + GPIO_Write_Low(GPIOB0,3); + 3c44: 9600 ld.w r0, (r6, 0x0) + 3c46: 3103 movi r1, 3 + 3c48: e3fff14d bsr 0x1ee2 // 1ee2 + + RS485_Comm_Flag = 0x00; + 3c4c: 3300 movi r3, 0 + 3c4e: b461 st.w r3, (r4, 0x4) +} + 3c50: 1401 addi r14, r14, 4 + 3c52: 1494 pop r4-r7, r15 + delay_nus(100); + 3c54: 3064 movi r0, 100 + 3c56: e3fff8c3 bsr 0x2ddc // 2ddc + delay_cnt ++; + 3c5a: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3c5c: 3364 movi r3, 100 + 3c5e: 64d6 cmpne r5, r3 + 3c60: 0fd2 bf 0x3c04 // 3c04 + GPIO_Reverse(GPIOB0,3); + 3c62: 3103 movi r1, 3 + 3c64: 9600 ld.w r0, (r6, 0x0) + 3c66: e3fff142 bsr 0x1eea // 1eea + 3c6a: 07ca br 0x3bfe // 3bfe + 3c6c: 200000bc .long 0x200000bc + 3c70: 20000048 .long 0x20000048 + 3c74: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003c78 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3c78: 1423 subi r14, r14, 12 + 3c7a: b862 st.w r3, (r14, 0x8) + 3c7c: b841 st.w r2, (r14, 0x4) + 3c7e: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3c80: 1403 addi r14, r14, 12 + 3c82: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003c84 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3c84: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003c88 : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 3c88: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3c8a: 3234 movi r2, 52 + 3c8c: 3100 movi r1, 0 + 3c8e: 1014 lrw r0, 0x20000404 // 3cdc + 3c90: e3ffee9c bsr 0x19c8 // 19c8 <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3c94: 321c movi r2, 28 + 3c96: 3100 movi r1, 0 + 3c98: 1012 lrw r0, 0x200003e8 // 3ce0 + 3c9a: e3ffee97 bsr 0x19c8 // 19c8 <__memset_fast> +// g_tk_filt[i].base_update_en = 0x01; + } + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3c9e: 1092 lrw r4, 0x20000438 // 3ce4 + EEPROM_Init(); //按键库初始化前先读取参数 + 3ca0: e0000492 bsr 0x45c4 // 45c4 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3ca4: 8405 ld.b r0, (r4, 0x5) + 3ca6: 102f lrw r1, 0x200003e8 // 3ce0 + 3ca8: e00004ec bsr 0x4680 // 4680 + if(rev == 0x00){ + 3cac: 3840 cmpnei r0, 0 + 3cae: 080e bt 0x3cca // 3cca + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3cb0: 8405 ld.b r0, (r4, 0x5) + 3cb2: 102c lrw r1, 0x200003e8 // 3ce0 + 3cb4: e000053c bsr 0x472c // 472c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3cb8: 100a lrw r0, 0x200003e8 // 3ce0 + 3cba: e00005ad bsr 0x4814 // 4814 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3cbe: e0002115 bsr 0x7ee8 // 7ee8 + + base_update_f = 0x01; //触摸状态强制更新 + 3cc2: 106a lrw r3, 0x2000061f // 3ce8 + 3cc4: 3201 movi r2, 1 + 3cc6: a340 st.b r2, (r3, 0x0) + +} + 3cc8: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3cca: 1029 lrw r1, 0x87b2 // 3cec + 3ccc: 3000 movi r0, 0 + 3cce: e3ffffd5 bsr 0x3c78 // 3c78 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3cd2: 8405 ld.b r0, (r4, 0x5) + 3cd4: 1023 lrw r1, 0x200003e8 // 3ce0 + 3cd6: e000057f bsr 0x47d4 // 47d4 + 3cda: 07ef br 0x3cb8 // 3cb8 + 3cdc: 20000404 .long 0x20000404 + 3ce0: 200003e8 .long 0x200003e8 + 3ce4: 20000438 .long 0x20000438 + 3ce8: 2000061f .long 0x2000061f + 3cec: 000087b2 .long 0x000087b2 + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003cf0 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3cf0: 14d3 push r4-r6, r15 + 3cf2: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3cf4: 1289 lrw r4, 0x20000068 // 3e18 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cf6: 8400 ld.b r0, (r4, 0x0) + 3cf8: 1229 lrw r1, 0x2000076a // 3e1c + 3cfa: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3cfc: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cfe: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3d00: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3d04: 330a movi r3, 10 + 3d06: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3d0a: 8a60 ld.h r3, (r2, 0x0) + 3d0c: 4b68 lsri r3, r3, 8 + 3d0e: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3d12: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3d14: 1243 lrw r2, 0x200007ae // 3e20 + 3d16: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3d18: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3d1c: 8d60 ld.h r3, (r5, 0x0) + 3d1e: 4b68 lsri r3, r3, 8 + 3d20: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3d24: 8d60 ld.h r3, (r5, 0x0) + 3d26: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3d2a: 117f lrw r3, 0x20000508 // 3e24 + 3d2c: 600c addu r0, r3 + 3d2e: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3d30: 8800 ld.h r0, (r0, 0x0) + 3d32: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3d36: 8401 ld.b r0, (r4, 0x1) + 3d38: 4001 lsli r0, r0, 1 + 3d3a: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3d3c: 4da8 lsri r5, r5, 8 + 3d3e: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3d42: 8ea0 ld.h r5, (r6, 0x0) + 3d44: 4da8 lsri r5, r5, 8 + 3d46: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3d4a: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3d4c: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3d4e: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3d52: 8ea0 ld.h r5, (r6, 0x0) + 3d54: 4da8 lsri r5, r5, 8 + 3d56: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3d5a: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3d5c: 8ea0 ld.h r5, (r6, 0x0) + 3d5e: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3d62: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3d64: 8800 ld.h r0, (r0, 0x0) + 3d66: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3d6a: 8402 ld.b r0, (r4, 0x2) + 3d6c: 4001 lsli r0, r0, 1 + 3d6e: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3d70: 4da8 lsri r5, r5, 8 + 3d72: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3d76: 8ea0 ld.h r5, (r6, 0x0) + 3d78: 4da8 lsri r5, r5, 8 + 3d7a: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3d7e: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3d80: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3d82: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3d86: 8ea0 ld.h r5, (r6, 0x0) + 3d88: 4da8 lsri r5, r5, 8 + 3d8a: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3d8e: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3d90: 8ea0 ld.h r5, (r6, 0x0) + 3d92: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3d96: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3d98: 8800 ld.h r0, (r0, 0x0) + 3d9a: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3d9e: 8403 ld.b r0, (r4, 0x3) + 3da0: 4001 lsli r0, r0, 1 + 3da2: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3da4: 4da8 lsri r5, r5, 8 + 3da6: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3daa: 8ea0 ld.h r5, (r6, 0x0) + 3dac: 4da8 lsri r5, r5, 8 + 3dae: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3db2: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3db4: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3db6: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3dba: 8ea0 ld.h r5, (r6, 0x0) + 3dbc: 4da8 lsri r5, r5, 8 + 3dbe: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3dc2: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3dc4: 8ea0 ld.h r5, (r6, 0x0) + 3dc6: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3dca: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3dcc: 8800 ld.h r0, (r0, 0x0) + 3dce: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3dd2: 8404 ld.b r0, (r4, 0x4) + 3dd4: 4001 lsli r0, r0, 1 + 3dd6: 6040 addu r1, r0 + 3dd8: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3dda: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3ddc: 8920 ld.h r1, (r1, 0x0) + 3dde: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3de2: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3de4: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3de6: 8a40 ld.h r2, (r2, 0x0) + 3de8: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3dec: 8b40 ld.h r2, (r3, 0x0) + 3dee: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3df0: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3df2: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3df4: 4928 lsri r1, r1, 8 + 3df6: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3dfa: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3dfe: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3e02: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3e06: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3e08: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3e0a: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3e0c: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3e10: e3fffef0 bsr 0x3bf0 // 3bf0 +// UARTTransmit(UART2,send_buff,send_len); + +} + 3e14: 140d addi r14, r14, 52 + 3e16: 1493 pop r4-r6, r15 + 3e18: 20000068 .long 0x20000068 + 3e1c: 2000076a .long 0x2000076a + 3e20: 200007ae .long 0x200007ae + 3e24: 20000508 .long 0x20000508 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003e28 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3e28: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3e2a: 3804 cmphsi r0, 5 + 3e2c: 0818 bt 0x3e5c // 3e5c + 3e2e: 106d lrw r3, 0x20000404 // 3e60 + 3e30: e3ffe766 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3e34: 0e0b0803 .long 0x0e0b0803 + 3e38: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3e3a: 930a ld.w r0, (r3, 0x28) + 3e3c: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3e3e: 3301 movi r3, 1 + U8_T state = 0; + 3e40: 680c and r0, r3 +// } + break; + } + + return state; +} + 3e42: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3e44: 930a ld.w r0, (r3, 0x28) + 3e46: 480a lsri r0, r0, 10 + 3e48: 07fb br 0x3e3e // 3e3e + if(g_key.key_state & 0x0800){ + 3e4a: 930a ld.w r0, (r3, 0x28) + 3e4c: 480b lsri r0, r0, 11 + 3e4e: 07f8 br 0x3e3e // 3e3e + if(g_key.key_state & 0x1000){ + 3e50: 930a ld.w r0, (r3, 0x28) + 3e52: 480c lsri r0, r0, 12 + 3e54: 07f5 br 0x3e3e // 3e3e + if(g_key.key_state & 0x2000){ + 3e56: 930a ld.w r0, (r3, 0x28) + 3e58: 480d lsri r0, r0, 13 + 3e5a: 07f2 br 0x3e3e // 3e3e + U8_T state = 0; + 3e5c: 3000 movi r0, 0 + 3e5e: 07f2 br 0x3e42 // 3e42 + 3e60: 20000404 .long 0x20000404 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003e64 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3e64: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3e66: 118a lrw r4, 0x20000404 // 3f0c + 3e68: 8465 ld.b r3, (r4, 0x5) + 3e6a: 3b42 cmpnei r3, 2 + 3e6c: 081c bt 0x3ea4 // 3ea4 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3e6e: 3300 movi r3, 0 + 3e70: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3e72: 8466 ld.b r3, (r4, 0x6) + 3e74: 3b42 cmpnei r3, 2 + 3e76: 0820 bt 0x3eb6 // 3eb6 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3e78: 3300 movi r3, 0 + 3e7a: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3e7c: 8467 ld.b r3, (r4, 0x7) + 3e7e: 3b42 cmpnei r3, 2 + 3e80: 0824 bt 0x3ec8 // 3ec8 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3e82: 3300 movi r3, 0 + 3e84: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3e86: e0001471 bsr 0x6768 // 6768 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3e8a: 8468 ld.b r3, (r4, 0x8) + 3e8c: 3b42 cmpnei r3, 2 + 3e8e: 0829 bt 0x3ee0 // 3ee0 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3e90: 3300 movi r3, 0 + 3e92: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3e94: e000152e bsr 0x68f0 // 68f0 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3e98: 8469 ld.b r3, (r4, 0x9) + 3e9a: 3b42 cmpnei r3, 2 + 3e9c: 082e bt 0x3ef8 // 3ef8 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3e9e: 3300 movi r3, 0 + 3ea0: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3ea2: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ea4: 3b44 cmpnei r3, 4 + 3ea6: 0fe4 bf 0x3e6e // 3e6e + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3ea8: 3b41 cmpnei r3, 1 + 3eaa: 0be4 bt 0x3e72 // 3e72 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3eac: 3300 movi r3, 0 + 3eae: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3eb0: e00012f4 bsr 0x6498 // 6498 + 3eb4: 07df br 0x3e72 // 3e72 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3eb6: 3b44 cmpnei r3, 4 + 3eb8: 0fe0 bf 0x3e78 // 3e78 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3eba: 3b41 cmpnei r3, 1 + 3ebc: 0be0 bt 0x3e7c // 3e7c + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3ebe: 3300 movi r3, 0 + 3ec0: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3ec2: e000135b bsr 0x6578 // 6578 + 3ec6: 07db br 0x3e7c // 3e7c + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ec8: 3b44 cmpnei r3, 4 + 3eca: 0804 bt 0x3ed2 // 3ed2 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3ecc: 3300 movi r3, 0 + 3ece: a467 st.b r3, (r4, 0x7) + 3ed0: 07dd br 0x3e8a // 3e8a + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3ed2: 3b41 cmpnei r3, 1 + 3ed4: 0bdb bt 0x3e8a // 3e8a + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3ed6: 3300 movi r3, 0 + 3ed8: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3eda: e00013bf bsr 0x6658 // 6658 + 3ede: 07d6 br 0x3e8a // 3e8a + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ee0: 3b44 cmpnei r3, 4 + 3ee2: 0804 bt 0x3eea // 3eea + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3ee4: 3300 movi r3, 0 + 3ee6: a468 st.b r3, (r4, 0x8) + 3ee8: 07d8 br 0x3e98 // 3e98 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3eea: 3b41 cmpnei r3, 1 + 3eec: 0bd6 bt 0x3e98 // 3e98 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3eee: 3300 movi r3, 0 + 3ef0: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3ef2: e0001477 bsr 0x67e0 // 67e0 + 3ef6: 07d1 br 0x3e98 // 3e98 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3ef8: 3b44 cmpnei r3, 4 + 3efa: 0fd2 bf 0x3e9e // 3e9e + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3efc: 3b41 cmpnei r3, 1 + 3efe: 0bd2 bt 0x3ea2 // 3ea2 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3f00: 3300 movi r3, 0 + 3f02: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3f04: e0001532 bsr 0x6968 // 6968 +} + 3f08: 07cd br 0x3ea2 // 3ea2 + 3f0a: 0000 bkpt + 3f0c: 20000404 .long 0x20000404 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003f10 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3f10: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3f12: 106c lrw r3, 0x200004f9 // 3f40 + 3f14: 8340 ld.b r2, (r3, 0x0) + 3f16: 3a41 cmpnei r2, 1 + 3f18: 0c04 bf 0x3f20 // 3f20 + 3f1a: 8362 ld.b r3, (r3, 0x2) + 3f1c: 3b45 cmpnei r3, 5 + 3f1e: 0c10 bf 0x3f3e // 3f3e + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3f20: 1069 lrw r3, 0x20000404 // 3f44 + 3f22: 835b ld.b r2, (r3, 0x1b) + 3f24: 3a41 cmpnei r2, 1 + 3f26: 080c bt 0x3f3e // 3f3e + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 3f28: 1028 lrw r1, 0x200000b8 // 3f48 + 3f2a: 9140 ld.w r2, (r1, 0x0) + 3f2c: 930c ld.w r0, (r3, 0x30) + 3f2e: 6082 subu r2, r0 + 3f30: 3095 movi r0, 149 + 3f32: 6480 cmphs r0, r2 + 3f34: 0805 bt 0x3f3e // 3f3e + g_key.key_dug_tick = SysTick_1ms; + 3f36: 9140 ld.w r2, (r1, 0x0) + 3f38: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + TouchKey_RS485_Printf(); + 3f3a: e3fffedb bsr 0x3cf0 // 3cf0 + } + } +} + 3f3e: 1490 pop r15 + 3f40: 200004f9 .long 0x200004f9 + 3f44: 20000404 .long 0x20000404 + 3f48: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003f4c : +void Touch_Key_Task(void){ + 3f4c: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3f4e: 1138 lrw r1, 0x200000b8 // 402c + 3f50: 1178 lrw r3, 0x20000404 // 4030 + 3f52: 9140 ld.w r2, (r1, 0x0) + 3f54: 930b ld.w r0, (r3, 0x2c) + 3f56: 6082 subu r2, r0 + 3f58: 3a04 cmphsi r2, 5 + 3f5a: 0806 bt 0x3f66 // 3f66 + break; + } + } + } + + Touch_Key_Event_Handling(); + 3f5c: e3ffff84 bsr 0x3e64 // 3e64 + + TouchKey_Set_Interface_Task(); + 3f60: e3ffffd8 bsr 0x3f10 // 3f10 + +} + 3f64: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3f66: 9140 ld.w r2, (r1, 0x0) + 3f68: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 3f6a: 1133 lrw r1, 0x2000063c // 4034 + 3f6c: 9140 ld.w r2, (r1, 0x0) + 3f6e: 3a40 cmpnei r2, 0 + 3f70: 0c02 bf 0x3f74 // 3f74 + g_key.key_state = Key_Map; + 3f72: 9140 ld.w r2, (r1, 0x0) + 3f74: 118f lrw r4, 0x20000404 // 4030 +void Touch_Key_Task(void){ + 3f76: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3f78: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 3f7a: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3f7c: 11ef lrw r7, 0x257 // 4038 + switch (g_key.KEY_STA[i]) { + 3f7e: 8460 ld.b r3, (r4, 0x0) + 3f80: 3b41 cmpnei r3, 1 + 3f82: 0c28 bf 0x3fd2 // 3fd2 + 3f84: 3b40 cmpnei r3, 0 + 3f86: 0c0a bf 0x3f9a // 3f9a + 3f88: 3b42 cmpnei r3, 2 + 3f8a: 0c41 bf 0x400c // 400c + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3f8c: 2500 addi r5, 1 + 3f8e: 7554 zextb r5, r5 + 3f90: 3d45 cmpnei r5, 5 + 3f92: 2400 addi r4, 1 + 3f94: 2601 addi r6, 2 + 3f96: 0bf4 bt 0x3f7e // 3f7e + 3f98: 07e2 br 0x3f5c // 3f5c + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3f9a: 6c17 mov r0, r5 + 3f9c: e3ffff46 bsr 0x3e28 // 3e28 + 3fa0: 3841 cmpnei r0, 1 + 3fa2: 0813 bt 0x3fc8 // 3fc8 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3fa4: 8474 ld.b r3, (r4, 0x14) + 3fa6: 3b01 cmphsi r3, 2 + 3fa8: 0804 bt 0x3fb0 // 3fb0 + g_key.delayCnt[i]++; + 3faa: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3fac: a474 st.b r3, (r4, 0x14) + 3fae: 07ef br 0x3f8c // 3f8c + Controlled_Buzzer(0x01); + 3fb0: 3001 movi r0, 1 + 3fb2: e0000ea7 bsr 0x5d00 // 5d00 + Contol_Switch_ClickAction(i,Control_ON); + 3fb6: 3101 movi r1, 1 + 3fb8: 6c17 mov r0, r5 + 3fba: e000096b bsr 0x5290 // 5290 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3fbe: 3301 movi r3, 1 + 3fc0: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3fc2: 3300 movi r3, 0 + 3fc4: ae6e st.h r3, (r6, 0x1c) + 3fc6: 07f3 br 0x3fac // 3fac + g_key.delayCnt[i] = 0; + 3fc8: 3300 movi r3, 0 + 3fca: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3fcc: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3fce: a465 st.b r3, (r4, 0x5) + 3fd0: 07de br 0x3f8c // 3f8c + g_key.key_time[i]++; + 3fd2: 8e6e ld.h r3, (r6, 0x1c) + 3fd4: 2300 addi r3, 1 + 3fd6: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3fd8: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3fda: ae6e st.h r3, (r6, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3fdc: 0c10 bf 0x3ffc // 3ffc + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3fde: 6c17 mov r0, r5 + 3fe0: e3ffff24 bsr 0x3e28 // 3e28 + 3fe4: 3840 cmpnei r0, 0 + 3fe6: 0bd3 bt 0x3f8c // 3f8c + Contol_Switch_ClickAction(i,Control_OFF); + 3fe8: 3102 movi r1, 2 + 3fea: 6c17 mov r0, r5 + 3fec: e0000952 bsr 0x5290 // 5290 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ff0: 3301 movi r3, 1 + 3ff2: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3ff4: 3300 movi r3, 0 + 3ff6: ae6e st.h r3, (r6, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ff8: a460 st.b r3, (r4, 0x0) + 3ffa: 07c9 br 0x3f8c // 3f8c + g_key.KEY_STA[i] = KEY_STA_S2; + 3ffc: 3302 movi r3, 2 + 3ffe: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 4000: 3300 movi r3, 0 + 4002: ae6e st.h r3, (r6, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 4004: 3303 movi r3, 3 + 4006: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 4008: 3302 movi r3, 2 + 400a: 07e2 br 0x3fce // 3fce + g_key.key_longPress[i] = KEY_VAL_NOT; + 400c: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 400e: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 4010: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 4012: e3ffff0b bsr 0x3e28 // 3e28 + 4016: 3840 cmpnei r0, 0 + 4018: 0bba bt 0x3f8c // 3f8c + Contol_Switch_ClickAction(i,Control_OFF); + 401a: 3102 movi r1, 2 + 401c: 6c17 mov r0, r5 + 401e: e0000939 bsr 0x5290 // 5290 + g_key.KEY_STA[i] = KEY_STA_S0; + 4022: 3300 movi r3, 0 + 4024: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 4026: 3304 movi r3, 4 + 4028: 07d3 br 0x3fce // 3fce + 402a: 0000 bkpt + 402c: 200000b8 .long 0x200000b8 + 4030: 20000404 .long 0x20000404 + 4034: 2000063c .long 0x2000063c + 4038: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +0000403c : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 403c: 6040 addu r1, r0 + U8_T data_sum = 0; + 403e: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 4044: 6cce nor r3, r3 + 4046: 740c zextb r0, r3 +} + 4048: 783c jmp r15 + data_sum += data[i]; + 404a: 8040 ld.b r2, (r0, 0x0) + 404c: 60c8 addu r3, r2 + 404e: 74cc zextb r3, r3 + 4050: 2000 addi r0, 1 + 4052: 07f7 br 0x4040 // 4040 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00004054 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 4054: 14d2 push r4-r5, r15 + 4056: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 4058: 5992 addi r4, r1, 5 + 405a: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 405c: 3331 movi r3, 49 + 405e: 650c cmphs r3, r4 + 4060: 0803 bt 0x4066 // 4066 + para_len = 44; + 4062: 312c movi r1, 44 + reply_len = 50; + 4064: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 4066: 3300 movi r3, 0 + 4068: 2b50 subi r3, 81 + 406a: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 406e: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 4072: 1072 lrw r3, 0x20000438 // 40b8 + 4074: 8360 ld.b r3, (r3, 0x0) + 4076: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 407a: 3300 movi r3, 0 + 407c: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 4086: 3200 movi r2, 0 + 4088: 60f8 addu r3, r14 + 408a: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 408c: 6c53 mov r1, r4 + 408e: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 4090: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 4092: e3ffffd5 bsr 0x403c // 403c + 4096: dc0e0003 st.b r0, (r14, 0x3) + +// if (detect_inf.control_model == 0x00){ + MCU485_SendData(send_data,reply_len); + 409a: 6c53 mov r1, r4 + 409c: 6c3b mov r0, r14 + 409e: e3fffda9 bsr 0x3bf0 // 3bf0 +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 40a2: 140f addi r14, r14, 60 + 40a4: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 40a6: 6c8f mov r2, r3 + 40a8: 58ac addu r5, r0, r3 + 40aa: 60b8 addu r2, r14 + 40ac: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 40b6: 0000 bkpt + 40b8: 20000438 .long 0x20000438 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +000040bc : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 40bc: 14d4 push r4-r7, r15 + 40be: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 40c0: 80a0 ld.b r5, (r0, 0x0) + 40c2: 5dc3 subi r6, r5, 1 + 40c4: 7598 zextb r6, r6 + 40c6: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 40c8: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 40ca: 0834 bt 0x4132 // 4132 + 40cc: 1125 lrw r1, 0x200003e8 // 4160 + 40ce: 350b movi r5, 11 + 40d0: 5862 addi r3, r0, 1 + 40d2: 6140 addu r5, r0 + 40d4: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 40f2: 8479 ld.b r3, (r4, 0x19) + 40f4: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 40f6: 847a ld.b r3, (r4, 0x1a) + 40f8: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 40fa: 847b ld.b r3, (r4, 0x1b) + 40fc: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 40fe: 847c ld.b r3, (r4, 0x1c) + 4100: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4102: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 4104: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4106: 1037 lrw r1, 0x200003e8 // 4160 + touch_para.longpress_time = para[29]; + 4108: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 410a: e0000311 bsr 0x472c // 472c + + if(rev == 0x00){ + 410e: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4110: 6d43 mov r5, r0 + if(rev == 0x00){ + 4112: 0805 bt 0x411c // 411c + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 4114: 1033 lrw r1, 0x200003e8 // 4160 + 4116: 6c1b mov r0, r6 + 4118: e000027e bsr 0x4614 // 4614 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 411c: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 411e: 3102 movi r1, 2 + 4120: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 4122: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 4126: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 412a: e3ffff95 bsr 0x4054 // 4054 +} + 412e: 1401 addi r14, r14, 4 + 4130: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 4132: 3d40 cmpnei r5, 0 + 4134: 0c03 bf 0x413a // 413a + rev = 0x01; + 4136: 3501 movi r5, 1 + 4138: 07f2 br 0x411c // 411c + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 413a: 8061 ld.b r3, (r0, 0x1) + 413c: 104a lrw r2, 0x82ec // 4164 + 413e: 102b lrw r1, 0x87df // 4168 + 4140: 3000 movi r0, 0 + 4142: e3fffd9b bsr 0x3c78 // 3c78 + if( (para[1] > 0) && (para[1] <= 3) ){ + 4146: 8461 ld.b r3, (r4, 0x1) + 4148: 2b00 subi r3, 1 + 414a: 74cc zextb r3, r3 + 414c: 3b02 cmphsi r3, 3 + 414e: 0bf4 bt 0x4136 // 4136 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4150: 1047 lrw r2, 0x200004f9 // 416c + g_eeprom.key_sens_level = para[1] - 1; + 4152: 1008 lrw r0, 0x20000438 // 4170 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4154: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 4156: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4158: e00001be bsr 0x44d4 // 44d4 + 415c: 07e0 br 0x411c // 411c + 415e: 0000 bkpt + 4160: 200003e8 .long 0x200003e8 + 4164: 000082ec .long 0x000082ec + 4168: 000087df .long 0x000087df + 416c: 200004f9 .long 0x200004f9 + 4170: 20000438 .long 0x20000438 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00004174 : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 4174: 14d3 push r4-r6, r15 + 4176: 142d subi r14, r14, 52 + 4178: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 417a: 3232 movi r2, 50 + 417c: 3100 movi r1, 0 + 417e: 6c3b mov r0, r14 + 4180: e3ffec24 bsr 0x19c8 // 19c8 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 4184: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 4186: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4188: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 418a: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 418e: 0837 bt 0x41fc // 41fc + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 4190: 11d5 lrw r6, 0x20000438 // 4264 + 4192: 8605 ld.b r0, (r6, 0x5) + 4194: 1135 lrw r1, 0x200003e8 // 4268 + 4196: e0000275 bsr 0x4680 // 4680 + if(rev != 0x00){ + 419a: 3840 cmpnei r0, 0 + 419c: 11b3 lrw r5, 0x200003e8 // 4268 + 419e: 0c05 bf 0x41a8 // 41a8 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 41a0: 8605 ld.b r0, (r6, 0x5) + 41a2: 6c57 mov r1, r5 + 41a4: e0000318 bsr 0x47d4 // 47d4 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 41a8: 8665 ld.b r3, (r6, 0x5) + 41aa: 2300 addi r3, 1 + 41ac: dc6e0001 st.b r3, (r14, 0x1) + 41b0: 6cfb mov r3, r14 + 41b2: 114e lrw r2, 0x200003e8 // 4268 + + for(i=0;i> 8; + 41ba: 4928 lsri r1, r1, 8 + 41bc: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 41c6: 4928 lsri r1, r1, 8 + 41c8: a32f st.b r1, (r3, 0xf) + 41ca: 2201 addi r2, 2 + 41cc: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 41d0: 8560 ld.b r3, (r5, 0x0) + 41d2: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 41d6: 8561 ld.b r3, (r5, 0x1) + 41d8: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 41dc: 8562 ld.b r3, (r5, 0x2) + 41de: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 41e2: 8563 ld.b r3, (r5, 0x3) + 41e4: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 41e8: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 41ea: dc6e001e st.b r3, (r14, 0x1e) + 41ee: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 41f0: 7445 zexth r1, r1 + 41f2: 6c3b mov r0, r14 + 41f4: e3ffff30 bsr 0x4054 // 4054 +} + 41f8: 140d addi r14, r14, 52 + 41fa: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 41fc: 3c03 cmphsi r4, 4 + 41fe: 0831 bt 0x4260 // 4260 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 4200: 2c00 subi r4, 1 + 4202: 7410 zextb r0, r4 + 4204: 1039 lrw r1, 0x200003e8 // 4268 + 4206: e000023d bsr 0x4680 // 4680 + if(rev != 0x00){ + 420a: 3840 cmpnei r0, 0 + 420c: 1097 lrw r4, 0x200003e8 // 4268 + 420e: 0c07 bf 0x421c // 421c + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 4210: 8500 ld.b r0, (r5, 0x0) + 4212: 2800 subi r0, 1 + 4214: 7400 zextb r0, r0 + 4216: 6c53 mov r1, r4 + 4218: e00002de bsr 0x47d4 // 47d4 + reply_buff[reply_len++] = para[0]; + 421c: 8560 ld.b r3, (r5, 0x0) + 421e: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 4226: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 4228: 8902 ld.h r0, (r1, 0x4) + 422a: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 422e: 4808 lsri r0, r0, 8 + 4230: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 423a: 4808 lsri r0, r0, 8 + 423c: a30f st.b r0, (r3, 0xf) + 423e: 2101 addi r1, 2 + 4240: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4244: 8460 ld.b r3, (r4, 0x0) + 4246: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 424a: 8461 ld.b r3, (r4, 0x1) + 424c: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4250: 8462 ld.b r3, (r4, 0x2) + 4252: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 4256: 8463 ld.b r3, (r4, 0x3) + 4258: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 425c: 8478 ld.b r3, (r4, 0x18) + 425e: 07c6 br 0x41ea // 41ea + reply_buff[reply_len++] = 0x00; + 4260: 3102 movi r1, 2 + 4262: 07c7 br 0x41f0 // 41f0 + 4264: 20000438 .long 0x20000438 + 4268: 200003e8 .long 0x200003e8 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +0000426c : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 426c: 14d0 push r15 + 426e: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4270: 8060 ld.b r3, (r0, 0x0) + 4272: 3b41 cmpnei r3, 1 + 4274: 0810 bt 0x4294 // 4294 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 4276: 106b lrw r3, 0x20000404 // 42a0 + 4278: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 427a: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 427c: 3303 movi r3, 3 + 427e: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4282: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4284: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 4286: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 4288: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 428c: e3fffee4 bsr 0x4054 // 4054 +} + 4290: 1401 addi r14, r14, 4 + 4292: 1490 pop r15 + }else if(para[0] == 0x02){ + 4294: 3b42 cmpnei r3, 2 + 4296: 0bf3 bt 0x427c // 427c + g_key.key_dug_printf = 0x00; + 4298: 1062 lrw r3, 0x20000404 // 42a0 + 429a: 3200 movi r2, 0 + 429c: 07ef br 0x427a // 427a + 429e: 0000 bkpt + 42a0: 20000404 .long 0x20000404 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +000042a4 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 42a4: 14d0 push r15 + 42a6: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 42a8: 1149 lrw r2, 0x200007ae // 434c + reply_buff[reply_len++] = 0x04; //CMD + 42aa: 3304 movi r3, 4 + 42ac: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 42b0: 8a69 ld.h r3, (r2, 0x12) + 42b2: 4b68 lsri r3, r3, 8 + 42b4: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 42b8: 8a69 ld.h r3, (r2, 0x12) + 42ba: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 42be: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 42c0: 1164 lrw r3, 0x20000508 // 4350 + 42c2: 8b29 ld.h r1, (r3, 0x12) + 42c4: 4928 lsri r1, r1, 8 + 42c6: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 42ca: 8b29 ld.h r1, (r3, 0x12) + 42cc: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 42d0: 8a2a ld.h r1, (r2, 0x14) + 42d2: 4928 lsri r1, r1, 8 + 42d4: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 42d8: 8a2a ld.h r1, (r2, 0x14) + 42da: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 42de: 8b2a ld.h r1, (r3, 0x14) + 42e0: 4928 lsri r1, r1, 8 + 42e2: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 42e6: 8b2a ld.h r1, (r3, 0x14) + 42e8: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 42ec: 8a2b ld.h r1, (r2, 0x16) + 42ee: 4928 lsri r1, r1, 8 + 42f0: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 42f4: 8a2b ld.h r1, (r2, 0x16) + 42f6: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 42fa: 8b2b ld.h r1, (r3, 0x16) + 42fc: 4928 lsri r1, r1, 8 + 42fe: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4302: 8b2b ld.h r1, (r3, 0x16) + 4304: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4308: 8a2c ld.h r1, (r2, 0x18) + 430a: 4928 lsri r1, r1, 8 + 430c: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4310: 8a2c ld.h r1, (r2, 0x18) + 4312: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4316: 8b2c ld.h r1, (r3, 0x18) + 4318: 4928 lsri r1, r1, 8 + 431a: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 431e: 8b2c ld.h r1, (r3, 0x18) + 4320: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4324: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4326: 8a4d ld.h r2, (r2, 0x1a) + 4328: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 432c: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 432e: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4330: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4334: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4336: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4338: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 433a: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 433e: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4342: e3fffe89 bsr 0x4054 // 4054 +} + 4346: 140d addi r14, r14, 52 + 4348: 1490 pop r15 + 434a: 0000 bkpt + 434c: 200007ae .long 0x200007ae + 4350: 20000508 .long 0x20000508 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004354 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4354: 14d0 push r15 + 4356: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4358: 3305 movi r3, 5 + 435a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 435e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4360: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4362: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4364: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4368: e3fffe76 bsr 0x4054 // 4054 + 436c: 0400 br 0x436c // 436c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004370 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4370: 14d2 push r4-r5, r15 + 4372: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4374: 8060 ld.b r3, (r0, 0x0) + 4376: 32af movi r2, 175 + 4378: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 437a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 437c: 0c09 bf 0x438e // 438e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 437e: 3000 movi r0, 0 + 4380: 114b lrw r2, 0x8308 // 442c + 4382: 112c lrw r1, 0x87ef // 4430 + 4384: e3fffc7a bsr 0x3c78 // 3c78 + return 0x01; + 4388: 3001 movi r0, 1 + break; + } + + + return 0; +} + 438a: 1401 addi r14, r14, 4 + 438c: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 438e: 114a lrw r2, 0x20000438 // 4434 + 4390: 8061 ld.b r3, (r0, 0x1) + 4392: 8240 ld.b r2, (r2, 0x0) + 4394: 64ca cmpne r2, r3 + 4396: 0c08 bf 0x43a6 // 43a6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4398: 3000 movi r0, 0 + 439a: 1145 lrw r2, 0x8308 // 442c + 439c: 1127 lrw r1, 0x8801 // 4438 + 439e: e3fffc6d bsr 0x3c78 // 3c78 + return 0x02; + 43a2: 3002 movi r0, 2 + 43a4: 07f3 br 0x438a // 438a + if(data[2] != len){ + 43a6: 8062 ld.b r3, (r0, 0x2) + 43a8: 750d zexth r4, r3 + 43aa: 6452 cmpne r4, r1 + 43ac: 0c09 bf 0x43be // 43be + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 43ae: b820 st.w r1, (r14, 0x0) + 43b0: 105f lrw r2, 0x8308 // 442c + 43b2: 1123 lrw r1, 0x8812 // 443c + 43b4: 3000 movi r0, 0 + 43b6: e3fffc61 bsr 0x3c78 // 3c78 + return 0x03; + 43ba: 3003 movi r0, 3 + 43bc: 07e7 br 0x438a // 438a + if(data[len-1] != 0xFA){ + 43be: 60c0 addu r3, r0 + 43c0: 2b00 subi r3, 1 + 43c2: 8360 ld.b r3, (r3, 0x0) + 43c4: 32fa movi r2, 250 + 43c6: 648e cmpne r3, r2 + 43c8: 0c07 bf 0x43d6 // 43d6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 43ca: 1059 lrw r2, 0x8308 // 442c + 43cc: 103d lrw r1, 0x8825 // 4440 + 43ce: 3000 movi r0, 0 + 43d0: e3fffc54 bsr 0x3c78 // 3c78 + 43d4: 07f3 br 0x43ba // 43ba + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 43d6: 5c23 subi r1, r4, 1 + 43d8: 7445 zexth r1, r1 + 43da: e3fffe31 bsr 0x403c // 403c + 43de: 3840 cmpnei r0, 0 + 43e0: 0806 bt 0x43ec // 43ec + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 43e2: 1053 lrw r2, 0x8308 // 442c + 43e4: 1038 lrw r1, 0x8835 // 4444 + 43e6: e3fffc49 bsr 0x3c78 // 3c78 + 43ea: 07e8 br 0x43ba // 43ba + switch(data[4]){ + 43ec: 8504 ld.b r0, (r5, 0x4) + 43ee: 2800 subi r0, 1 + 43f0: 3804 cmphsi r0, 5 + 43f2: 080c bt 0x440a // 440a + 43f4: 5c37 subi r1, r4, 6 + 43f6: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 43f8: 7445 zexth r1, r1 + switch(data[4]){ + 43fa: e3ffe481 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 43fe: 0803 .short 0x0803 + 4400: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 4404: 6c17 mov r0, r5 + 4406: e3fffe5b bsr 0x40bc // 40bc + return 0; + 440a: 3000 movi r0, 0 + 440c: 07bf br 0x438a // 438a + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 440e: 6c17 mov r0, r5 + 4410: e3fffeb2 bsr 0x4174 // 4174 + 4414: 07fb br 0x440a // 440a + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4416: 6c17 mov r0, r5 + 4418: e3ffff2a bsr 0x426c // 426c + 441c: 07f7 br 0x440a // 440a + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 441e: 6c17 mov r0, r5 + 4420: e3ffff42 bsr 0x42a4 // 42a4 + 4424: 07f3 br 0x440a // 440a + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4426: 6c17 mov r0, r5 + 4428: e3ffff96 bsr 0x4354 // 4354 + 442c: 00008308 .long 0x00008308 + 4430: 000087ef .long 0x000087ef + 4434: 20000438 .long 0x20000438 + 4438: 00008801 .long 0x00008801 + 443c: 00008812 .long 0x00008812 + 4440: 00008825 .long 0x00008825 + 4444: 00008835 .long 0x00008835 + +Disassembly of section .text.EEPROM_CheckSum: + +00004448 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4448: 6cc3 mov r3, r0 + 444a: 6040 addu r1, r0 + U8_T data_sum = 0; + 444c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4452: 783c jmp r15 + data_sum += data[i]; + 4454: 8340 ld.b r2, (r3, 0x0) + 4456: 6008 addu r0, r2 + 4458: 7400 zextb r0, r0 + 445a: 2300 addi r3, 1 + 445c: 07f9 br 0x444e // 444e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004460 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4460: 14d1 push r4, r15 + 4462: 143b subi r14, r14, 108 + 4464: 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)); + 4466: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4468: 3264 movi r2, 100 + 446a: 3100 movi r1, 0 + 446c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 446e: b860 st.w r3, (r14, 0x0) + 4470: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4474: e3ffeaaa bsr 0x19c8 // 19c8 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4478: 6cbb mov r2, r14 + 447a: 3104 movi r1, 4 + 447c: 1014 lrw r0, 0x10000020 // 44cc + 447e: e3fff385 bsr 0x2b88 // 2b88 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4482: d84e0000 ld.b r2, (r14, 0x0) + 4486: 33a6 movi r3, 166 + 4488: 64ca cmpne r2, r3 + 448a: 0c04 bf 0x4492 // 4492 + return 0x00; + } + } + } + + return 0x01; + 448c: 3001 movi r0, 1 +} + 448e: 141b addi r14, r14, 108 + 4490: 1491 pop r4, r15 + read_len |= read_info[1]; + 4492: d82e0002 ld.b r1, (r14, 0x2) + 4496: d86e0001 ld.b r3, (r14, 0x1) + 449a: 4128 lsli r1, r1, 8 + 449c: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 449e: 3364 movi r3, 100 + 44a0: 644c cmphs r3, r1 + 44a2: 0ff5 bf 0x448c // 448c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 44a4: 1a02 addi r2, r14, 8 + 44a6: 100b lrw r0, 0x10000024 // 44d0 + 44a8: e3fff370 bsr 0x2b88 // 2b88 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 44ac: 3108 movi r1, 8 + 44ae: 1802 addi r0, r14, 8 + 44b0: e3ffffcc bsr 0x4448 // 4448 + 44b4: d86e0003 ld.b r3, (r14, 0x3) + 44b8: 640e cmpne r3, r0 + 44ba: 0be9 bt 0x448c // 448c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 44bc: 3208 movi r2, 8 + 44be: 1902 addi r1, r14, 8 + 44c0: 6c13 mov r0, r4 + 44c2: e3ffeac7 bsr 0x1a50 // 1a50 <__memcpy_fast> + return 0x00; + 44c6: 3000 movi r0, 0 + 44c8: 07e3 br 0x448e // 448e + 44ca: 0000 bkpt + 44cc: 10000020 .long 0x10000020 + 44d0: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000044d4 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 44d4: 14d0 push r15 + 44d6: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 44d8: 3300 movi r3, 0 + 44da: 2b59 subi r3, 90 + 44dc: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 44e0: 3308 movi r3, 8 + 44e2: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 44e6: 3300 movi r3, 0 + 44e8: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 44ec: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 44ee: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 44f0: 3208 movi r2, 8 + 44f2: 6c0f mov r0, r3 + 44f4: e3ffeaae bsr 0x1a50 // 1a50 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 44f8: 3108 movi r1, 8 + 44fa: e3ffffa7 bsr 0x4448 // 4448 + 44fe: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 4502: 6cbb mov r2, r14 + 4504: 310c movi r1, 12 + 4506: 1004 lrw r0, 0x10000020 // 4514 + 4508: e3fff2f0 bsr 0x2ae8 // 2ae8 + + return 0; +} + 450c: 3000 movi r0, 0 + 450e: 141b addi r14, r14, 108 + 4510: 1490 pop r15 + 4512: 0000 bkpt + 4514: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004518 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4518: 14d1 push r4, r15 + 451a: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 451c: 8062 ld.b r3, (r0, 0x2) + 451e: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4520: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4522: 0c03 bf 0x4528 // 4528 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4524: 3309 movi r3, 9 + 4526: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4528: 8442 ld.b r2, (r4, 0x2) + 452a: 103d lrw r1, 0x8844 // 459c + 452c: 3000 movi r0, 0 + 452e: e3fffba5 bsr 0x3c78 // 3c78 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4532: 8463 ld.b r3, (r4, 0x3) + 4534: 3b02 cmphsi r3, 3 + 4536: 0c03 bf 0x453c // 453c + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4538: 3300 movi r3, 0 + 453a: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 453c: 8464 ld.b r3, (r4, 0x4) + 453e: 3b01 cmphsi r3, 2 + 4540: 0c03 bf 0x4546 // 4546 + { + info->backlight_en = 0x01; + 4542: 3301 movi r3, 1 + 4544: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 4546: 8461 ld.b r3, (r4, 0x1) + 4548: 3b02 cmphsi r3, 3 + 454a: 0c03 bf 0x4550 // 4550 + { + info->pipe_flag = 0x00; + 454c: 3300 movi r3, 0 + 454e: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4550: 8460 ld.b r3, (r4, 0x0) + 4552: 2b00 subi r3, 1 + 4554: 74cc zextb r3, r3 + 4556: 32fd movi r2, 253 + 4558: 64c8 cmphs r2, r3 + 455a: 0803 bt 0x4560 // 4560 + { + info->dev_addr = 0x01; + 455c: 3301 movi r3, 1 + 455e: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4560: 8465 ld.b r3, (r4, 0x5) + 4562: 3b02 cmphsi r3, 3 + 4564: 0c03 bf 0x456a // 456a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4566: 3301 movi r3, 1 + 4568: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 456a: 8466 ld.b r3, (r4, 0x6) + 456c: 3b02 cmphsi r3, 3 + 456e: 0c03 bf 0x4574 // 4574 + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 4570: 3300 movi r3, 0 + 4572: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 4574: 8467 ld.b r3, (r4, 0x7) + 4576: 3b02 cmphsi r3, 3 + 4578: 0c03 bf 0x457e // 457e + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 457a: 3301 movi r3, 1 + 457c: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 457e: 8427 ld.b r1, (r4, 0x7) + 4580: b822 st.w r1, (r14, 0x8) + 4582: 8420 ld.b r1, (r4, 0x0) + 4584: b821 st.w r1, (r14, 0x4) + 4586: 8425 ld.b r1, (r4, 0x5) + 4588: b820 st.w r1, (r14, 0x0) + 458a: 8464 ld.b r3, (r4, 0x4) + 458c: 8443 ld.b r2, (r4, 0x3) + 458e: 1025 lrw r1, 0x885b // 45a0 + 4590: 3000 movi r0, 0 + 4592: e3fffb73 bsr 0x3c78 // 3c78 + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 4596: 3000 movi r0, 0 + 4598: 1403 addi r14, r14, 12 + 459a: 1491 pop r4, r15 + 459c: 00008844 .long 0x00008844 + 45a0: 0000885b .long 0x0000885b + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +000045a4 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 45a4: 3301 movi r3, 1 + 45a6: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 45a8: 3300 movi r3, 0 + 45aa: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 45ac: 3309 movi r3, 9 + 45ae: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 45b0: 3300 movi r3, 0 + 45b2: a063 st.b r3, (r0, 0x3) +// if (detect_inf.control_model == 0x00) { //485延时关闭默认关 无线默认开 + info->backlight_en = 0x00; + 45b4: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 45b6: 3301 movi r3, 1 + 45b8: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 45ba: 3300 movi r3, 0 + 45bc: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 45be: 3301 movi r3, 1 + 45c0: a067 st.b r3, (r0, 0x7) + +} + 45c2: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +000045c4 : +void EEPROM_Init(void){ + 45c4: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 45c6: 1071 lrw r3, 0x20000060 // 4608 + 45c8: 3201 movi r2, 1 + 45ca: 9360 ld.w r3, (r3, 0x0) + 45cc: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 45ce: 9345 ld.w r2, (r3, 0x14) + 45d0: 3aa1 bseti r2, 1 + 45d2: 3ab0 bseti r2, 16 + 45d4: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 45d6: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 45d8: 108d lrw r4, 0x20000438 // 460c + delay_nms(10); + 45da: e3fff3eb bsr 0x2db0 // 2db0 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 45de: 6c13 mov r0, r4 + 45e0: e3ffff40 bsr 0x4460 // 4460 + if(rev == 0x00){ + 45e4: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 45e6: 6c13 mov r0, r4 + if(rev == 0x00){ + 45e8: 0804 bt 0x45f0 // 45f0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 45ea: e3ffff97 bsr 0x4518 // 4518 +} + 45ee: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 45f0: e3ffffda bsr 0x45a4 // 45a4 + EEPROM_WriteParaInfo(&g_eeprom); + 45f4: 6c13 mov r0, r4 + 45f6: e3ffff6f bsr 0x44d4 // 44d4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 45fa: 8441 ld.b r2, (r4, 0x1) + 45fc: 1025 lrw r1, 0x88b5 // 4610 + 45fe: 3000 movi r0, 0 + 4600: e3fffb3c bsr 0x3c78 // 3c78 +} + 4604: 07f5 br 0x45ee // 45ee + 4606: 0000 bkpt + 4608: 20000060 .long 0x20000060 + 460c: 20000438 .long 0x20000438 + 4610: 000088b5 .long 0x000088b5 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004614 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4614: 14d2 push r4-r5, r15 + 4616: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4618: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 461a: 6d47 mov r5, r1 + switch(level){ + 461c: 0c07 bf 0x462a // 462a + 461e: 3840 cmpnei r0, 0 + 4620: 0c27 bf 0x466e // 466e + 4622: 3842 cmpnei r0, 2 + 4624: 0c23 bf 0x466a // 466a + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4626: 3001 movi r0, 1 + 4628: 041f br 0x4666 // 4666 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 462a: 1093 lrw r4, 0x10000180 // 4674 + break; + } + + memset(save_para,0,sizeof(save_para)); + 462c: 323c movi r2, 60 + 462e: 3100 movi r1, 0 + 4630: 6c3b mov r0, r14 + 4632: e3ffe9cb bsr 0x19c8 // 19c8 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4636: 3300 movi r3, 0 + 4638: 2b59 subi r3, 90 + 463a: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 463e: 331c movi r3, 28 + 4640: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4644: 1b01 addi r3, r14, 4 + 4646: 321c movi r2, 28 + 4648: 6c0f mov r0, r3 + 464a: 6c57 mov r1, r5 + 464c: e3ffea02 bsr 0x1a50 // 1a50 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4650: 311c movi r1, 28 + 4652: e3fffefb bsr 0x4448 // 4448 + 4656: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 465a: 6cbb mov r2, r14 + 465c: 6c13 mov r0, r4 + 465e: 3120 movi r1, 32 + 4660: e3fff244 bsr 0x2ae8 // 2ae8 + + return 0; + 4664: 3000 movi r0, 0 +} + 4666: 140f addi r14, r14, 60 + 4668: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 466a: 1084 lrw r4, 0x10000200 // 4678 + break; + 466c: 07e0 br 0x462c // 462c + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 466e: 1084 lrw r4, 0x10000100 // 467c + 4670: 07de br 0x462c // 462c + 4672: 0000 bkpt + 4674: 10000180 .long 0x10000180 + 4678: 10000200 .long 0x10000200 + 467c: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004680 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4680: 14d2 push r4-r5, r15 + 4682: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4684: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4686: 6d07 mov r4, r1 + switch(level){ + 4688: 0c3a bf 0x46fc // 46fc + 468a: 3840 cmpnei r0, 0 + 468c: 0c05 bf 0x4696 // 4696 + 468e: 3842 cmpnei r0, 2 + 4690: 0c34 bf 0x46f8 // 46f8 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4692: 3001 movi r0, 1 + 4694: 0430 br 0x46f4 // 46f4 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4696: 11a1 lrw r5, 0x10000100 // 4718 + memset(read_info,0,sizeof(read_info)); + 4698: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 469a: 3234 movi r2, 52 + 469c: 3100 movi r1, 0 + 469e: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 46a0: b860 st.w r3, (r14, 0x0) + 46a2: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 46a6: e3ffe991 bsr 0x19c8 // 19c8 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 46aa: 6cbb mov r2, r14 + 46ac: 3104 movi r1, 4 + 46ae: 6c17 mov r0, r5 + 46b0: e3fff26c bsr 0x2b88 // 2b88 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 46b4: d84e0000 ld.b r2, (r14, 0x0) + 46b8: 33a6 movi r3, 166 + 46ba: 64ca cmpne r2, r3 + 46bc: 0827 bt 0x470a // 470a + read_len |= read_info[1]; + 46be: d84e0002 ld.b r2, (r14, 0x2) + 46c2: d86e0001 ld.b r3, (r14, 0x1) + 46c6: 4248 lsli r2, r2, 8 + 46c8: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 46ca: 3a5c cmpnei r2, 28 + 46cc: 081a bt 0x4700 // 4700 + temp_addr += EEPROM_Offset_Data; + 46ce: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 46d0: 1a02 addi r2, r14, 8 + 46d2: 311c movi r1, 28 + 46d4: e3fff25a bsr 0x2b88 // 2b88 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 46d8: 311c movi r1, 28 + 46da: 1802 addi r0, r14, 8 + 46dc: e3fffeb6 bsr 0x4448 // 4448 + 46e0: d86e0003 ld.b r3, (r14, 0x3) + 46e4: 640e cmpne r3, r0 + 46e6: 0bd6 bt 0x4692 // 4692 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 46e8: 321c movi r2, 28 + 46ea: 1902 addi r1, r14, 8 + 46ec: 6c13 mov r0, r4 + 46ee: e3ffe9b1 bsr 0x1a50 // 1a50 <__memcpy_fast> + return 0x00; + 46f2: 3000 movi r0, 0 +} + 46f4: 140f addi r14, r14, 60 + 46f6: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 46f8: 10a9 lrw r5, 0x10000200 // 471c + break; + 46fa: 07cf br 0x4698 // 4698 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 46fc: 10a9 lrw r5, 0x10000180 // 4720 + 46fe: 07cd br 0x4698 // 4698 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 4700: 1029 lrw r1, 0x88ce // 4724 + 4702: 3000 movi r0, 0 + 4704: e3fffaba bsr 0x3c78 // 3c78 + 4708: 07c5 br 0x4692 // 4692 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 470a: 3304 movi r3, 4 + 470c: 6cbb mov r2, r14 + 470e: 1027 lrw r1, 0x88f0 // 4728 + 4710: 3000 movi r0, 0 + 4712: e3fffab9 bsr 0x3c84 // 3c84 + 4716: 07be br 0x4692 // 4692 + 4718: 10000100 .long 0x10000100 + 471c: 10000200 .long 0x10000200 + 4720: 10000180 .long 0x10000180 + 4724: 000088ce .long 0x000088ce + 4728: 000088f0 .long 0x000088f0 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +0000472c : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 472c: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 472e: 8163 ld.b r3, (r1, 0x3) + 4730: 2b00 subi r3, 1 + 4732: 74cc zextb r3, r3 + 4734: 3263 movi r2, 99 + 4736: 64c8 cmphs r2, r3 + 4738: 0845 bt 0x47c2 // 47c2 + para->base_speed = 20; //默认参数 - 20 + 473a: 3314 movi r3, 20 + 473c: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 473e: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4740: 8140 ld.b r2, (r1, 0x0) + 4742: 2a00 subi r2, 1 + 4744: 7488 zextb r2, r2 + 4746: 3a09 cmphsi r2, 10 + 4748: 0c04 bf 0x4750 // 4750 + para->press_debounce = 4; //默认参数 - 4 + 474a: 3304 movi r3, 4 + 474c: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 474e: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4750: 8141 ld.b r2, (r1, 0x1) + 4752: 2a00 subi r2, 1 + 4754: 7488 zextb r2, r2 + 4756: 3a09 cmphsi r2, 10 + 4758: 0c04 bf 0x4760 // 4760 + para->release_debounce = 5; //默认参数 - 5 + 475a: 3305 movi r3, 5 + 475c: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 475e: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4760: 8142 ld.b r2, (r1, 0x2) + 4762: 2a00 subi r2, 1 + 4764: 7488 zextb r2, r2 + 4766: 3463 movi r4, 99 + 4768: 6490 cmphs r4, r2 + 476a: 0804 bt 0x4772 // 4772 + para->multiTimes_filt = 40; //默认参数 - 40 + 476c: 3328 movi r3, 40 + 476e: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4770: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4772: 9146 ld.w r2, (r1, 0x18) + 4774: 2a00 subi r2, 1 + 4776: 3a1f cmphsi r2, 32 + 4778: 0c04 bf 0x4780 // 4780 + para->longpress_time = 16; //默认参数 - 16 + 477a: 3310 movi r3, 16 + 477c: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 477e: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 4780: 34a0 movi r4, 160 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4782: 36f5 movi r6, 245 + 4784: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4786: 10f3 lrw r7, 0x3de // 47d0 + 4788: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 478a: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 478c: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 478e: 8aa0 ld.h r5, (r2, 0x0) + 4790: 2d09 subi r5, 10 + 4792: 7555 zexth r5, r5 + 4794: 655c cmphs r7, r5 + 4796: 0803 bt 0x479c // 479c + para->senprd[i] = 320; //默认参数 - 320 + 4798: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 479a: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 479c: 8aa5 ld.h r5, (r2, 0xa) + 479e: 2d13 subi r5, 20 + 47a0: 7555 zexth r5, r5 + 47a2: 6558 cmphs r6, r5 + 47a4: 080a bt 0x47b8 // 47b8 + + switch(level){ + 47a6: 3841 cmpnei r0, 1 + 47a8: 0c11 bf 0x47ca // 47ca + 47aa: 3840 cmpnei r0, 0 + 47ac: 0c0d bf 0x47c6 // 47c6 + 47ae: 3842 cmpnei r0, 2 + 47b0: 080d bt 0x47ca // 47ca + case 0x02: + para->triggerlevel[i] = 100; //高灵敏度 默认参数 - 60 + 47b2: 3364 movi r3, 100 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 120; + 47b4: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 47b6: 3301 movi r3, 1 + 47b8: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 47be: 6c0f mov r0, r3 + 47c0: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 47c2: 3300 movi r3, 0 + 47c4: 07be br 0x4740 // 4740 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 47c6: 338c movi r3, 140 + 47c8: 07f6 br 0x47b4 // 47b4 + para->triggerlevel[i] = 120; + 47ca: 3378 movi r3, 120 + 47cc: 07f4 br 0x47b4 // 47b4 + 47ce: 0000 bkpt + 47d0: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000047d4 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 47d4: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 47d6: 3314 movi r3, 20 + 47d8: a163 st.b r3, (r1, 0x3) + para->press_debounce = 4; //默认参数 - 4 + 47da: 3304 movi r3, 4 + 47dc: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 47de: 3305 movi r3, 5 + 47e0: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 47e2: 3328 movi r3, 40 + 47e4: a162 st.b r3, (r1, 0x2) +// para->disupdatevalue_debounce = 0x03; //默认参数 - 3 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 47e6: 32a0 movi r2, 160 + para->longpress_time = 16; //默认参数 - 8 + 47e8: 3310 movi r3, 16 + 47ea: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 47ec: 4241 lsli r2, r2, 1 + 47ee: 596e addi r3, r1, 4 + 47f0: 210d addi r1, 14 +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 47f2: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 47f4: ab40 st.h r2, (r3, 0x0) + switch(level){ + 47f6: 0c0d bf 0x4810 // 4810 + 47f8: 3840 cmpnei r0, 0 + 47fa: 0c09 bf 0x480c // 480c + 47fc: 3842 cmpnei r0, 2 + 47fe: 0809 bt 0x4810 // 4810 + case 0x02: + para->triggerlevel[i] = 100; //高灵敏度 默认参数 - 60 + 4800: 3464 movi r4, 100 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 120; + 4802: ab85 st.h r4, (r3, 0xa) + 4804: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 480a: 1481 pop r4 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 480c: 348c movi r4, 140 + 480e: 07fa br 0x4802 // 4802 + para->triggerlevel[i] = 120; + 4810: 3478 movi r4, 120 + 4812: 07f8 br 0x4802 // 4802 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004814 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4814: 14d4 push r4-r7, r15 + 4816: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4818: 8043 ld.b r2, (r0, 0x3) + 481a: 1038 lrw r1, 0x890e // 4878 + 481c: 3000 movi r0, 0 + 481e: e3fffa2d bsr 0x3c78 // 3c78 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 4822: 8440 ld.b r2, (r4, 0x0) + 4824: 1036 lrw r1, 0x8926 // 487c + 4826: 3000 movi r0, 0 + 4828: e3fffa28 bsr 0x3c78 // 3c78 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 482c: 8441 ld.b r2, (r4, 0x1) + 482e: 1035 lrw r1, 0x8942 // 4880 + 4830: 3000 movi r0, 0 + 4832: e3fffa23 bsr 0x3c78 // 3c78 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4836: 8442 ld.b r2, (r4, 0x2) + 4838: 1033 lrw r1, 0x8960 // 4884 + 483a: 3000 movi r0, 0 + 483c: e3fffa1e bsr 0x3c78 // 3c78 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4840: 9446 ld.w r2, (r4, 0x18) + 4842: 3000 movi r0, 0 + 4844: 1031 lrw r1, 0x897d // 4888 + 4846: e3fffa19 bsr 0x3c78 // 3c78 + 484a: 2403 addi r4, 4 + 484c: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 484e: 10f0 lrw r7, 0x8999 // 488c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4850: 10d0 lrw r6, 0x89b2 // 4890 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4852: e3ffea3b bsr 0x1cc8 // 1cc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4856: 8c60 ld.h r3, (r4, 0x0) + 4858: 6c97 mov r2, r5 + 485a: 6c5f mov r1, r7 + 485c: 3000 movi r0, 0 + 485e: e3fffa0d bsr 0x3c78 // 3c78 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4862: 8c65 ld.h r3, (r4, 0xa) + 4864: 6c97 mov r2, r5 + 4866: 6c5b mov r1, r6 + 4868: 3000 movi r0, 0 + 486a: 2500 addi r5, 1 + 486c: e3fffa06 bsr 0x3c78 // 3c78 + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 4876: 1494 pop r4-r7, r15 + 4878: 0000890e .long 0x0000890e + 487c: 00008926 .long 0x00008926 + 4880: 00008942 .long 0x00008942 + 4884: 00008960 .long 0x00008960 + 4888: 0000897d .long 0x0000897d + 488c: 00008999 .long 0x00008999 + 4890: 000089b2 .long 0x000089b2 + +Disassembly of section .text.ADC_Init: + +00004894 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4894: 14d0 push r15 + 4896: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4898: e3ffeec4 bsr 0x2620 // 2620 + ADC12_Software_Reset(); //ADC软件复位 + 489c: e3ffef22 bsr 0x26e0 // 26e0 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 48a0: 3101 movi r1, 1 + 48a2: 3002 movi r0, 2 + 48a4: e3ffef08 bsr 0x26b4 // 26b4 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 48a8: 3301 movi r3, 1 + 48aa: b861 st.w r3, (r14, 0x4) + 48ac: 3302 movi r3, 2 + 48ae: b860 st.w r3, (r14, 0x0) + 48b0: 3200 movi r2, 0 + 48b2: 3306 movi r3, 6 + 48b4: 3101 movi r1, 1 + 48b6: 3001 movi r0, 1 + 48b8: e3ffef4e bsr 0x2754 // 2754 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 48bc: 3003 movi r0, 3 + 48be: e3ffef89 bsr 0x27d0 // 27d0 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 48c2: 3300 movi r3, 0 + 48c4: 3200 movi r2, 0 + 48c6: 3100 movi r1, 0 + 48c8: 300f movi r0, 15 + 48ca: e3fff04f bsr 0x2968 // 2968 + + ADC12_CMD(ENABLE); + 48ce: 3001 movi r0, 1 + 48d0: e3ffef0e bsr 0x26ec // 26ec + + ADC12_ready_wait(); + 48d4: e3ffef20 bsr 0x2714 // 2714 + + ADC12_Control(ADC12_START); + 48d8: 3008 movi r0, 8 + 48da: e3ffeed5 bsr 0x2684 // 2684 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 48de: 3237 movi r2, 55 + 48e0: 3100 movi r1, 0 + 48e2: 1003 lrw r0, 0x20000440 // 48ec + 48e4: e3ffe872 bsr 0x19c8 // 19c8 <__memset_fast> +} + 48e8: 1402 addi r14, r14, 8 + 48ea: 1490 pop r15 + 48ec: 20000440 .long 0x20000440 + +Disassembly of section .text.Thermistor_Array_Transform: + +000048f0 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 48f0: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 48f2: 1070 lrw r3, 0x79bd // 4930 + 48f4: 640c cmphs r3, r0 +{ + 48f6: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 48f8: 0c16 bf 0x4924 // 4924 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 48fa: 33a1 movi r3, 161 + 48fc: 4365 lsli r3, r3, 5 + 48fe: 640c cmphs r3, r0 + 4900: 0814 bt 0x4928 // 4928 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4906: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 490a: 8a60 ld.h r3, (r2, 0x0) + 490c: 644c cmphs r3, r1 + 490e: 0c04 bf 0x4916 // 4916 + 4910: 8a61 ld.h r3, (r2, 0x2) + 4912: 644c cmphs r3, r1 + 4914: 0c07 bf 0x4922 // 4922 + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 4920: 30fa movi r0, 250 +} + 4922: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 4924: 3000 movi r0, 0 + 4926: 07fe br 0x4922 // 4922 + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4928: 30c8 movi r0, 200 + 492a: 4001 lsli r0, r0, 1 + 492c: 07fb br 0x4922 // 4922 + 492e: 0000 bkpt + 4930: 000079bd .long 0x000079bd + 4934: 00008322 .long 0x00008322 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004938 : + +void Calculate_ADC_Sample_Average(void) +{ + 4938: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 493c: 3200 movi r2, 0 + uint32_t temp_val = 0; + 493e: 3000 movi r0, 0 + 4940: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 4942: 5a66 addi r3, r2, 2 + 4944: 4361 lsli r3, r3, 1 + 4946: 60dc addu r3, r7 + 4948: 8323 ld.b r1, (r3, 0x3) + 494a: 8364 ld.b r3, (r3, 0x4) + 494c: 4368 lsli r3, r3, 8 + 494e: 2200 addi r2, 1 + 4950: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4958: 310a movi r1, 10 + 495a: e3fff7fb bsr 0x3950 // 3950 <__udivsi3> + 495e: 74c1 zexth r3, r0 + 4960: 748c zextb r2, r3 + 4962: 11c2 lrw r6, 0x20000443 // 49e8 + 4964: 4b68 lsri r3, r3, 8 + 4966: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4968: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 496a: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 496c: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 496e: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4970: 4368 lsli r3, r3, 8 + 4972: 875b ld.b r2, (r7, 0x1b) + 4974: 6cc8 or r3, r2 + 4976: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4978: 6d03 mov r4, r0 + 497a: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 497c: 0c1a bf 0x49b0 // 49b0 + g_adc.temp_index = 0; + 497e: 3300 movi r3, 0 + 4980: a660 st.b r3, (r6, 0x0) + 4982: a661 st.b r3, (r6, 0x1) + 4984: 3200 movi r2, 0 + temp_val = 0; + 4986: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 49a0: 310a movi r1, 10 + 49a2: e3fff7d7 bsr 0x3950 // 3950 <__udivsi3> + 49a6: 7401 zexth r0, r0 + 49a8: 1071 lrw r3, 0x2000045d // 49ec + 49aa: a300 st.b r0, (r3, 0x0) + 49ac: 4808 lsri r0, r0, 8 + 49ae: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 49b0: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 49b2: 859c ld.b r4, (r5, 0x1c) + 49b4: 857b ld.b r3, (r5, 0x1b) + 49b6: 4488 lsli r4, r4, 8 + 49b8: 6d0c or r4, r3 + 49ba: 5c62 addi r3, r4, 1 + 49bc: 74cd zexth r3, r3 + 49be: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 49c0: 100c lrw r0, 0x2710 // 49f0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 49c2: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 49c4: 102c lrw r1, 0xce4 // 49f4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 49c6: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 49c8: 7c08 mult r0, r2 + 49ca: 604a subu r1, r2 + 49cc: e3fff7b0 bsr 0x392c // 392c <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 49d0: 240d addi r4, 14 + 49d2: 7401 zexth r0, r0 + 49d4: 4481 lsli r4, r4, 1 + 49d6: e3ffff8d bsr 0x48f0 // 48f0 + 49da: 6114 addu r4, r5 + 49dc: a403 st.b r0, (r4, 0x3) + 49de: 4808 lsri r0, r0, 8 + 49e0: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 49e2: 1494 pop r4-r7, r15 + 49e4: 20000440 .long 0x20000440 + 49e8: 20000443 .long 0x20000443 + 49ec: 2000045d .long 0x2000045d + 49f0: 00002710 .long 0x00002710 + 49f4: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000049f8 : + +void ADC_Sample_Task(void){ + 49f8: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 49fa: 1188 lrw r4, 0x20000440 // 4a98 + 49fc: 3020 movi r0, 32 + 49fe: 6010 addu r0, r4 + 4a00: 8054 ld.b r2, (r0, 0x14) + 4a02: 8073 ld.b r3, (r0, 0x13) + 4a04: 4248 lsli r2, r2, 8 + 4a06: 6c8c or r2, r3 + 4a08: 8075 ld.b r3, (r0, 0x15) + 4a0a: 4370 lsli r3, r3, 16 + 4a0c: 6c8c or r2, r3 + 4a0e: 8076 ld.b r3, (r0, 0x16) + 4a10: 11a3 lrw r5, 0x200000b8 // 4a9c + 4a12: 4378 lsli r3, r3, 24 + 4a14: 9520 ld.w r1, (r5, 0x0) + 4a16: 6cc8 or r3, r2 + 4a18: 604e subu r1, r3 + 4a1a: 390a cmphsi r1, 11 + 4a1c: 0c28 bf 0x4a6c // 4a6c + g_adc.sample_tick = SysTick_100us; + 4a1e: 1161 lrw r3, 0x200000b4 // 4aa0 + 4a20: 3233 movi r2, 51 + 4a22: 9360 ld.w r3, (r3, 0x0) + 4a24: 6090 addu r2, r4 + 4a26: 4b28 lsri r1, r3, 8 + 4a28: a260 st.b r3, (r2, 0x0) + 4a2a: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 4a2c: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 4a2e: 4b30 lsri r1, r3, 16 + 4a30: 4b78 lsri r3, r3, 24 + 4a32: a263 st.b r3, (r2, 0x3) + 4a34: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 4a36: e3ffee79 bsr 0x2728 // 2728 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4a3a: 84c2 ld.b r6, (r4, 0x2) + 4a3c: 8461 ld.b r3, (r4, 0x1) + 4a3e: 46c8 lsli r6, r6, 8 + 4a40: 6d8c or r6, r3 + 4a42: 3000 movi r0, 0 + 4a44: e3ffee7e bsr 0x2740 // 2740 + 4a48: 5e66 addi r3, r6, 2 + 4a4a: 4361 lsli r3, r3, 1 + 4a4c: 60d0 addu r3, r4 + 4a4e: a303 st.b r0, (r3, 0x3) + 4a50: 4808 lsri r0, r0, 8 + 4a52: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 4a54: 8462 ld.b r3, (r4, 0x2) + 4a56: 8441 ld.b r2, (r4, 0x1) + 4a58: 4368 lsli r3, r3, 8 + 4a5a: 6cc8 or r3, r2 + 4a5c: 2300 addi r3, 1 + 4a5e: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 4a60: 3b09 cmphsi r3, 10 + 4a62: 5c42 addi r2, r4, 1 + 4a64: 0813 bt 0x4a8a // 4a8a + g_adc.index++; + 4a66: a461 st.b r3, (r4, 0x1) + 4a68: 4b68 lsri r3, r3, 8 + 4a6a: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4a6c: 8460 ld.b r3, (r4, 0x0) + 4a6e: 3b41 cmpnei r3, 1 + 4a70: 080c bt 0x4a88 // 4a88 + if (SysTick_1ms - adc_tick >= 100) { + 4a72: 104d lrw r2, 0x200000d0 // 4aa4 + 4a74: 9220 ld.w r1, (r2, 0x0) + 4a76: 9560 ld.w r3, (r5, 0x0) + 4a78: 60c6 subu r3, r1 + 4a7a: 3163 movi r1, 99 + 4a7c: 64c4 cmphs r1, r3 + 4a7e: 0805 bt 0x4a88 // 4a88 + adc_tick = SysTick_1ms; + 4a80: 9560 ld.w r3, (r5, 0x0) + 4a82: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4a84: e3ffff5a bsr 0x4938 // 4938 + } + } +} + 4a88: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4a8a: 3300 movi r3, 0 + 4a8c: a461 st.b r3, (r4, 0x1) + 4a8e: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 4a90: 3301 movi r3, 1 + 4a92: a460 st.b r3, (r4, 0x0) + 4a94: 07ec br 0x4a6c // 4a6c + 4a96: 0000 bkpt + 4a98: 20000440 .long 0x20000440 + 4a9c: 200000b8 .long 0x200000b8 + 4aa0: 200000b4 .long 0x200000b4 + 4aa4: 200000d0 .long 0x200000d0 + +Disassembly of section .text.Get_Temp_Val: + +00004aa8 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4aa8: 1063 lrw r3, 0x20000440 // 4ab4 + 4aaa: 831e ld.b r0, (r3, 0x1e) + 4aac: 835d ld.b r2, (r3, 0x1d) + 4aae: 4008 lsli r0, r0, 8 + 4ab0: 6c08 or r0, r2 +} + 4ab2: 783c jmp r15 + 4ab4: 20000440 .long 0x20000440 + +Disassembly of section .text.Contol_Switch_Light: + +00004ab8 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 4ab8: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4aba: 3805 cmphsi r0, 6 +{ + 4abc: 6d47 mov r5, r1 + switch(ch) + 4abe: 0818 bt 0x4aee // 4aee + 4ac0: 009b lrw r4, 0x20000478 // 4e50 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4ac2: 3941 cmpnei r1, 1 + switch(ch) + 4ac4: e3ffe134 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4ac8: 00330006 .long 0x00330006 + 4acc: 008d0060 .long 0x008d0060 + 4ad0: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4ad4: 0814 bt 0x4afc // 4afc + if(g_switch.feedback_light_selection == 0x01){ + 4ad6: 8462 ld.b r3, (r4, 0x2) + 4ad8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4ada: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4adc: 080a bt 0x4af0 // 4af0 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4ade: 300b movi r0, 11 + 4ae0: e00004ce bsr 0x547c // 547c + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4ae4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4ae6: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4ae8: e00004ca bsr 0x547c // 547c + g_switch.light_state[T_CH1] = state; + 4aec: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4aee: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4af0: 3006 movi r0, 6 + 4af2: e00004c5 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4af6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4af8: 300b movi r0, 11 + 4afa: 07f7 br 0x4ae8 // 4ae8 + }else if(state == Control_OFF){ + 4afc: 3942 cmpnei r1, 2 + 4afe: 0bf7 bt 0x4aec // 4aec + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b00: 016a lrw r3, 0x200000b8 // 4e54 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4b02: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b04: 9360 ld.w r3, (r3, 0x0) + 4b06: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4b08: 8462 ld.b r3, (r4, 0x2) + 4b0a: 3b41 cmpnei r3, 1 + 4b0c: 0809 bt 0x4b1e // 4b1e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4b0e: 300b movi r0, 11 + 4b10: e00004b6 bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4b14: 846a ld.b r3, (r4, 0xa) + 4b16: 3b41 cmpnei r3, 1 + 4b18: 0bea bt 0x4aec // 4aec + 4b1a: 3101 movi r1, 1 + 4b1c: 07e5 br 0x4ae6 // 4ae6 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4b1e: 3006 movi r0, 6 + 4b20: e00004ae bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4b24: 846a ld.b r3, (r4, 0xa) + 4b26: 3b41 cmpnei r3, 1 + 4b28: 0be2 bt 0x4aec // 4aec + 4b2a: 3101 movi r1, 1 + 4b2c: 07e6 br 0x4af8 // 4af8 + if(state == Control_ON){ + 4b2e: 0814 bt 0x4b56 // 4b56 + if(g_switch.feedback_light_selection == 0x01){ + 4b30: 8462 ld.b r3, (r4, 0x2) + 4b32: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4b34: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4b36: 080a bt 0x4b4a // 4b4a + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4b38: 300c movi r0, 12 + 4b3a: e00004a1 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4b3e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4b40: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4b42: e000049d bsr 0x547c // 547c + g_switch.light_state[T_CH2] = state; + 4b46: a4a6 st.b r5, (r4, 0x6) + break; + 4b48: 07d3 br 0x4aee // 4aee + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4b4a: 3007 movi r0, 7 + 4b4c: e0000498 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4b50: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4b52: 300c movi r0, 12 + 4b54: 07f7 br 0x4b42 // 4b42 + }else if(state == Control_OFF){ + 4b56: 3942 cmpnei r1, 2 + 4b58: 0bf7 bt 0x4b46 // 4b46 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b5a: 0260 lrw r3, 0x200000b8 // 4e54 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4b5c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b5e: 9360 ld.w r3, (r3, 0x0) + 4b60: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4b62: 8462 ld.b r3, (r4, 0x2) + 4b64: 3b41 cmpnei r3, 1 + 4b66: 0809 bt 0x4b78 // 4b78 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4b68: 300c movi r0, 12 + 4b6a: e0000489 bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4b6e: 846a ld.b r3, (r4, 0xa) + 4b70: 3b41 cmpnei r3, 1 + 4b72: 0bea bt 0x4b46 // 4b46 + 4b74: 3101 movi r1, 1 + 4b76: 07e5 br 0x4b40 // 4b40 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4b78: 3007 movi r0, 7 + 4b7a: e0000481 bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4b7e: 846a ld.b r3, (r4, 0xa) + 4b80: 3b41 cmpnei r3, 1 + 4b82: 0be2 bt 0x4b46 // 4b46 + 4b84: 3101 movi r1, 1 + 4b86: 07e6 br 0x4b52 // 4b52 + if(state == Control_ON){ + 4b88: 0814 bt 0x4bb0 // 4bb0 + if(g_switch.feedback_light_selection == 0x01){ + 4b8a: 8462 ld.b r3, (r4, 0x2) + 4b8c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b8e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4b90: 080a bt 0x4ba4 // 4ba4 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b92: 300d movi r0, 13 + 4b94: e0000474 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4b98: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4b9a: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b9c: e0000470 bsr 0x547c // 547c + g_switch.light_state[T_CH3] = state; + 4ba0: a4a7 st.b r5, (r4, 0x7) + break; + 4ba2: 07a6 br 0x4aee // 4aee + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4ba4: 3008 movi r0, 8 + 4ba6: e000046b bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4baa: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4bac: 300d movi r0, 13 + 4bae: 07f7 br 0x4b9c // 4b9c + }else if(state == Control_OFF){ + 4bb0: 3942 cmpnei r1, 2 + 4bb2: 0bf7 bt 0x4ba0 // 4ba0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4bb4: 0277 lrw r3, 0x200000b8 // 4e54 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4bb6: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4bb8: 9360 ld.w r3, (r3, 0x0) + 4bba: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4bbc: 8462 ld.b r3, (r4, 0x2) + 4bbe: 3b41 cmpnei r3, 1 + 4bc0: 0809 bt 0x4bd2 // 4bd2 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4bc2: 300d movi r0, 13 + 4bc4: e000045c bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4bc8: 846a ld.b r3, (r4, 0xa) + 4bca: 3b41 cmpnei r3, 1 + 4bcc: 0bea bt 0x4ba0 // 4ba0 + 4bce: 3101 movi r1, 1 + 4bd0: 07e5 br 0x4b9a // 4b9a + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4bd2: 3008 movi r0, 8 + 4bd4: e0000454 bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4bd8: 846a ld.b r3, (r4, 0xa) + 4bda: 3b41 cmpnei r3, 1 + 4bdc: 0be2 bt 0x4ba0 // 4ba0 + 4bde: 3101 movi r1, 1 + 4be0: 07e6 br 0x4bac // 4bac + if(state == Control_ON){ + 4be2: 0814 bt 0x4c0a // 4c0a + if(g_switch.feedback_light_selection == 0x01){ + 4be4: 8462 ld.b r3, (r4, 0x2) + 4be6: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4be8: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4bea: 080a bt 0x4bfe // 4bfe + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4bec: 300e movi r0, 14 + 4bee: e0000447 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4bf2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4bf4: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4bf6: e0000443 bsr 0x547c // 547c + g_switch.light_state[T_CH4] = state; + 4bfa: a4a8 st.b r5, (r4, 0x8) + break; + 4bfc: 0779 br 0x4aee // 4aee + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4bfe: 3009 movi r0, 9 + 4c00: e000043e bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c04: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4c06: 300e movi r0, 14 + 4c08: 07f7 br 0x4bf6 // 4bf6 + }else if(state == Control_OFF){ + 4c0a: 3942 cmpnei r1, 2 + 4c0c: 0bf7 bt 0x4bfa // 4bfa + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4c0e: 036d lrw r3, 0x200000b8 // 4e54 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c10: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4c12: 9360 ld.w r3, (r3, 0x0) + 4c14: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4c16: 8462 ld.b r3, (r4, 0x2) + 4c18: 3b41 cmpnei r3, 1 + 4c1a: 0809 bt 0x4c2c // 4c2c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c1c: 300e movi r0, 14 + 4c1e: e000042f bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4c22: 846a ld.b r3, (r4, 0xa) + 4c24: 3b41 cmpnei r3, 1 + 4c26: 0bea bt 0x4bfa // 4bfa + 4c28: 3101 movi r1, 1 + 4c2a: 07e5 br 0x4bf4 // 4bf4 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4c2c: 3009 movi r0, 9 + 4c2e: e0000427 bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4c32: 846a ld.b r3, (r4, 0xa) + 4c34: 3b41 cmpnei r3, 1 + 4c36: 0be2 bt 0x4bfa // 4bfa + 4c38: 3101 movi r1, 1 + 4c3a: 07e6 br 0x4c06 // 4c06 + if(state == Control_ON){ + 4c3c: 0814 bt 0x4c64 // 4c64 + if(g_switch.feedback_light_selection == 0x01){ + 4c3e: 8462 ld.b r3, (r4, 0x2) + 4c40: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c42: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4c44: 080a bt 0x4c58 // 4c58 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c46: 300f movi r0, 15 + 4c48: e000041a bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4c4c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4c4e: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c50: e0000416 bsr 0x547c // 547c + g_switch.light_state[T_CH5] = state; + 4c54: a4a9 st.b r5, (r4, 0x9) + break; + 4c56: 074c br 0x4aee // 4aee + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4c58: 300a movi r0, 10 + 4c5a: e0000411 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4c5e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c60: 300f movi r0, 15 + 4c62: 07f7 br 0x4c50 // 4c50 + }else if(state == Control_OFF){ + 4c64: 3942 cmpnei r1, 2 + 4c66: 0bf7 bt 0x4c54 // 4c54 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4c68: 137b lrw r3, 0x200000b8 // 4e54 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4c6a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4c6c: 9360 ld.w r3, (r3, 0x0) + 4c6e: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4c70: 8462 ld.b r3, (r4, 0x2) + 4c72: 3b41 cmpnei r3, 1 + 4c74: 0809 bt 0x4c86 // 4c86 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4c76: 300f movi r0, 15 + 4c78: e0000402 bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4c7c: 846a ld.b r3, (r4, 0xa) + 4c7e: 3b41 cmpnei r3, 1 + 4c80: 0bea bt 0x4c54 // 4c54 + 4c82: 3101 movi r1, 1 + 4c84: 07e5 br 0x4c4e // 4c4e + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4c86: 300a movi r0, 10 + 4c88: e00003fa bsr 0x547c // 547c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c8c: 846a ld.b r3, (r4, 0xa) + 4c8e: 3b41 cmpnei r3, 1 + 4c90: 0be2 bt 0x4c54 // 4c54 + 4c92: 3101 movi r1, 1 + 4c94: 07e6 br 0x4c60 // 4c60 + if(state == Control_ON){ + 4c96: 08b1 bt 0x4df8 // 4df8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4c98: 136f lrw r3, 0x200000b8 // 4e54 + 4c9a: 9360 ld.w r3, (r3, 0x0) + 4c9c: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4c9e: 8462 ld.b r3, (r4, 0x2) + 4ca0: 3b41 cmpnei r3, 1 + 4ca2: 8465 ld.b r3, (r4, 0x5) + 4ca4: 0857 bt 0x4d52 // 4d52 + if(g_switch.light_state[T_CH1] != Control_ON) { + 4ca6: 3b41 cmpnei r3, 1 + 4ca8: 0c33 bf 0x4d0e // 4d0e + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4caa: 3101 movi r1, 1 + 4cac: 3006 movi r0, 6 + 4cae: e00003e7 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4cb2: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4cb4: 300b movi r0, 11 + 4cb6: e00003e3 bsr 0x547c // 547c + if(g_switch.light_state[T_CH2] != Control_ON) { + 4cba: 8466 ld.b r3, (r4, 0x6) + 4cbc: 3b41 cmpnei r3, 1 + 4cbe: 0c2e bf 0x4d1a // 4d1a + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4cc0: 3101 movi r1, 1 + 4cc2: 3007 movi r0, 7 + 4cc4: e00003dc bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4cc8: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4cca: 300c movi r0, 12 + 4ccc: e00003d8 bsr 0x547c // 547c + if(g_switch.light_state[T_CH3] != Control_ON) { + 4cd0: 8467 ld.b r3, (r4, 0x7) + 4cd2: 3b41 cmpnei r3, 1 + 4cd4: 0c29 bf 0x4d26 // 4d26 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4cd6: 3101 movi r1, 1 + 4cd8: 3008 movi r0, 8 + 4cda: e00003d1 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4cde: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4ce0: 300d movi r0, 13 + 4ce2: e00003cd bsr 0x547c // 547c + if(g_switch.light_state[T_CH4] != Control_ON) { + 4ce6: 8468 ld.b r3, (r4, 0x8) + 4ce8: 3b41 cmpnei r3, 1 + 4cea: 0c24 bf 0x4d32 // 4d32 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4cec: 3101 movi r1, 1 + 4cee: 3009 movi r0, 9 + 4cf0: e00003c6 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4cf4: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4cf6: 300e movi r0, 14 + 4cf8: e00003c2 bsr 0x547c // 547c + if(g_switch.light_state[T_CH5] != Control_ON) { + 4cfc: 8469 ld.b r3, (r4, 0x9) + 4cfe: 3b41 cmpnei r3, 1 + 4d00: 0c1f bf 0x4d3e // 4d3e + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4d02: 3101 movi r1, 1 + 4d04: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4d06: e00003bb bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4d0a: 3102 movi r1, 2 + 4d0c: 041e br 0x4d48 // 4d48 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4d0e: 3102 movi r1, 2 + 4d10: 3006 movi r0, 6 + 4d12: e00003b5 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4d16: 3101 movi r1, 1 + 4d18: 07ce br 0x4cb4 // 4cb4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4d1a: 3102 movi r1, 2 + 4d1c: 3007 movi r0, 7 + 4d1e: e00003af bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4d22: 3101 movi r1, 1 + 4d24: 07d3 br 0x4cca // 4cca + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4d26: 3102 movi r1, 2 + 4d28: 3008 movi r0, 8 + 4d2a: e00003a9 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4d2e: 3101 movi r1, 1 + 4d30: 07d8 br 0x4ce0 // 4ce0 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4d32: 3102 movi r1, 2 + 4d34: 3009 movi r0, 9 + 4d36: e00003a3 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4d3a: 3101 movi r1, 1 + 4d3c: 07dd br 0x4cf6 // 4cf6 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d3e: 3102 movi r1, 2 + 4d40: 300a movi r0, 10 + 4d42: e000039d bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4d46: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4d48: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d4a: e0000399 bsr 0x547c // 547c + g_switch.light_state[T_Backlight] = state; + 4d4e: a4aa st.b r5, (r4, 0xa) +} + 4d50: 06cf br 0x4aee // 4aee + if(g_switch.light_state[T_CH1] != Control_ON) { + 4d52: 3b41 cmpnei r3, 1 + 4d54: 0c33 bf 0x4dba // 4dba + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4d56: 3101 movi r1, 1 + 4d58: 300b movi r0, 11 + 4d5a: e0000391 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4d5e: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4d60: 3006 movi r0, 6 + 4d62: e000038d bsr 0x547c // 547c + if(g_switch.light_state[T_CH2] != Control_ON) { + 4d66: 8466 ld.b r3, (r4, 0x6) + 4d68: 3b41 cmpnei r3, 1 + 4d6a: 0c2e bf 0x4dc6 // 4dc6 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4d6c: 3101 movi r1, 1 + 4d6e: 300c movi r0, 12 + 4d70: e0000386 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4d74: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4d76: 3007 movi r0, 7 + 4d78: e0000382 bsr 0x547c // 547c + if(g_switch.light_state[T_CH3] != Control_ON) { + 4d7c: 8467 ld.b r3, (r4, 0x7) + 4d7e: 3b41 cmpnei r3, 1 + 4d80: 0c29 bf 0x4dd2 // 4dd2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4d82: 3101 movi r1, 1 + 4d84: 300d movi r0, 13 + 4d86: e000037b bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4d8a: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4d8c: 3008 movi r0, 8 + 4d8e: e0000377 bsr 0x547c // 547c + if(g_switch.light_state[T_CH4] != Control_ON) { + 4d92: 8468 ld.b r3, (r4, 0x8) + 4d94: 3b41 cmpnei r3, 1 + 4d96: 0c24 bf 0x4dde // 4dde + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4d98: 3101 movi r1, 1 + 4d9a: 300e movi r0, 14 + 4d9c: e0000370 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4da0: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4da2: 3009 movi r0, 9 + 4da4: e000036c bsr 0x547c // 547c + if(g_switch.light_state[T_CH5] != Control_ON) { + 4da8: 8469 ld.b r3, (r4, 0x9) + 4daa: 3b41 cmpnei r3, 1 + 4dac: 0c1f bf 0x4dea // 4dea + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4dae: 3101 movi r1, 1 + 4db0: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4db2: e0000365 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4db6: 3102 movi r1, 2 + 4db8: 041e br 0x4df4 // 4df4 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4dba: 3102 movi r1, 2 + 4dbc: 300b movi r0, 11 + 4dbe: e000035f bsr 0x547c // 547c + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4dc2: 3101 movi r1, 1 + 4dc4: 07ce br 0x4d60 // 4d60 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4dc6: 3102 movi r1, 2 + 4dc8: 300c movi r0, 12 + 4dca: e0000359 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4dce: 3101 movi r1, 1 + 4dd0: 07d3 br 0x4d76 // 4d76 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4dd2: 3102 movi r1, 2 + 4dd4: 300d movi r0, 13 + 4dd6: e0000353 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4dda: 3101 movi r1, 1 + 4ddc: 07d8 br 0x4d8c // 4d8c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4dde: 3102 movi r1, 2 + 4de0: 300e movi r0, 14 + 4de2: e000034d bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4de6: 3101 movi r1, 1 + 4de8: 07dd br 0x4da2 // 4da2 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4dea: 3102 movi r1, 2 + 4dec: 300f movi r0, 15 + 4dee: e0000347 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4df2: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4df4: 300a movi r0, 10 + 4df6: 07aa br 0x4d4a // 4d4a + }else if(state == Control_OFF){ + 4df8: 3942 cmpnei r1, 2 + 4dfa: 0baa bt 0x4d4e // 4d4e + if(g_switch.feedback_light_selection == 0x01){ + 4dfc: 8462 ld.b r3, (r4, 0x2) + 4dfe: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4e00: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 4e02: 082b bt 0x4e58 // 4e58 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4e04: 3006 movi r0, 6 + 4e06: e000033b bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4e0a: 3102 movi r1, 2 + 4e0c: 3007 movi r0, 7 + 4e0e: e0000337 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4e12: 3102 movi r1, 2 + 4e14: 3008 movi r0, 8 + 4e16: e0000333 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4e1a: 3102 movi r1, 2 + 4e1c: 3009 movi r0, 9 + 4e1e: e000032f bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4e22: 3102 movi r1, 2 + 4e24: 300a movi r0, 10 + 4e26: e000032b bsr 0x547c // 547c + if(g_switch.autoOff_light_flag == 0x01){ + 4e2a: 8461 ld.b r3, (r4, 0x1) + 4e2c: 3b41 cmpnei r3, 1 + 4e2e: 0b90 bt 0x4d4e // 4d4e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4e30: 3102 movi r1, 2 + 4e32: 300b movi r0, 11 + 4e34: e0000324 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4e38: 3102 movi r1, 2 + 4e3a: 300c movi r0, 12 + 4e3c: e0000320 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4e40: 3102 movi r1, 2 + 4e42: 300d movi r0, 13 + 4e44: e000031c bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4e48: 3102 movi r1, 2 + 4e4a: 300e movi r0, 14 + 4e4c: 075d br 0x4d06 // 4d06 + 4e4e: 0000 bkpt + 4e50: 20000478 .long 0x20000478 + 4e54: 200000b8 .long 0x200000b8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4e58: 300b movi r0, 11 + 4e5a: e0000311 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4e5e: 3102 movi r1, 2 + 4e60: 300c movi r0, 12 + 4e62: e000030d bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4e66: 3102 movi r1, 2 + 4e68: 300d movi r0, 13 + 4e6a: e0000309 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4e6e: 3102 movi r1, 2 + 4e70: 300e movi r0, 14 + 4e72: e0000305 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4e76: 3102 movi r1, 2 + 4e78: 300f movi r0, 15 + 4e7a: e0000301 bsr 0x547c // 547c + if(g_switch.autoOff_light_flag == 0x01){ + 4e7e: 8461 ld.b r3, (r4, 0x1) + 4e80: 3b41 cmpnei r3, 1 + 4e82: 0b66 bt 0x4d4e // 4d4e + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4e84: 3102 movi r1, 2 + 4e86: 3006 movi r0, 6 + 4e88: e00002fa bsr 0x547c // 547c + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4e8c: 3102 movi r1, 2 + 4e8e: 3007 movi r0, 7 + 4e90: e00002f6 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4e94: 3102 movi r1, 2 + 4e96: 3008 movi r0, 8 + 4e98: e00002f2 bsr 0x547c // 547c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4e9c: 3102 movi r1, 2 + 4e9e: 3009 movi r0, 9 + 4ea0: 0789 br 0x4db2 // 4db2 + +Disassembly of section .text.Contol_Switch_Light_2: + +00004ea4 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 4ea4: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4ea6: 3805 cmphsi r0, 6 +{ + 4ea8: 6d47 mov r5, r1 + switch(ch) + 4eaa: 0818 bt 0x4eda // 4eda + 4eac: 009b lrw r4, 0x20000478 // 523c + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4eae: 3941 cmpnei r1, 1 + switch(ch) + 4eb0: e3ffdf3e bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4eb4: 00330006 .long 0x00330006 + 4eb8: 008d0060 .long 0x008d0060 + 4ebc: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4ec0: 0814 bt 0x4ee8 // 4ee8 + if(g_switch.feedback_light_selection == 0x01){ + 4ec2: 8462 ld.b r3, (r4, 0x2) + 4ec4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4ec6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4ec8: 080a bt 0x4edc // 4edc + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4eca: 300b movi r0, 11 + 4ecc: e0000310 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 4ed0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4ed2: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4ed4: e000030c bsr 0x54ec // 54ec + g_switch.light_state[T_CH1] = state; + 4ed8: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4eda: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4edc: 3006 movi r0, 6 + 4ede: e0000307 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4ee2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4ee4: 300b movi r0, 11 + 4ee6: 07f7 br 0x4ed4 // 4ed4 + }else if(state == Control_OFF){ + 4ee8: 3942 cmpnei r1, 2 + 4eea: 0bf7 bt 0x4ed8 // 4ed8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4eec: 016a lrw r3, 0x200000b8 // 5240 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4eee: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ef0: 9360 ld.w r3, (r3, 0x0) + 4ef2: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4ef4: 8462 ld.b r3, (r4, 0x2) + 4ef6: 3b41 cmpnei r3, 1 + 4ef8: 0809 bt 0x4f0a // 4f0a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4efa: 300b movi r0, 11 + 4efc: e00002f8 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4f00: 846a ld.b r3, (r4, 0xa) + 4f02: 3b41 cmpnei r3, 1 + 4f04: 0bea bt 0x4ed8 // 4ed8 + 4f06: 3101 movi r1, 1 + 4f08: 07e5 br 0x4ed2 // 4ed2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 4f0a: 3006 movi r0, 6 + 4f0c: e00002f0 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4f10: 846a ld.b r3, (r4, 0xa) + 4f12: 3b41 cmpnei r3, 1 + 4f14: 0be2 bt 0x4ed8 // 4ed8 + 4f16: 3101 movi r1, 1 + 4f18: 07e6 br 0x4ee4 // 4ee4 + if(state == Control_ON){ + 4f1a: 0814 bt 0x4f42 // 4f42 + if(g_switch.feedback_light_selection == 0x01){ + 4f1c: 8462 ld.b r3, (r4, 0x2) + 4f1e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4f20: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f22: 080a bt 0x4f36 // 4f36 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4f24: 300c movi r0, 12 + 4f26: e00002e3 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 4f2a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4f2c: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4f2e: e00002df bsr 0x54ec // 54ec + g_switch.light_state[T_CH2] = state; + 4f32: a4a6 st.b r5, (r4, 0x6) + break; + 4f34: 07d3 br 0x4eda // 4eda + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4f36: 3007 movi r0, 7 + 4f38: e00002da bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4f3c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4f3e: 300c movi r0, 12 + 4f40: 07f7 br 0x4f2e // 4f2e + }else if(state == Control_OFF){ + 4f42: 3942 cmpnei r1, 2 + 4f44: 0bf7 bt 0x4f32 // 4f32 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f46: 0260 lrw r3, 0x200000b8 // 5240 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4f48: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f4a: 9360 ld.w r3, (r3, 0x0) + 4f4c: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4f4e: 8462 ld.b r3, (r4, 0x2) + 4f50: 3b41 cmpnei r3, 1 + 4f52: 0809 bt 0x4f64 // 4f64 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4f54: 300c movi r0, 12 + 4f56: e00002cb bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4f5a: 846a ld.b r3, (r4, 0xa) + 4f5c: 3b41 cmpnei r3, 1 + 4f5e: 0bea bt 0x4f32 // 4f32 + 4f60: 3101 movi r1, 1 + 4f62: 07e5 br 0x4f2c // 4f2c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 4f64: 3007 movi r0, 7 + 4f66: e00002c3 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4f6a: 846a ld.b r3, (r4, 0xa) + 4f6c: 3b41 cmpnei r3, 1 + 4f6e: 0be2 bt 0x4f32 // 4f32 + 4f70: 3101 movi r1, 1 + 4f72: 07e6 br 0x4f3e // 4f3e + if(state == Control_ON){ + 4f74: 0814 bt 0x4f9c // 4f9c + if(g_switch.feedback_light_selection == 0x01){ + 4f76: 8462 ld.b r3, (r4, 0x2) + 4f78: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f7a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f7c: 080a bt 0x4f90 // 4f90 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f7e: 300d movi r0, 13 + 4f80: e00002b6 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 4f84: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4f86: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f88: e00002b2 bsr 0x54ec // 54ec + g_switch.light_state[T_CH3] = state; + 4f8c: a4a7 st.b r5, (r4, 0x7) + break; + 4f8e: 07a6 br 0x4eda // 4eda + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4f90: 3008 movi r0, 8 + 4f92: e00002ad bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4f96: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f98: 300d movi r0, 13 + 4f9a: 07f7 br 0x4f88 // 4f88 + }else if(state == Control_OFF){ + 4f9c: 3942 cmpnei r1, 2 + 4f9e: 0bf7 bt 0x4f8c // 4f8c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fa0: 0277 lrw r3, 0x200000b8 // 5240 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4fa2: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fa4: 9360 ld.w r3, (r3, 0x0) + 4fa6: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4fa8: 8462 ld.b r3, (r4, 0x2) + 4faa: 3b41 cmpnei r3, 1 + 4fac: 0809 bt 0x4fbe // 4fbe + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4fae: 300d movi r0, 13 + 4fb0: e000029e bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4fb4: 846a ld.b r3, (r4, 0xa) + 4fb6: 3b41 cmpnei r3, 1 + 4fb8: 0bea bt 0x4f8c // 4f8c + 4fba: 3101 movi r1, 1 + 4fbc: 07e5 br 0x4f86 // 4f86 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 4fbe: 3008 movi r0, 8 + 4fc0: e0000296 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4fc4: 846a ld.b r3, (r4, 0xa) + 4fc6: 3b41 cmpnei r3, 1 + 4fc8: 0be2 bt 0x4f8c // 4f8c + 4fca: 3101 movi r1, 1 + 4fcc: 07e6 br 0x4f98 // 4f98 + if(state == Control_ON){ + 4fce: 0814 bt 0x4ff6 // 4ff6 + if(g_switch.feedback_light_selection == 0x01){ + 4fd0: 8462 ld.b r3, (r4, 0x2) + 4fd2: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4fd4: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4fd6: 080a bt 0x4fea // 4fea + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4fd8: 300e movi r0, 14 + 4fda: e0000289 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 4fde: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4fe0: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4fe2: e0000285 bsr 0x54ec // 54ec + g_switch.light_state[T_CH4] = state; + 4fe6: a4a8 st.b r5, (r4, 0x8) + break; + 4fe8: 0779 br 0x4eda // 4eda + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4fea: 3009 movi r0, 9 + 4fec: e0000280 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4ff0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4ff2: 300e movi r0, 14 + 4ff4: 07f7 br 0x4fe2 // 4fe2 + }else if(state == Control_OFF){ + 4ff6: 3942 cmpnei r1, 2 + 4ff8: 0bf7 bt 0x4fe6 // 4fe6 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ffa: 036d lrw r3, 0x200000b8 // 5240 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4ffc: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ffe: 9360 ld.w r3, (r3, 0x0) + 5000: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5002: 8462 ld.b r3, (r4, 0x2) + 5004: 3b41 cmpnei r3, 1 + 5006: 0809 bt 0x5018 // 5018 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5008: 300e movi r0, 14 + 500a: e0000271 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 500e: 846a ld.b r3, (r4, 0xa) + 5010: 3b41 cmpnei r3, 1 + 5012: 0bea bt 0x4fe6 // 4fe6 + 5014: 3101 movi r1, 1 + 5016: 07e5 br 0x4fe0 // 4fe0 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5018: 3009 movi r0, 9 + 501a: e0000269 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 501e: 846a ld.b r3, (r4, 0xa) + 5020: 3b41 cmpnei r3, 1 + 5022: 0be2 bt 0x4fe6 // 4fe6 + 5024: 3101 movi r1, 1 + 5026: 07e6 br 0x4ff2 // 4ff2 + if(state == Control_ON){ + 5028: 0814 bt 0x5050 // 5050 + if(g_switch.feedback_light_selection == 0x01){ + 502a: 8462 ld.b r3, (r4, 0x2) + 502c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 502e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5030: 080a bt 0x5044 // 5044 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5032: 300f movi r0, 15 + 5034: e000025c bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5038: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 503a: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 503c: e0000258 bsr 0x54ec // 54ec + g_switch.light_state[T_CH5] = state; + 5040: a4a9 st.b r5, (r4, 0x9) + break; + 5042: 074c br 0x4eda // 4eda + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5044: 300a movi r0, 10 + 5046: e0000253 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 504a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 504c: 300f movi r0, 15 + 504e: 07f7 br 0x503c // 503c + }else if(state == Control_OFF){ + 5050: 3942 cmpnei r1, 2 + 5052: 0bf7 bt 0x5040 // 5040 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5054: 137b lrw r3, 0x200000b8 // 5240 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5056: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5058: 9360 ld.w r3, (r3, 0x0) + 505a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 505c: 8462 ld.b r3, (r4, 0x2) + 505e: 3b41 cmpnei r3, 1 + 5060: 0809 bt 0x5072 // 5072 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5062: 300f movi r0, 15 + 5064: e0000244 bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5068: 846a ld.b r3, (r4, 0xa) + 506a: 3b41 cmpnei r3, 1 + 506c: 0bea bt 0x5040 // 5040 + 506e: 3101 movi r1, 1 + 5070: 07e5 br 0x503a // 503a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5072: 300a movi r0, 10 + 5074: e000023c bsr 0x54ec // 54ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5078: 846a ld.b r3, (r4, 0xa) + 507a: 3b41 cmpnei r3, 1 + 507c: 0be2 bt 0x5040 // 5040 + 507e: 3101 movi r1, 1 + 5080: 07e6 br 0x504c // 504c + if(state == Control_ON){ + 5082: 08b1 bt 0x51e4 // 51e4 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5084: 136f lrw r3, 0x200000b8 // 5240 + 5086: 9360 ld.w r3, (r3, 0x0) + 5088: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 508a: 8462 ld.b r3, (r4, 0x2) + 508c: 3b41 cmpnei r3, 1 + 508e: 8465 ld.b r3, (r4, 0x5) + 5090: 0857 bt 0x513e // 513e + if(g_switch.light_state[T_CH1] != Control_ON) { + 5092: 3b41 cmpnei r3, 1 + 5094: 0c33 bf 0x50fa // 50fa + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5096: 3101 movi r1, 1 + 5098: 3006 movi r0, 6 + 509a: e0000229 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 509e: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 50a0: 300b movi r0, 11 + 50a2: e0000225 bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH2] != Control_ON) { + 50a6: 8466 ld.b r3, (r4, 0x6) + 50a8: 3b41 cmpnei r3, 1 + 50aa: 0c2e bf 0x5106 // 5106 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 50ac: 3101 movi r1, 1 + 50ae: 3007 movi r0, 7 + 50b0: e000021e bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 50b4: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 50b6: 300c movi r0, 12 + 50b8: e000021a bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH3] != Control_ON) { + 50bc: 8467 ld.b r3, (r4, 0x7) + 50be: 3b41 cmpnei r3, 1 + 50c0: 0c29 bf 0x5112 // 5112 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 50c2: 3101 movi r1, 1 + 50c4: 3008 movi r0, 8 + 50c6: e0000213 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 50ca: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 50cc: 300d movi r0, 13 + 50ce: e000020f bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH4] != Control_ON) { + 50d2: 8468 ld.b r3, (r4, 0x8) + 50d4: 3b41 cmpnei r3, 1 + 50d6: 0c24 bf 0x511e // 511e + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 50d8: 3101 movi r1, 1 + 50da: 3009 movi r0, 9 + 50dc: e0000208 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 50e0: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 50e2: 300e movi r0, 14 + 50e4: e0000204 bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH5] != Control_ON) { + 50e8: 8469 ld.b r3, (r4, 0x9) + 50ea: 3b41 cmpnei r3, 1 + 50ec: 0c1f bf 0x512a // 512a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 50ee: 3101 movi r1, 1 + 50f0: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 50f2: e00001fd bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 50f6: 3102 movi r1, 2 + 50f8: 041e br 0x5134 // 5134 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 50fa: 3102 movi r1, 2 + 50fc: 3006 movi r0, 6 + 50fe: e00001f7 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5102: 3101 movi r1, 1 + 5104: 07ce br 0x50a0 // 50a0 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5106: 3102 movi r1, 2 + 5108: 3007 movi r0, 7 + 510a: e00001f1 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 510e: 3101 movi r1, 1 + 5110: 07d3 br 0x50b6 // 50b6 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5112: 3102 movi r1, 2 + 5114: 3008 movi r0, 8 + 5116: e00001eb bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 511a: 3101 movi r1, 1 + 511c: 07d8 br 0x50cc // 50cc + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 511e: 3102 movi r1, 2 + 5120: 3009 movi r0, 9 + 5122: e00001e5 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5126: 3101 movi r1, 1 + 5128: 07dd br 0x50e2 // 50e2 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 512a: 3102 movi r1, 2 + 512c: 300a movi r0, 10 + 512e: e00001df bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5132: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5134: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5136: e00001db bsr 0x54ec // 54ec + g_switch.light_state[T_Backlight] = state; + 513a: a4aa st.b r5, (r4, 0xa) +} + 513c: 06cf br 0x4eda // 4eda + if(g_switch.light_state[T_CH1] != Control_ON) { + 513e: 3b41 cmpnei r3, 1 + 5140: 0c33 bf 0x51a6 // 51a6 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5142: 3101 movi r1, 1 + 5144: 300b movi r0, 11 + 5146: e00001d3 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 514a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 514c: 3006 movi r0, 6 + 514e: e00001cf bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH2] != Control_ON) { + 5152: 8466 ld.b r3, (r4, 0x6) + 5154: 3b41 cmpnei r3, 1 + 5156: 0c2e bf 0x51b2 // 51b2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5158: 3101 movi r1, 1 + 515a: 300c movi r0, 12 + 515c: e00001c8 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5160: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5162: 3007 movi r0, 7 + 5164: e00001c4 bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH3] != Control_ON) { + 5168: 8467 ld.b r3, (r4, 0x7) + 516a: 3b41 cmpnei r3, 1 + 516c: 0c29 bf 0x51be // 51be + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 516e: 3101 movi r1, 1 + 5170: 300d movi r0, 13 + 5172: e00001bd bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5176: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5178: 3008 movi r0, 8 + 517a: e00001b9 bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH4] != Control_ON) { + 517e: 8468 ld.b r3, (r4, 0x8) + 5180: 3b41 cmpnei r3, 1 + 5182: 0c24 bf 0x51ca // 51ca + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5184: 3101 movi r1, 1 + 5186: 300e movi r0, 14 + 5188: e00001b2 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 518c: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 518e: 3009 movi r0, 9 + 5190: e00001ae bsr 0x54ec // 54ec + if(g_switch.light_state[T_CH5] != Control_ON) { + 5194: 8469 ld.b r3, (r4, 0x9) + 5196: 3b41 cmpnei r3, 1 + 5198: 0c1f bf 0x51d6 // 51d6 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 519a: 3101 movi r1, 1 + 519c: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 519e: e00001a7 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 51a2: 3102 movi r1, 2 + 51a4: 041e br 0x51e0 // 51e0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 51a6: 3102 movi r1, 2 + 51a8: 300b movi r0, 11 + 51aa: e00001a1 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 51ae: 3101 movi r1, 1 + 51b0: 07ce br 0x514c // 514c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 51b2: 3102 movi r1, 2 + 51b4: 300c movi r0, 12 + 51b6: e000019b bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 51ba: 3101 movi r1, 1 + 51bc: 07d3 br 0x5162 // 5162 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 51be: 3102 movi r1, 2 + 51c0: 300d movi r0, 13 + 51c2: e0000195 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 51c6: 3101 movi r1, 1 + 51c8: 07d8 br 0x5178 // 5178 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 51ca: 3102 movi r1, 2 + 51cc: 300e movi r0, 14 + 51ce: e000018f bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 51d2: 3101 movi r1, 1 + 51d4: 07dd br 0x518e // 518e + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 51d6: 3102 movi r1, 2 + 51d8: 300f movi r0, 15 + 51da: e0000189 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 51de: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 51e0: 300a movi r0, 10 + 51e2: 07aa br 0x5136 // 5136 + }else if(state == Control_OFF){ + 51e4: 3942 cmpnei r1, 2 + 51e6: 0baa bt 0x513a // 513a + if(g_switch.feedback_light_selection == 0x01){ + 51e8: 8462 ld.b r3, (r4, 0x2) + 51ea: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 51ec: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 51ee: 082b bt 0x5244 // 5244 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 51f0: 3006 movi r0, 6 + 51f2: e000017d bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 51f6: 3102 movi r1, 2 + 51f8: 3007 movi r0, 7 + 51fa: e0000179 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 51fe: 3102 movi r1, 2 + 5200: 3008 movi r0, 8 + 5202: e0000175 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5206: 3102 movi r1, 2 + 5208: 3009 movi r0, 9 + 520a: e0000171 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 520e: 3102 movi r1, 2 + 5210: 300a movi r0, 10 + 5212: e000016d bsr 0x54ec // 54ec + if(g_switch.autoOff_light_flag == 0x01){ + 5216: 8461 ld.b r3, (r4, 0x1) + 5218: 3b41 cmpnei r3, 1 + 521a: 0b90 bt 0x513a // 513a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 521c: 3102 movi r1, 2 + 521e: 300b movi r0, 11 + 5220: e0000166 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5224: 3102 movi r1, 2 + 5226: 300c movi r0, 12 + 5228: e0000162 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 522c: 3102 movi r1, 2 + 522e: 300d movi r0, 13 + 5230: e000015e bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5234: 3102 movi r1, 2 + 5236: 300e movi r0, 14 + 5238: 075d br 0x50f2 // 50f2 + 523a: 0000 bkpt + 523c: 20000478 .long 0x20000478 + 5240: 200000b8 .long 0x200000b8 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5244: 300b movi r0, 11 + 5246: e0000153 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 524a: 3102 movi r1, 2 + 524c: 300c movi r0, 12 + 524e: e000014f bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5252: 3102 movi r1, 2 + 5254: 300d movi r0, 13 + 5256: e000014b bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 525a: 3102 movi r1, 2 + 525c: 300e movi r0, 14 + 525e: e0000147 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5262: 3102 movi r1, 2 + 5264: 300f movi r0, 15 + 5266: e0000143 bsr 0x54ec // 54ec + if(g_switch.autoOff_light_flag == 0x01){ + 526a: 8461 ld.b r3, (r4, 0x1) + 526c: 3b41 cmpnei r3, 1 + 526e: 0b66 bt 0x513a // 513a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5270: 3102 movi r1, 2 + 5272: 3006 movi r0, 6 + 5274: e000013c bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5278: 3102 movi r1, 2 + 527a: 3007 movi r0, 7 + 527c: e0000138 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5280: 3102 movi r1, 2 + 5282: 3008 movi r0, 8 + 5284: e0000134 bsr 0x54ec // 54ec + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5288: 3102 movi r1, 2 + 528a: 3009 movi r0, 9 + 528c: 0789 br 0x519e // 519e + +Disassembly of section .text.Contol_Switch_ClickAction: + +00005290 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 5290: 14d0 push r15 + switch(ch) + 5292: 3804 cmphsi r0, 5 + 5294: 0809 bt 0x52a6 // 52a6 + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 5296: 1068 lrw r3, 0x20000478 // 52b4 + 5298: 836a ld.b r3, (r3, 0xa) + 529a: 3b41 cmpnei r3, 1 + 529c: 0806 bt 0x52a8 // 52a8 + if(state == Control_ON ){ + 529e: 3941 cmpnei r1, 1 + 52a0: 0804 bt 0x52a8 // 52a8 + Contol_Switch_Light_2(ch,Control_ON); + 52a2: e3fffe01 bsr 0x4ea4 // 4ea4 + break; + default: + + break; + } +} + 52a6: 1490 pop r15 + if(state == Control_OFF ){ + 52a8: 3942 cmpnei r1, 2 + 52aa: 0bfe bt 0x52a6 // 52a6 + Contol_Switch_Light(ch,Control_OFF); + 52ac: e3fffc06 bsr 0x4ab8 // 4ab8 +} + 52b0: 07fb br 0x52a6 // 52a6 + 52b2: 0000 bkpt + 52b4: 20000478 .long 0x20000478 + +Disassembly of section .text.Get_TM1812_State_Change: + +000052b8 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 52b8: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 52ba: 1071 lrw r3, 0x20000134 // 52fc + 52bc: 8318 ld.b r0, (r3, 0x18) + 52be: 3841 cmpnei r0, 1 + 52c0: 0804 bt 0x52c8 // 52c8 + tm1812_param.change_flag = 0x00; + 52c2: 3200 movi r2, 0 + 52c4: a358 st.b r2, (r3, 0x18) + } + } + + if(rev != 0x00) return 0x01; + return 0x00; +} + 52c6: 1482 pop r4-r5 + 52c8: 104e lrw r2, 0x200000d4 // 5300 + if(tm1812_param.change_flag == 0x01) { + 52ca: 3018 movi r0, 24 + 52cc: 3300 movi r3, 0 + if(tm1812_param.gradient_flag[i] == 0x01) { + 52ce: 3130 movi r1, 48 + if(tm1812_param.curr_data[i] != tm1812_param.data[i]){ + 52d0: 82b8 ld.b r5, (r2, 0x18) + 52d2: 8280 ld.b r4, (r2, 0x0) + 52d4: 6516 cmpne r5, r4 + 52d6: 0c03 bf 0x52dc // 52dc + rev++; + 52d8: 2300 addi r3, 1 + 52da: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 52dc: 5a84 addu r4, r2, r1 + 52de: 8480 ld.b r4, (r4, 0x0) + 52e0: 3c41 cmpnei r4, 1 + 52e2: 0803 bt 0x52e8 // 52e8 + rev++; + 52e4: 2300 addi r3, 1 + 52e6: 74cc zextb r3, r3 + 52e8: 2800 subi r0, 1 + 52ea: 7400 zextb r0, r0 + for(i=0;i + if(rev != 0x00) return 0x01; + 52f2: 3b40 cmpnei r3, 0 + 52f4: 6001 addc r0, r0 + return 0x01; //立即控制 + 52f6: 7400 zextb r0, r0 + 52f8: 07e7 br 0x52c6 // 52c6 + 52fa: 0000 bkpt + 52fc: 20000134 .long 0x20000134 + 5300: 200000d4 .long 0x200000d4 + +Disassembly of section .text.TimeCall_SIO_Send: + +00005304 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 5304: 14d4 push r4-r7, r15 + 5306: 1421 subi r14, r14, 4 + 5308: 1264 lrw r3, 0x200000d4 // 5418 + 530a: 3188 movi r1, 136 + 530c: 3260 movi r2, 96 + 530e: 604c addu r1, r3 + 5310: 608c addu r2, r3 + 5312: 3718 movi r7, 24 + 5314: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 5322: 3448 movi r4, 72 + 5324: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 5326: 84a0 ld.b r5, (r4, 0x0) + 5328: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 532a: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 532c: 083a bt 0x53a0 // 53a0 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 532e: 35ff movi r5, 255 + 5330: 6542 cmpne r0, r5 + 5332: 0c34 bf 0x539a // 539a + //递增 + tm1812_param.gradient_cnt[i]++; + 5334: 8280 ld.b r4, (r2, 0x0) + 5336: 2400 addi r4, 1 + 5338: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 533a: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 533c: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 533e: 0c05 bf 0x5348 // 5348 + tm1812_param.curr_data[i]++; + 5340: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 5342: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 5344: 3000 movi r0, 0 + 5346: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 5348: 3000 movi r0, 0 + 534a: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 534c: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 534e: 3480 movi r4, 128 + 5350: 6914 and r4, r5 + 5352: 3c40 cmpnei r4, 0 + 5354: 9180 ld.w r4, (r1, 0x0) + 5356: 0c44 bf 0x53de // 53de + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 5358: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 535a: 7180 lsl r6, r0 + 535c: 2001 addi r0, 2 + 535e: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 5360: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5362: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 5364: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 5366: 0bf4 bt 0x534e // 534e + 5368: 5f03 subi r0, r7, 1 + 536a: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 5376: e3fff326 bsr 0x39c2 // 39c2 + + for(K=0;K + 537e: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5380: 3022 movi r0, 34 + 5382: 1148 lrw r2, 0x2000002c // 5420 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5384: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5386: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5388: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 5392: e3fff315 bsr 0x39bc // 39bc + +} + 5396: 1401 addi r14, r14, 4 + 5398: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 539a: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 539c: a400 st.b r0, (r4, 0x0) + 539e: 07d5 br 0x5348 // 5348 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 53a0: 3840 cmpnei r0, 0 + 53a2: 0c09 bf 0x53b4 // 53b4 + tm1812_param.gradient_cnt[i]++; + 53a4: 8280 ld.b r4, (r2, 0x0) + 53a6: 2400 addi r4, 1 + 53a8: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 53aa: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 53ac: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 53ae: 0fcd bf 0x5348 // 5348 + tm1812_param.curr_data[i]--; + 53b0: 2800 subi r0, 1 + 53b2: 07c8 br 0x5342 // 5342 + tm1812_param.gradient_dir[i] = 0x01; + 53b4: 3001 movi r0, 1 + 53b6: 07f3 br 0x539c // 539c + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 53b8: 7400 zextb r0, r0 + 53ba: 8380 ld.b r4, (r3, 0x0) + 53bc: 6500 cmphs r0, r4 + 53be: 0807 bt 0x53cc // 53cc + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 53c0: 5ca1 subu r5, r4, r0 + 53c2: 3d22 cmplti r5, 3 + 53c4: 080b bt 0x53da // 53da + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 53c6: 2001 addi r0, 2 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 53c8: a318 st.b r0, (r3, 0x18) + 53ca: 07bf br 0x5348 // 5348 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 53cc: 6410 cmphs r4, r0 + 53ce: 0bbd bt 0x5348 // 5348 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 53d0: 58b1 subu r5, r0, r4 + 53d2: 3d22 cmplti r5, 3 + 53d4: 0803 bt 0x53da // 53da + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 53d6: 2801 subi r0, 2 + 53d8: 07f8 br 0x53c8 // 53c8 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 53da: a398 st.b r4, (r3, 0x18) + 53dc: 07b6 br 0x5348 // 5348 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 53de: 3602 movi r6, 2 + 53e0: 07bd br 0x535a // 535a + SIO0->TXBUF = tm1812_param.write_buff[K]; + 53e2: 8328 ld.b r1, (r3, 0x8) + 53e4: 6040 addu r1, r0 + 53e6: 4122 lsli r1, r1, 2 + 53e8: 98c0 ld.w r6, (r14, 0x0) + 53ea: 6058 addu r1, r6 + 53ec: 9120 ld.w r1, (r1, 0x0) + 53ee: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 53f0: 9228 ld.w r1, (r2, 0x20) + 53f2: 6850 and r1, r4 + 53f4: 3940 cmpnei r1, 0 + 53f6: 0ffd bf 0x53f0 // 53f0 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 53f8: 922b ld.w r1, (r2, 0x2c) + 53fa: 3982 bclri r1, 2 + 53fc: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 53fe: 9228 ld.w r1, (r2, 0x20) + 5400: 6854 and r1, r5 + 5402: 3940 cmpnei r1, 0 + 5404: 0ffd bf 0x53fe // 53fe + SIO0->ICR &= ~SIO_TXDNE; + 5406: 922b ld.w r1, (r2, 0x2c) + 5408: 3980 bclri r1, 0 + 540a: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 5416: 0000 bkpt + 5418: 200000d4 .long 0x200000d4 + 541c: 200001b4 .long 0x200001b4 + 5420: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +00005424 : + +void Tm1812_Task(void) { + 5424: 14d1 push r4, r15 +// } +// } + + static U32_T test_tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 5426: e3ffff49 bsr 0x52b8 // 52b8 + 542a: 3841 cmpnei r0, 1 + 542c: 080f bt 0x544a // 544a + if(SysTick_100us - test_tick >= 20){ + 542e: 1048 lrw r2, 0x200000b4 // 544c + 5430: 1088 lrw r4, 0x20000154 // 5450 + 5432: 9260 ld.w r3, (r2, 0x0) + 5434: 943b ld.w r1, (r4, 0x6c) + 5436: 60c6 subu r3, r1 + 5438: 3b13 cmphsi r3, 20 + 543a: 0c05 bf 0x5444 // 5444 + test_tick = SysTick_100us; + 543c: 9260 ld.w r3, (r2, 0x0) + 543e: b47b st.w r3, (r4, 0x6c) + + + TimeCall_SIO_Send(); + 5440: e3ffff62 bsr 0x5304 // 5304 + + } + tm1812_param.regular_tick = SysTick_1ms; + 5444: 1064 lrw r3, 0x200000b8 // 5454 + 5446: 9360 ld.w r3, (r3, 0x0) + 5448: b461 st.w r3, (r4, 0x4) + } + +} + 544a: 1491 pop r4, r15 + 544c: 200000b4 .long 0x200000b4 + 5450: 20000154 .long 0x20000154 + 5454: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00005458 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 5458: 3817 cmphsi r0, 24 + 545a: 080c bt 0x5472 // 5472 + return; + } + + tm1812_param.data[select] = data; + 545c: 1066 lrw r3, 0x200000d4 // 5474 + 545e: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 5460: 3260 movi r2, 96 + 5462: 608c addu r2, r3 + tm1812_param.data[select] = data; + 5464: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 5466: 3101 movi r1, 1 + 5468: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 546a: 237f addi r3, 128 + 546c: 1043 lrw r2, 0x200000b8 // 5478 + 546e: 9240 ld.w r2, (r2, 0x0) + 5470: b340 st.w r2, (r3, 0x0) +} + 5472: 783c jmp r15 + 5474: 200000d4 .long 0x200000d4 + 5478: 200000b8 .long 0x200000b8 + +Disassembly of section .text.TM1812_Control_CH_State: + +0000547c : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 547c: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 547e: 3817 cmphsi r0, 24 + 5480: 082a bt 0x54d4 // 54d4 + return 0x01; + } + + switch(state){ + 5482: 3942 cmpnei r1, 2 + 5484: 0c12 bf 0x54a8 // 54a8 + 5486: 3943 cmpnei r1, 3 + 5488: 0c14 bf 0x54b0 // 54b0 + 548a: 3941 cmpnei r1, 1 + 548c: 0806 bt 0x5498 // 5498 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 548e: 1073 lrw r3, 0x200000d4 // 54d8 + 5490: 600c addu r0, r3 + 5492: 3300 movi r3, 0 + 5494: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 5496: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5498: 1071 lrw r3, 0x20000134 // 54dc + 549a: 3201 movi r2, 1 + 549c: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 549e: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 54a0: 1050 lrw r2, 0x200000b8 // 54e0 + 54a2: 9240 ld.w r2, (r2, 0x0) + 54a4: b348 st.w r2, (r3, 0x20) +} + 54a6: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 54a8: 106c lrw r3, 0x200000d4 // 54d8 + 54aa: 600c addu r0, r3 + 54ac: 3300 movi r3, 0 + 54ae: 07f4 br 0x5496 // 5496 + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 54b0: 106a lrw r3, 0x200000d4 // 54d8 + 54b2: 600c addu r0, r3 + 54b4: 8020 ld.b r1, (r0, 0x0) + 54b6: 32ff movi r2, 255 + 54b8: 3300 movi r3, 0 + 54ba: 6486 cmpne r1, r2 + 54bc: 2b00 subi r3, 1 + 54be: 0c07 bf 0x54cc // 54cc + tm1812_param.data[ch] = TM1812_CH_ON; + 54c0: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 54c2: 1029 lrw r1, 0x89d1 // 54e4 + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 54c4: 3000 movi r0, 0 + 54c6: e3fff3d9 bsr 0x3c78 // 3c78 + 54ca: 07e7 br 0x5498 // 5498 + tm1812_param.data[ch] = TM1812_CH_OFF; + 54cc: 3300 movi r3, 0 + 54ce: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 54d0: 1026 lrw r1, 0x89d9 // 54e8 + 54d2: 07f9 br 0x54c4 // 54c4 + return 0x01; + 54d4: 3001 movi r0, 1 + 54d6: 07e8 br 0x54a6 // 54a6 + 54d8: 200000d4 .long 0x200000d4 + 54dc: 20000134 .long 0x20000134 + 54e0: 200000b8 .long 0x200000b8 + 54e4: 000089d1 .long 0x000089d1 + 54e8: 000089d9 .long 0x000089d9 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +000054ec : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 54ec: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 54ee: 3817 cmphsi r0, 24 + 54f0: 0827 bt 0x553e // 553e + return 0x01; + } + + switch(state){ + 54f2: 3942 cmpnei r1, 2 + 54f4: 0c13 bf 0x551a // 551a + 54f6: 3943 cmpnei r1, 3 + 54f8: 0c15 bf 0x5522 // 5522 + 54fa: 3941 cmpnei r1, 1 + 54fc: 0807 bt 0x550a // 550a + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 54fe: 1072 lrw r3, 0x200000d4 // 5544 + 5500: 600c addu r0, r3 + 5502: 3300 movi r3, 0 + 5504: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5506: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5508: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 550a: 1070 lrw r3, 0x20000134 // 5548 + 550c: 3201 movi r2, 1 + 550e: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5510: 3000 movi r0, 0 + 5512: 104f lrw r2, 0x200000b8 // 554c + 5514: 9240 ld.w r2, (r2, 0x0) + 5516: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5518: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 551a: 106b lrw r3, 0x200000d4 // 5544 + 551c: 600c addu r0, r3 + 551e: 3300 movi r3, 0 + 5520: 07f3 br 0x5506 // 5506 + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 5522: 1069 lrw r3, 0x200000d4 // 5544 + 5524: 600c addu r0, r3 + 5526: 3218 movi r2, 24 + 5528: 6080 addu r2, r0 + 552a: 8280 ld.b r4, (r2, 0x0) + 552c: 31ff movi r1, 255 + 552e: 3300 movi r3, 0 + 5530: 6452 cmpne r4, r1 + 5532: 2b00 subi r3, 1 + 5534: 0c03 bf 0x553a // 553a + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5536: a260 st.b r3, (r2, 0x0) + 5538: 07e8 br 0x5508 // 5508 + 553a: 3300 movi r3, 0 + 553c: 07fd br 0x5536 // 5536 + return 0x01; + 553e: 3001 movi r0, 1 + 5540: 07ec br 0x5518 // 5518 + 5542: 0000 bkpt + 5544: 200000d4 .long 0x200000d4 + 5548: 20000134 .long 0x20000134 + 554c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.TM1812_LED_Init: + +00005550 : +void TM1812_LED_Init(void){ + 5550: 14d0 push r15 + 5552: 1426 subi r14, r14, 24 + SIO_DeInit(); + 5554: e3ffe536 bsr 0x1fc0 // 1fc0 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 5558: 3001 movi r0, 1 + 555a: e3ffe543 bsr 0x1fe0 // 1fe0 + SIO_TX_Init(SIOCLK_EN,9); // + 555e: 3109 movi r1, 9 + 5560: 3001 movi r0, 1 + 5562: e3ffe56f bsr 0x2040 // 2040 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 5566: 3303 movi r3, 3 + 5568: b865 st.w r3, (r14, 0x14) + 556a: 330f movi r3, 15 + 556c: b864 st.w r3, (r14, 0x10) + 556e: 33a0 movi r3, 160 + 5570: 4366 lsli r3, r3, 6 + 5572: b863 st.w r3, (r14, 0xc) + 5574: 33a0 movi r3, 160 + 5576: 4363 lsli r3, r3, 3 + 5578: b862 st.w r3, (r14, 0x8) + 557a: 3300 movi r3, 0 + 557c: b861 st.w r3, (r14, 0x4) + 557e: b860 st.w r3, (r14, 0x0) + 5580: 3207 movi r2, 7 + 5582: 3317 movi r3, 23 + 5584: 3100 movi r1, 0 + 5586: 3002 movi r0, 2 + 5588: e3ffe564 bsr 0x2050 // 2050 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 558c: 32e8 movi r2, 232 + 558e: 3100 movi r1, 0 + 5590: 1006 lrw r0, 0x200000d4 // 55a8 + 5592: e3ffe21b bsr 0x19c8 // 19c8 <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 5596: 1066 lrw r3, 0x20000478 // 55ac + 5598: 3201 movi r2, 1 + RLY_CTRL_EN; + 559a: 3101 movi r1, 1 + 559c: 3017 movi r0, 23 + g_switch.feedback_light_selection = 0x01; + 559e: a342 st.b r2, (r3, 0x2) + RLY_CTRL_EN; + 55a0: e3ffffa6 bsr 0x54ec // 54ec +} + 55a4: 1406 addi r14, r14, 24 + 55a6: 1490 pop r15 + 55a8: 200000d4 .long 0x200000d4 + 55ac: 20000478 .long 0x20000478 + +Disassembly of section .text.HT1621_WR_Data: + +000055b0 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 55b0: 14d4 push r4-r7, r15 + 55b2: 6d43 mov r5, r0 + 55b4: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 55be: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 55c0: 3101 movi r1, 1 + 55c2: 9600 ld.w r0, (r6, 0x0) + 55c4: e3ffe48f bsr 0x1ee2 // 1ee2 + nop; + 55c8: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 55ca: 74d6 sextb r3, r5 + 55cc: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 55ce: 3104 movi r1, 4 + 55d0: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 55d2: 0c0d bf 0x55ec // 55ec + HT1621_DATA_HIGH; + 55d4: e3ffe483 bsr 0x1eda // 1eda + nop; + 55d8: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 55da: 3101 movi r1, 1 + 55dc: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 55de: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 55e6: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 55ec: e3ffe47b bsr 0x1ee2 // 1ee2 + 55f0: 07f4 br 0x55d8 // 55d8 + 55f2: 0000 bkpt + 55f4: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000055f8 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 55f8: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 55fa: 108b lrw r4, 0x2000004c // 5624 +{ + 55fc: 6d43 mov r5, r0 + HT1621_CS_LOW; + 55fe: 310f movi r1, 15 + 5600: 9400 ld.w r0, (r4, 0x0) + 5602: e3ffe470 bsr 0x1ee2 // 1ee2 + nop; + 5606: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 5608: 3104 movi r1, 4 + 560a: 3080 movi r0, 128 + 560c: e3ffffd2 bsr 0x55b0 // 55b0 + HT1621_WR_Data(cmd,8); + 5610: 6c17 mov r0, r5 + 5612: 3108 movi r1, 8 + 5614: e3ffffce bsr 0x55b0 // 55b0 + HT1621_CS_HIGH; + 5618: 9400 ld.w r0, (r4, 0x0) + 561a: 310f movi r1, 15 + 561c: e3ffe45f bsr 0x1eda // 1eda + nop; + 5620: 6c03 mov r0, r0 +} + 5622: 1492 pop r4-r5, r15 + 5624: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005628 : +void HT1621_Init(void){ + 5628: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 562a: 1188 lrw r4, 0x2000004c // 56c8 + 562c: 3200 movi r2, 0 + 562e: 9400 ld.w r0, (r4, 0x0) + 5630: 3100 movi r1, 0 + 5632: e3ffe3dd bsr 0x1dec // 1dec + GPIO_Init(GPIOA0,1,Output); + 5636: 9400 ld.w r0, (r4, 0x0) + 5638: 3200 movi r2, 0 + 563a: 3101 movi r1, 1 + 563c: e3ffe3d8 bsr 0x1dec // 1dec + GPIO_Init(GPIOA0,15,Output); + 5640: 9400 ld.w r0, (r4, 0x0) + 5642: 3200 movi r2, 0 + 5644: 310f movi r1, 15 + 5646: e3ffe3d3 bsr 0x1dec // 1dec + GPIO_Init(GPIOA0,4,Output); + 564a: 3200 movi r2, 0 + 564c: 9400 ld.w r0, (r4, 0x0) + 564e: 3104 movi r1, 4 + 5650: e3ffe3ce bsr 0x1dec // 1dec + GPIO_DriveStrength_EN(GPIOA0,0); + 5654: 9400 ld.w r0, (r4, 0x0) + 5656: 3100 movi r1, 0 + 5658: e3ffe43a bsr 0x1ecc // 1ecc + GPIO_DriveStrength_EN(GPIOA0,1); + 565c: 9400 ld.w r0, (r4, 0x0) + 565e: 3101 movi r1, 1 + 5660: e3ffe436 bsr 0x1ecc // 1ecc + GPIO_DriveStrength_EN(GPIOA0,15); + 5664: 9400 ld.w r0, (r4, 0x0) + 5666: 310f movi r1, 15 + 5668: e3ffe432 bsr 0x1ecc // 1ecc + GPIO_DriveStrength_EN(GPIOA0,4); + 566c: 9400 ld.w r0, (r4, 0x0) + 566e: 3104 movi r1, 4 + 5670: e3ffe42e bsr 0x1ecc // 1ecc + HT1621_CS_LOW; + 5674: 9400 ld.w r0, (r4, 0x0) + 5676: 310f movi r1, 15 + 5678: e3ffe435 bsr 0x1ee2 // 1ee2 + HT1621_WR_LOW; + 567c: 9400 ld.w r0, (r4, 0x0) + 567e: 3101 movi r1, 1 + 5680: e3ffe431 bsr 0x1ee2 // 1ee2 + HT1621_RD_LOW; + 5684: 9400 ld.w r0, (r4, 0x0) + 5686: 3100 movi r1, 0 + 5688: e3ffe42d bsr 0x1ee2 // 1ee2 + HT1621_DATA_LOW; + 568c: 3104 movi r1, 4 + 568e: 9400 ld.w r0, (r4, 0x0) + 5690: e3ffe429 bsr 0x1ee2 // 1ee2 + HT1621_WR_CMD(HT1621_BIAS); + 5694: 3052 movi r0, 82 + 5696: e3ffffb1 bsr 0x55f8 // 55f8 + HT1621_WR_CMD(HT1621_RC256); + 569a: 3030 movi r0, 48 + 569c: e3ffffae bsr 0x55f8 // 55f8 + HT1621_WR_CMD(HT1621_SYSDIS); + 56a0: 3000 movi r0, 0 + 56a2: e3ffffab bsr 0x55f8 // 55f8 + HT1621_WR_CMD(HT1621_WDTDIS); + 56a6: 300a movi r0, 10 + 56a8: e3ffffa8 bsr 0x55f8 // 55f8 + HT1621_WR_CMD(HT1621_SYSEN); + 56ac: 3002 movi r0, 2 + 56ae: e3ffffa5 bsr 0x55f8 // 55f8 + HT1621_WR_CMD(HT1621_LCDON); + 56b2: 3006 movi r0, 6 + 56b4: e3ffffa2 bsr 0x55f8 // 55f8 + HT1621_WR_CMD(HT1621_BIOFF); + 56b8: 3010 movi r0, 16 + 56ba: e3ffff9f bsr 0x55f8 // 55f8 + HT1621_CS_HIGH; + 56be: 9400 ld.w r0, (r4, 0x0) + 56c0: 310f movi r1, 15 + 56c2: e3ffe40c bsr 0x1eda // 1eda +} + 56c6: 1491 pop r4, r15 + 56c8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +000056cc : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 56cc: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 56ce: 3214 movi r2, 20 + 56d0: 3100 movi r1, 0 + + HT1621_CS_LOW; + 56d2: 10b1 lrw r5, 0x2000004c // 5714 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 56d4: 1011 lrw r0, 0x200004a0 // 5718 + 56d6: e3ffe179 bsr 0x19c8 // 19c8 <__memset_fast> + HT1621_CS_LOW; + 56da: 310f movi r1, 15 + 56dc: 9500 ld.w r0, (r5, 0x0) + 56de: e3ffe402 bsr 0x1ee2 // 1ee2 + nop; + 56e2: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 56e4: 3103 movi r1, 3 + 56e6: 30a0 movi r0, 160 + 56e8: e3ffff64 bsr 0x55b0 // 55b0 + HT1621_WR_Data(0,6); + 56ec: 3106 movi r1, 6 + 56ee: 3000 movi r0, 0 + 56f0: e3ffff60 bsr 0x55b0 // 55b0 + 56f4: 3414 movi r4, 20 + 56f6: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5706: 9500 ld.w r0, (r5, 0x0) + 5708: 310f movi r1, 15 + 570a: e3ffe3e8 bsr 0x1eda // 1eda + nop; + 570e: 6c03 mov r0, r0 +} + 5710: 1492 pop r4-r5, r15 + 5712: 0000 bkpt + 5714: 2000004c .long 0x2000004c + 5718: 200004a0 .long 0x200004a0 + +Disassembly of section .text.HT1621_ALLON: + +0000571c : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 571c: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 571e: 10af lrw r5, 0x2000004c // 5758 + 5720: 310f movi r1, 15 + 5722: 9500 ld.w r0, (r5, 0x0) + 5724: e3ffe3df bsr 0x1ee2 // 1ee2 + nop; + 5728: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 572a: 3103 movi r1, 3 + 572c: 30a0 movi r0, 160 + 572e: e3ffff41 bsr 0x55b0 // 55b0 + HT1621_WR_Data(0,6); + 5732: 3106 movi r1, 6 + 5734: 3000 movi r0, 0 + 5736: e3ffff3d bsr 0x55b0 // 55b0 + 573a: 3414 movi r4, 20 + 573c: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 574c: 9500 ld.w r0, (r5, 0x0) + 574e: 310f movi r1, 15 + 5750: e3ffe3c5 bsr 0x1eda // 1eda + nop; + 5754: 6c03 mov r0, r0 +} + 5756: 1492 pop r4-r5, r15 + 5758: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +0000575c : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 575c: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 575e: 1091 lrw r4, 0x2000004c // 57a0 + 5760: 310f movi r1, 15 + 5762: 9400 ld.w r0, (r4, 0x0) + 5764: e3ffe3bf bsr 0x1ee2 // 1ee2 + nop; + 5768: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 576a: 3103 movi r1, 3 + 576c: 30a0 movi r0, 160 + 576e: e3ffff21 bsr 0x55b0 // 55b0 + HT1621_WR_Data(0,6); + 5772: 3106 movi r1, 6 + 5774: 3000 movi r0, 0 + 5776: e3ffff1d bsr 0x55b0 // 55b0 + 577a: 3500 movi r5, 0 + for(U8_T i=0;i + 577e: 60d4 addu r3, r5 + 5780: 830c ld.b r0, (r3, 0xc) + 5782: 4004 lsli r0, r0, 4 + 5784: 7400 zextb r0, r0 + 5786: 3104 movi r1, 4 + 5788: 2500 addi r5, 1 + 578a: e3ffff13 bsr 0x55b0 // 55b0 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5792: 9400 ld.w r0, (r4, 0x0) + 5794: 310f movi r1, 15 + 5796: e3ffe3a2 bsr 0x1eda // 1eda + nop; + 579a: 6c03 mov r0, r0 +} + 579c: 1492 pop r4-r5, r15 + 579e: 0000 bkpt + 57a0: 2000004c .long 0x2000004c + 57a4: 20000494 .long 0x20000494 + +Disassembly of section .text.Set_Temperature_Display: + +000057a8 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 57a8: 14d4 push r4-r7, r15 + 57aa: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 57ac: 1170 lrw r3, 0x200004f9 // 586c + 57ae: 8368 ld.b r3, (r3, 0x8) + 57b0: 3b40 cmpnei r3, 0 +{ + 57b2: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 57b4: b861 st.w r3, (r14, 0x4) + 57b6: 0845 bt 0x5840 // 5840 + tmp_Integer = tmp/10; + 57b8: 310a movi r1, 10 + 57ba: e3fff0cb bsr 0x3950 // 3950 <__udivsi3> + 57be: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 57c0: 310a movi r1, 10 + 57c2: 6c13 mov r0, r4 + 57c4: e3fff0ea bsr 0x3998 // 3998 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 57c8: 118a lrw r4, 0x20000494 // 5870 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 57ca: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 57cc: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 57ce: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 57d0: 8476 ld.b r3, (r4, 0x16) + 57d2: 68d4 and r3, r5 + 57d4: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 57d6: 8474 ld.b r3, (r4, 0x14) + 57d8: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 57da: 310a movi r1, 10 + 57dc: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 57de: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 57e0: e3fff0b8 bsr 0x3950 // 3950 <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 57e4: 11e4 lrw r7, 0x8656 // 5874 + 57e6: 7400 zextb r0, r0 + 57e8: 601c addu r0, r7 + 57ea: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 57ec: 8458 ld.b r2, (r4, 0x18) + 57ee: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 57f0: 6c07 mov r0, r1 + 57f2: 350f movi r5, 15 + 57f4: 6814 and r0, r5 + 57f6: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 57f8: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 57fa: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 57fc: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 57fe: 6c1b mov r0, r6 + 5800: 310a movi r1, 10 + 5802: e3fff0cb bsr 0x3998 // 3998 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5806: 7400 zextb r0, r0 + 5808: 601c addu r0, r7 + 580a: 8040 ld.b r2, (r0, 0x0) + 580c: 6c4b mov r1, r2 + 580e: 6854 and r1, r5 + 5810: 9862 ld.w r3, (r14, 0x8) + 5812: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5814: 9860 ld.w r3, (r14, 0x0) + 5816: 61cc addu r7, r3 + 5818: 8760 ld.b r3, (r7, 0x0) + 581a: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 581c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 581e: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5820: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 5822: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5824: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 5826: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5828: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 582a: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 582c: 6d48 or r5, r2 + 582e: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 5830: 081a bt 0x5864 // 5864 + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 5832: 3ba1 bseti r3, 1 + 5834: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 5836: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5838: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 583a: a4b4 st.b r5, (r4, 0x14) +} + 583c: 1404 addi r14, r14, 16 + 583e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5840: 3012 movi r0, 18 + 5842: 7c10 mult r0, r4 + 5844: 310a movi r1, 10 + 5846: 34a0 movi r4, 160 + 5848: e3fff072 bsr 0x392c // 392c <__divsi3> + 584c: 4481 lsli r4, r4, 1 + 584e: 6100 addu r4, r0 + 5850: 310a movi r1, 10 + 5852: 6c13 mov r0, r4 + 5854: e3fff06c bsr 0x392c // 392c <__divsi3> + 5858: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 585a: 310a movi r1, 10 + 585c: 6c13 mov r0, r4 + 585e: e3fff08b bsr 0x3974 // 3974 <__modsi3> + 5862: 07b3 br 0x57c8 // 57c8 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5864: 3ba2 bseti r3, 2 + 5866: 3ba3 bseti r3, 3 + 5868: 07e7 br 0x5836 // 5836 + 586a: 0000 bkpt + 586c: 200004f9 .long 0x200004f9 + 5870: 20000494 .long 0x20000494 + 5874: 00008656 .long 0x00008656 + +Disassembly of section .text.Local_Temperature_Display: + +00005878 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 5878: 14d4 push r4-r7, r15 + 587a: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 587c: 1170 lrw r3, 0x200004f9 // 593c + 587e: 8368 ld.b r3, (r3, 0x8) + 5880: 3b40 cmpnei r3, 0 +{ + 5882: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5884: b861 st.w r3, (r14, 0x4) + 5886: 0845 bt 0x5910 // 5910 + tmp_Integer = tmp/10; + 5888: 310a movi r1, 10 + 588a: e3fff063 bsr 0x3950 // 3950 <__udivsi3> + 588e: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5890: 310a movi r1, 10 + 5892: 6c13 mov r0, r4 + 5894: e3fff082 bsr 0x3998 // 3998 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 5898: 118a lrw r4, 0x20000494 // 5940 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 589a: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 589c: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 589e: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 58a0: 847d ld.b r3, (r4, 0x1d) + 58a2: 68d4 and r3, r5 + 58a4: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 58a6: 847b ld.b r3, (r4, 0x1b) + 58a8: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 58aa: 310a movi r1, 10 + 58ac: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 58ae: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 58b0: e3fff050 bsr 0x3950 // 3950 <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58b4: 11e4 lrw r7, 0x8656 // 5944 + 58b6: 7400 zextb r0, r0 + 58b8: 601c addu r0, r7 + 58ba: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 58bc: 845f ld.b r2, (r4, 0x1f) + 58be: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58c0: 6c07 mov r0, r1 + 58c2: 350f movi r5, 15 + 58c4: 6814 and r0, r5 + 58c6: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 58c8: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58ca: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 58cc: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 58ce: 6c1b mov r0, r6 + 58d0: 310a movi r1, 10 + 58d2: e3fff063 bsr 0x3998 // 3998 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 58d6: 7400 zextb r0, r0 + 58d8: 601c addu r0, r7 + 58da: 8040 ld.b r2, (r0, 0x0) + 58dc: 6c4b mov r1, r2 + 58de: 6854 and r1, r5 + 58e0: 9862 ld.w r3, (r14, 0x8) + 58e2: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 58e4: 9860 ld.w r3, (r14, 0x0) + 58e6: 61cc addu r7, r3 + 58e8: 8760 ld.b r3, (r7, 0x0) + 58ea: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 58ec: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 58ee: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 58f0: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 58f2: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 58f4: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 58f6: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 58f8: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 58fa: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 58fc: 6d48 or r5, r2 + 58fe: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 5900: 081a bt 0x5934 // 5934 + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 5902: 3ba1 bseti r3, 1 + 5904: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 5906: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5908: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 590a: a4bb st.b r5, (r4, 0x1b) +} + 590c: 1404 addi r14, r14, 16 + 590e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5910: 3012 movi r0, 18 + 5912: 7c10 mult r0, r4 + 5914: 310a movi r1, 10 + 5916: 34a0 movi r4, 160 + 5918: e3fff00a bsr 0x392c // 392c <__divsi3> + 591c: 4481 lsli r4, r4, 1 + 591e: 6100 addu r4, r0 + 5920: 310a movi r1, 10 + 5922: 6c13 mov r0, r4 + 5924: e3fff004 bsr 0x392c // 392c <__divsi3> + 5928: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 592a: 310a movi r1, 10 + 592c: 6c13 mov r0, r4 + 592e: e3fff023 bsr 0x3974 // 3974 <__modsi3> + 5932: 07b3 br 0x5898 // 5898 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5934: 3ba2 bseti r3, 2 + 5936: 3ba3 bseti r3, 3 + 5938: 07e7 br 0x5906 // 5906 + 593a: 0000 bkpt + 593c: 200004f9 .long 0x200004f9 + 5940: 20000494 .long 0x20000494 + 5944: 00008656 .long 0x00008656 + +Disassembly of section .text.Control_Mode: + +00005948 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 5948: 14d1 push r4, r15 + switch(mode){ + 594a: 3806 cmphsi r0, 7 + 594c: 0823 bt 0x5992 // 5992 + 594e: e3ffd9ef bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5952: 0007 .short 0x0007 + 5954: 005a0020 .long 0x005a0020 + 5958: 009a0020 .long 0x009a0020 + 595c: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 5960: 0376 lrw r3, 0x200004f9 // 5b84 + 5962: 8349 ld.b r2, (r3, 0x9) + 5964: 3a40 cmpnei r2, 0 + 5966: 0376 lrw r3, 0x20000494 // 5b88 + 5968: 0816 bt 0x5994 // 5994 + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 596a: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 596c: 830e ld.b r0, (r3, 0xe) + 596e: 6811 andn r0, r4 + 5970: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5972: 830f ld.b r0, (r3, 0xf) + 5974: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5976: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5978: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 597a: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 597c: 3982 bclri r1, 2 + 597e: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5980: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5982: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5984: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5986: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 5988: 39a2 bseti r1, 2 + 598a: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 598c: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 598e: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 5990: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 5992: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 5994: 3a41 cmpnei r2, 1 + 5996: 0812 bt 0x59ba // 59ba + HT1621.show_cache[1] &= ~0x07; + 5998: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 599a: 830e ld.b r0, (r3, 0xe) + 599c: 6811 andn r0, r4 + 599e: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59a0: 830f ld.b r0, (r3, 0xf) + 59a2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 59a4: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 59a6: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59a8: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 59aa: 3982 bclri r1, 2 + 59ac: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 59ae: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 59b0: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 59b2: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 59b4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 59b6: 39a2 bseti r1, 2 + 59b8: 07ea br 0x598c // 598c + else if(Debug_Inf.Language_Selection == 0x02) + 59ba: 3a42 cmpnei r2, 2 + 59bc: 0812 bt 0x59e0 // 59e0 + HT1621.show_cache[1] &= ~0x07; + 59be: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 59c0: 830e ld.b r0, (r3, 0xe) + 59c2: 6811 andn r0, r4 + 59c4: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59c6: 830f ld.b r0, (r3, 0xf) + 59c8: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 59ca: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 59cc: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59ce: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 59d0: 3982 bclri r1, 2 + 59d2: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 59d4: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 59d6: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 59d8: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 59da: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 59dc: 39a3 bseti r1, 3 + 59de: 07d7 br 0x598c // 598c + HT1621.show_cache[0] &= ~0x0C; + 59e0: 136a lrw r3, 0x20000494 // 5b88 + 59e2: 834c ld.b r2, (r3, 0xc) + 59e4: 3a82 bclri r2, 2 + 59e6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 59e8: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 59ea: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 59ec: 834d ld.b r2, (r3, 0xd) + 59ee: 6885 andn r2, r1 + 59f0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 59f2: 834e ld.b r2, (r3, 0xe) + 59f4: 6885 andn r2, r1 + 59f6: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59f8: 834f ld.b r2, (r3, 0xf) + 59fa: 6885 andn r2, r1 + 59fc: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59fe: 8351 ld.b r2, (r3, 0x11) + 5a00: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 5a02: a351 st.b r2, (r3, 0x11) +} + 5a04: 07c7 br 0x5992 // 5992 + if(Debug_Inf.Language_Selection == 0x00) + 5a06: 1360 lrw r3, 0x200004f9 // 5b84 + 5a08: 8349 ld.b r2, (r3, 0x9) + 5a0a: 3a40 cmpnei r2, 0 + 5a0c: 127f lrw r3, 0x20000494 // 5b88 + 5a0e: 0816 bt 0x5a3a // 5a3a + HT1621.show_cache[1] &= ~0x07; + 5a10: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a12: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a14: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a16: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a18: 3a82 bclri r2, 2 + 5a1a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a1c: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a1e: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a20: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a22: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a24: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a26: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a28: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a2a: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a2c: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5a2e: 39a1 bseti r1, 1 + 5a30: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 5a32: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 5a34: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 5a36: a34e st.b r2, (r3, 0xe) + 5a38: 07ad br 0x5992 // 5992 + else if(Debug_Inf.Language_Selection == 0x01) + 5a3a: 3a41 cmpnei r2, 1 + 5a3c: 0812 bt 0x5a60 // 5a60 + HT1621.show_cache[1] &= ~0x07; + 5a3e: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a40: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a42: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a44: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a46: 3a82 bclri r2, 2 + 5a48: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a4a: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a4c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a4e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a50: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a52: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a54: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a56: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a58: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a5a: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 5a5c: 39a1 bseti r1, 1 + 5a5e: 07ea br 0x5a32 // 5a32 + else if(Debug_Inf.Language_Selection == 0x02) + 5a60: 3a42 cmpnei r2, 2 + 5a62: 0bbf bt 0x59e0 // 59e0 + HT1621.show_cache[1] &= ~0x07; + 5a64: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a66: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a68: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a6a: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a6c: 3a82 bclri r2, 2 + 5a6e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a70: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a72: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a74: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a76: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a78: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a7a: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a7c: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a7e: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a80: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5a82: 39a2 bseti r1, 2 + 5a84: 07d7 br 0x5a32 // 5a32 + if(Debug_Inf.Language_Selection == 0x00) + 5a86: 1260 lrw r3, 0x200004f9 // 5b84 + 5a88: 8349 ld.b r2, (r3, 0x9) + 5a8a: 3a40 cmpnei r2, 0 + 5a8c: 117f lrw r3, 0x20000494 // 5b88 + 5a8e: 0816 bt 0x5aba // 5aba + HT1621.show_cache[0] &= ~0x0C; + 5a90: 834c ld.b r2, (r3, 0xc) + 5a92: 3a82 bclri r2, 2 + 5a94: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a96: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5a98: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a9a: 834d ld.b r2, (r3, 0xd) + 5a9c: 6881 andn r2, r0 + 5a9e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5aa0: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5aa2: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5aa4: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5aa6: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5aa8: 8311 ld.b r0, (r3, 0x11) + 5aaa: 3880 bclri r0, 0 + 5aac: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5aae: 39a1 bseti r1, 1 + 5ab0: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 5ab2: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 5ab4: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 5ab6: a34f st.b r2, (r3, 0xf) + 5ab8: 076d br 0x5992 // 5992 + else if(Debug_Inf.Language_Selection == 0x01) + 5aba: 3a41 cmpnei r2, 1 + 5abc: 0812 bt 0x5ae0 // 5ae0 + HT1621.show_cache[0] &= ~0x0C; + 5abe: 834c ld.b r2, (r3, 0xc) + 5ac0: 3a82 bclri r2, 2 + 5ac2: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5ac4: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5ac6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5ac8: 834d ld.b r2, (r3, 0xd) + 5aca: 6881 andn r2, r0 + 5acc: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5ace: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5ad0: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5ad2: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5ad4: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5ad6: 8311 ld.b r0, (r3, 0x11) + 5ad8: 3880 bclri r0, 0 + 5ada: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 5adc: 39a1 bseti r1, 1 + 5ade: 07ea br 0x5ab2 // 5ab2 + else if(Debug_Inf.Language_Selection == 0x02) + 5ae0: 3a42 cmpnei r2, 2 + 5ae2: 0b7f bt 0x59e0 // 59e0 + HT1621.show_cache[0] &= ~0x0C; + 5ae4: 834c ld.b r2, (r3, 0xc) + 5ae6: 3a82 bclri r2, 2 + 5ae8: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5aea: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5aec: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5aee: 834d ld.b r2, (r3, 0xd) + 5af0: 6881 andn r2, r0 + 5af2: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5af4: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5af6: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5af8: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5afa: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5afc: 8311 ld.b r0, (r3, 0x11) + 5afe: 3880 bclri r0, 0 + 5b00: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5b02: 39a2 bseti r1, 2 + 5b04: 07d7 br 0x5ab2 // 5ab2 + if(Debug_Inf.Language_Selection == 0x00) + 5b06: 1160 lrw r3, 0x200004f9 // 5b84 + 5b08: 8349 ld.b r2, (r3, 0x9) + 5b0a: 3a40 cmpnei r2, 0 + 5b0c: 107f lrw r3, 0x20000494 // 5b88 + 5b0e: 0815 bt 0x5b38 // 5b38 + HT1621.show_cache[0] &= ~0x0C; + 5b10: 834c ld.b r2, (r3, 0xc) + 5b12: 3a82 bclri r2, 2 + 5b14: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b16: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b18: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b1a: 834d ld.b r2, (r3, 0xd) + 5b1c: 6881 andn r2, r0 + 5b1e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b20: 834e ld.b r2, (r3, 0xe) + 5b22: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b24: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b26: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b28: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b2a: 8351 ld.b r2, (r3, 0x11) + 5b2c: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5b2e: 39a1 bseti r1, 1 + 5b30: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 5b32: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 5b34: 3aa0 bseti r2, 0 + 5b36: 0766 br 0x5a02 // 5a02 + else if(Debug_Inf.Language_Selection == 0x01) + 5b38: 3a41 cmpnei r2, 1 + 5b3a: 0812 bt 0x5b5e // 5b5e + HT1621.show_cache[0] &= ~0x0C; + 5b3c: 834c ld.b r2, (r3, 0xc) + 5b3e: 3a82 bclri r2, 2 + 5b40: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b42: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b44: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b46: 834d ld.b r2, (r3, 0xd) + 5b48: 6881 andn r2, r0 + 5b4a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b4c: 834e ld.b r2, (r3, 0xe) + 5b4e: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b50: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b52: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b54: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b56: 8351 ld.b r2, (r3, 0x11) + 5b58: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 5b5a: 39a1 bseti r1, 1 + 5b5c: 07eb br 0x5b32 // 5b32 + else if(Debug_Inf.Language_Selection == 0x02) + 5b5e: 3a42 cmpnei r2, 2 + 5b60: 0b40 bt 0x59e0 // 59e0 + HT1621.show_cache[0] &= ~0x0C; + 5b62: 834c ld.b r2, (r3, 0xc) + 5b64: 3a82 bclri r2, 2 + 5b66: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b68: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b6a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b6c: 834d ld.b r2, (r3, 0xd) + 5b6e: 6881 andn r2, r0 + 5b70: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b72: 834e ld.b r2, (r3, 0xe) + 5b74: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b76: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b78: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b7a: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b7c: 8351 ld.b r2, (r3, 0x11) + 5b7e: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5b80: 39a2 bseti r1, 2 + 5b82: 07d8 br 0x5b32 // 5b32 + 5b84: 200004f9 .long 0x200004f9 + 5b88: 20000494 .long 0x20000494 + +Disassembly of section .text.Control_wind_velocity: + +00005b8c : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 5b8c: 14d2 push r4-r5, r15 + switch(velocity) + 5b8e: 3804 cmphsi r0, 5 + 5b90: 0815 bt 0x5bba // 5bba + 5b92: 1172 lrw r3, 0x20000494 // 5c58 + 5b94: e3ffd8b4 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 5b98: 20120333 .long 0x20120333 + 5b9c: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 5b9e: 8351 ld.b r2, (r3, 0x11) + 5ba0: 310e movi r1, 14 + 5ba2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5ba4: 300f movi r0, 15 + 5ba6: 8330 ld.b r1, (r3, 0x10) + 5ba8: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 5baa: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 5bac: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 5bae: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 5bb0: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 5bb2: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 5bb4: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 5bb6: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 5bb8: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 5bba: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 5bbc: 310e movi r1, 14 + 5bbe: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 5bc0: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 5bc2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5bc4: 8330 ld.b r1, (r3, 0x10) + 5bc6: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 5bc8: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 5bca: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 5bcc: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 5bce: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 5bd0: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 5bd2: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 5bd4: 3aa3 bseti r2, 3 + 5bd6: 07f1 br 0x5bb8 // 5bb8 + HT1621.show_cache[5] &= ~0x0E; + 5bd8: 310e movi r1, 14 + 5bda: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 5bdc: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 5bde: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5be0: 8330 ld.b r1, (r3, 0x10) + 5be2: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 5be4: 300e movi r0, 14 + 5be6: 07f2 br 0x5bca // 5bca + HT1621.show_cache[4] &= ~0x0F; + 5be8: 8350 ld.b r2, (r3, 0x10) + 5bea: 310f movi r1, 15 + 5bec: 6885 andn r2, r1 + 5bee: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 5bf0: 310e movi r1, 14 + 5bf2: 8351 ld.b r2, (r3, 0x11) + 5bf4: 6885 andn r2, r1 + 5bf6: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 5bf8: 834f ld.b r2, (r3, 0xf) + 5bfa: 3a83 bclri r2, 3 + 5bfc: 07de br 0x5bb8 // 5bb8 + HT1621.show_cache[4] &= ~0x0F; + 5bfe: 8330 ld.b r1, (r3, 0x10) + 5c00: 320f movi r2, 15 + 5c02: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 5c04: 300e movi r0, 14 + 5c06: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 5c08: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 5c0a: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 5c0c: 3408 movi r4, 8 + 5c0e: 6c17 mov r0, r5 + 5c10: 6c10 or r0, r4 + 5c12: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 5c14: 6c07 mov r0, r1 + 5c16: 38a0 bseti r0, 0 + 5c18: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 5c1a: 8303 ld.b r0, (r3, 0x3) + 5c1c: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 5c1e: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 5c20: 0804 bt 0x5c28 // 5c28 + HT1621.show_cache[3] &= ~0x08; + 5c22: 3d83 bclri r5, 3 + 5c24: a3af st.b r5, (r3, 0xf) + 5c26: 07ca br 0x5bba // 5bba + }else if(HT1621.wind_velocity == 0) //低风速 + 5c28: 3840 cmpnei r0, 0 + 5c2a: 0807 bt 0x5c38 // 5c38 + HT1621.show_cache[4] |= 0x08; + 5c2c: 39a0 bseti r1, 0 + 5c2e: 39a3 bseti r1, 3 + 5c30: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 5c32: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 5c34: a351 st.b r2, (r3, 0x11) +} + 5c36: 07c2 br 0x5bba // 5bba + }else if(HT1621.wind_velocity == 1) //中风速 + 5c38: 3841 cmpnei r0, 1 + 5c3a: 0807 bt 0x5c48 // 5c48 + HT1621.show_cache[4] |= 0x0C; + 5c3c: 300d movi r0, 13 + 5c3e: 6c40 or r1, r0 + 5c40: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 5c42: 3aa2 bseti r2, 2 + 5c44: 3aa3 bseti r2, 3 + 5c46: 07f7 br 0x5c34 // 5c34 + }else if(HT1621.wind_velocity == 2) //高风速 + 5c48: 3842 cmpnei r0, 2 + 5c4a: 0bb8 bt 0x5bba // 5bba + HT1621.show_cache[4] |= 0x0E; + 5c4c: 300f movi r0, 15 + 5c4e: 6c40 or r1, r0 + 5c50: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 5c52: 310e movi r1, 14 + 5c54: 6c84 or r2, r1 + 5c56: 07ef br 0x5c34 // 5c34 + 5c58: 20000494 .long 0x20000494 + +Disassembly of section .text.Control_Prompt_Text: + +00005c5c : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 5c5c: 14c4 push r4-r7 + 5c5e: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 5c60: 1167 lrw r3, 0x20000494 // 5cfc + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 5c62: 83d6 ld.b r6, (r3, 0x16) + 5c64: 3e80 bclri r6, 0 + 5c66: 7598 zextb r6, r6 + 5c68: b8c0 st.w r6, (r14, 0x0) + 5c6a: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 5c6e: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 5c70: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c72: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c74: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 5c76: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 5c78: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5c7a: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 5c7c: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c7e: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c80: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 5c82: 3a80 bclri r2, 0 + 5c84: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 5c86: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5c88: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 5c8a: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c8c: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c8e: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 5c90: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 5c92: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5c94: 7598 zextb r6, r6 + + if(state == 0x00) + 5c96: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 5c98: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c9a: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c9c: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 5c9e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 5ca0: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5ca2: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 5ca4: 0814 bt 0x5ccc // 5ccc + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 5ca6: 3008 movi r0, 8 + 5ca8: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 5caa: 3aa0 bseti r2, 0 + 5cac: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 5cae: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 5cb0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cb2: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cb4: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cb6: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cb8: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 5cba: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cbc: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cbe: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cc0: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 5cc2: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cc4: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 5cc6: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 5cc8: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 5cca: 040b br 0x5ce0 // 5ce0 + else if(state == 0x01){ + 5ccc: 3841 cmpnei r0, 1 + 5cce: 080b bt 0x5ce4 // 5ce4 + HT1621.show_cache[0] |= 0x01; //模式 + 5cd0: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 5cd2: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cd4: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cd6: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 5cd8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 5cda: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cdc: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cde: a33f st.b r1, (r3, 0x1f) +} + 5ce0: 1401 addi r14, r14, 4 + 5ce2: 1484 pop r4-r7 + }else if(state == 0x02){ + 5ce4: 3842 cmpnei r0, 2 + 5ce6: 0bfd bt 0x5ce0 // 5ce0 + HT1621.show_cache[0] |= 0x02; //模式 + 5ce8: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cea: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 5cec: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cee: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 5cf0: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cf2: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 5cf4: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cf6: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 5cf8: 6d84 or r6, r1 + 5cfa: 07e7 br 0x5cc8 // 5cc8 + 5cfc: 20000494 .long 0x20000494 + +Disassembly of section .text.Controlled_Buzzer: + +00005d00 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 5d00: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 5d02: 3841 cmpnei r0, 1 + 5d04: 0c0a bf 0x5d18 // 5d18 + 5d06: 3840 cmpnei r0, 0 + 5d08: 0c04 bf 0x5d10 // 5d10 + 5d0a: 3842 cmpnei r0, 2 + 5d0c: 0c12 bf 0x5d30 // 5d30 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 5d0e: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 5d10: 3010 movi r0, 16 + 5d12: e3fffc73 bsr 0x55f8 // 55f8 + break; + 5d16: 07fc br 0x5d0e // 5d0e + HT1621_WR_CMD(HT1621_BLON); + 5d18: 3012 movi r0, 18 + 5d1a: e3fffc6f bsr 0x55f8 // 55f8 + HT1621.buz_control = 0x01; + 5d1e: 1069 lrw r3, 0x20000494 // 5d40 + 5d20: 3220 movi r2, 32 + 5d22: 608c addu r2, r3 + 5d24: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 5d26: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 5d28: 1047 lrw r2, 0x200000b8 // 5d44 + 5d2a: 9240 ld.w r2, (r2, 0x0) + 5d2c: b34e st.w r2, (r3, 0x38) +} + 5d2e: 07f0 br 0x5d0e // 5d0e + HT1621_WR_CMD(HT1621_BLON); + 5d30: 3012 movi r0, 18 + 5d32: e3fffc63 bsr 0x55f8 // 55f8 + HT1621.buz_control = 0x02; + 5d36: 1063 lrw r3, 0x20000494 // 5d40 + 5d38: 3220 movi r2, 32 + 5d3a: 608c addu r2, r3 + 5d3c: 3102 movi r1, 2 + 5d3e: 07f4 br 0x5d26 // 5d26 + 5d40: 20000494 .long 0x20000494 + 5d44: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00005d48 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 5d48: 14d0 push r15 + switch (state) { + 5d4a: 3840 cmpnei r0, 0 + 5d4c: 0c04 bf 0x5d54 // 5d54 + 5d4e: 3841 cmpnei r0, 1 + 5d50: 0c16 bf 0x5d7c // 5d7c + + } + break; + + } +} + 5d52: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 5d54: 1172 lrw r3, 0x20000134 // 5e1c + 5d56: 8359 ld.b r2, (r3, 0x19) + 5d58: 3a41 cmpnei r2, 1 + 5d5a: 0bfc bt 0x5d52 // 5d52 + tm1812_param.LCD_blaklingt_flag = 0x00; + 5d5c: 3200 movi r2, 0 + 5d5e: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d60: 3100 movi r1, 0 + 5d62: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d64: e3fffb7a bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 5d68: 3100 movi r1, 0 + 5d6a: 3001 movi r0, 1 + 5d6c: e3fffb76 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5d70: 3100 movi r1, 0 + 5d72: 3002 movi r0, 2 + 5d74: e3fffb72 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5d78: 3100 movi r1, 0 + 5d7a: 0437 br 0x5de8 // 5de8 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 5d7c: 1128 lrw r1, 0x20000134 // 5e1c + 5d7e: 8179 ld.b r3, (r1, 0x19) + 5d80: 3b40 cmpnei r3, 0 + 5d82: 0be8 bt 0x5d52 // 5d52 + tm1812_param.LCD_blaklingt_flag = 0x01; + 5d84: 3301 movi r3, 1 + 5d86: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d88: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 5d8a: 1166 lrw r3, 0x200004d4 // 5e20 + 5d8c: 8362 ld.b r3, (r3, 0x2) + 5d8e: 4379 lsli r3, r3, 25 + 5d90: 4b7d lsri r3, r3, 29 + 5d92: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 5d94: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 5d96: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d98: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 5d9a: 0c1c bf 0x5dd2 // 5dd2 + 5d9c: 3a44 cmpnei r2, 4 + 5d9e: 0c2a bf 0x5df2 // 5df2 + 5da0: 3a40 cmpnei r2, 0 + 5da2: 0be1 bt 0x5d64 // 5d64 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5da4: e3fffb5a bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5da8: 31ff movi r1, 255 + 5daa: 3001 movi r0, 1 + 5dac: e3fffb56 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5db0: 3100 movi r1, 0 + 5db2: 3002 movi r0, 2 + 5db4: e3fffb52 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5db8: 3100 movi r1, 0 + 5dba: 3003 movi r0, 3 + 5dbc: e3fffb4e bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5dc0: 3100 movi r1, 0 + 5dc2: 3004 movi r0, 4 + 5dc4: e3fffb4a bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 5dc8: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 5dca: 3005 movi r0, 5 + 5dcc: e3fffb46 bsr 0x5458 // 5458 +} + 5dd0: 07c1 br 0x5d52 // 5d52 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5dd2: e3fffb43 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5dd6: 31ff movi r1, 255 + 5dd8: 3001 movi r0, 1 + 5dda: e3fffb3f bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5dde: 3100 movi r1, 0 + 5de0: 3002 movi r0, 2 + 5de2: e3fffb3b bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 5de6: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5de8: 3003 movi r0, 3 + 5dea: e3fffb37 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5dee: 3100 movi r1, 0 + 5df0: 0410 br 0x5e10 // 5e10 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5df2: e3fffb33 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5df6: 31ff movi r1, 255 + 5df8: 3001 movi r0, 1 + 5dfa: e3fffb2f bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5dfe: 3100 movi r1, 0 + 5e00: 3002 movi r0, 2 + 5e02: e3fffb2b bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5e06: 3100 movi r1, 0 + 5e08: 3003 movi r0, 3 + 5e0a: e3fffb27 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 5e0e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5e10: 3004 movi r0, 4 + 5e12: e3fffb23 bsr 0x5458 // 5458 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 5e16: 3100 movi r1, 0 + 5e18: 07d9 br 0x5dca // 5dca + 5e1a: 0000 bkpt + 5e1c: 20000134 .long 0x20000134 + 5e20: 200004d4 .long 0x200004d4 + +Disassembly of section .text.Controlled_Key_Backlight: + +00005e24 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 5e24: 14d0 push r15 + switch(state){ + 5e26: 3840 cmpnei r0, 0 + 5e28: 0c04 bf 0x5e30 // 5e30 + 5e2a: 3841 cmpnei r0, 1 + 5e2c: 0c0b bf 0x5e42 // 5e42 + + } + + break; + } +} + 5e2e: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 5e30: 1068 lrw r3, 0x20000478 // 5e50 + 5e32: 836a ld.b r3, (r3, 0xa) + 5e34: 3b42 cmpnei r3, 2 + 5e36: 0ffc bf 0x5e2e // 5e2e + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 5e38: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 5e3a: 3005 movi r0, 5 + 5e3c: e3fff834 bsr 0x4ea4 // 4ea4 +} + 5e40: 07f7 br 0x5e2e // 5e2e + if(g_switch.light_state[T_Backlight] != Control_ON) + 5e42: 1064 lrw r3, 0x20000478 // 5e50 + 5e44: 836a ld.b r3, (r3, 0xa) + 5e46: 3b41 cmpnei r3, 1 + 5e48: 0ff3 bf 0x5e2e // 5e2e + Contol_Switch_Light_2(T_Backlight,Control_ON); + 5e4a: 3101 movi r1, 1 + 5e4c: 07f7 br 0x5e3a // 5e3a + 5e4e: 0000 bkpt + 5e50: 20000478 .long 0x20000478 + +Disassembly of section .text.Set_Device_ADDR: + +00005e54 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 5e54: 14d4 push r4-r7, r15 + 5e56: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e58: 11c4 lrw r6, 0x8656 // 5ee8 + 5e5a: 6018 addu r0, r6 + 5e5c: 1184 lrw r4, 0x20000494 // 5eec +void Set_Device_ADDR(U8_T page, U8_T addr){ + 5e5e: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e60: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 5e62: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e64: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 5e66: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e68: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 5e6a: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e6c: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 5e6e: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e70: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 5e72: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 5e74: 843b ld.b r1, (r4, 0x1b) + 5e76: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e78: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 5e7a: 845d ld.b r2, (r4, 0x1d) + 5e7c: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 5e7e: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 5e80: 6c1f mov r0, r7 + 5e82: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 5e84: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 5e86: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 5e88: e3ffed64 bsr 0x3950 // 3950 <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5e8c: 7400 zextb r0, r0 + 5e8e: 6018 addu r0, r6 + 5e90: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 5e92: 9861 ld.w r3, (r14, 0x4) + 5e94: 841f ld.b r0, (r4, 0x1f) + 5e96: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5e98: 6c07 mov r0, r1 + 5e9a: 6814 and r0, r5 + 5e9c: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5e9e: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5ea0: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5ea2: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 5ea4: 6c1f mov r0, r7 + 5ea6: 310a movi r1, 10 + 5ea8: e3ffed54 bsr 0x3950 // 3950 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 5eac: 7400 zextb r0, r0 + 5eae: 310a movi r1, 10 + 5eb0: e3ffed74 bsr 0x3998 // 3998 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5eb4: 7400 zextb r0, r0 + 5eb6: 6018 addu r0, r6 + 5eb8: 8060 ld.b r3, (r0, 0x0) + 5eba: 6c4f mov r1, r3 + 5ebc: 6854 and r1, r5 + 5ebe: 9842 ld.w r2, (r14, 0x8) + 5ec0: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5ec2: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5ec4: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5ec6: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 5ec8: 310a movi r1, 10 + 5eca: 6c1f mov r0, r7 + 5ecc: e3ffed66 bsr 0x3998 // 3998 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5ed0: 7400 zextb r0, r0 + 5ed2: 6180 addu r6, r0 + 5ed4: 8660 ld.b r3, (r6, 0x0) + 5ed6: 694c and r5, r3 + 5ed8: 9840 ld.w r2, (r14, 0x0) + 5eda: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5edc: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5ede: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5ee0: a47a st.b r3, (r4, 0x1a) +} + 5ee2: 1403 addi r14, r14, 12 + 5ee4: 1494 pop r4-r7, r15 + 5ee6: 0000 bkpt + 5ee8: 00008656 .long 0x00008656 + 5eec: 20000494 .long 0x20000494 + +Disassembly of section .text.Set_Temp_Difference: + +00005ef0 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 5ef0: 1057 lrw r2, 0x20000494 // 5f4c + HT1621.show_cache[10] &= 0x01; + 5ef2: 3101 movi r1, 1 + 5ef4: 8276 ld.b r3, (r2, 0x16) + 5ef6: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 5ef8: 3ba1 bseti r3, 1 + 5efa: 3ba2 bseti r3, 2 + 5efc: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 5efe: 330d movi r3, 13 + 5f00: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 5f02: 827f ld.b r3, (r2, 0x1f) + 5f04: 68c4 and r3, r1 + 5f06: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 5f08: 3300 movi r3, 0 + 5f0a: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 5f0c: 827d ld.b r3, (r2, 0x1d) + 5f0e: 68c4 and r3, r1 + 5f10: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 5f12: 3300 movi r3, 0 + 5f14: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 5f16: 827b ld.b r3, (r2, 0x1b) + 5f18: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 5f1a: 3300 movi r3, 0 + 5f1c: 2b08 subi r3, 9 + 5f1e: 60c0 addu r3, r0 + 5f20: 74cc zextb r3, r3 + 5f22: 3b09 cmphsi r3, 10 + 5f24: 0c08 bf 0x5f34 // 5f34 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 5f26: 3808 cmphsi r0, 9 + 5f28: 0810 bt 0x5f48 // 5f48 + tmp_quantile = 9 - diff; + 5f2a: 3309 movi r3, 9 + 5f2c: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 5f2e: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 5f30: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 5f32: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f34: 1007 lrw r0, 0x8656 // 5f50 + 5f36: 60c0 addu r3, r0 + 5f38: 8360 ld.b r3, (r3, 0x0) + 5f3a: 4b04 lsri r0, r3, 4 + 5f3c: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f3e: 300f movi r0, 15 + 5f40: 68c0 and r3, r0 + 5f42: 6c4c or r1, r3 + 5f44: a23b st.b r1, (r2, 0x1b) +} + 5f46: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 5f48: 3300 movi r3, 0 + 5f4a: 07f5 br 0x5f34 // 5f34 + 5f4c: 20000494 .long 0x20000494 + 5f50: 00008656 .long 0x00008656 + +Disassembly of section .text.HT1621_Refresh_Task: + +00005f54 : + + +void HT1621_Refresh_Task(void){ + 5f54: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 5f56: 109e lrw r4, 0x200000b8 // 5fcc + 5f58: 10be lrw r5, 0x20000494 // 5fd0 + 5f5a: 9460 ld.w r3, (r4, 0x0) + 5f5c: 954c ld.w r2, (r5, 0x30) + 5f5e: 60ca subu r3, r2 + 5f60: 105d lrw r2, 0x1f3 // 5fd4 + 5f62: 64c8 cmphs r2, r3 + 5f64: 0806 bt 0x5f70 // 5f70 + HT1621.Refresh_timing = HT1621_Refresh_time; + 5f66: 33fa movi r3, 250 + 5f68: 4361 lsli r3, r3, 1 + 5f6a: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 5f6c: e3fffbf8 bsr 0x575c // 575c +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 5f70: 107a lrw r3, 0x200004b4 // 5fd8 + 5f72: 8344 ld.b r2, (r3, 0x4) + 5f74: 3a41 cmpnei r2, 1 + 5f76: 0824 bt 0x5fbe // 5fbe + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 5f78: 952e ld.w r1, (r5, 0x38) + 5f7a: 9440 ld.w r2, (r4, 0x0) + 5f7c: 6086 subu r2, r1 + 5f7e: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 5f80: 6484 cmphs r1, r2 + 5f82: 0808 bt 0x5f92 // 5f92 + HT1621.buz_tick = SysTick_1ms; + 5f84: 9440 ld.w r2, (r4, 0x0) + 5f86: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 5f88: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 5f8a: 3200 movi r2, 0 + 5f8c: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 5f8e: e3fffb35 bsr 0x55f8 // 55f8 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 5f92: 1053 lrw r2, 0x200004d4 // 5fdc + 5f94: 8202 ld.b r0, (r2, 0x2) + 5f96: 1033 lrw r1, 0x20000134 // 5fe0 + 5f98: 4079 lsli r3, r0, 25 + 5f9a: 81ba ld.b r5, (r1, 0x1a) + 5f9c: 4b7d lsri r3, r3, 29 + 5f9e: 64d6 cmpne r5, r3 + 5fa0: 0c0e bf 0x5fbc // 5fbc + TempCtrl.BackLightTick = SysTick_1ms; + 5fa2: 9460 ld.w r3, (r4, 0x0) + 5fa4: 4b88 lsri r4, r3, 8 + 5fa6: a270 st.b r3, (r2, 0x10) + 5fa8: a291 st.b r4, (r2, 0x11) + 5faa: 4b90 lsri r4, r3, 16 + 5fac: 4b78 lsri r3, r3, 24 + 5fae: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5fb0: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 5fb2: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5fb4: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 5fb6: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5fb8: e3fffec8 bsr 0x5d48 // 5d48 + } + +} + 5fbc: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 5fbe: 3a42 cmpnei r2, 2 + 5fc0: 0be9 bt 0x5f92 // 5f92 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 5fc2: 952e ld.w r1, (r5, 0x38) + 5fc4: 9440 ld.w r2, (r4, 0x0) + 5fc6: 6086 subu r2, r1 + 5fc8: 1023 lrw r1, 0x1f3 // 5fd4 + 5fca: 07db br 0x5f80 // 5f80 + 5fcc: 200000b8 .long 0x200000b8 + 5fd0: 20000494 .long 0x20000494 + 5fd4: 000001f3 .long 0x000001f3 + 5fd8: 200004b4 .long 0x200004b4 + 5fdc: 200004d4 .long 0x200004d4 + 5fe0: 20000134 .long 0x20000134 + +Disassembly of section .text.TemCtrl_Init: + +00005fe4 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 5fe4: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 5fe6: 1289 lrw r4, 0x200004d4 // 6108 + 5fe8: 3225 movi r2, 37 + 5fea: 3100 movi r1, 0 + 5fec: 6c13 mov r0, r4 + 5fee: e3ffdced bsr 0x19c8 // 19c8 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 5ff2: 1267 lrw r3, 0x200000ac // 610c + 5ff4: 9360 ld.w r3, (r3, 0x0) + 5ff6: 3b80 bclri r3, 0 + 5ff8: 3b40 cmpnei r3, 0 + 5ffa: 0c80 bf 0x60fa // 60fa + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 5ffc: 1225 lrw r1, 0x89e2 // 6110 + 5ffe: 3000 movi r0, 0 + 6000: e3ffee3c bsr 0x3c78 // 3c78 + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 6004: 1264 lrw r3, 0x200000a8 // 6114 + 6006: 30ff movi r0, 255 + 6008: 9320 ld.w r1, (r3, 0x0) + 600a: 6840 and r1, r0 + 600c: 3940 cmpnei r1, 0 + 600e: 0c05 bf 0x6018 // 6018 + 6010: 9340 ld.w r2, (r3, 0x0) + 6012: 6880 and r2, r0 + 6014: 3a41 cmpnei r2, 1 + 6016: 0865 bt 0x60e0 // 60e0 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 6018: 9340 ld.w r2, (r3, 0x0) + 601a: 4227 lsli r1, r2, 7 + 601c: 307f movi r0, 127 + 601e: 8442 ld.b r2, (r4, 0x2) + 6020: 6880 and r2, r0 + 6022: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6024: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 6026: 9340 ld.w r2, (r3, 0x0) + 6028: 4a48 lsri r2, r2, 8 + 602a: 7488 zextb r2, r2 + 602c: 3a03 cmphsi r2, 4 + 602e: 085d bt 0x60e8 // 60e8 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 6030: 9340 ld.w r2, (r3, 0x0) + 6032: 3107 movi r1, 7 + 6034: 4a48 lsri r2, r2, 8 + 6036: 6884 and r2, r1 + 6038: 3070 movi r0, 112 + 603a: 8422 ld.b r1, (r4, 0x2) + 603c: 4244 lsli r2, r2, 4 + 603e: 6841 andn r1, r0 + 6040: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6042: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 6044: 9340 ld.w r2, (r3, 0x0) + 6046: 4a50 lsri r2, r2, 16 + 6048: 7488 zextb r2, r2 + 604a: 3a03 cmphsi r2, 4 + 604c: 0852 bt 0x60f0 // 60f0 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 604e: 9340 ld.w r2, (r3, 0x0) + 6050: 3107 movi r1, 7 + 6052: 4a50 lsri r2, r2, 16 + 6054: 6884 and r2, r1 + 6056: 300e movi r0, 14 + 6058: 8422 ld.b r1, (r4, 0x2) + 605a: 4241 lsli r2, r2, 1 + 605c: 6841 andn r1, r0 + 605e: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 6060: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 6062: 9340 ld.w r2, (r3, 0x0) + 6064: 4a58 lsri r2, r2, 24 + 6066: 3a0f cmphsi r2, 16 + 6068: 0c05 bf 0x6072 // 6072 + 606a: 9340 ld.w r2, (r3, 0x0) + 606c: 4a58 lsri r2, r2, 24 + 606e: 3a1f cmphsi r2, 32 + 6070: 0c05 bf 0x607a // 607a + 6072: 9340 ld.w r2, (r3, 0x0) + 6074: 4a58 lsri r2, r2, 24 + 6076: 3a40 cmpnei r2, 0 + 6078: 0846 bt 0x6104 // 6104 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 607a: 9360 ld.w r3, (r3, 0x0) + 607c: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 607e: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6080: e3fff514 bsr 0x4aa8 // 4aa8 + 6084: 1165 lrw r3, 0x20000438 // 6118 + 6086: 8362 ld.b r3, (r3, 0x2) + 6088: 320a movi r2, 10 + 608a: 7cc8 mult r3, r2 + 608c: 2b59 subi r3, 90 + 608e: 600c addu r0, r3 + 6090: 7401 zexth r0, r0 + 6092: 4868 lsri r3, r0, 8 + 6094: a469 st.b r3, (r4, 0x9) + 6096: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6098: 310a movi r1, 10 + 609a: e3ffec5b bsr 0x3950 // 3950 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 609e: 3301 movi r3, 1 + 60a0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 60a2: 3300 movi r3, 0 + 60a4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 60a6: 3200 movi r2, 0 + 60a8: 107d lrw r3, 0x2000005c // 611c + 60aa: 9360 ld.w r3, (r3, 0x0) + 60ac: 23ff addi r3, 256 + 60ae: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 60b0: 8442 ld.b r2, (r4, 0x2) + 60b2: 4239 lsli r1, r2, 25 + 60b4: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 60b6: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 60b8: 4128 lsli r1, r1, 8 + 60ba: 9300 ld.w r0, (r3, 0x0) + 60bc: 6c40 or r1, r0 + 60be: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 60c0: 423c lsli r1, r2, 28 + 60c2: 493d lsri r1, r1, 29 + 60c4: 9300 ld.w r0, (r3, 0x0) + 60c6: 4130 lsli r1, r1, 16 + 60c8: 6c40 or r1, r0 + 60ca: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 60cc: 8421 ld.b r1, (r4, 0x1) + 60ce: 9300 ld.w r0, (r3, 0x0) + 60d0: 4138 lsli r1, r1, 24 + 60d2: 6c40 or r1, r0 + 60d4: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 60d6: 9320 ld.w r1, (r3, 0x0) + 60d8: 4a47 lsri r2, r2, 7 + 60da: 6c84 or r2, r1 + 60dc: b340 st.w r2, (r3, 0x0) +} + 60de: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 60e0: 8442 ld.b r2, (r4, 0x2) + 60e2: 317f movi r1, 127 + 60e4: 6884 and r2, r1 + 60e6: 079f br 0x6024 // 6024 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 60e8: 8442 ld.b r2, (r4, 0x2) + 60ea: 3170 movi r1, 112 + 60ec: 6885 andn r2, r1 + 60ee: 07aa br 0x6042 // 6042 + TempCtrl.TemState_Now.fan = FAN_MID; + 60f0: 8442 ld.b r2, (r4, 0x2) + 60f2: 310e movi r1, 14 + 60f4: 6885 andn r2, r1 + 60f6: 3aa2 bseti r2, 2 + 60f8: 07b4 br 0x6060 // 6060 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 60fa: 8462 ld.b r3, (r4, 0x2) + 60fc: 320e movi r2, 14 + 60fe: 68c9 andn r3, r2 + 6100: 3ba2 bseti r3, 2 + 6102: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 6104: 3318 movi r3, 24 + 6106: 07bc br 0x607e // 607e + 6108: 200004d4 .long 0x200004d4 + 610c: 200000ac .long 0x200000ac + 6110: 000089e2 .long 0x000089e2 + 6114: 200000a8 .long 0x200000a8 + 6118: 20000438 .long 0x20000438 + 611c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00006120 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 6120: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6122: 1031 lrw r1, 0x200004d4 // 6164 + 6124: 8162 ld.b r3, (r1, 0x2) + 6126: 748e sextb r2, r3 + 6128: 3adf btsti r2, 31 + 612a: 0c14 bf 0x6152 // 6152 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 612c: 4359 lsli r2, r3, 25 + 612e: 4a5d lsri r2, r2, 29 + 6130: 3a42 cmpnei r2, 2 + 6132: 0c11 bf 0x6154 // 6154 + 6134: 3a44 cmpnei r2, 4 + 6136: 0c13 bf 0x615c // 615c + 6138: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 613a: 3270 movi r2, 112 + 613c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 613e: 0802 bt 0x6142 // 6142 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6140: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6142: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 6144: 8142 ld.b r2, (r1, 0x2) + 6146: 4259 lsli r2, r2, 25 + 6148: 4a5d lsri r2, r2, 29 + 614a: 1028 lrw r1, 0x89fb // 6168 + 614c: 3000 movi r0, 0 + 614e: e3ffed95 bsr 0x3c78 // 3c78 +} + 6152: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 6154: 3270 movi r2, 112 + 6156: 68c9 andn r3, r2 + 6158: 3ba6 bseti r3, 6 + 615a: 07f4 br 0x6142 // 6142 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 615c: 3270 movi r2, 112 + 615e: 68c9 andn r3, r2 + 6160: 07f1 br 0x6142 // 6142 + 6162: 0000 bkpt + 6164: 200004d4 .long 0x200004d4 + 6168: 000089fb .long 0x000089fb + +Disassembly of section .text.TemCtrl_Fan_Set: + +0000616c : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 616c: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 616e: 1073 lrw r3, 0x200004d4 // 61b8 + 6170: 8342 ld.b r2, (r3, 0x2) + 6172: 744a sextb r1, r2 + 6174: 39df btsti r1, 31 + 6176: 0c16 bf 0x61a2 // 61a2 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6178: 421c lsli r0, r2, 28 + 617a: 481d lsri r0, r0, 29 + 617c: 3804 cmphsi r0, 5 + 617e: 081a bt 0x61b2 // 61b2 + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_STOP; + break; + case FAN_STOP: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6180: 8342 ld.b r2, (r3, 0x2) + 6182: 310e movi r1, 14 + 6184: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 6186: e3ffd5bb bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 618a: 0312 .short 0x0312 + 618c: 0004100d .long 0x0004100d + TempCtrl.TemState_Now.fan = FAN_MID; + 6190: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6192: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 6194: 8342 ld.b r2, (r3, 0x2) + 6196: 425c lsli r2, r2, 28 + 6198: 4a5d lsri r2, r2, 29 + 619a: 1029 lrw r1, 0x8a04 // 61bc + 619c: 3000 movi r0, 0 + 619e: e3ffed6d bsr 0x3c78 // 3c78 +} + 61a2: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 61a4: 3aa1 bseti r2, 1 + 61a6: 3aa2 bseti r2, 2 + 61a8: 07f5 br 0x6192 // 6192 + TempCtrl.TemState_Now.fan = FAN_STOP; + 61aa: 3aa3 bseti r2, 3 + 61ac: 07f3 br 0x6192 // 6192 + TempCtrl.TemState_Now.fan = FAN_LOW; + 61ae: 3aa1 bseti r2, 1 + 61b0: 07f1 br 0x6192 // 6192 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 61b2: 310e movi r1, 14 + 61b4: 6885 andn r2, r1 + 61b6: 07ee br 0x6192 // 6192 + 61b8: 200004d4 .long 0x200004d4 + 61bc: 00008a04 .long 0x00008a04 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +000061c0 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 61c0: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 61c2: 106a lrw r3, 0x200004d4 // 61e8 + 61c4: 8342 ld.b r2, (r3, 0x2) + 61c6: 748a sextb r2, r2 + 61c8: 3adf btsti r2, 31 + 61ca: 0c0b bf 0x61e0 // 61e0 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 61cc: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 61ce: 3a10 cmphsi r2, 17 + 61d0: 0c09 bf 0x61e2 // 61e2 + { + TemSet--; //超过最低温度,就减 + 61d2: 2a00 subi r2, 1 + 61d4: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 61d6: 1026 lrw r1, 0x8a0b // 61ec + 61d8: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 61da: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 61dc: e3ffed4e bsr 0x3c78 // 3c78 +} + 61e0: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 61e2: 3210 movi r2, 16 + 61e4: 07f9 br 0x61d6 // 61d6 + 61e6: 0000 bkpt + 61e8: 200004d4 .long 0x200004d4 + 61ec: 00008a0b .long 0x00008a0b + +Disassembly of section .text.TemCtrl_Temperature_Add: + +000061f0 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 61f0: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 61f2: 106a lrw r3, 0x200004d4 // 6218 + 61f4: 8342 ld.b r2, (r3, 0x2) + 61f6: 748a sextb r2, r2 + 61f8: 3adf btsti r2, 31 + 61fa: 0c0b bf 0x6210 // 6210 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 61fc: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 61fe: 3a1f cmphsi r2, 32 + 6200: 0809 bt 0x6212 // 6212 + { + TemSet++; + 6202: 2200 addi r2, 1 + 6204: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6206: 1026 lrw r1, 0x8a14 // 621c + 6208: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 620a: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 620c: e3ffed36 bsr 0x3c78 // 3c78 +} + 6210: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 6212: 3220 movi r2, 32 + 6214: 07f9 br 0x6206 // 6206 + 6216: 0000 bkpt + 6218: 200004d4 .long 0x200004d4 + 621c: 00008a14 .long 0x00008a14 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00006220 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 6220: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 6222: 104b lrw r2, 0x200004d4 // 624c + 6224: 8262 ld.b r3, (r2, 0x2) + 6226: 4b27 lsri r1, r3, 7 + 6228: 3940 cmpnei r1, 0 + 622a: 0c0d bf 0x6244 // 6244 + 622c: 3941 cmpnei r1, 1 + 622e: 080b bt 0x6244 // 6244 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6230: 317f movi r1, 127 + 6232: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6234: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 6236: 8242 ld.b r2, (r2, 0x2) + 6238: 4a47 lsri r2, r2, 7 + 623a: 1026 lrw r1, 0x8a14 // 6250 + 623c: 3000 movi r0, 0 + 623e: e3ffed1d bsr 0x3c78 // 3c78 +} + 6242: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6244: 3100 movi r1, 0 + 6246: 297f subi r1, 128 + 6248: 6cc4 or r3, r1 + 624a: 07f5 br 0x6234 // 6234 + 624c: 200004d4 .long 0x200004d4 + 6250: 00008a14 .long 0x00008a14 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00006254 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 6254: 14d1 push r4, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 6256: 1154 lrw r2, 0x200004d4 // 6324 + 6258: 8200 ld.b r0, (r2, 0x0) + 625a: 3840 cmpnei r0, 0 + 625c: 0802 bt 0x6260 // 6260 + 625e: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 6260: 8221 ld.b r1, (r2, 0x1) + 6262: 3940 cmpnei r1, 0 + 6264: 0802 bt 0x6268 // 6268 + 6266: 3120 movi r1, 32 + switch(TempCtrl.TemState_Now.on_off) // + 6268: 8262 ld.b r3, (r2, 0x2) + 626a: 4b87 lsri r4, r3, 7 + 626c: 3c40 cmpnei r4, 0 + 626e: 0c32 bf 0x62d2 // 62d2 + 6270: 3c41 cmpnei r4, 1 + 6272: 082c bt 0x62ca // 62ca + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 6274: 4399 lsli r4, r3, 25 + 6276: 4c9d lsri r4, r4, 29 + 6278: 3c42 cmpnei r4, 2 + 627a: 0c29 bf 0x62cc // 62cc + 627c: 3c44 cmpnei r4, 4 + 627e: 0c3e bf 0x62fa // 62fa + 6280: 3c40 cmpnei r4, 0 + 6282: 0824 bt 0x62ca // 62ca + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6284: 5983 subi r4, r1, 1 + 6286: 6501 cmplt r0, r4 + 6288: 0c05 bf 0x6292 // 6292 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 628a: 3b80 bclri r3, 0 + 628c: a262 st.b r3, (r2, 0x2) + { + RLY2_COLD_OPEN; + RLY1_HOT_OPEN; +// Dbg_Println(DBG_BIT_SYS_STATUS,"cold on pipe 2"); + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + RLY2_COLD_CLOSE; + 628e: 3101 movi r1, 1 + 6290: 040b br 0x62a6 // 62a6 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6292: 2100 addi r1, 1 + 6294: 6405 cmplt r1, r0 + 6296: 0c1a bf 0x62ca // 62ca + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6298: 3ba0 bseti r3, 0 + 629a: a262 st.b r3, (r2, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 629c: 1163 lrw r3, 0x20000438 // 6328 + 629e: 8361 ld.b r3, (r3, 0x1) + 62a0: 3b41 cmpnei r3, 1 + 62a2: 080a bt 0x62b6 // 62b6 + RLY2_COLD_OPEN; + 62a4: 3102 movi r1, 2 + 62a6: 3013 movi r0, 19 + 62a8: e3fff922 bsr 0x54ec // 54ec + RLY1_HOT_CLOSE; + 62ac: 3101 movi r1, 1 + 62ae: 3012 movi r0, 18 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 62b0: e3fff91e bsr 0x54ec // 54ec + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 62b4: 040b br 0x62ca // 62ca + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 62b6: 3b40 cmpnei r3, 0 + 62b8: 0807 bt 0x62c6 // 62c6 + RLY2_COLD_OPEN; + 62ba: 3102 movi r1, 2 + 62bc: 3013 movi r0, 19 + 62be: e3fff917 bsr 0x54ec // 54ec + RLY1_HOT_OPEN; + 62c2: 3102 movi r1, 2 + 62c4: 07f5 br 0x62ae // 62ae + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 62c6: 3b42 cmpnei r3, 2 + 62c8: 0fe3 bf 0x628e // 628e +} + 62ca: 1491 pop r4, r15 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 62cc: 5982 addi r4, r1, 1 + 62ce: 6411 cmplt r4, r0 + 62d0: 0c05 bf 0x62da // 62da + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 62d2: 3b80 bclri r3, 0 + 62d4: a262 st.b r3, (r2, 0x2) + RLY1_HOT_CLOSE; + 62d6: 3101 movi r1, 1 + 62d8: 040b br 0x62ee // 62ee + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 62da: 2900 subi r1, 1 + 62dc: 6441 cmplt r0, r1 + 62de: 0ff6 bf 0x62ca // 62ca + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 62e0: 3ba0 bseti r3, 0 + 62e2: a262 st.b r3, (r2, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 62e4: 1071 lrw r3, 0x20000438 // 6328 + 62e6: 8361 ld.b r3, (r3, 0x1) + 62e8: 3b41 cmpnei r3, 1 + 62ea: 0be6 bt 0x62b6 // 62b6 + RLY1_HOT_OPEN; + 62ec: 3102 movi r1, 2 + RLY1_HOT_CLOSE; + 62ee: 3012 movi r0, 18 + 62f0: e3fff8fe bsr 0x54ec // 54ec + RLY2_COLD_CLOSE; + 62f4: 3101 movi r1, 1 + 62f6: 3013 movi r0, 19 + 62f8: 07dc br 0x62b0 // 62b0 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 62fa: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 62fc: 3101 movi r1, 1 + 62fe: 3012 movi r0, 18 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6300: a262 st.b r3, (r2, 0x2) + RLY1_HOT_CLOSE; + 6302: e3fff8f5 bsr 0x54ec // 54ec + RLY2_COLD_CLOSE; + 6306: 3101 movi r1, 1 + 6308: 3013 movi r0, 19 + 630a: e3fff8f1 bsr 0x54ec // 54ec + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 630e: 1067 lrw r3, 0x20000438 // 6328 + 6310: 8361 ld.b r3, (r3, 0x1) + 6312: 3b42 cmpnei r3, 2 + 6314: 0bdb bt 0x62ca // 62ca + Relay_Stop(); + 6316: e00006a9 bsr 0x7068 // 7068 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 631a: 1025 lrw r1, 0x8a22 // 632c + 631c: 3000 movi r0, 0 + 631e: e3ffecad bsr 0x3c78 // 3c78 + 6322: 07d4 br 0x62ca // 62ca + 6324: 200004d4 .long 0x200004d4 + 6328: 20000438 .long 0x20000438 + 632c: 00008a22 .long 0x00008a22 + +Disassembly of section .text.TemCtrl_Pro: + +00006330 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 6330: 14d2 push r4-r5, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 6332: 1215 lrw r0, 0x200000b8 // 6484 + 6334: 1235 lrw r1, 0x200001c4 // 6488 + 6336: 9040 ld.w r2, (r0, 0x0) + 6338: 9160 ld.w r3, (r1, 0x0) + 633a: 608e subu r2, r3 + 633c: 33fa movi r3, 250 + 633e: 4362 lsli r3, r3, 2 + 6340: 648c cmphs r3, r2 + 6342: 0834 bt 0x63aa // 63aa + { + tick = SysTick_1ms; + 6344: 9060 ld.w r3, (r0, 0x0) + 6346: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6348: e3fff3b0 bsr 0x4aa8 // 4aa8 + 634c: 12b0 lrw r5, 0x20000438 // 648c + 634e: 8562 ld.b r3, (r5, 0x2) + 6350: 320a movi r2, 10 + 6352: 7cc8 mult r3, r2 + 6354: 2b59 subi r3, 90 + 6356: 600c addu r0, r3 + 6358: 7401 zexth r0, r0 + 635a: 128e lrw r4, 0x200004d4 // 6490 + 635c: 7480 zextb r2, r0 + 635e: 4868 lsri r3, r0, 8 + 6360: a448 st.b r2, (r4, 0x8) + 6362: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 6364: a44c st.b r2, (r4, 0xc) + 6366: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6368: 310a movi r1, 10 + 636a: e3ffeaf3 bsr 0x3950 // 3950 <__udivsi3> + 636e: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 6370: e3ffff72 bsr 0x6254 // 6254 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 6374: 8442 ld.b r2, (r4, 0x2) + 6376: 74c8 zextb r3, r2 + 6378: 3171 movi r1, 113 + 637a: 6c0f mov r0, r3 + 637c: 6805 andn r0, r1 + 637e: 3180 movi r1, 128 + 6380: 6442 cmpne r0, r1 + 6382: 083f bt 0x6400 // 6400 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6384: 3270 movi r2, 112 + 6386: 68c8 and r3, r2 + 6388: 3b40 cmpnei r3, 0 + 638a: 0829 bt 0x63dc // 63dc + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 638c: 8461 ld.b r3, (r4, 0x1) + 638e: 8440 ld.b r2, (r4, 0x0) + 6390: 5b27 subi r1, r3, 2 + 6392: 6449 cmplt r2, r1 + 6394: 0c0c bf 0x63ac // 63ac + { + Relay_Stop(); //风速停 + 6396: e0000669 bsr 0x7068 // 7068 + HT1621.wind_velocity = 3; + 639a: 117f lrw r3, 0x20000494 // 6494 + 639c: 3203 movi r2, 3 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 639e: 8402 ld.b r0, (r4, 0x2) + 63a0: 401c lsli r0, r0, 28 + 63a2: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 63a4: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 63a6: e3fffbf3 bsr 0x5b8c // 5b8c + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 63aa: 1492 pop r4-r5, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 63ac: 5b23 subi r1, r3, 1 + 63ae: 644a cmpne r2, r1 + 63b0: 0806 bt 0x63bc // 63bc + Relay_Low(); //低风速 + 63b2: e000064d bsr 0x704c // 704c + HT1621.wind_velocity = 0; + 63b6: 1178 lrw r3, 0x20000494 // 6494 + 63b8: 3200 movi r2, 0 + 63ba: 07f2 br 0x639e // 639e + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 63bc: 5b22 addi r1, r3, 1 + 63be: 644a cmpne r2, r1 + 63c0: 0806 bt 0x63cc // 63cc + Relay_Mid(); //中风速 + 63c2: e0000637 bsr 0x7030 // 7030 + HT1621.wind_velocity = 1; + 63c6: 1174 lrw r3, 0x20000494 // 6494 + 63c8: 3201 movi r2, 1 + 63ca: 07ea br 0x639e // 639e + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 63cc: 2301 addi r3, 2 + 63ce: 648d cmplt r3, r2 + 63d0: 0fed bf 0x63aa // 63aa + Relay_High(); //高风速 + 63d2: e0000621 bsr 0x7014 // 7014 + HT1621.wind_velocity = 2; + 63d6: 1170 lrw r3, 0x20000494 // 6494 + 63d8: 3202 movi r2, 2 + 63da: 07e2 br 0x639e // 639e + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 63dc: 3220 movi r2, 32 + 63de: 648e cmpne r3, r2 + 63e0: 0be5 bt 0x63aa // 63aa + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 63e2: 8461 ld.b r3, (r4, 0x1) + 63e4: 8440 ld.b r2, (r4, 0x0) + 63e6: 5b27 subi r1, r3, 2 + 63e8: 6449 cmplt r2, r1 + 63ea: 0bf4 bt 0x63d2 // 63d2 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 63ec: 5b23 subi r1, r3, 1 + 63ee: 644a cmpne r2, r1 + 63f0: 0fe9 bf 0x63c2 // 63c2 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 63f2: 5b22 addi r1, r3, 1 + 63f4: 644a cmpne r2, r1 + 63f6: 0fde bf 0x63b2 // 63b2 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 63f8: 2301 addi r3, 2 + 63fa: 648d cmplt r3, r2 + 63fc: 0fd7 bf 0x63aa // 63aa + 63fe: 07cc br 0x6396 // 6396 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 6400: 8521 ld.b r1, (r5, 0x1) + 6402: 3942 cmpnei r1, 2 + 6404: 744e sextb r1, r3 + 6406: 083a bt 0x647a // 647a + 6408: 39df btsti r1, 31 + 640a: 0c38 bf 0x647a // 647a + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 640c: 310e movi r1, 14 + 640e: 684c and r1, r3 + 6410: 3940 cmpnei r1, 0 + 6412: 0fcc bf 0x63aa // 63aa + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6414: 3170 movi r1, 112 + 6416: 68c4 and r3, r1 + 6418: 3b40 cmpnei r3, 0 + 641a: 0819 bt 0x644c // 644c + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 641c: 8461 ld.b r3, (r4, 0x1) + 641e: 8420 ld.b r1, (r4, 0x0) + 6420: 5b07 subi r0, r3, 2 + 6422: 6405 cmplt r1, r0 + 6424: 0bb9 bt 0x6396 // 6396 + switch(TempCtrl.TemState_Now.fan) + 6426: 425c lsli r2, r2, 28 + 6428: 4a5d lsri r2, r2, 29 + 642a: 3a42 cmpnei r2, 2 + 642c: 0c09 bf 0x643e // 643e + 642e: 3a43 cmpnei r2, 3 + 6430: 0c0b bf 0x6446 // 6446 + 6432: 3a41 cmpnei r2, 1 + 6434: 0bbb bt 0x63aa // 63aa + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6436: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6438: 64c6 cmpne r1, r3 + 643a: 0bb8 bt 0x63aa // 63aa + 643c: 07bb br 0x63b2 // 63b2 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 643e: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6440: 64c6 cmpne r1, r3 + 6442: 0bb4 bt 0x63aa // 63aa + 6444: 07bf br 0x63c2 // 63c2 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6446: 2301 addi r3, 2 + 6448: 644d cmplt r3, r1 + 644a: 07c3 br 0x63d0 // 63d0 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 644c: 3120 movi r1, 32 + 644e: 644e cmpne r3, r1 + 6450: 0bad bt 0x63aa // 63aa + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6452: 8461 ld.b r3, (r4, 0x1) + 6454: 8420 ld.b r1, (r4, 0x0) + 6456: 5b06 addi r0, r3, 2 + 6458: 6441 cmplt r0, r1 + 645a: 0b9e bt 0x6396 // 6396 + switch(TempCtrl.TemState_Now.fan) + 645c: 425c lsli r2, r2, 28 + 645e: 4a5d lsri r2, r2, 29 + 6460: 3a42 cmpnei r2, 2 + 6462: 0c07 bf 0x6470 // 6470 + 6464: 3a43 cmpnei r2, 3 + 6466: 0c07 bf 0x6474 // 6474 + 6468: 3a41 cmpnei r2, 1 + 646a: 0ba0 bt 0x63aa // 63aa + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 646c: 2300 addi r3, 1 + 646e: 07e5 br 0x6438 // 6438 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6470: 2b00 subi r3, 1 + 6472: 07e7 br 0x6440 // 6440 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6474: 2b01 subi r3, 2 + 6476: 64c5 cmplt r1, r3 + 6478: 07ac br 0x63d0 // 63d0 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 647a: 39df btsti r1, 31 + 647c: 0b97 bt 0x63aa // 63aa + Relay_Stop(); //风速停 + 647e: e00005f5 bsr 0x7068 // 7068 + 6482: 0794 br 0x63aa // 63aa + 6484: 200000b8 .long 0x200000b8 + 6488: 200001c4 .long 0x200001c4 + 648c: 20000438 .long 0x20000438 + 6490: 200004d4 .long 0x200004d4 + 6494: 20000494 .long 0x20000494 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00006498 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 6498: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 649a: 1133 lrw r1, 0x8a2b // 6564 + 649c: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 649e: 1193 lrw r4, 0x200004f9 // 6568 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 64a0: e3ffebec bsr 0x3c78 // 3c78 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 64a4: 8460 ld.b r3, (r4, 0x0) + 64a6: 3b41 cmpnei r3, 1 + 64a8: 11b1 lrw r5, 0x200000b8 // 656c + 64aa: 083e bt 0x6526 // 6526 + { + Debug_Inf.Tick = SysTick_1ms; + 64ac: 9560 ld.w r3, (r5, 0x0) + 64ae: 320a movi r2, 10 + 64b0: 6090 addu r2, r4 + 64b2: 4b28 lsri r1, r3, 8 + 64b4: a260 st.b r3, (r2, 0x0) + 64b6: a221 st.b r1, (r2, 0x1) + 64b8: 4b30 lsri r1, r3, 16 + 64ba: 4b78 lsri r3, r3, 24 + 64bc: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page < PAGE8ID) + 64be: 8462 ld.b r3, (r4, 0x2) + 64c0: 3b07 cmphsi r3, 8 + Debug_Inf.Tick = SysTick_1ms; + 64c2: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page < PAGE8ID) + 64c4: 0803 bt 0x64ca // 64ca + { + Debug_Inf.Page++; + 64c6: 2300 addi r3, 1 + 64c8: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 64ca: e3fff901 bsr 0x56cc // 56cc + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 64ce: 8462 ld.b r3, (r4, 0x2) + 64d0: 3b42 cmpnei r3, 2 + 64d2: 0805 bt 0x64dc // 64dc + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 64d4: 8405 ld.b r0, (r4, 0x5) + 64d6: e3fffd0d bsr 0x5ef0 // 5ef0 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 64da: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 64dc: 3b41 cmpnei r3, 1 + 64de: 0806 bt 0x64ea // 64ea + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 64e0: 8424 ld.b r1, (r4, 0x4) + 64e2: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 64e4: e3fffcb8 bsr 0x5e54 // 5e54 + 64e8: 07f9 br 0x64da // 64da + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 64ea: 3b43 cmpnei r3, 3 + 64ec: 0804 bt 0x64f4 // 64f4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 64ee: 8426 ld.b r1, (r4, 0x6) + 64f0: 3003 movi r0, 3 + 64f2: 07f9 br 0x64e4 // 64e4 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 64f4: 3b44 cmpnei r3, 4 + 64f6: 0804 bt 0x64fe // 64fe + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 64f8: 8427 ld.b r1, (r4, 0x7) + 64fa: 3004 movi r0, 4 + 64fc: 07f4 br 0x64e4 // 64e4 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 64fe: 3b45 cmpnei r3, 5 + 6500: 0804 bt 0x6508 // 6508 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6502: 8423 ld.b r1, (r4, 0x3) + 6504: 3005 movi r0, 5 + 6506: 07ef br 0x64e4 // 64e4 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 6508: 3b46 cmpnei r3, 6 + 650a: 0804 bt 0x6512 // 6512 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 650c: 8428 ld.b r1, (r4, 0x8) + 650e: 3006 movi r0, 6 + 6510: 07ea br 0x64e4 // 64e4 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 6512: 3b47 cmpnei r3, 7 + 6514: 0804 bt 0x651c // 651c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6516: 8429 ld.b r1, (r4, 0x9) + 6518: 3007 movi r0, 7 + 651a: 07e5 br 0x64e4 // 64e4 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 651c: 3b48 cmpnei r3, 8 + 651e: 0bde bt 0x64da // 64da + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6520: 3101 movi r1, 1 + 6522: 3008 movi r0, 8 + 6524: 07e0 br 0x64e4 // 64e4 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 6526: 1073 lrw r3, 0x200004d4 // 6570 + 6528: 8358 ld.b r2, (r3, 0x18) + 652a: 3a41 cmpnei r2, 1 + 652c: 6d0f mov r4, r3 + 652e: 0811 bt 0x6550 // 6550 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6530: 8362 ld.b r3, (r3, 0x2) + 6532: 74ce sextb r3, r3 + 6534: 3bdf btsti r3, 31 + 6536: 0c0d bf 0x6550 // 6550 + TemCtrl_Model_Set(); //模式切换 + 6538: e3fffdf4 bsr 0x6120 // 6120 + if(g_eeprom.backlight_en == 0x01) + 653c: 106e lrw r3, 0x20000438 // 6574 + 653e: 8364 ld.b r3, (r3, 0x4) + 6540: 3b41 cmpnei r3, 1 + 6542: 0807 bt 0x6550 // 6550 + Controlled_LCD_Backlight(0x01); + 6544: 3001 movi r0, 1 + 6546: e3fffc01 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 654a: 3001 movi r0, 1 + 654c: e3fffc6c bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 6550: 9560 ld.w r3, (r5, 0x0) + 6552: 4b48 lsri r2, r3, 8 + 6554: a470 st.b r3, (r4, 0x10) + 6556: a451 st.b r2, (r4, 0x11) + 6558: 4b50 lsri r2, r3, 16 + 655a: 4b78 lsri r3, r3, 24 + 655c: a452 st.b r2, (r4, 0x12) + 655e: a473 st.b r3, (r4, 0x13) +} + 6560: 07bd br 0x64da // 64da + 6562: 0000 bkpt + 6564: 00008a2b .long 0x00008a2b + 6568: 200004f9 .long 0x200004f9 + 656c: 200000b8 .long 0x200000b8 + 6570: 200004d4 .long 0x200004d4 + 6574: 20000438 .long 0x20000438 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +00006578 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 6578: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 657a: 1133 lrw r1, 0x8a40 // 6644 + 657c: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 657e: 1193 lrw r4, 0x200004f9 // 6648 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6580: e3ffeb7c bsr 0x3c78 // 3c78 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6584: 8460 ld.b r3, (r4, 0x0) + 6586: 3b41 cmpnei r3, 1 + 6588: 11b1 lrw r5, 0x200000b8 // 664c + 658a: 083e bt 0x6606 // 6606 + { + Debug_Inf.Tick = SysTick_1ms; + 658c: 9560 ld.w r3, (r5, 0x0) + 658e: 320a movi r2, 10 + 6590: 6090 addu r2, r4 + 6592: 4b28 lsri r1, r3, 8 + 6594: a260 st.b r3, (r2, 0x0) + 6596: a221 st.b r1, (r2, 0x1) + 6598: 4b30 lsri r1, r3, 16 + 659a: 4b78 lsri r3, r3, 24 + 659c: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page > PAGE1ID) + 659e: 8462 ld.b r3, (r4, 0x2) + 65a0: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 65a2: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page > PAGE1ID) + 65a4: 0c03 bf 0x65aa // 65aa + { + Debug_Inf.Page--; + 65a6: 2b00 subi r3, 1 + 65a8: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 65aa: e3fff891 bsr 0x56cc // 56cc + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 65ae: 8462 ld.b r3, (r4, 0x2) + 65b0: 3b42 cmpnei r3, 2 + 65b2: 0805 bt 0x65bc // 65bc + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 65b4: 8405 ld.b r0, (r4, 0x5) + 65b6: e3fffc9d bsr 0x5ef0 // 5ef0 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 65ba: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 65bc: 3b41 cmpnei r3, 1 + 65be: 0806 bt 0x65ca // 65ca + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 65c0: 8424 ld.b r1, (r4, 0x4) + 65c2: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 65c4: e3fffc48 bsr 0x5e54 // 5e54 + 65c8: 07f9 br 0x65ba // 65ba + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 65ca: 3b43 cmpnei r3, 3 + 65cc: 0804 bt 0x65d4 // 65d4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 65ce: 8426 ld.b r1, (r4, 0x6) + 65d0: 3003 movi r0, 3 + 65d2: 07f9 br 0x65c4 // 65c4 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 65d4: 3b44 cmpnei r3, 4 + 65d6: 0804 bt 0x65de // 65de + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 65d8: 8427 ld.b r1, (r4, 0x7) + 65da: 3004 movi r0, 4 + 65dc: 07f4 br 0x65c4 // 65c4 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 65de: 3b45 cmpnei r3, 5 + 65e0: 0804 bt 0x65e8 // 65e8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 65e2: 8423 ld.b r1, (r4, 0x3) + 65e4: 3005 movi r0, 5 + 65e6: 07ef br 0x65c4 // 65c4 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 65e8: 3b46 cmpnei r3, 6 + 65ea: 0804 bt 0x65f2 // 65f2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 65ec: 8428 ld.b r1, (r4, 0x8) + 65ee: 3006 movi r0, 6 + 65f0: 07ea br 0x65c4 // 65c4 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 65f2: 3b47 cmpnei r3, 7 + 65f4: 0804 bt 0x65fc // 65fc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 65f6: 8429 ld.b r1, (r4, 0x9) + 65f8: 3007 movi r0, 7 + 65fa: 07e5 br 0x65c4 // 65c4 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 65fc: 3b48 cmpnei r3, 8 + 65fe: 0bde bt 0x65ba // 65ba + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6600: 3101 movi r1, 1 + 6602: 3008 movi r0, 8 + 6604: 07e0 br 0x65c4 // 65c4 + if(TempCtrl.CardState == CARDIN) + 6606: 1073 lrw r3, 0x200004d4 // 6650 + 6608: 8358 ld.b r2, (r3, 0x18) + 660a: 3a41 cmpnei r2, 1 + 660c: 6d0f mov r4, r3 + 660e: 0811 bt 0x6630 // 6630 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6610: 8362 ld.b r3, (r3, 0x2) + 6612: 74ce sextb r3, r3 + 6614: 3bdf btsti r3, 31 + 6616: 0c0d bf 0x6630 // 6630 + TemCtrl_Fan_Set(); //风速切换 + 6618: e3fffdaa bsr 0x616c // 616c + if(g_eeprom.backlight_en == 0x01) + 661c: 106e lrw r3, 0x20000438 // 6654 + 661e: 8364 ld.b r3, (r3, 0x4) + 6620: 3b41 cmpnei r3, 1 + 6622: 0807 bt 0x6630 // 6630 + Controlled_LCD_Backlight(0x01); + 6624: 3001 movi r0, 1 + 6626: e3fffb91 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 662a: 3001 movi r0, 1 + 662c: e3fffbfc bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 6630: 9560 ld.w r3, (r5, 0x0) + 6632: 4b48 lsri r2, r3, 8 + 6634: a470 st.b r3, (r4, 0x10) + 6636: a451 st.b r2, (r4, 0x11) + 6638: 4b50 lsri r2, r3, 16 + 663a: 4b78 lsri r3, r3, 24 + 663c: a452 st.b r2, (r4, 0x12) + 663e: a473 st.b r3, (r4, 0x13) +} + 6640: 07bd br 0x65ba // 65ba + 6642: 0000 bkpt + 6644: 00008a40 .long 0x00008a40 + 6648: 200004f9 .long 0x200004f9 + 664c: 200000b8 .long 0x200000b8 + 6650: 200004d4 .long 0x200004d4 + 6654: 20000438 .long 0x20000438 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00006658 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 6658: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 665a: 113f lrw r1, 0x8a53 // 6754 + 665c: 3000 movi r0, 0 + 665e: e3ffeb0d bsr 0x3c78 // 3c78 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6662: 117e lrw r3, 0x200004f9 // 6758 + 6664: 8340 ld.b r2, (r3, 0x0) + 6666: 3a41 cmpnei r2, 1 + 6668: 11bd lrw r5, 0x200000b8 // 675c + 666a: 0858 bt 0x671a // 671a + { + Debug_Inf.Tick = SysTick_1ms; + 666c: 9540 ld.w r2, (r5, 0x0) + 666e: 310a movi r1, 10 + 6670: 604c addu r1, r3 + 6672: 4a08 lsri r0, r2, 8 + 6674: a140 st.b r2, (r1, 0x0) + 6676: a101 st.b r0, (r1, 0x1) + 6678: 4a10 lsri r0, r2, 16 + 667a: 4a58 lsri r2, r2, 24 + 667c: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 667e: 8342 ld.b r2, (r3, 0x2) + 6680: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 6682: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 6684: 080b bt 0x669a // 669a + 6686: 8324 ld.b r1, (r3, 0x4) + 6688: 3901 cmphsi r1, 2 + 668a: 0812 bt 0x66ae // 66ae + { + Debug_Inf.PipeFlag ++; + 668c: 2100 addi r1, 1 + 668e: 7444 zextb r1, r1 + 6690: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6692: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6694: e3fffbe0 bsr 0x5e54 // 5e54 + 6698: 040b br 0x66ae // 66ae + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 669a: 3a42 cmpnei r2, 2 + 669c: 080a bt 0x66b0 // 66b0 + 669e: 8305 ld.b r0, (r3, 0x5) + 66a0: 3811 cmphsi r0, 18 + 66a2: 0806 bt 0x66ae // 66ae + Debug_Inf.TempDiff++; + 66a4: 2000 addi r0, 1 + 66a6: 7400 zextb r0, r0 + 66a8: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 66aa: e3fffc23 bsr 0x5ef0 // 5ef0 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 66ae: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 66b0: 3a43 cmpnei r2, 3 + 66b2: 0806 bt 0x66be // 66be + Debug_Inf.BackLight_En = 0x01; + 66b4: 3201 movi r2, 1 + 66b6: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 66b8: 3101 movi r1, 1 + 66ba: 3003 movi r0, 3 + 66bc: 07ec br 0x6694 // 6694 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 66be: 3a44 cmpnei r2, 4 + 66c0: 0809 bt 0x66d2 // 66d2 + 66c2: 8327 ld.b r1, (r3, 0x7) + 66c4: 3901 cmphsi r1, 2 + 66c6: 0bf4 bt 0x66ae // 66ae + Debug_Inf.KSens_Level++; + 66c8: 2100 addi r1, 1 + 66ca: 7444 zextb r1, r1 + 66cc: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 66ce: 3004 movi r0, 4 + 66d0: 07e2 br 0x6694 // 6694 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 66d2: 3a45 cmpnei r2, 5 + 66d4: 080a bt 0x66e8 // 66e8 + 66d6: 8323 ld.b r1, (r3, 0x3) + 66d8: 32ff movi r2, 255 + 66da: 6486 cmpne r1, r2 + 66dc: 0fe9 bf 0x66ae // 66ae + Debug_Inf.DevAddr++; //刷新地址 + 66de: 2100 addi r1, 1 + 66e0: 7444 zextb r1, r1 + 66e2: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 66e4: 3005 movi r0, 5 + 66e6: 07d7 br 0x6694 // 6694 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 66e8: 3a46 cmpnei r2, 6 + 66ea: 0809 bt 0x66fc // 66fc + 66ec: 8348 ld.b r2, (r3, 0x8) + 66ee: 3a40 cmpnei r2, 0 + 66f0: 0bdf bt 0x66ae // 66ae + Debug_Inf.TempDisplay++; + 66f2: 3201 movi r2, 1 + 66f4: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 66f6: 3101 movi r1, 1 + 66f8: 3006 movi r0, 6 + 66fa: 07cd br 0x6694 // 6694 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 66fc: 3a47 cmpnei r2, 7 + 66fe: 0809 bt 0x6710 // 6710 + 6700: 8329 ld.b r1, (r3, 0x9) + 6702: 3901 cmphsi r1, 2 + 6704: 0bd5 bt 0x66ae // 66ae + Debug_Inf.Language_Selection++; + 6706: 2100 addi r1, 1 + 6708: 7444 zextb r1, r1 + 670a: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 670c: 3007 movi r0, 7 + 670e: 07c3 br 0x6694 // 6694 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 6710: 3a48 cmpnei r2, 8 + 6712: 0bce bt 0x66ae // 66ae + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6714: 3101 movi r1, 1 + 6716: 3008 movi r0, 8 + 6718: 07be br 0x6694 // 6694 + if(TempCtrl.CardState == CARDIN) + 671a: 1092 lrw r4, 0x200004d4 // 6760 + 671c: 8478 ld.b r3, (r4, 0x18) + 671e: 3b41 cmpnei r3, 1 + 6720: 0811 bt 0x6742 // 6742 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6722: 8462 ld.b r3, (r4, 0x2) + 6724: 74ce sextb r3, r3 + 6726: 3bdf btsti r3, 31 + 6728: 0c0d bf 0x6742 // 6742 + TemCtrl_Temperature_Add(); //设置温度+ + 672a: e3fffd63 bsr 0x61f0 // 61f0 + if(g_eeprom.backlight_en == 0x01) + 672e: 106e lrw r3, 0x20000438 // 6764 + 6730: 8364 ld.b r3, (r3, 0x4) + 6732: 3b41 cmpnei r3, 1 + 6734: 0807 bt 0x6742 // 6742 + Controlled_LCD_Backlight(0x01); + 6736: 3001 movi r0, 1 + 6738: e3fffb08 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 673c: 3001 movi r0, 1 + 673e: e3fffb73 bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 6742: 9560 ld.w r3, (r5, 0x0) + 6744: 4b48 lsri r2, r3, 8 + 6746: a470 st.b r3, (r4, 0x10) + 6748: a451 st.b r2, (r4, 0x11) + 674a: 4b50 lsri r2, r3, 16 + 674c: 4b78 lsri r3, r3, 24 + 674e: a452 st.b r2, (r4, 0x12) + 6750: a473 st.b r3, (r4, 0x13) +} + 6752: 07ae br 0x66ae // 66ae + 6754: 00008a53 .long 0x00008a53 + 6758: 200004f9 .long 0x200004f9 + 675c: 200000b8 .long 0x200000b8 + 6760: 200004d4 .long 0x200004d4 + 6764: 20000438 .long 0x20000438 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00006768 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 6768: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 676a: 109a lrw r4, 0x200004f9 // 67d0 + 676c: 8460 ld.b r3, (r4, 0x0) + 676e: 3b40 cmpnei r3, 0 + 6770: 082e bt 0x67cc // 67cc + { + Debug_Inf.Press_Flag |= (0x01<<0); + 6772: 8461 ld.b r3, (r4, 0x1) + 6774: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6776: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 6778: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 677a: 0829 bt 0x67cc // 67cc + 677c: 1076 lrw r3, 0x200004d4 // 67d4 + 677e: 8362 ld.b r3, (r3, 0x2) + 6780: 74ce sextb r3, r3 + 6782: 3bdf btsti r3, 31 + 6784: 0824 bt 0x67cc // 67cc + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 6786: 3000 movi r0, 0 + 6788: 1034 lrw r1, 0x8a6a // 67d8 + 678a: e3ffea77 bsr 0x3c78 // 3c78 + Debug_Inf.Tick = SysTick_1ms; + 678e: 1074 lrw r3, 0x200000b8 // 67dc + 6790: 320a movi r2, 10 + 6792: 9360 ld.w r3, (r3, 0x0) + 6794: 6090 addu r2, r4 + 6796: 4b28 lsri r1, r3, 8 + 6798: a260 st.b r3, (r2, 0x0) + 679a: a221 st.b r1, (r2, 0x1) + 679c: 4b30 lsri r1, r3, 16 + 679e: 4b78 lsri r3, r3, 24 + 67a0: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 67a2: 3300 movi r3, 0 + 67a4: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 67a6: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 67a8: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 67aa: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 67ac: a462 st.b r3, (r4, 0x2) + //Debug_Inf.Renetwork = 0; + + HT1621_Clear(); + 67ae: e3fff78f bsr 0x56cc // 56cc + Controlled_LCD_Backlight(0x01); + 67b2: 3001 movi r0, 1 + 67b4: e3fffaca bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 67b8: 3001 movi r0, 1 + 67ba: e3fffb35 bsr 0x5e24 // 5e24 + Controlled_Buzzer(0x01); + 67be: 3001 movi r0, 1 + 67c0: e3fffaa0 bsr 0x5d00 // 5d00 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 67c4: 8424 ld.b r1, (r4, 0x4) + 67c6: 3001 movi r0, 1 + 67c8: e3fffb46 bsr 0x5e54 // 5e54 + + } + } + +} + 67cc: 1491 pop r4, r15 + 67ce: 0000 bkpt + 67d0: 200004f9 .long 0x200004f9 + 67d4: 200004d4 .long 0x200004d4 + 67d8: 00008a6a .long 0x00008a6a + 67dc: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +000067e0 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 67e0: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 67e2: 113f lrw r1, 0x8a73 // 68dc + 67e4: 3000 movi r0, 0 + 67e6: e3ffea49 bsr 0x3c78 // 3c78 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 67ea: 117e lrw r3, 0x200004f9 // 68e0 + 67ec: 8340 ld.b r2, (r3, 0x0) + 67ee: 3a41 cmpnei r2, 1 + 67f0: 11bd lrw r5, 0x200000b8 // 68e4 + 67f2: 0857 bt 0x68a0 // 68a0 + { + Debug_Inf.Tick = SysTick_1ms; + 67f4: 9540 ld.w r2, (r5, 0x0) + 67f6: 310a movi r1, 10 + 67f8: 604c addu r1, r3 + 67fa: 4a08 lsri r0, r2, 8 + 67fc: a140 st.b r2, (r1, 0x0) + 67fe: a101 st.b r0, (r1, 0x1) + 6800: 4a10 lsri r0, r2, 16 + 6802: 4a58 lsri r2, r2, 24 + 6804: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 6806: 8342 ld.b r2, (r3, 0x2) + 6808: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 680a: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 680c: 080b bt 0x6822 // 6822 + 680e: 8324 ld.b r1, (r3, 0x4) + 6810: 3940 cmpnei r1, 0 + 6812: 0c12 bf 0x6836 // 6836 + { + Debug_Inf.PipeFlag --; + 6814: 2900 subi r1, 1 + 6816: 7444 zextb r1, r1 + 6818: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 681a: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 681c: e3fffb1c bsr 0x5e54 // 5e54 + 6820: 040b br 0x6836 // 6836 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 6822: 3a42 cmpnei r2, 2 + 6824: 080a bt 0x6838 // 6838 + 6826: 8305 ld.b r0, (r3, 0x5) + 6828: 3840 cmpnei r0, 0 + 682a: 0c06 bf 0x6836 // 6836 + Debug_Inf.TempDiff--; + 682c: 2800 subi r0, 1 + 682e: 7400 zextb r0, r0 + 6830: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 6832: e3fffb5f bsr 0x5ef0 // 5ef0 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 6836: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 6838: 3a43 cmpnei r2, 3 + 683a: 0806 bt 0x6846 // 6846 + Debug_Inf.BackLight_En = 0x00; + 683c: 3200 movi r2, 0 + 683e: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6840: 3100 movi r1, 0 + 6842: 3003 movi r0, 3 + 6844: 07ec br 0x681c // 681c + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 6846: 3a44 cmpnei r2, 4 + 6848: 0809 bt 0x685a // 685a + 684a: 8327 ld.b r1, (r3, 0x7) + 684c: 3940 cmpnei r1, 0 + 684e: 0ff4 bf 0x6836 // 6836 + Debug_Inf.KSens_Level--; + 6850: 2900 subi r1, 1 + 6852: 7444 zextb r1, r1 + 6854: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6856: 3004 movi r0, 4 + 6858: 07e2 br 0x681c // 681c + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 685a: 3a45 cmpnei r2, 5 + 685c: 0809 bt 0x686e // 686e + 685e: 8323 ld.b r1, (r3, 0x3) + 6860: 3940 cmpnei r1, 0 + 6862: 0fea bf 0x6836 // 6836 + Debug_Inf.DevAddr--; //刷新地址 + 6864: 2900 subi r1, 1 + 6866: 7444 zextb r1, r1 + 6868: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 686a: 3005 movi r0, 5 + 686c: 07d8 br 0x681c // 681c + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 686e: 3a46 cmpnei r2, 6 + 6870: 0809 bt 0x6882 // 6882 + 6872: 8328 ld.b r1, (r3, 0x8) + 6874: 3940 cmpnei r1, 0 + 6876: 0fe0 bf 0x6836 // 6836 + Debug_Inf.TempDisplay--; + 6878: 2900 subi r1, 1 + 687a: 7444 zextb r1, r1 + 687c: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 687e: 3006 movi r0, 6 + 6880: 07ce br 0x681c // 681c + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 6882: 3a47 cmpnei r2, 7 + 6884: 0809 bt 0x6896 // 6896 + 6886: 8329 ld.b r1, (r3, 0x9) + 6888: 3940 cmpnei r1, 0 + 688a: 0fd6 bf 0x6836 // 6836 + Debug_Inf.Language_Selection--; + 688c: 2900 subi r1, 1 + 688e: 7444 zextb r1, r1 + 6890: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6892: 3007 movi r0, 7 + 6894: 07c4 br 0x681c // 681c + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 6896: 3a48 cmpnei r2, 8 + 6898: 0bcf bt 0x6836 // 6836 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 689a: 3101 movi r1, 1 + 689c: 3008 movi r0, 8 + 689e: 07bf br 0x681c // 681c + if(TempCtrl.CardState == CARDIN) + 68a0: 1092 lrw r4, 0x200004d4 // 68e8 + 68a2: 8478 ld.b r3, (r4, 0x18) + 68a4: 3b41 cmpnei r3, 1 + 68a6: 0811 bt 0x68c8 // 68c8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 68a8: 8462 ld.b r3, (r4, 0x2) + 68aa: 74ce sextb r3, r3 + 68ac: 3bdf btsti r3, 31 + 68ae: 0c0d bf 0x68c8 // 68c8 + TemCtrl_Temperature_Dec(); //设置温度- + 68b0: e3fffc88 bsr 0x61c0 // 61c0 + if(g_eeprom.backlight_en == 0x01) + 68b4: 106e lrw r3, 0x20000438 // 68ec + 68b6: 8364 ld.b r3, (r3, 0x4) + 68b8: 3b41 cmpnei r3, 1 + 68ba: 0807 bt 0x68c8 // 68c8 + Controlled_LCD_Backlight(0x01); + 68bc: 3001 movi r0, 1 + 68be: e3fffa45 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 68c2: 3001 movi r0, 1 + 68c4: e3fffab0 bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 68c8: 9560 ld.w r3, (r5, 0x0) + 68ca: 4b48 lsri r2, r3, 8 + 68cc: a470 st.b r3, (r4, 0x10) + 68ce: a451 st.b r2, (r4, 0x11) + 68d0: 4b50 lsri r2, r3, 16 + 68d2: 4b78 lsri r3, r3, 24 + 68d4: a452 st.b r2, (r4, 0x12) + 68d6: a473 st.b r3, (r4, 0x13) +} + 68d8: 07af br 0x6836 // 6836 + 68da: 0000 bkpt + 68dc: 00008a73 .long 0x00008a73 + 68e0: 200004f9 .long 0x200004f9 + 68e4: 200000b8 .long 0x200000b8 + 68e8: 200004d4 .long 0x200004d4 + 68ec: 20000438 .long 0x20000438 + +Disassembly of section .text.KEY4_Long_Press: + +000068f0 : + +void KEY4_Long_Press(void) +{ + 68f0: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 68f2: 109a lrw r4, 0x200004f9 // 6958 + 68f4: 8460 ld.b r3, (r4, 0x0) + 68f6: 3b40 cmpnei r3, 0 + 68f8: 082e bt 0x6954 // 6954 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 68fa: 8461 ld.b r3, (r4, 0x1) + 68fc: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 68fe: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 6900: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6902: 0829 bt 0x6954 // 6954 + 6904: 1076 lrw r3, 0x200004d4 // 695c + 6906: 8362 ld.b r3, (r3, 0x2) + 6908: 74ce sextb r3, r3 + 690a: 3bdf btsti r3, 31 + 690c: 0824 bt 0x6954 // 6954 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 690e: 1035 lrw r1, 0x8a6a // 6960 + 6910: 3000 movi r0, 0 + 6912: e3ffe9b3 bsr 0x3c78 // 3c78 + Debug_Inf.Tick = SysTick_1ms; + 6916: 1074 lrw r3, 0x200000b8 // 6964 + 6918: 320a movi r2, 10 + 691a: 9360 ld.w r3, (r3, 0x0) + 691c: 6090 addu r2, r4 + 691e: 4b28 lsri r1, r3, 8 + 6920: a260 st.b r3, (r2, 0x0) + 6922: a221 st.b r1, (r2, 0x1) + 6924: 4b30 lsri r1, r3, 16 + 6926: 4b78 lsri r3, r3, 24 + 6928: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 692a: 3300 movi r3, 0 + 692c: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 692e: 3001 movi r0, 1 + Debug_Inf.State = 0x01; + 6930: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 6932: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 6934: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6936: a462 st.b r3, (r4, 0x2) + Controlled_LCD_Backlight(0x01); + 6938: e3fffa08 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 693c: 3001 movi r0, 1 + 693e: e3fffa73 bsr 0x5e24 // 5e24 + HT1621_Clear(); + 6942: e3fff6c5 bsr 0x56cc // 56cc + Controlled_Buzzer(0x01); + 6946: 3001 movi r0, 1 + 6948: e3fff9dc bsr 0x5d00 // 5d00 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 694c: 8424 ld.b r1, (r4, 0x4) + 694e: 3001 movi r0, 1 + 6950: e3fffa82 bsr 0x5e54 // 5e54 + + } + } +} + 6954: 1491 pop r4, r15 + 6956: 0000 bkpt + 6958: 200004f9 .long 0x200004f9 + 695c: 200004d4 .long 0x200004d4 + 6960: 00008a6a .long 0x00008a6a + 6964: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00006968 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 6968: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 696a: 103c lrw r1, 0x8a8a // 69d8 + 696c: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 696e: 109c lrw r4, 0x200004f9 // 69dc + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 6970: e3ffe984 bsr 0x3c78 // 3c78 + if(Debug_Inf.State == 0x00) //正常模式 + 6974: 8460 ld.b r3, (r4, 0x0) + 6976: 3b40 cmpnei r3, 0 + 6978: 081b bt 0x69ae // 69ae + { + if(TempCtrl.CardState == CARDIN) + 697a: 109a lrw r4, 0x200004d4 // 69e0 + 697c: 8478 ld.b r3, (r4, 0x18) + 697e: 3b41 cmpnei r3, 1 + 6980: 080d bt 0x699a // 699a + { + TemCtrl_OnOff_Set(); + 6982: e3fffc4f bsr 0x6220 // 6220 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 6986: 1078 lrw r3, 0x200000b8 // 69e4 + 6988: 9360 ld.w r3, (r3, 0x0) + 698a: 4b48 lsri r2, r3, 8 + 698c: a470 st.b r3, (r4, 0x10) + 698e: a451 st.b r2, (r4, 0x11) + 6990: 4b50 lsri r2, r3, 16 + 6992: 4b78 lsri r3, r3, 24 + 6994: a452 st.b r2, (r4, 0x12) + 6996: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 6998: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 699a: 3001 movi r0, 1 + 699c: e0000028 bsr 0x69ec // 69ec + Controlled_LCD_Backlight(1); + 69a0: 3001 movi r0, 1 + 69a2: e3fff9d3 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(1); + 69a6: 3001 movi r0, 1 + 69a8: e3fffa3e bsr 0x5e24 // 5e24 + 69ac: 07ed br 0x6986 // 6986 + else if(Debug_Inf.State == 0x01) //设置模式 + 69ae: 3b41 cmpnei r3, 1 + 69b0: 0bf4 bt 0x6998 // 6998 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 69b2: 102e lrw r1, 0x8a9f // 69e8 + 69b4: 3000 movi r0, 0 + 69b6: e3ffe961 bsr 0x3c78 // 3c78 + Debug_Inf.State = 0x00; + 69ba: 3300 movi r3, 0 + 69bc: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 69be: 3301 movi r3, 1 + 69c0: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 69c2: e3fff685 bsr 0x56cc // 56cc + Controlled_LCD_Backlight(0x00); + 69c6: 3000 movi r0, 0 + 69c8: e3fff9c0 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 69cc: 3000 movi r0, 0 + 69ce: e3fffa2b bsr 0x5e24 // 5e24 + Dev_SaveData(); + 69d2: e0000297 bsr 0x6f00 // 6f00 +} + 69d6: 07e1 br 0x6998 // 6998 + 69d8: 00008a8a .long 0x00008a8a + 69dc: 200004f9 .long 0x200004f9 + 69e0: 200004d4 .long 0x200004d4 + 69e4: 200000b8 .long 0x200000b8 + 69e8: 00008a9f .long 0x00008a9f + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +000069ec : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 69ec: 14d1 push r4, r15 + if(state == TEMP_ON) + 69ee: 3841 cmpnei r0, 1 + 69f0: 0821 bt 0x6a32 // 6a32 + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 69f2: 1072 lrw r3, 0x200004f9 // 6a38 + 69f4: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 69f6: 1092 lrw r4, 0x200004d4 // 6a3c + Control_Prompt_Text(Debug_Inf.Language_Selection); + 69f8: e3fff932 bsr 0x5c5c // 5c5c + Control_Mode(TempCtrl.TemState_Now.mode); + 69fc: 8402 ld.b r0, (r4, 0x2) + 69fe: 4019 lsli r0, r0, 25 + 6a00: 481d lsri r0, r0, 29 + 6a02: e3fff7a3 bsr 0x5948 // 5948 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6a06: 8402 ld.b r0, (r4, 0x2) + 6a08: 401c lsli r0, r0, 28 + 6a0a: 481d lsri r0, r0, 29 + 6a0c: e3fff8c0 bsr 0x5b8c // 5b8c + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6a10: 8401 ld.b r0, (r4, 0x1) + 6a12: 3840 cmpnei r0, 0 + 6a14: 0c0c bf 0x6a2c // 6a2c + 6a16: 330a movi r3, 10 + 6a18: 7c0c mult r0, r3 + 6a1a: e3fff6c7 bsr 0x57a8 // 57a8 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 6a1e: 8400 ld.b r0, (r4, 0x0) + 6a20: 330a movi r3, 10 + 6a22: 7c0c mult r0, r3 + 6a24: 7401 zexth r0, r0 + 6a26: e3fff729 bsr 0x5878 // 5878 + } + else + { + HT1621_Clear(); + } +} + 6a2a: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6a2c: 30a0 movi r0, 160 + 6a2e: 4001 lsli r0, r0, 1 + 6a30: 07f5 br 0x6a1a // 6a1a + HT1621_Clear(); + 6a32: e3fff64d bsr 0x56cc // 56cc +} + 6a36: 07fa br 0x6a2a // 6a2a + 6a38: 200004f9 .long 0x200004f9 + 6a3c: 200004d4 .long 0x200004d4 + +Disassembly of section .text.DisPlay_Init: + +00006a40 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 6a40: 14d0 push r15 + HT1621_ALLON(); + 6a42: e3fff66d bsr 0x571c // 571c + + delay_nms(5000); + 6a46: 1005 lrw r0, 0x1388 // 6a58 + 6a48: e3ffe1b4 bsr 0x2db0 // 2db0 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6a4c: 1064 lrw r3, 0x200004d4 // 6a5c + 6a4e: 8302 ld.b r0, (r3, 0x2) + 6a50: 4807 lsri r0, r0, 7 + 6a52: e3ffffcd bsr 0x69ec // 69ec + +} + 6a56: 1490 pop r15 + 6a58: 00001388 .long 0x00001388 + 6a5c: 200004d4 .long 0x200004d4 + +Disassembly of section .text.Data_Resend: + +00006a60 : + +void Data_Resend(void){ //2024-12-15 + 6a60: 14d4 push r4-r7, r15 + + if(g_eeprom.dev_port == ACTIVE_PORT) + 6a62: 107d lrw r3, 0x20000438 // 6ad4 + 6a64: 8367 ld.b r3, (r3, 0x7) + 6a66: 3b42 cmpnei r3, 2 + 6a68: 0830 bt 0x6ac8 // 6ac8 + { + if((TempCtrl.ASend_Flag != 0x00) && (SysTick_1ms - TempCtrl.SendTick > 50 + rand()%20)) + 6a6a: 10bc lrw r5, 0x200004d4 // 6ad8 + 6a6c: 857f ld.b r3, (r5, 0x1f) + 6a6e: 3b40 cmpnei r3, 0 + 6a70: 0c2c bf 0x6ac8 // 6ac8 + 6a72: 3420 movi r4, 32 + 6a74: 6114 addu r4, r5 + 6a76: 8442 ld.b r2, (r4, 0x2) + 6a78: 8461 ld.b r3, (r4, 0x1) + 6a7a: 4248 lsli r2, r2, 8 + 6a7c: 6c8c or r2, r3 + 6a7e: 8463 ld.b r3, (r4, 0x3) + 6a80: 4370 lsli r3, r3, 16 + 6a82: 6c8c or r2, r3 + 6a84: 8464 ld.b r3, (r4, 0x4) + 6a86: 10d6 lrw r6, 0x200000b8 // 6adc + 6a88: 4378 lsli r3, r3, 24 + 6a8a: 9620 ld.w r1, (r6, 0x0) + 6a8c: 6cc8 or r3, r2 + 6a8e: 59ed subu r7, r1, r3 + 6a90: e3ffd786 bsr 0x199c // 199c <__GI_rand> + 6a94: 3114 movi r1, 20 + 6a96: e3ffe76f bsr 0x3974 // 3974 <__modsi3> + 6a9a: 2031 addi r0, 50 + 6a9c: 65c0 cmphs r0, r7 + 6a9e: 0815 bt 0x6ac8 // 6ac8 + { + TempCtrl.SendTick = SysTick_1ms; + 6aa0: 9660 ld.w r3, (r6, 0x0) + 6aa2: 3221 movi r2, 33 + 6aa4: 6094 addu r2, r5 + 6aa6: 4b28 lsri r1, r3, 8 + 6aa8: a260 st.b r3, (r2, 0x0) + 6aaa: a221 st.b r1, (r2, 0x1) + 6aac: 4b30 lsri r1, r3, 16 + 6aae: 4b78 lsri r3, r3, 24 + 6ab0: a263 st.b r3, (r2, 0x3) + if(TempCtrl.SendCnt < 4) + 6ab2: 8460 ld.b r3, (r4, 0x0) + 6ab4: 3b03 cmphsi r3, 4 + TempCtrl.SendTick = SysTick_1ms; + 6ab6: a222 st.b r1, (r2, 0x2) + if(TempCtrl.SendCnt < 4) + 6ab8: 0809 bt 0x6aca // 6aca + { + TempCtrl.SendCnt++; + 6aba: 2300 addi r3, 1 + 6abc: a460 st.b r3, (r4, 0x0) + Rs485AskCycleSend(); + 6abe: e0000333 bsr 0x7124 // 7124 + else + { + TempCtrl.SendCnt = 0x00; + TempCtrl.ASend_Flag = 0x00; + } + g_uart[UART_2].BusState = 0x00; + 6ac2: 1068 lrw r3, 0x200003d5 // 6ae0 + 6ac4: 3200 movi r2, 0 + 6ac6: a340 st.b r2, (r3, 0x0) + } + } +} + 6ac8: 1494 pop r4-r7, r15 + TempCtrl.SendCnt = 0x00; + 6aca: 3300 movi r3, 0 + 6acc: a460 st.b r3, (r4, 0x0) + TempCtrl.ASend_Flag = 0x00; + 6ace: a57f st.b r3, (r5, 0x1f) + 6ad0: 07f9 br 0x6ac2 // 6ac2 + 6ad2: 0000 bkpt + 6ad4: 20000438 .long 0x20000438 + 6ad8: 200004d4 .long 0x200004d4 + 6adc: 200000b8 .long 0x200000b8 + 6ae0: 200003d5 .long 0x200003d5 + +Disassembly of section .text.Switch_Report_Task: + +00006ae4 : + +void Switch_Report_Task(void){ //2024-12-15 + 6ae4: 14d2 push r4-r5, r15 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 6ae6: 1160 lrw r3, 0x20000438 // 6b64 + 6ae8: 8367 ld.b r3, (r3, 0x7) + 6aea: 3b42 cmpnei r3, 2 + 6aec: 081d bt 0x6b26 // 6b26 + + switch (g_uart[UART_2].BusState) { + 6aee: 107f lrw r3, 0x200003d5 // 6b68 + 6af0: 8340 ld.b r2, (r3, 0x0) + 6af2: 3a41 cmpnei r2, 1 + 6af4: 0c1a bf 0x6b28 // 6b28 + 6af6: 3a40 cmpnei r2, 0 + 6af8: 0c05 bf 0x6b02 // 6b02 + 6afa: 3a42 cmpnei r2, 2 + 6afc: 0c07 bf 0x6b0a // 6b0a + case 0x02: //总线占线超时 + Data_Resend(); + break; + + default: + g_uart[UART_2].BusState = 0x00; + 6afe: 3200 movi r2, 0 + 6b00: 042f br 0x6b5e // 6b5e + if (g_uart[UART_2].Receiving == 0x00) { + 6b02: 105b lrw r2, 0x200003d4 // 6b6c + 6b04: 8240 ld.b r2, (r2, 0x0) + 6b06: 3a40 cmpnei r2, 0 + 6b08: 0804 bt 0x6b10 // 6b10 + Data_Resend(); + 6b0a: e3ffffab bsr 0x6a60 // 6a60 + break; + 6b0e: 040c br 0x6b26 // 6b26 + g_uart[UART_2].BusState = 0x01; + 6b10: 3201 movi r2, 1 + 6b12: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6b14: 1057 lrw r2, 0x200000b8 // 6b70 + 6b16: 9240 ld.w r2, (r2, 0x0) + 6b18: 4a28 lsri r1, r2, 8 + 6b1a: a34b st.b r2, (r3, 0xb) + 6b1c: a32c st.b r1, (r3, 0xc) + 6b1e: 4a30 lsri r1, r2, 16 + 6b20: 4a58 lsri r2, r2, 24 + 6b22: a32d st.b r1, (r3, 0xd) + 6b24: a34e st.b r2, (r3, 0xe) + break; + } +} + 6b26: 1492 pop r4-r5, r15 + if (SysTick_1ms - g_uart[UART_2].BusbusyTimeout >= 100) { + 6b28: 310b movi r1, 11 + 6b2a: 604c addu r1, r3 + 6b2c: 830c ld.b r0, (r3, 0xc) + 6b2e: 8140 ld.b r2, (r1, 0x0) + 6b30: 4008 lsli r0, r0, 8 + 6b32: 6c08 or r0, r2 + 6b34: 834d ld.b r2, (r3, 0xd) + 6b36: 4250 lsli r2, r2, 16 + 6b38: 6c08 or r0, r2 + 6b3a: 834e ld.b r2, (r3, 0xe) + 6b3c: 10ad lrw r5, 0x200000b8 // 6b70 + 6b3e: 4258 lsli r2, r2, 24 + 6b40: 6c80 or r2, r0 + 6b42: 9580 ld.w r4, (r5, 0x0) + 6b44: 610a subu r4, r2 + 6b46: 3263 movi r2, 99 + 6b48: 6508 cmphs r2, r4 + 6b4a: 0bee bt 0x6b26 // 6b26 + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6b4c: 9540 ld.w r2, (r5, 0x0) + 6b4e: 4a08 lsri r0, r2, 8 + 6b50: a140 st.b r2, (r1, 0x0) + 6b52: a101 st.b r0, (r1, 0x1) + 6b54: 4a10 lsri r0, r2, 16 + 6b56: 4a58 lsri r2, r2, 24 + 6b58: a143 st.b r2, (r1, 0x3) + 6b5a: a102 st.b r0, (r1, 0x2) + g_uart[UART_2].BusState = 0x02; + 6b5c: 3202 movi r2, 2 + g_uart[UART_2].BusState = 0x00; + 6b5e: a340 st.b r2, (r3, 0x0) + break; + 6b60: 07e3 br 0x6b26 // 6b26 + 6b62: 0000 bkpt + 6b64: 20000438 .long 0x20000438 + 6b68: 200003d5 .long 0x200003d5 + 6b6c: 200003d4 .long 0x200003d4 + 6b70: 200000b8 .long 0x200000b8 + +Disassembly of section .text.DisPlay_Task: + +00006b74 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 6b74: 14d3 push r4-r6, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 6b76: 0176 lrw r3, 0x200004f9 // 6e98 + 6b78: 8360 ld.b r3, (r3, 0x0) + 6b7a: 3b40 cmpnei r3, 0 + 6b7c: 0c02 bf 0x6b80 // 6b80 + 6b7e: 0583 br 0x6e84 // 6e84 + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 6b80: 0198 lrw r4, 0x200004d4 // 6e9c + 6b82: 8451 ld.b r2, (r4, 0x11) + 6b84: 8470 ld.b r3, (r4, 0x10) + 6b86: 4248 lsli r2, r2, 8 + 6b88: 6c8c or r2, r3 + 6b8a: 8472 ld.b r3, (r4, 0x12) + 6b8c: 4370 lsli r3, r3, 16 + 6b8e: 6c8c or r2, r3 + 6b90: 8473 ld.b r3, (r4, 0x13) + 6b92: 01bb lrw r5, 0x200000b8 // 6ea0 + 6b94: 4378 lsli r3, r3, 24 + 6b96: 6cc8 or r3, r2 + 6b98: 9520 ld.w r1, (r5, 0x0) + 6b9a: 604e subu r1, r3 + 6b9c: 015d lrw r2, 0xbb8 // 6ea4 + 6b9e: 6448 cmphs r2, r1 + 6ba0: 08a7 bt 0x6cee // 6cee + 6ba2: 8458 ld.b r2, (r4, 0x18) + 6ba4: 3a40 cmpnei r2, 0 + 6ba6: 08a4 bt 0x6cee // 6cee + { + TempCtrl.BackLightTick = SysTick_1ms; + 6ba8: 9560 ld.w r3, (r5, 0x0) + 6baa: 4b48 lsri r2, r3, 8 + 6bac: a470 st.b r3, (r4, 0x10) + 6bae: a451 st.b r2, (r4, 0x11) + 6bb0: 4b50 lsri r2, r3, 16 + 6bb2: 4b78 lsri r3, r3, 24 + 6bb4: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 6bb6: 3300 movi r3, 0 + 6bb8: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6bba: 8462 ld.b r3, (r4, 0x2) + 6bbc: 74ce sextb r3, r3 + 6bbe: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6bc0: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6bc2: 0803 bt 0x6bc8 // 6bc8 + { + HT1621_Clear(); + 6bc4: e3fff584 bsr 0x56cc // 56cc + } + //关背光 + Controlled_LCD_Backlight(0); + 6bc8: 3000 movi r0, 0 + 6bca: e3fff8bf bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6bce: 3000 movi r0, 0 + 6bd0: e3fff92a bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 6bd4: 022a lrw r1, 0x8aa9 // 6ea8 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6bd6: 3000 movi r0, 0 + 6bd8: e3ffe850 bsr 0x3c78 // 3c78 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 6bdc: 8455 ld.b r2, (r4, 0x15) + 6bde: 8474 ld.b r3, (r4, 0x14) + 6be0: 4248 lsli r2, r2, 8 + 6be2: 6c8c or r2, r3 + 6be4: 8476 ld.b r3, (r4, 0x16) + 6be6: 4370 lsli r3, r3, 16 + 6be8: 6c8c or r2, r3 + 6bea: 8477 ld.b r3, (r4, 0x17) + 6bec: 4378 lsli r3, r3, 24 + 6bee: 6cc8 or r3, r2 + 6bf0: 9520 ld.w r1, (r5, 0x0) + 6bf2: 604e subu r1, r3 + 6bf4: 33fa movi r3, 250 + 6bf6: 4362 lsli r3, r3, 2 + 6bf8: 644c cmphs r3, r1 + 6bfa: 081b bt 0x6c30 // 6c30 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 6bfc: 9560 ld.w r3, (r5, 0x0) + 6bfe: 4b48 lsri r2, r3, 8 + 6c00: a474 st.b r3, (r4, 0x14) + 6c02: a455 st.b r2, (r4, 0x15) + 6c04: 4b50 lsri r2, r3, 16 + 6c06: 4b78 lsri r3, r3, 24 + 6c08: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6c0a: 847b ld.b r3, (r4, 0x1b) + 6c0c: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 6c0e: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6c10: 0897 bt 0x6d3e // 6d3e + 6c12: 847c ld.b r3, (r4, 0x1c) + 6c14: 3b41 cmpnei r3, 1 + 6c16: 0894 bt 0x6d3e // 6d3e + { + TempCtrl.SceneFlag = 0x00; + 6c18: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 6c1a: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 6c1c: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 6c1e: e3fff895 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6c22: 3000 movi r0, 0 + 6c24: e3fff900 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 6c28: 023e lrw r1, 0x8acb // 6eac + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6c2a: 3000 movi r0, 0 + 6c2c: e3ffe826 bsr 0x3c78 // 3c78 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 6c30: 02df lrw r6, 0x20000438 // 6eb0 + 6c32: 8664 ld.b r3, (r6, 0x4) + 6c34: 3b41 cmpnei r3, 1 + 6c36: 081e bt 0x6c72 // 6c72 + 6c38: 8451 ld.b r2, (r4, 0x11) + 6c3a: 8470 ld.b r3, (r4, 0x10) + 6c3c: 4248 lsli r2, r2, 8 + 6c3e: 6c8c or r2, r3 + 6c40: 8472 ld.b r3, (r4, 0x12) + 6c42: 4370 lsli r3, r3, 16 + 6c44: 6c8c or r2, r3 + 6c46: 8473 ld.b r3, (r4, 0x13) + 6c48: 4378 lsli r3, r3, 24 + 6c4a: 6cc8 or r3, r2 + 6c4c: 9520 ld.w r1, (r5, 0x0) + 6c4e: 604e subu r1, r3 + 6c50: 0366 lrw r3, 0x1388 // 6eb4 + 6c52: 644c cmphs r3, r1 + 6c54: 080f bt 0x6c72 // 6c72 + { + TempCtrl.BackLightTick = SysTick_1ms; + 6c56: 9560 ld.w r3, (r5, 0x0) + 6c58: 4b48 lsri r2, r3, 8 + 6c5a: a470 st.b r3, (r4, 0x10) + 6c5c: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 6c5e: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 6c60: 4b50 lsri r2, r3, 16 + 6c62: 4b78 lsri r3, r3, 24 + 6c64: a452 st.b r2, (r4, 0x12) + 6c66: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 6c68: e3fff870 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6c6c: 3000 movi r0, 0 + 6c6e: e3fff8db bsr 0x5e24 // 5e24 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6c72: 8402 ld.b r0, (r4, 0x2) + 6c74: 74c2 sextb r3, r0 + 6c76: 3bdf btsti r3, 31 + 6c78: 0ce1 bf 0x6e3a // 6e3a + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 6c7a: 8466 ld.b r3, (r4, 0x6) + 6c7c: 4019 lsli r0, r0, 25 + 6c7e: 4359 lsli r2, r3, 25 + 6c80: 481d lsri r0, r0, 29 + 6c82: 4a5d lsri r2, r2, 29 + 6c84: 640a cmpne r2, r0 + 6c86: 0c19 bf 0x6cb8 // 6cb8 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 6c88: 3170 movi r1, 112 + 6c8a: 4044 lsli r2, r0, 4 + 6c8c: 68c5 andn r3, r1 + 6c8e: 6cc8 or r3, r2 + 6c90: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 6c92: e3fff65b bsr 0x5948 // 5948 + + SYSCON->UREG0 &= 0xFFFF00FF; + 6c96: 0376 lrw r3, 0x2000005c // 6eb8 + 6c98: 31ff movi r1, 255 + 6c9a: 9340 ld.w r2, (r3, 0x0) + 6c9c: 22ff addi r2, 256 + 6c9e: 9260 ld.w r3, (r2, 0x0) + 6ca0: 4128 lsli r1, r1, 8 + 6ca2: 68c5 andn r3, r1 + 6ca4: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6ca6: 8462 ld.b r3, (r4, 0x2) + 6ca8: 4379 lsli r3, r3, 25 + 6caa: 4b7d lsri r3, r3, 29 + 6cac: 9220 ld.w r1, (r2, 0x0) + 6cae: 4368 lsli r3, r3, 8 + 6cb0: 6cc4 or r3, r1 + 6cb2: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6cb4: 3301 movi r3, 1 + 6cb6: a47f st.b r3, (r4, 0x1f) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 6cb8: 8402 ld.b r0, (r4, 0x2) + 6cba: 8466 ld.b r3, (r4, 0x6) + 6cbc: 401c lsli r0, r0, 28 + 6cbe: 435c lsli r2, r3, 28 + 6cc0: 481d lsri r0, r0, 29 + 6cc2: 4a5d lsri r2, r2, 29 + 6cc4: 640a cmpne r2, r0 + 6cc6: 0c6f bf 0x6da4 // 6da4 + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 6cc8: 310e movi r1, 14 + 6cca: 4041 lsli r2, r0, 1 + 6ccc: 68c5 andn r3, r1 + 6cce: 6cc8 or r3, r2 + 6cd0: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6cd2: e3fff75d bsr 0x5b8c // 5b8c + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6cd6: 3270 movi r2, 112 + 6cd8: 8462 ld.b r3, (r4, 0x2) + 6cda: 68c8 and r3, r2 + 6cdc: 3240 movi r2, 64 + 6cde: 648e cmpne r3, r2 + 6ce0: 0843 bt 0x6d66 // 6d66 + 6ce2: 8661 ld.b r3, (r6, 0x1) + 6ce4: 3b42 cmpnei r3, 2 + 6ce6: 0840 bt 0x6d66 // 6d66 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 6ce8: e00001c0 bsr 0x7068 // 7068 + break; + 6cec: 044b br 0x6d82 // 6d82 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 6cee: 9540 ld.w r2, (r5, 0x0) + 6cf0: 608e subu r2, r3 + 6cf2: 33fa movi r3, 250 + 6cf4: 4363 lsli r3, r3, 3 + 6cf6: 648c cmphs r3, r2 + 6cf8: 0b72 bt 0x6bdc // 6bdc + 6cfa: 8478 ld.b r3, (r4, 0x18) + 6cfc: 3b41 cmpnei r3, 1 + 6cfe: 0b6f bt 0x6bdc // 6bdc + 6d00: 8479 ld.b r3, (r4, 0x19) + 6d02: 3b41 cmpnei r3, 1 + 6d04: 0b6c bt 0x6bdc // 6bdc + TempCtrl.BackLightTick = SysTick_1ms; + 6d06: 9560 ld.w r3, (r5, 0x0) + 6d08: 4b48 lsri r2, r3, 8 + 6d0a: a470 st.b r3, (r4, 0x10) + 6d0c: a451 st.b r2, (r4, 0x11) + 6d0e: 4b50 lsri r2, r3, 16 + 6d10: 4b78 lsri r3, r3, 24 + 6d12: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d14: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 6d16: 3300 movi r3, 0 + 6d18: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d1a: 74c2 sextb r3, r0 + 6d1c: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6d1e: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d20: 0f5e bf 0x6bdc // 6bdc + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6d22: 4807 lsri r0, r0, 7 + 6d24: e3fffe64 bsr 0x69ec // 69ec + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 6d28: 847b ld.b r3, (r4, 0x1b) + 6d2a: 3b44 cmpnei r3, 4 + 6d2c: 0f58 bf 0x6bdc // 6bdc + Controlled_LCD_Backlight(1); + 6d2e: 3001 movi r0, 1 + 6d30: e3fff80c bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6d34: 3001 movi r0, 1 + 6d36: e3fff877 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6d3a: 1321 lrw r1, 0x8abb // 6ebc + 6d3c: 074d br 0x6bd6 // 6bd6 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 6d3e: 8462 ld.b r3, (r4, 0x2) + 6d40: 74ce sextb r3, r3 + 6d42: 3bdf btsti r3, 31 + 6d44: 0f76 bf 0x6c30 // 6c30 + 6d46: 8478 ld.b r3, (r4, 0x18) + 6d48: 3b41 cmpnei r3, 1 + 6d4a: 0b73 bt 0x6c30 // 6c30 + 6d4c: 847c ld.b r3, (r4, 0x1c) + 6d4e: 3b41 cmpnei r3, 1 + 6d50: 0b70 bt 0x6c30 // 6c30 + TempCtrl.SceneFlag = 0x00; + 6d52: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 6d54: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 6d56: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 6d58: e3fff7f8 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6d5c: 3001 movi r0, 1 + 6d5e: e3fff863 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6d62: 1238 lrw r1, 0x8adb // 6ec0 + 6d64: 0763 br 0x6c2a // 6c2a + switch(TempCtrl.TemState_Now.fan) + 6d66: 8402 ld.b r0, (r4, 0x2) + 6d68: 401c lsli r0, r0, 28 + 6d6a: 481d lsri r0, r0, 29 + 6d6c: 2800 subi r0, 1 + 6d6e: 3803 cmphsi r0, 4 + 6d70: 0809 bt 0x6d82 // 6d82 + 6d72: e3ffcfcf bsr 0xd10 // d10 <___gnu_csky_case_shi> + 6d76: 0004 .short 0x0004 + 6d78: 008b0088 .long 0x008b0088 + 6d7c: ffb9 .short 0xffb9 + Relay_Low(); + 6d7e: e0000167 bsr 0x704c // 704c + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 6d82: 126e lrw r3, 0x2000005c // 6eb8 + 6d84: 31ff movi r1, 255 + 6d86: 9340 ld.w r2, (r3, 0x0) + 6d88: 22ff addi r2, 256 + 6d8a: 9260 ld.w r3, (r2, 0x0) + 6d8c: 4130 lsli r1, r1, 16 + 6d8e: 68c5 andn r3, r1 + 6d90: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6d92: 8462 ld.b r3, (r4, 0x2) + 6d94: 437c lsli r3, r3, 28 + 6d96: 4b7d lsri r3, r3, 29 + 6d98: 9220 ld.w r1, (r2, 0x0) + 6d9a: 4370 lsli r3, r3, 16 + 6d9c: 6cc4 or r3, r1 + 6d9e: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6da0: 3301 movi r3, 1 + 6da2: a47f st.b r3, (r4, 0x1f) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 6da4: 8401 ld.b r0, (r4, 0x1) + 6da6: 8465 ld.b r3, (r4, 0x5) + 6da8: 640e cmpne r3, r0 + 6daa: 0c16 bf 0x6dd6 // 6dd6 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 6dac: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 6dae: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 6db0: 0871 bt 0x6e92 // 6e92 + { + Set_Temperature_Display(320); + 6db2: 30a0 movi r0, 160 + 6db4: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 6db6: e3fff4f9 bsr 0x57a8 // 57a8 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 6dba: 1260 lrw r3, 0x2000005c // 6eb8 + 6dbc: 9340 ld.w r2, (r3, 0x0) + 6dbe: 22ff addi r2, 256 + 6dc0: 9260 ld.w r3, (r2, 0x0) + 6dc2: 4368 lsli r3, r3, 8 + 6dc4: 4b68 lsri r3, r3, 8 + 6dc6: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6dc8: 8461 ld.b r3, (r4, 0x1) + 6dca: 9220 ld.w r1, (r2, 0x0) + 6dcc: 4378 lsli r3, r3, 24 + 6dce: 6cc4 or r3, r1 + 6dd0: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6dd2: 3301 movi r3, 1 + 6dd4: a47f st.b r3, (r4, 0x1f) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 6dd6: 8409 ld.b r0, (r4, 0x9) + 6dd8: 8468 ld.b r3, (r4, 0x8) + 6dda: 4008 lsli r0, r0, 8 + 6ddc: 6c0c or r0, r3 + 6dde: 846b ld.b r3, (r4, 0xb) + 6de0: 844a ld.b r2, (r4, 0xa) + 6de2: 4368 lsli r3, r3, 8 + 6de4: 6cc8 or r3, r2 + 6de6: 640e cmpne r3, r0 + 6de8: 0c12 bf 0x6e0c // 6e0c + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 6dea: 4868 lsri r3, r0, 8 + 6dec: a46b st.b r3, (r4, 0xb) + 6dee: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 6df0: e3fff544 bsr 0x5878 // 5878 + + SYSCON->UREG0 &= 0x00FFFFFF; + 6df4: 1171 lrw r3, 0x2000005c // 6eb8 + 6df6: 9340 ld.w r2, (r3, 0x0) + 6df8: 22ff addi r2, 256 + 6dfa: 9260 ld.w r3, (r2, 0x0) + 6dfc: 4368 lsli r3, r3, 8 + 6dfe: 4b68 lsri r3, r3, 8 + 6e00: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6e02: 8461 ld.b r3, (r4, 0x1) + 6e04: 9220 ld.w r1, (r2, 0x0) + 6e06: 4378 lsli r3, r3, 24 + 6e08: 6cc4 or r3, r1 + 6e0a: b260 st.w r3, (r2, 0x0) + + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 6e0c: 844f ld.b r2, (r4, 0xf) + 6e0e: 846e ld.b r3, (r4, 0xe) + 6e10: 4248 lsli r2, r2, 8 + 6e12: 6c8c or r2, r3 + 6e14: 846d ld.b r3, (r4, 0xd) + 6e16: 842c ld.b r1, (r4, 0xc) + 6e18: 4368 lsli r3, r3, 8 + 6e1a: 6cc4 or r3, r1 + 6e1c: 648c cmphs r3, r2 + 6e1e: 0804 bt 0x6e26 // 6e26 + 6e20: 5a2d subu r1, r2, r3 + 6e22: 3925 cmplti r1, 6 + 6e24: 0c06 bf 0x6e30 // 6e30 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 6e26: 64c8 cmphs r2, r3 + 6e28: 0809 bt 0x6e3a // 6e3a + 6e2a: 5b49 subu r2, r3, r2 + 6e2c: 3a25 cmplti r2, 6 + 6e2e: 0806 bt 0x6e3a // 6e3a + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6e30: a46e st.b r3, (r4, 0xe) + 6e32: 4b68 lsri r3, r3, 8 + 6e34: a46f st.b r3, (r4, 0xf) + //rf_info.roomc_flag = 0x01; + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6e36: 3301 movi r3, 1 + 6e38: a47f st.b r3, (r4, 0x1f) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 6e3a: 8402 ld.b r0, (r4, 0x2) + 6e3c: 8466 ld.b r3, (r4, 0x6) + 6e3e: 4807 lsri r0, r0, 7 + 6e40: 4b47 lsri r2, r3, 7 + 6e42: 640a cmpne r2, r0 + 6e44: 0c1e bf 0x6e80 // 6e80 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 6e46: 317f movi r1, 127 + 6e48: 4047 lsli r2, r0, 7 + 6e4a: 68c4 and r3, r1 + 6e4c: 6cc8 or r3, r2 + 6e4e: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6e50: e3fff77c bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 6e54: 8402 ld.b r0, (r4, 0x2) + 6e56: 4807 lsri r0, r0, 7 + 6e58: e3fff7e6 bsr 0x5e24 // 5e24 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6e5c: 8402 ld.b r0, (r4, 0x2) + 6e5e: 4807 lsri r0, r0, 7 + 6e60: e3fffdc6 bsr 0x69ec // 69ec + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 6e64: 1075 lrw r3, 0x2000005c // 6eb8 + 6e66: 31ff movi r1, 255 + 6e68: 9340 ld.w r2, (r3, 0x0) + 6e6a: 22ff addi r2, 256 + 6e6c: 9260 ld.w r3, (r2, 0x0) + 6e6e: 68c5 andn r3, r1 + 6e70: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 6e72: 8462 ld.b r3, (r4, 0x2) + 6e74: 9220 ld.w r1, (r2, 0x0) + 6e76: 4b67 lsri r3, r3, 7 + 6e78: 6cc4 or r3, r1 + 6e7a: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6e7c: 3301 movi r3, 1 + 6e7e: a47f st.b r3, (r4, 0x1f) + } + + Switch_Report_Task(); + 6e80: e3fffe32 bsr 0x6ae4 // 6ae4 + + } +} + 6e84: 1493 pop r4-r6, r15 + Relay_Mid(); + 6e86: e00000d5 bsr 0x7030 // 7030 + break; + 6e8a: 077c br 0x6d82 // 6d82 + Relay_High(); + 6e8c: e00000c4 bsr 0x7014 // 7014 + break; + 6e90: 0779 br 0x6d82 // 6d82 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 6e92: 330a movi r3, 10 + 6e94: 7c0c mult r0, r3 + 6e96: 0790 br 0x6db6 // 6db6 + 6e98: 200004f9 .long 0x200004f9 + 6e9c: 200004d4 .long 0x200004d4 + 6ea0: 200000b8 .long 0x200000b8 + 6ea4: 00000bb8 .long 0x00000bb8 + 6ea8: 00008aa9 .long 0x00008aa9 + 6eac: 00008acb .long 0x00008acb + 6eb0: 20000438 .long 0x20000438 + 6eb4: 00001388 .long 0x00001388 + 6eb8: 2000005c .long 0x2000005c + 6ebc: 00008abb .long 0x00008abb + 6ec0: 00008adb .long 0x00008adb + +Disassembly of section .text.Debug_Init: + +00006ec4 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 6ec4: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 6ec6: 108d lrw r4, 0x200004f9 // 6ef8 + 6ec8: 320e movi r2, 14 + 6eca: 3100 movi r1, 0 + 6ecc: 6c13 mov r0, r4 + 6ece: e3ffd57d bsr 0x19c8 // 19c8 <__memset_fast> + Debug_Inf.Page = 0x01; + 6ed2: 3301 movi r3, 1 + 6ed4: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 6ed6: 106a lrw r3, 0x20000438 // 6efc + 6ed8: 8340 ld.b r2, (r3, 0x0) + 6eda: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 6edc: 8341 ld.b r2, (r3, 0x1) + 6ede: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 6ee0: 8342 ld.b r2, (r3, 0x2) + 6ee2: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 6ee4: 8344 ld.b r2, (r3, 0x4) + 6ee6: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 6ee8: 8345 ld.b r2, (r3, 0x5) + 6eea: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 6eec: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 6eee: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 6ef0: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 6ef2: a469 st.b r3, (r4, 0x9) +} + 6ef4: 1491 pop r4, r15 + 6ef6: 0000 bkpt + 6ef8: 200004f9 .long 0x200004f9 + 6efc: 20000438 .long 0x20000438 + +Disassembly of section .text.Dev_SaveData: + +00006f00 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 6f00: 14d1 push r4, r15 + 6f02: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 6f04: 1161 lrw r3, 0x200004f9 // 6f88 + 6f06: 1182 lrw r4, 0x20000438 // 6f8c + 6f08: 8343 ld.b r2, (r3, 0x3) + 6f0a: 8420 ld.b r1, (r4, 0x0) + 6f0c: 6486 cmpne r1, r2 + 6f0e: 0819 bt 0x6f40 // 6f40 + 6f10: 8304 ld.b r0, (r3, 0x4) + 6f12: 8421 ld.b r1, (r4, 0x1) + 6f14: 6442 cmpne r0, r1 + 6f16: 0815 bt 0x6f40 // 6f40 + 6f18: 8305 ld.b r0, (r3, 0x5) + 6f1a: 8422 ld.b r1, (r4, 0x2) + 6f1c: 6442 cmpne r0, r1 + 6f1e: 0811 bt 0x6f40 // 6f40 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 6f20: 8306 ld.b r0, (r3, 0x6) + 6f22: 8424 ld.b r1, (r4, 0x4) + 6f24: 6442 cmpne r0, r1 + 6f26: 080d bt 0x6f40 // 6f40 + 6f28: 8307 ld.b r0, (r3, 0x7) + 6f2a: 8425 ld.b r1, (r4, 0x5) + 6f2c: 6442 cmpne r0, r1 + 6f2e: 0809 bt 0x6f40 // 6f40 + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 6f30: 8308 ld.b r0, (r3, 0x8) + 6f32: 8423 ld.b r1, (r4, 0x3) + 6f34: 6442 cmpne r0, r1 + 6f36: 0805 bt 0x6f40 // 6f40 + 6f38: 8309 ld.b r0, (r3, 0x9) + 6f3a: 8426 ld.b r1, (r4, 0x6) + 6f3c: 6442 cmpne r0, r1 + 6f3e: 0c23 bf 0x6f84 // 6f84 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 6f40: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 6f42: 8344 ld.b r2, (r3, 0x4) + 6f44: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 6f46: 8345 ld.b r2, (r3, 0x5) + 6f48: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 6f4a: 8346 ld.b r2, (r3, 0x6) + 6f4c: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 6f4e: 8347 ld.b r2, (r3, 0x7) + 6f50: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 6f52: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 6f54: 100e lrw r0, 0x20000438 // 6f8c + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 6f56: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 6f58: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 6f5a: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 6f5c: e3ffeabc bsr 0x44d4 // 44d4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 6f60: 8425 ld.b r1, (r4, 0x5) + 6f62: b822 st.w r1, (r14, 0x8) + 6f64: 8424 ld.b r1, (r4, 0x4) + 6f66: b821 st.w r1, (r14, 0x4) + 6f68: 8422 ld.b r1, (r4, 0x2) + 6f6a: 8461 ld.b r3, (r4, 0x1) + 6f6c: 8440 ld.b r2, (r4, 0x0) + 6f6e: b820 st.w r1, (r14, 0x0) + 6f70: 3000 movi r0, 0 + 6f72: 1028 lrw r1, 0x8aee // 6f90 + 6f74: e3ffe682 bsr 0x3c78 // 3c78 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 6f78: 8466 ld.b r3, (r4, 0x6) + 6f7a: 8443 ld.b r2, (r4, 0x3) + 6f7c: 1026 lrw r1, 0x8b3a // 6f94 + 6f7e: 3000 movi r0, 0 + 6f80: e3ffe67c bsr 0x3c78 // 3c78 + g_eeprom.temp_select,g_eeprom.langue_select); + } +} + 6f84: 1403 addi r14, r14, 12 + 6f86: 1491 pop r4, r15 + 6f88: 200004f9 .long 0x200004f9 + 6f8c: 20000438 .long 0x20000438 + 6f90: 00008aee .long 0x00008aee + 6f94: 00008b3a .long 0x00008b3a + +Disassembly of section .text.Debug_Task: + +00006f98 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 6f98: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 6f9a: 107b lrw r3, 0x200004f9 // 7004 + 6f9c: 8340 ld.b r2, (r3, 0x0) + 6f9e: 3a41 cmpnei r2, 1 + 6fa0: 0830 bt 0x7000 // 7000 + 6fa2: 832b ld.b r1, (r3, 0xb) + 6fa4: 834a ld.b r2, (r3, 0xa) + 6fa6: 4128 lsli r1, r1, 8 + 6fa8: 6c48 or r1, r2 + 6faa: 834c ld.b r2, (r3, 0xc) + 6fac: 4250 lsli r2, r2, 16 + 6fae: 6c48 or r1, r2 + 6fb0: 834d ld.b r2, (r3, 0xd) + 6fb2: 1096 lrw r4, 0x200000b8 // 7008 + 6fb4: 4258 lsli r2, r2, 24 + 6fb6: 6c84 or r2, r1 + 6fb8: 9400 ld.w r0, (r4, 0x0) + 6fba: 600a subu r0, r2 + 6fbc: 1054 lrw r2, 0x2710 // 700c + 6fbe: 6408 cmphs r2, r0 + 6fc0: 0820 bt 0x7000 // 7000 + 6fc2: 8342 ld.b r2, (r3, 0x2) + 6fc4: 3a48 cmpnei r2, 8 + 6fc6: 0c1d bf 0x7000 // 7000 + { + Debug_Inf.Tick = SysTick_1ms; + 6fc8: 9440 ld.w r2, (r4, 0x0) + 6fca: 310a movi r1, 10 + 6fcc: 604c addu r1, r3 + 6fce: 4a08 lsri r0, r2, 8 + 6fd0: a140 st.b r2, (r1, 0x0) + 6fd2: a101 st.b r0, (r1, 0x1) + 6fd4: 4a10 lsri r0, r2, 16 + 6fd6: 4a58 lsri r2, r2, 24 + 6fd8: a143 st.b r2, (r1, 0x3) + Debug_Inf.State = 0x00; + 6fda: 3200 movi r2, 0 + 6fdc: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 6fde: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 6fe0: a102 st.b r0, (r1, 0x2) + Debug_Inf.Page = 0x01; + 6fe2: a342 st.b r2, (r3, 0x2) + Dev_SaveData(); + 6fe4: e3ffff8e bsr 0x6f00 // 6f00 + + HT1621_Clear(); + 6fe8: e3fff372 bsr 0x56cc // 56cc + //关背光 + Controlled_LCD_Backlight(0x00); + 6fec: 3000 movi r0, 0 + 6fee: e3fff6ad bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6ff2: 3000 movi r0, 0 + 6ff4: e3fff718 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 6ff8: 1026 lrw r1, 0x8b6a // 7010 + 6ffa: 3000 movi r0, 0 + 6ffc: e3ffe63e bsr 0x3c78 // 3c78 + } + 7000: 1491 pop r4, r15 + 7002: 0000 bkpt + 7004: 200004f9 .long 0x200004f9 + 7008: 200000b8 .long 0x200000b8 + 700c: 00002710 .long 0x00002710 + 7010: 00008b6a .long 0x00008b6a + +Disassembly of section .text.Relay_High: + +00007014 : + +} + + +void Relay_High(void) +{ + 7014: 14d0 push r15 + RLY3_HIGH_OPEN; + 7016: 3102 movi r1, 2 + 7018: 3014 movi r0, 20 + 701a: e3fff269 bsr 0x54ec // 54ec + RLY4_MID_CLOSE; + 701e: 3101 movi r1, 1 + 7020: 3015 movi r0, 21 + 7022: e3fff265 bsr 0x54ec // 54ec + RLY5_LOW_CLOSE; + 7026: 3101 movi r1, 1 + 7028: 3016 movi r0, 22 + 702a: e3fff261 bsr 0x54ec // 54ec +} + 702e: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +00007030 : + + +void Relay_Mid(void) +{ + 7030: 14d0 push r15 + RLY3_HIGH_CLOSE; + 7032: 3101 movi r1, 1 + 7034: 3014 movi r0, 20 + 7036: e3fff25b bsr 0x54ec // 54ec + RLY4_MID_OPEN; + 703a: 3102 movi r1, 2 + 703c: 3015 movi r0, 21 + 703e: e3fff257 bsr 0x54ec // 54ec + RLY5_LOW_CLOSE; + 7042: 3101 movi r1, 1 + 7044: 3016 movi r0, 22 + 7046: e3fff253 bsr 0x54ec // 54ec +} + 704a: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +0000704c : + + + +void Relay_Low(void) +{ + 704c: 14d0 push r15 + RLY3_HIGH_CLOSE; + 704e: 3101 movi r1, 1 + 7050: 3014 movi r0, 20 + 7052: e3fff24d bsr 0x54ec // 54ec + RLY4_MID_CLOSE; + 7056: 3101 movi r1, 1 + 7058: 3015 movi r0, 21 + 705a: e3fff249 bsr 0x54ec // 54ec + RLY5_LOW_OPEN; + 705e: 3102 movi r1, 2 + 7060: 3016 movi r0, 22 + 7062: e3fff245 bsr 0x54ec // 54ec +} + 7066: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +00007068 : + +void Relay_Stop(void) +{ + 7068: 14d0 push r15 + RLY3_HIGH_CLOSE; + 706a: 3101 movi r1, 1 + 706c: 3014 movi r0, 20 + 706e: e3fff23f bsr 0x54ec // 54ec + RLY4_MID_CLOSE; + 7072: 3101 movi r1, 1 + 7074: 3015 movi r0, 21 + 7076: e3fff23b bsr 0x54ec // 54ec + RLY5_LOW_CLOSE; + 707a: 3101 movi r1, 1 + 707c: 3016 movi r0, 22 + 707e: e3fff237 bsr 0x54ec // 54ec +} + 7082: 1490 pop r15 + +Disassembly of section .text.NetCRC16: + +00007084 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 7084: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7086: 3902 cmphsi r1, 3 + 7088: 0c1f bf 0x70c6 // 70c6 + U16_T alen = len-2; //CRC16??????? + 708a: 2901 subi r1, 2 + 708c: 7445 zexth r1, r1 + 708e: 6d43 mov r5, r0 + 7090: 3200 movi r2, 0 + 7092: 106e lrw r3, 0xffff // 70c8 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 709c: 6d8f mov r6, r3 + 709e: 699c and r6, r7 + 70a0: 3e40 cmpnei r6, 0 + 70a2: 4b61 lsri r3, r3, 1 + 70a4: 0c04 bf 0x70ac // 70ac + 70a6: 10ca lrw r6, 0xffffa001 // 70cc + 70a8: 6cd9 xor r3, r6 + 70aa: 74cd zexth r3, r3 + 70ac: 2c00 subi r4, 1 + 70ae: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 70b0: 3c40 cmpnei r4, 0 + 70b2: 0bf5 bt 0x709c // 709c + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 70be: 6040 addu r1, r0 + 70c0: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 70c2: 4b68 lsri r3, r3, 8 + 70c4: a161 st.b r3, (r1, 0x1) +} + 70c6: 1484 pop r4-r7 + 70c8: 0000ffff .long 0x0000ffff + 70cc: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +000070d0 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 70d0: 14c3 push r4-r6 + 70d2: 6cc3 mov r3, r0 + 70d4: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 70d6: 10ac lrw r5, 0xffffa001 // 7104 + xda = 0xFFFF ; + 70d8: 100c lrw r0, 0xffff // 7108 + for (i = 0; i < len; i++) + 70da: 644e cmpne r3, r1 + 70dc: 0802 bt 0x70e0 // 70e0 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 70de: 1483 pop r4-r6 + xda ^= aStr[i] ; + 70e0: 8340 ld.b r2, (r3, 0x0) + 70e2: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 70e4: 3601 movi r6, 1 + xda ^= aStr[i] ; + 70e6: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 70e8: 6d03 mov r4, r0 + 70ea: 6918 and r4, r6 + 70ec: 3c40 cmpnei r4, 0 + 70ee: 4801 lsri r0, r0, 1 + 70f0: 0c03 bf 0x70f6 // 70f6 + 70f2: 6c15 xor r0, r5 + 70f4: 7401 zexth r0, r0 + 70f6: 2a00 subi r2, 1 + 70f8: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 70fa: 3a40 cmpnei r2, 0 + 70fc: 0bf6 bt 0x70e8 // 70e8 + 70fe: 2300 addi r3, 1 + 7100: 07ed br 0x70da // 70da + 7102: 0000 bkpt + 7104: ffffa001 .long 0xffffa001 + 7108: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +0000710c : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 710c: 6cc3 mov r3, r0 + 710e: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 7110: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 7112: 644e cmpne r3, r1 + 7114: 0802 bt 0x7118 // 7118 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7116: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7118: 8340 ld.b r2, (r3, 0x0) + 711a: 6008 addu r0, r2 + 711c: 7400 zextb r0, r0 + 711e: 2300 addi r3, 1 + 7120: 07f9 br 0x7112 // 7112 + +Disassembly of section .text.Rs485AskCycleSend: + +00007124 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 7124: 14d0 push r15 + 7126: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7128: 3355 movi r3, 85 + 712a: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 712e: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 7132: 3300 movi r3, 0 + 7134: 2b11 subi r3, 18 + 7136: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 713a: 3315 movi r3, 21 + 713c: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 7140: 3303 movi r3, 3 + 7142: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 7146: 1171 lrw r3, 0x20000438 // 7208 + 7148: 8360 ld.b r3, (r3, 0x0) + 714a: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 714e: 3300 movi r3, 0 + 7150: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7154: 116e lrw r3, 0x200004d4 // 720c + 7156: 8342 ld.b r2, (r3, 0x2) + 7158: 4a27 lsri r1, r2, 7 + 715a: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 715e: 3100 movi r1, 0 + 7160: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 7164: 3170 movi r1, 112 + 7166: 6884 and r2, r1 + 7168: 3a40 cmpnei r2, 0 + 716a: 0841 bt 0x71ec // 71ec + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 716c: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 716e: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7172: 8341 ld.b r2, (r3, 0x1) + 7174: 3a40 cmpnei r2, 0 + 7176: 0802 bt 0x717a // 717a + 7178: 3220 movi r2, 32 + 717a: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 717e: 3200 movi r2, 0 + 7180: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7184: 8342 ld.b r2, (r3, 0x2) + 7186: 425c lsli r2, r2, 28 + 7188: 4a5d lsri r2, r2, 29 + 718a: 3104 movi r1, 4 + 718c: 604a subu r1, r2 + 718e: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 7190: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7192: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 7196: 0c35 bf 0x7200 // 7200 + 7198: 3a03 cmphsi r2, 4 + 719a: 0803 bt 0x71a0 // 71a0 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动 + 719c: dc2e000d st.b r1, (r14, 0xd) + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 71a0: 3200 movi r2, 0 + 71a2: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 71a6: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 71aa: 8342 ld.b r2, (r3, 0x2) + 71ac: 425f lsli r2, r2, 31 + 71ae: 4a5f lsri r2, r2, 31 + 71b0: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 71b2: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 71b4: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 71b8: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 71ba: 3200 movi r2, 0 + 71bc: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 71c0: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 71c4: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 71c8: 0802 bt 0x71cc // 71cc + 71ca: 3320 movi r3, 32 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 71cc: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 71ce: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 71d2: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 71d4: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 71d6: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 71d8: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 71dc: e3ffff54 bsr 0x7084 // 7084 + + MCU485_SendData(SendData, 24); + 71e0: 3118 movi r1, 24 + 71e2: 6c3b mov r0, r14 + 71e4: e3ffe506 bsr 0x3bf0 // 3bf0 + +} + 71e8: 1406 addi r14, r14, 24 + 71ea: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 71ec: 3120 movi r1, 32 + 71ee: 644a cmpne r2, r1 + 71f0: 0803 bt 0x71f6 // 71f6 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 71f2: 3202 movi r2, 2 + 71f4: 07bd br 0x716e // 716e + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 71f6: 3140 movi r1, 64 + 71f8: 644a cmpne r2, r1 + 71fa: 0bbc bt 0x7172 // 7172 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 71fc: 3203 movi r2, 3 + 71fe: 07b8 br 0x716e // 716e + SendData[13] = 0x00; // + 7200: 3200 movi r2, 0 + 7202: dc4e000d st.b r2, (r14, 0xd) + break; + 7206: 07cd br 0x71a0 // 71a0 + 7208: 20000438 .long 0x20000438 + 720c: 200004d4 .long 0x200004d4 + +Disassembly of section .text.Rs485AskCtrlSend: + +00007210 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 7210: 14d0 push r15 + 7212: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 7214: 3355 movi r3, 85 + 7216: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 721a: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 721e: 3300 movi r3, 0 + 7220: 2b11 subi r3, 18 + 7222: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 7226: 3307 movi r3, 7 + 7228: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 722c: 3303 movi r3, 3 + 722e: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7232: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 7234: 106a lrw r3, 0x20000438 // 725c + 7236: 8360 ld.b r3, (r3, 0x0) + 7238: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 723c: 8066 ld.b r3, (r0, 0x6) + 723e: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 7242: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7244: 3003 movi r0, 3 + 7246: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 7248: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 724c: e3ffff1c bsr 0x7084 // 7084 + + MCU485_SendData(SendData, 10); + 7250: 310a movi r1, 10 + 7252: 6c3b mov r0, r14 + 7254: e3ffe4ce bsr 0x3bf0 // 3bf0 + +} + 7258: 1403 addi r14, r14, 12 + 725a: 1490 pop r15 + 725c: 20000438 .long 0x20000438 + +Disassembly of section .text.Rs485AskReadSend: + +00007260 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 7260: 14d0 push r15 + 7262: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 7264: 3355 movi r3, 85 + 7266: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 726a: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 726e: 3300 movi r3, 0 + 7270: 2b11 subi r3, 18 + 7272: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x09; //长度 + 7276: 3309 movi r3, 9 + 7278: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 727c: 3303 movi r3, 3 + 727e: dc6e0004 st.b r3, (r14, 0x4) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7282: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 7284: 106d lrw r3, 0x20000438 // 72b8 + 7286: 8340 ld.b r2, (r3, 0x0) + 7288: dc4e0005 st.b r2, (r14, 0x5) + SendData[6] = Recdata[6]; + 728c: 8046 ld.b r2, (r0, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 728e: 3003 movi r0, 3 + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 7290: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + 7292: dc4e0006 st.b r2, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7296: 6038 addu r0, r14 + SendData[7] = Project_FW_Version; + 7298: 3201 movi r2, 1 + 729a: dc4e0007 st.b r2, (r14, 0x7) + SendData[8] = Project_HW_Version; + 729e: dc4e0008 st.b r2, (r14, 0x8) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 72a2: dc6e0009 st.b r3, (r14, 0x9) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 72a6: e3fffeef bsr 0x7084 // 7084 + + MCU485_SendData(SendData, 12); + 72aa: 310c movi r1, 12 + 72ac: 6c3b mov r0, r14 + 72ae: e3ffe4a1 bsr 0x3bf0 // 3bf0 + +} + 72b2: 1403 addi r14, r14, 12 + 72b4: 1490 pop r15 + 72b6: 0000 bkpt + 72b8: 20000438 .long 0x20000438 + +Disassembly of section .text.Temp_Rec_Analysis: + +000072bc : + + MCU485_SendData(Recdata, Lens); +} + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 72bc: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 72be: 3300 movi r3, 0 + 72c0: 2b08 subi r3, 9 + 72c2: 60c4 addu r3, r1 + 72c4: 74cd zexth r3, r3 + 72c6: 3b01 cmphsi r3, 2 +{ + 72c8: 6d03 mov r4, r0 + 72ca: 6d87 mov r6, r1 + if(((0x09 != Len) && (0x0A != Len)) + 72cc: 08c2 bt 0x7450 // 7450 + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 72ce: 8060 ld.b r3, (r0, 0x0) + 72d0: 3255 movi r2, 85 + 72d2: 648e cmpne r3, r2 + 72d4: 08be bt 0x7450 // 7450 + 72d6: 8041 ld.b r2, (r0, 0x1) + 72d8: 64ca cmpne r2, r3 + 72da: 08bb bt 0x7450 // 7450 + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 72dc: 8042 ld.b r2, (r0, 0x2) + 72de: 33ee movi r3, 238 + 72e0: 64ca cmpne r2, r3 + 72e2: 08b7 bt 0x7450 // 7450 + 72e4: 8023 ld.b r1, (r0, 0x3) + 72e6: 596a addi r3, r1, 3 + 72e8: 658e cmpne r3, r6 + 72ea: 08b3 bt 0x7450 // 7450 + || (Tem_Type != RecData[4]) + 72ec: 8064 ld.b r3, (r0, 0x4) + 72ee: 3b43 cmpnei r3, 3 + 72f0: 08b0 bt 0x7450 // 7450 + || (g_eeprom.dev_addr != RecData[5]) + 72f2: 12b9 lrw r5, 0x20000438 // 7454 + 72f4: 8540 ld.b r2, (r5, 0x0) + 72f6: 8065 ld.b r3, (r0, 0x5) + 72f8: 64ca cmpne r2, r3 + 72fa: 08ab bt 0x7450 // 7450 + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 72fc: 2901 subi r1, 2 + 72fe: 7445 zexth r1, r1 + 7300: 2002 addi r0, 3 + 7302: e3fffee7 bsr 0x70d0 // 70d0 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 7306: 5c58 addu r2, r4, r6 + 7308: 5a63 subi r3, r2, 1 + 730a: 8360 ld.b r3, (r3, 0x0) + 730c: 2a01 subi r2, 2 + 730e: 4368 lsli r3, r3, 8 + 7310: 8240 ld.b r2, (r2, 0x0) + 7312: 60c8 addu r3, r2 + 7314: 64c2 cmpne r0, r3 + 7316: 089d bt 0x7450 // 7450 + { + switch(RecData[6]) + 7318: 8406 ld.b r0, (r4, 0x6) + 731a: 2800 subi r0, 1 + 731c: 3811 cmphsi r0, 18 + 731e: 0818 bt 0x734e // 734e + 7320: e3ffccee bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7324: 25252525 .long 0x25252525 + 7328: 15151515 .long 0x15151515 + 732c: 15150915 .long 0x15150915 + 7330: 29151515 .long 0x29151515 + 7334: 402d .short 0x402d + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 7336: 8567 ld.b r3, (r5, 0x7) + 7338: 3b42 cmpnei r3, 2 + 733a: 0813 bt 0x7360 // 7360 + { + TempCtrl.SendCnt = 0x00; + 733c: 1267 lrw r3, 0x200004d4 // 7458 + 733e: 3220 movi r2, 32 + 7340: 608c addu r2, r3 + 7342: 3100 movi r1, 0 + 7344: a220 st.b r1, (r2, 0x0) + TempCtrl.ASend_Flag = 0x00; + 7346: 3200 movi r2, 0 + 7348: a35f st.b r2, (r3, 0x1f) + g_uart[UART_2].BusState = 0x00; + 734a: 1265 lrw r3, 0x200003d5 // 745c + 734c: a340 st.b r2, (r3, 0x0) + EEPROM_WriteParaInfo(&g_eeprom); + } + Rs485_DevPort_ACK(RecData,Len); + break; + } + switch(RecData[6]) + 734e: 8406 ld.b r0, (r4, 0x6) + 7350: 2800 subi r0, 1 + 7352: 3803 cmphsi r0, 4 + 7354: 0808 bt 0x7364 // 7364 + 7356: 8467 ld.b r3, (r4, 0x7) + 7358: e3ffccd2 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 735c: 675b4331 .long 0x675b4331 + else if(g_eeprom.dev_port == POLLING_PORT) + 7360: 3b41 cmpnei r3, 1 + 7362: 0c03 bf 0x7368 // 7368 + break; + } + break; + } + + return ret; + 7364: 3000 movi r0, 0 + 7366: 0476 br 0x7452 // 7452 + Rs485AskCycleSend(); + 7368: e3fffede bsr 0x7124 // 7124 + 736c: 07f1 br 0x734e // 734e + Rs485AskCtrlSend(RecData); + 736e: 6c13 mov r0, r4 + 7370: e3ffff50 bsr 0x7210 // 7210 + 7374: 07ed br 0x734e // 734e + Rs485AskReadSend(RecData); //版本号查询 + 7376: 6c13 mov r0, r4 + 7378: e3ffff74 bsr 0x7260 // 7260 + 737c: 07e9 br 0x734e // 734e + Rs485AskCtrlSend(RecData); + 737e: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7380: 11b6 lrw r5, 0x200004d4 // 7458 + Rs485AskCtrlSend(RecData); + 7382: e3ffff47 bsr 0x7210 // 7210 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7386: 855a ld.b r2, (r5, 0x1a) + 7388: 1136 lrw r1, 0x8b75 // 7460 + 738a: 3000 movi r0, 0 + 738c: e3ffe476 bsr 0x3c78 // 3c78 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 7390: 8467 ld.b r3, (r4, 0x7) + 7392: 855a ld.b r2, (r5, 0x1a) + 7394: 64ca cmpne r2, r3 + 7396: 0fdc bf 0x734e // 734e + if(TempCtrl.CardEn == 0x00) + 7398: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 739a: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 739c: 0bd9 bt 0x734e // 734e + TempCtrl.CardState = 0x01; + 739e: 3301 movi r3, 1 + 73a0: a578 st.b r3, (r5, 0x18) + 73a2: 07d6 br 0x734e // 734e + if(RecData[7] != g_eeprom.dev_port) + 73a4: 8467 ld.b r3, (r4, 0x7) + 73a6: 8547 ld.b r2, (r5, 0x7) + 73a8: 64ca cmpne r2, r3 + 73aa: 0c05 bf 0x73b4 // 73b4 + EEPROM_WriteParaInfo(&g_eeprom); + 73ac: 110a lrw r0, 0x20000438 // 7454 + g_eeprom.dev_port = RecData[7]; + 73ae: a567 st.b r3, (r5, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 73b0: e3ffe892 bsr 0x44d4 // 44d4 + MCU485_SendData(Recdata, Lens); + 73b4: 6c5b mov r1, r6 + 73b6: 6c13 mov r0, r4 + 73b8: e3ffe41c bsr 0x3bf0 // 3bf0 + 73bc: 07c9 br 0x734e // 734e + switch(RecData[7]) + 73be: 74cc zextb r3, r3 + 73c0: 3b40 cmpnei r3, 0 + 73c2: 0c0a bf 0x73d6 // 73d6 + 73c4: 3b41 cmpnei r3, 1 + 73c6: 0bcf bt 0x7364 // 7364 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 73c8: 1124 lrw r1, 0x200004d4 // 7458 + 73ca: 3200 movi r2, 0 + 73cc: 8162 ld.b r3, (r1, 0x2) + 73ce: 2a7f subi r2, 128 + 73d0: 6cc8 or r3, r2 + 73d2: a162 st.b r3, (r1, 0x2) + 73d4: 07c8 br 0x7364 // 7364 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 73d6: 1141 lrw r2, 0x200004d4 // 7458 + 73d8: 8262 ld.b r3, (r2, 0x2) + 73da: 317f movi r1, 127 + 73dc: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 73de: a262 st.b r3, (r2, 0x2) + 73e0: 07c2 br 0x7364 // 7364 + switch(RecData[7]) // + 73e2: 74cc zextb r3, r3 + 73e4: 3b42 cmpnei r3, 2 + 73e6: 0c0a bf 0x73fa // 73fa + 73e8: 3b43 cmpnei r3, 3 + 73ea: 0c0e bf 0x7406 // 7406 + 73ec: 3b41 cmpnei r3, 1 + 73ee: 0bbb bt 0x7364 // 7364 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 73f0: 105a lrw r2, 0x200004d4 // 7458 + 73f2: 8262 ld.b r3, (r2, 0x2) + 73f4: 3170 movi r1, 112 + 73f6: 68c5 andn r3, r1 + 73f8: 07f3 br 0x73de // 73de + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 73fa: 1058 lrw r2, 0x200004d4 // 7458 + 73fc: 8262 ld.b r3, (r2, 0x2) + 73fe: 3170 movi r1, 112 + 7400: 68c5 andn r3, r1 + 7402: 3ba5 bseti r3, 5 + 7404: 07ed br 0x73de // 73de + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 7406: 1055 lrw r2, 0x200004d4 // 7458 + 7408: 8262 ld.b r3, (r2, 0x2) + 740a: 3170 movi r1, 112 + 740c: 68c5 andn r3, r1 + 740e: 3ba6 bseti r3, 6 + 7410: 07e7 br 0x73de // 73de + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] <= TEM_MAX_SET)) //在指定温度范围内 + 7412: 3200 movi r2, 0 + 7414: 74cc zextb r3, r3 + 7416: 2a0f subi r2, 16 + 7418: 608c addu r2, r3 + 741a: 7488 zextb r2, r2 + 741c: 3a10 cmphsi r2, 17 + 741e: 0ba3 bt 0x7364 // 7364 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 7420: 301f movi r0, 31 + 7422: 68c0 and r3, r0 + 7424: 104d lrw r2, 0x200004d4 // 7458 + 7426: a261 st.b r3, (r2, 0x1) + 7428: 079e br 0x7364 // 7364 + switch(RecData[7]) //风速 + 742a: 740c zextb r0, r3 + 742c: 106b lrw r3, 0x200004d4 // 7458 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 742e: 8342 ld.b r2, (r3, 0x2) + 7430: 310e movi r1, 14 + switch(RecData[7]) //风速 + 7432: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7434: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 7436: 080b bt 0x744c // 744c + 7438: e3ffcc62 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 743c: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 7440: 3aa1 bseti r2, 1 + 7442: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7444: a342 st.b r2, (r3, 0x2) + 7446: 078f br 0x7364 // 7364 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 7448: 3aa2 bseti r2, 2 + 744a: 07fd br 0x7444 // 7444 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 744c: 3aa1 bseti r2, 1 + 744e: 07fb br 0x7444 // 7444 + return ret = 0x01; + 7450: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 7452: 1493 pop r4-r6, r15 + 7454: 20000438 .long 0x20000438 + 7458: 200004d4 .long 0x200004d4 + 745c: 200003d5 .long 0x200003d5 + 7460: 00008b75 .long 0x00008b75 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00007464 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 7464: 14d2 push r4-r5, r15 + 7466: 6d03 mov r4, r0 + 7468: 6d47 mov r5, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 746a: e3ffff29 bsr 0x72bc // 72bc + 746e: 3840 cmpnei r0, 0 + 7470: 0803 bt 0x7476 // 7476 + { + return ret = 1; + } + } + + return ret; + 7472: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7474: 0409 br 0x7486 // 7486 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 7476: 8440 ld.b r2, (r4, 0x0) + 7478: 33ff movi r3, 255 + 747a: 64ca cmpne r2, r3 + 747c: 0c06 bf 0x7488 // 7488 + 747e: 8461 ld.b r3, (r4, 0x1) + 7480: 3b48 cmpnei r3, 8 + 7482: 0c03 bf 0x7488 // 7488 + return ret = 1; + 7484: 3001 movi r0, 1 + 7486: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 7488: 1125 lrw r1, 0x8b84 // 751c + 748a: 3000 movi r0, 0 + 748c: e3ffe3f6 bsr 0x3c78 // 3c78 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 7490: 3d45 cmpnei r5, 5 + 7492: 0814 bt 0x74ba // 74ba + 7494: 3104 movi r1, 4 + 7496: 6c13 mov r0, r4 + 7498: e3fffe3a bsr 0x710c // 710c + 749c: 8464 ld.b r3, (r4, 0x4) + 749e: 640e cmpne r3, r0 + 74a0: 0bf2 bt 0x7484 // 7484 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 74a2: 1160 lrw r3, 0x200004d4 // 7520 + 74a4: 8442 ld.b r2, (r4, 0x2) + 74a6: 8338 ld.b r1, (r3, 0x18) + 74a8: 6486 cmpne r1, r2 + 74aa: 0fe4 bf 0x7472 // 7472 + 74ac: 833a ld.b r1, (r3, 0x1a) + 74ae: 3941 cmpnei r1, 1 + 74b0: 0be1 bt 0x7472 // 7472 + TempCtrl.CardState = RecData[2]; + 74b2: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 74b4: 3201 movi r2, 1 + 74b6: a359 st.b r2, (r3, 0x19) + 74b8: 07dd br 0x7472 // 7472 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 74ba: 3d09 cmphsi r5, 10 + 74bc: 0fe4 bf 0x7484 // 7484 + 74be: 5d27 subi r1, r5, 2 + 74c0: 7445 zexth r1, r1 + 74c2: 6150 addu r5, r4 + 74c4: 6c13 mov r0, r4 + 74c6: e3fffe05 bsr 0x70d0 // 70d0 + 74ca: 5d63 subi r3, r5, 1 + 74cc: 8360 ld.b r3, (r3, 0x0) + 74ce: 2d01 subi r5, 2 + 74d0: 4368 lsli r3, r3, 8 + 74d2: 8540 ld.b r2, (r5, 0x0) + 74d4: 60c8 addu r3, r2 + 74d6: 64c2 cmpne r0, r3 + 74d8: 0bd6 bt 0x7484 // 7484 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 74da: 1072 lrw r3, 0x200004d4 // 7520 + 74dc: 8443 ld.b r2, (r4, 0x3) + 74de: 8338 ld.b r1, (r3, 0x18) + 74e0: 6486 cmpne r1, r2 + 74e2: 0c07 bf 0x74f0 // 74f0 + 74e4: 833a ld.b r1, (r3, 0x1a) + 74e6: 3941 cmpnei r1, 1 + 74e8: 0804 bt 0x74f0 // 74f0 + TempCtrl.CardState = RecData[3]; + 74ea: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 74ec: 3201 movi r2, 1 + 74ee: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 74f0: 8447 ld.b r2, (r4, 0x7) + 74f2: 833b ld.b r1, (r3, 0x1b) + 74f4: 6486 cmpne r1, r2 + 74f6: 0c0d bf 0x7510 // 7510 + TempCtrl.SceneNo = RecData[7]; + 74f8: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 74fa: 104b lrw r2, 0x200000b8 // 7524 + 74fc: 9240 ld.w r2, (r2, 0x0) + 74fe: 4a28 lsri r1, r2, 8 + 7500: a354 st.b r2, (r3, 0x14) + 7502: a335 st.b r1, (r3, 0x15) + 7504: 4a30 lsri r1, r2, 16 + 7506: 4a58 lsri r2, r2, 24 + 7508: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 750a: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 750c: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 750e: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7510: 835b ld.b r2, (r3, 0x1b) + 7512: 1026 lrw r1, 0x8b96 // 7528 + 7514: 3000 movi r0, 0 + 7516: e3ffe3b1 bsr 0x3c78 // 3c78 + 751a: 07ac br 0x7472 // 7472 + 751c: 00008b84 .long 0x00008b84 + 7520: 200004d4 .long 0x200004d4 + 7524: 200000b8 .long 0x200000b8 + 7528: 00008b96 .long 0x00008b96 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +0000752c : + 752c: 1063 lrw r3, 0x20000058 // 7538 + 752e: 9340 ld.w r2, (r3, 0x0) + 7530: 926b ld.w r3, (r2, 0x2c) + 7532: 6c0c or r0, r3 + 7534: b20b st.w r0, (r2, 0x2c) + 7536: 783c jmp r15 + 7538: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +0000753c : + 753c: 14c1 push r4 + 753e: 1069 lrw r3, 0x20000058 // 7560 + 7540: 3840 cmpnei r0, 0 + 7542: 9380 ld.w r4, (r3, 0x0) + 7544: 9400 ld.w r0, (r4, 0x0) + 7546: 0c0b bf 0x755c // 755c + 7548: 38a0 bseti r0, 0 + 754a: b400 st.w r0, (r4, 0x0) + 754c: 9360 ld.w r3, (r3, 0x0) + 754e: 4248 lsli r2, r2, 8 + 7550: 4122 lsli r1, r1, 2 + 7552: 9300 ld.w r0, (r3, 0x0) + 7554: 6c48 or r1, r2 + 7556: 6c40 or r1, r0 + 7558: b320 st.w r1, (r3, 0x0) + 755a: 1481 pop r4 + 755c: 3880 bclri r0, 0 + 755e: 07f6 br 0x754a // 754a + 7560: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +00007564 : + 7564: 14c4 push r4-r7 + 7566: 1429 subi r14, r14, 36 + 7568: b840 st.w r2, (r14, 0x0) + 756a: 984d ld.w r2, (r14, 0x34) + 756c: b841 st.w r2, (r14, 0x4) + 756e: 984e ld.w r2, (r14, 0x38) + 7570: b842 st.w r2, (r14, 0x8) + 7572: 984f ld.w r2, (r14, 0x3c) + 7574: b843 st.w r2, (r14, 0xc) + 7576: 9850 ld.w r2, (r14, 0x40) + 7578: 9895 ld.w r4, (r14, 0x54) + 757a: b844 st.w r2, (r14, 0x10) + 757c: 9853 ld.w r2, (r14, 0x4c) + 757e: b845 st.w r2, (r14, 0x14) + 7580: b887 st.w r4, (r14, 0x1c) + 7582: 9854 ld.w r2, (r14, 0x50) + 7584: 1c11 addi r4, r14, 68 + 7586: b846 st.w r2, (r14, 0x18) + 7588: 8c80 ld.h r4, (r4, 0x0) + 758a: 1a15 addi r2, r14, 84 + 758c: 1d12 addi r5, r14, 72 + 758e: 8244 ld.b r2, (r2, 0x4) + 7590: 3c40 cmpnei r4, 0 + 7592: 8dc0 ld.h r6, (r5, 0x0) + 7594: b848 st.w r2, (r14, 0x20) + 7596: 0813 bt 0x75bc // 75bc + 7598: 105f lrw r2, 0x2000004c // 7614 + 759a: 35f0 movi r5, 240 + 759c: 92e0 ld.w r7, (r2, 0x0) + 759e: 9740 ld.w r2, (r7, 0x0) + 75a0: 45a4 lsli r5, r5, 4 + 75a2: 6895 andn r2, r5 + 75a4: 3aab bseti r2, 11 + 75a6: b740 st.w r2, (r7, 0x0) + 75a8: 3502 movi r5, 2 + 75aa: 105c lrw r2, 0x20000050 // 7618 + 75ac: 3e41 cmpnei r6, 1 + 75ae: 9240 ld.w r2, (r2, 0x0) + 75b0: b2a0 st.w r5, (r2, 0x0) + 75b2: 0828 bt 0x7602 // 7602 + 75b4: 92a4 ld.w r5, (r2, 0x10) + 75b6: 3db8 bseti r5, 24 + 75b8: 3db9 bseti r5, 25 + 75ba: b2a4 st.w r5, (r2, 0x10) + 75bc: 1058 lrw r2, 0x20000058 // 761c + 75be: 448d lsli r4, r4, 13 + 75c0: 92a0 ld.w r5, (r2, 0x0) + 75c2: 9541 ld.w r2, (r5, 0x4) + 75c4: 3200 movi r2, 0 + 75c6: b541 st.w r2, (r5, 0x4) + 75c8: 9541 ld.w r2, (r5, 0x4) + 75ca: 98c7 ld.w r6, (r14, 0x1c) + 75cc: 6c98 or r2, r6 + 75ce: 98c6 ld.w r6, (r14, 0x18) + 75d0: 6c98 or r2, r6 + 75d2: 98c5 ld.w r6, (r14, 0x14) + 75d4: 6c98 or r2, r6 + 75d6: 98c8 ld.w r6, (r14, 0x20) + 75d8: 46d8 lsli r6, r6, 24 + 75da: 6c98 or r2, r6 + 75dc: 98c4 ld.w r6, (r14, 0x10) + 75de: 6c98 or r2, r6 + 75e0: 98c3 ld.w r6, (r14, 0xc) + 75e2: 6c98 or r2, r6 + 75e4: 98c2 ld.w r6, (r14, 0x8) + 75e6: 6c98 or r2, r6 + 75e8: 98c1 ld.w r6, (r14, 0x4) + 75ea: 6c98 or r2, r6 + 75ec: 6c48 or r1, r2 + 75ee: 9840 ld.w r2, (r14, 0x0) + 75f0: 6c04 or r0, r1 + 75f2: 4242 lsli r2, r2, 2 + 75f4: 6c08 or r0, r2 + 75f6: 6d00 or r4, r0 + 75f8: 4367 lsli r3, r3, 7 + 75fa: 6cd0 or r3, r4 + 75fc: b561 st.w r3, (r5, 0x4) + 75fe: 1409 addi r14, r14, 36 + 7600: 1484 pop r4-r7 + 7602: 3e40 cmpnei r6, 0 + 7604: 0bdc bt 0x75bc // 75bc + 7606: 9264 ld.w r3, (r2, 0x10) + 7608: 3b98 bclri r3, 24 + 760a: 3b99 bclri r3, 25 + 760c: 3bb8 bseti r3, 24 + 760e: b264 st.w r3, (r2, 0x10) + 7610: 3300 movi r3, 0 + 7612: 07d5 br 0x75bc // 75bc + 7614: 2000004c .long 0x2000004c + 7618: 20000050 .long 0x20000050 + 761c: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00007620 : + 7620: 14d4 push r4-r7, r15 + 7622: 1422 subi r14, r14, 8 + 7624: 1269 lrw r3, 0x2000004c // 7748 + 7626: 31f0 movi r1, 240 + 7628: 9360 ld.w r3, (r3, 0x0) + 762a: 9340 ld.w r2, (r3, 0x0) + 762c: 4130 lsli r1, r1, 16 + 762e: 6885 andn r2, r1 + 7630: 3ab4 bseti r2, 20 + 7632: 3ab7 bseti r2, 23 + 7634: b340 st.w r2, (r3, 0x0) + 7636: 35f0 movi r5, 240 + 7638: 1245 lrw r2, 0x200001f8 // 774c + 763a: 36f0 movi r6, 240 + 763c: 9240 ld.w r2, (r2, 0x0) + 763e: b841 st.w r2, (r14, 0x4) + 7640: 3400 movi r4, 0 + 7642: 1244 lrw r2, 0x20000048 // 7750 + 7644: 45ac lsli r5, r5, 12 + 7646: 9240 ld.w r2, (r2, 0x0) + 7648: b820 st.w r1, (r14, 0x0) + 764a: 46c8 lsli r6, r6, 8 + 764c: 3701 movi r7, 1 + 764e: 71d0 lsl r7, r4 + 7650: 9821 ld.w r1, (r14, 0x4) + 7652: 69c4 and r7, r1 + 7654: 3f40 cmpnei r7, 0 + 7656: 7410 zextb r0, r4 + 7658: 0c1b bf 0x768e // 768e + 765a: 2800 subi r0, 1 + 765c: 380f cmphsi r0, 16 + 765e: 080b bt 0x7674 // 7674 + 7660: e3ffcb4e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7664: 27201a0f .long 0x27201a0f + 7668: 3d38312c .long 0x3d38312c + 766c: 56514a44 .long 0x56514a44 + 7670: 6c67615b .long 0x6c67615b + 7674: 9200 ld.w r0, (r2, 0x0) + 7676: 37f0 movi r7, 240 + 7678: 681d andn r0, r7 + 767a: 38a4 bseti r0, 4 + 767c: 38a7 bseti r0, 7 + 767e: b200 st.w r0, (r2, 0x0) + 7680: 0407 br 0x768e // 768e + 7682: 9300 ld.w r0, (r3, 0x0) + 7684: 370f movi r7, 15 + 7686: 681d andn r0, r7 + 7688: 38a0 bseti r0, 0 + 768a: 38a3 bseti r0, 3 + 768c: b300 st.w r0, (r3, 0x0) + 768e: 2400 addi r4, 1 + 7690: 3c51 cmpnei r4, 17 + 7692: 0bdd bt 0x764c // 764c + 7694: 1402 addi r14, r14, 8 + 7696: 1494 pop r4-r7, r15 + 7698: 9300 ld.w r0, (r3, 0x0) + 769a: 37f0 movi r7, 240 + 769c: 681d andn r0, r7 + 769e: 38a4 bseti r0, 4 + 76a0: 38a7 bseti r0, 7 + 76a2: 07f5 br 0x768c // 768c + 76a4: 37f0 movi r7, 240 + 76a6: 9300 ld.w r0, (r3, 0x0) + 76a8: 47e4 lsli r7, r7, 4 + 76aa: 681d andn r0, r7 + 76ac: 38a8 bseti r0, 8 + 76ae: 38ab bseti r0, 11 + 76b0: 07ee br 0x768c // 768c + 76b2: 9300 ld.w r0, (r3, 0x0) + 76b4: 6819 andn r0, r6 + 76b6: 38ac bseti r0, 12 + 76b8: 38af bseti r0, 15 + 76ba: 07e9 br 0x768c // 768c + 76bc: 9300 ld.w r0, (r3, 0x0) + 76be: 6815 andn r0, r5 + 76c0: 38b0 bseti r0, 16 + 76c2: 38b3 bseti r0, 19 + 76c4: 07e4 br 0x768c // 768c + 76c6: 37f0 movi r7, 240 + 76c8: 9200 ld.w r0, (r2, 0x0) + 76ca: 47e4 lsli r7, r7, 4 + 76cc: 681d andn r0, r7 + 76ce: 38a8 bseti r0, 8 + 76d0: 38ab bseti r0, 11 + 76d2: 07d6 br 0x767e // 767e + 76d4: 9200 ld.w r0, (r2, 0x0) + 76d6: 6819 andn r0, r6 + 76d8: 38ac bseti r0, 12 + 76da: 38af bseti r0, 15 + 76dc: 07d1 br 0x767e // 767e + 76de: 9301 ld.w r0, (r3, 0x4) + 76e0: 370f movi r7, 15 + 76e2: 681d andn r0, r7 + 76e4: 38a0 bseti r0, 0 + 76e6: 38a3 bseti r0, 3 + 76e8: b301 st.w r0, (r3, 0x4) + 76ea: 07d2 br 0x768e // 768e + 76ec: 9301 ld.w r0, (r3, 0x4) + 76ee: 37f0 movi r7, 240 + 76f0: 681d andn r0, r7 + 76f2: 38a4 bseti r0, 4 + 76f4: 38a7 bseti r0, 7 + 76f6: 07f9 br 0x76e8 // 76e8 + 76f8: 37f0 movi r7, 240 + 76fa: 9301 ld.w r0, (r3, 0x4) + 76fc: 47e4 lsli r7, r7, 4 + 76fe: 681d andn r0, r7 + 7700: 38a8 bseti r0, 8 + 7702: 38ab bseti r0, 11 + 7704: 07f2 br 0x76e8 // 76e8 + 7706: 9301 ld.w r0, (r3, 0x4) + 7708: 6819 andn r0, r6 + 770a: 38ac bseti r0, 12 + 770c: 38af bseti r0, 15 + 770e: 07ed br 0x76e8 // 76e8 + 7710: 9301 ld.w r0, (r3, 0x4) + 7712: 6815 andn r0, r5 + 7714: 38b0 bseti r0, 16 + 7716: 38b3 bseti r0, 19 + 7718: 07e8 br 0x76e8 // 76e8 + 771a: 9301 ld.w r0, (r3, 0x4) + 771c: 9820 ld.w r1, (r14, 0x0) + 771e: 6805 andn r0, r1 + 7720: 38b4 bseti r0, 20 + 7722: 38b7 bseti r0, 23 + 7724: 07e2 br 0x76e8 // 76e8 + 7726: 9200 ld.w r0, (r2, 0x0) + 7728: 370f movi r7, 15 + 772a: 681d andn r0, r7 + 772c: 38a0 bseti r0, 0 + 772e: 38a3 bseti r0, 3 + 7730: 07a7 br 0x767e // 767e + 7732: 9200 ld.w r0, (r2, 0x0) + 7734: 6815 andn r0, r5 + 7736: 38b0 bseti r0, 16 + 7738: 38b3 bseti r0, 19 + 773a: 07a2 br 0x767e // 767e + 773c: 9200 ld.w r0, (r2, 0x0) + 773e: 9820 ld.w r1, (r14, 0x0) + 7740: 6805 andn r0, r1 + 7742: 38b4 bseti r0, 20 + 7744: 38b7 bseti r0, 23 + 7746: 079c br 0x767e // 767e + 7748: 2000004c .long 0x2000004c + 774c: 200001f8 .long 0x200001f8 + 7750: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +00007754 : + 7754: 14c4 push r4-r7 + 7756: 1072 lrw r3, 0x20000054 // 779c + 7758: 1012 lrw r0, 0x200007ae // 77a0 + 775a: 1093 lrw r4, 0x2000061f // 77a4 + 775c: 6d83 mov r6, r0 + 775e: 93a0 ld.w r5, (r3, 0x0) + 7760: 3300 movi r3, 0 + 7762: 4342 lsli r2, r3, 2 + 7764: 6094 addu r2, r5 + 7766: 9220 ld.w r1, (r2, 0x0) + 7768: 4341 lsli r2, r3, 1 + 776a: 6080 addu r2, r0 + 776c: 7445 zexth r1, r1 + 776e: aa20 st.h r1, (r2, 0x0) + 7770: 8440 ld.b r2, (r4, 0x0) + 7772: 3a41 cmpnei r2, 1 + 7774: 080f bt 0x7792 // 7792 + 7776: 3300 movi r3, 0 + 7778: 10ec lrw r7, 0x20000508 // 77a8 + 777a: 4341 lsli r2, r3, 1 + 777c: 5e28 addu r1, r6, r2 + 777e: 8920 ld.h r1, (r1, 0x0) + 7780: 2300 addi r3, 1 + 7782: 7445 zexth r1, r1 + 7784: 609c addu r2, r7 + 7786: 3b51 cmpnei r3, 17 + 7788: aa20 st.h r1, (r2, 0x0) + 778a: 0bf8 bt 0x777a // 777a + 778c: 3300 movi r3, 0 + 778e: a460 st.b r3, (r4, 0x0) + 7790: 3311 movi r3, 17 + 7792: 2300 addi r3, 1 + 7794: 74cc zextb r3, r3 + 7796: 3b10 cmphsi r3, 17 + 7798: 0fe5 bf 0x7762 // 7762 + 779a: 1484 pop r4-r7 + 779c: 20000054 .long 0x20000054 + 77a0: 200007ae .long 0x200007ae + 77a4: 2000061f .long 0x2000061f + 77a8: 20000508 .long 0x20000508 + +Disassembly of section .text.TKEYIntHandler: + +000077ac : + 77ac: 1460 nie + 77ae: 1462 ipush + 77b0: 14d1 push r4, r15 + 77b2: 109e lrw r4, 0x20000070 // 7828 + 77b4: 9460 ld.w r3, (r4, 0x0) + 77b6: 3b40 cmpnei r3, 0 + 77b8: 080b bt 0x77ce // 77ce + 77ba: 3301 movi r3, 1 + 77bc: b460 st.w r3, (r4, 0x0) + 77be: 107c lrw r3, 0x2000059c // 782c + 77c0: 8360 ld.b r3, (r3, 0x0) + 77c2: 3b41 cmpnei r3, 1 + 77c4: 0805 bt 0x77ce // 77ce + 77c6: e3ffffc7 bsr 0x7754 // 7754 + 77ca: 3301 movi r3, 1 + 77cc: a464 st.b r3, (r4, 0x4) + 77ce: 1079 lrw r3, 0x20000058 // 7830 + 77d0: 3101 movi r1, 1 + 77d2: 9360 ld.w r3, (r3, 0x0) + 77d4: 934a ld.w r2, (r3, 0x28) + 77d6: 6884 and r2, r1 + 77d8: 3a40 cmpnei r2, 0 + 77da: 0c02 bf 0x77de // 77de + 77dc: b32c st.w r1, (r3, 0x30) + 77de: 934a ld.w r2, (r3, 0x28) + 77e0: 3102 movi r1, 2 + 77e2: 6884 and r2, r1 + 77e4: 3a40 cmpnei r2, 0 + 77e6: 0c02 bf 0x77ea // 77ea + 77e8: b32c st.w r1, (r3, 0x30) + 77ea: 934a ld.w r2, (r3, 0x28) + 77ec: 3104 movi r1, 4 + 77ee: 6884 and r2, r1 + 77f0: 3a40 cmpnei r2, 0 + 77f2: 0c02 bf 0x77f6 // 77f6 + 77f4: b32c st.w r1, (r3, 0x30) + 77f6: 934a ld.w r2, (r3, 0x28) + 77f8: 3108 movi r1, 8 + 77fa: 6884 and r2, r1 + 77fc: 3a40 cmpnei r2, 0 + 77fe: 0c02 bf 0x7802 // 7802 + 7800: b32c st.w r1, (r3, 0x30) + 7802: 934a ld.w r2, (r3, 0x28) + 7804: 3110 movi r1, 16 + 7806: 6884 and r2, r1 + 7808: 3a40 cmpnei r2, 0 + 780a: 0c02 bf 0x780e // 780e + 780c: b32c st.w r1, (r3, 0x30) + 780e: 934a ld.w r2, (r3, 0x28) + 7810: 3120 movi r1, 32 + 7812: 6884 and r2, r1 + 7814: 3a40 cmpnei r2, 0 + 7816: 0c02 bf 0x781a // 781a + 7818: b32c st.w r1, (r3, 0x30) + 781a: d9ee2001 ld.w r15, (r14, 0x4) + 781e: 9880 ld.w r4, (r14, 0x0) + 7820: 1402 addi r14, r14, 8 + 7822: 1463 ipop + 7824: 1461 nir + 7826: 0000 bkpt + 7828: 20000070 .long 0x20000070 + 782c: 2000059c .long 0x2000059c + 7830: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00007834 : + 7834: 14c2 push r4-r5 + 7836: 3200 movi r2, 0 + 7838: 3000 movi r0, 0 + 783a: 1088 lrw r4, 0x2000063c // 7858 + 783c: 3501 movi r5, 1 + 783e: 3120 movi r1, 32 + 7840: 9460 ld.w r3, (r4, 0x0) + 7842: 70c9 lsr r3, r2 + 7844: 68d4 and r3, r5 + 7846: 3b40 cmpnei r3, 0 + 7848: 0c02 bf 0x784c // 784c + 784a: 2000 addi r0, 1 + 784c: 2200 addi r2, 1 + 784e: 644a cmpne r2, r1 + 7850: 0bf8 bt 0x7840 // 7840 + 7852: 7400 zextb r0, r0 + 7854: 1482 pop r4-r5 + 7856: 0000 bkpt + 7858: 2000063c .long 0x2000063c + +Disassembly of section .text.TK_Baseline_prog: + +0000785c : + 785c: 14c4 push r4-r7 + 785e: 1423 subi r14, r14, 12 + 7860: 1079 lrw r3, 0x20000058 // 78c4 + 7862: 105a lrw r2, 0x20000508 // 78c8 + 7864: 10ba lrw r5, 0x20000070 // 78cc + 7866: b842 st.w r2, (r14, 0x8) + 7868: 9360 ld.w r3, (r3, 0x0) + 786a: b860 st.w r3, (r14, 0x0) + 786c: 1079 lrw r3, 0x20000054 // 78d0 + 786e: 9360 ld.w r3, (r3, 0x0) + 7870: b861 st.w r3, (r14, 0x4) + 7872: 3306 movi r3, 6 + 7874: 3201 movi r2, 1 + 7876: 9820 ld.w r1, (r14, 0x0) + 7878: b142 st.w r2, (r1, 0x8) + 787a: 3200 movi r2, 0 + 787c: b540 st.w r2, (r5, 0x0) + 787e: 9540 ld.w r2, (r5, 0x0) + 7880: 3a40 cmpnei r2, 0 + 7882: 0ffe bf 0x787e // 787e + 7884: 6c03 mov r0, r0 + 7886: 3200 movi r2, 0 + 7888: 10d3 lrw r6, 0x200007ae // 78d4 + 788a: 4202 lsli r0, r2, 2 + 788c: 9821 ld.w r1, (r14, 0x4) + 788e: 6004 addu r0, r1 + 7890: 9080 ld.w r4, (r0, 0x0) + 7892: 4221 lsli r1, r2, 1 + 7894: 98e2 ld.w r7, (r14, 0x8) + 7896: 61c4 addu r7, r1 + 7898: 7511 zexth r4, r4 + 789a: af80 st.h r4, (r7, 0x0) + 789c: 9000 ld.w r0, (r0, 0x0) + 789e: 2200 addi r2, 1 + 78a0: 7401 zexth r0, r0 + 78a2: 6058 addu r1, r6 + 78a4: 3a51 cmpnei r2, 17 + 78a6: a900 st.h r0, (r1, 0x0) + 78a8: 0bf1 bt 0x788a // 788a + 78aa: 2b00 subi r3, 1 + 78ac: 74cc zextb r3, r3 + 78ae: 3b40 cmpnei r3, 0 + 78b0: 0be2 bt 0x7874 // 7874 + 78b2: 106a lrw r3, 0x2000059c // 78d8 + 78b4: 3201 movi r2, 1 + 78b6: a340 st.b r2, (r3, 0x0) + 78b8: 3200 movi r2, 0 + 78ba: 1069 lrw r3, 0x20000725 // 78dc + 78bc: a340 st.b r2, (r3, 0x0) + 78be: 1403 addi r14, r14, 12 + 78c0: 1484 pop r4-r7 + 78c2: 0000 bkpt + 78c4: 20000058 .long 0x20000058 + 78c8: 20000508 .long 0x20000508 + 78cc: 20000070 .long 0x20000070 + 78d0: 20000054 .long 0x20000054 + 78d4: 200007ae .long 0x200007ae + 78d8: 2000059c .long 0x2000059c + 78dc: 20000725 .long 0x20000725 + +Disassembly of section .text.TK_Scan_Start: + +000078e0 : + 78e0: 1046 lrw r2, 0x20000070 // 78f8 + 78e2: 8264 ld.b r3, (r2, 0x4) + 78e4: 74cc zextb r3, r3 + 78e6: 3b41 cmpnei r3, 1 + 78e8: 0807 bt 0x78f6 // 78f6 + 78ea: 1025 lrw r1, 0x20000058 // 78fc + 78ec: 9120 ld.w r1, (r1, 0x0) + 78ee: b162 st.w r3, (r1, 0x8) + 78f0: 3300 movi r3, 0 + 78f2: b260 st.w r3, (r2, 0x0) + 78f4: a264 st.b r3, (r2, 0x4) + 78f6: 783c jmp r15 + 78f8: 20000070 .long 0x20000070 + 78fc: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00007900 : + 7900: 14d4 push r4-r7, r15 + 7902: 1425 subi r14, r14, 20 + 7904: 1271 lrw r3, 0x200001f4 // 7a48 + 7906: 8360 ld.b r3, (r3, 0x0) + 7908: b860 st.w r3, (r14, 0x0) + 790a: 3400 movi r4, 0 + 790c: 1270 lrw r3, 0x200001c8 // 7a4c + 790e: 8360 ld.b r3, (r3, 0x0) + 7910: b861 st.w r3, (r14, 0x4) + 7912: 12f0 lrw r7, 0x200005b2 // 7a50 + 7914: 1270 lrw r3, 0x200001d1 // 7a54 + 7916: 83a0 ld.b r5, (r3, 0x0) + 7918: 1270 lrw r3, 0x200001d0 // 7a58 + 791a: 8360 ld.b r3, (r3, 0x0) + 791c: b862 st.w r3, (r14, 0x8) + 791e: 6d9f mov r6, r7 + 7920: 126f lrw r3, 0x200007ae // 7a5c + 7922: b863 st.w r3, (r14, 0xc) + 7924: 4461 lsli r3, r4, 1 + 7926: 9843 ld.w r2, (r14, 0xc) + 7928: 608c addu r2, r3 + 792a: 122e lrw r1, 0x20000508 // 7a60 + 792c: 604c addu r1, r3 + 792e: 8a40 ld.h r2, (r2, 0x0) + 7930: 8920 ld.h r1, (r1, 0x0) + 7932: 6086 subu r2, r1 + 7934: 748b sexth r2, r2 + 7936: 5f2c addu r1, r7, r3 + 7938: a940 st.h r2, (r1, 0x0) + 793a: 8940 ld.h r2, (r1, 0x0) + 793c: 748b sexth r2, r2 + 793e: 3adf btsti r2, 31 + 7940: 1249 lrw r2, 0x2000076a // 7a64 + 7942: 608c addu r2, r3 + 7944: 0c37 bf 0x79b2 // 79b2 + 7946: 3100 movi r1, 0 + 7948: aa20 st.h r1, (r2, 0x0) + 794a: 9840 ld.w r2, (r14, 0x0) + 794c: 3a01 cmphsi r2, 2 + 794e: 0c6d bf 0x7a28 // 7a28 + 7950: 4461 lsli r3, r4, 1 + 7952: 5e2c addu r1, r6, r3 + 7954: 1205 lrw r0, 0x20000222 // 7a68 + 7956: 8940 ld.h r2, (r1, 0x0) + 7958: 60c0 addu r3, r0 + 795a: 748b sexth r2, r2 + 795c: 8b60 ld.h r3, (r3, 0x0) + 795e: 648d cmplt r3, r2 + 7960: 9840 ld.w r2, (r14, 0x0) + 7962: 7cc8 mult r3, r2 + 7964: 0c2a bf 0x79b8 // 79b8 + 7966: 8940 ld.h r2, (r1, 0x0) + 7968: 748b sexth r2, r2 + 796a: 64c9 cmplt r2, r3 + 796c: 0c26 bf 0x79b8 // 79b8 + 796e: 1240 lrw r2, 0x200005a0 // 7a6c + 7970: 6090 addu r2, r4 + 7972: 8260 ld.b r3, (r2, 0x0) + 7974: 2300 addi r3, 1 + 7976: 74cc zextb r3, r3 + 7978: a260 st.b r3, (r2, 0x0) + 797a: 3100 movi r1, 0 + 797c: 117d lrw r3, 0x20000586 // 7a70 + 797e: 60d0 addu r3, r4 + 7980: a320 st.b r1, (r3, 0x0) + 7982: 117d lrw r3, 0x20000662 // 7a74 + 7984: 60d0 addu r3, r4 + 7986: a320 st.b r1, (r3, 0x0) + 7988: 117c lrw r3, 0x200006dc // 7a78 + 798a: 60d0 addu r3, r4 + 798c: a320 st.b r1, (r3, 0x0) + 798e: 8260 ld.b r3, (r2, 0x0) + 7990: 9821 ld.w r1, (r14, 0x4) + 7992: 64c4 cmphs r1, r3 + 7994: 081f bt 0x79d2 // 79d2 + 7996: 3d40 cmpnei r5, 0 + 7998: 0852 bt 0x7a3c // 7a3c + 799a: 1139 lrw r1, 0x20000598 // 7a7c + 799c: 9160 ld.w r3, (r1, 0x0) + 799e: 3b40 cmpnei r3, 0 + 79a0: 0806 bt 0x79ac // 79ac + 79a2: 9100 ld.w r0, (r1, 0x0) + 79a4: 3301 movi r3, 1 + 79a6: 70d0 lsl r3, r4 + 79a8: 6cc0 or r3, r0 + 79aa: b160 st.w r3, (r1, 0x0) + 79ac: 3300 movi r3, 0 + 79ae: a260 st.b r3, (r2, 0x0) + 79b0: 0411 br 0x79d2 // 79d2 + 79b2: 8920 ld.h r1, (r1, 0x0) + 79b4: 7445 zexth r1, r1 + 79b6: 07c9 br 0x7948 // 7948 + 79b8: 4441 lsli r2, r4, 1 + 79ba: 6098 addu r2, r6 + 79bc: 8a40 ld.h r2, (r2, 0x0) + 79be: 748b sexth r2, r2 + 79c0: 648d cmplt r3, r2 + 79c2: 0c08 bf 0x79d2 // 79d2 + 79c4: 3300 movi r3, 0 + 79c6: 114e lrw r2, 0x20000598 // 7a7c + 79c8: 2b01 subi r3, 2 + 79ca: 9220 ld.w r1, (r2, 0x0) + 79cc: 70d3 rotl r3, r4 + 79ce: 68c4 and r3, r1 + 79d0: b260 st.w r3, (r2, 0x0) + 79d2: 4441 lsli r2, r4, 1 + 79d4: 5e68 addu r3, r6, r2 + 79d6: 8b60 ld.h r3, (r3, 0x0) + 79d8: 74cf sexth r3, r3 + 79da: b864 st.w r3, (r14, 0x10) + 79dc: 3105 movi r1, 5 + 79de: 1163 lrw r3, 0x20000222 // 7a68 + 79e0: 608c addu r2, r3 + 79e2: 8a00 ld.h r0, (r2, 0x0) + 79e4: 4002 lsli r0, r0, 2 + 79e6: e3ffdfa3 bsr 0x392c // 392c <__divsi3> + 79ea: 9864 ld.w r3, (r14, 0x10) + 79ec: 640d cmplt r3, r0 + 79ee: 0c18 bf 0x7a1e // 7a1e + 79f0: 1140 lrw r2, 0x20000586 // 7a70 + 79f2: 6090 addu r2, r4 + 79f4: 8260 ld.b r3, (r2, 0x0) + 79f6: 2300 addi r3, 1 + 79f8: 74cc zextb r3, r3 + 79fa: a260 st.b r3, (r2, 0x0) + 79fc: 3100 movi r1, 0 + 79fe: 107c lrw r3, 0x200005a0 // 7a6c + 7a00: 60d0 addu r3, r4 + 7a02: a320 st.b r1, (r3, 0x0) + 7a04: 8260 ld.b r3, (r2, 0x0) + 7a06: 9822 ld.w r1, (r14, 0x8) + 7a08: 64c4 cmphs r1, r3 + 7a0a: 080a bt 0x7a1e // 7a1e + 7a0c: 3300 movi r3, 0 + 7a0e: 103c lrw r1, 0x20000598 // 7a7c + 7a10: 2b01 subi r3, 2 + 7a12: 9100 ld.w r0, (r1, 0x0) + 7a14: 70d3 rotl r3, r4 + 7a16: 68c0 and r3, r0 + 7a18: b160 st.w r3, (r1, 0x0) + 7a1a: 3300 movi r3, 0 + 7a1c: a260 st.b r3, (r2, 0x0) + 7a1e: 2400 addi r4, 1 + 7a20: 3c51 cmpnei r4, 17 + 7a22: 0b81 bt 0x7924 // 7924 + 7a24: 1405 addi r14, r14, 20 + 7a26: 1494 pop r4-r7, r15 + 7a28: 60d8 addu r3, r6 + 7a2a: 4441 lsli r2, r4, 1 + 7a2c: 102f lrw r1, 0x20000222 // 7a68 + 7a2e: 8b60 ld.h r3, (r3, 0x0) + 7a30: 6084 addu r2, r1 + 7a32: 74cf sexth r3, r3 + 7a34: 8a40 ld.h r2, (r2, 0x0) + 7a36: 64c9 cmplt r2, r3 + 7a38: 0fcd bf 0x79d2 // 79d2 + 7a3a: 079a br 0x796e // 796e + 7a3c: 3d41 cmpnei r5, 1 + 7a3e: 0bb7 bt 0x79ac // 79ac + 7a40: 102f lrw r1, 0x20000598 // 7a7c + 7a42: 6cd7 mov r3, r5 + 7a44: 9100 ld.w r0, (r1, 0x0) + 7a46: 07b0 br 0x79a6 // 79a6 + 7a48: 200001f4 .long 0x200001f4 + 7a4c: 200001c8 .long 0x200001c8 + 7a50: 200005b2 .long 0x200005b2 + 7a54: 200001d1 .long 0x200001d1 + 7a58: 200001d0 .long 0x200001d0 + 7a5c: 200007ae .long 0x200007ae + 7a60: 20000508 .long 0x20000508 + 7a64: 2000076a .long 0x2000076a + 7a68: 20000222 .long 0x20000222 + 7a6c: 200005a0 .long 0x200005a0 + 7a70: 20000586 .long 0x20000586 + 7a74: 20000662 .long 0x20000662 + 7a78: 200006dc .long 0x200006dc + 7a7c: 20000598 .long 0x20000598 + +Disassembly of section .text.TK_overflow_predict: + +00007a80 : + 7a80: 14d4 push r4-r7, r15 + 7a82: 1421 subi r14, r14, 4 + 7a84: 11d9 lrw r6, 0x20000070 // 7b68 + 7a86: 8665 ld.b r3, (r6, 0x5) + 7a88: 3b41 cmpnei r3, 1 + 7a8a: 085f bt 0x7b48 // 7b48 + 7a8c: 1158 lrw r2, 0x200006b8 // 7b6c + 7a8e: 8260 ld.b r3, (r2, 0x0) + 7a90: 2300 addi r3, 1 + 7a92: 74cc zextb r3, r3 + 7a94: a260 st.b r3, (r2, 0x0) + 7a96: 8260 ld.b r3, (r2, 0x0) + 7a98: 1136 lrw r1, 0x200001f5 // 7b70 + 7a9a: 8120 ld.b r1, (r1, 0x0) + 7a9c: 64c4 cmphs r1, r3 + 7a9e: 0855 bt 0x7b48 // 7b48 + 7aa0: 3300 movi r3, 0 + 7aa2: a260 st.b r3, (r2, 0x0) + 7aa4: 3500 movi r5, 0 + 7aa6: 11f4 lrw r7, 0x200001f8 // 7b74 + 7aa8: 2605 addi r6, 6 + 7aaa: 9760 ld.w r3, (r7, 0x0) + 7aac: 70d5 lsr r3, r5 + 7aae: 3201 movi r2, 1 + 7ab0: 68c8 and r3, r2 + 7ab2: 3b40 cmpnei r3, 0 + 7ab4: 0c34 bf 0x7b1c // 7b1c + 7ab6: 4581 lsli r4, r5, 1 + 7ab8: 5e70 addu r3, r6, r4 + 7aba: 8b00 ld.h r0, (r3, 0x0) + 7abc: e3ffcd8e bsr 0x15d8 // 15d8 <__floatunsidf> + 7ac0: 6cc7 mov r3, r1 + 7ac2: 3180 movi r1, 128 + 7ac4: 6c83 mov r2, r0 + 7ac6: 4137 lsli r1, r1, 23 + 7ac8: 3000 movi r0, 0 + 7aca: e3ffc375 bsr 0x1b4 // 1b4 <__GI_pow> + 7ace: 116b lrw r3, 0x200001fe // 7b78 + 7ad0: 60d0 addu r3, r4 + 7ad2: 8b60 ld.h r3, (r3, 0x0) + 7ad4: 4364 lsli r3, r3, 4 + 7ad6: 230e addi r3, 15 + 7ad8: b860 st.w r3, (r14, 0x0) + 7ada: e3ffc937 bsr 0xd48 // d48 <__fixunsdfsi> + 7ade: 9860 ld.w r3, (r14, 0x0) + 7ae0: 7cc0 mult r3, r0 + 7ae2: 1147 lrw r2, 0x20000748 // 7b7c + 7ae4: 740d zexth r0, r3 + 7ae6: 6090 addu r2, r4 + 7ae8: 1166 lrw r3, 0x200007ae // 7b80 + 7aea: 60d0 addu r3, r4 + 7aec: aa00 st.h r0, (r2, 0x0) + 7aee: 8b60 ld.h r3, (r3, 0x0) + 7af0: 8a00 ld.h r0, (r2, 0x0) + 7af2: 7401 zexth r0, r0 + 7af4: 325f movi r2, 95 + 7af6: 74cd zexth r3, r3 + 7af8: 7c08 mult r0, r2 + 7afa: 3164 movi r1, 100 + 7afc: b860 st.w r3, (r14, 0x0) + 7afe: e3ffdf17 bsr 0x392c // 392c <__divsi3> + 7b02: 9860 ld.w r3, (r14, 0x0) + 7b04: 64c1 cmplt r0, r3 + 7b06: 0c0b bf 0x7b1c // 7b1c + 7b08: 107f lrw r3, 0x200001d2 // 7b84 + 7b0a: 610c addu r4, r3 + 7b0c: 8c60 ld.h r3, (r4, 0x0) + 7b0e: 3b06 cmphsi r3, 7 + 7b10: 0806 bt 0x7b1c // 7b1c + 7b12: 2300 addi r3, 1 + 7b14: ac60 st.h r3, (r4, 0x0) + 7b16: 3201 movi r2, 1 + 7b18: 107c lrw r3, 0x2000060d // 7b88 + 7b1a: a340 st.b r2, (r3, 0x0) + 7b1c: 2500 addi r5, 1 + 7b1e: 3d51 cmpnei r5, 17 + 7b20: 0bc5 bt 0x7aaa // 7aaa + 7b22: 107a lrw r3, 0x2000060d // 7b88 + 7b24: 8340 ld.b r2, (r3, 0x0) + 7b26: 3a41 cmpnei r2, 1 + 7b28: 0810 bt 0x7b48 // 7b48 + 7b2a: 3200 movi r2, 0 + 7b2c: a340 st.b r2, (r3, 0x0) + 7b2e: 3200 movi r2, 0 + 7b30: 1077 lrw r3, 0x20000058 // 7b8c + 7b32: 1018 lrw r0, 0x200006db // 7b90 + 7b34: 10b8 lrw r5, 0x20000714 // 7b94 + 7b36: 10d4 lrw r6, 0x200001d2 // 7b84 + 7b38: 9360 ld.w r3, (r3, 0x0) + 7b3a: b342 st.w r2, (r3, 0x8) + 7b3c: 1077 lrw r3, 0x20000054 // 7b98 + 7b3e: 9380 ld.w r4, (r3, 0x0) + 7b40: 3300 movi r3, 0 + 7b42: 8040 ld.b r2, (r0, 0x0) + 7b44: 648c cmphs r3, r2 + 7b46: 0c03 bf 0x7b4c // 7b4c + 7b48: 1401 addi r14, r14, 4 + 7b4a: 1494 pop r4-r7, r15 + 7b4c: 5d4c addu r2, r5, r3 + 7b4e: 8240 ld.b r2, (r2, 0x0) + 7b50: 4241 lsli r2, r2, 1 + 7b52: 4322 lsli r1, r3, 2 + 7b54: 6098 addu r2, r6 + 7b56: 6050 addu r1, r4 + 7b58: 8a40 ld.h r2, (r2, 0x0) + 7b5a: 91f2 ld.w r7, (r1, 0x48) + 7b5c: 4254 lsli r2, r2, 20 + 7b5e: 6c9c or r2, r7 + 7b60: 2300 addi r3, 1 + 7b62: b152 st.w r2, (r1, 0x48) + 7b64: 74cc zextb r3, r3 + 7b66: 07ee br 0x7b42 // 7b42 + 7b68: 20000070 .long 0x20000070 + 7b6c: 200006b8 .long 0x200006b8 + 7b70: 200001f5 .long 0x200001f5 + 7b74: 200001f8 .long 0x200001f8 + 7b78: 200001fe .long 0x200001fe + 7b7c: 20000748 .long 0x20000748 + 7b80: 200007ae .long 0x200007ae + 7b84: 200001d2 .long 0x200001d2 + 7b88: 2000060d .long 0x2000060d + 7b8c: 20000058 .long 0x20000058 + 7b90: 200006db .long 0x200006db + 7b94: 20000714 .long 0x20000714 + 7b98: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00007b9c : + 7b9c: 14c4 push r4-r7 + 7b9e: 1422 subi r14, r14, 8 + 7ba0: 1348 lrw r2, 0x2000063a // 7d40 + 7ba2: 8260 ld.b r3, (r2, 0x0) + 7ba4: 2300 addi r3, 1 + 7ba6: 74cc zextb r3, r3 + 7ba8: a260 st.b r3, (r2, 0x0) + 7baa: 8260 ld.b r3, (r2, 0x0) + 7bac: 1326 lrw r1, 0x200001f5 // 7d44 + 7bae: 8120 ld.b r1, (r1, 0x0) + 7bb0: 644c cmphs r3, r1 + 7bb2: 0cad bf 0x7d0c // 7d0c + 7bb4: 3300 movi r3, 0 + 7bb6: a260 st.b r3, (r2, 0x0) + 7bb8: 1364 lrw r3, 0x20000598 // 7d48 + 7bba: 9360 ld.w r3, (r3, 0x0) + 7bbc: 3b40 cmpnei r3, 0 + 7bbe: 08a7 bt 0x7d0c // 7d0c + 7bc0: 1323 lrw r1, 0x200005b2 // 7d4c + 7bc2: 6dc7 mov r7, r1 + 7bc4: b820 st.w r1, (r14, 0x0) + 7bc6: 3200 movi r2, 0 + 7bc8: 1362 lrw r3, 0x20000222 // 7d50 + 7bca: 1323 lrw r1, 0x20000508 // 7d54 + 7bcc: 4201 lsli r0, r2, 1 + 7bce: 9880 ld.w r4, (r14, 0x0) + 7bd0: 6100 addu r4, r0 + 7bd2: 8c80 ld.h r4, (r4, 0x0) + 7bd4: 7513 sexth r4, r4 + 7bd6: 3cdf btsti r4, 31 + 7bd8: 0c27 bf 0x7c26 // 7c26 + 7bda: 13a0 lrw r5, 0x200007ae // 7d58 + 7bdc: 5980 addu r4, r1, r0 + 7bde: 6014 addu r0, r5 + 7be0: b881 st.w r4, (r14, 0x4) + 7be2: 8c80 ld.h r4, (r4, 0x0) + 7be4: 88c0 ld.h r6, (r0, 0x0) + 7be6: 7511 zexth r4, r4 + 7be8: 7599 zexth r6, r6 + 7bea: 8ba0 ld.h r5, (r3, 0x0) + 7bec: 611a subu r4, r6 + 7bee: 6551 cmplt r4, r5 + 7bf0: 081b bt 0x7c26 // 7c26 + 7bf2: 9881 ld.w r4, (r14, 0x4) + 7bf4: 8c80 ld.h r4, (r4, 0x0) + 7bf6: 8800 ld.h r0, (r0, 0x0) + 7bf8: 7511 zexth r4, r4 + 7bfa: 7401 zexth r0, r0 + 7bfc: 5c01 subu r0, r4, r0 + 7bfe: 4581 lsli r4, r5, 1 + 7c00: 6150 addu r5, r4 + 7c02: 6541 cmplt r0, r5 + 7c04: 0c11 bf 0x7c26 // 7c26 + 7c06: 1296 lrw r4, 0x200006dc // 7d5c + 7c08: 6108 addu r4, r2 + 7c0a: 8400 ld.b r0, (r4, 0x0) + 7c0c: 2000 addi r0, 1 + 7c0e: 7400 zextb r0, r0 + 7c10: a400 st.b r0, (r4, 0x0) + 7c12: 1214 lrw r0, 0x20000090 // 7d60 + 7c14: 84a0 ld.b r5, (r4, 0x0) + 7c16: 8008 ld.b r0, (r0, 0x8) + 7c18: 6540 cmphs r0, r5 + 7c1a: 0806 bt 0x7c26 // 7c26 + 7c1c: 1212 lrw r0, 0x2000061f // 7d64 + 7c1e: 3501 movi r5, 1 + 7c20: a0a0 st.b r5, (r0, 0x0) + 7c22: 3000 movi r0, 0 + 7c24: a400 st.b r0, (r4, 0x0) + 7c26: 4201 lsli r0, r2, 1 + 7c28: 5f80 addu r4, r7, r0 + 7c2a: 8c80 ld.h r4, (r4, 0x0) + 7c2c: 7513 sexth r4, r4 + 7c2e: 3c20 cmplti r4, 1 + 7c30: 0870 bt 0x7d10 // 7d10 + 7c32: 128a lrw r4, 0x200007ae // 7d58 + 7c34: 6100 addu r4, r0 + 7c36: 59a0 addu r5, r1, r0 + 7c38: 8c80 ld.h r4, (r4, 0x0) + 7c3a: 8da0 ld.h r5, (r5, 0x0) + 7c3c: 7555 zexth r5, r5 + 7c3e: 7511 zexth r4, r4 + 7c40: 6116 subu r4, r5 + 7c42: 8ba0 ld.h r5, (r3, 0x0) + 7c44: 45a2 lsli r5, r5, 2 + 7c46: 6551 cmplt r4, r5 + 7c48: 0864 bt 0x7d10 // 7d10 + 7c4a: 1288 lrw r4, 0x20000662 // 7d68 + 7c4c: 6108 addu r4, r2 + 7c4e: 84a0 ld.b r5, (r4, 0x0) + 7c50: 2500 addi r5, 1 + 7c52: 7554 zextb r5, r5 + 7c54: a4a0 st.b r5, (r4, 0x0) + 7c56: 12a3 lrw r5, 0x20000090 // 7d60 + 7c58: 84c0 ld.b r6, (r4, 0x0) + 7c5a: 85a9 ld.b r5, (r5, 0x9) + 7c5c: 6594 cmphs r5, r6 + 7c5e: 0806 bt 0x7c6a // 7c6a + 7c60: 12a1 lrw r5, 0x2000061f // 7d64 + 7c62: 3601 movi r6, 1 + 7c64: a5c0 st.b r6, (r5, 0x0) + 7c66: 3500 movi r5, 0 + 7c68: a4a0 st.b r5, (r4, 0x0) + 7c6a: 5f80 addu r4, r7, r0 + 7c6c: 8c80 ld.h r4, (r4, 0x0) + 7c6e: 7513 sexth r4, r4 + 7c70: 3cdf btsti r4, 31 + 7c72: 0c10 bf 0x7c92 // 7c92 + 7c74: 11d9 lrw r6, 0x200007ae // 7d58 + 7c76: 59a0 addu r5, r1, r0 + 7c78: 6180 addu r6, r0 + 7c7a: 8d80 ld.h r4, (r5, 0x0) + 7c7c: 8ec0 ld.h r6, (r6, 0x0) + 7c7e: 7599 zexth r6, r6 + 7c80: 7511 zexth r4, r4 + 7c82: 611a subu r4, r6 + 7c84: 8bc0 ld.h r6, (r3, 0x0) + 7c86: 6591 cmplt r4, r6 + 7c88: 0c05 bf 0x7c92 // 7c92 + 7c8a: 8d80 ld.h r4, (r5, 0x0) + 7c8c: 2c00 subi r4, 1 + 7c8e: 7511 zexth r4, r4 + 7c90: ad80 st.h r4, (r5, 0x0) + 7c92: 5f80 addu r4, r7, r0 + 7c94: 8c80 ld.h r4, (r4, 0x0) + 7c96: 7513 sexth r4, r4 + 7c98: 3cdf btsti r4, 31 + 7c9a: 0c11 bf 0x7cbc // 7cbc + 7c9c: 11cf lrw r6, 0x200007ae // 7d58 + 7c9e: 59a0 addu r5, r1, r0 + 7ca0: 6180 addu r6, r0 + 7ca2: 8d80 ld.h r4, (r5, 0x0) + 7ca4: 8ec0 ld.h r6, (r6, 0x0) + 7ca6: 7599 zexth r6, r6 + 7ca8: 7511 zexth r4, r4 + 7caa: 611a subu r4, r6 + 7cac: 8bc0 ld.h r6, (r3, 0x0) + 7cae: 4ec1 lsri r6, r6, 1 + 7cb0: 6591 cmplt r4, r6 + 7cb2: 0805 bt 0x7cbc // 7cbc + 7cb4: 8d80 ld.h r4, (r5, 0x0) + 7cb6: 2c01 subi r4, 2 + 7cb8: 7511 zexth r4, r4 + 7cba: ad80 st.h r4, (r5, 0x0) + 7cbc: 5fa0 addu r5, r7, r0 + 7cbe: 8d80 ld.h r4, (r5, 0x0) + 7cc0: 7513 sexth r4, r4 + 7cc2: 3c20 cmplti r4, 1 + 7cc4: 080c bt 0x7cdc // 7cdc + 7cc6: 8da0 ld.h r5, (r5, 0x0) + 7cc8: 8b80 ld.h r4, (r3, 0x0) + 7cca: 7557 sexth r5, r5 + 7ccc: 4c81 lsri r4, r4, 1 + 7cce: 6515 cmplt r5, r4 + 7cd0: 0c06 bf 0x7cdc // 7cdc + 7cd2: 59a0 addu r5, r1, r0 + 7cd4: 8d80 ld.h r4, (r5, 0x0) + 7cd6: 2400 addi r4, 1 + 7cd8: 7511 zexth r4, r4 + 7cda: ad80 st.h r4, (r5, 0x0) + 7cdc: 5fa0 addu r5, r7, r0 + 7cde: 8d80 ld.h r4, (r5, 0x0) + 7ce0: 7513 sexth r4, r4 + 7ce2: 3c20 cmplti r4, 1 + 7ce4: 0810 bt 0x7d04 // 7d04 + 7ce6: 8dc0 ld.h r6, (r5, 0x0) + 7ce8: 759b sexth r6, r6 + 7cea: 8b80 ld.h r4, (r3, 0x0) + 7cec: 6519 cmplt r6, r4 + 7cee: 0c0b bf 0x7d04 // 7d04 + 7cf0: 8da0 ld.h r5, (r5, 0x0) + 7cf2: 7557 sexth r5, r5 + 7cf4: 4c81 lsri r4, r4, 1 + 7cf6: 6515 cmplt r5, r4 + 7cf8: 0806 bt 0x7d04 // 7d04 + 7cfa: 6004 addu r0, r1 + 7cfc: 8880 ld.h r4, (r0, 0x0) + 7cfe: 2401 addi r4, 2 + 7d00: 7511 zexth r4, r4 + 7d02: a880 st.h r4, (r0, 0x0) + 7d04: 2200 addi r2, 1 + 7d06: 3a51 cmpnei r2, 17 + 7d08: 2301 addi r3, 2 + 7d0a: 0b61 bt 0x7bcc // 7bcc + 7d0c: 1402 addi r14, r14, 8 + 7d0e: 1484 pop r4-r7 + 7d10: 5f80 addu r4, r7, r0 + 7d12: 8c80 ld.h r4, (r4, 0x0) + 7d14: 7513 sexth r4, r4 + 7d16: 3cdf btsti r4, 31 + 7d18: 0fa9 bf 0x7c6a // 7c6a + 7d1a: 10b0 lrw r5, 0x200007ae // 7d58 + 7d1c: 5980 addu r4, r1, r0 + 7d1e: 6140 addu r5, r0 + 7d20: 8c80 ld.h r4, (r4, 0x0) + 7d22: 8da0 ld.h r5, (r5, 0x0) + 7d24: 7555 zexth r5, r5 + 7d26: 8bc0 ld.h r6, (r3, 0x0) + 7d28: 7511 zexth r4, r4 + 7d2a: 6116 subu r4, r5 + 7d2c: 46a1 lsli r5, r6, 1 + 7d2e: 6158 addu r5, r6 + 7d30: 6551 cmplt r4, r5 + 7d32: 0b9c bt 0x7c6a // 7c6a + 7d34: 108c lrw r4, 0x2000061f // 7d64 + 7d36: 3501 movi r5, 1 + 7d38: a4a0 st.b r5, (r4, 0x0) + 7d3a: 6c03 mov r0, r0 + 7d3c: 0797 br 0x7c6a // 7c6a + 7d3e: 0000 bkpt + 7d40: 2000063a .long 0x2000063a + 7d44: 200001f5 .long 0x200001f5 + 7d48: 20000598 .long 0x20000598 + 7d4c: 200005b2 .long 0x200005b2 + 7d50: 20000222 .long 0x20000222 + 7d54: 20000508 .long 0x20000508 + 7d58: 200007ae .long 0x200007ae + 7d5c: 200006dc .long 0x200006dc + 7d60: 20000090 .long 0x20000090 + 7d64: 2000061f .long 0x2000061f + 7d68: 20000662 .long 0x20000662 + +Disassembly of section .text.TK_result_prog: + +00007d6c : + 7d6c: 14d2 push r4-r5, r15 + 7d6e: 1050 lrw r2, 0x20000598 // 7dac + 7d70: 1090 lrw r4, 0x2000063c // 7db0 + 7d72: 9260 ld.w r3, (r2, 0x0) + 7d74: 3b40 cmpnei r3, 0 + 7d76: 0c02 bf 0x7d7a // 7d7a + 7d78: 9260 ld.w r3, (r2, 0x0) + 7d7a: b460 st.w r3, (r4, 0x0) + 7d7c: 9460 ld.w r3, (r4, 0x0) + 7d7e: 3b40 cmpnei r3, 0 + 7d80: 10ad lrw r5, 0x20000710 // 7db4 + 7d82: 0c11 bf 0x7da4 // 7da4 + 7d84: 9440 ld.w r2, (r4, 0x0) + 7d86: 9560 ld.w r3, (r5, 0x0) + 7d88: 64ca cmpne r2, r3 + 7d8a: 0c03 bf 0x7d90 // 7d90 + 7d8c: 9460 ld.w r3, (r4, 0x0) + 7d8e: b560 st.w r3, (r5, 0x0) + 7d90: e3fffd52 bsr 0x7834 // 7834 + 7d94: 1069 lrw r3, 0x200001fc // 7db8 + 7d96: 8360 ld.b r3, (r3, 0x0) + 7d98: 640c cmphs r3, r0 + 7d9a: 0804 bt 0x7da2 // 7da2 + 7d9c: 3300 movi r3, 0 + 7d9e: b460 st.w r3, (r4, 0x0) + 7da0: b560 st.w r3, (r5, 0x0) + 7da2: 1492 pop r4-r5, r15 + 7da4: 1046 lrw r2, 0x20000634 // 7dbc + 7da6: b560 st.w r3, (r5, 0x0) + 7da8: b260 st.w r3, (r2, 0x0) + 7daa: 07fc br 0x7da2 // 7da2 + 7dac: 20000598 .long 0x20000598 + 7db0: 2000063c .long 0x2000063c + 7db4: 20000710 .long 0x20000710 + 7db8: 200001fc .long 0x200001fc + 7dbc: 20000634 .long 0x20000634 + +Disassembly of section .text.CORETHandler: + +00007dc0 : + 7dc0: 1460 nie + 7dc2: 1462 ipush + 7dc4: 14d1 push r4, r15 + 7dc6: 1077 lrw r3, 0x20000064 // 7e20 + 7dc8: 3400 movi r4, 0 + 7dca: 9360 ld.w r3, (r3, 0x0) + 7dcc: b386 st.w r4, (r3, 0x18) + 7dce: 1076 lrw r3, 0x2000059c // 7e24 + 7dd0: 8360 ld.b r3, (r3, 0x0) + 7dd2: 3b41 cmpnei r3, 1 + 7dd4: 0820 bt 0x7e14 // 7e14 + 7dd6: e3fffd85 bsr 0x78e0 // 78e0 + 7dda: e3fffd93 bsr 0x7900 // 7900 + 7dde: e3fffe51 bsr 0x7a80 // 7a80 + 7de2: e3fffedd bsr 0x7b9c // 7b9c + 7de6: e3ffffc3 bsr 0x7d6c // 7d6c + 7dea: 1070 lrw r3, 0x2000063c // 7e28 + 7dec: 9360 ld.w r3, (r3, 0x0) + 7dee: 3b40 cmpnei r3, 0 + 7df0: 0c12 bf 0x7e14 // 7e14 + 7df2: 106f lrw r3, 0x200001cc // 7e2c + 7df4: 9340 ld.w r2, (r3, 0x0) + 7df6: 3a40 cmpnei r2, 0 + 7df8: 0c0e bf 0x7e14 // 7e14 + 7dfa: 106e lrw r3, 0x20000634 // 7e30 + 7dfc: 3064 movi r0, 100 + 7dfe: 9320 ld.w r1, (r3, 0x0) + 7e00: 2100 addi r1, 1 + 7e02: b320 st.w r1, (r3, 0x0) + 7e04: 9320 ld.w r1, (r3, 0x0) + 7e06: 7c80 mult r2, r0 + 7e08: 6448 cmphs r2, r1 + 7e0a: 0805 bt 0x7e14 // 7e14 + 7e0c: 104a lrw r2, 0x2000061f // 7e34 + 7e0e: 3101 movi r1, 1 + 7e10: a220 st.b r1, (r2, 0x0) + 7e12: b380 st.w r4, (r3, 0x0) + 7e14: d9ee2001 ld.w r15, (r14, 0x4) + 7e18: 9880 ld.w r4, (r14, 0x0) + 7e1a: 1402 addi r14, r14, 8 + 7e1c: 1463 ipop + 7e1e: 1461 nir + 7e20: 20000064 .long 0x20000064 + 7e24: 2000059c .long 0x2000059c + 7e28: 2000063c .long 0x2000063c + 7e2c: 200001cc .long 0x200001cc + 7e30: 20000634 .long 0x20000634 + 7e34: 2000061f .long 0x2000061f + +Disassembly of section .text.get_key_seq: + +00007e38 : + 7e38: 14c3 push r4-r6 + 7e3a: 106b lrw r3, 0x200001f8 // 7e64 + 7e3c: 3000 movi r0, 0 + 7e3e: 9320 ld.w r1, (r3, 0x0) + 7e40: 3401 movi r4, 1 + 7e42: 3300 movi r3, 0 + 7e44: 10a9 lrw r5, 0x20000714 // 7e68 + 7e46: 6c87 mov r2, r1 + 7e48: 708d lsr r2, r3 + 7e4a: 6890 and r2, r4 + 7e4c: 3a40 cmpnei r2, 0 + 7e4e: 0c05 bf 0x7e58 // 7e58 + 7e50: 5dc0 addu r6, r5, r0 + 7e52: 748c zextb r2, r3 + 7e54: a640 st.b r2, (r6, 0x0) + 7e56: 2000 addi r0, 1 + 7e58: 2300 addi r3, 1 + 7e5a: 3b51 cmpnei r3, 17 + 7e5c: 0bf5 bt 0x7e46 // 7e46 + 7e5e: 7400 zextb r0, r0 + 7e60: 1483 pop r4-r6 + 7e62: 0000 bkpt + 7e64: 200001f8 .long 0x200001f8 + 7e68: 20000714 .long 0x20000714 + +Disassembly of section .text.CORET_CONFIG: + +00007e6c : + 7e6c: 14d0 push r15 + 7e6e: e3ffd743 bsr 0x2cf4 // 2cf4 + 7e72: 3180 movi r1, 128 + 7e74: 4124 lsli r1, r1, 4 + 7e76: 3001 movi r0, 1 + 7e78: e3ffce9a bsr 0x1bac // 1bac + 7e7c: 1068 lrw r3, 0x20000064 // 7e9c + 7e7e: 1049 lrw r2, 0x20000248 // 7ea0 + 7e80: 9360 ld.w r3, (r3, 0x0) + 7e82: 9240 ld.w r2, (r2, 0x0) + 7e84: b345 st.w r2, (r3, 0x14) + 7e86: e3ffd767 bsr 0x2d54 // 2d54 + 7e8a: e3ffd755 bsr 0x2d34 // 2d34 + 7e8e: e3ffd75b bsr 0x2d44 // 2d44 + 7e92: e3ffd749 bsr 0x2d24 // 2d24 + 7e96: e3ffd73b bsr 0x2d0c // 2d0c + 7e9a: 1490 pop r15 + 7e9c: 20000064 .long 0x20000064 + 7ea0: 20000248 .long 0x20000248 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00007ea4 : + 7ea4: 1066 lrw r3, 0x20000054 // 7ebc + 7ea6: 3100 movi r1, 0 + 7ea8: 9300 ld.w r0, (r3, 0x0) + 7eaa: 3300 movi r3, 0 + 7eac: 4342 lsli r2, r3, 2 + 7eae: 2300 addi r3, 1 + 7eb0: 6080 addu r2, r0 + 7eb2: 3b52 cmpnei r3, 18 + 7eb4: b220 st.w r1, (r2, 0x0) + 7eb6: b232 st.w r1, (r2, 0x48) + 7eb8: 0bfa bt 0x7eac // 7eac + 7eba: 783c jmp r15 + 7ebc: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +00007ec0 : + 7ec0: 1065 lrw r3, 0x2000005c // 7ed4 + 7ec2: 1046 lrw r2, 0xa67a6cc7 // 7ed8 + 7ec4: 9360 ld.w r3, (r3, 0x0) + 7ec6: b356 st.w r2, (r3, 0x58) + 7ec8: 1045 lrw r2, 0x21f1f04 // 7edc + 7eca: b355 st.w r2, (r3, 0x54) + 7ecc: 1045 lrw r2, 0x69966996 // 7ee0 + 7ece: 1066 lrw r3, 0x40011180 // 7ee4 + 7ed0: b35f st.w r2, (r3, 0x7c) + 7ed2: 783c jmp r15 + 7ed4: 2000005c .long 0x2000005c + 7ed8: a67a6cc7 .long 0xa67a6cc7 + 7edc: 021f1f04 .long 0x021f1f04 + 7ee0: 69966996 .long 0x69966996 + 7ee4: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00007ee8 : + 7ee8: 14d4 push r4-r7, r15 + 7eea: 142c subi r14, r14, 48 + 7eec: e3ffffea bsr 0x7ec0 // 7ec0 + 7ef0: e3ffd662 bsr 0x2bb4 // 2bb4 + 7ef4: 1268 lrw r3, 0x20000070 // 8014 + 7ef6: 934b ld.w r2, (r3, 0x2c) + 7ef8: 1268 lrw r3, 0x40011200 // 8018 + 7efa: b350 st.w r2, (r3, 0x40) + 7efc: 1268 lrw r3, 0x200001c9 // 801c + 7efe: 8360 ld.b r3, (r3, 0x0) + 7f00: 3b41 cmpnei r3, 1 + 7f02: 0817 bt 0x7f30 // 7f30 + 7f04: 1267 lrw r3, 0x20000058 // 8020 + 7f06: 3105 movi r1, 5 + 7f08: 9380 ld.w r4, (r3, 0x0) + 7f0a: 1267 lrw r3, 0x20000220 // 8024 + 7f0c: 8300 ld.b r0, (r3, 0x0) + 7f0e: e3ffdd21 bsr 0x3950 // 3950 <__udivsi3> + 7f12: 7400 zextb r0, r0 + 7f14: 1265 lrw r3, 0x200001ca // 8028 + 7f16: b408 st.w r0, (r4, 0x20) + 7f18: 8300 ld.b r0, (r3, 0x0) + 7f1a: 3804 cmphsi r0, 5 + 7f1c: 1264 lrw r3, 0x20000638 // 802c + 7f1e: 085a bt 0x7fd2 // 7fd2 + 7f20: e3ffc6ee bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7f24: 53575103 .long 0x53575103 + 7f28: 0055 .short 0x0055 + 7f2a: 3296 movi r2, 150 + 7f2c: 4242 lsli r2, r2, 2 + 7f2e: ab40 st.h r2, (r3, 0x0) + 7f30: e3fffb78 bsr 0x7620 // 7620 + 7f34: 3200 movi r2, 0 + 7f36: 3100 movi r1, 0 + 7f38: 3001 movi r0, 1 + 7f3a: e3fffb01 bsr 0x753c // 753c + 7f3e: e3ffffb3 bsr 0x7ea4 // 7ea4 + 7f42: e3ffff7b bsr 0x7e38 // 7e38 + 7f46: 119b lrw r4, 0x200006db // 8030 + 7f48: 3101 movi r1, 1 + 7f4a: a400 st.b r0, (r4, 0x0) + 7f4c: 8440 ld.b r2, (r4, 0x0) + 7f4e: 117a lrw r3, 0x20000244 // 8034 + 7f50: 8b60 ld.h r3, (r3, 0x0) + 7f52: b829 st.w r1, (r14, 0x24) + 7f54: 3180 movi r1, 128 + 7f56: 412d lsli r1, r1, 13 + 7f58: b828 st.w r1, (r14, 0x20) + 7f5a: 3180 movi r1, 128 + 7f5c: 4129 lsli r1, r1, 9 + 7f5e: b827 st.w r1, (r14, 0x1c) + 7f60: 3100 movi r1, 0 + 7f62: b826 st.w r1, (r14, 0x18) + 7f64: 2a00 subi r2, 1 + 7f66: 1115 lrw r0, 0x20000246 // 8038 + 7f68: 8800 ld.h r0, (r0, 0x0) + 7f6a: b805 st.w r0, (r14, 0x14) + 7f6c: 7488 zextb r2, r2 + 7f6e: 1114 lrw r0, 0x2000024c // 803c + 7f70: 8800 ld.h r0, (r0, 0x0) + 7f72: b804 st.w r0, (r14, 0x10) + 7f74: 3080 movi r0, 128 + 7f76: 4005 lsli r0, r0, 5 + 7f78: b803 st.w r0, (r14, 0xc) + 7f7a: 3080 movi r0, 128 + 7f7c: 4004 lsli r0, r0, 4 + 7f7e: b802 st.w r0, (r14, 0x8) + 7f80: b821 st.w r1, (r14, 0x4) + 7f82: b820 st.w r1, (r14, 0x0) + 7f84: 3001 movi r0, 1 + 7f86: 3102 movi r1, 2 + 7f88: e3fffaee bsr 0x7564 // 7564 + 7f8c: 3002 movi r0, 2 + 7f8e: e3fffacf bsr 0x752c // 752c + 7f92: 3020 movi r0, 32 + 7f94: e3fffacc bsr 0x752c // 752c + 7f98: 3380 movi r3, 128 + 7f9a: 4372 lsli r3, r3, 18 + 7f9c: 1149 lrw r2, 0xe000e100 // 8040 + 7f9e: b260 st.w r3, (r2, 0x0) + 7fa0: b270 st.w r3, (r2, 0x40) + 7fa2: 11e9 lrw r7, 0x20000076 // 8044 + 7fa4: 1169 lrw r3, 0x20000054 // 8048 + 7fa6: 11aa lrw r5, 0x20000714 // 804c + 7fa8: 11ca lrw r6, 0x200001fe // 8050 + 7faa: 9360 ld.w r3, (r3, 0x0) + 7fac: b86a st.w r3, (r14, 0x28) + 7fae: b88b st.w r4, (r14, 0x2c) + 7fb0: 3300 movi r3, 0 + 7fb2: 984b ld.w r2, (r14, 0x2c) + 7fb4: 8240 ld.b r2, (r2, 0x0) + 7fb6: 648c cmphs r3, r2 + 7fb8: 0c0f bf 0x7fd6 // 7fd6 + 7fba: e3ffff59 bsr 0x7e6c // 7e6c + 7fbe: e3fffc4f bsr 0x785c // 785c + 7fc2: 140c addi r14, r14, 48 + 7fc4: 1494 pop r4-r7, r15 + 7fc6: 1145 lrw r2, 0x5dc // 8058 + 7fc8: 07b3 br 0x7f2e // 7f2e + 7fca: 1145 lrw r2, 0x1194 // 805c + 7fcc: 07b1 br 0x7f2e // 7f2e + 7fce: 1145 lrw r2, 0x1770 // 8060 + 7fd0: 07af br 0x7f2e // 7f2e + 7fd2: 1145 lrw r2, 0xbb8 // 8064 + 7fd4: 07ad br 0x7f2e // 7f2e + 7fd6: 5d0c addu r0, r5, r3 + 7fd8: 8020 ld.b r1, (r0, 0x0) + 7fda: 8040 ld.b r2, (r0, 0x0) + 7fdc: 8080 ld.b r4, (r0, 0x0) + 7fde: 8000 ld.b r0, (r0, 0x0) + 7fe0: 4001 lsli r0, r0, 1 + 7fe2: 6018 addu r0, r6 + 7fe4: 4121 lsli r1, r1, 1 + 7fe6: 8800 ld.h r0, (r0, 0x0) + 7fe8: 605c addu r1, r7 + 7fea: 448f lsli r4, r4, 15 + 7fec: 6d00 or r4, r0 + 7fee: 4241 lsli r2, r2, 1 + 7ff0: 8900 ld.h r0, (r1, 0x0) + 7ff2: 1039 lrw r1, 0x200001d2 // 8054 + 7ff4: 6084 addu r2, r1 + 7ff6: 4018 lsli r0, r0, 24 + 7ff8: 6c10 or r0, r4 + 7ffa: 8a80 ld.h r4, (r2, 0x0) + 7ffc: 3212 movi r2, 18 + 7ffe: 608c addu r2, r3 + 8000: 4494 lsli r4, r4, 20 + 8002: 4242 lsli r2, r2, 2 + 8004: 982a ld.w r1, (r14, 0x28) + 8006: 6c10 or r0, r4 + 8008: 6084 addu r2, r1 + 800a: 2300 addi r3, 1 + 800c: b200 st.w r0, (r2, 0x0) + 800e: 74cc zextb r3, r3 + 8010: 07d1 br 0x7fb2 // 7fb2 + 8012: 0000 bkpt + 8014: 20000070 .long 0x20000070 + 8018: 40011200 .long 0x40011200 + 801c: 200001c9 .long 0x200001c9 + 8020: 20000058 .long 0x20000058 + 8024: 20000220 .long 0x20000220 + 8028: 200001ca .long 0x200001ca + 802c: 20000638 .long 0x20000638 + 8030: 200006db .long 0x200006db + 8034: 20000244 .long 0x20000244 + 8038: 20000246 .long 0x20000246 + 803c: 2000024c .long 0x2000024c + 8040: e000e100 .long 0xe000e100 + 8044: 20000076 .long 0x20000076 + 8048: 20000054 .long 0x20000054 + 804c: 20000714 .long 0x20000714 + 8050: 200001fe .long 0x200001fe + 8054: 200001d2 .long 0x200001d2 + 8058: 000005dc .long 0x000005dc + 805c: 00001194 .long 0x00001194 + 8060: 00001770 .long 0x00001770 + 8064: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +00008068 : + 8068: 14d4 push r4-r7, r15 + 806a: 142d subi r14, r14, 52 + 806c: 3201 movi r2, 1 + 806e: 03ce lrw r6, 0x2000005c // 82b0 + 8070: 6cc3 mov r3, r0 + 8072: dc4e000a st.b r2, (r14, 0xa) + 8076: 9640 ld.w r2, (r6, 0x0) + 8078: 9247 ld.w r2, (r2, 0x1c) + 807a: 7488 zextb r2, r2 + 807c: dc4e0009 st.b r2, (r14, 0x9) + 8080: d84e0009 ld.b r2, (r14, 0x9) + 8084: 3a40 cmpnei r2, 0 + 8086: 0c08 bf 0x8096 // 8096 + 8088: d84e0009 ld.b r2, (r14, 0x9) + 808c: 3a42 cmpnei r2, 2 + 808e: 0c04 bf 0x8096 // 8096 + 8090: 3000 movi r0, 0 + 8092: 140d addi r14, r14, 52 + 8094: 1494 pop r4-r7, r15 + 8096: 0397 lrw r4, 0x2000000c // 82b4 + 8098: 3209 movi r2, 9 + 809a: 9400 ld.w r0, (r4, 0x0) + 809c: 3b40 cmpnei r3, 0 + 809e: b041 st.w r2, (r0, 0x4) + 80a0: 0857 bt 0x814e // 814e + 80a2: 3307 movi r3, 7 + 80a4: dc6e000b st.b r3, (r14, 0xb) + 80a8: 037b lrw r3, 0x2dc6c00 // 82b8 + 80aa: b863 st.w r3, (r14, 0xc) + 80ac: 3380 movi r3, 128 + 80ae: 4362 lsli r3, r3, 2 + 80b0: b867 st.w r3, (r14, 0x1c) + 80b2: d86e000b ld.b r3, (r14, 0xb) + 80b6: 74cc zextb r3, r3 + 80b8: b062 st.w r3, (r0, 0x8) + 80ba: 037e lrw r3, 0xffff // 82bc + 80bc: b063 st.w r3, (r0, 0xc) + 80be: 3201 movi r2, 1 + 80c0: 3101 movi r1, 1 + 80c2: 03bf lrw r5, 0x20000014 // 82c0 + 80c4: e3ffcf6c bsr 0x1f9c // 1f9c + 80c8: 95e0 ld.w r7, (r5, 0x0) + 80ca: 137f lrw r3, 0xbe9c0005 // 82c4 + 80cc: b760 st.w r3, (r7, 0x0) + 80ce: 135f lrw r2, 0x30010 // 82c8 + 80d0: 3300 movi r3, 0 + 80d2: b762 st.w r3, (r7, 0x8) + 80d4: b743 st.w r2, (r7, 0xc) + 80d6: 32d8 movi r2, 216 + 80d8: b745 st.w r2, (r7, 0x14) + 80da: 974f ld.w r2, (r7, 0x3c) + 80dc: 3aa2 bseti r2, 2 + 80de: b74f st.w r2, (r7, 0x3c) + 80e0: 9803 ld.w r0, (r14, 0xc) + 80e2: d82e000b ld.b r1, (r14, 0xb) + 80e6: 327d movi r2, 125 + 80e8: 2100 addi r1, 1 + 80ea: 7c48 mult r1, r2 + 80ec: b861 st.w r3, (r14, 0x4) + 80ee: e3ffdc31 bsr 0x3950 // 3950 <__udivsi3> + 80f2: b804 st.w r0, (r14, 0x10) + 80f4: 32fa movi r2, 250 + 80f6: 9824 ld.w r1, (r14, 0x10) + 80f8: 4242 lsli r2, r2, 2 + 80fa: 6448 cmphs r2, r1 + 80fc: 0bca bt 0x8090 // 8090 + 80fe: 9844 ld.w r2, (r14, 0x10) + 8100: 3178 movi r1, 120 + 8102: 9804 ld.w r0, (r14, 0x10) + 8104: b840 st.w r2, (r14, 0x0) + 8106: e3ffdc25 bsr 0x3950 // 3950 <__udivsi3> + 810a: 9840 ld.w r2, (r14, 0x0) + 810c: 6082 subu r2, r0 + 810e: b845 st.w r2, (r14, 0x14) + 8110: 9804 ld.w r0, (r14, 0x10) + 8112: 3178 movi r1, 120 + 8114: 9844 ld.w r2, (r14, 0x10) + 8116: b840 st.w r2, (r14, 0x0) + 8118: e3ffdc1c bsr 0x3950 // 3950 <__udivsi3> + 811c: 9840 ld.w r2, (r14, 0x0) + 811e: 6008 addu r0, r2 + 8120: b806 st.w r0, (r14, 0x18) + 8122: c0807020 psrclr ie + 8126: 9640 ld.w r2, (r6, 0x0) + 8128: 9254 ld.w r2, (r2, 0x50) + 812a: b848 st.w r2, (r14, 0x20) + 812c: 9861 ld.w r3, (r14, 0x4) + 812e: 9440 ld.w r2, (r4, 0x0) + 8130: b260 st.w r3, (r2, 0x0) + 8132: b761 st.w r3, (r7, 0x4) + 8134: d86e000a ld.b r3, (r14, 0xa) + 8138: 3b40 cmpnei r3, 0 + 813a: 083e bt 0x81b6 // 81b6 + 813c: e3ffcee2 bsr 0x1f00 // 1f00 + 8140: 9400 ld.w r0, (r4, 0x0) + 8142: e3ffcf03 bsr 0x1f48 // 1f48 + 8146: c1807420 psrset ee, ie + 814a: 3001 movi r0, 1 + 814c: 07a3 br 0x8092 // 8092 + 814e: 3b41 cmpnei r3, 1 + 8150: 0806 bt 0x815c // 815c + 8152: 3303 movi r3, 3 + 8154: dc6e000b st.b r3, (r14, 0xb) + 8158: 127d lrw r3, 0x16e3600 // 82cc + 815a: 07a8 br 0x80aa // 80aa + 815c: 3b42 cmpnei r3, 2 + 815e: 0806 bt 0x816a // 816a + 8160: 3301 movi r3, 1 + 8162: dc6e000b st.b r3, (r14, 0xb) + 8166: 127b lrw r3, 0xb71b00 // 82d0 + 8168: 07a1 br 0x80aa // 80aa + 816a: 3b43 cmpnei r3, 3 + 816c: 0806 bt 0x8178 // 8178 + 816e: 3300 movi r3, 0 + 8170: dc6e000b st.b r3, (r14, 0xb) + 8174: 1278 lrw r3, 0x5b8d80 // 82d4 + 8176: 079a br 0x80aa // 80aa + 8178: 3b44 cmpnei r3, 4 + 817a: 0809 bt 0x818c // 818c + 817c: 3300 movi r3, 0 + 817e: dc6e000b st.b r3, (r14, 0xb) + 8182: 1276 lrw r3, 0x54c720 // 82d8 + 8184: b863 st.w r3, (r14, 0xc) + 8186: 3380 movi r3, 128 + 8188: 4369 lsli r3, r3, 9 + 818a: 0793 br 0x80b0 // 80b0 + 818c: 3b45 cmpnei r3, 5 + 818e: 0806 bt 0x819a // 819a + 8190: 3300 movi r3, 0 + 8192: dc6e000b st.b r3, (r14, 0xb) + 8196: 1272 lrw r3, 0x3ffed0 // 82dc + 8198: 07f6 br 0x8184 // 8184 + 819a: 3b46 cmpnei r3, 6 + 819c: 0806 bt 0x81a8 // 81a8 + 819e: 3300 movi r3, 0 + 81a0: dc6e000b st.b r3, (r14, 0xb) + 81a4: 126f lrw r3, 0x1fff68 // 82e0 + 81a6: 07ef br 0x8184 // 8184 + 81a8: 3b47 cmpnei r3, 7 + 81aa: 0b84 bt 0x80b2 // 80b2 + 81ac: 3300 movi r3, 0 + 81ae: dc6e000b st.b r3, (r14, 0xb) + 81b2: 126d lrw r3, 0x1ffb8 // 82e4 + 81b4: 07e8 br 0x8184 // 8184 + 81b6: 9560 ld.w r3, (r5, 0x0) + 81b8: 3101 movi r1, 1 + 81ba: 9440 ld.w r2, (r4, 0x0) + 81bc: b321 st.w r1, (r3, 0x4) + 81be: b220 st.w r1, (r2, 0x0) + 81c0: 3100 movi r1, 0 + 81c2: b327 st.w r1, (r3, 0x1c) + 81c4: 3004 movi r0, 4 + 81c6: b225 st.w r1, (r2, 0x14) + 81c8: 932e ld.w r1, (r3, 0x38) + 81ca: 6840 and r1, r0 + 81cc: 3940 cmpnei r1, 0 + 81ce: 0ffd bf 0x81c8 // 81c8 + 81d0: 9225 ld.w r1, (r2, 0x14) + 81d2: b82a st.w r1, (r14, 0x28) + 81d4: 3100 movi r1, 0 + 81d6: b310 st.w r0, (r3, 0x40) + 81d8: b327 st.w r1, (r3, 0x1c) + 81da: 3004 movi r0, 4 + 81dc: b225 st.w r1, (r2, 0x14) + 81de: 932e ld.w r1, (r3, 0x38) + 81e0: 6840 and r1, r0 + 81e2: 3940 cmpnei r1, 0 + 81e4: 0ffd bf 0x81de // 81de + 81e6: 9225 ld.w r1, (r2, 0x14) + 81e8: b82b st.w r1, (r14, 0x2c) + 81ea: 3100 movi r1, 0 + 81ec: b310 st.w r0, (r3, 0x40) + 81ee: b327 st.w r1, (r3, 0x1c) + 81f0: 3004 movi r0, 4 + 81f2: b225 st.w r1, (r2, 0x14) + 81f4: 932e ld.w r1, (r3, 0x38) + 81f6: 6840 and r1, r0 + 81f8: 3940 cmpnei r1, 0 + 81fa: 0ffd bf 0x81f4 // 81f4 + 81fc: 9225 ld.w r1, (r2, 0x14) + 81fe: b82c st.w r1, (r14, 0x30) + 8200: b310 st.w r0, (r3, 0x40) + 8202: 982b ld.w r1, (r14, 0x2c) + 8204: 980c ld.w r0, (r14, 0x30) + 8206: 6040 addu r1, r0 + 8208: b829 st.w r1, (r14, 0x24) + 820a: 9829 ld.w r1, (r14, 0x24) + 820c: 4921 lsri r1, r1, 1 + 820e: b829 st.w r1, (r14, 0x24) + 8210: 3100 movi r1, 0 + 8212: b321 st.w r1, (r3, 0x4) + 8214: b220 st.w r1, (r2, 0x0) + 8216: b327 st.w r1, (r3, 0x1c) + 8218: b225 st.w r1, (r2, 0x14) + 821a: d86e0009 ld.b r3, (r14, 0x9) + 821e: 3b42 cmpnei r3, 2 + 8220: 9849 ld.w r2, (r14, 0x24) + 8222: 082c bt 0x827a // 827a + 8224: 1171 lrw r3, 0x7ff // 82e8 + 8226: 648c cmphs r3, r2 + 8228: 0c03 bf 0x822e // 822e + 822a: 3300 movi r3, 0 + 822c: 040f br 0x824a // 824a + 822e: 9849 ld.w r2, (r14, 0x24) + 8230: 9866 ld.w r3, (r14, 0x18) + 8232: 648c cmphs r3, r2 + 8234: 080e bt 0x8250 // 8250 + 8236: 9868 ld.w r3, (r14, 0x20) + 8238: 9847 ld.w r2, (r14, 0x1c) + 823a: 60ca subu r3, r2 + 823c: b868 st.w r3, (r14, 0x20) + 823e: 32fe movi r2, 254 + 8240: 9868 ld.w r3, (r14, 0x20) + 8242: 4248 lsli r2, r2, 8 + 8244: 68c8 and r3, r2 + 8246: 3b40 cmpnei r3, 0 + 8248: 0812 bt 0x826c // 826c + 824a: dc6e000a st.b r3, (r14, 0xa) + 824e: 0721 br 0x8090 // 8090 + 8250: 9849 ld.w r2, (r14, 0x24) + 8252: 9865 ld.w r3, (r14, 0x14) + 8254: 64c8 cmphs r2, r3 + 8256: 0829 bt 0x82a8 // 82a8 + 8258: 9868 ld.w r3, (r14, 0x20) + 825a: 9847 ld.w r2, (r14, 0x1c) + 825c: 60c8 addu r3, r2 + 825e: b868 st.w r3, (r14, 0x20) + 8260: 33fe movi r3, 254 + 8262: 9848 ld.w r2, (r14, 0x20) + 8264: 4368 lsli r3, r3, 8 + 8266: 688c and r2, r3 + 8268: 64ca cmpne r2, r3 + 826a: 0fe0 bf 0x822a // 822a + 826c: 9660 ld.w r3, (r6, 0x0) + 826e: 9848 ld.w r2, (r14, 0x20) + 8270: b354 st.w r2, (r3, 0x50) + 8272: 3001 movi r0, 1 + 8274: e3ffd59e bsr 0x2db0 // 2db0 + 8278: 075e br 0x8134 // 8134 + 827a: 9866 ld.w r3, (r14, 0x18) + 827c: 648c cmphs r3, r2 + 827e: 0809 bt 0x8290 // 8290 + 8280: 9868 ld.w r3, (r14, 0x20) + 8282: 9847 ld.w r2, (r14, 0x1c) + 8284: 60ca subu r3, r2 + 8286: b868 st.w r3, (r14, 0x20) + 8288: 32ff movi r2, 255 + 828a: 9868 ld.w r3, (r14, 0x20) + 828c: 4250 lsli r2, r2, 16 + 828e: 07db br 0x8244 // 8244 + 8290: 9849 ld.w r2, (r14, 0x24) + 8292: 9865 ld.w r3, (r14, 0x14) + 8294: 64c8 cmphs r2, r3 + 8296: 0809 bt 0x82a8 // 82a8 + 8298: 9868 ld.w r3, (r14, 0x20) + 829a: 9847 ld.w r2, (r14, 0x1c) + 829c: 60c8 addu r3, r2 + 829e: b868 st.w r3, (r14, 0x20) + 82a0: 33ff movi r3, 255 + 82a2: 9848 ld.w r2, (r14, 0x20) + 82a4: 4370 lsli r3, r3, 16 + 82a6: 07e0 br 0x8266 // 8266 + 82a8: 3300 movi r3, 0 + 82aa: dc6e000a st.b r3, (r14, 0xa) + 82ae: 07e2 br 0x8272 // 8272 + 82b0: 2000005c .long 0x2000005c + 82b4: 2000000c .long 0x2000000c + 82b8: 02dc6c00 .long 0x02dc6c00 + 82bc: 0000ffff .long 0x0000ffff + 82c0: 20000014 .long 0x20000014 + 82c4: be9c0005 .long 0xbe9c0005 + 82c8: 00030010 .long 0x00030010 + 82cc: 016e3600 .long 0x016e3600 + 82d0: 00b71b00 .long 0x00b71b00 + 82d4: 005b8d80 .long 0x005b8d80 + 82d8: 0054c720 .long 0x0054c720 + 82dc: 003ffed0 .long 0x003ffed0 + 82e0: 001fff68 .long 0x001fff68 + 82e4: 0001ffb8 .long 0x0001ffb8 + 82e8: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241126.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241126.map new file mode 100644 index 0000000..f0b2650 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_AC_TC_V01_20241126.map @@ -0,0 +1,3061 @@ +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: 516204 (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: 256 + Section header string table index: 253 + +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 001ab4 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001ab4 002ab4 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001aec 002aec 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001b60 002b60 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001bac 002bac 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001bdc 002bdc 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c64 002c64 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c8c 002c8c 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001cc8 002cc8 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001cdc 002cdc 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001cf4 002cf4 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001d14 002d14 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001d30 002d30 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001d4c 002d4c 000040 00 AX 0 0 4 + [15] .text.SYSCON_Int_ PROGBITS 00001d8c 002d8c 00000c 00 AX 0 0 4 + [16] .text.SYSCON_INT_ PROGBITS 00001d98 002d98 000024 00 AX 0 0 4 + [17] .text.Set_INT_Pri PROGBITS 00001dbc 002dbc 000030 00 AX 0 0 4 + [18] .text.GPIO_Init PROGBITS 00001dec 002dec 0000e0 00 AX 0 0 4 + [19] .text.GPIO_DriveS PROGBITS 00001ecc 002ecc 00000e 00 AX 0 0 2 + [20] .text.GPIO_Write_ PROGBITS 00001eda 002eda 000008 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 00001ee2 002ee2 000008 00 AX 0 0 2 + [22] .text.GPIO_Revers PROGBITS 00001eea 002eea 000016 00 AX 0 0 2 + [23] .text.LPT_Soft_Re PROGBITS 00001f00 002f00 000014 00 AX 0 0 4 + [24] .text.WWDT_CNT_Lo PROGBITS 00001f14 002f14 000010 00 AX 0 0 4 + [25] .text.BT_DeInit PROGBITS 00001f24 002f24 00001c 00 AX 0 0 2 + [26] .text.BT_Start PROGBITS 00001f40 002f40 000008 00 AX 0 0 2 + [27] .text.BT_Soft_Res PROGBITS 00001f48 002f48 00000a 00 AX 0 0 2 + [28] .text.BT_Configur PROGBITS 00001f52 002f52 000018 00 AX 0 0 2 + [29] .text.BT_ControlS PROGBITS 00001f6a 002f6a 00002c 00 AX 0 0 2 + [30] .text.BT_Period_C PROGBITS 00001f96 002f96 000006 00 AX 0 0 2 + [31] .text.BT_ConfigIn PROGBITS 00001f9c 002f9c 000012 00 AX 0 0 2 + [32] .text.BT1_INT_ENA PROGBITS 00001fb0 002fb0 000010 00 AX 0 0 4 + [33] .text.SIO_DeInit PROGBITS 00001fc0 002fc0 000020 00 AX 0 0 4 + [34] .text.SIO_IO_Init PROGBITS 00001fe0 002fe0 000060 00 AX 0 0 4 + [35] .text.SIO_TX_Init PROGBITS 00002040 003040 000010 00 AX 0 0 4 + [36] .text.SIO_TX_Conf PROGBITS 00002050 003050 000050 00 AX 0 0 4 + [37] .text.UART0_DeIni PROGBITS 000020a0 0030a0 000018 00 AX 0 0 4 + [38] .text.UART1_DeIni PROGBITS 000020b8 0030b8 000018 00 AX 0 0 4 + [39] .text.UART2_DeIni PROGBITS 000020d0 0030d0 000018 00 AX 0 0 4 + [40] .text.UART0_Int_E PROGBITS 000020e8 0030e8 00001c 00 AX 0 0 4 + [41] .text.UART2_Int_E PROGBITS 00002104 003104 00001c 00 AX 0 0 4 + [42] .text.UART_IO_Ini PROGBITS 00002120 003120 0000ec 00 AX 0 0 4 + [43] .text.UARTInit PROGBITS 0000220c 00320c 000010 00 AX 0 0 4 + [44] .text.UARTInitRxT PROGBITS 0000221c 00321c 000010 00 AX 0 0 4 + [45] .text.UARTTransmi PROGBITS 0000222c 00322c 00001e 00 AX 0 0 2 + [46] .text.EPT_Softwar PROGBITS 0000224c 00324c 000020 00 AX 0 0 4 + [47] .text.EPT_Start PROGBITS 0000226c 00326c 000028 00 AX 0 0 4 + [48] .text.EPT_Stop PROGBITS 00002294 003294 000028 00 AX 0 0 4 + [49] .text.EPT_IO_SET PROGBITS 000022bc 0032bc 000238 00 AX 0 0 4 + [50] .text.EPT_PWM_Con PROGBITS 000024f4 0034f4 000038 00 AX 0 0 4 + [51] .text.EPT_PWMX_Ou PROGBITS 0000252c 00352c 0000d8 00 AX 0 0 4 + [52] .text.EPT_PRDR_CM PROGBITS 00002604 003604 00001c 00 AX 0 0 4 + [53] .text.ADC12_RESET PROGBITS 00002620 003620 000064 00 AX 0 0 4 + [54] .text.ADC12_Contr PROGBITS 00002684 003684 000010 00 AX 0 0 4 + [55] .text.ADC12_CMD.p PROGBITS 00002694 003694 000020 00 AX 0 0 4 + [56] .text.ADC12_CLK_C PROGBITS 000026b4 0036b4 00002c 00 AX 0 0 4 + [57] .text.ADC12_Softw PROGBITS 000026e0 0036e0 00000a 00 AX 0 0 2 + [58] .text.ADC12_CMD PROGBITS 000026ec 0036ec 000028 00 AX 0 0 4 + [59] .text.ADC12_ready PROGBITS 00002714 003714 000014 00 AX 0 0 4 + [60] .text.ADC12_SEQEN PROGBITS 00002728 003728 000018 00 AX 0 0 4 + [61] .text.ADC12_DATA_ PROGBITS 00002740 003740 000014 00 AX 0 0 4 + [62] .text.ADC12_Confi PROGBITS 00002754 003754 00007c 00 AX 0 0 4 + [63] .text.ADC12_Confi PROGBITS 000027d0 0037d0 000198 00 AX 0 0 4 + [64] .text.ADC12_Conve PROGBITS 00002968 003968 000180 00 AX 0 0 4 + [65] .text.Page_Progra PROGBITS 00002ae8 003ae8 0000a0 00 AX 0 0 4 + [66] .text.ReadDataArr PROGBITS 00002b88 003b88 00002a 00 AX 0 0 2 + [67] .text.tk_paramete PROGBITS 00002bb4 003bb4 000140 00 AX 0 0 4 + [68] .text.CORET_DeIni PROGBITS 00002cf4 003cf4 000018 00 AX 0 0 4 + [69] .text.CORET_Int_E PROGBITS 00002d0c 003d0c 000018 00 AX 0 0 4 + [70] .text.CORET_start PROGBITS 00002d24 003d24 000010 00 AX 0 0 4 + [71] .text.CORET_CLKSO PROGBITS 00002d34 003d34 000010 00 AX 0 0 4 + [72] .text.CORET_TICKI PROGBITS 00002d44 003d44 000010 00 AX 0 0 4 + [73] .text.CORET_reloa PROGBITS 00002d54 003d54 000010 00 AX 0 0 4 + [74] .text.startup.mai PROGBITS 00002d64 003d64 00004c 00 AX 0 0 4 + [75] .text.delay_nms PROGBITS 00002db0 003db0 00002c 00 AX 0 0 2 + [76] .text.delay_nus PROGBITS 00002ddc 003ddc 000022 00 AX 0 0 2 + [77] .text.EPT0_CONFIG PROGBITS 00002e00 003e00 000060 00 AX 0 0 4 + [78] .text.BT_CONFIG PROGBITS 00002e60 003e60 000060 00 AX 0 0 4 + [79] .text.SYSCON_CONF PROGBITS 00002ec0 003ec0 000062 00 AX 0 0 2 + [80] .text.APT32F102_i PROGBITS 00002f24 003f24 000084 00 AX 0 0 4 + [81] .text.SYSCONIntHa PROGBITS 00002fa8 003fa8 0000f0 00 AX 0 0 4 + [82] .text.IFCIntHandl PROGBITS 00003098 004098 000068 00 AX 0 0 4 + [83] .text.ADCIntHandl PROGBITS 00003100 004100 000068 00 AX 0 0 4 + [84] .text.EPT0IntHand PROGBITS 00003168 004168 0001ac 00 AX 0 0 4 + [85] .text.WWDTHandler PROGBITS 00003314 004314 000034 00 AX 0 0 4 + [86] .text.GPT0IntHand PROGBITS 00003348 004348 000080 00 AX 0 0 4 + [87] .text.RTCIntHandl PROGBITS 000033c8 0043c8 000070 00 AX 0 0 4 + [88] .text.UART0IntHan PROGBITS 00003438 004438 00003c 00 AX 0 0 4 + [89] .text.UART1IntHan PROGBITS 00003474 004474 00003c 00 AX 0 0 4 + [90] .text.UART2IntHan PROGBITS 000034b0 0044b0 000094 00 AX 0 0 4 + [91] .text.SPI0IntHand PROGBITS 00003544 004544 0000e8 00 AX 0 0 4 + [92] .text.SIO0IntHand PROGBITS 0000362c 00462c 000054 00 AX 0 0 4 + [93] .text.EXI0IntHand PROGBITS 00003680 004680 000030 00 AX 0 0 4 + [94] .text.EXI1IntHand PROGBITS 000036b0 0046b0 000030 00 AX 0 0 4 + [95] .text.EXI2to3IntH PROGBITS 000036e0 0046e0 000048 00 AX 0 0 4 + [96] .text.EXI4to9IntH PROGBITS 00003728 004728 00005c 00 AX 0 0 4 + [97] .text.EXI10to15In PROGBITS 00003784 004784 000060 00 AX 0 0 4 + [98] .text.LPTIntHandl PROGBITS 000037e4 0047e4 000034 00 AX 0 0 4 + [99] .text.BT0IntHandl PROGBITS 00003818 004818 00004c 00 AX 0 0 4 + [100] .text.BT1IntHandl PROGBITS 00003864 004864 000064 00 AX 0 0 4 + [101] .text.PriviledgeV PROGBITS 000038c8 0048c8 000002 00 AX 0 0 2 + [102] .text.PendTrapHan PROGBITS 000038ca 0048ca 000008 00 AX 0 0 2 + [103] .text.Trap3Handle PROGBITS 000038d2 0048d2 000008 00 AX 0 0 2 + [104] .text.Trap2Handle PROGBITS 000038da 0048da 000008 00 AX 0 0 2 + [105] .text.Trap1Handle PROGBITS 000038e2 0048e2 000008 00 AX 0 0 2 + [106] .text.Trap0Handle PROGBITS 000038ea 0048ea 000008 00 AX 0 0 2 + [107] .text.UnrecExecpH PROGBITS 000038f2 0048f2 000008 00 AX 0 0 2 + [108] .text.BreakPointH PROGBITS 000038fa 0048fa 000008 00 AX 0 0 2 + [109] .text.AccessErrHa PROGBITS 00003902 004902 000008 00 AX 0 0 2 + [110] .text.IllegalInst PROGBITS 0000390a 00490a 000008 00 AX 0 0 2 + [111] .text.MisalignedH PROGBITS 00003912 004912 000008 00 AX 0 0 2 + [112] .text.CNTAIntHand PROGBITS 0000391a 00491a 000008 00 AX 0 0 2 + [113] .text.I2CIntHandl PROGBITS 00003922 004922 000008 00 AX 0 0 2 + [114] .text.__divsi3 PROGBITS 0000392c 00492c 000024 00 AX 0 0 4 + [115] .text.__udivsi3 PROGBITS 00003950 004950 000024 00 AX 0 0 4 + [116] .text.__modsi3 PROGBITS 00003974 004974 000024 00 AX 0 0 4 + [117] .text.__umodsi3 PROGBITS 00003998 004998 000024 00 AX 0 0 4 + [118] .text.CK_CPU_EnAl PROGBITS 000039bc 0049bc 000006 00 AX 0 0 2 + [119] .text.CK_CPU_DisA PROGBITS 000039c2 0049c2 000006 00 AX 0 0 2 + [120] .text.UARTx_Init PROGBITS 000039c8 0049c8 00011c 00 AX 0 0 4 + [121] .text.UART2_RecvI PROGBITS 00003ae4 004ae4 000068 00 AX 0 0 4 + [122] .text.UART2_TASK PROGBITS 00003b4c 004b4c 0000a4 00 AX 0 0 4 + [123] .text.MCU485_Send PROGBITS 00003bf0 004bf0 000088 00 AX 0 0 4 + [124] .text.Dbg_Println PROGBITS 00003c78 004c78 00000c 00 AX 0 0 2 + [125] .text.Dbg_Print_B PROGBITS 00003c84 004c84 000002 00 AX 0 0 2 + [126] .text.Touch_Key_I PROGBITS 00003c88 004c88 000068 00 AX 0 0 4 + [127] .text.TouchKey_RS PROGBITS 00003cf0 004cf0 000138 00 AX 0 0 4 + [128] .text.Get_TouchKe PROGBITS 00003e28 004e28 00003c 00 AX 0 0 4 + [129] .text.Touch_Key_E PROGBITS 00003e64 004e64 0000ac 00 AX 0 0 4 + [130] .text.TouchKey_Se PROGBITS 00003f10 004f10 00003c 00 AX 0 0 4 + [131] .text.Touch_Key_T PROGBITS 00003f4c 004f4c 0000f0 00 AX 0 0 4 + [132] .text.TouchKey_Ch PROGBITS 0000403c 00503c 000018 00 AX 0 0 2 + [133] .text.TouchKey_Co PROGBITS 00004054 005054 000068 00 AX 0 0 4 + [134] .text.TouchKey_Se PROGBITS 000040bc 0050bc 0000b8 00 AX 0 0 4 + [135] .text.TouchKey_Re PROGBITS 00004174 005174 0000f8 00 AX 0 0 4 + [136] .text.TouchKey_Du PROGBITS 0000426c 00526c 000038 00 AX 0 0 4 + [137] .text.TouchKey_Re PROGBITS 000042a4 0052a4 0000b0 00 AX 0 0 4 + [138] .text.TouchKey_Re PROGBITS 00004354 005354 00001a 00 AX 0 0 2 + [139] .text.TouchKey_Co PROGBITS 00004370 005370 0000d8 00 AX 0 0 4 + [140] .text.EEPROM_Chec PROGBITS 00004448 005448 000016 00 AX 0 0 2 + [141] .text.EEPROM_Read PROGBITS 00004460 005460 000074 00 AX 0 0 4 + [142] .text.EEPROM_Writ PROGBITS 000044d4 0054d4 000044 00 AX 0 0 4 + [143] .text.EEPROM_Vali PROGBITS 00004518 005518 00008c 00 AX 0 0 4 + [144] .text.EEPROM_Defa PROGBITS 000045a4 0055a4 000020 00 AX 0 0 2 + [145] .text.EEPROM_Init PROGBITS 000045c4 0055c4 000050 00 AX 0 0 4 + [146] .text.EEPROM_Writ PROGBITS 00004614 005614 00006c 00 AX 0 0 4 + [147] .text.EEPROM_Read PROGBITS 00004680 005680 0000ac 00 AX 0 0 4 + [148] .text.EEPROM_Vali PROGBITS 0000472c 00572c 0000a8 00 AX 0 0 4 + [149] .text.EEPROM_Defa PROGBITS 000047d4 0057d4 000040 00 AX 0 0 2 + [150] .text.EEPROM_Touc PROGBITS 00004814 005814 000080 00 AX 0 0 4 + [151] .text.ADC_Init PROGBITS 00004894 005894 00005c 00 AX 0 0 4 + [152] .text.Thermistor_ PROGBITS 000048f0 0058f0 000048 00 AX 0 0 4 + [153] .text.Calculate_A PROGBITS 00004938 005938 0000c0 00 AX 0 0 4 + [154] .text.ADC_Sample_ PROGBITS 000049f8 0059f8 0000b0 00 AX 0 0 4 + [155] .text.Get_Temp_Va PROGBITS 00004aa8 005aa8 000010 00 AX 0 0 4 + [156] .text.Contol_Swit PROGBITS 00004ab8 005ab8 0003ea 00 AX 0 0 4 + [157] .text.Contol_Swit PROGBITS 00004ea4 005ea4 0003ea 00 AX 0 0 4 + [158] .text.Contol_Swit PROGBITS 00005290 006290 000028 00 AX 0 0 4 + [159] .text.Get_TM1812_ PROGBITS 000052b8 0062b8 00004c 00 AX 0 0 4 + [160] .text.TimeCall_SI PROGBITS 00005304 006304 000120 00 AX 0 0 4 + [161] .text.Tm1812_Task PROGBITS 00005424 006424 000034 00 AX 0 0 4 + [162] .text.Tm1812_Ch_I PROGBITS 00005458 006458 000024 00 AX 0 0 4 + [163] .text.TM1812_Cont PROGBITS 0000547c 00647c 000070 00 AX 0 0 4 + [164] .text.TM1812_Cont PROGBITS 000054ec 0064ec 000064 00 AX 0 0 4 + [165] .text.TM1812_LED_ PROGBITS 00005550 006550 000060 00 AX 0 0 4 + [166] .text.HT1621_WR_D PROGBITS 000055b0 0065b0 000048 00 AX 0 0 4 + [167] .text.HT1621_WR_C PROGBITS 000055f8 0065f8 000030 00 AX 0 0 4 + [168] .text.HT1621_Init PROGBITS 00005628 006628 0000a4 00 AX 0 0 4 + [169] .text.HT1621_Clea PROGBITS 000056cc 0066cc 000050 00 AX 0 0 4 + [170] .text.HT1621_ALLO PROGBITS 0000571c 00671c 000040 00 AX 0 0 4 + [171] .text.HT1621_Refr PROGBITS 0000575c 00675c 00004c 00 AX 0 0 4 + [172] .text.Set_Tempera PROGBITS 000057a8 0067a8 0000d0 00 AX 0 0 4 + [173] .text.Local_Tempe PROGBITS 00005878 006878 0000d0 00 AX 0 0 4 + [174] .text.Control_Mod PROGBITS 00005948 006948 000244 00 AX 0 0 4 + [175] .text.Control_win PROGBITS 00005b8c 006b8c 0000d0 00 AX 0 0 4 + [176] .text.Control_Pro PROGBITS 00005c5c 006c5c 0000a4 00 AX 0 0 4 + [177] .text.Controlled_ PROGBITS 00005d00 006d00 000048 00 AX 0 0 4 + [178] .text.Controlled_ PROGBITS 00005d48 006d48 0000dc 00 AX 0 0 4 + [179] .text.Controlled_ PROGBITS 00005e24 006e24 000030 00 AX 0 0 4 + [180] .text.Set_Device_ PROGBITS 00005e54 006e54 00009c 00 AX 0 0 4 + [181] .text.Set_Temp_Di PROGBITS 00005ef0 006ef0 000064 00 AX 0 0 4 + [182] .text.HT1621_Refr PROGBITS 00005f54 006f54 000090 00 AX 0 0 4 + [183] .text.TemCtrl_Ini PROGBITS 00005fe4 006fe4 00013c 00 AX 0 0 4 + [184] .text.TemCtrl_Mod PROGBITS 00006120 007120 00004c 00 AX 0 0 4 + [185] .text.TemCtrl_Fan PROGBITS 0000616c 00716c 000054 00 AX 0 0 4 + [186] .text.TemCtrl_Tem PROGBITS 000061c0 0071c0 000030 00 AX 0 0 4 + [187] .text.TemCtrl_Tem PROGBITS 000061f0 0071f0 000030 00 AX 0 0 4 + [188] .text.TemCtrl_OnO PROGBITS 00006220 007220 000034 00 AX 0 0 4 + [189] .text.Tem_Valve_C PROGBITS 00006254 007254 0000dc 00 AX 0 0 4 + [190] .text.TemCtrl_Pro PROGBITS 00006330 007330 000168 00 AX 0 0 4 + [191] .text.KEY1_Model_ PROGBITS 00006498 007498 0000e0 00 AX 0 0 4 + [192] .text.KEY2_Fan_Pr PROGBITS 00006578 007578 0000e0 00 AX 0 0 4 + [193] .text.KEY3_TempAd PROGBITS 00006658 007658 000110 00 AX 0 0 4 + [194] .text.KEY3_Long_P PROGBITS 00006768 007768 000078 00 AX 0 0 4 + [195] .text.KEY4_TempDe PROGBITS 000067e0 0077e0 000110 00 AX 0 0 4 + [196] .text.KEY4_Long_P PROGBITS 000068f0 0078f0 000078 00 AX 0 0 4 + [197] .text.KEY5_OnOff_ PROGBITS 00006968 007968 000084 00 AX 0 0 4 + [198] .text.TempCtrl_On PROGBITS 000069ec 0079ec 000054 00 AX 0 0 4 + [199] .text.DisPlay_Ini PROGBITS 00006a40 007a40 000020 00 AX 0 0 4 + [200] .text.Data_Resend PROGBITS 00006a60 007a60 000084 00 AX 0 0 4 + [201] .text.Switch_Repo PROGBITS 00006ae4 007ae4 000090 00 AX 0 0 4 + [202] .text.DisPlay_Tas PROGBITS 00006b74 007b74 000350 00 AX 0 0 4 + [203] .text.Debug_Init PROGBITS 00006ec4 007ec4 00003c 00 AX 0 0 4 + [204] .text.Dev_SaveDat PROGBITS 00006f00 007f00 000098 00 AX 0 0 4 + [205] .text.Debug_Task PROGBITS 00006f98 007f98 00007c 00 AX 0 0 4 + [206] .text.Relay_High PROGBITS 00007014 008014 00001c 00 AX 0 0 2 + [207] .text.Relay_Mid PROGBITS 00007030 008030 00001c 00 AX 0 0 2 + [208] .text.Relay_Low PROGBITS 0000704c 00804c 00001c 00 AX 0 0 2 + [209] .text.Relay_Stop PROGBITS 00007068 008068 00001c 00 AX 0 0 2 + [210] .text.NetCRC16 PROGBITS 00007084 008084 00004c 00 AX 0 0 4 + [211] .text.GetCRC16 PROGBITS 000070d0 0080d0 00003c 00 AX 0 0 4 + [212] .text.SOR_CRC PROGBITS 0000710c 00810c 000016 00 AX 0 0 2 + [213] .text.Rs485AskCyc PROGBITS 00007124 008124 0000ec 00 AX 0 0 4 + [214] .text.Rs485AskCtr PROGBITS 00007210 008210 000050 00 AX 0 0 4 + [215] .text.Rs485AskRea PROGBITS 00007260 008260 00005c 00 AX 0 0 4 + [216] .text.Temp_Rec_An PROGBITS 000072bc 0082bc 0001a8 00 AX 0 0 4 + [217] .text.Tem_Rs485_R PROGBITS 00007464 008464 0000c8 00 AX 0 0 4 + [218] .text.TK_ConfigIn PROGBITS 0000752c 00852c 000010 00 AX 0 0 4 + [219] .text.tk_clk_conf PROGBITS 0000753c 00853c 000028 00 AX 0 0 4 + [220] .text.TK_con0_con PROGBITS 00007564 008564 0000bc 00 AX 0 0 4 + [221] .text.TK_IO_Enabl PROGBITS 00007620 008620 000134 00 AX 0 0 4 + [222] .text.TK_Sampling PROGBITS 00007754 008754 000058 00 AX 0 0 4 + [223] .text.TKEYIntHand PROGBITS 000077ac 0087ac 000088 00 AX 0 0 4 + [224] .text.get_key_num PROGBITS 00007834 008834 000028 00 AX 0 0 4 + [225] .text.TK_Baseline PROGBITS 0000785c 00885c 000084 00 AX 0 0 4 + [226] .text.TK_Scan_Sta PROGBITS 000078e0 0088e0 000020 00 AX 0 0 4 + [227] .text.TK_Keymap_p PROGBITS 00007900 008900 000180 00 AX 0 0 4 + [228] .text.TK_overflow PROGBITS 00007a80 008a80 00011c 00 AX 0 0 4 + [229] .text.TK_Baseline PROGBITS 00007b9c 008b9c 0001d0 00 AX 0 0 4 + [230] .text.TK_result_p PROGBITS 00007d6c 008d6c 000054 00 AX 0 0 4 + [231] .text.CORETHandle PROGBITS 00007dc0 008dc0 000078 00 AX 0 0 4 + [232] .text.get_key_seq PROGBITS 00007e38 008e38 000034 00 AX 0 0 4 + [233] .text.CORET_CONFI PROGBITS 00007e6c 008e6c 000038 00 AX 0 0 4 + [234] .text.tk_chxval_s PROGBITS 00007ea4 008ea4 00001c 00 AX 0 0 4 + [235] .text.tk_reserved PROGBITS 00007ec0 008ec0 000028 00 AX 0 0 4 + [236] .text.tk_init PROGBITS 00007ee8 008ee8 000180 00 AX 0 0 4 + [237] .text.std_clk_cal PROGBITS 00008068 009068 000284 00 AX 0 0 4 + [238] .RomCode PROGBITS 000082ec 00a0a8 000000 00 W 0 0 1 + [239] .rodata PROGBITS 000082ec 0092ec 0008b8 00 A 0 0 4 + [240] .data PROGBITS 20000000 00a000 0000a8 00 WA 0 0 4 + [241] .bss NOBITS 200000a8 00a0a8 000728 00 WA 0 0 4 + [242] .csky.attributes CSKY_ATTRIBUTES 00000000 00a0a8 000022 00 0 0 1 + [243] .comment PROGBITS 00000000 00a0ca 000042 01 MS 0 0 1 + [244] .csky_stack_size PROGBITS 00000000 00a110 000a6c 00 0 0 16 + [245] .debug_line PROGBITS 00000000 00ab7c 00647c 00 0 0 1 + [246] .debug_info PROGBITS 00000000 010ff8 04d72f 00 0 0 1 + [247] .debug_abbrev PROGBITS 00000000 05e727 004552 00 0 0 1 + [248] .debug_aranges PROGBITS 00000000 062c80 0010d0 00 0 0 8 + [249] .debug_ranges PROGBITS 00000000 063d50 001038 00 0 0 1 + [250] .debug_str PROGBITS 00000000 064d88 009c0c 01 MS 0 0 1 + [251] .debug_frame PROGBITS 00000000 06e994 0027bc 00 0 0 4 + [252] .debug_loc PROGBITS 00000000 071150 003f29 00 0 0 1 + [253] .shstrtab STRTAB 00000000 07ca41 001628 00 0 0 1 + [254] .symtab SYMTAB 00000000 07507c 005de0 10 255 1099 4 + [255] .strtab STRTAB 00000000 07ae5c 001be5 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 0x08ba4 0x08ba4 R E 0x1000 + LOAD 0x00a000 0x20000000 0x00008ba4 0x000a8 0x007d0 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_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .text.GPIO_Reverse .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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.EPT0_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.Data_Resend .text.Switch_Report_Task .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_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_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_uart.o(.text.MCU485_SendData) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.MCU485_SendData) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/USRCTRL_display_logic.o(.text.Data_Resend) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) 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.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_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/USRCTRL_display_logic.o(.text.Switch_Report_Task) refers to Obj/USRCTRL_display_logic.o(.text.Data_Resend) for Data_Resend + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.Switch_Report_Task) for Switch_Report_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.Data_Resend) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + 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/USRCTRL_display_logic.o(.text.Data_Resend) refers to rand.o(.text) for rand + 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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2893 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_PullHigh_Init(Obj/FWlib_apt32f102_gpio.o), (20 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_Read_Status(Obj/FWlib_apt32f102_gpio.o), (16 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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.GPIO_CONFIG(Obj/mcu_initial.o), (76 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.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (152 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (4 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 bytes). + Removing .text.TKey_Filter_Task(Obj/SYSTEM_touch_key.o), (2 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text.Relay_Init(Obj/USRCTRL_myrelay.o), (2 bytes). + Removing .text.RLY_State_Multi_Control(Obj/USRCTRL_myrelay.o), (128 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .text.Rs485_DevPort_ACK(Obj/USRCTRL_uart_protocol.o), (10 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), (107 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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 .bss(rand.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). + +593 unused seciton(s) (total 137018 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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* + rand.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 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + _fpadd_parts 0x00000d80 F 724 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00001048 0 .text + $t 0x00001054 0 .text + $d 0x000010bc 0 .text + $t 0x000010bc 0 .text + $d 0x000012e4 0 .text + $d 0x000012f0 0 .text + $t 0x000012f0 0 .text + $d 0x00001440 0 .text + $d 0x00001444 0 .text + $t 0x00001444 0 .text + $d 0x00001480 0 .text + $t 0x00001480 0 .text + $d 0x000014bc 0 .text + $t 0x000014bc 0 .text + $d 0x000014f8 0 .text + $t 0x000014f8 0 .text + $d 0x00001564 0 .text + $d 0x00001568 0 .text + $t 0x00001568 0 .text + $d 0x000015d4 0 .text + $d 0x000015d8 0 .text + $t 0x000015d8 0 .text + $d 0x0000162c 0 .text + $t 0x0000162c 0 .text + $d 0x00001670 0 .text + $t 0x00001670 0 .text + $d 0x000016a4 0 .text + $d 0x000016b0 0 .text + $t 0x000016b0 0 .text + $d 0x00001838 0 .text + $d 0x0000184c 0 .text + $t 0x0000184c 0 .text + $d 0x00001904 0 .text + $d 0x00001910 0 .text + $t 0x00001910 0 .text + $d 0x0000199c 0 .text + $t 0x0000199c 0 .text + $d 0x000019b0 0 .text + $t 0x000019bc 0 .text + $d 0x000019c2 0 .text + $d 0x000019c8 0 .text + $t 0x000019c8 0 .text + $d 0x00001a50 0 .text + $t 0x00001a50 0 .text + $d 0x00001ab4 0 .text.__main + $t 0x00001ab4 0 .text.__main + $d 0x00001ad8 0 .text.__main + SYSCON_General_CMD.part.0 0x00001aec F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001aec 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001aec 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b58 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b60 0 .text.SYSCON_RST_VALUE + $t 0x00001b60 0 .text.SYSCON_RST_VALUE + $d 0x00001b90 0 .text.SYSCON_RST_VALUE + $d 0x00001bac 0 .text.SYSCON_General_CMD + $t 0x00001bac 0 .text.SYSCON_General_CMD + $d 0x00001bd8 0 .text.SYSCON_General_CMD + $d 0x00001bdc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001bdc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c54 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c88 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c8c 0 .text.SYSCON_WDT_CMD + $t 0x00001c8c 0 .text.SYSCON_WDT_CMD + $d 0x00001cbc 0 .text.SYSCON_WDT_CMD + $d 0x00001cc8 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001cc8 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cd8 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cdc 0 .text.SYSCON_IWDCNT_Config + $t 0x00001cdc 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cec 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cf4 0 .text.SYSCON_LVD_Config + $t 0x00001cf4 0 .text.SYSCON_LVD_Config + $d 0x00001d0c 0 .text.SYSCON_LVD_Config + $d 0x00001d14 0 .text.LVD_Int_Enable + $t 0x00001d14 0 .text.LVD_Int_Enable + $d 0x00001d2c 0 .text.LVD_Int_Enable + $d 0x00001d30 0 .text.IWDT_Int_Enable + $t 0x00001d30 0 .text.IWDT_Int_Enable + $d 0x00001d48 0 .text.IWDT_Int_Enable + $d 0x00001d4c 0 .text.EXTI_trigger_CMD + $t 0x00001d4c 0 .text.EXTI_trigger_CMD + $d 0x00001d88 0 .text.EXTI_trigger_CMD + $d 0x00001d8c 0 .text.SYSCON_Int_Enable + $t 0x00001d8c 0 .text.SYSCON_Int_Enable + $d 0x00001d94 0 .text.SYSCON_Int_Enable + $d 0x00001d98 0 .text.SYSCON_INT_Priority + $t 0x00001d98 0 .text.SYSCON_INT_Priority + $d 0x00001db0 0 .text.SYSCON_INT_Priority + $d 0x00001dbc 0 .text.Set_INT_Priority + $t 0x00001dbc 0 .text.Set_INT_Priority + $d 0x00001de8 0 .text.Set_INT_Priority + $d 0x00001dec 0 .text.GPIO_Init + $t 0x00001dec 0 .text.GPIO_Init + $d 0x00001dfe 0 .text.GPIO_Init + $t 0x00001e06 0 .text.GPIO_Init + $d 0x00001e62 0 .text.GPIO_Init + $t 0x00001e6a 0 .text.GPIO_Init + $d 0x00001eb8 0 .text.GPIO_Init + $d 0x00001ecc 0 .text.GPIO_DriveStrength_EN + $t 0x00001ecc 0 .text.GPIO_DriveStrength_EN + $d 0x00001eda 0 .text.GPIO_Write_High + $t 0x00001eda 0 .text.GPIO_Write_High + $d 0x00001ee2 0 .text.GPIO_Write_Low + $t 0x00001ee2 0 .text.GPIO_Write_Low + $d 0x00001eea 0 .text.GPIO_Reverse + $t 0x00001eea 0 .text.GPIO_Reverse + $d 0x00001f00 0 .text.LPT_Soft_Reset + $t 0x00001f00 0 .text.LPT_Soft_Reset + $d 0x00001f10 0 .text.LPT_Soft_Reset + $d 0x00001f14 0 .text.WWDT_CNT_Load + $t 0x00001f14 0 .text.WWDT_CNT_Load + $d 0x00001f20 0 .text.WWDT_CNT_Load + $d 0x00001f24 0 .text.BT_DeInit + $t 0x00001f24 0 .text.BT_DeInit + $d 0x00001f40 0 .text.BT_Start + $t 0x00001f40 0 .text.BT_Start + $d 0x00001f48 0 .text.BT_Soft_Reset + $t 0x00001f48 0 .text.BT_Soft_Reset + $d 0x00001f52 0 .text.BT_Configure + $t 0x00001f52 0 .text.BT_Configure + $d 0x00001f6a 0 .text.BT_ControlSet_Configure + $t 0x00001f6a 0 .text.BT_ControlSet_Configure + $d 0x00001f96 0 .text.BT_Period_CMP_Write + $t 0x00001f96 0 .text.BT_Period_CMP_Write + $d 0x00001f9c 0 .text.BT_ConfigInterrupt_CMD + $t 0x00001f9c 0 .text.BT_ConfigInterrupt_CMD + $d 0x00001fb0 0 .text.BT1_INT_ENABLE + $t 0x00001fb0 0 .text.BT1_INT_ENABLE + $d 0x00001fbc 0 .text.BT1_INT_ENABLE + $d 0x00001fc0 0 .text.SIO_DeInit + $t 0x00001fc0 0 .text.SIO_DeInit + $d 0x00001fdc 0 .text.SIO_DeInit + $d 0x00001fe0 0 .text.SIO_IO_Init + $t 0x00001fe0 0 .text.SIO_IO_Init + $d 0x00002038 0 .text.SIO_IO_Init + $d 0x00002040 0 .text.SIO_TX_Init + $t 0x00002040 0 .text.SIO_TX_Init + $d 0x0000204c 0 .text.SIO_TX_Init + $d 0x00002050 0 .text.SIO_TX_Configure + $t 0x00002050 0 .text.SIO_TX_Configure + $d 0x0000209c 0 .text.SIO_TX_Configure + $d 0x000020a0 0 .text.UART0_DeInit + $t 0x000020a0 0 .text.UART0_DeInit + $d 0x000020b4 0 .text.UART0_DeInit + $d 0x000020b8 0 .text.UART1_DeInit + $t 0x000020b8 0 .text.UART1_DeInit + $d 0x000020cc 0 .text.UART1_DeInit + $d 0x000020d0 0 .text.UART2_DeInit + $t 0x000020d0 0 .text.UART2_DeInit + $d 0x000020e4 0 .text.UART2_DeInit + $d 0x000020e8 0 .text.UART0_Int_Enable + $t 0x000020e8 0 .text.UART0_Int_Enable + $d 0x000020fc 0 .text.UART0_Int_Enable + $d 0x00002104 0 .text.UART2_Int_Enable + $t 0x00002104 0 .text.UART2_Int_Enable + $d 0x00002118 0 .text.UART2_Int_Enable + $d 0x00002120 0 .text.UART_IO_Init + $t 0x00002120 0 .text.UART_IO_Init + $d 0x00002204 0 .text.UART_IO_Init + $d 0x0000220c 0 .text.UARTInit + $t 0x0000220c 0 .text.UARTInit + $d 0x00002218 0 .text.UARTInit + $d 0x0000221c 0 .text.UARTInitRxTxIntEn + $t 0x0000221c 0 .text.UARTInitRxTxIntEn + $d 0x00002228 0 .text.UARTInitRxTxIntEn + $d 0x0000222c 0 .text.UARTTransmit + $t 0x0000222c 0 .text.UARTTransmit + $d 0x0000224c 0 .text.EPT_Software_Prg + $t 0x0000224c 0 .text.EPT_Software_Prg + $d 0x00002268 0 .text.EPT_Software_Prg + $d 0x0000226c 0 .text.EPT_Start + $t 0x0000226c 0 .text.EPT_Start + $d 0x0000228c 0 .text.EPT_Start + $d 0x00002294 0 .text.EPT_Stop + $t 0x00002294 0 .text.EPT_Stop + $d 0x000022b4 0 .text.EPT_Stop + $d 0x000022bc 0 .text.EPT_IO_SET + $t 0x000022bc 0 .text.EPT_IO_SET + $d 0x000024ec 0 .text.EPT_IO_SET + $d 0x000024f4 0 .text.EPT_PWM_Config + $t 0x000024f4 0 .text.EPT_PWM_Config + $d 0x00002524 0 .text.EPT_PWM_Config + $d 0x0000252c 0 .text.EPT_PWMX_Output_Control + $t 0x0000252c 0 .text.EPT_PWMX_Output_Control + $d 0x00002600 0 .text.EPT_PWMX_Output_Control + $d 0x00002604 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x00002604 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x0000261c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x00002620 0 .text.ADC12_RESET_VALUE + $t 0x00002620 0 .text.ADC12_RESET_VALUE + $d 0x00002680 0 .text.ADC12_RESET_VALUE + $d 0x00002684 0 .text.ADC12_Control + $t 0x00002684 0 .text.ADC12_Control + $d 0x00002690 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002694 F 32 .text.ADC12_CMD.part.0 + $d 0x00002694 0 .text.ADC12_CMD.part.0 + $t 0x00002694 0 .text.ADC12_CMD.part.0 + $d 0x000026b0 0 .text.ADC12_CMD.part.0 + $d 0x000026b4 0 .text.ADC12_CLK_CMD + $t 0x000026b4 0 .text.ADC12_CLK_CMD + $d 0x000026dc 0 .text.ADC12_CLK_CMD + $d 0x000026e0 0 .text.ADC12_Software_Reset + $t 0x000026e0 0 .text.ADC12_Software_Reset + $d 0x000026ec 0 .text.ADC12_CMD + $t 0x000026ec 0 .text.ADC12_CMD + $d 0x00002710 0 .text.ADC12_CMD + $d 0x00002714 0 .text.ADC12_ready_wait + $t 0x00002714 0 .text.ADC12_ready_wait + $d 0x00002724 0 .text.ADC12_ready_wait + $d 0x00002728 0 .text.ADC12_SEQEND_wait + $t 0x00002728 0 .text.ADC12_SEQEND_wait + $d 0x0000273c 0 .text.ADC12_SEQEND_wait + $d 0x00002740 0 .text.ADC12_DATA_OUPUT + $t 0x00002740 0 .text.ADC12_DATA_OUPUT + $d 0x00002750 0 .text.ADC12_DATA_OUPUT + $d 0x00002754 0 .text.ADC12_Configure_Mode + $t 0x00002754 0 .text.ADC12_Configure_Mode + $d 0x000027cc 0 .text.ADC12_Configure_Mode + $d 0x000027d0 0 .text.ADC12_Configure_VREF_Selecte + $t 0x000027d0 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002944 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002968 0 .text.ADC12_ConversionChannel_Config + $t 0x00002968 0 .text.ADC12_ConversionChannel_Config + $d 0x00002994 0 .text.ADC12_ConversionChannel_Config + $t 0x000029a4 0 .text.ADC12_ConversionChannel_Config + $d 0x00002adc 0 .text.ADC12_ConversionChannel_Config + $d 0x00002ae8 0 .text.Page_ProgramData + $t 0x00002ae8 0 .text.Page_ProgramData + $d 0x00002b80 0 .text.Page_ProgramData + $d 0x00002b88 0 .text.ReadDataArry_U8 + $t 0x00002b88 0 .text.ReadDataArry_U8 + $d 0x00002bb4 0 .text.tk_parameter_init + $t 0x00002bb4 0 .text.tk_parameter_init + $d 0x00002ca4 0 .text.tk_parameter_init + $d 0x00002cf4 0 .text.CORET_DeInit + $t 0x00002cf4 0 .text.CORET_DeInit + $d 0x00002d08 0 .text.CORET_DeInit + $d 0x00002d0c 0 .text.CORET_Int_Enable + $t 0x00002d0c 0 .text.CORET_Int_Enable + $d 0x00002d1c 0 .text.CORET_Int_Enable + $d 0x00002d24 0 .text.CORET_start + $t 0x00002d24 0 .text.CORET_start + $d 0x00002d30 0 .text.CORET_start + $d 0x00002d34 0 .text.CORET_CLKSOURCE_EX + $t 0x00002d34 0 .text.CORET_CLKSOURCE_EX + $d 0x00002d40 0 .text.CORET_CLKSOURCE_EX + $d 0x00002d44 0 .text.CORET_TICKINT_Enable + $t 0x00002d44 0 .text.CORET_TICKINT_Enable + $d 0x00002d50 0 .text.CORET_TICKINT_Enable + $d 0x00002d54 0 .text.CORET_reload + $t 0x00002d54 0 .text.CORET_reload + $d 0x00002d60 0 .text.CORET_reload + $d 0x00002d64 0 .text.startup.main + $t 0x00002d64 0 .text.startup.main + $d 0x00002da8 0 .text.startup.main + $d 0x00002db0 0 .text.delay_nms + $t 0x00002db0 0 .text.delay_nms + $d 0x00002ddc 0 .text.delay_nus + $t 0x00002ddc 0 .text.delay_nus + $d 0x00002e00 0 .text.EPT0_CONFIG + $t 0x00002e00 0 .text.EPT0_CONFIG + $d 0x00002e5c 0 .text.EPT0_CONFIG + $d 0x00002e60 0 .text.BT_CONFIG + $t 0x00002e60 0 .text.BT_CONFIG + $d 0x00002eb8 0 .text.BT_CONFIG + $d 0x00002ec0 0 .text.SYSCON_CONFIG + $t 0x00002ec0 0 .text.SYSCON_CONFIG + $d 0x00002f24 0 .text.APT32F102_init + $t 0x00002f24 0 .text.APT32F102_init + $d 0x00002f94 0 .text.APT32F102_init + $d 0x00002fa8 0 .text.SYSCONIntHandler + $t 0x00002fa8 0 .text.SYSCONIntHandler + $d 0x00003094 0 .text.SYSCONIntHandler + $d 0x00003098 0 .text.IFCIntHandler + $t 0x00003098 0 .text.IFCIntHandler + $d 0x000030fc 0 .text.IFCIntHandler + $d 0x00003100 0 .text.ADCIntHandler + $t 0x00003100 0 .text.ADCIntHandler + $d 0x00003164 0 .text.ADCIntHandler + $d 0x00003168 0 .text.EPT0IntHandler + $t 0x00003168 0 .text.EPT0IntHandler + $d 0x00003308 0 .text.EPT0IntHandler + $d 0x00003314 0 .text.WWDTHandler + $t 0x00003314 0 .text.WWDTHandler + $d 0x00003344 0 .text.WWDTHandler + $d 0x00003348 0 .text.GPT0IntHandler + $t 0x00003348 0 .text.GPT0IntHandler + $d 0x000033c4 0 .text.GPT0IntHandler + $d 0x000033c8 0 .text.RTCIntHandler + $t 0x000033c8 0 .text.RTCIntHandler + $d 0x00003430 0 .text.RTCIntHandler + $d 0x00003438 0 .text.UART0IntHandler + $t 0x00003438 0 .text.UART0IntHandler + $d 0x00003470 0 .text.UART0IntHandler + $d 0x00003474 0 .text.UART1IntHandler + $t 0x00003474 0 .text.UART1IntHandler + $d 0x000034ac 0 .text.UART1IntHandler + $d 0x000034b0 0 .text.UART2IntHandler + $t 0x000034b0 0 .text.UART2IntHandler + $d 0x00003530 0 .text.UART2IntHandler + $d 0x00003544 0 .text.SPI0IntHandler + $t 0x00003544 0 .text.SPI0IntHandler + $d 0x00003628 0 .text.SPI0IntHandler + $d 0x0000362c 0 .text.SIO0IntHandler + $t 0x0000362c 0 .text.SIO0IntHandler + $d 0x0000367c 0 .text.SIO0IntHandler + $d 0x00003680 0 .text.EXI0IntHandler + $t 0x00003680 0 .text.EXI0IntHandler + $d 0x000036ac 0 .text.EXI0IntHandler + $d 0x000036b0 0 .text.EXI1IntHandler + $t 0x000036b0 0 .text.EXI1IntHandler + $d 0x000036dc 0 .text.EXI1IntHandler + $d 0x000036e0 0 .text.EXI2to3IntHandler + $t 0x000036e0 0 .text.EXI2to3IntHandler + $d 0x00003724 0 .text.EXI2to3IntHandler + $d 0x00003728 0 .text.EXI4to9IntHandler + $t 0x00003728 0 .text.EXI4to9IntHandler + $d 0x00003780 0 .text.EXI4to9IntHandler + $d 0x00003784 0 .text.EXI10to15IntHandler + $t 0x00003784 0 .text.EXI10to15IntHandler + $d 0x000037e0 0 .text.EXI10to15IntHandler + $d 0x000037e4 0 .text.LPTIntHandler + $t 0x000037e4 0 .text.LPTIntHandler + $d 0x00003814 0 .text.LPTIntHandler + $d 0x00003818 0 .text.BT0IntHandler + $t 0x00003818 0 .text.BT0IntHandler + $d 0x00003860 0 .text.BT0IntHandler + $d 0x00003864 0 .text.BT1IntHandler + $t 0x00003864 0 .text.BT1IntHandler + $d 0x000038c0 0 .text.BT1IntHandler + $d 0x000038c8 0 .text.PriviledgeVioHandler + $t 0x000038c8 0 .text.PriviledgeVioHandler + $d 0x000038ca 0 .text.PendTrapHandler + $t 0x000038ca 0 .text.PendTrapHandler + $d 0x000038d2 0 .text.Trap3Handler + $t 0x000038d2 0 .text.Trap3Handler + $d 0x000038da 0 .text.Trap2Handler + $t 0x000038da 0 .text.Trap2Handler + $d 0x000038e2 0 .text.Trap1Handler + $t 0x000038e2 0 .text.Trap1Handler + $d 0x000038ea 0 .text.Trap0Handler + $t 0x000038ea 0 .text.Trap0Handler + $d 0x000038f2 0 .text.UnrecExecpHandler + $t 0x000038f2 0 .text.UnrecExecpHandler + $d 0x000038fa 0 .text.BreakPointHandler + $t 0x000038fa 0 .text.BreakPointHandler + $d 0x00003902 0 .text.AccessErrHandler + $t 0x00003902 0 .text.AccessErrHandler + $d 0x0000390a 0 .text.IllegalInstrHandler + $t 0x0000390a 0 .text.IllegalInstrHandler + $d 0x00003912 0 .text.MisalignedHandler + $t 0x00003912 0 .text.MisalignedHandler + $d 0x0000391a 0 .text.CNTAIntHandler + $t 0x0000391a 0 .text.CNTAIntHandler + $d 0x00003922 0 .text.I2CIntHandler + $t 0x00003922 0 .text.I2CIntHandler + $d 0x0000392c 0 .text.__divsi3 + $t 0x0000392c 0 .text.__divsi3 + $d 0x0000394c 0 .text.__divsi3 + $d 0x00003950 0 .text.__udivsi3 + $t 0x00003950 0 .text.__udivsi3 + $d 0x00003970 0 .text.__udivsi3 + $d 0x00003974 0 .text.__modsi3 + $t 0x00003974 0 .text.__modsi3 + $d 0x00003994 0 .text.__modsi3 + $d 0x00003998 0 .text.__umodsi3 + $t 0x00003998 0 .text.__umodsi3 + $d 0x000039b8 0 .text.__umodsi3 + $d 0x000039bc 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000039bc 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000039c2 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000039c2 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000039c8 0 .text.UARTx_Init + $t 0x000039c8 0 .text.UARTx_Init + $d 0x00003ab8 0 .text.UARTx_Init + $d 0x00003ae4 0 .text.UART2_RecvINT_Processing + $t 0x00003ae4 0 .text.UART2_RecvINT_Processing + $d 0x00003b40 0 .text.UART2_RecvINT_Processing + $d 0x00003b4c 0 .text.UART2_TASK + $t 0x00003b4c 0 .text.UART2_TASK + $d 0x00003be0 0 .text.UART2_TASK + $d 0x00003bf0 0 .text.MCU485_SendData + $t 0x00003bf0 0 .text.MCU485_SendData + $d 0x00003c6c 0 .text.MCU485_SendData + $d 0x00003c78 0 .text.Dbg_Println + $t 0x00003c78 0 .text.Dbg_Println + $d 0x00003c84 0 .text.Dbg_Print_Buff + $t 0x00003c84 0 .text.Dbg_Print_Buff + $d 0x00003c88 0 .text.Touch_Key_Init + $t 0x00003c88 0 .text.Touch_Key_Init + $d 0x00003cdc 0 .text.Touch_Key_Init + $d 0x00003cf0 0 .text.TouchKey_RS485_Printf + $t 0x00003cf0 0 .text.TouchKey_RS485_Printf + $d 0x00003e18 0 .text.TouchKey_RS485_Printf + $d 0x00003e28 0 .text.Get_TouchKey_CH_State + $t 0x00003e28 0 .text.Get_TouchKey_CH_State + $d 0x00003e34 0 .text.Get_TouchKey_CH_State + $t 0x00003e3a 0 .text.Get_TouchKey_CH_State + $d 0x00003e60 0 .text.Get_TouchKey_CH_State + $d 0x00003e64 0 .text.Touch_Key_Event_Handling + $t 0x00003e64 0 .text.Touch_Key_Event_Handling + $d 0x00003f0c 0 .text.Touch_Key_Event_Handling + $d 0x00003f10 0 .text.TouchKey_Set_Interface_Task + $t 0x00003f10 0 .text.TouchKey_Set_Interface_Task + $d 0x00003f40 0 .text.TouchKey_Set_Interface_Task + $d 0x00003f4c 0 .text.Touch_Key_Task + $t 0x00003f4c 0 .text.Touch_Key_Task + $d 0x0000402c 0 .text.Touch_Key_Task + $d 0x0000403c 0 .text.TouchKey_CheckSum + $t 0x0000403c 0 .text.TouchKey_CheckSum + $d 0x00004054 0 .text.TouchKey_Comm_Reply + $t 0x00004054 0 .text.TouchKey_Comm_Reply + $d 0x000040b8 0 .text.TouchKey_Comm_Reply + $d 0x000040bc 0 .text.TouchKey_SetPara_Processing + $t 0x000040bc 0 .text.TouchKey_SetPara_Processing + $d 0x00004160 0 .text.TouchKey_SetPara_Processing + $d 0x00004174 0 .text.TouchKey_ReadPara_Processing + $t 0x00004174 0 .text.TouchKey_ReadPara_Processing + $d 0x00004264 0 .text.TouchKey_ReadPara_Processing + $d 0x0000426c 0 .text.TouchKey_DugPrintf_Processing + $t 0x0000426c 0 .text.TouchKey_DugPrintf_Processing + $d 0x000042a0 0 .text.TouchKey_DugPrintf_Processing + $d 0x000042a4 0 .text.TouchKey_ReadEnve_Processing + $t 0x000042a4 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000434c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004354 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004354 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004370 0 .text.TouchKey_Comm_Processing + $t 0x00004370 0 .text.TouchKey_Comm_Processing + $d 0x000043fe 0 .text.TouchKey_Comm_Processing + $t 0x00004404 0 .text.TouchKey_Comm_Processing + $d 0x0000442c 0 .text.TouchKey_Comm_Processing + $d 0x00004448 0 .text.EEPROM_CheckSum + $t 0x00004448 0 .text.EEPROM_CheckSum + $d 0x00004460 0 .text.EEPROM_ReadParaInfo + $t 0x00004460 0 .text.EEPROM_ReadParaInfo + $d 0x000044cc 0 .text.EEPROM_ReadParaInfo + $d 0x000044d4 0 .text.EEPROM_WriteParaInfo + $t 0x000044d4 0 .text.EEPROM_WriteParaInfo + $d 0x00004514 0 .text.EEPROM_WriteParaInfo + $d 0x00004518 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004518 0 .text.EEPROM_Validate_ParaInfo + $d 0x0000459c 0 .text.EEPROM_Validate_ParaInfo + $d 0x000045a4 0 .text.EEPROM_Default_ParaInfo + $t 0x000045a4 0 .text.EEPROM_Default_ParaInfo + $d 0x000045c4 0 .text.EEPROM_Init + $t 0x000045c4 0 .text.EEPROM_Init + $d 0x00004608 0 .text.EEPROM_Init + $d 0x00004614 0 .text.EEPROM_WriteTouchPara + $t 0x00004614 0 .text.EEPROM_WriteTouchPara + $d 0x00004674 0 .text.EEPROM_WriteTouchPara + $d 0x00004680 0 .text.EEPROM_ReadTouchPara + $t 0x00004680 0 .text.EEPROM_ReadTouchPara + $d 0x00004718 0 .text.EEPROM_ReadTouchPara + $d 0x0000472c 0 .text.EEPROM_Validate_TouchPara + $t 0x0000472c 0 .text.EEPROM_Validate_TouchPara + $d 0x000047d0 0 .text.EEPROM_Validate_TouchPara + $d 0x000047d4 0 .text.EEPROM_Default_TouchPara + $t 0x000047d4 0 .text.EEPROM_Default_TouchPara + $d 0x00004814 0 .text.EEPROM_TouchPara_Printf + $t 0x00004814 0 .text.EEPROM_TouchPara_Printf + $d 0x00004878 0 .text.EEPROM_TouchPara_Printf + $d 0x00004894 0 .text.ADC_Init + $t 0x00004894 0 .text.ADC_Init + $d 0x000048ec 0 .text.ADC_Init + $d 0x000048f0 0 .text.Thermistor_Array_Transform + $t 0x000048f0 0 .text.Thermistor_Array_Transform + $d 0x00004930 0 .text.Thermistor_Array_Transform + $d 0x00004938 0 .text.Calculate_ADC_Sample_Average + $t 0x00004938 0 .text.Calculate_ADC_Sample_Average + $d 0x000049e4 0 .text.Calculate_ADC_Sample_Average + $d 0x000049f8 0 .text.ADC_Sample_Task + $t 0x000049f8 0 .text.ADC_Sample_Task + $d 0x00004a98 0 .text.ADC_Sample_Task + $d 0x00004aa8 0 .text.Get_Temp_Val + $t 0x00004aa8 0 .text.Get_Temp_Val + $d 0x00004ab4 0 .text.Get_Temp_Val + $d 0x00004ab8 0 .text.Contol_Switch_Light + $t 0x00004ab8 0 .text.Contol_Switch_Light + $d 0x00004ac8 0 .text.Contol_Switch_Light + $t 0x00004ad4 0 .text.Contol_Switch_Light + $d 0x00004e50 0 .text.Contol_Switch_Light + $t 0x00004e58 0 .text.Contol_Switch_Light + $d 0x00004ea4 0 .text.Contol_Switch_Light_2 + $t 0x00004ea4 0 .text.Contol_Switch_Light_2 + $d 0x00004eb4 0 .text.Contol_Switch_Light_2 + $t 0x00004ec0 0 .text.Contol_Switch_Light_2 + $d 0x0000523c 0 .text.Contol_Switch_Light_2 + $t 0x00005244 0 .text.Contol_Switch_Light_2 + $d 0x00005290 0 .text.Contol_Switch_ClickAction + $t 0x00005290 0 .text.Contol_Switch_ClickAction + $d 0x000052b4 0 .text.Contol_Switch_ClickAction + $d 0x000052b8 0 .text.Get_TM1812_State_Change + $t 0x000052b8 0 .text.Get_TM1812_State_Change + $d 0x000052fc 0 .text.Get_TM1812_State_Change + $d 0x00005304 0 .text.TimeCall_SIO_Send + $t 0x00005304 0 .text.TimeCall_SIO_Send + $d 0x00005418 0 .text.TimeCall_SIO_Send + $d 0x00005424 0 .text.Tm1812_Task + $t 0x00005424 0 .text.Tm1812_Task + $d 0x0000544c 0 .text.Tm1812_Task + $d 0x00005458 0 .text.Tm1812_Ch_Insert_Data + $t 0x00005458 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005474 0 .text.Tm1812_Ch_Insert_Data + $d 0x0000547c 0 .text.TM1812_Control_CH_State + $t 0x0000547c 0 .text.TM1812_Control_CH_State + $d 0x000054d8 0 .text.TM1812_Control_CH_State + $d 0x000054ec 0 .text.TM1812_Control_CH_CurrState + $t 0x000054ec 0 .text.TM1812_Control_CH_CurrState + $d 0x00005544 0 .text.TM1812_Control_CH_CurrState + $d 0x00005550 0 .text.TM1812_LED_Init + $t 0x00005550 0 .text.TM1812_LED_Init + $d 0x000055a8 0 .text.TM1812_LED_Init + $d 0x000055b0 0 .text.HT1621_WR_Data + $t 0x000055b0 0 .text.HT1621_WR_Data + $d 0x000055f4 0 .text.HT1621_WR_Data + $d 0x000055f8 0 .text.HT1621_WR_CMD + $t 0x000055f8 0 .text.HT1621_WR_CMD + $d 0x00005624 0 .text.HT1621_WR_CMD + $d 0x00005628 0 .text.HT1621_Init + $t 0x00005628 0 .text.HT1621_Init + $d 0x000056c8 0 .text.HT1621_Init + $d 0x000056cc 0 .text.HT1621_Clear + $t 0x000056cc 0 .text.HT1621_Clear + $d 0x00005714 0 .text.HT1621_Clear + $d 0x0000571c 0 .text.HT1621_ALLON + $t 0x0000571c 0 .text.HT1621_ALLON + $d 0x00005758 0 .text.HT1621_ALLON + $d 0x0000575c 0 .text.HT1621_Refresh_Data + $t 0x0000575c 0 .text.HT1621_Refresh_Data + $d 0x000057a0 0 .text.HT1621_Refresh_Data + $d 0x000057a8 0 .text.Set_Temperature_Display + $t 0x000057a8 0 .text.Set_Temperature_Display + $d 0x0000586c 0 .text.Set_Temperature_Display + $d 0x00005878 0 .text.Local_Temperature_Display + $t 0x00005878 0 .text.Local_Temperature_Display + $d 0x0000593c 0 .text.Local_Temperature_Display + $d 0x00005948 0 .text.Control_Mode + $t 0x00005948 0 .text.Control_Mode + $d 0x00005952 0 .text.Control_Mode + $t 0x00005960 0 .text.Control_Mode + $d 0x00005b84 0 .text.Control_Mode + $d 0x00005b8c 0 .text.Control_wind_velocity + $t 0x00005b8c 0 .text.Control_wind_velocity + $d 0x00005b98 0 .text.Control_wind_velocity + $t 0x00005b9e 0 .text.Control_wind_velocity + $d 0x00005c58 0 .text.Control_wind_velocity + $d 0x00005c5c 0 .text.Control_Prompt_Text + $t 0x00005c5c 0 .text.Control_Prompt_Text + $d 0x00005cfc 0 .text.Control_Prompt_Text + $d 0x00005d00 0 .text.Controlled_Buzzer + $t 0x00005d00 0 .text.Controlled_Buzzer + $d 0x00005d40 0 .text.Controlled_Buzzer + $d 0x00005d48 0 .text.Controlled_LCD_Backlight + $t 0x00005d48 0 .text.Controlled_LCD_Backlight + $d 0x00005e1c 0 .text.Controlled_LCD_Backlight + $d 0x00005e24 0 .text.Controlled_Key_Backlight + $t 0x00005e24 0 .text.Controlled_Key_Backlight + $d 0x00005e50 0 .text.Controlled_Key_Backlight + $d 0x00005e54 0 .text.Set_Device_ADDR + $t 0x00005e54 0 .text.Set_Device_ADDR + $d 0x00005ee8 0 .text.Set_Device_ADDR + $d 0x00005ef0 0 .text.Set_Temp_Difference + $t 0x00005ef0 0 .text.Set_Temp_Difference + $d 0x00005f4c 0 .text.Set_Temp_Difference + $d 0x00005f54 0 .text.HT1621_Refresh_Task + $t 0x00005f54 0 .text.HT1621_Refresh_Task + $d 0x00005fcc 0 .text.HT1621_Refresh_Task + $d 0x00005fe4 0 .text.TemCtrl_Init + $t 0x00005fe4 0 .text.TemCtrl_Init + $d 0x00006108 0 .text.TemCtrl_Init + $d 0x00006120 0 .text.TemCtrl_Model_Set + $t 0x00006120 0 .text.TemCtrl_Model_Set + $d 0x00006164 0 .text.TemCtrl_Model_Set + $d 0x0000616c 0 .text.TemCtrl_Fan_Set + $t 0x0000616c 0 .text.TemCtrl_Fan_Set + $d 0x0000618a 0 .text.TemCtrl_Fan_Set + $t 0x00006190 0 .text.TemCtrl_Fan_Set + $d 0x000061b8 0 .text.TemCtrl_Fan_Set + $d 0x000061c0 0 .text.TemCtrl_Temperature_Dec + $t 0x000061c0 0 .text.TemCtrl_Temperature_Dec + $d 0x000061e8 0 .text.TemCtrl_Temperature_Dec + $d 0x000061f0 0 .text.TemCtrl_Temperature_Add + $t 0x000061f0 0 .text.TemCtrl_Temperature_Add + $d 0x00006218 0 .text.TemCtrl_Temperature_Add + $d 0x00006220 0 .text.TemCtrl_OnOff_Set + $t 0x00006220 0 .text.TemCtrl_OnOff_Set + $d 0x0000624c 0 .text.TemCtrl_OnOff_Set + $d 0x00006254 0 .text.Tem_Valve_Ctrl + $t 0x00006254 0 .text.Tem_Valve_Ctrl + $d 0x00006324 0 .text.Tem_Valve_Ctrl + $d 0x00006330 0 .text.TemCtrl_Pro + $t 0x00006330 0 .text.TemCtrl_Pro + $d 0x00006484 0 .text.TemCtrl_Pro + $d 0x00006498 0 .text.KEY1_Model_Press_Fun + $t 0x00006498 0 .text.KEY1_Model_Press_Fun + $d 0x00006564 0 .text.KEY1_Model_Press_Fun + $d 0x00006578 0 .text.KEY2_Fan_Press_Fun + $t 0x00006578 0 .text.KEY2_Fan_Press_Fun + $d 0x00006644 0 .text.KEY2_Fan_Press_Fun + $d 0x00006658 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00006658 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00006754 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00006768 0 .text.KEY3_Long_Press_Fun + $t 0x00006768 0 .text.KEY3_Long_Press_Fun + $d 0x000067d0 0 .text.KEY3_Long_Press_Fun + $d 0x000067e0 0 .text.KEY4_TempDec_Press_Fun + $t 0x000067e0 0 .text.KEY4_TempDec_Press_Fun + $d 0x000068dc 0 .text.KEY4_TempDec_Press_Fun + $d 0x000068f0 0 .text.KEY4_Long_Press + $t 0x000068f0 0 .text.KEY4_Long_Press + $d 0x00006958 0 .text.KEY4_Long_Press + $d 0x00006968 0 .text.KEY5_OnOff_Press_Fun + $t 0x00006968 0 .text.KEY5_OnOff_Press_Fun + $d 0x000069d8 0 .text.KEY5_OnOff_Press_Fun + $d 0x000069ec 0 .text.TempCtrl_OnOff_DisPlay + $t 0x000069ec 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006a38 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006a40 0 .text.DisPlay_Init + $t 0x00006a40 0 .text.DisPlay_Init + $d 0x00006a58 0 .text.DisPlay_Init + $d 0x00006a60 0 .text.Data_Resend + $t 0x00006a60 0 .text.Data_Resend + $d 0x00006ad4 0 .text.Data_Resend + $d 0x00006ae4 0 .text.Switch_Report_Task + $t 0x00006ae4 0 .text.Switch_Report_Task + $d 0x00006b64 0 .text.Switch_Report_Task + $d 0x00006b74 0 .text.DisPlay_Task + $t 0x00006b74 0 .text.DisPlay_Task + $d 0x00006d76 0 .text.DisPlay_Task + $t 0x00006d7e 0 .text.DisPlay_Task + $d 0x00006e98 0 .text.DisPlay_Task + $d 0x00006ec4 0 .text.Debug_Init + $t 0x00006ec4 0 .text.Debug_Init + $d 0x00006ef8 0 .text.Debug_Init + $d 0x00006f00 0 .text.Dev_SaveData + $t 0x00006f00 0 .text.Dev_SaveData + $d 0x00006f88 0 .text.Dev_SaveData + $d 0x00006f98 0 .text.Debug_Task + $t 0x00006f98 0 .text.Debug_Task + $d 0x00007004 0 .text.Debug_Task + $d 0x00007014 0 .text.Relay_High + $t 0x00007014 0 .text.Relay_High + $d 0x00007030 0 .text.Relay_Mid + $t 0x00007030 0 .text.Relay_Mid + $d 0x0000704c 0 .text.Relay_Low + $t 0x0000704c 0 .text.Relay_Low + $d 0x00007068 0 .text.Relay_Stop + $t 0x00007068 0 .text.Relay_Stop + $d 0x00007084 0 .text.NetCRC16 + $t 0x00007084 0 .text.NetCRC16 + $d 0x000070c8 0 .text.NetCRC16 + $d 0x000070d0 0 .text.GetCRC16 + $t 0x000070d0 0 .text.GetCRC16 + $d 0x00007104 0 .text.GetCRC16 + $d 0x0000710c 0 .text.SOR_CRC + $t 0x0000710c 0 .text.SOR_CRC + $d 0x00007124 0 .text.Rs485AskCycleSend + $t 0x00007124 0 .text.Rs485AskCycleSend + $d 0x00007208 0 .text.Rs485AskCycleSend + $d 0x00007210 0 .text.Rs485AskCtrlSend + $t 0x00007210 0 .text.Rs485AskCtrlSend + $d 0x0000725c 0 .text.Rs485AskCtrlSend + $d 0x00007260 0 .text.Rs485AskReadSend + $t 0x00007260 0 .text.Rs485AskReadSend + $d 0x000072b8 0 .text.Rs485AskReadSend + $d 0x000072bc 0 .text.Temp_Rec_Analysis + $t 0x000072bc 0 .text.Temp_Rec_Analysis + $d 0x00007324 0 .text.Temp_Rec_Analysis + $t 0x00007336 0 .text.Temp_Rec_Analysis + $d 0x0000735c 0 .text.Temp_Rec_Analysis + $t 0x00007360 0 .text.Temp_Rec_Analysis + $d 0x0000743c 0 .text.Temp_Rec_Analysis + $t 0x00007440 0 .text.Temp_Rec_Analysis + $d 0x00007454 0 .text.Temp_Rec_Analysis + $d 0x00007464 0 .text.Tem_Rs485_Rec_Pro + $t 0x00007464 0 .text.Tem_Rs485_Rec_Pro + $d 0x0000751c 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x0000752c F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000752c 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x0000752c 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007538 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000753c 0 .text.tk_clk_config + $t 0x0000753c 0 .text.tk_clk_config + $d 0x00007560 0 .text.tk_clk_config + $d 0x00007564 0 .text.TK_con0_config + $t 0x00007564 0 .text.TK_con0_config + $d 0x00007614 0 .text.TK_con0_config + $d 0x00007620 0 .text.TK_IO_Enable + $t 0x00007620 0 .text.TK_IO_Enable + $d 0x00007664 0 .text.TK_IO_Enable + $t 0x00007674 0 .text.TK_IO_Enable + $d 0x00007748 0 .text.TK_IO_Enable + $d 0x00007754 0 .text.TK_Sampling_prog + $t 0x00007754 0 .text.TK_Sampling_prog + $d 0x0000779c 0 .text.TK_Sampling_prog + $d 0x000077ac 0 .text.TKEYIntHandler + $t 0x000077ac 0 .text.TKEYIntHandler + $d 0x00007828 0 .text.TKEYIntHandler + $d 0x00007834 0 .text.get_key_number + $t 0x00007834 0 .text.get_key_number + $d 0x00007858 0 .text.get_key_number + $d 0x0000785c 0 .text.TK_Baseline_prog + $t 0x0000785c 0 .text.TK_Baseline_prog + $d 0x000078c4 0 .text.TK_Baseline_prog + $d 0x000078e0 0 .text.TK_Scan_Start + $t 0x000078e0 0 .text.TK_Scan_Start + $d 0x000078f8 0 .text.TK_Scan_Start + $d 0x00007900 0 .text.TK_Keymap_prog + $t 0x00007900 0 .text.TK_Keymap_prog + $d 0x00007a48 0 .text.TK_Keymap_prog + $d 0x00007a80 0 .text.TK_overflow_predict + $t 0x00007a80 0 .text.TK_overflow_predict + $d 0x00007b68 0 .text.TK_overflow_predict + $d 0x00007b9c 0 .text.TK_Baseline_tracking + $t 0x00007b9c 0 .text.TK_Baseline_tracking + $d 0x00007d40 0 .text.TK_Baseline_tracking + $d 0x00007d6c 0 .text.TK_result_prog + $t 0x00007d6c 0 .text.TK_result_prog + $d 0x00007dac 0 .text.TK_result_prog + $d 0x00007dc0 0 .text.CORETHandler + $t 0x00007dc0 0 .text.CORETHandler + $d 0x00007e20 0 .text.CORETHandler + $d 0x00007e38 0 .text.get_key_seq + $t 0x00007e38 0 .text.get_key_seq + $d 0x00007e64 0 .text.get_key_seq + $d 0x00007e6c 0 .text.CORET_CONFIG + $t 0x00007e6c 0 .text.CORET_CONFIG + $d 0x00007e9c 0 .text.CORET_CONFIG + $d 0x00007ea4 0 .text.tk_chxval_seqxcon_clr + $t 0x00007ea4 0 .text.tk_chxval_seqxcon_clr + $d 0x00007ebc 0 .text.tk_chxval_seqxcon_clr + $d 0x00007ec0 0 .text.tk_reserved_init + $t 0x00007ec0 0 .text.tk_reserved_init + $d 0x00007ed4 0 .text.tk_reserved_init + $d 0x00007ee8 0 .text.tk_init + $t 0x00007ee8 0 .text.tk_init + $d 0x00007f24 0 .text.tk_init + $t 0x00007f2a 0 .text.tk_init + $d 0x00008014 0 .text.tk_init + $d 0x00008068 0 .text.std_clk_calib + $t 0x00008068 0 .text.std_clk_calib + $d 0x000082b0 0 .text.std_clk_calib + __func__.6359 0x000082ec O 28 .rodata + __func__.6397 0x00008308 O 25 .rodata + bp 0x00008660 O 16 .rodata + dp_l 0x00008670 O 16 .rodata + dp_h 0x00008680 O 16 .rodata + minilibc_rand_seed 0x200000a4 O 4 .data + NUM.6378 0x200000b0 O 1 .bss + adc_tick.6292 0x200000d0 O 4 .bss + test_tick.6356 0x200001c0 O 4 .bss + tick.6318 0x200001c4 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __adddf3 0x00001054 F 46 .text + __subdf3 0x00001084 F 54 .text + __muldf3 0x000010bc F 564 .text + __divdf3 0x000012f0 F 340 .text + __gtdf2 0x00001444 F 60 .text + __gedf2 0x00001480 F 60 .text + __ledf2 0x000014bc F 58 .text + __floatsidf 0x000014f8 F 112 .text + __fixdfsi 0x00001568 F 112 .text + __floatunsidf 0x000015d8 F 84 .text + __muldi3 0x0000162c F 68 .text + __clzsi2 0x00001670 F 64 .text + __pack_d 0x000016b0 F 412 .text + __unpack_d 0x0000184c F 196 .text + __fpcmp_parts_d 0x00001910 F 140 .text + __GI_rand 0x0000199c F 0 .text + rand 0x0000199c w F 20 .text + __GI_srand 0x000019bc F 6 .text + srand 0x000019bc w F 6 .text + __memset_fast 0x000019c8 w F 136 .text + memset 0x000019c8 w F 136 .text + __memcpy_fast 0x00001a50 w F 100 .text + memcpy 0x00001a50 w F 100 .text + __main 0x00001ab4 F 56 .text.__main + SYSCON_RST_VALUE 0x00001b60 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001bac F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001bdc F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c64 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c8c F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001cc8 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001cdc F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001cf4 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001d14 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001d30 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001d4c F 64 .text.EXTI_trigger_CMD + SYSCON_Int_Enable 0x00001d8c F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x00001d98 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001dbc F 48 .text.Set_INT_Priority + GPIO_Init 0x00001dec F 224 .text.GPIO_Init + GPIO_DriveStrength_EN 0x00001ecc F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001eda F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001ee2 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00001eea F 22 .text.GPIO_Reverse + LPT_Soft_Reset 0x00001f00 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00001f14 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00001f24 F 28 .text.BT_DeInit + BT_Start 0x00001f40 F 8 .text.BT_Start + BT_Soft_Reset 0x00001f48 F 10 .text.BT_Soft_Reset + BT_Configure 0x00001f52 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00001f6a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00001f96 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00001f9c F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00001fb0 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00001fc0 F 32 .text.SIO_DeInit + SIO_IO_Init 0x00001fe0 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x00002040 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x00002050 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x000020a0 F 24 .text.UART0_DeInit + UART1_DeInit 0x000020b8 F 24 .text.UART1_DeInit + UART2_DeInit 0x000020d0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000020e8 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00002104 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002120 F 236 .text.UART_IO_Init + UARTInit 0x0000220c F 16 .text.UARTInit + UARTInitRxTxIntEn 0x0000221c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x0000222c F 30 .text.UARTTransmit + EPT_Software_Prg 0x0000224c F 32 .text.EPT_Software_Prg + EPT_Start 0x0000226c F 40 .text.EPT_Start + EPT_Stop 0x00002294 F 40 .text.EPT_Stop + EPT_IO_SET 0x000022bc F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x000024f4 F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x0000252c F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x00002604 F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x00002620 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002684 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x000026b4 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x000026e0 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000026ec F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00002714 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002728 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002740 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002754 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x000027d0 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002968 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002ae8 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002b88 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002bb4 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002cf4 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002d0c F 24 .text.CORET_Int_Enable + CORET_start 0x00002d24 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002d34 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002d44 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002d54 F 16 .text.CORET_reload + main 0x00002d64 F 76 .text.startup.main + delay_nms 0x00002db0 F 44 .text.delay_nms + delay_nus 0x00002ddc F 34 .text.delay_nus + EPT0_CONFIG 0x00002e00 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002e60 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002ec0 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002f24 F 132 .text.APT32F102_init + SYSCONIntHandler 0x00002fa8 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003098 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003100 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003168 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003314 F 52 .text.WWDTHandler + GPT0IntHandler 0x00003348 F 128 .text.GPT0IntHandler + RTCIntHandler 0x000033c8 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003438 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003474 F 60 .text.UART1IntHandler + UART2IntHandler 0x000034b0 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00003544 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x0000362c F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003680 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x000036b0 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000036e0 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00003728 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003784 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x000037e4 F 52 .text.LPTIntHandler + BT0IntHandler 0x00003818 F 76 .text.BT0IntHandler + BT1IntHandler 0x00003864 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x000038c8 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000038ca F 8 .text.PendTrapHandler + Trap3Handler 0x000038d2 F 8 .text.Trap3Handler + Trap2Handler 0x000038da F 8 .text.Trap2Handler + Trap1Handler 0x000038e2 F 8 .text.Trap1Handler + Trap0Handler 0x000038ea F 8 .text.Trap0Handler + UnrecExecpHandler 0x000038f2 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000038fa F 8 .text.BreakPointHandler + AccessErrHandler 0x00003902 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000390a F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003912 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000391a F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003922 F 8 .text.I2CIntHandler + __divsi3 0x0000392c F 36 .text.__divsi3 + __udivsi3 0x00003950 F 36 .text.__udivsi3 + __modsi3 0x00003974 F 36 .text.__modsi3 + __umodsi3 0x00003998 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000039bc F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000039c2 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000039c8 F 284 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003ae4 F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003b4c F 164 .text.UART2_TASK + MCU485_SendData 0x00003bf0 F 136 .text.MCU485_SendData + Dbg_Println 0x00003c78 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003c84 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003c88 F 104 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003cf0 F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003e28 F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003e64 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003f10 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003f4c F 240 .text.Touch_Key_Task + TouchKey_CheckSum 0x0000403c F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00004054 F 104 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x000040bc F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00004174 F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x0000426c F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x000042a4 F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004354 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004370 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004448 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004460 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000044d4 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004518 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x000045a4 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x000045c4 F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x00004614 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004680 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x0000472c F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000047d4 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004814 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004894 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000048f0 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004938 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000049f8 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004aa8 F 16 .text.Get_Temp_Val + Contol_Switch_Light 0x00004ab8 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00004ea4 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x00005290 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x000052b8 F 76 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00005304 F 288 .text.TimeCall_SIO_Send + Tm1812_Task 0x00005424 F 52 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00005458 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x0000547c F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x000054ec F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00005550 F 96 .text.TM1812_LED_Init + HT1621_WR_Data 0x000055b0 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000055f8 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005628 F 164 .text.HT1621_Init + HT1621_Clear 0x000056cc F 80 .text.HT1621_Clear + HT1621_ALLON 0x0000571c F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x0000575c F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x000057a8 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x00005878 F 208 .text.Local_Temperature_Display + Control_Mode 0x00005948 F 580 .text.Control_Mode + Control_wind_velocity 0x00005b8c F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x00005c5c F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00005d00 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00005d48 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00005e24 F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00005e54 F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00005ef0 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00005f54 F 144 .text.HT1621_Refresh_Task + TemCtrl_Init 0x00005fe4 F 316 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00006120 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x0000616c F 84 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x000061c0 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x000061f0 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00006220 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00006254 F 220 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00006330 F 360 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00006498 F 224 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x00006578 F 224 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00006658 F 272 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00006768 F 120 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x000067e0 F 272 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x000068f0 F 120 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00006968 F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x000069ec F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00006a40 F 32 .text.DisPlay_Init + Data_Resend 0x00006a60 F 132 .text.Data_Resend + Switch_Report_Task 0x00006ae4 F 144 .text.Switch_Report_Task + DisPlay_Task 0x00006b74 F 848 .text.DisPlay_Task + Debug_Init 0x00006ec4 F 60 .text.Debug_Init + Dev_SaveData 0x00006f00 F 152 .text.Dev_SaveData + Debug_Task 0x00006f98 F 124 .text.Debug_Task + Relay_High 0x00007014 F 28 .text.Relay_High + Relay_Mid 0x00007030 F 28 .text.Relay_Mid + Relay_Low 0x0000704c F 28 .text.Relay_Low + Relay_Stop 0x00007068 F 28 .text.Relay_Stop + NetCRC16 0x00007084 F 76 .text.NetCRC16 + GetCRC16 0x000070d0 F 60 .text.GetCRC16 + SOR_CRC 0x0000710c F 22 .text.SOR_CRC + Rs485AskCycleSend 0x00007124 F 236 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00007210 F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00007260 F 92 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x000072bc F 424 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00007464 F 200 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x0000753c F 40 .text.tk_clk_config + TK_con0_config 0x00007564 F 188 .text.TK_con0_config + TK_IO_Enable 0x00007620 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x00007754 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x000077ac F 136 .text.TKEYIntHandler + get_key_number 0x00007834 F 40 .text.get_key_number + TK_Baseline_prog 0x0000785c F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x000078e0 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00007900 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00007a80 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00007b9c F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00007d6c F 84 .text.TK_result_prog + CORETHandler 0x00007dc0 F 120 .text.CORETHandler + get_key_seq 0x00007e38 F 52 .text.get_key_seq + CORET_CONFIG 0x00007e6c F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00007ea4 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x00007ec0 F 40 .text.tk_reserved_init + tk_init 0x00007ee8 F 368 .text.tk_init + std_clk_calib 0x00008068 F 644 .text.std_clk_calib + R_Array 0x00008322 O 820 .rodata + Diaital 0x00008656 O 10 .rodata + __thenan_df 0x00008690 O 20 .rodata + __clz_tab 0x000086a4 O 256 .rodata + _end_rodata 0x00008ba4 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 + MCU_Touch_CH 0x20000068 O 5 .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 0x200000a8 0 .data + Sav_Temp 0x200000a8 O 4 .bss + _bss_start 0x200000a8 0 .bss + Sys_RSR 0x200000ac O 4 .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 + Dbg_Switch 0x200000cc O 4 .bss + tm1812_param 0x200000d4 O 232 .bss + K 0x200001bc O 1 .bss + Press_debounce_data 0x200001c8 O 1 .bss + TK_Lowpower_mode 0x200001c9 O 1 .bss + TK_Lowpower_level 0x200001ca O 1 .bss + TK_longpress_time 0x200001cc O 4 .bss + Release_debounce_data 0x200001d0 O 1 .bss + Key_mode 0x200001d1 O 1 .bss + TK_icon 0x200001d2 O 34 .bss + MultiTimes_Filter 0x200001f4 O 1 .bss + Base_Speed 0x200001f5 O 1 .bss + TK_IO_ENABLE 0x200001f8 O 4 .bss + Valid_Key_Num 0x200001fc O 1 .bss + TK_senprd 0x200001fe O 34 .bss + TK_Wakeup_level 0x20000220 O 1 .bss + TK_Triggerlevel 0x20000222 O 34 .bss + TK_EC_LEVEL 0x20000244 O 2 .bss + TK_FVR_LEVEL 0x20000246 O 2 .bss + TK_BaseCnt 0x20000248 O 4 .bss + TK_PSEL_MODE 0x2000024c O 2 .bss + R_CMPB_BUF 0x20000250 O 4 .bss + R_CMPA_BUF 0x20000254 O 4 .bss + R_SIORX_buf 0x20000258 O 40 .bss + g_uart 0x20000280 O 360 .bss + touch_para 0x200003e8 O 28 .bss + g_key 0x20000404 O 52 .bss + g_eeprom 0x20000438 O 8 .bss + g_adc 0x20000440 O 55 .bss + g_switch 0x20000478 O 28 .bss + HT1621 0x20000494 O 64 .bss + TempCtrl 0x200004d4 O 37 .bss + Debug_Inf 0x200004f9 O 14 .bss + baseline_data0 0x20000508 O 34 .bss + TK_Postive_build2 0x2000052a O 17 .bss + Key_Map1 0x2000053c O 4 .bss + offset_data2_abs 0x20000540 O 34 .bss + scan_f 0x20000562 O 1 .bss + offset_data1_abs 0x20000564 O 34 .bss + Release_debounce0 0x20000586 O 17 .bss + Key_Map0 0x20000598 O 4 .bss + bsae_over_f 0x2000059c O 1 .bss + scan_cnt 0x2000059e O 2 .bss + Press_debounce0 0x200005a0 O 17 .bss + offset_data0 0x200005b2 O 34 .bss + sampling_data1 0x200005d4 O 34 .bss + Key_Map2 0x200005f8 O 4 .bss + Release_debounce1 0x200005fc O 17 .bss + tk_overflow_f 0x2000060d O 1 .bss + TK_Negtive_build2 0x2000060e O 17 .bss + base_update_f 0x2000061f O 1 .bss + TK_Postive_build1 0x20000620 O 17 .bss + time_cnt 0x20000634 O 4 .bss + lpt_scan_pend_cnt 0x20000638 O 2 .bss + TK_track_cnt 0x2000063a O 1 .bss + Key_Map 0x2000063c O 4 .bss + baseline_data1 0x20000640 O 34 .bss + TK_Postive_build0 0x20000662 O 17 .bss + sampling_data2 0x20000674 O 34 .bss + offset_data1 0x20000696 O 34 .bss + TK_ovrdect_cnt 0x200006b8 O 1 .bss + Press_debounce2 0x200006b9 O 17 .bss + TK_Negtive_build1 0x200006ca O 17 .bss + tk_num 0x200006db O 1 .bss + TK_Negtive_build0 0x200006dc O 17 .bss + Press_debounce1 0x200006ed O 17 .bss + Release_debounce2 0x200006fe O 17 .bss + r_Key_Map_Temp 0x20000710 O 4 .bss + tk_seque 0x20000714 O 17 .bss + scan_step 0x20000725 O 1 .bss + baseline_data2 0x20000726 O 34 .bss + tk_sampling_max 0x20000748 O 34 .bss + offset_data0_abs 0x2000076a O 34 .bss + offset_data2 0x2000078c O 34 .bss + sampling_data0 0x200007ae O 34 .bss + _ebss 0x200007d0 0 .bss + _end 0x200007d0 0 .bss + end 0x200007d0 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: 0x00008ba4, 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 1238 .text pow.o + 0x00000b5e 0x00000006 Code RO 1246 .text fabs.o + 0x00000b64 0x00000020 Code RO 1252 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1259 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1270 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1275 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1280 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1285 .text _fixunsdfsi.o + 0x00000d80 0x0000033a Code RO 1292 .text _addsub_df.o + 0x000010ba 0x00000002 PAD + 0x000010bc 0x00000234 Code RO 1299 .text _mul_df.o + 0x000012f0 0x00000154 Code RO 1306 .text _div_df.o + 0x00001444 0x0000003c Code RO 1313 .text _gt_df.o + 0x00001480 0x0000003c Code RO 1320 .text _ge_df.o + 0x000014bc 0x0000003a Code RO 1327 .text _le_df.o + 0x000014f6 0x00000002 PAD + 0x000014f8 0x00000070 Code RO 1334 .text _si_to_df.o + 0x00001568 0x00000070 Code RO 1341 .text _df_to_si.o + 0x000015d8 0x00000054 Code RO 1355 .text _usi_to_df.o + 0x0000162c 0x00000044 Code RO 1362 .text _muldi3.o + 0x00001670 0x00000040 Code RO 1369 .text _clzsi2.o + 0x000016b0 0x0000019c Code RO 1375 .text _pack_df.o + 0x0000184c 0x000000c4 Code RO 1382 .text _unpack_df.o + 0x00001910 0x0000008c Code RO 1389 .text _fpcmp_parts_df.o + 0x0000199c 0x0000002c Code RO 1410 .text rand.o + 0x000019c8 0x00000088 Code RO 1415 .text memset_fast.o + 0x00001a50 0x00000064 Code RO 1420 .text memcpy_fast.o + 0x00001ab4 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001aec 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001b60 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001bac 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001bdc 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c8c 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001cc8 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001cdc 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cf4 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001d14 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d30 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d4c 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d8c 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d98 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001dbc 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001dec 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001ecc 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001eda 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001ee2 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001eea 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00001f00 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00001f14 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00001f24 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00001f40 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00001f48 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00001f52 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f6a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f96 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00001f9c 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00001fb0 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00001fc0 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x00001fe0 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x00002040 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x00002050 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x000020a0 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000020b8 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000020d0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000020e8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002104 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002120 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x0000220c 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x0000221c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x0000222c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x0000224c 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x0000226c 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x00002294 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000022bc 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x000024f4 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x0000252c 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x00002604 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x00002620 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002684 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002694 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x000026b4 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x000026e0 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000026ec 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00002714 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002728 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002740 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002754 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x000027d0 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002968 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002ae8 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002b88 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002bb4 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002cf4 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002d0c 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002d24 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002d34 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002d44 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002d54 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002d64 0x0000004c Code RO 705 .text.startup.main Obj/main.o + 0x00002db0 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002ddc 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002e00 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002e60 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002ec0 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002f24 0x00000084 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002fa8 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003098 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003100 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003168 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003314 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003348 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000033c8 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003438 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003474 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000034b0 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00003544 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x0000362c 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003680 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x000036b0 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000036e0 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00003728 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003784 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000037e4 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00003818 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003864 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000038c8 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000038ca 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000038d2 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000038da 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000038e2 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000038ea 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000038f2 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000038fa 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003902 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000390a 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003912 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000391a 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003922 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x0000392c 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003950 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003974 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00003998 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000039bc 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000039c2 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000039c8 0x0000011c Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003ae4 0x00000068 Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003b4c 0x000000a4 Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003bf0 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003c78 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003c84 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003c88 0x00000068 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003cf0 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003e28 0x0000003c Code RO 866 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003e64 0x000000ac Code RO 868 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003f10 0x0000003c Code RO 869 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003f4c 0x000000f0 Code RO 870 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x0000403c 0x00000018 Code RO 871 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00004054 0x00000068 Code RO 872 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x000040bc 0x000000b8 Code RO 873 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00004174 0x000000f8 Code RO 874 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x0000426c 0x00000038 Code RO 875 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x000042a4 0x000000b0 Code RO 876 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004354 0x0000001a Code RO 877 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004370 0x000000d8 Code RO 878 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004448 0x00000016 Code RO 898 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004460 0x00000074 Code RO 899 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000044d4 0x00000044 Code RO 900 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004518 0x0000008c Code RO 902 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x000045a4 0x00000020 Code RO 903 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000045c4 0x00000050 Code RO 904 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00004614 0x0000006c Code RO 905 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004680 0x000000ac Code RO 906 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x0000472c 0x000000a8 Code RO 907 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000047d4 0x00000040 Code RO 908 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004814 0x00000080 Code RO 909 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004894 0x0000005c Code RO 927 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000048f0 0x00000048 Code RO 928 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004938 0x000000c0 Code RO 929 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000049f8 0x000000b0 Code RO 930 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004aa8 0x00000010 Code RO 931 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004ab8 0x000003ea Code RO 949 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00004ea4 0x000003ea Code RO 950 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x00005290 0x00000028 Code RO 951 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x000052b8 0x0000004c Code RO 973 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00005304 0x00000120 Code RO 975 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x00005424 0x00000034 Code RO 976 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00005458 0x00000024 Code RO 977 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x0000547c 0x00000070 Code RO 978 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x000054ec 0x00000064 Code RO 979 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00005550 0x00000060 Code RO 980 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x000055b0 0x00000048 Code RO 997 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000055f8 0x00000030 Code RO 998 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005628 0x000000a4 Code RO 999 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x000056cc 0x00000050 Code RO 1003 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x0000571c 0x00000040 Code RO 1004 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x0000575c 0x0000004c Code RO 1005 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x000057a8 0x000000d0 Code RO 1006 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005878 0x000000d0 Code RO 1007 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005948 0x00000244 Code RO 1008 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00005b8c 0x000000d0 Code RO 1009 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00005c5c 0x000000a4 Code RO 1010 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00005d00 0x00000048 Code RO 1011 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00005d48 0x000000dc Code RO 1012 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00005e24 0x00000030 Code RO 1013 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00005e54 0x0000009c Code RO 1014 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00005ef0 0x00000064 Code RO 1015 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00005f54 0x00000090 Code RO 1016 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00005fe4 0x0000013c Code RO 1036 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00006120 0x0000004c Code RO 1037 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x0000616c 0x00000054 Code RO 1038 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x000061c0 0x00000030 Code RO 1039 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x000061f0 0x00000030 Code RO 1040 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00006220 0x00000034 Code RO 1041 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006254 0x000000dc Code RO 1042 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x00006330 0x00000168 Code RO 1043 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00006498 0x000000e0 Code RO 1061 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006578 0x000000e0 Code RO 1062 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006658 0x00000110 Code RO 1063 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006768 0x00000078 Code RO 1064 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x000067e0 0x00000110 Code RO 1065 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x000068f0 0x00000078 Code RO 1066 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00006968 0x00000084 Code RO 1067 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x000069ec 0x00000054 Code RO 1083 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00006a40 0x00000020 Code RO 1084 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00006a60 0x00000084 Code RO 1085 .text.Data_Resend Obj/USRCTRL_display_logic.o + 0x00006ae4 0x00000090 Code RO 1086 .text.Switch_Report_Task Obj/USRCTRL_display_logic.o + 0x00006b74 0x00000350 Code RO 1087 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00006ec4 0x0000003c Code RO 1104 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00006f00 0x00000098 Code RO 1105 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00006f98 0x0000007c Code RO 1106 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00007014 0x0000001c Code RO 1124 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00007030 0x0000001c Code RO 1125 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x0000704c 0x0000001c Code RO 1126 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00007068 0x0000001c Code RO 1127 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007084 0x0000004c Code RO 1143 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000070d0 0x0000003c Code RO 1144 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x0000710c 0x00000016 Code RO 1145 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00007124 0x000000ec Code RO 1146 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00007210 0x00000050 Code RO 1147 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x00007260 0x0000005c Code RO 1148 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x000072bc 0x000001a8 Code RO 1150 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x00007464 0x000000c8 Code RO 1151 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x0000752c 0x00000010 Code RO 1177 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x0000753c 0x00000028 Code RO 1179 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x00007564 0x000000bc Code RO 1180 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00007620 0x00000134 Code RO 1183 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x00007754 0x00000058 Code RO 1184 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000077ac 0x00000088 Code RO 1188 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00007834 0x00000028 Code RO 1189 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x0000785c 0x00000084 Code RO 1190 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000078e0 0x00000020 Code RO 1191 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00007900 0x00000180 Code RO 1192 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007a80 0x0000011c Code RO 1193 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00007b9c 0x000001d0 Code RO 1194 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00007d6c 0x00000054 Code RO 1195 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007dc0 0x00000078 Code RO 1196 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00007e38 0x00000034 Code RO 1197 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x00007e6c 0x00000038 Code RO 1198 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x00007ea4 0x0000001c Code RO 1199 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x00007ec0 0x00000028 Code RO 1200 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00007ee8 0x00000180 Code RO 1201 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x00008068 0x00000284 Code RO 1218 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x000082ec 0x00000035 Data RO 880 .rodata Obj/SYSTEM_touch_key.o + 0x00008321 0x00000001 PAD + 0x00008322 0x00000334 Data RO 932 .rodata Obj/SYSTEM_adc.o + 0x00008656 0x0000000a Data RO 1018 .rodata Obj/SYSTEM_ht1621.o + 0x00008660 0x00000030 Data RO 1241 .rodata pow.o + 0x00008690 0x00000014 Data RO 1351 .rodata _thenan_df.o + 0x000086a4 0x00000100 Data RO 1399 .rodata _clz.o + 0x000087a4 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x000087b2 0x00000092 Data RO 881 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00008844 0x0000018d Data RO 910 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x000089d1 0x00000011 Data RO 981 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x000089e2 0x00000049 Data RO 1044 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00008a2b 0x0000007e Data RO 1068 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00008aa9 0x00000045 Data RO 1088 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00008aee 0x00000087 Data RO 1107 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00008b75 0x0000002c Data RO 1152 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x00008ba1 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x000007d0, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1175 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x00000004 Data RW 1411 .data rand.o + 0x200000a8 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000d0 0x00000004 Zero RW 926 .bss Obj/SYSTEM_adc.o + 0x200000d4 0x000000f0 Zero RW 967 .bss Obj/SYSTEM_tm1812.o + 0x200001c4 0x00000004 Zero RW 1035 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200001c8 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x2000024e 0x00000002 PAD + 0x20000250 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000280 0x00000168 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x200003e8 0x00000050 Zero RW 894 COMMON Obj/SYSTEM_touch_key.o + 0x20000438 0x00000008 Zero RW 923 COMMON Obj/SYSTEM_eeprom.o + 0x20000440 0x00000037 Zero RW 945 COMMON Obj/SYSTEM_adc.o + 0x20000477 0x00000001 PAD + 0x20000478 0x0000001c Zero RW 964 COMMON Obj/SYSTEM_switch_fun.o + 0x20000494 0x00000040 Zero RW 1032 COMMON Obj/SYSTEM_ht1621.o + 0x200004d4 0x00000025 Zero RW 1057 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200004f9 0x0000000e Zero RW 1119 COMMON Obj/USRCTRL_debug_unit.o + 0x20000507 0x00000001 PAD + 0x20000508 0x000002c8 Zero RW 1214 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 268 Obj/arch_crt0.o + 56 0 0 0 804 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 276 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 + 224 0 0 0 13403 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 + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9321 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 76 14 0 8 12962 Obj/main.o + 500 0 0 0 16126 Obj/mcu_initial.o + 2434 0 0 60 15530 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 702 0 0 380 13811 Obj/SYSTEM_uart.o + 1982 199 5 80 16690 Obj/SYSTEM_touch_key.o + 1098 397 0 8 14444 Obj/SYSTEM_eeprom.o + 548 820 0 59 13131 Obj/SYSTEM_adc.o + 2044 0 0 28 13882 Obj/SYSTEM_switch_fun.o + 760 17 0 240 14630 Obj/SYSTEM_tm1812.o + 2612 10 0 64 17197 Obj/SYSTEM_ht1621.o + 1204 73 0 41 12824 Obj/USRCTRL_tempctrl_unit.o + 1364 126 0 0 12240 Obj/USRCTRL_key_logic.o + 1240 69 0 0 12097 Obj/USRCTRL_display_logic.o + 336 135 0 14 11639 Obj/USRCTRL_debug_unit.o + 112 0 0 0 11886 Obj/USRCTRL_myrelay.o + 1190 44 0 0 13921 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 23570 1904 109 1116 410438 Object Totals + 6 4 6 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 + + 2876 0 49 712 16333 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 0 49 712 16333 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + + 44 0 4 0 0 rand.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + ------------------------------------------------------------ + 280 0 4 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 + 33490 2232 168 1832 435446 Grand Totals + 33490 2232 168 1832 435446 Elf Image Totals + 33490 2232 168 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 35722 ( 34.88kB) +Total RW Size (RW Data + ZI Data) 2000 ( 1.95kB) +Total ROM Size (Code + RO Data + RW Data) 35890 ( 35.05kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_Switch_V01_20231124.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_Switch_V01_20231124.asm new file mode 100644 index 0000000..7dc1c8c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_Switch_V01_20231124.asm @@ -0,0 +1,18695 @@ + +.//Obj/T1_Switch_V01_20231124.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003786 .long 0x00003786 + 8: 00003776 .long 0x00003776 + c: 00000184 .long 0x00000184 + 10: 0000377e .long 0x0000377e + 14: 0000373c .long 0x0000373c + 18: 00000184 .long 0x00000184 + 1c: 0000376e .long 0x0000376e + 20: 00003766 .long 0x00003766 + 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: 0000375e .long 0x0000375e + 44: 00003756 .long 0x00003756 + 48: 0000374e .long 0x0000374e + 4c: 00003746 .long 0x00003746 + 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: 0000373e .long 0x0000373e + 80: 000068d8 .long 0x000068d8 + 84: 00002e1c .long 0x00002e1c + 88: 00002f0c .long 0x00002f0c + 8c: 00002f74 .long 0x00002f74 + 90: 00002fdc .long 0x00002fdc + 94: 00000184 .long 0x00000184 + 98: 00003188 .long 0x00003188 + 9c: 000034f4 .long 0x000034f4 + a0: 00003524 .long 0x00003524 + a4: 000031bc .long 0x000031bc + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 0000323c .long 0x0000323c + b4: 000032ac .long 0x000032ac + b8: 000032e8 .long 0x000032e8 + bc: 00003324 .long 0x00003324 + c0: 00000184 .long 0x00000184 + c4: 00003796 .long 0x00003796 + c8: 00000184 .long 0x00000184 + cc: 000033b8 .long 0x000033b8 + d0: 000034a0 .long 0x000034a0 + d4: 00003554 .long 0x00003554 + d8: 0000359c .long 0x0000359c + dc: 000035f8 .long 0x000035f8 + e0: 0000378e .long 0x0000378e + e4: 000062c4 .long 0x000062c4 + e8: 00003658 .long 0x00003658 + ec: 00000184 .long 0x00000184 + f0: 0000368c .long 0x0000368c + f4: 000036d8 .long 0x000036d8 + 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, 0x2bf4 // 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: 00002bf4 .long 0x00002bf4 + 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, 0x7178 // 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: 00007178 .long 0x00007178 + 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, 0x7178 // 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, 0x7178 // 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: 00007178 .long 0x00007178 + 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, 0x71a8 // 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: 000071a8 .long 0x000071a8 + +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, 0x71a8 // 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: 000071a8 .long 0x000071a8 + 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, 0x71a8 // 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: 000071a8 .long 0x000071a8 + +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, 0x71bc // 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: 000071bc .long 0x000071bc + +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, 0x7680 // 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, 0x200000a4 // 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, 0x200007f4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a4 // 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: 00007680 .long 0x00007680 + 1a7c: 200000a4 .long 0x200000a4 + 1a80: 200007f4 .long 0x200007f4 + 1a84: 200000a4 .long 0x200000a4 + +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_DriveStrength_EN: + +00001e68 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1e68: 4121 lsli r1, r1, 1 + 1e6a: 3301 movi r3, 1 + 1e6c: 9049 ld.w r2, (r0, 0x24) + 1e6e: 70c4 lsl r3, r1 + 1e70: 6cc8 or r3, r2 + 1e72: b069 st.w r3, (r0, 0x24) +} + 1e74: 783c jmp r15 + +Disassembly of section .text.GPIO_Write_High: + +00001e76 : +//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<: +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 1e88: 1064 lrw r3, 0x20000014 // 1e98 + 1e8a: 9340 ld.w r2, (r3, 0x0) + 1e8c: 9261 ld.w r3, (r2, 0x4) + 1e8e: 3bac bseti r3, 12 + 1e90: 3bae bseti r3, 14 + 1e92: b261 st.w r3, (r2, 0x4) +} + 1e94: 783c jmp r15 + 1e96: 0000 bkpt + 1e98: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00001e9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 1e9c: 1063 lrw r3, 0x20000010 // 1ea8 + 1e9e: 9360 ld.w r3, (r3, 0x0) + 1ea0: 9340 ld.w r2, (r3, 0x0) + 1ea2: 6c08 or r0, r2 + 1ea4: b300 st.w r0, (r3, 0x0) +} + 1ea6: 783c jmp r15 + 1ea8: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00001eac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 1eac: 3300 movi r3, 0 + 1eae: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 1eb0: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 1eb2: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 1eb4: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 1eb6: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 1eb8: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 1eba: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 1ebc: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 1ebe: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 1ec0: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 1ec2: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 1ec4: b06d st.w r3, (r0, 0x34) +} + 1ec6: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00001ec8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 1ec8: 9060 ld.w r3, (r0, 0x0) + 1eca: 3ba0 bseti r3, 0 + 1ecc: b060 st.w r3, (r0, 0x0) +} + 1ece: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00001ed0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 1ed0: 9060 ld.w r3, (r0, 0x0) + 1ed2: 3bac bseti r3, 12 + 1ed4: 3bae bseti r3, 14 + 1ed6: b060 st.w r3, (r0, 0x0) +} + 1ed8: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00001eda : +//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) +{ + 1eda: 14c3 push r4-r6 + 1edc: 98a4 ld.w r5, (r14, 0x10) + 1ede: 6d97 mov r6, r5 + 1ee0: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 1ee2: 6d18 or r4, r6 + 1ee4: 6cd0 or r3, r4 + 1ee6: 90a1 ld.w r5, (r0, 0x4) + 1ee8: 6c4c or r1, r3 + 1eea: 6c54 or r1, r5 + 1eec: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 1eee: b042 st.w r2, (r0, 0x8) +} + 1ef0: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00001ef2 : +//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) +{ + 1ef2: 14c4 push r4-r7 + 1ef4: 1421 subi r14, r14, 4 + 1ef6: 9885 ld.w r4, (r14, 0x14) + 1ef8: 6dd3 mov r7, r4 + 1efa: 9886 ld.w r4, (r14, 0x18) + 1efc: b880 st.w r4, (r14, 0x0) + 1efe: 9887 ld.w r4, (r14, 0x1c) + 1f00: 6d93 mov r6, r4 + 1f02: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 1f04: 6d58 or r5, r6 + 1f06: 98c0 ld.w r6, (r14, 0x0) + 1f08: 6d58 or r5, r6 + 1f0a: 6d5c or r5, r7 + 1f0c: 6cd4 or r3, r5 + 1f0e: 6c8c or r2, r3 + 1f10: 9081 ld.w r4, (r0, 0x4) + 1f12: 6c48 or r1, r2 + 1f14: 6d04 or r4, r1 + 1f16: 6d9f mov r6, r7 + 1f18: b081 st.w r4, (r0, 0x4) +} + 1f1a: 1401 addi r14, r14, 4 + 1f1c: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00001f1e : +//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; + 1f1e: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 1f20: b044 st.w r2, (r0, 0x10) +} + 1f22: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00001f24 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 1f24: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 1f26: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 1f28: 0c04 bf 0x1f30 // 1f30 + BTx->IMCR |= BT_IMSCR_X; + 1f2a: 6c8c or r2, r3 + 1f2c: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 1f2e: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 1f30: 68c9 andn r3, r2 + 1f32: b06b st.w r3, (r0, 0x2c) +} + 1f34: 07fd br 0x1f2e // 1f2e + +Disassembly of section .text.BT1_INT_ENABLE: + +00001f38 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 1f38: 3380 movi r3, 128 + 1f3a: 4376 lsli r3, r3, 22 + 1f3c: 1042 lrw r2, 0xe000e100 // 1f44 + 1f3e: b260 st.w r3, (r2, 0x0) +} + 1f40: 783c jmp r15 + 1f42: 0000 bkpt + 1f44: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +00001f48 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 1f48: 1065 lrw r3, 0x20000040 // 1f5c + 1f4a: 3200 movi r2, 0 + 1f4c: 9360 ld.w r3, (r3, 0x0) + 1f4e: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 1f50: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 1f52: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 1f54: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 1f56: b344 st.w r2, (r3, 0x10) +} + 1f58: 783c jmp r15 + 1f5a: 0000 bkpt + 1f5c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00001f60 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 1f60: 1065 lrw r3, 0x2000003c // 1f74 + 1f62: 3200 movi r2, 0 + 1f64: 9360 ld.w r3, (r3, 0x0) + 1f66: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 1f68: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 1f6a: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 1f6c: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 1f6e: b344 st.w r2, (r3, 0x10) +} + 1f70: 783c jmp r15 + 1f72: 0000 bkpt + 1f74: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00001f78 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 1f78: 1065 lrw r3, 0x20000038 // 1f8c + 1f7a: 3200 movi r2, 0 + 1f7c: 9360 ld.w r3, (r3, 0x0) + 1f7e: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 1f80: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 1f82: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 1f84: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 1f86: b344 st.w r2, (r3, 0x10) +} + 1f88: 783c jmp r15 + 1f8a: 0000 bkpt + 1f8c: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00001f90 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 1f90: 1065 lrw r3, 0x20000040 // 1fa4 + 1f92: 320f movi r2, 15 + 1f94: 9360 ld.w r3, (r3, 0x0) + 1f96: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1f98: 3380 movi r3, 128 + 1f9a: 4366 lsli r3, r3, 6 + 1f9c: 1043 lrw r2, 0xe000e100 // 1fa8 + 1f9e: b260 st.w r3, (r2, 0x0) +} + 1fa0: 783c jmp r15 + 1fa2: 0000 bkpt + 1fa4: 20000040 .long 0x20000040 + 1fa8: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00001fac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 1fac: 1065 lrw r3, 0x20000038 // 1fc0 + 1fae: 320f movi r2, 15 + 1fb0: 9360 ld.w r3, (r3, 0x0) + 1fb2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 1fb4: 3380 movi r3, 128 + 1fb6: 4368 lsli r3, r3, 8 + 1fb8: 1043 lrw r2, 0xe000e100 // 1fc4 + 1fba: b260 st.w r3, (r2, 0x0) +} + 1fbc: 783c jmp r15 + 1fbe: 0000 bkpt + 1fc0: 20000038 .long 0x20000038 + 1fc4: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00001fc8 : +//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) + 1fc8: 3840 cmpnei r0, 0 + 1fca: 0821 bt 0x200c // 200c + { + if(UART_IO_G==0) + 1fcc: 3940 cmpnei r1, 0 + 1fce: 080a bt 0x1fe2 // 1fe2 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 1fd0: 1177 lrw r3, 0x2000004c // 20ac + 1fd2: 31ff movi r1, 255 + 1fd4: 9340 ld.w r2, (r3, 0x0) + 1fd6: 9260 ld.w r3, (r2, 0x0) + 1fd8: 68c5 andn r3, r1 + 1fda: 3ba2 bseti r3, 2 + 1fdc: 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 + 1fde: b260 st.w r3, (r2, 0x0) + 1fe0: 0415 br 0x200a // 200a + else if(UART_IO_G==1) + 1fe2: 3941 cmpnei r1, 1 + 1fe4: 0813 bt 0x200a // 200a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 1fe6: 1172 lrw r3, 0x2000004c // 20ac + 1fe8: 31f0 movi r1, 240 + 1fea: 9340 ld.w r2, (r3, 0x0) + 1fec: 9260 ld.w r3, (r2, 0x0) + 1fee: 4130 lsli r1, r1, 16 + 1ff0: 68c5 andn r3, r1 + 1ff2: 31e0 movi r1, 224 + 1ff4: 412f lsli r1, r1, 15 + 1ff6: 6cc4 or r3, r1 + 1ff8: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 1ffa: 31f0 movi r1, 240 + 1ffc: 9261 ld.w r3, (r2, 0x4) + 1ffe: 412c lsli r1, r1, 12 + 2000: 68c5 andn r3, r1 + 2002: 31e0 movi r1, 224 + 2004: 412b lsli r1, r1, 11 + 2006: 6cc4 or r3, r1 + 2008: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 200a: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 200c: 3841 cmpnei r0, 1 + 200e: 082d bt 0x2068 // 2068 + if(UART_IO_G==0) + 2010: 3940 cmpnei r1, 0 + 2012: 0814 bt 0x203a // 203a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2014: 1167 lrw r3, 0x20000048 // 20b0 + 2016: 310f movi r1, 15 + 2018: 9340 ld.w r2, (r3, 0x0) + 201a: 9260 ld.w r3, (r2, 0x0) + 201c: 68c5 andn r3, r1 + 201e: 3107 movi r1, 7 + 2020: 6cc4 or r3, r1 + 2022: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2024: 32f0 movi r2, 240 + 2026: 1162 lrw r3, 0x2000004c // 20ac + 2028: 4250 lsli r2, r2, 16 + 202a: 9320 ld.w r1, (r3, 0x0) + 202c: 9161 ld.w r3, (r1, 0x4) + 202e: 68c9 andn r3, r2 + 2030: 32e0 movi r2, 224 + 2032: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2034: 6cc8 or r3, r2 + 2036: b161 st.w r3, (r1, 0x4) + 2038: 07e9 br 0x200a // 200a + else if(UART_IO_G==1) + 203a: 3941 cmpnei r1, 1 + 203c: 080c bt 0x2054 // 2054 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 203e: 107c lrw r3, 0x2000004c // 20ac + 2040: 32ff movi r2, 255 + 2042: 9320 ld.w r1, (r3, 0x0) + 2044: 424c lsli r2, r2, 12 + 2046: 9160 ld.w r3, (r1, 0x0) + 2048: 68c9 andn r3, r2 + 204a: 32ee movi r2, 238 + 204c: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 204e: 6cc8 or r3, r2 + 2050: b160 st.w r3, (r1, 0x0) +} + 2052: 07dc br 0x200a // 200a + else if(UART_IO_G==2) + 2054: 3942 cmpnei r1, 2 + 2056: 0bda bt 0x200a // 200a + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2058: 1075 lrw r3, 0x2000004c // 20ac + 205a: 32ee movi r2, 238 + 205c: 9320 ld.w r1, (r3, 0x0) + 205e: 9161 ld.w r3, (r1, 0x4) + 2060: 4368 lsli r3, r3, 8 + 2062: 4b68 lsri r3, r3, 8 + 2064: 4257 lsli r2, r2, 23 + 2066: 07e7 br 0x2034 // 2034 + if (IO_UART_NUM==IO_UART2) + 2068: 3842 cmpnei r0, 2 + 206a: 0bd0 bt 0x200a // 200a + if(UART_IO_G==0) + 206c: 3940 cmpnei r1, 0 + 206e: 0809 bt 0x2080 // 2080 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2070: 106f lrw r3, 0x2000004c // 20ac + 2072: 31ff movi r1, 255 + 2074: 9340 ld.w r2, (r3, 0x0) + 2076: 9260 ld.w r3, (r2, 0x0) + 2078: 68c5 andn r3, r1 + 207a: 3177 movi r1, 119 + 207c: 6cc4 or r3, r1 + 207e: 07b0 br 0x1fde // 1fde + else if(UART_IO_G==1) + 2080: 3941 cmpnei r1, 1 + 2082: 0809 bt 0x2094 // 2094 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 2084: 106a lrw r3, 0x2000004c // 20ac + 2086: 32ee movi r2, 238 + 2088: 9320 ld.w r1, (r3, 0x0) + 208a: 9160 ld.w r3, (r1, 0x0) + 208c: 4368 lsli r3, r3, 8 + 208e: 4b68 lsri r3, r3, 8 + 2090: 4257 lsli r2, r2, 23 + 2092: 07de br 0x204e // 204e + else if(UART_IO_G==2) + 2094: 3942 cmpnei r1, 2 + 2096: 0bba bt 0x200a // 200a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2098: 1066 lrw r3, 0x20000048 // 20b0 + 209a: 32ff movi r2, 255 + 209c: 9320 ld.w r1, (r3, 0x0) + 209e: 4250 lsli r2, r2, 16 + 20a0: 9160 ld.w r3, (r1, 0x0) + 20a2: 68c9 andn r3, r2 + 20a4: 32cc movi r2, 204 + 20a6: 424f lsli r2, r2, 15 + 20a8: 07d3 br 0x204e // 204e + 20aa: 0000 bkpt + 20ac: 2000004c .long 0x2000004c + 20b0: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000020b4 : +//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); + 20b4: 1063 lrw r3, 0x8000f // 20c0 + 20b6: 6c8c or r2, r3 + 20b8: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 20ba: b024 st.w r1, (r0, 0x10) +} + 20bc: 783c jmp r15 + 20be: 0000 bkpt + 20c0: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000020c4 : +//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) +{ + 20c4: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 20c6: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 20c8: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 20ca: 5b85 subu r4, r3, r1 + 20cc: 6490 cmphs r4, r2 + 20ce: 0c02 bf 0x20d2 // 20d2 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 20d0: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 20d2: 8380 ld.b r4, (r3, 0x0) + 20d4: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 20d6: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 20d8: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 20da: 3c40 cmpnei r4, 0 + 20dc: 0bfd bt 0x20d6 // 20d6 + 20de: 2300 addi r3, 1 + 20e0: 07f5 br 0x20ca // 20ca + +Disassembly of section .text.EPT_Software_Prg: + +000020e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Software_Prg(void) +{ + EPT0->CEDR|=0X01; + 20e4: 1067 lrw r3, 0x20000020 // 2100 + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 20e6: 31f0 movi r1, 240 + EPT0->CEDR|=0X01; + 20e8: 9340 ld.w r2, (r3, 0x0) + 20ea: 9260 ld.w r3, (r2, 0x0) + 20ec: 3ba0 bseti r3, 0 + 20ee: b260 st.w r3, (r2, 0x0) + EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12); + 20f0: 9261 ld.w r3, (r2, 0x4) + 20f2: 4128 lsli r1, r1, 8 + 20f4: 68c5 andn r3, r1 + 20f6: 3bac bseti r3, 12 + 20f8: 3bae bseti r3, 14 + 20fa: b261 st.w r3, (r2, 0x4) +} + 20fc: 783c jmp r15 + 20fe: 0000 bkpt + 2100: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_Start: + +00002104 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Start(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2104: 1068 lrw r3, 0x20000020 // 2124 + 2106: 3280 movi r2, 128 + 2108: 9360 ld.w r3, (r3, 0x0) + 210a: 608c addu r2, r3 + 210c: 1027 lrw r1, 0xa55ac73a // 2128 + 210e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR|=0X01; + 2110: 9341 ld.w r2, (r3, 0x4) + 2112: 3aa0 bseti r2, 0 + 2114: b341 st.w r2, (r3, 0x4) + while(!(EPT0->RSSR&0x01)); + 2116: 3101 movi r1, 1 + 2118: 9341 ld.w r2, (r3, 0x4) + 211a: 6884 and r2, r1 + 211c: 3a40 cmpnei r2, 0 + 211e: 0ffd bf 0x2118 // 2118 +} + 2120: 783c jmp r15 + 2122: 0000 bkpt + 2124: 20000020 .long 0x20000020 + 2128: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_Stop: + +0000212c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 212c: 1068 lrw r3, 0x20000020 // 214c + 212e: 3280 movi r2, 128 + 2130: 9360 ld.w r3, (r3, 0x0) + 2132: 608c addu r2, r3 + 2134: 1027 lrw r1, 0xa55ac73a // 2150 + 2136: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 2138: 9341 ld.w r2, (r3, 0x4) + 213a: 31fe movi r1, 254 + 213c: 6884 and r2, r1 + 213e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2140: 3101 movi r1, 1 + 2142: 9341 ld.w r2, (r3, 0x4) + 2144: 6884 and r2, r1 + 2146: 3a40 cmpnei r2, 0 + 2148: 0bfd bt 0x2142 // 2142 +} + 214a: 783c jmp r15 + 214c: 20000020 .long 0x20000020 + 2150: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.EPT_IO_SET: + +00002154 : +//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) + 2154: 3840 cmpnei r0, 0 + 2156: 0822 bt 0x219a // 219a + { + if(IO_Num_X==IO_NUM_PA07) + 2158: 3950 cmpnei r1, 16 + 215a: 080a bt 0x216e // 216e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7 + 215c: 0375 lrw r3, 0x2000004c // 2384 + 215e: 9340 ld.w r2, (r3, 0x0) + 2160: 9260 ld.w r3, (r2, 0x0) + 2162: 4364 lsli r3, r3, 4 + 2164: 4b64 lsri r3, r3, 4 + 2166: 3bbd bseti r3, 29 + 2168: 3bbe bseti r3, 30 + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + } + else if(IO_Num_X==IO_NUM_PB00) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 216a: b260 st.w r3, (r2, 0x0) + else if(IO_Num_X==IO_NUM_PB02) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + } + } +} + 216c: 783c jmp r15 + else if(IO_Num_X==IO_NUM_PA10) + 216e: 3951 cmpnei r1, 17 + 2170: 080b bt 0x2186 // 2186 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10 + 2172: 037a lrw r3, 0x2000004c // 2384 + 2174: 32f0 movi r2, 240 + 2176: 9320 ld.w r1, (r3, 0x0) + 2178: 9161 ld.w r3, (r1, 0x4) + 217a: 4244 lsli r2, r2, 4 + 217c: 68c9 andn r3, r2 + 217e: 3ba8 bseti r3, 8 + 2180: 3baa bseti r3, 10 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 2182: b161 st.w r3, (r1, 0x4) + 2184: 07f4 br 0x216c // 216c + else if(IO_Num_X==IO_NUM_PA15) + 2186: 3952 cmpnei r1, 18 + 2188: 0bf2 bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15 + 218a: 137f lrw r3, 0x2000004c // 2384 + 218c: 9340 ld.w r2, (r3, 0x0) + 218e: 9261 ld.w r3, (r2, 0x4) + 2190: 4364 lsli r3, r3, 4 + 2192: 4b64 lsri r3, r3, 4 + 2194: 3bbe bseti r3, 30 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 2196: b261 st.w r3, (r2, 0x4) + 2198: 07ea br 0x216c // 216c + else if(EPT_IO_X==EPT_IO_CHAY) + 219a: 3841 cmpnei r0, 1 + 219c: 0823 bt 0x21e2 // 21e2 + if(IO_Num_X==IO_NUM_PB03) + 219e: 3953 cmpnei r1, 19 + 21a0: 080a bt 0x21b4 // 21b4 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3 + 21a2: 137a lrw r3, 0x20000048 // 2388 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 21a4: 9320 ld.w r1, (r3, 0x0) + 21a6: 32f0 movi r2, 240 + 21a8: 9160 ld.w r3, (r1, 0x0) + 21aa: 4248 lsli r2, r2, 8 + 21ac: 68c9 andn r3, r2 + 21ae: 3bac bseti r3, 12 + 21b0: 3bae bseti r3, 14 + 21b2: 040b br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PB05) + 21b4: 3954 cmpnei r1, 20 + 21b6: 080b bt 0x21cc // 21cc + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5 + 21b8: 1374 lrw r3, 0x20000048 // 2388 + 21ba: 32f0 movi r2, 240 + 21bc: 9320 ld.w r1, (r3, 0x0) + 21be: 9160 ld.w r3, (r1, 0x0) + 21c0: 4250 lsli r2, r2, 16 + 21c2: 68c9 andn r3, r2 + 21c4: 3bb4 bseti r3, 20 + 21c6: 3bb6 bseti r3, 22 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 21c8: b160 st.w r3, (r1, 0x0) +} + 21ca: 07d1 br 0x216c // 216c + else if(IO_Num_X==IO_NUM_PA12) + 21cc: 3955 cmpnei r1, 21 + 21ce: 0bcf bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12 + 21d0: 136d lrw r3, 0x2000004c // 2384 + 21d2: 32f0 movi r2, 240 + 21d4: 9320 ld.w r1, (r3, 0x0) + 21d6: 9161 ld.w r3, (r1, 0x4) + 21d8: 424c lsli r2, r2, 12 + 21da: 68c9 andn r3, r2 + 21dc: 3bb0 bseti r3, 16 + 21de: 3bb2 bseti r3, 18 + 21e0: 07d1 br 0x2182 // 2182 + else if(EPT_IO_X==EPT_IO_CHBX) + 21e2: 3842 cmpnei r0, 2 + 21e4: 0821 bt 0x2226 // 2226 + if(IO_Num_X==IO_NUM_PB02) + 21e6: 3956 cmpnei r1, 22 + 21e8: 080a bt 0x21fc // 21fc + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2 + 21ea: 1368 lrw r3, 0x20000048 // 2388 + 21ec: 32f0 movi r2, 240 + 21ee: 9320 ld.w r1, (r3, 0x0) + 21f0: 9160 ld.w r3, (r1, 0x0) + 21f2: 4244 lsli r2, r2, 4 + 21f4: 68c9 andn r3, r2 + 21f6: 3ba9 bseti r3, 9 + 21f8: 3baa bseti r3, 10 + 21fa: 07e7 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA11) + 21fc: 3957 cmpnei r1, 23 + 21fe: 080a bt 0x2212 // 2212 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11 + 2200: 1361 lrw r3, 0x2000004c // 2384 + 2202: 32f0 movi r2, 240 + 2204: 9320 ld.w r1, (r3, 0x0) + 2206: 9161 ld.w r3, (r1, 0x4) + 2208: 4248 lsli r2, r2, 8 + 220a: 68c9 andn r3, r2 + 220c: 3bac bseti r3, 12 + 220e: 3bae bseti r3, 14 + 2210: 07b9 br 0x2182 // 2182 + else if(IO_Num_X==IO_NUM_PA14) + 2212: 3958 cmpnei r1, 24 + 2214: 0bac bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14 + 2216: 127c lrw r3, 0x2000004c // 2384 + 2218: 32f0 movi r2, 240 + 221a: 9320 ld.w r1, (r3, 0x0) + 221c: 9161 ld.w r3, (r1, 0x4) + 221e: 4254 lsli r2, r2, 20 + 2220: 68c9 andn r3, r2 + 2222: 3bba bseti r3, 26 + 2224: 07af br 0x2182 // 2182 + else if(EPT_IO_X==EPT_IO_CHBY) + 2226: 3843 cmpnei r0, 3 + 2228: 0820 bt 0x2268 // 2268 + if(IO_Num_X==IO_NUM_PB04) + 222a: 3959 cmpnei r1, 25 + 222c: 080a bt 0x2240 // 2240 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4 + 222e: 1277 lrw r3, 0x20000048 // 2388 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 2230: 9320 ld.w r1, (r3, 0x0) + 2232: 32f0 movi r2, 240 + 2234: 9160 ld.w r3, (r1, 0x0) + 2236: 424c lsli r2, r2, 12 + 2238: 68c9 andn r3, r2 + 223a: 3bb0 bseti r3, 16 + 223c: 3bb2 bseti r3, 18 + 223e: 07c5 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA05) + 2240: 395a cmpnei r1, 26 + 2242: 0809 bt 0x2254 // 2254 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5 + 2244: 1270 lrw r3, 0x2000004c // 2384 + 2246: 32f0 movi r2, 240 + 2248: 9320 ld.w r1, (r3, 0x0) + 224a: 9160 ld.w r3, (r1, 0x0) + 224c: 4250 lsli r2, r2, 16 + 224e: 68c9 andn r3, r2 + 2250: 3bb7 bseti r3, 23 + 2252: 07bb br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA08) + 2254: 395b cmpnei r1, 27 + 2256: 0b8b bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8 + 2258: 126b lrw r3, 0x2000004c // 2384 + 225a: 310f movi r1, 15 + 225c: 9340 ld.w r2, (r3, 0x0) + 225e: 9261 ld.w r3, (r2, 0x4) + 2260: 68c5 andn r3, r1 + 2262: 3ba0 bseti r3, 0 + 2264: 3ba2 bseti r3, 2 + 2266: 0798 br 0x2196 // 2196 + else if(EPT_IO_X==EPT_IO_CHCX) + 2268: 3844 cmpnei r0, 4 + 226a: 0823 bt 0x22b0 // 22b0 + if(IO_Num_X==IO_NUM_PB05) + 226c: 3954 cmpnei r1, 20 + 226e: 0809 bt 0x2280 // 2280 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5 + 2270: 1266 lrw r3, 0x20000048 // 2388 + 2272: 32f0 movi r2, 240 + 2274: 9320 ld.w r1, (r3, 0x0) + 2276: 9160 ld.w r3, (r1, 0x0) + 2278: 4250 lsli r2, r2, 16 + 227a: 68c9 andn r3, r2 + 227c: 3bb6 bseti r3, 22 + 227e: 07a5 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA03) + 2280: 395c cmpnei r1, 28 + 2282: 0803 bt 0x2288 // 2288 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3 + 2284: 1260 lrw r3, 0x2000004c // 2384 + 2286: 078f br 0x21a4 // 21a4 + else if(IO_Num_X==IO_NUM_PB03) + 2288: 3953 cmpnei r1, 19 + 228a: 0809 bt 0x229c // 229c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3 + 228c: 117f lrw r3, 0x20000048 // 2388 + 228e: 32f0 movi r2, 240 + 2290: 9320 ld.w r1, (r3, 0x0) + 2292: 9160 ld.w r3, (r1, 0x0) + 2294: 4248 lsli r2, r2, 8 + 2296: 68c9 andn r3, r2 + 2298: 3bae bseti r3, 14 + 229a: 0797 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PB00) + 229c: 395d cmpnei r1, 29 + 229e: 0b67 bt 0x216c // 216c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0 + 22a0: 117a lrw r3, 0x20000048 // 2388 + 22a2: 310f movi r1, 15 + 22a4: 9340 ld.w r2, (r3, 0x0) + 22a6: 9260 ld.w r3, (r2, 0x0) + 22a8: 68c5 andn r3, r1 + 22aa: 3ba0 bseti r3, 0 + 22ac: 3ba2 bseti r3, 2 + 22ae: 075e br 0x216a // 216a + else if(EPT_IO_X==EPT_IO_CHCY) + 22b0: 3845 cmpnei r0, 5 + 22b2: 0825 bt 0x22fc // 22fc + if(IO_Num_X==IO_NUM_PB04) + 22b4: 3959 cmpnei r1, 25 + 22b6: 0809 bt 0x22c8 // 22c8 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4 + 22b8: 1174 lrw r3, 0x20000048 // 2388 + 22ba: 32f0 movi r2, 240 + 22bc: 9320 ld.w r1, (r3, 0x0) + 22be: 9160 ld.w r3, (r1, 0x0) + 22c0: 424c lsli r2, r2, 12 + 22c2: 68c9 andn r3, r2 + 22c4: 3bb2 bseti r3, 18 + 22c6: 0781 br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA04) + 22c8: 395e cmpnei r1, 30 + 22ca: 0803 bt 0x22d0 // 22d0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4 + 22cc: 116e lrw r3, 0x2000004c // 2384 + 22ce: 07b1 br 0x2230 // 2230 + else if(IO_Num_X==IO_NUM_PA09) + 22d0: 395f cmpnei r1, 31 + 22d2: 0809 bt 0x22e4 // 22e4 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9 + 22d4: 116c lrw r3, 0x2000004c // 2384 + 22d6: 31f0 movi r1, 240 + 22d8: 9340 ld.w r2, (r3, 0x0) + 22da: 9261 ld.w r3, (r2, 0x4) + 22dc: 68c5 andn r3, r1 + 22de: 3170 movi r1, 112 + 22e0: 6cc4 or r3, r1 + 22e2: 075a br 0x2196 // 2196 + else if(IO_Num_X==IO_NUM_PA013) + 22e4: 3320 movi r3, 32 + 22e6: 64c6 cmpne r1, r3 + 22e8: 0b42 bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13 + 22ea: 1167 lrw r3, 0x2000004c // 2384 + 22ec: 32f0 movi r2, 240 + 22ee: 9320 ld.w r1, (r3, 0x0) + 22f0: 9161 ld.w r3, (r1, 0x4) + 22f2: 4250 lsli r2, r2, 16 + 22f4: 68c9 andn r3, r2 + 22f6: 3bb4 bseti r3, 20 + 22f8: 3bb6 bseti r3, 22 + 22fa: 0744 br 0x2182 // 2182 + else if(EPT_IO_X==EPT_IO_CHD) + 22fc: 3846 cmpnei r0, 6 + 22fe: 0815 bt 0x2328 // 2328 + if(IO_Num_X==IO_NUM_PB03) + 2300: 3953 cmpnei r1, 19 + 2302: 080a bt 0x2316 // 2316 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3 + 2304: 1161 lrw r3, 0x20000048 // 2388 + 2306: 32f0 movi r2, 240 + 2308: 9320 ld.w r1, (r3, 0x0) + 230a: 9160 ld.w r3, (r1, 0x0) + 230c: 4248 lsli r2, r2, 8 + 230e: 68c9 andn r3, r2 + 2310: 3bad bseti r3, 13 + 2312: 3bae bseti r3, 14 + 2314: 075a br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PA08) + 2316: 395b cmpnei r1, 27 + 2318: 0b2a bt 0x216c // 216c + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8 + 231a: 107b lrw r3, 0x2000004c // 2384 + 231c: 310f movi r1, 15 + 231e: 9340 ld.w r2, (r3, 0x0) + 2320: 9261 ld.w r3, (r2, 0x4) + 2322: 68c5 andn r3, r1 + 2324: 3ba2 bseti r3, 2 + 2326: 0738 br 0x2196 // 2196 + else if(EPT_IO_X==EPT_IO_EPI) + 2328: 3847 cmpnei r0, 7 + 232a: 0b21 bt 0x216c // 216c + if(IO_Num_X==IO_NUM_PA07) + 232c: 3950 cmpnei r1, 16 + 232e: 0809 bt 0x2340 // 2340 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0 + 2330: 1075 lrw r3, 0x2000004c // 2384 + 2332: 9340 ld.w r2, (r3, 0x0) + 2334: 9260 ld.w r3, (r2, 0x0) + 2336: 4364 lsli r3, r3, 4 + 2338: 4b64 lsri r3, r3, 4 + 233a: 3bbc bseti r3, 28 + 233c: 3bbe bseti r3, 30 + 233e: 0716 br 0x216a // 216a + else if(IO_Num_X==IO_NUM_PA013) + 2340: 3320 movi r3, 32 + 2342: 64c6 cmpne r1, r3 + 2344: 0809 bt 0x2356 // 2356 + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1 + 2346: 1070 lrw r3, 0x2000004c // 2384 + 2348: 32f0 movi r2, 240 + 234a: 9320 ld.w r1, (r3, 0x0) + 234c: 9161 ld.w r3, (r1, 0x4) + 234e: 4250 lsli r2, r2, 16 + 2350: 68c9 andn r3, r2 + 2352: 3bb6 bseti r3, 22 + 2354: 0717 br 0x2182 // 2182 + else if(IO_Num_X==IO_NUM_PB03) + 2356: 3953 cmpnei r1, 19 + 2358: 080b bt 0x236e // 236e + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2 + 235a: 106c lrw r3, 0x20000048 // 2388 + 235c: 32f0 movi r2, 240 + 235e: 9320 ld.w r1, (r3, 0x0) + 2360: 4248 lsli r2, r2, 8 + 2362: 9160 ld.w r3, (r1, 0x0) + 2364: 68c9 andn r3, r2 + 2366: 32e0 movi r2, 224 + 2368: 4247 lsli r2, r2, 7 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 236a: 6cc8 or r3, r2 + 236c: 072e br 0x21c8 // 21c8 + else if(IO_Num_X==IO_NUM_PB02) + 236e: 3956 cmpnei r1, 22 + 2370: 0afe bt 0x216c // 216c + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3 + 2372: 1066 lrw r3, 0x20000048 // 2388 + 2374: 32f0 movi r2, 240 + 2376: 9320 ld.w r1, (r3, 0x0) + 2378: 4244 lsli r2, r2, 4 + 237a: 9160 ld.w r3, (r1, 0x0) + 237c: 68c9 andn r3, r2 + 237e: 32e0 movi r2, 224 + 2380: 4243 lsli r2, r2, 3 + 2382: 07f4 br 0x236a // 236a + 2384: 2000004c .long 0x2000004c + 2388: 20000048 .long 0x20000048 + +Disassembly of section .text.EPT_PWM_Config: + +0000238c : +//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) +{ + 238c: 14c3 push r4-r6 + 238e: 6d8b mov r6, r2 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 2390: 104b lrw r2, 0x20000020 // 23bc + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 2392: 3840 cmpnei r0, 0 + EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6)); + 2394: 92a0 ld.w r5, (r2, 0x0) + 2396: 9580 ld.w r4, (r5, 0x0) + 2398: 32ff movi r2, 255 + 239a: 6909 andn r4, r2 + 239c: 3ca0 bseti r4, 0 + 239e: 3ca1 bseti r4, 1 + 23a0: 6d00 or r4, r0 + 23a2: b580 st.w r4, (r5, 0x0) + if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK) + 23a4: 0802 bt 0x23a8 // 23a8 + { + EPT0->PSCR=EPT_PSCR; + 23a6: b562 st.w r3, (r5, 0x8) + } + EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18); + 23a8: 9543 ld.w r2, (r5, 0xc) + 23aa: 1066 lrw r3, 0x7003f // 23c0 + 23ac: 688d andn r2, r3 + 23ae: 6c98 or r2, r6 + 23b0: 3aa2 bseti r2, 2 + 23b2: 3ab2 bseti r2, 18 + 23b4: 6c48 or r1, r2 + 23b6: b523 st.w r1, (r5, 0xc) +} + 23b8: 1483 pop r4-r6 + 23ba: 0000 bkpt + 23bc: 20000020 .long 0x20000020 + 23c0: 0007003f .long 0x0007003f + +Disassembly of section .text.EPT_PWMX_Output_Control: + +000023c4 : + 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 + ) +{ + 23c4: 14c4 push r4-r7 + 23c6: 1425 subi r14, r14, 20 + 23c8: 9889 ld.w r4, (r14, 0x24) + 23ca: b880 st.w r4, (r14, 0x0) + 23cc: 988a ld.w r4, (r14, 0x28) + 23ce: b881 st.w r4, (r14, 0x4) + 23d0: 988b ld.w r4, (r14, 0x2c) + 23d2: b882 st.w r4, (r14, 0x8) + 23d4: 988c ld.w r4, (r14, 0x30) + 23d6: b883 st.w r4, (r14, 0xc) + if(EPT_PWMX_Selecte==EPT_PWMA) + 23d8: 3840 cmpnei r0, 0 +{ + 23da: 988d ld.w r4, (r14, 0x34) + 23dc: b884 st.w r4, (r14, 0x10) + 23de: 98ce ld.w r6, (r14, 0x38) + 23e0: 98ef ld.w r7, (r14, 0x3c) + 23e2: 98b0 ld.w r5, (r14, 0x40) + 23e4: 9891 ld.w r4, (r14, 0x44) + if(EPT_PWMX_Selecte==EPT_PWMA) + 23e6: 0816 bt 0x2412 // 2412 + { + 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; + 23e8: 6d14 or r4, r5 + 23ea: 6d1c or r4, r7 + 23ec: 98a4 ld.w r5, (r14, 0x10) + 23ee: 6d18 or r4, r6 + 23f0: 6d14 or r4, r5 + 23f2: 98a3 ld.w r5, (r14, 0xc) + 23f4: 6d14 or r4, r5 + 23f6: 98a2 ld.w r5, (r14, 0x8) + 23f8: 6d14 or r4, r5 + 23fa: 98a1 ld.w r5, (r14, 0x4) + 23fc: 6d14 or r4, r5 + 23fe: 98a0 ld.w r5, (r14, 0x0) + 2400: 6d14 or r4, r5 + 2402: 6cd0 or r3, r4 + 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| + 2404: 1105 lrw r0, 0x20000020 // 2498 + 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; + 2406: 6c8c or r2, r3 + 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| + 2408: 9000 ld.w r0, (r0, 0x0) + 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; + 240a: 6c48 or r1, r2 + 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| + 240c: b032 st.w r1, (r0, 0x48) + { + 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; + } + +} + 240e: 1405 addi r14, r14, 20 + 2410: 1484 pop r4-r7 + else if(EPT_PWMX_Selecte==EPT_PWMB) + 2412: 3841 cmpnei r0, 1 + 2414: 0815 bt 0x243e // 243e + 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; + 2416: 6d14 or r4, r5 + 2418: 6d1c or r4, r7 + 241a: 98a4 ld.w r5, (r14, 0x10) + 241c: 6d18 or r4, r6 + 241e: 6d14 or r4, r5 + 2420: 98a3 ld.w r5, (r14, 0xc) + 2422: 6d14 or r4, r5 + 2424: 98a2 ld.w r5, (r14, 0x8) + 2426: 6d14 or r4, r5 + 2428: 98a1 ld.w r5, (r14, 0x4) + 242a: 6d14 or r4, r5 + 242c: 98a0 ld.w r5, (r14, 0x0) + 242e: 6d14 or r4, r5 + 2430: 6cd0 or r3, r4 + 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| + 2432: 101a lrw r0, 0x20000020 // 2498 + 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; + 2434: 6c8c or r2, r3 + 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| + 2436: 9000 ld.w r0, (r0, 0x0) + 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; + 2438: 6c48 or r1, r2 + 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| + 243a: b033 st.w r1, (r0, 0x4c) + 243c: 07e9 br 0x240e // 240e + else if(EPT_PWMX_Selecte==EPT_PWMC) + 243e: 3842 cmpnei r0, 2 + 2440: 0815 bt 0x246a // 246a + 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; + 2442: 6d14 or r4, r5 + 2444: 6d1c or r4, r7 + 2446: 98a4 ld.w r5, (r14, 0x10) + 2448: 6d18 or r4, r6 + 244a: 6d14 or r4, r5 + 244c: 98a3 ld.w r5, (r14, 0xc) + 244e: 6d14 or r4, r5 + 2450: 98a2 ld.w r5, (r14, 0x8) + 2452: 6d14 or r4, r5 + 2454: 98a1 ld.w r5, (r14, 0x4) + 2456: 6d14 or r4, r5 + 2458: 98a0 ld.w r5, (r14, 0x0) + 245a: 6d14 or r4, r5 + 245c: 6cd0 or r3, r4 + 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| + 245e: 100f lrw r0, 0x20000020 // 2498 + 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; + 2460: 6c8c or r2, r3 + 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| + 2462: 9000 ld.w r0, (r0, 0x0) + 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; + 2464: 6c48 or r1, r2 + 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| + 2466: b034 st.w r1, (r0, 0x50) + 2468: 07d3 br 0x240e // 240e + else if(EPT_PWMX_Selecte==EPT_PWMD) + 246a: 3843 cmpnei r0, 3 + 246c: 0bd1 bt 0x240e // 240e + 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; + 246e: 6d14 or r4, r5 + 2470: 6d1c or r4, r7 + 2472: 98a4 ld.w r5, (r14, 0x10) + 2474: 6d18 or r4, r6 + 2476: 6d14 or r4, r5 + 2478: 98a3 ld.w r5, (r14, 0xc) + 247a: 6d14 or r4, r5 + 247c: 98a2 ld.w r5, (r14, 0x8) + 247e: 6d14 or r4, r5 + 2480: 98a1 ld.w r5, (r14, 0x4) + 2482: 6d14 or r4, r5 + 2484: 98a0 ld.w r5, (r14, 0x0) + 2486: 6d14 or r4, r5 + 2488: 6cd0 or r3, r4 + 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| + 248a: 1004 lrw r0, 0x20000020 // 2498 + 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; + 248c: 6c8c or r2, r3 + 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| + 248e: 9000 ld.w r0, (r0, 0x0) + 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; + 2490: 6c48 or r1, r2 + 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| + 2492: b035 st.w r1, (r0, 0x54) +} + 2494: 07bd br 0x240e // 240e + 2496: 0000 bkpt + 2498: 20000020 .long 0x20000020 + +Disassembly of section .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config: + +0000249c : +//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) +{ + 249c: 14c2 push r4-r5 + EPT0->PRDR=EPT_PRDR_Value; + 249e: 1086 lrw r4, 0x20000020 // 24b4 +{ + 24a0: d8ae1004 ld.h r5, (r14, 0x8) + EPT0->PRDR=EPT_PRDR_Value; + 24a4: 9480 ld.w r4, (r4, 0x0) + 24a6: b409 st.w r0, (r4, 0x24) + EPT0->CMPA=EPT_CMPA_Value; + 24a8: b42b st.w r1, (r4, 0x2c) + EPT0->CMPB=EPT_CMPB_Value; + 24aa: b44c st.w r2, (r4, 0x30) + EPT0->CMPC=EPT_CMPC_Value; + 24ac: b46d st.w r3, (r4, 0x34) + EPT0->CMPD=EPT_CMPD_Value; + 24ae: b4ae st.w r5, (r4, 0x38) +} + 24b0: 1482 pop r4-r5 + 24b2: 0000 bkpt + 24b4: 20000020 .long 0x20000020 + +Disassembly of section .text.ADC12_RESET_VALUE: + +000024b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 24b8: 1078 lrw r3, 0x20000050 // 2518 + 24ba: 3200 movi r2, 0 + 24bc: 9360 ld.w r3, (r3, 0x0) + 24be: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 24c0: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 24c2: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 24c4: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 24c6: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 24c8: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 24ca: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 24cc: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 24ce: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 24d0: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 24d2: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 24d4: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 24d6: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 24d8: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 24da: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 24dc: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 24de: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 24e0: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 24e2: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 24e4: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 24e6: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 24e8: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 24ea: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 24ec: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 24ee: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 24f0: 23ff addi r3, 256 + 24f2: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 24f4: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 24f6: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 24f8: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 24fa: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 24fc: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 24fe: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2500: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 2502: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 2504: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 2506: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2508: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 250a: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 250c: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 250e: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2510: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 2512: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 2514: b351 st.w r2, (r3, 0x44) +} + 2516: 783c jmp r15 + 2518: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +0000251c : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 251c: 1063 lrw r3, 0x20000050 // 2528 + 251e: 9340 ld.w r2, (r3, 0x0) + 2520: 9264 ld.w r3, (r2, 0x10) + 2522: 6c0c or r0, r3 + 2524: b204 st.w r0, (r2, 0x10) +} + 2526: 783c jmp r15 + 2528: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +0000252c : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 252c: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 252e: 3002 movi r0, 2 + 2530: e3fffff6 bsr 0x251c // 251c + while(!(ADC0->SR &ADC12_ADCENS)); + 2534: 1065 lrw r3, 0x20000050 // 2548 + 2536: 3280 movi r2, 128 + 2538: 9320 ld.w r1, (r3, 0x0) + 253a: 4241 lsli r2, r2, 1 + 253c: 9168 ld.w r3, (r1, 0x20) + 253e: 68c8 and r3, r2 + 2540: 3b40 cmpnei r3, 0 + 2542: 0ffd bf 0x253c // 253c + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2544: 1490 pop r15 + 2546: 0000 bkpt + 2548: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +0000254c : + if (NewState != DISABLE) + 254c: 3940 cmpnei r1, 0 + 254e: 106a lrw r3, 0x20000050 // 2574 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2550: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 2552: 0c09 bf 0x2564 // 2564 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2554: 9260 ld.w r3, (r2, 0x0) + 2556: 6cc0 or r3, r0 + 2558: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 255a: 9262 ld.w r3, (r2, 0x8) + 255c: 68c0 and r3, r0 + 255e: 3b40 cmpnei r3, 0 + 2560: 0ffd bf 0x255a // 255a +} + 2562: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2564: 9261 ld.w r3, (r2, 0x4) + 2566: 6cc0 or r3, r0 + 2568: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 256a: 9262 ld.w r3, (r2, 0x8) + 256c: 68c0 and r3, r0 + 256e: 3b40 cmpnei r3, 0 + 2570: 0bfd bt 0x256a // 256a + 2572: 07f8 br 0x2562 // 2562 + 2574: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00002578 : +{ + 2578: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 257a: 3001 movi r0, 1 + 257c: e3ffffd0 bsr 0x251c // 251c +} + 2580: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00002584 : +{ + 2584: 14d0 push r15 + if (NewState != DISABLE) + 2586: 3840 cmpnei r0, 0 + 2588: 0c04 bf 0x2590 // 2590 + 258a: e3ffffd1 bsr 0x252c // 252c +} + 258e: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 2590: 3004 movi r0, 4 + 2592: e3ffffc5 bsr 0x251c // 251c + while(ADC0->SR&ADC12_ADCENS); + 2596: 1065 lrw r3, 0x20000050 // 25a8 + 2598: 3280 movi r2, 128 + 259a: 9320 ld.w r1, (r3, 0x0) + 259c: 4241 lsli r2, r2, 1 + 259e: 9168 ld.w r3, (r1, 0x20) + 25a0: 68c8 and r3, r2 + 25a2: 3b40 cmpnei r3, 0 + 25a4: 0bfd bt 0x259e // 259e + 25a6: 07f4 br 0x258e // 258e + 25a8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +000025ac : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 25ac: 1064 lrw r3, 0x20000050 // 25bc + 25ae: 3202 movi r2, 2 + 25b0: 9320 ld.w r1, (r3, 0x0) + 25b2: 9168 ld.w r3, (r1, 0x20) + 25b4: 68c8 and r3, r2 + 25b6: 3b40 cmpnei r3, 0 + 25b8: 0ffd bf 0x25b2 // 25b2 +} + 25ba: 783c jmp r15 + 25bc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +000025c0 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 25c0: 200f addi r0, 16 + 25c2: 1065 lrw r3, 0x20000050 // 25d4 + 25c4: 3201 movi r2, 1 + 25c6: 9320 ld.w r1, (r3, 0x0) + 25c8: 7080 lsl r2, r0 + 25ca: 9168 ld.w r3, (r1, 0x20) + 25cc: 68c8 and r3, r2 + 25ce: 3b40 cmpnei r3, 0 + 25d0: 0ffd bf 0x25ca // 25ca +} + 25d2: 783c jmp r15 + 25d4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +000025d8 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 25d8: 203f addi r0, 64 + 25da: 1064 lrw r3, 0x20000050 // 25e8 + 25dc: 4002 lsli r0, r0, 2 + 25de: 9360 ld.w r3, (r3, 0x0) + 25e0: 600c addu r0, r3 + 25e2: 9000 ld.w r0, (r0, 0x0) + 25e4: 7401 zexth r0, r0 +} + 25e6: 783c jmp r15 + 25e8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +000025ec : + //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 ) +{ + 25ec: 14d4 push r4-r7, r15 + 25ee: 1422 subi r14, r14, 8 + 25f0: 1c08 addi r4, r14, 32 + 25f2: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 25f4: 2d00 subi r5, 1 +{ + 25f6: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 25f8: 10db lrw r6, 0x20000050 // 2664 +{ + 25fa: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 25fe: 45aa lsli r5, r5, 10 + 2600: 9680 ld.w r4, (r6, 0x0) + 2602: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 2604: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2606: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2608: 081c bt 0x2640 // 2640 + { + ADC0->MR&=~CONTCV; //one short mode + 260a: 9425 ld.w r1, (r4, 0x14) + 260c: 4121 lsli r1, r1, 1 + 260e: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2610: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 2612: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 2614: 4002 lsli r0, r0, 2 + 2616: 9428 ld.w r1, (r4, 0x20) + 2618: 6840 and r1, r0 + 261a: 3940 cmpnei r1, 0 + 261c: 0bfd bt 0x2616 // 2616 + 261e: b861 st.w r3, (r14, 0x4) + 2620: b840 st.w r2, (r14, 0x0) + 2622: e3ffff85 bsr 0x252c // 252c + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 2626: 3f40 cmpnei r7, 0 + 2628: 9840 ld.w r2, (r14, 0x0) + 262a: 9861 ld.w r3, (r14, 0x4) + 262c: 0c16 bf 0x2658 // 2658 + { + ADC0->CR|=ADC12_10BITor12BIT; + 262e: 9600 ld.w r0, (r6, 0x0) + 2630: 9024 ld.w r1, (r0, 0x10) + 2632: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 2634: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 2636: 9620 ld.w r1, (r6, 0x0) + 2638: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 263a: b166 st.w r3, (r1, 0x18) +} + 263c: 1402 addi r14, r14, 8 + 263e: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2640: 3941 cmpnei r1, 1 + 2642: 0bee bt 0x261e // 261e + ADC0->MR|=CONTCV; //Continuous mode + 2644: 9425 ld.w r1, (r4, 0x14) + 2646: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 2648: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 264a: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 264c: 4002 lsli r0, r0, 2 + 264e: 9428 ld.w r1, (r4, 0x20) + 2650: 6840 and r1, r0 + 2652: 3940 cmpnei r1, 0 + 2654: 0ffd bf 0x264e // 264e + 2656: 07e4 br 0x261e // 261e + ADC0->CR&=~ADC12_10BITor12BIT; + 2658: 9600 ld.w r0, (r6, 0x0) + 265a: 9024 ld.w r1, (r0, 0x10) + 265c: 4121 lsli r1, r1, 1 + 265e: 4921 lsri r1, r1, 1 + 2660: 07ea br 0x2634 // 2634 + 2662: 0000 bkpt + 2664: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00002668 : +//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) + 2668: 3840 cmpnei r0, 0 + 266a: 0808 bt 0x267a // 267a + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 266c: 127c lrw r3, 0x20000050 // 27dc + 266e: 123d lrw r1, 0x103c0 // 27e0 + 2670: 9340 ld.w r2, (r3, 0x0) + 2672: 9264 ld.w r3, (r2, 0x10) + 2674: 68c5 andn r3, r1 + 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); + 2676: b264 st.w r3, (r2, 0x10) + } +} + 2678: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 267a: 3841 cmpnei r0, 1 + 267c: 0810 bt 0x269c // 269c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 267e: 127a lrw r3, 0x2000004c // 27e4 + 2680: 32f0 movi r2, 240 + 2682: 9320 ld.w r1, (r3, 0x0) + 2684: 9160 ld.w r3, (r1, 0x0) + 2686: 4244 lsli r2, r2, 4 + 2688: 68c9 andn r3, r2 + 268a: 3bab bseti r3, 11 + 268c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 268e: 1235 lrw r1, 0x103c0 // 27e0 + 2690: 1273 lrw r3, 0x20000050 // 27dc + 2692: 9340 ld.w r2, (r3, 0x0) + 2694: 9264 ld.w r3, (r2, 0x10) + 2696: 68c5 andn r3, r1 + 2698: 3ba6 bseti r3, 6 + 269a: 07ee br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 269c: 3842 cmpnei r0, 2 + 269e: 0811 bt 0x26c0 // 26c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26a0: 1271 lrw r3, 0x2000004c // 27e4 + 26a2: 32f0 movi r2, 240 + 26a4: 9320 ld.w r1, (r3, 0x0) + 26a6: 9160 ld.w r3, (r1, 0x0) + 26a8: 4244 lsli r2, r2, 4 + 26aa: 68c9 andn r3, r2 + 26ac: 3bab bseti r3, 11 + 26ae: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 26b0: 122e lrw r1, 0x30103c0 // 27e8 + 26b2: 126b lrw r3, 0x20000050 // 27dc + 26b4: 9340 ld.w r2, (r3, 0x0) + 26b6: 9264 ld.w r3, (r2, 0x10) + 26b8: 68c5 andn r3, r1 + 26ba: 3ba7 bseti r3, 7 + 26bc: 3bb8 bseti r3, 24 + 26be: 07dc br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 26c0: 3843 cmpnei r0, 3 + 26c2: 0811 bt 0x26e4 // 26e4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26c4: 1268 lrw r3, 0x2000004c // 27e4 + 26c6: 32f0 movi r2, 240 + 26c8: 9320 ld.w r1, (r3, 0x0) + 26ca: 9160 ld.w r3, (r1, 0x0) + 26cc: 4244 lsli r2, r2, 4 + 26ce: 68c9 andn r3, r2 + 26d0: 3bab bseti r3, 11 + 26d2: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 26d4: 1225 lrw r1, 0x30103c0 // 27e8 + 26d6: 1262 lrw r3, 0x20000050 // 27dc + 26d8: 9340 ld.w r2, (r3, 0x0) + 26da: 9264 ld.w r3, (r2, 0x10) + 26dc: 68c5 andn r3, r1 + 26de: 1224 lrw r1, 0x30000c0 // 27ec + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 26e0: 6cc4 or r3, r1 + 26e2: 07ca br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 26e4: 3845 cmpnei r0, 5 + 26e6: 0809 bt 0x26f8 // 26f8 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 26e8: 117d lrw r3, 0x20000050 // 27dc + 26ea: 1222 lrw r1, 0x503c0 // 27f0 + 26ec: 9340 ld.w r2, (r3, 0x0) + 26ee: 9264 ld.w r3, (r2, 0x10) + 26f0: 68c5 andn r3, r1 + 26f2: 3ba8 bseti r3, 8 + 26f4: 3bb2 bseti r3, 18 + 26f6: 07c0 br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 26f8: 3846 cmpnei r0, 6 + 26fa: 0812 bt 0x271e // 271e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 26fc: 117a lrw r3, 0x2000004c // 27e4 + 26fe: 32f0 movi r2, 240 + 2700: 9320 ld.w r1, (r3, 0x0) + 2702: 9160 ld.w r3, (r1, 0x0) + 2704: 4248 lsli r2, r2, 8 + 2706: 68c9 andn r3, r2 + 2708: 32b0 movi r2, 176 + 270a: 4248 lsli r2, r2, 8 + 270c: 6cc8 or r3, r2 + 270e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2710: 1134 lrw r1, 0x103c0 // 27e0 + 2712: 1173 lrw r3, 0x20000050 // 27dc + 2714: 9340 ld.w r2, (r3, 0x0) + 2716: 9264 ld.w r3, (r2, 0x10) + 2718: 68c5 andn r3, r1 + 271a: 3ba9 bseti r3, 9 + 271c: 07ad br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 271e: 3847 cmpnei r0, 7 + 2720: 0819 bt 0x2752 // 2752 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2722: 1171 lrw r3, 0x2000004c // 27e4 + 2724: 31f0 movi r1, 240 + 2726: 9340 ld.w r2, (r3, 0x0) + 2728: 9260 ld.w r3, (r2, 0x0) + 272a: 4128 lsli r1, r1, 8 + 272c: 68c5 andn r3, r1 + 272e: 31b0 movi r1, 176 + 2730: 4128 lsli r1, r1, 8 + 2732: 6cc4 or r3, r1 + 2734: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2736: 31f0 movi r1, 240 + 2738: 9260 ld.w r3, (r2, 0x0) + 273a: 4124 lsli r1, r1, 4 + 273c: 68c5 andn r3, r1 + 273e: 3bab bseti r3, 11 + 2740: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 2742: 1128 lrw r1, 0x103c0 // 27e0 + 2744: 1166 lrw r3, 0x20000050 // 27dc + 2746: 9340 ld.w r2, (r3, 0x0) + 2748: 9264 ld.w r3, (r2, 0x10) + 274a: 68c5 andn r3, r1 + 274c: 3ba6 bseti r3, 6 + 274e: 3ba9 bseti r3, 9 + 2750: 0793 br 0x2676 // 2676 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 2752: 3848 cmpnei r0, 8 + 2754: 0818 bt 0x2784 // 2784 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2756: 1164 lrw r3, 0x2000004c // 27e4 + 2758: 31f0 movi r1, 240 + 275a: 9340 ld.w r2, (r3, 0x0) + 275c: 9260 ld.w r3, (r2, 0x0) + 275e: 4128 lsli r1, r1, 8 + 2760: 68c5 andn r3, r1 + 2762: 31b0 movi r1, 176 + 2764: 4128 lsli r1, r1, 8 + 2766: 6cc4 or r3, r1 + 2768: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 276a: 31f0 movi r1, 240 + 276c: 9260 ld.w r3, (r2, 0x0) + 276e: 4124 lsli r1, r1, 4 + 2770: 68c5 andn r3, r1 + 2772: 3bab bseti r3, 11 + 2774: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 2776: 103d lrw r1, 0x30103c0 // 27e8 + 2778: 1079 lrw r3, 0x20000050 // 27dc + 277a: 9340 ld.w r2, (r3, 0x0) + 277c: 9264 ld.w r3, (r2, 0x10) + 277e: 68c5 andn r3, r1 + 2780: 103d lrw r1, 0x1000280 // 27f4 + 2782: 07af br 0x26e0 // 26e0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 2784: 3849 cmpnei r0, 9 + 2786: 0818 bt 0x27b6 // 27b6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2788: 1077 lrw r3, 0x2000004c // 27e4 + 278a: 31f0 movi r1, 240 + 278c: 9340 ld.w r2, (r3, 0x0) + 278e: 9260 ld.w r3, (r2, 0x0) + 2790: 4128 lsli r1, r1, 8 + 2792: 68c5 andn r3, r1 + 2794: 31b0 movi r1, 176 + 2796: 4128 lsli r1, r1, 8 + 2798: 6cc4 or r3, r1 + 279a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 279c: 31f0 movi r1, 240 + 279e: 9260 ld.w r3, (r2, 0x0) + 27a0: 4124 lsli r1, r1, 4 + 27a2: 68c5 andn r3, r1 + 27a4: 3bab bseti r3, 11 + 27a6: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 27a8: 1030 lrw r1, 0x30103c0 // 27e8 + 27aa: 106d lrw r3, 0x20000050 // 27dc + 27ac: 9340 ld.w r2, (r3, 0x0) + 27ae: 9264 ld.w r3, (r2, 0x10) + 27b0: 68c5 andn r3, r1 + 27b2: 1032 lrw r1, 0x30002c0 // 27f8 + 27b4: 0796 br 0x26e0 // 26e0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 27b6: 384b cmpnei r0, 11 + 27b8: 0b60 bt 0x2678 // 2678 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ba: 106b lrw r3, 0x2000004c // 27e4 + 27bc: 32f0 movi r2, 240 + 27be: 9320 ld.w r1, (r3, 0x0) + 27c0: 9160 ld.w r3, (r1, 0x0) + 27c2: 4248 lsli r2, r2, 8 + 27c4: 68c9 andn r3, r2 + 27c6: 32b0 movi r2, 176 + 27c8: 4248 lsli r2, r2, 8 + 27ca: 6cc8 or r3, r2 + 27cc: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 27ce: 1029 lrw r1, 0x503c0 // 27f0 + 27d0: 1063 lrw r3, 0x20000050 // 27dc + 27d2: 9340 ld.w r2, (r3, 0x0) + 27d4: 9264 ld.w r3, (r2, 0x10) + 27d6: 68c5 andn r3, r1 + 27d8: 1029 lrw r1, 0x40300 // 27fc + 27da: 0783 br 0x26e0 // 26e0 + 27dc: 20000050 .long 0x20000050 + 27e0: 000103c0 .long 0x000103c0 + 27e4: 2000004c .long 0x2000004c + 27e8: 030103c0 .long 0x030103c0 + 27ec: 030000c0 .long 0x030000c0 + 27f0: 000503c0 .long 0x000503c0 + 27f4: 01000280 .long 0x01000280 + 27f8: 030002c0 .long 0x030002c0 + 27fc: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002800 : +//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) +{ + 2800: 14d4 push r4-r7, r15 + 2802: 1421 subi r14, r14, 4 + 2804: b840 st.w r2, (r14, 0x0) + 2806: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2808: 125b lrw r2, 0x20000050 // 2974 + 280a: 92c0 ld.w r6, (r2, 0x0) + 280c: 3200 movi r2, 0 + 280e: 4202 lsli r0, r2, 2 + 2810: 6018 addu r0, r6 + 2812: 908c ld.w r4, (r0, 0x30) + 2814: 2200 addi r2, 1 + 2816: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2818: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 281a: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 281c: 0bf9 bt 0x280e // 280e + } + switch(ADC12_ADCINX) + 281e: 3d0f cmphsi r5, 16 + 2820: 0825 bt 0x286a // 286a + 2822: 6c17 mov r0, r5 + 2824: 1255 lrw r2, 0x2000004c // 2978 + 2826: 1296 lrw r4, 0x20000048 // 297c + 2828: e3fff26a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 282c: 322c1408 .long 0x322c1408 + 2830: 4d474039 .long 0x4d474039 + 2834: 756d6559 .long 0x756d6559 + 2838: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 283c: 9240 ld.w r2, (r2, 0x0) + 283e: 9200 ld.w r0, (r2, 0x0) + 2840: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2842: 9201 ld.w r0, (r2, 0x4) + 2844: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 2846: 9400 ld.w r0, (r4, 0x0) + 2848: 9040 ld.w r2, (r0, 0x0) + 284a: 34f0 movi r4, 240 + 284c: 6891 andn r2, r4 + 284e: 3aa4 bseti r2, 4 + 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; + 2850: b040 st.w r2, (r0, 0x0) + break; + 2852: 040c br 0x286a // 286a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2854: 9200 ld.w r0, (r2, 0x0) + 2856: 9040 ld.w r2, (r0, 0x0) + 2858: 370f movi r7, 15 + 285a: 689d andn r2, r7 + 285c: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 285e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2860: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2862: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2864: 9440 ld.w r2, (r4, 0x0) + 2866: 9200 ld.w r0, (r2, 0x0) + 2868: b200 st.w r0, (r2, 0x0) + 286a: 4362 lsli r3, r3, 2 + 286c: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 286e: 966c ld.w r3, (r6, 0x30) + 2870: 3300 movi r3, 0 + 2872: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2874: 9860 ld.w r3, (r14, 0x0) + 2876: 6c4c or r1, r3 + 2878: 964c ld.w r2, (r6, 0x30) + 287a: 6d44 or r5, r1 + 287c: 6d48 or r5, r2 + 287e: b6ac st.w r5, (r6, 0x30) +} + 2880: 1401 addi r14, r14, 4 + 2882: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 2884: 9200 ld.w r0, (r2, 0x0) + 2886: 9040 ld.w r2, (r0, 0x0) + 2888: 37f0 movi r7, 240 + 288a: 689d andn r2, r7 + 288c: 3aa4 bseti r2, 4 + 288e: 07e8 br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 2890: 9200 ld.w r0, (r2, 0x0) + 2892: 37f0 movi r7, 240 + 2894: 9040 ld.w r2, (r0, 0x0) + 2896: 47e8 lsli r7, r7, 8 + 2898: 689d andn r2, r7 + 289a: 3aac bseti r2, 12 + 289c: 07e1 br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 289e: 9200 ld.w r0, (r2, 0x0) + 28a0: 37f0 movi r7, 240 + 28a2: 9040 ld.w r2, (r0, 0x0) + 28a4: 47f0 lsli r7, r7, 16 + 28a6: 689d andn r2, r7 + 28a8: 3ab4 bseti r2, 20 + 28aa: 07da br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 28ac: 9200 ld.w r0, (r2, 0x0) + 28ae: 37f0 movi r7, 240 + 28b0: 9040 ld.w r2, (r0, 0x0) + 28b2: 47f4 lsli r7, r7, 20 + 28b4: 689d andn r2, r7 + 28b6: 3ab8 bseti r2, 24 + 28b8: 07d3 br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28ba: 9200 ld.w r0, (r2, 0x0) + 28bc: 9040 ld.w r2, (r0, 0x0) + 28be: 4244 lsli r2, r2, 4 + 28c0: 4a44 lsri r2, r2, 4 + 28c2: 3abc bseti r2, 28 + 28c4: 07cd br 0x285e // 285e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 28c6: 9240 ld.w r2, (r2, 0x0) + 28c8: 9200 ld.w r0, (r2, 0x0) + 28ca: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28cc: 9201 ld.w r0, (r2, 0x4) + 28ce: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 28d0: 9400 ld.w r0, (r4, 0x0) + 28d2: 34f0 movi r4, 240 + 28d4: 9040 ld.w r2, (r0, 0x0) + 28d6: 4484 lsli r4, r4, 4 + 28d8: 6891 andn r2, r4 + 28da: 3aa8 bseti r2, 8 + 28dc: 07ba br 0x2850 // 2850 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 28de: 9240 ld.w r2, (r2, 0x0) + 28e0: 9200 ld.w r0, (r2, 0x0) + 28e2: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28e4: 9201 ld.w r0, (r2, 0x4) + 28e6: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 28e8: 9400 ld.w r0, (r4, 0x0) + 28ea: 34f0 movi r4, 240 + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 4488 lsli r4, r4, 8 + 28f0: 6891 andn r2, r4 + 28f2: 3aac bseti r2, 12 + 28f4: 07ae br 0x2850 // 2850 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: 9040 ld.w r2, (r0, 0x0) + 28fa: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 28fc: 9041 ld.w r2, (r0, 0x4) + 28fe: 370f movi r7, 15 + 2900: 689d andn r2, r7 + 2902: 3aa0 bseti r2, 0 + 2904: 07af br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2906: 9200 ld.w r0, (r2, 0x0) + 2908: 9040 ld.w r2, (r0, 0x0) + 290a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 290c: 9041 ld.w r2, (r0, 0x4) + 290e: 37f0 movi r7, 240 + 2910: 689d andn r2, r7 + 2912: 3aa4 bseti r2, 4 + 2914: 07a7 br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2916: 9200 ld.w r0, (r2, 0x0) + 2918: 9040 ld.w r2, (r0, 0x0) + 291a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 291c: 37f0 movi r7, 240 + 291e: 9041 ld.w r2, (r0, 0x4) + 2920: 47e4 lsli r7, r7, 4 + 2922: 689d andn r2, r7 + 2924: 3aa8 bseti r2, 8 + 2926: 079e br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2928: 9200 ld.w r0, (r2, 0x0) + 292a: 9040 ld.w r2, (r0, 0x0) + 292c: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 292e: 37f0 movi r7, 240 + 2930: 9041 ld.w r2, (r0, 0x4) + 2932: 47e8 lsli r7, r7, 8 + 2934: 689d andn r2, r7 + 2936: 3aac bseti r2, 12 + 2938: 0795 br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 293a: 9200 ld.w r0, (r2, 0x0) + 293c: 9040 ld.w r2, (r0, 0x0) + 293e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2940: 37f0 movi r7, 240 + 2942: 9041 ld.w r2, (r0, 0x4) + 2944: 47ec lsli r7, r7, 12 + 2946: 689d andn r2, r7 + 2948: 3ab0 bseti r2, 16 + 294a: 078c br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 294c: 9200 ld.w r0, (r2, 0x0) + 294e: 9040 ld.w r2, (r0, 0x0) + 2950: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2952: 37f0 movi r7, 240 + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 47f0 lsli r7, r7, 16 + 2958: 689d andn r2, r7 + 295a: 3ab4 bseti r2, 20 + 295c: 0783 br 0x2862 // 2862 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 295e: 9240 ld.w r2, (r2, 0x0) + 2960: 9200 ld.w r0, (r2, 0x0) + 2962: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2964: 9201 ld.w r0, (r2, 0x4) + 2966: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2968: 9400 ld.w r0, (r4, 0x0) + 296a: 9040 ld.w r2, (r0, 0x0) + 296c: 340f movi r4, 15 + 296e: 6891 andn r2, r4 + 2970: 3aa0 bseti r2, 0 + 2972: 076f br 0x2850 // 2850 + 2974: 20000050 .long 0x20000050 + 2978: 2000004c .long 0x2000004c + 297c: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002980 : + 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) +{ + 2980: 14c4 push r4-r7 + 2982: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2984: 1165 lrw r3, 0x20000060 // 2a18 + 2986: 1186 lrw r4, 0x5a5a5a5a // 2a1c + 2988: 9360 ld.w r3, (r3, 0x0) + 298a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 298c: 3407 movi r4, 7 + 298e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2990: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2992: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2994: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2996: 9384 ld.w r4, (r3, 0x10) + 2998: 3c40 cmpnei r4, 0 + 299a: 0bfe bt 0x2996 // 2996 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 299c: 2102 addi r1, 3 + 299e: 4922 lsri r1, r1, 2 + 29a0: 4122 lsli r1, r1, 2 + 29a2: 6048 addu r1, r2 + 29a4: b820 st.w r1, (r14, 0x0) + 29a6: 5829 subu r1, r0, r2 + 29a8: b821 st.w r1, (r14, 0x4) + 29aa: 9820 ld.w r1, (r14, 0x0) + 29ac: 644a cmpne r2, r1 + 29ae: 0826 bt 0x29fa // 29fa + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 29b0: 3106 movi r1, 6 + SetUserKey; + 29b2: 105b lrw r2, 0x5a5a5a5a // 2a1c + 29b4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 29b6: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29b8: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 29ba: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29bc: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29be: 9324 ld.w r1, (r3, 0x10) + 29c0: 3940 cmpnei r1, 0 + 29c2: 0bfe bt 0x29be // 29be + //Perform pre-programming 4 + SetUserKey; + 29c4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 29c6: 3201 movi r2, 1 + 29c8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 29ca: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29cc: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 29ce: 934a ld.w r2, (r3, 0x28) + 29d0: 3a44 cmpnei r2, 4 + 29d2: 0bfe bt 0x29ce // 29ce + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 29d4: 3102 movi r1, 2 + SetUserKey; + 29d6: 1052 lrw r2, 0x5a5a5a5a // 2a1c + 29d8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 29da: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 29dc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 29de: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29e0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 29e2: 932a ld.w r1, (r3, 0x28) + 29e4: 3941 cmpnei r1, 1 + 29e6: 0bfe bt 0x29e2 // 29e2 + //Write page cache data to flash memory 6 + SetUserKey; + 29e8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 29ea: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 29ec: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ee: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 29f0: 934a ld.w r2, (r3, 0x28) + 29f2: 3a42 cmpnei r2, 2 + 29f4: 0bfe bt 0x29f0 // 29f0 +} + 29f6: 1402 addi r14, r14, 8 + 29f8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 29fa: 82e0 ld.b r7, (r2, 0x0) + 29fc: 8281 ld.b r4, (r2, 0x1) + 29fe: 4488 lsli r4, r4, 8 + 2a00: 8222 ld.b r1, (r2, 0x2) + 2a02: 611c addu r4, r7 + 2a04: 82a3 ld.b r5, (r2, 0x3) + 2a06: 4130 lsli r1, r1, 16 + 2a08: 98c1 ld.w r6, (r14, 0x4) + 2a0a: 6050 addu r1, r4 + 2a0c: 45b8 lsli r5, r5, 24 + 2a0e: 6188 addu r6, r2 + 2a10: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a12: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a14: 2203 addi r2, 4 + 2a16: 07ca br 0x29aa // 29aa + 2a18: 20000060 .long 0x20000060 + 2a1c: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a20 : +//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) +{ + 2a20: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a2c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a2e: 3b40 cmpnei r3, 0 + 2a30: 0c06 bf 0x2a3c // 2a3c + 2a32: 6d0f mov r4, r3 + 2a34: 6914 and r4, r5 + 2a36: 3c40 cmpnei r4, 0 + 2a38: 0802 bt 0x2a3c // 2a3c + RdStartAdd +=4; + 2a3a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a3c: 6d0f mov r4, r3 + 2a3e: 6914 and r4, r5 + 2a40: 6100 addu r4, r0 + 2a42: 8480 ld.b r4, (r4, 0x0) + 2a44: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002a4c : +void tk_parameter_init(void) +{ +/**************************************************** +//TK parameter define +*****************************************************/ + TK_IO_ENABLE=0x3E00; + 2a4c: 33f8 movi r3, 248 + 2a4e: 4366 lsli r3, r3, 6 + 2a50: 1159 lrw r2, 0x20000108 // 2b34 + 2a52: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a54: 3246 movi r2, 70 + 2a56: 1179 lrw r3, 0x2000010e // 2b38 + 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 + 2a58: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a5a: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2a5c: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2a5e: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2a60: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2a62: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2a64: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2a66: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2a68: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2a6a: 1155 lrw r2, 0x20000204 // 2b3c + 2a6c: 8a22 ld.h r1, (r2, 0x4) + 2a6e: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2a70: 8a23 ld.h r1, (r2, 0x6) + 2a72: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2a74: 8a24 ld.h r1, (r2, 0x8) + 2a76: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2a78: 8a25 ld.h r1, (r2, 0xa) + 2a7a: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2a7c: 8a26 ld.h r1, (r2, 0xc) + 2a7e: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2a80: 3146 movi r1, 70 + 2a82: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2a84: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2a86: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2a88: 3128 movi r1, 40 + 2a8a: 116e lrw r3, 0x20000132 // 2b40 + 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 + 2a8c: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2a8e: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2a90: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2a92: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2a94: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2a96: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2a98: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2a9a: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2a9c: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2a9e: 8a27 ld.h r1, (r2, 0xe) + 2aa0: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2aa2: 8a28 ld.h r1, (r2, 0x10) + 2aa4: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2aa6: 8a29 ld.h r1, (r2, 0x12) + 2aa8: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2aaa: 8a2a ld.h r1, (r2, 0x14) + 2aac: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2aae: 8a2b ld.h r1, (r2, 0x16) + 2ab0: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2ab2: 3128 movi r1, 40 + 2ab4: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2ab6: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2ab8: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2aba: 8220 ld.b r1, (r2, 0x0) + 2abc: 1162 lrw r3, 0x200000d8 // 2b44 + 2abe: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2ac0: 8221 ld.b r1, (r2, 0x1) + 2ac2: 1162 lrw r3, 0x200000e0 // 2b48 + 2ac4: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2ac6: 3101 movi r1, 1 + 2ac8: 1161 lrw r3, 0x200000e1 // 2b4c + 2aca: a320 st.b r1, (r3, 0x0) + MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + 2acc: 8222 ld.b r1, (r2, 0x2) + 2ace: 1161 lrw r3, 0x20000104 // 2b50 + 2ad0: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2ad2: 3106 movi r1, 6 + 2ad4: 1160 lrw r3, 0x2000010c // 2b54 + 2ad6: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2ad8: 8223 ld.b r1, (r2, 0x3) + 2ada: 1160 lrw r3, 0x20000105 // 2b58 + 2adc: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2ade: 9246 ld.w r2, (r2, 0x18) + 2ae0: 107f lrw r3, 0x200000dc // 2b5c + 2ae2: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2ae4: 105f lrw r2, 0xea5f // 2b60 + 2ae6: 1160 lrw r3, 0x20000158 // 2b64 + 2ae8: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2aea: 3200 movi r2, 0 + 2aec: 107f lrw r3, 0x200000d9 // 2b68 + 2aee: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2af0: 3202 movi r2, 2 + 2af2: 107f lrw r3, 0x200000da // 2b6c + 2af4: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2af6: 3232 movi r2, 50 + 2af8: 107e lrw r3, 0x20000130 // 2b70 + 2afa: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2afc: 3200 movi r2, 0 + 2afe: 107e lrw r3, 0x2000015c // 2b74 + 2b00: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b02: 107e lrw r3, 0x20000156 // 2b78 + 2b04: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b06: 107e lrw r3, 0x20000154 // 2b7c + 2b08: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=6; //TCH0 TK Scan icon range 0~7 + 2b0a: 3206 movi r2, 6 + 2b0c: 107d lrw r3, 0x200000e2 // 2b80 + 2b0e: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=6; //TCH1 TK Scan icon range 0~7 + 2b10: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=6; //TCH2 TK Scan icon range 0~7 + 2b12: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=6; //TCH3 TK Scan icon range 0~7 + 2b14: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=6; //TCH4 TK Scan icon range 0~7 + 2b16: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=6; //TCH5 TK Scan icon range 0~7 + 2b18: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=6; //TCH6 TK Scan icon range 0~7 + 2b1a: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=6; //TCH7 TK Scan icon range 0~7 + 2b1c: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=6; //TCH8 TK Scan icon range 0~7 + 2b1e: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + 2b20: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + 2b22: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + 2b24: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + 2b26: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + 2b28: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=6; //TCH14 TK Scan icon range 0~7 + 2b2a: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=6; //TCH15 TK Scan icon range 0~7 + 2b2c: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=6; //TCH16 TK Scan icon range 0~7 + 2b2e: ab50 st.h r2, (r3, 0x20) + 2b30: 783c jmp r15 + 2b32: 0000 bkpt + 2b34: 20000108 .long 0x20000108 + 2b38: 2000010e .long 0x2000010e + 2b3c: 20000204 .long 0x20000204 + 2b40: 20000132 .long 0x20000132 + 2b44: 200000d8 .long 0x200000d8 + 2b48: 200000e0 .long 0x200000e0 + 2b4c: 200000e1 .long 0x200000e1 + 2b50: 20000104 .long 0x20000104 + 2b54: 2000010c .long 0x2000010c + 2b58: 20000105 .long 0x20000105 + 2b5c: 200000dc .long 0x200000dc + 2b60: 0000ea5f .long 0x0000ea5f + 2b64: 20000158 .long 0x20000158 + 2b68: 200000d9 .long 0x200000d9 + 2b6c: 200000da .long 0x200000da + 2b70: 20000130 .long 0x20000130 + 2b74: 2000015c .long 0x2000015c + 2b78: 20000156 .long 0x20000156 + 2b7c: 20000154 .long 0x20000154 + 2b80: 200000e2 .long 0x200000e2 + +Disassembly of section .text.CORET_DeInit: + +00002b84 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2b84: 1065 lrw r3, 0x20000064 // 2b98 + 2b86: 3204 movi r2, 4 + 2b88: 9360 ld.w r3, (r3, 0x0) + 2b8a: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2b8c: 3200 movi r2, 0 + 2b8e: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2b90: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2b92: b347 st.w r2, (r3, 0x1c) +} + 2b94: 783c jmp r15 + 2b96: 0000 bkpt + 2b98: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002b9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2b9c: 1064 lrw r3, 0x20000064 // 2bac + 2b9e: 3200 movi r2, 0 + 2ba0: 9360 ld.w r3, (r3, 0x0) + 2ba2: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2ba4: 3201 movi r2, 1 + 2ba6: 1063 lrw r3, 0xe000e100 // 2bb0 + 2ba8: b340 st.w r2, (r3, 0x0) +} + 2baa: 783c jmp r15 + 2bac: 20000064 .long 0x20000064 + 2bb0: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002bb4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2bb4: 1063 lrw r3, 0x20000064 // 2bc0 + 2bb6: 9340 ld.w r2, (r3, 0x0) + 2bb8: 9264 ld.w r3, (r2, 0x10) + 2bba: 3ba0 bseti r3, 0 + 2bbc: b264 st.w r3, (r2, 0x10) +} + 2bbe: 783c jmp r15 + 2bc0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002bc4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2bc4: 1063 lrw r3, 0x20000064 // 2bd0 + 2bc6: 9340 ld.w r2, (r3, 0x0) + 2bc8: 9264 ld.w r3, (r2, 0x10) + 2bca: 3b82 bclri r3, 2 + 2bcc: b264 st.w r3, (r2, 0x10) +} + 2bce: 783c jmp r15 + 2bd0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002bd4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2bd4: 1063 lrw r3, 0x20000064 // 2be0 + 2bd6: 9340 ld.w r2, (r3, 0x0) + 2bd8: 9264 ld.w r3, (r2, 0x10) + 2bda: 3ba1 bseti r3, 1 + 2bdc: b264 st.w r3, (r2, 0x10) +} + 2bde: 783c jmp r15 + 2be0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002be4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2be4: 1063 lrw r3, 0x20000064 // 2bf0 + 2be6: 3200 movi r2, 0 + 2be8: 9360 ld.w r3, (r3, 0x0) + 2bea: b346 st.w r2, (r3, 0x18) +} + 2bec: 783c jmp r15 + 2bee: 0000 bkpt + 2bf0: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002bf4
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2bf4: 14d0 push r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2bf6: e00000d1 bsr 0x2d98 // 2d98 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2bfa: 1072 lrw r3, 0x20000264 // 2c40 + 2bfc: 8340 ld.b r2, (r3, 0x0) + 2bfe: 1032 lrw r1, 0x72bc // 2c44 + 2c00: 3000 movi r0, 0 + 2c02: e00006e1 bsr 0x39c4 // 39c4 + + TemCtrl_Init(); + 2c06: e00010b1 bsr 0x4d68 // 4d68 + DisPlay_Init(); + 2c0a: e000154b bsr 0x56a0 // 56a0 + Debug_Init(); + 2c0e: e0001637 bsr 0x587c // 587c + RF_Info_Init(); + 2c12: e0001709 bsr 0x5a24 // 5a24 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c16: e3fff827 bsr 0x1c64 // 1c64 + + UART2_TASK(); + 2c1a: e0000683 bsr 0x3920 // 3920 + + Touch_Key_Task(); + 2c1e: e0000829 bsr 0x3c70 // 3c70 + + TemCtrl_Pro(); + 2c22: e0001245 bsr 0x50ac // 50ac + + DisPlay_Task(); + 2c26: e000154d bsr 0x56c0 // 56c0 + + HT1621_Refresh_Task(); + 2c2a: e000106f bsr 0x4d08 // 4d08 + + ADC_Sample_Task(); + 2c2e: e0000d5b bsr 0x46e4 // 46e4 + + Debug_Task(); + 2c32: e000166d bsr 0x590c // 590c + + TemFun_Report_Task(); + 2c36: e00018f7 bsr 0x5e24 // 5e24 + + zigbee_uart_service(); + 2c3a: e0001881 bsr 0x5d3c // 5d3c + 2c3e: 07ec br 0x2c16 // 2c16 + 2c40: 20000264 .long 0x20000264 + 2c44: 000072bc .long 0x000072bc + +Disassembly of section .text.delay_nms: + +00002c48 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2c48: 14d0 push r15 + 2c4a: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2c4c: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2c4e: 3300 movi r3, 0 + j = 50* t; + 2c50: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2c52: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2c54: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2c56: b860 st.w r3, (r14, 0x0) + 2c58: 9840 ld.w r2, (r14, 0x0) + 2c5a: 9861 ld.w r3, (r14, 0x4) + 2c5c: 64c8 cmphs r2, r3 + 2c5e: 0c03 bf 0x2c64 // 2c64 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2c60: 1403 addi r14, r14, 12 + 2c62: 1490 pop r15 + k++; + 2c64: 9862 ld.w r3, (r14, 0x8) + 2c66: 2300 addi r3, 1 + 2c68: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2c6a: e3fff7fd bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 2c6e: 9860 ld.w r3, (r14, 0x0) + 2c70: 2300 addi r3, 1 + 2c72: 07f2 br 0x2c56 // 2c56 + +Disassembly of section .text.EPT0_CONFIG: + +00002c74 : +//ETP0 Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0_CONFIG(void) +{ + 2c74: 14d1 push r4, r15 + 2c76: 1429 subi r14, r14, 36 + //4路 PWM初始化 + EPT_Software_Prg(); //EPT software reset + 2c78: e3fffa36 bsr 0x20e4 // 20e4 +//------------ 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_PB00); //CX channel selection + 2c7c: 311d movi r1, 29 + 2c7e: 3004 movi r0, 4 + 2c80: e3fffa6a bsr 0x2154 // 2154 + //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) + 2c84: 3300 movi r3, 0 + 2c86: 3200 movi r2, 0 + 2c88: 3100 movi r1, 0 + 2c8a: 3000 movi r0, 0 + 2c8c: e3fffb80 bsr 0x238c // 238c +// 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, + 2c90: 3380 movi r3, 128 + 2c92: 3400 movi r4, 0 + 2c94: b862 st.w r3, (r14, 0x8) + 2c96: 3280 movi r2, 128 + 2c98: 3320 movi r3, 32 + 2c9a: 3180 movi r1, 128 + 2c9c: b861 st.w r3, (r14, 0x4) + 2c9e: 4250 lsli r2, r2, 16 + 2ca0: 412e lsli r1, r1, 14 + 2ca2: b888 st.w r4, (r14, 0x20) + 2ca4: b887 st.w r4, (r14, 0x1c) + 2ca6: b886 st.w r4, (r14, 0x18) + 2ca8: b885 st.w r4, (r14, 0x14) + 2caa: b884 st.w r4, (r14, 0x10) + 2cac: b883 st.w r4, (r14, 0xc) + 2cae: b880 st.w r4, (r14, 0x0) + 2cb0: 3301 movi r3, 1 + 2cb2: 3002 movi r0, 2 + 2cb4: e3fffb88 bsr 0x23c4 // 23c4 +// 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,0,3000,0);//PRDR=2400,CMPA=1200,CMPB=600,CMPC=2400,CMPD=0 + 2cb8: 1066 lrw r3, 0xbb8 // 2cd0 + 2cba: 3200 movi r2, 0 + 2cbc: 3100 movi r1, 0 + 2cbe: 6c0f mov r0, r3 + 2cc0: b880 st.w r4, (r14, 0x0) + 2cc2: e3fffbed bsr 0x249c // 249c + +// EPT_Int_Enable(EPT_PEND);//End of cycle interrupt request raw status +// EPT_Vector_Int_Enable(); //开启EPT中断 +//------------ EPT start --------------------------------/ + EPT_Start(); + 2cc6: e3fffa1f bsr 0x2104 // 2104 + +} + 2cca: 1409 addi r14, r14, 36 + 2ccc: 1491 pop r4, r15 + 2cce: 0000 bkpt + 2cd0: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.BT_CONFIG: + +00002cd4 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2cd4: 14d2 push r4-r5, r15 + 2cd6: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2cd8: 1095 lrw r4, 0x20000008 // 2d2c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2cda: 3500 movi r5, 0 + BT_DeInit(BT1); + 2cdc: 9400 ld.w r0, (r4, 0x0) + 2cde: e3fff8e7 bsr 0x1eac // 1eac + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2ce2: 9400 ld.w r0, (r4, 0x0) + 2ce4: b8a1 st.w r5, (r14, 0x4) + 2ce6: b8a0 st.w r5, (r14, 0x0) + 2ce8: 3308 movi r3, 8 + 2cea: 3200 movi r2, 0 + 2cec: 3101 movi r1, 1 + 2cee: e3fff8f6 bsr 0x1eda // 1eda + 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); + 2cf2: 3380 movi r3, 128 + 2cf4: 4363 lsli r3, r3, 3 + 2cf6: b861 st.w r3, (r14, 0x4) + 2cf8: 9400 ld.w r0, (r4, 0x0) + 2cfa: 3300 movi r3, 0 + 2cfc: b8a3 st.w r5, (r14, 0xc) + 2cfe: b8a2 st.w r5, (r14, 0x8) + 2d00: b8a0 st.w r5, (r14, 0x0) + 2d02: 3200 movi r2, 0 + 2d04: 3180 movi r1, 128 + 2d06: e3fff8f6 bsr 0x1ef2 // 1ef2 + BT_Period_CMP_Write(BT1,4780,1); + 2d0a: 3201 movi r2, 1 + 2d0c: 1029 lrw r1, 0x12ac // 2d30 + 2d0e: 9400 ld.w r0, (r4, 0x0) + 2d10: e3fff907 bsr 0x1f1e // 1f1e + BT_Start(BT1); + 2d14: 9400 ld.w r0, (r4, 0x0) + 2d16: e3fff8d9 bsr 0x1ec8 // 1ec8 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2d1a: 9400 ld.w r0, (r4, 0x0) + 2d1c: 3202 movi r2, 2 + 2d1e: 3101 movi r1, 1 + 2d20: e3fff902 bsr 0x1f24 // 1f24 + BT1_INT_ENABLE(); + 2d24: e3fff90a bsr 0x1f38 // 1f38 + +} + 2d28: 1404 addi r14, r14, 16 + 2d2a: 1492 pop r4-r5, r15 + 2d2c: 20000008 .long 0x20000008 + 2d30: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002d34 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2d34: 14d0 push r15 + 2d36: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2d38: e3fff6e2 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2d3c: 3101 movi r1, 1 + 2d3e: 3001 movi r0, 1 + 2d40: e3fff704 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 + 2d44: 3000 movi r0, 0 + 2d46: e3fff75d 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 + 2d4a: 3180 movi r1, 128 + 2d4c: 3308 movi r3, 8 + 2d4e: 3200 movi r2, 0 + 2d50: 4121 lsli r1, r1, 1 + 2d52: 3002 movi r0, 2 + 2d54: e3fff712 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2d58: 30c0 movi r0, 192 + 2d5a: 3118 movi r1, 24 + 2d5c: 4002 lsli r0, r0, 2 + 2d5e: e3fff78d bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2d62: 3001 movi r0, 1 + 2d64: e3fff762 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2d68: e3fff77e bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2d6c: e3fff7b0 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 + 2d70: 3340 movi r3, 64 + 2d72: b860 st.w r3, (r14, 0x0) + 2d74: 31c0 movi r1, 192 + 2d76: 3380 movi r3, 128 + 2d78: 4364 lsli r3, r3, 4 + 2d7a: 3200 movi r2, 0 + 2d7c: 4123 lsli r1, r1, 3 + 2d7e: 3000 movi r0, 0 + 2d80: e3fff788 bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 2d84: e3fff796 bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2d88: e3fff7d0 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 + 2d8c: 3000 movi r0, 0 + 2d8e: e0001ef9 bsr 0x6b80 // 6b80 + +} + 2d92: 1401 addi r14, r14, 4 + 2d94: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002d98 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2d98: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2d9a: 107c lrw r3, 0x2000005c // 2e08 + Sys_RSR = 0x00000000; + 2d9c: 105c lrw r2, 0x200000a8 // 2e0c + 2d9e: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2da0: 9360 ld.w r3, (r3, 0x0) + 2da2: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2da4: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2da6: 600c addu r0, r3 + 2da8: 9004 ld.w r0, (r0, 0x10) + 2daa: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2dac: 1059 lrw r2, 0x200000a4 // 2e10 + 2dae: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2db0: 3180 movi r1, 128 + 2db2: 4121 lsli r1, r1, 1 + 2db4: 604c addu r1, r3 + 2db6: 9120 ld.w r1, (r1, 0x0) + 2db8: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2dba: 1057 lrw r2, 0xfffffff // 2e14 + 2dbc: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2dbe: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2dc0: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2dc2: 934c ld.w r2, (r3, 0x30) + 2dc4: 6884 and r2, r1 + 2dc6: 3a40 cmpnei r2, 0 + 2dc8: 0ffd bf 0x2dc2 // 2dc2 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2dca: e3ffffb5 bsr 0x2d34 // 2d34 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2dce: e000051f bsr 0x380c // 380c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2dd2: e3fff7b1 bsr 0x1d34 // 1d34 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2dd6: 3101 movi r1, 1 + 2dd8: 300f movi r0, 15 + 2dda: e3fff7bf bsr 0x1d58 // 1d58 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2dde: 3102 movi r1, 2 + 2de0: 3019 movi r0, 25 + 2de2: e3fff7bb bsr 0x1d58 // 1d58 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2de6: e00018b1 bsr 0x5f48 // 5f48 + + EPT0_CONFIG(); + 2dea: e3ffff45 bsr 0x2c74 // 2c74 + + BT_CONFIG(); //BT initial + 2dee: e3ffff73 bsr 0x2cd4 // 2cd4 + + +// UARTx_Init(UART_1,NULL); + UARTx_Init(UART_2,TouchKey_Comm_Processing); //通讯串口 + 2df2: 102a lrw r1, 0x4090 // 2e18 + 2df4: 3002 movi r0, 2 + 2df6: e000050f bsr 0x3814 // 3814 + + HT1621_Init(); //显示驱动初始化 + 2dfa: e0000d11 bsr 0x481c // 481c + + Touch_Key_Init(); + 2dfe: e00005eb bsr 0x39d4 // 39d4 + + ADC_Init(); + 2e02: e0000bbf bsr 0x4580 // 4580 + +} + 2e06: 1490 pop r15 + 2e08: 2000005c .long 0x2000005c + 2e0c: 200000a8 .long 0x200000a8 + 2e10: 200000a4 .long 0x200000a4 + 2e14: 0fffffff .long 0x0fffffff + 2e18: 00004090 .long 0x00004090 + +Disassembly of section .text.SYSCONIntHandler: + +00002e1c : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2e1c: 1460 nie + 2e1e: 1462 ipush + // ISR content ... + nop; + 2e20: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2e22: 117a lrw r3, 0x2000005c // 2f08 + 2e24: 3280 movi r2, 128 + 2e26: 9360 ld.w r3, (r3, 0x0) + 2e28: 60c8 addu r3, r2 + 2e2a: 9323 ld.w r1, (r3, 0xc) + 2e2c: 3001 movi r0, 1 + 2e2e: 6840 and r1, r0 + 2e30: 3940 cmpnei r1, 0 + 2e32: 0c04 bf 0x2e3a // 2e3a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2e34: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2e36: 1463 ipop + 2e38: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2e3a: 9323 ld.w r1, (r3, 0xc) + 2e3c: 3002 movi r0, 2 + 2e3e: 6840 and r1, r0 + 2e40: 3940 cmpnei r1, 0 + 2e42: 0bf9 bt 0x2e34 // 2e34 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2e44: 9323 ld.w r1, (r3, 0xc) + 2e46: 3008 movi r0, 8 + 2e48: 6840 and r1, r0 + 2e4a: 3940 cmpnei r1, 0 + 2e4c: 0bf4 bt 0x2e34 // 2e34 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2e4e: 9323 ld.w r1, (r3, 0xc) + 2e50: 3010 movi r0, 16 + 2e52: 6840 and r1, r0 + 2e54: 3940 cmpnei r1, 0 + 2e56: 0bef bt 0x2e34 // 2e34 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2e58: 9323 ld.w r1, (r3, 0xc) + 2e5a: 6848 and r1, r2 + 2e5c: 3940 cmpnei r1, 0 + 2e5e: 0c03 bf 0x2e64 // 2e64 + SYSCON->ICR = CMD_ERR_ST; + 2e60: b341 st.w r2, (r3, 0x4) +} + 2e62: 07ea br 0x2e36 // 2e36 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2e64: 3280 movi r2, 128 + 2e66: 9323 ld.w r1, (r3, 0xc) + 2e68: 4241 lsli r2, r2, 1 + 2e6a: 6848 and r1, r2 + 2e6c: 3940 cmpnei r1, 0 + 2e6e: 0bf9 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2e70: 3280 movi r2, 128 + 2e72: 9323 ld.w r1, (r3, 0xc) + 2e74: 4242 lsli r2, r2, 2 + 2e76: 6848 and r1, r2 + 2e78: 3940 cmpnei r1, 0 + 2e7a: 0bf3 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2e7c: 3280 movi r2, 128 + 2e7e: 9323 ld.w r1, (r3, 0xc) + 2e80: 4243 lsli r2, r2, 3 + 2e82: 6848 and r1, r2 + 2e84: 3940 cmpnei r1, 0 + 2e86: 0bed bt 0x2e60 // 2e60 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2e88: 3280 movi r2, 128 + 2e8a: 9323 ld.w r1, (r3, 0xc) + 2e8c: 4244 lsli r2, r2, 4 + 2e8e: 6848 and r1, r2 + 2e90: 3940 cmpnei r1, 0 + 2e92: 0c03 bf 0x2e98 // 2e98 + nop; + 2e94: 6c03 mov r0, r0 + 2e96: 07e5 br 0x2e60 // 2e60 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2e98: 3280 movi r2, 128 + 2e9a: 9323 ld.w r1, (r3, 0xc) + 2e9c: 4245 lsli r2, r2, 5 + 2e9e: 6848 and r1, r2 + 2ea0: 3940 cmpnei r1, 0 + 2ea2: 0bdf bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2ea4: 3280 movi r2, 128 + 2ea6: 9323 ld.w r1, (r3, 0xc) + 2ea8: 4246 lsli r2, r2, 6 + 2eaa: 6848 and r1, r2 + 2eac: 3940 cmpnei r1, 0 + 2eae: 0bd9 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2eb0: 3280 movi r2, 128 + 2eb2: 9323 ld.w r1, (r3, 0xc) + 2eb4: 4247 lsli r2, r2, 7 + 2eb6: 6848 and r1, r2 + 2eb8: 3940 cmpnei r1, 0 + 2eba: 0bd3 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2ebc: 3280 movi r2, 128 + 2ebe: 9323 ld.w r1, (r3, 0xc) + 2ec0: 424b lsli r2, r2, 11 + 2ec2: 6848 and r1, r2 + 2ec4: 3940 cmpnei r1, 0 + 2ec6: 0bcd bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2ec8: 3280 movi r2, 128 + 2eca: 9323 ld.w r1, (r3, 0xc) + 2ecc: 424c lsli r2, r2, 12 + 2ece: 6848 and r1, r2 + 2ed0: 3940 cmpnei r1, 0 + 2ed2: 0bc7 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2ed4: 3280 movi r2, 128 + 2ed6: 9323 ld.w r1, (r3, 0xc) + 2ed8: 424d lsli r2, r2, 13 + 2eda: 6848 and r1, r2 + 2edc: 3940 cmpnei r1, 0 + 2ede: 0bc1 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2ee0: 3280 movi r2, 128 + 2ee2: 9323 ld.w r1, (r3, 0xc) + 2ee4: 424e lsli r2, r2, 14 + 2ee6: 6848 and r1, r2 + 2ee8: 3940 cmpnei r1, 0 + 2eea: 0bbb bt 0x2e60 // 2e60 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2eec: 3280 movi r2, 128 + 2eee: 9323 ld.w r1, (r3, 0xc) + 2ef0: 424f lsli r2, r2, 15 + 2ef2: 6848 and r1, r2 + 2ef4: 3940 cmpnei r1, 0 + 2ef6: 0bb5 bt 0x2e60 // 2e60 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2ef8: 3280 movi r2, 128 + 2efa: 9323 ld.w r1, (r3, 0xc) + 2efc: 4256 lsli r2, r2, 22 + 2efe: 6848 and r1, r2 + 2f00: 3940 cmpnei r1, 0 + 2f02: 0baf bt 0x2e60 // 2e60 + 2f04: 0799 br 0x2e36 // 2e36 + 2f06: 0000 bkpt + 2f08: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002f0c : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2f0c: 1460 nie + 2f0e: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2f10: 1078 lrw r3, 0x20000060 // 2f70 + 2f12: 3101 movi r1, 1 + 2f14: 9360 ld.w r3, (r3, 0x0) + 2f16: 934b ld.w r2, (r3, 0x2c) + 2f18: 6884 and r2, r1 + 2f1a: 3a40 cmpnei r2, 0 + 2f1c: 0c04 bf 0x2f24 // 2f24 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2f1e: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2f20: 1463 ipop + 2f22: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2f24: 934b ld.w r2, (r3, 0x2c) + 2f26: 3102 movi r1, 2 + 2f28: 6884 and r2, r1 + 2f2a: 3a40 cmpnei r2, 0 + 2f2c: 0bf9 bt 0x2f1e // 2f1e + else if(IFC->MISR&PEP_END_INT) + 2f2e: 934b ld.w r2, (r3, 0x2c) + 2f30: 3104 movi r1, 4 + 2f32: 6884 and r2, r1 + 2f34: 3a40 cmpnei r2, 0 + 2f36: 0bf4 bt 0x2f1e // 2f1e + else if(IFC->MISR&PROT_ERR_INT) + 2f38: 3280 movi r2, 128 + 2f3a: 932b ld.w r1, (r3, 0x2c) + 2f3c: 4245 lsli r2, r2, 5 + 2f3e: 6848 and r1, r2 + 2f40: 3940 cmpnei r1, 0 + 2f42: 0c03 bf 0x2f48 // 2f48 + IFC->ICR=OVW_ERR_INT; + 2f44: b34c st.w r2, (r3, 0x30) +} + 2f46: 07ed br 0x2f20 // 2f20 + else if(IFC->MISR&UDEF_ERR_INT) + 2f48: 3280 movi r2, 128 + 2f4a: 932b ld.w r1, (r3, 0x2c) + 2f4c: 4246 lsli r2, r2, 6 + 2f4e: 6848 and r1, r2 + 2f50: 3940 cmpnei r1, 0 + 2f52: 0bf9 bt 0x2f44 // 2f44 + else if(IFC->MISR&ADDR_ERR_INT) + 2f54: 3280 movi r2, 128 + 2f56: 932b ld.w r1, (r3, 0x2c) + 2f58: 4247 lsli r2, r2, 7 + 2f5a: 6848 and r1, r2 + 2f5c: 3940 cmpnei r1, 0 + 2f5e: 0bf3 bt 0x2f44 // 2f44 + else if(IFC->MISR&OVW_ERR_INT) + 2f60: 3280 movi r2, 128 + 2f62: 932b ld.w r1, (r3, 0x2c) + 2f64: 4248 lsli r2, r2, 8 + 2f66: 6848 and r1, r2 + 2f68: 3940 cmpnei r1, 0 + 2f6a: 0bed bt 0x2f44 // 2f44 + 2f6c: 07da br 0x2f20 // 2f20 + 2f6e: 0000 bkpt + 2f70: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00002f74 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 2f74: 1460 nie + 2f76: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2f78: 1078 lrw r3, 0x20000050 // 2fd8 + 2f7a: 3101 movi r1, 1 + 2f7c: 9360 ld.w r3, (r3, 0x0) + 2f7e: 9348 ld.w r2, (r3, 0x20) + 2f80: 6884 and r2, r1 + 2f82: 3a40 cmpnei r2, 0 + 2f84: 0c04 bf 0x2f8c // 2f8c + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 2f86: 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; + } +} + 2f88: 1463 ipop + 2f8a: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2f8c: 9348 ld.w r2, (r3, 0x20) + 2f8e: 3102 movi r1, 2 + 2f90: 6884 and r2, r1 + 2f92: 3a40 cmpnei r2, 0 + 2f94: 0bf9 bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 2f96: 9348 ld.w r2, (r3, 0x20) + 2f98: 3104 movi r1, 4 + 2f9a: 6884 and r2, r1 + 2f9c: 3a40 cmpnei r2, 0 + 2f9e: 0bf4 bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2fa0: 9348 ld.w r2, (r3, 0x20) + 2fa2: 3110 movi r1, 16 + 2fa4: 6884 and r2, r1 + 2fa6: 3a40 cmpnei r2, 0 + 2fa8: 0bef bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2faa: 9348 ld.w r2, (r3, 0x20) + 2fac: 3120 movi r1, 32 + 2fae: 6884 and r2, r1 + 2fb0: 3a40 cmpnei r2, 0 + 2fb2: 0bea bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 2fb4: 9348 ld.w r2, (r3, 0x20) + 2fb6: 3140 movi r1, 64 + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0be5 bt 0x2f86 // 2f86 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 2fbe: 9348 ld.w r2, (r3, 0x20) + 2fc0: 3180 movi r1, 128 + 2fc2: 6884 and r2, r1 + 2fc4: 3a40 cmpnei r2, 0 + 2fc6: 0be0 bt 0x2f86 // 2f86 + 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 + 2fc8: 3280 movi r2, 128 + 2fca: 9328 ld.w r1, (r3, 0x20) + 2fcc: 4249 lsli r2, r2, 9 + 2fce: 6848 and r1, r2 + 2fd0: 3940 cmpnei r1, 0 + 2fd2: 0fdb bf 0x2f88 // 2f88 + ADC0->CSR = ADC12_SEQ_END0; + 2fd4: b347 st.w r2, (r3, 0x1c) +} + 2fd6: 07d9 br 0x2f88 // 2f88 + 2fd8: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00002fdc : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 2fdc: 1460 nie + 2fde: 1462 ipush + 2fe0: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 2fe2: 1387 lrw r4, 0x20000020 // 317c + 2fe4: 3280 movi r2, 128 + 2fe6: 9460 ld.w r3, (r4, 0x0) + 2fe8: 60c8 addu r3, r2 + 2fea: 9335 ld.w r1, (r3, 0x54) + 2fec: 3001 movi r0, 1 + 2fee: 6840 and r1, r0 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0c03 bf 0x2ff8 // 2ff8 + 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; + 2ff4: b317 st.w r0, (r3, 0x5c) + 2ff6: 0424 br 0x303e // 303e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2ff8: 9335 ld.w r1, (r3, 0x54) + 2ffa: 3002 movi r0, 2 + 2ffc: 6840 and r1, r0 + 2ffe: 3940 cmpnei r1, 0 + 3000: 0bfa bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3002: 9335 ld.w r1, (r3, 0x54) + 3004: 3004 movi r0, 4 + 3006: 6840 and r1, r0 + 3008: 3940 cmpnei r1, 0 + 300a: 0bf5 bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 300c: 9335 ld.w r1, (r3, 0x54) + 300e: 3008 movi r0, 8 + 3010: 6840 and r1, r0 + 3012: 3940 cmpnei r1, 0 + 3014: 0bf0 bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3016: 9335 ld.w r1, (r3, 0x54) + 3018: 3010 movi r0, 16 + 301a: 6840 and r1, r0 + 301c: 3940 cmpnei r1, 0 + 301e: 0c1f bf 0x305c // 305c + EPT0->ICR=EPT_CAP_LD0; + 3020: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3022: 3200 movi r2, 0 + 3024: 3101 movi r1, 1 + 3026: 3000 movi r0, 0 + 3028: e3fff660 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 302c: 3201 movi r2, 1 + 302e: 3101 movi r1, 1 + 3030: 3001 movi r0, 1 + 3032: e3fff65b bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3036: 9460 ld.w r3, (r4, 0x0) + 3038: 934b ld.w r2, (r3, 0x2c) + 303a: 1272 lrw r3, 0x20000164 // 3180 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 303c: 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 + 303e: 9460 ld.w r3, (r4, 0x0) + 3040: 3280 movi r2, 128 + 3042: 60c8 addu r3, r2 + 3044: 932b ld.w r1, (r3, 0x2c) + 3046: 3001 movi r0, 1 + 3048: 6840 and r1, r0 + 304a: 3940 cmpnei r1, 0 + 304c: 0c61 bf 0x310e // 310e + { + 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; + 304e: 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; + } +} + 3050: d9ee2001 ld.w r15, (r14, 0x4) + 3054: 9880 ld.w r4, (r14, 0x0) + 3056: 1402 addi r14, r14, 8 + 3058: 1463 ipop + 305a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 305c: 9335 ld.w r1, (r3, 0x54) + 305e: 3020 movi r0, 32 + 3060: 6840 and r1, r0 + 3062: 3940 cmpnei r1, 0 + 3064: 0c10 bf 0x3084 // 3084 + EPT0->ICR=EPT_CAP_LD1; + 3066: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3068: 3200 movi r2, 0 + 306a: 3101 movi r1, 1 + 306c: 3001 movi r0, 1 + 306e: e3fff63d bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 3072: 3201 movi r2, 1 + 3074: 3101 movi r1, 1 + 3076: 3000 movi r0, 0 + 3078: e3fff638 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 307c: 9460 ld.w r3, (r4, 0x0) + 307e: 934c ld.w r2, (r3, 0x30) + 3080: 1261 lrw r3, 0x20000160 // 3184 + 3082: 07dd br 0x303c // 303c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3084: 9335 ld.w r1, (r3, 0x54) + 3086: 3040 movi r0, 64 + 3088: 6840 and r1, r0 + 308a: 3940 cmpnei r1, 0 + 308c: 0bb4 bt 0x2ff4 // 2ff4 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 308e: 9335 ld.w r1, (r3, 0x54) + 3090: 6848 and r1, r2 + 3092: 3940 cmpnei r1, 0 + 3094: 0c03 bf 0x309a // 309a + EPT0->ICR=EPT_CDD; + 3096: b357 st.w r2, (r3, 0x5c) + 3098: 07d3 br 0x303e // 303e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 309a: 3280 movi r2, 128 + 309c: 9335 ld.w r1, (r3, 0x54) + 309e: 4241 lsli r2, r2, 1 + 30a0: 6848 and r1, r2 + 30a2: 3940 cmpnei r1, 0 + 30a4: 0bf9 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 30a6: 3280 movi r2, 128 + 30a8: 9335 ld.w r1, (r3, 0x54) + 30aa: 4242 lsli r2, r2, 2 + 30ac: 6848 and r1, r2 + 30ae: 3940 cmpnei r1, 0 + 30b0: 0bf3 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 30b2: 3280 movi r2, 128 + 30b4: 9335 ld.w r1, (r3, 0x54) + 30b6: 4243 lsli r2, r2, 3 + 30b8: 6848 and r1, r2 + 30ba: 3940 cmpnei r1, 0 + 30bc: 0bed bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 30be: 3280 movi r2, 128 + 30c0: 9335 ld.w r1, (r3, 0x54) + 30c2: 4244 lsli r2, r2, 4 + 30c4: 6848 and r1, r2 + 30c6: 3940 cmpnei r1, 0 + 30c8: 0be7 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 30ca: 3280 movi r2, 128 + 30cc: 9335 ld.w r1, (r3, 0x54) + 30ce: 4245 lsli r2, r2, 5 + 30d0: 6848 and r1, r2 + 30d2: 3940 cmpnei r1, 0 + 30d4: 0be1 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 30d6: 3280 movi r2, 128 + 30d8: 9335 ld.w r1, (r3, 0x54) + 30da: 4246 lsli r2, r2, 6 + 30dc: 6848 and r1, r2 + 30de: 3940 cmpnei r1, 0 + 30e0: 0bdb bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 30e2: 3280 movi r2, 128 + 30e4: 9335 ld.w r1, (r3, 0x54) + 30e6: 4247 lsli r2, r2, 7 + 30e8: 6848 and r1, r2 + 30ea: 3940 cmpnei r1, 0 + 30ec: 0bd5 bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 30ee: 3280 movi r2, 128 + 30f0: 9335 ld.w r1, (r3, 0x54) + 30f2: 4248 lsli r2, r2, 8 + 30f4: 6848 and r1, r2 + 30f6: 3940 cmpnei r1, 0 + 30f8: 0bcf bt 0x3096 // 3096 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 30fa: 3280 movi r2, 128 + 30fc: 9335 ld.w r1, (r3, 0x54) + 30fe: 4249 lsli r2, r2, 9 + 3100: 6848 and r1, r2 + 3102: 3940 cmpnei r1, 0 + 3104: 0f9d bf 0x303e // 303e + EPT0->ICR=EPT_PEND; + 3106: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3108: e3fff812 bsr 0x212c // 212c + 310c: 0799 br 0x303e // 303e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 310e: 932b ld.w r1, (r3, 0x2c) + 3110: 3002 movi r0, 2 + 3112: 6840 and r1, r0 + 3114: 3940 cmpnei r1, 0 + 3116: 0b9c bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3118: 932b ld.w r1, (r3, 0x2c) + 311a: 3004 movi r0, 4 + 311c: 6840 and r1, r0 + 311e: 3940 cmpnei r1, 0 + 3120: 0b97 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3122: 932b ld.w r1, (r3, 0x2c) + 3124: 3008 movi r0, 8 + 3126: 6840 and r1, r0 + 3128: 3940 cmpnei r1, 0 + 312a: 0b92 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 312c: 932b ld.w r1, (r3, 0x2c) + 312e: 3010 movi r0, 16 + 3130: 6840 and r1, r0 + 3132: 3940 cmpnei r1, 0 + 3134: 0b8d bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3136: 932b ld.w r1, (r3, 0x2c) + 3138: 3020 movi r0, 32 + 313a: 6840 and r1, r0 + 313c: 3940 cmpnei r1, 0 + 313e: 0b88 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3140: 932b ld.w r1, (r3, 0x2c) + 3142: 3040 movi r0, 64 + 3144: 6840 and r1, r0 + 3146: 3940 cmpnei r1, 0 + 3148: 0b83 bt 0x304e // 304e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 314a: 932b ld.w r1, (r3, 0x2c) + 314c: 6848 and r1, r2 + 314e: 3940 cmpnei r1, 0 + 3150: 0c03 bf 0x3156 // 3156 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3152: b34d st.w r2, (r3, 0x34) +} + 3154: 077e br 0x3050 // 3050 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3156: 3280 movi r2, 128 + 3158: 932b ld.w r1, (r3, 0x2c) + 315a: 4241 lsli r2, r2, 1 + 315c: 6848 and r1, r2 + 315e: 3940 cmpnei r1, 0 + 3160: 0bf9 bt 0x3152 // 3152 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3162: 3280 movi r2, 128 + 3164: 932b ld.w r1, (r3, 0x2c) + 3166: 4242 lsli r2, r2, 2 + 3168: 6848 and r1, r2 + 316a: 3940 cmpnei r1, 0 + 316c: 0bf3 bt 0x3152 // 3152 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 316e: 3280 movi r2, 128 + 3170: 932b ld.w r1, (r3, 0x2c) + 3172: 4243 lsli r2, r2, 3 + 3174: 6848 and r1, r2 + 3176: 3940 cmpnei r1, 0 + 3178: 0bed bt 0x3152 // 3152 + 317a: 076b br 0x3050 // 3050 + 317c: 20000020 .long 0x20000020 + 3180: 20000164 .long 0x20000164 + 3184: 20000160 .long 0x20000160 + +Disassembly of section .text.WWDTHandler: + +00003188 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3188: 1460 nie + 318a: 1462 ipush + 318c: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 318e: 10ab lrw r5, 0x20000010 // 31b8 + 3190: 3401 movi r4, 1 + 3192: 9560 ld.w r3, (r5, 0x0) + 3194: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3196: 30ff movi r0, 255 + 3198: e3fff682 bsr 0x1e9c // 1e9c + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 319c: 9540 ld.w r2, (r5, 0x0) + 319e: 9263 ld.w r3, (r2, 0xc) + 31a0: 68d0 and r3, r4 + 31a2: 3b40 cmpnei r3, 0 + 31a4: 0c02 bf 0x31a8 // 31a8 + { + WWDT->ICR = WWDT_EVI; + 31a6: b285 st.w r4, (r2, 0x14) + } +} + 31a8: d9ee2002 ld.w r15, (r14, 0x8) + 31ac: 98a1 ld.w r5, (r14, 0x4) + 31ae: 9880 ld.w r4, (r14, 0x0) + 31b0: 1403 addi r14, r14, 12 + 31b2: 1463 ipop + 31b4: 1461 nir + 31b6: 0000 bkpt + 31b8: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000031bc : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 31bc: 1460 nie + 31be: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 31c0: 107e lrw r3, 0x20000024 // 3238 + 31c2: 3101 movi r1, 1 + 31c4: 9360 ld.w r3, (r3, 0x0) + 31c6: 237f addi r3, 128 + 31c8: 9355 ld.w r2, (r3, 0x54) + 31ca: 6884 and r2, r1 + 31cc: 3a40 cmpnei r2, 0 + 31ce: 0c04 bf 0x31d6 // 31d6 + { + 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; + 31d0: 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; + } +} + 31d2: 1463 ipop + 31d4: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 31d6: 9355 ld.w r2, (r3, 0x54) + 31d8: 3102 movi r1, 2 + 31da: 6884 and r2, r1 + 31dc: 3a40 cmpnei r2, 0 + 31de: 0bf9 bt 0x31d0 // 31d0 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 31e0: 9355 ld.w r2, (r3, 0x54) + 31e2: 3110 movi r1, 16 + 31e4: 6884 and r2, r1 + 31e6: 3a40 cmpnei r2, 0 + 31e8: 0bf4 bt 0x31d0 // 31d0 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 31ea: 9355 ld.w r2, (r3, 0x54) + 31ec: 3120 movi r1, 32 + 31ee: 6884 and r2, r1 + 31f0: 3a40 cmpnei r2, 0 + 31f2: 0bef bt 0x31d0 // 31d0 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 31f4: 3280 movi r2, 128 + 31f6: 9335 ld.w r1, (r3, 0x54) + 31f8: 4241 lsli r2, r2, 1 + 31fa: 6848 and r1, r2 + 31fc: 3940 cmpnei r1, 0 + 31fe: 0c03 bf 0x3204 // 3204 + GPT0->ICR = GPT_INT_PEND; + 3200: b357 st.w r2, (r3, 0x5c) +} + 3202: 07e8 br 0x31d2 // 31d2 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3204: 3280 movi r2, 128 + 3206: 9335 ld.w r1, (r3, 0x54) + 3208: 4242 lsli r2, r2, 2 + 320a: 6848 and r1, r2 + 320c: 3940 cmpnei r1, 0 + 320e: 0bf9 bt 0x3200 // 3200 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3210: 3280 movi r2, 128 + 3212: 9335 ld.w r1, (r3, 0x54) + 3214: 4243 lsli r2, r2, 3 + 3216: 6848 and r1, r2 + 3218: 3940 cmpnei r1, 0 + 321a: 0bf3 bt 0x3200 // 3200 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 321c: 3280 movi r2, 128 + 321e: 9335 ld.w r1, (r3, 0x54) + 3220: 4244 lsli r2, r2, 4 + 3222: 6848 and r1, r2 + 3224: 3940 cmpnei r1, 0 + 3226: 0bed bt 0x3200 // 3200 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3228: 3280 movi r2, 128 + 322a: 9335 ld.w r1, (r3, 0x54) + 322c: 4249 lsli r2, r2, 9 + 322e: 6848 and r1, r2 + 3230: 3940 cmpnei r1, 0 + 3232: 0be7 bt 0x3200 // 3200 + 3234: 07cf br 0x31d2 // 31d2 + 3236: 0000 bkpt + 3238: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +0000323c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 323c: 1460 nie + 323e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3240: 1079 lrw r3, 0x20000018 // 32a4 + 3242: 3101 movi r1, 1 + 3244: 9360 ld.w r3, (r3, 0x0) + 3246: 934a ld.w r2, (r3, 0x28) + 3248: 6884 and r2, r1 + 324a: 3a40 cmpnei r2, 0 + 324c: 0c14 bf 0x3274 // 3274 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 324e: 1057 lrw r2, 0xca53 // 32a8 + RTC->ICR=ALRA_INT; + 3250: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3252: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3254: 9342 ld.w r2, (r3, 0x8) + 3256: 6c84 or r2, r1 + 3258: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 325a: 3280 movi r2, 128 + 325c: 424d lsli r2, r2, 13 + 325e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3260: 3102 movi r1, 2 + 3262: 9342 ld.w r2, (r3, 0x8) + 3264: 6884 and r2, r1 + 3266: 3a40 cmpnei r2, 0 + 3268: 0bfd bt 0x3262 // 3262 + RTC->CR &= ~0x1; + 326a: 9342 ld.w r2, (r3, 0x8) + 326c: 3a80 bclri r2, 0 + 326e: 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; + } +} + 3270: 1463 ipop + 3272: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3274: 934a ld.w r2, (r3, 0x28) + 3276: 3102 movi r1, 2 + 3278: 6884 and r2, r1 + 327a: 3a40 cmpnei r2, 0 + 327c: 0c03 bf 0x3282 // 3282 + RTC->ICR=RTC_TRGEV1_INT; + 327e: b32b st.w r1, (r3, 0x2c) +} + 3280: 07f8 br 0x3270 // 3270 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 3282: 934a ld.w r2, (r3, 0x28) + 3284: 3104 movi r1, 4 + 3286: 6884 and r2, r1 + 3288: 3a40 cmpnei r2, 0 + 328a: 0bfa bt 0x327e // 327e + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 328c: 934a ld.w r2, (r3, 0x28) + 328e: 3108 movi r1, 8 + 3290: 6884 and r2, r1 + 3292: 3a40 cmpnei r2, 0 + 3294: 0bf5 bt 0x327e // 327e + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3296: 934a ld.w r2, (r3, 0x28) + 3298: 3110 movi r1, 16 + 329a: 6884 and r2, r1 + 329c: 3a40 cmpnei r2, 0 + 329e: 0bf0 bt 0x327e // 327e + 32a0: 07e8 br 0x3270 // 3270 + 32a2: 0000 bkpt + 32a4: 20000018 .long 0x20000018 + 32a8: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000032ac : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 32ac: 1460 nie + 32ae: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 32b0: 106d lrw r3, 0x20000040 // 32e4 + 32b2: 3102 movi r1, 2 + 32b4: 9360 ld.w r3, (r3, 0x0) + 32b6: 9343 ld.w r2, (r3, 0xc) + 32b8: 6884 and r2, r1 + 32ba: 3a40 cmpnei r2, 0 + 32bc: 0c03 bf 0x32c2 // 32c2 + { + 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; + 32be: b323 st.w r1, (r3, 0xc) + } +} + 32c0: 0410 br 0x32e0 // 32e0 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 32c2: 9343 ld.w r2, (r3, 0xc) + 32c4: 3101 movi r1, 1 + 32c6: 6884 and r2, r1 + 32c8: 3a40 cmpnei r2, 0 + 32ca: 0bfa bt 0x32be // 32be + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 32cc: 9343 ld.w r2, (r3, 0xc) + 32ce: 3108 movi r1, 8 + 32d0: 6884 and r2, r1 + 32d2: 3a40 cmpnei r2, 0 + 32d4: 0bf5 bt 0x32be // 32be + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 32d6: 9343 ld.w r2, (r3, 0xc) + 32d8: 3104 movi r1, 4 + 32da: 6884 and r2, r1 + 32dc: 3a40 cmpnei r2, 0 + 32de: 0bf0 bt 0x32be // 32be +} + 32e0: 1463 ipop + 32e2: 1461 nir + 32e4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +000032e8 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 32e8: 1460 nie + 32ea: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 32ec: 106d lrw r3, 0x2000003c // 3320 + 32ee: 3102 movi r1, 2 + 32f0: 9360 ld.w r3, (r3, 0x0) + 32f2: 9343 ld.w r2, (r3, 0xc) + 32f4: 6884 and r2, r1 + 32f6: 3a40 cmpnei r2, 0 + 32f8: 0c03 bf 0x32fe // 32fe + { + 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; + 32fa: b323 st.w r1, (r3, 0xc) + } +} + 32fc: 0410 br 0x331c // 331c + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 32fe: 9343 ld.w r2, (r3, 0xc) + 3300: 3101 movi r1, 1 + 3302: 6884 and r2, r1 + 3304: 3a40 cmpnei r2, 0 + 3306: 0bfa bt 0x32fa // 32fa + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3308: 9343 ld.w r2, (r3, 0xc) + 330a: 3108 movi r1, 8 + 330c: 6884 and r2, r1 + 330e: 3a40 cmpnei r2, 0 + 3310: 0bf5 bt 0x32fa // 32fa + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3312: 9343 ld.w r2, (r3, 0xc) + 3314: 3104 movi r1, 4 + 3316: 6884 and r2, r1 + 3318: 3a40 cmpnei r2, 0 + 331a: 0bf0 bt 0x32fa // 32fa +} + 331c: 1463 ipop + 331e: 1461 nir + 3320: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003324 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3324: 1460 nie + 3326: 1462 ipush + 3328: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 332a: 107f lrw r3, 0x20000038 // 33a4 + 332c: 3102 movi r1, 2 + 332e: 9360 ld.w r3, (r3, 0x0) + 3330: 9343 ld.w r2, (r3, 0xc) + 3332: 6884 and r2, r1 + 3334: 3a40 cmpnei r2, 0 + 3336: 0c0b bf 0x334c // 334c + { + UART2->ISR=UART_RX_INT_S; + 3338: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 333a: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 333c: 7400 zextb r0, r0 + 333e: e00002bd bsr 0x38b8 // 38b8 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3342: d9ee2000 ld.w r15, (r14, 0x0) + 3346: 1401 addi r14, r14, 4 + 3348: 1463 ipop + 334a: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 334c: 9323 ld.w r1, (r3, 0xc) + 334e: 3201 movi r2, 1 + 3350: 6848 and r1, r2 + 3352: 3940 cmpnei r1, 0 + 3354: 0c0d bf 0x336e // 336e + UART2->ISR=UART_TX_INT_S; + 3356: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3358: 1074 lrw r3, 0x200000b8 // 33a8 + 335a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 335c: 1074 lrw r3, 0x200000bc // 33ac + 335e: 9360 ld.w r3, (r3, 0x0) + 3360: 3b41 cmpnei r3, 1 + 3362: 0bf0 bt 0x3342 // 3342 + RS485_Comm_Start ++; + 3364: 1053 lrw r2, 0x200000c0 // 33b0 + RS485_Comm_End ++; + 3366: 9260 ld.w r3, (r2, 0x0) + 3368: 2300 addi r3, 1 + 336a: b260 st.w r3, (r2, 0x0) +} + 336c: 07eb br 0x3342 // 3342 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 336e: 9343 ld.w r2, (r3, 0xc) + 3370: 3108 movi r1, 8 + 3372: 6884 and r2, r1 + 3374: 3a40 cmpnei r2, 0 + 3376: 0c03 bf 0x337c // 337c + UART2->ISR=UART_TX_IOV_S; + 3378: b323 st.w r1, (r3, 0xc) + 337a: 07e4 br 0x3342 // 3342 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 337c: 9343 ld.w r2, (r3, 0xc) + 337e: 3104 movi r1, 4 + 3380: 6884 and r2, r1 + 3382: 3a40 cmpnei r2, 0 + 3384: 0bfa bt 0x3378 // 3378 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3386: 3180 movi r1, 128 + 3388: 9303 ld.w r0, (r3, 0xc) + 338a: 412c lsli r1, r1, 12 + 338c: 6804 and r0, r1 + 338e: 3840 cmpnei r0, 0 + 3390: 0fd9 bf 0x3342 // 3342 + UART2->ISR=UART_TX_DONE_S; + 3392: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3394: 1065 lrw r3, 0x200000b8 // 33a8 + 3396: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3398: 1065 lrw r3, 0x200000bc // 33ac + 339a: 9360 ld.w r3, (r3, 0x0) + 339c: 3b41 cmpnei r3, 1 + 339e: 0bd2 bt 0x3342 // 3342 + RS485_Comm_End ++; + 33a0: 1045 lrw r2, 0x200000c4 // 33b4 + 33a2: 07e2 br 0x3366 // 3366 + 33a4: 20000038 .long 0x20000038 + 33a8: 200000b8 .long 0x200000b8 + 33ac: 200000bc .long 0x200000bc + 33b0: 200000c0 .long 0x200000c0 + 33b4: 200000c4 .long 0x200000c4 + +Disassembly of section .text.SPI0IntHandler: + +000033b8 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 33b8: 1460 nie + 33ba: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 33bc: 1178 lrw r3, 0x20000034 // 349c + 33be: 3101 movi r1, 1 + 33c0: 9360 ld.w r3, (r3, 0x0) + 33c2: 9347 ld.w r2, (r3, 0x1c) + 33c4: 6884 and r2, r1 + 33c6: 3a40 cmpnei r2, 0 + 33c8: 0c03 bf 0x33ce // 33ce + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 33ca: b328 st.w r1, (r3, 0x20) + } + +} + 33cc: 0407 br 0x33da // 33da + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 33ce: 9347 ld.w r2, (r3, 0x1c) + 33d0: 3002 movi r0, 2 + 33d2: 6880 and r2, r0 + 33d4: 3a40 cmpnei r2, 0 + 33d6: 0c04 bf 0x33de // 33de + SPI0->ICR = SPI_RTIM; + 33d8: b308 st.w r0, (r3, 0x20) +} + 33da: 1463 ipop + 33dc: 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 + 33de: 9347 ld.w r2, (r3, 0x1c) + 33e0: 3004 movi r0, 4 + 33e2: 6880 and r2, r0 + 33e4: 3a40 cmpnei r2, 0 + 33e6: 0c55 bf 0x3490 // 3490 + SPI0->ICR = SPI_RXIM; + 33e8: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 33ea: 9302 ld.w r0, (r3, 0x8) + 33ec: 32aa movi r2, 170 + 33ee: 6482 cmpne r0, r2 + 33f0: 083e bt 0x346c // 346c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 33f2: 3102 movi r1, 2 + 33f4: 9343 ld.w r2, (r3, 0xc) + 33f6: 6884 and r2, r1 + 33f8: 3a40 cmpnei r2, 0 + 33fa: 0ffd bf 0x33f4 // 33f4 + SPI0->DR = 0x11; + 33fc: 3211 movi r2, 17 + 33fe: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3400: 3110 movi r1, 16 + 3402: 9343 ld.w r2, (r3, 0xc) + 3404: 6884 and r2, r1 + 3406: 3a40 cmpnei r2, 0 + 3408: 0bfd bt 0x3402 // 3402 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 340a: 3102 movi r1, 2 + 340c: 9343 ld.w r2, (r3, 0xc) + 340e: 6884 and r2, r1 + 3410: 3a40 cmpnei r2, 0 + 3412: 0ffd bf 0x340c // 340c + SPI0->DR = 0x12; + 3414: 3212 movi r2, 18 + 3416: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3418: 3110 movi r1, 16 + 341a: 9343 ld.w r2, (r3, 0xc) + 341c: 6884 and r2, r1 + 341e: 3a40 cmpnei r2, 0 + 3420: 0bfd bt 0x341a // 341a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3422: 3102 movi r1, 2 + 3424: 9343 ld.w r2, (r3, 0xc) + 3426: 6884 and r2, r1 + 3428: 3a40 cmpnei r2, 0 + 342a: 0ffd bf 0x3424 // 3424 + SPI0->DR = 0x13; + 342c: 3213 movi r2, 19 + 342e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3430: 3110 movi r1, 16 + 3432: 9343 ld.w r2, (r3, 0xc) + 3434: 6884 and r2, r1 + 3436: 3a40 cmpnei r2, 0 + 3438: 0bfd bt 0x3432 // 3432 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 343a: 3102 movi r1, 2 + 343c: 9343 ld.w r2, (r3, 0xc) + 343e: 6884 and r2, r1 + 3440: 3a40 cmpnei r2, 0 + 3442: 0ffd bf 0x343c // 343c + SPI0->DR = 0x14; + 3444: 3214 movi r2, 20 + 3446: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3448: 3110 movi r1, 16 + 344a: 9343 ld.w r2, (r3, 0xc) + 344c: 6884 and r2, r1 + 344e: 3a40 cmpnei r2, 0 + 3450: 0bfd bt 0x344a // 344a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3452: 3102 movi r1, 2 + 3454: 9343 ld.w r2, (r3, 0xc) + 3456: 6884 and r2, r1 + 3458: 3a40 cmpnei r2, 0 + 345a: 0ffd bf 0x3454 // 3454 + SPI0->DR = 0x15; + 345c: 3215 movi r2, 21 + 345e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3460: 3110 movi r1, 16 + 3462: 9343 ld.w r2, (r3, 0xc) + 3464: 6884 and r2, r1 + 3466: 3a40 cmpnei r2, 0 + 3468: 0bfd bt 0x3462 // 3462 + 346a: 07b8 br 0x33da // 33da + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 346c: 9343 ld.w r2, (r3, 0xc) + 346e: 6884 and r2, r1 + 3470: 3a40 cmpnei r2, 0 + 3472: 0bb4 bt 0x33da // 33da + SPI0->DR=0x0; //FIFO=0 + 3474: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3476: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3478: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 347a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 347c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 347e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3480: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3482: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3484: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3486: 9343 ld.w r2, (r3, 0xc) + 3488: 6884 and r2, r1 + 348a: 3a40 cmpnei r2, 0 + 348c: 0bfd bt 0x3486 // 3486 + 348e: 07a6 br 0x33da // 33da + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 3490: 9347 ld.w r2, (r3, 0x1c) + 3492: 3108 movi r1, 8 + 3494: 6884 and r2, r1 + 3496: 3a40 cmpnei r2, 0 + 3498: 0b99 bt 0x33ca // 33ca + 349a: 07a0 br 0x33da // 33da + 349c: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000034a0 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 34a0: 1460 nie + 34a2: 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) + 34a4: 1073 lrw r3, 0x2000002c // 34f0 + 34a6: 3104 movi r1, 4 + 34a8: 9360 ld.w r3, (r3, 0x0) + 34aa: 9349 ld.w r2, (r3, 0x24) + 34ac: 6884 and r2, r1 + 34ae: 3a40 cmpnei r2, 0 + 34b0: 0c02 bf 0x34b4 // 34b4 + { + SIO0->ICR=0X04; + 34b2: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 34b4: 9349 ld.w r2, (r3, 0x24) + 34b6: 3101 movi r1, 1 + 34b8: 6884 and r2, r1 + 34ba: 3a40 cmpnei r2, 0 + 34bc: 0c02 bf 0x34c0 // 34c0 + { + SIO0->ICR=0X01; + 34be: 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 + 34c0: 9349 ld.w r2, (r3, 0x24) + 34c2: 3102 movi r1, 2 + 34c4: 6884 and r2, r1 + 34c6: 3a40 cmpnei r2, 0 + 34c8: 0c03 bf 0x34ce // 34ce + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 34ca: b32b st.w r1, (r3, 0x2c) + } +} + 34cc: 0410 br 0x34ec // 34ec + else if(SIO0->MISR&0X08) //RXBUFFULL + 34ce: 9349 ld.w r2, (r3, 0x24) + 34d0: 3108 movi r1, 8 + 34d2: 6884 and r2, r1 + 34d4: 3a40 cmpnei r2, 0 + 34d6: 0bfa bt 0x34ca // 34ca + else if(SIO0->MISR&0X010) //BREAK + 34d8: 9349 ld.w r2, (r3, 0x24) + 34da: 3110 movi r1, 16 + 34dc: 6884 and r2, r1 + 34de: 3a40 cmpnei r2, 0 + 34e0: 0bf5 bt 0x34ca // 34ca + else if(SIO0->MISR&0X020) //TIMEOUT + 34e2: 9349 ld.w r2, (r3, 0x24) + 34e4: 3120 movi r1, 32 + 34e6: 6884 and r2, r1 + 34e8: 3a40 cmpnei r2, 0 + 34ea: 0bf0 bt 0x34ca // 34ca +} + 34ec: 1463 ipop + 34ee: 1461 nir + 34f0: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +000034f4 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 34f4: 1460 nie + 34f6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 34f8: 106a lrw r3, 0x2000005c // 3520 + 34fa: 3101 movi r1, 1 + 34fc: 9360 ld.w r3, (r3, 0x0) + 34fe: 237f addi r3, 128 + 3500: 934c ld.w r2, (r3, 0x30) + 3502: 6884 and r2, r1 + 3504: 3a40 cmpnei r2, 0 + 3506: 0c04 bf 0x350e // 350e + { + SYSCON->EXICR = EXI_PIN0; + 3508: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 350a: 1463 ipop + 350c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 350e: 3280 movi r2, 128 + 3510: 932c ld.w r1, (r3, 0x30) + 3512: 4249 lsli r2, r2, 9 + 3514: 6848 and r1, r2 + 3516: 3940 cmpnei r1, 0 + 3518: 0ff9 bf 0x350a // 350a + SYSCON->EXICR = EXI_PIN16; + 351a: b34b st.w r2, (r3, 0x2c) +} + 351c: 07f7 br 0x350a // 350a + 351e: 0000 bkpt + 3520: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00003524 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 3524: 1460 nie + 3526: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 3528: 106a lrw r3, 0x2000005c // 3550 + 352a: 3102 movi r1, 2 + 352c: 9360 ld.w r3, (r3, 0x0) + 352e: 237f addi r3, 128 + 3530: 934c ld.w r2, (r3, 0x30) + 3532: 6884 and r2, r1 + 3534: 3a40 cmpnei r2, 0 + 3536: 0c04 bf 0x353e // 353e + { + SYSCON->EXICR = EXI_PIN1; + 3538: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 353a: 1463 ipop + 353c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 353e: 3280 movi r2, 128 + 3540: 932c ld.w r1, (r3, 0x30) + 3542: 424a lsli r2, r2, 10 + 3544: 6848 and r1, r2 + 3546: 3940 cmpnei r1, 0 + 3548: 0ff9 bf 0x353a // 353a + SYSCON->EXICR = EXI_PIN17; + 354a: b34b st.w r2, (r3, 0x2c) +} + 354c: 07f7 br 0x353a // 353a + 354e: 0000 bkpt + 3550: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00003554 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 3554: 1460 nie + 3556: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 3558: 1070 lrw r3, 0x2000005c // 3598 + 355a: 3104 movi r1, 4 + 355c: 9360 ld.w r3, (r3, 0x0) + 355e: 237f addi r3, 128 + 3560: 934c ld.w r2, (r3, 0x30) + 3562: 6884 and r2, r1 + 3564: 3a40 cmpnei r2, 0 + 3566: 0c04 bf 0x356e // 356e + { + SYSCON->EXICR = EXI_PIN2; + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3568: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 356a: 1463 ipop + 356c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 356e: 934c ld.w r2, (r3, 0x30) + 3570: 3108 movi r1, 8 + 3572: 6884 and r2, r1 + 3574: 3a40 cmpnei r2, 0 + 3576: 0bf9 bt 0x3568 // 3568 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3578: 3280 movi r2, 128 + 357a: 932c ld.w r1, (r3, 0x30) + 357c: 424b lsli r2, r2, 11 + 357e: 6848 and r1, r2 + 3580: 3940 cmpnei r1, 0 + 3582: 0c03 bf 0x3588 // 3588 + SYSCON->EXICR = EXI_PIN19; + 3584: b34b st.w r2, (r3, 0x2c) +} + 3586: 07f2 br 0x356a // 356a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3588: 3280 movi r2, 128 + 358a: 932c ld.w r1, (r3, 0x30) + 358c: 424c lsli r2, r2, 12 + 358e: 6848 and r1, r2 + 3590: 3940 cmpnei r1, 0 + 3592: 0bf9 bt 0x3584 // 3584 + 3594: 07eb br 0x356a // 356a + 3596: 0000 bkpt + 3598: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +0000359c : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 359c: 1460 nie + 359e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 35a0: 1075 lrw r3, 0x2000005c // 35f4 + 35a2: 3280 movi r2, 128 + 35a4: 9360 ld.w r3, (r3, 0x0) + 35a6: 60c8 addu r3, r2 + 35a8: 932c ld.w r1, (r3, 0x30) + 35aa: 3010 movi r0, 16 + 35ac: 6840 and r1, r0 + 35ae: 3940 cmpnei r1, 0 + 35b0: 0c04 bf 0x35b8 // 35b8 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 35b2: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 35b4: 1463 ipop + 35b6: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 35b8: 932c ld.w r1, (r3, 0x30) + 35ba: 3020 movi r0, 32 + 35bc: 6840 and r1, r0 + 35be: 3940 cmpnei r1, 0 + 35c0: 0bf9 bt 0x35b2 // 35b2 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 35c2: 932c ld.w r1, (r3, 0x30) + 35c4: 3040 movi r0, 64 + 35c6: 6840 and r1, r0 + 35c8: 3940 cmpnei r1, 0 + 35ca: 0bf4 bt 0x35b2 // 35b2 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 35cc: 932c ld.w r1, (r3, 0x30) + 35ce: 6848 and r1, r2 + 35d0: 3940 cmpnei r1, 0 + 35d2: 0c03 bf 0x35d8 // 35d8 + SYSCON->EXICR = EXI_PIN9; + 35d4: b34b st.w r2, (r3, 0x2c) +} + 35d6: 07ef br 0x35b4 // 35b4 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 35d8: 3280 movi r2, 128 + 35da: 932c ld.w r1, (r3, 0x30) + 35dc: 4241 lsli r2, r2, 1 + 35de: 6848 and r1, r2 + 35e0: 3940 cmpnei r1, 0 + 35e2: 0bf9 bt 0x35d4 // 35d4 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 35e4: 3280 movi r2, 128 + 35e6: 932c ld.w r1, (r3, 0x30) + 35e8: 4242 lsli r2, r2, 2 + 35ea: 6848 and r1, r2 + 35ec: 3940 cmpnei r1, 0 + 35ee: 0bf3 bt 0x35d4 // 35d4 + 35f0: 07e2 br 0x35b4 // 35b4 + 35f2: 0000 bkpt + 35f4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +000035f8 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 35f8: 1460 nie + 35fa: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 35fc: 1076 lrw r3, 0x2000005c // 3654 + 35fe: 3280 movi r2, 128 + 3600: 9360 ld.w r3, (r3, 0x0) + 3602: 237f addi r3, 128 + 3604: 932c ld.w r1, (r3, 0x30) + 3606: 4243 lsli r2, r2, 3 + 3608: 6848 and r1, r2 + 360a: 3940 cmpnei r1, 0 + 360c: 0c03 bf 0x3612 // 3612 + { + SYSCON->EXICR = EXI_PIN14; + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 360e: b34b st.w r2, (r3, 0x2c) + } +} + 3610: 041f br 0x364e // 364e + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 3612: 3280 movi r2, 128 + 3614: 932c ld.w r1, (r3, 0x30) + 3616: 4244 lsli r2, r2, 4 + 3618: 6848 and r1, r2 + 361a: 3940 cmpnei r1, 0 + 361c: 0bf9 bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 361e: 3280 movi r2, 128 + 3620: 932c ld.w r1, (r3, 0x30) + 3622: 4245 lsli r2, r2, 5 + 3624: 6848 and r1, r2 + 3626: 3940 cmpnei r1, 0 + 3628: 0bf3 bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 362a: 3280 movi r2, 128 + 362c: 932c ld.w r1, (r3, 0x30) + 362e: 4246 lsli r2, r2, 6 + 3630: 6848 and r1, r2 + 3632: 3940 cmpnei r1, 0 + 3634: 0bed bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3636: 3280 movi r2, 128 + 3638: 932c ld.w r1, (r3, 0x30) + 363a: 4247 lsli r2, r2, 7 + 363c: 6848 and r1, r2 + 363e: 3940 cmpnei r1, 0 + 3640: 0be7 bt 0x360e // 360e + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 3642: 3280 movi r2, 128 + 3644: 932c ld.w r1, (r3, 0x30) + 3646: 4248 lsli r2, r2, 8 + 3648: 6848 and r1, r2 + 364a: 3940 cmpnei r1, 0 + 364c: 0be1 bt 0x360e // 360e +} + 364e: 1463 ipop + 3650: 1461 nir + 3652: 0000 bkpt + 3654: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00003658 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3658: 1460 nie + 365a: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 365c: 106b lrw r3, 0x20000014 // 3688 + 365e: 3101 movi r1, 1 + 3660: 9360 ld.w r3, (r3, 0x0) + 3662: 934e ld.w r2, (r3, 0x38) + 3664: 6884 and r2, r1 + 3666: 3a40 cmpnei r2, 0 + 3668: 0c03 bf 0x366e // 366e + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 366a: b330 st.w r1, (r3, 0x40) + } +} + 366c: 040b br 0x3682 // 3682 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 366e: 934e ld.w r2, (r3, 0x38) + 3670: 3102 movi r1, 2 + 3672: 6884 and r2, r1 + 3674: 3a40 cmpnei r2, 0 + 3676: 0bfa bt 0x366a // 366a + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3678: 934e ld.w r2, (r3, 0x38) + 367a: 3104 movi r1, 4 + 367c: 6884 and r2, r1 + 367e: 3a40 cmpnei r2, 0 + 3680: 0bf5 bt 0x366a // 366a +} + 3682: 1463 ipop + 3684: 1461 nir + 3686: 0000 bkpt + 3688: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +0000368c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 368c: 1460 nie + 368e: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3690: 1071 lrw r3, 0x2000000c // 36d4 + 3692: 3101 movi r1, 1 + 3694: 9360 ld.w r3, (r3, 0x0) + 3696: 934c ld.w r2, (r3, 0x30) + 3698: 6884 and r2, r1 + 369a: 3a40 cmpnei r2, 0 + 369c: 0c0a bf 0x36b0 // 36b0 + { + BT0->ICR = BT_PEND; + 369e: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 36a0: 9341 ld.w r2, (r3, 0x4) + 36a2: 3a86 bclri r2, 6 + 36a4: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 36a6: 9340 ld.w r2, (r3, 0x0) + 36a8: 3200 movi r2, 0 + 36aa: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 36ac: 1463 ipop + 36ae: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 36b0: 934c ld.w r2, (r3, 0x30) + 36b2: 3102 movi r1, 2 + 36b4: 6884 and r2, r1 + 36b6: 3a40 cmpnei r2, 0 + 36b8: 0c03 bf 0x36be // 36be + BT0->ICR = BT_EVTRG; + 36ba: b32d st.w r1, (r3, 0x34) +} + 36bc: 07f8 br 0x36ac // 36ac + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 36be: 934c ld.w r2, (r3, 0x30) + 36c0: 3104 movi r1, 4 + 36c2: 6884 and r2, r1 + 36c4: 3a40 cmpnei r2, 0 + 36c6: 0bfa bt 0x36ba // 36ba + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 36c8: 934c ld.w r2, (r3, 0x30) + 36ca: 3108 movi r1, 8 + 36cc: 6884 and r2, r1 + 36ce: 3a40 cmpnei r2, 0 + 36d0: 0bf5 bt 0x36ba // 36ba + 36d2: 07ed br 0x36ac // 36ac + 36d4: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +000036d8 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 36d8: 1460 nie + 36da: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 36dc: 1076 lrw r3, 0x20000008 // 3734 + 36de: 3101 movi r1, 1 + 36e0: 9360 ld.w r3, (r3, 0x0) + 36e2: 934c ld.w r2, (r3, 0x30) + 36e4: 6884 and r2, r1 + 36e6: 3a40 cmpnei r2, 0 + 36e8: 0c03 bf 0x36ee // 36ee + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 36ea: b32d st.w r1, (r3, 0x34) + } +} + 36ec: 0416 br 0x3718 // 3718 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 36ee: 934c ld.w r2, (r3, 0x30) + 36f0: 3102 movi r1, 2 + 36f2: 6884 and r2, r1 + 36f4: 3a40 cmpnei r2, 0 + 36f6: 0c13 bf 0x371c // 371c + BT1->ICR = BT_CMP; + 36f8: b32d st.w r1, (r3, 0x34) + NUM++; + 36fa: 1070 lrw r3, 0x200000ac // 3738 + 36fc: 8340 ld.b r2, (r3, 0x0) + 36fe: 2200 addi r2, 1 + 3700: 7488 zextb r2, r2 + SysTick_100us++; + 3702: 9321 ld.w r1, (r3, 0x4) + 3704: 2100 addi r1, 1 + if(NUM >= 10){ + 3706: 3a09 cmphsi r2, 10 + NUM++; + 3708: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 370a: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 370c: 0c06 bf 0x3718 // 3718 + NUM = 0; + 370e: 3200 movi r2, 0 + 3710: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3712: 9342 ld.w r2, (r3, 0x8) + 3714: 2200 addi r2, 1 + 3716: b342 st.w r2, (r3, 0x8) +} + 3718: 1463 ipop + 371a: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 371c: 934c ld.w r2, (r3, 0x30) + 371e: 3104 movi r1, 4 + 3720: 6884 and r2, r1 + 3722: 3a40 cmpnei r2, 0 + 3724: 0be3 bt 0x36ea // 36ea + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 3726: 934c ld.w r2, (r3, 0x30) + 3728: 3108 movi r1, 8 + 372a: 6884 and r2, r1 + 372c: 3a40 cmpnei r2, 0 + 372e: 0bde bt 0x36ea // 36ea + 3730: 07f4 br 0x3718 // 3718 + 3732: 0000 bkpt + 3734: 20000008 .long 0x20000008 + 3738: 200000ac .long 0x200000ac + +Disassembly of section .text.PriviledgeVioHandler: + +0000373c : + 373c: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +0000373e : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 373e: 1460 nie + 3740: 1462 ipush + // ISR content ... + +} + 3742: 1463 ipop + 3744: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00003746 : + 3746: 1460 nie + 3748: 1462 ipush + 374a: 1463 ipop + 374c: 1461 nir + +Disassembly of section .text.Trap2Handler: + +0000374e : + 374e: 1460 nie + 3750: 1462 ipush + 3752: 1463 ipop + 3754: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00003756 : + 3756: 1460 nie + 3758: 1462 ipush + 375a: 1463 ipop + 375c: 1461 nir + +Disassembly of section .text.Trap0Handler: + +0000375e : + 375e: 1460 nie + 3760: 1462 ipush + 3762: 1463 ipop + 3764: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003766 : + 3766: 1460 nie + 3768: 1462 ipush + 376a: 1463 ipop + 376c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000376e : + 376e: 1460 nie + 3770: 1462 ipush + 3772: 1463 ipop + 3774: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003776 : + 3776: 1460 nie + 3778: 1462 ipush + 377a: 1463 ipop + 377c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000377e : + 377e: 1460 nie + 3780: 1462 ipush + 3782: 1463 ipop + 3784: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003786 : + 3786: 1460 nie + 3788: 1462 ipush + 378a: 1463 ipop + 378c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000378e : + 378e: 1460 nie + 3790: 1462 ipush + 3792: 1463 ipop + 3794: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003796 : + 3796: 1460 nie + 3798: 1462 ipush + 379a: 1463 ipop + 379c: 1461 nir + +Disassembly of section .text.__divsi3: + +000037a0 <__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) +{ + 37a0: 14c1 push r4 + int PSR; + __asm volatile( + 37a2: c0006023 mfcr r3, cr<0, 0> + 37a6: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 37aa: 1046 lrw r2, 0x20000000 // 37c0 <__divsi3+0x20> + 37ac: 3400 movi r4, 0 + 37ae: 9240 ld.w r2, (r2, 0x0) + 37b0: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 37b2: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 37b4: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 37b6: b221 st.w r1, (r2, 0x4) + __asm volatile( + 37b8: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 37bc: 9202 ld.w r0, (r2, 0x8) +} + 37be: 1481 pop r4 + 37c0: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000037c4 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 37c4: 14c1 push r4 + int PSR; + __asm volatile( + 37c6: c0006023 mfcr r3, cr<0, 0> + 37ca: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 37ce: 1046 lrw r2, 0x20000000 // 37e4 <__udivsi3+0x20> + 37d0: 3401 movi r4, 1 + 37d2: 9240 ld.w r2, (r2, 0x0) + 37d4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 37d6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 37d8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 37da: b221 st.w r1, (r2, 0x4) + __asm volatile( + 37dc: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 37e0: 9202 ld.w r0, (r2, 0x8) +} + 37e2: 1481 pop r4 + 37e4: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000037e8 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 37e8: 14c1 push r4 + int PSR; + __asm volatile( + 37ea: c0006023 mfcr r3, cr<0, 0> + 37ee: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 37f2: 1046 lrw r2, 0x20000000 // 3808 <__umodsi3+0x20> + 37f4: 3401 movi r4, 1 + 37f6: 9240 ld.w r2, (r2, 0x0) + 37f8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 37fa: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 37fc: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 37fe: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3800: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3804: 9203 ld.w r0, (r2, 0xc) +} + 3806: 1481 pop r4 + 3808: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +0000380c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 380c: c1807420 psrset ee, ie +} + 3810: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003814 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart; //目前该项目只使用串口1 进行双向通讯 + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3814: 14d1 push r4, r15 + switch(uart_id){ + 3816: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3818: 6d07 mov r4, r1 + switch(uart_id){ + 381a: 0c15 bf 0x3844 // 3844 + 381c: 3840 cmpnei r0, 0 + 381e: 0c04 bf 0x3826 // 3826 + 3820: 3842 cmpnei r0, 2 + 3822: 0c1f bf 0x3860 // 3860 +// GPIO_DriveStrength_EN(GPIOB0,1); +// GPIO_Write_Low(GPIOB0,1); + + break; + } +} + 3824: 1491 pop r4, r15 + UART0_DeInit(); //clear all UART Register + 3826: e3fff391 bsr 0x1f48 // 1f48 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 382a: 3100 movi r1, 0 + 382c: 3000 movi r0, 0 + 382e: e3fff3cd bsr 0x1fc8 // 1fc8 + UARTInitRxTxIntEn(UART0,10000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3832: 107b lrw r3, 0x20000040 // 389c + 3834: 3200 movi r2, 0 + 3836: 9300 ld.w r0, (r3, 0x0) + 3838: 103a lrw r1, 0x2710 // 38a0 + 383a: e3fff43d bsr 0x20b4 // 20b4 + UART0_Int_Enable(); + 383e: e3fff3a9 bsr 0x1f90 // 1f90 + break; + 3842: 07f1 br 0x3824 // 3824 + UART1_DeInit(); //clear all UART Register + 3844: e3fff38e bsr 0x1f60 // 1f60 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3848: 3102 movi r1, 2 + 384a: 3001 movi r0, 1 + 384c: e3fff3be bsr 0x1fc8 // 1fc8 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3850: 1075 lrw r3, 0x2000003c // 38a4 + 3852: 31d0 movi r1, 208 + 3854: 9300 ld.w r0, (r3, 0x0) + 3856: 3200 movi r2, 0 + 3858: 4121 lsli r1, r1, 1 + 385a: e3fff42d bsr 0x20b4 // 20b4 + break; + 385e: 07e3 br 0x3824 // 3824 + UART2_DeInit(); //clear all UART Register + 3860: e3fff38c bsr 0x1f78 // 1f78 + UART_IO_Init(IO_UART2,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3864: 3102 movi r1, 2 + 3866: 3002 movi r0, 2 + 3868: e3fff3b0 bsr 0x1fc8 // 1fc8 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 386c: 106f lrw r3, 0x20000038 // 38a8 + 386e: 3200 movi r2, 0 + 3870: 9300 ld.w r0, (r3, 0x0) + 3872: 102f lrw r1, 0x1388 // 38ac + 3874: e3fff420 bsr 0x20b4 // 20b4 + UART2_Int_Enable(); + 3878: e3fff39a bsr 0x1fac // 1fac + memset(&g_uart,0,sizeof(UART_t)); + 387c: 3273 movi r2, 115 + 387e: 3100 movi r1, 0 + 3880: 100c lrw r0, 0x20000190 // 38b0 + 3882: e3fff071 bsr 0x1964 // 1964 <__memset_fast> + g_uart.RecvTimeout = Recv_115200_TimeOut; + 3886: 106c lrw r3, 0x200001f7 // 38b4 + 3888: 3203 movi r2, 3 + 388a: a340 st.b r2, (r3, 0x0) + g_uart.processing_cf = prt_cf; + 388c: 4c48 lsri r2, r4, 8 + 388e: a388 st.b r4, (r3, 0x8) + 3890: a349 st.b r2, (r3, 0x9) + 3892: 4c50 lsri r2, r4, 16 + 3894: 4c98 lsri r4, r4, 24 + 3896: a34a st.b r2, (r3, 0xa) + 3898: a38b st.b r4, (r3, 0xb) +} + 389a: 07c5 br 0x3824 // 3824 + 389c: 20000040 .long 0x20000040 + 38a0: 00002710 .long 0x00002710 + 38a4: 2000003c .long 0x2000003c + 38a8: 20000038 .long 0x20000038 + 38ac: 00001388 .long 0x00001388 + 38b0: 20000190 .long 0x20000190 + 38b4: 200001f7 .long 0x200001f7 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000038b8 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 38b8: 14d2 push r4-r5, r15 + if((g_uart.RecvLen + 1) >= USART_BUFFER_SIZE) g_uart.RecvLen = 0; + 38ba: 1096 lrw r4, 0x200001f0 // 3910 + 38bc: 8466 ld.b r3, (r4, 0x6) + 38be: 8445 ld.b r2, (r4, 0x5) + 38c0: 4368 lsli r3, r3, 8 + 38c2: 6cc8 or r3, r2 + 38c4: 3262 movi r2, 98 + 38c6: 10b4 lrw r5, 0x20000190 // 3914 + 38c8: 3140 movi r1, 64 + 38ca: 64c9 cmplt r2, r3 + 38cc: 6054 addu r1, r5 + 38ce: 0c06 bf 0x38da // 38da + 38d0: 3325 movi r3, 37 + 38d2: 60c4 addu r3, r1 + 38d4: 3200 movi r2, 0 + 38d6: a340 st.b r2, (r3, 0x0) + 38d8: a341 st.b r2, (r3, 0x1) + g_uart.RecvBuffer[g_uart.RecvLen++] = (U8_T)data; + 38da: 8466 ld.b r3, (r4, 0x6) + 38dc: 8445 ld.b r2, (r4, 0x5) + 38de: 4368 lsli r3, r3, 8 + 38e0: 6cc8 or r3, r2 + 38e2: 5b42 addi r2, r3, 1 + 38e4: 2124 addi r1, 37 + 38e6: 7489 zexth r2, r2 + 38e8: 60d4 addu r3, r5 + 38ea: a140 st.b r2, (r1, 0x0) + 38ec: 4a48 lsri r2, r2, 8 + 38ee: a141 st.b r2, (r1, 0x1) + 38f0: a300 st.b r0, (r3, 0x0) + + uart_receive_input((U8_T)data); + 38f2: e000104f bsr 0x5990 // 5990 + + g_uart.RecvIdleTiming = SysTick_1ms; + 38f6: 1069 lrw r3, 0x200000b4 // 3918 + 38f8: 1049 lrw r2, 0x200001fb // 391c + 38fa: 9360 ld.w r3, (r3, 0x0) + 38fc: 4b28 lsri r1, r3, 8 + 38fe: a260 st.b r3, (r2, 0x0) + 3900: a221 st.b r1, (r2, 0x1) + 3902: 4b30 lsri r1, r3, 16 + 3904: 4b78 lsri r3, r3, 24 + 3906: a263 st.b r3, (r2, 0x3) + g_uart.Receiving = 0x01; + 3908: 3301 movi r3, 1 + g_uart.RecvIdleTiming = SysTick_1ms; + 390a: a222 st.b r1, (r2, 0x2) + g_uart.Receiving = 0x01; + 390c: a464 st.b r3, (r4, 0x4) +} + 390e: 1492 pop r4-r5, r15 + 3910: 200001f0 .long 0x200001f0 + 3914: 20000190 .long 0x20000190 + 3918: 200000b4 .long 0x200000b4 + 391c: 200001fb .long 0x200001fb + +Disassembly of section .text.UART2_TASK: + +00003920 : + + +void UART2_TASK(void){ + 3920: 14d1 push r4, r15 + U8_T ret = 0x00; + if(g_uart.Receiving == 0x01){ + 3922: 1185 lrw r4, 0x200001f0 // 39b4 + 3924: 8464 ld.b r3, (r4, 0x4) + 3926: 3b41 cmpnei r3, 1 + 3928: 0845 bt 0x39b2 // 39b2 + if(SysTick_1ms - g_uart.RecvIdleTiming > g_uart.RecvTimeout){ + 392a: 844c ld.b r2, (r4, 0xc) + 392c: 846b ld.b r3, (r4, 0xb) + 392e: 4248 lsli r2, r2, 8 + 3930: 6c8c or r2, r3 + 3932: 846d ld.b r3, (r4, 0xd) + 3934: 4370 lsli r3, r3, 16 + 3936: 6c8c or r2, r3 + 3938: 846e ld.b r3, (r4, 0xe) + 393a: 1100 lrw r0, 0x200000b4 // 39b8 + 393c: 4378 lsli r3, r3, 24 + 393e: 6cc8 or r3, r2 + 3940: 9020 ld.w r1, (r0, 0x0) + 3942: 8448 ld.b r2, (r4, 0x8) + 3944: 604e subu r1, r3 + 3946: 4248 lsli r2, r2, 8 + 3948: 8467 ld.b r3, (r4, 0x7) + 394a: 6c8c or r2, r3 + 394c: 8469 ld.b r3, (r4, 0x9) + 394e: 4370 lsli r3, r3, 16 + 3950: 6c8c or r2, r3 + 3952: 846a ld.b r3, (r4, 0xa) + 3954: 4378 lsli r3, r3, 24 + 3956: 6cc8 or r3, r2 + 3958: 644c cmphs r3, r1 + 395a: 082c bt 0x39b2 // 39b2 + g_uart.RecvIdleTiming = SysTick_1ms; + 395c: 9060 ld.w r3, (r0, 0x0) + 395e: 320b movi r2, 11 + 3960: 6090 addu r2, r4 + 3962: 4b28 lsri r1, r3, 8 + 3964: a260 st.b r3, (r2, 0x0) + 3966: a221 st.b r1, (r2, 0x1) + 3968: 4b30 lsri r1, r3, 16 + 396a: 4b78 lsri r3, r3, 24 + 396c: a222 st.b r1, (r2, 0x2) + 396e: 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){ + 3970: 8450 ld.b r2, (r4, 0x10) + 3972: 846f ld.b r3, (r4, 0xf) + 3974: 4248 lsli r2, r2, 8 + 3976: 6c8c or r2, r3 + 3978: 8471 ld.b r3, (r4, 0x11) + 397a: 4370 lsli r3, r3, 16 + 397c: 6c8c or r2, r3 + 397e: 8472 ld.b r3, (r4, 0x12) + 3980: 4378 lsli r3, r3, 24 + 3982: 6cc8 or r3, r2 + 3984: 3b40 cmpnei r3, 0 + 3986: 0c10 bf 0x39a6 // 39a6 + ret = g_uart.processing_cf(g_uart.RecvBuffer,g_uart.RecvLen); + 3988: 8426 ld.b r1, (r4, 0x6) + 398a: 8445 ld.b r2, (r4, 0x5) + 398c: 4128 lsli r1, r1, 8 + 398e: 6c48 or r1, r2 + 3990: 100b lrw r0, 0x20000190 // 39bc + 3992: 7bcd jsr r3 + } + + if(ret == 0x01){ + 3994: 3841 cmpnei r0, 1 + 3996: 0808 bt 0x39a6 // 39a6 + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart.RecvBuffer,g_uart.RecvLen); + 3998: 8426 ld.b r1, (r4, 0x6) + 399a: 8465 ld.b r3, (r4, 0x5) + 399c: 4128 lsli r1, r1, 8 + 399e: 6c4c or r1, r3 + 39a0: 1007 lrw r0, 0x20000190 // 39bc + 39a2: e0000377 bsr 0x4090 // 4090 + } + + g_uart.RecvLen = 0; + 39a6: 1067 lrw r3, 0x200001f5 // 39c0 + 39a8: 3200 movi r2, 0 + 39aa: a340 st.b r2, (r3, 0x0) + 39ac: a341 st.b r2, (r3, 0x1) + g_uart.Receiving = 0; + 39ae: 3300 movi r3, 0 + 39b0: a464 st.b r3, (r4, 0x4) + } + } +} + 39b2: 1491 pop r4, r15 + 39b4: 200001f0 .long 0x200001f0 + 39b8: 200000b4 .long 0x200000b4 + 39bc: 20000190 .long 0x20000190 + 39c0: 200001f5 .long 0x200001f5 + +Disassembly of section .text.Dbg_Println: + +000039c4 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 39c4: 1423 subi r14, r14, 12 + 39c6: b862 st.w r3, (r14, 0x8) + 39c8: b841 st.w r2, (r14, 0x4) + 39ca: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 39cc: 1403 addi r14, r14, 12 + 39ce: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +000039d0 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 39d0: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +000039d4 : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 39d4: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 39d6: 3230 movi r2, 48 + 39d8: 3100 movi r1, 0 + 39da: 101c lrw r0, 0x20000234 // 3a48 + 39dc: e3ffefc4 bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + 39e0: 3214 movi r2, 20 + 39e2: 3100 movi r1, 0 + 39e4: 101a lrw r0, 0x20000220 // 3a4c + 39e6: e3ffefbf bsr 0x1964 // 1964 <__memset_fast> + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 39ea: 321c movi r2, 28 + 39ec: 3100 movi r1, 0 + 39ee: 1019 lrw r0, 0x20000204 // 3a50 + 39f0: e3ffefba bsr 0x1964 // 1964 <__memset_fast> + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 39f4: 1098 lrw r4, 0x20000264 // 3a54 + EEPROM_Init(); //按键库初始化前先读取参数 + 39f6: e000045d bsr 0x42b0 // 42b0 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 39fa: 8405 ld.b r0, (r4, 0x5) + 39fc: 1035 lrw r1, 0x20000204 // 3a50 + 39fe: e00004b7 bsr 0x436c // 436c + if(rev == 0x00){ + 3a02: 3840 cmpnei r0, 0 + 3a04: 0818 bt 0x3a34 // 3a34 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3a06: 8405 ld.b r0, (r4, 0x5) + 3a08: 1032 lrw r1, 0x20000204 // 3a50 + 3a0a: e0000507 bsr 0x4418 // 4418 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3a0e: 1011 lrw r0, 0x20000204 // 3a50 + 3a10: e0000578 bsr 0x4500 // 4500 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + + GPIO_Init(GPIOB0,3,Output); + 3a14: 1091 lrw r4, 0x20000048 // 3a58 + tk_init(); //触摸库初始化 + 3a16: e00017f5 bsr 0x6a00 // 6a00 + GPIO_Init(GPIOB0,3,Output); + 3a1a: 3200 movi r2, 0 + 3a1c: 9400 ld.w r0, (r4, 0x0) + 3a1e: 3103 movi r1, 3 + 3a20: e3fff1b4 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOB0,3); + 3a24: 9400 ld.w r0, (r4, 0x0) + 3a26: 3103 movi r1, 3 + 3a28: e3fff220 bsr 0x1e68 // 1e68 + + base_update_f = 0x01; //触摸状态强制更新 + 3a2c: 106c lrw r3, 0x20000643 // 3a5c + 3a2e: 3201 movi r2, 1 + 3a30: a340 st.b r2, (r3, 0x0) + +} + 3a32: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3a34: 102b lrw r1, 0x72ca // 3a60 + 3a36: 3000 movi r0, 0 + 3a38: e3ffffc6 bsr 0x39c4 // 39c4 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3a3c: 8405 ld.b r0, (r4, 0x5) + 3a3e: 1025 lrw r1, 0x20000204 // 3a50 + 3a40: e0000540 bsr 0x44c0 // 44c0 + 3a44: 07e5 br 0x3a0e // 3a0e + 3a46: 0000 bkpt + 3a48: 20000234 .long 0x20000234 + 3a4c: 20000220 .long 0x20000220 + 3a50: 20000204 .long 0x20000204 + 3a54: 20000264 .long 0x20000264 + 3a58: 20000048 .long 0x20000048 + 3a5c: 20000643 .long 0x20000643 + 3a60: 000072ca .long 0x000072ca + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003a64 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3a64: 14d0 push r15 + 3a66: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3a68: 1121 lrw r1, 0x20000068 // 3aec + send_buff[send_len++] = 0x0D; + 3a6a: 330d movi r3, 13 + 3a6c: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a70: 8140 ld.b r2, (r1, 0x0) + send_buff[send_len++] = 0x0A; + 3a72: 330a movi r3, 10 + 3a74: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a78: 4241 lsli r2, r2, 1 + 3a7a: 107e lrw r3, 0x2000078e // 3af0 + 3a7c: 608c addu r2, r3 + 3a7e: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3a80: 8a40 ld.h r2, (r2, 0x0) + 3a82: dc4e0003 st.b r2, (r14, 0x3) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a86: 8141 ld.b r2, (r1, 0x1) + 3a88: 4241 lsli r2, r2, 1 + 3a8a: 608c addu r2, r3 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a8c: 4808 lsri r0, r0, 8 + 3a8e: dc0e0002 st.b r0, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a92: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3a94: 8a40 ld.h r2, (r2, 0x0) + 3a96: dc4e0005 st.b r2, (r14, 0x5) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3a9a: 8142 ld.b r2, (r1, 0x2) + 3a9c: 4241 lsli r2, r2, 1 + 3a9e: 608c addu r2, r3 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aa0: 4808 lsri r0, r0, 8 + 3aa2: dc0e0004 st.b r0, (r14, 0x4) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aa6: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3aa8: 8a40 ld.h r2, (r2, 0x0) + 3aaa: dc4e0007 st.b r2, (r14, 0x7) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aae: 8143 ld.b r2, (r1, 0x3) + 3ab0: 4241 lsli r2, r2, 1 + 3ab2: 608c addu r2, r3 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ab4: 4808 lsri r0, r0, 8 + 3ab6: dc0e0006 st.b r0, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3aba: 8a00 ld.h r0, (r2, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3abc: 8a40 ld.h r2, (r2, 0x0) + 3abe: dc4e0009 st.b r2, (r14, 0x9) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ac2: 8144 ld.b r2, (r1, 0x4) + 3ac4: 4241 lsli r2, r2, 1 + 3ac6: 60c8 addu r3, r2 + 3ac8: 8b40 ld.h r2, (r3, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3aca: 8b60 ld.h r3, (r3, 0x0) + 3acc: dc6e000b st.b r3, (r14, 0xb) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ad0: 4808 lsri r0, r0, 8 +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + +// MCU485_SendData(send_buff,send_len); + UARTTransmit(UART2,send_buff,send_len); + 3ad2: 1069 lrw r3, 0x20000038 // 3af4 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ad4: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ad6: dc0e0008 st.b r0, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ada: dc4e000a st.b r2, (r14, 0xa) + UARTTransmit(UART2,send_buff,send_len); + 3ade: 9300 ld.w r0, (r3, 0x0) + 3ae0: 320c movi r2, 12 + 3ae2: 6c7b mov r1, r14 + 3ae4: e3fff2f0 bsr 0x20c4 // 20c4 + +} + 3ae8: 140d addi r14, r14, 52 + 3aea: 1490 pop r15 + 3aec: 20000068 .long 0x20000068 + 3af0: 2000078e .long 0x2000078e + 3af4: 20000038 .long 0x20000038 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003af8 : +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3af8: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3afa: 3804 cmphsi r0, 5 + 3afc: 0818 bt 0x3b2c // 3b2c + 3afe: 106d lrw r3, 0x20000234 // 3b30 + 3b00: e3ffe8fe bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3b04: 0e0b0803 .long 0x0e0b0803 + 3b08: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3b0a: 9309 ld.w r0, (r3, 0x24) + 3b0c: 4809 lsri r0, r0, 9 + if(g_key.key_state & 0x1000){ + state = 0x01; + } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3b0e: 3301 movi r3, 1 + U8_T state = 0; + 3b10: 680c and r0, r3 + } + break; + } + + return state; +} + 3b12: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3b14: 9309 ld.w r0, (r3, 0x24) + 3b16: 480a lsri r0, r0, 10 + 3b18: 07fb br 0x3b0e // 3b0e + if(g_key.key_state & 0x0800){ + 3b1a: 9309 ld.w r0, (r3, 0x24) + 3b1c: 480b lsri r0, r0, 11 + 3b1e: 07f8 br 0x3b0e // 3b0e + if(g_key.key_state & 0x1000){ + 3b20: 9309 ld.w r0, (r3, 0x24) + 3b22: 480c lsri r0, r0, 12 + 3b24: 07f5 br 0x3b0e // 3b0e + if(g_key.key_state & 0x2000){ + 3b26: 9309 ld.w r0, (r3, 0x24) + 3b28: 480d lsri r0, r0, 13 + 3b2a: 07f2 br 0x3b0e // 3b0e + U8_T state = 0; + 3b2c: 3000 movi r0, 0 + 3b2e: 07f2 br 0x3b12 // 3b12 + 3b30: 20000234 .long 0x20000234 + +Disassembly of section .text.TouchKey_Error_Scan: + +00003b34 : + + +void TouchKey_Error_Scan(void){ + 3b34: 14d4 push r4-r7, r15 + 3b36: 3400 movi r4, 0 + U8_T i = 0; + U8_T temp_flag = 0; + 3b38: 3700 movi r7, 0 + U16_T temp_val = 0; + + for(i = 0;i < TKE_CH_MAX;i++){ + if(Get_TouchKey_CH_State(i) == 0x00){ + //如果通道在没有触发的情况下,差值大于TOUCH_Anomaly_UpperLimit 便启动强制更新 + if(offset_data0[MCU_Touch_CH[i]] >= TOUCH_Anomaly_UpperLimit){ + 3b3a: 10af lrw r5, 0x20000068 // 3b74 + 3b3c: 10cf lrw r6, 0x200005d6 // 3b78 + if(Get_TouchKey_CH_State(i) == 0x00){ + 3b3e: 7410 zextb r0, r4 + 3b40: e3ffffdc bsr 0x3af8 // 3af8 + 3b44: 3840 cmpnei r0, 0 + 3b46: 080e bt 0x3b62 // 3b62 + if(offset_data0[MCU_Touch_CH[i]] >= TOUCH_Anomaly_UpperLimit){ + 3b48: 5d70 addu r3, r5, r4 + 3b4a: 8360 ld.b r3, (r3, 0x0) + 3b4c: 4361 lsli r3, r3, 1 + 3b4e: 60d8 addu r3, r6 + 3b50: 8b60 ld.h r3, (r3, 0x0) + 3b52: 74cf sexth r3, r3 + 3b54: 104a lrw r2, 0x3a97 // 3b7c + 3b56: 64c9 cmplt r2, r3 + 3b58: 0c05 bf 0x3b62 // 3b62 + temp_flag = 0x01; + + Dbg_Println(DBG_BIT_SYS_STATUS,"SYSCON_Software_Reset_01\r\n"); + 3b5a: 102a lrw r1, 0x72dc // 3b80 + 3b5c: e3ffff34 bsr 0x39c4 // 39c4 + temp_flag = 0x01; + 3b60: 3701 movi r7, 1 + 3b62: 2400 addi r4, 1 + for(i = 0;i < TKE_CH_MAX;i++){ + 3b64: 3c45 cmpnei r4, 5 + 3b66: 0bec bt 0x3b3e // 3b3e + } + } + } + + if(temp_flag == 0x01){ + 3b68: 3f41 cmpnei r7, 1 + 3b6a: 0804 bt 0x3b72 // 3b72 + base_update_f = 0x01; //强制更新触摸 + 3b6c: 1066 lrw r3, 0x20000643 // 3b84 + 3b6e: 3201 movi r2, 1 + 3b70: a340 st.b r2, (r3, 0x0) +// +// SYSCON_Software_Reset(); +// } + + +} + 3b72: 1494 pop r4-r7, r15 + 3b74: 20000068 .long 0x20000068 + 3b78: 200005d6 .long 0x200005d6 + 3b7c: 00003a97 .long 0x00003a97 + 3b80: 000072dc .long 0x000072dc + 3b84: 20000643 .long 0x20000643 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003b88 : + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3b88: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3b8a: 118a lrw r4, 0x20000234 // 3c30 + 3b8c: 8465 ld.b r3, (r4, 0x5) + 3b8e: 3b42 cmpnei r3, 2 + 3b90: 081c bt 0x3bc8 // 3bc8 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3b92: 3300 movi r3, 0 + 3b94: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3b96: 8466 ld.b r3, (r4, 0x6) + 3b98: 3b42 cmpnei r3, 2 + 3b9a: 0820 bt 0x3bda // 3bda + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3b9c: 3300 movi r3, 0 + 3b9e: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3ba0: 8467 ld.b r3, (r4, 0x7) + 3ba2: 3b42 cmpnei r3, 2 + 3ba4: 0824 bt 0x3bec // 3bec + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3ba6: 3300 movi r3, 0 + 3ba8: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3baa: e0000c37 bsr 0x5418 // 5418 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3bae: 8468 ld.b r3, (r4, 0x8) + 3bb0: 3b42 cmpnei r3, 2 + 3bb2: 0829 bt 0x3c04 // 3c04 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3bb4: 3300 movi r3, 0 + 3bb6: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3bb8: e0000cd6 bsr 0x5564 // 5564 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3bbc: 8469 ld.b r3, (r4, 0x9) + 3bbe: 3b42 cmpnei r3, 2 + 3bc0: 082e bt 0x3c1c // 3c1c + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3bc2: 3300 movi r3, 0 + 3bc4: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3bc6: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3bc8: 3b44 cmpnei r3, 4 + 3bca: 0fe4 bf 0x3b92 // 3b92 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3bcc: 3b41 cmpnei r3, 1 + 3bce: 0be4 bt 0x3b96 // 3b96 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3bd0: 3300 movi r3, 0 + 3bd2: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3bd4: e0000ae4 bsr 0x519c // 519c + 3bd8: 07df br 0x3b96 // 3b96 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3bda: 3b44 cmpnei r3, 4 + 3bdc: 0fe0 bf 0x3b9c // 3b9c + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3bde: 3b41 cmpnei r3, 1 + 3be0: 0be0 bt 0x3ba0 // 3ba0 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3be2: 3300 movi r3, 0 + 3be4: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3be6: e0000b43 bsr 0x526c // 526c + 3bea: 07db br 0x3ba0 // 3ba0 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3bec: 3b44 cmpnei r3, 4 + 3bee: 0804 bt 0x3bf6 // 3bf6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3bf0: 3300 movi r3, 0 + 3bf2: a467 st.b r3, (r4, 0x7) + 3bf4: 07dd br 0x3bae // 3bae + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3bf6: 3b41 cmpnei r3, 1 + 3bf8: 0bdb bt 0x3bae // 3bae + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3bfa: 3300 movi r3, 0 + 3bfc: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3bfe: e0000b9f bsr 0x533c // 533c + 3c02: 07d6 br 0x3bae // 3bae + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3c04: 3b44 cmpnei r3, 4 + 3c06: 0804 bt 0x3c0e // 3c0e + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3c08: 3300 movi r3, 0 + 3c0a: a468 st.b r3, (r4, 0x8) + 3c0c: 07d8 br 0x3bbc // 3bbc + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3c0e: 3b41 cmpnei r3, 1 + 3c10: 0bd6 bt 0x3bbc // 3bbc + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3c12: 3300 movi r3, 0 + 3c14: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3c16: e0000c37 bsr 0x5484 // 5484 + 3c1a: 07d1 br 0x3bbc // 3bbc + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3c1c: 3b44 cmpnei r3, 4 + 3c1e: 0fd2 bf 0x3bc2 // 3bc2 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3c20: 3b41 cmpnei r3, 1 + 3c22: 0bd2 bt 0x3bc6 // 3bc6 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3c24: 3300 movi r3, 0 + 3c26: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3c28: e0000cd4 bsr 0x55d0 // 55d0 +} + 3c2c: 07cd br 0x3bc6 // 3bc6 + 3c2e: 0000 bkpt + 3c30: 20000234 .long 0x20000234 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003c34 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3c34: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3c36: 106c lrw r3, 0x200002f5 // 3c64 + 3c38: 8340 ld.b r2, (r3, 0x0) + 3c3a: 3a41 cmpnei r2, 1 + 3c3c: 0c04 bf 0x3c44 // 3c44 + 3c3e: 8362 ld.b r3, (r3, 0x2) + 3c40: 3b45 cmpnei r3, 5 + 3c42: 0c10 bf 0x3c62 // 3c62 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3c44: 1069 lrw r3, 0x20000234 // 3c68 + 3c46: 8359 ld.b r2, (r3, 0x19) + 3c48: 3a41 cmpnei r2, 1 + 3c4a: 080c bt 0x3c62 // 3c62 + if(SysTick_1ms - g_key.key_dug_tick >= 50){ + 3c4c: 1028 lrw r1, 0x200000b4 // 3c6c + 3c4e: 9140 ld.w r2, (r1, 0x0) + 3c50: 930b ld.w r0, (r3, 0x2c) + 3c52: 6082 subu r2, r0 + 3c54: 3031 movi r0, 49 + 3c56: 6480 cmphs r0, r2 + 3c58: 0805 bt 0x3c62 // 3c62 + g_key.key_dug_tick = SysTick_1ms; + 3c5a: 9140 ld.w r2, (r1, 0x0) + 3c5c: b34b st.w r2, (r3, 0x2c) + + /*打印触摸按键数值*/ + TouchKey_RS485_Printf(); + 3c5e: e3ffff03 bsr 0x3a64 // 3a64 + } + } +} + 3c62: 1490 pop r15 + 3c64: 200002f5 .long 0x200002f5 + 3c68: 20000234 .long 0x20000234 + 3c6c: 200000b4 .long 0x200000b4 + +Disassembly of section .text.Touch_Key_Task: + +00003c70 : +void Touch_Key_Task(void){ + 3c70: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3c72: 1133 lrw r1, 0x200000b4 // 3d3c + 3c74: 1173 lrw r3, 0x20000234 // 3d40 + 3c76: 9140 ld.w r2, (r1, 0x0) + 3c78: 930a ld.w r0, (r3, 0x28) + 3c7a: 6082 subu r2, r0 + 3c7c: 3a04 cmphsi r2, 5 + 3c7e: 0806 bt 0x3c8a // 3c8a + break; + } + } + } + + Touch_Key_Event_Handling(); + 3c80: e3ffff84 bsr 0x3b88 // 3b88 + + TouchKey_Set_Interface_Task(); + 3c84: e3ffffd8 bsr 0x3c34 // 3c34 + +} + 3c88: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3c8a: 9140 ld.w r2, (r1, 0x0) + 3c8c: b34a st.w r2, (r3, 0x28) + if(Key_Map != 0x00){ + 3c8e: 112e lrw r1, 0x20000660 // 3d44 + 3c90: 9140 ld.w r2, (r1, 0x0) + 3c92: 3a40 cmpnei r2, 0 + 3c94: 0c02 bf 0x3c98 // 3c98 + g_key.key_state = Key_Map; + 3c96: 9140 ld.w r2, (r1, 0x0) + 3c98: 118a lrw r4, 0x20000234 // 3d40 + TouchKey_Error_Scan(); + 3c9a: 6d93 mov r6, r4 + g_key.key_state = 0; + 3c9c: b349 st.w r2, (r3, 0x24) + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3c9e: 3500 movi r5, 0 + TouchKey_Error_Scan(); + 3ca0: e3ffff4a bsr 0x3b34 // 3b34 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3ca4: 11e9 lrw r7, 0x257 // 3d48 + switch (g_key.KEY_STA[i]) { + 3ca6: 8460 ld.b r3, (r4, 0x0) + 3ca8: 3b41 cmpnei r3, 1 + 3caa: 0c24 bf 0x3cf2 // 3cf2 + 3cac: 3b40 cmpnei r3, 0 + 3cae: 0c0a bf 0x3cc2 // 3cc2 + 3cb0: 3b42 cmpnei r3, 2 + 3cb2: 0c39 bf 0x3d24 // 3d24 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3cb4: 2500 addi r5, 1 + 3cb6: 7554 zextb r5, r5 + 3cb8: 3d45 cmpnei r5, 5 + 3cba: 2400 addi r4, 1 + 3cbc: 2601 addi r6, 2 + 3cbe: 0bf4 bt 0x3ca6 // 3ca6 + 3cc0: 07e0 br 0x3c80 // 3c80 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3cc2: 6c17 mov r0, r5 + 3cc4: e3ffff1a bsr 0x3af8 // 3af8 + 3cc8: 3841 cmpnei r0, 1 + 3cca: 080f bt 0x3ce8 // 3ce8 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3ccc: 8474 ld.b r3, (r4, 0x14) + 3cce: 3b01 cmphsi r3, 2 + 3cd0: 0804 bt 0x3cd8 // 3cd8 + g_key.delayCnt[i]++; + 3cd2: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3cd4: a474 st.b r3, (r4, 0x14) + 3cd6: 07ef br 0x3cb4 // 3cb4 + Controlled_Buzzer(0x01); + 3cd8: 3001 movi r0, 1 + 3cda: e0000763 bsr 0x4ba0 // 4ba0 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3cde: 3301 movi r3, 1 + 3ce0: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ce2: 3300 movi r3, 0 + 3ce4: ae6d st.h r3, (r6, 0x1a) + 3ce6: 07f7 br 0x3cd4 // 3cd4 + g_key.delayCnt[i] = 0; + 3ce8: 3300 movi r3, 0 + 3cea: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3cec: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3cee: a465 st.b r3, (r4, 0x5) + 3cf0: 07e2 br 0x3cb4 // 3cb4 + g_key.key_time[i]++; + 3cf2: 8e6d ld.h r3, (r6, 0x1a) + 3cf4: 2300 addi r3, 1 + 3cf6: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3cf8: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3cfa: ae6d st.h r3, (r6, 0x1a) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3cfc: 0c0c bf 0x3d14 // 3d14 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3cfe: 6c17 mov r0, r5 + 3d00: e3fffefc bsr 0x3af8 // 3af8 + 3d04: 3840 cmpnei r0, 0 + 3d06: 0bd7 bt 0x3cb4 // 3cb4 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3d08: 3301 movi r3, 1 + 3d0a: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3d0c: 3300 movi r3, 0 + 3d0e: ae6d st.h r3, (r6, 0x1a) + g_key.KEY_STA[i] = KEY_STA_S0; + 3d10: a460 st.b r3, (r4, 0x0) + 3d12: 07d1 br 0x3cb4 // 3cb4 + g_key.KEY_STA[i] = KEY_STA_S2; + 3d14: 3302 movi r3, 2 + 3d16: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3d18: 3300 movi r3, 0 + 3d1a: ae6d st.h r3, (r6, 0x1a) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3d1c: 3303 movi r3, 3 + 3d1e: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3d20: 3302 movi r3, 2 + 3d22: 07e6 br 0x3cee // 3cee + g_key.key_longPress[i] = KEY_VAL_NOT; + 3d24: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3d26: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3d28: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3d2a: e3fffee7 bsr 0x3af8 // 3af8 + 3d2e: 3840 cmpnei r0, 0 + 3d30: 0bc2 bt 0x3cb4 // 3cb4 + g_key.KEY_STA[i] = KEY_STA_S0; + 3d32: 3300 movi r3, 0 + 3d34: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3d36: 3304 movi r3, 4 + 3d38: 07db br 0x3cee // 3cee + 3d3a: 0000 bkpt + 3d3c: 200000b4 .long 0x200000b4 + 3d40: 20000234 .long 0x20000234 + 3d44: 20000660 .long 0x20000660 + 3d48: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003d4c : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3d4c: 6040 addu r1, r0 + U8_T data_sum = 0; + 3d4e: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3d54: 6cce nor r3, r3 + 3d56: 740c zextb r0, r3 +} + 3d58: 783c jmp r15 + data_sum += data[i]; + 3d5a: 8040 ld.b r2, (r0, 0x0) + 3d5c: 60c8 addu r3, r2 + 3d5e: 74cc zextb r3, r3 + 3d60: 2000 addi r0, 1 + 3d62: 07f7 br 0x3d50 // 3d50 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003d64 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3d64: 14d2 push r4-r5, r15 + 3d66: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3d68: 5992 addi r4, r1, 5 + 3d6a: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3d6c: 3331 movi r3, 49 + 3d6e: 650c cmphs r3, r4 + 3d70: 0803 bt 0x3d76 // 3d76 + para_len = 44; + 3d72: 312c movi r1, 44 + reply_len = 50; + 3d74: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3d76: 3300 movi r3, 0 + 3d78: 2b50 subi r3, 81 + 3d7a: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3d7e: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3d82: 1073 lrw r3, 0x20000264 // 3dcc + 3d84: 8360 ld.b r3, (r3, 0x0) + 3d86: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3d8a: 3300 movi r3, 0 + 3d8c: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3d96: 3200 movi r2, 0 + 3d98: 60f8 addu r3, r14 + 3d9a: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3d9c: 6c53 mov r1, r4 + 3d9e: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3da0: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3da2: e3ffffd5 bsr 0x3d4c // 3d4c + +// MCU485_SendData(send_data,reply_len); + UARTTransmit(UART2,send_data,reply_len); + 3da6: 106b lrw r3, 0x20000038 // 3dd0 + 3da8: 6c93 mov r2, r4 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3daa: dc0e0003 st.b r0, (r14, 0x3) + UARTTransmit(UART2,send_data,reply_len); + 3dae: 6c7b mov r1, r14 + 3db0: 9300 ld.w r0, (r3, 0x0) + 3db2: e3fff189 bsr 0x20c4 // 20c4 + +} + 3db6: 140f addi r14, r14, 60 + 3db8: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3dba: 6c8f mov r2, r3 + 3dbc: 58ac addu r5, r0, r3 + 3dbe: 60b8 addu r2, r14 + 3dc0: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 3dca: 0000 bkpt + 3dcc: 20000264 .long 0x20000264 + 3dd0: 20000038 .long 0x20000038 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003dd4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3dd4: 14d4 push r4-r7, r15 + 3dd6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3dd8: 80a0 ld.b r5, (r0, 0x0) + 3dda: 5dc3 subi r6, r5, 1 + 3ddc: 7598 zextb r6, r6 + 3dde: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3de0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3de2: 0834 bt 0x3e4a // 3e4a + 3de4: 1125 lrw r1, 0x20000204 // 3e78 + 3de6: 350b movi r5, 11 + 3de8: 5862 addi r3, r0, 1 + 3dea: 6140 addu r5, r0 + 3dec: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3e0a: 8479 ld.b r3, (r4, 0x19) + 3e0c: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3e0e: 847a ld.b r3, (r4, 0x1a) + 3e10: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3e12: 847b ld.b r3, (r4, 0x1b) + 3e14: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3e16: 847c ld.b r3, (r4, 0x1c) + 3e18: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e1a: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3e1c: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e1e: 1037 lrw r1, 0x20000204 // 3e78 + touch_para.longpress_time = para[29]; + 3e20: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e22: e00002fb bsr 0x4418 // 4418 + + if(rev == 0x00){ + 3e26: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3e28: 6d43 mov r5, r0 + if(rev == 0x00){ + 3e2a: 0805 bt 0x3e34 // 3e34 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3e2c: 1033 lrw r1, 0x20000204 // 3e78 + 3e2e: 6c1b mov r0, r6 + 3e30: e0000268 bsr 0x4300 // 4300 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 3e34: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 3e36: 3102 movi r1, 2 + 3e38: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 3e3a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 3e3e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 3e42: e3ffff91 bsr 0x3d64 // 3d64 +} + 3e46: 1401 addi r14, r14, 4 + 3e48: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 3e4a: 3d40 cmpnei r5, 0 + 3e4c: 0c03 bf 0x3e52 // 3e52 + rev = 0x01; + 3e4e: 3501 movi r5, 1 + 3e50: 07f2 br 0x3e34 // 3e34 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 3e52: 8061 ld.b r3, (r0, 0x1) + 3e54: 104a lrw r2, 0x6e04 // 3e7c + 3e56: 102b lrw r1, 0x72f7 // 3e80 + 3e58: 3000 movi r0, 0 + 3e5a: e3fffdb5 bsr 0x39c4 // 39c4 + if( (para[1] > 0) && (para[1] <= 3) ){ + 3e5e: 8461 ld.b r3, (r4, 0x1) + 3e60: 2b00 subi r3, 1 + 3e62: 74cc zextb r3, r3 + 3e64: 3b02 cmphsi r3, 3 + 3e66: 0bf4 bt 0x3e4e // 3e4e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 3e68: 1047 lrw r2, 0x200002f5 // 3e84 + g_eeprom.key_sens_level = para[1] - 1; + 3e6a: 1008 lrw r0, 0x20000264 // 3e88 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 3e6c: a266 st.b r3, (r2, 0x6) + g_eeprom.key_sens_level = para[1] - 1; + 3e6e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 3e70: e00001c2 bsr 0x41f4 // 41f4 + 3e74: 07e0 br 0x3e34 // 3e34 + 3e76: 0000 bkpt + 3e78: 20000204 .long 0x20000204 + 3e7c: 00006e04 .long 0x00006e04 + 3e80: 000072f7 .long 0x000072f7 + 3e84: 200002f5 .long 0x200002f5 + 3e88: 20000264 .long 0x20000264 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00003e8c : +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 3e8c: 14d2 push r4-r5, r15 + 3e8e: 142d subi r14, r14, 52 + 3e90: 6d03 mov r4, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 3e92: 3232 movi r2, 50 + 3e94: 3100 movi r1, 0 + 3e96: 6c3b mov r0, r14 + 3e98: e3ffed66 bsr 0x1964 // 1964 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 3e9c: 8400 ld.b r0, (r4, 0x0) + reply_buff[reply_len++] = 0x02; + 3e9e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 3ea0: 3840 cmpnei r0, 0 + reply_buff[reply_len++] = 0x02; + 3ea2: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 3ea6: 082d bt 0x3f00 // 3f00 + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 3ea8: 1170 lrw r3, 0x20000264 // 3f68 + 3eaa: 8365 ld.b r3, (r3, 0x5) + 3eac: 2300 addi r3, 1 + 3eae: 1130 lrw r1, 0x20000204 // 3f6c + 3eb0: 6c87 mov r2, r1 + 3eb2: dc6e0001 st.b r3, (r14, 0x1) + 3eb6: 6cfb mov r3, r14 + + for(i=0;i> 8; + 3ebe: 4c88 lsri r4, r4, 8 + 3ec0: a383 st.b r4, (r3, 0x3) + for(i=0;i> 8; + 3eca: 4c88 lsri r4, r4, 8 + 3ecc: a38f st.b r4, (r3, 0xf) + 3ece: 2101 addi r1, 2 + 3ed0: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 3ed4: 8260 ld.b r3, (r2, 0x0) + 3ed6: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 3eda: 8261 ld.b r3, (r2, 0x1) + 3edc: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 3ee0: 8262 ld.b r3, (r2, 0x2) + 3ee2: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 3ee6: 8263 ld.b r3, (r2, 0x3) + 3ee8: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 3eec: 8278 ld.b r3, (r2, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 3eee: dc6e001e st.b r3, (r14, 0x1e) + 3ef2: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 3ef4: 7445 zexth r1, r1 + 3ef6: 6c3b mov r0, r14 + 3ef8: e3ffff36 bsr 0x3d64 // 3d64 +} + 3efc: 140d addi r14, r14, 52 + 3efe: 1492 pop r4-r5, r15 + }else if(para[0] <= 3){ + 3f00: 3803 cmphsi r0, 4 + 3f02: 0831 bt 0x3f64 // 3f64 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 3f04: 2800 subi r0, 1 + 3f06: 7400 zextb r0, r0 + 3f08: 1039 lrw r1, 0x20000204 // 3f6c + 3f0a: e0000231 bsr 0x436c // 436c + if(rev != 0x00){ + 3f0e: 3840 cmpnei r0, 0 + 3f10: 10b7 lrw r5, 0x20000204 // 3f6c + 3f12: 0c07 bf 0x3f20 // 3f20 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 3f14: 8400 ld.b r0, (r4, 0x0) + 3f16: 2800 subi r0, 1 + 3f18: 7400 zextb r0, r0 + 3f1a: 6c57 mov r1, r5 + 3f1c: e00002d2 bsr 0x44c0 // 44c0 + reply_buff[reply_len++] = para[0]; + 3f20: 8460 ld.b r3, (r4, 0x0) + 3f22: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 3f2a: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 3f2c: 8902 ld.h r0, (r1, 0x4) + 3f2e: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 3f32: 4808 lsri r0, r0, 8 + 3f34: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 3f3e: 4808 lsri r0, r0, 8 + 3f40: a30f st.b r0, (r3, 0xf) + 3f42: 2101 addi r1, 2 + 3f44: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 3f48: 8560 ld.b r3, (r5, 0x0) + 3f4a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 3f4e: 8561 ld.b r3, (r5, 0x1) + 3f50: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 3f54: 8562 ld.b r3, (r5, 0x2) + 3f56: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 3f5a: 8563 ld.b r3, (r5, 0x3) + 3f5c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 3f60: 8578 ld.b r3, (r5, 0x18) + 3f62: 07c6 br 0x3eee // 3eee + reply_buff[reply_len++] = 0x00; + 3f64: 3102 movi r1, 2 + 3f66: 07c7 br 0x3ef4 // 3ef4 + 3f68: 20000264 .long 0x20000264 + 3f6c: 20000204 .long 0x20000204 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00003f70 : +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 3f70: 14d0 push r15 + 3f72: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 3f74: 8060 ld.b r3, (r0, 0x0) + 3f76: 3b41 cmpnei r3, 1 + 3f78: 0810 bt 0x3f98 // 3f98 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 3f7a: 106b lrw r3, 0x20000234 // 3fa4 + 3f7c: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 3f7e: a359 st.b r2, (r3, 0x19) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 3f80: 3303 movi r3, 3 + 3f82: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 3f86: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 3f88: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 3f8a: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 3f8c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 3f90: e3fffeea bsr 0x3d64 // 3d64 +} + 3f94: 1401 addi r14, r14, 4 + 3f96: 1490 pop r15 + }else if(para[0] == 0x02){ + 3f98: 3b42 cmpnei r3, 2 + 3f9a: 0bf3 bt 0x3f80 // 3f80 + g_key.key_dug_printf = 0x00; + 3f9c: 1062 lrw r3, 0x20000234 // 3fa4 + 3f9e: 3200 movi r2, 0 + 3fa0: 07ef br 0x3f7e // 3f7e + 3fa2: 0000 bkpt + 3fa4: 20000234 .long 0x20000234 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00003fa8 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 3fa8: 14d0 push r15 + 3faa: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=0; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3fac: 1150 lrw r2, 0x200007d2 // 406c + reply_buff[reply_len++] = 0x04; //CMD + 3fae: 3304 movi r3, 4 + 3fb0: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3fb4: 8a60 ld.h r3, (r2, 0x0) + 3fb6: 4b68 lsri r3, r3, 8 + 3fb8: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 3fbc: 8a60 ld.h r3, (r2, 0x0) + 3fbe: dc6e0002 st.b r3, (r14, 0x2) + reply_buff[reply_len++] = sampling_data0[i]>>8; + reply_buff[reply_len++] = sampling_data0[i]&0xff; + reply_buff[reply_len++] = baseline_data0[i]>>8; + reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 3fc2: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 3fc4: 116b lrw r3, 0x2000052c // 4070 + 3fc6: 8b20 ld.h r1, (r3, 0x0) + 3fc8: 4928 lsri r1, r1, 8 + 3fca: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 3fce: 8b20 ld.h r1, (r3, 0x0) + 3fd0: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3fd4: 8a28 ld.h r1, (r2, 0x10) + 3fd6: 4928 lsri r1, r1, 8 + 3fd8: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 3fdc: 8a28 ld.h r1, (r2, 0x10) + 3fde: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 3fe2: 8b28 ld.h r1, (r3, 0x10) + 3fe4: 4928 lsri r1, r1, 8 + 3fe6: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 3fea: 8b28 ld.h r1, (r3, 0x10) + 3fec: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 3ff0: 8a29 ld.h r1, (r2, 0x12) + 3ff2: 4928 lsri r1, r1, 8 + 3ff4: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 3ff8: 8a29 ld.h r1, (r2, 0x12) + 3ffa: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 3ffe: 8b29 ld.h r1, (r3, 0x12) + 4000: 4928 lsri r1, r1, 8 + 4002: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4006: 8b29 ld.h r1, (r3, 0x12) + 4008: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 400c: 8a2e ld.h r1, (r2, 0x1c) + 400e: 4928 lsri r1, r1, 8 + 4010: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4014: 8a2e ld.h r1, (r2, 0x1c) + 4016: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 401a: 8b2e ld.h r1, (r3, 0x1c) + 401c: 4928 lsri r1, r1, 8 + 401e: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4022: 8b2e ld.h r1, (r3, 0x1c) + 4024: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4028: 8a2d ld.h r1, (r2, 0x1a) + 402a: 4928 lsri r1, r1, 8 + 402c: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4030: 8a2d ld.h r1, (r2, 0x1a) + 4032: dc2e0012 st.b r1, (r14, 0x12) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4036: 8b2d ld.h r1, (r3, 0x1a) + 4038: 4928 lsri r1, r1, 8 + 403a: dc2e0013 st.b r1, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 403e: 8b2d ld.h r1, (r3, 0x1a) + 4040: dc2e0014 st.b r1, (r14, 0x14) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4044: 8a2c ld.h r1, (r2, 0x18) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4046: 8a4c ld.h r2, (r2, 0x18) + 4048: dc4e0016 st.b r2, (r14, 0x16) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 404c: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 404e: 8b4c ld.h r2, (r3, 0x18) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4050: dc2e0015 st.b r1, (r14, 0x15) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4054: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4056: 8b6c ld.h r3, (r3, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4058: 3119 movi r1, 25 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 405a: dc4e0017 st.b r2, (r14, 0x17) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 405e: dc6e0018 st.b r3, (r14, 0x18) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4062: e3fffe81 bsr 0x3d64 // 3d64 +} + 4066: 140d addi r14, r14, 52 + 4068: 1490 pop r15 + 406a: 0000 bkpt + 406c: 200007d2 .long 0x200007d2 + 4070: 2000052c .long 0x2000052c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004074 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4074: 14d0 push r15 + 4076: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4078: 3305 movi r3, 5 + 407a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 407e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4080: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4082: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4084: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4088: e3fffe6e bsr 0x3d64 // 3d64 + 408c: 0400 br 0x408c // 408c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004090 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4090: 14d2 push r4-r5, r15 + 4092: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4094: 8060 ld.b r3, (r0, 0x0) + 4096: 32af movi r2, 175 + 4098: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 409a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 409c: 0c09 bf 0x40ae // 40ae + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 409e: 3000 movi r0, 0 + 40a0: 114b lrw r2, 0x6e20 // 414c + 40a2: 112c lrw r1, 0x7307 // 4150 + 40a4: e3fffc90 bsr 0x39c4 // 39c4 + return 0x01; + 40a8: 3001 movi r0, 1 + break; + } + + + return 0; +} + 40aa: 1401 addi r14, r14, 4 + 40ac: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 40ae: 114a lrw r2, 0x20000264 // 4154 + 40b0: 8061 ld.b r3, (r0, 0x1) + 40b2: 8240 ld.b r2, (r2, 0x0) + 40b4: 64ca cmpne r2, r3 + 40b6: 0c08 bf 0x40c6 // 40c6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 40b8: 3000 movi r0, 0 + 40ba: 1145 lrw r2, 0x6e20 // 414c + 40bc: 1127 lrw r1, 0x7319 // 4158 + 40be: e3fffc83 bsr 0x39c4 // 39c4 + return 0x02; + 40c2: 3002 movi r0, 2 + 40c4: 07f3 br 0x40aa // 40aa + if(data[2] != len){ + 40c6: 8062 ld.b r3, (r0, 0x2) + 40c8: 750d zexth r4, r3 + 40ca: 6452 cmpne r4, r1 + 40cc: 0c09 bf 0x40de // 40de + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 40ce: b820 st.w r1, (r14, 0x0) + 40d0: 105f lrw r2, 0x6e20 // 414c + 40d2: 1123 lrw r1, 0x732a // 415c + 40d4: 3000 movi r0, 0 + 40d6: e3fffc77 bsr 0x39c4 // 39c4 + return 0x03; + 40da: 3003 movi r0, 3 + 40dc: 07e7 br 0x40aa // 40aa + if(data[len-1] != 0xFA){ + 40de: 60c0 addu r3, r0 + 40e0: 2b00 subi r3, 1 + 40e2: 8360 ld.b r3, (r3, 0x0) + 40e4: 32fa movi r2, 250 + 40e6: 648e cmpne r3, r2 + 40e8: 0c07 bf 0x40f6 // 40f6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 40ea: 1059 lrw r2, 0x6e20 // 414c + 40ec: 103d lrw r1, 0x733d // 4160 + 40ee: 3000 movi r0, 0 + 40f0: e3fffc6a bsr 0x39c4 // 39c4 + 40f4: 07f3 br 0x40da // 40da + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 40f6: 5c23 subi r1, r4, 1 + 40f8: 7445 zexth r1, r1 + 40fa: e3fffe29 bsr 0x3d4c // 3d4c + 40fe: 3840 cmpnei r0, 0 + 4100: 0806 bt 0x410c // 410c + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 4102: 1053 lrw r2, 0x6e20 // 414c + 4104: 1038 lrw r1, 0x734d // 4164 + 4106: e3fffc5f bsr 0x39c4 // 39c4 + 410a: 07e8 br 0x40da // 40da + switch(data[4]){ + 410c: 8504 ld.b r0, (r5, 0x4) + 410e: 2800 subi r0, 1 + 4110: 3804 cmphsi r0, 5 + 4112: 080c bt 0x412a // 412a + 4114: 5c37 subi r1, r4, 6 + 4116: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4118: 7445 zexth r1, r1 + switch(data[4]){ + 411a: e3ffe5f1 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 411e: 0803 .short 0x0803 + 4120: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 4124: 6c17 mov r0, r5 + 4126: e3fffe57 bsr 0x3dd4 // 3dd4 + return 0; + 412a: 3000 movi r0, 0 + 412c: 07bf br 0x40aa // 40aa + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 412e: 6c17 mov r0, r5 + 4130: e3fffeae bsr 0x3e8c // 3e8c + 4134: 07fb br 0x412a // 412a + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4136: 6c17 mov r0, r5 + 4138: e3ffff1c bsr 0x3f70 // 3f70 + 413c: 07f7 br 0x412a // 412a + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 413e: 6c17 mov r0, r5 + 4140: e3ffff34 bsr 0x3fa8 // 3fa8 + 4144: 07f3 br 0x412a // 412a + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4146: 6c17 mov r0, r5 + 4148: e3ffff96 bsr 0x4074 // 4074 + 414c: 00006e20 .long 0x00006e20 + 4150: 00007307 .long 0x00007307 + 4154: 20000264 .long 0x20000264 + 4158: 00007319 .long 0x00007319 + 415c: 0000732a .long 0x0000732a + 4160: 0000733d .long 0x0000733d + 4164: 0000734d .long 0x0000734d + +Disassembly of section .text.EEPROM_CheckSum: + +00004168 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4168: 6cc3 mov r3, r0 + 416a: 6040 addu r1, r0 + U8_T data_sum = 0; + 416c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4172: 783c jmp r15 + data_sum += data[i]; + 4174: 8340 ld.b r2, (r3, 0x0) + 4176: 6008 addu r0, r2 + 4178: 7400 zextb r0, r0 + 417a: 2300 addi r3, 1 + 417c: 07f9 br 0x416e // 416e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004180 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4180: 14d1 push r4, r15 + 4182: 143b subi r14, r14, 108 + 4184: 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)); + 4186: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4188: 3264 movi r2, 100 + 418a: 3100 movi r1, 0 + 418c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 418e: b860 st.w r3, (r14, 0x0) + 4190: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4194: e3ffebe8 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4198: 6cbb mov r2, r14 + 419a: 3104 movi r1, 4 + 419c: 1014 lrw r0, 0x10000020 // 41ec + 419e: e3fff441 bsr 0x2a20 // 2a20 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 41a2: d84e0000 ld.b r2, (r14, 0x0) + 41a6: 33a6 movi r3, 166 + 41a8: 64ca cmpne r2, r3 + 41aa: 0c04 bf 0x41b2 // 41b2 + return 0x00; + } + } + } + + return 0x01; + 41ac: 3001 movi r0, 1 +} + 41ae: 141b addi r14, r14, 108 + 41b0: 1491 pop r4, r15 + read_len |= read_info[1]; + 41b2: d82e0002 ld.b r1, (r14, 0x2) + 41b6: d86e0001 ld.b r3, (r14, 0x1) + 41ba: 4128 lsli r1, r1, 8 + 41bc: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 41be: 3364 movi r3, 100 + 41c0: 644c cmphs r3, r1 + 41c2: 0ff5 bf 0x41ac // 41ac + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 41c4: 1a02 addi r2, r14, 8 + 41c6: 100b lrw r0, 0x10000024 // 41f0 + 41c8: e3fff42c bsr 0x2a20 // 2a20 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 41cc: 3106 movi r1, 6 + 41ce: 1802 addi r0, r14, 8 + 41d0: e3ffffcc bsr 0x4168 // 4168 + 41d4: d86e0003 ld.b r3, (r14, 0x3) + 41d8: 640e cmpne r3, r0 + 41da: 0be9 bt 0x41ac // 41ac + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 41dc: 3206 movi r2, 6 + 41de: 1902 addi r1, r14, 8 + 41e0: 6c13 mov r0, r4 + 41e2: e3ffec05 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 41e6: 3000 movi r0, 0 + 41e8: 07e3 br 0x41ae // 41ae + 41ea: 0000 bkpt + 41ec: 10000020 .long 0x10000020 + 41f0: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000041f4 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 41f4: 14d0 push r15 + 41f6: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 41f8: 3300 movi r3, 0 + 41fa: 2b59 subi r3, 90 + 41fc: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4200: 3306 movi r3, 6 + 4202: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4206: 3300 movi r3, 0 + 4208: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 420c: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 420e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4210: 3206 movi r2, 6 + 4212: 6c0f mov r0, r3 + 4214: e3ffebec bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4218: 3106 movi r1, 6 + 421a: e3ffffa7 bsr 0x4168 // 4168 + 421e: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 4222: 6cbb mov r2, r14 + 4224: 310a movi r1, 10 + 4226: 1004 lrw r0, 0x10000020 // 4234 + 4228: e3fff3ac bsr 0x2980 // 2980 + + return 0; +} + 422c: 3000 movi r0, 0 + 422e: 141b addi r14, r14, 108 + 4230: 1490 pop r15 + 4232: 0000 bkpt + 4234: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004238 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4238: 14d1 push r4, r15 + 423a: 1421 subi r14, r14, 4 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 423c: 8062 ld.b r3, (r0, 0x2) + 423e: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4240: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4242: 0c03 bf 0x4248 // 4248 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4244: 3309 movi r3, 9 + 4246: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4248: 8442 ld.b r2, (r4, 0x2) + 424a: 1032 lrw r1, 0x735c // 4290 + 424c: 3000 movi r0, 0 + 424e: e3fffbbb bsr 0x39c4 // 39c4 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4252: 8463 ld.b r3, (r4, 0x3) + 4254: 3b02 cmphsi r3, 3 + 4256: 0c03 bf 0x425c // 425c + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4258: 3300 movi r3, 0 + 425a: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 425c: 8464 ld.b r3, (r4, 0x4) + 425e: 3b01 cmphsi r3, 2 + 4260: 0c03 bf 0x4266 // 4266 + { + info->backlight_en = 0x01; + 4262: 3301 movi r3, 1 + 4264: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag >= 0x02) + 4266: 8461 ld.b r3, (r4, 0x1) + 4268: 3b01 cmphsi r3, 2 + 426a: 0c03 bf 0x4270 // 4270 + { + info->pipe_flag = 0x00; + 426c: 3300 movi r3, 0 + 426e: a461 st.b r3, (r4, 0x1) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4270: 8465 ld.b r3, (r4, 0x5) + 4272: 3b02 cmphsi r3, 3 + 4274: 0c03 bf 0x427a // 427a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4276: 3301 movi r3, 1 + 4278: a465 st.b r3, (r4, 0x5) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info save_curr %d backlight_en:%d key_sens_level:%d",info->temp_select,info->backlight_en,info->key_sens_level); + 427a: 8425 ld.b r1, (r4, 0x5) + 427c: b820 st.w r1, (r14, 0x0) + 427e: 8464 ld.b r3, (r4, 0x4) + 4280: 8443 ld.b r2, (r4, 0x3) + 4282: 1025 lrw r1, 0x7373 // 4294 + 4284: 3000 movi r0, 0 + 4286: e3fffb9f bsr 0x39c4 // 39c4 + + return 0; +} + 428a: 3000 movi r0, 0 + 428c: 1401 addi r14, r14, 4 + 428e: 1491 pop r4, r15 + 4290: 0000735c .long 0x0000735c + 4294: 00007373 .long 0x00007373 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004298 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x00; + 4298: 3300 movi r3, 0 + 429a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 429c: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 429e: 3309 movi r3, 9 + 42a0: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 42a2: 3300 movi r3, 0 + 42a4: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x01; + 42a6: 3301 movi r3, 1 + 42a8: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 42aa: a065 st.b r3, (r0, 0x5) +} + 42ac: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +000042b0 : +void EEPROM_Init(void){ + 42b0: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 42b2: 1071 lrw r3, 0x20000060 // 42f4 + 42b4: 3201 movi r2, 1 + 42b6: 9360 ld.w r3, (r3, 0x0) + 42b8: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 42ba: 9345 ld.w r2, (r3, 0x14) + 42bc: 3aa1 bseti r2, 1 + 42be: 3ab0 bseti r2, 16 + 42c0: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 42c2: 300a movi r0, 10 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 42c4: 108d lrw r4, 0x20000264 // 42f8 + delay_nms(10); + 42c6: e3fff4c1 bsr 0x2c48 // 2c48 + rev = EEPROM_ReadParaInfo(&g_eeprom); + 42ca: 6c13 mov r0, r4 + 42cc: e3ffff5a bsr 0x4180 // 4180 + if(rev == 0x00){ + 42d0: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 42d2: 6c13 mov r0, r4 + if(rev == 0x00){ + 42d4: 0804 bt 0x42dc // 42dc + EEPROM_Validate_ParaInfo(&g_eeprom); + 42d6: e3ffffb1 bsr 0x4238 // 4238 +} + 42da: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 42dc: e3ffffde bsr 0x4298 // 4298 + EEPROM_WriteParaInfo(&g_eeprom); + 42e0: 6c13 mov r0, r4 + 42e2: e3ffff89 bsr 0x41f4 // 41f4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 42e6: 8441 ld.b r2, (r4, 0x1) + 42e8: 1025 lrw r1, 0x73ae // 42fc + 42ea: 3000 movi r0, 0 + 42ec: e3fffb6c bsr 0x39c4 // 39c4 +} + 42f0: 07f5 br 0x42da // 42da + 42f2: 0000 bkpt + 42f4: 20000060 .long 0x20000060 + 42f8: 20000264 .long 0x20000264 + 42fc: 000073ae .long 0x000073ae + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004300 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4300: 14d2 push r4-r5, r15 + 4302: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4304: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4306: 6d47 mov r5, r1 + switch(level){ + 4308: 0c07 bf 0x4316 // 4316 + 430a: 3840 cmpnei r0, 0 + 430c: 0c27 bf 0x435a // 435a + 430e: 3842 cmpnei r0, 2 + 4310: 0c23 bf 0x4356 // 4356 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4312: 3001 movi r0, 1 + 4314: 041f br 0x4352 // 4352 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4316: 1093 lrw r4, 0x10000180 // 4360 + break; + } + + memset(save_para,0,sizeof(save_para)); + 4318: 323c movi r2, 60 + 431a: 3100 movi r1, 0 + 431c: 6c3b mov r0, r14 + 431e: e3ffeb23 bsr 0x1964 // 1964 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4322: 3300 movi r3, 0 + 4324: 2b59 subi r3, 90 + 4326: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 432a: 331c movi r3, 28 + 432c: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4330: 1b01 addi r3, r14, 4 + 4332: 321c movi r2, 28 + 4334: 6c0f mov r0, r3 + 4336: 6c57 mov r1, r5 + 4338: e3ffeb5a bsr 0x19ec // 19ec <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 433c: 311c movi r1, 28 + 433e: e3ffff15 bsr 0x4168 // 4168 + 4342: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4346: 6cbb mov r2, r14 + 4348: 6c13 mov r0, r4 + 434a: 3120 movi r1, 32 + 434c: e3fff31a bsr 0x2980 // 2980 + + return 0; + 4350: 3000 movi r0, 0 +} + 4352: 140f addi r14, r14, 60 + 4354: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4356: 1084 lrw r4, 0x10000200 // 4364 + break; + 4358: 07e0 br 0x4318 // 4318 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 435a: 1084 lrw r4, 0x10000100 // 4368 + 435c: 07de br 0x4318 // 4318 + 435e: 0000 bkpt + 4360: 10000180 .long 0x10000180 + 4364: 10000200 .long 0x10000200 + 4368: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +0000436c : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 436c: 14d2 push r4-r5, r15 + 436e: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4370: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4372: 6d07 mov r4, r1 + switch(level){ + 4374: 0c3a bf 0x43e8 // 43e8 + 4376: 3840 cmpnei r0, 0 + 4378: 0c05 bf 0x4382 // 4382 + 437a: 3842 cmpnei r0, 2 + 437c: 0c34 bf 0x43e4 // 43e4 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Error:%d",read_info,4); + } + + return 0x01; + 437e: 3001 movi r0, 1 + 4380: 0430 br 0x43e0 // 43e0 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4382: 11a1 lrw r5, 0x10000100 // 4404 + memset(read_info,0,sizeof(read_info)); + 4384: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4386: 3234 movi r2, 52 + 4388: 3100 movi r1, 0 + 438a: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 438c: b860 st.w r3, (r14, 0x0) + 438e: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4392: e3ffeae9 bsr 0x1964 // 1964 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4396: 6cbb mov r2, r14 + 4398: 3104 movi r1, 4 + 439a: 6c17 mov r0, r5 + 439c: e3fff342 bsr 0x2a20 // 2a20 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 43a0: d84e0000 ld.b r2, (r14, 0x0) + 43a4: 33a6 movi r3, 166 + 43a6: 64ca cmpne r2, r3 + 43a8: 0827 bt 0x43f6 // 43f6 + read_len |= read_info[1]; + 43aa: d84e0002 ld.b r2, (r14, 0x2) + 43ae: d86e0001 ld.b r3, (r14, 0x1) + 43b2: 4248 lsli r2, r2, 8 + 43b4: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 43b6: 3a5c cmpnei r2, 28 + 43b8: 081a bt 0x43ec // 43ec + temp_addr += EEPROM_Offset_Data; + 43ba: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 43bc: 1a02 addi r2, r14, 8 + 43be: 311c movi r1, 28 + 43c0: e3fff330 bsr 0x2a20 // 2a20 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 43c4: 311c movi r1, 28 + 43c6: 1802 addi r0, r14, 8 + 43c8: e3fffed0 bsr 0x4168 // 4168 + 43cc: d86e0003 ld.b r3, (r14, 0x3) + 43d0: 640e cmpne r3, r0 + 43d2: 0bd6 bt 0x437e // 437e + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 43d4: 321c movi r2, 28 + 43d6: 1902 addi r1, r14, 8 + 43d8: 6c13 mov r0, r4 + 43da: e3ffeb09 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 43de: 3000 movi r0, 0 +} + 43e0: 140f addi r14, r14, 60 + 43e2: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 43e4: 10a9 lrw r5, 0x10000200 // 4408 + break; + 43e6: 07cf br 0x4384 // 4384 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 43e8: 10a9 lrw r5, 0x10000180 // 440c + 43ea: 07cd br 0x4384 // 4384 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 43ec: 1029 lrw r1, 0x73c7 // 4410 + 43ee: 3000 movi r0, 0 + 43f0: e3fffaea bsr 0x39c4 // 39c4 + 43f4: 07c5 br 0x437e // 437e + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Error:%d",read_info,4); + 43f6: 3304 movi r3, 4 + 43f8: 6cbb mov r2, r14 + 43fa: 1027 lrw r1, 0x73e9 // 4414 + 43fc: 3000 movi r0, 0 + 43fe: e3fffae9 bsr 0x39d0 // 39d0 + 4402: 07be br 0x437e // 437e + 4404: 10000100 .long 0x10000100 + 4408: 10000200 .long 0x10000200 + 440c: 10000180 .long 0x10000180 + 4410: 000073c7 .long 0x000073c7 + 4414: 000073e9 .long 0x000073e9 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00004418 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4418: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 441a: 8163 ld.b r3, (r1, 0x3) + 441c: 2b00 subi r3, 1 + 441e: 74cc zextb r3, r3 + 4420: 3263 movi r2, 99 + 4422: 64c8 cmphs r2, r3 + 4424: 0845 bt 0x44ae // 44ae + para->base_speed = 20; //默认参数 - 20 + 4426: 3314 movi r3, 20 + 4428: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 442a: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 442c: 8140 ld.b r2, (r1, 0x0) + 442e: 2a00 subi r2, 1 + 4430: 7488 zextb r2, r2 + 4432: 3a09 cmphsi r2, 10 + 4434: 0c04 bf 0x443c // 443c + para->press_debounce = 6; //默认参数 - 6 + 4436: 3306 movi r3, 6 + 4438: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 443a: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 443c: 8141 ld.b r2, (r1, 0x1) + 443e: 2a00 subi r2, 1 + 4440: 7488 zextb r2, r2 + 4442: 3a09 cmphsi r2, 10 + 4444: 0c04 bf 0x444c // 444c + para->release_debounce = 5; //默认参数 - 5 + 4446: 3305 movi r3, 5 + 4448: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 444a: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 444c: 8142 ld.b r2, (r1, 0x2) + 444e: 2a00 subi r2, 1 + 4450: 7488 zextb r2, r2 + 4452: 3463 movi r4, 99 + 4454: 6490 cmphs r4, r2 + 4456: 0804 bt 0x445e // 445e + para->multiTimes_filt = 40; //默认参数 - 40 + 4458: 3328 movi r3, 40 + 445a: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 445c: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 445e: 9146 ld.w r2, (r1, 0x18) + 4460: 2a00 subi r2, 1 + 4462: 3a1f cmphsi r2, 32 + 4464: 0c04 bf 0x446c // 446c + para->longpress_time = 8; //默认参数 - 8 + 4466: 3308 movi r3, 8 + 4468: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 446a: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 446c: 34a0 movi r4, 160 + rev = 0x01; + } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 446e: 36f5 movi r6, 245 + 4470: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4472: 10f3 lrw r7, 0x3de // 44bc + 4474: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 4476: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4478: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 447a: 8aa0 ld.h r5, (r2, 0x0) + 447c: 2d09 subi r5, 10 + 447e: 7555 zexth r5, r5 + 4480: 655c cmphs r7, r5 + 4482: 0803 bt 0x4488 // 4488 + para->senprd[i] = 320; //默认参数 - 320 + 4484: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 4486: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4488: 8aa5 ld.h r5, (r2, 0xa) + 448a: 2d13 subi r5, 20 + 448c: 7555 zexth r5, r5 + 448e: 6558 cmphs r6, r5 + 4490: 080a bt 0x44a4 // 44a4 + + switch(level){ + 4492: 3841 cmpnei r0, 1 + 4494: 0c11 bf 0x44b6 // 44b6 + 4496: 3840 cmpnei r0, 0 + 4498: 0c0d bf 0x44b2 // 44b2 + 449a: 3842 cmpnei r0, 2 + 449c: 080d bt 0x44b6 // 44b6 + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 449e: 333c movi r3, 60 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 44a0: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 44a2: 3301 movi r3, 1 + 44a4: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 44aa: 6c0f mov r0, r3 + 44ac: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 44ae: 3300 movi r3, 0 + 44b0: 07be br 0x442c // 442c + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 44b2: 338c movi r3, 140 + 44b4: 07f6 br 0x44a0 // 44a0 + para->triggerlevel[i] = 100; + 44b6: 3364 movi r3, 100 + 44b8: 07f4 br 0x44a0 // 44a0 + 44ba: 0000 bkpt + 44bc: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000044c0 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44c0: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 44c2: 3314 movi r3, 20 + 44c4: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 44c6: 3306 movi r3, 6 + 44c8: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 44ca: 3305 movi r3, 5 + 44cc: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 44ce: 3328 movi r3, 40 + 44d0: a162 st.b r3, (r1, 0x2) + para->longpress_time = 8; //默认参数 - 8 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 44d2: 32a0 movi r2, 160 + para->longpress_time = 8; //默认参数 - 8 + 44d4: 3308 movi r3, 8 + 44d6: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 44d8: 4241 lsli r2, r2, 1 + 44da: 596e addi r3, r1, 4 + 44dc: 210d addi r1, 14 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 44de: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 44e0: ab40 st.h r2, (r3, 0x0) + switch(level){ + 44e2: 0c0d bf 0x44fc // 44fc + 44e4: 3840 cmpnei r0, 0 + 44e6: 0c09 bf 0x44f8 // 44f8 + 44e8: 3842 cmpnei r0, 2 + 44ea: 0809 bt 0x44fc // 44fc + case 0x02: + para->triggerlevel[i] = 60; //高灵敏度 默认参数 - 60 + 44ec: 343c movi r4, 60 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 44ee: ab85 st.h r4, (r3, 0xa) + 44f0: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 44f6: 1481 pop r4 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 44f8: 348c movi r4, 140 + 44fa: 07fa br 0x44ee // 44ee + para->triggerlevel[i] = 100; + 44fc: 3464 movi r4, 100 + 44fe: 07f8 br 0x44ee // 44ee + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004500 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4500: 14d4 push r4-r7, r15 + 4502: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4504: 8043 ld.b r2, (r0, 0x3) + 4506: 1038 lrw r1, 0x740c // 4564 + 4508: 3000 movi r0, 0 + 450a: e3fffa5d bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 450e: 8440 ld.b r2, (r4, 0x0) + 4510: 1036 lrw r1, 0x7424 // 4568 + 4512: 3000 movi r0, 0 + 4514: e3fffa58 bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4518: 8441 ld.b r2, (r4, 0x1) + 451a: 1035 lrw r1, 0x7440 // 456c + 451c: 3000 movi r0, 0 + 451e: e3fffa53 bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4522: 8442 ld.b r2, (r4, 0x2) + 4524: 1033 lrw r1, 0x745e // 4570 + 4526: 3000 movi r0, 0 + 4528: e3fffa4e bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 452c: 9446 ld.w r2, (r4, 0x18) + 452e: 3000 movi r0, 0 + 4530: 1031 lrw r1, 0x747b // 4574 + 4532: e3fffa49 bsr 0x39c4 // 39c4 + 4536: 2403 addi r4, 4 + 4538: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 453a: 10f0 lrw r7, 0x7497 // 4578 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 453c: 10d0 lrw r6, 0x74b0 // 457c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 453e: e3ffeb93 bsr 0x1c64 // 1c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4542: 8c60 ld.h r3, (r4, 0x0) + 4544: 6c97 mov r2, r5 + 4546: 6c5f mov r1, r7 + 4548: 3000 movi r0, 0 + 454a: e3fffa3d bsr 0x39c4 // 39c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 454e: 8c65 ld.h r3, (r4, 0xa) + 4550: 6c97 mov r2, r5 + 4552: 6c5b mov r1, r6 + 4554: 3000 movi r0, 0 + 4556: 2500 addi r5, 1 + 4558: e3fffa36 bsr 0x39c4 // 39c4 + for(i=0;i + } + +} + 4562: 1494 pop r4-r7, r15 + 4564: 0000740c .long 0x0000740c + 4568: 00007424 .long 0x00007424 + 456c: 00007440 .long 0x00007440 + 4570: 0000745e .long 0x0000745e + 4574: 0000747b .long 0x0000747b + 4578: 00007497 .long 0x00007497 + 457c: 000074b0 .long 0x000074b0 + +Disassembly of section .text.ADC_Init: + +00004580 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4580: 14d0 push r15 + 4582: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4584: e3ffef9a bsr 0x24b8 // 24b8 + ADC12_Software_Reset(); //ADC软件复位 + 4588: e3ffeff8 bsr 0x2578 // 2578 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 458c: 3101 movi r1, 1 + 458e: 3002 movi r0, 2 + 4590: e3ffefde bsr 0x254c // 254c + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4594: 3301 movi r3, 1 + 4596: b861 st.w r3, (r14, 0x4) + 4598: 3302 movi r3, 2 + 459a: b860 st.w r3, (r14, 0x0) + 459c: 3200 movi r2, 0 + 459e: 3306 movi r3, 6 + 45a0: 3101 movi r1, 1 + 45a2: 3001 movi r0, 1 + 45a4: e3fff024 bsr 0x25ec // 25ec + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 45a8: 3003 movi r0, 3 + 45aa: e3fff05f bsr 0x2668 // 2668 + + ADC12_ConversionChannel_Config(ADC12_ADCIN9,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 45ae: 3300 movi r3, 0 + 45b0: 3200 movi r2, 0 + 45b2: 3100 movi r1, 0 + 45b4: 3009 movi r0, 9 + 45b6: e3fff125 bsr 0x2800 // 2800 + + ADC12_CMD(ENABLE); + 45ba: 3001 movi r0, 1 + 45bc: e3ffefe4 bsr 0x2584 // 2584 + + ADC12_ready_wait(); + 45c0: e3ffeff6 bsr 0x25ac // 25ac + + ADC12_Control(ADC12_START); + 45c4: 3008 movi r0, 8 + 45c6: e3ffefab bsr 0x251c // 251c + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 45ca: 3237 movi r2, 55 + 45cc: 3100 movi r1, 0 + 45ce: 1003 lrw r0, 0x2000026a // 45d8 + 45d0: e3ffe9ca bsr 0x1964 // 1964 <__memset_fast> +} + 45d4: 1402 addi r14, r14, 8 + 45d6: 1490 pop r15 + 45d8: 2000026a .long 0x2000026a + +Disassembly of section .text.Thermistor_Array_Transform: + +000045dc : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 45dc: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 45de: 1070 lrw r3, 0x79bd // 461c + 45e0: 640c cmphs r3, r0 +{ + 45e2: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 45e4: 0c16 bf 0x4610 // 4610 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 45e6: 33a1 movi r3, 161 + 45e8: 4365 lsli r3, r3, 5 + 45ea: 640c cmphs r3, r0 + 45ec: 0814 bt 0x4614 // 4614 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 45f2: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 45f6: 8a60 ld.h r3, (r2, 0x0) + 45f8: 644c cmphs r3, r1 + 45fa: 0c04 bf 0x4602 // 4602 + 45fc: 8a61 ld.h r3, (r2, 0x2) + 45fe: 644c cmphs r3, r1 + 4600: 0c07 bf 0x460e // 460e + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 460c: 30fa movi r0, 250 +} + 460e: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 4610: 3000 movi r0, 0 + 4612: 07fe br 0x460e // 460e + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4614: 30c8 movi r0, 200 + 4616: 4001 lsli r0, r0, 1 + 4618: 07fb br 0x460e // 460e + 461a: 0000 bkpt + 461c: 000079bd .long 0x000079bd + 4620: 00006e3a .long 0x00006e3a + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004624 : + +void Calculate_ADC_Sample_Average(void) +{ + 4624: 14d4 push r4-r7, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4628: 3200 movi r2, 0 + uint32_t temp_val = 0; + 462a: 3000 movi r0, 0 + 462c: 6d5f mov r5, r7 + temp_val += g_adc.dataBuff[i]; + 462e: 5a66 addi r3, r2, 2 + 4630: 4361 lsli r3, r3, 1 + 4632: 60dc addu r3, r7 + 4634: 8323 ld.b r1, (r3, 0x3) + 4636: 8364 ld.b r3, (r3, 0x4) + 4638: 4368 lsli r3, r3, 8 + 463a: 2200 addi r2, 1 + 463c: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4644: 310a movi r1, 10 + 4646: e3fff8bf bsr 0x37c4 // 37c4 <__udivsi3> + 464a: 74c1 zexth r3, r0 + 464c: 748c zextb r2, r3 + 464e: 11c2 lrw r6, 0x2000026d // 46d4 + 4650: 4b68 lsri r3, r3, 8 + 4652: a661 st.b r3, (r6, 0x1) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4654: a663 st.b r3, (r6, 0x3) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"voltage:%d mV",g_adc.voltage); + + + //温度转换 + 平滑滤波 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4656: 877c ld.b r3, (r7, 0x1c) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4658: a743 st.b r2, (r7, 0x3) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 465a: a745 st.b r2, (r7, 0x5) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 465c: 4368 lsli r3, r3, 8 + 465e: 875b ld.b r2, (r7, 0x1b) + 4660: 6cc8 or r3, r2 + 4662: 3b09 cmphsi r3, 10 + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4664: 6d03 mov r4, r0 + 4666: 2617 addi r6, 24 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4668: 0c1a bf 0x469c // 469c + g_adc.temp_index = 0; + 466a: 3300 movi r3, 0 + 466c: a660 st.b r3, (r6, 0x0) + 466e: a661 st.b r3, (r6, 0x1) + 4670: 3200 movi r2, 0 + temp_val = 0; + 4672: 3000 movi r0, 0 + + /*温度采集数组已满 - 转换显示温度*/ + for(U16_T i=0;i + } + g_adc.temp_val = temp_val / Temp_DataBuff_Size; + 468c: 310a movi r1, 10 + 468e: e3fff89b bsr 0x37c4 // 37c4 <__udivsi3> + 4692: 7401 zexth r0, r0 + 4694: 1071 lrw r3, 0x20000287 // 46d8 + 4696: a300 st.b r0, (r3, 0x0) + 4698: 4808 lsri r0, r0, 8 + 469a: a301 st.b r0, (r3, 0x1) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"------Gather %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 469c: 7491 zexth r2, r4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 469e: 859c ld.b r4, (r5, 0x1c) + 46a0: 857b ld.b r3, (r5, 0x1b) + 46a2: 4488 lsli r4, r4, 8 + 46a4: 6d0c or r4, r3 + 46a6: 5c62 addi r3, r4, 1 + 46a8: 74cd zexth r3, r3 + 46aa: a660 st.b r3, (r6, 0x0) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 46ac: 100c lrw r0, 0x2710 // 46dc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 46ae: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 46b0: 102c lrw r1, 0xce4 // 46e0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 46b2: a661 st.b r3, (r6, 0x1) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 46b4: 7c08 mult r0, r2 + 46b6: 604a subu r1, r2 + 46b8: e3fff874 bsr 0x37a0 // 37a0 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 46bc: 240d addi r4, 14 + 46be: 7401 zexth r0, r0 + 46c0: 4481 lsli r4, r4, 1 + 46c2: e3ffff8d bsr 0x45dc // 45dc + 46c6: 6114 addu r4, r5 + 46c8: a403 st.b r0, (r4, 0x3) + 46ca: 4808 lsri r0, r0, 8 + 46cc: a404 st.b r0, (r4, 0x4) + + //Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d ",Thermistor_Array_Transform(temp_val)); +} + 46ce: 1494 pop r4-r7, r15 + 46d0: 2000026a .long 0x2000026a + 46d4: 2000026d .long 0x2000026d + 46d8: 20000287 .long 0x20000287 + 46dc: 00002710 .long 0x00002710 + 46e0: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.ADC_Sample_Task: + +000046e4 : + +void ADC_Sample_Task(void){ + 46e4: 14d3 push r4-r6, r15 + static U32_T adc_tick = 0; + + if (SysTick_1ms - g_adc.sample_tick > 10) { + 46e6: 1188 lrw r4, 0x2000026a // 4784 + 46e8: 3020 movi r0, 32 + 46ea: 6010 addu r0, r4 + 46ec: 8054 ld.b r2, (r0, 0x14) + 46ee: 8073 ld.b r3, (r0, 0x13) + 46f0: 4248 lsli r2, r2, 8 + 46f2: 6c8c or r2, r3 + 46f4: 8075 ld.b r3, (r0, 0x15) + 46f6: 4370 lsli r3, r3, 16 + 46f8: 6c8c or r2, r3 + 46fa: 8076 ld.b r3, (r0, 0x16) + 46fc: 11a3 lrw r5, 0x200000b4 // 4788 + 46fe: 4378 lsli r3, r3, 24 + 4700: 9520 ld.w r1, (r5, 0x0) + 4702: 6cc8 or r3, r2 + 4704: 604e subu r1, r3 + 4706: 390a cmphsi r1, 11 + 4708: 0c28 bf 0x4758 // 4758 + g_adc.sample_tick = SysTick_100us; + 470a: 1161 lrw r3, 0x200000b0 // 478c + 470c: 3233 movi r2, 51 + 470e: 9360 ld.w r3, (r3, 0x0) + 4710: 6090 addu r2, r4 + 4712: 4b28 lsri r1, r3, 8 + 4714: a260 st.b r3, (r2, 0x0) + 4716: a221 st.b r1, (r2, 0x1) + + ADC12_SEQEND_wait(0); + 4718: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_100us; + 471a: 4b30 lsri r1, r3, 16 + 471c: 4b78 lsri r3, r3, 24 + 471e: a263 st.b r3, (r2, 0x3) + 4720: a222 st.b r1, (r2, 0x2) + ADC12_SEQEND_wait(0); + 4722: e3ffef4f bsr 0x25c0 // 25c0 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4726: 84c2 ld.b r6, (r4, 0x2) + 4728: 8461 ld.b r3, (r4, 0x1) + 472a: 46c8 lsli r6, r6, 8 + 472c: 6d8c or r6, r3 + 472e: 3000 movi r0, 0 + 4730: e3ffef54 bsr 0x25d8 // 25d8 + 4734: 5e66 addi r3, r6, 2 + 4736: 4361 lsli r3, r3, 1 + 4738: 60d0 addu r3, r4 + 473a: a303 st.b r0, (r3, 0x3) + 473c: 4808 lsri r0, r0, 8 + 473e: a304 st.b r0, (r3, 0x4) + + g_adc.index++; + 4740: 8462 ld.b r3, (r4, 0x2) + 4742: 8441 ld.b r2, (r4, 0x1) + 4744: 4368 lsli r3, r3, 8 + 4746: 6cc8 or r3, r2 + 4748: 2300 addi r3, 1 + 474a: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 474c: 3b09 cmphsi r3, 10 + 474e: 5c42 addi r2, r4, 1 + 4750: 0813 bt 0x4776 // 4776 + g_adc.index++; + 4752: a461 st.b r3, (r4, 0x1) + 4754: 4b68 lsri r3, r3, 8 + 4756: a261 st.b r3, (r2, 0x1) + g_adc.index = 0; + g_adc.full_flag = 1; + } + } + + if (g_adc.full_flag == 0x01) { + 4758: 8460 ld.b r3, (r4, 0x0) + 475a: 3b41 cmpnei r3, 1 + 475c: 080c bt 0x4774 // 4774 + if (SysTick_1ms - adc_tick >= 100) { + 475e: 104d lrw r2, 0x200000cc // 4790 + 4760: 9220 ld.w r1, (r2, 0x0) + 4762: 9560 ld.w r3, (r5, 0x0) + 4764: 60c6 subu r3, r1 + 4766: 3163 movi r1, 99 + 4768: 64c4 cmphs r1, r3 + 476a: 0805 bt 0x4774 // 4774 + adc_tick = SysTick_1ms; + 476c: 9560 ld.w r3, (r5, 0x0) + 476e: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4770: e3ffff5a bsr 0x4624 // 4624 + } + } +} + 4774: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4776: 3300 movi r3, 0 + 4778: a461 st.b r3, (r4, 0x1) + 477a: a261 st.b r3, (r2, 0x1) + g_adc.full_flag = 1; + 477c: 3301 movi r3, 1 + 477e: a460 st.b r3, (r4, 0x0) + 4780: 07ec br 0x4758 // 4758 + 4782: 0000 bkpt + 4784: 2000026a .long 0x2000026a + 4788: 200000b4 .long 0x200000b4 + 478c: 200000b0 .long 0x200000b0 + 4790: 200000cc .long 0x200000cc + +Disassembly of section .text.Get_Temp_Val: + +00004794 : + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4794: 1063 lrw r3, 0x2000026a // 47a0 + 4796: 831e ld.b r0, (r3, 0x1e) + 4798: 835d ld.b r2, (r3, 0x1d) + 479a: 4008 lsli r0, r0, 8 + 479c: 6c08 or r0, r2 +} + 479e: 783c jmp r15 + 47a0: 2000026a .long 0x2000026a + +Disassembly of section .text.HT1621_WR_Data: + +000047a4 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 47a4: 14d4 push r4-r7, r15 + 47a6: 6d43 mov r5, r0 + 47a8: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 47b2: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 47b4: 3103 movi r1, 3 + 47b6: 9600 ld.w r0, (r6, 0x0) + 47b8: e3ffeb63 bsr 0x1e7e // 1e7e + nop; + 47bc: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 47be: 74d6 sextb r3, r5 + 47c0: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 47c2: 3104 movi r1, 4 + 47c4: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 47c6: 0c0d bf 0x47e0 // 47e0 + HT1621_DATA_HIGH; + 47c8: e3ffeb57 bsr 0x1e76 // 1e76 + nop; + 47cc: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 47ce: 3103 movi r1, 3 + 47d0: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 47d2: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 47da: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 47e0: e3ffeb4f bsr 0x1e7e // 1e7e + 47e4: 07f4 br 0x47cc // 47cc + 47e6: 0000 bkpt + 47e8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000047ec : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 47ec: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 47ee: 108b lrw r4, 0x2000004c // 4818 +{ + 47f0: 6d43 mov r5, r0 + HT1621_CS_LOW; + 47f2: 3100 movi r1, 0 + 47f4: 9400 ld.w r0, (r4, 0x0) + 47f6: e3ffeb44 bsr 0x1e7e // 1e7e + nop; + 47fa: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 47fc: 3104 movi r1, 4 + 47fe: 3080 movi r0, 128 + 4800: e3ffffd2 bsr 0x47a4 // 47a4 + HT1621_WR_Data(cmd,8); + 4804: 6c17 mov r0, r5 + 4806: 3108 movi r1, 8 + 4808: e3ffffce bsr 0x47a4 // 47a4 + HT1621_CS_HIGH; + 480c: 9400 ld.w r0, (r4, 0x0) + 480e: 3100 movi r1, 0 + 4810: e3ffeb33 bsr 0x1e76 // 1e76 + nop; + 4814: 6c03 mov r0, r0 +} + 4816: 1492 pop r4-r5, r15 + 4818: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +0000481c : +void HT1621_Init(void){ + 481c: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 481e: 1188 lrw r4, 0x2000004c // 48bc + 4820: 3200 movi r2, 0 + 4822: 9400 ld.w r0, (r4, 0x0) + 4824: 3100 movi r1, 0 + 4826: e3ffeab1 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,1,Output); + 482a: 9400 ld.w r0, (r4, 0x0) + 482c: 3200 movi r2, 0 + 482e: 3101 movi r1, 1 + 4830: e3ffeaac bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,3,Output); + 4834: 9400 ld.w r0, (r4, 0x0) + 4836: 3200 movi r2, 0 + 4838: 3103 movi r1, 3 + 483a: e3ffeaa7 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,4,Output); + 483e: 3200 movi r2, 0 + 4840: 9400 ld.w r0, (r4, 0x0) + 4842: 3104 movi r1, 4 + 4844: e3ffeaa2 bsr 0x1d88 // 1d88 + GPIO_DriveStrength_EN(GPIOA0,0); + 4848: 9400 ld.w r0, (r4, 0x0) + 484a: 3100 movi r1, 0 + 484c: e3ffeb0e bsr 0x1e68 // 1e68 + GPIO_DriveStrength_EN(GPIOA0,1); + 4850: 9400 ld.w r0, (r4, 0x0) + 4852: 3101 movi r1, 1 + 4854: e3ffeb0a bsr 0x1e68 // 1e68 + GPIO_DriveStrength_EN(GPIOA0,3); + 4858: 9400 ld.w r0, (r4, 0x0) + 485a: 3103 movi r1, 3 + 485c: e3ffeb06 bsr 0x1e68 // 1e68 + GPIO_DriveStrength_EN(GPIOA0,4); + 4860: 9400 ld.w r0, (r4, 0x0) + 4862: 3104 movi r1, 4 + 4864: e3ffeb02 bsr 0x1e68 // 1e68 + HT1621_CS_LOW; + 4868: 9400 ld.w r0, (r4, 0x0) + 486a: 3100 movi r1, 0 + 486c: e3ffeb09 bsr 0x1e7e // 1e7e + HT1621_WR_LOW; + 4870: 9400 ld.w r0, (r4, 0x0) + 4872: 3103 movi r1, 3 + 4874: e3ffeb05 bsr 0x1e7e // 1e7e + HT1621_RD_LOW; + 4878: 9400 ld.w r0, (r4, 0x0) + 487a: 3101 movi r1, 1 + 487c: e3ffeb01 bsr 0x1e7e // 1e7e + HT1621_DATA_LOW; + 4880: 3104 movi r1, 4 + 4882: 9400 ld.w r0, (r4, 0x0) + 4884: e3ffeafd bsr 0x1e7e // 1e7e + HT1621_WR_CMD(HT1621_BIAS); + 4888: 3052 movi r0, 82 + 488a: e3ffffb1 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_RC256); + 488e: 3030 movi r0, 48 + 4890: e3ffffae bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_SYSDIS); + 4894: 3000 movi r0, 0 + 4896: e3ffffab bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_WDTDIS); + 489a: 300a movi r0, 10 + 489c: e3ffffa8 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_SYSEN); + 48a0: 3002 movi r0, 2 + 48a2: e3ffffa5 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_LCDON); + 48a6: 3006 movi r0, 6 + 48a8: e3ffffa2 bsr 0x47ec // 47ec + HT1621_WR_CMD(HT1621_BIOFF); + 48ac: 3010 movi r0, 16 + 48ae: e3ffff9f bsr 0x47ec // 47ec + HT1621_CS_HIGH; + 48b2: 9400 ld.w r0, (r4, 0x0) + 48b4: 3100 movi r1, 0 + 48b6: e3ffeae0 bsr 0x1e76 // 1e76 +} + 48ba: 1491 pop r4, r15 + 48bc: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Clear: + +000048c0 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 48c0: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 48c2: 3212 movi r2, 18 + 48c4: 3100 movi r1, 0 + + HT1621_CS_LOW; + 48c6: 10b1 lrw r5, 0x2000004c // 4908 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 48c8: 1011 lrw r0, 0x200002b0 // 490c + 48ca: e3ffe84d bsr 0x1964 // 1964 <__memset_fast> + HT1621_CS_LOW; + 48ce: 3100 movi r1, 0 + 48d0: 9500 ld.w r0, (r5, 0x0) + 48d2: e3ffead6 bsr 0x1e7e // 1e7e + nop; + 48d6: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 48d8: 3103 movi r1, 3 + 48da: 30a0 movi r0, 160 + 48dc: e3ffff64 bsr 0x47a4 // 47a4 + HT1621_WR_Data(0,6); + 48e0: 3106 movi r1, 6 + 48e2: 3000 movi r0, 0 + 48e4: e3ffff60 bsr 0x47a4 // 47a4 + 48e8: 3412 movi r4, 18 + 48ea: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 48fa: 9500 ld.w r0, (r5, 0x0) + 48fc: 3100 movi r1, 0 + 48fe: e3ffeabc bsr 0x1e76 // 1e76 + nop; + 4902: 6c03 mov r0, r0 +} + 4904: 1492 pop r4-r5, r15 + 4906: 0000 bkpt + 4908: 2000004c .long 0x2000004c + 490c: 200002b0 .long 0x200002b0 + +Disassembly of section .text.HT1621_ALLON: + +00004910 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 4910: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4912: 10af lrw r5, 0x2000004c // 494c + 4914: 3100 movi r1, 0 + 4916: 9500 ld.w r0, (r5, 0x0) + 4918: e3ffeab3 bsr 0x1e7e // 1e7e + nop; + 491c: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 491e: 3103 movi r1, 3 + 4920: 30a0 movi r0, 160 + 4922: e3ffff41 bsr 0x47a4 // 47a4 + HT1621_WR_Data(0,6); + 4926: 3106 movi r1, 6 + 4928: 3000 movi r0, 0 + 492a: e3ffff3d bsr 0x47a4 // 47a4 + 492e: 3412 movi r4, 18 + 4930: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4940: 9500 ld.w r0, (r5, 0x0) + 4942: 3100 movi r1, 0 + 4944: e3ffea99 bsr 0x1e76 // 1e76 + nop; + 4948: 6c03 mov r0, r0 +} + 494a: 1492 pop r4-r5, r15 + 494c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00004950 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 4950: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 4952: 1091 lrw r4, 0x2000004c // 4994 + 4954: 3100 movi r1, 0 + 4956: 9400 ld.w r0, (r4, 0x0) + 4958: e3ffea93 bsr 0x1e7e // 1e7e + nop; + 495c: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 495e: 3103 movi r1, 3 + 4960: 30a0 movi r0, 160 + 4962: e3ffff21 bsr 0x47a4 // 47a4 + HT1621_WR_Data(0,6); + 4966: 3106 movi r1, 6 + 4968: 3000 movi r0, 0 + 496a: e3ffff1d bsr 0x47a4 // 47a4 + 496e: 3500 movi r5, 0 + for(U8_T i=0;i + 4972: 60d4 addu r3, r5 + 4974: 830c ld.b r0, (r3, 0xc) + 4976: 4004 lsli r0, r0, 4 + 4978: 7400 zextb r0, r0 + 497a: 3104 movi r1, 4 + 497c: 2500 addi r5, 1 + 497e: e3ffff13 bsr 0x47a4 // 47a4 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 4986: 9400 ld.w r0, (r4, 0x0) + 4988: 3100 movi r1, 0 + 498a: e3ffea76 bsr 0x1e76 // 1e76 + nop; + 498e: 6c03 mov r0, r0 +} + 4990: 1492 pop r4-r5, r15 + 4992: 0000 bkpt + 4994: 2000004c .long 0x2000004c + 4998: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Set_Temperature_Display: + +0000499c : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 499c: 14d4 push r4-r7, r15 + 499e: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 49a0: 310a movi r1, 10 + 49a2: b801 st.w r0, (r14, 0x4) + 49a4: e3fff710 bsr 0x37c4 // 37c4 <__udivsi3> + 49a8: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 49aa: 310a movi r1, 10 + 49ac: 6c17 mov r0, r5 + 49ae: e3fff70b bsr 0x37c4 // 37c4 <__udivsi3> + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + HT1621.show_cache[6] = 0x00; + HT1621.show_cache[5] &= 0x08; + + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49b2: 10fb lrw r7, 0x716e // 4a1c + 49b4: 7400 zextb r0, r0 + 49b6: 109b lrw r4, 0x200002a4 // 4a20 + 49b8: 601c addu r0, r7 + HT1621.show_cache[9] &= 0x08; + 49ba: 3608 movi r6, 8 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49bc: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[9] &= 0x08; + 49be: 8455 ld.b r2, (r4, 0x15) + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49c0: 4904 lsri r0, r1, 4 + HT1621.show_cache[9] &= 0x08; + 49c2: 6898 and r2, r6 + HT1621.show_cache[9] |= Diaital[tmp_H] >> 4; + 49c4: 6c80 or r2, r0 + 49c6: a455 st.b r2, (r4, 0x15) + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 49c8: 320f movi r2, 15 + 49ca: 6848 and r1, r2 + 49cc: a436 st.b r1, (r4, 0x16) + U8_T tmp_L = tmp_Integer%10; + 49ce: 6c17 mov r0, r5 + 49d0: 310a movi r1, 10 + HT1621.show_cache[10] |= Diaital[tmp_H]&0x0F; + 49d2: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 49d4: e3fff70a bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 49d8: 7400 zextb r0, r0 + 49da: 601c addu r0, r7 + 49dc: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 49de: 9840 ld.w r2, (r14, 0x0) + 49e0: 6c57 mov r1, r5 + 49e2: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 49e4: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[8] |= Diaital[tmp_L]&0x0F; + 49e6: a434 st.b r1, (r4, 0x14) + U8_T tmp_quantile = tmp%10; + 49e8: 6c0f mov r0, r3 + 49ea: 310a movi r1, 10 + 49ec: e3fff6fe bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 49f0: 7401 zexth r0, r0 + 49f2: 61c0 addu r7, r0 + 49f4: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[6] |= Diaital[tmp_quantile]&0x0F; + 49f6: 9840 ld.w r2, (r14, 0x0) + 49f8: 688c and r2, r3 + 49fa: a452 st.b r2, (r4, 0x12) + + //显示“℃” + HT1621.show_cache[3] |= 0x08; + 49fc: 844f ld.b r2, (r4, 0xf) + 49fe: 6c98 or r2, r6 + 4a00: a44f st.b r2, (r4, 0xf) + HT1621.show_cache[4] |= 0x0B; + 4a02: 310b movi r1, 11 + 4a04: 8450 ld.b r2, (r4, 0x10) + HT1621.show_cache[5] |= Diaital[tmp_quantile] >> 4; + 4a06: 4b64 lsri r3, r3, 4 + HT1621.show_cache[7] |= Diaital[tmp_L] >> 4; + 4a08: 4da4 lsri r5, r5, 4 + HT1621.show_cache[4] |= 0x0B; + 4a0a: 6c84 or r2, r1 + HT1621.show_cache[5] |= 0x08; + 4a0c: 6cd8 or r3, r6 + + //显示小数点 + HT1621.show_cache[7] |= 0x08; + 4a0e: 6d58 or r5, r6 + HT1621.show_cache[4] |= 0x0B; + 4a10: a450 st.b r2, (r4, 0x10) + HT1621.show_cache[5] |= 0x08; + 4a12: a471 st.b r3, (r4, 0x11) + HT1621.show_cache[7] |= 0x08; + 4a14: a4b3 st.b r5, (r4, 0x13) +} + 4a16: 1402 addi r14, r14, 8 + 4a18: 1494 pop r4-r7, r15 + 4a1a: 0000 bkpt + 4a1c: 0000716e .long 0x0000716e + 4a20: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Local_Temperature_Display: + +00004a24 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 4a24: 14d4 push r4-r7, r15 + 4a26: 1422 subi r14, r14, 8 + U8_T tmp_Integer = tmp/10; + 4a28: 310a movi r1, 10 + 4a2a: b801 st.w r0, (r14, 0x4) + 4a2c: e3fff6cc bsr 0x37c4 // 37c4 <__udivsi3> + 4a30: 7540 zextb r5, r0 + U8_T tmp_quantile = tmp%10; + U8_T tmp_H = tmp_Integer/10; + 4a32: 310a movi r1, 10 + 4a34: 6c17 mov r0, r5 + 4a36: e3fff6c7 bsr 0x37c4 // 37c4 <__udivsi3> + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4a3a: 10f9 lrw r7, 0x716e // 4a9c + 4a3c: 7400 zextb r0, r0 + 4a3e: 601c addu r0, r7 + 4a40: 80c0 ld.b r6, (r0, 0x0) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4a42: 320f movi r2, 15 + 4a44: 6c5b mov r1, r6 + 4a46: 1097 lrw r4, 0x200002a4 // 4aa0 + 4a48: 6848 and r1, r2 + 4a4a: a43d st.b r1, (r4, 0x1d) + U8_T tmp_L = tmp_Integer%10; + 4a4c: 6c17 mov r0, r5 + 4a4e: 310a movi r1, 10 + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4a50: b840 st.w r2, (r14, 0x0) + U8_T tmp_L = tmp_Integer%10; + 4a52: e3fff6cb bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4a56: 7400 zextb r0, r0 + 4a58: 601c addu r0, r7 + 4a5a: 80a0 ld.b r5, (r0, 0x0) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4a5c: 9840 ld.w r2, (r14, 0x0) + 4a5e: 6c57 mov r1, r5 + 4a60: 6848 and r1, r2 + U8_T tmp_quantile = tmp%10; + 4a62: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4a64: a43b st.b r1, (r4, 0x1b) + U8_T tmp_quantile = tmp%10; + 4a66: 6c0f mov r0, r3 + 4a68: 310a movi r1, 10 + 4a6a: e3fff6bf bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4a6e: 7401 zexth r0, r0 + 4a70: 61c0 addu r7, r0 + 4a72: 8760 ld.b r3, (r7, 0x0) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4a74: 9840 ld.w r2, (r14, 0x0) + 4a76: 688c and r2, r3 + + //显示“℃” + HT1621.show_cache[16] |= 0x08; + HT1621.show_cache[11] |= 0x0B; + 4a78: 8437 ld.b r1, (r4, 0x17) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4a7a: a459 st.b r2, (r4, 0x19) + HT1621.show_cache[11] |= 0x0B; + 4a7c: 300b movi r0, 11 + HT1621.show_cache[16] |= 0x08; + 4a7e: 3208 movi r2, 8 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4a80: 4ec4 lsri r6, r6, 4 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4a82: 4b64 lsri r3, r3, 4 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4a84: 4da4 lsri r5, r5, 4 + HT1621.show_cache[16] |= 0x08; + 4a86: 6d88 or r6, r2 + HT1621.show_cache[11] |= 0x0B; + 4a88: 6c40 or r1, r0 + HT1621.show_cache[12] |= 0x08; + 4a8a: 6cc8 or r3, r2 + + //显示小数点 + HT1621.show_cache[14] |= 0x08; + 4a8c: 6d48 or r5, r2 + HT1621.show_cache[16] |= 0x08; + 4a8e: a4dc st.b r6, (r4, 0x1c) + HT1621.show_cache[11] |= 0x0B; + 4a90: a437 st.b r1, (r4, 0x17) + HT1621.show_cache[12] |= 0x08; + 4a92: a478 st.b r3, (r4, 0x18) + HT1621.show_cache[14] |= 0x08; + 4a94: a4ba st.b r5, (r4, 0x1a) +} + 4a96: 1402 addi r14, r14, 8 + 4a98: 1494 pop r4-r7, r15 + 4a9a: 0000 bkpt + 4a9c: 0000716e .long 0x0000716e + 4aa0: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Control_Mode: + +00004aa4 : +* 1 -> 制热模式 +* 2 -> 送风模式 +* 3 -> 除湿 +*/ +void Control_Mode(U8_T mode){ + switch(mode){ + 4aa4: 3842 cmpnei r0, 2 + 4aa6: 0c0f bf 0x4ac4 // 4ac4 + 4aa8: 3844 cmpnei r0, 4 + 4aaa: 0c16 bf 0x4ad6 // 4ad6 + 4aac: 3840 cmpnei r0, 0 + 4aae: 080a bt 0x4ac2 // 4ac2 + case 0x00: + HT1621.show_cache[0] &= ~0x07; + 4ab0: 104e lrw r2, 0x200002a4 // 4ae8 + 4ab2: 3107 movi r1, 7 + 4ab4: 826c ld.b r3, (r2, 0xc) + 4ab6: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ab8: 822d ld.b r1, (r2, 0xd) + 4aba: 3980 bclri r1, 0 + 4abc: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x04; + 4abe: 3ba2 bseti r3, 2 + HT1621.show_cache[0] |= 0x02; + break; + case 0x04: + HT1621.show_cache[0] &= ~0x07; + HT1621.show_cache[1] &= ~0x01; + HT1621.show_cache[0] |= 0x01; + 4ac0: a26c st.b r3, (r2, 0xc) +// case 0x03: +// HT1621.show_cache[0] &= ~0x07; +// HT1621.show_cache[1] |= 0x01; +// break; + } +} + 4ac2: 783c jmp r15 + HT1621.show_cache[0] &= ~0x07; + 4ac4: 1049 lrw r2, 0x200002a4 // 4ae8 + 4ac6: 3107 movi r1, 7 + 4ac8: 826c ld.b r3, (r2, 0xc) + 4aca: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4acc: 822d ld.b r1, (r2, 0xd) + 4ace: 3980 bclri r1, 0 + 4ad0: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x02; + 4ad2: 3ba1 bseti r3, 1 + 4ad4: 07f6 br 0x4ac0 // 4ac0 + HT1621.show_cache[0] &= ~0x07; + 4ad6: 1045 lrw r2, 0x200002a4 // 4ae8 + 4ad8: 3107 movi r1, 7 + 4ada: 826c ld.b r3, (r2, 0xc) + 4adc: 68c5 andn r3, r1 + HT1621.show_cache[1] &= ~0x01; + 4ade: 822d ld.b r1, (r2, 0xd) + 4ae0: 3980 bclri r1, 0 + 4ae2: a22d st.b r1, (r2, 0xd) + HT1621.show_cache[0] |= 0x01; + 4ae4: 3ba0 bseti r3, 0 + 4ae6: 07ed br 0x4ac0 // 4ac0 + 4ae8: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Control_wind_velocity: + +00004aec : +* 2 -> 高风速 +* 3 -> 自动风速 +* 4 -> 风速停 +*/ +void Control_wind_velocity(U8_T velocity) +{ + 4aec: 14d0 push r15 + switch(velocity) + 4aee: 3803 cmphsi r0, 4 + 4af0: 080f bt 0x4b0e // 4b0e + 4af2: 107a lrw r3, 0x200002a4 // 4b58 + 4af4: e3ffe104 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4af8: 0e0c0214 .long 0x0e0c0214 + { + case 1: //低风速 + HT1621.show_cache[2] = 0x0C; + 4afc: 320c movi r2, 12 + HT1621.show_cache[3] &= ~0x03; + HT1621.show_cache[1] &= ~0x02; + break; + case 2: //中风速 + HT1621.show_cache[2] = 0x0F; + 4afe: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4b00: 834f ld.b r2, (r3, 0xf) + 4b02: 3a80 bclri r2, 0 + 4b04: 3a81 bclri r2, 1 + 4b06: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[1] &= ~0x02; + 4b08: 834d ld.b r2, (r3, 0xd) + 4b0a: 3a81 bclri r2, 1 + 4b0c: a34d st.b r2, (r3, 0xd) + } + break; + default: + break; + } +} + 4b0e: 1490 pop r15 + HT1621.show_cache[2] = 0x0F; + 4b10: 320f movi r2, 15 + 4b12: 07f6 br 0x4afe // 4afe + HT1621.show_cache[2] = 0x0F; + 4b14: 320f movi r2, 15 + 4b16: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4b18: 834f ld.b r2, (r3, 0xf) + 4b1a: 3aa0 bseti r2, 0 + 4b1c: 3aa1 bseti r2, 1 + 4b1e: 07f4 br 0x4b06 // 4b06 + HT1621.show_cache[1] |= 0x02; + 4b20: 834d ld.b r2, (r3, 0xd) + 4b22: 3aa1 bseti r2, 1 + 4b24: a34d st.b r2, (r3, 0xd) + if(HT1621.wind_velocity == 0) //关风扇 + 4b26: 8343 ld.b r2, (r3, 0x3) + 4b28: 3a40 cmpnei r2, 0 + 4b2a: 0807 bt 0x4b38 // 4b38 + HT1621.show_cache[2] = 0x0F; + 4b2c: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x03; + 4b2e: 834f ld.b r2, (r3, 0xf) + 4b30: 3a80 bclri r2, 0 + 4b32: 3a81 bclri r2, 1 + HT1621.show_cache[3] |= 0x03; + 4b34: a34f st.b r2, (r3, 0xf) +} + 4b36: 07ec br 0x4b0e // 4b0e + }else if(HT1621.wind_velocity == 1) //低风速 + 4b38: 3a41 cmpnei r2, 1 + 4b3a: 0803 bt 0x4b40 // 4b40 + HT1621.show_cache[2] = 0x0C; + 4b3c: 320c movi r2, 12 + 4b3e: 07f7 br 0x4b2c // 4b2c + }else if(HT1621.wind_velocity == 2) //中风速 + 4b40: 3a42 cmpnei r2, 2 + 4b42: 0803 bt 0x4b48 // 4b48 + HT1621.show_cache[2] = 0x0F; + 4b44: 320f movi r2, 15 + 4b46: 07f3 br 0x4b2c // 4b2c + }else if(HT1621.wind_velocity == 3) //高风速 + 4b48: 3a43 cmpnei r2, 3 + 4b4a: 0be2 bt 0x4b0e // 4b0e + HT1621.show_cache[2] = 0x0F; + 4b4c: 320f movi r2, 15 + 4b4e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] |= 0x03; + 4b50: 834f ld.b r2, (r3, 0xf) + 4b52: 3aa0 bseti r2, 0 + 4b54: 3aa1 bseti r2, 1 + 4b56: 07ef br 0x4b34 // 4b34 + 4b58: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Control_Prompt_Text: + +00004b5c : +*函数功能:显示 提示文字 +*参数功能:state : 0 -> 关 +* 1 -> 开 +*/ +void Control_Prompt_Text(U8_T state){ + if(state == 0x01){ + 4b5c: 3841 cmpnei r0, 1 + 4b5e: 1070 lrw r3, 0x200002a4 // 4b9c + 4b60: 0810 bt 0x4b80 // 4b80 + HT1621.show_cache[0] |= 0x08; //模式 + 4b62: 3008 movi r0, 8 + 4b64: 832c ld.b r1, (r3, 0xc) + 4b66: 6c40 or r1, r0 + 4b68: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x0C; //风速 + 4b6a: 832d ld.b r1, (r3, 0xd) + 4b6c: 39a2 bseti r1, 2 + 4b6e: 39a3 bseti r1, 3 + 4b70: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4b72: 832f ld.b r1, (r3, 0xf) + 4b74: 39a2 bseti r1, 2 + HT1621.show_cache[9] |= 0x08; //室内温度 + 4b76: 8355 ld.b r2, (r3, 0x15) + HT1621.show_cache[3] |= 0x04; //设置温度 + 4b78: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[9] |= 0x08; //室内温度 + 4b7a: 6c80 or r2, r0 + }else{ + HT1621.show_cache[0] &= ~0x08; //模式 + HT1621.show_cache[1] &= ~0x0C; //风速 + HT1621.show_cache[3] &= ~0x04; //设置温度 + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4b7c: a355 st.b r2, (r3, 0x15) + } +} + 4b7e: 783c jmp r15 + HT1621.show_cache[0] &= ~0x08; //模式 + 4b80: 834c ld.b r2, (r3, 0xc) + 4b82: 3a83 bclri r2, 3 + 4b84: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x0C; //风速 + 4b86: 834d ld.b r2, (r3, 0xd) + 4b88: 3a82 bclri r2, 2 + 4b8a: 3a83 bclri r2, 3 + 4b8c: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x04; //设置温度 + 4b8e: 834f ld.b r2, (r3, 0xf) + 4b90: 3a82 bclri r2, 2 + 4b92: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[9] &= ~0x08; //室内温度 + 4b94: 8355 ld.b r2, (r3, 0x15) + 4b96: 3a83 bclri r2, 3 + 4b98: 07f2 br 0x4b7c // 4b7c + 4b9a: 0000 bkpt + 4b9c: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Controlled_Buzzer: + +00004ba0 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 4ba0: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 4ba2: 3841 cmpnei r0, 1 + 4ba4: 0c0a bf 0x4bb8 // 4bb8 + 4ba6: 3840 cmpnei r0, 0 + 4ba8: 0c04 bf 0x4bb0 // 4bb0 + 4baa: 3842 cmpnei r0, 2 + 4bac: 0c12 bf 0x4bd0 // 4bd0 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 4bae: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 4bb0: 3010 movi r0, 16 + 4bb2: e3fffe1d bsr 0x47ec // 47ec + break; + 4bb6: 07fc br 0x4bae // 4bae + HT1621_WR_CMD(HT1621_BLON); + 4bb8: 3012 movi r0, 18 + 4bba: e3fffe19 bsr 0x47ec // 47ec + HT1621.buz_control = 0x01; + 4bbe: 1069 lrw r3, 0x200002a4 // 4be0 + 4bc0: 3220 movi r2, 32 + 4bc2: 608c addu r2, r3 + 4bc4: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 4bc6: a222 st.b r1, (r2, 0x2) + HT1621.buz_tick = SysTick_1ms; + 4bc8: 1047 lrw r2, 0x200000b4 // 4be4 + 4bca: 9240 ld.w r2, (r2, 0x0) + 4bcc: b34d st.w r2, (r3, 0x34) +} + 4bce: 07f0 br 0x4bae // 4bae + HT1621_WR_CMD(HT1621_BLON); + 4bd0: 3012 movi r0, 18 + 4bd2: e3fffe0d bsr 0x47ec // 47ec + HT1621.buz_control = 0x02; + 4bd6: 1063 lrw r3, 0x200002a4 // 4be0 + 4bd8: 3220 movi r2, 32 + 4bda: 608c addu r2, r3 + 4bdc: 3102 movi r1, 2 + 4bde: 07f4 br 0x4bc6 // 4bc6 + 4be0: 200002a4 .long 0x200002a4 + 4be4: 200000b4 .long 0x200000b4 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00004be8 : +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ +void Controlled_LCD_Backlight(U8_T state){ + switch (state) { + 4be8: 3840 cmpnei r0, 0 + 4bea: 0c04 bf 0x4bf2 // 4bf2 + 4bec: 3841 cmpnei r0, 1 + 4bee: 0c07 bf 0x4bfc // 4bfc + break; + case 0x01: + EPT0->CMPC=0; + break; + } +} + 4bf0: 783c jmp r15 + EPT0->CMPC=3000; + 4bf2: 1065 lrw r3, 0x20000020 // 4c04 + 4bf4: 1045 lrw r2, 0xbb8 // 4c08 + 4bf6: 9360 ld.w r3, (r3, 0x0) + EPT0->CMPC=0; + 4bf8: b34d st.w r2, (r3, 0x34) +} + 4bfa: 07fb br 0x4bf0 // 4bf0 + EPT0->CMPC=0; + 4bfc: 1062 lrw r3, 0x20000020 // 4c04 + 4bfe: 3200 movi r2, 0 + 4c00: 9360 ld.w r3, (r3, 0x0) + 4c02: 07fb br 0x4bf8 // 4bf8 + 4c04: 20000020 .long 0x20000020 + 4c08: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.Set_Device_ADDR: + +00004c0c : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4c0c: 14d4 push r4-r7, r15 + 4c0e: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c10: 11a3 lrw r5, 0x716e // 4c9c + 4c12: 1184 lrw r4, 0x200002a4 // 4ca0 + 4c14: 6014 addu r0, r5 + HT1621.show_cache[7] &= 0x08; + 4c16: 3308 movi r3, 8 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 4c18: 6c87 mov r2, r1 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c1a: 8000 ld.b r0, (r0, 0x0) + HT1621.show_cache[7] &= 0x08; + 4c1c: 8433 ld.b r1, (r4, 0x13) + 4c1e: 684c and r1, r3 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c20: 48c4 lsri r6, r0, 4 + 4c22: 6c58 or r1, r6 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4c24: 370f movi r7, 15 + HT1621.show_cache[7] |= Diaital[page] >> 4; + 4c26: a433 st.b r1, (r4, 0x13) + HT1621.show_cache[17] = 0x00; + HT1621.show_cache[16] &= 0x08; + HT1621.show_cache[15] = 0x00; + HT1621.show_cache[14] &= 0x08; + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4c28: 8438 ld.b r1, (r4, 0x18) + 4c2a: 684c and r1, r3 + HT1621.show_cache[8] |= Diaital[page]&0x0F; + 4c2c: 681c and r0, r7 + 4c2e: a414 st.b r0, (r4, 0x14) + HT1621.show_cache[14] &= 0x08; + 4c30: 84da ld.b r6, (r4, 0x1a) + HT1621.show_cache[12] &= 0x08; + 4c32: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 4c34: 6c0b mov r0, r2 + 4c36: 3164 movi r1, 100 + HT1621.show_cache[14] &= 0x08; + 4c38: 698c and r6, r3 + HT1621.show_cache[12] &= 0x08; + 4c3a: b862 st.w r3, (r14, 0x8) + U8_T tmp_H = tmp_Integer/10; + 4c3c: b841 st.w r2, (r14, 0x4) + 4c3e: e3fff5c3 bsr 0x37c4 // 37c4 <__udivsi3> + + //显示设置地址 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c42: 7400 zextb r0, r0 + 4c44: 6014 addu r0, r5 + 4c46: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[16] &= 0x08; + 4c48: 9862 ld.w r3, (r14, 0x8) + 4c4a: 841c ld.b r0, (r4, 0x1c) + 4c4c: 68c0 and r3, r0 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c4e: 4904 lsri r0, r1, 4 + 4c50: 6cc0 or r3, r0 + U8_T tmp_Integer = addr/10; + 4c52: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c54: 685c and r1, r7 + HT1621.show_cache[16] |= Diaital[tmp_H] >> 4; + 4c56: a47c st.b r3, (r4, 0x1c) + HT1621.show_cache[17] |= Diaital[tmp_H]&0x0F; + 4c58: a43d st.b r1, (r4, 0x1d) + U8_T tmp_Integer = addr/10; + 4c5a: 6c0b mov r0, r2 + 4c5c: 310a movi r1, 10 + 4c5e: e3fff5b3 bsr 0x37c4 // 37c4 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 4c62: 7400 zextb r0, r0 + 4c64: 310a movi r1, 10 + 4c66: e3fff5c1 bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c6a: 7400 zextb r0, r0 + 4c6c: 6014 addu r0, r5 + 4c6e: 8060 ld.b r3, (r0, 0x0) + 4c70: 4b24 lsri r1, r3, 4 + U8_T tmp_quantile = addr%10; + 4c72: 9841 ld.w r2, (r14, 0x4) + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c74: 68dc and r3, r7 + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c76: 6d84 or r6, r1 + HT1621.show_cache[15] |= Diaital[tmp_L]&0x0F; + 4c78: a47b st.b r3, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_L] >> 4; + 4c7a: a4da st.b r6, (r4, 0x1a) + U8_T tmp_quantile = addr%10; + 4c7c: 310a movi r1, 10 + 4c7e: 6c0b mov r0, r2 + 4c80: e3fff5b4 bsr 0x37e8 // 37e8 <__umodsi3> + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c84: 7400 zextb r0, r0 + 4c86: 6140 addu r5, r0 + 4c88: 8560 ld.b r3, (r5, 0x0) + 4c8a: 4b44 lsri r2, r3, 4 + 4c8c: 9820 ld.w r1, (r14, 0x0) + 4c8e: 6c84 or r2, r1 + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c90: 69cc and r7, r3 + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4c92: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4c94: a4f9 st.b r7, (r4, 0x19) +} + 4c96: 1403 addi r14, r14, 12 + 4c98: 1494 pop r4-r7, r15 + 4c9a: 0000 bkpt + 4c9c: 0000716e .long 0x0000716e + 4ca0: 200002a4 .long 0x200002a4 + +Disassembly of section .text.Set_Temp_Difference: + +00004ca4 : + + //显示1 + HT1621.show_cache[8] = 0x00; + HT1621.show_cache[7] &= 0x08; + + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4ca4: 1057 lrw r2, 0x200002a4 // 4d00 + HT1621.show_cache[7] &= 0x08; + 4ca6: 3108 movi r1, 8 + 4ca8: 8273 ld.b r3, (r2, 0x13) + 4caa: 68c4 and r3, r1 + HT1621.show_cache[7] |= Diaital[2] >> 4; + 4cac: 3ba0 bseti r3, 0 + 4cae: 3ba1 bseti r3, 1 + 4cb0: a273 st.b r3, (r2, 0x13) + HT1621.show_cache[8] |= Diaital[2]&0x0F; + 4cb2: 330d movi r3, 13 + 4cb4: a274 st.b r3, (r2, 0x14) + + //清楚原数字 + HT1621.show_cache[17] = 0x00; + 4cb6: 3300 movi r3, 0 + 4cb8: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] &= 0x08; + 4cba: 827c ld.b r3, (r2, 0x1c) + 4cbc: 68c4 and r3, r1 + 4cbe: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] = 0x00; + 4cc0: 3300 movi r3, 0 + 4cc2: a27b st.b r3, (r2, 0x1b) + HT1621.show_cache[14] &= 0x08; + 4cc4: 827a ld.b r3, (r2, 0x1a) + 4cc6: 68c4 and r3, r1 + 4cc8: a27a st.b r3, (r2, 0x1a) + HT1621.show_cache[13] = 0x00; + HT1621.show_cache[12] &= 0x08; + 4cca: 8278 ld.b r3, (r2, 0x18) + 4ccc: 684c and r1, r3 + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 4cce: 3300 movi r3, 0 + 4cd0: 2b08 subi r3, 9 + 4cd2: 60c0 addu r3, r0 + 4cd4: 74cc zextb r3, r3 + 4cd6: 3b09 cmphsi r3, 10 + 4cd8: 0c08 bf 0x4ce8 // 4ce8 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 4cda: 3808 cmphsi r0, 9 + 4cdc: 0810 bt 0x4cfc // 4cfc + tmp_quantile = 9 - diff; + 4cde: 3309 movi r3, 9 + 4ce0: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[14] = 0x02; + 4ce2: 3002 movi r0, 2 + tmp_quantile = 9 - diff; + 4ce4: 74cc zextb r3, r3 + HT1621.show_cache[14] = 0x02; + 4ce6: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] = 0x00; + } + + HT1621.show_cache[12] |= Diaital[tmp_quantile] >> 4; + 4ce8: 1007 lrw r0, 0x716e // 4d04 + 4cea: 60c0 addu r3, r0 + 4cec: 8360 ld.b r3, (r3, 0x0) + 4cee: 4b04 lsri r0, r3, 4 + 4cf0: 6c40 or r1, r0 + 4cf2: a238 st.b r1, (r2, 0x18) + HT1621.show_cache[13] |= Diaital[tmp_quantile]&0x0F; + 4cf4: 310f movi r1, 15 + 4cf6: 68c4 and r3, r1 + 4cf8: a279 st.b r3, (r2, 0x19) +} + 4cfa: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 4cfc: 3300 movi r3, 0 + 4cfe: 07f5 br 0x4ce8 // 4ce8 + 4d00: 200002a4 .long 0x200002a4 + 4d04: 0000716e .long 0x0000716e + +Disassembly of section .text.HT1621_Refresh_Task: + +00004d08 : + + +void HT1621_Refresh_Task(void){ + 4d08: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 4d0a: 10b4 lrw r5, 0x200000b4 // 4d58 + 4d0c: 1094 lrw r4, 0x200002a4 // 4d5c + 4d0e: 9560 ld.w r3, (r5, 0x0) + 4d10: 944b ld.w r2, (r4, 0x2c) + 4d12: 60ca subu r3, r2 + 4d14: 1053 lrw r2, 0x1f3 // 4d60 + 4d16: 64c8 cmphs r2, r3 + 4d18: 0806 bt 0x4d24 // 4d24 + HT1621.Refresh_timing = HT1621_Refresh_time; + 4d1a: 33fa movi r3, 250 + 4d1c: 4361 lsli r3, r3, 1 + 4d1e: b46b st.w r3, (r4, 0x2c) + + HT1621_Refresh_Data(); + 4d20: e3fffe18 bsr 0x4950 // 4950 + +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 4d24: 1070 lrw r3, 0x200002c4 // 4d64 + 4d26: 8342 ld.b r2, (r3, 0x2) + 4d28: 3a41 cmpnei r2, 1 + 4d2a: 080f bt 0x4d48 // 4d48 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 4d2c: 942d ld.w r1, (r4, 0x34) + 4d2e: 9540 ld.w r2, (r5, 0x0) + 4d30: 6086 subu r2, r1 + 4d32: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4d34: 6484 cmphs r1, r2 + 4d36: 0808 bt 0x4d46 // 4d46 + HT1621.buz_tick = SysTick_1ms; + 4d38: 9540 ld.w r2, (r5, 0x0) + 4d3a: b44d st.w r2, (r4, 0x34) + HT1621_WR_CMD(HT1621_BIOFF); + 4d3c: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 4d3e: 3200 movi r2, 0 + 4d40: a342 st.b r2, (r3, 0x2) + HT1621_WR_CMD(HT1621_BIOFF); + 4d42: e3fffd55 bsr 0x47ec // 47ec + Controlled_Buzzer(0x00); + } + } + + +} + 4d46: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 4d48: 3a42 cmpnei r2, 2 + 4d4a: 0bfe bt 0x4d46 // 4d46 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 4d4c: 942d ld.w r1, (r4, 0x34) + 4d4e: 9540 ld.w r2, (r5, 0x0) + 4d50: 6086 subu r2, r1 + 4d52: 1024 lrw r1, 0x1f3 // 4d60 + 4d54: 07f0 br 0x4d34 // 4d34 + 4d56: 0000 bkpt + 4d58: 200000b4 .long 0x200000b4 + 4d5c: 200002a4 .long 0x200002a4 + 4d60: 000001f3 .long 0x000001f3 + 4d64: 200002c4 .long 0x200002c4 + +Disassembly of section .text.TemCtrl_Init: + +00004d68 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 4d68: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 4d6a: 1286 lrw r4, 0x200002e0 // 4e80 + 4d6c: 3215 movi r2, 21 + 4d6e: 3100 movi r1, 0 + 4d70: 6c13 mov r0, r4 + 4d72: e3ffe5f9 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 4d76: 1264 lrw r3, 0x200000a8 // 4e84 + 4d78: 9360 ld.w r3, (r3, 0x0) + 4d7a: 3b80 bclri r3, 0 + 4d7c: 3b40 cmpnei r3, 0 + 4d7e: 0c7a bf 0x4e72 // 4e72 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 4d80: 1222 lrw r1, 0x74cf // 4e88 + 4d82: 3000 movi r0, 0 + 4d84: e3fff620 bsr 0x39c4 // 39c4 + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 4d88: 1261 lrw r3, 0x200000a4 // 4e8c + 4d8a: 30ff movi r0, 255 + 4d8c: 9320 ld.w r1, (r3, 0x0) + 4d8e: 6840 and r1, r0 + 4d90: 3940 cmpnei r1, 0 + 4d92: 0c05 bf 0x4d9c // 4d9c + 4d94: 9340 ld.w r2, (r3, 0x0) + 4d96: 6880 and r2, r0 + 4d98: 3a41 cmpnei r2, 1 + 4d9a: 085f bt 0x4e58 // 4e58 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 4d9c: 9340 ld.w r2, (r3, 0x0) + 4d9e: 4227 lsli r1, r2, 7 + 4da0: 307f movi r0, 127 + 4da2: 8442 ld.b r2, (r4, 0x2) + 4da4: 6880 and r2, r0 + 4da6: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 4da8: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 8) & 0xFF) <= 0x03) //读取的温控模式状态合法 + 4daa: 9340 ld.w r2, (r3, 0x0) + 4dac: 4a48 lsri r2, r2, 8 + 4dae: 7488 zextb r2, r2 + 4db0: 3a03 cmphsi r2, 4 + 4db2: 0857 bt 0x4e60 // 4e60 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 4db4: 9340 ld.w r2, (r3, 0x0) + 4db6: 3107 movi r1, 7 + 4db8: 4a48 lsri r2, r2, 8 + 4dba: 6884 and r2, r1 + 4dbc: 3070 movi r0, 112 + 4dbe: 8422 ld.b r1, (r4, 0x2) + 4dc0: 4244 lsli r2, r2, 4 + 4dc2: 6841 andn r1, r0 + 4dc4: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 4dc6: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 4dc8: 9340 ld.w r2, (r3, 0x0) + 4dca: 4a50 lsri r2, r2, 16 + 4dcc: 7488 zextb r2, r2 + 4dce: 3a03 cmphsi r2, 4 + 4dd0: 084c bt 0x4e68 // 4e68 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 4dd2: 9340 ld.w r2, (r3, 0x0) + 4dd4: 3107 movi r1, 7 + 4dd6: 4a50 lsri r2, r2, 16 + 4dd8: 6884 and r2, r1 + 4dda: 300e movi r0, 14 + 4ddc: 8422 ld.b r1, (r4, 0x2) + 4dde: 4241 lsli r2, r2, 1 + 4de0: 6841 andn r1, r0 + 4de2: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 4de4: a442 st.b r2, (r4, 0x2) + } + + if((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) //读取的温控设置温度合法 + 4de6: 9340 ld.w r2, (r3, 0x0) + 4de8: 4a58 lsri r2, r2, 24 + 4dea: 3a0f cmphsi r2, 16 + 4dec: 0c48 bf 0x4e7c // 4e7c + 4dee: 3284 movi r2, 132 + 4df0: 4256 lsli r2, r2, 22 + 4df2: 9320 ld.w r1, (r3, 0x0) + 4df4: 2a00 subi r2, 1 + 4df6: 6448 cmphs r2, r1 + 4df8: 0c42 bf 0x4e7c // 4e7c + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 4dfa: 9360 ld.w r3, (r3, 0x0) + 4dfc: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 4dfe: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 4e00: e3fffcca bsr 0x4794 // 4794 + 4e04: 1163 lrw r3, 0x20000264 // 4e90 + 4e06: 8362 ld.b r3, (r3, 0x2) + 4e08: 320a movi r2, 10 + 4e0a: 7cc8 mult r3, r2 + 4e0c: 2b59 subi r3, 90 + 4e0e: 600c addu r0, r3 + 4e10: 7401 zexth r0, r0 + 4e12: 4868 lsri r3, r0, 8 + 4e14: a469 st.b r3, (r4, 0x9) + 4e16: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 4e18: 310a movi r1, 10 + 4e1a: e3fff4d5 bsr 0x37c4 // 37c4 <__udivsi3> +// TempCtrl.CardState = 0x01; //默认插卡 +// TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + SYSCON->UREG0 = 0x00000000; + 4e1e: 107e lrw r3, 0x2000005c // 4e94 + 4e20: 3200 movi r2, 0 + 4e22: 9360 ld.w r3, (r3, 0x0) + 4e24: 23ff addi r3, 256 + 4e26: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 4e28: 8442 ld.b r2, (r4, 0x2) + 4e2a: 4239 lsli r1, r2, 25 + 4e2c: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 4e2e: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 4e30: 4128 lsli r1, r1, 8 + 4e32: 9300 ld.w r0, (r3, 0x0) + 4e34: 6c40 or r1, r0 + 4e36: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 4e38: 423c lsli r1, r2, 28 + 4e3a: 493d lsri r1, r1, 29 + 4e3c: 9300 ld.w r0, (r3, 0x0) + 4e3e: 4130 lsli r1, r1, 16 + 4e40: 6c40 or r1, r0 + 4e42: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 4e44: 8421 ld.b r1, (r4, 0x1) + 4e46: 9300 ld.w r0, (r3, 0x0) + 4e48: 4138 lsli r1, r1, 24 + 4e4a: 6c40 or r1, r0 + 4e4c: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 4e4e: 9320 ld.w r1, (r3, 0x0) + 4e50: 4a47 lsri r2, r2, 7 + 4e52: 6c84 or r2, r1 + 4e54: b340 st.w r2, (r3, 0x0) +} + 4e56: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 4e58: 8442 ld.b r2, (r4, 0x2) + 4e5a: 317f movi r1, 127 + 4e5c: 6884 and r2, r1 + 4e5e: 07a5 br 0x4da8 // 4da8 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 4e60: 8442 ld.b r2, (r4, 0x2) + 4e62: 3170 movi r1, 112 + 4e64: 6885 andn r2, r1 + 4e66: 07b0 br 0x4dc6 // 4dc6 + TempCtrl.TemState_Now.fan = FAN_MID; + 4e68: 8442 ld.b r2, (r4, 0x2) + 4e6a: 310e movi r1, 14 + 4e6c: 6885 andn r2, r1 + 4e6e: 3aa2 bseti r2, 2 + 4e70: 07ba br 0x4de4 // 4de4 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 4e72: 8462 ld.b r3, (r4, 0x2) + 4e74: 320e movi r2, 14 + 4e76: 68c9 andn r3, r2 + 4e78: 3ba2 bseti r3, 2 + 4e7a: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 4e7c: 3318 movi r3, 24 + 4e7e: 07c0 br 0x4dfe // 4dfe + 4e80: 200002e0 .long 0x200002e0 + 4e84: 200000a8 .long 0x200000a8 + 4e88: 000074cf .long 0x000074cf + 4e8c: 200000a4 .long 0x200000a4 + 4e90: 20000264 .long 0x20000264 + 4e94: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00004e98 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 4e98: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4e9a: 1031 lrw r1, 0x200002e0 // 4edc + 4e9c: 8162 ld.b r3, (r1, 0x2) + 4e9e: 748e sextb r2, r3 + 4ea0: 3adf btsti r2, 31 + 4ea2: 0c14 bf 0x4eca // 4eca + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 4ea4: 4359 lsli r2, r3, 25 + 4ea6: 4a5d lsri r2, r2, 29 + 4ea8: 3a42 cmpnei r2, 2 + 4eaa: 0c11 bf 0x4ecc // 4ecc + 4eac: 3a44 cmpnei r2, 4 + 4eae: 0c13 bf 0x4ed4 // 4ed4 + 4eb0: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 4eb2: 3270 movi r2, 112 + 4eb4: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 4eb6: 0802 bt 0x4eba // 4eba + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 4eb8: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //冷制 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 4eba: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 4ebc: 8142 ld.b r2, (r1, 0x2) + 4ebe: 4259 lsli r2, r2, 25 + 4ec0: 4a5d lsri r2, r2, 29 + 4ec2: 1028 lrw r1, 0x74e8 // 4ee0 + 4ec4: 3000 movi r0, 0 + 4ec6: e3fff57f bsr 0x39c4 // 39c4 +} + 4eca: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 4ecc: 3270 movi r2, 112 + 4ece: 68c9 andn r3, r2 + 4ed0: 3ba6 bseti r3, 6 + 4ed2: 07f4 br 0x4eba // 4eba + TempCtrl.TemState_Now.mode = MODEL_COLD; //冷制 + 4ed4: 3270 movi r2, 112 + 4ed6: 68c9 andn r3, r2 + 4ed8: 07f1 br 0x4eba // 4eba + 4eda: 0000 bkpt + 4edc: 200002e0 .long 0x200002e0 + 4ee0: 000074e8 .long 0x000074e8 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00004ee4 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 4ee4: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4ee6: 1071 lrw r3, 0x200002e0 // 4f28 + 4ee8: 8342 ld.b r2, (r3, 0x2) + 4eea: 744a sextb r1, r2 + 4eec: 39df btsti r1, 31 + 4eee: 0c15 bf 0x4f18 // 4f18 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 4ef0: 421c lsli r0, r2, 28 + 4ef2: 481d lsri r0, r0, 29 + 4ef4: 3803 cmphsi r0, 4 + 4ef6: 0815 bt 0x4f20 // 4f20 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 4ef8: 8342 ld.b r2, (r3, 0x2) + 4efa: 310e movi r1, 14 + 4efc: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 4efe: e3ffdeff bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4f02: 0211 .short 0x0211 + 4f04: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 4f06: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; + 4f08: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 4f0a: 8342 ld.b r2, (r3, 0x2) + 4f0c: 425c lsli r2, r2, 28 + 4f0e: 4a5d lsri r2, r2, 29 + 4f10: 1027 lrw r1, 0x74f1 // 4f2c + 4f12: 3000 movi r0, 0 + 4f14: e3fff558 bsr 0x39c4 // 39c4 +} + 4f18: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 4f1a: 3aa1 bseti r2, 1 + 4f1c: 3aa2 bseti r2, 2 + 4f1e: 07f5 br 0x4f08 // 4f08 + TempCtrl.TemState_Now.fan = FAN_LOW; + 4f20: 310e movi r1, 14 + 4f22: 6885 andn r2, r1 + 4f24: 3aa1 bseti r2, 1 + 4f26: 07f1 br 0x4f08 // 4f08 + 4f28: 200002e0 .long 0x200002e0 + 4f2c: 000074f1 .long 0x000074f1 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00004f30 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 4f30: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4f32: 106a lrw r3, 0x200002e0 // 4f58 + 4f34: 8342 ld.b r2, (r3, 0x2) + 4f36: 748a sextb r2, r2 + 4f38: 3adf btsti r2, 31 + 4f3a: 0c0b bf 0x4f50 // 4f50 + { + return ; + } + + TemSet = TempCtrl.TemState_Now.set_t;//TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 4f3c: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 4f3e: 3a05 cmphsi r2, 6 + 4f40: 0c09 bf 0x4f52 // 4f52 + { + TemSet--; //超过最低温度,就减 + 4f42: 2a00 subi r2, 1 + 4f44: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 4f46: 1026 lrw r1, 0x74f8 // 4f5c + 4f48: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 4f4a: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 4f4c: e3fff53c bsr 0x39c4 // 39c4 +} + 4f50: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 4f52: 3205 movi r2, 5 + 4f54: 07f9 br 0x4f46 // 4f46 + 4f56: 0000 bkpt + 4f58: 200002e0 .long 0x200002e0 + 4f5c: 000074f8 .long 0x000074f8 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00004f60 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 4f60: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 4f62: 106a lrw r3, 0x200002e0 // 4f88 + 4f64: 8342 ld.b r2, (r3, 0x2) + 4f66: 748a sextb r2, r2 + 4f68: 3adf btsti r2, 31 + 4f6a: 0c0c bf 0x4f82 // 4f82 + { + return ; + } + + TemSet = TempCtrl.TemState_Now.set_t;//TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 4f6c: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 4f6e: 3122 movi r1, 34 + 4f70: 6484 cmphs r1, r2 + 4f72: 0c09 bf 0x4f84 // 4f84 + { + TemSet++; + 4f74: 2200 addi r2, 1 + 4f76: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 4f78: 1025 lrw r1, 0x7501 // 4f8c + 4f7a: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 4f7c: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 4f7e: e3fff523 bsr 0x39c4 // 39c4 +} + 4f82: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 4f84: 3223 movi r2, 35 + 4f86: 07f9 br 0x4f78 // 4f78 + 4f88: 200002e0 .long 0x200002e0 + 4f8c: 00007501 .long 0x00007501 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00004f90 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 4f90: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 4f92: 104b lrw r2, 0x200002e0 // 4fbc + 4f94: 8262 ld.b r3, (r2, 0x2) + 4f96: 4b27 lsri r1, r3, 7 + 4f98: 3940 cmpnei r1, 0 + 4f9a: 0c0d bf 0x4fb4 // 4fb4 + 4f9c: 3941 cmpnei r1, 1 + 4f9e: 080b bt 0x4fb4 // 4fb4 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 4fa0: 317f movi r1, 127 + 4fa2: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 4fa4: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 4fa6: 8242 ld.b r2, (r2, 0x2) + 4fa8: 4a47 lsri r2, r2, 7 + 4faa: 1026 lrw r1, 0x7501 // 4fc0 + 4fac: 3000 movi r0, 0 + 4fae: e3fff50b bsr 0x39c4 // 39c4 +} + 4fb2: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 4fb4: 3100 movi r1, 0 + 4fb6: 297f subi r1, 128 + 4fb8: 6cc4 or r3, r1 + 4fba: 07f5 br 0x4fa4 // 4fa4 + 4fbc: 200002e0 .long 0x200002e0 + 4fc0: 00007501 .long 0x00007501 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00004fc4 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 4fc4: 14d2 push r4-r5, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 4fc6: 1196 lrw r4, 0x200002e0 // 509c + 4fc8: 8420 ld.b r1, (r4, 0x0) + 4fca: 3940 cmpnei r1, 0 + 4fcc: 0802 bt 0x4fd0 // 4fd0 + 4fce: 3123 movi r1, 35 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 4fd0: 8441 ld.b r2, (r4, 0x1) + 4fd2: 3a40 cmpnei r2, 0 + 4fd4: 0802 bt 0x4fd8 // 4fd8 + 4fd6: 3223 movi r2, 35 + switch(TempCtrl.TemState_Now.on_off) // + 4fd8: 8462 ld.b r3, (r4, 0x2) + 4fda: 4b07 lsri r0, r3, 7 + 4fdc: 3840 cmpnei r0, 0 + 4fde: 0c2c bf 0x5036 // 5036 + 4fe0: 3841 cmpnei r0, 1 + 4fe2: 085c bt 0x509a // 509a + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 4fe4: 4319 lsli r0, r3, 25 + 4fe6: 481d lsri r0, r0, 29 + 4fe8: 3842 cmpnei r0, 2 + 4fea: 0c23 bf 0x5030 // 5030 + 4fec: 3844 cmpnei r0, 4 + 4fee: 0c24 bf 0x5036 // 5036 + 4ff0: 3840 cmpnei r0, 0 + 4ff2: 0854 bt 0x509a // 509a + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 4ff4: 5a03 subi r0, r2, 1 + 4ff6: 6405 cmplt r1, r0 + 4ff8: 0c0d bf 0x5012 // 5012 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY2_COLD_CLOSE; + 4ffa: 11aa lrw r5, 0x2000004c // 50a0 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 4ffc: 3b80 bclri r3, 0 + RLY2_COLD_CLOSE; + 4ffe: 310f movi r1, 15 + 5000: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5002: a462 st.b r3, (r4, 0x2) + RLY2_COLD_CLOSE; + 5004: e3ffe73d bsr 0x1e7e // 1e7e + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + { + RLY2_COLD_OPEN; + RLY1_HOT_CLOSE; + 5008: 9500 ld.w r0, (r5, 0x0) + 500a: 310e movi r1, 14 + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + RLY1_HOT_CLOSE; + RLY2_COLD_CLOSE; + 500c: e3ffe739 bsr 0x1e7e // 1e7e + 5010: 0437 br 0x507e // 507e + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5012: 2200 addi r2, 1 + 5014: 6449 cmplt r2, r1 + 5016: 0c42 bf 0x509a // 509a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 5018: 3ba0 bseti r3, 0 + 501a: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 501c: 1162 lrw r3, 0x20000264 // 50a4 + 501e: 8361 ld.b r3, (r3, 0x1) + 5020: 3b41 cmpnei r3, 1 + 5022: 0823 bt 0x5068 // 5068 + RLY2_COLD_OPEN; + 5024: 10bf lrw r5, 0x2000004c // 50a0 + 5026: 310f movi r1, 15 + 5028: 9500 ld.w r0, (r5, 0x0) + 502a: e3ffe726 bsr 0x1e76 // 1e76 + 502e: 07ed br 0x5008 // 5008 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 5030: 5a02 addi r0, r2, 1 + 5032: 6441 cmplt r0, r1 + 5034: 0c09 bf 0x5046 // 5046 + RLY1_HOT_CLOSE; + 5036: 10bb lrw r5, 0x2000004c // 50a0 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 5038: 3b80 bclri r3, 0 + RLY1_HOT_CLOSE; + 503a: 310e movi r1, 14 + 503c: 9500 ld.w r0, (r5, 0x0) + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 503e: a462 st.b r3, (r4, 0x2) + RLY1_HOT_CLOSE; + 5040: e3ffe71f bsr 0x1e7e // 1e7e + 5044: 040f br 0x5062 // 5062 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 5046: 2a00 subi r2, 1 + 5048: 6485 cmplt r1, r2 + 504a: 0c28 bf 0x509a // 509a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 504c: 3ba0 bseti r3, 0 + 504e: a462 st.b r3, (r4, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 5050: 1075 lrw r3, 0x20000264 // 50a4 + 5052: 8361 ld.b r3, (r3, 0x1) + 5054: 3b41 cmpnei r3, 1 + 5056: 0809 bt 0x5068 // 5068 + RLY1_HOT_OPEN; + 5058: 10b2 lrw r5, 0x2000004c // 50a0 + 505a: 310e movi r1, 14 + 505c: 9500 ld.w r0, (r5, 0x0) + 505e: e3ffe70c bsr 0x1e76 // 1e76 + RLY2_COLD_CLOSE; + 5062: 9500 ld.w r0, (r5, 0x0) + 5064: 310f movi r1, 15 + 5066: 07d3 br 0x500c // 500c + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 5068: 3b40 cmpnei r3, 0 + 506a: 080a bt 0x507e // 507e + RLY2_COLD_OPEN; + 506c: 10ad lrw r5, 0x2000004c // 50a0 + 506e: 310f movi r1, 15 + 5070: 9500 ld.w r0, (r5, 0x0) + 5072: e3ffe702 bsr 0x1e76 // 1e76 + RLY1_HOT_OPEN; + 5076: 9500 ld.w r0, (r5, 0x0) + 5078: 310e movi r1, 14 + 507a: e3ffe6fe bsr 0x1e76 // 1e76 + if(rf_info.valve_state_last != TempCtrl.TemState_Now.valve) + 507e: 8462 ld.b r3, (r4, 0x2) + 5080: 437f lsli r3, r3, 31 + 5082: 4b7f lsri r3, r3, 31 + 5084: 1049 lrw r2, 0x200004a0 // 50a8 + 5086: 744c zextb r1, r3 + 5088: 8202 ld.b r0, (r2, 0x2) + 508a: 6442 cmpne r0, r1 + 508c: 0c07 bf 0x509a // 509a + { + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + rf_info.valve_flag = 0x01; + 508e: 3100 movi r1, 0 + rf_info.valve_state_last = TempCtrl.TemState_Now.valve; + 5090: a262 st.b r3, (r2, 0x2) + rf_info.valve_flag = 0x01; + 5092: 297f subi r1, 128 + 5094: 8261 ld.b r3, (r2, 0x1) + 5096: 6cc4 or r3, r1 + 5098: a261 st.b r3, (r2, 0x1) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 509a: 1492 pop r4-r5, r15 + 509c: 200002e0 .long 0x200002e0 + 50a0: 2000004c .long 0x2000004c + 50a4: 20000264 .long 0x20000264 + 50a8: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TemCtrl_Pro: + +000050ac : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 50ac: 14d1 push r4, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 50ae: 1117 lrw r0, 0x200000b4 // 5188 + 50b0: 1137 lrw r1, 0x200000d0 // 518c + 50b2: 9040 ld.w r2, (r0, 0x0) + 50b4: 9160 ld.w r3, (r1, 0x0) + 50b6: 608e subu r2, r3 + 50b8: 33fa movi r3, 250 + 50ba: 4362 lsli r3, r3, 2 + 50bc: 648c cmphs r3, r2 + 50be: 0833 bt 0x5124 // 5124 + { + tick = SysTick_1ms; + 50c0: 9060 ld.w r3, (r0, 0x0) + 50c2: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 50c4: e3fffb68 bsr 0x4794 // 4794 + 50c8: 1172 lrw r3, 0x20000264 // 5190 + 50ca: 8362 ld.b r3, (r3, 0x2) + 50cc: 320a movi r2, 10 + 50ce: 7cc8 mult r3, r2 + 50d0: 2b59 subi r3, 90 + 50d2: 600c addu r0, r3 + 50d4: 7401 zexth r0, r0 + 50d6: 1190 lrw r4, 0x200002e0 // 5194 + 50d8: 7480 zextb r2, r0 + 50da: 4868 lsri r3, r0, 8 + 50dc: a448 st.b r2, (r4, 0x8) + 50de: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 50e0: a44c st.b r2, (r4, 0xc) + 50e2: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 50e4: 310a movi r1, 10 + 50e6: e3fff36f bsr 0x37c4 // 37c4 <__udivsi3> + 50ea: a400 st.b r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d",TempCtrl.IndoorTem); + + Tem_Valve_Ctrl(); + 50ec: e3ffff6c bsr 0x4fc4 // 4fc4 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 50f0: 8462 ld.b r3, (r4, 0x2) + 50f2: 3271 movi r2, 113 + 50f4: 6c4f mov r1, r3 + 50f6: 6849 andn r1, r2 + 50f8: 3280 movi r2, 128 + 50fa: 6486 cmpne r1, r2 + 50fc: 083f bt 0x517a // 517a + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 50fe: 3270 movi r2, 112 + 5100: 68c8 and r3, r2 + 5102: 3b40 cmpnei r3, 0 + 5104: 0829 bt 0x5156 // 5156 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 5106: 8461 ld.b r3, (r4, 0x1) + 5108: 8440 ld.b r2, (r4, 0x0) + 510a: 5b27 subi r1, r3, 2 + 510c: 6449 cmplt r2, r1 + 510e: 0c0c bf 0x5126 // 5126 + { + Relay_Stop(); //风速停 + 5110: e0000788 bsr 0x6020 // 6020 + HT1621.wind_velocity = 0; + 5114: 1161 lrw r3, 0x200002a4 // 5198 + 5116: 3200 movi r2, 0 + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 1; + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5118: 8402 ld.b r0, (r4, 0x2) + 511a: 401c lsli r0, r0, 28 + 511c: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 1; + 511e: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5120: e3fffce6 bsr 0x4aec // 4aec + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 5124: 1491 pop r4, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5126: 5b23 subi r1, r3, 1 + 5128: 644a cmpne r2, r1 + 512a: 0806 bt 0x5136 // 5136 + Relay_Low(); //低风速 + 512c: e0000768 bsr 0x5ffc // 5ffc + HT1621.wind_velocity = 1; + 5130: 107a lrw r3, 0x200002a4 // 5198 + 5132: 3201 movi r2, 1 + 5134: 07f2 br 0x5118 // 5118 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 5136: 5b22 addi r1, r3, 1 + 5138: 644a cmpne r2, r1 + 513a: 0806 bt 0x5146 // 5146 + Relay_Mid(); //中风速 + 513c: e000074e bsr 0x5fd8 // 5fd8 + HT1621.wind_velocity = 2; + 5140: 1076 lrw r3, 0x200002a4 // 5198 + 5142: 3202 movi r2, 2 + 5144: 07ea br 0x5118 // 5118 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5146: 2301 addi r3, 2 + 5148: 648d cmplt r3, r2 + 514a: 0fed bf 0x5124 // 5124 + Relay_High(); //高风速 + 514c: e0000734 bsr 0x5fb4 // 5fb4 + HT1621.wind_velocity = 3; + 5150: 1072 lrw r3, 0x200002a4 // 5198 + 5152: 3203 movi r2, 3 + 5154: 07e2 br 0x5118 // 5118 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 5156: 3220 movi r2, 32 + 5158: 648e cmpne r3, r2 + 515a: 0be5 bt 0x5124 // 5124 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 515c: 8461 ld.b r3, (r4, 0x1) + 515e: 8440 ld.b r2, (r4, 0x0) + 5160: 5b27 subi r1, r3, 2 + 5162: 6449 cmplt r2, r1 + 5164: 0bf4 bt 0x514c // 514c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 5166: 5b23 subi r1, r3, 1 + 5168: 644a cmpne r2, r1 + 516a: 0fe9 bf 0x513c // 513c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 516c: 5b22 addi r1, r3, 1 + 516e: 644a cmpne r2, r1 + 5170: 0fde bf 0x512c // 512c + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 5172: 2301 addi r3, 2 + 5174: 648d cmplt r3, r2 + 5176: 0fd7 bf 0x5124 // 5124 + 5178: 07cc br 0x5110 // 5110 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 517a: 74ce sextb r3, r3 + 517c: 3bdf btsti r3, 31 + 517e: 0bd3 bt 0x5124 // 5124 + Relay_Stop(); //风速停 + 5180: e0000750 bsr 0x6020 // 6020 + 5184: 07d0 br 0x5124 // 5124 + 5186: 0000 bkpt + 5188: 200000b4 .long 0x200000b4 + 518c: 200000d0 .long 0x200000d0 + 5190: 20000264 .long 0x20000264 + 5194: 200002e0 .long 0x200002e0 + 5198: 200002a4 .long 0x200002a4 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +0000519c : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 519c: 14d2 push r4-r5, r15 + 519e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 51a0: 112d lrw r1, 0x750f // 5254 + 51a2: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 51a4: 118d lrw r4, 0x200002f5 // 5258 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 51a6: e3fff40f bsr 0x39c4 // 39c4 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 51aa: 8460 ld.b r3, (r4, 0x0) + 51ac: 3b41 cmpnei r3, 1 + 51ae: 11ac lrw r5, 0x200000b4 // 525c + 51b0: 082e bt 0x520c // 520c + { + Debug_Inf.Tick = SysTick_1ms; + 51b2: 9560 ld.w r3, (r5, 0x0) + 51b4: 4b48 lsri r2, r3, 8 + 51b6: a467 st.b r3, (r4, 0x7) + 51b8: a448 st.b r2, (r4, 0x8) + 51ba: 4b50 lsri r2, r3, 16 + 51bc: 4b78 lsri r3, r3, 24 + 51be: a46a st.b r3, (r4, 0xa) + if(Debug_Inf.Page < PAGE5ID) + 51c0: 8462 ld.b r3, (r4, 0x2) + 51c2: 3b04 cmphsi r3, 5 + Debug_Inf.Tick = SysTick_1ms; + 51c4: a449 st.b r2, (r4, 0x9) + if(Debug_Inf.Page < PAGE5ID) + 51c6: 0803 bt 0x51cc // 51cc + { + Debug_Inf.Page++; + 51c8: 2300 addi r3, 1 + 51ca: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 51cc: e3fffb7a bsr 0x48c0 // 48c0 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 51d0: 8462 ld.b r3, (r4, 0x2) + 51d2: 3b42 cmpnei r3, 2 + 51d4: 0806 bt 0x51e0 // 51e0 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 51d6: 8404 ld.b r0, (r4, 0x4) + 51d8: e3fffd66 bsr 0x4ca4 // 4ca4 + } + } + + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 51dc: 1401 addi r14, r14, 4 + 51de: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 51e0: 3b41 cmpnei r3, 1 + 51e2: 0806 bt 0x51ee // 51ee + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 51e4: 8423 ld.b r1, (r4, 0x3) + 51e6: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 51e8: e3fffd12 bsr 0x4c0c // 4c0c + 51ec: 07f8 br 0x51dc // 51dc + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 51ee: 3b43 cmpnei r3, 3 + 51f0: 0804 bt 0x51f8 // 51f8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 51f2: 8425 ld.b r1, (r4, 0x5) + 51f4: 3003 movi r0, 3 + 51f6: 07f9 br 0x51e8 // 51e8 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 51f8: 3b44 cmpnei r3, 4 + 51fa: 0804 bt 0x5202 // 5202 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 51fc: 8426 ld.b r1, (r4, 0x6) + 51fe: 3004 movi r0, 4 + 5200: 07f4 br 0x51e8 // 51e8 + else if(Debug_Inf.Page == PAGE5ID) //暂时无功能 + 5202: 3b45 cmpnei r3, 5 + 5204: 0bec bt 0x51dc // 51dc + Set_Device_ADDR(Debug_Inf.Page,0x00); + 5206: 3100 movi r1, 0 + 5208: 3005 movi r0, 5 + 520a: 07ef br 0x51e8 // 51e8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 520c: 1095 lrw r4, 0x200002e0 // 5260 + 520e: 8462 ld.b r3, (r4, 0x2) + 5210: 74ce sextb r3, r3 + 5212: 3bdf btsti r3, 31 + 5214: 0c17 bf 0x5242 // 5242 + TemCtrl_Model_Set(); //模式切换 + 5216: e3fffe41 bsr 0x4e98 // 4e98 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 521a: 1073 lrw r3, 0x200004a0 // 5264 + 521c: 8340 ld.b r2, (r3, 0x0) + 521e: 3a41 cmpnei r2, 1 + 5220: 080a bt 0x5234 // 5234 + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,ACTIVE); + 5222: 8462 ld.b r3, (r4, 0x2) + 5224: 4379 lsli r3, r3, 25 + 5226: b840 st.w r2, (r14, 0x0) + 5228: 4b7d lsri r3, r3, 29 + 522a: 3204 movi r2, 4 + 522c: 3102 movi r1, 2 + 522e: 3005 movi r0, 5 + 5230: e000049a bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 5234: 106d lrw r3, 0x20000264 // 5268 + 5236: 8364 ld.b r3, (r3, 0x4) + 5238: 3b41 cmpnei r3, 1 + 523a: 0804 bt 0x5242 // 5242 + Controlled_LCD_Backlight(1); + 523c: 3001 movi r0, 1 + 523e: e3fffcd5 bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 5242: 9560 ld.w r3, (r5, 0x0) + 5244: 4b48 lsri r2, r3, 8 + 5246: a470 st.b r3, (r4, 0x10) + 5248: a451 st.b r2, (r4, 0x11) + 524a: 4b50 lsri r2, r3, 16 + 524c: 4b78 lsri r3, r3, 24 + 524e: a452 st.b r2, (r4, 0x12) + 5250: a473 st.b r3, (r4, 0x13) +} + 5252: 07c5 br 0x51dc // 51dc + 5254: 0000750f .long 0x0000750f + 5258: 200002f5 .long 0x200002f5 + 525c: 200000b4 .long 0x200000b4 + 5260: 200002e0 .long 0x200002e0 + 5264: 200004a0 .long 0x200004a0 + 5268: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +0000526c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 526c: 14d2 push r4-r5, r15 + 526e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5270: 112d lrw r1, 0x7524 // 5324 + 5272: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5274: 118d lrw r4, 0x200002f5 // 5328 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 5276: e3fff3a7 bsr 0x39c4 // 39c4 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 527a: 8460 ld.b r3, (r4, 0x0) + 527c: 3b41 cmpnei r3, 1 + 527e: 11ac lrw r5, 0x200000b4 // 532c + 5280: 082e bt 0x52dc // 52dc + { + Debug_Inf.Tick = SysTick_1ms; + 5282: 9560 ld.w r3, (r5, 0x0) + 5284: 4b48 lsri r2, r3, 8 + 5286: a467 st.b r3, (r4, 0x7) + 5288: a448 st.b r2, (r4, 0x8) + 528a: 4b50 lsri r2, r3, 16 + 528c: 4b78 lsri r3, r3, 24 + 528e: a46a st.b r3, (r4, 0xa) + if(Debug_Inf.Page > PAGE1ID) + 5290: 8462 ld.b r3, (r4, 0x2) + 5292: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 5294: a449 st.b r2, (r4, 0x9) + if(Debug_Inf.Page > PAGE1ID) + 5296: 0c03 bf 0x529c // 529c + { + Debug_Inf.Page--; + 5298: 2b00 subi r3, 1 + 529a: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 529c: e3fffb12 bsr 0x48c0 // 48c0 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 52a0: 8462 ld.b r3, (r4, 0x2) + 52a2: 3b42 cmpnei r3, 2 + 52a4: 0806 bt 0x52b0 // 52b0 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 52a6: 8404 ld.b r0, (r4, 0x4) + 52a8: e3fffcfe bsr 0x4ca4 // 4ca4 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 52ac: 1401 addi r14, r14, 4 + 52ae: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 52b0: 3b41 cmpnei r3, 1 + 52b2: 0806 bt 0x52be // 52be + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 52b4: 8423 ld.b r1, (r4, 0x3) + 52b6: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 52b8: e3fffcaa bsr 0x4c0c // 4c0c + 52bc: 07f8 br 0x52ac // 52ac + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 52be: 3b43 cmpnei r3, 3 + 52c0: 0804 bt 0x52c8 // 52c8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 52c2: 8425 ld.b r1, (r4, 0x5) + 52c4: 3003 movi r0, 3 + 52c6: 07f9 br 0x52b8 // 52b8 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 52c8: 3b44 cmpnei r3, 4 + 52ca: 0804 bt 0x52d2 // 52d2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 52cc: 8426 ld.b r1, (r4, 0x6) + 52ce: 3004 movi r0, 4 + 52d0: 07f4 br 0x52b8 // 52b8 + else if(Debug_Inf.Page == PAGE5ID) //暂时无功能 + 52d2: 3b45 cmpnei r3, 5 + 52d4: 0bec bt 0x52ac // 52ac + Set_Device_ADDR(Debug_Inf.Page,0x00); + 52d6: 3100 movi r1, 0 + 52d8: 3005 movi r0, 5 + 52da: 07ef br 0x52b8 // 52b8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 52dc: 1095 lrw r4, 0x200002e0 // 5330 + 52de: 8462 ld.b r3, (r4, 0x2) + 52e0: 74ce sextb r3, r3 + 52e2: 3bdf btsti r3, 31 + 52e4: 0c17 bf 0x5312 // 5312 + TemCtrl_Fan_Set(); //风速切换 + 52e6: e3fffdff bsr 0x4ee4 // 4ee4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 52ea: 1073 lrw r3, 0x200004a0 // 5334 + 52ec: 8340 ld.b r2, (r3, 0x0) + 52ee: 3a41 cmpnei r2, 1 + 52f0: 080a bt 0x5304 // 5304 + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,ACTIVE); + 52f2: 8462 ld.b r3, (r4, 0x2) + 52f4: 437c lsli r3, r3, 28 + 52f6: b840 st.w r2, (r14, 0x0) + 52f8: 4b7d lsri r3, r3, 29 + 52fa: 3204 movi r2, 4 + 52fc: 3140 movi r1, 64 + 52fe: 3005 movi r0, 5 + 5300: e0000432 bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 5304: 106d lrw r3, 0x20000264 // 5338 + 5306: 8364 ld.b r3, (r3, 0x4) + 5308: 3b41 cmpnei r3, 1 + 530a: 0804 bt 0x5312 // 5312 + Controlled_LCD_Backlight(1); + 530c: 3001 movi r0, 1 + 530e: e3fffc6d bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 5312: 9560 ld.w r3, (r5, 0x0) + 5314: 4b48 lsri r2, r3, 8 + 5316: a470 st.b r3, (r4, 0x10) + 5318: a451 st.b r2, (r4, 0x11) + 531a: 4b50 lsri r2, r3, 16 + 531c: 4b78 lsri r3, r3, 24 + 531e: a452 st.b r2, (r4, 0x12) + 5320: a473 st.b r3, (r4, 0x13) +} + 5322: 07c5 br 0x52ac // 52ac + 5324: 00007524 .long 0x00007524 + 5328: 200002f5 .long 0x200002f5 + 532c: 200000b4 .long 0x200000b4 + 5330: 200002e0 .long 0x200002e0 + 5334: 200004a0 .long 0x200004a0 + 5338: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +0000533c : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 533c: 14d2 push r4-r5, r15 + 533e: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 5340: 1130 lrw r1, 0x7537 // 5400 + 5342: 3000 movi r0, 0 + 5344: e3fff340 bsr 0x39c4 // 39c4 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5348: 116f lrw r3, 0x200002f5 // 5404 + 534a: 8340 ld.b r2, (r3, 0x0) + 534c: 3a41 cmpnei r2, 1 + 534e: 11af lrw r5, 0x200000b4 // 5408 + 5350: 0834 bt 0x53b8 // 53b8 + { + Debug_Inf.Tick = SysTick_1ms; + 5352: 9540 ld.w r2, (r5, 0x0) + 5354: 4a28 lsri r1, r2, 8 + 5356: a347 st.b r2, (r3, 0x7) + 5358: a328 st.b r1, (r3, 0x8) + 535a: 4a30 lsri r1, r2, 16 + 535c: 4a58 lsri r2, r2, 24 + 535e: a34a st.b r2, (r3, 0xa) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 5360: 8342 ld.b r2, (r3, 0x2) + 5362: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 5364: a329 st.b r1, (r3, 0x9) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 5366: 0807 bt 0x5374 // 5374 + { + Debug_Inf.PipeFlag = 0x01; + 5368: a343 st.b r2, (r3, 0x3) + //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 536a: 3101 movi r1, 1 + 536c: 3001 movi r0, 1 + Debug_Inf.KSens_Level++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + } + else if(Debug_Inf.Page == 0x05) //暂时无功能 + { + Set_Device_ADDR(Debug_Inf.Page,0x00); + 536e: e3fffc4f bsr 0x4c0c // 4c0c + 5372: 040b br 0x5388 // 5388 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 5374: 3a42 cmpnei r2, 2 + 5376: 080b bt 0x538c // 538c + 5378: 8304 ld.b r0, (r3, 0x4) + 537a: 3811 cmphsi r0, 18 + 537c: 0806 bt 0x5388 // 5388 + Debug_Inf.TempDiff++; + 537e: 2000 addi r0, 1 + 5380: 7400 zextb r0, r0 + 5382: a304 st.b r0, (r3, 0x4) + Set_Temp_Difference(Debug_Inf.TempDiff); + 5384: e3fffc90 bsr 0x4ca4 // 4ca4 + + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 5388: 1401 addi r14, r14, 4 + 538a: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 538c: 3a43 cmpnei r2, 3 + 538e: 0806 bt 0x539a // 539a + Debug_Inf.BackLight_En = 0x01; + 5390: 3201 movi r2, 1 + 5392: a345 st.b r2, (r3, 0x5) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 5394: 3101 movi r1, 1 + 5396: 3003 movi r0, 3 + 5398: 07eb br 0x536e // 536e + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 539a: 3a44 cmpnei r2, 4 + 539c: 0809 bt 0x53ae // 53ae + 539e: 8326 ld.b r1, (r3, 0x6) + 53a0: 3901 cmphsi r1, 2 + 53a2: 0bf3 bt 0x5388 // 5388 + Debug_Inf.KSens_Level++; + 53a4: 2100 addi r1, 1 + 53a6: 7444 zextb r1, r1 + 53a8: a326 st.b r1, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 53aa: 3004 movi r0, 4 + 53ac: 07e1 br 0x536e // 536e + else if(Debug_Inf.Page == 0x05) //暂时无功能 + 53ae: 3a45 cmpnei r2, 5 + 53b0: 0bec bt 0x5388 // 5388 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 53b2: 3100 movi r1, 0 + 53b4: 3005 movi r0, 5 + 53b6: 07dc br 0x536e // 536e + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 53b8: 1095 lrw r4, 0x200002e0 // 540c + 53ba: 8462 ld.b r3, (r4, 0x2) + 53bc: 74ce sextb r3, r3 + 53be: 3bdf btsti r3, 31 + 53c0: 0c17 bf 0x53ee // 53ee + TemCtrl_Temperature_Add(); //设置温度+ + 53c2: e3fffdcf bsr 0x4f60 // 4f60 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 53c6: 1073 lrw r3, 0x200004a0 // 5410 + 53c8: 8340 ld.b r2, (r3, 0x0) + 53ca: 3a41 cmpnei r2, 1 + 53cc: 080a bt 0x53e0 // 53e0 + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 53ce: 310a movi r1, 10 + 53d0: 8461 ld.b r3, (r4, 0x1) + 53d2: 7cc4 mult r3, r1 + 53d4: b840 st.w r2, (r14, 0x0) + 53d6: 3110 movi r1, 16 + 53d8: 3202 movi r2, 2 + 53da: 3008 movi r0, 8 + 53dc: e00003c4 bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 53e0: 106d lrw r3, 0x20000264 // 5414 + 53e2: 8364 ld.b r3, (r3, 0x4) + 53e4: 3b41 cmpnei r3, 1 + 53e6: 0804 bt 0x53ee // 53ee + Controlled_LCD_Backlight(1); + 53e8: 3001 movi r0, 1 + 53ea: e3fffbff bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 53ee: 9560 ld.w r3, (r5, 0x0) + 53f0: 4b48 lsri r2, r3, 8 + 53f2: a470 st.b r3, (r4, 0x10) + 53f4: a451 st.b r2, (r4, 0x11) + 53f6: 4b50 lsri r2, r3, 16 + 53f8: 4b78 lsri r3, r3, 24 + 53fa: a452 st.b r2, (r4, 0x12) + 53fc: a473 st.b r3, (r4, 0x13) +} + 53fe: 07c5 br 0x5388 // 5388 + 5400: 00007537 .long 0x00007537 + 5404: 200002f5 .long 0x200002f5 + 5408: 200000b4 .long 0x200000b4 + 540c: 200002e0 .long 0x200002e0 + 5410: 200004a0 .long 0x200004a0 + 5414: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00005418 : + + +void KEY3_Long_Press_Fun(void) +{ + 5418: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 541a: 1097 lrw r4, 0x200002f5 // 5474 + 541c: 8460 ld.b r3, (r4, 0x0) + 541e: 3b40 cmpnei r3, 0 + 5420: 0828 bt 0x5470 // 5470 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 5422: 8461 ld.b r3, (r4, 0x1) + 5424: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5426: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 5428: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 542a: 0823 bt 0x5470 // 5470 + 542c: 1073 lrw r3, 0x200002e0 // 5478 + 542e: 8362 ld.b r3, (r3, 0x2) + 5430: 74ce sextb r3, r3 + 5432: 3bdf btsti r3, 31 + 5434: 081e bt 0x5470 // 5470 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 5436: 1032 lrw r1, 0x754e // 547c + 5438: 3000 movi r0, 0 + 543a: e3fff2c5 bsr 0x39c4 // 39c4 + Debug_Inf.Tick = SysTick_1ms; + 543e: 1071 lrw r3, 0x200000b4 // 5480 + 5440: 9360 ld.w r3, (r3, 0x0) + 5442: 4b48 lsri r2, r3, 8 + 5444: a467 st.b r3, (r4, 0x7) + 5446: a448 st.b r2, (r4, 0x8) + 5448: 4b50 lsri r2, r3, 16 + 544a: 4b78 lsri r3, r3, 24 + 544c: a46a st.b r3, (r4, 0xa) + Debug_Inf.Press_Flag = 0x00; + 544e: 3300 movi r3, 0 + 5450: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 5452: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 5454: a449 st.b r2, (r4, 0x9) + Debug_Inf.State = 0x01; + 5456: a460 st.b r3, (r4, 0x0) + HT1621_Clear(); + 5458: e3fffa34 bsr 0x48c0 // 48c0 + Controlled_LCD_Backlight(0x01); + 545c: 3001 movi r0, 1 + 545e: e3fffbc5 bsr 0x4be8 // 4be8 + Controlled_Buzzer(0x01); + 5462: 3001 movi r0, 1 + 5464: e3fffb9e bsr 0x4ba0 // 4ba0 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 5468: 8423 ld.b r1, (r4, 0x3) + 546a: 3001 movi r0, 1 + 546c: e3fffbd0 bsr 0x4c0c // 4c0c + + } + } + +} + 5470: 1491 pop r4, r15 + 5472: 0000 bkpt + 5474: 200002f5 .long 0x200002f5 + 5478: 200002e0 .long 0x200002e0 + 547c: 0000754e .long 0x0000754e + 5480: 200000b4 .long 0x200000b4 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00005484 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 5484: 14d2 push r4-r5, r15 + 5486: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 5488: 1131 lrw r1, 0x7557 // 554c + 548a: 3000 movi r0, 0 + 548c: e3fff29c bsr 0x39c4 // 39c4 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 5490: 1170 lrw r3, 0x200002f5 // 5550 + 5492: 8340 ld.b r2, (r3, 0x0) + 5494: 3a41 cmpnei r2, 1 + 5496: 11b0 lrw r5, 0x200000b4 // 5554 + 5498: 0835 bt 0x5502 // 5502 + { + Debug_Inf.Tick = SysTick_1ms; + 549a: 9540 ld.w r2, (r5, 0x0) + 549c: 4a28 lsri r1, r2, 8 + 549e: a347 st.b r2, (r3, 0x7) + 54a0: a328 st.b r1, (r3, 0x8) + 54a2: 4a30 lsri r1, r2, 16 + 54a4: 4a58 lsri r2, r2, 24 + 54a6: a34a st.b r2, (r3, 0xa) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 54a8: 8342 ld.b r2, (r3, 0x2) + 54aa: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 54ac: a329 st.b r1, (r3, 0x9) + if((Debug_Inf.Page == 0x01)) //设置模式下:页面1 温控管制 + 54ae: 0808 bt 0x54be // 54be + { +// Debug_Inf.DevAddr--; + Debug_Inf.PipeFlag = 0x00; + 54b0: 3200 movi r2, 0 + 54b2: a343 st.b r2, (r3, 0x3) + //刷新地址 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 54b4: 3100 movi r1, 0 + 54b6: 3001 movi r0, 1 + Debug_Inf.KSens_Level--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + } + else if(Debug_Inf.Page == 0x05) //暂时无功能 + { + Set_Device_ADDR(Debug_Inf.Page,0x00); + 54b8: e3fffbaa bsr 0x4c0c // 4c0c + 54bc: 040b br 0x54d2 // 54d2 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 54be: 3a42 cmpnei r2, 2 + 54c0: 080b bt 0x54d6 // 54d6 + 54c2: 8304 ld.b r0, (r3, 0x4) + 54c4: 3840 cmpnei r0, 0 + 54c6: 0c06 bf 0x54d2 // 54d2 + Debug_Inf.TempDiff--; + 54c8: 2800 subi r0, 1 + 54ca: 7400 zextb r0, r0 + 54cc: a304 st.b r0, (r3, 0x4) + Set_Temp_Difference(Debug_Inf.TempDiff); + 54ce: e3fffbeb bsr 0x4ca4 // 4ca4 + + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 54d2: 1401 addi r14, r14, 4 + 54d4: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 54d6: 3a43 cmpnei r2, 3 + 54d8: 0806 bt 0x54e4 // 54e4 + Debug_Inf.BackLight_En = 0x00; + 54da: 3200 movi r2, 0 + 54dc: a345 st.b r2, (r3, 0x5) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 54de: 3100 movi r1, 0 + 54e0: 3003 movi r0, 3 + 54e2: 07eb br 0x54b8 // 54b8 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 54e4: 3a44 cmpnei r2, 4 + 54e6: 0809 bt 0x54f8 // 54f8 + 54e8: 8326 ld.b r1, (r3, 0x6) + 54ea: 3940 cmpnei r1, 0 + 54ec: 0ff3 bf 0x54d2 // 54d2 + Debug_Inf.KSens_Level--; + 54ee: 2900 subi r1, 1 + 54f0: 7444 zextb r1, r1 + 54f2: a326 st.b r1, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 54f4: 3004 movi r0, 4 + 54f6: 07e1 br 0x54b8 // 54b8 + else if(Debug_Inf.Page == 0x05) //暂时无功能 + 54f8: 3a45 cmpnei r2, 5 + 54fa: 0bec bt 0x54d2 // 54d2 + Set_Device_ADDR(Debug_Inf.Page,0x00); + 54fc: 3100 movi r1, 0 + 54fe: 3005 movi r0, 5 + 5500: 07dc br 0x54b8 // 54b8 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 5502: 1096 lrw r4, 0x200002e0 // 5558 + 5504: 8462 ld.b r3, (r4, 0x2) + 5506: 74ce sextb r3, r3 + 5508: 3bdf btsti r3, 31 + 550a: 0c17 bf 0x5538 // 5538 + TemCtrl_Temperature_Dec(); //设置温度- + 550c: e3fffd12 bsr 0x4f30 // 4f30 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5510: 1073 lrw r3, 0x200004a0 // 555c + 5512: 8340 ld.b r2, (r3, 0x0) + 5514: 3a41 cmpnei r2, 1 + 5516: 080a bt 0x552a // 552a + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),ACTIVE); + 5518: 310a movi r1, 10 + 551a: 8461 ld.b r3, (r4, 0x1) + 551c: 7cc4 mult r3, r1 + 551e: b840 st.w r2, (r14, 0x0) + 5520: 3110 movi r1, 16 + 5522: 3202 movi r2, 2 + 5524: 3008 movi r0, 8 + 5526: e000031f bsr 0x5b64 // 5b64 + if(g_eeprom.backlight_en == 0x01) + 552a: 106e lrw r3, 0x20000264 // 5560 + 552c: 8364 ld.b r3, (r3, 0x4) + 552e: 3b41 cmpnei r3, 1 + 5530: 0804 bt 0x5538 // 5538 + Controlled_LCD_Backlight(1); + 5532: 3001 movi r0, 1 + 5534: e3fffb5a bsr 0x4be8 // 4be8 + TempCtrl.BackLightTick = SysTick_1ms; + 5538: 9560 ld.w r3, (r5, 0x0) + 553a: 4b48 lsri r2, r3, 8 + 553c: a470 st.b r3, (r4, 0x10) + 553e: a451 st.b r2, (r4, 0x11) + 5540: 4b50 lsri r2, r3, 16 + 5542: 4b78 lsri r3, r3, 24 + 5544: a452 st.b r2, (r4, 0x12) + 5546: a473 st.b r3, (r4, 0x13) +} + 5548: 07c5 br 0x54d2 // 54d2 + 554a: 0000 bkpt + 554c: 00007557 .long 0x00007557 + 5550: 200002f5 .long 0x200002f5 + 5554: 200000b4 .long 0x200000b4 + 5558: 200002e0 .long 0x200002e0 + 555c: 200004a0 .long 0x200004a0 + 5560: 20000264 .long 0x20000264 + +Disassembly of section .text.KEY4_Long_Press: + +00005564 : + +void KEY4_Long_Press(void) +{ + 5564: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 5566: 1097 lrw r4, 0x200002f5 // 55c0 + 5568: 8460 ld.b r3, (r4, 0x0) + 556a: 3b40 cmpnei r3, 0 + 556c: 0828 bt 0x55bc // 55bc + { + Debug_Inf.Press_Flag |= (0x01<<1); + 556e: 8461 ld.b r3, (r4, 0x1) + 5570: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5572: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 5574: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 5576: 0823 bt 0x55bc // 55bc + 5578: 1073 lrw r3, 0x200002e0 // 55c4 + 557a: 8362 ld.b r3, (r3, 0x2) + 557c: 74ce sextb r3, r3 + 557e: 3bdf btsti r3, 31 + 5580: 081e bt 0x55bc // 55bc + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 5582: 1032 lrw r1, 0x754e // 55c8 + 5584: 3000 movi r0, 0 + 5586: e3fff21f bsr 0x39c4 // 39c4 + Debug_Inf.Tick = SysTick_1ms; + 558a: 1071 lrw r3, 0x200000b4 // 55cc + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Controlled_LCD_Backlight(0x01); + 558c: 3001 movi r0, 1 + Debug_Inf.Tick = SysTick_1ms; + 558e: 9360 ld.w r3, (r3, 0x0) + 5590: 4b48 lsri r2, r3, 8 + 5592: a467 st.b r3, (r4, 0x7) + 5594: a448 st.b r2, (r4, 0x8) + 5596: 4b50 lsri r2, r3, 16 + 5598: 4b78 lsri r3, r3, 24 + 559a: a46a st.b r3, (r4, 0xa) + Debug_Inf.Press_Flag = 0x00; + 559c: 3300 movi r3, 0 + 559e: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 55a0: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 55a2: a449 st.b r2, (r4, 0x9) + Debug_Inf.State = 0x01; + 55a4: a460 st.b r3, (r4, 0x0) + Controlled_LCD_Backlight(0x01); + 55a6: e3fffb21 bsr 0x4be8 // 4be8 + HT1621_Clear(); + 55aa: e3fff98b bsr 0x48c0 // 48c0 + Controlled_Buzzer(0x01); + 55ae: 3001 movi r0, 1 + 55b0: e3fffaf8 bsr 0x4ba0 // 4ba0 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 55b4: 8423 ld.b r1, (r4, 0x3) + 55b6: 3001 movi r0, 1 + 55b8: e3fffb2a bsr 0x4c0c // 4c0c + + } + } +} + 55bc: 1491 pop r4, r15 + 55be: 0000 bkpt + 55c0: 200002f5 .long 0x200002f5 + 55c4: 200002e0 .long 0x200002e0 + 55c8: 0000754e .long 0x0000754e + 55cc: 200000b4 .long 0x200000b4 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +000055d0 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 55d0: 14d1 push r4, r15 + 55d2: 1421 subi r14, r14, 4 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 55d4: 103a lrw r1, 0x756e // 563c + 55d6: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 55d8: 109a lrw r4, 0x200002f5 // 5640 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 55da: e3fff1f5 bsr 0x39c4 // 39c4 + if(Debug_Inf.State == 0x00) //正常模式 + 55de: 8460 ld.b r3, (r4, 0x0) + 55e0: 3b40 cmpnei r3, 0 + 55e2: 081a bt 0x5616 // 5616 + { + TemCtrl_OnOff_Set(); //开关机切换 + 55e4: e3fffcd6 bsr 0x4f90 // 4f90 + + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 55e8: 1077 lrw r3, 0x200004a0 // 5644 + 55ea: 8340 ld.b r2, (r3, 0x0) + 55ec: 3a41 cmpnei r2, 1 + 55ee: 1097 lrw r4, 0x200002e0 // 5648 + 55f0: 0808 bt 0x5600 // 5600 + { + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,ACTIVE); + 55f2: 8462 ld.b r3, (r4, 0x2) + 55f4: 4b67 lsri r3, r3, 7 + 55f6: b840 st.w r2, (r14, 0x0) + 55f8: 3101 movi r1, 1 + 55fa: 3005 movi r0, 5 + 55fc: e00002b4 bsr 0x5b64 // 5b64 + } + + TempCtrl.BackLightTick = SysTick_1ms; + 5600: 1073 lrw r3, 0x200000b4 // 564c + 5602: 9360 ld.w r3, (r3, 0x0) + 5604: 4b48 lsri r2, r3, 8 + 5606: a470 st.b r3, (r4, 0x10) + 5608: a451 st.b r2, (r4, 0x11) + 560a: 4b50 lsri r2, r3, 16 + 560c: 4b78 lsri r3, r3, 24 + 560e: a452 st.b r2, (r4, 0x12) + 5610: a473 st.b r3, (r4, 0x13) + //关背光 + Controlled_LCD_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 5612: 1401 addi r14, r14, 4 + 5614: 1491 pop r4, r15 + else if(Debug_Inf.State == 0x01) //设置模式 + 5616: 3b41 cmpnei r3, 1 + 5618: 0bfd bt 0x5612 // 5612 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 561a: 102e lrw r1, 0x7583 // 5650 + 561c: 3000 movi r0, 0 + 561e: e3fff1d3 bsr 0x39c4 // 39c4 + Debug_Inf.State = 0x00; + 5622: 3300 movi r3, 0 + 5624: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 5626: 3301 movi r3, 1 + 5628: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 562a: e3fff94b bsr 0x48c0 // 48c0 + Controlled_LCD_Backlight(0x00); + 562e: 3000 movi r0, 0 + 5630: e3fffadc bsr 0x4be8 // 4be8 + Dev_SaveData(); + 5634: e000013c bsr 0x58ac // 58ac +} + 5638: 07ed br 0x5612 // 5612 + 563a: 0000 bkpt + 563c: 0000756e .long 0x0000756e + 5640: 200002f5 .long 0x200002f5 + 5644: 200004a0 .long 0x200004a0 + 5648: 200002e0 .long 0x200002e0 + 564c: 200000b4 .long 0x200000b4 + 5650: 00007583 .long 0x00007583 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00005654 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 5654: 14d1 push r4, r15 + if(state == TEMP_ON) + 5656: 3841 cmpnei r0, 1 + 5658: 081f bt 0x5696 // 5696 + { + Control_Prompt_Text(1); + Control_Mode(TempCtrl.TemState_Now.mode); + 565a: 1091 lrw r4, 0x200002e0 // 569c + Control_Prompt_Text(1); + 565c: e3fffa80 bsr 0x4b5c // 4b5c + Control_Mode(TempCtrl.TemState_Now.mode); + 5660: 8402 ld.b r0, (r4, 0x2) + 5662: 4019 lsli r0, r0, 25 + 5664: 481d lsri r0, r0, 29 + 5666: e3fffa1f bsr 0x4aa4 // 4aa4 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 566a: 8402 ld.b r0, (r4, 0x2) + 566c: 401c lsli r0, r0, 28 + 566e: 481d lsri r0, r0, 29 + 5670: e3fffa3e bsr 0x4aec // 4aec + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5674: 8401 ld.b r0, (r4, 0x1) + 5676: 3840 cmpnei r0, 0 + 5678: 0c0c bf 0x5690 // 5690 + 567a: 330a movi r3, 10 + 567c: 7c0c mult r0, r3 + 567e: e3fff98f bsr 0x499c // 499c + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 5682: 8400 ld.b r0, (r4, 0x0) + 5684: 330a movi r3, 10 + 5686: 7c0c mult r0, r3 + 5688: 7401 zexth r0, r0 + 568a: e3fff9cd bsr 0x4a24 // 4a24 + } + else + { + HT1621_Clear(); + } +} + 568e: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 5690: 30af movi r0, 175 + 5692: 4001 lsli r0, r0, 1 + 5694: 07f5 br 0x567e // 567e + HT1621_Clear(); + 5696: e3fff915 bsr 0x48c0 // 48c0 +} + 569a: 07fa br 0x568e // 568e + 569c: 200002e0 .long 0x200002e0 + +Disassembly of section .text.DisPlay_Init: + +000056a0 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 56a0: 14d0 push r15 + HT1621_ALLON(); + 56a2: e3fff937 bsr 0x4910 // 4910 + + delay_nms(5000); + 56a6: 1005 lrw r0, 0x1388 // 56b8 + 56a8: e3ffead0 bsr 0x2c48 // 2c48 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 56ac: 1064 lrw r3, 0x200002e0 // 56bc + 56ae: 8302 ld.b r0, (r3, 0x2) + 56b0: 4807 lsri r0, r0, 7 + 56b2: e3ffffd1 bsr 0x5654 // 5654 + +} + 56b6: 1490 pop r15 + 56b8: 00001388 .long 0x00001388 + 56bc: 200002e0 .long 0x200002e0 + +Disassembly of section .text.DisPlay_Task: + +000056c0 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 56c0: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 56c2: 1368 lrw r3, 0x200002f5 // 5860 + 56c4: 8360 ld.b r3, (r3, 0x0) + 56c6: 3b40 cmpnei r3, 0 + 56c8: 08c5 bt 0x5852 // 5852 + { + + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 56ca: 1367 lrw r3, 0x20000264 // 5864 + 56cc: 8364 ld.b r3, (r3, 0x4) + 56ce: 3b41 cmpnei r3, 1 + 56d0: 1386 lrw r4, 0x200002e0 // 5868 + 56d2: 081c bt 0x570a // 570a + 56d4: 8451 ld.b r2, (r4, 0x11) + 56d6: 8470 ld.b r3, (r4, 0x10) + 56d8: 4248 lsli r2, r2, 8 + 56da: 6c8c or r2, r3 + 56dc: 8472 ld.b r3, (r4, 0x12) + 56de: 4370 lsli r3, r3, 16 + 56e0: 6c8c or r2, r3 + 56e2: 8473 ld.b r3, (r4, 0x13) + 56e4: 1302 lrw r0, 0x200000b4 // 586c + 56e6: 4378 lsli r3, r3, 24 + 56e8: 6cc8 or r3, r2 + 56ea: 9020 ld.w r1, (r0, 0x0) + 56ec: 604e subu r1, r3 + 56ee: 1361 lrw r3, 0x1388 // 5870 + 56f0: 644c cmphs r3, r1 + 56f2: 080c bt 0x570a // 570a + { + TempCtrl.BackLightTick = SysTick_1ms; + 56f4: 9060 ld.w r3, (r0, 0x0) + 56f6: 4b48 lsri r2, r3, 8 + 56f8: a470 st.b r3, (r4, 0x10) + 56fa: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 56fc: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 56fe: 4b50 lsri r2, r3, 16 + 5700: 4b78 lsri r3, r3, 24 + 5702: a452 st.b r2, (r4, 0x12) + 5704: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 5706: e3fffa71 bsr 0x4be8 // 4be8 + } + + + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 570a: 8402 ld.b r0, (r4, 0x2) + 570c: 74c2 sextb r3, r0 + 570e: 3bdf btsti r3, 31 + 5710: 0c84 bf 0x5818 // 5818 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 5712: 8466 ld.b r3, (r4, 0x6) + 5714: 4019 lsli r0, r0, 25 + 5716: 4359 lsli r2, r3, 25 + 5718: 481d lsri r0, r0, 29 + 571a: 4a5d lsri r2, r2, 29 + 571c: 640a cmpne r2, r0 + 571e: 0c17 bf 0x574c // 574c + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 5720: 3170 movi r1, 112 + 5722: 4044 lsli r2, r0, 4 + 5724: 68c5 andn r3, r1 + 5726: 6cc8 or r3, r2 + 5728: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 572a: e3fff9bd bsr 0x4aa4 // 4aa4 + + SYSCON->UREG0 &= 0xFFFF00FF; + 572e: 1272 lrw r3, 0x2000005c // 5874 + 5730: 31ff movi r1, 255 + 5732: 9340 ld.w r2, (r3, 0x0) + 5734: 22ff addi r2, 256 + 5736: 9260 ld.w r3, (r2, 0x0) + 5738: 4128 lsli r1, r1, 8 + 573a: 68c5 andn r3, r1 + 573c: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 573e: 8462 ld.b r3, (r4, 0x2) + 5740: 4379 lsli r3, r3, 25 + 5742: 4b7d lsri r3, r3, 29 + 5744: 9220 ld.w r1, (r2, 0x0) + 5746: 4368 lsli r3, r3, 8 + 5748: 6cc4 or r3, r1 + 574a: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 574c: 8402 ld.b r0, (r4, 0x2) + 574e: 8466 ld.b r3, (r4, 0x6) + 5750: 401c lsli r0, r0, 28 + 5752: 435c lsli r2, r3, 28 + 5754: 481d lsri r0, r0, 29 + 5756: 4a5d lsri r2, r2, 29 + 5758: 640a cmpne r2, r0 + 575a: 0c22 bf 0x579e // 579e + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 575c: 310e movi r1, 14 + 575e: 4041 lsli r2, r0, 1 + 5760: 68c5 andn r3, r1 + 5762: 6cc8 or r3, r2 + 5764: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 5766: e3fff9c3 bsr 0x4aec // 4aec + switch(TempCtrl.TemState_Now.fan) + 576a: 8462 ld.b r3, (r4, 0x2) + 576c: 437c lsli r3, r3, 28 + 576e: 4b7d lsri r3, r3, 29 + 5770: 3b42 cmpnei r3, 2 + 5772: 0c71 bf 0x5854 // 5854 + 5774: 3b43 cmpnei r3, 3 + 5776: 0c72 bf 0x585a // 585a + 5778: 3b41 cmpnei r3, 1 + 577a: 0803 bt 0x5780 // 5780 + { + case FAN_LOW: + Relay_Low(); + 577c: e0000440 bsr 0x5ffc // 5ffc +// break; + default: + break; + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 5780: 117d lrw r3, 0x2000005c // 5874 + 5782: 31ff movi r1, 255 + 5784: 9340 ld.w r2, (r3, 0x0) + 5786: 22ff addi r2, 256 + 5788: 9260 ld.w r3, (r2, 0x0) + 578a: 4130 lsli r1, r1, 16 + 578c: 68c5 andn r3, r1 + 578e: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 5790: 8462 ld.b r3, (r4, 0x2) + 5792: 437c lsli r3, r3, 28 + 5794: 4b7d lsri r3, r3, 29 + 5796: 9220 ld.w r1, (r2, 0x0) + 5798: 4370 lsli r3, r3, 16 + 579a: 6cc4 or r3, r1 + 579c: b260 st.w r3, (r2, 0x0) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 579e: 8401 ld.b r0, (r4, 0x1) + 57a0: 8465 ld.b r3, (r4, 0x5) + 57a2: 640e cmpne r3, r0 + 57a4: 0c06 bf 0x57b0 // 57b0 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 57a6: 330a movi r3, 10 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 57a8: a405 st.b r0, (r4, 0x5) + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 57aa: 7c0c mult r0, r3 + 57ac: e3fff8f8 bsr 0x499c // 499c + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 57b0: 8409 ld.b r0, (r4, 0x9) + 57b2: 8468 ld.b r3, (r4, 0x8) + 57b4: 4008 lsli r0, r0, 8 + 57b6: 6c0c or r0, r3 + 57b8: 846b ld.b r3, (r4, 0xb) + 57ba: 844a ld.b r2, (r4, 0xa) + 57bc: 4368 lsli r3, r3, 8 + 57be: 6cc8 or r3, r2 + 57c0: 640e cmpne r3, r0 + 57c2: 0c12 bf 0x57e6 // 57e6 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 57c4: 4868 lsri r3, r0, 8 + 57c6: a46b st.b r3, (r4, 0xb) + 57c8: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 57ca: e3fff92d bsr 0x4a24 // 4a24 + + SYSCON->UREG0 &= 0x00FFFFFF; + 57ce: 116a lrw r3, 0x2000005c // 5874 + 57d0: 9340 ld.w r2, (r3, 0x0) + 57d2: 22ff addi r2, 256 + 57d4: 9260 ld.w r3, (r2, 0x0) + 57d6: 4368 lsli r3, r3, 8 + 57d8: 4b68 lsri r3, r3, 8 + 57da: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 57dc: 8461 ld.b r3, (r4, 0x1) + 57de: 9220 ld.w r1, (r2, 0x0) + 57e0: 4378 lsli r3, r3, 24 + 57e2: 6cc4 or r3, r1 + 57e4: b260 st.w r3, (r2, 0x0) + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 5)) \ + 57e6: 844f ld.b r2, (r4, 0xf) + 57e8: 846e ld.b r3, (r4, 0xe) + 57ea: 4248 lsli r2, r2, 8 + 57ec: 6c8c or r2, r3 + 57ee: 846d ld.b r3, (r4, 0xd) + 57f0: 842c ld.b r1, (r4, 0xc) + 57f2: 4368 lsli r3, r3, 8 + 57f4: 6cc4 or r3, r1 + 57f6: 648c cmphs r3, r2 + 57f8: 0804 bt 0x5800 // 5800 + 57fa: 5a2d subu r1, r2, r3 + 57fc: 3925 cmplti r1, 6 + 57fe: 0c06 bf 0x580a // 580a + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 5))) + 5800: 64c8 cmphs r2, r3 + 5802: 080b bt 0x5818 // 5818 + 5804: 5b49 subu r2, r3, r2 + 5806: 3a25 cmplti r2, 6 + 5808: 0808 bt 0x5818 // 5818 + { + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + rf_info.roomc_flag = 0x01; + 580a: 105c lrw r2, 0x200004a0 // 5878 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 580c: a46e st.b r3, (r4, 0xe) + 580e: 4b68 lsri r3, r3, 8 + 5810: a46f st.b r3, (r4, 0xf) + rf_info.roomc_flag = 0x01; + 5812: 8261 ld.b r3, (r2, 0x1) + 5814: 3ba5 bseti r3, 5 + 5816: a261 st.b r3, (r2, 0x1) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 5818: 8402 ld.b r0, (r4, 0x2) + 581a: 8466 ld.b r3, (r4, 0x6) + 581c: 4807 lsri r0, r0, 7 + 581e: 4b47 lsri r2, r3, 7 + 5820: 640a cmpne r2, r0 + 5822: 0c18 bf 0x5852 // 5852 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 5824: 317f movi r1, 127 + 5826: 4047 lsli r2, r0, 7 + 5828: 68c4 and r3, r1 + 582a: 6cc8 or r3, r2 + 582c: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 582e: e3fff9dd bsr 0x4be8 // 4be8 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 5832: 8402 ld.b r0, (r4, 0x2) + 5834: 4807 lsri r0, r0, 7 + 5836: e3ffff0f bsr 0x5654 // 5654 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 583a: 106f lrw r3, 0x2000005c // 5874 + 583c: 31ff movi r1, 255 + 583e: 9340 ld.w r2, (r3, 0x0) + 5840: 22ff addi r2, 256 + 5842: 9260 ld.w r3, (r2, 0x0) + 5844: 68c5 andn r3, r1 + 5846: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 5848: 8462 ld.b r3, (r4, 0x2) + 584a: 9220 ld.w r1, (r2, 0x0) + 584c: 4b67 lsri r3, r3, 7 + 584e: 6cc4 or r3, r1 + 5850: b260 st.w r3, (r2, 0x0) + } + } +} + 5852: 1491 pop r4, r15 + Relay_Mid(); + 5854: e00003c2 bsr 0x5fd8 // 5fd8 + break; + 5858: 0794 br 0x5780 // 5780 + Relay_High(); + 585a: e00003ad bsr 0x5fb4 // 5fb4 + break; + 585e: 0791 br 0x5780 // 5780 + 5860: 200002f5 .long 0x200002f5 + 5864: 20000264 .long 0x20000264 + 5868: 200002e0 .long 0x200002e0 + 586c: 200000b4 .long 0x200000b4 + 5870: 00001388 .long 0x00001388 + 5874: 2000005c .long 0x2000005c + 5878: 200004a0 .long 0x200004a0 + +Disassembly of section .text.Debug_Init: + +0000587c : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 587c: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 587e: 108a lrw r4, 0x200002f5 // 58a4 + 5880: 320b movi r2, 11 + 5882: 3100 movi r1, 0 + 5884: 6c13 mov r0, r4 + 5886: e3ffe06f bsr 0x1964 // 1964 <__memset_fast> + Debug_Inf.Page = 0x01; + 588a: 3301 movi r3, 1 + 588c: a462 st.b r3, (r4, 0x2) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 588e: 1067 lrw r3, 0x20000264 // 58a8 + 5890: 8341 ld.b r2, (r3, 0x1) + 5892: a443 st.b r2, (r4, 0x3) + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 5894: 8342 ld.b r2, (r3, 0x2) + 5896: a444 st.b r2, (r4, 0x4) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 5898: 8344 ld.b r2, (r3, 0x4) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 589a: 8365 ld.b r3, (r3, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 589c: a445 st.b r2, (r4, 0x5) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 589e: a466 st.b r3, (r4, 0x6) +} + 58a0: 1491 pop r4, r15 + 58a2: 0000 bkpt + 58a4: 200002f5 .long 0x200002f5 + 58a8: 20000264 .long 0x20000264 + +Disassembly of section .text.Dev_SaveData: + +000058ac : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 58ac: 14d1 push r4, r15 + 58ae: 1422 subi r14, r14, 8 + if(Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 58b0: 1074 lrw r3, 0x200002f5 // 5900 + 58b2: 1095 lrw r4, 0x20000264 // 5904 + 58b4: 8343 ld.b r2, (r3, 0x3) + 58b6: 8421 ld.b r1, (r4, 0x1) + 58b8: 6486 cmpne r1, r2 + 58ba: 080d bt 0x58d4 // 58d4 + 58bc: 8304 ld.b r0, (r3, 0x4) + 58be: 8422 ld.b r1, (r4, 0x2) + 58c0: 6442 cmpne r0, r1 + 58c2: 0809 bt 0x58d4 // 58d4 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level) + 58c4: 8305 ld.b r0, (r3, 0x5) + 58c6: 8424 ld.b r1, (r4, 0x4) + 58c8: 6442 cmpne r0, r1 + 58ca: 0805 bt 0x58d4 // 58d4 + 58cc: 8306 ld.b r0, (r3, 0x6) + 58ce: 8425 ld.b r1, (r4, 0x5) + 58d0: 6442 cmpne r0, r1 + 58d2: 0c15 bf 0x58fc // 58fc + { + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 58d4: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 58d6: 8344 ld.b r2, (r3, 0x4) + 58d8: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 58da: 8345 ld.b r2, (r3, 0x5) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + + EEPROM_WriteParaInfo(&g_eeprom); + 58dc: 100a lrw r0, 0x20000264 // 5904 + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 58de: 8366 ld.b r3, (r3, 0x6) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 58e0: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 58e2: a465 st.b r3, (r4, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 58e4: e3fff488 bsr 0x41f4 // 41f4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 58e8: 8425 ld.b r1, (r4, 0x5) + 58ea: b821 st.w r1, (r14, 0x4) + 58ec: 8424 ld.b r1, (r4, 0x4) + 58ee: b820 st.w r1, (r14, 0x0) + 58f0: 8462 ld.b r3, (r4, 0x2) + 58f2: 8441 ld.b r2, (r4, 0x1) + 58f4: 1025 lrw r1, 0x758d // 5908 + 58f6: 3000 movi r0, 0 + 58f8: e3fff066 bsr 0x39c4 // 39c4 + g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + } +} + 58fc: 1402 addi r14, r14, 8 + 58fe: 1491 pop r4, r15 + 5900: 200002f5 .long 0x200002f5 + 5904: 20000264 .long 0x20000264 + 5908: 0000758d .long 0x0000758d + +Disassembly of section .text.Debug_Task: + +0000590c : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 590c: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE5ID)) //设置模式 + 590e: 1077 lrw r3, 0x200002f5 // 5968 + 5910: 8340 ld.b r2, (r3, 0x0) + 5912: 3a41 cmpnei r2, 1 + 5914: 0829 bt 0x5966 // 5966 + 5916: 8328 ld.b r1, (r3, 0x8) + 5918: 8347 ld.b r2, (r3, 0x7) + 591a: 4128 lsli r1, r1, 8 + 591c: 6c48 or r1, r2 + 591e: 8349 ld.b r2, (r3, 0x9) + 5920: 4250 lsli r2, r2, 16 + 5922: 6c48 or r1, r2 + 5924: 834a ld.b r2, (r3, 0xa) + 5926: 1092 lrw r4, 0x200000b4 // 596c + 5928: 4258 lsli r2, r2, 24 + 592a: 6c84 or r2, r1 + 592c: 9400 ld.w r0, (r4, 0x0) + 592e: 600a subu r0, r2 + 5930: 1050 lrw r2, 0x2710 // 5970 + 5932: 6408 cmphs r2, r0 + 5934: 0819 bt 0x5966 // 5966 + 5936: 8342 ld.b r2, (r3, 0x2) + 5938: 3a45 cmpnei r2, 5 + 593a: 0c16 bf 0x5966 // 5966 + { + Debug_Inf.Tick = SysTick_1ms; + 593c: 9440 ld.w r2, (r4, 0x0) + 593e: 4a28 lsri r1, r2, 8 + 5940: a347 st.b r2, (r3, 0x7) + 5942: a328 st.b r1, (r3, 0x8) + 5944: 4a30 lsri r1, r2, 16 + 5946: 4a58 lsri r2, r2, 24 + 5948: a34a st.b r2, (r3, 0xa) + Debug_Inf.State = 0x00; + 594a: 3200 movi r2, 0 + Debug_Inf.Tick = SysTick_1ms; + 594c: a329 st.b r1, (r3, 0x9) + Debug_Inf.State = 0x00; + 594e: a340 st.b r2, (r3, 0x0) + Dev_SaveData(); + 5950: e3ffffae bsr 0x58ac // 58ac + + HT1621_Clear(); + 5954: e3fff7b6 bsr 0x48c0 // 48c0 + //关背光 + Controlled_LCD_Backlight(0x00); + 5958: 3000 movi r0, 0 + 595a: e3fff947 bsr 0x4be8 // 4be8 +// Controlled_Key_Backlight(0x00); + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 595e: 1026 lrw r1, 0x75d0 // 5974 + 5960: 3000 movi r0, 0 + 5962: e3fff031 bsr 0x39c4 // 39c4 + } + 5966: 1491 pop r4, r15 + 5968: 200002f5 .long 0x200002f5 + 596c: 200000b4 .long 0x200000b4 + 5970: 00002710 .long 0x00002710 + 5974: 000075d0 .long 0x000075d0 + +Disassembly of section .text.get_check_sum: + +00005978 : +* @param[in] {pack} the head address of array +* @param[in] {pack_len} the length of array +* @return sum +*/ +unsigned char get_check_sum(unsigned char *pack, unsigned short pack_len) +{ + 5978: 6cc3 mov r3, r0 + 597a: 6040 addu r1, r0 + unsigned short i; + unsigned char check_sum = 0; + 597c: 3000 movi r0, 0 + + for(i = 0; i < pack_len; i ++){ + 597e: 644e cmpne r3, r1 + 5980: 0802 bt 0x5984 // 5984 + check_sum += *pack ++; + } + + return check_sum; +} + 5982: 783c jmp r15 + check_sum += *pack ++; + 5984: 8340 ld.b r2, (r3, 0x0) + 5986: 6008 addu r0, r2 + 5988: 7400 zextb r0, r0 + 598a: 2300 addi r3, 1 + 598c: 07f9 br 0x597e // 597e + +Disassembly of section .text.uart_receive_input: + +00005990 : +* @brief copy receive data from uart receive interrupt +* @param[in] {value} Data received from interrupt +* @return void +*/ +void uart_receive_input(unsigned char value) +{ + 5990: 14c1 push r4 +// #error "please call this fuction in the interrupt fuction of serial receive, and delete this line" + + if(1 == queue_out - queue_in) { + 5992: 106d lrw r3, 0x2000049c // 59c4 + 5994: 9320 ld.w r1, (r3, 0x0) + 5996: 106d lrw r3, 0x2000040c // 59c8 + 5998: 9340 ld.w r2, (r3, 0x0) + 599a: 5989 subu r4, r1, r2 + 599c: 3c41 cmpnei r4, 1 + 599e: 0c11 bf 0x59c0 // 59c0 + //queue full + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_1"); + + }else if((queue_in > queue_out) && ((queue_in - queue_out) >= sizeof(zigbee_queue_buf))) { + 59a0: 6484 cmphs r1, r2 + 59a2: 0806 bt 0x59ae // 59ae + 59a4: 5a85 subu r4, r2, r1 + 59a6: 3184 movi r1, 132 + 59a8: 4121 lsli r1, r1, 1 + 59aa: 6504 cmphs r1, r4 + 59ac: 0c0a bf 0x59c0 // 59c0 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"queue full_2"); + + }else { + //queue not full + if(queue_in >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))){ + 59ae: 1028 lrw r1, 0x20000409 // 59cc + 59b0: 6448 cmphs r2, r1 + 59b2: 0c03 bf 0x59b8 // 59b8 + queue_in = (unsigned char *)(zigbee_queue_buf); + 59b4: 1047 lrw r2, 0x20000300 // 59d0 + 59b6: b340 st.w r2, (r3, 0x0) + } + *queue_in ++ = value; + 59b8: 9340 ld.w r2, (r3, 0x0) + 59ba: 5a22 addi r1, r2, 1 + 59bc: b320 st.w r1, (r3, 0x0) + 59be: a200 st.b r0, (r2, 0x0) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_receive: %02X",value); + + } +} + 59c0: 1481 pop r4 + 59c2: 0000 bkpt + 59c4: 2000049c .long 0x2000049c + 59c8: 2000040c .long 0x2000040c + 59cc: 20000409 .long 0x20000409 + 59d0: 20000300 .long 0x20000300 + +Disassembly of section .text.Queue_Read_Byte: + +000059d4 : +*/ +unsigned char Queue_Read_Byte(void) +{ + unsigned char value; + + if(queue_out != queue_in) { + 59d4: 1069 lrw r3, 0x2000049c // 59f8 + 59d6: 102a lrw r1, 0x2000040c // 59fc + 59d8: 9340 ld.w r2, (r3, 0x0) + 59da: 9120 ld.w r1, (r1, 0x0) + 59dc: 644a cmpne r2, r1 + 59de: 0c0b bf 0x59f4 // 59f4 + //have data in queue + if(queue_out >= (unsigned char *)(zigbee_queue_buf + sizeof(zigbee_queue_buf))) { + 59e0: 1028 lrw r1, 0x20000409 // 5a00 + 59e2: 6448 cmphs r2, r1 + 59e4: 0c03 bf 0x59ea // 59ea + queue_out = (unsigned char *)(zigbee_queue_buf); + 59e6: 1048 lrw r2, 0x20000300 // 5a04 + 59e8: b340 st.w r2, (r3, 0x0) + } + value = *queue_out ++; + 59ea: 9340 ld.w r2, (r3, 0x0) + 59ec: 5a22 addi r1, r2, 1 + 59ee: b320 st.w r1, (r3, 0x0) + 59f0: 8200 ld.b r0, (r2, 0x0) + 59f2: 7400 zextb r0, r0 + } + + + return value; +} + 59f4: 783c jmp r15 + 59f6: 0000 bkpt + 59f8: 2000049c .long 0x2000049c + 59fc: 2000040c .long 0x2000040c + 5a00: 20000409 .long 0x20000409 + 5a04: 20000300 .long 0x20000300 + +Disassembly of section .text.with_data_rxbuff: + +00005a08 : + * @param Null + * @return the queue state + */ +unsigned char with_data_rxbuff(void) +{ + if(queue_out != queue_in) + 5a08: 1065 lrw r3, 0x2000049c // 5a1c + 5a0a: 3000 movi r0, 0 + 5a0c: 9340 ld.w r2, (r3, 0x0) + 5a0e: 1065 lrw r3, 0x2000040c // 5a20 + 5a10: 9360 ld.w r3, (r3, 0x0) + 5a12: 64ca cmpne r2, r3 + 5a14: 6001 addc r0, r0 + 5a16: 7400 zextb r0, r0 + return 1; + else + return 0; +} + 5a18: 783c jmp r15 + 5a1a: 0000 bkpt + 5a1c: 2000049c .long 0x2000049c + 5a20: 2000040c .long 0x2000040c + +Disassembly of section .text.RF_Info_Init: + +00005a24 : + + + + +void RF_Info_Init(void) +{ + 5a24: 14d1 push r4, r15 + memset(&rf_info,0,sizeof(RF_INFO)); + 5a26: 1089 lrw r4, 0x200004a0 // 5a48 + 5a28: 3203 movi r2, 3 + 5a2a: 3100 movi r1, 0 + 5a2c: 6c13 mov r0, r4 + 5a2e: e3ffdf9b bsr 0x1964 // 1964 <__memset_fast> + + queue_in = (unsigned char *)zigbee_queue_buf; + 5a32: 1067 lrw r3, 0x20000300 // 5a4c + 5a34: 1047 lrw r2, 0x2000040c // 5a50 + 5a36: b260 st.w r3, (r2, 0x0) + queue_out = (unsigned char *)zigbee_queue_buf; + 5a38: 1047 lrw r2, 0x2000049c // 5a54 + 5a3a: b260 st.w r3, (r2, 0x0) + + rf_info.net_state = 0x01; + 5a3c: 3301 movi r3, 1 + 5a3e: a460 st.b r3, (r4, 0x0) + rf_info.setc_flag = 0x01; + rf_info.setf_flag = 0x01; + rf_info.fan_flag = 0x01; + rf_info.roomc_flag = 0x01; + rf_info.roomf_flag = 0x01; + rf_info.valve_flag = 0x01; + 5a40: 3300 movi r3, 0 + 5a42: 2b00 subi r3, 1 + 5a44: a461 st.b r3, (r4, 0x1) + +} + 5a46: 1491 pop r4, r15 + 5a48: 200004a0 .long 0x200004a0 + 5a4c: 20000300 .long 0x20000300 + 5a50: 2000040c .long 0x2000040c + 5a54: 2000049c .long 0x2000049c + +Disassembly of section .text.Add_Frame_Head: + +00005a58 : +* +* +* +*/ +void Add_Frame_Head(U8_T *data, U8_T cmd, U8_T lens) +{ + 5a58: 14c2 push r4-r5 + U16_T frameno = 0x00; + + data[HEAD_FIRST] = FIRST_FRAME_HEAD; + 5a5a: 3355 movi r3, 85 + 5a5c: a060 st.b r3, (r0, 0x0) + data[HEAD_SECOND] = SECOND_FRAME_HEAD; + 5a5e: 3300 movi r3, 0 + 5a60: 2b55 subi r3, 86 + 5a62: a061 st.b r3, (r0, 0x1) + data[PROTOCOL_VERSION] = SERIAL_PROTOCOL_VER; + 5a64: 3302 movi r3, 2 + 5a66: a062 st.b r3, (r0, 0x2) + if(seq_num > 0xfff0){ + 5a68: 10aa lrw r5, 0xfff0 // 5a90 + seq_num ++; + 5a6a: 106b lrw r3, 0x200000d4 // 5a94 + 5a6c: 8b80 ld.h r4, (r3, 0x0) + 5a6e: 2400 addi r4, 1 + 5a70: 7511 zexth r4, r4 + if(seq_num > 0xfff0){ + 5a72: 6514 cmphs r5, r4 + 5a74: 0c0b bf 0x5a8a // 5a8a + seq_num = 1; + 5a76: ab80 st.h r4, (r3, 0x0) + return seq_num; + 5a78: 8b60 ld.h r3, (r3, 0x0) + + frameno = seq_num_get(); + data[SEQ_HIGH] = (frameno << 8); + 5a7a: 3400 movi r4, 0 + data[SEQ_LOW] = (frameno & 0xff); + 5a7c: a064 st.b r3, (r0, 0x4) + + data[FRAME_TYPE] = cmd; + + data[LENGTH_HIGH] = lens >> 8; + 5a7e: 3300 movi r3, 0 + data[SEQ_HIGH] = (frameno << 8); + 5a80: a083 st.b r4, (r0, 0x3) + data[FRAME_TYPE] = cmd; + 5a82: a025 st.b r1, (r0, 0x5) + data[LENGTH_HIGH] = lens >> 8; + 5a84: a066 st.b r3, (r0, 0x6) + data[LENGTH_LOW] = lens & 0xff; + 5a86: a047 st.b r2, (r0, 0x7) + +} + 5a88: 1482 pop r4-r5 + seq_num = 1; + 5a8a: 3401 movi r4, 1 + 5a8c: 07f5 br 0x5a76 // 5a76 + 5a8e: 0000 bkpt + 5a90: 0000fff0 .long 0x0000fff0 + 5a94: 200000d4 .long 0x200000d4 + +Disassembly of section .text.Product_Info_Update: + +00005a98 : + + + +void Product_Info_Update(void) +{ + 5a98: 14d0 push r15 + 5a9a: 142a subi r14, r14, 40 + U8_T data[37]; + memset(data,0,sizeof(data)); + 5a9c: 6c3b mov r0, r14 + 5a9e: 3225 movi r2, 37 + 5aa0: 3100 movi r1, 0 + 5aa2: e3ffdf61 bsr 0x1964 // 1964 <__memset_fast> + U8_T lens = 0x00; + + lens += strlen("{\"p\":\""); + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5aa6: 107b lrw r3, 0x2270227b // 5b10 + + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5aa8: 300d movi r0, 13 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5aaa: b862 st.w r3, (r14, 0x8) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5aac: 6038 addu r0, r14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5aae: 107f lrw r3, 0x223a // 5b28 + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ab0: 3208 movi r2, 8 + 5ab2: 1039 lrw r1, 0x75db // 5b14 + memcpy(&data[DATA_START],"{\"p\":\"",lens); + 5ab4: dc6e1006 st.h r3, (r14, 0xc) + memcpy(&data[DATA_START + lens-1],(U8_T *)PRODUCT_KEY,strlen((U8_T *)PRODUCT_KEY)); + 5ab8: e3ffdf9a bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen((U8_T *)PRODUCT_KEY); + + memcpy(&data[DATA_START + lens-1],"\",\"v\":\"",strlen("\",\"v\":\"")); + 5abc: 3015 movi r0, 21 + 5abe: 6038 addu r0, r14 + 5ac0: 3207 movi r2, 7 + 5ac2: 1036 lrw r1, 0x75e4 // 5b18 + 5ac4: e3ffdf94 bsr 0x19ec // 19ec <__memcpy_fast> + lens += strlen("\",\"v\":\""); + + memcpy(&data[DATA_START + lens-1],(U8_T *)MCU_VER,strlen((U8_T *)MCU_VER)); + 5ac8: 1055 lrw r2, 0x2e302e31 // 5b1c + 5aca: b847 st.w r2, (r14, 0x1c) + 5acc: 1b07 addi r3, r14, 28 + 5ace: 3230 movi r2, 48 + 5ad0: a344 st.b r2, (r3, 0x4) + lens += strlen((U8_T *)MCU_VER); + + memcpy(&data[DATA_START + lens-1],"\"}",strlen("\"}")); + 5ad2: 3321 movi r3, 33 + 5ad4: 60f8 addu r3, r14 + 5ad6: 3222 movi r2, 34 + 5ad8: a340 st.b r2, (r3, 0x0) + 5ada: 327d movi r2, 125 + 5adc: a341 st.b r2, (r3, 0x1) + lens += strlen("\"}"); + + Add_Frame_Head(data,PRODUCT_INFO_CMD,lens); + 5ade: 6c3b mov r0, r14 + 5ae0: 321c movi r2, 28 + 5ae2: 3101 movi r1, 1 + 5ae4: e3ffffba bsr 0x5a58 // 5a58 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 5ae8: 3124 movi r1, 36 + 5aea: 6c3b mov r0, r14 + 5aec: e3ffff46 bsr 0x5978 // 5978 + 5af0: 1b08 addi r3, r14, 32 + 5af2: a304 st.b r0, (r3, 0x4) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 5af4: 6cbb mov r2, r14 + 5af6: 3325 movi r3, 37 + 5af8: 102a lrw r1, 0x75ec // 5b20 + 5afa: 3000 movi r0, 0 + 5afc: e3ffef6a bsr 0x39d0 // 39d0 + + UARTTransmit(UART2,data,lens); + 5b00: 1069 lrw r3, 0x20000038 // 5b24 + 5b02: 3225 movi r2, 37 + 5b04: 9300 ld.w r0, (r3, 0x0) + 5b06: 6c7b mov r1, r14 + 5b08: e3ffe2de bsr 0x20c4 // 20c4 +} + 5b0c: 140a addi r14, r14, 40 + 5b0e: 1490 pop r15 + 5b10: 2270227b .long 0x2270227b + 5b14: 000075db .long 0x000075db + 5b18: 000075e4 .long 0x000075e4 + 5b1c: 2e302e31 .long 0x2e302e31 + 5b20: 000075ec .long 0x000075ec + 5b24: 20000038 .long 0x20000038 + 5b28: 0000223a .long 0x0000223a + +Disassembly of section .text.Recv_RFNetState_Ack: + +00005b2c : + +void Recv_RFNetState_Ack(void) +{ + 5b2c: 14d0 push r15 + 5b2e: 1423 subi r14, r14, 12 + U8_T data[9]; + memset(data,0,sizeof(data)); + 5b30: 6c3b mov r0, r14 + 5b32: 3209 movi r2, 9 + 5b34: 3100 movi r1, 0 + 5b36: e3ffdf17 bsr 0x1964 // 1964 <__memset_fast> + + U8_T lens = 0x00; + + Add_Frame_Head(data,ZIGBEE_STATE_CMD,lens); + 5b3a: 3200 movi r2, 0 + 5b3c: 6c3b mov r0, r14 + 5b3e: 3102 movi r1, 2 + 5b40: e3ffff8c bsr 0x5a58 // 5a58 + + lens += PROTOCOL_HEAD; + + data[lens-1] = get_check_sum(data,(lens-1)); + 5b44: 3108 movi r1, 8 + 5b46: 6c3b mov r0, r14 + 5b48: e3ffff18 bsr 0x5978 // 5978 + + UARTTransmit(UART2,data,lens); + 5b4c: 1065 lrw r3, 0x20000038 // 5b60 + 5b4e: 3209 movi r2, 9 + data[lens-1] = get_check_sum(data,(lens-1)); + 5b50: dc0e0008 st.b r0, (r14, 0x8) + UARTTransmit(UART2,data,lens); + 5b54: 6c7b mov r1, r14 + 5b56: 9300 ld.w r0, (r3, 0x0) + 5b58: e3ffe2b6 bsr 0x20c4 // 20c4 +} + 5b5c: 1403 addi r14, r14, 12 + 5b5e: 1490 pop r15 + 5b60: 20000038 .long 0x20000038 + +Disassembly of section .text.Tem_Fun_Ctrl_Report: + +00005b64 : + + +void Tem_Fun_Ctrl_Report(U8_T datalens,U8_T dpid,U8_T type,U32_T state,U8_T source) +{ + 5b64: 14d4 push r4-r7, r15 + 5b66: 1426 subi r14, r14, 24 + 5b68: 6d4f mov r5, r3 + 5b6a: 1b0b addi r3, r14, 44 + 5b6c: 6d8b mov r6, r2 + 5b6e: 8360 ld.b r3, (r3, 0x0) + 5b70: 6dc7 mov r7, r1 + 5b72: 6d03 mov r4, r0 + U8_T data[17]; + memset(data,0,sizeof(data)); + 5b74: 3211 movi r2, 17 + 5b76: 3100 movi r1, 0 + 5b78: 1801 addi r0, r14, 4 +{ + 5b7a: b860 st.w r3, (r14, 0x0) + memset(data,0,sizeof(data)); + 5b7c: e3ffdef4 bsr 0x1964 // 1964 <__memset_fast> + U8_T cmd = 0x00; + + data[DATA_START] = dpid; //dpID + data[DATA_START+1] = type; //数据类型 + + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 5b80: 3e41 cmpnei r6, 1 + data[DATA_START] = dpid; //dpID + 5b82: dcee000c st.b r7, (r14, 0xc) + data[DATA_START+1] = type; //数据类型 + 5b86: dcce000d st.b r6, (r14, 0xd) + if(type == DP_TYPE_BOOL || type == DP_TYPE_ENUM) + 5b8a: 9860 ld.w r3, (r14, 0x0) + 5b8c: 0c03 bf 0x5b92 // 5b92 + 5b8e: 3e44 cmpnei r6, 4 + 5b90: 0829 bt 0x5be2 // 5be2 + { + data[DATA_START+2] = 0x00; + data[DATA_START+3] = 0x01; + 5b92: 3201 movi r2, 1 + 5b94: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state&0xff; + 5b98: dcae0010 st.b r5, (r14, 0x10) + data[DATA_START+5] = state>>16; + data[DATA_START+6] = state>>8; + data[DATA_START+7] = state&0xff; + } + + if(source == ACTIVE) + 5b9c: 3b41 cmpnei r3, 1 + 5b9e: 0c33 bf 0x5c04 // 5c04 + { + cmd = 0x06; + } + else if(source == PASSIVE) + 5ba0: 3b42 cmpnei r3, 2 + 5ba2: 0833 bt 0x5c08 // 5c08 + { + cmd = 0x05; + 5ba4: 3105 movi r1, 5 + } + + Add_Frame_Head(data,cmd,datalens); + 5ba6: 6c93 mov r2, r4 + + lens = PROTOCOL_HEAD + datalens; + 5ba8: 2408 addi r4, 9 + 5baa: 7510 zextb r4, r4 + + data[lens-1] = get_check_sum(data,(lens-1)); + 5bac: 7551 zexth r5, r4 + Add_Frame_Head(data,cmd,datalens); + 5bae: 1801 addi r0, r14, 4 + 5bb0: e3ffff54 bsr 0x5a58 // 5a58 + data[lens-1] = get_check_sum(data,(lens-1)); + 5bb4: 5d23 subi r1, r5, 1 + 5bb6: 7445 zexth r1, r1 + 5bb8: 1801 addi r0, r14, 4 + 5bba: e3fffedf bsr 0x5978 // 5978 + 5bbe: 1b01 addi r3, r14, 4 + 5bc0: 610c addu r4, r3 + 5bc2: 2c00 subi r4, 1 + 5bc4: a400 st.b r0, (r4, 0x0) + + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"RF Report Buff:",data,lens); + 5bc6: 6cd7 mov r3, r5 + 5bc8: 1a01 addi r2, r14, 4 + 5bca: 1031 lrw r1, 0x75ec // 5c0c + 5bcc: 3000 movi r0, 0 + 5bce: e3ffef01 bsr 0x39d0 // 39d0 + + UARTTransmit(UART2,data,lens); + 5bd2: 1070 lrw r3, 0x20000038 // 5c10 + 5bd4: 6c97 mov r2, r5 + 5bd6: 9300 ld.w r0, (r3, 0x0) + 5bd8: 1901 addi r1, r14, 4 + 5bda: e3ffe275 bsr 0x20c4 // 20c4 +} + 5bde: 1406 addi r14, r14, 24 + 5be0: 1494 pop r4-r7, r15 + else if(type == DP_TYPE_VALUE) + 5be2: 3e42 cmpnei r6, 2 + 5be4: 0bdc bt 0x5b9c // 5b9c + data[DATA_START+3] = 0x04; + 5be6: 3204 movi r2, 4 + 5be8: dc4e000f st.b r2, (r14, 0xf) + data[DATA_START+4] = state>>24; + 5bec: 4d58 lsri r2, r5, 24 + 5bee: dc4e0010 st.b r2, (r14, 0x10) + data[DATA_START+5] = state>>16; + 5bf2: 4d50 lsri r2, r5, 16 + 5bf4: dc4e0011 st.b r2, (r14, 0x11) + data[DATA_START+6] = state>>8; + 5bf8: 4d48 lsri r2, r5, 8 + 5bfa: dc4e0012 st.b r2, (r14, 0x12) + data[DATA_START+7] = state&0xff; + 5bfe: dcae0013 st.b r5, (r14, 0x13) + 5c02: 07cd br 0x5b9c // 5b9c + cmd = 0x06; + 5c04: 3106 movi r1, 6 + 5c06: 07d0 br 0x5ba6 // 5ba6 + U8_T cmd = 0x00; + 5c08: 3100 movi r1, 0 + 5c0a: 07ce br 0x5ba6 // 5ba6 + 5c0c: 000075ec .long 0x000075ec + 5c10: 20000038 .long 0x20000038 + +Disassembly of section .text.data_handle: + +00005c14 : +* @brief handle received frame from zigbee module baseon frame cmd id +* @param[in] {void} +* @return result of handle +*/ +int data_handle(unsigned short offset) +{ + 5c14: 14d2 push r4-r5, r15 + unsigned char ret; + unsigned short i; + + U32_T temp = 0x00; + + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c16: 5872 addi r3, r0, 5 + 5c18: 1286 lrw r4, 0x20000410 // 5d30 + + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 5c1a: 5856 addi r2, r0, 6 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c1c: 60d0 addu r3, r4 + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 5c1e: 6090 addu r2, r4 + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c20: 8360 ld.b r3, (r3, 0x0) + total_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH] * 0x100; + 5c22: 8240 ld.b r2, (r2, 0x0) + total_len += zigbee_uart_rx_buf[offset + LENGTH_LOW]; + 5c24: 585a addi r2, r0, 7 + 5c26: 6090 addu r2, r4 + 5c28: 8240 ld.b r2, (r2, 0x0) + + seq_num = zigbee_uart_rx_buf[offset + SEQ_HIGH] << 8; + 5c2a: 584a addi r2, r0, 3 + 5c2c: 6090 addu r2, r4 + 5c2e: 8240 ld.b r2, (r2, 0x0) + cmd_type = zigbee_uart_rx_buf[offset + FRAME_TYPE]; + 5c30: 74cc zextb r3, r3 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 5c32: 584e addi r2, r0, 4 + 5c34: 6090 addu r2, r4 + + switch(cmd_type) + 5c36: 3b42 cmpnei r3, 2 + seq_num += zigbee_uart_rx_buf[offset + SEQ_LOW]; + 5c38: 8240 ld.b r2, (r2, 0x0) + switch(cmd_type) + 5c3a: 0c09 bf 0x5c4c // 5c4c + 5c3c: 3b44 cmpnei r3, 4 + 5c3e: 0c13 bf 0x5c64 // 5c64 + 5c40: 3b41 cmpnei r3, 1 + 5c42: 0803 bt 0x5c48 // 5c48 + { + case PRODUCT_INFO_CMD: //RF查询产品信息 + Product_Info_Update(); + 5c44: e3ffff2a bsr 0x5a98 // 5a98 + default: + return ret = 0x01; + break; + } + return 1; +} + 5c48: 3001 movi r0, 1 + 5c4a: 1492 pop r4-r5, r15 + if(rf_info.net_state != zigbee_uart_rx_buf[offset + DATA_START]) + 5c4c: 587e addi r3, r0, 8 + 5c4e: 5c0c addu r0, r4, r3 + 5c50: 1179 lrw r3, 0x200004a0 // 5d34 + 5c52: 8040 ld.b r2, (r0, 0x0) + 5c54: 8320 ld.b r1, (r3, 0x0) + 5c56: 6486 cmpne r1, r2 + 5c58: 0c03 bf 0x5c5e // 5c5e + rf_info.net_state = zigbee_uart_rx_buf[offset + DATA_START]; + 5c5a: 8040 ld.b r2, (r0, 0x0) + 5c5c: a340 st.b r2, (r3, 0x0) + Recv_RFNetState_Ack(); + 5c5e: e3ffff67 bsr 0x5b2c // 5b2c + break; + 5c62: 07f3 br 0x5c48 // 5c48 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 5c64: 587e addi r3, r0, 8 + 5c66: 60d0 addu r3, r4 + 5c68: 8360 ld.b r3, (r3, 0x0) + 5c6a: 74cc zextb r3, r3 + 5c6c: 3b42 cmpnei r3, 2 + 5c6e: 0c2a bf 0x5cc2 // 5cc2 + 5c70: 3b02 cmphsi r3, 3 + 5c72: 0812 bt 0x5c96 // 5c96 + 5c74: 3b41 cmpnei r3, 1 + 5c76: 0be9 bt 0x5c48 // 5c48 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5c78: 200b addi r0, 12 + 5c7a: 6010 addu r0, r4 + 5c7c: 8060 ld.b r3, (r0, 0x0) + 5c7e: 112f lrw r1, 0x200002e0 // 5d38 + 5c80: 4347 lsli r2, r3, 7 + 5c82: 307f movi r0, 127 + 5c84: 8162 ld.b r3, (r1, 0x2) + 5c86: 68c0 and r3, r0 + 5c88: 6cc8 or r3, r2 + rf_info.switc_flag = 0x01; + 5c8a: 114b lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.on_off = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5c8c: a162 st.b r3, (r1, 0x2) + rf_info.switc_flag = 0x01; + 5c8e: 8261 ld.b r3, (r2, 0x1) + 5c90: 3ba0 bseti r3, 0 + rf_info.fan_flag = 0x01; + 5c92: a261 st.b r3, (r2, 0x1) + break; + 5c94: 07da br 0x5c48 // 5c48 + switch(zigbee_uart_rx_buf[offset + DATA_START]) + 5c96: 3b50 cmpnei r3, 16 + 5c98: 0c25 bf 0x5ce2 // 5ce2 + 5c9a: 3240 movi r2, 64 + 5c9c: 648e cmpne r3, r2 + 5c9e: 0bd5 bt 0x5c48 // 5c48 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5ca0: 6cc3 mov r3, r0 + 5ca2: 230b addi r3, 12 + 5ca4: 5c0c addu r0, r4, r3 + 5ca6: 8060 ld.b r3, (r0, 0x0) + 5ca8: 3207 movi r2, 7 + 5caa: 1124 lrw r1, 0x200002e0 // 5d38 + 5cac: 68c8 and r3, r2 + 5cae: 4341 lsli r2, r3, 1 + 5cb0: 300e movi r0, 14 + 5cb2: 8162 ld.b r3, (r1, 0x2) + 5cb4: 68c1 andn r3, r0 + 5cb6: 6cc8 or r3, r2 + rf_info.fan_flag = 0x01; + 5cb8: 105f lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.fan = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5cba: a162 st.b r3, (r1, 0x2) + rf_info.fan_flag = 0x01; + 5cbc: 8261 ld.b r3, (r2, 0x1) + 5cbe: 3ba4 bseti r3, 4 + 5cc0: 07e9 br 0x5c92 // 5c92 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5cc2: 200b addi r0, 12 + 5cc4: 6010 addu r0, r4 + 5cc6: 8060 ld.b r3, (r0, 0x0) + 5cc8: 3207 movi r2, 7 + 5cca: 103c lrw r1, 0x200002e0 // 5d38 + 5ccc: 68c8 and r3, r2 + 5cce: 4344 lsli r2, r3, 4 + 5cd0: 3070 movi r0, 112 + 5cd2: 8162 ld.b r3, (r1, 0x2) + 5cd4: 68c1 andn r3, r0 + 5cd6: 6cc8 or r3, r2 + rf_info.model_flag = 0x01; + 5cd8: 1057 lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.mode = zigbee_uart_rx_buf[offset + DATA_START + 4]; + 5cda: a162 st.b r3, (r1, 0x2) + rf_info.model_flag = 0x01; + 5cdc: 8261 ld.b r3, (r2, 0x1) + 5cde: 3ba1 bseti r3, 1 + 5ce0: 07d9 br 0x5c92 // 5c92 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 5ce2: 330c movi r3, 12 + 5ce4: 60c0 addu r3, r0 + 5ce6: 60d0 addu r3, r4 + 5ce8: 83a0 ld.b r5, (r3, 0x0) + 5cea: 330d movi r3, 13 + 5cec: 60c0 addu r3, r0 + 5cee: 60d0 addu r3, r4 + 5cf0: 8340 ld.b r2, (r3, 0x0) + 5cf2: 330e movi r3, 14 + 5cf4: 60c0 addu r3, r0 + 5cf6: 6c43 mov r1, r0 + 5cf8: 60d0 addu r3, r4 + 5cfa: 8360 ld.b r3, (r3, 0x0) + 5cfc: 4250 lsli r2, r2, 16 + 5cfe: 210e addi r1, 15 + 5d00: 4518 lsli r0, r5, 24 + 5d02: 6008 addu r0, r2 + 5d04: 4368 lsli r3, r3, 8 + 5d06: 6050 addu r1, r4 + 5d08: 600c addu r0, r3 + 5d0a: 8120 ld.b r1, (r1, 0x0) + if((temp>=50) && (temp<=350)) + 5d0c: 3200 movi r2, 0 + temp = (zigbee_uart_rx_buf[offset + DATA_START + 4]<<24) + (zigbee_uart_rx_buf[offset + DATA_START + 5]<<16) + (zigbee_uart_rx_buf[offset + DATA_START + 6]<<8) + zigbee_uart_rx_buf[offset + DATA_START + 7]; + 5d0e: 6004 addu r0, r1 + if((temp>=50) && (temp<=350)) + 5d10: 2a31 subi r2, 50 + 5d12: 3396 movi r3, 150 + 5d14: 6080 addu r2, r0 + 5d16: 4361 lsli r3, r3, 1 + 5d18: 648c cmphs r3, r2 + 5d1a: 0f97 bf 0x5c48 // 5c48 + TempCtrl.TemState_Now.set_t = temp / 10; + 5d1c: 310a movi r1, 10 + 5d1e: e3ffed53 bsr 0x37c4 // 37c4 <__udivsi3> + 5d22: 1066 lrw r3, 0x200002e0 // 5d38 + rf_info.setc_flag = 0x01; + 5d24: 1044 lrw r2, 0x200004a0 // 5d34 + TempCtrl.TemState_Now.set_t = temp / 10; + 5d26: a301 st.b r0, (r3, 0x1) + rf_info.setc_flag = 0x01; + 5d28: 8261 ld.b r3, (r2, 0x1) + 5d2a: 3ba2 bseti r3, 2 + 5d2c: 07b3 br 0x5c92 // 5c92 + 5d2e: 0000 bkpt + 5d30: 20000410 .long 0x20000410 + 5d34: 200004a0 .long 0x200004a0 + 5d38: 200002e0 .long 0x200002e0 + +Disassembly of section .text.zigbee_uart_service: + +00005d3c : +* @brief uart receive data handle, call this function at mian loop +* @param[in] {void} +* @return void +*/ +void zigbee_uart_service(void) +{ + 5d3c: 14d4 push r4-r7, r15 + 5d3e: 1421 subi r14, r14, 4 + unsigned short rx_value_len = 0; + unsigned short protocol_version = 0, protocol_head_len = PROTOCOL_HEAD; + + + + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 5d40: 11b6 lrw r5, 0x200000d4 // 5e18 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 5d42: 11d7 lrw r6, 0x20000410 // 5e1c + while((rx_in < sizeof(zigbee_uart_rx_buf)) && (with_data_rxbuff() > 0)){ + 5d44: 8d81 ld.h r4, (r5, 0x2) + 5d46: 3388 movi r3, 136 + 5d48: 650c cmphs r3, r4 + 5d4a: 0c07 bf 0x5d58 // 5d58 + 5d4c: e3fffe5e bsr 0x5a08 // 5a08 + 5d50: 3840 cmpnei r0, 0 + 5d52: 0817 bt 0x5d80 // 5d80 + } + + if(rx_in < PROTOCOL_HEAD){ + 5d54: 3c08 cmphsi r4, 9 + 5d56: 0c40 bf 0x5dd6 // 5dd6 + return; + } + + while((rx_in - offset) >= PROTOCOL_HEAD){ + + Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + 5d58: 1172 lrw r3, 0x75fc // 5e20 + 5d5a: 3400 movi r4, 0 + 5d5c: b860 st.w r3, (r14, 0x0) + + + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 5d5e: 11f0 lrw r7, 0x20000410 // 5e1c + while((rx_in - offset) >= PROTOCOL_HEAD){ + 5d60: 8d41 ld.h r2, (r5, 0x2) + 5d62: 6092 subu r2, r4 + 5d64: 3a28 cmplti r2, 9 + 5d66: 0832 bt 0x5dca // 5dca + Dbg_Println(DBG_BIT_SYS_STATUS,"zigbee_uart_service!"); + 5d68: 9820 ld.w r1, (r14, 0x0) + 5d6a: 3000 movi r0, 0 + 5d6c: e3ffee2c bsr 0x39c4 // 39c4 + if(zigbee_uart_rx_buf[offset + HEAD_FIRST] != FIRST_FRAME_HEAD){ + 5d70: 5f10 addu r0, r7, r4 + 5d72: 3255 movi r2, 85 + 5d74: 8020 ld.b r1, (r0, 0x0) + 5d76: 6486 cmpne r1, r2 + 5d78: 5c42 addi r2, r4, 1 + 5d7a: 0c0a bf 0x5d8e // 5d8e + + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + { + offset += 2; + 5d7c: 7509 zexth r4, r2 + continue; + 5d7e: 07f1 br 0x5d60 // 5d60 + zigbee_uart_rx_buf[rx_in++] = Queue_Read_Byte(); + 5d80: 5c62 addi r3, r4, 1 + 5d82: ad61 st.h r3, (r5, 0x2) + 5d84: 6118 addu r4, r6 + 5d86: e3fffe27 bsr 0x59d4 // 59d4 + 5d8a: a400 st.b r0, (r4, 0x0) + 5d8c: 07dc br 0x5d44 // 5d44 + if(zigbee_uart_rx_buf[offset + HEAD_SECOND] != SECOND_FRAME_HEAD){ + 5d8e: 5f28 addu r1, r7, r2 + 5d90: 81c0 ld.b r6, (r1, 0x0) + 5d92: 31aa movi r1, 170 + 5d94: 645a cmpne r6, r1 + 5d96: 0bf3 bt 0x5d7c // 5d7c + protocol_version = zigbee_uart_rx_buf[offset + PROTOCOL_VERSION]; + 5d98: 5c46 addi r2, r4, 2 + 5d9a: 5f28 addu r1, r7, r2 + 5d9c: 8120 ld.b r1, (r1, 0x0) + if(protocol_version != SERIAL_PROTOCOL_VER) /*version 2 is more than two byte sequence number than version 1*/ + 5d9e: 3942 cmpnei r1, 2 + 5da0: 0bee bt 0x5d7c // 5d7c + } + + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 5da2: 5c56 addi r2, r4, 6 + 5da4: 609c addu r2, r7 + 5da6: 82c0 ld.b r6, (r2, 0x0) + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 5da8: 5c5a addi r2, r4, 7 + 5daa: 609c addu r2, r7 + 5dac: 8240 ld.b r2, (r2, 0x0) + 5dae: 2208 addi r2, 9 + rx_value_len = zigbee_uart_rx_buf[offset + LENGTH_HIGH ] * 0x100; + 5db0: 46c8 lsli r6, r6, 8 + rx_value_len += (zigbee_uart_rx_buf[offset + LENGTH_LOW] + PROTOCOL_HEAD); + 5db2: 6188 addu r6, r2 + 5db4: 7599 zexth r6, r6 + + if(rx_value_len > sizeof(zigbee_uart_rx_buf)){ + 5db6: 3289 movi r2, 137 + 5db8: 6588 cmphs r2, r6 + 5dba: 0804 bt 0x5dc2 // 5dc2 + if((rx_in - offset) < rx_value_len){ + break; + } + + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + offset += 3; + 5dbc: 2402 addi r4, 3 + 5dbe: 7511 zexth r4, r4 + continue; + 5dc0: 07d0 br 0x5d60 // 5d60 + if((rx_in - offset) < rx_value_len){ + 5dc2: 8d41 ld.h r2, (r5, 0x2) + 5dc4: 6092 subu r2, r4 + 5dc6: 6589 cmplt r2, r6 + 5dc8: 0c09 bf 0x5dda // 5dda + } + + data_handle(offset); + offset += rx_value_len; + } + rx_in -= offset; + 5dca: 8d61 ld.h r3, (r5, 0x2) + 5dcc: 60d2 subu r3, r4 + 5dce: 74cd zexth r3, r3 + + if(rx_in > 0){ + 5dd0: 3b40 cmpnei r3, 0 + rx_in -= offset; + 5dd2: ad61 st.h r3, (r5, 0x2) + if(rx_in > 0){ + 5dd4: 0812 bt 0x5df8 // 5df8 + offset++; + rx_in -= offset; + } + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + } +} + 5dd6: 1401 addi r14, r14, 4 + 5dd8: 1494 pop r4-r7, r15 + if( get_check_sum((unsigned char *)zigbee_uart_rx_buf + offset, rx_value_len - 1) != zigbee_uart_rx_buf[offset + rx_value_len - 1]){ + 5dda: 5e23 subi r1, r6, 1 + 5ddc: 7445 zexth r1, r1 + 5dde: 6190 addu r6, r4 + 5de0: e3fffdcc bsr 0x5978 // 5978 + 5de4: 5e43 subi r2, r6, 1 + 5de6: 609c addu r2, r7 + 5de8: 8240 ld.b r2, (r2, 0x0) + 5dea: 6482 cmpne r0, r2 + 5dec: 0be8 bt 0x5dbc // 5dbc + data_handle(offset); + 5dee: 6c13 mov r0, r4 + 5df0: e3ffff12 bsr 0x5c14 // 5c14 + offset += rx_value_len; + 5df4: 7519 zexth r4, r6 + 5df6: 07b5 br 0x5d60 // 5d60 + if((offset == 0) && (rx_in >= sizeof(zigbee_uart_rx_buf))){ + 5df8: 3c40 cmpnei r4, 0 + 5dfa: 0807 bt 0x5e08 // 5e08 + 5dfc: 3288 movi r2, 136 + 5dfe: 64c8 cmphs r2, r3 + 5e00: 0804 bt 0x5e08 // 5e08 + rx_in -= offset; + 5e02: 2b00 subi r3, 1 + 5e04: ad61 st.h r3, (r5, 0x2) + offset++; + 5e06: 3401 movi r4, 1 + memcpy((char*)zigbee_uart_rx_buf, (const char *)zigbee_uart_rx_buf + offset, rx_in); + 5e08: 1025 lrw r1, 0x20000410 // 5e1c + 5e0a: 8d41 ld.h r2, (r5, 0x2) + 5e0c: 6050 addu r1, r4 + 5e0e: 1004 lrw r0, 0x20000410 // 5e1c + 5e10: e3ffddee bsr 0x19ec // 19ec <__memcpy_fast> + 5e14: 07e1 br 0x5dd6 // 5dd6 + 5e16: 0000 bkpt + 5e18: 200000d4 .long 0x200000d4 + 5e1c: 20000410 .long 0x20000410 + 5e20: 000075fc .long 0x000075fc + +Disassembly of section .text.TemFun_Report_Task: + +00005e24 : + + + +void TemFun_Report_Task(void) +{ + 5e24: 14d2 push r4-r5, r15 + 5e26: 1421 subi r14, r14, 4 + if(rf_info.net_state == ZIGBEE_JOIN_GATEWAY) + 5e28: 1280 lrw r4, 0x200004a0 // 5f28 + 5e2a: 84a0 ld.b r5, (r4, 0x0) + 5e2c: 3d41 cmpnei r5, 1 + 5e2e: 0840 bt 0x5eae // 5eae + { + if(rf_info.switc_flag == 0x01) //开关 + 5e30: 8441 ld.b r2, (r4, 0x1) + 5e32: 74c8 zextb r3, r2 + 5e34: 3101 movi r1, 1 + 5e36: 684c and r1, r3 + 5e38: 3940 cmpnei r1, 0 + 5e3a: 0c11 bf 0x5e5c // 5e5c + { + Dbg_Println(DBG_BIT_SYS_STATUS,"report onoff"); + 5e3c: 113c lrw r1, 0x7611 // 5f2c + 5e3e: 3000 movi r0, 0 + 5e40: e3ffedc2 bsr 0x39c4 // 39c4 + rf_info.switc_flag = 0x00; + 5e44: 8461 ld.b r3, (r4, 0x1) + 5e46: 3b80 bclri r3, 0 + 5e48: a461 st.b r3, (r4, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_SWITCH,DP_TYPE_BOOL,TempCtrl.TemState_Now.on_off,PASSIVE); + 5e4a: 3202 movi r2, 2 + 5e4c: 1179 lrw r3, 0x200002e0 // 5f30 + 5e4e: 8362 ld.b r3, (r3, 0x2) + 5e50: 4b67 lsri r3, r3, 7 + 5e52: b840 st.w r2, (r14, 0x0) + 5e54: 3101 movi r1, 1 + 5e56: 3201 movi r2, 1 + } + else if(rf_info.valve_flag == 0x01) //阀门状态 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + rf_info.valve_flag = 0x00; + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 5e58: 3005 movi r0, 5 + 5e5a: 0428 br 0x5eaa // 5eaa + else if(rf_info.model_flag == 0x01) //模式 + 5e5c: 3102 movi r1, 2 + 5e5e: 684c and r1, r3 + 5e60: 3940 cmpnei r1, 0 + 5e62: 0c11 bf 0x5e84 // 5e84 + Dbg_Println(DBG_BIT_SYS_STATUS,"report model state"); + 5e64: 1134 lrw r1, 0x761e // 5f34 + 5e66: 3000 movi r0, 0 + 5e68: e3ffedae bsr 0x39c4 // 39c4 + rf_info.model_flag = 0x00; + 5e6c: 8461 ld.b r3, (r4, 0x1) + 5e6e: 3b81 bclri r3, 1 + 5e70: a461 st.b r3, (r4, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_MODE,DP_TYPE_ENUM,TempCtrl.TemState_Now.mode,PASSIVE); + 5e72: 3202 movi r2, 2 + 5e74: 116f lrw r3, 0x200002e0 // 5f30 + 5e76: 8362 ld.b r3, (r3, 0x2) + 5e78: 4379 lsli r3, r3, 25 + 5e7a: b840 st.w r2, (r14, 0x0) + 5e7c: 4b7d lsri r3, r3, 29 + 5e7e: 3204 movi r2, 4 + 5e80: 3102 movi r1, 2 + 5e82: 07eb br 0x5e58 // 5e58 + else if(rf_info.setc_flag == 0x01) //设置温度 + 5e84: 3104 movi r1, 4 + 5e86: 684c and r1, r3 + 5e88: 3940 cmpnei r1, 0 + 5e8a: 0c14 bf 0x5eb2 // 5eb2 + Dbg_Println(DBG_BIT_SYS_STATUS,"report set temp"); + 5e8c: 112b lrw r1, 0x7631 // 5f38 + 5e8e: 3000 movi r0, 0 + 5e90: e3ffed9a bsr 0x39c4 // 39c4 + rf_info.setc_flag = 0x00; + 5e94: 8461 ld.b r3, (r4, 0x1) + 5e96: 3b82 bclri r3, 2 + 5e98: a461 st.b r3, (r4, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_SET,DP_TYPE_VALUE,(TempCtrl.TemState_Now.set_t*10),PASSIVE); + 5e9a: 320a movi r2, 10 + 5e9c: 1165 lrw r3, 0x200002e0 // 5f30 + 5e9e: 8361 ld.b r3, (r3, 0x1) + 5ea0: 7cc8 mult r3, r2 + 5ea2: 3202 movi r2, 2 + 5ea4: b840 st.w r2, (r14, 0x0) + 5ea6: 3110 movi r1, 16 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 5ea8: 3008 movi r0, 8 + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 5eaa: e3fffe5d bsr 0x5b64 // 5b64 + } + } + 5eae: 1401 addi r14, r14, 4 + 5eb0: 1492 pop r4-r5, r15 + else if(rf_info.fan_flag == 0x01) //风速 + 5eb2: 3110 movi r1, 16 + 5eb4: 684c and r1, r3 + 5eb6: 3940 cmpnei r1, 0 + 5eb8: 0c11 bf 0x5eda // 5eda + rf_info.fan_flag = 0x00; + 5eba: 3a84 bclri r2, 4 + 5ebc: a441 st.b r2, (r4, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"report fan state flag:%d",rf_info.fan_flag); + 5ebe: 3000 movi r0, 0 + 5ec0: 3200 movi r2, 0 + 5ec2: 103f lrw r1, 0x7641 // 5f3c + 5ec4: e3ffed80 bsr 0x39c4 // 39c4 + Tem_Fun_Ctrl_Report(0x05,DPID_FAN,DP_TYPE_ENUM,TempCtrl.TemState_Now.fan,PASSIVE); + 5ec8: 107a lrw r3, 0x200002e0 // 5f30 + 5eca: 8362 ld.b r3, (r3, 0x2) + 5ecc: 3202 movi r2, 2 + 5ece: 437c lsli r3, r3, 28 + 5ed0: b840 st.w r2, (r14, 0x0) + 5ed2: 4b7d lsri r3, r3, 29 + 5ed4: 3204 movi r2, 4 + 5ed6: 3140 movi r1, 64 + 5ed8: 07c0 br 0x5e58 // 5e58 + else if(rf_info.roomc_flag == 0x01) //室内温度 + 5eda: 3220 movi r2, 32 + 5edc: 688c and r2, r3 + 5ede: 3a40 cmpnei r2, 0 + 5ee0: 0c11 bf 0x5f02 // 5f02 + Dbg_Println(DBG_BIT_SYS_STATUS,"report room temp"); + 5ee2: 1038 lrw r1, 0x765a // 5f40 + 5ee4: 3000 movi r0, 0 + 5ee6: e3ffed6f bsr 0x39c4 // 39c4 + rf_info.roomc_flag = 0x00; + 5eea: 8461 ld.b r3, (r4, 0x1) + 5eec: 3b85 bclri r3, 5 + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 5eee: 1051 lrw r2, 0x200002e0 // 5f30 + rf_info.roomc_flag = 0x00; + 5ef0: a461 st.b r3, (r4, 0x1) + Tem_Fun_Ctrl_Report(0x08,DPID_ROOMT,DP_TYPE_VALUE,TempCtrl.IndoorTem,ACTIVE); + 5ef2: 8269 ld.b r3, (r2, 0x9) + 5ef4: 8228 ld.b r1, (r2, 0x8) + 5ef6: 4368 lsli r3, r3, 8 + 5ef8: 6cc4 or r3, r1 + 5efa: b8a0 st.w r5, (r14, 0x0) + 5efc: 3202 movi r2, 2 + 5efe: 3118 movi r1, 24 + 5f00: 07d4 br 0x5ea8 // 5ea8 + else if(rf_info.valve_flag == 0x01) //阀门状态 + 5f02: 74ce sextb r3, r3 + 5f04: 3bdf btsti r3, 31 + 5f06: 0fd4 bf 0x5eae // 5eae + Dbg_Println(DBG_BIT_SYS_STATUS,"report valve state"); + 5f08: 102f lrw r1, 0x766b // 5f44 + 5f0a: 3000 movi r0, 0 + 5f0c: e3ffed5c bsr 0x39c4 // 39c4 + rf_info.valve_flag = 0x00; + 5f10: 8461 ld.b r3, (r4, 0x1) + 5f12: 327f movi r2, 127 + 5f14: 68c8 and r3, r2 + 5f16: a461 st.b r3, (r4, 0x1) + Tem_Fun_Ctrl_Report(0x05,DPID_VALVE,DP_TYPE_ENUM,TempCtrl.TemState_Now.valve,ACTIVE); + 5f18: 3204 movi r2, 4 + 5f1a: 1066 lrw r3, 0x200002e0 // 5f30 + 5f1c: 8362 ld.b r3, (r3, 0x2) + 5f1e: 437f lsli r3, r3, 31 + 5f20: 4b7f lsri r3, r3, 31 + 5f22: b8a0 st.w r5, (r14, 0x0) + 5f24: 3124 movi r1, 36 + 5f26: 0799 br 0x5e58 // 5e58 + 5f28: 200004a0 .long 0x200004a0 + 5f2c: 00007611 .long 0x00007611 + 5f30: 200002e0 .long 0x200002e0 + 5f34: 0000761e .long 0x0000761e + 5f38: 00007631 .long 0x00007631 + 5f3c: 00007641 .long 0x00007641 + 5f40: 0000765a .long 0x0000765a + 5f44: 0000766b .long 0x0000766b + +Disassembly of section .text.Relay_Init: + +00005f48 : +#include "includes.h" + + +void Relay_Init(void) +{ + 5f48: 14d2 push r4-r5, r15 + GPIO_Init(GPIOA0,RLY1_HOT_PIN,Output); + 5f4a: 10b9 lrw r5, 0x2000004c // 5fac + 5f4c: 3200 movi r2, 0 + 5f4e: 9500 ld.w r0, (r5, 0x0) + 5f50: 310e movi r1, 14 + 5f52: e3ffdf1b bsr 0x1d88 // 1d88 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 5f56: 1097 lrw r4, 0x20000048 // 5fb0 + GPIO_Init(GPIOA0,RLY2_COLD_PIN,Output); + 5f58: 3200 movi r2, 0 + 5f5a: 9500 ld.w r0, (r5, 0x0) + 5f5c: 310f movi r1, 15 + 5f5e: e3ffdf15 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY3_HIGH_PIN,Output); + 5f62: 9400 ld.w r0, (r4, 0x0) + 5f64: 3200 movi r2, 0 + 5f66: 3101 movi r1, 1 + 5f68: e3ffdf10 bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY4_MID_PIN,Output); + 5f6c: 9400 ld.w r0, (r4, 0x0) + 5f6e: 3200 movi r2, 0 + 5f70: 3102 movi r1, 2 + 5f72: e3ffdf0b bsr 0x1d88 // 1d88 + GPIO_Init(GPIOB0,RLY5_LOW_PIN,Output); + 5f76: 3200 movi r2, 0 + 5f78: 9400 ld.w r0, (r4, 0x0) + 5f7a: 3103 movi r1, 3 + 5f7c: e3ffdf06 bsr 0x1d88 // 1d88 + + RLY1_HOT_CLOSE; + 5f80: 9500 ld.w r0, (r5, 0x0) + 5f82: 310e movi r1, 14 + 5f84: e3ffdf7d bsr 0x1e7e // 1e7e + RLY2_COLD_CLOSE; + 5f88: 9500 ld.w r0, (r5, 0x0) + 5f8a: 310f movi r1, 15 + 5f8c: e3ffdf79 bsr 0x1e7e // 1e7e + RLY3_HIGH_CLOSE; + 5f90: 9400 ld.w r0, (r4, 0x0) + 5f92: 3101 movi r1, 1 + 5f94: e3ffdf75 bsr 0x1e7e // 1e7e + RLY4_MID_CLOSE; + 5f98: 9400 ld.w r0, (r4, 0x0) + 5f9a: 3102 movi r1, 2 + 5f9c: e3ffdf71 bsr 0x1e7e // 1e7e + RLY5_LOW_CLOSE; + 5fa0: 9400 ld.w r0, (r4, 0x0) + 5fa2: 3103 movi r1, 3 + 5fa4: e3ffdf6d bsr 0x1e7e // 1e7e + +} + 5fa8: 1492 pop r4-r5, r15 + 5faa: 0000 bkpt + 5fac: 2000004c .long 0x2000004c + 5fb0: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_High: + +00005fb4 : + + +void Relay_High(void) +{ + 5fb4: 14d1 push r4, r15 + RLY3_HIGH_OPEN; + 5fb6: 1088 lrw r4, 0x20000048 // 5fd4 + 5fb8: 3101 movi r1, 1 + 5fba: 9400 ld.w r0, (r4, 0x0) + 5fbc: e3ffdf5d bsr 0x1e76 // 1e76 + RLY4_MID_CLOSE; + 5fc0: 9400 ld.w r0, (r4, 0x0) + 5fc2: 3102 movi r1, 2 + 5fc4: e3ffdf5d bsr 0x1e7e // 1e7e + RLY5_LOW_CLOSE; + 5fc8: 9400 ld.w r0, (r4, 0x0) + 5fca: 3103 movi r1, 3 + 5fcc: e3ffdf59 bsr 0x1e7e // 1e7e +} + 5fd0: 1491 pop r4, r15 + 5fd2: 0000 bkpt + 5fd4: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Mid: + +00005fd8 : + + +void Relay_Mid(void) +{ + 5fd8: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 5fda: 1088 lrw r4, 0x20000048 // 5ff8 + 5fdc: 3101 movi r1, 1 + 5fde: 9400 ld.w r0, (r4, 0x0) + 5fe0: e3ffdf4f bsr 0x1e7e // 1e7e + RLY4_MID_OPEN; + 5fe4: 9400 ld.w r0, (r4, 0x0) + 5fe6: 3102 movi r1, 2 + 5fe8: e3ffdf47 bsr 0x1e76 // 1e76 + RLY5_LOW_CLOSE; + 5fec: 9400 ld.w r0, (r4, 0x0) + 5fee: 3103 movi r1, 3 + 5ff0: e3ffdf47 bsr 0x1e7e // 1e7e +} + 5ff4: 1491 pop r4, r15 + 5ff6: 0000 bkpt + 5ff8: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Low: + +00005ffc : + + + +void Relay_Low(void) +{ + 5ffc: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 5ffe: 1088 lrw r4, 0x20000048 // 601c + 6000: 3101 movi r1, 1 + 6002: 9400 ld.w r0, (r4, 0x0) + 6004: e3ffdf3d bsr 0x1e7e // 1e7e + RLY4_MID_CLOSE; + 6008: 9400 ld.w r0, (r4, 0x0) + 600a: 3102 movi r1, 2 + 600c: e3ffdf39 bsr 0x1e7e // 1e7e + RLY5_LOW_OPEN; + 6010: 9400 ld.w r0, (r4, 0x0) + 6012: 3103 movi r1, 3 + 6014: e3ffdf31 bsr 0x1e76 // 1e76 +} + 6018: 1491 pop r4, r15 + 601a: 0000 bkpt + 601c: 20000048 .long 0x20000048 + +Disassembly of section .text.Relay_Stop: + +00006020 : + +void Relay_Stop(void) +{ + 6020: 14d1 push r4, r15 + RLY3_HIGH_CLOSE; + 6022: 1088 lrw r4, 0x20000048 // 6040 + 6024: 3101 movi r1, 1 + 6026: 9400 ld.w r0, (r4, 0x0) + 6028: e3ffdf2b bsr 0x1e7e // 1e7e + RLY4_MID_CLOSE; + 602c: 9400 ld.w r0, (r4, 0x0) + 602e: 3102 movi r1, 2 + 6030: e3ffdf27 bsr 0x1e7e // 1e7e + RLY5_LOW_CLOSE; + 6034: 9400 ld.w r0, (r4, 0x0) + 6036: 3103 movi r1, 3 + 6038: e3ffdf23 bsr 0x1e7e // 1e7e +} + 603c: 1491 pop r4, r15 + 603e: 0000 bkpt + 6040: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00006044 : + 6044: 1063 lrw r3, 0x20000058 // 6050 + 6046: 9340 ld.w r2, (r3, 0x0) + 6048: 926b ld.w r3, (r2, 0x2c) + 604a: 6c0c or r0, r3 + 604c: b20b st.w r0, (r2, 0x2c) + 604e: 783c jmp r15 + 6050: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00006054 : + 6054: 14c1 push r4 + 6056: 1069 lrw r3, 0x20000058 // 6078 + 6058: 3840 cmpnei r0, 0 + 605a: 9380 ld.w r4, (r3, 0x0) + 605c: 9400 ld.w r0, (r4, 0x0) + 605e: 0c0b bf 0x6074 // 6074 + 6060: 38a0 bseti r0, 0 + 6062: b400 st.w r0, (r4, 0x0) + 6064: 9360 ld.w r3, (r3, 0x0) + 6066: 4248 lsli r2, r2, 8 + 6068: 4122 lsli r1, r1, 2 + 606a: 9300 ld.w r0, (r3, 0x0) + 606c: 6c48 or r1, r2 + 606e: 6c40 or r1, r0 + 6070: b320 st.w r1, (r3, 0x0) + 6072: 1481 pop r4 + 6074: 3880 bclri r0, 0 + 6076: 07f6 br 0x6062 // 6062 + 6078: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +0000607c : + 607c: 14c4 push r4-r7 + 607e: 1429 subi r14, r14, 36 + 6080: b840 st.w r2, (r14, 0x0) + 6082: 984d ld.w r2, (r14, 0x34) + 6084: b841 st.w r2, (r14, 0x4) + 6086: 984e ld.w r2, (r14, 0x38) + 6088: b842 st.w r2, (r14, 0x8) + 608a: 984f ld.w r2, (r14, 0x3c) + 608c: b843 st.w r2, (r14, 0xc) + 608e: 9850 ld.w r2, (r14, 0x40) + 6090: 9895 ld.w r4, (r14, 0x54) + 6092: b844 st.w r2, (r14, 0x10) + 6094: 9853 ld.w r2, (r14, 0x4c) + 6096: b845 st.w r2, (r14, 0x14) + 6098: b887 st.w r4, (r14, 0x1c) + 609a: 9854 ld.w r2, (r14, 0x50) + 609c: 1c11 addi r4, r14, 68 + 609e: b846 st.w r2, (r14, 0x18) + 60a0: 8c80 ld.h r4, (r4, 0x0) + 60a2: 1a15 addi r2, r14, 84 + 60a4: 1d12 addi r5, r14, 72 + 60a6: 8244 ld.b r2, (r2, 0x4) + 60a8: 3c40 cmpnei r4, 0 + 60aa: 8dc0 ld.h r6, (r5, 0x0) + 60ac: b848 st.w r2, (r14, 0x20) + 60ae: 0813 bt 0x60d4 // 60d4 + 60b0: 105f lrw r2, 0x2000004c // 612c + 60b2: 35f0 movi r5, 240 + 60b4: 92e0 ld.w r7, (r2, 0x0) + 60b6: 9740 ld.w r2, (r7, 0x0) + 60b8: 45a4 lsli r5, r5, 4 + 60ba: 6895 andn r2, r5 + 60bc: 3aab bseti r2, 11 + 60be: b740 st.w r2, (r7, 0x0) + 60c0: 3502 movi r5, 2 + 60c2: 105c lrw r2, 0x20000050 // 6130 + 60c4: 3e41 cmpnei r6, 1 + 60c6: 9240 ld.w r2, (r2, 0x0) + 60c8: b2a0 st.w r5, (r2, 0x0) + 60ca: 0828 bt 0x611a // 611a + 60cc: 92a4 ld.w r5, (r2, 0x10) + 60ce: 3db8 bseti r5, 24 + 60d0: 3db9 bseti r5, 25 + 60d2: b2a4 st.w r5, (r2, 0x10) + 60d4: 1058 lrw r2, 0x20000058 // 6134 + 60d6: 448d lsli r4, r4, 13 + 60d8: 92a0 ld.w r5, (r2, 0x0) + 60da: 9541 ld.w r2, (r5, 0x4) + 60dc: 3200 movi r2, 0 + 60de: b541 st.w r2, (r5, 0x4) + 60e0: 9541 ld.w r2, (r5, 0x4) + 60e2: 98c7 ld.w r6, (r14, 0x1c) + 60e4: 6c98 or r2, r6 + 60e6: 98c6 ld.w r6, (r14, 0x18) + 60e8: 6c98 or r2, r6 + 60ea: 98c5 ld.w r6, (r14, 0x14) + 60ec: 6c98 or r2, r6 + 60ee: 98c8 ld.w r6, (r14, 0x20) + 60f0: 46d8 lsli r6, r6, 24 + 60f2: 6c98 or r2, r6 + 60f4: 98c4 ld.w r6, (r14, 0x10) + 60f6: 6c98 or r2, r6 + 60f8: 98c3 ld.w r6, (r14, 0xc) + 60fa: 6c98 or r2, r6 + 60fc: 98c2 ld.w r6, (r14, 0x8) + 60fe: 6c98 or r2, r6 + 6100: 98c1 ld.w r6, (r14, 0x4) + 6102: 6c98 or r2, r6 + 6104: 6c48 or r1, r2 + 6106: 9840 ld.w r2, (r14, 0x0) + 6108: 6c04 or r0, r1 + 610a: 4242 lsli r2, r2, 2 + 610c: 6c08 or r0, r2 + 610e: 6d00 or r4, r0 + 6110: 4367 lsli r3, r3, 7 + 6112: 6cd0 or r3, r4 + 6114: b561 st.w r3, (r5, 0x4) + 6116: 1409 addi r14, r14, 36 + 6118: 1484 pop r4-r7 + 611a: 3e40 cmpnei r6, 0 + 611c: 0bdc bt 0x60d4 // 60d4 + 611e: 9264 ld.w r3, (r2, 0x10) + 6120: 3b98 bclri r3, 24 + 6122: 3b99 bclri r3, 25 + 6124: 3bb8 bseti r3, 24 + 6126: b264 st.w r3, (r2, 0x10) + 6128: 3300 movi r3, 0 + 612a: 07d5 br 0x60d4 // 60d4 + 612c: 2000004c .long 0x2000004c + 6130: 20000050 .long 0x20000050 + 6134: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00006138 : + 6138: 14d4 push r4-r7, r15 + 613a: 1422 subi r14, r14, 8 + 613c: 1269 lrw r3, 0x2000004c // 6260 + 613e: 31f0 movi r1, 240 + 6140: 9360 ld.w r3, (r3, 0x0) + 6142: 9340 ld.w r2, (r3, 0x0) + 6144: 4130 lsli r1, r1, 16 + 6146: 6885 andn r2, r1 + 6148: 3ab4 bseti r2, 20 + 614a: 3ab7 bseti r2, 23 + 614c: b340 st.w r2, (r3, 0x0) + 614e: 35f0 movi r5, 240 + 6150: 1245 lrw r2, 0x20000108 // 6264 + 6152: 36f0 movi r6, 240 + 6154: 9240 ld.w r2, (r2, 0x0) + 6156: b841 st.w r2, (r14, 0x4) + 6158: 3400 movi r4, 0 + 615a: 1244 lrw r2, 0x20000048 // 6268 + 615c: 45ac lsli r5, r5, 12 + 615e: 9240 ld.w r2, (r2, 0x0) + 6160: b820 st.w r1, (r14, 0x0) + 6162: 46c8 lsli r6, r6, 8 + 6164: 3701 movi r7, 1 + 6166: 71d0 lsl r7, r4 + 6168: 9821 ld.w r1, (r14, 0x4) + 616a: 69c4 and r7, r1 + 616c: 3f40 cmpnei r7, 0 + 616e: 7410 zextb r0, r4 + 6170: 0c1b bf 0x61a6 // 61a6 + 6172: 2800 subi r0, 1 + 6174: 380f cmphsi r0, 16 + 6176: 080b bt 0x618c // 618c + 6178: e3ffd5c2 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 617c: 27201a0f .long 0x27201a0f + 6180: 3d38312c .long 0x3d38312c + 6184: 56514a44 .long 0x56514a44 + 6188: 6c67615b .long 0x6c67615b + 618c: 9200 ld.w r0, (r2, 0x0) + 618e: 37f0 movi r7, 240 + 6190: 681d andn r0, r7 + 6192: 38a4 bseti r0, 4 + 6194: 38a7 bseti r0, 7 + 6196: b200 st.w r0, (r2, 0x0) + 6198: 0407 br 0x61a6 // 61a6 + 619a: 9300 ld.w r0, (r3, 0x0) + 619c: 370f movi r7, 15 + 619e: 681d andn r0, r7 + 61a0: 38a0 bseti r0, 0 + 61a2: 38a3 bseti r0, 3 + 61a4: b300 st.w r0, (r3, 0x0) + 61a6: 2400 addi r4, 1 + 61a8: 3c51 cmpnei r4, 17 + 61aa: 0bdd bt 0x6164 // 6164 + 61ac: 1402 addi r14, r14, 8 + 61ae: 1494 pop r4-r7, r15 + 61b0: 9300 ld.w r0, (r3, 0x0) + 61b2: 37f0 movi r7, 240 + 61b4: 681d andn r0, r7 + 61b6: 38a4 bseti r0, 4 + 61b8: 38a7 bseti r0, 7 + 61ba: 07f5 br 0x61a4 // 61a4 + 61bc: 37f0 movi r7, 240 + 61be: 9300 ld.w r0, (r3, 0x0) + 61c0: 47e4 lsli r7, r7, 4 + 61c2: 681d andn r0, r7 + 61c4: 38a8 bseti r0, 8 + 61c6: 38ab bseti r0, 11 + 61c8: 07ee br 0x61a4 // 61a4 + 61ca: 9300 ld.w r0, (r3, 0x0) + 61cc: 6819 andn r0, r6 + 61ce: 38ac bseti r0, 12 + 61d0: 38af bseti r0, 15 + 61d2: 07e9 br 0x61a4 // 61a4 + 61d4: 9300 ld.w r0, (r3, 0x0) + 61d6: 6815 andn r0, r5 + 61d8: 38b0 bseti r0, 16 + 61da: 38b3 bseti r0, 19 + 61dc: 07e4 br 0x61a4 // 61a4 + 61de: 37f0 movi r7, 240 + 61e0: 9200 ld.w r0, (r2, 0x0) + 61e2: 47e4 lsli r7, r7, 4 + 61e4: 681d andn r0, r7 + 61e6: 38a8 bseti r0, 8 + 61e8: 38ab bseti r0, 11 + 61ea: 07d6 br 0x6196 // 6196 + 61ec: 9200 ld.w r0, (r2, 0x0) + 61ee: 6819 andn r0, r6 + 61f0: 38ac bseti r0, 12 + 61f2: 38af bseti r0, 15 + 61f4: 07d1 br 0x6196 // 6196 + 61f6: 9301 ld.w r0, (r3, 0x4) + 61f8: 370f movi r7, 15 + 61fa: 681d andn r0, r7 + 61fc: 38a0 bseti r0, 0 + 61fe: 38a3 bseti r0, 3 + 6200: b301 st.w r0, (r3, 0x4) + 6202: 07d2 br 0x61a6 // 61a6 + 6204: 9301 ld.w r0, (r3, 0x4) + 6206: 37f0 movi r7, 240 + 6208: 681d andn r0, r7 + 620a: 38a4 bseti r0, 4 + 620c: 38a7 bseti r0, 7 + 620e: 07f9 br 0x6200 // 6200 + 6210: 37f0 movi r7, 240 + 6212: 9301 ld.w r0, (r3, 0x4) + 6214: 47e4 lsli r7, r7, 4 + 6216: 681d andn r0, r7 + 6218: 38a8 bseti r0, 8 + 621a: 38ab bseti r0, 11 + 621c: 07f2 br 0x6200 // 6200 + 621e: 9301 ld.w r0, (r3, 0x4) + 6220: 6819 andn r0, r6 + 6222: 38ac bseti r0, 12 + 6224: 38af bseti r0, 15 + 6226: 07ed br 0x6200 // 6200 + 6228: 9301 ld.w r0, (r3, 0x4) + 622a: 6815 andn r0, r5 + 622c: 38b0 bseti r0, 16 + 622e: 38b3 bseti r0, 19 + 6230: 07e8 br 0x6200 // 6200 + 6232: 9301 ld.w r0, (r3, 0x4) + 6234: 9820 ld.w r1, (r14, 0x0) + 6236: 6805 andn r0, r1 + 6238: 38b4 bseti r0, 20 + 623a: 38b7 bseti r0, 23 + 623c: 07e2 br 0x6200 // 6200 + 623e: 9200 ld.w r0, (r2, 0x0) + 6240: 370f movi r7, 15 + 6242: 681d andn r0, r7 + 6244: 38a0 bseti r0, 0 + 6246: 38a3 bseti r0, 3 + 6248: 07a7 br 0x6196 // 6196 + 624a: 9200 ld.w r0, (r2, 0x0) + 624c: 6815 andn r0, r5 + 624e: 38b0 bseti r0, 16 + 6250: 38b3 bseti r0, 19 + 6252: 07a2 br 0x6196 // 6196 + 6254: 9200 ld.w r0, (r2, 0x0) + 6256: 9820 ld.w r1, (r14, 0x0) + 6258: 6805 andn r0, r1 + 625a: 38b4 bseti r0, 20 + 625c: 38b7 bseti r0, 23 + 625e: 079c br 0x6196 // 6196 + 6260: 2000004c .long 0x2000004c + 6264: 20000108 .long 0x20000108 + 6268: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +0000626c : + 626c: 14c4 push r4-r7 + 626e: 1072 lrw r3, 0x20000054 // 62b4 + 6270: 1012 lrw r0, 0x200007d2 // 62b8 + 6272: 1093 lrw r4, 0x20000643 // 62bc + 6274: 6d83 mov r6, r0 + 6276: 93a0 ld.w r5, (r3, 0x0) + 6278: 3300 movi r3, 0 + 627a: 4342 lsli r2, r3, 2 + 627c: 6094 addu r2, r5 + 627e: 9220 ld.w r1, (r2, 0x0) + 6280: 4341 lsli r2, r3, 1 + 6282: 6080 addu r2, r0 + 6284: 7445 zexth r1, r1 + 6286: aa20 st.h r1, (r2, 0x0) + 6288: 8440 ld.b r2, (r4, 0x0) + 628a: 3a41 cmpnei r2, 1 + 628c: 080f bt 0x62aa // 62aa + 628e: 3300 movi r3, 0 + 6290: 10ec lrw r7, 0x2000052c // 62c0 + 6292: 4341 lsli r2, r3, 1 + 6294: 5e28 addu r1, r6, r2 + 6296: 8920 ld.h r1, (r1, 0x0) + 6298: 2300 addi r3, 1 + 629a: 7445 zexth r1, r1 + 629c: 609c addu r2, r7 + 629e: 3b51 cmpnei r3, 17 + 62a0: aa20 st.h r1, (r2, 0x0) + 62a2: 0bf8 bt 0x6292 // 6292 + 62a4: 3300 movi r3, 0 + 62a6: a460 st.b r3, (r4, 0x0) + 62a8: 3311 movi r3, 17 + 62aa: 2300 addi r3, 1 + 62ac: 74cc zextb r3, r3 + 62ae: 3b10 cmphsi r3, 17 + 62b0: 0fe5 bf 0x627a // 627a + 62b2: 1484 pop r4-r7 + 62b4: 20000054 .long 0x20000054 + 62b8: 200007d2 .long 0x200007d2 + 62bc: 20000643 .long 0x20000643 + 62c0: 2000052c .long 0x2000052c + +Disassembly of section .text.TKEYIntHandler: + +000062c4 : + 62c4: 1460 nie + 62c6: 1462 ipush + 62c8: 14d1 push r4, r15 + 62ca: 109e lrw r4, 0x20000070 // 6340 + 62cc: 9460 ld.w r3, (r4, 0x0) + 62ce: 3b40 cmpnei r3, 0 + 62d0: 080b bt 0x62e6 // 62e6 + 62d2: 3301 movi r3, 1 + 62d4: b460 st.w r3, (r4, 0x0) + 62d6: 107c lrw r3, 0x200005c0 // 6344 + 62d8: 8360 ld.b r3, (r3, 0x0) + 62da: 3b41 cmpnei r3, 1 + 62dc: 0805 bt 0x62e6 // 62e6 + 62de: e3ffffc7 bsr 0x626c // 626c + 62e2: 3301 movi r3, 1 + 62e4: a464 st.b r3, (r4, 0x4) + 62e6: 1079 lrw r3, 0x20000058 // 6348 + 62e8: 3101 movi r1, 1 + 62ea: 9360 ld.w r3, (r3, 0x0) + 62ec: 934a ld.w r2, (r3, 0x28) + 62ee: 6884 and r2, r1 + 62f0: 3a40 cmpnei r2, 0 + 62f2: 0c02 bf 0x62f6 // 62f6 + 62f4: b32c st.w r1, (r3, 0x30) + 62f6: 934a ld.w r2, (r3, 0x28) + 62f8: 3102 movi r1, 2 + 62fa: 6884 and r2, r1 + 62fc: 3a40 cmpnei r2, 0 + 62fe: 0c02 bf 0x6302 // 6302 + 6300: b32c st.w r1, (r3, 0x30) + 6302: 934a ld.w r2, (r3, 0x28) + 6304: 3104 movi r1, 4 + 6306: 6884 and r2, r1 + 6308: 3a40 cmpnei r2, 0 + 630a: 0c02 bf 0x630e // 630e + 630c: b32c st.w r1, (r3, 0x30) + 630e: 934a ld.w r2, (r3, 0x28) + 6310: 3108 movi r1, 8 + 6312: 6884 and r2, r1 + 6314: 3a40 cmpnei r2, 0 + 6316: 0c02 bf 0x631a // 631a + 6318: b32c st.w r1, (r3, 0x30) + 631a: 934a ld.w r2, (r3, 0x28) + 631c: 3110 movi r1, 16 + 631e: 6884 and r2, r1 + 6320: 3a40 cmpnei r2, 0 + 6322: 0c02 bf 0x6326 // 6326 + 6324: b32c st.w r1, (r3, 0x30) + 6326: 934a ld.w r2, (r3, 0x28) + 6328: 3120 movi r1, 32 + 632a: 6884 and r2, r1 + 632c: 3a40 cmpnei r2, 0 + 632e: 0c02 bf 0x6332 // 6332 + 6330: b32c st.w r1, (r3, 0x30) + 6332: d9ee2001 ld.w r15, (r14, 0x4) + 6336: 9880 ld.w r4, (r14, 0x0) + 6338: 1402 addi r14, r14, 8 + 633a: 1463 ipop + 633c: 1461 nir + 633e: 0000 bkpt + 6340: 20000070 .long 0x20000070 + 6344: 200005c0 .long 0x200005c0 + 6348: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +0000634c : + 634c: 14c2 push r4-r5 + 634e: 3200 movi r2, 0 + 6350: 3000 movi r0, 0 + 6352: 1088 lrw r4, 0x20000660 // 6370 + 6354: 3501 movi r5, 1 + 6356: 3120 movi r1, 32 + 6358: 9460 ld.w r3, (r4, 0x0) + 635a: 70c9 lsr r3, r2 + 635c: 68d4 and r3, r5 + 635e: 3b40 cmpnei r3, 0 + 6360: 0c02 bf 0x6364 // 6364 + 6362: 2000 addi r0, 1 + 6364: 2200 addi r2, 1 + 6366: 644a cmpne r2, r1 + 6368: 0bf8 bt 0x6358 // 6358 + 636a: 7400 zextb r0, r0 + 636c: 1482 pop r4-r5 + 636e: 0000 bkpt + 6370: 20000660 .long 0x20000660 + +Disassembly of section .text.TK_Baseline_prog: + +00006374 : + 6374: 14c4 push r4-r7 + 6376: 1423 subi r14, r14, 12 + 6378: 1079 lrw r3, 0x20000058 // 63dc + 637a: 105a lrw r2, 0x2000052c // 63e0 + 637c: 10ba lrw r5, 0x20000070 // 63e4 + 637e: b842 st.w r2, (r14, 0x8) + 6380: 9360 ld.w r3, (r3, 0x0) + 6382: b860 st.w r3, (r14, 0x0) + 6384: 1079 lrw r3, 0x20000054 // 63e8 + 6386: 9360 ld.w r3, (r3, 0x0) + 6388: b861 st.w r3, (r14, 0x4) + 638a: 3306 movi r3, 6 + 638c: 3201 movi r2, 1 + 638e: 9820 ld.w r1, (r14, 0x0) + 6390: b142 st.w r2, (r1, 0x8) + 6392: 3200 movi r2, 0 + 6394: b540 st.w r2, (r5, 0x0) + 6396: 9540 ld.w r2, (r5, 0x0) + 6398: 3a40 cmpnei r2, 0 + 639a: 0ffe bf 0x6396 // 6396 + 639c: 6c03 mov r0, r0 + 639e: 3200 movi r2, 0 + 63a0: 10d3 lrw r6, 0x200007d2 // 63ec + 63a2: 4202 lsli r0, r2, 2 + 63a4: 9821 ld.w r1, (r14, 0x4) + 63a6: 6004 addu r0, r1 + 63a8: 9080 ld.w r4, (r0, 0x0) + 63aa: 4221 lsli r1, r2, 1 + 63ac: 98e2 ld.w r7, (r14, 0x8) + 63ae: 61c4 addu r7, r1 + 63b0: 7511 zexth r4, r4 + 63b2: af80 st.h r4, (r7, 0x0) + 63b4: 9000 ld.w r0, (r0, 0x0) + 63b6: 2200 addi r2, 1 + 63b8: 7401 zexth r0, r0 + 63ba: 6058 addu r1, r6 + 63bc: 3a51 cmpnei r2, 17 + 63be: a900 st.h r0, (r1, 0x0) + 63c0: 0bf1 bt 0x63a2 // 63a2 + 63c2: 2b00 subi r3, 1 + 63c4: 74cc zextb r3, r3 + 63c6: 3b40 cmpnei r3, 0 + 63c8: 0be2 bt 0x638c // 638c + 63ca: 106a lrw r3, 0x200005c0 // 63f0 + 63cc: 3201 movi r2, 1 + 63ce: a340 st.b r2, (r3, 0x0) + 63d0: 3200 movi r2, 0 + 63d2: 1069 lrw r3, 0x20000749 // 63f4 + 63d4: a340 st.b r2, (r3, 0x0) + 63d6: 1403 addi r14, r14, 12 + 63d8: 1484 pop r4-r7 + 63da: 0000 bkpt + 63dc: 20000058 .long 0x20000058 + 63e0: 2000052c .long 0x2000052c + 63e4: 20000070 .long 0x20000070 + 63e8: 20000054 .long 0x20000054 + 63ec: 200007d2 .long 0x200007d2 + 63f0: 200005c0 .long 0x200005c0 + 63f4: 20000749 .long 0x20000749 + +Disassembly of section .text.TK_Scan_Start: + +000063f8 : + 63f8: 1046 lrw r2, 0x20000070 // 6410 + 63fa: 8264 ld.b r3, (r2, 0x4) + 63fc: 74cc zextb r3, r3 + 63fe: 3b41 cmpnei r3, 1 + 6400: 0807 bt 0x640e // 640e + 6402: 1025 lrw r1, 0x20000058 // 6414 + 6404: 9120 ld.w r1, (r1, 0x0) + 6406: b162 st.w r3, (r1, 0x8) + 6408: 3300 movi r3, 0 + 640a: b260 st.w r3, (r2, 0x0) + 640c: a264 st.b r3, (r2, 0x4) + 640e: 783c jmp r15 + 6410: 20000070 .long 0x20000070 + 6414: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00006418 : + 6418: 14d4 push r4-r7, r15 + 641a: 1425 subi r14, r14, 20 + 641c: 1271 lrw r3, 0x20000104 // 6560 + 641e: 8360 ld.b r3, (r3, 0x0) + 6420: b860 st.w r3, (r14, 0x0) + 6422: 3400 movi r4, 0 + 6424: 1270 lrw r3, 0x200000d8 // 6564 + 6426: 8360 ld.b r3, (r3, 0x0) + 6428: b861 st.w r3, (r14, 0x4) + 642a: 12f0 lrw r7, 0x200005d6 // 6568 + 642c: 1270 lrw r3, 0x200000e1 // 656c + 642e: 83a0 ld.b r5, (r3, 0x0) + 6430: 1270 lrw r3, 0x200000e0 // 6570 + 6432: 8360 ld.b r3, (r3, 0x0) + 6434: b862 st.w r3, (r14, 0x8) + 6436: 6d9f mov r6, r7 + 6438: 126f lrw r3, 0x200007d2 // 6574 + 643a: b863 st.w r3, (r14, 0xc) + 643c: 4461 lsli r3, r4, 1 + 643e: 9843 ld.w r2, (r14, 0xc) + 6440: 608c addu r2, r3 + 6442: 122e lrw r1, 0x2000052c // 6578 + 6444: 604c addu r1, r3 + 6446: 8a40 ld.h r2, (r2, 0x0) + 6448: 8920 ld.h r1, (r1, 0x0) + 644a: 6086 subu r2, r1 + 644c: 748b sexth r2, r2 + 644e: 5f2c addu r1, r7, r3 + 6450: a940 st.h r2, (r1, 0x0) + 6452: 8940 ld.h r2, (r1, 0x0) + 6454: 748b sexth r2, r2 + 6456: 3adf btsti r2, 31 + 6458: 1249 lrw r2, 0x2000078e // 657c + 645a: 608c addu r2, r3 + 645c: 0c37 bf 0x64ca // 64ca + 645e: 3100 movi r1, 0 + 6460: aa20 st.h r1, (r2, 0x0) + 6462: 9840 ld.w r2, (r14, 0x0) + 6464: 3a01 cmphsi r2, 2 + 6466: 0c6d bf 0x6540 // 6540 + 6468: 4461 lsli r3, r4, 1 + 646a: 5e2c addu r1, r6, r3 + 646c: 1205 lrw r0, 0x20000132 // 6580 + 646e: 8940 ld.h r2, (r1, 0x0) + 6470: 60c0 addu r3, r0 + 6472: 748b sexth r2, r2 + 6474: 8b60 ld.h r3, (r3, 0x0) + 6476: 648d cmplt r3, r2 + 6478: 9840 ld.w r2, (r14, 0x0) + 647a: 7cc8 mult r3, r2 + 647c: 0c2a bf 0x64d0 // 64d0 + 647e: 8940 ld.h r2, (r1, 0x0) + 6480: 748b sexth r2, r2 + 6482: 64c9 cmplt r2, r3 + 6484: 0c26 bf 0x64d0 // 64d0 + 6486: 1240 lrw r2, 0x200005c4 // 6584 + 6488: 6090 addu r2, r4 + 648a: 8260 ld.b r3, (r2, 0x0) + 648c: 2300 addi r3, 1 + 648e: 74cc zextb r3, r3 + 6490: a260 st.b r3, (r2, 0x0) + 6492: 3100 movi r1, 0 + 6494: 117d lrw r3, 0x200005aa // 6588 + 6496: 60d0 addu r3, r4 + 6498: a320 st.b r1, (r3, 0x0) + 649a: 117d lrw r3, 0x20000686 // 658c + 649c: 60d0 addu r3, r4 + 649e: a320 st.b r1, (r3, 0x0) + 64a0: 117c lrw r3, 0x20000700 // 6590 + 64a2: 60d0 addu r3, r4 + 64a4: a320 st.b r1, (r3, 0x0) + 64a6: 8260 ld.b r3, (r2, 0x0) + 64a8: 9821 ld.w r1, (r14, 0x4) + 64aa: 64c4 cmphs r1, r3 + 64ac: 081f bt 0x64ea // 64ea + 64ae: 3d40 cmpnei r5, 0 + 64b0: 0852 bt 0x6554 // 6554 + 64b2: 1139 lrw r1, 0x200005bc // 6594 + 64b4: 9160 ld.w r3, (r1, 0x0) + 64b6: 3b40 cmpnei r3, 0 + 64b8: 0806 bt 0x64c4 // 64c4 + 64ba: 9100 ld.w r0, (r1, 0x0) + 64bc: 3301 movi r3, 1 + 64be: 70d0 lsl r3, r4 + 64c0: 6cc0 or r3, r0 + 64c2: b160 st.w r3, (r1, 0x0) + 64c4: 3300 movi r3, 0 + 64c6: a260 st.b r3, (r2, 0x0) + 64c8: 0411 br 0x64ea // 64ea + 64ca: 8920 ld.h r1, (r1, 0x0) + 64cc: 7445 zexth r1, r1 + 64ce: 07c9 br 0x6460 // 6460 + 64d0: 4441 lsli r2, r4, 1 + 64d2: 6098 addu r2, r6 + 64d4: 8a40 ld.h r2, (r2, 0x0) + 64d6: 748b sexth r2, r2 + 64d8: 648d cmplt r3, r2 + 64da: 0c08 bf 0x64ea // 64ea + 64dc: 3300 movi r3, 0 + 64de: 114e lrw r2, 0x200005bc // 6594 + 64e0: 2b01 subi r3, 2 + 64e2: 9220 ld.w r1, (r2, 0x0) + 64e4: 70d3 rotl r3, r4 + 64e6: 68c4 and r3, r1 + 64e8: b260 st.w r3, (r2, 0x0) + 64ea: 4441 lsli r2, r4, 1 + 64ec: 5e68 addu r3, r6, r2 + 64ee: 8b60 ld.h r3, (r3, 0x0) + 64f0: 74cf sexth r3, r3 + 64f2: b864 st.w r3, (r14, 0x10) + 64f4: 3105 movi r1, 5 + 64f6: 1163 lrw r3, 0x20000132 // 6580 + 64f8: 608c addu r2, r3 + 64fa: 8a00 ld.h r0, (r2, 0x0) + 64fc: 4002 lsli r0, r0, 2 + 64fe: e3ffe951 bsr 0x37a0 // 37a0 <__divsi3> + 6502: 9864 ld.w r3, (r14, 0x10) + 6504: 640d cmplt r3, r0 + 6506: 0c18 bf 0x6536 // 6536 + 6508: 1140 lrw r2, 0x200005aa // 6588 + 650a: 6090 addu r2, r4 + 650c: 8260 ld.b r3, (r2, 0x0) + 650e: 2300 addi r3, 1 + 6510: 74cc zextb r3, r3 + 6512: a260 st.b r3, (r2, 0x0) + 6514: 3100 movi r1, 0 + 6516: 107c lrw r3, 0x200005c4 // 6584 + 6518: 60d0 addu r3, r4 + 651a: a320 st.b r1, (r3, 0x0) + 651c: 8260 ld.b r3, (r2, 0x0) + 651e: 9822 ld.w r1, (r14, 0x8) + 6520: 64c4 cmphs r1, r3 + 6522: 080a bt 0x6536 // 6536 + 6524: 3300 movi r3, 0 + 6526: 103c lrw r1, 0x200005bc // 6594 + 6528: 2b01 subi r3, 2 + 652a: 9100 ld.w r0, (r1, 0x0) + 652c: 70d3 rotl r3, r4 + 652e: 68c0 and r3, r0 + 6530: b160 st.w r3, (r1, 0x0) + 6532: 3300 movi r3, 0 + 6534: a260 st.b r3, (r2, 0x0) + 6536: 2400 addi r4, 1 + 6538: 3c51 cmpnei r4, 17 + 653a: 0b81 bt 0x643c // 643c + 653c: 1405 addi r14, r14, 20 + 653e: 1494 pop r4-r7, r15 + 6540: 60d8 addu r3, r6 + 6542: 4441 lsli r2, r4, 1 + 6544: 102f lrw r1, 0x20000132 // 6580 + 6546: 8b60 ld.h r3, (r3, 0x0) + 6548: 6084 addu r2, r1 + 654a: 74cf sexth r3, r3 + 654c: 8a40 ld.h r2, (r2, 0x0) + 654e: 64c9 cmplt r2, r3 + 6550: 0fcd bf 0x64ea // 64ea + 6552: 079a br 0x6486 // 6486 + 6554: 3d41 cmpnei r5, 1 + 6556: 0bb7 bt 0x64c4 // 64c4 + 6558: 102f lrw r1, 0x200005bc // 6594 + 655a: 6cd7 mov r3, r5 + 655c: 9100 ld.w r0, (r1, 0x0) + 655e: 07b0 br 0x64be // 64be + 6560: 20000104 .long 0x20000104 + 6564: 200000d8 .long 0x200000d8 + 6568: 200005d6 .long 0x200005d6 + 656c: 200000e1 .long 0x200000e1 + 6570: 200000e0 .long 0x200000e0 + 6574: 200007d2 .long 0x200007d2 + 6578: 2000052c .long 0x2000052c + 657c: 2000078e .long 0x2000078e + 6580: 20000132 .long 0x20000132 + 6584: 200005c4 .long 0x200005c4 + 6588: 200005aa .long 0x200005aa + 658c: 20000686 .long 0x20000686 + 6590: 20000700 .long 0x20000700 + 6594: 200005bc .long 0x200005bc + +Disassembly of section .text.TK_overflow_predict: + +00006598 : + 6598: 14d4 push r4-r7, r15 + 659a: 1421 subi r14, r14, 4 + 659c: 11d9 lrw r6, 0x20000070 // 6680 + 659e: 8665 ld.b r3, (r6, 0x5) + 65a0: 3b41 cmpnei r3, 1 + 65a2: 085f bt 0x6660 // 6660 + 65a4: 1158 lrw r2, 0x200006dc // 6684 + 65a6: 8260 ld.b r3, (r2, 0x0) + 65a8: 2300 addi r3, 1 + 65aa: 74cc zextb r3, r3 + 65ac: a260 st.b r3, (r2, 0x0) + 65ae: 8260 ld.b r3, (r2, 0x0) + 65b0: 1136 lrw r1, 0x20000105 // 6688 + 65b2: 8120 ld.b r1, (r1, 0x0) + 65b4: 64c4 cmphs r1, r3 + 65b6: 0855 bt 0x6660 // 6660 + 65b8: 3300 movi r3, 0 + 65ba: a260 st.b r3, (r2, 0x0) + 65bc: 3500 movi r5, 0 + 65be: 11f4 lrw r7, 0x20000108 // 668c + 65c0: 2605 addi r6, 6 + 65c2: 9760 ld.w r3, (r7, 0x0) + 65c4: 70d5 lsr r3, r5 + 65c6: 3201 movi r2, 1 + 65c8: 68c8 and r3, r2 + 65ca: 3b40 cmpnei r3, 0 + 65cc: 0c34 bf 0x6634 // 6634 + 65ce: 4581 lsli r4, r5, 1 + 65d0: 5e70 addu r3, r6, r4 + 65d2: 8b00 ld.h r0, (r3, 0x0) + 65d4: e3ffd7e6 bsr 0x15a0 // 15a0 <__floatunsidf> + 65d8: 6cc7 mov r3, r1 + 65da: 3180 movi r1, 128 + 65dc: 6c83 mov r2, r0 + 65de: 4137 lsli r1, r1, 23 + 65e0: 3000 movi r0, 0 + 65e2: e3ffcde9 bsr 0x1b4 // 1b4 <__GI_pow> + 65e6: 116b lrw r3, 0x2000010e // 6690 + 65e8: 60d0 addu r3, r4 + 65ea: 8b60 ld.h r3, (r3, 0x0) + 65ec: 4364 lsli r3, r3, 4 + 65ee: 230e addi r3, 15 + 65f0: b860 st.w r3, (r14, 0x0) + 65f2: e3ffd38f bsr 0xd10 // d10 <__fixunsdfsi> + 65f6: 9860 ld.w r3, (r14, 0x0) + 65f8: 7cc0 mult r3, r0 + 65fa: 1147 lrw r2, 0x2000076c // 6694 + 65fc: 740d zexth r0, r3 + 65fe: 6090 addu r2, r4 + 6600: 1166 lrw r3, 0x200007d2 // 6698 + 6602: 60d0 addu r3, r4 + 6604: aa00 st.h r0, (r2, 0x0) + 6606: 8b60 ld.h r3, (r3, 0x0) + 6608: 8a00 ld.h r0, (r2, 0x0) + 660a: 7401 zexth r0, r0 + 660c: 325f movi r2, 95 + 660e: 74cd zexth r3, r3 + 6610: 7c08 mult r0, r2 + 6612: 3164 movi r1, 100 + 6614: b860 st.w r3, (r14, 0x0) + 6616: e3ffe8c5 bsr 0x37a0 // 37a0 <__divsi3> + 661a: 9860 ld.w r3, (r14, 0x0) + 661c: 64c1 cmplt r0, r3 + 661e: 0c0b bf 0x6634 // 6634 + 6620: 107f lrw r3, 0x200000e2 // 669c + 6622: 610c addu r4, r3 + 6624: 8c60 ld.h r3, (r4, 0x0) + 6626: 3b06 cmphsi r3, 7 + 6628: 0806 bt 0x6634 // 6634 + 662a: 2300 addi r3, 1 + 662c: ac60 st.h r3, (r4, 0x0) + 662e: 3201 movi r2, 1 + 6630: 107c lrw r3, 0x20000631 // 66a0 + 6632: a340 st.b r2, (r3, 0x0) + 6634: 2500 addi r5, 1 + 6636: 3d51 cmpnei r5, 17 + 6638: 0bc5 bt 0x65c2 // 65c2 + 663a: 107a lrw r3, 0x20000631 // 66a0 + 663c: 8340 ld.b r2, (r3, 0x0) + 663e: 3a41 cmpnei r2, 1 + 6640: 0810 bt 0x6660 // 6660 + 6642: 3200 movi r2, 0 + 6644: a340 st.b r2, (r3, 0x0) + 6646: 3200 movi r2, 0 + 6648: 1077 lrw r3, 0x20000058 // 66a4 + 664a: 1018 lrw r0, 0x200006ff // 66a8 + 664c: 10b8 lrw r5, 0x20000738 // 66ac + 664e: 10d4 lrw r6, 0x200000e2 // 669c + 6650: 9360 ld.w r3, (r3, 0x0) + 6652: b342 st.w r2, (r3, 0x8) + 6654: 1077 lrw r3, 0x20000054 // 66b0 + 6656: 9380 ld.w r4, (r3, 0x0) + 6658: 3300 movi r3, 0 + 665a: 8040 ld.b r2, (r0, 0x0) + 665c: 648c cmphs r3, r2 + 665e: 0c03 bf 0x6664 // 6664 + 6660: 1401 addi r14, r14, 4 + 6662: 1494 pop r4-r7, r15 + 6664: 5d4c addu r2, r5, r3 + 6666: 8240 ld.b r2, (r2, 0x0) + 6668: 4241 lsli r2, r2, 1 + 666a: 4322 lsli r1, r3, 2 + 666c: 6098 addu r2, r6 + 666e: 6050 addu r1, r4 + 6670: 8a40 ld.h r2, (r2, 0x0) + 6672: 91f2 ld.w r7, (r1, 0x48) + 6674: 4254 lsli r2, r2, 20 + 6676: 6c9c or r2, r7 + 6678: 2300 addi r3, 1 + 667a: b152 st.w r2, (r1, 0x48) + 667c: 74cc zextb r3, r3 + 667e: 07ee br 0x665a // 665a + 6680: 20000070 .long 0x20000070 + 6684: 200006dc .long 0x200006dc + 6688: 20000105 .long 0x20000105 + 668c: 20000108 .long 0x20000108 + 6690: 2000010e .long 0x2000010e + 6694: 2000076c .long 0x2000076c + 6698: 200007d2 .long 0x200007d2 + 669c: 200000e2 .long 0x200000e2 + 66a0: 20000631 .long 0x20000631 + 66a4: 20000058 .long 0x20000058 + 66a8: 200006ff .long 0x200006ff + 66ac: 20000738 .long 0x20000738 + 66b0: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +000066b4 : + 66b4: 14c4 push r4-r7 + 66b6: 1422 subi r14, r14, 8 + 66b8: 1348 lrw r2, 0x2000065e // 6858 + 66ba: 8260 ld.b r3, (r2, 0x0) + 66bc: 2300 addi r3, 1 + 66be: 74cc zextb r3, r3 + 66c0: a260 st.b r3, (r2, 0x0) + 66c2: 8260 ld.b r3, (r2, 0x0) + 66c4: 1326 lrw r1, 0x20000105 // 685c + 66c6: 8120 ld.b r1, (r1, 0x0) + 66c8: 644c cmphs r3, r1 + 66ca: 0cad bf 0x6824 // 6824 + 66cc: 3300 movi r3, 0 + 66ce: a260 st.b r3, (r2, 0x0) + 66d0: 1364 lrw r3, 0x200005bc // 6860 + 66d2: 9360 ld.w r3, (r3, 0x0) + 66d4: 3b40 cmpnei r3, 0 + 66d6: 08a7 bt 0x6824 // 6824 + 66d8: 1323 lrw r1, 0x200005d6 // 6864 + 66da: 6dc7 mov r7, r1 + 66dc: b820 st.w r1, (r14, 0x0) + 66de: 3200 movi r2, 0 + 66e0: 1362 lrw r3, 0x20000132 // 6868 + 66e2: 1323 lrw r1, 0x2000052c // 686c + 66e4: 4201 lsli r0, r2, 1 + 66e6: 9880 ld.w r4, (r14, 0x0) + 66e8: 6100 addu r4, r0 + 66ea: 8c80 ld.h r4, (r4, 0x0) + 66ec: 7513 sexth r4, r4 + 66ee: 3cdf btsti r4, 31 + 66f0: 0c27 bf 0x673e // 673e + 66f2: 13a0 lrw r5, 0x200007d2 // 6870 + 66f4: 5980 addu r4, r1, r0 + 66f6: 6014 addu r0, r5 + 66f8: b881 st.w r4, (r14, 0x4) + 66fa: 8c80 ld.h r4, (r4, 0x0) + 66fc: 88c0 ld.h r6, (r0, 0x0) + 66fe: 7511 zexth r4, r4 + 6700: 7599 zexth r6, r6 + 6702: 8ba0 ld.h r5, (r3, 0x0) + 6704: 611a subu r4, r6 + 6706: 6551 cmplt r4, r5 + 6708: 081b bt 0x673e // 673e + 670a: 9881 ld.w r4, (r14, 0x4) + 670c: 8c80 ld.h r4, (r4, 0x0) + 670e: 8800 ld.h r0, (r0, 0x0) + 6710: 7511 zexth r4, r4 + 6712: 7401 zexth r0, r0 + 6714: 5c01 subu r0, r4, r0 + 6716: 4581 lsli r4, r5, 1 + 6718: 6150 addu r5, r4 + 671a: 6541 cmplt r0, r5 + 671c: 0c11 bf 0x673e // 673e + 671e: 1296 lrw r4, 0x20000700 // 6874 + 6720: 6108 addu r4, r2 + 6722: 8400 ld.b r0, (r4, 0x0) + 6724: 2000 addi r0, 1 + 6726: 7400 zextb r0, r0 + 6728: a400 st.b r0, (r4, 0x0) + 672a: 1214 lrw r0, 0x20000090 // 6878 + 672c: 84a0 ld.b r5, (r4, 0x0) + 672e: 8008 ld.b r0, (r0, 0x8) + 6730: 6540 cmphs r0, r5 + 6732: 0806 bt 0x673e // 673e + 6734: 1212 lrw r0, 0x20000643 // 687c + 6736: 3501 movi r5, 1 + 6738: a0a0 st.b r5, (r0, 0x0) + 673a: 3000 movi r0, 0 + 673c: a400 st.b r0, (r4, 0x0) + 673e: 4201 lsli r0, r2, 1 + 6740: 5f80 addu r4, r7, r0 + 6742: 8c80 ld.h r4, (r4, 0x0) + 6744: 7513 sexth r4, r4 + 6746: 3c20 cmplti r4, 1 + 6748: 0870 bt 0x6828 // 6828 + 674a: 128a lrw r4, 0x200007d2 // 6870 + 674c: 6100 addu r4, r0 + 674e: 59a0 addu r5, r1, r0 + 6750: 8c80 ld.h r4, (r4, 0x0) + 6752: 8da0 ld.h r5, (r5, 0x0) + 6754: 7555 zexth r5, r5 + 6756: 7511 zexth r4, r4 + 6758: 6116 subu r4, r5 + 675a: 8ba0 ld.h r5, (r3, 0x0) + 675c: 45a2 lsli r5, r5, 2 + 675e: 6551 cmplt r4, r5 + 6760: 0864 bt 0x6828 // 6828 + 6762: 1288 lrw r4, 0x20000686 // 6880 + 6764: 6108 addu r4, r2 + 6766: 84a0 ld.b r5, (r4, 0x0) + 6768: 2500 addi r5, 1 + 676a: 7554 zextb r5, r5 + 676c: a4a0 st.b r5, (r4, 0x0) + 676e: 12a3 lrw r5, 0x20000090 // 6878 + 6770: 84c0 ld.b r6, (r4, 0x0) + 6772: 85a9 ld.b r5, (r5, 0x9) + 6774: 6594 cmphs r5, r6 + 6776: 0806 bt 0x6782 // 6782 + 6778: 12a1 lrw r5, 0x20000643 // 687c + 677a: 3601 movi r6, 1 + 677c: a5c0 st.b r6, (r5, 0x0) + 677e: 3500 movi r5, 0 + 6780: a4a0 st.b r5, (r4, 0x0) + 6782: 5f80 addu r4, r7, r0 + 6784: 8c80 ld.h r4, (r4, 0x0) + 6786: 7513 sexth r4, r4 + 6788: 3cdf btsti r4, 31 + 678a: 0c10 bf 0x67aa // 67aa + 678c: 11d9 lrw r6, 0x200007d2 // 6870 + 678e: 59a0 addu r5, r1, r0 + 6790: 6180 addu r6, r0 + 6792: 8d80 ld.h r4, (r5, 0x0) + 6794: 8ec0 ld.h r6, (r6, 0x0) + 6796: 7599 zexth r6, r6 + 6798: 7511 zexth r4, r4 + 679a: 611a subu r4, r6 + 679c: 8bc0 ld.h r6, (r3, 0x0) + 679e: 6591 cmplt r4, r6 + 67a0: 0c05 bf 0x67aa // 67aa + 67a2: 8d80 ld.h r4, (r5, 0x0) + 67a4: 2c00 subi r4, 1 + 67a6: 7511 zexth r4, r4 + 67a8: ad80 st.h r4, (r5, 0x0) + 67aa: 5f80 addu r4, r7, r0 + 67ac: 8c80 ld.h r4, (r4, 0x0) + 67ae: 7513 sexth r4, r4 + 67b0: 3cdf btsti r4, 31 + 67b2: 0c11 bf 0x67d4 // 67d4 + 67b4: 11cf lrw r6, 0x200007d2 // 6870 + 67b6: 59a0 addu r5, r1, r0 + 67b8: 6180 addu r6, r0 + 67ba: 8d80 ld.h r4, (r5, 0x0) + 67bc: 8ec0 ld.h r6, (r6, 0x0) + 67be: 7599 zexth r6, r6 + 67c0: 7511 zexth r4, r4 + 67c2: 611a subu r4, r6 + 67c4: 8bc0 ld.h r6, (r3, 0x0) + 67c6: 4ec1 lsri r6, r6, 1 + 67c8: 6591 cmplt r4, r6 + 67ca: 0805 bt 0x67d4 // 67d4 + 67cc: 8d80 ld.h r4, (r5, 0x0) + 67ce: 2c01 subi r4, 2 + 67d0: 7511 zexth r4, r4 + 67d2: ad80 st.h r4, (r5, 0x0) + 67d4: 5fa0 addu r5, r7, r0 + 67d6: 8d80 ld.h r4, (r5, 0x0) + 67d8: 7513 sexth r4, r4 + 67da: 3c20 cmplti r4, 1 + 67dc: 080c bt 0x67f4 // 67f4 + 67de: 8da0 ld.h r5, (r5, 0x0) + 67e0: 8b80 ld.h r4, (r3, 0x0) + 67e2: 7557 sexth r5, r5 + 67e4: 4c81 lsri r4, r4, 1 + 67e6: 6515 cmplt r5, r4 + 67e8: 0c06 bf 0x67f4 // 67f4 + 67ea: 59a0 addu r5, r1, r0 + 67ec: 8d80 ld.h r4, (r5, 0x0) + 67ee: 2400 addi r4, 1 + 67f0: 7511 zexth r4, r4 + 67f2: ad80 st.h r4, (r5, 0x0) + 67f4: 5fa0 addu r5, r7, r0 + 67f6: 8d80 ld.h r4, (r5, 0x0) + 67f8: 7513 sexth r4, r4 + 67fa: 3c20 cmplti r4, 1 + 67fc: 0810 bt 0x681c // 681c + 67fe: 8dc0 ld.h r6, (r5, 0x0) + 6800: 759b sexth r6, r6 + 6802: 8b80 ld.h r4, (r3, 0x0) + 6804: 6519 cmplt r6, r4 + 6806: 0c0b bf 0x681c // 681c + 6808: 8da0 ld.h r5, (r5, 0x0) + 680a: 7557 sexth r5, r5 + 680c: 4c81 lsri r4, r4, 1 + 680e: 6515 cmplt r5, r4 + 6810: 0806 bt 0x681c // 681c + 6812: 6004 addu r0, r1 + 6814: 8880 ld.h r4, (r0, 0x0) + 6816: 2401 addi r4, 2 + 6818: 7511 zexth r4, r4 + 681a: a880 st.h r4, (r0, 0x0) + 681c: 2200 addi r2, 1 + 681e: 3a51 cmpnei r2, 17 + 6820: 2301 addi r3, 2 + 6822: 0b61 bt 0x66e4 // 66e4 + 6824: 1402 addi r14, r14, 8 + 6826: 1484 pop r4-r7 + 6828: 5f80 addu r4, r7, r0 + 682a: 8c80 ld.h r4, (r4, 0x0) + 682c: 7513 sexth r4, r4 + 682e: 3cdf btsti r4, 31 + 6830: 0fa9 bf 0x6782 // 6782 + 6832: 10b0 lrw r5, 0x200007d2 // 6870 + 6834: 5980 addu r4, r1, r0 + 6836: 6140 addu r5, r0 + 6838: 8c80 ld.h r4, (r4, 0x0) + 683a: 8da0 ld.h r5, (r5, 0x0) + 683c: 7555 zexth r5, r5 + 683e: 8bc0 ld.h r6, (r3, 0x0) + 6840: 7511 zexth r4, r4 + 6842: 6116 subu r4, r5 + 6844: 46a1 lsli r5, r6, 1 + 6846: 6158 addu r5, r6 + 6848: 6551 cmplt r4, r5 + 684a: 0b9c bt 0x6782 // 6782 + 684c: 108c lrw r4, 0x20000643 // 687c + 684e: 3501 movi r5, 1 + 6850: a4a0 st.b r5, (r4, 0x0) + 6852: 6c03 mov r0, r0 + 6854: 0797 br 0x6782 // 6782 + 6856: 0000 bkpt + 6858: 2000065e .long 0x2000065e + 685c: 20000105 .long 0x20000105 + 6860: 200005bc .long 0x200005bc + 6864: 200005d6 .long 0x200005d6 + 6868: 20000132 .long 0x20000132 + 686c: 2000052c .long 0x2000052c + 6870: 200007d2 .long 0x200007d2 + 6874: 20000700 .long 0x20000700 + 6878: 20000090 .long 0x20000090 + 687c: 20000643 .long 0x20000643 + 6880: 20000686 .long 0x20000686 + +Disassembly of section .text.TK_result_prog: + +00006884 : + 6884: 14d2 push r4-r5, r15 + 6886: 1050 lrw r2, 0x200005bc // 68c4 + 6888: 1090 lrw r4, 0x20000660 // 68c8 + 688a: 9260 ld.w r3, (r2, 0x0) + 688c: 3b40 cmpnei r3, 0 + 688e: 0c02 bf 0x6892 // 6892 + 6890: 9260 ld.w r3, (r2, 0x0) + 6892: b460 st.w r3, (r4, 0x0) + 6894: 9460 ld.w r3, (r4, 0x0) + 6896: 3b40 cmpnei r3, 0 + 6898: 10ad lrw r5, 0x20000734 // 68cc + 689a: 0c11 bf 0x68bc // 68bc + 689c: 9440 ld.w r2, (r4, 0x0) + 689e: 9560 ld.w r3, (r5, 0x0) + 68a0: 64ca cmpne r2, r3 + 68a2: 0c03 bf 0x68a8 // 68a8 + 68a4: 9460 ld.w r3, (r4, 0x0) + 68a6: b560 st.w r3, (r5, 0x0) + 68a8: e3fffd52 bsr 0x634c // 634c + 68ac: 1069 lrw r3, 0x2000010c // 68d0 + 68ae: 8360 ld.b r3, (r3, 0x0) + 68b0: 640c cmphs r3, r0 + 68b2: 0804 bt 0x68ba // 68ba + 68b4: 3300 movi r3, 0 + 68b6: b460 st.w r3, (r4, 0x0) + 68b8: b560 st.w r3, (r5, 0x0) + 68ba: 1492 pop r4-r5, r15 + 68bc: 1046 lrw r2, 0x20000658 // 68d4 + 68be: b560 st.w r3, (r5, 0x0) + 68c0: b260 st.w r3, (r2, 0x0) + 68c2: 07fc br 0x68ba // 68ba + 68c4: 200005bc .long 0x200005bc + 68c8: 20000660 .long 0x20000660 + 68cc: 20000734 .long 0x20000734 + 68d0: 2000010c .long 0x2000010c + 68d4: 20000658 .long 0x20000658 + +Disassembly of section .text.CORETHandler: + +000068d8 : + 68d8: 1460 nie + 68da: 1462 ipush + 68dc: 14d1 push r4, r15 + 68de: 1077 lrw r3, 0x20000064 // 6938 + 68e0: 3400 movi r4, 0 + 68e2: 9360 ld.w r3, (r3, 0x0) + 68e4: b386 st.w r4, (r3, 0x18) + 68e6: 1076 lrw r3, 0x200005c0 // 693c + 68e8: 8360 ld.b r3, (r3, 0x0) + 68ea: 3b41 cmpnei r3, 1 + 68ec: 0820 bt 0x692c // 692c + 68ee: e3fffd85 bsr 0x63f8 // 63f8 + 68f2: e3fffd93 bsr 0x6418 // 6418 + 68f6: e3fffe51 bsr 0x6598 // 6598 + 68fa: e3fffedd bsr 0x66b4 // 66b4 + 68fe: e3ffffc3 bsr 0x6884 // 6884 + 6902: 1070 lrw r3, 0x20000660 // 6940 + 6904: 9360 ld.w r3, (r3, 0x0) + 6906: 3b40 cmpnei r3, 0 + 6908: 0c12 bf 0x692c // 692c + 690a: 106f lrw r3, 0x200000dc // 6944 + 690c: 9340 ld.w r2, (r3, 0x0) + 690e: 3a40 cmpnei r2, 0 + 6910: 0c0e bf 0x692c // 692c + 6912: 106e lrw r3, 0x20000658 // 6948 + 6914: 3064 movi r0, 100 + 6916: 9320 ld.w r1, (r3, 0x0) + 6918: 2100 addi r1, 1 + 691a: b320 st.w r1, (r3, 0x0) + 691c: 9320 ld.w r1, (r3, 0x0) + 691e: 7c80 mult r2, r0 + 6920: 6448 cmphs r2, r1 + 6922: 0805 bt 0x692c // 692c + 6924: 104a lrw r2, 0x20000643 // 694c + 6926: 3101 movi r1, 1 + 6928: a220 st.b r1, (r2, 0x0) + 692a: b380 st.w r4, (r3, 0x0) + 692c: d9ee2001 ld.w r15, (r14, 0x4) + 6930: 9880 ld.w r4, (r14, 0x0) + 6932: 1402 addi r14, r14, 8 + 6934: 1463 ipop + 6936: 1461 nir + 6938: 20000064 .long 0x20000064 + 693c: 200005c0 .long 0x200005c0 + 6940: 20000660 .long 0x20000660 + 6944: 200000dc .long 0x200000dc + 6948: 20000658 .long 0x20000658 + 694c: 20000643 .long 0x20000643 + +Disassembly of section .text.get_key_seq: + +00006950 : + 6950: 14c3 push r4-r6 + 6952: 106b lrw r3, 0x20000108 // 697c + 6954: 3000 movi r0, 0 + 6956: 9320 ld.w r1, (r3, 0x0) + 6958: 3401 movi r4, 1 + 695a: 3300 movi r3, 0 + 695c: 10a9 lrw r5, 0x20000738 // 6980 + 695e: 6c87 mov r2, r1 + 6960: 708d lsr r2, r3 + 6962: 6890 and r2, r4 + 6964: 3a40 cmpnei r2, 0 + 6966: 0c05 bf 0x6970 // 6970 + 6968: 5dc0 addu r6, r5, r0 + 696a: 748c zextb r2, r3 + 696c: a640 st.b r2, (r6, 0x0) + 696e: 2000 addi r0, 1 + 6970: 2300 addi r3, 1 + 6972: 3b51 cmpnei r3, 17 + 6974: 0bf5 bt 0x695e // 695e + 6976: 7400 zextb r0, r0 + 6978: 1483 pop r4-r6 + 697a: 0000 bkpt + 697c: 20000108 .long 0x20000108 + 6980: 20000738 .long 0x20000738 + +Disassembly of section .text.CORET_CONFIG: + +00006984 : + 6984: 14d0 push r15 + 6986: e3ffe0ff bsr 0x2b84 // 2b84 + 698a: 3180 movi r1, 128 + 698c: 4124 lsli r1, r1, 4 + 698e: 3001 movi r0, 1 + 6990: e3ffd8dc bsr 0x1b48 // 1b48 + 6994: 1068 lrw r3, 0x20000064 // 69b4 + 6996: 1049 lrw r2, 0x20000158 // 69b8 + 6998: 9360 ld.w r3, (r3, 0x0) + 699a: 9240 ld.w r2, (r2, 0x0) + 699c: b345 st.w r2, (r3, 0x14) + 699e: e3ffe123 bsr 0x2be4 // 2be4 + 69a2: e3ffe111 bsr 0x2bc4 // 2bc4 + 69a6: e3ffe117 bsr 0x2bd4 // 2bd4 + 69aa: e3ffe105 bsr 0x2bb4 // 2bb4 + 69ae: e3ffe0f7 bsr 0x2b9c // 2b9c + 69b2: 1490 pop r15 + 69b4: 20000064 .long 0x20000064 + 69b8: 20000158 .long 0x20000158 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +000069bc : + 69bc: 1066 lrw r3, 0x20000054 // 69d4 + 69be: 3100 movi r1, 0 + 69c0: 9300 ld.w r0, (r3, 0x0) + 69c2: 3300 movi r3, 0 + 69c4: 4342 lsli r2, r3, 2 + 69c6: 2300 addi r3, 1 + 69c8: 6080 addu r2, r0 + 69ca: 3b52 cmpnei r3, 18 + 69cc: b220 st.w r1, (r2, 0x0) + 69ce: b232 st.w r1, (r2, 0x48) + 69d0: 0bfa bt 0x69c4 // 69c4 + 69d2: 783c jmp r15 + 69d4: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +000069d8 : + 69d8: 1065 lrw r3, 0x2000005c // 69ec + 69da: 1046 lrw r2, 0xa67a6cc7 // 69f0 + 69dc: 9360 ld.w r3, (r3, 0x0) + 69de: b356 st.w r2, (r3, 0x58) + 69e0: 1045 lrw r2, 0x21f1f04 // 69f4 + 69e2: b355 st.w r2, (r3, 0x54) + 69e4: 1045 lrw r2, 0x69966996 // 69f8 + 69e6: 1066 lrw r3, 0x40011180 // 69fc + 69e8: b35f st.w r2, (r3, 0x7c) + 69ea: 783c jmp r15 + 69ec: 2000005c .long 0x2000005c + 69f0: a67a6cc7 .long 0xa67a6cc7 + 69f4: 021f1f04 .long 0x021f1f04 + 69f8: 69966996 .long 0x69966996 + 69fc: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00006a00 : + 6a00: 14d4 push r4-r7, r15 + 6a02: 142c subi r14, r14, 48 + 6a04: e3ffffea bsr 0x69d8 // 69d8 + 6a08: e3ffe022 bsr 0x2a4c // 2a4c + 6a0c: 1268 lrw r3, 0x20000070 // 6b2c + 6a0e: 934b ld.w r2, (r3, 0x2c) + 6a10: 1268 lrw r3, 0x40011200 // 6b30 + 6a12: b350 st.w r2, (r3, 0x40) + 6a14: 1268 lrw r3, 0x200000d9 // 6b34 + 6a16: 8360 ld.b r3, (r3, 0x0) + 6a18: 3b41 cmpnei r3, 1 + 6a1a: 0817 bt 0x6a48 // 6a48 + 6a1c: 1267 lrw r3, 0x20000058 // 6b38 + 6a1e: 3105 movi r1, 5 + 6a20: 9380 ld.w r4, (r3, 0x0) + 6a22: 1267 lrw r3, 0x20000130 // 6b3c + 6a24: 8300 ld.b r0, (r3, 0x0) + 6a26: e3ffe6cf bsr 0x37c4 // 37c4 <__udivsi3> + 6a2a: 7400 zextb r0, r0 + 6a2c: 1265 lrw r3, 0x200000da // 6b40 + 6a2e: b408 st.w r0, (r4, 0x20) + 6a30: 8300 ld.b r0, (r3, 0x0) + 6a32: 3804 cmphsi r0, 5 + 6a34: 1264 lrw r3, 0x2000065c // 6b44 + 6a36: 085a bt 0x6aea // 6aea + 6a38: e3ffd162 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6a3c: 53575103 .long 0x53575103 + 6a40: 0055 .short 0x0055 + 6a42: 3296 movi r2, 150 + 6a44: 4242 lsli r2, r2, 2 + 6a46: ab40 st.h r2, (r3, 0x0) + 6a48: e3fffb78 bsr 0x6138 // 6138 + 6a4c: 3200 movi r2, 0 + 6a4e: 3100 movi r1, 0 + 6a50: 3001 movi r0, 1 + 6a52: e3fffb01 bsr 0x6054 // 6054 + 6a56: e3ffffb3 bsr 0x69bc // 69bc + 6a5a: e3ffff7b bsr 0x6950 // 6950 + 6a5e: 119b lrw r4, 0x200006ff // 6b48 + 6a60: 3101 movi r1, 1 + 6a62: a400 st.b r0, (r4, 0x0) + 6a64: 8440 ld.b r2, (r4, 0x0) + 6a66: 117a lrw r3, 0x20000154 // 6b4c + 6a68: 8b60 ld.h r3, (r3, 0x0) + 6a6a: b829 st.w r1, (r14, 0x24) + 6a6c: 3180 movi r1, 128 + 6a6e: 412d lsli r1, r1, 13 + 6a70: b828 st.w r1, (r14, 0x20) + 6a72: 3180 movi r1, 128 + 6a74: 4129 lsli r1, r1, 9 + 6a76: b827 st.w r1, (r14, 0x1c) + 6a78: 3100 movi r1, 0 + 6a7a: b826 st.w r1, (r14, 0x18) + 6a7c: 2a00 subi r2, 1 + 6a7e: 1115 lrw r0, 0x20000156 // 6b50 + 6a80: 8800 ld.h r0, (r0, 0x0) + 6a82: b805 st.w r0, (r14, 0x14) + 6a84: 7488 zextb r2, r2 + 6a86: 1114 lrw r0, 0x2000015c // 6b54 + 6a88: 8800 ld.h r0, (r0, 0x0) + 6a8a: b804 st.w r0, (r14, 0x10) + 6a8c: 3080 movi r0, 128 + 6a8e: 4005 lsli r0, r0, 5 + 6a90: b803 st.w r0, (r14, 0xc) + 6a92: 3080 movi r0, 128 + 6a94: 4004 lsli r0, r0, 4 + 6a96: b802 st.w r0, (r14, 0x8) + 6a98: b821 st.w r1, (r14, 0x4) + 6a9a: b820 st.w r1, (r14, 0x0) + 6a9c: 3001 movi r0, 1 + 6a9e: 3102 movi r1, 2 + 6aa0: e3fffaee bsr 0x607c // 607c + 6aa4: 3002 movi r0, 2 + 6aa6: e3fffacf bsr 0x6044 // 6044 + 6aaa: 3020 movi r0, 32 + 6aac: e3fffacc bsr 0x6044 // 6044 + 6ab0: 3380 movi r3, 128 + 6ab2: 4372 lsli r3, r3, 18 + 6ab4: 1149 lrw r2, 0xe000e100 // 6b58 + 6ab6: b260 st.w r3, (r2, 0x0) + 6ab8: b270 st.w r3, (r2, 0x40) + 6aba: 11e9 lrw r7, 0x20000076 // 6b5c + 6abc: 1169 lrw r3, 0x20000054 // 6b60 + 6abe: 11aa lrw r5, 0x20000738 // 6b64 + 6ac0: 11ca lrw r6, 0x2000010e // 6b68 + 6ac2: 9360 ld.w r3, (r3, 0x0) + 6ac4: b86a st.w r3, (r14, 0x28) + 6ac6: b88b st.w r4, (r14, 0x2c) + 6ac8: 3300 movi r3, 0 + 6aca: 984b ld.w r2, (r14, 0x2c) + 6acc: 8240 ld.b r2, (r2, 0x0) + 6ace: 648c cmphs r3, r2 + 6ad0: 0c0f bf 0x6aee // 6aee + 6ad2: e3ffff59 bsr 0x6984 // 6984 + 6ad6: e3fffc4f bsr 0x6374 // 6374 + 6ada: 140c addi r14, r14, 48 + 6adc: 1494 pop r4-r7, r15 + 6ade: 1145 lrw r2, 0x5dc // 6b70 + 6ae0: 07b3 br 0x6a46 // 6a46 + 6ae2: 1145 lrw r2, 0x1194 // 6b74 + 6ae4: 07b1 br 0x6a46 // 6a46 + 6ae6: 1145 lrw r2, 0x1770 // 6b78 + 6ae8: 07af br 0x6a46 // 6a46 + 6aea: 1145 lrw r2, 0xbb8 // 6b7c + 6aec: 07ad br 0x6a46 // 6a46 + 6aee: 5d0c addu r0, r5, r3 + 6af0: 8020 ld.b r1, (r0, 0x0) + 6af2: 8040 ld.b r2, (r0, 0x0) + 6af4: 8080 ld.b r4, (r0, 0x0) + 6af6: 8000 ld.b r0, (r0, 0x0) + 6af8: 4001 lsli r0, r0, 1 + 6afa: 6018 addu r0, r6 + 6afc: 4121 lsli r1, r1, 1 + 6afe: 8800 ld.h r0, (r0, 0x0) + 6b00: 605c addu r1, r7 + 6b02: 448f lsli r4, r4, 15 + 6b04: 6d00 or r4, r0 + 6b06: 4241 lsli r2, r2, 1 + 6b08: 8900 ld.h r0, (r1, 0x0) + 6b0a: 1039 lrw r1, 0x200000e2 // 6b6c + 6b0c: 6084 addu r2, r1 + 6b0e: 4018 lsli r0, r0, 24 + 6b10: 6c10 or r0, r4 + 6b12: 8a80 ld.h r4, (r2, 0x0) + 6b14: 3212 movi r2, 18 + 6b16: 608c addu r2, r3 + 6b18: 4494 lsli r4, r4, 20 + 6b1a: 4242 lsli r2, r2, 2 + 6b1c: 982a ld.w r1, (r14, 0x28) + 6b1e: 6c10 or r0, r4 + 6b20: 6084 addu r2, r1 + 6b22: 2300 addi r3, 1 + 6b24: b200 st.w r0, (r2, 0x0) + 6b26: 74cc zextb r3, r3 + 6b28: 07d1 br 0x6aca // 6aca + 6b2a: 0000 bkpt + 6b2c: 20000070 .long 0x20000070 + 6b30: 40011200 .long 0x40011200 + 6b34: 200000d9 .long 0x200000d9 + 6b38: 20000058 .long 0x20000058 + 6b3c: 20000130 .long 0x20000130 + 6b40: 200000da .long 0x200000da + 6b44: 2000065c .long 0x2000065c + 6b48: 200006ff .long 0x200006ff + 6b4c: 20000154 .long 0x20000154 + 6b50: 20000156 .long 0x20000156 + 6b54: 2000015c .long 0x2000015c + 6b58: e000e100 .long 0xe000e100 + 6b5c: 20000076 .long 0x20000076 + 6b60: 20000054 .long 0x20000054 + 6b64: 20000738 .long 0x20000738 + 6b68: 2000010e .long 0x2000010e + 6b6c: 200000e2 .long 0x200000e2 + 6b70: 000005dc .long 0x000005dc + 6b74: 00001194 .long 0x00001194 + 6b78: 00001770 .long 0x00001770 + 6b7c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +00006b80 : + 6b80: 14d4 push r4-r7, r15 + 6b82: 142d subi r14, r14, 52 + 6b84: 3201 movi r2, 1 + 6b86: 03ce lrw r6, 0x2000005c // 6dc8 + 6b88: 6cc3 mov r3, r0 + 6b8a: dc4e000a st.b r2, (r14, 0xa) + 6b8e: 9640 ld.w r2, (r6, 0x0) + 6b90: 9247 ld.w r2, (r2, 0x1c) + 6b92: 7488 zextb r2, r2 + 6b94: dc4e0009 st.b r2, (r14, 0x9) + 6b98: d84e0009 ld.b r2, (r14, 0x9) + 6b9c: 3a40 cmpnei r2, 0 + 6b9e: 0c08 bf 0x6bae // 6bae + 6ba0: d84e0009 ld.b r2, (r14, 0x9) + 6ba4: 3a42 cmpnei r2, 2 + 6ba6: 0c04 bf 0x6bae // 6bae + 6ba8: 3000 movi r0, 0 + 6baa: 140d addi r14, r14, 52 + 6bac: 1494 pop r4-r7, r15 + 6bae: 0397 lrw r4, 0x2000000c // 6dcc + 6bb0: 3209 movi r2, 9 + 6bb2: 9400 ld.w r0, (r4, 0x0) + 6bb4: 3b40 cmpnei r3, 0 + 6bb6: b041 st.w r2, (r0, 0x4) + 6bb8: 0857 bt 0x6c66 // 6c66 + 6bba: 3307 movi r3, 7 + 6bbc: dc6e000b st.b r3, (r14, 0xb) + 6bc0: 037b lrw r3, 0x2dc6c00 // 6dd0 + 6bc2: b863 st.w r3, (r14, 0xc) + 6bc4: 3380 movi r3, 128 + 6bc6: 4362 lsli r3, r3, 2 + 6bc8: b867 st.w r3, (r14, 0x1c) + 6bca: d86e000b ld.b r3, (r14, 0xb) + 6bce: 74cc zextb r3, r3 + 6bd0: b062 st.w r3, (r0, 0x8) + 6bd2: 037e lrw r3, 0xffff // 6dd4 + 6bd4: b063 st.w r3, (r0, 0xc) + 6bd6: 3201 movi r2, 1 + 6bd8: 3101 movi r1, 1 + 6bda: 03bf lrw r5, 0x20000014 // 6dd8 + 6bdc: e3ffd9a4 bsr 0x1f24 // 1f24 + 6be0: 95e0 ld.w r7, (r5, 0x0) + 6be2: 137f lrw r3, 0xbe9c0005 // 6ddc + 6be4: b760 st.w r3, (r7, 0x0) + 6be6: 135f lrw r2, 0x30010 // 6de0 + 6be8: 3300 movi r3, 0 + 6bea: b762 st.w r3, (r7, 0x8) + 6bec: b743 st.w r2, (r7, 0xc) + 6bee: 32d8 movi r2, 216 + 6bf0: b745 st.w r2, (r7, 0x14) + 6bf2: 974f ld.w r2, (r7, 0x3c) + 6bf4: 3aa2 bseti r2, 2 + 6bf6: b74f st.w r2, (r7, 0x3c) + 6bf8: 9803 ld.w r0, (r14, 0xc) + 6bfa: d82e000b ld.b r1, (r14, 0xb) + 6bfe: 327d movi r2, 125 + 6c00: 2100 addi r1, 1 + 6c02: 7c48 mult r1, r2 + 6c04: b861 st.w r3, (r14, 0x4) + 6c06: e3ffe5df bsr 0x37c4 // 37c4 <__udivsi3> + 6c0a: b804 st.w r0, (r14, 0x10) + 6c0c: 32fa movi r2, 250 + 6c0e: 9824 ld.w r1, (r14, 0x10) + 6c10: 4242 lsli r2, r2, 2 + 6c12: 6448 cmphs r2, r1 + 6c14: 0bca bt 0x6ba8 // 6ba8 + 6c16: 9844 ld.w r2, (r14, 0x10) + 6c18: 3178 movi r1, 120 + 6c1a: 9804 ld.w r0, (r14, 0x10) + 6c1c: b840 st.w r2, (r14, 0x0) + 6c1e: e3ffe5d3 bsr 0x37c4 // 37c4 <__udivsi3> + 6c22: 9840 ld.w r2, (r14, 0x0) + 6c24: 6082 subu r2, r0 + 6c26: b845 st.w r2, (r14, 0x14) + 6c28: 9804 ld.w r0, (r14, 0x10) + 6c2a: 3178 movi r1, 120 + 6c2c: 9844 ld.w r2, (r14, 0x10) + 6c2e: b840 st.w r2, (r14, 0x0) + 6c30: e3ffe5ca bsr 0x37c4 // 37c4 <__udivsi3> + 6c34: 9840 ld.w r2, (r14, 0x0) + 6c36: 6008 addu r0, r2 + 6c38: b806 st.w r0, (r14, 0x18) + 6c3a: c0807020 psrclr ie + 6c3e: 9640 ld.w r2, (r6, 0x0) + 6c40: 9254 ld.w r2, (r2, 0x50) + 6c42: b848 st.w r2, (r14, 0x20) + 6c44: 9861 ld.w r3, (r14, 0x4) + 6c46: 9440 ld.w r2, (r4, 0x0) + 6c48: b260 st.w r3, (r2, 0x0) + 6c4a: b761 st.w r3, (r7, 0x4) + 6c4c: d86e000a ld.b r3, (r14, 0xa) + 6c50: 3b40 cmpnei r3, 0 + 6c52: 083e bt 0x6cce // 6cce + 6c54: e3ffd91a bsr 0x1e88 // 1e88 + 6c58: 9400 ld.w r0, (r4, 0x0) + 6c5a: e3ffd93b bsr 0x1ed0 // 1ed0 + 6c5e: c1807420 psrset ee, ie + 6c62: 3001 movi r0, 1 + 6c64: 07a3 br 0x6baa // 6baa + 6c66: 3b41 cmpnei r3, 1 + 6c68: 0806 bt 0x6c74 // 6c74 + 6c6a: 3303 movi r3, 3 + 6c6c: dc6e000b st.b r3, (r14, 0xb) + 6c70: 127d lrw r3, 0x16e3600 // 6de4 + 6c72: 07a8 br 0x6bc2 // 6bc2 + 6c74: 3b42 cmpnei r3, 2 + 6c76: 0806 bt 0x6c82 // 6c82 + 6c78: 3301 movi r3, 1 + 6c7a: dc6e000b st.b r3, (r14, 0xb) + 6c7e: 127b lrw r3, 0xb71b00 // 6de8 + 6c80: 07a1 br 0x6bc2 // 6bc2 + 6c82: 3b43 cmpnei r3, 3 + 6c84: 0806 bt 0x6c90 // 6c90 + 6c86: 3300 movi r3, 0 + 6c88: dc6e000b st.b r3, (r14, 0xb) + 6c8c: 1278 lrw r3, 0x5b8d80 // 6dec + 6c8e: 079a br 0x6bc2 // 6bc2 + 6c90: 3b44 cmpnei r3, 4 + 6c92: 0809 bt 0x6ca4 // 6ca4 + 6c94: 3300 movi r3, 0 + 6c96: dc6e000b st.b r3, (r14, 0xb) + 6c9a: 1276 lrw r3, 0x54c720 // 6df0 + 6c9c: b863 st.w r3, (r14, 0xc) + 6c9e: 3380 movi r3, 128 + 6ca0: 4369 lsli r3, r3, 9 + 6ca2: 0793 br 0x6bc8 // 6bc8 + 6ca4: 3b45 cmpnei r3, 5 + 6ca6: 0806 bt 0x6cb2 // 6cb2 + 6ca8: 3300 movi r3, 0 + 6caa: dc6e000b st.b r3, (r14, 0xb) + 6cae: 1272 lrw r3, 0x3ffed0 // 6df4 + 6cb0: 07f6 br 0x6c9c // 6c9c + 6cb2: 3b46 cmpnei r3, 6 + 6cb4: 0806 bt 0x6cc0 // 6cc0 + 6cb6: 3300 movi r3, 0 + 6cb8: dc6e000b st.b r3, (r14, 0xb) + 6cbc: 126f lrw r3, 0x1fff68 // 6df8 + 6cbe: 07ef br 0x6c9c // 6c9c + 6cc0: 3b47 cmpnei r3, 7 + 6cc2: 0b84 bt 0x6bca // 6bca + 6cc4: 3300 movi r3, 0 + 6cc6: dc6e000b st.b r3, (r14, 0xb) + 6cca: 126d lrw r3, 0x1ffb8 // 6dfc + 6ccc: 07e8 br 0x6c9c // 6c9c + 6cce: 9560 ld.w r3, (r5, 0x0) + 6cd0: 3101 movi r1, 1 + 6cd2: 9440 ld.w r2, (r4, 0x0) + 6cd4: b321 st.w r1, (r3, 0x4) + 6cd6: b220 st.w r1, (r2, 0x0) + 6cd8: 3100 movi r1, 0 + 6cda: b327 st.w r1, (r3, 0x1c) + 6cdc: 3004 movi r0, 4 + 6cde: b225 st.w r1, (r2, 0x14) + 6ce0: 932e ld.w r1, (r3, 0x38) + 6ce2: 6840 and r1, r0 + 6ce4: 3940 cmpnei r1, 0 + 6ce6: 0ffd bf 0x6ce0 // 6ce0 + 6ce8: 9225 ld.w r1, (r2, 0x14) + 6cea: b82a st.w r1, (r14, 0x28) + 6cec: 3100 movi r1, 0 + 6cee: b310 st.w r0, (r3, 0x40) + 6cf0: b327 st.w r1, (r3, 0x1c) + 6cf2: 3004 movi r0, 4 + 6cf4: b225 st.w r1, (r2, 0x14) + 6cf6: 932e ld.w r1, (r3, 0x38) + 6cf8: 6840 and r1, r0 + 6cfa: 3940 cmpnei r1, 0 + 6cfc: 0ffd bf 0x6cf6 // 6cf6 + 6cfe: 9225 ld.w r1, (r2, 0x14) + 6d00: b82b st.w r1, (r14, 0x2c) + 6d02: 3100 movi r1, 0 + 6d04: b310 st.w r0, (r3, 0x40) + 6d06: b327 st.w r1, (r3, 0x1c) + 6d08: 3004 movi r0, 4 + 6d0a: b225 st.w r1, (r2, 0x14) + 6d0c: 932e ld.w r1, (r3, 0x38) + 6d0e: 6840 and r1, r0 + 6d10: 3940 cmpnei r1, 0 + 6d12: 0ffd bf 0x6d0c // 6d0c + 6d14: 9225 ld.w r1, (r2, 0x14) + 6d16: b82c st.w r1, (r14, 0x30) + 6d18: b310 st.w r0, (r3, 0x40) + 6d1a: 982b ld.w r1, (r14, 0x2c) + 6d1c: 980c ld.w r0, (r14, 0x30) + 6d1e: 6040 addu r1, r0 + 6d20: b829 st.w r1, (r14, 0x24) + 6d22: 9829 ld.w r1, (r14, 0x24) + 6d24: 4921 lsri r1, r1, 1 + 6d26: b829 st.w r1, (r14, 0x24) + 6d28: 3100 movi r1, 0 + 6d2a: b321 st.w r1, (r3, 0x4) + 6d2c: b220 st.w r1, (r2, 0x0) + 6d2e: b327 st.w r1, (r3, 0x1c) + 6d30: b225 st.w r1, (r2, 0x14) + 6d32: d86e0009 ld.b r3, (r14, 0x9) + 6d36: 3b42 cmpnei r3, 2 + 6d38: 9849 ld.w r2, (r14, 0x24) + 6d3a: 082c bt 0x6d92 // 6d92 + 6d3c: 1171 lrw r3, 0x7ff // 6e00 + 6d3e: 648c cmphs r3, r2 + 6d40: 0c03 bf 0x6d46 // 6d46 + 6d42: 3300 movi r3, 0 + 6d44: 040f br 0x6d62 // 6d62 + 6d46: 9849 ld.w r2, (r14, 0x24) + 6d48: 9866 ld.w r3, (r14, 0x18) + 6d4a: 648c cmphs r3, r2 + 6d4c: 080e bt 0x6d68 // 6d68 + 6d4e: 9868 ld.w r3, (r14, 0x20) + 6d50: 9847 ld.w r2, (r14, 0x1c) + 6d52: 60ca subu r3, r2 + 6d54: b868 st.w r3, (r14, 0x20) + 6d56: 32fe movi r2, 254 + 6d58: 9868 ld.w r3, (r14, 0x20) + 6d5a: 4248 lsli r2, r2, 8 + 6d5c: 68c8 and r3, r2 + 6d5e: 3b40 cmpnei r3, 0 + 6d60: 0812 bt 0x6d84 // 6d84 + 6d62: dc6e000a st.b r3, (r14, 0xa) + 6d66: 0721 br 0x6ba8 // 6ba8 + 6d68: 9849 ld.w r2, (r14, 0x24) + 6d6a: 9865 ld.w r3, (r14, 0x14) + 6d6c: 64c8 cmphs r2, r3 + 6d6e: 0829 bt 0x6dc0 // 6dc0 + 6d70: 9868 ld.w r3, (r14, 0x20) + 6d72: 9847 ld.w r2, (r14, 0x1c) + 6d74: 60c8 addu r3, r2 + 6d76: b868 st.w r3, (r14, 0x20) + 6d78: 33fe movi r3, 254 + 6d7a: 9848 ld.w r2, (r14, 0x20) + 6d7c: 4368 lsli r3, r3, 8 + 6d7e: 688c and r2, r3 + 6d80: 64ca cmpne r2, r3 + 6d82: 0fe0 bf 0x6d42 // 6d42 + 6d84: 9660 ld.w r3, (r6, 0x0) + 6d86: 9848 ld.w r2, (r14, 0x20) + 6d88: b354 st.w r2, (r3, 0x50) + 6d8a: 3001 movi r0, 1 + 6d8c: e3ffdf5e bsr 0x2c48 // 2c48 + 6d90: 075e br 0x6c4c // 6c4c + 6d92: 9866 ld.w r3, (r14, 0x18) + 6d94: 648c cmphs r3, r2 + 6d96: 0809 bt 0x6da8 // 6da8 + 6d98: 9868 ld.w r3, (r14, 0x20) + 6d9a: 9847 ld.w r2, (r14, 0x1c) + 6d9c: 60ca subu r3, r2 + 6d9e: b868 st.w r3, (r14, 0x20) + 6da0: 32ff movi r2, 255 + 6da2: 9868 ld.w r3, (r14, 0x20) + 6da4: 4250 lsli r2, r2, 16 + 6da6: 07db br 0x6d5c // 6d5c + 6da8: 9849 ld.w r2, (r14, 0x24) + 6daa: 9865 ld.w r3, (r14, 0x14) + 6dac: 64c8 cmphs r2, r3 + 6dae: 0809 bt 0x6dc0 // 6dc0 + 6db0: 9868 ld.w r3, (r14, 0x20) + 6db2: 9847 ld.w r2, (r14, 0x1c) + 6db4: 60c8 addu r3, r2 + 6db6: b868 st.w r3, (r14, 0x20) + 6db8: 33ff movi r3, 255 + 6dba: 9848 ld.w r2, (r14, 0x20) + 6dbc: 4370 lsli r3, r3, 16 + 6dbe: 07e0 br 0x6d7e // 6d7e + 6dc0: 3300 movi r3, 0 + 6dc2: dc6e000a st.b r3, (r14, 0xa) + 6dc6: 07e2 br 0x6d8a // 6d8a + 6dc8: 2000005c .long 0x2000005c + 6dcc: 2000000c .long 0x2000000c + 6dd0: 02dc6c00 .long 0x02dc6c00 + 6dd4: 0000ffff .long 0x0000ffff + 6dd8: 20000014 .long 0x20000014 + 6ddc: be9c0005 .long 0xbe9c0005 + 6de0: 00030010 .long 0x00030010 + 6de4: 016e3600 .long 0x016e3600 + 6de8: 00b71b00 .long 0x00b71b00 + 6dec: 005b8d80 .long 0x005b8d80 + 6df0: 0054c720 .long 0x0054c720 + 6df4: 003ffed0 .long 0x003ffed0 + 6df8: 001fff68 .long 0x001fff68 + 6dfc: 0001ffb8 .long 0x0001ffb8 + 6e00: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_Switch_V01_20231124.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_Switch_V01_20231124.map new file mode 100644 index 0000000..97a0d44 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_Switch_V01_20231124.map @@ -0,0 +1,2890 @@ +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: 458328 (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: 239 + Section header string table index: 236 + +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_DriveS PROGBITS 00001e68 002e68 00000e 00 AX 0 0 2 + [20] .text.GPIO_Write_ PROGBITS 00001e76 002e76 000008 00 AX 0 0 2 + [21] .text.GPIO_Write_ PROGBITS 00001e7e 002e7e 000008 00 AX 0 0 2 + [22] .text.LPT_Soft_Re PROGBITS 00001e88 002e88 000014 00 AX 0 0 4 + [23] .text.WWDT_CNT_Lo PROGBITS 00001e9c 002e9c 000010 00 AX 0 0 4 + [24] .text.BT_DeInit PROGBITS 00001eac 002eac 00001c 00 AX 0 0 2 + [25] .text.BT_Start PROGBITS 00001ec8 002ec8 000008 00 AX 0 0 2 + [26] .text.BT_Soft_Res PROGBITS 00001ed0 002ed0 00000a 00 AX 0 0 2 + [27] .text.BT_Configur PROGBITS 00001eda 002eda 000018 00 AX 0 0 2 + [28] .text.BT_ControlS PROGBITS 00001ef2 002ef2 00002c 00 AX 0 0 2 + [29] .text.BT_Period_C PROGBITS 00001f1e 002f1e 000006 00 AX 0 0 2 + [30] .text.BT_ConfigIn PROGBITS 00001f24 002f24 000012 00 AX 0 0 2 + [31] .text.BT1_INT_ENA PROGBITS 00001f38 002f38 000010 00 AX 0 0 4 + [32] .text.UART0_DeIni PROGBITS 00001f48 002f48 000018 00 AX 0 0 4 + [33] .text.UART1_DeIni PROGBITS 00001f60 002f60 000018 00 AX 0 0 4 + [34] .text.UART2_DeIni PROGBITS 00001f78 002f78 000018 00 AX 0 0 4 + [35] .text.UART0_Int_E PROGBITS 00001f90 002f90 00001c 00 AX 0 0 4 + [36] .text.UART2_Int_E PROGBITS 00001fac 002fac 00001c 00 AX 0 0 4 + [37] .text.UART_IO_Ini PROGBITS 00001fc8 002fc8 0000ec 00 AX 0 0 4 + [38] .text.UARTInitRxT PROGBITS 000020b4 0030b4 000010 00 AX 0 0 4 + [39] .text.UARTTransmi PROGBITS 000020c4 0030c4 00001e 00 AX 0 0 2 + [40] .text.EPT_Softwar PROGBITS 000020e4 0030e4 000020 00 AX 0 0 4 + [41] .text.EPT_Start PROGBITS 00002104 003104 000028 00 AX 0 0 4 + [42] .text.EPT_Stop PROGBITS 0000212c 00312c 000028 00 AX 0 0 4 + [43] .text.EPT_IO_SET PROGBITS 00002154 003154 000238 00 AX 0 0 4 + [44] .text.EPT_PWM_Con PROGBITS 0000238c 00338c 000038 00 AX 0 0 4 + [45] .text.EPT_PWMX_Ou PROGBITS 000023c4 0033c4 0000d8 00 AX 0 0 4 + [46] .text.EPT_PRDR_CM PROGBITS 0000249c 00349c 00001c 00 AX 0 0 4 + [47] .text.ADC12_RESET PROGBITS 000024b8 0034b8 000064 00 AX 0 0 4 + [48] .text.ADC12_Contr PROGBITS 0000251c 00351c 000010 00 AX 0 0 4 + [49] .text.ADC12_CMD.p PROGBITS 0000252c 00352c 000020 00 AX 0 0 4 + [50] .text.ADC12_CLK_C PROGBITS 0000254c 00354c 00002c 00 AX 0 0 4 + [51] .text.ADC12_Softw PROGBITS 00002578 003578 00000a 00 AX 0 0 2 + [52] .text.ADC12_CMD PROGBITS 00002584 003584 000028 00 AX 0 0 4 + [53] .text.ADC12_ready PROGBITS 000025ac 0035ac 000014 00 AX 0 0 4 + [54] .text.ADC12_SEQEN PROGBITS 000025c0 0035c0 000018 00 AX 0 0 4 + [55] .text.ADC12_DATA_ PROGBITS 000025d8 0035d8 000014 00 AX 0 0 4 + [56] .text.ADC12_Confi PROGBITS 000025ec 0035ec 00007c 00 AX 0 0 4 + [57] .text.ADC12_Confi PROGBITS 00002668 003668 000198 00 AX 0 0 4 + [58] .text.ADC12_Conve PROGBITS 00002800 003800 000180 00 AX 0 0 4 + [59] .text.Page_Progra PROGBITS 00002980 003980 0000a0 00 AX 0 0 4 + [60] .text.ReadDataArr PROGBITS 00002a20 003a20 00002a 00 AX 0 0 2 + [61] .text.tk_paramete PROGBITS 00002a4c 003a4c 000138 00 AX 0 0 4 + [62] .text.CORET_DeIni PROGBITS 00002b84 003b84 000018 00 AX 0 0 4 + [63] .text.CORET_Int_E PROGBITS 00002b9c 003b9c 000018 00 AX 0 0 4 + [64] .text.CORET_start PROGBITS 00002bb4 003bb4 000010 00 AX 0 0 4 + [65] .text.CORET_CLKSO PROGBITS 00002bc4 003bc4 000010 00 AX 0 0 4 + [66] .text.CORET_TICKI PROGBITS 00002bd4 003bd4 000010 00 AX 0 0 4 + [67] .text.CORET_reloa PROGBITS 00002be4 003be4 000010 00 AX 0 0 4 + [68] .text.startup.mai PROGBITS 00002bf4 003bf4 000054 00 AX 0 0 4 + [69] .text.delay_nms PROGBITS 00002c48 003c48 00002c 00 AX 0 0 2 + [70] .text.EPT0_CONFIG PROGBITS 00002c74 003c74 000060 00 AX 0 0 4 + [71] .text.BT_CONFIG PROGBITS 00002cd4 003cd4 000060 00 AX 0 0 4 + [72] .text.SYSCON_CONF PROGBITS 00002d34 003d34 000062 00 AX 0 0 2 + [73] .text.APT32F102_i PROGBITS 00002d98 003d98 000084 00 AX 0 0 4 + [74] .text.SYSCONIntHa PROGBITS 00002e1c 003e1c 0000f0 00 AX 0 0 4 + [75] .text.IFCIntHandl PROGBITS 00002f0c 003f0c 000068 00 AX 0 0 4 + [76] .text.ADCIntHandl PROGBITS 00002f74 003f74 000068 00 AX 0 0 4 + [77] .text.EPT0IntHand PROGBITS 00002fdc 003fdc 0001ac 00 AX 0 0 4 + [78] .text.WWDTHandler PROGBITS 00003188 004188 000034 00 AX 0 0 4 + [79] .text.GPT0IntHand PROGBITS 000031bc 0041bc 000080 00 AX 0 0 4 + [80] .text.RTCIntHandl PROGBITS 0000323c 00423c 000070 00 AX 0 0 4 + [81] .text.UART0IntHan PROGBITS 000032ac 0042ac 00003c 00 AX 0 0 4 + [82] .text.UART1IntHan PROGBITS 000032e8 0042e8 00003c 00 AX 0 0 4 + [83] .text.UART2IntHan PROGBITS 00003324 004324 000094 00 AX 0 0 4 + [84] .text.SPI0IntHand PROGBITS 000033b8 0043b8 0000e8 00 AX 0 0 4 + [85] .text.SIO0IntHand PROGBITS 000034a0 0044a0 000054 00 AX 0 0 4 + [86] .text.EXI0IntHand PROGBITS 000034f4 0044f4 000030 00 AX 0 0 4 + [87] .text.EXI1IntHand PROGBITS 00003524 004524 000030 00 AX 0 0 4 + [88] .text.EXI2to3IntH PROGBITS 00003554 004554 000048 00 AX 0 0 4 + [89] .text.EXI4to9IntH PROGBITS 0000359c 00459c 00005c 00 AX 0 0 4 + [90] .text.EXI10to15In PROGBITS 000035f8 0045f8 000060 00 AX 0 0 4 + [91] .text.LPTIntHandl PROGBITS 00003658 004658 000034 00 AX 0 0 4 + [92] .text.BT0IntHandl PROGBITS 0000368c 00468c 00004c 00 AX 0 0 4 + [93] .text.BT1IntHandl PROGBITS 000036d8 0046d8 000064 00 AX 0 0 4 + [94] .text.PriviledgeV PROGBITS 0000373c 00473c 000002 00 AX 0 0 2 + [95] .text.PendTrapHan PROGBITS 0000373e 00473e 000008 00 AX 0 0 2 + [96] .text.Trap3Handle PROGBITS 00003746 004746 000008 00 AX 0 0 2 + [97] .text.Trap2Handle PROGBITS 0000374e 00474e 000008 00 AX 0 0 2 + [98] .text.Trap1Handle PROGBITS 00003756 004756 000008 00 AX 0 0 2 + [99] .text.Trap0Handle PROGBITS 0000375e 00475e 000008 00 AX 0 0 2 + [100] .text.UnrecExecpH PROGBITS 00003766 004766 000008 00 AX 0 0 2 + [101] .text.BreakPointH PROGBITS 0000376e 00476e 000008 00 AX 0 0 2 + [102] .text.AccessErrHa PROGBITS 00003776 004776 000008 00 AX 0 0 2 + [103] .text.IllegalInst PROGBITS 0000377e 00477e 000008 00 AX 0 0 2 + [104] .text.MisalignedH PROGBITS 00003786 004786 000008 00 AX 0 0 2 + [105] .text.CNTAIntHand PROGBITS 0000378e 00478e 000008 00 AX 0 0 2 + [106] .text.I2CIntHandl PROGBITS 00003796 004796 000008 00 AX 0 0 2 + [107] .text.__divsi3 PROGBITS 000037a0 0047a0 000024 00 AX 0 0 4 + [108] .text.__udivsi3 PROGBITS 000037c4 0047c4 000024 00 AX 0 0 4 + [109] .text.__umodsi3 PROGBITS 000037e8 0047e8 000024 00 AX 0 0 4 + [110] .text.CK_CPU_EnAl PROGBITS 0000380c 00480c 000006 00 AX 0 0 2 + [111] .text.UARTx_Init PROGBITS 00003814 004814 0000a4 00 AX 0 0 4 + [112] .text.UART2_RecvI PROGBITS 000038b8 0048b8 000068 00 AX 0 0 4 + [113] .text.UART2_TASK PROGBITS 00003920 004920 0000a4 00 AX 0 0 4 + [114] .text.Dbg_Println PROGBITS 000039c4 0049c4 00000c 00 AX 0 0 2 + [115] .text.Dbg_Print_B PROGBITS 000039d0 0049d0 000002 00 AX 0 0 2 + [116] .text.Touch_Key_I PROGBITS 000039d4 0049d4 000090 00 AX 0 0 4 + [117] .text.TouchKey_RS PROGBITS 00003a64 004a64 000094 00 AX 0 0 4 + [118] .text.Get_TouchKe PROGBITS 00003af8 004af8 00003c 00 AX 0 0 4 + [119] .text.TouchKey_Er PROGBITS 00003b34 004b34 000054 00 AX 0 0 4 + [120] .text.Touch_Key_E PROGBITS 00003b88 004b88 0000ac 00 AX 0 0 4 + [121] .text.TouchKey_Se PROGBITS 00003c34 004c34 00003c 00 AX 0 0 4 + [122] .text.Touch_Key_T PROGBITS 00003c70 004c70 0000dc 00 AX 0 0 4 + [123] .text.TouchKey_Ch PROGBITS 00003d4c 004d4c 000018 00 AX 0 0 2 + [124] .text.TouchKey_Co PROGBITS 00003d64 004d64 000070 00 AX 0 0 4 + [125] .text.TouchKey_Se PROGBITS 00003dd4 004dd4 0000b8 00 AX 0 0 4 + [126] .text.TouchKey_Re PROGBITS 00003e8c 004e8c 0000e4 00 AX 0 0 4 + [127] .text.TouchKey_Du PROGBITS 00003f70 004f70 000038 00 AX 0 0 4 + [128] .text.TouchKey_Re PROGBITS 00003fa8 004fa8 0000cc 00 AX 0 0 4 + [129] .text.TouchKey_Re PROGBITS 00004074 005074 00001a 00 AX 0 0 2 + [130] .text.TouchKey_Co PROGBITS 00004090 005090 0000d8 00 AX 0 0 4 + [131] .text.EEPROM_Chec PROGBITS 00004168 005168 000016 00 AX 0 0 2 + [132] .text.EEPROM_Read PROGBITS 00004180 005180 000074 00 AX 0 0 4 + [133] .text.EEPROM_Writ PROGBITS 000041f4 0051f4 000044 00 AX 0 0 4 + [134] .text.EEPROM_Vali PROGBITS 00004238 005238 000060 00 AX 0 0 4 + [135] .text.EEPROM_Defa PROGBITS 00004298 005298 000016 00 AX 0 0 2 + [136] .text.EEPROM_Init PROGBITS 000042b0 0052b0 000050 00 AX 0 0 4 + [137] .text.EEPROM_Writ PROGBITS 00004300 005300 00006c 00 AX 0 0 4 + [138] .text.EEPROM_Read PROGBITS 0000436c 00536c 0000ac 00 AX 0 0 4 + [139] .text.EEPROM_Vali PROGBITS 00004418 005418 0000a8 00 AX 0 0 4 + [140] .text.EEPROM_Defa PROGBITS 000044c0 0054c0 000040 00 AX 0 0 2 + [141] .text.EEPROM_Touc PROGBITS 00004500 005500 000080 00 AX 0 0 4 + [142] .text.ADC_Init PROGBITS 00004580 005580 00005c 00 AX 0 0 4 + [143] .text.Thermistor_ PROGBITS 000045dc 0055dc 000048 00 AX 0 0 4 + [144] .text.Calculate_A PROGBITS 00004624 005624 0000c0 00 AX 0 0 4 + [145] .text.ADC_Sample_ PROGBITS 000046e4 0056e4 0000b0 00 AX 0 0 4 + [146] .text.Get_Temp_Va PROGBITS 00004794 005794 000010 00 AX 0 0 4 + [147] .text.HT1621_WR_D PROGBITS 000047a4 0057a4 000048 00 AX 0 0 4 + [148] .text.HT1621_WR_C PROGBITS 000047ec 0057ec 000030 00 AX 0 0 4 + [149] .text.HT1621_Init PROGBITS 0000481c 00581c 0000a4 00 AX 0 0 4 + [150] .text.HT1621_Clea PROGBITS 000048c0 0058c0 000050 00 AX 0 0 4 + [151] .text.HT1621_ALLO PROGBITS 00004910 005910 000040 00 AX 0 0 4 + [152] .text.HT1621_Refr PROGBITS 00004950 005950 00004c 00 AX 0 0 4 + [153] .text.Set_Tempera PROGBITS 0000499c 00599c 000088 00 AX 0 0 4 + [154] .text.Local_Tempe PROGBITS 00004a24 005a24 000080 00 AX 0 0 4 + [155] .text.Control_Mod PROGBITS 00004aa4 005aa4 000048 00 AX 0 0 4 + [156] .text.Control_win PROGBITS 00004aec 005aec 000070 00 AX 0 0 4 + [157] .text.Control_Pro PROGBITS 00004b5c 005b5c 000044 00 AX 0 0 4 + [158] .text.Controlled_ PROGBITS 00004ba0 005ba0 000048 00 AX 0 0 4 + [159] .text.Controlled_ PROGBITS 00004be8 005be8 000024 00 AX 0 0 4 + [160] .text.Set_Device_ PROGBITS 00004c0c 005c0c 000098 00 AX 0 0 4 + [161] .text.Set_Temp_Di PROGBITS 00004ca4 005ca4 000064 00 AX 0 0 4 + [162] .text.HT1621_Refr PROGBITS 00004d08 005d08 000060 00 AX 0 0 4 + [163] .text.TemCtrl_Ini PROGBITS 00004d68 005d68 000130 00 AX 0 0 4 + [164] .text.TemCtrl_Mod PROGBITS 00004e98 005e98 00004c 00 AX 0 0 4 + [165] .text.TemCtrl_Fan PROGBITS 00004ee4 005ee4 00004c 00 AX 0 0 4 + [166] .text.TemCtrl_Tem PROGBITS 00004f30 005f30 000030 00 AX 0 0 4 + [167] .text.TemCtrl_Tem PROGBITS 00004f60 005f60 000030 00 AX 0 0 4 + [168] .text.TemCtrl_OnO PROGBITS 00004f90 005f90 000034 00 AX 0 0 4 + [169] .text.Tem_Valve_C PROGBITS 00004fc4 005fc4 0000e8 00 AX 0 0 4 + [170] .text.TemCtrl_Pro PROGBITS 000050ac 0060ac 0000f0 00 AX 0 0 4 + [171] .text.KEY1_Model_ PROGBITS 0000519c 00619c 0000d0 00 AX 0 0 4 + [172] .text.KEY2_Fan_Pr PROGBITS 0000526c 00626c 0000d0 00 AX 0 0 4 + [173] .text.KEY3_TempAd PROGBITS 0000533c 00633c 0000dc 00 AX 0 0 4 + [174] .text.KEY3_Long_P PROGBITS 00005418 006418 00006c 00 AX 0 0 4 + [175] .text.KEY4_TempDe PROGBITS 00005484 006484 0000e0 00 AX 0 0 4 + [176] .text.KEY4_Long_P PROGBITS 00005564 006564 00006c 00 AX 0 0 4 + [177] .text.KEY5_OnOff_ PROGBITS 000055d0 0065d0 000084 00 AX 0 0 4 + [178] .text.TempCtrl_On PROGBITS 00005654 006654 00004c 00 AX 0 0 4 + [179] .text.DisPlay_Ini PROGBITS 000056a0 0066a0 000020 00 AX 0 0 4 + [180] .text.DisPlay_Tas PROGBITS 000056c0 0066c0 0001bc 00 AX 0 0 4 + [181] .text.Debug_Init PROGBITS 0000587c 00687c 000030 00 AX 0 0 4 + [182] .text.Dev_SaveDat PROGBITS 000058ac 0068ac 000060 00 AX 0 0 4 + [183] .text.Debug_Task PROGBITS 0000590c 00690c 00006c 00 AX 0 0 4 + [184] .text.get_check_s PROGBITS 00005978 006978 000016 00 AX 0 0 2 + [185] .text.uart_receiv PROGBITS 00005990 006990 000044 00 AX 0 0 4 + [186] .text.Queue_Read_ PROGBITS 000059d4 0069d4 000034 00 AX 0 0 4 + [187] .text.with_data_r PROGBITS 00005a08 006a08 00001c 00 AX 0 0 4 + [188] .text.RF_Info_Ini PROGBITS 00005a24 006a24 000034 00 AX 0 0 4 + [189] .text.Add_Frame_H PROGBITS 00005a58 006a58 000040 00 AX 0 0 4 + [190] .text.Product_Inf PROGBITS 00005a98 006a98 000094 00 AX 0 0 4 + [191] .text.Recv_RFNetS PROGBITS 00005b2c 006b2c 000038 00 AX 0 0 4 + [192] .text.Tem_Fun_Ctr PROGBITS 00005b64 006b64 0000b0 00 AX 0 0 4 + [193] .text.data_handle PROGBITS 00005c14 006c14 000128 00 AX 0 0 4 + [194] .text.zigbee_uart PROGBITS 00005d3c 006d3c 0000e8 00 AX 0 0 4 + [195] .text.TemFun_Repo PROGBITS 00005e24 006e24 000124 00 AX 0 0 4 + [196] .text.Relay_Init PROGBITS 00005f48 006f48 00006c 00 AX 0 0 4 + [197] .text.Relay_High PROGBITS 00005fb4 006fb4 000024 00 AX 0 0 4 + [198] .text.Relay_Mid PROGBITS 00005fd8 006fd8 000024 00 AX 0 0 4 + [199] .text.Relay_Low PROGBITS 00005ffc 006ffc 000024 00 AX 0 0 4 + [200] .text.Relay_Stop PROGBITS 00006020 007020 000024 00 AX 0 0 4 + [201] .text.TK_ConfigIn PROGBITS 00006044 007044 000010 00 AX 0 0 4 + [202] .text.tk_clk_conf PROGBITS 00006054 007054 000028 00 AX 0 0 4 + [203] .text.TK_con0_con PROGBITS 0000607c 00707c 0000bc 00 AX 0 0 4 + [204] .text.TK_IO_Enabl PROGBITS 00006138 007138 000134 00 AX 0 0 4 + [205] .text.TK_Sampling PROGBITS 0000626c 00726c 000058 00 AX 0 0 4 + [206] .text.TKEYIntHand PROGBITS 000062c4 0072c4 000088 00 AX 0 0 4 + [207] .text.get_key_num PROGBITS 0000634c 00734c 000028 00 AX 0 0 4 + [208] .text.TK_Baseline PROGBITS 00006374 007374 000084 00 AX 0 0 4 + [209] .text.TK_Scan_Sta PROGBITS 000063f8 0073f8 000020 00 AX 0 0 4 + [210] .text.TK_Keymap_p PROGBITS 00006418 007418 000180 00 AX 0 0 4 + [211] .text.TK_overflow PROGBITS 00006598 007598 00011c 00 AX 0 0 4 + [212] .text.TK_Baseline PROGBITS 000066b4 0076b4 0001d0 00 AX 0 0 4 + [213] .text.TK_result_p PROGBITS 00006884 007884 000054 00 AX 0 0 4 + [214] .text.CORETHandle PROGBITS 000068d8 0078d8 000078 00 AX 0 0 4 + [215] .text.get_key_seq PROGBITS 00006950 007950 000034 00 AX 0 0 4 + [216] .text.CORET_CONFI PROGBITS 00006984 007984 000038 00 AX 0 0 4 + [217] .text.tk_chxval_s PROGBITS 000069bc 0079bc 00001c 00 AX 0 0 4 + [218] .text.tk_reserved PROGBITS 000069d8 0079d8 000028 00 AX 0 0 4 + [219] .text.tk_init PROGBITS 00006a00 007a00 000180 00 AX 0 0 4 + [220] .text.std_clk_cal PROGBITS 00006b80 007b80 000284 00 AX 0 0 4 + [221] .RomCode PROGBITS 00006e04 0090a4 000000 00 W 0 0 1 + [222] .rodata PROGBITS 00006e04 007e04 00087c 00 A 0 0 4 + [223] .data PROGBITS 20000000 009000 0000a4 00 WA 0 0 4 + [224] .bss NOBITS 200000a4 0090a4 000750 00 WA 0 0 4 + [225] .csky.attributes CSKY_ATTRIBUTES 00000000 0090a4 000022 00 0 0 1 + [226] .comment PROGBITS 00000000 0090c6 000042 01 MS 0 0 1 + [227] .csky_stack_size PROGBITS 00000000 009110 0009bc 00 0 0 16 + [228] .debug_line PROGBITS 00000000 009acc 0056ba 00 0 0 1 + [229] .debug_info PROGBITS 00000000 00f186 0441ea 00 0 0 1 + [230] .debug_abbrev PROGBITS 00000000 053370 003d2c 00 0 0 1 + [231] .debug_aranges PROGBITS 00000000 0570a0 000fa8 00 0 0 8 + [232] .debug_ranges PROGBITS 00000000 058048 000f38 00 0 0 1 + [233] .debug_str PROGBITS 00000000 058f80 009435 01 MS 0 0 1 + [234] .debug_frame PROGBITS 00000000 0623b8 0024b0 00 0 0 4 + [235] .debug_loc PROGBITS 00000000 064868 002fed 00 0 0 1 + [236] .shstrtab STRTAB 00000000 06e9a9 0014ac 00 0 0 1 + [237] .symtab SYMTAB 00000000 067858 0056f0 10 238 1006 4 + [238] .strtab STRTAB 00000000 06cf48 001a61 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 0x07680 0x07680 R E 0x1000 + LOAD 0x009000 0x20000000 0x00007680 0x000a4 0x007f4 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_DriveStrength_EN .text.GPIO_Write_High .text.GPIO_Write_Low .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.UART2_Int_Enable .text.UART_IO_Init .text.UARTInitRxTxIntEn .text.UARTTransmit .text.EPT_Software_Prg .text.EPT_Start .text.EPT_Stop .text.EPT_IO_SET .text.EPT_PWM_Config .text.EPT_PWMX_Output_Control .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config .text.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.EPT0_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.__umodsi3 .text.CK_CPU_EnAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.TouchKey_Error_Scan .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.ADC_Sample_Task .text.Get_Temp_Val .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.get_check_sum .text.uart_receive_input .text.Queue_Read_Byte .text.with_data_rxbuff .text.RF_Info_Init .text.Add_Frame_Head .text.Product_Info_Update .text.Recv_RFNetState_Ack .text.Tem_Fun_Ctrl_Report .text.data_handle .text.zigbee_uart_service .text.TemFun_Report_Task .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Low) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/USRCTRL_myrelay.o(.text.Relay_Stop) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/USRCTRL_myrelay.o(.text.Relay_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_High) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Mid) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/USRCTRL_myrelay.o(.text.Relay_Low) 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_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/FWlib_apt32f102_uart.o(.text.UARTTransmit) for UARTTransmit + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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.UARTInitRxTxIntEn) for UARTInitRxTxIntEn + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Software_Prg) for EPT_Software_Prg + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Start) for EPT_Start + Obj/mcu_interrupt.o(.text.EPT0IntHandler) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_Stop) for EPT_Stop + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_IO_SET) for EPT_IO_SET + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWM_Config) for EPT_PWM_Config + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PWMX_Output_Control) for EPT_PWMX_Output_Control + Obj/mcu_initial.o(.text.EPT0_CONFIG) refers to Obj/FWlib_apt32f102_ept.o(.text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config) for EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.EPT0_CONFIG) for EPT0_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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.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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Error_Scan) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.TouchKey_Error_Scan) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Error_Scan) for TouchKey_Error_Scan + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.get_check_sum) for get_check_sum + Obj/SYSTEM_uart.o(.text.UART2_RecvINT_Processing) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.uart_receive_input) for uart_receive_input + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Queue_Read_Byte) for Queue_Read_Byte + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.with_data_rxbuff) for with_data_rxbuff + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) for RF_Info_Init + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Add_Frame_Head) for Add_Frame_Head + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) for Product_Info_Update + Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) for Recv_RFNetState_Ack + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) for Tem_Fun_Ctrl_Report + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.data_handle) for data_handle + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) for zigbee_uart_service + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_rf_uart_protocol.o(.text.TemFun_Report_Task) for TemFun_Report_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + 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_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.RF_Info_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Recv_RFNetState_Ack) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_rf_uart_protocol.o(.text.Tem_Fun_Ctrl_Report) 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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.Product_Info_Update) refers to memcpy_fast.o(.text) for memcpy + Obj/USRCTRL_rf_uart_protocol.o(.text.zigbee_uart_service) 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), (2917 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_PullHigh_Init(Obj/FWlib_apt32f102_gpio.o), (20 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.GPIO_Read_Status(Obj/FWlib_apt32f102_gpio.o), (16 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), (3111 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), (3428 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), (3173 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), (8036 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), (4141 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), (3544 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.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), (3660 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_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_Tevent_Selecte(Obj/FWlib_apt32f102_ept.o), (16 bytes). + Removing .text.EPT_PHSEN_Config(Obj/FWlib_apt32f102_ept.o), (24 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), (4860 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.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.CK_CPU_DisAllNormalIrq(Obj/drivers_apt32f102_ck801.o), (6 bytes). + Removing .text(Obj/SYSTEM_uart.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart.o), (0 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART1_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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Controlled_Key_Backlight(Obj/SYSTEM_ht1621.o), (36 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_rf_uart_protocol.o), (0 bytes). + Removing .text.Rest_RFNetState(Obj/USRCTRL_rf_uart_protocol.o), (64 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.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), (131 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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). + +590 unused seciton(s) (total 153177 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_rf_uart_protocol.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.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_DriveStrength_EN + $t 0x00001e68 0 .text.GPIO_DriveStrength_EN + $d 0x00001e76 0 .text.GPIO_Write_High + $t 0x00001e76 0 .text.GPIO_Write_High + $d 0x00001e7e 0 .text.GPIO_Write_Low + $t 0x00001e7e 0 .text.GPIO_Write_Low + $d 0x00001e88 0 .text.LPT_Soft_Reset + $t 0x00001e88 0 .text.LPT_Soft_Reset + $d 0x00001e98 0 .text.LPT_Soft_Reset + $d 0x00001e9c 0 .text.WWDT_CNT_Load + $t 0x00001e9c 0 .text.WWDT_CNT_Load + $d 0x00001ea8 0 .text.WWDT_CNT_Load + $d 0x00001eac 0 .text.BT_DeInit + $t 0x00001eac 0 .text.BT_DeInit + $d 0x00001ec8 0 .text.BT_Start + $t 0x00001ec8 0 .text.BT_Start + $d 0x00001ed0 0 .text.BT_Soft_Reset + $t 0x00001ed0 0 .text.BT_Soft_Reset + $d 0x00001eda 0 .text.BT_Configure + $t 0x00001eda 0 .text.BT_Configure + $d 0x00001ef2 0 .text.BT_ControlSet_Configure + $t 0x00001ef2 0 .text.BT_ControlSet_Configure + $d 0x00001f1e 0 .text.BT_Period_CMP_Write + $t 0x00001f1e 0 .text.BT_Period_CMP_Write + $d 0x00001f24 0 .text.BT_ConfigInterrupt_CMD + $t 0x00001f24 0 .text.BT_ConfigInterrupt_CMD + $d 0x00001f38 0 .text.BT1_INT_ENABLE + $t 0x00001f38 0 .text.BT1_INT_ENABLE + $d 0x00001f44 0 .text.BT1_INT_ENABLE + $d 0x00001f48 0 .text.UART0_DeInit + $t 0x00001f48 0 .text.UART0_DeInit + $d 0x00001f5c 0 .text.UART0_DeInit + $d 0x00001f60 0 .text.UART1_DeInit + $t 0x00001f60 0 .text.UART1_DeInit + $d 0x00001f74 0 .text.UART1_DeInit + $d 0x00001f78 0 .text.UART2_DeInit + $t 0x00001f78 0 .text.UART2_DeInit + $d 0x00001f8c 0 .text.UART2_DeInit + $d 0x00001f90 0 .text.UART0_Int_Enable + $t 0x00001f90 0 .text.UART0_Int_Enable + $d 0x00001fa4 0 .text.UART0_Int_Enable + $d 0x00001fac 0 .text.UART2_Int_Enable + $t 0x00001fac 0 .text.UART2_Int_Enable + $d 0x00001fc0 0 .text.UART2_Int_Enable + $d 0x00001fc8 0 .text.UART_IO_Init + $t 0x00001fc8 0 .text.UART_IO_Init + $d 0x000020ac 0 .text.UART_IO_Init + $d 0x000020b4 0 .text.UARTInitRxTxIntEn + $t 0x000020b4 0 .text.UARTInitRxTxIntEn + $d 0x000020c0 0 .text.UARTInitRxTxIntEn + $d 0x000020c4 0 .text.UARTTransmit + $t 0x000020c4 0 .text.UARTTransmit + $d 0x000020e4 0 .text.EPT_Software_Prg + $t 0x000020e4 0 .text.EPT_Software_Prg + $d 0x00002100 0 .text.EPT_Software_Prg + $d 0x00002104 0 .text.EPT_Start + $t 0x00002104 0 .text.EPT_Start + $d 0x00002124 0 .text.EPT_Start + $d 0x0000212c 0 .text.EPT_Stop + $t 0x0000212c 0 .text.EPT_Stop + $d 0x0000214c 0 .text.EPT_Stop + $d 0x00002154 0 .text.EPT_IO_SET + $t 0x00002154 0 .text.EPT_IO_SET + $d 0x00002384 0 .text.EPT_IO_SET + $d 0x0000238c 0 .text.EPT_PWM_Config + $t 0x0000238c 0 .text.EPT_PWM_Config + $d 0x000023bc 0 .text.EPT_PWM_Config + $d 0x000023c4 0 .text.EPT_PWMX_Output_Control + $t 0x000023c4 0 .text.EPT_PWMX_Output_Control + $d 0x00002498 0 .text.EPT_PWMX_Output_Control + $d 0x0000249c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $t 0x0000249c 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x000024b4 0 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + $d 0x000024b8 0 .text.ADC12_RESET_VALUE + $t 0x000024b8 0 .text.ADC12_RESET_VALUE + $d 0x00002518 0 .text.ADC12_RESET_VALUE + $d 0x0000251c 0 .text.ADC12_Control + $t 0x0000251c 0 .text.ADC12_Control + $d 0x00002528 0 .text.ADC12_Control + ADC12_CMD.part.0 0x0000252c F 32 .text.ADC12_CMD.part.0 + $d 0x0000252c 0 .text.ADC12_CMD.part.0 + $t 0x0000252c 0 .text.ADC12_CMD.part.0 + $d 0x00002548 0 .text.ADC12_CMD.part.0 + $d 0x0000254c 0 .text.ADC12_CLK_CMD + $t 0x0000254c 0 .text.ADC12_CLK_CMD + $d 0x00002574 0 .text.ADC12_CLK_CMD + $d 0x00002578 0 .text.ADC12_Software_Reset + $t 0x00002578 0 .text.ADC12_Software_Reset + $d 0x00002584 0 .text.ADC12_CMD + $t 0x00002584 0 .text.ADC12_CMD + $d 0x000025a8 0 .text.ADC12_CMD + $d 0x000025ac 0 .text.ADC12_ready_wait + $t 0x000025ac 0 .text.ADC12_ready_wait + $d 0x000025bc 0 .text.ADC12_ready_wait + $d 0x000025c0 0 .text.ADC12_SEQEND_wait + $t 0x000025c0 0 .text.ADC12_SEQEND_wait + $d 0x000025d4 0 .text.ADC12_SEQEND_wait + $d 0x000025d8 0 .text.ADC12_DATA_OUPUT + $t 0x000025d8 0 .text.ADC12_DATA_OUPUT + $d 0x000025e8 0 .text.ADC12_DATA_OUPUT + $d 0x000025ec 0 .text.ADC12_Configure_Mode + $t 0x000025ec 0 .text.ADC12_Configure_Mode + $d 0x00002664 0 .text.ADC12_Configure_Mode + $d 0x00002668 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00002668 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000027dc 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002800 0 .text.ADC12_ConversionChannel_Config + $t 0x00002800 0 .text.ADC12_ConversionChannel_Config + $d 0x0000282c 0 .text.ADC12_ConversionChannel_Config + $t 0x0000283c 0 .text.ADC12_ConversionChannel_Config + $d 0x00002974 0 .text.ADC12_ConversionChannel_Config + $d 0x00002980 0 .text.Page_ProgramData + $t 0x00002980 0 .text.Page_ProgramData + $d 0x00002a18 0 .text.Page_ProgramData + $d 0x00002a20 0 .text.ReadDataArry_U8 + $t 0x00002a20 0 .text.ReadDataArry_U8 + $d 0x00002a4c 0 .text.tk_parameter_init + $t 0x00002a4c 0 .text.tk_parameter_init + $d 0x00002b34 0 .text.tk_parameter_init + $d 0x00002b84 0 .text.CORET_DeInit + $t 0x00002b84 0 .text.CORET_DeInit + $d 0x00002b98 0 .text.CORET_DeInit + $d 0x00002b9c 0 .text.CORET_Int_Enable + $t 0x00002b9c 0 .text.CORET_Int_Enable + $d 0x00002bac 0 .text.CORET_Int_Enable + $d 0x00002bb4 0 .text.CORET_start + $t 0x00002bb4 0 .text.CORET_start + $d 0x00002bc0 0 .text.CORET_start + $d 0x00002bc4 0 .text.CORET_CLKSOURCE_EX + $t 0x00002bc4 0 .text.CORET_CLKSOURCE_EX + $d 0x00002bd0 0 .text.CORET_CLKSOURCE_EX + $d 0x00002bd4 0 .text.CORET_TICKINT_Enable + $t 0x00002bd4 0 .text.CORET_TICKINT_Enable + $d 0x00002be0 0 .text.CORET_TICKINT_Enable + $d 0x00002be4 0 .text.CORET_reload + $t 0x00002be4 0 .text.CORET_reload + $d 0x00002bf0 0 .text.CORET_reload + $d 0x00002bf4 0 .text.startup.main + $t 0x00002bf4 0 .text.startup.main + $d 0x00002c40 0 .text.startup.main + $d 0x00002c48 0 .text.delay_nms + $t 0x00002c48 0 .text.delay_nms + $d 0x00002c74 0 .text.EPT0_CONFIG + $t 0x00002c74 0 .text.EPT0_CONFIG + $d 0x00002cd0 0 .text.EPT0_CONFIG + $d 0x00002cd4 0 .text.BT_CONFIG + $t 0x00002cd4 0 .text.BT_CONFIG + $d 0x00002d2c 0 .text.BT_CONFIG + $d 0x00002d34 0 .text.SYSCON_CONFIG + $t 0x00002d34 0 .text.SYSCON_CONFIG + $d 0x00002d98 0 .text.APT32F102_init + $t 0x00002d98 0 .text.APT32F102_init + $d 0x00002e08 0 .text.APT32F102_init + $d 0x00002e1c 0 .text.SYSCONIntHandler + $t 0x00002e1c 0 .text.SYSCONIntHandler + $d 0x00002f08 0 .text.SYSCONIntHandler + $d 0x00002f0c 0 .text.IFCIntHandler + $t 0x00002f0c 0 .text.IFCIntHandler + $d 0x00002f70 0 .text.IFCIntHandler + $d 0x00002f74 0 .text.ADCIntHandler + $t 0x00002f74 0 .text.ADCIntHandler + $d 0x00002fd8 0 .text.ADCIntHandler + $d 0x00002fdc 0 .text.EPT0IntHandler + $t 0x00002fdc 0 .text.EPT0IntHandler + $d 0x0000317c 0 .text.EPT0IntHandler + $d 0x00003188 0 .text.WWDTHandler + $t 0x00003188 0 .text.WWDTHandler + $d 0x000031b8 0 .text.WWDTHandler + $d 0x000031bc 0 .text.GPT0IntHandler + $t 0x000031bc 0 .text.GPT0IntHandler + $d 0x00003238 0 .text.GPT0IntHandler + $d 0x0000323c 0 .text.RTCIntHandler + $t 0x0000323c 0 .text.RTCIntHandler + $d 0x000032a4 0 .text.RTCIntHandler + $d 0x000032ac 0 .text.UART0IntHandler + $t 0x000032ac 0 .text.UART0IntHandler + $d 0x000032e4 0 .text.UART0IntHandler + $d 0x000032e8 0 .text.UART1IntHandler + $t 0x000032e8 0 .text.UART1IntHandler + $d 0x00003320 0 .text.UART1IntHandler + $d 0x00003324 0 .text.UART2IntHandler + $t 0x00003324 0 .text.UART2IntHandler + $d 0x000033a4 0 .text.UART2IntHandler + $d 0x000033b8 0 .text.SPI0IntHandler + $t 0x000033b8 0 .text.SPI0IntHandler + $d 0x0000349c 0 .text.SPI0IntHandler + $d 0x000034a0 0 .text.SIO0IntHandler + $t 0x000034a0 0 .text.SIO0IntHandler + $d 0x000034f0 0 .text.SIO0IntHandler + $d 0x000034f4 0 .text.EXI0IntHandler + $t 0x000034f4 0 .text.EXI0IntHandler + $d 0x00003520 0 .text.EXI0IntHandler + $d 0x00003524 0 .text.EXI1IntHandler + $t 0x00003524 0 .text.EXI1IntHandler + $d 0x00003550 0 .text.EXI1IntHandler + $d 0x00003554 0 .text.EXI2to3IntHandler + $t 0x00003554 0 .text.EXI2to3IntHandler + $d 0x00003598 0 .text.EXI2to3IntHandler + $d 0x0000359c 0 .text.EXI4to9IntHandler + $t 0x0000359c 0 .text.EXI4to9IntHandler + $d 0x000035f4 0 .text.EXI4to9IntHandler + $d 0x000035f8 0 .text.EXI10to15IntHandler + $t 0x000035f8 0 .text.EXI10to15IntHandler + $d 0x00003654 0 .text.EXI10to15IntHandler + $d 0x00003658 0 .text.LPTIntHandler + $t 0x00003658 0 .text.LPTIntHandler + $d 0x00003688 0 .text.LPTIntHandler + $d 0x0000368c 0 .text.BT0IntHandler + $t 0x0000368c 0 .text.BT0IntHandler + $d 0x000036d4 0 .text.BT0IntHandler + $d 0x000036d8 0 .text.BT1IntHandler + $t 0x000036d8 0 .text.BT1IntHandler + $d 0x00003734 0 .text.BT1IntHandler + $d 0x0000373c 0 .text.PriviledgeVioHandler + $t 0x0000373c 0 .text.PriviledgeVioHandler + $d 0x0000373e 0 .text.PendTrapHandler + $t 0x0000373e 0 .text.PendTrapHandler + $d 0x00003746 0 .text.Trap3Handler + $t 0x00003746 0 .text.Trap3Handler + $d 0x0000374e 0 .text.Trap2Handler + $t 0x0000374e 0 .text.Trap2Handler + $d 0x00003756 0 .text.Trap1Handler + $t 0x00003756 0 .text.Trap1Handler + $d 0x0000375e 0 .text.Trap0Handler + $t 0x0000375e 0 .text.Trap0Handler + $d 0x00003766 0 .text.UnrecExecpHandler + $t 0x00003766 0 .text.UnrecExecpHandler + $d 0x0000376e 0 .text.BreakPointHandler + $t 0x0000376e 0 .text.BreakPointHandler + $d 0x00003776 0 .text.AccessErrHandler + $t 0x00003776 0 .text.AccessErrHandler + $d 0x0000377e 0 .text.IllegalInstrHandler + $t 0x0000377e 0 .text.IllegalInstrHandler + $d 0x00003786 0 .text.MisalignedHandler + $t 0x00003786 0 .text.MisalignedHandler + $d 0x0000378e 0 .text.CNTAIntHandler + $t 0x0000378e 0 .text.CNTAIntHandler + $d 0x00003796 0 .text.I2CIntHandler + $t 0x00003796 0 .text.I2CIntHandler + $d 0x000037a0 0 .text.__divsi3 + $t 0x000037a0 0 .text.__divsi3 + $d 0x000037c0 0 .text.__divsi3 + $d 0x000037c4 0 .text.__udivsi3 + $t 0x000037c4 0 .text.__udivsi3 + $d 0x000037e4 0 .text.__udivsi3 + $d 0x000037e8 0 .text.__umodsi3 + $t 0x000037e8 0 .text.__umodsi3 + $d 0x00003808 0 .text.__umodsi3 + $d 0x0000380c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x0000380c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00003814 0 .text.UARTx_Init + $t 0x00003814 0 .text.UARTx_Init + $d 0x0000389c 0 .text.UARTx_Init + $d 0x000038b8 0 .text.UART2_RecvINT_Processing + $t 0x000038b8 0 .text.UART2_RecvINT_Processing + $d 0x00003910 0 .text.UART2_RecvINT_Processing + $d 0x00003920 0 .text.UART2_TASK + $t 0x00003920 0 .text.UART2_TASK + $d 0x000039b4 0 .text.UART2_TASK + $d 0x000039c4 0 .text.Dbg_Println + $t 0x000039c4 0 .text.Dbg_Println + $d 0x000039d0 0 .text.Dbg_Print_Buff + $t 0x000039d0 0 .text.Dbg_Print_Buff + $d 0x000039d4 0 .text.Touch_Key_Init + $t 0x000039d4 0 .text.Touch_Key_Init + $d 0x00003a48 0 .text.Touch_Key_Init + $d 0x00003a64 0 .text.TouchKey_RS485_Printf + $t 0x00003a64 0 .text.TouchKey_RS485_Printf + $d 0x00003aec 0 .text.TouchKey_RS485_Printf + $d 0x00003af8 0 .text.Get_TouchKey_CH_State + $t 0x00003af8 0 .text.Get_TouchKey_CH_State + $d 0x00003b04 0 .text.Get_TouchKey_CH_State + $t 0x00003b0a 0 .text.Get_TouchKey_CH_State + $d 0x00003b30 0 .text.Get_TouchKey_CH_State + $d 0x00003b34 0 .text.TouchKey_Error_Scan + $t 0x00003b34 0 .text.TouchKey_Error_Scan + $d 0x00003b74 0 .text.TouchKey_Error_Scan + $d 0x00003b88 0 .text.Touch_Key_Event_Handling + $t 0x00003b88 0 .text.Touch_Key_Event_Handling + $d 0x00003c30 0 .text.Touch_Key_Event_Handling + $d 0x00003c34 0 .text.TouchKey_Set_Interface_Task + $t 0x00003c34 0 .text.TouchKey_Set_Interface_Task + $d 0x00003c64 0 .text.TouchKey_Set_Interface_Task + $d 0x00003c70 0 .text.Touch_Key_Task + $t 0x00003c70 0 .text.Touch_Key_Task + $d 0x00003d3c 0 .text.Touch_Key_Task + $d 0x00003d4c 0 .text.TouchKey_CheckSum + $t 0x00003d4c 0 .text.TouchKey_CheckSum + $d 0x00003d64 0 .text.TouchKey_Comm_Reply + $t 0x00003d64 0 .text.TouchKey_Comm_Reply + $d 0x00003dcc 0 .text.TouchKey_Comm_Reply + $d 0x00003dd4 0 .text.TouchKey_SetPara_Processing + $t 0x00003dd4 0 .text.TouchKey_SetPara_Processing + $d 0x00003e78 0 .text.TouchKey_SetPara_Processing + $d 0x00003e8c 0 .text.TouchKey_ReadPara_Processing + $t 0x00003e8c 0 .text.TouchKey_ReadPara_Processing + $d 0x00003f68 0 .text.TouchKey_ReadPara_Processing + $d 0x00003f70 0 .text.TouchKey_DugPrintf_Processing + $t 0x00003f70 0 .text.TouchKey_DugPrintf_Processing + $d 0x00003fa4 0 .text.TouchKey_DugPrintf_Processing + $d 0x00003fa8 0 .text.TouchKey_ReadEnve_Processing + $t 0x00003fa8 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000406c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004074 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004074 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004090 0 .text.TouchKey_Comm_Processing + $t 0x00004090 0 .text.TouchKey_Comm_Processing + $d 0x0000411e 0 .text.TouchKey_Comm_Processing + $t 0x00004124 0 .text.TouchKey_Comm_Processing + $d 0x0000414c 0 .text.TouchKey_Comm_Processing + $d 0x00004168 0 .text.EEPROM_CheckSum + $t 0x00004168 0 .text.EEPROM_CheckSum + $d 0x00004180 0 .text.EEPROM_ReadParaInfo + $t 0x00004180 0 .text.EEPROM_ReadParaInfo + $d 0x000041ec 0 .text.EEPROM_ReadParaInfo + $d 0x000041f4 0 .text.EEPROM_WriteParaInfo + $t 0x000041f4 0 .text.EEPROM_WriteParaInfo + $d 0x00004234 0 .text.EEPROM_WriteParaInfo + $d 0x00004238 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004238 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004290 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004298 0 .text.EEPROM_Default_ParaInfo + $t 0x00004298 0 .text.EEPROM_Default_ParaInfo + $d 0x000042b0 0 .text.EEPROM_Init + $t 0x000042b0 0 .text.EEPROM_Init + $d 0x000042f4 0 .text.EEPROM_Init + $d 0x00004300 0 .text.EEPROM_WriteTouchPara + $t 0x00004300 0 .text.EEPROM_WriteTouchPara + $d 0x00004360 0 .text.EEPROM_WriteTouchPara + $d 0x0000436c 0 .text.EEPROM_ReadTouchPara + $t 0x0000436c 0 .text.EEPROM_ReadTouchPara + $d 0x00004404 0 .text.EEPROM_ReadTouchPara + $d 0x00004418 0 .text.EEPROM_Validate_TouchPara + $t 0x00004418 0 .text.EEPROM_Validate_TouchPara + $d 0x000044bc 0 .text.EEPROM_Validate_TouchPara + $d 0x000044c0 0 .text.EEPROM_Default_TouchPara + $t 0x000044c0 0 .text.EEPROM_Default_TouchPara + $d 0x00004500 0 .text.EEPROM_TouchPara_Printf + $t 0x00004500 0 .text.EEPROM_TouchPara_Printf + $d 0x00004564 0 .text.EEPROM_TouchPara_Printf + $d 0x00004580 0 .text.ADC_Init + $t 0x00004580 0 .text.ADC_Init + $d 0x000045d8 0 .text.ADC_Init + $d 0x000045dc 0 .text.Thermistor_Array_Transform + $t 0x000045dc 0 .text.Thermistor_Array_Transform + $d 0x0000461c 0 .text.Thermistor_Array_Transform + $d 0x00004624 0 .text.Calculate_ADC_Sample_Average + $t 0x00004624 0 .text.Calculate_ADC_Sample_Average + $d 0x000046d0 0 .text.Calculate_ADC_Sample_Average + $d 0x000046e4 0 .text.ADC_Sample_Task + $t 0x000046e4 0 .text.ADC_Sample_Task + $d 0x00004784 0 .text.ADC_Sample_Task + $d 0x00004794 0 .text.Get_Temp_Val + $t 0x00004794 0 .text.Get_Temp_Val + $d 0x000047a0 0 .text.Get_Temp_Val + $d 0x000047a4 0 .text.HT1621_WR_Data + $t 0x000047a4 0 .text.HT1621_WR_Data + $d 0x000047e8 0 .text.HT1621_WR_Data + $d 0x000047ec 0 .text.HT1621_WR_CMD + $t 0x000047ec 0 .text.HT1621_WR_CMD + $d 0x00004818 0 .text.HT1621_WR_CMD + $d 0x0000481c 0 .text.HT1621_Init + $t 0x0000481c 0 .text.HT1621_Init + $d 0x000048bc 0 .text.HT1621_Init + $d 0x000048c0 0 .text.HT1621_Clear + $t 0x000048c0 0 .text.HT1621_Clear + $d 0x00004908 0 .text.HT1621_Clear + $d 0x00004910 0 .text.HT1621_ALLON + $t 0x00004910 0 .text.HT1621_ALLON + $d 0x0000494c 0 .text.HT1621_ALLON + $d 0x00004950 0 .text.HT1621_Refresh_Data + $t 0x00004950 0 .text.HT1621_Refresh_Data + $d 0x00004994 0 .text.HT1621_Refresh_Data + $d 0x0000499c 0 .text.Set_Temperature_Display + $t 0x0000499c 0 .text.Set_Temperature_Display + $d 0x00004a1c 0 .text.Set_Temperature_Display + $d 0x00004a24 0 .text.Local_Temperature_Display + $t 0x00004a24 0 .text.Local_Temperature_Display + $d 0x00004a9c 0 .text.Local_Temperature_Display + $d 0x00004aa4 0 .text.Control_Mode + $t 0x00004aa4 0 .text.Control_Mode + $d 0x00004ae8 0 .text.Control_Mode + $d 0x00004aec 0 .text.Control_wind_velocity + $t 0x00004aec 0 .text.Control_wind_velocity + $d 0x00004af8 0 .text.Control_wind_velocity + $t 0x00004afc 0 .text.Control_wind_velocity + $d 0x00004b58 0 .text.Control_wind_velocity + $d 0x00004b5c 0 .text.Control_Prompt_Text + $t 0x00004b5c 0 .text.Control_Prompt_Text + $d 0x00004b9c 0 .text.Control_Prompt_Text + $d 0x00004ba0 0 .text.Controlled_Buzzer + $t 0x00004ba0 0 .text.Controlled_Buzzer + $d 0x00004be0 0 .text.Controlled_Buzzer + $d 0x00004be8 0 .text.Controlled_LCD_Backlight + $t 0x00004be8 0 .text.Controlled_LCD_Backlight + $d 0x00004c04 0 .text.Controlled_LCD_Backlight + $d 0x00004c0c 0 .text.Set_Device_ADDR + $t 0x00004c0c 0 .text.Set_Device_ADDR + $d 0x00004c9c 0 .text.Set_Device_ADDR + $d 0x00004ca4 0 .text.Set_Temp_Difference + $t 0x00004ca4 0 .text.Set_Temp_Difference + $d 0x00004d00 0 .text.Set_Temp_Difference + $d 0x00004d08 0 .text.HT1621_Refresh_Task + $t 0x00004d08 0 .text.HT1621_Refresh_Task + $d 0x00004d58 0 .text.HT1621_Refresh_Task + $d 0x00004d68 0 .text.TemCtrl_Init + $t 0x00004d68 0 .text.TemCtrl_Init + $d 0x00004e80 0 .text.TemCtrl_Init + $d 0x00004e98 0 .text.TemCtrl_Model_Set + $t 0x00004e98 0 .text.TemCtrl_Model_Set + $d 0x00004edc 0 .text.TemCtrl_Model_Set + $d 0x00004ee4 0 .text.TemCtrl_Fan_Set + $t 0x00004ee4 0 .text.TemCtrl_Fan_Set + $d 0x00004f02 0 .text.TemCtrl_Fan_Set + $t 0x00004f06 0 .text.TemCtrl_Fan_Set + $d 0x00004f28 0 .text.TemCtrl_Fan_Set + $d 0x00004f30 0 .text.TemCtrl_Temperature_Dec + $t 0x00004f30 0 .text.TemCtrl_Temperature_Dec + $d 0x00004f58 0 .text.TemCtrl_Temperature_Dec + $d 0x00004f60 0 .text.TemCtrl_Temperature_Add + $t 0x00004f60 0 .text.TemCtrl_Temperature_Add + $d 0x00004f88 0 .text.TemCtrl_Temperature_Add + $d 0x00004f90 0 .text.TemCtrl_OnOff_Set + $t 0x00004f90 0 .text.TemCtrl_OnOff_Set + $d 0x00004fbc 0 .text.TemCtrl_OnOff_Set + $d 0x00004fc4 0 .text.Tem_Valve_Ctrl + $t 0x00004fc4 0 .text.Tem_Valve_Ctrl + $d 0x0000509c 0 .text.Tem_Valve_Ctrl + $d 0x000050ac 0 .text.TemCtrl_Pro + $t 0x000050ac 0 .text.TemCtrl_Pro + $d 0x00005188 0 .text.TemCtrl_Pro + $d 0x0000519c 0 .text.KEY1_Model_Press_Fun + $t 0x0000519c 0 .text.KEY1_Model_Press_Fun + $d 0x00005254 0 .text.KEY1_Model_Press_Fun + $d 0x0000526c 0 .text.KEY2_Fan_Press_Fun + $t 0x0000526c 0 .text.KEY2_Fan_Press_Fun + $d 0x00005324 0 .text.KEY2_Fan_Press_Fun + $d 0x0000533c 0 .text.KEY3_TempAdd_Press_Fun + $t 0x0000533c 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005400 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00005418 0 .text.KEY3_Long_Press_Fun + $t 0x00005418 0 .text.KEY3_Long_Press_Fun + $d 0x00005474 0 .text.KEY3_Long_Press_Fun + $d 0x00005484 0 .text.KEY4_TempDec_Press_Fun + $t 0x00005484 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000554c 0 .text.KEY4_TempDec_Press_Fun + $d 0x00005564 0 .text.KEY4_Long_Press + $t 0x00005564 0 .text.KEY4_Long_Press + $d 0x000055c0 0 .text.KEY4_Long_Press + $d 0x000055d0 0 .text.KEY5_OnOff_Press_Fun + $t 0x000055d0 0 .text.KEY5_OnOff_Press_Fun + $d 0x0000563c 0 .text.KEY5_OnOff_Press_Fun + $d 0x00005654 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00005654 0 .text.TempCtrl_OnOff_DisPlay + $d 0x0000569c 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000056a0 0 .text.DisPlay_Init + $t 0x000056a0 0 .text.DisPlay_Init + $d 0x000056b8 0 .text.DisPlay_Init + $d 0x000056c0 0 .text.DisPlay_Task + $t 0x000056c0 0 .text.DisPlay_Task + $d 0x00005860 0 .text.DisPlay_Task + $d 0x0000587c 0 .text.Debug_Init + $t 0x0000587c 0 .text.Debug_Init + $d 0x000058a4 0 .text.Debug_Init + $d 0x000058ac 0 .text.Dev_SaveData + $t 0x000058ac 0 .text.Dev_SaveData + $d 0x00005900 0 .text.Dev_SaveData + $d 0x0000590c 0 .text.Debug_Task + $t 0x0000590c 0 .text.Debug_Task + $d 0x00005968 0 .text.Debug_Task + $d 0x00005978 0 .text.get_check_sum + $t 0x00005978 0 .text.get_check_sum + $d 0x00005990 0 .text.uart_receive_input + $t 0x00005990 0 .text.uart_receive_input + $d 0x000059c4 0 .text.uart_receive_input + $d 0x000059d4 0 .text.Queue_Read_Byte + $t 0x000059d4 0 .text.Queue_Read_Byte + $d 0x000059f8 0 .text.Queue_Read_Byte + $d 0x00005a08 0 .text.with_data_rxbuff + $t 0x00005a08 0 .text.with_data_rxbuff + $d 0x00005a1c 0 .text.with_data_rxbuff + $d 0x00005a24 0 .text.RF_Info_Init + $t 0x00005a24 0 .text.RF_Info_Init + $d 0x00005a48 0 .text.RF_Info_Init + $d 0x00005a58 0 .text.Add_Frame_Head + $t 0x00005a58 0 .text.Add_Frame_Head + $d 0x00005a90 0 .text.Add_Frame_Head + $d 0x00005a98 0 .text.Product_Info_Update + $t 0x00005a98 0 .text.Product_Info_Update + $d 0x00005b10 0 .text.Product_Info_Update + $d 0x00005b2c 0 .text.Recv_RFNetState_Ack + $t 0x00005b2c 0 .text.Recv_RFNetState_Ack + $d 0x00005b60 0 .text.Recv_RFNetState_Ack + $d 0x00005b64 0 .text.Tem_Fun_Ctrl_Report + $t 0x00005b64 0 .text.Tem_Fun_Ctrl_Report + $d 0x00005c0c 0 .text.Tem_Fun_Ctrl_Report + $d 0x00005c14 0 .text.data_handle + $t 0x00005c14 0 .text.data_handle + $d 0x00005d30 0 .text.data_handle + $d 0x00005d3c 0 .text.zigbee_uart_service + $t 0x00005d3c 0 .text.zigbee_uart_service + $d 0x00005e18 0 .text.zigbee_uart_service + $d 0x00005e24 0 .text.TemFun_Report_Task + $t 0x00005e24 0 .text.TemFun_Report_Task + $d 0x00005f28 0 .text.TemFun_Report_Task + $d 0x00005f48 0 .text.Relay_Init + $t 0x00005f48 0 .text.Relay_Init + $d 0x00005fac 0 .text.Relay_Init + $d 0x00005fb4 0 .text.Relay_High + $t 0x00005fb4 0 .text.Relay_High + $d 0x00005fd4 0 .text.Relay_High + $d 0x00005fd8 0 .text.Relay_Mid + $t 0x00005fd8 0 .text.Relay_Mid + $d 0x00005ff8 0 .text.Relay_Mid + $d 0x00005ffc 0 .text.Relay_Low + $t 0x00005ffc 0 .text.Relay_Low + $d 0x0000601c 0 .text.Relay_Low + $d 0x00006020 0 .text.Relay_Stop + $t 0x00006020 0 .text.Relay_Stop + $d 0x00006040 0 .text.Relay_Stop + TK_ConfigInterrupt_CMD.part.0 0x00006044 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00006044 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00006044 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00006050 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00006054 0 .text.tk_clk_config + $t 0x00006054 0 .text.tk_clk_config + $d 0x00006078 0 .text.tk_clk_config + $d 0x0000607c 0 .text.TK_con0_config + $t 0x0000607c 0 .text.TK_con0_config + $d 0x0000612c 0 .text.TK_con0_config + $d 0x00006138 0 .text.TK_IO_Enable + $t 0x00006138 0 .text.TK_IO_Enable + $d 0x0000617c 0 .text.TK_IO_Enable + $t 0x0000618c 0 .text.TK_IO_Enable + $d 0x00006260 0 .text.TK_IO_Enable + $d 0x0000626c 0 .text.TK_Sampling_prog + $t 0x0000626c 0 .text.TK_Sampling_prog + $d 0x000062b4 0 .text.TK_Sampling_prog + $d 0x000062c4 0 .text.TKEYIntHandler + $t 0x000062c4 0 .text.TKEYIntHandler + $d 0x00006340 0 .text.TKEYIntHandler + $d 0x0000634c 0 .text.get_key_number + $t 0x0000634c 0 .text.get_key_number + $d 0x00006370 0 .text.get_key_number + $d 0x00006374 0 .text.TK_Baseline_prog + $t 0x00006374 0 .text.TK_Baseline_prog + $d 0x000063dc 0 .text.TK_Baseline_prog + $d 0x000063f8 0 .text.TK_Scan_Start + $t 0x000063f8 0 .text.TK_Scan_Start + $d 0x00006410 0 .text.TK_Scan_Start + $d 0x00006418 0 .text.TK_Keymap_prog + $t 0x00006418 0 .text.TK_Keymap_prog + $d 0x00006560 0 .text.TK_Keymap_prog + $d 0x00006598 0 .text.TK_overflow_predict + $t 0x00006598 0 .text.TK_overflow_predict + $d 0x00006680 0 .text.TK_overflow_predict + $d 0x000066b4 0 .text.TK_Baseline_tracking + $t 0x000066b4 0 .text.TK_Baseline_tracking + $d 0x00006858 0 .text.TK_Baseline_tracking + $d 0x00006884 0 .text.TK_result_prog + $t 0x00006884 0 .text.TK_result_prog + $d 0x000068c4 0 .text.TK_result_prog + $d 0x000068d8 0 .text.CORETHandler + $t 0x000068d8 0 .text.CORETHandler + $d 0x00006938 0 .text.CORETHandler + $d 0x00006950 0 .text.get_key_seq + $t 0x00006950 0 .text.get_key_seq + $d 0x0000697c 0 .text.get_key_seq + $d 0x00006984 0 .text.CORET_CONFIG + $t 0x00006984 0 .text.CORET_CONFIG + $d 0x000069b4 0 .text.CORET_CONFIG + $d 0x000069bc 0 .text.tk_chxval_seqxcon_clr + $t 0x000069bc 0 .text.tk_chxval_seqxcon_clr + $d 0x000069d4 0 .text.tk_chxval_seqxcon_clr + $d 0x000069d8 0 .text.tk_reserved_init + $t 0x000069d8 0 .text.tk_reserved_init + $d 0x000069ec 0 .text.tk_reserved_init + $d 0x00006a00 0 .text.tk_init + $t 0x00006a00 0 .text.tk_init + $d 0x00006a3c 0 .text.tk_init + $t 0x00006a42 0 .text.tk_init + $d 0x00006b2c 0 .text.tk_init + $d 0x00006b80 0 .text.std_clk_calib + $t 0x00006b80 0 .text.std_clk_calib + $d 0x00006dc8 0 .text.std_clk_calib + __func__.6268 0x00006e04 O 28 .rodata + __func__.6306 0x00006e20 O 25 .rodata + bp 0x00007178 O 16 .rodata + dp_l 0x00007188 O 16 .rodata + dp_h 0x00007198 O 16 .rodata + NUM.6293 0x200000ac O 1 .bss + adc_tick.6207 0x200000cc O 4 .bss + tick.6232 0x200000d0 O 4 .bss + rx_in.6269 0x200000d6 O 2 .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_DriveStrength_EN 0x00001e68 F 14 .text.GPIO_DriveStrength_EN + GPIO_Write_High 0x00001e76 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00001e7e F 8 .text.GPIO_Write_Low + LPT_Soft_Reset 0x00001e88 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00001e9c F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00001eac F 28 .text.BT_DeInit + BT_Start 0x00001ec8 F 8 .text.BT_Start + BT_Soft_Reset 0x00001ed0 F 10 .text.BT_Soft_Reset + BT_Configure 0x00001eda F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00001ef2 F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00001f1e F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00001f24 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00001f38 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x00001f48 F 24 .text.UART0_DeInit + UART1_DeInit 0x00001f60 F 24 .text.UART1_DeInit + UART2_DeInit 0x00001f78 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00001f90 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00001fac F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00001fc8 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x000020b4 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000020c4 F 30 .text.UARTTransmit + EPT_Software_Prg 0x000020e4 F 32 .text.EPT_Software_Prg + EPT_Start 0x00002104 F 40 .text.EPT_Start + EPT_Stop 0x0000212c F 40 .text.EPT_Stop + EPT_IO_SET 0x00002154 F 568 .text.EPT_IO_SET + EPT_PWM_Config 0x0000238c F 56 .text.EPT_PWM_Config + EPT_PWMX_Output_Control 0x000023c4 F 216 .text.EPT_PWMX_Output_Control + EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config0x0000249c F 28 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config + ADC12_RESET_VALUE 0x000024b8 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x0000251c F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x0000254c F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00002578 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00002584 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x000025ac F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x000025c0 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x000025d8 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x000025ec F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00002668 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002800 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002980 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a20 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002a4c F 312 .text.tk_parameter_init + CORET_DeInit 0x00002b84 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002b9c F 24 .text.CORET_Int_Enable + CORET_start 0x00002bb4 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002bc4 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002bd4 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002be4 F 16 .text.CORET_reload + main 0x00002bf4 F 84 .text.startup.main + delay_nms 0x00002c48 F 44 .text.delay_nms + EPT0_CONFIG 0x00002c74 F 96 .text.EPT0_CONFIG + BT_CONFIG 0x00002cd4 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002d34 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002d98 F 132 .text.APT32F102_init + SYSCONIntHandler 0x00002e1c F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002f0c F 104 .text.IFCIntHandler + ADCIntHandler 0x00002f74 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00002fdc F 428 .text.EPT0IntHandler + WWDTHandler 0x00003188 F 52 .text.WWDTHandler + GPT0IntHandler 0x000031bc F 128 .text.GPT0IntHandler + RTCIntHandler 0x0000323c F 112 .text.RTCIntHandler + UART0IntHandler 0x000032ac F 60 .text.UART0IntHandler + UART1IntHandler 0x000032e8 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003324 F 148 .text.UART2IntHandler + SPI0IntHandler 0x000033b8 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000034a0 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x000034f4 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00003524 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00003554 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x0000359c F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x000035f8 F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00003658 F 52 .text.LPTIntHandler + BT0IntHandler 0x0000368c F 76 .text.BT0IntHandler + BT1IntHandler 0x000036d8 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x0000373c F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x0000373e F 8 .text.PendTrapHandler + Trap3Handler 0x00003746 F 8 .text.Trap3Handler + Trap2Handler 0x0000374e F 8 .text.Trap2Handler + Trap1Handler 0x00003756 F 8 .text.Trap1Handler + Trap0Handler 0x0000375e F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003766 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000376e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003776 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000377e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003786 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000378e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003796 F 8 .text.I2CIntHandler + __divsi3 0x000037a0 F 36 .text.__divsi3 + __udivsi3 0x000037c4 F 36 .text.__udivsi3 + __umodsi3 0x000037e8 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x0000380c F 6 .text.CK_CPU_EnAllNormalIrq + UARTx_Init 0x00003814 F 164 .text.UARTx_Init + UART2_RecvINT_Processing 0x000038b8 F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003920 F 164 .text.UART2_TASK + Dbg_Println 0x000039c4 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x000039d0 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x000039d4 F 144 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003a64 F 148 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003af8 F 60 .text.Get_TouchKey_CH_State + TouchKey_Error_Scan 0x00003b34 F 84 .text.TouchKey_Error_Scan + Touch_Key_Event_Handling 0x00003b88 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003c34 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003c70 F 220 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003d4c F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003d64 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003dd4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00003e8c F 228 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00003f70 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00003fa8 F 204 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004074 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004090 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004168 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004180 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000041f4 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004238 F 96 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004298 F 22 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x000042b0 F 80 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x00004300 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x0000436c F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00004418 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000044c0 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004500 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004580 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000045dc F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004624 F 192 .text.Calculate_ADC_Sample_Average + ADC_Sample_Task 0x000046e4 F 176 .text.ADC_Sample_Task + Get_Temp_Val 0x00004794 F 16 .text.Get_Temp_Val + HT1621_WR_Data 0x000047a4 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000047ec F 48 .text.HT1621_WR_CMD + HT1621_Init 0x0000481c F 164 .text.HT1621_Init + HT1621_Clear 0x000048c0 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00004910 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00004950 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x0000499c F 136 .text.Set_Temperature_Display + Local_Temperature_Display 0x00004a24 F 128 .text.Local_Temperature_Display + Control_Mode 0x00004aa4 F 72 .text.Control_Mode + Control_wind_velocity 0x00004aec F 112 .text.Control_wind_velocity + Control_Prompt_Text 0x00004b5c F 68 .text.Control_Prompt_Text + Controlled_Buzzer 0x00004ba0 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00004be8 F 36 .text.Controlled_LCD_Backlight + Set_Device_ADDR 0x00004c0c F 152 .text.Set_Device_ADDR + Set_Temp_Difference 0x00004ca4 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00004d08 F 96 .text.HT1621_Refresh_Task + TemCtrl_Init 0x00004d68 F 304 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00004e98 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00004ee4 F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00004f30 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00004f60 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00004f90 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00004fc4 F 232 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000050ac F 240 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x0000519c F 208 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x0000526c F 208 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x0000533c F 220 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00005418 F 108 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00005484 F 224 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00005564 F 108 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x000055d0 F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00005654 F 76 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x000056a0 F 32 .text.DisPlay_Init + DisPlay_Task 0x000056c0 F 444 .text.DisPlay_Task + Debug_Init 0x0000587c F 48 .text.Debug_Init + Dev_SaveData 0x000058ac F 96 .text.Dev_SaveData + Debug_Task 0x0000590c F 108 .text.Debug_Task + get_check_sum 0x00005978 F 22 .text.get_check_sum + uart_receive_input 0x00005990 F 68 .text.uart_receive_input + Queue_Read_Byte 0x000059d4 F 52 .text.Queue_Read_Byte + with_data_rxbuff 0x00005a08 F 28 .text.with_data_rxbuff + RF_Info_Init 0x00005a24 F 52 .text.RF_Info_Init + Add_Frame_Head 0x00005a58 F 64 .text.Add_Frame_Head + Product_Info_Update 0x00005a98 F 144 .text.Product_Info_Update + Recv_RFNetState_Ack 0x00005b2c F 56 .text.Recv_RFNetState_Ack + Tem_Fun_Ctrl_Report 0x00005b64 F 176 .text.Tem_Fun_Ctrl_Report + data_handle 0x00005c14 F 296 .text.data_handle + zigbee_uart_service 0x00005d3c F 232 .text.zigbee_uart_service + TemFun_Report_Task 0x00005e24 F 292 .text.TemFun_Report_Task + Relay_Init 0x00005f48 F 108 .text.Relay_Init + Relay_High 0x00005fb4 F 36 .text.Relay_High + Relay_Mid 0x00005fd8 F 36 .text.Relay_Mid + Relay_Low 0x00005ffc F 36 .text.Relay_Low + Relay_Stop 0x00006020 F 36 .text.Relay_Stop + tk_clk_config 0x00006054 F 40 .text.tk_clk_config + TK_con0_config 0x0000607c F 188 .text.TK_con0_config + TK_IO_Enable 0x00006138 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x0000626c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x000062c4 F 136 .text.TKEYIntHandler + get_key_number 0x0000634c F 40 .text.get_key_number + TK_Baseline_prog 0x00006374 F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x000063f8 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00006418 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00006598 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x000066b4 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00006884 F 84 .text.TK_result_prog + CORETHandler 0x000068d8 F 120 .text.CORETHandler + get_key_seq 0x00006950 F 52 .text.get_key_seq + CORET_CONFIG 0x00006984 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x000069bc F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x000069d8 F 40 .text.tk_reserved_init + tk_init 0x00006a00 F 368 .text.tk_init + std_clk_calib 0x00006b80 F 644 .text.std_clk_calib + R_Array 0x00006e3a O 820 .rodata + Diaital 0x0000716e O 10 .rodata + __thenan_df 0x000071a8 O 20 .rodata + __clz_tab 0x000071bc O 256 .rodata + _end_rodata 0x00007680 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 + MCU_Touch_CH 0x20000068 O 5 .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 + Sav_Temp 0x200000a4 O 4 .bss + _bss_start 0x200000a4 0 .bss + Sys_RSR 0x200000a8 O 4 .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 + Dbg_Switch 0x200000c8 O 4 .bss + seq_num 0x200000d4 O 2 .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 + touch_para 0x20000204 O 28 .bss + touch_state 0x20000220 O 20 .bss + g_key 0x20000234 O 48 .bss + g_eeprom 0x20000264 O 6 .bss + g_adc 0x2000026a O 55 .bss + HT1621 0x200002a4 O 60 .bss + TempCtrl 0x200002e0 O 21 .bss + Debug_Inf 0x200002f5 O 11 .bss + zigbee_queue_buf 0x20000300 O 265 .bss + queue_in 0x2000040c O 4 .bss + zigbee_uart_rx_buf 0x20000410 O 137 .bss + queue_out 0x2000049c O 4 .bss + rf_info 0x200004a0 O 3 .bss + zigbee_uart_tx_buf 0x200004a3 O 137 .bss + baseline_data0 0x2000052c O 34 .bss + TK_Postive_build2 0x2000054e O 17 .bss + Key_Map1 0x20000560 O 4 .bss + offset_data2_abs 0x20000564 O 34 .bss + scan_f 0x20000586 O 1 .bss + offset_data1_abs 0x20000588 O 34 .bss + Release_debounce0 0x200005aa O 17 .bss + Key_Map0 0x200005bc O 4 .bss + bsae_over_f 0x200005c0 O 1 .bss + scan_cnt 0x200005c2 O 2 .bss + Press_debounce0 0x200005c4 O 17 .bss + offset_data0 0x200005d6 O 34 .bss + sampling_data1 0x200005f8 O 34 .bss + Key_Map2 0x2000061c O 4 .bss + Release_debounce1 0x20000620 O 17 .bss + tk_overflow_f 0x20000631 O 1 .bss + TK_Negtive_build2 0x20000632 O 17 .bss + base_update_f 0x20000643 O 1 .bss + TK_Postive_build1 0x20000644 O 17 .bss + time_cnt 0x20000658 O 4 .bss + lpt_scan_pend_cnt 0x2000065c O 2 .bss + TK_track_cnt 0x2000065e O 1 .bss + Key_Map 0x20000660 O 4 .bss + baseline_data1 0x20000664 O 34 .bss + TK_Postive_build0 0x20000686 O 17 .bss + sampling_data2 0x20000698 O 34 .bss + offset_data1 0x200006ba O 34 .bss + TK_ovrdect_cnt 0x200006dc O 1 .bss + Press_debounce2 0x200006dd O 17 .bss + TK_Negtive_build1 0x200006ee O 17 .bss + tk_num 0x200006ff O 1 .bss + TK_Negtive_build0 0x20000700 O 17 .bss + Press_debounce1 0x20000711 O 17 .bss + Release_debounce2 0x20000722 O 17 .bss + r_Key_Map_Temp 0x20000734 O 4 .bss + tk_seque 0x20000738 O 17 .bss + scan_step 0x20000749 O 1 .bss + baseline_data2 0x2000074a O 34 .bss + tk_sampling_max 0x2000076c O 34 .bss + offset_data0_abs 0x2000078e O 34 .bss + offset_data2 0x200007b0 O 34 .bss + sampling_data0 0x200007d2 O 34 .bss + _ebss 0x200007f4 0 .bss + _end 0x200007f4 0 .bss + end 0x200007f4 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: 0x00007680, 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 1187 .text pow.o + 0x00000b5e 0x00000006 Code RO 1195 .text fabs.o + 0x00000b64 0x00000020 Code RO 1201 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1208 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1219 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1224 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1231 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1238 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1245 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1252 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1259 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1266 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1273 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1280 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1294 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1301 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1308 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1314 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1321 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1328 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1349 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1354 .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 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001e76 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00001e7e 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00001e88 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00001e9c 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00001eac 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00001ec8 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00001ed0 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00001eda 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00001ef2 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00001f1e 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00001f24 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00001f38 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00001f48 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001f60 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001f78 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00001f90 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001fac 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00001fc8 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000020b4 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000020c4 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000020e4 0x00000020 Code RO 514 .text.EPT_Software_Prg Obj/FWlib_apt32f102_ept.o + 0x00002104 0x00000028 Code RO 515 .text.EPT_Start Obj/FWlib_apt32f102_ept.o + 0x0000212c 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002154 0x00000238 Code RO 517 .text.EPT_IO_SET Obj/FWlib_apt32f102_ept.o + 0x0000238c 0x00000038 Code RO 518 .text.EPT_PWM_Config Obj/FWlib_apt32f102_ept.o + 0x000023c4 0x000000d8 Code RO 525 .text.EPT_PWMX_Output_Control Obj/FWlib_apt32f102_ept.o + 0x0000249c 0x0000001c Code RO 528 .text.EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config Obj/FWlib_apt32f102_ept.o + 0x000024b8 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x0000251c 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x0000252c 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x0000254c 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00002578 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00002584 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x000025ac 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x000025c0 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x000025d8 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x000025ec 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00002668 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002800 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002980 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a20 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002a4c 0x00000138 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002b84 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002b9c 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002bb4 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002bc4 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002bd4 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002be4 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002bf4 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00002c48 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002c74 0x00000060 Code RO 724 .text.EPT0_CONFIG Obj/mcu_initial.o + 0x00002cd4 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002d34 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002d98 0x00000084 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002e1c 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002f0c 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00002f74 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00002fdc 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003188 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000031bc 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x0000323c 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000032ac 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x000032e8 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003324 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000033b8 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000034a0 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x000034f4 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00003524 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00003554 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x0000359c 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x000035f8 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003658 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x0000368c 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x000036d8 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x0000373c 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x0000373e 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00003746 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x0000374e 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00003756 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x0000375e 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003766 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000376e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003776 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000377e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003786 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000378e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003796 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000037a0 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000037c4 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000037e8 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x0000380c 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003814 0x000000a4 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000038b8 0x00000068 Code RO 837 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003920 0x000000a4 Code RO 838 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000039c4 0x0000000c Code RO 842 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000039d0 0x00000002 Code RO 843 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x000039d4 0x00000090 Code RO 860 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003a64 0x00000094 Code RO 862 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003af8 0x0000003c Code RO 863 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003b34 0x00000054 Code RO 864 .text.TouchKey_Error_Scan Obj/SYSTEM_touch_key.o + 0x00003b88 0x000000ac Code RO 865 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003c34 0x0000003c Code RO 866 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003c70 0x000000dc Code RO 867 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003d4c 0x00000018 Code RO 868 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003d64 0x00000070 Code RO 869 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003dd4 0x000000b8 Code RO 870 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00003e8c 0x000000e4 Code RO 871 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00003f70 0x00000038 Code RO 872 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00003fa8 0x000000cc Code RO 873 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004074 0x0000001a Code RO 874 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004090 0x000000d8 Code RO 875 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004168 0x00000016 Code RO 894 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004180 0x00000074 Code RO 895 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000041f4 0x00000044 Code RO 896 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004238 0x00000060 Code RO 898 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004298 0x00000016 Code RO 899 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000042b0 0x00000050 Code RO 900 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00004300 0x0000006c Code RO 901 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x0000436c 0x000000ac Code RO 902 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00004418 0x000000a8 Code RO 903 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000044c0 0x00000040 Code RO 904 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004500 0x00000080 Code RO 905 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004580 0x0000005c Code RO 923 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000045dc 0x00000048 Code RO 924 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004624 0x000000c0 Code RO 925 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000046e4 0x000000b0 Code RO 926 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004794 0x00000010 Code RO 927 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x000047a4 0x00000048 Code RO 945 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000047ec 0x00000030 Code RO 946 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x0000481c 0x000000a4 Code RO 947 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x000048c0 0x00000050 Code RO 951 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00004910 0x00000040 Code RO 952 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00004950 0x0000004c Code RO 953 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x0000499c 0x00000088 Code RO 954 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004a24 0x00000080 Code RO 955 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00004aa4 0x00000048 Code RO 956 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00004aec 0x00000070 Code RO 957 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00004b5c 0x00000044 Code RO 958 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00004ba0 0x00000048 Code RO 959 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00004be8 0x00000024 Code RO 960 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00004c0c 0x00000098 Code RO 962 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00004ca4 0x00000064 Code RO 963 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00004d08 0x00000060 Code RO 964 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00004d68 0x00000130 Code RO 984 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00004e98 0x0000004c Code RO 985 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00004ee4 0x0000004c Code RO 986 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00004f30 0x00000030 Code RO 987 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00004f60 0x00000030 Code RO 988 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00004f90 0x00000034 Code RO 989 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00004fc4 0x000000e8 Code RO 990 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000050ac 0x000000f0 Code RO 991 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x0000519c 0x000000d0 Code RO 1009 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000526c 0x000000d0 Code RO 1010 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000533c 0x000000dc Code RO 1011 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005418 0x0000006c Code RO 1012 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005484 0x000000e0 Code RO 1013 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005564 0x0000006c Code RO 1014 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x000055d0 0x00000084 Code RO 1015 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00005654 0x0000004c Code RO 1031 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x000056a0 0x00000020 Code RO 1032 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x000056c0 0x000001bc Code RO 1033 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x0000587c 0x00000030 Code RO 1049 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x000058ac 0x00000060 Code RO 1050 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x0000590c 0x0000006c Code RO 1051 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00005978 0x00000016 Code RO 1068 .text.get_check_sum Obj/USRCTRL_rf_uart_protocol.o + 0x00005990 0x00000044 Code RO 1069 .text.uart_receive_input Obj/USRCTRL_rf_uart_protocol.o + 0x000059d4 0x00000034 Code RO 1070 .text.Queue_Read_Byte Obj/USRCTRL_rf_uart_protocol.o + 0x00005a08 0x0000001c Code RO 1071 .text.with_data_rxbuff Obj/USRCTRL_rf_uart_protocol.o + 0x00005a24 0x00000034 Code RO 1072 .text.RF_Info_Init Obj/USRCTRL_rf_uart_protocol.o + 0x00005a58 0x00000040 Code RO 1073 .text.Add_Frame_Head Obj/USRCTRL_rf_uart_protocol.o + 0x00005a98 0x00000094 Code RO 1074 .text.Product_Info_Update Obj/USRCTRL_rf_uart_protocol.o + 0x00005b2c 0x00000038 Code RO 1075 .text.Recv_RFNetState_Ack Obj/USRCTRL_rf_uart_protocol.o + 0x00005b64 0x000000b0 Code RO 1076 .text.Tem_Fun_Ctrl_Report Obj/USRCTRL_rf_uart_protocol.o + 0x00005c14 0x00000128 Code RO 1078 .text.data_handle Obj/USRCTRL_rf_uart_protocol.o + 0x00005d3c 0x000000e8 Code RO 1079 .text.zigbee_uart_service Obj/USRCTRL_rf_uart_protocol.o + 0x00005e24 0x00000124 Code RO 1080 .text.TemFun_Report_Task Obj/USRCTRL_rf_uart_protocol.o + 0x00005f48 0x0000006c Code RO 1098 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00005fb4 0x00000024 Code RO 1099 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00005fd8 0x00000024 Code RO 1100 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x00005ffc 0x00000024 Code RO 1101 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00006020 0x00000024 Code RO 1102 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00006044 0x00000010 Code RO 1126 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x00006054 0x00000028 Code RO 1128 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x0000607c 0x000000bc Code RO 1129 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00006138 0x00000134 Code RO 1132 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x0000626c 0x00000058 Code RO 1133 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000062c4 0x00000088 Code RO 1137 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x0000634c 0x00000028 Code RO 1138 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00006374 0x00000084 Code RO 1139 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000063f8 0x00000020 Code RO 1140 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00006418 0x00000180 Code RO 1141 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00006598 0x0000011c Code RO 1142 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x000066b4 0x000001d0 Code RO 1143 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00006884 0x00000054 Code RO 1144 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000068d8 0x00000078 Code RO 1145 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00006950 0x00000034 Code RO 1146 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x00006984 0x00000038 Code RO 1147 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x000069bc 0x0000001c Code RO 1148 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x000069d8 0x00000028 Code RO 1149 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00006a00 0x00000180 Code RO 1150 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x00006b80 0x00000284 Code RO 1167 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00006e04 0x00000035 Data RO 876 .rodata Obj/SYSTEM_touch_key.o + 0x00006e39 0x00000001 PAD + 0x00006e3a 0x00000334 Data RO 928 .rodata Obj/SYSTEM_adc.o + 0x0000716e 0x0000000a Data RO 966 .rodata Obj/SYSTEM_ht1621.o + 0x00007178 0x00000030 Data RO 1190 .rodata pow.o + 0x000071a8 0x00000014 Data RO 1290 .rodata _thenan_df.o + 0x000071bc 0x00000100 Data RO 1338 .rodata _clz.o + 0x000072bc 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x000072ca 0x00000092 Data RO 877 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000735c 0x00000173 Data RO 906 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x000074cf 0x00000040 Data RO 992 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000750f 0x0000007e Data RO 1016 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000758d 0x0000004e Data RO 1052 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x000075db 0x000000a3 Data RO 1081 .rodata.str1.1 Obj/USRCTRL_rf_uart_protocol.o + 0x0000767e 0x00000002 PAD + + Region RAM (Base: 0x20000000, Size: 0x000007f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 858 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1124 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000ac 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000b8 0x00000014 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000cc 0x00000004 Zero RW 922 .bss Obj/SYSTEM_adc.o + 0x200000d0 0x00000004 Zero RW 983 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200000d4 0x00000004 Zero RW 1067 .bss Obj/USRCTRL_rf_uart_protocol.o + 0x200000d8 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x2000015e 0x00000002 PAD + 0x20000160 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000190 0x00000073 Zero RW 856 COMMON Obj/SYSTEM_uart.o + 0x20000203 0x00000001 PAD + 0x20000204 0x00000060 Zero RW 890 COMMON Obj/SYSTEM_touch_key.o + 0x20000264 0x00000006 Zero RW 919 COMMON Obj/SYSTEM_eeprom.o + 0x2000026a 0x00000037 Zero RW 941 COMMON Obj/SYSTEM_adc.o + 0x200002a1 0x00000003 PAD + 0x200002a4 0x0000003c Zero RW 980 COMMON Obj/SYSTEM_ht1621.o + 0x200002e0 0x00000015 Zero RW 1005 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200002f5 0x0000000b Zero RW 1064 COMMON Obj/USRCTRL_debug_unit.o + 0x20000300 0x0000022c Zero RW 1094 COMMON Obj/USRCTRL_rf_uart_protocol.o + 0x2000052c 0x000002c8 Zero RW 1163 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 292 Obj/arch_crt0.o + 56 0 0 0 828 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 768 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 254 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 + 410 0 0 0 11721 Obj/FWlib_apt32f102_uart.o + 0 0 0 0 0 Obj/FWlib_apt32f102_i2c.o + 980 0 0 0 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 312 0 0 134 9268 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 12055 Obj/main.o + 466 0 0 0 15449 Obj/mcu_initial.o + 2434 0 0 60 15023 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 6 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 446 0 0 135 13203 Obj/SYSTEM_uart.o + 1938 199 5 96 16083 Obj/SYSTEM_touch_key.o + 1044 371 0 6 13951 Obj/SYSTEM_eeprom.o + 548 820 0 59 12624 Obj/SYSTEM_adc.o + 1476 10 0 60 15544 Obj/SYSTEM_ht1621.o + 1076 64 0 25 12100 Obj/USRCTRL_tempctrl_unit.o + 1208 126 0 0 11684 Obj/USRCTRL_key_logic.o + 552 0 0 0 11141 Obj/USRCTRL_display_logic.o + 252 78 0 11 11100 Obj/USRCTRL_debug_unit.o + 1486 163 0 560 14246 Obj/USRCTRL_rf_uart_protocol.o + 252 0 0 0 11143 Obj/USRCTRL_myrelay.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 18318 1845 109 1154 359366 Object Totals + 4 3 6 6 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 + + 2876 0 49 712 16345 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 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 + 28138 2172 164 1872 384386 Grand Totals + 28138 2172 164 1872 384386 Elf Image Totals + 28138 2172 164 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 30310 ( 29.60kB) +Total RW Size (RW Data + ZI Data) 2036 ( 1.99kB) +Total ROM Size (Code + RO Data + RW Data) 30474 ( 29.76kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250209.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250209.asm new file mode 100644 index 0000000..a816ae2 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250209.asm @@ -0,0 +1,23088 @@ + +.//Obj/T1_TC_34650_V01_20250209.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000037de .long 0x000037de + 8: 000037ce .long 0x000037ce + c: 00000184 .long 0x00000184 + 10: 000037d6 .long 0x000037d6 + 14: 00003794 .long 0x00003794 + 18: 00000184 .long 0x00000184 + 1c: 000037c6 .long 0x000037c6 + 20: 000037be .long 0x000037be + 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: 000037b6 .long 0x000037b6 + 44: 000037ae .long 0x000037ae + 48: 000037a6 .long 0x000037a6 + 4c: 0000379e .long 0x0000379e + 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: 00003796 .long 0x00003796 + 80: 00008050 .long 0x00008050 + 84: 00002e54 .long 0x00002e54 + 88: 00002f44 .long 0x00002f44 + 8c: 00002fac .long 0x00002fac + 90: 00003014 .long 0x00003014 + 94: 00000184 .long 0x00000184 + 98: 000031c0 .long 0x000031c0 + 9c: 0000352c .long 0x0000352c + a0: 0000355c .long 0x0000355c + a4: 000031f4 .long 0x000031f4 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003274 .long 0x00003274 + b4: 000032e4 .long 0x000032e4 + b8: 00003320 .long 0x00003320 + bc: 0000335c .long 0x0000335c + c0: 00000184 .long 0x00000184 + c4: 000037ee .long 0x000037ee + c8: 00000184 .long 0x00000184 + cc: 000033f0 .long 0x000033f0 + d0: 000034d8 .long 0x000034d8 + d4: 0000358c .long 0x0000358c + d8: 000035d4 .long 0x000035d4 + dc: 00003630 .long 0x00003630 + e0: 000037e6 .long 0x000037e6 + e4: 00007a3c .long 0x00007a3c + e8: 000036b0 .long 0x000036b0 + ec: 00000184 .long 0x00000184 + f0: 000036e4 .long 0x000036e4 + f4: 00003730 .long 0x00003730 + 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, 0x1ab4 // 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, 0x2c20 // 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: 00001ab4 .long 0x00001ab4 + 198: 00000160 .long 0x00000160 + 19c: 00002c20 .long 0x00002c20 + 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: e000072f bsr 0x1054 // 1054 <__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: e0000715 bsr 0x1084 // 1084 <__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: e000082a bsr 0x12f0 // 12f0 <__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: e00006ec bsr 0x10bc // 10bc <__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: e00007e0 bsr 0x12f0 // 12f0 <__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: e000069b bsr 0x1084 // 1084 <__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: e0000666 bsr 0x1084 // 1084 <__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: e000067c bsr 0x10bc // 10bc <__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: e0000674 bsr 0x10bc // 10bc <__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: e000066c bsr 0x10bc // 10bc <__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: e000064a bsr 0x1084 // 1084 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000662 bsr 0x10bc // 10bc <__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: e0000640 bsr 0x1084 // 1084 <__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: e0000654 bsr 0x10bc // 10bc <__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: e000064e bsr 0x10bc // 10bc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e000064a bsr 0x10bc // 10bc <__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: e0000628 bsr 0x1084 // 1084 <__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: e0000608 bsr 0x1054 // 1054 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000061a bsr 0x1084 // 1084 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000614 bsr 0x1084 // 1084 <__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: e0000603 bsr 0x1084 // 1084 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000061b bsr 0x10bc // 10bc <__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: e0000613 bsr 0x10bc // 10bc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e00005d9 bsr 0x1054 // 1054 <__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: e0000605 bsr 0x10bc // 10bc <__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: e00005c7 bsr 0x1054 // 1054 <__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: e00005e7 bsr 0x10bc // 10bc <__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: e00005dc bsr 0x10bc // 10bc <__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, 0x88f0 // 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: e000059a bsr 0x1084 // 1084 <__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: e000057a bsr 0x1054 // 1054 <__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: e00006c2 bsr 0x12f0 // 12f0 <__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: 000088f0 .long 0x000088f0 + 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: e000056a bsr 0x10bc // 10bc <__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: e000055b bsr 0x10bc // 10bc <__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: e0000539 bsr 0x1084 // 1084 <__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: e0000531 bsr 0x1084 // 1084 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000052b bsr 0x1084 // 1084 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e0000543 bsr 0x10bc // 10bc <__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: e0000521 bsr 0x1084 // 1084 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e0000539 bsr 0x10bc // 10bc <__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: e0000531 bsr 0x10bc // 10bc <__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: e0000529 bsr 0x10bc // 10bc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e00004ef bsr 0x1054 // 1054 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e000051f bsr 0x10bc // 10bc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e00004e5 bsr 0x1054 // 1054 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000515 bsr 0x10bc // 10bc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e00004db bsr 0x1054 // 1054 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e000050b bsr 0x10bc // 10bc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e00004d1 bsr 0x1054 // 1054 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e0000501 bsr 0x10bc // 10bc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e00004c7 bsr 0x1054 // 1054 <__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: e00004f3 bsr 0x10bc // 10bc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e00004ed bsr 0x10bc // 10bc <__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: e00004b1 bsr 0x1054 // 1054 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e00004e1 bsr 0x10bc // 10bc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e00004a9 bsr 0x1054 // 1054 <__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: e00004d5 bsr 0x10bc // 10bc <__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: e000049b bsr 0x1054 // 1054 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000497 bsr 0x1054 // 1054 <__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: e00004c4 bsr 0x10bc // 10bc <__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: e00004a0 bsr 0x1084 // 1084 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000049c bsr 0x1084 // 1084 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000496 bsr 0x1084 // 1084 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e00004ae bsr 0x10bc // 10bc <__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: e00004a6 bsr 0x10bc // 10bc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000046c bsr 0x1054 // 1054 <__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: e0000464 bsr 0x1054 // 1054 <__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: e0000491 bsr 0x10bc // 10bc <__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: e000046d bsr 0x1084 // 1084 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000467 bsr 0x1084 // 1084 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000047f bsr 0x10bc // 10bc <__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: e0000477 bsr 0x10bc // 10bc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000043d bsr 0x1054 // 1054 <__adddf3> + 7de: 01db lrw r6, 0x88f0 // 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: e0000436 bsr 0x1054 // 1054 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000683 bsr 0x14f8 // 14f8 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0x88f0 // 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: e0000423 bsr 0x1054 // 1054 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e000041f bsr 0x1054 // 1054 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000041b bsr 0x1054 // 1054 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000042d bsr 0x1084 // 1084 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e0000429 bsr 0x1084 // 1084 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000425 bsr 0x1084 // 1084 <__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: e00003fc bsr 0x1054 // 1054 <__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: e000040c bsr 0x1084 // 1084 <__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: e00005e6 bsr 0x1444 // 1444 <__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: e00003dc bsr 0x1084 // 1084 <__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: e00003bc bsr 0x1054 // 1054 <__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: e00003ea bsr 0x10bc // 10bc <__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: e00003c6 bsr 0x1084 // 1084 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e00003c0 bsr 0x1084 // 1084 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e00003d8 bsr 0x10bc // 10bc <__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: e00003d0 bsr 0x10bc // 10bc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000396 bsr 0x1054 // 1054 <__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: e000038e bsr 0x1054 // 1054 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e00003a0 bsr 0x1084 // 1084 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000039a bsr 0x1084 // 1084 <__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: e00003ae bsr 0x10bc // 10bc <__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: e00003a8 bsr 0x10bc // 10bc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000388 bsr 0x1084 // 1084 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e00003a0 bsr 0x10bc // 10bc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000368 bsr 0x1054 // 1054 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000398 bsr 0x10bc // 10bc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000378 bsr 0x1084 // 1084 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000390 bsr 0x10bc // 10bc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e0000358 bsr 0x1054 // 1054 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000388 bsr 0x10bc // 10bc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000366 bsr 0x1084 // 1084 <__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: e000037a bsr 0x10bc // 10bc <__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: e0000355 bsr 0x1084 // 1084 <__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: e0000485 bsr 0x12f0 // 12f0 <__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: e0000363 bsr 0x10bc // 10bc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000032b bsr 0x1054 // 1054 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000033d bsr 0x1084 // 1084 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e0000339 bsr 0x1084 // 1084 <__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: e0000333 bsr 0x1084 // 1084 <__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: e0000331 bsr 0x10bc // 10bc <__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: e000030b bsr 0x1084 // 1084 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000521 bsr 0x14bc // 14bc <__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: 000088f0 .long 0x000088f0 + 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: e000028f bsr 0x10bc // 10bc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e0000255 bsr 0x1054 // 1054 <__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: e0000258 bsr 0x1084 // 1084 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000038a bsr 0x12f0 // 12f0 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000397 bsr 0x1480 // 1480 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e0000405 bsr 0x1568 // 1568 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000018c bsr 0x1084 // 1084 <__subdf3> + d70: e00003fc bsr 0x1568 // 1568 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <_fpadd_parts>: + d80: 14c4 push r4-r7 + d82: 142a subi r14, r14, 40 + d84: 9060 ld.w r3, (r0, 0x0) + d86: 3b01 cmphsi r3, 2 + d88: 6dcb mov r7, r2 + d8a: 0c67 bf 0xe58 // e58 <_fpadd_parts+0xd8> + d8c: 9140 ld.w r2, (r1, 0x0) + d8e: 3a01 cmphsi r2, 2 + d90: 0c66 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d92: 3b44 cmpnei r3, 4 + d94: 0cde bf 0xf50 // f50 <_fpadd_parts+0x1d0> + d96: 3a44 cmpnei r2, 4 + d98: 0c62 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d9a: 3a42 cmpnei r2, 2 + d9c: 0cb7 bf 0xf0a // f0a <_fpadd_parts+0x18a> + d9e: 3b42 cmpnei r3, 2 + da0: 0c5e bf 0xe5c // e5c <_fpadd_parts+0xdc> + da2: 9043 ld.w r2, (r0, 0xc) + da4: 9064 ld.w r3, (r0, 0x10) + da6: 9082 ld.w r4, (r0, 0x8) + da8: 91a2 ld.w r5, (r1, 0x8) + daa: b842 st.w r2, (r14, 0x8) + dac: b863 st.w r3, (r14, 0xc) + dae: 9143 ld.w r2, (r1, 0xc) + db0: 9164 ld.w r3, (r1, 0x10) + db2: b840 st.w r2, (r14, 0x0) + db4: b861 st.w r3, (r14, 0x4) + db6: 5c75 subu r3, r4, r5 + db8: 3bdf btsti r3, 31 + dba: 6c8f mov r2, r3 + dbc: 08d2 bt 0xf60 // f60 <_fpadd_parts+0x1e0> + dbe: 363f movi r6, 63 + dc0: 6499 cmplt r6, r2 + dc2: 0c50 bf 0xe62 // e62 <_fpadd_parts+0xe2> + dc4: 6515 cmplt r5, r4 + dc6: 0cbf bf 0xf44 // f44 <_fpadd_parts+0x1c4> + dc8: 3200 movi r2, 0 + dca: 3300 movi r3, 0 + dcc: b840 st.w r2, (r14, 0x0) + dce: b861 st.w r3, (r14, 0x4) + dd0: 9061 ld.w r3, (r0, 0x4) + dd2: 9141 ld.w r2, (r1, 0x4) + dd4: 648e cmpne r3, r2 + dd6: 0c78 bf 0xec6 // ec6 <_fpadd_parts+0x146> + dd8: 3b40 cmpnei r3, 0 + dda: 0cad bf 0xf34 // f34 <_fpadd_parts+0x1b4> + ddc: 9800 ld.w r0, (r14, 0x0) + dde: 9821 ld.w r1, (r14, 0x4) + de0: 9842 ld.w r2, (r14, 0x8) + de2: 9863 ld.w r3, (r14, 0xc) + de4: 6400 cmphs r0, r0 + de6: 600b subc r0, r2 + de8: 604f subc r1, r3 + dea: 39df btsti r1, 31 + dec: 08bd bt 0xf66 // f66 <_fpadd_parts+0x1e6> + dee: 3300 movi r3, 0 + df0: b761 st.w r3, (r7, 0x4) + df2: b782 st.w r4, (r7, 0x8) + df4: 6c83 mov r2, r0 + df6: 6cc7 mov r3, r1 + df8: b703 st.w r0, (r7, 0xc) + dfa: b724 st.w r1, (r7, 0x10) + dfc: 3000 movi r0, 0 + dfe: 3100 movi r1, 0 + e00: 2800 subi r0, 1 + e02: 2900 subi r1, 1 + e04: 6401 cmplt r0, r0 + e06: 6009 addc r0, r2 + e08: 604d addc r1, r3 + e0a: 038f lrw r4, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e0c: 6450 cmphs r4, r1 + e0e: 0c67 bf 0xedc // edc <_fpadd_parts+0x15c> + e10: 6506 cmpne r1, r4 + e12: 0cfd bf 0x100c // 100c <_fpadd_parts+0x28c> + e14: 3000 movi r0, 0 + e16: 9722 ld.w r1, (r7, 0x8) + e18: 2801 subi r0, 2 + e1a: 2900 subi r1, 1 + e1c: 03d4 lrw r6, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e1e: b802 st.w r0, (r14, 0x8) + e20: b8e0 st.w r7, (r14, 0x0) + e22: 0403 br 0xe28 // e28 <_fpadd_parts+0xa8> + e24: 6596 cmpne r5, r6 + e26: 0c83 bf 0xf2c // f2c <_fpadd_parts+0x1ac> + e28: 4301 lsli r0, r3, 1 + e2a: 4a9f lsri r4, r2, 31 + e2c: 6d00 or r4, r0 + e2e: 42a1 lsli r5, r2, 1 + e30: 6c97 mov r2, r5 + e32: 6cd3 mov r3, r4 + e34: 3500 movi r5, 0 + e36: 3400 movi r4, 0 + e38: 2c00 subi r4, 1 + e3a: 2d00 subi r5, 1 + e3c: 6511 cmplt r4, r4 + e3e: 6109 addc r4, r2 + e40: 614d addc r5, r3 + e42: 6558 cmphs r6, r5 + e44: 6c07 mov r0, r1 + e46: 2900 subi r1, 1 + e48: 0bee bt 0xe24 // e24 <_fpadd_parts+0xa4> + e4a: 98e0 ld.w r7, (r14, 0x0) + e4c: b743 st.w r2, (r7, 0xc) + e4e: b764 st.w r3, (r7, 0x10) + e50: 3303 movi r3, 3 + e52: b702 st.w r0, (r7, 0x8) + e54: b760 st.w r3, (r7, 0x0) + e56: 6c1f mov r0, r7 + e58: 140a addi r14, r14, 40 + e5a: 1484 pop r4-r7 + e5c: 6c07 mov r0, r1 + e5e: 140a addi r14, r14, 40 + e60: 1484 pop r4-r7 + e62: 3b20 cmplti r3, 1 + e64: 088c bt 0xf7c // f7c <_fpadd_parts+0x1fc> + e66: 3300 movi r3, 0 + e68: 2b1f subi r3, 32 + e6a: 60c8 addu r3, r2 + e6c: 3bdf btsti r3, 31 + e6e: b866 st.w r3, (r14, 0x18) + e70: 08bb bt 0xfe6 // fe6 <_fpadd_parts+0x266> + e72: 98a1 ld.w r5, (r14, 0x4) + e74: 714d lsr r5, r3 + e76: b8a4 st.w r5, (r14, 0x10) + e78: 3500 movi r5, 0 + e7a: b8a5 st.w r5, (r14, 0x14) + e7c: 9866 ld.w r3, (r14, 0x18) + e7e: 3bdf btsti r3, 31 + e80: 3500 movi r5, 0 + e82: 3600 movi r6, 0 + e84: 08ad bt 0xfde // fde <_fpadd_parts+0x25e> + e86: 3201 movi r2, 1 + e88: 708c lsl r2, r3 + e8a: 6d8b mov r6, r2 + e8c: 3200 movi r2, 0 + e8e: 3300 movi r3, 0 + e90: 2a00 subi r2, 1 + e92: 2b00 subi r3, 1 + e94: 6489 cmplt r2, r2 + e96: 6095 addc r2, r5 + e98: 60d9 addc r3, r6 + e9a: 98a0 ld.w r5, (r14, 0x0) + e9c: 98c1 ld.w r6, (r14, 0x4) + e9e: 6948 and r5, r2 + ea0: 698c and r6, r3 + ea2: 6c97 mov r2, r5 + ea4: 6cdb mov r3, r6 + ea6: 6c8c or r2, r3 + ea8: 3a40 cmpnei r2, 0 + eaa: 3500 movi r5, 0 + eac: 6155 addc r5, r5 + eae: 6c97 mov r2, r5 + eb0: 3300 movi r3, 0 + eb2: 98a4 ld.w r5, (r14, 0x10) + eb4: 98c5 ld.w r6, (r14, 0x14) + eb6: 6d48 or r5, r2 + eb8: 6d8c or r6, r3 + eba: 9061 ld.w r3, (r0, 0x4) + ebc: 9141 ld.w r2, (r1, 0x4) + ebe: 648e cmpne r3, r2 + ec0: b8a0 st.w r5, (r14, 0x0) + ec2: b8c1 st.w r6, (r14, 0x4) + ec4: 0b8a bt 0xdd8 // dd8 <_fpadd_parts+0x58> + ec6: b761 st.w r3, (r7, 0x4) + ec8: 9800 ld.w r0, (r14, 0x0) + eca: 9821 ld.w r1, (r14, 0x4) + ecc: 9842 ld.w r2, (r14, 0x8) + ece: 9863 ld.w r3, (r14, 0xc) + ed0: 6489 cmplt r2, r2 + ed2: 6081 addc r2, r0 + ed4: 60c5 addc r3, r1 + ed6: b782 st.w r4, (r7, 0x8) + ed8: b743 st.w r2, (r7, 0xc) + eda: b764 st.w r3, (r7, 0x10) + edc: 3103 movi r1, 3 + ede: b720 st.w r1, (r7, 0x0) + ee0: 123b lrw r1, 0x1fffffff // 104c <_fpadd_parts+0x2cc> + ee2: 64c4 cmphs r1, r3 + ee4: 0810 bt 0xf04 // f04 <_fpadd_parts+0x184> + ee6: 439f lsli r4, r3, 31 + ee8: 4a01 lsri r0, r2, 1 + eea: 6c10 or r0, r4 + eec: 3500 movi r5, 0 + eee: 3401 movi r4, 1 + ef0: 4b21 lsri r1, r3, 1 + ef2: 6890 and r2, r4 + ef4: 68d4 and r3, r5 + ef6: 6c80 or r2, r0 + ef8: 6cc4 or r3, r1 + efa: b743 st.w r2, (r7, 0xc) + efc: b764 st.w r3, (r7, 0x10) + efe: 9762 ld.w r3, (r7, 0x8) + f00: 2300 addi r3, 1 + f02: b762 st.w r3, (r7, 0x8) + f04: 6c1f mov r0, r7 + f06: 140a addi r14, r14, 40 + f08: 1484 pop r4-r7 + f0a: 3b42 cmpnei r3, 2 + f0c: 0ba6 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f0e: b760 st.w r3, (r7, 0x0) + f10: 9061 ld.w r3, (r0, 0x4) + f12: b761 st.w r3, (r7, 0x4) + f14: 9062 ld.w r3, (r0, 0x8) + f16: b762 st.w r3, (r7, 0x8) + f18: 9063 ld.w r3, (r0, 0xc) + f1a: b763 st.w r3, (r7, 0xc) + f1c: 9064 ld.w r3, (r0, 0x10) + f1e: 9141 ld.w r2, (r1, 0x4) + f20: b764 st.w r3, (r7, 0x10) + f22: 9061 ld.w r3, (r0, 0x4) + f24: 68c8 and r3, r2 + f26: b761 st.w r3, (r7, 0x4) + f28: 6c1f mov r0, r7 + f2a: 0797 br 0xe58 // e58 <_fpadd_parts+0xd8> + f2c: 98e2 ld.w r7, (r14, 0x8) + f2e: 651c cmphs r7, r4 + f30: 0b7c bt 0xe28 // e28 <_fpadd_parts+0xa8> + f32: 078c br 0xe4a // e4a <_fpadd_parts+0xca> + f34: 9802 ld.w r0, (r14, 0x8) + f36: 9823 ld.w r1, (r14, 0xc) + f38: 9840 ld.w r2, (r14, 0x0) + f3a: 9861 ld.w r3, (r14, 0x4) + f3c: 6400 cmphs r0, r0 + f3e: 600b subc r0, r2 + f40: 604f subc r1, r3 + f42: 0754 br 0xdea // dea <_fpadd_parts+0x6a> + f44: 3200 movi r2, 0 + f46: 3300 movi r3, 0 + f48: 6d17 mov r4, r5 + f4a: b842 st.w r2, (r14, 0x8) + f4c: b863 st.w r3, (r14, 0xc) + f4e: 0741 br 0xdd0 // dd0 <_fpadd_parts+0x50> + f50: 3a44 cmpnei r2, 4 + f52: 0b83 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f54: 9041 ld.w r2, (r0, 0x4) + f56: 9161 ld.w r3, (r1, 0x4) + f58: 64ca cmpne r2, r3 + f5a: 0f7f bf 0xe58 // e58 <_fpadd_parts+0xd8> + f5c: 111d lrw r0, 0x8920 // 1050 <_fpadd_parts+0x2d0> + f5e: 077d br 0xe58 // e58 <_fpadd_parts+0xd8> + f60: 3200 movi r2, 0 + f62: 608e subu r2, r3 + f64: 072d br 0xdbe // dbe <_fpadd_parts+0x3e> + f66: 3301 movi r3, 1 + f68: b761 st.w r3, (r7, 0x4) + f6a: 3200 movi r2, 0 + f6c: 3300 movi r3, 0 + f6e: 6488 cmphs r2, r2 + f70: 6083 subc r2, r0 + f72: 60c7 subc r3, r1 + f74: b782 st.w r4, (r7, 0x8) + f76: b743 st.w r2, (r7, 0xc) + f78: b764 st.w r3, (r7, 0x10) + f7a: 0741 br 0xdfc // dfc <_fpadd_parts+0x7c> + f7c: 3b40 cmpnei r3, 0 + f7e: 0f29 bf 0xdd0 // dd0 <_fpadd_parts+0x50> + f80: 3300 movi r3, 0 + f82: 2b1f subi r3, 32 + f84: 60c8 addu r3, r2 + f86: 3bdf btsti r3, 31 + f88: 6108 addu r4, r2 + f8a: b866 st.w r3, (r14, 0x18) + f8c: 0849 bt 0x101e // 101e <_fpadd_parts+0x29e> + f8e: 9863 ld.w r3, (r14, 0xc) + f90: 98a6 ld.w r5, (r14, 0x18) + f92: 70d5 lsr r3, r5 + f94: b864 st.w r3, (r14, 0x10) + f96: 3300 movi r3, 0 + f98: b865 st.w r3, (r14, 0x14) + f9a: 9866 ld.w r3, (r14, 0x18) + f9c: 3bdf btsti r3, 31 + f9e: 3500 movi r5, 0 + fa0: 3600 movi r6, 0 + fa2: 083a bt 0x1016 // 1016 <_fpadd_parts+0x296> + fa4: 3201 movi r2, 1 + fa6: 708c lsl r2, r3 + fa8: 6d8b mov r6, r2 + faa: 3200 movi r2, 0 + fac: 3300 movi r3, 0 + fae: 2a00 subi r2, 1 + fb0: 2b00 subi r3, 1 + fb2: 6489 cmplt r2, r2 + fb4: 6095 addc r2, r5 + fb6: 60d9 addc r3, r6 + fb8: 98a2 ld.w r5, (r14, 0x8) + fba: 98c3 ld.w r6, (r14, 0xc) + fbc: 6948 and r5, r2 + fbe: 698c and r6, r3 + fc0: 6c97 mov r2, r5 + fc2: 6cdb mov r3, r6 + fc4: 6c8c or r2, r3 + fc6: 3a40 cmpnei r2, 0 + fc8: 3500 movi r5, 0 + fca: 6155 addc r5, r5 + fcc: 6c97 mov r2, r5 + fce: 3300 movi r3, 0 + fd0: 98a4 ld.w r5, (r14, 0x10) + fd2: 98c5 ld.w r6, (r14, 0x14) + fd4: 6d48 or r5, r2 + fd6: 6d8c or r6, r3 + fd8: b8a2 st.w r5, (r14, 0x8) + fda: b8c3 st.w r6, (r14, 0xc) + fdc: 06fa br 0xdd0 // dd0 <_fpadd_parts+0x50> + fde: 3301 movi r3, 1 + fe0: 70c8 lsl r3, r2 + fe2: 6d4f mov r5, r3 + fe4: 0754 br 0xe8c // e8c <_fpadd_parts+0x10c> + fe6: 9861 ld.w r3, (r14, 0x4) + fe8: 361f movi r6, 31 + fea: 43a1 lsli r5, r3, 1 + fec: 618a subu r6, r2 + fee: 7158 lsl r5, r6 + ff0: b8a9 st.w r5, (r14, 0x24) + ff2: 98a0 ld.w r5, (r14, 0x0) + ff4: 98c1 ld.w r6, (r14, 0x4) + ff6: b8a7 st.w r5, (r14, 0x1c) + ff8: b8c8 st.w r6, (r14, 0x20) + ffa: 9867 ld.w r3, (r14, 0x1c) + ffc: 70c9 lsr r3, r2 + ffe: 98a9 ld.w r5, (r14, 0x24) + 1000: 6cd4 or r3, r5 + 1002: b864 st.w r3, (r14, 0x10) + 1004: 9868 ld.w r3, (r14, 0x20) + 1006: 70c9 lsr r3, r2 + 1008: b865 st.w r3, (r14, 0x14) + 100a: 0739 br 0xe7c // e7c <_fpadd_parts+0xfc> + 100c: 3100 movi r1, 0 + 100e: 2901 subi r1, 2 + 1010: 6404 cmphs r1, r0 + 1012: 0b01 bt 0xe14 // e14 <_fpadd_parts+0x94> + 1014: 0764 br 0xedc // edc <_fpadd_parts+0x15c> + 1016: 3301 movi r3, 1 + 1018: 70c8 lsl r3, r2 + 101a: 6d4f mov r5, r3 + 101c: 07c7 br 0xfaa // faa <_fpadd_parts+0x22a> + 101e: 9863 ld.w r3, (r14, 0xc) + 1020: 43c1 lsli r6, r3, 1 + 1022: 351f movi r5, 31 + 1024: 5d69 subu r3, r5, r2 + 1026: 6d5b mov r5, r6 + 1028: 714c lsl r5, r3 + 102a: b8a9 st.w r5, (r14, 0x24) + 102c: 98a2 ld.w r5, (r14, 0x8) + 102e: 98c3 ld.w r6, (r14, 0xc) + 1030: b8a7 st.w r5, (r14, 0x1c) + 1032: b8c8 st.w r6, (r14, 0x20) + 1034: 9867 ld.w r3, (r14, 0x1c) + 1036: 70c9 lsr r3, r2 + 1038: 98a9 ld.w r5, (r14, 0x24) + 103a: 6cd4 or r3, r5 + 103c: b864 st.w r3, (r14, 0x10) + 103e: 9868 ld.w r3, (r14, 0x20) + 1040: 70c9 lsr r3, r2 + 1042: b865 st.w r3, (r14, 0x14) + 1044: 07ab br 0xf9a // f9a <_fpadd_parts+0x21a> + 1046: 0000 bkpt + 1048: 0fffffff .long 0x0fffffff + 104c: 1fffffff .long 0x1fffffff + 1050: 00008920 .long 0x00008920 + +00001054 <__adddf3>: + 1054: 14d0 push r15 + 1056: 1433 subi r14, r14, 76 + 1058: b800 st.w r0, (r14, 0x0) + 105a: b821 st.w r1, (r14, 0x4) + 105c: 6c3b mov r0, r14 + 105e: 1904 addi r1, r14, 16 + 1060: b863 st.w r3, (r14, 0xc) + 1062: b842 st.w r2, (r14, 0x8) + 1064: e00003f4 bsr 0x184c // 184c <__unpack_d> + 1068: 1909 addi r1, r14, 36 + 106a: 1802 addi r0, r14, 8 + 106c: e00003f0 bsr 0x184c // 184c <__unpack_d> + 1070: 1a0e addi r2, r14, 56 + 1072: 1909 addi r1, r14, 36 + 1074: 1804 addi r0, r14, 16 + 1076: e3fffe85 bsr 0xd80 // d80 <_fpadd_parts> + 107a: e000031b bsr 0x16b0 // 16b0 <__pack_d> + 107e: 1413 addi r14, r14, 76 + 1080: 1490 pop r15 + ... + +00001084 <__subdf3>: + 1084: 14d0 push r15 + 1086: 1433 subi r14, r14, 76 + 1088: b800 st.w r0, (r14, 0x0) + 108a: b821 st.w r1, (r14, 0x4) + 108c: 6c3b mov r0, r14 + 108e: 1904 addi r1, r14, 16 + 1090: b842 st.w r2, (r14, 0x8) + 1092: b863 st.w r3, (r14, 0xc) + 1094: e00003dc bsr 0x184c // 184c <__unpack_d> + 1098: 1909 addi r1, r14, 36 + 109a: 1802 addi r0, r14, 8 + 109c: e00003d8 bsr 0x184c // 184c <__unpack_d> + 10a0: 986a ld.w r3, (r14, 0x28) + 10a2: 3201 movi r2, 1 + 10a4: 6cc9 xor r3, r2 + 10a6: 1909 addi r1, r14, 36 + 10a8: 1a0e addi r2, r14, 56 + 10aa: 1804 addi r0, r14, 16 + 10ac: b86a st.w r3, (r14, 0x28) + 10ae: e3fffe69 bsr 0xd80 // d80 <_fpadd_parts> + 10b2: e00002ff bsr 0x16b0 // 16b0 <__pack_d> + 10b6: 1413 addi r14, r14, 76 + 10b8: 1490 pop r15 + ... + +000010bc <__muldf3>: + 10bc: 14d4 push r4-r7, r15 + 10be: 143b subi r14, r14, 108 + 10c0: b808 st.w r0, (r14, 0x20) + 10c2: b829 st.w r1, (r14, 0x24) + 10c4: 1808 addi r0, r14, 32 + 10c6: 190c addi r1, r14, 48 + 10c8: b86b st.w r3, (r14, 0x2c) + 10ca: b84a st.w r2, (r14, 0x28) + 10cc: e00003c0 bsr 0x184c // 184c <__unpack_d> + 10d0: 1911 addi r1, r14, 68 + 10d2: 180a addi r0, r14, 40 + 10d4: e00003bc bsr 0x184c // 184c <__unpack_d> + 10d8: 986c ld.w r3, (r14, 0x30) + 10da: 3b01 cmphsi r3, 2 + 10dc: 0cac bf 0x1234 // 1234 <__muldf3+0x178> + 10de: 9851 ld.w r2, (r14, 0x44) + 10e0: 3a01 cmphsi r2, 2 + 10e2: 0c9c bf 0x121a // 121a <__muldf3+0x15e> + 10e4: 3b44 cmpnei r3, 4 + 10e6: 0ca5 bf 0x1230 // 1230 <__muldf3+0x174> + 10e8: 3a44 cmpnei r2, 4 + 10ea: 0c96 bf 0x1216 // 1216 <__muldf3+0x15a> + 10ec: 3b42 cmpnei r3, 2 + 10ee: 0ca3 bf 0x1234 // 1234 <__muldf3+0x178> + 10f0: 3a42 cmpnei r2, 2 + 10f2: 0c94 bf 0x121a // 121a <__muldf3+0x15e> + 10f4: 98ef ld.w r7, (r14, 0x3c) + 10f6: 98b4 ld.w r5, (r14, 0x50) + 10f8: 9875 ld.w r3, (r14, 0x54) + 10fa: 6d8f mov r6, r3 + 10fc: 6c9f mov r2, r7 + 10fe: 3300 movi r3, 0 + 1100: 6c17 mov r0, r5 + 1102: 3100 movi r1, 0 + 1104: e0000294 bsr 0x162c // 162c <__muldi3> + 1108: b804 st.w r0, (r14, 0x10) + 110a: b825 st.w r1, (r14, 0x14) + 110c: 6c9f mov r2, r7 + 110e: 3300 movi r3, 0 + 1110: 6c1b mov r0, r6 + 1112: 3100 movi r1, 0 + 1114: 9890 ld.w r4, (r14, 0x40) + 1116: b8c2 st.w r6, (r14, 0x8) + 1118: e000028a bsr 0x162c // 162c <__muldi3> + 111c: 6d83 mov r6, r0 + 111e: 6dc7 mov r7, r1 + 1120: 9842 ld.w r2, (r14, 0x8) + 1122: 3300 movi r3, 0 + 1124: 6c13 mov r0, r4 + 1126: 3100 movi r1, 0 + 1128: e0000282 bsr 0x162c // 162c <__muldi3> + 112c: b806 st.w r0, (r14, 0x18) + 112e: b827 st.w r1, (r14, 0x1c) + 1130: 6c97 mov r2, r5 + 1132: 3300 movi r3, 0 + 1134: 6c13 mov r0, r4 + 1136: 3100 movi r1, 0 + 1138: e000027a bsr 0x162c // 162c <__muldi3> + 113c: 6401 cmplt r0, r0 + 113e: 6019 addc r0, r6 + 1140: 605d addc r1, r7 + 1142: 65c4 cmphs r1, r7 + 1144: 0c91 bf 0x1266 // 1266 <__muldf3+0x1aa> + 1146: 645e cmpne r7, r1 + 1148: 0c8d bf 0x1262 // 1262 <__muldf3+0x1a6> + 114a: 3300 movi r3, 0 + 114c: 3400 movi r4, 0 + 114e: b862 st.w r3, (r14, 0x8) + 1150: b883 st.w r4, (r14, 0xc) + 1152: 9884 ld.w r4, (r14, 0x10) + 1154: 98a5 ld.w r5, (r14, 0x14) + 1156: 3600 movi r6, 0 + 1158: 6dc3 mov r7, r0 + 115a: 6c93 mov r2, r4 + 115c: 6cd7 mov r3, r5 + 115e: 6489 cmplt r2, r2 + 1160: 6099 addc r2, r6 + 1162: 60dd addc r3, r7 + 1164: 6d8b mov r6, r2 + 1166: 6dcf mov r7, r3 + 1168: 6c93 mov r2, r4 + 116a: 6cd7 mov r3, r5 + 116c: 64dc cmphs r7, r3 + 116e: 0c70 bf 0x124e // 124e <__muldf3+0x192> + 1170: 65ce cmpne r3, r7 + 1172: 0c6c bf 0x124a // 124a <__muldf3+0x18e> + 1174: 6c87 mov r2, r1 + 1176: 3300 movi r3, 0 + 1178: 9806 ld.w r0, (r14, 0x18) + 117a: 9827 ld.w r1, (r14, 0x1c) + 117c: 6401 cmplt r0, r0 + 117e: 6009 addc r0, r2 + 1180: 604d addc r1, r3 + 1182: 6c83 mov r2, r0 + 1184: 6cc7 mov r3, r1 + 1186: 9802 ld.w r0, (r14, 0x8) + 1188: 9823 ld.w r1, (r14, 0xc) + 118a: 6401 cmplt r0, r0 + 118c: 6009 addc r0, r2 + 118e: 604d addc r1, r3 + 1190: 6c83 mov r2, r0 + 1192: 6cc7 mov r3, r1 + 1194: 988e ld.w r4, (r14, 0x38) + 1196: 9833 ld.w r1, (r14, 0x4c) + 1198: 6104 addu r4, r1 + 119a: 5c2e addi r1, r4, 4 + 119c: b838 st.w r1, (r14, 0x60) + 119e: 980d ld.w r0, (r14, 0x34) + 11a0: 9832 ld.w r1, (r14, 0x48) + 11a2: 6442 cmpne r0, r1 + 11a4: 12b0 lrw r5, 0x1fffffff // 12e4 <__muldf3+0x228> + 11a6: 3100 movi r1, 0 + 11a8: 6045 addc r1, r1 + 11aa: 64d4 cmphs r5, r3 + 11ac: b837 st.w r1, (r14, 0x5c) + 11ae: 0879 bt 0x12a0 // 12a0 <__muldf3+0x1e4> + 11b0: 2404 addi r4, 5 + 11b2: b8a4 st.w r5, (r14, 0x10) + 11b4: 3001 movi r0, 1 + 11b6: 3100 movi r1, 0 + 11b8: 6808 and r0, r2 + 11ba: 684c and r1, r3 + 11bc: 6c04 or r0, r1 + 11be: 3840 cmpnei r0, 0 + 11c0: b882 st.w r4, (r14, 0x8) + 11c2: 0c0e bf 0x11de // 11de <__muldf3+0x122> + 11c4: 473f lsli r1, r7, 31 + 11c6: 4e01 lsri r0, r6, 1 + 11c8: 6c04 or r0, r1 + 11ca: 4f21 lsri r1, r7, 1 + 11cc: b800 st.w r0, (r14, 0x0) + 11ce: b821 st.w r1, (r14, 0x4) + 11d0: 3180 movi r1, 128 + 11d2: 98c0 ld.w r6, (r14, 0x0) + 11d4: 98e1 ld.w r7, (r14, 0x4) + 11d6: 3000 movi r0, 0 + 11d8: 4138 lsli r1, r1, 24 + 11da: 6d80 or r6, r0 + 11dc: 6dc4 or r7, r1 + 11de: 4b21 lsri r1, r3, 1 + 11e0: 43bf lsli r5, r3, 31 + 11e2: 4a01 lsri r0, r2, 1 + 11e4: 6cc7 mov r3, r1 + 11e6: 9824 ld.w r1, (r14, 0x10) + 11e8: 6d40 or r5, r0 + 11ea: 64c4 cmphs r1, r3 + 11ec: 6c97 mov r2, r5 + 11ee: 2400 addi r4, 1 + 11f0: 0fe2 bf 0x11b4 // 11b4 <__muldf3+0xf8> + 11f2: 9822 ld.w r1, (r14, 0x8) + 11f4: b838 st.w r1, (r14, 0x60) + 11f6: 30ff movi r0, 255 + 11f8: 3100 movi r1, 0 + 11fa: 6808 and r0, r2 + 11fc: 684c and r1, r3 + 11fe: 3480 movi r4, 128 + 1200: 6502 cmpne r0, r4 + 1202: 0c37 bf 0x1270 // 1270 <__muldf3+0x1b4> + 1204: b859 st.w r2, (r14, 0x64) + 1206: b87a st.w r3, (r14, 0x68) + 1208: 3303 movi r3, 3 + 120a: b876 st.w r3, (r14, 0x58) + 120c: 1816 addi r0, r14, 88 + 120e: e0000251 bsr 0x16b0 // 16b0 <__pack_d> + 1212: 141b addi r14, r14, 108 + 1214: 1494 pop r4-r7, r15 + 1216: 3b42 cmpnei r3, 2 + 1218: 0c42 bf 0x129c // 129c <__muldf3+0x1e0> + 121a: 9872 ld.w r3, (r14, 0x48) + 121c: 984d ld.w r2, (r14, 0x34) + 121e: 64ca cmpne r2, r3 + 1220: 3300 movi r3, 0 + 1222: 60cd addc r3, r3 + 1224: 1811 addi r0, r14, 68 + 1226: b872 st.w r3, (r14, 0x48) + 1228: e0000244 bsr 0x16b0 // 16b0 <__pack_d> + 122c: 141b addi r14, r14, 108 + 122e: 1494 pop r4-r7, r15 + 1230: 3a42 cmpnei r2, 2 + 1232: 0c35 bf 0x129c // 129c <__muldf3+0x1e0> + 1234: 984d ld.w r2, (r14, 0x34) + 1236: 9872 ld.w r3, (r14, 0x48) + 1238: 64ca cmpne r2, r3 + 123a: 3300 movi r3, 0 + 123c: 60cd addc r3, r3 + 123e: 180c addi r0, r14, 48 + 1240: b86d st.w r3, (r14, 0x34) + 1242: e0000237 bsr 0x16b0 // 16b0 <__pack_d> + 1246: 141b addi r14, r14, 108 + 1248: 1494 pop r4-r7, r15 + 124a: 6498 cmphs r6, r2 + 124c: 0b94 bt 0x1174 // 1174 <__muldf3+0xb8> + 124e: 9882 ld.w r4, (r14, 0x8) + 1250: 98a3 ld.w r5, (r14, 0xc) + 1252: 3201 movi r2, 1 + 1254: 3300 movi r3, 0 + 1256: 6511 cmplt r4, r4 + 1258: 6109 addc r4, r2 + 125a: 614d addc r5, r3 + 125c: b882 st.w r4, (r14, 0x8) + 125e: b8a3 st.w r5, (r14, 0xc) + 1260: 078a br 0x1174 // 1174 <__muldf3+0xb8> + 1262: 6580 cmphs r0, r6 + 1264: 0b73 bt 0x114a // 114a <__muldf3+0x8e> + 1266: 3300 movi r3, 0 + 1268: 3401 movi r4, 1 + 126a: b862 st.w r3, (r14, 0x8) + 126c: b883 st.w r4, (r14, 0xc) + 126e: 0772 br 0x1152 // 1152 <__muldf3+0x96> + 1270: 3940 cmpnei r1, 0 + 1272: 0bc9 bt 0x1204 // 1204 <__muldf3+0x148> + 1274: 3180 movi r1, 128 + 1276: 4121 lsli r1, r1, 1 + 1278: 6848 and r1, r2 + 127a: 3940 cmpnei r1, 0 + 127c: 0bc4 bt 0x1204 // 1204 <__muldf3+0x148> + 127e: 6c5b mov r1, r6 + 1280: 6c5c or r1, r7 + 1282: 3940 cmpnei r1, 0 + 1284: 0fc0 bf 0x1204 // 1204 <__muldf3+0x148> + 1286: 3080 movi r0, 128 + 1288: 3100 movi r1, 0 + 128a: 6401 cmplt r0, r0 + 128c: 6009 addc r0, r2 + 128e: 604d addc r1, r3 + 1290: 34ff movi r4, 255 + 1292: 6d43 mov r5, r0 + 1294: 6951 andn r5, r4 + 1296: 6c97 mov r2, r5 + 1298: 6cc7 mov r3, r1 + 129a: 07b5 br 0x1204 // 1204 <__muldf3+0x148> + 129c: 1013 lrw r0, 0x8920 // 12e8 <__muldf3+0x22c> + 129e: 07b8 br 0x120e // 120e <__muldf3+0x152> + 12a0: 1033 lrw r1, 0xfffffff // 12ec <__muldf3+0x230> + 12a2: 64c4 cmphs r1, r3 + 12a4: 0fa9 bf 0x11f6 // 11f6 <__muldf3+0x13a> + 12a6: 2402 addi r4, 3 + 12a8: b822 st.w r1, (r14, 0x8) + 12aa: 4a1f lsri r0, r2, 31 + 12ac: 4321 lsli r1, r3, 1 + 12ae: 42a1 lsli r5, r2, 1 + 12b0: 6c04 or r0, r1 + 12b2: 3fdf btsti r7, 31 + 12b4: b880 st.w r4, (r14, 0x0) + 12b6: 6c97 mov r2, r5 + 12b8: 6cc3 mov r3, r0 + 12ba: 0c07 bf 0x12c8 // 12c8 <__muldf3+0x20c> + 12bc: 3001 movi r0, 1 + 12be: 3100 movi r1, 0 + 12c0: 6c08 or r0, r2 + 12c2: 6c4c or r1, r3 + 12c4: 6c83 mov r2, r0 + 12c6: 6cc7 mov r3, r1 + 12c8: 4721 lsli r1, r7, 1 + 12ca: 4e1f lsri r0, r6, 31 + 12cc: 6c04 or r0, r1 + 12ce: 9822 ld.w r1, (r14, 0x8) + 12d0: 46a1 lsli r5, r6, 1 + 12d2: 64c4 cmphs r1, r3 + 12d4: 6d97 mov r6, r5 + 12d6: 6dc3 mov r7, r0 + 12d8: 2c00 subi r4, 1 + 12da: 0be8 bt 0x12aa // 12aa <__muldf3+0x1ee> + 12dc: 9820 ld.w r1, (r14, 0x0) + 12de: b838 st.w r1, (r14, 0x60) + 12e0: 078b br 0x11f6 // 11f6 <__muldf3+0x13a> + 12e2: 0000 bkpt + 12e4: 1fffffff .long 0x1fffffff + 12e8: 00008920 .long 0x00008920 + 12ec: 0fffffff .long 0x0fffffff + +000012f0 <__divdf3>: + 12f0: 14d4 push r4-r7, r15 + 12f2: 1432 subi r14, r14, 72 + 12f4: b804 st.w r0, (r14, 0x10) + 12f6: b825 st.w r1, (r14, 0x14) + 12f8: 1804 addi r0, r14, 16 + 12fa: 1908 addi r1, r14, 32 + 12fc: b867 st.w r3, (r14, 0x1c) + 12fe: b846 st.w r2, (r14, 0x18) + 1300: e00002a6 bsr 0x184c // 184c <__unpack_d> + 1304: 190d addi r1, r14, 52 + 1306: 1806 addi r0, r14, 24 + 1308: e00002a2 bsr 0x184c // 184c <__unpack_d> + 130c: 9868 ld.w r3, (r14, 0x20) + 130e: 3b01 cmphsi r3, 2 + 1310: 0c66 bf 0x13dc // 13dc <__divdf3+0xec> + 1312: 982d ld.w r1, (r14, 0x34) + 1314: 3901 cmphsi r1, 2 + 1316: 0c92 bf 0x143a // 143a <__divdf3+0x14a> + 1318: 9849 ld.w r2, (r14, 0x24) + 131a: 980e ld.w r0, (r14, 0x38) + 131c: 6c81 xor r2, r0 + 131e: 3b44 cmpnei r3, 4 + 1320: b849 st.w r2, (r14, 0x24) + 1322: 0c62 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1324: 3b42 cmpnei r3, 2 + 1326: 0c60 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1328: 3944 cmpnei r1, 4 + 132a: 0c62 bf 0x13ee // 13ee <__divdf3+0xfe> + 132c: 3942 cmpnei r1, 2 + 132e: 0c82 bf 0x1432 // 1432 <__divdf3+0x142> + 1330: 982a ld.w r1, (r14, 0x28) + 1332: 986f ld.w r3, (r14, 0x3c) + 1334: 604e subu r1, r3 + 1336: 9890 ld.w r4, (r14, 0x40) + 1338: 98b1 ld.w r5, (r14, 0x44) + 133a: 984b ld.w r2, (r14, 0x2c) + 133c: 986c ld.w r3, (r14, 0x30) + 133e: 654c cmphs r3, r5 + 1340: b82a st.w r1, (r14, 0x28) + 1342: 6d93 mov r6, r4 + 1344: 6dd7 mov r7, r5 + 1346: 0c05 bf 0x1350 // 1350 <__divdf3+0x60> + 1348: 64d6 cmpne r5, r3 + 134a: 080b bt 0x1360 // 1360 <__divdf3+0x70> + 134c: 6508 cmphs r2, r4 + 134e: 0809 bt 0x1360 // 1360 <__divdf3+0x70> + 1350: 4a9f lsri r4, r2, 31 + 1352: 4301 lsli r0, r3, 1 + 1354: 42a1 lsli r5, r2, 1 + 1356: 6d00 or r4, r0 + 1358: 2900 subi r1, 1 + 135a: 6c97 mov r2, r5 + 135c: 6cd3 mov r3, r4 + 135e: b82a st.w r1, (r14, 0x28) + 1360: 3000 movi r0, 0 + 1362: 3100 movi r1, 0 + 1364: b802 st.w r0, (r14, 0x8) + 1366: b823 st.w r1, (r14, 0xc) + 1368: 3180 movi r1, 128 + 136a: 343d movi r4, 61 + 136c: 3000 movi r0, 0 + 136e: 4135 lsli r1, r1, 21 + 1370: b8c0 st.w r6, (r14, 0x0) + 1372: b8e1 st.w r7, (r14, 0x4) + 1374: 98a0 ld.w r5, (r14, 0x0) + 1376: 98c1 ld.w r6, (r14, 0x4) + 1378: 658c cmphs r3, r6 + 137a: 0c10 bf 0x139a // 139a <__divdf3+0xaa> + 137c: 64da cmpne r6, r3 + 137e: 0803 bt 0x1384 // 1384 <__divdf3+0x94> + 1380: 6548 cmphs r2, r5 + 1382: 0c0c bf 0x139a // 139a <__divdf3+0xaa> + 1384: 98a2 ld.w r5, (r14, 0x8) + 1386: 98c3 ld.w r6, (r14, 0xc) + 1388: 6d40 or r5, r0 + 138a: 6d84 or r6, r1 + 138c: b8a2 st.w r5, (r14, 0x8) + 138e: b8c3 st.w r6, (r14, 0xc) + 1390: 98a0 ld.w r5, (r14, 0x0) + 1392: 98c1 ld.w r6, (r14, 0x4) + 1394: 6488 cmphs r2, r2 + 1396: 6097 subc r2, r5 + 1398: 60db subc r3, r6 + 139a: 41bf lsli r5, r1, 31 + 139c: 48e1 lsri r7, r0, 1 + 139e: 6d97 mov r6, r5 + 13a0: 49a1 lsri r5, r1, 1 + 13a2: 6d9c or r6, r7 + 13a4: 6c57 mov r1, r5 + 13a6: 4abf lsri r5, r2, 31 + 13a8: 6c1b mov r0, r6 + 13aa: 2c00 subi r4, 1 + 13ac: 6d97 mov r6, r5 + 13ae: 43a1 lsli r5, r3, 1 + 13b0: 6d94 or r6, r5 + 13b2: 4261 lsli r3, r2, 1 + 13b4: 3c40 cmpnei r4, 0 + 13b6: 6dcf mov r7, r3 + 13b8: 6c8f mov r2, r3 + 13ba: 6cdb mov r3, r6 + 13bc: 0bdc bt 0x1374 // 1374 <__divdf3+0x84> + 13be: 30ff movi r0, 255 + 13c0: 3100 movi r1, 0 + 13c2: 9882 ld.w r4, (r14, 0x8) + 13c4: 98a3 ld.w r5, (r14, 0xc) + 13c6: 6900 and r4, r0 + 13c8: 6944 and r5, r1 + 13ca: 6c13 mov r0, r4 + 13cc: 6c57 mov r1, r5 + 13ce: 3480 movi r4, 128 + 13d0: 6502 cmpne r0, r4 + 13d2: 0c15 bf 0x13fc // 13fc <__divdf3+0x10c> + 13d4: 9862 ld.w r3, (r14, 0x8) + 13d6: 9883 ld.w r4, (r14, 0xc) + 13d8: b86b st.w r3, (r14, 0x2c) + 13da: b88c st.w r4, (r14, 0x30) + 13dc: 1808 addi r0, r14, 32 + 13de: e0000169 bsr 0x16b0 // 16b0 <__pack_d> + 13e2: 1412 addi r14, r14, 72 + 13e4: 1494 pop r4-r7, r15 + 13e6: 644e cmpne r3, r1 + 13e8: 0bfa bt 0x13dc // 13dc <__divdf3+0xec> + 13ea: 1016 lrw r0, 0x8920 // 1440 <__divdf3+0x150> + 13ec: 07f9 br 0x13de // 13de <__divdf3+0xee> + 13ee: 3300 movi r3, 0 + 13f0: 3400 movi r4, 0 + 13f2: b86b st.w r3, (r14, 0x2c) + 13f4: b88c st.w r4, (r14, 0x30) + 13f6: b86a st.w r3, (r14, 0x28) + 13f8: 1808 addi r0, r14, 32 + 13fa: 07f2 br 0x13de // 13de <__divdf3+0xee> + 13fc: 3940 cmpnei r1, 0 + 13fe: 0beb bt 0x13d4 // 13d4 <__divdf3+0xe4> + 1400: 3180 movi r1, 128 + 1402: 4121 lsli r1, r1, 1 + 1404: 9882 ld.w r4, (r14, 0x8) + 1406: 98a3 ld.w r5, (r14, 0xc) + 1408: 6850 and r1, r4 + 140a: 3940 cmpnei r1, 0 + 140c: 0be4 bt 0x13d4 // 13d4 <__divdf3+0xe4> + 140e: 6c98 or r2, r6 + 1410: 3a40 cmpnei r2, 0 + 1412: 0fe1 bf 0x13d4 // 13d4 <__divdf3+0xe4> + 1414: 3280 movi r2, 128 + 1416: 3300 movi r3, 0 + 1418: 6c13 mov r0, r4 + 141a: 6c57 mov r1, r5 + 141c: 6401 cmplt r0, r0 + 141e: 6009 addc r0, r2 + 1420: 604d addc r1, r3 + 1422: 6c83 mov r2, r0 + 1424: 6cc7 mov r3, r1 + 1426: 6c0b mov r0, r2 + 1428: 31ff movi r1, 255 + 142a: 6805 andn r0, r1 + 142c: b802 st.w r0, (r14, 0x8) + 142e: b863 st.w r3, (r14, 0xc) + 1430: 07d2 br 0x13d4 // 13d4 <__divdf3+0xe4> + 1432: 3304 movi r3, 4 + 1434: b868 st.w r3, (r14, 0x20) + 1436: 1808 addi r0, r14, 32 + 1438: 07d3 br 0x13de // 13de <__divdf3+0xee> + 143a: 180d addi r0, r14, 52 + 143c: 07d1 br 0x13de // 13de <__divdf3+0xee> + 143e: 0000 bkpt + 1440: 00008920 .long 0x00008920 + +00001444 <__gtdf2>: + 1444: 14d0 push r15 + 1446: 142e subi r14, r14, 56 + 1448: b800 st.w r0, (r14, 0x0) + 144a: b821 st.w r1, (r14, 0x4) + 144c: 6c3b mov r0, r14 + 144e: 1904 addi r1, r14, 16 + 1450: b863 st.w r3, (r14, 0xc) + 1452: b842 st.w r2, (r14, 0x8) + 1454: e00001fc bsr 0x184c // 184c <__unpack_d> + 1458: 1909 addi r1, r14, 36 + 145a: 1802 addi r0, r14, 8 + 145c: e00001f8 bsr 0x184c // 184c <__unpack_d> + 1460: 9864 ld.w r3, (r14, 0x10) + 1462: 3b01 cmphsi r3, 2 + 1464: 0c0a bf 0x1478 // 1478 <__gtdf2+0x34> + 1466: 9869 ld.w r3, (r14, 0x24) + 1468: 3b01 cmphsi r3, 2 + 146a: 0c07 bf 0x1478 // 1478 <__gtdf2+0x34> + 146c: 1909 addi r1, r14, 36 + 146e: 1804 addi r0, r14, 16 + 1470: e0000250 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 1474: 140e addi r14, r14, 56 + 1476: 1490 pop r15 + 1478: 3000 movi r0, 0 + 147a: 2800 subi r0, 1 + 147c: 140e addi r14, r14, 56 + 147e: 1490 pop r15 + +00001480 <__gedf2>: + 1480: 14d0 push r15 + 1482: 142e subi r14, r14, 56 + 1484: b800 st.w r0, (r14, 0x0) + 1486: b821 st.w r1, (r14, 0x4) + 1488: 6c3b mov r0, r14 + 148a: 1904 addi r1, r14, 16 + 148c: b863 st.w r3, (r14, 0xc) + 148e: b842 st.w r2, (r14, 0x8) + 1490: e00001de bsr 0x184c // 184c <__unpack_d> + 1494: 1909 addi r1, r14, 36 + 1496: 1802 addi r0, r14, 8 + 1498: e00001da bsr 0x184c // 184c <__unpack_d> + 149c: 9864 ld.w r3, (r14, 0x10) + 149e: 3b01 cmphsi r3, 2 + 14a0: 0c0a bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a2: 9869 ld.w r3, (r14, 0x24) + 14a4: 3b01 cmphsi r3, 2 + 14a6: 0c07 bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a8: 1909 addi r1, r14, 36 + 14aa: 1804 addi r0, r14, 16 + 14ac: e0000232 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14b0: 140e addi r14, r14, 56 + 14b2: 1490 pop r15 + 14b4: 3000 movi r0, 0 + 14b6: 2800 subi r0, 1 + 14b8: 140e addi r14, r14, 56 + 14ba: 1490 pop r15 + +000014bc <__ledf2>: + 14bc: 14d0 push r15 + 14be: 142e subi r14, r14, 56 + 14c0: b800 st.w r0, (r14, 0x0) + 14c2: b821 st.w r1, (r14, 0x4) + 14c4: 6c3b mov r0, r14 + 14c6: 1904 addi r1, r14, 16 + 14c8: b863 st.w r3, (r14, 0xc) + 14ca: b842 st.w r2, (r14, 0x8) + 14cc: e00001c0 bsr 0x184c // 184c <__unpack_d> + 14d0: 1909 addi r1, r14, 36 + 14d2: 1802 addi r0, r14, 8 + 14d4: e00001bc bsr 0x184c // 184c <__unpack_d> + 14d8: 9864 ld.w r3, (r14, 0x10) + 14da: 3b01 cmphsi r3, 2 + 14dc: 0c0a bf 0x14f0 // 14f0 <__ledf2+0x34> + 14de: 9869 ld.w r3, (r14, 0x24) + 14e0: 3b01 cmphsi r3, 2 + 14e2: 0c07 bf 0x14f0 // 14f0 <__ledf2+0x34> + 14e4: 1909 addi r1, r14, 36 + 14e6: 1804 addi r0, r14, 16 + 14e8: e0000214 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14ec: 140e addi r14, r14, 56 + 14ee: 1490 pop r15 + 14f0: 3001 movi r0, 1 + 14f2: 140e addi r14, r14, 56 + 14f4: 1490 pop r15 + ... + +000014f8 <__floatsidf>: + 14f8: 14d1 push r4, r15 + 14fa: 1425 subi r14, r14, 20 + 14fc: 3303 movi r3, 3 + 14fe: b860 st.w r3, (r14, 0x0) + 1500: 3840 cmpnei r0, 0 + 1502: 487f lsri r3, r0, 31 + 1504: b861 st.w r3, (r14, 0x4) + 1506: 0808 bt 0x1516 // 1516 <__floatsidf+0x1e> + 1508: 3302 movi r3, 2 + 150a: b860 st.w r3, (r14, 0x0) + 150c: 6c3b mov r0, r14 + 150e: e00000d1 bsr 0x16b0 // 16b0 <__pack_d> + 1512: 1405 addi r14, r14, 20 + 1514: 1491 pop r4, r15 + 1516: 38df btsti r0, 31 + 1518: 0812 bt 0x153c // 153c <__floatsidf+0x44> + 151a: 6d03 mov r4, r0 + 151c: 6c13 mov r0, r4 + 151e: e00000a9 bsr 0x1670 // 1670 <__clzsi2> + 1522: 321d movi r2, 29 + 1524: 6080 addu r2, r0 + 1526: 2802 subi r0, 3 + 1528: 38df btsti r0, 31 + 152a: 0810 bt 0x154a // 154a <__floatsidf+0x52> + 152c: 7100 lsl r4, r0 + 152e: 3300 movi r3, 0 + 1530: b884 st.w r4, (r14, 0x10) + 1532: b863 st.w r3, (r14, 0xc) + 1534: 333c movi r3, 60 + 1536: 60ca subu r3, r2 + 1538: b862 st.w r3, (r14, 0x8) + 153a: 07e9 br 0x150c // 150c <__floatsidf+0x14> + 153c: 3380 movi r3, 128 + 153e: 4378 lsli r3, r3, 24 + 1540: 64c2 cmpne r0, r3 + 1542: 0c0d bf 0x155c // 155c <__floatsidf+0x64> + 1544: 3400 movi r4, 0 + 1546: 6102 subu r4, r0 + 1548: 07ea br 0x151c // 151c <__floatsidf+0x24> + 154a: 311f movi r1, 31 + 154c: 4c61 lsri r3, r4, 1 + 154e: 604a subu r1, r2 + 1550: 6c13 mov r0, r4 + 1552: 70c5 lsr r3, r1 + 1554: 7008 lsl r0, r2 + 1556: b864 st.w r3, (r14, 0x10) + 1558: b803 st.w r0, (r14, 0xc) + 155a: 07ed br 0x1534 // 1534 <__floatsidf+0x3c> + 155c: 3000 movi r0, 0 + 155e: 1022 lrw r1, 0xc1e00000 // 1564 <__floatsidf+0x6c> + 1560: 07d9 br 0x1512 // 1512 <__floatsidf+0x1a> + 1562: 0000 bkpt + 1564: c1e00000 .long 0xc1e00000 + +00001568 <__fixdfsi>: + 1568: 14d0 push r15 + 156a: 1427 subi r14, r14, 28 + 156c: b800 st.w r0, (r14, 0x0) + 156e: b821 st.w r1, (r14, 0x4) + 1570: 6c3b mov r0, r14 + 1572: 1902 addi r1, r14, 8 + 1574: e000016c bsr 0x184c // 184c <__unpack_d> + 1578: 9862 ld.w r3, (r14, 0x8) + 157a: 3b02 cmphsi r3, 3 + 157c: 0c20 bf 0x15bc // 15bc <__fixdfsi+0x54> + 157e: 3b44 cmpnei r3, 4 + 1580: 0c16 bf 0x15ac // 15ac <__fixdfsi+0x44> + 1582: 9864 ld.w r3, (r14, 0x10) + 1584: 3bdf btsti r3, 31 + 1586: 081b bt 0x15bc // 15bc <__fixdfsi+0x54> + 1588: 3b3e cmplti r3, 31 + 158a: 0c11 bf 0x15ac // 15ac <__fixdfsi+0x44> + 158c: 323c movi r2, 60 + 158e: 5a6d subu r3, r2, r3 + 1590: 3200 movi r2, 0 + 1592: 2a1f subi r2, 32 + 1594: 608c addu r2, r3 + 1596: 3adf btsti r2, 31 + 1598: 0815 bt 0x15c2 // 15c2 <__fixdfsi+0x5a> + 159a: 9806 ld.w r0, (r14, 0x18) + 159c: 7009 lsr r0, r2 + 159e: 9863 ld.w r3, (r14, 0xc) + 15a0: 3b40 cmpnei r3, 0 + 15a2: 0c0b bf 0x15b8 // 15b8 <__fixdfsi+0x50> + 15a4: 3300 movi r3, 0 + 15a6: 5b01 subu r0, r3, r0 + 15a8: 1407 addi r14, r14, 28 + 15aa: 1490 pop r15 + 15ac: 9863 ld.w r3, (r14, 0xc) + 15ae: 3b40 cmpnei r3, 0 + 15b0: 3000 movi r0, 0 + 15b2: 6001 addc r0, r0 + 15b4: 1068 lrw r3, 0x7fffffff // 15d4 <__fixdfsi+0x6c> + 15b6: 600c addu r0, r3 + 15b8: 1407 addi r14, r14, 28 + 15ba: 1490 pop r15 + 15bc: 3000 movi r0, 0 + 15be: 1407 addi r14, r14, 28 + 15c0: 1490 pop r15 + 15c2: 9846 ld.w r2, (r14, 0x18) + 15c4: 311f movi r1, 31 + 15c6: 4241 lsli r2, r2, 1 + 15c8: 604e subu r1, r3 + 15ca: 9805 ld.w r0, (r14, 0x14) + 15cc: 7084 lsl r2, r1 + 15ce: 700d lsr r0, r3 + 15d0: 6c08 or r0, r2 + 15d2: 07e6 br 0x159e // 159e <__fixdfsi+0x36> + 15d4: 7fffffff .long 0x7fffffff + +000015d8 <__floatunsidf>: + 15d8: 14d2 push r4-r5, r15 + 15da: 1425 subi r14, r14, 20 + 15dc: 3840 cmpnei r0, 0 + 15de: 3500 movi r5, 0 + 15e0: 6d03 mov r4, r0 + 15e2: b8a1 st.w r5, (r14, 0x4) + 15e4: 0c15 bf 0x160e // 160e <__floatunsidf+0x36> + 15e6: 3303 movi r3, 3 + 15e8: b860 st.w r3, (r14, 0x0) + 15ea: e0000043 bsr 0x1670 // 1670 <__clzsi2> + 15ee: 321d movi r2, 29 + 15f0: 6080 addu r2, r0 + 15f2: 2802 subi r0, 3 + 15f4: 38df btsti r0, 31 + 15f6: 0813 bt 0x161c // 161c <__floatunsidf+0x44> + 15f8: 7100 lsl r4, r0 + 15fa: b884 st.w r4, (r14, 0x10) + 15fc: b8a3 st.w r5, (r14, 0xc) + 15fe: 333c movi r3, 60 + 1600: 60ca subu r3, r2 + 1602: 6c3b mov r0, r14 + 1604: b862 st.w r3, (r14, 0x8) + 1606: e0000055 bsr 0x16b0 // 16b0 <__pack_d> + 160a: 1405 addi r14, r14, 20 + 160c: 1492 pop r4-r5, r15 + 160e: 3302 movi r3, 2 + 1610: 6c3b mov r0, r14 + 1612: b860 st.w r3, (r14, 0x0) + 1614: e000004e bsr 0x16b0 // 16b0 <__pack_d> + 1618: 1405 addi r14, r14, 20 + 161a: 1492 pop r4-r5, r15 + 161c: 311f movi r1, 31 + 161e: 4c61 lsri r3, r4, 1 + 1620: 604a subu r1, r2 + 1622: 70c5 lsr r3, r1 + 1624: 7108 lsl r4, r2 + 1626: b864 st.w r3, (r14, 0x10) + 1628: b883 st.w r4, (r14, 0xc) + 162a: 07ea br 0x15fe // 15fe <__floatunsidf+0x26> + +0000162c <__muldi3>: + 162c: 14c4 push r4-r7 + 162e: 1421 subi r14, r14, 4 + 1630: 7501 zexth r4, r0 + 1632: 48b0 lsri r5, r0, 16 + 1634: 75c9 zexth r7, r2 + 1636: 6d83 mov r6, r0 + 1638: b820 st.w r1, (r14, 0x0) + 163a: 6c13 mov r0, r4 + 163c: 4a30 lsri r1, r2, 16 + 163e: 7c1c mult r0, r7 + 1640: 7d04 mult r4, r1 + 1642: 7dd4 mult r7, r5 + 1644: 611c addu r4, r7 + 1646: 7d44 mult r5, r1 + 1648: 4830 lsri r1, r0, 16 + 164a: 6104 addu r4, r1 + 164c: 65d0 cmphs r4, r7 + 164e: 0804 bt 0x1656 // 1656 <__muldi3+0x2a> + 1650: 3180 movi r1, 128 + 1652: 4129 lsli r1, r1, 9 + 1654: 6144 addu r5, r1 + 1656: 4c30 lsri r1, r4, 16 + 1658: 7cd8 mult r3, r6 + 165a: 6144 addu r5, r1 + 165c: 6c4f mov r1, r3 + 165e: 9860 ld.w r3, (r14, 0x0) + 1660: 7cc8 mult r3, r2 + 1662: 4490 lsli r4, r4, 16 + 1664: 604c addu r1, r3 + 1666: 7401 zexth r0, r0 + 1668: 6010 addu r0, r4 + 166a: 6054 addu r1, r5 + 166c: 1401 addi r14, r14, 4 + 166e: 1484 pop r4-r7 + +00001670 <__clzsi2>: + 1670: 106d lrw r3, 0xffff // 16a4 <__clzsi2+0x34> + 1672: 640c cmphs r3, r0 + 1674: 0c07 bf 0x1682 // 1682 <__clzsi2+0x12> + 1676: 33ff movi r3, 255 + 1678: 640c cmphs r3, r0 + 167a: 0c0f bf 0x1698 // 1698 <__clzsi2+0x28> + 167c: 3320 movi r3, 32 + 167e: 3200 movi r2, 0 + 1680: 0406 br 0x168c // 168c <__clzsi2+0x1c> + 1682: 106a lrw r3, 0xffffff // 16a8 <__clzsi2+0x38> + 1684: 640c cmphs r3, r0 + 1686: 080c bt 0x169e // 169e <__clzsi2+0x2e> + 1688: 3308 movi r3, 8 + 168a: 3218 movi r2, 24 + 168c: 7009 lsr r0, r2 + 168e: 1048 lrw r2, 0x8934 // 16ac <__clzsi2+0x3c> + 1690: 6008 addu r0, r2 + 1692: 8040 ld.b r2, (r0, 0x0) + 1694: 5b09 subu r0, r3, r2 + 1696: 783c jmp r15 + 1698: 3318 movi r3, 24 + 169a: 3208 movi r2, 8 + 169c: 07f8 br 0x168c // 168c <__clzsi2+0x1c> + 169e: 3310 movi r3, 16 + 16a0: 3210 movi r2, 16 + 16a2: 07f5 br 0x168c // 168c <__clzsi2+0x1c> + 16a4: 0000ffff .long 0x0000ffff + 16a8: 00ffffff .long 0x00ffffff + 16ac: 00008934 .long 0x00008934 + +000016b0 <__pack_d>: + 16b0: 14c4 push r4-r7 + 16b2: 1422 subi r14, r14, 8 + 16b4: 9060 ld.w r3, (r0, 0x0) + 16b6: 3b01 cmphsi r3, 2 + 16b8: 90c3 ld.w r6, (r0, 0xc) + 16ba: 90e4 ld.w r7, (r0, 0x10) + 16bc: 9021 ld.w r1, (r0, 0x4) + 16be: 0c46 bf 0x174a // 174a <__pack_d+0x9a> + 16c0: 3b44 cmpnei r3, 4 + 16c2: 0c40 bf 0x1742 // 1742 <__pack_d+0x92> + 16c4: 3b42 cmpnei r3, 2 + 16c6: 0c27 bf 0x1714 // 1714 <__pack_d+0x64> + 16c8: 6cdb mov r3, r6 + 16ca: 6cdc or r3, r7 + 16cc: 3b40 cmpnei r3, 0 + 16ce: 0c23 bf 0x1714 // 1714 <__pack_d+0x64> + 16d0: 9062 ld.w r3, (r0, 0x8) + 16d2: 125a lrw r2, 0xfffffc02 // 1838 <__pack_d+0x188> + 16d4: 648d cmplt r3, r2 + 16d6: 0855 bt 0x1780 // 1780 <__pack_d+0xd0> + 16d8: 1259 lrw r2, 0x3ff // 183c <__pack_d+0x18c> + 16da: 64c9 cmplt r2, r3 + 16dc: 0833 bt 0x1742 // 1742 <__pack_d+0x92> + 16de: 34ff movi r4, 255 + 16e0: 3500 movi r5, 0 + 16e2: 6918 and r4, r6 + 16e4: 695c and r5, r7 + 16e6: 3280 movi r2, 128 + 16e8: 6492 cmpne r4, r2 + 16ea: 0c3f bf 0x1768 // 1768 <__pack_d+0xb8> + 16ec: 347f movi r4, 127 + 16ee: 3500 movi r5, 0 + 16f0: 6599 cmplt r6, r6 + 16f2: 6191 addc r6, r4 + 16f4: 61d5 addc r7, r5 + 16f6: 1253 lrw r2, 0x1fffffff // 1840 <__pack_d+0x190> + 16f8: 65c8 cmphs r2, r7 + 16fa: 0c1a bf 0x172e // 172e <__pack_d+0x7e> + 16fc: 1290 lrw r4, 0x3ff // 183c <__pack_d+0x18c> + 16fe: 610c addu r4, r3 + 1700: 4718 lsli r0, r7, 24 + 1702: 4f68 lsri r3, r7, 8 + 1704: 4e48 lsri r2, r6, 8 + 1706: 6c80 or r2, r0 + 1708: 430c lsli r0, r3, 12 + 170a: 486c lsri r3, r0, 12 + 170c: 120e lrw r0, 0x7ff // 1844 <__pack_d+0x194> + 170e: 6d4b mov r5, r2 + 1710: 6900 and r4, r0 + 1712: 0404 br 0x171a // 171a <__pack_d+0x6a> + 1714: 3400 movi r4, 0 + 1716: 3200 movi r2, 0 + 1718: 3300 movi r3, 0 + 171a: 430c lsli r0, r3, 12 + 171c: 480c lsri r0, r0, 12 + 171e: 4474 lsli r3, r4, 20 + 1720: 419f lsli r4, r1, 31 + 1722: 6c43 mov r1, r0 + 1724: 6c4c or r1, r3 + 1726: 6c50 or r1, r4 + 1728: 6c0b mov r0, r2 + 172a: 1402 addi r14, r14, 8 + 172c: 1484 pop r4-r7 + 172e: 479f lsli r4, r7, 31 + 1730: 4e01 lsri r0, r6, 1 + 1732: 6d00 or r4, r0 + 1734: 6d93 mov r6, r4 + 1736: 3480 movi r4, 128 + 1738: 4f41 lsri r2, r7, 1 + 173a: 4483 lsli r4, r4, 3 + 173c: 6dcb mov r7, r2 + 173e: 610c addu r4, r3 + 1740: 07e0 br 0x1700 // 1700 <__pack_d+0x50> + 1742: 1281 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1744: 3200 movi r2, 0 + 1746: 3300 movi r3, 0 + 1748: 07e9 br 0x171a // 171a <__pack_d+0x6a> + 174a: 4e08 lsri r0, r6, 8 + 174c: 4798 lsli r4, r7, 24 + 174e: 6d00 or r4, r0 + 1750: 3580 movi r5, 128 + 1752: 4705 lsli r0, r7, 5 + 1754: 6c93 mov r2, r4 + 1756: 486d lsri r3, r0, 13 + 1758: 3400 movi r4, 0 + 175a: 45ac lsli r5, r5, 12 + 175c: 6c90 or r2, r4 + 175e: 6cd4 or r3, r5 + 1760: 430c lsli r0, r3, 12 + 1762: 486c lsri r3, r0, 12 + 1764: 1198 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1766: 07da br 0x171a // 171a <__pack_d+0x6a> + 1768: 3d40 cmpnei r5, 0 + 176a: 0bc1 bt 0x16ec // 16ec <__pack_d+0x3c> + 176c: 4241 lsli r2, r2, 1 + 176e: 6898 and r2, r6 + 1770: 3a40 cmpnei r2, 0 + 1772: 0fc2 bf 0x16f6 // 16f6 <__pack_d+0x46> + 1774: 3480 movi r4, 128 + 1776: 3500 movi r5, 0 + 1778: 6599 cmplt r6, r6 + 177a: 6191 addc r6, r4 + 177c: 61d5 addc r7, r5 + 177e: 07bc br 0x16f6 // 16f6 <__pack_d+0x46> + 1780: 5a6d subu r3, r2, r3 + 1782: 3238 movi r2, 56 + 1784: 64c9 cmplt r2, r3 + 1786: 0bc7 bt 0x1714 // 1714 <__pack_d+0x64> + 1788: 3200 movi r2, 0 + 178a: 2a1f subi r2, 32 + 178c: 608c addu r2, r3 + 178e: 3adf btsti r2, 31 + 1790: 0848 bt 0x1820 // 1820 <__pack_d+0x170> + 1792: 6c1f mov r0, r7 + 1794: 7009 lsr r0, r2 + 1796: b800 st.w r0, (r14, 0x0) + 1798: 3000 movi r0, 0 + 179a: b801 st.w r0, (r14, 0x4) + 179c: 3adf btsti r2, 31 + 179e: 083c bt 0x1816 // 1816 <__pack_d+0x166> + 17a0: 3301 movi r3, 1 + 17a2: 70c8 lsl r3, r2 + 17a4: 6d4f mov r5, r3 + 17a6: 3300 movi r3, 0 + 17a8: 6d0f mov r4, r3 + 17aa: 3200 movi r2, 0 + 17ac: 3300 movi r3, 0 + 17ae: 2a00 subi r2, 1 + 17b0: 2b00 subi r3, 1 + 17b2: 6511 cmplt r4, r4 + 17b4: 6109 addc r4, r2 + 17b6: 614d addc r5, r3 + 17b8: 6990 and r6, r4 + 17ba: 69d4 and r7, r5 + 17bc: 6d9c or r6, r7 + 17be: 3e40 cmpnei r6, 0 + 17c0: 3000 movi r0, 0 + 17c2: 6001 addc r0, r0 + 17c4: 6c83 mov r2, r0 + 17c6: 3300 movi r3, 0 + 17c8: 9880 ld.w r4, (r14, 0x0) + 17ca: 98a1 ld.w r5, (r14, 0x4) + 17cc: 6d08 or r4, r2 + 17ce: 6d4c or r5, r3 + 17d0: 32ff movi r2, 255 + 17d2: 3300 movi r3, 0 + 17d4: 6890 and r2, r4 + 17d6: 68d4 and r3, r5 + 17d8: 3080 movi r0, 128 + 17da: 640a cmpne r2, r0 + 17dc: 081b bt 0x1812 // 1812 <__pack_d+0x162> + 17de: 3b40 cmpnei r3, 0 + 17e0: 0819 bt 0x1812 // 1812 <__pack_d+0x162> + 17e2: 3380 movi r3, 128 + 17e4: 4361 lsli r3, r3, 1 + 17e6: 68d0 and r3, r4 + 17e8: 3b40 cmpnei r3, 0 + 17ea: 0c06 bf 0x17f6 // 17f6 <__pack_d+0x146> + 17ec: 3280 movi r2, 128 + 17ee: 3300 movi r3, 0 + 17f0: 6511 cmplt r4, r4 + 17f2: 6109 addc r4, r2 + 17f4: 614d addc r5, r3 + 17f6: 4518 lsli r0, r5, 24 + 17f8: 4c48 lsri r2, r4, 8 + 17fa: 4d68 lsri r3, r5, 8 + 17fc: 1093 lrw r4, 0xfffffff // 1848 <__pack_d+0x198> + 17fe: 6c80 or r2, r0 + 1800: 6550 cmphs r4, r5 + 1802: 430c lsli r0, r3, 12 + 1804: 486c lsri r3, r0, 12 + 1806: 3001 movi r0, 1 + 1808: 0c02 bf 0x180c // 180c <__pack_d+0x15c> + 180a: 3000 movi r0, 0 + 180c: 108e lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 180e: 6900 and r4, r0 + 1810: 0785 br 0x171a // 171a <__pack_d+0x6a> + 1812: 327f movi r2, 127 + 1814: 07ed br 0x17ee // 17ee <__pack_d+0x13e> + 1816: 3201 movi r2, 1 + 1818: 708c lsl r2, r3 + 181a: 3500 movi r5, 0 + 181c: 6d0b mov r4, r2 + 181e: 07c6 br 0x17aa // 17aa <__pack_d+0xfa> + 1820: 341f movi r4, 31 + 1822: 610e subu r4, r3 + 1824: 4701 lsli r0, r7, 1 + 1826: 7010 lsl r0, r4 + 1828: 6d1b mov r4, r6 + 182a: 710d lsr r4, r3 + 182c: 6d00 or r4, r0 + 182e: 6c1f mov r0, r7 + 1830: 700d lsr r0, r3 + 1832: b880 st.w r4, (r14, 0x0) + 1834: b801 st.w r0, (r14, 0x4) + 1836: 07b3 br 0x179c // 179c <__pack_d+0xec> + 1838: fffffc02 .long 0xfffffc02 + 183c: 000003ff .long 0x000003ff + 1840: 1fffffff .long 0x1fffffff + 1844: 000007ff .long 0x000007ff + 1848: 0fffffff .long 0x0fffffff + +0000184c <__unpack_d>: + 184c: 1423 subi r14, r14, 12 + 184e: b880 st.w r4, (r14, 0x0) + 1850: b8c1 st.w r6, (r14, 0x4) + 1852: b8e2 st.w r7, (r14, 0x8) + 1854: 8843 ld.h r2, (r0, 0x6) + 1856: 4251 lsli r2, r2, 17 + 1858: 9061 ld.w r3, (r0, 0x4) + 185a: 9080 ld.w r4, (r0, 0x0) + 185c: 4a55 lsri r2, r2, 21 + 185e: 8007 ld.b r0, (r0, 0x7) + 1860: 436c lsli r3, r3, 12 + 1862: 4807 lsri r0, r0, 7 + 1864: 3a40 cmpnei r2, 0 + 1866: 4b6c lsri r3, r3, 12 + 1868: b101 st.w r0, (r1, 0x4) + 186a: 0819 bt 0x189c // 189c <__unpack_d+0x50> + 186c: 6c93 mov r2, r4 + 186e: 6c8c or r2, r3 + 1870: 3a40 cmpnei r2, 0 + 1872: 0c2d bf 0x18cc // 18cc <__unpack_d+0x80> + 1874: 4c58 lsri r2, r4, 24 + 1876: 4368 lsli r3, r3, 8 + 1878: 6cc8 or r3, r2 + 187a: 3203 movi r2, 3 + 187c: 4408 lsli r0, r4, 8 + 187e: b140 st.w r2, (r1, 0x0) + 1880: 1181 lrw r4, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 1882: 11c2 lrw r6, 0xfffffff // 1908 <__unpack_d+0xbc> + 1884: 485f lsri r2, r0, 31 + 1886: 4361 lsli r3, r3, 1 + 1888: 6cc8 or r3, r2 + 188a: 64d8 cmphs r6, r3 + 188c: 6c93 mov r2, r4 + 188e: 4001 lsli r0, r0, 1 + 1890: 2c00 subi r4, 1 + 1892: 0bf9 bt 0x1884 // 1884 <__unpack_d+0x38> + 1894: b142 st.w r2, (r1, 0x8) + 1896: b103 st.w r0, (r1, 0xc) + 1898: b164 st.w r3, (r1, 0x10) + 189a: 0414 br 0x18c2 // 18c2 <__unpack_d+0x76> + 189c: 101c lrw r0, 0x7ff // 190c <__unpack_d+0xc0> + 189e: 640a cmpne r2, r0 + 18a0: 0c19 bf 0x18d2 // 18d2 <__unpack_d+0x86> + 18a2: 1019 lrw r0, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 18a4: 6080 addu r2, r0 + 18a6: b142 st.w r2, (r1, 0x8) + 18a8: 3203 movi r2, 3 + 18aa: 43e8 lsli r7, r3, 8 + 18ac: b140 st.w r2, (r1, 0x0) + 18ae: 3380 movi r3, 128 + 18b0: 4c58 lsri r2, r4, 24 + 18b2: 6dc8 or r7, r2 + 18b4: 44c8 lsli r6, r4, 8 + 18b6: 3200 movi r2, 0 + 18b8: 4375 lsli r3, r3, 21 + 18ba: 6d88 or r6, r2 + 18bc: 6dcc or r7, r3 + 18be: b1c3 st.w r6, (r1, 0xc) + 18c0: b1e4 st.w r7, (r1, 0x10) + 18c2: 98e2 ld.w r7, (r14, 0x8) + 18c4: 98c1 ld.w r6, (r14, 0x4) + 18c6: 9880 ld.w r4, (r14, 0x0) + 18c8: 1403 addi r14, r14, 12 + 18ca: 783c jmp r15 + 18cc: 3302 movi r3, 2 + 18ce: b160 st.w r3, (r1, 0x0) + 18d0: 07f9 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18d2: 6c93 mov r2, r4 + 18d4: 6c8c or r2, r3 + 18d6: 3a40 cmpnei r2, 0 + 18d8: 0c10 bf 0x18f8 // 18f8 <__unpack_d+0xac> + 18da: 3280 movi r2, 128 + 18dc: 424c lsli r2, r2, 12 + 18de: 688c and r2, r3 + 18e0: 3a40 cmpnei r2, 0 + 18e2: 0c0e bf 0x18fe // 18fe <__unpack_d+0xb2> + 18e4: 3201 movi r2, 1 + 18e6: b140 st.w r2, (r1, 0x0) + 18e8: 4c58 lsri r2, r4, 24 + 18ea: 4368 lsli r3, r3, 8 + 18ec: 6cc8 or r3, r2 + 18ee: 4408 lsli r0, r4, 8 + 18f0: 3b9b bclri r3, 27 + 18f2: b103 st.w r0, (r1, 0xc) + 18f4: b164 st.w r3, (r1, 0x10) + 18f6: 07e6 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18f8: 3304 movi r3, 4 + 18fa: b160 st.w r3, (r1, 0x0) + 18fc: 07e3 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18fe: b140 st.w r2, (r1, 0x0) + 1900: 07f4 br 0x18e8 // 18e8 <__unpack_d+0x9c> + 1902: 0000 bkpt + 1904: fffffc01 .long 0xfffffc01 + 1908: 0fffffff .long 0x0fffffff + 190c: 000007ff .long 0x000007ff + +00001910 <__fpcmp_parts_d>: + 1910: 14c1 push r4 + 1912: 9060 ld.w r3, (r0, 0x0) + 1914: 3b01 cmphsi r3, 2 + 1916: 0c12 bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1918: 9140 ld.w r2, (r1, 0x0) + 191a: 3a01 cmphsi r2, 2 + 191c: 0c0f bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 191e: 3b44 cmpnei r3, 4 + 1920: 0c17 bf 0x194e // 194e <__fpcmp_parts_d+0x3e> + 1922: 3a44 cmpnei r2, 4 + 1924: 0c0f bf 0x1942 // 1942 <__fpcmp_parts_d+0x32> + 1926: 3b42 cmpnei r3, 2 + 1928: 0c0b bf 0x193e // 193e <__fpcmp_parts_d+0x2e> + 192a: 3a42 cmpnei r2, 2 + 192c: 0c13 bf 0x1952 // 1952 <__fpcmp_parts_d+0x42> + 192e: 9061 ld.w r3, (r0, 0x4) + 1930: 9141 ld.w r2, (r1, 0x4) + 1932: 648e cmpne r3, r2 + 1934: 0c14 bf 0x195c // 195c <__fpcmp_parts_d+0x4c> + 1936: 3b40 cmpnei r3, 0 + 1938: 0808 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 193a: 3001 movi r0, 1 + 193c: 1481 pop r4 + 193e: 3a42 cmpnei r2, 2 + 1940: 0c28 bf 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 1942: 9161 ld.w r3, (r1, 0x4) + 1944: 3b40 cmpnei r3, 0 + 1946: 0bfa bt 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1948: 3000 movi r0, 0 + 194a: 2800 subi r0, 1 + 194c: 1481 pop r4 + 194e: 3a44 cmpnei r2, 4 + 1950: 0c22 bf 0x1994 // 1994 <__fpcmp_parts_d+0x84> + 1952: 9061 ld.w r3, (r0, 0x4) + 1954: 3b40 cmpnei r3, 0 + 1956: 0bf9 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1958: 3001 movi r0, 1 + 195a: 07f1 br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 195c: 9082 ld.w r4, (r0, 0x8) + 195e: 9142 ld.w r2, (r1, 0x8) + 1960: 6509 cmplt r2, r4 + 1962: 0bea bt 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1964: 6491 cmplt r4, r2 + 1966: 080d bt 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1968: 9044 ld.w r2, (r0, 0x10) + 196a: 9083 ld.w r4, (r0, 0xc) + 196c: 9103 ld.w r0, (r1, 0xc) + 196e: 9124 ld.w r1, (r1, 0x10) + 1970: 6484 cmphs r1, r2 + 1972: 0fe2 bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1974: 644a cmpne r2, r1 + 1976: 0803 bt 0x197c // 197c <__fpcmp_parts_d+0x6c> + 1978: 6500 cmphs r0, r4 + 197a: 0fde bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 197c: 6448 cmphs r2, r1 + 197e: 0805 bt 0x1988 // 1988 <__fpcmp_parts_d+0x78> + 1980: 3b40 cmpnei r3, 0 + 1982: 0fe3 bf 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1984: 3001 movi r0, 1 + 1986: 07db br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 1988: 6486 cmpne r1, r2 + 198a: 0803 bt 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 198c: 6410 cmphs r4, r0 + 198e: 0ff9 bf 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1990: 3000 movi r0, 0 + 1992: 1481 pop r4 + 1994: 9161 ld.w r3, (r1, 0x4) + 1996: 9041 ld.w r2, (r0, 0x4) + 1998: 5b09 subu r0, r3, r2 + 199a: 1481 pop r4 + +0000199c <__GI_rand>: + 199c: 1065 lrw r3, 0x41c64e6d // 19b0 <__GI_rand+0x14> + 199e: 1046 lrw r2, 0x200000a4 // 19b4 <__GI_rand+0x18> + 19a0: 9220 ld.w r1, (r2, 0x0) + 19a2: 7cc4 mult r3, r1 + 19a4: 1025 lrw r1, 0x3039 // 19b8 <__GI_rand+0x1c> + 19a6: 6c0f mov r0, r3 + 19a8: 6004 addu r0, r1 + 19aa: b200 st.w r0, (r2, 0x0) + 19ac: 4801 lsri r0, r0, 1 + 19ae: 783c jmp r15 + 19b0: 41c64e6d .long 0x41c64e6d + 19b4: 200000a4 .long 0x200000a4 + 19b8: 00003039 .long 0x00003039 + +000019bc <__GI_srand>: + 19bc: 1022 lrw r1, 0x200000a4 // 19c4 <__GI_srand+0x8> + 19be: b100 st.w r0, (r1, 0x0) + 19c0: 783c jmp r15 + 19c2: 0000 .short 0x0000 + 19c4: 200000a4 .long 0x200000a4 + +000019c8 <__memset_fast>: + 19c8: 14c3 push r4-r6 + 19ca: 7444 zextb r1, r1 + 19cc: 3a40 cmpnei r2, 0 + 19ce: 0c1f bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19d0: 6d43 mov r5, r0 + 19d2: 6d03 mov r4, r0 + 19d4: 3603 movi r6, 3 + 19d6: 6918 and r4, r6 + 19d8: 3c40 cmpnei r4, 0 + 19da: 0c1a bf 0x1a0e // 1a0e <__memset_fast+0x46> + 19dc: a520 st.b r1, (r5, 0x0) + 19de: 2a00 subi r2, 1 + 19e0: 3a40 cmpnei r2, 0 + 19e2: 0c15 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19e4: 2500 addi r5, 1 + 19e6: 6d17 mov r4, r5 + 19e8: 3603 movi r6, 3 + 19ea: 6918 and r4, r6 + 19ec: 3c40 cmpnei r4, 0 + 19ee: 0c10 bf 0x1a0e // 1a0e <__memset_fast+0x46> + 19f0: a520 st.b r1, (r5, 0x0) + 19f2: 2a00 subi r2, 1 + 19f4: 3a40 cmpnei r2, 0 + 19f6: 0c0b bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19f8: 2500 addi r5, 1 + 19fa: 6d17 mov r4, r5 + 19fc: 3603 movi r6, 3 + 19fe: 6918 and r4, r6 + 1a00: 3c40 cmpnei r4, 0 + 1a02: 0c06 bf 0x1a0e // 1a0e <__memset_fast+0x46> + 1a04: a520 st.b r1, (r5, 0x0) + 1a06: 2a00 subi r2, 1 + 1a08: 2500 addi r5, 1 + 1a0a: 0402 br 0x1a0e // 1a0e <__memset_fast+0x46> + 1a0c: 1483 pop r4-r6 + 1a0e: 4168 lsli r3, r1, 8 + 1a10: 6c4c or r1, r3 + 1a12: 4170 lsli r3, r1, 16 + 1a14: 6c4c or r1, r3 + 1a16: 3a2f cmplti r2, 16 + 1a18: 0809 bt 0x1a2a // 1a2a <__memset_fast+0x62> + 1a1a: b520 st.w r1, (r5, 0x0) + 1a1c: b521 st.w r1, (r5, 0x4) + 1a1e: b522 st.w r1, (r5, 0x8) + 1a20: b523 st.w r1, (r5, 0xc) + 1a22: 2a0f subi r2, 16 + 1a24: 250f addi r5, 16 + 1a26: 3a2f cmplti r2, 16 + 1a28: 0ff9 bf 0x1a1a // 1a1a <__memset_fast+0x52> + 1a2a: 3a23 cmplti r2, 4 + 1a2c: 0806 bt 0x1a38 // 1a38 <__memset_fast+0x70> + 1a2e: 2a03 subi r2, 4 + 1a30: b520 st.w r1, (r5, 0x0) + 1a32: 2503 addi r5, 4 + 1a34: 3a23 cmplti r2, 4 + 1a36: 0ffc bf 0x1a2e // 1a2e <__memset_fast+0x66> + 1a38: 3a40 cmpnei r2, 0 + 1a3a: 0fe9 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a3c: 2a00 subi r2, 1 + 1a3e: a520 st.b r1, (r5, 0x0) + 1a40: 3a40 cmpnei r2, 0 + 1a42: 0fe5 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a44: 2a00 subi r2, 1 + 1a46: a521 st.b r1, (r5, 0x1) + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0fe1 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a4c: a522 st.b r1, (r5, 0x2) + 1a4e: 1483 pop r4-r6 + +00001a50 <__memcpy_fast>: + 1a50: 14c3 push r4-r6 + 1a52: 6d83 mov r6, r0 + 1a54: 6d07 mov r4, r1 + 1a56: 6d18 or r4, r6 + 1a58: 3303 movi r3, 3 + 1a5a: 690c and r4, r3 + 1a5c: 3c40 cmpnei r4, 0 + 1a5e: 0c0b bf 0x1a74 // 1a74 <__memcpy_fast+0x24> + 1a60: 3a40 cmpnei r2, 0 + 1a62: 0c08 bf 0x1a72 // 1a72 <__memcpy_fast+0x22> + 1a64: 8160 ld.b r3, (r1, 0x0) + 1a66: 2100 addi r1, 1 + 1a68: 2a00 subi r2, 1 + 1a6a: a660 st.b r3, (r6, 0x0) + 1a6c: 2600 addi r6, 1 + 1a6e: 3a40 cmpnei r2, 0 + 1a70: 0bfa bt 0x1a64 // 1a64 <__memcpy_fast+0x14> + 1a72: 1483 pop r4-r6 + 1a74: 3a2f cmplti r2, 16 + 1a76: 080e bt 0x1a92 // 1a92 <__memcpy_fast+0x42> + 1a78: 91a0 ld.w r5, (r1, 0x0) + 1a7a: 9161 ld.w r3, (r1, 0x4) + 1a7c: 9182 ld.w r4, (r1, 0x8) + 1a7e: b6a0 st.w r5, (r6, 0x0) + 1a80: 91a3 ld.w r5, (r1, 0xc) + 1a82: b661 st.w r3, (r6, 0x4) + 1a84: b682 st.w r4, (r6, 0x8) + 1a86: b6a3 st.w r5, (r6, 0xc) + 1a88: 2a0f subi r2, 16 + 1a8a: 210f addi r1, 16 + 1a8c: 260f addi r6, 16 + 1a8e: 3a2f cmplti r2, 16 + 1a90: 0ff4 bf 0x1a78 // 1a78 <__memcpy_fast+0x28> + 1a92: 3a23 cmplti r2, 4 + 1a94: 0808 bt 0x1aa4 // 1aa4 <__memcpy_fast+0x54> + 1a96: 9160 ld.w r3, (r1, 0x0) + 1a98: 2a03 subi r2, 4 + 1a9a: 2103 addi r1, 4 + 1a9c: b660 st.w r3, (r6, 0x0) + 1a9e: 2603 addi r6, 4 + 1aa0: 3a23 cmplti r2, 4 + 1aa2: 0ffa bf 0x1a96 // 1a96 <__memcpy_fast+0x46> + 1aa4: 3a40 cmpnei r2, 0 + 1aa6: 0fe6 bf 0x1a72 // 1a72 <__memcpy_fast+0x22> + 1aa8: 8160 ld.b r3, (r1, 0x0) + 1aaa: 2100 addi r1, 1 + 1aac: 2a00 subi r2, 1 + 1aae: a660 st.b r3, (r6, 0x0) + 1ab0: 2600 addi r6, 1 + 1ab2: 07f9 br 0x1aa4 // 1aa4 <__memcpy_fast+0x54> + +Disassembly of section .text.__main: + +00001ab4 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1ab4: 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 ) { + 1ab6: 1009 lrw r0, 0x20000000 // 1ad8 <__main+0x24> + 1ab8: 1029 lrw r1, 0x8e74 // 1adc <__main+0x28> + 1aba: 6442 cmpne r0, r1 + 1abc: 0c05 bf 0x1ac6 // 1ac6 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1abe: 1049 lrw r2, 0x200000a8 // 1ae0 <__main+0x2c> + 1ac0: 6082 subu r2, r0 + 1ac2: e3ffffc7 bsr 0x1a50 // 1a50 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1ac6: 1048 lrw r2, 0x200007f4 // 1ae4 <__main+0x30> + 1ac8: 1008 lrw r0, 0x200000a8 // 1ae8 <__main+0x34> + 1aca: 640a cmpne r2, r0 + 1acc: 0c05 bf 0x1ad6 // 1ad6 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1ace: 6082 subu r2, r0 + 1ad0: 3100 movi r1, 0 + 1ad2: e3ffff7b bsr 0x19c8 // 19c8 <__memset_fast> + } + + +} + 1ad6: 1490 pop r15 + 1ad8: 20000000 .long 0x20000000 + 1adc: 00008e74 .long 0x00008e74 + 1ae0: 200000a8 .long 0x200000a8 + 1ae4: 200007f4 .long 0x200007f4 + 1ae8: 200000a8 .long 0x200000a8 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001aec : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1aec: 3848 cmpnei r0, 8 + 1aee: 080a bt 0x1b02 // 1b02 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1af0: 107a lrw r3, 0x2000004c // 1b58 + 1af2: 32ff movi r2, 255 + 1af4: 9320 ld.w r1, (r3, 0x0) + 1af6: 9160 ld.w r3, (r1, 0x0) + 1af8: 424c lsli r2, r2, 12 + 1afa: 68c9 andn r3, r2 + 1afc: 3bae bseti r3, 14 + 1afe: 3bb2 bseti r3, 18 + 1b00: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1b02: 1077 lrw r3, 0x2000005c // 1b5c + 1b04: 9360 ld.w r3, (r3, 0x0) + 1b06: 9341 ld.w r2, (r3, 0x4) + 1b08: 6c80 or r2, r0 + 1b0a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1b0c: 9343 ld.w r2, (r3, 0xc) + 1b0e: 6880 and r2, r0 + 1b10: 3a40 cmpnei r2, 0 + 1b12: 0ffd bf 0x1b0c // 1b0c + switch(ENDIS_X) + 1b14: 3842 cmpnei r0, 2 + 1b16: 0807 bt 0x1b24 // 1b24 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1b18: 3102 movi r1, 2 + 1b1a: 9344 ld.w r2, (r3, 0x10) + 1b1c: 6884 and r2, r1 + 1b1e: 3a40 cmpnei r2, 0 + 1b20: 0ffd bf 0x1b1a // 1b1a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1b22: 783c jmp r15 + switch(ENDIS_X) + 1b24: 3802 cmphsi r0, 3 + 1b26: 0809 bt 0x1b38 // 1b38 + 1b28: 3841 cmpnei r0, 1 + 1b2a: 0bfc bt 0x1b22 // 1b22 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1b2c: 3101 movi r1, 1 + 1b2e: 9344 ld.w r2, (r3, 0x10) + 1b30: 6884 and r2, r1 + 1b32: 3a40 cmpnei r2, 0 + 1b34: 0ffd bf 0x1b2e // 1b2e + 1b36: 07f6 br 0x1b22 // 1b22 + switch(ENDIS_X) + 1b38: 3848 cmpnei r0, 8 + 1b3a: 0807 bt 0x1b48 // 1b48 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1b3c: 3108 movi r1, 8 + 1b3e: 9344 ld.w r2, (r3, 0x10) + 1b40: 6884 and r2, r1 + 1b42: 3a40 cmpnei r2, 0 + 1b44: 0ffd bf 0x1b3e // 1b3e + 1b46: 07ee br 0x1b22 // 1b22 + switch(ENDIS_X) + 1b48: 3850 cmpnei r0, 16 + 1b4a: 0bec bt 0x1b22 // 1b22 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1b4c: 3110 movi r1, 16 + 1b4e: 9344 ld.w r2, (r3, 0x10) + 1b50: 6884 and r2, r1 + 1b52: 3a40 cmpnei r2, 0 + 1b54: 0ffd bf 0x1b4e // 1b4e + 1b56: 07e6 br 0x1b22 // 1b22 + 1b58: 2000004c .long 0x2000004c + 1b5c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001b60 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1b60: 106c lrw r3, 0x2000005c // 1b90 + 1b62: 104d lrw r2, 0xffff // 1b94 + 1b64: 9360 ld.w r3, (r3, 0x0) + 1b66: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1b68: 104c lrw r2, 0xffffff // 1b98 + 1b6a: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1b6c: 104c lrw r2, 0xd22d0000 // 1b9c + 1b6e: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1b70: 104c lrw r2, 0x70ff3bff // 1ba0 + 1b72: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1b74: 320a movi r2, 10 + 1b76: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b78: 102b lrw r1, 0x70c // 1ba4 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1b7a: 237f addi r3, 128 + 1b7c: 3200 movi r2, 0 + 1b7e: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1b80: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b82: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1b84: 1029 lrw r1, 0x3fe // 1ba8 + 1b86: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1b88: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1b8a: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1b8c: b35f st.w r2, (r3, 0x7c) +} + 1b8e: 783c jmp r15 + 1b90: 2000005c .long 0x2000005c + 1b94: 0000ffff .long 0x0000ffff + 1b98: 00ffffff .long 0x00ffffff + 1b9c: d22d0000 .long 0xd22d0000 + 1ba0: 70ff3bff .long 0x70ff3bff + 1ba4: 0000070c .long 0x0000070c + 1ba8: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001bac : +{ + 1bac: 14d0 push r15 + if (NewState != DISABLE) + 1bae: 3840 cmpnei r0, 0 + 1bb0: 0c05 bf 0x1bba // 1bba + 1bb2: 6c07 mov r0, r1 + 1bb4: e3ffff9c bsr 0x1aec // 1aec +} + 1bb8: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1bba: 1068 lrw r3, 0x2000005c // 1bd8 + 1bbc: 9360 ld.w r3, (r3, 0x0) + 1bbe: 9342 ld.w r2, (r3, 0x8) + 1bc0: 6c84 or r2, r1 + 1bc2: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1bc4: 9343 ld.w r2, (r3, 0xc) + 1bc6: 6884 and r2, r1 + 1bc8: 3a40 cmpnei r2, 0 + 1bca: 0bfd bt 0x1bc4 // 1bc4 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1bcc: 237f addi r3, 128 + 1bce: 9301 ld.w r0, (r3, 0x4) + 1bd0: 6c40 or r1, r0 + 1bd2: b321 st.w r1, (r3, 0x4) +} + 1bd4: 07f2 br 0x1bb8 // 1bb8 + 1bd6: 0000 bkpt + 1bd8: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001bdc : +//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 ) +{ + 1bdc: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1bde: 3b48 cmpnei r3, 8 + 1be0: 0828 bt 0x1c30 // 1c30 + { + IFC->CEDR=0X01; //CLKEN + 1be2: 109d lrw r4, 0x20000060 // 1c54 + 1be4: 3501 movi r5, 1 + 1be6: 9480 ld.w r4, (r4, 0x0) + 1be8: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1bea: 3504 movi r5, 4 + 1bec: 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)) + 1bee: 5b83 subi r4, r3, 1 + 1bf0: 3c01 cmphsi r4, 2 + 1bf2: 0c2b bf 0x1c48 // 1c48 + { + 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)) + 1bf4: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1bf6: 3c04 cmphsi r4, 5 + 1bf8: 0c03 bf 0x1bfe // 1bfe + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1bfa: 3b4b cmpnei r3, 11 + 1bfc: 0807 bt 0x1c0a // 1c0a + { + IFC->CEDR=0X01; //CLKEN + 1bfe: 1076 lrw r3, 0x20000060 // 1c54 + 1c00: 3401 movi r4, 1 + 1c02: 9360 ld.w r3, (r3, 0x0) + 1c04: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1c06: 3400 movi r4, 0 + 1c08: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c0a: 1094 lrw r4, 0xd22d0000 // 1c58 + 1c0c: 6c10 or r0, r4 + 1c0e: 1074 lrw r3, 0x2000005c // 1c5c + 1c10: 6c40 or r1, r0 + 1c12: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c14: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c16: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c18: 4001 lsli r0, r0, 1 + 1c1a: 9324 ld.w r1, (r3, 0x10) + 1c1c: 6840 and r1, r0 + 1c1e: 3940 cmpnei r1, 0 + 1c20: 0ffd bf 0x1c1a // 1c1a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1c22: 1030 lrw r1, 0xc33c0000 // 1c60 + 1c24: 6c48 or r1, r2 + 1c26: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1c28: 9328 ld.w r1, (r3, 0x20) + 1c2a: 644a cmpne r2, r1 + 1c2c: 0bfe bt 0x1c28 // 1c28 +} + 1c2e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1c30: 3b40 cmpnei r3, 0 + 1c32: 0c03 bf 0x1c38 // 1c38 + 1c34: 3b49 cmpnei r3, 9 + 1c36: 0807 bt 0x1c44 // 1c44 + IFC->CEDR=0X01; //CLKEN + 1c38: 1087 lrw r4, 0x20000060 // 1c54 + 1c3a: 3501 movi r5, 1 + 1c3c: 9480 ld.w r4, (r4, 0x0) + 1c3e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1c40: 3502 movi r5, 2 + 1c42: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1c44: 3b4a cmpnei r3, 10 + 1c46: 0bd4 bt 0x1bee // 1bee + IFC->CEDR=0X01; //CLKEN + 1c48: 1083 lrw r4, 0x20000060 // 1c54 + 1c4a: 3501 movi r5, 1 + 1c4c: 9480 ld.w r4, (r4, 0x0) + 1c4e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1c50: b4a5 st.w r5, (r4, 0x14) + 1c52: 07d1 br 0x1bf4 // 1bf4 + 1c54: 20000060 .long 0x20000060 + 1c58: d22d0000 .long 0xd22d0000 + 1c5c: 2000005c .long 0x2000005c + 1c60: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001c64 : +//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) +{ + 1c64: 14d1 push r4, r15 + 1c66: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1c68: 3110 movi r1, 16 + 1c6a: 3000 movi r0, 0 + 1c6c: e3ffffa0 bsr 0x1bac // 1bac + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1c70: 1066 lrw r3, 0x2000005c // 1c88 + 1c72: 9360 ld.w r3, (r3, 0x0) + 1c74: 9319 ld.w r0, (r3, 0x64) + 1c76: 3884 bclri r0, 4 + 1c78: 3885 bclri r0, 5 + 1c7a: 6c10 or r0, r4 + 1c7c: b319 st.w r0, (r3, 0x64) + 1c7e: 3010 movi r0, 16 + 1c80: e3ffff36 bsr 0x1aec // 1aec + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1c84: 1491 pop r4, r15 + 1c86: 0000 bkpt + 1c88: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001c8c : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1c8c: 106c lrw r3, 0x2000005c // 1cbc + if(NewState != DISABLE) + 1c8e: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c90: 9360 ld.w r3, (r3, 0x0) + 1c92: 237f addi r3, 128 + if(NewState != DISABLE) + 1c94: 0c0a bf 0x1ca8 // 1ca8 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c96: 104b lrw r2, 0x78870000 // 1cc0 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c98: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c9a: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c9c: 4125 lsli r1, r1, 5 + 1c9e: 934d ld.w r2, (r3, 0x34) + 1ca0: 6884 and r2, r1 + 1ca2: 3a40 cmpnei r2, 0 + 1ca4: 0ffd bf 0x1c9e // 1c9e + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1ca6: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1ca8: 1047 lrw r2, 0x788755aa // 1cc4 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1caa: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1cac: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1cae: 4125 lsli r1, r1, 5 + 1cb0: 934d ld.w r2, (r3, 0x34) + 1cb2: 6884 and r2, r1 + 1cb4: 3a40 cmpnei r2, 0 + 1cb6: 0bfd bt 0x1cb0 // 1cb0 + 1cb8: 07f7 br 0x1ca6 // 1ca6 + 1cba: 0000 bkpt + 1cbc: 2000005c .long 0x2000005c + 1cc0: 78870000 .long 0x78870000 + 1cc4: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001cc8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1cc8: 1064 lrw r3, 0x2000005c // 1cd8 + 1cca: 32b4 movi r2, 180 + 1ccc: 9360 ld.w r3, (r3, 0x0) + 1cce: 237f addi r3, 128 + 1cd0: 4257 lsli r2, r2, 23 + 1cd2: b34e st.w r2, (r3, 0x38) +} + 1cd4: 783c jmp r15 + 1cd6: 0000 bkpt + 1cd8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001cdc : +//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; + 1cdc: 1044 lrw r2, 0x87780000 // 1cec + 1cde: 1065 lrw r3, 0x2000005c // 1cf0 + 1ce0: 6c48 or r1, r2 + 1ce2: 9360 ld.w r3, (r3, 0x0) + 1ce4: 6c04 or r0, r1 + 1ce6: 237f addi r3, 128 + 1ce8: b30d st.w r0, (r3, 0x34) +} + 1cea: 783c jmp r15 + 1cec: 87780000 .long 0x87780000 + 1cf0: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001cf4 : +//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) +{ + 1cf4: 14c3 push r4-r6 + 1cf6: 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; + 1cf8: 10c5 lrw r6, 0xb44b0000 // 1d0c + 1cfa: 6d18 or r4, r6 + 1cfc: 6cd0 or r3, r4 + 1cfe: 6c8c or r2, r3 + 1d00: 6c48 or r1, r2 + 1d02: 10a4 lrw r5, 0x2000005c // 1d10 + 1d04: 6c04 or r0, r1 + 1d06: 95a0 ld.w r5, (r5, 0x0) + 1d08: b513 st.w r0, (r5, 0x4c) +} + 1d0a: 1483 pop r4-r6 + 1d0c: b44b0000 .long 0xb44b0000 + 1d10: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001d14 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1d14: 1066 lrw r3, 0x2000005c // 1d2c + 1d16: 3180 movi r1, 128 + 1d18: 9360 ld.w r3, (r3, 0x0) + 1d1a: 3280 movi r2, 128 + 1d1c: 604c addu r1, r3 + 1d1e: 4244 lsli r2, r2, 4 + 1d20: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1d22: 935d ld.w r2, (r3, 0x74) + 1d24: 3aab bseti r2, 11 + 1d26: b35d st.w r2, (r3, 0x74) +} + 1d28: 783c jmp r15 + 1d2a: 0000 bkpt + 1d2c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001d30 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1d30: 1066 lrw r3, 0x2000005c // 1d48 + 1d32: 3180 movi r1, 128 + 1d34: 9360 ld.w r3, (r3, 0x0) + 1d36: 3280 movi r2, 128 + 1d38: 604c addu r1, r3 + 1d3a: 4241 lsli r2, r2, 1 + 1d3c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1d3e: 935d ld.w r2, (r3, 0x74) + 1d40: 3aa8 bseti r2, 8 + 1d42: b35d st.w r2, (r3, 0x74) +} + 1d44: 783c jmp r15 + 1d46: 0000 bkpt + 1d48: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001d4c : +//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) + 1d4c: 3a40 cmpnei r2, 0 + 1d4e: 0c04 bf 0x1d56 // 1d56 + 1d50: 3a41 cmpnei r2, 1 + 1d52: 0c0e bf 0x1d6e // 1d6e + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1d54: 783c jmp r15 + 1d56: 106d lrw r3, 0x2000005c // 1d88 + if(NewState != DISABLE) + 1d58: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1d5a: 9360 ld.w r3, (r3, 0x0) + 1d5c: 237f addi r3, 128 + 1d5e: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 1d60: 0c04 bf 0x1d68 // 1d68 + SYSCON->EXIRT |=EXIPIN; + 1d62: 6c48 or r1, r2 + 1d64: b325 st.w r1, (r3, 0x14) + 1d66: 07f7 br 0x1d54 // 1d54 + SYSCON->EXIRT &=~EXIPIN; + 1d68: 6885 andn r2, r1 + 1d6a: b345 st.w r2, (r3, 0x14) + 1d6c: 07f4 br 0x1d54 // 1d54 + 1d6e: 1067 lrw r3, 0x2000005c // 1d88 + if(NewState != DISABLE) + 1d70: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 1d72: 9360 ld.w r3, (r3, 0x0) + 1d74: 237f addi r3, 128 + 1d76: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 1d78: 0c04 bf 0x1d80 // 1d80 + SYSCON->EXIFT |=EXIPIN; + 1d7a: 6c48 or r1, r2 + 1d7c: b326 st.w r1, (r3, 0x18) + 1d7e: 07eb br 0x1d54 // 1d54 + SYSCON->EXIFT &=~EXIPIN; + 1d80: 6885 andn r2, r1 + 1d82: b346 st.w r2, (r3, 0x18) +} + 1d84: 07e8 br 0x1d54 // 1d54 + 1d86: 0000 bkpt + 1d88: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00001d8c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d8c: 106b lrw r3, 0x2000005c // 1db8 + 1d8e: 104c lrw r2, 0x3fff // 1dbc + 1d90: 9360 ld.w r3, (r3, 0x0) + 1d92: 237f addi r3, 128 + if(NewState != DISABLE) + 1d94: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d96: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 1d98: 0c0c bf 0x1db0 // 1db0 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 1d9a: 9347 ld.w r2, (r3, 0x1c) + 1d9c: 6c84 or r2, r1 + 1d9e: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 1da0: 9349 ld.w r2, (r3, 0x24) + 1da2: 6884 and r2, r1 + 1da4: 3a40 cmpnei r2, 0 + 1da6: 0ffd bf 0x1da0 // 1da0 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 1da8: 934b ld.w r2, (r3, 0x2c) + 1daa: 6c48 or r1, r2 + 1dac: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 1dae: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 1db0: 9348 ld.w r2, (r3, 0x20) + 1db2: 6c48 or r1, r2 + 1db4: b328 st.w r1, (r3, 0x20) +} + 1db6: 07fc br 0x1dae // 1dae + 1db8: 2000005c .long 0x2000005c + 1dbc: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00001dc0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 1dc0: b02b st.w r1, (r0, 0x2c) +} + 1dc2: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00001dc4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 1dc4: 3380 movi r3, 128 + 1dc6: 4370 lsli r3, r3, 16 + 1dc8: 1042 lrw r2, 0xe000e100 // 1dd0 + 1dca: b260 st.w r3, (r2, 0x0) +} + 1dcc: 783c jmp r15 + 1dce: 0000 bkpt + 1dd0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00001dd4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1dd4: 3202 movi r2, 2 + 1dd6: 1062 lrw r3, 0xe000e100 // 1ddc + 1dd8: b340 st.w r2, (r3, 0x0) +} + 1dda: 783c jmp r15 + 1ddc: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001de0 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1de0: 1066 lrw r3, 0xe000e400 // 1df8 + 1de2: 1047 lrw r2, 0xc0c0c0c0 // 1dfc + 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 + 1de4: 1027 lrw r1, 0xc0c000c0 // 1e00 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1de6: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1de8: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1dea: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1dec: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1dee: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1df0: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1df2: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1df4: b347 st.w r2, (r3, 0x1c) +} + 1df6: 783c jmp r15 + 1df8: e000e400 .long 0xe000e400 + 1dfc: c0c0c0c0 .long 0xc0c0c0c0 + 1e00: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001e04 : +//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) +{ + 1e04: 14c1 push r4 + 1e06: 4862 lsri r3, r0, 2 + 1e08: 4342 lsli r2, r3, 2 + 1e0a: 106a lrw r3, 0x20000064 // 1e30 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1e0c: 3403 movi r4, 3 + 1e0e: 9360 ld.w r3, (r3, 0x0) + 1e10: 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)); + 1e22: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1e26: 7040 lsl r1, r0 + 1e28: 6c48 or r1, r2 + 1e2a: b320 st.w r1, (r3, 0x0) +} + 1e2c: 1481 pop r4 + 1e2e: 0000 bkpt + 1e30: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00001e34 : +//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) +{ + 1e34: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e36: 3907 cmphsi r1, 8 +{ + 1e38: 6d03 mov r4, r0 + if(PinNum<8) + 1e3a: 0830 bt 0x1e9a // 1e9a + { + switch (PinNum) + 1e3c: 5903 subi r0, r1, 1 + 1e3e: 3806 cmphsi r0, 7 + 1e40: 0827 bt 0x1e8e // 1e8e + 1e42: e3fff75d bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1e46: 1004 .short 0x1004 + 1e48: 1d1a1613 .long 0x1d1a1613 + 1e4c: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e4e: 3300 movi r3, 0 + 1e50: 3104 movi r1, 4 + 1e52: 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) + 1e54: 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< + 1e6a: 07f5 br 0x1e54 // 1e54 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e6c: 310c movi r1, 12 + 1e6e: 1166 lrw r3, 0xffff0fff // 1f04 + 1e70: 07f2 br 0x1e54 // 1e54 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e72: 3110 movi r1, 16 + 1e74: 1165 lrw r3, 0xfff10000 // 1f08 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e76: 2b00 subi r3, 1 + 1e78: 07ee br 0x1e54 // 1e54 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e7a: 3114 movi r1, 20 + 1e7c: 1164 lrw r3, 0xff100000 // 1f0c + 1e7e: 07fc br 0x1e76 // 1e76 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e80: 33f1 movi r3, 241 + 1e82: 3118 movi r1, 24 + 1e84: 4378 lsli r3, r3, 24 + 1e86: 07f8 br 0x1e76 // 1e76 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e88: 311c movi r1, 28 + 1e8a: 1162 lrw r3, 0xfffffff // 1f10 + 1e8c: 07e4 br 0x1e54 // 1e54 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1e8e: 3300 movi r3, 0 + 1e90: 3100 movi r1, 0 + 1e92: 2b0f subi r3, 16 + 1e94: 07e0 br 0x1e54 // 1e54 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1e9a: 390f cmphsi r1, 16 + 1e9c: 0be4 bt 0x1e64 // 1e64 + switch (PinNum) + 1e9e: 2908 subi r1, 9 + 1ea0: 3906 cmphsi r1, 7 + 1ea2: 6c07 mov r0, r1 + 1ea4: 0827 bt 0x1ef2 // 1ef2 + 1ea6: e3fff72b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1eaa: 1004 .short 0x1004 + 1eac: 1d1a1613 .long 0x1d1a1613 + 1eb0: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1eb2: 3300 movi r3, 0 + 1eb4: 3104 movi r1, 4 + 1eb6: 2bf0 subi r3, 241 + if (Dir) + 1eb8: 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; + 1eca: 3108 movi r1, 8 + 1ecc: 106d lrw r3, 0xfffff0ff // 1f00 + 1ece: 07f5 br 0x1eb8 // 1eb8 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1ed0: 310c movi r1, 12 + 1ed2: 106d lrw r3, 0xffff0fff // 1f04 + 1ed4: 07f2 br 0x1eb8 // 1eb8 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ed6: 3110 movi r1, 16 + 1ed8: 106c lrw r3, 0xfff10000 // 1f08 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1eda: 2b00 subi r3, 1 + 1edc: 07ee br 0x1eb8 // 1eb8 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1ede: 3114 movi r1, 20 + 1ee0: 106b lrw r3, 0xff100000 // 1f0c + 1ee2: 07fc br 0x1eda // 1eda + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ee4: 33f1 movi r3, 241 + 1ee6: 3118 movi r1, 24 + 1ee8: 4378 lsli r3, r3, 24 + 1eea: 07f8 br 0x1eda // 1eda + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1eec: 311c movi r1, 28 + 1eee: 1069 lrw r3, 0xfffffff // 1f10 + 1ef0: 07e4 br 0x1eb8 // 1eb8 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1ef2: 3300 movi r3, 0 + 1ef4: 3100 movi r1, 0 + 1ef6: 2b0f subi r3, 16 + 1ef8: 07e0 br 0x1eb8 // 1eb8 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1efe: 0000 bkpt + 1f00: fffff0ff .long 0xfffff0ff + 1f04: ffff0fff .long 0xffff0fff + 1f08: fff10000 .long 0xfff10000 + 1f0c: ff100000 .long 0xff100000 + 1f10: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f14 : +//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)); + 1f14: 4121 lsli r1, r1, 1 + 1f16: 3203 movi r2, 3 + 1f18: 9068 ld.w r3, (r0, 0x20) + 1f1a: 7084 lsl r2, r1 + 1f1c: 68c9 andn r3, r2 + 1f1e: 3201 movi r2, 1 + 1f20: 7084 lsl r2, r1 + 1f22: 6cc8 or r3, r2 + 1f24: b068 st.w r3, (r0, 0x20) +} + 1f26: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f28 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f28: 4121 lsli r1, r1, 1 + 1f2a: 3301 movi r3, 1 + 1f2c: 9049 ld.w r2, (r0, 0x24) + 1f2e: 70c4 lsl r3, r1 + 1f30: 6cc8 or r3, r2 + 1f32: b069 st.w r3, (r0, 0x24) +} + 1f34: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f38 : +//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) +{ + 1f38: 14c1 push r4 + 1f3a: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f3c: 3a0f cmphsi r2, 16 + 1f3e: 084f bt 0x1fdc // 1fdc + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f40: 6ccb mov r3, r2 + 1f42: 3b83 bclri r3, 3 + 1f44: 3b40 cmpnei r3, 0 + 1f46: 0813 bt 0x1f6c // 1f6c + { + R_data_temp=0xfffffff0; + 1f48: 2b0f subi r3, 16 + 1f4a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f4c: 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) + 1f4e: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f50: dc6e0003 st.b r3, (r14, 0x3) + 1f54: 1176 lrw r3, 0x20000044 // 202c + if(Selete_EXI_x<8) + 1f56: 0c38 bf 0x1fc6 // 1fc6 + { + 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)) + 1f6c: 3b41 cmpnei r3, 1 + 1f6e: 0806 bt 0x1f7a // 1f7a + R_data_temp=0xffffff0f; + 1f70: 3300 movi r3, 0 + 1f72: 2bf0 subi r3, 241 + 1f74: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f76: 3304 movi r3, 4 + 1f78: 07eb br 0x1f4e // 1f4e + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f7a: 3b42 cmpnei r3, 2 + 1f7c: 0805 bt 0x1f86 // 1f86 + R_data_temp=0xfffff0ff; + 1f7e: 116d lrw r3, 0xfffff0ff // 2030 + 1f80: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f82: 3308 movi r3, 8 + 1f84: 07e5 br 0x1f4e // 1f4e + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f86: 3b43 cmpnei r3, 3 + 1f88: 0805 bt 0x1f92 // 1f92 + R_data_temp=0xffff0fff; + 1f8a: 116b lrw r3, 0xffff0fff // 2034 + 1f8c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f8e: 330c movi r3, 12 + 1f90: 07df br 0x1f4e // 1f4e + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f92: 3b44 cmpnei r3, 4 + 1f94: 0806 bt 0x1fa0 // 1fa0 + R_data_temp=0xfff0ffff; + 1f96: 1169 lrw r3, 0xfff10000 // 2038 + 1f98: 2b00 subi r3, 1 + 1f9a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1f9c: 3310 movi r3, 16 + 1f9e: 07d8 br 0x1f4e // 1f4e + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1fa0: 3b45 cmpnei r3, 5 + 1fa2: 0806 bt 0x1fae // 1fae + R_data_temp=0xff0fffff; + 1fa4: 1166 lrw r3, 0xff100000 // 203c + 1fa6: 2b00 subi r3, 1 + 1fa8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1faa: 3314 movi r3, 20 + 1fac: 07d1 br 0x1f4e // 1f4e + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1fae: 3b46 cmpnei r3, 6 + 1fb0: 0807 bt 0x1fbe // 1fbe + R_data_temp=0xf0ffffff; + 1fb2: 33f1 movi r3, 241 + 1fb4: 4378 lsli r3, r3, 24 + 1fb6: 2b00 subi r3, 1 + 1fb8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1fba: 3318 movi r3, 24 + 1fbc: 07c9 br 0x1f4e // 1f4e + R_data_temp=0x0fffffff; + 1fbe: 1161 lrw r3, 0xfffffff // 2040 + 1fc0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1fc2: 331c movi r3, 28 + 1fc4: 07c5 br 0x1f4e // 1f4e + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fd8: 1402 addi r14, r14, 8 + 1fda: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fdc: 3a13 cmphsi r2, 20 + 1fde: 0bfd bt 0x1fd8 // 1fd8 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fe0: 3840 cmpnei r0, 0 + 1fe2: 0814 bt 0x200a // 200a + 1fe4: 3300 movi r3, 0 + 1fe6: 2b0f subi r3, 16 + 1fe8: 60c8 addu r3, r2 + 1fea: 3b01 cmphsi r3, 2 + 1fec: 0bf6 bt 0x1fd8 // 1fd8 + if(Selete_EXI_x==16) + 1fee: 3a50 cmpnei r2, 16 + 1ff0: 106f lrw r3, 0x20000044 // 202c + 1ff2: 0806 bt 0x1ffe // 1ffe + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 1ff4: 9340 ld.w r2, (r3, 0x0) + 1ff6: 9262 ld.w r3, (r2, 0x8) + 1ff8: 6c4c or r1, r3 + 1ffa: b222 st.w r1, (r2, 0x8) + 1ffc: 07ee br 0x1fd8 // 1fd8 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 1ffe: 9360 ld.w r3, (r3, 0x0) + 2000: 9342 ld.w r2, (r3, 0x8) + 2002: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2004: 6c48 or r1, r2 + 2006: b322 st.w r1, (r3, 0x8) +} + 2008: 07e8 br 0x1fd8 // 1fd8 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 200a: 3842 cmpnei r0, 2 + 200c: 0be6 bt 0x1fd8 // 1fd8 + 200e: 3300 movi r3, 0 + 2010: 2b11 subi r3, 18 + 2012: 60c8 addu r3, r2 + 2014: 3b01 cmphsi r3, 2 + 2016: 0be1 bt 0x1fd8 // 1fd8 + 2018: 1065 lrw r3, 0x20000044 // 202c + if(Selete_EXI_x==18) + 201a: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 201c: 9360 ld.w r3, (r3, 0x0) + 201e: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 2020: 0803 bt 0x2026 // 2026 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2022: 4128 lsli r1, r1, 8 + 2024: 07f0 br 0x2004 // 2004 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2026: 412c lsli r1, r1, 12 + 2028: 07ee br 0x2004 // 2004 + 202a: 0000 bkpt + 202c: 20000044 .long 0x20000044 + 2030: fffff0ff .long 0xfffff0ff + 2034: ffff0fff .long 0xffff0fff + 2038: fff10000 .long 0xfff10000 + 203c: ff100000 .long 0xff100000 + 2040: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00002044 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2044: 14d0 push r15 + switch (EXI_IO) + 2046: 380f cmphsi r0, 16 + 2048: 0812 bt 0x206c // 206c + 204a: 117d lrw r3, 0x2000004c // 213c + 204c: e3fff658 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2050: 1d150f08 .long 0x1d150f08 + 2054: 39322b24 .long 0x39322b24 + 2058: 544c463f .long 0x544c463f + 205c: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2060: 9340 ld.w r2, (r3, 0x0) + 2062: 9260 ld.w r3, (r2, 0x0) + 2064: 310f movi r1, 15 + 2066: 68c5 andn r3, r1 + 2068: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 206a: 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; + } +} + 206c: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 206e: 9340 ld.w r2, (r3, 0x0) + 2070: 9260 ld.w r3, (r2, 0x0) + 2072: 31f0 movi r1, 240 + 2074: 68c5 andn r3, r1 + 2076: 3ba4 bseti r3, 4 + 2078: 07f9 br 0x206a // 206a + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 207a: 9320 ld.w r1, (r3, 0x0) + 207c: 32f0 movi r2, 240 + 207e: 9160 ld.w r3, (r1, 0x0) + 2080: 4244 lsli r2, r2, 4 + 2082: 68c9 andn r3, r2 + 2084: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 2086: b160 st.w r3, (r1, 0x0) + 2088: 07f2 br 0x206c // 206c + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 208a: 9320 ld.w r1, (r3, 0x0) + 208c: 32f0 movi r2, 240 + 208e: 9160 ld.w r3, (r1, 0x0) + 2090: 4248 lsli r2, r2, 8 + 2092: 68c9 andn r3, r2 + 2094: 3bac bseti r3, 12 + 2096: 07f8 br 0x2086 // 2086 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 2098: 9320 ld.w r1, (r3, 0x0) + 209a: 32f0 movi r2, 240 + 209c: 9160 ld.w r3, (r1, 0x0) + 209e: 424c lsli r2, r2, 12 + 20a0: 68c9 andn r3, r2 + 20a2: 3bb0 bseti r3, 16 + 20a4: 07f1 br 0x2086 // 2086 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 20a6: 9320 ld.w r1, (r3, 0x0) + 20a8: 32f0 movi r2, 240 + 20aa: 9160 ld.w r3, (r1, 0x0) + 20ac: 4250 lsli r2, r2, 16 + 20ae: 68c9 andn r3, r2 + 20b0: 3bb4 bseti r3, 20 + 20b2: 07ea br 0x2086 // 2086 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 20b4: 9320 ld.w r1, (r3, 0x0) + 20b6: 32f0 movi r2, 240 + 20b8: 9160 ld.w r3, (r1, 0x0) + 20ba: 4254 lsli r2, r2, 20 + 20bc: 68c9 andn r3, r2 + 20be: 3bb8 bseti r3, 24 + 20c0: 07e3 br 0x2086 // 2086 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 20c2: 9340 ld.w r2, (r3, 0x0) + 20c4: 9260 ld.w r3, (r2, 0x0) + 20c6: 4364 lsli r3, r3, 4 + 20c8: 4b64 lsri r3, r3, 4 + 20ca: 3bbc bseti r3, 28 + 20cc: 07cf br 0x206a // 206a + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 20ce: 9340 ld.w r2, (r3, 0x0) + 20d0: 9261 ld.w r3, (r2, 0x4) + 20d2: 310f movi r1, 15 + 20d4: 68c5 andn r3, r1 + 20d6: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 20d8: b261 st.w r3, (r2, 0x4) +} + 20da: 07c9 br 0x206c // 206c + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 20dc: 9340 ld.w r2, (r3, 0x0) + 20de: 9261 ld.w r3, (r2, 0x4) + 20e0: 31f0 movi r1, 240 + 20e2: 68c5 andn r3, r1 + 20e4: 3ba4 bseti r3, 4 + 20e6: 07f9 br 0x20d8 // 20d8 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 20e8: 9320 ld.w r1, (r3, 0x0) + 20ea: 32f0 movi r2, 240 + 20ec: 9161 ld.w r3, (r1, 0x4) + 20ee: 4244 lsli r2, r2, 4 + 20f0: 68c9 andn r3, r2 + 20f2: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 20f4: b161 st.w r3, (r1, 0x4) + 20f6: 07bb br 0x206c // 206c + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 20f8: 9320 ld.w r1, (r3, 0x0) + 20fa: 32f0 movi r2, 240 + 20fc: 9161 ld.w r3, (r1, 0x4) + 20fe: 4248 lsli r2, r2, 8 + 2100: 68c9 andn r3, r2 + 2102: 3bac bseti r3, 12 + 2104: 07f8 br 0x20f4 // 20f4 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 2106: 9320 ld.w r1, (r3, 0x0) + 2108: 32f0 movi r2, 240 + 210a: 9161 ld.w r3, (r1, 0x4) + 210c: 424c lsli r2, r2, 12 + 210e: 68c9 andn r3, r2 + 2110: 3bb0 bseti r3, 16 + 2112: 07f1 br 0x20f4 // 20f4 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 2114: 9320 ld.w r1, (r3, 0x0) + 2116: 32f0 movi r2, 240 + 2118: 9161 ld.w r3, (r1, 0x4) + 211a: 4250 lsli r2, r2, 16 + 211c: 68c9 andn r3, r2 + 211e: 3bb4 bseti r3, 20 + 2120: 07ea br 0x20f4 // 20f4 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2122: 9320 ld.w r1, (r3, 0x0) + 2124: 32f0 movi r2, 240 + 2126: 9161 ld.w r3, (r1, 0x4) + 2128: 4254 lsli r2, r2, 20 + 212a: 68c9 andn r3, r2 + 212c: 3bb8 bseti r3, 24 + 212e: 07e3 br 0x20f4 // 20f4 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2130: 9340 ld.w r2, (r3, 0x0) + 2132: 9261 ld.w r3, (r2, 0x4) + 2134: 4364 lsli r3, r3, 4 + 2136: 4b64 lsri r3, r3, 4 + 2138: 3bbc bseti r3, 28 + 213a: 07cf br 0x20d8 // 20d8 + 213c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +00002140 : +//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; + 2150: 9045 ld.w r2, (r0, 0x14) + 2152: 3301 movi r3, 1 + 2154: 7085 lsr r2, r1 + 2156: 688c and r2, r3 + { + if (dat==1) + 2158: 3a40 cmpnei r2, 0 + 215a: 70c4 lsl r3, r1 + 215c: 0c03 bf 0x2162 // 2162 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.LPT_Soft_Reset: + +00002168 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 2168: 1064 lrw r3, 0x20000014 // 2178 + 216a: 9340 ld.w r2, (r3, 0x0) + 216c: 9261 ld.w r3, (r2, 0x4) + 216e: 3bac bseti r3, 12 + 2170: 3bae bseti r3, 14 + 2172: b261 st.w r3, (r2, 0x4) +} + 2174: 783c jmp r15 + 2176: 0000 bkpt + 2178: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +0000217c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 217c: 1063 lrw r3, 0x20000010 // 2188 + 217e: 9360 ld.w r3, (r3, 0x0) + 2180: 9340 ld.w r2, (r3, 0x0) + 2182: 6c08 or r0, r2 + 2184: b300 st.w r0, (r3, 0x0) +} + 2186: 783c jmp r15 + 2188: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +0000218c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 218c: 3300 movi r3, 0 + 218e: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 2190: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 2192: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2194: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2196: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2198: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 219a: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 219c: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 219e: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 21a0: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 21a2: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 21a4: b06d st.w r3, (r0, 0x34) +} + 21a6: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000021a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 21a8: 9060 ld.w r3, (r0, 0x0) + 21aa: 3ba0 bseti r3, 0 + 21ac: b060 st.w r3, (r0, 0x0) +} + 21ae: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000021b0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 21b0: 9060 ld.w r3, (r0, 0x0) + 21b2: 3bac bseti r3, 12 + 21b4: 3bae bseti r3, 14 + 21b6: b060 st.w r3, (r0, 0x0) +} + 21b8: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000021ba : +//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) +{ + 21ba: 14c3 push r4-r6 + 21bc: 98a4 ld.w r5, (r14, 0x10) + 21be: 6d97 mov r6, r5 + 21c0: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 21c2: 6d18 or r4, r6 + 21c4: 6cd0 or r3, r4 + 21c6: 90a1 ld.w r5, (r0, 0x4) + 21c8: 6c4c or r1, r3 + 21ca: 6c54 or r1, r5 + 21cc: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 21ce: b042 st.w r2, (r0, 0x8) +} + 21d0: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000021d2 : +//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) +{ + 21d2: 14c4 push r4-r7 + 21d4: 1421 subi r14, r14, 4 + 21d6: 9885 ld.w r4, (r14, 0x14) + 21d8: 6dd3 mov r7, r4 + 21da: 9886 ld.w r4, (r14, 0x18) + 21dc: b880 st.w r4, (r14, 0x0) + 21de: 9887 ld.w r4, (r14, 0x1c) + 21e0: 6d93 mov r6, r4 + 21e2: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 21e4: 6d58 or r5, r6 + 21e6: 98c0 ld.w r6, (r14, 0x0) + 21e8: 6d58 or r5, r6 + 21ea: 6d5c or r5, r7 + 21ec: 6cd4 or r3, r5 + 21ee: 6c8c or r2, r3 + 21f0: 9081 ld.w r4, (r0, 0x4) + 21f2: 6c48 or r1, r2 + 21f4: 6d04 or r4, r1 + 21f6: 6d9f mov r6, r7 + 21f8: b081 st.w r4, (r0, 0x4) +} + 21fa: 1401 addi r14, r14, 4 + 21fc: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +000021fe : +//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; + 21fe: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 2200: b044 st.w r2, (r0, 0x10) +} + 2202: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00002204 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 2204: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 2206: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2208: 0c04 bf 0x2210 // 2210 + BTx->IMCR |= BT_IMSCR_X; + 220a: 6c8c or r2, r3 + 220c: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 220e: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 2210: 68c9 andn r3, r2 + 2212: b06b st.w r3, (r0, 0x2c) +} + 2214: 07fd br 0x220e // 220e + +Disassembly of section .text.BT1_INT_ENABLE: + +00002218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 2218: 3380 movi r3, 128 + 221a: 4376 lsli r3, r3, 22 + 221c: 1042 lrw r2, 0xe000e100 // 2224 + 221e: b260 st.w r3, (r2, 0x0) +} + 2220: 783c jmp r15 + 2222: 0000 bkpt + 2224: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00002228 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 2228: 1067 lrw r3, 0x2000002c // 2244 + 222a: 3200 movi r2, 0 + 222c: 9360 ld.w r3, (r3, 0x0) + 222e: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 2230: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 2232: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 2234: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 2236: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 2238: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 223a: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 223c: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 223e: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 2240: b34b st.w r2, (r3, 0x2c) +} + 2242: 783c jmp r15 + 2244: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +00002248 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 2248: 3840 cmpnei r0, 0 + 224a: 080a bt 0x225e // 225e + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 224c: 1075 lrw r3, 0x2000004c // 22a0 + 224e: 32f0 movi r2, 240 + 2250: 9320 ld.w r1, (r3, 0x0) + 2252: 9160 ld.w r3, (r1, 0x0) + 2254: 4244 lsli r2, r2, 4 + 2256: 68c9 andn r3, r2 + 2258: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 225a: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 225c: 783c jmp r15 + if(IOGx==SIO_PA03) + 225e: 3841 cmpnei r0, 1 + 2260: 0809 bt 0x2272 // 2272 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 2262: 1070 lrw r3, 0x2000004c // 22a0 + 2264: 32f0 movi r2, 240 + 2266: 9320 ld.w r1, (r3, 0x0) + 2268: 9160 ld.w r3, (r1, 0x0) + 226a: 4248 lsli r2, r2, 8 + 226c: 68c9 andn r3, r2 + 226e: 3baf bseti r3, 15 + 2270: 07f5 br 0x225a // 225a + if(IOGx==SIO_PA012) + 2272: 3842 cmpnei r0, 2 + 2274: 080a bt 0x2288 // 2288 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 2276: 106b lrw r3, 0x2000004c // 22a0 + 2278: 32f0 movi r2, 240 + 227a: 9320 ld.w r1, (r3, 0x0) + 227c: 9161 ld.w r3, (r1, 0x4) + 227e: 424c lsli r2, r2, 12 + 2280: 68c9 andn r3, r2 + 2282: 3bb3 bseti r3, 19 + 2284: b161 st.w r3, (r1, 0x4) + 2286: 07eb br 0x225c // 225c + if(IOGx==SIO_PB01) + 2288: 3843 cmpnei r0, 3 + 228a: 0be9 bt 0x225c // 225c + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 228c: 1066 lrw r3, 0x20000048 // 22a4 + 228e: 31f0 movi r1, 240 + 2290: 9340 ld.w r2, (r3, 0x0) + 2292: 9260 ld.w r3, (r2, 0x0) + 2294: 68c5 andn r3, r1 + 2296: 3170 movi r1, 112 + 2298: 6cc4 or r3, r1 + 229a: b260 st.w r3, (r2, 0x0) +} + 229c: 07e0 br 0x225c // 225c + 229e: 0000 bkpt + 22a0: 2000004c .long 0x2000004c + 22a4: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +000022a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 22a8: 4130 lsli r1, r1, 16 + 22aa: 1063 lrw r3, 0x2000002c // 22b4 + 22ac: 6c04 or r0, r1 + 22ae: 9360 ld.w r3, (r3, 0x0) + 22b0: b300 st.w r0, (r3, 0x0) + +} + 22b2: 783c jmp r15 + 22b4: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +000022b8 : +//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) +{ + 22b8: 14c4 push r4-r7 + 22ba: 1423 subi r14, r14, 12 + 22bc: 9889 ld.w r4, (r14, 0x24) + 22be: b881 st.w r4, (r14, 0x4) + 22c0: 988a ld.w r4, (r14, 0x28) + 22c2: b882 st.w r4, (r14, 0x8) + 22c4: 1c08 addi r4, r14, 32 + 22c6: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22c8: 4368 lsli r3, r3, 8 +{ + 22ca: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22cc: 6cc0 or r3, r0 +{ + 22ce: 1c0b addi r4, r14, 44 + 22d0: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22d2: 6cc4 or r3, r1 +{ + 22d4: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22d6: 4244 lsli r2, r2, 4 + 22d8: 10eb lrw r7, 0x2000002c // 2304 + 22da: 6cc8 or r3, r2 + 22dc: 97e0 ld.w r7, (r7, 0x0) +{ + 22de: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22e0: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 22e2: 4498 lsli r4, r4, 24 + 22e4: 9861 ld.w r3, (r14, 0x4) + 22e6: 6d0c or r4, r3 + 22e8: 9862 ld.w r3, (r14, 0x8) + 22ea: 6d0c or r4, r3 +{ + 22ec: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 22f0: 9860 ld.w r3, (r14, 0x0) + 22f2: 46d0 lsli r6, r6, 16 + 22f4: 6d90 or r6, r4 + 22f6: 45a2 lsli r5, r5, 2 + 22f8: 4385 lsli r4, r3, 5 + 22fa: 6d50 or r5, r4 + 22fc: 6d58 or r5, r6 + 22fe: b7a2 st.w r5, (r7, 0x8) +} + 2300: 1403 addi r14, r14, 12 + 2302: 1484 pop r4-r7 + 2304: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +00002308 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 2308: 1065 lrw r3, 0x20000040 // 231c + 230a: 3200 movi r2, 0 + 230c: 9360 ld.w r3, (r3, 0x0) + 230e: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 2310: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 2312: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 2314: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 2316: b344 st.w r2, (r3, 0x10) +} + 2318: 783c jmp r15 + 231a: 0000 bkpt + 231c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00002320 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 2320: 1065 lrw r3, 0x2000003c // 2334 + 2322: 3200 movi r2, 0 + 2324: 9360 ld.w r3, (r3, 0x0) + 2326: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 2328: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 232a: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 232c: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 232e: b344 st.w r2, (r3, 0x10) +} + 2330: 783c jmp r15 + 2332: 0000 bkpt + 2334: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00002338 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 2338: 1065 lrw r3, 0x20000038 // 234c + 233a: 3200 movi r2, 0 + 233c: 9360 ld.w r3, (r3, 0x0) + 233e: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 2340: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 2342: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 2344: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 2346: b344 st.w r2, (r3, 0x10) +} + 2348: 783c jmp r15 + 234a: 0000 bkpt + 234c: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00002350 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 2350: 1065 lrw r3, 0x20000040 // 2364 + 2352: 320f movi r2, 15 + 2354: 9360 ld.w r3, (r3, 0x0) + 2356: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2358: 3380 movi r3, 128 + 235a: 4366 lsli r3, r3, 6 + 235c: 1043 lrw r2, 0xe000e100 // 2368 + 235e: b260 st.w r3, (r2, 0x0) +} + 2360: 783c jmp r15 + 2362: 0000 bkpt + 2364: 20000040 .long 0x20000040 + 2368: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +0000236c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 236c: 1065 lrw r3, 0x20000038 // 2380 + 236e: 320f movi r2, 15 + 2370: 9360 ld.w r3, (r3, 0x0) + 2372: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2374: 3380 movi r3, 128 + 2376: 4368 lsli r3, r3, 8 + 2378: 1043 lrw r2, 0xe000e100 // 2384 + 237a: b260 st.w r3, (r2, 0x0) +} + 237c: 783c jmp r15 + 237e: 0000 bkpt + 2380: 20000038 .long 0x20000038 + 2384: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002388 : +//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) + 2388: 3840 cmpnei r0, 0 + 238a: 0821 bt 0x23cc // 23cc + { + if(UART_IO_G==0) + 238c: 3940 cmpnei r1, 0 + 238e: 080a bt 0x23a2 // 23a2 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2390: 1177 lrw r3, 0x2000004c // 246c + 2392: 31ff movi r1, 255 + 2394: 9340 ld.w r2, (r3, 0x0) + 2396: 9260 ld.w r3, (r2, 0x0) + 2398: 68c5 andn r3, r1 + 239a: 3ba2 bseti r3, 2 + 239c: 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 + 239e: b260 st.w r3, (r2, 0x0) + 23a0: 0415 br 0x23ca // 23ca + else if(UART_IO_G==1) + 23a2: 3941 cmpnei r1, 1 + 23a4: 0813 bt 0x23ca // 23ca + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 23a6: 1172 lrw r3, 0x2000004c // 246c + 23a8: 31f0 movi r1, 240 + 23aa: 9340 ld.w r2, (r3, 0x0) + 23ac: 9260 ld.w r3, (r2, 0x0) + 23ae: 4130 lsli r1, r1, 16 + 23b0: 68c5 andn r3, r1 + 23b2: 31e0 movi r1, 224 + 23b4: 412f lsli r1, r1, 15 + 23b6: 6cc4 or r3, r1 + 23b8: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 23ba: 31f0 movi r1, 240 + 23bc: 9261 ld.w r3, (r2, 0x4) + 23be: 412c lsli r1, r1, 12 + 23c0: 68c5 andn r3, r1 + 23c2: 31e0 movi r1, 224 + 23c4: 412b lsli r1, r1, 11 + 23c6: 6cc4 or r3, r1 + 23c8: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 23ca: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 23cc: 3841 cmpnei r0, 1 + 23ce: 082d bt 0x2428 // 2428 + if(UART_IO_G==0) + 23d0: 3940 cmpnei r1, 0 + 23d2: 0814 bt 0x23fa // 23fa + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 23d4: 1167 lrw r3, 0x20000048 // 2470 + 23d6: 310f movi r1, 15 + 23d8: 9340 ld.w r2, (r3, 0x0) + 23da: 9260 ld.w r3, (r2, 0x0) + 23dc: 68c5 andn r3, r1 + 23de: 3107 movi r1, 7 + 23e0: 6cc4 or r3, r1 + 23e2: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 23e4: 32f0 movi r2, 240 + 23e6: 1162 lrw r3, 0x2000004c // 246c + 23e8: 4250 lsli r2, r2, 16 + 23ea: 9320 ld.w r1, (r3, 0x0) + 23ec: 9161 ld.w r3, (r1, 0x4) + 23ee: 68c9 andn r3, r2 + 23f0: 32e0 movi r2, 224 + 23f2: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 23f4: 6cc8 or r3, r2 + 23f6: b161 st.w r3, (r1, 0x4) + 23f8: 07e9 br 0x23ca // 23ca + else if(UART_IO_G==1) + 23fa: 3941 cmpnei r1, 1 + 23fc: 080c bt 0x2414 // 2414 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 23fe: 107c lrw r3, 0x2000004c // 246c + 2400: 32ff movi r2, 255 + 2402: 9320 ld.w r1, (r3, 0x0) + 2404: 424c lsli r2, r2, 12 + 2406: 9160 ld.w r3, (r1, 0x0) + 2408: 68c9 andn r3, r2 + 240a: 32ee movi r2, 238 + 240c: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 240e: 6cc8 or r3, r2 + 2410: b160 st.w r3, (r1, 0x0) +} + 2412: 07dc br 0x23ca // 23ca + else if(UART_IO_G==2) + 2414: 3942 cmpnei r1, 2 + 2416: 0bda bt 0x23ca // 23ca + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2418: 1075 lrw r3, 0x2000004c // 246c + 241a: 32ee movi r2, 238 + 241c: 9320 ld.w r1, (r3, 0x0) + 241e: 9161 ld.w r3, (r1, 0x4) + 2420: 4368 lsli r3, r3, 8 + 2422: 4b68 lsri r3, r3, 8 + 2424: 4257 lsli r2, r2, 23 + 2426: 07e7 br 0x23f4 // 23f4 + if (IO_UART_NUM==IO_UART2) + 2428: 3842 cmpnei r0, 2 + 242a: 0bd0 bt 0x23ca // 23ca + if(UART_IO_G==0) + 242c: 3940 cmpnei r1, 0 + 242e: 0809 bt 0x2440 // 2440 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2430: 106f lrw r3, 0x2000004c // 246c + 2432: 31ff movi r1, 255 + 2434: 9340 ld.w r2, (r3, 0x0) + 2436: 9260 ld.w r3, (r2, 0x0) + 2438: 68c5 andn r3, r1 + 243a: 3177 movi r1, 119 + 243c: 6cc4 or r3, r1 + 243e: 07b0 br 0x239e // 239e + else if(UART_IO_G==1) + 2440: 3941 cmpnei r1, 1 + 2442: 0809 bt 0x2454 // 2454 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 2444: 106a lrw r3, 0x2000004c // 246c + 2446: 32ee movi r2, 238 + 2448: 9320 ld.w r1, (r3, 0x0) + 244a: 9160 ld.w r3, (r1, 0x0) + 244c: 4368 lsli r3, r3, 8 + 244e: 4b68 lsri r3, r3, 8 + 2450: 4257 lsli r2, r2, 23 + 2452: 07de br 0x240e // 240e + else if(UART_IO_G==2) + 2454: 3942 cmpnei r1, 2 + 2456: 0bba bt 0x23ca // 23ca + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2458: 1066 lrw r3, 0x20000048 // 2470 + 245a: 32ff movi r2, 255 + 245c: 9320 ld.w r1, (r3, 0x0) + 245e: 4250 lsli r2, r2, 16 + 2460: 9160 ld.w r3, (r1, 0x0) + 2462: 68c9 andn r3, r2 + 2464: 32cc movi r2, 204 + 2466: 424f lsli r2, r2, 15 + 2468: 07d3 br 0x240e // 240e + 246a: 0000 bkpt + 246c: 2000004c .long 0x2000004c + 2470: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +00002474 : +//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); + 2474: 1063 lrw r3, 0x80003 // 2480 + 2476: 6c8c or r2, r3 + 2478: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 247a: b024 st.w r1, (r0, 0x10) +} + 247c: 783c jmp r15 + 247e: 0000 bkpt + 2480: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002484 : +//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); + 2484: 1063 lrw r3, 0x8000f // 2490 + 2486: 6c8c or r2, r3 + 2488: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 248a: b024 st.w r1, (r0, 0x10) +} + 248c: 783c jmp r15 + 248e: 0000 bkpt + 2490: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002494 : +//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) +{ + 2494: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2496: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2498: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 249a: 5b85 subu r4, r3, r1 + 249c: 6490 cmphs r4, r2 + 249e: 0c02 bf 0x24a2 // 24a2 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 24a0: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 24a2: 8380 ld.b r4, (r3, 0x0) + 24a4: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 24a6: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 24a8: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 24aa: 3c40 cmpnei r4, 0 + 24ac: 0bfd bt 0x24a6 // 24a6 + 24ae: 2300 addi r3, 1 + 24b0: 07f5 br 0x249a // 249a + +Disassembly of section .text.EPT_Stop: + +000024b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 24b4: 1068 lrw r3, 0x20000020 // 24d4 + 24b6: 3280 movi r2, 128 + 24b8: 9360 ld.w r3, (r3, 0x0) + 24ba: 608c addu r2, r3 + 24bc: 1027 lrw r1, 0xa55ac73a // 24d8 + 24be: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 24c0: 9341 ld.w r2, (r3, 0x4) + 24c2: 31fe movi r1, 254 + 24c4: 6884 and r2, r1 + 24c6: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 24c8: 3101 movi r1, 1 + 24ca: 9341 ld.w r2, (r3, 0x4) + 24cc: 6884 and r2, r1 + 24ce: 3a40 cmpnei r2, 0 + 24d0: 0bfd bt 0x24ca // 24ca +} + 24d2: 783c jmp r15 + 24d4: 20000020 .long 0x20000020 + 24d8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +000024dc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 24dc: 1078 lrw r3, 0x20000050 // 253c + 24de: 3200 movi r2, 0 + 24e0: 9360 ld.w r3, (r3, 0x0) + 24e2: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 24e4: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 24e6: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 24e8: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 24ea: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 24ec: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 24ee: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 24f0: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 24f2: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 24f4: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 24f6: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 24f8: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 24fa: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 24fc: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 24fe: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 2500: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 2502: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2504: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 2506: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 2508: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 250a: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 250c: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 250e: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2510: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 2512: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2514: 23ff addi r3, 256 + 2516: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 2518: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 251a: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 251c: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 251e: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2520: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 2522: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2524: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 2526: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 2528: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 252a: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 252c: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 252e: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2530: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 2532: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2534: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 2536: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 2538: b351 st.w r2, (r3, 0x44) +} + 253a: 783c jmp r15 + 253c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002540 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2540: 1063 lrw r3, 0x20000050 // 254c + 2542: 9340 ld.w r2, (r3, 0x0) + 2544: 9264 ld.w r3, (r2, 0x10) + 2546: 6c0c or r0, r3 + 2548: b204 st.w r0, (r2, 0x10) +} + 254a: 783c jmp r15 + 254c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002550 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2550: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 2552: 3002 movi r0, 2 + 2554: e3fffff6 bsr 0x2540 // 2540 + while(!(ADC0->SR &ADC12_ADCENS)); + 2558: 1065 lrw r3, 0x20000050 // 256c + 255a: 3280 movi r2, 128 + 255c: 9320 ld.w r1, (r3, 0x0) + 255e: 4241 lsli r2, r2, 1 + 2560: 9168 ld.w r3, (r1, 0x20) + 2562: 68c8 and r3, r2 + 2564: 3b40 cmpnei r3, 0 + 2566: 0ffd bf 0x2560 // 2560 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2568: 1490 pop r15 + 256a: 0000 bkpt + 256c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +00002570 : + if (NewState != DISABLE) + 2570: 3940 cmpnei r1, 0 + 2572: 106a lrw r3, 0x20000050 // 2598 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2574: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 2576: 0c09 bf 0x2588 // 2588 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2578: 9260 ld.w r3, (r2, 0x0) + 257a: 6cc0 or r3, r0 + 257c: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 257e: 9262 ld.w r3, (r2, 0x8) + 2580: 68c0 and r3, r0 + 2582: 3b40 cmpnei r3, 0 + 2584: 0ffd bf 0x257e // 257e +} + 2586: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2588: 9261 ld.w r3, (r2, 0x4) + 258a: 6cc0 or r3, r0 + 258c: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 258e: 9262 ld.w r3, (r2, 0x8) + 2590: 68c0 and r3, r0 + 2592: 3b40 cmpnei r3, 0 + 2594: 0bfd bt 0x258e // 258e + 2596: 07f8 br 0x2586 // 2586 + 2598: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +0000259c : +{ + 259c: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 259e: 3001 movi r0, 1 + 25a0: e3ffffd0 bsr 0x2540 // 2540 +} + 25a4: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000025a8 : +{ + 25a8: 14d0 push r15 + if (NewState != DISABLE) + 25aa: 3840 cmpnei r0, 0 + 25ac: 0c04 bf 0x25b4 // 25b4 + 25ae: e3ffffd1 bsr 0x2550 // 2550 +} + 25b2: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 25b4: 3004 movi r0, 4 + 25b6: e3ffffc5 bsr 0x2540 // 2540 + while(ADC0->SR&ADC12_ADCENS); + 25ba: 1065 lrw r3, 0x20000050 // 25cc + 25bc: 3280 movi r2, 128 + 25be: 9320 ld.w r1, (r3, 0x0) + 25c0: 4241 lsli r2, r2, 1 + 25c2: 9168 ld.w r3, (r1, 0x20) + 25c4: 68c8 and r3, r2 + 25c6: 3b40 cmpnei r3, 0 + 25c8: 0bfd bt 0x25c2 // 25c2 + 25ca: 07f4 br 0x25b2 // 25b2 + 25cc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +000025d0 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 25d0: 1064 lrw r3, 0x20000050 // 25e0 + 25d2: 3202 movi r2, 2 + 25d4: 9320 ld.w r1, (r3, 0x0) + 25d6: 9168 ld.w r3, (r1, 0x20) + 25d8: 68c8 and r3, r2 + 25da: 3b40 cmpnei r3, 0 + 25dc: 0ffd bf 0x25d6 // 25d6 +} + 25de: 783c jmp r15 + 25e0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +000025e4 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 25e4: 200f addi r0, 16 + 25e6: 1065 lrw r3, 0x20000050 // 25f8 + 25e8: 3201 movi r2, 1 + 25ea: 9320 ld.w r1, (r3, 0x0) + 25ec: 7080 lsl r2, r0 + 25ee: 9168 ld.w r3, (r1, 0x20) + 25f0: 68c8 and r3, r2 + 25f2: 3b40 cmpnei r3, 0 + 25f4: 0ffd bf 0x25ee // 25ee +} + 25f6: 783c jmp r15 + 25f8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +000025fc : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 25fc: 203f addi r0, 64 + 25fe: 1064 lrw r3, 0x20000050 // 260c + 2600: 4002 lsli r0, r0, 2 + 2602: 9360 ld.w r3, (r3, 0x0) + 2604: 600c addu r0, r3 + 2606: 9000 ld.w r0, (r0, 0x0) + 2608: 7401 zexth r0, r0 +} + 260a: 783c jmp r15 + 260c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002610 : + //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 ) +{ + 2610: 14d4 push r4-r7, r15 + 2612: 1422 subi r14, r14, 8 + 2614: 1c08 addi r4, r14, 32 + 2616: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2618: 2d00 subi r5, 1 +{ + 261a: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 261c: 10db lrw r6, 0x20000050 // 2688 +{ + 261e: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2622: 45aa lsli r5, r5, 10 + 2624: 9680 ld.w r4, (r6, 0x0) + 2626: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 2628: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 262a: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 262c: 081c bt 0x2664 // 2664 + { + ADC0->MR&=~CONTCV; //one short mode + 262e: 9425 ld.w r1, (r4, 0x14) + 2630: 4121 lsli r1, r1, 1 + 2632: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2634: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 2636: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 2638: 4002 lsli r0, r0, 2 + 263a: 9428 ld.w r1, (r4, 0x20) + 263c: 6840 and r1, r0 + 263e: 3940 cmpnei r1, 0 + 2640: 0bfd bt 0x263a // 263a + 2642: b861 st.w r3, (r14, 0x4) + 2644: b840 st.w r2, (r14, 0x0) + 2646: e3ffff85 bsr 0x2550 // 2550 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 264a: 3f40 cmpnei r7, 0 + 264c: 9840 ld.w r2, (r14, 0x0) + 264e: 9861 ld.w r3, (r14, 0x4) + 2650: 0c16 bf 0x267c // 267c + { + ADC0->CR|=ADC12_10BITor12BIT; + 2652: 9600 ld.w r0, (r6, 0x0) + 2654: 9024 ld.w r1, (r0, 0x10) + 2656: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 2658: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 265a: 9620 ld.w r1, (r6, 0x0) + 265c: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 265e: b166 st.w r3, (r1, 0x18) +} + 2660: 1402 addi r14, r14, 8 + 2662: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2664: 3941 cmpnei r1, 1 + 2666: 0bee bt 0x2642 // 2642 + ADC0->MR|=CONTCV; //Continuous mode + 2668: 9425 ld.w r1, (r4, 0x14) + 266a: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 266c: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 266e: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 2670: 4002 lsli r0, r0, 2 + 2672: 9428 ld.w r1, (r4, 0x20) + 2674: 6840 and r1, r0 + 2676: 3940 cmpnei r1, 0 + 2678: 0ffd bf 0x2672 // 2672 + 267a: 07e4 br 0x2642 // 2642 + ADC0->CR&=~ADC12_10BITor12BIT; + 267c: 9600 ld.w r0, (r6, 0x0) + 267e: 9024 ld.w r1, (r0, 0x10) + 2680: 4121 lsli r1, r1, 1 + 2682: 4921 lsri r1, r1, 1 + 2684: 07ea br 0x2658 // 2658 + 2686: 0000 bkpt + 2688: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +0000268c : +//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) + 268c: 3840 cmpnei r0, 0 + 268e: 0808 bt 0x269e // 269e + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 2690: 127c lrw r3, 0x20000050 // 2800 + 2692: 123d lrw r1, 0x103c0 // 2804 + 2694: 9340 ld.w r2, (r3, 0x0) + 2696: 9264 ld.w r3, (r2, 0x10) + 2698: 68c5 andn r3, r1 + 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); + 269a: b264 st.w r3, (r2, 0x10) + } +} + 269c: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 269e: 3841 cmpnei r0, 1 + 26a0: 0810 bt 0x26c0 // 26c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26a2: 127a lrw r3, 0x2000004c // 2808 + 26a4: 32f0 movi r2, 240 + 26a6: 9320 ld.w r1, (r3, 0x0) + 26a8: 9160 ld.w r3, (r1, 0x0) + 26aa: 4244 lsli r2, r2, 4 + 26ac: 68c9 andn r3, r2 + 26ae: 3bab bseti r3, 11 + 26b0: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 26b2: 1235 lrw r1, 0x103c0 // 2804 + 26b4: 1273 lrw r3, 0x20000050 // 2800 + 26b6: 9340 ld.w r2, (r3, 0x0) + 26b8: 9264 ld.w r3, (r2, 0x10) + 26ba: 68c5 andn r3, r1 + 26bc: 3ba6 bseti r3, 6 + 26be: 07ee br 0x269a // 269a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 26c0: 3842 cmpnei r0, 2 + 26c2: 0811 bt 0x26e4 // 26e4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26c4: 1271 lrw r3, 0x2000004c // 2808 + 26c6: 32f0 movi r2, 240 + 26c8: 9320 ld.w r1, (r3, 0x0) + 26ca: 9160 ld.w r3, (r1, 0x0) + 26cc: 4244 lsli r2, r2, 4 + 26ce: 68c9 andn r3, r2 + 26d0: 3bab bseti r3, 11 + 26d2: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 26d4: 122e lrw r1, 0x30103c0 // 280c + 26d6: 126b lrw r3, 0x20000050 // 2800 + 26d8: 9340 ld.w r2, (r3, 0x0) + 26da: 9264 ld.w r3, (r2, 0x10) + 26dc: 68c5 andn r3, r1 + 26de: 3ba7 bseti r3, 7 + 26e0: 3bb8 bseti r3, 24 + 26e2: 07dc br 0x269a // 269a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 26e4: 3843 cmpnei r0, 3 + 26e6: 0811 bt 0x2708 // 2708 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26e8: 1268 lrw r3, 0x2000004c // 2808 + 26ea: 32f0 movi r2, 240 + 26ec: 9320 ld.w r1, (r3, 0x0) + 26ee: 9160 ld.w r3, (r1, 0x0) + 26f0: 4244 lsli r2, r2, 4 + 26f2: 68c9 andn r3, r2 + 26f4: 3bab bseti r3, 11 + 26f6: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 26f8: 1225 lrw r1, 0x30103c0 // 280c + 26fa: 1262 lrw r3, 0x20000050 // 2800 + 26fc: 9340 ld.w r2, (r3, 0x0) + 26fe: 9264 ld.w r3, (r2, 0x10) + 2700: 68c5 andn r3, r1 + 2702: 1224 lrw r1, 0x30000c0 // 2810 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2704: 6cc4 or r3, r1 + 2706: 07ca br 0x269a // 269a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 2708: 3845 cmpnei r0, 5 + 270a: 0809 bt 0x271c // 271c + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 270c: 117d lrw r3, 0x20000050 // 2800 + 270e: 1222 lrw r1, 0x503c0 // 2814 + 2710: 9340 ld.w r2, (r3, 0x0) + 2712: 9264 ld.w r3, (r2, 0x10) + 2714: 68c5 andn r3, r1 + 2716: 3ba8 bseti r3, 8 + 2718: 3bb2 bseti r3, 18 + 271a: 07c0 br 0x269a // 269a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 271c: 3846 cmpnei r0, 6 + 271e: 0812 bt 0x2742 // 2742 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2720: 117a lrw r3, 0x2000004c // 2808 + 2722: 32f0 movi r2, 240 + 2724: 9320 ld.w r1, (r3, 0x0) + 2726: 9160 ld.w r3, (r1, 0x0) + 2728: 4248 lsli r2, r2, 8 + 272a: 68c9 andn r3, r2 + 272c: 32b0 movi r2, 176 + 272e: 4248 lsli r2, r2, 8 + 2730: 6cc8 or r3, r2 + 2732: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2734: 1134 lrw r1, 0x103c0 // 2804 + 2736: 1173 lrw r3, 0x20000050 // 2800 + 2738: 9340 ld.w r2, (r3, 0x0) + 273a: 9264 ld.w r3, (r2, 0x10) + 273c: 68c5 andn r3, r1 + 273e: 3ba9 bseti r3, 9 + 2740: 07ad br 0x269a // 269a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2742: 3847 cmpnei r0, 7 + 2744: 0819 bt 0x2776 // 2776 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2746: 1171 lrw r3, 0x2000004c // 2808 + 2748: 31f0 movi r1, 240 + 274a: 9340 ld.w r2, (r3, 0x0) + 274c: 9260 ld.w r3, (r2, 0x0) + 274e: 4128 lsli r1, r1, 8 + 2750: 68c5 andn r3, r1 + 2752: 31b0 movi r1, 176 + 2754: 4128 lsli r1, r1, 8 + 2756: 6cc4 or r3, r1 + 2758: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 275a: 31f0 movi r1, 240 + 275c: 9260 ld.w r3, (r2, 0x0) + 275e: 4124 lsli r1, r1, 4 + 2760: 68c5 andn r3, r1 + 2762: 3bab bseti r3, 11 + 2764: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 2766: 1128 lrw r1, 0x103c0 // 2804 + 2768: 1166 lrw r3, 0x20000050 // 2800 + 276a: 9340 ld.w r2, (r3, 0x0) + 276c: 9264 ld.w r3, (r2, 0x10) + 276e: 68c5 andn r3, r1 + 2770: 3ba6 bseti r3, 6 + 2772: 3ba9 bseti r3, 9 + 2774: 0793 br 0x269a // 269a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 2776: 3848 cmpnei r0, 8 + 2778: 0818 bt 0x27a8 // 27a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 277a: 1164 lrw r3, 0x2000004c // 2808 + 277c: 31f0 movi r1, 240 + 277e: 9340 ld.w r2, (r3, 0x0) + 2780: 9260 ld.w r3, (r2, 0x0) + 2782: 4128 lsli r1, r1, 8 + 2784: 68c5 andn r3, r1 + 2786: 31b0 movi r1, 176 + 2788: 4128 lsli r1, r1, 8 + 278a: 6cc4 or r3, r1 + 278c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 278e: 31f0 movi r1, 240 + 2790: 9260 ld.w r3, (r2, 0x0) + 2792: 4124 lsli r1, r1, 4 + 2794: 68c5 andn r3, r1 + 2796: 3bab bseti r3, 11 + 2798: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 279a: 103d lrw r1, 0x30103c0 // 280c + 279c: 1079 lrw r3, 0x20000050 // 2800 + 279e: 9340 ld.w r2, (r3, 0x0) + 27a0: 9264 ld.w r3, (r2, 0x10) + 27a2: 68c5 andn r3, r1 + 27a4: 103d lrw r1, 0x1000280 // 2818 + 27a6: 07af br 0x2704 // 2704 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 27a8: 3849 cmpnei r0, 9 + 27aa: 0818 bt 0x27da // 27da + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ac: 1077 lrw r3, 0x2000004c // 2808 + 27ae: 31f0 movi r1, 240 + 27b0: 9340 ld.w r2, (r3, 0x0) + 27b2: 9260 ld.w r3, (r2, 0x0) + 27b4: 4128 lsli r1, r1, 8 + 27b6: 68c5 andn r3, r1 + 27b8: 31b0 movi r1, 176 + 27ba: 4128 lsli r1, r1, 8 + 27bc: 6cc4 or r3, r1 + 27be: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27c0: 31f0 movi r1, 240 + 27c2: 9260 ld.w r3, (r2, 0x0) + 27c4: 4124 lsli r1, r1, 4 + 27c6: 68c5 andn r3, r1 + 27c8: 3bab bseti r3, 11 + 27ca: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 27cc: 1030 lrw r1, 0x30103c0 // 280c + 27ce: 106d lrw r3, 0x20000050 // 2800 + 27d0: 9340 ld.w r2, (r3, 0x0) + 27d2: 9264 ld.w r3, (r2, 0x10) + 27d4: 68c5 andn r3, r1 + 27d6: 1032 lrw r1, 0x30002c0 // 281c + 27d8: 0796 br 0x2704 // 2704 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 27da: 384b cmpnei r0, 11 + 27dc: 0b60 bt 0x269c // 269c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27de: 106b lrw r3, 0x2000004c // 2808 + 27e0: 32f0 movi r2, 240 + 27e2: 9320 ld.w r1, (r3, 0x0) + 27e4: 9160 ld.w r3, (r1, 0x0) + 27e6: 4248 lsli r2, r2, 8 + 27e8: 68c9 andn r3, r2 + 27ea: 32b0 movi r2, 176 + 27ec: 4248 lsli r2, r2, 8 + 27ee: 6cc8 or r3, r2 + 27f0: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 27f2: 1029 lrw r1, 0x503c0 // 2814 + 27f4: 1063 lrw r3, 0x20000050 // 2800 + 27f6: 9340 ld.w r2, (r3, 0x0) + 27f8: 9264 ld.w r3, (r2, 0x10) + 27fa: 68c5 andn r3, r1 + 27fc: 1029 lrw r1, 0x40300 // 2820 + 27fe: 0783 br 0x2704 // 2704 + 2800: 20000050 .long 0x20000050 + 2804: 000103c0 .long 0x000103c0 + 2808: 2000004c .long 0x2000004c + 280c: 030103c0 .long 0x030103c0 + 2810: 030000c0 .long 0x030000c0 + 2814: 000503c0 .long 0x000503c0 + 2818: 01000280 .long 0x01000280 + 281c: 030002c0 .long 0x030002c0 + 2820: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002824 : +//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) +{ + 2824: 14d4 push r4-r7, r15 + 2826: 1421 subi r14, r14, 4 + 2828: b840 st.w r2, (r14, 0x0) + 282a: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 282c: 125b lrw r2, 0x20000050 // 2998 + 282e: 92c0 ld.w r6, (r2, 0x0) + 2830: 3200 movi r2, 0 + 2832: 4202 lsli r0, r2, 2 + 2834: 6018 addu r0, r6 + 2836: 908c ld.w r4, (r0, 0x30) + 2838: 2200 addi r2, 1 + 283a: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 283c: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 283e: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2840: 0bf9 bt 0x2832 // 2832 + } + switch(ADC12_ADCINX) + 2842: 3d0f cmphsi r5, 16 + 2844: 0825 bt 0x288e // 288e + 2846: 6c17 mov r0, r5 + 2848: 1255 lrw r2, 0x2000004c // 299c + 284a: 1296 lrw r4, 0x20000048 // 29a0 + 284c: e3fff258 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2850: 322c1408 .long 0x322c1408 + 2854: 4d474039 .long 0x4d474039 + 2858: 756d6559 .long 0x756d6559 + 285c: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2860: 9240 ld.w r2, (r2, 0x0) + 2862: 9200 ld.w r0, (r2, 0x0) + 2864: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2866: 9201 ld.w r0, (r2, 0x4) + 2868: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 286a: 9400 ld.w r0, (r4, 0x0) + 286c: 9040 ld.w r2, (r0, 0x0) + 286e: 34f0 movi r4, 240 + 2870: 6891 andn r2, r4 + 2872: 3aa4 bseti r2, 4 + 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; + 2874: b040 st.w r2, (r0, 0x0) + break; + 2876: 040c br 0x288e // 288e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2878: 9200 ld.w r0, (r2, 0x0) + 287a: 9040 ld.w r2, (r0, 0x0) + 287c: 370f movi r7, 15 + 287e: 689d andn r2, r7 + 2880: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2882: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2884: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2886: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2888: 9440 ld.w r2, (r4, 0x0) + 288a: 9200 ld.w r0, (r2, 0x0) + 288c: b200 st.w r0, (r2, 0x0) + 288e: 4362 lsli r3, r3, 2 + 2890: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 2892: 966c ld.w r3, (r6, 0x30) + 2894: 3300 movi r3, 0 + 2896: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2898: 9860 ld.w r3, (r14, 0x0) + 289a: 6c4c or r1, r3 + 289c: 964c ld.w r2, (r6, 0x30) + 289e: 6d44 or r5, r1 + 28a0: 6d48 or r5, r2 + 28a2: b6ac st.w r5, (r6, 0x30) +} + 28a4: 1401 addi r14, r14, 4 + 28a6: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 28a8: 9200 ld.w r0, (r2, 0x0) + 28aa: 9040 ld.w r2, (r0, 0x0) + 28ac: 37f0 movi r7, 240 + 28ae: 689d andn r2, r7 + 28b0: 3aa4 bseti r2, 4 + 28b2: 07e8 br 0x2882 // 2882 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 28b4: 9200 ld.w r0, (r2, 0x0) + 28b6: 37f0 movi r7, 240 + 28b8: 9040 ld.w r2, (r0, 0x0) + 28ba: 47e8 lsli r7, r7, 8 + 28bc: 689d andn r2, r7 + 28be: 3aac bseti r2, 12 + 28c0: 07e1 br 0x2882 // 2882 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 28c2: 9200 ld.w r0, (r2, 0x0) + 28c4: 37f0 movi r7, 240 + 28c6: 9040 ld.w r2, (r0, 0x0) + 28c8: 47f0 lsli r7, r7, 16 + 28ca: 689d andn r2, r7 + 28cc: 3ab4 bseti r2, 20 + 28ce: 07da br 0x2882 // 2882 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 28d0: 9200 ld.w r0, (r2, 0x0) + 28d2: 37f0 movi r7, 240 + 28d4: 9040 ld.w r2, (r0, 0x0) + 28d6: 47f4 lsli r7, r7, 20 + 28d8: 689d andn r2, r7 + 28da: 3ab8 bseti r2, 24 + 28dc: 07d3 br 0x2882 // 2882 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28de: 9200 ld.w r0, (r2, 0x0) + 28e0: 9040 ld.w r2, (r0, 0x0) + 28e2: 4244 lsli r2, r2, 4 + 28e4: 4a44 lsri r2, r2, 4 + 28e6: 3abc bseti r2, 28 + 28e8: 07cd br 0x2882 // 2882 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 28ea: 9240 ld.w r2, (r2, 0x0) + 28ec: 9200 ld.w r0, (r2, 0x0) + 28ee: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28f0: 9201 ld.w r0, (r2, 0x4) + 28f2: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 28f4: 9400 ld.w r0, (r4, 0x0) + 28f6: 34f0 movi r4, 240 + 28f8: 9040 ld.w r2, (r0, 0x0) + 28fa: 4484 lsli r4, r4, 4 + 28fc: 6891 andn r2, r4 + 28fe: 3aa8 bseti r2, 8 + 2900: 07ba br 0x2874 // 2874 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2902: 9240 ld.w r2, (r2, 0x0) + 2904: 9200 ld.w r0, (r2, 0x0) + 2906: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2908: 9201 ld.w r0, (r2, 0x4) + 290a: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 290c: 9400 ld.w r0, (r4, 0x0) + 290e: 34f0 movi r4, 240 + 2910: 9040 ld.w r2, (r0, 0x0) + 2912: 4488 lsli r4, r4, 8 + 2914: 6891 andn r2, r4 + 2916: 3aac bseti r2, 12 + 2918: 07ae br 0x2874 // 2874 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 291a: 9200 ld.w r0, (r2, 0x0) + 291c: 9040 ld.w r2, (r0, 0x0) + 291e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2920: 9041 ld.w r2, (r0, 0x4) + 2922: 370f movi r7, 15 + 2924: 689d andn r2, r7 + 2926: 3aa0 bseti r2, 0 + 2928: 07af br 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 292a: 9200 ld.w r0, (r2, 0x0) + 292c: 9040 ld.w r2, (r0, 0x0) + 292e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2930: 9041 ld.w r2, (r0, 0x4) + 2932: 37f0 movi r7, 240 + 2934: 689d andn r2, r7 + 2936: 3aa4 bseti r2, 4 + 2938: 07a7 br 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 293a: 9200 ld.w r0, (r2, 0x0) + 293c: 9040 ld.w r2, (r0, 0x0) + 293e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2940: 37f0 movi r7, 240 + 2942: 9041 ld.w r2, (r0, 0x4) + 2944: 47e4 lsli r7, r7, 4 + 2946: 689d andn r2, r7 + 2948: 3aa8 bseti r2, 8 + 294a: 079e br 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 294c: 9200 ld.w r0, (r2, 0x0) + 294e: 9040 ld.w r2, (r0, 0x0) + 2950: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2952: 37f0 movi r7, 240 + 2954: 9041 ld.w r2, (r0, 0x4) + 2956: 47e8 lsli r7, r7, 8 + 2958: 689d andn r2, r7 + 295a: 3aac bseti r2, 12 + 295c: 0795 br 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 295e: 9200 ld.w r0, (r2, 0x0) + 2960: 9040 ld.w r2, (r0, 0x0) + 2962: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2964: 37f0 movi r7, 240 + 2966: 9041 ld.w r2, (r0, 0x4) + 2968: 47ec lsli r7, r7, 12 + 296a: 689d andn r2, r7 + 296c: 3ab0 bseti r2, 16 + 296e: 078c br 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 2970: 9200 ld.w r0, (r2, 0x0) + 2972: 9040 ld.w r2, (r0, 0x0) + 2974: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2976: 37f0 movi r7, 240 + 2978: 9041 ld.w r2, (r0, 0x4) + 297a: 47f0 lsli r7, r7, 16 + 297c: 689d andn r2, r7 + 297e: 3ab4 bseti r2, 20 + 2980: 0783 br 0x2886 // 2886 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 2982: 9240 ld.w r2, (r2, 0x0) + 2984: 9200 ld.w r0, (r2, 0x0) + 2986: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2988: 9201 ld.w r0, (r2, 0x4) + 298a: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 298c: 9400 ld.w r0, (r4, 0x0) + 298e: 9040 ld.w r2, (r0, 0x0) + 2990: 340f movi r4, 15 + 2992: 6891 andn r2, r4 + 2994: 3aa0 bseti r2, 0 + 2996: 076f br 0x2874 // 2874 + 2998: 20000050 .long 0x20000050 + 299c: 2000004c .long 0x2000004c + 29a0: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +000029a4 : + 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) +{ + 29a4: 14c4 push r4-r7 + 29a6: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 29a8: 1165 lrw r3, 0x20000060 // 2a3c + 29aa: 1186 lrw r4, 0x5a5a5a5a // 2a40 + 29ac: 9360 ld.w r3, (r3, 0x0) + 29ae: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 29b0: 3407 movi r4, 7 + 29b2: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29b4: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 29b6: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29b8: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29ba: 9384 ld.w r4, (r3, 0x10) + 29bc: 3c40 cmpnei r4, 0 + 29be: 0bfe bt 0x29ba // 29ba + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 29c0: 2102 addi r1, 3 + 29c2: 4922 lsri r1, r1, 2 + 29c4: 4122 lsli r1, r1, 2 + 29c6: 6048 addu r1, r2 + 29c8: b820 st.w r1, (r14, 0x0) + 29ca: 5829 subu r1, r0, r2 + 29cc: b821 st.w r1, (r14, 0x4) + 29ce: 9820 ld.w r1, (r14, 0x0) + 29d0: 644a cmpne r2, r1 + 29d2: 0826 bt 0x2a1e // 2a1e + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 29d4: 3106 movi r1, 6 + SetUserKey; + 29d6: 105b lrw r2, 0x5a5a5a5a // 2a40 + 29d8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 29da: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29dc: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 29de: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29e0: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29e2: 9324 ld.w r1, (r3, 0x10) + 29e4: 3940 cmpnei r1, 0 + 29e6: 0bfe bt 0x29e2 // 29e2 + //Perform pre-programming 4 + SetUserKey; + 29e8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 29ea: 3201 movi r2, 1 + 29ec: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 29ee: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29f0: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 29f2: 934a ld.w r2, (r3, 0x28) + 29f4: 3a44 cmpnei r2, 4 + 29f6: 0bfe bt 0x29f2 // 29f2 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 29f8: 3102 movi r1, 2 + SetUserKey; + 29fa: 1052 lrw r2, 0x5a5a5a5a // 2a40 + 29fc: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 29fe: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a00: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a02: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a04: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a06: 932a ld.w r1, (r3, 0x28) + 2a08: 3941 cmpnei r1, 1 + 2a0a: 0bfe bt 0x2a06 // 2a06 + //Write page cache data to flash memory 6 + SetUserKey; + 2a0c: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a0e: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a10: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a12: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a14: 934a ld.w r2, (r3, 0x28) + 2a16: 3a42 cmpnei r2, 2 + 2a18: 0bfe bt 0x2a14 // 2a14 +} + 2a1a: 1402 addi r14, r14, 8 + 2a1c: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a1e: 82e0 ld.b r7, (r2, 0x0) + 2a20: 8281 ld.b r4, (r2, 0x1) + 2a22: 4488 lsli r4, r4, 8 + 2a24: 8222 ld.b r1, (r2, 0x2) + 2a26: 611c addu r4, r7 + 2a28: 82a3 ld.b r5, (r2, 0x3) + 2a2a: 4130 lsli r1, r1, 16 + 2a2c: 98c1 ld.w r6, (r14, 0x4) + 2a2e: 6050 addu r1, r4 + 2a30: 45b8 lsli r5, r5, 24 + 2a32: 6188 addu r6, r2 + 2a34: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a36: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a38: 2203 addi r2, 4 + 2a3a: 07ca br 0x29ce // 29ce + 2a3c: 20000060 .long 0x20000060 + 2a40: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a44 : +//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) +{ + 2a44: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a50: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a52: 3b40 cmpnei r3, 0 + 2a54: 0c06 bf 0x2a60 // 2a60 + 2a56: 6d0f mov r4, r3 + 2a58: 6914 and r4, r5 + 2a5a: 3c40 cmpnei r4, 0 + 2a5c: 0802 bt 0x2a60 // 2a60 + RdStartAdd +=4; + 2a5e: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a60: 6d0f mov r4, r3 + 2a62: 6914 and r4, r5 + 2a64: 6100 addu r4, r0 + 2a66: 8480 ld.b r4, (r4, 0x0) + 2a68: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002a70 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2a70: 33f8 movi r3, 248 + 2a72: 4366 lsli r3, r3, 6 + 2a74: 115b lrw r2, 0x200001f4 // 2b60 + 2a76: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a78: 3246 movi r2, 70 + 2a7a: 117b lrw r3, 0x200001fa // 2b64 + 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 + 2a7c: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a7e: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2a80: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2a82: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2a84: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2a86: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2a88: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2a8a: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2a8c: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2a8e: 1157 lrw r2, 0x200003e4 // 2b68 + 2a90: 8a22 ld.h r1, (r2, 0x4) + 2a92: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2a94: 8a23 ld.h r1, (r2, 0x6) + 2a96: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2a98: 8a24 ld.h r1, (r2, 0x8) + 2a9a: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2a9c: 8a25 ld.h r1, (r2, 0xa) + 2a9e: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2aa0: 8a26 ld.h r1, (r2, 0xc) + 2aa2: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2aa4: 3146 movi r1, 70 + 2aa6: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2aa8: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2aaa: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2aac: 3128 movi r1, 40 + 2aae: 1170 lrw r3, 0x2000021e // 2b6c + 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 + 2ab0: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ab2: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2ab4: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2ab6: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2ab8: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2aba: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2abc: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2abe: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2ac0: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2ac2: 8a27 ld.h r1, (r2, 0xe) + 2ac4: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2ac6: 8a28 ld.h r1, (r2, 0x10) + 2ac8: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2aca: 8a29 ld.h r1, (r2, 0x12) + 2acc: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2ace: 8a2a ld.h r1, (r2, 0x14) + 2ad0: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2ad2: 8a2b ld.h r1, (r2, 0x16) + 2ad4: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2ad6: 3128 movi r1, 40 + 2ad8: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2ada: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2adc: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2ade: 8220 ld.b r1, (r2, 0x0) + 2ae0: 1164 lrw r3, 0x200001c4 // 2b70 + 2ae2: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2ae4: 8221 ld.b r1, (r2, 0x1) + 2ae6: 1164 lrw r3, 0x200001cc // 2b74 + 2ae8: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2aea: 3101 movi r1, 1 + 2aec: 1163 lrw r3, 0x200001cd // 2b78 + 2aee: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2af0: 3100 movi r1, 0 + 2af2: 1163 lrw r3, 0x200001f0 // 2b7c + 2af4: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2af6: 3106 movi r1, 6 + 2af8: 1162 lrw r3, 0x200001f8 // 2b80 + 2afa: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2afc: 8223 ld.b r1, (r2, 0x3) + 2afe: 1162 lrw r3, 0x200001f1 // 2b84 + 2b00: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b02: 9246 ld.w r2, (r2, 0x18) + 2b04: 1161 lrw r3, 0x200001c8 // 2b88 + 2b06: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b08: 1141 lrw r2, 0xea5f // 2b8c + 2b0a: 1162 lrw r3, 0x20000244 // 2b90 + 2b0c: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b0e: 3200 movi r2, 0 + 2b10: 1161 lrw r3, 0x200001c5 // 2b94 + 2b12: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b14: 3202 movi r2, 2 + 2b16: 1161 lrw r3, 0x200001c6 // 2b98 + 2b18: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b1a: 3232 movi r2, 50 + 2b1c: 1160 lrw r3, 0x2000021c // 2b9c + 2b1e: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b20: 3200 movi r2, 0 + 2b22: 1160 lrw r3, 0x20000248 // 2ba0 + 2b24: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b26: 3201 movi r2, 1 + 2b28: 107f lrw r3, 0x20000242 // 2ba4 + 2b2a: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b2c: 3200 movi r2, 0 + 2b2e: 107f lrw r3, 0x20000240 // 2ba8 + 2b30: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b32: 3204 movi r2, 4 + 2b34: 107e lrw r3, 0x200001ce // 2bac + 2b36: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2b38: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2b3a: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2b3c: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2b3e: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2b40: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2b42: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2b44: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2b46: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2b48: 3207 movi r2, 7 + 2b4a: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2b4c: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2b4e: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2b50: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2b52: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2b54: 3204 movi r2, 4 + 2b56: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2b58: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2b5a: ab50 st.h r2, (r3, 0x20) + 2b5c: 783c jmp r15 + 2b5e: 0000 bkpt + 2b60: 200001f4 .long 0x200001f4 + 2b64: 200001fa .long 0x200001fa + 2b68: 200003e4 .long 0x200003e4 + 2b6c: 2000021e .long 0x2000021e + 2b70: 200001c4 .long 0x200001c4 + 2b74: 200001cc .long 0x200001cc + 2b78: 200001cd .long 0x200001cd + 2b7c: 200001f0 .long 0x200001f0 + 2b80: 200001f8 .long 0x200001f8 + 2b84: 200001f1 .long 0x200001f1 + 2b88: 200001c8 .long 0x200001c8 + 2b8c: 0000ea5f .long 0x0000ea5f + 2b90: 20000244 .long 0x20000244 + 2b94: 200001c5 .long 0x200001c5 + 2b98: 200001c6 .long 0x200001c6 + 2b9c: 2000021c .long 0x2000021c + 2ba0: 20000248 .long 0x20000248 + 2ba4: 20000242 .long 0x20000242 + 2ba8: 20000240 .long 0x20000240 + 2bac: 200001ce .long 0x200001ce + +Disassembly of section .text.CORET_DeInit: + +00002bb0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2bb0: 1065 lrw r3, 0x20000064 // 2bc4 + 2bb2: 3204 movi r2, 4 + 2bb4: 9360 ld.w r3, (r3, 0x0) + 2bb6: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2bb8: 3200 movi r2, 0 + 2bba: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2bbc: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2bbe: b347 st.w r2, (r3, 0x1c) +} + 2bc0: 783c jmp r15 + 2bc2: 0000 bkpt + 2bc4: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002bc8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2bc8: 1064 lrw r3, 0x20000064 // 2bd8 + 2bca: 3200 movi r2, 0 + 2bcc: 9360 ld.w r3, (r3, 0x0) + 2bce: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2bd0: 3201 movi r2, 1 + 2bd2: 1063 lrw r3, 0xe000e100 // 2bdc + 2bd4: b340 st.w r2, (r3, 0x0) +} + 2bd6: 783c jmp r15 + 2bd8: 20000064 .long 0x20000064 + 2bdc: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002be0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2be0: 1063 lrw r3, 0x20000064 // 2bec + 2be2: 9340 ld.w r2, (r3, 0x0) + 2be4: 9264 ld.w r3, (r2, 0x10) + 2be6: 3ba0 bseti r3, 0 + 2be8: b264 st.w r3, (r2, 0x10) +} + 2bea: 783c jmp r15 + 2bec: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002bf0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2bf0: 1063 lrw r3, 0x20000064 // 2bfc + 2bf2: 9340 ld.w r2, (r3, 0x0) + 2bf4: 9264 ld.w r3, (r2, 0x10) + 2bf6: 3b82 bclri r3, 2 + 2bf8: b264 st.w r3, (r2, 0x10) +} + 2bfa: 783c jmp r15 + 2bfc: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c00 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c00: 1063 lrw r3, 0x20000064 // 2c0c + 2c02: 9340 ld.w r2, (r3, 0x0) + 2c04: 9264 ld.w r3, (r2, 0x10) + 2c06: 3ba1 bseti r3, 1 + 2c08: b264 st.w r3, (r2, 0x10) +} + 2c0a: 783c jmp r15 + 2c0c: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c10 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c10: 1063 lrw r3, 0x20000064 // 2c1c + 2c12: 3200 movi r2, 0 + 2c14: 9360 ld.w r3, (r3, 0x0) + 2c16: b346 st.w r2, (r3, 0x18) +} + 2c18: 783c jmp r15 + 2c1a: 0000 bkpt + 2c1c: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c20
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c20: 14d0 push r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2c22: e00000d5 bsr 0x2dcc // 2dcc + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c26: 1071 lrw r3, 0x20000434 // 2c68 + 2c28: 8340 ld.b r2, (r3, 0x0) + 2c2a: 1031 lrw r1, 0x8a34 // 2c6c + 2c2c: 3000 movi r0, 0 + 2c2e: e000078b bsr 0x3b44 // 3b44 + + TemCtrl_Init(); + 2c32: e00019d9 bsr 0x5fe4 // 5fe4 + DisPlay_Init(); + 2c36: e0001f13 bsr 0x6a5c // 6a5c + Debug_Init(); + 2c3a: e00021ad bsr 0x6f94 // 6f94 + + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c3e: e3fff845 bsr 0x1cc8 // 1cc8 + + UART2_TASK(); + 2c42: e00006eb bsr 0x3a18 // 3a18 + + Touch_Key_Task(); + 2c46: e00008e9 bsr 0x3e18 // 3e18 + + TemCtrl_Pro(); + 2c4a: e0001b79 bsr 0x633c // 633c + + DisPlay_Task(); + 2c4e: e0001fc3 bsr 0x6bd4 // 6bd4 + + HT1621_Refresh_Task(); + 2c52: e0001981 bsr 0x5f54 // 5f54 + + ADC_Sample_Task(); + 2c56: e0000e85 bsr 0x4960 // 4960 + + Debug_Task(); + 2c5a: e0002207 bsr 0x7068 // 7068 + + RLY_Direct_Control(); + 2c5e: e00022a3 bsr 0x71a4 // 71a4 + + Tm1812_Task(); + 2c62: e00013dd bsr 0x541c // 541c + 2c66: 07ec br 0x2c3e // 2c3e + 2c68: 20000434 .long 0x20000434 + 2c6c: 00008a34 .long 0x00008a34 + +Disassembly of section .text.delay_nms: + +00002c70 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2c70: 14d0 push r15 + 2c72: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2c74: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2c76: 3300 movi r3, 0 + j = 50* t; + 2c78: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2c7a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2c7c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2c7e: b860 st.w r3, (r14, 0x0) + 2c80: 9840 ld.w r2, (r14, 0x0) + 2c82: 9861 ld.w r3, (r14, 0x4) + 2c84: 64c8 cmphs r2, r3 + 2c86: 0c03 bf 0x2c8c // 2c8c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2c88: 1403 addi r14, r14, 12 + 2c8a: 1490 pop r15 + k++; + 2c8c: 9862 ld.w r3, (r14, 0x8) + 2c8e: 2300 addi r3, 1 + 2c90: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2c92: e3fff81b bsr 0x1cc8 // 1cc8 + for ( i = 0; i < j; i++ ) + 2c96: 9860 ld.w r3, (r14, 0x0) + 2c98: 2300 addi r3, 1 + 2c9a: 07f2 br 0x2c7e // 2c7e + +Disassembly of section .text.delay_nus: + +00002c9c : +void delay_nus(unsigned int t) +{ + 2c9c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2c9e: 3300 movi r3, 0 + 2ca0: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2ca2: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2ca4: b860 st.w r3, (r14, 0x0) + 2ca6: 9840 ld.w r2, (r14, 0x0) + 2ca8: 9861 ld.w r3, (r14, 0x4) + 2caa: 64c8 cmphs r2, r3 + 2cac: 0c03 bf 0x2cb2 // 2cb2 + { + k++; + } +} + 2cae: 1403 addi r14, r14, 12 + 2cb0: 783c jmp r15 + k++; + 2cb2: 9862 ld.w r3, (r14, 0x8) + 2cb4: 2300 addi r3, 1 + 2cb6: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2cb8: 9860 ld.w r3, (r14, 0x0) + 2cba: 2300 addi r3, 1 + 2cbc: 07f4 br 0x2ca4 // 2ca4 + +Disassembly of section .text.GPIO_CONFIG: + +00002cc0 : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 2cc0: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 2cc2: 1091 lrw r4, 0x2000004c // 2d04 + 2cc4: 310e movi r1, 14 + 2cc6: 9400 ld.w r0, (r4, 0x0) + 2cc8: e3fff926 bsr 0x1f14 // 1f14 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 2ccc: 320e movi r2, 14 + 2cce: 310e movi r1, 14 + 2cd0: 3000 movi r0, 0 + 2cd2: e3fff933 bsr 0x1f38 // 1f38 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 2cd6: 300e movi r0, 14 + 2cd8: e3fff9b6 bsr 0x2044 // 2044 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 2cdc: 3180 movi r1, 128 + 2cde: 3200 movi r2, 0 + 2ce0: 4127 lsli r1, r1, 7 + 2ce2: 3001 movi r0, 1 + 2ce4: e3fff834 bsr 0x1d4c // 1d4c + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 2ce8: 3180 movi r1, 128 + 2cea: 4127 lsli r1, r1, 7 + 2cec: 3001 movi r0, 1 + 2cee: e3fff84f bsr 0x1d8c // 1d8c + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 2cf2: 3180 movi r1, 128 + 2cf4: 9400 ld.w r0, (r4, 0x0) + 2cf6: 4127 lsli r1, r1, 7 + 2cf8: e3fff864 bsr 0x1dc0 // 1dc0 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 2cfc: e3fff864 bsr 0x1dc4 // 1dc4 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 2d00: 1491 pop r4, r15 + 2d02: 0000 bkpt + 2d04: 2000004c .long 0x2000004c + +Disassembly of section .text.BT_CONFIG: + +00002d08 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2d08: 14d2 push r4-r5, r15 + 2d0a: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2d0c: 1095 lrw r4, 0x20000008 // 2d60 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d0e: 3500 movi r5, 0 + BT_DeInit(BT1); + 2d10: 9400 ld.w r0, (r4, 0x0) + 2d12: e3fffa3d bsr 0x218c // 218c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d16: 9400 ld.w r0, (r4, 0x0) + 2d18: b8a1 st.w r5, (r14, 0x4) + 2d1a: b8a0 st.w r5, (r14, 0x0) + 2d1c: 3308 movi r3, 8 + 2d1e: 3200 movi r2, 0 + 2d20: 3101 movi r1, 1 + 2d22: e3fffa4c bsr 0x21ba // 21ba + 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); + 2d26: 3380 movi r3, 128 + 2d28: 4363 lsli r3, r3, 3 + 2d2a: b861 st.w r3, (r14, 0x4) + 2d2c: 9400 ld.w r0, (r4, 0x0) + 2d2e: 3300 movi r3, 0 + 2d30: b8a3 st.w r5, (r14, 0xc) + 2d32: b8a2 st.w r5, (r14, 0x8) + 2d34: b8a0 st.w r5, (r14, 0x0) + 2d36: 3200 movi r2, 0 + 2d38: 3180 movi r1, 128 + 2d3a: e3fffa4c bsr 0x21d2 // 21d2 + BT_Period_CMP_Write(BT1,4780,1); + 2d3e: 3201 movi r2, 1 + 2d40: 1029 lrw r1, 0x12ac // 2d64 + 2d42: 9400 ld.w r0, (r4, 0x0) + 2d44: e3fffa5d bsr 0x21fe // 21fe + BT_Start(BT1); + 2d48: 9400 ld.w r0, (r4, 0x0) + 2d4a: e3fffa2f bsr 0x21a8 // 21a8 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2d4e: 9400 ld.w r0, (r4, 0x0) + 2d50: 3202 movi r2, 2 + 2d52: 3101 movi r1, 1 + 2d54: e3fffa58 bsr 0x2204 // 2204 + BT1_INT_ENABLE(); + 2d58: e3fffa60 bsr 0x2218 // 2218 + +} + 2d5c: 1404 addi r14, r14, 16 + 2d5e: 1492 pop r4-r5, r15 + 2d60: 20000008 .long 0x20000008 + 2d64: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002d68 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2d68: 14d0 push r15 + 2d6a: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2d6c: e3fff6fa bsr 0x1b60 // 1b60 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2d70: 3101 movi r1, 1 + 2d72: 3001 movi r0, 1 + 2d74: e3fff71c bsr 0x1bac // 1bac + //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 + 2d78: 3000 movi r0, 0 + 2d7a: e3fff775 bsr 0x1c64 // 1c64 + 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 + 2d7e: 3180 movi r1, 128 + 2d80: 3308 movi r3, 8 + 2d82: 3200 movi r2, 0 + 2d84: 4121 lsli r1, r1, 1 + 2d86: 3002 movi r0, 2 + 2d88: e3fff72a bsr 0x1bdc // 1bdc +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2d8c: 30c0 movi r0, 192 + 2d8e: 3118 movi r1, 24 + 2d90: 4002 lsli r0, r0, 2 + 2d92: e3fff7a5 bsr 0x1cdc // 1cdc + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2d96: 3001 movi r0, 1 + 2d98: e3fff77a bsr 0x1c8c // 1c8c + SYSCON_IWDCNT_Reload(); //reload WDT + 2d9c: e3fff796 bsr 0x1cc8 // 1cc8 + IWDT_Int_Enable(); + 2da0: e3fff7c8 bsr 0x1d30 // 1d30 + //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 + 2da4: 3340 movi r3, 64 + 2da6: b860 st.w r3, (r14, 0x0) + 2da8: 31c0 movi r1, 192 + 2daa: 3380 movi r3, 128 + 2dac: 4364 lsli r3, r3, 4 + 2dae: 3200 movi r2, 0 + 2db0: 4123 lsli r1, r1, 3 + 2db2: 3000 movi r0, 0 + 2db4: e3fff7a0 bsr 0x1cf4 // 1cf4 + LVD_Int_Enable(); + 2db8: e3fff7ae bsr 0x1d14 // 1d14 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2dbc: e3fff80c bsr 0x1dd4 // 1dd4 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2dc0: 3000 movi r0, 0 + 2dc2: e0002a9b bsr 0x82f8 // 82f8 + +} + 2dc6: 1401 addi r14, r14, 4 + 2dc8: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002dcc : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2dcc: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2dce: 107d lrw r3, 0x2000005c // 2e40 + Sys_RSR = 0x00000000; + 2dd0: 105d lrw r2, 0x200000ac // 2e44 + 2dd2: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2dd4: 9360 ld.w r3, (r3, 0x0) + 2dd6: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2dd8: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2dda: 600c addu r0, r3 + 2ddc: 9004 ld.w r0, (r0, 0x10) + 2dde: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2de0: 105a lrw r2, 0x200000a8 // 2e48 + 2de2: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2de4: 3180 movi r1, 128 + 2de6: 4121 lsli r1, r1, 1 + 2de8: 604c addu r1, r3 + 2dea: 9120 ld.w r1, (r1, 0x0) + 2dec: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2dee: 1058 lrw r2, 0xfffffff // 2e4c + 2df0: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2df2: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2df4: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2df6: 934c ld.w r2, (r3, 0x30) + 2df8: 6884 and r2, r1 + 2dfa: 3a40 cmpnei r2, 0 + 2dfc: 0ffd bf 0x2df6 // 2df6 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2dfe: e3ffffb5 bsr 0x2d68 // 2d68 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2e02: e0000543 bsr 0x3888 // 3888 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2e06: e3fff7ed bsr 0x1de0 // 1de0 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2e0a: 3101 movi r1, 1 + 2e0c: 300f movi r0, 15 + 2e0e: e3fff7fb bsr 0x1e04 // 1e04 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2e12: 3102 movi r1, 2 + 2e14: 3019 movi r0, 25 + 2e16: e3fff7f7 bsr 0x1e04 // 1e04 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2e1a: e0002179 bsr 0x710c // 710c + + BT_CONFIG(); //BT initial + 2e1e: e3ffff75 bsr 0x2d08 // 2d08 + + GPIO_CONFIG(); + 2e22: e3ffff4f bsr 0x2cc0 // 2cc0 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2e26: 102b lrw r1, 0x76f4 // 2e50 + 2e28: 3002 movi r0, 2 + 2e2a: e0000535 bsr 0x3894 // 3894 + + HT1621_Init(); //显示驱动初始化 + 2e2e: e00013f5 bsr 0x5618 // 5618 + + TM1812_LED_Init(); + 2e32: e000138b bsr 0x5548 // 5548 + + ADC_Init(); + 2e36: e0000c99 bsr 0x4768 // 4768 + + Touch_Key_Init(); + 2e3a: e000068d bsr 0x3b54 // 3b54 + +} + 2e3e: 1490 pop r15 + 2e40: 2000005c .long 0x2000005c + 2e44: 200000ac .long 0x200000ac + 2e48: 200000a8 .long 0x200000a8 + 2e4c: 0fffffff .long 0x0fffffff + 2e50: 000076f4 .long 0x000076f4 + +Disassembly of section .text.SYSCONIntHandler: + +00002e54 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2e54: 1460 nie + 2e56: 1462 ipush + // ISR content ... + nop; + 2e58: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2e5a: 117a lrw r3, 0x2000005c // 2f40 + 2e5c: 3280 movi r2, 128 + 2e5e: 9360 ld.w r3, (r3, 0x0) + 2e60: 60c8 addu r3, r2 + 2e62: 9323 ld.w r1, (r3, 0xc) + 2e64: 3001 movi r0, 1 + 2e66: 6840 and r1, r0 + 2e68: 3940 cmpnei r1, 0 + 2e6a: 0c04 bf 0x2e72 // 2e72 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2e6c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2e6e: 1463 ipop + 2e70: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2e72: 9323 ld.w r1, (r3, 0xc) + 2e74: 3002 movi r0, 2 + 2e76: 6840 and r1, r0 + 2e78: 3940 cmpnei r1, 0 + 2e7a: 0bf9 bt 0x2e6c // 2e6c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2e7c: 9323 ld.w r1, (r3, 0xc) + 2e7e: 3008 movi r0, 8 + 2e80: 6840 and r1, r0 + 2e82: 3940 cmpnei r1, 0 + 2e84: 0bf4 bt 0x2e6c // 2e6c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2e86: 9323 ld.w r1, (r3, 0xc) + 2e88: 3010 movi r0, 16 + 2e8a: 6840 and r1, r0 + 2e8c: 3940 cmpnei r1, 0 + 2e8e: 0bef bt 0x2e6c // 2e6c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2e90: 9323 ld.w r1, (r3, 0xc) + 2e92: 6848 and r1, r2 + 2e94: 3940 cmpnei r1, 0 + 2e96: 0c03 bf 0x2e9c // 2e9c + SYSCON->ICR = CMD_ERR_ST; + 2e98: b341 st.w r2, (r3, 0x4) +} + 2e9a: 07ea br 0x2e6e // 2e6e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2e9c: 3280 movi r2, 128 + 2e9e: 9323 ld.w r1, (r3, 0xc) + 2ea0: 4241 lsli r2, r2, 1 + 2ea2: 6848 and r1, r2 + 2ea4: 3940 cmpnei r1, 0 + 2ea6: 0bf9 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2ea8: 3280 movi r2, 128 + 2eaa: 9323 ld.w r1, (r3, 0xc) + 2eac: 4242 lsli r2, r2, 2 + 2eae: 6848 and r1, r2 + 2eb0: 3940 cmpnei r1, 0 + 2eb2: 0bf3 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2eb4: 3280 movi r2, 128 + 2eb6: 9323 ld.w r1, (r3, 0xc) + 2eb8: 4243 lsli r2, r2, 3 + 2eba: 6848 and r1, r2 + 2ebc: 3940 cmpnei r1, 0 + 2ebe: 0bed bt 0x2e98 // 2e98 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2ec0: 3280 movi r2, 128 + 2ec2: 9323 ld.w r1, (r3, 0xc) + 2ec4: 4244 lsli r2, r2, 4 + 2ec6: 6848 and r1, r2 + 2ec8: 3940 cmpnei r1, 0 + 2eca: 0c03 bf 0x2ed0 // 2ed0 + nop; + 2ecc: 6c03 mov r0, r0 + 2ece: 07e5 br 0x2e98 // 2e98 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2ed0: 3280 movi r2, 128 + 2ed2: 9323 ld.w r1, (r3, 0xc) + 2ed4: 4245 lsli r2, r2, 5 + 2ed6: 6848 and r1, r2 + 2ed8: 3940 cmpnei r1, 0 + 2eda: 0bdf bt 0x2e98 // 2e98 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2edc: 3280 movi r2, 128 + 2ede: 9323 ld.w r1, (r3, 0xc) + 2ee0: 4246 lsli r2, r2, 6 + 2ee2: 6848 and r1, r2 + 2ee4: 3940 cmpnei r1, 0 + 2ee6: 0bd9 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2ee8: 3280 movi r2, 128 + 2eea: 9323 ld.w r1, (r3, 0xc) + 2eec: 4247 lsli r2, r2, 7 + 2eee: 6848 and r1, r2 + 2ef0: 3940 cmpnei r1, 0 + 2ef2: 0bd3 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2ef4: 3280 movi r2, 128 + 2ef6: 9323 ld.w r1, (r3, 0xc) + 2ef8: 424b lsli r2, r2, 11 + 2efa: 6848 and r1, r2 + 2efc: 3940 cmpnei r1, 0 + 2efe: 0bcd bt 0x2e98 // 2e98 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2f00: 3280 movi r2, 128 + 2f02: 9323 ld.w r1, (r3, 0xc) + 2f04: 424c lsli r2, r2, 12 + 2f06: 6848 and r1, r2 + 2f08: 3940 cmpnei r1, 0 + 2f0a: 0bc7 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2f0c: 3280 movi r2, 128 + 2f0e: 9323 ld.w r1, (r3, 0xc) + 2f10: 424d lsli r2, r2, 13 + 2f12: 6848 and r1, r2 + 2f14: 3940 cmpnei r1, 0 + 2f16: 0bc1 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2f18: 3280 movi r2, 128 + 2f1a: 9323 ld.w r1, (r3, 0xc) + 2f1c: 424e lsli r2, r2, 14 + 2f1e: 6848 and r1, r2 + 2f20: 3940 cmpnei r1, 0 + 2f22: 0bbb bt 0x2e98 // 2e98 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2f24: 3280 movi r2, 128 + 2f26: 9323 ld.w r1, (r3, 0xc) + 2f28: 424f lsli r2, r2, 15 + 2f2a: 6848 and r1, r2 + 2f2c: 3940 cmpnei r1, 0 + 2f2e: 0bb5 bt 0x2e98 // 2e98 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2f30: 3280 movi r2, 128 + 2f32: 9323 ld.w r1, (r3, 0xc) + 2f34: 4256 lsli r2, r2, 22 + 2f36: 6848 and r1, r2 + 2f38: 3940 cmpnei r1, 0 + 2f3a: 0baf bt 0x2e98 // 2e98 + 2f3c: 0799 br 0x2e6e // 2e6e + 2f3e: 0000 bkpt + 2f40: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002f44 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2f44: 1460 nie + 2f46: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2f48: 1078 lrw r3, 0x20000060 // 2fa8 + 2f4a: 3101 movi r1, 1 + 2f4c: 9360 ld.w r3, (r3, 0x0) + 2f4e: 934b ld.w r2, (r3, 0x2c) + 2f50: 6884 and r2, r1 + 2f52: 3a40 cmpnei r2, 0 + 2f54: 0c04 bf 0x2f5c // 2f5c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2f56: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2f58: 1463 ipop + 2f5a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2f5c: 934b ld.w r2, (r3, 0x2c) + 2f5e: 3102 movi r1, 2 + 2f60: 6884 and r2, r1 + 2f62: 3a40 cmpnei r2, 0 + 2f64: 0bf9 bt 0x2f56 // 2f56 + else if(IFC->MISR&PEP_END_INT) + 2f66: 934b ld.w r2, (r3, 0x2c) + 2f68: 3104 movi r1, 4 + 2f6a: 6884 and r2, r1 + 2f6c: 3a40 cmpnei r2, 0 + 2f6e: 0bf4 bt 0x2f56 // 2f56 + else if(IFC->MISR&PROT_ERR_INT) + 2f70: 3280 movi r2, 128 + 2f72: 932b ld.w r1, (r3, 0x2c) + 2f74: 4245 lsli r2, r2, 5 + 2f76: 6848 and r1, r2 + 2f78: 3940 cmpnei r1, 0 + 2f7a: 0c03 bf 0x2f80 // 2f80 + IFC->ICR=OVW_ERR_INT; + 2f7c: b34c st.w r2, (r3, 0x30) +} + 2f7e: 07ed br 0x2f58 // 2f58 + else if(IFC->MISR&UDEF_ERR_INT) + 2f80: 3280 movi r2, 128 + 2f82: 932b ld.w r1, (r3, 0x2c) + 2f84: 4246 lsli r2, r2, 6 + 2f86: 6848 and r1, r2 + 2f88: 3940 cmpnei r1, 0 + 2f8a: 0bf9 bt 0x2f7c // 2f7c + else if(IFC->MISR&ADDR_ERR_INT) + 2f8c: 3280 movi r2, 128 + 2f8e: 932b ld.w r1, (r3, 0x2c) + 2f90: 4247 lsli r2, r2, 7 + 2f92: 6848 and r1, r2 + 2f94: 3940 cmpnei r1, 0 + 2f96: 0bf3 bt 0x2f7c // 2f7c + else if(IFC->MISR&OVW_ERR_INT) + 2f98: 3280 movi r2, 128 + 2f9a: 932b ld.w r1, (r3, 0x2c) + 2f9c: 4248 lsli r2, r2, 8 + 2f9e: 6848 and r1, r2 + 2fa0: 3940 cmpnei r1, 0 + 2fa2: 0bed bt 0x2f7c // 2f7c + 2fa4: 07da br 0x2f58 // 2f58 + 2fa6: 0000 bkpt + 2fa8: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00002fac : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 2fac: 1460 nie + 2fae: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2fb0: 1078 lrw r3, 0x20000050 // 3010 + 2fb2: 3101 movi r1, 1 + 2fb4: 9360 ld.w r3, (r3, 0x0) + 2fb6: 9348 ld.w r2, (r3, 0x20) + 2fb8: 6884 and r2, r1 + 2fba: 3a40 cmpnei r2, 0 + 2fbc: 0c04 bf 0x2fc4 // 2fc4 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 2fbe: 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; + } +} + 2fc0: 1463 ipop + 2fc2: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2fc4: 9348 ld.w r2, (r3, 0x20) + 2fc6: 3102 movi r1, 2 + 2fc8: 6884 and r2, r1 + 2fca: 3a40 cmpnei r2, 0 + 2fcc: 0bf9 bt 0x2fbe // 2fbe + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 2fce: 9348 ld.w r2, (r3, 0x20) + 2fd0: 3104 movi r1, 4 + 2fd2: 6884 and r2, r1 + 2fd4: 3a40 cmpnei r2, 0 + 2fd6: 0bf4 bt 0x2fbe // 2fbe + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2fd8: 9348 ld.w r2, (r3, 0x20) + 2fda: 3110 movi r1, 16 + 2fdc: 6884 and r2, r1 + 2fde: 3a40 cmpnei r2, 0 + 2fe0: 0bef bt 0x2fbe // 2fbe + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2fe2: 9348 ld.w r2, (r3, 0x20) + 2fe4: 3120 movi r1, 32 + 2fe6: 6884 and r2, r1 + 2fe8: 3a40 cmpnei r2, 0 + 2fea: 0bea bt 0x2fbe // 2fbe + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 2fec: 9348 ld.w r2, (r3, 0x20) + 2fee: 3140 movi r1, 64 + 2ff0: 6884 and r2, r1 + 2ff2: 3a40 cmpnei r2, 0 + 2ff4: 0be5 bt 0x2fbe // 2fbe + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 2ff6: 9348 ld.w r2, (r3, 0x20) + 2ff8: 3180 movi r1, 128 + 2ffa: 6884 and r2, r1 + 2ffc: 3a40 cmpnei r2, 0 + 2ffe: 0be0 bt 0x2fbe // 2fbe + 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 + 3000: 3280 movi r2, 128 + 3002: 9328 ld.w r1, (r3, 0x20) + 3004: 4249 lsli r2, r2, 9 + 3006: 6848 and r1, r2 + 3008: 3940 cmpnei r1, 0 + 300a: 0fdb bf 0x2fc0 // 2fc0 + ADC0->CSR = ADC12_SEQ_END0; + 300c: b347 st.w r2, (r3, 0x1c) +} + 300e: 07d9 br 0x2fc0 // 2fc0 + 3010: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003014 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3014: 1460 nie + 3016: 1462 ipush + 3018: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 301a: 1387 lrw r4, 0x20000020 // 31b4 + 301c: 3280 movi r2, 128 + 301e: 9460 ld.w r3, (r4, 0x0) + 3020: 60c8 addu r3, r2 + 3022: 9335 ld.w r1, (r3, 0x54) + 3024: 3001 movi r0, 1 + 3026: 6840 and r1, r0 + 3028: 3940 cmpnei r1, 0 + 302a: 0c03 bf 0x3030 // 3030 + 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; + 302c: b317 st.w r0, (r3, 0x5c) + 302e: 0424 br 0x3076 // 3076 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3030: 9335 ld.w r1, (r3, 0x54) + 3032: 3002 movi r0, 2 + 3034: 6840 and r1, r0 + 3036: 3940 cmpnei r1, 0 + 3038: 0bfa bt 0x302c // 302c + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 303a: 9335 ld.w r1, (r3, 0x54) + 303c: 3004 movi r0, 4 + 303e: 6840 and r1, r0 + 3040: 3940 cmpnei r1, 0 + 3042: 0bf5 bt 0x302c // 302c + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3044: 9335 ld.w r1, (r3, 0x54) + 3046: 3008 movi r0, 8 + 3048: 6840 and r1, r0 + 304a: 3940 cmpnei r1, 0 + 304c: 0bf0 bt 0x302c // 302c + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 304e: 9335 ld.w r1, (r3, 0x54) + 3050: 3010 movi r0, 16 + 3052: 6840 and r1, r0 + 3054: 3940 cmpnei r1, 0 + 3056: 0c1f bf 0x3094 // 3094 + EPT0->ICR=EPT_CAP_LD0; + 3058: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 305a: 3200 movi r2, 0 + 305c: 3101 movi r1, 1 + 305e: 3000 movi r0, 0 + 3060: e3fff676 bsr 0x1d4c // 1d4c + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3064: 3201 movi r2, 1 + 3066: 3101 movi r1, 1 + 3068: 3001 movi r0, 1 + 306a: e3fff671 bsr 0x1d4c // 1d4c + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 306e: 9460 ld.w r3, (r4, 0x0) + 3070: 934b ld.w r2, (r3, 0x2c) + 3072: 1272 lrw r3, 0x20000250 // 31b8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3074: 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 + 3076: 9460 ld.w r3, (r4, 0x0) + 3078: 3280 movi r2, 128 + 307a: 60c8 addu r3, r2 + 307c: 932b ld.w r1, (r3, 0x2c) + 307e: 3001 movi r0, 1 + 3080: 6840 and r1, r0 + 3082: 3940 cmpnei r1, 0 + 3084: 0c61 bf 0x3146 // 3146 + { + 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; + 3086: 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; + } +} + 3088: d9ee2001 ld.w r15, (r14, 0x4) + 308c: 9880 ld.w r4, (r14, 0x0) + 308e: 1402 addi r14, r14, 8 + 3090: 1463 ipop + 3092: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3094: 9335 ld.w r1, (r3, 0x54) + 3096: 3020 movi r0, 32 + 3098: 6840 and r1, r0 + 309a: 3940 cmpnei r1, 0 + 309c: 0c10 bf 0x30bc // 30bc + EPT0->ICR=EPT_CAP_LD1; + 309e: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 30a0: 3200 movi r2, 0 + 30a2: 3101 movi r1, 1 + 30a4: 3001 movi r0, 1 + 30a6: e3fff653 bsr 0x1d4c // 1d4c + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 30aa: 3201 movi r2, 1 + 30ac: 3101 movi r1, 1 + 30ae: 3000 movi r0, 0 + 30b0: e3fff64e bsr 0x1d4c // 1d4c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 30b4: 9460 ld.w r3, (r4, 0x0) + 30b6: 934c ld.w r2, (r3, 0x30) + 30b8: 1261 lrw r3, 0x2000024c // 31bc + 30ba: 07dd br 0x3074 // 3074 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 30bc: 9335 ld.w r1, (r3, 0x54) + 30be: 3040 movi r0, 64 + 30c0: 6840 and r1, r0 + 30c2: 3940 cmpnei r1, 0 + 30c4: 0bb4 bt 0x302c // 302c + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 30c6: 9335 ld.w r1, (r3, 0x54) + 30c8: 6848 and r1, r2 + 30ca: 3940 cmpnei r1, 0 + 30cc: 0c03 bf 0x30d2 // 30d2 + EPT0->ICR=EPT_CDD; + 30ce: b357 st.w r2, (r3, 0x5c) + 30d0: 07d3 br 0x3076 // 3076 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 30d2: 3280 movi r2, 128 + 30d4: 9335 ld.w r1, (r3, 0x54) + 30d6: 4241 lsli r2, r2, 1 + 30d8: 6848 and r1, r2 + 30da: 3940 cmpnei r1, 0 + 30dc: 0bf9 bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 30de: 3280 movi r2, 128 + 30e0: 9335 ld.w r1, (r3, 0x54) + 30e2: 4242 lsli r2, r2, 2 + 30e4: 6848 and r1, r2 + 30e6: 3940 cmpnei r1, 0 + 30e8: 0bf3 bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 30ea: 3280 movi r2, 128 + 30ec: 9335 ld.w r1, (r3, 0x54) + 30ee: 4243 lsli r2, r2, 3 + 30f0: 6848 and r1, r2 + 30f2: 3940 cmpnei r1, 0 + 30f4: 0bed bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 30f6: 3280 movi r2, 128 + 30f8: 9335 ld.w r1, (r3, 0x54) + 30fa: 4244 lsli r2, r2, 4 + 30fc: 6848 and r1, r2 + 30fe: 3940 cmpnei r1, 0 + 3100: 0be7 bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3102: 3280 movi r2, 128 + 3104: 9335 ld.w r1, (r3, 0x54) + 3106: 4245 lsli r2, r2, 5 + 3108: 6848 and r1, r2 + 310a: 3940 cmpnei r1, 0 + 310c: 0be1 bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 310e: 3280 movi r2, 128 + 3110: 9335 ld.w r1, (r3, 0x54) + 3112: 4246 lsli r2, r2, 6 + 3114: 6848 and r1, r2 + 3116: 3940 cmpnei r1, 0 + 3118: 0bdb bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 311a: 3280 movi r2, 128 + 311c: 9335 ld.w r1, (r3, 0x54) + 311e: 4247 lsli r2, r2, 7 + 3120: 6848 and r1, r2 + 3122: 3940 cmpnei r1, 0 + 3124: 0bd5 bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3126: 3280 movi r2, 128 + 3128: 9335 ld.w r1, (r3, 0x54) + 312a: 4248 lsli r2, r2, 8 + 312c: 6848 and r1, r2 + 312e: 3940 cmpnei r1, 0 + 3130: 0bcf bt 0x30ce // 30ce + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3132: 3280 movi r2, 128 + 3134: 9335 ld.w r1, (r3, 0x54) + 3136: 4249 lsli r2, r2, 9 + 3138: 6848 and r1, r2 + 313a: 3940 cmpnei r1, 0 + 313c: 0f9d bf 0x3076 // 3076 + EPT0->ICR=EPT_PEND; + 313e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3140: e3fff9ba bsr 0x24b4 // 24b4 + 3144: 0799 br 0x3076 // 3076 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3146: 932b ld.w r1, (r3, 0x2c) + 3148: 3002 movi r0, 2 + 314a: 6840 and r1, r0 + 314c: 3940 cmpnei r1, 0 + 314e: 0b9c bt 0x3086 // 3086 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3150: 932b ld.w r1, (r3, 0x2c) + 3152: 3004 movi r0, 4 + 3154: 6840 and r1, r0 + 3156: 3940 cmpnei r1, 0 + 3158: 0b97 bt 0x3086 // 3086 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 315a: 932b ld.w r1, (r3, 0x2c) + 315c: 3008 movi r0, 8 + 315e: 6840 and r1, r0 + 3160: 3940 cmpnei r1, 0 + 3162: 0b92 bt 0x3086 // 3086 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3164: 932b ld.w r1, (r3, 0x2c) + 3166: 3010 movi r0, 16 + 3168: 6840 and r1, r0 + 316a: 3940 cmpnei r1, 0 + 316c: 0b8d bt 0x3086 // 3086 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 316e: 932b ld.w r1, (r3, 0x2c) + 3170: 3020 movi r0, 32 + 3172: 6840 and r1, r0 + 3174: 3940 cmpnei r1, 0 + 3176: 0b88 bt 0x3086 // 3086 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3178: 932b ld.w r1, (r3, 0x2c) + 317a: 3040 movi r0, 64 + 317c: 6840 and r1, r0 + 317e: 3940 cmpnei r1, 0 + 3180: 0b83 bt 0x3086 // 3086 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3182: 932b ld.w r1, (r3, 0x2c) + 3184: 6848 and r1, r2 + 3186: 3940 cmpnei r1, 0 + 3188: 0c03 bf 0x318e // 318e + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 318a: b34d st.w r2, (r3, 0x34) +} + 318c: 077e br 0x3088 // 3088 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 318e: 3280 movi r2, 128 + 3190: 932b ld.w r1, (r3, 0x2c) + 3192: 4241 lsli r2, r2, 1 + 3194: 6848 and r1, r2 + 3196: 3940 cmpnei r1, 0 + 3198: 0bf9 bt 0x318a // 318a + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 319a: 3280 movi r2, 128 + 319c: 932b ld.w r1, (r3, 0x2c) + 319e: 4242 lsli r2, r2, 2 + 31a0: 6848 and r1, r2 + 31a2: 3940 cmpnei r1, 0 + 31a4: 0bf3 bt 0x318a // 318a + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 31a6: 3280 movi r2, 128 + 31a8: 932b ld.w r1, (r3, 0x2c) + 31aa: 4243 lsli r2, r2, 3 + 31ac: 6848 and r1, r2 + 31ae: 3940 cmpnei r1, 0 + 31b0: 0bed bt 0x318a // 318a + 31b2: 076b br 0x3088 // 3088 + 31b4: 20000020 .long 0x20000020 + 31b8: 20000250 .long 0x20000250 + 31bc: 2000024c .long 0x2000024c + +Disassembly of section .text.WWDTHandler: + +000031c0 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 31c0: 1460 nie + 31c2: 1462 ipush + 31c4: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 31c6: 10ab lrw r5, 0x20000010 // 31f0 + 31c8: 3401 movi r4, 1 + 31ca: 9560 ld.w r3, (r5, 0x0) + 31cc: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 31ce: 30ff movi r0, 255 + 31d0: e3fff7d6 bsr 0x217c // 217c + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 31d4: 9540 ld.w r2, (r5, 0x0) + 31d6: 9263 ld.w r3, (r2, 0xc) + 31d8: 68d0 and r3, r4 + 31da: 3b40 cmpnei r3, 0 + 31dc: 0c02 bf 0x31e0 // 31e0 + { + WWDT->ICR = WWDT_EVI; + 31de: b285 st.w r4, (r2, 0x14) + } +} + 31e0: d9ee2002 ld.w r15, (r14, 0x8) + 31e4: 98a1 ld.w r5, (r14, 0x4) + 31e6: 9880 ld.w r4, (r14, 0x0) + 31e8: 1403 addi r14, r14, 12 + 31ea: 1463 ipop + 31ec: 1461 nir + 31ee: 0000 bkpt + 31f0: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000031f4 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 31f4: 1460 nie + 31f6: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 31f8: 107e lrw r3, 0x20000024 // 3270 + 31fa: 3101 movi r1, 1 + 31fc: 9360 ld.w r3, (r3, 0x0) + 31fe: 237f addi r3, 128 + 3200: 9355 ld.w r2, (r3, 0x54) + 3202: 6884 and r2, r1 + 3204: 3a40 cmpnei r2, 0 + 3206: 0c04 bf 0x320e // 320e + { + 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; + 3208: 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; + } +} + 320a: 1463 ipop + 320c: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 320e: 9355 ld.w r2, (r3, 0x54) + 3210: 3102 movi r1, 2 + 3212: 6884 and r2, r1 + 3214: 3a40 cmpnei r2, 0 + 3216: 0bf9 bt 0x3208 // 3208 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3218: 9355 ld.w r2, (r3, 0x54) + 321a: 3110 movi r1, 16 + 321c: 6884 and r2, r1 + 321e: 3a40 cmpnei r2, 0 + 3220: 0bf4 bt 0x3208 // 3208 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3222: 9355 ld.w r2, (r3, 0x54) + 3224: 3120 movi r1, 32 + 3226: 6884 and r2, r1 + 3228: 3a40 cmpnei r2, 0 + 322a: 0bef bt 0x3208 // 3208 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 322c: 3280 movi r2, 128 + 322e: 9335 ld.w r1, (r3, 0x54) + 3230: 4241 lsli r2, r2, 1 + 3232: 6848 and r1, r2 + 3234: 3940 cmpnei r1, 0 + 3236: 0c03 bf 0x323c // 323c + GPT0->ICR = GPT_INT_PEND; + 3238: b357 st.w r2, (r3, 0x5c) +} + 323a: 07e8 br 0x320a // 320a + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 323c: 3280 movi r2, 128 + 323e: 9335 ld.w r1, (r3, 0x54) + 3240: 4242 lsli r2, r2, 2 + 3242: 6848 and r1, r2 + 3244: 3940 cmpnei r1, 0 + 3246: 0bf9 bt 0x3238 // 3238 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3248: 3280 movi r2, 128 + 324a: 9335 ld.w r1, (r3, 0x54) + 324c: 4243 lsli r2, r2, 3 + 324e: 6848 and r1, r2 + 3250: 3940 cmpnei r1, 0 + 3252: 0bf3 bt 0x3238 // 3238 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3254: 3280 movi r2, 128 + 3256: 9335 ld.w r1, (r3, 0x54) + 3258: 4244 lsli r2, r2, 4 + 325a: 6848 and r1, r2 + 325c: 3940 cmpnei r1, 0 + 325e: 0bed bt 0x3238 // 3238 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3260: 3280 movi r2, 128 + 3262: 9335 ld.w r1, (r3, 0x54) + 3264: 4249 lsli r2, r2, 9 + 3266: 6848 and r1, r2 + 3268: 3940 cmpnei r1, 0 + 326a: 0be7 bt 0x3238 // 3238 + 326c: 07cf br 0x320a // 320a + 326e: 0000 bkpt + 3270: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003274 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3274: 1460 nie + 3276: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3278: 1079 lrw r3, 0x20000018 // 32dc + 327a: 3101 movi r1, 1 + 327c: 9360 ld.w r3, (r3, 0x0) + 327e: 934a ld.w r2, (r3, 0x28) + 3280: 6884 and r2, r1 + 3282: 3a40 cmpnei r2, 0 + 3284: 0c14 bf 0x32ac // 32ac + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3286: 1057 lrw r2, 0xca53 // 32e0 + RTC->ICR=ALRA_INT; + 3288: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 328a: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 328c: 9342 ld.w r2, (r3, 0x8) + 328e: 6c84 or r2, r1 + 3290: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3292: 3280 movi r2, 128 + 3294: 424d lsli r2, r2, 13 + 3296: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3298: 3102 movi r1, 2 + 329a: 9342 ld.w r2, (r3, 0x8) + 329c: 6884 and r2, r1 + 329e: 3a40 cmpnei r2, 0 + 32a0: 0bfd bt 0x329a // 329a + RTC->CR &= ~0x1; + 32a2: 9342 ld.w r2, (r3, 0x8) + 32a4: 3a80 bclri r2, 0 + 32a6: 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; + } +} + 32a8: 1463 ipop + 32aa: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 32ac: 934a ld.w r2, (r3, 0x28) + 32ae: 3102 movi r1, 2 + 32b0: 6884 and r2, r1 + 32b2: 3a40 cmpnei r2, 0 + 32b4: 0c03 bf 0x32ba // 32ba + RTC->ICR=RTC_TRGEV1_INT; + 32b6: b32b st.w r1, (r3, 0x2c) +} + 32b8: 07f8 br 0x32a8 // 32a8 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 32ba: 934a ld.w r2, (r3, 0x28) + 32bc: 3104 movi r1, 4 + 32be: 6884 and r2, r1 + 32c0: 3a40 cmpnei r2, 0 + 32c2: 0bfa bt 0x32b6 // 32b6 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 32c4: 934a ld.w r2, (r3, 0x28) + 32c6: 3108 movi r1, 8 + 32c8: 6884 and r2, r1 + 32ca: 3a40 cmpnei r2, 0 + 32cc: 0bf5 bt 0x32b6 // 32b6 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 32ce: 934a ld.w r2, (r3, 0x28) + 32d0: 3110 movi r1, 16 + 32d2: 6884 and r2, r1 + 32d4: 3a40 cmpnei r2, 0 + 32d6: 0bf0 bt 0x32b6 // 32b6 + 32d8: 07e8 br 0x32a8 // 32a8 + 32da: 0000 bkpt + 32dc: 20000018 .long 0x20000018 + 32e0: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000032e4 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 32e4: 1460 nie + 32e6: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 32e8: 106d lrw r3, 0x20000040 // 331c + 32ea: 3102 movi r1, 2 + 32ec: 9360 ld.w r3, (r3, 0x0) + 32ee: 9343 ld.w r2, (r3, 0xc) + 32f0: 6884 and r2, r1 + 32f2: 3a40 cmpnei r2, 0 + 32f4: 0c03 bf 0x32fa // 32fa + { + 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; + 32f6: b323 st.w r1, (r3, 0xc) + } +} + 32f8: 0410 br 0x3318 // 3318 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 32fa: 9343 ld.w r2, (r3, 0xc) + 32fc: 3101 movi r1, 1 + 32fe: 6884 and r2, r1 + 3300: 3a40 cmpnei r2, 0 + 3302: 0bfa bt 0x32f6 // 32f6 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3304: 9343 ld.w r2, (r3, 0xc) + 3306: 3108 movi r1, 8 + 3308: 6884 and r2, r1 + 330a: 3a40 cmpnei r2, 0 + 330c: 0bf5 bt 0x32f6 // 32f6 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 330e: 9343 ld.w r2, (r3, 0xc) + 3310: 3104 movi r1, 4 + 3312: 6884 and r2, r1 + 3314: 3a40 cmpnei r2, 0 + 3316: 0bf0 bt 0x32f6 // 32f6 +} + 3318: 1463 ipop + 331a: 1461 nir + 331c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003320 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3320: 1460 nie + 3322: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3324: 106d lrw r3, 0x2000003c // 3358 + 3326: 3102 movi r1, 2 + 3328: 9360 ld.w r3, (r3, 0x0) + 332a: 9343 ld.w r2, (r3, 0xc) + 332c: 6884 and r2, r1 + 332e: 3a40 cmpnei r2, 0 + 3330: 0c03 bf 0x3336 // 3336 + { + 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; + 3332: b323 st.w r1, (r3, 0xc) + } +} + 3334: 0410 br 0x3354 // 3354 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3336: 9343 ld.w r2, (r3, 0xc) + 3338: 3101 movi r1, 1 + 333a: 6884 and r2, r1 + 333c: 3a40 cmpnei r2, 0 + 333e: 0bfa bt 0x3332 // 3332 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3340: 9343 ld.w r2, (r3, 0xc) + 3342: 3108 movi r1, 8 + 3344: 6884 and r2, r1 + 3346: 3a40 cmpnei r2, 0 + 3348: 0bf5 bt 0x3332 // 3332 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 334a: 9343 ld.w r2, (r3, 0xc) + 334c: 3104 movi r1, 4 + 334e: 6884 and r2, r1 + 3350: 3a40 cmpnei r2, 0 + 3352: 0bf0 bt 0x3332 // 3332 +} + 3354: 1463 ipop + 3356: 1461 nir + 3358: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +0000335c : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 335c: 1460 nie + 335e: 1462 ipush + 3360: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3362: 107f lrw r3, 0x20000038 // 33dc + 3364: 3102 movi r1, 2 + 3366: 9360 ld.w r3, (r3, 0x0) + 3368: 9343 ld.w r2, (r3, 0xc) + 336a: 6884 and r2, r1 + 336c: 3a40 cmpnei r2, 0 + 336e: 0c0b bf 0x3384 // 3384 + { + UART2->ISR=UART_RX_INT_S; + 3370: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3372: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3374: 7400 zextb r0, r0 + 3376: e000031d bsr 0x39b0 // 39b0 + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 337a: d9ee2000 ld.w r15, (r14, 0x0) + 337e: 1401 addi r14, r14, 4 + 3380: 1463 ipop + 3382: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3384: 9323 ld.w r1, (r3, 0xc) + 3386: 3201 movi r2, 1 + 3388: 6848 and r1, r2 + 338a: 3940 cmpnei r1, 0 + 338c: 0c0d bf 0x33a6 // 33a6 + UART2->ISR=UART_TX_INT_S; + 338e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3390: 1074 lrw r3, 0x200000bc // 33e0 + 3392: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3394: 1074 lrw r3, 0x200000c0 // 33e4 + 3396: 9360 ld.w r3, (r3, 0x0) + 3398: 3b41 cmpnei r3, 1 + 339a: 0bf0 bt 0x337a // 337a + RS485_Comm_Start ++; + 339c: 1053 lrw r2, 0x200000c4 // 33e8 + RS485_Comm_End ++; + 339e: 9260 ld.w r3, (r2, 0x0) + 33a0: 2300 addi r3, 1 + 33a2: b260 st.w r3, (r2, 0x0) +} + 33a4: 07eb br 0x337a // 337a + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33a6: 9343 ld.w r2, (r3, 0xc) + 33a8: 3108 movi r1, 8 + 33aa: 6884 and r2, r1 + 33ac: 3a40 cmpnei r2, 0 + 33ae: 0c03 bf 0x33b4 // 33b4 + UART2->ISR=UART_TX_IOV_S; + 33b0: b323 st.w r1, (r3, 0xc) + 33b2: 07e4 br 0x337a // 337a + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33b4: 9343 ld.w r2, (r3, 0xc) + 33b6: 3104 movi r1, 4 + 33b8: 6884 and r2, r1 + 33ba: 3a40 cmpnei r2, 0 + 33bc: 0bfa bt 0x33b0 // 33b0 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 33be: 3180 movi r1, 128 + 33c0: 9303 ld.w r0, (r3, 0xc) + 33c2: 412c lsli r1, r1, 12 + 33c4: 6804 and r0, r1 + 33c6: 3840 cmpnei r0, 0 + 33c8: 0fd9 bf 0x337a // 337a + UART2->ISR=UART_TX_DONE_S; + 33ca: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 33cc: 1065 lrw r3, 0x200000bc // 33e0 + 33ce: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33d0: 1065 lrw r3, 0x200000c0 // 33e4 + 33d2: 9360 ld.w r3, (r3, 0x0) + 33d4: 3b41 cmpnei r3, 1 + 33d6: 0bd2 bt 0x337a // 337a + RS485_Comm_End ++; + 33d8: 1045 lrw r2, 0x200000c8 // 33ec + 33da: 07e2 br 0x339e // 339e + 33dc: 20000038 .long 0x20000038 + 33e0: 200000bc .long 0x200000bc + 33e4: 200000c0 .long 0x200000c0 + 33e8: 200000c4 .long 0x200000c4 + 33ec: 200000c8 .long 0x200000c8 + +Disassembly of section .text.SPI0IntHandler: + +000033f0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 33f0: 1460 nie + 33f2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 33f4: 1178 lrw r3, 0x20000034 // 34d4 + 33f6: 3101 movi r1, 1 + 33f8: 9360 ld.w r3, (r3, 0x0) + 33fa: 9347 ld.w r2, (r3, 0x1c) + 33fc: 6884 and r2, r1 + 33fe: 3a40 cmpnei r2, 0 + 3400: 0c03 bf 0x3406 // 3406 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 3402: b328 st.w r1, (r3, 0x20) + } + +} + 3404: 0407 br 0x3412 // 3412 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 3406: 9347 ld.w r2, (r3, 0x1c) + 3408: 3002 movi r0, 2 + 340a: 6880 and r2, r0 + 340c: 3a40 cmpnei r2, 0 + 340e: 0c04 bf 0x3416 // 3416 + SPI0->ICR = SPI_RTIM; + 3410: b308 st.w r0, (r3, 0x20) +} + 3412: 1463 ipop + 3414: 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 + 3416: 9347 ld.w r2, (r3, 0x1c) + 3418: 3004 movi r0, 4 + 341a: 6880 and r2, r0 + 341c: 3a40 cmpnei r2, 0 + 341e: 0c55 bf 0x34c8 // 34c8 + SPI0->ICR = SPI_RXIM; + 3420: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 3422: 9302 ld.w r0, (r3, 0x8) + 3424: 32aa movi r2, 170 + 3426: 6482 cmpne r0, r2 + 3428: 083e bt 0x34a4 // 34a4 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 342a: 3102 movi r1, 2 + 342c: 9343 ld.w r2, (r3, 0xc) + 342e: 6884 and r2, r1 + 3430: 3a40 cmpnei r2, 0 + 3432: 0ffd bf 0x342c // 342c + SPI0->DR = 0x11; + 3434: 3211 movi r2, 17 + 3436: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3438: 3110 movi r1, 16 + 343a: 9343 ld.w r2, (r3, 0xc) + 343c: 6884 and r2, r1 + 343e: 3a40 cmpnei r2, 0 + 3440: 0bfd bt 0x343a // 343a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3442: 3102 movi r1, 2 + 3444: 9343 ld.w r2, (r3, 0xc) + 3446: 6884 and r2, r1 + 3448: 3a40 cmpnei r2, 0 + 344a: 0ffd bf 0x3444 // 3444 + SPI0->DR = 0x12; + 344c: 3212 movi r2, 18 + 344e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3450: 3110 movi r1, 16 + 3452: 9343 ld.w r2, (r3, 0xc) + 3454: 6884 and r2, r1 + 3456: 3a40 cmpnei r2, 0 + 3458: 0bfd bt 0x3452 // 3452 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 345a: 3102 movi r1, 2 + 345c: 9343 ld.w r2, (r3, 0xc) + 345e: 6884 and r2, r1 + 3460: 3a40 cmpnei r2, 0 + 3462: 0ffd bf 0x345c // 345c + SPI0->DR = 0x13; + 3464: 3213 movi r2, 19 + 3466: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3468: 3110 movi r1, 16 + 346a: 9343 ld.w r2, (r3, 0xc) + 346c: 6884 and r2, r1 + 346e: 3a40 cmpnei r2, 0 + 3470: 0bfd bt 0x346a // 346a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3472: 3102 movi r1, 2 + 3474: 9343 ld.w r2, (r3, 0xc) + 3476: 6884 and r2, r1 + 3478: 3a40 cmpnei r2, 0 + 347a: 0ffd bf 0x3474 // 3474 + SPI0->DR = 0x14; + 347c: 3214 movi r2, 20 + 347e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3480: 3110 movi r1, 16 + 3482: 9343 ld.w r2, (r3, 0xc) + 3484: 6884 and r2, r1 + 3486: 3a40 cmpnei r2, 0 + 3488: 0bfd bt 0x3482 // 3482 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 348a: 3102 movi r1, 2 + 348c: 9343 ld.w r2, (r3, 0xc) + 348e: 6884 and r2, r1 + 3490: 3a40 cmpnei r2, 0 + 3492: 0ffd bf 0x348c // 348c + SPI0->DR = 0x15; + 3494: 3215 movi r2, 21 + 3496: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3498: 3110 movi r1, 16 + 349a: 9343 ld.w r2, (r3, 0xc) + 349c: 6884 and r2, r1 + 349e: 3a40 cmpnei r2, 0 + 34a0: 0bfd bt 0x349a // 349a + 34a2: 07b8 br 0x3412 // 3412 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 34a4: 9343 ld.w r2, (r3, 0xc) + 34a6: 6884 and r2, r1 + 34a8: 3a40 cmpnei r2, 0 + 34aa: 0bb4 bt 0x3412 // 3412 + SPI0->DR=0x0; //FIFO=0 + 34ac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34ae: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 34b0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34b2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34b4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34b6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34b8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34ba: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34bc: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34be: 9343 ld.w r2, (r3, 0xc) + 34c0: 6884 and r2, r1 + 34c2: 3a40 cmpnei r2, 0 + 34c4: 0bfd bt 0x34be // 34be + 34c6: 07a6 br 0x3412 // 3412 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 34c8: 9347 ld.w r2, (r3, 0x1c) + 34ca: 3108 movi r1, 8 + 34cc: 6884 and r2, r1 + 34ce: 3a40 cmpnei r2, 0 + 34d0: 0b99 bt 0x3402 // 3402 + 34d2: 07a0 br 0x3412 // 3412 + 34d4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000034d8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 34d8: 1460 nie + 34da: 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) + 34dc: 1073 lrw r3, 0x2000002c // 3528 + 34de: 3104 movi r1, 4 + 34e0: 9360 ld.w r3, (r3, 0x0) + 34e2: 9349 ld.w r2, (r3, 0x24) + 34e4: 6884 and r2, r1 + 34e6: 3a40 cmpnei r2, 0 + 34e8: 0c02 bf 0x34ec // 34ec + { + SIO0->ICR=0X04; + 34ea: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 34ec: 9349 ld.w r2, (r3, 0x24) + 34ee: 3101 movi r1, 1 + 34f0: 6884 and r2, r1 + 34f2: 3a40 cmpnei r2, 0 + 34f4: 0c02 bf 0x34f8 // 34f8 + { + SIO0->ICR=0X01; + 34f6: 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 + 34f8: 9349 ld.w r2, (r3, 0x24) + 34fa: 3102 movi r1, 2 + 34fc: 6884 and r2, r1 + 34fe: 3a40 cmpnei r2, 0 + 3500: 0c03 bf 0x3506 // 3506 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 3502: b32b st.w r1, (r3, 0x2c) + } +} + 3504: 0410 br 0x3524 // 3524 + else if(SIO0->MISR&0X08) //RXBUFFULL + 3506: 9349 ld.w r2, (r3, 0x24) + 3508: 3108 movi r1, 8 + 350a: 6884 and r2, r1 + 350c: 3a40 cmpnei r2, 0 + 350e: 0bfa bt 0x3502 // 3502 + else if(SIO0->MISR&0X010) //BREAK + 3510: 9349 ld.w r2, (r3, 0x24) + 3512: 3110 movi r1, 16 + 3514: 6884 and r2, r1 + 3516: 3a40 cmpnei r2, 0 + 3518: 0bf5 bt 0x3502 // 3502 + else if(SIO0->MISR&0X020) //TIMEOUT + 351a: 9349 ld.w r2, (r3, 0x24) + 351c: 3120 movi r1, 32 + 351e: 6884 and r2, r1 + 3520: 3a40 cmpnei r2, 0 + 3522: 0bf0 bt 0x3502 // 3502 +} + 3524: 1463 ipop + 3526: 1461 nir + 3528: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +0000352c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 352c: 1460 nie + 352e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3530: 106a lrw r3, 0x2000005c // 3558 + 3532: 3101 movi r1, 1 + 3534: 9360 ld.w r3, (r3, 0x0) + 3536: 237f addi r3, 128 + 3538: 934c ld.w r2, (r3, 0x30) + 353a: 6884 and r2, r1 + 353c: 3a40 cmpnei r2, 0 + 353e: 0c04 bf 0x3546 // 3546 + { + SYSCON->EXICR = EXI_PIN0; + 3540: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 3542: 1463 ipop + 3544: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 3546: 3280 movi r2, 128 + 3548: 932c ld.w r1, (r3, 0x30) + 354a: 4249 lsli r2, r2, 9 + 354c: 6848 and r1, r2 + 354e: 3940 cmpnei r1, 0 + 3550: 0ff9 bf 0x3542 // 3542 + SYSCON->EXICR = EXI_PIN16; + 3552: b34b st.w r2, (r3, 0x2c) +} + 3554: 07f7 br 0x3542 // 3542 + 3556: 0000 bkpt + 3558: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +0000355c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 355c: 1460 nie + 355e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 3560: 106a lrw r3, 0x2000005c // 3588 + 3562: 3102 movi r1, 2 + 3564: 9360 ld.w r3, (r3, 0x0) + 3566: 237f addi r3, 128 + 3568: 934c ld.w r2, (r3, 0x30) + 356a: 6884 and r2, r1 + 356c: 3a40 cmpnei r2, 0 + 356e: 0c04 bf 0x3576 // 3576 + { + SYSCON->EXICR = EXI_PIN1; + 3570: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 3572: 1463 ipop + 3574: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 3576: 3280 movi r2, 128 + 3578: 932c ld.w r1, (r3, 0x30) + 357a: 424a lsli r2, r2, 10 + 357c: 6848 and r1, r2 + 357e: 3940 cmpnei r1, 0 + 3580: 0ff9 bf 0x3572 // 3572 + SYSCON->EXICR = EXI_PIN17; + 3582: b34b st.w r2, (r3, 0x2c) +} + 3584: 07f7 br 0x3572 // 3572 + 3586: 0000 bkpt + 3588: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +0000358c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 358c: 1460 nie + 358e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 3590: 1070 lrw r3, 0x2000005c // 35d0 + 3592: 3104 movi r1, 4 + 3594: 9360 ld.w r3, (r3, 0x0) + 3596: 237f addi r3, 128 + 3598: 934c ld.w r2, (r3, 0x30) + 359a: 6884 and r2, r1 + 359c: 3a40 cmpnei r2, 0 + 359e: 0c04 bf 0x35a6 // 35a6 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 35a0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 35a2: 1463 ipop + 35a4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 35a6: 934c ld.w r2, (r3, 0x30) + 35a8: 3108 movi r1, 8 + 35aa: 6884 and r2, r1 + 35ac: 3a40 cmpnei r2, 0 + 35ae: 0bf9 bt 0x35a0 // 35a0 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 35b0: 3280 movi r2, 128 + 35b2: 932c ld.w r1, (r3, 0x30) + 35b4: 424b lsli r2, r2, 11 + 35b6: 6848 and r1, r2 + 35b8: 3940 cmpnei r1, 0 + 35ba: 0c03 bf 0x35c0 // 35c0 + SYSCON->EXICR = EXI_PIN19; + 35bc: b34b st.w r2, (r3, 0x2c) +} + 35be: 07f2 br 0x35a2 // 35a2 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 35c0: 3280 movi r2, 128 + 35c2: 932c ld.w r1, (r3, 0x30) + 35c4: 424c lsli r2, r2, 12 + 35c6: 6848 and r1, r2 + 35c8: 3940 cmpnei r1, 0 + 35ca: 0bf9 bt 0x35bc // 35bc + 35cc: 07eb br 0x35a2 // 35a2 + 35ce: 0000 bkpt + 35d0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000035d4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 35d4: 1460 nie + 35d6: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 35d8: 1075 lrw r3, 0x2000005c // 362c + 35da: 3280 movi r2, 128 + 35dc: 9360 ld.w r3, (r3, 0x0) + 35de: 60c8 addu r3, r2 + 35e0: 932c ld.w r1, (r3, 0x30) + 35e2: 3010 movi r0, 16 + 35e4: 6840 and r1, r0 + 35e6: 3940 cmpnei r1, 0 + 35e8: 0c04 bf 0x35f0 // 35f0 + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 35ea: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 35ec: 1463 ipop + 35ee: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 35f0: 932c ld.w r1, (r3, 0x30) + 35f2: 3020 movi r0, 32 + 35f4: 6840 and r1, r0 + 35f6: 3940 cmpnei r1, 0 + 35f8: 0bf9 bt 0x35ea // 35ea + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 35fa: 932c ld.w r1, (r3, 0x30) + 35fc: 3040 movi r0, 64 + 35fe: 6840 and r1, r0 + 3600: 3940 cmpnei r1, 0 + 3602: 0bf4 bt 0x35ea // 35ea + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 3604: 932c ld.w r1, (r3, 0x30) + 3606: 6848 and r1, r2 + 3608: 3940 cmpnei r1, 0 + 360a: 0c03 bf 0x3610 // 3610 + SYSCON->EXICR = EXI_PIN9; + 360c: b34b st.w r2, (r3, 0x2c) +} + 360e: 07ef br 0x35ec // 35ec + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3610: 3280 movi r2, 128 + 3612: 932c ld.w r1, (r3, 0x30) + 3614: 4241 lsli r2, r2, 1 + 3616: 6848 and r1, r2 + 3618: 3940 cmpnei r1, 0 + 361a: 0bf9 bt 0x360c // 360c + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 361c: 3280 movi r2, 128 + 361e: 932c ld.w r1, (r3, 0x30) + 3620: 4242 lsli r2, r2, 2 + 3622: 6848 and r1, r2 + 3624: 3940 cmpnei r1, 0 + 3626: 0bf3 bt 0x360c // 360c + 3628: 07e2 br 0x35ec // 35ec + 362a: 0000 bkpt + 362c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003630 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3630: 1460 nie + 3632: 1462 ipush + 3634: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 3636: 107d lrw r3, 0x2000005c // 36a8 + 3638: 3280 movi r2, 128 + 363a: 9360 ld.w r3, (r3, 0x0) + 363c: 237f addi r3, 128 + 363e: 932c ld.w r1, (r3, 0x30) + 3640: 4243 lsli r2, r2, 3 + 3642: 6848 and r1, r2 + 3644: 3940 cmpnei r1, 0 + 3646: 0c03 bf 0x364c // 364c + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 3648: b34b st.w r2, (r3, 0x2c) + } +} + 364a: 0422 br 0x368e // 368e + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 364c: 3280 movi r2, 128 + 364e: 932c ld.w r1, (r3, 0x30) + 3650: 4244 lsli r2, r2, 4 + 3652: 6848 and r1, r2 + 3654: 3940 cmpnei r1, 0 + 3656: 0bf9 bt 0x3648 // 3648 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 3658: 3280 movi r2, 128 + 365a: 932c ld.w r1, (r3, 0x30) + 365c: 4245 lsli r2, r2, 5 + 365e: 6848 and r1, r2 + 3660: 3940 cmpnei r1, 0 + 3662: 0bf3 bt 0x3648 // 3648 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 3664: 3280 movi r2, 128 + 3666: 932c ld.w r1, (r3, 0x30) + 3668: 4246 lsli r2, r2, 6 + 366a: 6848 and r1, r2 + 366c: 3940 cmpnei r1, 0 + 366e: 0bed bt 0x3648 // 3648 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3670: 3280 movi r2, 128 + 3672: 932c ld.w r1, (r3, 0x30) + 3674: 4247 lsli r2, r2, 7 + 3676: 6848 and r1, r2 + 3678: 3940 cmpnei r1, 0 + 367a: 0c0f bf 0x3698 // 3698 + SYSCON->EXICR = EXI_PIN14; + 367c: b34b st.w r2, (r3, 0x2c) + if(g_switch.rly_zCnt < 8){ + 367e: 104c lrw r2, 0x2000048c // 36ac + 3680: 8272 ld.b r3, (r2, 0x12) + 3682: 3b07 cmphsi r3, 8 + 3684: 0803 bt 0x368a // 368a + g_switch.rly_zCnt++; + 3686: 2300 addi r3, 1 + 3688: a272 st.b r3, (r2, 0x12) + RLY_Zero_Control(); //继电器控制 + 368a: e0001df1 bsr 0x726c // 726c +} + 368e: d9ee2000 ld.w r15, (r14, 0x0) + 3692: 1401 addi r14, r14, 4 + 3694: 1463 ipop + 3696: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 3698: 3280 movi r2, 128 + 369a: 932c ld.w r1, (r3, 0x30) + 369c: 4248 lsli r2, r2, 8 + 369e: 6848 and r1, r2 + 36a0: 3940 cmpnei r1, 0 + 36a2: 0bd3 bt 0x3648 // 3648 + 36a4: 07f5 br 0x368e // 368e + 36a6: 0000 bkpt + 36a8: 2000005c .long 0x2000005c + 36ac: 2000048c .long 0x2000048c + +Disassembly of section .text.LPTIntHandler: + +000036b0 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 36b0: 1460 nie + 36b2: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 36b4: 106b lrw r3, 0x20000014 // 36e0 + 36b6: 3101 movi r1, 1 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: 934e ld.w r2, (r3, 0x38) + 36bc: 6884 and r2, r1 + 36be: 3a40 cmpnei r2, 0 + 36c0: 0c03 bf 0x36c6 // 36c6 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 36c2: b330 st.w r1, (r3, 0x40) + } +} + 36c4: 040b br 0x36da // 36da + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 36c6: 934e ld.w r2, (r3, 0x38) + 36c8: 3102 movi r1, 2 + 36ca: 6884 and r2, r1 + 36cc: 3a40 cmpnei r2, 0 + 36ce: 0bfa bt 0x36c2 // 36c2 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 36d0: 934e ld.w r2, (r3, 0x38) + 36d2: 3104 movi r1, 4 + 36d4: 6884 and r2, r1 + 36d6: 3a40 cmpnei r2, 0 + 36d8: 0bf5 bt 0x36c2 // 36c2 +} + 36da: 1463 ipop + 36dc: 1461 nir + 36de: 0000 bkpt + 36e0: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000036e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 36e4: 1460 nie + 36e6: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 36e8: 1071 lrw r3, 0x2000000c // 372c + 36ea: 3101 movi r1, 1 + 36ec: 9360 ld.w r3, (r3, 0x0) + 36ee: 934c ld.w r2, (r3, 0x30) + 36f0: 6884 and r2, r1 + 36f2: 3a40 cmpnei r2, 0 + 36f4: 0c0a bf 0x3708 // 3708 + { + BT0->ICR = BT_PEND; + 36f6: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 36f8: 9341 ld.w r2, (r3, 0x4) + 36fa: 3a86 bclri r2, 6 + 36fc: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 36fe: 9340 ld.w r2, (r3, 0x0) + 3700: 3200 movi r2, 0 + 3702: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 3704: 1463 ipop + 3706: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3708: 934c ld.w r2, (r3, 0x30) + 370a: 3102 movi r1, 2 + 370c: 6884 and r2, r1 + 370e: 3a40 cmpnei r2, 0 + 3710: 0c03 bf 0x3716 // 3716 + BT0->ICR = BT_EVTRG; + 3712: b32d st.w r1, (r3, 0x34) +} + 3714: 07f8 br 0x3704 // 3704 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 3716: 934c ld.w r2, (r3, 0x30) + 3718: 3104 movi r1, 4 + 371a: 6884 and r2, r1 + 371c: 3a40 cmpnei r2, 0 + 371e: 0bfa bt 0x3712 // 3712 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3720: 934c ld.w r2, (r3, 0x30) + 3722: 3108 movi r1, 8 + 3724: 6884 and r2, r1 + 3726: 3a40 cmpnei r2, 0 + 3728: 0bf5 bt 0x3712 // 3712 + 372a: 07ed br 0x3704 // 3704 + 372c: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003730 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3730: 1460 nie + 3732: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 3734: 1076 lrw r3, 0x20000008 // 378c + 3736: 3101 movi r1, 1 + 3738: 9360 ld.w r3, (r3, 0x0) + 373a: 934c ld.w r2, (r3, 0x30) + 373c: 6884 and r2, r1 + 373e: 3a40 cmpnei r2, 0 + 3740: 0c03 bf 0x3746 // 3746 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 3742: b32d st.w r1, (r3, 0x34) + } +} + 3744: 0416 br 0x3770 // 3770 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 3746: 934c ld.w r2, (r3, 0x30) + 3748: 3102 movi r1, 2 + 374a: 6884 and r2, r1 + 374c: 3a40 cmpnei r2, 0 + 374e: 0c13 bf 0x3774 // 3774 + BT1->ICR = BT_CMP; + 3750: b32d st.w r1, (r3, 0x34) + NUM++; + 3752: 1070 lrw r3, 0x200000b0 // 3790 + 3754: 8340 ld.b r2, (r3, 0x0) + 3756: 2200 addi r2, 1 + 3758: 7488 zextb r2, r2 + SysTick_100us++; + 375a: 9321 ld.w r1, (r3, 0x4) + 375c: 2100 addi r1, 1 + if(NUM >= 10){ + 375e: 3a09 cmphsi r2, 10 + NUM++; + 3760: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 3762: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 3764: 0c06 bf 0x3770 // 3770 + NUM = 0; + 3766: 3200 movi r2, 0 + 3768: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 376a: 9342 ld.w r2, (r3, 0x8) + 376c: 2200 addi r2, 1 + 376e: b342 st.w r2, (r3, 0x8) +} + 3770: 1463 ipop + 3772: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3774: 934c ld.w r2, (r3, 0x30) + 3776: 3104 movi r1, 4 + 3778: 6884 and r2, r1 + 377a: 3a40 cmpnei r2, 0 + 377c: 0be3 bt 0x3742 // 3742 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 377e: 934c ld.w r2, (r3, 0x30) + 3780: 3108 movi r1, 8 + 3782: 6884 and r2, r1 + 3784: 3a40 cmpnei r2, 0 + 3786: 0bde bt 0x3742 // 3742 + 3788: 07f4 br 0x3770 // 3770 + 378a: 0000 bkpt + 378c: 20000008 .long 0x20000008 + 3790: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00003794 : + 3794: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003796 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3796: 1460 nie + 3798: 1462 ipush + // ISR content ... + +} + 379a: 1463 ipop + 379c: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000379e : + 379e: 1460 nie + 37a0: 1462 ipush + 37a2: 1463 ipop + 37a4: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000037a6 : + 37a6: 1460 nie + 37a8: 1462 ipush + 37aa: 1463 ipop + 37ac: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000037ae : + 37ae: 1460 nie + 37b0: 1462 ipush + 37b2: 1463 ipop + 37b4: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000037b6 : + 37b6: 1460 nie + 37b8: 1462 ipush + 37ba: 1463 ipop + 37bc: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000037be : + 37be: 1460 nie + 37c0: 1462 ipush + 37c2: 1463 ipop + 37c4: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000037c6 : + 37c6: 1460 nie + 37c8: 1462 ipush + 37ca: 1463 ipop + 37cc: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000037ce : + 37ce: 1460 nie + 37d0: 1462 ipush + 37d2: 1463 ipop + 37d4: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000037d6 : + 37d6: 1460 nie + 37d8: 1462 ipush + 37da: 1463 ipop + 37dc: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000037de : + 37de: 1460 nie + 37e0: 1462 ipush + 37e2: 1463 ipop + 37e4: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000037e6 : + 37e6: 1460 nie + 37e8: 1462 ipush + 37ea: 1463 ipop + 37ec: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000037ee : + 37ee: 1460 nie + 37f0: 1462 ipush + 37f2: 1463 ipop + 37f4: 1461 nir + +Disassembly of section .text.__divsi3: + +000037f8 <__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) +{ + 37f8: 14c1 push r4 + int PSR; + __asm volatile( + 37fa: c0006023 mfcr r3, cr<0, 0> + 37fe: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3802: 1046 lrw r2, 0x20000000 // 3818 <__divsi3+0x20> + 3804: 3400 movi r4, 0 + 3806: 9240 ld.w r2, (r2, 0x0) + 3808: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 380a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 380c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 380e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3810: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3814: 9202 ld.w r0, (r2, 0x8) +} + 3816: 1481 pop r4 + 3818: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +0000381c <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 381c: 14c1 push r4 + int PSR; + __asm volatile( + 381e: c0006023 mfcr r3, cr<0, 0> + 3822: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3826: 1046 lrw r2, 0x20000000 // 383c <__udivsi3+0x20> + 3828: 3401 movi r4, 1 + 382a: 9240 ld.w r2, (r2, 0x0) + 382c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 382e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3830: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3832: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3834: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3838: 9202 ld.w r0, (r2, 0x8) +} + 383a: 1481 pop r4 + 383c: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00003840 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 3840: 14c1 push r4 + int PSR; + __asm volatile( + 3842: c0006023 mfcr r3, cr<0, 0> + 3846: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 384a: 1046 lrw r2, 0x20000000 // 3860 <__modsi3+0x20> + 384c: 3400 movi r4, 0 + 384e: 9240 ld.w r2, (r2, 0x0) + 3850: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3852: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3854: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3856: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3858: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 385c: 9203 ld.w r0, (r2, 0xc) +} + 385e: 1481 pop r4 + 3860: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003864 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3864: 14c1 push r4 + int PSR; + __asm volatile( + 3866: c0006023 mfcr r3, cr<0, 0> + 386a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 386e: 1046 lrw r2, 0x20000000 // 3884 <__umodsi3+0x20> + 3870: 3401 movi r4, 1 + 3872: 9240 ld.w r2, (r2, 0x0) + 3874: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3876: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3878: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 387a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 387c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3880: 9203 ld.w r0, (r2, 0xc) +} + 3882: 1481 pop r4 + 3884: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003888 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3888: c1807420 psrset ee, ie +} + 388c: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000388e : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 388e: c0807020 psrclr ie +} + 3892: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003894 : + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3894: 14d2 push r4-r5, r15 + switch(uart_id){ + 3896: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3898: 6d07 mov r4, r1 + switch(uart_id){ + 389a: 0c24 bf 0x38e2 // 38e2 + 389c: 3840 cmpnei r0, 0 + 389e: 0c04 bf 0x38a6 // 38a6 + 38a0: 3842 cmpnei r0, 2 + 38a2: 0c43 bf 0x3928 // 3928 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 38a4: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 38a6: e3fff531 bsr 0x2308 // 2308 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 38aa: 3100 movi r1, 0 + 38ac: 3000 movi r0, 0 + 38ae: e3fff56d bsr 0x2388 // 2388 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 38b2: 1175 lrw r3, 0x20000040 // 3984 + 38b4: 3200 movi r2, 0 + 38b6: 9300 ld.w r0, (r3, 0x0) + 38b8: 1134 lrw r1, 0x1388 // 3988 + 38ba: e3fff5e5 bsr 0x2484 // 2484 + UART0_Int_Enable(); + 38be: e3fff549 bsr 0x2350 // 2350 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 38c2: 3278 movi r2, 120 + 38c4: 3100 movi r1, 0 + 38c6: 1112 lrw r0, 0x2000027c // 398c + 38c8: e3fff080 bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 38cc: 1171 lrw r3, 0x200002dc // 3990 + 38ce: 3203 movi r2, 3 + 38d0: a348 st.b r2, (r3, 0x8) + g_uart[UART_0].processing_cf = prt_cf; + 38d2: 4c48 lsri r2, r4, 8 + 38d4: a394 st.b r4, (r3, 0x14) + 38d6: a355 st.b r2, (r3, 0x15) + 38d8: 4c50 lsri r2, r4, 16 + 38da: 4c98 lsri r4, r4, 24 + 38dc: a356 st.b r2, (r3, 0x16) + 38de: a397 st.b r4, (r3, 0x17) + break; + 38e0: 07e2 br 0x38a4 // 38a4 + UART1_DeInit(); //clear all UART Register + 38e2: e3fff51f bsr 0x2320 // 2320 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 38e6: 3102 movi r1, 2 + 38e8: 3001 movi r0, 1 + 38ea: e3fff54f bsr 0x2388 // 2388 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 38ee: 11aa lrw r5, 0x2000003c // 3994 + 38f0: 31d0 movi r1, 208 + 38f2: 3200 movi r2, 0 + 38f4: 4121 lsli r1, r1, 1 + 38f6: 9500 ld.w r0, (r5, 0x0) + 38f8: e3fff5be bsr 0x2474 // 2474 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 38fc: 31d0 movi r1, 208 + 38fe: 9500 ld.w r0, (r5, 0x0) + 3900: 3200 movi r2, 0 + 3902: 4121 lsli r1, r1, 1 + 3904: e3fff5c0 bsr 0x2484 // 2484 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3908: 3278 movi r2, 120 + 390a: 3100 movi r1, 0 + 390c: 1103 lrw r0, 0x200002f4 // 3998 + 390e: e3fff05d bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 3912: 1163 lrw r3, 0x2000035c // 399c + 3914: 3203 movi r2, 3 + 3916: a340 st.b r2, (r3, 0x0) + g_uart[UART_1].processing_cf = prt_cf; + 3918: 4c48 lsri r2, r4, 8 + 391a: a38c st.b r4, (r3, 0xc) + 391c: a34d st.b r2, (r3, 0xd) + 391e: 4c50 lsri r2, r4, 16 + 3920: 4c98 lsri r4, r4, 24 + 3922: a34e st.b r2, (r3, 0xe) + 3924: a38f st.b r4, (r3, 0xf) + break; + 3926: 07bf br 0x38a4 // 38a4 + UART2_DeInit(); //clear all UART Register + 3928: e3fff508 bsr 0x2338 // 2338 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 392c: 3102 movi r1, 2 + 392e: 3002 movi r0, 2 + 3930: e3fff52c bsr 0x2388 // 2388 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3934: 107b lrw r3, 0x20000038 // 39a0 + 3936: 3200 movi r2, 0 + 3938: 9300 ld.w r0, (r3, 0x0) + 393a: 1034 lrw r1, 0x1388 // 3988 + 393c: e3fff5a4 bsr 0x2484 // 2484 + UART2_Int_Enable(); + 3940: e3fff516 bsr 0x236c // 236c + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3944: 3278 movi r2, 120 + 3946: 3100 movi r1, 0 + 3948: 1017 lrw r0, 0x2000036c // 39a4 + 394a: e3fff03f bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 394e: 1077 lrw r3, 0x200003bc // 39a8 + 3950: 3203 movi r2, 3 + 3952: a358 st.b r2, (r3, 0x18) + g_uart[UART_2].processing_cf = prt_cf; + 3954: 231f addi r3, 32 + 3956: 4c48 lsri r2, r4, 8 + 3958: a384 st.b r4, (r3, 0x4) + 395a: a345 st.b r2, (r3, 0x5) + 395c: 4c50 lsri r2, r4, 16 + 395e: 4c98 lsri r4, r4, 24 + 3960: a387 st.b r4, (r3, 0x7) + 3962: a346 st.b r2, (r3, 0x6) + GPIO_Init(GPIOB0,3,Output); + 3964: 3103 movi r1, 3 + 3966: 1092 lrw r4, 0x20000048 // 39ac + 3968: 3200 movi r2, 0 + 396a: 9400 ld.w r0, (r4, 0x0) + 396c: e3fff264 bsr 0x1e34 // 1e34 + GPIO_DriveStrength_EN(GPIOB0,3); + 3970: 9400 ld.w r0, (r4, 0x0) + 3972: 3103 movi r1, 3 + 3974: e3fff2da bsr 0x1f28 // 1f28 + GPIO_Write_Low(GPIOB0,3); + 3978: 9400 ld.w r0, (r4, 0x0) + 397a: 3103 movi r1, 3 + 397c: e3fff3e6 bsr 0x2148 // 2148 +} + 3980: 0792 br 0x38a4 // 38a4 + 3982: 0000 bkpt + 3984: 20000040 .long 0x20000040 + 3988: 00001388 .long 0x00001388 + 398c: 2000027c .long 0x2000027c + 3990: 200002dc .long 0x200002dc + 3994: 2000003c .long 0x2000003c + 3998: 200002f4 .long 0x200002f4 + 399c: 2000035c .long 0x2000035c + 39a0: 20000038 .long 0x20000038 + 39a4: 2000036c .long 0x2000036c + 39a8: 200003bc .long 0x200003bc + 39ac: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000039b0 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 39b0: 14c2 push r4-r5 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 39b2: 1057 lrw r2, 0x200003d2 // 3a0c + 39b4: 8261 ld.b r3, (r2, 0x1) + 39b6: 8280 ld.b r4, (r2, 0x0) + 39b8: 4368 lsli r3, r3, 8 + 39ba: 6cd0 or r3, r4 + 39bc: 3462 movi r4, 98 + 39be: 5a22 addi r1, r2, 1 + 39c0: 64d1 cmplt r4, r3 + 39c2: 6d07 mov r4, r1 + 39c4: 0c04 bf 0x39cc // 39cc + 39c6: 3300 movi r3, 0 + 39c8: a260 st.b r3, (r2, 0x0) + 39ca: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39cc: 8460 ld.b r3, (r4, 0x0) + 39ce: 82a0 ld.b r5, (r2, 0x0) + 39d0: 4368 lsli r3, r3, 8 + 39d2: 6cd4 or r3, r5 + 39d4: 102f lrw r1, 0x2000027c // 3a10 + 39d6: 5b82 addi r4, r3, 1 + 39d8: 7511 zexth r4, r4 + 39da: 60c4 addu r3, r1 + 39dc: a280 st.b r4, (r2, 0x0) + 39de: 23ef addi r3, 240 + 39e0: 4c88 lsri r4, r4, 8 + 39e2: a300 st.b r0, (r3, 0x0) + 39e4: a281 st.b r4, (r2, 0x1) + +// uart_receive_input((U8_T)data); + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39e6: 32a0 movi r2, 160 + 39e8: 106b lrw r3, 0x200000b8 // 3a14 + 39ea: 4241 lsli r2, r2, 1 + 39ec: 9360 ld.w r3, (r3, 0x0) + 39ee: 6084 addu r2, r1 + 39f0: 4b08 lsri r0, r3, 8 + 39f2: a27c st.b r3, (r2, 0x1c) + 39f4: a21d st.b r0, (r2, 0x1d) + 39f6: 4b10 lsri r0, r3, 16 + 39f8: 4b78 lsri r3, r3, 24 + 39fa: a27f st.b r3, (r2, 0x1f) + g_uart[UART_2].Receiving = 0x01; + 39fc: 33aa movi r3, 170 + 39fe: 4361 lsli r3, r3, 1 + 3a00: 604c addu r1, r3 + 3a02: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a04: a21e st.b r0, (r2, 0x1e) + g_uart[UART_2].Receiving = 0x01; + 3a06: a160 st.b r3, (r1, 0x0) +} + 3a08: 1482 pop r4-r5 + 3a0a: 0000 bkpt + 3a0c: 200003d2 .long 0x200003d2 + 3a10: 2000027c .long 0x2000027c + 3a14: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_TASK: + +00003a18 : + + +void UART2_TASK(void){ + 3a18: 14d3 push r4-r6, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3a1a: 1185 lrw r4, 0x200003d0 // 3aac + 3a1c: 8460 ld.b r3, (r4, 0x0) + 3a1e: 3b41 cmpnei r3, 1 + 3a20: 0844 bt 0x3aa8 // 3aa8 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3a22: 8449 ld.b r2, (r4, 0x9) + 3a24: 8468 ld.b r3, (r4, 0x8) + 3a26: 4248 lsli r2, r2, 8 + 3a28: 6c8c or r2, r3 + 3a2a: 846a ld.b r3, (r4, 0xa) + 3a2c: 4370 lsli r3, r3, 16 + 3a2e: 6c8c or r2, r3 + 3a30: 846b ld.b r3, (r4, 0xb) + 3a32: 1100 lrw r0, 0x200000b8 // 3ab0 + 3a34: 4378 lsli r3, r3, 24 + 3a36: 6cc8 or r3, r2 + 3a38: 9020 ld.w r1, (r0, 0x0) + 3a3a: 8445 ld.b r2, (r4, 0x5) + 3a3c: 604e subu r1, r3 + 3a3e: 4248 lsli r2, r2, 8 + 3a40: 8464 ld.b r3, (r4, 0x4) + 3a42: 6c8c or r2, r3 + 3a44: 8466 ld.b r3, (r4, 0x6) + 3a46: 4370 lsli r3, r3, 16 + 3a48: 6c8c or r2, r3 + 3a4a: 8467 ld.b r3, (r4, 0x7) + 3a4c: 4378 lsli r3, r3, 24 + 3a4e: 6cc8 or r3, r2 + 3a50: 644c cmphs r3, r1 + 3a52: 082b bt 0x3aa8 // 3aa8 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a54: 9060 ld.w r3, (r0, 0x0) + 3a56: 1058 lrw r2, 0x200003bc // 3ab4 + 3a58: 4b28 lsri r1, r3, 8 + 3a5a: a27c st.b r3, (r2, 0x1c) + 3a5c: a23d st.b r1, (r2, 0x1d) + 3a5e: 4b30 lsri r1, r3, 16 + 3a60: 4b78 lsri r3, r3, 24 + 3a62: a23e st.b r1, (r2, 0x1e) + 3a64: a27f st.b r3, (r2, 0x1f) + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", g_uart[UART_2].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3a66: 8451 ld.b r2, (r4, 0x11) + 3a68: 8470 ld.b r3, (r4, 0x10) + 3a6a: 4248 lsli r2, r2, 8 + 3a6c: 6c8c or r2, r3 + 3a6e: 8472 ld.b r3, (r4, 0x12) + 3a70: 4370 lsli r3, r3, 16 + 3a72: 6c8c or r2, r3 + 3a74: 8473 ld.b r3, (r4, 0x13) + 3a76: 4378 lsli r3, r3, 24 + 3a78: 6cc8 or r3, r2 + 3a7a: 3b40 cmpnei r3, 0 + 3a7c: 5ca6 addi r5, r4, 2 + 3a7e: 0c11 bf 0x3aa0 // 3aa0 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a80: 8423 ld.b r1, (r4, 0x3) + 3a82: 8540 ld.b r2, (r5, 0x0) + 3a84: 4128 lsli r1, r1, 8 + 3a86: 6c48 or r1, r2 + 3a88: 100c lrw r0, 0x2000036c // 3ab8 + 3a8a: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3a8c: 3841 cmpnei r0, 1 + rev = g_uart[UART_2].processing_cf(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a8e: 5cca addi r6, r4, 3 + if(rev == 0x01){ + 3a90: 0808 bt 0x3aa0 // 3aa0 + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a92: 8423 ld.b r1, (r4, 0x3) + 3a94: 8560 ld.b r3, (r5, 0x0) + 3a96: 4128 lsli r1, r1, 8 + 3a98: 6c4c or r1, r3 + 3a9a: 1008 lrw r0, 0x2000036c // 3ab8 + 3a9c: e00003d0 bsr 0x423c // 423c + } + + g_uart[UART_2].RecvLen = 0; + 3aa0: 3300 movi r3, 0 + 3aa2: a560 st.b r3, (r5, 0x0) + 3aa4: a561 st.b r3, (r5, 0x1) + g_uart[UART_2].Receiving = 0; + 3aa6: a460 st.b r3, (r4, 0x0) + } + } +} + 3aa8: 1493 pop r4-r6, r15 + 3aaa: 0000 bkpt + 3aac: 200003d0 .long 0x200003d0 + 3ab0: 200000b8 .long 0x200000b8 + 3ab4: 200003bc .long 0x200003bc + 3ab8: 2000036c .long 0x2000036c + +Disassembly of section .text.MCU485_SendData: + +00003abc : + }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){ + 3abc: 14d4 push r4-r7, r15 + 3abe: 1421 subi r14, r14, 4 + 3ac0: b800 st.w r0, (r14, 0x0) + 3ac2: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3ac4: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3ac6: 109d lrw r4, 0x200000bc // 3b38 + 3ac8: 10dd lrw r6, 0x20000048 // 3b3c + 3aca: 9460 ld.w r3, (r4, 0x0) + 3acc: 3b41 cmpnei r3, 1 + 3ace: 0c29 bf 0x3b20 // 3b20 + } + + GPIO_Reverse(GPIOB0,3); + } + + delay_nus(500); + 3ad0: 30fa movi r0, 250 + 3ad2: 4001 lsli r0, r0, 1 + 3ad4: e3fff8e4 bsr 0x2c9c // 2c9c + GPIO_Write_High(GPIOB0,3); + 3ad8: 3103 movi r1, 3 + 3ada: 9600 ld.w r0, (r6, 0x0) + 3adc: e3fff332 bsr 0x2140 // 2140 + + RS485_Comm_Flag = 0x01; + 3ae0: 3301 movi r3, 1 + 3ae2: b461 st.w r3, (r4, 0x4) + RS485_Comm_Start = 0x00; + 3ae4: 3300 movi r3, 0 + 3ae6: b462 st.w r3, (r4, 0x8) + RS485_Comm_End = 0x00; + 3ae8: b463 st.w r3, (r4, 0xc) + + UARTTransmit(UART2,buff,len); + 3aea: 6c9f mov r2, r7 + 3aec: 1075 lrw r3, 0x20000038 // 3b40 + 3aee: 9300 ld.w r0, (r3, 0x0) + 3af0: 9820 ld.w r1, (r14, 0x0) + 3af2: e3fff4d1 bsr 0x2494 // 2494 + + do{ + delay_nus(100); + 3af6: 3064 movi r0, 100 + 3af8: e3fff8d2 bsr 0x2c9c // 2c9c + + delay_cnt ++; + 3afc: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3afe: 3363 movi r3, 99 + 3b00: 654c cmphs r3, r5 + 3b02: 0c07 bf 0x3b10 // 3b10 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3b04: 9462 ld.w r3, (r4, 0x8) + 3b06: 65cd cmplt r3, r7 + 3b08: 0bf7 bt 0x3af6 // 3af6 + 3b0a: 9463 ld.w r3, (r4, 0xc) + 3b0c: 65cd cmplt r3, r7 + 3b0e: 0bf4 bt 0x3af6 // 3af6 + + GPIO_Write_Low(GPIOB0,3); + 3b10: 9600 ld.w r0, (r6, 0x0) + 3b12: 3103 movi r1, 3 + 3b14: e3fff31a bsr 0x2148 // 2148 + + RS485_Comm_Flag = 0x00; + 3b18: 3300 movi r3, 0 + 3b1a: b461 st.w r3, (r4, 0x4) +} + 3b1c: 1401 addi r14, r14, 4 + 3b1e: 1494 pop r4-r7, r15 + delay_nus(100); + 3b20: 3064 movi r0, 100 + 3b22: e3fff8bd bsr 0x2c9c // 2c9c + delay_cnt ++; + 3b26: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b28: 3364 movi r3, 100 + 3b2a: 64d6 cmpne r5, r3 + 3b2c: 0fd2 bf 0x3ad0 // 3ad0 + GPIO_Reverse(GPIOB0,3); + 3b2e: 3103 movi r1, 3 + 3b30: 9600 ld.w r0, (r6, 0x0) + 3b32: e3fff30f bsr 0x2150 // 2150 + 3b36: 07ca br 0x3aca // 3aca + 3b38: 200000bc .long 0x200000bc + 3b3c: 20000048 .long 0x20000048 + 3b40: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003b44 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3b44: 1423 subi r14, r14, 12 + 3b46: b862 st.w r3, (r14, 0x8) + 3b48: b841 st.w r2, (r14, 0x4) + 3b4a: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3b4c: 1403 addi r14, r14, 12 + 3b4e: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003b50 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3b50: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003b54 : +//extern volatile unsigned long tk_scan_para0; +//extern volatile unsigned long tk_scan_para1; +//extern volatile unsigned long tk_scan_para2; +//extern volatile U8_T tk_overflow_en; + +void Touch_Key_Init(void){ + 3b54: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3b56: 3234 movi r2, 52 + 3b58: 3100 movi r1, 0 + 3b5a: 1014 lrw r0, 0x20000400 // 3ba8 + 3b5c: e3ffef36 bsr 0x19c8 // 19c8 <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3b60: 321c movi r2, 28 + 3b62: 3100 movi r1, 0 + 3b64: 1012 lrw r0, 0x200003e4 // 3bac + 3b66: e3ffef31 bsr 0x19c8 // 19c8 <__memset_fast> +// g_tk_filt[i].base_update_en = 0x01; +// } + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b6a: 1092 lrw r4, 0x20000434 // 3bb0 + EEPROM_Init(); //按键库初始化前先读取参数 + 3b6c: e0000492 bsr 0x4490 // 4490 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b70: 8405 ld.b r0, (r4, 0x5) + 3b72: 102f lrw r1, 0x200003e4 // 3bac + 3b74: e00004f0 bsr 0x4554 // 4554 + if(rev == 0x00){ + 3b78: 3840 cmpnei r0, 0 + 3b7a: 080e bt 0x3b96 // 3b96 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3b7c: 8405 ld.b r0, (r4, 0x5) + 3b7e: 102c lrw r1, 0x200003e4 // 3bac + 3b80: e0000540 bsr 0x4600 // 4600 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3b84: 100a lrw r0, 0x200003e4 // 3bac + 3b86: e00005b1 bsr 0x46e8 // 46e8 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3b8a: e00022f7 bsr 0x8178 // 8178 + + base_update_f = 0x01; //触摸状态强制更新 + 3b8e: 106a lrw r3, 0x20000643 // 3bb4 + 3b90: 3201 movi r2, 1 + 3b92: a340 st.b r2, (r3, 0x0) + +} + 3b94: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3b96: 1029 lrw r1, 0x8a42 // 3bb8 + 3b98: 3000 movi r0, 0 + 3b9a: e3ffffd5 bsr 0x3b44 // 3b44 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3b9e: 8405 ld.b r0, (r4, 0x5) + 3ba0: 1023 lrw r1, 0x200003e4 // 3bac + 3ba2: e0000583 bsr 0x46a8 // 46a8 + 3ba6: 07ef br 0x3b84 // 3b84 + 3ba8: 20000400 .long 0x20000400 + 3bac: 200003e4 .long 0x200003e4 + 3bb0: 20000434 .long 0x20000434 + 3bb4: 20000643 .long 0x20000643 + 3bb8: 00008a42 .long 0x00008a42 + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003bbc : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3bbc: 14d3 push r4-r6, r15 + 3bbe: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3bc0: 1289 lrw r4, 0x20000068 // 3ce4 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bc2: 8400 ld.b r0, (r4, 0x0) + 3bc4: 1229 lrw r1, 0x2000078e // 3ce8 + 3bc6: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3bc8: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bca: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3bcc: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3bd0: 330a movi r3, 10 + 3bd2: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bd6: 8a60 ld.h r3, (r2, 0x0) + 3bd8: 4b68 lsri r3, r3, 8 + 3bda: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3bde: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3be0: 1243 lrw r2, 0x200007d2 // 3cec + 3be2: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3be4: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3be8: 8d60 ld.h r3, (r5, 0x0) + 3bea: 4b68 lsri r3, r3, 8 + 3bec: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3bf0: 8d60 ld.h r3, (r5, 0x0) + 3bf2: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3bf6: 117f lrw r3, 0x2000052c // 3cf0 + 3bf8: 600c addu r0, r3 + 3bfa: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3bfc: 8800 ld.h r0, (r0, 0x0) + 3bfe: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c02: 8401 ld.b r0, (r4, 0x1) + 3c04: 4001 lsli r0, r0, 1 + 3c06: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c08: 4da8 lsri r5, r5, 8 + 3c0a: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c0e: 8ea0 ld.h r5, (r6, 0x0) + 3c10: 4da8 lsri r5, r5, 8 + 3c12: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c16: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c18: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c1a: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c1e: 8ea0 ld.h r5, (r6, 0x0) + 3c20: 4da8 lsri r5, r5, 8 + 3c22: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c26: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c28: 8ea0 ld.h r5, (r6, 0x0) + 3c2a: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c2e: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c30: 8800 ld.h r0, (r0, 0x0) + 3c32: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c36: 8402 ld.b r0, (r4, 0x2) + 3c38: 4001 lsli r0, r0, 1 + 3c3a: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c3c: 4da8 lsri r5, r5, 8 + 3c3e: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c42: 8ea0 ld.h r5, (r6, 0x0) + 3c44: 4da8 lsri r5, r5, 8 + 3c46: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c4a: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c4c: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c4e: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c52: 8ea0 ld.h r5, (r6, 0x0) + 3c54: 4da8 lsri r5, r5, 8 + 3c56: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c5a: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c5c: 8ea0 ld.h r5, (r6, 0x0) + 3c5e: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c62: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c64: 8800 ld.h r0, (r0, 0x0) + 3c66: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c6a: 8403 ld.b r0, (r4, 0x3) + 3c6c: 4001 lsli r0, r0, 1 + 3c6e: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c70: 4da8 lsri r5, r5, 8 + 3c72: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c76: 8ea0 ld.h r5, (r6, 0x0) + 3c78: 4da8 lsri r5, r5, 8 + 3c7a: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c7e: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c80: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c82: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c86: 8ea0 ld.h r5, (r6, 0x0) + 3c88: 4da8 lsri r5, r5, 8 + 3c8a: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c8e: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c90: 8ea0 ld.h r5, (r6, 0x0) + 3c92: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c96: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c98: 8800 ld.h r0, (r0, 0x0) + 3c9a: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c9e: 8404 ld.b r0, (r4, 0x4) + 3ca0: 4001 lsli r0, r0, 1 + 3ca2: 6040 addu r1, r0 + 3ca4: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3ca6: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3ca8: 8920 ld.h r1, (r1, 0x0) + 3caa: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cae: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cb0: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cb2: 8a40 ld.h r2, (r2, 0x0) + 3cb4: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cb8: 8b40 ld.h r2, (r3, 0x0) + 3cba: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3cbc: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cbe: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cc0: 4928 lsri r1, r1, 8 + 3cc2: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cc6: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cca: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cce: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3cd2: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cd4: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3cd6: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cd8: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3cdc: e3fffef0 bsr 0x3abc // 3abc +// UARTTransmit(UART2,send_buff,send_len); + +} + 3ce0: 140d addi r14, r14, 52 + 3ce2: 1493 pop r4-r6, r15 + 3ce4: 20000068 .long 0x20000068 + 3ce8: 2000078e .long 0x2000078e + 3cec: 200007d2 .long 0x200007d2 + 3cf0: 2000052c .long 0x2000052c + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003cf4 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3cf4: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3cf6: 3804 cmphsi r0, 5 + 3cf8: 0818 bt 0x3d28 // 3d28 + 3cfa: 106d lrw r3, 0x20000400 // 3d2c + 3cfc: e3ffe800 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3d00: 0e0b0803 .long 0x0e0b0803 + 3d04: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3d06: 930a ld.w r0, (r3, 0x28) + 3d08: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3d0a: 3301 movi r3, 1 + U8_T state = 0; + 3d0c: 680c and r0, r3 +// } + break; + } + + return state; +} + 3d0e: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3d10: 930a ld.w r0, (r3, 0x28) + 3d12: 480a lsri r0, r0, 10 + 3d14: 07fb br 0x3d0a // 3d0a + if(g_key.key_state & 0x0800){ + 3d16: 930a ld.w r0, (r3, 0x28) + 3d18: 480b lsri r0, r0, 11 + 3d1a: 07f8 br 0x3d0a // 3d0a + if(g_key.key_state & 0x1000){ + 3d1c: 930a ld.w r0, (r3, 0x28) + 3d1e: 480c lsri r0, r0, 12 + 3d20: 07f5 br 0x3d0a // 3d0a + if(g_key.key_state & 0x2000){ + 3d22: 930a ld.w r0, (r3, 0x28) + 3d24: 480d lsri r0, r0, 13 + 3d26: 07f2 br 0x3d0a // 3d0a + U8_T state = 0; + 3d28: 3000 movi r0, 0 + 3d2a: 07f2 br 0x3d0e // 3d0e + 3d2c: 20000400 .long 0x20000400 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003d30 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3d30: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3d32: 118a lrw r4, 0x20000400 // 3dd8 + 3d34: 8465 ld.b r3, (r4, 0x5) + 3d36: 3b42 cmpnei r3, 2 + 3d38: 081c bt 0x3d70 // 3d70 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d3a: 3300 movi r3, 0 + 3d3c: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3d3e: 8466 ld.b r3, (r4, 0x6) + 3d40: 3b42 cmpnei r3, 2 + 3d42: 0820 bt 0x3d82 // 3d82 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d44: 3300 movi r3, 0 + 3d46: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3d48: 8467 ld.b r3, (r4, 0x7) + 3d4a: 3b42 cmpnei r3, 2 + 3d4c: 0824 bt 0x3d94 // 3d94 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d4e: 3300 movi r3, 0 + 3d50: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3d52: e0001519 bsr 0x6784 // 6784 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3d56: 8468 ld.b r3, (r4, 0x8) + 3d58: 3b42 cmpnei r3, 2 + 3d5a: 0829 bt 0x3dac // 3dac + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3d5c: 3300 movi r3, 0 + 3d5e: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3d60: e00015d6 bsr 0x690c // 690c + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3d64: 8469 ld.b r3, (r4, 0x9) + 3d66: 3b42 cmpnei r3, 2 + 3d68: 082e bt 0x3dc4 // 3dc4 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3d6a: 3300 movi r3, 0 + 3d6c: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3d6e: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d70: 3b44 cmpnei r3, 4 + 3d72: 0fe4 bf 0x3d3a // 3d3a + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3d74: 3b41 cmpnei r3, 1 + 3d76: 0be4 bt 0x3d3e // 3d3e + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d78: 3300 movi r3, 0 + 3d7a: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3d7c: e000139c bsr 0x64b4 // 64b4 + 3d80: 07df br 0x3d3e // 3d3e + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d82: 3b44 cmpnei r3, 4 + 3d84: 0fe0 bf 0x3d44 // 3d44 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3d86: 3b41 cmpnei r3, 1 + 3d88: 0be0 bt 0x3d48 // 3d48 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d8a: 3300 movi r3, 0 + 3d8c: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3d8e: e0001403 bsr 0x6594 // 6594 + 3d92: 07db br 0x3d48 // 3d48 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d94: 3b44 cmpnei r3, 4 + 3d96: 0804 bt 0x3d9e // 3d9e + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d98: 3300 movi r3, 0 + 3d9a: a467 st.b r3, (r4, 0x7) + 3d9c: 07dd br 0x3d56 // 3d56 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3d9e: 3b41 cmpnei r3, 1 + 3da0: 0bdb bt 0x3d56 // 3d56 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3da2: 3300 movi r3, 0 + 3da4: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3da6: e0001467 bsr 0x6674 // 6674 + 3daa: 07d6 br 0x3d56 // 3d56 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dac: 3b44 cmpnei r3, 4 + 3dae: 0804 bt 0x3db6 // 3db6 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3db0: 3300 movi r3, 0 + 3db2: a468 st.b r3, (r4, 0x8) + 3db4: 07d8 br 0x3d64 // 3d64 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3db6: 3b41 cmpnei r3, 1 + 3db8: 0bd6 bt 0x3d64 // 3d64 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3dba: 3300 movi r3, 0 + 3dbc: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3dbe: e000151f bsr 0x67fc // 67fc + 3dc2: 07d1 br 0x3d64 // 3d64 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dc4: 3b44 cmpnei r3, 4 + 3dc6: 0fd2 bf 0x3d6a // 3d6a + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3dc8: 3b41 cmpnei r3, 1 + 3dca: 0bd2 bt 0x3d6e // 3d6e + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3dcc: 3300 movi r3, 0 + 3dce: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3dd0: e00015da bsr 0x6984 // 6984 +} + 3dd4: 07cd br 0x3d6e // 3d6e + 3dd6: 0000 bkpt + 3dd8: 20000400 .long 0x20000400 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003ddc : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3ddc: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3dde: 106c lrw r3, 0x2000051d // 3e0c + 3de0: 8340 ld.b r2, (r3, 0x0) + 3de2: 3a41 cmpnei r2, 1 + 3de4: 0c04 bf 0x3dec // 3dec + 3de6: 8362 ld.b r3, (r3, 0x2) + 3de8: 3b45 cmpnei r3, 5 + 3dea: 0c10 bf 0x3e0a // 3e0a + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3dec: 1069 lrw r3, 0x20000400 // 3e10 + 3dee: 835b ld.b r2, (r3, 0x1b) + 3df0: 3a41 cmpnei r2, 1 + 3df2: 080c bt 0x3e0a // 3e0a + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 3df4: 1028 lrw r1, 0x200000b8 // 3e14 + 3df6: 9140 ld.w r2, (r1, 0x0) + 3df8: 930c ld.w r0, (r3, 0x30) + 3dfa: 6082 subu r2, r0 + 3dfc: 3095 movi r0, 149 + 3dfe: 6480 cmphs r0, r2 + 3e00: 0805 bt 0x3e0a // 3e0a + g_key.key_dug_tick = SysTick_1ms; + 3e02: 9140 ld.w r2, (r1, 0x0) + 3e04: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + TouchKey_RS485_Printf(); + 3e06: e3fffedb bsr 0x3bbc // 3bbc + } + } +} + 3e0a: 1490 pop r15 + 3e0c: 2000051d .long 0x2000051d + 3e10: 20000400 .long 0x20000400 + 3e14: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003e18 : +void Touch_Key_Task(void){ + 3e18: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3e1a: 1138 lrw r1, 0x200000b8 // 3ef8 + 3e1c: 1178 lrw r3, 0x20000400 // 3efc + 3e1e: 9140 ld.w r2, (r1, 0x0) + 3e20: 930b ld.w r0, (r3, 0x2c) + 3e22: 6082 subu r2, r0 + 3e24: 3a04 cmphsi r2, 5 + 3e26: 0806 bt 0x3e32 // 3e32 + break; + } + } + } + + Touch_Key_Event_Handling(); + 3e28: e3ffff84 bsr 0x3d30 // 3d30 + + TouchKey_Set_Interface_Task(); + 3e2c: e3ffffd8 bsr 0x3ddc // 3ddc + +} + 3e30: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3e32: 9140 ld.w r2, (r1, 0x0) + 3e34: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 3e36: 1133 lrw r1, 0x20000660 // 3f00 + 3e38: 9140 ld.w r2, (r1, 0x0) + 3e3a: 3a40 cmpnei r2, 0 + 3e3c: 0c02 bf 0x3e40 // 3e40 + g_key.key_state = Key_Map; + 3e3e: 9140 ld.w r2, (r1, 0x0) + 3e40: 118f lrw r4, 0x20000400 // 3efc +void Touch_Key_Task(void){ + 3e42: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3e44: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 3e46: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3e48: 11ef lrw r7, 0x257 // 3f04 + switch (g_key.KEY_STA[i]) { + 3e4a: 8460 ld.b r3, (r4, 0x0) + 3e4c: 3b41 cmpnei r3, 1 + 3e4e: 0c28 bf 0x3e9e // 3e9e + 3e50: 3b40 cmpnei r3, 0 + 3e52: 0c0a bf 0x3e66 // 3e66 + 3e54: 3b42 cmpnei r3, 2 + 3e56: 0c41 bf 0x3ed8 // 3ed8 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3e58: 2500 addi r5, 1 + 3e5a: 7554 zextb r5, r5 + 3e5c: 3d45 cmpnei r5, 5 + 3e5e: 2400 addi r4, 1 + 3e60: 2601 addi r6, 2 + 3e62: 0bf4 bt 0x3e4a // 3e4a + 3e64: 07e2 br 0x3e28 // 3e28 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3e66: 6c17 mov r0, r5 + 3e68: e3ffff46 bsr 0x3cf4 // 3cf4 + 3e6c: 3841 cmpnei r0, 1 + 3e6e: 0813 bt 0x3e94 // 3e94 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3e70: 8474 ld.b r3, (r4, 0x14) + 3e72: 3b01 cmphsi r3, 2 + 3e74: 0804 bt 0x3e7c // 3e7c + g_key.delayCnt[i]++; + 3e76: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3e78: a474 st.b r3, (r4, 0x14) + 3e7a: 07ef br 0x3e58 // 3e58 + Controlled_Buzzer(0x01); + 3e7c: 3001 movi r0, 1 + 3e7e: e0000f41 bsr 0x5d00 // 5d00 + Contol_Switch_ClickAction(i,Control_ON); + 3e82: 3101 movi r1, 1 + 3e84: 6c17 mov r0, r5 + 3e86: e00009ad bsr 0x51e0 // 51e0 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3e8a: 3301 movi r3, 1 + 3e8c: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3e8e: 3300 movi r3, 0 + 3e90: ae6e st.h r3, (r6, 0x1c) + 3e92: 07f3 br 0x3e78 // 3e78 + g_key.delayCnt[i] = 0; + 3e94: 3300 movi r3, 0 + 3e96: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3e98: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3e9a: a465 st.b r3, (r4, 0x5) + 3e9c: 07de br 0x3e58 // 3e58 + g_key.key_time[i]++; + 3e9e: 8e6e ld.h r3, (r6, 0x1c) + 3ea0: 2300 addi r3, 1 + 3ea2: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3ea4: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3ea6: ae6e st.h r3, (r6, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3ea8: 0c10 bf 0x3ec8 // 3ec8 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3eaa: 6c17 mov r0, r5 + 3eac: e3ffff24 bsr 0x3cf4 // 3cf4 + 3eb0: 3840 cmpnei r0, 0 + 3eb2: 0bd3 bt 0x3e58 // 3e58 + Contol_Switch_ClickAction(i,Control_OFF); + 3eb4: 3102 movi r1, 2 + 3eb6: 6c17 mov r0, r5 + 3eb8: e0000994 bsr 0x51e0 // 51e0 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ebc: 3301 movi r3, 1 + 3ebe: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3ec0: 3300 movi r3, 0 + 3ec2: ae6e st.h r3, (r6, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ec4: a460 st.b r3, (r4, 0x0) + 3ec6: 07c9 br 0x3e58 // 3e58 + g_key.KEY_STA[i] = KEY_STA_S2; + 3ec8: 3302 movi r3, 2 + 3eca: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ecc: 3300 movi r3, 0 + 3ece: ae6e st.h r3, (r6, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3ed0: 3303 movi r3, 3 + 3ed2: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3ed4: 3302 movi r3, 2 + 3ed6: 07e2 br 0x3e9a // 3e9a + g_key.key_longPress[i] = KEY_VAL_NOT; + 3ed8: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3eda: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3edc: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3ede: e3ffff0b bsr 0x3cf4 // 3cf4 + 3ee2: 3840 cmpnei r0, 0 + 3ee4: 0bba bt 0x3e58 // 3e58 + Contol_Switch_ClickAction(i,Control_OFF); + 3ee6: 3102 movi r1, 2 + 3ee8: 6c17 mov r0, r5 + 3eea: e000097b bsr 0x51e0 // 51e0 + g_key.KEY_STA[i] = KEY_STA_S0; + 3eee: 3300 movi r3, 0 + 3ef0: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3ef2: 3304 movi r3, 4 + 3ef4: 07d3 br 0x3e9a // 3e9a + 3ef6: 0000 bkpt + 3ef8: 200000b8 .long 0x200000b8 + 3efc: 20000400 .long 0x20000400 + 3f00: 20000660 .long 0x20000660 + 3f04: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003f08 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3f08: 6040 addu r1, r0 + U8_T data_sum = 0; + 3f0a: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3f10: 6cce nor r3, r3 + 3f12: 740c zextb r0, r3 +} + 3f14: 783c jmp r15 + data_sum += data[i]; + 3f16: 8040 ld.b r2, (r0, 0x0) + 3f18: 60c8 addu r3, r2 + 3f1a: 74cc zextb r3, r3 + 3f1c: 2000 addi r0, 1 + 3f1e: 07f7 br 0x3f0c // 3f0c + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003f20 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3f20: 14d2 push r4-r5, r15 + 3f22: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3f24: 5992 addi r4, r1, 5 + 3f26: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3f28: 3331 movi r3, 49 + 3f2a: 650c cmphs r3, r4 + 3f2c: 0803 bt 0x3f32 // 3f32 + para_len = 44; + 3f2e: 312c movi r1, 44 + reply_len = 50; + 3f30: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3f32: 3300 movi r3, 0 + 3f34: 2b50 subi r3, 81 + 3f36: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3f3a: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3f3e: 1072 lrw r3, 0x20000434 // 3f84 + 3f40: 8360 ld.b r3, (r3, 0x0) + 3f42: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3f46: 3300 movi r3, 0 + 3f48: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3f52: 3200 movi r2, 0 + 3f54: 60f8 addu r3, r14 + 3f56: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f58: 6c53 mov r1, r4 + 3f5a: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3f5c: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f5e: e3ffffd5 bsr 0x3f08 // 3f08 + 3f62: dc0e0003 st.b r0, (r14, 0x3) + +// if (detect_inf.control_model == 0x00){ + MCU485_SendData(send_data,reply_len); + 3f66: 6c53 mov r1, r4 + 3f68: 6c3b mov r0, r14 + 3f6a: e3fffda9 bsr 0x3abc // 3abc +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 3f6e: 140f addi r14, r14, 60 + 3f70: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3f72: 6c8f mov r2, r3 + 3f74: 58ac addu r5, r0, r3 + 3f76: 60b8 addu r2, r14 + 3f78: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 3f82: 0000 bkpt + 3f84: 20000434 .long 0x20000434 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003f88 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3f88: 14d4 push r4-r7, r15 + 3f8a: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3f8c: 80a0 ld.b r5, (r0, 0x0) + 3f8e: 5dc3 subi r6, r5, 1 + 3f90: 7598 zextb r6, r6 + 3f92: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3f94: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3f96: 0834 bt 0x3ffe // 3ffe + 3f98: 1125 lrw r1, 0x200003e4 // 402c + 3f9a: 350b movi r5, 11 + 3f9c: 5862 addi r3, r0, 1 + 3f9e: 6140 addu r5, r0 + 3fa0: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3fbe: 8479 ld.b r3, (r4, 0x19) + 3fc0: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3fc2: 847a ld.b r3, (r4, 0x1a) + 3fc4: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3fc6: 847b ld.b r3, (r4, 0x1b) + 3fc8: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3fca: 847c ld.b r3, (r4, 0x1c) + 3fcc: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fce: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3fd0: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fd2: 1037 lrw r1, 0x200003e4 // 402c + touch_para.longpress_time = para[29]; + 3fd4: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fd6: e0000315 bsr 0x4600 // 4600 + + if(rev == 0x00){ + 3fda: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3fdc: 6d43 mov r5, r0 + if(rev == 0x00){ + 3fde: 0805 bt 0x3fe8 // 3fe8 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 3fe0: 1033 lrw r1, 0x200003e4 // 402c + 3fe2: 6c1b mov r0, r6 + 3fe4: e0000282 bsr 0x44e8 // 44e8 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 3fe8: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 3fea: 3102 movi r1, 2 + 3fec: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 3fee: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 3ff2: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 3ff6: e3ffff95 bsr 0x3f20 // 3f20 +} + 3ffa: 1401 addi r14, r14, 4 + 3ffc: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 3ffe: 3d40 cmpnei r5, 0 + 4000: 0c03 bf 0x4006 // 4006 + rev = 0x01; + 4002: 3501 movi r5, 1 + 4004: 07f2 br 0x3fe8 // 3fe8 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 4006: 8061 ld.b r3, (r0, 0x1) + 4008: 104a lrw r2, 0x857c // 4030 + 400a: 102b lrw r1, 0x8a6f // 4034 + 400c: 3000 movi r0, 0 + 400e: e3fffd9b bsr 0x3b44 // 3b44 + if( (para[1] > 0) && (para[1] <= 3) ){ + 4012: 8461 ld.b r3, (r4, 0x1) + 4014: 2b00 subi r3, 1 + 4016: 74cc zextb r3, r3 + 4018: 3b02 cmphsi r3, 3 + 401a: 0bf4 bt 0x4002 // 4002 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 401c: 1047 lrw r2, 0x2000051d // 4038 + g_eeprom.key_sens_level = para[1] - 1; + 401e: 1008 lrw r0, 0x20000434 // 403c + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4020: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 4022: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4024: e00001be bsr 0x43a0 // 43a0 + 4028: 07e0 br 0x3fe8 // 3fe8 + 402a: 0000 bkpt + 402c: 200003e4 .long 0x200003e4 + 4030: 0000857c .long 0x0000857c + 4034: 00008a6f .long 0x00008a6f + 4038: 2000051d .long 0x2000051d + 403c: 20000434 .long 0x20000434 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00004040 : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 4040: 14d3 push r4-r6, r15 + 4042: 142d subi r14, r14, 52 + 4044: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 4046: 3232 movi r2, 50 + 4048: 3100 movi r1, 0 + 404a: 6c3b mov r0, r14 + 404c: e3ffecbe bsr 0x19c8 // 19c8 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 4050: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 4052: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4054: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 4056: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 405a: 0837 bt 0x40c8 // 40c8 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 405c: 11d5 lrw r6, 0x20000434 // 4130 + 405e: 8605 ld.b r0, (r6, 0x5) + 4060: 1135 lrw r1, 0x200003e4 // 4134 + 4062: e0000279 bsr 0x4554 // 4554 + if(rev != 0x00){ + 4066: 3840 cmpnei r0, 0 + 4068: 11b3 lrw r5, 0x200003e4 // 4134 + 406a: 0c05 bf 0x4074 // 4074 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 406c: 8605 ld.b r0, (r6, 0x5) + 406e: 6c57 mov r1, r5 + 4070: e000031c bsr 0x46a8 // 46a8 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4074: 8665 ld.b r3, (r6, 0x5) + 4076: 2300 addi r3, 1 + 4078: dc6e0001 st.b r3, (r14, 0x1) + 407c: 6cfb mov r3, r14 + 407e: 114e lrw r2, 0x200003e4 // 4134 + + for(i=0;i> 8; + 4086: 4928 lsri r1, r1, 8 + 4088: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 4092: 4928 lsri r1, r1, 8 + 4094: a32f st.b r1, (r3, 0xf) + 4096: 2201 addi r2, 2 + 4098: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 409c: 8560 ld.b r3, (r5, 0x0) + 409e: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 40a2: 8561 ld.b r3, (r5, 0x1) + 40a4: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 40a8: 8562 ld.b r3, (r5, 0x2) + 40aa: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 40ae: 8563 ld.b r3, (r5, 0x3) + 40b0: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40b4: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40b6: dc6e001e st.b r3, (r14, 0x1e) + 40ba: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 40bc: 7445 zexth r1, r1 + 40be: 6c3b mov r0, r14 + 40c0: e3ffff30 bsr 0x3f20 // 3f20 +} + 40c4: 140d addi r14, r14, 52 + 40c6: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 40c8: 3c03 cmphsi r4, 4 + 40ca: 0831 bt 0x412c // 412c + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 40cc: 2c00 subi r4, 1 + 40ce: 7410 zextb r0, r4 + 40d0: 1039 lrw r1, 0x200003e4 // 4134 + 40d2: e0000241 bsr 0x4554 // 4554 + if(rev != 0x00){ + 40d6: 3840 cmpnei r0, 0 + 40d8: 1097 lrw r4, 0x200003e4 // 4134 + 40da: 0c07 bf 0x40e8 // 40e8 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 40dc: 8500 ld.b r0, (r5, 0x0) + 40de: 2800 subi r0, 1 + 40e0: 7400 zextb r0, r0 + 40e2: 6c53 mov r1, r4 + 40e4: e00002e2 bsr 0x46a8 // 46a8 + reply_buff[reply_len++] = para[0]; + 40e8: 8560 ld.b r3, (r5, 0x0) + 40ea: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 40f2: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 40f4: 8902 ld.h r0, (r1, 0x4) + 40f6: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 40fa: 4808 lsri r0, r0, 8 + 40fc: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 4106: 4808 lsri r0, r0, 8 + 4108: a30f st.b r0, (r3, 0xf) + 410a: 2101 addi r1, 2 + 410c: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4110: 8460 ld.b r3, (r4, 0x0) + 4112: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 4116: 8461 ld.b r3, (r4, 0x1) + 4118: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 411c: 8462 ld.b r3, (r4, 0x2) + 411e: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 4122: 8463 ld.b r3, (r4, 0x3) + 4124: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 4128: 8478 ld.b r3, (r4, 0x18) + 412a: 07c6 br 0x40b6 // 40b6 + reply_buff[reply_len++] = 0x00; + 412c: 3102 movi r1, 2 + 412e: 07c7 br 0x40bc // 40bc + 4130: 20000434 .long 0x20000434 + 4134: 200003e4 .long 0x200003e4 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00004138 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 4138: 14d0 push r15 + 413a: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 413c: 8060 ld.b r3, (r0, 0x0) + 413e: 3b41 cmpnei r3, 1 + 4140: 0810 bt 0x4160 // 4160 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 4142: 106b lrw r3, 0x20000400 // 416c + 4144: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 4146: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 4148: 3303 movi r3, 3 + 414a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 414e: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4150: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 4152: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 4154: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4158: e3fffee4 bsr 0x3f20 // 3f20 +} + 415c: 1401 addi r14, r14, 4 + 415e: 1490 pop r15 + }else if(para[0] == 0x02){ + 4160: 3b42 cmpnei r3, 2 + 4162: 0bf3 bt 0x4148 // 4148 + g_key.key_dug_printf = 0x00; + 4164: 1062 lrw r3, 0x20000400 // 416c + 4166: 3200 movi r2, 0 + 4168: 07ef br 0x4146 // 4146 + 416a: 0000 bkpt + 416c: 20000400 .long 0x20000400 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004170 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4170: 14d0 push r15 + 4172: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4174: 1149 lrw r2, 0x200007d2 // 4218 + reply_buff[reply_len++] = 0x04; //CMD + 4176: 3304 movi r3, 4 + 4178: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 417c: 8a69 ld.h r3, (r2, 0x12) + 417e: 4b68 lsri r3, r3, 8 + 4180: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4184: 8a69 ld.h r3, (r2, 0x12) + 4186: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 418a: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 418c: 1164 lrw r3, 0x2000052c // 421c + 418e: 8b29 ld.h r1, (r3, 0x12) + 4190: 4928 lsri r1, r1, 8 + 4192: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4196: 8b29 ld.h r1, (r3, 0x12) + 4198: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 419c: 8a2a ld.h r1, (r2, 0x14) + 419e: 4928 lsri r1, r1, 8 + 41a0: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41a4: 8a2a ld.h r1, (r2, 0x14) + 41a6: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41aa: 8b2a ld.h r1, (r3, 0x14) + 41ac: 4928 lsri r1, r1, 8 + 41ae: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41b2: 8b2a ld.h r1, (r3, 0x14) + 41b4: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41b8: 8a2b ld.h r1, (r2, 0x16) + 41ba: 4928 lsri r1, r1, 8 + 41bc: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41c0: 8a2b ld.h r1, (r2, 0x16) + 41c2: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41c6: 8b2b ld.h r1, (r3, 0x16) + 41c8: 4928 lsri r1, r1, 8 + 41ca: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41ce: 8b2b ld.h r1, (r3, 0x16) + 41d0: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41d4: 8a2c ld.h r1, (r2, 0x18) + 41d6: 4928 lsri r1, r1, 8 + 41d8: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41dc: 8a2c ld.h r1, (r2, 0x18) + 41de: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41e2: 8b2c ld.h r1, (r3, 0x18) + 41e4: 4928 lsri r1, r1, 8 + 41e6: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41ea: 8b2c ld.h r1, (r3, 0x18) + 41ec: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41f0: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41f2: 8a4d ld.h r2, (r2, 0x1a) + 41f4: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41f8: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41fa: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41fc: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4200: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4202: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4204: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4206: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 420a: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 420e: e3fffe89 bsr 0x3f20 // 3f20 +} + 4212: 140d addi r14, r14, 52 + 4214: 1490 pop r15 + 4216: 0000 bkpt + 4218: 200007d2 .long 0x200007d2 + 421c: 2000052c .long 0x2000052c + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004220 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4220: 14d0 push r15 + 4222: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4224: 3305 movi r3, 5 + 4226: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 422a: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 422c: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 422e: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4230: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4234: e3fffe76 bsr 0x3f20 // 3f20 + 4238: 0400 br 0x4238 // 4238 + +Disassembly of section .text.TouchKey_Comm_Processing: + +0000423c : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 423c: 14d2 push r4-r5, r15 + 423e: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4240: 8060 ld.b r3, (r0, 0x0) + 4242: 32af movi r2, 175 + 4244: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4246: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 4248: 0c09 bf 0x425a // 425a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 424a: 3000 movi r0, 0 + 424c: 114b lrw r2, 0x8598 // 42f8 + 424e: 112c lrw r1, 0x8a7f // 42fc + 4250: e3fffc7a bsr 0x3b44 // 3b44 + return 0x01; + 4254: 3001 movi r0, 1 + break; + } + + + return 0; +} + 4256: 1401 addi r14, r14, 4 + 4258: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 425a: 114a lrw r2, 0x20000434 // 4300 + 425c: 8061 ld.b r3, (r0, 0x1) + 425e: 8240 ld.b r2, (r2, 0x0) + 4260: 64ca cmpne r2, r3 + 4262: 0c08 bf 0x4272 // 4272 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4264: 3000 movi r0, 0 + 4266: 1145 lrw r2, 0x8598 // 42f8 + 4268: 1127 lrw r1, 0x8a91 // 4304 + 426a: e3fffc6d bsr 0x3b44 // 3b44 + return 0x02; + 426e: 3002 movi r0, 2 + 4270: 07f3 br 0x4256 // 4256 + if(data[2] != len){ + 4272: 8062 ld.b r3, (r0, 0x2) + 4274: 750d zexth r4, r3 + 4276: 6452 cmpne r4, r1 + 4278: 0c09 bf 0x428a // 428a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 427a: b820 st.w r1, (r14, 0x0) + 427c: 105f lrw r2, 0x8598 // 42f8 + 427e: 1123 lrw r1, 0x8aa2 // 4308 + 4280: 3000 movi r0, 0 + 4282: e3fffc61 bsr 0x3b44 // 3b44 + return 0x03; + 4286: 3003 movi r0, 3 + 4288: 07e7 br 0x4256 // 4256 + if(data[len-1] != 0xFA){ + 428a: 60c0 addu r3, r0 + 428c: 2b00 subi r3, 1 + 428e: 8360 ld.b r3, (r3, 0x0) + 4290: 32fa movi r2, 250 + 4292: 648e cmpne r3, r2 + 4294: 0c07 bf 0x42a2 // 42a2 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 4296: 1059 lrw r2, 0x8598 // 42f8 + 4298: 103d lrw r1, 0x8ab5 // 430c + 429a: 3000 movi r0, 0 + 429c: e3fffc54 bsr 0x3b44 // 3b44 + 42a0: 07f3 br 0x4286 // 4286 + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 42a2: 5c23 subi r1, r4, 1 + 42a4: 7445 zexth r1, r1 + 42a6: e3fffe31 bsr 0x3f08 // 3f08 + 42aa: 3840 cmpnei r0, 0 + 42ac: 0806 bt 0x42b8 // 42b8 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 42ae: 1053 lrw r2, 0x8598 // 42f8 + 42b0: 1038 lrw r1, 0x8ac5 // 4310 + 42b2: e3fffc49 bsr 0x3b44 // 3b44 + 42b6: 07e8 br 0x4286 // 4286 + switch(data[4]){ + 42b8: 8504 ld.b r0, (r5, 0x4) + 42ba: 2800 subi r0, 1 + 42bc: 3804 cmphsi r0, 5 + 42be: 080c bt 0x42d6 // 42d6 + 42c0: 5c37 subi r1, r4, 6 + 42c2: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42c4: 7445 zexth r1, r1 + switch(data[4]){ + 42c6: e3ffe51b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42ca: 0803 .short 0x0803 + 42cc: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 42d0: 6c17 mov r0, r5 + 42d2: e3fffe5b bsr 0x3f88 // 3f88 + return 0; + 42d6: 3000 movi r0, 0 + 42d8: 07bf br 0x4256 // 4256 + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 42da: 6c17 mov r0, r5 + 42dc: e3fffeb2 bsr 0x4040 // 4040 + 42e0: 07fb br 0x42d6 // 42d6 + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 42e2: 6c17 mov r0, r5 + 42e4: e3ffff2a bsr 0x4138 // 4138 + 42e8: 07f7 br 0x42d6 // 42d6 + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 42ea: 6c17 mov r0, r5 + 42ec: e3ffff42 bsr 0x4170 // 4170 + 42f0: 07f3 br 0x42d6 // 42d6 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42f2: 6c17 mov r0, r5 + 42f4: e3ffff96 bsr 0x4220 // 4220 + 42f8: 00008598 .long 0x00008598 + 42fc: 00008a7f .long 0x00008a7f + 4300: 20000434 .long 0x20000434 + 4304: 00008a91 .long 0x00008a91 + 4308: 00008aa2 .long 0x00008aa2 + 430c: 00008ab5 .long 0x00008ab5 + 4310: 00008ac5 .long 0x00008ac5 + +Disassembly of section .text.EEPROM_CheckSum: + +00004314 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4314: 6cc3 mov r3, r0 + 4316: 6040 addu r1, r0 + U8_T data_sum = 0; + 4318: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 431e: 783c jmp r15 + data_sum += data[i]; + 4320: 8340 ld.b r2, (r3, 0x0) + 4322: 6008 addu r0, r2 + 4324: 7400 zextb r0, r0 + 4326: 2300 addi r3, 1 + 4328: 07f9 br 0x431a // 431a + +Disassembly of section .text.EEPROM_ReadParaInfo: + +0000432c : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 432c: 14d1 push r4, r15 + 432e: 143b subi r14, r14, 108 + 4330: 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)); + 4332: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4334: 3264 movi r2, 100 + 4336: 3100 movi r1, 0 + 4338: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 433a: b860 st.w r3, (r14, 0x0) + 433c: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4340: e3ffeb44 bsr 0x19c8 // 19c8 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4344: 6cbb mov r2, r14 + 4346: 3104 movi r1, 4 + 4348: 1014 lrw r0, 0x10000020 // 4398 + 434a: e3fff37d bsr 0x2a44 // 2a44 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 434e: d84e0000 ld.b r2, (r14, 0x0) + 4352: 33a6 movi r3, 166 + 4354: 64ca cmpne r2, r3 + 4356: 0c04 bf 0x435e // 435e + return 0x00; + } + } + } + + return 0x01; + 4358: 3001 movi r0, 1 +} + 435a: 141b addi r14, r14, 108 + 435c: 1491 pop r4, r15 + read_len |= read_info[1]; + 435e: d82e0002 ld.b r1, (r14, 0x2) + 4362: d86e0001 ld.b r3, (r14, 0x1) + 4366: 4128 lsli r1, r1, 8 + 4368: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 436a: 3364 movi r3, 100 + 436c: 644c cmphs r3, r1 + 436e: 0ff5 bf 0x4358 // 4358 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4370: 1a02 addi r2, r14, 8 + 4372: 100b lrw r0, 0x10000024 // 439c + 4374: e3fff368 bsr 0x2a44 // 2a44 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 4378: 3108 movi r1, 8 + 437a: 1802 addi r0, r14, 8 + 437c: e3ffffcc bsr 0x4314 // 4314 + 4380: d86e0003 ld.b r3, (r14, 0x3) + 4384: 640e cmpne r3, r0 + 4386: 0be9 bt 0x4358 // 4358 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 4388: 3208 movi r2, 8 + 438a: 1902 addi r1, r14, 8 + 438c: 6c13 mov r0, r4 + 438e: e3ffeb61 bsr 0x1a50 // 1a50 <__memcpy_fast> + return 0x00; + 4392: 3000 movi r0, 0 + 4394: 07e3 br 0x435a // 435a + 4396: 0000 bkpt + 4398: 10000020 .long 0x10000020 + 439c: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000043a0 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43a0: 14d0 push r15 + 43a2: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 43a4: 3300 movi r3, 0 + 43a6: 2b59 subi r3, 90 + 43a8: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 43ac: 3308 movi r3, 8 + 43ae: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 43b2: 3300 movi r3, 0 + 43b4: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43b8: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43ba: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43bc: 3208 movi r2, 8 + 43be: 6c0f mov r0, r3 + 43c0: e3ffeb48 bsr 0x1a50 // 1a50 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 43c4: 3108 movi r1, 8 + 43c6: e3ffffa7 bsr 0x4314 // 4314 + 43ca: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 43ce: 6cbb mov r2, r14 + 43d0: 310c movi r1, 12 + 43d2: 1004 lrw r0, 0x10000020 // 43e0 + 43d4: e3fff2e8 bsr 0x29a4 // 29a4 + + return 0; +} + 43d8: 3000 movi r0, 0 + 43da: 141b addi r14, r14, 108 + 43dc: 1490 pop r15 + 43de: 0000 bkpt + 43e0: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +000043e4 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 43e4: 14d1 push r4, r15 + 43e6: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 43e8: 8062 ld.b r3, (r0, 0x2) + 43ea: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 43ec: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 43ee: 0c03 bf 0x43f4 // 43f4 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 43f0: 3309 movi r3, 9 + 43f2: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 43f4: 8442 ld.b r2, (r4, 0x2) + 43f6: 103d lrw r1, 0x8ad4 // 4468 + 43f8: 3000 movi r0, 0 + 43fa: e3fffba5 bsr 0x3b44 // 3b44 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 43fe: 8463 ld.b r3, (r4, 0x3) + 4400: 3b02 cmphsi r3, 3 + 4402: 0c03 bf 0x4408 // 4408 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4404: 3300 movi r3, 0 + 4406: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 4408: 8464 ld.b r3, (r4, 0x4) + 440a: 3b01 cmphsi r3, 2 + 440c: 0c03 bf 0x4412 // 4412 + { + info->backlight_en = 0x00; + 440e: 3300 movi r3, 0 + 4410: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 4412: 8461 ld.b r3, (r4, 0x1) + 4414: 3b02 cmphsi r3, 3 + 4416: 0c03 bf 0x441c // 441c + { + info->pipe_flag = 0x00; + 4418: 3300 movi r3, 0 + 441a: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 441c: 8460 ld.b r3, (r4, 0x0) + 441e: 2b00 subi r3, 1 + 4420: 74cc zextb r3, r3 + 4422: 32fd movi r2, 253 + 4424: 64c8 cmphs r2, r3 + 4426: 0803 bt 0x442c // 442c + { + info->dev_addr = 0x01; + 4428: 3301 movi r3, 1 + 442a: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 442c: 8465 ld.b r3, (r4, 0x5) + 442e: 3b02 cmphsi r3, 3 + 4430: 0c03 bf 0x4436 // 4436 + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4432: 3301 movi r3, 1 + 4434: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 4436: 8466 ld.b r3, (r4, 0x6) + 4438: 3b02 cmphsi r3, 3 + 443a: 0c03 bf 0x4440 // 4440 + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 443c: 3300 movi r3, 0 + 443e: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 4440: 8467 ld.b r3, (r4, 0x7) + 4442: 3b02 cmphsi r3, 3 + 4444: 0c03 bf 0x444a // 444a + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 4446: 3301 movi r3, 1 + 4448: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 444a: 8427 ld.b r1, (r4, 0x7) + 444c: b822 st.w r1, (r14, 0x8) + 444e: 8420 ld.b r1, (r4, 0x0) + 4450: b821 st.w r1, (r14, 0x4) + 4452: 8425 ld.b r1, (r4, 0x5) + 4454: b820 st.w r1, (r14, 0x0) + 4456: 8464 ld.b r3, (r4, 0x4) + 4458: 8443 ld.b r2, (r4, 0x3) + 445a: 1025 lrw r1, 0x8aeb // 446c + 445c: 3000 movi r0, 0 + 445e: e3fffb73 bsr 0x3b44 // 3b44 + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 4462: 3000 movi r0, 0 + 4464: 1403 addi r14, r14, 12 + 4466: 1491 pop r4, r15 + 4468: 00008ad4 .long 0x00008ad4 + 446c: 00008aeb .long 0x00008aeb + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004470 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4470: 3301 movi r3, 1 + 4472: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 4474: 3300 movi r3, 0 + 4476: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4478: 3309 movi r3, 9 + 447a: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 447c: 3300 movi r3, 0 + 447e: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 4480: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 4482: 3301 movi r3, 1 + 4484: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 4486: 3300 movi r3, 0 + 4488: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 448a: 3301 movi r3, 1 + 448c: a067 st.b r3, (r0, 0x7) + +} + 448e: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +00004490 : +void EEPROM_Init(void){ + 4490: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 4492: 1073 lrw r3, 0x20000060 // 44dc + 4494: 3201 movi r2, 1 + 4496: 9360 ld.w r3, (r3, 0x0) + 4498: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 449a: 9345 ld.w r2, (r3, 0x14) + 449c: 3aa1 bseti r2, 1 + 449e: 3ab0 bseti r2, 16 + 44a0: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 44a2: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 44a4: 108f lrw r4, 0x20000434 // 44e0 + delay_nms(10); + 44a6: e3fff3e5 bsr 0x2c70 // 2c70 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 44aa: 3208 movi r2, 8 + 44ac: 3100 movi r1, 0 + 44ae: 6c13 mov r0, r4 + 44b0: e3ffea8c bsr 0x19c8 // 19c8 <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44b4: 6c13 mov r0, r4 + 44b6: e3ffff3b bsr 0x432c // 432c + if(rev == 0x00){ + 44ba: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44bc: 6c13 mov r0, r4 + if(rev == 0x00){ + 44be: 0804 bt 0x44c6 // 44c6 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44c0: e3ffff92 bsr 0x43e4 // 43e4 +} + 44c4: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 44c6: e3ffffd5 bsr 0x4470 // 4470 + EEPROM_WriteParaInfo(&g_eeprom); + 44ca: 6c13 mov r0, r4 + 44cc: e3ffff6a bsr 0x43a0 // 43a0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 44d0: 8441 ld.b r2, (r4, 0x1) + 44d2: 1025 lrw r1, 0x8b45 // 44e4 + 44d4: 3000 movi r0, 0 + 44d6: e3fffb37 bsr 0x3b44 // 3b44 +} + 44da: 07f5 br 0x44c4 // 44c4 + 44dc: 20000060 .long 0x20000060 + 44e0: 20000434 .long 0x20000434 + 44e4: 00008b45 .long 0x00008b45 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000044e8 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44e8: 14d2 push r4-r5, r15 + 44ea: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 44ec: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 44ee: 6d47 mov r5, r1 + switch(level){ + 44f0: 0c07 bf 0x44fe // 44fe + 44f2: 3840 cmpnei r0, 0 + 44f4: 0c27 bf 0x4542 // 4542 + 44f6: 3842 cmpnei r0, 2 + 44f8: 0c23 bf 0x453e // 453e + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 44fa: 3001 movi r0, 1 + 44fc: 041f br 0x453a // 453a + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 44fe: 1093 lrw r4, 0x10000180 // 4548 + break; + } + + memset(save_para,0,sizeof(save_para)); + 4500: 323c movi r2, 60 + 4502: 3100 movi r1, 0 + 4504: 6c3b mov r0, r14 + 4506: e3ffea61 bsr 0x19c8 // 19c8 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 450a: 3300 movi r3, 0 + 450c: 2b59 subi r3, 90 + 450e: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 4512: 331c movi r3, 28 + 4514: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4518: 1b01 addi r3, r14, 4 + 451a: 321c movi r2, 28 + 451c: 6c0f mov r0, r3 + 451e: 6c57 mov r1, r5 + 4520: e3ffea98 bsr 0x1a50 // 1a50 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4524: 311c movi r1, 28 + 4526: e3fffef7 bsr 0x4314 // 4314 + 452a: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 452e: 6cbb mov r2, r14 + 4530: 6c13 mov r0, r4 + 4532: 3120 movi r1, 32 + 4534: e3fff238 bsr 0x29a4 // 29a4 + + return 0; + 4538: 3000 movi r0, 0 +} + 453a: 140f addi r14, r14, 60 + 453c: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 453e: 1084 lrw r4, 0x10000200 // 454c + break; + 4540: 07e0 br 0x4500 // 4500 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4542: 1084 lrw r4, 0x10000100 // 4550 + 4544: 07de br 0x4500 // 4500 + 4546: 0000 bkpt + 4548: 10000180 .long 0x10000180 + 454c: 10000200 .long 0x10000200 + 4550: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004554 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4554: 14d2 push r4-r5, r15 + 4556: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4558: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 455a: 6d07 mov r4, r1 + switch(level){ + 455c: 0c3a bf 0x45d0 // 45d0 + 455e: 3840 cmpnei r0, 0 + 4560: 0c05 bf 0x456a // 456a + 4562: 3842 cmpnei r0, 2 + 4564: 0c34 bf 0x45cc // 45cc + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4566: 3001 movi r0, 1 + 4568: 0430 br 0x45c8 // 45c8 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 456a: 11a1 lrw r5, 0x10000100 // 45ec + memset(read_info,0,sizeof(read_info)); + 456c: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 456e: 3234 movi r2, 52 + 4570: 3100 movi r1, 0 + 4572: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4574: b860 st.w r3, (r14, 0x0) + 4576: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 457a: e3ffea27 bsr 0x19c8 // 19c8 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 457e: 6cbb mov r2, r14 + 4580: 3104 movi r1, 4 + 4582: 6c17 mov r0, r5 + 4584: e3fff260 bsr 0x2a44 // 2a44 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4588: d84e0000 ld.b r2, (r14, 0x0) + 458c: 33a6 movi r3, 166 + 458e: 64ca cmpne r2, r3 + 4590: 0827 bt 0x45de // 45de + read_len |= read_info[1]; + 4592: d84e0002 ld.b r2, (r14, 0x2) + 4596: d86e0001 ld.b r3, (r14, 0x1) + 459a: 4248 lsli r2, r2, 8 + 459c: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 459e: 3a5c cmpnei r2, 28 + 45a0: 081a bt 0x45d4 // 45d4 + temp_addr += EEPROM_Offset_Data; + 45a2: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 45a4: 1a02 addi r2, r14, 8 + 45a6: 311c movi r1, 28 + 45a8: e3fff24e bsr 0x2a44 // 2a44 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 45ac: 311c movi r1, 28 + 45ae: 1802 addi r0, r14, 8 + 45b0: e3fffeb2 bsr 0x4314 // 4314 + 45b4: d86e0003 ld.b r3, (r14, 0x3) + 45b8: 640e cmpne r3, r0 + 45ba: 0bd6 bt 0x4566 // 4566 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 45bc: 321c movi r2, 28 + 45be: 1902 addi r1, r14, 8 + 45c0: 6c13 mov r0, r4 + 45c2: e3ffea47 bsr 0x1a50 // 1a50 <__memcpy_fast> + return 0x00; + 45c6: 3000 movi r0, 0 +} + 45c8: 140f addi r14, r14, 60 + 45ca: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 45cc: 10a9 lrw r5, 0x10000200 // 45f0 + break; + 45ce: 07cf br 0x456c // 456c + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 45d0: 10a9 lrw r5, 0x10000180 // 45f4 + 45d2: 07cd br 0x456c // 456c + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 45d4: 1029 lrw r1, 0x8b5e // 45f8 + 45d6: 3000 movi r0, 0 + 45d8: e3fffab6 bsr 0x3b44 // 3b44 + 45dc: 07c5 br 0x4566 // 4566 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 45de: 3304 movi r3, 4 + 45e0: 6cbb mov r2, r14 + 45e2: 1027 lrw r1, 0x8b80 // 45fc + 45e4: 3000 movi r0, 0 + 45e6: e3fffab5 bsr 0x3b50 // 3b50 + 45ea: 07be br 0x4566 // 4566 + 45ec: 10000100 .long 0x10000100 + 45f0: 10000200 .long 0x10000200 + 45f4: 10000180 .long 0x10000180 + 45f8: 00008b5e .long 0x00008b5e + 45fc: 00008b80 .long 0x00008b80 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00004600 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4600: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 4602: 8163 ld.b r3, (r1, 0x3) + 4604: 2b00 subi r3, 1 + 4606: 74cc zextb r3, r3 + 4608: 3263 movi r2, 99 + 460a: 64c8 cmphs r2, r3 + 460c: 0845 bt 0x4696 // 4696 + para->base_speed = 20; //默认参数 - 20 + 460e: 3314 movi r3, 20 + 4610: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 4612: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4614: 8140 ld.b r2, (r1, 0x0) + 4616: 2a00 subi r2, 1 + 4618: 7488 zextb r2, r2 + 461a: 3a09 cmphsi r2, 10 + 461c: 0c04 bf 0x4624 // 4624 + para->press_debounce = 6; //默认参数 - 6 + 461e: 3306 movi r3, 6 + 4620: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 4622: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4624: 8141 ld.b r2, (r1, 0x1) + 4626: 2a00 subi r2, 1 + 4628: 7488 zextb r2, r2 + 462a: 3a09 cmphsi r2, 10 + 462c: 0c04 bf 0x4634 // 4634 + para->release_debounce = 5; //默认参数 - 5 + 462e: 3305 movi r3, 5 + 4630: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 4632: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4634: 8142 ld.b r2, (r1, 0x2) + 4636: 2a00 subi r2, 1 + 4638: 7488 zextb r2, r2 + 463a: 3463 movi r4, 99 + 463c: 6490 cmphs r4, r2 + 463e: 0804 bt 0x4646 // 4646 + para->multiTimes_filt = 40; //默认参数 - 40 + 4640: 3328 movi r3, 40 + 4642: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4644: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4646: 9146 ld.w r2, (r1, 0x18) + 4648: 2a00 subi r2, 1 + 464a: 3a1f cmphsi r2, 32 + 464c: 0c04 bf 0x4654 // 4654 + para->longpress_time = 16; //默认参数 - 16 + 464e: 3310 movi r3, 16 + 4650: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 4652: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 4654: 34a0 movi r4, 160 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4656: 36f5 movi r6, 245 + 4658: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 465a: 10f3 lrw r7, 0x3de // 46a4 + 465c: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 465e: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4660: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4662: 8aa0 ld.h r5, (r2, 0x0) + 4664: 2d09 subi r5, 10 + 4666: 7555 zexth r5, r5 + 4668: 655c cmphs r7, r5 + 466a: 0803 bt 0x4670 // 4670 + para->senprd[i] = 320; //默认参数 - 320 + 466c: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 466e: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4670: 8aa5 ld.h r5, (r2, 0xa) + 4672: 2d13 subi r5, 20 + 4674: 7555 zexth r5, r5 + 4676: 6558 cmphs r6, r5 + 4678: 080a bt 0x468c // 468c + + switch(level){ + 467a: 3841 cmpnei r0, 1 + 467c: 0c11 bf 0x469e // 469e + 467e: 3840 cmpnei r0, 0 + 4680: 0c0d bf 0x469a // 469a + 4682: 3842 cmpnei r0, 2 + 4684: 080d bt 0x469e // 469e + case 0x02: + para->triggerlevel[i] = 100; //高灵敏度 默认参数 - 60 + 4686: 3364 movi r3, 100 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 120; + 4688: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 468a: 3301 movi r3, 1 + 468c: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 4692: 6c0f mov r0, r3 + 4694: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 4696: 3300 movi r3, 0 + 4698: 07be br 0x4614 // 4614 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 469a: 338c movi r3, 140 + 469c: 07f6 br 0x4688 // 4688 + para->triggerlevel[i] = 120; + 469e: 3378 movi r3, 120 + 46a0: 07f4 br 0x4688 // 4688 + 46a2: 0000 bkpt + 46a4: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000046a8 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 46a8: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 46aa: 3314 movi r3, 20 + 46ac: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 46ae: 3306 movi r3, 6 + 46b0: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 46b2: 3305 movi r3, 5 + 46b4: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 46b6: 3328 movi r3, 40 + 46b8: a162 st.b r3, (r1, 0x2) +// para->disupdatevalue_debounce = 0x03; //默认参数 - 3 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 46ba: 32a0 movi r2, 160 + para->longpress_time = 16; //默认参数 - 8 + 46bc: 3310 movi r3, 16 + 46be: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 46c0: 4241 lsli r2, r2, 1 + 46c2: 596e addi r3, r1, 4 + 46c4: 210d addi r1, 14 +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 46c6: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 46c8: ab40 st.h r2, (r3, 0x0) + switch(level){ + 46ca: 0c0d bf 0x46e4 // 46e4 + 46cc: 3840 cmpnei r0, 0 + 46ce: 0c09 bf 0x46e0 // 46e0 + 46d0: 3842 cmpnei r0, 2 + 46d2: 0809 bt 0x46e4 // 46e4 + case 0x02: + para->triggerlevel[i] = 100; //高灵敏度 默认参数 - 60 + 46d4: 3464 movi r4, 100 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 120; + 46d6: ab85 st.h r4, (r3, 0xa) + 46d8: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 46de: 1481 pop r4 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 46e0: 348c movi r4, 140 + 46e2: 07fa br 0x46d6 // 46d6 + para->triggerlevel[i] = 120; + 46e4: 3478 movi r4, 120 + 46e6: 07f8 br 0x46d6 // 46d6 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +000046e8 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 46e8: 14d4 push r4-r7, r15 + 46ea: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 46ec: 8043 ld.b r2, (r0, 0x3) + 46ee: 1038 lrw r1, 0x8b9e // 474c + 46f0: 3000 movi r0, 0 + 46f2: e3fffa29 bsr 0x3b44 // 3b44 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 46f6: 8440 ld.b r2, (r4, 0x0) + 46f8: 1036 lrw r1, 0x8bb6 // 4750 + 46fa: 3000 movi r0, 0 + 46fc: e3fffa24 bsr 0x3b44 // 3b44 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4700: 8441 ld.b r2, (r4, 0x1) + 4702: 1035 lrw r1, 0x8bd2 // 4754 + 4704: 3000 movi r0, 0 + 4706: e3fffa1f bsr 0x3b44 // 3b44 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 470a: 8442 ld.b r2, (r4, 0x2) + 470c: 1033 lrw r1, 0x8bf0 // 4758 + 470e: 3000 movi r0, 0 + 4710: e3fffa1a bsr 0x3b44 // 3b44 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4714: 9446 ld.w r2, (r4, 0x18) + 4716: 3000 movi r0, 0 + 4718: 1031 lrw r1, 0x8c0d // 475c + 471a: e3fffa15 bsr 0x3b44 // 3b44 + 471e: 2403 addi r4, 4 + 4720: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 4722: 10f0 lrw r7, 0x8c29 // 4760 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4724: 10d0 lrw r6, 0x8c42 // 4764 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4726: e3ffead1 bsr 0x1cc8 // 1cc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 472a: 8c60 ld.h r3, (r4, 0x0) + 472c: 6c97 mov r2, r5 + 472e: 6c5f mov r1, r7 + 4730: 3000 movi r0, 0 + 4732: e3fffa09 bsr 0x3b44 // 3b44 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4736: 8c65 ld.h r3, (r4, 0xa) + 4738: 6c97 mov r2, r5 + 473a: 6c5b mov r1, r6 + 473c: 3000 movi r0, 0 + 473e: 2500 addi r5, 1 + 4740: e3fffa02 bsr 0x3b44 // 3b44 + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 474a: 1494 pop r4-r7, r15 + 474c: 00008b9e .long 0x00008b9e + 4750: 00008bb6 .long 0x00008bb6 + 4754: 00008bd2 .long 0x00008bd2 + 4758: 00008bf0 .long 0x00008bf0 + 475c: 00008c0d .long 0x00008c0d + 4760: 00008c29 .long 0x00008c29 + 4764: 00008c42 .long 0x00008c42 + +Disassembly of section .text.ADC_Init: + +00004768 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4768: 14d0 push r15 + 476a: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 476c: e3ffeeb8 bsr 0x24dc // 24dc + ADC12_Software_Reset(); //ADC软件复位 + 4770: e3ffef16 bsr 0x259c // 259c + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 4774: 3101 movi r1, 1 + 4776: 3002 movi r0, 2 + 4778: e3ffeefc bsr 0x2570 // 2570 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 477c: 3301 movi r3, 1 + 477e: b861 st.w r3, (r14, 0x4) + 4780: 3302 movi r3, 2 + 4782: b860 st.w r3, (r14, 0x0) + 4784: 3200 movi r2, 0 + 4786: 3306 movi r3, 6 + 4788: 3101 movi r1, 1 + 478a: 3001 movi r0, 1 + 478c: e3ffef42 bsr 0x2610 // 2610 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 4790: 3003 movi r0, 3 + 4792: e3ffef7d bsr 0x268c // 268c + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 4796: 3300 movi r3, 0 + 4798: 3200 movi r2, 0 + 479a: 3100 movi r1, 0 + 479c: 300f movi r0, 15 + 479e: e3fff043 bsr 0x2824 // 2824 + + ADC12_CMD(ENABLE); + 47a2: 3001 movi r0, 1 + 47a4: e3ffef02 bsr 0x25a8 // 25a8 + + ADC12_ready_wait(); + 47a8: e3ffef14 bsr 0x25d0 // 25d0 + + ADC12_Control(ADC12_START); + 47ac: 3008 movi r0, 8 + 47ae: e3ffeec9 bsr 0x2540 // 2540 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 47b2: 3250 movi r2, 80 + 47b4: 3100 movi r1, 0 + 47b6: 1003 lrw r0, 0x2000043c // 47c0 + 47b8: e3ffe908 bsr 0x19c8 // 19c8 <__memset_fast> +} + 47bc: 1402 addi r14, r14, 8 + 47be: 1490 pop r15 + 47c0: 2000043c .long 0x2000043c + +Disassembly of section .text.Thermistor_Array_Transform: + +000047c4 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 47c4: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 47c6: 1070 lrw r3, 0x79bd // 4804 + 47c8: 640c cmphs r3, r0 +{ + 47ca: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 47cc: 0c16 bf 0x47f8 // 47f8 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47ce: 33a1 movi r3, 161 + 47d0: 4365 lsli r3, r3, 5 + 47d2: 640c cmphs r3, r0 + 47d4: 0814 bt 0x47fc // 47fc + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47da: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 47de: 8a60 ld.h r3, (r2, 0x0) + 47e0: 644c cmphs r3, r1 + 47e2: 0c04 bf 0x47ea // 47ea + 47e4: 8a61 ld.h r3, (r2, 0x2) + 47e6: 644c cmphs r3, r1 + 47e8: 0c07 bf 0x47f6 // 47f6 + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 47f4: 30fa movi r0, 250 +} + 47f6: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 47f8: 3000 movi r0, 0 + 47fa: 07fe br 0x47f6 // 47f6 + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47fc: 30c8 movi r0, 200 + 47fe: 4001 lsli r0, r0, 1 + 4800: 07fb br 0x47f6 // 47f6 + 4802: 0000 bkpt + 4804: 000079bd .long 0x000079bd + 4808: 000085b2 .long 0x000085b2 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +0000480c : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 480c: 14d3 push r4-r6, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4810: 3200 movi r2, 0 + uint32_t temp_val = 0; + 4812: 3000 movi r0, 0 + 4814: 6d53 mov r5, r4 + temp_val += g_adc.dataBuff[i]; + 4816: 5a6e addi r3, r2, 4 + 4818: 4361 lsli r3, r3, 1 + 481a: 60d0 addu r3, r4 + 481c: 8320 ld.b r1, (r3, 0x0) + 481e: 8361 ld.b r3, (r3, 0x1) + 4820: 4368 lsli r3, r3, 8 + 4822: 2200 addi r2, 1 + 4824: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 482c: 310a movi r1, 10 + 482e: e3fff7f7 bsr 0x381c // 381c <__udivsi3> + 4832: 7481 zexth r2, r0 + 4834: 74c8 zextb r3, r2 + 4836: 4a48 lsri r2, r2, 8 + 4838: a445 st.b r2, (r4, 0x5) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 483a: a447 st.b r2, (r4, 0x7) + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 483c: 845d ld.b r2, (r4, 0x1d) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 483e: a464 st.b r3, (r4, 0x4) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4840: a466 st.b r3, (r4, 0x6) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4842: 4248 lsli r2, r2, 8 + 4844: 847c ld.b r3, (r4, 0x1c) + 4846: 6c8c or r2, r3 + 4848: 3a13 cmphsi r2, 20 + 484a: 0c06 bf 0x4856 // 4856 + g_adc.temp_index = 0; + 484c: 3300 movi r3, 0 + 484e: a47c st.b r3, (r4, 0x1c) + 4850: a47d st.b r3, (r4, 0x1d) + g_adc.gather_full = 1; + 4852: 3301 movi r3, 1 + 4854: a461 st.b r3, (r4, 0x1) + + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4856: 859d ld.b r4, (r5, 0x1d) + 4858: 857c ld.b r3, (r5, 0x1c) + 485a: 4488 lsli r4, r4, 8 + 485c: 6d0c or r4, r3 + 485e: 5c62 addi r3, r4, 1 + 4860: 74cd zexth r3, r3 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4862: 7581 zexth r6, r0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4864: a57c st.b r3, (r5, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4866: 100e lrw r0, 0x2710 // 489c + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4868: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 486a: 102e lrw r1, 0xce4 // 48a0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 486c: a57d st.b r3, (r5, 0x1d) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 486e: 605a subu r1, r6 + 4870: 7c18 mult r0, r6 + 4872: e3fff7c3 bsr 0x37f8 // 37f8 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4876: 7401 zexth r0, r0 + 4878: 240f addi r4, 16 + 487a: e3ffffa5 bsr 0x47c4 // 47c4 + 487e: 4481 lsli r4, r4, 1 + 4880: 6114 addu r4, r5 + 4882: 4868 lsri r3, r0, 8 + 4884: 6c83 mov r2, r0 + 4886: a400 st.b r0, (r4, 0x0) + 4888: a461 st.b r3, (r4, 0x1) + + Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d avg_val:%d",Thermistor_Array_Transform(temp_val),g_adc.avg_val); + 488a: 3002 movi r0, 2 + 488c: 6cdb mov r3, r6 + 488e: 1026 lrw r1, 0x8c61 // 48a4 + 4890: e3fff95a bsr 0x3b44 // 3b44 +} + 4894: 1493 pop r4-r6, r15 + 4896: 0000 bkpt + 4898: 2000043c .long 0x2000043c + 489c: 00002710 .long 0x00002710 + 48a0: 00000ce4 .long 0x00000ce4 + 48a4: 00008c61 .long 0x00008c61 + +Disassembly of section .text.Get_Temp_Val: + +000048a8 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 48a8: 1063 lrw r3, 0x2000043c // 48b4 + 48aa: 831f ld.b r0, (r3, 0x1f) + 48ac: 835e ld.b r2, (r3, 0x1e) + 48ae: 4008 lsli r0, r0, 8 + 48b0: 6c08 or r0, r2 +} + 48b2: 783c jmp r15 + 48b4: 2000043c .long 0x2000043c + +Disassembly of section .text.Gather_Temp: + +000048b8 : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 48b8: 14d3 push r4-r6, r15 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 1000) + 48ba: 1187 lrw r4, 0x2000043c // 4954 + 48bc: 3340 movi r3, 64 + 48be: 60d0 addu r3, r4 + 48c0: 832d ld.b r1, (r3, 0xd) + 48c2: 834c ld.b r2, (r3, 0xc) + 48c4: 4128 lsli r1, r1, 8 + 48c6: 6c48 or r1, r2 + 48c8: 834e ld.b r2, (r3, 0xe) + 48ca: 4250 lsli r2, r2, 16 + 48cc: 6c48 or r1, r2 + 48ce: 834f ld.b r2, (r3, 0xf) + 48d0: 11a2 lrw r5, 0x200000b8 // 4958 + 48d2: 4258 lsli r2, r2, 24 + 48d4: 6c84 or r2, r1 + 48d6: 9500 ld.w r0, (r5, 0x0) + 48d8: 600a subu r0, r2 + 48da: 1141 lrw r2, 0x3e7 // 495c + 48dc: 6408 cmphs r2, r0 + 48de: 0817 bt 0x490c // 490c + { + g_adc.gather_tick = SysTick_1ms; + 48e0: 9540 ld.w r2, (r5, 0x0) + 48e2: 4a28 lsri r1, r2, 8 + 48e4: a34c st.b r2, (r3, 0xc) + 48e6: a32d st.b r1, (r3, 0xd) + 48e8: 4a30 lsri r1, r2, 16 + 48ea: 4a58 lsri r2, r2, 24 + 48ec: a32e st.b r1, (r3, 0xe) + 48ee: a34f st.b r2, (r3, 0xf) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 48f0: 8461 ld.b r3, (r4, 0x1) + 48f2: 3b41 cmpnei r3, 1 + 48f4: 0c0d bf 0x490e // 490e + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 48f6: 843d ld.b r1, (r4, 0x1d) + 48f8: 847c ld.b r3, (r4, 0x1c) + 48fa: 4128 lsli r1, r1, 8 + 48fc: 6c4c or r1, r3 + 48fe: 3000 movi r0, 0 + 4900: 3300 movi r3, 0 + temp_val += g_adc.tempBuff[i]; + 4902: 3510 movi r5, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4904: 644c cmphs r3, r1 + 4906: 0c1c bf 0x493e // 493e + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 4908: 3940 cmpnei r1, 0 + 490a: 0813 bt 0x4930 // 4930 + } + g_adc.temp_val = temp_val / temp_size; + + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 490c: 1493 pop r4-r6, r15 + if(g_adc.gather_full == 1){ + 490e: 3200 movi r2, 0 + 4910: 3000 movi r0, 0 + temp_val += g_adc.tempBuff[i]; + 4912: 3110 movi r1, 16 + 4914: 5a64 addu r3, r2, r1 + 4916: 4361 lsli r3, r3, 1 + 4918: 60d0 addu r3, r4 + 491a: 83a0 ld.b r5, (r3, 0x0) + 491c: 8361 ld.b r3, (r3, 0x1) + 491e: 4368 lsli r3, r3, 8 + 4920: 2200 addi r2, 1 + 4922: 6cd4 or r3, r5 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4924: 3a54 cmpnei r2, 20 + temp_val += g_adc.tempBuff[i]; + 4926: 600c addu r0, r3 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4928: 0bf6 bt 0x4914 // 4914 + g_adc.gather_full = 0; + 492a: 3300 movi r3, 0 + 492c: a461 st.b r3, (r4, 0x1) + temp_size = Temp_DataBuff_Size; + 492e: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 4930: e3fff776 bsr 0x381c // 381c <__udivsi3> + 4934: 7401 zexth r0, r0 + 4936: a41e st.b r0, (r4, 0x1e) + 4938: 4808 lsri r0, r0, 8 + 493a: a41f st.b r0, (r4, 0x1f) + 493c: 07e8 br 0x490c // 490c + temp_val += g_adc.tempBuff[i]; + 493e: 5b54 addu r2, r3, r5 + 4940: 4241 lsli r2, r2, 1 + 4942: 6090 addu r2, r4 + 4944: 82c0 ld.b r6, (r2, 0x0) + 4946: 8241 ld.b r2, (r2, 0x1) + 4948: 4248 lsli r2, r2, 8 + 494a: 6c98 or r2, r6 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 494c: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 494e: 6008 addu r0, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4950: 74cc zextb r3, r3 + 4952: 07d9 br 0x4904 // 4904 + 4954: 2000043c .long 0x2000043c + 4958: 200000b8 .long 0x200000b8 + 495c: 000003e7 .long 0x000003e7 + +Disassembly of section .text.ADC_Sample_Task: + +00004960 : +void ADC_Sample_Task(void){ + 4960: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 4962: 1187 lrw r4, 0x2000043c // 49fc + 4964: 3340 movi r3, 64 + 4966: 60d0 addu r3, r4 + 4968: 8329 ld.b r1, (r3, 0x9) + 496a: 8348 ld.b r2, (r3, 0x8) + 496c: 4128 lsli r1, r1, 8 + 496e: 6c48 or r1, r2 + 4970: 834a ld.b r2, (r3, 0xa) + 4972: 4250 lsli r2, r2, 16 + 4974: 6c48 or r1, r2 + 4976: 834b ld.b r2, (r3, 0xb) + 4978: 11a2 lrw r5, 0x200000b8 // 4a00 + 497a: 4258 lsli r2, r2, 24 + 497c: 9500 ld.w r0, (r5, 0x0) + 497e: 6c84 or r2, r1 + 4980: 600a subu r0, r2 + 4982: 380a cmphsi r0, 11 + 4984: 0c24 bf 0x49cc // 49cc + g_adc.sample_tick = SysTick_1ms; + 4986: 9540 ld.w r2, (r5, 0x0) + 4988: 4a28 lsri r1, r2, 8 + 498a: a348 st.b r2, (r3, 0x8) + 498c: a329 st.b r1, (r3, 0x9) + ADC12_SEQEND_wait(0); + 498e: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 4990: 4a30 lsri r1, r2, 16 + 4992: 4a58 lsri r2, r2, 24 + 4994: a34b st.b r2, (r3, 0xb) + 4996: a32a st.b r1, (r3, 0xa) + ADC12_SEQEND_wait(0); + 4998: e3ffee26 bsr 0x25e4 // 25e4 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 499c: 84c3 ld.b r6, (r4, 0x3) + 499e: 8462 ld.b r3, (r4, 0x2) + 49a0: 46c8 lsli r6, r6, 8 + 49a2: 6d8c or r6, r3 + 49a4: 3000 movi r0, 0 + 49a6: e3ffee2b bsr 0x25fc // 25fc + 49aa: 5e6e addi r3, r6, 4 + 49ac: 4361 lsli r3, r3, 1 + 49ae: 60d0 addu r3, r4 + 49b0: a300 st.b r0, (r3, 0x0) + 49b2: 4808 lsri r0, r0, 8 + 49b4: a301 st.b r0, (r3, 0x1) + g_adc.index++; + 49b6: 8463 ld.b r3, (r4, 0x3) + 49b8: 8442 ld.b r2, (r4, 0x2) + 49ba: 4368 lsli r3, r3, 8 + 49bc: 6cc8 or r3, r2 + 49be: 2300 addi r3, 1 + 49c0: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 49c2: 3b09 cmphsi r3, 10 + 49c4: 0815 bt 0x49ee // 49ee + g_adc.index++; + 49c6: a462 st.b r3, (r4, 0x2) + 49c8: 4b68 lsri r3, r3, 8 + 49ca: a463 st.b r3, (r4, 0x3) + if (g_adc.full_flag == 0x01) { + 49cc: 8460 ld.b r3, (r4, 0x0) + 49ce: 3b41 cmpnei r3, 1 + 49d0: 080c bt 0x49e8 // 49e8 + if (SysTick_1ms - adc_tick >= 100) { + 49d2: 104d lrw r2, 0x200000cc // 4a04 + 49d4: 9220 ld.w r1, (r2, 0x0) + 49d6: 9560 ld.w r3, (r5, 0x0) + 49d8: 60c6 subu r3, r1 + 49da: 3163 movi r1, 99 + 49dc: 64c4 cmphs r1, r3 + 49de: 0805 bt 0x49e8 // 49e8 + adc_tick = SysTick_1ms; + 49e0: 9560 ld.w r3, (r5, 0x0) + 49e2: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 49e4: e3ffff14 bsr 0x480c // 480c + Gather_Temp(); + 49e8: e3ffff68 bsr 0x48b8 // 48b8 +} + 49ec: 1493 pop r4-r6, r15 + g_adc.index = 0; + 49ee: 3300 movi r3, 0 + 49f0: a462 st.b r3, (r4, 0x2) + 49f2: a463 st.b r3, (r4, 0x3) + g_adc.full_flag = 1; + 49f4: 3301 movi r3, 1 + 49f6: a460 st.b r3, (r4, 0x0) + 49f8: 07ea br 0x49cc // 49cc + 49fa: 0000 bkpt + 49fc: 2000043c .long 0x2000043c + 4a00: 200000b8 .long 0x200000b8 + 4a04: 200000cc .long 0x200000cc + +Disassembly of section .text.Contol_Switch_Light: + +00004a08 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 4a08: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4a0a: 3805 cmphsi r0, 6 +{ + 4a0c: 6d47 mov r5, r1 + switch(ch) + 4a0e: 0818 bt 0x4a3e // 4a3e + 4a10: 009b lrw r4, 0x2000048c // 4da0 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4a12: 3941 cmpnei r1, 1 + switch(ch) + 4a14: e3ffe18c bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4a18: 00330006 .long 0x00330006 + 4a1c: 008d0060 .long 0x008d0060 + 4a20: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4a24: 0814 bt 0x4a4c // 4a4c + if(g_switch.feedback_light_selection == 0x01){ + 4a26: 8462 ld.b r3, (r4, 0x2) + 4a28: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a2a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4a2c: 080a bt 0x4a40 // 4a40 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a2e: 300b movi r0, 11 + 4a30: e0000522 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4a34: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4a36: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a38: e000051e bsr 0x5474 // 5474 + g_switch.light_state[T_CH1] = state; + 4a3c: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4a3e: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4a40: 3006 movi r0, 6 + 4a42: e0000519 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4a46: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a48: 300b movi r0, 11 + 4a4a: 07f7 br 0x4a38 // 4a38 + }else if(state == Control_OFF){ + 4a4c: 3942 cmpnei r1, 2 + 4a4e: 0bf7 bt 0x4a3c // 4a3c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4a50: 016a lrw r3, 0x200000b8 // 4da4 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4a52: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4a54: 9360 ld.w r3, (r3, 0x0) + 4a56: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4a58: 8462 ld.b r3, (r4, 0x2) + 4a5a: 3b41 cmpnei r3, 1 + 4a5c: 0809 bt 0x4a6e // 4a6e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4a5e: 300b movi r0, 11 + 4a60: e000050a bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4a64: 846a ld.b r3, (r4, 0xa) + 4a66: 3b41 cmpnei r3, 1 + 4a68: 0bea bt 0x4a3c // 4a3c + 4a6a: 3101 movi r1, 1 + 4a6c: 07e5 br 0x4a36 // 4a36 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4a6e: 3006 movi r0, 6 + 4a70: e0000502 bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a74: 846a ld.b r3, (r4, 0xa) + 4a76: 3b41 cmpnei r3, 1 + 4a78: 0be2 bt 0x4a3c // 4a3c + 4a7a: 3101 movi r1, 1 + 4a7c: 07e6 br 0x4a48 // 4a48 + if(state == Control_ON){ + 4a7e: 0814 bt 0x4aa6 // 4aa6 + if(g_switch.feedback_light_selection == 0x01){ + 4a80: 8462 ld.b r3, (r4, 0x2) + 4a82: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4a84: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4a86: 080a bt 0x4a9a // 4a9a + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4a88: 300c movi r0, 12 + 4a8a: e00004f5 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4a8e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4a90: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4a92: e00004f1 bsr 0x5474 // 5474 + g_switch.light_state[T_CH2] = state; + 4a96: a4a6 st.b r5, (r4, 0x6) + break; + 4a98: 07d3 br 0x4a3e // 4a3e + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4a9a: 3007 movi r0, 7 + 4a9c: e00004ec bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4aa0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4aa2: 300c movi r0, 12 + 4aa4: 07f7 br 0x4a92 // 4a92 + }else if(state == Control_OFF){ + 4aa6: 3942 cmpnei r1, 2 + 4aa8: 0bf7 bt 0x4a96 // 4a96 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4aaa: 0260 lrw r3, 0x200000b8 // 4da4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4aac: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4aae: 9360 ld.w r3, (r3, 0x0) + 4ab0: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4ab2: 8462 ld.b r3, (r4, 0x2) + 4ab4: 3b41 cmpnei r3, 1 + 4ab6: 0809 bt 0x4ac8 // 4ac8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4ab8: 300c movi r0, 12 + 4aba: e00004dd bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4abe: 846a ld.b r3, (r4, 0xa) + 4ac0: 3b41 cmpnei r3, 1 + 4ac2: 0bea bt 0x4a96 // 4a96 + 4ac4: 3101 movi r1, 1 + 4ac6: 07e5 br 0x4a90 // 4a90 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4ac8: 3007 movi r0, 7 + 4aca: e00004d5 bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4ace: 846a ld.b r3, (r4, 0xa) + 4ad0: 3b41 cmpnei r3, 1 + 4ad2: 0be2 bt 0x4a96 // 4a96 + 4ad4: 3101 movi r1, 1 + 4ad6: 07e6 br 0x4aa2 // 4aa2 + if(state == Control_ON){ + 4ad8: 0814 bt 0x4b00 // 4b00 + if(g_switch.feedback_light_selection == 0x01){ + 4ada: 8462 ld.b r3, (r4, 0x2) + 4adc: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4ade: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4ae0: 080a bt 0x4af4 // 4af4 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4ae2: 300d movi r0, 13 + 4ae4: e00004c8 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4ae8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4aea: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4aec: e00004c4 bsr 0x5474 // 5474 + g_switch.light_state[T_CH3] = state; + 4af0: a4a7 st.b r5, (r4, 0x7) + break; + 4af2: 07a6 br 0x4a3e // 4a3e + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4af4: 3008 movi r0, 8 + 4af6: e00004bf bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4afa: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4afc: 300d movi r0, 13 + 4afe: 07f7 br 0x4aec // 4aec + }else if(state == Control_OFF){ + 4b00: 3942 cmpnei r1, 2 + 4b02: 0bf7 bt 0x4af0 // 4af0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b04: 0277 lrw r3, 0x200000b8 // 4da4 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4b06: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b08: 9360 ld.w r3, (r3, 0x0) + 4b0a: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4b0c: 8462 ld.b r3, (r4, 0x2) + 4b0e: 3b41 cmpnei r3, 1 + 4b10: 0809 bt 0x4b22 // 4b22 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4b12: 300d movi r0, 13 + 4b14: e00004b0 bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4b18: 846a ld.b r3, (r4, 0xa) + 4b1a: 3b41 cmpnei r3, 1 + 4b1c: 0bea bt 0x4af0 // 4af0 + 4b1e: 3101 movi r1, 1 + 4b20: 07e5 br 0x4aea // 4aea + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4b22: 3008 movi r0, 8 + 4b24: e00004a8 bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b28: 846a ld.b r3, (r4, 0xa) + 4b2a: 3b41 cmpnei r3, 1 + 4b2c: 0be2 bt 0x4af0 // 4af0 + 4b2e: 3101 movi r1, 1 + 4b30: 07e6 br 0x4afc // 4afc + if(state == Control_ON){ + 4b32: 0814 bt 0x4b5a // 4b5a + if(g_switch.feedback_light_selection == 0x01){ + 4b34: 8462 ld.b r3, (r4, 0x2) + 4b36: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b38: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4b3a: 080a bt 0x4b4e // 4b4e + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b3c: 300e movi r0, 14 + 4b3e: e000049b bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4b42: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4b44: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b46: e0000497 bsr 0x5474 // 5474 + g_switch.light_state[T_CH4] = state; + 4b4a: a4a8 st.b r5, (r4, 0x8) + break; + 4b4c: 0779 br 0x4a3e // 4a3e + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4b4e: 3009 movi r0, 9 + 4b50: e0000492 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4b54: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b56: 300e movi r0, 14 + 4b58: 07f7 br 0x4b46 // 4b46 + }else if(state == Control_OFF){ + 4b5a: 3942 cmpnei r1, 2 + 4b5c: 0bf7 bt 0x4b4a // 4b4a + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b5e: 036d lrw r3, 0x200000b8 // 4da4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4b60: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b62: 9360 ld.w r3, (r3, 0x0) + 4b64: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4b66: 8462 ld.b r3, (r4, 0x2) + 4b68: 3b41 cmpnei r3, 1 + 4b6a: 0809 bt 0x4b7c // 4b7c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4b6c: 300e movi r0, 14 + 4b6e: e0000483 bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4b72: 846a ld.b r3, (r4, 0xa) + 4b74: 3b41 cmpnei r3, 1 + 4b76: 0bea bt 0x4b4a // 4b4a + 4b78: 3101 movi r1, 1 + 4b7a: 07e5 br 0x4b44 // 4b44 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4b7c: 3009 movi r0, 9 + 4b7e: e000047b bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b82: 846a ld.b r3, (r4, 0xa) + 4b84: 3b41 cmpnei r3, 1 + 4b86: 0be2 bt 0x4b4a // 4b4a + 4b88: 3101 movi r1, 1 + 4b8a: 07e6 br 0x4b56 // 4b56 + if(state == Control_ON){ + 4b8c: 0814 bt 0x4bb4 // 4bb4 + if(g_switch.feedback_light_selection == 0x01){ + 4b8e: 8462 ld.b r3, (r4, 0x2) + 4b90: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4b92: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4b94: 080a bt 0x4ba8 // 4ba8 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4b96: 300f movi r0, 15 + 4b98: e000046e bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4b9c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4b9e: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4ba0: e000046a bsr 0x5474 // 5474 + g_switch.light_state[T_CH5] = state; + 4ba4: a4a9 st.b r5, (r4, 0x9) + break; + 4ba6: 074c br 0x4a3e // 4a3e + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4ba8: 300a movi r0, 10 + 4baa: e0000465 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4bae: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4bb0: 300f movi r0, 15 + 4bb2: 07f7 br 0x4ba0 // 4ba0 + }else if(state == Control_OFF){ + 4bb4: 3942 cmpnei r1, 2 + 4bb6: 0bf7 bt 0x4ba4 // 4ba4 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4bb8: 137b lrw r3, 0x200000b8 // 4da4 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4bba: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4bbc: 9360 ld.w r3, (r3, 0x0) + 4bbe: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4bc0: 8462 ld.b r3, (r4, 0x2) + 4bc2: 3b41 cmpnei r3, 1 + 4bc4: 0809 bt 0x4bd6 // 4bd6 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4bc6: 300f movi r0, 15 + 4bc8: e0000456 bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4bcc: 846a ld.b r3, (r4, 0xa) + 4bce: 3b41 cmpnei r3, 1 + 4bd0: 0bea bt 0x4ba4 // 4ba4 + 4bd2: 3101 movi r1, 1 + 4bd4: 07e5 br 0x4b9e // 4b9e + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4bd6: 300a movi r0, 10 + 4bd8: e000044e bsr 0x5474 // 5474 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4bdc: 846a ld.b r3, (r4, 0xa) + 4bde: 3b41 cmpnei r3, 1 + 4be0: 0be2 bt 0x4ba4 // 4ba4 + 4be2: 3101 movi r1, 1 + 4be4: 07e6 br 0x4bb0 // 4bb0 + if(state == Control_ON){ + 4be6: 08b1 bt 0x4d48 // 4d48 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4be8: 136f lrw r3, 0x200000b8 // 4da4 + 4bea: 9360 ld.w r3, (r3, 0x0) + 4bec: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4bee: 8462 ld.b r3, (r4, 0x2) + 4bf0: 3b41 cmpnei r3, 1 + 4bf2: 8465 ld.b r3, (r4, 0x5) + 4bf4: 0857 bt 0x4ca2 // 4ca2 + if(g_switch.light_state[T_CH1] != Control_ON) { + 4bf6: 3b41 cmpnei r3, 1 + 4bf8: 0c33 bf 0x4c5e // 4c5e + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4bfa: 3101 movi r1, 1 + 4bfc: 3006 movi r0, 6 + 4bfe: e000043b bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4c02: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4c04: 300b movi r0, 11 + 4c06: e0000437 bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH2] != Control_ON) { + 4c0a: 8466 ld.b r3, (r4, 0x6) + 4c0c: 3b41 cmpnei r3, 1 + 4c0e: 0c2e bf 0x4c6a // 4c6a + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4c10: 3101 movi r1, 1 + 4c12: 3007 movi r0, 7 + 4c14: e0000430 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4c18: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4c1a: 300c movi r0, 12 + 4c1c: e000042c bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH3] != Control_ON) { + 4c20: 8467 ld.b r3, (r4, 0x7) + 4c22: 3b41 cmpnei r3, 1 + 4c24: 0c29 bf 0x4c76 // 4c76 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4c26: 3101 movi r1, 1 + 4c28: 3008 movi r0, 8 + 4c2a: e0000425 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4c2e: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4c30: 300d movi r0, 13 + 4c32: e0000421 bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH4] != Control_ON) { + 4c36: 8468 ld.b r3, (r4, 0x8) + 4c38: 3b41 cmpnei r3, 1 + 4c3a: 0c24 bf 0x4c82 // 4c82 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4c3c: 3101 movi r1, 1 + 4c3e: 3009 movi r0, 9 + 4c40: e000041a bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c44: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4c46: 300e movi r0, 14 + 4c48: e0000416 bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH5] != Control_ON) { + 4c4c: 8469 ld.b r3, (r4, 0x9) + 4c4e: 3b41 cmpnei r3, 1 + 4c50: 0c1f bf 0x4c8e // 4c8e + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4c52: 3101 movi r1, 1 + 4c54: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c56: e000040f bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4c5a: 3102 movi r1, 2 + 4c5c: 041e br 0x4c98 // 4c98 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4c5e: 3102 movi r1, 2 + 4c60: 3006 movi r0, 6 + 4c62: e0000409 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4c66: 3101 movi r1, 1 + 4c68: 07ce br 0x4c04 // 4c04 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4c6a: 3102 movi r1, 2 + 4c6c: 3007 movi r0, 7 + 4c6e: e0000403 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4c72: 3101 movi r1, 1 + 4c74: 07d3 br 0x4c1a // 4c1a + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4c76: 3102 movi r1, 2 + 4c78: 3008 movi r0, 8 + 4c7a: e00003fd bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4c7e: 3101 movi r1, 1 + 4c80: 07d8 br 0x4c30 // 4c30 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4c82: 3102 movi r1, 2 + 4c84: 3009 movi r0, 9 + 4c86: e00003f7 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4c8a: 3101 movi r1, 1 + 4c8c: 07dd br 0x4c46 // 4c46 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4c8e: 3102 movi r1, 2 + 4c90: 300a movi r0, 10 + 4c92: e00003f1 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c96: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4c98: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4c9a: e00003ed bsr 0x5474 // 5474 + g_switch.light_state[T_Backlight] = state; + 4c9e: a4aa st.b r5, (r4, 0xa) +} + 4ca0: 06cf br 0x4a3e // 4a3e + if(g_switch.light_state[T_CH1] != Control_ON) { + 4ca2: 3b41 cmpnei r3, 1 + 4ca4: 0c33 bf 0x4d0a // 4d0a + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4ca6: 3101 movi r1, 1 + 4ca8: 300b movi r0, 11 + 4caa: e00003e5 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4cae: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4cb0: 3006 movi r0, 6 + 4cb2: e00003e1 bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH2] != Control_ON) { + 4cb6: 8466 ld.b r3, (r4, 0x6) + 4cb8: 3b41 cmpnei r3, 1 + 4cba: 0c2e bf 0x4d16 // 4d16 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4cbc: 3101 movi r1, 1 + 4cbe: 300c movi r0, 12 + 4cc0: e00003da bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4cc4: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4cc6: 3007 movi r0, 7 + 4cc8: e00003d6 bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH3] != Control_ON) { + 4ccc: 8467 ld.b r3, (r4, 0x7) + 4cce: 3b41 cmpnei r3, 1 + 4cd0: 0c29 bf 0x4d22 // 4d22 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4cd2: 3101 movi r1, 1 + 4cd4: 300d movi r0, 13 + 4cd6: e00003cf bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4cda: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4cdc: 3008 movi r0, 8 + 4cde: e00003cb bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH4] != Control_ON) { + 4ce2: 8468 ld.b r3, (r4, 0x8) + 4ce4: 3b41 cmpnei r3, 1 + 4ce6: 0c24 bf 0x4d2e // 4d2e + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4ce8: 3101 movi r1, 1 + 4cea: 300e movi r0, 14 + 4cec: e00003c4 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4cf0: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4cf2: 3009 movi r0, 9 + 4cf4: e00003c0 bsr 0x5474 // 5474 + if(g_switch.light_state[T_CH5] != Control_ON) { + 4cf8: 8469 ld.b r3, (r4, 0x9) + 4cfa: 3b41 cmpnei r3, 1 + 4cfc: 0c1f bf 0x4d3a // 4d3a + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4cfe: 3101 movi r1, 1 + 4d00: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4d02: e00003b9 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d06: 3102 movi r1, 2 + 4d08: 041e br 0x4d44 // 4d44 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4d0a: 3102 movi r1, 2 + 4d0c: 300b movi r0, 11 + 4d0e: e00003b3 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4d12: 3101 movi r1, 1 + 4d14: 07ce br 0x4cb0 // 4cb0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4d16: 3102 movi r1, 2 + 4d18: 300c movi r0, 12 + 4d1a: e00003ad bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4d1e: 3101 movi r1, 1 + 4d20: 07d3 br 0x4cc6 // 4cc6 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4d22: 3102 movi r1, 2 + 4d24: 300d movi r0, 13 + 4d26: e00003a7 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4d2a: 3101 movi r1, 1 + 4d2c: 07d8 br 0x4cdc // 4cdc + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4d2e: 3102 movi r1, 2 + 4d30: 300e movi r0, 14 + 4d32: e00003a1 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4d36: 3101 movi r1, 1 + 4d38: 07dd br 0x4cf2 // 4cf2 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4d3a: 3102 movi r1, 2 + 4d3c: 300f movi r0, 15 + 4d3e: e000039b bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4d42: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d44: 300a movi r0, 10 + 4d46: 07aa br 0x4c9a // 4c9a + }else if(state == Control_OFF){ + 4d48: 3942 cmpnei r1, 2 + 4d4a: 0baa bt 0x4c9e // 4c9e + if(g_switch.feedback_light_selection == 0x01){ + 4d4c: 8462 ld.b r3, (r4, 0x2) + 4d4e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4d50: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 4d52: 082b bt 0x4da8 // 4da8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4d54: 3006 movi r0, 6 + 4d56: e000038f bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4d5a: 3102 movi r1, 2 + 4d5c: 3007 movi r0, 7 + 4d5e: e000038b bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4d62: 3102 movi r1, 2 + 4d64: 3008 movi r0, 8 + 4d66: e0000387 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4d6a: 3102 movi r1, 2 + 4d6c: 3009 movi r0, 9 + 4d6e: e0000383 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d72: 3102 movi r1, 2 + 4d74: 300a movi r0, 10 + 4d76: e000037f bsr 0x5474 // 5474 + if(g_switch.autoOff_light_flag == 0x01){ + 4d7a: 8461 ld.b r3, (r4, 0x1) + 4d7c: 3b41 cmpnei r3, 1 + 4d7e: 0b90 bt 0x4c9e // 4c9e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4d80: 3102 movi r1, 2 + 4d82: 300b movi r0, 11 + 4d84: e0000378 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4d88: 3102 movi r1, 2 + 4d8a: 300c movi r0, 12 + 4d8c: e0000374 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4d90: 3102 movi r1, 2 + 4d92: 300d movi r0, 13 + 4d94: e0000370 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4d98: 3102 movi r1, 2 + 4d9a: 300e movi r0, 14 + 4d9c: 075d br 0x4c56 // 4c56 + 4d9e: 0000 bkpt + 4da0: 2000048c .long 0x2000048c + 4da4: 200000b8 .long 0x200000b8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4da8: 300b movi r0, 11 + 4daa: e0000365 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4dae: 3102 movi r1, 2 + 4db0: 300c movi r0, 12 + 4db2: e0000361 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4db6: 3102 movi r1, 2 + 4db8: 300d movi r0, 13 + 4dba: e000035d bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4dbe: 3102 movi r1, 2 + 4dc0: 300e movi r0, 14 + 4dc2: e0000359 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4dc6: 3102 movi r1, 2 + 4dc8: 300f movi r0, 15 + 4dca: e0000355 bsr 0x5474 // 5474 + if(g_switch.autoOff_light_flag == 0x01){ + 4dce: 8461 ld.b r3, (r4, 0x1) + 4dd0: 3b41 cmpnei r3, 1 + 4dd2: 0b66 bt 0x4c9e // 4c9e + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4dd4: 3102 movi r1, 2 + 4dd6: 3006 movi r0, 6 + 4dd8: e000034e bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4ddc: 3102 movi r1, 2 + 4dde: 3007 movi r0, 7 + 4de0: e000034a bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4de4: 3102 movi r1, 2 + 4de6: 3008 movi r0, 8 + 4de8: e0000346 bsr 0x5474 // 5474 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4dec: 3102 movi r1, 2 + 4dee: 3009 movi r0, 9 + 4df0: 0789 br 0x4d02 // 4d02 + +Disassembly of section .text.Contol_Switch_Light_2: + +00004df4 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 4df4: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4df6: 3805 cmphsi r0, 6 +{ + 4df8: 6d47 mov r5, r1 + switch(ch) + 4dfa: 0818 bt 0x4e2a // 4e2a + 4dfc: 009b lrw r4, 0x2000048c // 518c + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4dfe: 3941 cmpnei r1, 1 + switch(ch) + 4e00: e3ffdf96 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4e04: 00330006 .long 0x00330006 + 4e08: 008d0060 .long 0x008d0060 + 4e0c: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4e10: 0814 bt 0x4e38 // 4e38 + if(g_switch.feedback_light_selection == 0x01){ + 4e12: 8462 ld.b r3, (r4, 0x2) + 4e14: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e16: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4e18: 080a bt 0x4e2c // 4e2c + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e1a: 300b movi r0, 11 + 4e1c: e0000364 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 4e20: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4e22: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e24: e0000360 bsr 0x54e4 // 54e4 + g_switch.light_state[T_CH1] = state; + 4e28: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4e2a: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4e2c: 3006 movi r0, 6 + 4e2e: e000035b bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4e32: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e34: 300b movi r0, 11 + 4e36: 07f7 br 0x4e24 // 4e24 + }else if(state == Control_OFF){ + 4e38: 3942 cmpnei r1, 2 + 4e3a: 0bf7 bt 0x4e28 // 4e28 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4e3c: 016a lrw r3, 0x200000b8 // 5190 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4e3e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4e40: 9360 ld.w r3, (r3, 0x0) + 4e42: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4e44: 8462 ld.b r3, (r4, 0x2) + 4e46: 3b41 cmpnei r3, 1 + 4e48: 0809 bt 0x4e5a // 4e5a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4e4a: 300b movi r0, 11 + 4e4c: e000034c bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4e50: 846a ld.b r3, (r4, 0xa) + 4e52: 3b41 cmpnei r3, 1 + 4e54: 0bea bt 0x4e28 // 4e28 + 4e56: 3101 movi r1, 1 + 4e58: 07e5 br 0x4e22 // 4e22 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 4e5a: 3006 movi r0, 6 + 4e5c: e0000344 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e60: 846a ld.b r3, (r4, 0xa) + 4e62: 3b41 cmpnei r3, 1 + 4e64: 0be2 bt 0x4e28 // 4e28 + 4e66: 3101 movi r1, 1 + 4e68: 07e6 br 0x4e34 // 4e34 + if(state == Control_ON){ + 4e6a: 0814 bt 0x4e92 // 4e92 + if(g_switch.feedback_light_selection == 0x01){ + 4e6c: 8462 ld.b r3, (r4, 0x2) + 4e6e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4e70: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4e72: 080a bt 0x4e86 // 4e86 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4e74: 300c movi r0, 12 + 4e76: e0000337 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 4e7a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4e7c: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4e7e: e0000333 bsr 0x54e4 // 54e4 + g_switch.light_state[T_CH2] = state; + 4e82: a4a6 st.b r5, (r4, 0x6) + break; + 4e84: 07d3 br 0x4e2a // 4e2a + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4e86: 3007 movi r0, 7 + 4e88: e000032e bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4e8c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4e8e: 300c movi r0, 12 + 4e90: 07f7 br 0x4e7e // 4e7e + }else if(state == Control_OFF){ + 4e92: 3942 cmpnei r1, 2 + 4e94: 0bf7 bt 0x4e82 // 4e82 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4e96: 0260 lrw r3, 0x200000b8 // 5190 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4e98: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4e9a: 9360 ld.w r3, (r3, 0x0) + 4e9c: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4e9e: 8462 ld.b r3, (r4, 0x2) + 4ea0: 3b41 cmpnei r3, 1 + 4ea2: 0809 bt 0x4eb4 // 4eb4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4ea4: 300c movi r0, 12 + 4ea6: e000031f bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4eaa: 846a ld.b r3, (r4, 0xa) + 4eac: 3b41 cmpnei r3, 1 + 4eae: 0bea bt 0x4e82 // 4e82 + 4eb0: 3101 movi r1, 1 + 4eb2: 07e5 br 0x4e7c // 4e7c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 4eb4: 3007 movi r0, 7 + 4eb6: e0000317 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4eba: 846a ld.b r3, (r4, 0xa) + 4ebc: 3b41 cmpnei r3, 1 + 4ebe: 0be2 bt 0x4e82 // 4e82 + 4ec0: 3101 movi r1, 1 + 4ec2: 07e6 br 0x4e8e // 4e8e + if(state == Control_ON){ + 4ec4: 0814 bt 0x4eec // 4eec + if(g_switch.feedback_light_selection == 0x01){ + 4ec6: 8462 ld.b r3, (r4, 0x2) + 4ec8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4eca: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4ecc: 080a bt 0x4ee0 // 4ee0 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4ece: 300d movi r0, 13 + 4ed0: e000030a bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 4ed4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4ed6: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4ed8: e0000306 bsr 0x54e4 // 54e4 + g_switch.light_state[T_CH3] = state; + 4edc: a4a7 st.b r5, (r4, 0x7) + break; + 4ede: 07a6 br 0x4e2a // 4e2a + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4ee0: 3008 movi r0, 8 + 4ee2: e0000301 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4ee6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4ee8: 300d movi r0, 13 + 4eea: 07f7 br 0x4ed8 // 4ed8 + }else if(state == Control_OFF){ + 4eec: 3942 cmpnei r1, 2 + 4eee: 0bf7 bt 0x4edc // 4edc + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ef0: 0277 lrw r3, 0x200000b8 // 5190 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4ef2: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ef4: 9360 ld.w r3, (r3, 0x0) + 4ef6: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4ef8: 8462 ld.b r3, (r4, 0x2) + 4efa: 3b41 cmpnei r3, 1 + 4efc: 0809 bt 0x4f0e // 4f0e + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4efe: 300d movi r0, 13 + 4f00: e00002f2 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4f04: 846a ld.b r3, (r4, 0xa) + 4f06: 3b41 cmpnei r3, 1 + 4f08: 0bea bt 0x4edc // 4edc + 4f0a: 3101 movi r1, 1 + 4f0c: 07e5 br 0x4ed6 // 4ed6 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 4f0e: 3008 movi r0, 8 + 4f10: e00002ea bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f14: 846a ld.b r3, (r4, 0xa) + 4f16: 3b41 cmpnei r3, 1 + 4f18: 0be2 bt 0x4edc // 4edc + 4f1a: 3101 movi r1, 1 + 4f1c: 07e6 br 0x4ee8 // 4ee8 + if(state == Control_ON){ + 4f1e: 0814 bt 0x4f46 // 4f46 + if(g_switch.feedback_light_selection == 0x01){ + 4f20: 8462 ld.b r3, (r4, 0x2) + 4f22: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f24: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f26: 080a bt 0x4f3a // 4f3a + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f28: 300e movi r0, 14 + 4f2a: e00002dd bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 4f2e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4f30: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f32: e00002d9 bsr 0x54e4 // 54e4 + g_switch.light_state[T_CH4] = state; + 4f36: a4a8 st.b r5, (r4, 0x8) + break; + 4f38: 0779 br 0x4e2a // 4e2a + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4f3a: 3009 movi r0, 9 + 4f3c: e00002d4 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4f40: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f42: 300e movi r0, 14 + 4f44: 07f7 br 0x4f32 // 4f32 + }else if(state == Control_OFF){ + 4f46: 3942 cmpnei r1, 2 + 4f48: 0bf7 bt 0x4f36 // 4f36 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f4a: 036d lrw r3, 0x200000b8 // 5190 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4f4c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f4e: 9360 ld.w r3, (r3, 0x0) + 4f50: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4f52: 8462 ld.b r3, (r4, 0x2) + 4f54: 3b41 cmpnei r3, 1 + 4f56: 0809 bt 0x4f68 // 4f68 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4f58: 300e movi r0, 14 + 4f5a: e00002c5 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4f5e: 846a ld.b r3, (r4, 0xa) + 4f60: 3b41 cmpnei r3, 1 + 4f62: 0bea bt 0x4f36 // 4f36 + 4f64: 3101 movi r1, 1 + 4f66: 07e5 br 0x4f30 // 4f30 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 4f68: 3009 movi r0, 9 + 4f6a: e00002bd bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f6e: 846a ld.b r3, (r4, 0xa) + 4f70: 3b41 cmpnei r3, 1 + 4f72: 0be2 bt 0x4f36 // 4f36 + 4f74: 3101 movi r1, 1 + 4f76: 07e6 br 0x4f42 // 4f42 + if(state == Control_ON){ + 4f78: 0814 bt 0x4fa0 // 4fa0 + if(g_switch.feedback_light_selection == 0x01){ + 4f7a: 8462 ld.b r3, (r4, 0x2) + 4f7c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4f7e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f80: 080a bt 0x4f94 // 4f94 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4f82: 300f movi r0, 15 + 4f84: e00002b0 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 4f88: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 4f8a: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4f8c: e00002ac bsr 0x54e4 // 54e4 + g_switch.light_state[T_CH5] = state; + 4f90: a4a9 st.b r5, (r4, 0x9) + break; + 4f92: 074c br 0x4e2a // 4e2a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 4f94: 300a movi r0, 10 + 4f96: e00002a7 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 4f9a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4f9c: 300f movi r0, 15 + 4f9e: 07f7 br 0x4f8c // 4f8c + }else if(state == Control_OFF){ + 4fa0: 3942 cmpnei r1, 2 + 4fa2: 0bf7 bt 0x4f90 // 4f90 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fa4: 137b lrw r3, 0x200000b8 // 5190 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 4fa6: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fa8: 9360 ld.w r3, (r3, 0x0) + 4faa: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4fac: 8462 ld.b r3, (r4, 0x2) + 4fae: 3b41 cmpnei r3, 1 + 4fb0: 0809 bt 0x4fc2 // 4fc2 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 4fb2: 300f movi r0, 15 + 4fb4: e0000298 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 4fb8: 846a ld.b r3, (r4, 0xa) + 4fba: 3b41 cmpnei r3, 1 + 4fbc: 0bea bt 0x4f90 // 4f90 + 4fbe: 3101 movi r1, 1 + 4fc0: 07e5 br 0x4f8a // 4f8a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 4fc2: 300a movi r0, 10 + 4fc4: e0000290 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4fc8: 846a ld.b r3, (r4, 0xa) + 4fca: 3b41 cmpnei r3, 1 + 4fcc: 0be2 bt 0x4f90 // 4f90 + 4fce: 3101 movi r1, 1 + 4fd0: 07e6 br 0x4f9c // 4f9c + if(state == Control_ON){ + 4fd2: 08b1 bt 0x5134 // 5134 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fd4: 136f lrw r3, 0x200000b8 // 5190 + 4fd6: 9360 ld.w r3, (r3, 0x0) + 4fd8: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4fda: 8462 ld.b r3, (r4, 0x2) + 4fdc: 3b41 cmpnei r3, 1 + 4fde: 8465 ld.b r3, (r4, 0x5) + 4fe0: 0857 bt 0x508e // 508e + if(g_switch.light_state[T_CH1] != Control_ON) { + 4fe2: 3b41 cmpnei r3, 1 + 4fe4: 0c33 bf 0x504a // 504a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4fe6: 3101 movi r1, 1 + 4fe8: 3006 movi r0, 6 + 4fea: e000027d bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4fee: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4ff0: 300b movi r0, 11 + 4ff2: e0000279 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH2] != Control_ON) { + 4ff6: 8466 ld.b r3, (r4, 0x6) + 4ff8: 3b41 cmpnei r3, 1 + 4ffa: 0c2e bf 0x5056 // 5056 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4ffc: 3101 movi r1, 1 + 4ffe: 3007 movi r0, 7 + 5000: e0000272 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5004: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5006: 300c movi r0, 12 + 5008: e000026e bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH3] != Control_ON) { + 500c: 8467 ld.b r3, (r4, 0x7) + 500e: 3b41 cmpnei r3, 1 + 5010: 0c29 bf 0x5062 // 5062 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5012: 3101 movi r1, 1 + 5014: 3008 movi r0, 8 + 5016: e0000267 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 501a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 501c: 300d movi r0, 13 + 501e: e0000263 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH4] != Control_ON) { + 5022: 8468 ld.b r3, (r4, 0x8) + 5024: 3b41 cmpnei r3, 1 + 5026: 0c24 bf 0x506e // 506e + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5028: 3101 movi r1, 1 + 502a: 3009 movi r0, 9 + 502c: e000025c bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5030: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5032: 300e movi r0, 14 + 5034: e0000258 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5038: 8469 ld.b r3, (r4, 0x9) + 503a: 3b41 cmpnei r3, 1 + 503c: 0c1f bf 0x507a // 507a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 503e: 3101 movi r1, 1 + 5040: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5042: e0000251 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5046: 3102 movi r1, 2 + 5048: 041e br 0x5084 // 5084 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 504a: 3102 movi r1, 2 + 504c: 3006 movi r0, 6 + 504e: e000024b bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5052: 3101 movi r1, 1 + 5054: 07ce br 0x4ff0 // 4ff0 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5056: 3102 movi r1, 2 + 5058: 3007 movi r0, 7 + 505a: e0000245 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 505e: 3101 movi r1, 1 + 5060: 07d3 br 0x5006 // 5006 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5062: 3102 movi r1, 2 + 5064: 3008 movi r0, 8 + 5066: e000023f bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 506a: 3101 movi r1, 1 + 506c: 07d8 br 0x501c // 501c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 506e: 3102 movi r1, 2 + 5070: 3009 movi r0, 9 + 5072: e0000239 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5076: 3101 movi r1, 1 + 5078: 07dd br 0x5032 // 5032 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 507a: 3102 movi r1, 2 + 507c: 300a movi r0, 10 + 507e: e0000233 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5082: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5084: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5086: e000022f bsr 0x54e4 // 54e4 + g_switch.light_state[T_Backlight] = state; + 508a: a4aa st.b r5, (r4, 0xa) +} + 508c: 06cf br 0x4e2a // 4e2a + if(g_switch.light_state[T_CH1] != Control_ON) { + 508e: 3b41 cmpnei r3, 1 + 5090: 0c33 bf 0x50f6 // 50f6 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5092: 3101 movi r1, 1 + 5094: 300b movi r0, 11 + 5096: e0000227 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 509a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 509c: 3006 movi r0, 6 + 509e: e0000223 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH2] != Control_ON) { + 50a2: 8466 ld.b r3, (r4, 0x6) + 50a4: 3b41 cmpnei r3, 1 + 50a6: 0c2e bf 0x5102 // 5102 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 50a8: 3101 movi r1, 1 + 50aa: 300c movi r0, 12 + 50ac: e000021c bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 50b0: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 50b2: 3007 movi r0, 7 + 50b4: e0000218 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH3] != Control_ON) { + 50b8: 8467 ld.b r3, (r4, 0x7) + 50ba: 3b41 cmpnei r3, 1 + 50bc: 0c29 bf 0x510e // 510e + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 50be: 3101 movi r1, 1 + 50c0: 300d movi r0, 13 + 50c2: e0000211 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 50c6: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 50c8: 3008 movi r0, 8 + 50ca: e000020d bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH4] != Control_ON) { + 50ce: 8468 ld.b r3, (r4, 0x8) + 50d0: 3b41 cmpnei r3, 1 + 50d2: 0c24 bf 0x511a // 511a + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 50d4: 3101 movi r1, 1 + 50d6: 300e movi r0, 14 + 50d8: e0000206 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 50dc: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 50de: 3009 movi r0, 9 + 50e0: e0000202 bsr 0x54e4 // 54e4 + if(g_switch.light_state[T_CH5] != Control_ON) { + 50e4: 8469 ld.b r3, (r4, 0x9) + 50e6: 3b41 cmpnei r3, 1 + 50e8: 0c1f bf 0x5126 // 5126 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 50ea: 3101 movi r1, 1 + 50ec: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 50ee: e00001fb bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 50f2: 3102 movi r1, 2 + 50f4: 041e br 0x5130 // 5130 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 50f6: 3102 movi r1, 2 + 50f8: 300b movi r0, 11 + 50fa: e00001f5 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 50fe: 3101 movi r1, 1 + 5100: 07ce br 0x509c // 509c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5102: 3102 movi r1, 2 + 5104: 300c movi r0, 12 + 5106: e00001ef bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 510a: 3101 movi r1, 1 + 510c: 07d3 br 0x50b2 // 50b2 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 510e: 3102 movi r1, 2 + 5110: 300d movi r0, 13 + 5112: e00001e9 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5116: 3101 movi r1, 1 + 5118: 07d8 br 0x50c8 // 50c8 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 511a: 3102 movi r1, 2 + 511c: 300e movi r0, 14 + 511e: e00001e3 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5122: 3101 movi r1, 1 + 5124: 07dd br 0x50de // 50de + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5126: 3102 movi r1, 2 + 5128: 300f movi r0, 15 + 512a: e00001dd bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 512e: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5130: 300a movi r0, 10 + 5132: 07aa br 0x5086 // 5086 + }else if(state == Control_OFF){ + 5134: 3942 cmpnei r1, 2 + 5136: 0baa bt 0x508a // 508a + if(g_switch.feedback_light_selection == 0x01){ + 5138: 8462 ld.b r3, (r4, 0x2) + 513a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 513c: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 513e: 082b bt 0x5194 // 5194 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5140: 3006 movi r0, 6 + 5142: e00001d1 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5146: 3102 movi r1, 2 + 5148: 3007 movi r0, 7 + 514a: e00001cd bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 514e: 3102 movi r1, 2 + 5150: 3008 movi r0, 8 + 5152: e00001c9 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5156: 3102 movi r1, 2 + 5158: 3009 movi r0, 9 + 515a: e00001c5 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 515e: 3102 movi r1, 2 + 5160: 300a movi r0, 10 + 5162: e00001c1 bsr 0x54e4 // 54e4 + if(g_switch.autoOff_light_flag == 0x01){ + 5166: 8461 ld.b r3, (r4, 0x1) + 5168: 3b41 cmpnei r3, 1 + 516a: 0b90 bt 0x508a // 508a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 516c: 3102 movi r1, 2 + 516e: 300b movi r0, 11 + 5170: e00001ba bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5174: 3102 movi r1, 2 + 5176: 300c movi r0, 12 + 5178: e00001b6 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 517c: 3102 movi r1, 2 + 517e: 300d movi r0, 13 + 5180: e00001b2 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5184: 3102 movi r1, 2 + 5186: 300e movi r0, 14 + 5188: 075d br 0x5042 // 5042 + 518a: 0000 bkpt + 518c: 2000048c .long 0x2000048c + 5190: 200000b8 .long 0x200000b8 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5194: 300b movi r0, 11 + 5196: e00001a7 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 519a: 3102 movi r1, 2 + 519c: 300c movi r0, 12 + 519e: e00001a3 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 51a2: 3102 movi r1, 2 + 51a4: 300d movi r0, 13 + 51a6: e000019f bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 51aa: 3102 movi r1, 2 + 51ac: 300e movi r0, 14 + 51ae: e000019b bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 51b2: 3102 movi r1, 2 + 51b4: 300f movi r0, 15 + 51b6: e0000197 bsr 0x54e4 // 54e4 + if(g_switch.autoOff_light_flag == 0x01){ + 51ba: 8461 ld.b r3, (r4, 0x1) + 51bc: 3b41 cmpnei r3, 1 + 51be: 0b66 bt 0x508a // 508a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 51c0: 3102 movi r1, 2 + 51c2: 3006 movi r0, 6 + 51c4: e0000190 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 51c8: 3102 movi r1, 2 + 51ca: 3007 movi r0, 7 + 51cc: e000018c bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 51d0: 3102 movi r1, 2 + 51d2: 3008 movi r0, 8 + 51d4: e0000188 bsr 0x54e4 // 54e4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 51d8: 3102 movi r1, 2 + 51da: 3009 movi r0, 9 + 51dc: 0789 br 0x50ee // 50ee + +Disassembly of section .text.Contol_Switch_ClickAction: + +000051e0 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 51e0: 14d0 push r15 + switch(ch) + 51e2: 3804 cmphsi r0, 5 + 51e4: 0809 bt 0x51f6 // 51f6 + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 51e6: 1068 lrw r3, 0x2000048c // 5204 + 51e8: 836a ld.b r3, (r3, 0xa) + 51ea: 3b41 cmpnei r3, 1 + 51ec: 0806 bt 0x51f8 // 51f8 + if(state == Control_ON ){ + 51ee: 3941 cmpnei r1, 1 + 51f0: 0804 bt 0x51f8 // 51f8 + Contol_Switch_Light_2(ch,Control_ON); + 51f2: e3fffe01 bsr 0x4df4 // 4df4 + break; + default: + + break; + } +} + 51f6: 1490 pop r15 + if(state == Control_OFF ){ + 51f8: 3942 cmpnei r1, 2 + 51fa: 0bfe bt 0x51f6 // 51f6 + Contol_Switch_Light(ch,Control_OFF); + 51fc: e3fffc06 bsr 0x4a08 // 4a08 +} + 5200: 07fb br 0x51f6 // 51f6 + 5202: 0000 bkpt + 5204: 2000048c .long 0x2000048c + +Disassembly of section .text.Get_TM1812_State_Change: + +00005208 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 5208: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 520a: 1071 lrw r3, 0x20000130 // 524c + 520c: 8318 ld.b r0, (r3, 0x18) + 520e: 3841 cmpnei r0, 1 + 5210: 0804 bt 0x5218 // 5218 + tm1812_param.change_flag = 0x00; + 5212: 3200 movi r2, 0 + 5214: a358 st.b r2, (r3, 0x18) + } + } + + if(rev != 0x00) return 0x01; + return 0x00; +} + 5216: 1482 pop r4-r5 + 5218: 104e lrw r2, 0x200000d0 // 5250 + if(tm1812_param.change_flag == 0x01) { + 521a: 3018 movi r0, 24 + 521c: 3300 movi r3, 0 + if(tm1812_param.gradient_flag[i] == 0x01) { + 521e: 3130 movi r1, 48 + if(tm1812_param.curr_data[i] != tm1812_param.data[i]){ + 5220: 82b8 ld.b r5, (r2, 0x18) + 5222: 8280 ld.b r4, (r2, 0x0) + 5224: 6516 cmpne r5, r4 + 5226: 0c03 bf 0x522c // 522c + rev++; + 5228: 2300 addi r3, 1 + 522a: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 522c: 5a84 addu r4, r2, r1 + 522e: 8480 ld.b r4, (r4, 0x0) + 5230: 3c41 cmpnei r4, 1 + 5232: 0803 bt 0x5238 // 5238 + rev++; + 5234: 2300 addi r3, 1 + 5236: 74cc zextb r3, r3 + 5238: 2800 subi r0, 1 + 523a: 7400 zextb r0, r0 + for(i=0;i + if(rev != 0x00) return 0x01; + 5242: 3b40 cmpnei r3, 0 + 5244: 6001 addc r0, r0 + return 0x01; //立即控制 + 5246: 7400 zextb r0, r0 + 5248: 07e7 br 0x5216 // 5216 + 524a: 0000 bkpt + 524c: 20000130 .long 0x20000130 + 5250: 200000d0 .long 0x200000d0 + +Disassembly of section .text.TimeCall_SIO_Send: + +00005254 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 5254: 14d4 push r4-r7, r15 + 5256: 1421 subi r14, r14, 4 + 5258: 1264 lrw r3, 0x200000d0 // 5368 + 525a: 3188 movi r1, 136 + 525c: 3260 movi r2, 96 + 525e: 604c addu r1, r3 + 5260: 608c addu r2, r3 + 5262: 3718 movi r7, 24 + 5264: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 5272: 3448 movi r4, 72 + 5274: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 5276: 84a0 ld.b r5, (r4, 0x0) + 5278: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 527a: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 527c: 083a bt 0x52f0 // 52f0 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 527e: 35ff movi r5, 255 + 5280: 6542 cmpne r0, r5 + 5282: 0c34 bf 0x52ea // 52ea + //递增 + tm1812_param.gradient_cnt[i]++; + 5284: 8280 ld.b r4, (r2, 0x0) + 5286: 2400 addi r4, 1 + 5288: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 528a: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 528c: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 528e: 0c05 bf 0x5298 // 5298 + tm1812_param.curr_data[i]++; + 5290: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 5292: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 5294: 3000 movi r0, 0 + 5296: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 5298: 3000 movi r0, 0 + 529a: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 529c: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 529e: 3480 movi r4, 128 + 52a0: 6914 and r4, r5 + 52a2: 3c40 cmpnei r4, 0 + 52a4: 9180 ld.w r4, (r1, 0x0) + 52a6: 0c44 bf 0x532e // 532e + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 52a8: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 52aa: 7180 lsl r6, r0 + 52ac: 2001 addi r0, 2 + 52ae: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 52b0: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 52b2: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 52b4: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 52b6: 0bf4 bt 0x529e // 529e + 52b8: 5f03 subi r0, r7, 1 + 52ba: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 52c6: e3fff2e4 bsr 0x388e // 388e + + for(K=0;K + 52ce: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 52d0: 3022 movi r0, 34 + 52d2: 1148 lrw r2, 0x2000002c // 5370 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 52d4: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 52d6: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 52d8: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 52e2: e3fff2d3 bsr 0x3888 // 3888 + +} + 52e6: 1401 addi r14, r14, 4 + 52e8: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 52ea: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 52ec: a400 st.b r0, (r4, 0x0) + 52ee: 07d5 br 0x5298 // 5298 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 52f0: 3840 cmpnei r0, 0 + 52f2: 0c09 bf 0x5304 // 5304 + tm1812_param.gradient_cnt[i]++; + 52f4: 8280 ld.b r4, (r2, 0x0) + 52f6: 2400 addi r4, 1 + 52f8: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 52fa: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 52fc: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 52fe: 0fcd bf 0x5298 // 5298 + tm1812_param.curr_data[i]--; + 5300: 2800 subi r0, 1 + 5302: 07c8 br 0x5292 // 5292 + tm1812_param.gradient_dir[i] = 0x01; + 5304: 3001 movi r0, 1 + 5306: 07f3 br 0x52ec // 52ec + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 5308: 7400 zextb r0, r0 + 530a: 8380 ld.b r4, (r3, 0x0) + 530c: 6500 cmphs r0, r4 + 530e: 0807 bt 0x531c // 531c + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 5310: 5ca1 subu r5, r4, r0 + 5312: 3d22 cmplti r5, 3 + 5314: 080b bt 0x532a // 532a + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 5316: 2001 addi r0, 2 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5318: a318 st.b r0, (r3, 0x18) + 531a: 07bf br 0x5298 // 5298 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 531c: 6410 cmphs r4, r0 + 531e: 0bbd bt 0x5298 // 5298 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 5320: 58b1 subu r5, r0, r4 + 5322: 3d22 cmplti r5, 3 + 5324: 0803 bt 0x532a // 532a + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5326: 2801 subi r0, 2 + 5328: 07f8 br 0x5318 // 5318 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 532a: a398 st.b r4, (r3, 0x18) + 532c: 07b6 br 0x5298 // 5298 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 532e: 3602 movi r6, 2 + 5330: 07bd br 0x52aa // 52aa + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5332: 8328 ld.b r1, (r3, 0x8) + 5334: 6040 addu r1, r0 + 5336: 4122 lsli r1, r1, 2 + 5338: 98c0 ld.w r6, (r14, 0x0) + 533a: 6058 addu r1, r6 + 533c: 9120 ld.w r1, (r1, 0x0) + 533e: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5340: 9228 ld.w r1, (r2, 0x20) + 5342: 6850 and r1, r4 + 5344: 3940 cmpnei r1, 0 + 5346: 0ffd bf 0x5340 // 5340 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5348: 922b ld.w r1, (r2, 0x2c) + 534a: 3982 bclri r1, 2 + 534c: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 534e: 9228 ld.w r1, (r2, 0x20) + 5350: 6854 and r1, r5 + 5352: 3940 cmpnei r1, 0 + 5354: 0ffd bf 0x534e // 534e + SIO0->ICR &= ~SIO_TXDNE; + 5356: 922b ld.w r1, (r2, 0x2c) + 5358: 3980 bclri r1, 0 + 535a: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 5366: 0000 bkpt + 5368: 200000d0 .long 0x200000d0 + 536c: 200001b0 .long 0x200001b0 + 5370: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +00005374 : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 5374: 14d4 push r4-r7, r15 + 5376: 1421 subi r14, r14, 4 + 5378: 1105 lrw r0, 0x200000d0 // 540c + 537a: 1166 lrw r3, 0x20000158 // 5410 + 537c: 3218 movi r2, 24 + 537e: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 5392: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5394: 7184 lsl r6, r1 + 5396: 2101 addi r1, 2 + 5398: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 539a: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 539c: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 539e: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 53a0: 0bf4 bt 0x5388 // 5388 + 53a2: 2a00 subi r2, 1 + 53a4: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 53ae: e3fff270 bsr 0x388e // 388e + + for(K2=0;K2 + 53b6: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 53b8: 3022 movi r0, 34 + 53ba: 1058 lrw r2, 0x2000002c // 5418 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 53bc: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 53be: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 53c0: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 53ca: e3fff25f bsr 0x3888 // 3888 + +} + 53ce: 1401 addi r14, r14, 4 + 53d0: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 53d2: 3602 movi r6, 2 + 53d4: 07e0 br 0x5394 // 5394 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 53d6: 8329 ld.b r1, (r3, 0x9) + 53d8: 6040 addu r1, r0 + 53da: 4122 lsli r1, r1, 2 + 53dc: 98c0 ld.w r6, (r14, 0x0) + 53de: 6058 addu r1, r6 + 53e0: 9120 ld.w r1, (r1, 0x0) + 53e2: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 53e4: 9228 ld.w r1, (r2, 0x20) + 53e6: 6850 and r1, r4 + 53e8: 3940 cmpnei r1, 0 + 53ea: 0ffd bf 0x53e4 // 53e4 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 53ec: 922b ld.w r1, (r2, 0x2c) + 53ee: 3982 bclri r1, 2 + 53f0: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 53f2: 9228 ld.w r1, (r2, 0x20) + 53f4: 6854 and r1, r5 + 53f6: 3940 cmpnei r1, 0 + 53f8: 0ffd bf 0x53f2 // 53f2 + SIO0->ICR &= ~SIO_TXDNE; + 53fa: 922b ld.w r1, (r2, 0x2c) + 53fc: 3980 bclri r1, 0 + 53fe: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 540a: 0000 bkpt + 540c: 200000d0 .long 0x200000d0 + 5410: 20000158 .long 0x20000158 + 5414: 200001b0 .long 0x200001b0 + 5418: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +0000541c : + + +void Tm1812_Task(void) { + 541c: 14d1 push r4, r15 +// } +// } + + static U32_T test_tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 541e: e3fffef5 bsr 0x5208 // 5208 + 5422: 3841 cmpnei r0, 1 + 5424: 080f bt 0x5442 // 5442 + if(SysTick_100us - test_tick >= 20){ + 5426: 1048 lrw r2, 0x200000b4 // 5444 + 5428: 1088 lrw r4, 0x20000150 // 5448 + 542a: 9260 ld.w r3, (r2, 0x0) + 542c: 943b ld.w r1, (r4, 0x6c) + 542e: 60c6 subu r3, r1 + 5430: 3b13 cmphsi r3, 20 + 5432: 0c05 bf 0x543c // 543c + test_tick = SysTick_100us; + 5434: 9260 ld.w r3, (r2, 0x0) + 5436: b47b st.w r3, (r4, 0x6c) + + + TimeCall_SIO_Send(); + 5438: e3ffff0e bsr 0x5254 // 5254 + + } + tm1812_param.regular_tick = SysTick_1ms; + 543c: 1064 lrw r3, 0x200000b8 // 544c + 543e: 9360 ld.w r3, (r3, 0x0) + 5440: b461 st.w r3, (r4, 0x4) + } + +} + 5442: 1491 pop r4, r15 + 5444: 200000b4 .long 0x200000b4 + 5448: 20000150 .long 0x20000150 + 544c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00005450 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 5450: 3817 cmphsi r0, 24 + 5452: 080c bt 0x546a // 546a + return; + } + + tm1812_param.data[select] = data; + 5454: 1066 lrw r3, 0x200000d0 // 546c + 5456: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 5458: 3260 movi r2, 96 + 545a: 608c addu r2, r3 + tm1812_param.data[select] = data; + 545c: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 545e: 3101 movi r1, 1 + 5460: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5462: 237f addi r3, 128 + 5464: 1043 lrw r2, 0x200000b8 // 5470 + 5466: 9240 ld.w r2, (r2, 0x0) + 5468: b340 st.w r2, (r3, 0x0) +} + 546a: 783c jmp r15 + 546c: 200000d0 .long 0x200000d0 + 5470: 200000b8 .long 0x200000b8 + +Disassembly of section .text.TM1812_Control_CH_State: + +00005474 : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 5474: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5476: 3817 cmphsi r0, 24 + 5478: 082a bt 0x54cc // 54cc + return 0x01; + } + + switch(state){ + 547a: 3942 cmpnei r1, 2 + 547c: 0c12 bf 0x54a0 // 54a0 + 547e: 3943 cmpnei r1, 3 + 5480: 0c14 bf 0x54a8 // 54a8 + 5482: 3941 cmpnei r1, 1 + 5484: 0806 bt 0x5490 // 5490 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 5486: 1073 lrw r3, 0x200000d0 // 54d0 + 5488: 600c addu r0, r3 + 548a: 3300 movi r3, 0 + 548c: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 548e: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5490: 1071 lrw r3, 0x20000130 // 54d4 + 5492: 3201 movi r2, 1 + 5494: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 5496: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 5498: 1050 lrw r2, 0x200000b8 // 54d8 + 549a: 9240 ld.w r2, (r2, 0x0) + 549c: b348 st.w r2, (r3, 0x20) +} + 549e: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 54a0: 106c lrw r3, 0x200000d0 // 54d0 + 54a2: 600c addu r0, r3 + 54a4: 3300 movi r3, 0 + 54a6: 07f4 br 0x548e // 548e + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 54a8: 106a lrw r3, 0x200000d0 // 54d0 + 54aa: 600c addu r0, r3 + 54ac: 8020 ld.b r1, (r0, 0x0) + 54ae: 32ff movi r2, 255 + 54b0: 3300 movi r3, 0 + 54b2: 6486 cmpne r1, r2 + 54b4: 2b00 subi r3, 1 + 54b6: 0c07 bf 0x54c4 // 54c4 + tm1812_param.data[ch] = TM1812_CH_ON; + 54b8: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 54ba: 1029 lrw r1, 0x8c79 // 54dc + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 54bc: 3000 movi r0, 0 + 54be: e3fff343 bsr 0x3b44 // 3b44 + 54c2: 07e7 br 0x5490 // 5490 + tm1812_param.data[ch] = TM1812_CH_OFF; + 54c4: 3300 movi r3, 0 + 54c6: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 54c8: 1026 lrw r1, 0x8c81 // 54e0 + 54ca: 07f9 br 0x54bc // 54bc + return 0x01; + 54cc: 3001 movi r0, 1 + 54ce: 07e8 br 0x549e // 549e + 54d0: 200000d0 .long 0x200000d0 + 54d4: 20000130 .long 0x20000130 + 54d8: 200000b8 .long 0x200000b8 + 54dc: 00008c79 .long 0x00008c79 + 54e0: 00008c81 .long 0x00008c81 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +000054e4 : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 54e4: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 54e6: 3817 cmphsi r0, 24 + 54e8: 0827 bt 0x5536 // 5536 + return 0x01; + } + + switch(state){ + 54ea: 3942 cmpnei r1, 2 + 54ec: 0c13 bf 0x5512 // 5512 + 54ee: 3943 cmpnei r1, 3 + 54f0: 0c15 bf 0x551a // 551a + 54f2: 3941 cmpnei r1, 1 + 54f4: 0807 bt 0x5502 // 5502 + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 54f6: 1072 lrw r3, 0x200000d0 // 553c + 54f8: 600c addu r0, r3 + 54fa: 3300 movi r3, 0 + 54fc: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 54fe: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5500: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5502: 1070 lrw r3, 0x20000130 // 5540 + 5504: 3201 movi r2, 1 + 5506: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5508: 3000 movi r0, 0 + 550a: 104f lrw r2, 0x200000b8 // 5544 + 550c: 9240 ld.w r2, (r2, 0x0) + 550e: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5510: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5512: 106b lrw r3, 0x200000d0 // 553c + 5514: 600c addu r0, r3 + 5516: 3300 movi r3, 0 + 5518: 07f3 br 0x54fe // 54fe + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 551a: 1069 lrw r3, 0x200000d0 // 553c + 551c: 600c addu r0, r3 + 551e: 3218 movi r2, 24 + 5520: 6080 addu r2, r0 + 5522: 8280 ld.b r4, (r2, 0x0) + 5524: 31ff movi r1, 255 + 5526: 3300 movi r3, 0 + 5528: 6452 cmpne r4, r1 + 552a: 2b00 subi r3, 1 + 552c: 0c03 bf 0x5532 // 5532 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 552e: a260 st.b r3, (r2, 0x0) + 5530: 07e8 br 0x5500 // 5500 + 5532: 3300 movi r3, 0 + 5534: 07fd br 0x552e // 552e + return 0x01; + 5536: 3001 movi r0, 1 + 5538: 07ec br 0x5510 // 5510 + 553a: 0000 bkpt + 553c: 200000d0 .long 0x200000d0 + 5540: 20000130 .long 0x20000130 + 5544: 200000b8 .long 0x200000b8 + +Disassembly of section .text.TM1812_LED_Init: + +00005548 : +void TM1812_LED_Init(void){ + 5548: 14d0 push r15 + 554a: 1426 subi r14, r14, 24 + SIO_DeInit(); + 554c: e3ffe66e bsr 0x2228 // 2228 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 5550: 3001 movi r0, 1 + 5552: e3ffe67b bsr 0x2248 // 2248 + SIO_TX_Init(SIOCLK_EN,9); // + 5556: 3109 movi r1, 9 + 5558: 3001 movi r0, 1 + 555a: e3ffe6a7 bsr 0x22a8 // 22a8 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 555e: 3303 movi r3, 3 + 5560: b865 st.w r3, (r14, 0x14) + 5562: 330f movi r3, 15 + 5564: b864 st.w r3, (r14, 0x10) + 5566: 33a0 movi r3, 160 + 5568: 4366 lsli r3, r3, 6 + 556a: b863 st.w r3, (r14, 0xc) + 556c: 33a0 movi r3, 160 + 556e: 4363 lsli r3, r3, 3 + 5570: b862 st.w r3, (r14, 0x8) + 5572: 3300 movi r3, 0 + 5574: b861 st.w r3, (r14, 0x4) + 5576: b860 st.w r3, (r14, 0x0) + 5578: 3207 movi r2, 7 + 557a: 3317 movi r3, 23 + 557c: 3100 movi r1, 0 + 557e: 3002 movi r0, 2 + 5580: e3ffe69c bsr 0x22b8 // 22b8 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 5584: 32e8 movi r2, 232 + 5586: 3100 movi r1, 0 + 5588: 1005 lrw r0, 0x200000d0 // 559c + 558a: e3ffe21f bsr 0x19c8 // 19c8 <__memset_fast> + RLY_CTRL_EN; //继电器使能 + 558e: 3101 movi r1, 1 + 5590: 3017 movi r0, 23 + 5592: e3ffffa9 bsr 0x54e4 // 54e4 +} + 5596: 1406 addi r14, r14, 24 + 5598: 1490 pop r15 + 559a: 0000 bkpt + 559c: 200000d0 .long 0x200000d0 + +Disassembly of section .text.HT1621_WR_Data: + +000055a0 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 55a0: 14d4 push r4-r7, r15 + 55a2: 6d43 mov r5, r0 + 55a4: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 55ae: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 55b0: 3101 movi r1, 1 + 55b2: 9600 ld.w r0, (r6, 0x0) + 55b4: e3ffe5ca bsr 0x2148 // 2148 + nop; + 55b8: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 55ba: 74d6 sextb r3, r5 + 55bc: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 55be: 3104 movi r1, 4 + 55c0: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 55c2: 0c0d bf 0x55dc // 55dc + HT1621_DATA_HIGH; + 55c4: e3ffe5be bsr 0x2140 // 2140 + nop; + 55c8: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 55ca: 3101 movi r1, 1 + 55cc: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 55ce: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 55d6: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 55dc: e3ffe5b6 bsr 0x2148 // 2148 + 55e0: 07f4 br 0x55c8 // 55c8 + 55e2: 0000 bkpt + 55e4: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000055e8 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 55e8: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 55ea: 108b lrw r4, 0x2000004c // 5614 +{ + 55ec: 6d43 mov r5, r0 + HT1621_CS_LOW; + 55ee: 310f movi r1, 15 + 55f0: 9400 ld.w r0, (r4, 0x0) + 55f2: e3ffe5ab bsr 0x2148 // 2148 + nop; + 55f6: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 55f8: 3104 movi r1, 4 + 55fa: 3080 movi r0, 128 + 55fc: e3ffffd2 bsr 0x55a0 // 55a0 + HT1621_WR_Data(cmd,8); + 5600: 6c17 mov r0, r5 + 5602: 3108 movi r1, 8 + 5604: e3ffffce bsr 0x55a0 // 55a0 + HT1621_CS_HIGH; + 5608: 9400 ld.w r0, (r4, 0x0) + 560a: 310f movi r1, 15 + 560c: e3ffe59a bsr 0x2140 // 2140 + nop; + 5610: 6c03 mov r0, r0 +} + 5612: 1492 pop r4-r5, r15 + 5614: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005618 : +void HT1621_Init(void){ + 5618: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 561a: 118b lrw r4, 0x2000004c // 56c4 + memset(&HT1621,0,sizeof(HT1621_t)); + 561c: 3240 movi r2, 64 + 561e: 3100 movi r1, 0 + 5620: 110a lrw r0, 0x200004b4 // 56c8 + 5622: e3ffe1d3 bsr 0x19c8 // 19c8 <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 5626: 9400 ld.w r0, (r4, 0x0) + 5628: 3200 movi r2, 0 + 562a: 3100 movi r1, 0 + 562c: e3ffe404 bsr 0x1e34 // 1e34 + GPIO_Init(GPIOA0,1,Output); + 5630: 9400 ld.w r0, (r4, 0x0) + 5632: 3200 movi r2, 0 + 5634: 3101 movi r1, 1 + 5636: e3ffe3ff bsr 0x1e34 // 1e34 + GPIO_Init(GPIOA0,15,Output); + 563a: 9400 ld.w r0, (r4, 0x0) + 563c: 3200 movi r2, 0 + 563e: 310f movi r1, 15 + 5640: e3ffe3fa bsr 0x1e34 // 1e34 + GPIO_Init(GPIOA0,4,Output); + 5644: 3200 movi r2, 0 + 5646: 9400 ld.w r0, (r4, 0x0) + 5648: 3104 movi r1, 4 + 564a: e3ffe3f5 bsr 0x1e34 // 1e34 + GPIO_DriveStrength_EN(GPIOA0,0); + 564e: 9400 ld.w r0, (r4, 0x0) + 5650: 3100 movi r1, 0 + 5652: e3ffe46b bsr 0x1f28 // 1f28 + GPIO_DriveStrength_EN(GPIOA0,1); + 5656: 9400 ld.w r0, (r4, 0x0) + 5658: 3101 movi r1, 1 + 565a: e3ffe467 bsr 0x1f28 // 1f28 + GPIO_DriveStrength_EN(GPIOA0,15); + 565e: 9400 ld.w r0, (r4, 0x0) + 5660: 310f movi r1, 15 + 5662: e3ffe463 bsr 0x1f28 // 1f28 + GPIO_DriveStrength_EN(GPIOA0,4); + 5666: 9400 ld.w r0, (r4, 0x0) + 5668: 3104 movi r1, 4 + 566a: e3ffe45f bsr 0x1f28 // 1f28 + HT1621_CS_LOW; + 566e: 9400 ld.w r0, (r4, 0x0) + 5670: 310f movi r1, 15 + 5672: e3ffe56b bsr 0x2148 // 2148 + HT1621_WR_LOW; + 5676: 9400 ld.w r0, (r4, 0x0) + 5678: 3101 movi r1, 1 + 567a: e3ffe567 bsr 0x2148 // 2148 + HT1621_RD_LOW; + 567e: 9400 ld.w r0, (r4, 0x0) + 5680: 3100 movi r1, 0 + 5682: e3ffe563 bsr 0x2148 // 2148 + HT1621_DATA_LOW; + 5686: 3104 movi r1, 4 + 5688: 9400 ld.w r0, (r4, 0x0) + 568a: e3ffe55f bsr 0x2148 // 2148 + HT1621_WR_CMD(HT1621_BIAS); + 568e: 3052 movi r0, 82 + 5690: e3ffffac bsr 0x55e8 // 55e8 + HT1621_WR_CMD(HT1621_RC256); + 5694: 3030 movi r0, 48 + 5696: e3ffffa9 bsr 0x55e8 // 55e8 + HT1621_WR_CMD(HT1621_SYSDIS); + 569a: 3000 movi r0, 0 + 569c: e3ffffa6 bsr 0x55e8 // 55e8 + HT1621_WR_CMD(HT1621_WDTDIS); + 56a0: 300a movi r0, 10 + 56a2: e3ffffa3 bsr 0x55e8 // 55e8 + HT1621_WR_CMD(HT1621_SYSEN); + 56a6: 3002 movi r0, 2 + 56a8: e3ffffa0 bsr 0x55e8 // 55e8 + HT1621_WR_CMD(HT1621_LCDON); + 56ac: 3006 movi r0, 6 + 56ae: e3ffff9d bsr 0x55e8 // 55e8 + HT1621_WR_CMD(HT1621_BIOFF); + 56b2: 3010 movi r0, 16 + 56b4: e3ffff9a bsr 0x55e8 // 55e8 + HT1621_CS_HIGH; + 56b8: 9400 ld.w r0, (r4, 0x0) + 56ba: 310f movi r1, 15 + 56bc: e3ffe542 bsr 0x2140 // 2140 +} + 56c0: 1491 pop r4, r15 + 56c2: 0000 bkpt + 56c4: 2000004c .long 0x2000004c + 56c8: 200004b4 .long 0x200004b4 + +Disassembly of section .text.HT1621_Clear: + +000056cc : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 56cc: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 56ce: 3214 movi r2, 20 + 56d0: 3100 movi r1, 0 + + HT1621_CS_LOW; + 56d2: 10b1 lrw r5, 0x2000004c // 5714 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 56d4: 1011 lrw r0, 0x200004c0 // 5718 + 56d6: e3ffe179 bsr 0x19c8 // 19c8 <__memset_fast> + HT1621_CS_LOW; + 56da: 310f movi r1, 15 + 56dc: 9500 ld.w r0, (r5, 0x0) + 56de: e3ffe535 bsr 0x2148 // 2148 + nop; + 56e2: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 56e4: 3103 movi r1, 3 + 56e6: 30a0 movi r0, 160 + 56e8: e3ffff5c bsr 0x55a0 // 55a0 + HT1621_WR_Data(0,6); + 56ec: 3106 movi r1, 6 + 56ee: 3000 movi r0, 0 + 56f0: e3ffff58 bsr 0x55a0 // 55a0 + 56f4: 3414 movi r4, 20 + 56f6: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5706: 9500 ld.w r0, (r5, 0x0) + 5708: 310f movi r1, 15 + 570a: e3ffe51b bsr 0x2140 // 2140 + nop; + 570e: 6c03 mov r0, r0 +} + 5710: 1492 pop r4-r5, r15 + 5712: 0000 bkpt + 5714: 2000004c .long 0x2000004c + 5718: 200004c0 .long 0x200004c0 + +Disassembly of section .text.HT1621_ALLON: + +0000571c : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 571c: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 571e: 10af lrw r5, 0x2000004c // 5758 + 5720: 310f movi r1, 15 + 5722: 9500 ld.w r0, (r5, 0x0) + 5724: e3ffe512 bsr 0x2148 // 2148 + nop; + 5728: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 572a: 3103 movi r1, 3 + 572c: 30a0 movi r0, 160 + 572e: e3ffff39 bsr 0x55a0 // 55a0 + HT1621_WR_Data(0,6); + 5732: 3106 movi r1, 6 + 5734: 3000 movi r0, 0 + 5736: e3ffff35 bsr 0x55a0 // 55a0 + 573a: 3414 movi r4, 20 + 573c: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 574c: 9500 ld.w r0, (r5, 0x0) + 574e: 310f movi r1, 15 + 5750: e3ffe4f8 bsr 0x2140 // 2140 + nop; + 5754: 6c03 mov r0, r0 +} + 5756: 1492 pop r4-r5, r15 + 5758: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +0000575c : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 575c: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 575e: 1091 lrw r4, 0x2000004c // 57a0 + 5760: 310f movi r1, 15 + 5762: 9400 ld.w r0, (r4, 0x0) + 5764: e3ffe4f2 bsr 0x2148 // 2148 + nop; + 5768: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 576a: 3103 movi r1, 3 + 576c: 30a0 movi r0, 160 + 576e: e3ffff19 bsr 0x55a0 // 55a0 + HT1621_WR_Data(0,6); + 5772: 3106 movi r1, 6 + 5774: 3000 movi r0, 0 + 5776: e3ffff15 bsr 0x55a0 // 55a0 + 577a: 3500 movi r5, 0 + for(U8_T i=0;i + 577e: 60d4 addu r3, r5 + 5780: 830c ld.b r0, (r3, 0xc) + 5782: 4004 lsli r0, r0, 4 + 5784: 7400 zextb r0, r0 + 5786: 3104 movi r1, 4 + 5788: 2500 addi r5, 1 + 578a: e3ffff0b bsr 0x55a0 // 55a0 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5792: 9400 ld.w r0, (r4, 0x0) + 5794: 310f movi r1, 15 + 5796: e3ffe4d5 bsr 0x2140 // 2140 + nop; + 579a: 6c03 mov r0, r0 +} + 579c: 1492 pop r4-r5, r15 + 579e: 0000 bkpt + 57a0: 2000004c .long 0x2000004c + 57a4: 200004b4 .long 0x200004b4 + +Disassembly of section .text.Set_Temperature_Display: + +000057a8 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 57a8: 14d4 push r4-r7, r15 + 57aa: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 57ac: 1170 lrw r3, 0x2000051d // 586c + 57ae: 8368 ld.b r3, (r3, 0x8) + 57b0: 3b40 cmpnei r3, 0 +{ + 57b2: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 57b4: b861 st.w r3, (r14, 0x4) + 57b6: 0845 bt 0x5840 // 5840 + tmp_Integer = tmp/10; + 57b8: 310a movi r1, 10 + 57ba: e3fff031 bsr 0x381c // 381c <__udivsi3> + 57be: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 57c0: 310a movi r1, 10 + 57c2: 6c13 mov r0, r4 + 57c4: e3fff050 bsr 0x3864 // 3864 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 57c8: 118a lrw r4, 0x200004b4 // 5870 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 57ca: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 57cc: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 57ce: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 57d0: 8476 ld.b r3, (r4, 0x16) + 57d2: 68d4 and r3, r5 + 57d4: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 57d6: 8474 ld.b r3, (r4, 0x14) + 57d8: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 57da: 310a movi r1, 10 + 57dc: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 57de: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 57e0: e3fff01e bsr 0x381c // 381c <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 57e4: 11e4 lrw r7, 0x88e6 // 5874 + 57e6: 7400 zextb r0, r0 + 57e8: 601c addu r0, r7 + 57ea: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 57ec: 8458 ld.b r2, (r4, 0x18) + 57ee: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 57f0: 6c07 mov r0, r1 + 57f2: 350f movi r5, 15 + 57f4: 6814 and r0, r5 + 57f6: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 57f8: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 57fa: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 57fc: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 57fe: 6c1b mov r0, r6 + 5800: 310a movi r1, 10 + 5802: e3fff031 bsr 0x3864 // 3864 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5806: 7400 zextb r0, r0 + 5808: 601c addu r0, r7 + 580a: 8040 ld.b r2, (r0, 0x0) + 580c: 6c4b mov r1, r2 + 580e: 6854 and r1, r5 + 5810: 9862 ld.w r3, (r14, 0x8) + 5812: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5814: 9860 ld.w r3, (r14, 0x0) + 5816: 61cc addu r7, r3 + 5818: 8760 ld.b r3, (r7, 0x0) + 581a: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 581c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 581e: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5820: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 5822: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5824: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 5826: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5828: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 582a: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 582c: 6d48 or r5, r2 + 582e: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 5830: 081a bt 0x5864 // 5864 + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 5832: 3ba1 bseti r3, 1 + 5834: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 5836: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5838: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 583a: a4b4 st.b r5, (r4, 0x14) +} + 583c: 1404 addi r14, r14, 16 + 583e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5840: 3012 movi r0, 18 + 5842: 7c10 mult r0, r4 + 5844: 310a movi r1, 10 + 5846: 34a0 movi r4, 160 + 5848: e3ffefd8 bsr 0x37f8 // 37f8 <__divsi3> + 584c: 4481 lsli r4, r4, 1 + 584e: 6100 addu r4, r0 + 5850: 310a movi r1, 10 + 5852: 6c13 mov r0, r4 + 5854: e3ffefd2 bsr 0x37f8 // 37f8 <__divsi3> + 5858: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 585a: 310a movi r1, 10 + 585c: 6c13 mov r0, r4 + 585e: e3ffeff1 bsr 0x3840 // 3840 <__modsi3> + 5862: 07b3 br 0x57c8 // 57c8 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5864: 3ba2 bseti r3, 2 + 5866: 3ba3 bseti r3, 3 + 5868: 07e7 br 0x5836 // 5836 + 586a: 0000 bkpt + 586c: 2000051d .long 0x2000051d + 5870: 200004b4 .long 0x200004b4 + 5874: 000088e6 .long 0x000088e6 + +Disassembly of section .text.Local_Temperature_Display: + +00005878 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 5878: 14d4 push r4-r7, r15 + 587a: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 587c: 1170 lrw r3, 0x2000051d // 593c + 587e: 8368 ld.b r3, (r3, 0x8) + 5880: 3b40 cmpnei r3, 0 +{ + 5882: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5884: b861 st.w r3, (r14, 0x4) + 5886: 0845 bt 0x5910 // 5910 + tmp_Integer = tmp/10; + 5888: 310a movi r1, 10 + 588a: e3ffefc9 bsr 0x381c // 381c <__udivsi3> + 588e: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5890: 310a movi r1, 10 + 5892: 6c13 mov r0, r4 + 5894: e3ffefe8 bsr 0x3864 // 3864 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 5898: 118a lrw r4, 0x200004b4 // 5940 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 589a: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 589c: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 589e: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 58a0: 847d ld.b r3, (r4, 0x1d) + 58a2: 68d4 and r3, r5 + 58a4: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 58a6: 847b ld.b r3, (r4, 0x1b) + 58a8: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 58aa: 310a movi r1, 10 + 58ac: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 58ae: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 58b0: e3ffefb6 bsr 0x381c // 381c <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58b4: 11e4 lrw r7, 0x88e6 // 5944 + 58b6: 7400 zextb r0, r0 + 58b8: 601c addu r0, r7 + 58ba: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 58bc: 845f ld.b r2, (r4, 0x1f) + 58be: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58c0: 6c07 mov r0, r1 + 58c2: 350f movi r5, 15 + 58c4: 6814 and r0, r5 + 58c6: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 58c8: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58ca: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 58cc: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 58ce: 6c1b mov r0, r6 + 58d0: 310a movi r1, 10 + 58d2: e3ffefc9 bsr 0x3864 // 3864 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 58d6: 7400 zextb r0, r0 + 58d8: 601c addu r0, r7 + 58da: 8040 ld.b r2, (r0, 0x0) + 58dc: 6c4b mov r1, r2 + 58de: 6854 and r1, r5 + 58e0: 9862 ld.w r3, (r14, 0x8) + 58e2: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 58e4: 9860 ld.w r3, (r14, 0x0) + 58e6: 61cc addu r7, r3 + 58e8: 8760 ld.b r3, (r7, 0x0) + 58ea: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 58ec: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 58ee: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 58f0: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 58f2: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 58f4: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 58f6: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 58f8: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 58fa: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 58fc: 6d48 or r5, r2 + 58fe: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 5900: 081a bt 0x5934 // 5934 + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 5902: 3ba1 bseti r3, 1 + 5904: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 5906: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5908: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 590a: a4bb st.b r5, (r4, 0x1b) +} + 590c: 1404 addi r14, r14, 16 + 590e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5910: 3012 movi r0, 18 + 5912: 7c10 mult r0, r4 + 5914: 310a movi r1, 10 + 5916: 34a0 movi r4, 160 + 5918: e3ffef70 bsr 0x37f8 // 37f8 <__divsi3> + 591c: 4481 lsli r4, r4, 1 + 591e: 6100 addu r4, r0 + 5920: 310a movi r1, 10 + 5922: 6c13 mov r0, r4 + 5924: e3ffef6a bsr 0x37f8 // 37f8 <__divsi3> + 5928: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 592a: 310a movi r1, 10 + 592c: 6c13 mov r0, r4 + 592e: e3ffef89 bsr 0x3840 // 3840 <__modsi3> + 5932: 07b3 br 0x5898 // 5898 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5934: 3ba2 bseti r3, 2 + 5936: 3ba3 bseti r3, 3 + 5938: 07e7 br 0x5906 // 5906 + 593a: 0000 bkpt + 593c: 2000051d .long 0x2000051d + 5940: 200004b4 .long 0x200004b4 + 5944: 000088e6 .long 0x000088e6 + +Disassembly of section .text.Control_Mode: + +00005948 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 5948: 14d1 push r4, r15 + switch(mode){ + 594a: 3806 cmphsi r0, 7 + 594c: 0823 bt 0x5992 // 5992 + 594e: e3ffd9ef bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5952: 0007 .short 0x0007 + 5954: 005a0020 .long 0x005a0020 + 5958: 009a0020 .long 0x009a0020 + 595c: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 5960: 0376 lrw r3, 0x2000051d // 5b84 + 5962: 8349 ld.b r2, (r3, 0x9) + 5964: 3a40 cmpnei r2, 0 + 5966: 0376 lrw r3, 0x200004b4 // 5b88 + 5968: 0816 bt 0x5994 // 5994 + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 596a: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 596c: 830e ld.b r0, (r3, 0xe) + 596e: 6811 andn r0, r4 + 5970: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5972: 830f ld.b r0, (r3, 0xf) + 5974: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5976: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5978: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 597a: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 597c: 3982 bclri r1, 2 + 597e: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5980: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5982: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5984: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5986: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 5988: 39a2 bseti r1, 2 + 598a: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 598c: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 598e: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 5990: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 5992: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 5994: 3a41 cmpnei r2, 1 + 5996: 0812 bt 0x59ba // 59ba + HT1621.show_cache[1] &= ~0x07; + 5998: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 599a: 830e ld.b r0, (r3, 0xe) + 599c: 6811 andn r0, r4 + 599e: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59a0: 830f ld.b r0, (r3, 0xf) + 59a2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 59a4: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 59a6: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59a8: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 59aa: 3982 bclri r1, 2 + 59ac: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 59ae: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 59b0: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 59b2: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 59b4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 59b6: 39a2 bseti r1, 2 + 59b8: 07ea br 0x598c // 598c + else if(Debug_Inf.Language_Selection == 0x02) + 59ba: 3a42 cmpnei r2, 2 + 59bc: 0812 bt 0x59e0 // 59e0 + HT1621.show_cache[1] &= ~0x07; + 59be: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 59c0: 830e ld.b r0, (r3, 0xe) + 59c2: 6811 andn r0, r4 + 59c4: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59c6: 830f ld.b r0, (r3, 0xf) + 59c8: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 59ca: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 59cc: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59ce: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 59d0: 3982 bclri r1, 2 + 59d2: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 59d4: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 59d6: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 59d8: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 59da: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 59dc: 39a3 bseti r1, 3 + 59de: 07d7 br 0x598c // 598c + HT1621.show_cache[0] &= ~0x0C; + 59e0: 136a lrw r3, 0x200004b4 // 5b88 + 59e2: 834c ld.b r2, (r3, 0xc) + 59e4: 3a82 bclri r2, 2 + 59e6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 59e8: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 59ea: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 59ec: 834d ld.b r2, (r3, 0xd) + 59ee: 6885 andn r2, r1 + 59f0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 59f2: 834e ld.b r2, (r3, 0xe) + 59f4: 6885 andn r2, r1 + 59f6: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59f8: 834f ld.b r2, (r3, 0xf) + 59fa: 6885 andn r2, r1 + 59fc: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59fe: 8351 ld.b r2, (r3, 0x11) + 5a00: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 5a02: a351 st.b r2, (r3, 0x11) +} + 5a04: 07c7 br 0x5992 // 5992 + if(Debug_Inf.Language_Selection == 0x00) + 5a06: 1360 lrw r3, 0x2000051d // 5b84 + 5a08: 8349 ld.b r2, (r3, 0x9) + 5a0a: 3a40 cmpnei r2, 0 + 5a0c: 127f lrw r3, 0x200004b4 // 5b88 + 5a0e: 0816 bt 0x5a3a // 5a3a + HT1621.show_cache[1] &= ~0x07; + 5a10: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a12: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a14: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a16: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a18: 3a82 bclri r2, 2 + 5a1a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a1c: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a1e: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a20: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a22: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a24: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a26: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a28: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a2a: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a2c: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5a2e: 39a1 bseti r1, 1 + 5a30: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 5a32: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 5a34: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 5a36: a34e st.b r2, (r3, 0xe) + 5a38: 07ad br 0x5992 // 5992 + else if(Debug_Inf.Language_Selection == 0x01) + 5a3a: 3a41 cmpnei r2, 1 + 5a3c: 0812 bt 0x5a60 // 5a60 + HT1621.show_cache[1] &= ~0x07; + 5a3e: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a40: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a42: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a44: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a46: 3a82 bclri r2, 2 + 5a48: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a4a: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a4c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a4e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a50: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a52: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a54: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a56: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a58: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a5a: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 5a5c: 39a1 bseti r1, 1 + 5a5e: 07ea br 0x5a32 // 5a32 + else if(Debug_Inf.Language_Selection == 0x02) + 5a60: 3a42 cmpnei r2, 2 + 5a62: 0bbf bt 0x59e0 // 59e0 + HT1621.show_cache[1] &= ~0x07; + 5a64: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a66: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a68: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a6a: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a6c: 3a82 bclri r2, 2 + 5a6e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a70: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a72: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a74: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a76: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a78: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a7a: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a7c: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a7e: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a80: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5a82: 39a2 bseti r1, 2 + 5a84: 07d7 br 0x5a32 // 5a32 + if(Debug_Inf.Language_Selection == 0x00) + 5a86: 1260 lrw r3, 0x2000051d // 5b84 + 5a88: 8349 ld.b r2, (r3, 0x9) + 5a8a: 3a40 cmpnei r2, 0 + 5a8c: 117f lrw r3, 0x200004b4 // 5b88 + 5a8e: 0816 bt 0x5aba // 5aba + HT1621.show_cache[0] &= ~0x0C; + 5a90: 834c ld.b r2, (r3, 0xc) + 5a92: 3a82 bclri r2, 2 + 5a94: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a96: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5a98: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a9a: 834d ld.b r2, (r3, 0xd) + 5a9c: 6881 andn r2, r0 + 5a9e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5aa0: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5aa2: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5aa4: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5aa6: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5aa8: 8311 ld.b r0, (r3, 0x11) + 5aaa: 3880 bclri r0, 0 + 5aac: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5aae: 39a1 bseti r1, 1 + 5ab0: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 5ab2: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 5ab4: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 5ab6: a34f st.b r2, (r3, 0xf) + 5ab8: 076d br 0x5992 // 5992 + else if(Debug_Inf.Language_Selection == 0x01) + 5aba: 3a41 cmpnei r2, 1 + 5abc: 0812 bt 0x5ae0 // 5ae0 + HT1621.show_cache[0] &= ~0x0C; + 5abe: 834c ld.b r2, (r3, 0xc) + 5ac0: 3a82 bclri r2, 2 + 5ac2: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5ac4: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5ac6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5ac8: 834d ld.b r2, (r3, 0xd) + 5aca: 6881 andn r2, r0 + 5acc: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5ace: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5ad0: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5ad2: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5ad4: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5ad6: 8311 ld.b r0, (r3, 0x11) + 5ad8: 3880 bclri r0, 0 + 5ada: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 5adc: 39a1 bseti r1, 1 + 5ade: 07ea br 0x5ab2 // 5ab2 + else if(Debug_Inf.Language_Selection == 0x02) + 5ae0: 3a42 cmpnei r2, 2 + 5ae2: 0b7f bt 0x59e0 // 59e0 + HT1621.show_cache[0] &= ~0x0C; + 5ae4: 834c ld.b r2, (r3, 0xc) + 5ae6: 3a82 bclri r2, 2 + 5ae8: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5aea: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5aec: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5aee: 834d ld.b r2, (r3, 0xd) + 5af0: 6881 andn r2, r0 + 5af2: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5af4: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5af6: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5af8: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5afa: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5afc: 8311 ld.b r0, (r3, 0x11) + 5afe: 3880 bclri r0, 0 + 5b00: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5b02: 39a2 bseti r1, 2 + 5b04: 07d7 br 0x5ab2 // 5ab2 + if(Debug_Inf.Language_Selection == 0x00) + 5b06: 1160 lrw r3, 0x2000051d // 5b84 + 5b08: 8349 ld.b r2, (r3, 0x9) + 5b0a: 3a40 cmpnei r2, 0 + 5b0c: 107f lrw r3, 0x200004b4 // 5b88 + 5b0e: 0815 bt 0x5b38 // 5b38 + HT1621.show_cache[0] &= ~0x0C; + 5b10: 834c ld.b r2, (r3, 0xc) + 5b12: 3a82 bclri r2, 2 + 5b14: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b16: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b18: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b1a: 834d ld.b r2, (r3, 0xd) + 5b1c: 6881 andn r2, r0 + 5b1e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b20: 834e ld.b r2, (r3, 0xe) + 5b22: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b24: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b26: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b28: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b2a: 8351 ld.b r2, (r3, 0x11) + 5b2c: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5b2e: 39a1 bseti r1, 1 + 5b30: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 5b32: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 5b34: 3aa0 bseti r2, 0 + 5b36: 0766 br 0x5a02 // 5a02 + else if(Debug_Inf.Language_Selection == 0x01) + 5b38: 3a41 cmpnei r2, 1 + 5b3a: 0812 bt 0x5b5e // 5b5e + HT1621.show_cache[0] &= ~0x0C; + 5b3c: 834c ld.b r2, (r3, 0xc) + 5b3e: 3a82 bclri r2, 2 + 5b40: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b42: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b44: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b46: 834d ld.b r2, (r3, 0xd) + 5b48: 6881 andn r2, r0 + 5b4a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b4c: 834e ld.b r2, (r3, 0xe) + 5b4e: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b50: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b52: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b54: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b56: 8351 ld.b r2, (r3, 0x11) + 5b58: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 5b5a: 39a1 bseti r1, 1 + 5b5c: 07eb br 0x5b32 // 5b32 + else if(Debug_Inf.Language_Selection == 0x02) + 5b5e: 3a42 cmpnei r2, 2 + 5b60: 0b40 bt 0x59e0 // 59e0 + HT1621.show_cache[0] &= ~0x0C; + 5b62: 834c ld.b r2, (r3, 0xc) + 5b64: 3a82 bclri r2, 2 + 5b66: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b68: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b6a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b6c: 834d ld.b r2, (r3, 0xd) + 5b6e: 6881 andn r2, r0 + 5b70: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b72: 834e ld.b r2, (r3, 0xe) + 5b74: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b76: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b78: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b7a: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b7c: 8351 ld.b r2, (r3, 0x11) + 5b7e: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5b80: 39a2 bseti r1, 2 + 5b82: 07d8 br 0x5b32 // 5b32 + 5b84: 2000051d .long 0x2000051d + 5b88: 200004b4 .long 0x200004b4 + +Disassembly of section .text.Control_wind_velocity: + +00005b8c : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 5b8c: 14d2 push r4-r5, r15 + switch(velocity) + 5b8e: 3804 cmphsi r0, 5 + 5b90: 0815 bt 0x5bba // 5bba + 5b92: 1172 lrw r3, 0x200004b4 // 5c58 + 5b94: e3ffd8b4 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 5b98: 20120333 .long 0x20120333 + 5b9c: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 5b9e: 8351 ld.b r2, (r3, 0x11) + 5ba0: 310e movi r1, 14 + 5ba2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5ba4: 300f movi r0, 15 + 5ba6: 8330 ld.b r1, (r3, 0x10) + 5ba8: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 5baa: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 5bac: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 5bae: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 5bb0: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 5bb2: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 5bb4: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 5bb6: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 5bb8: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 5bba: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 5bbc: 310e movi r1, 14 + 5bbe: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 5bc0: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 5bc2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5bc4: 8330 ld.b r1, (r3, 0x10) + 5bc6: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 5bc8: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 5bca: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 5bcc: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 5bce: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 5bd0: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 5bd2: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 5bd4: 3aa3 bseti r2, 3 + 5bd6: 07f1 br 0x5bb8 // 5bb8 + HT1621.show_cache[5] &= ~0x0E; + 5bd8: 310e movi r1, 14 + 5bda: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 5bdc: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 5bde: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5be0: 8330 ld.b r1, (r3, 0x10) + 5be2: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 5be4: 300e movi r0, 14 + 5be6: 07f2 br 0x5bca // 5bca + HT1621.show_cache[4] &= ~0x0F; + 5be8: 8350 ld.b r2, (r3, 0x10) + 5bea: 310f movi r1, 15 + 5bec: 6885 andn r2, r1 + 5bee: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 5bf0: 310e movi r1, 14 + 5bf2: 8351 ld.b r2, (r3, 0x11) + 5bf4: 6885 andn r2, r1 + 5bf6: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 5bf8: 834f ld.b r2, (r3, 0xf) + 5bfa: 3a83 bclri r2, 3 + 5bfc: 07de br 0x5bb8 // 5bb8 + HT1621.show_cache[4] &= ~0x0F; + 5bfe: 8330 ld.b r1, (r3, 0x10) + 5c00: 320f movi r2, 15 + 5c02: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 5c04: 300e movi r0, 14 + 5c06: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 5c08: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 5c0a: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 5c0c: 3408 movi r4, 8 + 5c0e: 6c17 mov r0, r5 + 5c10: 6c10 or r0, r4 + 5c12: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 5c14: 6c07 mov r0, r1 + 5c16: 38a0 bseti r0, 0 + 5c18: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 5c1a: 8303 ld.b r0, (r3, 0x3) + 5c1c: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 5c1e: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 5c20: 0804 bt 0x5c28 // 5c28 + HT1621.show_cache[3] &= ~0x08; + 5c22: 3d83 bclri r5, 3 + 5c24: a3af st.b r5, (r3, 0xf) + 5c26: 07ca br 0x5bba // 5bba + }else if(HT1621.wind_velocity == 0) //低风速 + 5c28: 3840 cmpnei r0, 0 + 5c2a: 0807 bt 0x5c38 // 5c38 + HT1621.show_cache[4] |= 0x08; + 5c2c: 39a0 bseti r1, 0 + 5c2e: 39a3 bseti r1, 3 + 5c30: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 5c32: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 5c34: a351 st.b r2, (r3, 0x11) +} + 5c36: 07c2 br 0x5bba // 5bba + }else if(HT1621.wind_velocity == 1) //中风速 + 5c38: 3841 cmpnei r0, 1 + 5c3a: 0807 bt 0x5c48 // 5c48 + HT1621.show_cache[4] |= 0x0C; + 5c3c: 300d movi r0, 13 + 5c3e: 6c40 or r1, r0 + 5c40: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 5c42: 3aa2 bseti r2, 2 + 5c44: 3aa3 bseti r2, 3 + 5c46: 07f7 br 0x5c34 // 5c34 + }else if(HT1621.wind_velocity == 2) //高风速 + 5c48: 3842 cmpnei r0, 2 + 5c4a: 0bb8 bt 0x5bba // 5bba + HT1621.show_cache[4] |= 0x0E; + 5c4c: 300f movi r0, 15 + 5c4e: 6c40 or r1, r0 + 5c50: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 5c52: 310e movi r1, 14 + 5c54: 6c84 or r2, r1 + 5c56: 07ef br 0x5c34 // 5c34 + 5c58: 200004b4 .long 0x200004b4 + +Disassembly of section .text.Control_Prompt_Text: + +00005c5c : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 5c5c: 14c4 push r4-r7 + 5c5e: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 5c60: 1167 lrw r3, 0x200004b4 // 5cfc + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 5c62: 83d6 ld.b r6, (r3, 0x16) + 5c64: 3e80 bclri r6, 0 + 5c66: 7598 zextb r6, r6 + 5c68: b8c0 st.w r6, (r14, 0x0) + 5c6a: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 5c6e: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 5c70: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c72: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c74: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 5c76: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 5c78: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5c7a: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 5c7c: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c7e: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c80: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 5c82: 3a80 bclri r2, 0 + 5c84: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 5c86: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5c88: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 5c8a: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c8c: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c8e: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 5c90: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 5c92: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5c94: 7598 zextb r6, r6 + + if(state == 0x00) + 5c96: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 5c98: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5c9a: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5c9c: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 5c9e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 5ca0: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5ca2: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 5ca4: 0814 bt 0x5ccc // 5ccc + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 5ca6: 3008 movi r0, 8 + 5ca8: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 5caa: 3aa0 bseti r2, 0 + 5cac: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 5cae: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 5cb0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cb2: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cb4: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cb6: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cb8: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 5cba: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cbc: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cbe: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cc0: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 5cc2: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cc4: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 5cc6: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 5cc8: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 5cca: 040b br 0x5ce0 // 5ce0 + else if(state == 0x01){ + 5ccc: 3841 cmpnei r0, 1 + 5cce: 080b bt 0x5ce4 // 5ce4 + HT1621.show_cache[0] |= 0x01; //模式 + 5cd0: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 5cd2: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cd4: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cd6: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 5cd8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 5cda: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cdc: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 5cde: a33f st.b r1, (r3, 0x1f) +} + 5ce0: 1401 addi r14, r14, 4 + 5ce2: 1484 pop r4-r7 + }else if(state == 0x02){ + 5ce4: 3842 cmpnei r0, 2 + 5ce6: 0bfd bt 0x5ce0 // 5ce0 + HT1621.show_cache[0] |= 0x02; //模式 + 5ce8: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cea: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 5cec: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cee: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 5cf0: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cf2: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 5cf4: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cf6: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 5cf8: 6d84 or r6, r1 + 5cfa: 07e7 br 0x5cc8 // 5cc8 + 5cfc: 200004b4 .long 0x200004b4 + +Disassembly of section .text.Controlled_Buzzer: + +00005d00 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 5d00: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 5d02: 3841 cmpnei r0, 1 + 5d04: 0c0a bf 0x5d18 // 5d18 + 5d06: 3840 cmpnei r0, 0 + 5d08: 0c04 bf 0x5d10 // 5d10 + 5d0a: 3842 cmpnei r0, 2 + 5d0c: 0c12 bf 0x5d30 // 5d30 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 5d0e: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 5d10: 3010 movi r0, 16 + 5d12: e3fffc6b bsr 0x55e8 // 55e8 + break; + 5d16: 07fc br 0x5d0e // 5d0e + HT1621_WR_CMD(HT1621_BLON); + 5d18: 3012 movi r0, 18 + 5d1a: e3fffc67 bsr 0x55e8 // 55e8 + HT1621.buz_control = 0x01; + 5d1e: 1069 lrw r3, 0x200004b4 // 5d40 + 5d20: 3220 movi r2, 32 + 5d22: 608c addu r2, r3 + 5d24: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 5d26: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 5d28: 1047 lrw r2, 0x200000b8 // 5d44 + 5d2a: 9240 ld.w r2, (r2, 0x0) + 5d2c: b34e st.w r2, (r3, 0x38) +} + 5d2e: 07f0 br 0x5d0e // 5d0e + HT1621_WR_CMD(HT1621_BLON); + 5d30: 3012 movi r0, 18 + 5d32: e3fffc5b bsr 0x55e8 // 55e8 + HT1621.buz_control = 0x02; + 5d36: 1063 lrw r3, 0x200004b4 // 5d40 + 5d38: 3220 movi r2, 32 + 5d3a: 608c addu r2, r3 + 5d3c: 3102 movi r1, 2 + 5d3e: 07f4 br 0x5d26 // 5d26 + 5d40: 200004b4 .long 0x200004b4 + 5d44: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00005d48 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 5d48: 14d0 push r15 + switch (state) { + 5d4a: 3840 cmpnei r0, 0 + 5d4c: 0c04 bf 0x5d54 // 5d54 + 5d4e: 3841 cmpnei r0, 1 + 5d50: 0c16 bf 0x5d7c // 5d7c + + } + break; + + } +} + 5d52: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 5d54: 1172 lrw r3, 0x20000130 // 5e1c + 5d56: 8359 ld.b r2, (r3, 0x19) + 5d58: 3a41 cmpnei r2, 1 + 5d5a: 0bfc bt 0x5d52 // 5d52 + tm1812_param.LCD_blaklingt_flag = 0x00; + 5d5c: 3200 movi r2, 0 + 5d5e: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d60: 3100 movi r1, 0 + 5d62: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d64: e3fffb76 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 5d68: 3100 movi r1, 0 + 5d6a: 3001 movi r0, 1 + 5d6c: e3fffb72 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5d70: 3100 movi r1, 0 + 5d72: 3002 movi r0, 2 + 5d74: e3fffb6e bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5d78: 3100 movi r1, 0 + 5d7a: 0437 br 0x5de8 // 5de8 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 5d7c: 1128 lrw r1, 0x20000130 // 5e1c + 5d7e: 8179 ld.b r3, (r1, 0x19) + 5d80: 3b40 cmpnei r3, 0 + 5d82: 0be8 bt 0x5d52 // 5d52 + tm1812_param.LCD_blaklingt_flag = 0x01; + 5d84: 3301 movi r3, 1 + 5d86: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d88: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 5d8a: 1166 lrw r3, 0x200004f4 // 5e20 + 5d8c: 8362 ld.b r3, (r3, 0x2) + 5d8e: 4379 lsli r3, r3, 25 + 5d90: 4b7d lsri r3, r3, 29 + 5d92: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 5d94: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 5d96: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5d98: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 5d9a: 0c1c bf 0x5dd2 // 5dd2 + 5d9c: 3a44 cmpnei r2, 4 + 5d9e: 0c2a bf 0x5df2 // 5df2 + 5da0: 3a40 cmpnei r2, 0 + 5da2: 0be1 bt 0x5d64 // 5d64 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5da4: e3fffb56 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5da8: 31ff movi r1, 255 + 5daa: 3001 movi r0, 1 + 5dac: e3fffb52 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5db0: 3100 movi r1, 0 + 5db2: 3002 movi r0, 2 + 5db4: e3fffb4e bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5db8: 3100 movi r1, 0 + 5dba: 3003 movi r0, 3 + 5dbc: e3fffb4a bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5dc0: 3100 movi r1, 0 + 5dc2: 3004 movi r0, 4 + 5dc4: e3fffb46 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 5dc8: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 5dca: 3005 movi r0, 5 + 5dcc: e3fffb42 bsr 0x5450 // 5450 +} + 5dd0: 07c1 br 0x5d52 // 5d52 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5dd2: e3fffb3f bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5dd6: 31ff movi r1, 255 + 5dd8: 3001 movi r0, 1 + 5dda: e3fffb3b bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5dde: 3100 movi r1, 0 + 5de0: 3002 movi r0, 2 + 5de2: e3fffb37 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 5de6: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5de8: 3003 movi r0, 3 + 5dea: e3fffb33 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5dee: 3100 movi r1, 0 + 5df0: 0410 br 0x5e10 // 5e10 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5df2: e3fffb2f bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5df6: 31ff movi r1, 255 + 5df8: 3001 movi r0, 1 + 5dfa: e3fffb2b bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5dfe: 3100 movi r1, 0 + 5e00: 3002 movi r0, 2 + 5e02: e3fffb27 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5e06: 3100 movi r1, 0 + 5e08: 3003 movi r0, 3 + 5e0a: e3fffb23 bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 5e0e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5e10: 3004 movi r0, 4 + 5e12: e3fffb1f bsr 0x5450 // 5450 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 5e16: 3100 movi r1, 0 + 5e18: 07d9 br 0x5dca // 5dca + 5e1a: 0000 bkpt + 5e1c: 20000130 .long 0x20000130 + 5e20: 200004f4 .long 0x200004f4 + +Disassembly of section .text.Controlled_Key_Backlight: + +00005e24 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 5e24: 14d0 push r15 + switch(state){ + 5e26: 3840 cmpnei r0, 0 + 5e28: 0c04 bf 0x5e30 // 5e30 + 5e2a: 3841 cmpnei r0, 1 + 5e2c: 0c0b bf 0x5e42 // 5e42 + + } + + break; + } +} + 5e2e: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 5e30: 1068 lrw r3, 0x2000048c // 5e50 + 5e32: 836a ld.b r3, (r3, 0xa) + 5e34: 3b42 cmpnei r3, 2 + 5e36: 0ffc bf 0x5e2e // 5e2e + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 5e38: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 5e3a: 3005 movi r0, 5 + 5e3c: e3fff7dc bsr 0x4df4 // 4df4 +} + 5e40: 07f7 br 0x5e2e // 5e2e + if(g_switch.light_state[T_Backlight] != Control_ON) + 5e42: 1064 lrw r3, 0x2000048c // 5e50 + 5e44: 836a ld.b r3, (r3, 0xa) + 5e46: 3b41 cmpnei r3, 1 + 5e48: 0ff3 bf 0x5e2e // 5e2e + Contol_Switch_Light_2(T_Backlight,Control_ON); + 5e4a: 3101 movi r1, 1 + 5e4c: 07f7 br 0x5e3a // 5e3a + 5e4e: 0000 bkpt + 5e50: 2000048c .long 0x2000048c + +Disassembly of section .text.Set_Device_ADDR: + +00005e54 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 5e54: 14d4 push r4-r7, r15 + 5e56: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e58: 11c4 lrw r6, 0x88e6 // 5ee8 + 5e5a: 6018 addu r0, r6 + 5e5c: 1184 lrw r4, 0x200004b4 // 5eec +void Set_Device_ADDR(U8_T page, U8_T addr){ + 5e5e: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e60: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 5e62: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e64: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 5e66: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e68: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 5e6a: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e6c: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 5e6e: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e70: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 5e72: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 5e74: 843b ld.b r1, (r4, 0x1b) + 5e76: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5e78: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 5e7a: 845d ld.b r2, (r4, 0x1d) + 5e7c: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 5e7e: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 5e80: 6c1f mov r0, r7 + 5e82: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 5e84: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 5e86: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 5e88: e3ffecca bsr 0x381c // 381c <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5e8c: 7400 zextb r0, r0 + 5e8e: 6018 addu r0, r6 + 5e90: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 5e92: 9861 ld.w r3, (r14, 0x4) + 5e94: 841f ld.b r0, (r4, 0x1f) + 5e96: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5e98: 6c07 mov r0, r1 + 5e9a: 6814 and r0, r5 + 5e9c: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5e9e: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5ea0: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5ea2: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 5ea4: 6c1f mov r0, r7 + 5ea6: 310a movi r1, 10 + 5ea8: e3ffecba bsr 0x381c // 381c <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 5eac: 7400 zextb r0, r0 + 5eae: 310a movi r1, 10 + 5eb0: e3ffecda bsr 0x3864 // 3864 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5eb4: 7400 zextb r0, r0 + 5eb6: 6018 addu r0, r6 + 5eb8: 8060 ld.b r3, (r0, 0x0) + 5eba: 6c4f mov r1, r3 + 5ebc: 6854 and r1, r5 + 5ebe: 9842 ld.w r2, (r14, 0x8) + 5ec0: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5ec2: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5ec4: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5ec6: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 5ec8: 310a movi r1, 10 + 5eca: 6c1f mov r0, r7 + 5ecc: e3ffeccc bsr 0x3864 // 3864 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5ed0: 7400 zextb r0, r0 + 5ed2: 6180 addu r6, r0 + 5ed4: 8660 ld.b r3, (r6, 0x0) + 5ed6: 694c and r5, r3 + 5ed8: 9840 ld.w r2, (r14, 0x0) + 5eda: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5edc: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5ede: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5ee0: a47a st.b r3, (r4, 0x1a) +} + 5ee2: 1403 addi r14, r14, 12 + 5ee4: 1494 pop r4-r7, r15 + 5ee6: 0000 bkpt + 5ee8: 000088e6 .long 0x000088e6 + 5eec: 200004b4 .long 0x200004b4 + +Disassembly of section .text.Set_Temp_Difference: + +00005ef0 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 5ef0: 1057 lrw r2, 0x200004b4 // 5f4c + HT1621.show_cache[10] &= 0x01; + 5ef2: 3101 movi r1, 1 + 5ef4: 8276 ld.b r3, (r2, 0x16) + 5ef6: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 5ef8: 3ba1 bseti r3, 1 + 5efa: 3ba2 bseti r3, 2 + 5efc: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 5efe: 330d movi r3, 13 + 5f00: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 5f02: 827f ld.b r3, (r2, 0x1f) + 5f04: 68c4 and r3, r1 + 5f06: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 5f08: 3300 movi r3, 0 + 5f0a: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 5f0c: 827d ld.b r3, (r2, 0x1d) + 5f0e: 68c4 and r3, r1 + 5f10: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 5f12: 3300 movi r3, 0 + 5f14: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 5f16: 827b ld.b r3, (r2, 0x1b) + 5f18: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 5f1a: 3300 movi r3, 0 + 5f1c: 2b08 subi r3, 9 + 5f1e: 60c0 addu r3, r0 + 5f20: 74cc zextb r3, r3 + 5f22: 3b09 cmphsi r3, 10 + 5f24: 0c08 bf 0x5f34 // 5f34 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 5f26: 3808 cmphsi r0, 9 + 5f28: 0810 bt 0x5f48 // 5f48 + tmp_quantile = 9 - diff; + 5f2a: 3309 movi r3, 9 + 5f2c: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 5f2e: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 5f30: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 5f32: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f34: 1007 lrw r0, 0x88e6 // 5f50 + 5f36: 60c0 addu r3, r0 + 5f38: 8360 ld.b r3, (r3, 0x0) + 5f3a: 4b04 lsri r0, r3, 4 + 5f3c: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f3e: 300f movi r0, 15 + 5f40: 68c0 and r3, r0 + 5f42: 6c4c or r1, r3 + 5f44: a23b st.b r1, (r2, 0x1b) +} + 5f46: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 5f48: 3300 movi r3, 0 + 5f4a: 07f5 br 0x5f34 // 5f34 + 5f4c: 200004b4 .long 0x200004b4 + 5f50: 000088e6 .long 0x000088e6 + +Disassembly of section .text.HT1621_Refresh_Task: + +00005f54 : + + +void HT1621_Refresh_Task(void){ + 5f54: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 5f56: 109e lrw r4, 0x200000b8 // 5fcc + 5f58: 10be lrw r5, 0x200004b4 // 5fd0 + 5f5a: 9460 ld.w r3, (r4, 0x0) + 5f5c: 954c ld.w r2, (r5, 0x30) + 5f5e: 60ca subu r3, r2 + 5f60: 105d lrw r2, 0x1f3 // 5fd4 + 5f62: 64c8 cmphs r2, r3 + 5f64: 0806 bt 0x5f70 // 5f70 + HT1621.Refresh_timing = HT1621_Refresh_time; + 5f66: 33fa movi r3, 250 + 5f68: 4361 lsli r3, r3, 1 + 5f6a: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 5f6c: e3fffbf8 bsr 0x575c // 575c +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 5f70: 107a lrw r3, 0x200004d4 // 5fd8 + 5f72: 8344 ld.b r2, (r3, 0x4) + 5f74: 3a41 cmpnei r2, 1 + 5f76: 0824 bt 0x5fbe // 5fbe + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 5f78: 952e ld.w r1, (r5, 0x38) + 5f7a: 9440 ld.w r2, (r4, 0x0) + 5f7c: 6086 subu r2, r1 + 5f7e: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 5f80: 6484 cmphs r1, r2 + 5f82: 0808 bt 0x5f92 // 5f92 + HT1621.buz_tick = SysTick_1ms; + 5f84: 9440 ld.w r2, (r4, 0x0) + 5f86: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 5f88: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 5f8a: 3200 movi r2, 0 + 5f8c: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 5f8e: e3fffb2d bsr 0x55e8 // 55e8 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 5f92: 1053 lrw r2, 0x200004f4 // 5fdc + 5f94: 8202 ld.b r0, (r2, 0x2) + 5f96: 1033 lrw r1, 0x20000130 // 5fe0 + 5f98: 4079 lsli r3, r0, 25 + 5f9a: 81ba ld.b r5, (r1, 0x1a) + 5f9c: 4b7d lsri r3, r3, 29 + 5f9e: 64d6 cmpne r5, r3 + 5fa0: 0c0e bf 0x5fbc // 5fbc + TempCtrl.BackLightTick = SysTick_1ms; + 5fa2: 9460 ld.w r3, (r4, 0x0) + 5fa4: 4b88 lsri r4, r3, 8 + 5fa6: a270 st.b r3, (r2, 0x10) + 5fa8: a291 st.b r4, (r2, 0x11) + 5faa: 4b90 lsri r4, r3, 16 + 5fac: 4b78 lsri r3, r3, 24 + 5fae: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5fb0: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 5fb2: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5fb4: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 5fb6: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5fb8: e3fffec8 bsr 0x5d48 // 5d48 + } + +} + 5fbc: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 5fbe: 3a42 cmpnei r2, 2 + 5fc0: 0be9 bt 0x5f92 // 5f92 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 5fc2: 952e ld.w r1, (r5, 0x38) + 5fc4: 9440 ld.w r2, (r4, 0x0) + 5fc6: 6086 subu r2, r1 + 5fc8: 1023 lrw r1, 0x1f3 // 5fd4 + 5fca: 07db br 0x5f80 // 5f80 + 5fcc: 200000b8 .long 0x200000b8 + 5fd0: 200004b4 .long 0x200004b4 + 5fd4: 000001f3 .long 0x000001f3 + 5fd8: 200004d4 .long 0x200004d4 + 5fdc: 200004f4 .long 0x200004f4 + 5fe0: 20000130 .long 0x20000130 + +Disassembly of section .text.TemCtrl_Init: + +00005fe4 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 5fe4: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 5fe6: 1291 lrw r4, 0x200004f4 // 6128 + 5fe8: 3229 movi r2, 41 + 5fea: 3100 movi r1, 0 + 5fec: 6c13 mov r0, r4 + 5fee: e3ffdced bsr 0x19c8 // 19c8 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 5ff2: 126f lrw r3, 0x200000ac // 612c + 5ff4: 9360 ld.w r3, (r3, 0x0) + 5ff6: 3b80 bclri r3, 0 + 5ff8: 3b40 cmpnei r3, 0 + 5ffa: 0c90 bf 0x611a // 611a + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 5ffc: 122d lrw r1, 0x8c8a // 6130 + 5ffe: 3000 movi r0, 0 + 6000: e3ffeda2 bsr 0x3b44 // 3b44 + + if(((Sav_Temp & 0xFF) == 0x00) || ((Sav_Temp & 0xFF) == 0x01)) //读取的温控开关机状态合法 + 6004: 126c lrw r3, 0x200000a8 // 6134 + 6006: 30ff movi r0, 255 + 6008: 9320 ld.w r1, (r3, 0x0) + 600a: 6840 and r1, r0 + 600c: 3940 cmpnei r1, 0 + 600e: 0c05 bf 0x6018 // 6018 + 6010: 9340 ld.w r2, (r3, 0x0) + 6012: 6880 and r2, r0 + 6014: 3a41 cmpnei r2, 1 + 6016: 0875 bt 0x6100 // 6100 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 6018: 9340 ld.w r2, (r3, 0x0) + 601a: 4227 lsli r1, r2, 7 + 601c: 307f movi r0, 127 + 601e: 8442 ld.b r2, (r4, 0x2) + 6020: 6880 and r2, r0 + 6022: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6024: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) || \ + 6026: 9340 ld.w r2, (r3, 0x0) + 6028: 4a48 lsri r2, r2, 8 + 602a: 30ff movi r0, 255 + 602c: 6880 and r2, r0 + 602e: 3a40 cmpnei r2, 0 + 6030: 0c10 bf 0x6050 // 6050 + 6032: 9340 ld.w r2, (r3, 0x0) + 6034: 4a48 lsri r2, r2, 8 + 6036: 6880 and r2, r0 + 6038: 3a42 cmpnei r2, 2 + 603a: 0c0b bf 0x6050 // 6050 + (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 603c: 9320 ld.w r1, (r3, 0x0) + 603e: 4928 lsri r1, r1, 8 + 6040: 6840 and r1, r0 + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) || \ + 6042: 3944 cmpnei r1, 4 + 6044: 0c06 bf 0x6050 // 6050 + (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 6046: 9340 ld.w r2, (r3, 0x0) + 6048: 4a48 lsri r2, r2, 8 + 604a: 6880 and r2, r0 + 604c: 3a46 cmpnei r2, 6 + 604e: 085d bt 0x6108 // 6108 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 6050: 9340 ld.w r2, (r3, 0x0) + 6052: 3107 movi r1, 7 + 6054: 4a48 lsri r2, r2, 8 + 6056: 6884 and r2, r1 + 6058: 3070 movi r0, 112 + 605a: 8422 ld.b r1, (r4, 0x2) + 605c: 4244 lsli r2, r2, 4 + 605e: 6841 andn r1, r0 + 6060: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6062: a442 st.b r2, (r4, 0x2) + } + + if(((Sav_Temp >> 16) & 0xFF) <= 0x03) //读取的温控风速状态合法 + 6064: 9340 ld.w r2, (r3, 0x0) + 6066: 4a50 lsri r2, r2, 16 + 6068: 7488 zextb r2, r2 + 606a: 3a03 cmphsi r2, 4 + 606c: 0852 bt 0x6110 // 6110 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 606e: 9340 ld.w r2, (r3, 0x0) + 6070: 3107 movi r1, 7 + 6072: 4a50 lsri r2, r2, 16 + 6074: 6884 and r2, r1 + 6076: 300e movi r0, 14 + 6078: 8422 ld.b r1, (r4, 0x2) + 607a: 4241 lsli r2, r2, 1 + 607c: 6841 andn r1, r0 + 607e: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 6080: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 6082: 9340 ld.w r2, (r3, 0x0) + 6084: 4a58 lsri r2, r2, 24 + 6086: 3a0f cmphsi r2, 16 + 6088: 0c05 bf 0x6092 // 6092 + 608a: 9340 ld.w r2, (r3, 0x0) + 608c: 4a58 lsri r2, r2, 24 + 608e: 3a1f cmphsi r2, 32 + 6090: 0c05 bf 0x609a // 609a + 6092: 9340 ld.w r2, (r3, 0x0) + 6094: 4a58 lsri r2, r2, 24 + 6096: 3a40 cmpnei r2, 0 + 6098: 0846 bt 0x6124 // 6124 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 609a: 9360 ld.w r3, (r3, 0x0) + 609c: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 609e: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 60a0: e3fff404 bsr 0x48a8 // 48a8 + 60a4: 1165 lrw r3, 0x20000434 // 6138 + 60a6: 8362 ld.b r3, (r3, 0x2) + 60a8: 320a movi r2, 10 + 60aa: 7cc8 mult r3, r2 + 60ac: 2b54 subi r3, 85 + 60ae: 600c addu r0, r3 + 60b0: 7401 zexth r0, r0 + 60b2: 4868 lsri r3, r0, 8 + 60b4: a469 st.b r3, (r4, 0x9) + 60b6: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 60b8: 310a movi r1, 10 + 60ba: e3ffebb1 bsr 0x381c // 381c <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 60be: 3301 movi r3, 1 + 60c0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 60c2: 3300 movi r3, 0 + 60c4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 60c6: 3200 movi r2, 0 + 60c8: 107d lrw r3, 0x2000005c // 613c + 60ca: 9360 ld.w r3, (r3, 0x0) + 60cc: 23ff addi r3, 256 + 60ce: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 60d0: 8442 ld.b r2, (r4, 0x2) + 60d2: 4239 lsli r1, r2, 25 + 60d4: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 60d6: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 60d8: 4128 lsli r1, r1, 8 + 60da: 9300 ld.w r0, (r3, 0x0) + 60dc: 6c40 or r1, r0 + 60de: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 60e0: 423c lsli r1, r2, 28 + 60e2: 493d lsri r1, r1, 29 + 60e4: 9300 ld.w r0, (r3, 0x0) + 60e6: 4130 lsli r1, r1, 16 + 60e8: 6c40 or r1, r0 + 60ea: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 60ec: 8421 ld.b r1, (r4, 0x1) + 60ee: 9300 ld.w r0, (r3, 0x0) + 60f0: 4138 lsli r1, r1, 24 + 60f2: 6c40 or r1, r0 + 60f4: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 60f6: 9320 ld.w r1, (r3, 0x0) + 60f8: 4a47 lsri r2, r2, 7 + 60fa: 6c84 or r2, r1 + 60fc: b340 st.w r2, (r3, 0x0) +} + 60fe: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6100: 8442 ld.b r2, (r4, 0x2) + 6102: 317f movi r1, 127 + 6104: 6884 and r2, r1 + 6106: 078f br 0x6024 // 6024 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6108: 8442 ld.b r2, (r4, 0x2) + 610a: 3170 movi r1, 112 + 610c: 6885 andn r2, r1 + 610e: 07aa br 0x6062 // 6062 + TempCtrl.TemState_Now.fan = FAN_MID; + 6110: 8442 ld.b r2, (r4, 0x2) + 6112: 310e movi r1, 14 + 6114: 6885 andn r2, r1 + 6116: 3aa2 bseti r2, 2 + 6118: 07b4 br 0x6080 // 6080 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 611a: 8462 ld.b r3, (r4, 0x2) + 611c: 320e movi r2, 14 + 611e: 68c9 andn r3, r2 + 6120: 3ba2 bseti r3, 2 + 6122: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 6124: 3318 movi r3, 24 + 6126: 07bc br 0x609e // 609e + 6128: 200004f4 .long 0x200004f4 + 612c: 200000ac .long 0x200000ac + 6130: 00008c8a .long 0x00008c8a + 6134: 200000a8 .long 0x200000a8 + 6138: 20000434 .long 0x20000434 + 613c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00006140 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 6140: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6142: 1031 lrw r1, 0x200004f4 // 6184 + 6144: 8162 ld.b r3, (r1, 0x2) + 6146: 748e sextb r2, r3 + 6148: 3adf btsti r2, 31 + 614a: 0c14 bf 0x6172 // 6172 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 614c: 4359 lsli r2, r3, 25 + 614e: 4a5d lsri r2, r2, 29 + 6150: 3a42 cmpnei r2, 2 + 6152: 0c11 bf 0x6174 // 6174 + 6154: 3a44 cmpnei r2, 4 + 6156: 0c13 bf 0x617c // 617c + 6158: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 615a: 3270 movi r2, 112 + 615c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 615e: 0802 bt 0x6162 // 6162 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6160: 3ba5 bseti r3, 5 +// break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6162: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 6164: 8142 ld.b r2, (r1, 0x2) + 6166: 4259 lsli r2, r2, 25 + 6168: 4a5d lsri r2, r2, 29 + 616a: 1028 lrw r1, 0x8ca3 // 6188 + 616c: 3000 movi r0, 0 + 616e: e3ffeceb bsr 0x3b44 // 3b44 +} + 6172: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 6174: 3270 movi r2, 112 + 6176: 68c9 andn r3, r2 + 6178: 3ba6 bseti r3, 6 + 617a: 07f4 br 0x6162 // 6162 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 617c: 3270 movi r2, 112 + 617e: 68c9 andn r3, r2 + 6180: 07f1 br 0x6162 // 6162 + 6182: 0000 bkpt + 6184: 200004f4 .long 0x200004f4 + 6188: 00008ca3 .long 0x00008ca3 + +Disassembly of section .text.TemCtrl_Fan_Set: + +0000618c : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 618c: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 618e: 1072 lrw r3, 0x200004f4 // 61d4 + 6190: 8342 ld.b r2, (r3, 0x2) + 6192: 744a sextb r1, r2 + 6194: 39df btsti r1, 31 + 6196: 0c15 bf 0x61c0 // 61c0 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6198: 421c lsli r0, r2, 28 + 619a: 481d lsri r0, r0, 29 + 619c: 3803 cmphsi r0, 4 + 619e: 0817 bt 0x61cc // 61cc + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 61a0: 8342 ld.b r2, (r3, 0x2) + 61a2: 310e movi r1, 14 + 61a4: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 61a6: e3ffd5ab bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 61aa: 020f .short 0x020f + 61ac: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 61ae: 3aa2 bseti r2, 2 +// break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 61b0: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 61b2: 8342 ld.b r2, (r3, 0x2) + 61b4: 425c lsli r2, r2, 28 + 61b6: 4a5d lsri r2, r2, 29 + 61b8: 1028 lrw r1, 0x8cac // 61d8 + 61ba: 3000 movi r0, 0 + 61bc: e3ffecc4 bsr 0x3b44 // 3b44 +} + 61c0: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 61c2: 3aa1 bseti r2, 1 + 61c4: 3aa2 bseti r2, 2 + 61c6: 07f5 br 0x61b0 // 61b0 + TempCtrl.TemState_Now.fan = FAN_LOW; + 61c8: 3aa1 bseti r2, 1 + 61ca: 07f3 br 0x61b0 // 61b0 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 61cc: 310e movi r1, 14 + 61ce: 6885 andn r2, r1 + 61d0: 07f0 br 0x61b0 // 61b0 + 61d2: 0000 bkpt + 61d4: 200004f4 .long 0x200004f4 + 61d8: 00008cac .long 0x00008cac + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +000061dc : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 61dc: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 61de: 106a lrw r3, 0x200004f4 // 6204 + 61e0: 8342 ld.b r2, (r3, 0x2) + 61e2: 748a sextb r2, r2 + 61e4: 3adf btsti r2, 31 + 61e6: 0c0b bf 0x61fc // 61fc + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 61e8: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 61ea: 3a10 cmphsi r2, 17 + 61ec: 0c09 bf 0x61fe // 61fe + { + TemSet--; //超过最低温度,就减 + 61ee: 2a00 subi r2, 1 + 61f0: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 61f2: 1026 lrw r1, 0x8cb3 // 6208 + 61f4: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 61f6: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 61f8: e3ffeca6 bsr 0x3b44 // 3b44 +} + 61fc: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 61fe: 3210 movi r2, 16 + 6200: 07f9 br 0x61f2 // 61f2 + 6202: 0000 bkpt + 6204: 200004f4 .long 0x200004f4 + 6208: 00008cb3 .long 0x00008cb3 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +0000620c : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 620c: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 620e: 106a lrw r3, 0x200004f4 // 6234 + 6210: 8342 ld.b r2, (r3, 0x2) + 6212: 748a sextb r2, r2 + 6214: 3adf btsti r2, 31 + 6216: 0c0b bf 0x622c // 622c + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6218: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 621a: 3a1f cmphsi r2, 32 + 621c: 0809 bt 0x622e // 622e + { + TemSet++; + 621e: 2200 addi r2, 1 + 6220: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6222: 1026 lrw r1, 0x8cbc // 6238 + 6224: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 6226: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6228: e3ffec8e bsr 0x3b44 // 3b44 +} + 622c: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 622e: 3220 movi r2, 32 + 6230: 07f9 br 0x6222 // 6222 + 6232: 0000 bkpt + 6234: 200004f4 .long 0x200004f4 + 6238: 00008cbc .long 0x00008cbc + +Disassembly of section .text.TemCtrl_OnOff_Set: + +0000623c : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 623c: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 623e: 104b lrw r2, 0x200004f4 // 6268 + 6240: 8262 ld.b r3, (r2, 0x2) + 6242: 4b27 lsri r1, r3, 7 + 6244: 3940 cmpnei r1, 0 + 6246: 0c0d bf 0x6260 // 6260 + 6248: 3941 cmpnei r1, 1 + 624a: 080b bt 0x6260 // 6260 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 624c: 317f movi r1, 127 + 624e: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6250: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 6252: 8242 ld.b r2, (r2, 0x2) + 6254: 4a47 lsri r2, r2, 7 + 6256: 1026 lrw r1, 0x8cbc // 626c + 6258: 3000 movi r0, 0 + 625a: e3ffec75 bsr 0x3b44 // 3b44 +} + 625e: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6260: 3100 movi r1, 0 + 6262: 297f subi r1, 128 + 6264: 6cc4 or r3, r1 + 6266: 07f5 br 0x6250 // 6250 + 6268: 200004f4 .long 0x200004f4 + 626c: 00008cbc .long 0x00008cbc + +Disassembly of section .text.Tem_Valve_Ctrl: + +00006270 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 6270: 14d1 push r4, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 6272: 1130 lrw r1, 0x200004f4 // 6330 + 6274: 8100 ld.b r0, (r1, 0x0) + 6276: 3840 cmpnei r0, 0 + 6278: 0802 bt 0x627c // 627c + 627a: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 627c: 8141 ld.b r2, (r1, 0x1) + 627e: 3a40 cmpnei r2, 0 + 6280: 0802 bt 0x6284 // 6284 + 6282: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 6284: 8162 ld.b r3, (r1, 0x2) + 6286: 4b87 lsri r4, r3, 7 + 6288: 3c40 cmpnei r4, 0 + 628a: 0c0f bf 0x62a8 // 62a8 + 628c: 3c41 cmpnei r4, 1 + 628e: 0850 bt 0x632e // 632e + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 6290: 4399 lsli r4, r3, 25 + 6292: 4c9d lsri r4, r4, 29 + 6294: 3c42 cmpnei r4, 2 + 6296: 0c26 bf 0x62e2 // 62e2 + 6298: 3c44 cmpnei r4, 4 + 629a: 0c36 bf 0x6306 // 6306 + 629c: 3c40 cmpnei r4, 0 + 629e: 0848 bt 0x632e // 632e + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 62a0: 5a83 subi r4, r2, 1 + 62a2: 6501 cmplt r0, r4 + 62a4: 0c05 bf 0x62ae // 62ae + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 62a6: 8162 ld.b r3, (r1, 0x2) +// } + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 62a8: 3b80 bclri r3, 0 + 62aa: a162 st.b r3, (r1, 0x2) + 62ac: 0419 br 0x62de // 62de + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 62ae: 2200 addi r2, 1 + 62b0: 6409 cmplt r2, r0 + 62b2: 0c3e bf 0x632e // 632e + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 62b4: 3ba0 bseti r3, 0 + 62b6: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 62b8: 107f lrw r3, 0x20000434 // 6334 + 62ba: 8361 ld.b r3, (r3, 0x1) + 62bc: 3b41 cmpnei r3, 1 + 62be: 080a bt 0x62d2 // 62d2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 62c0: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 62c2: 3000 movi r0, 0 + 62c4: e0000768 bsr 0x7194 // 7194 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 62c8: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 62ca: 3001 movi r0, 1 + 62cc: e0000764 bsr 0x7194 // 7194 + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 62d0: 042f br 0x632e // 632e + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 62d2: 3b40 cmpnei r3, 0 + 62d4: 0803 bt 0x62da // 62da + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 62d6: 3101 movi r1, 1 + 62d8: 07f5 br 0x62c2 // 62c2 + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 62da: 3b42 cmpnei r3, 2 + 62dc: 0829 bt 0x632e // 632e + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 62de: 3102 movi r1, 2 + 62e0: 040e br 0x62fc // 62fc + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 62e2: 5a82 addi r4, r2, 1 + 62e4: 6411 cmplt r4, r0 + 62e6: 0be0 bt 0x62a6 // 62a6 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 62e8: 2a00 subi r2, 1 + 62ea: 6481 cmplt r0, r2 + 62ec: 0c21 bf 0x632e // 632e + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 62ee: 3ba0 bseti r3, 0 + 62f0: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 62f2: 1071 lrw r3, 0x20000434 // 6334 + 62f4: 8361 ld.b r3, (r3, 0x1) + 62f6: 3b41 cmpnei r3, 1 + 62f8: 0bed bt 0x62d2 // 62d2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 62fa: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 62fc: 3000 movi r0, 0 + 62fe: e000074b bsr 0x7194 // 7194 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6302: 3102 movi r1, 2 + 6304: 07e3 br 0x62ca // 62ca + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6306: 3b80 bclri r3, 0 + 6308: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 630a: 3000 movi r0, 0 + 630c: 3102 movi r1, 2 + 630e: e0000743 bsr 0x7194 // 7194 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6312: 3102 movi r1, 2 + 6314: 3001 movi r0, 1 + 6316: e000073f bsr 0x7194 // 7194 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 631a: 1067 lrw r3, 0x20000434 // 6334 + 631c: 8361 ld.b r3, (r3, 0x1) + 631e: 3b42 cmpnei r3, 2 + 6320: 0807 bt 0x632e // 632e + Relay_Stop(); + 6322: e000072b bsr 0x7178 // 7178 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 6326: 1025 lrw r1, 0x8cca // 6338 + 6328: 3000 movi r0, 0 + 632a: e3ffec0d bsr 0x3b44 // 3b44 +} + 632e: 1491 pop r4, r15 + 6330: 200004f4 .long 0x200004f4 + 6334: 20000434 .long 0x20000434 + 6338: 00008cca .long 0x00008cca + +Disassembly of section .text.TemCtrl_Pro: + +0000633c : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 633c: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 633e: 1218 lrw r0, 0x200000b8 // 649c + 6340: 1238 lrw r1, 0x200001c0 // 64a0 + 6342: 9040 ld.w r2, (r0, 0x0) + 6344: 9160 ld.w r3, (r1, 0x0) + 6346: 608e subu r2, r3 + 6348: 33fa movi r3, 250 + 634a: 4362 lsli r3, r3, 2 + 634c: 648c cmphs r3, r2 + 634e: 083b bt 0x63c4 // 63c4 + { + tick = SysTick_1ms; + 6350: 9060 ld.w r3, (r0, 0x0) + 6352: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6354: 360a movi r6, 10 + 6356: 12b4 lrw r5, 0x20000434 // 64a4 + 6358: e3fff2a8 bsr 0x48a8 // 48a8 + 635c: 8542 ld.b r2, (r5, 0x2) + 635e: 7c98 mult r2, r6 + 6360: 2a54 subi r2, 85 + 6362: 6080 addu r2, r0 + 6364: 7589 zexth r6, r2 + 6366: 1291 lrw r4, 0x200004f4 // 64a8 + 6368: 7498 zextb r2, r6 + 636a: 4e68 lsri r3, r6, 8 + 636c: a448 st.b r2, (r4, 0x8) + 636e: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 6370: a44c st.b r2, (r4, 0xc) + 6372: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6374: 310a movi r1, 10 + 6376: 6c1b mov r0, r6 + 6378: e3ffea52 bsr 0x381c // 381c <__udivsi3> + 637c: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_Debug_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 637e: 6c9b mov r2, r6 + 6380: 122b lrw r1, 0x8cd3 // 64ac + 6382: 3002 movi r0, 2 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6384: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_Debug_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6386: e3ffebdf bsr 0x3b44 // 3b44 + + Tem_Valve_Ctrl(); + 638a: e3ffff73 bsr 0x6270 // 6270 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 638e: 8442 ld.b r2, (r4, 0x2) + 6390: 74c8 zextb r3, r2 + 6392: 3171 movi r1, 113 + 6394: 6c0f mov r0, r3 + 6396: 6805 andn r0, r1 + 6398: 3180 movi r1, 128 + 639a: 6442 cmpne r0, r1 + 639c: 083d bt 0x6416 // 6416 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 639e: 3270 movi r2, 112 + 63a0: 68c8 and r3, r2 + 63a2: 3b40 cmpnei r3, 0 + 63a4: 0827 bt 0x63f2 // 63f2 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 63a6: 8461 ld.b r3, (r4, 0x1) + 63a8: 8440 ld.b r2, (r4, 0x0) + 63aa: 5b27 subi r1, r3, 2 + 63ac: 6449 cmplt r2, r1 + 63ae: 0c0c bf 0x63c6 // 63c6 + { + Relay_Stop(); //低风速 + 63b0: e00006e4 bsr 0x7178 // 7178 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 63b4: 117f lrw r3, 0x200004b4 // 64b0 + 63b6: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 63b8: 8402 ld.b r0, (r4, 0x2) + 63ba: 401c lsli r0, r0, 28 + 63bc: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 63be: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 63c0: e3fffbe6 bsr 0x5b8c // 5b8c + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 63c4: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 63c6: 5b23 subi r1, r3, 1 + 63c8: 644a cmpne r2, r1 + 63ca: 0804 bt 0x63d2 // 63d2 + Relay_Low(); //低风速 + 63cc: e00006c8 bsr 0x715c // 715c + 63d0: 07f2 br 0x63b4 // 63b4 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 63d2: 5b22 addi r1, r3, 1 + 63d4: 644a cmpne r2, r1 + 63d6: 0806 bt 0x63e2 // 63e2 + Relay_Mid(); //中风速 + 63d8: e00006b4 bsr 0x7140 // 7140 + HT1621.wind_velocity = 1; + 63dc: 1175 lrw r3, 0x200004b4 // 64b0 + 63de: 3201 movi r2, 1 + 63e0: 07ec br 0x63b8 // 63b8 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 63e2: 2301 addi r3, 2 + 63e4: 648d cmplt r3, r2 + 63e6: 0fef bf 0x63c4 // 63c4 + Relay_High(); //高风速 + 63e8: e000069e bsr 0x7124 // 7124 + HT1621.wind_velocity = 2; + 63ec: 1171 lrw r3, 0x200004b4 // 64b0 + 63ee: 3202 movi r2, 2 + 63f0: 07e4 br 0x63b8 // 63b8 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 63f2: 3220 movi r2, 32 + 63f4: 648e cmpne r3, r2 + 63f6: 0be7 bt 0x63c4 // 63c4 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 63f8: 8461 ld.b r3, (r4, 0x1) + 63fa: 8440 ld.b r2, (r4, 0x0) + 63fc: 5b27 subi r1, r3, 2 + 63fe: 6449 cmplt r2, r1 + 6400: 0bf4 bt 0x63e8 // 63e8 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6402: 5b23 subi r1, r3, 1 + 6404: 644a cmpne r2, r1 + 6406: 0fe9 bf 0x63d8 // 63d8 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6408: 5b22 addi r1, r3, 1 + 640a: 644a cmpne r2, r1 + 640c: 0fe0 bf 0x63cc // 63cc + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 640e: 2301 addi r3, 2 + 6410: 648d cmplt r3, r2 + 6412: 0fd9 bf 0x63c4 // 63c4 + 6414: 07ce br 0x63b0 // 63b0 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 6416: 8521 ld.b r1, (r5, 0x1) + 6418: 3942 cmpnei r1, 2 + 641a: 744e sextb r1, r3 + 641c: 083a bt 0x6490 // 6490 + 641e: 39df btsti r1, 31 + 6420: 0c38 bf 0x6490 // 6490 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 6422: 310e movi r1, 14 + 6424: 684c and r1, r3 + 6426: 3940 cmpnei r1, 0 + 6428: 0fce bf 0x63c4 // 63c4 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 642a: 3170 movi r1, 112 + 642c: 68c4 and r3, r1 + 642e: 3b40 cmpnei r3, 0 + 6430: 0819 bt 0x6462 // 6462 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6432: 8461 ld.b r3, (r4, 0x1) + 6434: 8420 ld.b r1, (r4, 0x0) + 6436: 5b07 subi r0, r3, 2 + 6438: 6405 cmplt r1, r0 + 643a: 0bbb bt 0x63b0 // 63b0 + switch(TempCtrl.TemState_Now.fan) + 643c: 425c lsli r2, r2, 28 + 643e: 4a5d lsri r2, r2, 29 + 6440: 3a42 cmpnei r2, 2 + 6442: 0c09 bf 0x6454 // 6454 + 6444: 3a43 cmpnei r2, 3 + 6446: 0c0b bf 0x645c // 645c + 6448: 3a41 cmpnei r2, 1 + 644a: 0bbd bt 0x63c4 // 63c4 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 644c: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 644e: 64c6 cmpne r1, r3 + 6450: 0bba bt 0x63c4 // 63c4 + 6452: 07bd br 0x63cc // 63cc + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6454: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6456: 64c6 cmpne r1, r3 + 6458: 0bb6 bt 0x63c4 // 63c4 + 645a: 07bf br 0x63d8 // 63d8 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 645c: 2301 addi r3, 2 + 645e: 644d cmplt r3, r1 + 6460: 07c3 br 0x63e6 // 63e6 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 6462: 3120 movi r1, 32 + 6464: 644e cmpne r3, r1 + 6466: 0baf bt 0x63c4 // 63c4 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6468: 8461 ld.b r3, (r4, 0x1) + 646a: 8420 ld.b r1, (r4, 0x0) + 646c: 5b06 addi r0, r3, 2 + 646e: 6441 cmplt r0, r1 + 6470: 0ba0 bt 0x63b0 // 63b0 + switch(TempCtrl.TemState_Now.fan) + 6472: 425c lsli r2, r2, 28 + 6474: 4a5d lsri r2, r2, 29 + 6476: 3a42 cmpnei r2, 2 + 6478: 0c07 bf 0x6486 // 6486 + 647a: 3a43 cmpnei r2, 3 + 647c: 0c07 bf 0x648a // 648a + 647e: 3a41 cmpnei r2, 1 + 6480: 0ba2 bt 0x63c4 // 63c4 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6482: 2300 addi r3, 1 + 6484: 07e5 br 0x644e // 644e + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6486: 2b00 subi r3, 1 + 6488: 07e7 br 0x6456 // 6456 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 648a: 2b01 subi r3, 2 + 648c: 64c5 cmplt r1, r3 + 648e: 07ac br 0x63e6 // 63e6 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6490: 39df btsti r1, 31 + 6492: 0b99 bt 0x63c4 // 63c4 + Relay_Stop(); //风速停 + 6494: e0000672 bsr 0x7178 // 7178 + 6498: 0796 br 0x63c4 // 63c4 + 649a: 0000 bkpt + 649c: 200000b8 .long 0x200000b8 + 64a0: 200001c0 .long 0x200001c0 + 64a4: 20000434 .long 0x20000434 + 64a8: 200004f4 .long 0x200004f4 + 64ac: 00008cd3 .long 0x00008cd3 + 64b0: 200004b4 .long 0x200004b4 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +000064b4 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 64b4: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 64b6: 1133 lrw r1, 0x8cfb // 6580 + 64b8: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 64ba: 1193 lrw r4, 0x2000051d // 6584 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 64bc: e3ffeb44 bsr 0x3b44 // 3b44 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 64c0: 8460 ld.b r3, (r4, 0x0) + 64c2: 3b41 cmpnei r3, 1 + 64c4: 11b1 lrw r5, 0x200000b8 // 6588 + 64c6: 083e bt 0x6542 // 6542 + { + Debug_Inf.Tick = SysTick_1ms; + 64c8: 9560 ld.w r3, (r5, 0x0) + 64ca: 320a movi r2, 10 + 64cc: 6090 addu r2, r4 + 64ce: 4b28 lsri r1, r3, 8 + 64d0: a260 st.b r3, (r2, 0x0) + 64d2: a221 st.b r1, (r2, 0x1) + 64d4: 4b30 lsri r1, r3, 16 + 64d6: 4b78 lsri r3, r3, 24 + 64d8: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page < PAGE8ID) + 64da: 8462 ld.b r3, (r4, 0x2) + 64dc: 3b07 cmphsi r3, 8 + Debug_Inf.Tick = SysTick_1ms; + 64de: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page < PAGE8ID) + 64e0: 0803 bt 0x64e6 // 64e6 + { + Debug_Inf.Page++; + 64e2: 2300 addi r3, 1 + 64e4: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 64e6: e3fff8f3 bsr 0x56cc // 56cc + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 64ea: 8462 ld.b r3, (r4, 0x2) + 64ec: 3b42 cmpnei r3, 2 + 64ee: 0805 bt 0x64f8 // 64f8 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 64f0: 8405 ld.b r0, (r4, 0x5) + 64f2: e3fffcff bsr 0x5ef0 // 5ef0 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 64f6: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 64f8: 3b41 cmpnei r3, 1 + 64fa: 0806 bt 0x6506 // 6506 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 64fc: 8424 ld.b r1, (r4, 0x4) + 64fe: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6500: e3fffcaa bsr 0x5e54 // 5e54 + 6504: 07f9 br 0x64f6 // 64f6 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 6506: 3b43 cmpnei r3, 3 + 6508: 0804 bt 0x6510 // 6510 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 650a: 8426 ld.b r1, (r4, 0x6) + 650c: 3003 movi r0, 3 + 650e: 07f9 br 0x6500 // 6500 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 6510: 3b44 cmpnei r3, 4 + 6512: 0804 bt 0x651a // 651a + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6514: 8427 ld.b r1, (r4, 0x7) + 6516: 3004 movi r0, 4 + 6518: 07f4 br 0x6500 // 6500 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 651a: 3b45 cmpnei r3, 5 + 651c: 0804 bt 0x6524 // 6524 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 651e: 8423 ld.b r1, (r4, 0x3) + 6520: 3005 movi r0, 5 + 6522: 07ef br 0x6500 // 6500 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 6524: 3b46 cmpnei r3, 6 + 6526: 0804 bt 0x652e // 652e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6528: 8428 ld.b r1, (r4, 0x8) + 652a: 3006 movi r0, 6 + 652c: 07ea br 0x6500 // 6500 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 652e: 3b47 cmpnei r3, 7 + 6530: 0804 bt 0x6538 // 6538 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6532: 8429 ld.b r1, (r4, 0x9) + 6534: 3007 movi r0, 7 + 6536: 07e5 br 0x6500 // 6500 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 6538: 3b48 cmpnei r3, 8 + 653a: 0bde bt 0x64f6 // 64f6 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 653c: 3103 movi r1, 3 + 653e: 3008 movi r0, 8 + 6540: 07e0 br 0x6500 // 6500 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 6542: 1073 lrw r3, 0x200004f4 // 658c + 6544: 8358 ld.b r2, (r3, 0x18) + 6546: 3a41 cmpnei r2, 1 + 6548: 6d0f mov r4, r3 + 654a: 0811 bt 0x656c // 656c + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 654c: 8362 ld.b r3, (r3, 0x2) + 654e: 74ce sextb r3, r3 + 6550: 3bdf btsti r3, 31 + 6552: 0c0d bf 0x656c // 656c + TemCtrl_Model_Set(); //模式切换 + 6554: e3fffdf6 bsr 0x6140 // 6140 + if(g_eeprom.backlight_en == 0x01) + 6558: 106e lrw r3, 0x20000434 // 6590 + 655a: 8364 ld.b r3, (r3, 0x4) + 655c: 3b41 cmpnei r3, 1 + 655e: 0807 bt 0x656c // 656c + Controlled_LCD_Backlight(0x01); + 6560: 3001 movi r0, 1 + 6562: e3fffbf3 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6566: 3001 movi r0, 1 + 6568: e3fffc5e bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 656c: 9560 ld.w r3, (r5, 0x0) + 656e: 4b48 lsri r2, r3, 8 + 6570: a470 st.b r3, (r4, 0x10) + 6572: a451 st.b r2, (r4, 0x11) + 6574: 4b50 lsri r2, r3, 16 + 6576: 4b78 lsri r3, r3, 24 + 6578: a452 st.b r2, (r4, 0x12) + 657a: a473 st.b r3, (r4, 0x13) +} + 657c: 07bd br 0x64f6 // 64f6 + 657e: 0000 bkpt + 6580: 00008cfb .long 0x00008cfb + 6584: 2000051d .long 0x2000051d + 6588: 200000b8 .long 0x200000b8 + 658c: 200004f4 .long 0x200004f4 + 6590: 20000434 .long 0x20000434 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +00006594 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 6594: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6596: 1133 lrw r1, 0x8d10 // 6660 + 6598: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 659a: 1193 lrw r4, 0x2000051d // 6664 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 659c: e3ffead4 bsr 0x3b44 // 3b44 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 65a0: 8460 ld.b r3, (r4, 0x0) + 65a2: 3b41 cmpnei r3, 1 + 65a4: 11b1 lrw r5, 0x200000b8 // 6668 + 65a6: 083e bt 0x6622 // 6622 + { + Debug_Inf.Tick = SysTick_1ms; + 65a8: 9560 ld.w r3, (r5, 0x0) + 65aa: 320a movi r2, 10 + 65ac: 6090 addu r2, r4 + 65ae: 4b28 lsri r1, r3, 8 + 65b0: a260 st.b r3, (r2, 0x0) + 65b2: a221 st.b r1, (r2, 0x1) + 65b4: 4b30 lsri r1, r3, 16 + 65b6: 4b78 lsri r3, r3, 24 + 65b8: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page > PAGE1ID) + 65ba: 8462 ld.b r3, (r4, 0x2) + 65bc: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 65be: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page > PAGE1ID) + 65c0: 0c03 bf 0x65c6 // 65c6 + { + Debug_Inf.Page--; + 65c2: 2b00 subi r3, 1 + 65c4: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 65c6: e3fff883 bsr 0x56cc // 56cc + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 65ca: 8462 ld.b r3, (r4, 0x2) + 65cc: 3b42 cmpnei r3, 2 + 65ce: 0805 bt 0x65d8 // 65d8 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 65d0: 8405 ld.b r0, (r4, 0x5) + 65d2: e3fffc8f bsr 0x5ef0 // 5ef0 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 65d6: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 65d8: 3b41 cmpnei r3, 1 + 65da: 0806 bt 0x65e6 // 65e6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 65dc: 8424 ld.b r1, (r4, 0x4) + 65de: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 65e0: e3fffc3a bsr 0x5e54 // 5e54 + 65e4: 07f9 br 0x65d6 // 65d6 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 65e6: 3b43 cmpnei r3, 3 + 65e8: 0804 bt 0x65f0 // 65f0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 65ea: 8426 ld.b r1, (r4, 0x6) + 65ec: 3003 movi r0, 3 + 65ee: 07f9 br 0x65e0 // 65e0 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 65f0: 3b44 cmpnei r3, 4 + 65f2: 0804 bt 0x65fa // 65fa + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 65f4: 8427 ld.b r1, (r4, 0x7) + 65f6: 3004 movi r0, 4 + 65f8: 07f4 br 0x65e0 // 65e0 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 65fa: 3b45 cmpnei r3, 5 + 65fc: 0804 bt 0x6604 // 6604 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 65fe: 8423 ld.b r1, (r4, 0x3) + 6600: 3005 movi r0, 5 + 6602: 07ef br 0x65e0 // 65e0 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 6604: 3b46 cmpnei r3, 6 + 6606: 0804 bt 0x660e // 660e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6608: 8428 ld.b r1, (r4, 0x8) + 660a: 3006 movi r0, 6 + 660c: 07ea br 0x65e0 // 65e0 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 660e: 3b47 cmpnei r3, 7 + 6610: 0804 bt 0x6618 // 6618 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6612: 8429 ld.b r1, (r4, 0x9) + 6614: 3007 movi r0, 7 + 6616: 07e5 br 0x65e0 // 65e0 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 6618: 3b48 cmpnei r3, 8 + 661a: 0bde bt 0x65d6 // 65d6 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 661c: 3103 movi r1, 3 + 661e: 3008 movi r0, 8 + 6620: 07e0 br 0x65e0 // 65e0 + if(TempCtrl.CardState == CARDIN) + 6622: 1073 lrw r3, 0x200004f4 // 666c + 6624: 8358 ld.b r2, (r3, 0x18) + 6626: 3a41 cmpnei r2, 1 + 6628: 6d0f mov r4, r3 + 662a: 0811 bt 0x664c // 664c + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 662c: 8362 ld.b r3, (r3, 0x2) + 662e: 74ce sextb r3, r3 + 6630: 3bdf btsti r3, 31 + 6632: 0c0d bf 0x664c // 664c + TemCtrl_Fan_Set(); //风速切换 + 6634: e3fffdac bsr 0x618c // 618c + if(g_eeprom.backlight_en == 0x01) + 6638: 106e lrw r3, 0x20000434 // 6670 + 663a: 8364 ld.b r3, (r3, 0x4) + 663c: 3b41 cmpnei r3, 1 + 663e: 0807 bt 0x664c // 664c + Controlled_LCD_Backlight(0x01); + 6640: 3001 movi r0, 1 + 6642: e3fffb83 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6646: 3001 movi r0, 1 + 6648: e3fffbee bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 664c: 9560 ld.w r3, (r5, 0x0) + 664e: 4b48 lsri r2, r3, 8 + 6650: a470 st.b r3, (r4, 0x10) + 6652: a451 st.b r2, (r4, 0x11) + 6654: 4b50 lsri r2, r3, 16 + 6656: 4b78 lsri r3, r3, 24 + 6658: a452 st.b r2, (r4, 0x12) + 665a: a473 st.b r3, (r4, 0x13) +} + 665c: 07bd br 0x65d6 // 65d6 + 665e: 0000 bkpt + 6660: 00008d10 .long 0x00008d10 + 6664: 2000051d .long 0x2000051d + 6668: 200000b8 .long 0x200000b8 + 666c: 200004f4 .long 0x200004f4 + 6670: 20000434 .long 0x20000434 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00006674 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 6674: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 6676: 113f lrw r1, 0x8d23 // 6770 + 6678: 3000 movi r0, 0 + 667a: e3ffea65 bsr 0x3b44 // 3b44 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 667e: 117e lrw r3, 0x2000051d // 6774 + 6680: 8340 ld.b r2, (r3, 0x0) + 6682: 3a41 cmpnei r2, 1 + 6684: 11bd lrw r5, 0x200000b8 // 6778 + 6686: 0858 bt 0x6736 // 6736 + { + Debug_Inf.Tick = SysTick_1ms; + 6688: 9540 ld.w r2, (r5, 0x0) + 668a: 310a movi r1, 10 + 668c: 604c addu r1, r3 + 668e: 4a08 lsri r0, r2, 8 + 6690: a140 st.b r2, (r1, 0x0) + 6692: a101 st.b r0, (r1, 0x1) + 6694: 4a10 lsri r0, r2, 16 + 6696: 4a58 lsri r2, r2, 24 + 6698: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 669a: 8342 ld.b r2, (r3, 0x2) + 669c: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 669e: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 66a0: 080b bt 0x66b6 // 66b6 + 66a2: 8324 ld.b r1, (r3, 0x4) + 66a4: 3901 cmphsi r1, 2 + 66a6: 0812 bt 0x66ca // 66ca + { + Debug_Inf.PipeFlag ++; + 66a8: 2100 addi r1, 1 + 66aa: 7444 zextb r1, r1 + 66ac: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 66ae: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 66b0: e3fffbd2 bsr 0x5e54 // 5e54 + 66b4: 040b br 0x66ca // 66ca + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 66b6: 3a42 cmpnei r2, 2 + 66b8: 080a bt 0x66cc // 66cc + 66ba: 8305 ld.b r0, (r3, 0x5) + 66bc: 3811 cmphsi r0, 18 + 66be: 0806 bt 0x66ca // 66ca + Debug_Inf.TempDiff++; + 66c0: 2000 addi r0, 1 + 66c2: 7400 zextb r0, r0 + 66c4: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 66c6: e3fffc15 bsr 0x5ef0 // 5ef0 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 66ca: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 66cc: 3a43 cmpnei r2, 3 + 66ce: 0806 bt 0x66da // 66da + Debug_Inf.BackLight_En = 0x01; + 66d0: 3201 movi r2, 1 + 66d2: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 66d4: 3101 movi r1, 1 + 66d6: 3003 movi r0, 3 + 66d8: 07ec br 0x66b0 // 66b0 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 66da: 3a44 cmpnei r2, 4 + 66dc: 0809 bt 0x66ee // 66ee + 66de: 8327 ld.b r1, (r3, 0x7) + 66e0: 3901 cmphsi r1, 2 + 66e2: 0bf4 bt 0x66ca // 66ca + Debug_Inf.KSens_Level++; + 66e4: 2100 addi r1, 1 + 66e6: 7444 zextb r1, r1 + 66e8: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 66ea: 3004 movi r0, 4 + 66ec: 07e2 br 0x66b0 // 66b0 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 66ee: 3a45 cmpnei r2, 5 + 66f0: 080a bt 0x6704 // 6704 + 66f2: 8323 ld.b r1, (r3, 0x3) + 66f4: 32ff movi r2, 255 + 66f6: 6486 cmpne r1, r2 + 66f8: 0fe9 bf 0x66ca // 66ca + Debug_Inf.DevAddr++; //刷新地址 + 66fa: 2100 addi r1, 1 + 66fc: 7444 zextb r1, r1 + 66fe: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6700: 3005 movi r0, 5 + 6702: 07d7 br 0x66b0 // 66b0 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 6704: 3a46 cmpnei r2, 6 + 6706: 0809 bt 0x6718 // 6718 + 6708: 8348 ld.b r2, (r3, 0x8) + 670a: 3a40 cmpnei r2, 0 + 670c: 0bdf bt 0x66ca // 66ca + Debug_Inf.TempDisplay++; + 670e: 3201 movi r2, 1 + 6710: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6712: 3101 movi r1, 1 + 6714: 3006 movi r0, 6 + 6716: 07cd br 0x66b0 // 66b0 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 6718: 3a47 cmpnei r2, 7 + 671a: 0809 bt 0x672c // 672c + 671c: 8329 ld.b r1, (r3, 0x9) + 671e: 3901 cmphsi r1, 2 + 6720: 0bd5 bt 0x66ca // 66ca + Debug_Inf.Language_Selection++; + 6722: 2100 addi r1, 1 + 6724: 7444 zextb r1, r1 + 6726: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6728: 3007 movi r0, 7 + 672a: 07c3 br 0x66b0 // 66b0 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 672c: 3a48 cmpnei r2, 8 + 672e: 0bce bt 0x66ca // 66ca + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6730: 3103 movi r1, 3 + 6732: 3008 movi r0, 8 + 6734: 07be br 0x66b0 // 66b0 + if(TempCtrl.CardState == CARDIN) + 6736: 1092 lrw r4, 0x200004f4 // 677c + 6738: 8478 ld.b r3, (r4, 0x18) + 673a: 3b41 cmpnei r3, 1 + 673c: 0811 bt 0x675e // 675e + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 673e: 8462 ld.b r3, (r4, 0x2) + 6740: 74ce sextb r3, r3 + 6742: 3bdf btsti r3, 31 + 6744: 0c0d bf 0x675e // 675e + TemCtrl_Temperature_Add(); //设置温度+ + 6746: e3fffd63 bsr 0x620c // 620c + if(g_eeprom.backlight_en == 0x01) + 674a: 106e lrw r3, 0x20000434 // 6780 + 674c: 8364 ld.b r3, (r3, 0x4) + 674e: 3b41 cmpnei r3, 1 + 6750: 0807 bt 0x675e // 675e + Controlled_LCD_Backlight(0x01); + 6752: 3001 movi r0, 1 + 6754: e3fffafa bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6758: 3001 movi r0, 1 + 675a: e3fffb65 bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 675e: 9560 ld.w r3, (r5, 0x0) + 6760: 4b48 lsri r2, r3, 8 + 6762: a470 st.b r3, (r4, 0x10) + 6764: a451 st.b r2, (r4, 0x11) + 6766: 4b50 lsri r2, r3, 16 + 6768: 4b78 lsri r3, r3, 24 + 676a: a452 st.b r2, (r4, 0x12) + 676c: a473 st.b r3, (r4, 0x13) +} + 676e: 07ae br 0x66ca // 66ca + 6770: 00008d23 .long 0x00008d23 + 6774: 2000051d .long 0x2000051d + 6778: 200000b8 .long 0x200000b8 + 677c: 200004f4 .long 0x200004f4 + 6780: 20000434 .long 0x20000434 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00006784 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 6784: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 6786: 109a lrw r4, 0x2000051d // 67ec + 6788: 8460 ld.b r3, (r4, 0x0) + 678a: 3b40 cmpnei r3, 0 + 678c: 082e bt 0x67e8 // 67e8 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 678e: 8461 ld.b r3, (r4, 0x1) + 6790: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6792: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 6794: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6796: 0829 bt 0x67e8 // 67e8 + 6798: 1076 lrw r3, 0x200004f4 // 67f0 + 679a: 8362 ld.b r3, (r3, 0x2) + 679c: 74ce sextb r3, r3 + 679e: 3bdf btsti r3, 31 + 67a0: 0824 bt 0x67e8 // 67e8 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 67a2: 3000 movi r0, 0 + 67a4: 1034 lrw r1, 0x8d3a // 67f4 + 67a6: e3ffe9cf bsr 0x3b44 // 3b44 + Debug_Inf.Tick = SysTick_1ms; + 67aa: 1074 lrw r3, 0x200000b8 // 67f8 + 67ac: 320a movi r2, 10 + 67ae: 9360 ld.w r3, (r3, 0x0) + 67b0: 6090 addu r2, r4 + 67b2: 4b28 lsri r1, r3, 8 + 67b4: a260 st.b r3, (r2, 0x0) + 67b6: a221 st.b r1, (r2, 0x1) + 67b8: 4b30 lsri r1, r3, 16 + 67ba: 4b78 lsri r3, r3, 24 + 67bc: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 67be: 3300 movi r3, 0 + 67c0: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 67c2: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 67c4: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 67c6: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 67c8: a462 st.b r3, (r4, 0x2) + //Debug_Inf.Renetwork = 0; + + HT1621_Clear(); + 67ca: e3fff781 bsr 0x56cc // 56cc + Controlled_LCD_Backlight(0x01); + 67ce: 3001 movi r0, 1 + 67d0: e3fffabc bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 67d4: 3001 movi r0, 1 + 67d6: e3fffb27 bsr 0x5e24 // 5e24 + Controlled_Buzzer(0x01); + 67da: 3001 movi r0, 1 + 67dc: e3fffa92 bsr 0x5d00 // 5d00 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 67e0: 8424 ld.b r1, (r4, 0x4) + 67e2: 3001 movi r0, 1 + 67e4: e3fffb38 bsr 0x5e54 // 5e54 + + } + } + +} + 67e8: 1491 pop r4, r15 + 67ea: 0000 bkpt + 67ec: 2000051d .long 0x2000051d + 67f0: 200004f4 .long 0x200004f4 + 67f4: 00008d3a .long 0x00008d3a + 67f8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +000067fc : + + +void KEY4_TempDec_Press_Fun(void) +{ + 67fc: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 67fe: 113f lrw r1, 0x8d43 // 68f8 + 6800: 3000 movi r0, 0 + 6802: e3ffe9a1 bsr 0x3b44 // 3b44 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6806: 117e lrw r3, 0x2000051d // 68fc + 6808: 8340 ld.b r2, (r3, 0x0) + 680a: 3a41 cmpnei r2, 1 + 680c: 11bd lrw r5, 0x200000b8 // 6900 + 680e: 0857 bt 0x68bc // 68bc + { + Debug_Inf.Tick = SysTick_1ms; + 6810: 9540 ld.w r2, (r5, 0x0) + 6812: 310a movi r1, 10 + 6814: 604c addu r1, r3 + 6816: 4a08 lsri r0, r2, 8 + 6818: a140 st.b r2, (r1, 0x0) + 681a: a101 st.b r0, (r1, 0x1) + 681c: 4a10 lsri r0, r2, 16 + 681e: 4a58 lsri r2, r2, 24 + 6820: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 6822: 8342 ld.b r2, (r3, 0x2) + 6824: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 6826: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 6828: 080b bt 0x683e // 683e + 682a: 8324 ld.b r1, (r3, 0x4) + 682c: 3940 cmpnei r1, 0 + 682e: 0c12 bf 0x6852 // 6852 + { + Debug_Inf.PipeFlag --; + 6830: 2900 subi r1, 1 + 6832: 7444 zextb r1, r1 + 6834: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6836: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6838: e3fffb0e bsr 0x5e54 // 5e54 + 683c: 040b br 0x6852 // 6852 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 683e: 3a42 cmpnei r2, 2 + 6840: 080a bt 0x6854 // 6854 + 6842: 8305 ld.b r0, (r3, 0x5) + 6844: 3840 cmpnei r0, 0 + 6846: 0c06 bf 0x6852 // 6852 + Debug_Inf.TempDiff--; + 6848: 2800 subi r0, 1 + 684a: 7400 zextb r0, r0 + 684c: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 684e: e3fffb51 bsr 0x5ef0 // 5ef0 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 6852: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 6854: 3a43 cmpnei r2, 3 + 6856: 0806 bt 0x6862 // 6862 + Debug_Inf.BackLight_En = 0x00; + 6858: 3200 movi r2, 0 + 685a: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 685c: 3100 movi r1, 0 + 685e: 3003 movi r0, 3 + 6860: 07ec br 0x6838 // 6838 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 6862: 3a44 cmpnei r2, 4 + 6864: 0809 bt 0x6876 // 6876 + 6866: 8327 ld.b r1, (r3, 0x7) + 6868: 3940 cmpnei r1, 0 + 686a: 0ff4 bf 0x6852 // 6852 + Debug_Inf.KSens_Level--; + 686c: 2900 subi r1, 1 + 686e: 7444 zextb r1, r1 + 6870: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6872: 3004 movi r0, 4 + 6874: 07e2 br 0x6838 // 6838 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 6876: 3a45 cmpnei r2, 5 + 6878: 0809 bt 0x688a // 688a + 687a: 8323 ld.b r1, (r3, 0x3) + 687c: 3940 cmpnei r1, 0 + 687e: 0fea bf 0x6852 // 6852 + Debug_Inf.DevAddr--; //刷新地址 + 6880: 2900 subi r1, 1 + 6882: 7444 zextb r1, r1 + 6884: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6886: 3005 movi r0, 5 + 6888: 07d8 br 0x6838 // 6838 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 688a: 3a46 cmpnei r2, 6 + 688c: 0809 bt 0x689e // 689e + 688e: 8328 ld.b r1, (r3, 0x8) + 6890: 3940 cmpnei r1, 0 + 6892: 0fe0 bf 0x6852 // 6852 + Debug_Inf.TempDisplay--; + 6894: 2900 subi r1, 1 + 6896: 7444 zextb r1, r1 + 6898: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 689a: 3006 movi r0, 6 + 689c: 07ce br 0x6838 // 6838 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 689e: 3a47 cmpnei r2, 7 + 68a0: 0809 bt 0x68b2 // 68b2 + 68a2: 8329 ld.b r1, (r3, 0x9) + 68a4: 3940 cmpnei r1, 0 + 68a6: 0fd6 bf 0x6852 // 6852 + Debug_Inf.Language_Selection--; + 68a8: 2900 subi r1, 1 + 68aa: 7444 zextb r1, r1 + 68ac: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 68ae: 3007 movi r0, 7 + 68b0: 07c4 br 0x6838 // 6838 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 68b2: 3a48 cmpnei r2, 8 + 68b4: 0bcf bt 0x6852 // 6852 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 68b6: 3103 movi r1, 3 + 68b8: 3008 movi r0, 8 + 68ba: 07bf br 0x6838 // 6838 + if(TempCtrl.CardState == CARDIN) + 68bc: 1092 lrw r4, 0x200004f4 // 6904 + 68be: 8478 ld.b r3, (r4, 0x18) + 68c0: 3b41 cmpnei r3, 1 + 68c2: 0811 bt 0x68e4 // 68e4 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 68c4: 8462 ld.b r3, (r4, 0x2) + 68c6: 74ce sextb r3, r3 + 68c8: 3bdf btsti r3, 31 + 68ca: 0c0d bf 0x68e4 // 68e4 + TemCtrl_Temperature_Dec(); //设置温度- + 68cc: e3fffc88 bsr 0x61dc // 61dc + if(g_eeprom.backlight_en == 0x01) + 68d0: 106e lrw r3, 0x20000434 // 6908 + 68d2: 8364 ld.b r3, (r3, 0x4) + 68d4: 3b41 cmpnei r3, 1 + 68d6: 0807 bt 0x68e4 // 68e4 + Controlled_LCD_Backlight(0x01); + 68d8: 3001 movi r0, 1 + 68da: e3fffa37 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 68de: 3001 movi r0, 1 + 68e0: e3fffaa2 bsr 0x5e24 // 5e24 + TempCtrl.BackLightTick = SysTick_1ms; + 68e4: 9560 ld.w r3, (r5, 0x0) + 68e6: 4b48 lsri r2, r3, 8 + 68e8: a470 st.b r3, (r4, 0x10) + 68ea: a451 st.b r2, (r4, 0x11) + 68ec: 4b50 lsri r2, r3, 16 + 68ee: 4b78 lsri r3, r3, 24 + 68f0: a452 st.b r2, (r4, 0x12) + 68f2: a473 st.b r3, (r4, 0x13) +} + 68f4: 07af br 0x6852 // 6852 + 68f6: 0000 bkpt + 68f8: 00008d43 .long 0x00008d43 + 68fc: 2000051d .long 0x2000051d + 6900: 200000b8 .long 0x200000b8 + 6904: 200004f4 .long 0x200004f4 + 6908: 20000434 .long 0x20000434 + +Disassembly of section .text.KEY4_Long_Press: + +0000690c : + +void KEY4_Long_Press(void) +{ + 690c: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 690e: 109a lrw r4, 0x2000051d // 6974 + 6910: 8460 ld.b r3, (r4, 0x0) + 6912: 3b40 cmpnei r3, 0 + 6914: 082e bt 0x6970 // 6970 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 6916: 8461 ld.b r3, (r4, 0x1) + 6918: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 691a: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 691c: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 691e: 0829 bt 0x6970 // 6970 + 6920: 1076 lrw r3, 0x200004f4 // 6978 + 6922: 8362 ld.b r3, (r3, 0x2) + 6924: 74ce sextb r3, r3 + 6926: 3bdf btsti r3, 31 + 6928: 0824 bt 0x6970 // 6970 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 692a: 1035 lrw r1, 0x8d3a // 697c + 692c: 3000 movi r0, 0 + 692e: e3ffe90b bsr 0x3b44 // 3b44 + Debug_Inf.Tick = SysTick_1ms; + 6932: 1074 lrw r3, 0x200000b8 // 6980 + 6934: 320a movi r2, 10 + 6936: 9360 ld.w r3, (r3, 0x0) + 6938: 6090 addu r2, r4 + 693a: 4b28 lsri r1, r3, 8 + 693c: a260 st.b r3, (r2, 0x0) + 693e: a221 st.b r1, (r2, 0x1) + 6940: 4b30 lsri r1, r3, 16 + 6942: 4b78 lsri r3, r3, 24 + 6944: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 6946: 3300 movi r3, 0 + 6948: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 694a: 3001 movi r0, 1 + Debug_Inf.State = 0x01; + 694c: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 694e: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 6950: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6952: a462 st.b r3, (r4, 0x2) + Controlled_LCD_Backlight(0x01); + 6954: e3fff9fa bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6958: 3001 movi r0, 1 + 695a: e3fffa65 bsr 0x5e24 // 5e24 + HT1621_Clear(); + 695e: e3fff6b7 bsr 0x56cc // 56cc + Controlled_Buzzer(0x01); + 6962: 3001 movi r0, 1 + 6964: e3fff9ce bsr 0x5d00 // 5d00 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 6968: 8424 ld.b r1, (r4, 0x4) + 696a: 3001 movi r0, 1 + 696c: e3fffa74 bsr 0x5e54 // 5e54 + + } + } +} + 6970: 1491 pop r4, r15 + 6972: 0000 bkpt + 6974: 2000051d .long 0x2000051d + 6978: 200004f4 .long 0x200004f4 + 697c: 00008d3a .long 0x00008d3a + 6980: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00006984 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 6984: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 6986: 103c lrw r1, 0x8d5a // 69f4 + 6988: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 698a: 109c lrw r4, 0x2000051d // 69f8 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 698c: e3ffe8dc bsr 0x3b44 // 3b44 + if(Debug_Inf.State == 0x00) //正常模式 + 6990: 8460 ld.b r3, (r4, 0x0) + 6992: 3b40 cmpnei r3, 0 + 6994: 081b bt 0x69ca // 69ca + { + if(TempCtrl.CardState == CARDIN) + 6996: 109a lrw r4, 0x200004f4 // 69fc + 6998: 8478 ld.b r3, (r4, 0x18) + 699a: 3b41 cmpnei r3, 1 + 699c: 080d bt 0x69b6 // 69b6 + { + TemCtrl_OnOff_Set(); + 699e: e3fffc4f bsr 0x623c // 623c + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 69a2: 1078 lrw r3, 0x200000b8 // 6a00 + 69a4: 9360 ld.w r3, (r3, 0x0) + 69a6: 4b48 lsri r2, r3, 8 + 69a8: a470 st.b r3, (r4, 0x10) + 69aa: a451 st.b r2, (r4, 0x11) + 69ac: 4b50 lsri r2, r3, 16 + 69ae: 4b78 lsri r3, r3, 24 + 69b0: a452 st.b r2, (r4, 0x12) + 69b2: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 69b4: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 69b6: 3001 movi r0, 1 + 69b8: e0000028 bsr 0x6a08 // 6a08 + Controlled_LCD_Backlight(1); + 69bc: 3001 movi r0, 1 + 69be: e3fff9c5 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(1); + 69c2: 3001 movi r0, 1 + 69c4: e3fffa30 bsr 0x5e24 // 5e24 + 69c8: 07ed br 0x69a2 // 69a2 + else if(Debug_Inf.State == 0x01) //设置模式 + 69ca: 3b41 cmpnei r3, 1 + 69cc: 0bf4 bt 0x69b4 // 69b4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 69ce: 102e lrw r1, 0x8d6f // 6a04 + 69d0: 3000 movi r0, 0 + 69d2: e3ffe8b9 bsr 0x3b44 // 3b44 + Debug_Inf.State = 0x00; + 69d6: 3300 movi r3, 0 + 69d8: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 69da: 3301 movi r3, 1 + 69dc: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 69de: e3fff677 bsr 0x56cc // 56cc + Controlled_LCD_Backlight(0x00); + 69e2: 3000 movi r0, 0 + 69e4: e3fff9b2 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 69e8: 3000 movi r0, 0 + 69ea: e3fffa1d bsr 0x5e24 // 5e24 + Dev_SaveData(); + 69ee: e00002f1 bsr 0x6fd0 // 6fd0 +} + 69f2: 07e1 br 0x69b4 // 69b4 + 69f4: 00008d5a .long 0x00008d5a + 69f8: 2000051d .long 0x2000051d + 69fc: 200004f4 .long 0x200004f4 + 6a00: 200000b8 .long 0x200000b8 + 6a04: 00008d6f .long 0x00008d6f + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00006a08 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 6a08: 14d1 push r4, r15 + if(state == TEMP_ON) + 6a0a: 3841 cmpnei r0, 1 + 6a0c: 0821 bt 0x6a4e // 6a4e + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 6a0e: 1072 lrw r3, 0x2000051d // 6a54 + 6a10: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 6a12: 1092 lrw r4, 0x200004f4 // 6a58 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 6a14: e3fff924 bsr 0x5c5c // 5c5c + Control_Mode(TempCtrl.TemState_Now.mode); + 6a18: 8402 ld.b r0, (r4, 0x2) + 6a1a: 4019 lsli r0, r0, 25 + 6a1c: 481d lsri r0, r0, 29 + 6a1e: e3fff795 bsr 0x5948 // 5948 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6a22: 8402 ld.b r0, (r4, 0x2) + 6a24: 401c lsli r0, r0, 28 + 6a26: 481d lsri r0, r0, 29 + 6a28: e3fff8b2 bsr 0x5b8c // 5b8c + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6a2c: 8401 ld.b r0, (r4, 0x1) + 6a2e: 3840 cmpnei r0, 0 + 6a30: 0c0c bf 0x6a48 // 6a48 + 6a32: 330a movi r3, 10 + 6a34: 7c0c mult r0, r3 + 6a36: e3fff6b9 bsr 0x57a8 // 57a8 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 6a3a: 8400 ld.b r0, (r4, 0x0) + 6a3c: 330a movi r3, 10 + 6a3e: 7c0c mult r0, r3 + 6a40: 7401 zexth r0, r0 + 6a42: e3fff71b bsr 0x5878 // 5878 + } + else + { + HT1621_Clear(); + } +} + 6a46: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6a48: 30a0 movi r0, 160 + 6a4a: 4001 lsli r0, r0, 1 + 6a4c: 07f5 br 0x6a36 // 6a36 + HT1621_Clear(); + 6a4e: e3fff63f bsr 0x56cc // 56cc +} + 6a52: 07fa br 0x6a46 // 6a46 + 6a54: 2000051d .long 0x2000051d + 6a58: 200004f4 .long 0x200004f4 + +Disassembly of section .text.DisPlay_Init: + +00006a5c : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 6a5c: 14d0 push r15 + HT1621_ALLON(); + 6a5e: e3fff65f bsr 0x571c // 571c + + delay_nms(5000); + 6a62: 1005 lrw r0, 0x1388 // 6a74 + 6a64: e3ffe106 bsr 0x2c70 // 2c70 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6a68: 1064 lrw r3, 0x200004f4 // 6a78 + 6a6a: 8302 ld.b r0, (r3, 0x2) + 6a6c: 4807 lsri r0, r0, 7 + 6a6e: e3ffffcd bsr 0x6a08 // 6a08 + +} + 6a72: 1490 pop r15 + 6a74: 00001388 .long 0x00001388 + 6a78: 200004f4 .long 0x200004f4 + +Disassembly of section .text.Data_Resend: + +00006a7c : + +void Data_Resend(void){ //2024-12-15 + 6a7c: 14d4 push r4-r7, r15 + + if(g_eeprom.dev_port == ACTIVE_PORT) + 6a7e: 1162 lrw r3, 0x20000434 // 6b04 + 6a80: 8367 ld.b r3, (r3, 0x7) + 6a82: 3b42 cmpnei r3, 2 + 6a84: 083a bt 0x6af8 // 6af8 + { + if((TempCtrl.ASend_Flag != 0x00) && (SysTick_1ms - TempCtrl.SendTick > 50 + rand()%20)) + 6a86: 11a1 lrw r5, 0x200004f4 // 6b08 + 6a88: 857f ld.b r3, (r5, 0x1f) + 6a8a: 3b40 cmpnei r3, 0 + 6a8c: 0c36 bf 0x6af8 // 6af8 + 6a8e: 3420 movi r4, 32 + 6a90: 6114 addu r4, r5 + 6a92: 8442 ld.b r2, (r4, 0x2) + 6a94: 8461 ld.b r3, (r4, 0x1) + 6a96: 4248 lsli r2, r2, 8 + 6a98: 6c8c or r2, r3 + 6a9a: 8463 ld.b r3, (r4, 0x3) + 6a9c: 4370 lsli r3, r3, 16 + 6a9e: 6c8c or r2, r3 + 6aa0: 8464 ld.b r3, (r4, 0x4) + 6aa2: 10db lrw r6, 0x200000b8 // 6b0c + 6aa4: 4378 lsli r3, r3, 24 + 6aa6: 9620 ld.w r1, (r6, 0x0) + 6aa8: 6cc8 or r3, r2 + 6aaa: 59ed subu r7, r1, r3 + 6aac: e3ffd778 bsr 0x199c // 199c <__GI_rand> + 6ab0: 3114 movi r1, 20 + 6ab2: e3ffe6c7 bsr 0x3840 // 3840 <__modsi3> + 6ab6: 2031 addi r0, 50 + 6ab8: 65c0 cmphs r0, r7 + 6aba: 081f bt 0x6af8 // 6af8 + { + TempCtrl.SendTick = SysTick_1ms; + 6abc: 9660 ld.w r3, (r6, 0x0) + 6abe: 3221 movi r2, 33 + 6ac0: 6094 addu r2, r5 + 6ac2: 4b28 lsri r1, r3, 8 + 6ac4: a260 st.b r3, (r2, 0x0) + 6ac6: a221 st.b r1, (r2, 0x1) + 6ac8: 4b30 lsri r1, r3, 16 + 6aca: 4b78 lsri r3, r3, 24 + 6acc: a222 st.b r1, (r2, 0x2) + 6ace: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 6ad0: 9660 ld.w r3, (r6, 0x0) + 6ad2: 3225 movi r2, 37 + 6ad4: 6094 addu r2, r5 + 6ad6: 4b28 lsri r1, r3, 8 + 6ad8: a260 st.b r3, (r2, 0x0) + 6ada: a221 st.b r1, (r2, 0x1) + 6adc: 4b30 lsri r1, r3, 16 + 6ade: 4b78 lsri r3, r3, 24 + 6ae0: a263 st.b r3, (r2, 0x3) + if(TempCtrl.SendCnt < 4) + 6ae2: 8460 ld.b r3, (r4, 0x0) + 6ae4: 3b03 cmphsi r3, 4 + TempCtrl.Temp_SendTick = SysTick_1ms; + 6ae6: a222 st.b r1, (r2, 0x2) + if(TempCtrl.SendCnt < 4) + 6ae8: 0809 bt 0x6afa // 6afa + { + TempCtrl.SendCnt++; + 6aea: 2300 addi r3, 1 + 6aec: a460 st.b r3, (r4, 0x0) + Rs485AskCycleSend(); + 6aee: e000045b bsr 0x73a4 // 73a4 + else + { + TempCtrl.SendCnt = 0x00; + TempCtrl.ASend_Flag = 0x00; + } + g_uart[UART_2].BusState = 0x00; + 6af2: 1068 lrw r3, 0x200003d1 // 6b10 + 6af4: 3200 movi r2, 0 + 6af6: a340 st.b r2, (r3, 0x0) + } + } +} + 6af8: 1494 pop r4-r7, r15 + TempCtrl.SendCnt = 0x00; + 6afa: 3300 movi r3, 0 + 6afc: a460 st.b r3, (r4, 0x0) + TempCtrl.ASend_Flag = 0x00; + 6afe: a57f st.b r3, (r5, 0x1f) + 6b00: 07f9 br 0x6af2 // 6af2 + 6b02: 0000 bkpt + 6b04: 20000434 .long 0x20000434 + 6b08: 200004f4 .long 0x200004f4 + 6b0c: 200000b8 .long 0x200000b8 + 6b10: 200003d1 .long 0x200003d1 + +Disassembly of section .text.Switch_Report_Task: + +00006b14 : + +void Switch_Report_Task(void){ //2024-12-15 + 6b14: 14d2 push r4-r5, r15 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 6b16: 116b lrw r3, 0x20000434 // 6bc0 + 6b18: 8367 ld.b r3, (r3, 0x7) + 6b1a: 3b42 cmpnei r3, 2 + 6b1c: 081d bt 0x6b56 // 6b56 + + switch (g_uart[UART_2].BusState) { + 6b1e: 116a lrw r3, 0x200003d1 // 6bc4 + 6b20: 8340 ld.b r2, (r3, 0x0) + 6b22: 3a41 cmpnei r2, 1 + 6b24: 0c1a bf 0x6b58 // 6b58 + 6b26: 3a40 cmpnei r2, 0 + 6b28: 0c05 bf 0x6b32 // 6b32 + 6b2a: 3a42 cmpnei r2, 2 + 6b2c: 0c07 bf 0x6b3a // 6b3a + case 0x02: // + Data_Resend(); + break; + + default: + g_uart[UART_2].BusState = 0x00; + 6b2e: 3200 movi r2, 0 + 6b30: 0445 br 0x6bba // 6bba + if (g_uart[UART_2].Receiving == 0x00) { + 6b32: 1146 lrw r2, 0x200003d0 // 6bc8 + 6b34: 8240 ld.b r2, (r2, 0x0) + 6b36: 3a40 cmpnei r2, 0 + 6b38: 0804 bt 0x6b40 // 6b40 + Data_Resend(); + 6b3a: e3ffffa1 bsr 0x6a7c // 6a7c + break; + 6b3e: 040c br 0x6b56 // 6b56 + g_uart[UART_2].BusState = 0x01; + 6b40: 3201 movi r2, 1 + 6b42: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6b44: 1142 lrw r2, 0x200000b8 // 6bcc + 6b46: 9240 ld.w r2, (r2, 0x0) + 6b48: 4a28 lsri r1, r2, 8 + 6b4a: a34b st.b r2, (r3, 0xb) + 6b4c: a32c st.b r1, (r3, 0xc) + 6b4e: 4a30 lsri r1, r2, 16 + 6b50: 4a58 lsri r2, r2, 24 + 6b52: a32d st.b r1, (r3, 0xd) + 6b54: a34e st.b r2, (r3, 0xe) + break; + } +} + 6b56: 1492 pop r4-r5, r15 + if (SysTick_1ms - g_uart[UART_2].BusbusyTimeout >= 100) { //超时丢弃 + 6b58: 320b movi r2, 11 + 6b5a: 608c addu r2, r3 + 6b5c: 830c ld.b r0, (r3, 0xc) + 6b5e: 8220 ld.b r1, (r2, 0x0) + 6b60: 4008 lsli r0, r0, 8 + 6b62: 6c04 or r0, r1 + 6b64: 832d ld.b r1, (r3, 0xd) + 6b66: 4130 lsli r1, r1, 16 + 6b68: 6c04 or r0, r1 + 6b6a: 832e ld.b r1, (r3, 0xe) + 6b6c: 1098 lrw r4, 0x200000b8 // 6bcc + 6b6e: 4138 lsli r1, r1, 24 + 6b70: 6c40 or r1, r0 + 6b72: 94a0 ld.w r5, (r4, 0x0) + 6b74: 6146 subu r5, r1 + 6b76: 3163 movi r1, 99 + 6b78: 6544 cmphs r1, r5 + 6b7a: 0813 bt 0x6ba0 // 6ba0 + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6b7c: 9420 ld.w r1, (r4, 0x0) + 6b7e: 4908 lsri r0, r1, 8 + 6b80: a220 st.b r1, (r2, 0x0) + 6b82: a201 st.b r0, (r2, 0x1) + 6b84: 4910 lsri r0, r1, 16 + 6b86: 4938 lsri r1, r1, 24 + 6b88: a223 st.b r1, (r2, 0x3) + 6b8a: a202 st.b r0, (r2, 0x2) + g_uart[UART_2].BusState = 0x00; + 6b8c: 3200 movi r2, 0 + 6b8e: a340 st.b r2, (r3, 0x0) + TempCtrl.SendCnt = 0x00; + 6b90: 3220 movi r2, 32 + 6b92: 1070 lrw r3, 0x200004f4 // 6bd0 + 6b94: 608c addu r2, r3 + 6b96: 3100 movi r1, 0 + 6b98: a220 st.b r1, (r2, 0x0) + TempCtrl.ASend_Flag = 0x00; + 6b9a: 3200 movi r2, 0 + 6b9c: a35f st.b r2, (r3, 0x1f) + 6b9e: 07dc br 0x6b56 // 6b56 + }else if(g_uart[UART_2].Receiving == 0x00) //100ms内,空闲发送 + 6ba0: 102a lrw r1, 0x200003d0 // 6bc8 + 6ba2: 8120 ld.b r1, (r1, 0x0) + 6ba4: 3940 cmpnei r1, 0 + 6ba6: 0bd8 bt 0x6b56 // 6b56 + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6ba8: 9420 ld.w r1, (r4, 0x0) + 6baa: 4908 lsri r0, r1, 8 + 6bac: a220 st.b r1, (r2, 0x0) + 6bae: a201 st.b r0, (r2, 0x1) + 6bb0: 4910 lsri r0, r1, 16 + 6bb2: 4938 lsri r1, r1, 24 + 6bb4: a202 st.b r0, (r2, 0x2) + 6bb6: a223 st.b r1, (r2, 0x3) + g_uart[UART_2].BusState = 0x02; + 6bb8: 3202 movi r2, 2 + g_uart[UART_2].BusState = 0x00; + 6bba: a340 st.b r2, (r3, 0x0) + break; + 6bbc: 07cd br 0x6b56 // 6b56 + 6bbe: 0000 bkpt + 6bc0: 20000434 .long 0x20000434 + 6bc4: 200003d1 .long 0x200003d1 + 6bc8: 200003d0 .long 0x200003d0 + 6bcc: 200000b8 .long 0x200000b8 + 6bd0: 200004f4 .long 0x200004f4 + +Disassembly of section .text.DisPlay_Task: + +00006bd4 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void DisPlay_Task(void) +{ + 6bd4: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 6bd6: 0165 lrw r3, 0x2000051d // 6f3c + 6bd8: 8360 ld.b r3, (r3, 0x0) + 6bda: 3b40 cmpnei r3, 0 + 6bdc: 0c02 bf 0x6be0 // 6be0 + 6bde: 05d0 br 0x6f7e // 6f7e + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 6be0: 0187 lrw r4, 0x200004f4 // 6f40 + 6be2: 8451 ld.b r2, (r4, 0x11) + 6be4: 8470 ld.b r3, (r4, 0x10) + 6be6: 4248 lsli r2, r2, 8 + 6be8: 6c8c or r2, r3 + 6bea: 8472 ld.b r3, (r4, 0x12) + 6bec: 4370 lsli r3, r3, 16 + 6bee: 6c8c or r2, r3 + 6bf0: 8473 ld.b r3, (r4, 0x13) + 6bf2: 01aa lrw r5, 0x200000b8 // 6f44 + 6bf4: 4378 lsli r3, r3, 24 + 6bf6: 6cc8 or r3, r2 + 6bf8: 9520 ld.w r1, (r5, 0x0) + 6bfa: 604e subu r1, r3 + 6bfc: 014c lrw r2, 0xbb8 // 6f48 + 6bfe: 6448 cmphs r2, r1 + 6c00: 08a7 bt 0x6d4e // 6d4e + 6c02: 8458 ld.b r2, (r4, 0x18) + 6c04: 3a40 cmpnei r2, 0 + 6c06: 08a4 bt 0x6d4e // 6d4e + { + TempCtrl.BackLightTick = SysTick_1ms; + 6c08: 9560 ld.w r3, (r5, 0x0) + 6c0a: 4b48 lsri r2, r3, 8 + 6c0c: a470 st.b r3, (r4, 0x10) + 6c0e: a451 st.b r2, (r4, 0x11) + 6c10: 4b50 lsri r2, r3, 16 + 6c12: 4b78 lsri r3, r3, 24 + 6c14: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 6c16: 3300 movi r3, 0 + 6c18: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6c1a: 8462 ld.b r3, (r4, 0x2) + 6c1c: 74ce sextb r3, r3 + 6c1e: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6c20: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6c22: 0803 bt 0x6c28 // 6c28 + { + HT1621_Clear(); + 6c24: e3fff554 bsr 0x56cc // 56cc + } + //关背光 + Controlled_LCD_Backlight(0); + 6c28: 3000 movi r0, 0 + 6c2a: e3fff88f bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6c2e: 3000 movi r0, 0 + 6c30: e3fff8fa bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 6c34: 0139 lrw r1, 0x8d79 // 6f4c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6c36: 3000 movi r0, 0 + 6c38: e3ffe786 bsr 0x3b44 // 3b44 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 6c3c: 8455 ld.b r2, (r4, 0x15) + 6c3e: 8474 ld.b r3, (r4, 0x14) + 6c40: 4248 lsli r2, r2, 8 + 6c42: 6c8c or r2, r3 + 6c44: 8476 ld.b r3, (r4, 0x16) + 6c46: 4370 lsli r3, r3, 16 + 6c48: 6c8c or r2, r3 + 6c4a: 8477 ld.b r3, (r4, 0x17) + 6c4c: 4378 lsli r3, r3, 24 + 6c4e: 6cc8 or r3, r2 + 6c50: 9520 ld.w r1, (r5, 0x0) + 6c52: 604e subu r1, r3 + 6c54: 33fa movi r3, 250 + 6c56: 4362 lsli r3, r3, 2 + 6c58: 644c cmphs r3, r1 + 6c5a: 081b bt 0x6c90 // 6c90 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 6c5c: 9560 ld.w r3, (r5, 0x0) + 6c5e: 4b48 lsri r2, r3, 8 + 6c60: a474 st.b r3, (r4, 0x14) + 6c62: a455 st.b r2, (r4, 0x15) + 6c64: 4b50 lsri r2, r3, 16 + 6c66: 4b78 lsri r3, r3, 24 + 6c68: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6c6a: 847b ld.b r3, (r4, 0x1b) + 6c6c: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 6c6e: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6c70: 0897 bt 0x6d9e // 6d9e + 6c72: 847c ld.b r3, (r4, 0x1c) + 6c74: 3b41 cmpnei r3, 1 + 6c76: 0894 bt 0x6d9e // 6d9e + { + TempCtrl.SceneFlag = 0x00; + 6c78: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 6c7a: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 6c7c: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 6c7e: e3fff865 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6c82: 3000 movi r0, 0 + 6c84: e3fff8d0 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 6c88: 022d lrw r1, 0x8d9b // 6f50 + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6c8a: 3000 movi r0, 0 + 6c8c: e3ffe75c bsr 0x3b44 // 3b44 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 6c90: 02ce lrw r6, 0x20000434 // 6f54 + 6c92: 8664 ld.b r3, (r6, 0x4) + 6c94: 3b41 cmpnei r3, 1 + 6c96: 081e bt 0x6cd2 // 6cd2 + 6c98: 8451 ld.b r2, (r4, 0x11) + 6c9a: 8470 ld.b r3, (r4, 0x10) + 6c9c: 4248 lsli r2, r2, 8 + 6c9e: 6c8c or r2, r3 + 6ca0: 8472 ld.b r3, (r4, 0x12) + 6ca2: 4370 lsli r3, r3, 16 + 6ca4: 6c8c or r2, r3 + 6ca6: 8473 ld.b r3, (r4, 0x13) + 6ca8: 4378 lsli r3, r3, 24 + 6caa: 6cc8 or r3, r2 + 6cac: 9520 ld.w r1, (r5, 0x0) + 6cae: 604e subu r1, r3 + 6cb0: 0275 lrw r3, 0x1388 // 6f58 + 6cb2: 644c cmphs r3, r1 + 6cb4: 080f bt 0x6cd2 // 6cd2 + { + TempCtrl.BackLightTick = SysTick_1ms; + 6cb6: 9560 ld.w r3, (r5, 0x0) + 6cb8: 4b48 lsri r2, r3, 8 + 6cba: a470 st.b r3, (r4, 0x10) + 6cbc: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 6cbe: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 6cc0: 4b50 lsri r2, r3, 16 + 6cc2: 4b78 lsri r3, r3, 24 + 6cc4: a452 st.b r2, (r4, 0x12) + 6cc6: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 6cc8: e3fff840 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 6ccc: 3000 movi r0, 0 + 6cce: e3fff8ab bsr 0x5e24 // 5e24 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6cd2: 8402 ld.b r0, (r4, 0x2) + 6cd4: 74c2 sextb r3, r0 + 6cd6: 3bdf btsti r3, 31 + 6cd8: 0d11 bf 0x6efa // 6efa + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 6cda: 8466 ld.b r3, (r4, 0x6) + 6cdc: 4019 lsli r0, r0, 25 + 6cde: 4359 lsli r2, r3, 25 + 6ce0: 481d lsri r0, r0, 29 + 6ce2: 4a5d lsri r2, r2, 29 + 6ce4: 640a cmpne r2, r0 + 6ce6: 0c19 bf 0x6d18 // 6d18 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 6ce8: 3170 movi r1, 112 + 6cea: 4044 lsli r2, r0, 4 + 6cec: 68c5 andn r3, r1 + 6cee: 6cc8 or r3, r2 + 6cf0: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 6cf2: e3fff62b bsr 0x5948 // 5948 + + SYSCON->UREG0 &= 0xFFFF00FF; + 6cf6: 0365 lrw r3, 0x2000005c // 6f5c + 6cf8: 31ff movi r1, 255 + 6cfa: 9340 ld.w r2, (r3, 0x0) + 6cfc: 22ff addi r2, 256 + 6cfe: 9260 ld.w r3, (r2, 0x0) + 6d00: 4128 lsli r1, r1, 8 + 6d02: 68c5 andn r3, r1 + 6d04: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6d06: 8462 ld.b r3, (r4, 0x2) + 6d08: 4379 lsli r3, r3, 25 + 6d0a: 4b7d lsri r3, r3, 29 + 6d0c: 9220 ld.w r1, (r2, 0x0) + 6d0e: 4368 lsli r3, r3, 8 + 6d10: 6cc4 or r3, r1 + 6d12: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6d14: 3301 movi r3, 1 + 6d16: a47f st.b r3, (r4, 0x1f) + } + + if(TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) //刷新风速 + 6d18: 8402 ld.b r0, (r4, 0x2) + 6d1a: 8466 ld.b r3, (r4, 0x6) + 6d1c: 401c lsli r0, r0, 28 + 6d1e: 435c lsli r2, r3, 28 + 6d20: 481d lsri r0, r0, 29 + 6d22: 4a5d lsri r2, r2, 29 + 6d24: 640a cmpne r2, r0 + 6d26: 0c6f bf 0x6e04 // 6e04 + { + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 6d28: 310e movi r1, 14 + 6d2a: 4041 lsli r2, r0, 1 + 6d2c: 68c5 andn r3, r1 + 6d2e: 6cc8 or r3, r2 + 6d30: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6d32: e3fff72d bsr 0x5b8c // 5b8c + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6d36: 3270 movi r2, 112 + 6d38: 8462 ld.b r3, (r4, 0x2) + 6d3a: 68c8 and r3, r2 + 6d3c: 3240 movi r2, 64 + 6d3e: 648e cmpne r3, r2 + 6d40: 0843 bt 0x6dc6 // 6dc6 + 6d42: 8661 ld.b r3, (r6, 0x1) + 6d44: 3b42 cmpnei r3, 2 + 6d46: 0840 bt 0x6dc6 // 6dc6 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 6d48: e0000218 bsr 0x7178 // 7178 + break; + 6d4c: 044b br 0x6de2 // 6de2 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 6d4e: 9540 ld.w r2, (r5, 0x0) + 6d50: 608e subu r2, r3 + 6d52: 33fa movi r3, 250 + 6d54: 4363 lsli r3, r3, 3 + 6d56: 648c cmphs r3, r2 + 6d58: 0b72 bt 0x6c3c // 6c3c + 6d5a: 8478 ld.b r3, (r4, 0x18) + 6d5c: 3b41 cmpnei r3, 1 + 6d5e: 0b6f bt 0x6c3c // 6c3c + 6d60: 8479 ld.b r3, (r4, 0x19) + 6d62: 3b41 cmpnei r3, 1 + 6d64: 0b6c bt 0x6c3c // 6c3c + TempCtrl.BackLightTick = SysTick_1ms; + 6d66: 9560 ld.w r3, (r5, 0x0) + 6d68: 4b48 lsri r2, r3, 8 + 6d6a: a470 st.b r3, (r4, 0x10) + 6d6c: a451 st.b r2, (r4, 0x11) + 6d6e: 4b50 lsri r2, r3, 16 + 6d70: 4b78 lsri r3, r3, 24 + 6d72: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d74: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 6d76: 3300 movi r3, 0 + 6d78: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d7a: 74c2 sextb r3, r0 + 6d7c: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6d7e: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d80: 0f5e bf 0x6c3c // 6c3c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6d82: 4807 lsri r0, r0, 7 + 6d84: e3fffe42 bsr 0x6a08 // 6a08 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 6d88: 847b ld.b r3, (r4, 0x1b) + 6d8a: 3b44 cmpnei r3, 4 + 6d8c: 0f58 bf 0x6c3c // 6c3c + Controlled_LCD_Backlight(1); + 6d8e: 3001 movi r0, 1 + 6d90: e3fff7dc bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6d94: 3001 movi r0, 1 + 6d96: e3fff847 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6d9a: 1332 lrw r1, 0x8d8b // 6f60 + 6d9c: 074d br 0x6c36 // 6c36 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 6d9e: 8462 ld.b r3, (r4, 0x2) + 6da0: 74ce sextb r3, r3 + 6da2: 3bdf btsti r3, 31 + 6da4: 0f76 bf 0x6c90 // 6c90 + 6da6: 8478 ld.b r3, (r4, 0x18) + 6da8: 3b41 cmpnei r3, 1 + 6daa: 0b73 bt 0x6c90 // 6c90 + 6dac: 847c ld.b r3, (r4, 0x1c) + 6dae: 3b41 cmpnei r3, 1 + 6db0: 0b70 bt 0x6c90 // 6c90 + TempCtrl.SceneFlag = 0x00; + 6db2: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 6db4: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 6db6: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 6db8: e3fff7c8 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x01); + 6dbc: 3001 movi r0, 1 + 6dbe: e3fff833 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6dc2: 1329 lrw r1, 0x8dab // 6f64 + 6dc4: 0763 br 0x6c8a // 6c8a + switch(TempCtrl.TemState_Now.fan) + 6dc6: 8402 ld.b r0, (r4, 0x2) + 6dc8: 401c lsli r0, r0, 28 + 6dca: 481d lsri r0, r0, 29 + 6dcc: 2800 subi r0, 1 + 6dce: 3803 cmphsi r0, 4 + 6dd0: 0809 bt 0x6de2 // 6de2 + 6dd2: e3ffcf9f bsr 0xd10 // d10 <___gnu_csky_case_shi> + 6dd6: 0004 .short 0x0004 + 6dd8: 00d800d5 .long 0x00d800d5 + 6ddc: ffb9 .short 0xffb9 + Relay_Low(); + 6dde: e00001bf bsr 0x715c // 715c + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 6de2: 127f lrw r3, 0x2000005c // 6f5c + 6de4: 31ff movi r1, 255 + 6de6: 9340 ld.w r2, (r3, 0x0) + 6de8: 22ff addi r2, 256 + 6dea: 9260 ld.w r3, (r2, 0x0) + 6dec: 4130 lsli r1, r1, 16 + 6dee: 68c5 andn r3, r1 + 6df0: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6df2: 8462 ld.b r3, (r4, 0x2) + 6df4: 437c lsli r3, r3, 28 + 6df6: 4b7d lsri r3, r3, 29 + 6df8: 9220 ld.w r1, (r2, 0x0) + 6dfa: 4370 lsli r3, r3, 16 + 6dfc: 6cc4 or r3, r1 + 6dfe: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6e00: 3301 movi r3, 1 + 6e02: a47f st.b r3, (r4, 0x1f) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 6e04: 8401 ld.b r0, (r4, 0x1) + 6e06: 8465 ld.b r3, (r4, 0x5) + 6e08: 640e cmpne r3, r0 + 6e0a: 0c16 bf 0x6e36 // 6e36 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 6e0c: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 6e0e: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 6e10: 08be bt 0x6f8c // 6f8c + { + Set_Temperature_Display(320); + 6e12: 30a0 movi r0, 160 + 6e14: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 6e16: e3fff4c9 bsr 0x57a8 // 57a8 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 6e1a: 1271 lrw r3, 0x2000005c // 6f5c + 6e1c: 9360 ld.w r3, (r3, 0x0) + 6e1e: 23ff addi r3, 256 + 6e20: 9340 ld.w r2, (r3, 0x0) + 6e22: 4248 lsli r2, r2, 8 + 6e24: 4a48 lsri r2, r2, 8 + 6e26: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6e28: 8441 ld.b r2, (r4, 0x1) + 6e2a: 9320 ld.w r1, (r3, 0x0) + 6e2c: 4258 lsli r2, r2, 24 + 6e2e: 6c84 or r2, r1 + 6e30: b340 st.w r2, (r3, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6e32: 3301 movi r3, 1 + 6e34: a47f st.b r3, (r4, 0x1f) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 6e36: 8409 ld.b r0, (r4, 0x9) + 6e38: 8468 ld.b r3, (r4, 0x8) + 6e3a: 4008 lsli r0, r0, 8 + 6e3c: 6c0c or r0, r3 + 6e3e: 846b ld.b r3, (r4, 0xb) + 6e40: 844a ld.b r2, (r4, 0xa) + 6e42: 4368 lsli r3, r3, 8 + 6e44: 6cc8 or r3, r2 + 6e46: 640e cmpne r3, r0 + 6e48: 0c12 bf 0x6e6c // 6e6c + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 6e4a: 4868 lsri r3, r0, 8 + 6e4c: a46b st.b r3, (r4, 0xb) + 6e4e: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 6e50: e3fff514 bsr 0x5878 // 5878 + + SYSCON->UREG0 &= 0x00FFFFFF; + 6e54: 1262 lrw r3, 0x2000005c // 6f5c + 6e56: 9360 ld.w r3, (r3, 0x0) + 6e58: 23ff addi r3, 256 + 6e5a: 9340 ld.w r2, (r3, 0x0) + 6e5c: 4248 lsli r2, r2, 8 + 6e5e: 4a48 lsri r2, r2, 8 + 6e60: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6e62: 8441 ld.b r2, (r4, 0x1) + 6e64: 9320 ld.w r1, (r3, 0x0) + 6e66: 4258 lsli r2, r2, 24 + 6e68: 6c84 or r2, r1 + 6e6a: b340 st.w r2, (r3, 0x0) + + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 6e6c: 844f ld.b r2, (r4, 0xf) + 6e6e: 846e ld.b r3, (r4, 0xe) + 6e70: 4248 lsli r2, r2, 8 + 6e72: 6c8c or r2, r3 + 6e74: 846d ld.b r3, (r4, 0xd) + 6e76: 842c ld.b r1, (r4, 0xc) + 6e78: 4368 lsli r3, r3, 8 + 6e7a: 6cc4 or r3, r1 + 6e7c: 648c cmphs r3, r2 + 6e7e: 0804 bt 0x6e86 // 6e86 + 6e80: 5a2d subu r1, r2, r3 + 6e82: 392a cmplti r1, 11 + 6e84: 0c06 bf 0x6e90 // 6e90 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 6e86: 64c8 cmphs r2, r3 + 6e88: 0812 bt 0x6eac // 6eac + 6e8a: 5b49 subu r2, r3, r2 + 6e8c: 3a2a cmplti r2, 11 + 6e8e: 080f bt 0x6eac // 6eac + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 6e90: 9540 ld.w r2, (r5, 0x0) + 6e92: 1136 lrw r1, 0x20000519 // 6f68 + 6e94: 4a08 lsri r0, r2, 8 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6e96: a46e st.b r3, (r4, 0xe) + 6e98: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 6e9a: a140 st.b r2, (r1, 0x0) + 6e9c: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6e9e: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 6ea0: 4a10 lsri r0, r2, 16 + //rf_info.roomc_flag = 0x01; + + TempCtrl.ASend_Flag = 0x01; //2024-12-16,变化一度上报一次 + 6ea2: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 6ea4: 4a58 lsri r2, r2, 24 + 6ea6: a102 st.b r0, (r1, 0x2) + 6ea8: a143 st.b r2, (r1, 0x3) + TempCtrl.ASend_Flag = 0x01; //2024-12-16,变化一度上报一次 + 6eaa: a47f st.b r3, (r4, 0x1f) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 + rand()%20) + 6eac: 11d0 lrw r6, 0x20000514 // 6f6c + 6eae: 8646 ld.b r2, (r6, 0x6) + 6eb0: 8665 ld.b r3, (r6, 0x5) + 6eb2: 4248 lsli r2, r2, 8 + 6eb4: 6c8c or r2, r3 + 6eb6: 8667 ld.b r3, (r6, 0x7) + 6eb8: 4370 lsli r3, r3, 16 + 6eba: 6c8c or r2, r3 + 6ebc: 8668 ld.b r3, (r6, 0x8) + 6ebe: 4378 lsli r3, r3, 24 + 6ec0: 6cc8 or r3, r2 + 6ec2: 9520 ld.w r1, (r5, 0x0) + 6ec4: 59ed subu r7, r1, r3 + 6ec6: e3ffd56b bsr 0x199c // 199c <__GI_rand> + 6eca: 3114 movi r1, 20 + 6ecc: e3ffe4ba bsr 0x3840 // 3840 <__modsi3> + 6ed0: 1168 lrw r3, 0x7530 // 6f70 + 6ed2: 600c addu r0, r3 + 6ed4: 641c cmphs r7, r0 + 6ed6: 0c12 bf 0x6efa // 6efa + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 6ed8: 9540 ld.w r2, (r5, 0x0) + 6eda: 4a28 lsri r1, r2, 8 + 6edc: a645 st.b r2, (r6, 0x5) + 6ede: a626 st.b r1, (r6, 0x6) + 6ee0: 4a30 lsri r1, r2, 16 + 6ee2: 4a58 lsri r2, r2, 24 + 6ee4: a627 st.b r1, (r6, 0x7) + 6ee6: a648 st.b r2, (r6, 0x8) + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6ee8: 846d ld.b r3, (r4, 0xd) + 6eea: 844c ld.b r2, (r4, 0xc) + 6eec: 4368 lsli r3, r3, 8 + 6eee: 6cc8 or r3, r2 + 6ef0: a46e st.b r3, (r4, 0xe) + 6ef2: 4b68 lsri r3, r3, 8 + 6ef4: a46f st.b r3, (r4, 0xf) + TempCtrl.ASend_Flag = 0x01; //2025-02-25,温度变化每隔30s,上报一次。 + 6ef6: 3301 movi r3, 1 + 6ef8: a47f st.b r3, (r4, 0x1f) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 6efa: 8402 ld.b r0, (r4, 0x2) + 6efc: 8466 ld.b r3, (r4, 0x6) + 6efe: 4807 lsri r0, r0, 7 + 6f00: 4b47 lsri r2, r3, 7 + 6f02: 640a cmpne r2, r0 + 6f04: 0c3b bf 0x6f7a // 6f7a + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 6f06: 317f movi r1, 127 + 6f08: 4047 lsli r2, r0, 7 + 6f0a: 68c4 and r3, r1 + 6f0c: 6cc8 or r3, r2 + 6f0e: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6f10: e3fff71c bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 6f14: 8402 ld.b r0, (r4, 0x2) + 6f16: 4807 lsri r0, r0, 7 + 6f18: e3fff786 bsr 0x5e24 // 5e24 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6f1c: 8402 ld.b r0, (r4, 0x2) + 6f1e: 4807 lsri r0, r0, 7 + 6f20: e3fffd74 bsr 0x6a08 // 6a08 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 6f24: 106e lrw r3, 0x2000005c // 6f5c + 6f26: 31ff movi r1, 255 + 6f28: 9340 ld.w r2, (r3, 0x0) + 6f2a: 22ff addi r2, 256 + 6f2c: 9260 ld.w r3, (r2, 0x0) + 6f2e: 68c5 andn r3, r1 + 6f30: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 6f32: 8462 ld.b r3, (r4, 0x2) + 6f34: 9220 ld.w r1, (r2, 0x0) + 6f36: 4b67 lsri r3, r3, 7 + 6f38: 6cc4 or r3, r1 + 6f3a: 041d br 0x6f74 // 6f74 + 6f3c: 2000051d .long 0x2000051d + 6f40: 200004f4 .long 0x200004f4 + 6f44: 200000b8 .long 0x200000b8 + 6f48: 00000bb8 .long 0x00000bb8 + 6f4c: 00008d79 .long 0x00008d79 + 6f50: 00008d9b .long 0x00008d9b + 6f54: 20000434 .long 0x20000434 + 6f58: 00001388 .long 0x00001388 + 6f5c: 2000005c .long 0x2000005c + 6f60: 00008d8b .long 0x00008d8b + 6f64: 00008dab .long 0x00008dab + 6f68: 20000519 .long 0x20000519 + 6f6c: 20000514 .long 0x20000514 + 6f70: 00007530 .long 0x00007530 + 6f74: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6f76: 3301 movi r3, 1 + 6f78: a47f st.b r3, (r4, 0x1f) + } + + Switch_Report_Task(); + 6f7a: e3fffdcd bsr 0x6b14 // 6b14 + + } +} + 6f7e: 1494 pop r4-r7, r15 + Relay_Mid(); + 6f80: e00000e0 bsr 0x7140 // 7140 + break; + 6f84: 072f br 0x6de2 // 6de2 + Relay_High(); + 6f86: e00000cf bsr 0x7124 // 7124 + break; + 6f8a: 072c br 0x6de2 // 6de2 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 6f8c: 330a movi r3, 10 + 6f8e: 7c0c mult r0, r3 + 6f90: 0743 br 0x6e16 // 6e16 + +Disassembly of section .text.Debug_Init: + +00006f94 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 6f94: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 6f96: 108d lrw r4, 0x2000051d // 6fc8 + 6f98: 320e movi r2, 14 + 6f9a: 3100 movi r1, 0 + 6f9c: 6c13 mov r0, r4 + 6f9e: e3ffd515 bsr 0x19c8 // 19c8 <__memset_fast> + Debug_Inf.Page = 0x01; + 6fa2: 3301 movi r3, 1 + 6fa4: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 6fa6: 106a lrw r3, 0x20000434 // 6fcc + 6fa8: 8340 ld.b r2, (r3, 0x0) + 6faa: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 6fac: 8341 ld.b r2, (r3, 0x1) + 6fae: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 6fb0: 8342 ld.b r2, (r3, 0x2) + 6fb2: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 6fb4: 8344 ld.b r2, (r3, 0x4) + 6fb6: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 6fb8: 8345 ld.b r2, (r3, 0x5) + 6fba: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 6fbc: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 6fbe: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 6fc0: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 6fc2: a469 st.b r3, (r4, 0x9) +} + 6fc4: 1491 pop r4, r15 + 6fc6: 0000 bkpt + 6fc8: 2000051d .long 0x2000051d + 6fcc: 20000434 .long 0x20000434 + +Disassembly of section .text.Dev_SaveData: + +00006fd0 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 6fd0: 14d1 push r4, r15 + 6fd2: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 6fd4: 1161 lrw r3, 0x2000051d // 7058 + 6fd6: 1182 lrw r4, 0x20000434 // 705c + 6fd8: 8343 ld.b r2, (r3, 0x3) + 6fda: 8420 ld.b r1, (r4, 0x0) + 6fdc: 6486 cmpne r1, r2 + 6fde: 0819 bt 0x7010 // 7010 + 6fe0: 8304 ld.b r0, (r3, 0x4) + 6fe2: 8421 ld.b r1, (r4, 0x1) + 6fe4: 6442 cmpne r0, r1 + 6fe6: 0815 bt 0x7010 // 7010 + 6fe8: 8305 ld.b r0, (r3, 0x5) + 6fea: 8422 ld.b r1, (r4, 0x2) + 6fec: 6442 cmpne r0, r1 + 6fee: 0811 bt 0x7010 // 7010 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 6ff0: 8306 ld.b r0, (r3, 0x6) + 6ff2: 8424 ld.b r1, (r4, 0x4) + 6ff4: 6442 cmpne r0, r1 + 6ff6: 080d bt 0x7010 // 7010 + 6ff8: 8307 ld.b r0, (r3, 0x7) + 6ffa: 8425 ld.b r1, (r4, 0x5) + 6ffc: 6442 cmpne r0, r1 + 6ffe: 0809 bt 0x7010 // 7010 + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 7000: 8308 ld.b r0, (r3, 0x8) + 7002: 8423 ld.b r1, (r4, 0x3) + 7004: 6442 cmpne r0, r1 + 7006: 0805 bt 0x7010 // 7010 + 7008: 8309 ld.b r0, (r3, 0x9) + 700a: 8426 ld.b r1, (r4, 0x6) + 700c: 6442 cmpne r0, r1 + 700e: 0c23 bf 0x7054 // 7054 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 7010: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 7012: 8344 ld.b r2, (r3, 0x4) + 7014: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 7016: 8345 ld.b r2, (r3, 0x5) + 7018: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 701a: 8346 ld.b r2, (r3, 0x6) + 701c: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 701e: 8347 ld.b r2, (r3, 0x7) + 7020: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7022: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 7024: 100e lrw r0, 0x20000434 // 705c + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7026: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7028: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 702a: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 702c: e3ffe9ba bsr 0x43a0 // 43a0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 7030: 8425 ld.b r1, (r4, 0x5) + 7032: b822 st.w r1, (r14, 0x8) + 7034: 8424 ld.b r1, (r4, 0x4) + 7036: b821 st.w r1, (r14, 0x4) + 7038: 8422 ld.b r1, (r4, 0x2) + 703a: 8461 ld.b r3, (r4, 0x1) + 703c: 8440 ld.b r2, (r4, 0x0) + 703e: b820 st.w r1, (r14, 0x0) + 7040: 3000 movi r0, 0 + 7042: 1028 lrw r1, 0x8dbe // 7060 + 7044: e3ffe580 bsr 0x3b44 // 3b44 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 7048: 8466 ld.b r3, (r4, 0x6) + 704a: 8443 ld.b r2, (r4, 0x3) + 704c: 1026 lrw r1, 0x8e0a // 7064 + 704e: 3000 movi r0, 0 + 7050: e3ffe57a bsr 0x3b44 // 3b44 + g_eeprom.temp_select,g_eeprom.langue_select); + } +} + 7054: 1403 addi r14, r14, 12 + 7056: 1491 pop r4, r15 + 7058: 2000051d .long 0x2000051d + 705c: 20000434 .long 0x20000434 + 7060: 00008dbe .long 0x00008dbe + 7064: 00008e0a .long 0x00008e0a + +Disassembly of section .text.Debug_Task: + +00007068 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 7068: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 706a: 107b lrw r3, 0x2000051d // 70d4 + 706c: 8340 ld.b r2, (r3, 0x0) + 706e: 3a41 cmpnei r2, 1 + 7070: 0830 bt 0x70d0 // 70d0 + 7072: 832b ld.b r1, (r3, 0xb) + 7074: 834a ld.b r2, (r3, 0xa) + 7076: 4128 lsli r1, r1, 8 + 7078: 6c48 or r1, r2 + 707a: 834c ld.b r2, (r3, 0xc) + 707c: 4250 lsli r2, r2, 16 + 707e: 6c48 or r1, r2 + 7080: 834d ld.b r2, (r3, 0xd) + 7082: 1096 lrw r4, 0x200000b8 // 70d8 + 7084: 4258 lsli r2, r2, 24 + 7086: 6c84 or r2, r1 + 7088: 9400 ld.w r0, (r4, 0x0) + 708a: 600a subu r0, r2 + 708c: 1054 lrw r2, 0x2710 // 70dc + 708e: 6408 cmphs r2, r0 + 7090: 0820 bt 0x70d0 // 70d0 + 7092: 8342 ld.b r2, (r3, 0x2) + 7094: 3a48 cmpnei r2, 8 + 7096: 0c1d bf 0x70d0 // 70d0 + { + Debug_Inf.Tick = SysTick_1ms; + 7098: 9440 ld.w r2, (r4, 0x0) + 709a: 310a movi r1, 10 + 709c: 604c addu r1, r3 + 709e: 4a08 lsri r0, r2, 8 + 70a0: a140 st.b r2, (r1, 0x0) + 70a2: a101 st.b r0, (r1, 0x1) + 70a4: 4a10 lsri r0, r2, 16 + 70a6: 4a58 lsri r2, r2, 24 + 70a8: a143 st.b r2, (r1, 0x3) + Debug_Inf.State = 0x00; + 70aa: 3200 movi r2, 0 + 70ac: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 70ae: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 70b0: a102 st.b r0, (r1, 0x2) + Debug_Inf.Page = 0x01; + 70b2: a342 st.b r2, (r3, 0x2) + Dev_SaveData(); + 70b4: e3ffff8e bsr 0x6fd0 // 6fd0 + + HT1621_Clear(); + 70b8: e3fff30a bsr 0x56cc // 56cc + //关背光 + Controlled_LCD_Backlight(0x00); + 70bc: 3000 movi r0, 0 + 70be: e3fff645 bsr 0x5d48 // 5d48 + Controlled_Key_Backlight(0x00); + 70c2: 3000 movi r0, 0 + 70c4: e3fff6b0 bsr 0x5e24 // 5e24 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 70c8: 1026 lrw r1, 0x8e3a // 70e0 + 70ca: 3000 movi r0, 0 + 70cc: e3ffe53c bsr 0x3b44 // 3b44 + } + 70d0: 1491 pop r4, r15 + 70d2: 0000 bkpt + 70d4: 2000051d .long 0x2000051d + 70d8: 200000b8 .long 0x200000b8 + 70dc: 00002710 .long 0x00002710 + 70e0: 00008e3a .long 0x00008e3a + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +000070e4 : + //一个标志位,在过零信号的中断里会改变,代表有过零信号 + //g_switch.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + + switch(rly_id) + 70e4: 3804 cmphsi r0, 5 + 70e6: 1069 lrw r3, 0x2000048c // 7108 + 70e8: 080d bt 0x7102 // 7102 + case HOT_RLY: + case COOL_RLY: + case HIGH_RLY: + case MAD_RLY: + case LOW_RLY: + if(g_switch.rly_state[rly_id] != state){ + 70ea: 600c addu r0, r3 + 70ec: 8054 ld.b r2, (r0, 0x14) + 70ee: 644a cmpne r2, r1 + 70f0: 2013 addi r0, 20 + 70f2: 0c07 bf 0x7100 // 7100 + g_switch.rly_state[rly_id] = state; + +// Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Ctrl_Purpose1--rly_control:%d",g_switch.rly_control); +// g_switch.rly_control = 0x01; + + if(g_switch.rly_zero == 0){ + 70f4: 8351 ld.b r2, (r3, 0x11) + g_switch.rly_control = 0x02; + 70f6: 3a40 cmpnei r2, 0 + 70f8: 6483 mvcv r2 + g_switch.rly_state[rly_id] = state; + 70fa: a020 st.b r1, (r0, 0x0) + g_switch.rly_control = 0x02; + 70fc: 2200 addi r2, 1 + g_switch.rly_control = 0x01; + } + } + break; + default: + g_switch.rly_control = 0x00; + 70fe: a353 st.b r2, (r3, 0x13) + break; + + } + +} + 7100: 783c jmp r15 + g_switch.rly_control = 0x00; + 7102: 3200 movi r2, 0 + 7104: 07fd br 0x70fe // 70fe + 7106: 0000 bkpt + 7108: 2000048c .long 0x2000048c + +Disassembly of section .text.Relay_Init: + +0000710c : +{ + 710c: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 710e: 1085 lrw r4, 0x2000048c // 7120 + 7110: 3228 movi r2, 40 + 7112: 3100 movi r1, 0 + 7114: 6c13 mov r0, r4 + 7116: e3ffd459 bsr 0x19c8 // 19c8 <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 711a: 3301 movi r3, 1 + 711c: a462 st.b r3, (r4, 0x2) +} + 711e: 1491 pop r4, r15 + 7120: 2000048c .long 0x2000048c + +Disassembly of section .text.Relay_High: + +00007124 : +{ + 7124: 14d0 push r15 + 7126: 3101 movi r1, 1 + 7128: 3002 movi r0, 2 + 712a: e3ffffdd bsr 0x70e4 // 70e4 + 712e: 3102 movi r1, 2 + 7130: 3003 movi r0, 3 + 7132: e3ffffd9 bsr 0x70e4 // 70e4 + 7136: 3102 movi r1, 2 + 7138: 3004 movi r0, 4 + 713a: e3ffffd5 bsr 0x70e4 // 70e4 +} + 713e: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +00007140 : +{ + 7140: 14d0 push r15 + 7142: 3102 movi r1, 2 + 7144: 3002 movi r0, 2 + 7146: e3ffffcf bsr 0x70e4 // 70e4 + 714a: 3101 movi r1, 1 + 714c: 3003 movi r0, 3 + 714e: e3ffffcb bsr 0x70e4 // 70e4 + 7152: 3102 movi r1, 2 + 7154: 3004 movi r0, 4 + 7156: e3ffffc7 bsr 0x70e4 // 70e4 +} + 715a: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +0000715c : +{ + 715c: 14d0 push r15 + 715e: 3102 movi r1, 2 + 7160: 3002 movi r0, 2 + 7162: e3ffffc1 bsr 0x70e4 // 70e4 + 7166: 3102 movi r1, 2 + 7168: 3003 movi r0, 3 + 716a: e3ffffbd bsr 0x70e4 // 70e4 + 716e: 3101 movi r1, 1 + 7170: 3004 movi r0, 4 + 7172: e3ffffb9 bsr 0x70e4 // 70e4 +} + 7176: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +00007178 : +{ + 7178: 14d0 push r15 + 717a: 3102 movi r1, 2 + 717c: 3002 movi r0, 2 + 717e: e3ffffb3 bsr 0x70e4 // 70e4 + 7182: 3102 movi r1, 2 + 7184: 3003 movi r0, 3 + 7186: e3ffffaf bsr 0x70e4 // 70e4 + 718a: 3102 movi r1, 2 + 718c: 3004 movi r0, 4 + 718e: e3ffffab bsr 0x70e4 // 70e4 +} + 7192: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00007194 : +{ + 7194: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + 7196: 5963 subi r3, r1, 1 + 7198: 74cc zextb r3, r3 + 719a: 3b01 cmphsi r3, 2 + 719c: 0803 bt 0x71a2 // 71a2 + 719e: e3ffffa3 bsr 0x70e4 // 70e4 +} + 71a2: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +000071a4 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + 71a4: 14d2 push r4-r5, r15 + + + if(SysTick_1ms - g_switch.rly_ctrl_tick >= 50)// 50ms + 71a6: 1150 lrw r2, 0x200000b8 // 7264 + 71a8: 1190 lrw r4, 0x2000048c // 7268 + 71aa: 9260 ld.w r3, (r2, 0x0) + 71ac: 9427 ld.w r1, (r4, 0x1c) + 71ae: 60c6 subu r3, r1 + 71b0: 3131 movi r1, 49 + 71b2: 64c4 cmphs r1, r3 + 71b4: 0810 bt 0x71d4 // 71d4 + { + g_switch.rly_ctrl_tick = SysTick_1ms; + 71b6: 9260 ld.w r3, (r2, 0x0) + 71b8: b467 st.w r3, (r4, 0x1c) + + CK_CPU_DisAllNormalIrq(); + 71ba: e3ffe36a bsr 0x388e // 388e + + if( (g_switch.rly_zCnt >= 2)&&(g_switch.rly_zCnt <= 5)){ //有过零信号 + 71be: 8472 ld.b r3, (r4, 0x12) + 71c0: 2b01 subi r3, 2 + 71c2: 74cc zextb r3, r3 + 71c4: 3b03 cmphsi r3, 4 + 71c6: 0812 bt 0x71ea // 71ea + g_switch.rly_zero = 1; + 71c8: 3301 movi r3, 1 + 71ca: a471 st.b r3, (r4, 0x11) + g_switch.rly_zCnt = 0; + 71cc: 3300 movi r3, 0 + }else { //无过零信号 + g_switch.rly_zero = 0; + g_switch.rly_zCnt = 0; + 71ce: a472 st.b r3, (r4, 0x12) + } + + CK_CPU_EnAllNormalIrq(); + 71d0: e3ffe35c bsr 0x3888 // 3888 + } + + if(g_switch.rly_control != 0x02) return; + 71d4: 8473 ld.b r3, (r4, 0x13) + 71d6: 3b42 cmpnei r3, 2 + 71d8: 0819 bt 0x720a // 720a + 71da: 3500 movi r5, 0 + + for (U8_T i = 0; i < 5; i++) { + switch (i) { + 71dc: 5d03 subi r0, r5, 1 + 71de: 3803 cmphsi r0, 4 + 71e0: 0808 bt 0x71f0 // 71f0 + 71e2: e3ffcd8d bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 71e6: 2117 .short 0x2117 + 71e8: 352b .short 0x352b + g_switch.rly_zero = 0; + 71ea: 3300 movi r3, 0 + 71ec: a471 st.b r3, (r4, 0x11) + 71ee: 07f0 br 0x71ce // 71ce + case HOT_RLY: + if (g_switch.rly_state[HOT_RLY] == Control_ON) { + 71f0: 8474 ld.b r3, (r4, 0x14) + 71f2: 3b41 cmpnei r3, 1 + 71f4: 080c bt 0x720c // 720c + RLY1_HOT_OPEN; + 71f6: 3102 movi r1, 2 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 71f8: 3012 movi r0, 18 + break; + case LOW_RLY: + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 71fa: e3fff175 bsr 0x54e4 // 54e4 + for (U8_T i = 0; i < 5; i++) { + 71fe: 2500 addi r5, 1 + 7200: 7554 zextb r5, r5 + 7202: 3d45 cmpnei r5, 5 + 7204: 0bec bt 0x71dc // 71dc + break; + } + + } + + g_switch.rly_control = 0x00; + 7206: 3300 movi r3, 0 + 7208: a473 st.b r3, (r4, 0x13) +} + 720a: 1492 pop r4-r5, r15 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + 720c: 3b42 cmpnei r3, 2 + 720e: 0bf8 bt 0x71fe // 71fe + RLY1_HOT_CLOSE; + 7210: 3101 movi r1, 1 + 7212: 07f3 br 0x71f8 // 71f8 + if (g_switch.rly_state[COOL_RLY] == Control_ON) { + 7214: 8475 ld.b r3, (r4, 0x15) + 7216: 3b41 cmpnei r3, 1 + 7218: 0804 bt 0x7220 // 7220 + RLY2_COLD_OPEN; + 721a: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 721c: 3013 movi r0, 19 + 721e: 07ee br 0x71fa // 71fa + }else if (g_switch.rly_state[COOL_RLY] == Control_OFF) { + 7220: 3b42 cmpnei r3, 2 + 7222: 0bee bt 0x71fe // 71fe + RLY2_COLD_CLOSE; + 7224: 3101 movi r1, 1 + 7226: 07fb br 0x721c // 721c + if (g_switch.rly_state[HIGH_RLY] == Control_ON) { + 7228: 8476 ld.b r3, (r4, 0x16) + 722a: 3b41 cmpnei r3, 1 + 722c: 0804 bt 0x7234 // 7234 + RLY3_HIGH_OPEN; + 722e: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7230: 3014 movi r0, 20 + 7232: 07e4 br 0x71fa // 71fa + }else if (g_switch.rly_state[HIGH_RLY] == Control_OFF) { + 7234: 3b42 cmpnei r3, 2 + 7236: 0be4 bt 0x71fe // 71fe + RLY3_HIGH_CLOSE; + 7238: 3101 movi r1, 1 + 723a: 07fb br 0x7230 // 7230 + if (g_switch.rly_state[MAD_RLY] == Control_ON) { + 723c: 8477 ld.b r3, (r4, 0x17) + 723e: 3b41 cmpnei r3, 1 + 7240: 0804 bt 0x7248 // 7248 + RLY4_MID_OPEN; + 7242: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7244: 3015 movi r0, 21 + 7246: 07da br 0x71fa // 71fa + }else if (g_switch.rly_state[MAD_RLY] == Control_OFF) { + 7248: 3b42 cmpnei r3, 2 + 724a: 0bda bt 0x71fe // 71fe + RLY4_MID_CLOSE; + 724c: 3101 movi r1, 1 + 724e: 07fb br 0x7244 // 7244 + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + 7250: 8478 ld.b r3, (r4, 0x18) + 7252: 3b41 cmpnei r3, 1 + 7254: 0804 bt 0x725c // 725c + RLY5_LOW_OPEN; + 7256: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7258: 3016 movi r0, 22 + 725a: 07d0 br 0x71fa // 71fa + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + 725c: 3b42 cmpnei r3, 2 + 725e: 0bd0 bt 0x71fe // 71fe + RLY5_LOW_CLOSE; + 7260: 3101 movi r1, 1 + 7262: 07fb br 0x7258 // 7258 + 7264: 200000b8 .long 0x200000b8 + 7268: 2000048c .long 0x2000048c + +Disassembly of section .text.RLY_Zero_Control: + +0000726c : + * @brief 有过零信号控制继电器 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + 726c: 14d2 push r4-r5, r15 + if(g_switch.rly_control != 0x01) return; + 726e: 1185 lrw r4, 0x2000048c // 7300 + 7270: 8473 ld.b r3, (r4, 0x13) + 7272: 3b41 cmpnei r3, 1 + 7274: 0818 bt 0x72a4 // 72a4 + 7276: 3500 movi r5, 0 + + for (U8_T i = 0; i < 5; i++) { + switch (i) { + 7278: 5d03 subi r0, r5, 1 + 727a: 3803 cmphsi r0, 4 + 727c: 0805 bt 0x7286 // 7286 + 727e: e3ffcd3f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7282: 2016 .short 0x2016 + 7284: 342a .short 0x342a + case HOT_RLY: + if (g_switch.rly_state[HOT_RLY] == Control_ON) { + 7286: 8474 ld.b r3, (r4, 0x14) + 7288: 3b41 cmpnei r3, 1 + 728a: 080e bt 0x72a6 // 72a6 + RLY1_HOT_OPEN; + 728c: 3102 movi r1, 2 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 728e: 3012 movi r0, 18 + break; + case LOW_RLY: + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7290: e3fff12a bsr 0x54e4 // 54e4 + for (U8_T i = 0; i < 5; i++) { + 7294: 2500 addi r5, 1 + 7296: 7554 zextb r5, r5 + 7298: 3d45 cmpnei r5, 5 + 729a: 0bef bt 0x7278 // 7278 + break; + } + + } + + TimeCall_SIO_Send2(); + 729c: e3fff06c bsr 0x5374 // 5374 + + g_switch.rly_control = 0x00; + 72a0: 3300 movi r3, 0 + 72a2: a473 st.b r3, (r4, 0x13) + 72a4: 1492 pop r4-r5, r15 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + 72a6: 3b42 cmpnei r3, 2 + 72a8: 0bf6 bt 0x7294 // 7294 + RLY1_HOT_CLOSE; + 72aa: 3101 movi r1, 1 + 72ac: 07f1 br 0x728e // 728e + if (g_switch.rly_state[COOL_RLY] == Control_ON) { + 72ae: 8475 ld.b r3, (r4, 0x15) + 72b0: 3b41 cmpnei r3, 1 + 72b2: 0804 bt 0x72ba // 72ba + RLY2_COLD_OPEN; + 72b4: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 72b6: 3013 movi r0, 19 + 72b8: 07ec br 0x7290 // 7290 + }else if (g_switch.rly_state[COOL_RLY] == Control_OFF) { + 72ba: 3b42 cmpnei r3, 2 + 72bc: 0bec bt 0x7294 // 7294 + RLY2_COLD_CLOSE; + 72be: 3101 movi r1, 1 + 72c0: 07fb br 0x72b6 // 72b6 + if (g_switch.rly_state[HIGH_RLY] == Control_ON) { + 72c2: 8476 ld.b r3, (r4, 0x16) + 72c4: 3b41 cmpnei r3, 1 + 72c6: 0804 bt 0x72ce // 72ce + RLY3_HIGH_OPEN; + 72c8: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 72ca: 3014 movi r0, 20 + 72cc: 07e2 br 0x7290 // 7290 + }else if (g_switch.rly_state[HIGH_RLY] == Control_OFF) { + 72ce: 3b42 cmpnei r3, 2 + 72d0: 0be2 bt 0x7294 // 7294 + RLY3_HIGH_CLOSE; + 72d2: 3101 movi r1, 1 + 72d4: 07fb br 0x72ca // 72ca + if (g_switch.rly_state[MAD_RLY] == Control_ON) { + 72d6: 8477 ld.b r3, (r4, 0x17) + 72d8: 3b41 cmpnei r3, 1 + 72da: 0804 bt 0x72e2 // 72e2 + RLY4_MID_OPEN; + 72dc: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 72de: 3015 movi r0, 21 + 72e0: 07d8 br 0x7290 // 7290 + }else if (g_switch.rly_state[MAD_RLY] == Control_OFF) { + 72e2: 3b42 cmpnei r3, 2 + 72e4: 0bd8 bt 0x7294 // 7294 + RLY4_MID_CLOSE; + 72e6: 3101 movi r1, 1 + 72e8: 07fb br 0x72de // 72de + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + 72ea: 8478 ld.b r3, (r4, 0x18) + 72ec: 3b41 cmpnei r3, 1 + 72ee: 0804 bt 0x72f6 // 72f6 + RLY5_LOW_OPEN; + 72f0: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 72f2: 3016 movi r0, 22 + 72f4: 07ce br 0x7290 // 7290 + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + 72f6: 3b42 cmpnei r3, 2 + 72f8: 0bce bt 0x7294 // 7294 + RLY5_LOW_CLOSE; + 72fa: 3101 movi r1, 1 + 72fc: 07fb br 0x72f2 // 72f2 + 72fe: 0000 bkpt + 7300: 2000048c .long 0x2000048c + +Disassembly of section .text.NetCRC16: + +00007304 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 7304: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7306: 3902 cmphsi r1, 3 + 7308: 0c1f bf 0x7346 // 7346 + U16_T alen = len-2; //CRC16??????? + 730a: 2901 subi r1, 2 + 730c: 7445 zexth r1, r1 + 730e: 6d43 mov r5, r0 + 7310: 3200 movi r2, 0 + 7312: 106e lrw r3, 0xffff // 7348 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 731c: 6d8f mov r6, r3 + 731e: 699c and r6, r7 + 7320: 3e40 cmpnei r6, 0 + 7322: 4b61 lsri r3, r3, 1 + 7324: 0c04 bf 0x732c // 732c + 7326: 10ca lrw r6, 0xffffa001 // 734c + 7328: 6cd9 xor r3, r6 + 732a: 74cd zexth r3, r3 + 732c: 2c00 subi r4, 1 + 732e: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 7330: 3c40 cmpnei r4, 0 + 7332: 0bf5 bt 0x731c // 731c + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 733e: 6040 addu r1, r0 + 7340: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 7342: 4b68 lsri r3, r3, 8 + 7344: a161 st.b r3, (r1, 0x1) +} + 7346: 1484 pop r4-r7 + 7348: 0000ffff .long 0x0000ffff + 734c: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00007350 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 7350: 14c3 push r4-r6 + 7352: 6cc3 mov r3, r0 + 7354: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 7356: 10ac lrw r5, 0xffffa001 // 7384 + xda = 0xFFFF ; + 7358: 100c lrw r0, 0xffff // 7388 + for (i = 0; i < len; i++) + 735a: 644e cmpne r3, r1 + 735c: 0802 bt 0x7360 // 7360 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 735e: 1483 pop r4-r6 + xda ^= aStr[i] ; + 7360: 8340 ld.b r2, (r3, 0x0) + 7362: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 7364: 3601 movi r6, 1 + xda ^= aStr[i] ; + 7366: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 7368: 6d03 mov r4, r0 + 736a: 6918 and r4, r6 + 736c: 3c40 cmpnei r4, 0 + 736e: 4801 lsri r0, r0, 1 + 7370: 0c03 bf 0x7376 // 7376 + 7372: 6c15 xor r0, r5 + 7374: 7401 zexth r0, r0 + 7376: 2a00 subi r2, 1 + 7378: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 737a: 3a40 cmpnei r2, 0 + 737c: 0bf6 bt 0x7368 // 7368 + 737e: 2300 addi r3, 1 + 7380: 07ed br 0x735a // 735a + 7382: 0000 bkpt + 7384: ffffa001 .long 0xffffa001 + 7388: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +0000738c : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 738c: 6cc3 mov r3, r0 + 738e: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 7390: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 7392: 644e cmpne r3, r1 + 7394: 0802 bt 0x7398 // 7398 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7396: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7398: 8340 ld.b r2, (r3, 0x0) + 739a: 6008 addu r0, r2 + 739c: 7400 zextb r0, r0 + 739e: 2300 addi r3, 1 + 73a0: 07f9 br 0x7392 // 7392 + +Disassembly of section .text.Rs485AskCycleSend: + +000073a4 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 73a4: 14d0 push r15 + 73a6: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 73a8: 3355 movi r3, 85 + 73aa: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 73ae: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 73b2: 3300 movi r3, 0 + 73b4: 2b11 subi r3, 18 + 73b6: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 73ba: 3315 movi r3, 21 + 73bc: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 73c0: 3303 movi r3, 3 + 73c2: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 73c6: 1172 lrw r3, 0x20000434 // 748c + 73c8: 8360 ld.b r3, (r3, 0x0) + 73ca: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 73ce: 3300 movi r3, 0 + 73d0: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 73d4: 116f lrw r3, 0x200004f4 // 7490 + 73d6: 8342 ld.b r2, (r3, 0x2) + 73d8: 4a27 lsri r1, r2, 7 + 73da: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 73de: 3100 movi r1, 0 + 73e0: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 73e4: 3170 movi r1, 112 + 73e6: 6884 and r2, r1 + 73e8: 3a40 cmpnei r2, 0 + 73ea: 0841 bt 0x746c // 746c + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 73ec: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 73ee: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 73f2: 8341 ld.b r2, (r3, 0x1) + 73f4: 3a40 cmpnei r2, 0 + 73f6: 0802 bt 0x73fa // 73fa + 73f8: 3220 movi r2, 32 + 73fa: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 73fe: 3200 movi r2, 0 + 7400: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7404: 8342 ld.b r2, (r3, 0x2) + 7406: 425c lsli r2, r2, 28 + 7408: 4a5d lsri r2, r2, 29 + 740a: 3104 movi r1, 4 + 740c: 604a subu r1, r2 + 740e: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 7410: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7412: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 7416: 0c35 bf 0x7480 // 7480 + 7418: 3a03 cmphsi r2, 4 + 741a: 0837 bt 0x7488 // 7488 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + 741c: dc2e000d st.b r1, (r14, 0xd) + break; + default: + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 7420: 3200 movi r2, 0 + 7422: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 7426: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 742a: 8342 ld.b r2, (r3, 0x2) + 742c: 425f lsli r2, r2, 31 + 742e: 4a5f lsri r2, r2, 31 + 7430: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7432: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7434: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7438: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 743a: 3200 movi r2, 0 + 743c: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 7440: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 7444: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7448: 0802 bt 0x744c // 744c + 744a: 3320 movi r3, 32 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 744c: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 744e: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7452: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 7454: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7456: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 7458: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 745c: e3ffff54 bsr 0x7304 // 7304 + + MCU485_SendData(SendData, 24); + 7460: 3118 movi r1, 24 + 7462: 6c3b mov r0, r14 + 7464: e3ffe32c bsr 0x3abc // 3abc + +} + 7468: 1406 addi r14, r14, 24 + 746a: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 746c: 3120 movi r1, 32 + 746e: 644a cmpne r2, r1 + 7470: 0803 bt 0x7476 // 7476 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 7472: 3202 movi r2, 2 + 7474: 07bd br 0x73ee // 73ee + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 7476: 3140 movi r1, 64 + 7478: 644a cmpne r2, r1 + 747a: 0bbc bt 0x73f2 // 73f2 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 747c: 3203 movi r2, 3 + 747e: 07b8 br 0x73ee // 73ee + SendData[13] = 0x00; // + 7480: 3200 movi r2, 0 + SendData[13] = 0x04; // + 7482: dc4e000d st.b r2, (r14, 0xd) + break; + 7486: 07cd br 0x7420 // 7420 + SendData[13] = 0x04; // + 7488: 3204 movi r2, 4 + 748a: 07fc br 0x7482 // 7482 + 748c: 20000434 .long 0x20000434 + 7490: 200004f4 .long 0x200004f4 + +Disassembly of section .text.Rs485AskCtrlSend: + +00007494 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 7494: 14d0 push r15 + 7496: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 7498: 3355 movi r3, 85 + 749a: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 749e: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 74a2: 3300 movi r3, 0 + 74a4: 2b11 subi r3, 18 + 74a6: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 74aa: 3307 movi r3, 7 + 74ac: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 74b0: 3303 movi r3, 3 + 74b2: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74b6: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 74b8: 106a lrw r3, 0x20000434 // 74e0 + 74ba: 8360 ld.b r3, (r3, 0x0) + 74bc: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 74c0: 8066 ld.b r3, (r0, 0x6) + 74c2: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 74c6: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74c8: 3003 movi r0, 3 + 74ca: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 74cc: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74d0: e3ffff1a bsr 0x7304 // 7304 + + MCU485_SendData(SendData, 10); + 74d4: 310a movi r1, 10 + 74d6: 6c3b mov r0, r14 + 74d8: e3ffe2f2 bsr 0x3abc // 3abc + +} + 74dc: 1403 addi r14, r14, 12 + 74de: 1490 pop r15 + 74e0: 20000434 .long 0x20000434 + +Disassembly of section .text.Rs485AskReadSend: + +000074e4 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 74e4: 14d0 push r15 + 74e6: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 74e8: 3355 movi r3, 85 + 74ea: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 74ee: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 74f2: 3300 movi r3, 0 + 74f4: 2b11 subi r3, 18 + 74f6: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x09; //长度 + 74fa: 3309 movi r3, 9 + 74fc: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 7500: 3303 movi r3, 3 + 7502: dc6e0004 st.b r3, (r14, 0x4) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7506: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 7508: 106d lrw r3, 0x20000434 // 753c + 750a: 8340 ld.b r2, (r3, 0x0) + 750c: dc4e0005 st.b r2, (r14, 0x5) + SendData[6] = Recdata[6]; + 7510: 8046 ld.b r2, (r0, 0x6) + 7512: dc4e0006 st.b r2, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7516: 3003 movi r0, 3 + SendData[7] = Project_FW_Version; + 7518: 3203 movi r2, 3 + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 751a: 8367 ld.b r3, (r3, 0x7) + SendData[7] = Project_FW_Version; + 751c: dc4e0007 st.b r2, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7520: 6038 addu r0, r14 + SendData[8] = Project_HW_Version; + 7522: 3202 movi r2, 2 + 7524: dc4e0008 st.b r2, (r14, 0x8) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 7528: dc6e0009 st.b r3, (r14, 0x9) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 752c: e3fffeec bsr 0x7304 // 7304 + + MCU485_SendData(SendData, 12); + 7530: 310c movi r1, 12 + 7532: 6c3b mov r0, r14 + 7534: e3ffe2c4 bsr 0x3abc // 3abc + +} + 7538: 1403 addi r14, r14, 12 + 753a: 1490 pop r15 + 753c: 20000434 .long 0x20000434 + +Disassembly of section .text.Temp_Rec_Analysis: + +00007540 : + + MCU485_SendData(Recdata, Lens); +} + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 7540: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 7542: 3300 movi r3, 0 + 7544: 2b08 subi r3, 9 + 7546: 60c4 addu r3, r1 + 7548: 74cd zexth r3, r3 + 754a: 3b01 cmphsi r3, 2 +{ + 754c: 6d03 mov r4, r0 + 754e: 6d87 mov r6, r1 + if(((0x09 != Len) && (0x0A != Len)) + 7550: 08c7 bt 0x76de // 76de + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 7552: 8060 ld.b r3, (r0, 0x0) + 7554: 3255 movi r2, 85 + 7556: 648e cmpne r3, r2 + 7558: 08c3 bt 0x76de // 76de + 755a: 8041 ld.b r2, (r0, 0x1) + 755c: 64ca cmpne r2, r3 + 755e: 08c0 bt 0x76de // 76de + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 7560: 8042 ld.b r2, (r0, 0x2) + 7562: 33ee movi r3, 238 + 7564: 64ca cmpne r2, r3 + 7566: 08bc bt 0x76de // 76de + 7568: 8023 ld.b r1, (r0, 0x3) + 756a: 596a addi r3, r1, 3 + 756c: 658e cmpne r3, r6 + 756e: 08b8 bt 0x76de // 76de + || (Tem_Type != RecData[4]) + 7570: 8064 ld.b r3, (r0, 0x4) + 7572: 3b43 cmpnei r3, 3 + 7574: 08b5 bt 0x76de // 76de + || (g_eeprom.dev_addr != RecData[5]) + 7576: 12bc lrw r5, 0x20000434 // 76e4 + 7578: 8540 ld.b r2, (r5, 0x0) + 757a: 8065 ld.b r3, (r0, 0x5) + 757c: 64ca cmpne r2, r3 + 757e: 08b0 bt 0x76de // 76de + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 7580: 2901 subi r1, 2 + 7582: 7445 zexth r1, r1 + 7584: 2002 addi r0, 3 + 7586: e3fffee5 bsr 0x7350 // 7350 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 758a: 5c58 addu r2, r4, r6 + 758c: 5a63 subi r3, r2, 1 + 758e: 8360 ld.b r3, (r3, 0x0) + 7590: 2a01 subi r2, 2 + 7592: 4368 lsli r3, r3, 8 + 7594: 8240 ld.b r2, (r2, 0x0) + 7596: 60c8 addu r3, r2 + 7598: 64c2 cmpne r0, r3 + 759a: 08a2 bt 0x76de // 76de + { + switch(RecData[6]) + 759c: 8406 ld.b r0, (r4, 0x6) + 759e: 2800 subi r0, 1 + 75a0: 3811 cmphsi r0, 18 + 75a2: 0818 bt 0x75d2 // 75d2 + 75a4: e3ffcbac bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 75a8: 25252525 .long 0x25252525 + 75ac: 15151515 .long 0x15151515 + 75b0: 15150915 .long 0x15150915 + 75b4: 29151515 .long 0x29151515 + 75b8: 402d .short 0x402d + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 75ba: 8567 ld.b r3, (r5, 0x7) + 75bc: 3b42 cmpnei r3, 2 + 75be: 0813 bt 0x75e4 // 75e4 + { + TempCtrl.SendCnt = 0x00; + 75c0: 126a lrw r3, 0x200004f4 // 76e8 + 75c2: 3220 movi r2, 32 + 75c4: 608c addu r2, r3 + 75c6: 3100 movi r1, 0 + 75c8: a220 st.b r1, (r2, 0x0) + TempCtrl.ASend_Flag = 0x00; + 75ca: 3200 movi r2, 0 + 75cc: a35f st.b r2, (r3, 0x1f) + g_uart[UART_2].BusState = 0x00; + 75ce: 1268 lrw r3, 0x200003d1 // 76ec + 75d0: a340 st.b r2, (r3, 0x0) + }else{ + Rs485_DevPort_ACK(RecData,Len); + } + break; + } + switch(RecData[6]) + 75d2: 8406 ld.b r0, (r4, 0x6) + 75d4: 2800 subi r0, 1 + 75d6: 3803 cmphsi r0, 4 + 75d8: 0808 bt 0x75e8 // 75e8 + 75da: 8467 ld.b r3, (r4, 0x7) + 75dc: e3ffcb90 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 75e0: 6c604836 .long 0x6c604836 + else if(g_eeprom.dev_port == POLLING_PORT) + 75e4: 3b41 cmpnei r3, 1 + 75e6: 0c03 bf 0x75ec // 75ec + break; + } + break; + } + + return ret; + 75e8: 3000 movi r0, 0 + 75ea: 047b br 0x76e0 // 76e0 + Rs485AskCycleSend(); + 75ec: e3fffedc bsr 0x73a4 // 73a4 + 75f0: 07f1 br 0x75d2 // 75d2 + Rs485AskCtrlSend(RecData); + 75f2: 6c13 mov r0, r4 + 75f4: e3ffff50 bsr 0x7494 // 7494 + 75f8: 07ed br 0x75d2 // 75d2 + Rs485AskReadSend(RecData); //版本号查询 + 75fa: 6c13 mov r0, r4 + 75fc: e3ffff74 bsr 0x74e4 // 74e4 + 7600: 07e9 br 0x75d2 // 75d2 + Rs485AskCtrlSend(RecData); + 7602: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7604: 11b9 lrw r5, 0x200004f4 // 76e8 + Rs485AskCtrlSend(RecData); + 7606: e3ffff47 bsr 0x7494 // 7494 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 760a: 855a ld.b r2, (r5, 0x1a) + 760c: 1139 lrw r1, 0x8e45 // 76f0 + 760e: 3000 movi r0, 0 + 7610: e3ffe29a bsr 0x3b44 // 3b44 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 7614: 8467 ld.b r3, (r4, 0x7) + 7616: 855a ld.b r2, (r5, 0x1a) + 7618: 64ca cmpne r2, r3 + 761a: 0fdc bf 0x75d2 // 75d2 + if(TempCtrl.CardEn == 0x00) + 761c: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 761e: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 7620: 0bd9 bt 0x75d2 // 75d2 + TempCtrl.CardState = 0x01; + 7622: 3301 movi r3, 1 + 7624: a578 st.b r3, (r5, 0x18) + 7626: 07d6 br 0x75d2 // 75d2 + if(RecData[7] != g_eeprom.dev_port) + 7628: 8467 ld.b r3, (r4, 0x7) + 762a: 8547 ld.b r2, (r5, 0x7) + 762c: 64ca cmpne r2, r3 + 762e: 0c0a bf 0x7642 // 7642 + EEPROM_WriteParaInfo(&g_eeprom); + 7630: 110d lrw r0, 0x20000434 // 76e4 + g_eeprom.dev_port = RecData[7]; + 7632: a567 st.b r3, (r5, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 7634: e3ffe6b6 bsr 0x43a0 // 43a0 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 7638: 110b lrw r0, 0x20000434 // 76e4 + 763a: e3ffe679 bsr 0x432c // 432c + if(rev_val == 0x00){ + 763e: 3840 cmpnei r0, 0 + 7640: 0bc9 bt 0x75d2 // 75d2 + MCU485_SendData(Recdata, Lens); + 7642: 6c5b mov r1, r6 + 7644: 6c13 mov r0, r4 + 7646: e3ffe23b bsr 0x3abc // 3abc + 764a: 07c4 br 0x75d2 // 75d2 + switch(RecData[7]) + 764c: 74cc zextb r3, r3 + 764e: 3b40 cmpnei r3, 0 + 7650: 0c0a bf 0x7664 // 7664 + 7652: 3b41 cmpnei r3, 1 + 7654: 0bca bt 0x75e8 // 75e8 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 7656: 1125 lrw r1, 0x200004f4 // 76e8 + 7658: 3200 movi r2, 0 + 765a: 8162 ld.b r3, (r1, 0x2) + 765c: 2a7f subi r2, 128 + 765e: 6cc8 or r3, r2 + 7660: a162 st.b r3, (r1, 0x2) + 7662: 07c3 br 0x75e8 // 75e8 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 7664: 1141 lrw r2, 0x200004f4 // 76e8 + 7666: 8262 ld.b r3, (r2, 0x2) + 7668: 317f movi r1, 127 + 766a: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 766c: a262 st.b r3, (r2, 0x2) + 766e: 07bd br 0x75e8 // 75e8 + switch(RecData[7]) // + 7670: 74cc zextb r3, r3 + 7672: 3b42 cmpnei r3, 2 + 7674: 0c0a bf 0x7688 // 7688 + 7676: 3b43 cmpnei r3, 3 + 7678: 0c0e bf 0x7694 // 7694 + 767a: 3b41 cmpnei r3, 1 + 767c: 0bb6 bt 0x75e8 // 75e8 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 767e: 105b lrw r2, 0x200004f4 // 76e8 + 7680: 8262 ld.b r3, (r2, 0x2) + 7682: 3170 movi r1, 112 + 7684: 68c5 andn r3, r1 + 7686: 07f3 br 0x766c // 766c + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 7688: 1058 lrw r2, 0x200004f4 // 76e8 + 768a: 8262 ld.b r3, (r2, 0x2) + 768c: 3170 movi r1, 112 + 768e: 68c5 andn r3, r1 + 7690: 3ba5 bseti r3, 5 + 7692: 07ed br 0x766c // 766c + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 7694: 1055 lrw r2, 0x200004f4 // 76e8 + 7696: 8262 ld.b r3, (r2, 0x2) + 7698: 3170 movi r1, 112 + 769a: 68c5 andn r3, r1 + 769c: 3ba6 bseti r3, 6 + 769e: 07e7 br 0x766c // 766c + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] <= TEM_MAX_SET)) //在指定温度范围内 + 76a0: 3200 movi r2, 0 + 76a2: 74cc zextb r3, r3 + 76a4: 2a0f subi r2, 16 + 76a6: 608c addu r2, r3 + 76a8: 7488 zextb r2, r2 + 76aa: 3a10 cmphsi r2, 17 + 76ac: 0b9e bt 0x75e8 // 75e8 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 76ae: 301f movi r0, 31 + 76b0: 68c0 and r3, r0 + 76b2: 104e lrw r2, 0x200004f4 // 76e8 + 76b4: a261 st.b r3, (r2, 0x1) + 76b6: 0799 br 0x75e8 // 75e8 + switch(RecData[7]) //风速 + 76b8: 740c zextb r0, r3 + 76ba: 106c lrw r3, 0x200004f4 // 76e8 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 76bc: 8342 ld.b r2, (r3, 0x2) + 76be: 310e movi r1, 14 + switch(RecData[7]) //风速 + 76c0: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 76c2: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 76c4: 080b bt 0x76da // 76da + 76c6: e3ffcb1b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 76ca: 0204 .short 0x0204 + 76cc: 0806 .short 0x0806 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 76ce: 3aa1 bseti r2, 1 + 76d0: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 76d2: a342 st.b r2, (r3, 0x2) + 76d4: 078a br 0x75e8 // 75e8 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 76d6: 3aa2 bseti r2, 2 + 76d8: 07fd br 0x76d2 // 76d2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 76da: 3aa1 bseti r2, 1 + 76dc: 07fb br 0x76d2 // 76d2 + return ret = 0x01; + 76de: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 76e0: 1493 pop r4-r6, r15 + 76e2: 0000 bkpt + 76e4: 20000434 .long 0x20000434 + 76e8: 200004f4 .long 0x200004f4 + 76ec: 200003d1 .long 0x200003d1 + 76f0: 00008e45 .long 0x00008e45 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000076f4 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 76f4: 14d2 push r4-r5, r15 + 76f6: 6d03 mov r4, r0 + 76f8: 6d47 mov r5, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 76fa: e3ffff23 bsr 0x7540 // 7540 + 76fe: 3840 cmpnei r0, 0 + 7700: 0803 bt 0x7706 // 7706 + { + return ret = 1; + } + } + + return ret; + 7702: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7704: 0409 br 0x7716 // 7716 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 7706: 8440 ld.b r2, (r4, 0x0) + 7708: 33ff movi r3, 255 + 770a: 64ca cmpne r2, r3 + 770c: 0c06 bf 0x7718 // 7718 + 770e: 8461 ld.b r3, (r4, 0x1) + 7710: 3b48 cmpnei r3, 8 + 7712: 0c03 bf 0x7718 // 7718 + return ret = 1; + 7714: 3001 movi r0, 1 + 7716: 1492 pop r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 7718: 1125 lrw r1, 0x8e54 // 77ac + 771a: 3000 movi r0, 0 + 771c: e3ffe214 bsr 0x3b44 // 3b44 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 7720: 3d45 cmpnei r5, 5 + 7722: 0814 bt 0x774a // 774a + 7724: 3104 movi r1, 4 + 7726: 6c13 mov r0, r4 + 7728: e3fffe32 bsr 0x738c // 738c + 772c: 8464 ld.b r3, (r4, 0x4) + 772e: 640e cmpne r3, r0 + 7730: 0bf2 bt 0x7714 // 7714 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 7732: 1160 lrw r3, 0x200004f4 // 77b0 + 7734: 8442 ld.b r2, (r4, 0x2) + 7736: 8338 ld.b r1, (r3, 0x18) + 7738: 6486 cmpne r1, r2 + 773a: 0fe4 bf 0x7702 // 7702 + 773c: 833a ld.b r1, (r3, 0x1a) + 773e: 3941 cmpnei r1, 1 + 7740: 0be1 bt 0x7702 // 7702 + TempCtrl.CardState = RecData[2]; + 7742: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 7744: 3201 movi r2, 1 + 7746: a359 st.b r2, (r3, 0x19) + 7748: 07dd br 0x7702 // 7702 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 774a: 3d09 cmphsi r5, 10 + 774c: 0fe4 bf 0x7714 // 7714 + 774e: 5d27 subi r1, r5, 2 + 7750: 7445 zexth r1, r1 + 7752: 6150 addu r5, r4 + 7754: 6c13 mov r0, r4 + 7756: e3fffdfd bsr 0x7350 // 7350 + 775a: 5d63 subi r3, r5, 1 + 775c: 8360 ld.b r3, (r3, 0x0) + 775e: 2d01 subi r5, 2 + 7760: 4368 lsli r3, r3, 8 + 7762: 8540 ld.b r2, (r5, 0x0) + 7764: 60c8 addu r3, r2 + 7766: 64c2 cmpne r0, r3 + 7768: 0bd6 bt 0x7714 // 7714 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 776a: 1072 lrw r3, 0x200004f4 // 77b0 + 776c: 8443 ld.b r2, (r4, 0x3) + 776e: 8338 ld.b r1, (r3, 0x18) + 7770: 6486 cmpne r1, r2 + 7772: 0c07 bf 0x7780 // 7780 + 7774: 833a ld.b r1, (r3, 0x1a) + 7776: 3941 cmpnei r1, 1 + 7778: 0804 bt 0x7780 // 7780 + TempCtrl.CardState = RecData[3]; + 777a: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 777c: 3201 movi r2, 1 + 777e: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 7780: 8447 ld.b r2, (r4, 0x7) + 7782: 833b ld.b r1, (r3, 0x1b) + 7784: 6486 cmpne r1, r2 + 7786: 0c0d bf 0x77a0 // 77a0 + TempCtrl.SceneNo = RecData[7]; + 7788: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 778a: 104b lrw r2, 0x200000b8 // 77b4 + 778c: 9240 ld.w r2, (r2, 0x0) + 778e: 4a28 lsri r1, r2, 8 + 7790: a354 st.b r2, (r3, 0x14) + 7792: a335 st.b r1, (r3, 0x15) + 7794: 4a30 lsri r1, r2, 16 + 7796: 4a58 lsri r2, r2, 24 + 7798: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 779a: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 779c: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 779e: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 77a0: 835b ld.b r2, (r3, 0x1b) + 77a2: 1026 lrw r1, 0x8e66 // 77b8 + 77a4: 3000 movi r0, 0 + 77a6: e3ffe1cf bsr 0x3b44 // 3b44 + 77aa: 07ac br 0x7702 // 7702 + 77ac: 00008e54 .long 0x00008e54 + 77b0: 200004f4 .long 0x200004f4 + 77b4: 200000b8 .long 0x200000b8 + 77b8: 00008e66 .long 0x00008e66 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +000077bc : + 77bc: 1063 lrw r3, 0x20000058 // 77c8 + 77be: 9340 ld.w r2, (r3, 0x0) + 77c0: 926b ld.w r3, (r2, 0x2c) + 77c2: 6c0c or r0, r3 + 77c4: b20b st.w r0, (r2, 0x2c) + 77c6: 783c jmp r15 + 77c8: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +000077cc : + 77cc: 14c1 push r4 + 77ce: 1069 lrw r3, 0x20000058 // 77f0 + 77d0: 3840 cmpnei r0, 0 + 77d2: 9380 ld.w r4, (r3, 0x0) + 77d4: 9400 ld.w r0, (r4, 0x0) + 77d6: 0c0b bf 0x77ec // 77ec + 77d8: 38a0 bseti r0, 0 + 77da: b400 st.w r0, (r4, 0x0) + 77dc: 9360 ld.w r3, (r3, 0x0) + 77de: 4248 lsli r2, r2, 8 + 77e0: 4122 lsli r1, r1, 2 + 77e2: 9300 ld.w r0, (r3, 0x0) + 77e4: 6c48 or r1, r2 + 77e6: 6c40 or r1, r0 + 77e8: b320 st.w r1, (r3, 0x0) + 77ea: 1481 pop r4 + 77ec: 3880 bclri r0, 0 + 77ee: 07f6 br 0x77da // 77da + 77f0: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +000077f4 : + 77f4: 14c4 push r4-r7 + 77f6: 1429 subi r14, r14, 36 + 77f8: b840 st.w r2, (r14, 0x0) + 77fa: 984d ld.w r2, (r14, 0x34) + 77fc: b841 st.w r2, (r14, 0x4) + 77fe: 984e ld.w r2, (r14, 0x38) + 7800: b842 st.w r2, (r14, 0x8) + 7802: 984f ld.w r2, (r14, 0x3c) + 7804: b843 st.w r2, (r14, 0xc) + 7806: 9850 ld.w r2, (r14, 0x40) + 7808: 9895 ld.w r4, (r14, 0x54) + 780a: b844 st.w r2, (r14, 0x10) + 780c: 9853 ld.w r2, (r14, 0x4c) + 780e: b845 st.w r2, (r14, 0x14) + 7810: b887 st.w r4, (r14, 0x1c) + 7812: 9854 ld.w r2, (r14, 0x50) + 7814: 1c11 addi r4, r14, 68 + 7816: b846 st.w r2, (r14, 0x18) + 7818: 8c80 ld.h r4, (r4, 0x0) + 781a: 1a15 addi r2, r14, 84 + 781c: 1d12 addi r5, r14, 72 + 781e: 8244 ld.b r2, (r2, 0x4) + 7820: 3c40 cmpnei r4, 0 + 7822: 8dc0 ld.h r6, (r5, 0x0) + 7824: b848 st.w r2, (r14, 0x20) + 7826: 0813 bt 0x784c // 784c + 7828: 105f lrw r2, 0x2000004c // 78a4 + 782a: 35f0 movi r5, 240 + 782c: 92e0 ld.w r7, (r2, 0x0) + 782e: 9740 ld.w r2, (r7, 0x0) + 7830: 45a4 lsli r5, r5, 4 + 7832: 6895 andn r2, r5 + 7834: 3aab bseti r2, 11 + 7836: b740 st.w r2, (r7, 0x0) + 7838: 3502 movi r5, 2 + 783a: 105c lrw r2, 0x20000050 // 78a8 + 783c: 3e41 cmpnei r6, 1 + 783e: 9240 ld.w r2, (r2, 0x0) + 7840: b2a0 st.w r5, (r2, 0x0) + 7842: 0828 bt 0x7892 // 7892 + 7844: 92a4 ld.w r5, (r2, 0x10) + 7846: 3db8 bseti r5, 24 + 7848: 3db9 bseti r5, 25 + 784a: b2a4 st.w r5, (r2, 0x10) + 784c: 1058 lrw r2, 0x20000058 // 78ac + 784e: 448d lsli r4, r4, 13 + 7850: 92a0 ld.w r5, (r2, 0x0) + 7852: 9541 ld.w r2, (r5, 0x4) + 7854: 3200 movi r2, 0 + 7856: b541 st.w r2, (r5, 0x4) + 7858: 9541 ld.w r2, (r5, 0x4) + 785a: 98c7 ld.w r6, (r14, 0x1c) + 785c: 6c98 or r2, r6 + 785e: 98c6 ld.w r6, (r14, 0x18) + 7860: 6c98 or r2, r6 + 7862: 98c5 ld.w r6, (r14, 0x14) + 7864: 6c98 or r2, r6 + 7866: 98c8 ld.w r6, (r14, 0x20) + 7868: 46d8 lsli r6, r6, 24 + 786a: 6c98 or r2, r6 + 786c: 98c4 ld.w r6, (r14, 0x10) + 786e: 6c98 or r2, r6 + 7870: 98c3 ld.w r6, (r14, 0xc) + 7872: 6c98 or r2, r6 + 7874: 98c2 ld.w r6, (r14, 0x8) + 7876: 6c98 or r2, r6 + 7878: 98c1 ld.w r6, (r14, 0x4) + 787a: 6c98 or r2, r6 + 787c: 6c48 or r1, r2 + 787e: 9840 ld.w r2, (r14, 0x0) + 7880: 6c04 or r0, r1 + 7882: 4242 lsli r2, r2, 2 + 7884: 6c08 or r0, r2 + 7886: 6d00 or r4, r0 + 7888: 4367 lsli r3, r3, 7 + 788a: 6cd0 or r3, r4 + 788c: b561 st.w r3, (r5, 0x4) + 788e: 1409 addi r14, r14, 36 + 7890: 1484 pop r4-r7 + 7892: 3e40 cmpnei r6, 0 + 7894: 0bdc bt 0x784c // 784c + 7896: 9264 ld.w r3, (r2, 0x10) + 7898: 3b98 bclri r3, 24 + 789a: 3b99 bclri r3, 25 + 789c: 3bb8 bseti r3, 24 + 789e: b264 st.w r3, (r2, 0x10) + 78a0: 3300 movi r3, 0 + 78a2: 07d5 br 0x784c // 784c + 78a4: 2000004c .long 0x2000004c + 78a8: 20000050 .long 0x20000050 + 78ac: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +000078b0 : + 78b0: 14d4 push r4-r7, r15 + 78b2: 1422 subi r14, r14, 8 + 78b4: 1269 lrw r3, 0x2000004c // 79d8 + 78b6: 31f0 movi r1, 240 + 78b8: 9360 ld.w r3, (r3, 0x0) + 78ba: 9340 ld.w r2, (r3, 0x0) + 78bc: 4130 lsli r1, r1, 16 + 78be: 6885 andn r2, r1 + 78c0: 3ab4 bseti r2, 20 + 78c2: 3ab7 bseti r2, 23 + 78c4: b340 st.w r2, (r3, 0x0) + 78c6: 35f0 movi r5, 240 + 78c8: 1245 lrw r2, 0x200001f4 // 79dc + 78ca: 36f0 movi r6, 240 + 78cc: 9240 ld.w r2, (r2, 0x0) + 78ce: b841 st.w r2, (r14, 0x4) + 78d0: 3400 movi r4, 0 + 78d2: 1244 lrw r2, 0x20000048 // 79e0 + 78d4: 45ac lsli r5, r5, 12 + 78d6: 9240 ld.w r2, (r2, 0x0) + 78d8: b820 st.w r1, (r14, 0x0) + 78da: 46c8 lsli r6, r6, 8 + 78dc: 3701 movi r7, 1 + 78de: 71d0 lsl r7, r4 + 78e0: 9821 ld.w r1, (r14, 0x4) + 78e2: 69c4 and r7, r1 + 78e4: 3f40 cmpnei r7, 0 + 78e6: 7410 zextb r0, r4 + 78e8: 0c1b bf 0x791e // 791e + 78ea: 2800 subi r0, 1 + 78ec: 380f cmphsi r0, 16 + 78ee: 080b bt 0x7904 // 7904 + 78f0: e3ffca06 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 78f4: 27201a0f .long 0x27201a0f + 78f8: 3d38312c .long 0x3d38312c + 78fc: 56514a44 .long 0x56514a44 + 7900: 6c67615b .long 0x6c67615b + 7904: 9200 ld.w r0, (r2, 0x0) + 7906: 37f0 movi r7, 240 + 7908: 681d andn r0, r7 + 790a: 38a4 bseti r0, 4 + 790c: 38a7 bseti r0, 7 + 790e: b200 st.w r0, (r2, 0x0) + 7910: 0407 br 0x791e // 791e + 7912: 9300 ld.w r0, (r3, 0x0) + 7914: 370f movi r7, 15 + 7916: 681d andn r0, r7 + 7918: 38a0 bseti r0, 0 + 791a: 38a3 bseti r0, 3 + 791c: b300 st.w r0, (r3, 0x0) + 791e: 2400 addi r4, 1 + 7920: 3c51 cmpnei r4, 17 + 7922: 0bdd bt 0x78dc // 78dc + 7924: 1402 addi r14, r14, 8 + 7926: 1494 pop r4-r7, r15 + 7928: 9300 ld.w r0, (r3, 0x0) + 792a: 37f0 movi r7, 240 + 792c: 681d andn r0, r7 + 792e: 38a4 bseti r0, 4 + 7930: 38a7 bseti r0, 7 + 7932: 07f5 br 0x791c // 791c + 7934: 37f0 movi r7, 240 + 7936: 9300 ld.w r0, (r3, 0x0) + 7938: 47e4 lsli r7, r7, 4 + 793a: 681d andn r0, r7 + 793c: 38a8 bseti r0, 8 + 793e: 38ab bseti r0, 11 + 7940: 07ee br 0x791c // 791c + 7942: 9300 ld.w r0, (r3, 0x0) + 7944: 6819 andn r0, r6 + 7946: 38ac bseti r0, 12 + 7948: 38af bseti r0, 15 + 794a: 07e9 br 0x791c // 791c + 794c: 9300 ld.w r0, (r3, 0x0) + 794e: 6815 andn r0, r5 + 7950: 38b0 bseti r0, 16 + 7952: 38b3 bseti r0, 19 + 7954: 07e4 br 0x791c // 791c + 7956: 37f0 movi r7, 240 + 7958: 9200 ld.w r0, (r2, 0x0) + 795a: 47e4 lsli r7, r7, 4 + 795c: 681d andn r0, r7 + 795e: 38a8 bseti r0, 8 + 7960: 38ab bseti r0, 11 + 7962: 07d6 br 0x790e // 790e + 7964: 9200 ld.w r0, (r2, 0x0) + 7966: 6819 andn r0, r6 + 7968: 38ac bseti r0, 12 + 796a: 38af bseti r0, 15 + 796c: 07d1 br 0x790e // 790e + 796e: 9301 ld.w r0, (r3, 0x4) + 7970: 370f movi r7, 15 + 7972: 681d andn r0, r7 + 7974: 38a0 bseti r0, 0 + 7976: 38a3 bseti r0, 3 + 7978: b301 st.w r0, (r3, 0x4) + 797a: 07d2 br 0x791e // 791e + 797c: 9301 ld.w r0, (r3, 0x4) + 797e: 37f0 movi r7, 240 + 7980: 681d andn r0, r7 + 7982: 38a4 bseti r0, 4 + 7984: 38a7 bseti r0, 7 + 7986: 07f9 br 0x7978 // 7978 + 7988: 37f0 movi r7, 240 + 798a: 9301 ld.w r0, (r3, 0x4) + 798c: 47e4 lsli r7, r7, 4 + 798e: 681d andn r0, r7 + 7990: 38a8 bseti r0, 8 + 7992: 38ab bseti r0, 11 + 7994: 07f2 br 0x7978 // 7978 + 7996: 9301 ld.w r0, (r3, 0x4) + 7998: 6819 andn r0, r6 + 799a: 38ac bseti r0, 12 + 799c: 38af bseti r0, 15 + 799e: 07ed br 0x7978 // 7978 + 79a0: 9301 ld.w r0, (r3, 0x4) + 79a2: 6815 andn r0, r5 + 79a4: 38b0 bseti r0, 16 + 79a6: 38b3 bseti r0, 19 + 79a8: 07e8 br 0x7978 // 7978 + 79aa: 9301 ld.w r0, (r3, 0x4) + 79ac: 9820 ld.w r1, (r14, 0x0) + 79ae: 6805 andn r0, r1 + 79b0: 38b4 bseti r0, 20 + 79b2: 38b7 bseti r0, 23 + 79b4: 07e2 br 0x7978 // 7978 + 79b6: 9200 ld.w r0, (r2, 0x0) + 79b8: 370f movi r7, 15 + 79ba: 681d andn r0, r7 + 79bc: 38a0 bseti r0, 0 + 79be: 38a3 bseti r0, 3 + 79c0: 07a7 br 0x790e // 790e + 79c2: 9200 ld.w r0, (r2, 0x0) + 79c4: 6815 andn r0, r5 + 79c6: 38b0 bseti r0, 16 + 79c8: 38b3 bseti r0, 19 + 79ca: 07a2 br 0x790e // 790e + 79cc: 9200 ld.w r0, (r2, 0x0) + 79ce: 9820 ld.w r1, (r14, 0x0) + 79d0: 6805 andn r0, r1 + 79d2: 38b4 bseti r0, 20 + 79d4: 38b7 bseti r0, 23 + 79d6: 079c br 0x790e // 790e + 79d8: 2000004c .long 0x2000004c + 79dc: 200001f4 .long 0x200001f4 + 79e0: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +000079e4 : + 79e4: 14c4 push r4-r7 + 79e6: 1072 lrw r3, 0x20000054 // 7a2c + 79e8: 1012 lrw r0, 0x200007d2 // 7a30 + 79ea: 1093 lrw r4, 0x20000643 // 7a34 + 79ec: 6d83 mov r6, r0 + 79ee: 93a0 ld.w r5, (r3, 0x0) + 79f0: 3300 movi r3, 0 + 79f2: 4342 lsli r2, r3, 2 + 79f4: 6094 addu r2, r5 + 79f6: 9220 ld.w r1, (r2, 0x0) + 79f8: 4341 lsli r2, r3, 1 + 79fa: 6080 addu r2, r0 + 79fc: 7445 zexth r1, r1 + 79fe: aa20 st.h r1, (r2, 0x0) + 7a00: 8440 ld.b r2, (r4, 0x0) + 7a02: 3a41 cmpnei r2, 1 + 7a04: 080f bt 0x7a22 // 7a22 + 7a06: 3300 movi r3, 0 + 7a08: 10ec lrw r7, 0x2000052c // 7a38 + 7a0a: 4341 lsli r2, r3, 1 + 7a0c: 5e28 addu r1, r6, r2 + 7a0e: 8920 ld.h r1, (r1, 0x0) + 7a10: 2300 addi r3, 1 + 7a12: 7445 zexth r1, r1 + 7a14: 609c addu r2, r7 + 7a16: 3b51 cmpnei r3, 17 + 7a18: aa20 st.h r1, (r2, 0x0) + 7a1a: 0bf8 bt 0x7a0a // 7a0a + 7a1c: 3300 movi r3, 0 + 7a1e: a460 st.b r3, (r4, 0x0) + 7a20: 3311 movi r3, 17 + 7a22: 2300 addi r3, 1 + 7a24: 74cc zextb r3, r3 + 7a26: 3b10 cmphsi r3, 17 + 7a28: 0fe5 bf 0x79f2 // 79f2 + 7a2a: 1484 pop r4-r7 + 7a2c: 20000054 .long 0x20000054 + 7a30: 200007d2 .long 0x200007d2 + 7a34: 20000643 .long 0x20000643 + 7a38: 2000052c .long 0x2000052c + +Disassembly of section .text.TKEYIntHandler: + +00007a3c : + 7a3c: 1460 nie + 7a3e: 1462 ipush + 7a40: 14d1 push r4, r15 + 7a42: 109e lrw r4, 0x20000070 // 7ab8 + 7a44: 9460 ld.w r3, (r4, 0x0) + 7a46: 3b40 cmpnei r3, 0 + 7a48: 080b bt 0x7a5e // 7a5e + 7a4a: 3301 movi r3, 1 + 7a4c: b460 st.w r3, (r4, 0x0) + 7a4e: 107c lrw r3, 0x200005c0 // 7abc + 7a50: 8360 ld.b r3, (r3, 0x0) + 7a52: 3b41 cmpnei r3, 1 + 7a54: 0805 bt 0x7a5e // 7a5e + 7a56: e3ffffc7 bsr 0x79e4 // 79e4 + 7a5a: 3301 movi r3, 1 + 7a5c: a464 st.b r3, (r4, 0x4) + 7a5e: 1079 lrw r3, 0x20000058 // 7ac0 + 7a60: 3101 movi r1, 1 + 7a62: 9360 ld.w r3, (r3, 0x0) + 7a64: 934a ld.w r2, (r3, 0x28) + 7a66: 6884 and r2, r1 + 7a68: 3a40 cmpnei r2, 0 + 7a6a: 0c02 bf 0x7a6e // 7a6e + 7a6c: b32c st.w r1, (r3, 0x30) + 7a6e: 934a ld.w r2, (r3, 0x28) + 7a70: 3102 movi r1, 2 + 7a72: 6884 and r2, r1 + 7a74: 3a40 cmpnei r2, 0 + 7a76: 0c02 bf 0x7a7a // 7a7a + 7a78: b32c st.w r1, (r3, 0x30) + 7a7a: 934a ld.w r2, (r3, 0x28) + 7a7c: 3104 movi r1, 4 + 7a7e: 6884 and r2, r1 + 7a80: 3a40 cmpnei r2, 0 + 7a82: 0c02 bf 0x7a86 // 7a86 + 7a84: b32c st.w r1, (r3, 0x30) + 7a86: 934a ld.w r2, (r3, 0x28) + 7a88: 3108 movi r1, 8 + 7a8a: 6884 and r2, r1 + 7a8c: 3a40 cmpnei r2, 0 + 7a8e: 0c02 bf 0x7a92 // 7a92 + 7a90: b32c st.w r1, (r3, 0x30) + 7a92: 934a ld.w r2, (r3, 0x28) + 7a94: 3110 movi r1, 16 + 7a96: 6884 and r2, r1 + 7a98: 3a40 cmpnei r2, 0 + 7a9a: 0c02 bf 0x7a9e // 7a9e + 7a9c: b32c st.w r1, (r3, 0x30) + 7a9e: 934a ld.w r2, (r3, 0x28) + 7aa0: 3120 movi r1, 32 + 7aa2: 6884 and r2, r1 + 7aa4: 3a40 cmpnei r2, 0 + 7aa6: 0c02 bf 0x7aaa // 7aaa + 7aa8: b32c st.w r1, (r3, 0x30) + 7aaa: d9ee2001 ld.w r15, (r14, 0x4) + 7aae: 9880 ld.w r4, (r14, 0x0) + 7ab0: 1402 addi r14, r14, 8 + 7ab2: 1463 ipop + 7ab4: 1461 nir + 7ab6: 0000 bkpt + 7ab8: 20000070 .long 0x20000070 + 7abc: 200005c0 .long 0x200005c0 + 7ac0: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00007ac4 : + 7ac4: 14c2 push r4-r5 + 7ac6: 3200 movi r2, 0 + 7ac8: 3000 movi r0, 0 + 7aca: 1088 lrw r4, 0x20000660 // 7ae8 + 7acc: 3501 movi r5, 1 + 7ace: 3120 movi r1, 32 + 7ad0: 9460 ld.w r3, (r4, 0x0) + 7ad2: 70c9 lsr r3, r2 + 7ad4: 68d4 and r3, r5 + 7ad6: 3b40 cmpnei r3, 0 + 7ad8: 0c02 bf 0x7adc // 7adc + 7ada: 2000 addi r0, 1 + 7adc: 2200 addi r2, 1 + 7ade: 644a cmpne r2, r1 + 7ae0: 0bf8 bt 0x7ad0 // 7ad0 + 7ae2: 7400 zextb r0, r0 + 7ae4: 1482 pop r4-r5 + 7ae6: 0000 bkpt + 7ae8: 20000660 .long 0x20000660 + +Disassembly of section .text.TK_Baseline_prog: + +00007aec : + 7aec: 14c4 push r4-r7 + 7aee: 1423 subi r14, r14, 12 + 7af0: 1079 lrw r3, 0x20000058 // 7b54 + 7af2: 105a lrw r2, 0x2000052c // 7b58 + 7af4: 10ba lrw r5, 0x20000070 // 7b5c + 7af6: b842 st.w r2, (r14, 0x8) + 7af8: 9360 ld.w r3, (r3, 0x0) + 7afa: b860 st.w r3, (r14, 0x0) + 7afc: 1079 lrw r3, 0x20000054 // 7b60 + 7afe: 9360 ld.w r3, (r3, 0x0) + 7b00: b861 st.w r3, (r14, 0x4) + 7b02: 3306 movi r3, 6 + 7b04: 3201 movi r2, 1 + 7b06: 9820 ld.w r1, (r14, 0x0) + 7b08: b142 st.w r2, (r1, 0x8) + 7b0a: 3200 movi r2, 0 + 7b0c: b540 st.w r2, (r5, 0x0) + 7b0e: 9540 ld.w r2, (r5, 0x0) + 7b10: 3a40 cmpnei r2, 0 + 7b12: 0ffe bf 0x7b0e // 7b0e + 7b14: 6c03 mov r0, r0 + 7b16: 3200 movi r2, 0 + 7b18: 10d3 lrw r6, 0x200007d2 // 7b64 + 7b1a: 4202 lsli r0, r2, 2 + 7b1c: 9821 ld.w r1, (r14, 0x4) + 7b1e: 6004 addu r0, r1 + 7b20: 9080 ld.w r4, (r0, 0x0) + 7b22: 4221 lsli r1, r2, 1 + 7b24: 98e2 ld.w r7, (r14, 0x8) + 7b26: 61c4 addu r7, r1 + 7b28: 7511 zexth r4, r4 + 7b2a: af80 st.h r4, (r7, 0x0) + 7b2c: 9000 ld.w r0, (r0, 0x0) + 7b2e: 2200 addi r2, 1 + 7b30: 7401 zexth r0, r0 + 7b32: 6058 addu r1, r6 + 7b34: 3a51 cmpnei r2, 17 + 7b36: a900 st.h r0, (r1, 0x0) + 7b38: 0bf1 bt 0x7b1a // 7b1a + 7b3a: 2b00 subi r3, 1 + 7b3c: 74cc zextb r3, r3 + 7b3e: 3b40 cmpnei r3, 0 + 7b40: 0be2 bt 0x7b04 // 7b04 + 7b42: 106a lrw r3, 0x200005c0 // 7b68 + 7b44: 3201 movi r2, 1 + 7b46: a340 st.b r2, (r3, 0x0) + 7b48: 3200 movi r2, 0 + 7b4a: 1069 lrw r3, 0x20000749 // 7b6c + 7b4c: a340 st.b r2, (r3, 0x0) + 7b4e: 1403 addi r14, r14, 12 + 7b50: 1484 pop r4-r7 + 7b52: 0000 bkpt + 7b54: 20000058 .long 0x20000058 + 7b58: 2000052c .long 0x2000052c + 7b5c: 20000070 .long 0x20000070 + 7b60: 20000054 .long 0x20000054 + 7b64: 200007d2 .long 0x200007d2 + 7b68: 200005c0 .long 0x200005c0 + 7b6c: 20000749 .long 0x20000749 + +Disassembly of section .text.TK_Scan_Start: + +00007b70 : + 7b70: 1046 lrw r2, 0x20000070 // 7b88 + 7b72: 8264 ld.b r3, (r2, 0x4) + 7b74: 74cc zextb r3, r3 + 7b76: 3b41 cmpnei r3, 1 + 7b78: 0807 bt 0x7b86 // 7b86 + 7b7a: 1025 lrw r1, 0x20000058 // 7b8c + 7b7c: 9120 ld.w r1, (r1, 0x0) + 7b7e: b162 st.w r3, (r1, 0x8) + 7b80: 3300 movi r3, 0 + 7b82: b260 st.w r3, (r2, 0x0) + 7b84: a264 st.b r3, (r2, 0x4) + 7b86: 783c jmp r15 + 7b88: 20000070 .long 0x20000070 + 7b8c: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00007b90 : + 7b90: 14d4 push r4-r7, r15 + 7b92: 1425 subi r14, r14, 20 + 7b94: 1271 lrw r3, 0x200001f0 // 7cd8 + 7b96: 8360 ld.b r3, (r3, 0x0) + 7b98: b860 st.w r3, (r14, 0x0) + 7b9a: 3400 movi r4, 0 + 7b9c: 1270 lrw r3, 0x200001c4 // 7cdc + 7b9e: 8360 ld.b r3, (r3, 0x0) + 7ba0: b861 st.w r3, (r14, 0x4) + 7ba2: 12f0 lrw r7, 0x200005d6 // 7ce0 + 7ba4: 1270 lrw r3, 0x200001cd // 7ce4 + 7ba6: 83a0 ld.b r5, (r3, 0x0) + 7ba8: 1270 lrw r3, 0x200001cc // 7ce8 + 7baa: 8360 ld.b r3, (r3, 0x0) + 7bac: b862 st.w r3, (r14, 0x8) + 7bae: 6d9f mov r6, r7 + 7bb0: 126f lrw r3, 0x200007d2 // 7cec + 7bb2: b863 st.w r3, (r14, 0xc) + 7bb4: 4461 lsli r3, r4, 1 + 7bb6: 9843 ld.w r2, (r14, 0xc) + 7bb8: 608c addu r2, r3 + 7bba: 122e lrw r1, 0x2000052c // 7cf0 + 7bbc: 604c addu r1, r3 + 7bbe: 8a40 ld.h r2, (r2, 0x0) + 7bc0: 8920 ld.h r1, (r1, 0x0) + 7bc2: 6086 subu r2, r1 + 7bc4: 748b sexth r2, r2 + 7bc6: 5f2c addu r1, r7, r3 + 7bc8: a940 st.h r2, (r1, 0x0) + 7bca: 8940 ld.h r2, (r1, 0x0) + 7bcc: 748b sexth r2, r2 + 7bce: 3adf btsti r2, 31 + 7bd0: 1249 lrw r2, 0x2000078e // 7cf4 + 7bd2: 608c addu r2, r3 + 7bd4: 0c37 bf 0x7c42 // 7c42 + 7bd6: 3100 movi r1, 0 + 7bd8: aa20 st.h r1, (r2, 0x0) + 7bda: 9840 ld.w r2, (r14, 0x0) + 7bdc: 3a01 cmphsi r2, 2 + 7bde: 0c6d bf 0x7cb8 // 7cb8 + 7be0: 4461 lsli r3, r4, 1 + 7be2: 5e2c addu r1, r6, r3 + 7be4: 1205 lrw r0, 0x2000021e // 7cf8 + 7be6: 8940 ld.h r2, (r1, 0x0) + 7be8: 60c0 addu r3, r0 + 7bea: 748b sexth r2, r2 + 7bec: 8b60 ld.h r3, (r3, 0x0) + 7bee: 648d cmplt r3, r2 + 7bf0: 9840 ld.w r2, (r14, 0x0) + 7bf2: 7cc8 mult r3, r2 + 7bf4: 0c2a bf 0x7c48 // 7c48 + 7bf6: 8940 ld.h r2, (r1, 0x0) + 7bf8: 748b sexth r2, r2 + 7bfa: 64c9 cmplt r2, r3 + 7bfc: 0c26 bf 0x7c48 // 7c48 + 7bfe: 1240 lrw r2, 0x200005c4 // 7cfc + 7c00: 6090 addu r2, r4 + 7c02: 8260 ld.b r3, (r2, 0x0) + 7c04: 2300 addi r3, 1 + 7c06: 74cc zextb r3, r3 + 7c08: a260 st.b r3, (r2, 0x0) + 7c0a: 3100 movi r1, 0 + 7c0c: 117d lrw r3, 0x200005aa // 7d00 + 7c0e: 60d0 addu r3, r4 + 7c10: a320 st.b r1, (r3, 0x0) + 7c12: 117d lrw r3, 0x20000686 // 7d04 + 7c14: 60d0 addu r3, r4 + 7c16: a320 st.b r1, (r3, 0x0) + 7c18: 117c lrw r3, 0x20000700 // 7d08 + 7c1a: 60d0 addu r3, r4 + 7c1c: a320 st.b r1, (r3, 0x0) + 7c1e: 8260 ld.b r3, (r2, 0x0) + 7c20: 9821 ld.w r1, (r14, 0x4) + 7c22: 64c4 cmphs r1, r3 + 7c24: 081f bt 0x7c62 // 7c62 + 7c26: 3d40 cmpnei r5, 0 + 7c28: 0852 bt 0x7ccc // 7ccc + 7c2a: 1139 lrw r1, 0x200005bc // 7d0c + 7c2c: 9160 ld.w r3, (r1, 0x0) + 7c2e: 3b40 cmpnei r3, 0 + 7c30: 0806 bt 0x7c3c // 7c3c + 7c32: 9100 ld.w r0, (r1, 0x0) + 7c34: 3301 movi r3, 1 + 7c36: 70d0 lsl r3, r4 + 7c38: 6cc0 or r3, r0 + 7c3a: b160 st.w r3, (r1, 0x0) + 7c3c: 3300 movi r3, 0 + 7c3e: a260 st.b r3, (r2, 0x0) + 7c40: 0411 br 0x7c62 // 7c62 + 7c42: 8920 ld.h r1, (r1, 0x0) + 7c44: 7445 zexth r1, r1 + 7c46: 07c9 br 0x7bd8 // 7bd8 + 7c48: 4441 lsli r2, r4, 1 + 7c4a: 6098 addu r2, r6 + 7c4c: 8a40 ld.h r2, (r2, 0x0) + 7c4e: 748b sexth r2, r2 + 7c50: 648d cmplt r3, r2 + 7c52: 0c08 bf 0x7c62 // 7c62 + 7c54: 3300 movi r3, 0 + 7c56: 114e lrw r2, 0x200005bc // 7d0c + 7c58: 2b01 subi r3, 2 + 7c5a: 9220 ld.w r1, (r2, 0x0) + 7c5c: 70d3 rotl r3, r4 + 7c5e: 68c4 and r3, r1 + 7c60: b260 st.w r3, (r2, 0x0) + 7c62: 4441 lsli r2, r4, 1 + 7c64: 5e68 addu r3, r6, r2 + 7c66: 8b60 ld.h r3, (r3, 0x0) + 7c68: 74cf sexth r3, r3 + 7c6a: b864 st.w r3, (r14, 0x10) + 7c6c: 3105 movi r1, 5 + 7c6e: 1163 lrw r3, 0x2000021e // 7cf8 + 7c70: 608c addu r2, r3 + 7c72: 8a00 ld.h r0, (r2, 0x0) + 7c74: 4002 lsli r0, r0, 2 + 7c76: e3ffddc1 bsr 0x37f8 // 37f8 <__divsi3> + 7c7a: 9864 ld.w r3, (r14, 0x10) + 7c7c: 640d cmplt r3, r0 + 7c7e: 0c18 bf 0x7cae // 7cae + 7c80: 1140 lrw r2, 0x200005aa // 7d00 + 7c82: 6090 addu r2, r4 + 7c84: 8260 ld.b r3, (r2, 0x0) + 7c86: 2300 addi r3, 1 + 7c88: 74cc zextb r3, r3 + 7c8a: a260 st.b r3, (r2, 0x0) + 7c8c: 3100 movi r1, 0 + 7c8e: 107c lrw r3, 0x200005c4 // 7cfc + 7c90: 60d0 addu r3, r4 + 7c92: a320 st.b r1, (r3, 0x0) + 7c94: 8260 ld.b r3, (r2, 0x0) + 7c96: 9822 ld.w r1, (r14, 0x8) + 7c98: 64c4 cmphs r1, r3 + 7c9a: 080a bt 0x7cae // 7cae + 7c9c: 3300 movi r3, 0 + 7c9e: 103c lrw r1, 0x200005bc // 7d0c + 7ca0: 2b01 subi r3, 2 + 7ca2: 9100 ld.w r0, (r1, 0x0) + 7ca4: 70d3 rotl r3, r4 + 7ca6: 68c0 and r3, r0 + 7ca8: b160 st.w r3, (r1, 0x0) + 7caa: 3300 movi r3, 0 + 7cac: a260 st.b r3, (r2, 0x0) + 7cae: 2400 addi r4, 1 + 7cb0: 3c51 cmpnei r4, 17 + 7cb2: 0b81 bt 0x7bb4 // 7bb4 + 7cb4: 1405 addi r14, r14, 20 + 7cb6: 1494 pop r4-r7, r15 + 7cb8: 60d8 addu r3, r6 + 7cba: 4441 lsli r2, r4, 1 + 7cbc: 102f lrw r1, 0x2000021e // 7cf8 + 7cbe: 8b60 ld.h r3, (r3, 0x0) + 7cc0: 6084 addu r2, r1 + 7cc2: 74cf sexth r3, r3 + 7cc4: 8a40 ld.h r2, (r2, 0x0) + 7cc6: 64c9 cmplt r2, r3 + 7cc8: 0fcd bf 0x7c62 // 7c62 + 7cca: 079a br 0x7bfe // 7bfe + 7ccc: 3d41 cmpnei r5, 1 + 7cce: 0bb7 bt 0x7c3c // 7c3c + 7cd0: 102f lrw r1, 0x200005bc // 7d0c + 7cd2: 6cd7 mov r3, r5 + 7cd4: 9100 ld.w r0, (r1, 0x0) + 7cd6: 07b0 br 0x7c36 // 7c36 + 7cd8: 200001f0 .long 0x200001f0 + 7cdc: 200001c4 .long 0x200001c4 + 7ce0: 200005d6 .long 0x200005d6 + 7ce4: 200001cd .long 0x200001cd + 7ce8: 200001cc .long 0x200001cc + 7cec: 200007d2 .long 0x200007d2 + 7cf0: 2000052c .long 0x2000052c + 7cf4: 2000078e .long 0x2000078e + 7cf8: 2000021e .long 0x2000021e + 7cfc: 200005c4 .long 0x200005c4 + 7d00: 200005aa .long 0x200005aa + 7d04: 20000686 .long 0x20000686 + 7d08: 20000700 .long 0x20000700 + 7d0c: 200005bc .long 0x200005bc + +Disassembly of section .text.TK_overflow_predict: + +00007d10 : + 7d10: 14d4 push r4-r7, r15 + 7d12: 1421 subi r14, r14, 4 + 7d14: 11d9 lrw r6, 0x20000070 // 7df8 + 7d16: 8665 ld.b r3, (r6, 0x5) + 7d18: 3b41 cmpnei r3, 1 + 7d1a: 085f bt 0x7dd8 // 7dd8 + 7d1c: 1158 lrw r2, 0x200006dc // 7dfc + 7d1e: 8260 ld.b r3, (r2, 0x0) + 7d20: 2300 addi r3, 1 + 7d22: 74cc zextb r3, r3 + 7d24: a260 st.b r3, (r2, 0x0) + 7d26: 8260 ld.b r3, (r2, 0x0) + 7d28: 1136 lrw r1, 0x200001f1 // 7e00 + 7d2a: 8120 ld.b r1, (r1, 0x0) + 7d2c: 64c4 cmphs r1, r3 + 7d2e: 0855 bt 0x7dd8 // 7dd8 + 7d30: 3300 movi r3, 0 + 7d32: a260 st.b r3, (r2, 0x0) + 7d34: 3500 movi r5, 0 + 7d36: 11f4 lrw r7, 0x200001f4 // 7e04 + 7d38: 2605 addi r6, 6 + 7d3a: 9760 ld.w r3, (r7, 0x0) + 7d3c: 70d5 lsr r3, r5 + 7d3e: 3201 movi r2, 1 + 7d40: 68c8 and r3, r2 + 7d42: 3b40 cmpnei r3, 0 + 7d44: 0c34 bf 0x7dac // 7dac + 7d46: 4581 lsli r4, r5, 1 + 7d48: 5e70 addu r3, r6, r4 + 7d4a: 8b00 ld.h r0, (r3, 0x0) + 7d4c: e3ffcc46 bsr 0x15d8 // 15d8 <__floatunsidf> + 7d50: 6cc7 mov r3, r1 + 7d52: 3180 movi r1, 128 + 7d54: 6c83 mov r2, r0 + 7d56: 4137 lsli r1, r1, 23 + 7d58: 3000 movi r0, 0 + 7d5a: e3ffc22d bsr 0x1b4 // 1b4 <__GI_pow> + 7d5e: 116b lrw r3, 0x200001fa // 7e08 + 7d60: 60d0 addu r3, r4 + 7d62: 8b60 ld.h r3, (r3, 0x0) + 7d64: 4364 lsli r3, r3, 4 + 7d66: 230e addi r3, 15 + 7d68: b860 st.w r3, (r14, 0x0) + 7d6a: e3ffc7ef bsr 0xd48 // d48 <__fixunsdfsi> + 7d6e: 9860 ld.w r3, (r14, 0x0) + 7d70: 7cc0 mult r3, r0 + 7d72: 1147 lrw r2, 0x2000076c // 7e0c + 7d74: 740d zexth r0, r3 + 7d76: 6090 addu r2, r4 + 7d78: 1166 lrw r3, 0x200007d2 // 7e10 + 7d7a: 60d0 addu r3, r4 + 7d7c: aa00 st.h r0, (r2, 0x0) + 7d7e: 8b60 ld.h r3, (r3, 0x0) + 7d80: 8a00 ld.h r0, (r2, 0x0) + 7d82: 7401 zexth r0, r0 + 7d84: 325f movi r2, 95 + 7d86: 74cd zexth r3, r3 + 7d88: 7c08 mult r0, r2 + 7d8a: 3164 movi r1, 100 + 7d8c: b860 st.w r3, (r14, 0x0) + 7d8e: e3ffdd35 bsr 0x37f8 // 37f8 <__divsi3> + 7d92: 9860 ld.w r3, (r14, 0x0) + 7d94: 64c1 cmplt r0, r3 + 7d96: 0c0b bf 0x7dac // 7dac + 7d98: 107f lrw r3, 0x200001ce // 7e14 + 7d9a: 610c addu r4, r3 + 7d9c: 8c60 ld.h r3, (r4, 0x0) + 7d9e: 3b06 cmphsi r3, 7 + 7da0: 0806 bt 0x7dac // 7dac + 7da2: 2300 addi r3, 1 + 7da4: ac60 st.h r3, (r4, 0x0) + 7da6: 3201 movi r2, 1 + 7da8: 107c lrw r3, 0x20000631 // 7e18 + 7daa: a340 st.b r2, (r3, 0x0) + 7dac: 2500 addi r5, 1 + 7dae: 3d51 cmpnei r5, 17 + 7db0: 0bc5 bt 0x7d3a // 7d3a + 7db2: 107a lrw r3, 0x20000631 // 7e18 + 7db4: 8340 ld.b r2, (r3, 0x0) + 7db6: 3a41 cmpnei r2, 1 + 7db8: 0810 bt 0x7dd8 // 7dd8 + 7dba: 3200 movi r2, 0 + 7dbc: a340 st.b r2, (r3, 0x0) + 7dbe: 3200 movi r2, 0 + 7dc0: 1077 lrw r3, 0x20000058 // 7e1c + 7dc2: 1018 lrw r0, 0x200006ff // 7e20 + 7dc4: 10b8 lrw r5, 0x20000738 // 7e24 + 7dc6: 10d4 lrw r6, 0x200001ce // 7e14 + 7dc8: 9360 ld.w r3, (r3, 0x0) + 7dca: b342 st.w r2, (r3, 0x8) + 7dcc: 1077 lrw r3, 0x20000054 // 7e28 + 7dce: 9380 ld.w r4, (r3, 0x0) + 7dd0: 3300 movi r3, 0 + 7dd2: 8040 ld.b r2, (r0, 0x0) + 7dd4: 648c cmphs r3, r2 + 7dd6: 0c03 bf 0x7ddc // 7ddc + 7dd8: 1401 addi r14, r14, 4 + 7dda: 1494 pop r4-r7, r15 + 7ddc: 5d4c addu r2, r5, r3 + 7dde: 8240 ld.b r2, (r2, 0x0) + 7de0: 4241 lsli r2, r2, 1 + 7de2: 4322 lsli r1, r3, 2 + 7de4: 6098 addu r2, r6 + 7de6: 6050 addu r1, r4 + 7de8: 8a40 ld.h r2, (r2, 0x0) + 7dea: 91f2 ld.w r7, (r1, 0x48) + 7dec: 4254 lsli r2, r2, 20 + 7dee: 6c9c or r2, r7 + 7df0: 2300 addi r3, 1 + 7df2: b152 st.w r2, (r1, 0x48) + 7df4: 74cc zextb r3, r3 + 7df6: 07ee br 0x7dd2 // 7dd2 + 7df8: 20000070 .long 0x20000070 + 7dfc: 200006dc .long 0x200006dc + 7e00: 200001f1 .long 0x200001f1 + 7e04: 200001f4 .long 0x200001f4 + 7e08: 200001fa .long 0x200001fa + 7e0c: 2000076c .long 0x2000076c + 7e10: 200007d2 .long 0x200007d2 + 7e14: 200001ce .long 0x200001ce + 7e18: 20000631 .long 0x20000631 + 7e1c: 20000058 .long 0x20000058 + 7e20: 200006ff .long 0x200006ff + 7e24: 20000738 .long 0x20000738 + 7e28: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00007e2c : + 7e2c: 14c4 push r4-r7 + 7e2e: 1422 subi r14, r14, 8 + 7e30: 1348 lrw r2, 0x2000065e // 7fd0 + 7e32: 8260 ld.b r3, (r2, 0x0) + 7e34: 2300 addi r3, 1 + 7e36: 74cc zextb r3, r3 + 7e38: a260 st.b r3, (r2, 0x0) + 7e3a: 8260 ld.b r3, (r2, 0x0) + 7e3c: 1326 lrw r1, 0x200001f1 // 7fd4 + 7e3e: 8120 ld.b r1, (r1, 0x0) + 7e40: 644c cmphs r3, r1 + 7e42: 0cad bf 0x7f9c // 7f9c + 7e44: 3300 movi r3, 0 + 7e46: a260 st.b r3, (r2, 0x0) + 7e48: 1364 lrw r3, 0x200005bc // 7fd8 + 7e4a: 9360 ld.w r3, (r3, 0x0) + 7e4c: 3b40 cmpnei r3, 0 + 7e4e: 08a7 bt 0x7f9c // 7f9c + 7e50: 1323 lrw r1, 0x200005d6 // 7fdc + 7e52: 6dc7 mov r7, r1 + 7e54: b820 st.w r1, (r14, 0x0) + 7e56: 3200 movi r2, 0 + 7e58: 1362 lrw r3, 0x2000021e // 7fe0 + 7e5a: 1323 lrw r1, 0x2000052c // 7fe4 + 7e5c: 4201 lsli r0, r2, 1 + 7e5e: 9880 ld.w r4, (r14, 0x0) + 7e60: 6100 addu r4, r0 + 7e62: 8c80 ld.h r4, (r4, 0x0) + 7e64: 7513 sexth r4, r4 + 7e66: 3cdf btsti r4, 31 + 7e68: 0c27 bf 0x7eb6 // 7eb6 + 7e6a: 13a0 lrw r5, 0x200007d2 // 7fe8 + 7e6c: 5980 addu r4, r1, r0 + 7e6e: 6014 addu r0, r5 + 7e70: b881 st.w r4, (r14, 0x4) + 7e72: 8c80 ld.h r4, (r4, 0x0) + 7e74: 88c0 ld.h r6, (r0, 0x0) + 7e76: 7511 zexth r4, r4 + 7e78: 7599 zexth r6, r6 + 7e7a: 8ba0 ld.h r5, (r3, 0x0) + 7e7c: 611a subu r4, r6 + 7e7e: 6551 cmplt r4, r5 + 7e80: 081b bt 0x7eb6 // 7eb6 + 7e82: 9881 ld.w r4, (r14, 0x4) + 7e84: 8c80 ld.h r4, (r4, 0x0) + 7e86: 8800 ld.h r0, (r0, 0x0) + 7e88: 7511 zexth r4, r4 + 7e8a: 7401 zexth r0, r0 + 7e8c: 5c01 subu r0, r4, r0 + 7e8e: 4581 lsli r4, r5, 1 + 7e90: 6150 addu r5, r4 + 7e92: 6541 cmplt r0, r5 + 7e94: 0c11 bf 0x7eb6 // 7eb6 + 7e96: 1296 lrw r4, 0x20000700 // 7fec + 7e98: 6108 addu r4, r2 + 7e9a: 8400 ld.b r0, (r4, 0x0) + 7e9c: 2000 addi r0, 1 + 7e9e: 7400 zextb r0, r0 + 7ea0: a400 st.b r0, (r4, 0x0) + 7ea2: 1214 lrw r0, 0x20000090 // 7ff0 + 7ea4: 84a0 ld.b r5, (r4, 0x0) + 7ea6: 8008 ld.b r0, (r0, 0x8) + 7ea8: 6540 cmphs r0, r5 + 7eaa: 0806 bt 0x7eb6 // 7eb6 + 7eac: 1212 lrw r0, 0x20000643 // 7ff4 + 7eae: 3501 movi r5, 1 + 7eb0: a0a0 st.b r5, (r0, 0x0) + 7eb2: 3000 movi r0, 0 + 7eb4: a400 st.b r0, (r4, 0x0) + 7eb6: 4201 lsli r0, r2, 1 + 7eb8: 5f80 addu r4, r7, r0 + 7eba: 8c80 ld.h r4, (r4, 0x0) + 7ebc: 7513 sexth r4, r4 + 7ebe: 3c20 cmplti r4, 1 + 7ec0: 0870 bt 0x7fa0 // 7fa0 + 7ec2: 128a lrw r4, 0x200007d2 // 7fe8 + 7ec4: 6100 addu r4, r0 + 7ec6: 59a0 addu r5, r1, r0 + 7ec8: 8c80 ld.h r4, (r4, 0x0) + 7eca: 8da0 ld.h r5, (r5, 0x0) + 7ecc: 7555 zexth r5, r5 + 7ece: 7511 zexth r4, r4 + 7ed0: 6116 subu r4, r5 + 7ed2: 8ba0 ld.h r5, (r3, 0x0) + 7ed4: 45a2 lsli r5, r5, 2 + 7ed6: 6551 cmplt r4, r5 + 7ed8: 0864 bt 0x7fa0 // 7fa0 + 7eda: 1288 lrw r4, 0x20000686 // 7ff8 + 7edc: 6108 addu r4, r2 + 7ede: 84a0 ld.b r5, (r4, 0x0) + 7ee0: 2500 addi r5, 1 + 7ee2: 7554 zextb r5, r5 + 7ee4: a4a0 st.b r5, (r4, 0x0) + 7ee6: 12a3 lrw r5, 0x20000090 // 7ff0 + 7ee8: 84c0 ld.b r6, (r4, 0x0) + 7eea: 85a9 ld.b r5, (r5, 0x9) + 7eec: 6594 cmphs r5, r6 + 7eee: 0806 bt 0x7efa // 7efa + 7ef0: 12a1 lrw r5, 0x20000643 // 7ff4 + 7ef2: 3601 movi r6, 1 + 7ef4: a5c0 st.b r6, (r5, 0x0) + 7ef6: 3500 movi r5, 0 + 7ef8: a4a0 st.b r5, (r4, 0x0) + 7efa: 5f80 addu r4, r7, r0 + 7efc: 8c80 ld.h r4, (r4, 0x0) + 7efe: 7513 sexth r4, r4 + 7f00: 3cdf btsti r4, 31 + 7f02: 0c10 bf 0x7f22 // 7f22 + 7f04: 11d9 lrw r6, 0x200007d2 // 7fe8 + 7f06: 59a0 addu r5, r1, r0 + 7f08: 6180 addu r6, r0 + 7f0a: 8d80 ld.h r4, (r5, 0x0) + 7f0c: 8ec0 ld.h r6, (r6, 0x0) + 7f0e: 7599 zexth r6, r6 + 7f10: 7511 zexth r4, r4 + 7f12: 611a subu r4, r6 + 7f14: 8bc0 ld.h r6, (r3, 0x0) + 7f16: 6591 cmplt r4, r6 + 7f18: 0c05 bf 0x7f22 // 7f22 + 7f1a: 8d80 ld.h r4, (r5, 0x0) + 7f1c: 2c00 subi r4, 1 + 7f1e: 7511 zexth r4, r4 + 7f20: ad80 st.h r4, (r5, 0x0) + 7f22: 5f80 addu r4, r7, r0 + 7f24: 8c80 ld.h r4, (r4, 0x0) + 7f26: 7513 sexth r4, r4 + 7f28: 3cdf btsti r4, 31 + 7f2a: 0c11 bf 0x7f4c // 7f4c + 7f2c: 11cf lrw r6, 0x200007d2 // 7fe8 + 7f2e: 59a0 addu r5, r1, r0 + 7f30: 6180 addu r6, r0 + 7f32: 8d80 ld.h r4, (r5, 0x0) + 7f34: 8ec0 ld.h r6, (r6, 0x0) + 7f36: 7599 zexth r6, r6 + 7f38: 7511 zexth r4, r4 + 7f3a: 611a subu r4, r6 + 7f3c: 8bc0 ld.h r6, (r3, 0x0) + 7f3e: 4ec1 lsri r6, r6, 1 + 7f40: 6591 cmplt r4, r6 + 7f42: 0805 bt 0x7f4c // 7f4c + 7f44: 8d80 ld.h r4, (r5, 0x0) + 7f46: 2c01 subi r4, 2 + 7f48: 7511 zexth r4, r4 + 7f4a: ad80 st.h r4, (r5, 0x0) + 7f4c: 5fa0 addu r5, r7, r0 + 7f4e: 8d80 ld.h r4, (r5, 0x0) + 7f50: 7513 sexth r4, r4 + 7f52: 3c20 cmplti r4, 1 + 7f54: 080c bt 0x7f6c // 7f6c + 7f56: 8da0 ld.h r5, (r5, 0x0) + 7f58: 8b80 ld.h r4, (r3, 0x0) + 7f5a: 7557 sexth r5, r5 + 7f5c: 4c81 lsri r4, r4, 1 + 7f5e: 6515 cmplt r5, r4 + 7f60: 0c06 bf 0x7f6c // 7f6c + 7f62: 59a0 addu r5, r1, r0 + 7f64: 8d80 ld.h r4, (r5, 0x0) + 7f66: 2400 addi r4, 1 + 7f68: 7511 zexth r4, r4 + 7f6a: ad80 st.h r4, (r5, 0x0) + 7f6c: 5fa0 addu r5, r7, r0 + 7f6e: 8d80 ld.h r4, (r5, 0x0) + 7f70: 7513 sexth r4, r4 + 7f72: 3c20 cmplti r4, 1 + 7f74: 0810 bt 0x7f94 // 7f94 + 7f76: 8dc0 ld.h r6, (r5, 0x0) + 7f78: 759b sexth r6, r6 + 7f7a: 8b80 ld.h r4, (r3, 0x0) + 7f7c: 6519 cmplt r6, r4 + 7f7e: 0c0b bf 0x7f94 // 7f94 + 7f80: 8da0 ld.h r5, (r5, 0x0) + 7f82: 7557 sexth r5, r5 + 7f84: 4c81 lsri r4, r4, 1 + 7f86: 6515 cmplt r5, r4 + 7f88: 0806 bt 0x7f94 // 7f94 + 7f8a: 6004 addu r0, r1 + 7f8c: 8880 ld.h r4, (r0, 0x0) + 7f8e: 2401 addi r4, 2 + 7f90: 7511 zexth r4, r4 + 7f92: a880 st.h r4, (r0, 0x0) + 7f94: 2200 addi r2, 1 + 7f96: 3a51 cmpnei r2, 17 + 7f98: 2301 addi r3, 2 + 7f9a: 0b61 bt 0x7e5c // 7e5c + 7f9c: 1402 addi r14, r14, 8 + 7f9e: 1484 pop r4-r7 + 7fa0: 5f80 addu r4, r7, r0 + 7fa2: 8c80 ld.h r4, (r4, 0x0) + 7fa4: 7513 sexth r4, r4 + 7fa6: 3cdf btsti r4, 31 + 7fa8: 0fa9 bf 0x7efa // 7efa + 7faa: 10b0 lrw r5, 0x200007d2 // 7fe8 + 7fac: 5980 addu r4, r1, r0 + 7fae: 6140 addu r5, r0 + 7fb0: 8c80 ld.h r4, (r4, 0x0) + 7fb2: 8da0 ld.h r5, (r5, 0x0) + 7fb4: 7555 zexth r5, r5 + 7fb6: 8bc0 ld.h r6, (r3, 0x0) + 7fb8: 7511 zexth r4, r4 + 7fba: 6116 subu r4, r5 + 7fbc: 46a1 lsli r5, r6, 1 + 7fbe: 6158 addu r5, r6 + 7fc0: 6551 cmplt r4, r5 + 7fc2: 0b9c bt 0x7efa // 7efa + 7fc4: 108c lrw r4, 0x20000643 // 7ff4 + 7fc6: 3501 movi r5, 1 + 7fc8: a4a0 st.b r5, (r4, 0x0) + 7fca: 6c03 mov r0, r0 + 7fcc: 0797 br 0x7efa // 7efa + 7fce: 0000 bkpt + 7fd0: 2000065e .long 0x2000065e + 7fd4: 200001f1 .long 0x200001f1 + 7fd8: 200005bc .long 0x200005bc + 7fdc: 200005d6 .long 0x200005d6 + 7fe0: 2000021e .long 0x2000021e + 7fe4: 2000052c .long 0x2000052c + 7fe8: 200007d2 .long 0x200007d2 + 7fec: 20000700 .long 0x20000700 + 7ff0: 20000090 .long 0x20000090 + 7ff4: 20000643 .long 0x20000643 + 7ff8: 20000686 .long 0x20000686 + +Disassembly of section .text.TK_result_prog: + +00007ffc : + 7ffc: 14d2 push r4-r5, r15 + 7ffe: 1050 lrw r2, 0x200005bc // 803c + 8000: 1090 lrw r4, 0x20000660 // 8040 + 8002: 9260 ld.w r3, (r2, 0x0) + 8004: 3b40 cmpnei r3, 0 + 8006: 0c02 bf 0x800a // 800a + 8008: 9260 ld.w r3, (r2, 0x0) + 800a: b460 st.w r3, (r4, 0x0) + 800c: 9460 ld.w r3, (r4, 0x0) + 800e: 3b40 cmpnei r3, 0 + 8010: 10ad lrw r5, 0x20000734 // 8044 + 8012: 0c11 bf 0x8034 // 8034 + 8014: 9440 ld.w r2, (r4, 0x0) + 8016: 9560 ld.w r3, (r5, 0x0) + 8018: 64ca cmpne r2, r3 + 801a: 0c03 bf 0x8020 // 8020 + 801c: 9460 ld.w r3, (r4, 0x0) + 801e: b560 st.w r3, (r5, 0x0) + 8020: e3fffd52 bsr 0x7ac4 // 7ac4 + 8024: 1069 lrw r3, 0x200001f8 // 8048 + 8026: 8360 ld.b r3, (r3, 0x0) + 8028: 640c cmphs r3, r0 + 802a: 0804 bt 0x8032 // 8032 + 802c: 3300 movi r3, 0 + 802e: b460 st.w r3, (r4, 0x0) + 8030: b560 st.w r3, (r5, 0x0) + 8032: 1492 pop r4-r5, r15 + 8034: 1046 lrw r2, 0x20000658 // 804c + 8036: b560 st.w r3, (r5, 0x0) + 8038: b260 st.w r3, (r2, 0x0) + 803a: 07fc br 0x8032 // 8032 + 803c: 200005bc .long 0x200005bc + 8040: 20000660 .long 0x20000660 + 8044: 20000734 .long 0x20000734 + 8048: 200001f8 .long 0x200001f8 + 804c: 20000658 .long 0x20000658 + +Disassembly of section .text.CORETHandler: + +00008050 : + 8050: 1460 nie + 8052: 1462 ipush + 8054: 14d1 push r4, r15 + 8056: 1077 lrw r3, 0x20000064 // 80b0 + 8058: 3400 movi r4, 0 + 805a: 9360 ld.w r3, (r3, 0x0) + 805c: b386 st.w r4, (r3, 0x18) + 805e: 1076 lrw r3, 0x200005c0 // 80b4 + 8060: 8360 ld.b r3, (r3, 0x0) + 8062: 3b41 cmpnei r3, 1 + 8064: 0820 bt 0x80a4 // 80a4 + 8066: e3fffd85 bsr 0x7b70 // 7b70 + 806a: e3fffd93 bsr 0x7b90 // 7b90 + 806e: e3fffe51 bsr 0x7d10 // 7d10 + 8072: e3fffedd bsr 0x7e2c // 7e2c + 8076: e3ffffc3 bsr 0x7ffc // 7ffc + 807a: 1070 lrw r3, 0x20000660 // 80b8 + 807c: 9360 ld.w r3, (r3, 0x0) + 807e: 3b40 cmpnei r3, 0 + 8080: 0c12 bf 0x80a4 // 80a4 + 8082: 106f lrw r3, 0x200001c8 // 80bc + 8084: 9340 ld.w r2, (r3, 0x0) + 8086: 3a40 cmpnei r2, 0 + 8088: 0c0e bf 0x80a4 // 80a4 + 808a: 106e lrw r3, 0x20000658 // 80c0 + 808c: 3064 movi r0, 100 + 808e: 9320 ld.w r1, (r3, 0x0) + 8090: 2100 addi r1, 1 + 8092: b320 st.w r1, (r3, 0x0) + 8094: 9320 ld.w r1, (r3, 0x0) + 8096: 7c80 mult r2, r0 + 8098: 6448 cmphs r2, r1 + 809a: 0805 bt 0x80a4 // 80a4 + 809c: 104a lrw r2, 0x20000643 // 80c4 + 809e: 3101 movi r1, 1 + 80a0: a220 st.b r1, (r2, 0x0) + 80a2: b380 st.w r4, (r3, 0x0) + 80a4: d9ee2001 ld.w r15, (r14, 0x4) + 80a8: 9880 ld.w r4, (r14, 0x0) + 80aa: 1402 addi r14, r14, 8 + 80ac: 1463 ipop + 80ae: 1461 nir + 80b0: 20000064 .long 0x20000064 + 80b4: 200005c0 .long 0x200005c0 + 80b8: 20000660 .long 0x20000660 + 80bc: 200001c8 .long 0x200001c8 + 80c0: 20000658 .long 0x20000658 + 80c4: 20000643 .long 0x20000643 + +Disassembly of section .text.get_key_seq: + +000080c8 : + 80c8: 14c3 push r4-r6 + 80ca: 106b lrw r3, 0x200001f4 // 80f4 + 80cc: 3000 movi r0, 0 + 80ce: 9320 ld.w r1, (r3, 0x0) + 80d0: 3401 movi r4, 1 + 80d2: 3300 movi r3, 0 + 80d4: 10a9 lrw r5, 0x20000738 // 80f8 + 80d6: 6c87 mov r2, r1 + 80d8: 708d lsr r2, r3 + 80da: 6890 and r2, r4 + 80dc: 3a40 cmpnei r2, 0 + 80de: 0c05 bf 0x80e8 // 80e8 + 80e0: 5dc0 addu r6, r5, r0 + 80e2: 748c zextb r2, r3 + 80e4: a640 st.b r2, (r6, 0x0) + 80e6: 2000 addi r0, 1 + 80e8: 2300 addi r3, 1 + 80ea: 3b51 cmpnei r3, 17 + 80ec: 0bf5 bt 0x80d6 // 80d6 + 80ee: 7400 zextb r0, r0 + 80f0: 1483 pop r4-r6 + 80f2: 0000 bkpt + 80f4: 200001f4 .long 0x200001f4 + 80f8: 20000738 .long 0x20000738 + +Disassembly of section .text.CORET_CONFIG: + +000080fc : + 80fc: 14d0 push r15 + 80fe: e3ffd559 bsr 0x2bb0 // 2bb0 + 8102: 3180 movi r1, 128 + 8104: 4124 lsli r1, r1, 4 + 8106: 3001 movi r0, 1 + 8108: e3ffcd52 bsr 0x1bac // 1bac + 810c: 1068 lrw r3, 0x20000064 // 812c + 810e: 1049 lrw r2, 0x20000244 // 8130 + 8110: 9360 ld.w r3, (r3, 0x0) + 8112: 9240 ld.w r2, (r2, 0x0) + 8114: b345 st.w r2, (r3, 0x14) + 8116: e3ffd57d bsr 0x2c10 // 2c10 + 811a: e3ffd56b bsr 0x2bf0 // 2bf0 + 811e: e3ffd571 bsr 0x2c00 // 2c00 + 8122: e3ffd55f bsr 0x2be0 // 2be0 + 8126: e3ffd551 bsr 0x2bc8 // 2bc8 + 812a: 1490 pop r15 + 812c: 20000064 .long 0x20000064 + 8130: 20000244 .long 0x20000244 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00008134 : + 8134: 1066 lrw r3, 0x20000054 // 814c + 8136: 3100 movi r1, 0 + 8138: 9300 ld.w r0, (r3, 0x0) + 813a: 3300 movi r3, 0 + 813c: 4342 lsli r2, r3, 2 + 813e: 2300 addi r3, 1 + 8140: 6080 addu r2, r0 + 8142: 3b52 cmpnei r3, 18 + 8144: b220 st.w r1, (r2, 0x0) + 8146: b232 st.w r1, (r2, 0x48) + 8148: 0bfa bt 0x813c // 813c + 814a: 783c jmp r15 + 814c: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +00008150 : + 8150: 1065 lrw r3, 0x2000005c // 8164 + 8152: 1046 lrw r2, 0xa67a6cc7 // 8168 + 8154: 9360 ld.w r3, (r3, 0x0) + 8156: b356 st.w r2, (r3, 0x58) + 8158: 1045 lrw r2, 0x21f1f04 // 816c + 815a: b355 st.w r2, (r3, 0x54) + 815c: 1045 lrw r2, 0x69966996 // 8170 + 815e: 1066 lrw r3, 0x40011180 // 8174 + 8160: b35f st.w r2, (r3, 0x7c) + 8162: 783c jmp r15 + 8164: 2000005c .long 0x2000005c + 8168: a67a6cc7 .long 0xa67a6cc7 + 816c: 021f1f04 .long 0x021f1f04 + 8170: 69966996 .long 0x69966996 + 8174: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00008178 : + 8178: 14d4 push r4-r7, r15 + 817a: 142c subi r14, r14, 48 + 817c: e3ffffea bsr 0x8150 // 8150 + 8180: e3ffd478 bsr 0x2a70 // 2a70 + 8184: 1268 lrw r3, 0x20000070 // 82a4 + 8186: 934b ld.w r2, (r3, 0x2c) + 8188: 1268 lrw r3, 0x40011200 // 82a8 + 818a: b350 st.w r2, (r3, 0x40) + 818c: 1268 lrw r3, 0x200001c5 // 82ac + 818e: 8360 ld.b r3, (r3, 0x0) + 8190: 3b41 cmpnei r3, 1 + 8192: 0817 bt 0x81c0 // 81c0 + 8194: 1267 lrw r3, 0x20000058 // 82b0 + 8196: 3105 movi r1, 5 + 8198: 9380 ld.w r4, (r3, 0x0) + 819a: 1267 lrw r3, 0x2000021c // 82b4 + 819c: 8300 ld.b r0, (r3, 0x0) + 819e: e3ffdb3f bsr 0x381c // 381c <__udivsi3> + 81a2: 7400 zextb r0, r0 + 81a4: 1265 lrw r3, 0x200001c6 // 82b8 + 81a6: b408 st.w r0, (r4, 0x20) + 81a8: 8300 ld.b r0, (r3, 0x0) + 81aa: 3804 cmphsi r0, 5 + 81ac: 1264 lrw r3, 0x2000065c // 82bc + 81ae: 085a bt 0x8262 // 8262 + 81b0: e3ffc5a6 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 81b4: 53575103 .long 0x53575103 + 81b8: 0055 .short 0x0055 + 81ba: 3296 movi r2, 150 + 81bc: 4242 lsli r2, r2, 2 + 81be: ab40 st.h r2, (r3, 0x0) + 81c0: e3fffb78 bsr 0x78b0 // 78b0 + 81c4: 3200 movi r2, 0 + 81c6: 3100 movi r1, 0 + 81c8: 3001 movi r0, 1 + 81ca: e3fffb01 bsr 0x77cc // 77cc + 81ce: e3ffffb3 bsr 0x8134 // 8134 + 81d2: e3ffff7b bsr 0x80c8 // 80c8 + 81d6: 119b lrw r4, 0x200006ff // 82c0 + 81d8: 3101 movi r1, 1 + 81da: a400 st.b r0, (r4, 0x0) + 81dc: 8440 ld.b r2, (r4, 0x0) + 81de: 117a lrw r3, 0x20000240 // 82c4 + 81e0: 8b60 ld.h r3, (r3, 0x0) + 81e2: b829 st.w r1, (r14, 0x24) + 81e4: 3180 movi r1, 128 + 81e6: 412d lsli r1, r1, 13 + 81e8: b828 st.w r1, (r14, 0x20) + 81ea: 3180 movi r1, 128 + 81ec: 4129 lsli r1, r1, 9 + 81ee: b827 st.w r1, (r14, 0x1c) + 81f0: 3100 movi r1, 0 + 81f2: b826 st.w r1, (r14, 0x18) + 81f4: 2a00 subi r2, 1 + 81f6: 1115 lrw r0, 0x20000242 // 82c8 + 81f8: 8800 ld.h r0, (r0, 0x0) + 81fa: b805 st.w r0, (r14, 0x14) + 81fc: 7488 zextb r2, r2 + 81fe: 1114 lrw r0, 0x20000248 // 82cc + 8200: 8800 ld.h r0, (r0, 0x0) + 8202: b804 st.w r0, (r14, 0x10) + 8204: 3080 movi r0, 128 + 8206: 4005 lsli r0, r0, 5 + 8208: b803 st.w r0, (r14, 0xc) + 820a: 3080 movi r0, 128 + 820c: 4004 lsli r0, r0, 4 + 820e: b802 st.w r0, (r14, 0x8) + 8210: b821 st.w r1, (r14, 0x4) + 8212: b820 st.w r1, (r14, 0x0) + 8214: 3001 movi r0, 1 + 8216: 3102 movi r1, 2 + 8218: e3fffaee bsr 0x77f4 // 77f4 + 821c: 3002 movi r0, 2 + 821e: e3fffacf bsr 0x77bc // 77bc + 8222: 3020 movi r0, 32 + 8224: e3fffacc bsr 0x77bc // 77bc + 8228: 3380 movi r3, 128 + 822a: 4372 lsli r3, r3, 18 + 822c: 1149 lrw r2, 0xe000e100 // 82d0 + 822e: b260 st.w r3, (r2, 0x0) + 8230: b270 st.w r3, (r2, 0x40) + 8232: 11e9 lrw r7, 0x20000076 // 82d4 + 8234: 1169 lrw r3, 0x20000054 // 82d8 + 8236: 11aa lrw r5, 0x20000738 // 82dc + 8238: 11ca lrw r6, 0x200001fa // 82e0 + 823a: 9360 ld.w r3, (r3, 0x0) + 823c: b86a st.w r3, (r14, 0x28) + 823e: b88b st.w r4, (r14, 0x2c) + 8240: 3300 movi r3, 0 + 8242: 984b ld.w r2, (r14, 0x2c) + 8244: 8240 ld.b r2, (r2, 0x0) + 8246: 648c cmphs r3, r2 + 8248: 0c0f bf 0x8266 // 8266 + 824a: e3ffff59 bsr 0x80fc // 80fc + 824e: e3fffc4f bsr 0x7aec // 7aec + 8252: 140c addi r14, r14, 48 + 8254: 1494 pop r4-r7, r15 + 8256: 1145 lrw r2, 0x5dc // 82e8 + 8258: 07b3 br 0x81be // 81be + 825a: 1145 lrw r2, 0x1194 // 82ec + 825c: 07b1 br 0x81be // 81be + 825e: 1145 lrw r2, 0x1770 // 82f0 + 8260: 07af br 0x81be // 81be + 8262: 1145 lrw r2, 0xbb8 // 82f4 + 8264: 07ad br 0x81be // 81be + 8266: 5d0c addu r0, r5, r3 + 8268: 8020 ld.b r1, (r0, 0x0) + 826a: 8040 ld.b r2, (r0, 0x0) + 826c: 8080 ld.b r4, (r0, 0x0) + 826e: 8000 ld.b r0, (r0, 0x0) + 8270: 4001 lsli r0, r0, 1 + 8272: 6018 addu r0, r6 + 8274: 4121 lsli r1, r1, 1 + 8276: 8800 ld.h r0, (r0, 0x0) + 8278: 605c addu r1, r7 + 827a: 448f lsli r4, r4, 15 + 827c: 6d00 or r4, r0 + 827e: 4241 lsli r2, r2, 1 + 8280: 8900 ld.h r0, (r1, 0x0) + 8282: 1039 lrw r1, 0x200001ce // 82e4 + 8284: 6084 addu r2, r1 + 8286: 4018 lsli r0, r0, 24 + 8288: 6c10 or r0, r4 + 828a: 8a80 ld.h r4, (r2, 0x0) + 828c: 3212 movi r2, 18 + 828e: 608c addu r2, r3 + 8290: 4494 lsli r4, r4, 20 + 8292: 4242 lsli r2, r2, 2 + 8294: 982a ld.w r1, (r14, 0x28) + 8296: 6c10 or r0, r4 + 8298: 6084 addu r2, r1 + 829a: 2300 addi r3, 1 + 829c: b200 st.w r0, (r2, 0x0) + 829e: 74cc zextb r3, r3 + 82a0: 07d1 br 0x8242 // 8242 + 82a2: 0000 bkpt + 82a4: 20000070 .long 0x20000070 + 82a8: 40011200 .long 0x40011200 + 82ac: 200001c5 .long 0x200001c5 + 82b0: 20000058 .long 0x20000058 + 82b4: 2000021c .long 0x2000021c + 82b8: 200001c6 .long 0x200001c6 + 82bc: 2000065c .long 0x2000065c + 82c0: 200006ff .long 0x200006ff + 82c4: 20000240 .long 0x20000240 + 82c8: 20000242 .long 0x20000242 + 82cc: 20000248 .long 0x20000248 + 82d0: e000e100 .long 0xe000e100 + 82d4: 20000076 .long 0x20000076 + 82d8: 20000054 .long 0x20000054 + 82dc: 20000738 .long 0x20000738 + 82e0: 200001fa .long 0x200001fa + 82e4: 200001ce .long 0x200001ce + 82e8: 000005dc .long 0x000005dc + 82ec: 00001194 .long 0x00001194 + 82f0: 00001770 .long 0x00001770 + 82f4: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +000082f8 : + 82f8: 14d4 push r4-r7, r15 + 82fa: 142d subi r14, r14, 52 + 82fc: 3201 movi r2, 1 + 82fe: 03ce lrw r6, 0x2000005c // 8540 + 8300: 6cc3 mov r3, r0 + 8302: dc4e000a st.b r2, (r14, 0xa) + 8306: 9640 ld.w r2, (r6, 0x0) + 8308: 9247 ld.w r2, (r2, 0x1c) + 830a: 7488 zextb r2, r2 + 830c: dc4e0009 st.b r2, (r14, 0x9) + 8310: d84e0009 ld.b r2, (r14, 0x9) + 8314: 3a40 cmpnei r2, 0 + 8316: 0c08 bf 0x8326 // 8326 + 8318: d84e0009 ld.b r2, (r14, 0x9) + 831c: 3a42 cmpnei r2, 2 + 831e: 0c04 bf 0x8326 // 8326 + 8320: 3000 movi r0, 0 + 8322: 140d addi r14, r14, 52 + 8324: 1494 pop r4-r7, r15 + 8326: 0397 lrw r4, 0x2000000c // 8544 + 8328: 3209 movi r2, 9 + 832a: 9400 ld.w r0, (r4, 0x0) + 832c: 3b40 cmpnei r3, 0 + 832e: b041 st.w r2, (r0, 0x4) + 8330: 0857 bt 0x83de // 83de + 8332: 3307 movi r3, 7 + 8334: dc6e000b st.b r3, (r14, 0xb) + 8338: 037b lrw r3, 0x2dc6c00 // 8548 + 833a: b863 st.w r3, (r14, 0xc) + 833c: 3380 movi r3, 128 + 833e: 4362 lsli r3, r3, 2 + 8340: b867 st.w r3, (r14, 0x1c) + 8342: d86e000b ld.b r3, (r14, 0xb) + 8346: 74cc zextb r3, r3 + 8348: b062 st.w r3, (r0, 0x8) + 834a: 037e lrw r3, 0xffff // 854c + 834c: b063 st.w r3, (r0, 0xc) + 834e: 3201 movi r2, 1 + 8350: 3101 movi r1, 1 + 8352: 03bf lrw r5, 0x20000014 // 8550 + 8354: e3ffcf58 bsr 0x2204 // 2204 + 8358: 95e0 ld.w r7, (r5, 0x0) + 835a: 137f lrw r3, 0xbe9c0005 // 8554 + 835c: b760 st.w r3, (r7, 0x0) + 835e: 135f lrw r2, 0x30010 // 8558 + 8360: 3300 movi r3, 0 + 8362: b762 st.w r3, (r7, 0x8) + 8364: b743 st.w r2, (r7, 0xc) + 8366: 32d8 movi r2, 216 + 8368: b745 st.w r2, (r7, 0x14) + 836a: 974f ld.w r2, (r7, 0x3c) + 836c: 3aa2 bseti r2, 2 + 836e: b74f st.w r2, (r7, 0x3c) + 8370: 9803 ld.w r0, (r14, 0xc) + 8372: d82e000b ld.b r1, (r14, 0xb) + 8376: 327d movi r2, 125 + 8378: 2100 addi r1, 1 + 837a: 7c48 mult r1, r2 + 837c: b861 st.w r3, (r14, 0x4) + 837e: e3ffda4f bsr 0x381c // 381c <__udivsi3> + 8382: b804 st.w r0, (r14, 0x10) + 8384: 32fa movi r2, 250 + 8386: 9824 ld.w r1, (r14, 0x10) + 8388: 4242 lsli r2, r2, 2 + 838a: 6448 cmphs r2, r1 + 838c: 0bca bt 0x8320 // 8320 + 838e: 9844 ld.w r2, (r14, 0x10) + 8390: 3178 movi r1, 120 + 8392: 9804 ld.w r0, (r14, 0x10) + 8394: b840 st.w r2, (r14, 0x0) + 8396: e3ffda43 bsr 0x381c // 381c <__udivsi3> + 839a: 9840 ld.w r2, (r14, 0x0) + 839c: 6082 subu r2, r0 + 839e: b845 st.w r2, (r14, 0x14) + 83a0: 9804 ld.w r0, (r14, 0x10) + 83a2: 3178 movi r1, 120 + 83a4: 9844 ld.w r2, (r14, 0x10) + 83a6: b840 st.w r2, (r14, 0x0) + 83a8: e3ffda3a bsr 0x381c // 381c <__udivsi3> + 83ac: 9840 ld.w r2, (r14, 0x0) + 83ae: 6008 addu r0, r2 + 83b0: b806 st.w r0, (r14, 0x18) + 83b2: c0807020 psrclr ie + 83b6: 9640 ld.w r2, (r6, 0x0) + 83b8: 9254 ld.w r2, (r2, 0x50) + 83ba: b848 st.w r2, (r14, 0x20) + 83bc: 9861 ld.w r3, (r14, 0x4) + 83be: 9440 ld.w r2, (r4, 0x0) + 83c0: b260 st.w r3, (r2, 0x0) + 83c2: b761 st.w r3, (r7, 0x4) + 83c4: d86e000a ld.b r3, (r14, 0xa) + 83c8: 3b40 cmpnei r3, 0 + 83ca: 083e bt 0x8446 // 8446 + 83cc: e3ffcece bsr 0x2168 // 2168 + 83d0: 9400 ld.w r0, (r4, 0x0) + 83d2: e3ffceef bsr 0x21b0 // 21b0 + 83d6: c1807420 psrset ee, ie + 83da: 3001 movi r0, 1 + 83dc: 07a3 br 0x8322 // 8322 + 83de: 3b41 cmpnei r3, 1 + 83e0: 0806 bt 0x83ec // 83ec + 83e2: 3303 movi r3, 3 + 83e4: dc6e000b st.b r3, (r14, 0xb) + 83e8: 127d lrw r3, 0x16e3600 // 855c + 83ea: 07a8 br 0x833a // 833a + 83ec: 3b42 cmpnei r3, 2 + 83ee: 0806 bt 0x83fa // 83fa + 83f0: 3301 movi r3, 1 + 83f2: dc6e000b st.b r3, (r14, 0xb) + 83f6: 127b lrw r3, 0xb71b00 // 8560 + 83f8: 07a1 br 0x833a // 833a + 83fa: 3b43 cmpnei r3, 3 + 83fc: 0806 bt 0x8408 // 8408 + 83fe: 3300 movi r3, 0 + 8400: dc6e000b st.b r3, (r14, 0xb) + 8404: 1278 lrw r3, 0x5b8d80 // 8564 + 8406: 079a br 0x833a // 833a + 8408: 3b44 cmpnei r3, 4 + 840a: 0809 bt 0x841c // 841c + 840c: 3300 movi r3, 0 + 840e: dc6e000b st.b r3, (r14, 0xb) + 8412: 1276 lrw r3, 0x54c720 // 8568 + 8414: b863 st.w r3, (r14, 0xc) + 8416: 3380 movi r3, 128 + 8418: 4369 lsli r3, r3, 9 + 841a: 0793 br 0x8340 // 8340 + 841c: 3b45 cmpnei r3, 5 + 841e: 0806 bt 0x842a // 842a + 8420: 3300 movi r3, 0 + 8422: dc6e000b st.b r3, (r14, 0xb) + 8426: 1272 lrw r3, 0x3ffed0 // 856c + 8428: 07f6 br 0x8414 // 8414 + 842a: 3b46 cmpnei r3, 6 + 842c: 0806 bt 0x8438 // 8438 + 842e: 3300 movi r3, 0 + 8430: dc6e000b st.b r3, (r14, 0xb) + 8434: 126f lrw r3, 0x1fff68 // 8570 + 8436: 07ef br 0x8414 // 8414 + 8438: 3b47 cmpnei r3, 7 + 843a: 0b84 bt 0x8342 // 8342 + 843c: 3300 movi r3, 0 + 843e: dc6e000b st.b r3, (r14, 0xb) + 8442: 126d lrw r3, 0x1ffb8 // 8574 + 8444: 07e8 br 0x8414 // 8414 + 8446: 9560 ld.w r3, (r5, 0x0) + 8448: 3101 movi r1, 1 + 844a: 9440 ld.w r2, (r4, 0x0) + 844c: b321 st.w r1, (r3, 0x4) + 844e: b220 st.w r1, (r2, 0x0) + 8450: 3100 movi r1, 0 + 8452: b327 st.w r1, (r3, 0x1c) + 8454: 3004 movi r0, 4 + 8456: b225 st.w r1, (r2, 0x14) + 8458: 932e ld.w r1, (r3, 0x38) + 845a: 6840 and r1, r0 + 845c: 3940 cmpnei r1, 0 + 845e: 0ffd bf 0x8458 // 8458 + 8460: 9225 ld.w r1, (r2, 0x14) + 8462: b82a st.w r1, (r14, 0x28) + 8464: 3100 movi r1, 0 + 8466: b310 st.w r0, (r3, 0x40) + 8468: b327 st.w r1, (r3, 0x1c) + 846a: 3004 movi r0, 4 + 846c: b225 st.w r1, (r2, 0x14) + 846e: 932e ld.w r1, (r3, 0x38) + 8470: 6840 and r1, r0 + 8472: 3940 cmpnei r1, 0 + 8474: 0ffd bf 0x846e // 846e + 8476: 9225 ld.w r1, (r2, 0x14) + 8478: b82b st.w r1, (r14, 0x2c) + 847a: 3100 movi r1, 0 + 847c: b310 st.w r0, (r3, 0x40) + 847e: b327 st.w r1, (r3, 0x1c) + 8480: 3004 movi r0, 4 + 8482: b225 st.w r1, (r2, 0x14) + 8484: 932e ld.w r1, (r3, 0x38) + 8486: 6840 and r1, r0 + 8488: 3940 cmpnei r1, 0 + 848a: 0ffd bf 0x8484 // 8484 + 848c: 9225 ld.w r1, (r2, 0x14) + 848e: b82c st.w r1, (r14, 0x30) + 8490: b310 st.w r0, (r3, 0x40) + 8492: 982b ld.w r1, (r14, 0x2c) + 8494: 980c ld.w r0, (r14, 0x30) + 8496: 6040 addu r1, r0 + 8498: b829 st.w r1, (r14, 0x24) + 849a: 9829 ld.w r1, (r14, 0x24) + 849c: 4921 lsri r1, r1, 1 + 849e: b829 st.w r1, (r14, 0x24) + 84a0: 3100 movi r1, 0 + 84a2: b321 st.w r1, (r3, 0x4) + 84a4: b220 st.w r1, (r2, 0x0) + 84a6: b327 st.w r1, (r3, 0x1c) + 84a8: b225 st.w r1, (r2, 0x14) + 84aa: d86e0009 ld.b r3, (r14, 0x9) + 84ae: 3b42 cmpnei r3, 2 + 84b0: 9849 ld.w r2, (r14, 0x24) + 84b2: 082c bt 0x850a // 850a + 84b4: 1171 lrw r3, 0x7ff // 8578 + 84b6: 648c cmphs r3, r2 + 84b8: 0c03 bf 0x84be // 84be + 84ba: 3300 movi r3, 0 + 84bc: 040f br 0x84da // 84da + 84be: 9849 ld.w r2, (r14, 0x24) + 84c0: 9866 ld.w r3, (r14, 0x18) + 84c2: 648c cmphs r3, r2 + 84c4: 080e bt 0x84e0 // 84e0 + 84c6: 9868 ld.w r3, (r14, 0x20) + 84c8: 9847 ld.w r2, (r14, 0x1c) + 84ca: 60ca subu r3, r2 + 84cc: b868 st.w r3, (r14, 0x20) + 84ce: 32fe movi r2, 254 + 84d0: 9868 ld.w r3, (r14, 0x20) + 84d2: 4248 lsli r2, r2, 8 + 84d4: 68c8 and r3, r2 + 84d6: 3b40 cmpnei r3, 0 + 84d8: 0812 bt 0x84fc // 84fc + 84da: dc6e000a st.b r3, (r14, 0xa) + 84de: 0721 br 0x8320 // 8320 + 84e0: 9849 ld.w r2, (r14, 0x24) + 84e2: 9865 ld.w r3, (r14, 0x14) + 84e4: 64c8 cmphs r2, r3 + 84e6: 0829 bt 0x8538 // 8538 + 84e8: 9868 ld.w r3, (r14, 0x20) + 84ea: 9847 ld.w r2, (r14, 0x1c) + 84ec: 60c8 addu r3, r2 + 84ee: b868 st.w r3, (r14, 0x20) + 84f0: 33fe movi r3, 254 + 84f2: 9848 ld.w r2, (r14, 0x20) + 84f4: 4368 lsli r3, r3, 8 + 84f6: 688c and r2, r3 + 84f8: 64ca cmpne r2, r3 + 84fa: 0fe0 bf 0x84ba // 84ba + 84fc: 9660 ld.w r3, (r6, 0x0) + 84fe: 9848 ld.w r2, (r14, 0x20) + 8500: b354 st.w r2, (r3, 0x50) + 8502: 3001 movi r0, 1 + 8504: e3ffd3b6 bsr 0x2c70 // 2c70 + 8508: 075e br 0x83c4 // 83c4 + 850a: 9866 ld.w r3, (r14, 0x18) + 850c: 648c cmphs r3, r2 + 850e: 0809 bt 0x8520 // 8520 + 8510: 9868 ld.w r3, (r14, 0x20) + 8512: 9847 ld.w r2, (r14, 0x1c) + 8514: 60ca subu r3, r2 + 8516: b868 st.w r3, (r14, 0x20) + 8518: 32ff movi r2, 255 + 851a: 9868 ld.w r3, (r14, 0x20) + 851c: 4250 lsli r2, r2, 16 + 851e: 07db br 0x84d4 // 84d4 + 8520: 9849 ld.w r2, (r14, 0x24) + 8522: 9865 ld.w r3, (r14, 0x14) + 8524: 64c8 cmphs r2, r3 + 8526: 0809 bt 0x8538 // 8538 + 8528: 9868 ld.w r3, (r14, 0x20) + 852a: 9847 ld.w r2, (r14, 0x1c) + 852c: 60c8 addu r3, r2 + 852e: b868 st.w r3, (r14, 0x20) + 8530: 33ff movi r3, 255 + 8532: 9848 ld.w r2, (r14, 0x20) + 8534: 4370 lsli r3, r3, 16 + 8536: 07e0 br 0x84f6 // 84f6 + 8538: 3300 movi r3, 0 + 853a: dc6e000a st.b r3, (r14, 0xa) + 853e: 07e2 br 0x8502 // 8502 + 8540: 2000005c .long 0x2000005c + 8544: 2000000c .long 0x2000000c + 8548: 02dc6c00 .long 0x02dc6c00 + 854c: 0000ffff .long 0x0000ffff + 8550: 20000014 .long 0x20000014 + 8554: be9c0005 .long 0xbe9c0005 + 8558: 00030010 .long 0x00030010 + 855c: 016e3600 .long 0x016e3600 + 8560: 00b71b00 .long 0x00b71b00 + 8564: 005b8d80 .long 0x005b8d80 + 8568: 0054c720 .long 0x0054c720 + 856c: 003ffed0 .long 0x003ffed0 + 8570: 001fff68 .long 0x001fff68 + 8574: 0001ffb8 .long 0x0001ffb8 + 8578: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250209.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250209.map new file mode 100644 index 0000000..f12b6c9 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250209.map @@ -0,0 +1,3124 @@ +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: 520580 (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: 263 + Section header string table index: 260 + +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 001ab4 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001ab4 002ab4 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001aec 002aec 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001b60 002b60 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001bac 002bac 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001bdc 002bdc 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c64 002c64 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c8c 002c8c 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001cc8 002cc8 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001cdc 002cdc 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001cf4 002cf4 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001d14 002d14 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001d30 002d30 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001d4c 002d4c 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00001d8c 002d8c 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00001dc0 002dc0 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00001dc4 002dc4 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00001dd4 002dd4 00000c 00 AX 0 0 4 + [19] .text.SYSCON_INT_ PROGBITS 00001de0 002de0 000024 00 AX 0 0 4 + [20] .text.Set_INT_Pri PROGBITS 00001e04 002e04 000030 00 AX 0 0 4 + [21] .text.GPIO_Init PROGBITS 00001e34 002e34 0000e0 00 AX 0 0 4 + [22] .text.GPIO_PullHi PROGBITS 00001f14 002f14 000014 00 AX 0 0 2 + [23] .text.GPIO_DriveS PROGBITS 00001f28 002f28 00000e 00 AX 0 0 2 + [24] .text.GPIO_IntGro PROGBITS 00001f38 002f38 00010c 00 AX 0 0 4 + [25] .text.GPIOA0_EXI_ PROGBITS 00002044 003044 0000fc 00 AX 0 0 4 + [26] .text.GPIO_Write_ PROGBITS 00002140 003140 000008 00 AX 0 0 2 + [27] .text.GPIO_Write_ PROGBITS 00002148 003148 000008 00 AX 0 0 2 + [28] .text.GPIO_Revers PROGBITS 00002150 003150 000016 00 AX 0 0 2 + [29] .text.LPT_Soft_Re PROGBITS 00002168 003168 000014 00 AX 0 0 4 + [30] .text.WWDT_CNT_Lo PROGBITS 0000217c 00317c 000010 00 AX 0 0 4 + [31] .text.BT_DeInit PROGBITS 0000218c 00318c 00001c 00 AX 0 0 2 + [32] .text.BT_Start PROGBITS 000021a8 0031a8 000008 00 AX 0 0 2 + [33] .text.BT_Soft_Res PROGBITS 000021b0 0031b0 00000a 00 AX 0 0 2 + [34] .text.BT_Configur PROGBITS 000021ba 0031ba 000018 00 AX 0 0 2 + [35] .text.BT_ControlS PROGBITS 000021d2 0031d2 00002c 00 AX 0 0 2 + [36] .text.BT_Period_C PROGBITS 000021fe 0031fe 000006 00 AX 0 0 2 + [37] .text.BT_ConfigIn PROGBITS 00002204 003204 000012 00 AX 0 0 2 + [38] .text.BT1_INT_ENA PROGBITS 00002218 003218 000010 00 AX 0 0 4 + [39] .text.SIO_DeInit PROGBITS 00002228 003228 000020 00 AX 0 0 4 + [40] .text.SIO_IO_Init PROGBITS 00002248 003248 000060 00 AX 0 0 4 + [41] .text.SIO_TX_Init PROGBITS 000022a8 0032a8 000010 00 AX 0 0 4 + [42] .text.SIO_TX_Conf PROGBITS 000022b8 0032b8 000050 00 AX 0 0 4 + [43] .text.UART0_DeIni PROGBITS 00002308 003308 000018 00 AX 0 0 4 + [44] .text.UART1_DeIni PROGBITS 00002320 003320 000018 00 AX 0 0 4 + [45] .text.UART2_DeIni PROGBITS 00002338 003338 000018 00 AX 0 0 4 + [46] .text.UART0_Int_E PROGBITS 00002350 003350 00001c 00 AX 0 0 4 + [47] .text.UART2_Int_E PROGBITS 0000236c 00336c 00001c 00 AX 0 0 4 + [48] .text.UART_IO_Ini PROGBITS 00002388 003388 0000ec 00 AX 0 0 4 + [49] .text.UARTInit PROGBITS 00002474 003474 000010 00 AX 0 0 4 + [50] .text.UARTInitRxT PROGBITS 00002484 003484 000010 00 AX 0 0 4 + [51] .text.UARTTransmi PROGBITS 00002494 003494 00001e 00 AX 0 0 2 + [52] .text.EPT_Stop PROGBITS 000024b4 0034b4 000028 00 AX 0 0 4 + [53] .text.ADC12_RESET PROGBITS 000024dc 0034dc 000064 00 AX 0 0 4 + [54] .text.ADC12_Contr PROGBITS 00002540 003540 000010 00 AX 0 0 4 + [55] .text.ADC12_CMD.p PROGBITS 00002550 003550 000020 00 AX 0 0 4 + [56] .text.ADC12_CLK_C PROGBITS 00002570 003570 00002c 00 AX 0 0 4 + [57] .text.ADC12_Softw PROGBITS 0000259c 00359c 00000a 00 AX 0 0 2 + [58] .text.ADC12_CMD PROGBITS 000025a8 0035a8 000028 00 AX 0 0 4 + [59] .text.ADC12_ready PROGBITS 000025d0 0035d0 000014 00 AX 0 0 4 + [60] .text.ADC12_SEQEN PROGBITS 000025e4 0035e4 000018 00 AX 0 0 4 + [61] .text.ADC12_DATA_ PROGBITS 000025fc 0035fc 000014 00 AX 0 0 4 + [62] .text.ADC12_Confi PROGBITS 00002610 003610 00007c 00 AX 0 0 4 + [63] .text.ADC12_Confi PROGBITS 0000268c 00368c 000198 00 AX 0 0 4 + [64] .text.ADC12_Conve PROGBITS 00002824 003824 000180 00 AX 0 0 4 + [65] .text.Page_Progra PROGBITS 000029a4 0039a4 0000a0 00 AX 0 0 4 + [66] .text.ReadDataArr PROGBITS 00002a44 003a44 00002a 00 AX 0 0 2 + [67] .text.tk_paramete PROGBITS 00002a70 003a70 000140 00 AX 0 0 4 + [68] .text.CORET_DeIni PROGBITS 00002bb0 003bb0 000018 00 AX 0 0 4 + [69] .text.CORET_Int_E PROGBITS 00002bc8 003bc8 000018 00 AX 0 0 4 + [70] .text.CORET_start PROGBITS 00002be0 003be0 000010 00 AX 0 0 4 + [71] .text.CORET_CLKSO PROGBITS 00002bf0 003bf0 000010 00 AX 0 0 4 + [72] .text.CORET_TICKI PROGBITS 00002c00 003c00 000010 00 AX 0 0 4 + [73] .text.CORET_reloa PROGBITS 00002c10 003c10 000010 00 AX 0 0 4 + [74] .text.startup.mai PROGBITS 00002c20 003c20 000050 00 AX 0 0 4 + [75] .text.delay_nms PROGBITS 00002c70 003c70 00002c 00 AX 0 0 2 + [76] .text.delay_nus PROGBITS 00002c9c 003c9c 000022 00 AX 0 0 2 + [77] .text.GPIO_CONFIG PROGBITS 00002cc0 003cc0 000048 00 AX 0 0 4 + [78] .text.BT_CONFIG PROGBITS 00002d08 003d08 000060 00 AX 0 0 4 + [79] .text.SYSCON_CONF PROGBITS 00002d68 003d68 000062 00 AX 0 0 2 + [80] .text.APT32F102_i PROGBITS 00002dcc 003dcc 000088 00 AX 0 0 4 + [81] .text.SYSCONIntHa PROGBITS 00002e54 003e54 0000f0 00 AX 0 0 4 + [82] .text.IFCIntHandl PROGBITS 00002f44 003f44 000068 00 AX 0 0 4 + [83] .text.ADCIntHandl PROGBITS 00002fac 003fac 000068 00 AX 0 0 4 + [84] .text.EPT0IntHand PROGBITS 00003014 004014 0001ac 00 AX 0 0 4 + [85] .text.WWDTHandler PROGBITS 000031c0 0041c0 000034 00 AX 0 0 4 + [86] .text.GPT0IntHand PROGBITS 000031f4 0041f4 000080 00 AX 0 0 4 + [87] .text.RTCIntHandl PROGBITS 00003274 004274 000070 00 AX 0 0 4 + [88] .text.UART0IntHan PROGBITS 000032e4 0042e4 00003c 00 AX 0 0 4 + [89] .text.UART1IntHan PROGBITS 00003320 004320 00003c 00 AX 0 0 4 + [90] .text.UART2IntHan PROGBITS 0000335c 00435c 000094 00 AX 0 0 4 + [91] .text.SPI0IntHand PROGBITS 000033f0 0043f0 0000e8 00 AX 0 0 4 + [92] .text.SIO0IntHand PROGBITS 000034d8 0044d8 000054 00 AX 0 0 4 + [93] .text.EXI0IntHand PROGBITS 0000352c 00452c 000030 00 AX 0 0 4 + [94] .text.EXI1IntHand PROGBITS 0000355c 00455c 000030 00 AX 0 0 4 + [95] .text.EXI2to3IntH PROGBITS 0000358c 00458c 000048 00 AX 0 0 4 + [96] .text.EXI4to9IntH PROGBITS 000035d4 0045d4 00005c 00 AX 0 0 4 + [97] .text.EXI10to15In PROGBITS 00003630 004630 000080 00 AX 0 0 4 + [98] .text.LPTIntHandl PROGBITS 000036b0 0046b0 000034 00 AX 0 0 4 + [99] .text.BT0IntHandl PROGBITS 000036e4 0046e4 00004c 00 AX 0 0 4 + [100] .text.BT1IntHandl PROGBITS 00003730 004730 000064 00 AX 0 0 4 + [101] .text.PriviledgeV PROGBITS 00003794 004794 000002 00 AX 0 0 2 + [102] .text.PendTrapHan PROGBITS 00003796 004796 000008 00 AX 0 0 2 + [103] .text.Trap3Handle PROGBITS 0000379e 00479e 000008 00 AX 0 0 2 + [104] .text.Trap2Handle PROGBITS 000037a6 0047a6 000008 00 AX 0 0 2 + [105] .text.Trap1Handle PROGBITS 000037ae 0047ae 000008 00 AX 0 0 2 + [106] .text.Trap0Handle PROGBITS 000037b6 0047b6 000008 00 AX 0 0 2 + [107] .text.UnrecExecpH PROGBITS 000037be 0047be 000008 00 AX 0 0 2 + [108] .text.BreakPointH PROGBITS 000037c6 0047c6 000008 00 AX 0 0 2 + [109] .text.AccessErrHa PROGBITS 000037ce 0047ce 000008 00 AX 0 0 2 + [110] .text.IllegalInst PROGBITS 000037d6 0047d6 000008 00 AX 0 0 2 + [111] .text.MisalignedH PROGBITS 000037de 0047de 000008 00 AX 0 0 2 + [112] .text.CNTAIntHand PROGBITS 000037e6 0047e6 000008 00 AX 0 0 2 + [113] .text.I2CIntHandl PROGBITS 000037ee 0047ee 000008 00 AX 0 0 2 + [114] .text.__divsi3 PROGBITS 000037f8 0047f8 000024 00 AX 0 0 4 + [115] .text.__udivsi3 PROGBITS 0000381c 00481c 000024 00 AX 0 0 4 + [116] .text.__modsi3 PROGBITS 00003840 004840 000024 00 AX 0 0 4 + [117] .text.__umodsi3 PROGBITS 00003864 004864 000024 00 AX 0 0 4 + [118] .text.CK_CPU_EnAl PROGBITS 00003888 004888 000006 00 AX 0 0 2 + [119] .text.CK_CPU_DisA PROGBITS 0000388e 00488e 000006 00 AX 0 0 2 + [120] .text.UARTx_Init PROGBITS 00003894 004894 00011c 00 AX 0 0 4 + [121] .text.UART2_RecvI PROGBITS 000039b0 0049b0 000068 00 AX 0 0 4 + [122] .text.UART2_TASK PROGBITS 00003a18 004a18 0000a4 00 AX 0 0 4 + [123] .text.MCU485_Send PROGBITS 00003abc 004abc 000088 00 AX 0 0 4 + [124] .text.Dbg_Println PROGBITS 00003b44 004b44 00000c 00 AX 0 0 2 + [125] .text.Dbg_Print_B PROGBITS 00003b50 004b50 000002 00 AX 0 0 2 + [126] .text.Touch_Key_I PROGBITS 00003b54 004b54 000068 00 AX 0 0 4 + [127] .text.TouchKey_RS PROGBITS 00003bbc 004bbc 000138 00 AX 0 0 4 + [128] .text.Get_TouchKe PROGBITS 00003cf4 004cf4 00003c 00 AX 0 0 4 + [129] .text.Touch_Key_E PROGBITS 00003d30 004d30 0000ac 00 AX 0 0 4 + [130] .text.TouchKey_Se PROGBITS 00003ddc 004ddc 00003c 00 AX 0 0 4 + [131] .text.Touch_Key_T PROGBITS 00003e18 004e18 0000f0 00 AX 0 0 4 + [132] .text.TouchKey_Ch PROGBITS 00003f08 004f08 000018 00 AX 0 0 2 + [133] .text.TouchKey_Co PROGBITS 00003f20 004f20 000068 00 AX 0 0 4 + [134] .text.TouchKey_Se PROGBITS 00003f88 004f88 0000b8 00 AX 0 0 4 + [135] .text.TouchKey_Re PROGBITS 00004040 005040 0000f8 00 AX 0 0 4 + [136] .text.TouchKey_Du PROGBITS 00004138 005138 000038 00 AX 0 0 4 + [137] .text.TouchKey_Re PROGBITS 00004170 005170 0000b0 00 AX 0 0 4 + [138] .text.TouchKey_Re PROGBITS 00004220 005220 00001a 00 AX 0 0 2 + [139] .text.TouchKey_Co PROGBITS 0000423c 00523c 0000d8 00 AX 0 0 4 + [140] .text.EEPROM_Chec PROGBITS 00004314 005314 000016 00 AX 0 0 2 + [141] .text.EEPROM_Read PROGBITS 0000432c 00532c 000074 00 AX 0 0 4 + [142] .text.EEPROM_Writ PROGBITS 000043a0 0053a0 000044 00 AX 0 0 4 + [143] .text.EEPROM_Vali PROGBITS 000043e4 0053e4 00008c 00 AX 0 0 4 + [144] .text.EEPROM_Defa PROGBITS 00004470 005470 000020 00 AX 0 0 2 + [145] .text.EEPROM_Init PROGBITS 00004490 005490 000058 00 AX 0 0 4 + [146] .text.EEPROM_Writ PROGBITS 000044e8 0054e8 00006c 00 AX 0 0 4 + [147] .text.EEPROM_Read PROGBITS 00004554 005554 0000ac 00 AX 0 0 4 + [148] .text.EEPROM_Vali PROGBITS 00004600 005600 0000a8 00 AX 0 0 4 + [149] .text.EEPROM_Defa PROGBITS 000046a8 0056a8 000040 00 AX 0 0 2 + [150] .text.EEPROM_Touc PROGBITS 000046e8 0056e8 000080 00 AX 0 0 4 + [151] .text.ADC_Init PROGBITS 00004768 005768 00005c 00 AX 0 0 4 + [152] .text.Thermistor_ PROGBITS 000047c4 0057c4 000048 00 AX 0 0 4 + [153] .text.Calculate_A PROGBITS 0000480c 00580c 00009c 00 AX 0 0 4 + [154] .text.Get_Temp_Va PROGBITS 000048a8 0058a8 000010 00 AX 0 0 4 + [155] .text.Gather_Temp PROGBITS 000048b8 0058b8 0000a8 00 AX 0 0 4 + [156] .text.ADC_Sample_ PROGBITS 00004960 005960 0000a8 00 AX 0 0 4 + [157] .text.Contol_Swit PROGBITS 00004a08 005a08 0003ea 00 AX 0 0 4 + [158] .text.Contol_Swit PROGBITS 00004df4 005df4 0003ea 00 AX 0 0 4 + [159] .text.Contol_Swit PROGBITS 000051e0 0061e0 000028 00 AX 0 0 4 + [160] .text.Get_TM1812_ PROGBITS 00005208 006208 00004c 00 AX 0 0 4 + [161] .text.TimeCall_SI PROGBITS 00005254 006254 000120 00 AX 0 0 4 + [162] .text.TimeCall_SI PROGBITS 00005374 006374 0000a8 00 AX 0 0 4 + [163] .text.Tm1812_Task PROGBITS 0000541c 00641c 000034 00 AX 0 0 4 + [164] .text.Tm1812_Ch_I PROGBITS 00005450 006450 000024 00 AX 0 0 4 + [165] .text.TM1812_Cont PROGBITS 00005474 006474 000070 00 AX 0 0 4 + [166] .text.TM1812_Cont PROGBITS 000054e4 0064e4 000064 00 AX 0 0 4 + [167] .text.TM1812_LED_ PROGBITS 00005548 006548 000058 00 AX 0 0 4 + [168] .text.HT1621_WR_D PROGBITS 000055a0 0065a0 000048 00 AX 0 0 4 + [169] .text.HT1621_WR_C PROGBITS 000055e8 0065e8 000030 00 AX 0 0 4 + [170] .text.HT1621_Init PROGBITS 00005618 006618 0000b4 00 AX 0 0 4 + [171] .text.HT1621_Clea PROGBITS 000056cc 0066cc 000050 00 AX 0 0 4 + [172] .text.HT1621_ALLO PROGBITS 0000571c 00671c 000040 00 AX 0 0 4 + [173] .text.HT1621_Refr PROGBITS 0000575c 00675c 00004c 00 AX 0 0 4 + [174] .text.Set_Tempera PROGBITS 000057a8 0067a8 0000d0 00 AX 0 0 4 + [175] .text.Local_Tempe PROGBITS 00005878 006878 0000d0 00 AX 0 0 4 + [176] .text.Control_Mod PROGBITS 00005948 006948 000244 00 AX 0 0 4 + [177] .text.Control_win PROGBITS 00005b8c 006b8c 0000d0 00 AX 0 0 4 + [178] .text.Control_Pro PROGBITS 00005c5c 006c5c 0000a4 00 AX 0 0 4 + [179] .text.Controlled_ PROGBITS 00005d00 006d00 000048 00 AX 0 0 4 + [180] .text.Controlled_ PROGBITS 00005d48 006d48 0000dc 00 AX 0 0 4 + [181] .text.Controlled_ PROGBITS 00005e24 006e24 000030 00 AX 0 0 4 + [182] .text.Set_Device_ PROGBITS 00005e54 006e54 00009c 00 AX 0 0 4 + [183] .text.Set_Temp_Di PROGBITS 00005ef0 006ef0 000064 00 AX 0 0 4 + [184] .text.HT1621_Refr PROGBITS 00005f54 006f54 000090 00 AX 0 0 4 + [185] .text.TemCtrl_Ini PROGBITS 00005fe4 006fe4 00015c 00 AX 0 0 4 + [186] .text.TemCtrl_Mod PROGBITS 00006140 007140 00004c 00 AX 0 0 4 + [187] .text.TemCtrl_Fan PROGBITS 0000618c 00718c 000050 00 AX 0 0 4 + [188] .text.TemCtrl_Tem PROGBITS 000061dc 0071dc 000030 00 AX 0 0 4 + [189] .text.TemCtrl_Tem PROGBITS 0000620c 00720c 000030 00 AX 0 0 4 + [190] .text.TemCtrl_OnO PROGBITS 0000623c 00723c 000034 00 AX 0 0 4 + [191] .text.Tem_Valve_C PROGBITS 00006270 007270 0000cc 00 AX 0 0 4 + [192] .text.TemCtrl_Pro PROGBITS 0000633c 00733c 000178 00 AX 0 0 4 + [193] .text.KEY1_Model_ PROGBITS 000064b4 0074b4 0000e0 00 AX 0 0 4 + [194] .text.KEY2_Fan_Pr PROGBITS 00006594 007594 0000e0 00 AX 0 0 4 + [195] .text.KEY3_TempAd PROGBITS 00006674 007674 000110 00 AX 0 0 4 + [196] .text.KEY3_Long_P PROGBITS 00006784 007784 000078 00 AX 0 0 4 + [197] .text.KEY4_TempDe PROGBITS 000067fc 0077fc 000110 00 AX 0 0 4 + [198] .text.KEY4_Long_P PROGBITS 0000690c 00790c 000078 00 AX 0 0 4 + [199] .text.KEY5_OnOff_ PROGBITS 00006984 007984 000084 00 AX 0 0 4 + [200] .text.TempCtrl_On PROGBITS 00006a08 007a08 000054 00 AX 0 0 4 + [201] .text.DisPlay_Ini PROGBITS 00006a5c 007a5c 000020 00 AX 0 0 4 + [202] .text.Data_Resend PROGBITS 00006a7c 007a7c 000098 00 AX 0 0 4 + [203] .text.Switch_Repo PROGBITS 00006b14 007b14 0000c0 00 AX 0 0 4 + [204] .text.DisPlay_Tas PROGBITS 00006bd4 007bd4 0003be 00 AX 0 0 4 + [205] .text.Debug_Init PROGBITS 00006f94 007f94 00003c 00 AX 0 0 4 + [206] .text.Dev_SaveDat PROGBITS 00006fd0 007fd0 000098 00 AX 0 0 4 + [207] .text.Debug_Task PROGBITS 00007068 008068 00007c 00 AX 0 0 4 + [208] .text.BLV_RLY_Ctr PROGBITS 000070e4 0080e4 000028 00 AX 0 0 4 + [209] .text.Relay_Init PROGBITS 0000710c 00810c 000018 00 AX 0 0 4 + [210] .text.Relay_High PROGBITS 00007124 008124 00001c 00 AX 0 0 2 + [211] .text.Relay_Mid PROGBITS 00007140 008140 00001c 00 AX 0 0 2 + [212] .text.Relay_Low PROGBITS 0000715c 00815c 00001c 00 AX 0 0 2 + [213] .text.Relay_Stop PROGBITS 00007178 008178 00001c 00 AX 0 0 2 + [214] .text.BLV_RLY_Ctr PROGBITS 00007194 008194 000010 00 AX 0 0 2 + [215] .text.RLY_Direct_ PROGBITS 000071a4 0081a4 0000c8 00 AX 0 0 4 + [216] .text.RLY_Zero_Co PROGBITS 0000726c 00826c 000098 00 AX 0 0 4 + [217] .text.NetCRC16 PROGBITS 00007304 008304 00004c 00 AX 0 0 4 + [218] .text.GetCRC16 PROGBITS 00007350 008350 00003c 00 AX 0 0 4 + [219] .text.SOR_CRC PROGBITS 0000738c 00838c 000016 00 AX 0 0 2 + [220] .text.Rs485AskCyc PROGBITS 000073a4 0083a4 0000f0 00 AX 0 0 4 + [221] .text.Rs485AskCtr PROGBITS 00007494 008494 000050 00 AX 0 0 4 + [222] .text.Rs485AskRea PROGBITS 000074e4 0084e4 00005c 00 AX 0 0 4 + [223] .text.Temp_Rec_An PROGBITS 00007540 008540 0001b4 00 AX 0 0 4 + [224] .text.Tem_Rs485_R PROGBITS 000076f4 0086f4 0000c8 00 AX 0 0 4 + [225] .text.TK_ConfigIn PROGBITS 000077bc 0087bc 000010 00 AX 0 0 4 + [226] .text.tk_clk_conf PROGBITS 000077cc 0087cc 000028 00 AX 0 0 4 + [227] .text.TK_con0_con PROGBITS 000077f4 0087f4 0000bc 00 AX 0 0 4 + [228] .text.TK_IO_Enabl PROGBITS 000078b0 0088b0 000134 00 AX 0 0 4 + [229] .text.TK_Sampling PROGBITS 000079e4 0089e4 000058 00 AX 0 0 4 + [230] .text.TKEYIntHand PROGBITS 00007a3c 008a3c 000088 00 AX 0 0 4 + [231] .text.get_key_num PROGBITS 00007ac4 008ac4 000028 00 AX 0 0 4 + [232] .text.TK_Baseline PROGBITS 00007aec 008aec 000084 00 AX 0 0 4 + [233] .text.TK_Scan_Sta PROGBITS 00007b70 008b70 000020 00 AX 0 0 4 + [234] .text.TK_Keymap_p PROGBITS 00007b90 008b90 000180 00 AX 0 0 4 + [235] .text.TK_overflow PROGBITS 00007d10 008d10 00011c 00 AX 0 0 4 + [236] .text.TK_Baseline PROGBITS 00007e2c 008e2c 0001d0 00 AX 0 0 4 + [237] .text.TK_result_p PROGBITS 00007ffc 008ffc 000054 00 AX 0 0 4 + [238] .text.CORETHandle PROGBITS 00008050 009050 000078 00 AX 0 0 4 + [239] .text.get_key_seq PROGBITS 000080c8 0090c8 000034 00 AX 0 0 4 + [240] .text.CORET_CONFI PROGBITS 000080fc 0090fc 000038 00 AX 0 0 4 + [241] .text.tk_chxval_s PROGBITS 00008134 009134 00001c 00 AX 0 0 4 + [242] .text.tk_reserved PROGBITS 00008150 009150 000028 00 AX 0 0 4 + [243] .text.tk_init PROGBITS 00008178 009178 000180 00 AX 0 0 4 + [244] .text.std_clk_cal PROGBITS 000082f8 0092f8 000284 00 AX 0 0 4 + [245] .RomCode PROGBITS 0000857c 00a0a8 000000 00 W 0 0 1 + [246] .rodata PROGBITS 0000857c 00957c 0008f8 00 A 0 0 4 + [247] .data PROGBITS 20000000 00a000 0000a8 00 WA 0 0 4 + [248] .bss NOBITS 200000a8 00a0a8 00074c 00 WA 0 0 4 + [249] .csky.attributes CSKY_ATTRIBUTES 00000000 00a0a8 000022 00 0 0 1 + [250] .comment PROGBITS 00000000 00a0ca 000042 01 MS 0 0 1 + [251] .csky_stack_size PROGBITS 00000000 00a110 000a9c 00 0 0 16 + [252] .debug_line PROGBITS 00000000 00abac 00651e 00 0 0 1 + [253] .debug_info PROGBITS 00000000 0110ca 04e056 00 0 0 1 + [254] .debug_abbrev PROGBITS 00000000 05f120 004629 00 0 0 1 + [255] .debug_aranges PROGBITS 00000000 063750 0010f8 00 0 0 8 + [256] .debug_ranges PROGBITS 00000000 064848 0010c8 00 0 0 1 + [257] .debug_str PROGBITS 00000000 065910 009cc8 01 MS 0 0 1 + [258] .debug_frame PROGBITS 00000000 06f5d8 002848 00 0 0 4 + [259] .debug_loc PROGBITS 00000000 071e20 003fed 00 0 0 1 + [260] .shstrtab STRTAB 00000000 07dab7 0016cc 00 0 0 1 + [261] .symtab SYMTAB 00000000 075e10 006050 10 262 1132 4 + [262] .strtab STRTAB 00000000 07be60 001c57 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 0x08e74 0x08e74 R E 0x1000 + LOAD 0x00a000 0x20000000 0x00008e74 0x000a8 0x007f4 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_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.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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.Data_Resend .text.Switch_Report_Task .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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 + 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.MCU485_SendData) 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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/USRCTRL_display_logic.o(.text.Data_Resend) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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.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_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/USRCTRL_display_logic.o(.text.Switch_Report_Task) refers to Obj/USRCTRL_display_logic.o(.text.Data_Resend) for Data_Resend + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.Switch_Report_Task) for Switch_Report_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.Data_Resend) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + 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/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + 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/USRCTRL_display_logic.o(.text.Data_Resend) refers to rand.o(.text) for rand + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to rand.o(.text) for rand + 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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) 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_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2893 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.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_Status(Obj/FWlib_apt32f102_gpio.o), (16 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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (152 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .text.Rs485_DevPort_ACK(Obj/USRCTRL_uart_protocol.o), (10 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), (107 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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 .bss(rand.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). + +590 unused seciton(s) (total 137230 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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* + rand.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 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + _fpadd_parts 0x00000d80 F 724 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00001048 0 .text + $t 0x00001054 0 .text + $d 0x000010bc 0 .text + $t 0x000010bc 0 .text + $d 0x000012e4 0 .text + $d 0x000012f0 0 .text + $t 0x000012f0 0 .text + $d 0x00001440 0 .text + $d 0x00001444 0 .text + $t 0x00001444 0 .text + $d 0x00001480 0 .text + $t 0x00001480 0 .text + $d 0x000014bc 0 .text + $t 0x000014bc 0 .text + $d 0x000014f8 0 .text + $t 0x000014f8 0 .text + $d 0x00001564 0 .text + $d 0x00001568 0 .text + $t 0x00001568 0 .text + $d 0x000015d4 0 .text + $d 0x000015d8 0 .text + $t 0x000015d8 0 .text + $d 0x0000162c 0 .text + $t 0x0000162c 0 .text + $d 0x00001670 0 .text + $t 0x00001670 0 .text + $d 0x000016a4 0 .text + $d 0x000016b0 0 .text + $t 0x000016b0 0 .text + $d 0x00001838 0 .text + $d 0x0000184c 0 .text + $t 0x0000184c 0 .text + $d 0x00001904 0 .text + $d 0x00001910 0 .text + $t 0x00001910 0 .text + $d 0x0000199c 0 .text + $t 0x0000199c 0 .text + $d 0x000019b0 0 .text + $t 0x000019bc 0 .text + $d 0x000019c2 0 .text + $d 0x000019c8 0 .text + $t 0x000019c8 0 .text + $d 0x00001a50 0 .text + $t 0x00001a50 0 .text + $d 0x00001ab4 0 .text.__main + $t 0x00001ab4 0 .text.__main + $d 0x00001ad8 0 .text.__main + SYSCON_General_CMD.part.0 0x00001aec F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001aec 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001aec 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b58 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b60 0 .text.SYSCON_RST_VALUE + $t 0x00001b60 0 .text.SYSCON_RST_VALUE + $d 0x00001b90 0 .text.SYSCON_RST_VALUE + $d 0x00001bac 0 .text.SYSCON_General_CMD + $t 0x00001bac 0 .text.SYSCON_General_CMD + $d 0x00001bd8 0 .text.SYSCON_General_CMD + $d 0x00001bdc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001bdc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c54 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c88 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c8c 0 .text.SYSCON_WDT_CMD + $t 0x00001c8c 0 .text.SYSCON_WDT_CMD + $d 0x00001cbc 0 .text.SYSCON_WDT_CMD + $d 0x00001cc8 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001cc8 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cd8 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cdc 0 .text.SYSCON_IWDCNT_Config + $t 0x00001cdc 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cec 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cf4 0 .text.SYSCON_LVD_Config + $t 0x00001cf4 0 .text.SYSCON_LVD_Config + $d 0x00001d0c 0 .text.SYSCON_LVD_Config + $d 0x00001d14 0 .text.LVD_Int_Enable + $t 0x00001d14 0 .text.LVD_Int_Enable + $d 0x00001d2c 0 .text.LVD_Int_Enable + $d 0x00001d30 0 .text.IWDT_Int_Enable + $t 0x00001d30 0 .text.IWDT_Int_Enable + $d 0x00001d48 0 .text.IWDT_Int_Enable + $d 0x00001d4c 0 .text.EXTI_trigger_CMD + $t 0x00001d4c 0 .text.EXTI_trigger_CMD + $d 0x00001d88 0 .text.EXTI_trigger_CMD + $d 0x00001d8c 0 .text.EXTI_interrupt_CMD + $t 0x00001d8c 0 .text.EXTI_interrupt_CMD + $d 0x00001db8 0 .text.EXTI_interrupt_CMD + $d 0x00001dc0 0 .text.GPIO_EXTI_interrupt + $t 0x00001dc0 0 .text.GPIO_EXTI_interrupt + $d 0x00001dc4 0 .text.EXI4_Int_Enable + $t 0x00001dc4 0 .text.EXI4_Int_Enable + $d 0x00001dd0 0 .text.EXI4_Int_Enable + $d 0x00001dd4 0 .text.SYSCON_Int_Enable + $t 0x00001dd4 0 .text.SYSCON_Int_Enable + $d 0x00001ddc 0 .text.SYSCON_Int_Enable + $d 0x00001de0 0 .text.SYSCON_INT_Priority + $t 0x00001de0 0 .text.SYSCON_INT_Priority + $d 0x00001df8 0 .text.SYSCON_INT_Priority + $d 0x00001e04 0 .text.Set_INT_Priority + $t 0x00001e04 0 .text.Set_INT_Priority + $d 0x00001e30 0 .text.Set_INT_Priority + $d 0x00001e34 0 .text.GPIO_Init + $t 0x00001e34 0 .text.GPIO_Init + $d 0x00001e46 0 .text.GPIO_Init + $t 0x00001e4e 0 .text.GPIO_Init + $d 0x00001eaa 0 .text.GPIO_Init + $t 0x00001eb2 0 .text.GPIO_Init + $d 0x00001f00 0 .text.GPIO_Init + $d 0x00001f14 0 .text.GPIO_PullHigh_Init + $t 0x00001f14 0 .text.GPIO_PullHigh_Init + $d 0x00001f28 0 .text.GPIO_DriveStrength_EN + $t 0x00001f28 0 .text.GPIO_DriveStrength_EN + $d 0x00001f38 0 .text.GPIO_IntGroup_Set + $t 0x00001f38 0 .text.GPIO_IntGroup_Set + $d 0x0000202c 0 .text.GPIO_IntGroup_Set + $d 0x00002044 0 .text.GPIOA0_EXI_Init + $t 0x00002044 0 .text.GPIOA0_EXI_Init + $d 0x00002050 0 .text.GPIOA0_EXI_Init + $t 0x00002060 0 .text.GPIOA0_EXI_Init + $d 0x0000213c 0 .text.GPIOA0_EXI_Init + $d 0x00002140 0 .text.GPIO_Write_High + $t 0x00002140 0 .text.GPIO_Write_High + $d 0x00002148 0 .text.GPIO_Write_Low + $t 0x00002148 0 .text.GPIO_Write_Low + $d 0x00002150 0 .text.GPIO_Reverse + $t 0x00002150 0 .text.GPIO_Reverse + $d 0x00002168 0 .text.LPT_Soft_Reset + $t 0x00002168 0 .text.LPT_Soft_Reset + $d 0x00002178 0 .text.LPT_Soft_Reset + $d 0x0000217c 0 .text.WWDT_CNT_Load + $t 0x0000217c 0 .text.WWDT_CNT_Load + $d 0x00002188 0 .text.WWDT_CNT_Load + $d 0x0000218c 0 .text.BT_DeInit + $t 0x0000218c 0 .text.BT_DeInit + $d 0x000021a8 0 .text.BT_Start + $t 0x000021a8 0 .text.BT_Start + $d 0x000021b0 0 .text.BT_Soft_Reset + $t 0x000021b0 0 .text.BT_Soft_Reset + $d 0x000021ba 0 .text.BT_Configure + $t 0x000021ba 0 .text.BT_Configure + $d 0x000021d2 0 .text.BT_ControlSet_Configure + $t 0x000021d2 0 .text.BT_ControlSet_Configure + $d 0x000021fe 0 .text.BT_Period_CMP_Write + $t 0x000021fe 0 .text.BT_Period_CMP_Write + $d 0x00002204 0 .text.BT_ConfigInterrupt_CMD + $t 0x00002204 0 .text.BT_ConfigInterrupt_CMD + $d 0x00002218 0 .text.BT1_INT_ENABLE + $t 0x00002218 0 .text.BT1_INT_ENABLE + $d 0x00002224 0 .text.BT1_INT_ENABLE + $d 0x00002228 0 .text.SIO_DeInit + $t 0x00002228 0 .text.SIO_DeInit + $d 0x00002244 0 .text.SIO_DeInit + $d 0x00002248 0 .text.SIO_IO_Init + $t 0x00002248 0 .text.SIO_IO_Init + $d 0x000022a0 0 .text.SIO_IO_Init + $d 0x000022a8 0 .text.SIO_TX_Init + $t 0x000022a8 0 .text.SIO_TX_Init + $d 0x000022b4 0 .text.SIO_TX_Init + $d 0x000022b8 0 .text.SIO_TX_Configure + $t 0x000022b8 0 .text.SIO_TX_Configure + $d 0x00002304 0 .text.SIO_TX_Configure + $d 0x00002308 0 .text.UART0_DeInit + $t 0x00002308 0 .text.UART0_DeInit + $d 0x0000231c 0 .text.UART0_DeInit + $d 0x00002320 0 .text.UART1_DeInit + $t 0x00002320 0 .text.UART1_DeInit + $d 0x00002334 0 .text.UART1_DeInit + $d 0x00002338 0 .text.UART2_DeInit + $t 0x00002338 0 .text.UART2_DeInit + $d 0x0000234c 0 .text.UART2_DeInit + $d 0x00002350 0 .text.UART0_Int_Enable + $t 0x00002350 0 .text.UART0_Int_Enable + $d 0x00002364 0 .text.UART0_Int_Enable + $d 0x0000236c 0 .text.UART2_Int_Enable + $t 0x0000236c 0 .text.UART2_Int_Enable + $d 0x00002380 0 .text.UART2_Int_Enable + $d 0x00002388 0 .text.UART_IO_Init + $t 0x00002388 0 .text.UART_IO_Init + $d 0x0000246c 0 .text.UART_IO_Init + $d 0x00002474 0 .text.UARTInit + $t 0x00002474 0 .text.UARTInit + $d 0x00002480 0 .text.UARTInit + $d 0x00002484 0 .text.UARTInitRxTxIntEn + $t 0x00002484 0 .text.UARTInitRxTxIntEn + $d 0x00002490 0 .text.UARTInitRxTxIntEn + $d 0x00002494 0 .text.UARTTransmit + $t 0x00002494 0 .text.UARTTransmit + $d 0x000024b4 0 .text.EPT_Stop + $t 0x000024b4 0 .text.EPT_Stop + $d 0x000024d4 0 .text.EPT_Stop + $d 0x000024dc 0 .text.ADC12_RESET_VALUE + $t 0x000024dc 0 .text.ADC12_RESET_VALUE + $d 0x0000253c 0 .text.ADC12_RESET_VALUE + $d 0x00002540 0 .text.ADC12_Control + $t 0x00002540 0 .text.ADC12_Control + $d 0x0000254c 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002550 F 32 .text.ADC12_CMD.part.0 + $d 0x00002550 0 .text.ADC12_CMD.part.0 + $t 0x00002550 0 .text.ADC12_CMD.part.0 + $d 0x0000256c 0 .text.ADC12_CMD.part.0 + $d 0x00002570 0 .text.ADC12_CLK_CMD + $t 0x00002570 0 .text.ADC12_CLK_CMD + $d 0x00002598 0 .text.ADC12_CLK_CMD + $d 0x0000259c 0 .text.ADC12_Software_Reset + $t 0x0000259c 0 .text.ADC12_Software_Reset + $d 0x000025a8 0 .text.ADC12_CMD + $t 0x000025a8 0 .text.ADC12_CMD + $d 0x000025cc 0 .text.ADC12_CMD + $d 0x000025d0 0 .text.ADC12_ready_wait + $t 0x000025d0 0 .text.ADC12_ready_wait + $d 0x000025e0 0 .text.ADC12_ready_wait + $d 0x000025e4 0 .text.ADC12_SEQEND_wait + $t 0x000025e4 0 .text.ADC12_SEQEND_wait + $d 0x000025f8 0 .text.ADC12_SEQEND_wait + $d 0x000025fc 0 .text.ADC12_DATA_OUPUT + $t 0x000025fc 0 .text.ADC12_DATA_OUPUT + $d 0x0000260c 0 .text.ADC12_DATA_OUPUT + $d 0x00002610 0 .text.ADC12_Configure_Mode + $t 0x00002610 0 .text.ADC12_Configure_Mode + $d 0x00002688 0 .text.ADC12_Configure_Mode + $d 0x0000268c 0 .text.ADC12_Configure_VREF_Selecte + $t 0x0000268c 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002800 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002824 0 .text.ADC12_ConversionChannel_Config + $t 0x00002824 0 .text.ADC12_ConversionChannel_Config + $d 0x00002850 0 .text.ADC12_ConversionChannel_Config + $t 0x00002860 0 .text.ADC12_ConversionChannel_Config + $d 0x00002998 0 .text.ADC12_ConversionChannel_Config + $d 0x000029a4 0 .text.Page_ProgramData + $t 0x000029a4 0 .text.Page_ProgramData + $d 0x00002a3c 0 .text.Page_ProgramData + $d 0x00002a44 0 .text.ReadDataArry_U8 + $t 0x00002a44 0 .text.ReadDataArry_U8 + $d 0x00002a70 0 .text.tk_parameter_init + $t 0x00002a70 0 .text.tk_parameter_init + $d 0x00002b60 0 .text.tk_parameter_init + $d 0x00002bb0 0 .text.CORET_DeInit + $t 0x00002bb0 0 .text.CORET_DeInit + $d 0x00002bc4 0 .text.CORET_DeInit + $d 0x00002bc8 0 .text.CORET_Int_Enable + $t 0x00002bc8 0 .text.CORET_Int_Enable + $d 0x00002bd8 0 .text.CORET_Int_Enable + $d 0x00002be0 0 .text.CORET_start + $t 0x00002be0 0 .text.CORET_start + $d 0x00002bec 0 .text.CORET_start + $d 0x00002bf0 0 .text.CORET_CLKSOURCE_EX + $t 0x00002bf0 0 .text.CORET_CLKSOURCE_EX + $d 0x00002bfc 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c00 0 .text.CORET_TICKINT_Enable + $t 0x00002c00 0 .text.CORET_TICKINT_Enable + $d 0x00002c0c 0 .text.CORET_TICKINT_Enable + $d 0x00002c10 0 .text.CORET_reload + $t 0x00002c10 0 .text.CORET_reload + $d 0x00002c1c 0 .text.CORET_reload + $d 0x00002c20 0 .text.startup.main + $t 0x00002c20 0 .text.startup.main + $d 0x00002c68 0 .text.startup.main + $d 0x00002c70 0 .text.delay_nms + $t 0x00002c70 0 .text.delay_nms + $d 0x00002c9c 0 .text.delay_nus + $t 0x00002c9c 0 .text.delay_nus + $d 0x00002cc0 0 .text.GPIO_CONFIG + $t 0x00002cc0 0 .text.GPIO_CONFIG + $d 0x00002d04 0 .text.GPIO_CONFIG + $d 0x00002d08 0 .text.BT_CONFIG + $t 0x00002d08 0 .text.BT_CONFIG + $d 0x00002d60 0 .text.BT_CONFIG + $d 0x00002d68 0 .text.SYSCON_CONFIG + $t 0x00002d68 0 .text.SYSCON_CONFIG + $d 0x00002dcc 0 .text.APT32F102_init + $t 0x00002dcc 0 .text.APT32F102_init + $d 0x00002e40 0 .text.APT32F102_init + $d 0x00002e54 0 .text.SYSCONIntHandler + $t 0x00002e54 0 .text.SYSCONIntHandler + $d 0x00002f40 0 .text.SYSCONIntHandler + $d 0x00002f44 0 .text.IFCIntHandler + $t 0x00002f44 0 .text.IFCIntHandler + $d 0x00002fa8 0 .text.IFCIntHandler + $d 0x00002fac 0 .text.ADCIntHandler + $t 0x00002fac 0 .text.ADCIntHandler + $d 0x00003010 0 .text.ADCIntHandler + $d 0x00003014 0 .text.EPT0IntHandler + $t 0x00003014 0 .text.EPT0IntHandler + $d 0x000031b4 0 .text.EPT0IntHandler + $d 0x000031c0 0 .text.WWDTHandler + $t 0x000031c0 0 .text.WWDTHandler + $d 0x000031f0 0 .text.WWDTHandler + $d 0x000031f4 0 .text.GPT0IntHandler + $t 0x000031f4 0 .text.GPT0IntHandler + $d 0x00003270 0 .text.GPT0IntHandler + $d 0x00003274 0 .text.RTCIntHandler + $t 0x00003274 0 .text.RTCIntHandler + $d 0x000032dc 0 .text.RTCIntHandler + $d 0x000032e4 0 .text.UART0IntHandler + $t 0x000032e4 0 .text.UART0IntHandler + $d 0x0000331c 0 .text.UART0IntHandler + $d 0x00003320 0 .text.UART1IntHandler + $t 0x00003320 0 .text.UART1IntHandler + $d 0x00003358 0 .text.UART1IntHandler + $d 0x0000335c 0 .text.UART2IntHandler + $t 0x0000335c 0 .text.UART2IntHandler + $d 0x000033dc 0 .text.UART2IntHandler + $d 0x000033f0 0 .text.SPI0IntHandler + $t 0x000033f0 0 .text.SPI0IntHandler + $d 0x000034d4 0 .text.SPI0IntHandler + $d 0x000034d8 0 .text.SIO0IntHandler + $t 0x000034d8 0 .text.SIO0IntHandler + $d 0x00003528 0 .text.SIO0IntHandler + $d 0x0000352c 0 .text.EXI0IntHandler + $t 0x0000352c 0 .text.EXI0IntHandler + $d 0x00003558 0 .text.EXI0IntHandler + $d 0x0000355c 0 .text.EXI1IntHandler + $t 0x0000355c 0 .text.EXI1IntHandler + $d 0x00003588 0 .text.EXI1IntHandler + $d 0x0000358c 0 .text.EXI2to3IntHandler + $t 0x0000358c 0 .text.EXI2to3IntHandler + $d 0x000035d0 0 .text.EXI2to3IntHandler + $d 0x000035d4 0 .text.EXI4to9IntHandler + $t 0x000035d4 0 .text.EXI4to9IntHandler + $d 0x0000362c 0 .text.EXI4to9IntHandler + $d 0x00003630 0 .text.EXI10to15IntHandler + $t 0x00003630 0 .text.EXI10to15IntHandler + $d 0x000036a8 0 .text.EXI10to15IntHandler + $d 0x000036b0 0 .text.LPTIntHandler + $t 0x000036b0 0 .text.LPTIntHandler + $d 0x000036e0 0 .text.LPTIntHandler + $d 0x000036e4 0 .text.BT0IntHandler + $t 0x000036e4 0 .text.BT0IntHandler + $d 0x0000372c 0 .text.BT0IntHandler + $d 0x00003730 0 .text.BT1IntHandler + $t 0x00003730 0 .text.BT1IntHandler + $d 0x0000378c 0 .text.BT1IntHandler + $d 0x00003794 0 .text.PriviledgeVioHandler + $t 0x00003794 0 .text.PriviledgeVioHandler + $d 0x00003796 0 .text.PendTrapHandler + $t 0x00003796 0 .text.PendTrapHandler + $d 0x0000379e 0 .text.Trap3Handler + $t 0x0000379e 0 .text.Trap3Handler + $d 0x000037a6 0 .text.Trap2Handler + $t 0x000037a6 0 .text.Trap2Handler + $d 0x000037ae 0 .text.Trap1Handler + $t 0x000037ae 0 .text.Trap1Handler + $d 0x000037b6 0 .text.Trap0Handler + $t 0x000037b6 0 .text.Trap0Handler + $d 0x000037be 0 .text.UnrecExecpHandler + $t 0x000037be 0 .text.UnrecExecpHandler + $d 0x000037c6 0 .text.BreakPointHandler + $t 0x000037c6 0 .text.BreakPointHandler + $d 0x000037ce 0 .text.AccessErrHandler + $t 0x000037ce 0 .text.AccessErrHandler + $d 0x000037d6 0 .text.IllegalInstrHandler + $t 0x000037d6 0 .text.IllegalInstrHandler + $d 0x000037de 0 .text.MisalignedHandler + $t 0x000037de 0 .text.MisalignedHandler + $d 0x000037e6 0 .text.CNTAIntHandler + $t 0x000037e6 0 .text.CNTAIntHandler + $d 0x000037ee 0 .text.I2CIntHandler + $t 0x000037ee 0 .text.I2CIntHandler + $d 0x000037f8 0 .text.__divsi3 + $t 0x000037f8 0 .text.__divsi3 + $d 0x00003818 0 .text.__divsi3 + $d 0x0000381c 0 .text.__udivsi3 + $t 0x0000381c 0 .text.__udivsi3 + $d 0x0000383c 0 .text.__udivsi3 + $d 0x00003840 0 .text.__modsi3 + $t 0x00003840 0 .text.__modsi3 + $d 0x00003860 0 .text.__modsi3 + $d 0x00003864 0 .text.__umodsi3 + $t 0x00003864 0 .text.__umodsi3 + $d 0x00003884 0 .text.__umodsi3 + $d 0x00003888 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003888 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000388e 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000388e 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00003894 0 .text.UARTx_Init + $t 0x00003894 0 .text.UARTx_Init + $d 0x00003984 0 .text.UARTx_Init + $d 0x000039b0 0 .text.UART2_RecvINT_Processing + $t 0x000039b0 0 .text.UART2_RecvINT_Processing + $d 0x00003a0c 0 .text.UART2_RecvINT_Processing + $d 0x00003a18 0 .text.UART2_TASK + $t 0x00003a18 0 .text.UART2_TASK + $d 0x00003aac 0 .text.UART2_TASK + $d 0x00003abc 0 .text.MCU485_SendData + $t 0x00003abc 0 .text.MCU485_SendData + $d 0x00003b38 0 .text.MCU485_SendData + $d 0x00003b44 0 .text.Dbg_Println + $t 0x00003b44 0 .text.Dbg_Println + $d 0x00003b50 0 .text.Dbg_Print_Buff + $t 0x00003b50 0 .text.Dbg_Print_Buff + $d 0x00003b54 0 .text.Touch_Key_Init + $t 0x00003b54 0 .text.Touch_Key_Init + $d 0x00003ba8 0 .text.Touch_Key_Init + $d 0x00003bbc 0 .text.TouchKey_RS485_Printf + $t 0x00003bbc 0 .text.TouchKey_RS485_Printf + $d 0x00003ce4 0 .text.TouchKey_RS485_Printf + $d 0x00003cf4 0 .text.Get_TouchKey_CH_State + $t 0x00003cf4 0 .text.Get_TouchKey_CH_State + $d 0x00003d00 0 .text.Get_TouchKey_CH_State + $t 0x00003d06 0 .text.Get_TouchKey_CH_State + $d 0x00003d2c 0 .text.Get_TouchKey_CH_State + $d 0x00003d30 0 .text.Touch_Key_Event_Handling + $t 0x00003d30 0 .text.Touch_Key_Event_Handling + $d 0x00003dd8 0 .text.Touch_Key_Event_Handling + $d 0x00003ddc 0 .text.TouchKey_Set_Interface_Task + $t 0x00003ddc 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e0c 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e18 0 .text.Touch_Key_Task + $t 0x00003e18 0 .text.Touch_Key_Task + $d 0x00003ef8 0 .text.Touch_Key_Task + $d 0x00003f08 0 .text.TouchKey_CheckSum + $t 0x00003f08 0 .text.TouchKey_CheckSum + $d 0x00003f20 0 .text.TouchKey_Comm_Reply + $t 0x00003f20 0 .text.TouchKey_Comm_Reply + $d 0x00003f84 0 .text.TouchKey_Comm_Reply + $d 0x00003f88 0 .text.TouchKey_SetPara_Processing + $t 0x00003f88 0 .text.TouchKey_SetPara_Processing + $d 0x0000402c 0 .text.TouchKey_SetPara_Processing + $d 0x00004040 0 .text.TouchKey_ReadPara_Processing + $t 0x00004040 0 .text.TouchKey_ReadPara_Processing + $d 0x00004130 0 .text.TouchKey_ReadPara_Processing + $d 0x00004138 0 .text.TouchKey_DugPrintf_Processing + $t 0x00004138 0 .text.TouchKey_DugPrintf_Processing + $d 0x0000416c 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004170 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004170 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004218 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004220 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004220 0 .text.TouchKey_ResetDevice_Processing + $d 0x0000423c 0 .text.TouchKey_Comm_Processing + $t 0x0000423c 0 .text.TouchKey_Comm_Processing + $d 0x000042ca 0 .text.TouchKey_Comm_Processing + $t 0x000042d0 0 .text.TouchKey_Comm_Processing + $d 0x000042f8 0 .text.TouchKey_Comm_Processing + $d 0x00004314 0 .text.EEPROM_CheckSum + $t 0x00004314 0 .text.EEPROM_CheckSum + $d 0x0000432c 0 .text.EEPROM_ReadParaInfo + $t 0x0000432c 0 .text.EEPROM_ReadParaInfo + $d 0x00004398 0 .text.EEPROM_ReadParaInfo + $d 0x000043a0 0 .text.EEPROM_WriteParaInfo + $t 0x000043a0 0 .text.EEPROM_WriteParaInfo + $d 0x000043e0 0 .text.EEPROM_WriteParaInfo + $d 0x000043e4 0 .text.EEPROM_Validate_ParaInfo + $t 0x000043e4 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004468 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004470 0 .text.EEPROM_Default_ParaInfo + $t 0x00004470 0 .text.EEPROM_Default_ParaInfo + $d 0x00004490 0 .text.EEPROM_Init + $t 0x00004490 0 .text.EEPROM_Init + $d 0x000044dc 0 .text.EEPROM_Init + $d 0x000044e8 0 .text.EEPROM_WriteTouchPara + $t 0x000044e8 0 .text.EEPROM_WriteTouchPara + $d 0x00004548 0 .text.EEPROM_WriteTouchPara + $d 0x00004554 0 .text.EEPROM_ReadTouchPara + $t 0x00004554 0 .text.EEPROM_ReadTouchPara + $d 0x000045ec 0 .text.EEPROM_ReadTouchPara + $d 0x00004600 0 .text.EEPROM_Validate_TouchPara + $t 0x00004600 0 .text.EEPROM_Validate_TouchPara + $d 0x000046a4 0 .text.EEPROM_Validate_TouchPara + $d 0x000046a8 0 .text.EEPROM_Default_TouchPara + $t 0x000046a8 0 .text.EEPROM_Default_TouchPara + $d 0x000046e8 0 .text.EEPROM_TouchPara_Printf + $t 0x000046e8 0 .text.EEPROM_TouchPara_Printf + $d 0x0000474c 0 .text.EEPROM_TouchPara_Printf + $d 0x00004768 0 .text.ADC_Init + $t 0x00004768 0 .text.ADC_Init + $d 0x000047c0 0 .text.ADC_Init + $d 0x000047c4 0 .text.Thermistor_Array_Transform + $t 0x000047c4 0 .text.Thermistor_Array_Transform + $d 0x00004804 0 .text.Thermistor_Array_Transform + $d 0x0000480c 0 .text.Calculate_ADC_Sample_Average + $t 0x0000480c 0 .text.Calculate_ADC_Sample_Average + $d 0x00004898 0 .text.Calculate_ADC_Sample_Average + $d 0x000048a8 0 .text.Get_Temp_Val + $t 0x000048a8 0 .text.Get_Temp_Val + $d 0x000048b4 0 .text.Get_Temp_Val + $d 0x000048b8 0 .text.Gather_Temp + $t 0x000048b8 0 .text.Gather_Temp + $d 0x00004954 0 .text.Gather_Temp + $d 0x00004960 0 .text.ADC_Sample_Task + $t 0x00004960 0 .text.ADC_Sample_Task + $d 0x000049fc 0 .text.ADC_Sample_Task + $d 0x00004a08 0 .text.Contol_Switch_Light + $t 0x00004a08 0 .text.Contol_Switch_Light + $d 0x00004a18 0 .text.Contol_Switch_Light + $t 0x00004a24 0 .text.Contol_Switch_Light + $d 0x00004da0 0 .text.Contol_Switch_Light + $t 0x00004da8 0 .text.Contol_Switch_Light + $d 0x00004df4 0 .text.Contol_Switch_Light_2 + $t 0x00004df4 0 .text.Contol_Switch_Light_2 + $d 0x00004e04 0 .text.Contol_Switch_Light_2 + $t 0x00004e10 0 .text.Contol_Switch_Light_2 + $d 0x0000518c 0 .text.Contol_Switch_Light_2 + $t 0x00005194 0 .text.Contol_Switch_Light_2 + $d 0x000051e0 0 .text.Contol_Switch_ClickAction + $t 0x000051e0 0 .text.Contol_Switch_ClickAction + $d 0x00005204 0 .text.Contol_Switch_ClickAction + $d 0x00005208 0 .text.Get_TM1812_State_Change + $t 0x00005208 0 .text.Get_TM1812_State_Change + $d 0x0000524c 0 .text.Get_TM1812_State_Change + $d 0x00005254 0 .text.TimeCall_SIO_Send + $t 0x00005254 0 .text.TimeCall_SIO_Send + $d 0x00005368 0 .text.TimeCall_SIO_Send + $d 0x00005374 0 .text.TimeCall_SIO_Send2 + $t 0x00005374 0 .text.TimeCall_SIO_Send2 + $d 0x0000540c 0 .text.TimeCall_SIO_Send2 + $d 0x0000541c 0 .text.Tm1812_Task + $t 0x0000541c 0 .text.Tm1812_Task + $d 0x00005444 0 .text.Tm1812_Task + $d 0x00005450 0 .text.Tm1812_Ch_Insert_Data + $t 0x00005450 0 .text.Tm1812_Ch_Insert_Data + $d 0x0000546c 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005474 0 .text.TM1812_Control_CH_State + $t 0x00005474 0 .text.TM1812_Control_CH_State + $d 0x000054d0 0 .text.TM1812_Control_CH_State + $d 0x000054e4 0 .text.TM1812_Control_CH_CurrState + $t 0x000054e4 0 .text.TM1812_Control_CH_CurrState + $d 0x0000553c 0 .text.TM1812_Control_CH_CurrState + $d 0x00005548 0 .text.TM1812_LED_Init + $t 0x00005548 0 .text.TM1812_LED_Init + $d 0x0000559c 0 .text.TM1812_LED_Init + $d 0x000055a0 0 .text.HT1621_WR_Data + $t 0x000055a0 0 .text.HT1621_WR_Data + $d 0x000055e4 0 .text.HT1621_WR_Data + $d 0x000055e8 0 .text.HT1621_WR_CMD + $t 0x000055e8 0 .text.HT1621_WR_CMD + $d 0x00005614 0 .text.HT1621_WR_CMD + $d 0x00005618 0 .text.HT1621_Init + $t 0x00005618 0 .text.HT1621_Init + $d 0x000056c4 0 .text.HT1621_Init + $d 0x000056cc 0 .text.HT1621_Clear + $t 0x000056cc 0 .text.HT1621_Clear + $d 0x00005714 0 .text.HT1621_Clear + $d 0x0000571c 0 .text.HT1621_ALLON + $t 0x0000571c 0 .text.HT1621_ALLON + $d 0x00005758 0 .text.HT1621_ALLON + $d 0x0000575c 0 .text.HT1621_Refresh_Data + $t 0x0000575c 0 .text.HT1621_Refresh_Data + $d 0x000057a0 0 .text.HT1621_Refresh_Data + $d 0x000057a8 0 .text.Set_Temperature_Display + $t 0x000057a8 0 .text.Set_Temperature_Display + $d 0x0000586c 0 .text.Set_Temperature_Display + $d 0x00005878 0 .text.Local_Temperature_Display + $t 0x00005878 0 .text.Local_Temperature_Display + $d 0x0000593c 0 .text.Local_Temperature_Display + $d 0x00005948 0 .text.Control_Mode + $t 0x00005948 0 .text.Control_Mode + $d 0x00005952 0 .text.Control_Mode + $t 0x00005960 0 .text.Control_Mode + $d 0x00005b84 0 .text.Control_Mode + $d 0x00005b8c 0 .text.Control_wind_velocity + $t 0x00005b8c 0 .text.Control_wind_velocity + $d 0x00005b98 0 .text.Control_wind_velocity + $t 0x00005b9e 0 .text.Control_wind_velocity + $d 0x00005c58 0 .text.Control_wind_velocity + $d 0x00005c5c 0 .text.Control_Prompt_Text + $t 0x00005c5c 0 .text.Control_Prompt_Text + $d 0x00005cfc 0 .text.Control_Prompt_Text + $d 0x00005d00 0 .text.Controlled_Buzzer + $t 0x00005d00 0 .text.Controlled_Buzzer + $d 0x00005d40 0 .text.Controlled_Buzzer + $d 0x00005d48 0 .text.Controlled_LCD_Backlight + $t 0x00005d48 0 .text.Controlled_LCD_Backlight + $d 0x00005e1c 0 .text.Controlled_LCD_Backlight + $d 0x00005e24 0 .text.Controlled_Key_Backlight + $t 0x00005e24 0 .text.Controlled_Key_Backlight + $d 0x00005e50 0 .text.Controlled_Key_Backlight + $d 0x00005e54 0 .text.Set_Device_ADDR + $t 0x00005e54 0 .text.Set_Device_ADDR + $d 0x00005ee8 0 .text.Set_Device_ADDR + $d 0x00005ef0 0 .text.Set_Temp_Difference + $t 0x00005ef0 0 .text.Set_Temp_Difference + $d 0x00005f4c 0 .text.Set_Temp_Difference + $d 0x00005f54 0 .text.HT1621_Refresh_Task + $t 0x00005f54 0 .text.HT1621_Refresh_Task + $d 0x00005fcc 0 .text.HT1621_Refresh_Task + $d 0x00005fe4 0 .text.TemCtrl_Init + $t 0x00005fe4 0 .text.TemCtrl_Init + $d 0x00006128 0 .text.TemCtrl_Init + $d 0x00006140 0 .text.TemCtrl_Model_Set + $t 0x00006140 0 .text.TemCtrl_Model_Set + $d 0x00006184 0 .text.TemCtrl_Model_Set + $d 0x0000618c 0 .text.TemCtrl_Fan_Set + $t 0x0000618c 0 .text.TemCtrl_Fan_Set + $d 0x000061aa 0 .text.TemCtrl_Fan_Set + $t 0x000061ae 0 .text.TemCtrl_Fan_Set + $d 0x000061d4 0 .text.TemCtrl_Fan_Set + $d 0x000061dc 0 .text.TemCtrl_Temperature_Dec + $t 0x000061dc 0 .text.TemCtrl_Temperature_Dec + $d 0x00006204 0 .text.TemCtrl_Temperature_Dec + $d 0x0000620c 0 .text.TemCtrl_Temperature_Add + $t 0x0000620c 0 .text.TemCtrl_Temperature_Add + $d 0x00006234 0 .text.TemCtrl_Temperature_Add + $d 0x0000623c 0 .text.TemCtrl_OnOff_Set + $t 0x0000623c 0 .text.TemCtrl_OnOff_Set + $d 0x00006268 0 .text.TemCtrl_OnOff_Set + $d 0x00006270 0 .text.Tem_Valve_Ctrl + $t 0x00006270 0 .text.Tem_Valve_Ctrl + $d 0x00006330 0 .text.Tem_Valve_Ctrl + $d 0x0000633c 0 .text.TemCtrl_Pro + $t 0x0000633c 0 .text.TemCtrl_Pro + $d 0x0000649c 0 .text.TemCtrl_Pro + $d 0x000064b4 0 .text.KEY1_Model_Press_Fun + $t 0x000064b4 0 .text.KEY1_Model_Press_Fun + $d 0x00006580 0 .text.KEY1_Model_Press_Fun + $d 0x00006594 0 .text.KEY2_Fan_Press_Fun + $t 0x00006594 0 .text.KEY2_Fan_Press_Fun + $d 0x00006660 0 .text.KEY2_Fan_Press_Fun + $d 0x00006674 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00006674 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00006770 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00006784 0 .text.KEY3_Long_Press_Fun + $t 0x00006784 0 .text.KEY3_Long_Press_Fun + $d 0x000067ec 0 .text.KEY3_Long_Press_Fun + $d 0x000067fc 0 .text.KEY4_TempDec_Press_Fun + $t 0x000067fc 0 .text.KEY4_TempDec_Press_Fun + $d 0x000068f8 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000690c 0 .text.KEY4_Long_Press + $t 0x0000690c 0 .text.KEY4_Long_Press + $d 0x00006974 0 .text.KEY4_Long_Press + $d 0x00006984 0 .text.KEY5_OnOff_Press_Fun + $t 0x00006984 0 .text.KEY5_OnOff_Press_Fun + $d 0x000069f4 0 .text.KEY5_OnOff_Press_Fun + $d 0x00006a08 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00006a08 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006a54 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006a5c 0 .text.DisPlay_Init + $t 0x00006a5c 0 .text.DisPlay_Init + $d 0x00006a74 0 .text.DisPlay_Init + $d 0x00006a7c 0 .text.Data_Resend + $t 0x00006a7c 0 .text.Data_Resend + $d 0x00006b04 0 .text.Data_Resend + $d 0x00006b14 0 .text.Switch_Report_Task + $t 0x00006b14 0 .text.Switch_Report_Task + $d 0x00006bc0 0 .text.Switch_Report_Task + $d 0x00006bd4 0 .text.DisPlay_Task + $t 0x00006bd4 0 .text.DisPlay_Task + $d 0x00006dd6 0 .text.DisPlay_Task + $t 0x00006dde 0 .text.DisPlay_Task + $d 0x00006f3c 0 .text.DisPlay_Task + $t 0x00006f74 0 .text.DisPlay_Task + $d 0x00006f94 0 .text.Debug_Init + $t 0x00006f94 0 .text.Debug_Init + $d 0x00006fc8 0 .text.Debug_Init + $d 0x00006fd0 0 .text.Dev_SaveData + $t 0x00006fd0 0 .text.Dev_SaveData + $d 0x00007058 0 .text.Dev_SaveData + $d 0x00007068 0 .text.Debug_Task + $t 0x00007068 0 .text.Debug_Task + $d 0x000070d4 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x000070e4 F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x000070e4 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x000070e4 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007108 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x0000710c 0 .text.Relay_Init + $t 0x0000710c 0 .text.Relay_Init + $d 0x00007120 0 .text.Relay_Init + $d 0x00007124 0 .text.Relay_High + $t 0x00007124 0 .text.Relay_High + $d 0x00007140 0 .text.Relay_Mid + $t 0x00007140 0 .text.Relay_Mid + $d 0x0000715c 0 .text.Relay_Low + $t 0x0000715c 0 .text.Relay_Low + $d 0x00007178 0 .text.Relay_Stop + $t 0x00007178 0 .text.Relay_Stop + $d 0x00007194 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00007194 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x000071a4 0 .text.RLY_Direct_Control + $t 0x000071a4 0 .text.RLY_Direct_Control + $d 0x000071e6 0 .text.RLY_Direct_Control + $t 0x000071ea 0 .text.RLY_Direct_Control + $d 0x00007264 0 .text.RLY_Direct_Control + $d 0x0000726c 0 .text.RLY_Zero_Control + $t 0x0000726c 0 .text.RLY_Zero_Control + $d 0x00007282 0 .text.RLY_Zero_Control + $t 0x00007286 0 .text.RLY_Zero_Control + $d 0x00007300 0 .text.RLY_Zero_Control + $d 0x00007304 0 .text.NetCRC16 + $t 0x00007304 0 .text.NetCRC16 + $d 0x00007348 0 .text.NetCRC16 + $d 0x00007350 0 .text.GetCRC16 + $t 0x00007350 0 .text.GetCRC16 + $d 0x00007384 0 .text.GetCRC16 + $d 0x0000738c 0 .text.SOR_CRC + $t 0x0000738c 0 .text.SOR_CRC + $d 0x000073a4 0 .text.Rs485AskCycleSend + $t 0x000073a4 0 .text.Rs485AskCycleSend + $d 0x0000748c 0 .text.Rs485AskCycleSend + $d 0x00007494 0 .text.Rs485AskCtrlSend + $t 0x00007494 0 .text.Rs485AskCtrlSend + $d 0x000074e0 0 .text.Rs485AskCtrlSend + $d 0x000074e4 0 .text.Rs485AskReadSend + $t 0x000074e4 0 .text.Rs485AskReadSend + $d 0x0000753c 0 .text.Rs485AskReadSend + $d 0x00007540 0 .text.Temp_Rec_Analysis + $t 0x00007540 0 .text.Temp_Rec_Analysis + $d 0x000075a8 0 .text.Temp_Rec_Analysis + $t 0x000075ba 0 .text.Temp_Rec_Analysis + $d 0x000075e0 0 .text.Temp_Rec_Analysis + $t 0x000075e4 0 .text.Temp_Rec_Analysis + $d 0x000076ca 0 .text.Temp_Rec_Analysis + $t 0x000076ce 0 .text.Temp_Rec_Analysis + $d 0x000076e4 0 .text.Temp_Rec_Analysis + $d 0x000076f4 0 .text.Tem_Rs485_Rec_Pro + $t 0x000076f4 0 .text.Tem_Rs485_Rec_Pro + $d 0x000077ac 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x000077bc F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000077bc 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x000077bc 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000077c8 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x000077cc 0 .text.tk_clk_config + $t 0x000077cc 0 .text.tk_clk_config + $d 0x000077f0 0 .text.tk_clk_config + $d 0x000077f4 0 .text.TK_con0_config + $t 0x000077f4 0 .text.TK_con0_config + $d 0x000078a4 0 .text.TK_con0_config + $d 0x000078b0 0 .text.TK_IO_Enable + $t 0x000078b0 0 .text.TK_IO_Enable + $d 0x000078f4 0 .text.TK_IO_Enable + $t 0x00007904 0 .text.TK_IO_Enable + $d 0x000079d8 0 .text.TK_IO_Enable + $d 0x000079e4 0 .text.TK_Sampling_prog + $t 0x000079e4 0 .text.TK_Sampling_prog + $d 0x00007a2c 0 .text.TK_Sampling_prog + $d 0x00007a3c 0 .text.TKEYIntHandler + $t 0x00007a3c 0 .text.TKEYIntHandler + $d 0x00007ab8 0 .text.TKEYIntHandler + $d 0x00007ac4 0 .text.get_key_number + $t 0x00007ac4 0 .text.get_key_number + $d 0x00007ae8 0 .text.get_key_number + $d 0x00007aec 0 .text.TK_Baseline_prog + $t 0x00007aec 0 .text.TK_Baseline_prog + $d 0x00007b54 0 .text.TK_Baseline_prog + $d 0x00007b70 0 .text.TK_Scan_Start + $t 0x00007b70 0 .text.TK_Scan_Start + $d 0x00007b88 0 .text.TK_Scan_Start + $d 0x00007b90 0 .text.TK_Keymap_prog + $t 0x00007b90 0 .text.TK_Keymap_prog + $d 0x00007cd8 0 .text.TK_Keymap_prog + $d 0x00007d10 0 .text.TK_overflow_predict + $t 0x00007d10 0 .text.TK_overflow_predict + $d 0x00007df8 0 .text.TK_overflow_predict + $d 0x00007e2c 0 .text.TK_Baseline_tracking + $t 0x00007e2c 0 .text.TK_Baseline_tracking + $d 0x00007fd0 0 .text.TK_Baseline_tracking + $d 0x00007ffc 0 .text.TK_result_prog + $t 0x00007ffc 0 .text.TK_result_prog + $d 0x0000803c 0 .text.TK_result_prog + $d 0x00008050 0 .text.CORETHandler + $t 0x00008050 0 .text.CORETHandler + $d 0x000080b0 0 .text.CORETHandler + $d 0x000080c8 0 .text.get_key_seq + $t 0x000080c8 0 .text.get_key_seq + $d 0x000080f4 0 .text.get_key_seq + $d 0x000080fc 0 .text.CORET_CONFIG + $t 0x000080fc 0 .text.CORET_CONFIG + $d 0x0000812c 0 .text.CORET_CONFIG + $d 0x00008134 0 .text.tk_chxval_seqxcon_clr + $t 0x00008134 0 .text.tk_chxval_seqxcon_clr + $d 0x0000814c 0 .text.tk_chxval_seqxcon_clr + $d 0x00008150 0 .text.tk_reserved_init + $t 0x00008150 0 .text.tk_reserved_init + $d 0x00008164 0 .text.tk_reserved_init + $d 0x00008178 0 .text.tk_init + $t 0x00008178 0 .text.tk_init + $d 0x000081b4 0 .text.tk_init + $t 0x000081ba 0 .text.tk_init + $d 0x000082a4 0 .text.tk_init + $d 0x000082f8 0 .text.std_clk_calib + $t 0x000082f8 0 .text.std_clk_calib + $d 0x00008540 0 .text.std_clk_calib + __func__.6380 0x0000857c O 28 .rodata + __func__.6418 0x00008598 O 25 .rodata + bp 0x000088f0 O 16 .rodata + dp_l 0x00008900 O 16 .rodata + dp_h 0x00008910 O 16 .rodata + minilibc_rand_seed 0x200000a4 O 4 .data + NUM.6403 0x200000b0 O 1 .bss + adc_tick.6313 0x200000cc O 4 .bss + test_tick.6403 0x200001bc O 4 .bss + tick.6342 0x200001c0 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __adddf3 0x00001054 F 46 .text + __subdf3 0x00001084 F 54 .text + __muldf3 0x000010bc F 564 .text + __divdf3 0x000012f0 F 340 .text + __gtdf2 0x00001444 F 60 .text + __gedf2 0x00001480 F 60 .text + __ledf2 0x000014bc F 58 .text + __floatsidf 0x000014f8 F 112 .text + __fixdfsi 0x00001568 F 112 .text + __floatunsidf 0x000015d8 F 84 .text + __muldi3 0x0000162c F 68 .text + __clzsi2 0x00001670 F 64 .text + __pack_d 0x000016b0 F 412 .text + __unpack_d 0x0000184c F 196 .text + __fpcmp_parts_d 0x00001910 F 140 .text + __GI_rand 0x0000199c F 0 .text + rand 0x0000199c w F 20 .text + __GI_srand 0x000019bc F 6 .text + srand 0x000019bc w F 6 .text + __memset_fast 0x000019c8 w F 136 .text + memset 0x000019c8 w F 136 .text + __memcpy_fast 0x00001a50 w F 100 .text + memcpy 0x00001a50 w F 100 .text + __main 0x00001ab4 F 56 .text.__main + SYSCON_RST_VALUE 0x00001b60 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001bac F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001bdc F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c64 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c8c F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001cc8 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001cdc F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001cf4 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001d14 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001d30 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001d4c F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00001d8c F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00001dc0 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00001dc4 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00001dd4 F 12 .text.SYSCON_Int_Enable + SYSCON_INT_Priority 0x00001de0 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001e04 F 48 .text.Set_INT_Priority + GPIO_Init 0x00001e34 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f14 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f28 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f38 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00002044 F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x00002140 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00002148 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00002150 F 22 .text.GPIO_Reverse + LPT_Soft_Reset 0x00002168 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x0000217c F 16 .text.WWDT_CNT_Load + BT_DeInit 0x0000218c F 28 .text.BT_DeInit + BT_Start 0x000021a8 F 8 .text.BT_Start + BT_Soft_Reset 0x000021b0 F 10 .text.BT_Soft_Reset + BT_Configure 0x000021ba F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000021d2 F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x000021fe F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00002204 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00002218 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00002228 F 32 .text.SIO_DeInit + SIO_IO_Init 0x00002248 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x000022a8 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x000022b8 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x00002308 F 24 .text.UART0_DeInit + UART1_DeInit 0x00002320 F 24 .text.UART1_DeInit + UART2_DeInit 0x00002338 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00002350 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x0000236c F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002388 F 236 .text.UART_IO_Init + UARTInit 0x00002474 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00002484 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002494 F 30 .text.UARTTransmit + EPT_Stop 0x000024b4 F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x000024dc F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002540 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x00002570 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x0000259c F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000025a8 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x000025d0 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x000025e4 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x000025fc F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002610 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x0000268c F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002824 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x000029a4 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a44 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002a70 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002bb0 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002bc8 F 24 .text.CORET_Int_Enable + CORET_start 0x00002be0 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002bf0 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c00 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c10 F 16 .text.CORET_reload + main 0x00002c20 F 80 .text.startup.main + delay_nms 0x00002c70 F 44 .text.delay_nms + delay_nus 0x00002c9c F 34 .text.delay_nus + GPIO_CONFIG 0x00002cc0 F 72 .text.GPIO_CONFIG + BT_CONFIG 0x00002d08 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002d68 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002dcc F 136 .text.APT32F102_init + SYSCONIntHandler 0x00002e54 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002f44 F 104 .text.IFCIntHandler + ADCIntHandler 0x00002fac F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003014 F 428 .text.EPT0IntHandler + WWDTHandler 0x000031c0 F 52 .text.WWDTHandler + GPT0IntHandler 0x000031f4 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003274 F 112 .text.RTCIntHandler + UART0IntHandler 0x000032e4 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003320 F 60 .text.UART1IntHandler + UART2IntHandler 0x0000335c F 148 .text.UART2IntHandler + SPI0IntHandler 0x000033f0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000034d8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x0000352c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x0000355c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x0000358c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000035d4 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003630 F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x000036b0 F 52 .text.LPTIntHandler + BT0IntHandler 0x000036e4 F 76 .text.BT0IntHandler + BT1IntHandler 0x00003730 F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x00003794 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003796 F 8 .text.PendTrapHandler + Trap3Handler 0x0000379e F 8 .text.Trap3Handler + Trap2Handler 0x000037a6 F 8 .text.Trap2Handler + Trap1Handler 0x000037ae F 8 .text.Trap1Handler + Trap0Handler 0x000037b6 F 8 .text.Trap0Handler + UnrecExecpHandler 0x000037be F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000037c6 F 8 .text.BreakPointHandler + AccessErrHandler 0x000037ce F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000037d6 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000037de F 8 .text.MisalignedHandler + CNTAIntHandler 0x000037e6 F 8 .text.CNTAIntHandler + I2CIntHandler 0x000037ee F 8 .text.I2CIntHandler + __divsi3 0x000037f8 F 36 .text.__divsi3 + __udivsi3 0x0000381c F 36 .text.__udivsi3 + __modsi3 0x00003840 F 36 .text.__modsi3 + __umodsi3 0x00003864 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003888 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000388e F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00003894 F 284 .text.UARTx_Init + UART2_RecvINT_Processing 0x000039b0 F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003a18 F 164 .text.UART2_TASK + MCU485_SendData 0x00003abc F 136 .text.MCU485_SendData + Dbg_Println 0x00003b44 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003b50 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003b54 F 104 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003bbc F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003cf4 F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003d30 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003ddc F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003e18 F 240 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003f08 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003f20 F 104 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003f88 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00004040 F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00004138 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004170 F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004220 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x0000423c F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004314 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x0000432c F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000043a0 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x000043e4 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004470 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x00004490 F 88 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000044e8 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004554 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00004600 F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000046a8 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x000046e8 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004768 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000047c4 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x0000480c F 156 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x000048a8 F 16 .text.Get_Temp_Val + Gather_Temp 0x000048b8 F 168 .text.Gather_Temp + ADC_Sample_Task 0x00004960 F 168 .text.ADC_Sample_Task + Contol_Switch_Light 0x00004a08 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00004df4 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x000051e0 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00005208 F 76 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00005254 F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x00005374 F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x0000541c F 52 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00005450 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x00005474 F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x000054e4 F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00005548 F 88 .text.TM1812_LED_Init + HT1621_WR_Data 0x000055a0 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000055e8 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005618 F 180 .text.HT1621_Init + HT1621_Clear 0x000056cc F 80 .text.HT1621_Clear + HT1621_ALLON 0x0000571c F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x0000575c F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x000057a8 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x00005878 F 208 .text.Local_Temperature_Display + Control_Mode 0x00005948 F 580 .text.Control_Mode + Control_wind_velocity 0x00005b8c F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x00005c5c F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00005d00 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00005d48 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00005e24 F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00005e54 F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00005ef0 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00005f54 F 144 .text.HT1621_Refresh_Task + TemCtrl_Init 0x00005fe4 F 348 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00006140 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x0000618c F 80 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x000061dc F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x0000620c F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x0000623c F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00006270 F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x0000633c F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x000064b4 F 224 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x00006594 F 224 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00006674 F 272 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00006784 F 120 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x000067fc F 272 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x0000690c F 120 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00006984 F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00006a08 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00006a5c F 32 .text.DisPlay_Init + Data_Resend 0x00006a7c F 152 .text.Data_Resend + Switch_Report_Task 0x00006b14 F 192 .text.Switch_Report_Task + DisPlay_Task 0x00006bd4 F 958 .text.DisPlay_Task + Debug_Init 0x00006f94 F 60 .text.Debug_Init + Dev_SaveData 0x00006fd0 F 152 .text.Dev_SaveData + Debug_Task 0x00007068 F 124 .text.Debug_Task + Relay_Init 0x0000710c F 24 .text.Relay_Init + Relay_High 0x00007124 F 28 .text.Relay_High + Relay_Mid 0x00007140 F 28 .text.Relay_Mid + Relay_Low 0x0000715c F 28 .text.Relay_Low + Relay_Stop 0x00007178 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x00007194 F 16 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x000071a4 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x0000726c F 152 .text.RLY_Zero_Control + NetCRC16 0x00007304 F 76 .text.NetCRC16 + GetCRC16 0x00007350 F 60 .text.GetCRC16 + SOR_CRC 0x0000738c F 22 .text.SOR_CRC + Rs485AskCycleSend 0x000073a4 F 240 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00007494 F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x000074e4 F 92 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x00007540 F 436 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000076f4 F 200 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x000077cc F 40 .text.tk_clk_config + TK_con0_config 0x000077f4 F 188 .text.TK_con0_config + TK_IO_Enable 0x000078b0 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x000079e4 F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00007a3c F 136 .text.TKEYIntHandler + get_key_number 0x00007ac4 F 40 .text.get_key_number + TK_Baseline_prog 0x00007aec F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00007b70 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00007b90 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00007d10 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00007e2c F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00007ffc F 84 .text.TK_result_prog + CORETHandler 0x00008050 F 120 .text.CORETHandler + get_key_seq 0x000080c8 F 52 .text.get_key_seq + CORET_CONFIG 0x000080fc F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00008134 F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x00008150 F 40 .text.tk_reserved_init + tk_init 0x00008178 F 368 .text.tk_init + std_clk_calib 0x000082f8 F 644 .text.std_clk_calib + R_Array 0x000085b2 O 820 .rodata + Diaital 0x000088e6 O 10 .rodata + __thenan_df 0x00008920 O 20 .rodata + __clz_tab 0x00008934 O 256 .rodata + _end_rodata 0x00008e74 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 + MCU_Touch_CH 0x20000068 O 5 .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 0x200000a8 0 .data + Sav_Temp 0x200000a8 O 4 .bss + _bss_start 0x200000a8 0 .bss + Sys_RSR 0x200000ac O 4 .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 + tm1812_param 0x200000d0 O 232 .bss + K 0x200001b8 O 1 .bss + K2 0x200001b9 O 1 .bss + Press_debounce_data 0x200001c4 O 1 .bss + TK_Lowpower_mode 0x200001c5 O 1 .bss + TK_Lowpower_level 0x200001c6 O 1 .bss + TK_longpress_time 0x200001c8 O 4 .bss + Release_debounce_data 0x200001cc O 1 .bss + Key_mode 0x200001cd O 1 .bss + TK_icon 0x200001ce O 34 .bss + MultiTimes_Filter 0x200001f0 O 1 .bss + Base_Speed 0x200001f1 O 1 .bss + TK_IO_ENABLE 0x200001f4 O 4 .bss + Valid_Key_Num 0x200001f8 O 1 .bss + TK_senprd 0x200001fa O 34 .bss + TK_Wakeup_level 0x2000021c O 1 .bss + TK_Triggerlevel 0x2000021e O 34 .bss + TK_EC_LEVEL 0x20000240 O 2 .bss + TK_FVR_LEVEL 0x20000242 O 2 .bss + TK_BaseCnt 0x20000244 O 4 .bss + TK_PSEL_MODE 0x20000248 O 2 .bss + R_CMPB_BUF 0x2000024c O 4 .bss + R_CMPA_BUF 0x20000250 O 4 .bss + R_SIORX_buf 0x20000254 O 40 .bss + g_uart 0x2000027c O 360 .bss + touch_para 0x200003e4 O 28 .bss + g_key 0x20000400 O 52 .bss + g_eeprom 0x20000434 O 8 .bss + g_adc 0x2000043c O 80 .bss + g_switch 0x2000048c O 40 .bss + HT1621 0x200004b4 O 64 .bss + TempCtrl 0x200004f4 O 41 .bss + Debug_Inf 0x2000051d O 14 .bss + baseline_data0 0x2000052c O 34 .bss + TK_Postive_build2 0x2000054e O 17 .bss + Key_Map1 0x20000560 O 4 .bss + offset_data2_abs 0x20000564 O 34 .bss + scan_f 0x20000586 O 1 .bss + offset_data1_abs 0x20000588 O 34 .bss + Release_debounce0 0x200005aa O 17 .bss + Key_Map0 0x200005bc O 4 .bss + bsae_over_f 0x200005c0 O 1 .bss + scan_cnt 0x200005c2 O 2 .bss + Press_debounce0 0x200005c4 O 17 .bss + offset_data0 0x200005d6 O 34 .bss + sampling_data1 0x200005f8 O 34 .bss + Key_Map2 0x2000061c O 4 .bss + Release_debounce1 0x20000620 O 17 .bss + tk_overflow_f 0x20000631 O 1 .bss + TK_Negtive_build2 0x20000632 O 17 .bss + base_update_f 0x20000643 O 1 .bss + TK_Postive_build1 0x20000644 O 17 .bss + time_cnt 0x20000658 O 4 .bss + lpt_scan_pend_cnt 0x2000065c O 2 .bss + TK_track_cnt 0x2000065e O 1 .bss + Key_Map 0x20000660 O 4 .bss + baseline_data1 0x20000664 O 34 .bss + TK_Postive_build0 0x20000686 O 17 .bss + sampling_data2 0x20000698 O 34 .bss + offset_data1 0x200006ba O 34 .bss + TK_ovrdect_cnt 0x200006dc O 1 .bss + Press_debounce2 0x200006dd O 17 .bss + TK_Negtive_build1 0x200006ee O 17 .bss + tk_num 0x200006ff O 1 .bss + TK_Negtive_build0 0x20000700 O 17 .bss + Press_debounce1 0x20000711 O 17 .bss + Release_debounce2 0x20000722 O 17 .bss + r_Key_Map_Temp 0x20000734 O 4 .bss + tk_seque 0x20000738 O 17 .bss + scan_step 0x20000749 O 1 .bss + baseline_data2 0x2000074a O 34 .bss + tk_sampling_max 0x2000076c O 34 .bss + offset_data0_abs 0x2000078e O 34 .bss + offset_data2 0x200007b0 O 34 .bss + sampling_data0 0x200007d2 O 34 .bss + _ebss 0x200007f4 0 .bss + _end 0x200007f4 0 .bss + end 0x200007f4 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: 0x00008e74, 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 1244 .text pow.o + 0x00000b5e 0x00000006 Code RO 1252 .text fabs.o + 0x00000b64 0x00000020 Code RO 1258 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1265 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1276 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1281 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1286 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1291 .text _fixunsdfsi.o + 0x00000d80 0x0000033a Code RO 1298 .text _addsub_df.o + 0x000010ba 0x00000002 PAD + 0x000010bc 0x00000234 Code RO 1305 .text _mul_df.o + 0x000012f0 0x00000154 Code RO 1312 .text _div_df.o + 0x00001444 0x0000003c Code RO 1319 .text _gt_df.o + 0x00001480 0x0000003c Code RO 1326 .text _ge_df.o + 0x000014bc 0x0000003a Code RO 1333 .text _le_df.o + 0x000014f6 0x00000002 PAD + 0x000014f8 0x00000070 Code RO 1340 .text _si_to_df.o + 0x00001568 0x00000070 Code RO 1347 .text _df_to_si.o + 0x000015d8 0x00000054 Code RO 1361 .text _usi_to_df.o + 0x0000162c 0x00000044 Code RO 1368 .text _muldi3.o + 0x00001670 0x00000040 Code RO 1375 .text _clzsi2.o + 0x000016b0 0x0000019c Code RO 1381 .text _pack_df.o + 0x0000184c 0x000000c4 Code RO 1388 .text _unpack_df.o + 0x00001910 0x0000008c Code RO 1395 .text _fpcmp_parts_df.o + 0x0000199c 0x0000002c Code RO 1416 .text rand.o + 0x000019c8 0x00000088 Code RO 1421 .text memset_fast.o + 0x00001a50 0x00000064 Code RO 1426 .text memcpy_fast.o + 0x00001ab4 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001aec 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001b60 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001bac 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001bdc 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c8c 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001cc8 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001cdc 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cf4 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001d14 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d30 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d4c 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d8c 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001dc0 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00001dc4 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001dd4 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001de0 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e04 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e34 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f14 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f28 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f38 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002044 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00002140 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00002148 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00002150 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00002168 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x0000217c 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x0000218c 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000021a8 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000021b0 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000021ba 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000021d2 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x000021fe 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00002204 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00002218 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00002228 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x00002248 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x000022a8 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x000022b8 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x00002308 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002320 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002338 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002350 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x0000236c 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002388 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002474 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00002484 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002494 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000024b4 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000024dc 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002540 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002550 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x00002570 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x0000259c 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000025a8 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x000025d0 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x000025e4 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x000025fc 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002610 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x0000268c 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002824 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x000029a4 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a44 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002a70 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002bb0 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002bc8 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002be0 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002bf0 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c00 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c10 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c20 0x00000050 Code RO 705 .text.startup.main Obj/main.o + 0x00002c70 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002c9c 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002cc0 0x00000048 Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x00002d08 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002d68 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002dcc 0x00000088 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002e54 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002f44 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00002fac 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003014 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000031c0 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000031f4 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003274 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000032e4 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003320 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x0000335c 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000033f0 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000034d8 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x0000352c 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x0000355c 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x0000358c 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000035d4 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003630 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000036b0 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000036e4 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003730 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003794 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003796 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000379e 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000037a6 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000037ae 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000037b6 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000037be 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000037c6 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000037ce 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000037d6 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000037de 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000037e6 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000037ee 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000037f8 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x0000381c 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003840 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00003864 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003888 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000388e 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003894 0x0000011c Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000039b0 0x00000068 Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003a18 0x000000a4 Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003abc 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003b44 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003b50 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003b54 0x00000068 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003bbc 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003cf4 0x0000003c Code RO 866 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003d30 0x000000ac Code RO 868 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003ddc 0x0000003c Code RO 869 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003e18 0x000000f0 Code RO 870 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003f08 0x00000018 Code RO 871 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003f20 0x00000068 Code RO 872 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003f88 0x000000b8 Code RO 873 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00004040 0x000000f8 Code RO 874 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00004138 0x00000038 Code RO 875 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004170 0x000000b0 Code RO 876 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004220 0x0000001a Code RO 877 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x0000423c 0x000000d8 Code RO 878 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004314 0x00000016 Code RO 897 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x0000432c 0x00000074 Code RO 898 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000043a0 0x00000044 Code RO 899 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x000043e4 0x0000008c Code RO 901 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004470 0x00000020 Code RO 902 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004490 0x00000058 Code RO 903 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000044e8 0x0000006c Code RO 904 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004554 0x000000ac Code RO 905 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00004600 0x000000a8 Code RO 906 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000046a8 0x00000040 Code RO 907 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x000046e8 0x00000080 Code RO 908 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004768 0x0000005c Code RO 926 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000047c4 0x00000048 Code RO 927 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x0000480c 0x0000009c Code RO 928 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000048a8 0x00000010 Code RO 929 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x000048b8 0x000000a8 Code RO 930 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x00004960 0x000000a8 Code RO 931 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004a08 0x000003ea Code RO 950 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00004df4 0x000003ea Code RO 951 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x000051e0 0x00000028 Code RO 952 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00005208 0x0000004c Code RO 974 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00005254 0x00000120 Code RO 976 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x00005374 0x000000a8 Code RO 977 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x0000541c 0x00000034 Code RO 978 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00005450 0x00000024 Code RO 979 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x00005474 0x00000070 Code RO 980 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x000054e4 0x00000064 Code RO 981 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00005548 0x00000058 Code RO 982 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x000055a0 0x00000048 Code RO 999 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000055e8 0x00000030 Code RO 1000 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005618 0x000000b4 Code RO 1001 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x000056cc 0x00000050 Code RO 1005 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x0000571c 0x00000040 Code RO 1006 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x0000575c 0x0000004c Code RO 1007 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x000057a8 0x000000d0 Code RO 1008 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005878 0x000000d0 Code RO 1009 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005948 0x00000244 Code RO 1010 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00005b8c 0x000000d0 Code RO 1011 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00005c5c 0x000000a4 Code RO 1012 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00005d00 0x00000048 Code RO 1013 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00005d48 0x000000dc Code RO 1014 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00005e24 0x00000030 Code RO 1015 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00005e54 0x0000009c Code RO 1016 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00005ef0 0x00000064 Code RO 1017 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00005f54 0x00000090 Code RO 1018 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00005fe4 0x0000015c Code RO 1038 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00006140 0x0000004c Code RO 1039 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x0000618c 0x00000050 Code RO 1040 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x000061dc 0x00000030 Code RO 1041 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x0000620c 0x00000030 Code RO 1042 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x0000623c 0x00000034 Code RO 1043 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006270 0x000000cc Code RO 1044 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x0000633c 0x00000178 Code RO 1045 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x000064b4 0x000000e0 Code RO 1063 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006594 0x000000e0 Code RO 1064 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006674 0x00000110 Code RO 1065 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006784 0x00000078 Code RO 1066 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x000067fc 0x00000110 Code RO 1067 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000690c 0x00000078 Code RO 1068 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00006984 0x00000084 Code RO 1069 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006a08 0x00000054 Code RO 1085 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00006a5c 0x00000020 Code RO 1086 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00006a7c 0x00000098 Code RO 1087 .text.Data_Resend Obj/USRCTRL_display_logic.o + 0x00006b14 0x000000c0 Code RO 1088 .text.Switch_Report_Task Obj/USRCTRL_display_logic.o + 0x00006bd4 0x000003be Code RO 1089 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00006f94 0x0000003c Code RO 1106 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00006fd0 0x00000098 Code RO 1107 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00007068 0x0000007c Code RO 1108 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x000070e4 0x00000028 Code RO 1125 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x0000710c 0x00000018 Code RO 1126 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00007124 0x0000001c Code RO 1127 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00007140 0x0000001c Code RO 1128 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x0000715c 0x0000001c Code RO 1129 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00007178 0x0000001c Code RO 1130 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007194 0x00000010 Code RO 1131 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x000071a4 0x000000c8 Code RO 1132 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x0000726c 0x00000098 Code RO 1133 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x00007304 0x0000004c Code RO 1149 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00007350 0x0000003c Code RO 1150 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x0000738c 0x00000016 Code RO 1151 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x000073a4 0x000000f0 Code RO 1152 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00007494 0x00000050 Code RO 1153 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x000074e4 0x0000005c Code RO 1154 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00007540 0x000001b4 Code RO 1156 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x000076f4 0x000000c8 Code RO 1157 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x000077bc 0x00000010 Code RO 1183 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x000077cc 0x00000028 Code RO 1185 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x000077f4 0x000000bc Code RO 1186 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x000078b0 0x00000134 Code RO 1189 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x000079e4 0x00000058 Code RO 1190 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007a3c 0x00000088 Code RO 1194 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00007ac4 0x00000028 Code RO 1195 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00007aec 0x00000084 Code RO 1196 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007b70 0x00000020 Code RO 1197 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00007b90 0x00000180 Code RO 1198 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007d10 0x0000011c Code RO 1199 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00007e2c 0x000001d0 Code RO 1200 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00007ffc 0x00000054 Code RO 1201 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00008050 0x00000078 Code RO 1202 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x000080c8 0x00000034 Code RO 1203 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x000080fc 0x00000038 Code RO 1204 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x00008134 0x0000001c Code RO 1205 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x00008150 0x00000028 Code RO 1206 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00008178 0x00000180 Code RO 1207 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x000082f8 0x00000284 Code RO 1224 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000857c 0x00000035 Data RO 879 .rodata Obj/SYSTEM_touch_key.o + 0x000085b1 0x00000001 PAD + 0x000085b2 0x00000334 Data RO 932 .rodata Obj/SYSTEM_adc.o + 0x000088e6 0x0000000a Data RO 1020 .rodata Obj/SYSTEM_ht1621.o + 0x000088f0 0x00000030 Data RO 1247 .rodata pow.o + 0x00008920 0x00000014 Data RO 1357 .rodata _thenan_df.o + 0x00008934 0x00000100 Data RO 1405 .rodata _clz.o + 0x00008a34 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00008a42 0x00000092 Data RO 880 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00008ad4 0x0000018d Data RO 909 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00008c61 0x00000018 Data RO 933 .rodata.str1.1 Obj/SYSTEM_adc.o + 0x00008c79 0x00000011 Data RO 983 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x00008c8a 0x00000071 Data RO 1046 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00008cfb 0x0000007e Data RO 1070 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00008d79 0x00000045 Data RO 1090 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00008dbe 0x00000087 Data RO 1109 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00008e45 0x0000002c Data RO 1158 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x00008e71 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x000007f4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1181 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x00000004 Data RW 1417 .data rand.o + 0x200000a8 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000010 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x200000cc 0x00000004 Zero RW 925 .bss Obj/SYSTEM_adc.o + 0x200000d0 0x000000f0 Zero RW 968 .bss Obj/SYSTEM_tm1812.o + 0x200001c0 0x00000004 Zero RW 1037 .bss Obj/USRCTRL_tempctrl_unit.o + 0x200001c4 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x2000024a 0x00000002 PAD + 0x2000024c 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x2000027c 0x00000168 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x200003e4 0x00000050 Zero RW 893 COMMON Obj/SYSTEM_touch_key.o + 0x20000434 0x00000008 Zero RW 922 COMMON Obj/SYSTEM_eeprom.o + 0x2000043c 0x00000050 Zero RW 946 COMMON Obj/SYSTEM_adc.o + 0x2000048c 0x00000028 Zero RW 965 COMMON Obj/SYSTEM_switch_fun.o + 0x200004b4 0x00000040 Zero RW 1034 COMMON Obj/SYSTEM_ht1621.o + 0x200004f4 0x00000029 Zero RW 1059 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x2000051d 0x0000000e Zero RW 1121 COMMON Obj/USRCTRL_debug_unit.o + 0x2000052b 0x00000001 PAD + 0x2000052c 0x000002c8 Zero RW 1220 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 268 Obj/arch_crt0.o + 56 0 0 0 802 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 840 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 816 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9321 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 80 14 0 8 13189 Obj/main.o + 480 0 0 0 16194 Obj/mcu_initial.o + 2466 0 0 60 15659 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 702 0 0 376 13928 Obj/SYSTEM_uart.o + 1982 199 5 80 16696 Obj/SYSTEM_touch_key.o + 1106 397 0 8 14562 Obj/SYSTEM_eeprom.o + 672 844 0 84 13674 Obj/SYSTEM_adc.o + 2044 0 0 40 13999 Obj/SYSTEM_switch_fun.o + 920 17 0 240 14980 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17316 Obj/SYSTEM_ht1621.o + 1232 113 0 45 12744 Obj/USRCTRL_tempctrl_unit.o + 1364 126 0 0 12299 Obj/USRCTRL_key_logic.o + 1418 69 0 0 12188 Obj/USRCTRL_display_logic.o + 336 135 0 14 11756 Obj/USRCTRL_debug_unit.o + 544 0 0 0 13196 Obj/USRCTRL_myrelay.o + 1206 44 0 0 14060 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 24220 1968 109 1153 413866 Object Totals + 6 4 6 3 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 + + 2876 0 49 712 16333 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 0 49 712 16333 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + + 44 0 4 0 0 rand.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + ------------------------------------------------------------ + 280 0 4 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 + 34140 2296 168 1868 438874 Grand Totals + 34140 2296 168 1868 438874 Elf Image Totals + 34140 2296 168 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 36436 ( 35.58kB) +Total RW Size (RW Data + ZI Data) 2036 ( 1.99kB) +Total ROM Size (Code + RO Data + RW Data) 36604 ( 35.75kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250304.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250304.asm new file mode 100644 index 0000000..8be46d5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250304.asm @@ -0,0 +1,23186 @@ + +.//Obj/T1_TC_34650_V01_20250304.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000037ea .long 0x000037ea + 8: 000037da .long 0x000037da + c: 00000184 .long 0x00000184 + 10: 000037e2 .long 0x000037e2 + 14: 000037a0 .long 0x000037a0 + 18: 00000184 .long 0x00000184 + 1c: 000037d2 .long 0x000037d2 + 20: 000037ca .long 0x000037ca + 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: 000037c2 .long 0x000037c2 + 44: 000037ba .long 0x000037ba + 48: 000037b2 .long 0x000037b2 + 4c: 000037aa .long 0x000037aa + 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: 000037a2 .long 0x000037a2 + 80: 000080e8 .long 0x000080e8 + 84: 00002e60 .long 0x00002e60 + 88: 00002f50 .long 0x00002f50 + 8c: 00002fb8 .long 0x00002fb8 + 90: 00003020 .long 0x00003020 + 94: 00000184 .long 0x00000184 + 98: 000031cc .long 0x000031cc + 9c: 00003538 .long 0x00003538 + a0: 00003568 .long 0x00003568 + a4: 00003200 .long 0x00003200 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003280 .long 0x00003280 + b4: 000032f0 .long 0x000032f0 + b8: 0000332c .long 0x0000332c + bc: 00003368 .long 0x00003368 + c0: 00000184 .long 0x00000184 + c4: 000037fa .long 0x000037fa + c8: 00000184 .long 0x00000184 + cc: 000033fc .long 0x000033fc + d0: 000034e4 .long 0x000034e4 + d4: 00003598 .long 0x00003598 + d8: 000035e0 .long 0x000035e0 + dc: 0000363c .long 0x0000363c + e0: 000037f2 .long 0x000037f2 + e4: 00007ad4 .long 0x00007ad4 + e8: 000036bc .long 0x000036bc + ec: 00000184 .long 0x00000184 + f0: 000036f0 .long 0x000036f0 + f4: 0000373c .long 0x0000373c + 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, 0x1ab4 // 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, 0x2c2c // 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: 00001ab4 .long 0x00001ab4 + 198: 00000160 .long 0x00000160 + 19c: 00002c2c .long 0x00002c2c + 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: e000072f bsr 0x1054 // 1054 <__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: e0000715 bsr 0x1084 // 1084 <__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: e000082a bsr 0x12f0 // 12f0 <__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: e00006ec bsr 0x10bc // 10bc <__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: e00007e0 bsr 0x12f0 // 12f0 <__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: e000069b bsr 0x1084 // 1084 <__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: e0000666 bsr 0x1084 // 1084 <__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: e000067c bsr 0x10bc // 10bc <__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: e0000674 bsr 0x10bc // 10bc <__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: e000066c bsr 0x10bc // 10bc <__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: e000064a bsr 0x1084 // 1084 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000662 bsr 0x10bc // 10bc <__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: e0000640 bsr 0x1084 // 1084 <__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: e0000654 bsr 0x10bc // 10bc <__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: e000064e bsr 0x10bc // 10bc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e000064a bsr 0x10bc // 10bc <__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: e0000628 bsr 0x1084 // 1084 <__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: e0000608 bsr 0x1054 // 1054 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000061a bsr 0x1084 // 1084 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000614 bsr 0x1084 // 1084 <__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: e0000603 bsr 0x1084 // 1084 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000061b bsr 0x10bc // 10bc <__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: e0000613 bsr 0x10bc // 10bc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e00005d9 bsr 0x1054 // 1054 <__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: e0000605 bsr 0x10bc // 10bc <__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: e00005c7 bsr 0x1054 // 1054 <__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: e00005e7 bsr 0x10bc // 10bc <__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: e00005dc bsr 0x10bc // 10bc <__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, 0x8988 // 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: e000059a bsr 0x1084 // 1084 <__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: e000057a bsr 0x1054 // 1054 <__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: e00006c2 bsr 0x12f0 // 12f0 <__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: 00008988 .long 0x00008988 + 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: e000056a bsr 0x10bc // 10bc <__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: e000055b bsr 0x10bc // 10bc <__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: e0000539 bsr 0x1084 // 1084 <__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: e0000531 bsr 0x1084 // 1084 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000052b bsr 0x1084 // 1084 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e0000543 bsr 0x10bc // 10bc <__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: e0000521 bsr 0x1084 // 1084 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e0000539 bsr 0x10bc // 10bc <__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: e0000531 bsr 0x10bc // 10bc <__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: e0000529 bsr 0x10bc // 10bc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e00004ef bsr 0x1054 // 1054 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e000051f bsr 0x10bc // 10bc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e00004e5 bsr 0x1054 // 1054 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000515 bsr 0x10bc // 10bc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e00004db bsr 0x1054 // 1054 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e000050b bsr 0x10bc // 10bc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e00004d1 bsr 0x1054 // 1054 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e0000501 bsr 0x10bc // 10bc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e00004c7 bsr 0x1054 // 1054 <__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: e00004f3 bsr 0x10bc // 10bc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e00004ed bsr 0x10bc // 10bc <__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: e00004b1 bsr 0x1054 // 1054 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e00004e1 bsr 0x10bc // 10bc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e00004a9 bsr 0x1054 // 1054 <__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: e00004d5 bsr 0x10bc // 10bc <__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: e000049b bsr 0x1054 // 1054 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000497 bsr 0x1054 // 1054 <__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: e00004c4 bsr 0x10bc // 10bc <__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: e00004a0 bsr 0x1084 // 1084 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000049c bsr 0x1084 // 1084 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000496 bsr 0x1084 // 1084 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e00004ae bsr 0x10bc // 10bc <__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: e00004a6 bsr 0x10bc // 10bc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000046c bsr 0x1054 // 1054 <__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: e0000464 bsr 0x1054 // 1054 <__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: e0000491 bsr 0x10bc // 10bc <__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: e000046d bsr 0x1084 // 1084 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000467 bsr 0x1084 // 1084 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000047f bsr 0x10bc // 10bc <__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: e0000477 bsr 0x10bc // 10bc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000043d bsr 0x1054 // 1054 <__adddf3> + 7de: 01db lrw r6, 0x8988 // 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: e0000436 bsr 0x1054 // 1054 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000683 bsr 0x14f8 // 14f8 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0x8988 // 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: e0000423 bsr 0x1054 // 1054 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e000041f bsr 0x1054 // 1054 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000041b bsr 0x1054 // 1054 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000042d bsr 0x1084 // 1084 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e0000429 bsr 0x1084 // 1084 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000425 bsr 0x1084 // 1084 <__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: e00003fc bsr 0x1054 // 1054 <__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: e000040c bsr 0x1084 // 1084 <__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: e00005e6 bsr 0x1444 // 1444 <__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: e00003dc bsr 0x1084 // 1084 <__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: e00003bc bsr 0x1054 // 1054 <__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: e00003ea bsr 0x10bc // 10bc <__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: e00003c6 bsr 0x1084 // 1084 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e00003c0 bsr 0x1084 // 1084 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e00003d8 bsr 0x10bc // 10bc <__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: e00003d0 bsr 0x10bc // 10bc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000396 bsr 0x1054 // 1054 <__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: e000038e bsr 0x1054 // 1054 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e00003a0 bsr 0x1084 // 1084 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000039a bsr 0x1084 // 1084 <__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: e00003ae bsr 0x10bc // 10bc <__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: e00003a8 bsr 0x10bc // 10bc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000388 bsr 0x1084 // 1084 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e00003a0 bsr 0x10bc // 10bc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000368 bsr 0x1054 // 1054 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000398 bsr 0x10bc // 10bc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000378 bsr 0x1084 // 1084 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000390 bsr 0x10bc // 10bc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e0000358 bsr 0x1054 // 1054 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000388 bsr 0x10bc // 10bc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000366 bsr 0x1084 // 1084 <__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: e000037a bsr 0x10bc // 10bc <__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: e0000355 bsr 0x1084 // 1084 <__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: e0000485 bsr 0x12f0 // 12f0 <__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: e0000363 bsr 0x10bc // 10bc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000032b bsr 0x1054 // 1054 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000033d bsr 0x1084 // 1084 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e0000339 bsr 0x1084 // 1084 <__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: e0000333 bsr 0x1084 // 1084 <__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: e0000331 bsr 0x10bc // 10bc <__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: e000030b bsr 0x1084 // 1084 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000521 bsr 0x14bc // 14bc <__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: 00008988 .long 0x00008988 + 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: e000028f bsr 0x10bc // 10bc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e0000255 bsr 0x1054 // 1054 <__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: e0000258 bsr 0x1084 // 1084 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000038a bsr 0x12f0 // 12f0 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000397 bsr 0x1480 // 1480 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e0000405 bsr 0x1568 // 1568 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000018c bsr 0x1084 // 1084 <__subdf3> + d70: e00003fc bsr 0x1568 // 1568 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <_fpadd_parts>: + d80: 14c4 push r4-r7 + d82: 142a subi r14, r14, 40 + d84: 9060 ld.w r3, (r0, 0x0) + d86: 3b01 cmphsi r3, 2 + d88: 6dcb mov r7, r2 + d8a: 0c67 bf 0xe58 // e58 <_fpadd_parts+0xd8> + d8c: 9140 ld.w r2, (r1, 0x0) + d8e: 3a01 cmphsi r2, 2 + d90: 0c66 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d92: 3b44 cmpnei r3, 4 + d94: 0cde bf 0xf50 // f50 <_fpadd_parts+0x1d0> + d96: 3a44 cmpnei r2, 4 + d98: 0c62 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d9a: 3a42 cmpnei r2, 2 + d9c: 0cb7 bf 0xf0a // f0a <_fpadd_parts+0x18a> + d9e: 3b42 cmpnei r3, 2 + da0: 0c5e bf 0xe5c // e5c <_fpadd_parts+0xdc> + da2: 9043 ld.w r2, (r0, 0xc) + da4: 9064 ld.w r3, (r0, 0x10) + da6: 9082 ld.w r4, (r0, 0x8) + da8: 91a2 ld.w r5, (r1, 0x8) + daa: b842 st.w r2, (r14, 0x8) + dac: b863 st.w r3, (r14, 0xc) + dae: 9143 ld.w r2, (r1, 0xc) + db0: 9164 ld.w r3, (r1, 0x10) + db2: b840 st.w r2, (r14, 0x0) + db4: b861 st.w r3, (r14, 0x4) + db6: 5c75 subu r3, r4, r5 + db8: 3bdf btsti r3, 31 + dba: 6c8f mov r2, r3 + dbc: 08d2 bt 0xf60 // f60 <_fpadd_parts+0x1e0> + dbe: 363f movi r6, 63 + dc0: 6499 cmplt r6, r2 + dc2: 0c50 bf 0xe62 // e62 <_fpadd_parts+0xe2> + dc4: 6515 cmplt r5, r4 + dc6: 0cbf bf 0xf44 // f44 <_fpadd_parts+0x1c4> + dc8: 3200 movi r2, 0 + dca: 3300 movi r3, 0 + dcc: b840 st.w r2, (r14, 0x0) + dce: b861 st.w r3, (r14, 0x4) + dd0: 9061 ld.w r3, (r0, 0x4) + dd2: 9141 ld.w r2, (r1, 0x4) + dd4: 648e cmpne r3, r2 + dd6: 0c78 bf 0xec6 // ec6 <_fpadd_parts+0x146> + dd8: 3b40 cmpnei r3, 0 + dda: 0cad bf 0xf34 // f34 <_fpadd_parts+0x1b4> + ddc: 9800 ld.w r0, (r14, 0x0) + dde: 9821 ld.w r1, (r14, 0x4) + de0: 9842 ld.w r2, (r14, 0x8) + de2: 9863 ld.w r3, (r14, 0xc) + de4: 6400 cmphs r0, r0 + de6: 600b subc r0, r2 + de8: 604f subc r1, r3 + dea: 39df btsti r1, 31 + dec: 08bd bt 0xf66 // f66 <_fpadd_parts+0x1e6> + dee: 3300 movi r3, 0 + df0: b761 st.w r3, (r7, 0x4) + df2: b782 st.w r4, (r7, 0x8) + df4: 6c83 mov r2, r0 + df6: 6cc7 mov r3, r1 + df8: b703 st.w r0, (r7, 0xc) + dfa: b724 st.w r1, (r7, 0x10) + dfc: 3000 movi r0, 0 + dfe: 3100 movi r1, 0 + e00: 2800 subi r0, 1 + e02: 2900 subi r1, 1 + e04: 6401 cmplt r0, r0 + e06: 6009 addc r0, r2 + e08: 604d addc r1, r3 + e0a: 038f lrw r4, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e0c: 6450 cmphs r4, r1 + e0e: 0c67 bf 0xedc // edc <_fpadd_parts+0x15c> + e10: 6506 cmpne r1, r4 + e12: 0cfd bf 0x100c // 100c <_fpadd_parts+0x28c> + e14: 3000 movi r0, 0 + e16: 9722 ld.w r1, (r7, 0x8) + e18: 2801 subi r0, 2 + e1a: 2900 subi r1, 1 + e1c: 03d4 lrw r6, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e1e: b802 st.w r0, (r14, 0x8) + e20: b8e0 st.w r7, (r14, 0x0) + e22: 0403 br 0xe28 // e28 <_fpadd_parts+0xa8> + e24: 6596 cmpne r5, r6 + e26: 0c83 bf 0xf2c // f2c <_fpadd_parts+0x1ac> + e28: 4301 lsli r0, r3, 1 + e2a: 4a9f lsri r4, r2, 31 + e2c: 6d00 or r4, r0 + e2e: 42a1 lsli r5, r2, 1 + e30: 6c97 mov r2, r5 + e32: 6cd3 mov r3, r4 + e34: 3500 movi r5, 0 + e36: 3400 movi r4, 0 + e38: 2c00 subi r4, 1 + e3a: 2d00 subi r5, 1 + e3c: 6511 cmplt r4, r4 + e3e: 6109 addc r4, r2 + e40: 614d addc r5, r3 + e42: 6558 cmphs r6, r5 + e44: 6c07 mov r0, r1 + e46: 2900 subi r1, 1 + e48: 0bee bt 0xe24 // e24 <_fpadd_parts+0xa4> + e4a: 98e0 ld.w r7, (r14, 0x0) + e4c: b743 st.w r2, (r7, 0xc) + e4e: b764 st.w r3, (r7, 0x10) + e50: 3303 movi r3, 3 + e52: b702 st.w r0, (r7, 0x8) + e54: b760 st.w r3, (r7, 0x0) + e56: 6c1f mov r0, r7 + e58: 140a addi r14, r14, 40 + e5a: 1484 pop r4-r7 + e5c: 6c07 mov r0, r1 + e5e: 140a addi r14, r14, 40 + e60: 1484 pop r4-r7 + e62: 3b20 cmplti r3, 1 + e64: 088c bt 0xf7c // f7c <_fpadd_parts+0x1fc> + e66: 3300 movi r3, 0 + e68: 2b1f subi r3, 32 + e6a: 60c8 addu r3, r2 + e6c: 3bdf btsti r3, 31 + e6e: b866 st.w r3, (r14, 0x18) + e70: 08bb bt 0xfe6 // fe6 <_fpadd_parts+0x266> + e72: 98a1 ld.w r5, (r14, 0x4) + e74: 714d lsr r5, r3 + e76: b8a4 st.w r5, (r14, 0x10) + e78: 3500 movi r5, 0 + e7a: b8a5 st.w r5, (r14, 0x14) + e7c: 9866 ld.w r3, (r14, 0x18) + e7e: 3bdf btsti r3, 31 + e80: 3500 movi r5, 0 + e82: 3600 movi r6, 0 + e84: 08ad bt 0xfde // fde <_fpadd_parts+0x25e> + e86: 3201 movi r2, 1 + e88: 708c lsl r2, r3 + e8a: 6d8b mov r6, r2 + e8c: 3200 movi r2, 0 + e8e: 3300 movi r3, 0 + e90: 2a00 subi r2, 1 + e92: 2b00 subi r3, 1 + e94: 6489 cmplt r2, r2 + e96: 6095 addc r2, r5 + e98: 60d9 addc r3, r6 + e9a: 98a0 ld.w r5, (r14, 0x0) + e9c: 98c1 ld.w r6, (r14, 0x4) + e9e: 6948 and r5, r2 + ea0: 698c and r6, r3 + ea2: 6c97 mov r2, r5 + ea4: 6cdb mov r3, r6 + ea6: 6c8c or r2, r3 + ea8: 3a40 cmpnei r2, 0 + eaa: 3500 movi r5, 0 + eac: 6155 addc r5, r5 + eae: 6c97 mov r2, r5 + eb0: 3300 movi r3, 0 + eb2: 98a4 ld.w r5, (r14, 0x10) + eb4: 98c5 ld.w r6, (r14, 0x14) + eb6: 6d48 or r5, r2 + eb8: 6d8c or r6, r3 + eba: 9061 ld.w r3, (r0, 0x4) + ebc: 9141 ld.w r2, (r1, 0x4) + ebe: 648e cmpne r3, r2 + ec0: b8a0 st.w r5, (r14, 0x0) + ec2: b8c1 st.w r6, (r14, 0x4) + ec4: 0b8a bt 0xdd8 // dd8 <_fpadd_parts+0x58> + ec6: b761 st.w r3, (r7, 0x4) + ec8: 9800 ld.w r0, (r14, 0x0) + eca: 9821 ld.w r1, (r14, 0x4) + ecc: 9842 ld.w r2, (r14, 0x8) + ece: 9863 ld.w r3, (r14, 0xc) + ed0: 6489 cmplt r2, r2 + ed2: 6081 addc r2, r0 + ed4: 60c5 addc r3, r1 + ed6: b782 st.w r4, (r7, 0x8) + ed8: b743 st.w r2, (r7, 0xc) + eda: b764 st.w r3, (r7, 0x10) + edc: 3103 movi r1, 3 + ede: b720 st.w r1, (r7, 0x0) + ee0: 123b lrw r1, 0x1fffffff // 104c <_fpadd_parts+0x2cc> + ee2: 64c4 cmphs r1, r3 + ee4: 0810 bt 0xf04 // f04 <_fpadd_parts+0x184> + ee6: 439f lsli r4, r3, 31 + ee8: 4a01 lsri r0, r2, 1 + eea: 6c10 or r0, r4 + eec: 3500 movi r5, 0 + eee: 3401 movi r4, 1 + ef0: 4b21 lsri r1, r3, 1 + ef2: 6890 and r2, r4 + ef4: 68d4 and r3, r5 + ef6: 6c80 or r2, r0 + ef8: 6cc4 or r3, r1 + efa: b743 st.w r2, (r7, 0xc) + efc: b764 st.w r3, (r7, 0x10) + efe: 9762 ld.w r3, (r7, 0x8) + f00: 2300 addi r3, 1 + f02: b762 st.w r3, (r7, 0x8) + f04: 6c1f mov r0, r7 + f06: 140a addi r14, r14, 40 + f08: 1484 pop r4-r7 + f0a: 3b42 cmpnei r3, 2 + f0c: 0ba6 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f0e: b760 st.w r3, (r7, 0x0) + f10: 9061 ld.w r3, (r0, 0x4) + f12: b761 st.w r3, (r7, 0x4) + f14: 9062 ld.w r3, (r0, 0x8) + f16: b762 st.w r3, (r7, 0x8) + f18: 9063 ld.w r3, (r0, 0xc) + f1a: b763 st.w r3, (r7, 0xc) + f1c: 9064 ld.w r3, (r0, 0x10) + f1e: 9141 ld.w r2, (r1, 0x4) + f20: b764 st.w r3, (r7, 0x10) + f22: 9061 ld.w r3, (r0, 0x4) + f24: 68c8 and r3, r2 + f26: b761 st.w r3, (r7, 0x4) + f28: 6c1f mov r0, r7 + f2a: 0797 br 0xe58 // e58 <_fpadd_parts+0xd8> + f2c: 98e2 ld.w r7, (r14, 0x8) + f2e: 651c cmphs r7, r4 + f30: 0b7c bt 0xe28 // e28 <_fpadd_parts+0xa8> + f32: 078c br 0xe4a // e4a <_fpadd_parts+0xca> + f34: 9802 ld.w r0, (r14, 0x8) + f36: 9823 ld.w r1, (r14, 0xc) + f38: 9840 ld.w r2, (r14, 0x0) + f3a: 9861 ld.w r3, (r14, 0x4) + f3c: 6400 cmphs r0, r0 + f3e: 600b subc r0, r2 + f40: 604f subc r1, r3 + f42: 0754 br 0xdea // dea <_fpadd_parts+0x6a> + f44: 3200 movi r2, 0 + f46: 3300 movi r3, 0 + f48: 6d17 mov r4, r5 + f4a: b842 st.w r2, (r14, 0x8) + f4c: b863 st.w r3, (r14, 0xc) + f4e: 0741 br 0xdd0 // dd0 <_fpadd_parts+0x50> + f50: 3a44 cmpnei r2, 4 + f52: 0b83 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f54: 9041 ld.w r2, (r0, 0x4) + f56: 9161 ld.w r3, (r1, 0x4) + f58: 64ca cmpne r2, r3 + f5a: 0f7f bf 0xe58 // e58 <_fpadd_parts+0xd8> + f5c: 111d lrw r0, 0x89b8 // 1050 <_fpadd_parts+0x2d0> + f5e: 077d br 0xe58 // e58 <_fpadd_parts+0xd8> + f60: 3200 movi r2, 0 + f62: 608e subu r2, r3 + f64: 072d br 0xdbe // dbe <_fpadd_parts+0x3e> + f66: 3301 movi r3, 1 + f68: b761 st.w r3, (r7, 0x4) + f6a: 3200 movi r2, 0 + f6c: 3300 movi r3, 0 + f6e: 6488 cmphs r2, r2 + f70: 6083 subc r2, r0 + f72: 60c7 subc r3, r1 + f74: b782 st.w r4, (r7, 0x8) + f76: b743 st.w r2, (r7, 0xc) + f78: b764 st.w r3, (r7, 0x10) + f7a: 0741 br 0xdfc // dfc <_fpadd_parts+0x7c> + f7c: 3b40 cmpnei r3, 0 + f7e: 0f29 bf 0xdd0 // dd0 <_fpadd_parts+0x50> + f80: 3300 movi r3, 0 + f82: 2b1f subi r3, 32 + f84: 60c8 addu r3, r2 + f86: 3bdf btsti r3, 31 + f88: 6108 addu r4, r2 + f8a: b866 st.w r3, (r14, 0x18) + f8c: 0849 bt 0x101e // 101e <_fpadd_parts+0x29e> + f8e: 9863 ld.w r3, (r14, 0xc) + f90: 98a6 ld.w r5, (r14, 0x18) + f92: 70d5 lsr r3, r5 + f94: b864 st.w r3, (r14, 0x10) + f96: 3300 movi r3, 0 + f98: b865 st.w r3, (r14, 0x14) + f9a: 9866 ld.w r3, (r14, 0x18) + f9c: 3bdf btsti r3, 31 + f9e: 3500 movi r5, 0 + fa0: 3600 movi r6, 0 + fa2: 083a bt 0x1016 // 1016 <_fpadd_parts+0x296> + fa4: 3201 movi r2, 1 + fa6: 708c lsl r2, r3 + fa8: 6d8b mov r6, r2 + faa: 3200 movi r2, 0 + fac: 3300 movi r3, 0 + fae: 2a00 subi r2, 1 + fb0: 2b00 subi r3, 1 + fb2: 6489 cmplt r2, r2 + fb4: 6095 addc r2, r5 + fb6: 60d9 addc r3, r6 + fb8: 98a2 ld.w r5, (r14, 0x8) + fba: 98c3 ld.w r6, (r14, 0xc) + fbc: 6948 and r5, r2 + fbe: 698c and r6, r3 + fc0: 6c97 mov r2, r5 + fc2: 6cdb mov r3, r6 + fc4: 6c8c or r2, r3 + fc6: 3a40 cmpnei r2, 0 + fc8: 3500 movi r5, 0 + fca: 6155 addc r5, r5 + fcc: 6c97 mov r2, r5 + fce: 3300 movi r3, 0 + fd0: 98a4 ld.w r5, (r14, 0x10) + fd2: 98c5 ld.w r6, (r14, 0x14) + fd4: 6d48 or r5, r2 + fd6: 6d8c or r6, r3 + fd8: b8a2 st.w r5, (r14, 0x8) + fda: b8c3 st.w r6, (r14, 0xc) + fdc: 06fa br 0xdd0 // dd0 <_fpadd_parts+0x50> + fde: 3301 movi r3, 1 + fe0: 70c8 lsl r3, r2 + fe2: 6d4f mov r5, r3 + fe4: 0754 br 0xe8c // e8c <_fpadd_parts+0x10c> + fe6: 9861 ld.w r3, (r14, 0x4) + fe8: 361f movi r6, 31 + fea: 43a1 lsli r5, r3, 1 + fec: 618a subu r6, r2 + fee: 7158 lsl r5, r6 + ff0: b8a9 st.w r5, (r14, 0x24) + ff2: 98a0 ld.w r5, (r14, 0x0) + ff4: 98c1 ld.w r6, (r14, 0x4) + ff6: b8a7 st.w r5, (r14, 0x1c) + ff8: b8c8 st.w r6, (r14, 0x20) + ffa: 9867 ld.w r3, (r14, 0x1c) + ffc: 70c9 lsr r3, r2 + ffe: 98a9 ld.w r5, (r14, 0x24) + 1000: 6cd4 or r3, r5 + 1002: b864 st.w r3, (r14, 0x10) + 1004: 9868 ld.w r3, (r14, 0x20) + 1006: 70c9 lsr r3, r2 + 1008: b865 st.w r3, (r14, 0x14) + 100a: 0739 br 0xe7c // e7c <_fpadd_parts+0xfc> + 100c: 3100 movi r1, 0 + 100e: 2901 subi r1, 2 + 1010: 6404 cmphs r1, r0 + 1012: 0b01 bt 0xe14 // e14 <_fpadd_parts+0x94> + 1014: 0764 br 0xedc // edc <_fpadd_parts+0x15c> + 1016: 3301 movi r3, 1 + 1018: 70c8 lsl r3, r2 + 101a: 6d4f mov r5, r3 + 101c: 07c7 br 0xfaa // faa <_fpadd_parts+0x22a> + 101e: 9863 ld.w r3, (r14, 0xc) + 1020: 43c1 lsli r6, r3, 1 + 1022: 351f movi r5, 31 + 1024: 5d69 subu r3, r5, r2 + 1026: 6d5b mov r5, r6 + 1028: 714c lsl r5, r3 + 102a: b8a9 st.w r5, (r14, 0x24) + 102c: 98a2 ld.w r5, (r14, 0x8) + 102e: 98c3 ld.w r6, (r14, 0xc) + 1030: b8a7 st.w r5, (r14, 0x1c) + 1032: b8c8 st.w r6, (r14, 0x20) + 1034: 9867 ld.w r3, (r14, 0x1c) + 1036: 70c9 lsr r3, r2 + 1038: 98a9 ld.w r5, (r14, 0x24) + 103a: 6cd4 or r3, r5 + 103c: b864 st.w r3, (r14, 0x10) + 103e: 9868 ld.w r3, (r14, 0x20) + 1040: 70c9 lsr r3, r2 + 1042: b865 st.w r3, (r14, 0x14) + 1044: 07ab br 0xf9a // f9a <_fpadd_parts+0x21a> + 1046: 0000 bkpt + 1048: 0fffffff .long 0x0fffffff + 104c: 1fffffff .long 0x1fffffff + 1050: 000089b8 .long 0x000089b8 + +00001054 <__adddf3>: + 1054: 14d0 push r15 + 1056: 1433 subi r14, r14, 76 + 1058: b800 st.w r0, (r14, 0x0) + 105a: b821 st.w r1, (r14, 0x4) + 105c: 6c3b mov r0, r14 + 105e: 1904 addi r1, r14, 16 + 1060: b863 st.w r3, (r14, 0xc) + 1062: b842 st.w r2, (r14, 0x8) + 1064: e00003f4 bsr 0x184c // 184c <__unpack_d> + 1068: 1909 addi r1, r14, 36 + 106a: 1802 addi r0, r14, 8 + 106c: e00003f0 bsr 0x184c // 184c <__unpack_d> + 1070: 1a0e addi r2, r14, 56 + 1072: 1909 addi r1, r14, 36 + 1074: 1804 addi r0, r14, 16 + 1076: e3fffe85 bsr 0xd80 // d80 <_fpadd_parts> + 107a: e000031b bsr 0x16b0 // 16b0 <__pack_d> + 107e: 1413 addi r14, r14, 76 + 1080: 1490 pop r15 + ... + +00001084 <__subdf3>: + 1084: 14d0 push r15 + 1086: 1433 subi r14, r14, 76 + 1088: b800 st.w r0, (r14, 0x0) + 108a: b821 st.w r1, (r14, 0x4) + 108c: 6c3b mov r0, r14 + 108e: 1904 addi r1, r14, 16 + 1090: b842 st.w r2, (r14, 0x8) + 1092: b863 st.w r3, (r14, 0xc) + 1094: e00003dc bsr 0x184c // 184c <__unpack_d> + 1098: 1909 addi r1, r14, 36 + 109a: 1802 addi r0, r14, 8 + 109c: e00003d8 bsr 0x184c // 184c <__unpack_d> + 10a0: 986a ld.w r3, (r14, 0x28) + 10a2: 3201 movi r2, 1 + 10a4: 6cc9 xor r3, r2 + 10a6: 1909 addi r1, r14, 36 + 10a8: 1a0e addi r2, r14, 56 + 10aa: 1804 addi r0, r14, 16 + 10ac: b86a st.w r3, (r14, 0x28) + 10ae: e3fffe69 bsr 0xd80 // d80 <_fpadd_parts> + 10b2: e00002ff bsr 0x16b0 // 16b0 <__pack_d> + 10b6: 1413 addi r14, r14, 76 + 10b8: 1490 pop r15 + ... + +000010bc <__muldf3>: + 10bc: 14d4 push r4-r7, r15 + 10be: 143b subi r14, r14, 108 + 10c0: b808 st.w r0, (r14, 0x20) + 10c2: b829 st.w r1, (r14, 0x24) + 10c4: 1808 addi r0, r14, 32 + 10c6: 190c addi r1, r14, 48 + 10c8: b86b st.w r3, (r14, 0x2c) + 10ca: b84a st.w r2, (r14, 0x28) + 10cc: e00003c0 bsr 0x184c // 184c <__unpack_d> + 10d0: 1911 addi r1, r14, 68 + 10d2: 180a addi r0, r14, 40 + 10d4: e00003bc bsr 0x184c // 184c <__unpack_d> + 10d8: 986c ld.w r3, (r14, 0x30) + 10da: 3b01 cmphsi r3, 2 + 10dc: 0cac bf 0x1234 // 1234 <__muldf3+0x178> + 10de: 9851 ld.w r2, (r14, 0x44) + 10e0: 3a01 cmphsi r2, 2 + 10e2: 0c9c bf 0x121a // 121a <__muldf3+0x15e> + 10e4: 3b44 cmpnei r3, 4 + 10e6: 0ca5 bf 0x1230 // 1230 <__muldf3+0x174> + 10e8: 3a44 cmpnei r2, 4 + 10ea: 0c96 bf 0x1216 // 1216 <__muldf3+0x15a> + 10ec: 3b42 cmpnei r3, 2 + 10ee: 0ca3 bf 0x1234 // 1234 <__muldf3+0x178> + 10f0: 3a42 cmpnei r2, 2 + 10f2: 0c94 bf 0x121a // 121a <__muldf3+0x15e> + 10f4: 98ef ld.w r7, (r14, 0x3c) + 10f6: 98b4 ld.w r5, (r14, 0x50) + 10f8: 9875 ld.w r3, (r14, 0x54) + 10fa: 6d8f mov r6, r3 + 10fc: 6c9f mov r2, r7 + 10fe: 3300 movi r3, 0 + 1100: 6c17 mov r0, r5 + 1102: 3100 movi r1, 0 + 1104: e0000294 bsr 0x162c // 162c <__muldi3> + 1108: b804 st.w r0, (r14, 0x10) + 110a: b825 st.w r1, (r14, 0x14) + 110c: 6c9f mov r2, r7 + 110e: 3300 movi r3, 0 + 1110: 6c1b mov r0, r6 + 1112: 3100 movi r1, 0 + 1114: 9890 ld.w r4, (r14, 0x40) + 1116: b8c2 st.w r6, (r14, 0x8) + 1118: e000028a bsr 0x162c // 162c <__muldi3> + 111c: 6d83 mov r6, r0 + 111e: 6dc7 mov r7, r1 + 1120: 9842 ld.w r2, (r14, 0x8) + 1122: 3300 movi r3, 0 + 1124: 6c13 mov r0, r4 + 1126: 3100 movi r1, 0 + 1128: e0000282 bsr 0x162c // 162c <__muldi3> + 112c: b806 st.w r0, (r14, 0x18) + 112e: b827 st.w r1, (r14, 0x1c) + 1130: 6c97 mov r2, r5 + 1132: 3300 movi r3, 0 + 1134: 6c13 mov r0, r4 + 1136: 3100 movi r1, 0 + 1138: e000027a bsr 0x162c // 162c <__muldi3> + 113c: 6401 cmplt r0, r0 + 113e: 6019 addc r0, r6 + 1140: 605d addc r1, r7 + 1142: 65c4 cmphs r1, r7 + 1144: 0c91 bf 0x1266 // 1266 <__muldf3+0x1aa> + 1146: 645e cmpne r7, r1 + 1148: 0c8d bf 0x1262 // 1262 <__muldf3+0x1a6> + 114a: 3300 movi r3, 0 + 114c: 3400 movi r4, 0 + 114e: b862 st.w r3, (r14, 0x8) + 1150: b883 st.w r4, (r14, 0xc) + 1152: 9884 ld.w r4, (r14, 0x10) + 1154: 98a5 ld.w r5, (r14, 0x14) + 1156: 3600 movi r6, 0 + 1158: 6dc3 mov r7, r0 + 115a: 6c93 mov r2, r4 + 115c: 6cd7 mov r3, r5 + 115e: 6489 cmplt r2, r2 + 1160: 6099 addc r2, r6 + 1162: 60dd addc r3, r7 + 1164: 6d8b mov r6, r2 + 1166: 6dcf mov r7, r3 + 1168: 6c93 mov r2, r4 + 116a: 6cd7 mov r3, r5 + 116c: 64dc cmphs r7, r3 + 116e: 0c70 bf 0x124e // 124e <__muldf3+0x192> + 1170: 65ce cmpne r3, r7 + 1172: 0c6c bf 0x124a // 124a <__muldf3+0x18e> + 1174: 6c87 mov r2, r1 + 1176: 3300 movi r3, 0 + 1178: 9806 ld.w r0, (r14, 0x18) + 117a: 9827 ld.w r1, (r14, 0x1c) + 117c: 6401 cmplt r0, r0 + 117e: 6009 addc r0, r2 + 1180: 604d addc r1, r3 + 1182: 6c83 mov r2, r0 + 1184: 6cc7 mov r3, r1 + 1186: 9802 ld.w r0, (r14, 0x8) + 1188: 9823 ld.w r1, (r14, 0xc) + 118a: 6401 cmplt r0, r0 + 118c: 6009 addc r0, r2 + 118e: 604d addc r1, r3 + 1190: 6c83 mov r2, r0 + 1192: 6cc7 mov r3, r1 + 1194: 988e ld.w r4, (r14, 0x38) + 1196: 9833 ld.w r1, (r14, 0x4c) + 1198: 6104 addu r4, r1 + 119a: 5c2e addi r1, r4, 4 + 119c: b838 st.w r1, (r14, 0x60) + 119e: 980d ld.w r0, (r14, 0x34) + 11a0: 9832 ld.w r1, (r14, 0x48) + 11a2: 6442 cmpne r0, r1 + 11a4: 12b0 lrw r5, 0x1fffffff // 12e4 <__muldf3+0x228> + 11a6: 3100 movi r1, 0 + 11a8: 6045 addc r1, r1 + 11aa: 64d4 cmphs r5, r3 + 11ac: b837 st.w r1, (r14, 0x5c) + 11ae: 0879 bt 0x12a0 // 12a0 <__muldf3+0x1e4> + 11b0: 2404 addi r4, 5 + 11b2: b8a4 st.w r5, (r14, 0x10) + 11b4: 3001 movi r0, 1 + 11b6: 3100 movi r1, 0 + 11b8: 6808 and r0, r2 + 11ba: 684c and r1, r3 + 11bc: 6c04 or r0, r1 + 11be: 3840 cmpnei r0, 0 + 11c0: b882 st.w r4, (r14, 0x8) + 11c2: 0c0e bf 0x11de // 11de <__muldf3+0x122> + 11c4: 473f lsli r1, r7, 31 + 11c6: 4e01 lsri r0, r6, 1 + 11c8: 6c04 or r0, r1 + 11ca: 4f21 lsri r1, r7, 1 + 11cc: b800 st.w r0, (r14, 0x0) + 11ce: b821 st.w r1, (r14, 0x4) + 11d0: 3180 movi r1, 128 + 11d2: 98c0 ld.w r6, (r14, 0x0) + 11d4: 98e1 ld.w r7, (r14, 0x4) + 11d6: 3000 movi r0, 0 + 11d8: 4138 lsli r1, r1, 24 + 11da: 6d80 or r6, r0 + 11dc: 6dc4 or r7, r1 + 11de: 4b21 lsri r1, r3, 1 + 11e0: 43bf lsli r5, r3, 31 + 11e2: 4a01 lsri r0, r2, 1 + 11e4: 6cc7 mov r3, r1 + 11e6: 9824 ld.w r1, (r14, 0x10) + 11e8: 6d40 or r5, r0 + 11ea: 64c4 cmphs r1, r3 + 11ec: 6c97 mov r2, r5 + 11ee: 2400 addi r4, 1 + 11f0: 0fe2 bf 0x11b4 // 11b4 <__muldf3+0xf8> + 11f2: 9822 ld.w r1, (r14, 0x8) + 11f4: b838 st.w r1, (r14, 0x60) + 11f6: 30ff movi r0, 255 + 11f8: 3100 movi r1, 0 + 11fa: 6808 and r0, r2 + 11fc: 684c and r1, r3 + 11fe: 3480 movi r4, 128 + 1200: 6502 cmpne r0, r4 + 1202: 0c37 bf 0x1270 // 1270 <__muldf3+0x1b4> + 1204: b859 st.w r2, (r14, 0x64) + 1206: b87a st.w r3, (r14, 0x68) + 1208: 3303 movi r3, 3 + 120a: b876 st.w r3, (r14, 0x58) + 120c: 1816 addi r0, r14, 88 + 120e: e0000251 bsr 0x16b0 // 16b0 <__pack_d> + 1212: 141b addi r14, r14, 108 + 1214: 1494 pop r4-r7, r15 + 1216: 3b42 cmpnei r3, 2 + 1218: 0c42 bf 0x129c // 129c <__muldf3+0x1e0> + 121a: 9872 ld.w r3, (r14, 0x48) + 121c: 984d ld.w r2, (r14, 0x34) + 121e: 64ca cmpne r2, r3 + 1220: 3300 movi r3, 0 + 1222: 60cd addc r3, r3 + 1224: 1811 addi r0, r14, 68 + 1226: b872 st.w r3, (r14, 0x48) + 1228: e0000244 bsr 0x16b0 // 16b0 <__pack_d> + 122c: 141b addi r14, r14, 108 + 122e: 1494 pop r4-r7, r15 + 1230: 3a42 cmpnei r2, 2 + 1232: 0c35 bf 0x129c // 129c <__muldf3+0x1e0> + 1234: 984d ld.w r2, (r14, 0x34) + 1236: 9872 ld.w r3, (r14, 0x48) + 1238: 64ca cmpne r2, r3 + 123a: 3300 movi r3, 0 + 123c: 60cd addc r3, r3 + 123e: 180c addi r0, r14, 48 + 1240: b86d st.w r3, (r14, 0x34) + 1242: e0000237 bsr 0x16b0 // 16b0 <__pack_d> + 1246: 141b addi r14, r14, 108 + 1248: 1494 pop r4-r7, r15 + 124a: 6498 cmphs r6, r2 + 124c: 0b94 bt 0x1174 // 1174 <__muldf3+0xb8> + 124e: 9882 ld.w r4, (r14, 0x8) + 1250: 98a3 ld.w r5, (r14, 0xc) + 1252: 3201 movi r2, 1 + 1254: 3300 movi r3, 0 + 1256: 6511 cmplt r4, r4 + 1258: 6109 addc r4, r2 + 125a: 614d addc r5, r3 + 125c: b882 st.w r4, (r14, 0x8) + 125e: b8a3 st.w r5, (r14, 0xc) + 1260: 078a br 0x1174 // 1174 <__muldf3+0xb8> + 1262: 6580 cmphs r0, r6 + 1264: 0b73 bt 0x114a // 114a <__muldf3+0x8e> + 1266: 3300 movi r3, 0 + 1268: 3401 movi r4, 1 + 126a: b862 st.w r3, (r14, 0x8) + 126c: b883 st.w r4, (r14, 0xc) + 126e: 0772 br 0x1152 // 1152 <__muldf3+0x96> + 1270: 3940 cmpnei r1, 0 + 1272: 0bc9 bt 0x1204 // 1204 <__muldf3+0x148> + 1274: 3180 movi r1, 128 + 1276: 4121 lsli r1, r1, 1 + 1278: 6848 and r1, r2 + 127a: 3940 cmpnei r1, 0 + 127c: 0bc4 bt 0x1204 // 1204 <__muldf3+0x148> + 127e: 6c5b mov r1, r6 + 1280: 6c5c or r1, r7 + 1282: 3940 cmpnei r1, 0 + 1284: 0fc0 bf 0x1204 // 1204 <__muldf3+0x148> + 1286: 3080 movi r0, 128 + 1288: 3100 movi r1, 0 + 128a: 6401 cmplt r0, r0 + 128c: 6009 addc r0, r2 + 128e: 604d addc r1, r3 + 1290: 34ff movi r4, 255 + 1292: 6d43 mov r5, r0 + 1294: 6951 andn r5, r4 + 1296: 6c97 mov r2, r5 + 1298: 6cc7 mov r3, r1 + 129a: 07b5 br 0x1204 // 1204 <__muldf3+0x148> + 129c: 1013 lrw r0, 0x89b8 // 12e8 <__muldf3+0x22c> + 129e: 07b8 br 0x120e // 120e <__muldf3+0x152> + 12a0: 1033 lrw r1, 0xfffffff // 12ec <__muldf3+0x230> + 12a2: 64c4 cmphs r1, r3 + 12a4: 0fa9 bf 0x11f6 // 11f6 <__muldf3+0x13a> + 12a6: 2402 addi r4, 3 + 12a8: b822 st.w r1, (r14, 0x8) + 12aa: 4a1f lsri r0, r2, 31 + 12ac: 4321 lsli r1, r3, 1 + 12ae: 42a1 lsli r5, r2, 1 + 12b0: 6c04 or r0, r1 + 12b2: 3fdf btsti r7, 31 + 12b4: b880 st.w r4, (r14, 0x0) + 12b6: 6c97 mov r2, r5 + 12b8: 6cc3 mov r3, r0 + 12ba: 0c07 bf 0x12c8 // 12c8 <__muldf3+0x20c> + 12bc: 3001 movi r0, 1 + 12be: 3100 movi r1, 0 + 12c0: 6c08 or r0, r2 + 12c2: 6c4c or r1, r3 + 12c4: 6c83 mov r2, r0 + 12c6: 6cc7 mov r3, r1 + 12c8: 4721 lsli r1, r7, 1 + 12ca: 4e1f lsri r0, r6, 31 + 12cc: 6c04 or r0, r1 + 12ce: 9822 ld.w r1, (r14, 0x8) + 12d0: 46a1 lsli r5, r6, 1 + 12d2: 64c4 cmphs r1, r3 + 12d4: 6d97 mov r6, r5 + 12d6: 6dc3 mov r7, r0 + 12d8: 2c00 subi r4, 1 + 12da: 0be8 bt 0x12aa // 12aa <__muldf3+0x1ee> + 12dc: 9820 ld.w r1, (r14, 0x0) + 12de: b838 st.w r1, (r14, 0x60) + 12e0: 078b br 0x11f6 // 11f6 <__muldf3+0x13a> + 12e2: 0000 bkpt + 12e4: 1fffffff .long 0x1fffffff + 12e8: 000089b8 .long 0x000089b8 + 12ec: 0fffffff .long 0x0fffffff + +000012f0 <__divdf3>: + 12f0: 14d4 push r4-r7, r15 + 12f2: 1432 subi r14, r14, 72 + 12f4: b804 st.w r0, (r14, 0x10) + 12f6: b825 st.w r1, (r14, 0x14) + 12f8: 1804 addi r0, r14, 16 + 12fa: 1908 addi r1, r14, 32 + 12fc: b867 st.w r3, (r14, 0x1c) + 12fe: b846 st.w r2, (r14, 0x18) + 1300: e00002a6 bsr 0x184c // 184c <__unpack_d> + 1304: 190d addi r1, r14, 52 + 1306: 1806 addi r0, r14, 24 + 1308: e00002a2 bsr 0x184c // 184c <__unpack_d> + 130c: 9868 ld.w r3, (r14, 0x20) + 130e: 3b01 cmphsi r3, 2 + 1310: 0c66 bf 0x13dc // 13dc <__divdf3+0xec> + 1312: 982d ld.w r1, (r14, 0x34) + 1314: 3901 cmphsi r1, 2 + 1316: 0c92 bf 0x143a // 143a <__divdf3+0x14a> + 1318: 9849 ld.w r2, (r14, 0x24) + 131a: 980e ld.w r0, (r14, 0x38) + 131c: 6c81 xor r2, r0 + 131e: 3b44 cmpnei r3, 4 + 1320: b849 st.w r2, (r14, 0x24) + 1322: 0c62 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1324: 3b42 cmpnei r3, 2 + 1326: 0c60 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1328: 3944 cmpnei r1, 4 + 132a: 0c62 bf 0x13ee // 13ee <__divdf3+0xfe> + 132c: 3942 cmpnei r1, 2 + 132e: 0c82 bf 0x1432 // 1432 <__divdf3+0x142> + 1330: 982a ld.w r1, (r14, 0x28) + 1332: 986f ld.w r3, (r14, 0x3c) + 1334: 604e subu r1, r3 + 1336: 9890 ld.w r4, (r14, 0x40) + 1338: 98b1 ld.w r5, (r14, 0x44) + 133a: 984b ld.w r2, (r14, 0x2c) + 133c: 986c ld.w r3, (r14, 0x30) + 133e: 654c cmphs r3, r5 + 1340: b82a st.w r1, (r14, 0x28) + 1342: 6d93 mov r6, r4 + 1344: 6dd7 mov r7, r5 + 1346: 0c05 bf 0x1350 // 1350 <__divdf3+0x60> + 1348: 64d6 cmpne r5, r3 + 134a: 080b bt 0x1360 // 1360 <__divdf3+0x70> + 134c: 6508 cmphs r2, r4 + 134e: 0809 bt 0x1360 // 1360 <__divdf3+0x70> + 1350: 4a9f lsri r4, r2, 31 + 1352: 4301 lsli r0, r3, 1 + 1354: 42a1 lsli r5, r2, 1 + 1356: 6d00 or r4, r0 + 1358: 2900 subi r1, 1 + 135a: 6c97 mov r2, r5 + 135c: 6cd3 mov r3, r4 + 135e: b82a st.w r1, (r14, 0x28) + 1360: 3000 movi r0, 0 + 1362: 3100 movi r1, 0 + 1364: b802 st.w r0, (r14, 0x8) + 1366: b823 st.w r1, (r14, 0xc) + 1368: 3180 movi r1, 128 + 136a: 343d movi r4, 61 + 136c: 3000 movi r0, 0 + 136e: 4135 lsli r1, r1, 21 + 1370: b8c0 st.w r6, (r14, 0x0) + 1372: b8e1 st.w r7, (r14, 0x4) + 1374: 98a0 ld.w r5, (r14, 0x0) + 1376: 98c1 ld.w r6, (r14, 0x4) + 1378: 658c cmphs r3, r6 + 137a: 0c10 bf 0x139a // 139a <__divdf3+0xaa> + 137c: 64da cmpne r6, r3 + 137e: 0803 bt 0x1384 // 1384 <__divdf3+0x94> + 1380: 6548 cmphs r2, r5 + 1382: 0c0c bf 0x139a // 139a <__divdf3+0xaa> + 1384: 98a2 ld.w r5, (r14, 0x8) + 1386: 98c3 ld.w r6, (r14, 0xc) + 1388: 6d40 or r5, r0 + 138a: 6d84 or r6, r1 + 138c: b8a2 st.w r5, (r14, 0x8) + 138e: b8c3 st.w r6, (r14, 0xc) + 1390: 98a0 ld.w r5, (r14, 0x0) + 1392: 98c1 ld.w r6, (r14, 0x4) + 1394: 6488 cmphs r2, r2 + 1396: 6097 subc r2, r5 + 1398: 60db subc r3, r6 + 139a: 41bf lsli r5, r1, 31 + 139c: 48e1 lsri r7, r0, 1 + 139e: 6d97 mov r6, r5 + 13a0: 49a1 lsri r5, r1, 1 + 13a2: 6d9c or r6, r7 + 13a4: 6c57 mov r1, r5 + 13a6: 4abf lsri r5, r2, 31 + 13a8: 6c1b mov r0, r6 + 13aa: 2c00 subi r4, 1 + 13ac: 6d97 mov r6, r5 + 13ae: 43a1 lsli r5, r3, 1 + 13b0: 6d94 or r6, r5 + 13b2: 4261 lsli r3, r2, 1 + 13b4: 3c40 cmpnei r4, 0 + 13b6: 6dcf mov r7, r3 + 13b8: 6c8f mov r2, r3 + 13ba: 6cdb mov r3, r6 + 13bc: 0bdc bt 0x1374 // 1374 <__divdf3+0x84> + 13be: 30ff movi r0, 255 + 13c0: 3100 movi r1, 0 + 13c2: 9882 ld.w r4, (r14, 0x8) + 13c4: 98a3 ld.w r5, (r14, 0xc) + 13c6: 6900 and r4, r0 + 13c8: 6944 and r5, r1 + 13ca: 6c13 mov r0, r4 + 13cc: 6c57 mov r1, r5 + 13ce: 3480 movi r4, 128 + 13d0: 6502 cmpne r0, r4 + 13d2: 0c15 bf 0x13fc // 13fc <__divdf3+0x10c> + 13d4: 9862 ld.w r3, (r14, 0x8) + 13d6: 9883 ld.w r4, (r14, 0xc) + 13d8: b86b st.w r3, (r14, 0x2c) + 13da: b88c st.w r4, (r14, 0x30) + 13dc: 1808 addi r0, r14, 32 + 13de: e0000169 bsr 0x16b0 // 16b0 <__pack_d> + 13e2: 1412 addi r14, r14, 72 + 13e4: 1494 pop r4-r7, r15 + 13e6: 644e cmpne r3, r1 + 13e8: 0bfa bt 0x13dc // 13dc <__divdf3+0xec> + 13ea: 1016 lrw r0, 0x89b8 // 1440 <__divdf3+0x150> + 13ec: 07f9 br 0x13de // 13de <__divdf3+0xee> + 13ee: 3300 movi r3, 0 + 13f0: 3400 movi r4, 0 + 13f2: b86b st.w r3, (r14, 0x2c) + 13f4: b88c st.w r4, (r14, 0x30) + 13f6: b86a st.w r3, (r14, 0x28) + 13f8: 1808 addi r0, r14, 32 + 13fa: 07f2 br 0x13de // 13de <__divdf3+0xee> + 13fc: 3940 cmpnei r1, 0 + 13fe: 0beb bt 0x13d4 // 13d4 <__divdf3+0xe4> + 1400: 3180 movi r1, 128 + 1402: 4121 lsli r1, r1, 1 + 1404: 9882 ld.w r4, (r14, 0x8) + 1406: 98a3 ld.w r5, (r14, 0xc) + 1408: 6850 and r1, r4 + 140a: 3940 cmpnei r1, 0 + 140c: 0be4 bt 0x13d4 // 13d4 <__divdf3+0xe4> + 140e: 6c98 or r2, r6 + 1410: 3a40 cmpnei r2, 0 + 1412: 0fe1 bf 0x13d4 // 13d4 <__divdf3+0xe4> + 1414: 3280 movi r2, 128 + 1416: 3300 movi r3, 0 + 1418: 6c13 mov r0, r4 + 141a: 6c57 mov r1, r5 + 141c: 6401 cmplt r0, r0 + 141e: 6009 addc r0, r2 + 1420: 604d addc r1, r3 + 1422: 6c83 mov r2, r0 + 1424: 6cc7 mov r3, r1 + 1426: 6c0b mov r0, r2 + 1428: 31ff movi r1, 255 + 142a: 6805 andn r0, r1 + 142c: b802 st.w r0, (r14, 0x8) + 142e: b863 st.w r3, (r14, 0xc) + 1430: 07d2 br 0x13d4 // 13d4 <__divdf3+0xe4> + 1432: 3304 movi r3, 4 + 1434: b868 st.w r3, (r14, 0x20) + 1436: 1808 addi r0, r14, 32 + 1438: 07d3 br 0x13de // 13de <__divdf3+0xee> + 143a: 180d addi r0, r14, 52 + 143c: 07d1 br 0x13de // 13de <__divdf3+0xee> + 143e: 0000 bkpt + 1440: 000089b8 .long 0x000089b8 + +00001444 <__gtdf2>: + 1444: 14d0 push r15 + 1446: 142e subi r14, r14, 56 + 1448: b800 st.w r0, (r14, 0x0) + 144a: b821 st.w r1, (r14, 0x4) + 144c: 6c3b mov r0, r14 + 144e: 1904 addi r1, r14, 16 + 1450: b863 st.w r3, (r14, 0xc) + 1452: b842 st.w r2, (r14, 0x8) + 1454: e00001fc bsr 0x184c // 184c <__unpack_d> + 1458: 1909 addi r1, r14, 36 + 145a: 1802 addi r0, r14, 8 + 145c: e00001f8 bsr 0x184c // 184c <__unpack_d> + 1460: 9864 ld.w r3, (r14, 0x10) + 1462: 3b01 cmphsi r3, 2 + 1464: 0c0a bf 0x1478 // 1478 <__gtdf2+0x34> + 1466: 9869 ld.w r3, (r14, 0x24) + 1468: 3b01 cmphsi r3, 2 + 146a: 0c07 bf 0x1478 // 1478 <__gtdf2+0x34> + 146c: 1909 addi r1, r14, 36 + 146e: 1804 addi r0, r14, 16 + 1470: e0000250 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 1474: 140e addi r14, r14, 56 + 1476: 1490 pop r15 + 1478: 3000 movi r0, 0 + 147a: 2800 subi r0, 1 + 147c: 140e addi r14, r14, 56 + 147e: 1490 pop r15 + +00001480 <__gedf2>: + 1480: 14d0 push r15 + 1482: 142e subi r14, r14, 56 + 1484: b800 st.w r0, (r14, 0x0) + 1486: b821 st.w r1, (r14, 0x4) + 1488: 6c3b mov r0, r14 + 148a: 1904 addi r1, r14, 16 + 148c: b863 st.w r3, (r14, 0xc) + 148e: b842 st.w r2, (r14, 0x8) + 1490: e00001de bsr 0x184c // 184c <__unpack_d> + 1494: 1909 addi r1, r14, 36 + 1496: 1802 addi r0, r14, 8 + 1498: e00001da bsr 0x184c // 184c <__unpack_d> + 149c: 9864 ld.w r3, (r14, 0x10) + 149e: 3b01 cmphsi r3, 2 + 14a0: 0c0a bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a2: 9869 ld.w r3, (r14, 0x24) + 14a4: 3b01 cmphsi r3, 2 + 14a6: 0c07 bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a8: 1909 addi r1, r14, 36 + 14aa: 1804 addi r0, r14, 16 + 14ac: e0000232 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14b0: 140e addi r14, r14, 56 + 14b2: 1490 pop r15 + 14b4: 3000 movi r0, 0 + 14b6: 2800 subi r0, 1 + 14b8: 140e addi r14, r14, 56 + 14ba: 1490 pop r15 + +000014bc <__ledf2>: + 14bc: 14d0 push r15 + 14be: 142e subi r14, r14, 56 + 14c0: b800 st.w r0, (r14, 0x0) + 14c2: b821 st.w r1, (r14, 0x4) + 14c4: 6c3b mov r0, r14 + 14c6: 1904 addi r1, r14, 16 + 14c8: b863 st.w r3, (r14, 0xc) + 14ca: b842 st.w r2, (r14, 0x8) + 14cc: e00001c0 bsr 0x184c // 184c <__unpack_d> + 14d0: 1909 addi r1, r14, 36 + 14d2: 1802 addi r0, r14, 8 + 14d4: e00001bc bsr 0x184c // 184c <__unpack_d> + 14d8: 9864 ld.w r3, (r14, 0x10) + 14da: 3b01 cmphsi r3, 2 + 14dc: 0c0a bf 0x14f0 // 14f0 <__ledf2+0x34> + 14de: 9869 ld.w r3, (r14, 0x24) + 14e0: 3b01 cmphsi r3, 2 + 14e2: 0c07 bf 0x14f0 // 14f0 <__ledf2+0x34> + 14e4: 1909 addi r1, r14, 36 + 14e6: 1804 addi r0, r14, 16 + 14e8: e0000214 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14ec: 140e addi r14, r14, 56 + 14ee: 1490 pop r15 + 14f0: 3001 movi r0, 1 + 14f2: 140e addi r14, r14, 56 + 14f4: 1490 pop r15 + ... + +000014f8 <__floatsidf>: + 14f8: 14d1 push r4, r15 + 14fa: 1425 subi r14, r14, 20 + 14fc: 3303 movi r3, 3 + 14fe: b860 st.w r3, (r14, 0x0) + 1500: 3840 cmpnei r0, 0 + 1502: 487f lsri r3, r0, 31 + 1504: b861 st.w r3, (r14, 0x4) + 1506: 0808 bt 0x1516 // 1516 <__floatsidf+0x1e> + 1508: 3302 movi r3, 2 + 150a: b860 st.w r3, (r14, 0x0) + 150c: 6c3b mov r0, r14 + 150e: e00000d1 bsr 0x16b0 // 16b0 <__pack_d> + 1512: 1405 addi r14, r14, 20 + 1514: 1491 pop r4, r15 + 1516: 38df btsti r0, 31 + 1518: 0812 bt 0x153c // 153c <__floatsidf+0x44> + 151a: 6d03 mov r4, r0 + 151c: 6c13 mov r0, r4 + 151e: e00000a9 bsr 0x1670 // 1670 <__clzsi2> + 1522: 321d movi r2, 29 + 1524: 6080 addu r2, r0 + 1526: 2802 subi r0, 3 + 1528: 38df btsti r0, 31 + 152a: 0810 bt 0x154a // 154a <__floatsidf+0x52> + 152c: 7100 lsl r4, r0 + 152e: 3300 movi r3, 0 + 1530: b884 st.w r4, (r14, 0x10) + 1532: b863 st.w r3, (r14, 0xc) + 1534: 333c movi r3, 60 + 1536: 60ca subu r3, r2 + 1538: b862 st.w r3, (r14, 0x8) + 153a: 07e9 br 0x150c // 150c <__floatsidf+0x14> + 153c: 3380 movi r3, 128 + 153e: 4378 lsli r3, r3, 24 + 1540: 64c2 cmpne r0, r3 + 1542: 0c0d bf 0x155c // 155c <__floatsidf+0x64> + 1544: 3400 movi r4, 0 + 1546: 6102 subu r4, r0 + 1548: 07ea br 0x151c // 151c <__floatsidf+0x24> + 154a: 311f movi r1, 31 + 154c: 4c61 lsri r3, r4, 1 + 154e: 604a subu r1, r2 + 1550: 6c13 mov r0, r4 + 1552: 70c5 lsr r3, r1 + 1554: 7008 lsl r0, r2 + 1556: b864 st.w r3, (r14, 0x10) + 1558: b803 st.w r0, (r14, 0xc) + 155a: 07ed br 0x1534 // 1534 <__floatsidf+0x3c> + 155c: 3000 movi r0, 0 + 155e: 1022 lrw r1, 0xc1e00000 // 1564 <__floatsidf+0x6c> + 1560: 07d9 br 0x1512 // 1512 <__floatsidf+0x1a> + 1562: 0000 bkpt + 1564: c1e00000 .long 0xc1e00000 + +00001568 <__fixdfsi>: + 1568: 14d0 push r15 + 156a: 1427 subi r14, r14, 28 + 156c: b800 st.w r0, (r14, 0x0) + 156e: b821 st.w r1, (r14, 0x4) + 1570: 6c3b mov r0, r14 + 1572: 1902 addi r1, r14, 8 + 1574: e000016c bsr 0x184c // 184c <__unpack_d> + 1578: 9862 ld.w r3, (r14, 0x8) + 157a: 3b02 cmphsi r3, 3 + 157c: 0c20 bf 0x15bc // 15bc <__fixdfsi+0x54> + 157e: 3b44 cmpnei r3, 4 + 1580: 0c16 bf 0x15ac // 15ac <__fixdfsi+0x44> + 1582: 9864 ld.w r3, (r14, 0x10) + 1584: 3bdf btsti r3, 31 + 1586: 081b bt 0x15bc // 15bc <__fixdfsi+0x54> + 1588: 3b3e cmplti r3, 31 + 158a: 0c11 bf 0x15ac // 15ac <__fixdfsi+0x44> + 158c: 323c movi r2, 60 + 158e: 5a6d subu r3, r2, r3 + 1590: 3200 movi r2, 0 + 1592: 2a1f subi r2, 32 + 1594: 608c addu r2, r3 + 1596: 3adf btsti r2, 31 + 1598: 0815 bt 0x15c2 // 15c2 <__fixdfsi+0x5a> + 159a: 9806 ld.w r0, (r14, 0x18) + 159c: 7009 lsr r0, r2 + 159e: 9863 ld.w r3, (r14, 0xc) + 15a0: 3b40 cmpnei r3, 0 + 15a2: 0c0b bf 0x15b8 // 15b8 <__fixdfsi+0x50> + 15a4: 3300 movi r3, 0 + 15a6: 5b01 subu r0, r3, r0 + 15a8: 1407 addi r14, r14, 28 + 15aa: 1490 pop r15 + 15ac: 9863 ld.w r3, (r14, 0xc) + 15ae: 3b40 cmpnei r3, 0 + 15b0: 3000 movi r0, 0 + 15b2: 6001 addc r0, r0 + 15b4: 1068 lrw r3, 0x7fffffff // 15d4 <__fixdfsi+0x6c> + 15b6: 600c addu r0, r3 + 15b8: 1407 addi r14, r14, 28 + 15ba: 1490 pop r15 + 15bc: 3000 movi r0, 0 + 15be: 1407 addi r14, r14, 28 + 15c0: 1490 pop r15 + 15c2: 9846 ld.w r2, (r14, 0x18) + 15c4: 311f movi r1, 31 + 15c6: 4241 lsli r2, r2, 1 + 15c8: 604e subu r1, r3 + 15ca: 9805 ld.w r0, (r14, 0x14) + 15cc: 7084 lsl r2, r1 + 15ce: 700d lsr r0, r3 + 15d0: 6c08 or r0, r2 + 15d2: 07e6 br 0x159e // 159e <__fixdfsi+0x36> + 15d4: 7fffffff .long 0x7fffffff + +000015d8 <__floatunsidf>: + 15d8: 14d2 push r4-r5, r15 + 15da: 1425 subi r14, r14, 20 + 15dc: 3840 cmpnei r0, 0 + 15de: 3500 movi r5, 0 + 15e0: 6d03 mov r4, r0 + 15e2: b8a1 st.w r5, (r14, 0x4) + 15e4: 0c15 bf 0x160e // 160e <__floatunsidf+0x36> + 15e6: 3303 movi r3, 3 + 15e8: b860 st.w r3, (r14, 0x0) + 15ea: e0000043 bsr 0x1670 // 1670 <__clzsi2> + 15ee: 321d movi r2, 29 + 15f0: 6080 addu r2, r0 + 15f2: 2802 subi r0, 3 + 15f4: 38df btsti r0, 31 + 15f6: 0813 bt 0x161c // 161c <__floatunsidf+0x44> + 15f8: 7100 lsl r4, r0 + 15fa: b884 st.w r4, (r14, 0x10) + 15fc: b8a3 st.w r5, (r14, 0xc) + 15fe: 333c movi r3, 60 + 1600: 60ca subu r3, r2 + 1602: 6c3b mov r0, r14 + 1604: b862 st.w r3, (r14, 0x8) + 1606: e0000055 bsr 0x16b0 // 16b0 <__pack_d> + 160a: 1405 addi r14, r14, 20 + 160c: 1492 pop r4-r5, r15 + 160e: 3302 movi r3, 2 + 1610: 6c3b mov r0, r14 + 1612: b860 st.w r3, (r14, 0x0) + 1614: e000004e bsr 0x16b0 // 16b0 <__pack_d> + 1618: 1405 addi r14, r14, 20 + 161a: 1492 pop r4-r5, r15 + 161c: 311f movi r1, 31 + 161e: 4c61 lsri r3, r4, 1 + 1620: 604a subu r1, r2 + 1622: 70c5 lsr r3, r1 + 1624: 7108 lsl r4, r2 + 1626: b864 st.w r3, (r14, 0x10) + 1628: b883 st.w r4, (r14, 0xc) + 162a: 07ea br 0x15fe // 15fe <__floatunsidf+0x26> + +0000162c <__muldi3>: + 162c: 14c4 push r4-r7 + 162e: 1421 subi r14, r14, 4 + 1630: 7501 zexth r4, r0 + 1632: 48b0 lsri r5, r0, 16 + 1634: 75c9 zexth r7, r2 + 1636: 6d83 mov r6, r0 + 1638: b820 st.w r1, (r14, 0x0) + 163a: 6c13 mov r0, r4 + 163c: 4a30 lsri r1, r2, 16 + 163e: 7c1c mult r0, r7 + 1640: 7d04 mult r4, r1 + 1642: 7dd4 mult r7, r5 + 1644: 611c addu r4, r7 + 1646: 7d44 mult r5, r1 + 1648: 4830 lsri r1, r0, 16 + 164a: 6104 addu r4, r1 + 164c: 65d0 cmphs r4, r7 + 164e: 0804 bt 0x1656 // 1656 <__muldi3+0x2a> + 1650: 3180 movi r1, 128 + 1652: 4129 lsli r1, r1, 9 + 1654: 6144 addu r5, r1 + 1656: 4c30 lsri r1, r4, 16 + 1658: 7cd8 mult r3, r6 + 165a: 6144 addu r5, r1 + 165c: 6c4f mov r1, r3 + 165e: 9860 ld.w r3, (r14, 0x0) + 1660: 7cc8 mult r3, r2 + 1662: 4490 lsli r4, r4, 16 + 1664: 604c addu r1, r3 + 1666: 7401 zexth r0, r0 + 1668: 6010 addu r0, r4 + 166a: 6054 addu r1, r5 + 166c: 1401 addi r14, r14, 4 + 166e: 1484 pop r4-r7 + +00001670 <__clzsi2>: + 1670: 106d lrw r3, 0xffff // 16a4 <__clzsi2+0x34> + 1672: 640c cmphs r3, r0 + 1674: 0c07 bf 0x1682 // 1682 <__clzsi2+0x12> + 1676: 33ff movi r3, 255 + 1678: 640c cmphs r3, r0 + 167a: 0c0f bf 0x1698 // 1698 <__clzsi2+0x28> + 167c: 3320 movi r3, 32 + 167e: 3200 movi r2, 0 + 1680: 0406 br 0x168c // 168c <__clzsi2+0x1c> + 1682: 106a lrw r3, 0xffffff // 16a8 <__clzsi2+0x38> + 1684: 640c cmphs r3, r0 + 1686: 080c bt 0x169e // 169e <__clzsi2+0x2e> + 1688: 3308 movi r3, 8 + 168a: 3218 movi r2, 24 + 168c: 7009 lsr r0, r2 + 168e: 1048 lrw r2, 0x89cc // 16ac <__clzsi2+0x3c> + 1690: 6008 addu r0, r2 + 1692: 8040 ld.b r2, (r0, 0x0) + 1694: 5b09 subu r0, r3, r2 + 1696: 783c jmp r15 + 1698: 3318 movi r3, 24 + 169a: 3208 movi r2, 8 + 169c: 07f8 br 0x168c // 168c <__clzsi2+0x1c> + 169e: 3310 movi r3, 16 + 16a0: 3210 movi r2, 16 + 16a2: 07f5 br 0x168c // 168c <__clzsi2+0x1c> + 16a4: 0000ffff .long 0x0000ffff + 16a8: 00ffffff .long 0x00ffffff + 16ac: 000089cc .long 0x000089cc + +000016b0 <__pack_d>: + 16b0: 14c4 push r4-r7 + 16b2: 1422 subi r14, r14, 8 + 16b4: 9060 ld.w r3, (r0, 0x0) + 16b6: 3b01 cmphsi r3, 2 + 16b8: 90c3 ld.w r6, (r0, 0xc) + 16ba: 90e4 ld.w r7, (r0, 0x10) + 16bc: 9021 ld.w r1, (r0, 0x4) + 16be: 0c46 bf 0x174a // 174a <__pack_d+0x9a> + 16c0: 3b44 cmpnei r3, 4 + 16c2: 0c40 bf 0x1742 // 1742 <__pack_d+0x92> + 16c4: 3b42 cmpnei r3, 2 + 16c6: 0c27 bf 0x1714 // 1714 <__pack_d+0x64> + 16c8: 6cdb mov r3, r6 + 16ca: 6cdc or r3, r7 + 16cc: 3b40 cmpnei r3, 0 + 16ce: 0c23 bf 0x1714 // 1714 <__pack_d+0x64> + 16d0: 9062 ld.w r3, (r0, 0x8) + 16d2: 125a lrw r2, 0xfffffc02 // 1838 <__pack_d+0x188> + 16d4: 648d cmplt r3, r2 + 16d6: 0855 bt 0x1780 // 1780 <__pack_d+0xd0> + 16d8: 1259 lrw r2, 0x3ff // 183c <__pack_d+0x18c> + 16da: 64c9 cmplt r2, r3 + 16dc: 0833 bt 0x1742 // 1742 <__pack_d+0x92> + 16de: 34ff movi r4, 255 + 16e0: 3500 movi r5, 0 + 16e2: 6918 and r4, r6 + 16e4: 695c and r5, r7 + 16e6: 3280 movi r2, 128 + 16e8: 6492 cmpne r4, r2 + 16ea: 0c3f bf 0x1768 // 1768 <__pack_d+0xb8> + 16ec: 347f movi r4, 127 + 16ee: 3500 movi r5, 0 + 16f0: 6599 cmplt r6, r6 + 16f2: 6191 addc r6, r4 + 16f4: 61d5 addc r7, r5 + 16f6: 1253 lrw r2, 0x1fffffff // 1840 <__pack_d+0x190> + 16f8: 65c8 cmphs r2, r7 + 16fa: 0c1a bf 0x172e // 172e <__pack_d+0x7e> + 16fc: 1290 lrw r4, 0x3ff // 183c <__pack_d+0x18c> + 16fe: 610c addu r4, r3 + 1700: 4718 lsli r0, r7, 24 + 1702: 4f68 lsri r3, r7, 8 + 1704: 4e48 lsri r2, r6, 8 + 1706: 6c80 or r2, r0 + 1708: 430c lsli r0, r3, 12 + 170a: 486c lsri r3, r0, 12 + 170c: 120e lrw r0, 0x7ff // 1844 <__pack_d+0x194> + 170e: 6d4b mov r5, r2 + 1710: 6900 and r4, r0 + 1712: 0404 br 0x171a // 171a <__pack_d+0x6a> + 1714: 3400 movi r4, 0 + 1716: 3200 movi r2, 0 + 1718: 3300 movi r3, 0 + 171a: 430c lsli r0, r3, 12 + 171c: 480c lsri r0, r0, 12 + 171e: 4474 lsli r3, r4, 20 + 1720: 419f lsli r4, r1, 31 + 1722: 6c43 mov r1, r0 + 1724: 6c4c or r1, r3 + 1726: 6c50 or r1, r4 + 1728: 6c0b mov r0, r2 + 172a: 1402 addi r14, r14, 8 + 172c: 1484 pop r4-r7 + 172e: 479f lsli r4, r7, 31 + 1730: 4e01 lsri r0, r6, 1 + 1732: 6d00 or r4, r0 + 1734: 6d93 mov r6, r4 + 1736: 3480 movi r4, 128 + 1738: 4f41 lsri r2, r7, 1 + 173a: 4483 lsli r4, r4, 3 + 173c: 6dcb mov r7, r2 + 173e: 610c addu r4, r3 + 1740: 07e0 br 0x1700 // 1700 <__pack_d+0x50> + 1742: 1281 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1744: 3200 movi r2, 0 + 1746: 3300 movi r3, 0 + 1748: 07e9 br 0x171a // 171a <__pack_d+0x6a> + 174a: 4e08 lsri r0, r6, 8 + 174c: 4798 lsli r4, r7, 24 + 174e: 6d00 or r4, r0 + 1750: 3580 movi r5, 128 + 1752: 4705 lsli r0, r7, 5 + 1754: 6c93 mov r2, r4 + 1756: 486d lsri r3, r0, 13 + 1758: 3400 movi r4, 0 + 175a: 45ac lsli r5, r5, 12 + 175c: 6c90 or r2, r4 + 175e: 6cd4 or r3, r5 + 1760: 430c lsli r0, r3, 12 + 1762: 486c lsri r3, r0, 12 + 1764: 1198 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1766: 07da br 0x171a // 171a <__pack_d+0x6a> + 1768: 3d40 cmpnei r5, 0 + 176a: 0bc1 bt 0x16ec // 16ec <__pack_d+0x3c> + 176c: 4241 lsli r2, r2, 1 + 176e: 6898 and r2, r6 + 1770: 3a40 cmpnei r2, 0 + 1772: 0fc2 bf 0x16f6 // 16f6 <__pack_d+0x46> + 1774: 3480 movi r4, 128 + 1776: 3500 movi r5, 0 + 1778: 6599 cmplt r6, r6 + 177a: 6191 addc r6, r4 + 177c: 61d5 addc r7, r5 + 177e: 07bc br 0x16f6 // 16f6 <__pack_d+0x46> + 1780: 5a6d subu r3, r2, r3 + 1782: 3238 movi r2, 56 + 1784: 64c9 cmplt r2, r3 + 1786: 0bc7 bt 0x1714 // 1714 <__pack_d+0x64> + 1788: 3200 movi r2, 0 + 178a: 2a1f subi r2, 32 + 178c: 608c addu r2, r3 + 178e: 3adf btsti r2, 31 + 1790: 0848 bt 0x1820 // 1820 <__pack_d+0x170> + 1792: 6c1f mov r0, r7 + 1794: 7009 lsr r0, r2 + 1796: b800 st.w r0, (r14, 0x0) + 1798: 3000 movi r0, 0 + 179a: b801 st.w r0, (r14, 0x4) + 179c: 3adf btsti r2, 31 + 179e: 083c bt 0x1816 // 1816 <__pack_d+0x166> + 17a0: 3301 movi r3, 1 + 17a2: 70c8 lsl r3, r2 + 17a4: 6d4f mov r5, r3 + 17a6: 3300 movi r3, 0 + 17a8: 6d0f mov r4, r3 + 17aa: 3200 movi r2, 0 + 17ac: 3300 movi r3, 0 + 17ae: 2a00 subi r2, 1 + 17b0: 2b00 subi r3, 1 + 17b2: 6511 cmplt r4, r4 + 17b4: 6109 addc r4, r2 + 17b6: 614d addc r5, r3 + 17b8: 6990 and r6, r4 + 17ba: 69d4 and r7, r5 + 17bc: 6d9c or r6, r7 + 17be: 3e40 cmpnei r6, 0 + 17c0: 3000 movi r0, 0 + 17c2: 6001 addc r0, r0 + 17c4: 6c83 mov r2, r0 + 17c6: 3300 movi r3, 0 + 17c8: 9880 ld.w r4, (r14, 0x0) + 17ca: 98a1 ld.w r5, (r14, 0x4) + 17cc: 6d08 or r4, r2 + 17ce: 6d4c or r5, r3 + 17d0: 32ff movi r2, 255 + 17d2: 3300 movi r3, 0 + 17d4: 6890 and r2, r4 + 17d6: 68d4 and r3, r5 + 17d8: 3080 movi r0, 128 + 17da: 640a cmpne r2, r0 + 17dc: 081b bt 0x1812 // 1812 <__pack_d+0x162> + 17de: 3b40 cmpnei r3, 0 + 17e0: 0819 bt 0x1812 // 1812 <__pack_d+0x162> + 17e2: 3380 movi r3, 128 + 17e4: 4361 lsli r3, r3, 1 + 17e6: 68d0 and r3, r4 + 17e8: 3b40 cmpnei r3, 0 + 17ea: 0c06 bf 0x17f6 // 17f6 <__pack_d+0x146> + 17ec: 3280 movi r2, 128 + 17ee: 3300 movi r3, 0 + 17f0: 6511 cmplt r4, r4 + 17f2: 6109 addc r4, r2 + 17f4: 614d addc r5, r3 + 17f6: 4518 lsli r0, r5, 24 + 17f8: 4c48 lsri r2, r4, 8 + 17fa: 4d68 lsri r3, r5, 8 + 17fc: 1093 lrw r4, 0xfffffff // 1848 <__pack_d+0x198> + 17fe: 6c80 or r2, r0 + 1800: 6550 cmphs r4, r5 + 1802: 430c lsli r0, r3, 12 + 1804: 486c lsri r3, r0, 12 + 1806: 3001 movi r0, 1 + 1808: 0c02 bf 0x180c // 180c <__pack_d+0x15c> + 180a: 3000 movi r0, 0 + 180c: 108e lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 180e: 6900 and r4, r0 + 1810: 0785 br 0x171a // 171a <__pack_d+0x6a> + 1812: 327f movi r2, 127 + 1814: 07ed br 0x17ee // 17ee <__pack_d+0x13e> + 1816: 3201 movi r2, 1 + 1818: 708c lsl r2, r3 + 181a: 3500 movi r5, 0 + 181c: 6d0b mov r4, r2 + 181e: 07c6 br 0x17aa // 17aa <__pack_d+0xfa> + 1820: 341f movi r4, 31 + 1822: 610e subu r4, r3 + 1824: 4701 lsli r0, r7, 1 + 1826: 7010 lsl r0, r4 + 1828: 6d1b mov r4, r6 + 182a: 710d lsr r4, r3 + 182c: 6d00 or r4, r0 + 182e: 6c1f mov r0, r7 + 1830: 700d lsr r0, r3 + 1832: b880 st.w r4, (r14, 0x0) + 1834: b801 st.w r0, (r14, 0x4) + 1836: 07b3 br 0x179c // 179c <__pack_d+0xec> + 1838: fffffc02 .long 0xfffffc02 + 183c: 000003ff .long 0x000003ff + 1840: 1fffffff .long 0x1fffffff + 1844: 000007ff .long 0x000007ff + 1848: 0fffffff .long 0x0fffffff + +0000184c <__unpack_d>: + 184c: 1423 subi r14, r14, 12 + 184e: b880 st.w r4, (r14, 0x0) + 1850: b8c1 st.w r6, (r14, 0x4) + 1852: b8e2 st.w r7, (r14, 0x8) + 1854: 8843 ld.h r2, (r0, 0x6) + 1856: 4251 lsli r2, r2, 17 + 1858: 9061 ld.w r3, (r0, 0x4) + 185a: 9080 ld.w r4, (r0, 0x0) + 185c: 4a55 lsri r2, r2, 21 + 185e: 8007 ld.b r0, (r0, 0x7) + 1860: 436c lsli r3, r3, 12 + 1862: 4807 lsri r0, r0, 7 + 1864: 3a40 cmpnei r2, 0 + 1866: 4b6c lsri r3, r3, 12 + 1868: b101 st.w r0, (r1, 0x4) + 186a: 0819 bt 0x189c // 189c <__unpack_d+0x50> + 186c: 6c93 mov r2, r4 + 186e: 6c8c or r2, r3 + 1870: 3a40 cmpnei r2, 0 + 1872: 0c2d bf 0x18cc // 18cc <__unpack_d+0x80> + 1874: 4c58 lsri r2, r4, 24 + 1876: 4368 lsli r3, r3, 8 + 1878: 6cc8 or r3, r2 + 187a: 3203 movi r2, 3 + 187c: 4408 lsli r0, r4, 8 + 187e: b140 st.w r2, (r1, 0x0) + 1880: 1181 lrw r4, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 1882: 11c2 lrw r6, 0xfffffff // 1908 <__unpack_d+0xbc> + 1884: 485f lsri r2, r0, 31 + 1886: 4361 lsli r3, r3, 1 + 1888: 6cc8 or r3, r2 + 188a: 64d8 cmphs r6, r3 + 188c: 6c93 mov r2, r4 + 188e: 4001 lsli r0, r0, 1 + 1890: 2c00 subi r4, 1 + 1892: 0bf9 bt 0x1884 // 1884 <__unpack_d+0x38> + 1894: b142 st.w r2, (r1, 0x8) + 1896: b103 st.w r0, (r1, 0xc) + 1898: b164 st.w r3, (r1, 0x10) + 189a: 0414 br 0x18c2 // 18c2 <__unpack_d+0x76> + 189c: 101c lrw r0, 0x7ff // 190c <__unpack_d+0xc0> + 189e: 640a cmpne r2, r0 + 18a0: 0c19 bf 0x18d2 // 18d2 <__unpack_d+0x86> + 18a2: 1019 lrw r0, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 18a4: 6080 addu r2, r0 + 18a6: b142 st.w r2, (r1, 0x8) + 18a8: 3203 movi r2, 3 + 18aa: 43e8 lsli r7, r3, 8 + 18ac: b140 st.w r2, (r1, 0x0) + 18ae: 3380 movi r3, 128 + 18b0: 4c58 lsri r2, r4, 24 + 18b2: 6dc8 or r7, r2 + 18b4: 44c8 lsli r6, r4, 8 + 18b6: 3200 movi r2, 0 + 18b8: 4375 lsli r3, r3, 21 + 18ba: 6d88 or r6, r2 + 18bc: 6dcc or r7, r3 + 18be: b1c3 st.w r6, (r1, 0xc) + 18c0: b1e4 st.w r7, (r1, 0x10) + 18c2: 98e2 ld.w r7, (r14, 0x8) + 18c4: 98c1 ld.w r6, (r14, 0x4) + 18c6: 9880 ld.w r4, (r14, 0x0) + 18c8: 1403 addi r14, r14, 12 + 18ca: 783c jmp r15 + 18cc: 3302 movi r3, 2 + 18ce: b160 st.w r3, (r1, 0x0) + 18d0: 07f9 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18d2: 6c93 mov r2, r4 + 18d4: 6c8c or r2, r3 + 18d6: 3a40 cmpnei r2, 0 + 18d8: 0c10 bf 0x18f8 // 18f8 <__unpack_d+0xac> + 18da: 3280 movi r2, 128 + 18dc: 424c lsli r2, r2, 12 + 18de: 688c and r2, r3 + 18e0: 3a40 cmpnei r2, 0 + 18e2: 0c0e bf 0x18fe // 18fe <__unpack_d+0xb2> + 18e4: 3201 movi r2, 1 + 18e6: b140 st.w r2, (r1, 0x0) + 18e8: 4c58 lsri r2, r4, 24 + 18ea: 4368 lsli r3, r3, 8 + 18ec: 6cc8 or r3, r2 + 18ee: 4408 lsli r0, r4, 8 + 18f0: 3b9b bclri r3, 27 + 18f2: b103 st.w r0, (r1, 0xc) + 18f4: b164 st.w r3, (r1, 0x10) + 18f6: 07e6 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18f8: 3304 movi r3, 4 + 18fa: b160 st.w r3, (r1, 0x0) + 18fc: 07e3 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18fe: b140 st.w r2, (r1, 0x0) + 1900: 07f4 br 0x18e8 // 18e8 <__unpack_d+0x9c> + 1902: 0000 bkpt + 1904: fffffc01 .long 0xfffffc01 + 1908: 0fffffff .long 0x0fffffff + 190c: 000007ff .long 0x000007ff + +00001910 <__fpcmp_parts_d>: + 1910: 14c1 push r4 + 1912: 9060 ld.w r3, (r0, 0x0) + 1914: 3b01 cmphsi r3, 2 + 1916: 0c12 bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1918: 9140 ld.w r2, (r1, 0x0) + 191a: 3a01 cmphsi r2, 2 + 191c: 0c0f bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 191e: 3b44 cmpnei r3, 4 + 1920: 0c17 bf 0x194e // 194e <__fpcmp_parts_d+0x3e> + 1922: 3a44 cmpnei r2, 4 + 1924: 0c0f bf 0x1942 // 1942 <__fpcmp_parts_d+0x32> + 1926: 3b42 cmpnei r3, 2 + 1928: 0c0b bf 0x193e // 193e <__fpcmp_parts_d+0x2e> + 192a: 3a42 cmpnei r2, 2 + 192c: 0c13 bf 0x1952 // 1952 <__fpcmp_parts_d+0x42> + 192e: 9061 ld.w r3, (r0, 0x4) + 1930: 9141 ld.w r2, (r1, 0x4) + 1932: 648e cmpne r3, r2 + 1934: 0c14 bf 0x195c // 195c <__fpcmp_parts_d+0x4c> + 1936: 3b40 cmpnei r3, 0 + 1938: 0808 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 193a: 3001 movi r0, 1 + 193c: 1481 pop r4 + 193e: 3a42 cmpnei r2, 2 + 1940: 0c28 bf 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 1942: 9161 ld.w r3, (r1, 0x4) + 1944: 3b40 cmpnei r3, 0 + 1946: 0bfa bt 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1948: 3000 movi r0, 0 + 194a: 2800 subi r0, 1 + 194c: 1481 pop r4 + 194e: 3a44 cmpnei r2, 4 + 1950: 0c22 bf 0x1994 // 1994 <__fpcmp_parts_d+0x84> + 1952: 9061 ld.w r3, (r0, 0x4) + 1954: 3b40 cmpnei r3, 0 + 1956: 0bf9 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1958: 3001 movi r0, 1 + 195a: 07f1 br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 195c: 9082 ld.w r4, (r0, 0x8) + 195e: 9142 ld.w r2, (r1, 0x8) + 1960: 6509 cmplt r2, r4 + 1962: 0bea bt 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1964: 6491 cmplt r4, r2 + 1966: 080d bt 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1968: 9044 ld.w r2, (r0, 0x10) + 196a: 9083 ld.w r4, (r0, 0xc) + 196c: 9103 ld.w r0, (r1, 0xc) + 196e: 9124 ld.w r1, (r1, 0x10) + 1970: 6484 cmphs r1, r2 + 1972: 0fe2 bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1974: 644a cmpne r2, r1 + 1976: 0803 bt 0x197c // 197c <__fpcmp_parts_d+0x6c> + 1978: 6500 cmphs r0, r4 + 197a: 0fde bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 197c: 6448 cmphs r2, r1 + 197e: 0805 bt 0x1988 // 1988 <__fpcmp_parts_d+0x78> + 1980: 3b40 cmpnei r3, 0 + 1982: 0fe3 bf 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1984: 3001 movi r0, 1 + 1986: 07db br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 1988: 6486 cmpne r1, r2 + 198a: 0803 bt 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 198c: 6410 cmphs r4, r0 + 198e: 0ff9 bf 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1990: 3000 movi r0, 0 + 1992: 1481 pop r4 + 1994: 9161 ld.w r3, (r1, 0x4) + 1996: 9041 ld.w r2, (r0, 0x4) + 1998: 5b09 subu r0, r3, r2 + 199a: 1481 pop r4 + +0000199c <__GI_rand>: + 199c: 1065 lrw r3, 0x41c64e6d // 19b0 <__GI_rand+0x14> + 199e: 1046 lrw r2, 0x200000a4 // 19b4 <__GI_rand+0x18> + 19a0: 9220 ld.w r1, (r2, 0x0) + 19a2: 7cc4 mult r3, r1 + 19a4: 1025 lrw r1, 0x3039 // 19b8 <__GI_rand+0x1c> + 19a6: 6c0f mov r0, r3 + 19a8: 6004 addu r0, r1 + 19aa: b200 st.w r0, (r2, 0x0) + 19ac: 4801 lsri r0, r0, 1 + 19ae: 783c jmp r15 + 19b0: 41c64e6d .long 0x41c64e6d + 19b4: 200000a4 .long 0x200000a4 + 19b8: 00003039 .long 0x00003039 + +000019bc <__GI_srand>: + 19bc: 1022 lrw r1, 0x200000a4 // 19c4 <__GI_srand+0x8> + 19be: b100 st.w r0, (r1, 0x0) + 19c0: 783c jmp r15 + 19c2: 0000 .short 0x0000 + 19c4: 200000a4 .long 0x200000a4 + +000019c8 <__memset_fast>: + 19c8: 14c3 push r4-r6 + 19ca: 7444 zextb r1, r1 + 19cc: 3a40 cmpnei r2, 0 + 19ce: 0c1f bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19d0: 6d43 mov r5, r0 + 19d2: 6d03 mov r4, r0 + 19d4: 3603 movi r6, 3 + 19d6: 6918 and r4, r6 + 19d8: 3c40 cmpnei r4, 0 + 19da: 0c1a bf 0x1a0e // 1a0e <__memset_fast+0x46> + 19dc: a520 st.b r1, (r5, 0x0) + 19de: 2a00 subi r2, 1 + 19e0: 3a40 cmpnei r2, 0 + 19e2: 0c15 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19e4: 2500 addi r5, 1 + 19e6: 6d17 mov r4, r5 + 19e8: 3603 movi r6, 3 + 19ea: 6918 and r4, r6 + 19ec: 3c40 cmpnei r4, 0 + 19ee: 0c10 bf 0x1a0e // 1a0e <__memset_fast+0x46> + 19f0: a520 st.b r1, (r5, 0x0) + 19f2: 2a00 subi r2, 1 + 19f4: 3a40 cmpnei r2, 0 + 19f6: 0c0b bf 0x1a0c // 1a0c <__memset_fast+0x44> + 19f8: 2500 addi r5, 1 + 19fa: 6d17 mov r4, r5 + 19fc: 3603 movi r6, 3 + 19fe: 6918 and r4, r6 + 1a00: 3c40 cmpnei r4, 0 + 1a02: 0c06 bf 0x1a0e // 1a0e <__memset_fast+0x46> + 1a04: a520 st.b r1, (r5, 0x0) + 1a06: 2a00 subi r2, 1 + 1a08: 2500 addi r5, 1 + 1a0a: 0402 br 0x1a0e // 1a0e <__memset_fast+0x46> + 1a0c: 1483 pop r4-r6 + 1a0e: 4168 lsli r3, r1, 8 + 1a10: 6c4c or r1, r3 + 1a12: 4170 lsli r3, r1, 16 + 1a14: 6c4c or r1, r3 + 1a16: 3a2f cmplti r2, 16 + 1a18: 0809 bt 0x1a2a // 1a2a <__memset_fast+0x62> + 1a1a: b520 st.w r1, (r5, 0x0) + 1a1c: b521 st.w r1, (r5, 0x4) + 1a1e: b522 st.w r1, (r5, 0x8) + 1a20: b523 st.w r1, (r5, 0xc) + 1a22: 2a0f subi r2, 16 + 1a24: 250f addi r5, 16 + 1a26: 3a2f cmplti r2, 16 + 1a28: 0ff9 bf 0x1a1a // 1a1a <__memset_fast+0x52> + 1a2a: 3a23 cmplti r2, 4 + 1a2c: 0806 bt 0x1a38 // 1a38 <__memset_fast+0x70> + 1a2e: 2a03 subi r2, 4 + 1a30: b520 st.w r1, (r5, 0x0) + 1a32: 2503 addi r5, 4 + 1a34: 3a23 cmplti r2, 4 + 1a36: 0ffc bf 0x1a2e // 1a2e <__memset_fast+0x66> + 1a38: 3a40 cmpnei r2, 0 + 1a3a: 0fe9 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a3c: 2a00 subi r2, 1 + 1a3e: a520 st.b r1, (r5, 0x0) + 1a40: 3a40 cmpnei r2, 0 + 1a42: 0fe5 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a44: 2a00 subi r2, 1 + 1a46: a521 st.b r1, (r5, 0x1) + 1a48: 3a40 cmpnei r2, 0 + 1a4a: 0fe1 bf 0x1a0c // 1a0c <__memset_fast+0x44> + 1a4c: a522 st.b r1, (r5, 0x2) + 1a4e: 1483 pop r4-r6 + +00001a50 <__memcpy_fast>: + 1a50: 14c3 push r4-r6 + 1a52: 6d83 mov r6, r0 + 1a54: 6d07 mov r4, r1 + 1a56: 6d18 or r4, r6 + 1a58: 3303 movi r3, 3 + 1a5a: 690c and r4, r3 + 1a5c: 3c40 cmpnei r4, 0 + 1a5e: 0c0b bf 0x1a74 // 1a74 <__memcpy_fast+0x24> + 1a60: 3a40 cmpnei r2, 0 + 1a62: 0c08 bf 0x1a72 // 1a72 <__memcpy_fast+0x22> + 1a64: 8160 ld.b r3, (r1, 0x0) + 1a66: 2100 addi r1, 1 + 1a68: 2a00 subi r2, 1 + 1a6a: a660 st.b r3, (r6, 0x0) + 1a6c: 2600 addi r6, 1 + 1a6e: 3a40 cmpnei r2, 0 + 1a70: 0bfa bt 0x1a64 // 1a64 <__memcpy_fast+0x14> + 1a72: 1483 pop r4-r6 + 1a74: 3a2f cmplti r2, 16 + 1a76: 080e bt 0x1a92 // 1a92 <__memcpy_fast+0x42> + 1a78: 91a0 ld.w r5, (r1, 0x0) + 1a7a: 9161 ld.w r3, (r1, 0x4) + 1a7c: 9182 ld.w r4, (r1, 0x8) + 1a7e: b6a0 st.w r5, (r6, 0x0) + 1a80: 91a3 ld.w r5, (r1, 0xc) + 1a82: b661 st.w r3, (r6, 0x4) + 1a84: b682 st.w r4, (r6, 0x8) + 1a86: b6a3 st.w r5, (r6, 0xc) + 1a88: 2a0f subi r2, 16 + 1a8a: 210f addi r1, 16 + 1a8c: 260f addi r6, 16 + 1a8e: 3a2f cmplti r2, 16 + 1a90: 0ff4 bf 0x1a78 // 1a78 <__memcpy_fast+0x28> + 1a92: 3a23 cmplti r2, 4 + 1a94: 0808 bt 0x1aa4 // 1aa4 <__memcpy_fast+0x54> + 1a96: 9160 ld.w r3, (r1, 0x0) + 1a98: 2a03 subi r2, 4 + 1a9a: 2103 addi r1, 4 + 1a9c: b660 st.w r3, (r6, 0x0) + 1a9e: 2603 addi r6, 4 + 1aa0: 3a23 cmplti r2, 4 + 1aa2: 0ffa bf 0x1a96 // 1a96 <__memcpy_fast+0x46> + 1aa4: 3a40 cmpnei r2, 0 + 1aa6: 0fe6 bf 0x1a72 // 1a72 <__memcpy_fast+0x22> + 1aa8: 8160 ld.b r3, (r1, 0x0) + 1aaa: 2100 addi r1, 1 + 1aac: 2a00 subi r2, 1 + 1aae: a660 st.b r3, (r6, 0x0) + 1ab0: 2600 addi r6, 1 + 1ab2: 07f9 br 0x1aa4 // 1aa4 <__memcpy_fast+0x54> + +Disassembly of section .text.__main: + +00001ab4 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1ab4: 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 ) { + 1ab6: 1009 lrw r0, 0x20000000 // 1ad8 <__main+0x24> + 1ab8: 1029 lrw r1, 0x8f0c // 1adc <__main+0x28> + 1aba: 6442 cmpne r0, r1 + 1abc: 0c05 bf 0x1ac6 // 1ac6 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1abe: 1049 lrw r2, 0x200000a8 // 1ae0 <__main+0x2c> + 1ac0: 6082 subu r2, r0 + 1ac2: e3ffffc7 bsr 0x1a50 // 1a50 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1ac6: 1048 lrw r2, 0x20000860 // 1ae4 <__main+0x30> + 1ac8: 1008 lrw r0, 0x200000a8 // 1ae8 <__main+0x34> + 1aca: 640a cmpne r2, r0 + 1acc: 0c05 bf 0x1ad6 // 1ad6 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1ace: 6082 subu r2, r0 + 1ad0: 3100 movi r1, 0 + 1ad2: e3ffff7b bsr 0x19c8 // 19c8 <__memset_fast> + } + + +} + 1ad6: 1490 pop r15 + 1ad8: 20000000 .long 0x20000000 + 1adc: 00008f0c .long 0x00008f0c + 1ae0: 200000a8 .long 0x200000a8 + 1ae4: 20000860 .long 0x20000860 + 1ae8: 200000a8 .long 0x200000a8 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001aec : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1aec: 3848 cmpnei r0, 8 + 1aee: 080a bt 0x1b02 // 1b02 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1af0: 107a lrw r3, 0x2000004c // 1b58 + 1af2: 32ff movi r2, 255 + 1af4: 9320 ld.w r1, (r3, 0x0) + 1af6: 9160 ld.w r3, (r1, 0x0) + 1af8: 424c lsli r2, r2, 12 + 1afa: 68c9 andn r3, r2 + 1afc: 3bae bseti r3, 14 + 1afe: 3bb2 bseti r3, 18 + 1b00: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1b02: 1077 lrw r3, 0x2000005c // 1b5c + 1b04: 9360 ld.w r3, (r3, 0x0) + 1b06: 9341 ld.w r2, (r3, 0x4) + 1b08: 6c80 or r2, r0 + 1b0a: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1b0c: 9343 ld.w r2, (r3, 0xc) + 1b0e: 6880 and r2, r0 + 1b10: 3a40 cmpnei r2, 0 + 1b12: 0ffd bf 0x1b0c // 1b0c + switch(ENDIS_X) + 1b14: 3842 cmpnei r0, 2 + 1b16: 0807 bt 0x1b24 // 1b24 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1b18: 3102 movi r1, 2 + 1b1a: 9344 ld.w r2, (r3, 0x10) + 1b1c: 6884 and r2, r1 + 1b1e: 3a40 cmpnei r2, 0 + 1b20: 0ffd bf 0x1b1a // 1b1a + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1b22: 783c jmp r15 + switch(ENDIS_X) + 1b24: 3802 cmphsi r0, 3 + 1b26: 0809 bt 0x1b38 // 1b38 + 1b28: 3841 cmpnei r0, 1 + 1b2a: 0bfc bt 0x1b22 // 1b22 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1b2c: 3101 movi r1, 1 + 1b2e: 9344 ld.w r2, (r3, 0x10) + 1b30: 6884 and r2, r1 + 1b32: 3a40 cmpnei r2, 0 + 1b34: 0ffd bf 0x1b2e // 1b2e + 1b36: 07f6 br 0x1b22 // 1b22 + switch(ENDIS_X) + 1b38: 3848 cmpnei r0, 8 + 1b3a: 0807 bt 0x1b48 // 1b48 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1b3c: 3108 movi r1, 8 + 1b3e: 9344 ld.w r2, (r3, 0x10) + 1b40: 6884 and r2, r1 + 1b42: 3a40 cmpnei r2, 0 + 1b44: 0ffd bf 0x1b3e // 1b3e + 1b46: 07ee br 0x1b22 // 1b22 + switch(ENDIS_X) + 1b48: 3850 cmpnei r0, 16 + 1b4a: 0bec bt 0x1b22 // 1b22 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1b4c: 3110 movi r1, 16 + 1b4e: 9344 ld.w r2, (r3, 0x10) + 1b50: 6884 and r2, r1 + 1b52: 3a40 cmpnei r2, 0 + 1b54: 0ffd bf 0x1b4e // 1b4e + 1b56: 07e6 br 0x1b22 // 1b22 + 1b58: 2000004c .long 0x2000004c + 1b5c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001b60 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1b60: 106c lrw r3, 0x2000005c // 1b90 + 1b62: 104d lrw r2, 0xffff // 1b94 + 1b64: 9360 ld.w r3, (r3, 0x0) + 1b66: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1b68: 104c lrw r2, 0xffffff // 1b98 + 1b6a: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1b6c: 104c lrw r2, 0xd22d0000 // 1b9c + 1b6e: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1b70: 104c lrw r2, 0x70ff3bff // 1ba0 + 1b72: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1b74: 320a movi r2, 10 + 1b76: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b78: 102b lrw r1, 0x70c // 1ba4 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1b7a: 237f addi r3, 128 + 1b7c: 3200 movi r2, 0 + 1b7e: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1b80: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b82: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1b84: 1029 lrw r1, 0x3fe // 1ba8 + 1b86: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1b88: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1b8a: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1b8c: b35f st.w r2, (r3, 0x7c) +} + 1b8e: 783c jmp r15 + 1b90: 2000005c .long 0x2000005c + 1b94: 0000ffff .long 0x0000ffff + 1b98: 00ffffff .long 0x00ffffff + 1b9c: d22d0000 .long 0xd22d0000 + 1ba0: 70ff3bff .long 0x70ff3bff + 1ba4: 0000070c .long 0x0000070c + 1ba8: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001bac : +{ + 1bac: 14d0 push r15 + if (NewState != DISABLE) + 1bae: 3840 cmpnei r0, 0 + 1bb0: 0c05 bf 0x1bba // 1bba + 1bb2: 6c07 mov r0, r1 + 1bb4: e3ffff9c bsr 0x1aec // 1aec +} + 1bb8: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1bba: 1068 lrw r3, 0x2000005c // 1bd8 + 1bbc: 9360 ld.w r3, (r3, 0x0) + 1bbe: 9342 ld.w r2, (r3, 0x8) + 1bc0: 6c84 or r2, r1 + 1bc2: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1bc4: 9343 ld.w r2, (r3, 0xc) + 1bc6: 6884 and r2, r1 + 1bc8: 3a40 cmpnei r2, 0 + 1bca: 0bfd bt 0x1bc4 // 1bc4 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1bcc: 237f addi r3, 128 + 1bce: 9301 ld.w r0, (r3, 0x4) + 1bd0: 6c40 or r1, r0 + 1bd2: b321 st.w r1, (r3, 0x4) +} + 1bd4: 07f2 br 0x1bb8 // 1bb8 + 1bd6: 0000 bkpt + 1bd8: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001bdc : +//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 ) +{ + 1bdc: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1bde: 3b48 cmpnei r3, 8 + 1be0: 0828 bt 0x1c30 // 1c30 + { + IFC->CEDR=0X01; //CLKEN + 1be2: 109d lrw r4, 0x20000060 // 1c54 + 1be4: 3501 movi r5, 1 + 1be6: 9480 ld.w r4, (r4, 0x0) + 1be8: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1bea: 3504 movi r5, 4 + 1bec: 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)) + 1bee: 5b83 subi r4, r3, 1 + 1bf0: 3c01 cmphsi r4, 2 + 1bf2: 0c2b bf 0x1c48 // 1c48 + { + 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)) + 1bf4: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1bf6: 3c04 cmphsi r4, 5 + 1bf8: 0c03 bf 0x1bfe // 1bfe + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1bfa: 3b4b cmpnei r3, 11 + 1bfc: 0807 bt 0x1c0a // 1c0a + { + IFC->CEDR=0X01; //CLKEN + 1bfe: 1076 lrw r3, 0x20000060 // 1c54 + 1c00: 3401 movi r4, 1 + 1c02: 9360 ld.w r3, (r3, 0x0) + 1c04: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1c06: 3400 movi r4, 0 + 1c08: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c0a: 1094 lrw r4, 0xd22d0000 // 1c58 + 1c0c: 6c10 or r0, r4 + 1c0e: 1074 lrw r3, 0x2000005c // 1c5c + 1c10: 6c40 or r1, r0 + 1c12: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c14: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c16: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c18: 4001 lsli r0, r0, 1 + 1c1a: 9324 ld.w r1, (r3, 0x10) + 1c1c: 6840 and r1, r0 + 1c1e: 3940 cmpnei r1, 0 + 1c20: 0ffd bf 0x1c1a // 1c1a + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1c22: 1030 lrw r1, 0xc33c0000 // 1c60 + 1c24: 6c48 or r1, r2 + 1c26: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1c28: 9328 ld.w r1, (r3, 0x20) + 1c2a: 644a cmpne r2, r1 + 1c2c: 0bfe bt 0x1c28 // 1c28 +} + 1c2e: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1c30: 3b40 cmpnei r3, 0 + 1c32: 0c03 bf 0x1c38 // 1c38 + 1c34: 3b49 cmpnei r3, 9 + 1c36: 0807 bt 0x1c44 // 1c44 + IFC->CEDR=0X01; //CLKEN + 1c38: 1087 lrw r4, 0x20000060 // 1c54 + 1c3a: 3501 movi r5, 1 + 1c3c: 9480 ld.w r4, (r4, 0x0) + 1c3e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1c40: 3502 movi r5, 2 + 1c42: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1c44: 3b4a cmpnei r3, 10 + 1c46: 0bd4 bt 0x1bee // 1bee + IFC->CEDR=0X01; //CLKEN + 1c48: 1083 lrw r4, 0x20000060 // 1c54 + 1c4a: 3501 movi r5, 1 + 1c4c: 9480 ld.w r4, (r4, 0x0) + 1c4e: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1c50: b4a5 st.w r5, (r4, 0x14) + 1c52: 07d1 br 0x1bf4 // 1bf4 + 1c54: 20000060 .long 0x20000060 + 1c58: d22d0000 .long 0xd22d0000 + 1c5c: 2000005c .long 0x2000005c + 1c60: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001c64 : +//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) +{ + 1c64: 14d1 push r4, r15 + 1c66: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1c68: 3110 movi r1, 16 + 1c6a: 3000 movi r0, 0 + 1c6c: e3ffffa0 bsr 0x1bac // 1bac + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1c70: 1066 lrw r3, 0x2000005c // 1c88 + 1c72: 9360 ld.w r3, (r3, 0x0) + 1c74: 9319 ld.w r0, (r3, 0x64) + 1c76: 3884 bclri r0, 4 + 1c78: 3885 bclri r0, 5 + 1c7a: 6c10 or r0, r4 + 1c7c: b319 st.w r0, (r3, 0x64) + 1c7e: 3010 movi r0, 16 + 1c80: e3ffff36 bsr 0x1aec // 1aec + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1c84: 1491 pop r4, r15 + 1c86: 0000 bkpt + 1c88: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001c8c : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1c8c: 106c lrw r3, 0x2000005c // 1cbc + if(NewState != DISABLE) + 1c8e: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c90: 9360 ld.w r3, (r3, 0x0) + 1c92: 237f addi r3, 128 + if(NewState != DISABLE) + 1c94: 0c0a bf 0x1ca8 // 1ca8 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c96: 104b lrw r2, 0x78870000 // 1cc0 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c98: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c9a: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c9c: 4125 lsli r1, r1, 5 + 1c9e: 934d ld.w r2, (r3, 0x34) + 1ca0: 6884 and r2, r1 + 1ca2: 3a40 cmpnei r2, 0 + 1ca4: 0ffd bf 0x1c9e // 1c9e + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1ca6: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1ca8: 1047 lrw r2, 0x788755aa // 1cc4 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1caa: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1cac: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1cae: 4125 lsli r1, r1, 5 + 1cb0: 934d ld.w r2, (r3, 0x34) + 1cb2: 6884 and r2, r1 + 1cb4: 3a40 cmpnei r2, 0 + 1cb6: 0bfd bt 0x1cb0 // 1cb0 + 1cb8: 07f7 br 0x1ca6 // 1ca6 + 1cba: 0000 bkpt + 1cbc: 2000005c .long 0x2000005c + 1cc0: 78870000 .long 0x78870000 + 1cc4: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001cc8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1cc8: 1064 lrw r3, 0x2000005c // 1cd8 + 1cca: 32b4 movi r2, 180 + 1ccc: 9360 ld.w r3, (r3, 0x0) + 1cce: 237f addi r3, 128 + 1cd0: 4257 lsli r2, r2, 23 + 1cd2: b34e st.w r2, (r3, 0x38) +} + 1cd4: 783c jmp r15 + 1cd6: 0000 bkpt + 1cd8: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001cdc : +//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; + 1cdc: 1044 lrw r2, 0x87780000 // 1cec + 1cde: 1065 lrw r3, 0x2000005c // 1cf0 + 1ce0: 6c48 or r1, r2 + 1ce2: 9360 ld.w r3, (r3, 0x0) + 1ce4: 6c04 or r0, r1 + 1ce6: 237f addi r3, 128 + 1ce8: b30d st.w r0, (r3, 0x34) +} + 1cea: 783c jmp r15 + 1cec: 87780000 .long 0x87780000 + 1cf0: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001cf4 : +//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) +{ + 1cf4: 14c3 push r4-r6 + 1cf6: 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; + 1cf8: 10c5 lrw r6, 0xb44b0000 // 1d0c + 1cfa: 6d18 or r4, r6 + 1cfc: 6cd0 or r3, r4 + 1cfe: 6c8c or r2, r3 + 1d00: 6c48 or r1, r2 + 1d02: 10a4 lrw r5, 0x2000005c // 1d10 + 1d04: 6c04 or r0, r1 + 1d06: 95a0 ld.w r5, (r5, 0x0) + 1d08: b513 st.w r0, (r5, 0x4c) +} + 1d0a: 1483 pop r4-r6 + 1d0c: b44b0000 .long 0xb44b0000 + 1d10: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001d14 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1d14: 1066 lrw r3, 0x2000005c // 1d2c + 1d16: 3180 movi r1, 128 + 1d18: 9360 ld.w r3, (r3, 0x0) + 1d1a: 3280 movi r2, 128 + 1d1c: 604c addu r1, r3 + 1d1e: 4244 lsli r2, r2, 4 + 1d20: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1d22: 935d ld.w r2, (r3, 0x74) + 1d24: 3aab bseti r2, 11 + 1d26: b35d st.w r2, (r3, 0x74) +} + 1d28: 783c jmp r15 + 1d2a: 0000 bkpt + 1d2c: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001d30 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1d30: 1066 lrw r3, 0x2000005c // 1d48 + 1d32: 3180 movi r1, 128 + 1d34: 9360 ld.w r3, (r3, 0x0) + 1d36: 3280 movi r2, 128 + 1d38: 604c addu r1, r3 + 1d3a: 4241 lsli r2, r2, 1 + 1d3c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1d3e: 935d ld.w r2, (r3, 0x74) + 1d40: 3aa8 bseti r2, 8 + 1d42: b35d st.w r2, (r3, 0x74) +} + 1d44: 783c jmp r15 + 1d46: 0000 bkpt + 1d48: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001d4c : +//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) + 1d4c: 3a40 cmpnei r2, 0 + 1d4e: 0c04 bf 0x1d56 // 1d56 + 1d50: 3a41 cmpnei r2, 1 + 1d52: 0c0e bf 0x1d6e // 1d6e + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1d54: 783c jmp r15 + 1d56: 106d lrw r3, 0x2000005c // 1d88 + if(NewState != DISABLE) + 1d58: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1d5a: 9360 ld.w r3, (r3, 0x0) + 1d5c: 237f addi r3, 128 + 1d5e: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 1d60: 0c04 bf 0x1d68 // 1d68 + SYSCON->EXIRT |=EXIPIN; + 1d62: 6c48 or r1, r2 + 1d64: b325 st.w r1, (r3, 0x14) + 1d66: 07f7 br 0x1d54 // 1d54 + SYSCON->EXIRT &=~EXIPIN; + 1d68: 6885 andn r2, r1 + 1d6a: b345 st.w r2, (r3, 0x14) + 1d6c: 07f4 br 0x1d54 // 1d54 + 1d6e: 1067 lrw r3, 0x2000005c // 1d88 + if(NewState != DISABLE) + 1d70: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 1d72: 9360 ld.w r3, (r3, 0x0) + 1d74: 237f addi r3, 128 + 1d76: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 1d78: 0c04 bf 0x1d80 // 1d80 + SYSCON->EXIFT |=EXIPIN; + 1d7a: 6c48 or r1, r2 + 1d7c: b326 st.w r1, (r3, 0x18) + 1d7e: 07eb br 0x1d54 // 1d54 + SYSCON->EXIFT &=~EXIPIN; + 1d80: 6885 andn r2, r1 + 1d82: b346 st.w r2, (r3, 0x18) +} + 1d84: 07e8 br 0x1d54 // 1d54 + 1d86: 0000 bkpt + 1d88: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00001d8c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d8c: 106b lrw r3, 0x2000005c // 1db8 + 1d8e: 104c lrw r2, 0x3fff // 1dbc + 1d90: 9360 ld.w r3, (r3, 0x0) + 1d92: 237f addi r3, 128 + if(NewState != DISABLE) + 1d94: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d96: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 1d98: 0c0c bf 0x1db0 // 1db0 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 1d9a: 9347 ld.w r2, (r3, 0x1c) + 1d9c: 6c84 or r2, r1 + 1d9e: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 1da0: 9349 ld.w r2, (r3, 0x24) + 1da2: 6884 and r2, r1 + 1da4: 3a40 cmpnei r2, 0 + 1da6: 0ffd bf 0x1da0 // 1da0 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 1da8: 934b ld.w r2, (r3, 0x2c) + 1daa: 6c48 or r1, r2 + 1dac: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 1dae: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 1db0: 9348 ld.w r2, (r3, 0x20) + 1db2: 6c48 or r1, r2 + 1db4: b328 st.w r1, (r3, 0x20) +} + 1db6: 07fc br 0x1dae // 1dae + 1db8: 2000005c .long 0x2000005c + 1dbc: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00001dc0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 1dc0: b02b st.w r1, (r0, 0x2c) +} + 1dc2: 783c jmp r15 + +Disassembly of section .text.EXI4_Int_Enable: + +00001dc4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 1dc4: 3380 movi r3, 128 + 1dc6: 4370 lsli r3, r3, 16 + 1dc8: 1042 lrw r2, 0xe000e100 // 1dd0 + 1dca: b260 st.w r3, (r2, 0x0) +} + 1dcc: 783c jmp r15 + 1dce: 0000 bkpt + 1dd0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00001dd4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1dd4: 3202 movi r2, 2 + 1dd6: 1062 lrw r3, 0xe000e100 // 1ddc + 1dd8: b340 st.w r2, (r3, 0x0) +} + 1dda: 783c jmp r15 + 1ddc: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00001de0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 1de0: 3202 movi r2, 2 + 1de2: 1062 lrw r3, 0xe000e180 // 1de8 + 1de4: b340 st.w r2, (r3, 0x0) +} + 1de6: 783c jmp r15 + 1de8: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001dec : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1dec: 1066 lrw r3, 0xe000e400 // 1e04 + 1dee: 1047 lrw r2, 0xc0c0c0c0 // 1e08 + 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 + 1df0: 1027 lrw r1, 0xc0c000c0 // 1e0c + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1df2: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1df4: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1df6: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1df8: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1dfa: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1dfc: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1dfe: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1e00: b347 st.w r2, (r3, 0x1c) +} + 1e02: 783c jmp r15 + 1e04: e000e400 .long 0xe000e400 + 1e08: c0c0c0c0 .long 0xc0c0c0c0 + 1e0c: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001e10 : +//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) +{ + 1e10: 14c1 push r4 + 1e12: 4862 lsri r3, r0, 2 + 1e14: 4342 lsli r2, r3, 2 + 1e16: 106a lrw r3, 0x20000064 // 1e3c + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1e18: 3403 movi r4, 3 + 1e1a: 9360 ld.w r3, (r3, 0x0) + 1e1c: 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)); + 1e2e: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1e32: 7040 lsl r1, r0 + 1e34: 6c48 or r1, r2 + 1e36: b320 st.w r1, (r3, 0x0) +} + 1e38: 1481 pop r4 + 1e3a: 0000 bkpt + 1e3c: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00001e40 : +//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) +{ + 1e40: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e42: 3907 cmphsi r1, 8 +{ + 1e44: 6d03 mov r4, r0 + if(PinNum<8) + 1e46: 0830 bt 0x1ea6 // 1ea6 + { + switch (PinNum) + 1e48: 5903 subi r0, r1, 1 + 1e4a: 3806 cmphsi r0, 7 + 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 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e5a: 3300 movi r3, 0 + 1e5c: 3104 movi r1, 4 + 1e5e: 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) + 1e60: 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< + 1e76: 07f5 br 0x1e60 // 1e60 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e78: 310c movi r1, 12 + 1e7a: 1166 lrw r3, 0xffff0fff // 1f10 + 1e7c: 07f2 br 0x1e60 // 1e60 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e7e: 3110 movi r1, 16 + 1e80: 1165 lrw r3, 0xfff10000 // 1f14 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e82: 2b00 subi r3, 1 + 1e84: 07ee br 0x1e60 // 1e60 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e86: 3114 movi r1, 20 + 1e88: 1164 lrw r3, 0xff100000 // 1f18 + 1e8a: 07fc br 0x1e82 // 1e82 + case 6: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 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e94: 311c movi r1, 28 + 1e96: 1162 lrw r3, 0xfffffff // 1f1c + 1e98: 07e4 br 0x1e60 // 1e60 + case 0: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)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1ea6: 390f cmphsi r1, 16 + 1ea8: 0be4 bt 0x1e70 // 1e70 + switch (PinNum) + 1eaa: 2908 subi r1, 9 + 1eac: 3906 cmphsi r1, 7 + 1eae: 6c07 mov r0, r1 + 1eb0: 0827 bt 0x1efe // 1efe + 1eb2: e3fff725 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1eb6: 1004 .short 0x1004 + 1eb8: 1d1a1613 .long 0x1d1a1613 + 1ebc: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1ebe: 3300 movi r3, 0 + 1ec0: 3104 movi r1, 4 + 1ec2: 2bf0 subi r3, 241 + if (Dir) + 1ec4: 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; + 1ed6: 3108 movi r1, 8 + 1ed8: 106d lrw r3, 0xfffff0ff // 1f0c + 1eda: 07f5 br 0x1ec4 // 1ec4 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1edc: 310c movi r1, 12 + 1ede: 106d lrw r3, 0xffff0fff // 1f10 + 1ee0: 07f2 br 0x1ec4 // 1ec4 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ee2: 3110 movi r1, 16 + 1ee4: 106c lrw r3, 0xfff10000 // 1f14 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ee6: 2b00 subi r3, 1 + 1ee8: 07ee br 0x1ec4 // 1ec4 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1eea: 3114 movi r1, 20 + 1eec: 106b lrw r3, 0xff100000 // 1f18 + 1eee: 07fc br 0x1ee6 // 1ee6 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ef0: 33f1 movi r3, 241 + 1ef2: 3118 movi r1, 24 + 1ef4: 4378 lsli r3, r3, 24 + 1ef6: 07f8 br 0x1ee6 // 1ee6 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1ef8: 311c movi r1, 28 + 1efa: 1069 lrw r3, 0xfffffff // 1f1c + 1efc: 07e4 br 0x1ec4 // 1ec4 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1efe: 3300 movi r3, 0 + 1f00: 3100 movi r1, 0 + 1f02: 2b0f subi r3, 16 + 1f04: 07e0 br 0x1ec4 // 1ec4 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1f0a: 0000 bkpt + 1f0c: fffff0ff .long 0xfffff0ff + 1f10: ffff0fff .long 0xffff0fff + 1f14: fff10000 .long 0xfff10000 + 1f18: ff100000 .long 0xff100000 + 1f1c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f20 : +//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)); + 1f20: 4121 lsli r1, r1, 1 + 1f22: 3203 movi r2, 3 + 1f24: 9068 ld.w r3, (r0, 0x20) + 1f26: 7084 lsl r2, r1 + 1f28: 68c9 andn r3, r2 + 1f2a: 3201 movi r2, 1 + 1f2c: 7084 lsl r2, r1 + 1f2e: 6cc8 or r3, r2 + 1f30: b068 st.w r3, (r0, 0x20) +} + 1f32: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f34 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f34: 4121 lsli r1, r1, 1 + 1f36: 3301 movi r3, 1 + 1f38: 9049 ld.w r2, (r0, 0x24) + 1f3a: 70c4 lsl r3, r1 + 1f3c: 6cc8 or r3, r2 + 1f3e: b069 st.w r3, (r0, 0x24) +} + 1f40: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f44 : +//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) +{ + 1f44: 14c1 push r4 + 1f46: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f48: 3a0f cmphsi r2, 16 + 1f4a: 084f bt 0x1fe8 // 1fe8 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f4c: 6ccb mov r3, r2 + 1f4e: 3b83 bclri r3, 3 + 1f50: 3b40 cmpnei r3, 0 + 1f52: 0813 bt 0x1f78 // 1f78 + { + R_data_temp=0xfffffff0; + 1f54: 2b0f subi r3, 16 + 1f56: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f58: 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) + 1f5a: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f5c: dc6e0003 st.b r3, (r14, 0x3) + 1f60: 1176 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x<8) + 1f62: 0c38 bf 0x1fd2 // 1fd2 + { + 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)) + 1f78: 3b41 cmpnei r3, 1 + 1f7a: 0806 bt 0x1f86 // 1f86 + R_data_temp=0xffffff0f; + 1f7c: 3300 movi r3, 0 + 1f7e: 2bf0 subi r3, 241 + 1f80: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f82: 3304 movi r3, 4 + 1f84: 07eb br 0x1f5a // 1f5a + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f86: 3b42 cmpnei r3, 2 + 1f88: 0805 bt 0x1f92 // 1f92 + R_data_temp=0xfffff0ff; + 1f8a: 116d lrw r3, 0xfffff0ff // 203c + 1f8c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f8e: 3308 movi r3, 8 + 1f90: 07e5 br 0x1f5a // 1f5a + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f92: 3b43 cmpnei r3, 3 + 1f94: 0805 bt 0x1f9e // 1f9e + R_data_temp=0xffff0fff; + 1f96: 116b lrw r3, 0xffff0fff // 2040 + 1f98: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f9a: 330c movi r3, 12 + 1f9c: 07df br 0x1f5a // 1f5a + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f9e: 3b44 cmpnei r3, 4 + 1fa0: 0806 bt 0x1fac // 1fac + R_data_temp=0xfff0ffff; + 1fa2: 1169 lrw r3, 0xfff10000 // 2044 + 1fa4: 2b00 subi r3, 1 + 1fa6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1fa8: 3310 movi r3, 16 + 1faa: 07d8 br 0x1f5a // 1f5a + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1fac: 3b45 cmpnei r3, 5 + 1fae: 0806 bt 0x1fba // 1fba + R_data_temp=0xff0fffff; + 1fb0: 1166 lrw r3, 0xff100000 // 2048 + 1fb2: 2b00 subi r3, 1 + 1fb4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1fb6: 3314 movi r3, 20 + 1fb8: 07d1 br 0x1f5a // 1f5a + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1fba: 3b46 cmpnei r3, 6 + 1fbc: 0807 bt 0x1fca // 1fca + R_data_temp=0xf0ffffff; + 1fbe: 33f1 movi r3, 241 + 1fc0: 4378 lsli r3, r3, 24 + 1fc2: 2b00 subi r3, 1 + 1fc4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1fc6: 3318 movi r3, 24 + 1fc8: 07c9 br 0x1f5a // 1f5a + R_data_temp=0x0fffffff; + 1fca: 1161 lrw r3, 0xfffffff // 204c + 1fcc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1fce: 331c movi r3, 28 + 1fd0: 07c5 br 0x1f5a // 1f5a + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fe4: 1402 addi r14, r14, 8 + 1fe6: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fe8: 3a13 cmphsi r2, 20 + 1fea: 0bfd bt 0x1fe4 // 1fe4 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fec: 3840 cmpnei r0, 0 + 1fee: 0814 bt 0x2016 // 2016 + 1ff0: 3300 movi r3, 0 + 1ff2: 2b0f subi r3, 16 + 1ff4: 60c8 addu r3, r2 + 1ff6: 3b01 cmphsi r3, 2 + 1ff8: 0bf6 bt 0x1fe4 // 1fe4 + if(Selete_EXI_x==16) + 1ffa: 3a50 cmpnei r2, 16 + 1ffc: 106f lrw r3, 0x20000044 // 2038 + 1ffe: 0806 bt 0x200a // 200a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2000: 9340 ld.w r2, (r3, 0x0) + 2002: 9262 ld.w r3, (r2, 0x8) + 2004: 6c4c or r1, r3 + 2006: b222 st.w r1, (r2, 0x8) + 2008: 07ee br 0x1fe4 // 1fe4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 200a: 9360 ld.w r3, (r3, 0x0) + 200c: 9342 ld.w r2, (r3, 0x8) + 200e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2010: 6c48 or r1, r2 + 2012: b322 st.w r1, (r3, 0x8) +} + 2014: 07e8 br 0x1fe4 // 1fe4 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 2016: 3842 cmpnei r0, 2 + 2018: 0be6 bt 0x1fe4 // 1fe4 + 201a: 3300 movi r3, 0 + 201c: 2b11 subi r3, 18 + 201e: 60c8 addu r3, r2 + 2020: 3b01 cmphsi r3, 2 + 2022: 0be1 bt 0x1fe4 // 1fe4 + 2024: 1065 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x==18) + 2026: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2028: 9360 ld.w r3, (r3, 0x0) + 202a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 202c: 0803 bt 0x2032 // 2032 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 202e: 4128 lsli r1, r1, 8 + 2030: 07f0 br 0x2010 // 2010 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2032: 412c lsli r1, r1, 12 + 2034: 07ee br 0x2010 // 2010 + 2036: 0000 bkpt + 2038: 20000044 .long 0x20000044 + 203c: fffff0ff .long 0xfffff0ff + 2040: ffff0fff .long 0xffff0fff + 2044: fff10000 .long 0xfff10000 + 2048: ff100000 .long 0xff100000 + 204c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00002050 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2050: 14d0 push r15 + switch (EXI_IO) + 2052: 380f cmphsi r0, 16 + 2054: 0812 bt 0x2078 // 2078 + 2056: 117d lrw r3, 0x2000004c // 2148 + 2058: e3fff652 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 205c: 1d150f08 .long 0x1d150f08 + 2060: 39322b24 .long 0x39322b24 + 2064: 544c463f .long 0x544c463f + 2068: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 206c: 9340 ld.w r2, (r3, 0x0) + 206e: 9260 ld.w r3, (r2, 0x0) + 2070: 310f movi r1, 15 + 2072: 68c5 andn r3, r1 + 2074: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2076: 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; + } +} + 2078: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 207a: 9340 ld.w r2, (r3, 0x0) + 207c: 9260 ld.w r3, (r2, 0x0) + 207e: 31f0 movi r1, 240 + 2080: 68c5 andn r3, r1 + 2082: 3ba4 bseti r3, 4 + 2084: 07f9 br 0x2076 // 2076 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 2086: 9320 ld.w r1, (r3, 0x0) + 2088: 32f0 movi r2, 240 + 208a: 9160 ld.w r3, (r1, 0x0) + 208c: 4244 lsli r2, r2, 4 + 208e: 68c9 andn r3, r2 + 2090: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 2092: b160 st.w r3, (r1, 0x0) + 2094: 07f2 br 0x2078 // 2078 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 2096: 9320 ld.w r1, (r3, 0x0) + 2098: 32f0 movi r2, 240 + 209a: 9160 ld.w r3, (r1, 0x0) + 209c: 4248 lsli r2, r2, 8 + 209e: 68c9 andn r3, r2 + 20a0: 3bac bseti r3, 12 + 20a2: 07f8 br 0x2092 // 2092 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 20a4: 9320 ld.w r1, (r3, 0x0) + 20a6: 32f0 movi r2, 240 + 20a8: 9160 ld.w r3, (r1, 0x0) + 20aa: 424c lsli r2, r2, 12 + 20ac: 68c9 andn r3, r2 + 20ae: 3bb0 bseti r3, 16 + 20b0: 07f1 br 0x2092 // 2092 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 20b2: 9320 ld.w r1, (r3, 0x0) + 20b4: 32f0 movi r2, 240 + 20b6: 9160 ld.w r3, (r1, 0x0) + 20b8: 4250 lsli r2, r2, 16 + 20ba: 68c9 andn r3, r2 + 20bc: 3bb4 bseti r3, 20 + 20be: 07ea br 0x2092 // 2092 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 20c0: 9320 ld.w r1, (r3, 0x0) + 20c2: 32f0 movi r2, 240 + 20c4: 9160 ld.w r3, (r1, 0x0) + 20c6: 4254 lsli r2, r2, 20 + 20c8: 68c9 andn r3, r2 + 20ca: 3bb8 bseti r3, 24 + 20cc: 07e3 br 0x2092 // 2092 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 20ce: 9340 ld.w r2, (r3, 0x0) + 20d0: 9260 ld.w r3, (r2, 0x0) + 20d2: 4364 lsli r3, r3, 4 + 20d4: 4b64 lsri r3, r3, 4 + 20d6: 3bbc bseti r3, 28 + 20d8: 07cf br 0x2076 // 2076 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 20da: 9340 ld.w r2, (r3, 0x0) + 20dc: 9261 ld.w r3, (r2, 0x4) + 20de: 310f movi r1, 15 + 20e0: 68c5 andn r3, r1 + 20e2: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 20e4: b261 st.w r3, (r2, 0x4) +} + 20e6: 07c9 br 0x2078 // 2078 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 20e8: 9340 ld.w r2, (r3, 0x0) + 20ea: 9261 ld.w r3, (r2, 0x4) + 20ec: 31f0 movi r1, 240 + 20ee: 68c5 andn r3, r1 + 20f0: 3ba4 bseti r3, 4 + 20f2: 07f9 br 0x20e4 // 20e4 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 20f4: 9320 ld.w r1, (r3, 0x0) + 20f6: 32f0 movi r2, 240 + 20f8: 9161 ld.w r3, (r1, 0x4) + 20fa: 4244 lsli r2, r2, 4 + 20fc: 68c9 andn r3, r2 + 20fe: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2100: b161 st.w r3, (r1, 0x4) + 2102: 07bb br 0x2078 // 2078 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 2104: 9320 ld.w r1, (r3, 0x0) + 2106: 32f0 movi r2, 240 + 2108: 9161 ld.w r3, (r1, 0x4) + 210a: 4248 lsli r2, r2, 8 + 210c: 68c9 andn r3, r2 + 210e: 3bac bseti r3, 12 + 2110: 07f8 br 0x2100 // 2100 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 2112: 9320 ld.w r1, (r3, 0x0) + 2114: 32f0 movi r2, 240 + 2116: 9161 ld.w r3, (r1, 0x4) + 2118: 424c lsli r2, r2, 12 + 211a: 68c9 andn r3, r2 + 211c: 3bb0 bseti r3, 16 + 211e: 07f1 br 0x2100 // 2100 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 2120: 9320 ld.w r1, (r3, 0x0) + 2122: 32f0 movi r2, 240 + 2124: 9161 ld.w r3, (r1, 0x4) + 2126: 4250 lsli r2, r2, 16 + 2128: 68c9 andn r3, r2 + 212a: 3bb4 bseti r3, 20 + 212c: 07ea br 0x2100 // 2100 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 212e: 9320 ld.w r1, (r3, 0x0) + 2130: 32f0 movi r2, 240 + 2132: 9161 ld.w r3, (r1, 0x4) + 2134: 4254 lsli r2, r2, 20 + 2136: 68c9 andn r3, r2 + 2138: 3bb8 bseti r3, 24 + 213a: 07e3 br 0x2100 // 2100 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 213c: 9340 ld.w r2, (r3, 0x0) + 213e: 9261 ld.w r3, (r2, 0x4) + 2140: 4364 lsli r3, r3, 4 + 2142: 4b64 lsri r3, r3, 4 + 2144: 3bbc bseti r3, 28 + 2146: 07cf br 0x20e4 // 20e4 + 2148: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIO_Write_High: + +0000214c : +//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; + 215c: 9045 ld.w r2, (r0, 0x14) + 215e: 3301 movi r3, 1 + 2160: 7085 lsr r2, r1 + 2162: 688c and r2, r3 + { + if (dat==1) + 2164: 3a40 cmpnei r2, 0 + 2166: 70c4 lsl r3, r1 + 2168: 0c03 bf 0x216e // 216e + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.LPT_Soft_Reset: + +00002174 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPT_Soft_Reset(void) +{ + LPT->RSSR |= (0X5<<12); + 2174: 1064 lrw r3, 0x20000014 // 2184 + 2176: 9340 ld.w r2, (r3, 0x0) + 2178: 9261 ld.w r3, (r2, 0x4) + 217a: 3bac bseti r3, 12 + 217c: 3bae bseti r3, 14 + 217e: b261 st.w r3, (r2, 0x4) +} + 2180: 783c jmp r15 + 2182: 0000 bkpt + 2184: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002188 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2188: 1063 lrw r3, 0x20000010 // 2194 + 218a: 9360 ld.w r3, (r3, 0x0) + 218c: 9340 ld.w r2, (r3, 0x0) + 218e: 6c08 or r0, r2 + 2190: b300 st.w r0, (r3, 0x0) +} + 2192: 783c jmp r15 + 2194: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002198 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2198: 3300 movi r3, 0 + 219a: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 219c: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 219e: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 21a0: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 21a2: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 21a4: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 21a6: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 21a8: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 21aa: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 21ac: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 21ae: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 21b0: b06d st.w r3, (r0, 0x34) +} + 21b2: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000021b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 21b4: 9060 ld.w r3, (r0, 0x0) + 21b6: 3ba0 bseti r3, 0 + 21b8: b060 st.w r3, (r0, 0x0) +} + 21ba: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000021bc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 21bc: 9060 ld.w r3, (r0, 0x0) + 21be: 3bac bseti r3, 12 + 21c0: 3bae bseti r3, 14 + 21c2: b060 st.w r3, (r0, 0x0) +} + 21c4: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000021c6 : +//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) +{ + 21c6: 14c3 push r4-r6 + 21c8: 98a4 ld.w r5, (r14, 0x10) + 21ca: 6d97 mov r6, r5 + 21cc: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 21ce: 6d18 or r4, r6 + 21d0: 6cd0 or r3, r4 + 21d2: 90a1 ld.w r5, (r0, 0x4) + 21d4: 6c4c or r1, r3 + 21d6: 6c54 or r1, r5 + 21d8: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 21da: b042 st.w r2, (r0, 0x8) +} + 21dc: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000021de : +//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) +{ + 21de: 14c4 push r4-r7 + 21e0: 1421 subi r14, r14, 4 + 21e2: 9885 ld.w r4, (r14, 0x14) + 21e4: 6dd3 mov r7, r4 + 21e6: 9886 ld.w r4, (r14, 0x18) + 21e8: b880 st.w r4, (r14, 0x0) + 21ea: 9887 ld.w r4, (r14, 0x1c) + 21ec: 6d93 mov r6, r4 + 21ee: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 21f0: 6d58 or r5, r6 + 21f2: 98c0 ld.w r6, (r14, 0x0) + 21f4: 6d58 or r5, r6 + 21f6: 6d5c or r5, r7 + 21f8: 6cd4 or r3, r5 + 21fa: 6c8c or r2, r3 + 21fc: 9081 ld.w r4, (r0, 0x4) + 21fe: 6c48 or r1, r2 + 2200: 6d04 or r4, r1 + 2202: 6d9f mov r6, r7 + 2204: b081 st.w r4, (r0, 0x4) +} + 2206: 1401 addi r14, r14, 4 + 2208: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000220a : +//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; + 220a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 220c: b044 st.w r2, (r0, 0x10) +} + 220e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00002210 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 2210: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 2212: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2214: 0c04 bf 0x221c // 221c + BTx->IMCR |= BT_IMSCR_X; + 2216: 6c8c or r2, r3 + 2218: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 221a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 221c: 68c9 andn r3, r2 + 221e: b06b st.w r3, (r0, 0x2c) +} + 2220: 07fd br 0x221a // 221a + +Disassembly of section .text.BT1_INT_ENABLE: + +00002224 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 2224: 3380 movi r3, 128 + 2226: 4376 lsli r3, r3, 22 + 2228: 1042 lrw r2, 0xe000e100 // 2230 + 222a: b260 st.w r3, (r2, 0x0) +} + 222c: 783c jmp r15 + 222e: 0000 bkpt + 2230: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00002234 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 2234: 1067 lrw r3, 0x2000002c // 2250 + 2236: 3200 movi r2, 0 + 2238: 9360 ld.w r3, (r3, 0x0) + 223a: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 223c: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 223e: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 2240: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 2242: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 2244: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 2246: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 2248: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 224a: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 224c: b34b st.w r2, (r3, 0x2c) +} + 224e: 783c jmp r15 + 2250: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +00002254 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 2254: 3840 cmpnei r0, 0 + 2256: 080a bt 0x226a // 226a + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 2258: 1075 lrw r3, 0x2000004c // 22ac + 225a: 32f0 movi r2, 240 + 225c: 9320 ld.w r1, (r3, 0x0) + 225e: 9160 ld.w r3, (r1, 0x0) + 2260: 4244 lsli r2, r2, 4 + 2262: 68c9 andn r3, r2 + 2264: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 2266: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 2268: 783c jmp r15 + if(IOGx==SIO_PA03) + 226a: 3841 cmpnei r0, 1 + 226c: 0809 bt 0x227e // 227e + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 226e: 1070 lrw r3, 0x2000004c // 22ac + 2270: 32f0 movi r2, 240 + 2272: 9320 ld.w r1, (r3, 0x0) + 2274: 9160 ld.w r3, (r1, 0x0) + 2276: 4248 lsli r2, r2, 8 + 2278: 68c9 andn r3, r2 + 227a: 3baf bseti r3, 15 + 227c: 07f5 br 0x2266 // 2266 + if(IOGx==SIO_PA012) + 227e: 3842 cmpnei r0, 2 + 2280: 080a bt 0x2294 // 2294 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 2282: 106b lrw r3, 0x2000004c // 22ac + 2284: 32f0 movi r2, 240 + 2286: 9320 ld.w r1, (r3, 0x0) + 2288: 9161 ld.w r3, (r1, 0x4) + 228a: 424c lsli r2, r2, 12 + 228c: 68c9 andn r3, r2 + 228e: 3bb3 bseti r3, 19 + 2290: b161 st.w r3, (r1, 0x4) + 2292: 07eb br 0x2268 // 2268 + if(IOGx==SIO_PB01) + 2294: 3843 cmpnei r0, 3 + 2296: 0be9 bt 0x2268 // 2268 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 2298: 1066 lrw r3, 0x20000048 // 22b0 + 229a: 31f0 movi r1, 240 + 229c: 9340 ld.w r2, (r3, 0x0) + 229e: 9260 ld.w r3, (r2, 0x0) + 22a0: 68c5 andn r3, r1 + 22a2: 3170 movi r1, 112 + 22a4: 6cc4 or r3, r1 + 22a6: b260 st.w r3, (r2, 0x0) +} + 22a8: 07e0 br 0x2268 // 2268 + 22aa: 0000 bkpt + 22ac: 2000004c .long 0x2000004c + 22b0: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +000022b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 22b4: 4130 lsli r1, r1, 16 + 22b6: 1063 lrw r3, 0x2000002c // 22c0 + 22b8: 6c04 or r0, r1 + 22ba: 9360 ld.w r3, (r3, 0x0) + 22bc: b300 st.w r0, (r3, 0x0) + +} + 22be: 783c jmp r15 + 22c0: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +000022c4 : +//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) +{ + 22c4: 14c4 push r4-r7 + 22c6: 1423 subi r14, r14, 12 + 22c8: 9889 ld.w r4, (r14, 0x24) + 22ca: b881 st.w r4, (r14, 0x4) + 22cc: 988a ld.w r4, (r14, 0x28) + 22ce: b882 st.w r4, (r14, 0x8) + 22d0: 1c08 addi r4, r14, 32 + 22d2: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22d4: 4368 lsli r3, r3, 8 +{ + 22d6: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22d8: 6cc0 or r3, r0 +{ + 22da: 1c0b addi r4, r14, 44 + 22dc: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22de: 6cc4 or r3, r1 +{ + 22e0: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22e2: 4244 lsli r2, r2, 4 + 22e4: 10eb lrw r7, 0x2000002c // 2310 + 22e6: 6cc8 or r3, r2 + 22e8: 97e0 ld.w r7, (r7, 0x0) +{ + 22ea: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 22ec: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 22ee: 4498 lsli r4, r4, 24 + 22f0: 9861 ld.w r3, (r14, 0x4) + 22f2: 6d0c or r4, r3 + 22f4: 9862 ld.w r3, (r14, 0x8) + 22f6: 6d0c or r4, r3 +{ + 22f8: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 22fc: 9860 ld.w r3, (r14, 0x0) + 22fe: 46d0 lsli r6, r6, 16 + 2300: 6d90 or r6, r4 + 2302: 45a2 lsli r5, r5, 2 + 2304: 4385 lsli r4, r3, 5 + 2306: 6d50 or r5, r4 + 2308: 6d58 or r5, r6 + 230a: b7a2 st.w r5, (r7, 0x8) +} + 230c: 1403 addi r14, r14, 12 + 230e: 1484 pop r4-r7 + 2310: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +00002314 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 2314: 1065 lrw r3, 0x20000040 // 2328 + 2316: 3200 movi r2, 0 + 2318: 9360 ld.w r3, (r3, 0x0) + 231a: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 231c: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 231e: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 2320: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 2322: b344 st.w r2, (r3, 0x10) +} + 2324: 783c jmp r15 + 2326: 0000 bkpt + 2328: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +0000232c : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 232c: 1065 lrw r3, 0x2000003c // 2340 + 232e: 3200 movi r2, 0 + 2330: 9360 ld.w r3, (r3, 0x0) + 2332: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 2334: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 2336: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 2338: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 233a: b344 st.w r2, (r3, 0x10) +} + 233c: 783c jmp r15 + 233e: 0000 bkpt + 2340: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00002344 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 2344: 1065 lrw r3, 0x20000038 // 2358 + 2346: 3200 movi r2, 0 + 2348: 9360 ld.w r3, (r3, 0x0) + 234a: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 234c: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 234e: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 2350: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 2352: b344 st.w r2, (r3, 0x10) +} + 2354: 783c jmp r15 + 2356: 0000 bkpt + 2358: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +0000235c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 235c: 1065 lrw r3, 0x20000040 // 2370 + 235e: 320f movi r2, 15 + 2360: 9360 ld.w r3, (r3, 0x0) + 2362: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2364: 3380 movi r3, 128 + 2366: 4366 lsli r3, r3, 6 + 2368: 1043 lrw r2, 0xe000e100 // 2374 + 236a: b260 st.w r3, (r2, 0x0) +} + 236c: 783c jmp r15 + 236e: 0000 bkpt + 2370: 20000040 .long 0x20000040 + 2374: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002378 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2378: 1065 lrw r3, 0x20000038 // 238c + 237a: 320f movi r2, 15 + 237c: 9360 ld.w r3, (r3, 0x0) + 237e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2380: 3380 movi r3, 128 + 2382: 4368 lsli r3, r3, 8 + 2384: 1043 lrw r2, 0xe000e100 // 2390 + 2386: b260 st.w r3, (r2, 0x0) +} + 2388: 783c jmp r15 + 238a: 0000 bkpt + 238c: 20000038 .long 0x20000038 + 2390: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002394 : +//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) + 2394: 3840 cmpnei r0, 0 + 2396: 0821 bt 0x23d8 // 23d8 + { + if(UART_IO_G==0) + 2398: 3940 cmpnei r1, 0 + 239a: 080a bt 0x23ae // 23ae + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 239c: 1177 lrw r3, 0x2000004c // 2478 + 239e: 31ff movi r1, 255 + 23a0: 9340 ld.w r2, (r3, 0x0) + 23a2: 9260 ld.w r3, (r2, 0x0) + 23a4: 68c5 andn r3, r1 + 23a6: 3ba2 bseti r3, 2 + 23a8: 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 + 23aa: b260 st.w r3, (r2, 0x0) + 23ac: 0415 br 0x23d6 // 23d6 + else if(UART_IO_G==1) + 23ae: 3941 cmpnei r1, 1 + 23b0: 0813 bt 0x23d6 // 23d6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 23b2: 1172 lrw r3, 0x2000004c // 2478 + 23b4: 31f0 movi r1, 240 + 23b6: 9340 ld.w r2, (r3, 0x0) + 23b8: 9260 ld.w r3, (r2, 0x0) + 23ba: 4130 lsli r1, r1, 16 + 23bc: 68c5 andn r3, r1 + 23be: 31e0 movi r1, 224 + 23c0: 412f lsli r1, r1, 15 + 23c2: 6cc4 or r3, r1 + 23c4: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 23c6: 31f0 movi r1, 240 + 23c8: 9261 ld.w r3, (r2, 0x4) + 23ca: 412c lsli r1, r1, 12 + 23cc: 68c5 andn r3, r1 + 23ce: 31e0 movi r1, 224 + 23d0: 412b lsli r1, r1, 11 + 23d2: 6cc4 or r3, r1 + 23d4: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 23d6: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 23d8: 3841 cmpnei r0, 1 + 23da: 082d bt 0x2434 // 2434 + if(UART_IO_G==0) + 23dc: 3940 cmpnei r1, 0 + 23de: 0814 bt 0x2406 // 2406 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 23e0: 1167 lrw r3, 0x20000048 // 247c + 23e2: 310f movi r1, 15 + 23e4: 9340 ld.w r2, (r3, 0x0) + 23e6: 9260 ld.w r3, (r2, 0x0) + 23e8: 68c5 andn r3, r1 + 23ea: 3107 movi r1, 7 + 23ec: 6cc4 or r3, r1 + 23ee: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 23f0: 32f0 movi r2, 240 + 23f2: 1162 lrw r3, 0x2000004c // 2478 + 23f4: 4250 lsli r2, r2, 16 + 23f6: 9320 ld.w r1, (r3, 0x0) + 23f8: 9161 ld.w r3, (r1, 0x4) + 23fa: 68c9 andn r3, r2 + 23fc: 32e0 movi r2, 224 + 23fe: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2400: 6cc8 or r3, r2 + 2402: b161 st.w r3, (r1, 0x4) + 2404: 07e9 br 0x23d6 // 23d6 + else if(UART_IO_G==1) + 2406: 3941 cmpnei r1, 1 + 2408: 080c bt 0x2420 // 2420 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 240a: 107c lrw r3, 0x2000004c // 2478 + 240c: 32ff movi r2, 255 + 240e: 9320 ld.w r1, (r3, 0x0) + 2410: 424c lsli r2, r2, 12 + 2412: 9160 ld.w r3, (r1, 0x0) + 2414: 68c9 andn r3, r2 + 2416: 32ee movi r2, 238 + 2418: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 241a: 6cc8 or r3, r2 + 241c: b160 st.w r3, (r1, 0x0) +} + 241e: 07dc br 0x23d6 // 23d6 + else if(UART_IO_G==2) + 2420: 3942 cmpnei r1, 2 + 2422: 0bda bt 0x23d6 // 23d6 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2424: 1075 lrw r3, 0x2000004c // 2478 + 2426: 32ee movi r2, 238 + 2428: 9320 ld.w r1, (r3, 0x0) + 242a: 9161 ld.w r3, (r1, 0x4) + 242c: 4368 lsli r3, r3, 8 + 242e: 4b68 lsri r3, r3, 8 + 2430: 4257 lsli r2, r2, 23 + 2432: 07e7 br 0x2400 // 2400 + if (IO_UART_NUM==IO_UART2) + 2434: 3842 cmpnei r0, 2 + 2436: 0bd0 bt 0x23d6 // 23d6 + if(UART_IO_G==0) + 2438: 3940 cmpnei r1, 0 + 243a: 0809 bt 0x244c // 244c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 243c: 106f lrw r3, 0x2000004c // 2478 + 243e: 31ff movi r1, 255 + 2440: 9340 ld.w r2, (r3, 0x0) + 2442: 9260 ld.w r3, (r2, 0x0) + 2444: 68c5 andn r3, r1 + 2446: 3177 movi r1, 119 + 2448: 6cc4 or r3, r1 + 244a: 07b0 br 0x23aa // 23aa + else if(UART_IO_G==1) + 244c: 3941 cmpnei r1, 1 + 244e: 0809 bt 0x2460 // 2460 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 2450: 106a lrw r3, 0x2000004c // 2478 + 2452: 32ee movi r2, 238 + 2454: 9320 ld.w r1, (r3, 0x0) + 2456: 9160 ld.w r3, (r1, 0x0) + 2458: 4368 lsli r3, r3, 8 + 245a: 4b68 lsri r3, r3, 8 + 245c: 4257 lsli r2, r2, 23 + 245e: 07de br 0x241a // 241a + else if(UART_IO_G==2) + 2460: 3942 cmpnei r1, 2 + 2462: 0bba bt 0x23d6 // 23d6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2464: 1066 lrw r3, 0x20000048 // 247c + 2466: 32ff movi r2, 255 + 2468: 9320 ld.w r1, (r3, 0x0) + 246a: 4250 lsli r2, r2, 16 + 246c: 9160 ld.w r3, (r1, 0x0) + 246e: 68c9 andn r3, r2 + 2470: 32cc movi r2, 204 + 2472: 424f lsli r2, r2, 15 + 2474: 07d3 br 0x241a // 241a + 2476: 0000 bkpt + 2478: 2000004c .long 0x2000004c + 247c: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +00002480 : +//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); + 2480: 1063 lrw r3, 0x80003 // 248c + 2482: 6c8c or r2, r3 + 2484: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2486: b024 st.w r1, (r0, 0x10) +} + 2488: 783c jmp r15 + 248a: 0000 bkpt + 248c: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002490 : +//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); + 2490: 1063 lrw r3, 0x8000f // 249c + 2492: 6c8c or r2, r3 + 2494: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2496: b024 st.w r1, (r0, 0x10) +} + 2498: 783c jmp r15 + 249a: 0000 bkpt + 249c: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +000024a0 : +//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) +{ + 24a0: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 24a2: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 24a4: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 24a6: 5b85 subu r4, r3, r1 + 24a8: 6490 cmphs r4, r2 + 24aa: 0c02 bf 0x24ae // 24ae + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 24ac: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 24ae: 8380 ld.b r4, (r3, 0x0) + 24b0: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 24b2: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 24b4: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 24b6: 3c40 cmpnei r4, 0 + 24b8: 0bfd bt 0x24b2 // 24b2 + 24ba: 2300 addi r3, 1 + 24bc: 07f5 br 0x24a6 // 24a6 + +Disassembly of section .text.EPT_Stop: + +000024c0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 24c0: 1068 lrw r3, 0x20000020 // 24e0 + 24c2: 3280 movi r2, 128 + 24c4: 9360 ld.w r3, (r3, 0x0) + 24c6: 608c addu r2, r3 + 24c8: 1027 lrw r1, 0xa55ac73a // 24e4 + 24ca: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 24cc: 9341 ld.w r2, (r3, 0x4) + 24ce: 31fe movi r1, 254 + 24d0: 6884 and r2, r1 + 24d2: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 24d4: 3101 movi r1, 1 + 24d6: 9341 ld.w r2, (r3, 0x4) + 24d8: 6884 and r2, r1 + 24da: 3a40 cmpnei r2, 0 + 24dc: 0bfd bt 0x24d6 // 24d6 +} + 24de: 783c jmp r15 + 24e0: 20000020 .long 0x20000020 + 24e4: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +000024e8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 24e8: 1078 lrw r3, 0x20000050 // 2548 + 24ea: 3200 movi r2, 0 + 24ec: 9360 ld.w r3, (r3, 0x0) + 24ee: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 24f0: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 24f2: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 24f4: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 24f6: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 24f8: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 24fa: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 24fc: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 24fe: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2500: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 2502: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 2504: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 2506: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2508: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 250a: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 250c: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 250e: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2510: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 2512: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 2514: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 2516: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2518: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 251a: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 251c: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 251e: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2520: 23ff addi r3, 256 + 2522: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 2524: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 2526: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2528: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 252a: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 252c: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 252e: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2530: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 2532: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 2534: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 2536: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2538: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 253a: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 253c: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 253e: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 2540: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 2542: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 2544: b351 st.w r2, (r3, 0x44) +} + 2546: 783c jmp r15 + 2548: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +0000254c : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 254c: 1063 lrw r3, 0x20000050 // 2558 + 254e: 9340 ld.w r2, (r3, 0x0) + 2550: 9264 ld.w r3, (r2, 0x10) + 2552: 6c0c or r0, r3 + 2554: b204 st.w r0, (r2, 0x10) +} + 2556: 783c jmp r15 + 2558: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +0000255c : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 255c: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 255e: 3002 movi r0, 2 + 2560: e3fffff6 bsr 0x254c // 254c + while(!(ADC0->SR &ADC12_ADCENS)); + 2564: 1065 lrw r3, 0x20000050 // 2578 + 2566: 3280 movi r2, 128 + 2568: 9320 ld.w r1, (r3, 0x0) + 256a: 4241 lsli r2, r2, 1 + 256c: 9168 ld.w r3, (r1, 0x20) + 256e: 68c8 and r3, r2 + 2570: 3b40 cmpnei r3, 0 + 2572: 0ffd bf 0x256c // 256c + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2574: 1490 pop r15 + 2576: 0000 bkpt + 2578: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +0000257c : + if (NewState != DISABLE) + 257c: 3940 cmpnei r1, 0 + 257e: 106a lrw r3, 0x20000050 // 25a4 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2580: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 2582: 0c09 bf 0x2594 // 2594 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2584: 9260 ld.w r3, (r2, 0x0) + 2586: 6cc0 or r3, r0 + 2588: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 258a: 9262 ld.w r3, (r2, 0x8) + 258c: 68c0 and r3, r0 + 258e: 3b40 cmpnei r3, 0 + 2590: 0ffd bf 0x258a // 258a +} + 2592: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2594: 9261 ld.w r3, (r2, 0x4) + 2596: 6cc0 or r3, r0 + 2598: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 259a: 9262 ld.w r3, (r2, 0x8) + 259c: 68c0 and r3, r0 + 259e: 3b40 cmpnei r3, 0 + 25a0: 0bfd bt 0x259a // 259a + 25a2: 07f8 br 0x2592 // 2592 + 25a4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +000025a8 : +{ + 25a8: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 25aa: 3001 movi r0, 1 + 25ac: e3ffffd0 bsr 0x254c // 254c +} + 25b0: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000025b4 : +{ + 25b4: 14d0 push r15 + if (NewState != DISABLE) + 25b6: 3840 cmpnei r0, 0 + 25b8: 0c04 bf 0x25c0 // 25c0 + 25ba: e3ffffd1 bsr 0x255c // 255c +} + 25be: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 25c0: 3004 movi r0, 4 + 25c2: e3ffffc5 bsr 0x254c // 254c + while(ADC0->SR&ADC12_ADCENS); + 25c6: 1065 lrw r3, 0x20000050 // 25d8 + 25c8: 3280 movi r2, 128 + 25ca: 9320 ld.w r1, (r3, 0x0) + 25cc: 4241 lsli r2, r2, 1 + 25ce: 9168 ld.w r3, (r1, 0x20) + 25d0: 68c8 and r3, r2 + 25d2: 3b40 cmpnei r3, 0 + 25d4: 0bfd bt 0x25ce // 25ce + 25d6: 07f4 br 0x25be // 25be + 25d8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +000025dc : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 25dc: 1064 lrw r3, 0x20000050 // 25ec + 25de: 3202 movi r2, 2 + 25e0: 9320 ld.w r1, (r3, 0x0) + 25e2: 9168 ld.w r3, (r1, 0x20) + 25e4: 68c8 and r3, r2 + 25e6: 3b40 cmpnei r3, 0 + 25e8: 0ffd bf 0x25e2 // 25e2 +} + 25ea: 783c jmp r15 + 25ec: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +000025f0 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 25f0: 200f addi r0, 16 + 25f2: 1065 lrw r3, 0x20000050 // 2604 + 25f4: 3201 movi r2, 1 + 25f6: 9320 ld.w r1, (r3, 0x0) + 25f8: 7080 lsl r2, r0 + 25fa: 9168 ld.w r3, (r1, 0x20) + 25fc: 68c8 and r3, r2 + 25fe: 3b40 cmpnei r3, 0 + 2600: 0ffd bf 0x25fa // 25fa +} + 2602: 783c jmp r15 + 2604: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002608 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2608: 203f addi r0, 64 + 260a: 1064 lrw r3, 0x20000050 // 2618 + 260c: 4002 lsli r0, r0, 2 + 260e: 9360 ld.w r3, (r3, 0x0) + 2610: 600c addu r0, r3 + 2612: 9000 ld.w r0, (r0, 0x0) + 2614: 7401 zexth r0, r0 +} + 2616: 783c jmp r15 + 2618: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +0000261c : + //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 ) +{ + 261c: 14d4 push r4-r7, r15 + 261e: 1422 subi r14, r14, 8 + 2620: 1c08 addi r4, r14, 32 + 2622: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2624: 2d00 subi r5, 1 +{ + 2626: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2628: 10db lrw r6, 0x20000050 // 2694 +{ + 262a: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 262e: 45aa lsli r5, r5, 10 + 2630: 9680 ld.w r4, (r6, 0x0) + 2632: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 2634: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2636: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2638: 081c bt 0x2670 // 2670 + { + ADC0->MR&=~CONTCV; //one short mode + 263a: 9425 ld.w r1, (r4, 0x14) + 263c: 4121 lsli r1, r1, 1 + 263e: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 2640: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 2642: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 2644: 4002 lsli r0, r0, 2 + 2646: 9428 ld.w r1, (r4, 0x20) + 2648: 6840 and r1, r0 + 264a: 3940 cmpnei r1, 0 + 264c: 0bfd bt 0x2646 // 2646 + 264e: b861 st.w r3, (r14, 0x4) + 2650: b840 st.w r2, (r14, 0x0) + 2652: e3ffff85 bsr 0x255c // 255c + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 2656: 3f40 cmpnei r7, 0 + 2658: 9840 ld.w r2, (r14, 0x0) + 265a: 9861 ld.w r3, (r14, 0x4) + 265c: 0c16 bf 0x2688 // 2688 + { + ADC0->CR|=ADC12_10BITor12BIT; + 265e: 9600 ld.w r0, (r6, 0x0) + 2660: 9024 ld.w r1, (r0, 0x10) + 2662: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 2664: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 2666: 9620 ld.w r1, (r6, 0x0) + 2668: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 266a: b166 st.w r3, (r1, 0x18) +} + 266c: 1402 addi r14, r14, 8 + 266e: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2670: 3941 cmpnei r1, 1 + 2672: 0bee bt 0x264e // 264e + ADC0->MR|=CONTCV; //Continuous mode + 2674: 9425 ld.w r1, (r4, 0x14) + 2676: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 2678: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 267a: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 267c: 4002 lsli r0, r0, 2 + 267e: 9428 ld.w r1, (r4, 0x20) + 2680: 6840 and r1, r0 + 2682: 3940 cmpnei r1, 0 + 2684: 0ffd bf 0x267e // 267e + 2686: 07e4 br 0x264e // 264e + ADC0->CR&=~ADC12_10BITor12BIT; + 2688: 9600 ld.w r0, (r6, 0x0) + 268a: 9024 ld.w r1, (r0, 0x10) + 268c: 4121 lsli r1, r1, 1 + 268e: 4921 lsri r1, r1, 1 + 2690: 07ea br 0x2664 // 2664 + 2692: 0000 bkpt + 2694: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00002698 : +//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) + 2698: 3840 cmpnei r0, 0 + 269a: 0808 bt 0x26aa // 26aa + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 269c: 127c lrw r3, 0x20000050 // 280c + 269e: 123d lrw r1, 0x103c0 // 2810 + 26a0: 9340 ld.w r2, (r3, 0x0) + 26a2: 9264 ld.w r3, (r2, 0x10) + 26a4: 68c5 andn r3, r1 + 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); + 26a6: b264 st.w r3, (r2, 0x10) + } +} + 26a8: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 26aa: 3841 cmpnei r0, 1 + 26ac: 0810 bt 0x26cc // 26cc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26ae: 127a lrw r3, 0x2000004c // 2814 + 26b0: 32f0 movi r2, 240 + 26b2: 9320 ld.w r1, (r3, 0x0) + 26b4: 9160 ld.w r3, (r1, 0x0) + 26b6: 4244 lsli r2, r2, 4 + 26b8: 68c9 andn r3, r2 + 26ba: 3bab bseti r3, 11 + 26bc: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 26be: 1235 lrw r1, 0x103c0 // 2810 + 26c0: 1273 lrw r3, 0x20000050 // 280c + 26c2: 9340 ld.w r2, (r3, 0x0) + 26c4: 9264 ld.w r3, (r2, 0x10) + 26c6: 68c5 andn r3, r1 + 26c8: 3ba6 bseti r3, 6 + 26ca: 07ee br 0x26a6 // 26a6 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 26cc: 3842 cmpnei r0, 2 + 26ce: 0811 bt 0x26f0 // 26f0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26d0: 1271 lrw r3, 0x2000004c // 2814 + 26d2: 32f0 movi r2, 240 + 26d4: 9320 ld.w r1, (r3, 0x0) + 26d6: 9160 ld.w r3, (r1, 0x0) + 26d8: 4244 lsli r2, r2, 4 + 26da: 68c9 andn r3, r2 + 26dc: 3bab bseti r3, 11 + 26de: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 26e0: 122e lrw r1, 0x30103c0 // 2818 + 26e2: 126b lrw r3, 0x20000050 // 280c + 26e4: 9340 ld.w r2, (r3, 0x0) + 26e6: 9264 ld.w r3, (r2, 0x10) + 26e8: 68c5 andn r3, r1 + 26ea: 3ba7 bseti r3, 7 + 26ec: 3bb8 bseti r3, 24 + 26ee: 07dc br 0x26a6 // 26a6 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 26f0: 3843 cmpnei r0, 3 + 26f2: 0811 bt 0x2714 // 2714 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 26f4: 1268 lrw r3, 0x2000004c // 2814 + 26f6: 32f0 movi r2, 240 + 26f8: 9320 ld.w r1, (r3, 0x0) + 26fa: 9160 ld.w r3, (r1, 0x0) + 26fc: 4244 lsli r2, r2, 4 + 26fe: 68c9 andn r3, r2 + 2700: 3bab bseti r3, 11 + 2702: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 2704: 1225 lrw r1, 0x30103c0 // 2818 + 2706: 1262 lrw r3, 0x20000050 // 280c + 2708: 9340 ld.w r2, (r3, 0x0) + 270a: 9264 ld.w r3, (r2, 0x10) + 270c: 68c5 andn r3, r1 + 270e: 1224 lrw r1, 0x30000c0 // 281c + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2710: 6cc4 or r3, r1 + 2712: 07ca br 0x26a6 // 26a6 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 2714: 3845 cmpnei r0, 5 + 2716: 0809 bt 0x2728 // 2728 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2718: 117d lrw r3, 0x20000050 // 280c + 271a: 1222 lrw r1, 0x503c0 // 2820 + 271c: 9340 ld.w r2, (r3, 0x0) + 271e: 9264 ld.w r3, (r2, 0x10) + 2720: 68c5 andn r3, r1 + 2722: 3ba8 bseti r3, 8 + 2724: 3bb2 bseti r3, 18 + 2726: 07c0 br 0x26a6 // 26a6 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2728: 3846 cmpnei r0, 6 + 272a: 0812 bt 0x274e // 274e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 272c: 117a lrw r3, 0x2000004c // 2814 + 272e: 32f0 movi r2, 240 + 2730: 9320 ld.w r1, (r3, 0x0) + 2732: 9160 ld.w r3, (r1, 0x0) + 2734: 4248 lsli r2, r2, 8 + 2736: 68c9 andn r3, r2 + 2738: 32b0 movi r2, 176 + 273a: 4248 lsli r2, r2, 8 + 273c: 6cc8 or r3, r2 + 273e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2740: 1134 lrw r1, 0x103c0 // 2810 + 2742: 1173 lrw r3, 0x20000050 // 280c + 2744: 9340 ld.w r2, (r3, 0x0) + 2746: 9264 ld.w r3, (r2, 0x10) + 2748: 68c5 andn r3, r1 + 274a: 3ba9 bseti r3, 9 + 274c: 07ad br 0x26a6 // 26a6 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 274e: 3847 cmpnei r0, 7 + 2750: 0819 bt 0x2782 // 2782 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2752: 1171 lrw r3, 0x2000004c // 2814 + 2754: 31f0 movi r1, 240 + 2756: 9340 ld.w r2, (r3, 0x0) + 2758: 9260 ld.w r3, (r2, 0x0) + 275a: 4128 lsli r1, r1, 8 + 275c: 68c5 andn r3, r1 + 275e: 31b0 movi r1, 176 + 2760: 4128 lsli r1, r1, 8 + 2762: 6cc4 or r3, r1 + 2764: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2766: 31f0 movi r1, 240 + 2768: 9260 ld.w r3, (r2, 0x0) + 276a: 4124 lsli r1, r1, 4 + 276c: 68c5 andn r3, r1 + 276e: 3bab bseti r3, 11 + 2770: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 2772: 1128 lrw r1, 0x103c0 // 2810 + 2774: 1166 lrw r3, 0x20000050 // 280c + 2776: 9340 ld.w r2, (r3, 0x0) + 2778: 9264 ld.w r3, (r2, 0x10) + 277a: 68c5 andn r3, r1 + 277c: 3ba6 bseti r3, 6 + 277e: 3ba9 bseti r3, 9 + 2780: 0793 br 0x26a6 // 26a6 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 2782: 3848 cmpnei r0, 8 + 2784: 0818 bt 0x27b4 // 27b4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2786: 1164 lrw r3, 0x2000004c // 2814 + 2788: 31f0 movi r1, 240 + 278a: 9340 ld.w r2, (r3, 0x0) + 278c: 9260 ld.w r3, (r2, 0x0) + 278e: 4128 lsli r1, r1, 8 + 2790: 68c5 andn r3, r1 + 2792: 31b0 movi r1, 176 + 2794: 4128 lsli r1, r1, 8 + 2796: 6cc4 or r3, r1 + 2798: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 279a: 31f0 movi r1, 240 + 279c: 9260 ld.w r3, (r2, 0x0) + 279e: 4124 lsli r1, r1, 4 + 27a0: 68c5 andn r3, r1 + 27a2: 3bab bseti r3, 11 + 27a4: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 27a6: 103d lrw r1, 0x30103c0 // 2818 + 27a8: 1079 lrw r3, 0x20000050 // 280c + 27aa: 9340 ld.w r2, (r3, 0x0) + 27ac: 9264 ld.w r3, (r2, 0x10) + 27ae: 68c5 andn r3, r1 + 27b0: 103d lrw r1, 0x1000280 // 2824 + 27b2: 07af br 0x2710 // 2710 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 27b4: 3849 cmpnei r0, 9 + 27b6: 0818 bt 0x27e6 // 27e6 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27b8: 1077 lrw r3, 0x2000004c // 2814 + 27ba: 31f0 movi r1, 240 + 27bc: 9340 ld.w r2, (r3, 0x0) + 27be: 9260 ld.w r3, (r2, 0x0) + 27c0: 4128 lsli r1, r1, 8 + 27c2: 68c5 andn r3, r1 + 27c4: 31b0 movi r1, 176 + 27c6: 4128 lsli r1, r1, 8 + 27c8: 6cc4 or r3, r1 + 27ca: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27cc: 31f0 movi r1, 240 + 27ce: 9260 ld.w r3, (r2, 0x0) + 27d0: 4124 lsli r1, r1, 4 + 27d2: 68c5 andn r3, r1 + 27d4: 3bab bseti r3, 11 + 27d6: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 27d8: 1030 lrw r1, 0x30103c0 // 2818 + 27da: 106d lrw r3, 0x20000050 // 280c + 27dc: 9340 ld.w r2, (r3, 0x0) + 27de: 9264 ld.w r3, (r2, 0x10) + 27e0: 68c5 andn r3, r1 + 27e2: 1032 lrw r1, 0x30002c0 // 2828 + 27e4: 0796 br 0x2710 // 2710 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 27e6: 384b cmpnei r0, 11 + 27e8: 0b60 bt 0x26a8 // 26a8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27ea: 106b lrw r3, 0x2000004c // 2814 + 27ec: 32f0 movi r2, 240 + 27ee: 9320 ld.w r1, (r3, 0x0) + 27f0: 9160 ld.w r3, (r1, 0x0) + 27f2: 4248 lsli r2, r2, 8 + 27f4: 68c9 andn r3, r2 + 27f6: 32b0 movi r2, 176 + 27f8: 4248 lsli r2, r2, 8 + 27fa: 6cc8 or r3, r2 + 27fc: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 27fe: 1029 lrw r1, 0x503c0 // 2820 + 2800: 1063 lrw r3, 0x20000050 // 280c + 2802: 9340 ld.w r2, (r3, 0x0) + 2804: 9264 ld.w r3, (r2, 0x10) + 2806: 68c5 andn r3, r1 + 2808: 1029 lrw r1, 0x40300 // 282c + 280a: 0783 br 0x2710 // 2710 + 280c: 20000050 .long 0x20000050 + 2810: 000103c0 .long 0x000103c0 + 2814: 2000004c .long 0x2000004c + 2818: 030103c0 .long 0x030103c0 + 281c: 030000c0 .long 0x030000c0 + 2820: 000503c0 .long 0x000503c0 + 2824: 01000280 .long 0x01000280 + 2828: 030002c0 .long 0x030002c0 + 282c: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002830 : +//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) +{ + 2830: 14d4 push r4-r7, r15 + 2832: 1421 subi r14, r14, 4 + 2834: b840 st.w r2, (r14, 0x0) + 2836: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2838: 125b lrw r2, 0x20000050 // 29a4 + 283a: 92c0 ld.w r6, (r2, 0x0) + 283c: 3200 movi r2, 0 + 283e: 4202 lsli r0, r2, 2 + 2840: 6018 addu r0, r6 + 2842: 908c ld.w r4, (r0, 0x30) + 2844: 2200 addi r2, 1 + 2846: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2848: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 284a: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 284c: 0bf9 bt 0x283e // 283e + } + switch(ADC12_ADCINX) + 284e: 3d0f cmphsi r5, 16 + 2850: 0825 bt 0x289a // 289a + 2852: 6c17 mov r0, r5 + 2854: 1255 lrw r2, 0x2000004c // 29a8 + 2856: 1296 lrw r4, 0x20000048 // 29ac + 2858: e3fff252 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 285c: 322c1408 .long 0x322c1408 + 2860: 4d474039 .long 0x4d474039 + 2864: 756d6559 .long 0x756d6559 + 2868: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 286c: 9240 ld.w r2, (r2, 0x0) + 286e: 9200 ld.w r0, (r2, 0x0) + 2870: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2872: 9201 ld.w r0, (r2, 0x4) + 2874: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 2876: 9400 ld.w r0, (r4, 0x0) + 2878: 9040 ld.w r2, (r0, 0x0) + 287a: 34f0 movi r4, 240 + 287c: 6891 andn r2, r4 + 287e: 3aa4 bseti r2, 4 + 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; + 2880: b040 st.w r2, (r0, 0x0) + break; + 2882: 040c br 0x289a // 289a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2884: 9200 ld.w r0, (r2, 0x0) + 2886: 9040 ld.w r2, (r0, 0x0) + 2888: 370f movi r7, 15 + 288a: 689d andn r2, r7 + 288c: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 288e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2890: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2892: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2894: 9440 ld.w r2, (r4, 0x0) + 2896: 9200 ld.w r0, (r2, 0x0) + 2898: b200 st.w r0, (r2, 0x0) + 289a: 4362 lsli r3, r3, 2 + 289c: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 289e: 966c ld.w r3, (r6, 0x30) + 28a0: 3300 movi r3, 0 + 28a2: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 28a4: 9860 ld.w r3, (r14, 0x0) + 28a6: 6c4c or r1, r3 + 28a8: 964c ld.w r2, (r6, 0x30) + 28aa: 6d44 or r5, r1 + 28ac: 6d48 or r5, r2 + 28ae: b6ac st.w r5, (r6, 0x30) +} + 28b0: 1401 addi r14, r14, 4 + 28b2: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 28b4: 9200 ld.w r0, (r2, 0x0) + 28b6: 9040 ld.w r2, (r0, 0x0) + 28b8: 37f0 movi r7, 240 + 28ba: 689d andn r2, r7 + 28bc: 3aa4 bseti r2, 4 + 28be: 07e8 br 0x288e // 288e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 28c0: 9200 ld.w r0, (r2, 0x0) + 28c2: 37f0 movi r7, 240 + 28c4: 9040 ld.w r2, (r0, 0x0) + 28c6: 47e8 lsli r7, r7, 8 + 28c8: 689d andn r2, r7 + 28ca: 3aac bseti r2, 12 + 28cc: 07e1 br 0x288e // 288e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 28ce: 9200 ld.w r0, (r2, 0x0) + 28d0: 37f0 movi r7, 240 + 28d2: 9040 ld.w r2, (r0, 0x0) + 28d4: 47f0 lsli r7, r7, 16 + 28d6: 689d andn r2, r7 + 28d8: 3ab4 bseti r2, 20 + 28da: 07da br 0x288e // 288e + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 28dc: 9200 ld.w r0, (r2, 0x0) + 28de: 37f0 movi r7, 240 + 28e0: 9040 ld.w r2, (r0, 0x0) + 28e2: 47f4 lsli r7, r7, 20 + 28e4: 689d andn r2, r7 + 28e6: 3ab8 bseti r2, 24 + 28e8: 07d3 br 0x288e // 288e + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28ea: 9200 ld.w r0, (r2, 0x0) + 28ec: 9040 ld.w r2, (r0, 0x0) + 28ee: 4244 lsli r2, r2, 4 + 28f0: 4a44 lsri r2, r2, 4 + 28f2: 3abc bseti r2, 28 + 28f4: 07cd br 0x288e // 288e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 28f6: 9240 ld.w r2, (r2, 0x0) + 28f8: 9200 ld.w r0, (r2, 0x0) + 28fa: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28fc: 9201 ld.w r0, (r2, 0x4) + 28fe: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2900: 9400 ld.w r0, (r4, 0x0) + 2902: 34f0 movi r4, 240 + 2904: 9040 ld.w r2, (r0, 0x0) + 2906: 4484 lsli r4, r4, 4 + 2908: 6891 andn r2, r4 + 290a: 3aa8 bseti r2, 8 + 290c: 07ba br 0x2880 // 2880 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 290e: 9240 ld.w r2, (r2, 0x0) + 2910: 9200 ld.w r0, (r2, 0x0) + 2912: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2914: 9201 ld.w r0, (r2, 0x4) + 2916: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2918: 9400 ld.w r0, (r4, 0x0) + 291a: 34f0 movi r4, 240 + 291c: 9040 ld.w r2, (r0, 0x0) + 291e: 4488 lsli r4, r4, 8 + 2920: 6891 andn r2, r4 + 2922: 3aac bseti r2, 12 + 2924: 07ae br 0x2880 // 2880 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 2926: 9200 ld.w r0, (r2, 0x0) + 2928: 9040 ld.w r2, (r0, 0x0) + 292a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 292c: 9041 ld.w r2, (r0, 0x4) + 292e: 370f movi r7, 15 + 2930: 689d andn r2, r7 + 2932: 3aa0 bseti r2, 0 + 2934: 07af br 0x2892 // 2892 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2936: 9200 ld.w r0, (r2, 0x0) + 2938: 9040 ld.w r2, (r0, 0x0) + 293a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 293c: 9041 ld.w r2, (r0, 0x4) + 293e: 37f0 movi r7, 240 + 2940: 689d andn r2, r7 + 2942: 3aa4 bseti r2, 4 + 2944: 07a7 br 0x2892 // 2892 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2946: 9200 ld.w r0, (r2, 0x0) + 2948: 9040 ld.w r2, (r0, 0x0) + 294a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 294c: 37f0 movi r7, 240 + 294e: 9041 ld.w r2, (r0, 0x4) + 2950: 47e4 lsli r7, r7, 4 + 2952: 689d andn r2, r7 + 2954: 3aa8 bseti r2, 8 + 2956: 079e br 0x2892 // 2892 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2958: 9200 ld.w r0, (r2, 0x0) + 295a: 9040 ld.w r2, (r0, 0x0) + 295c: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 295e: 37f0 movi r7, 240 + 2960: 9041 ld.w r2, (r0, 0x4) + 2962: 47e8 lsli r7, r7, 8 + 2964: 689d andn r2, r7 + 2966: 3aac bseti r2, 12 + 2968: 0795 br 0x2892 // 2892 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 296a: 9200 ld.w r0, (r2, 0x0) + 296c: 9040 ld.w r2, (r0, 0x0) + 296e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2970: 37f0 movi r7, 240 + 2972: 9041 ld.w r2, (r0, 0x4) + 2974: 47ec lsli r7, r7, 12 + 2976: 689d andn r2, r7 + 2978: 3ab0 bseti r2, 16 + 297a: 078c br 0x2892 // 2892 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 297c: 9200 ld.w r0, (r2, 0x0) + 297e: 9040 ld.w r2, (r0, 0x0) + 2980: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2982: 37f0 movi r7, 240 + 2984: 9041 ld.w r2, (r0, 0x4) + 2986: 47f0 lsli r7, r7, 16 + 2988: 689d andn r2, r7 + 298a: 3ab4 bseti r2, 20 + 298c: 0783 br 0x2892 // 2892 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 298e: 9240 ld.w r2, (r2, 0x0) + 2990: 9200 ld.w r0, (r2, 0x0) + 2992: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2994: 9201 ld.w r0, (r2, 0x4) + 2996: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2998: 9400 ld.w r0, (r4, 0x0) + 299a: 9040 ld.w r2, (r0, 0x0) + 299c: 340f movi r4, 15 + 299e: 6891 andn r2, r4 + 29a0: 3aa0 bseti r2, 0 + 29a2: 076f br 0x2880 // 2880 + 29a4: 20000050 .long 0x20000050 + 29a8: 2000004c .long 0x2000004c + 29ac: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +000029b0 : + 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) +{ + 29b0: 14c4 push r4-r7 + 29b2: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 29b4: 1165 lrw r3, 0x20000060 // 2a48 + 29b6: 1186 lrw r4, 0x5a5a5a5a // 2a4c + 29b8: 9360 ld.w r3, (r3, 0x0) + 29ba: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 29bc: 3407 movi r4, 7 + 29be: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29c0: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 29c2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29c4: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29c6: 9384 ld.w r4, (r3, 0x10) + 29c8: 3c40 cmpnei r4, 0 + 29ca: 0bfe bt 0x29c6 // 29c6 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 29cc: 2102 addi r1, 3 + 29ce: 4922 lsri r1, r1, 2 + 29d0: 4122 lsli r1, r1, 2 + 29d2: 6048 addu r1, r2 + 29d4: b820 st.w r1, (r14, 0x0) + 29d6: 5829 subu r1, r0, r2 + 29d8: b821 st.w r1, (r14, 0x4) + 29da: 9820 ld.w r1, (r14, 0x0) + 29dc: 644a cmpne r2, r1 + 29de: 0826 bt 0x2a2a // 2a2a + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 29e0: 3106 movi r1, 6 + SetUserKey; + 29e2: 105b lrw r2, 0x5a5a5a5a // 2a4c + 29e4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 29e6: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 29e8: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 29ea: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29ec: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 29ee: 9324 ld.w r1, (r3, 0x10) + 29f0: 3940 cmpnei r1, 0 + 29f2: 0bfe bt 0x29ee // 29ee + //Perform pre-programming 4 + SetUserKey; + 29f4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 29f6: 3201 movi r2, 1 + 29f8: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 29fa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 29fc: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 29fe: 934a ld.w r2, (r3, 0x28) + 2a00: 3a44 cmpnei r2, 4 + 2a02: 0bfe bt 0x29fe // 29fe + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2a04: 3102 movi r1, 2 + SetUserKey; + 2a06: 1052 lrw r2, 0x5a5a5a5a // 2a4c + 2a08: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2a0a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a0c: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a0e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a10: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a12: 932a ld.w r1, (r3, 0x28) + 2a14: 3941 cmpnei r1, 1 + 2a16: 0bfe bt 0x2a12 // 2a12 + //Write page cache data to flash memory 6 + SetUserKey; + 2a18: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a1a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a1c: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a1e: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a20: 934a ld.w r2, (r3, 0x28) + 2a22: 3a42 cmpnei r2, 2 + 2a24: 0bfe bt 0x2a20 // 2a20 +} + 2a26: 1402 addi r14, r14, 8 + 2a28: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a2a: 82e0 ld.b r7, (r2, 0x0) + 2a2c: 8281 ld.b r4, (r2, 0x1) + 2a2e: 4488 lsli r4, r4, 8 + 2a30: 8222 ld.b r1, (r2, 0x2) + 2a32: 611c addu r4, r7 + 2a34: 82a3 ld.b r5, (r2, 0x3) + 2a36: 4130 lsli r1, r1, 16 + 2a38: 98c1 ld.w r6, (r14, 0x4) + 2a3a: 6050 addu r1, r4 + 2a3c: 45b8 lsli r5, r5, 24 + 2a3e: 6188 addu r6, r2 + 2a40: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2a42: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2a44: 2203 addi r2, 4 + 2a46: 07ca br 0x29da // 29da + 2a48: 20000060 .long 0x20000060 + 2a4c: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002a50 : +//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) +{ + 2a50: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2a5c: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2a5e: 3b40 cmpnei r3, 0 + 2a60: 0c06 bf 0x2a6c // 2a6c + 2a62: 6d0f mov r4, r3 + 2a64: 6914 and r4, r5 + 2a66: 3c40 cmpnei r4, 0 + 2a68: 0802 bt 0x2a6c // 2a6c + RdStartAdd +=4; + 2a6a: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2a6c: 6d0f mov r4, r3 + 2a6e: 6914 and r4, r5 + 2a70: 6100 addu r4, r0 + 2a72: 8480 ld.b r4, (r4, 0x0) + 2a74: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002a7c : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2a7c: 33f8 movi r3, 248 + 2a7e: 4366 lsli r3, r3, 6 + 2a80: 115b lrw r2, 0x20000260 // 2b6c + 2a82: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a84: 3246 movi r2, 70 + 2a86: 117b lrw r3, 0x20000266 // 2b70 + 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 + 2a88: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2a8a: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2a8c: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2a8e: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2a90: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2a92: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2a94: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2a96: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2a98: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2a9a: 1157 lrw r2, 0x20000450 // 2b74 + 2a9c: 8a22 ld.h r1, (r2, 0x4) + 2a9e: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2aa0: 8a23 ld.h r1, (r2, 0x6) + 2aa2: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2aa4: 8a24 ld.h r1, (r2, 0x8) + 2aa6: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2aa8: 8a25 ld.h r1, (r2, 0xa) + 2aaa: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2aac: 8a26 ld.h r1, (r2, 0xc) + 2aae: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2ab0: 3146 movi r1, 70 + 2ab2: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2ab4: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2ab6: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ab8: 3128 movi r1, 40 + 2aba: 1170 lrw r3, 0x2000028a // 2b78 + 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 + 2abc: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2abe: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2ac0: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2ac2: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2ac4: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2ac6: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2ac8: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2aca: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2acc: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2ace: 8a27 ld.h r1, (r2, 0xe) + 2ad0: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2ad2: 8a28 ld.h r1, (r2, 0x10) + 2ad4: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2ad6: 8a29 ld.h r1, (r2, 0x12) + 2ad8: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2ada: 8a2a ld.h r1, (r2, 0x14) + 2adc: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2ade: 8a2b ld.h r1, (r2, 0x16) + 2ae0: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2ae2: 3128 movi r1, 40 + 2ae4: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2ae6: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2ae8: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2aea: 8220 ld.b r1, (r2, 0x0) + 2aec: 1164 lrw r3, 0x20000230 // 2b7c + 2aee: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2af0: 8221 ld.b r1, (r2, 0x1) + 2af2: 1164 lrw r3, 0x20000238 // 2b80 + 2af4: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2af6: 3101 movi r1, 1 + 2af8: 1163 lrw r3, 0x20000239 // 2b84 + 2afa: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2afc: 3100 movi r1, 0 + 2afe: 1163 lrw r3, 0x2000025c // 2b88 + 2b00: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2b02: 3106 movi r1, 6 + 2b04: 1162 lrw r3, 0x20000264 // 2b8c + 2b06: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2b08: 8223 ld.b r1, (r2, 0x3) + 2b0a: 1162 lrw r3, 0x2000025d // 2b90 + 2b0c: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b0e: 9246 ld.w r2, (r2, 0x18) + 2b10: 1161 lrw r3, 0x20000234 // 2b94 + 2b12: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b14: 1141 lrw r2, 0xea5f // 2b98 + 2b16: 1162 lrw r3, 0x200002b0 // 2b9c + 2b18: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b1a: 3200 movi r2, 0 + 2b1c: 1161 lrw r3, 0x20000231 // 2ba0 + 2b1e: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b20: 3202 movi r2, 2 + 2b22: 1161 lrw r3, 0x20000232 // 2ba4 + 2b24: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b26: 3232 movi r2, 50 + 2b28: 1160 lrw r3, 0x20000288 // 2ba8 + 2b2a: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b2c: 3200 movi r2, 0 + 2b2e: 1160 lrw r3, 0x200002b4 // 2bac + 2b30: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b32: 3201 movi r2, 1 + 2b34: 107f lrw r3, 0x200002ae // 2bb0 + 2b36: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b38: 3202 movi r2, 2 + 2b3a: 107f lrw r3, 0x200002ac // 2bb4 + 2b3c: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b3e: 3204 movi r2, 4 + 2b40: 107e lrw r3, 0x2000023a // 2bb8 + 2b42: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2b44: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2b46: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2b48: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2b4a: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2b4c: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2b4e: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2b50: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2b52: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2b54: 3207 movi r2, 7 + 2b56: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2b58: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2b5a: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2b5c: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2b5e: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2b60: 3204 movi r2, 4 + 2b62: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2b64: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2b66: ab50 st.h r2, (r3, 0x20) + 2b68: 783c jmp r15 + 2b6a: 0000 bkpt + 2b6c: 20000260 .long 0x20000260 + 2b70: 20000266 .long 0x20000266 + 2b74: 20000450 .long 0x20000450 + 2b78: 2000028a .long 0x2000028a + 2b7c: 20000230 .long 0x20000230 + 2b80: 20000238 .long 0x20000238 + 2b84: 20000239 .long 0x20000239 + 2b88: 2000025c .long 0x2000025c + 2b8c: 20000264 .long 0x20000264 + 2b90: 2000025d .long 0x2000025d + 2b94: 20000234 .long 0x20000234 + 2b98: 0000ea5f .long 0x0000ea5f + 2b9c: 200002b0 .long 0x200002b0 + 2ba0: 20000231 .long 0x20000231 + 2ba4: 20000232 .long 0x20000232 + 2ba8: 20000288 .long 0x20000288 + 2bac: 200002b4 .long 0x200002b4 + 2bb0: 200002ae .long 0x200002ae + 2bb4: 200002ac .long 0x200002ac + 2bb8: 2000023a .long 0x2000023a + +Disassembly of section .text.CORET_DeInit: + +00002bbc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2bbc: 1065 lrw r3, 0x20000064 // 2bd0 + 2bbe: 3204 movi r2, 4 + 2bc0: 9360 ld.w r3, (r3, 0x0) + 2bc2: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2bc4: 3200 movi r2, 0 + 2bc6: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2bc8: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2bca: b347 st.w r2, (r3, 0x1c) +} + 2bcc: 783c jmp r15 + 2bce: 0000 bkpt + 2bd0: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002bd4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2bd4: 1064 lrw r3, 0x20000064 // 2be4 + 2bd6: 3200 movi r2, 0 + 2bd8: 9360 ld.w r3, (r3, 0x0) + 2bda: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2bdc: 3201 movi r2, 1 + 2bde: 1063 lrw r3, 0xe000e100 // 2be8 + 2be0: b340 st.w r2, (r3, 0x0) +} + 2be2: 783c jmp r15 + 2be4: 20000064 .long 0x20000064 + 2be8: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002bec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2bec: 1063 lrw r3, 0x20000064 // 2bf8 + 2bee: 9340 ld.w r2, (r3, 0x0) + 2bf0: 9264 ld.w r3, (r2, 0x10) + 2bf2: 3ba0 bseti r3, 0 + 2bf4: b264 st.w r3, (r2, 0x10) +} + 2bf6: 783c jmp r15 + 2bf8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002bfc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2bfc: 1063 lrw r3, 0x20000064 // 2c08 + 2bfe: 9340 ld.w r2, (r3, 0x0) + 2c00: 9264 ld.w r3, (r2, 0x10) + 2c02: 3b82 bclri r3, 2 + 2c04: b264 st.w r3, (r2, 0x10) +} + 2c06: 783c jmp r15 + 2c08: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c0c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c0c: 1063 lrw r3, 0x20000064 // 2c18 + 2c0e: 9340 ld.w r2, (r3, 0x0) + 2c10: 9264 ld.w r3, (r2, 0x10) + 2c12: 3ba1 bseti r3, 1 + 2c14: b264 st.w r3, (r2, 0x10) +} + 2c16: 783c jmp r15 + 2c18: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c1c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c1c: 1063 lrw r3, 0x20000064 // 2c28 + 2c1e: 3200 movi r2, 0 + 2c20: 9360 ld.w r3, (r3, 0x0) + 2c22: b346 st.w r2, (r3, 0x18) +} + 2c24: 783c jmp r15 + 2c26: 0000 bkpt + 2c28: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c2c
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c2c: 14d0 push r15 +// delay_nms(20000); + + APT32F102_init(); //102 initial + 2c2e: e00000d5 bsr 0x2dd8 // 2dd8 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c32: 1071 lrw r3, 0x200004a0 // 2c74 + 2c34: 8340 ld.b r2, (r3, 0x0) + 2c36: 1031 lrw r1, 0x8acc // 2c78 + 2c38: 3000 movi r0, 0 + 2c3a: e000079b bsr 0x3b70 // 3b70 + + TemCtrl_Init(); + 2c3e: e00019f7 bsr 0x602c // 602c + DisPlay_Init(); + 2c42: e0001f41 bsr 0x6ac4 // 6ac4 + Debug_Init(); + 2c46: e00021ed bsr 0x7020 // 7020 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2c4a: e3fff83f bsr 0x1cc8 // 1cc8 + + UART2_TASK(); + 2c4e: e00006eb bsr 0x3a24 // 3a24 + + Touch_Key_Task(); + 2c52: e00008f9 bsr 0x3e44 // 3e44 + + TemCtrl_Pro(); + 2c56: e0001ba7 bsr 0x63a4 // 63a4 + + DisPlay_Task(); + 2c5a: e0001ff1 bsr 0x6c3c // 6c3c + + HT1621_Refresh_Task(); + 2c5e: e000199f bsr 0x5f9c // 5f9c + + ADC_Sample_Task(); + 2c62: e0000e95 bsr 0x498c // 498c + + Debug_Task(); + 2c66: e0002247 bsr 0x70f4 // 70f4 + + RLY_Direct_Control(); + 2c6a: e00022e3 bsr 0x7230 // 7230 + + Tm1812_Task(); + 2c6e: e00013ed bsr 0x5448 // 5448 + 2c72: 07ec br 0x2c4a // 2c4a + 2c74: 200004a0 .long 0x200004a0 + 2c78: 00008acc .long 0x00008acc + +Disassembly of section .text.delay_nms: + +00002c7c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2c7c: 14d0 push r15 + 2c7e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2c80: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2c82: 3300 movi r3, 0 + j = 50* t; + 2c84: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2c86: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2c88: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2c8a: b860 st.w r3, (r14, 0x0) + 2c8c: 9840 ld.w r2, (r14, 0x0) + 2c8e: 9861 ld.w r3, (r14, 0x4) + 2c90: 64c8 cmphs r2, r3 + 2c92: 0c03 bf 0x2c98 // 2c98 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2c94: 1403 addi r14, r14, 12 + 2c96: 1490 pop r15 + k++; + 2c98: 9862 ld.w r3, (r14, 0x8) + 2c9a: 2300 addi r3, 1 + 2c9c: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2c9e: e3fff815 bsr 0x1cc8 // 1cc8 + for ( i = 0; i < j; i++ ) + 2ca2: 9860 ld.w r3, (r14, 0x0) + 2ca4: 2300 addi r3, 1 + 2ca6: 07f2 br 0x2c8a // 2c8a + +Disassembly of section .text.delay_nus: + +00002ca8 : +void delay_nus(unsigned int t) +{ + 2ca8: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2caa: 3300 movi r3, 0 + 2cac: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2cae: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cb0: b860 st.w r3, (r14, 0x0) + 2cb2: 9840 ld.w r2, (r14, 0x0) + 2cb4: 9861 ld.w r3, (r14, 0x4) + 2cb6: 64c8 cmphs r2, r3 + 2cb8: 0c03 bf 0x2cbe // 2cbe + { + k++; + } +} + 2cba: 1403 addi r14, r14, 12 + 2cbc: 783c jmp r15 + k++; + 2cbe: 9862 ld.w r3, (r14, 0x8) + 2cc0: 2300 addi r3, 1 + 2cc2: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2cc4: 9860 ld.w r3, (r14, 0x0) + 2cc6: 2300 addi r3, 1 + 2cc8: 07f4 br 0x2cb0 // 2cb0 + +Disassembly of section .text.GPIO_CONFIG: + +00002ccc : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 2ccc: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 2cce: 1091 lrw r4, 0x2000004c // 2d10 + 2cd0: 310e movi r1, 14 + 2cd2: 9400 ld.w r0, (r4, 0x0) + 2cd4: e3fff926 bsr 0x1f20 // 1f20 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 2cd8: 320e movi r2, 14 + 2cda: 310e movi r1, 14 + 2cdc: 3000 movi r0, 0 + 2cde: e3fff933 bsr 0x1f44 // 1f44 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 2ce2: 300e movi r0, 14 + 2ce4: e3fff9b6 bsr 0x2050 // 2050 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 2ce8: 3180 movi r1, 128 + 2cea: 3200 movi r2, 0 + 2cec: 4127 lsli r1, r1, 7 + 2cee: 3001 movi r0, 1 + 2cf0: e3fff82e bsr 0x1d4c // 1d4c + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 2cf4: 3180 movi r1, 128 + 2cf6: 4127 lsli r1, r1, 7 + 2cf8: 3001 movi r0, 1 + 2cfa: e3fff849 bsr 0x1d8c // 1d8c + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 2cfe: 3180 movi r1, 128 + 2d00: 9400 ld.w r0, (r4, 0x0) + 2d02: 4127 lsli r1, r1, 7 + 2d04: e3fff85e bsr 0x1dc0 // 1dc0 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 2d08: e3fff85e bsr 0x1dc4 // 1dc4 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 2d0c: 1491 pop r4, r15 + 2d0e: 0000 bkpt + 2d10: 2000004c .long 0x2000004c + +Disassembly of section .text.BT_CONFIG: + +00002d14 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2d14: 14d2 push r4-r5, r15 + 2d16: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2d18: 1095 lrw r4, 0x20000008 // 2d6c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d1a: 3500 movi r5, 0 + BT_DeInit(BT1); + 2d1c: 9400 ld.w r0, (r4, 0x0) + 2d1e: e3fffa3d bsr 0x2198 // 2198 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2d22: 9400 ld.w r0, (r4, 0x0) + 2d24: b8a1 st.w r5, (r14, 0x4) + 2d26: b8a0 st.w r5, (r14, 0x0) + 2d28: 3308 movi r3, 8 + 2d2a: 3200 movi r2, 0 + 2d2c: 3101 movi r1, 1 + 2d2e: e3fffa4c bsr 0x21c6 // 21c6 + 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); + 2d32: 3380 movi r3, 128 + 2d34: 4363 lsli r3, r3, 3 + 2d36: b861 st.w r3, (r14, 0x4) + 2d38: 9400 ld.w r0, (r4, 0x0) + 2d3a: 3300 movi r3, 0 + 2d3c: b8a3 st.w r5, (r14, 0xc) + 2d3e: b8a2 st.w r5, (r14, 0x8) + 2d40: b8a0 st.w r5, (r14, 0x0) + 2d42: 3200 movi r2, 0 + 2d44: 3180 movi r1, 128 + 2d46: e3fffa4c bsr 0x21de // 21de + BT_Period_CMP_Write(BT1,4780,1); + 2d4a: 3201 movi r2, 1 + 2d4c: 1029 lrw r1, 0x12ac // 2d70 + 2d4e: 9400 ld.w r0, (r4, 0x0) + 2d50: e3fffa5d bsr 0x220a // 220a + BT_Start(BT1); + 2d54: 9400 ld.w r0, (r4, 0x0) + 2d56: e3fffa2f bsr 0x21b4 // 21b4 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2d5a: 9400 ld.w r0, (r4, 0x0) + 2d5c: 3202 movi r2, 2 + 2d5e: 3101 movi r1, 1 + 2d60: e3fffa58 bsr 0x2210 // 2210 + BT1_INT_ENABLE(); + 2d64: e3fffa60 bsr 0x2224 // 2224 + +} + 2d68: 1404 addi r14, r14, 16 + 2d6a: 1492 pop r4-r5, r15 + 2d6c: 20000008 .long 0x20000008 + 2d70: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002d74 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2d74: 14d0 push r15 + 2d76: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2d78: e3fff6f4 bsr 0x1b60 // 1b60 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2d7c: 3101 movi r1, 1 + 2d7e: 3001 movi r0, 1 + 2d80: e3fff716 bsr 0x1bac // 1bac + //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 + 2d84: 3000 movi r0, 0 + 2d86: e3fff76f bsr 0x1c64 // 1c64 + 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 + 2d8a: 3180 movi r1, 128 + 2d8c: 3308 movi r3, 8 + 2d8e: 3200 movi r2, 0 + 2d90: 4121 lsli r1, r1, 1 + 2d92: 3002 movi r0, 2 + 2d94: e3fff724 bsr 0x1bdc // 1bdc +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2d98: 30c0 movi r0, 192 + 2d9a: 3118 movi r1, 24 + 2d9c: 4002 lsli r0, r0, 2 + 2d9e: e3fff79f bsr 0x1cdc // 1cdc + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2da2: 3001 movi r0, 1 + 2da4: e3fff774 bsr 0x1c8c // 1c8c + SYSCON_IWDCNT_Reload(); //reload WDT + 2da8: e3fff790 bsr 0x1cc8 // 1cc8 + IWDT_Int_Enable(); + 2dac: e3fff7c2 bsr 0x1d30 // 1d30 + //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 + 2db0: 3340 movi r3, 64 + 2db2: b860 st.w r3, (r14, 0x0) + 2db4: 31c0 movi r1, 192 + 2db6: 3380 movi r3, 128 + 2db8: 4364 lsli r3, r3, 4 + 2dba: 3200 movi r2, 0 + 2dbc: 4123 lsli r1, r1, 3 + 2dbe: 3000 movi r0, 0 + 2dc0: e3fff79a bsr 0x1cf4 // 1cf4 + LVD_Int_Enable(); + 2dc4: e3fff7a8 bsr 0x1d14 // 1d14 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2dc8: e3fff806 bsr 0x1dd4 // 1dd4 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2dcc: 3000 movi r0, 0 + 2dce: e0002ae1 bsr 0x8390 // 8390 + +} + 2dd2: 1401 addi r14, r14, 4 + 2dd4: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002dd8 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2dd8: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2dda: 107d lrw r3, 0x2000005c // 2e4c + Sys_RSR = 0x00000000; + 2ddc: 105d lrw r2, 0x200000ac // 2e50 + 2dde: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2de0: 9360 ld.w r3, (r3, 0x0) + 2de2: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2de4: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2de6: 600c addu r0, r3 + 2de8: 9004 ld.w r0, (r0, 0x10) + 2dea: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2dec: 105a lrw r2, 0x200000a8 // 2e54 + 2dee: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2df0: 3180 movi r1, 128 + 2df2: 4121 lsli r1, r1, 1 + 2df4: 604c addu r1, r3 + 2df6: 9120 ld.w r1, (r1, 0x0) + 2df8: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2dfa: 1058 lrw r2, 0xfffffff // 2e58 + 2dfc: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2dfe: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2e00: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2e02: 934c ld.w r2, (r3, 0x30) + 2e04: 6884 and r2, r1 + 2e06: 3a40 cmpnei r2, 0 + 2e08: 0ffd bf 0x2e02 // 2e02 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2e0a: e3ffffb5 bsr 0x2d74 // 2d74 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2e0e: e0000543 bsr 0x3894 // 3894 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2e12: e3fff7ed bsr 0x1dec // 1dec + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2e16: 3101 movi r1, 1 + 2e18: 300f movi r0, 15 + 2e1a: e3fff7fb bsr 0x1e10 // 1e10 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2e1e: 3102 movi r1, 2 + 2e20: 3019 movi r0, 25 + 2e22: e3fff7f7 bsr 0x1e10 // 1e10 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2e26: e00021b9 bsr 0x7198 // 7198 + + BT_CONFIG(); //BT initial + 2e2a: e3ffff75 bsr 0x2d14 // 2d14 + + GPIO_CONFIG(); + 2e2e: e3ffff4f bsr 0x2ccc // 2ccc + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2e32: 102b lrw r1, 0x7788 // 2e5c + 2e34: 3002 movi r0, 2 + 2e36: e0000535 bsr 0x38a0 // 38a0 + + HT1621_Init(); //显示驱动初始化 + 2e3a: e0001413 bsr 0x5660 // 5660 + + TM1812_LED_Init(); + 2e3e: e00013a9 bsr 0x5590 // 5590 + + ADC_Init(); + 2e42: e0000ca9 bsr 0x4794 // 4794 + + Touch_Key_Init(); + 2e46: e000069d bsr 0x3b80 // 3b80 + +} + 2e4a: 1490 pop r15 + 2e4c: 2000005c .long 0x2000005c + 2e50: 200000ac .long 0x200000ac + 2e54: 200000a8 .long 0x200000a8 + 2e58: 0fffffff .long 0x0fffffff + 2e5c: 00007788 .long 0x00007788 + +Disassembly of section .text.SYSCONIntHandler: + +00002e60 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2e60: 1460 nie + 2e62: 1462 ipush + // ISR content ... + nop; + 2e64: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2e66: 117a lrw r3, 0x2000005c // 2f4c + 2e68: 3280 movi r2, 128 + 2e6a: 9360 ld.w r3, (r3, 0x0) + 2e6c: 60c8 addu r3, r2 + 2e6e: 9323 ld.w r1, (r3, 0xc) + 2e70: 3001 movi r0, 1 + 2e72: 6840 and r1, r0 + 2e74: 3940 cmpnei r1, 0 + 2e76: 0c04 bf 0x2e7e // 2e7e + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2e78: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2e7a: 1463 ipop + 2e7c: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2e7e: 9323 ld.w r1, (r3, 0xc) + 2e80: 3002 movi r0, 2 + 2e82: 6840 and r1, r0 + 2e84: 3940 cmpnei r1, 0 + 2e86: 0bf9 bt 0x2e78 // 2e78 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2e88: 9323 ld.w r1, (r3, 0xc) + 2e8a: 3008 movi r0, 8 + 2e8c: 6840 and r1, r0 + 2e8e: 3940 cmpnei r1, 0 + 2e90: 0bf4 bt 0x2e78 // 2e78 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2e92: 9323 ld.w r1, (r3, 0xc) + 2e94: 3010 movi r0, 16 + 2e96: 6840 and r1, r0 + 2e98: 3940 cmpnei r1, 0 + 2e9a: 0bef bt 0x2e78 // 2e78 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2e9c: 9323 ld.w r1, (r3, 0xc) + 2e9e: 6848 and r1, r2 + 2ea0: 3940 cmpnei r1, 0 + 2ea2: 0c03 bf 0x2ea8 // 2ea8 + SYSCON->ICR = CMD_ERR_ST; + 2ea4: b341 st.w r2, (r3, 0x4) +} + 2ea6: 07ea br 0x2e7a // 2e7a + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2ea8: 3280 movi r2, 128 + 2eaa: 9323 ld.w r1, (r3, 0xc) + 2eac: 4241 lsli r2, r2, 1 + 2eae: 6848 and r1, r2 + 2eb0: 3940 cmpnei r1, 0 + 2eb2: 0bf9 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2eb4: 3280 movi r2, 128 + 2eb6: 9323 ld.w r1, (r3, 0xc) + 2eb8: 4242 lsli r2, r2, 2 + 2eba: 6848 and r1, r2 + 2ebc: 3940 cmpnei r1, 0 + 2ebe: 0bf3 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2ec0: 3280 movi r2, 128 + 2ec2: 9323 ld.w r1, (r3, 0xc) + 2ec4: 4243 lsli r2, r2, 3 + 2ec6: 6848 and r1, r2 + 2ec8: 3940 cmpnei r1, 0 + 2eca: 0bed bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2ecc: 3280 movi r2, 128 + 2ece: 9323 ld.w r1, (r3, 0xc) + 2ed0: 4244 lsli r2, r2, 4 + 2ed2: 6848 and r1, r2 + 2ed4: 3940 cmpnei r1, 0 + 2ed6: 0c03 bf 0x2edc // 2edc + nop; + 2ed8: 6c03 mov r0, r0 + 2eda: 07e5 br 0x2ea4 // 2ea4 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2edc: 3280 movi r2, 128 + 2ede: 9323 ld.w r1, (r3, 0xc) + 2ee0: 4245 lsli r2, r2, 5 + 2ee2: 6848 and r1, r2 + 2ee4: 3940 cmpnei r1, 0 + 2ee6: 0bdf bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2ee8: 3280 movi r2, 128 + 2eea: 9323 ld.w r1, (r3, 0xc) + 2eec: 4246 lsli r2, r2, 6 + 2eee: 6848 and r1, r2 + 2ef0: 3940 cmpnei r1, 0 + 2ef2: 0bd9 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2ef4: 3280 movi r2, 128 + 2ef6: 9323 ld.w r1, (r3, 0xc) + 2ef8: 4247 lsli r2, r2, 7 + 2efa: 6848 and r1, r2 + 2efc: 3940 cmpnei r1, 0 + 2efe: 0bd3 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2f00: 3280 movi r2, 128 + 2f02: 9323 ld.w r1, (r3, 0xc) + 2f04: 424b lsli r2, r2, 11 + 2f06: 6848 and r1, r2 + 2f08: 3940 cmpnei r1, 0 + 2f0a: 0bcd bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2f0c: 3280 movi r2, 128 + 2f0e: 9323 ld.w r1, (r3, 0xc) + 2f10: 424c lsli r2, r2, 12 + 2f12: 6848 and r1, r2 + 2f14: 3940 cmpnei r1, 0 + 2f16: 0bc7 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2f18: 3280 movi r2, 128 + 2f1a: 9323 ld.w r1, (r3, 0xc) + 2f1c: 424d lsli r2, r2, 13 + 2f1e: 6848 and r1, r2 + 2f20: 3940 cmpnei r1, 0 + 2f22: 0bc1 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2f24: 3280 movi r2, 128 + 2f26: 9323 ld.w r1, (r3, 0xc) + 2f28: 424e lsli r2, r2, 14 + 2f2a: 6848 and r1, r2 + 2f2c: 3940 cmpnei r1, 0 + 2f2e: 0bbb bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2f30: 3280 movi r2, 128 + 2f32: 9323 ld.w r1, (r3, 0xc) + 2f34: 424f lsli r2, r2, 15 + 2f36: 6848 and r1, r2 + 2f38: 3940 cmpnei r1, 0 + 2f3a: 0bb5 bt 0x2ea4 // 2ea4 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2f3c: 3280 movi r2, 128 + 2f3e: 9323 ld.w r1, (r3, 0xc) + 2f40: 4256 lsli r2, r2, 22 + 2f42: 6848 and r1, r2 + 2f44: 3940 cmpnei r1, 0 + 2f46: 0baf bt 0x2ea4 // 2ea4 + 2f48: 0799 br 0x2e7a // 2e7a + 2f4a: 0000 bkpt + 2f4c: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002f50 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2f50: 1460 nie + 2f52: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2f54: 1078 lrw r3, 0x20000060 // 2fb4 + 2f56: 3101 movi r1, 1 + 2f58: 9360 ld.w r3, (r3, 0x0) + 2f5a: 934b ld.w r2, (r3, 0x2c) + 2f5c: 6884 and r2, r1 + 2f5e: 3a40 cmpnei r2, 0 + 2f60: 0c04 bf 0x2f68 // 2f68 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2f62: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2f64: 1463 ipop + 2f66: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 2f68: 934b ld.w r2, (r3, 0x2c) + 2f6a: 3102 movi r1, 2 + 2f6c: 6884 and r2, r1 + 2f6e: 3a40 cmpnei r2, 0 + 2f70: 0bf9 bt 0x2f62 // 2f62 + else if(IFC->MISR&PEP_END_INT) + 2f72: 934b ld.w r2, (r3, 0x2c) + 2f74: 3104 movi r1, 4 + 2f76: 6884 and r2, r1 + 2f78: 3a40 cmpnei r2, 0 + 2f7a: 0bf4 bt 0x2f62 // 2f62 + else if(IFC->MISR&PROT_ERR_INT) + 2f7c: 3280 movi r2, 128 + 2f7e: 932b ld.w r1, (r3, 0x2c) + 2f80: 4245 lsli r2, r2, 5 + 2f82: 6848 and r1, r2 + 2f84: 3940 cmpnei r1, 0 + 2f86: 0c03 bf 0x2f8c // 2f8c + IFC->ICR=OVW_ERR_INT; + 2f88: b34c st.w r2, (r3, 0x30) +} + 2f8a: 07ed br 0x2f64 // 2f64 + else if(IFC->MISR&UDEF_ERR_INT) + 2f8c: 3280 movi r2, 128 + 2f8e: 932b ld.w r1, (r3, 0x2c) + 2f90: 4246 lsli r2, r2, 6 + 2f92: 6848 and r1, r2 + 2f94: 3940 cmpnei r1, 0 + 2f96: 0bf9 bt 0x2f88 // 2f88 + else if(IFC->MISR&ADDR_ERR_INT) + 2f98: 3280 movi r2, 128 + 2f9a: 932b ld.w r1, (r3, 0x2c) + 2f9c: 4247 lsli r2, r2, 7 + 2f9e: 6848 and r1, r2 + 2fa0: 3940 cmpnei r1, 0 + 2fa2: 0bf3 bt 0x2f88 // 2f88 + else if(IFC->MISR&OVW_ERR_INT) + 2fa4: 3280 movi r2, 128 + 2fa6: 932b ld.w r1, (r3, 0x2c) + 2fa8: 4248 lsli r2, r2, 8 + 2faa: 6848 and r1, r2 + 2fac: 3940 cmpnei r1, 0 + 2fae: 0bed bt 0x2f88 // 2f88 + 2fb0: 07da br 0x2f64 // 2f64 + 2fb2: 0000 bkpt + 2fb4: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00002fb8 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 2fb8: 1460 nie + 2fba: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2fbc: 1078 lrw r3, 0x20000050 // 301c + 2fbe: 3101 movi r1, 1 + 2fc0: 9360 ld.w r3, (r3, 0x0) + 2fc2: 9348 ld.w r2, (r3, 0x20) + 2fc4: 6884 and r2, r1 + 2fc6: 3a40 cmpnei r2, 0 + 2fc8: 0c04 bf 0x2fd0 // 2fd0 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 2fca: 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; + } +} + 2fcc: 1463 ipop + 2fce: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2fd0: 9348 ld.w r2, (r3, 0x20) + 2fd2: 3102 movi r1, 2 + 2fd4: 6884 and r2, r1 + 2fd6: 3a40 cmpnei r2, 0 + 2fd8: 0bf9 bt 0x2fca // 2fca + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 2fda: 9348 ld.w r2, (r3, 0x20) + 2fdc: 3104 movi r1, 4 + 2fde: 6884 and r2, r1 + 2fe0: 3a40 cmpnei r2, 0 + 2fe2: 0bf4 bt 0x2fca // 2fca + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2fe4: 9348 ld.w r2, (r3, 0x20) + 2fe6: 3110 movi r1, 16 + 2fe8: 6884 and r2, r1 + 2fea: 3a40 cmpnei r2, 0 + 2fec: 0bef bt 0x2fca // 2fca + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 2fee: 9348 ld.w r2, (r3, 0x20) + 2ff0: 3120 movi r1, 32 + 2ff2: 6884 and r2, r1 + 2ff4: 3a40 cmpnei r2, 0 + 2ff6: 0bea bt 0x2fca // 2fca + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 2ff8: 9348 ld.w r2, (r3, 0x20) + 2ffa: 3140 movi r1, 64 + 2ffc: 6884 and r2, r1 + 2ffe: 3a40 cmpnei r2, 0 + 3000: 0be5 bt 0x2fca // 2fca + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 3002: 9348 ld.w r2, (r3, 0x20) + 3004: 3180 movi r1, 128 + 3006: 6884 and r2, r1 + 3008: 3a40 cmpnei r2, 0 + 300a: 0be0 bt 0x2fca // 2fca + 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 + 300c: 3280 movi r2, 128 + 300e: 9328 ld.w r1, (r3, 0x20) + 3010: 4249 lsli r2, r2, 9 + 3012: 6848 and r1, r2 + 3014: 3940 cmpnei r1, 0 + 3016: 0fdb bf 0x2fcc // 2fcc + ADC0->CSR = ADC12_SEQ_END0; + 3018: b347 st.w r2, (r3, 0x1c) +} + 301a: 07d9 br 0x2fcc // 2fcc + 301c: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003020 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3020: 1460 nie + 3022: 1462 ipush + 3024: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3026: 1387 lrw r4, 0x20000020 // 31c0 + 3028: 3280 movi r2, 128 + 302a: 9460 ld.w r3, (r4, 0x0) + 302c: 60c8 addu r3, r2 + 302e: 9335 ld.w r1, (r3, 0x54) + 3030: 3001 movi r0, 1 + 3032: 6840 and r1, r0 + 3034: 3940 cmpnei r1, 0 + 3036: 0c03 bf 0x303c // 303c + 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; + 3038: b317 st.w r0, (r3, 0x5c) + 303a: 0424 br 0x3082 // 3082 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 303c: 9335 ld.w r1, (r3, 0x54) + 303e: 3002 movi r0, 2 + 3040: 6840 and r1, r0 + 3042: 3940 cmpnei r1, 0 + 3044: 0bfa bt 0x3038 // 3038 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3046: 9335 ld.w r1, (r3, 0x54) + 3048: 3004 movi r0, 4 + 304a: 6840 and r1, r0 + 304c: 3940 cmpnei r1, 0 + 304e: 0bf5 bt 0x3038 // 3038 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3050: 9335 ld.w r1, (r3, 0x54) + 3052: 3008 movi r0, 8 + 3054: 6840 and r1, r0 + 3056: 3940 cmpnei r1, 0 + 3058: 0bf0 bt 0x3038 // 3038 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 305a: 9335 ld.w r1, (r3, 0x54) + 305c: 3010 movi r0, 16 + 305e: 6840 and r1, r0 + 3060: 3940 cmpnei r1, 0 + 3062: 0c1f bf 0x30a0 // 30a0 + EPT0->ICR=EPT_CAP_LD0; + 3064: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3066: 3200 movi r2, 0 + 3068: 3101 movi r1, 1 + 306a: 3000 movi r0, 0 + 306c: e3fff670 bsr 0x1d4c // 1d4c + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3070: 3201 movi r2, 1 + 3072: 3101 movi r1, 1 + 3074: 3001 movi r0, 1 + 3076: e3fff66b bsr 0x1d4c // 1d4c + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 307a: 9460 ld.w r3, (r4, 0x0) + 307c: 934b ld.w r2, (r3, 0x2c) + 307e: 1272 lrw r3, 0x200002bc // 31c4 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3080: 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 + 3082: 9460 ld.w r3, (r4, 0x0) + 3084: 3280 movi r2, 128 + 3086: 60c8 addu r3, r2 + 3088: 932b ld.w r1, (r3, 0x2c) + 308a: 3001 movi r0, 1 + 308c: 6840 and r1, r0 + 308e: 3940 cmpnei r1, 0 + 3090: 0c61 bf 0x3152 // 3152 + { + 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; + 3092: 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; + } +} + 3094: d9ee2001 ld.w r15, (r14, 0x4) + 3098: 9880 ld.w r4, (r14, 0x0) + 309a: 1402 addi r14, r14, 8 + 309c: 1463 ipop + 309e: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 30a0: 9335 ld.w r1, (r3, 0x54) + 30a2: 3020 movi r0, 32 + 30a4: 6840 and r1, r0 + 30a6: 3940 cmpnei r1, 0 + 30a8: 0c10 bf 0x30c8 // 30c8 + EPT0->ICR=EPT_CAP_LD1; + 30aa: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 30ac: 3200 movi r2, 0 + 30ae: 3101 movi r1, 1 + 30b0: 3001 movi r0, 1 + 30b2: e3fff64d bsr 0x1d4c // 1d4c + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 30b6: 3201 movi r2, 1 + 30b8: 3101 movi r1, 1 + 30ba: 3000 movi r0, 0 + 30bc: e3fff648 bsr 0x1d4c // 1d4c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 30c0: 9460 ld.w r3, (r4, 0x0) + 30c2: 934c ld.w r2, (r3, 0x30) + 30c4: 1261 lrw r3, 0x200002b8 // 31c8 + 30c6: 07dd br 0x3080 // 3080 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 30c8: 9335 ld.w r1, (r3, 0x54) + 30ca: 3040 movi r0, 64 + 30cc: 6840 and r1, r0 + 30ce: 3940 cmpnei r1, 0 + 30d0: 0bb4 bt 0x3038 // 3038 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 30d2: 9335 ld.w r1, (r3, 0x54) + 30d4: 6848 and r1, r2 + 30d6: 3940 cmpnei r1, 0 + 30d8: 0c03 bf 0x30de // 30de + EPT0->ICR=EPT_CDD; + 30da: b357 st.w r2, (r3, 0x5c) + 30dc: 07d3 br 0x3082 // 3082 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 30de: 3280 movi r2, 128 + 30e0: 9335 ld.w r1, (r3, 0x54) + 30e2: 4241 lsli r2, r2, 1 + 30e4: 6848 and r1, r2 + 30e6: 3940 cmpnei r1, 0 + 30e8: 0bf9 bt 0x30da // 30da + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 30ea: 3280 movi r2, 128 + 30ec: 9335 ld.w r1, (r3, 0x54) + 30ee: 4242 lsli r2, r2, 2 + 30f0: 6848 and r1, r2 + 30f2: 3940 cmpnei r1, 0 + 30f4: 0bf3 bt 0x30da // 30da + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 30f6: 3280 movi r2, 128 + 30f8: 9335 ld.w r1, (r3, 0x54) + 30fa: 4243 lsli r2, r2, 3 + 30fc: 6848 and r1, r2 + 30fe: 3940 cmpnei r1, 0 + 3100: 0bed bt 0x30da // 30da + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 3102: 3280 movi r2, 128 + 3104: 9335 ld.w r1, (r3, 0x54) + 3106: 4244 lsli r2, r2, 4 + 3108: 6848 and r1, r2 + 310a: 3940 cmpnei r1, 0 + 310c: 0be7 bt 0x30da // 30da + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 310e: 3280 movi r2, 128 + 3110: 9335 ld.w r1, (r3, 0x54) + 3112: 4245 lsli r2, r2, 5 + 3114: 6848 and r1, r2 + 3116: 3940 cmpnei r1, 0 + 3118: 0be1 bt 0x30da // 30da + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 311a: 3280 movi r2, 128 + 311c: 9335 ld.w r1, (r3, 0x54) + 311e: 4246 lsli r2, r2, 6 + 3120: 6848 and r1, r2 + 3122: 3940 cmpnei r1, 0 + 3124: 0bdb bt 0x30da // 30da + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3126: 3280 movi r2, 128 + 3128: 9335 ld.w r1, (r3, 0x54) + 312a: 4247 lsli r2, r2, 7 + 312c: 6848 and r1, r2 + 312e: 3940 cmpnei r1, 0 + 3130: 0bd5 bt 0x30da // 30da + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 3132: 3280 movi r2, 128 + 3134: 9335 ld.w r1, (r3, 0x54) + 3136: 4248 lsli r2, r2, 8 + 3138: 6848 and r1, r2 + 313a: 3940 cmpnei r1, 0 + 313c: 0bcf bt 0x30da // 30da + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 313e: 3280 movi r2, 128 + 3140: 9335 ld.w r1, (r3, 0x54) + 3142: 4249 lsli r2, r2, 9 + 3144: 6848 and r1, r2 + 3146: 3940 cmpnei r1, 0 + 3148: 0f9d bf 0x3082 // 3082 + EPT0->ICR=EPT_PEND; + 314a: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 314c: e3fff9ba bsr 0x24c0 // 24c0 + 3150: 0799 br 0x3082 // 3082 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 3152: 932b ld.w r1, (r3, 0x2c) + 3154: 3002 movi r0, 2 + 3156: 6840 and r1, r0 + 3158: 3940 cmpnei r1, 0 + 315a: 0b9c bt 0x3092 // 3092 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 315c: 932b ld.w r1, (r3, 0x2c) + 315e: 3004 movi r0, 4 + 3160: 6840 and r1, r0 + 3162: 3940 cmpnei r1, 0 + 3164: 0b97 bt 0x3092 // 3092 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3166: 932b ld.w r1, (r3, 0x2c) + 3168: 3008 movi r0, 8 + 316a: 6840 and r1, r0 + 316c: 3940 cmpnei r1, 0 + 316e: 0b92 bt 0x3092 // 3092 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3170: 932b ld.w r1, (r3, 0x2c) + 3172: 3010 movi r0, 16 + 3174: 6840 and r1, r0 + 3176: 3940 cmpnei r1, 0 + 3178: 0b8d bt 0x3092 // 3092 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 317a: 932b ld.w r1, (r3, 0x2c) + 317c: 3020 movi r0, 32 + 317e: 6840 and r1, r0 + 3180: 3940 cmpnei r1, 0 + 3182: 0b88 bt 0x3092 // 3092 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3184: 932b ld.w r1, (r3, 0x2c) + 3186: 3040 movi r0, 64 + 3188: 6840 and r1, r0 + 318a: 3940 cmpnei r1, 0 + 318c: 0b83 bt 0x3092 // 3092 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 318e: 932b ld.w r1, (r3, 0x2c) + 3190: 6848 and r1, r2 + 3192: 3940 cmpnei r1, 0 + 3194: 0c03 bf 0x319a // 319a + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3196: b34d st.w r2, (r3, 0x34) +} + 3198: 077e br 0x3094 // 3094 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 319a: 3280 movi r2, 128 + 319c: 932b ld.w r1, (r3, 0x2c) + 319e: 4241 lsli r2, r2, 1 + 31a0: 6848 and r1, r2 + 31a2: 3940 cmpnei r1, 0 + 31a4: 0bf9 bt 0x3196 // 3196 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 31a6: 3280 movi r2, 128 + 31a8: 932b ld.w r1, (r3, 0x2c) + 31aa: 4242 lsli r2, r2, 2 + 31ac: 6848 and r1, r2 + 31ae: 3940 cmpnei r1, 0 + 31b0: 0bf3 bt 0x3196 // 3196 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 31b2: 3280 movi r2, 128 + 31b4: 932b ld.w r1, (r3, 0x2c) + 31b6: 4243 lsli r2, r2, 3 + 31b8: 6848 and r1, r2 + 31ba: 3940 cmpnei r1, 0 + 31bc: 0bed bt 0x3196 // 3196 + 31be: 076b br 0x3094 // 3094 + 31c0: 20000020 .long 0x20000020 + 31c4: 200002bc .long 0x200002bc + 31c8: 200002b8 .long 0x200002b8 + +Disassembly of section .text.WWDTHandler: + +000031cc : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 31cc: 1460 nie + 31ce: 1462 ipush + 31d0: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 31d2: 10ab lrw r5, 0x20000010 // 31fc + 31d4: 3401 movi r4, 1 + 31d6: 9560 ld.w r3, (r5, 0x0) + 31d8: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 31da: 30ff movi r0, 255 + 31dc: e3fff7d6 bsr 0x2188 // 2188 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 31e0: 9540 ld.w r2, (r5, 0x0) + 31e2: 9263 ld.w r3, (r2, 0xc) + 31e4: 68d0 and r3, r4 + 31e6: 3b40 cmpnei r3, 0 + 31e8: 0c02 bf 0x31ec // 31ec + { + WWDT->ICR = WWDT_EVI; + 31ea: b285 st.w r4, (r2, 0x14) + } +} + 31ec: d9ee2002 ld.w r15, (r14, 0x8) + 31f0: 98a1 ld.w r5, (r14, 0x4) + 31f2: 9880 ld.w r4, (r14, 0x0) + 31f4: 1403 addi r14, r14, 12 + 31f6: 1463 ipop + 31f8: 1461 nir + 31fa: 0000 bkpt + 31fc: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003200 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3200: 1460 nie + 3202: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 3204: 107e lrw r3, 0x20000024 // 327c + 3206: 3101 movi r1, 1 + 3208: 9360 ld.w r3, (r3, 0x0) + 320a: 237f addi r3, 128 + 320c: 9355 ld.w r2, (r3, 0x54) + 320e: 6884 and r2, r1 + 3210: 3a40 cmpnei r2, 0 + 3212: 0c04 bf 0x321a // 321a + { + 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; + 3214: 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; + } +} + 3216: 1463 ipop + 3218: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 321a: 9355 ld.w r2, (r3, 0x54) + 321c: 3102 movi r1, 2 + 321e: 6884 and r2, r1 + 3220: 3a40 cmpnei r2, 0 + 3222: 0bf9 bt 0x3214 // 3214 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3224: 9355 ld.w r2, (r3, 0x54) + 3226: 3110 movi r1, 16 + 3228: 6884 and r2, r1 + 322a: 3a40 cmpnei r2, 0 + 322c: 0bf4 bt 0x3214 // 3214 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 322e: 9355 ld.w r2, (r3, 0x54) + 3230: 3120 movi r1, 32 + 3232: 6884 and r2, r1 + 3234: 3a40 cmpnei r2, 0 + 3236: 0bef bt 0x3214 // 3214 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3238: 3280 movi r2, 128 + 323a: 9335 ld.w r1, (r3, 0x54) + 323c: 4241 lsli r2, r2, 1 + 323e: 6848 and r1, r2 + 3240: 3940 cmpnei r1, 0 + 3242: 0c03 bf 0x3248 // 3248 + GPT0->ICR = GPT_INT_PEND; + 3244: b357 st.w r2, (r3, 0x5c) +} + 3246: 07e8 br 0x3216 // 3216 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3248: 3280 movi r2, 128 + 324a: 9335 ld.w r1, (r3, 0x54) + 324c: 4242 lsli r2, r2, 2 + 324e: 6848 and r1, r2 + 3250: 3940 cmpnei r1, 0 + 3252: 0bf9 bt 0x3244 // 3244 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3254: 3280 movi r2, 128 + 3256: 9335 ld.w r1, (r3, 0x54) + 3258: 4243 lsli r2, r2, 3 + 325a: 6848 and r1, r2 + 325c: 3940 cmpnei r1, 0 + 325e: 0bf3 bt 0x3244 // 3244 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3260: 3280 movi r2, 128 + 3262: 9335 ld.w r1, (r3, 0x54) + 3264: 4244 lsli r2, r2, 4 + 3266: 6848 and r1, r2 + 3268: 3940 cmpnei r1, 0 + 326a: 0bed bt 0x3244 // 3244 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 326c: 3280 movi r2, 128 + 326e: 9335 ld.w r1, (r3, 0x54) + 3270: 4249 lsli r2, r2, 9 + 3272: 6848 and r1, r2 + 3274: 3940 cmpnei r1, 0 + 3276: 0be7 bt 0x3244 // 3244 + 3278: 07cf br 0x3216 // 3216 + 327a: 0000 bkpt + 327c: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003280 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3280: 1460 nie + 3282: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3284: 1079 lrw r3, 0x20000018 // 32e8 + 3286: 3101 movi r1, 1 + 3288: 9360 ld.w r3, (r3, 0x0) + 328a: 934a ld.w r2, (r3, 0x28) + 328c: 6884 and r2, r1 + 328e: 3a40 cmpnei r2, 0 + 3290: 0c14 bf 0x32b8 // 32b8 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 3292: 1057 lrw r2, 0xca53 // 32ec + RTC->ICR=ALRA_INT; + 3294: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3296: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3298: 9342 ld.w r2, (r3, 0x8) + 329a: 6c84 or r2, r1 + 329c: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 329e: 3280 movi r2, 128 + 32a0: 424d lsli r2, r2, 13 + 32a2: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 32a4: 3102 movi r1, 2 + 32a6: 9342 ld.w r2, (r3, 0x8) + 32a8: 6884 and r2, r1 + 32aa: 3a40 cmpnei r2, 0 + 32ac: 0bfd bt 0x32a6 // 32a6 + RTC->CR &= ~0x1; + 32ae: 9342 ld.w r2, (r3, 0x8) + 32b0: 3a80 bclri r2, 0 + 32b2: 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; + } +} + 32b4: 1463 ipop + 32b6: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 32b8: 934a ld.w r2, (r3, 0x28) + 32ba: 3102 movi r1, 2 + 32bc: 6884 and r2, r1 + 32be: 3a40 cmpnei r2, 0 + 32c0: 0c03 bf 0x32c6 // 32c6 + RTC->ICR=RTC_TRGEV1_INT; + 32c2: b32b st.w r1, (r3, 0x2c) +} + 32c4: 07f8 br 0x32b4 // 32b4 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 32c6: 934a ld.w r2, (r3, 0x28) + 32c8: 3104 movi r1, 4 + 32ca: 6884 and r2, r1 + 32cc: 3a40 cmpnei r2, 0 + 32ce: 0bfa bt 0x32c2 // 32c2 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 32d0: 934a ld.w r2, (r3, 0x28) + 32d2: 3108 movi r1, 8 + 32d4: 6884 and r2, r1 + 32d6: 3a40 cmpnei r2, 0 + 32d8: 0bf5 bt 0x32c2 // 32c2 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 32da: 934a ld.w r2, (r3, 0x28) + 32dc: 3110 movi r1, 16 + 32de: 6884 and r2, r1 + 32e0: 3a40 cmpnei r2, 0 + 32e2: 0bf0 bt 0x32c2 // 32c2 + 32e4: 07e8 br 0x32b4 // 32b4 + 32e6: 0000 bkpt + 32e8: 20000018 .long 0x20000018 + 32ec: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000032f0 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 32f0: 1460 nie + 32f2: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 32f4: 106d lrw r3, 0x20000040 // 3328 + 32f6: 3102 movi r1, 2 + 32f8: 9360 ld.w r3, (r3, 0x0) + 32fa: 9343 ld.w r2, (r3, 0xc) + 32fc: 6884 and r2, r1 + 32fe: 3a40 cmpnei r2, 0 + 3300: 0c03 bf 0x3306 // 3306 + { + 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; + 3302: b323 st.w r1, (r3, 0xc) + } +} + 3304: 0410 br 0x3324 // 3324 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3306: 9343 ld.w r2, (r3, 0xc) + 3308: 3101 movi r1, 1 + 330a: 6884 and r2, r1 + 330c: 3a40 cmpnei r2, 0 + 330e: 0bfa bt 0x3302 // 3302 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3310: 9343 ld.w r2, (r3, 0xc) + 3312: 3108 movi r1, 8 + 3314: 6884 and r2, r1 + 3316: 3a40 cmpnei r2, 0 + 3318: 0bf5 bt 0x3302 // 3302 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 331a: 9343 ld.w r2, (r3, 0xc) + 331c: 3104 movi r1, 4 + 331e: 6884 and r2, r1 + 3320: 3a40 cmpnei r2, 0 + 3322: 0bf0 bt 0x3302 // 3302 +} + 3324: 1463 ipop + 3326: 1461 nir + 3328: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +0000332c : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 332c: 1460 nie + 332e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3330: 106d lrw r3, 0x2000003c // 3364 + 3332: 3102 movi r1, 2 + 3334: 9360 ld.w r3, (r3, 0x0) + 3336: 9343 ld.w r2, (r3, 0xc) + 3338: 6884 and r2, r1 + 333a: 3a40 cmpnei r2, 0 + 333c: 0c03 bf 0x3342 // 3342 + { + 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; + 333e: b323 st.w r1, (r3, 0xc) + } +} + 3340: 0410 br 0x3360 // 3360 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3342: 9343 ld.w r2, (r3, 0xc) + 3344: 3101 movi r1, 1 + 3346: 6884 and r2, r1 + 3348: 3a40 cmpnei r2, 0 + 334a: 0bfa bt 0x333e // 333e + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 334c: 9343 ld.w r2, (r3, 0xc) + 334e: 3108 movi r1, 8 + 3350: 6884 and r2, r1 + 3352: 3a40 cmpnei r2, 0 + 3354: 0bf5 bt 0x333e // 333e + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3356: 9343 ld.w r2, (r3, 0xc) + 3358: 3104 movi r1, 4 + 335a: 6884 and r2, r1 + 335c: 3a40 cmpnei r2, 0 + 335e: 0bf0 bt 0x333e // 333e +} + 3360: 1463 ipop + 3362: 1461 nir + 3364: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003368 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3368: 1460 nie + 336a: 1462 ipush + 336c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 336e: 107f lrw r3, 0x20000038 // 33e8 + 3370: 3102 movi r1, 2 + 3372: 9360 ld.w r3, (r3, 0x0) + 3374: 9343 ld.w r2, (r3, 0xc) + 3376: 6884 and r2, r1 + 3378: 3a40 cmpnei r2, 0 + 337a: 0c0b bf 0x3390 // 3390 + { + UART2->ISR=UART_RX_INT_S; + 337c: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 337e: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3380: 7400 zextb r0, r0 + 3382: e000031d bsr 0x39bc // 39bc + //GPIO_Write_Low(GPIOB0,3); + + //GPIO_Reverse(GPIOB0,3); + } + +} + 3386: d9ee2000 ld.w r15, (r14, 0x0) + 338a: 1401 addi r14, r14, 4 + 338c: 1463 ipop + 338e: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3390: 9323 ld.w r1, (r3, 0xc) + 3392: 3201 movi r2, 1 + 3394: 6848 and r1, r2 + 3396: 3940 cmpnei r1, 0 + 3398: 0c0d bf 0x33b2 // 33b2 + UART2->ISR=UART_TX_INT_S; + 339a: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 339c: 1074 lrw r3, 0x20000124 // 33ec + 339e: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33a0: 1074 lrw r3, 0x20000128 // 33f0 + 33a2: 9360 ld.w r3, (r3, 0x0) + 33a4: 3b41 cmpnei r3, 1 + 33a6: 0bf0 bt 0x3386 // 3386 + RS485_Comm_Start ++; + 33a8: 1053 lrw r2, 0x2000012c // 33f4 + RS485_Comm_End ++; + 33aa: 9260 ld.w r3, (r2, 0x0) + 33ac: 2300 addi r3, 1 + 33ae: b260 st.w r3, (r2, 0x0) +} + 33b0: 07eb br 0x3386 // 3386 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33b2: 9343 ld.w r2, (r3, 0xc) + 33b4: 3108 movi r1, 8 + 33b6: 6884 and r2, r1 + 33b8: 3a40 cmpnei r2, 0 + 33ba: 0c03 bf 0x33c0 // 33c0 + UART2->ISR=UART_TX_IOV_S; + 33bc: b323 st.w r1, (r3, 0xc) + 33be: 07e4 br 0x3386 // 3386 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33c0: 9343 ld.w r2, (r3, 0xc) + 33c2: 3104 movi r1, 4 + 33c4: 6884 and r2, r1 + 33c6: 3a40 cmpnei r2, 0 + 33c8: 0bfa bt 0x33bc // 33bc + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 33ca: 3180 movi r1, 128 + 33cc: 9303 ld.w r0, (r3, 0xc) + 33ce: 412c lsli r1, r1, 12 + 33d0: 6804 and r0, r1 + 33d2: 3840 cmpnei r0, 0 + 33d4: 0fd9 bf 0x3386 // 3386 + UART2->ISR=UART_TX_DONE_S; + 33d6: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 33d8: 1065 lrw r3, 0x20000124 // 33ec + 33da: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 33dc: 1065 lrw r3, 0x20000128 // 33f0 + 33de: 9360 ld.w r3, (r3, 0x0) + 33e0: 3b41 cmpnei r3, 1 + 33e2: 0bd2 bt 0x3386 // 3386 + RS485_Comm_End ++; + 33e4: 1045 lrw r2, 0x20000130 // 33f8 + 33e6: 07e2 br 0x33aa // 33aa + 33e8: 20000038 .long 0x20000038 + 33ec: 20000124 .long 0x20000124 + 33f0: 20000128 .long 0x20000128 + 33f4: 2000012c .long 0x2000012c + 33f8: 20000130 .long 0x20000130 + +Disassembly of section .text.SPI0IntHandler: + +000033fc : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 33fc: 1460 nie + 33fe: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 3400: 1178 lrw r3, 0x20000034 // 34e0 + 3402: 3101 movi r1, 1 + 3404: 9360 ld.w r3, (r3, 0x0) + 3406: 9347 ld.w r2, (r3, 0x1c) + 3408: 6884 and r2, r1 + 340a: 3a40 cmpnei r2, 0 + 340c: 0c03 bf 0x3412 // 3412 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 340e: b328 st.w r1, (r3, 0x20) + } + +} + 3410: 0407 br 0x341e // 341e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 3412: 9347 ld.w r2, (r3, 0x1c) + 3414: 3002 movi r0, 2 + 3416: 6880 and r2, r0 + 3418: 3a40 cmpnei r2, 0 + 341a: 0c04 bf 0x3422 // 3422 + SPI0->ICR = SPI_RTIM; + 341c: b308 st.w r0, (r3, 0x20) +} + 341e: 1463 ipop + 3420: 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 + 3422: 9347 ld.w r2, (r3, 0x1c) + 3424: 3004 movi r0, 4 + 3426: 6880 and r2, r0 + 3428: 3a40 cmpnei r2, 0 + 342a: 0c55 bf 0x34d4 // 34d4 + SPI0->ICR = SPI_RXIM; + 342c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 342e: 9302 ld.w r0, (r3, 0x8) + 3430: 32aa movi r2, 170 + 3432: 6482 cmpne r0, r2 + 3434: 083e bt 0x34b0 // 34b0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3436: 3102 movi r1, 2 + 3438: 9343 ld.w r2, (r3, 0xc) + 343a: 6884 and r2, r1 + 343c: 3a40 cmpnei r2, 0 + 343e: 0ffd bf 0x3438 // 3438 + SPI0->DR = 0x11; + 3440: 3211 movi r2, 17 + 3442: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3444: 3110 movi r1, 16 + 3446: 9343 ld.w r2, (r3, 0xc) + 3448: 6884 and r2, r1 + 344a: 3a40 cmpnei r2, 0 + 344c: 0bfd bt 0x3446 // 3446 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 344e: 3102 movi r1, 2 + 3450: 9343 ld.w r2, (r3, 0xc) + 3452: 6884 and r2, r1 + 3454: 3a40 cmpnei r2, 0 + 3456: 0ffd bf 0x3450 // 3450 + SPI0->DR = 0x12; + 3458: 3212 movi r2, 18 + 345a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 345c: 3110 movi r1, 16 + 345e: 9343 ld.w r2, (r3, 0xc) + 3460: 6884 and r2, r1 + 3462: 3a40 cmpnei r2, 0 + 3464: 0bfd bt 0x345e // 345e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3466: 3102 movi r1, 2 + 3468: 9343 ld.w r2, (r3, 0xc) + 346a: 6884 and r2, r1 + 346c: 3a40 cmpnei r2, 0 + 346e: 0ffd bf 0x3468 // 3468 + SPI0->DR = 0x13; + 3470: 3213 movi r2, 19 + 3472: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3474: 3110 movi r1, 16 + 3476: 9343 ld.w r2, (r3, 0xc) + 3478: 6884 and r2, r1 + 347a: 3a40 cmpnei r2, 0 + 347c: 0bfd bt 0x3476 // 3476 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 347e: 3102 movi r1, 2 + 3480: 9343 ld.w r2, (r3, 0xc) + 3482: 6884 and r2, r1 + 3484: 3a40 cmpnei r2, 0 + 3486: 0ffd bf 0x3480 // 3480 + SPI0->DR = 0x14; + 3488: 3214 movi r2, 20 + 348a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 348c: 3110 movi r1, 16 + 348e: 9343 ld.w r2, (r3, 0xc) + 3490: 6884 and r2, r1 + 3492: 3a40 cmpnei r2, 0 + 3494: 0bfd bt 0x348e // 348e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3496: 3102 movi r1, 2 + 3498: 9343 ld.w r2, (r3, 0xc) + 349a: 6884 and r2, r1 + 349c: 3a40 cmpnei r2, 0 + 349e: 0ffd bf 0x3498 // 3498 + SPI0->DR = 0x15; + 34a0: 3215 movi r2, 21 + 34a2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34a4: 3110 movi r1, 16 + 34a6: 9343 ld.w r2, (r3, 0xc) + 34a8: 6884 and r2, r1 + 34aa: 3a40 cmpnei r2, 0 + 34ac: 0bfd bt 0x34a6 // 34a6 + 34ae: 07b8 br 0x341e // 341e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 34b0: 9343 ld.w r2, (r3, 0xc) + 34b2: 6884 and r2, r1 + 34b4: 3a40 cmpnei r2, 0 + 34b6: 0bb4 bt 0x341e // 341e + SPI0->DR=0x0; //FIFO=0 + 34b8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34ba: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 34bc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34be: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34c0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34c2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34c4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34c6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 34c8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34ca: 9343 ld.w r2, (r3, 0xc) + 34cc: 6884 and r2, r1 + 34ce: 3a40 cmpnei r2, 0 + 34d0: 0bfd bt 0x34ca // 34ca + 34d2: 07a6 br 0x341e // 341e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 34d4: 9347 ld.w r2, (r3, 0x1c) + 34d6: 3108 movi r1, 8 + 34d8: 6884 and r2, r1 + 34da: 3a40 cmpnei r2, 0 + 34dc: 0b99 bt 0x340e // 340e + 34de: 07a0 br 0x341e // 341e + 34e0: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000034e4 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 34e4: 1460 nie + 34e6: 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) + 34e8: 1073 lrw r3, 0x2000002c // 3534 + 34ea: 3104 movi r1, 4 + 34ec: 9360 ld.w r3, (r3, 0x0) + 34ee: 9349 ld.w r2, (r3, 0x24) + 34f0: 6884 and r2, r1 + 34f2: 3a40 cmpnei r2, 0 + 34f4: 0c02 bf 0x34f8 // 34f8 + { + SIO0->ICR=0X04; + 34f6: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 34f8: 9349 ld.w r2, (r3, 0x24) + 34fa: 3101 movi r1, 1 + 34fc: 6884 and r2, r1 + 34fe: 3a40 cmpnei r2, 0 + 3500: 0c02 bf 0x3504 // 3504 + { + SIO0->ICR=0X01; + 3502: 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 + 3504: 9349 ld.w r2, (r3, 0x24) + 3506: 3102 movi r1, 2 + 3508: 6884 and r2, r1 + 350a: 3a40 cmpnei r2, 0 + 350c: 0c03 bf 0x3512 // 3512 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 350e: b32b st.w r1, (r3, 0x2c) + } +} + 3510: 0410 br 0x3530 // 3530 + else if(SIO0->MISR&0X08) //RXBUFFULL + 3512: 9349 ld.w r2, (r3, 0x24) + 3514: 3108 movi r1, 8 + 3516: 6884 and r2, r1 + 3518: 3a40 cmpnei r2, 0 + 351a: 0bfa bt 0x350e // 350e + else if(SIO0->MISR&0X010) //BREAK + 351c: 9349 ld.w r2, (r3, 0x24) + 351e: 3110 movi r1, 16 + 3520: 6884 and r2, r1 + 3522: 3a40 cmpnei r2, 0 + 3524: 0bf5 bt 0x350e // 350e + else if(SIO0->MISR&0X020) //TIMEOUT + 3526: 9349 ld.w r2, (r3, 0x24) + 3528: 3120 movi r1, 32 + 352a: 6884 and r2, r1 + 352c: 3a40 cmpnei r2, 0 + 352e: 0bf0 bt 0x350e // 350e +} + 3530: 1463 ipop + 3532: 1461 nir + 3534: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003538 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3538: 1460 nie + 353a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 353c: 106a lrw r3, 0x2000005c // 3564 + 353e: 3101 movi r1, 1 + 3540: 9360 ld.w r3, (r3, 0x0) + 3542: 237f addi r3, 128 + 3544: 934c ld.w r2, (r3, 0x30) + 3546: 6884 and r2, r1 + 3548: 3a40 cmpnei r2, 0 + 354a: 0c04 bf 0x3552 // 3552 + { + SYSCON->EXICR = EXI_PIN0; + 354c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 354e: 1463 ipop + 3550: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 3552: 3280 movi r2, 128 + 3554: 932c ld.w r1, (r3, 0x30) + 3556: 4249 lsli r2, r2, 9 + 3558: 6848 and r1, r2 + 355a: 3940 cmpnei r1, 0 + 355c: 0ff9 bf 0x354e // 354e + SYSCON->EXICR = EXI_PIN16; + 355e: b34b st.w r2, (r3, 0x2c) +} + 3560: 07f7 br 0x354e // 354e + 3562: 0000 bkpt + 3564: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00003568 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 3568: 1460 nie + 356a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 356c: 106a lrw r3, 0x2000005c // 3594 + 356e: 3102 movi r1, 2 + 3570: 9360 ld.w r3, (r3, 0x0) + 3572: 237f addi r3, 128 + 3574: 934c ld.w r2, (r3, 0x30) + 3576: 6884 and r2, r1 + 3578: 3a40 cmpnei r2, 0 + 357a: 0c04 bf 0x3582 // 3582 + { + SYSCON->EXICR = EXI_PIN1; + 357c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 357e: 1463 ipop + 3580: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 3582: 3280 movi r2, 128 + 3584: 932c ld.w r1, (r3, 0x30) + 3586: 424a lsli r2, r2, 10 + 3588: 6848 and r1, r2 + 358a: 3940 cmpnei r1, 0 + 358c: 0ff9 bf 0x357e // 357e + SYSCON->EXICR = EXI_PIN17; + 358e: b34b st.w r2, (r3, 0x2c) +} + 3590: 07f7 br 0x357e // 357e + 3592: 0000 bkpt + 3594: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00003598 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 3598: 1460 nie + 359a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 359c: 1070 lrw r3, 0x2000005c // 35dc + 359e: 3104 movi r1, 4 + 35a0: 9360 ld.w r3, (r3, 0x0) + 35a2: 237f addi r3, 128 + 35a4: 934c ld.w r2, (r3, 0x30) + 35a6: 6884 and r2, r1 + 35a8: 3a40 cmpnei r2, 0 + 35aa: 0c04 bf 0x35b2 // 35b2 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 35ac: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 35ae: 1463 ipop + 35b0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 35b2: 934c ld.w r2, (r3, 0x30) + 35b4: 3108 movi r1, 8 + 35b6: 6884 and r2, r1 + 35b8: 3a40 cmpnei r2, 0 + 35ba: 0bf9 bt 0x35ac // 35ac + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 35bc: 3280 movi r2, 128 + 35be: 932c ld.w r1, (r3, 0x30) + 35c0: 424b lsli r2, r2, 11 + 35c2: 6848 and r1, r2 + 35c4: 3940 cmpnei r1, 0 + 35c6: 0c03 bf 0x35cc // 35cc + SYSCON->EXICR = EXI_PIN19; + 35c8: b34b st.w r2, (r3, 0x2c) +} + 35ca: 07f2 br 0x35ae // 35ae + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 35cc: 3280 movi r2, 128 + 35ce: 932c ld.w r1, (r3, 0x30) + 35d0: 424c lsli r2, r2, 12 + 35d2: 6848 and r1, r2 + 35d4: 3940 cmpnei r1, 0 + 35d6: 0bf9 bt 0x35c8 // 35c8 + 35d8: 07eb br 0x35ae // 35ae + 35da: 0000 bkpt + 35dc: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000035e0 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 35e0: 1460 nie + 35e2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 35e4: 1075 lrw r3, 0x2000005c // 3638 + 35e6: 3280 movi r2, 128 + 35e8: 9360 ld.w r3, (r3, 0x0) + 35ea: 60c8 addu r3, r2 + 35ec: 932c ld.w r1, (r3, 0x30) + 35ee: 3010 movi r0, 16 + 35f0: 6840 and r1, r0 + 35f2: 3940 cmpnei r1, 0 + 35f4: 0c04 bf 0x35fc // 35fc + { + SYSCON->EXICR = EXI_PIN5; + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 35f6: b30b st.w r0, (r3, 0x2c) + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 35f8: 1463 ipop + 35fa: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 35fc: 932c ld.w r1, (r3, 0x30) + 35fe: 3020 movi r0, 32 + 3600: 6840 and r1, r0 + 3602: 3940 cmpnei r1, 0 + 3604: 0bf9 bt 0x35f6 // 35f6 + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3606: 932c ld.w r1, (r3, 0x30) + 3608: 3040 movi r0, 64 + 360a: 6840 and r1, r0 + 360c: 3940 cmpnei r1, 0 + 360e: 0bf4 bt 0x35f6 // 35f6 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 3610: 932c ld.w r1, (r3, 0x30) + 3612: 6848 and r1, r2 + 3614: 3940 cmpnei r1, 0 + 3616: 0c03 bf 0x361c // 361c + SYSCON->EXICR = EXI_PIN9; + 3618: b34b st.w r2, (r3, 0x2c) +} + 361a: 07ef br 0x35f8 // 35f8 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 361c: 3280 movi r2, 128 + 361e: 932c ld.w r1, (r3, 0x30) + 3620: 4241 lsli r2, r2, 1 + 3622: 6848 and r1, r2 + 3624: 3940 cmpnei r1, 0 + 3626: 0bf9 bt 0x3618 // 3618 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3628: 3280 movi r2, 128 + 362a: 932c ld.w r1, (r3, 0x30) + 362c: 4242 lsli r2, r2, 2 + 362e: 6848 and r1, r2 + 3630: 3940 cmpnei r1, 0 + 3632: 0bf3 bt 0x3618 // 3618 + 3634: 07e2 br 0x35f8 // 35f8 + 3636: 0000 bkpt + 3638: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +0000363c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 363c: 1460 nie + 363e: 1462 ipush + 3640: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 3642: 107d lrw r3, 0x2000005c // 36b4 + 3644: 3280 movi r2, 128 + 3646: 9360 ld.w r3, (r3, 0x0) + 3648: 237f addi r3, 128 + 364a: 932c ld.w r1, (r3, 0x30) + 364c: 4243 lsli r2, r2, 3 + 364e: 6848 and r1, r2 + 3650: 3940 cmpnei r1, 0 + 3652: 0c03 bf 0x3658 // 3658 + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 3654: b34b st.w r2, (r3, 0x2c) + } +} + 3656: 0422 br 0x369a // 369a + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 3658: 3280 movi r2, 128 + 365a: 932c ld.w r1, (r3, 0x30) + 365c: 4244 lsli r2, r2, 4 + 365e: 6848 and r1, r2 + 3660: 3940 cmpnei r1, 0 + 3662: 0bf9 bt 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 3664: 3280 movi r2, 128 + 3666: 932c ld.w r1, (r3, 0x30) + 3668: 4245 lsli r2, r2, 5 + 366a: 6848 and r1, r2 + 366c: 3940 cmpnei r1, 0 + 366e: 0bf3 bt 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 3670: 3280 movi r2, 128 + 3672: 932c ld.w r1, (r3, 0x30) + 3674: 4246 lsli r2, r2, 6 + 3676: 6848 and r1, r2 + 3678: 3940 cmpnei r1, 0 + 367a: 0bed bt 0x3654 // 3654 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 367c: 3280 movi r2, 128 + 367e: 932c ld.w r1, (r3, 0x30) + 3680: 4247 lsli r2, r2, 7 + 3682: 6848 and r1, r2 + 3684: 3940 cmpnei r1, 0 + 3686: 0c0f bf 0x36a4 // 36a4 + SYSCON->EXICR = EXI_PIN14; + 3688: b34b st.w r2, (r3, 0x2c) + if(g_switch.rly_zCnt < 8){ + 368a: 104c lrw r2, 0x200004f8 // 36b8 + 368c: 8272 ld.b r3, (r2, 0x12) + 368e: 3b07 cmphsi r3, 8 + 3690: 0803 bt 0x3696 // 3696 + g_switch.rly_zCnt++; + 3692: 2300 addi r3, 1 + 3694: a272 st.b r3, (r2, 0x12) + RLY_Zero_Control(); //继电器控制 + 3696: e0001e31 bsr 0x72f8 // 72f8 +} + 369a: d9ee2000 ld.w r15, (r14, 0x0) + 369e: 1401 addi r14, r14, 4 + 36a0: 1463 ipop + 36a2: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 36a4: 3280 movi r2, 128 + 36a6: 932c ld.w r1, (r3, 0x30) + 36a8: 4248 lsli r2, r2, 8 + 36aa: 6848 and r1, r2 + 36ac: 3940 cmpnei r1, 0 + 36ae: 0bd3 bt 0x3654 // 3654 + 36b0: 07f5 br 0x369a // 369a + 36b2: 0000 bkpt + 36b4: 2000005c .long 0x2000005c + 36b8: 200004f8 .long 0x200004f8 + +Disassembly of section .text.LPTIntHandler: + +000036bc : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 36bc: 1460 nie + 36be: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 36c0: 106b lrw r3, 0x20000014 // 36ec + 36c2: 3101 movi r1, 1 + 36c4: 9360 ld.w r3, (r3, 0x0) + 36c6: 934e ld.w r2, (r3, 0x38) + 36c8: 6884 and r2, r1 + 36ca: 3a40 cmpnei r2, 0 + 36cc: 0c03 bf 0x36d2 // 36d2 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 36ce: b330 st.w r1, (r3, 0x40) + } +} + 36d0: 040b br 0x36e6 // 36e6 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 36d2: 934e ld.w r2, (r3, 0x38) + 36d4: 3102 movi r1, 2 + 36d6: 6884 and r2, r1 + 36d8: 3a40 cmpnei r2, 0 + 36da: 0bfa bt 0x36ce // 36ce + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 36dc: 934e ld.w r2, (r3, 0x38) + 36de: 3104 movi r1, 4 + 36e0: 6884 and r2, r1 + 36e2: 3a40 cmpnei r2, 0 + 36e4: 0bf5 bt 0x36ce // 36ce +} + 36e6: 1463 ipop + 36e8: 1461 nir + 36ea: 0000 bkpt + 36ec: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000036f0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 36f0: 1460 nie + 36f2: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 36f4: 1071 lrw r3, 0x2000000c // 3738 + 36f6: 3101 movi r1, 1 + 36f8: 9360 ld.w r3, (r3, 0x0) + 36fa: 934c ld.w r2, (r3, 0x30) + 36fc: 6884 and r2, r1 + 36fe: 3a40 cmpnei r2, 0 + 3700: 0c0a bf 0x3714 // 3714 + { + BT0->ICR = BT_PEND; + 3702: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3704: 9341 ld.w r2, (r3, 0x4) + 3706: 3a86 bclri r2, 6 + 3708: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 370a: 9340 ld.w r2, (r3, 0x0) + 370c: 3200 movi r2, 0 + 370e: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 3710: 1463 ipop + 3712: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3714: 934c ld.w r2, (r3, 0x30) + 3716: 3102 movi r1, 2 + 3718: 6884 and r2, r1 + 371a: 3a40 cmpnei r2, 0 + 371c: 0c03 bf 0x3722 // 3722 + BT0->ICR = BT_EVTRG; + 371e: b32d st.w r1, (r3, 0x34) +} + 3720: 07f8 br 0x3710 // 3710 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 3722: 934c ld.w r2, (r3, 0x30) + 3724: 3104 movi r1, 4 + 3726: 6884 and r2, r1 + 3728: 3a40 cmpnei r2, 0 + 372a: 0bfa bt 0x371e // 371e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 372c: 934c ld.w r2, (r3, 0x30) + 372e: 3108 movi r1, 8 + 3730: 6884 and r2, r1 + 3732: 3a40 cmpnei r2, 0 + 3734: 0bf5 bt 0x371e // 371e + 3736: 07ed br 0x3710 // 3710 + 3738: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +0000373c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 373c: 1460 nie + 373e: 1462 ipush + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 3740: 1076 lrw r3, 0x20000008 // 3798 + 3742: 3101 movi r1, 1 + 3744: 9360 ld.w r3, (r3, 0x0) + 3746: 934c ld.w r2, (r3, 0x30) + 3748: 6884 and r2, r1 + 374a: 3a40 cmpnei r2, 0 + 374c: 0c03 bf 0x3752 // 3752 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 374e: b32d st.w r1, (r3, 0x34) + } +} + 3750: 0416 br 0x377c // 377c + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 3752: 934c ld.w r2, (r3, 0x30) + 3754: 3102 movi r1, 2 + 3756: 6884 and r2, r1 + 3758: 3a40 cmpnei r2, 0 + 375a: 0c13 bf 0x3780 // 3780 + BT1->ICR = BT_CMP; + 375c: b32d st.w r1, (r3, 0x34) + NUM++; + 375e: 1070 lrw r3, 0x200000b0 // 379c + 3760: 8340 ld.b r2, (r3, 0x0) + 3762: 2200 addi r2, 1 + 3764: 7488 zextb r2, r2 + SysTick_100us++; + 3766: 9321 ld.w r1, (r3, 0x4) + 3768: 2100 addi r1, 1 + if(NUM >= 10){ + 376a: 3a09 cmphsi r2, 10 + NUM++; + 376c: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 376e: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 3770: 0c06 bf 0x377c // 377c + NUM = 0; + 3772: 3200 movi r2, 0 + 3774: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3776: 9342 ld.w r2, (r3, 0x8) + 3778: 2200 addi r2, 1 + 377a: b342 st.w r2, (r3, 0x8) +} + 377c: 1463 ipop + 377e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3780: 934c ld.w r2, (r3, 0x30) + 3782: 3104 movi r1, 4 + 3784: 6884 and r2, r1 + 3786: 3a40 cmpnei r2, 0 + 3788: 0be3 bt 0x374e // 374e + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 378a: 934c ld.w r2, (r3, 0x30) + 378c: 3108 movi r1, 8 + 378e: 6884 and r2, r1 + 3790: 3a40 cmpnei r2, 0 + 3792: 0bde bt 0x374e // 374e + 3794: 07f4 br 0x377c // 377c + 3796: 0000 bkpt + 3798: 20000008 .long 0x20000008 + 379c: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +000037a0 : + 37a0: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000037a2 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 37a2: 1460 nie + 37a4: 1462 ipush + // ISR content ... + +} + 37a6: 1463 ipop + 37a8: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000037aa : + 37aa: 1460 nie + 37ac: 1462 ipush + 37ae: 1463 ipop + 37b0: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000037b2 : + 37b2: 1460 nie + 37b4: 1462 ipush + 37b6: 1463 ipop + 37b8: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000037ba : + 37ba: 1460 nie + 37bc: 1462 ipush + 37be: 1463 ipop + 37c0: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000037c2 : + 37c2: 1460 nie + 37c4: 1462 ipush + 37c6: 1463 ipop + 37c8: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000037ca : + 37ca: 1460 nie + 37cc: 1462 ipush + 37ce: 1463 ipop + 37d0: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000037d2 : + 37d2: 1460 nie + 37d4: 1462 ipush + 37d6: 1463 ipop + 37d8: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000037da : + 37da: 1460 nie + 37dc: 1462 ipush + 37de: 1463 ipop + 37e0: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000037e2 : + 37e2: 1460 nie + 37e4: 1462 ipush + 37e6: 1463 ipop + 37e8: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000037ea : + 37ea: 1460 nie + 37ec: 1462 ipush + 37ee: 1463 ipop + 37f0: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000037f2 : + 37f2: 1460 nie + 37f4: 1462 ipush + 37f6: 1463 ipop + 37f8: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000037fa : + 37fa: 1460 nie + 37fc: 1462 ipush + 37fe: 1463 ipop + 3800: 1461 nir + +Disassembly of section .text.__divsi3: + +00003804 <__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) +{ + 3804: 14c1 push r4 + int PSR; + __asm volatile( + 3806: c0006023 mfcr r3, cr<0, 0> + 380a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 380e: 1046 lrw r2, 0x20000000 // 3824 <__divsi3+0x20> + 3810: 3400 movi r4, 0 + 3812: 9240 ld.w r2, (r2, 0x0) + 3814: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3816: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3818: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 381a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 381c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3820: 9202 ld.w r0, (r2, 0x8) +} + 3822: 1481 pop r4 + 3824: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003828 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3828: 14c1 push r4 + int PSR; + __asm volatile( + 382a: c0006023 mfcr r3, cr<0, 0> + 382e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3832: 1046 lrw r2, 0x20000000 // 3848 <__udivsi3+0x20> + 3834: 3401 movi r4, 1 + 3836: 9240 ld.w r2, (r2, 0x0) + 3838: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 383a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 383c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 383e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3840: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3844: 9202 ld.w r0, (r2, 0x8) +} + 3846: 1481 pop r4 + 3848: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +0000384c <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 384c: 14c1 push r4 + int PSR; + __asm volatile( + 384e: c0006023 mfcr r3, cr<0, 0> + 3852: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3856: 1046 lrw r2, 0x20000000 // 386c <__modsi3+0x20> + 3858: 3400 movi r4, 0 + 385a: 9240 ld.w r2, (r2, 0x0) + 385c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 385e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3860: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3862: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3864: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3868: 9203 ld.w r0, (r2, 0xc) +} + 386a: 1481 pop r4 + 386c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003870 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3870: 14c1 push r4 + int PSR; + __asm volatile( + 3872: c0006023 mfcr r3, cr<0, 0> + 3876: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 387a: 1046 lrw r2, 0x20000000 // 3890 <__umodsi3+0x20> + 387c: 3401 movi r4, 1 + 387e: 9240 ld.w r2, (r2, 0x0) + 3880: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3882: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3884: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3886: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3888: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 388c: 9203 ld.w r0, (r2, 0xc) +} + 388e: 1481 pop r4 + 3890: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003894 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3894: c1807420 psrset ee, ie +} + 3898: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000389a : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 389a: c0807020 psrclr ie +} + 389e: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000038a0 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; + + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38a0: 14d2 push r4-r5, r15 + switch(uart_id){ + 38a2: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 38a4: 6d07 mov r4, r1 + switch(uart_id){ + 38a6: 0c24 bf 0x38ee // 38ee + 38a8: 3840 cmpnei r0, 0 + 38aa: 0c04 bf 0x38b2 // 38b2 + 38ac: 3842 cmpnei r0, 2 + 38ae: 0c43 bf 0x3934 // 3934 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 38b0: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 38b2: e3fff531 bsr 0x2314 // 2314 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 38b6: 3100 movi r1, 0 + 38b8: 3000 movi r0, 0 + 38ba: e3fff56d bsr 0x2394 // 2394 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 38be: 1175 lrw r3, 0x20000040 // 3990 + 38c0: 3200 movi r2, 0 + 38c2: 9300 ld.w r0, (r3, 0x0) + 38c4: 1134 lrw r1, 0x1388 // 3994 + 38c6: e3fff5e5 bsr 0x2490 // 2490 + UART0_Int_Enable(); + 38ca: e3fff549 bsr 0x235c // 235c + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 38ce: 3278 movi r2, 120 + 38d0: 3100 movi r1, 0 + 38d2: 1112 lrw r0, 0x200002e8 // 3998 + 38d4: e3fff07a bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 38d8: 1171 lrw r3, 0x20000348 // 399c + 38da: 3203 movi r2, 3 + 38dc: a348 st.b r2, (r3, 0x8) + g_uart[UART_0].processing_cf = prt_cf; + 38de: 4c48 lsri r2, r4, 8 + 38e0: a394 st.b r4, (r3, 0x14) + 38e2: a355 st.b r2, (r3, 0x15) + 38e4: 4c50 lsri r2, r4, 16 + 38e6: 4c98 lsri r4, r4, 24 + 38e8: a356 st.b r2, (r3, 0x16) + 38ea: a397 st.b r4, (r3, 0x17) + break; + 38ec: 07e2 br 0x38b0 // 38b0 + UART1_DeInit(); //clear all UART Register + 38ee: e3fff51f bsr 0x232c // 232c + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 38f2: 3102 movi r1, 2 + 38f4: 3001 movi r0, 1 + 38f6: e3fff54f bsr 0x2394 // 2394 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 38fa: 11aa lrw r5, 0x2000003c // 39a0 + 38fc: 31d0 movi r1, 208 + 38fe: 3200 movi r2, 0 + 3900: 4121 lsli r1, r1, 1 + 3902: 9500 ld.w r0, (r5, 0x0) + 3904: e3fff5be bsr 0x2480 // 2480 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3908: 31d0 movi r1, 208 + 390a: 9500 ld.w r0, (r5, 0x0) + 390c: 3200 movi r2, 0 + 390e: 4121 lsli r1, r1, 1 + 3910: e3fff5c0 bsr 0x2490 // 2490 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3914: 3278 movi r2, 120 + 3916: 3100 movi r1, 0 + 3918: 1103 lrw r0, 0x20000360 // 39a4 + 391a: e3fff057 bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 391e: 1163 lrw r3, 0x200003c8 // 39a8 + 3920: 3203 movi r2, 3 + 3922: a340 st.b r2, (r3, 0x0) + g_uart[UART_1].processing_cf = prt_cf; + 3924: 4c48 lsri r2, r4, 8 + 3926: a38c st.b r4, (r3, 0xc) + 3928: a34d st.b r2, (r3, 0xd) + 392a: 4c50 lsri r2, r4, 16 + 392c: 4c98 lsri r4, r4, 24 + 392e: a34e st.b r2, (r3, 0xe) + 3930: a38f st.b r4, (r3, 0xf) + break; + 3932: 07bf br 0x38b0 // 38b0 + UART2_DeInit(); //clear all UART Register + 3934: e3fff508 bsr 0x2344 // 2344 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3938: 3102 movi r1, 2 + 393a: 3002 movi r0, 2 + 393c: e3fff52c bsr 0x2394 // 2394 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3940: 107b lrw r3, 0x20000038 // 39ac + 3942: 3200 movi r2, 0 + 3944: 9300 ld.w r0, (r3, 0x0) + 3946: 1034 lrw r1, 0x1388 // 3994 + 3948: e3fff5a4 bsr 0x2490 // 2490 + UART2_Int_Enable(); + 394c: e3fff516 bsr 0x2378 // 2378 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3950: 3278 movi r2, 120 + 3952: 3100 movi r1, 0 + 3954: 1017 lrw r0, 0x200003d8 // 39b0 + 3956: e3fff039 bsr 0x19c8 // 19c8 <__memset_fast> + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 395a: 1077 lrw r3, 0x20000428 // 39b4 + 395c: 3203 movi r2, 3 + 395e: a358 st.b r2, (r3, 0x18) + g_uart[UART_2].processing_cf = prt_cf; + 3960: 231f addi r3, 32 + 3962: 4c48 lsri r2, r4, 8 + 3964: a384 st.b r4, (r3, 0x4) + 3966: a345 st.b r2, (r3, 0x5) + 3968: 4c50 lsri r2, r4, 16 + 396a: 4c98 lsri r4, r4, 24 + 396c: a387 st.b r4, (r3, 0x7) + 396e: a346 st.b r2, (r3, 0x6) + GPIO_Init(GPIOB0,3,Output); + 3970: 3103 movi r1, 3 + 3972: 1092 lrw r4, 0x20000048 // 39b8 + 3974: 3200 movi r2, 0 + 3976: 9400 ld.w r0, (r4, 0x0) + 3978: e3fff264 bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOB0,3); + 397c: 9400 ld.w r0, (r4, 0x0) + 397e: 3103 movi r1, 3 + 3980: e3fff2da bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOB0,3); + 3984: 9400 ld.w r0, (r4, 0x0) + 3986: 3103 movi r1, 3 + 3988: e3fff3e6 bsr 0x2154 // 2154 +} + 398c: 0792 br 0x38b0 // 38b0 + 398e: 0000 bkpt + 3990: 20000040 .long 0x20000040 + 3994: 00001388 .long 0x00001388 + 3998: 200002e8 .long 0x200002e8 + 399c: 20000348 .long 0x20000348 + 39a0: 2000003c .long 0x2000003c + 39a4: 20000360 .long 0x20000360 + 39a8: 200003c8 .long 0x200003c8 + 39ac: 20000038 .long 0x20000038 + 39b0: 200003d8 .long 0x200003d8 + 39b4: 20000428 .long 0x20000428 + 39b8: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000039bc : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 39bc: 14c2 push r4-r5 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 39be: 1057 lrw r2, 0x2000043e // 3a18 + 39c0: 8261 ld.b r3, (r2, 0x1) + 39c2: 8280 ld.b r4, (r2, 0x0) + 39c4: 4368 lsli r3, r3, 8 + 39c6: 6cd0 or r3, r4 + 39c8: 3462 movi r4, 98 + 39ca: 5a22 addi r1, r2, 1 + 39cc: 64d1 cmplt r4, r3 + 39ce: 6d07 mov r4, r1 + 39d0: 0c04 bf 0x39d8 // 39d8 + 39d2: 3300 movi r3, 0 + 39d4: a260 st.b r3, (r2, 0x0) + 39d6: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 39d8: 8460 ld.b r3, (r4, 0x0) + 39da: 82a0 ld.b r5, (r2, 0x0) + 39dc: 4368 lsli r3, r3, 8 + 39de: 6cd4 or r3, r5 + 39e0: 102f lrw r1, 0x200002e8 // 3a1c + 39e2: 5b82 addi r4, r3, 1 + 39e4: 7511 zexth r4, r4 + 39e6: 60c4 addu r3, r1 + 39e8: a280 st.b r4, (r2, 0x0) + 39ea: 23ef addi r3, 240 + 39ec: 4c88 lsri r4, r4, 8 + 39ee: a300 st.b r0, (r3, 0x0) + 39f0: a281 st.b r4, (r2, 0x1) + +// uart_receive_input((U8_T)data); + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 39f2: 32a0 movi r2, 160 + 39f4: 106b lrw r3, 0x200000b8 // 3a20 + 39f6: 4241 lsli r2, r2, 1 + 39f8: 9360 ld.w r3, (r3, 0x0) + 39fa: 6084 addu r2, r1 + 39fc: 4b08 lsri r0, r3, 8 + 39fe: a27c st.b r3, (r2, 0x1c) + 3a00: a21d st.b r0, (r2, 0x1d) + 3a02: 4b10 lsri r0, r3, 16 + 3a04: 4b78 lsri r3, r3, 24 + 3a06: a27f st.b r3, (r2, 0x1f) + g_uart[UART_2].Receiving = 0x01; + 3a08: 33aa movi r3, 170 + 3a0a: 4361 lsli r3, r3, 1 + 3a0c: 604c addu r1, r3 + 3a0e: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a10: a21e st.b r0, (r2, 0x1e) + g_uart[UART_2].Receiving = 0x01; + 3a12: a160 st.b r3, (r1, 0x0) +} + 3a14: 1482 pop r4-r5 + 3a16: 0000 bkpt + 3a18: 2000043e .long 0x2000043e + 3a1c: 200002e8 .long 0x200002e8 + 3a20: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_TASK: + +00003a24 : + + +void UART2_TASK(void){ + 3a24: 14d4 push r4-r7, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3a26: 118b lrw r4, 0x2000043c // 3ad0 + 3a28: 8460 ld.b r3, (r4, 0x0) + 3a2a: 3b41 cmpnei r3, 1 + 3a2c: 0851 bt 0x3ace // 3ace + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3a2e: 8449 ld.b r2, (r4, 0x9) + 3a30: 8468 ld.b r3, (r4, 0x8) + 3a32: 4248 lsli r2, r2, 8 + 3a34: 6c8c or r2, r3 + 3a36: 846a ld.b r3, (r4, 0xa) + 3a38: 4370 lsli r3, r3, 16 + 3a3a: 6c8c or r2, r3 + 3a3c: 846b ld.b r3, (r4, 0xb) + 3a3e: 11a6 lrw r5, 0x200000b8 // 3ad4 + 3a40: 4378 lsli r3, r3, 24 + 3a42: 6cc8 or r3, r2 + 3a44: 9520 ld.w r1, (r5, 0x0) + 3a46: 8445 ld.b r2, (r4, 0x5) + 3a48: 604e subu r1, r3 + 3a4a: 4248 lsli r2, r2, 8 + 3a4c: 8464 ld.b r3, (r4, 0x4) + 3a4e: 6c8c or r2, r3 + 3a50: 8466 ld.b r3, (r4, 0x6) + 3a52: 4370 lsli r3, r3, 16 + 3a54: 6c8c or r2, r3 + 3a56: 8467 ld.b r3, (r4, 0x7) + 3a58: 4378 lsli r3, r3, 24 + 3a5a: 6cc8 or r3, r2 + 3a5c: 644c cmphs r3, r1 + 3a5e: 0838 bt 0x3ace // 3ace + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 3a60: e3fff1c0 bsr 0x1de0 // 1de0 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3a64: 9560 ld.w r3, (r5, 0x0) + 3a66: 105d lrw r2, 0x20000428 // 3ad8 + 3a68: 4b28 lsri r1, r3, 8 + 3a6a: a27c st.b r3, (r2, 0x1c) + 3a6c: a23d st.b r1, (r2, 0x1d) + 3a6e: 4b30 lsri r1, r3, 16 + 3a70: 4b78 lsri r3, r3, 24 + 3a72: a23e st.b r1, (r2, 0x1e) + 3a74: a27f st.b r3, (r2, 0x1f) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3a76: 84a3 ld.b r5, (r4, 0x3) + 3a78: 8462 ld.b r3, (r4, 0x2) + 3a7a: 45a8 lsli r5, r5, 8 + 3a7c: 6d4c or r5, r3 + 3a7e: 6c97 mov r2, r5 + 3a80: 1037 lrw r1, 0x200003d8 // 3adc + 3a82: 1018 lrw r0, 0x200000bc // 3ae0 + 3a84: e3ffefe6 bsr 0x1a50 // 1a50 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3a88: 10d7 lrw r6, 0x200000fc // 3ae4 + g_uart[UART_2].RecvLen = 0; + 3a8a: 3300 movi r3, 0 + 3a8c: a462 st.b r3, (r4, 0x2) + 3a8e: a463 st.b r3, (r4, 0x3) + g_uart[UART_2].Receiving = 0; + 3a90: a460 st.b r3, (r4, 0x0) + DealLen = g_uart[UART_2].RecvLen; + 3a92: aeb2 st.h r5, (r6, 0x24) + SYSCON_Int_Enable(); + 3a94: e3fff1a0 bsr 0x1dd4 // 1dd4 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3a98: 8451 ld.b r2, (r4, 0x11) + 3a9a: 8470 ld.b r3, (r4, 0x10) + 3a9c: 4248 lsli r2, r2, 8 + 3a9e: 6c8c or r2, r3 + 3aa0: 8472 ld.b r3, (r4, 0x12) + 3aa2: 4370 lsli r3, r3, 16 + 3aa4: 6c8c or r2, r3 + 3aa6: 8473 ld.b r3, (r4, 0x13) + 3aa8: 4378 lsli r3, r3, 24 + 3aaa: 6cc8 or r3, r2 + 3aac: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3aae: 5ce6 addi r7, r4, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 3ab0: 0c0a bf 0x3ac4 // 3ac4 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 3ab2: 8e32 ld.h r1, (r6, 0x24) + 3ab4: 100b lrw r0, 0x200000bc // 3ae0 + 3ab6: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3ab8: 3841 cmpnei r0, 1 + 3aba: 0805 bt 0x3ac4 // 3ac4 + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 3abc: 8e32 ld.h r1, (r6, 0x24) + 3abe: 1009 lrw r0, 0x200000bc // 3ae0 + 3ac0: e00003d4 bsr 0x4268 // 4268 + } + +// g_uart[UART_2].RecvLen = 0; +// g_uart[UART_2].Receiving = 0; + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3ac4: 3264 movi r2, 100 + 3ac6: 3100 movi r1, 0 + 3ac8: 1006 lrw r0, 0x200000bc // 3ae0 + 3aca: e3ffef7f bsr 0x19c8 // 19c8 <__memset_fast> + + } + } +} + 3ace: 1494 pop r4-r7, r15 + 3ad0: 2000043c .long 0x2000043c + 3ad4: 200000b8 .long 0x200000b8 + 3ad8: 20000428 .long 0x20000428 + 3adc: 200003d8 .long 0x200003d8 + 3ae0: 200000bc .long 0x200000bc + 3ae4: 200000fc .long 0x200000fc + +Disassembly of section .text.MCU485_SendData: + +00003ae8 : + }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){ + 3ae8: 14d4 push r4-r7, r15 + 3aea: 1421 subi r14, r14, 4 + 3aec: b800 st.w r0, (r14, 0x0) + 3aee: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 3af0: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3af2: 109d lrw r4, 0x200000bc // 3b64 + 3af4: 10dd lrw r6, 0x20000048 // 3b68 + 3af6: 947a ld.w r3, (r4, 0x68) + 3af8: 3b41 cmpnei r3, 1 + 3afa: 0c29 bf 0x3b4c // 3b4c + } + + GPIO_Reverse(GPIOB0,3); + } + + delay_nus(500); + 3afc: 30fa movi r0, 250 + 3afe: 4001 lsli r0, r0, 1 + 3b00: e3fff8d4 bsr 0x2ca8 // 2ca8 + GPIO_Write_High(GPIOB0,3); + 3b04: 3103 movi r1, 3 + 3b06: 9600 ld.w r0, (r6, 0x0) + 3b08: e3fff322 bsr 0x214c // 214c + + RS485_Comm_Flag = 0x01; + 3b0c: 3301 movi r3, 1 + 3b0e: b47b st.w r3, (r4, 0x6c) + RS485_Comm_Start = 0x00; + 3b10: 3300 movi r3, 0 + 3b12: b47c st.w r3, (r4, 0x70) + RS485_Comm_End = 0x00; + 3b14: b47d st.w r3, (r4, 0x74) + + UARTTransmit(UART2,buff,len); + 3b16: 6c9f mov r2, r7 + 3b18: 1075 lrw r3, 0x20000038 // 3b6c + 3b1a: 9300 ld.w r0, (r3, 0x0) + 3b1c: 9820 ld.w r1, (r14, 0x0) + 3b1e: e3fff4c1 bsr 0x24a0 // 24a0 + + do{ + delay_nus(100); + 3b22: 3064 movi r0, 100 + 3b24: e3fff8c2 bsr 0x2ca8 // 2ca8 + + delay_cnt ++; + 3b28: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b2a: 3363 movi r3, 99 + 3b2c: 654c cmphs r3, r5 + 3b2e: 0c07 bf 0x3b3c // 3b3c + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3b30: 947c ld.w r3, (r4, 0x70) + 3b32: 65cd cmplt r3, r7 + 3b34: 0bf7 bt 0x3b22 // 3b22 + 3b36: 947d ld.w r3, (r4, 0x74) + 3b38: 65cd cmplt r3, r7 + 3b3a: 0bf4 bt 0x3b22 // 3b22 + + GPIO_Write_Low(GPIOB0,3); + 3b3c: 9600 ld.w r0, (r6, 0x0) + 3b3e: 3103 movi r1, 3 + 3b40: e3fff30a bsr 0x2154 // 2154 + + RS485_Comm_Flag = 0x00; + 3b44: 3300 movi r3, 0 + 3b46: b47b st.w r3, (r4, 0x6c) +} + 3b48: 1401 addi r14, r14, 4 + 3b4a: 1494 pop r4-r7, r15 + delay_nus(100); + 3b4c: 3064 movi r0, 100 + 3b4e: e3fff8ad bsr 0x2ca8 // 2ca8 + delay_cnt ++; + 3b52: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3b54: 3364 movi r3, 100 + 3b56: 64d6 cmpne r5, r3 + 3b58: 0fd2 bf 0x3afc // 3afc + GPIO_Reverse(GPIOB0,3); + 3b5a: 3103 movi r1, 3 + 3b5c: 9600 ld.w r0, (r6, 0x0) + 3b5e: e3fff2ff bsr 0x215c // 215c + 3b62: 07ca br 0x3af6 // 3af6 + 3b64: 200000bc .long 0x200000bc + 3b68: 20000048 .long 0x20000048 + 3b6c: 20000038 .long 0x20000038 + +Disassembly of section .text.Dbg_Println: + +00003b70 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3b70: 1423 subi r14, r14, 12 + 3b72: b862 st.w r3, (r14, 0x8) + 3b74: b841 st.w r2, (r14, 0x4) + 3b76: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3b78: 1403 addi r14, r14, 12 + 3b7a: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003b7c : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3b7c: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003b80 : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 3b80: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3b82: 3234 movi r2, 52 + 3b84: 3100 movi r1, 0 + 3b86: 1014 lrw r0, 0x2000046c // 3bd4 + 3b88: e3ffef20 bsr 0x19c8 // 19c8 <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3b8c: 321c movi r2, 28 + 3b8e: 3100 movi r1, 0 + 3b90: 1012 lrw r0, 0x20000450 // 3bd8 + 3b92: e3ffef1b bsr 0x19c8 // 19c8 <__memset_fast> +// g_tk_filt[i].base_update_en = 0x01; +// } + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b96: 1092 lrw r4, 0x200004a0 // 3bdc + EEPROM_Init(); //按键库初始化前先读取参数 + 3b98: e0000492 bsr 0x44bc // 44bc + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3b9c: 8405 ld.b r0, (r4, 0x5) + 3b9e: 102f lrw r1, 0x20000450 // 3bd8 + 3ba0: e00004f0 bsr 0x4580 // 4580 + if(rev == 0x00){ + 3ba4: 3840 cmpnei r0, 0 + 3ba6: 080e bt 0x3bc2 // 3bc2 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3ba8: 8405 ld.b r0, (r4, 0x5) + 3baa: 102c lrw r1, 0x20000450 // 3bd8 + 3bac: e0000540 bsr 0x462c // 462c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3bb0: 100a lrw r0, 0x20000450 // 3bd8 + 3bb2: e00005b1 bsr 0x4714 // 4714 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3bb6: e000232d bsr 0x8210 // 8210 + + base_update_f = 0x01; //触摸状态强制更新 + 3bba: 106a lrw r3, 0x200006af // 3be0 + 3bbc: 3201 movi r2, 1 + 3bbe: a340 st.b r2, (r3, 0x0) + +} + 3bc0: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3bc2: 1029 lrw r1, 0x8ada // 3be4 + 3bc4: 3000 movi r0, 0 + 3bc6: e3ffffd5 bsr 0x3b70 // 3b70 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3bca: 8405 ld.b r0, (r4, 0x5) + 3bcc: 1023 lrw r1, 0x20000450 // 3bd8 + 3bce: e0000583 bsr 0x46d4 // 46d4 + 3bd2: 07ef br 0x3bb0 // 3bb0 + 3bd4: 2000046c .long 0x2000046c + 3bd8: 20000450 .long 0x20000450 + 3bdc: 200004a0 .long 0x200004a0 + 3be0: 200006af .long 0x200006af + 3be4: 00008ada .long 0x00008ada + +Disassembly of section .text.TouchKey_RS485_Printf: + +00003be8 : + DBG_SendByte(Key_Map>>8); + DBG_SendByte(Key_Map&0xff); + +} + +void TouchKey_RS485_Printf(void){ + 3be8: 14d3 push r4-r6, r15 + 3bea: 142d subi r14, r14, 52 + U8_T send_len = 0; + + send_buff[send_len++] = 0x0D; + send_buff[send_len++] = 0x0A; + + U8_T i=MCU_Touch_CH[0]; + 3bec: 1289 lrw r4, 0x20000068 // 3d10 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bee: 8400 ld.b r0, (r4, 0x0) + 3bf0: 1229 lrw r1, 0x200007fa // 3d14 + 3bf2: 4001 lsli r0, r0, 1 + send_buff[send_len++] = 0x0D; + 3bf4: 330d movi r3, 13 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3bf6: 5940 addu r2, r1, r0 + send_buff[send_len++] = 0x0D; + 3bf8: dc6e0000 st.b r3, (r14, 0x0) + send_buff[send_len++] = 0x0A; + 3bfc: 330a movi r3, 10 + 3bfe: dc6e0001 st.b r3, (r14, 0x1) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c02: 8a60 ld.h r3, (r2, 0x0) + 3c04: 4b68 lsri r3, r3, 8 + 3c06: dc6e0002 st.b r3, (r14, 0x2) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c0a: 8a60 ld.h r3, (r2, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c0c: 1243 lrw r2, 0x2000083e // 3d18 + 3c0e: 5aa0 addu r5, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c10: dc6e0003 st.b r3, (r14, 0x3) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c14: 8d60 ld.h r3, (r5, 0x0) + 3c16: 4b68 lsri r3, r3, 8 + 3c18: dc6e0004 st.b r3, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c1c: 8d60 ld.h r3, (r5, 0x0) + 3c1e: dc6e0005 st.b r3, (r14, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c22: 117f lrw r3, 0x20000598 // 3d1c + 3c24: 600c addu r0, r3 + 3c26: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c28: 8800 ld.h r0, (r0, 0x0) + 3c2a: dc0e0007 st.b r0, (r14, 0x7) + + i=MCU_Touch_CH[1]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c2e: 8401 ld.b r0, (r4, 0x1) + 3c30: 4001 lsli r0, r0, 1 + 3c32: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c34: 4da8 lsri r5, r5, 8 + 3c36: dcae0006 st.b r5, (r14, 0x6) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c3a: 8ea0 ld.h r5, (r6, 0x0) + 3c3c: 4da8 lsri r5, r5, 8 + 3c3e: dcae0008 st.b r5, (r14, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c42: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c44: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c46: dcae0009 st.b r5, (r14, 0x9) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c4a: 8ea0 ld.h r5, (r6, 0x0) + 3c4c: 4da8 lsri r5, r5, 8 + 3c4e: dcae000a st.b r5, (r14, 0xa) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c52: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c54: 8ea0 ld.h r5, (r6, 0x0) + 3c56: dcae000b st.b r5, (r14, 0xb) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c5a: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c5c: 8800 ld.h r0, (r0, 0x0) + 3c5e: dc0e000d st.b r0, (r14, 0xd) + + i=MCU_Touch_CH[2]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c62: 8402 ld.b r0, (r4, 0x2) + 3c64: 4001 lsli r0, r0, 1 + 3c66: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c68: 4da8 lsri r5, r5, 8 + 3c6a: dcae000c st.b r5, (r14, 0xc) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c6e: 8ea0 ld.h r5, (r6, 0x0) + 3c70: 4da8 lsri r5, r5, 8 + 3c72: dcae000e st.b r5, (r14, 0xe) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c76: 8ea0 ld.h r5, (r6, 0x0) + + + send_buff[send_len++] = sampling_data0[i]>>8; + 3c78: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3c7a: dcae000f st.b r5, (r14, 0xf) + send_buff[send_len++] = sampling_data0[i]>>8; + 3c7e: 8ea0 ld.h r5, (r6, 0x0) + 3c80: 4da8 lsri r5, r5, 8 + 3c82: dcae0010 st.b r5, (r14, 0x10) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3c86: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3c88: 8ea0 ld.h r5, (r6, 0x0) + 3c8a: dcae0011 st.b r5, (r14, 0x11) + send_buff[send_len++] = baseline_data0[i]>>8; + 3c8e: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3c90: 8800 ld.h r0, (r0, 0x0) + 3c92: dc0e0013 st.b r0, (r14, 0x13) + + i=MCU_Touch_CH[3]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3c96: 8403 ld.b r0, (r4, 0x3) + 3c98: 4001 lsli r0, r0, 1 + 3c9a: 59c0 addu r6, r1, r0 + send_buff[send_len++] = baseline_data0[i]>>8; + 3c9c: 4da8 lsri r5, r5, 8 + 3c9e: dcae0012 st.b r5, (r14, 0x12) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ca2: 8ea0 ld.h r5, (r6, 0x0) + 3ca4: 4da8 lsri r5, r5, 8 + 3ca6: dcae0014 st.b r5, (r14, 0x14) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3caa: 8ea0 ld.h r5, (r6, 0x0) + + send_buff[send_len++] = sampling_data0[i]>>8; + 3cac: 5ac0 addu r6, r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3cae: dcae0015 st.b r5, (r14, 0x15) + send_buff[send_len++] = sampling_data0[i]>>8; + 3cb2: 8ea0 ld.h r5, (r6, 0x0) + 3cb4: 4da8 lsri r5, r5, 8 + 3cb6: dcae0016 st.b r5, (r14, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cba: 600c addu r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cbc: 8ea0 ld.h r5, (r6, 0x0) + 3cbe: dcae0017 st.b r5, (r14, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cc2: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3cc4: 8800 ld.h r0, (r0, 0x0) + 3cc6: dc0e0019 st.b r0, (r14, 0x19) + + i=MCU_Touch_CH[4]; + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cca: 8404 ld.b r0, (r4, 0x4) + 3ccc: 4001 lsli r0, r0, 1 + 3cce: 6040 addu r1, r0 + 3cd0: 8980 ld.h r4, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + + send_buff[send_len++] = sampling_data0[i]>>8; + 3cd2: 6080 addu r2, r0 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3cd4: 8920 ld.h r1, (r1, 0x0) + 3cd6: dc2e001b st.b r1, (r14, 0x1b) + send_buff[send_len++] = sampling_data0[i]&0xff; + send_buff[send_len++] = baseline_data0[i]>>8; + 3cda: 60c0 addu r3, r0 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cdc: 8a20 ld.h r1, (r2, 0x0) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3cde: 8a40 ld.h r2, (r2, 0x0) + 3ce0: dc4e001d st.b r2, (r14, 0x1d) + send_buff[send_len++] = baseline_data0[i]>>8; + 3ce4: 8b40 ld.h r2, (r3, 0x0) + 3ce6: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = baseline_data0[i]>>8; + 3ce8: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cea: 4c88 lsri r4, r4, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3cec: 4928 lsri r1, r1, 8 + 3cee: dc2e001c st.b r1, (r14, 0x1c) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cf2: dc4e001e st.b r2, (r14, 0x1e) + send_buff[send_len++] = baseline_data0[i]>>8; + 3cf6: dcae0018 st.b r5, (r14, 0x18) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3cfa: dc8e001a st.b r4, (r14, 0x1a) + +// i=12; +// send_buff[send_len++] = offset_data0_abs[i]>>8; +// send_buff[send_len++] = offset_data0_abs[i]&0xff; + + MCU485_SendData(send_buff,send_len); + 3cfe: 3120 movi r1, 32 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3d00: 8b60 ld.h r3, (r3, 0x0) + MCU485_SendData(send_buff,send_len); + 3d02: 6c3b mov r0, r14 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3d04: dc6e001f st.b r3, (r14, 0x1f) + MCU485_SendData(send_buff,send_len); + 3d08: e3fffef0 bsr 0x3ae8 // 3ae8 +// UARTTransmit(UART2,send_buff,send_len); + +} + 3d0c: 140d addi r14, r14, 52 + 3d0e: 1493 pop r4-r6, r15 + 3d10: 20000068 .long 0x20000068 + 3d14: 200007fa .long 0x200007fa + 3d18: 2000083e .long 0x2000083e + 3d1c: 20000598 .long 0x20000598 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003d20 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3d20: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3d22: 3804 cmphsi r0, 5 + 3d24: 0818 bt 0x3d54 // 3d54 + 3d26: 106d lrw r3, 0x2000046c // 3d58 + 3d28: e3ffe7ea bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3d2c: 0e0b0803 .long 0x0e0b0803 + 3d30: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3d32: 930a ld.w r0, (r3, 0x28) + 3d34: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3d36: 3301 movi r3, 1 + U8_T state = 0; + 3d38: 680c and r0, r3 +// } + break; + } + + return state; +} + 3d3a: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3d3c: 930a ld.w r0, (r3, 0x28) + 3d3e: 480a lsri r0, r0, 10 + 3d40: 07fb br 0x3d36 // 3d36 + if(g_key.key_state & 0x0800){ + 3d42: 930a ld.w r0, (r3, 0x28) + 3d44: 480b lsri r0, r0, 11 + 3d46: 07f8 br 0x3d36 // 3d36 + if(g_key.key_state & 0x1000){ + 3d48: 930a ld.w r0, (r3, 0x28) + 3d4a: 480c lsri r0, r0, 12 + 3d4c: 07f5 br 0x3d36 // 3d36 + if(g_key.key_state & 0x2000){ + 3d4e: 930a ld.w r0, (r3, 0x28) + 3d50: 480d lsri r0, r0, 13 + 3d52: 07f2 br 0x3d36 // 3d36 + U8_T state = 0; + 3d54: 3000 movi r0, 0 + 3d56: 07f2 br 0x3d3a // 3d3a + 3d58: 2000046c .long 0x2000046c + +Disassembly of section .text.Touch_Key_Event_Handling: + +00003d5c : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 3d5c: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 3d5e: 118a lrw r4, 0x2000046c // 3e04 + 3d60: 8465 ld.b r3, (r4, 0x5) + 3d62: 3b42 cmpnei r3, 2 + 3d64: 081c bt 0x3d9c // 3d9c + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3d66: 3300 movi r3, 0 + 3d68: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 3d6a: 8466 ld.b r3, (r4, 0x6) + 3d6c: 3b42 cmpnei r3, 2 + 3d6e: 0820 bt 0x3dae // 3dae + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3d70: 3300 movi r3, 0 + 3d72: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 3d74: 8467 ld.b r3, (r4, 0x7) + 3d76: 3b42 cmpnei r3, 2 + 3d78: 0824 bt 0x3dc0 // 3dc0 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3d7a: 3300 movi r3, 0 + 3d7c: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 3d7e: e0001537 bsr 0x67ec // 67ec + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 3d82: 8468 ld.b r3, (r4, 0x8) + 3d84: 3b42 cmpnei r3, 2 + 3d86: 0829 bt 0x3dd8 // 3dd8 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3d88: 3300 movi r3, 0 + 3d8a: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 3d8c: e00015f4 bsr 0x6974 // 6974 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 3d90: 8469 ld.b r3, (r4, 0x9) + 3d92: 3b42 cmpnei r3, 2 + 3d94: 082e bt 0x3df0 // 3df0 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3d96: 3300 movi r3, 0 + 3d98: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 3d9a: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3d9c: 3b44 cmpnei r3, 4 + 3d9e: 0fe4 bf 0x3d66 // 3d66 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 3da0: 3b41 cmpnei r3, 1 + 3da2: 0be4 bt 0x3d6a // 3d6a + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 3da4: 3300 movi r3, 0 + 3da6: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 3da8: e00013ba bsr 0x651c // 651c + 3dac: 07df br 0x3d6a // 3d6a + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dae: 3b44 cmpnei r3, 4 + 3db0: 0fe0 bf 0x3d70 // 3d70 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 3db2: 3b41 cmpnei r3, 1 + 3db4: 0be0 bt 0x3d74 // 3d74 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 3db6: 3300 movi r3, 0 + 3db8: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 3dba: e0001421 bsr 0x65fc // 65fc + 3dbe: 07db br 0x3d74 // 3d74 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dc0: 3b44 cmpnei r3, 4 + 3dc2: 0804 bt 0x3dca // 3dca + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3dc4: 3300 movi r3, 0 + 3dc6: a467 st.b r3, (r4, 0x7) + 3dc8: 07dd br 0x3d82 // 3d82 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 3dca: 3b41 cmpnei r3, 1 + 3dcc: 0bdb bt 0x3d82 // 3d82 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 3dce: 3300 movi r3, 0 + 3dd0: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 3dd2: e0001485 bsr 0x66dc // 66dc + 3dd6: 07d6 br 0x3d82 // 3d82 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3dd8: 3b44 cmpnei r3, 4 + 3dda: 0804 bt 0x3de2 // 3de2 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3ddc: 3300 movi r3, 0 + 3dde: a468 st.b r3, (r4, 0x8) + 3de0: 07d8 br 0x3d90 // 3d90 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 3de2: 3b41 cmpnei r3, 1 + 3de4: 0bd6 bt 0x3d90 // 3d90 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 3de6: 3300 movi r3, 0 + 3de8: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 3dea: e000153d bsr 0x6864 // 6864 + 3dee: 07d1 br 0x3d90 // 3d90 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 3df0: 3b44 cmpnei r3, 4 + 3df2: 0fd2 bf 0x3d96 // 3d96 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 3df4: 3b41 cmpnei r3, 1 + 3df6: 0bd2 bt 0x3d9a // 3d9a + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 3df8: 3300 movi r3, 0 + 3dfa: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 3dfc: e00015f8 bsr 0x69ec // 69ec +} + 3e00: 07cd br 0x3d9a // 3d9a + 3e02: 0000 bkpt + 3e04: 2000046c .long 0x2000046c + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00003e08 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 3e08: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 3e0a: 106c lrw r3, 0x20000589 // 3e38 + 3e0c: 8340 ld.b r2, (r3, 0x0) + 3e0e: 3a41 cmpnei r2, 1 + 3e10: 0c04 bf 0x3e18 // 3e18 + 3e12: 8362 ld.b r3, (r3, 0x2) + 3e14: 3b45 cmpnei r3, 5 + 3e16: 0c10 bf 0x3e36 // 3e36 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 3e18: 1069 lrw r3, 0x2000046c // 3e3c + 3e1a: 835b ld.b r2, (r3, 0x1b) + 3e1c: 3a41 cmpnei r2, 1 + 3e1e: 080c bt 0x3e36 // 3e36 + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 3e20: 1028 lrw r1, 0x200000b8 // 3e40 + 3e22: 9140 ld.w r2, (r1, 0x0) + 3e24: 930c ld.w r0, (r3, 0x30) + 3e26: 6082 subu r2, r0 + 3e28: 3095 movi r0, 149 + 3e2a: 6480 cmphs r0, r2 + 3e2c: 0805 bt 0x3e36 // 3e36 + g_key.key_dug_tick = SysTick_1ms; + 3e2e: 9140 ld.w r2, (r1, 0x0) + 3e30: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + TouchKey_RS485_Printf(); + 3e32: e3fffedb bsr 0x3be8 // 3be8 + } + } +} + 3e36: 1490 pop r15 + 3e38: 20000589 .long 0x20000589 + 3e3c: 2000046c .long 0x2000046c + 3e40: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Touch_Key_Task: + +00003e44 : +void Touch_Key_Task(void){ + 3e44: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 3e46: 1138 lrw r1, 0x200000b8 // 3f24 + 3e48: 1178 lrw r3, 0x2000046c // 3f28 + 3e4a: 9140 ld.w r2, (r1, 0x0) + 3e4c: 930b ld.w r0, (r3, 0x2c) + 3e4e: 6082 subu r2, r0 + 3e50: 3a04 cmphsi r2, 5 + 3e52: 0806 bt 0x3e5e // 3e5e + break; + } + } + } + + Touch_Key_Event_Handling(); + 3e54: e3ffff84 bsr 0x3d5c // 3d5c + + TouchKey_Set_Interface_Task(); + 3e58: e3ffffd8 bsr 0x3e08 // 3e08 + +} + 3e5c: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 3e5e: 9140 ld.w r2, (r1, 0x0) + 3e60: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 3e62: 1133 lrw r1, 0x200006cc // 3f2c + 3e64: 9140 ld.w r2, (r1, 0x0) + 3e66: 3a40 cmpnei r2, 0 + 3e68: 0c02 bf 0x3e6c // 3e6c + g_key.key_state = Key_Map; + 3e6a: 9140 ld.w r2, (r1, 0x0) + 3e6c: 118f lrw r4, 0x2000046c // 3f28 +void Touch_Key_Task(void){ + 3e6e: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 3e70: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 3e72: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3e74: 11ef lrw r7, 0x257 // 3f30 + switch (g_key.KEY_STA[i]) { + 3e76: 8460 ld.b r3, (r4, 0x0) + 3e78: 3b41 cmpnei r3, 1 + 3e7a: 0c28 bf 0x3eca // 3eca + 3e7c: 3b40 cmpnei r3, 0 + 3e7e: 0c0a bf 0x3e92 // 3e92 + 3e80: 3b42 cmpnei r3, 2 + 3e82: 0c41 bf 0x3f04 // 3f04 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 3e84: 2500 addi r5, 1 + 3e86: 7554 zextb r5, r5 + 3e88: 3d45 cmpnei r5, 5 + 3e8a: 2400 addi r4, 1 + 3e8c: 2601 addi r6, 2 + 3e8e: 0bf4 bt 0x3e76 // 3e76 + 3e90: 07e2 br 0x3e54 // 3e54 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 3e92: 6c17 mov r0, r5 + 3e94: e3ffff46 bsr 0x3d20 // 3d20 + 3e98: 3841 cmpnei r0, 1 + 3e9a: 0813 bt 0x3ec0 // 3ec0 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 3e9c: 8474 ld.b r3, (r4, 0x14) + 3e9e: 3b01 cmphsi r3, 2 + 3ea0: 0804 bt 0x3ea8 // 3ea8 + g_key.delayCnt[i]++; + 3ea2: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 3ea4: a474 st.b r3, (r4, 0x14) + 3ea6: 07ef br 0x3e84 // 3e84 + Controlled_Buzzer(0x01); + 3ea8: 3001 movi r0, 1 + 3eaa: e0000f4f bsr 0x5d48 // 5d48 + Contol_Switch_ClickAction(i,Control_ON); + 3eae: 3101 movi r1, 1 + 3eb0: 6c17 mov r0, r5 + 3eb2: e00009ad bsr 0x520c // 520c + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 3eb6: 3301 movi r3, 1 + 3eb8: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3eba: 3300 movi r3, 0 + 3ebc: ae6e st.h r3, (r6, 0x1c) + 3ebe: 07f3 br 0x3ea4 // 3ea4 + g_key.delayCnt[i] = 0; + 3ec0: 3300 movi r3, 0 + 3ec2: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ec4: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3ec6: a465 st.b r3, (r4, 0x5) + 3ec8: 07de br 0x3e84 // 3e84 + g_key.key_time[i]++; + 3eca: 8e6e ld.h r3, (r6, 0x1c) + 3ecc: 2300 addi r3, 1 + 3ece: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3ed0: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 3ed2: ae6e st.h r3, (r6, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 3ed4: 0c10 bf 0x3ef4 // 3ef4 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 3ed6: 6c17 mov r0, r5 + 3ed8: e3ffff24 bsr 0x3d20 // 3d20 + 3edc: 3840 cmpnei r0, 0 + 3ede: 0bd3 bt 0x3e84 // 3e84 + Contol_Switch_ClickAction(i,Control_OFF); + 3ee0: 3102 movi r1, 2 + 3ee2: 6c17 mov r0, r5 + 3ee4: e0000994 bsr 0x520c // 520c + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 3ee8: 3301 movi r3, 1 + 3eea: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 3eec: 3300 movi r3, 0 + 3eee: ae6e st.h r3, (r6, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 3ef0: a460 st.b r3, (r4, 0x0) + 3ef2: 07c9 br 0x3e84 // 3e84 + g_key.KEY_STA[i] = KEY_STA_S2; + 3ef4: 3302 movi r3, 2 + 3ef6: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 3ef8: 3300 movi r3, 0 + 3efa: ae6e st.h r3, (r6, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 3efc: 3303 movi r3, 3 + 3efe: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 3f00: 3302 movi r3, 2 + 3f02: 07e2 br 0x3ec6 // 3ec6 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3f04: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3f06: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 3f08: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 3f0a: e3ffff0b bsr 0x3d20 // 3d20 + 3f0e: 3840 cmpnei r0, 0 + 3f10: 0bba bt 0x3e84 // 3e84 + Contol_Switch_ClickAction(i,Control_OFF); + 3f12: 3102 movi r1, 2 + 3f14: 6c17 mov r0, r5 + 3f16: e000097b bsr 0x520c // 520c + g_key.KEY_STA[i] = KEY_STA_S0; + 3f1a: 3300 movi r3, 0 + 3f1c: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 3f1e: 3304 movi r3, 4 + 3f20: 07d3 br 0x3ec6 // 3ec6 + 3f22: 0000 bkpt + 3f24: 200000b8 .long 0x200000b8 + 3f28: 2000046c .long 0x2000046c + 3f2c: 200006cc .long 0x200006cc + 3f30: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00003f34 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 3f34: 6040 addu r1, r0 + U8_T data_sum = 0; + 3f36: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 3f3c: 6cce nor r3, r3 + 3f3e: 740c zextb r0, r3 +} + 3f40: 783c jmp r15 + data_sum += data[i]; + 3f42: 8040 ld.b r2, (r0, 0x0) + 3f44: 60c8 addu r3, r2 + 3f46: 74cc zextb r3, r3 + 3f48: 2000 addi r0, 1 + 3f4a: 07f7 br 0x3f38 // 3f38 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00003f4c : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 3f4c: 14d2 push r4-r5, r15 + 3f4e: 142f subi r14, r14, 60 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 3f50: 5992 addi r4, r1, 5 + 3f52: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 3f54: 3331 movi r3, 49 + 3f56: 650c cmphs r3, r4 + 3f58: 0803 bt 0x3f5e // 3f5e + para_len = 44; + 3f5a: 312c movi r1, 44 + reply_len = 50; + 3f5c: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 3f5e: 3300 movi r3, 0 + 3f60: 2b50 subi r3, 81 + 3f62: dc6e0000 st.b r3, (r14, 0x0) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 3f66: dc8e0002 st.b r4, (r14, 0x2) + send_data[1] = g_eeprom.dev_addr; + 3f6a: 1072 lrw r3, 0x200004a0 // 3fb0 + 3f6c: 8360 ld.b r3, (r3, 0x0) + 3f6e: dc6e0001 st.b r3, (r14, 0x1) + send_data[3] = 0x00; + 3f72: 3300 movi r3, 0 + 3f74: dc6e0003 st.b r3, (r14, 0x3) + + for(i=0;i + send_data[i+4] = para[i]; + } + send_data[i+4] = 0xFA; + 3f7e: 3200 movi r2, 0 + 3f80: 60f8 addu r3, r14 + 3f82: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f84: 6c53 mov r1, r4 + 3f86: 6c3b mov r0, r14 + send_data[i+4] = 0xFA; + 3f88: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 3f8a: e3ffffd5 bsr 0x3f34 // 3f34 + 3f8e: dc0e0003 st.b r0, (r14, 0x3) + +// if (detect_inf.control_model == 0x00){ + MCU485_SendData(send_data,reply_len); + 3f92: 6c53 mov r1, r4 + 3f94: 6c3b mov r0, r14 + 3f96: e3fffda9 bsr 0x3ae8 // 3ae8 +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 3f9a: 140f addi r14, r14, 60 + 3f9c: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 3f9e: 6c8f mov r2, r3 + 3fa0: 58ac addu r5, r0, r3 + 3fa2: 60b8 addu r2, r14 + 3fa4: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 3fae: 0000 bkpt + 3fb0: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00003fb4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fb4: 14d4 push r4-r7, r15 + 3fb6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fb8: 80a0 ld.b r5, (r0, 0x0) + 3fba: 5dc3 subi r6, r5, 1 + 3fbc: 7598 zextb r6, r6 + 3fbe: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 3fc0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 3fc2: 0834 bt 0x402a // 402a + 3fc4: 1125 lrw r1, 0x20000450 // 4058 + 3fc6: 350b movi r5, 11 + 3fc8: 5862 addi r3, r0, 1 + 3fca: 6140 addu r5, r0 + 3fcc: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 3fea: 8479 ld.b r3, (r4, 0x19) + 3fec: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 3fee: 847a ld.b r3, (r4, 0x1a) + 3ff0: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 3ff2: 847b ld.b r3, (r4, 0x1b) + 3ff4: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 3ff6: 847c ld.b r3, (r4, 0x1c) + 3ff8: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ffa: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 3ffc: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 3ffe: 1037 lrw r1, 0x20000450 // 4058 + touch_para.longpress_time = para[29]; + 4000: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4002: e0000315 bsr 0x462c // 462c + + if(rev == 0x00){ + 4006: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4008: 6d43 mov r5, r0 + if(rev == 0x00){ + 400a: 0805 bt 0x4014 // 4014 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 400c: 1033 lrw r1, 0x20000450 // 4058 + 400e: 6c1b mov r0, r6 + 4010: e0000282 bsr 0x4514 // 4514 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4014: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4016: 3102 movi r1, 2 + 4018: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 401a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 401e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4022: e3ffff95 bsr 0x3f4c // 3f4c +} + 4026: 1401 addi r14, r14, 4 + 4028: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 402a: 3d40 cmpnei r5, 0 + 402c: 0c03 bf 0x4032 // 4032 + rev = 0x01; + 402e: 3501 movi r5, 1 + 4030: 07f2 br 0x4014 // 4014 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 4032: 8061 ld.b r3, (r0, 0x1) + 4034: 104a lrw r2, 0x8614 // 405c + 4036: 102b lrw r1, 0x8b07 // 4060 + 4038: 3000 movi r0, 0 + 403a: e3fffd9b bsr 0x3b70 // 3b70 + if( (para[1] > 0) && (para[1] <= 3) ){ + 403e: 8461 ld.b r3, (r4, 0x1) + 4040: 2b00 subi r3, 1 + 4042: 74cc zextb r3, r3 + 4044: 3b02 cmphsi r3, 3 + 4046: 0bf4 bt 0x402e // 402e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4048: 1047 lrw r2, 0x20000589 // 4064 + g_eeprom.key_sens_level = para[1] - 1; + 404a: 1008 lrw r0, 0x200004a0 // 4068 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 404c: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 404e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4050: e00001be bsr 0x43cc // 43cc + 4054: 07e0 br 0x4014 // 4014 + 4056: 0000 bkpt + 4058: 20000450 .long 0x20000450 + 405c: 00008614 .long 0x00008614 + 4060: 00008b07 .long 0x00008b07 + 4064: 20000589 .long 0x20000589 + 4068: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +0000406c : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 406c: 14d3 push r4-r6, r15 + 406e: 142d subi r14, r14, 52 + 4070: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 4072: 3232 movi r2, 50 + 4074: 3100 movi r1, 0 + 4076: 6c3b mov r0, r14 + 4078: e3ffeca8 bsr 0x19c8 // 19c8 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 407c: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 407e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4080: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 4082: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 4086: 0837 bt 0x40f4 // 40f4 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 4088: 11d5 lrw r6, 0x200004a0 // 415c + 408a: 8605 ld.b r0, (r6, 0x5) + 408c: 1135 lrw r1, 0x20000450 // 4160 + 408e: e0000279 bsr 0x4580 // 4580 + if(rev != 0x00){ + 4092: 3840 cmpnei r0, 0 + 4094: 11b3 lrw r5, 0x20000450 // 4160 + 4096: 0c05 bf 0x40a0 // 40a0 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4098: 8605 ld.b r0, (r6, 0x5) + 409a: 6c57 mov r1, r5 + 409c: e000031c bsr 0x46d4 // 46d4 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 40a0: 8665 ld.b r3, (r6, 0x5) + 40a2: 2300 addi r3, 1 + 40a4: dc6e0001 st.b r3, (r14, 0x1) + 40a8: 6cfb mov r3, r14 + 40aa: 114e lrw r2, 0x20000450 // 4160 + + for(i=0;i> 8; + 40b2: 4928 lsri r1, r1, 8 + 40b4: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 40be: 4928 lsri r1, r1, 8 + 40c0: a32f st.b r1, (r3, 0xf) + 40c2: 2201 addi r2, 2 + 40c4: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 40c8: 8560 ld.b r3, (r5, 0x0) + 40ca: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 40ce: 8561 ld.b r3, (r5, 0x1) + 40d0: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 40d4: 8562 ld.b r3, (r5, 0x2) + 40d6: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 40da: 8563 ld.b r3, (r5, 0x3) + 40dc: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40e0: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 40e2: dc6e001e st.b r3, (r14, 0x1e) + 40e6: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 40e8: 7445 zexth r1, r1 + 40ea: 6c3b mov r0, r14 + 40ec: e3ffff30 bsr 0x3f4c // 3f4c +} + 40f0: 140d addi r14, r14, 52 + 40f2: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 40f4: 3c03 cmphsi r4, 4 + 40f6: 0831 bt 0x4158 // 4158 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 40f8: 2c00 subi r4, 1 + 40fa: 7410 zextb r0, r4 + 40fc: 1039 lrw r1, 0x20000450 // 4160 + 40fe: e0000241 bsr 0x4580 // 4580 + if(rev != 0x00){ + 4102: 3840 cmpnei r0, 0 + 4104: 1097 lrw r4, 0x20000450 // 4160 + 4106: 0c07 bf 0x4114 // 4114 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 4108: 8500 ld.b r0, (r5, 0x0) + 410a: 2800 subi r0, 1 + 410c: 7400 zextb r0, r0 + 410e: 6c53 mov r1, r4 + 4110: e00002e2 bsr 0x46d4 // 46d4 + reply_buff[reply_len++] = para[0]; + 4114: 8560 ld.b r3, (r5, 0x0) + 4116: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 411e: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 4120: 8902 ld.h r0, (r1, 0x4) + 4122: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 4126: 4808 lsri r0, r0, 8 + 4128: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 4132: 4808 lsri r0, r0, 8 + 4134: a30f st.b r0, (r3, 0xf) + 4136: 2101 addi r1, 2 + 4138: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 413c: 8460 ld.b r3, (r4, 0x0) + 413e: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 4142: 8461 ld.b r3, (r4, 0x1) + 4144: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4148: 8462 ld.b r3, (r4, 0x2) + 414a: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 414e: 8463 ld.b r3, (r4, 0x3) + 4150: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 4154: 8478 ld.b r3, (r4, 0x18) + 4156: 07c6 br 0x40e2 // 40e2 + reply_buff[reply_len++] = 0x00; + 4158: 3102 movi r1, 2 + 415a: 07c7 br 0x40e8 // 40e8 + 415c: 200004a0 .long 0x200004a0 + 4160: 20000450 .long 0x20000450 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00004164 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 4164: 14d0 push r15 + 4166: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4168: 8060 ld.b r3, (r0, 0x0) + 416a: 3b41 cmpnei r3, 1 + 416c: 0810 bt 0x418c // 418c + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 416e: 106b lrw r3, 0x2000046c // 4198 + 4170: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 4172: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 4174: 3303 movi r3, 3 + 4176: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 417a: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 417c: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 417e: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 4180: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4184: e3fffee4 bsr 0x3f4c // 3f4c +} + 4188: 1401 addi r14, r14, 4 + 418a: 1490 pop r15 + }else if(para[0] == 0x02){ + 418c: 3b42 cmpnei r3, 2 + 418e: 0bf3 bt 0x4174 // 4174 + g_key.key_dug_printf = 0x00; + 4190: 1062 lrw r3, 0x2000046c // 4198 + 4192: 3200 movi r2, 0 + 4194: 07ef br 0x4172 // 4172 + 4196: 0000 bkpt + 4198: 2000046c .long 0x2000046c + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +0000419c : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 419c: 14d0 push r15 + 419e: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41a0: 1149 lrw r2, 0x2000083e // 4244 + reply_buff[reply_len++] = 0x04; //CMD + 41a2: 3304 movi r3, 4 + 41a4: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41a8: 8a69 ld.h r3, (r2, 0x12) + 41aa: 4b68 lsri r3, r3, 8 + 41ac: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41b0: 8a69 ld.h r3, (r2, 0x12) + 41b2: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 41b6: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41b8: 1164 lrw r3, 0x20000598 // 4248 + 41ba: 8b29 ld.h r1, (r3, 0x12) + 41bc: 4928 lsri r1, r1, 8 + 41be: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41c2: 8b29 ld.h r1, (r3, 0x12) + 41c4: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41c8: 8a2a ld.h r1, (r2, 0x14) + 41ca: 4928 lsri r1, r1, 8 + 41cc: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41d0: 8a2a ld.h r1, (r2, 0x14) + 41d2: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41d6: 8b2a ld.h r1, (r3, 0x14) + 41d8: 4928 lsri r1, r1, 8 + 41da: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41de: 8b2a ld.h r1, (r3, 0x14) + 41e0: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 41e4: 8a2b ld.h r1, (r2, 0x16) + 41e6: 4928 lsri r1, r1, 8 + 41e8: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 41ec: 8a2b ld.h r1, (r2, 0x16) + 41ee: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 41f2: 8b2b ld.h r1, (r3, 0x16) + 41f4: 4928 lsri r1, r1, 8 + 41f6: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 41fa: 8b2b ld.h r1, (r3, 0x16) + 41fc: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4200: 8a2c ld.h r1, (r2, 0x18) + 4202: 4928 lsri r1, r1, 8 + 4204: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4208: 8a2c ld.h r1, (r2, 0x18) + 420a: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 420e: 8b2c ld.h r1, (r3, 0x18) + 4210: 4928 lsri r1, r1, 8 + 4212: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4216: 8b2c ld.h r1, (r3, 0x18) + 4218: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 421c: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 421e: 8a4d ld.h r2, (r2, 0x1a) + 4220: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4224: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4226: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4228: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 422c: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 422e: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4230: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4232: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4236: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 423a: e3fffe89 bsr 0x3f4c // 3f4c +} + 423e: 140d addi r14, r14, 52 + 4240: 1490 pop r15 + 4242: 0000 bkpt + 4244: 2000083e .long 0x2000083e + 4248: 20000598 .long 0x20000598 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +0000424c : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 424c: 14d0 push r15 + 424e: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4250: 3305 movi r3, 5 + 4252: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4256: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4258: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 425a: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 425c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4260: e3fffe76 bsr 0x3f4c // 3f4c + 4264: 0400 br 0x4264 // 4264 + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004268 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4268: 14d2 push r4-r5, r15 + 426a: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 426c: 8060 ld.b r3, (r0, 0x0) + 426e: 32af movi r2, 175 + 4270: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4272: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 4274: 0c09 bf 0x4286 // 4286 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 4276: 3000 movi r0, 0 + 4278: 114b lrw r2, 0x8630 // 4324 + 427a: 112c lrw r1, 0x8b17 // 4328 + 427c: e3fffc7a bsr 0x3b70 // 3b70 + return 0x01; + 4280: 3001 movi r0, 1 + break; + } + + + return 0; +} + 4282: 1401 addi r14, r14, 4 + 4284: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 4286: 114a lrw r2, 0x200004a0 // 432c + 4288: 8061 ld.b r3, (r0, 0x1) + 428a: 8240 ld.b r2, (r2, 0x0) + 428c: 64ca cmpne r2, r3 + 428e: 0c08 bf 0x429e // 429e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4290: 3000 movi r0, 0 + 4292: 1145 lrw r2, 0x8630 // 4324 + 4294: 1127 lrw r1, 0x8b29 // 4330 + 4296: e3fffc6d bsr 0x3b70 // 3b70 + return 0x02; + 429a: 3002 movi r0, 2 + 429c: 07f3 br 0x4282 // 4282 + if(data[2] != len){ + 429e: 8062 ld.b r3, (r0, 0x2) + 42a0: 750d zexth r4, r3 + 42a2: 6452 cmpne r4, r1 + 42a4: 0c09 bf 0x42b6 // 42b6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 42a6: b820 st.w r1, (r14, 0x0) + 42a8: 105f lrw r2, 0x8630 // 4324 + 42aa: 1123 lrw r1, 0x8b3a // 4334 + 42ac: 3000 movi r0, 0 + 42ae: e3fffc61 bsr 0x3b70 // 3b70 + return 0x03; + 42b2: 3003 movi r0, 3 + 42b4: 07e7 br 0x4282 // 4282 + if(data[len-1] != 0xFA){ + 42b6: 60c0 addu r3, r0 + 42b8: 2b00 subi r3, 1 + 42ba: 8360 ld.b r3, (r3, 0x0) + 42bc: 32fa movi r2, 250 + 42be: 648e cmpne r3, r2 + 42c0: 0c07 bf 0x42ce // 42ce + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 42c2: 1059 lrw r2, 0x8630 // 4324 + 42c4: 103d lrw r1, 0x8b4d // 4338 + 42c6: 3000 movi r0, 0 + 42c8: e3fffc54 bsr 0x3b70 // 3b70 + 42cc: 07f3 br 0x42b2 // 42b2 + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 42ce: 5c23 subi r1, r4, 1 + 42d0: 7445 zexth r1, r1 + 42d2: e3fffe31 bsr 0x3f34 // 3f34 + 42d6: 3840 cmpnei r0, 0 + 42d8: 0806 bt 0x42e4 // 42e4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 42da: 1053 lrw r2, 0x8630 // 4324 + 42dc: 1038 lrw r1, 0x8b5d // 433c + 42de: e3fffc49 bsr 0x3b70 // 3b70 + 42e2: 07e8 br 0x42b2 // 42b2 + switch(data[4]){ + 42e4: 8504 ld.b r0, (r5, 0x4) + 42e6: 2800 subi r0, 1 + 42e8: 3804 cmphsi r0, 5 + 42ea: 080c bt 0x4302 // 4302 + 42ec: 5c37 subi r1, r4, 6 + 42ee: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 42f0: 7445 zexth r1, r1 + switch(data[4]){ + 42f2: e3ffe505 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42f6: 0803 .short 0x0803 + 42f8: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 42fc: 6c17 mov r0, r5 + 42fe: e3fffe5b bsr 0x3fb4 // 3fb4 + return 0; + 4302: 3000 movi r0, 0 + 4304: 07bf br 0x4282 // 4282 + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 4306: 6c17 mov r0, r5 + 4308: e3fffeb2 bsr 0x406c // 406c + 430c: 07fb br 0x4302 // 4302 + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 430e: 6c17 mov r0, r5 + 4310: e3ffff2a bsr 0x4164 // 4164 + 4314: 07f7 br 0x4302 // 4302 + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 4316: 6c17 mov r0, r5 + 4318: e3ffff42 bsr 0x419c // 419c + 431c: 07f3 br 0x4302 // 4302 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 431e: 6c17 mov r0, r5 + 4320: e3ffff96 bsr 0x424c // 424c + 4324: 00008630 .long 0x00008630 + 4328: 00008b17 .long 0x00008b17 + 432c: 200004a0 .long 0x200004a0 + 4330: 00008b29 .long 0x00008b29 + 4334: 00008b3a .long 0x00008b3a + 4338: 00008b4d .long 0x00008b4d + 433c: 00008b5d .long 0x00008b5d + +Disassembly of section .text.EEPROM_CheckSum: + +00004340 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4340: 6cc3 mov r3, r0 + 4342: 6040 addu r1, r0 + U8_T data_sum = 0; + 4344: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 434a: 783c jmp r15 + data_sum += data[i]; + 434c: 8340 ld.b r2, (r3, 0x0) + 434e: 6008 addu r0, r2 + 4350: 7400 zextb r0, r0 + 4352: 2300 addi r3, 1 + 4354: 07f9 br 0x4346 // 4346 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004358 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4358: 14d1 push r4, r15 + 435a: 143b subi r14, r14, 108 + 435c: 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)); + 435e: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4360: 3264 movi r2, 100 + 4362: 3100 movi r1, 0 + 4364: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4366: b860 st.w r3, (r14, 0x0) + 4368: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 436c: e3ffeb2e bsr 0x19c8 // 19c8 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4370: 6cbb mov r2, r14 + 4372: 3104 movi r1, 4 + 4374: 1014 lrw r0, 0x10000020 // 43c4 + 4376: e3fff36d bsr 0x2a50 // 2a50 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 437a: d84e0000 ld.b r2, (r14, 0x0) + 437e: 33a6 movi r3, 166 + 4380: 64ca cmpne r2, r3 + 4382: 0c04 bf 0x438a // 438a + return 0x00; + } + } + } + + return 0x01; + 4384: 3001 movi r0, 1 +} + 4386: 141b addi r14, r14, 108 + 4388: 1491 pop r4, r15 + read_len |= read_info[1]; + 438a: d82e0002 ld.b r1, (r14, 0x2) + 438e: d86e0001 ld.b r3, (r14, 0x1) + 4392: 4128 lsli r1, r1, 8 + 4394: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 4396: 3364 movi r3, 100 + 4398: 644c cmphs r3, r1 + 439a: 0ff5 bf 0x4384 // 4384 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 439c: 1a02 addi r2, r14, 8 + 439e: 100b lrw r0, 0x10000024 // 43c8 + 43a0: e3fff358 bsr 0x2a50 // 2a50 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 43a4: 3108 movi r1, 8 + 43a6: 1802 addi r0, r14, 8 + 43a8: e3ffffcc bsr 0x4340 // 4340 + 43ac: d86e0003 ld.b r3, (r14, 0x3) + 43b0: 640e cmpne r3, r0 + 43b2: 0be9 bt 0x4384 // 4384 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 43b4: 3208 movi r2, 8 + 43b6: 1902 addi r1, r14, 8 + 43b8: 6c13 mov r0, r4 + 43ba: e3ffeb4b bsr 0x1a50 // 1a50 <__memcpy_fast> + return 0x00; + 43be: 3000 movi r0, 0 + 43c0: 07e3 br 0x4386 // 4386 + 43c2: 0000 bkpt + 43c4: 10000020 .long 0x10000020 + 43c8: 10000024 .long 0x10000024 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +000043cc : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43cc: 14d0 push r15 + 43ce: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 43d0: 3300 movi r3, 0 + 43d2: 2b59 subi r3, 90 + 43d4: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 43d8: 3308 movi r3, 8 + 43da: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 43de: 3300 movi r3, 0 + 43e0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43e4: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 43e6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 43e8: 3208 movi r2, 8 + 43ea: 6c0f mov r0, r3 + 43ec: e3ffeb32 bsr 0x1a50 // 1a50 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 43f0: 3108 movi r1, 8 + 43f2: e3ffffa7 bsr 0x4340 // 4340 + 43f6: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 43fa: 6cbb mov r2, r14 + 43fc: 310c movi r1, 12 + 43fe: 1004 lrw r0, 0x10000020 // 440c + 4400: e3fff2d8 bsr 0x29b0 // 29b0 + + return 0; +} + 4404: 3000 movi r0, 0 + 4406: 141b addi r14, r14, 108 + 4408: 1490 pop r15 + 440a: 0000 bkpt + 440c: 10000020 .long 0x10000020 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004410 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4410: 14d1 push r4, r15 + 4412: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 4414: 8062 ld.b r3, (r0, 0x2) + 4416: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4418: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 441a: 0c03 bf 0x4420 // 4420 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 441c: 3309 movi r3, 9 + 441e: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4420: 8442 ld.b r2, (r4, 0x2) + 4422: 103d lrw r1, 0x8b6c // 4494 + 4424: 3000 movi r0, 0 + 4426: e3fffba5 bsr 0x3b70 // 3b70 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 442a: 8463 ld.b r3, (r4, 0x3) + 442c: 3b02 cmphsi r3, 3 + 442e: 0c03 bf 0x4434 // 4434 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4430: 3300 movi r3, 0 + 4432: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 4434: 8464 ld.b r3, (r4, 0x4) + 4436: 3b01 cmphsi r3, 2 + 4438: 0c03 bf 0x443e // 443e + { + info->backlight_en = 0x00; + 443a: 3300 movi r3, 0 + 443c: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 443e: 8461 ld.b r3, (r4, 0x1) + 4440: 3b02 cmphsi r3, 3 + 4442: 0c03 bf 0x4448 // 4448 + { + info->pipe_flag = 0x00; + 4444: 3300 movi r3, 0 + 4446: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4448: 8460 ld.b r3, (r4, 0x0) + 444a: 2b00 subi r3, 1 + 444c: 74cc zextb r3, r3 + 444e: 32fd movi r2, 253 + 4450: 64c8 cmphs r2, r3 + 4452: 0803 bt 0x4458 // 4458 + { + info->dev_addr = 0x01; + 4454: 3301 movi r3, 1 + 4456: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4458: 8465 ld.b r3, (r4, 0x5) + 445a: 3b02 cmphsi r3, 3 + 445c: 0c03 bf 0x4462 // 4462 + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 445e: 3301 movi r3, 1 + 4460: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 4462: 8466 ld.b r3, (r4, 0x6) + 4464: 3b02 cmphsi r3, 3 + 4466: 0c03 bf 0x446c // 446c + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 4468: 3300 movi r3, 0 + 446a: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 446c: 8467 ld.b r3, (r4, 0x7) + 446e: 3b02 cmphsi r3, 3 + 4470: 0c03 bf 0x4476 // 4476 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 4472: 3301 movi r3, 1 + 4474: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 4476: 8427 ld.b r1, (r4, 0x7) + 4478: b822 st.w r1, (r14, 0x8) + 447a: 8420 ld.b r1, (r4, 0x0) + 447c: b821 st.w r1, (r14, 0x4) + 447e: 8425 ld.b r1, (r4, 0x5) + 4480: b820 st.w r1, (r14, 0x0) + 4482: 8464 ld.b r3, (r4, 0x4) + 4484: 8443 ld.b r2, (r4, 0x3) + 4486: 1025 lrw r1, 0x8b83 // 4498 + 4488: 3000 movi r0, 0 + 448a: e3fffb73 bsr 0x3b70 // 3b70 + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 448e: 3000 movi r0, 0 + 4490: 1403 addi r14, r14, 12 + 4492: 1491 pop r4, r15 + 4494: 00008b6c .long 0x00008b6c + 4498: 00008b83 .long 0x00008b83 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +0000449c : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 449c: 3301 movi r3, 1 + 449e: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 44a0: 3300 movi r3, 0 + 44a2: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 44a4: 3309 movi r3, 9 + 44a6: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 44a8: 3300 movi r3, 0 + 44aa: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 44ac: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 44ae: 3301 movi r3, 1 + 44b0: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 44b2: 3300 movi r3, 0 + 44b4: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 44b6: 3301 movi r3, 1 + 44b8: a067 st.b r3, (r0, 0x7) + +} + 44ba: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +000044bc : +void EEPROM_Init(void){ + 44bc: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 44be: 1073 lrw r3, 0x20000060 // 4508 + 44c0: 3201 movi r2, 1 + 44c2: 9360 ld.w r3, (r3, 0x0) + 44c4: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 44c6: 9345 ld.w r2, (r3, 0x14) + 44c8: 3aa1 bseti r2, 1 + 44ca: 3ab0 bseti r2, 16 + 44cc: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 44ce: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 44d0: 108f lrw r4, 0x200004a0 // 450c + delay_nms(10); + 44d2: e3fff3d5 bsr 0x2c7c // 2c7c + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 44d6: 3208 movi r2, 8 + 44d8: 3100 movi r1, 0 + 44da: 6c13 mov r0, r4 + 44dc: e3ffea76 bsr 0x19c8 // 19c8 <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 44e0: 6c13 mov r0, r4 + 44e2: e3ffff3b bsr 0x4358 // 4358 + if(rev == 0x00){ + 44e6: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44e8: 6c13 mov r0, r4 + if(rev == 0x00){ + 44ea: 0804 bt 0x44f2 // 44f2 + EEPROM_Validate_ParaInfo(&g_eeprom); + 44ec: e3ffff92 bsr 0x4410 // 4410 +} + 44f0: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 44f2: e3ffffd5 bsr 0x449c // 449c + EEPROM_WriteParaInfo(&g_eeprom); + 44f6: 6c13 mov r0, r4 + 44f8: e3ffff6a bsr 0x43cc // 43cc + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 44fc: 8441 ld.b r2, (r4, 0x1) + 44fe: 1025 lrw r1, 0x8bdd // 4510 + 4500: 3000 movi r0, 0 + 4502: e3fffb37 bsr 0x3b70 // 3b70 +} + 4506: 07f5 br 0x44f0 // 44f0 + 4508: 20000060 .long 0x20000060 + 450c: 200004a0 .long 0x200004a0 + 4510: 00008bdd .long 0x00008bdd + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004514 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4514: 14d2 push r4-r5, r15 + 4516: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4518: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 451a: 6d47 mov r5, r1 + switch(level){ + 451c: 0c07 bf 0x452a // 452a + 451e: 3840 cmpnei r0, 0 + 4520: 0c27 bf 0x456e // 456e + 4522: 3842 cmpnei r0, 2 + 4524: 0c23 bf 0x456a // 456a + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4526: 3001 movi r0, 1 + 4528: 041f br 0x4566 // 4566 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 452a: 1093 lrw r4, 0x10000180 // 4574 + break; + } + + memset(save_para,0,sizeof(save_para)); + 452c: 323c movi r2, 60 + 452e: 3100 movi r1, 0 + 4530: 6c3b mov r0, r14 + 4532: e3ffea4b bsr 0x19c8 // 19c8 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4536: 3300 movi r3, 0 + 4538: 2b59 subi r3, 90 + 453a: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 453e: 331c movi r3, 28 + 4540: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4544: 1b01 addi r3, r14, 4 + 4546: 321c movi r2, 28 + 4548: 6c0f mov r0, r3 + 454a: 6c57 mov r1, r5 + 454c: e3ffea82 bsr 0x1a50 // 1a50 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4550: 311c movi r1, 28 + 4552: e3fffef7 bsr 0x4340 // 4340 + 4556: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 455a: 6cbb mov r2, r14 + 455c: 6c13 mov r0, r4 + 455e: 3120 movi r1, 32 + 4560: e3fff228 bsr 0x29b0 // 29b0 + + return 0; + 4564: 3000 movi r0, 0 +} + 4566: 140f addi r14, r14, 60 + 4568: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 456a: 1084 lrw r4, 0x10000200 // 4578 + break; + 456c: 07e0 br 0x452c // 452c + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 456e: 1084 lrw r4, 0x10000100 // 457c + 4570: 07de br 0x452c // 452c + 4572: 0000 bkpt + 4574: 10000180 .long 0x10000180 + 4578: 10000200 .long 0x10000200 + 457c: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004580 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4580: 14d2 push r4-r5, r15 + 4582: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4584: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4586: 6d07 mov r4, r1 + switch(level){ + 4588: 0c3a bf 0x45fc // 45fc + 458a: 3840 cmpnei r0, 0 + 458c: 0c05 bf 0x4596 // 4596 + 458e: 3842 cmpnei r0, 2 + 4590: 0c34 bf 0x45f8 // 45f8 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4592: 3001 movi r0, 1 + 4594: 0430 br 0x45f4 // 45f4 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4596: 11a1 lrw r5, 0x10000100 // 4618 + memset(read_info,0,sizeof(read_info)); + 4598: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 459a: 3234 movi r2, 52 + 459c: 3100 movi r1, 0 + 459e: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 45a0: b860 st.w r3, (r14, 0x0) + 45a2: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 45a6: e3ffea11 bsr 0x19c8 // 19c8 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 45aa: 6cbb mov r2, r14 + 45ac: 3104 movi r1, 4 + 45ae: 6c17 mov r0, r5 + 45b0: e3fff250 bsr 0x2a50 // 2a50 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 45b4: d84e0000 ld.b r2, (r14, 0x0) + 45b8: 33a6 movi r3, 166 + 45ba: 64ca cmpne r2, r3 + 45bc: 0827 bt 0x460a // 460a + read_len |= read_info[1]; + 45be: d84e0002 ld.b r2, (r14, 0x2) + 45c2: d86e0001 ld.b r3, (r14, 0x1) + 45c6: 4248 lsli r2, r2, 8 + 45c8: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 45ca: 3a5c cmpnei r2, 28 + 45cc: 081a bt 0x4600 // 4600 + temp_addr += EEPROM_Offset_Data; + 45ce: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 45d0: 1a02 addi r2, r14, 8 + 45d2: 311c movi r1, 28 + 45d4: e3fff23e bsr 0x2a50 // 2a50 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 45d8: 311c movi r1, 28 + 45da: 1802 addi r0, r14, 8 + 45dc: e3fffeb2 bsr 0x4340 // 4340 + 45e0: d86e0003 ld.b r3, (r14, 0x3) + 45e4: 640e cmpne r3, r0 + 45e6: 0bd6 bt 0x4592 // 4592 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 45e8: 321c movi r2, 28 + 45ea: 1902 addi r1, r14, 8 + 45ec: 6c13 mov r0, r4 + 45ee: e3ffea31 bsr 0x1a50 // 1a50 <__memcpy_fast> + return 0x00; + 45f2: 3000 movi r0, 0 +} + 45f4: 140f addi r14, r14, 60 + 45f6: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 45f8: 10a9 lrw r5, 0x10000200 // 461c + break; + 45fa: 07cf br 0x4598 // 4598 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 45fc: 10a9 lrw r5, 0x10000180 // 4620 + 45fe: 07cd br 0x4598 // 4598 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 4600: 1029 lrw r1, 0x8bf6 // 4624 + 4602: 3000 movi r0, 0 + 4604: e3fffab6 bsr 0x3b70 // 3b70 + 4608: 07c5 br 0x4592 // 4592 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 460a: 3304 movi r3, 4 + 460c: 6cbb mov r2, r14 + 460e: 1027 lrw r1, 0x8c18 // 4628 + 4610: 3000 movi r0, 0 + 4612: e3fffab5 bsr 0x3b7c // 3b7c + 4616: 07be br 0x4592 // 4592 + 4618: 10000100 .long 0x10000100 + 461c: 10000200 .long 0x10000200 + 4620: 10000180 .long 0x10000180 + 4624: 00008bf6 .long 0x00008bf6 + 4628: 00008c18 .long 0x00008c18 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +0000462c : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 462c: 14c4 push r4-r7 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 462e: 8163 ld.b r3, (r1, 0x3) + 4630: 2b00 subi r3, 1 + 4632: 74cc zextb r3, r3 + 4634: 3263 movi r2, 99 + 4636: 64c8 cmphs r2, r3 + 4638: 0845 bt 0x46c2 // 46c2 + para->base_speed = 20; //默认参数 - 20 + 463a: 3314 movi r3, 20 + 463c: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 463e: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4640: 8140 ld.b r2, (r1, 0x0) + 4642: 2a00 subi r2, 1 + 4644: 7488 zextb r2, r2 + 4646: 3a09 cmphsi r2, 10 + 4648: 0c04 bf 0x4650 // 4650 + para->press_debounce = 6; //默认参数 - 6 + 464a: 3306 movi r3, 6 + 464c: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 464e: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4650: 8141 ld.b r2, (r1, 0x1) + 4652: 2a00 subi r2, 1 + 4654: 7488 zextb r2, r2 + 4656: 3a09 cmphsi r2, 10 + 4658: 0c04 bf 0x4660 // 4660 + para->release_debounce = 5; //默认参数 - 5 + 465a: 3305 movi r3, 5 + 465c: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 465e: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4660: 8142 ld.b r2, (r1, 0x2) + 4662: 2a00 subi r2, 1 + 4664: 7488 zextb r2, r2 + 4666: 3463 movi r4, 99 + 4668: 6490 cmphs r4, r2 + 466a: 0804 bt 0x4672 // 4672 + para->multiTimes_filt = 40; //默认参数 - 40 + 466c: 3328 movi r3, 40 + 466e: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4670: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4672: 9146 ld.w r2, (r1, 0x18) + 4674: 2a00 subi r2, 1 + 4676: 3a1f cmphsi r2, 32 + 4678: 0c04 bf 0x4680 // 4680 + para->longpress_time = 16; //默认参数 - 16 + 467a: 3310 movi r3, 16 + 467c: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 467e: 3301 movi r3, 1 + /*触摸灵敏度*/ + for(i=0;isenprd[i] < 10) || (para->senprd[i] > 1000) ){ + para->senprd[i] = 320; //默认参数 - 320 + 4680: 34a0 movi r4, 160 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4682: 36f5 movi r6, 245 + 4684: 594e addi r2, r1, 4 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4686: 10f3 lrw r7, 0x3de // 46d0 + 4688: 210d addi r1, 14 + para->senprd[i] = 320; //默认参数 - 320 + 468a: 4481 lsli r4, r4, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 468c: 46c2 lsli r6, r6, 2 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 468e: 8aa0 ld.h r5, (r2, 0x0) + 4690: 2d09 subi r5, 10 + 4692: 7555 zexth r5, r5 + 4694: 655c cmphs r7, r5 + 4696: 0803 bt 0x469c // 469c + para->senprd[i] = 320; //默认参数 - 320 + 4698: aa80 st.h r4, (r2, 0x0) + rev = 0x01; + 469a: 3301 movi r3, 1 + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 469c: 8aa5 ld.h r5, (r2, 0xa) + 469e: 2d13 subi r5, 20 + 46a0: 7555 zexth r5, r5 + 46a2: 6558 cmphs r6, r5 + 46a4: 080a bt 0x46b8 // 46b8 + + switch(level){ + 46a6: 3841 cmpnei r0, 1 + 46a8: 0c11 bf 0x46ca // 46ca + 46aa: 3840 cmpnei r0, 0 + 46ac: 0c0d bf 0x46c6 // 46c6 + 46ae: 3842 cmpnei r0, 2 + 46b0: 080d bt 0x46ca // 46ca + case 0x02: + para->triggerlevel[i] = 100; //高灵敏度 默认参数 - 60 + 46b2: 3364 movi r3, 100 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 120; + 46b4: aa65 st.h r3, (r2, 0xa) + break; + } + + rev = 0x01; + 46b6: 3301 movi r3, 1 + 46b8: 2201 addi r2, 2 + for(i=0;i + } + } + + return rev; +} + 46be: 6c0f mov r0, r3 + 46c0: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 46c2: 3300 movi r3, 0 + 46c4: 07be br 0x4640 // 4640 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 46c6: 338c movi r3, 140 + 46c8: 07f6 br 0x46b4 // 46b4 + para->triggerlevel[i] = 120; + 46ca: 3378 movi r3, 120 + 46cc: 07f4 br 0x46b4 // 46b4 + 46ce: 0000 bkpt + 46d0: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000046d4 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 46d4: 14c1 push r4 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 46d6: 3314 movi r3, 20 + 46d8: a163 st.b r3, (r1, 0x3) + para->press_debounce = 6; //默认参数 - 6 + 46da: 3306 movi r3, 6 + 46dc: a160 st.b r3, (r1, 0x0) + para->release_debounce = 5; //默认参数 - 5 + 46de: 3305 movi r3, 5 + 46e0: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 46e2: 3328 movi r3, 40 + 46e4: a162 st.b r3, (r1, 0x2) +// para->disupdatevalue_debounce = 0x03; //默认参数 - 3 + + for(i=0;isenprd[i] = 320; //默认参数 - 320 + 46e6: 32a0 movi r2, 160 + para->longpress_time = 16; //默认参数 - 8 + 46e8: 3310 movi r3, 16 + 46ea: b166 st.w r3, (r1, 0x18) + para->senprd[i] = 320; //默认参数 - 320 + 46ec: 4241 lsli r2, r2, 1 + 46ee: 596e addi r3, r1, 4 + 46f0: 210d addi r1, 14 +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 46f2: 3841 cmpnei r0, 1 + para->senprd[i] = 320; //默认参数 - 320 + 46f4: ab40 st.h r2, (r3, 0x0) + switch(level){ + 46f6: 0c0d bf 0x4710 // 4710 + 46f8: 3840 cmpnei r0, 0 + 46fa: 0c09 bf 0x470c // 470c + 46fc: 3842 cmpnei r0, 2 + 46fe: 0809 bt 0x4710 // 4710 + case 0x02: + para->triggerlevel[i] = 100; //高灵敏度 默认参数 - 60 + 4700: 3464 movi r4, 100 + break; + case 0x00: + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 120; + 4702: ab85 st.h r4, (r3, 0xa) + 4704: 2301 addi r3, 2 + for(i=0;i + break; + } + + } +} + 470a: 1481 pop r4 + para->triggerlevel[i] = 140; //低灵敏度 默认参数 - 140 + 470c: 348c movi r4, 140 + 470e: 07fa br 0x4702 // 4702 + para->triggerlevel[i] = 120; + 4710: 3478 movi r4, 120 + 4712: 07f8 br 0x4702 // 4702 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004714 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4714: 14d4 push r4-r7, r15 + 4716: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4718: 8043 ld.b r2, (r0, 0x3) + 471a: 1038 lrw r1, 0x8c36 // 4778 + 471c: 3000 movi r0, 0 + 471e: e3fffa29 bsr 0x3b70 // 3b70 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 4722: 8440 ld.b r2, (r4, 0x0) + 4724: 1036 lrw r1, 0x8c4e // 477c + 4726: 3000 movi r0, 0 + 4728: e3fffa24 bsr 0x3b70 // 3b70 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 472c: 8441 ld.b r2, (r4, 0x1) + 472e: 1035 lrw r1, 0x8c6a // 4780 + 4730: 3000 movi r0, 0 + 4732: e3fffa1f bsr 0x3b70 // 3b70 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4736: 8442 ld.b r2, (r4, 0x2) + 4738: 1033 lrw r1, 0x8c88 // 4784 + 473a: 3000 movi r0, 0 + 473c: e3fffa1a bsr 0x3b70 // 3b70 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4740: 9446 ld.w r2, (r4, 0x18) + 4742: 3000 movi r0, 0 + 4744: 1031 lrw r1, 0x8ca5 // 4788 + 4746: e3fffa15 bsr 0x3b70 // 3b70 + 474a: 2403 addi r4, 4 + 474c: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 474e: 10f0 lrw r7, 0x8cc1 // 478c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4750: 10d0 lrw r6, 0x8cda // 4790 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4752: e3ffeabb bsr 0x1cc8 // 1cc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4756: 8c60 ld.h r3, (r4, 0x0) + 4758: 6c97 mov r2, r5 + 475a: 6c5f mov r1, r7 + 475c: 3000 movi r0, 0 + 475e: e3fffa09 bsr 0x3b70 // 3b70 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4762: 8c65 ld.h r3, (r4, 0xa) + 4764: 6c97 mov r2, r5 + 4766: 6c5b mov r1, r6 + 4768: 3000 movi r0, 0 + 476a: 2500 addi r5, 1 + 476c: e3fffa02 bsr 0x3b70 // 3b70 + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 4776: 1494 pop r4-r7, r15 + 4778: 00008c36 .long 0x00008c36 + 477c: 00008c4e .long 0x00008c4e + 4780: 00008c6a .long 0x00008c6a + 4784: 00008c88 .long 0x00008c88 + 4788: 00008ca5 .long 0x00008ca5 + 478c: 00008cc1 .long 0x00008cc1 + 4790: 00008cda .long 0x00008cda + +Disassembly of section .text.ADC_Init: + +00004794 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4794: 14d0 push r15 + 4796: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4798: e3ffeea8 bsr 0x24e8 // 24e8 + ADC12_Software_Reset(); //ADC软件复位 + 479c: e3ffef06 bsr 0x25a8 // 25a8 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 47a0: 3101 movi r1, 1 + 47a2: 3002 movi r0, 2 + 47a4: e3ffeeec bsr 0x257c // 257c + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 47a8: 3301 movi r3, 1 + 47aa: b861 st.w r3, (r14, 0x4) + 47ac: 3302 movi r3, 2 + 47ae: b860 st.w r3, (r14, 0x0) + 47b0: 3200 movi r2, 0 + 47b2: 3306 movi r3, 6 + 47b4: 3101 movi r1, 1 + 47b6: 3001 movi r0, 1 + 47b8: e3ffef32 bsr 0x261c // 261c + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS); + 47bc: 3003 movi r0, 3 + 47be: e3ffef6d bsr 0x2698 // 2698 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 47c2: 3300 movi r3, 0 + 47c4: 3200 movi r2, 0 + 47c6: 3100 movi r1, 0 + 47c8: 300f movi r0, 15 + 47ca: e3fff033 bsr 0x2830 // 2830 + + ADC12_CMD(ENABLE); + 47ce: 3001 movi r0, 1 + 47d0: e3ffeef2 bsr 0x25b4 // 25b4 + + ADC12_ready_wait(); + 47d4: e3ffef04 bsr 0x25dc // 25dc + + ADC12_Control(ADC12_START); + 47d8: 3008 movi r0, 8 + 47da: e3ffeeb9 bsr 0x254c // 254c + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 47de: 3250 movi r2, 80 + 47e0: 3100 movi r1, 0 + 47e2: 1003 lrw r0, 0x200004a8 // 47ec + 47e4: e3ffe8f2 bsr 0x19c8 // 19c8 <__memset_fast> +} + 47e8: 1402 addi r14, r14, 8 + 47ea: 1490 pop r15 + 47ec: 200004a8 .long 0x200004a8 + +Disassembly of section .text.Thermistor_Array_Transform: + +000047f0 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 47f0: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 47f2: 1070 lrw r3, 0x79bd // 4830 + 47f4: 640c cmphs r3, r0 +{ + 47f6: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 47f8: 0c16 bf 0x4824 // 4824 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 47fa: 33a1 movi r3, 161 + 47fc: 4365 lsli r3, r3, 5 + 47fe: 640c cmphs r3, r0 + 4800: 0814 bt 0x4828 // 4828 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4806: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 480a: 8a60 ld.h r3, (r2, 0x0) + 480c: 644c cmphs r3, r1 + 480e: 0c04 bf 0x4816 // 4816 + 4810: 8a61 ld.h r3, (r2, 0x2) + 4812: 644c cmphs r3, r1 + 4814: 0c07 bf 0x4822 // 4822 + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 4820: 30fa movi r0, 250 +} + 4822: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 4824: 3000 movi r0, 0 + 4826: 07fe br 0x4822 // 4822 + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4828: 30c8 movi r0, 200 + 482a: 4001 lsli r0, r0, 1 + 482c: 07fb br 0x4822 // 4822 + 482e: 0000 bkpt + 4830: 000079bd .long 0x000079bd + 4834: 0000864a .long 0x0000864a + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004838 : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 4838: 14d3 push r4-r6, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 483c: 3200 movi r2, 0 + uint32_t temp_val = 0; + 483e: 3000 movi r0, 0 + 4840: 6d53 mov r5, r4 + temp_val += g_adc.dataBuff[i]; + 4842: 5a6e addi r3, r2, 4 + 4844: 4361 lsli r3, r3, 1 + 4846: 60d0 addu r3, r4 + 4848: 8320 ld.b r1, (r3, 0x0) + 484a: 8361 ld.b r3, (r3, 0x1) + 484c: 4368 lsli r3, r3, 8 + 484e: 2200 addi r2, 1 + 4850: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4858: 310a movi r1, 10 + 485a: e3fff7e7 bsr 0x3828 // 3828 <__udivsi3> + 485e: 7481 zexth r2, r0 + 4860: 74c8 zextb r3, r2 + 4862: 4a48 lsri r2, r2, 8 + 4864: a445 st.b r2, (r4, 0x5) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4866: a447 st.b r2, (r4, 0x7) + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4868: 845d ld.b r2, (r4, 0x1d) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 486a: a464 st.b r3, (r4, 0x4) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 486c: a466 st.b r3, (r4, 0x6) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 486e: 4248 lsli r2, r2, 8 + 4870: 847c ld.b r3, (r4, 0x1c) + 4872: 6c8c or r2, r3 + 4874: 3a13 cmphsi r2, 20 + 4876: 0c06 bf 0x4882 // 4882 + g_adc.temp_index = 0; + 4878: 3300 movi r3, 0 + 487a: a47c st.b r3, (r4, 0x1c) + 487c: a47d st.b r3, (r4, 0x1d) + g_adc.gather_full = 1; + 487e: 3301 movi r3, 1 + 4880: a461 st.b r3, (r4, 0x1) + + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4882: 859d ld.b r4, (r5, 0x1d) + 4884: 857c ld.b r3, (r5, 0x1c) + 4886: 4488 lsli r4, r4, 8 + 4888: 6d0c or r4, r3 + 488a: 5c62 addi r3, r4, 1 + 488c: 74cd zexth r3, r3 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 488e: 7581 zexth r6, r0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4890: a57c st.b r3, (r5, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4892: 100e lrw r0, 0x2710 // 48c8 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4894: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4896: 102e lrw r1, 0xce4 // 48cc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4898: a57d st.b r3, (r5, 0x1d) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 489a: 605a subu r1, r6 + 489c: 7c18 mult r0, r6 + 489e: e3fff7b3 bsr 0x3804 // 3804 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 48a2: 7401 zexth r0, r0 + 48a4: 240f addi r4, 16 + 48a6: e3ffffa5 bsr 0x47f0 // 47f0 + 48aa: 4481 lsli r4, r4, 1 + 48ac: 6114 addu r4, r5 + 48ae: 4868 lsri r3, r0, 8 + 48b0: 6c83 mov r2, r0 + 48b2: a400 st.b r0, (r4, 0x0) + 48b4: a461 st.b r3, (r4, 0x1) + + Dbg_Println(DBG_BIT_SYS_STATUS,"Conv Temp:%d avg_val:%d",Thermistor_Array_Transform(temp_val),g_adc.avg_val); + 48b6: 3000 movi r0, 0 + 48b8: 6cdb mov r3, r6 + 48ba: 1026 lrw r1, 0x8cf9 // 48d0 + 48bc: e3fff95a bsr 0x3b70 // 3b70 +} + 48c0: 1493 pop r4-r6, r15 + 48c2: 0000 bkpt + 48c4: 200004a8 .long 0x200004a8 + 48c8: 00002710 .long 0x00002710 + 48cc: 00000ce4 .long 0x00000ce4 + 48d0: 00008cf9 .long 0x00008cf9 + +Disassembly of section .text.Get_Temp_Val: + +000048d4 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 48d4: 1063 lrw r3, 0x200004a8 // 48e0 + 48d6: 831f ld.b r0, (r3, 0x1f) + 48d8: 835e ld.b r2, (r3, 0x1e) + 48da: 4008 lsli r0, r0, 8 + 48dc: 6c08 or r0, r2 +} + 48de: 783c jmp r15 + 48e0: 200004a8 .long 0x200004a8 + +Disassembly of section .text.Gather_Temp: + +000048e4 : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 48e4: 14d3 push r4-r6, r15 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 1000) + 48e6: 1187 lrw r4, 0x200004a8 // 4980 + 48e8: 3340 movi r3, 64 + 48ea: 60d0 addu r3, r4 + 48ec: 832d ld.b r1, (r3, 0xd) + 48ee: 834c ld.b r2, (r3, 0xc) + 48f0: 4128 lsli r1, r1, 8 + 48f2: 6c48 or r1, r2 + 48f4: 834e ld.b r2, (r3, 0xe) + 48f6: 4250 lsli r2, r2, 16 + 48f8: 6c48 or r1, r2 + 48fa: 834f ld.b r2, (r3, 0xf) + 48fc: 11a2 lrw r5, 0x200000b8 // 4984 + 48fe: 4258 lsli r2, r2, 24 + 4900: 6c84 or r2, r1 + 4902: 9500 ld.w r0, (r5, 0x0) + 4904: 600a subu r0, r2 + 4906: 1141 lrw r2, 0x3e7 // 4988 + 4908: 6408 cmphs r2, r0 + 490a: 0817 bt 0x4938 // 4938 + { + g_adc.gather_tick = SysTick_1ms; + 490c: 9540 ld.w r2, (r5, 0x0) + 490e: 4a28 lsri r1, r2, 8 + 4910: a34c st.b r2, (r3, 0xc) + 4912: a32d st.b r1, (r3, 0xd) + 4914: 4a30 lsri r1, r2, 16 + 4916: 4a58 lsri r2, r2, 24 + 4918: a32e st.b r1, (r3, 0xe) + 491a: a34f st.b r2, (r3, 0xf) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 491c: 8461 ld.b r3, (r4, 0x1) + 491e: 3b41 cmpnei r3, 1 + 4920: 0c0d bf 0x493a // 493a + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4922: 843d ld.b r1, (r4, 0x1d) + 4924: 847c ld.b r3, (r4, 0x1c) + 4926: 4128 lsli r1, r1, 8 + 4928: 6c4c or r1, r3 + 492a: 3000 movi r0, 0 + 492c: 3300 movi r3, 0 + temp_val += g_adc.tempBuff[i]; + 492e: 3510 movi r5, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4930: 644c cmphs r3, r1 + 4932: 0c1c bf 0x496a // 496a + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 4934: 3940 cmpnei r1, 0 + 4936: 0813 bt 0x495c // 495c + } + g_adc.temp_val = temp_val / temp_size; + + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 4938: 1493 pop r4-r6, r15 + if(g_adc.gather_full == 1){ + 493a: 3200 movi r2, 0 + 493c: 3000 movi r0, 0 + temp_val += g_adc.tempBuff[i]; + 493e: 3110 movi r1, 16 + 4940: 5a64 addu r3, r2, r1 + 4942: 4361 lsli r3, r3, 1 + 4944: 60d0 addu r3, r4 + 4946: 83a0 ld.b r5, (r3, 0x0) + 4948: 8361 ld.b r3, (r3, 0x1) + 494a: 4368 lsli r3, r3, 8 + 494c: 2200 addi r2, 1 + 494e: 6cd4 or r3, r5 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4950: 3a54 cmpnei r2, 20 + temp_val += g_adc.tempBuff[i]; + 4952: 600c addu r0, r3 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4954: 0bf6 bt 0x4940 // 4940 + g_adc.gather_full = 0; + 4956: 3300 movi r3, 0 + 4958: a461 st.b r3, (r4, 0x1) + temp_size = Temp_DataBuff_Size; + 495a: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 495c: e3fff766 bsr 0x3828 // 3828 <__udivsi3> + 4960: 7401 zexth r0, r0 + 4962: a41e st.b r0, (r4, 0x1e) + 4964: 4808 lsri r0, r0, 8 + 4966: a41f st.b r0, (r4, 0x1f) + 4968: 07e8 br 0x4938 // 4938 + temp_val += g_adc.tempBuff[i]; + 496a: 5b54 addu r2, r3, r5 + 496c: 4241 lsli r2, r2, 1 + 496e: 6090 addu r2, r4 + 4970: 82c0 ld.b r6, (r2, 0x0) + 4972: 8241 ld.b r2, (r2, 0x1) + 4974: 4248 lsli r2, r2, 8 + 4976: 6c98 or r2, r6 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4978: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 497a: 6008 addu r0, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 497c: 74cc zextb r3, r3 + 497e: 07d9 br 0x4930 // 4930 + 4980: 200004a8 .long 0x200004a8 + 4984: 200000b8 .long 0x200000b8 + 4988: 000003e7 .long 0x000003e7 + +Disassembly of section .text.ADC_Sample_Task: + +0000498c : +void ADC_Sample_Task(void){ + 498c: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 498e: 1187 lrw r4, 0x200004a8 // 4a28 + 4990: 3340 movi r3, 64 + 4992: 60d0 addu r3, r4 + 4994: 8329 ld.b r1, (r3, 0x9) + 4996: 8348 ld.b r2, (r3, 0x8) + 4998: 4128 lsli r1, r1, 8 + 499a: 6c48 or r1, r2 + 499c: 834a ld.b r2, (r3, 0xa) + 499e: 4250 lsli r2, r2, 16 + 49a0: 6c48 or r1, r2 + 49a2: 834b ld.b r2, (r3, 0xb) + 49a4: 11a2 lrw r5, 0x200000b8 // 4a2c + 49a6: 4258 lsli r2, r2, 24 + 49a8: 9500 ld.w r0, (r5, 0x0) + 49aa: 6c84 or r2, r1 + 49ac: 600a subu r0, r2 + 49ae: 380a cmphsi r0, 11 + 49b0: 0c24 bf 0x49f8 // 49f8 + g_adc.sample_tick = SysTick_1ms; + 49b2: 9540 ld.w r2, (r5, 0x0) + 49b4: 4a28 lsri r1, r2, 8 + 49b6: a348 st.b r2, (r3, 0x8) + 49b8: a329 st.b r1, (r3, 0x9) + ADC12_SEQEND_wait(0); + 49ba: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 49bc: 4a30 lsri r1, r2, 16 + 49be: 4a58 lsri r2, r2, 24 + 49c0: a34b st.b r2, (r3, 0xb) + 49c2: a32a st.b r1, (r3, 0xa) + ADC12_SEQEND_wait(0); + 49c4: e3ffee16 bsr 0x25f0 // 25f0 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 49c8: 84c3 ld.b r6, (r4, 0x3) + 49ca: 8462 ld.b r3, (r4, 0x2) + 49cc: 46c8 lsli r6, r6, 8 + 49ce: 6d8c or r6, r3 + 49d0: 3000 movi r0, 0 + 49d2: e3ffee1b bsr 0x2608 // 2608 + 49d6: 5e6e addi r3, r6, 4 + 49d8: 4361 lsli r3, r3, 1 + 49da: 60d0 addu r3, r4 + 49dc: a300 st.b r0, (r3, 0x0) + 49de: 4808 lsri r0, r0, 8 + 49e0: a301 st.b r0, (r3, 0x1) + g_adc.index++; + 49e2: 8463 ld.b r3, (r4, 0x3) + 49e4: 8442 ld.b r2, (r4, 0x2) + 49e6: 4368 lsli r3, r3, 8 + 49e8: 6cc8 or r3, r2 + 49ea: 2300 addi r3, 1 + 49ec: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 49ee: 3b09 cmphsi r3, 10 + 49f0: 0815 bt 0x4a1a // 4a1a + g_adc.index++; + 49f2: a462 st.b r3, (r4, 0x2) + 49f4: 4b68 lsri r3, r3, 8 + 49f6: a463 st.b r3, (r4, 0x3) + if (g_adc.full_flag == 0x01) { + 49f8: 8460 ld.b r3, (r4, 0x0) + 49fa: 3b41 cmpnei r3, 1 + 49fc: 080c bt 0x4a14 // 4a14 + if (SysTick_1ms - adc_tick >= 100) { + 49fe: 104d lrw r2, 0x20000134 // 4a30 + 4a00: 9220 ld.w r1, (r2, 0x0) + 4a02: 9560 ld.w r3, (r5, 0x0) + 4a04: 60c6 subu r3, r1 + 4a06: 3163 movi r1, 99 + 4a08: 64c4 cmphs r1, r3 + 4a0a: 0805 bt 0x4a14 // 4a14 + adc_tick = SysTick_1ms; + 4a0c: 9560 ld.w r3, (r5, 0x0) + 4a0e: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4a10: e3ffff14 bsr 0x4838 // 4838 + Gather_Temp(); + 4a14: e3ffff68 bsr 0x48e4 // 48e4 +} + 4a18: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4a1a: 3300 movi r3, 0 + 4a1c: a462 st.b r3, (r4, 0x2) + 4a1e: a463 st.b r3, (r4, 0x3) + g_adc.full_flag = 1; + 4a20: 3301 movi r3, 1 + 4a22: a460 st.b r3, (r4, 0x0) + 4a24: 07ea br 0x49f8 // 49f8 + 4a26: 0000 bkpt + 4a28: 200004a8 .long 0x200004a8 + 4a2c: 200000b8 .long 0x200000b8 + 4a30: 20000134 .long 0x20000134 + +Disassembly of section .text.Contol_Switch_Light: + +00004a34 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 4a34: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4a36: 3805 cmphsi r0, 6 +{ + 4a38: 6d47 mov r5, r1 + switch(ch) + 4a3a: 0818 bt 0x4a6a // 4a6a + 4a3c: 009b lrw r4, 0x200004f8 // 4dcc + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4a3e: 3941 cmpnei r1, 1 + switch(ch) + 4a40: e3ffe176 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4a44: 00330006 .long 0x00330006 + 4a48: 008d0060 .long 0x008d0060 + 4a4c: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4a50: 0814 bt 0x4a78 // 4a78 + if(g_switch.feedback_light_selection == 0x01){ + 4a52: 8462 ld.b r3, (r4, 0x2) + 4a54: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a56: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4a58: 080a bt 0x4a6c // 4a6c + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a5a: 300b movi r0, 11 + 4a5c: e0000530 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4a60: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4a62: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a64: e000052c bsr 0x54bc // 54bc + g_switch.light_state[T_CH1] = state; + 4a68: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4a6a: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4a6c: 3006 movi r0, 6 + 4a6e: e0000527 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4a72: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4a74: 300b movi r0, 11 + 4a76: 07f7 br 0x4a64 // 4a64 + }else if(state == Control_OFF){ + 4a78: 3942 cmpnei r1, 2 + 4a7a: 0bf7 bt 0x4a68 // 4a68 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4a7c: 016a lrw r3, 0x200000b8 // 4dd0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4a7e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4a80: 9360 ld.w r3, (r3, 0x0) + 4a82: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4a84: 8462 ld.b r3, (r4, 0x2) + 4a86: 3b41 cmpnei r3, 1 + 4a88: 0809 bt 0x4a9a // 4a9a + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4a8a: 300b movi r0, 11 + 4a8c: e0000518 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4a90: 846a ld.b r3, (r4, 0xa) + 4a92: 3b41 cmpnei r3, 1 + 4a94: 0bea bt 0x4a68 // 4a68 + 4a96: 3101 movi r1, 1 + 4a98: 07e5 br 0x4a62 // 4a62 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4a9a: 3006 movi r0, 6 + 4a9c: e0000510 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4aa0: 846a ld.b r3, (r4, 0xa) + 4aa2: 3b41 cmpnei r3, 1 + 4aa4: 0be2 bt 0x4a68 // 4a68 + 4aa6: 3101 movi r1, 1 + 4aa8: 07e6 br 0x4a74 // 4a74 + if(state == Control_ON){ + 4aaa: 0814 bt 0x4ad2 // 4ad2 + if(g_switch.feedback_light_selection == 0x01){ + 4aac: 8462 ld.b r3, (r4, 0x2) + 4aae: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4ab0: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4ab2: 080a bt 0x4ac6 // 4ac6 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4ab4: 300c movi r0, 12 + 4ab6: e0000503 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4aba: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4abc: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4abe: e00004ff bsr 0x54bc // 54bc + g_switch.light_state[T_CH2] = state; + 4ac2: a4a6 st.b r5, (r4, 0x6) + break; + 4ac4: 07d3 br 0x4a6a // 4a6a + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4ac6: 3007 movi r0, 7 + 4ac8: e00004fa bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4acc: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4ace: 300c movi r0, 12 + 4ad0: 07f7 br 0x4abe // 4abe + }else if(state == Control_OFF){ + 4ad2: 3942 cmpnei r1, 2 + 4ad4: 0bf7 bt 0x4ac2 // 4ac2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ad6: 0260 lrw r3, 0x200000b8 // 4dd0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4ad8: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ada: 9360 ld.w r3, (r3, 0x0) + 4adc: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4ade: 8462 ld.b r3, (r4, 0x2) + 4ae0: 3b41 cmpnei r3, 1 + 4ae2: 0809 bt 0x4af4 // 4af4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4ae4: 300c movi r0, 12 + 4ae6: e00004eb bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4aea: 846a ld.b r3, (r4, 0xa) + 4aec: 3b41 cmpnei r3, 1 + 4aee: 0bea bt 0x4ac2 // 4ac2 + 4af0: 3101 movi r1, 1 + 4af2: 07e5 br 0x4abc // 4abc + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4af4: 3007 movi r0, 7 + 4af6: e00004e3 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4afa: 846a ld.b r3, (r4, 0xa) + 4afc: 3b41 cmpnei r3, 1 + 4afe: 0be2 bt 0x4ac2 // 4ac2 + 4b00: 3101 movi r1, 1 + 4b02: 07e6 br 0x4ace // 4ace + if(state == Control_ON){ + 4b04: 0814 bt 0x4b2c // 4b2c + if(g_switch.feedback_light_selection == 0x01){ + 4b06: 8462 ld.b r3, (r4, 0x2) + 4b08: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b0a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4b0c: 080a bt 0x4b20 // 4b20 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b0e: 300d movi r0, 13 + 4b10: e00004d6 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4b14: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4b16: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b18: e00004d2 bsr 0x54bc // 54bc + g_switch.light_state[T_CH3] = state; + 4b1c: a4a7 st.b r5, (r4, 0x7) + break; + 4b1e: 07a6 br 0x4a6a // 4a6a + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4b20: 3008 movi r0, 8 + 4b22: e00004cd bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4b26: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b28: 300d movi r0, 13 + 4b2a: 07f7 br 0x4b18 // 4b18 + }else if(state == Control_OFF){ + 4b2c: 3942 cmpnei r1, 2 + 4b2e: 0bf7 bt 0x4b1c // 4b1c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b30: 0277 lrw r3, 0x200000b8 // 4dd0 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4b32: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b34: 9360 ld.w r3, (r3, 0x0) + 4b36: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4b38: 8462 ld.b r3, (r4, 0x2) + 4b3a: 3b41 cmpnei r3, 1 + 4b3c: 0809 bt 0x4b4e // 4b4e + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4b3e: 300d movi r0, 13 + 4b40: e00004be bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4b44: 846a ld.b r3, (r4, 0xa) + 4b46: 3b41 cmpnei r3, 1 + 4b48: 0bea bt 0x4b1c // 4b1c + 4b4a: 3101 movi r1, 1 + 4b4c: 07e5 br 0x4b16 // 4b16 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4b4e: 3008 movi r0, 8 + 4b50: e00004b6 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4b54: 846a ld.b r3, (r4, 0xa) + 4b56: 3b41 cmpnei r3, 1 + 4b58: 0be2 bt 0x4b1c // 4b1c + 4b5a: 3101 movi r1, 1 + 4b5c: 07e6 br 0x4b28 // 4b28 + if(state == Control_ON){ + 4b5e: 0814 bt 0x4b86 // 4b86 + if(g_switch.feedback_light_selection == 0x01){ + 4b60: 8462 ld.b r3, (r4, 0x2) + 4b62: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b64: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4b66: 080a bt 0x4b7a // 4b7a + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b68: 300e movi r0, 14 + 4b6a: e00004a9 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4b6e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4b70: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b72: e00004a5 bsr 0x54bc // 54bc + g_switch.light_state[T_CH4] = state; + 4b76: a4a8 st.b r5, (r4, 0x8) + break; + 4b78: 0779 br 0x4a6a // 4a6a + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4b7a: 3009 movi r0, 9 + 4b7c: e00004a0 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4b80: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4b82: 300e movi r0, 14 + 4b84: 07f7 br 0x4b72 // 4b72 + }else if(state == Control_OFF){ + 4b86: 3942 cmpnei r1, 2 + 4b88: 0bf7 bt 0x4b76 // 4b76 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b8a: 036d lrw r3, 0x200000b8 // 4dd0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4b8c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4b8e: 9360 ld.w r3, (r3, 0x0) + 4b90: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4b92: 8462 ld.b r3, (r4, 0x2) + 4b94: 3b41 cmpnei r3, 1 + 4b96: 0809 bt 0x4ba8 // 4ba8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4b98: 300e movi r0, 14 + 4b9a: e0000491 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4b9e: 846a ld.b r3, (r4, 0xa) + 4ba0: 3b41 cmpnei r3, 1 + 4ba2: 0bea bt 0x4b76 // 4b76 + 4ba4: 3101 movi r1, 1 + 4ba6: 07e5 br 0x4b70 // 4b70 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4ba8: 3009 movi r0, 9 + 4baa: e0000489 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4bae: 846a ld.b r3, (r4, 0xa) + 4bb0: 3b41 cmpnei r3, 1 + 4bb2: 0be2 bt 0x4b76 // 4b76 + 4bb4: 3101 movi r1, 1 + 4bb6: 07e6 br 0x4b82 // 4b82 + if(state == Control_ON){ + 4bb8: 0814 bt 0x4be0 // 4be0 + if(g_switch.feedback_light_selection == 0x01){ + 4bba: 8462 ld.b r3, (r4, 0x2) + 4bbc: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4bbe: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4bc0: 080a bt 0x4bd4 // 4bd4 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4bc2: 300f movi r0, 15 + 4bc4: e000047c bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4bc8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4bca: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4bcc: e0000478 bsr 0x54bc // 54bc + g_switch.light_state[T_CH5] = state; + 4bd0: a4a9 st.b r5, (r4, 0x9) + break; + 4bd2: 074c br 0x4a6a // 4a6a + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4bd4: 300a movi r0, 10 + 4bd6: e0000473 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4bda: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4bdc: 300f movi r0, 15 + 4bde: 07f7 br 0x4bcc // 4bcc + }else if(state == Control_OFF){ + 4be0: 3942 cmpnei r1, 2 + 4be2: 0bf7 bt 0x4bd0 // 4bd0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4be4: 137b lrw r3, 0x200000b8 // 4dd0 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4be6: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4be8: 9360 ld.w r3, (r3, 0x0) + 4bea: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4bec: 8462 ld.b r3, (r4, 0x2) + 4bee: 3b41 cmpnei r3, 1 + 4bf0: 0809 bt 0x4c02 // 4c02 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4bf2: 300f movi r0, 15 + 4bf4: e0000464 bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4bf8: 846a ld.b r3, (r4, 0xa) + 4bfa: 3b41 cmpnei r3, 1 + 4bfc: 0bea bt 0x4bd0 // 4bd0 + 4bfe: 3101 movi r1, 1 + 4c00: 07e5 br 0x4bca // 4bca + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4c02: 300a movi r0, 10 + 4c04: e000045c bsr 0x54bc // 54bc + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4c08: 846a ld.b r3, (r4, 0xa) + 4c0a: 3b41 cmpnei r3, 1 + 4c0c: 0be2 bt 0x4bd0 // 4bd0 + 4c0e: 3101 movi r1, 1 + 4c10: 07e6 br 0x4bdc // 4bdc + if(state == Control_ON){ + 4c12: 08b1 bt 0x4d74 // 4d74 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4c14: 136f lrw r3, 0x200000b8 // 4dd0 + 4c16: 9360 ld.w r3, (r3, 0x0) + 4c18: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4c1a: 8462 ld.b r3, (r4, 0x2) + 4c1c: 3b41 cmpnei r3, 1 + 4c1e: 8465 ld.b r3, (r4, 0x5) + 4c20: 0857 bt 0x4cce // 4cce + if(g_switch.light_state[T_CH1] != Control_ON) { + 4c22: 3b41 cmpnei r3, 1 + 4c24: 0c33 bf 0x4c8a // 4c8a + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4c26: 3101 movi r1, 1 + 4c28: 3006 movi r0, 6 + 4c2a: e0000449 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4c2e: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4c30: 300b movi r0, 11 + 4c32: e0000445 bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH2] != Control_ON) { + 4c36: 8466 ld.b r3, (r4, 0x6) + 4c38: 3b41 cmpnei r3, 1 + 4c3a: 0c2e bf 0x4c96 // 4c96 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4c3c: 3101 movi r1, 1 + 4c3e: 3007 movi r0, 7 + 4c40: e000043e bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4c44: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4c46: 300c movi r0, 12 + 4c48: e000043a bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH3] != Control_ON) { + 4c4c: 8467 ld.b r3, (r4, 0x7) + 4c4e: 3b41 cmpnei r3, 1 + 4c50: 0c29 bf 0x4ca2 // 4ca2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4c52: 3101 movi r1, 1 + 4c54: 3008 movi r0, 8 + 4c56: e0000433 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4c5a: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4c5c: 300d movi r0, 13 + 4c5e: e000042f bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH4] != Control_ON) { + 4c62: 8468 ld.b r3, (r4, 0x8) + 4c64: 3b41 cmpnei r3, 1 + 4c66: 0c24 bf 0x4cae // 4cae + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4c68: 3101 movi r1, 1 + 4c6a: 3009 movi r0, 9 + 4c6c: e0000428 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c70: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4c72: 300e movi r0, 14 + 4c74: e0000424 bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH5] != Control_ON) { + 4c78: 8469 ld.b r3, (r4, 0x9) + 4c7a: 3b41 cmpnei r3, 1 + 4c7c: 0c1f bf 0x4cba // 4cba + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4c7e: 3101 movi r1, 1 + 4c80: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4c82: e000041d bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4c86: 3102 movi r1, 2 + 4c88: 041e br 0x4cc4 // 4cc4 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4c8a: 3102 movi r1, 2 + 4c8c: 3006 movi r0, 6 + 4c8e: e0000417 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4c92: 3101 movi r1, 1 + 4c94: 07ce br 0x4c30 // 4c30 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4c96: 3102 movi r1, 2 + 4c98: 3007 movi r0, 7 + 4c9a: e0000411 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4c9e: 3101 movi r1, 1 + 4ca0: 07d3 br 0x4c46 // 4c46 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4ca2: 3102 movi r1, 2 + 4ca4: 3008 movi r0, 8 + 4ca6: e000040b bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4caa: 3101 movi r1, 1 + 4cac: 07d8 br 0x4c5c // 4c5c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4cae: 3102 movi r1, 2 + 4cb0: 3009 movi r0, 9 + 4cb2: e0000405 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4cb6: 3101 movi r1, 1 + 4cb8: 07dd br 0x4c72 // 4c72 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4cba: 3102 movi r1, 2 + 4cbc: 300a movi r0, 10 + 4cbe: e00003ff bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4cc2: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4cc4: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4cc6: e00003fb bsr 0x54bc // 54bc + g_switch.light_state[T_Backlight] = state; + 4cca: a4aa st.b r5, (r4, 0xa) +} + 4ccc: 06cf br 0x4a6a // 4a6a + if(g_switch.light_state[T_CH1] != Control_ON) { + 4cce: 3b41 cmpnei r3, 1 + 4cd0: 0c33 bf 0x4d36 // 4d36 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4cd2: 3101 movi r1, 1 + 4cd4: 300b movi r0, 11 + 4cd6: e00003f3 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4cda: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4cdc: 3006 movi r0, 6 + 4cde: e00003ef bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH2] != Control_ON) { + 4ce2: 8466 ld.b r3, (r4, 0x6) + 4ce4: 3b41 cmpnei r3, 1 + 4ce6: 0c2e bf 0x4d42 // 4d42 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4ce8: 3101 movi r1, 1 + 4cea: 300c movi r0, 12 + 4cec: e00003e8 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4cf0: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4cf2: 3007 movi r0, 7 + 4cf4: e00003e4 bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH3] != Control_ON) { + 4cf8: 8467 ld.b r3, (r4, 0x7) + 4cfa: 3b41 cmpnei r3, 1 + 4cfc: 0c29 bf 0x4d4e // 4d4e + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4cfe: 3101 movi r1, 1 + 4d00: 300d movi r0, 13 + 4d02: e00003dd bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4d06: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4d08: 3008 movi r0, 8 + 4d0a: e00003d9 bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH4] != Control_ON) { + 4d0e: 8468 ld.b r3, (r4, 0x8) + 4d10: 3b41 cmpnei r3, 1 + 4d12: 0c24 bf 0x4d5a // 4d5a + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4d14: 3101 movi r1, 1 + 4d16: 300e movi r0, 14 + 4d18: e00003d2 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4d1c: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4d1e: 3009 movi r0, 9 + 4d20: e00003ce bsr 0x54bc // 54bc + if(g_switch.light_state[T_CH5] != Control_ON) { + 4d24: 8469 ld.b r3, (r4, 0x9) + 4d26: 3b41 cmpnei r3, 1 + 4d28: 0c1f bf 0x4d66 // 4d66 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4d2a: 3101 movi r1, 1 + 4d2c: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4d2e: e00003c7 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d32: 3102 movi r1, 2 + 4d34: 041e br 0x4d70 // 4d70 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4d36: 3102 movi r1, 2 + 4d38: 300b movi r0, 11 + 4d3a: e00003c1 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4d3e: 3101 movi r1, 1 + 4d40: 07ce br 0x4cdc // 4cdc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4d42: 3102 movi r1, 2 + 4d44: 300c movi r0, 12 + 4d46: e00003bb bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4d4a: 3101 movi r1, 1 + 4d4c: 07d3 br 0x4cf2 // 4cf2 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4d4e: 3102 movi r1, 2 + 4d50: 300d movi r0, 13 + 4d52: e00003b5 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4d56: 3101 movi r1, 1 + 4d58: 07d8 br 0x4d08 // 4d08 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4d5a: 3102 movi r1, 2 + 4d5c: 300e movi r0, 14 + 4d5e: e00003af bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4d62: 3101 movi r1, 1 + 4d64: 07dd br 0x4d1e // 4d1e + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4d66: 3102 movi r1, 2 + 4d68: 300f movi r0, 15 + 4d6a: e00003a9 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4d6e: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d70: 300a movi r0, 10 + 4d72: 07aa br 0x4cc6 // 4cc6 + }else if(state == Control_OFF){ + 4d74: 3942 cmpnei r1, 2 + 4d76: 0baa bt 0x4cca // 4cca + if(g_switch.feedback_light_selection == 0x01){ + 4d78: 8462 ld.b r3, (r4, 0x2) + 4d7a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4d7c: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 4d7e: 082b bt 0x4dd4 // 4dd4 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4d80: 3006 movi r0, 6 + 4d82: e000039d bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4d86: 3102 movi r1, 2 + 4d88: 3007 movi r0, 7 + 4d8a: e0000399 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4d8e: 3102 movi r1, 2 + 4d90: 3008 movi r0, 8 + 4d92: e0000395 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4d96: 3102 movi r1, 2 + 4d98: 3009 movi r0, 9 + 4d9a: e0000391 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4d9e: 3102 movi r1, 2 + 4da0: 300a movi r0, 10 + 4da2: e000038d bsr 0x54bc // 54bc + if(g_switch.autoOff_light_flag == 0x01){ + 4da6: 8461 ld.b r3, (r4, 0x1) + 4da8: 3b41 cmpnei r3, 1 + 4daa: 0b90 bt 0x4cca // 4cca + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4dac: 3102 movi r1, 2 + 4dae: 300b movi r0, 11 + 4db0: e0000386 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4db4: 3102 movi r1, 2 + 4db6: 300c movi r0, 12 + 4db8: e0000382 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4dbc: 3102 movi r1, 2 + 4dbe: 300d movi r0, 13 + 4dc0: e000037e bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4dc4: 3102 movi r1, 2 + 4dc6: 300e movi r0, 14 + 4dc8: 075d br 0x4c82 // 4c82 + 4dca: 0000 bkpt + 4dcc: 200004f8 .long 0x200004f8 + 4dd0: 200000b8 .long 0x200000b8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4dd4: 300b movi r0, 11 + 4dd6: e0000373 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4dda: 3102 movi r1, 2 + 4ddc: 300c movi r0, 12 + 4dde: e000036f bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4de2: 3102 movi r1, 2 + 4de4: 300d movi r0, 13 + 4de6: e000036b bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4dea: 3102 movi r1, 2 + 4dec: 300e movi r0, 14 + 4dee: e0000367 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 4df2: 3102 movi r1, 2 + 4df4: 300f movi r0, 15 + 4df6: e0000363 bsr 0x54bc // 54bc + if(g_switch.autoOff_light_flag == 0x01){ + 4dfa: 8461 ld.b r3, (r4, 0x1) + 4dfc: 3b41 cmpnei r3, 1 + 4dfe: 0b66 bt 0x4cca // 4cca + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4e00: 3102 movi r1, 2 + 4e02: 3006 movi r0, 6 + 4e04: e000035c bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4e08: 3102 movi r1, 2 + 4e0a: 3007 movi r0, 7 + 4e0c: e0000358 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4e10: 3102 movi r1, 2 + 4e12: 3008 movi r0, 8 + 4e14: e0000354 bsr 0x54bc // 54bc + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4e18: 3102 movi r1, 2 + 4e1a: 3009 movi r0, 9 + 4e1c: 0789 br 0x4d2e // 4d2e + +Disassembly of section .text.Contol_Switch_Light_2: + +00004e20 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 4e20: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4e22: 3805 cmphsi r0, 6 +{ + 4e24: 6d47 mov r5, r1 + switch(ch) + 4e26: 0818 bt 0x4e56 // 4e56 + 4e28: 009b lrw r4, 0x200004f8 // 51b8 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4e2a: 3941 cmpnei r1, 1 + switch(ch) + 4e2c: e3ffdf80 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4e30: 00330006 .long 0x00330006 + 4e34: 008d0060 .long 0x008d0060 + 4e38: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4e3c: 0814 bt 0x4e64 // 4e64 + if(g_switch.feedback_light_selection == 0x01){ + 4e3e: 8462 ld.b r3, (r4, 0x2) + 4e40: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e42: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4e44: 080a bt 0x4e58 // 4e58 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e46: 300b movi r0, 11 + 4e48: e0000372 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 4e4c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4e4e: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e50: e000036e bsr 0x552c // 552c + g_switch.light_state[T_CH1] = state; + 4e54: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4e56: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4e58: 3006 movi r0, 6 + 4e5a: e0000369 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4e5e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e60: 300b movi r0, 11 + 4e62: 07f7 br 0x4e50 // 4e50 + }else if(state == Control_OFF){ + 4e64: 3942 cmpnei r1, 2 + 4e66: 0bf7 bt 0x4e54 // 4e54 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4e68: 016a lrw r3, 0x200000b8 // 51bc + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4e6a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4e6c: 9360 ld.w r3, (r3, 0x0) + 4e6e: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4e70: 8462 ld.b r3, (r4, 0x2) + 4e72: 3b41 cmpnei r3, 1 + 4e74: 0809 bt 0x4e86 // 4e86 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 4e76: 300b movi r0, 11 + 4e78: e000035a bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 4e7c: 846a ld.b r3, (r4, 0xa) + 4e7e: 3b41 cmpnei r3, 1 + 4e80: 0bea bt 0x4e54 // 4e54 + 4e82: 3101 movi r1, 1 + 4e84: 07e5 br 0x4e4e // 4e4e + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 4e86: 3006 movi r0, 6 + 4e88: e0000352 bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 4e8c: 846a ld.b r3, (r4, 0xa) + 4e8e: 3b41 cmpnei r3, 1 + 4e90: 0be2 bt 0x4e54 // 4e54 + 4e92: 3101 movi r1, 1 + 4e94: 07e6 br 0x4e60 // 4e60 + if(state == Control_ON){ + 4e96: 0814 bt 0x4ebe // 4ebe + if(g_switch.feedback_light_selection == 0x01){ + 4e98: 8462 ld.b r3, (r4, 0x2) + 4e9a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4e9c: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4e9e: 080a bt 0x4eb2 // 4eb2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4ea0: 300c movi r0, 12 + 4ea2: e0000345 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 4ea6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4ea8: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4eaa: e0000341 bsr 0x552c // 552c + g_switch.light_state[T_CH2] = state; + 4eae: a4a6 st.b r5, (r4, 0x6) + break; + 4eb0: 07d3 br 0x4e56 // 4e56 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4eb2: 3007 movi r0, 7 + 4eb4: e000033c bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4eb8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4eba: 300c movi r0, 12 + 4ebc: 07f7 br 0x4eaa // 4eaa + }else if(state == Control_OFF){ + 4ebe: 3942 cmpnei r1, 2 + 4ec0: 0bf7 bt 0x4eae // 4eae + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ec2: 0260 lrw r3, 0x200000b8 // 51bc + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4ec4: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ec6: 9360 ld.w r3, (r3, 0x0) + 4ec8: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4eca: 8462 ld.b r3, (r4, 0x2) + 4ecc: 3b41 cmpnei r3, 1 + 4ece: 0809 bt 0x4ee0 // 4ee0 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 4ed0: 300c movi r0, 12 + 4ed2: e000032d bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 4ed6: 846a ld.b r3, (r4, 0xa) + 4ed8: 3b41 cmpnei r3, 1 + 4eda: 0bea bt 0x4eae // 4eae + 4edc: 3101 movi r1, 1 + 4ede: 07e5 br 0x4ea8 // 4ea8 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 4ee0: 3007 movi r0, 7 + 4ee2: e0000325 bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 4ee6: 846a ld.b r3, (r4, 0xa) + 4ee8: 3b41 cmpnei r3, 1 + 4eea: 0be2 bt 0x4eae // 4eae + 4eec: 3101 movi r1, 1 + 4eee: 07e6 br 0x4eba // 4eba + if(state == Control_ON){ + 4ef0: 0814 bt 0x4f18 // 4f18 + if(g_switch.feedback_light_selection == 0x01){ + 4ef2: 8462 ld.b r3, (r4, 0x2) + 4ef4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4ef6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4ef8: 080a bt 0x4f0c // 4f0c + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4efa: 300d movi r0, 13 + 4efc: e0000318 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 4f00: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4f02: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f04: e0000314 bsr 0x552c // 552c + g_switch.light_state[T_CH3] = state; + 4f08: a4a7 st.b r5, (r4, 0x7) + break; + 4f0a: 07a6 br 0x4e56 // 4e56 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4f0c: 3008 movi r0, 8 + 4f0e: e000030f bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4f12: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f14: 300d movi r0, 13 + 4f16: 07f7 br 0x4f04 // 4f04 + }else if(state == Control_OFF){ + 4f18: 3942 cmpnei r1, 2 + 4f1a: 0bf7 bt 0x4f08 // 4f08 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f1c: 0277 lrw r3, 0x200000b8 // 51bc + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4f1e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f20: 9360 ld.w r3, (r3, 0x0) + 4f22: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4f24: 8462 ld.b r3, (r4, 0x2) + 4f26: 3b41 cmpnei r3, 1 + 4f28: 0809 bt 0x4f3a // 4f3a + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 4f2a: 300d movi r0, 13 + 4f2c: e0000300 bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 4f30: 846a ld.b r3, (r4, 0xa) + 4f32: 3b41 cmpnei r3, 1 + 4f34: 0bea bt 0x4f08 // 4f08 + 4f36: 3101 movi r1, 1 + 4f38: 07e5 br 0x4f02 // 4f02 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 4f3a: 3008 movi r0, 8 + 4f3c: e00002f8 bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 4f40: 846a ld.b r3, (r4, 0xa) + 4f42: 3b41 cmpnei r3, 1 + 4f44: 0be2 bt 0x4f08 // 4f08 + 4f46: 3101 movi r1, 1 + 4f48: 07e6 br 0x4f14 // 4f14 + if(state == Control_ON){ + 4f4a: 0814 bt 0x4f72 // 4f72 + if(g_switch.feedback_light_selection == 0x01){ + 4f4c: 8462 ld.b r3, (r4, 0x2) + 4f4e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f50: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f52: 080a bt 0x4f66 // 4f66 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f54: 300e movi r0, 14 + 4f56: e00002eb bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 4f5a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4f5c: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f5e: e00002e7 bsr 0x552c // 552c + g_switch.light_state[T_CH4] = state; + 4f62: a4a8 st.b r5, (r4, 0x8) + break; + 4f64: 0779 br 0x4e56 // 4e56 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4f66: 3009 movi r0, 9 + 4f68: e00002e2 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4f6c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f6e: 300e movi r0, 14 + 4f70: 07f7 br 0x4f5e // 4f5e + }else if(state == Control_OFF){ + 4f72: 3942 cmpnei r1, 2 + 4f74: 0bf7 bt 0x4f62 // 4f62 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f76: 036d lrw r3, 0x200000b8 // 51bc + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4f78: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f7a: 9360 ld.w r3, (r3, 0x0) + 4f7c: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4f7e: 8462 ld.b r3, (r4, 0x2) + 4f80: 3b41 cmpnei r3, 1 + 4f82: 0809 bt 0x4f94 // 4f94 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 4f84: 300e movi r0, 14 + 4f86: e00002d3 bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 4f8a: 846a ld.b r3, (r4, 0xa) + 4f8c: 3b41 cmpnei r3, 1 + 4f8e: 0bea bt 0x4f62 // 4f62 + 4f90: 3101 movi r1, 1 + 4f92: 07e5 br 0x4f5c // 4f5c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 4f94: 3009 movi r0, 9 + 4f96: e00002cb bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 4f9a: 846a ld.b r3, (r4, 0xa) + 4f9c: 3b41 cmpnei r3, 1 + 4f9e: 0be2 bt 0x4f62 // 4f62 + 4fa0: 3101 movi r1, 1 + 4fa2: 07e6 br 0x4f6e // 4f6e + if(state == Control_ON){ + 4fa4: 0814 bt 0x4fcc // 4fcc + if(g_switch.feedback_light_selection == 0x01){ + 4fa6: 8462 ld.b r3, (r4, 0x2) + 4fa8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4faa: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4fac: 080a bt 0x4fc0 // 4fc0 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4fae: 300f movi r0, 15 + 4fb0: e00002be bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 4fb4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 4fb6: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4fb8: e00002ba bsr 0x552c // 552c + g_switch.light_state[T_CH5] = state; + 4fbc: a4a9 st.b r5, (r4, 0x9) + break; + 4fbe: 074c br 0x4e56 // 4e56 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 4fc0: 300a movi r0, 10 + 4fc2: e00002b5 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 4fc6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4fc8: 300f movi r0, 15 + 4fca: 07f7 br 0x4fb8 // 4fb8 + }else if(state == Control_OFF){ + 4fcc: 3942 cmpnei r1, 2 + 4fce: 0bf7 bt 0x4fbc // 4fbc + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fd0: 137b lrw r3, 0x200000b8 // 51bc + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 4fd2: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fd4: 9360 ld.w r3, (r3, 0x0) + 4fd6: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 4fd8: 8462 ld.b r3, (r4, 0x2) + 4fda: 3b41 cmpnei r3, 1 + 4fdc: 0809 bt 0x4fee // 4fee + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 4fde: 300f movi r0, 15 + 4fe0: e00002a6 bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 4fe4: 846a ld.b r3, (r4, 0xa) + 4fe6: 3b41 cmpnei r3, 1 + 4fe8: 0bea bt 0x4fbc // 4fbc + 4fea: 3101 movi r1, 1 + 4fec: 07e5 br 0x4fb6 // 4fb6 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 4fee: 300a movi r0, 10 + 4ff0: e000029e bsr 0x552c // 552c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 4ff4: 846a ld.b r3, (r4, 0xa) + 4ff6: 3b41 cmpnei r3, 1 + 4ff8: 0be2 bt 0x4fbc // 4fbc + 4ffa: 3101 movi r1, 1 + 4ffc: 07e6 br 0x4fc8 // 4fc8 + if(state == Control_ON){ + 4ffe: 08b1 bt 0x5160 // 5160 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5000: 136f lrw r3, 0x200000b8 // 51bc + 5002: 9360 ld.w r3, (r3, 0x0) + 5004: b468 st.w r3, (r4, 0x20) + if(g_switch.feedback_light_selection == 0x01){ + 5006: 8462 ld.b r3, (r4, 0x2) + 5008: 3b41 cmpnei r3, 1 + 500a: 8465 ld.b r3, (r4, 0x5) + 500c: 0857 bt 0x50ba // 50ba + if(g_switch.light_state[T_CH1] != Control_ON) { + 500e: 3b41 cmpnei r3, 1 + 5010: 0c33 bf 0x5076 // 5076 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5012: 3101 movi r1, 1 + 5014: 3006 movi r0, 6 + 5016: e000028b bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 501a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 501c: 300b movi r0, 11 + 501e: e0000287 bsr 0x552c // 552c + if(g_switch.light_state[T_CH2] != Control_ON) { + 5022: 8466 ld.b r3, (r4, 0x6) + 5024: 3b41 cmpnei r3, 1 + 5026: 0c2e bf 0x5082 // 5082 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5028: 3101 movi r1, 1 + 502a: 3007 movi r0, 7 + 502c: e0000280 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5030: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5032: 300c movi r0, 12 + 5034: e000027c bsr 0x552c // 552c + if(g_switch.light_state[T_CH3] != Control_ON) { + 5038: 8467 ld.b r3, (r4, 0x7) + 503a: 3b41 cmpnei r3, 1 + 503c: 0c29 bf 0x508e // 508e + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 503e: 3101 movi r1, 1 + 5040: 3008 movi r0, 8 + 5042: e0000275 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5046: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5048: 300d movi r0, 13 + 504a: e0000271 bsr 0x552c // 552c + if(g_switch.light_state[T_CH4] != Control_ON) { + 504e: 8468 ld.b r3, (r4, 0x8) + 5050: 3b41 cmpnei r3, 1 + 5052: 0c24 bf 0x509a // 509a + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5054: 3101 movi r1, 1 + 5056: 3009 movi r0, 9 + 5058: e000026a bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 505c: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 505e: 300e movi r0, 14 + 5060: e0000266 bsr 0x552c // 552c + if(g_switch.light_state[T_CH5] != Control_ON) { + 5064: 8469 ld.b r3, (r4, 0x9) + 5066: 3b41 cmpnei r3, 1 + 5068: 0c1f bf 0x50a6 // 50a6 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 506a: 3101 movi r1, 1 + 506c: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 506e: e000025f bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5072: 3102 movi r1, 2 + 5074: 041e br 0x50b0 // 50b0 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5076: 3102 movi r1, 2 + 5078: 3006 movi r0, 6 + 507a: e0000259 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 507e: 3101 movi r1, 1 + 5080: 07ce br 0x501c // 501c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5082: 3102 movi r1, 2 + 5084: 3007 movi r0, 7 + 5086: e0000253 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 508a: 3101 movi r1, 1 + 508c: 07d3 br 0x5032 // 5032 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 508e: 3102 movi r1, 2 + 5090: 3008 movi r0, 8 + 5092: e000024d bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5096: 3101 movi r1, 1 + 5098: 07d8 br 0x5048 // 5048 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 509a: 3102 movi r1, 2 + 509c: 3009 movi r0, 9 + 509e: e0000247 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 50a2: 3101 movi r1, 1 + 50a4: 07dd br 0x505e // 505e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 50a6: 3102 movi r1, 2 + 50a8: 300a movi r0, 10 + 50aa: e0000241 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 50ae: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 50b0: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 50b2: e000023d bsr 0x552c // 552c + g_switch.light_state[T_Backlight] = state; + 50b6: a4aa st.b r5, (r4, 0xa) +} + 50b8: 06cf br 0x4e56 // 4e56 + if(g_switch.light_state[T_CH1] != Control_ON) { + 50ba: 3b41 cmpnei r3, 1 + 50bc: 0c33 bf 0x5122 // 5122 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 50be: 3101 movi r1, 1 + 50c0: 300b movi r0, 11 + 50c2: e0000235 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 50c6: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 50c8: 3006 movi r0, 6 + 50ca: e0000231 bsr 0x552c // 552c + if(g_switch.light_state[T_CH2] != Control_ON) { + 50ce: 8466 ld.b r3, (r4, 0x6) + 50d0: 3b41 cmpnei r3, 1 + 50d2: 0c2e bf 0x512e // 512e + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 50d4: 3101 movi r1, 1 + 50d6: 300c movi r0, 12 + 50d8: e000022a bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 50dc: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 50de: 3007 movi r0, 7 + 50e0: e0000226 bsr 0x552c // 552c + if(g_switch.light_state[T_CH3] != Control_ON) { + 50e4: 8467 ld.b r3, (r4, 0x7) + 50e6: 3b41 cmpnei r3, 1 + 50e8: 0c29 bf 0x513a // 513a + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 50ea: 3101 movi r1, 1 + 50ec: 300d movi r0, 13 + 50ee: e000021f bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 50f2: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 50f4: 3008 movi r0, 8 + 50f6: e000021b bsr 0x552c // 552c + if(g_switch.light_state[T_CH4] != Control_ON) { + 50fa: 8468 ld.b r3, (r4, 0x8) + 50fc: 3b41 cmpnei r3, 1 + 50fe: 0c24 bf 0x5146 // 5146 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5100: 3101 movi r1, 1 + 5102: 300e movi r0, 14 + 5104: e0000214 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5108: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 510a: 3009 movi r0, 9 + 510c: e0000210 bsr 0x552c // 552c + if(g_switch.light_state[T_CH5] != Control_ON) { + 5110: 8469 ld.b r3, (r4, 0x9) + 5112: 3b41 cmpnei r3, 1 + 5114: 0c1f bf 0x5152 // 5152 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5116: 3101 movi r1, 1 + 5118: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 511a: e0000209 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 511e: 3102 movi r1, 2 + 5120: 041e br 0x515c // 515c + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5122: 3102 movi r1, 2 + 5124: 300b movi r0, 11 + 5126: e0000203 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 512a: 3101 movi r1, 1 + 512c: 07ce br 0x50c8 // 50c8 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 512e: 3102 movi r1, 2 + 5130: 300c movi r0, 12 + 5132: e00001fd bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5136: 3101 movi r1, 1 + 5138: 07d3 br 0x50de // 50de + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 513a: 3102 movi r1, 2 + 513c: 300d movi r0, 13 + 513e: e00001f7 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5142: 3101 movi r1, 1 + 5144: 07d8 br 0x50f4 // 50f4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5146: 3102 movi r1, 2 + 5148: 300e movi r0, 14 + 514a: e00001f1 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 514e: 3101 movi r1, 1 + 5150: 07dd br 0x510a // 510a + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5152: 3102 movi r1, 2 + 5154: 300f movi r0, 15 + 5156: e00001eb bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 515a: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 515c: 300a movi r0, 10 + 515e: 07aa br 0x50b2 // 50b2 + }else if(state == Control_OFF){ + 5160: 3942 cmpnei r1, 2 + 5162: 0baa bt 0x50b6 // 50b6 + if(g_switch.feedback_light_selection == 0x01){ + 5164: 8462 ld.b r3, (r4, 0x2) + 5166: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5168: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 516a: 082b bt 0x51c0 // 51c0 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 516c: 3006 movi r0, 6 + 516e: e00001df bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5172: 3102 movi r1, 2 + 5174: 3007 movi r0, 7 + 5176: e00001db bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 517a: 3102 movi r1, 2 + 517c: 3008 movi r0, 8 + 517e: e00001d7 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5182: 3102 movi r1, 2 + 5184: 3009 movi r0, 9 + 5186: e00001d3 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 518a: 3102 movi r1, 2 + 518c: 300a movi r0, 10 + 518e: e00001cf bsr 0x552c // 552c + if(g_switch.autoOff_light_flag == 0x01){ + 5192: 8461 ld.b r3, (r4, 0x1) + 5194: 3b41 cmpnei r3, 1 + 5196: 0b90 bt 0x50b6 // 50b6 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5198: 3102 movi r1, 2 + 519a: 300b movi r0, 11 + 519c: e00001c8 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 51a0: 3102 movi r1, 2 + 51a2: 300c movi r0, 12 + 51a4: e00001c4 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 51a8: 3102 movi r1, 2 + 51aa: 300d movi r0, 13 + 51ac: e00001c0 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 51b0: 3102 movi r1, 2 + 51b2: 300e movi r0, 14 + 51b4: 075d br 0x506e // 506e + 51b6: 0000 bkpt + 51b8: 200004f8 .long 0x200004f8 + 51bc: 200000b8 .long 0x200000b8 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 51c0: 300b movi r0, 11 + 51c2: e00001b5 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 51c6: 3102 movi r1, 2 + 51c8: 300c movi r0, 12 + 51ca: e00001b1 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 51ce: 3102 movi r1, 2 + 51d0: 300d movi r0, 13 + 51d2: e00001ad bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 51d6: 3102 movi r1, 2 + 51d8: 300e movi r0, 14 + 51da: e00001a9 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 51de: 3102 movi r1, 2 + 51e0: 300f movi r0, 15 + 51e2: e00001a5 bsr 0x552c // 552c + if(g_switch.autoOff_light_flag == 0x01){ + 51e6: 8461 ld.b r3, (r4, 0x1) + 51e8: 3b41 cmpnei r3, 1 + 51ea: 0b66 bt 0x50b6 // 50b6 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 51ec: 3102 movi r1, 2 + 51ee: 3006 movi r0, 6 + 51f0: e000019e bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 51f4: 3102 movi r1, 2 + 51f6: 3007 movi r0, 7 + 51f8: e000019a bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 51fc: 3102 movi r1, 2 + 51fe: 3008 movi r0, 8 + 5200: e0000196 bsr 0x552c // 552c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5204: 3102 movi r1, 2 + 5206: 3009 movi r0, 9 + 5208: 0789 br 0x511a // 511a + +Disassembly of section .text.Contol_Switch_ClickAction: + +0000520c : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 520c: 14d0 push r15 + switch(ch) + 520e: 3804 cmphsi r0, 5 + 5210: 0809 bt 0x5222 // 5222 + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 5212: 1068 lrw r3, 0x200004f8 // 5230 + 5214: 836a ld.b r3, (r3, 0xa) + 5216: 3b41 cmpnei r3, 1 + 5218: 0806 bt 0x5224 // 5224 + if(state == Control_ON ){ + 521a: 3941 cmpnei r1, 1 + 521c: 0804 bt 0x5224 // 5224 + Contol_Switch_Light_2(ch,Control_ON); + 521e: e3fffe01 bsr 0x4e20 // 4e20 + break; + default: + + break; + } +} + 5222: 1490 pop r15 + if(state == Control_OFF ){ + 5224: 3942 cmpnei r1, 2 + 5226: 0bfe bt 0x5222 // 5222 + Contol_Switch_Light(ch,Control_OFF); + 5228: e3fffc06 bsr 0x4a34 // 4a34 +} + 522c: 07fb br 0x5222 // 5222 + 522e: 0000 bkpt + 5230: 200004f8 .long 0x200004f8 + +Disassembly of section .text.Get_TM1812_State_Change: + +00005234 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 5234: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 5236: 1071 lrw r3, 0x20000198 // 5278 + 5238: 8318 ld.b r0, (r3, 0x18) + 523a: 3841 cmpnei r0, 1 + 523c: 0804 bt 0x5244 // 5244 + tm1812_param.change_flag = 0x00; + 523e: 3200 movi r2, 0 + 5240: a358 st.b r2, (r3, 0x18) + } + } + + if(rev != 0x00) return 0x01; + return 0x00; +} + 5242: 1482 pop r4-r5 + 5244: 104e lrw r2, 0x20000138 // 527c + if(tm1812_param.change_flag == 0x01) { + 5246: 3018 movi r0, 24 + 5248: 3300 movi r3, 0 + if(tm1812_param.gradient_flag[i] == 0x01) { + 524a: 3130 movi r1, 48 + if(tm1812_param.curr_data[i] != tm1812_param.data[i]){ + 524c: 82b8 ld.b r5, (r2, 0x18) + 524e: 8280 ld.b r4, (r2, 0x0) + 5250: 6516 cmpne r5, r4 + 5252: 0c03 bf 0x5258 // 5258 + rev++; + 5254: 2300 addi r3, 1 + 5256: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 5258: 5a84 addu r4, r2, r1 + 525a: 8480 ld.b r4, (r4, 0x0) + 525c: 3c41 cmpnei r4, 1 + 525e: 0803 bt 0x5264 // 5264 + rev++; + 5260: 2300 addi r3, 1 + 5262: 74cc zextb r3, r3 + 5264: 2800 subi r0, 1 + 5266: 7400 zextb r0, r0 + for(i=0;i + if(rev != 0x00) return 0x01; + 526e: 3b40 cmpnei r3, 0 + 5270: 6001 addc r0, r0 + return 0x01; //立即控制 + 5272: 7400 zextb r0, r0 + 5274: 07e7 br 0x5242 // 5242 + 5276: 0000 bkpt + 5278: 20000198 .long 0x20000198 + 527c: 20000138 .long 0x20000138 + +Disassembly of section .text.TimeCall_SIO_Send: + +00005280 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 5280: 14d4 push r4-r7, r15 + 5282: 1421 subi r14, r14, 4 + 5284: 1264 lrw r3, 0x20000138 // 5394 + 5286: 3188 movi r1, 136 + 5288: 3260 movi r2, 96 + 528a: 604c addu r1, r3 + 528c: 608c addu r2, r3 + 528e: 3718 movi r7, 24 + 5290: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 529e: 3448 movi r4, 72 + 52a0: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 52a2: 84a0 ld.b r5, (r4, 0x0) + 52a4: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 52a6: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 52a8: 083a bt 0x531c // 531c + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 52aa: 35ff movi r5, 255 + 52ac: 6542 cmpne r0, r5 + 52ae: 0c34 bf 0x5316 // 5316 + //递增 + tm1812_param.gradient_cnt[i]++; + 52b0: 8280 ld.b r4, (r2, 0x0) + 52b2: 2400 addi r4, 1 + 52b4: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 52b6: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 52b8: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 52ba: 0c05 bf 0x52c4 // 52c4 + tm1812_param.curr_data[i]++; + 52bc: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 52be: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 52c0: 3000 movi r0, 0 + 52c2: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 52c4: 3000 movi r0, 0 + 52c6: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 52c8: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 52ca: 3480 movi r4, 128 + 52cc: 6914 and r4, r5 + 52ce: 3c40 cmpnei r4, 0 + 52d0: 9180 ld.w r4, (r1, 0x0) + 52d2: 0c44 bf 0x535a // 535a + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 52d4: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 52d6: 7180 lsl r6, r0 + 52d8: 2001 addi r0, 2 + 52da: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 52dc: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 52de: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 52e0: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 52e2: 0bf4 bt 0x52ca // 52ca + 52e4: 5f03 subi r0, r7, 1 + 52e6: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 52f2: e3fff2d4 bsr 0x389a // 389a + + for(K=0;K + 52fa: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 52fc: 3022 movi r0, 34 + 52fe: 1148 lrw r2, 0x2000002c // 539c + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5300: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5302: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5304: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 530e: e3fff2c3 bsr 0x3894 // 3894 + +} + 5312: 1401 addi r14, r14, 4 + 5314: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 5316: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 5318: a400 st.b r0, (r4, 0x0) + 531a: 07d5 br 0x52c4 // 52c4 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 531c: 3840 cmpnei r0, 0 + 531e: 0c09 bf 0x5330 // 5330 + tm1812_param.gradient_cnt[i]++; + 5320: 8280 ld.b r4, (r2, 0x0) + 5322: 2400 addi r4, 1 + 5324: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5326: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 5328: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 532a: 0fcd bf 0x52c4 // 52c4 + tm1812_param.curr_data[i]--; + 532c: 2800 subi r0, 1 + 532e: 07c8 br 0x52be // 52be + tm1812_param.gradient_dir[i] = 0x01; + 5330: 3001 movi r0, 1 + 5332: 07f3 br 0x5318 // 5318 + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 5334: 7400 zextb r0, r0 + 5336: 8380 ld.b r4, (r3, 0x0) + 5338: 6500 cmphs r0, r4 + 533a: 0807 bt 0x5348 // 5348 + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 533c: 5ca1 subu r5, r4, r0 + 533e: 3d24 cmplti r5, 5 + 5340: 080b bt 0x5356 // 5356 + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 5342: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5344: a318 st.b r0, (r3, 0x18) + 5346: 07bf br 0x52c4 // 52c4 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 5348: 6410 cmphs r4, r0 + 534a: 0bbd bt 0x52c4 // 52c4 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 534c: 58b1 subu r5, r0, r4 + 534e: 3d24 cmplti r5, 5 + 5350: 0803 bt 0x5356 // 5356 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5352: 2803 subi r0, 4 + 5354: 07f8 br 0x5344 // 5344 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 5356: a398 st.b r4, (r3, 0x18) + 5358: 07b6 br 0x52c4 // 52c4 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 535a: 3602 movi r6, 2 + 535c: 07bd br 0x52d6 // 52d6 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 535e: 8328 ld.b r1, (r3, 0x8) + 5360: 6040 addu r1, r0 + 5362: 4122 lsli r1, r1, 2 + 5364: 98c0 ld.w r6, (r14, 0x0) + 5366: 6058 addu r1, r6 + 5368: 9120 ld.w r1, (r1, 0x0) + 536a: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 536c: 9228 ld.w r1, (r2, 0x20) + 536e: 6850 and r1, r4 + 5370: 3940 cmpnei r1, 0 + 5372: 0ffd bf 0x536c // 536c + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5374: 922b ld.w r1, (r2, 0x2c) + 5376: 3982 bclri r1, 2 + 5378: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 537a: 9228 ld.w r1, (r2, 0x20) + 537c: 6854 and r1, r5 + 537e: 3940 cmpnei r1, 0 + 5380: 0ffd bf 0x537a // 537a + SIO0->ICR &= ~SIO_TXDNE; + 5382: 922b ld.w r1, (r2, 0x2c) + 5384: 3980 bclri r1, 0 + 5386: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 5392: 0000 bkpt + 5394: 20000138 .long 0x20000138 + 5398: 20000218 .long 0x20000218 + 539c: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +000053a0 : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 53a0: 14d4 push r4-r7, r15 + 53a2: 1421 subi r14, r14, 4 + 53a4: 1105 lrw r0, 0x20000138 // 5438 + 53a6: 1166 lrw r3, 0x200001c0 // 543c + 53a8: 3218 movi r2, 24 + 53aa: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 53be: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 53c0: 7184 lsl r6, r1 + 53c2: 2101 addi r1, 2 + 53c4: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 53c6: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 53c8: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 53ca: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 53cc: 0bf4 bt 0x53b4 // 53b4 + 53ce: 2a00 subi r2, 1 + 53d0: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 53da: e3fff260 bsr 0x389a // 389a + + for(K2=0;K2 + 53e2: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 53e4: 3022 movi r0, 34 + 53e6: 1058 lrw r2, 0x2000002c // 5444 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 53e8: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 53ea: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 53ec: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 53f6: e3fff24f bsr 0x3894 // 3894 + +} + 53fa: 1401 addi r14, r14, 4 + 53fc: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 53fe: 3602 movi r6, 2 + 5400: 07e0 br 0x53c0 // 53c0 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5402: 8329 ld.b r1, (r3, 0x9) + 5404: 6040 addu r1, r0 + 5406: 4122 lsli r1, r1, 2 + 5408: 98c0 ld.w r6, (r14, 0x0) + 540a: 6058 addu r1, r6 + 540c: 9120 ld.w r1, (r1, 0x0) + 540e: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5410: 9228 ld.w r1, (r2, 0x20) + 5412: 6850 and r1, r4 + 5414: 3940 cmpnei r1, 0 + 5416: 0ffd bf 0x5410 // 5410 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5418: 922b ld.w r1, (r2, 0x2c) + 541a: 3982 bclri r1, 2 + 541c: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 541e: 9228 ld.w r1, (r2, 0x20) + 5420: 6854 and r1, r5 + 5422: 3940 cmpnei r1, 0 + 5424: 0ffd bf 0x541e // 541e + SIO0->ICR &= ~SIO_TXDNE; + 5426: 922b ld.w r1, (r2, 0x2c) + 5428: 3980 bclri r1, 0 + 542a: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 5436: 0000 bkpt + 5438: 20000138 .long 0x20000138 + 543c: 200001c0 .long 0x200001c0 + 5440: 20000218 .long 0x20000218 + 5444: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +00005448 : + + +void Tm1812_Task(void) { + 5448: 14d0 push r15 +// } +// } + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 544a: e3fffef5 bsr 0x5234 // 5234 + 544e: 3841 cmpnei r0, 1 + 5450: 106e lrw r3, 0x200001b8 // 5488 + 5452: 080f bt 0x5470 // 5470 + if(SysTick_100us - StateChange_Tick >= 20){ + 5454: 102e lrw r1, 0x200000b4 // 548c + 5456: 9140 ld.w r2, (r1, 0x0) + 5458: 931b ld.w r0, (r3, 0x6c) + 545a: 6082 subu r2, r0 + 545c: 3a13 cmphsi r2, 20 + 545e: 0c08 bf 0x546e // 546e + StateChange_Tick = SysTick_100us; + 5460: 9140 ld.w r2, (r1, 0x0) + 5462: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5464: 104b lrw r2, 0x200000b8 // 5490 + 5466: 9240 ld.w r2, (r2, 0x0) + } + }else{ + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + 5468: b341 st.w r2, (r3, 0x4) + + TimeCall_SIO_Send(); + 546a: e3ffff0b bsr 0x5280 // 5280 + } + } + +} + 546e: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 5470: 1028 lrw r1, 0x200000b8 // 5490 + 5472: 9140 ld.w r2, (r1, 0x0) + 5474: 9301 ld.w r0, (r3, 0x4) + 5476: 6082 subu r2, r0 + 5478: 1007 lrw r0, 0x7cf // 5494 + 547a: 6480 cmphs r0, r2 + 547c: 0bf9 bt 0x546e // 546e + StateChange_Tick = SysTick_100us; + 547e: 1044 lrw r2, 0x200000b4 // 548c + 5480: 9240 ld.w r2, (r2, 0x0) + 5482: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5484: 9140 ld.w r2, (r1, 0x0) + 5486: 07f1 br 0x5468 // 5468 + 5488: 200001b8 .long 0x200001b8 + 548c: 200000b4 .long 0x200000b4 + 5490: 200000b8 .long 0x200000b8 + 5494: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00005498 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 5498: 3817 cmphsi r0, 24 + 549a: 080c bt 0x54b2 // 54b2 + return; + } + + tm1812_param.data[select] = data; + 549c: 1066 lrw r3, 0x20000138 // 54b4 + 549e: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 54a0: 3260 movi r2, 96 + 54a2: 608c addu r2, r3 + tm1812_param.data[select] = data; + 54a4: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 54a6: 3101 movi r1, 1 + 54a8: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 54aa: 237f addi r3, 128 + 54ac: 1043 lrw r2, 0x200000b8 // 54b8 + 54ae: 9240 ld.w r2, (r2, 0x0) + 54b0: b340 st.w r2, (r3, 0x0) +} + 54b2: 783c jmp r15 + 54b4: 20000138 .long 0x20000138 + 54b8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.TM1812_Control_CH_State: + +000054bc : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 54bc: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 54be: 3817 cmphsi r0, 24 + 54c0: 082a bt 0x5514 // 5514 + return 0x01; + } + + switch(state){ + 54c2: 3942 cmpnei r1, 2 + 54c4: 0c12 bf 0x54e8 // 54e8 + 54c6: 3943 cmpnei r1, 3 + 54c8: 0c14 bf 0x54f0 // 54f0 + 54ca: 3941 cmpnei r1, 1 + 54cc: 0806 bt 0x54d8 // 54d8 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 54ce: 1073 lrw r3, 0x20000138 // 5518 + 54d0: 600c addu r0, r3 + 54d2: 3300 movi r3, 0 + 54d4: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 54d6: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 54d8: 1071 lrw r3, 0x20000198 // 551c + 54da: 3201 movi r2, 1 + 54dc: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 54de: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 54e0: 1050 lrw r2, 0x200000b8 // 5520 + 54e2: 9240 ld.w r2, (r2, 0x0) + 54e4: b348 st.w r2, (r3, 0x20) +} + 54e6: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 54e8: 106c lrw r3, 0x20000138 // 5518 + 54ea: 600c addu r0, r3 + 54ec: 3300 movi r3, 0 + 54ee: 07f4 br 0x54d6 // 54d6 + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 54f0: 106a lrw r3, 0x20000138 // 5518 + 54f2: 600c addu r0, r3 + 54f4: 8020 ld.b r1, (r0, 0x0) + 54f6: 32ff movi r2, 255 + 54f8: 3300 movi r3, 0 + 54fa: 6486 cmpne r1, r2 + 54fc: 2b00 subi r3, 1 + 54fe: 0c07 bf 0x550c // 550c + tm1812_param.data[ch] = TM1812_CH_ON; + 5500: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 5502: 1029 lrw r1, 0x8d11 // 5524 + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5504: 3000 movi r0, 0 + 5506: e3fff335 bsr 0x3b70 // 3b70 + 550a: 07e7 br 0x54d8 // 54d8 + tm1812_param.data[ch] = TM1812_CH_OFF; + 550c: 3300 movi r3, 0 + 550e: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5510: 1026 lrw r1, 0x8d19 // 5528 + 5512: 07f9 br 0x5504 // 5504 + return 0x01; + 5514: 3001 movi r0, 1 + 5516: 07e8 br 0x54e6 // 54e6 + 5518: 20000138 .long 0x20000138 + 551c: 20000198 .long 0x20000198 + 5520: 200000b8 .long 0x200000b8 + 5524: 00008d11 .long 0x00008d11 + 5528: 00008d19 .long 0x00008d19 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +0000552c : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 552c: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 552e: 3817 cmphsi r0, 24 + 5530: 0827 bt 0x557e // 557e + return 0x01; + } + + switch(state){ + 5532: 3942 cmpnei r1, 2 + 5534: 0c13 bf 0x555a // 555a + 5536: 3943 cmpnei r1, 3 + 5538: 0c15 bf 0x5562 // 5562 + 553a: 3941 cmpnei r1, 1 + 553c: 0807 bt 0x554a // 554a + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 553e: 1072 lrw r3, 0x20000138 // 5584 + 5540: 600c addu r0, r3 + 5542: 3300 movi r3, 0 + 5544: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5546: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5548: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 554a: 1070 lrw r3, 0x20000198 // 5588 + 554c: 3201 movi r2, 1 + 554e: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5550: 3000 movi r0, 0 + 5552: 104f lrw r2, 0x200000b8 // 558c + 5554: 9240 ld.w r2, (r2, 0x0) + 5556: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5558: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 555a: 106b lrw r3, 0x20000138 // 5584 + 555c: 600c addu r0, r3 + 555e: 3300 movi r3, 0 + 5560: 07f3 br 0x5546 // 5546 + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 5562: 1069 lrw r3, 0x20000138 // 5584 + 5564: 600c addu r0, r3 + 5566: 3218 movi r2, 24 + 5568: 6080 addu r2, r0 + 556a: 8280 ld.b r4, (r2, 0x0) + 556c: 31ff movi r1, 255 + 556e: 3300 movi r3, 0 + 5570: 6452 cmpne r4, r1 + 5572: 2b00 subi r3, 1 + 5574: 0c03 bf 0x557a // 557a + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5576: a260 st.b r3, (r2, 0x0) + 5578: 07e8 br 0x5548 // 5548 + 557a: 3300 movi r3, 0 + 557c: 07fd br 0x5576 // 5576 + return 0x01; + 557e: 3001 movi r0, 1 + 5580: 07ec br 0x5558 // 5558 + 5582: 0000 bkpt + 5584: 20000138 .long 0x20000138 + 5588: 20000198 .long 0x20000198 + 558c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.TM1812_LED_Init: + +00005590 : +void TM1812_LED_Init(void){ + 5590: 14d0 push r15 + 5592: 1426 subi r14, r14, 24 + SIO_DeInit(); + 5594: e3ffe650 bsr 0x2234 // 2234 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 5598: 3001 movi r0, 1 + 559a: e3ffe65d bsr 0x2254 // 2254 + SIO_TX_Init(SIOCLK_EN,9); // + 559e: 3109 movi r1, 9 + 55a0: 3001 movi r0, 1 + 55a2: e3ffe689 bsr 0x22b4 // 22b4 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 55a6: 3303 movi r3, 3 + 55a8: b865 st.w r3, (r14, 0x14) + 55aa: 330f movi r3, 15 + 55ac: b864 st.w r3, (r14, 0x10) + 55ae: 33a0 movi r3, 160 + 55b0: 4366 lsli r3, r3, 6 + 55b2: b863 st.w r3, (r14, 0xc) + 55b4: 33a0 movi r3, 160 + 55b6: 4363 lsli r3, r3, 3 + 55b8: b862 st.w r3, (r14, 0x8) + 55ba: 3300 movi r3, 0 + 55bc: b861 st.w r3, (r14, 0x4) + 55be: b860 st.w r3, (r14, 0x0) + 55c0: 3207 movi r2, 7 + 55c2: 3317 movi r3, 23 + 55c4: 3100 movi r1, 0 + 55c6: 3002 movi r0, 2 + 55c8: e3ffe67e bsr 0x22c4 // 22c4 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 55cc: 32e8 movi r2, 232 + 55ce: 3100 movi r1, 0 + 55d0: 1005 lrw r0, 0x20000138 // 55e4 + 55d2: e3ffe1fb bsr 0x19c8 // 19c8 <__memset_fast> + RLY_CTRL_EN; //继电器使能 + 55d6: 3101 movi r1, 1 + 55d8: 3017 movi r0, 23 + 55da: e3ffffa9 bsr 0x552c // 552c +} + 55de: 1406 addi r14, r14, 24 + 55e0: 1490 pop r15 + 55e2: 0000 bkpt + 55e4: 20000138 .long 0x20000138 + +Disassembly of section .text.HT1621_WR_Data: + +000055e8 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 55e8: 14d4 push r4-r7, r15 + 55ea: 6d43 mov r5, r0 + 55ec: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 55f6: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 55f8: 3101 movi r1, 1 + 55fa: 9600 ld.w r0, (r6, 0x0) + 55fc: e3ffe5ac bsr 0x2154 // 2154 + nop; + 5600: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 5602: 74d6 sextb r3, r5 + 5604: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 5606: 3104 movi r1, 4 + 5608: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 560a: 0c0d bf 0x5624 // 5624 + HT1621_DATA_HIGH; + 560c: e3ffe5a0 bsr 0x214c // 214c + nop; + 5610: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 5612: 3101 movi r1, 1 + 5614: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 5616: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 561e: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 5624: e3ffe598 bsr 0x2154 // 2154 + 5628: 07f4 br 0x5610 // 5610 + 562a: 0000 bkpt + 562c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +00005630 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 5630: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5632: 108b lrw r4, 0x2000004c // 565c +{ + 5634: 6d43 mov r5, r0 + HT1621_CS_LOW; + 5636: 310f movi r1, 15 + 5638: 9400 ld.w r0, (r4, 0x0) + 563a: e3ffe58d bsr 0x2154 // 2154 + nop; + 563e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 5640: 3104 movi r1, 4 + 5642: 3080 movi r0, 128 + 5644: e3ffffd2 bsr 0x55e8 // 55e8 + HT1621_WR_Data(cmd,8); + 5648: 6c17 mov r0, r5 + 564a: 3108 movi r1, 8 + 564c: e3ffffce bsr 0x55e8 // 55e8 + HT1621_CS_HIGH; + 5650: 9400 ld.w r0, (r4, 0x0) + 5652: 310f movi r1, 15 + 5654: e3ffe57c bsr 0x214c // 214c + nop; + 5658: 6c03 mov r0, r0 +} + 565a: 1492 pop r4-r5, r15 + 565c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005660 : +void HT1621_Init(void){ + 5660: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 5662: 118b lrw r4, 0x2000004c // 570c + memset(&HT1621,0,sizeof(HT1621_t)); + 5664: 3240 movi r2, 64 + 5666: 3100 movi r1, 0 + 5668: 110a lrw r0, 0x20000520 // 5710 + 566a: e3ffe1af bsr 0x19c8 // 19c8 <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 566e: 9400 ld.w r0, (r4, 0x0) + 5670: 3200 movi r2, 0 + 5672: 3100 movi r1, 0 + 5674: e3ffe3e6 bsr 0x1e40 // 1e40 + GPIO_Init(GPIOA0,1,Output); + 5678: 9400 ld.w r0, (r4, 0x0) + 567a: 3200 movi r2, 0 + 567c: 3101 movi r1, 1 + 567e: e3ffe3e1 bsr 0x1e40 // 1e40 + GPIO_Init(GPIOA0,15,Output); + 5682: 9400 ld.w r0, (r4, 0x0) + 5684: 3200 movi r2, 0 + 5686: 310f movi r1, 15 + 5688: e3ffe3dc bsr 0x1e40 // 1e40 + GPIO_Init(GPIOA0,4,Output); + 568c: 3200 movi r2, 0 + 568e: 9400 ld.w r0, (r4, 0x0) + 5690: 3104 movi r1, 4 + 5692: e3ffe3d7 bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOA0,0); + 5696: 9400 ld.w r0, (r4, 0x0) + 5698: 3100 movi r1, 0 + 569a: e3ffe44d bsr 0x1f34 // 1f34 + GPIO_DriveStrength_EN(GPIOA0,1); + 569e: 9400 ld.w r0, (r4, 0x0) + 56a0: 3101 movi r1, 1 + 56a2: e3ffe449 bsr 0x1f34 // 1f34 + GPIO_DriveStrength_EN(GPIOA0,15); + 56a6: 9400 ld.w r0, (r4, 0x0) + 56a8: 310f movi r1, 15 + 56aa: e3ffe445 bsr 0x1f34 // 1f34 + GPIO_DriveStrength_EN(GPIOA0,4); + 56ae: 9400 ld.w r0, (r4, 0x0) + 56b0: 3104 movi r1, 4 + 56b2: e3ffe441 bsr 0x1f34 // 1f34 + HT1621_CS_LOW; + 56b6: 9400 ld.w r0, (r4, 0x0) + 56b8: 310f movi r1, 15 + 56ba: e3ffe54d bsr 0x2154 // 2154 + HT1621_WR_LOW; + 56be: 9400 ld.w r0, (r4, 0x0) + 56c0: 3101 movi r1, 1 + 56c2: e3ffe549 bsr 0x2154 // 2154 + HT1621_RD_LOW; + 56c6: 9400 ld.w r0, (r4, 0x0) + 56c8: 3100 movi r1, 0 + 56ca: e3ffe545 bsr 0x2154 // 2154 + HT1621_DATA_LOW; + 56ce: 3104 movi r1, 4 + 56d0: 9400 ld.w r0, (r4, 0x0) + 56d2: e3ffe541 bsr 0x2154 // 2154 + HT1621_WR_CMD(HT1621_BIAS); + 56d6: 3052 movi r0, 82 + 56d8: e3ffffac bsr 0x5630 // 5630 + HT1621_WR_CMD(HT1621_RC256); + 56dc: 3030 movi r0, 48 + 56de: e3ffffa9 bsr 0x5630 // 5630 + HT1621_WR_CMD(HT1621_SYSDIS); + 56e2: 3000 movi r0, 0 + 56e4: e3ffffa6 bsr 0x5630 // 5630 + HT1621_WR_CMD(HT1621_WDTDIS); + 56e8: 300a movi r0, 10 + 56ea: e3ffffa3 bsr 0x5630 // 5630 + HT1621_WR_CMD(HT1621_SYSEN); + 56ee: 3002 movi r0, 2 + 56f0: e3ffffa0 bsr 0x5630 // 5630 + HT1621_WR_CMD(HT1621_LCDON); + 56f4: 3006 movi r0, 6 + 56f6: e3ffff9d bsr 0x5630 // 5630 + HT1621_WR_CMD(HT1621_BIOFF); + 56fa: 3010 movi r0, 16 + 56fc: e3ffff9a bsr 0x5630 // 5630 + HT1621_CS_HIGH; + 5700: 9400 ld.w r0, (r4, 0x0) + 5702: 310f movi r1, 15 + 5704: e3ffe524 bsr 0x214c // 214c +} + 5708: 1491 pop r4, r15 + 570a: 0000 bkpt + 570c: 2000004c .long 0x2000004c + 5710: 20000520 .long 0x20000520 + +Disassembly of section .text.HT1621_Clear: + +00005714 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 5714: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 5716: 3214 movi r2, 20 + 5718: 3100 movi r1, 0 + + HT1621_CS_LOW; + 571a: 10b1 lrw r5, 0x2000004c // 575c + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 571c: 1011 lrw r0, 0x2000052c // 5760 + 571e: e3ffe155 bsr 0x19c8 // 19c8 <__memset_fast> + HT1621_CS_LOW; + 5722: 310f movi r1, 15 + 5724: 9500 ld.w r0, (r5, 0x0) + 5726: e3ffe517 bsr 0x2154 // 2154 + nop; + 572a: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 572c: 3103 movi r1, 3 + 572e: 30a0 movi r0, 160 + 5730: e3ffff5c bsr 0x55e8 // 55e8 + HT1621_WR_Data(0,6); + 5734: 3106 movi r1, 6 + 5736: 3000 movi r0, 0 + 5738: e3ffff58 bsr 0x55e8 // 55e8 + 573c: 3414 movi r4, 20 + 573e: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 574e: 9500 ld.w r0, (r5, 0x0) + 5750: 310f movi r1, 15 + 5752: e3ffe4fd bsr 0x214c // 214c + nop; + 5756: 6c03 mov r0, r0 +} + 5758: 1492 pop r4-r5, r15 + 575a: 0000 bkpt + 575c: 2000004c .long 0x2000004c + 5760: 2000052c .long 0x2000052c + +Disassembly of section .text.HT1621_ALLON: + +00005764 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 5764: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5766: 10af lrw r5, 0x2000004c // 57a0 + 5768: 310f movi r1, 15 + 576a: 9500 ld.w r0, (r5, 0x0) + 576c: e3ffe4f4 bsr 0x2154 // 2154 + nop; + 5770: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5772: 3103 movi r1, 3 + 5774: 30a0 movi r0, 160 + 5776: e3ffff39 bsr 0x55e8 // 55e8 + HT1621_WR_Data(0,6); + 577a: 3106 movi r1, 6 + 577c: 3000 movi r0, 0 + 577e: e3ffff35 bsr 0x55e8 // 55e8 + 5782: 3414 movi r4, 20 + 5784: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5794: 9500 ld.w r0, (r5, 0x0) + 5796: 310f movi r1, 15 + 5798: e3ffe4da bsr 0x214c // 214c + nop; + 579c: 6c03 mov r0, r0 +} + 579e: 1492 pop r4-r5, r15 + 57a0: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +000057a4 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 57a4: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 57a6: 1091 lrw r4, 0x2000004c // 57e8 + 57a8: 310f movi r1, 15 + 57aa: 9400 ld.w r0, (r4, 0x0) + 57ac: e3ffe4d4 bsr 0x2154 // 2154 + nop; + 57b0: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 57b2: 3103 movi r1, 3 + 57b4: 30a0 movi r0, 160 + 57b6: e3ffff19 bsr 0x55e8 // 55e8 + HT1621_WR_Data(0,6); + 57ba: 3106 movi r1, 6 + 57bc: 3000 movi r0, 0 + 57be: e3ffff15 bsr 0x55e8 // 55e8 + 57c2: 3500 movi r5, 0 + for(U8_T i=0;i + 57c6: 60d4 addu r3, r5 + 57c8: 830c ld.b r0, (r3, 0xc) + 57ca: 4004 lsli r0, r0, 4 + 57cc: 7400 zextb r0, r0 + 57ce: 3104 movi r1, 4 + 57d0: 2500 addi r5, 1 + 57d2: e3ffff0b bsr 0x55e8 // 55e8 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 57da: 9400 ld.w r0, (r4, 0x0) + 57dc: 310f movi r1, 15 + 57de: e3ffe4b7 bsr 0x214c // 214c + nop; + 57e2: 6c03 mov r0, r0 +} + 57e4: 1492 pop r4-r5, r15 + 57e6: 0000 bkpt + 57e8: 2000004c .long 0x2000004c + 57ec: 20000520 .long 0x20000520 + +Disassembly of section .text.Set_Temperature_Display: + +000057f0 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 57f0: 14d4 push r4-r7, r15 + 57f2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 57f4: 1170 lrw r3, 0x20000589 // 58b4 + 57f6: 8368 ld.b r3, (r3, 0x8) + 57f8: 3b40 cmpnei r3, 0 +{ + 57fa: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 57fc: b861 st.w r3, (r14, 0x4) + 57fe: 0845 bt 0x5888 // 5888 + tmp_Integer = tmp/10; + 5800: 310a movi r1, 10 + 5802: e3fff013 bsr 0x3828 // 3828 <__udivsi3> + 5806: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5808: 310a movi r1, 10 + 580a: 6c13 mov r0, r4 + 580c: e3fff032 bsr 0x3870 // 3870 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 5810: 118a lrw r4, 0x20000520 // 58b8 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5812: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 5814: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5816: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 5818: 8476 ld.b r3, (r4, 0x16) + 581a: 68d4 and r3, r5 + 581c: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 581e: 8474 ld.b r3, (r4, 0x14) + 5820: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 5822: 310a movi r1, 10 + 5824: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 5826: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 5828: e3fff000 bsr 0x3828 // 3828 <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 582c: 11e4 lrw r7, 0x897e // 58bc + 582e: 7400 zextb r0, r0 + 5830: 601c addu r0, r7 + 5832: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 5834: 8458 ld.b r2, (r4, 0x18) + 5836: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5838: 6c07 mov r0, r1 + 583a: 350f movi r5, 15 + 583c: 6814 and r0, r5 + 583e: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 5840: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5842: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 5844: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 5846: 6c1b mov r0, r6 + 5848: 310a movi r1, 10 + 584a: e3fff013 bsr 0x3870 // 3870 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 584e: 7400 zextb r0, r0 + 5850: 601c addu r0, r7 + 5852: 8040 ld.b r2, (r0, 0x0) + 5854: 6c4b mov r1, r2 + 5856: 6854 and r1, r5 + 5858: 9862 ld.w r3, (r14, 0x8) + 585a: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 585c: 9860 ld.w r3, (r14, 0x0) + 585e: 61cc addu r7, r3 + 5860: 8760 ld.b r3, (r7, 0x0) + 5862: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5864: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5866: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5868: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 586a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 586c: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 586e: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5870: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5872: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5874: 6d48 or r5, r2 + 5876: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 5878: 081a bt 0x58ac // 58ac + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 587a: 3ba1 bseti r3, 1 + 587c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 587e: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5880: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 5882: a4b4 st.b r5, (r4, 0x14) +} + 5884: 1404 addi r14, r14, 16 + 5886: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5888: 3012 movi r0, 18 + 588a: 7c10 mult r0, r4 + 588c: 310a movi r1, 10 + 588e: 34a0 movi r4, 160 + 5890: e3ffefba bsr 0x3804 // 3804 <__divsi3> + 5894: 4481 lsli r4, r4, 1 + 5896: 6100 addu r4, r0 + 5898: 310a movi r1, 10 + 589a: 6c13 mov r0, r4 + 589c: e3ffefb4 bsr 0x3804 // 3804 <__divsi3> + 58a0: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 58a2: 310a movi r1, 10 + 58a4: 6c13 mov r0, r4 + 58a6: e3ffefd3 bsr 0x384c // 384c <__modsi3> + 58aa: 07b3 br 0x5810 // 5810 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 58ac: 3ba2 bseti r3, 2 + 58ae: 3ba3 bseti r3, 3 + 58b0: 07e7 br 0x587e // 587e + 58b2: 0000 bkpt + 58b4: 20000589 .long 0x20000589 + 58b8: 20000520 .long 0x20000520 + 58bc: 0000897e .long 0x0000897e + +Disassembly of section .text.Local_Temperature_Display: + +000058c0 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 58c0: 14d4 push r4-r7, r15 + 58c2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 58c4: 1170 lrw r3, 0x20000589 // 5984 + 58c6: 8368 ld.b r3, (r3, 0x8) + 58c8: 3b40 cmpnei r3, 0 +{ + 58ca: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 58cc: b861 st.w r3, (r14, 0x4) + 58ce: 0845 bt 0x5958 // 5958 + tmp_Integer = tmp/10; + 58d0: 310a movi r1, 10 + 58d2: e3ffefab bsr 0x3828 // 3828 <__udivsi3> + 58d6: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 58d8: 310a movi r1, 10 + 58da: 6c13 mov r0, r4 + 58dc: e3ffefca bsr 0x3870 // 3870 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 58e0: 118a lrw r4, 0x20000520 // 5988 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 58e2: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 58e4: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 58e6: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 58e8: 847d ld.b r3, (r4, 0x1d) + 58ea: 68d4 and r3, r5 + 58ec: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 58ee: 847b ld.b r3, (r4, 0x1b) + 58f0: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 58f2: 310a movi r1, 10 + 58f4: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 58f6: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 58f8: e3ffef98 bsr 0x3828 // 3828 <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 58fc: 11e4 lrw r7, 0x897e // 598c + 58fe: 7400 zextb r0, r0 + 5900: 601c addu r0, r7 + 5902: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 5904: 845f ld.b r2, (r4, 0x1f) + 5906: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5908: 6c07 mov r0, r1 + 590a: 350f movi r5, 15 + 590c: 6814 and r0, r5 + 590e: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5910: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5912: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5914: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 5916: 6c1b mov r0, r6 + 5918: 310a movi r1, 10 + 591a: e3ffefab bsr 0x3870 // 3870 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 591e: 7400 zextb r0, r0 + 5920: 601c addu r0, r7 + 5922: 8040 ld.b r2, (r0, 0x0) + 5924: 6c4b mov r1, r2 + 5926: 6854 and r1, r5 + 5928: 9862 ld.w r3, (r14, 0x8) + 592a: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 592c: 9860 ld.w r3, (r14, 0x0) + 592e: 61cc addu r7, r3 + 5930: 8760 ld.b r3, (r7, 0x0) + 5932: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5934: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5936: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5938: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 593a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 593c: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 593e: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5940: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5942: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5944: 6d48 or r5, r2 + 5946: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 5948: 081a bt 0x597c // 597c + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 594a: 3ba1 bseti r3, 1 + 594c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 594e: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5950: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 5952: a4bb st.b r5, (r4, 0x1b) +} + 5954: 1404 addi r14, r14, 16 + 5956: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5958: 3012 movi r0, 18 + 595a: 7c10 mult r0, r4 + 595c: 310a movi r1, 10 + 595e: 34a0 movi r4, 160 + 5960: e3ffef52 bsr 0x3804 // 3804 <__divsi3> + 5964: 4481 lsli r4, r4, 1 + 5966: 6100 addu r4, r0 + 5968: 310a movi r1, 10 + 596a: 6c13 mov r0, r4 + 596c: e3ffef4c bsr 0x3804 // 3804 <__divsi3> + 5970: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5972: 310a movi r1, 10 + 5974: 6c13 mov r0, r4 + 5976: e3ffef6b bsr 0x384c // 384c <__modsi3> + 597a: 07b3 br 0x58e0 // 58e0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 597c: 3ba2 bseti r3, 2 + 597e: 3ba3 bseti r3, 3 + 5980: 07e7 br 0x594e // 594e + 5982: 0000 bkpt + 5984: 20000589 .long 0x20000589 + 5988: 20000520 .long 0x20000520 + 598c: 0000897e .long 0x0000897e + +Disassembly of section .text.Control_Mode: + +00005990 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 5990: 14d1 push r4, r15 + switch(mode){ + 5992: 3806 cmphsi r0, 7 + 5994: 0823 bt 0x59da // 59da + 5996: e3ffd9cb bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 599a: 0007 .short 0x0007 + 599c: 005a0020 .long 0x005a0020 + 59a0: 009a0020 .long 0x009a0020 + 59a4: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 59a8: 0376 lrw r3, 0x20000589 // 5bcc + 59aa: 8349 ld.b r2, (r3, 0x9) + 59ac: 3a40 cmpnei r2, 0 + 59ae: 0376 lrw r3, 0x20000520 // 5bd0 + 59b0: 0816 bt 0x59dc // 59dc + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 59b2: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 59b4: 830e ld.b r0, (r3, 0xe) + 59b6: 6811 andn r0, r4 + 59b8: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59ba: 830f ld.b r0, (r3, 0xf) + 59bc: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 59be: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 59c0: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59c2: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 59c4: 3982 bclri r1, 2 + 59c6: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 59c8: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 59ca: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 59cc: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 59ce: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 59d0: 39a2 bseti r1, 2 + 59d2: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 59d4: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 59d6: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 59d8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 59da: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 59dc: 3a41 cmpnei r2, 1 + 59de: 0812 bt 0x5a02 // 5a02 + HT1621.show_cache[1] &= ~0x07; + 59e0: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 59e2: 830e ld.b r0, (r3, 0xe) + 59e4: 6811 andn r0, r4 + 59e6: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 59e8: 830f ld.b r0, (r3, 0xf) + 59ea: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 59ec: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 59ee: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 59f0: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 59f2: 3982 bclri r1, 2 + 59f4: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 59f6: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 59f8: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 59fa: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 59fc: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 59fe: 39a2 bseti r1, 2 + 5a00: 07ea br 0x59d4 // 59d4 + else if(Debug_Inf.Language_Selection == 0x02) + 5a02: 3a42 cmpnei r2, 2 + 5a04: 0812 bt 0x5a28 // 5a28 + HT1621.show_cache[1] &= ~0x07; + 5a06: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 5a08: 830e ld.b r0, (r3, 0xe) + 5a0a: 6811 andn r0, r4 + 5a0c: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5a0e: 830f ld.b r0, (r3, 0xf) + 5a10: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a12: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a14: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a16: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a18: 3982 bclri r1, 2 + 5a1a: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5a1c: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5a1e: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5a20: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a22: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 5a24: 39a3 bseti r1, 3 + 5a26: 07d7 br 0x59d4 // 59d4 + HT1621.show_cache[0] &= ~0x0C; + 5a28: 136a lrw r3, 0x20000520 // 5bd0 + 5a2a: 834c ld.b r2, (r3, 0xc) + 5a2c: 3a82 bclri r2, 2 + 5a2e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a30: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 5a32: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a34: 834d ld.b r2, (r3, 0xd) + 5a36: 6885 andn r2, r1 + 5a38: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5a3a: 834e ld.b r2, (r3, 0xe) + 5a3c: 6885 andn r2, r1 + 5a3e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5a40: 834f ld.b r2, (r3, 0xf) + 5a42: 6885 andn r2, r1 + 5a44: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a46: 8351 ld.b r2, (r3, 0x11) + 5a48: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 5a4a: a351 st.b r2, (r3, 0x11) +} + 5a4c: 07c7 br 0x59da // 59da + if(Debug_Inf.Language_Selection == 0x00) + 5a4e: 1360 lrw r3, 0x20000589 // 5bcc + 5a50: 8349 ld.b r2, (r3, 0x9) + 5a52: 3a40 cmpnei r2, 0 + 5a54: 127f lrw r3, 0x20000520 // 5bd0 + 5a56: 0816 bt 0x5a82 // 5a82 + HT1621.show_cache[1] &= ~0x07; + 5a58: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a5a: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a5c: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a5e: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a60: 3a82 bclri r2, 2 + 5a62: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a64: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a66: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a68: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a6a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a6c: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a6e: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a70: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5a72: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5a74: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5a76: 39a1 bseti r1, 1 + 5a78: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 5a7a: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 5a7c: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 5a7e: a34e st.b r2, (r3, 0xe) + 5a80: 07ad br 0x59da // 59da + else if(Debug_Inf.Language_Selection == 0x01) + 5a82: 3a41 cmpnei r2, 1 + 5a84: 0812 bt 0x5aa8 // 5aa8 + HT1621.show_cache[1] &= ~0x07; + 5a86: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5a88: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5a8a: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5a8c: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5a8e: 3a82 bclri r2, 2 + 5a90: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5a92: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5a94: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5a96: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5a98: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5a9a: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5a9c: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5a9e: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5aa0: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5aa2: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 5aa4: 39a1 bseti r1, 1 + 5aa6: 07ea br 0x5a7a // 5a7a + else if(Debug_Inf.Language_Selection == 0x02) + 5aa8: 3a42 cmpnei r2, 2 + 5aaa: 0bbf bt 0x5a28 // 5a28 + HT1621.show_cache[1] &= ~0x07; + 5aac: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5aae: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5ab0: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5ab2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5ab4: 3a82 bclri r2, 2 + 5ab6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5ab8: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5aba: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5abc: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5abe: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5ac0: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5ac2: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5ac4: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5ac6: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5ac8: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5aca: 39a2 bseti r1, 2 + 5acc: 07d7 br 0x5a7a // 5a7a + if(Debug_Inf.Language_Selection == 0x00) + 5ace: 1260 lrw r3, 0x20000589 // 5bcc + 5ad0: 8349 ld.b r2, (r3, 0x9) + 5ad2: 3a40 cmpnei r2, 0 + 5ad4: 117f lrw r3, 0x20000520 // 5bd0 + 5ad6: 0816 bt 0x5b02 // 5b02 + HT1621.show_cache[0] &= ~0x0C; + 5ad8: 834c ld.b r2, (r3, 0xc) + 5ada: 3a82 bclri r2, 2 + 5adc: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5ade: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5ae0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5ae2: 834d ld.b r2, (r3, 0xd) + 5ae4: 6881 andn r2, r0 + 5ae6: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5ae8: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5aea: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5aec: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5aee: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5af0: 8311 ld.b r0, (r3, 0x11) + 5af2: 3880 bclri r0, 0 + 5af4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5af6: 39a1 bseti r1, 1 + 5af8: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 5afa: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 5afc: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 5afe: a34f st.b r2, (r3, 0xf) + 5b00: 076d br 0x59da // 59da + else if(Debug_Inf.Language_Selection == 0x01) + 5b02: 3a41 cmpnei r2, 1 + 5b04: 0812 bt 0x5b28 // 5b28 + HT1621.show_cache[0] &= ~0x0C; + 5b06: 834c ld.b r2, (r3, 0xc) + 5b08: 3a82 bclri r2, 2 + 5b0a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b0c: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b0e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b10: 834d ld.b r2, (r3, 0xd) + 5b12: 6881 andn r2, r0 + 5b14: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b16: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b18: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b1a: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5b1c: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5b1e: 8311 ld.b r0, (r3, 0x11) + 5b20: 3880 bclri r0, 0 + 5b22: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 5b24: 39a1 bseti r1, 1 + 5b26: 07ea br 0x5afa // 5afa + else if(Debug_Inf.Language_Selection == 0x02) + 5b28: 3a42 cmpnei r2, 2 + 5b2a: 0b7f bt 0x5a28 // 5a28 + HT1621.show_cache[0] &= ~0x0C; + 5b2c: 834c ld.b r2, (r3, 0xc) + 5b2e: 3a82 bclri r2, 2 + 5b30: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b32: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b34: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b36: 834d ld.b r2, (r3, 0xd) + 5b38: 6881 andn r2, r0 + 5b3a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b3c: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b3e: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b40: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5b42: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5b44: 8311 ld.b r0, (r3, 0x11) + 5b46: 3880 bclri r0, 0 + 5b48: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5b4a: 39a2 bseti r1, 2 + 5b4c: 07d7 br 0x5afa // 5afa + if(Debug_Inf.Language_Selection == 0x00) + 5b4e: 1160 lrw r3, 0x20000589 // 5bcc + 5b50: 8349 ld.b r2, (r3, 0x9) + 5b52: 3a40 cmpnei r2, 0 + 5b54: 107f lrw r3, 0x20000520 // 5bd0 + 5b56: 0815 bt 0x5b80 // 5b80 + HT1621.show_cache[0] &= ~0x0C; + 5b58: 834c ld.b r2, (r3, 0xc) + 5b5a: 3a82 bclri r2, 2 + 5b5c: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b5e: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b60: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b62: 834d ld.b r2, (r3, 0xd) + 5b64: 6881 andn r2, r0 + 5b66: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b68: 834e ld.b r2, (r3, 0xe) + 5b6a: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b6c: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b6e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b70: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b72: 8351 ld.b r2, (r3, 0x11) + 5b74: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5b76: 39a1 bseti r1, 1 + 5b78: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 5b7a: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 5b7c: 3aa0 bseti r2, 0 + 5b7e: 0766 br 0x5a4a // 5a4a + else if(Debug_Inf.Language_Selection == 0x01) + 5b80: 3a41 cmpnei r2, 1 + 5b82: 0812 bt 0x5ba6 // 5ba6 + HT1621.show_cache[0] &= ~0x0C; + 5b84: 834c ld.b r2, (r3, 0xc) + 5b86: 3a82 bclri r2, 2 + 5b88: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5b8a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5b8c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5b8e: 834d ld.b r2, (r3, 0xd) + 5b90: 6881 andn r2, r0 + 5b92: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5b94: 834e ld.b r2, (r3, 0xe) + 5b96: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5b98: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5b9a: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5b9c: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5b9e: 8351 ld.b r2, (r3, 0x11) + 5ba0: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 5ba2: 39a1 bseti r1, 1 + 5ba4: 07eb br 0x5b7a // 5b7a + else if(Debug_Inf.Language_Selection == 0x02) + 5ba6: 3a42 cmpnei r2, 2 + 5ba8: 0b40 bt 0x5a28 // 5a28 + HT1621.show_cache[0] &= ~0x0C; + 5baa: 834c ld.b r2, (r3, 0xc) + 5bac: 3a82 bclri r2, 2 + 5bae: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5bb0: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5bb2: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5bb4: 834d ld.b r2, (r3, 0xd) + 5bb6: 6881 andn r2, r0 + 5bb8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5bba: 834e ld.b r2, (r3, 0xe) + 5bbc: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5bbe: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5bc0: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5bc2: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5bc4: 8351 ld.b r2, (r3, 0x11) + 5bc6: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5bc8: 39a2 bseti r1, 2 + 5bca: 07d8 br 0x5b7a // 5b7a + 5bcc: 20000589 .long 0x20000589 + 5bd0: 20000520 .long 0x20000520 + +Disassembly of section .text.Control_wind_velocity: + +00005bd4 : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 5bd4: 14d2 push r4-r5, r15 + switch(velocity) + 5bd6: 3804 cmphsi r0, 5 + 5bd8: 0815 bt 0x5c02 // 5c02 + 5bda: 1172 lrw r3, 0x20000520 // 5ca0 + 5bdc: e3ffd890 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 5be0: 20120333 .long 0x20120333 + 5be4: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 5be6: 8351 ld.b r2, (r3, 0x11) + 5be8: 310e movi r1, 14 + 5bea: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5bec: 300f movi r0, 15 + 5bee: 8330 ld.b r1, (r3, 0x10) + 5bf0: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 5bf2: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 5bf4: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 5bf6: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 5bf8: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 5bfa: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 5bfc: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 5bfe: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 5c00: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 5c02: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 5c04: 310e movi r1, 14 + 5c06: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 5c08: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 5c0a: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5c0c: 8330 ld.b r1, (r3, 0x10) + 5c0e: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 5c10: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 5c12: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 5c14: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 5c16: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 5c18: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 5c1a: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 5c1c: 3aa3 bseti r2, 3 + 5c1e: 07f1 br 0x5c00 // 5c00 + HT1621.show_cache[5] &= ~0x0E; + 5c20: 310e movi r1, 14 + 5c22: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 5c24: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 5c26: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 5c28: 8330 ld.b r1, (r3, 0x10) + 5c2a: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 5c2c: 300e movi r0, 14 + 5c2e: 07f2 br 0x5c12 // 5c12 + HT1621.show_cache[4] &= ~0x0F; + 5c30: 8350 ld.b r2, (r3, 0x10) + 5c32: 310f movi r1, 15 + 5c34: 6885 andn r2, r1 + 5c36: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 5c38: 310e movi r1, 14 + 5c3a: 8351 ld.b r2, (r3, 0x11) + 5c3c: 6885 andn r2, r1 + 5c3e: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 5c40: 834f ld.b r2, (r3, 0xf) + 5c42: 3a83 bclri r2, 3 + 5c44: 07de br 0x5c00 // 5c00 + HT1621.show_cache[4] &= ~0x0F; + 5c46: 8330 ld.b r1, (r3, 0x10) + 5c48: 320f movi r2, 15 + 5c4a: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 5c4c: 300e movi r0, 14 + 5c4e: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 5c50: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 5c52: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 5c54: 3408 movi r4, 8 + 5c56: 6c17 mov r0, r5 + 5c58: 6c10 or r0, r4 + 5c5a: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 5c5c: 6c07 mov r0, r1 + 5c5e: 38a0 bseti r0, 0 + 5c60: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 5c62: 8303 ld.b r0, (r3, 0x3) + 5c64: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 5c66: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 5c68: 0804 bt 0x5c70 // 5c70 + HT1621.show_cache[3] &= ~0x08; + 5c6a: 3d83 bclri r5, 3 + 5c6c: a3af st.b r5, (r3, 0xf) + 5c6e: 07ca br 0x5c02 // 5c02 + }else if(HT1621.wind_velocity == 0) //低风速 + 5c70: 3840 cmpnei r0, 0 + 5c72: 0807 bt 0x5c80 // 5c80 + HT1621.show_cache[4] |= 0x08; + 5c74: 39a0 bseti r1, 0 + 5c76: 39a3 bseti r1, 3 + 5c78: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 5c7a: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 5c7c: a351 st.b r2, (r3, 0x11) +} + 5c7e: 07c2 br 0x5c02 // 5c02 + }else if(HT1621.wind_velocity == 1) //中风速 + 5c80: 3841 cmpnei r0, 1 + 5c82: 0807 bt 0x5c90 // 5c90 + HT1621.show_cache[4] |= 0x0C; + 5c84: 300d movi r0, 13 + 5c86: 6c40 or r1, r0 + 5c88: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 5c8a: 3aa2 bseti r2, 2 + 5c8c: 3aa3 bseti r2, 3 + 5c8e: 07f7 br 0x5c7c // 5c7c + }else if(HT1621.wind_velocity == 2) //高风速 + 5c90: 3842 cmpnei r0, 2 + 5c92: 0bb8 bt 0x5c02 // 5c02 + HT1621.show_cache[4] |= 0x0E; + 5c94: 300f movi r0, 15 + 5c96: 6c40 or r1, r0 + 5c98: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 5c9a: 310e movi r1, 14 + 5c9c: 6c84 or r2, r1 + 5c9e: 07ef br 0x5c7c // 5c7c + 5ca0: 20000520 .long 0x20000520 + +Disassembly of section .text.Control_Prompt_Text: + +00005ca4 : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 5ca4: 14c4 push r4-r7 + 5ca6: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 5ca8: 1167 lrw r3, 0x20000520 // 5d44 + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 5caa: 83d6 ld.b r6, (r3, 0x16) + 5cac: 3e80 bclri r6, 0 + 5cae: 7598 zextb r6, r6 + 5cb0: b8c0 st.w r6, (r14, 0x0) + 5cb2: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 5cb6: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 5cb8: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5cba: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5cbc: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 5cbe: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 5cc0: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5cc2: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 5cc4: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5cc6: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5cc8: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 5cca: 3a80 bclri r2, 0 + 5ccc: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 5cce: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5cd0: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 5cd2: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5cd4: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5cd6: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 5cd8: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 5cda: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5cdc: 7598 zextb r6, r6 + + if(state == 0x00) + 5cde: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 5ce0: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 5ce2: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 5ce4: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 5ce6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 5ce8: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 5cea: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 5cec: 0814 bt 0x5d14 // 5d14 + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 5cee: 3008 movi r0, 8 + 5cf0: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 5cf2: 3aa0 bseti r2, 0 + 5cf4: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 5cf6: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 5cf8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cfa: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5cfc: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5cfe: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 5d00: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 5d02: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5d04: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 5d06: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 5d08: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 5d0a: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5d0c: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 5d0e: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 5d10: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 5d12: 040b br 0x5d28 // 5d28 + else if(state == 0x01){ + 5d14: 3841 cmpnei r0, 1 + 5d16: 080b bt 0x5d2c // 5d2c + HT1621.show_cache[0] |= 0x01; //模式 + 5d18: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 5d1a: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 5d1c: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 5d1e: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 5d20: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 5d22: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 5d24: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 5d26: a33f st.b r1, (r3, 0x1f) +} + 5d28: 1401 addi r14, r14, 4 + 5d2a: 1484 pop r4-r7 + }else if(state == 0x02){ + 5d2c: 3842 cmpnei r0, 2 + 5d2e: 0bfd bt 0x5d28 // 5d28 + HT1621.show_cache[0] |= 0x02; //模式 + 5d30: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5d32: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 5d34: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5d36: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 5d38: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 5d3a: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 5d3c: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 5d3e: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 5d40: 6d84 or r6, r1 + 5d42: 07e7 br 0x5d10 // 5d10 + 5d44: 20000520 .long 0x20000520 + +Disassembly of section .text.Controlled_Buzzer: + +00005d48 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 5d48: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 5d4a: 3841 cmpnei r0, 1 + 5d4c: 0c0a bf 0x5d60 // 5d60 + 5d4e: 3840 cmpnei r0, 0 + 5d50: 0c04 bf 0x5d58 // 5d58 + 5d52: 3842 cmpnei r0, 2 + 5d54: 0c12 bf 0x5d78 // 5d78 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 5d56: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 5d58: 3010 movi r0, 16 + 5d5a: e3fffc6b bsr 0x5630 // 5630 + break; + 5d5e: 07fc br 0x5d56 // 5d56 + HT1621_WR_CMD(HT1621_BLON); + 5d60: 3012 movi r0, 18 + 5d62: e3fffc67 bsr 0x5630 // 5630 + HT1621.buz_control = 0x01; + 5d66: 1069 lrw r3, 0x20000520 // 5d88 + 5d68: 3220 movi r2, 32 + 5d6a: 608c addu r2, r3 + 5d6c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 5d6e: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 5d70: 1047 lrw r2, 0x200000b8 // 5d8c + 5d72: 9240 ld.w r2, (r2, 0x0) + 5d74: b34e st.w r2, (r3, 0x38) +} + 5d76: 07f0 br 0x5d56 // 5d56 + HT1621_WR_CMD(HT1621_BLON); + 5d78: 3012 movi r0, 18 + 5d7a: e3fffc5b bsr 0x5630 // 5630 + HT1621.buz_control = 0x02; + 5d7e: 1063 lrw r3, 0x20000520 // 5d88 + 5d80: 3220 movi r2, 32 + 5d82: 608c addu r2, r3 + 5d84: 3102 movi r1, 2 + 5d86: 07f4 br 0x5d6e // 5d6e + 5d88: 20000520 .long 0x20000520 + 5d8c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00005d90 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 5d90: 14d0 push r15 + switch (state) { + 5d92: 3840 cmpnei r0, 0 + 5d94: 0c04 bf 0x5d9c // 5d9c + 5d96: 3841 cmpnei r0, 1 + 5d98: 0c16 bf 0x5dc4 // 5dc4 + + } + break; + + } +} + 5d9a: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 5d9c: 1172 lrw r3, 0x20000198 // 5e64 + 5d9e: 8359 ld.b r2, (r3, 0x19) + 5da0: 3a41 cmpnei r2, 1 + 5da2: 0bfc bt 0x5d9a // 5d9a + tm1812_param.LCD_blaklingt_flag = 0x00; + 5da4: 3200 movi r2, 0 + 5da6: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5da8: 3100 movi r1, 0 + 5daa: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5dac: e3fffb76 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 5db0: 3100 movi r1, 0 + 5db2: 3001 movi r0, 1 + 5db4: e3fffb72 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5db8: 3100 movi r1, 0 + 5dba: 3002 movi r0, 2 + 5dbc: e3fffb6e bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5dc0: 3100 movi r1, 0 + 5dc2: 0437 br 0x5e30 // 5e30 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 5dc4: 1128 lrw r1, 0x20000198 // 5e64 + 5dc6: 8179 ld.b r3, (r1, 0x19) + 5dc8: 3b40 cmpnei r3, 0 + 5dca: 0be8 bt 0x5d9a // 5d9a + tm1812_param.LCD_blaklingt_flag = 0x01; + 5dcc: 3301 movi r3, 1 + 5dce: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5dd0: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 5dd2: 1166 lrw r3, 0x20000560 // 5e68 + 5dd4: 8362 ld.b r3, (r3, 0x2) + 5dd6: 4379 lsli r3, r3, 25 + 5dd8: 4b7d lsri r3, r3, 29 + 5dda: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 5ddc: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 5dde: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5de0: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 5de2: 0c1c bf 0x5e1a // 5e1a + 5de4: 3a44 cmpnei r2, 4 + 5de6: 0c2a bf 0x5e3a // 5e3a + 5de8: 3a40 cmpnei r2, 0 + 5dea: 0be1 bt 0x5dac // 5dac + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5dec: e3fffb56 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5df0: 31ff movi r1, 255 + 5df2: 3001 movi r0, 1 + 5df4: e3fffb52 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5df8: 3100 movi r1, 0 + 5dfa: 3002 movi r0, 2 + 5dfc: e3fffb4e bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5e00: 3100 movi r1, 0 + 5e02: 3003 movi r0, 3 + 5e04: e3fffb4a bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5e08: 3100 movi r1, 0 + 5e0a: 3004 movi r0, 4 + 5e0c: e3fffb46 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 5e10: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 5e12: 3005 movi r0, 5 + 5e14: e3fffb42 bsr 0x5498 // 5498 +} + 5e18: 07c1 br 0x5d9a // 5d9a + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5e1a: e3fffb3f bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5e1e: 31ff movi r1, 255 + 5e20: 3001 movi r0, 1 + 5e22: e3fffb3b bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5e26: 3100 movi r1, 0 + 5e28: 3002 movi r0, 2 + 5e2a: e3fffb37 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 5e2e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5e30: 3003 movi r0, 3 + 5e32: e3fffb33 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5e36: 3100 movi r1, 0 + 5e38: 0410 br 0x5e58 // 5e58 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 5e3a: e3fffb2f bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 5e3e: 31ff movi r1, 255 + 5e40: 3001 movi r0, 1 + 5e42: e3fffb2b bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 5e46: 3100 movi r1, 0 + 5e48: 3002 movi r0, 2 + 5e4a: e3fffb27 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 5e4e: 3100 movi r1, 0 + 5e50: 3003 movi r0, 3 + 5e52: e3fffb23 bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 5e56: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 5e58: 3004 movi r0, 4 + 5e5a: e3fffb1f bsr 0x5498 // 5498 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 5e5e: 3100 movi r1, 0 + 5e60: 07d9 br 0x5e12 // 5e12 + 5e62: 0000 bkpt + 5e64: 20000198 .long 0x20000198 + 5e68: 20000560 .long 0x20000560 + +Disassembly of section .text.Controlled_Key_Backlight: + +00005e6c : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 5e6c: 14d0 push r15 + switch(state){ + 5e6e: 3840 cmpnei r0, 0 + 5e70: 0c04 bf 0x5e78 // 5e78 + 5e72: 3841 cmpnei r0, 1 + 5e74: 0c0b bf 0x5e8a // 5e8a + + } + + break; + } +} + 5e76: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 5e78: 1068 lrw r3, 0x200004f8 // 5e98 + 5e7a: 836a ld.b r3, (r3, 0xa) + 5e7c: 3b42 cmpnei r3, 2 + 5e7e: 0ffc bf 0x5e76 // 5e76 + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 5e80: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 5e82: 3005 movi r0, 5 + 5e84: e3fff7ce bsr 0x4e20 // 4e20 +} + 5e88: 07f7 br 0x5e76 // 5e76 + if(g_switch.light_state[T_Backlight] != Control_ON) + 5e8a: 1064 lrw r3, 0x200004f8 // 5e98 + 5e8c: 836a ld.b r3, (r3, 0xa) + 5e8e: 3b41 cmpnei r3, 1 + 5e90: 0ff3 bf 0x5e76 // 5e76 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 5e92: 3101 movi r1, 1 + 5e94: 07f7 br 0x5e82 // 5e82 + 5e96: 0000 bkpt + 5e98: 200004f8 .long 0x200004f8 + +Disassembly of section .text.Set_Device_ADDR: + +00005e9c : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 5e9c: 14d4 push r4-r7, r15 + 5e9e: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5ea0: 11c4 lrw r6, 0x897e // 5f30 + 5ea2: 6018 addu r0, r6 + 5ea4: 1184 lrw r4, 0x20000520 // 5f34 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 5ea6: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5ea8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 5eaa: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5eac: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 5eae: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5eb0: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 5eb2: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5eb4: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 5eb6: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5eb8: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 5eba: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 5ebc: 843b ld.b r1, (r4, 0x1b) + 5ebe: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 5ec0: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 5ec2: 845d ld.b r2, (r4, 0x1d) + 5ec4: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 5ec6: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 5ec8: 6c1f mov r0, r7 + 5eca: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 5ecc: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 5ece: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 5ed0: e3ffecac bsr 0x3828 // 3828 <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5ed4: 7400 zextb r0, r0 + 5ed6: 6018 addu r0, r6 + 5ed8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 5eda: 9861 ld.w r3, (r14, 0x4) + 5edc: 841f ld.b r0, (r4, 0x1f) + 5ede: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5ee0: 6c07 mov r0, r1 + 5ee2: 6814 and r0, r5 + 5ee4: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5ee6: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5ee8: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5eea: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 5eec: 6c1f mov r0, r7 + 5eee: 310a movi r1, 10 + 5ef0: e3ffec9c bsr 0x3828 // 3828 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 5ef4: 7400 zextb r0, r0 + 5ef6: 310a movi r1, 10 + 5ef8: e3ffecbc bsr 0x3870 // 3870 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5efc: 7400 zextb r0, r0 + 5efe: 6018 addu r0, r6 + 5f00: 8060 ld.b r3, (r0, 0x0) + 5f02: 6c4f mov r1, r3 + 5f04: 6854 and r1, r5 + 5f06: 9842 ld.w r2, (r14, 0x8) + 5f08: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5f0a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5f0c: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5f0e: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 5f10: 310a movi r1, 10 + 5f12: 6c1f mov r0, r7 + 5f14: e3ffecae bsr 0x3870 // 3870 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f18: 7400 zextb r0, r0 + 5f1a: 6180 addu r6, r0 + 5f1c: 8660 ld.b r3, (r6, 0x0) + 5f1e: 694c and r5, r3 + 5f20: 9840 ld.w r2, (r14, 0x0) + 5f22: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f24: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f26: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f28: a47a st.b r3, (r4, 0x1a) +} + 5f2a: 1403 addi r14, r14, 12 + 5f2c: 1494 pop r4-r7, r15 + 5f2e: 0000 bkpt + 5f30: 0000897e .long 0x0000897e + 5f34: 20000520 .long 0x20000520 + +Disassembly of section .text.Set_Temp_Difference: + +00005f38 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 5f38: 1057 lrw r2, 0x20000520 // 5f94 + HT1621.show_cache[10] &= 0x01; + 5f3a: 3101 movi r1, 1 + 5f3c: 8276 ld.b r3, (r2, 0x16) + 5f3e: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 5f40: 3ba1 bseti r3, 1 + 5f42: 3ba2 bseti r3, 2 + 5f44: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 5f46: 330d movi r3, 13 + 5f48: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 5f4a: 827f ld.b r3, (r2, 0x1f) + 5f4c: 68c4 and r3, r1 + 5f4e: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 5f50: 3300 movi r3, 0 + 5f52: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 5f54: 827d ld.b r3, (r2, 0x1d) + 5f56: 68c4 and r3, r1 + 5f58: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 5f5a: 3300 movi r3, 0 + 5f5c: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 5f5e: 827b ld.b r3, (r2, 0x1b) + 5f60: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 5f62: 3300 movi r3, 0 + 5f64: 2b08 subi r3, 9 + 5f66: 60c0 addu r3, r0 + 5f68: 74cc zextb r3, r3 + 5f6a: 3b09 cmphsi r3, 10 + 5f6c: 0c08 bf 0x5f7c // 5f7c + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 5f6e: 3808 cmphsi r0, 9 + 5f70: 0810 bt 0x5f90 // 5f90 + tmp_quantile = 9 - diff; + 5f72: 3309 movi r3, 9 + 5f74: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 5f76: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 5f78: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 5f7a: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f7c: 1007 lrw r0, 0x897e // 5f98 + 5f7e: 60c0 addu r3, r0 + 5f80: 8360 ld.b r3, (r3, 0x0) + 5f82: 4b04 lsri r0, r3, 4 + 5f84: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f86: 300f movi r0, 15 + 5f88: 68c0 and r3, r0 + 5f8a: 6c4c or r1, r3 + 5f8c: a23b st.b r1, (r2, 0x1b) +} + 5f8e: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 5f90: 3300 movi r3, 0 + 5f92: 07f5 br 0x5f7c // 5f7c + 5f94: 20000520 .long 0x20000520 + 5f98: 0000897e .long 0x0000897e + +Disassembly of section .text.HT1621_Refresh_Task: + +00005f9c : + + +void HT1621_Refresh_Task(void){ + 5f9c: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 5f9e: 109e lrw r4, 0x200000b8 // 6014 + 5fa0: 10be lrw r5, 0x20000520 // 6018 + 5fa2: 9460 ld.w r3, (r4, 0x0) + 5fa4: 954c ld.w r2, (r5, 0x30) + 5fa6: 60ca subu r3, r2 + 5fa8: 105d lrw r2, 0x1f3 // 601c + 5faa: 64c8 cmphs r2, r3 + 5fac: 0806 bt 0x5fb8 // 5fb8 + HT1621.Refresh_timing = HT1621_Refresh_time; + 5fae: 33fa movi r3, 250 + 5fb0: 4361 lsli r3, r3, 1 + 5fb2: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 5fb4: e3fffbf8 bsr 0x57a4 // 57a4 +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 5fb8: 107a lrw r3, 0x20000540 // 6020 + 5fba: 8344 ld.b r2, (r3, 0x4) + 5fbc: 3a41 cmpnei r2, 1 + 5fbe: 0824 bt 0x6006 // 6006 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 5fc0: 952e ld.w r1, (r5, 0x38) + 5fc2: 9440 ld.w r2, (r4, 0x0) + 5fc4: 6086 subu r2, r1 + 5fc6: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 5fc8: 6484 cmphs r1, r2 + 5fca: 0808 bt 0x5fda // 5fda + HT1621.buz_tick = SysTick_1ms; + 5fcc: 9440 ld.w r2, (r4, 0x0) + 5fce: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 5fd0: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 5fd2: 3200 movi r2, 0 + 5fd4: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 5fd6: e3fffb2d bsr 0x5630 // 5630 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 5fda: 1053 lrw r2, 0x20000560 // 6024 + 5fdc: 8202 ld.b r0, (r2, 0x2) + 5fde: 1033 lrw r1, 0x20000198 // 6028 + 5fe0: 4079 lsli r3, r0, 25 + 5fe2: 81ba ld.b r5, (r1, 0x1a) + 5fe4: 4b7d lsri r3, r3, 29 + 5fe6: 64d6 cmpne r5, r3 + 5fe8: 0c0e bf 0x6004 // 6004 + TempCtrl.BackLightTick = SysTick_1ms; + 5fea: 9460 ld.w r3, (r4, 0x0) + 5fec: 4b88 lsri r4, r3, 8 + 5fee: a270 st.b r3, (r2, 0x10) + 5ff0: a291 st.b r4, (r2, 0x11) + 5ff2: 4b90 lsri r4, r3, 16 + 5ff4: 4b78 lsri r3, r3, 24 + 5ff6: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 5ff8: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 5ffa: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 5ffc: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 5ffe: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6000: e3fffec8 bsr 0x5d90 // 5d90 + } + +} + 6004: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 6006: 3a42 cmpnei r2, 2 + 6008: 0be9 bt 0x5fda // 5fda + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 600a: 952e ld.w r1, (r5, 0x38) + 600c: 9440 ld.w r2, (r4, 0x0) + 600e: 6086 subu r2, r1 + 6010: 1023 lrw r1, 0x1f3 // 601c + 6012: 07db br 0x5fc8 // 5fc8 + 6014: 200000b8 .long 0x200000b8 + 6018: 20000520 .long 0x20000520 + 601c: 000001f3 .long 0x000001f3 + 6020: 20000540 .long 0x20000540 + 6024: 20000560 .long 0x20000560 + 6028: 20000198 .long 0x20000198 + +Disassembly of section .text.TemCtrl_Init: + +0000602c : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 602c: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 602e: 1299 lrw r4, 0x20000560 // 6190 + 6030: 3229 movi r2, 41 + 6032: 3100 movi r1, 0 + 6034: 6c13 mov r0, r4 + 6036: e3ffdcc9 bsr 0x19c8 // 19c8 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 603a: 1277 lrw r3, 0x200000ac // 6194 + 603c: 9360 ld.w r3, (r3, 0x0) + 603e: 3b80 bclri r3, 0 + 6040: 3b40 cmpnei r3, 0 + 6042: 0ca0 bf 0x6182 // 6182 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 6044: 1235 lrw r1, 0x8d22 // 6198 + 6046: 3000 movi r0, 0 + 6048: e3ffed94 bsr 0x3b70 // 3b70 + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 604c: 1274 lrw r3, 0x200000a8 // 619c + 604e: 30ff movi r0, 255 + 6050: 9320 ld.w r1, (r3, 0x0) + 6052: 6840 and r1, r0 + 6054: 3940 cmpnei r1, 0 + 6056: 0c05 bf 0x6060 // 6060 + 6058: 9340 ld.w r2, (r3, 0x0) + 605a: 6880 and r2, r0 + 605c: 3a41 cmpnei r2, 1 + 605e: 0885 bt 0x6168 // 6168 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 6060: 9340 ld.w r2, (r3, 0x0) + 6062: 4227 lsli r1, r2, 7 + 6064: 307f movi r0, 127 + 6066: 8442 ld.b r2, (r4, 0x2) + 6068: 6880 and r2, r0 + 606a: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 606c: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 606e: 9340 ld.w r2, (r3, 0x0) + 6070: 4a48 lsri r2, r2, 8 + 6072: 30ff movi r0, 255 + 6074: 6880 and r2, r0 + 6076: 3a40 cmpnei r2, 0 + 6078: 0c10 bf 0x6098 // 6098 + 607a: 9340 ld.w r2, (r3, 0x0) + 607c: 4a48 lsri r2, r2, 8 + 607e: 6880 and r2, r0 + 6080: 3a42 cmpnei r2, 2 + 6082: 0c0b bf 0x6098 // 6098 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 6084: 9320 ld.w r1, (r3, 0x0) + 6086: 4928 lsri r1, r1, 8 + 6088: 6840 and r1, r0 + 608a: 3944 cmpnei r1, 4 + 608c: 0c06 bf 0x6098 // 6098 + 608e: 9340 ld.w r2, (r3, 0x0) + 6090: 4a48 lsri r2, r2, 8 + 6092: 6880 and r2, r0 + 6094: 3a46 cmpnei r2, 6 + 6096: 086d bt 0x6170 // 6170 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 6098: 9340 ld.w r2, (r3, 0x0) + 609a: 3107 movi r1, 7 + 609c: 4a48 lsri r2, r2, 8 + 609e: 6884 and r2, r1 + 60a0: 3070 movi r0, 112 + 60a2: 8422 ld.b r1, (r4, 0x2) + 60a4: 4244 lsli r2, r2, 4 + 60a6: 6841 andn r1, r0 + 60a8: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 60aa: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 60ac: 9340 ld.w r2, (r3, 0x0) + 60ae: 4a50 lsri r2, r2, 16 + 60b0: 30ff movi r0, 255 + 60b2: 6880 and r2, r0 + 60b4: 3a41 cmpnei r2, 1 + 60b6: 0c10 bf 0x60d6 // 60d6 + 60b8: 9340 ld.w r2, (r3, 0x0) + 60ba: 4a50 lsri r2, r2, 16 + 60bc: 6880 and r2, r0 + 60be: 3a42 cmpnei r2, 2 + 60c0: 0c0b bf 0x60d6 // 60d6 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 60c2: 9320 ld.w r1, (r3, 0x0) + 60c4: 4930 lsri r1, r1, 16 + 60c6: 6840 and r1, r0 + 60c8: 3943 cmpnei r1, 3 + 60ca: 0c06 bf 0x60d6 // 60d6 + 60cc: 9340 ld.w r2, (r3, 0x0) + 60ce: 4a50 lsri r2, r2, 16 + 60d0: 6880 and r2, r0 + 60d2: 3a40 cmpnei r2, 0 + 60d4: 0852 bt 0x6178 // 6178 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 60d6: 9340 ld.w r2, (r3, 0x0) + 60d8: 3107 movi r1, 7 + 60da: 4a50 lsri r2, r2, 16 + 60dc: 6884 and r2, r1 + 60de: 300e movi r0, 14 + 60e0: 8422 ld.b r1, (r4, 0x2) + 60e2: 4241 lsli r2, r2, 1 + 60e4: 6841 andn r1, r0 + 60e6: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 60e8: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 60ea: 9340 ld.w r2, (r3, 0x0) + 60ec: 4a58 lsri r2, r2, 24 + 60ee: 3a0f cmphsi r2, 16 + 60f0: 0c05 bf 0x60fa // 60fa + 60f2: 9340 ld.w r2, (r3, 0x0) + 60f4: 4a58 lsri r2, r2, 24 + 60f6: 3a1f cmphsi r2, 32 + 60f8: 0c05 bf 0x6102 // 6102 + 60fa: 9340 ld.w r2, (r3, 0x0) + 60fc: 4a58 lsri r2, r2, 24 + 60fe: 3a40 cmpnei r2, 0 + 6100: 0846 bt 0x618c // 618c + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 6102: 9360 ld.w r3, (r3, 0x0) + 6104: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 6106: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6108: e3fff3e6 bsr 0x48d4 // 48d4 + 610c: 1165 lrw r3, 0x200004a0 // 61a0 + 610e: 8362 ld.b r3, (r3, 0x2) + 6110: 320a movi r2, 10 + 6112: 7cc8 mult r3, r2 + 6114: 2b54 subi r3, 85 + 6116: 600c addu r0, r3 + 6118: 7401 zexth r0, r0 + 611a: 4868 lsri r3, r0, 8 + 611c: a469 st.b r3, (r4, 0x9) + 611e: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6120: 310a movi r1, 10 + 6122: e3ffeb83 bsr 0x3828 // 3828 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 6126: 3301 movi r3, 1 + 6128: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 612a: 3300 movi r3, 0 + 612c: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 612e: 3200 movi r2, 0 + 6130: 107d lrw r3, 0x2000005c // 61a4 + 6132: 9360 ld.w r3, (r3, 0x0) + 6134: 23ff addi r3, 256 + 6136: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6138: 8442 ld.b r2, (r4, 0x2) + 613a: 4239 lsli r1, r2, 25 + 613c: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 613e: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6140: 4128 lsli r1, r1, 8 + 6142: 9300 ld.w r0, (r3, 0x0) + 6144: 6c40 or r1, r0 + 6146: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6148: 423c lsli r1, r2, 28 + 614a: 493d lsri r1, r1, 29 + 614c: 9300 ld.w r0, (r3, 0x0) + 614e: 4130 lsli r1, r1, 16 + 6150: 6c40 or r1, r0 + 6152: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6154: 8421 ld.b r1, (r4, 0x1) + 6156: 9300 ld.w r0, (r3, 0x0) + 6158: 4138 lsli r1, r1, 24 + 615a: 6c40 or r1, r0 + 615c: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 615e: 9320 ld.w r1, (r3, 0x0) + 6160: 4a47 lsri r2, r2, 7 + 6162: 6c84 or r2, r1 + 6164: b340 st.w r2, (r3, 0x0) +} + 6166: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6168: 8442 ld.b r2, (r4, 0x2) + 616a: 317f movi r1, 127 + 616c: 6884 and r2, r1 + 616e: 077f br 0x606c // 606c + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6170: 8442 ld.b r2, (r4, 0x2) + 6172: 3170 movi r1, 112 + 6174: 6885 andn r2, r1 + 6176: 079a br 0x60aa // 60aa + TempCtrl.TemState_Now.fan = FAN_MID; + 6178: 8442 ld.b r2, (r4, 0x2) + 617a: 310e movi r1, 14 + 617c: 6885 andn r2, r1 + 617e: 3aa2 bseti r2, 2 + 6180: 07b4 br 0x60e8 // 60e8 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 6182: 8462 ld.b r3, (r4, 0x2) + 6184: 320e movi r2, 14 + 6186: 68c9 andn r3, r2 + 6188: 3ba2 bseti r3, 2 + 618a: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 618c: 3318 movi r3, 24 + 618e: 07bc br 0x6106 // 6106 + 6190: 20000560 .long 0x20000560 + 6194: 200000ac .long 0x200000ac + 6198: 00008d22 .long 0x00008d22 + 619c: 200000a8 .long 0x200000a8 + 61a0: 200004a0 .long 0x200004a0 + 61a4: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +000061a8 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 61a8: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 61aa: 1031 lrw r1, 0x20000560 // 61ec + 61ac: 8162 ld.b r3, (r1, 0x2) + 61ae: 748e sextb r2, r3 + 61b0: 3adf btsti r2, 31 + 61b2: 0c14 bf 0x61da // 61da + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 61b4: 4359 lsli r2, r3, 25 + 61b6: 4a5d lsri r2, r2, 29 + 61b8: 3a42 cmpnei r2, 2 + 61ba: 0c11 bf 0x61dc // 61dc + 61bc: 3a44 cmpnei r2, 4 + 61be: 0c13 bf 0x61e4 // 61e4 + 61c0: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 61c2: 3270 movi r2, 112 + 61c4: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 61c6: 0802 bt 0x61ca // 61ca + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 61c8: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 61ca: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 61cc: 8142 ld.b r2, (r1, 0x2) + 61ce: 4259 lsli r2, r2, 25 + 61d0: 4a5d lsri r2, r2, 29 + 61d2: 1028 lrw r1, 0x8d3b // 61f0 + 61d4: 3000 movi r0, 0 + 61d6: e3ffeccd bsr 0x3b70 // 3b70 +} + 61da: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 61dc: 3270 movi r2, 112 + 61de: 68c9 andn r3, r2 + 61e0: 3ba6 bseti r3, 6 + 61e2: 07f4 br 0x61ca // 61ca + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 61e4: 3270 movi r2, 112 + 61e6: 68c9 andn r3, r2 + 61e8: 07f1 br 0x61ca // 61ca + 61ea: 0000 bkpt + 61ec: 20000560 .long 0x20000560 + 61f0: 00008d3b .long 0x00008d3b + +Disassembly of section .text.TemCtrl_Fan_Set: + +000061f4 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 61f4: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 61f6: 1072 lrw r3, 0x20000560 // 623c + 61f8: 8342 ld.b r2, (r3, 0x2) + 61fa: 744a sextb r1, r2 + 61fc: 39df btsti r1, 31 + 61fe: 0c15 bf 0x6228 // 6228 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6200: 421c lsli r0, r2, 28 + 6202: 481d lsri r0, r0, 29 + 6204: 3803 cmphsi r0, 4 + 6206: 0817 bt 0x6234 // 6234 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6208: 8342 ld.b r2, (r3, 0x2) + 620a: 310e movi r1, 14 + 620c: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 620e: e3ffd577 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6212: 020f .short 0x020f + 6214: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 6216: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6218: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 621a: 8342 ld.b r2, (r3, 0x2) + 621c: 425c lsli r2, r2, 28 + 621e: 4a5d lsri r2, r2, 29 + 6220: 1028 lrw r1, 0x8d44 // 6240 + 6222: 3000 movi r0, 0 + 6224: e3ffeca6 bsr 0x3b70 // 3b70 +} + 6228: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 622a: 3aa1 bseti r2, 1 + 622c: 3aa2 bseti r2, 2 + 622e: 07f5 br 0x6218 // 6218 + TempCtrl.TemState_Now.fan = FAN_LOW; + 6230: 3aa1 bseti r2, 1 + 6232: 07f3 br 0x6218 // 6218 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6234: 310e movi r1, 14 + 6236: 6885 andn r2, r1 + 6238: 07f0 br 0x6218 // 6218 + 623a: 0000 bkpt + 623c: 20000560 .long 0x20000560 + 6240: 00008d44 .long 0x00008d44 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00006244 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 6244: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6246: 106a lrw r3, 0x20000560 // 626c + 6248: 8342 ld.b r2, (r3, 0x2) + 624a: 748a sextb r2, r2 + 624c: 3adf btsti r2, 31 + 624e: 0c0b bf 0x6264 // 6264 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6250: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 6252: 3a10 cmphsi r2, 17 + 6254: 0c09 bf 0x6266 // 6266 + { + TemSet--; //超过最低温度,就减 + 6256: 2a00 subi r2, 1 + 6258: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 625a: 1026 lrw r1, 0x8d4b // 6270 + 625c: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 625e: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6260: e3ffec88 bsr 0x3b70 // 3b70 +} + 6264: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 6266: 3210 movi r2, 16 + 6268: 07f9 br 0x625a // 625a + 626a: 0000 bkpt + 626c: 20000560 .long 0x20000560 + 6270: 00008d4b .long 0x00008d4b + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00006274 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 6274: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6276: 106a lrw r3, 0x20000560 // 629c + 6278: 8342 ld.b r2, (r3, 0x2) + 627a: 748a sextb r2, r2 + 627c: 3adf btsti r2, 31 + 627e: 0c0b bf 0x6294 // 6294 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6280: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 6282: 3a1f cmphsi r2, 32 + 6284: 0809 bt 0x6296 // 6296 + { + TemSet++; + 6286: 2200 addi r2, 1 + 6288: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 628a: 1026 lrw r1, 0x8d54 // 62a0 + 628c: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 628e: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6290: e3ffec70 bsr 0x3b70 // 3b70 +} + 6294: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 6296: 3220 movi r2, 32 + 6298: 07f9 br 0x628a // 628a + 629a: 0000 bkpt + 629c: 20000560 .long 0x20000560 + 62a0: 00008d54 .long 0x00008d54 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +000062a4 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 62a4: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 62a6: 104b lrw r2, 0x20000560 // 62d0 + 62a8: 8262 ld.b r3, (r2, 0x2) + 62aa: 4b27 lsri r1, r3, 7 + 62ac: 3940 cmpnei r1, 0 + 62ae: 0c0d bf 0x62c8 // 62c8 + 62b0: 3941 cmpnei r1, 1 + 62b2: 080b bt 0x62c8 // 62c8 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 62b4: 317f movi r1, 127 + 62b6: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 62b8: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 62ba: 8242 ld.b r2, (r2, 0x2) + 62bc: 4a47 lsri r2, r2, 7 + 62be: 1026 lrw r1, 0x8d54 // 62d4 + 62c0: 3000 movi r0, 0 + 62c2: e3ffec57 bsr 0x3b70 // 3b70 +} + 62c6: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 62c8: 3100 movi r1, 0 + 62ca: 297f subi r1, 128 + 62cc: 6cc4 or r3, r1 + 62ce: 07f5 br 0x62b8 // 62b8 + 62d0: 20000560 .long 0x20000560 + 62d4: 00008d54 .long 0x00008d54 + +Disassembly of section .text.Tem_Valve_Ctrl: + +000062d8 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 62d8: 14d1 push r4, r15 + uint8_t TemIndoor; + uint8_t TemSet; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 62da: 1130 lrw r1, 0x20000560 // 6398 + 62dc: 8100 ld.b r0, (r1, 0x0) + 62de: 3840 cmpnei r0, 0 + 62e0: 0802 bt 0x62e4 // 62e4 + 62e2: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 62e4: 8141 ld.b r2, (r1, 0x1) + 62e6: 3a40 cmpnei r2, 0 + 62e8: 0802 bt 0x62ec // 62ec + 62ea: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 62ec: 8162 ld.b r3, (r1, 0x2) + 62ee: 4b87 lsri r4, r3, 7 + 62f0: 3c40 cmpnei r4, 0 + 62f2: 0c0f bf 0x6310 // 6310 + 62f4: 3c41 cmpnei r4, 1 + 62f6: 0850 bt 0x6396 // 6396 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 62f8: 4399 lsli r4, r3, 25 + 62fa: 4c9d lsri r4, r4, 29 + 62fc: 3c42 cmpnei r4, 2 + 62fe: 0c26 bf 0x634a // 634a + 6300: 3c44 cmpnei r4, 4 + 6302: 0c36 bf 0x636e // 636e + 6304: 3c40 cmpnei r4, 0 + 6306: 0848 bt 0x6396 // 6396 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6308: 5a83 subi r4, r2, 1 + 630a: 6501 cmplt r0, r4 + 630c: 0c05 bf 0x6316 // 6316 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 630e: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6310: 3b80 bclri r3, 0 + 6312: a162 st.b r3, (r1, 0x2) + 6314: 0419 br 0x6346 // 6346 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6316: 2200 addi r2, 1 + 6318: 6409 cmplt r2, r0 + 631a: 0c3e bf 0x6396 // 6396 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 631c: 3ba0 bseti r3, 0 + 631e: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6320: 107f lrw r3, 0x200004a0 // 639c + 6322: 8361 ld.b r3, (r3, 0x1) + 6324: 3b41 cmpnei r3, 1 + 6326: 080a bt 0x633a // 633a + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6328: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 632a: 3000 movi r0, 0 + 632c: e000077a bsr 0x7220 // 7220 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 6330: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6332: 3001 movi r0, 1 + 6334: e0000776 bsr 0x7220 // 7220 + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 6338: 042f br 0x6396 // 6396 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 633a: 3b40 cmpnei r3, 0 + 633c: 0803 bt 0x6342 // 6342 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 633e: 3101 movi r1, 1 + 6340: 07f5 br 0x632a // 632a + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 6342: 3b42 cmpnei r3, 2 + 6344: 0829 bt 0x6396 // 6396 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6346: 3102 movi r1, 2 + 6348: 040e br 0x6364 // 6364 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 634a: 5a82 addi r4, r2, 1 + 634c: 6411 cmplt r4, r0 + 634e: 0be0 bt 0x630e // 630e + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6350: 2a00 subi r2, 1 + 6352: 6481 cmplt r0, r2 + 6354: 0c21 bf 0x6396 // 6396 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6356: 3ba0 bseti r3, 0 + 6358: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 635a: 1071 lrw r3, 0x200004a0 // 639c + 635c: 8361 ld.b r3, (r3, 0x1) + 635e: 3b41 cmpnei r3, 1 + 6360: 0bed bt 0x633a // 633a + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6362: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6364: 3000 movi r0, 0 + 6366: e000075d bsr 0x7220 // 7220 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 636a: 3102 movi r1, 2 + 636c: 07e3 br 0x6332 // 6332 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 636e: 3b80 bclri r3, 0 + 6370: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6372: 3000 movi r0, 0 + 6374: 3102 movi r1, 2 + 6376: e0000755 bsr 0x7220 // 7220 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 637a: 3102 movi r1, 2 + 637c: 3001 movi r0, 1 + 637e: e0000751 bsr 0x7220 // 7220 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6382: 1067 lrw r3, 0x200004a0 // 639c + 6384: 8361 ld.b r3, (r3, 0x1) + 6386: 3b42 cmpnei r3, 2 + 6388: 0807 bt 0x6396 // 6396 + Relay_Stop(); + 638a: e000073d bsr 0x7204 // 7204 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 638e: 1025 lrw r1, 0x8d62 // 63a0 + 6390: 3000 movi r0, 0 + 6392: e3ffebef bsr 0x3b70 // 3b70 +} + 6396: 1491 pop r4, r15 + 6398: 20000560 .long 0x20000560 + 639c: 200004a0 .long 0x200004a0 + 63a0: 00008d62 .long 0x00008d62 + +Disassembly of section .text.TemCtrl_Pro: + +000063a4 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 63a4: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 63a6: 1218 lrw r0, 0x200000b8 // 6504 + 63a8: 1238 lrw r1, 0x20000228 // 6508 + 63aa: 9040 ld.w r2, (r0, 0x0) + 63ac: 9160 ld.w r3, (r1, 0x0) + 63ae: 608e subu r2, r3 + 63b0: 33fa movi r3, 250 + 63b2: 4362 lsli r3, r3, 2 + 63b4: 648c cmphs r3, r2 + 63b6: 083b bt 0x642c // 642c + { + tick = SysTick_1ms; + 63b8: 9060 ld.w r3, (r0, 0x0) + 63ba: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 63bc: 360a movi r6, 10 + 63be: 12b4 lrw r5, 0x200004a0 // 650c + 63c0: e3fff28a bsr 0x48d4 // 48d4 + 63c4: 8542 ld.b r2, (r5, 0x2) + 63c6: 7c98 mult r2, r6 + 63c8: 2a54 subi r2, 85 + 63ca: 6080 addu r2, r0 + 63cc: 7589 zexth r6, r2 + 63ce: 1291 lrw r4, 0x20000560 // 6510 + 63d0: 7498 zextb r2, r6 + 63d2: 4e68 lsri r3, r6, 8 + 63d4: a448 st.b r2, (r4, 0x8) + 63d6: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 63d8: a44c st.b r2, (r4, 0xc) + 63da: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 63dc: 310a movi r1, 10 + 63de: 6c1b mov r0, r6 + 63e0: e3ffea24 bsr 0x3828 // 3828 <__udivsi3> + 63e4: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 63e6: 6c9b mov r2, r6 + 63e8: 122b lrw r1, 0x8d6b // 6514 + 63ea: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 63ec: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 63ee: e3ffebc1 bsr 0x3b70 // 3b70 + + Tem_Valve_Ctrl(); + 63f2: e3ffff73 bsr 0x62d8 // 62d8 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 63f6: 8442 ld.b r2, (r4, 0x2) + 63f8: 74c8 zextb r3, r2 + 63fa: 3171 movi r1, 113 + 63fc: 6c0f mov r0, r3 + 63fe: 6805 andn r0, r1 + 6400: 3180 movi r1, 128 + 6402: 6442 cmpne r0, r1 + 6404: 083d bt 0x647e // 647e + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6406: 3270 movi r2, 112 + 6408: 68c8 and r3, r2 + 640a: 3b40 cmpnei r3, 0 + 640c: 0827 bt 0x645a // 645a + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 640e: 8461 ld.b r3, (r4, 0x1) + 6410: 8440 ld.b r2, (r4, 0x0) + 6412: 5b27 subi r1, r3, 2 + 6414: 6449 cmplt r2, r1 + 6416: 0c0c bf 0x642e // 642e + { + Relay_Stop(); //低风速 + 6418: e00006f6 bsr 0x7204 // 7204 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 641c: 117f lrw r3, 0x20000520 // 6518 + 641e: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6420: 8402 ld.b r0, (r4, 0x2) + 6422: 401c lsli r0, r0, 28 + 6424: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 6426: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6428: e3fffbd6 bsr 0x5bd4 // 5bd4 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 642c: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 642e: 5b23 subi r1, r3, 1 + 6430: 644a cmpne r2, r1 + 6432: 0804 bt 0x643a // 643a + Relay_Low(); //低风速 + 6434: e00006da bsr 0x71e8 // 71e8 + 6438: 07f2 br 0x641c // 641c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 643a: 5b22 addi r1, r3, 1 + 643c: 644a cmpne r2, r1 + 643e: 0806 bt 0x644a // 644a + Relay_Mid(); //中风速 + 6440: e00006c6 bsr 0x71cc // 71cc + HT1621.wind_velocity = 1; + 6444: 1175 lrw r3, 0x20000520 // 6518 + 6446: 3201 movi r2, 1 + 6448: 07ec br 0x6420 // 6420 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 644a: 2301 addi r3, 2 + 644c: 648d cmplt r3, r2 + 644e: 0fef bf 0x642c // 642c + Relay_High(); //高风速 + 6450: e00006b0 bsr 0x71b0 // 71b0 + HT1621.wind_velocity = 2; + 6454: 1171 lrw r3, 0x20000520 // 6518 + 6456: 3202 movi r2, 2 + 6458: 07e4 br 0x6420 // 6420 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 645a: 3220 movi r2, 32 + 645c: 648e cmpne r3, r2 + 645e: 0be7 bt 0x642c // 642c + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6460: 8461 ld.b r3, (r4, 0x1) + 6462: 8440 ld.b r2, (r4, 0x0) + 6464: 5b27 subi r1, r3, 2 + 6466: 6449 cmplt r2, r1 + 6468: 0bf4 bt 0x6450 // 6450 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 646a: 5b23 subi r1, r3, 1 + 646c: 644a cmpne r2, r1 + 646e: 0fe9 bf 0x6440 // 6440 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6470: 5b22 addi r1, r3, 1 + 6472: 644a cmpne r2, r1 + 6474: 0fe0 bf 0x6434 // 6434 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 6476: 2301 addi r3, 2 + 6478: 648d cmplt r3, r2 + 647a: 0fd9 bf 0x642c // 642c + 647c: 07ce br 0x6418 // 6418 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 647e: 8521 ld.b r1, (r5, 0x1) + 6480: 3942 cmpnei r1, 2 + 6482: 744e sextb r1, r3 + 6484: 083a bt 0x64f8 // 64f8 + 6486: 39df btsti r1, 31 + 6488: 0c38 bf 0x64f8 // 64f8 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 648a: 310e movi r1, 14 + 648c: 684c and r1, r3 + 648e: 3940 cmpnei r1, 0 + 6490: 0fce bf 0x642c // 642c + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6492: 3170 movi r1, 112 + 6494: 68c4 and r3, r1 + 6496: 3b40 cmpnei r3, 0 + 6498: 0819 bt 0x64ca // 64ca + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 649a: 8461 ld.b r3, (r4, 0x1) + 649c: 8420 ld.b r1, (r4, 0x0) + 649e: 5b07 subi r0, r3, 2 + 64a0: 6405 cmplt r1, r0 + 64a2: 0bbb bt 0x6418 // 6418 + switch(TempCtrl.TemState_Now.fan) + 64a4: 425c lsli r2, r2, 28 + 64a6: 4a5d lsri r2, r2, 29 + 64a8: 3a42 cmpnei r2, 2 + 64aa: 0c09 bf 0x64bc // 64bc + 64ac: 3a43 cmpnei r2, 3 + 64ae: 0c0b bf 0x64c4 // 64c4 + 64b0: 3a41 cmpnei r2, 1 + 64b2: 0bbd bt 0x642c // 642c + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 64b4: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 64b6: 64c6 cmpne r1, r3 + 64b8: 0bba bt 0x642c // 642c + 64ba: 07bd br 0x6434 // 6434 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 64bc: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 64be: 64c6 cmpne r1, r3 + 64c0: 0bb6 bt 0x642c // 642c + 64c2: 07bf br 0x6440 // 6440 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 64c4: 2301 addi r3, 2 + 64c6: 644d cmplt r3, r1 + 64c8: 07c3 br 0x644e // 644e + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 64ca: 3120 movi r1, 32 + 64cc: 644e cmpne r3, r1 + 64ce: 0baf bt 0x642c // 642c + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 64d0: 8461 ld.b r3, (r4, 0x1) + 64d2: 8420 ld.b r1, (r4, 0x0) + 64d4: 5b06 addi r0, r3, 2 + 64d6: 6441 cmplt r0, r1 + 64d8: 0ba0 bt 0x6418 // 6418 + switch(TempCtrl.TemState_Now.fan) + 64da: 425c lsli r2, r2, 28 + 64dc: 4a5d lsri r2, r2, 29 + 64de: 3a42 cmpnei r2, 2 + 64e0: 0c07 bf 0x64ee // 64ee + 64e2: 3a43 cmpnei r2, 3 + 64e4: 0c07 bf 0x64f2 // 64f2 + 64e6: 3a41 cmpnei r2, 1 + 64e8: 0ba2 bt 0x642c // 642c + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 64ea: 2300 addi r3, 1 + 64ec: 07e5 br 0x64b6 // 64b6 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 64ee: 2b00 subi r3, 1 + 64f0: 07e7 br 0x64be // 64be + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 64f2: 2b01 subi r3, 2 + 64f4: 64c5 cmplt r1, r3 + 64f6: 07ac br 0x644e // 644e + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 64f8: 39df btsti r1, 31 + 64fa: 0b99 bt 0x642c // 642c + Relay_Stop(); //风速停 + 64fc: e0000684 bsr 0x7204 // 7204 + 6500: 0796 br 0x642c // 642c + 6502: 0000 bkpt + 6504: 200000b8 .long 0x200000b8 + 6508: 20000228 .long 0x20000228 + 650c: 200004a0 .long 0x200004a0 + 6510: 20000560 .long 0x20000560 + 6514: 00008d6b .long 0x00008d6b + 6518: 20000520 .long 0x20000520 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +0000651c : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 651c: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 651e: 1133 lrw r1, 0x8d93 // 65e8 + 6520: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6522: 1193 lrw r4, 0x20000589 // 65ec + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 6524: e3ffeb26 bsr 0x3b70 // 3b70 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6528: 8460 ld.b r3, (r4, 0x0) + 652a: 3b41 cmpnei r3, 1 + 652c: 11b1 lrw r5, 0x200000b8 // 65f0 + 652e: 083e bt 0x65aa // 65aa + { + Debug_Inf.Tick = SysTick_1ms; + 6530: 9560 ld.w r3, (r5, 0x0) + 6532: 320a movi r2, 10 + 6534: 6090 addu r2, r4 + 6536: 4b28 lsri r1, r3, 8 + 6538: a260 st.b r3, (r2, 0x0) + 653a: a221 st.b r1, (r2, 0x1) + 653c: 4b30 lsri r1, r3, 16 + 653e: 4b78 lsri r3, r3, 24 + 6540: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page < PAGE8ID) + 6542: 8462 ld.b r3, (r4, 0x2) + 6544: 3b07 cmphsi r3, 8 + Debug_Inf.Tick = SysTick_1ms; + 6546: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page < PAGE8ID) + 6548: 0803 bt 0x654e // 654e + { + Debug_Inf.Page++; + 654a: 2300 addi r3, 1 + 654c: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 654e: e3fff8e3 bsr 0x5714 // 5714 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 6552: 8462 ld.b r3, (r4, 0x2) + 6554: 3b42 cmpnei r3, 2 + 6556: 0805 bt 0x6560 // 6560 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 6558: 8405 ld.b r0, (r4, 0x5) + 655a: e3fffcef bsr 0x5f38 // 5f38 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 655e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 6560: 3b41 cmpnei r3, 1 + 6562: 0806 bt 0x656e // 656e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6564: 8424 ld.b r1, (r4, 0x4) + 6566: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6568: e3fffc9a bsr 0x5e9c // 5e9c + 656c: 07f9 br 0x655e // 655e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 656e: 3b43 cmpnei r3, 3 + 6570: 0804 bt 0x6578 // 6578 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6572: 8426 ld.b r1, (r4, 0x6) + 6574: 3003 movi r0, 3 + 6576: 07f9 br 0x6568 // 6568 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 6578: 3b44 cmpnei r3, 4 + 657a: 0804 bt 0x6582 // 6582 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 657c: 8427 ld.b r1, (r4, 0x7) + 657e: 3004 movi r0, 4 + 6580: 07f4 br 0x6568 // 6568 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 6582: 3b45 cmpnei r3, 5 + 6584: 0804 bt 0x658c // 658c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6586: 8423 ld.b r1, (r4, 0x3) + 6588: 3005 movi r0, 5 + 658a: 07ef br 0x6568 // 6568 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 658c: 3b46 cmpnei r3, 6 + 658e: 0804 bt 0x6596 // 6596 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6590: 8428 ld.b r1, (r4, 0x8) + 6592: 3006 movi r0, 6 + 6594: 07ea br 0x6568 // 6568 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 6596: 3b47 cmpnei r3, 7 + 6598: 0804 bt 0x65a0 // 65a0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 659a: 8429 ld.b r1, (r4, 0x9) + 659c: 3007 movi r0, 7 + 659e: 07e5 br 0x6568 // 6568 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 65a0: 3b48 cmpnei r3, 8 + 65a2: 0bde bt 0x655e // 655e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 65a4: 3103 movi r1, 3 + 65a6: 3008 movi r0, 8 + 65a8: 07e0 br 0x6568 // 6568 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 65aa: 1073 lrw r3, 0x20000560 // 65f4 + 65ac: 8358 ld.b r2, (r3, 0x18) + 65ae: 3a41 cmpnei r2, 1 + 65b0: 6d0f mov r4, r3 + 65b2: 0811 bt 0x65d4 // 65d4 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 65b4: 8362 ld.b r3, (r3, 0x2) + 65b6: 74ce sextb r3, r3 + 65b8: 3bdf btsti r3, 31 + 65ba: 0c0d bf 0x65d4 // 65d4 + TemCtrl_Model_Set(); //模式切换 + 65bc: e3fffdf6 bsr 0x61a8 // 61a8 + if(g_eeprom.backlight_en == 0x01) + 65c0: 106e lrw r3, 0x200004a0 // 65f8 + 65c2: 8364 ld.b r3, (r3, 0x4) + 65c4: 3b41 cmpnei r3, 1 + 65c6: 0807 bt 0x65d4 // 65d4 + Controlled_LCD_Backlight(0x01); + 65c8: 3001 movi r0, 1 + 65ca: e3fffbe3 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 65ce: 3001 movi r0, 1 + 65d0: e3fffc4e bsr 0x5e6c // 5e6c + TempCtrl.BackLightTick = SysTick_1ms; + 65d4: 9560 ld.w r3, (r5, 0x0) + 65d6: 4b48 lsri r2, r3, 8 + 65d8: a470 st.b r3, (r4, 0x10) + 65da: a451 st.b r2, (r4, 0x11) + 65dc: 4b50 lsri r2, r3, 16 + 65de: 4b78 lsri r3, r3, 24 + 65e0: a452 st.b r2, (r4, 0x12) + 65e2: a473 st.b r3, (r4, 0x13) +} + 65e4: 07bd br 0x655e // 655e + 65e6: 0000 bkpt + 65e8: 00008d93 .long 0x00008d93 + 65ec: 20000589 .long 0x20000589 + 65f0: 200000b8 .long 0x200000b8 + 65f4: 20000560 .long 0x20000560 + 65f8: 200004a0 .long 0x200004a0 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +000065fc : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 65fc: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 65fe: 1133 lrw r1, 0x8da8 // 66c8 + 6600: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6602: 1193 lrw r4, 0x20000589 // 66cc + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6604: e3ffeab6 bsr 0x3b70 // 3b70 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6608: 8460 ld.b r3, (r4, 0x0) + 660a: 3b41 cmpnei r3, 1 + 660c: 11b1 lrw r5, 0x200000b8 // 66d0 + 660e: 083e bt 0x668a // 668a + { + Debug_Inf.Tick = SysTick_1ms; + 6610: 9560 ld.w r3, (r5, 0x0) + 6612: 320a movi r2, 10 + 6614: 6090 addu r2, r4 + 6616: 4b28 lsri r1, r3, 8 + 6618: a260 st.b r3, (r2, 0x0) + 661a: a221 st.b r1, (r2, 0x1) + 661c: 4b30 lsri r1, r3, 16 + 661e: 4b78 lsri r3, r3, 24 + 6620: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page > PAGE1ID) + 6622: 8462 ld.b r3, (r4, 0x2) + 6624: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 6626: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page > PAGE1ID) + 6628: 0c03 bf 0x662e // 662e + { + Debug_Inf.Page--; + 662a: 2b00 subi r3, 1 + 662c: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 662e: e3fff873 bsr 0x5714 // 5714 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 6632: 8462 ld.b r3, (r4, 0x2) + 6634: 3b42 cmpnei r3, 2 + 6636: 0805 bt 0x6640 // 6640 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 6638: 8405 ld.b r0, (r4, 0x5) + 663a: e3fffc7f bsr 0x5f38 // 5f38 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 663e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 6640: 3b41 cmpnei r3, 1 + 6642: 0806 bt 0x664e // 664e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6644: 8424 ld.b r1, (r4, 0x4) + 6646: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6648: e3fffc2a bsr 0x5e9c // 5e9c + 664c: 07f9 br 0x663e // 663e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 664e: 3b43 cmpnei r3, 3 + 6650: 0804 bt 0x6658 // 6658 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6652: 8426 ld.b r1, (r4, 0x6) + 6654: 3003 movi r0, 3 + 6656: 07f9 br 0x6648 // 6648 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 6658: 3b44 cmpnei r3, 4 + 665a: 0804 bt 0x6662 // 6662 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 665c: 8427 ld.b r1, (r4, 0x7) + 665e: 3004 movi r0, 4 + 6660: 07f4 br 0x6648 // 6648 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 6662: 3b45 cmpnei r3, 5 + 6664: 0804 bt 0x666c // 666c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6666: 8423 ld.b r1, (r4, 0x3) + 6668: 3005 movi r0, 5 + 666a: 07ef br 0x6648 // 6648 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 666c: 3b46 cmpnei r3, 6 + 666e: 0804 bt 0x6676 // 6676 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6670: 8428 ld.b r1, (r4, 0x8) + 6672: 3006 movi r0, 6 + 6674: 07ea br 0x6648 // 6648 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 6676: 3b47 cmpnei r3, 7 + 6678: 0804 bt 0x6680 // 6680 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 667a: 8429 ld.b r1, (r4, 0x9) + 667c: 3007 movi r0, 7 + 667e: 07e5 br 0x6648 // 6648 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 6680: 3b48 cmpnei r3, 8 + 6682: 0bde bt 0x663e // 663e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6684: 3103 movi r1, 3 + 6686: 3008 movi r0, 8 + 6688: 07e0 br 0x6648 // 6648 + if(TempCtrl.CardState == CARDIN) + 668a: 1073 lrw r3, 0x20000560 // 66d4 + 668c: 8358 ld.b r2, (r3, 0x18) + 668e: 3a41 cmpnei r2, 1 + 6690: 6d0f mov r4, r3 + 6692: 0811 bt 0x66b4 // 66b4 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6694: 8362 ld.b r3, (r3, 0x2) + 6696: 74ce sextb r3, r3 + 6698: 3bdf btsti r3, 31 + 669a: 0c0d bf 0x66b4 // 66b4 + TemCtrl_Fan_Set(); //风速切换 + 669c: e3fffdac bsr 0x61f4 // 61f4 + if(g_eeprom.backlight_en == 0x01) + 66a0: 106e lrw r3, 0x200004a0 // 66d8 + 66a2: 8364 ld.b r3, (r3, 0x4) + 66a4: 3b41 cmpnei r3, 1 + 66a6: 0807 bt 0x66b4 // 66b4 + Controlled_LCD_Backlight(0x01); + 66a8: 3001 movi r0, 1 + 66aa: e3fffb73 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 66ae: 3001 movi r0, 1 + 66b0: e3fffbde bsr 0x5e6c // 5e6c + TempCtrl.BackLightTick = SysTick_1ms; + 66b4: 9560 ld.w r3, (r5, 0x0) + 66b6: 4b48 lsri r2, r3, 8 + 66b8: a470 st.b r3, (r4, 0x10) + 66ba: a451 st.b r2, (r4, 0x11) + 66bc: 4b50 lsri r2, r3, 16 + 66be: 4b78 lsri r3, r3, 24 + 66c0: a452 st.b r2, (r4, 0x12) + 66c2: a473 st.b r3, (r4, 0x13) +} + 66c4: 07bd br 0x663e // 663e + 66c6: 0000 bkpt + 66c8: 00008da8 .long 0x00008da8 + 66cc: 20000589 .long 0x20000589 + 66d0: 200000b8 .long 0x200000b8 + 66d4: 20000560 .long 0x20000560 + 66d8: 200004a0 .long 0x200004a0 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +000066dc : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 66dc: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 66de: 113f lrw r1, 0x8dbb // 67d8 + 66e0: 3000 movi r0, 0 + 66e2: e3ffea47 bsr 0x3b70 // 3b70 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 66e6: 117e lrw r3, 0x20000589 // 67dc + 66e8: 8340 ld.b r2, (r3, 0x0) + 66ea: 3a41 cmpnei r2, 1 + 66ec: 11bd lrw r5, 0x200000b8 // 67e0 + 66ee: 0858 bt 0x679e // 679e + { + Debug_Inf.Tick = SysTick_1ms; + 66f0: 9540 ld.w r2, (r5, 0x0) + 66f2: 310a movi r1, 10 + 66f4: 604c addu r1, r3 + 66f6: 4a08 lsri r0, r2, 8 + 66f8: a140 st.b r2, (r1, 0x0) + 66fa: a101 st.b r0, (r1, 0x1) + 66fc: 4a10 lsri r0, r2, 16 + 66fe: 4a58 lsri r2, r2, 24 + 6700: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 6702: 8342 ld.b r2, (r3, 0x2) + 6704: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 6706: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 6708: 080b bt 0x671e // 671e + 670a: 8324 ld.b r1, (r3, 0x4) + 670c: 3901 cmphsi r1, 2 + 670e: 0812 bt 0x6732 // 6732 + { + Debug_Inf.PipeFlag ++; + 6710: 2100 addi r1, 1 + 6712: 7444 zextb r1, r1 + 6714: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6716: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6718: e3fffbc2 bsr 0x5e9c // 5e9c + 671c: 040b br 0x6732 // 6732 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 671e: 3a42 cmpnei r2, 2 + 6720: 080a bt 0x6734 // 6734 + 6722: 8305 ld.b r0, (r3, 0x5) + 6724: 3811 cmphsi r0, 18 + 6726: 0806 bt 0x6732 // 6732 + Debug_Inf.TempDiff++; + 6728: 2000 addi r0, 1 + 672a: 7400 zextb r0, r0 + 672c: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 672e: e3fffc05 bsr 0x5f38 // 5f38 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 6732: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 6734: 3a43 cmpnei r2, 3 + 6736: 0806 bt 0x6742 // 6742 + Debug_Inf.BackLight_En = 0x01; + 6738: 3201 movi r2, 1 + 673a: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 673c: 3101 movi r1, 1 + 673e: 3003 movi r0, 3 + 6740: 07ec br 0x6718 // 6718 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 6742: 3a44 cmpnei r2, 4 + 6744: 0809 bt 0x6756 // 6756 + 6746: 8327 ld.b r1, (r3, 0x7) + 6748: 3901 cmphsi r1, 2 + 674a: 0bf4 bt 0x6732 // 6732 + Debug_Inf.KSens_Level++; + 674c: 2100 addi r1, 1 + 674e: 7444 zextb r1, r1 + 6750: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6752: 3004 movi r0, 4 + 6754: 07e2 br 0x6718 // 6718 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 6756: 3a45 cmpnei r2, 5 + 6758: 080a bt 0x676c // 676c + 675a: 8323 ld.b r1, (r3, 0x3) + 675c: 32ff movi r2, 255 + 675e: 6486 cmpne r1, r2 + 6760: 0fe9 bf 0x6732 // 6732 + Debug_Inf.DevAddr++; //刷新地址 + 6762: 2100 addi r1, 1 + 6764: 7444 zextb r1, r1 + 6766: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6768: 3005 movi r0, 5 + 676a: 07d7 br 0x6718 // 6718 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 676c: 3a46 cmpnei r2, 6 + 676e: 0809 bt 0x6780 // 6780 + 6770: 8348 ld.b r2, (r3, 0x8) + 6772: 3a40 cmpnei r2, 0 + 6774: 0bdf bt 0x6732 // 6732 + Debug_Inf.TempDisplay++; + 6776: 3201 movi r2, 1 + 6778: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 677a: 3101 movi r1, 1 + 677c: 3006 movi r0, 6 + 677e: 07cd br 0x6718 // 6718 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 6780: 3a47 cmpnei r2, 7 + 6782: 0809 bt 0x6794 // 6794 + 6784: 8329 ld.b r1, (r3, 0x9) + 6786: 3901 cmphsi r1, 2 + 6788: 0bd5 bt 0x6732 // 6732 + Debug_Inf.Language_Selection++; + 678a: 2100 addi r1, 1 + 678c: 7444 zextb r1, r1 + 678e: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6790: 3007 movi r0, 7 + 6792: 07c3 br 0x6718 // 6718 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 6794: 3a48 cmpnei r2, 8 + 6796: 0bce bt 0x6732 // 6732 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6798: 3103 movi r1, 3 + 679a: 3008 movi r0, 8 + 679c: 07be br 0x6718 // 6718 + if(TempCtrl.CardState == CARDIN) + 679e: 1092 lrw r4, 0x20000560 // 67e4 + 67a0: 8478 ld.b r3, (r4, 0x18) + 67a2: 3b41 cmpnei r3, 1 + 67a4: 0811 bt 0x67c6 // 67c6 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 67a6: 8462 ld.b r3, (r4, 0x2) + 67a8: 74ce sextb r3, r3 + 67aa: 3bdf btsti r3, 31 + 67ac: 0c0d bf 0x67c6 // 67c6 + TemCtrl_Temperature_Add(); //设置温度+ + 67ae: e3fffd63 bsr 0x6274 // 6274 + if(g_eeprom.backlight_en == 0x01) + 67b2: 106e lrw r3, 0x200004a0 // 67e8 + 67b4: 8364 ld.b r3, (r3, 0x4) + 67b6: 3b41 cmpnei r3, 1 + 67b8: 0807 bt 0x67c6 // 67c6 + Controlled_LCD_Backlight(0x01); + 67ba: 3001 movi r0, 1 + 67bc: e3fffaea bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 67c0: 3001 movi r0, 1 + 67c2: e3fffb55 bsr 0x5e6c // 5e6c + TempCtrl.BackLightTick = SysTick_1ms; + 67c6: 9560 ld.w r3, (r5, 0x0) + 67c8: 4b48 lsri r2, r3, 8 + 67ca: a470 st.b r3, (r4, 0x10) + 67cc: a451 st.b r2, (r4, 0x11) + 67ce: 4b50 lsri r2, r3, 16 + 67d0: 4b78 lsri r3, r3, 24 + 67d2: a452 st.b r2, (r4, 0x12) + 67d4: a473 st.b r3, (r4, 0x13) +} + 67d6: 07ae br 0x6732 // 6732 + 67d8: 00008dbb .long 0x00008dbb + 67dc: 20000589 .long 0x20000589 + 67e0: 200000b8 .long 0x200000b8 + 67e4: 20000560 .long 0x20000560 + 67e8: 200004a0 .long 0x200004a0 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +000067ec : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 67ec: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 67ee: 109a lrw r4, 0x20000589 // 6854 + 67f0: 8460 ld.b r3, (r4, 0x0) + 67f2: 3b40 cmpnei r3, 0 + 67f4: 082e bt 0x6850 // 6850 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 67f6: 8461 ld.b r3, (r4, 0x1) + 67f8: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 67fa: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 67fc: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 67fe: 0829 bt 0x6850 // 6850 + 6800: 1076 lrw r3, 0x20000560 // 6858 + 6802: 8362 ld.b r3, (r3, 0x2) + 6804: 74ce sextb r3, r3 + 6806: 3bdf btsti r3, 31 + 6808: 0824 bt 0x6850 // 6850 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 680a: 3000 movi r0, 0 + 680c: 1034 lrw r1, 0x8dd2 // 685c + 680e: e3ffe9b1 bsr 0x3b70 // 3b70 + Debug_Inf.Tick = SysTick_1ms; + 6812: 1074 lrw r3, 0x200000b8 // 6860 + 6814: 320a movi r2, 10 + 6816: 9360 ld.w r3, (r3, 0x0) + 6818: 6090 addu r2, r4 + 681a: 4b28 lsri r1, r3, 8 + 681c: a260 st.b r3, (r2, 0x0) + 681e: a221 st.b r1, (r2, 0x1) + 6820: 4b30 lsri r1, r3, 16 + 6822: 4b78 lsri r3, r3, 24 + 6824: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 6826: 3300 movi r3, 0 + 6828: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 682a: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 682c: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 682e: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6830: a462 st.b r3, (r4, 0x2) + //Debug_Inf.Renetwork = 0; + + HT1621_Clear(); + 6832: e3fff771 bsr 0x5714 // 5714 + Controlled_LCD_Backlight(0x01); + 6836: 3001 movi r0, 1 + 6838: e3fffaac bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 683c: 3001 movi r0, 1 + 683e: e3fffb17 bsr 0x5e6c // 5e6c + Controlled_Buzzer(0x01); + 6842: 3001 movi r0, 1 + 6844: e3fffa82 bsr 0x5d48 // 5d48 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 6848: 8424 ld.b r1, (r4, 0x4) + 684a: 3001 movi r0, 1 + 684c: e3fffb28 bsr 0x5e9c // 5e9c + + } + } + +} + 6850: 1491 pop r4, r15 + 6852: 0000 bkpt + 6854: 20000589 .long 0x20000589 + 6858: 20000560 .long 0x20000560 + 685c: 00008dd2 .long 0x00008dd2 + 6860: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00006864 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 6864: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 6866: 113f lrw r1, 0x8ddb // 6960 + 6868: 3000 movi r0, 0 + 686a: e3ffe983 bsr 0x3b70 // 3b70 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 686e: 117e lrw r3, 0x20000589 // 6964 + 6870: 8340 ld.b r2, (r3, 0x0) + 6872: 3a41 cmpnei r2, 1 + 6874: 11bd lrw r5, 0x200000b8 // 6968 + 6876: 0857 bt 0x6924 // 6924 + { + Debug_Inf.Tick = SysTick_1ms; + 6878: 9540 ld.w r2, (r5, 0x0) + 687a: 310a movi r1, 10 + 687c: 604c addu r1, r3 + 687e: 4a08 lsri r0, r2, 8 + 6880: a140 st.b r2, (r1, 0x0) + 6882: a101 st.b r0, (r1, 0x1) + 6884: 4a10 lsri r0, r2, 16 + 6886: 4a58 lsri r2, r2, 24 + 6888: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 688a: 8342 ld.b r2, (r3, 0x2) + 688c: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 688e: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 6890: 080b bt 0x68a6 // 68a6 + 6892: 8324 ld.b r1, (r3, 0x4) + 6894: 3940 cmpnei r1, 0 + 6896: 0c12 bf 0x68ba // 68ba + { + Debug_Inf.PipeFlag --; + 6898: 2900 subi r1, 1 + 689a: 7444 zextb r1, r1 + 689c: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 689e: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 68a0: e3fffafe bsr 0x5e9c // 5e9c + 68a4: 040b br 0x68ba // 68ba + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 68a6: 3a42 cmpnei r2, 2 + 68a8: 080a bt 0x68bc // 68bc + 68aa: 8305 ld.b r0, (r3, 0x5) + 68ac: 3840 cmpnei r0, 0 + 68ae: 0c06 bf 0x68ba // 68ba + Debug_Inf.TempDiff--; + 68b0: 2800 subi r0, 1 + 68b2: 7400 zextb r0, r0 + 68b4: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 68b6: e3fffb41 bsr 0x5f38 // 5f38 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 68ba: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 68bc: 3a43 cmpnei r2, 3 + 68be: 0806 bt 0x68ca // 68ca + Debug_Inf.BackLight_En = 0x00; + 68c0: 3200 movi r2, 0 + 68c2: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 68c4: 3100 movi r1, 0 + 68c6: 3003 movi r0, 3 + 68c8: 07ec br 0x68a0 // 68a0 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 68ca: 3a44 cmpnei r2, 4 + 68cc: 0809 bt 0x68de // 68de + 68ce: 8327 ld.b r1, (r3, 0x7) + 68d0: 3940 cmpnei r1, 0 + 68d2: 0ff4 bf 0x68ba // 68ba + Debug_Inf.KSens_Level--; + 68d4: 2900 subi r1, 1 + 68d6: 7444 zextb r1, r1 + 68d8: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 68da: 3004 movi r0, 4 + 68dc: 07e2 br 0x68a0 // 68a0 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 68de: 3a45 cmpnei r2, 5 + 68e0: 0809 bt 0x68f2 // 68f2 + 68e2: 8323 ld.b r1, (r3, 0x3) + 68e4: 3940 cmpnei r1, 0 + 68e6: 0fea bf 0x68ba // 68ba + Debug_Inf.DevAddr--; //刷新地址 + 68e8: 2900 subi r1, 1 + 68ea: 7444 zextb r1, r1 + 68ec: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 68ee: 3005 movi r0, 5 + 68f0: 07d8 br 0x68a0 // 68a0 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 68f2: 3a46 cmpnei r2, 6 + 68f4: 0809 bt 0x6906 // 6906 + 68f6: 8328 ld.b r1, (r3, 0x8) + 68f8: 3940 cmpnei r1, 0 + 68fa: 0fe0 bf 0x68ba // 68ba + Debug_Inf.TempDisplay--; + 68fc: 2900 subi r1, 1 + 68fe: 7444 zextb r1, r1 + 6900: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6902: 3006 movi r0, 6 + 6904: 07ce br 0x68a0 // 68a0 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 6906: 3a47 cmpnei r2, 7 + 6908: 0809 bt 0x691a // 691a + 690a: 8329 ld.b r1, (r3, 0x9) + 690c: 3940 cmpnei r1, 0 + 690e: 0fd6 bf 0x68ba // 68ba + Debug_Inf.Language_Selection--; + 6910: 2900 subi r1, 1 + 6912: 7444 zextb r1, r1 + 6914: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6916: 3007 movi r0, 7 + 6918: 07c4 br 0x68a0 // 68a0 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 691a: 3a48 cmpnei r2, 8 + 691c: 0bcf bt 0x68ba // 68ba + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 691e: 3103 movi r1, 3 + 6920: 3008 movi r0, 8 + 6922: 07bf br 0x68a0 // 68a0 + if(TempCtrl.CardState == CARDIN) + 6924: 1092 lrw r4, 0x20000560 // 696c + 6926: 8478 ld.b r3, (r4, 0x18) + 6928: 3b41 cmpnei r3, 1 + 692a: 0811 bt 0x694c // 694c + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 692c: 8462 ld.b r3, (r4, 0x2) + 692e: 74ce sextb r3, r3 + 6930: 3bdf btsti r3, 31 + 6932: 0c0d bf 0x694c // 694c + TemCtrl_Temperature_Dec(); //设置温度- + 6934: e3fffc88 bsr 0x6244 // 6244 + if(g_eeprom.backlight_en == 0x01) + 6938: 106e lrw r3, 0x200004a0 // 6970 + 693a: 8364 ld.b r3, (r3, 0x4) + 693c: 3b41 cmpnei r3, 1 + 693e: 0807 bt 0x694c // 694c + Controlled_LCD_Backlight(0x01); + 6940: 3001 movi r0, 1 + 6942: e3fffa27 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 6946: 3001 movi r0, 1 + 6948: e3fffa92 bsr 0x5e6c // 5e6c + TempCtrl.BackLightTick = SysTick_1ms; + 694c: 9560 ld.w r3, (r5, 0x0) + 694e: 4b48 lsri r2, r3, 8 + 6950: a470 st.b r3, (r4, 0x10) + 6952: a451 st.b r2, (r4, 0x11) + 6954: 4b50 lsri r2, r3, 16 + 6956: 4b78 lsri r3, r3, 24 + 6958: a452 st.b r2, (r4, 0x12) + 695a: a473 st.b r3, (r4, 0x13) +} + 695c: 07af br 0x68ba // 68ba + 695e: 0000 bkpt + 6960: 00008ddb .long 0x00008ddb + 6964: 20000589 .long 0x20000589 + 6968: 200000b8 .long 0x200000b8 + 696c: 20000560 .long 0x20000560 + 6970: 200004a0 .long 0x200004a0 + +Disassembly of section .text.KEY4_Long_Press: + +00006974 : + +void KEY4_Long_Press(void) +{ + 6974: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 6976: 109a lrw r4, 0x20000589 // 69dc + 6978: 8460 ld.b r3, (r4, 0x0) + 697a: 3b40 cmpnei r3, 0 + 697c: 082e bt 0x69d8 // 69d8 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 697e: 8461 ld.b r3, (r4, 0x1) + 6980: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6982: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 6984: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6986: 0829 bt 0x69d8 // 69d8 + 6988: 1076 lrw r3, 0x20000560 // 69e0 + 698a: 8362 ld.b r3, (r3, 0x2) + 698c: 74ce sextb r3, r3 + 698e: 3bdf btsti r3, 31 + 6990: 0824 bt 0x69d8 // 69d8 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 6992: 1035 lrw r1, 0x8dd2 // 69e4 + 6994: 3000 movi r0, 0 + 6996: e3ffe8ed bsr 0x3b70 // 3b70 + Debug_Inf.Tick = SysTick_1ms; + 699a: 1074 lrw r3, 0x200000b8 // 69e8 + 699c: 320a movi r2, 10 + 699e: 9360 ld.w r3, (r3, 0x0) + 69a0: 6090 addu r2, r4 + 69a2: 4b28 lsri r1, r3, 8 + 69a4: a260 st.b r3, (r2, 0x0) + 69a6: a221 st.b r1, (r2, 0x1) + 69a8: 4b30 lsri r1, r3, 16 + 69aa: 4b78 lsri r3, r3, 24 + 69ac: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 69ae: 3300 movi r3, 0 + 69b0: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 69b2: 3001 movi r0, 1 + Debug_Inf.State = 0x01; + 69b4: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 69b6: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 69b8: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 69ba: a462 st.b r3, (r4, 0x2) + Controlled_LCD_Backlight(0x01); + 69bc: e3fff9ea bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 69c0: 3001 movi r0, 1 + 69c2: e3fffa55 bsr 0x5e6c // 5e6c + HT1621_Clear(); + 69c6: e3fff6a7 bsr 0x5714 // 5714 + Controlled_Buzzer(0x01); + 69ca: 3001 movi r0, 1 + 69cc: e3fff9be bsr 0x5d48 // 5d48 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 69d0: 8424 ld.b r1, (r4, 0x4) + 69d2: 3001 movi r0, 1 + 69d4: e3fffa64 bsr 0x5e9c // 5e9c + + } + } +} + 69d8: 1491 pop r4, r15 + 69da: 0000 bkpt + 69dc: 20000589 .long 0x20000589 + 69e0: 20000560 .long 0x20000560 + 69e4: 00008dd2 .long 0x00008dd2 + 69e8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +000069ec : + + +void KEY5_OnOff_Press_Fun(void) +{ + 69ec: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 69ee: 103c lrw r1, 0x8df2 // 6a5c + 69f0: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 69f2: 109c lrw r4, 0x20000589 // 6a60 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 69f4: e3ffe8be bsr 0x3b70 // 3b70 + if(Debug_Inf.State == 0x00) //正常模式 + 69f8: 8460 ld.b r3, (r4, 0x0) + 69fa: 3b40 cmpnei r3, 0 + 69fc: 081b bt 0x6a32 // 6a32 + { + if(TempCtrl.CardState == CARDIN) + 69fe: 109a lrw r4, 0x20000560 // 6a64 + 6a00: 8478 ld.b r3, (r4, 0x18) + 6a02: 3b41 cmpnei r3, 1 + 6a04: 080d bt 0x6a1e // 6a1e + { + TemCtrl_OnOff_Set(); + 6a06: e3fffc4f bsr 0x62a4 // 62a4 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 6a0a: 1078 lrw r3, 0x200000b8 // 6a68 + 6a0c: 9360 ld.w r3, (r3, 0x0) + 6a0e: 4b48 lsri r2, r3, 8 + 6a10: a470 st.b r3, (r4, 0x10) + 6a12: a451 st.b r2, (r4, 0x11) + 6a14: 4b50 lsri r2, r3, 16 + 6a16: 4b78 lsri r3, r3, 24 + 6a18: a452 st.b r2, (r4, 0x12) + 6a1a: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 6a1c: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 6a1e: 3001 movi r0, 1 + 6a20: e0000028 bsr 0x6a70 // 6a70 + Controlled_LCD_Backlight(1); + 6a24: 3001 movi r0, 1 + 6a26: e3fff9b5 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(1); + 6a2a: 3001 movi r0, 1 + 6a2c: e3fffa20 bsr 0x5e6c // 5e6c + 6a30: 07ed br 0x6a0a // 6a0a + else if(Debug_Inf.State == 0x01) //设置模式 + 6a32: 3b41 cmpnei r3, 1 + 6a34: 0bf4 bt 0x6a1c // 6a1c + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 6a36: 102e lrw r1, 0x8e07 // 6a6c + 6a38: 3000 movi r0, 0 + 6a3a: e3ffe89b bsr 0x3b70 // 3b70 + Debug_Inf.State = 0x00; + 6a3e: 3300 movi r3, 0 + 6a40: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6a42: 3301 movi r3, 1 + 6a44: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 6a46: e3fff667 bsr 0x5714 // 5714 + Controlled_LCD_Backlight(0x00); + 6a4a: 3000 movi r0, 0 + 6a4c: e3fff9a2 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x00); + 6a50: 3000 movi r0, 0 + 6a52: e3fffa0d bsr 0x5e6c // 5e6c + Dev_SaveData(); + 6a56: e0000303 bsr 0x705c // 705c +} + 6a5a: 07e1 br 0x6a1c // 6a1c + 6a5c: 00008df2 .long 0x00008df2 + 6a60: 20000589 .long 0x20000589 + 6a64: 20000560 .long 0x20000560 + 6a68: 200000b8 .long 0x200000b8 + 6a6c: 00008e07 .long 0x00008e07 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00006a70 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 6a70: 14d1 push r4, r15 + if(state == TEMP_ON) + 6a72: 3841 cmpnei r0, 1 + 6a74: 0821 bt 0x6ab6 // 6ab6 + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 6a76: 1072 lrw r3, 0x20000589 // 6abc + 6a78: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 6a7a: 1092 lrw r4, 0x20000560 // 6ac0 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 6a7c: e3fff914 bsr 0x5ca4 // 5ca4 + Control_Mode(TempCtrl.TemState_Now.mode); + 6a80: 8402 ld.b r0, (r4, 0x2) + 6a82: 4019 lsli r0, r0, 25 + 6a84: 481d lsri r0, r0, 29 + 6a86: e3fff785 bsr 0x5990 // 5990 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6a8a: 8402 ld.b r0, (r4, 0x2) + 6a8c: 401c lsli r0, r0, 28 + 6a8e: 481d lsri r0, r0, 29 + 6a90: e3fff8a2 bsr 0x5bd4 // 5bd4 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6a94: 8401 ld.b r0, (r4, 0x1) + 6a96: 3840 cmpnei r0, 0 + 6a98: 0c0c bf 0x6ab0 // 6ab0 + 6a9a: 330a movi r3, 10 + 6a9c: 7c0c mult r0, r3 + 6a9e: e3fff6a9 bsr 0x57f0 // 57f0 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 6aa2: 8400 ld.b r0, (r4, 0x0) + 6aa4: 330a movi r3, 10 + 6aa6: 7c0c mult r0, r3 + 6aa8: 7401 zexth r0, r0 + 6aaa: e3fff70b bsr 0x58c0 // 58c0 + } + else + { + HT1621_Clear(); + } +} + 6aae: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6ab0: 30a0 movi r0, 160 + 6ab2: 4001 lsli r0, r0, 1 + 6ab4: 07f5 br 0x6a9e // 6a9e + HT1621_Clear(); + 6ab6: e3fff62f bsr 0x5714 // 5714 +} + 6aba: 07fa br 0x6aae // 6aae + 6abc: 20000589 .long 0x20000589 + 6ac0: 20000560 .long 0x20000560 + +Disassembly of section .text.DisPlay_Init: + +00006ac4 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 6ac4: 14d0 push r15 + HT1621_ALLON(); + 6ac6: e3fff64f bsr 0x5764 // 5764 + + delay_nms(5000); + 6aca: 1005 lrw r0, 0x1388 // 6adc + 6acc: e3ffe0d8 bsr 0x2c7c // 2c7c + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6ad0: 1064 lrw r3, 0x20000560 // 6ae0 + 6ad2: 8302 ld.b r0, (r3, 0x2) + 6ad4: 4807 lsri r0, r0, 7 + 6ad6: e3ffffcd bsr 0x6a70 // 6a70 + +} + 6ada: 1490 pop r15 + 6adc: 00001388 .long 0x00001388 + 6ae0: 20000560 .long 0x20000560 + +Disassembly of section .text.Data_Resend: + +00006ae4 : + +void Data_Resend(void){ //2024-12-15 + 6ae4: 14d4 push r4-r7, r15 + + if(g_eeprom.dev_port == ACTIVE_PORT) + 6ae6: 1162 lrw r3, 0x200004a0 // 6b6c + 6ae8: 8367 ld.b r3, (r3, 0x7) + 6aea: 3b42 cmpnei r3, 2 + 6aec: 083a bt 0x6b60 // 6b60 + { + if((TempCtrl.ASend_Flag != 0x00) && (SysTick_1ms - TempCtrl.SendTick > 50 + rand()%20)) + 6aee: 11a1 lrw r5, 0x20000560 // 6b70 + 6af0: 857f ld.b r3, (r5, 0x1f) + 6af2: 3b40 cmpnei r3, 0 + 6af4: 0c36 bf 0x6b60 // 6b60 + 6af6: 3420 movi r4, 32 + 6af8: 6114 addu r4, r5 + 6afa: 8442 ld.b r2, (r4, 0x2) + 6afc: 8461 ld.b r3, (r4, 0x1) + 6afe: 4248 lsli r2, r2, 8 + 6b00: 6c8c or r2, r3 + 6b02: 8463 ld.b r3, (r4, 0x3) + 6b04: 4370 lsli r3, r3, 16 + 6b06: 6c8c or r2, r3 + 6b08: 8464 ld.b r3, (r4, 0x4) + 6b0a: 10db lrw r6, 0x200000b8 // 6b74 + 6b0c: 4378 lsli r3, r3, 24 + 6b0e: 9620 ld.w r1, (r6, 0x0) + 6b10: 6cc8 or r3, r2 + 6b12: 59ed subu r7, r1, r3 + 6b14: e3ffd744 bsr 0x199c // 199c <__GI_rand> + 6b18: 3114 movi r1, 20 + 6b1a: e3ffe699 bsr 0x384c // 384c <__modsi3> + 6b1e: 2031 addi r0, 50 + 6b20: 65c0 cmphs r0, r7 + 6b22: 081f bt 0x6b60 // 6b60 + { + TempCtrl.SendTick = SysTick_1ms; + 6b24: 9660 ld.w r3, (r6, 0x0) + 6b26: 3221 movi r2, 33 + 6b28: 6094 addu r2, r5 + 6b2a: 4b28 lsri r1, r3, 8 + 6b2c: a260 st.b r3, (r2, 0x0) + 6b2e: a221 st.b r1, (r2, 0x1) + 6b30: 4b30 lsri r1, r3, 16 + 6b32: 4b78 lsri r3, r3, 24 + 6b34: a222 st.b r1, (r2, 0x2) + 6b36: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 6b38: 9660 ld.w r3, (r6, 0x0) + 6b3a: 3225 movi r2, 37 + 6b3c: 6094 addu r2, r5 + 6b3e: 4b28 lsri r1, r3, 8 + 6b40: a260 st.b r3, (r2, 0x0) + 6b42: a221 st.b r1, (r2, 0x1) + 6b44: 4b30 lsri r1, r3, 16 + 6b46: 4b78 lsri r3, r3, 24 + 6b48: a263 st.b r3, (r2, 0x3) + if(TempCtrl.SendCnt < 4) + 6b4a: 8460 ld.b r3, (r4, 0x0) + 6b4c: 3b03 cmphsi r3, 4 + TempCtrl.Temp_SendTick = SysTick_1ms; + 6b4e: a222 st.b r1, (r2, 0x2) + if(TempCtrl.SendCnt < 4) + 6b50: 0809 bt 0x6b62 // 6b62 + { + TempCtrl.SendCnt++; + 6b52: 2300 addi r3, 1 + 6b54: a460 st.b r3, (r4, 0x0) + Rs485AskCycleSend(); + 6b56: e000046d bsr 0x7430 // 7430 + else + { + TempCtrl.SendCnt = 0x00; + TempCtrl.ASend_Flag = 0x00; + } + g_uart[UART_2].BusState = 0x00; + 6b5a: 1068 lrw r3, 0x2000043d // 6b78 + 6b5c: 3200 movi r2, 0 + 6b5e: a340 st.b r2, (r3, 0x0) + } + } +} + 6b60: 1494 pop r4-r7, r15 + TempCtrl.SendCnt = 0x00; + 6b62: 3300 movi r3, 0 + 6b64: a460 st.b r3, (r4, 0x0) + TempCtrl.ASend_Flag = 0x00; + 6b66: a57f st.b r3, (r5, 0x1f) + 6b68: 07f9 br 0x6b5a // 6b5a + 6b6a: 0000 bkpt + 6b6c: 200004a0 .long 0x200004a0 + 6b70: 20000560 .long 0x20000560 + 6b74: 200000b8 .long 0x200000b8 + 6b78: 2000043d .long 0x2000043d + +Disassembly of section .text.Switch_Report_Task: + +00006b7c : + +void Switch_Report_Task(void){ //2024-12-15 + 6b7c: 14d2 push r4-r5, r15 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 6b7e: 116b lrw r3, 0x200004a0 // 6c28 + 6b80: 8367 ld.b r3, (r3, 0x7) + 6b82: 3b42 cmpnei r3, 2 + 6b84: 081d bt 0x6bbe // 6bbe + + switch (g_uart[UART_2].BusState) { + 6b86: 116a lrw r3, 0x2000043d // 6c2c + 6b88: 8340 ld.b r2, (r3, 0x0) + 6b8a: 3a41 cmpnei r2, 1 + 6b8c: 0c1a bf 0x6bc0 // 6bc0 + 6b8e: 3a40 cmpnei r2, 0 + 6b90: 0c05 bf 0x6b9a // 6b9a + 6b92: 3a42 cmpnei r2, 2 + 6b94: 0c07 bf 0x6ba2 // 6ba2 + case 0x02: // + Data_Resend(); + break; + + default: + g_uart[UART_2].BusState = 0x00; + 6b96: 3200 movi r2, 0 + 6b98: 0445 br 0x6c22 // 6c22 + if (g_uart[UART_2].Receiving == 0x00) { + 6b9a: 1146 lrw r2, 0x2000043c // 6c30 + 6b9c: 8240 ld.b r2, (r2, 0x0) + 6b9e: 3a40 cmpnei r2, 0 + 6ba0: 0804 bt 0x6ba8 // 6ba8 + Data_Resend(); + 6ba2: e3ffffa1 bsr 0x6ae4 // 6ae4 + break; + 6ba6: 040c br 0x6bbe // 6bbe + g_uart[UART_2].BusState = 0x01; + 6ba8: 3201 movi r2, 1 + 6baa: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6bac: 1142 lrw r2, 0x200000b8 // 6c34 + 6bae: 9240 ld.w r2, (r2, 0x0) + 6bb0: 4a28 lsri r1, r2, 8 + 6bb2: a34b st.b r2, (r3, 0xb) + 6bb4: a32c st.b r1, (r3, 0xc) + 6bb6: 4a30 lsri r1, r2, 16 + 6bb8: 4a58 lsri r2, r2, 24 + 6bba: a32d st.b r1, (r3, 0xd) + 6bbc: a34e st.b r2, (r3, 0xe) + break; + } +} + 6bbe: 1492 pop r4-r5, r15 + if (SysTick_1ms - g_uart[UART_2].BusbusyTimeout >= 100) { //超时丢弃 + 6bc0: 320b movi r2, 11 + 6bc2: 608c addu r2, r3 + 6bc4: 830c ld.b r0, (r3, 0xc) + 6bc6: 8220 ld.b r1, (r2, 0x0) + 6bc8: 4008 lsli r0, r0, 8 + 6bca: 6c04 or r0, r1 + 6bcc: 832d ld.b r1, (r3, 0xd) + 6bce: 4130 lsli r1, r1, 16 + 6bd0: 6c04 or r0, r1 + 6bd2: 832e ld.b r1, (r3, 0xe) + 6bd4: 1098 lrw r4, 0x200000b8 // 6c34 + 6bd6: 4138 lsli r1, r1, 24 + 6bd8: 6c40 or r1, r0 + 6bda: 94a0 ld.w r5, (r4, 0x0) + 6bdc: 6146 subu r5, r1 + 6bde: 3163 movi r1, 99 + 6be0: 6544 cmphs r1, r5 + 6be2: 0813 bt 0x6c08 // 6c08 + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6be4: 9420 ld.w r1, (r4, 0x0) + 6be6: 4908 lsri r0, r1, 8 + 6be8: a220 st.b r1, (r2, 0x0) + 6bea: a201 st.b r0, (r2, 0x1) + 6bec: 4910 lsri r0, r1, 16 + 6bee: 4938 lsri r1, r1, 24 + 6bf0: a223 st.b r1, (r2, 0x3) + 6bf2: a202 st.b r0, (r2, 0x2) + g_uart[UART_2].BusState = 0x00; + 6bf4: 3200 movi r2, 0 + 6bf6: a340 st.b r2, (r3, 0x0) + TempCtrl.SendCnt = 0x00; + 6bf8: 3220 movi r2, 32 + 6bfa: 1070 lrw r3, 0x20000560 // 6c38 + 6bfc: 608c addu r2, r3 + 6bfe: 3100 movi r1, 0 + 6c00: a220 st.b r1, (r2, 0x0) + TempCtrl.ASend_Flag = 0x00; + 6c02: 3200 movi r2, 0 + 6c04: a35f st.b r2, (r3, 0x1f) + 6c06: 07dc br 0x6bbe // 6bbe + }else if(g_uart[UART_2].Receiving == 0x00) //100ms内,空闲发送 + 6c08: 102a lrw r1, 0x2000043c // 6c30 + 6c0a: 8120 ld.b r1, (r1, 0x0) + 6c0c: 3940 cmpnei r1, 0 + 6c0e: 0bd8 bt 0x6bbe // 6bbe + g_uart[UART_2].BusbusyTimeout = SysTick_1ms; + 6c10: 9420 ld.w r1, (r4, 0x0) + 6c12: 4908 lsri r0, r1, 8 + 6c14: a220 st.b r1, (r2, 0x0) + 6c16: a201 st.b r0, (r2, 0x1) + 6c18: 4910 lsri r0, r1, 16 + 6c1a: 4938 lsri r1, r1, 24 + 6c1c: a202 st.b r0, (r2, 0x2) + 6c1e: a223 st.b r1, (r2, 0x3) + g_uart[UART_2].BusState = 0x02; + 6c20: 3202 movi r2, 2 + g_uart[UART_2].BusState = 0x00; + 6c22: a340 st.b r2, (r3, 0x0) + break; + 6c24: 07cd br 0x6bbe // 6bbe + 6c26: 0000 bkpt + 6c28: 200004a0 .long 0x200004a0 + 6c2c: 2000043d .long 0x2000043d + 6c30: 2000043c .long 0x2000043c + 6c34: 200000b8 .long 0x200000b8 + 6c38: 20000560 .long 0x20000560 + +Disassembly of section .text.DisPlay_Task: + +00006c3c : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 6c3c: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 6c3e: 016b lrw r3, 0x20000589 // 6f8c + 6c40: 8360 ld.b r3, (r3, 0x0) + 6c42: 3b40 cmpnei r3, 0 + 6c44: 0c02 bf 0x6c48 // 6c48 + 6c46: 05e1 br 0x7008 // 7008 + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 6c48: 018d lrw r4, 0x20000560 // 6f90 + 6c4a: 8451 ld.b r2, (r4, 0x11) + 6c4c: 8470 ld.b r3, (r4, 0x10) + 6c4e: 4248 lsli r2, r2, 8 + 6c50: 6c8c or r2, r3 + 6c52: 8472 ld.b r3, (r4, 0x12) + 6c54: 4370 lsli r3, r3, 16 + 6c56: 6c8c or r2, r3 + 6c58: 8473 ld.b r3, (r4, 0x13) + 6c5a: 01b0 lrw r5, 0x200000b8 // 6f94 + 6c5c: 4378 lsli r3, r3, 24 + 6c5e: 6cc8 or r3, r2 + 6c60: 9520 ld.w r1, (r5, 0x0) + 6c62: 604e subu r1, r3 + 6c64: 0152 lrw r2, 0xbb8 // 6f98 + 6c66: 6448 cmphs r2, r1 + 6c68: 08ae bt 0x6dc4 // 6dc4 + 6c6a: 8458 ld.b r2, (r4, 0x18) + 6c6c: 3a40 cmpnei r2, 0 + 6c6e: 08ab bt 0x6dc4 // 6dc4 + { + TempCtrl.BackLightTick = SysTick_1ms; + 6c70: 9560 ld.w r3, (r5, 0x0) + 6c72: 4b48 lsri r2, r3, 8 + 6c74: a470 st.b r3, (r4, 0x10) + 6c76: a451 st.b r2, (r4, 0x11) + 6c78: 4b50 lsri r2, r3, 16 + 6c7a: 4b78 lsri r3, r3, 24 + 6c7c: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 6c7e: 3300 movi r3, 0 + 6c80: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6c82: 8462 ld.b r3, (r4, 0x2) + 6c84: 74ce sextb r3, r3 + 6c86: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6c88: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6c8a: 0803 bt 0x6c90 // 6c90 + { + HT1621_Clear(); + 6c8c: e3fff544 bsr 0x5714 // 5714 + } + //关背光 + Controlled_LCD_Backlight(0); + 6c90: 3000 movi r0, 0 + 6c92: e3fff87f bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x00); + 6c96: 3000 movi r0, 0 + 6c98: e3fff8ea bsr 0x5e6c // 5e6c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 6c9c: 013f lrw r1, 0x8e11 // 6f9c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6c9e: 3000 movi r0, 0 + 6ca0: e3ffe768 bsr 0x3b70 // 3b70 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 6ca4: 8455 ld.b r2, (r4, 0x15) + 6ca6: 8474 ld.b r3, (r4, 0x14) + 6ca8: 4248 lsli r2, r2, 8 + 6caa: 6c8c or r2, r3 + 6cac: 8476 ld.b r3, (r4, 0x16) + 6cae: 4370 lsli r3, r3, 16 + 6cb0: 6c8c or r2, r3 + 6cb2: 8477 ld.b r3, (r4, 0x17) + 6cb4: 4378 lsli r3, r3, 24 + 6cb6: 6cc8 or r3, r2 + 6cb8: 9520 ld.w r1, (r5, 0x0) + 6cba: 604e subu r1, r3 + 6cbc: 33fa movi r3, 250 + 6cbe: 4362 lsli r3, r3, 2 + 6cc0: 644c cmphs r3, r1 + 6cc2: 081b bt 0x6cf8 // 6cf8 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 6cc4: 9560 ld.w r3, (r5, 0x0) + 6cc6: 4b48 lsri r2, r3, 8 + 6cc8: a474 st.b r3, (r4, 0x14) + 6cca: a455 st.b r2, (r4, 0x15) + 6ccc: 4b50 lsri r2, r3, 16 + 6cce: 4b78 lsri r3, r3, 24 + 6cd0: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6cd2: 847b ld.b r3, (r4, 0x1b) + 6cd4: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 6cd6: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6cd8: 089e bt 0x6e14 // 6e14 + 6cda: 847c ld.b r3, (r4, 0x1c) + 6cdc: 3b41 cmpnei r3, 1 + 6cde: 089b bt 0x6e14 // 6e14 + { + TempCtrl.SceneFlag = 0x00; + 6ce0: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 6ce2: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 6ce4: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 6ce6: e3fff855 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x00); + 6cea: 3000 movi r0, 0 + 6cec: e3fff8c0 bsr 0x5e6c // 5e6c + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 6cf0: 0233 lrw r1, 0x8e33 // 6fa0 + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6cf2: 3000 movi r0, 0 + 6cf4: e3ffe73e bsr 0x3b70 // 3b70 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 6cf8: 02d4 lrw r6, 0x200004a0 // 6fa4 + 6cfa: 8664 ld.b r3, (r6, 0x4) + 6cfc: 3b41 cmpnei r3, 1 + 6cfe: 081e bt 0x6d3a // 6d3a + 6d00: 8451 ld.b r2, (r4, 0x11) + 6d02: 8470 ld.b r3, (r4, 0x10) + 6d04: 4248 lsli r2, r2, 8 + 6d06: 6c8c or r2, r3 + 6d08: 8472 ld.b r3, (r4, 0x12) + 6d0a: 4370 lsli r3, r3, 16 + 6d0c: 6c8c or r2, r3 + 6d0e: 8473 ld.b r3, (r4, 0x13) + 6d10: 4378 lsli r3, r3, 24 + 6d12: 6cc8 or r3, r2 + 6d14: 9520 ld.w r1, (r5, 0x0) + 6d16: 604e subu r1, r3 + 6d18: 027b lrw r3, 0x1388 // 6fa8 + 6d1a: 644c cmphs r3, r1 + 6d1c: 080f bt 0x6d3a // 6d3a + { + TempCtrl.BackLightTick = SysTick_1ms; + 6d1e: 9560 ld.w r3, (r5, 0x0) + 6d20: 4b48 lsri r2, r3, 8 + 6d22: a470 st.b r3, (r4, 0x10) + 6d24: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 6d26: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 6d28: 4b50 lsri r2, r3, 16 + 6d2a: 4b78 lsri r3, r3, 24 + 6d2c: a452 st.b r2, (r4, 0x12) + 6d2e: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 6d30: e3fff830 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x00); + 6d34: 3000 movi r0, 0 + 6d36: e3fff89b bsr 0x5e6c // 5e6c + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d3a: 8402 ld.b r0, (r4, 0x2) + 6d3c: 74c2 sextb r3, r0 + 6d3e: 3bdf btsti r3, 31 + 6d40: 0d18 bf 0x6f70 // 6f70 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 6d42: 8466 ld.b r3, (r4, 0x6) + 6d44: 4019 lsli r0, r0, 25 + 6d46: 4359 lsli r2, r3, 25 + 6d48: 481d lsri r0, r0, 29 + 6d4a: 4a5d lsri r2, r2, 29 + 6d4c: 640a cmpne r2, r0 + 6d4e: 0c19 bf 0x6d80 // 6d80 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 6d50: 3170 movi r1, 112 + 6d52: 4044 lsli r2, r0, 4 + 6d54: 68c5 andn r3, r1 + 6d56: 6cc8 or r3, r2 + 6d58: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 6d5a: e3fff61b bsr 0x5990 // 5990 + + SYSCON->UREG0 &= 0xFFFF00FF; + 6d5e: 036b lrw r3, 0x2000005c // 6fac + 6d60: 31ff movi r1, 255 + 6d62: 9340 ld.w r2, (r3, 0x0) + 6d64: 22ff addi r2, 256 + 6d66: 9260 ld.w r3, (r2, 0x0) + 6d68: 4128 lsli r1, r1, 8 + 6d6a: 68c5 andn r3, r1 + 6d6c: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6d6e: 8462 ld.b r3, (r4, 0x2) + 6d70: 4379 lsli r3, r3, 25 + 6d72: 4b7d lsri r3, r3, 29 + 6d74: 9220 ld.w r1, (r2, 0x0) + 6d76: 4368 lsli r3, r3, 8 + 6d78: 6cc4 or r3, r1 + 6d7a: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6d7c: 3301 movi r3, 1 + 6d7e: a47f st.b r3, (r4, 0x1f) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 6d80: 8402 ld.b r0, (r4, 0x2) + 6d82: 8466 ld.b r3, (r4, 0x6) + 6d84: 401c lsli r0, r0, 28 + 6d86: 437c lsli r3, r3, 28 + 6d88: 4b7d lsri r3, r3, 29 + 6d8a: 481d lsri r0, r0, 29 + 6d8c: 640e cmpne r3, r0 + 6d8e: 0376 lrw r3, 0x2000022c // 6fb0 + 6d90: 0804 bt 0x6d98 // 6d98 + 6d92: 8340 ld.b r2, (r3, 0x0) + 6d94: 3a41 cmpnei r2, 1 + 6d96: 0872 bt 0x6e7a // 6e7a + { + OpenDisPlay_Flag = 0x00; + 6d98: 3200 movi r2, 0 + 6d9a: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 6d9c: 8466 ld.b r3, (r4, 0x6) + 6d9e: 310e movi r1, 14 + 6da0: 4041 lsli r2, r0, 1 + 6da2: 68c5 andn r3, r1 + 6da4: 6cc8 or r3, r2 + 6da6: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6da8: e3fff716 bsr 0x5bd4 // 5bd4 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6dac: 3270 movi r2, 112 + 6dae: 8462 ld.b r3, (r4, 0x2) + 6db0: 68c8 and r3, r2 + 6db2: 3240 movi r2, 64 + 6db4: 648e cmpne r3, r2 + 6db6: 0843 bt 0x6e3c // 6e3c + 6db8: 8661 ld.b r3, (r6, 0x1) + 6dba: 3b42 cmpnei r3, 2 + 6dbc: 0840 bt 0x6e3c // 6e3c + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 6dbe: e0000223 bsr 0x7204 // 7204 + break; + 6dc2: 044b br 0x6e58 // 6e58 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 6dc4: 9540 ld.w r2, (r5, 0x0) + 6dc6: 608e subu r2, r3 + 6dc8: 33fa movi r3, 250 + 6dca: 4363 lsli r3, r3, 3 + 6dcc: 648c cmphs r3, r2 + 6dce: 0b6b bt 0x6ca4 // 6ca4 + 6dd0: 8478 ld.b r3, (r4, 0x18) + 6dd2: 3b41 cmpnei r3, 1 + 6dd4: 0b68 bt 0x6ca4 // 6ca4 + 6dd6: 8479 ld.b r3, (r4, 0x19) + 6dd8: 3b41 cmpnei r3, 1 + 6dda: 0b65 bt 0x6ca4 // 6ca4 + TempCtrl.BackLightTick = SysTick_1ms; + 6ddc: 9560 ld.w r3, (r5, 0x0) + 6dde: 4b48 lsri r2, r3, 8 + 6de0: a470 st.b r3, (r4, 0x10) + 6de2: a451 st.b r2, (r4, 0x11) + 6de4: 4b50 lsri r2, r3, 16 + 6de6: 4b78 lsri r3, r3, 24 + 6de8: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6dea: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 6dec: 3300 movi r3, 0 + 6dee: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6df0: 74c2 sextb r3, r0 + 6df2: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6df4: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6df6: 0f57 bf 0x6ca4 // 6ca4 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6df8: 4807 lsri r0, r0, 7 + 6dfa: e3fffe3b bsr 0x6a70 // 6a70 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 6dfe: 847b ld.b r3, (r4, 0x1b) + 6e00: 3b44 cmpnei r3, 4 + 6e02: 0f51 bf 0x6ca4 // 6ca4 + Controlled_LCD_Backlight(1); + 6e04: 3001 movi r0, 1 + 6e06: e3fff7c5 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 6e0a: 3001 movi r0, 1 + 6e0c: e3fff830 bsr 0x5e6c // 5e6c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6e10: 1329 lrw r1, 0x8e23 // 6fb4 + 6e12: 0746 br 0x6c9e // 6c9e + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 6e14: 8462 ld.b r3, (r4, 0x2) + 6e16: 74ce sextb r3, r3 + 6e18: 3bdf btsti r3, 31 + 6e1a: 0f6f bf 0x6cf8 // 6cf8 + 6e1c: 8478 ld.b r3, (r4, 0x18) + 6e1e: 3b41 cmpnei r3, 1 + 6e20: 0b6c bt 0x6cf8 // 6cf8 + 6e22: 847c ld.b r3, (r4, 0x1c) + 6e24: 3b41 cmpnei r3, 1 + 6e26: 0b69 bt 0x6cf8 // 6cf8 + TempCtrl.SceneFlag = 0x00; + 6e28: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 6e2a: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 6e2c: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 6e2e: e3fff7b1 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x01); + 6e32: 3001 movi r0, 1 + 6e34: e3fff81c bsr 0x5e6c // 5e6c + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6e38: 1320 lrw r1, 0x8e43 // 6fb8 + 6e3a: 075c br 0x6cf2 // 6cf2 + switch(TempCtrl.TemState_Now.fan) + 6e3c: 8402 ld.b r0, (r4, 0x2) + 6e3e: 401c lsli r0, r0, 28 + 6e40: 481d lsri r0, r0, 29 + 6e42: 2800 subi r0, 1 + 6e44: 3803 cmphsi r0, 4 + 6e46: 0809 bt 0x6e58 // 6e58 + 6e48: e3ffcf64 bsr 0xd10 // d10 <___gnu_csky_case_shi> + 6e4c: 00df0004 .long 0x00df0004 + 6e50: ffb900e2 .long 0xffb900e2 + Relay_Low(); + 6e54: e00001ca bsr 0x71e8 // 71e8 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 6e58: 1275 lrw r3, 0x2000005c // 6fac + 6e5a: 31ff movi r1, 255 + 6e5c: 9340 ld.w r2, (r3, 0x0) + 6e5e: 22ff addi r2, 256 + 6e60: 9260 ld.w r3, (r2, 0x0) + 6e62: 4130 lsli r1, r1, 16 + 6e64: 68c5 andn r3, r1 + 6e66: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6e68: 8462 ld.b r3, (r4, 0x2) + 6e6a: 437c lsli r3, r3, 28 + 6e6c: 4b7d lsri r3, r3, 29 + 6e6e: 9220 ld.w r1, (r2, 0x0) + 6e70: 4370 lsli r3, r3, 16 + 6e72: 6cc4 or r3, r1 + 6e74: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6e76: 3301 movi r3, 1 + 6e78: a47f st.b r3, (r4, 0x1f) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 6e7a: 8401 ld.b r0, (r4, 0x1) + 6e7c: 8465 ld.b r3, (r4, 0x5) + 6e7e: 640e cmpne r3, r0 + 6e80: 0c16 bf 0x6eac // 6eac + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 6e82: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 6e84: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 6e86: 08c8 bt 0x7016 // 7016 + { + Set_Temperature_Display(320); + 6e88: 30a0 movi r0, 160 + 6e8a: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 6e8c: e3fff4b2 bsr 0x57f0 // 57f0 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 6e90: 1267 lrw r3, 0x2000005c // 6fac + 6e92: 9360 ld.w r3, (r3, 0x0) + 6e94: 23ff addi r3, 256 + 6e96: 9340 ld.w r2, (r3, 0x0) + 6e98: 4248 lsli r2, r2, 8 + 6e9a: 4a48 lsri r2, r2, 8 + 6e9c: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6e9e: 8441 ld.b r2, (r4, 0x1) + 6ea0: 9320 ld.w r1, (r3, 0x0) + 6ea2: 4258 lsli r2, r2, 24 + 6ea4: 6c84 or r2, r1 + 6ea6: b340 st.w r2, (r3, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 6ea8: 3301 movi r3, 1 + 6eaa: a47f st.b r3, (r4, 0x1f) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 6eac: 8409 ld.b r0, (r4, 0x9) + 6eae: 8468 ld.b r3, (r4, 0x8) + 6eb0: 4008 lsli r0, r0, 8 + 6eb2: 6c0c or r0, r3 + 6eb4: 846b ld.b r3, (r4, 0xb) + 6eb6: 844a ld.b r2, (r4, 0xa) + 6eb8: 4368 lsli r3, r3, 8 + 6eba: 6cc8 or r3, r2 + 6ebc: 640e cmpne r3, r0 + 6ebe: 0c12 bf 0x6ee2 // 6ee2 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 6ec0: 4868 lsri r3, r0, 8 + 6ec2: a46b st.b r3, (r4, 0xb) + 6ec4: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 6ec6: e3fff4fd bsr 0x58c0 // 58c0 + + SYSCON->UREG0 &= 0x00FFFFFF; + 6eca: 1179 lrw r3, 0x2000005c // 6fac + 6ecc: 9360 ld.w r3, (r3, 0x0) + 6ece: 23ff addi r3, 256 + 6ed0: 9340 ld.w r2, (r3, 0x0) + 6ed2: 4248 lsli r2, r2, 8 + 6ed4: 4a48 lsri r2, r2, 8 + 6ed6: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6ed8: 8441 ld.b r2, (r4, 0x1) + 6eda: 9320 ld.w r1, (r3, 0x0) + 6edc: 4258 lsli r2, r2, 24 + 6ede: 6c84 or r2, r1 + 6ee0: b340 st.w r2, (r3, 0x0) + + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 6ee2: 844f ld.b r2, (r4, 0xf) + 6ee4: 846e ld.b r3, (r4, 0xe) + 6ee6: 4248 lsli r2, r2, 8 + 6ee8: 6c8c or r2, r3 + 6eea: 846d ld.b r3, (r4, 0xd) + 6eec: 842c ld.b r1, (r4, 0xc) + 6eee: 4368 lsli r3, r3, 8 + 6ef0: 6cc4 or r3, r1 + 6ef2: 648c cmphs r3, r2 + 6ef4: 0804 bt 0x6efc // 6efc + 6ef6: 5a2d subu r1, r2, r3 + 6ef8: 392a cmplti r1, 11 + 6efa: 0c06 bf 0x6f06 // 6f06 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 6efc: 64c8 cmphs r2, r3 + 6efe: 0812 bt 0x6f22 // 6f22 + 6f00: 5b49 subu r2, r3, r2 + 6f02: 3a2a cmplti r2, 11 + 6f04: 080f bt 0x6f22 // 6f22 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 6f06: 9540 ld.w r2, (r5, 0x0) + 6f08: 112d lrw r1, 0x20000585 // 6fbc + 6f0a: 4a08 lsri r0, r2, 8 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6f0c: a46e st.b r3, (r4, 0xe) + 6f0e: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 6f10: a140 st.b r2, (r1, 0x0) + 6f12: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6f14: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 6f16: 4a10 lsri r0, r2, 16 + + TempCtrl.ASend_Flag = 0x01; //2024-12-16,变化一度上报一次 + 6f18: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 6f1a: 4a58 lsri r2, r2, 24 + 6f1c: a102 st.b r0, (r1, 0x2) + 6f1e: a143 st.b r2, (r1, 0x3) + TempCtrl.ASend_Flag = 0x01; //2024-12-16,变化一度上报一次 + 6f20: a47f st.b r3, (r4, 0x1f) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 + rand()%20) + 6f22: 11c8 lrw r6, 0x20000580 // 6fc0 + 6f24: 8646 ld.b r2, (r6, 0x6) + 6f26: 8665 ld.b r3, (r6, 0x5) + 6f28: 4248 lsli r2, r2, 8 + 6f2a: 6c8c or r2, r3 + 6f2c: 8667 ld.b r3, (r6, 0x7) + 6f2e: 4370 lsli r3, r3, 16 + 6f30: 6c8c or r2, r3 + 6f32: 8668 ld.b r3, (r6, 0x8) + 6f34: 4378 lsli r3, r3, 24 + 6f36: 6cc8 or r3, r2 + 6f38: 9520 ld.w r1, (r5, 0x0) + 6f3a: 59ed subu r7, r1, r3 + 6f3c: e3ffd530 bsr 0x199c // 199c <__GI_rand> + 6f40: 3114 movi r1, 20 + 6f42: e3ffe485 bsr 0x384c // 384c <__modsi3> + 6f46: 1160 lrw r3, 0x7530 // 6fc4 + 6f48: 600c addu r0, r3 + 6f4a: 641c cmphs r7, r0 + 6f4c: 0c12 bf 0x6f70 // 6f70 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 6f4e: 9540 ld.w r2, (r5, 0x0) + 6f50: 4a28 lsri r1, r2, 8 + 6f52: a645 st.b r2, (r6, 0x5) + 6f54: a626 st.b r1, (r6, 0x6) + 6f56: 4a30 lsri r1, r2, 16 + 6f58: 4a58 lsri r2, r2, 24 + 6f5a: a627 st.b r1, (r6, 0x7) + 6f5c: a648 st.b r2, (r6, 0x8) + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 6f5e: 846d ld.b r3, (r4, 0xd) + 6f60: 844c ld.b r2, (r4, 0xc) + 6f62: 4368 lsli r3, r3, 8 + 6f64: 6cc8 or r3, r2 + 6f66: a46e st.b r3, (r4, 0xe) + 6f68: 4b68 lsri r3, r3, 8 + 6f6a: a46f st.b r3, (r4, 0xf) + TempCtrl.ASend_Flag = 0x01; //2025-02-25,温度变化每隔30s,上报一次。 + 6f6c: 3301 movi r3, 1 + 6f6e: a47f st.b r3, (r4, 0x1f) + + } + + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 6f70: 8462 ld.b r3, (r4, 0x2) + 6f72: 8446 ld.b r2, (r4, 0x6) + 6f74: 4b07 lsri r0, r3, 7 + 6f76: 4a47 lsri r2, r2, 7 + 6f78: 640a cmpne r2, r0 + 6f7a: 0c45 bf 0x7004 // 7004 + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 6f7c: 74ce sextb r3, r3 + 6f7e: 3bdf btsti r3, 31 + 6f80: 0c24 bf 0x6fc8 // 6fc8 + OpenDisPlay_Flag = 1; + 6f82: 106c lrw r3, 0x2000022c // 6fb0 + 6f84: 3201 movi r2, 1 + 6f86: a340 st.b r2, (r3, 0x0) + 6f88: 0420 br 0x6fc8 // 6fc8 + 6f8a: 0000 bkpt + 6f8c: 20000589 .long 0x20000589 + 6f90: 20000560 .long 0x20000560 + 6f94: 200000b8 .long 0x200000b8 + 6f98: 00000bb8 .long 0x00000bb8 + 6f9c: 00008e11 .long 0x00008e11 + 6fa0: 00008e33 .long 0x00008e33 + 6fa4: 200004a0 .long 0x200004a0 + 6fa8: 00001388 .long 0x00001388 + 6fac: 2000005c .long 0x2000005c + 6fb0: 2000022c .long 0x2000022c + 6fb4: 00008e23 .long 0x00008e23 + 6fb8: 00008e43 .long 0x00008e43 + 6fbc: 20000585 .long 0x20000585 + 6fc0: 20000580 .long 0x20000580 + 6fc4: 00007530 .long 0x00007530 + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 6fc8: 317f movi r1, 127 + 6fca: 8466 ld.b r3, (r4, 0x6) + 6fcc: 4047 lsli r2, r0, 7 + 6fce: 68c4 and r3, r1 + 6fd0: 6cc8 or r3, r2 + 6fd2: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6fd4: e3fff6de bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 6fd8: 8402 ld.b r0, (r4, 0x2) + 6fda: 4807 lsri r0, r0, 7 + 6fdc: e3fff748 bsr 0x5e6c // 5e6c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6fe0: 8402 ld.b r0, (r4, 0x2) + 6fe2: 4807 lsri r0, r0, 7 + 6fe4: e3fffd46 bsr 0x6a70 // 6a70 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 6fe8: 106d lrw r3, 0x2000005c // 701c + 6fea: 31ff movi r1, 255 + 6fec: 9340 ld.w r2, (r3, 0x0) + 6fee: 22ff addi r2, 256 + 6ff0: 9260 ld.w r3, (r2, 0x0) + 6ff2: 68c5 andn r3, r1 + 6ff4: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 6ff6: 8462 ld.b r3, (r4, 0x2) + 6ff8: 9220 ld.w r1, (r2, 0x0) + 6ffa: 4b67 lsri r3, r3, 7 + 6ffc: 6cc4 or r3, r1 + 6ffe: b260 st.w r3, (r2, 0x0) + + TempCtrl.ASend_Flag = 0x01; //2024-12-16 + 7000: 3301 movi r3, 1 + 7002: a47f st.b r3, (r4, 0x1f) + } + + Switch_Report_Task(); + 7004: e3fffdbc bsr 0x6b7c // 6b7c + + } +} + 7008: 1494 pop r4-r7, r15 + Relay_Mid(); + 700a: e00000e1 bsr 0x71cc // 71cc + break; + 700e: 0725 br 0x6e58 // 6e58 + Relay_High(); + 7010: e00000d0 bsr 0x71b0 // 71b0 + break; + 7014: 0722 br 0x6e58 // 6e58 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 7016: 330a movi r3, 10 + 7018: 7c0c mult r0, r3 + 701a: 0739 br 0x6e8c // 6e8c + 701c: 2000005c .long 0x2000005c + +Disassembly of section .text.Debug_Init: + +00007020 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 7020: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 7022: 108d lrw r4, 0x20000589 // 7054 + 7024: 320e movi r2, 14 + 7026: 3100 movi r1, 0 + 7028: 6c13 mov r0, r4 + 702a: e3ffd4cf bsr 0x19c8 // 19c8 <__memset_fast> + Debug_Inf.Page = 0x01; + 702e: 3301 movi r3, 1 + 7030: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 7032: 106a lrw r3, 0x200004a0 // 7058 + 7034: 8340 ld.b r2, (r3, 0x0) + 7036: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 7038: 8341 ld.b r2, (r3, 0x1) + 703a: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 703c: 8342 ld.b r2, (r3, 0x2) + 703e: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 7040: 8344 ld.b r2, (r3, 0x4) + 7042: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 7044: 8345 ld.b r2, (r3, 0x5) + 7046: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7048: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 704a: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 704c: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 704e: a469 st.b r3, (r4, 0x9) +} + 7050: 1491 pop r4, r15 + 7052: 0000 bkpt + 7054: 20000589 .long 0x20000589 + 7058: 200004a0 .long 0x200004a0 + +Disassembly of section .text.Dev_SaveData: + +0000705c : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 705c: 14d1 push r4, r15 + 705e: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 7060: 1161 lrw r3, 0x20000589 // 70e4 + 7062: 1182 lrw r4, 0x200004a0 // 70e8 + 7064: 8343 ld.b r2, (r3, 0x3) + 7066: 8420 ld.b r1, (r4, 0x0) + 7068: 6486 cmpne r1, r2 + 706a: 0819 bt 0x709c // 709c + 706c: 8304 ld.b r0, (r3, 0x4) + 706e: 8421 ld.b r1, (r4, 0x1) + 7070: 6442 cmpne r0, r1 + 7072: 0815 bt 0x709c // 709c + 7074: 8305 ld.b r0, (r3, 0x5) + 7076: 8422 ld.b r1, (r4, 0x2) + 7078: 6442 cmpne r0, r1 + 707a: 0811 bt 0x709c // 709c + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 707c: 8306 ld.b r0, (r3, 0x6) + 707e: 8424 ld.b r1, (r4, 0x4) + 7080: 6442 cmpne r0, r1 + 7082: 080d bt 0x709c // 709c + 7084: 8307 ld.b r0, (r3, 0x7) + 7086: 8425 ld.b r1, (r4, 0x5) + 7088: 6442 cmpne r0, r1 + 708a: 0809 bt 0x709c // 709c + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 708c: 8308 ld.b r0, (r3, 0x8) + 708e: 8423 ld.b r1, (r4, 0x3) + 7090: 6442 cmpne r0, r1 + 7092: 0805 bt 0x709c // 709c + 7094: 8309 ld.b r0, (r3, 0x9) + 7096: 8426 ld.b r1, (r4, 0x6) + 7098: 6442 cmpne r0, r1 + 709a: 0c23 bf 0x70e0 // 70e0 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 709c: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 709e: 8344 ld.b r2, (r3, 0x4) + 70a0: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 70a2: 8345 ld.b r2, (r3, 0x5) + 70a4: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 70a6: 8346 ld.b r2, (r3, 0x6) + 70a8: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 70aa: 8347 ld.b r2, (r3, 0x7) + 70ac: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 70ae: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 70b0: 100e lrw r0, 0x200004a0 // 70e8 + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 70b2: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 70b4: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 70b6: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 70b8: e3ffe98a bsr 0x43cc // 43cc + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 70bc: 8425 ld.b r1, (r4, 0x5) + 70be: b822 st.w r1, (r14, 0x8) + 70c0: 8424 ld.b r1, (r4, 0x4) + 70c2: b821 st.w r1, (r14, 0x4) + 70c4: 8422 ld.b r1, (r4, 0x2) + 70c6: 8461 ld.b r3, (r4, 0x1) + 70c8: 8440 ld.b r2, (r4, 0x0) + 70ca: b820 st.w r1, (r14, 0x0) + 70cc: 3000 movi r0, 0 + 70ce: 1028 lrw r1, 0x8e56 // 70ec + 70d0: e3ffe550 bsr 0x3b70 // 3b70 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 70d4: 8466 ld.b r3, (r4, 0x6) + 70d6: 8443 ld.b r2, (r4, 0x3) + 70d8: 1026 lrw r1, 0x8ea2 // 70f0 + 70da: 3000 movi r0, 0 + 70dc: e3ffe54a bsr 0x3b70 // 3b70 + g_eeprom.temp_select,g_eeprom.langue_select); + } +} + 70e0: 1403 addi r14, r14, 12 + 70e2: 1491 pop r4, r15 + 70e4: 20000589 .long 0x20000589 + 70e8: 200004a0 .long 0x200004a0 + 70ec: 00008e56 .long 0x00008e56 + 70f0: 00008ea2 .long 0x00008ea2 + +Disassembly of section .text.Debug_Task: + +000070f4 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 70f4: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 70f6: 107b lrw r3, 0x20000589 // 7160 + 70f8: 8340 ld.b r2, (r3, 0x0) + 70fa: 3a41 cmpnei r2, 1 + 70fc: 0830 bt 0x715c // 715c + 70fe: 832b ld.b r1, (r3, 0xb) + 7100: 834a ld.b r2, (r3, 0xa) + 7102: 4128 lsli r1, r1, 8 + 7104: 6c48 or r1, r2 + 7106: 834c ld.b r2, (r3, 0xc) + 7108: 4250 lsli r2, r2, 16 + 710a: 6c48 or r1, r2 + 710c: 834d ld.b r2, (r3, 0xd) + 710e: 1096 lrw r4, 0x200000b8 // 7164 + 7110: 4258 lsli r2, r2, 24 + 7112: 6c84 or r2, r1 + 7114: 9400 ld.w r0, (r4, 0x0) + 7116: 600a subu r0, r2 + 7118: 1054 lrw r2, 0x2710 // 7168 + 711a: 6408 cmphs r2, r0 + 711c: 0820 bt 0x715c // 715c + 711e: 8342 ld.b r2, (r3, 0x2) + 7120: 3a48 cmpnei r2, 8 + 7122: 0c1d bf 0x715c // 715c + { + Debug_Inf.Tick = SysTick_1ms; + 7124: 9440 ld.w r2, (r4, 0x0) + 7126: 310a movi r1, 10 + 7128: 604c addu r1, r3 + 712a: 4a08 lsri r0, r2, 8 + 712c: a140 st.b r2, (r1, 0x0) + 712e: a101 st.b r0, (r1, 0x1) + 7130: 4a10 lsri r0, r2, 16 + 7132: 4a58 lsri r2, r2, 24 + 7134: a143 st.b r2, (r1, 0x3) + Debug_Inf.State = 0x00; + 7136: 3200 movi r2, 0 + 7138: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 713a: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 713c: a102 st.b r0, (r1, 0x2) + Debug_Inf.Page = 0x01; + 713e: a342 st.b r2, (r3, 0x2) + Dev_SaveData(); + 7140: e3ffff8e bsr 0x705c // 705c + + HT1621_Clear(); + 7144: e3fff2e8 bsr 0x5714 // 5714 + //关背光 + Controlled_LCD_Backlight(0x00); + 7148: 3000 movi r0, 0 + 714a: e3fff623 bsr 0x5d90 // 5d90 + Controlled_Key_Backlight(0x00); + 714e: 3000 movi r0, 0 + 7150: e3fff68e bsr 0x5e6c // 5e6c + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 7154: 1026 lrw r1, 0x8ed2 // 716c + 7156: 3000 movi r0, 0 + 7158: e3ffe50c bsr 0x3b70 // 3b70 + } + 715c: 1491 pop r4, r15 + 715e: 0000 bkpt + 7160: 20000589 .long 0x20000589 + 7164: 200000b8 .long 0x200000b8 + 7168: 00002710 .long 0x00002710 + 716c: 00008ed2 .long 0x00008ed2 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00007170 : + //一个标志位,在过零信号的中断里会改变,代表有过零信号 + //g_switch.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + + switch(rly_id) + 7170: 3804 cmphsi r0, 5 + 7172: 1069 lrw r3, 0x200004f8 // 7194 + 7174: 080d bt 0x718e // 718e + case HOT_RLY: + case COOL_RLY: + case HIGH_RLY: + case MAD_RLY: + case LOW_RLY: + if(g_switch.rly_state[rly_id] != state){ + 7176: 600c addu r0, r3 + 7178: 8054 ld.b r2, (r0, 0x14) + 717a: 644a cmpne r2, r1 + 717c: 2013 addi r0, 20 + 717e: 0c07 bf 0x718c // 718c + g_switch.rly_state[rly_id] = state; + +// Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_RLY_Ctrl_Purpose1--rly_control:%d",g_switch.rly_control); +// g_switch.rly_control = 0x01; + + if(g_switch.rly_zero == 0){ + 7180: 8351 ld.b r2, (r3, 0x11) + g_switch.rly_control = 0x02; + 7182: 3a40 cmpnei r2, 0 + 7184: 6483 mvcv r2 + g_switch.rly_state[rly_id] = state; + 7186: a020 st.b r1, (r0, 0x0) + g_switch.rly_control = 0x02; + 7188: 2200 addi r2, 1 + g_switch.rly_control = 0x01; + } + } + break; + default: + g_switch.rly_control = 0x00; + 718a: a353 st.b r2, (r3, 0x13) + break; + + } + +} + 718c: 783c jmp r15 + g_switch.rly_control = 0x00; + 718e: 3200 movi r2, 0 + 7190: 07fd br 0x718a // 718a + 7192: 0000 bkpt + 7194: 200004f8 .long 0x200004f8 + +Disassembly of section .text.Relay_Init: + +00007198 : +{ + 7198: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 719a: 1085 lrw r4, 0x200004f8 // 71ac + 719c: 3228 movi r2, 40 + 719e: 3100 movi r1, 0 + 71a0: 6c13 mov r0, r4 + 71a2: e3ffd413 bsr 0x19c8 // 19c8 <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 71a6: 3301 movi r3, 1 + 71a8: a462 st.b r3, (r4, 0x2) +} + 71aa: 1491 pop r4, r15 + 71ac: 200004f8 .long 0x200004f8 + +Disassembly of section .text.Relay_High: + +000071b0 : +{ + 71b0: 14d0 push r15 + 71b2: 3101 movi r1, 1 + 71b4: 3002 movi r0, 2 + 71b6: e3ffffdd bsr 0x7170 // 7170 + 71ba: 3102 movi r1, 2 + 71bc: 3003 movi r0, 3 + 71be: e3ffffd9 bsr 0x7170 // 7170 + 71c2: 3102 movi r1, 2 + 71c4: 3004 movi r0, 4 + 71c6: e3ffffd5 bsr 0x7170 // 7170 +} + 71ca: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +000071cc : +{ + 71cc: 14d0 push r15 + 71ce: 3102 movi r1, 2 + 71d0: 3002 movi r0, 2 + 71d2: e3ffffcf bsr 0x7170 // 7170 + 71d6: 3101 movi r1, 1 + 71d8: 3003 movi r0, 3 + 71da: e3ffffcb bsr 0x7170 // 7170 + 71de: 3102 movi r1, 2 + 71e0: 3004 movi r0, 4 + 71e2: e3ffffc7 bsr 0x7170 // 7170 +} + 71e6: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +000071e8 : +{ + 71e8: 14d0 push r15 + 71ea: 3102 movi r1, 2 + 71ec: 3002 movi r0, 2 + 71ee: e3ffffc1 bsr 0x7170 // 7170 + 71f2: 3102 movi r1, 2 + 71f4: 3003 movi r0, 3 + 71f6: e3ffffbd bsr 0x7170 // 7170 + 71fa: 3101 movi r1, 1 + 71fc: 3004 movi r0, 4 + 71fe: e3ffffb9 bsr 0x7170 // 7170 +} + 7202: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +00007204 : +{ + 7204: 14d0 push r15 + 7206: 3102 movi r1, 2 + 7208: 3002 movi r0, 2 + 720a: e3ffffb3 bsr 0x7170 // 7170 + 720e: 3102 movi r1, 2 + 7210: 3003 movi r0, 3 + 7212: e3ffffaf bsr 0x7170 // 7170 + 7216: 3102 movi r1, 2 + 7218: 3004 movi r0, 4 + 721a: e3ffffab bsr 0x7170 // 7170 +} + 721e: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00007220 : +{ + 7220: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + 7222: 5963 subi r3, r1, 1 + 7224: 74cc zextb r3, r3 + 7226: 3b01 cmphsi r3, 2 + 7228: 0803 bt 0x722e // 722e + 722a: e3ffffa3 bsr 0x7170 // 7170 +} + 722e: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +00007230 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + 7230: 14d2 push r4-r5, r15 + + if(SysTick_1ms - g_switch.rly_ctrl_tick >= 50)// 50ms + 7232: 1150 lrw r2, 0x200000b8 // 72f0 + 7234: 1190 lrw r4, 0x200004f8 // 72f4 + 7236: 9260 ld.w r3, (r2, 0x0) + 7238: 9427 ld.w r1, (r4, 0x1c) + 723a: 60c6 subu r3, r1 + 723c: 3131 movi r1, 49 + 723e: 64c4 cmphs r1, r3 + 7240: 0810 bt 0x7260 // 7260 + { + g_switch.rly_ctrl_tick = SysTick_1ms; + 7242: 9260 ld.w r3, (r2, 0x0) + 7244: b467 st.w r3, (r4, 0x1c) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7246: e3ffe32a bsr 0x389a // 389a + + if( (g_switch.rly_zCnt >= 2)&&(g_switch.rly_zCnt <= 5)){ //有过零信号 + 724a: 8472 ld.b r3, (r4, 0x12) + 724c: 2b01 subi r3, 2 + 724e: 74cc zextb r3, r3 + 7250: 3b03 cmphsi r3, 4 + 7252: 0812 bt 0x7276 // 7276 + g_switch.rly_zero = 1; + 7254: 3301 movi r3, 1 + 7256: a471 st.b r3, (r4, 0x11) + g_switch.rly_zCnt = 0; + 7258: 3300 movi r3, 0 + }else { //无过零信号 + g_switch.rly_zero = 0; + g_switch.rly_zCnt = 0; + 725a: a472 st.b r3, (r4, 0x12) + } + + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 725c: e3ffe31c bsr 0x3894 // 3894 + } + + if(g_switch.rly_control != 0x02) return; + 7260: 8473 ld.b r3, (r4, 0x13) + 7262: 3b42 cmpnei r3, 2 + 7264: 0819 bt 0x7296 // 7296 + 7266: 3500 movi r5, 0 + + for (U8_T i = 0; i < 5; i++) { + switch (i) { + 7268: 5d03 subi r0, r5, 1 + 726a: 3803 cmphsi r0, 4 + 726c: 0808 bt 0x727c // 727c + 726e: e3ffcd47 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7272: 2117 .short 0x2117 + 7274: 352b .short 0x352b + g_switch.rly_zero = 0; + 7276: 3300 movi r3, 0 + 7278: a471 st.b r3, (r4, 0x11) + 727a: 07f0 br 0x725a // 725a + case HOT_RLY: + if (g_switch.rly_state[HOT_RLY] == Control_ON) { + 727c: 8474 ld.b r3, (r4, 0x14) + 727e: 3b41 cmpnei r3, 1 + 7280: 080c bt 0x7298 // 7298 + RLY1_HOT_OPEN; + 7282: 3102 movi r1, 2 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7284: 3012 movi r0, 18 + break; + case LOW_RLY: + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7286: e3fff153 bsr 0x552c // 552c + for (U8_T i = 0; i < 5; i++) { + 728a: 2500 addi r5, 1 + 728c: 7554 zextb r5, r5 + 728e: 3d45 cmpnei r5, 5 + 7290: 0bec bt 0x7268 // 7268 + break; + } + + } + + g_switch.rly_control = 0x00; + 7292: 3300 movi r3, 0 + 7294: a473 st.b r3, (r4, 0x13) +} + 7296: 1492 pop r4-r5, r15 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + 7298: 3b42 cmpnei r3, 2 + 729a: 0bf8 bt 0x728a // 728a + RLY1_HOT_CLOSE; + 729c: 3101 movi r1, 1 + 729e: 07f3 br 0x7284 // 7284 + if (g_switch.rly_state[COOL_RLY] == Control_ON) { + 72a0: 8475 ld.b r3, (r4, 0x15) + 72a2: 3b41 cmpnei r3, 1 + 72a4: 0804 bt 0x72ac // 72ac + RLY2_COLD_OPEN; + 72a6: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 72a8: 3013 movi r0, 19 + 72aa: 07ee br 0x7286 // 7286 + }else if (g_switch.rly_state[COOL_RLY] == Control_OFF) { + 72ac: 3b42 cmpnei r3, 2 + 72ae: 0bee bt 0x728a // 728a + RLY2_COLD_CLOSE; + 72b0: 3101 movi r1, 1 + 72b2: 07fb br 0x72a8 // 72a8 + if (g_switch.rly_state[HIGH_RLY] == Control_ON) { + 72b4: 8476 ld.b r3, (r4, 0x16) + 72b6: 3b41 cmpnei r3, 1 + 72b8: 0804 bt 0x72c0 // 72c0 + RLY3_HIGH_OPEN; + 72ba: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 72bc: 3014 movi r0, 20 + 72be: 07e4 br 0x7286 // 7286 + }else if (g_switch.rly_state[HIGH_RLY] == Control_OFF) { + 72c0: 3b42 cmpnei r3, 2 + 72c2: 0be4 bt 0x728a // 728a + RLY3_HIGH_CLOSE; + 72c4: 3101 movi r1, 1 + 72c6: 07fb br 0x72bc // 72bc + if (g_switch.rly_state[MAD_RLY] == Control_ON) { + 72c8: 8477 ld.b r3, (r4, 0x17) + 72ca: 3b41 cmpnei r3, 1 + 72cc: 0804 bt 0x72d4 // 72d4 + RLY4_MID_OPEN; + 72ce: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 72d0: 3015 movi r0, 21 + 72d2: 07da br 0x7286 // 7286 + }else if (g_switch.rly_state[MAD_RLY] == Control_OFF) { + 72d4: 3b42 cmpnei r3, 2 + 72d6: 0bda bt 0x728a // 728a + RLY4_MID_CLOSE; + 72d8: 3101 movi r1, 1 + 72da: 07fb br 0x72d0 // 72d0 + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + 72dc: 8478 ld.b r3, (r4, 0x18) + 72de: 3b41 cmpnei r3, 1 + 72e0: 0804 bt 0x72e8 // 72e8 + RLY5_LOW_OPEN; + 72e2: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 72e4: 3016 movi r0, 22 + 72e6: 07d0 br 0x7286 // 7286 + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + 72e8: 3b42 cmpnei r3, 2 + 72ea: 0bd0 bt 0x728a // 728a + RLY5_LOW_CLOSE; + 72ec: 3101 movi r1, 1 + 72ee: 07fb br 0x72e4 // 72e4 + 72f0: 200000b8 .long 0x200000b8 + 72f4: 200004f8 .long 0x200004f8 + +Disassembly of section .text.RLY_Zero_Control: + +000072f8 : + * @brief 有过零信号控制继电器 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + 72f8: 14d2 push r4-r5, r15 + if(g_switch.rly_control != 0x01) return; + 72fa: 1185 lrw r4, 0x200004f8 // 738c + 72fc: 8473 ld.b r3, (r4, 0x13) + 72fe: 3b41 cmpnei r3, 1 + 7300: 0818 bt 0x7330 // 7330 + 7302: 3500 movi r5, 0 + + for (U8_T i = 0; i < 5; i++) { + switch (i) { + 7304: 5d03 subi r0, r5, 1 + 7306: 3803 cmphsi r0, 4 + 7308: 0805 bt 0x7312 // 7312 + 730a: e3ffccf9 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 730e: 2016 .short 0x2016 + 7310: 342a .short 0x342a + case HOT_RLY: + if (g_switch.rly_state[HOT_RLY] == Control_ON) { + 7312: 8474 ld.b r3, (r4, 0x14) + 7314: 3b41 cmpnei r3, 1 + 7316: 080e bt 0x7332 // 7332 + RLY1_HOT_OPEN; + 7318: 3102 movi r1, 2 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 731a: 3012 movi r0, 18 + break; + case LOW_RLY: + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 731c: e3fff108 bsr 0x552c // 552c + for (U8_T i = 0; i < 5; i++) { + 7320: 2500 addi r5, 1 + 7322: 7554 zextb r5, r5 + 7324: 3d45 cmpnei r5, 5 + 7326: 0bef bt 0x7304 // 7304 + break; + } + + } + + TimeCall_SIO_Send2(); + 7328: e3fff03c bsr 0x53a0 // 53a0 + + g_switch.rly_control = 0x00; + 732c: 3300 movi r3, 0 + 732e: a473 st.b r3, (r4, 0x13) + 7330: 1492 pop r4-r5, r15 + }else if (g_switch.rly_state[HOT_RLY] == Control_OFF) { + 7332: 3b42 cmpnei r3, 2 + 7334: 0bf6 bt 0x7320 // 7320 + RLY1_HOT_CLOSE; + 7336: 3101 movi r1, 1 + 7338: 07f1 br 0x731a // 731a + if (g_switch.rly_state[COOL_RLY] == Control_ON) { + 733a: 8475 ld.b r3, (r4, 0x15) + 733c: 3b41 cmpnei r3, 1 + 733e: 0804 bt 0x7346 // 7346 + RLY2_COLD_OPEN; + 7340: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7342: 3013 movi r0, 19 + 7344: 07ec br 0x731c // 731c + }else if (g_switch.rly_state[COOL_RLY] == Control_OFF) { + 7346: 3b42 cmpnei r3, 2 + 7348: 0bec bt 0x7320 // 7320 + RLY2_COLD_CLOSE; + 734a: 3101 movi r1, 1 + 734c: 07fb br 0x7342 // 7342 + if (g_switch.rly_state[HIGH_RLY] == Control_ON) { + 734e: 8476 ld.b r3, (r4, 0x16) + 7350: 3b41 cmpnei r3, 1 + 7352: 0804 bt 0x735a // 735a + RLY3_HIGH_OPEN; + 7354: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7356: 3014 movi r0, 20 + 7358: 07e2 br 0x731c // 731c + }else if (g_switch.rly_state[HIGH_RLY] == Control_OFF) { + 735a: 3b42 cmpnei r3, 2 + 735c: 0be2 bt 0x7320 // 7320 + RLY3_HIGH_CLOSE; + 735e: 3101 movi r1, 1 + 7360: 07fb br 0x7356 // 7356 + if (g_switch.rly_state[MAD_RLY] == Control_ON) { + 7362: 8477 ld.b r3, (r4, 0x17) + 7364: 3b41 cmpnei r3, 1 + 7366: 0804 bt 0x736e // 736e + RLY4_MID_OPEN; + 7368: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 736a: 3015 movi r0, 21 + 736c: 07d8 br 0x731c // 731c + }else if (g_switch.rly_state[MAD_RLY] == Control_OFF) { + 736e: 3b42 cmpnei r3, 2 + 7370: 0bd8 bt 0x7320 // 7320 + RLY4_MID_CLOSE; + 7372: 3101 movi r1, 1 + 7374: 07fb br 0x736a // 736a + if (g_switch.rly_state[LOW_RLY] == Control_ON) { + 7376: 8478 ld.b r3, (r4, 0x18) + 7378: 3b41 cmpnei r3, 1 + 737a: 0804 bt 0x7382 // 7382 + RLY5_LOW_OPEN; + 737c: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 737e: 3016 movi r0, 22 + 7380: 07ce br 0x731c // 731c + }else if (g_switch.rly_state[LOW_RLY] == Control_OFF) { + 7382: 3b42 cmpnei r3, 2 + 7384: 0bce bt 0x7320 // 7320 + RLY5_LOW_CLOSE; + 7386: 3101 movi r1, 1 + 7388: 07fb br 0x737e // 737e + 738a: 0000 bkpt + 738c: 200004f8 .long 0x200004f8 + +Disassembly of section .text.NetCRC16: + +00007390 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 7390: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7392: 3902 cmphsi r1, 3 + 7394: 0c1f bf 0x73d2 // 73d2 + U16_T alen = len-2; //CRC16??????? + 7396: 2901 subi r1, 2 + 7398: 7445 zexth r1, r1 + 739a: 6d43 mov r5, r0 + 739c: 3200 movi r2, 0 + 739e: 106e lrw r3, 0xffff // 73d4 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 73a8: 6d8f mov r6, r3 + 73aa: 699c and r6, r7 + 73ac: 3e40 cmpnei r6, 0 + 73ae: 4b61 lsri r3, r3, 1 + 73b0: 0c04 bf 0x73b8 // 73b8 + 73b2: 10ca lrw r6, 0xffffa001 // 73d8 + 73b4: 6cd9 xor r3, r6 + 73b6: 74cd zexth r3, r3 + 73b8: 2c00 subi r4, 1 + 73ba: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 73bc: 3c40 cmpnei r4, 0 + 73be: 0bf5 bt 0x73a8 // 73a8 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 73ca: 6040 addu r1, r0 + 73cc: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 73ce: 4b68 lsri r3, r3, 8 + 73d0: a161 st.b r3, (r1, 0x1) +} + 73d2: 1484 pop r4-r7 + 73d4: 0000ffff .long 0x0000ffff + 73d8: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +000073dc : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 73dc: 14c3 push r4-r6 + 73de: 6cc3 mov r3, r0 + 73e0: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 73e2: 10ac lrw r5, 0xffffa001 // 7410 + xda = 0xFFFF ; + 73e4: 100c lrw r0, 0xffff // 7414 + for (i = 0; i < len; i++) + 73e6: 644e cmpne r3, r1 + 73e8: 0802 bt 0x73ec // 73ec + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 73ea: 1483 pop r4-r6 + xda ^= aStr[i] ; + 73ec: 8340 ld.b r2, (r3, 0x0) + 73ee: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 73f0: 3601 movi r6, 1 + xda ^= aStr[i] ; + 73f2: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 73f4: 6d03 mov r4, r0 + 73f6: 6918 and r4, r6 + 73f8: 3c40 cmpnei r4, 0 + 73fa: 4801 lsri r0, r0, 1 + 73fc: 0c03 bf 0x7402 // 7402 + 73fe: 6c15 xor r0, r5 + 7400: 7401 zexth r0, r0 + 7402: 2a00 subi r2, 1 + 7404: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 7406: 3a40 cmpnei r2, 0 + 7408: 0bf6 bt 0x73f4 // 73f4 + 740a: 2300 addi r3, 1 + 740c: 07ed br 0x73e6 // 73e6 + 740e: 0000 bkpt + 7410: ffffa001 .long 0xffffa001 + 7414: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00007418 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 7418: 6cc3 mov r3, r0 + 741a: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 741c: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 741e: 644e cmpne r3, r1 + 7420: 0802 bt 0x7424 // 7424 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7422: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7424: 8340 ld.b r2, (r3, 0x0) + 7426: 6008 addu r0, r2 + 7428: 7400 zextb r0, r0 + 742a: 2300 addi r3, 1 + 742c: 07f9 br 0x741e // 741e + +Disassembly of section .text.Rs485AskCycleSend: + +00007430 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 7430: 14d0 push r15 + 7432: 1426 subi r14, r14, 24 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7434: 3355 movi r3, 85 + 7436: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 743a: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; + 743e: 3300 movi r3, 0 + 7440: 2b11 subi r3, 18 + 7442: dc6e0002 st.b r3, (r14, 0x2) + SendData[3] = 0x15; + 7446: 3315 movi r3, 21 + 7448: dc6e0003 st.b r3, (r14, 0x3) + + SendData[4] = 0x03; //类型 + 744c: 3303 movi r3, 3 + 744e: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + 7452: 1172 lrw r3, 0x200004a0 // 7518 + 7454: 8360 ld.b r3, (r3, 0x0) + 7456: dc6e0005 st.b r3, (r14, 0x5) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 745a: 3300 movi r3, 0 + 745c: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7460: 116f lrw r3, 0x20000560 // 751c + 7462: 8342 ld.b r2, (r3, 0x2) + 7464: 4a27 lsri r1, r2, 7 + 7466: dc2e0007 st.b r1, (r14, 0x7) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 746a: 3100 movi r1, 0 + 746c: dc2e0008 st.b r1, (r14, 0x8) + if (TempCtrl.TemState_Now.mode == 0x00) { + 7470: 3170 movi r1, 112 + 7472: 6884 and r2, r1 + 7474: 3a40 cmpnei r2, 0 + 7476: 0841 bt 0x74f8 // 74f8 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 7478: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 747a: dc4e0009 st.b r2, (r14, 0x9) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 747e: 8341 ld.b r2, (r3, 0x1) + 7480: 3a40 cmpnei r2, 0 + 7482: 0802 bt 0x7486 // 7486 + 7484: 3220 movi r2, 32 + 7486: dc4e000a st.b r2, (r14, 0xa) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 748a: 3200 movi r2, 0 + 748c: dc4e000b st.b r2, (r14, 0xb) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7490: 8342 ld.b r2, (r3, 0x2) + 7492: 425c lsli r2, r2, 28 + 7494: 4a5d lsri r2, r2, 29 + 7496: 3104 movi r1, 4 + 7498: 604a subu r1, r2 + 749a: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 749c: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 749e: dc2e000c st.b r1, (r14, 0xc) + switch(TempCtrl.TemState_Now.fan) + 74a2: 0c35 bf 0x750c // 750c + 74a4: 3a03 cmphsi r2, 4 + 74a6: 0837 bt 0x7514 // 7514 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + 74a8: dc2e000d st.b r1, (r14, 0xd) + break; + default: + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 74ac: 3200 movi r2, 0 + 74ae: dc4e000e st.b r2, (r14, 0xe) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 74b2: dc4e000f st.b r2, (r14, 0xf) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 74b6: 8342 ld.b r2, (r3, 0x2) + 74b8: 425f lsli r2, r2, 31 + 74ba: 4a5f lsri r2, r2, 31 + 74bc: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 74be: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 74c0: dc4e0010 st.b r2, (r14, 0x10) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 74c4: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 74c6: 3200 movi r2, 0 + 74c8: dc4e0011 st.b r2, (r14, 0x11) + SendData[18] = 0x00; //Func12 备用字节2 + 74cc: dc4e0012 st.b r2, (r14, 0x12) + SendData[19] = 0x00; //Func13 备用字节3 + 74d0: dc4e0013 st.b r2, (r14, 0x13) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 74d4: 0802 bt 0x74d8 // 74d8 + 74d6: 3320 movi r3, 32 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74d8: 3003 movi r0, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 74da: dc6e0014 st.b r3, (r14, 0x14) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74de: 6038 addu r0, r14 + SendData[21] = 0x00; //Func15 室内温度小数值 + 74e0: 3300 movi r3, 0 + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74e2: 3115 movi r1, 21 + SendData[21] = 0x00; //Func15 室内温度小数值 + 74e4: dc6e0015 st.b r3, (r14, 0x15) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 74e8: e3ffff54 bsr 0x7390 // 7390 + + MCU485_SendData(SendData, 24); + 74ec: 3118 movi r1, 24 + 74ee: 6c3b mov r0, r14 + 74f0: e3ffe2fc bsr 0x3ae8 // 3ae8 + +} + 74f4: 1406 addi r14, r14, 24 + 74f6: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 74f8: 3120 movi r1, 32 + 74fa: 644a cmpne r2, r1 + 74fc: 0803 bt 0x7502 // 7502 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 74fe: 3202 movi r2, 2 + 7500: 07bd br 0x747a // 747a + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 7502: 3140 movi r1, 64 + 7504: 644a cmpne r2, r1 + 7506: 0bbc bt 0x747e // 747e + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7508: 3203 movi r2, 3 + 750a: 07b8 br 0x747a // 747a + SendData[13] = 0x00; // + 750c: 3200 movi r2, 0 + SendData[13] = 0x04; // + 750e: dc4e000d st.b r2, (r14, 0xd) + break; + 7512: 07cd br 0x74ac // 74ac + SendData[13] = 0x04; // + 7514: 3204 movi r2, 4 + 7516: 07fc br 0x750e // 750e + 7518: 200004a0 .long 0x200004a0 + 751c: 20000560 .long 0x20000560 + +Disassembly of section .text.Rs485AskCtrlSend: + +00007520 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 7520: 14d0 push r15 + 7522: 1423 subi r14, r14, 12 + U8_T SendData[10]; + + SendData[0] = 0x55; + 7524: 3355 movi r3, 85 + 7526: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 752a: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 752e: 3300 movi r3, 0 + 7530: 2b11 subi r3, 18 + 7532: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x07; //长度 + 7536: 3307 movi r3, 7 + 7538: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 753c: 3303 movi r3, 3 + 753e: dc6e0004 st.b r3, (r14, 0x4) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7542: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 7544: 106a lrw r3, 0x200004a0 // 756c + 7546: 8360 ld.b r3, (r3, 0x0) + 7548: dc6e0005 st.b r3, (r14, 0x5) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 754c: 8066 ld.b r3, (r0, 0x6) + 754e: dc6e0006 st.b r3, (r14, 0x6) + SendData[7] = Recdata[7];//0x01; //内容 + 7552: 8067 ld.b r3, (r0, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7554: 3003 movi r0, 3 + 7556: 6038 addu r0, r14 + SendData[7] = Recdata[7];//0x01; //内容 + 7558: dc6e0007 st.b r3, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 755c: e3ffff1a bsr 0x7390 // 7390 + + MCU485_SendData(SendData, 10); + 7560: 310a movi r1, 10 + 7562: 6c3b mov r0, r14 + 7564: e3ffe2c2 bsr 0x3ae8 // 3ae8 + +} + 7568: 1403 addi r14, r14, 12 + 756a: 1490 pop r15 + 756c: 200004a0 .long 0x200004a0 + +Disassembly of section .text.Rs485AskReadSend: + +00007570 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 7570: 14d0 push r15 + 7572: 1423 subi r14, r14, 12 + U8_T SendData[11]; + + SendData[0] = 0x55; + 7574: 3355 movi r3, 85 + 7576: dc6e0000 st.b r3, (r14, 0x0) + SendData[1] = 0x55; + 757a: dc6e0001 st.b r3, (r14, 0x1) + SendData[2] = 0xee; //头 + 757e: 3300 movi r3, 0 + 7580: 2b11 subi r3, 18 + 7582: dc6e0002 st.b r3, (r14, 0x2) + + SendData[3] = 0x09; //长度 + 7586: 3309 movi r3, 9 + 7588: dc6e0003 st.b r3, (r14, 0x3) + SendData[4] = 0x03; //类型 + 758c: 3303 movi r3, 3 + 758e: dc6e0004 st.b r3, (r14, 0x4) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7592: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 7594: 106d lrw r3, 0x200004a0 // 75c8 + 7596: 8340 ld.b r2, (r3, 0x0) + 7598: dc4e0005 st.b r2, (r14, 0x5) + SendData[6] = Recdata[6]; + 759c: 8046 ld.b r2, (r0, 0x6) + 759e: dc4e0006 st.b r2, (r14, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 75a2: 3003 movi r0, 3 + SendData[7] = Project_FW_Version; + 75a4: 3203 movi r2, 3 + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 75a6: 8367 ld.b r3, (r3, 0x7) + SendData[7] = Project_FW_Version; + 75a8: dc4e0007 st.b r2, (r14, 0x7) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 75ac: 6038 addu r0, r14 + SendData[8] = Project_HW_Version; + 75ae: 3202 movi r2, 2 + 75b0: dc4e0008 st.b r2, (r14, 0x8) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 75b4: dc6e0009 st.b r3, (r14, 0x9) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 75b8: e3fffeec bsr 0x7390 // 7390 + + MCU485_SendData(SendData, 12); + 75bc: 310c movi r1, 12 + 75be: 6c3b mov r0, r14 + 75c0: e3ffe294 bsr 0x3ae8 // 3ae8 + +} + 75c4: 1403 addi r14, r14, 12 + 75c6: 1490 pop r15 + 75c8: 200004a0 .long 0x200004a0 + +Disassembly of section .text.Temp_Rec_Analysis: + +000075cc : + + MCU485_SendData(Recdata, Lens); +} + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 75cc: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if(((0x09 != Len) && (0x0A != Len)) + 75ce: 3300 movi r3, 0 + 75d0: 2b08 subi r3, 9 + 75d2: 60c4 addu r3, r1 + 75d4: 74cd zexth r3, r3 + 75d6: 3b01 cmphsi r3, 2 +{ + 75d8: 6d03 mov r4, r0 + 75da: 6d87 mov r6, r1 + if(((0x09 != Len) && (0x0A != Len)) + 75dc: 08cb bt 0x7772 // 7772 + || (0x55 != RecData[0]) || (0x55 != RecData[1]) + 75de: 8060 ld.b r3, (r0, 0x0) + 75e0: 3255 movi r2, 85 + 75e2: 648e cmpne r3, r2 + 75e4: 08c7 bt 0x7772 // 7772 + 75e6: 8041 ld.b r2, (r0, 0x1) + 75e8: 64ca cmpne r2, r3 + 75ea: 08c4 bt 0x7772 // 7772 + || (0xee != RecData[2]) || (RecData[3] + 3 != Len) + 75ec: 8042 ld.b r2, (r0, 0x2) + 75ee: 33ee movi r3, 238 + 75f0: 64ca cmpne r2, r3 + 75f2: 08c0 bt 0x7772 // 7772 + 75f4: 8023 ld.b r1, (r0, 0x3) + 75f6: 596a addi r3, r1, 3 + 75f8: 658e cmpne r3, r6 + 75fa: 08bc bt 0x7772 // 7772 + || (Tem_Type != RecData[4]) + 75fc: 8064 ld.b r3, (r0, 0x4) + 75fe: 3b43 cmpnei r3, 3 + 7600: 08b9 bt 0x7772 // 7772 + || (g_eeprom.dev_addr != RecData[5]) + 7602: 12be lrw r5, 0x200004a0 // 7778 + 7604: 8540 ld.b r2, (r5, 0x0) + 7606: 8065 ld.b r3, (r0, 0x5) + 7608: 64ca cmpne r2, r3 + 760a: 08b4 bt 0x7772 // 7772 + ) + { + return ret = 0x01; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 760c: 2901 subi r1, 2 + 760e: 7445 zexth r1, r1 + 7610: 2002 addi r0, 3 + 7612: e3fffee5 bsr 0x73dc // 73dc + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 7616: 5c58 addu r2, r4, r6 + 7618: 5a63 subi r3, r2, 1 + 761a: 8360 ld.b r3, (r3, 0x0) + 761c: 2a01 subi r2, 2 + 761e: 4368 lsli r3, r3, 8 + 7620: 8240 ld.b r2, (r2, 0x0) + 7622: 60c8 addu r3, r2 + 7624: 64c2 cmpne r0, r3 + 7626: 08a6 bt 0x7772 // 7772 + { + switch(RecData[6]) + 7628: 8406 ld.b r0, (r4, 0x6) + 762a: 2800 subi r0, 1 + 762c: 3811 cmphsi r0, 18 + 762e: 0818 bt 0x765e // 765e + 7630: e3ffcb66 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7634: 25252525 .long 0x25252525 + 7638: 15151515 .long 0x15151515 + 763c: 15150915 .long 0x15150915 + 7640: 29151515 .long 0x29151515 + 7644: 402d .short 0x402d + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 7646: 8567 ld.b r3, (r5, 0x7) + 7648: 3b42 cmpnei r3, 2 + 764a: 0813 bt 0x7670 // 7670 + { + TempCtrl.SendCnt = 0x00; + 764c: 126c lrw r3, 0x20000560 // 777c + 764e: 3220 movi r2, 32 + 7650: 608c addu r2, r3 + 7652: 3100 movi r1, 0 + 7654: a220 st.b r1, (r2, 0x0) + TempCtrl.ASend_Flag = 0x00; + 7656: 3200 movi r2, 0 + 7658: a35f st.b r2, (r3, 0x1f) + g_uart[UART_2].BusState = 0x00; + 765a: 126a lrw r3, 0x2000043d // 7780 + 765c: a340 st.b r2, (r3, 0x0) + }else{ + Rs485_DevPort_ACK(RecData,Len); + } + break; + } + switch(RecData[6]) + 765e: 8406 ld.b r0, (r4, 0x6) + 7660: 2800 subi r0, 1 + 7662: 3803 cmphsi r0, 4 + 7664: 0808 bt 0x7674 // 7674 + 7666: 8467 ld.b r3, (r4, 0x7) + 7668: e3ffcb4a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 766c: 70604836 .long 0x70604836 + else if(g_eeprom.dev_port == POLLING_PORT) + 7670: 3b41 cmpnei r3, 1 + 7672: 0c03 bf 0x7678 // 7678 + break; + } + break; + } + + return ret; + 7674: 3000 movi r0, 0 + 7676: 047f br 0x7774 // 7774 + Rs485AskCycleSend(); + 7678: e3fffedc bsr 0x7430 // 7430 + 767c: 07f1 br 0x765e // 765e + Rs485AskCtrlSend(RecData); + 767e: 6c13 mov r0, r4 + 7680: e3ffff50 bsr 0x7520 // 7520 + 7684: 07ed br 0x765e // 765e + Rs485AskReadSend(RecData); //版本号查询 + 7686: 6c13 mov r0, r4 + 7688: e3ffff74 bsr 0x7570 // 7570 + 768c: 0400 br 0x768c // 768c + Rs485AskCtrlSend(RecData); + 768e: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7690: 11bb lrw r5, 0x20000560 // 777c + Rs485AskCtrlSend(RecData); + 7692: e3ffff47 bsr 0x7520 // 7520 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7696: 855a ld.b r2, (r5, 0x1a) + 7698: 113b lrw r1, 0x8edd // 7784 + 769a: 3000 movi r0, 0 + 769c: e3ffe26a bsr 0x3b70 // 3b70 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 76a0: 8467 ld.b r3, (r4, 0x7) + 76a2: 855a ld.b r2, (r5, 0x1a) + 76a4: 64ca cmpne r2, r3 + 76a6: 0fdc bf 0x765e // 765e + if(TempCtrl.CardEn == 0x00) + 76a8: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 76aa: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 76ac: 0bd9 bt 0x765e // 765e + TempCtrl.CardState = 0x01; + 76ae: 3301 movi r3, 1 + 76b0: a578 st.b r3, (r5, 0x18) + 76b2: 07d6 br 0x765e // 765e + if(RecData[7] != g_eeprom.dev_port) + 76b4: 8467 ld.b r3, (r4, 0x7) + 76b6: 8547 ld.b r2, (r5, 0x7) + 76b8: 64ca cmpne r2, r3 + 76ba: 0c0a bf 0x76ce // 76ce + EEPROM_WriteParaInfo(&g_eeprom); + 76bc: 110f lrw r0, 0x200004a0 // 7778 + g_eeprom.dev_port = RecData[7]; + 76be: a567 st.b r3, (r5, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 76c0: e3ffe686 bsr 0x43cc // 43cc + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 76c4: 110d lrw r0, 0x200004a0 // 7778 + 76c6: e3ffe649 bsr 0x4358 // 4358 + if(rev_val == 0x00){ + 76ca: 3840 cmpnei r0, 0 + 76cc: 0bc9 bt 0x765e // 765e + MCU485_SendData(Recdata, Lens); + 76ce: 6c5b mov r1, r6 + 76d0: 6c13 mov r0, r4 + 76d2: e3ffe20b bsr 0x3ae8 // 3ae8 + 76d6: 07c4 br 0x765e // 765e + switch(RecData[7]) + 76d8: 74cc zextb r3, r3 + 76da: 3b40 cmpnei r3, 0 + 76dc: 0c0a bf 0x76f0 // 76f0 + 76de: 3b41 cmpnei r3, 1 + 76e0: 0bca bt 0x7674 // 7674 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 76e2: 1127 lrw r1, 0x20000560 // 777c + 76e4: 3200 movi r2, 0 + 76e6: 8162 ld.b r3, (r1, 0x2) + 76e8: 2a7f subi r2, 128 + 76ea: 6cc8 or r3, r2 + 76ec: a162 st.b r3, (r1, 0x2) + 76ee: 07c3 br 0x7674 // 7674 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 76f0: 1143 lrw r2, 0x20000560 // 777c + 76f2: 8262 ld.b r3, (r2, 0x2) + 76f4: 317f movi r1, 127 + 76f6: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 76f8: a262 st.b r3, (r2, 0x2) + 76fa: 07bd br 0x7674 // 7674 + switch(RecData[7]) // + 76fc: 74cc zextb r3, r3 + 76fe: 3b42 cmpnei r3, 2 + 7700: 0c0a bf 0x7714 // 7714 + 7702: 3b43 cmpnei r3, 3 + 7704: 0c0e bf 0x7720 // 7720 + 7706: 3b41 cmpnei r3, 1 + 7708: 0bb6 bt 0x7674 // 7674 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 770a: 105d lrw r2, 0x20000560 // 777c + 770c: 8262 ld.b r3, (r2, 0x2) + 770e: 3170 movi r1, 112 + 7710: 68c5 andn r3, r1 + 7712: 07f3 br 0x76f8 // 76f8 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 7714: 105a lrw r2, 0x20000560 // 777c + 7716: 8262 ld.b r3, (r2, 0x2) + 7718: 3170 movi r1, 112 + 771a: 68c5 andn r3, r1 + 771c: 3ba5 bseti r3, 5 + 771e: 07ed br 0x76f8 // 76f8 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 7720: 1057 lrw r2, 0x20000560 // 777c + 7722: 8262 ld.b r3, (r2, 0x2) + 7724: 3170 movi r1, 112 + 7726: 68c5 andn r3, r1 + 7728: 3ba6 bseti r3, 6 + 772a: 07e7 br 0x76f8 // 76f8 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 772c: 3200 movi r2, 0 + 772e: 74cc zextb r3, r3 + 7730: 2a0f subi r2, 16 + 7732: 608c addu r2, r3 + 7734: 7488 zextb r2, r2 + 7736: 3a0f cmphsi r2, 16 + 7738: 0804 bt 0x7740 // 7740 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 773a: 1051 lrw r2, 0x20000560 // 777c + 773c: a261 st.b r3, (r2, 0x1) + 773e: 079b br 0x7674 // 7674 + }else if(RecData[7] == TEM_MAX_SET){ + 7740: 3220 movi r2, 32 + 7742: 648e cmpne r3, r2 + 7744: 0b98 bt 0x7674 // 7674 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 7746: 106e lrw r3, 0x20000560 // 777c + 7748: a341 st.b r2, (r3, 0x1) + 774a: 0795 br 0x7674 // 7674 + switch(RecData[7]) //风速 + 774c: 740c zextb r0, r3 + 774e: 106c lrw r3, 0x20000560 // 777c + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7750: 8342 ld.b r2, (r3, 0x2) + 7752: 310e movi r1, 14 + switch(RecData[7]) //风速 + 7754: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7756: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 7758: 080b bt 0x776e // 776e + 775a: e3ffcad1 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 775e: 0204 .short 0x0204 + 7760: 0806 .short 0x0806 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 7762: 3aa1 bseti r2, 1 + 7764: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7766: a342 st.b r2, (r3, 0x2) + 7768: 0786 br 0x7674 // 7674 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 776a: 3aa2 bseti r2, 2 + 776c: 07fd br 0x7766 // 7766 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 776e: 3aa1 bseti r2, 1 + 7770: 07fb br 0x7766 // 7766 + return ret = 0x01; + 7772: 3001 movi r0, 1 + } + else + { + return ret = 0x01; + } +} + 7774: 1493 pop r4-r6, r15 + 7776: 0000 bkpt + 7778: 200004a0 .long 0x200004a0 + 777c: 20000560 .long 0x20000560 + 7780: 2000043d .long 0x2000043d + 7784: 00008edd .long 0x00008edd + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00007788 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 7788: 14d2 push r4-r5, r15 + 778a: 6d43 mov r5, r0 + 778c: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 778e: e3ffff1f bsr 0x75cc // 75cc + 7792: 3840 cmpnei r0, 0 + 7794: 0803 bt 0x779a // 779a + { + return ret = 1; + } + } + + return ret; + 7796: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7798: 0404 br 0x77a0 // 77a0 + if (Len < 5){ //长度校验 + 779a: 3c04 cmphsi r4, 5 + 779c: 0803 bt 0x77a2 // 77a2 + return ret = 1; + 779e: 3001 movi r0, 1 + 77a0: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 77a2: 8540 ld.b r2, (r5, 0x0) + 77a4: 33ff movi r3, 255 + 77a6: 64ca cmpne r2, r3 + 77a8: 0c04 bf 0x77b0 // 77b0 + 77aa: 8561 ld.b r3, (r5, 0x1) + 77ac: 3b48 cmpnei r3, 8 + 77ae: 0bf8 bt 0x779e // 779e + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 77b0: 1125 lrw r1, 0x8eec // 7844 + 77b2: 3000 movi r0, 0 + 77b4: e3ffe1de bsr 0x3b70 // 3b70 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 77b8: 3c45 cmpnei r4, 5 + 77ba: 0814 bt 0x77e2 // 77e2 + 77bc: 3104 movi r1, 4 + 77be: 6c17 mov r0, r5 + 77c0: e3fffe2c bsr 0x7418 // 7418 + 77c4: 8564 ld.b r3, (r5, 0x4) + 77c6: 640e cmpne r3, r0 + 77c8: 0beb bt 0x779e // 779e + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 77ca: 1160 lrw r3, 0x20000560 // 7848 + 77cc: 8542 ld.b r2, (r5, 0x2) + 77ce: 8338 ld.b r1, (r3, 0x18) + 77d0: 6486 cmpne r1, r2 + 77d2: 0fe2 bf 0x7796 // 7796 + 77d4: 833a ld.b r1, (r3, 0x1a) + 77d6: 3941 cmpnei r1, 1 + 77d8: 0bdf bt 0x7796 // 7796 + TempCtrl.CardState = RecData[2]; + 77da: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 77dc: 3201 movi r2, 1 + 77de: a359 st.b r2, (r3, 0x19) + 77e0: 07db br 0x7796 // 7796 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 77e2: 3c09 cmphsi r4, 10 + 77e4: 0fdd bf 0x779e // 779e + 77e6: 5c27 subi r1, r4, 2 + 77e8: 7445 zexth r1, r1 + 77ea: 6114 addu r4, r5 + 77ec: 6c17 mov r0, r5 + 77ee: e3fffdf7 bsr 0x73dc // 73dc + 77f2: 5c63 subi r3, r4, 1 + 77f4: 8360 ld.b r3, (r3, 0x0) + 77f6: 2c01 subi r4, 2 + 77f8: 4368 lsli r3, r3, 8 + 77fa: 8440 ld.b r2, (r4, 0x0) + 77fc: 60c8 addu r3, r2 + 77fe: 64c2 cmpne r0, r3 + 7800: 0bcf bt 0x779e // 779e + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 7802: 1072 lrw r3, 0x20000560 // 7848 + 7804: 8543 ld.b r2, (r5, 0x3) + 7806: 8338 ld.b r1, (r3, 0x18) + 7808: 6486 cmpne r1, r2 + 780a: 0c07 bf 0x7818 // 7818 + 780c: 833a ld.b r1, (r3, 0x1a) + 780e: 3941 cmpnei r1, 1 + 7810: 0804 bt 0x7818 // 7818 + TempCtrl.CardState = RecData[3]; + 7812: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 7814: 3201 movi r2, 1 + 7816: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 7818: 8547 ld.b r2, (r5, 0x7) + 781a: 833b ld.b r1, (r3, 0x1b) + 781c: 6486 cmpne r1, r2 + 781e: 0c0d bf 0x7838 // 7838 + TempCtrl.SceneNo = RecData[7]; + 7820: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 7822: 104b lrw r2, 0x200000b8 // 784c + 7824: 9240 ld.w r2, (r2, 0x0) + 7826: 4a28 lsri r1, r2, 8 + 7828: a354 st.b r2, (r3, 0x14) + 782a: a335 st.b r1, (r3, 0x15) + 782c: 4a30 lsri r1, r2, 16 + 782e: 4a58 lsri r2, r2, 24 + 7830: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 7832: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 7834: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 7836: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7838: 835b ld.b r2, (r3, 0x1b) + 783a: 1026 lrw r1, 0x8efe // 7850 + 783c: 3000 movi r0, 0 + 783e: e3ffe199 bsr 0x3b70 // 3b70 + 7842: 07aa br 0x7796 // 7796 + 7844: 00008eec .long 0x00008eec + 7848: 20000560 .long 0x20000560 + 784c: 200000b8 .long 0x200000b8 + 7850: 00008efe .long 0x00008efe + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00007854 : + 7854: 1063 lrw r3, 0x20000058 // 7860 + 7856: 9340 ld.w r2, (r3, 0x0) + 7858: 926b ld.w r3, (r2, 0x2c) + 785a: 6c0c or r0, r3 + 785c: b20b st.w r0, (r2, 0x2c) + 785e: 783c jmp r15 + 7860: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00007864 : + 7864: 14c1 push r4 + 7866: 1069 lrw r3, 0x20000058 // 7888 + 7868: 3840 cmpnei r0, 0 + 786a: 9380 ld.w r4, (r3, 0x0) + 786c: 9400 ld.w r0, (r4, 0x0) + 786e: 0c0b bf 0x7884 // 7884 + 7870: 38a0 bseti r0, 0 + 7872: b400 st.w r0, (r4, 0x0) + 7874: 9360 ld.w r3, (r3, 0x0) + 7876: 4248 lsli r2, r2, 8 + 7878: 4122 lsli r1, r1, 2 + 787a: 9300 ld.w r0, (r3, 0x0) + 787c: 6c48 or r1, r2 + 787e: 6c40 or r1, r0 + 7880: b320 st.w r1, (r3, 0x0) + 7882: 1481 pop r4 + 7884: 3880 bclri r0, 0 + 7886: 07f6 br 0x7872 // 7872 + 7888: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +0000788c : + 788c: 14c4 push r4-r7 + 788e: 1429 subi r14, r14, 36 + 7890: b840 st.w r2, (r14, 0x0) + 7892: 984d ld.w r2, (r14, 0x34) + 7894: b841 st.w r2, (r14, 0x4) + 7896: 984e ld.w r2, (r14, 0x38) + 7898: b842 st.w r2, (r14, 0x8) + 789a: 984f ld.w r2, (r14, 0x3c) + 789c: b843 st.w r2, (r14, 0xc) + 789e: 9850 ld.w r2, (r14, 0x40) + 78a0: 9895 ld.w r4, (r14, 0x54) + 78a2: b844 st.w r2, (r14, 0x10) + 78a4: 9853 ld.w r2, (r14, 0x4c) + 78a6: b845 st.w r2, (r14, 0x14) + 78a8: b887 st.w r4, (r14, 0x1c) + 78aa: 9854 ld.w r2, (r14, 0x50) + 78ac: 1c11 addi r4, r14, 68 + 78ae: b846 st.w r2, (r14, 0x18) + 78b0: 8c80 ld.h r4, (r4, 0x0) + 78b2: 1a15 addi r2, r14, 84 + 78b4: 1d12 addi r5, r14, 72 + 78b6: 8244 ld.b r2, (r2, 0x4) + 78b8: 3c40 cmpnei r4, 0 + 78ba: 8dc0 ld.h r6, (r5, 0x0) + 78bc: b848 st.w r2, (r14, 0x20) + 78be: 0813 bt 0x78e4 // 78e4 + 78c0: 105f lrw r2, 0x2000004c // 793c + 78c2: 35f0 movi r5, 240 + 78c4: 92e0 ld.w r7, (r2, 0x0) + 78c6: 9740 ld.w r2, (r7, 0x0) + 78c8: 45a4 lsli r5, r5, 4 + 78ca: 6895 andn r2, r5 + 78cc: 3aab bseti r2, 11 + 78ce: b740 st.w r2, (r7, 0x0) + 78d0: 3502 movi r5, 2 + 78d2: 105c lrw r2, 0x20000050 // 7940 + 78d4: 3e41 cmpnei r6, 1 + 78d6: 9240 ld.w r2, (r2, 0x0) + 78d8: b2a0 st.w r5, (r2, 0x0) + 78da: 0828 bt 0x792a // 792a + 78dc: 92a4 ld.w r5, (r2, 0x10) + 78de: 3db8 bseti r5, 24 + 78e0: 3db9 bseti r5, 25 + 78e2: b2a4 st.w r5, (r2, 0x10) + 78e4: 1058 lrw r2, 0x20000058 // 7944 + 78e6: 448d lsli r4, r4, 13 + 78e8: 92a0 ld.w r5, (r2, 0x0) + 78ea: 9541 ld.w r2, (r5, 0x4) + 78ec: 3200 movi r2, 0 + 78ee: b541 st.w r2, (r5, 0x4) + 78f0: 9541 ld.w r2, (r5, 0x4) + 78f2: 98c7 ld.w r6, (r14, 0x1c) + 78f4: 6c98 or r2, r6 + 78f6: 98c6 ld.w r6, (r14, 0x18) + 78f8: 6c98 or r2, r6 + 78fa: 98c5 ld.w r6, (r14, 0x14) + 78fc: 6c98 or r2, r6 + 78fe: 98c8 ld.w r6, (r14, 0x20) + 7900: 46d8 lsli r6, r6, 24 + 7902: 6c98 or r2, r6 + 7904: 98c4 ld.w r6, (r14, 0x10) + 7906: 6c98 or r2, r6 + 7908: 98c3 ld.w r6, (r14, 0xc) + 790a: 6c98 or r2, r6 + 790c: 98c2 ld.w r6, (r14, 0x8) + 790e: 6c98 or r2, r6 + 7910: 98c1 ld.w r6, (r14, 0x4) + 7912: 6c98 or r2, r6 + 7914: 6c48 or r1, r2 + 7916: 9840 ld.w r2, (r14, 0x0) + 7918: 6c04 or r0, r1 + 791a: 4242 lsli r2, r2, 2 + 791c: 6c08 or r0, r2 + 791e: 6d00 or r4, r0 + 7920: 4367 lsli r3, r3, 7 + 7922: 6cd0 or r3, r4 + 7924: b561 st.w r3, (r5, 0x4) + 7926: 1409 addi r14, r14, 36 + 7928: 1484 pop r4-r7 + 792a: 3e40 cmpnei r6, 0 + 792c: 0bdc bt 0x78e4 // 78e4 + 792e: 9264 ld.w r3, (r2, 0x10) + 7930: 3b98 bclri r3, 24 + 7932: 3b99 bclri r3, 25 + 7934: 3bb8 bseti r3, 24 + 7936: b264 st.w r3, (r2, 0x10) + 7938: 3300 movi r3, 0 + 793a: 07d5 br 0x78e4 // 78e4 + 793c: 2000004c .long 0x2000004c + 7940: 20000050 .long 0x20000050 + 7944: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_IO_Enable: + +00007948 : + 7948: 14d4 push r4-r7, r15 + 794a: 1422 subi r14, r14, 8 + 794c: 1269 lrw r3, 0x2000004c // 7a70 + 794e: 31f0 movi r1, 240 + 7950: 9360 ld.w r3, (r3, 0x0) + 7952: 9340 ld.w r2, (r3, 0x0) + 7954: 4130 lsli r1, r1, 16 + 7956: 6885 andn r2, r1 + 7958: 3ab4 bseti r2, 20 + 795a: 3ab7 bseti r2, 23 + 795c: b340 st.w r2, (r3, 0x0) + 795e: 35f0 movi r5, 240 + 7960: 1245 lrw r2, 0x20000260 // 7a74 + 7962: 36f0 movi r6, 240 + 7964: 9240 ld.w r2, (r2, 0x0) + 7966: b841 st.w r2, (r14, 0x4) + 7968: 3400 movi r4, 0 + 796a: 1244 lrw r2, 0x20000048 // 7a78 + 796c: 45ac lsli r5, r5, 12 + 796e: 9240 ld.w r2, (r2, 0x0) + 7970: b820 st.w r1, (r14, 0x0) + 7972: 46c8 lsli r6, r6, 8 + 7974: 3701 movi r7, 1 + 7976: 71d0 lsl r7, r4 + 7978: 9821 ld.w r1, (r14, 0x4) + 797a: 69c4 and r7, r1 + 797c: 3f40 cmpnei r7, 0 + 797e: 7410 zextb r0, r4 + 7980: 0c1b bf 0x79b6 // 79b6 + 7982: 2800 subi r0, 1 + 7984: 380f cmphsi r0, 16 + 7986: 080b bt 0x799c // 799c + 7988: e3ffc9ba bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 798c: 27201a0f .long 0x27201a0f + 7990: 3d38312c .long 0x3d38312c + 7994: 56514a44 .long 0x56514a44 + 7998: 6c67615b .long 0x6c67615b + 799c: 9200 ld.w r0, (r2, 0x0) + 799e: 37f0 movi r7, 240 + 79a0: 681d andn r0, r7 + 79a2: 38a4 bseti r0, 4 + 79a4: 38a7 bseti r0, 7 + 79a6: b200 st.w r0, (r2, 0x0) + 79a8: 0407 br 0x79b6 // 79b6 + 79aa: 9300 ld.w r0, (r3, 0x0) + 79ac: 370f movi r7, 15 + 79ae: 681d andn r0, r7 + 79b0: 38a0 bseti r0, 0 + 79b2: 38a3 bseti r0, 3 + 79b4: b300 st.w r0, (r3, 0x0) + 79b6: 2400 addi r4, 1 + 79b8: 3c51 cmpnei r4, 17 + 79ba: 0bdd bt 0x7974 // 7974 + 79bc: 1402 addi r14, r14, 8 + 79be: 1494 pop r4-r7, r15 + 79c0: 9300 ld.w r0, (r3, 0x0) + 79c2: 37f0 movi r7, 240 + 79c4: 681d andn r0, r7 + 79c6: 38a4 bseti r0, 4 + 79c8: 38a7 bseti r0, 7 + 79ca: 07f5 br 0x79b4 // 79b4 + 79cc: 37f0 movi r7, 240 + 79ce: 9300 ld.w r0, (r3, 0x0) + 79d0: 47e4 lsli r7, r7, 4 + 79d2: 681d andn r0, r7 + 79d4: 38a8 bseti r0, 8 + 79d6: 38ab bseti r0, 11 + 79d8: 07ee br 0x79b4 // 79b4 + 79da: 9300 ld.w r0, (r3, 0x0) + 79dc: 6819 andn r0, r6 + 79de: 38ac bseti r0, 12 + 79e0: 38af bseti r0, 15 + 79e2: 07e9 br 0x79b4 // 79b4 + 79e4: 9300 ld.w r0, (r3, 0x0) + 79e6: 6815 andn r0, r5 + 79e8: 38b0 bseti r0, 16 + 79ea: 38b3 bseti r0, 19 + 79ec: 07e4 br 0x79b4 // 79b4 + 79ee: 37f0 movi r7, 240 + 79f0: 9200 ld.w r0, (r2, 0x0) + 79f2: 47e4 lsli r7, r7, 4 + 79f4: 681d andn r0, r7 + 79f6: 38a8 bseti r0, 8 + 79f8: 38ab bseti r0, 11 + 79fa: 07d6 br 0x79a6 // 79a6 + 79fc: 9200 ld.w r0, (r2, 0x0) + 79fe: 6819 andn r0, r6 + 7a00: 38ac bseti r0, 12 + 7a02: 38af bseti r0, 15 + 7a04: 07d1 br 0x79a6 // 79a6 + 7a06: 9301 ld.w r0, (r3, 0x4) + 7a08: 370f movi r7, 15 + 7a0a: 681d andn r0, r7 + 7a0c: 38a0 bseti r0, 0 + 7a0e: 38a3 bseti r0, 3 + 7a10: b301 st.w r0, (r3, 0x4) + 7a12: 07d2 br 0x79b6 // 79b6 + 7a14: 9301 ld.w r0, (r3, 0x4) + 7a16: 37f0 movi r7, 240 + 7a18: 681d andn r0, r7 + 7a1a: 38a4 bseti r0, 4 + 7a1c: 38a7 bseti r0, 7 + 7a1e: 07f9 br 0x7a10 // 7a10 + 7a20: 37f0 movi r7, 240 + 7a22: 9301 ld.w r0, (r3, 0x4) + 7a24: 47e4 lsli r7, r7, 4 + 7a26: 681d andn r0, r7 + 7a28: 38a8 bseti r0, 8 + 7a2a: 38ab bseti r0, 11 + 7a2c: 07f2 br 0x7a10 // 7a10 + 7a2e: 9301 ld.w r0, (r3, 0x4) + 7a30: 6819 andn r0, r6 + 7a32: 38ac bseti r0, 12 + 7a34: 38af bseti r0, 15 + 7a36: 07ed br 0x7a10 // 7a10 + 7a38: 9301 ld.w r0, (r3, 0x4) + 7a3a: 6815 andn r0, r5 + 7a3c: 38b0 bseti r0, 16 + 7a3e: 38b3 bseti r0, 19 + 7a40: 07e8 br 0x7a10 // 7a10 + 7a42: 9301 ld.w r0, (r3, 0x4) + 7a44: 9820 ld.w r1, (r14, 0x0) + 7a46: 6805 andn r0, r1 + 7a48: 38b4 bseti r0, 20 + 7a4a: 38b7 bseti r0, 23 + 7a4c: 07e2 br 0x7a10 // 7a10 + 7a4e: 9200 ld.w r0, (r2, 0x0) + 7a50: 370f movi r7, 15 + 7a52: 681d andn r0, r7 + 7a54: 38a0 bseti r0, 0 + 7a56: 38a3 bseti r0, 3 + 7a58: 07a7 br 0x79a6 // 79a6 + 7a5a: 9200 ld.w r0, (r2, 0x0) + 7a5c: 6815 andn r0, r5 + 7a5e: 38b0 bseti r0, 16 + 7a60: 38b3 bseti r0, 19 + 7a62: 07a2 br 0x79a6 // 79a6 + 7a64: 9200 ld.w r0, (r2, 0x0) + 7a66: 9820 ld.w r1, (r14, 0x0) + 7a68: 6805 andn r0, r1 + 7a6a: 38b4 bseti r0, 20 + 7a6c: 38b7 bseti r0, 23 + 7a6e: 079c br 0x79a6 // 79a6 + 7a70: 2000004c .long 0x2000004c + 7a74: 20000260 .long 0x20000260 + 7a78: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Sampling_prog: + +00007a7c : + 7a7c: 14c4 push r4-r7 + 7a7e: 1072 lrw r3, 0x20000054 // 7ac4 + 7a80: 1012 lrw r0, 0x2000083e // 7ac8 + 7a82: 1093 lrw r4, 0x200006af // 7acc + 7a84: 6d83 mov r6, r0 + 7a86: 93a0 ld.w r5, (r3, 0x0) + 7a88: 3300 movi r3, 0 + 7a8a: 4342 lsli r2, r3, 2 + 7a8c: 6094 addu r2, r5 + 7a8e: 9220 ld.w r1, (r2, 0x0) + 7a90: 4341 lsli r2, r3, 1 + 7a92: 6080 addu r2, r0 + 7a94: 7445 zexth r1, r1 + 7a96: aa20 st.h r1, (r2, 0x0) + 7a98: 8440 ld.b r2, (r4, 0x0) + 7a9a: 3a41 cmpnei r2, 1 + 7a9c: 080f bt 0x7aba // 7aba + 7a9e: 3300 movi r3, 0 + 7aa0: 10ec lrw r7, 0x20000598 // 7ad0 + 7aa2: 4341 lsli r2, r3, 1 + 7aa4: 5e28 addu r1, r6, r2 + 7aa6: 8920 ld.h r1, (r1, 0x0) + 7aa8: 2300 addi r3, 1 + 7aaa: 7445 zexth r1, r1 + 7aac: 609c addu r2, r7 + 7aae: 3b51 cmpnei r3, 17 + 7ab0: aa20 st.h r1, (r2, 0x0) + 7ab2: 0bf8 bt 0x7aa2 // 7aa2 + 7ab4: 3300 movi r3, 0 + 7ab6: a460 st.b r3, (r4, 0x0) + 7ab8: 3311 movi r3, 17 + 7aba: 2300 addi r3, 1 + 7abc: 74cc zextb r3, r3 + 7abe: 3b10 cmphsi r3, 17 + 7ac0: 0fe5 bf 0x7a8a // 7a8a + 7ac2: 1484 pop r4-r7 + 7ac4: 20000054 .long 0x20000054 + 7ac8: 2000083e .long 0x2000083e + 7acc: 200006af .long 0x200006af + 7ad0: 20000598 .long 0x20000598 + +Disassembly of section .text.TKEYIntHandler: + +00007ad4 : + 7ad4: 1460 nie + 7ad6: 1462 ipush + 7ad8: 14d1 push r4, r15 + 7ada: 109e lrw r4, 0x20000070 // 7b50 + 7adc: 9460 ld.w r3, (r4, 0x0) + 7ade: 3b40 cmpnei r3, 0 + 7ae0: 080b bt 0x7af6 // 7af6 + 7ae2: 3301 movi r3, 1 + 7ae4: b460 st.w r3, (r4, 0x0) + 7ae6: 107c lrw r3, 0x2000062c // 7b54 + 7ae8: 8360 ld.b r3, (r3, 0x0) + 7aea: 3b41 cmpnei r3, 1 + 7aec: 0805 bt 0x7af6 // 7af6 + 7aee: e3ffffc7 bsr 0x7a7c // 7a7c + 7af2: 3301 movi r3, 1 + 7af4: a464 st.b r3, (r4, 0x4) + 7af6: 1079 lrw r3, 0x20000058 // 7b58 + 7af8: 3101 movi r1, 1 + 7afa: 9360 ld.w r3, (r3, 0x0) + 7afc: 934a ld.w r2, (r3, 0x28) + 7afe: 6884 and r2, r1 + 7b00: 3a40 cmpnei r2, 0 + 7b02: 0c02 bf 0x7b06 // 7b06 + 7b04: b32c st.w r1, (r3, 0x30) + 7b06: 934a ld.w r2, (r3, 0x28) + 7b08: 3102 movi r1, 2 + 7b0a: 6884 and r2, r1 + 7b0c: 3a40 cmpnei r2, 0 + 7b0e: 0c02 bf 0x7b12 // 7b12 + 7b10: b32c st.w r1, (r3, 0x30) + 7b12: 934a ld.w r2, (r3, 0x28) + 7b14: 3104 movi r1, 4 + 7b16: 6884 and r2, r1 + 7b18: 3a40 cmpnei r2, 0 + 7b1a: 0c02 bf 0x7b1e // 7b1e + 7b1c: b32c st.w r1, (r3, 0x30) + 7b1e: 934a ld.w r2, (r3, 0x28) + 7b20: 3108 movi r1, 8 + 7b22: 6884 and r2, r1 + 7b24: 3a40 cmpnei r2, 0 + 7b26: 0c02 bf 0x7b2a // 7b2a + 7b28: b32c st.w r1, (r3, 0x30) + 7b2a: 934a ld.w r2, (r3, 0x28) + 7b2c: 3110 movi r1, 16 + 7b2e: 6884 and r2, r1 + 7b30: 3a40 cmpnei r2, 0 + 7b32: 0c02 bf 0x7b36 // 7b36 + 7b34: b32c st.w r1, (r3, 0x30) + 7b36: 934a ld.w r2, (r3, 0x28) + 7b38: 3120 movi r1, 32 + 7b3a: 6884 and r2, r1 + 7b3c: 3a40 cmpnei r2, 0 + 7b3e: 0c02 bf 0x7b42 // 7b42 + 7b40: b32c st.w r1, (r3, 0x30) + 7b42: d9ee2001 ld.w r15, (r14, 0x4) + 7b46: 9880 ld.w r4, (r14, 0x0) + 7b48: 1402 addi r14, r14, 8 + 7b4a: 1463 ipop + 7b4c: 1461 nir + 7b4e: 0000 bkpt + 7b50: 20000070 .long 0x20000070 + 7b54: 2000062c .long 0x2000062c + 7b58: 20000058 .long 0x20000058 + +Disassembly of section .text.get_key_number: + +00007b5c : + 7b5c: 14c2 push r4-r5 + 7b5e: 3200 movi r2, 0 + 7b60: 3000 movi r0, 0 + 7b62: 1088 lrw r4, 0x200006cc // 7b80 + 7b64: 3501 movi r5, 1 + 7b66: 3120 movi r1, 32 + 7b68: 9460 ld.w r3, (r4, 0x0) + 7b6a: 70c9 lsr r3, r2 + 7b6c: 68d4 and r3, r5 + 7b6e: 3b40 cmpnei r3, 0 + 7b70: 0c02 bf 0x7b74 // 7b74 + 7b72: 2000 addi r0, 1 + 7b74: 2200 addi r2, 1 + 7b76: 644a cmpne r2, r1 + 7b78: 0bf8 bt 0x7b68 // 7b68 + 7b7a: 7400 zextb r0, r0 + 7b7c: 1482 pop r4-r5 + 7b7e: 0000 bkpt + 7b80: 200006cc .long 0x200006cc + +Disassembly of section .text.TK_Baseline_prog: + +00007b84 : + 7b84: 14c4 push r4-r7 + 7b86: 1423 subi r14, r14, 12 + 7b88: 1079 lrw r3, 0x20000058 // 7bec + 7b8a: 105a lrw r2, 0x20000598 // 7bf0 + 7b8c: 10ba lrw r5, 0x20000070 // 7bf4 + 7b8e: b842 st.w r2, (r14, 0x8) + 7b90: 9360 ld.w r3, (r3, 0x0) + 7b92: b860 st.w r3, (r14, 0x0) + 7b94: 1079 lrw r3, 0x20000054 // 7bf8 + 7b96: 9360 ld.w r3, (r3, 0x0) + 7b98: b861 st.w r3, (r14, 0x4) + 7b9a: 3306 movi r3, 6 + 7b9c: 3201 movi r2, 1 + 7b9e: 9820 ld.w r1, (r14, 0x0) + 7ba0: b142 st.w r2, (r1, 0x8) + 7ba2: 3200 movi r2, 0 + 7ba4: b540 st.w r2, (r5, 0x0) + 7ba6: 9540 ld.w r2, (r5, 0x0) + 7ba8: 3a40 cmpnei r2, 0 + 7baa: 0ffe bf 0x7ba6 // 7ba6 + 7bac: 6c03 mov r0, r0 + 7bae: 3200 movi r2, 0 + 7bb0: 10d3 lrw r6, 0x2000083e // 7bfc + 7bb2: 4202 lsli r0, r2, 2 + 7bb4: 9821 ld.w r1, (r14, 0x4) + 7bb6: 6004 addu r0, r1 + 7bb8: 9080 ld.w r4, (r0, 0x0) + 7bba: 4221 lsli r1, r2, 1 + 7bbc: 98e2 ld.w r7, (r14, 0x8) + 7bbe: 61c4 addu r7, r1 + 7bc0: 7511 zexth r4, r4 + 7bc2: af80 st.h r4, (r7, 0x0) + 7bc4: 9000 ld.w r0, (r0, 0x0) + 7bc6: 2200 addi r2, 1 + 7bc8: 7401 zexth r0, r0 + 7bca: 6058 addu r1, r6 + 7bcc: 3a51 cmpnei r2, 17 + 7bce: a900 st.h r0, (r1, 0x0) + 7bd0: 0bf1 bt 0x7bb2 // 7bb2 + 7bd2: 2b00 subi r3, 1 + 7bd4: 74cc zextb r3, r3 + 7bd6: 3b40 cmpnei r3, 0 + 7bd8: 0be2 bt 0x7b9c // 7b9c + 7bda: 106a lrw r3, 0x2000062c // 7c00 + 7bdc: 3201 movi r2, 1 + 7bde: a340 st.b r2, (r3, 0x0) + 7be0: 3200 movi r2, 0 + 7be2: 1069 lrw r3, 0x200007b5 // 7c04 + 7be4: a340 st.b r2, (r3, 0x0) + 7be6: 1403 addi r14, r14, 12 + 7be8: 1484 pop r4-r7 + 7bea: 0000 bkpt + 7bec: 20000058 .long 0x20000058 + 7bf0: 20000598 .long 0x20000598 + 7bf4: 20000070 .long 0x20000070 + 7bf8: 20000054 .long 0x20000054 + 7bfc: 2000083e .long 0x2000083e + 7c00: 2000062c .long 0x2000062c + 7c04: 200007b5 .long 0x200007b5 + +Disassembly of section .text.TK_Scan_Start: + +00007c08 : + 7c08: 1046 lrw r2, 0x20000070 // 7c20 + 7c0a: 8264 ld.b r3, (r2, 0x4) + 7c0c: 74cc zextb r3, r3 + 7c0e: 3b41 cmpnei r3, 1 + 7c10: 0807 bt 0x7c1e // 7c1e + 7c12: 1025 lrw r1, 0x20000058 // 7c24 + 7c14: 9120 ld.w r1, (r1, 0x0) + 7c16: b162 st.w r3, (r1, 0x8) + 7c18: 3300 movi r3, 0 + 7c1a: b260 st.w r3, (r2, 0x0) + 7c1c: a264 st.b r3, (r2, 0x4) + 7c1e: 783c jmp r15 + 7c20: 20000070 .long 0x20000070 + 7c24: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_Keymap_prog: + +00007c28 : + 7c28: 14d4 push r4-r7, r15 + 7c2a: 1425 subi r14, r14, 20 + 7c2c: 1271 lrw r3, 0x2000025c // 7d70 + 7c2e: 8360 ld.b r3, (r3, 0x0) + 7c30: b860 st.w r3, (r14, 0x0) + 7c32: 3400 movi r4, 0 + 7c34: 1270 lrw r3, 0x20000230 // 7d74 + 7c36: 8360 ld.b r3, (r3, 0x0) + 7c38: b861 st.w r3, (r14, 0x4) + 7c3a: 12f0 lrw r7, 0x20000642 // 7d78 + 7c3c: 1270 lrw r3, 0x20000239 // 7d7c + 7c3e: 83a0 ld.b r5, (r3, 0x0) + 7c40: 1270 lrw r3, 0x20000238 // 7d80 + 7c42: 8360 ld.b r3, (r3, 0x0) + 7c44: b862 st.w r3, (r14, 0x8) + 7c46: 6d9f mov r6, r7 + 7c48: 126f lrw r3, 0x2000083e // 7d84 + 7c4a: b863 st.w r3, (r14, 0xc) + 7c4c: 4461 lsli r3, r4, 1 + 7c4e: 9843 ld.w r2, (r14, 0xc) + 7c50: 608c addu r2, r3 + 7c52: 122e lrw r1, 0x20000598 // 7d88 + 7c54: 604c addu r1, r3 + 7c56: 8a40 ld.h r2, (r2, 0x0) + 7c58: 8920 ld.h r1, (r1, 0x0) + 7c5a: 6086 subu r2, r1 + 7c5c: 748b sexth r2, r2 + 7c5e: 5f2c addu r1, r7, r3 + 7c60: a940 st.h r2, (r1, 0x0) + 7c62: 8940 ld.h r2, (r1, 0x0) + 7c64: 748b sexth r2, r2 + 7c66: 3adf btsti r2, 31 + 7c68: 1249 lrw r2, 0x200007fa // 7d8c + 7c6a: 608c addu r2, r3 + 7c6c: 0c37 bf 0x7cda // 7cda + 7c6e: 3100 movi r1, 0 + 7c70: aa20 st.h r1, (r2, 0x0) + 7c72: 9840 ld.w r2, (r14, 0x0) + 7c74: 3a01 cmphsi r2, 2 + 7c76: 0c6d bf 0x7d50 // 7d50 + 7c78: 4461 lsli r3, r4, 1 + 7c7a: 5e2c addu r1, r6, r3 + 7c7c: 1205 lrw r0, 0x2000028a // 7d90 + 7c7e: 8940 ld.h r2, (r1, 0x0) + 7c80: 60c0 addu r3, r0 + 7c82: 748b sexth r2, r2 + 7c84: 8b60 ld.h r3, (r3, 0x0) + 7c86: 648d cmplt r3, r2 + 7c88: 9840 ld.w r2, (r14, 0x0) + 7c8a: 7cc8 mult r3, r2 + 7c8c: 0c2a bf 0x7ce0 // 7ce0 + 7c8e: 8940 ld.h r2, (r1, 0x0) + 7c90: 748b sexth r2, r2 + 7c92: 64c9 cmplt r2, r3 + 7c94: 0c26 bf 0x7ce0 // 7ce0 + 7c96: 1240 lrw r2, 0x20000630 // 7d94 + 7c98: 6090 addu r2, r4 + 7c9a: 8260 ld.b r3, (r2, 0x0) + 7c9c: 2300 addi r3, 1 + 7c9e: 74cc zextb r3, r3 + 7ca0: a260 st.b r3, (r2, 0x0) + 7ca2: 3100 movi r1, 0 + 7ca4: 117d lrw r3, 0x20000616 // 7d98 + 7ca6: 60d0 addu r3, r4 + 7ca8: a320 st.b r1, (r3, 0x0) + 7caa: 117d lrw r3, 0x200006f2 // 7d9c + 7cac: 60d0 addu r3, r4 + 7cae: a320 st.b r1, (r3, 0x0) + 7cb0: 117c lrw r3, 0x2000076c // 7da0 + 7cb2: 60d0 addu r3, r4 + 7cb4: a320 st.b r1, (r3, 0x0) + 7cb6: 8260 ld.b r3, (r2, 0x0) + 7cb8: 9821 ld.w r1, (r14, 0x4) + 7cba: 64c4 cmphs r1, r3 + 7cbc: 081f bt 0x7cfa // 7cfa + 7cbe: 3d40 cmpnei r5, 0 + 7cc0: 0852 bt 0x7d64 // 7d64 + 7cc2: 1139 lrw r1, 0x20000628 // 7da4 + 7cc4: 9160 ld.w r3, (r1, 0x0) + 7cc6: 3b40 cmpnei r3, 0 + 7cc8: 0806 bt 0x7cd4 // 7cd4 + 7cca: 9100 ld.w r0, (r1, 0x0) + 7ccc: 3301 movi r3, 1 + 7cce: 70d0 lsl r3, r4 + 7cd0: 6cc0 or r3, r0 + 7cd2: b160 st.w r3, (r1, 0x0) + 7cd4: 3300 movi r3, 0 + 7cd6: a260 st.b r3, (r2, 0x0) + 7cd8: 0411 br 0x7cfa // 7cfa + 7cda: 8920 ld.h r1, (r1, 0x0) + 7cdc: 7445 zexth r1, r1 + 7cde: 07c9 br 0x7c70 // 7c70 + 7ce0: 4441 lsli r2, r4, 1 + 7ce2: 6098 addu r2, r6 + 7ce4: 8a40 ld.h r2, (r2, 0x0) + 7ce6: 748b sexth r2, r2 + 7ce8: 648d cmplt r3, r2 + 7cea: 0c08 bf 0x7cfa // 7cfa + 7cec: 3300 movi r3, 0 + 7cee: 114e lrw r2, 0x20000628 // 7da4 + 7cf0: 2b01 subi r3, 2 + 7cf2: 9220 ld.w r1, (r2, 0x0) + 7cf4: 70d3 rotl r3, r4 + 7cf6: 68c4 and r3, r1 + 7cf8: b260 st.w r3, (r2, 0x0) + 7cfa: 4441 lsli r2, r4, 1 + 7cfc: 5e68 addu r3, r6, r2 + 7cfe: 8b60 ld.h r3, (r3, 0x0) + 7d00: 74cf sexth r3, r3 + 7d02: b864 st.w r3, (r14, 0x10) + 7d04: 3105 movi r1, 5 + 7d06: 1163 lrw r3, 0x2000028a // 7d90 + 7d08: 608c addu r2, r3 + 7d0a: 8a00 ld.h r0, (r2, 0x0) + 7d0c: 4002 lsli r0, r0, 2 + 7d0e: e3ffdd7b bsr 0x3804 // 3804 <__divsi3> + 7d12: 9864 ld.w r3, (r14, 0x10) + 7d14: 640d cmplt r3, r0 + 7d16: 0c18 bf 0x7d46 // 7d46 + 7d18: 1140 lrw r2, 0x20000616 // 7d98 + 7d1a: 6090 addu r2, r4 + 7d1c: 8260 ld.b r3, (r2, 0x0) + 7d1e: 2300 addi r3, 1 + 7d20: 74cc zextb r3, r3 + 7d22: a260 st.b r3, (r2, 0x0) + 7d24: 3100 movi r1, 0 + 7d26: 107c lrw r3, 0x20000630 // 7d94 + 7d28: 60d0 addu r3, r4 + 7d2a: a320 st.b r1, (r3, 0x0) + 7d2c: 8260 ld.b r3, (r2, 0x0) + 7d2e: 9822 ld.w r1, (r14, 0x8) + 7d30: 64c4 cmphs r1, r3 + 7d32: 080a bt 0x7d46 // 7d46 + 7d34: 3300 movi r3, 0 + 7d36: 103c lrw r1, 0x20000628 // 7da4 + 7d38: 2b01 subi r3, 2 + 7d3a: 9100 ld.w r0, (r1, 0x0) + 7d3c: 70d3 rotl r3, r4 + 7d3e: 68c0 and r3, r0 + 7d40: b160 st.w r3, (r1, 0x0) + 7d42: 3300 movi r3, 0 + 7d44: a260 st.b r3, (r2, 0x0) + 7d46: 2400 addi r4, 1 + 7d48: 3c51 cmpnei r4, 17 + 7d4a: 0b81 bt 0x7c4c // 7c4c + 7d4c: 1405 addi r14, r14, 20 + 7d4e: 1494 pop r4-r7, r15 + 7d50: 60d8 addu r3, r6 + 7d52: 4441 lsli r2, r4, 1 + 7d54: 102f lrw r1, 0x2000028a // 7d90 + 7d56: 8b60 ld.h r3, (r3, 0x0) + 7d58: 6084 addu r2, r1 + 7d5a: 74cf sexth r3, r3 + 7d5c: 8a40 ld.h r2, (r2, 0x0) + 7d5e: 64c9 cmplt r2, r3 + 7d60: 0fcd bf 0x7cfa // 7cfa + 7d62: 079a br 0x7c96 // 7c96 + 7d64: 3d41 cmpnei r5, 1 + 7d66: 0bb7 bt 0x7cd4 // 7cd4 + 7d68: 102f lrw r1, 0x20000628 // 7da4 + 7d6a: 6cd7 mov r3, r5 + 7d6c: 9100 ld.w r0, (r1, 0x0) + 7d6e: 07b0 br 0x7cce // 7cce + 7d70: 2000025c .long 0x2000025c + 7d74: 20000230 .long 0x20000230 + 7d78: 20000642 .long 0x20000642 + 7d7c: 20000239 .long 0x20000239 + 7d80: 20000238 .long 0x20000238 + 7d84: 2000083e .long 0x2000083e + 7d88: 20000598 .long 0x20000598 + 7d8c: 200007fa .long 0x200007fa + 7d90: 2000028a .long 0x2000028a + 7d94: 20000630 .long 0x20000630 + 7d98: 20000616 .long 0x20000616 + 7d9c: 200006f2 .long 0x200006f2 + 7da0: 2000076c .long 0x2000076c + 7da4: 20000628 .long 0x20000628 + +Disassembly of section .text.TK_overflow_predict: + +00007da8 : + 7da8: 14d4 push r4-r7, r15 + 7daa: 1421 subi r14, r14, 4 + 7dac: 11d9 lrw r6, 0x20000070 // 7e90 + 7dae: 8665 ld.b r3, (r6, 0x5) + 7db0: 3b41 cmpnei r3, 1 + 7db2: 085f bt 0x7e70 // 7e70 + 7db4: 1158 lrw r2, 0x20000748 // 7e94 + 7db6: 8260 ld.b r3, (r2, 0x0) + 7db8: 2300 addi r3, 1 + 7dba: 74cc zextb r3, r3 + 7dbc: a260 st.b r3, (r2, 0x0) + 7dbe: 8260 ld.b r3, (r2, 0x0) + 7dc0: 1136 lrw r1, 0x2000025d // 7e98 + 7dc2: 8120 ld.b r1, (r1, 0x0) + 7dc4: 64c4 cmphs r1, r3 + 7dc6: 0855 bt 0x7e70 // 7e70 + 7dc8: 3300 movi r3, 0 + 7dca: a260 st.b r3, (r2, 0x0) + 7dcc: 3500 movi r5, 0 + 7dce: 11f4 lrw r7, 0x20000260 // 7e9c + 7dd0: 2605 addi r6, 6 + 7dd2: 9760 ld.w r3, (r7, 0x0) + 7dd4: 70d5 lsr r3, r5 + 7dd6: 3201 movi r2, 1 + 7dd8: 68c8 and r3, r2 + 7dda: 3b40 cmpnei r3, 0 + 7ddc: 0c34 bf 0x7e44 // 7e44 + 7dde: 4581 lsli r4, r5, 1 + 7de0: 5e70 addu r3, r6, r4 + 7de2: 8b00 ld.h r0, (r3, 0x0) + 7de4: e3ffcbfa bsr 0x15d8 // 15d8 <__floatunsidf> + 7de8: 6cc7 mov r3, r1 + 7dea: 3180 movi r1, 128 + 7dec: 6c83 mov r2, r0 + 7dee: 4137 lsli r1, r1, 23 + 7df0: 3000 movi r0, 0 + 7df2: e3ffc1e1 bsr 0x1b4 // 1b4 <__GI_pow> + 7df6: 116b lrw r3, 0x20000266 // 7ea0 + 7df8: 60d0 addu r3, r4 + 7dfa: 8b60 ld.h r3, (r3, 0x0) + 7dfc: 4364 lsli r3, r3, 4 + 7dfe: 230e addi r3, 15 + 7e00: b860 st.w r3, (r14, 0x0) + 7e02: e3ffc7a3 bsr 0xd48 // d48 <__fixunsdfsi> + 7e06: 9860 ld.w r3, (r14, 0x0) + 7e08: 7cc0 mult r3, r0 + 7e0a: 1147 lrw r2, 0x200007d8 // 7ea4 + 7e0c: 740d zexth r0, r3 + 7e0e: 6090 addu r2, r4 + 7e10: 1166 lrw r3, 0x2000083e // 7ea8 + 7e12: 60d0 addu r3, r4 + 7e14: aa00 st.h r0, (r2, 0x0) + 7e16: 8b60 ld.h r3, (r3, 0x0) + 7e18: 8a00 ld.h r0, (r2, 0x0) + 7e1a: 7401 zexth r0, r0 + 7e1c: 325f movi r2, 95 + 7e1e: 74cd zexth r3, r3 + 7e20: 7c08 mult r0, r2 + 7e22: 3164 movi r1, 100 + 7e24: b860 st.w r3, (r14, 0x0) + 7e26: e3ffdcef bsr 0x3804 // 3804 <__divsi3> + 7e2a: 9860 ld.w r3, (r14, 0x0) + 7e2c: 64c1 cmplt r0, r3 + 7e2e: 0c0b bf 0x7e44 // 7e44 + 7e30: 107f lrw r3, 0x2000023a // 7eac + 7e32: 610c addu r4, r3 + 7e34: 8c60 ld.h r3, (r4, 0x0) + 7e36: 3b06 cmphsi r3, 7 + 7e38: 0806 bt 0x7e44 // 7e44 + 7e3a: 2300 addi r3, 1 + 7e3c: ac60 st.h r3, (r4, 0x0) + 7e3e: 3201 movi r2, 1 + 7e40: 107c lrw r3, 0x2000069d // 7eb0 + 7e42: a340 st.b r2, (r3, 0x0) + 7e44: 2500 addi r5, 1 + 7e46: 3d51 cmpnei r5, 17 + 7e48: 0bc5 bt 0x7dd2 // 7dd2 + 7e4a: 107a lrw r3, 0x2000069d // 7eb0 + 7e4c: 8340 ld.b r2, (r3, 0x0) + 7e4e: 3a41 cmpnei r2, 1 + 7e50: 0810 bt 0x7e70 // 7e70 + 7e52: 3200 movi r2, 0 + 7e54: a340 st.b r2, (r3, 0x0) + 7e56: 3200 movi r2, 0 + 7e58: 1077 lrw r3, 0x20000058 // 7eb4 + 7e5a: 1018 lrw r0, 0x2000076b // 7eb8 + 7e5c: 10b8 lrw r5, 0x200007a4 // 7ebc + 7e5e: 10d4 lrw r6, 0x2000023a // 7eac + 7e60: 9360 ld.w r3, (r3, 0x0) + 7e62: b342 st.w r2, (r3, 0x8) + 7e64: 1077 lrw r3, 0x20000054 // 7ec0 + 7e66: 9380 ld.w r4, (r3, 0x0) + 7e68: 3300 movi r3, 0 + 7e6a: 8040 ld.b r2, (r0, 0x0) + 7e6c: 648c cmphs r3, r2 + 7e6e: 0c03 bf 0x7e74 // 7e74 + 7e70: 1401 addi r14, r14, 4 + 7e72: 1494 pop r4-r7, r15 + 7e74: 5d4c addu r2, r5, r3 + 7e76: 8240 ld.b r2, (r2, 0x0) + 7e78: 4241 lsli r2, r2, 1 + 7e7a: 4322 lsli r1, r3, 2 + 7e7c: 6098 addu r2, r6 + 7e7e: 6050 addu r1, r4 + 7e80: 8a40 ld.h r2, (r2, 0x0) + 7e82: 91f2 ld.w r7, (r1, 0x48) + 7e84: 4254 lsli r2, r2, 20 + 7e86: 6c9c or r2, r7 + 7e88: 2300 addi r3, 1 + 7e8a: b152 st.w r2, (r1, 0x48) + 7e8c: 74cc zextb r3, r3 + 7e8e: 07ee br 0x7e6a // 7e6a + 7e90: 20000070 .long 0x20000070 + 7e94: 20000748 .long 0x20000748 + 7e98: 2000025d .long 0x2000025d + 7e9c: 20000260 .long 0x20000260 + 7ea0: 20000266 .long 0x20000266 + 7ea4: 200007d8 .long 0x200007d8 + 7ea8: 2000083e .long 0x2000083e + 7eac: 2000023a .long 0x2000023a + 7eb0: 2000069d .long 0x2000069d + 7eb4: 20000058 .long 0x20000058 + 7eb8: 2000076b .long 0x2000076b + 7ebc: 200007a4 .long 0x200007a4 + 7ec0: 20000054 .long 0x20000054 + +Disassembly of section .text.TK_Baseline_tracking: + +00007ec4 : + 7ec4: 14c4 push r4-r7 + 7ec6: 1422 subi r14, r14, 8 + 7ec8: 1348 lrw r2, 0x200006ca // 8068 + 7eca: 8260 ld.b r3, (r2, 0x0) + 7ecc: 2300 addi r3, 1 + 7ece: 74cc zextb r3, r3 + 7ed0: a260 st.b r3, (r2, 0x0) + 7ed2: 8260 ld.b r3, (r2, 0x0) + 7ed4: 1326 lrw r1, 0x2000025d // 806c + 7ed6: 8120 ld.b r1, (r1, 0x0) + 7ed8: 644c cmphs r3, r1 + 7eda: 0cad bf 0x8034 // 8034 + 7edc: 3300 movi r3, 0 + 7ede: a260 st.b r3, (r2, 0x0) + 7ee0: 1364 lrw r3, 0x20000628 // 8070 + 7ee2: 9360 ld.w r3, (r3, 0x0) + 7ee4: 3b40 cmpnei r3, 0 + 7ee6: 08a7 bt 0x8034 // 8034 + 7ee8: 1323 lrw r1, 0x20000642 // 8074 + 7eea: 6dc7 mov r7, r1 + 7eec: b820 st.w r1, (r14, 0x0) + 7eee: 3200 movi r2, 0 + 7ef0: 1362 lrw r3, 0x2000028a // 8078 + 7ef2: 1323 lrw r1, 0x20000598 // 807c + 7ef4: 4201 lsli r0, r2, 1 + 7ef6: 9880 ld.w r4, (r14, 0x0) + 7ef8: 6100 addu r4, r0 + 7efa: 8c80 ld.h r4, (r4, 0x0) + 7efc: 7513 sexth r4, r4 + 7efe: 3cdf btsti r4, 31 + 7f00: 0c27 bf 0x7f4e // 7f4e + 7f02: 13a0 lrw r5, 0x2000083e // 8080 + 7f04: 5980 addu r4, r1, r0 + 7f06: 6014 addu r0, r5 + 7f08: b881 st.w r4, (r14, 0x4) + 7f0a: 8c80 ld.h r4, (r4, 0x0) + 7f0c: 88c0 ld.h r6, (r0, 0x0) + 7f0e: 7511 zexth r4, r4 + 7f10: 7599 zexth r6, r6 + 7f12: 8ba0 ld.h r5, (r3, 0x0) + 7f14: 611a subu r4, r6 + 7f16: 6551 cmplt r4, r5 + 7f18: 081b bt 0x7f4e // 7f4e + 7f1a: 9881 ld.w r4, (r14, 0x4) + 7f1c: 8c80 ld.h r4, (r4, 0x0) + 7f1e: 8800 ld.h r0, (r0, 0x0) + 7f20: 7511 zexth r4, r4 + 7f22: 7401 zexth r0, r0 + 7f24: 5c01 subu r0, r4, r0 + 7f26: 4581 lsli r4, r5, 1 + 7f28: 6150 addu r5, r4 + 7f2a: 6541 cmplt r0, r5 + 7f2c: 0c11 bf 0x7f4e // 7f4e + 7f2e: 1296 lrw r4, 0x2000076c // 8084 + 7f30: 6108 addu r4, r2 + 7f32: 8400 ld.b r0, (r4, 0x0) + 7f34: 2000 addi r0, 1 + 7f36: 7400 zextb r0, r0 + 7f38: a400 st.b r0, (r4, 0x0) + 7f3a: 1214 lrw r0, 0x20000090 // 8088 + 7f3c: 84a0 ld.b r5, (r4, 0x0) + 7f3e: 8008 ld.b r0, (r0, 0x8) + 7f40: 6540 cmphs r0, r5 + 7f42: 0806 bt 0x7f4e // 7f4e + 7f44: 1212 lrw r0, 0x200006af // 808c + 7f46: 3501 movi r5, 1 + 7f48: a0a0 st.b r5, (r0, 0x0) + 7f4a: 3000 movi r0, 0 + 7f4c: a400 st.b r0, (r4, 0x0) + 7f4e: 4201 lsli r0, r2, 1 + 7f50: 5f80 addu r4, r7, r0 + 7f52: 8c80 ld.h r4, (r4, 0x0) + 7f54: 7513 sexth r4, r4 + 7f56: 3c20 cmplti r4, 1 + 7f58: 0870 bt 0x8038 // 8038 + 7f5a: 128a lrw r4, 0x2000083e // 8080 + 7f5c: 6100 addu r4, r0 + 7f5e: 59a0 addu r5, r1, r0 + 7f60: 8c80 ld.h r4, (r4, 0x0) + 7f62: 8da0 ld.h r5, (r5, 0x0) + 7f64: 7555 zexth r5, r5 + 7f66: 7511 zexth r4, r4 + 7f68: 6116 subu r4, r5 + 7f6a: 8ba0 ld.h r5, (r3, 0x0) + 7f6c: 45a2 lsli r5, r5, 2 + 7f6e: 6551 cmplt r4, r5 + 7f70: 0864 bt 0x8038 // 8038 + 7f72: 1288 lrw r4, 0x200006f2 // 8090 + 7f74: 6108 addu r4, r2 + 7f76: 84a0 ld.b r5, (r4, 0x0) + 7f78: 2500 addi r5, 1 + 7f7a: 7554 zextb r5, r5 + 7f7c: a4a0 st.b r5, (r4, 0x0) + 7f7e: 12a3 lrw r5, 0x20000090 // 8088 + 7f80: 84c0 ld.b r6, (r4, 0x0) + 7f82: 85a9 ld.b r5, (r5, 0x9) + 7f84: 6594 cmphs r5, r6 + 7f86: 0806 bt 0x7f92 // 7f92 + 7f88: 12a1 lrw r5, 0x200006af // 808c + 7f8a: 3601 movi r6, 1 + 7f8c: a5c0 st.b r6, (r5, 0x0) + 7f8e: 3500 movi r5, 0 + 7f90: a4a0 st.b r5, (r4, 0x0) + 7f92: 5f80 addu r4, r7, r0 + 7f94: 8c80 ld.h r4, (r4, 0x0) + 7f96: 7513 sexth r4, r4 + 7f98: 3cdf btsti r4, 31 + 7f9a: 0c10 bf 0x7fba // 7fba + 7f9c: 11d9 lrw r6, 0x2000083e // 8080 + 7f9e: 59a0 addu r5, r1, r0 + 7fa0: 6180 addu r6, r0 + 7fa2: 8d80 ld.h r4, (r5, 0x0) + 7fa4: 8ec0 ld.h r6, (r6, 0x0) + 7fa6: 7599 zexth r6, r6 + 7fa8: 7511 zexth r4, r4 + 7faa: 611a subu r4, r6 + 7fac: 8bc0 ld.h r6, (r3, 0x0) + 7fae: 6591 cmplt r4, r6 + 7fb0: 0c05 bf 0x7fba // 7fba + 7fb2: 8d80 ld.h r4, (r5, 0x0) + 7fb4: 2c00 subi r4, 1 + 7fb6: 7511 zexth r4, r4 + 7fb8: ad80 st.h r4, (r5, 0x0) + 7fba: 5f80 addu r4, r7, r0 + 7fbc: 8c80 ld.h r4, (r4, 0x0) + 7fbe: 7513 sexth r4, r4 + 7fc0: 3cdf btsti r4, 31 + 7fc2: 0c11 bf 0x7fe4 // 7fe4 + 7fc4: 11cf lrw r6, 0x2000083e // 8080 + 7fc6: 59a0 addu r5, r1, r0 + 7fc8: 6180 addu r6, r0 + 7fca: 8d80 ld.h r4, (r5, 0x0) + 7fcc: 8ec0 ld.h r6, (r6, 0x0) + 7fce: 7599 zexth r6, r6 + 7fd0: 7511 zexth r4, r4 + 7fd2: 611a subu r4, r6 + 7fd4: 8bc0 ld.h r6, (r3, 0x0) + 7fd6: 4ec1 lsri r6, r6, 1 + 7fd8: 6591 cmplt r4, r6 + 7fda: 0805 bt 0x7fe4 // 7fe4 + 7fdc: 8d80 ld.h r4, (r5, 0x0) + 7fde: 2c01 subi r4, 2 + 7fe0: 7511 zexth r4, r4 + 7fe2: ad80 st.h r4, (r5, 0x0) + 7fe4: 5fa0 addu r5, r7, r0 + 7fe6: 8d80 ld.h r4, (r5, 0x0) + 7fe8: 7513 sexth r4, r4 + 7fea: 3c20 cmplti r4, 1 + 7fec: 080c bt 0x8004 // 8004 + 7fee: 8da0 ld.h r5, (r5, 0x0) + 7ff0: 8b80 ld.h r4, (r3, 0x0) + 7ff2: 7557 sexth r5, r5 + 7ff4: 4c81 lsri r4, r4, 1 + 7ff6: 6515 cmplt r5, r4 + 7ff8: 0c06 bf 0x8004 // 8004 + 7ffa: 59a0 addu r5, r1, r0 + 7ffc: 8d80 ld.h r4, (r5, 0x0) + 7ffe: 2400 addi r4, 1 + 8000: 7511 zexth r4, r4 + 8002: ad80 st.h r4, (r5, 0x0) + 8004: 5fa0 addu r5, r7, r0 + 8006: 8d80 ld.h r4, (r5, 0x0) + 8008: 7513 sexth r4, r4 + 800a: 3c20 cmplti r4, 1 + 800c: 0810 bt 0x802c // 802c + 800e: 8dc0 ld.h r6, (r5, 0x0) + 8010: 759b sexth r6, r6 + 8012: 8b80 ld.h r4, (r3, 0x0) + 8014: 6519 cmplt r6, r4 + 8016: 0c0b bf 0x802c // 802c + 8018: 8da0 ld.h r5, (r5, 0x0) + 801a: 7557 sexth r5, r5 + 801c: 4c81 lsri r4, r4, 1 + 801e: 6515 cmplt r5, r4 + 8020: 0806 bt 0x802c // 802c + 8022: 6004 addu r0, r1 + 8024: 8880 ld.h r4, (r0, 0x0) + 8026: 2401 addi r4, 2 + 8028: 7511 zexth r4, r4 + 802a: a880 st.h r4, (r0, 0x0) + 802c: 2200 addi r2, 1 + 802e: 3a51 cmpnei r2, 17 + 8030: 2301 addi r3, 2 + 8032: 0b61 bt 0x7ef4 // 7ef4 + 8034: 1402 addi r14, r14, 8 + 8036: 1484 pop r4-r7 + 8038: 5f80 addu r4, r7, r0 + 803a: 8c80 ld.h r4, (r4, 0x0) + 803c: 7513 sexth r4, r4 + 803e: 3cdf btsti r4, 31 + 8040: 0fa9 bf 0x7f92 // 7f92 + 8042: 10b0 lrw r5, 0x2000083e // 8080 + 8044: 5980 addu r4, r1, r0 + 8046: 6140 addu r5, r0 + 8048: 8c80 ld.h r4, (r4, 0x0) + 804a: 8da0 ld.h r5, (r5, 0x0) + 804c: 7555 zexth r5, r5 + 804e: 8bc0 ld.h r6, (r3, 0x0) + 8050: 7511 zexth r4, r4 + 8052: 6116 subu r4, r5 + 8054: 46a1 lsli r5, r6, 1 + 8056: 6158 addu r5, r6 + 8058: 6551 cmplt r4, r5 + 805a: 0b9c bt 0x7f92 // 7f92 + 805c: 108c lrw r4, 0x200006af // 808c + 805e: 3501 movi r5, 1 + 8060: a4a0 st.b r5, (r4, 0x0) + 8062: 6c03 mov r0, r0 + 8064: 0797 br 0x7f92 // 7f92 + 8066: 0000 bkpt + 8068: 200006ca .long 0x200006ca + 806c: 2000025d .long 0x2000025d + 8070: 20000628 .long 0x20000628 + 8074: 20000642 .long 0x20000642 + 8078: 2000028a .long 0x2000028a + 807c: 20000598 .long 0x20000598 + 8080: 2000083e .long 0x2000083e + 8084: 2000076c .long 0x2000076c + 8088: 20000090 .long 0x20000090 + 808c: 200006af .long 0x200006af + 8090: 200006f2 .long 0x200006f2 + +Disassembly of section .text.TK_result_prog: + +00008094 : + 8094: 14d2 push r4-r5, r15 + 8096: 1050 lrw r2, 0x20000628 // 80d4 + 8098: 1090 lrw r4, 0x200006cc // 80d8 + 809a: 9260 ld.w r3, (r2, 0x0) + 809c: 3b40 cmpnei r3, 0 + 809e: 0c02 bf 0x80a2 // 80a2 + 80a0: 9260 ld.w r3, (r2, 0x0) + 80a2: b460 st.w r3, (r4, 0x0) + 80a4: 9460 ld.w r3, (r4, 0x0) + 80a6: 3b40 cmpnei r3, 0 + 80a8: 10ad lrw r5, 0x200007a0 // 80dc + 80aa: 0c11 bf 0x80cc // 80cc + 80ac: 9440 ld.w r2, (r4, 0x0) + 80ae: 9560 ld.w r3, (r5, 0x0) + 80b0: 64ca cmpne r2, r3 + 80b2: 0c03 bf 0x80b8 // 80b8 + 80b4: 9460 ld.w r3, (r4, 0x0) + 80b6: b560 st.w r3, (r5, 0x0) + 80b8: e3fffd52 bsr 0x7b5c // 7b5c + 80bc: 1069 lrw r3, 0x20000264 // 80e0 + 80be: 8360 ld.b r3, (r3, 0x0) + 80c0: 640c cmphs r3, r0 + 80c2: 0804 bt 0x80ca // 80ca + 80c4: 3300 movi r3, 0 + 80c6: b460 st.w r3, (r4, 0x0) + 80c8: b560 st.w r3, (r5, 0x0) + 80ca: 1492 pop r4-r5, r15 + 80cc: 1046 lrw r2, 0x200006c4 // 80e4 + 80ce: b560 st.w r3, (r5, 0x0) + 80d0: b260 st.w r3, (r2, 0x0) + 80d2: 07fc br 0x80ca // 80ca + 80d4: 20000628 .long 0x20000628 + 80d8: 200006cc .long 0x200006cc + 80dc: 200007a0 .long 0x200007a0 + 80e0: 20000264 .long 0x20000264 + 80e4: 200006c4 .long 0x200006c4 + +Disassembly of section .text.CORETHandler: + +000080e8 : + 80e8: 1460 nie + 80ea: 1462 ipush + 80ec: 14d1 push r4, r15 + 80ee: 1077 lrw r3, 0x20000064 // 8148 + 80f0: 3400 movi r4, 0 + 80f2: 9360 ld.w r3, (r3, 0x0) + 80f4: b386 st.w r4, (r3, 0x18) + 80f6: 1076 lrw r3, 0x2000062c // 814c + 80f8: 8360 ld.b r3, (r3, 0x0) + 80fa: 3b41 cmpnei r3, 1 + 80fc: 0820 bt 0x813c // 813c + 80fe: e3fffd85 bsr 0x7c08 // 7c08 + 8102: e3fffd93 bsr 0x7c28 // 7c28 + 8106: e3fffe51 bsr 0x7da8 // 7da8 + 810a: e3fffedd bsr 0x7ec4 // 7ec4 + 810e: e3ffffc3 bsr 0x8094 // 8094 + 8112: 1070 lrw r3, 0x200006cc // 8150 + 8114: 9360 ld.w r3, (r3, 0x0) + 8116: 3b40 cmpnei r3, 0 + 8118: 0c12 bf 0x813c // 813c + 811a: 106f lrw r3, 0x20000234 // 8154 + 811c: 9340 ld.w r2, (r3, 0x0) + 811e: 3a40 cmpnei r2, 0 + 8120: 0c0e bf 0x813c // 813c + 8122: 106e lrw r3, 0x200006c4 // 8158 + 8124: 3064 movi r0, 100 + 8126: 9320 ld.w r1, (r3, 0x0) + 8128: 2100 addi r1, 1 + 812a: b320 st.w r1, (r3, 0x0) + 812c: 9320 ld.w r1, (r3, 0x0) + 812e: 7c80 mult r2, r0 + 8130: 6448 cmphs r2, r1 + 8132: 0805 bt 0x813c // 813c + 8134: 104a lrw r2, 0x200006af // 815c + 8136: 3101 movi r1, 1 + 8138: a220 st.b r1, (r2, 0x0) + 813a: b380 st.w r4, (r3, 0x0) + 813c: d9ee2001 ld.w r15, (r14, 0x4) + 8140: 9880 ld.w r4, (r14, 0x0) + 8142: 1402 addi r14, r14, 8 + 8144: 1463 ipop + 8146: 1461 nir + 8148: 20000064 .long 0x20000064 + 814c: 2000062c .long 0x2000062c + 8150: 200006cc .long 0x200006cc + 8154: 20000234 .long 0x20000234 + 8158: 200006c4 .long 0x200006c4 + 815c: 200006af .long 0x200006af + +Disassembly of section .text.get_key_seq: + +00008160 : + 8160: 14c3 push r4-r6 + 8162: 106b lrw r3, 0x20000260 // 818c + 8164: 3000 movi r0, 0 + 8166: 9320 ld.w r1, (r3, 0x0) + 8168: 3401 movi r4, 1 + 816a: 3300 movi r3, 0 + 816c: 10a9 lrw r5, 0x200007a4 // 8190 + 816e: 6c87 mov r2, r1 + 8170: 708d lsr r2, r3 + 8172: 6890 and r2, r4 + 8174: 3a40 cmpnei r2, 0 + 8176: 0c05 bf 0x8180 // 8180 + 8178: 5dc0 addu r6, r5, r0 + 817a: 748c zextb r2, r3 + 817c: a640 st.b r2, (r6, 0x0) + 817e: 2000 addi r0, 1 + 8180: 2300 addi r3, 1 + 8182: 3b51 cmpnei r3, 17 + 8184: 0bf5 bt 0x816e // 816e + 8186: 7400 zextb r0, r0 + 8188: 1483 pop r4-r6 + 818a: 0000 bkpt + 818c: 20000260 .long 0x20000260 + 8190: 200007a4 .long 0x200007a4 + +Disassembly of section .text.CORET_CONFIG: + +00008194 : + 8194: 14d0 push r15 + 8196: e3ffd513 bsr 0x2bbc // 2bbc + 819a: 3180 movi r1, 128 + 819c: 4124 lsli r1, r1, 4 + 819e: 3001 movi r0, 1 + 81a0: e3ffcd06 bsr 0x1bac // 1bac + 81a4: 1068 lrw r3, 0x20000064 // 81c4 + 81a6: 1049 lrw r2, 0x200002b0 // 81c8 + 81a8: 9360 ld.w r3, (r3, 0x0) + 81aa: 9240 ld.w r2, (r2, 0x0) + 81ac: b345 st.w r2, (r3, 0x14) + 81ae: e3ffd537 bsr 0x2c1c // 2c1c + 81b2: e3ffd525 bsr 0x2bfc // 2bfc + 81b6: e3ffd52b bsr 0x2c0c // 2c0c + 81ba: e3ffd519 bsr 0x2bec // 2bec + 81be: e3ffd50b bsr 0x2bd4 // 2bd4 + 81c2: 1490 pop r15 + 81c4: 20000064 .long 0x20000064 + 81c8: 200002b0 .long 0x200002b0 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +000081cc : + 81cc: 1066 lrw r3, 0x20000054 // 81e4 + 81ce: 3100 movi r1, 0 + 81d0: 9300 ld.w r0, (r3, 0x0) + 81d2: 3300 movi r3, 0 + 81d4: 4342 lsli r2, r3, 2 + 81d6: 2300 addi r3, 1 + 81d8: 6080 addu r2, r0 + 81da: 3b52 cmpnei r3, 18 + 81dc: b220 st.w r1, (r2, 0x0) + 81de: b232 st.w r1, (r2, 0x48) + 81e0: 0bfa bt 0x81d4 // 81d4 + 81e2: 783c jmp r15 + 81e4: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_reserved_init: + +000081e8 : + 81e8: 1065 lrw r3, 0x2000005c // 81fc + 81ea: 1046 lrw r2, 0xa67a6cc7 // 8200 + 81ec: 9360 ld.w r3, (r3, 0x0) + 81ee: b356 st.w r2, (r3, 0x58) + 81f0: 1045 lrw r2, 0x21f1f04 // 8204 + 81f2: b355 st.w r2, (r3, 0x54) + 81f4: 1045 lrw r2, 0x69966996 // 8208 + 81f6: 1066 lrw r3, 0x40011180 // 820c + 81f8: b35f st.w r2, (r3, 0x7c) + 81fa: 783c jmp r15 + 81fc: 2000005c .long 0x2000005c + 8200: a67a6cc7 .long 0xa67a6cc7 + 8204: 021f1f04 .long 0x021f1f04 + 8208: 69966996 .long 0x69966996 + 820c: 40011180 .long 0x40011180 + +Disassembly of section .text.tk_init: + +00008210 : + 8210: 14d4 push r4-r7, r15 + 8212: 142c subi r14, r14, 48 + 8214: e3ffffea bsr 0x81e8 // 81e8 + 8218: e3ffd432 bsr 0x2a7c // 2a7c + 821c: 1268 lrw r3, 0x20000070 // 833c + 821e: 934b ld.w r2, (r3, 0x2c) + 8220: 1268 lrw r3, 0x40011200 // 8340 + 8222: b350 st.w r2, (r3, 0x40) + 8224: 1268 lrw r3, 0x20000231 // 8344 + 8226: 8360 ld.b r3, (r3, 0x0) + 8228: 3b41 cmpnei r3, 1 + 822a: 0817 bt 0x8258 // 8258 + 822c: 1267 lrw r3, 0x20000058 // 8348 + 822e: 3105 movi r1, 5 + 8230: 9380 ld.w r4, (r3, 0x0) + 8232: 1267 lrw r3, 0x20000288 // 834c + 8234: 8300 ld.b r0, (r3, 0x0) + 8236: e3ffdaf9 bsr 0x3828 // 3828 <__udivsi3> + 823a: 7400 zextb r0, r0 + 823c: 1265 lrw r3, 0x20000232 // 8350 + 823e: b408 st.w r0, (r4, 0x20) + 8240: 8300 ld.b r0, (r3, 0x0) + 8242: 3804 cmphsi r0, 5 + 8244: 1264 lrw r3, 0x200006c8 // 8354 + 8246: 085a bt 0x82fa // 82fa + 8248: e3ffc55a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 824c: 53575103 .long 0x53575103 + 8250: 0055 .short 0x0055 + 8252: 3296 movi r2, 150 + 8254: 4242 lsli r2, r2, 2 + 8256: ab40 st.h r2, (r3, 0x0) + 8258: e3fffb78 bsr 0x7948 // 7948 + 825c: 3200 movi r2, 0 + 825e: 3100 movi r1, 0 + 8260: 3001 movi r0, 1 + 8262: e3fffb01 bsr 0x7864 // 7864 + 8266: e3ffffb3 bsr 0x81cc // 81cc + 826a: e3ffff7b bsr 0x8160 // 8160 + 826e: 119b lrw r4, 0x2000076b // 8358 + 8270: 3101 movi r1, 1 + 8272: a400 st.b r0, (r4, 0x0) + 8274: 8440 ld.b r2, (r4, 0x0) + 8276: 117a lrw r3, 0x200002ac // 835c + 8278: 8b60 ld.h r3, (r3, 0x0) + 827a: b829 st.w r1, (r14, 0x24) + 827c: 3180 movi r1, 128 + 827e: 412d lsli r1, r1, 13 + 8280: b828 st.w r1, (r14, 0x20) + 8282: 3180 movi r1, 128 + 8284: 4129 lsli r1, r1, 9 + 8286: b827 st.w r1, (r14, 0x1c) + 8288: 3100 movi r1, 0 + 828a: b826 st.w r1, (r14, 0x18) + 828c: 2a00 subi r2, 1 + 828e: 1115 lrw r0, 0x200002ae // 8360 + 8290: 8800 ld.h r0, (r0, 0x0) + 8292: b805 st.w r0, (r14, 0x14) + 8294: 7488 zextb r2, r2 + 8296: 1114 lrw r0, 0x200002b4 // 8364 + 8298: 8800 ld.h r0, (r0, 0x0) + 829a: b804 st.w r0, (r14, 0x10) + 829c: 3080 movi r0, 128 + 829e: 4005 lsli r0, r0, 5 + 82a0: b803 st.w r0, (r14, 0xc) + 82a2: 3080 movi r0, 128 + 82a4: 4004 lsli r0, r0, 4 + 82a6: b802 st.w r0, (r14, 0x8) + 82a8: b821 st.w r1, (r14, 0x4) + 82aa: b820 st.w r1, (r14, 0x0) + 82ac: 3001 movi r0, 1 + 82ae: 3102 movi r1, 2 + 82b0: e3fffaee bsr 0x788c // 788c + 82b4: 3002 movi r0, 2 + 82b6: e3fffacf bsr 0x7854 // 7854 + 82ba: 3020 movi r0, 32 + 82bc: e3fffacc bsr 0x7854 // 7854 + 82c0: 3380 movi r3, 128 + 82c2: 4372 lsli r3, r3, 18 + 82c4: 1149 lrw r2, 0xe000e100 // 8368 + 82c6: b260 st.w r3, (r2, 0x0) + 82c8: b270 st.w r3, (r2, 0x40) + 82ca: 11e9 lrw r7, 0x20000076 // 836c + 82cc: 1169 lrw r3, 0x20000054 // 8370 + 82ce: 11aa lrw r5, 0x200007a4 // 8374 + 82d0: 11ca lrw r6, 0x20000266 // 8378 + 82d2: 9360 ld.w r3, (r3, 0x0) + 82d4: b86a st.w r3, (r14, 0x28) + 82d6: b88b st.w r4, (r14, 0x2c) + 82d8: 3300 movi r3, 0 + 82da: 984b ld.w r2, (r14, 0x2c) + 82dc: 8240 ld.b r2, (r2, 0x0) + 82de: 648c cmphs r3, r2 + 82e0: 0c0f bf 0x82fe // 82fe + 82e2: e3ffff59 bsr 0x8194 // 8194 + 82e6: e3fffc4f bsr 0x7b84 // 7b84 + 82ea: 140c addi r14, r14, 48 + 82ec: 1494 pop r4-r7, r15 + 82ee: 1145 lrw r2, 0x5dc // 8380 + 82f0: 07b3 br 0x8256 // 8256 + 82f2: 1145 lrw r2, 0x1194 // 8384 + 82f4: 07b1 br 0x8256 // 8256 + 82f6: 1145 lrw r2, 0x1770 // 8388 + 82f8: 07af br 0x8256 // 8256 + 82fa: 1145 lrw r2, 0xbb8 // 838c + 82fc: 07ad br 0x8256 // 8256 + 82fe: 5d0c addu r0, r5, r3 + 8300: 8020 ld.b r1, (r0, 0x0) + 8302: 8040 ld.b r2, (r0, 0x0) + 8304: 8080 ld.b r4, (r0, 0x0) + 8306: 8000 ld.b r0, (r0, 0x0) + 8308: 4001 lsli r0, r0, 1 + 830a: 6018 addu r0, r6 + 830c: 4121 lsli r1, r1, 1 + 830e: 8800 ld.h r0, (r0, 0x0) + 8310: 605c addu r1, r7 + 8312: 448f lsli r4, r4, 15 + 8314: 6d00 or r4, r0 + 8316: 4241 lsli r2, r2, 1 + 8318: 8900 ld.h r0, (r1, 0x0) + 831a: 1039 lrw r1, 0x2000023a // 837c + 831c: 6084 addu r2, r1 + 831e: 4018 lsli r0, r0, 24 + 8320: 6c10 or r0, r4 + 8322: 8a80 ld.h r4, (r2, 0x0) + 8324: 3212 movi r2, 18 + 8326: 608c addu r2, r3 + 8328: 4494 lsli r4, r4, 20 + 832a: 4242 lsli r2, r2, 2 + 832c: 982a ld.w r1, (r14, 0x28) + 832e: 6c10 or r0, r4 + 8330: 6084 addu r2, r1 + 8332: 2300 addi r3, 1 + 8334: b200 st.w r0, (r2, 0x0) + 8336: 74cc zextb r3, r3 + 8338: 07d1 br 0x82da // 82da + 833a: 0000 bkpt + 833c: 20000070 .long 0x20000070 + 8340: 40011200 .long 0x40011200 + 8344: 20000231 .long 0x20000231 + 8348: 20000058 .long 0x20000058 + 834c: 20000288 .long 0x20000288 + 8350: 20000232 .long 0x20000232 + 8354: 200006c8 .long 0x200006c8 + 8358: 2000076b .long 0x2000076b + 835c: 200002ac .long 0x200002ac + 8360: 200002ae .long 0x200002ae + 8364: 200002b4 .long 0x200002b4 + 8368: e000e100 .long 0xe000e100 + 836c: 20000076 .long 0x20000076 + 8370: 20000054 .long 0x20000054 + 8374: 200007a4 .long 0x200007a4 + 8378: 20000266 .long 0x20000266 + 837c: 2000023a .long 0x2000023a + 8380: 000005dc .long 0x000005dc + 8384: 00001194 .long 0x00001194 + 8388: 00001770 .long 0x00001770 + 838c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.std_clk_calib: + +00008390 : + 8390: 14d4 push r4-r7, r15 + 8392: 142d subi r14, r14, 52 + 8394: 3201 movi r2, 1 + 8396: 03ce lrw r6, 0x2000005c // 85d8 + 8398: 6cc3 mov r3, r0 + 839a: dc4e000a st.b r2, (r14, 0xa) + 839e: 9640 ld.w r2, (r6, 0x0) + 83a0: 9247 ld.w r2, (r2, 0x1c) + 83a2: 7488 zextb r2, r2 + 83a4: dc4e0009 st.b r2, (r14, 0x9) + 83a8: d84e0009 ld.b r2, (r14, 0x9) + 83ac: 3a40 cmpnei r2, 0 + 83ae: 0c08 bf 0x83be // 83be + 83b0: d84e0009 ld.b r2, (r14, 0x9) + 83b4: 3a42 cmpnei r2, 2 + 83b6: 0c04 bf 0x83be // 83be + 83b8: 3000 movi r0, 0 + 83ba: 140d addi r14, r14, 52 + 83bc: 1494 pop r4-r7, r15 + 83be: 0397 lrw r4, 0x2000000c // 85dc + 83c0: 3209 movi r2, 9 + 83c2: 9400 ld.w r0, (r4, 0x0) + 83c4: 3b40 cmpnei r3, 0 + 83c6: b041 st.w r2, (r0, 0x4) + 83c8: 0857 bt 0x8476 // 8476 + 83ca: 3307 movi r3, 7 + 83cc: dc6e000b st.b r3, (r14, 0xb) + 83d0: 037b lrw r3, 0x2dc6c00 // 85e0 + 83d2: b863 st.w r3, (r14, 0xc) + 83d4: 3380 movi r3, 128 + 83d6: 4362 lsli r3, r3, 2 + 83d8: b867 st.w r3, (r14, 0x1c) + 83da: d86e000b ld.b r3, (r14, 0xb) + 83de: 74cc zextb r3, r3 + 83e0: b062 st.w r3, (r0, 0x8) + 83e2: 037e lrw r3, 0xffff // 85e4 + 83e4: b063 st.w r3, (r0, 0xc) + 83e6: 3201 movi r2, 1 + 83e8: 3101 movi r1, 1 + 83ea: 03bf lrw r5, 0x20000014 // 85e8 + 83ec: e3ffcf12 bsr 0x2210 // 2210 + 83f0: 95e0 ld.w r7, (r5, 0x0) + 83f2: 137f lrw r3, 0xbe9c0005 // 85ec + 83f4: b760 st.w r3, (r7, 0x0) + 83f6: 135f lrw r2, 0x30010 // 85f0 + 83f8: 3300 movi r3, 0 + 83fa: b762 st.w r3, (r7, 0x8) + 83fc: b743 st.w r2, (r7, 0xc) + 83fe: 32d8 movi r2, 216 + 8400: b745 st.w r2, (r7, 0x14) + 8402: 974f ld.w r2, (r7, 0x3c) + 8404: 3aa2 bseti r2, 2 + 8406: b74f st.w r2, (r7, 0x3c) + 8408: 9803 ld.w r0, (r14, 0xc) + 840a: d82e000b ld.b r1, (r14, 0xb) + 840e: 327d movi r2, 125 + 8410: 2100 addi r1, 1 + 8412: 7c48 mult r1, r2 + 8414: b861 st.w r3, (r14, 0x4) + 8416: e3ffda09 bsr 0x3828 // 3828 <__udivsi3> + 841a: b804 st.w r0, (r14, 0x10) + 841c: 32fa movi r2, 250 + 841e: 9824 ld.w r1, (r14, 0x10) + 8420: 4242 lsli r2, r2, 2 + 8422: 6448 cmphs r2, r1 + 8424: 0bca bt 0x83b8 // 83b8 + 8426: 9844 ld.w r2, (r14, 0x10) + 8428: 3178 movi r1, 120 + 842a: 9804 ld.w r0, (r14, 0x10) + 842c: b840 st.w r2, (r14, 0x0) + 842e: e3ffd9fd bsr 0x3828 // 3828 <__udivsi3> + 8432: 9840 ld.w r2, (r14, 0x0) + 8434: 6082 subu r2, r0 + 8436: b845 st.w r2, (r14, 0x14) + 8438: 9804 ld.w r0, (r14, 0x10) + 843a: 3178 movi r1, 120 + 843c: 9844 ld.w r2, (r14, 0x10) + 843e: b840 st.w r2, (r14, 0x0) + 8440: e3ffd9f4 bsr 0x3828 // 3828 <__udivsi3> + 8444: 9840 ld.w r2, (r14, 0x0) + 8446: 6008 addu r0, r2 + 8448: b806 st.w r0, (r14, 0x18) + 844a: c0807020 psrclr ie + 844e: 9640 ld.w r2, (r6, 0x0) + 8450: 9254 ld.w r2, (r2, 0x50) + 8452: b848 st.w r2, (r14, 0x20) + 8454: 9861 ld.w r3, (r14, 0x4) + 8456: 9440 ld.w r2, (r4, 0x0) + 8458: b260 st.w r3, (r2, 0x0) + 845a: b761 st.w r3, (r7, 0x4) + 845c: d86e000a ld.b r3, (r14, 0xa) + 8460: 3b40 cmpnei r3, 0 + 8462: 083e bt 0x84de // 84de + 8464: e3ffce88 bsr 0x2174 // 2174 + 8468: 9400 ld.w r0, (r4, 0x0) + 846a: e3ffcea9 bsr 0x21bc // 21bc + 846e: c1807420 psrset ee, ie + 8472: 3001 movi r0, 1 + 8474: 07a3 br 0x83ba // 83ba + 8476: 3b41 cmpnei r3, 1 + 8478: 0806 bt 0x8484 // 8484 + 847a: 3303 movi r3, 3 + 847c: dc6e000b st.b r3, (r14, 0xb) + 8480: 127d lrw r3, 0x16e3600 // 85f4 + 8482: 07a8 br 0x83d2 // 83d2 + 8484: 3b42 cmpnei r3, 2 + 8486: 0806 bt 0x8492 // 8492 + 8488: 3301 movi r3, 1 + 848a: dc6e000b st.b r3, (r14, 0xb) + 848e: 127b lrw r3, 0xb71b00 // 85f8 + 8490: 07a1 br 0x83d2 // 83d2 + 8492: 3b43 cmpnei r3, 3 + 8494: 0806 bt 0x84a0 // 84a0 + 8496: 3300 movi r3, 0 + 8498: dc6e000b st.b r3, (r14, 0xb) + 849c: 1278 lrw r3, 0x5b8d80 // 85fc + 849e: 079a br 0x83d2 // 83d2 + 84a0: 3b44 cmpnei r3, 4 + 84a2: 0809 bt 0x84b4 // 84b4 + 84a4: 3300 movi r3, 0 + 84a6: dc6e000b st.b r3, (r14, 0xb) + 84aa: 1276 lrw r3, 0x54c720 // 8600 + 84ac: b863 st.w r3, (r14, 0xc) + 84ae: 3380 movi r3, 128 + 84b0: 4369 lsli r3, r3, 9 + 84b2: 0793 br 0x83d8 // 83d8 + 84b4: 3b45 cmpnei r3, 5 + 84b6: 0806 bt 0x84c2 // 84c2 + 84b8: 3300 movi r3, 0 + 84ba: dc6e000b st.b r3, (r14, 0xb) + 84be: 1272 lrw r3, 0x3ffed0 // 8604 + 84c0: 07f6 br 0x84ac // 84ac + 84c2: 3b46 cmpnei r3, 6 + 84c4: 0806 bt 0x84d0 // 84d0 + 84c6: 3300 movi r3, 0 + 84c8: dc6e000b st.b r3, (r14, 0xb) + 84cc: 126f lrw r3, 0x1fff68 // 8608 + 84ce: 07ef br 0x84ac // 84ac + 84d0: 3b47 cmpnei r3, 7 + 84d2: 0b84 bt 0x83da // 83da + 84d4: 3300 movi r3, 0 + 84d6: dc6e000b st.b r3, (r14, 0xb) + 84da: 126d lrw r3, 0x1ffb8 // 860c + 84dc: 07e8 br 0x84ac // 84ac + 84de: 9560 ld.w r3, (r5, 0x0) + 84e0: 3101 movi r1, 1 + 84e2: 9440 ld.w r2, (r4, 0x0) + 84e4: b321 st.w r1, (r3, 0x4) + 84e6: b220 st.w r1, (r2, 0x0) + 84e8: 3100 movi r1, 0 + 84ea: b327 st.w r1, (r3, 0x1c) + 84ec: 3004 movi r0, 4 + 84ee: b225 st.w r1, (r2, 0x14) + 84f0: 932e ld.w r1, (r3, 0x38) + 84f2: 6840 and r1, r0 + 84f4: 3940 cmpnei r1, 0 + 84f6: 0ffd bf 0x84f0 // 84f0 + 84f8: 9225 ld.w r1, (r2, 0x14) + 84fa: b82a st.w r1, (r14, 0x28) + 84fc: 3100 movi r1, 0 + 84fe: b310 st.w r0, (r3, 0x40) + 8500: b327 st.w r1, (r3, 0x1c) + 8502: 3004 movi r0, 4 + 8504: b225 st.w r1, (r2, 0x14) + 8506: 932e ld.w r1, (r3, 0x38) + 8508: 6840 and r1, r0 + 850a: 3940 cmpnei r1, 0 + 850c: 0ffd bf 0x8506 // 8506 + 850e: 9225 ld.w r1, (r2, 0x14) + 8510: b82b st.w r1, (r14, 0x2c) + 8512: 3100 movi r1, 0 + 8514: b310 st.w r0, (r3, 0x40) + 8516: b327 st.w r1, (r3, 0x1c) + 8518: 3004 movi r0, 4 + 851a: b225 st.w r1, (r2, 0x14) + 851c: 932e ld.w r1, (r3, 0x38) + 851e: 6840 and r1, r0 + 8520: 3940 cmpnei r1, 0 + 8522: 0ffd bf 0x851c // 851c + 8524: 9225 ld.w r1, (r2, 0x14) + 8526: b82c st.w r1, (r14, 0x30) + 8528: b310 st.w r0, (r3, 0x40) + 852a: 982b ld.w r1, (r14, 0x2c) + 852c: 980c ld.w r0, (r14, 0x30) + 852e: 6040 addu r1, r0 + 8530: b829 st.w r1, (r14, 0x24) + 8532: 9829 ld.w r1, (r14, 0x24) + 8534: 4921 lsri r1, r1, 1 + 8536: b829 st.w r1, (r14, 0x24) + 8538: 3100 movi r1, 0 + 853a: b321 st.w r1, (r3, 0x4) + 853c: b220 st.w r1, (r2, 0x0) + 853e: b327 st.w r1, (r3, 0x1c) + 8540: b225 st.w r1, (r2, 0x14) + 8542: d86e0009 ld.b r3, (r14, 0x9) + 8546: 3b42 cmpnei r3, 2 + 8548: 9849 ld.w r2, (r14, 0x24) + 854a: 082c bt 0x85a2 // 85a2 + 854c: 1171 lrw r3, 0x7ff // 8610 + 854e: 648c cmphs r3, r2 + 8550: 0c03 bf 0x8556 // 8556 + 8552: 3300 movi r3, 0 + 8554: 040f br 0x8572 // 8572 + 8556: 9849 ld.w r2, (r14, 0x24) + 8558: 9866 ld.w r3, (r14, 0x18) + 855a: 648c cmphs r3, r2 + 855c: 080e bt 0x8578 // 8578 + 855e: 9868 ld.w r3, (r14, 0x20) + 8560: 9847 ld.w r2, (r14, 0x1c) + 8562: 60ca subu r3, r2 + 8564: b868 st.w r3, (r14, 0x20) + 8566: 32fe movi r2, 254 + 8568: 9868 ld.w r3, (r14, 0x20) + 856a: 4248 lsli r2, r2, 8 + 856c: 68c8 and r3, r2 + 856e: 3b40 cmpnei r3, 0 + 8570: 0812 bt 0x8594 // 8594 + 8572: dc6e000a st.b r3, (r14, 0xa) + 8576: 0721 br 0x83b8 // 83b8 + 8578: 9849 ld.w r2, (r14, 0x24) + 857a: 9865 ld.w r3, (r14, 0x14) + 857c: 64c8 cmphs r2, r3 + 857e: 0829 bt 0x85d0 // 85d0 + 8580: 9868 ld.w r3, (r14, 0x20) + 8582: 9847 ld.w r2, (r14, 0x1c) + 8584: 60c8 addu r3, r2 + 8586: b868 st.w r3, (r14, 0x20) + 8588: 33fe movi r3, 254 + 858a: 9848 ld.w r2, (r14, 0x20) + 858c: 4368 lsli r3, r3, 8 + 858e: 688c and r2, r3 + 8590: 64ca cmpne r2, r3 + 8592: 0fe0 bf 0x8552 // 8552 + 8594: 9660 ld.w r3, (r6, 0x0) + 8596: 9848 ld.w r2, (r14, 0x20) + 8598: b354 st.w r2, (r3, 0x50) + 859a: 3001 movi r0, 1 + 859c: e3ffd370 bsr 0x2c7c // 2c7c + 85a0: 075e br 0x845c // 845c + 85a2: 9866 ld.w r3, (r14, 0x18) + 85a4: 648c cmphs r3, r2 + 85a6: 0809 bt 0x85b8 // 85b8 + 85a8: 9868 ld.w r3, (r14, 0x20) + 85aa: 9847 ld.w r2, (r14, 0x1c) + 85ac: 60ca subu r3, r2 + 85ae: b868 st.w r3, (r14, 0x20) + 85b0: 32ff movi r2, 255 + 85b2: 9868 ld.w r3, (r14, 0x20) + 85b4: 4250 lsli r2, r2, 16 + 85b6: 07db br 0x856c // 856c + 85b8: 9849 ld.w r2, (r14, 0x24) + 85ba: 9865 ld.w r3, (r14, 0x14) + 85bc: 64c8 cmphs r2, r3 + 85be: 0809 bt 0x85d0 // 85d0 + 85c0: 9868 ld.w r3, (r14, 0x20) + 85c2: 9847 ld.w r2, (r14, 0x1c) + 85c4: 60c8 addu r3, r2 + 85c6: b868 st.w r3, (r14, 0x20) + 85c8: 33ff movi r3, 255 + 85ca: 9848 ld.w r2, (r14, 0x20) + 85cc: 4370 lsli r3, r3, 16 + 85ce: 07e0 br 0x858e // 858e + 85d0: 3300 movi r3, 0 + 85d2: dc6e000a st.b r3, (r14, 0xa) + 85d6: 07e2 br 0x859a // 859a + 85d8: 2000005c .long 0x2000005c + 85dc: 2000000c .long 0x2000000c + 85e0: 02dc6c00 .long 0x02dc6c00 + 85e4: 0000ffff .long 0x0000ffff + 85e8: 20000014 .long 0x20000014 + 85ec: be9c0005 .long 0xbe9c0005 + 85f0: 00030010 .long 0x00030010 + 85f4: 016e3600 .long 0x016e3600 + 85f8: 00b71b00 .long 0x00b71b00 + 85fc: 005b8d80 .long 0x005b8d80 + 8600: 0054c720 .long 0x0054c720 + 8604: 003ffed0 .long 0x003ffed0 + 8608: 001fff68 .long 0x001fff68 + 860c: 0001ffb8 .long 0x0001ffb8 + 8610: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250304.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250304.map new file mode 100644 index 0000000..d5eac23 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V01_20250304.map @@ -0,0 +1,3138 @@ +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: 521508 (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: 264 + Section header string table index: 261 + +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 001ab4 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001ab4 002ab4 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001aec 002aec 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001b60 002b60 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001bac 002bac 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001bdc 002bdc 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c64 002c64 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c8c 002c8c 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001cc8 002cc8 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001cdc 002cdc 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001cf4 002cf4 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001d14 002d14 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001d30 002d30 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001d4c 002d4c 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00001d8c 002d8c 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00001dc0 002dc0 000004 00 AX 0 0 2 + [17] .text.EXI4_Int_En PROGBITS 00001dc4 002dc4 000010 00 AX 0 0 4 + [18] .text.SYSCON_Int_ PROGBITS 00001dd4 002dd4 00000c 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00001de0 002de0 00000c 00 AX 0 0 4 + [20] .text.SYSCON_INT_ PROGBITS 00001dec 002dec 000024 00 AX 0 0 4 + [21] .text.Set_INT_Pri PROGBITS 00001e10 002e10 000030 00 AX 0 0 4 + [22] .text.GPIO_Init PROGBITS 00001e40 002e40 0000e0 00 AX 0 0 4 + [23] .text.GPIO_PullHi PROGBITS 00001f20 002f20 000014 00 AX 0 0 2 + [24] .text.GPIO_DriveS PROGBITS 00001f34 002f34 00000e 00 AX 0 0 2 + [25] .text.GPIO_IntGro PROGBITS 00001f44 002f44 00010c 00 AX 0 0 4 + [26] .text.GPIOA0_EXI_ PROGBITS 00002050 003050 0000fc 00 AX 0 0 4 + [27] .text.GPIO_Write_ PROGBITS 0000214c 00314c 000008 00 AX 0 0 2 + [28] .text.GPIO_Write_ PROGBITS 00002154 003154 000008 00 AX 0 0 2 + [29] .text.GPIO_Revers PROGBITS 0000215c 00315c 000016 00 AX 0 0 2 + [30] .text.LPT_Soft_Re PROGBITS 00002174 003174 000014 00 AX 0 0 4 + [31] .text.WWDT_CNT_Lo PROGBITS 00002188 003188 000010 00 AX 0 0 4 + [32] .text.BT_DeInit PROGBITS 00002198 003198 00001c 00 AX 0 0 2 + [33] .text.BT_Start PROGBITS 000021b4 0031b4 000008 00 AX 0 0 2 + [34] .text.BT_Soft_Res PROGBITS 000021bc 0031bc 00000a 00 AX 0 0 2 + [35] .text.BT_Configur PROGBITS 000021c6 0031c6 000018 00 AX 0 0 2 + [36] .text.BT_ControlS PROGBITS 000021de 0031de 00002c 00 AX 0 0 2 + [37] .text.BT_Period_C PROGBITS 0000220a 00320a 000006 00 AX 0 0 2 + [38] .text.BT_ConfigIn PROGBITS 00002210 003210 000012 00 AX 0 0 2 + [39] .text.BT1_INT_ENA PROGBITS 00002224 003224 000010 00 AX 0 0 4 + [40] .text.SIO_DeInit PROGBITS 00002234 003234 000020 00 AX 0 0 4 + [41] .text.SIO_IO_Init PROGBITS 00002254 003254 000060 00 AX 0 0 4 + [42] .text.SIO_TX_Init PROGBITS 000022b4 0032b4 000010 00 AX 0 0 4 + [43] .text.SIO_TX_Conf PROGBITS 000022c4 0032c4 000050 00 AX 0 0 4 + [44] .text.UART0_DeIni PROGBITS 00002314 003314 000018 00 AX 0 0 4 + [45] .text.UART1_DeIni PROGBITS 0000232c 00332c 000018 00 AX 0 0 4 + [46] .text.UART2_DeIni PROGBITS 00002344 003344 000018 00 AX 0 0 4 + [47] .text.UART0_Int_E PROGBITS 0000235c 00335c 00001c 00 AX 0 0 4 + [48] .text.UART2_Int_E PROGBITS 00002378 003378 00001c 00 AX 0 0 4 + [49] .text.UART_IO_Ini PROGBITS 00002394 003394 0000ec 00 AX 0 0 4 + [50] .text.UARTInit PROGBITS 00002480 003480 000010 00 AX 0 0 4 + [51] .text.UARTInitRxT PROGBITS 00002490 003490 000010 00 AX 0 0 4 + [52] .text.UARTTransmi PROGBITS 000024a0 0034a0 00001e 00 AX 0 0 2 + [53] .text.EPT_Stop PROGBITS 000024c0 0034c0 000028 00 AX 0 0 4 + [54] .text.ADC12_RESET PROGBITS 000024e8 0034e8 000064 00 AX 0 0 4 + [55] .text.ADC12_Contr PROGBITS 0000254c 00354c 000010 00 AX 0 0 4 + [56] .text.ADC12_CMD.p PROGBITS 0000255c 00355c 000020 00 AX 0 0 4 + [57] .text.ADC12_CLK_C PROGBITS 0000257c 00357c 00002c 00 AX 0 0 4 + [58] .text.ADC12_Softw PROGBITS 000025a8 0035a8 00000a 00 AX 0 0 2 + [59] .text.ADC12_CMD PROGBITS 000025b4 0035b4 000028 00 AX 0 0 4 + [60] .text.ADC12_ready PROGBITS 000025dc 0035dc 000014 00 AX 0 0 4 + [61] .text.ADC12_SEQEN PROGBITS 000025f0 0035f0 000018 00 AX 0 0 4 + [62] .text.ADC12_DATA_ PROGBITS 00002608 003608 000014 00 AX 0 0 4 + [63] .text.ADC12_Confi PROGBITS 0000261c 00361c 00007c 00 AX 0 0 4 + [64] .text.ADC12_Confi PROGBITS 00002698 003698 000198 00 AX 0 0 4 + [65] .text.ADC12_Conve PROGBITS 00002830 003830 000180 00 AX 0 0 4 + [66] .text.Page_Progra PROGBITS 000029b0 0039b0 0000a0 00 AX 0 0 4 + [67] .text.ReadDataArr PROGBITS 00002a50 003a50 00002a 00 AX 0 0 2 + [68] .text.tk_paramete PROGBITS 00002a7c 003a7c 000140 00 AX 0 0 4 + [69] .text.CORET_DeIni PROGBITS 00002bbc 003bbc 000018 00 AX 0 0 4 + [70] .text.CORET_Int_E PROGBITS 00002bd4 003bd4 000018 00 AX 0 0 4 + [71] .text.CORET_start PROGBITS 00002bec 003bec 000010 00 AX 0 0 4 + [72] .text.CORET_CLKSO PROGBITS 00002bfc 003bfc 000010 00 AX 0 0 4 + [73] .text.CORET_TICKI PROGBITS 00002c0c 003c0c 000010 00 AX 0 0 4 + [74] .text.CORET_reloa PROGBITS 00002c1c 003c1c 000010 00 AX 0 0 4 + [75] .text.startup.mai PROGBITS 00002c2c 003c2c 000050 00 AX 0 0 4 + [76] .text.delay_nms PROGBITS 00002c7c 003c7c 00002c 00 AX 0 0 2 + [77] .text.delay_nus PROGBITS 00002ca8 003ca8 000022 00 AX 0 0 2 + [78] .text.GPIO_CONFIG PROGBITS 00002ccc 003ccc 000048 00 AX 0 0 4 + [79] .text.BT_CONFIG PROGBITS 00002d14 003d14 000060 00 AX 0 0 4 + [80] .text.SYSCON_CONF PROGBITS 00002d74 003d74 000062 00 AX 0 0 2 + [81] .text.APT32F102_i PROGBITS 00002dd8 003dd8 000088 00 AX 0 0 4 + [82] .text.SYSCONIntHa PROGBITS 00002e60 003e60 0000f0 00 AX 0 0 4 + [83] .text.IFCIntHandl PROGBITS 00002f50 003f50 000068 00 AX 0 0 4 + [84] .text.ADCIntHandl PROGBITS 00002fb8 003fb8 000068 00 AX 0 0 4 + [85] .text.EPT0IntHand PROGBITS 00003020 004020 0001ac 00 AX 0 0 4 + [86] .text.WWDTHandler PROGBITS 000031cc 0041cc 000034 00 AX 0 0 4 + [87] .text.GPT0IntHand PROGBITS 00003200 004200 000080 00 AX 0 0 4 + [88] .text.RTCIntHandl PROGBITS 00003280 004280 000070 00 AX 0 0 4 + [89] .text.UART0IntHan PROGBITS 000032f0 0042f0 00003c 00 AX 0 0 4 + [90] .text.UART1IntHan PROGBITS 0000332c 00432c 00003c 00 AX 0 0 4 + [91] .text.UART2IntHan PROGBITS 00003368 004368 000094 00 AX 0 0 4 + [92] .text.SPI0IntHand PROGBITS 000033fc 0043fc 0000e8 00 AX 0 0 4 + [93] .text.SIO0IntHand PROGBITS 000034e4 0044e4 000054 00 AX 0 0 4 + [94] .text.EXI0IntHand PROGBITS 00003538 004538 000030 00 AX 0 0 4 + [95] .text.EXI1IntHand PROGBITS 00003568 004568 000030 00 AX 0 0 4 + [96] .text.EXI2to3IntH PROGBITS 00003598 004598 000048 00 AX 0 0 4 + [97] .text.EXI4to9IntH PROGBITS 000035e0 0045e0 00005c 00 AX 0 0 4 + [98] .text.EXI10to15In PROGBITS 0000363c 00463c 000080 00 AX 0 0 4 + [99] .text.LPTIntHandl PROGBITS 000036bc 0046bc 000034 00 AX 0 0 4 + [100] .text.BT0IntHandl PROGBITS 000036f0 0046f0 00004c 00 AX 0 0 4 + [101] .text.BT1IntHandl PROGBITS 0000373c 00473c 000064 00 AX 0 0 4 + [102] .text.PriviledgeV PROGBITS 000037a0 0047a0 000002 00 AX 0 0 2 + [103] .text.PendTrapHan PROGBITS 000037a2 0047a2 000008 00 AX 0 0 2 + [104] .text.Trap3Handle PROGBITS 000037aa 0047aa 000008 00 AX 0 0 2 + [105] .text.Trap2Handle PROGBITS 000037b2 0047b2 000008 00 AX 0 0 2 + [106] .text.Trap1Handle PROGBITS 000037ba 0047ba 000008 00 AX 0 0 2 + [107] .text.Trap0Handle PROGBITS 000037c2 0047c2 000008 00 AX 0 0 2 + [108] .text.UnrecExecpH PROGBITS 000037ca 0047ca 000008 00 AX 0 0 2 + [109] .text.BreakPointH PROGBITS 000037d2 0047d2 000008 00 AX 0 0 2 + [110] .text.AccessErrHa PROGBITS 000037da 0047da 000008 00 AX 0 0 2 + [111] .text.IllegalInst PROGBITS 000037e2 0047e2 000008 00 AX 0 0 2 + [112] .text.MisalignedH PROGBITS 000037ea 0047ea 000008 00 AX 0 0 2 + [113] .text.CNTAIntHand PROGBITS 000037f2 0047f2 000008 00 AX 0 0 2 + [114] .text.I2CIntHandl PROGBITS 000037fa 0047fa 000008 00 AX 0 0 2 + [115] .text.__divsi3 PROGBITS 00003804 004804 000024 00 AX 0 0 4 + [116] .text.__udivsi3 PROGBITS 00003828 004828 000024 00 AX 0 0 4 + [117] .text.__modsi3 PROGBITS 0000384c 00484c 000024 00 AX 0 0 4 + [118] .text.__umodsi3 PROGBITS 00003870 004870 000024 00 AX 0 0 4 + [119] .text.CK_CPU_EnAl PROGBITS 00003894 004894 000006 00 AX 0 0 2 + [120] .text.CK_CPU_DisA PROGBITS 0000389a 00489a 000006 00 AX 0 0 2 + [121] .text.UARTx_Init PROGBITS 000038a0 0048a0 00011c 00 AX 0 0 4 + [122] .text.UART2_RecvI PROGBITS 000039bc 0049bc 000068 00 AX 0 0 4 + [123] .text.UART2_TASK PROGBITS 00003a24 004a24 0000c4 00 AX 0 0 4 + [124] .text.MCU485_Send PROGBITS 00003ae8 004ae8 000088 00 AX 0 0 4 + [125] .text.Dbg_Println PROGBITS 00003b70 004b70 00000c 00 AX 0 0 2 + [126] .text.Dbg_Print_B PROGBITS 00003b7c 004b7c 000002 00 AX 0 0 2 + [127] .text.Touch_Key_I PROGBITS 00003b80 004b80 000068 00 AX 0 0 4 + [128] .text.TouchKey_RS PROGBITS 00003be8 004be8 000138 00 AX 0 0 4 + [129] .text.Get_TouchKe PROGBITS 00003d20 004d20 00003c 00 AX 0 0 4 + [130] .text.Touch_Key_E PROGBITS 00003d5c 004d5c 0000ac 00 AX 0 0 4 + [131] .text.TouchKey_Se PROGBITS 00003e08 004e08 00003c 00 AX 0 0 4 + [132] .text.Touch_Key_T PROGBITS 00003e44 004e44 0000f0 00 AX 0 0 4 + [133] .text.TouchKey_Ch PROGBITS 00003f34 004f34 000018 00 AX 0 0 2 + [134] .text.TouchKey_Co PROGBITS 00003f4c 004f4c 000068 00 AX 0 0 4 + [135] .text.TouchKey_Se PROGBITS 00003fb4 004fb4 0000b8 00 AX 0 0 4 + [136] .text.TouchKey_Re PROGBITS 0000406c 00506c 0000f8 00 AX 0 0 4 + [137] .text.TouchKey_Du PROGBITS 00004164 005164 000038 00 AX 0 0 4 + [138] .text.TouchKey_Re PROGBITS 0000419c 00519c 0000b0 00 AX 0 0 4 + [139] .text.TouchKey_Re PROGBITS 0000424c 00524c 00001a 00 AX 0 0 2 + [140] .text.TouchKey_Co PROGBITS 00004268 005268 0000d8 00 AX 0 0 4 + [141] .text.EEPROM_Chec PROGBITS 00004340 005340 000016 00 AX 0 0 2 + [142] .text.EEPROM_Read PROGBITS 00004358 005358 000074 00 AX 0 0 4 + [143] .text.EEPROM_Writ PROGBITS 000043cc 0053cc 000044 00 AX 0 0 4 + [144] .text.EEPROM_Vali PROGBITS 00004410 005410 00008c 00 AX 0 0 4 + [145] .text.EEPROM_Defa PROGBITS 0000449c 00549c 000020 00 AX 0 0 2 + [146] .text.EEPROM_Init PROGBITS 000044bc 0054bc 000058 00 AX 0 0 4 + [147] .text.EEPROM_Writ PROGBITS 00004514 005514 00006c 00 AX 0 0 4 + [148] .text.EEPROM_Read PROGBITS 00004580 005580 0000ac 00 AX 0 0 4 + [149] .text.EEPROM_Vali PROGBITS 0000462c 00562c 0000a8 00 AX 0 0 4 + [150] .text.EEPROM_Defa PROGBITS 000046d4 0056d4 000040 00 AX 0 0 2 + [151] .text.EEPROM_Touc PROGBITS 00004714 005714 000080 00 AX 0 0 4 + [152] .text.ADC_Init PROGBITS 00004794 005794 00005c 00 AX 0 0 4 + [153] .text.Thermistor_ PROGBITS 000047f0 0057f0 000048 00 AX 0 0 4 + [154] .text.Calculate_A PROGBITS 00004838 005838 00009c 00 AX 0 0 4 + [155] .text.Get_Temp_Va PROGBITS 000048d4 0058d4 000010 00 AX 0 0 4 + [156] .text.Gather_Temp PROGBITS 000048e4 0058e4 0000a8 00 AX 0 0 4 + [157] .text.ADC_Sample_ PROGBITS 0000498c 00598c 0000a8 00 AX 0 0 4 + [158] .text.Contol_Swit PROGBITS 00004a34 005a34 0003ea 00 AX 0 0 4 + [159] .text.Contol_Swit PROGBITS 00004e20 005e20 0003ea 00 AX 0 0 4 + [160] .text.Contol_Swit PROGBITS 0000520c 00620c 000028 00 AX 0 0 4 + [161] .text.Get_TM1812_ PROGBITS 00005234 006234 00004c 00 AX 0 0 4 + [162] .text.TimeCall_SI PROGBITS 00005280 006280 000120 00 AX 0 0 4 + [163] .text.TimeCall_SI PROGBITS 000053a0 0063a0 0000a8 00 AX 0 0 4 + [164] .text.Tm1812_Task PROGBITS 00005448 006448 000050 00 AX 0 0 4 + [165] .text.Tm1812_Ch_I PROGBITS 00005498 006498 000024 00 AX 0 0 4 + [166] .text.TM1812_Cont PROGBITS 000054bc 0064bc 000070 00 AX 0 0 4 + [167] .text.TM1812_Cont PROGBITS 0000552c 00652c 000064 00 AX 0 0 4 + [168] .text.TM1812_LED_ PROGBITS 00005590 006590 000058 00 AX 0 0 4 + [169] .text.HT1621_WR_D PROGBITS 000055e8 0065e8 000048 00 AX 0 0 4 + [170] .text.HT1621_WR_C PROGBITS 00005630 006630 000030 00 AX 0 0 4 + [171] .text.HT1621_Init PROGBITS 00005660 006660 0000b4 00 AX 0 0 4 + [172] .text.HT1621_Clea PROGBITS 00005714 006714 000050 00 AX 0 0 4 + [173] .text.HT1621_ALLO PROGBITS 00005764 006764 000040 00 AX 0 0 4 + [174] .text.HT1621_Refr PROGBITS 000057a4 0067a4 00004c 00 AX 0 0 4 + [175] .text.Set_Tempera PROGBITS 000057f0 0067f0 0000d0 00 AX 0 0 4 + [176] .text.Local_Tempe PROGBITS 000058c0 0068c0 0000d0 00 AX 0 0 4 + [177] .text.Control_Mod PROGBITS 00005990 006990 000244 00 AX 0 0 4 + [178] .text.Control_win PROGBITS 00005bd4 006bd4 0000d0 00 AX 0 0 4 + [179] .text.Control_Pro PROGBITS 00005ca4 006ca4 0000a4 00 AX 0 0 4 + [180] .text.Controlled_ PROGBITS 00005d48 006d48 000048 00 AX 0 0 4 + [181] .text.Controlled_ PROGBITS 00005d90 006d90 0000dc 00 AX 0 0 4 + [182] .text.Controlled_ PROGBITS 00005e6c 006e6c 000030 00 AX 0 0 4 + [183] .text.Set_Device_ PROGBITS 00005e9c 006e9c 00009c 00 AX 0 0 4 + [184] .text.Set_Temp_Di PROGBITS 00005f38 006f38 000064 00 AX 0 0 4 + [185] .text.HT1621_Refr PROGBITS 00005f9c 006f9c 000090 00 AX 0 0 4 + [186] .text.TemCtrl_Ini PROGBITS 0000602c 00702c 00017c 00 AX 0 0 4 + [187] .text.TemCtrl_Mod PROGBITS 000061a8 0071a8 00004c 00 AX 0 0 4 + [188] .text.TemCtrl_Fan PROGBITS 000061f4 0071f4 000050 00 AX 0 0 4 + [189] .text.TemCtrl_Tem PROGBITS 00006244 007244 000030 00 AX 0 0 4 + [190] .text.TemCtrl_Tem PROGBITS 00006274 007274 000030 00 AX 0 0 4 + [191] .text.TemCtrl_OnO PROGBITS 000062a4 0072a4 000034 00 AX 0 0 4 + [192] .text.Tem_Valve_C PROGBITS 000062d8 0072d8 0000cc 00 AX 0 0 4 + [193] .text.TemCtrl_Pro PROGBITS 000063a4 0073a4 000178 00 AX 0 0 4 + [194] .text.KEY1_Model_ PROGBITS 0000651c 00751c 0000e0 00 AX 0 0 4 + [195] .text.KEY2_Fan_Pr PROGBITS 000065fc 0075fc 0000e0 00 AX 0 0 4 + [196] .text.KEY3_TempAd PROGBITS 000066dc 0076dc 000110 00 AX 0 0 4 + [197] .text.KEY3_Long_P PROGBITS 000067ec 0077ec 000078 00 AX 0 0 4 + [198] .text.KEY4_TempDe PROGBITS 00006864 007864 000110 00 AX 0 0 4 + [199] .text.KEY4_Long_P PROGBITS 00006974 007974 000078 00 AX 0 0 4 + [200] .text.KEY5_OnOff_ PROGBITS 000069ec 0079ec 000084 00 AX 0 0 4 + [201] .text.TempCtrl_On PROGBITS 00006a70 007a70 000054 00 AX 0 0 4 + [202] .text.DisPlay_Ini PROGBITS 00006ac4 007ac4 000020 00 AX 0 0 4 + [203] .text.Data_Resend PROGBITS 00006ae4 007ae4 000098 00 AX 0 0 4 + [204] .text.Switch_Repo PROGBITS 00006b7c 007b7c 0000c0 00 AX 0 0 4 + [205] .text.DisPlay_Tas PROGBITS 00006c3c 007c3c 0003e4 00 AX 0 0 4 + [206] .text.Debug_Init PROGBITS 00007020 008020 00003c 00 AX 0 0 4 + [207] .text.Dev_SaveDat PROGBITS 0000705c 00805c 000098 00 AX 0 0 4 + [208] .text.Debug_Task PROGBITS 000070f4 0080f4 00007c 00 AX 0 0 4 + [209] .text.BLV_RLY_Ctr PROGBITS 00007170 008170 000028 00 AX 0 0 4 + [210] .text.Relay_Init PROGBITS 00007198 008198 000018 00 AX 0 0 4 + [211] .text.Relay_High PROGBITS 000071b0 0081b0 00001c 00 AX 0 0 2 + [212] .text.Relay_Mid PROGBITS 000071cc 0081cc 00001c 00 AX 0 0 2 + [213] .text.Relay_Low PROGBITS 000071e8 0081e8 00001c 00 AX 0 0 2 + [214] .text.Relay_Stop PROGBITS 00007204 008204 00001c 00 AX 0 0 2 + [215] .text.BLV_RLY_Ctr PROGBITS 00007220 008220 000010 00 AX 0 0 2 + [216] .text.RLY_Direct_ PROGBITS 00007230 008230 0000c8 00 AX 0 0 4 + [217] .text.RLY_Zero_Co PROGBITS 000072f8 0082f8 000098 00 AX 0 0 4 + [218] .text.NetCRC16 PROGBITS 00007390 008390 00004c 00 AX 0 0 4 + [219] .text.GetCRC16 PROGBITS 000073dc 0083dc 00003c 00 AX 0 0 4 + [220] .text.SOR_CRC PROGBITS 00007418 008418 000016 00 AX 0 0 2 + [221] .text.Rs485AskCyc PROGBITS 00007430 008430 0000f0 00 AX 0 0 4 + [222] .text.Rs485AskCtr PROGBITS 00007520 008520 000050 00 AX 0 0 4 + [223] .text.Rs485AskRea PROGBITS 00007570 008570 00005c 00 AX 0 0 4 + [224] .text.Temp_Rec_An PROGBITS 000075cc 0085cc 0001bc 00 AX 0 0 4 + [225] .text.Tem_Rs485_R PROGBITS 00007788 008788 0000cc 00 AX 0 0 4 + [226] .text.TK_ConfigIn PROGBITS 00007854 008854 000010 00 AX 0 0 4 + [227] .text.tk_clk_conf PROGBITS 00007864 008864 000028 00 AX 0 0 4 + [228] .text.TK_con0_con PROGBITS 0000788c 00888c 0000bc 00 AX 0 0 4 + [229] .text.TK_IO_Enabl PROGBITS 00007948 008948 000134 00 AX 0 0 4 + [230] .text.TK_Sampling PROGBITS 00007a7c 008a7c 000058 00 AX 0 0 4 + [231] .text.TKEYIntHand PROGBITS 00007ad4 008ad4 000088 00 AX 0 0 4 + [232] .text.get_key_num PROGBITS 00007b5c 008b5c 000028 00 AX 0 0 4 + [233] .text.TK_Baseline PROGBITS 00007b84 008b84 000084 00 AX 0 0 4 + [234] .text.TK_Scan_Sta PROGBITS 00007c08 008c08 000020 00 AX 0 0 4 + [235] .text.TK_Keymap_p PROGBITS 00007c28 008c28 000180 00 AX 0 0 4 + [236] .text.TK_overflow PROGBITS 00007da8 008da8 00011c 00 AX 0 0 4 + [237] .text.TK_Baseline PROGBITS 00007ec4 008ec4 0001d0 00 AX 0 0 4 + [238] .text.TK_result_p PROGBITS 00008094 009094 000054 00 AX 0 0 4 + [239] .text.CORETHandle PROGBITS 000080e8 0090e8 000078 00 AX 0 0 4 + [240] .text.get_key_seq PROGBITS 00008160 009160 000034 00 AX 0 0 4 + [241] .text.CORET_CONFI PROGBITS 00008194 009194 000038 00 AX 0 0 4 + [242] .text.tk_chxval_s PROGBITS 000081cc 0091cc 00001c 00 AX 0 0 4 + [243] .text.tk_reserved PROGBITS 000081e8 0091e8 000028 00 AX 0 0 4 + [244] .text.tk_init PROGBITS 00008210 009210 000180 00 AX 0 0 4 + [245] .text.std_clk_cal PROGBITS 00008390 009390 000284 00 AX 0 0 4 + [246] .RomCode PROGBITS 00008614 00a0a8 000000 00 W 0 0 1 + [247] .rodata PROGBITS 00008614 009614 0008f8 00 A 0 0 4 + [248] .data PROGBITS 20000000 00a000 0000a8 00 WA 0 0 4 + [249] .bss NOBITS 200000a8 00a0a8 0007b8 00 WA 0 0 4 + [250] .csky.attributes CSKY_ATTRIBUTES 00000000 00a0a8 000022 00 0 0 1 + [251] .comment PROGBITS 00000000 00a0ca 000042 01 MS 0 0 1 + [252] .csky_stack_size PROGBITS 00000000 00a110 000a9c 00 0 0 16 + [253] .debug_line PROGBITS 00000000 00abac 006535 00 0 0 1 + [254] .debug_info PROGBITS 00000000 0110e1 04e283 00 0 0 1 + [255] .debug_abbrev PROGBITS 00000000 05f364 00466d 00 0 0 1 + [256] .debug_aranges PROGBITS 00000000 0639d8 0010f8 00 0 0 8 + [257] .debug_ranges PROGBITS 00000000 064ad0 0010c8 00 0 0 1 + [258] .debug_str PROGBITS 00000000 065b98 009cf3 01 MS 0 0 1 + [259] .debug_frame PROGBITS 00000000 06f88c 00284c 00 0 0 4 + [260] .debug_loc PROGBITS 00000000 0720d8 003fed 00 0 0 1 + [261] .shstrtab STRTAB 00000000 07de3d 0016e5 00 0 0 1 + [262] .symtab SYMTAB 00000000 0760c8 0060e0 10 263 1138 4 + [263] .strtab STRTAB 00000000 07c1a8 001c95 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 0x08f0c 0x08f0c R E 0x1000 + LOAD 0x00a000 0x20000000 0x00008f0c 0x000a8 0x00860 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.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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.MCU485_SendData .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.Data_Resend .text.Switch_Report_Task .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.TK_IO_Enable .text.TK_Sampling_prog .text.TKEYIntHandler .text.get_key_number .text.TK_Baseline_prog .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.CORETHandler .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_reserved_init .text.tk_init .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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/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.UART2_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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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 + 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.MCU485_SendData) 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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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/mcu_initial.o(.text.APT32F102_init) refers to Obj/mcu_initial.o(.text.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) 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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/USRCTRL_display_logic.o(.text.Data_Resend) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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.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_touch_key.o(.text.TouchKey_RS485_Printf) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.MCU485_SendData) for MCU485_SendData + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf) for TouchKey_RS485_Printf + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/USRCTRL_display_logic.o(.text.Switch_Report_Task) refers to Obj/USRCTRL_display_logic.o(.text.Data_Resend) for Data_Resend + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.Switch_Report_Task) for Switch_Report_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.Data_Resend) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) for TK_IO_Enable + 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.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.TK_Baseline_prog) for TK_Baseline_prog + 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 + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) for tk_init + 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/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.TK_IO_Enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_c_1_17.o(.text.tk_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + 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/USRCTRL_display_logic.o(.text.Data_Resend) refers to rand.o(.text) for rand + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to rand.o(.text) for rand + 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.UART2_TASK) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) 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_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.UART2_TASK) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2893 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_Status(Obj/FWlib_apt32f102_gpio.o), (16 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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (140 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (152 bytes). + Removing .text.Dbg_Print(Obj/SYSTEM_uart.o), (12 bytes). + Removing .text(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .text.Rs485_DevPort_ACK(Obj/USRCTRL_uart_protocol.o), (10 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), (107 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_DeInit(FWlib_apt32f102_tkey_c_1_17.o), (60 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.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(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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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 .bss(rand.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). + +588 unused seciton(s) (total 137218 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_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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* + rand.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 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + _fpadd_parts 0x00000d80 F 724 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00001048 0 .text + $t 0x00001054 0 .text + $d 0x000010bc 0 .text + $t 0x000010bc 0 .text + $d 0x000012e4 0 .text + $d 0x000012f0 0 .text + $t 0x000012f0 0 .text + $d 0x00001440 0 .text + $d 0x00001444 0 .text + $t 0x00001444 0 .text + $d 0x00001480 0 .text + $t 0x00001480 0 .text + $d 0x000014bc 0 .text + $t 0x000014bc 0 .text + $d 0x000014f8 0 .text + $t 0x000014f8 0 .text + $d 0x00001564 0 .text + $d 0x00001568 0 .text + $t 0x00001568 0 .text + $d 0x000015d4 0 .text + $d 0x000015d8 0 .text + $t 0x000015d8 0 .text + $d 0x0000162c 0 .text + $t 0x0000162c 0 .text + $d 0x00001670 0 .text + $t 0x00001670 0 .text + $d 0x000016a4 0 .text + $d 0x000016b0 0 .text + $t 0x000016b0 0 .text + $d 0x00001838 0 .text + $d 0x0000184c 0 .text + $t 0x0000184c 0 .text + $d 0x00001904 0 .text + $d 0x00001910 0 .text + $t 0x00001910 0 .text + $d 0x0000199c 0 .text + $t 0x0000199c 0 .text + $d 0x000019b0 0 .text + $t 0x000019bc 0 .text + $d 0x000019c2 0 .text + $d 0x000019c8 0 .text + $t 0x000019c8 0 .text + $d 0x00001a50 0 .text + $t 0x00001a50 0 .text + $d 0x00001ab4 0 .text.__main + $t 0x00001ab4 0 .text.__main + $d 0x00001ad8 0 .text.__main + SYSCON_General_CMD.part.0 0x00001aec F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001aec 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001aec 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b58 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b60 0 .text.SYSCON_RST_VALUE + $t 0x00001b60 0 .text.SYSCON_RST_VALUE + $d 0x00001b90 0 .text.SYSCON_RST_VALUE + $d 0x00001bac 0 .text.SYSCON_General_CMD + $t 0x00001bac 0 .text.SYSCON_General_CMD + $d 0x00001bd8 0 .text.SYSCON_General_CMD + $d 0x00001bdc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001bdc 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c54 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c64 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c88 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c8c 0 .text.SYSCON_WDT_CMD + $t 0x00001c8c 0 .text.SYSCON_WDT_CMD + $d 0x00001cbc 0 .text.SYSCON_WDT_CMD + $d 0x00001cc8 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001cc8 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cd8 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cdc 0 .text.SYSCON_IWDCNT_Config + $t 0x00001cdc 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cec 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cf4 0 .text.SYSCON_LVD_Config + $t 0x00001cf4 0 .text.SYSCON_LVD_Config + $d 0x00001d0c 0 .text.SYSCON_LVD_Config + $d 0x00001d14 0 .text.LVD_Int_Enable + $t 0x00001d14 0 .text.LVD_Int_Enable + $d 0x00001d2c 0 .text.LVD_Int_Enable + $d 0x00001d30 0 .text.IWDT_Int_Enable + $t 0x00001d30 0 .text.IWDT_Int_Enable + $d 0x00001d48 0 .text.IWDT_Int_Enable + $d 0x00001d4c 0 .text.EXTI_trigger_CMD + $t 0x00001d4c 0 .text.EXTI_trigger_CMD + $d 0x00001d88 0 .text.EXTI_trigger_CMD + $d 0x00001d8c 0 .text.EXTI_interrupt_CMD + $t 0x00001d8c 0 .text.EXTI_interrupt_CMD + $d 0x00001db8 0 .text.EXTI_interrupt_CMD + $d 0x00001dc0 0 .text.GPIO_EXTI_interrupt + $t 0x00001dc0 0 .text.GPIO_EXTI_interrupt + $d 0x00001dc4 0 .text.EXI4_Int_Enable + $t 0x00001dc4 0 .text.EXI4_Int_Enable + $d 0x00001dd0 0 .text.EXI4_Int_Enable + $d 0x00001dd4 0 .text.SYSCON_Int_Enable + $t 0x00001dd4 0 .text.SYSCON_Int_Enable + $d 0x00001ddc 0 .text.SYSCON_Int_Enable + $d 0x00001de0 0 .text.SYSCON_Int_Disable + $t 0x00001de0 0 .text.SYSCON_Int_Disable + $d 0x00001de8 0 .text.SYSCON_Int_Disable + $d 0x00001dec 0 .text.SYSCON_INT_Priority + $t 0x00001dec 0 .text.SYSCON_INT_Priority + $d 0x00001e04 0 .text.SYSCON_INT_Priority + $d 0x00001e10 0 .text.Set_INT_Priority + $t 0x00001e10 0 .text.Set_INT_Priority + $d 0x00001e3c 0 .text.Set_INT_Priority + $d 0x00001e40 0 .text.GPIO_Init + $t 0x00001e40 0 .text.GPIO_Init + $d 0x00001e52 0 .text.GPIO_Init + $t 0x00001e5a 0 .text.GPIO_Init + $d 0x00001eb6 0 .text.GPIO_Init + $t 0x00001ebe 0 .text.GPIO_Init + $d 0x00001f0c 0 .text.GPIO_Init + $d 0x00001f20 0 .text.GPIO_PullHigh_Init + $t 0x00001f20 0 .text.GPIO_PullHigh_Init + $d 0x00001f34 0 .text.GPIO_DriveStrength_EN + $t 0x00001f34 0 .text.GPIO_DriveStrength_EN + $d 0x00001f44 0 .text.GPIO_IntGroup_Set + $t 0x00001f44 0 .text.GPIO_IntGroup_Set + $d 0x00002038 0 .text.GPIO_IntGroup_Set + $d 0x00002050 0 .text.GPIOA0_EXI_Init + $t 0x00002050 0 .text.GPIOA0_EXI_Init + $d 0x0000205c 0 .text.GPIOA0_EXI_Init + $t 0x0000206c 0 .text.GPIOA0_EXI_Init + $d 0x00002148 0 .text.GPIOA0_EXI_Init + $d 0x0000214c 0 .text.GPIO_Write_High + $t 0x0000214c 0 .text.GPIO_Write_High + $d 0x00002154 0 .text.GPIO_Write_Low + $t 0x00002154 0 .text.GPIO_Write_Low + $d 0x0000215c 0 .text.GPIO_Reverse + $t 0x0000215c 0 .text.GPIO_Reverse + $d 0x00002174 0 .text.LPT_Soft_Reset + $t 0x00002174 0 .text.LPT_Soft_Reset + $d 0x00002184 0 .text.LPT_Soft_Reset + $d 0x00002188 0 .text.WWDT_CNT_Load + $t 0x00002188 0 .text.WWDT_CNT_Load + $d 0x00002194 0 .text.WWDT_CNT_Load + $d 0x00002198 0 .text.BT_DeInit + $t 0x00002198 0 .text.BT_DeInit + $d 0x000021b4 0 .text.BT_Start + $t 0x000021b4 0 .text.BT_Start + $d 0x000021bc 0 .text.BT_Soft_Reset + $t 0x000021bc 0 .text.BT_Soft_Reset + $d 0x000021c6 0 .text.BT_Configure + $t 0x000021c6 0 .text.BT_Configure + $d 0x000021de 0 .text.BT_ControlSet_Configure + $t 0x000021de 0 .text.BT_ControlSet_Configure + $d 0x0000220a 0 .text.BT_Period_CMP_Write + $t 0x0000220a 0 .text.BT_Period_CMP_Write + $d 0x00002210 0 .text.BT_ConfigInterrupt_CMD + $t 0x00002210 0 .text.BT_ConfigInterrupt_CMD + $d 0x00002224 0 .text.BT1_INT_ENABLE + $t 0x00002224 0 .text.BT1_INT_ENABLE + $d 0x00002230 0 .text.BT1_INT_ENABLE + $d 0x00002234 0 .text.SIO_DeInit + $t 0x00002234 0 .text.SIO_DeInit + $d 0x00002250 0 .text.SIO_DeInit + $d 0x00002254 0 .text.SIO_IO_Init + $t 0x00002254 0 .text.SIO_IO_Init + $d 0x000022ac 0 .text.SIO_IO_Init + $d 0x000022b4 0 .text.SIO_TX_Init + $t 0x000022b4 0 .text.SIO_TX_Init + $d 0x000022c0 0 .text.SIO_TX_Init + $d 0x000022c4 0 .text.SIO_TX_Configure + $t 0x000022c4 0 .text.SIO_TX_Configure + $d 0x00002310 0 .text.SIO_TX_Configure + $d 0x00002314 0 .text.UART0_DeInit + $t 0x00002314 0 .text.UART0_DeInit + $d 0x00002328 0 .text.UART0_DeInit + $d 0x0000232c 0 .text.UART1_DeInit + $t 0x0000232c 0 .text.UART1_DeInit + $d 0x00002340 0 .text.UART1_DeInit + $d 0x00002344 0 .text.UART2_DeInit + $t 0x00002344 0 .text.UART2_DeInit + $d 0x00002358 0 .text.UART2_DeInit + $d 0x0000235c 0 .text.UART0_Int_Enable + $t 0x0000235c 0 .text.UART0_Int_Enable + $d 0x00002370 0 .text.UART0_Int_Enable + $d 0x00002378 0 .text.UART2_Int_Enable + $t 0x00002378 0 .text.UART2_Int_Enable + $d 0x0000238c 0 .text.UART2_Int_Enable + $d 0x00002394 0 .text.UART_IO_Init + $t 0x00002394 0 .text.UART_IO_Init + $d 0x00002478 0 .text.UART_IO_Init + $d 0x00002480 0 .text.UARTInit + $t 0x00002480 0 .text.UARTInit + $d 0x0000248c 0 .text.UARTInit + $d 0x00002490 0 .text.UARTInitRxTxIntEn + $t 0x00002490 0 .text.UARTInitRxTxIntEn + $d 0x0000249c 0 .text.UARTInitRxTxIntEn + $d 0x000024a0 0 .text.UARTTransmit + $t 0x000024a0 0 .text.UARTTransmit + $d 0x000024c0 0 .text.EPT_Stop + $t 0x000024c0 0 .text.EPT_Stop + $d 0x000024e0 0 .text.EPT_Stop + $d 0x000024e8 0 .text.ADC12_RESET_VALUE + $t 0x000024e8 0 .text.ADC12_RESET_VALUE + $d 0x00002548 0 .text.ADC12_RESET_VALUE + $d 0x0000254c 0 .text.ADC12_Control + $t 0x0000254c 0 .text.ADC12_Control + $d 0x00002558 0 .text.ADC12_Control + ADC12_CMD.part.0 0x0000255c F 32 .text.ADC12_CMD.part.0 + $d 0x0000255c 0 .text.ADC12_CMD.part.0 + $t 0x0000255c 0 .text.ADC12_CMD.part.0 + $d 0x00002578 0 .text.ADC12_CMD.part.0 + $d 0x0000257c 0 .text.ADC12_CLK_CMD + $t 0x0000257c 0 .text.ADC12_CLK_CMD + $d 0x000025a4 0 .text.ADC12_CLK_CMD + $d 0x000025a8 0 .text.ADC12_Software_Reset + $t 0x000025a8 0 .text.ADC12_Software_Reset + $d 0x000025b4 0 .text.ADC12_CMD + $t 0x000025b4 0 .text.ADC12_CMD + $d 0x000025d8 0 .text.ADC12_CMD + $d 0x000025dc 0 .text.ADC12_ready_wait + $t 0x000025dc 0 .text.ADC12_ready_wait + $d 0x000025ec 0 .text.ADC12_ready_wait + $d 0x000025f0 0 .text.ADC12_SEQEND_wait + $t 0x000025f0 0 .text.ADC12_SEQEND_wait + $d 0x00002604 0 .text.ADC12_SEQEND_wait + $d 0x00002608 0 .text.ADC12_DATA_OUPUT + $t 0x00002608 0 .text.ADC12_DATA_OUPUT + $d 0x00002618 0 .text.ADC12_DATA_OUPUT + $d 0x0000261c 0 .text.ADC12_Configure_Mode + $t 0x0000261c 0 .text.ADC12_Configure_Mode + $d 0x00002694 0 .text.ADC12_Configure_Mode + $d 0x00002698 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00002698 0 .text.ADC12_Configure_VREF_Selecte + $d 0x0000280c 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002830 0 .text.ADC12_ConversionChannel_Config + $t 0x00002830 0 .text.ADC12_ConversionChannel_Config + $d 0x0000285c 0 .text.ADC12_ConversionChannel_Config + $t 0x0000286c 0 .text.ADC12_ConversionChannel_Config + $d 0x000029a4 0 .text.ADC12_ConversionChannel_Config + $d 0x000029b0 0 .text.Page_ProgramData + $t 0x000029b0 0 .text.Page_ProgramData + $d 0x00002a48 0 .text.Page_ProgramData + $d 0x00002a50 0 .text.ReadDataArry_U8 + $t 0x00002a50 0 .text.ReadDataArry_U8 + $d 0x00002a7c 0 .text.tk_parameter_init + $t 0x00002a7c 0 .text.tk_parameter_init + $d 0x00002b6c 0 .text.tk_parameter_init + $d 0x00002bbc 0 .text.CORET_DeInit + $t 0x00002bbc 0 .text.CORET_DeInit + $d 0x00002bd0 0 .text.CORET_DeInit + $d 0x00002bd4 0 .text.CORET_Int_Enable + $t 0x00002bd4 0 .text.CORET_Int_Enable + $d 0x00002be4 0 .text.CORET_Int_Enable + $d 0x00002bec 0 .text.CORET_start + $t 0x00002bec 0 .text.CORET_start + $d 0x00002bf8 0 .text.CORET_start + $d 0x00002bfc 0 .text.CORET_CLKSOURCE_EX + $t 0x00002bfc 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c08 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c0c 0 .text.CORET_TICKINT_Enable + $t 0x00002c0c 0 .text.CORET_TICKINT_Enable + $d 0x00002c18 0 .text.CORET_TICKINT_Enable + $d 0x00002c1c 0 .text.CORET_reload + $t 0x00002c1c 0 .text.CORET_reload + $d 0x00002c28 0 .text.CORET_reload + $d 0x00002c2c 0 .text.startup.main + $t 0x00002c2c 0 .text.startup.main + $d 0x00002c74 0 .text.startup.main + $d 0x00002c7c 0 .text.delay_nms + $t 0x00002c7c 0 .text.delay_nms + $d 0x00002ca8 0 .text.delay_nus + $t 0x00002ca8 0 .text.delay_nus + $d 0x00002ccc 0 .text.GPIO_CONFIG + $t 0x00002ccc 0 .text.GPIO_CONFIG + $d 0x00002d10 0 .text.GPIO_CONFIG + $d 0x00002d14 0 .text.BT_CONFIG + $t 0x00002d14 0 .text.BT_CONFIG + $d 0x00002d6c 0 .text.BT_CONFIG + $d 0x00002d74 0 .text.SYSCON_CONFIG + $t 0x00002d74 0 .text.SYSCON_CONFIG + $d 0x00002dd8 0 .text.APT32F102_init + $t 0x00002dd8 0 .text.APT32F102_init + $d 0x00002e4c 0 .text.APT32F102_init + $d 0x00002e60 0 .text.SYSCONIntHandler + $t 0x00002e60 0 .text.SYSCONIntHandler + $d 0x00002f4c 0 .text.SYSCONIntHandler + $d 0x00002f50 0 .text.IFCIntHandler + $t 0x00002f50 0 .text.IFCIntHandler + $d 0x00002fb4 0 .text.IFCIntHandler + $d 0x00002fb8 0 .text.ADCIntHandler + $t 0x00002fb8 0 .text.ADCIntHandler + $d 0x0000301c 0 .text.ADCIntHandler + $d 0x00003020 0 .text.EPT0IntHandler + $t 0x00003020 0 .text.EPT0IntHandler + $d 0x000031c0 0 .text.EPT0IntHandler + $d 0x000031cc 0 .text.WWDTHandler + $t 0x000031cc 0 .text.WWDTHandler + $d 0x000031fc 0 .text.WWDTHandler + $d 0x00003200 0 .text.GPT0IntHandler + $t 0x00003200 0 .text.GPT0IntHandler + $d 0x0000327c 0 .text.GPT0IntHandler + $d 0x00003280 0 .text.RTCIntHandler + $t 0x00003280 0 .text.RTCIntHandler + $d 0x000032e8 0 .text.RTCIntHandler + $d 0x000032f0 0 .text.UART0IntHandler + $t 0x000032f0 0 .text.UART0IntHandler + $d 0x00003328 0 .text.UART0IntHandler + $d 0x0000332c 0 .text.UART1IntHandler + $t 0x0000332c 0 .text.UART1IntHandler + $d 0x00003364 0 .text.UART1IntHandler + $d 0x00003368 0 .text.UART2IntHandler + $t 0x00003368 0 .text.UART2IntHandler + $d 0x000033e8 0 .text.UART2IntHandler + $d 0x000033fc 0 .text.SPI0IntHandler + $t 0x000033fc 0 .text.SPI0IntHandler + $d 0x000034e0 0 .text.SPI0IntHandler + $d 0x000034e4 0 .text.SIO0IntHandler + $t 0x000034e4 0 .text.SIO0IntHandler + $d 0x00003534 0 .text.SIO0IntHandler + $d 0x00003538 0 .text.EXI0IntHandler + $t 0x00003538 0 .text.EXI0IntHandler + $d 0x00003564 0 .text.EXI0IntHandler + $d 0x00003568 0 .text.EXI1IntHandler + $t 0x00003568 0 .text.EXI1IntHandler + $d 0x00003594 0 .text.EXI1IntHandler + $d 0x00003598 0 .text.EXI2to3IntHandler + $t 0x00003598 0 .text.EXI2to3IntHandler + $d 0x000035dc 0 .text.EXI2to3IntHandler + $d 0x000035e0 0 .text.EXI4to9IntHandler + $t 0x000035e0 0 .text.EXI4to9IntHandler + $d 0x00003638 0 .text.EXI4to9IntHandler + $d 0x0000363c 0 .text.EXI10to15IntHandler + $t 0x0000363c 0 .text.EXI10to15IntHandler + $d 0x000036b4 0 .text.EXI10to15IntHandler + $d 0x000036bc 0 .text.LPTIntHandler + $t 0x000036bc 0 .text.LPTIntHandler + $d 0x000036ec 0 .text.LPTIntHandler + $d 0x000036f0 0 .text.BT0IntHandler + $t 0x000036f0 0 .text.BT0IntHandler + $d 0x00003738 0 .text.BT0IntHandler + $d 0x0000373c 0 .text.BT1IntHandler + $t 0x0000373c 0 .text.BT1IntHandler + $d 0x00003798 0 .text.BT1IntHandler + $d 0x000037a0 0 .text.PriviledgeVioHandler + $t 0x000037a0 0 .text.PriviledgeVioHandler + $d 0x000037a2 0 .text.PendTrapHandler + $t 0x000037a2 0 .text.PendTrapHandler + $d 0x000037aa 0 .text.Trap3Handler + $t 0x000037aa 0 .text.Trap3Handler + $d 0x000037b2 0 .text.Trap2Handler + $t 0x000037b2 0 .text.Trap2Handler + $d 0x000037ba 0 .text.Trap1Handler + $t 0x000037ba 0 .text.Trap1Handler + $d 0x000037c2 0 .text.Trap0Handler + $t 0x000037c2 0 .text.Trap0Handler + $d 0x000037ca 0 .text.UnrecExecpHandler + $t 0x000037ca 0 .text.UnrecExecpHandler + $d 0x000037d2 0 .text.BreakPointHandler + $t 0x000037d2 0 .text.BreakPointHandler + $d 0x000037da 0 .text.AccessErrHandler + $t 0x000037da 0 .text.AccessErrHandler + $d 0x000037e2 0 .text.IllegalInstrHandler + $t 0x000037e2 0 .text.IllegalInstrHandler + $d 0x000037ea 0 .text.MisalignedHandler + $t 0x000037ea 0 .text.MisalignedHandler + $d 0x000037f2 0 .text.CNTAIntHandler + $t 0x000037f2 0 .text.CNTAIntHandler + $d 0x000037fa 0 .text.I2CIntHandler + $t 0x000037fa 0 .text.I2CIntHandler + $d 0x00003804 0 .text.__divsi3 + $t 0x00003804 0 .text.__divsi3 + $d 0x00003824 0 .text.__divsi3 + $d 0x00003828 0 .text.__udivsi3 + $t 0x00003828 0 .text.__udivsi3 + $d 0x00003848 0 .text.__udivsi3 + $d 0x0000384c 0 .text.__modsi3 + $t 0x0000384c 0 .text.__modsi3 + $d 0x0000386c 0 .text.__modsi3 + $d 0x00003870 0 .text.__umodsi3 + $t 0x00003870 0 .text.__umodsi3 + $d 0x00003890 0 .text.__umodsi3 + $d 0x00003894 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003894 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000389a 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000389a 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000038a0 0 .text.UARTx_Init + $t 0x000038a0 0 .text.UARTx_Init + $d 0x00003990 0 .text.UARTx_Init + $d 0x000039bc 0 .text.UART2_RecvINT_Processing + $t 0x000039bc 0 .text.UART2_RecvINT_Processing + $d 0x00003a18 0 .text.UART2_RecvINT_Processing + $d 0x00003a24 0 .text.UART2_TASK + $t 0x00003a24 0 .text.UART2_TASK + $d 0x00003ad0 0 .text.UART2_TASK + $d 0x00003ae8 0 .text.MCU485_SendData + $t 0x00003ae8 0 .text.MCU485_SendData + $d 0x00003b64 0 .text.MCU485_SendData + $d 0x00003b70 0 .text.Dbg_Println + $t 0x00003b70 0 .text.Dbg_Println + $d 0x00003b7c 0 .text.Dbg_Print_Buff + $t 0x00003b7c 0 .text.Dbg_Print_Buff + $d 0x00003b80 0 .text.Touch_Key_Init + $t 0x00003b80 0 .text.Touch_Key_Init + $d 0x00003bd4 0 .text.Touch_Key_Init + $d 0x00003be8 0 .text.TouchKey_RS485_Printf + $t 0x00003be8 0 .text.TouchKey_RS485_Printf + $d 0x00003d10 0 .text.TouchKey_RS485_Printf + $d 0x00003d20 0 .text.Get_TouchKey_CH_State + $t 0x00003d20 0 .text.Get_TouchKey_CH_State + $d 0x00003d2c 0 .text.Get_TouchKey_CH_State + $t 0x00003d32 0 .text.Get_TouchKey_CH_State + $d 0x00003d58 0 .text.Get_TouchKey_CH_State + $d 0x00003d5c 0 .text.Touch_Key_Event_Handling + $t 0x00003d5c 0 .text.Touch_Key_Event_Handling + $d 0x00003e04 0 .text.Touch_Key_Event_Handling + $d 0x00003e08 0 .text.TouchKey_Set_Interface_Task + $t 0x00003e08 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e38 0 .text.TouchKey_Set_Interface_Task + $d 0x00003e44 0 .text.Touch_Key_Task + $t 0x00003e44 0 .text.Touch_Key_Task + $d 0x00003f24 0 .text.Touch_Key_Task + $d 0x00003f34 0 .text.TouchKey_CheckSum + $t 0x00003f34 0 .text.TouchKey_CheckSum + $d 0x00003f4c 0 .text.TouchKey_Comm_Reply + $t 0x00003f4c 0 .text.TouchKey_Comm_Reply + $d 0x00003fb0 0 .text.TouchKey_Comm_Reply + $d 0x00003fb4 0 .text.TouchKey_SetPara_Processing + $t 0x00003fb4 0 .text.TouchKey_SetPara_Processing + $d 0x00004058 0 .text.TouchKey_SetPara_Processing + $d 0x0000406c 0 .text.TouchKey_ReadPara_Processing + $t 0x0000406c 0 .text.TouchKey_ReadPara_Processing + $d 0x0000415c 0 .text.TouchKey_ReadPara_Processing + $d 0x00004164 0 .text.TouchKey_DugPrintf_Processing + $t 0x00004164 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004198 0 .text.TouchKey_DugPrintf_Processing + $d 0x0000419c 0 .text.TouchKey_ReadEnve_Processing + $t 0x0000419c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004244 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000424c 0 .text.TouchKey_ResetDevice_Processing + $t 0x0000424c 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004268 0 .text.TouchKey_Comm_Processing + $t 0x00004268 0 .text.TouchKey_Comm_Processing + $d 0x000042f6 0 .text.TouchKey_Comm_Processing + $t 0x000042fc 0 .text.TouchKey_Comm_Processing + $d 0x00004324 0 .text.TouchKey_Comm_Processing + $d 0x00004340 0 .text.EEPROM_CheckSum + $t 0x00004340 0 .text.EEPROM_CheckSum + $d 0x00004358 0 .text.EEPROM_ReadParaInfo + $t 0x00004358 0 .text.EEPROM_ReadParaInfo + $d 0x000043c4 0 .text.EEPROM_ReadParaInfo + $d 0x000043cc 0 .text.EEPROM_WriteParaInfo + $t 0x000043cc 0 .text.EEPROM_WriteParaInfo + $d 0x0000440c 0 .text.EEPROM_WriteParaInfo + $d 0x00004410 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004410 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004494 0 .text.EEPROM_Validate_ParaInfo + $d 0x0000449c 0 .text.EEPROM_Default_ParaInfo + $t 0x0000449c 0 .text.EEPROM_Default_ParaInfo + $d 0x000044bc 0 .text.EEPROM_Init + $t 0x000044bc 0 .text.EEPROM_Init + $d 0x00004508 0 .text.EEPROM_Init + $d 0x00004514 0 .text.EEPROM_WriteTouchPara + $t 0x00004514 0 .text.EEPROM_WriteTouchPara + $d 0x00004574 0 .text.EEPROM_WriteTouchPara + $d 0x00004580 0 .text.EEPROM_ReadTouchPara + $t 0x00004580 0 .text.EEPROM_ReadTouchPara + $d 0x00004618 0 .text.EEPROM_ReadTouchPara + $d 0x0000462c 0 .text.EEPROM_Validate_TouchPara + $t 0x0000462c 0 .text.EEPROM_Validate_TouchPara + $d 0x000046d0 0 .text.EEPROM_Validate_TouchPara + $d 0x000046d4 0 .text.EEPROM_Default_TouchPara + $t 0x000046d4 0 .text.EEPROM_Default_TouchPara + $d 0x00004714 0 .text.EEPROM_TouchPara_Printf + $t 0x00004714 0 .text.EEPROM_TouchPara_Printf + $d 0x00004778 0 .text.EEPROM_TouchPara_Printf + $d 0x00004794 0 .text.ADC_Init + $t 0x00004794 0 .text.ADC_Init + $d 0x000047ec 0 .text.ADC_Init + $d 0x000047f0 0 .text.Thermistor_Array_Transform + $t 0x000047f0 0 .text.Thermistor_Array_Transform + $d 0x00004830 0 .text.Thermistor_Array_Transform + $d 0x00004838 0 .text.Calculate_ADC_Sample_Average + $t 0x00004838 0 .text.Calculate_ADC_Sample_Average + $d 0x000048c4 0 .text.Calculate_ADC_Sample_Average + $d 0x000048d4 0 .text.Get_Temp_Val + $t 0x000048d4 0 .text.Get_Temp_Val + $d 0x000048e0 0 .text.Get_Temp_Val + $d 0x000048e4 0 .text.Gather_Temp + $t 0x000048e4 0 .text.Gather_Temp + $d 0x00004980 0 .text.Gather_Temp + $d 0x0000498c 0 .text.ADC_Sample_Task + $t 0x0000498c 0 .text.ADC_Sample_Task + $d 0x00004a28 0 .text.ADC_Sample_Task + $d 0x00004a34 0 .text.Contol_Switch_Light + $t 0x00004a34 0 .text.Contol_Switch_Light + $d 0x00004a44 0 .text.Contol_Switch_Light + $t 0x00004a50 0 .text.Contol_Switch_Light + $d 0x00004dcc 0 .text.Contol_Switch_Light + $t 0x00004dd4 0 .text.Contol_Switch_Light + $d 0x00004e20 0 .text.Contol_Switch_Light_2 + $t 0x00004e20 0 .text.Contol_Switch_Light_2 + $d 0x00004e30 0 .text.Contol_Switch_Light_2 + $t 0x00004e3c 0 .text.Contol_Switch_Light_2 + $d 0x000051b8 0 .text.Contol_Switch_Light_2 + $t 0x000051c0 0 .text.Contol_Switch_Light_2 + $d 0x0000520c 0 .text.Contol_Switch_ClickAction + $t 0x0000520c 0 .text.Contol_Switch_ClickAction + $d 0x00005230 0 .text.Contol_Switch_ClickAction + $d 0x00005234 0 .text.Get_TM1812_State_Change + $t 0x00005234 0 .text.Get_TM1812_State_Change + $d 0x00005278 0 .text.Get_TM1812_State_Change + $d 0x00005280 0 .text.TimeCall_SIO_Send + $t 0x00005280 0 .text.TimeCall_SIO_Send + $d 0x00005394 0 .text.TimeCall_SIO_Send + $d 0x000053a0 0 .text.TimeCall_SIO_Send2 + $t 0x000053a0 0 .text.TimeCall_SIO_Send2 + $d 0x00005438 0 .text.TimeCall_SIO_Send2 + $d 0x00005448 0 .text.Tm1812_Task + $t 0x00005448 0 .text.Tm1812_Task + $d 0x00005488 0 .text.Tm1812_Task + $d 0x00005498 0 .text.Tm1812_Ch_Insert_Data + $t 0x00005498 0 .text.Tm1812_Ch_Insert_Data + $d 0x000054b4 0 .text.Tm1812_Ch_Insert_Data + $d 0x000054bc 0 .text.TM1812_Control_CH_State + $t 0x000054bc 0 .text.TM1812_Control_CH_State + $d 0x00005518 0 .text.TM1812_Control_CH_State + $d 0x0000552c 0 .text.TM1812_Control_CH_CurrState + $t 0x0000552c 0 .text.TM1812_Control_CH_CurrState + $d 0x00005584 0 .text.TM1812_Control_CH_CurrState + $d 0x00005590 0 .text.TM1812_LED_Init + $t 0x00005590 0 .text.TM1812_LED_Init + $d 0x000055e4 0 .text.TM1812_LED_Init + $d 0x000055e8 0 .text.HT1621_WR_Data + $t 0x000055e8 0 .text.HT1621_WR_Data + $d 0x0000562c 0 .text.HT1621_WR_Data + $d 0x00005630 0 .text.HT1621_WR_CMD + $t 0x00005630 0 .text.HT1621_WR_CMD + $d 0x0000565c 0 .text.HT1621_WR_CMD + $d 0x00005660 0 .text.HT1621_Init + $t 0x00005660 0 .text.HT1621_Init + $d 0x0000570c 0 .text.HT1621_Init + $d 0x00005714 0 .text.HT1621_Clear + $t 0x00005714 0 .text.HT1621_Clear + $d 0x0000575c 0 .text.HT1621_Clear + $d 0x00005764 0 .text.HT1621_ALLON + $t 0x00005764 0 .text.HT1621_ALLON + $d 0x000057a0 0 .text.HT1621_ALLON + $d 0x000057a4 0 .text.HT1621_Refresh_Data + $t 0x000057a4 0 .text.HT1621_Refresh_Data + $d 0x000057e8 0 .text.HT1621_Refresh_Data + $d 0x000057f0 0 .text.Set_Temperature_Display + $t 0x000057f0 0 .text.Set_Temperature_Display + $d 0x000058b4 0 .text.Set_Temperature_Display + $d 0x000058c0 0 .text.Local_Temperature_Display + $t 0x000058c0 0 .text.Local_Temperature_Display + $d 0x00005984 0 .text.Local_Temperature_Display + $d 0x00005990 0 .text.Control_Mode + $t 0x00005990 0 .text.Control_Mode + $d 0x0000599a 0 .text.Control_Mode + $t 0x000059a8 0 .text.Control_Mode + $d 0x00005bcc 0 .text.Control_Mode + $d 0x00005bd4 0 .text.Control_wind_velocity + $t 0x00005bd4 0 .text.Control_wind_velocity + $d 0x00005be0 0 .text.Control_wind_velocity + $t 0x00005be6 0 .text.Control_wind_velocity + $d 0x00005ca0 0 .text.Control_wind_velocity + $d 0x00005ca4 0 .text.Control_Prompt_Text + $t 0x00005ca4 0 .text.Control_Prompt_Text + $d 0x00005d44 0 .text.Control_Prompt_Text + $d 0x00005d48 0 .text.Controlled_Buzzer + $t 0x00005d48 0 .text.Controlled_Buzzer + $d 0x00005d88 0 .text.Controlled_Buzzer + $d 0x00005d90 0 .text.Controlled_LCD_Backlight + $t 0x00005d90 0 .text.Controlled_LCD_Backlight + $d 0x00005e64 0 .text.Controlled_LCD_Backlight + $d 0x00005e6c 0 .text.Controlled_Key_Backlight + $t 0x00005e6c 0 .text.Controlled_Key_Backlight + $d 0x00005e98 0 .text.Controlled_Key_Backlight + $d 0x00005e9c 0 .text.Set_Device_ADDR + $t 0x00005e9c 0 .text.Set_Device_ADDR + $d 0x00005f30 0 .text.Set_Device_ADDR + $d 0x00005f38 0 .text.Set_Temp_Difference + $t 0x00005f38 0 .text.Set_Temp_Difference + $d 0x00005f94 0 .text.Set_Temp_Difference + $d 0x00005f9c 0 .text.HT1621_Refresh_Task + $t 0x00005f9c 0 .text.HT1621_Refresh_Task + $d 0x00006014 0 .text.HT1621_Refresh_Task + $d 0x0000602c 0 .text.TemCtrl_Init + $t 0x0000602c 0 .text.TemCtrl_Init + $d 0x00006190 0 .text.TemCtrl_Init + $d 0x000061a8 0 .text.TemCtrl_Model_Set + $t 0x000061a8 0 .text.TemCtrl_Model_Set + $d 0x000061ec 0 .text.TemCtrl_Model_Set + $d 0x000061f4 0 .text.TemCtrl_Fan_Set + $t 0x000061f4 0 .text.TemCtrl_Fan_Set + $d 0x00006212 0 .text.TemCtrl_Fan_Set + $t 0x00006216 0 .text.TemCtrl_Fan_Set + $d 0x0000623c 0 .text.TemCtrl_Fan_Set + $d 0x00006244 0 .text.TemCtrl_Temperature_Dec + $t 0x00006244 0 .text.TemCtrl_Temperature_Dec + $d 0x0000626c 0 .text.TemCtrl_Temperature_Dec + $d 0x00006274 0 .text.TemCtrl_Temperature_Add + $t 0x00006274 0 .text.TemCtrl_Temperature_Add + $d 0x0000629c 0 .text.TemCtrl_Temperature_Add + $d 0x000062a4 0 .text.TemCtrl_OnOff_Set + $t 0x000062a4 0 .text.TemCtrl_OnOff_Set + $d 0x000062d0 0 .text.TemCtrl_OnOff_Set + $d 0x000062d8 0 .text.Tem_Valve_Ctrl + $t 0x000062d8 0 .text.Tem_Valve_Ctrl + $d 0x00006398 0 .text.Tem_Valve_Ctrl + $d 0x000063a4 0 .text.TemCtrl_Pro + $t 0x000063a4 0 .text.TemCtrl_Pro + $d 0x00006504 0 .text.TemCtrl_Pro + $d 0x0000651c 0 .text.KEY1_Model_Press_Fun + $t 0x0000651c 0 .text.KEY1_Model_Press_Fun + $d 0x000065e8 0 .text.KEY1_Model_Press_Fun + $d 0x000065fc 0 .text.KEY2_Fan_Press_Fun + $t 0x000065fc 0 .text.KEY2_Fan_Press_Fun + $d 0x000066c8 0 .text.KEY2_Fan_Press_Fun + $d 0x000066dc 0 .text.KEY3_TempAdd_Press_Fun + $t 0x000066dc 0 .text.KEY3_TempAdd_Press_Fun + $d 0x000067d8 0 .text.KEY3_TempAdd_Press_Fun + $d 0x000067ec 0 .text.KEY3_Long_Press_Fun + $t 0x000067ec 0 .text.KEY3_Long_Press_Fun + $d 0x00006854 0 .text.KEY3_Long_Press_Fun + $d 0x00006864 0 .text.KEY4_TempDec_Press_Fun + $t 0x00006864 0 .text.KEY4_TempDec_Press_Fun + $d 0x00006960 0 .text.KEY4_TempDec_Press_Fun + $d 0x00006974 0 .text.KEY4_Long_Press + $t 0x00006974 0 .text.KEY4_Long_Press + $d 0x000069dc 0 .text.KEY4_Long_Press + $d 0x000069ec 0 .text.KEY5_OnOff_Press_Fun + $t 0x000069ec 0 .text.KEY5_OnOff_Press_Fun + $d 0x00006a5c 0 .text.KEY5_OnOff_Press_Fun + $d 0x00006a70 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00006a70 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006abc 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006ac4 0 .text.DisPlay_Init + $t 0x00006ac4 0 .text.DisPlay_Init + $d 0x00006adc 0 .text.DisPlay_Init + $d 0x00006ae4 0 .text.Data_Resend + $t 0x00006ae4 0 .text.Data_Resend + $d 0x00006b6c 0 .text.Data_Resend + $d 0x00006b7c 0 .text.Switch_Report_Task + $t 0x00006b7c 0 .text.Switch_Report_Task + $d 0x00006c28 0 .text.Switch_Report_Task + $d 0x00006c3c 0 .text.DisPlay_Task + $t 0x00006c3c 0 .text.DisPlay_Task + $d 0x00006e4c 0 .text.DisPlay_Task + $t 0x00006e54 0 .text.DisPlay_Task + $d 0x00006f8c 0 .text.DisPlay_Task + $t 0x00006fc8 0 .text.DisPlay_Task + $d 0x0000701c 0 .text.DisPlay_Task + $d 0x00007020 0 .text.Debug_Init + $t 0x00007020 0 .text.Debug_Init + $d 0x00007054 0 .text.Debug_Init + $d 0x0000705c 0 .text.Dev_SaveData + $t 0x0000705c 0 .text.Dev_SaveData + $d 0x000070e4 0 .text.Dev_SaveData + $d 0x000070f4 0 .text.Debug_Task + $t 0x000070f4 0 .text.Debug_Task + $d 0x00007160 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x00007170 F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007170 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00007170 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007194 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007198 0 .text.Relay_Init + $t 0x00007198 0 .text.Relay_Init + $d 0x000071ac 0 .text.Relay_Init + $d 0x000071b0 0 .text.Relay_High + $t 0x000071b0 0 .text.Relay_High + $d 0x000071cc 0 .text.Relay_Mid + $t 0x000071cc 0 .text.Relay_Mid + $d 0x000071e8 0 .text.Relay_Low + $t 0x000071e8 0 .text.Relay_Low + $d 0x00007204 0 .text.Relay_Stop + $t 0x00007204 0 .text.Relay_Stop + $d 0x00007220 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00007220 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x00007230 0 .text.RLY_Direct_Control + $t 0x00007230 0 .text.RLY_Direct_Control + $d 0x00007272 0 .text.RLY_Direct_Control + $t 0x00007276 0 .text.RLY_Direct_Control + $d 0x000072f0 0 .text.RLY_Direct_Control + $d 0x000072f8 0 .text.RLY_Zero_Control + $t 0x000072f8 0 .text.RLY_Zero_Control + $d 0x0000730e 0 .text.RLY_Zero_Control + $t 0x00007312 0 .text.RLY_Zero_Control + $d 0x0000738c 0 .text.RLY_Zero_Control + $d 0x00007390 0 .text.NetCRC16 + $t 0x00007390 0 .text.NetCRC16 + $d 0x000073d4 0 .text.NetCRC16 + $d 0x000073dc 0 .text.GetCRC16 + $t 0x000073dc 0 .text.GetCRC16 + $d 0x00007410 0 .text.GetCRC16 + $d 0x00007418 0 .text.SOR_CRC + $t 0x00007418 0 .text.SOR_CRC + $d 0x00007430 0 .text.Rs485AskCycleSend + $t 0x00007430 0 .text.Rs485AskCycleSend + $d 0x00007518 0 .text.Rs485AskCycleSend + $d 0x00007520 0 .text.Rs485AskCtrlSend + $t 0x00007520 0 .text.Rs485AskCtrlSend + $d 0x0000756c 0 .text.Rs485AskCtrlSend + $d 0x00007570 0 .text.Rs485AskReadSend + $t 0x00007570 0 .text.Rs485AskReadSend + $d 0x000075c8 0 .text.Rs485AskReadSend + $d 0x000075cc 0 .text.Temp_Rec_Analysis + $t 0x000075cc 0 .text.Temp_Rec_Analysis + $d 0x00007634 0 .text.Temp_Rec_Analysis + $t 0x00007646 0 .text.Temp_Rec_Analysis + $d 0x0000766c 0 .text.Temp_Rec_Analysis + $t 0x00007670 0 .text.Temp_Rec_Analysis + $d 0x0000775e 0 .text.Temp_Rec_Analysis + $t 0x00007762 0 .text.Temp_Rec_Analysis + $d 0x00007778 0 .text.Temp_Rec_Analysis + $d 0x00007788 0 .text.Tem_Rs485_Rec_Pro + $t 0x00007788 0 .text.Tem_Rs485_Rec_Pro + $d 0x00007844 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x00007854 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007854 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00007854 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007860 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007864 0 .text.tk_clk_config + $t 0x00007864 0 .text.tk_clk_config + $d 0x00007888 0 .text.tk_clk_config + $d 0x0000788c 0 .text.TK_con0_config + $t 0x0000788c 0 .text.TK_con0_config + $d 0x0000793c 0 .text.TK_con0_config + $d 0x00007948 0 .text.TK_IO_Enable + $t 0x00007948 0 .text.TK_IO_Enable + $d 0x0000798c 0 .text.TK_IO_Enable + $t 0x0000799c 0 .text.TK_IO_Enable + $d 0x00007a70 0 .text.TK_IO_Enable + $d 0x00007a7c 0 .text.TK_Sampling_prog + $t 0x00007a7c 0 .text.TK_Sampling_prog + $d 0x00007ac4 0 .text.TK_Sampling_prog + $d 0x00007ad4 0 .text.TKEYIntHandler + $t 0x00007ad4 0 .text.TKEYIntHandler + $d 0x00007b50 0 .text.TKEYIntHandler + $d 0x00007b5c 0 .text.get_key_number + $t 0x00007b5c 0 .text.get_key_number + $d 0x00007b80 0 .text.get_key_number + $d 0x00007b84 0 .text.TK_Baseline_prog + $t 0x00007b84 0 .text.TK_Baseline_prog + $d 0x00007bec 0 .text.TK_Baseline_prog + $d 0x00007c08 0 .text.TK_Scan_Start + $t 0x00007c08 0 .text.TK_Scan_Start + $d 0x00007c20 0 .text.TK_Scan_Start + $d 0x00007c28 0 .text.TK_Keymap_prog + $t 0x00007c28 0 .text.TK_Keymap_prog + $d 0x00007d70 0 .text.TK_Keymap_prog + $d 0x00007da8 0 .text.TK_overflow_predict + $t 0x00007da8 0 .text.TK_overflow_predict + $d 0x00007e90 0 .text.TK_overflow_predict + $d 0x00007ec4 0 .text.TK_Baseline_tracking + $t 0x00007ec4 0 .text.TK_Baseline_tracking + $d 0x00008068 0 .text.TK_Baseline_tracking + $d 0x00008094 0 .text.TK_result_prog + $t 0x00008094 0 .text.TK_result_prog + $d 0x000080d4 0 .text.TK_result_prog + $d 0x000080e8 0 .text.CORETHandler + $t 0x000080e8 0 .text.CORETHandler + $d 0x00008148 0 .text.CORETHandler + $d 0x00008160 0 .text.get_key_seq + $t 0x00008160 0 .text.get_key_seq + $d 0x0000818c 0 .text.get_key_seq + $d 0x00008194 0 .text.CORET_CONFIG + $t 0x00008194 0 .text.CORET_CONFIG + $d 0x000081c4 0 .text.CORET_CONFIG + $d 0x000081cc 0 .text.tk_chxval_seqxcon_clr + $t 0x000081cc 0 .text.tk_chxval_seqxcon_clr + $d 0x000081e4 0 .text.tk_chxval_seqxcon_clr + $d 0x000081e8 0 .text.tk_reserved_init + $t 0x000081e8 0 .text.tk_reserved_init + $d 0x000081fc 0 .text.tk_reserved_init + $d 0x00008210 0 .text.tk_init + $t 0x00008210 0 .text.tk_init + $d 0x0000824c 0 .text.tk_init + $t 0x00008252 0 .text.tk_init + $d 0x0000833c 0 .text.tk_init + $d 0x00008390 0 .text.std_clk_calib + $t 0x00008390 0 .text.std_clk_calib + $d 0x000085d8 0 .text.std_clk_calib + __func__.6382 0x00008614 O 28 .rodata + __func__.6420 0x00008630 O 25 .rodata + bp 0x00008988 O 16 .rodata + dp_l 0x00008998 O 16 .rodata + dp_h 0x000089a8 O 16 .rodata + minilibc_rand_seed 0x200000a4 O 4 .data + NUM.6405 0x200000b0 O 1 .bss + adc_tick.6315 0x20000134 O 4 .bss + StateChange_Tick.6405 0x20000224 O 4 .bss + tick.6344 0x20000228 O 4 .bss + OpenDisPlay_Flag 0x2000022c 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __adddf3 0x00001054 F 46 .text + __subdf3 0x00001084 F 54 .text + __muldf3 0x000010bc F 564 .text + __divdf3 0x000012f0 F 340 .text + __gtdf2 0x00001444 F 60 .text + __gedf2 0x00001480 F 60 .text + __ledf2 0x000014bc F 58 .text + __floatsidf 0x000014f8 F 112 .text + __fixdfsi 0x00001568 F 112 .text + __floatunsidf 0x000015d8 F 84 .text + __muldi3 0x0000162c F 68 .text + __clzsi2 0x00001670 F 64 .text + __pack_d 0x000016b0 F 412 .text + __unpack_d 0x0000184c F 196 .text + __fpcmp_parts_d 0x00001910 F 140 .text + __GI_rand 0x0000199c F 0 .text + rand 0x0000199c w F 20 .text + __GI_srand 0x000019bc F 6 .text + srand 0x000019bc w F 6 .text + __memset_fast 0x000019c8 w F 136 .text + memset 0x000019c8 w F 136 .text + __memcpy_fast 0x00001a50 w F 100 .text + memcpy 0x00001a50 w F 100 .text + __main 0x00001ab4 F 56 .text.__main + SYSCON_RST_VALUE 0x00001b60 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001bac F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001bdc F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c64 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c8c F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001cc8 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001cdc F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001cf4 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001d14 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001d30 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001d4c F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00001d8c F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00001dc0 F 4 .text.GPIO_EXTI_interrupt + EXI4_Int_Enable 0x00001dc4 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00001dd4 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00001de0 F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x00001dec F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001e10 F 48 .text.Set_INT_Priority + GPIO_Init 0x00001e40 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f20 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f34 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f44 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00002050 F 252 .text.GPIOA0_EXI_Init + GPIO_Write_High 0x0000214c F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00002154 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x0000215c F 22 .text.GPIO_Reverse + LPT_Soft_Reset 0x00002174 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002188 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002198 F 28 .text.BT_DeInit + BT_Start 0x000021b4 F 8 .text.BT_Start + BT_Soft_Reset 0x000021bc F 10 .text.BT_Soft_Reset + BT_Configure 0x000021c6 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000021de F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000220a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00002210 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00002224 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00002234 F 32 .text.SIO_DeInit + SIO_IO_Init 0x00002254 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x000022b4 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x000022c4 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x00002314 F 24 .text.UART0_DeInit + UART1_DeInit 0x0000232c F 24 .text.UART1_DeInit + UART2_DeInit 0x00002344 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x0000235c F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00002378 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002394 F 236 .text.UART_IO_Init + UARTInit 0x00002480 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00002490 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x000024a0 F 30 .text.UARTTransmit + EPT_Stop 0x000024c0 F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x000024e8 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x0000254c F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x0000257c F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x000025a8 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000025b4 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x000025dc F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x000025f0 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002608 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x0000261c F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00002698 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002830 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x000029b0 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002a50 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002a7c F 320 .text.tk_parameter_init + CORET_DeInit 0x00002bbc F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002bd4 F 24 .text.CORET_Int_Enable + CORET_start 0x00002bec F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002bfc F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c0c F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c1c F 16 .text.CORET_reload + main 0x00002c2c F 80 .text.startup.main + delay_nms 0x00002c7c F 44 .text.delay_nms + delay_nus 0x00002ca8 F 34 .text.delay_nus + GPIO_CONFIG 0x00002ccc F 72 .text.GPIO_CONFIG + BT_CONFIG 0x00002d14 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002d74 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002dd8 F 136 .text.APT32F102_init + SYSCONIntHandler 0x00002e60 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002f50 F 104 .text.IFCIntHandler + ADCIntHandler 0x00002fb8 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003020 F 428 .text.EPT0IntHandler + WWDTHandler 0x000031cc F 52 .text.WWDTHandler + GPT0IntHandler 0x00003200 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003280 F 112 .text.RTCIntHandler + UART0IntHandler 0x000032f0 F 60 .text.UART0IntHandler + UART1IntHandler 0x0000332c F 60 .text.UART1IntHandler + UART2IntHandler 0x00003368 F 148 .text.UART2IntHandler + SPI0IntHandler 0x000033fc F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000034e4 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003538 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00003568 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00003598 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000035e0 F 92 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x0000363c F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x000036bc F 52 .text.LPTIntHandler + BT0IntHandler 0x000036f0 F 76 .text.BT0IntHandler + BT1IntHandler 0x0000373c F 100 .text.BT1IntHandler + PriviledgeVioHandler 0x000037a0 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000037a2 F 8 .text.PendTrapHandler + Trap3Handler 0x000037aa F 8 .text.Trap3Handler + Trap2Handler 0x000037b2 F 8 .text.Trap2Handler + Trap1Handler 0x000037ba F 8 .text.Trap1Handler + Trap0Handler 0x000037c2 F 8 .text.Trap0Handler + UnrecExecpHandler 0x000037ca F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000037d2 F 8 .text.BreakPointHandler + AccessErrHandler 0x000037da F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000037e2 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000037ea F 8 .text.MisalignedHandler + CNTAIntHandler 0x000037f2 F 8 .text.CNTAIntHandler + I2CIntHandler 0x000037fa F 8 .text.I2CIntHandler + __divsi3 0x00003804 F 36 .text.__divsi3 + __udivsi3 0x00003828 F 36 .text.__udivsi3 + __modsi3 0x0000384c F 36 .text.__modsi3 + __umodsi3 0x00003870 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003894 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000389a F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000038a0 F 284 .text.UARTx_Init + UART2_RecvINT_Processing 0x000039bc F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003a24 F 196 .text.UART2_TASK + MCU485_SendData 0x00003ae8 F 136 .text.MCU485_SendData + Dbg_Println 0x00003b70 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003b7c F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003b80 F 104 .text.Touch_Key_Init + TouchKey_RS485_Printf 0x00003be8 F 312 .text.TouchKey_RS485_Printf + Get_TouchKey_CH_State 0x00003d20 F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00003d5c F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00003e08 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00003e44 F 240 .text.Touch_Key_Task + TouchKey_CheckSum 0x00003f34 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00003f4c F 104 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00003fb4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x0000406c F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00004164 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x0000419c F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x0000424c F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004268 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004340 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004358 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x000043cc F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004410 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x0000449c F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x000044bc F 88 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x00004514 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004580 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x0000462c F 168 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000046d4 F 64 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004714 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004794 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x000047f0 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004838 F 156 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x000048d4 F 16 .text.Get_Temp_Val + Gather_Temp 0x000048e4 F 168 .text.Gather_Temp + ADC_Sample_Task 0x0000498c F 168 .text.ADC_Sample_Task + Contol_Switch_Light 0x00004a34 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00004e20 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x0000520c F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00005234 F 76 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00005280 F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x000053a0 F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x00005448 F 80 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00005498 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x000054bc F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x0000552c F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00005590 F 88 .text.TM1812_LED_Init + HT1621_WR_Data 0x000055e8 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x00005630 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005660 F 180 .text.HT1621_Init + HT1621_Clear 0x00005714 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00005764 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x000057a4 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x000057f0 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x000058c0 F 208 .text.Local_Temperature_Display + Control_Mode 0x00005990 F 580 .text.Control_Mode + Control_wind_velocity 0x00005bd4 F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x00005ca4 F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00005d48 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00005d90 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00005e6c F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00005e9c F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00005f38 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00005f9c F 144 .text.HT1621_Refresh_Task + TemCtrl_Init 0x0000602c F 380 .text.TemCtrl_Init + TemCtrl_Model_Set 0x000061a8 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x000061f4 F 80 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00006244 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00006274 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x000062a4 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x000062d8 F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000063a4 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x0000651c F 224 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x000065fc F 224 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x000066dc F 272 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x000067ec F 120 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00006864 F 272 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00006974 F 120 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x000069ec F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00006a70 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00006ac4 F 32 .text.DisPlay_Init + Data_Resend 0x00006ae4 F 152 .text.Data_Resend + Switch_Report_Task 0x00006b7c F 192 .text.Switch_Report_Task + DisPlay_Task 0x00006c3c F 996 .text.DisPlay_Task + Debug_Init 0x00007020 F 60 .text.Debug_Init + Dev_SaveData 0x0000705c F 152 .text.Dev_SaveData + Debug_Task 0x000070f4 F 124 .text.Debug_Task + Relay_Init 0x00007198 F 24 .text.Relay_Init + Relay_High 0x000071b0 F 28 .text.Relay_High + Relay_Mid 0x000071cc F 28 .text.Relay_Mid + Relay_Low 0x000071e8 F 28 .text.Relay_Low + Relay_Stop 0x00007204 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x00007220 F 16 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x00007230 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x000072f8 F 152 .text.RLY_Zero_Control + NetCRC16 0x00007390 F 76 .text.NetCRC16 + GetCRC16 0x000073dc F 60 .text.GetCRC16 + SOR_CRC 0x00007418 F 22 .text.SOR_CRC + Rs485AskCycleSend 0x00007430 F 240 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00007520 F 80 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00007570 F 92 .text.Rs485AskReadSend + Temp_Rec_Analysis 0x000075cc F 444 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00007788 F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x00007864 F 40 .text.tk_clk_config + TK_con0_config 0x0000788c F 188 .text.TK_con0_config + TK_IO_Enable 0x00007948 F 308 .text.TK_IO_Enable + TK_Sampling_prog 0x00007a7c F 88 .text.TK_Sampling_prog + TKEYIntHandler 0x00007ad4 F 136 .text.TKEYIntHandler + get_key_number 0x00007b5c F 40 .text.get_key_number + TK_Baseline_prog 0x00007b84 F 132 .text.TK_Baseline_prog + TK_Scan_Start 0x00007c08 F 32 .text.TK_Scan_Start + TK_Keymap_prog 0x00007c28 F 384 .text.TK_Keymap_prog + TK_overflow_predict 0x00007da8 F 284 .text.TK_overflow_predict + TK_Baseline_tracking 0x00007ec4 F 464 .text.TK_Baseline_tracking + TK_result_prog 0x00008094 F 84 .text.TK_result_prog + CORETHandler 0x000080e8 F 120 .text.CORETHandler + get_key_seq 0x00008160 F 52 .text.get_key_seq + CORET_CONFIG 0x00008194 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x000081cc F 28 .text.tk_chxval_seqxcon_clr + tk_reserved_init 0x000081e8 F 40 .text.tk_reserved_init + tk_init 0x00008210 F 368 .text.tk_init + std_clk_calib 0x00008390 F 644 .text.std_clk_calib + R_Array 0x0000864a O 820 .rodata + Diaital 0x0000897e O 10 .rodata + __thenan_df 0x000089b8 O 20 .rodata + __clz_tab 0x000089cc O 256 .rodata + _end_rodata 0x00008f0c 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 + MCU_Touch_CH 0x20000068 O 5 .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 0x200000a8 0 .data + Sav_Temp 0x200000a8 O 4 .bss + _bss_start 0x200000a8 0 .bss + Sys_RSR 0x200000ac O 4 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + DealBuffer 0x200000bc O 100 .bss + DealLen 0x20000120 O 2 .bss + RS485_Comming 0x20000124 O 4 .bss + RS485_Comm_Flag 0x20000128 O 4 .bss + RS485_Comm_Start 0x2000012c O 4 .bss + RS485_Comm_End 0x20000130 O 4 .bss + tm1812_param 0x20000138 O 232 .bss + K 0x20000220 O 1 .bss + K2 0x20000221 O 1 .bss + Press_debounce_data 0x20000230 O 1 .bss + TK_Lowpower_mode 0x20000231 O 1 .bss + TK_Lowpower_level 0x20000232 O 1 .bss + TK_longpress_time 0x20000234 O 4 .bss + Release_debounce_data 0x20000238 O 1 .bss + Key_mode 0x20000239 O 1 .bss + TK_icon 0x2000023a O 34 .bss + MultiTimes_Filter 0x2000025c O 1 .bss + Base_Speed 0x2000025d O 1 .bss + TK_IO_ENABLE 0x20000260 O 4 .bss + Valid_Key_Num 0x20000264 O 1 .bss + TK_senprd 0x20000266 O 34 .bss + TK_Wakeup_level 0x20000288 O 1 .bss + TK_Triggerlevel 0x2000028a O 34 .bss + TK_EC_LEVEL 0x200002ac O 2 .bss + TK_FVR_LEVEL 0x200002ae O 2 .bss + TK_BaseCnt 0x200002b0 O 4 .bss + TK_PSEL_MODE 0x200002b4 O 2 .bss + R_CMPB_BUF 0x200002b8 O 4 .bss + R_CMPA_BUF 0x200002bc O 4 .bss + R_SIORX_buf 0x200002c0 O 40 .bss + g_uart 0x200002e8 O 360 .bss + touch_para 0x20000450 O 28 .bss + g_key 0x2000046c O 52 .bss + g_eeprom 0x200004a0 O 8 .bss + g_adc 0x200004a8 O 80 .bss + g_switch 0x200004f8 O 40 .bss + HT1621 0x20000520 O 64 .bss + TempCtrl 0x20000560 O 41 .bss + Debug_Inf 0x20000589 O 14 .bss + baseline_data0 0x20000598 O 34 .bss + TK_Postive_build2 0x200005ba O 17 .bss + Key_Map1 0x200005cc O 4 .bss + offset_data2_abs 0x200005d0 O 34 .bss + scan_f 0x200005f2 O 1 .bss + offset_data1_abs 0x200005f4 O 34 .bss + Release_debounce0 0x20000616 O 17 .bss + Key_Map0 0x20000628 O 4 .bss + bsae_over_f 0x2000062c O 1 .bss + scan_cnt 0x2000062e O 2 .bss + Press_debounce0 0x20000630 O 17 .bss + offset_data0 0x20000642 O 34 .bss + sampling_data1 0x20000664 O 34 .bss + Key_Map2 0x20000688 O 4 .bss + Release_debounce1 0x2000068c O 17 .bss + tk_overflow_f 0x2000069d O 1 .bss + TK_Negtive_build2 0x2000069e O 17 .bss + base_update_f 0x200006af O 1 .bss + TK_Postive_build1 0x200006b0 O 17 .bss + time_cnt 0x200006c4 O 4 .bss + lpt_scan_pend_cnt 0x200006c8 O 2 .bss + TK_track_cnt 0x200006ca O 1 .bss + Key_Map 0x200006cc O 4 .bss + baseline_data1 0x200006d0 O 34 .bss + TK_Postive_build0 0x200006f2 O 17 .bss + sampling_data2 0x20000704 O 34 .bss + offset_data1 0x20000726 O 34 .bss + TK_ovrdect_cnt 0x20000748 O 1 .bss + Press_debounce2 0x20000749 O 17 .bss + TK_Negtive_build1 0x2000075a O 17 .bss + tk_num 0x2000076b O 1 .bss + TK_Negtive_build0 0x2000076c O 17 .bss + Press_debounce1 0x2000077d O 17 .bss + Release_debounce2 0x2000078e O 17 .bss + r_Key_Map_Temp 0x200007a0 O 4 .bss + tk_seque 0x200007a4 O 17 .bss + scan_step 0x200007b5 O 1 .bss + baseline_data2 0x200007b6 O 34 .bss + tk_sampling_max 0x200007d8 O 34 .bss + offset_data0_abs 0x200007fa O 34 .bss + offset_data2 0x2000081c O 34 .bss + sampling_data0 0x2000083e O 34 .bss + _ebss 0x20000860 0 .bss + _end 0x20000860 0 .bss + end 0x20000860 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: 0x00008f0c, 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 1244 .text pow.o + 0x00000b5e 0x00000006 Code RO 1252 .text fabs.o + 0x00000b64 0x00000020 Code RO 1258 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1265 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1276 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1281 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1286 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1291 .text _fixunsdfsi.o + 0x00000d80 0x0000033a Code RO 1298 .text _addsub_df.o + 0x000010ba 0x00000002 PAD + 0x000010bc 0x00000234 Code RO 1305 .text _mul_df.o + 0x000012f0 0x00000154 Code RO 1312 .text _div_df.o + 0x00001444 0x0000003c Code RO 1319 .text _gt_df.o + 0x00001480 0x0000003c Code RO 1326 .text _ge_df.o + 0x000014bc 0x0000003a Code RO 1333 .text _le_df.o + 0x000014f6 0x00000002 PAD + 0x000014f8 0x00000070 Code RO 1340 .text _si_to_df.o + 0x00001568 0x00000070 Code RO 1347 .text _df_to_si.o + 0x000015d8 0x00000054 Code RO 1361 .text _usi_to_df.o + 0x0000162c 0x00000044 Code RO 1368 .text _muldi3.o + 0x00001670 0x00000040 Code RO 1375 .text _clzsi2.o + 0x000016b0 0x0000019c Code RO 1381 .text _pack_df.o + 0x0000184c 0x000000c4 Code RO 1388 .text _unpack_df.o + 0x00001910 0x0000008c Code RO 1395 .text _fpcmp_parts_df.o + 0x0000199c 0x0000002c Code RO 1416 .text rand.o + 0x000019c8 0x00000088 Code RO 1421 .text memset_fast.o + 0x00001a50 0x00000064 Code RO 1426 .text memcpy_fast.o + 0x00001ab4 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001aec 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001b60 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001bac 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001bdc 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c64 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c8c 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001cc8 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001cdc 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cf4 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001d14 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d30 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d4c 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d8c 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001dc0 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00001dc4 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001dd4 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001de0 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x00001dec 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e10 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e40 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f20 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f34 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f44 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002050 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x0000214c 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00002154 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x0000215c 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00002174 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002188 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002198 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000021b4 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000021bc 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000021c6 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000021de 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000220a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00002210 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00002224 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00002234 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x00002254 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x000022b4 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x000022c4 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x00002314 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x0000232c 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002344 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x0000235c 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002378 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002394 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002480 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00002490 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x000024a0 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000024c0 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000024e8 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x0000254c 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x0000255c 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x0000257c 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x000025a8 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000025b4 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x000025dc 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x000025f0 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002608 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x0000261c 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00002698 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002830 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x000029b0 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002a50 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002a7c 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002bbc 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002bd4 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002bec 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002bfc 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c0c 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c1c 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c2c 0x00000050 Code RO 705 .text.startup.main Obj/main.o + 0x00002c7c 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002ca8 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002ccc 0x00000048 Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x00002d14 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002d74 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002dd8 0x00000088 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002e60 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002f50 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00002fb8 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003020 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000031cc 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003200 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003280 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000032f0 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x0000332c 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003368 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000033fc 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000034e4 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003538 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00003568 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00003598 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000035e0 0x0000005c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x0000363c 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x000036bc 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000036f0 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x0000373c 0x00000064 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000037a0 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000037a2 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000037aa 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000037b2 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000037ba 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000037c2 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000037ca 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000037d2 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000037da 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000037e2 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000037ea 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000037f2 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000037fa 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003804 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003828 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x0000384c 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00003870 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003894 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000389a 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000038a0 0x0000011c Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000039bc 0x00000068 Code RO 838 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003a24 0x000000c4 Code RO 839 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003ae8 0x00000088 Code RO 841 .text.MCU485_SendData Obj/SYSTEM_uart.o + 0x00003b70 0x0000000c Code RO 844 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003b7c 0x00000002 Code RO 845 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003b80 0x00000068 Code RO 862 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003be8 0x00000138 Code RO 864 .text.TouchKey_RS485_Printf Obj/SYSTEM_touch_key.o + 0x00003d20 0x0000003c Code RO 866 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003d5c 0x000000ac Code RO 868 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00003e08 0x0000003c Code RO 869 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00003e44 0x000000f0 Code RO 870 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00003f34 0x00000018 Code RO 871 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00003f4c 0x00000068 Code RO 872 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00003fb4 0x000000b8 Code RO 873 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x0000406c 0x000000f8 Code RO 874 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00004164 0x00000038 Code RO 875 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x0000419c 0x000000b0 Code RO 876 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x0000424c 0x0000001a Code RO 877 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004268 0x000000d8 Code RO 878 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004340 0x00000016 Code RO 897 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004358 0x00000074 Code RO 898 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x000043cc 0x00000044 Code RO 899 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004410 0x0000008c Code RO 901 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x0000449c 0x00000020 Code RO 902 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000044bc 0x00000058 Code RO 903 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00004514 0x0000006c Code RO 904 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004580 0x000000ac Code RO 905 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x0000462c 0x000000a8 Code RO 906 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000046d4 0x00000040 Code RO 907 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004714 0x00000080 Code RO 908 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004794 0x0000005c Code RO 926 .text.ADC_Init Obj/SYSTEM_adc.o + 0x000047f0 0x00000048 Code RO 927 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004838 0x0000009c Code RO 928 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000048d4 0x00000010 Code RO 929 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x000048e4 0x000000a8 Code RO 930 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x0000498c 0x000000a8 Code RO 931 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004a34 0x000003ea Code RO 950 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00004e20 0x000003ea Code RO 951 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x0000520c 0x00000028 Code RO 952 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00005234 0x0000004c Code RO 974 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00005280 0x00000120 Code RO 976 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x000053a0 0x000000a8 Code RO 977 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x00005448 0x00000050 Code RO 978 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00005498 0x00000024 Code RO 979 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x000054bc 0x00000070 Code RO 980 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x0000552c 0x00000064 Code RO 981 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00005590 0x00000058 Code RO 982 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x000055e8 0x00000048 Code RO 999 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x00005630 0x00000030 Code RO 1000 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005660 0x000000b4 Code RO 1001 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00005714 0x00000050 Code RO 1005 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00005764 0x00000040 Code RO 1006 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x000057a4 0x0000004c Code RO 1007 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x000057f0 0x000000d0 Code RO 1008 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x000058c0 0x000000d0 Code RO 1009 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005990 0x00000244 Code RO 1010 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00005bd4 0x000000d0 Code RO 1011 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00005ca4 0x000000a4 Code RO 1012 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00005d48 0x00000048 Code RO 1013 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00005d90 0x000000dc Code RO 1014 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00005e6c 0x00000030 Code RO 1015 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00005e9c 0x0000009c Code RO 1016 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00005f38 0x00000064 Code RO 1017 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00005f9c 0x00000090 Code RO 1018 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x0000602c 0x0000017c Code RO 1038 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x000061a8 0x0000004c Code RO 1039 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x000061f4 0x00000050 Code RO 1040 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006244 0x00000030 Code RO 1041 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00006274 0x00000030 Code RO 1042 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x000062a4 0x00000034 Code RO 1043 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x000062d8 0x000000cc Code RO 1044 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000063a4 0x00000178 Code RO 1045 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x0000651c 0x000000e0 Code RO 1063 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x000065fc 0x000000e0 Code RO 1064 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x000066dc 0x00000110 Code RO 1065 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x000067ec 0x00000078 Code RO 1066 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006864 0x00000110 Code RO 1067 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006974 0x00000078 Code RO 1068 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x000069ec 0x00000084 Code RO 1069 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006a70 0x00000054 Code RO 1085 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00006ac4 0x00000020 Code RO 1086 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00006ae4 0x00000098 Code RO 1087 .text.Data_Resend Obj/USRCTRL_display_logic.o + 0x00006b7c 0x000000c0 Code RO 1088 .text.Switch_Report_Task Obj/USRCTRL_display_logic.o + 0x00006c3c 0x000003e4 Code RO 1089 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00007020 0x0000003c Code RO 1106 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x0000705c 0x00000098 Code RO 1107 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x000070f4 0x0000007c Code RO 1108 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00007170 0x00000028 Code RO 1125 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x00007198 0x00000018 Code RO 1126 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x000071b0 0x0000001c Code RO 1127 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x000071cc 0x0000001c Code RO 1128 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x000071e8 0x0000001c Code RO 1129 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00007204 0x0000001c Code RO 1130 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007220 0x00000010 Code RO 1131 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x00007230 0x000000c8 Code RO 1132 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x000072f8 0x00000098 Code RO 1133 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x00007390 0x0000004c Code RO 1149 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000073dc 0x0000003c Code RO 1150 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00007418 0x00000016 Code RO 1151 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00007430 0x000000f0 Code RO 1152 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00007520 0x00000050 Code RO 1153 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x00007570 0x0000005c Code RO 1154 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x000075cc 0x000001bc Code RO 1156 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x00007788 0x000000cc Code RO 1157 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x00007854 0x00000010 Code RO 1183 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_c_1_17.o + 0x00007864 0x00000028 Code RO 1185 .text.tk_clk_config FWlib_apt32f102_tkey_c_1_17.o + 0x0000788c 0x000000bc Code RO 1186 .text.TK_con0_config FWlib_apt32f102_tkey_c_1_17.o + 0x00007948 0x00000134 Code RO 1189 .text.TK_IO_Enable FWlib_apt32f102_tkey_c_1_17.o + 0x00007a7c 0x00000058 Code RO 1190 .text.TK_Sampling_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007ad4 0x00000088 Code RO 1194 .text.TKEYIntHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00007b5c 0x00000028 Code RO 1195 .text.get_key_number FWlib_apt32f102_tkey_c_1_17.o + 0x00007b84 0x00000084 Code RO 1196 .text.TK_Baseline_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007c08 0x00000020 Code RO 1197 .text.TK_Scan_Start FWlib_apt32f102_tkey_c_1_17.o + 0x00007c28 0x00000180 Code RO 1198 .text.TK_Keymap_prog FWlib_apt32f102_tkey_c_1_17.o + 0x00007da8 0x0000011c Code RO 1199 .text.TK_overflow_predict FWlib_apt32f102_tkey_c_1_17.o + 0x00007ec4 0x000001d0 Code RO 1200 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_c_1_17.o + 0x00008094 0x00000054 Code RO 1201 .text.TK_result_prog FWlib_apt32f102_tkey_c_1_17.o + 0x000080e8 0x00000078 Code RO 1202 .text.CORETHandler FWlib_apt32f102_tkey_c_1_17.o + 0x00008160 0x00000034 Code RO 1203 .text.get_key_seq FWlib_apt32f102_tkey_c_1_17.o + 0x00008194 0x00000038 Code RO 1204 .text.CORET_CONFIG FWlib_apt32f102_tkey_c_1_17.o + 0x000081cc 0x0000001c Code RO 1205 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_c_1_17.o + 0x000081e8 0x00000028 Code RO 1206 .text.tk_reserved_init FWlib_apt32f102_tkey_c_1_17.o + 0x00008210 0x00000180 Code RO 1207 .text.tk_init FWlib_apt32f102_tkey_c_1_17.o + 0x00008390 0x00000284 Code RO 1224 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00008614 0x00000035 Data RO 879 .rodata Obj/SYSTEM_touch_key.o + 0x00008649 0x00000001 PAD + 0x0000864a 0x00000334 Data RO 932 .rodata Obj/SYSTEM_adc.o + 0x0000897e 0x0000000a Data RO 1020 .rodata Obj/SYSTEM_ht1621.o + 0x00008988 0x00000030 Data RO 1247 .rodata pow.o + 0x000089b8 0x00000014 Data RO 1357 .rodata _thenan_df.o + 0x000089cc 0x00000100 Data RO 1405 .rodata _clz.o + 0x00008acc 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00008ada 0x00000092 Data RO 880 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x00008b6c 0x0000018d Data RO 909 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00008cf9 0x00000018 Data RO 933 .rodata.str1.1 Obj/SYSTEM_adc.o + 0x00008d11 0x00000011 Data RO 983 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x00008d22 0x00000071 Data RO 1046 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x00008d93 0x0000007e Data RO 1070 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x00008e11 0x00000045 Data RO 1090 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x00008e56 0x00000087 Data RO 1109 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x00008edd 0x0000002c Data RO 1158 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x00008f09 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000860, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000005 Data RW 860 .data Obj/SYSTEM_touch_key.o + 0x2000006d 0x00000003 PAD + 0x20000070 0x00000031 Data RW 1181 .data FWlib_apt32f102_tkey_c_1_17.o + 0x200000a1 0x00000003 PAD + 0x200000a4 0x00000004 Data RW 1417 .data rand.o + 0x200000a8 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x20000134 0x00000004 Zero RW 925 .bss Obj/SYSTEM_adc.o + 0x20000138 0x000000f0 Zero RW 968 .bss Obj/SYSTEM_tm1812.o + 0x20000228 0x00000004 Zero RW 1037 .bss Obj/USRCTRL_tempctrl_unit.o + 0x2000022c 0x00000001 Zero RW 1084 .bss Obj/USRCTRL_display_logic.o + 0x2000022d 0x00000003 PAD + 0x20000230 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002b6 0x00000002 PAD + 0x200002b8 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002e8 0x00000168 Zero RW 858 COMMON Obj/SYSTEM_uart.o + 0x20000450 0x00000050 Zero RW 893 COMMON Obj/SYSTEM_touch_key.o + 0x200004a0 0x00000008 Zero RW 922 COMMON Obj/SYSTEM_eeprom.o + 0x200004a8 0x00000050 Zero RW 946 COMMON Obj/SYSTEM_adc.o + 0x200004f8 0x00000028 Zero RW 965 COMMON Obj/SYSTEM_switch_fun.o + 0x20000520 0x00000040 Zero RW 1034 COMMON Obj/SYSTEM_ht1621.o + 0x20000560 0x00000029 Zero RW 1059 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x20000589 0x0000000e Zero RW 1121 COMMON Obj/USRCTRL_debug_unit.o + 0x20000597 0x00000001 PAD + 0x20000598 0x000002c8 Zero RW 1220 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 268 Obj/arch_crt0.o + 56 0 0 0 802 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 852 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 816 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9321 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 80 14 0 8 13234 Obj/main.o + 480 0 0 0 16220 Obj/mcu_initial.o + 2466 0 0 60 15685 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 734 0 0 480 14050 Obj/SYSTEM_uart.o + 1982 199 5 80 16719 Obj/SYSTEM_touch_key.o + 1106 397 0 8 14588 Obj/SYSTEM_eeprom.o + 672 844 0 84 13700 Obj/SYSTEM_adc.o + 2044 0 0 40 14025 Obj/SYSTEM_switch_fun.o + 948 17 0 240 15019 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17342 Obj/SYSTEM_ht1621.o + 1264 113 0 45 12771 Obj/USRCTRL_tempctrl_unit.o + 1364 126 0 0 12325 Obj/USRCTRL_key_logic.o + 1456 69 0 1 12367 Obj/USRCTRL_display_logic.o + 336 135 0 14 11782 Obj/USRCTRL_debug_unit.o + 544 0 0 0 13219 Obj/USRCTRL_myrelay.o + 1218 44 0 0 14089 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 24374 1968 109 1258 414561 Object Totals + 6 4 6 6 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 + + 2876 0 49 712 16333 FWlib_apt32f102_tkey_c_1_17.o + ------------------------------------------------------------ + 2876 0 49 712 16333 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + + 44 0 4 0 0 rand.o + 136 0 0 0 0 memset_fast.o + 100 0 0 0 0 memcpy_fast.o + ------------------------------------------------------------ + 280 0 4 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 + 34294 2296 168 1976 439569 Grand Totals + 34294 2296 168 1976 439569 Elf Image Totals + 34294 2296 168 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 36590 ( 35.73kB) +Total RW Size (RW Data + ZI Data) 2144 ( 2.09kB) +Total ROM Size (Code + RO Data + RW Data) 36758 ( 35.90kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V02_20250321.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V02_20250321.asm new file mode 100644 index 0000000..4299364 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V02_20250321.asm @@ -0,0 +1,26277 @@ + +.//Obj/T1_TC_34650_V02_20250321.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 000038be .long 0x000038be + 8: 000038ae .long 0x000038ae + c: 00000184 .long 0x00000184 + 10: 000038b6 .long 0x000038b6 + 14: 00003874 .long 0x00003874 + 18: 00000184 .long 0x00000184 + 1c: 000038a6 .long 0x000038a6 + 20: 0000389e .long 0x0000389e + 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: 00003896 .long 0x00003896 + 44: 0000388e .long 0x0000388e + 48: 00003886 .long 0x00003886 + 4c: 0000387e .long 0x0000387e + 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: 00003876 .long 0x00003876 + 80: 000097dc .long 0x000097dc + 84: 00002f18 .long 0x00002f18 + 88: 00003008 .long 0x00003008 + 8c: 00003070 .long 0x00003070 + 90: 000030d8 .long 0x000030d8 + 94: 00000184 .long 0x00000184 + 98: 00003284 .long 0x00003284 + 9c: 000035f0 .long 0x000035f0 + a0: 00003620 .long 0x00003620 + a4: 000032b8 .long 0x000032b8 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 00003338 .long 0x00003338 + b4: 000033a8 .long 0x000033a8 + b8: 000033e4 .long 0x000033e4 + bc: 00003420 .long 0x00003420 + c0: 00000184 .long 0x00000184 + c4: 000038ce .long 0x000038ce + c8: 00000184 .long 0x00000184 + cc: 000034b4 .long 0x000034b4 + d0: 0000359c .long 0x0000359c + d4: 00003650 .long 0x00003650 + d8: 00003698 .long 0x00003698 + dc: 00003704 .long 0x00003704 + e0: 000038c6 .long 0x000038c6 + e4: 0000973c .long 0x0000973c + e8: 00003784 .long 0x00003784 + ec: 00000184 .long 0x00000184 + f0: 000037b8 .long 0x000037b8 + f4: 00003804 .long 0x00003804 + 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, 0x1a88 // 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, 0x2c8c // 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: 00001a88 .long 0x00001a88 + 198: 00000160 .long 0x00000160 + 19c: 00002c8c .long 0x00002c8c + 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: e000072f bsr 0x1054 // 1054 <__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: e0000715 bsr 0x1084 // 1084 <__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: e000082a bsr 0x12f0 // 12f0 <__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: e00006ec bsr 0x10bc // 10bc <__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: e00007e0 bsr 0x12f0 // 12f0 <__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: e000069b bsr 0x1084 // 1084 <__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: e0000666 bsr 0x1084 // 1084 <__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: e000067c bsr 0x10bc // 10bc <__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: e0000674 bsr 0x10bc // 10bc <__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: e000066c bsr 0x10bc // 10bc <__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: e000064a bsr 0x1084 // 1084 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000662 bsr 0x10bc // 10bc <__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: e0000640 bsr 0x1084 // 1084 <__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: e0000654 bsr 0x10bc // 10bc <__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: e000064e bsr 0x10bc // 10bc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e000064a bsr 0x10bc // 10bc <__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: e0000628 bsr 0x1084 // 1084 <__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: e0000608 bsr 0x1054 // 1054 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000061a bsr 0x1084 // 1084 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000614 bsr 0x1084 // 1084 <__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: e0000603 bsr 0x1084 // 1084 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000061b bsr 0x10bc // 10bc <__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: e0000613 bsr 0x10bc // 10bc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e00005d9 bsr 0x1054 // 1054 <__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: e0000605 bsr 0x10bc // 10bc <__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: e00005c7 bsr 0x1054 // 1054 <__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: e00005e7 bsr 0x10bc // 10bc <__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: e00005dc bsr 0x10bc // 10bc <__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, 0xa040 // 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: e000059a bsr 0x1084 // 1084 <__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: e000057a bsr 0x1054 // 1054 <__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: e00006c2 bsr 0x12f0 // 12f0 <__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: 0000a040 .long 0x0000a040 + 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: e000056a bsr 0x10bc // 10bc <__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: e000055b bsr 0x10bc // 10bc <__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: e0000539 bsr 0x1084 // 1084 <__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: e0000531 bsr 0x1084 // 1084 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000052b bsr 0x1084 // 1084 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e0000543 bsr 0x10bc // 10bc <__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: e0000521 bsr 0x1084 // 1084 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e0000539 bsr 0x10bc // 10bc <__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: e0000531 bsr 0x10bc // 10bc <__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: e0000529 bsr 0x10bc // 10bc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e00004ef bsr 0x1054 // 1054 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e000051f bsr 0x10bc // 10bc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e00004e5 bsr 0x1054 // 1054 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000515 bsr 0x10bc // 10bc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e00004db bsr 0x1054 // 1054 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e000050b bsr 0x10bc // 10bc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e00004d1 bsr 0x1054 // 1054 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e0000501 bsr 0x10bc // 10bc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e00004c7 bsr 0x1054 // 1054 <__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: e00004f3 bsr 0x10bc // 10bc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e00004ed bsr 0x10bc // 10bc <__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: e00004b1 bsr 0x1054 // 1054 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e00004e1 bsr 0x10bc // 10bc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e00004a9 bsr 0x1054 // 1054 <__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: e00004d5 bsr 0x10bc // 10bc <__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: e000049b bsr 0x1054 // 1054 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000497 bsr 0x1054 // 1054 <__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: e00004c4 bsr 0x10bc // 10bc <__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: e00004a0 bsr 0x1084 // 1084 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000049c bsr 0x1084 // 1084 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000496 bsr 0x1084 // 1084 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e00004ae bsr 0x10bc // 10bc <__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: e00004a6 bsr 0x10bc // 10bc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000046c bsr 0x1054 // 1054 <__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: e0000464 bsr 0x1054 // 1054 <__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: e0000491 bsr 0x10bc // 10bc <__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: e000046d bsr 0x1084 // 1084 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000467 bsr 0x1084 // 1084 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000047f bsr 0x10bc // 10bc <__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: e0000477 bsr 0x10bc // 10bc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000043d bsr 0x1054 // 1054 <__adddf3> + 7de: 01db lrw r6, 0xa040 // 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: e0000436 bsr 0x1054 // 1054 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000683 bsr 0x14f8 // 14f8 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0xa040 // 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: e0000423 bsr 0x1054 // 1054 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e000041f bsr 0x1054 // 1054 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000041b bsr 0x1054 // 1054 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000042d bsr 0x1084 // 1084 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e0000429 bsr 0x1084 // 1084 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000425 bsr 0x1084 // 1084 <__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: e00003fc bsr 0x1054 // 1054 <__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: e000040c bsr 0x1084 // 1084 <__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: e00005e6 bsr 0x1444 // 1444 <__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: e00003dc bsr 0x1084 // 1084 <__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: e00003bc bsr 0x1054 // 1054 <__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: e00003ea bsr 0x10bc // 10bc <__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: e00003c6 bsr 0x1084 // 1084 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e00003c0 bsr 0x1084 // 1084 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e00003d8 bsr 0x10bc // 10bc <__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: e00003d0 bsr 0x10bc // 10bc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000396 bsr 0x1054 // 1054 <__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: e000038e bsr 0x1054 // 1054 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e00003a0 bsr 0x1084 // 1084 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000039a bsr 0x1084 // 1084 <__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: e00003ae bsr 0x10bc // 10bc <__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: e00003a8 bsr 0x10bc // 10bc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000388 bsr 0x1084 // 1084 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e00003a0 bsr 0x10bc // 10bc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000368 bsr 0x1054 // 1054 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000398 bsr 0x10bc // 10bc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000378 bsr 0x1084 // 1084 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000390 bsr 0x10bc // 10bc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e0000358 bsr 0x1054 // 1054 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000388 bsr 0x10bc // 10bc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000366 bsr 0x1084 // 1084 <__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: e000037a bsr 0x10bc // 10bc <__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: e0000355 bsr 0x1084 // 1084 <__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: e0000485 bsr 0x12f0 // 12f0 <__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: e0000363 bsr 0x10bc // 10bc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000032b bsr 0x1054 // 1054 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000033d bsr 0x1084 // 1084 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e0000339 bsr 0x1084 // 1084 <__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: e0000333 bsr 0x1084 // 1084 <__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: e0000331 bsr 0x10bc // 10bc <__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: e000030b bsr 0x1084 // 1084 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000521 bsr 0x14bc // 14bc <__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: 0000a040 .long 0x0000a040 + 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: e000028f bsr 0x10bc // 10bc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e0000255 bsr 0x1054 // 1054 <__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: e0000258 bsr 0x1084 // 1084 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000038a bsr 0x12f0 // 12f0 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000397 bsr 0x1480 // 1480 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e0000405 bsr 0x1568 // 1568 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000018c bsr 0x1084 // 1084 <__subdf3> + d70: e00003fc bsr 0x1568 // 1568 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <_fpadd_parts>: + d80: 14c4 push r4-r7 + d82: 142a subi r14, r14, 40 + d84: 9060 ld.w r3, (r0, 0x0) + d86: 3b01 cmphsi r3, 2 + d88: 6dcb mov r7, r2 + d8a: 0c67 bf 0xe58 // e58 <_fpadd_parts+0xd8> + d8c: 9140 ld.w r2, (r1, 0x0) + d8e: 3a01 cmphsi r2, 2 + d90: 0c66 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d92: 3b44 cmpnei r3, 4 + d94: 0cde bf 0xf50 // f50 <_fpadd_parts+0x1d0> + d96: 3a44 cmpnei r2, 4 + d98: 0c62 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d9a: 3a42 cmpnei r2, 2 + d9c: 0cb7 bf 0xf0a // f0a <_fpadd_parts+0x18a> + d9e: 3b42 cmpnei r3, 2 + da0: 0c5e bf 0xe5c // e5c <_fpadd_parts+0xdc> + da2: 9043 ld.w r2, (r0, 0xc) + da4: 9064 ld.w r3, (r0, 0x10) + da6: 9082 ld.w r4, (r0, 0x8) + da8: 91a2 ld.w r5, (r1, 0x8) + daa: b842 st.w r2, (r14, 0x8) + dac: b863 st.w r3, (r14, 0xc) + dae: 9143 ld.w r2, (r1, 0xc) + db0: 9164 ld.w r3, (r1, 0x10) + db2: b840 st.w r2, (r14, 0x0) + db4: b861 st.w r3, (r14, 0x4) + db6: 5c75 subu r3, r4, r5 + db8: 3bdf btsti r3, 31 + dba: 6c8f mov r2, r3 + dbc: 08d2 bt 0xf60 // f60 <_fpadd_parts+0x1e0> + dbe: 363f movi r6, 63 + dc0: 6499 cmplt r6, r2 + dc2: 0c50 bf 0xe62 // e62 <_fpadd_parts+0xe2> + dc4: 6515 cmplt r5, r4 + dc6: 0cbf bf 0xf44 // f44 <_fpadd_parts+0x1c4> + dc8: 3200 movi r2, 0 + dca: 3300 movi r3, 0 + dcc: b840 st.w r2, (r14, 0x0) + dce: b861 st.w r3, (r14, 0x4) + dd0: 9061 ld.w r3, (r0, 0x4) + dd2: 9141 ld.w r2, (r1, 0x4) + dd4: 648e cmpne r3, r2 + dd6: 0c78 bf 0xec6 // ec6 <_fpadd_parts+0x146> + dd8: 3b40 cmpnei r3, 0 + dda: 0cad bf 0xf34 // f34 <_fpadd_parts+0x1b4> + ddc: 9800 ld.w r0, (r14, 0x0) + dde: 9821 ld.w r1, (r14, 0x4) + de0: 9842 ld.w r2, (r14, 0x8) + de2: 9863 ld.w r3, (r14, 0xc) + de4: 6400 cmphs r0, r0 + de6: 600b subc r0, r2 + de8: 604f subc r1, r3 + dea: 39df btsti r1, 31 + dec: 08bd bt 0xf66 // f66 <_fpadd_parts+0x1e6> + dee: 3300 movi r3, 0 + df0: b761 st.w r3, (r7, 0x4) + df2: b782 st.w r4, (r7, 0x8) + df4: 6c83 mov r2, r0 + df6: 6cc7 mov r3, r1 + df8: b703 st.w r0, (r7, 0xc) + dfa: b724 st.w r1, (r7, 0x10) + dfc: 3000 movi r0, 0 + dfe: 3100 movi r1, 0 + e00: 2800 subi r0, 1 + e02: 2900 subi r1, 1 + e04: 6401 cmplt r0, r0 + e06: 6009 addc r0, r2 + e08: 604d addc r1, r3 + e0a: 038f lrw r4, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e0c: 6450 cmphs r4, r1 + e0e: 0c67 bf 0xedc // edc <_fpadd_parts+0x15c> + e10: 6506 cmpne r1, r4 + e12: 0cfd bf 0x100c // 100c <_fpadd_parts+0x28c> + e14: 3000 movi r0, 0 + e16: 9722 ld.w r1, (r7, 0x8) + e18: 2801 subi r0, 2 + e1a: 2900 subi r1, 1 + e1c: 03d4 lrw r6, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e1e: b802 st.w r0, (r14, 0x8) + e20: b8e0 st.w r7, (r14, 0x0) + e22: 0403 br 0xe28 // e28 <_fpadd_parts+0xa8> + e24: 6596 cmpne r5, r6 + e26: 0c83 bf 0xf2c // f2c <_fpadd_parts+0x1ac> + e28: 4301 lsli r0, r3, 1 + e2a: 4a9f lsri r4, r2, 31 + e2c: 6d00 or r4, r0 + e2e: 42a1 lsli r5, r2, 1 + e30: 6c97 mov r2, r5 + e32: 6cd3 mov r3, r4 + e34: 3500 movi r5, 0 + e36: 3400 movi r4, 0 + e38: 2c00 subi r4, 1 + e3a: 2d00 subi r5, 1 + e3c: 6511 cmplt r4, r4 + e3e: 6109 addc r4, r2 + e40: 614d addc r5, r3 + e42: 6558 cmphs r6, r5 + e44: 6c07 mov r0, r1 + e46: 2900 subi r1, 1 + e48: 0bee bt 0xe24 // e24 <_fpadd_parts+0xa4> + e4a: 98e0 ld.w r7, (r14, 0x0) + e4c: b743 st.w r2, (r7, 0xc) + e4e: b764 st.w r3, (r7, 0x10) + e50: 3303 movi r3, 3 + e52: b702 st.w r0, (r7, 0x8) + e54: b760 st.w r3, (r7, 0x0) + e56: 6c1f mov r0, r7 + e58: 140a addi r14, r14, 40 + e5a: 1484 pop r4-r7 + e5c: 6c07 mov r0, r1 + e5e: 140a addi r14, r14, 40 + e60: 1484 pop r4-r7 + e62: 3b20 cmplti r3, 1 + e64: 088c bt 0xf7c // f7c <_fpadd_parts+0x1fc> + e66: 3300 movi r3, 0 + e68: 2b1f subi r3, 32 + e6a: 60c8 addu r3, r2 + e6c: 3bdf btsti r3, 31 + e6e: b866 st.w r3, (r14, 0x18) + e70: 08bb bt 0xfe6 // fe6 <_fpadd_parts+0x266> + e72: 98a1 ld.w r5, (r14, 0x4) + e74: 714d lsr r5, r3 + e76: b8a4 st.w r5, (r14, 0x10) + e78: 3500 movi r5, 0 + e7a: b8a5 st.w r5, (r14, 0x14) + e7c: 9866 ld.w r3, (r14, 0x18) + e7e: 3bdf btsti r3, 31 + e80: 3500 movi r5, 0 + e82: 3600 movi r6, 0 + e84: 08ad bt 0xfde // fde <_fpadd_parts+0x25e> + e86: 3201 movi r2, 1 + e88: 708c lsl r2, r3 + e8a: 6d8b mov r6, r2 + e8c: 3200 movi r2, 0 + e8e: 3300 movi r3, 0 + e90: 2a00 subi r2, 1 + e92: 2b00 subi r3, 1 + e94: 6489 cmplt r2, r2 + e96: 6095 addc r2, r5 + e98: 60d9 addc r3, r6 + e9a: 98a0 ld.w r5, (r14, 0x0) + e9c: 98c1 ld.w r6, (r14, 0x4) + e9e: 6948 and r5, r2 + ea0: 698c and r6, r3 + ea2: 6c97 mov r2, r5 + ea4: 6cdb mov r3, r6 + ea6: 6c8c or r2, r3 + ea8: 3a40 cmpnei r2, 0 + eaa: 3500 movi r5, 0 + eac: 6155 addc r5, r5 + eae: 6c97 mov r2, r5 + eb0: 3300 movi r3, 0 + eb2: 98a4 ld.w r5, (r14, 0x10) + eb4: 98c5 ld.w r6, (r14, 0x14) + eb6: 6d48 or r5, r2 + eb8: 6d8c or r6, r3 + eba: 9061 ld.w r3, (r0, 0x4) + ebc: 9141 ld.w r2, (r1, 0x4) + ebe: 648e cmpne r3, r2 + ec0: b8a0 st.w r5, (r14, 0x0) + ec2: b8c1 st.w r6, (r14, 0x4) + ec4: 0b8a bt 0xdd8 // dd8 <_fpadd_parts+0x58> + ec6: b761 st.w r3, (r7, 0x4) + ec8: 9800 ld.w r0, (r14, 0x0) + eca: 9821 ld.w r1, (r14, 0x4) + ecc: 9842 ld.w r2, (r14, 0x8) + ece: 9863 ld.w r3, (r14, 0xc) + ed0: 6489 cmplt r2, r2 + ed2: 6081 addc r2, r0 + ed4: 60c5 addc r3, r1 + ed6: b782 st.w r4, (r7, 0x8) + ed8: b743 st.w r2, (r7, 0xc) + eda: b764 st.w r3, (r7, 0x10) + edc: 3103 movi r1, 3 + ede: b720 st.w r1, (r7, 0x0) + ee0: 123b lrw r1, 0x1fffffff // 104c <_fpadd_parts+0x2cc> + ee2: 64c4 cmphs r1, r3 + ee4: 0810 bt 0xf04 // f04 <_fpadd_parts+0x184> + ee6: 439f lsli r4, r3, 31 + ee8: 4a01 lsri r0, r2, 1 + eea: 6c10 or r0, r4 + eec: 3500 movi r5, 0 + eee: 3401 movi r4, 1 + ef0: 4b21 lsri r1, r3, 1 + ef2: 6890 and r2, r4 + ef4: 68d4 and r3, r5 + ef6: 6c80 or r2, r0 + ef8: 6cc4 or r3, r1 + efa: b743 st.w r2, (r7, 0xc) + efc: b764 st.w r3, (r7, 0x10) + efe: 9762 ld.w r3, (r7, 0x8) + f00: 2300 addi r3, 1 + f02: b762 st.w r3, (r7, 0x8) + f04: 6c1f mov r0, r7 + f06: 140a addi r14, r14, 40 + f08: 1484 pop r4-r7 + f0a: 3b42 cmpnei r3, 2 + f0c: 0ba6 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f0e: b760 st.w r3, (r7, 0x0) + f10: 9061 ld.w r3, (r0, 0x4) + f12: b761 st.w r3, (r7, 0x4) + f14: 9062 ld.w r3, (r0, 0x8) + f16: b762 st.w r3, (r7, 0x8) + f18: 9063 ld.w r3, (r0, 0xc) + f1a: b763 st.w r3, (r7, 0xc) + f1c: 9064 ld.w r3, (r0, 0x10) + f1e: 9141 ld.w r2, (r1, 0x4) + f20: b764 st.w r3, (r7, 0x10) + f22: 9061 ld.w r3, (r0, 0x4) + f24: 68c8 and r3, r2 + f26: b761 st.w r3, (r7, 0x4) + f28: 6c1f mov r0, r7 + f2a: 0797 br 0xe58 // e58 <_fpadd_parts+0xd8> + f2c: 98e2 ld.w r7, (r14, 0x8) + f2e: 651c cmphs r7, r4 + f30: 0b7c bt 0xe28 // e28 <_fpadd_parts+0xa8> + f32: 078c br 0xe4a // e4a <_fpadd_parts+0xca> + f34: 9802 ld.w r0, (r14, 0x8) + f36: 9823 ld.w r1, (r14, 0xc) + f38: 9840 ld.w r2, (r14, 0x0) + f3a: 9861 ld.w r3, (r14, 0x4) + f3c: 6400 cmphs r0, r0 + f3e: 600b subc r0, r2 + f40: 604f subc r1, r3 + f42: 0754 br 0xdea // dea <_fpadd_parts+0x6a> + f44: 3200 movi r2, 0 + f46: 3300 movi r3, 0 + f48: 6d17 mov r4, r5 + f4a: b842 st.w r2, (r14, 0x8) + f4c: b863 st.w r3, (r14, 0xc) + f4e: 0741 br 0xdd0 // dd0 <_fpadd_parts+0x50> + f50: 3a44 cmpnei r2, 4 + f52: 0b83 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f54: 9041 ld.w r2, (r0, 0x4) + f56: 9161 ld.w r3, (r1, 0x4) + f58: 64ca cmpne r2, r3 + f5a: 0f7f bf 0xe58 // e58 <_fpadd_parts+0xd8> + f5c: 111d lrw r0, 0xa070 // 1050 <_fpadd_parts+0x2d0> + f5e: 077d br 0xe58 // e58 <_fpadd_parts+0xd8> + f60: 3200 movi r2, 0 + f62: 608e subu r2, r3 + f64: 072d br 0xdbe // dbe <_fpadd_parts+0x3e> + f66: 3301 movi r3, 1 + f68: b761 st.w r3, (r7, 0x4) + f6a: 3200 movi r2, 0 + f6c: 3300 movi r3, 0 + f6e: 6488 cmphs r2, r2 + f70: 6083 subc r2, r0 + f72: 60c7 subc r3, r1 + f74: b782 st.w r4, (r7, 0x8) + f76: b743 st.w r2, (r7, 0xc) + f78: b764 st.w r3, (r7, 0x10) + f7a: 0741 br 0xdfc // dfc <_fpadd_parts+0x7c> + f7c: 3b40 cmpnei r3, 0 + f7e: 0f29 bf 0xdd0 // dd0 <_fpadd_parts+0x50> + f80: 3300 movi r3, 0 + f82: 2b1f subi r3, 32 + f84: 60c8 addu r3, r2 + f86: 3bdf btsti r3, 31 + f88: 6108 addu r4, r2 + f8a: b866 st.w r3, (r14, 0x18) + f8c: 0849 bt 0x101e // 101e <_fpadd_parts+0x29e> + f8e: 9863 ld.w r3, (r14, 0xc) + f90: 98a6 ld.w r5, (r14, 0x18) + f92: 70d5 lsr r3, r5 + f94: b864 st.w r3, (r14, 0x10) + f96: 3300 movi r3, 0 + f98: b865 st.w r3, (r14, 0x14) + f9a: 9866 ld.w r3, (r14, 0x18) + f9c: 3bdf btsti r3, 31 + f9e: 3500 movi r5, 0 + fa0: 3600 movi r6, 0 + fa2: 083a bt 0x1016 // 1016 <_fpadd_parts+0x296> + fa4: 3201 movi r2, 1 + fa6: 708c lsl r2, r3 + fa8: 6d8b mov r6, r2 + faa: 3200 movi r2, 0 + fac: 3300 movi r3, 0 + fae: 2a00 subi r2, 1 + fb0: 2b00 subi r3, 1 + fb2: 6489 cmplt r2, r2 + fb4: 6095 addc r2, r5 + fb6: 60d9 addc r3, r6 + fb8: 98a2 ld.w r5, (r14, 0x8) + fba: 98c3 ld.w r6, (r14, 0xc) + fbc: 6948 and r5, r2 + fbe: 698c and r6, r3 + fc0: 6c97 mov r2, r5 + fc2: 6cdb mov r3, r6 + fc4: 6c8c or r2, r3 + fc6: 3a40 cmpnei r2, 0 + fc8: 3500 movi r5, 0 + fca: 6155 addc r5, r5 + fcc: 6c97 mov r2, r5 + fce: 3300 movi r3, 0 + fd0: 98a4 ld.w r5, (r14, 0x10) + fd2: 98c5 ld.w r6, (r14, 0x14) + fd4: 6d48 or r5, r2 + fd6: 6d8c or r6, r3 + fd8: b8a2 st.w r5, (r14, 0x8) + fda: b8c3 st.w r6, (r14, 0xc) + fdc: 06fa br 0xdd0 // dd0 <_fpadd_parts+0x50> + fde: 3301 movi r3, 1 + fe0: 70c8 lsl r3, r2 + fe2: 6d4f mov r5, r3 + fe4: 0754 br 0xe8c // e8c <_fpadd_parts+0x10c> + fe6: 9861 ld.w r3, (r14, 0x4) + fe8: 361f movi r6, 31 + fea: 43a1 lsli r5, r3, 1 + fec: 618a subu r6, r2 + fee: 7158 lsl r5, r6 + ff0: b8a9 st.w r5, (r14, 0x24) + ff2: 98a0 ld.w r5, (r14, 0x0) + ff4: 98c1 ld.w r6, (r14, 0x4) + ff6: b8a7 st.w r5, (r14, 0x1c) + ff8: b8c8 st.w r6, (r14, 0x20) + ffa: 9867 ld.w r3, (r14, 0x1c) + ffc: 70c9 lsr r3, r2 + ffe: 98a9 ld.w r5, (r14, 0x24) + 1000: 6cd4 or r3, r5 + 1002: b864 st.w r3, (r14, 0x10) + 1004: 9868 ld.w r3, (r14, 0x20) + 1006: 70c9 lsr r3, r2 + 1008: b865 st.w r3, (r14, 0x14) + 100a: 0739 br 0xe7c // e7c <_fpadd_parts+0xfc> + 100c: 3100 movi r1, 0 + 100e: 2901 subi r1, 2 + 1010: 6404 cmphs r1, r0 + 1012: 0b01 bt 0xe14 // e14 <_fpadd_parts+0x94> + 1014: 0764 br 0xedc // edc <_fpadd_parts+0x15c> + 1016: 3301 movi r3, 1 + 1018: 70c8 lsl r3, r2 + 101a: 6d4f mov r5, r3 + 101c: 07c7 br 0xfaa // faa <_fpadd_parts+0x22a> + 101e: 9863 ld.w r3, (r14, 0xc) + 1020: 43c1 lsli r6, r3, 1 + 1022: 351f movi r5, 31 + 1024: 5d69 subu r3, r5, r2 + 1026: 6d5b mov r5, r6 + 1028: 714c lsl r5, r3 + 102a: b8a9 st.w r5, (r14, 0x24) + 102c: 98a2 ld.w r5, (r14, 0x8) + 102e: 98c3 ld.w r6, (r14, 0xc) + 1030: b8a7 st.w r5, (r14, 0x1c) + 1032: b8c8 st.w r6, (r14, 0x20) + 1034: 9867 ld.w r3, (r14, 0x1c) + 1036: 70c9 lsr r3, r2 + 1038: 98a9 ld.w r5, (r14, 0x24) + 103a: 6cd4 or r3, r5 + 103c: b864 st.w r3, (r14, 0x10) + 103e: 9868 ld.w r3, (r14, 0x20) + 1040: 70c9 lsr r3, r2 + 1042: b865 st.w r3, (r14, 0x14) + 1044: 07ab br 0xf9a // f9a <_fpadd_parts+0x21a> + 1046: 0000 bkpt + 1048: 0fffffff .long 0x0fffffff + 104c: 1fffffff .long 0x1fffffff + 1050: 0000a070 .long 0x0000a070 + +00001054 <__adddf3>: + 1054: 14d0 push r15 + 1056: 1433 subi r14, r14, 76 + 1058: b800 st.w r0, (r14, 0x0) + 105a: b821 st.w r1, (r14, 0x4) + 105c: 6c3b mov r0, r14 + 105e: 1904 addi r1, r14, 16 + 1060: b863 st.w r3, (r14, 0xc) + 1062: b842 st.w r2, (r14, 0x8) + 1064: e00003f4 bsr 0x184c // 184c <__unpack_d> + 1068: 1909 addi r1, r14, 36 + 106a: 1802 addi r0, r14, 8 + 106c: e00003f0 bsr 0x184c // 184c <__unpack_d> + 1070: 1a0e addi r2, r14, 56 + 1072: 1909 addi r1, r14, 36 + 1074: 1804 addi r0, r14, 16 + 1076: e3fffe85 bsr 0xd80 // d80 <_fpadd_parts> + 107a: e000031b bsr 0x16b0 // 16b0 <__pack_d> + 107e: 1413 addi r14, r14, 76 + 1080: 1490 pop r15 + ... + +00001084 <__subdf3>: + 1084: 14d0 push r15 + 1086: 1433 subi r14, r14, 76 + 1088: b800 st.w r0, (r14, 0x0) + 108a: b821 st.w r1, (r14, 0x4) + 108c: 6c3b mov r0, r14 + 108e: 1904 addi r1, r14, 16 + 1090: b842 st.w r2, (r14, 0x8) + 1092: b863 st.w r3, (r14, 0xc) + 1094: e00003dc bsr 0x184c // 184c <__unpack_d> + 1098: 1909 addi r1, r14, 36 + 109a: 1802 addi r0, r14, 8 + 109c: e00003d8 bsr 0x184c // 184c <__unpack_d> + 10a0: 986a ld.w r3, (r14, 0x28) + 10a2: 3201 movi r2, 1 + 10a4: 6cc9 xor r3, r2 + 10a6: 1909 addi r1, r14, 36 + 10a8: 1a0e addi r2, r14, 56 + 10aa: 1804 addi r0, r14, 16 + 10ac: b86a st.w r3, (r14, 0x28) + 10ae: e3fffe69 bsr 0xd80 // d80 <_fpadd_parts> + 10b2: e00002ff bsr 0x16b0 // 16b0 <__pack_d> + 10b6: 1413 addi r14, r14, 76 + 10b8: 1490 pop r15 + ... + +000010bc <__muldf3>: + 10bc: 14d4 push r4-r7, r15 + 10be: 143b subi r14, r14, 108 + 10c0: b808 st.w r0, (r14, 0x20) + 10c2: b829 st.w r1, (r14, 0x24) + 10c4: 1808 addi r0, r14, 32 + 10c6: 190c addi r1, r14, 48 + 10c8: b86b st.w r3, (r14, 0x2c) + 10ca: b84a st.w r2, (r14, 0x28) + 10cc: e00003c0 bsr 0x184c // 184c <__unpack_d> + 10d0: 1911 addi r1, r14, 68 + 10d2: 180a addi r0, r14, 40 + 10d4: e00003bc bsr 0x184c // 184c <__unpack_d> + 10d8: 986c ld.w r3, (r14, 0x30) + 10da: 3b01 cmphsi r3, 2 + 10dc: 0cac bf 0x1234 // 1234 <__muldf3+0x178> + 10de: 9851 ld.w r2, (r14, 0x44) + 10e0: 3a01 cmphsi r2, 2 + 10e2: 0c9c bf 0x121a // 121a <__muldf3+0x15e> + 10e4: 3b44 cmpnei r3, 4 + 10e6: 0ca5 bf 0x1230 // 1230 <__muldf3+0x174> + 10e8: 3a44 cmpnei r2, 4 + 10ea: 0c96 bf 0x1216 // 1216 <__muldf3+0x15a> + 10ec: 3b42 cmpnei r3, 2 + 10ee: 0ca3 bf 0x1234 // 1234 <__muldf3+0x178> + 10f0: 3a42 cmpnei r2, 2 + 10f2: 0c94 bf 0x121a // 121a <__muldf3+0x15e> + 10f4: 98ef ld.w r7, (r14, 0x3c) + 10f6: 98b4 ld.w r5, (r14, 0x50) + 10f8: 9875 ld.w r3, (r14, 0x54) + 10fa: 6d8f mov r6, r3 + 10fc: 6c9f mov r2, r7 + 10fe: 3300 movi r3, 0 + 1100: 6c17 mov r0, r5 + 1102: 3100 movi r1, 0 + 1104: e0000294 bsr 0x162c // 162c <__muldi3> + 1108: b804 st.w r0, (r14, 0x10) + 110a: b825 st.w r1, (r14, 0x14) + 110c: 6c9f mov r2, r7 + 110e: 3300 movi r3, 0 + 1110: 6c1b mov r0, r6 + 1112: 3100 movi r1, 0 + 1114: 9890 ld.w r4, (r14, 0x40) + 1116: b8c2 st.w r6, (r14, 0x8) + 1118: e000028a bsr 0x162c // 162c <__muldi3> + 111c: 6d83 mov r6, r0 + 111e: 6dc7 mov r7, r1 + 1120: 9842 ld.w r2, (r14, 0x8) + 1122: 3300 movi r3, 0 + 1124: 6c13 mov r0, r4 + 1126: 3100 movi r1, 0 + 1128: e0000282 bsr 0x162c // 162c <__muldi3> + 112c: b806 st.w r0, (r14, 0x18) + 112e: b827 st.w r1, (r14, 0x1c) + 1130: 6c97 mov r2, r5 + 1132: 3300 movi r3, 0 + 1134: 6c13 mov r0, r4 + 1136: 3100 movi r1, 0 + 1138: e000027a bsr 0x162c // 162c <__muldi3> + 113c: 6401 cmplt r0, r0 + 113e: 6019 addc r0, r6 + 1140: 605d addc r1, r7 + 1142: 65c4 cmphs r1, r7 + 1144: 0c91 bf 0x1266 // 1266 <__muldf3+0x1aa> + 1146: 645e cmpne r7, r1 + 1148: 0c8d bf 0x1262 // 1262 <__muldf3+0x1a6> + 114a: 3300 movi r3, 0 + 114c: 3400 movi r4, 0 + 114e: b862 st.w r3, (r14, 0x8) + 1150: b883 st.w r4, (r14, 0xc) + 1152: 9884 ld.w r4, (r14, 0x10) + 1154: 98a5 ld.w r5, (r14, 0x14) + 1156: 3600 movi r6, 0 + 1158: 6dc3 mov r7, r0 + 115a: 6c93 mov r2, r4 + 115c: 6cd7 mov r3, r5 + 115e: 6489 cmplt r2, r2 + 1160: 6099 addc r2, r6 + 1162: 60dd addc r3, r7 + 1164: 6d8b mov r6, r2 + 1166: 6dcf mov r7, r3 + 1168: 6c93 mov r2, r4 + 116a: 6cd7 mov r3, r5 + 116c: 64dc cmphs r7, r3 + 116e: 0c70 bf 0x124e // 124e <__muldf3+0x192> + 1170: 65ce cmpne r3, r7 + 1172: 0c6c bf 0x124a // 124a <__muldf3+0x18e> + 1174: 6c87 mov r2, r1 + 1176: 3300 movi r3, 0 + 1178: 9806 ld.w r0, (r14, 0x18) + 117a: 9827 ld.w r1, (r14, 0x1c) + 117c: 6401 cmplt r0, r0 + 117e: 6009 addc r0, r2 + 1180: 604d addc r1, r3 + 1182: 6c83 mov r2, r0 + 1184: 6cc7 mov r3, r1 + 1186: 9802 ld.w r0, (r14, 0x8) + 1188: 9823 ld.w r1, (r14, 0xc) + 118a: 6401 cmplt r0, r0 + 118c: 6009 addc r0, r2 + 118e: 604d addc r1, r3 + 1190: 6c83 mov r2, r0 + 1192: 6cc7 mov r3, r1 + 1194: 988e ld.w r4, (r14, 0x38) + 1196: 9833 ld.w r1, (r14, 0x4c) + 1198: 6104 addu r4, r1 + 119a: 5c2e addi r1, r4, 4 + 119c: b838 st.w r1, (r14, 0x60) + 119e: 980d ld.w r0, (r14, 0x34) + 11a0: 9832 ld.w r1, (r14, 0x48) + 11a2: 6442 cmpne r0, r1 + 11a4: 12b0 lrw r5, 0x1fffffff // 12e4 <__muldf3+0x228> + 11a6: 3100 movi r1, 0 + 11a8: 6045 addc r1, r1 + 11aa: 64d4 cmphs r5, r3 + 11ac: b837 st.w r1, (r14, 0x5c) + 11ae: 0879 bt 0x12a0 // 12a0 <__muldf3+0x1e4> + 11b0: 2404 addi r4, 5 + 11b2: b8a4 st.w r5, (r14, 0x10) + 11b4: 3001 movi r0, 1 + 11b6: 3100 movi r1, 0 + 11b8: 6808 and r0, r2 + 11ba: 684c and r1, r3 + 11bc: 6c04 or r0, r1 + 11be: 3840 cmpnei r0, 0 + 11c0: b882 st.w r4, (r14, 0x8) + 11c2: 0c0e bf 0x11de // 11de <__muldf3+0x122> + 11c4: 473f lsli r1, r7, 31 + 11c6: 4e01 lsri r0, r6, 1 + 11c8: 6c04 or r0, r1 + 11ca: 4f21 lsri r1, r7, 1 + 11cc: b800 st.w r0, (r14, 0x0) + 11ce: b821 st.w r1, (r14, 0x4) + 11d0: 3180 movi r1, 128 + 11d2: 98c0 ld.w r6, (r14, 0x0) + 11d4: 98e1 ld.w r7, (r14, 0x4) + 11d6: 3000 movi r0, 0 + 11d8: 4138 lsli r1, r1, 24 + 11da: 6d80 or r6, r0 + 11dc: 6dc4 or r7, r1 + 11de: 4b21 lsri r1, r3, 1 + 11e0: 43bf lsli r5, r3, 31 + 11e2: 4a01 lsri r0, r2, 1 + 11e4: 6cc7 mov r3, r1 + 11e6: 9824 ld.w r1, (r14, 0x10) + 11e8: 6d40 or r5, r0 + 11ea: 64c4 cmphs r1, r3 + 11ec: 6c97 mov r2, r5 + 11ee: 2400 addi r4, 1 + 11f0: 0fe2 bf 0x11b4 // 11b4 <__muldf3+0xf8> + 11f2: 9822 ld.w r1, (r14, 0x8) + 11f4: b838 st.w r1, (r14, 0x60) + 11f6: 30ff movi r0, 255 + 11f8: 3100 movi r1, 0 + 11fa: 6808 and r0, r2 + 11fc: 684c and r1, r3 + 11fe: 3480 movi r4, 128 + 1200: 6502 cmpne r0, r4 + 1202: 0c37 bf 0x1270 // 1270 <__muldf3+0x1b4> + 1204: b859 st.w r2, (r14, 0x64) + 1206: b87a st.w r3, (r14, 0x68) + 1208: 3303 movi r3, 3 + 120a: b876 st.w r3, (r14, 0x58) + 120c: 1816 addi r0, r14, 88 + 120e: e0000251 bsr 0x16b0 // 16b0 <__pack_d> + 1212: 141b addi r14, r14, 108 + 1214: 1494 pop r4-r7, r15 + 1216: 3b42 cmpnei r3, 2 + 1218: 0c42 bf 0x129c // 129c <__muldf3+0x1e0> + 121a: 9872 ld.w r3, (r14, 0x48) + 121c: 984d ld.w r2, (r14, 0x34) + 121e: 64ca cmpne r2, r3 + 1220: 3300 movi r3, 0 + 1222: 60cd addc r3, r3 + 1224: 1811 addi r0, r14, 68 + 1226: b872 st.w r3, (r14, 0x48) + 1228: e0000244 bsr 0x16b0 // 16b0 <__pack_d> + 122c: 141b addi r14, r14, 108 + 122e: 1494 pop r4-r7, r15 + 1230: 3a42 cmpnei r2, 2 + 1232: 0c35 bf 0x129c // 129c <__muldf3+0x1e0> + 1234: 984d ld.w r2, (r14, 0x34) + 1236: 9872 ld.w r3, (r14, 0x48) + 1238: 64ca cmpne r2, r3 + 123a: 3300 movi r3, 0 + 123c: 60cd addc r3, r3 + 123e: 180c addi r0, r14, 48 + 1240: b86d st.w r3, (r14, 0x34) + 1242: e0000237 bsr 0x16b0 // 16b0 <__pack_d> + 1246: 141b addi r14, r14, 108 + 1248: 1494 pop r4-r7, r15 + 124a: 6498 cmphs r6, r2 + 124c: 0b94 bt 0x1174 // 1174 <__muldf3+0xb8> + 124e: 9882 ld.w r4, (r14, 0x8) + 1250: 98a3 ld.w r5, (r14, 0xc) + 1252: 3201 movi r2, 1 + 1254: 3300 movi r3, 0 + 1256: 6511 cmplt r4, r4 + 1258: 6109 addc r4, r2 + 125a: 614d addc r5, r3 + 125c: b882 st.w r4, (r14, 0x8) + 125e: b8a3 st.w r5, (r14, 0xc) + 1260: 078a br 0x1174 // 1174 <__muldf3+0xb8> + 1262: 6580 cmphs r0, r6 + 1264: 0b73 bt 0x114a // 114a <__muldf3+0x8e> + 1266: 3300 movi r3, 0 + 1268: 3401 movi r4, 1 + 126a: b862 st.w r3, (r14, 0x8) + 126c: b883 st.w r4, (r14, 0xc) + 126e: 0772 br 0x1152 // 1152 <__muldf3+0x96> + 1270: 3940 cmpnei r1, 0 + 1272: 0bc9 bt 0x1204 // 1204 <__muldf3+0x148> + 1274: 3180 movi r1, 128 + 1276: 4121 lsli r1, r1, 1 + 1278: 6848 and r1, r2 + 127a: 3940 cmpnei r1, 0 + 127c: 0bc4 bt 0x1204 // 1204 <__muldf3+0x148> + 127e: 6c5b mov r1, r6 + 1280: 6c5c or r1, r7 + 1282: 3940 cmpnei r1, 0 + 1284: 0fc0 bf 0x1204 // 1204 <__muldf3+0x148> + 1286: 3080 movi r0, 128 + 1288: 3100 movi r1, 0 + 128a: 6401 cmplt r0, r0 + 128c: 6009 addc r0, r2 + 128e: 604d addc r1, r3 + 1290: 34ff movi r4, 255 + 1292: 6d43 mov r5, r0 + 1294: 6951 andn r5, r4 + 1296: 6c97 mov r2, r5 + 1298: 6cc7 mov r3, r1 + 129a: 07b5 br 0x1204 // 1204 <__muldf3+0x148> + 129c: 1013 lrw r0, 0xa070 // 12e8 <__muldf3+0x22c> + 129e: 07b8 br 0x120e // 120e <__muldf3+0x152> + 12a0: 1033 lrw r1, 0xfffffff // 12ec <__muldf3+0x230> + 12a2: 64c4 cmphs r1, r3 + 12a4: 0fa9 bf 0x11f6 // 11f6 <__muldf3+0x13a> + 12a6: 2402 addi r4, 3 + 12a8: b822 st.w r1, (r14, 0x8) + 12aa: 4a1f lsri r0, r2, 31 + 12ac: 4321 lsli r1, r3, 1 + 12ae: 42a1 lsli r5, r2, 1 + 12b0: 6c04 or r0, r1 + 12b2: 3fdf btsti r7, 31 + 12b4: b880 st.w r4, (r14, 0x0) + 12b6: 6c97 mov r2, r5 + 12b8: 6cc3 mov r3, r0 + 12ba: 0c07 bf 0x12c8 // 12c8 <__muldf3+0x20c> + 12bc: 3001 movi r0, 1 + 12be: 3100 movi r1, 0 + 12c0: 6c08 or r0, r2 + 12c2: 6c4c or r1, r3 + 12c4: 6c83 mov r2, r0 + 12c6: 6cc7 mov r3, r1 + 12c8: 4721 lsli r1, r7, 1 + 12ca: 4e1f lsri r0, r6, 31 + 12cc: 6c04 or r0, r1 + 12ce: 9822 ld.w r1, (r14, 0x8) + 12d0: 46a1 lsli r5, r6, 1 + 12d2: 64c4 cmphs r1, r3 + 12d4: 6d97 mov r6, r5 + 12d6: 6dc3 mov r7, r0 + 12d8: 2c00 subi r4, 1 + 12da: 0be8 bt 0x12aa // 12aa <__muldf3+0x1ee> + 12dc: 9820 ld.w r1, (r14, 0x0) + 12de: b838 st.w r1, (r14, 0x60) + 12e0: 078b br 0x11f6 // 11f6 <__muldf3+0x13a> + 12e2: 0000 bkpt + 12e4: 1fffffff .long 0x1fffffff + 12e8: 0000a070 .long 0x0000a070 + 12ec: 0fffffff .long 0x0fffffff + +000012f0 <__divdf3>: + 12f0: 14d4 push r4-r7, r15 + 12f2: 1432 subi r14, r14, 72 + 12f4: b804 st.w r0, (r14, 0x10) + 12f6: b825 st.w r1, (r14, 0x14) + 12f8: 1804 addi r0, r14, 16 + 12fa: 1908 addi r1, r14, 32 + 12fc: b867 st.w r3, (r14, 0x1c) + 12fe: b846 st.w r2, (r14, 0x18) + 1300: e00002a6 bsr 0x184c // 184c <__unpack_d> + 1304: 190d addi r1, r14, 52 + 1306: 1806 addi r0, r14, 24 + 1308: e00002a2 bsr 0x184c // 184c <__unpack_d> + 130c: 9868 ld.w r3, (r14, 0x20) + 130e: 3b01 cmphsi r3, 2 + 1310: 0c66 bf 0x13dc // 13dc <__divdf3+0xec> + 1312: 982d ld.w r1, (r14, 0x34) + 1314: 3901 cmphsi r1, 2 + 1316: 0c92 bf 0x143a // 143a <__divdf3+0x14a> + 1318: 9849 ld.w r2, (r14, 0x24) + 131a: 980e ld.w r0, (r14, 0x38) + 131c: 6c81 xor r2, r0 + 131e: 3b44 cmpnei r3, 4 + 1320: b849 st.w r2, (r14, 0x24) + 1322: 0c62 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1324: 3b42 cmpnei r3, 2 + 1326: 0c60 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1328: 3944 cmpnei r1, 4 + 132a: 0c62 bf 0x13ee // 13ee <__divdf3+0xfe> + 132c: 3942 cmpnei r1, 2 + 132e: 0c82 bf 0x1432 // 1432 <__divdf3+0x142> + 1330: 982a ld.w r1, (r14, 0x28) + 1332: 986f ld.w r3, (r14, 0x3c) + 1334: 604e subu r1, r3 + 1336: 9890 ld.w r4, (r14, 0x40) + 1338: 98b1 ld.w r5, (r14, 0x44) + 133a: 984b ld.w r2, (r14, 0x2c) + 133c: 986c ld.w r3, (r14, 0x30) + 133e: 654c cmphs r3, r5 + 1340: b82a st.w r1, (r14, 0x28) + 1342: 6d93 mov r6, r4 + 1344: 6dd7 mov r7, r5 + 1346: 0c05 bf 0x1350 // 1350 <__divdf3+0x60> + 1348: 64d6 cmpne r5, r3 + 134a: 080b bt 0x1360 // 1360 <__divdf3+0x70> + 134c: 6508 cmphs r2, r4 + 134e: 0809 bt 0x1360 // 1360 <__divdf3+0x70> + 1350: 4a9f lsri r4, r2, 31 + 1352: 4301 lsli r0, r3, 1 + 1354: 42a1 lsli r5, r2, 1 + 1356: 6d00 or r4, r0 + 1358: 2900 subi r1, 1 + 135a: 6c97 mov r2, r5 + 135c: 6cd3 mov r3, r4 + 135e: b82a st.w r1, (r14, 0x28) + 1360: 3000 movi r0, 0 + 1362: 3100 movi r1, 0 + 1364: b802 st.w r0, (r14, 0x8) + 1366: b823 st.w r1, (r14, 0xc) + 1368: 3180 movi r1, 128 + 136a: 343d movi r4, 61 + 136c: 3000 movi r0, 0 + 136e: 4135 lsli r1, r1, 21 + 1370: b8c0 st.w r6, (r14, 0x0) + 1372: b8e1 st.w r7, (r14, 0x4) + 1374: 98a0 ld.w r5, (r14, 0x0) + 1376: 98c1 ld.w r6, (r14, 0x4) + 1378: 658c cmphs r3, r6 + 137a: 0c10 bf 0x139a // 139a <__divdf3+0xaa> + 137c: 64da cmpne r6, r3 + 137e: 0803 bt 0x1384 // 1384 <__divdf3+0x94> + 1380: 6548 cmphs r2, r5 + 1382: 0c0c bf 0x139a // 139a <__divdf3+0xaa> + 1384: 98a2 ld.w r5, (r14, 0x8) + 1386: 98c3 ld.w r6, (r14, 0xc) + 1388: 6d40 or r5, r0 + 138a: 6d84 or r6, r1 + 138c: b8a2 st.w r5, (r14, 0x8) + 138e: b8c3 st.w r6, (r14, 0xc) + 1390: 98a0 ld.w r5, (r14, 0x0) + 1392: 98c1 ld.w r6, (r14, 0x4) + 1394: 6488 cmphs r2, r2 + 1396: 6097 subc r2, r5 + 1398: 60db subc r3, r6 + 139a: 41bf lsli r5, r1, 31 + 139c: 48e1 lsri r7, r0, 1 + 139e: 6d97 mov r6, r5 + 13a0: 49a1 lsri r5, r1, 1 + 13a2: 6d9c or r6, r7 + 13a4: 6c57 mov r1, r5 + 13a6: 4abf lsri r5, r2, 31 + 13a8: 6c1b mov r0, r6 + 13aa: 2c00 subi r4, 1 + 13ac: 6d97 mov r6, r5 + 13ae: 43a1 lsli r5, r3, 1 + 13b0: 6d94 or r6, r5 + 13b2: 4261 lsli r3, r2, 1 + 13b4: 3c40 cmpnei r4, 0 + 13b6: 6dcf mov r7, r3 + 13b8: 6c8f mov r2, r3 + 13ba: 6cdb mov r3, r6 + 13bc: 0bdc bt 0x1374 // 1374 <__divdf3+0x84> + 13be: 30ff movi r0, 255 + 13c0: 3100 movi r1, 0 + 13c2: 9882 ld.w r4, (r14, 0x8) + 13c4: 98a3 ld.w r5, (r14, 0xc) + 13c6: 6900 and r4, r0 + 13c8: 6944 and r5, r1 + 13ca: 6c13 mov r0, r4 + 13cc: 6c57 mov r1, r5 + 13ce: 3480 movi r4, 128 + 13d0: 6502 cmpne r0, r4 + 13d2: 0c15 bf 0x13fc // 13fc <__divdf3+0x10c> + 13d4: 9862 ld.w r3, (r14, 0x8) + 13d6: 9883 ld.w r4, (r14, 0xc) + 13d8: b86b st.w r3, (r14, 0x2c) + 13da: b88c st.w r4, (r14, 0x30) + 13dc: 1808 addi r0, r14, 32 + 13de: e0000169 bsr 0x16b0 // 16b0 <__pack_d> + 13e2: 1412 addi r14, r14, 72 + 13e4: 1494 pop r4-r7, r15 + 13e6: 644e cmpne r3, r1 + 13e8: 0bfa bt 0x13dc // 13dc <__divdf3+0xec> + 13ea: 1016 lrw r0, 0xa070 // 1440 <__divdf3+0x150> + 13ec: 07f9 br 0x13de // 13de <__divdf3+0xee> + 13ee: 3300 movi r3, 0 + 13f0: 3400 movi r4, 0 + 13f2: b86b st.w r3, (r14, 0x2c) + 13f4: b88c st.w r4, (r14, 0x30) + 13f6: b86a st.w r3, (r14, 0x28) + 13f8: 1808 addi r0, r14, 32 + 13fa: 07f2 br 0x13de // 13de <__divdf3+0xee> + 13fc: 3940 cmpnei r1, 0 + 13fe: 0beb bt 0x13d4 // 13d4 <__divdf3+0xe4> + 1400: 3180 movi r1, 128 + 1402: 4121 lsli r1, r1, 1 + 1404: 9882 ld.w r4, (r14, 0x8) + 1406: 98a3 ld.w r5, (r14, 0xc) + 1408: 6850 and r1, r4 + 140a: 3940 cmpnei r1, 0 + 140c: 0be4 bt 0x13d4 // 13d4 <__divdf3+0xe4> + 140e: 6c98 or r2, r6 + 1410: 3a40 cmpnei r2, 0 + 1412: 0fe1 bf 0x13d4 // 13d4 <__divdf3+0xe4> + 1414: 3280 movi r2, 128 + 1416: 3300 movi r3, 0 + 1418: 6c13 mov r0, r4 + 141a: 6c57 mov r1, r5 + 141c: 6401 cmplt r0, r0 + 141e: 6009 addc r0, r2 + 1420: 604d addc r1, r3 + 1422: 6c83 mov r2, r0 + 1424: 6cc7 mov r3, r1 + 1426: 6c0b mov r0, r2 + 1428: 31ff movi r1, 255 + 142a: 6805 andn r0, r1 + 142c: b802 st.w r0, (r14, 0x8) + 142e: b863 st.w r3, (r14, 0xc) + 1430: 07d2 br 0x13d4 // 13d4 <__divdf3+0xe4> + 1432: 3304 movi r3, 4 + 1434: b868 st.w r3, (r14, 0x20) + 1436: 1808 addi r0, r14, 32 + 1438: 07d3 br 0x13de // 13de <__divdf3+0xee> + 143a: 180d addi r0, r14, 52 + 143c: 07d1 br 0x13de // 13de <__divdf3+0xee> + 143e: 0000 bkpt + 1440: 0000a070 .long 0x0000a070 + +00001444 <__gtdf2>: + 1444: 14d0 push r15 + 1446: 142e subi r14, r14, 56 + 1448: b800 st.w r0, (r14, 0x0) + 144a: b821 st.w r1, (r14, 0x4) + 144c: 6c3b mov r0, r14 + 144e: 1904 addi r1, r14, 16 + 1450: b863 st.w r3, (r14, 0xc) + 1452: b842 st.w r2, (r14, 0x8) + 1454: e00001fc bsr 0x184c // 184c <__unpack_d> + 1458: 1909 addi r1, r14, 36 + 145a: 1802 addi r0, r14, 8 + 145c: e00001f8 bsr 0x184c // 184c <__unpack_d> + 1460: 9864 ld.w r3, (r14, 0x10) + 1462: 3b01 cmphsi r3, 2 + 1464: 0c0a bf 0x1478 // 1478 <__gtdf2+0x34> + 1466: 9869 ld.w r3, (r14, 0x24) + 1468: 3b01 cmphsi r3, 2 + 146a: 0c07 bf 0x1478 // 1478 <__gtdf2+0x34> + 146c: 1909 addi r1, r14, 36 + 146e: 1804 addi r0, r14, 16 + 1470: e0000250 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 1474: 140e addi r14, r14, 56 + 1476: 1490 pop r15 + 1478: 3000 movi r0, 0 + 147a: 2800 subi r0, 1 + 147c: 140e addi r14, r14, 56 + 147e: 1490 pop r15 + +00001480 <__gedf2>: + 1480: 14d0 push r15 + 1482: 142e subi r14, r14, 56 + 1484: b800 st.w r0, (r14, 0x0) + 1486: b821 st.w r1, (r14, 0x4) + 1488: 6c3b mov r0, r14 + 148a: 1904 addi r1, r14, 16 + 148c: b863 st.w r3, (r14, 0xc) + 148e: b842 st.w r2, (r14, 0x8) + 1490: e00001de bsr 0x184c // 184c <__unpack_d> + 1494: 1909 addi r1, r14, 36 + 1496: 1802 addi r0, r14, 8 + 1498: e00001da bsr 0x184c // 184c <__unpack_d> + 149c: 9864 ld.w r3, (r14, 0x10) + 149e: 3b01 cmphsi r3, 2 + 14a0: 0c0a bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a2: 9869 ld.w r3, (r14, 0x24) + 14a4: 3b01 cmphsi r3, 2 + 14a6: 0c07 bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a8: 1909 addi r1, r14, 36 + 14aa: 1804 addi r0, r14, 16 + 14ac: e0000232 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14b0: 140e addi r14, r14, 56 + 14b2: 1490 pop r15 + 14b4: 3000 movi r0, 0 + 14b6: 2800 subi r0, 1 + 14b8: 140e addi r14, r14, 56 + 14ba: 1490 pop r15 + +000014bc <__ledf2>: + 14bc: 14d0 push r15 + 14be: 142e subi r14, r14, 56 + 14c0: b800 st.w r0, (r14, 0x0) + 14c2: b821 st.w r1, (r14, 0x4) + 14c4: 6c3b mov r0, r14 + 14c6: 1904 addi r1, r14, 16 + 14c8: b863 st.w r3, (r14, 0xc) + 14ca: b842 st.w r2, (r14, 0x8) + 14cc: e00001c0 bsr 0x184c // 184c <__unpack_d> + 14d0: 1909 addi r1, r14, 36 + 14d2: 1802 addi r0, r14, 8 + 14d4: e00001bc bsr 0x184c // 184c <__unpack_d> + 14d8: 9864 ld.w r3, (r14, 0x10) + 14da: 3b01 cmphsi r3, 2 + 14dc: 0c0a bf 0x14f0 // 14f0 <__ledf2+0x34> + 14de: 9869 ld.w r3, (r14, 0x24) + 14e0: 3b01 cmphsi r3, 2 + 14e2: 0c07 bf 0x14f0 // 14f0 <__ledf2+0x34> + 14e4: 1909 addi r1, r14, 36 + 14e6: 1804 addi r0, r14, 16 + 14e8: e0000214 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14ec: 140e addi r14, r14, 56 + 14ee: 1490 pop r15 + 14f0: 3001 movi r0, 1 + 14f2: 140e addi r14, r14, 56 + 14f4: 1490 pop r15 + ... + +000014f8 <__floatsidf>: + 14f8: 14d1 push r4, r15 + 14fa: 1425 subi r14, r14, 20 + 14fc: 3303 movi r3, 3 + 14fe: b860 st.w r3, (r14, 0x0) + 1500: 3840 cmpnei r0, 0 + 1502: 487f lsri r3, r0, 31 + 1504: b861 st.w r3, (r14, 0x4) + 1506: 0808 bt 0x1516 // 1516 <__floatsidf+0x1e> + 1508: 3302 movi r3, 2 + 150a: b860 st.w r3, (r14, 0x0) + 150c: 6c3b mov r0, r14 + 150e: e00000d1 bsr 0x16b0 // 16b0 <__pack_d> + 1512: 1405 addi r14, r14, 20 + 1514: 1491 pop r4, r15 + 1516: 38df btsti r0, 31 + 1518: 0812 bt 0x153c // 153c <__floatsidf+0x44> + 151a: 6d03 mov r4, r0 + 151c: 6c13 mov r0, r4 + 151e: e00000a9 bsr 0x1670 // 1670 <__clzsi2> + 1522: 321d movi r2, 29 + 1524: 6080 addu r2, r0 + 1526: 2802 subi r0, 3 + 1528: 38df btsti r0, 31 + 152a: 0810 bt 0x154a // 154a <__floatsidf+0x52> + 152c: 7100 lsl r4, r0 + 152e: 3300 movi r3, 0 + 1530: b884 st.w r4, (r14, 0x10) + 1532: b863 st.w r3, (r14, 0xc) + 1534: 333c movi r3, 60 + 1536: 60ca subu r3, r2 + 1538: b862 st.w r3, (r14, 0x8) + 153a: 07e9 br 0x150c // 150c <__floatsidf+0x14> + 153c: 3380 movi r3, 128 + 153e: 4378 lsli r3, r3, 24 + 1540: 64c2 cmpne r0, r3 + 1542: 0c0d bf 0x155c // 155c <__floatsidf+0x64> + 1544: 3400 movi r4, 0 + 1546: 6102 subu r4, r0 + 1548: 07ea br 0x151c // 151c <__floatsidf+0x24> + 154a: 311f movi r1, 31 + 154c: 4c61 lsri r3, r4, 1 + 154e: 604a subu r1, r2 + 1550: 6c13 mov r0, r4 + 1552: 70c5 lsr r3, r1 + 1554: 7008 lsl r0, r2 + 1556: b864 st.w r3, (r14, 0x10) + 1558: b803 st.w r0, (r14, 0xc) + 155a: 07ed br 0x1534 // 1534 <__floatsidf+0x3c> + 155c: 3000 movi r0, 0 + 155e: 1022 lrw r1, 0xc1e00000 // 1564 <__floatsidf+0x6c> + 1560: 07d9 br 0x1512 // 1512 <__floatsidf+0x1a> + 1562: 0000 bkpt + 1564: c1e00000 .long 0xc1e00000 + +00001568 <__fixdfsi>: + 1568: 14d0 push r15 + 156a: 1427 subi r14, r14, 28 + 156c: b800 st.w r0, (r14, 0x0) + 156e: b821 st.w r1, (r14, 0x4) + 1570: 6c3b mov r0, r14 + 1572: 1902 addi r1, r14, 8 + 1574: e000016c bsr 0x184c // 184c <__unpack_d> + 1578: 9862 ld.w r3, (r14, 0x8) + 157a: 3b02 cmphsi r3, 3 + 157c: 0c20 bf 0x15bc // 15bc <__fixdfsi+0x54> + 157e: 3b44 cmpnei r3, 4 + 1580: 0c16 bf 0x15ac // 15ac <__fixdfsi+0x44> + 1582: 9864 ld.w r3, (r14, 0x10) + 1584: 3bdf btsti r3, 31 + 1586: 081b bt 0x15bc // 15bc <__fixdfsi+0x54> + 1588: 3b3e cmplti r3, 31 + 158a: 0c11 bf 0x15ac // 15ac <__fixdfsi+0x44> + 158c: 323c movi r2, 60 + 158e: 5a6d subu r3, r2, r3 + 1590: 3200 movi r2, 0 + 1592: 2a1f subi r2, 32 + 1594: 608c addu r2, r3 + 1596: 3adf btsti r2, 31 + 1598: 0815 bt 0x15c2 // 15c2 <__fixdfsi+0x5a> + 159a: 9806 ld.w r0, (r14, 0x18) + 159c: 7009 lsr r0, r2 + 159e: 9863 ld.w r3, (r14, 0xc) + 15a0: 3b40 cmpnei r3, 0 + 15a2: 0c0b bf 0x15b8 // 15b8 <__fixdfsi+0x50> + 15a4: 3300 movi r3, 0 + 15a6: 5b01 subu r0, r3, r0 + 15a8: 1407 addi r14, r14, 28 + 15aa: 1490 pop r15 + 15ac: 9863 ld.w r3, (r14, 0xc) + 15ae: 3b40 cmpnei r3, 0 + 15b0: 3000 movi r0, 0 + 15b2: 6001 addc r0, r0 + 15b4: 1068 lrw r3, 0x7fffffff // 15d4 <__fixdfsi+0x6c> + 15b6: 600c addu r0, r3 + 15b8: 1407 addi r14, r14, 28 + 15ba: 1490 pop r15 + 15bc: 3000 movi r0, 0 + 15be: 1407 addi r14, r14, 28 + 15c0: 1490 pop r15 + 15c2: 9846 ld.w r2, (r14, 0x18) + 15c4: 311f movi r1, 31 + 15c6: 4241 lsli r2, r2, 1 + 15c8: 604e subu r1, r3 + 15ca: 9805 ld.w r0, (r14, 0x14) + 15cc: 7084 lsl r2, r1 + 15ce: 700d lsr r0, r3 + 15d0: 6c08 or r0, r2 + 15d2: 07e6 br 0x159e // 159e <__fixdfsi+0x36> + 15d4: 7fffffff .long 0x7fffffff + +000015d8 <__floatunsidf>: + 15d8: 14d2 push r4-r5, r15 + 15da: 1425 subi r14, r14, 20 + 15dc: 3840 cmpnei r0, 0 + 15de: 3500 movi r5, 0 + 15e0: 6d03 mov r4, r0 + 15e2: b8a1 st.w r5, (r14, 0x4) + 15e4: 0c15 bf 0x160e // 160e <__floatunsidf+0x36> + 15e6: 3303 movi r3, 3 + 15e8: b860 st.w r3, (r14, 0x0) + 15ea: e0000043 bsr 0x1670 // 1670 <__clzsi2> + 15ee: 321d movi r2, 29 + 15f0: 6080 addu r2, r0 + 15f2: 2802 subi r0, 3 + 15f4: 38df btsti r0, 31 + 15f6: 0813 bt 0x161c // 161c <__floatunsidf+0x44> + 15f8: 7100 lsl r4, r0 + 15fa: b884 st.w r4, (r14, 0x10) + 15fc: b8a3 st.w r5, (r14, 0xc) + 15fe: 333c movi r3, 60 + 1600: 60ca subu r3, r2 + 1602: 6c3b mov r0, r14 + 1604: b862 st.w r3, (r14, 0x8) + 1606: e0000055 bsr 0x16b0 // 16b0 <__pack_d> + 160a: 1405 addi r14, r14, 20 + 160c: 1492 pop r4-r5, r15 + 160e: 3302 movi r3, 2 + 1610: 6c3b mov r0, r14 + 1612: b860 st.w r3, (r14, 0x0) + 1614: e000004e bsr 0x16b0 // 16b0 <__pack_d> + 1618: 1405 addi r14, r14, 20 + 161a: 1492 pop r4-r5, r15 + 161c: 311f movi r1, 31 + 161e: 4c61 lsri r3, r4, 1 + 1620: 604a subu r1, r2 + 1622: 70c5 lsr r3, r1 + 1624: 7108 lsl r4, r2 + 1626: b864 st.w r3, (r14, 0x10) + 1628: b883 st.w r4, (r14, 0xc) + 162a: 07ea br 0x15fe // 15fe <__floatunsidf+0x26> + +0000162c <__muldi3>: + 162c: 14c4 push r4-r7 + 162e: 1421 subi r14, r14, 4 + 1630: 7501 zexth r4, r0 + 1632: 48b0 lsri r5, r0, 16 + 1634: 75c9 zexth r7, r2 + 1636: 6d83 mov r6, r0 + 1638: b820 st.w r1, (r14, 0x0) + 163a: 6c13 mov r0, r4 + 163c: 4a30 lsri r1, r2, 16 + 163e: 7c1c mult r0, r7 + 1640: 7d04 mult r4, r1 + 1642: 7dd4 mult r7, r5 + 1644: 611c addu r4, r7 + 1646: 7d44 mult r5, r1 + 1648: 4830 lsri r1, r0, 16 + 164a: 6104 addu r4, r1 + 164c: 65d0 cmphs r4, r7 + 164e: 0804 bt 0x1656 // 1656 <__muldi3+0x2a> + 1650: 3180 movi r1, 128 + 1652: 4129 lsli r1, r1, 9 + 1654: 6144 addu r5, r1 + 1656: 4c30 lsri r1, r4, 16 + 1658: 7cd8 mult r3, r6 + 165a: 6144 addu r5, r1 + 165c: 6c4f mov r1, r3 + 165e: 9860 ld.w r3, (r14, 0x0) + 1660: 7cc8 mult r3, r2 + 1662: 4490 lsli r4, r4, 16 + 1664: 604c addu r1, r3 + 1666: 7401 zexth r0, r0 + 1668: 6010 addu r0, r4 + 166a: 6054 addu r1, r5 + 166c: 1401 addi r14, r14, 4 + 166e: 1484 pop r4-r7 + +00001670 <__clzsi2>: + 1670: 106d lrw r3, 0xffff // 16a4 <__clzsi2+0x34> + 1672: 640c cmphs r3, r0 + 1674: 0c07 bf 0x1682 // 1682 <__clzsi2+0x12> + 1676: 33ff movi r3, 255 + 1678: 640c cmphs r3, r0 + 167a: 0c0f bf 0x1698 // 1698 <__clzsi2+0x28> + 167c: 3320 movi r3, 32 + 167e: 3200 movi r2, 0 + 1680: 0406 br 0x168c // 168c <__clzsi2+0x1c> + 1682: 106a lrw r3, 0xffffff // 16a8 <__clzsi2+0x38> + 1684: 640c cmphs r3, r0 + 1686: 080c bt 0x169e // 169e <__clzsi2+0x2e> + 1688: 3308 movi r3, 8 + 168a: 3218 movi r2, 24 + 168c: 7009 lsr r0, r2 + 168e: 1048 lrw r2, 0xa084 // 16ac <__clzsi2+0x3c> + 1690: 6008 addu r0, r2 + 1692: 8040 ld.b r2, (r0, 0x0) + 1694: 5b09 subu r0, r3, r2 + 1696: 783c jmp r15 + 1698: 3318 movi r3, 24 + 169a: 3208 movi r2, 8 + 169c: 07f8 br 0x168c // 168c <__clzsi2+0x1c> + 169e: 3310 movi r3, 16 + 16a0: 3210 movi r2, 16 + 16a2: 07f5 br 0x168c // 168c <__clzsi2+0x1c> + 16a4: 0000ffff .long 0x0000ffff + 16a8: 00ffffff .long 0x00ffffff + 16ac: 0000a084 .long 0x0000a084 + +000016b0 <__pack_d>: + 16b0: 14c4 push r4-r7 + 16b2: 1422 subi r14, r14, 8 + 16b4: 9060 ld.w r3, (r0, 0x0) + 16b6: 3b01 cmphsi r3, 2 + 16b8: 90c3 ld.w r6, (r0, 0xc) + 16ba: 90e4 ld.w r7, (r0, 0x10) + 16bc: 9021 ld.w r1, (r0, 0x4) + 16be: 0c46 bf 0x174a // 174a <__pack_d+0x9a> + 16c0: 3b44 cmpnei r3, 4 + 16c2: 0c40 bf 0x1742 // 1742 <__pack_d+0x92> + 16c4: 3b42 cmpnei r3, 2 + 16c6: 0c27 bf 0x1714 // 1714 <__pack_d+0x64> + 16c8: 6cdb mov r3, r6 + 16ca: 6cdc or r3, r7 + 16cc: 3b40 cmpnei r3, 0 + 16ce: 0c23 bf 0x1714 // 1714 <__pack_d+0x64> + 16d0: 9062 ld.w r3, (r0, 0x8) + 16d2: 125a lrw r2, 0xfffffc02 // 1838 <__pack_d+0x188> + 16d4: 648d cmplt r3, r2 + 16d6: 0855 bt 0x1780 // 1780 <__pack_d+0xd0> + 16d8: 1259 lrw r2, 0x3ff // 183c <__pack_d+0x18c> + 16da: 64c9 cmplt r2, r3 + 16dc: 0833 bt 0x1742 // 1742 <__pack_d+0x92> + 16de: 34ff movi r4, 255 + 16e0: 3500 movi r5, 0 + 16e2: 6918 and r4, r6 + 16e4: 695c and r5, r7 + 16e6: 3280 movi r2, 128 + 16e8: 6492 cmpne r4, r2 + 16ea: 0c3f bf 0x1768 // 1768 <__pack_d+0xb8> + 16ec: 347f movi r4, 127 + 16ee: 3500 movi r5, 0 + 16f0: 6599 cmplt r6, r6 + 16f2: 6191 addc r6, r4 + 16f4: 61d5 addc r7, r5 + 16f6: 1253 lrw r2, 0x1fffffff // 1840 <__pack_d+0x190> + 16f8: 65c8 cmphs r2, r7 + 16fa: 0c1a bf 0x172e // 172e <__pack_d+0x7e> + 16fc: 1290 lrw r4, 0x3ff // 183c <__pack_d+0x18c> + 16fe: 610c addu r4, r3 + 1700: 4718 lsli r0, r7, 24 + 1702: 4f68 lsri r3, r7, 8 + 1704: 4e48 lsri r2, r6, 8 + 1706: 6c80 or r2, r0 + 1708: 430c lsli r0, r3, 12 + 170a: 486c lsri r3, r0, 12 + 170c: 120e lrw r0, 0x7ff // 1844 <__pack_d+0x194> + 170e: 6d4b mov r5, r2 + 1710: 6900 and r4, r0 + 1712: 0404 br 0x171a // 171a <__pack_d+0x6a> + 1714: 3400 movi r4, 0 + 1716: 3200 movi r2, 0 + 1718: 3300 movi r3, 0 + 171a: 430c lsli r0, r3, 12 + 171c: 480c lsri r0, r0, 12 + 171e: 4474 lsli r3, r4, 20 + 1720: 419f lsli r4, r1, 31 + 1722: 6c43 mov r1, r0 + 1724: 6c4c or r1, r3 + 1726: 6c50 or r1, r4 + 1728: 6c0b mov r0, r2 + 172a: 1402 addi r14, r14, 8 + 172c: 1484 pop r4-r7 + 172e: 479f lsli r4, r7, 31 + 1730: 4e01 lsri r0, r6, 1 + 1732: 6d00 or r4, r0 + 1734: 6d93 mov r6, r4 + 1736: 3480 movi r4, 128 + 1738: 4f41 lsri r2, r7, 1 + 173a: 4483 lsli r4, r4, 3 + 173c: 6dcb mov r7, r2 + 173e: 610c addu r4, r3 + 1740: 07e0 br 0x1700 // 1700 <__pack_d+0x50> + 1742: 1281 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1744: 3200 movi r2, 0 + 1746: 3300 movi r3, 0 + 1748: 07e9 br 0x171a // 171a <__pack_d+0x6a> + 174a: 4e08 lsri r0, r6, 8 + 174c: 4798 lsli r4, r7, 24 + 174e: 6d00 or r4, r0 + 1750: 3580 movi r5, 128 + 1752: 4705 lsli r0, r7, 5 + 1754: 6c93 mov r2, r4 + 1756: 486d lsri r3, r0, 13 + 1758: 3400 movi r4, 0 + 175a: 45ac lsli r5, r5, 12 + 175c: 6c90 or r2, r4 + 175e: 6cd4 or r3, r5 + 1760: 430c lsli r0, r3, 12 + 1762: 486c lsri r3, r0, 12 + 1764: 1198 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1766: 07da br 0x171a // 171a <__pack_d+0x6a> + 1768: 3d40 cmpnei r5, 0 + 176a: 0bc1 bt 0x16ec // 16ec <__pack_d+0x3c> + 176c: 4241 lsli r2, r2, 1 + 176e: 6898 and r2, r6 + 1770: 3a40 cmpnei r2, 0 + 1772: 0fc2 bf 0x16f6 // 16f6 <__pack_d+0x46> + 1774: 3480 movi r4, 128 + 1776: 3500 movi r5, 0 + 1778: 6599 cmplt r6, r6 + 177a: 6191 addc r6, r4 + 177c: 61d5 addc r7, r5 + 177e: 07bc br 0x16f6 // 16f6 <__pack_d+0x46> + 1780: 5a6d subu r3, r2, r3 + 1782: 3238 movi r2, 56 + 1784: 64c9 cmplt r2, r3 + 1786: 0bc7 bt 0x1714 // 1714 <__pack_d+0x64> + 1788: 3200 movi r2, 0 + 178a: 2a1f subi r2, 32 + 178c: 608c addu r2, r3 + 178e: 3adf btsti r2, 31 + 1790: 0848 bt 0x1820 // 1820 <__pack_d+0x170> + 1792: 6c1f mov r0, r7 + 1794: 7009 lsr r0, r2 + 1796: b800 st.w r0, (r14, 0x0) + 1798: 3000 movi r0, 0 + 179a: b801 st.w r0, (r14, 0x4) + 179c: 3adf btsti r2, 31 + 179e: 083c bt 0x1816 // 1816 <__pack_d+0x166> + 17a0: 3301 movi r3, 1 + 17a2: 70c8 lsl r3, r2 + 17a4: 6d4f mov r5, r3 + 17a6: 3300 movi r3, 0 + 17a8: 6d0f mov r4, r3 + 17aa: 3200 movi r2, 0 + 17ac: 3300 movi r3, 0 + 17ae: 2a00 subi r2, 1 + 17b0: 2b00 subi r3, 1 + 17b2: 6511 cmplt r4, r4 + 17b4: 6109 addc r4, r2 + 17b6: 614d addc r5, r3 + 17b8: 6990 and r6, r4 + 17ba: 69d4 and r7, r5 + 17bc: 6d9c or r6, r7 + 17be: 3e40 cmpnei r6, 0 + 17c0: 3000 movi r0, 0 + 17c2: 6001 addc r0, r0 + 17c4: 6c83 mov r2, r0 + 17c6: 3300 movi r3, 0 + 17c8: 9880 ld.w r4, (r14, 0x0) + 17ca: 98a1 ld.w r5, (r14, 0x4) + 17cc: 6d08 or r4, r2 + 17ce: 6d4c or r5, r3 + 17d0: 32ff movi r2, 255 + 17d2: 3300 movi r3, 0 + 17d4: 6890 and r2, r4 + 17d6: 68d4 and r3, r5 + 17d8: 3080 movi r0, 128 + 17da: 640a cmpne r2, r0 + 17dc: 081b bt 0x1812 // 1812 <__pack_d+0x162> + 17de: 3b40 cmpnei r3, 0 + 17e0: 0819 bt 0x1812 // 1812 <__pack_d+0x162> + 17e2: 3380 movi r3, 128 + 17e4: 4361 lsli r3, r3, 1 + 17e6: 68d0 and r3, r4 + 17e8: 3b40 cmpnei r3, 0 + 17ea: 0c06 bf 0x17f6 // 17f6 <__pack_d+0x146> + 17ec: 3280 movi r2, 128 + 17ee: 3300 movi r3, 0 + 17f0: 6511 cmplt r4, r4 + 17f2: 6109 addc r4, r2 + 17f4: 614d addc r5, r3 + 17f6: 4518 lsli r0, r5, 24 + 17f8: 4c48 lsri r2, r4, 8 + 17fa: 4d68 lsri r3, r5, 8 + 17fc: 1093 lrw r4, 0xfffffff // 1848 <__pack_d+0x198> + 17fe: 6c80 or r2, r0 + 1800: 6550 cmphs r4, r5 + 1802: 430c lsli r0, r3, 12 + 1804: 486c lsri r3, r0, 12 + 1806: 3001 movi r0, 1 + 1808: 0c02 bf 0x180c // 180c <__pack_d+0x15c> + 180a: 3000 movi r0, 0 + 180c: 108e lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 180e: 6900 and r4, r0 + 1810: 0785 br 0x171a // 171a <__pack_d+0x6a> + 1812: 327f movi r2, 127 + 1814: 07ed br 0x17ee // 17ee <__pack_d+0x13e> + 1816: 3201 movi r2, 1 + 1818: 708c lsl r2, r3 + 181a: 3500 movi r5, 0 + 181c: 6d0b mov r4, r2 + 181e: 07c6 br 0x17aa // 17aa <__pack_d+0xfa> + 1820: 341f movi r4, 31 + 1822: 610e subu r4, r3 + 1824: 4701 lsli r0, r7, 1 + 1826: 7010 lsl r0, r4 + 1828: 6d1b mov r4, r6 + 182a: 710d lsr r4, r3 + 182c: 6d00 or r4, r0 + 182e: 6c1f mov r0, r7 + 1830: 700d lsr r0, r3 + 1832: b880 st.w r4, (r14, 0x0) + 1834: b801 st.w r0, (r14, 0x4) + 1836: 07b3 br 0x179c // 179c <__pack_d+0xec> + 1838: fffffc02 .long 0xfffffc02 + 183c: 000003ff .long 0x000003ff + 1840: 1fffffff .long 0x1fffffff + 1844: 000007ff .long 0x000007ff + 1848: 0fffffff .long 0x0fffffff + +0000184c <__unpack_d>: + 184c: 1423 subi r14, r14, 12 + 184e: b880 st.w r4, (r14, 0x0) + 1850: b8c1 st.w r6, (r14, 0x4) + 1852: b8e2 st.w r7, (r14, 0x8) + 1854: 8843 ld.h r2, (r0, 0x6) + 1856: 4251 lsli r2, r2, 17 + 1858: 9061 ld.w r3, (r0, 0x4) + 185a: 9080 ld.w r4, (r0, 0x0) + 185c: 4a55 lsri r2, r2, 21 + 185e: 8007 ld.b r0, (r0, 0x7) + 1860: 436c lsli r3, r3, 12 + 1862: 4807 lsri r0, r0, 7 + 1864: 3a40 cmpnei r2, 0 + 1866: 4b6c lsri r3, r3, 12 + 1868: b101 st.w r0, (r1, 0x4) + 186a: 0819 bt 0x189c // 189c <__unpack_d+0x50> + 186c: 6c93 mov r2, r4 + 186e: 6c8c or r2, r3 + 1870: 3a40 cmpnei r2, 0 + 1872: 0c2d bf 0x18cc // 18cc <__unpack_d+0x80> + 1874: 4c58 lsri r2, r4, 24 + 1876: 4368 lsli r3, r3, 8 + 1878: 6cc8 or r3, r2 + 187a: 3203 movi r2, 3 + 187c: 4408 lsli r0, r4, 8 + 187e: b140 st.w r2, (r1, 0x0) + 1880: 1181 lrw r4, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 1882: 11c2 lrw r6, 0xfffffff // 1908 <__unpack_d+0xbc> + 1884: 485f lsri r2, r0, 31 + 1886: 4361 lsli r3, r3, 1 + 1888: 6cc8 or r3, r2 + 188a: 64d8 cmphs r6, r3 + 188c: 6c93 mov r2, r4 + 188e: 4001 lsli r0, r0, 1 + 1890: 2c00 subi r4, 1 + 1892: 0bf9 bt 0x1884 // 1884 <__unpack_d+0x38> + 1894: b142 st.w r2, (r1, 0x8) + 1896: b103 st.w r0, (r1, 0xc) + 1898: b164 st.w r3, (r1, 0x10) + 189a: 0414 br 0x18c2 // 18c2 <__unpack_d+0x76> + 189c: 101c lrw r0, 0x7ff // 190c <__unpack_d+0xc0> + 189e: 640a cmpne r2, r0 + 18a0: 0c19 bf 0x18d2 // 18d2 <__unpack_d+0x86> + 18a2: 1019 lrw r0, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 18a4: 6080 addu r2, r0 + 18a6: b142 st.w r2, (r1, 0x8) + 18a8: 3203 movi r2, 3 + 18aa: 43e8 lsli r7, r3, 8 + 18ac: b140 st.w r2, (r1, 0x0) + 18ae: 3380 movi r3, 128 + 18b0: 4c58 lsri r2, r4, 24 + 18b2: 6dc8 or r7, r2 + 18b4: 44c8 lsli r6, r4, 8 + 18b6: 3200 movi r2, 0 + 18b8: 4375 lsli r3, r3, 21 + 18ba: 6d88 or r6, r2 + 18bc: 6dcc or r7, r3 + 18be: b1c3 st.w r6, (r1, 0xc) + 18c0: b1e4 st.w r7, (r1, 0x10) + 18c2: 98e2 ld.w r7, (r14, 0x8) + 18c4: 98c1 ld.w r6, (r14, 0x4) + 18c6: 9880 ld.w r4, (r14, 0x0) + 18c8: 1403 addi r14, r14, 12 + 18ca: 783c jmp r15 + 18cc: 3302 movi r3, 2 + 18ce: b160 st.w r3, (r1, 0x0) + 18d0: 07f9 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18d2: 6c93 mov r2, r4 + 18d4: 6c8c or r2, r3 + 18d6: 3a40 cmpnei r2, 0 + 18d8: 0c10 bf 0x18f8 // 18f8 <__unpack_d+0xac> + 18da: 3280 movi r2, 128 + 18dc: 424c lsli r2, r2, 12 + 18de: 688c and r2, r3 + 18e0: 3a40 cmpnei r2, 0 + 18e2: 0c0e bf 0x18fe // 18fe <__unpack_d+0xb2> + 18e4: 3201 movi r2, 1 + 18e6: b140 st.w r2, (r1, 0x0) + 18e8: 4c58 lsri r2, r4, 24 + 18ea: 4368 lsli r3, r3, 8 + 18ec: 6cc8 or r3, r2 + 18ee: 4408 lsli r0, r4, 8 + 18f0: 3b9b bclri r3, 27 + 18f2: b103 st.w r0, (r1, 0xc) + 18f4: b164 st.w r3, (r1, 0x10) + 18f6: 07e6 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18f8: 3304 movi r3, 4 + 18fa: b160 st.w r3, (r1, 0x0) + 18fc: 07e3 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18fe: b140 st.w r2, (r1, 0x0) + 1900: 07f4 br 0x18e8 // 18e8 <__unpack_d+0x9c> + 1902: 0000 bkpt + 1904: fffffc01 .long 0xfffffc01 + 1908: 0fffffff .long 0x0fffffff + 190c: 000007ff .long 0x000007ff + +00001910 <__fpcmp_parts_d>: + 1910: 14c1 push r4 + 1912: 9060 ld.w r3, (r0, 0x0) + 1914: 3b01 cmphsi r3, 2 + 1916: 0c12 bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1918: 9140 ld.w r2, (r1, 0x0) + 191a: 3a01 cmphsi r2, 2 + 191c: 0c0f bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 191e: 3b44 cmpnei r3, 4 + 1920: 0c17 bf 0x194e // 194e <__fpcmp_parts_d+0x3e> + 1922: 3a44 cmpnei r2, 4 + 1924: 0c0f bf 0x1942 // 1942 <__fpcmp_parts_d+0x32> + 1926: 3b42 cmpnei r3, 2 + 1928: 0c0b bf 0x193e // 193e <__fpcmp_parts_d+0x2e> + 192a: 3a42 cmpnei r2, 2 + 192c: 0c13 bf 0x1952 // 1952 <__fpcmp_parts_d+0x42> + 192e: 9061 ld.w r3, (r0, 0x4) + 1930: 9141 ld.w r2, (r1, 0x4) + 1932: 648e cmpne r3, r2 + 1934: 0c14 bf 0x195c // 195c <__fpcmp_parts_d+0x4c> + 1936: 3b40 cmpnei r3, 0 + 1938: 0808 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 193a: 3001 movi r0, 1 + 193c: 1481 pop r4 + 193e: 3a42 cmpnei r2, 2 + 1940: 0c28 bf 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 1942: 9161 ld.w r3, (r1, 0x4) + 1944: 3b40 cmpnei r3, 0 + 1946: 0bfa bt 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1948: 3000 movi r0, 0 + 194a: 2800 subi r0, 1 + 194c: 1481 pop r4 + 194e: 3a44 cmpnei r2, 4 + 1950: 0c22 bf 0x1994 // 1994 <__fpcmp_parts_d+0x84> + 1952: 9061 ld.w r3, (r0, 0x4) + 1954: 3b40 cmpnei r3, 0 + 1956: 0bf9 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1958: 3001 movi r0, 1 + 195a: 07f1 br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 195c: 9082 ld.w r4, (r0, 0x8) + 195e: 9142 ld.w r2, (r1, 0x8) + 1960: 6509 cmplt r2, r4 + 1962: 0bea bt 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1964: 6491 cmplt r4, r2 + 1966: 080d bt 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1968: 9044 ld.w r2, (r0, 0x10) + 196a: 9083 ld.w r4, (r0, 0xc) + 196c: 9103 ld.w r0, (r1, 0xc) + 196e: 9124 ld.w r1, (r1, 0x10) + 1970: 6484 cmphs r1, r2 + 1972: 0fe2 bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1974: 644a cmpne r2, r1 + 1976: 0803 bt 0x197c // 197c <__fpcmp_parts_d+0x6c> + 1978: 6500 cmphs r0, r4 + 197a: 0fde bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 197c: 6448 cmphs r2, r1 + 197e: 0805 bt 0x1988 // 1988 <__fpcmp_parts_d+0x78> + 1980: 3b40 cmpnei r3, 0 + 1982: 0fe3 bf 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1984: 3001 movi r0, 1 + 1986: 07db br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 1988: 6486 cmpne r1, r2 + 198a: 0803 bt 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 198c: 6410 cmphs r4, r0 + 198e: 0ff9 bf 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1990: 3000 movi r0, 0 + 1992: 1481 pop r4 + 1994: 9161 ld.w r3, (r1, 0x4) + 1996: 9041 ld.w r2, (r0, 0x4) + 1998: 5b09 subu r0, r3, r2 + 199a: 1481 pop r4 + +0000199c <__memset_fast>: + 199c: 14c3 push r4-r6 + 199e: 7444 zextb r1, r1 + 19a0: 3a40 cmpnei r2, 0 + 19a2: 0c1f bf 0x19e0 // 19e0 <__memset_fast+0x44> + 19a4: 6d43 mov r5, r0 + 19a6: 6d03 mov r4, r0 + 19a8: 3603 movi r6, 3 + 19aa: 6918 and r4, r6 + 19ac: 3c40 cmpnei r4, 0 + 19ae: 0c1a bf 0x19e2 // 19e2 <__memset_fast+0x46> + 19b0: a520 st.b r1, (r5, 0x0) + 19b2: 2a00 subi r2, 1 + 19b4: 3a40 cmpnei r2, 0 + 19b6: 0c15 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 19b8: 2500 addi r5, 1 + 19ba: 6d17 mov r4, r5 + 19bc: 3603 movi r6, 3 + 19be: 6918 and r4, r6 + 19c0: 3c40 cmpnei r4, 0 + 19c2: 0c10 bf 0x19e2 // 19e2 <__memset_fast+0x46> + 19c4: a520 st.b r1, (r5, 0x0) + 19c6: 2a00 subi r2, 1 + 19c8: 3a40 cmpnei r2, 0 + 19ca: 0c0b bf 0x19e0 // 19e0 <__memset_fast+0x44> + 19cc: 2500 addi r5, 1 + 19ce: 6d17 mov r4, r5 + 19d0: 3603 movi r6, 3 + 19d2: 6918 and r4, r6 + 19d4: 3c40 cmpnei r4, 0 + 19d6: 0c06 bf 0x19e2 // 19e2 <__memset_fast+0x46> + 19d8: a520 st.b r1, (r5, 0x0) + 19da: 2a00 subi r2, 1 + 19dc: 2500 addi r5, 1 + 19de: 0402 br 0x19e2 // 19e2 <__memset_fast+0x46> + 19e0: 1483 pop r4-r6 + 19e2: 4168 lsli r3, r1, 8 + 19e4: 6c4c or r1, r3 + 19e6: 4170 lsli r3, r1, 16 + 19e8: 6c4c or r1, r3 + 19ea: 3a2f cmplti r2, 16 + 19ec: 0809 bt 0x19fe // 19fe <__memset_fast+0x62> + 19ee: b520 st.w r1, (r5, 0x0) + 19f0: b521 st.w r1, (r5, 0x4) + 19f2: b522 st.w r1, (r5, 0x8) + 19f4: b523 st.w r1, (r5, 0xc) + 19f6: 2a0f subi r2, 16 + 19f8: 250f addi r5, 16 + 19fa: 3a2f cmplti r2, 16 + 19fc: 0ff9 bf 0x19ee // 19ee <__memset_fast+0x52> + 19fe: 3a23 cmplti r2, 4 + 1a00: 0806 bt 0x1a0c // 1a0c <__memset_fast+0x70> + 1a02: 2a03 subi r2, 4 + 1a04: b520 st.w r1, (r5, 0x0) + 1a06: 2503 addi r5, 4 + 1a08: 3a23 cmplti r2, 4 + 1a0a: 0ffc bf 0x1a02 // 1a02 <__memset_fast+0x66> + 1a0c: 3a40 cmpnei r2, 0 + 1a0e: 0fe9 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 1a10: 2a00 subi r2, 1 + 1a12: a520 st.b r1, (r5, 0x0) + 1a14: 3a40 cmpnei r2, 0 + 1a16: 0fe5 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 1a18: 2a00 subi r2, 1 + 1a1a: a521 st.b r1, (r5, 0x1) + 1a1c: 3a40 cmpnei r2, 0 + 1a1e: 0fe1 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 1a20: a522 st.b r1, (r5, 0x2) + 1a22: 1483 pop r4-r6 + +00001a24 <__memcpy_fast>: + 1a24: 14c3 push r4-r6 + 1a26: 6d83 mov r6, r0 + 1a28: 6d07 mov r4, r1 + 1a2a: 6d18 or r4, r6 + 1a2c: 3303 movi r3, 3 + 1a2e: 690c and r4, r3 + 1a30: 3c40 cmpnei r4, 0 + 1a32: 0c0b bf 0x1a48 // 1a48 <__memcpy_fast+0x24> + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c08 bf 0x1a46 // 1a46 <__memcpy_fast+0x22> + 1a38: 8160 ld.b r3, (r1, 0x0) + 1a3a: 2100 addi r1, 1 + 1a3c: 2a00 subi r2, 1 + 1a3e: a660 st.b r3, (r6, 0x0) + 1a40: 2600 addi r6, 1 + 1a42: 3a40 cmpnei r2, 0 + 1a44: 0bfa bt 0x1a38 // 1a38 <__memcpy_fast+0x14> + 1a46: 1483 pop r4-r6 + 1a48: 3a2f cmplti r2, 16 + 1a4a: 080e bt 0x1a66 // 1a66 <__memcpy_fast+0x42> + 1a4c: 91a0 ld.w r5, (r1, 0x0) + 1a4e: 9161 ld.w r3, (r1, 0x4) + 1a50: 9182 ld.w r4, (r1, 0x8) + 1a52: b6a0 st.w r5, (r6, 0x0) + 1a54: 91a3 ld.w r5, (r1, 0xc) + 1a56: b661 st.w r3, (r6, 0x4) + 1a58: b682 st.w r4, (r6, 0x8) + 1a5a: b6a3 st.w r5, (r6, 0xc) + 1a5c: 2a0f subi r2, 16 + 1a5e: 210f addi r1, 16 + 1a60: 260f addi r6, 16 + 1a62: 3a2f cmplti r2, 16 + 1a64: 0ff4 bf 0x1a4c // 1a4c <__memcpy_fast+0x28> + 1a66: 3a23 cmplti r2, 4 + 1a68: 0808 bt 0x1a78 // 1a78 <__memcpy_fast+0x54> + 1a6a: 9160 ld.w r3, (r1, 0x0) + 1a6c: 2a03 subi r2, 4 + 1a6e: 2103 addi r1, 4 + 1a70: b660 st.w r3, (r6, 0x0) + 1a72: 2603 addi r6, 4 + 1a74: 3a23 cmplti r2, 4 + 1a76: 0ffa bf 0x1a6a // 1a6a <__memcpy_fast+0x46> + 1a78: 3a40 cmpnei r2, 0 + 1a7a: 0fe6 bf 0x1a46 // 1a46 <__memcpy_fast+0x22> + 1a7c: 8160 ld.b r3, (r1, 0x0) + 1a7e: 2100 addi r1, 1 + 1a80: 2a00 subi r2, 1 + 1a82: a660 st.b r3, (r6, 0x0) + 1a84: 2600 addi r6, 1 + 1a86: 07f9 br 0x1a78 // 1a78 <__memcpy_fast+0x54> + +Disassembly of section .text.__main: + +00001a88 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1a88: 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 ) { + 1a8a: 1009 lrw r0, 0x20000000 // 1aac <__main+0x24> + 1a8c: 1029 lrw r1, 0xa5ac // 1ab0 <__main+0x28> + 1a8e: 6442 cmpne r0, r1 + 1a90: 0c05 bf 0x1a9a // 1a9a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1a92: 1049 lrw r2, 0x200000b0 // 1ab4 <__main+0x2c> + 1a94: 6082 subu r2, r0 + 1a96: e3ffffc7 bsr 0x1a24 // 1a24 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1a9a: 1048 lrw r2, 0x20000964 // 1ab8 <__main+0x30> + 1a9c: 1008 lrw r0, 0x200000b0 // 1abc <__main+0x34> + 1a9e: 640a cmpne r2, r0 + 1aa0: 0c05 bf 0x1aaa // 1aaa <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1aa2: 6082 subu r2, r0 + 1aa4: 3100 movi r1, 0 + 1aa6: e3ffff7b bsr 0x199c // 199c <__memset_fast> + } + + +} + 1aaa: 1490 pop r15 + 1aac: 20000000 .long 0x20000000 + 1ab0: 0000a5ac .long 0x0000a5ac + 1ab4: 200000b0 .long 0x200000b0 + 1ab8: 20000964 .long 0x20000964 + 1abc: 200000b0 .long 0x200000b0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001ac0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1ac0: 3848 cmpnei r0, 8 + 1ac2: 080a bt 0x1ad6 // 1ad6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1ac4: 107a lrw r3, 0x2000004c // 1b2c + 1ac6: 32ff movi r2, 255 + 1ac8: 9320 ld.w r1, (r3, 0x0) + 1aca: 9160 ld.w r3, (r1, 0x0) + 1acc: 424c lsli r2, r2, 12 + 1ace: 68c9 andn r3, r2 + 1ad0: 3bae bseti r3, 14 + 1ad2: 3bb2 bseti r3, 18 + 1ad4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1ad6: 1077 lrw r3, 0x2000005c // 1b30 + 1ad8: 9360 ld.w r3, (r3, 0x0) + 1ada: 9341 ld.w r2, (r3, 0x4) + 1adc: 6c80 or r2, r0 + 1ade: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1ae0: 9343 ld.w r2, (r3, 0xc) + 1ae2: 6880 and r2, r0 + 1ae4: 3a40 cmpnei r2, 0 + 1ae6: 0ffd bf 0x1ae0 // 1ae0 + switch(ENDIS_X) + 1ae8: 3842 cmpnei r0, 2 + 1aea: 0807 bt 0x1af8 // 1af8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1aec: 3102 movi r1, 2 + 1aee: 9344 ld.w r2, (r3, 0x10) + 1af0: 6884 and r2, r1 + 1af2: 3a40 cmpnei r2, 0 + 1af4: 0ffd bf 0x1aee // 1aee + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1af6: 783c jmp r15 + switch(ENDIS_X) + 1af8: 3802 cmphsi r0, 3 + 1afa: 0809 bt 0x1b0c // 1b0c + 1afc: 3841 cmpnei r0, 1 + 1afe: 0bfc bt 0x1af6 // 1af6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1b00: 3101 movi r1, 1 + 1b02: 9344 ld.w r2, (r3, 0x10) + 1b04: 6884 and r2, r1 + 1b06: 3a40 cmpnei r2, 0 + 1b08: 0ffd bf 0x1b02 // 1b02 + 1b0a: 07f6 br 0x1af6 // 1af6 + switch(ENDIS_X) + 1b0c: 3848 cmpnei r0, 8 + 1b0e: 0807 bt 0x1b1c // 1b1c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1b10: 3108 movi r1, 8 + 1b12: 9344 ld.w r2, (r3, 0x10) + 1b14: 6884 and r2, r1 + 1b16: 3a40 cmpnei r2, 0 + 1b18: 0ffd bf 0x1b12 // 1b12 + 1b1a: 07ee br 0x1af6 // 1af6 + switch(ENDIS_X) + 1b1c: 3850 cmpnei r0, 16 + 1b1e: 0bec bt 0x1af6 // 1af6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1b20: 3110 movi r1, 16 + 1b22: 9344 ld.w r2, (r3, 0x10) + 1b24: 6884 and r2, r1 + 1b26: 3a40 cmpnei r2, 0 + 1b28: 0ffd bf 0x1b22 // 1b22 + 1b2a: 07e6 br 0x1af6 // 1af6 + 1b2c: 2000004c .long 0x2000004c + 1b30: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001b34 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1b34: 106c lrw r3, 0x2000005c // 1b64 + 1b36: 104d lrw r2, 0xffff // 1b68 + 1b38: 9360 ld.w r3, (r3, 0x0) + 1b3a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1b3c: 104c lrw r2, 0xffffff // 1b6c + 1b3e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1b40: 104c lrw r2, 0xd22d0000 // 1b70 + 1b42: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1b44: 104c lrw r2, 0x70ff3bff // 1b74 + 1b46: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1b48: 320a movi r2, 10 + 1b4a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b4c: 102b lrw r1, 0x70c // 1b78 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1b4e: 237f addi r3, 128 + 1b50: 3200 movi r2, 0 + 1b52: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1b54: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b56: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1b58: 1029 lrw r1, 0x3fe // 1b7c + 1b5a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1b5c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1b5e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1b60: b35f st.w r2, (r3, 0x7c) +} + 1b62: 783c jmp r15 + 1b64: 2000005c .long 0x2000005c + 1b68: 0000ffff .long 0x0000ffff + 1b6c: 00ffffff .long 0x00ffffff + 1b70: d22d0000 .long 0xd22d0000 + 1b74: 70ff3bff .long 0x70ff3bff + 1b78: 0000070c .long 0x0000070c + 1b7c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001b80 : +{ + 1b80: 14d0 push r15 + if (NewState != DISABLE) + 1b82: 3840 cmpnei r0, 0 + 1b84: 0c05 bf 0x1b8e // 1b8e + 1b86: 6c07 mov r0, r1 + 1b88: e3ffff9c bsr 0x1ac0 // 1ac0 +} + 1b8c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1b8e: 1068 lrw r3, 0x2000005c // 1bac + 1b90: 9360 ld.w r3, (r3, 0x0) + 1b92: 9342 ld.w r2, (r3, 0x8) + 1b94: 6c84 or r2, r1 + 1b96: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1b98: 9343 ld.w r2, (r3, 0xc) + 1b9a: 6884 and r2, r1 + 1b9c: 3a40 cmpnei r2, 0 + 1b9e: 0bfd bt 0x1b98 // 1b98 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1ba0: 237f addi r3, 128 + 1ba2: 9301 ld.w r0, (r3, 0x4) + 1ba4: 6c40 or r1, r0 + 1ba6: b321 st.w r1, (r3, 0x4) +} + 1ba8: 07f2 br 0x1b8c // 1b8c + 1baa: 0000 bkpt + 1bac: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001bb0 : +//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 ) +{ + 1bb0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1bb2: 3b48 cmpnei r3, 8 + 1bb4: 0828 bt 0x1c04 // 1c04 + { + IFC->CEDR=0X01; //CLKEN + 1bb6: 109d lrw r4, 0x20000060 // 1c28 + 1bb8: 3501 movi r5, 1 + 1bba: 9480 ld.w r4, (r4, 0x0) + 1bbc: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1bbe: 3504 movi r5, 4 + 1bc0: 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)) + 1bc2: 5b83 subi r4, r3, 1 + 1bc4: 3c01 cmphsi r4, 2 + 1bc6: 0c2b bf 0x1c1c // 1c1c + { + 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)) + 1bc8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1bca: 3c04 cmphsi r4, 5 + 1bcc: 0c03 bf 0x1bd2 // 1bd2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1bce: 3b4b cmpnei r3, 11 + 1bd0: 0807 bt 0x1bde // 1bde + { + IFC->CEDR=0X01; //CLKEN + 1bd2: 1076 lrw r3, 0x20000060 // 1c28 + 1bd4: 3401 movi r4, 1 + 1bd6: 9360 ld.w r3, (r3, 0x0) + 1bd8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1bda: 3400 movi r4, 0 + 1bdc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1bde: 1094 lrw r4, 0xd22d0000 // 1c2c + 1be0: 6c10 or r0, r4 + 1be2: 1074 lrw r3, 0x2000005c // 1c30 + 1be4: 6c40 or r1, r0 + 1be6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1be8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1bea: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1bec: 4001 lsli r0, r0, 1 + 1bee: 9324 ld.w r1, (r3, 0x10) + 1bf0: 6840 and r1, r0 + 1bf2: 3940 cmpnei r1, 0 + 1bf4: 0ffd bf 0x1bee // 1bee + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1bf6: 1030 lrw r1, 0xc33c0000 // 1c34 + 1bf8: 6c48 or r1, r2 + 1bfa: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1bfc: 9328 ld.w r1, (r3, 0x20) + 1bfe: 644a cmpne r2, r1 + 1c00: 0bfe bt 0x1bfc // 1bfc +} + 1c02: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1c04: 3b40 cmpnei r3, 0 + 1c06: 0c03 bf 0x1c0c // 1c0c + 1c08: 3b49 cmpnei r3, 9 + 1c0a: 0807 bt 0x1c18 // 1c18 + IFC->CEDR=0X01; //CLKEN + 1c0c: 1087 lrw r4, 0x20000060 // 1c28 + 1c0e: 3501 movi r5, 1 + 1c10: 9480 ld.w r4, (r4, 0x0) + 1c12: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1c14: 3502 movi r5, 2 + 1c16: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1c18: 3b4a cmpnei r3, 10 + 1c1a: 0bd4 bt 0x1bc2 // 1bc2 + IFC->CEDR=0X01; //CLKEN + 1c1c: 1083 lrw r4, 0x20000060 // 1c28 + 1c1e: 3501 movi r5, 1 + 1c20: 9480 ld.w r4, (r4, 0x0) + 1c22: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1c24: b4a5 st.w r5, (r4, 0x14) + 1c26: 07d1 br 0x1bc8 // 1bc8 + 1c28: 20000060 .long 0x20000060 + 1c2c: d22d0000 .long 0xd22d0000 + 1c30: 2000005c .long 0x2000005c + 1c34: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001c38 : +//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) +{ + 1c38: 14d1 push r4, r15 + 1c3a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1c3c: 3110 movi r1, 16 + 1c3e: 3000 movi r0, 0 + 1c40: e3ffffa0 bsr 0x1b80 // 1b80 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1c44: 1066 lrw r3, 0x2000005c // 1c5c + 1c46: 9360 ld.w r3, (r3, 0x0) + 1c48: 9319 ld.w r0, (r3, 0x64) + 1c4a: 3884 bclri r0, 4 + 1c4c: 3885 bclri r0, 5 + 1c4e: 6c10 or r0, r4 + 1c50: b319 st.w r0, (r3, 0x64) + 1c52: 3010 movi r0, 16 + 1c54: e3ffff36 bsr 0x1ac0 // 1ac0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1c58: 1491 pop r4, r15 + 1c5a: 0000 bkpt + 1c5c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001c60 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1c60: 106c lrw r3, 0x2000005c // 1c90 + if(NewState != DISABLE) + 1c62: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c64: 9360 ld.w r3, (r3, 0x0) + 1c66: 237f addi r3, 128 + if(NewState != DISABLE) + 1c68: 0c0a bf 0x1c7c // 1c7c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c6a: 104b lrw r2, 0x78870000 // 1c94 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c6c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c6e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c70: 4125 lsli r1, r1, 5 + 1c72: 934d ld.w r2, (r3, 0x34) + 1c74: 6884 and r2, r1 + 1c76: 3a40 cmpnei r2, 0 + 1c78: 0ffd bf 0x1c72 // 1c72 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1c7a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1c7c: 1047 lrw r2, 0x788755aa // 1c98 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1c7e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1c80: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1c82: 4125 lsli r1, r1, 5 + 1c84: 934d ld.w r2, (r3, 0x34) + 1c86: 6884 and r2, r1 + 1c88: 3a40 cmpnei r2, 0 + 1c8a: 0bfd bt 0x1c84 // 1c84 + 1c8c: 07f7 br 0x1c7a // 1c7a + 1c8e: 0000 bkpt + 1c90: 2000005c .long 0x2000005c + 1c94: 78870000 .long 0x78870000 + 1c98: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001c9c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1c9c: 1064 lrw r3, 0x2000005c // 1cac + 1c9e: 32b4 movi r2, 180 + 1ca0: 9360 ld.w r3, (r3, 0x0) + 1ca2: 237f addi r3, 128 + 1ca4: 4257 lsli r2, r2, 23 + 1ca6: b34e st.w r2, (r3, 0x38) +} + 1ca8: 783c jmp r15 + 1caa: 0000 bkpt + 1cac: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001cb0 : +//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; + 1cb0: 1044 lrw r2, 0x87780000 // 1cc0 + 1cb2: 1065 lrw r3, 0x2000005c // 1cc4 + 1cb4: 6c48 or r1, r2 + 1cb6: 9360 ld.w r3, (r3, 0x0) + 1cb8: 6c04 or r0, r1 + 1cba: 237f addi r3, 128 + 1cbc: b30d st.w r0, (r3, 0x34) +} + 1cbe: 783c jmp r15 + 1cc0: 87780000 .long 0x87780000 + 1cc4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001cc8 : +//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) +{ + 1cc8: 14c3 push r4-r6 + 1cca: 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; + 1ccc: 10c5 lrw r6, 0xb44b0000 // 1ce0 + 1cce: 6d18 or r4, r6 + 1cd0: 6cd0 or r3, r4 + 1cd2: 6c8c or r2, r3 + 1cd4: 6c48 or r1, r2 + 1cd6: 10a4 lrw r5, 0x2000005c // 1ce4 + 1cd8: 6c04 or r0, r1 + 1cda: 95a0 ld.w r5, (r5, 0x0) + 1cdc: b513 st.w r0, (r5, 0x4c) +} + 1cde: 1483 pop r4-r6 + 1ce0: b44b0000 .long 0xb44b0000 + 1ce4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001ce8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1ce8: 1066 lrw r3, 0x2000005c // 1d00 + 1cea: 3180 movi r1, 128 + 1cec: 9360 ld.w r3, (r3, 0x0) + 1cee: 3280 movi r2, 128 + 1cf0: 604c addu r1, r3 + 1cf2: 4244 lsli r2, r2, 4 + 1cf4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1cf6: 935d ld.w r2, (r3, 0x74) + 1cf8: 3aab bseti r2, 11 + 1cfa: b35d st.w r2, (r3, 0x74) +} + 1cfc: 783c jmp r15 + 1cfe: 0000 bkpt + 1d00: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001d04 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1d04: 1066 lrw r3, 0x2000005c // 1d1c + 1d06: 3180 movi r1, 128 + 1d08: 9360 ld.w r3, (r3, 0x0) + 1d0a: 3280 movi r2, 128 + 1d0c: 604c addu r1, r3 + 1d0e: 4241 lsli r2, r2, 1 + 1d10: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1d12: 935d ld.w r2, (r3, 0x74) + 1d14: 3aa8 bseti r2, 8 + 1d16: b35d st.w r2, (r3, 0x74) +} + 1d18: 783c jmp r15 + 1d1a: 0000 bkpt + 1d1c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001d20 : +//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) + 1d20: 3a40 cmpnei r2, 0 + 1d22: 0c04 bf 0x1d2a // 1d2a + 1d24: 3a41 cmpnei r2, 1 + 1d26: 0c0e bf 0x1d42 // 1d42 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1d28: 783c jmp r15 + 1d2a: 106d lrw r3, 0x2000005c // 1d5c + if(NewState != DISABLE) + 1d2c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1d2e: 9360 ld.w r3, (r3, 0x0) + 1d30: 237f addi r3, 128 + 1d32: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 1d34: 0c04 bf 0x1d3c // 1d3c + SYSCON->EXIRT |=EXIPIN; + 1d36: 6c48 or r1, r2 + 1d38: b325 st.w r1, (r3, 0x14) + 1d3a: 07f7 br 0x1d28 // 1d28 + SYSCON->EXIRT &=~EXIPIN; + 1d3c: 6885 andn r2, r1 + 1d3e: b345 st.w r2, (r3, 0x14) + 1d40: 07f4 br 0x1d28 // 1d28 + 1d42: 1067 lrw r3, 0x2000005c // 1d5c + if(NewState != DISABLE) + 1d44: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 1d46: 9360 ld.w r3, (r3, 0x0) + 1d48: 237f addi r3, 128 + 1d4a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 1d4c: 0c04 bf 0x1d54 // 1d54 + SYSCON->EXIFT |=EXIPIN; + 1d4e: 6c48 or r1, r2 + 1d50: b326 st.w r1, (r3, 0x18) + 1d52: 07eb br 0x1d28 // 1d28 + SYSCON->EXIFT &=~EXIPIN; + 1d54: 6885 andn r2, r1 + 1d56: b346 st.w r2, (r3, 0x18) +} + 1d58: 07e8 br 0x1d28 // 1d28 + 1d5a: 0000 bkpt + 1d5c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00001d60 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d60: 106b lrw r3, 0x2000005c // 1d8c + 1d62: 104c lrw r2, 0x3fff // 1d90 + 1d64: 9360 ld.w r3, (r3, 0x0) + 1d66: 237f addi r3, 128 + if(NewState != DISABLE) + 1d68: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d6a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 1d6c: 0c0c bf 0x1d84 // 1d84 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 1d6e: 9347 ld.w r2, (r3, 0x1c) + 1d70: 6c84 or r2, r1 + 1d72: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 1d74: 9349 ld.w r2, (r3, 0x24) + 1d76: 6884 and r2, r1 + 1d78: 3a40 cmpnei r2, 0 + 1d7a: 0ffd bf 0x1d74 // 1d74 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 1d7c: 934b ld.w r2, (r3, 0x2c) + 1d7e: 6c48 or r1, r2 + 1d80: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 1d82: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 1d84: 9348 ld.w r2, (r3, 0x20) + 1d86: 6c48 or r1, r2 + 1d88: b328 st.w r1, (r3, 0x20) +} + 1d8a: 07fc br 0x1d82 // 1d82 + 1d8c: 2000005c .long 0x2000005c + 1d90: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00001d94 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 1d94: b02b st.w r1, (r0, 0x2c) +} + 1d96: 783c jmp r15 + +Disassembly of section .text.EXI3_Int_Enable: + +00001d98 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 1d98: 3380 movi r3, 128 + 1d9a: 436f lsli r3, r3, 15 + 1d9c: 1042 lrw r2, 0xe000e100 // 1da4 + 1d9e: b260 st.w r3, (r2, 0x0) +} + 1da0: 783c jmp r15 + 1da2: 0000 bkpt + 1da4: e000e100 .long 0xe000e100 + +Disassembly of section .text.EXI4_Int_Enable: + +00001da8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 1da8: 3380 movi r3, 128 + 1daa: 4370 lsli r3, r3, 16 + 1dac: 1042 lrw r2, 0xe000e100 // 1db4 + 1dae: b260 st.w r3, (r2, 0x0) +} + 1db0: 783c jmp r15 + 1db2: 0000 bkpt + 1db4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00001db8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1db8: 3202 movi r2, 2 + 1dba: 1062 lrw r3, 0xe000e100 // 1dc0 + 1dbc: b340 st.w r2, (r3, 0x0) +} + 1dbe: 783c jmp r15 + 1dc0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00001dc4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 1dc4: 3202 movi r2, 2 + 1dc6: 1062 lrw r3, 0xe000e180 // 1dcc + 1dc8: b340 st.w r2, (r3, 0x0) +} + 1dca: 783c jmp r15 + 1dcc: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001dd0 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1dd0: 1066 lrw r3, 0xe000e400 // 1de8 + 1dd2: 1047 lrw r2, 0xc0c0c0c0 // 1dec + 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 + 1dd4: 1027 lrw r1, 0xc0c000c0 // 1df0 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1dd6: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1dd8: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1dda: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1ddc: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1dde: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1de0: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1de2: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1de4: b347 st.w r2, (r3, 0x1c) +} + 1de6: 783c jmp r15 + 1de8: e000e400 .long 0xe000e400 + 1dec: c0c0c0c0 .long 0xc0c0c0c0 + 1df0: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001df4 : +//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) +{ + 1df4: 14c1 push r4 + 1df6: 4862 lsri r3, r0, 2 + 1df8: 4342 lsli r2, r3, 2 + 1dfa: 106a lrw r3, 0x20000064 // 1e20 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1dfc: 3403 movi r4, 3 + 1dfe: 9360 ld.w r3, (r3, 0x0) + 1e00: 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)); + 1e12: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1e16: 7040 lsl r1, r0 + 1e18: 6c48 or r1, r2 + 1e1a: b320 st.w r1, (r3, 0x0) +} + 1e1c: 1481 pop r4 + 1e1e: 0000 bkpt + 1e20: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00001e24 : +//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) +{ + 1e24: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e26: 3907 cmphsi r1, 8 +{ + 1e28: 6d03 mov r4, r0 + if(PinNum<8) + 1e2a: 0830 bt 0x1e8a // 1e8a + { + switch (PinNum) + 1e2c: 5903 subi r0, r1, 1 + 1e2e: 3806 cmphsi r0, 7 + 1e30: 0827 bt 0x1e7e // 1e7e + 1e32: e3fff765 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1e36: 1004 .short 0x1004 + 1e38: 1d1a1613 .long 0x1d1a1613 + 1e3c: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e3e: 3300 movi r3, 0 + 1e40: 3104 movi r1, 4 + 1e42: 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) + 1e44: 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< + 1e5a: 07f5 br 0x1e44 // 1e44 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e5c: 310c movi r1, 12 + 1e5e: 1166 lrw r3, 0xffff0fff // 1ef4 + 1e60: 07f2 br 0x1e44 // 1e44 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e62: 3110 movi r1, 16 + 1e64: 1165 lrw r3, 0xfff10000 // 1ef8 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e66: 2b00 subi r3, 1 + 1e68: 07ee br 0x1e44 // 1e44 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e6a: 3114 movi r1, 20 + 1e6c: 1164 lrw r3, 0xff100000 // 1efc + 1e6e: 07fc br 0x1e66 // 1e66 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e70: 33f1 movi r3, 241 + 1e72: 3118 movi r1, 24 + 1e74: 4378 lsli r3, r3, 24 + 1e76: 07f8 br 0x1e66 // 1e66 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e78: 311c movi r1, 28 + 1e7a: 1162 lrw r3, 0xfffffff // 1f00 + 1e7c: 07e4 br 0x1e44 // 1e44 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1e7e: 3300 movi r3, 0 + 1e80: 3100 movi r1, 0 + 1e82: 2b0f subi r3, 16 + 1e84: 07e0 br 0x1e44 // 1e44 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1e8a: 390f cmphsi r1, 16 + 1e8c: 0be4 bt 0x1e54 // 1e54 + switch (PinNum) + 1e8e: 2908 subi r1, 9 + 1e90: 3906 cmphsi r1, 7 + 1e92: 6c07 mov r0, r1 + 1e94: 0827 bt 0x1ee2 // 1ee2 + 1e96: e3fff733 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1e9a: 1004 .short 0x1004 + 1e9c: 1d1a1613 .long 0x1d1a1613 + 1ea0: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1ea2: 3300 movi r3, 0 + 1ea4: 3104 movi r1, 4 + 1ea6: 2bf0 subi r3, 241 + if (Dir) + 1ea8: 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; + 1eba: 3108 movi r1, 8 + 1ebc: 106d lrw r3, 0xfffff0ff // 1ef0 + 1ebe: 07f5 br 0x1ea8 // 1ea8 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1ec0: 310c movi r1, 12 + 1ec2: 106d lrw r3, 0xffff0fff // 1ef4 + 1ec4: 07f2 br 0x1ea8 // 1ea8 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ec6: 3110 movi r1, 16 + 1ec8: 106c lrw r3, 0xfff10000 // 1ef8 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1eca: 2b00 subi r3, 1 + 1ecc: 07ee br 0x1ea8 // 1ea8 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1ece: 3114 movi r1, 20 + 1ed0: 106b lrw r3, 0xff100000 // 1efc + 1ed2: 07fc br 0x1eca // 1eca + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ed4: 33f1 movi r3, 241 + 1ed6: 3118 movi r1, 24 + 1ed8: 4378 lsli r3, r3, 24 + 1eda: 07f8 br 0x1eca // 1eca + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1edc: 311c movi r1, 28 + 1ede: 1069 lrw r3, 0xfffffff // 1f00 + 1ee0: 07e4 br 0x1ea8 // 1ea8 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1ee2: 3300 movi r3, 0 + 1ee4: 3100 movi r1, 0 + 1ee6: 2b0f subi r3, 16 + 1ee8: 07e0 br 0x1ea8 // 1ea8 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1eee: 0000 bkpt + 1ef0: fffff0ff .long 0xfffff0ff + 1ef4: ffff0fff .long 0xffff0fff + 1ef8: fff10000 .long 0xfff10000 + 1efc: ff100000 .long 0xff100000 + 1f00: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f04 : +//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)); + 1f04: 4121 lsli r1, r1, 1 + 1f06: 3203 movi r2, 3 + 1f08: 9068 ld.w r3, (r0, 0x20) + 1f0a: 7084 lsl r2, r1 + 1f0c: 68c9 andn r3, r2 + 1f0e: 3201 movi r2, 1 + 1f10: 7084 lsl r2, r1 + 1f12: 6cc8 or r3, r2 + 1f14: b068 st.w r3, (r0, 0x20) +} + 1f16: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f18 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f18: 4121 lsli r1, r1, 1 + 1f1a: 3301 movi r3, 1 + 1f1c: 9049 ld.w r2, (r0, 0x24) + 1f1e: 70c4 lsl r3, r1 + 1f20: 6cc8 or r3, r2 + 1f22: b069 st.w r3, (r0, 0x24) +} + 1f24: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f28 : +//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) +{ + 1f28: 14c1 push r4 + 1f2a: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f2c: 3a0f cmphsi r2, 16 + 1f2e: 084f bt 0x1fcc // 1fcc + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f30: 6ccb mov r3, r2 + 1f32: 3b83 bclri r3, 3 + 1f34: 3b40 cmpnei r3, 0 + 1f36: 0813 bt 0x1f5c // 1f5c + { + R_data_temp=0xfffffff0; + 1f38: 2b0f subi r3, 16 + 1f3a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f3c: 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) + 1f3e: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f40: dc6e0003 st.b r3, (r14, 0x3) + 1f44: 1176 lrw r3, 0x20000044 // 201c + if(Selete_EXI_x<8) + 1f46: 0c38 bf 0x1fb6 // 1fb6 + { + 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)) + 1f5c: 3b41 cmpnei r3, 1 + 1f5e: 0806 bt 0x1f6a // 1f6a + R_data_temp=0xffffff0f; + 1f60: 3300 movi r3, 0 + 1f62: 2bf0 subi r3, 241 + 1f64: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f66: 3304 movi r3, 4 + 1f68: 07eb br 0x1f3e // 1f3e + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f6a: 3b42 cmpnei r3, 2 + 1f6c: 0805 bt 0x1f76 // 1f76 + R_data_temp=0xfffff0ff; + 1f6e: 116d lrw r3, 0xfffff0ff // 2020 + 1f70: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f72: 3308 movi r3, 8 + 1f74: 07e5 br 0x1f3e // 1f3e + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f76: 3b43 cmpnei r3, 3 + 1f78: 0805 bt 0x1f82 // 1f82 + R_data_temp=0xffff0fff; + 1f7a: 116b lrw r3, 0xffff0fff // 2024 + 1f7c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f7e: 330c movi r3, 12 + 1f80: 07df br 0x1f3e // 1f3e + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f82: 3b44 cmpnei r3, 4 + 1f84: 0806 bt 0x1f90 // 1f90 + R_data_temp=0xfff0ffff; + 1f86: 1169 lrw r3, 0xfff10000 // 2028 + 1f88: 2b00 subi r3, 1 + 1f8a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1f8c: 3310 movi r3, 16 + 1f8e: 07d8 br 0x1f3e // 1f3e + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1f90: 3b45 cmpnei r3, 5 + 1f92: 0806 bt 0x1f9e // 1f9e + R_data_temp=0xff0fffff; + 1f94: 1166 lrw r3, 0xff100000 // 202c + 1f96: 2b00 subi r3, 1 + 1f98: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1f9a: 3314 movi r3, 20 + 1f9c: 07d1 br 0x1f3e // 1f3e + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1f9e: 3b46 cmpnei r3, 6 + 1fa0: 0807 bt 0x1fae // 1fae + R_data_temp=0xf0ffffff; + 1fa2: 33f1 movi r3, 241 + 1fa4: 4378 lsli r3, r3, 24 + 1fa6: 2b00 subi r3, 1 + 1fa8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1faa: 3318 movi r3, 24 + 1fac: 07c9 br 0x1f3e // 1f3e + R_data_temp=0x0fffffff; + 1fae: 1161 lrw r3, 0xfffffff // 2030 + 1fb0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1fb2: 331c movi r3, 28 + 1fb4: 07c5 br 0x1f3e // 1f3e + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fc8: 1402 addi r14, r14, 8 + 1fca: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fcc: 3a13 cmphsi r2, 20 + 1fce: 0bfd bt 0x1fc8 // 1fc8 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fd0: 3840 cmpnei r0, 0 + 1fd2: 0814 bt 0x1ffa // 1ffa + 1fd4: 3300 movi r3, 0 + 1fd6: 2b0f subi r3, 16 + 1fd8: 60c8 addu r3, r2 + 1fda: 3b01 cmphsi r3, 2 + 1fdc: 0bf6 bt 0x1fc8 // 1fc8 + if(Selete_EXI_x==16) + 1fde: 3a50 cmpnei r2, 16 + 1fe0: 106f lrw r3, 0x20000044 // 201c + 1fe2: 0806 bt 0x1fee // 1fee + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 1fe4: 9340 ld.w r2, (r3, 0x0) + 1fe6: 9262 ld.w r3, (r2, 0x8) + 1fe8: 6c4c or r1, r3 + 1fea: b222 st.w r1, (r2, 0x8) + 1fec: 07ee br 0x1fc8 // 1fc8 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 1fee: 9360 ld.w r3, (r3, 0x0) + 1ff0: 9342 ld.w r2, (r3, 0x8) + 1ff2: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 1ff4: 6c48 or r1, r2 + 1ff6: b322 st.w r1, (r3, 0x8) +} + 1ff8: 07e8 br 0x1fc8 // 1fc8 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 1ffa: 3842 cmpnei r0, 2 + 1ffc: 0be6 bt 0x1fc8 // 1fc8 + 1ffe: 3300 movi r3, 0 + 2000: 2b11 subi r3, 18 + 2002: 60c8 addu r3, r2 + 2004: 3b01 cmphsi r3, 2 + 2006: 0be1 bt 0x1fc8 // 1fc8 + 2008: 1065 lrw r3, 0x20000044 // 201c + if(Selete_EXI_x==18) + 200a: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 200c: 9360 ld.w r3, (r3, 0x0) + 200e: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 2010: 0803 bt 0x2016 // 2016 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2012: 4128 lsli r1, r1, 8 + 2014: 07f0 br 0x1ff4 // 1ff4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2016: 412c lsli r1, r1, 12 + 2018: 07ee br 0x1ff4 // 1ff4 + 201a: 0000 bkpt + 201c: 20000044 .long 0x20000044 + 2020: fffff0ff .long 0xfffff0ff + 2024: ffff0fff .long 0xffff0fff + 2028: fff10000 .long 0xfff10000 + 202c: ff100000 .long 0xff100000 + 2030: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00002034 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2034: 14d0 push r15 + switch (EXI_IO) + 2036: 380f cmphsi r0, 16 + 2038: 0812 bt 0x205c // 205c + 203a: 117d lrw r3, 0x2000004c // 212c + 203c: e3fff660 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2040: 1d150f08 .long 0x1d150f08 + 2044: 39322b24 .long 0x39322b24 + 2048: 544c463f .long 0x544c463f + 204c: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2050: 9340 ld.w r2, (r3, 0x0) + 2052: 9260 ld.w r3, (r2, 0x0) + 2054: 310f movi r1, 15 + 2056: 68c5 andn r3, r1 + 2058: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 205a: 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; + } +} + 205c: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 205e: 9340 ld.w r2, (r3, 0x0) + 2060: 9260 ld.w r3, (r2, 0x0) + 2062: 31f0 movi r1, 240 + 2064: 68c5 andn r3, r1 + 2066: 3ba4 bseti r3, 4 + 2068: 07f9 br 0x205a // 205a + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 206a: 9320 ld.w r1, (r3, 0x0) + 206c: 32f0 movi r2, 240 + 206e: 9160 ld.w r3, (r1, 0x0) + 2070: 4244 lsli r2, r2, 4 + 2072: 68c9 andn r3, r2 + 2074: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 2076: b160 st.w r3, (r1, 0x0) + 2078: 07f2 br 0x205c // 205c + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 207a: 9320 ld.w r1, (r3, 0x0) + 207c: 32f0 movi r2, 240 + 207e: 9160 ld.w r3, (r1, 0x0) + 2080: 4248 lsli r2, r2, 8 + 2082: 68c9 andn r3, r2 + 2084: 3bac bseti r3, 12 + 2086: 07f8 br 0x2076 // 2076 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 2088: 9320 ld.w r1, (r3, 0x0) + 208a: 32f0 movi r2, 240 + 208c: 9160 ld.w r3, (r1, 0x0) + 208e: 424c lsli r2, r2, 12 + 2090: 68c9 andn r3, r2 + 2092: 3bb0 bseti r3, 16 + 2094: 07f1 br 0x2076 // 2076 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2096: 9320 ld.w r1, (r3, 0x0) + 2098: 32f0 movi r2, 240 + 209a: 9160 ld.w r3, (r1, 0x0) + 209c: 4250 lsli r2, r2, 16 + 209e: 68c9 andn r3, r2 + 20a0: 3bb4 bseti r3, 20 + 20a2: 07ea br 0x2076 // 2076 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 20a4: 9320 ld.w r1, (r3, 0x0) + 20a6: 32f0 movi r2, 240 + 20a8: 9160 ld.w r3, (r1, 0x0) + 20aa: 4254 lsli r2, r2, 20 + 20ac: 68c9 andn r3, r2 + 20ae: 3bb8 bseti r3, 24 + 20b0: 07e3 br 0x2076 // 2076 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 20b2: 9340 ld.w r2, (r3, 0x0) + 20b4: 9260 ld.w r3, (r2, 0x0) + 20b6: 4364 lsli r3, r3, 4 + 20b8: 4b64 lsri r3, r3, 4 + 20ba: 3bbc bseti r3, 28 + 20bc: 07cf br 0x205a // 205a + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 20be: 9340 ld.w r2, (r3, 0x0) + 20c0: 9261 ld.w r3, (r2, 0x4) + 20c2: 310f movi r1, 15 + 20c4: 68c5 andn r3, r1 + 20c6: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 20c8: b261 st.w r3, (r2, 0x4) +} + 20ca: 07c9 br 0x205c // 205c + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 20cc: 9340 ld.w r2, (r3, 0x0) + 20ce: 9261 ld.w r3, (r2, 0x4) + 20d0: 31f0 movi r1, 240 + 20d2: 68c5 andn r3, r1 + 20d4: 3ba4 bseti r3, 4 + 20d6: 07f9 br 0x20c8 // 20c8 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 20d8: 9320 ld.w r1, (r3, 0x0) + 20da: 32f0 movi r2, 240 + 20dc: 9161 ld.w r3, (r1, 0x4) + 20de: 4244 lsli r2, r2, 4 + 20e0: 68c9 andn r3, r2 + 20e2: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 20e4: b161 st.w r3, (r1, 0x4) + 20e6: 07bb br 0x205c // 205c + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 20e8: 9320 ld.w r1, (r3, 0x0) + 20ea: 32f0 movi r2, 240 + 20ec: 9161 ld.w r3, (r1, 0x4) + 20ee: 4248 lsli r2, r2, 8 + 20f0: 68c9 andn r3, r2 + 20f2: 3bac bseti r3, 12 + 20f4: 07f8 br 0x20e4 // 20e4 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 20f6: 9320 ld.w r1, (r3, 0x0) + 20f8: 32f0 movi r2, 240 + 20fa: 9161 ld.w r3, (r1, 0x4) + 20fc: 424c lsli r2, r2, 12 + 20fe: 68c9 andn r3, r2 + 2100: 3bb0 bseti r3, 16 + 2102: 07f1 br 0x20e4 // 20e4 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 2104: 9320 ld.w r1, (r3, 0x0) + 2106: 32f0 movi r2, 240 + 2108: 9161 ld.w r3, (r1, 0x4) + 210a: 4250 lsli r2, r2, 16 + 210c: 68c9 andn r3, r2 + 210e: 3bb4 bseti r3, 20 + 2110: 07ea br 0x20e4 // 20e4 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2112: 9320 ld.w r1, (r3, 0x0) + 2114: 32f0 movi r2, 240 + 2116: 9161 ld.w r3, (r1, 0x4) + 2118: 4254 lsli r2, r2, 20 + 211a: 68c9 andn r3, r2 + 211c: 3bb8 bseti r3, 24 + 211e: 07e3 br 0x20e4 // 20e4 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2120: 9340 ld.w r2, (r3, 0x0) + 2122: 9261 ld.w r3, (r2, 0x4) + 2124: 4364 lsli r3, r3, 4 + 2126: 4b64 lsri r3, r3, 4 + 2128: 3bbc bseti r3, 28 + 212a: 07cf br 0x20c8 // 20c8 + 212c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIOB0_EXI_Init: + +00002130 : +void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2130: 14d0 push r15 + switch (EXI_IO) + 2132: 3805 cmphsi r0, 6 + 2134: 080d bt 0x214e // 214e + 2136: 1079 lrw r3, 0x20000048 // 2198 + 2138: e3fff5e2 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 213c: 18100a03 .long 0x18100a03 + 2140: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2142: 9340 ld.w r2, (r3, 0x0) + 2144: 9260 ld.w r3, (r2, 0x0) + 2146: 310f movi r1, 15 + 2148: 68c5 andn r3, r1 + 214a: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 214c: b260 st.w r3, (r2, 0x0) + 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; + } +} + 214e: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2150: 9340 ld.w r2, (r3, 0x0) + 2152: 9260 ld.w r3, (r2, 0x0) + 2154: 31f0 movi r1, 240 + 2156: 68c5 andn r3, r1 + 2158: 3ba4 bseti r3, 4 + 215a: 07f9 br 0x214c // 214c + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 215c: 9320 ld.w r1, (r3, 0x0) + 215e: 32f0 movi r2, 240 + 2160: 9160 ld.w r3, (r1, 0x0) + 2162: 4244 lsli r2, r2, 4 + 2164: 68c9 andn r3, r2 + 2166: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2168: b160 st.w r3, (r1, 0x0) +} + 216a: 07f2 br 0x214e // 214e + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 216c: 9320 ld.w r1, (r3, 0x0) + 216e: 32f0 movi r2, 240 + 2170: 9160 ld.w r3, (r1, 0x0) + 2172: 4248 lsli r2, r2, 8 + 2174: 68c9 andn r3, r2 + 2176: 3bac bseti r3, 12 + 2178: 07f8 br 0x2168 // 2168 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 217a: 9320 ld.w r1, (r3, 0x0) + 217c: 32f0 movi r2, 240 + 217e: 9160 ld.w r3, (r1, 0x0) + 2180: 424c lsli r2, r2, 12 + 2182: 68c9 andn r3, r2 + 2184: 3bb0 bseti r3, 16 + 2186: 07f1 br 0x2168 // 2168 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2188: 9320 ld.w r1, (r3, 0x0) + 218a: 32f0 movi r2, 240 + 218c: 9160 ld.w r3, (r1, 0x0) + 218e: 4250 lsli r2, r2, 16 + 2190: 68c9 andn r3, r2 + 2192: 3bb4 bseti r3, 20 + 2194: 07ea br 0x2168 // 2168 + 2196: 0000 bkpt + 2198: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +0000219c : +//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; + 21ac: 9045 ld.w r2, (r0, 0x14) + 21ae: 3301 movi r3, 1 + 21b0: 7085 lsr r2, r1 + 21b2: 688c and r2, r3 + { + if (dat==1) + 21b4: 3a40 cmpnei r2, 0 + 21b6: 70c4 lsl r3, r1 + 21b8: 0c03 bf 0x21be // 21be + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000021c2 : +/*************************************************************/ +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); + 21d4: 1064 lrw r3, 0x20000014 // 21e4 + 21d6: 9340 ld.w r2, (r3, 0x0) + 21d8: 9261 ld.w r3, (r2, 0x4) + 21da: 3bac bseti r3, 12 + 21dc: 3bae bseti r3, 14 + 21de: b261 st.w r3, (r2, 0x4) +} + 21e0: 783c jmp r15 + 21e2: 0000 bkpt + 21e4: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +000021e8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 21e8: 1063 lrw r3, 0x20000010 // 21f4 + 21ea: 9360 ld.w r3, (r3, 0x0) + 21ec: 9340 ld.w r2, (r3, 0x0) + 21ee: 6c08 or r0, r2 + 21f0: b300 st.w r0, (r3, 0x0) +} + 21f2: 783c jmp r15 + 21f4: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +000021f8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 21f8: 3300 movi r3, 0 + 21fa: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 21fc: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 21fe: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2200: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2202: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2204: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2206: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2208: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 220a: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 220c: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 220e: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 2210: b06d st.w r3, (r0, 0x34) +} + 2212: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002214 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2214: 9060 ld.w r3, (r0, 0x0) + 2216: 3ba0 bseti r3, 0 + 2218: b060 st.w r3, (r0, 0x0) +} + 221a: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +0000221c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 221c: 9060 ld.w r3, (r0, 0x0) + 221e: 3bac bseti r3, 12 + 2220: 3bae bseti r3, 14 + 2222: b060 st.w r3, (r0, 0x0) +} + 2224: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002226 : +//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) +{ + 2226: 14c3 push r4-r6 + 2228: 98a4 ld.w r5, (r14, 0x10) + 222a: 6d97 mov r6, r5 + 222c: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 222e: 6d18 or r4, r6 + 2230: 6cd0 or r3, r4 + 2232: 90a1 ld.w r5, (r0, 0x4) + 2234: 6c4c or r1, r3 + 2236: 6c54 or r1, r5 + 2238: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 223a: b042 st.w r2, (r0, 0x8) +} + 223c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000223e : +//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) +{ + 223e: 14c4 push r4-r7 + 2240: 1421 subi r14, r14, 4 + 2242: 9885 ld.w r4, (r14, 0x14) + 2244: 6dd3 mov r7, r4 + 2246: 9886 ld.w r4, (r14, 0x18) + 2248: b880 st.w r4, (r14, 0x0) + 224a: 9887 ld.w r4, (r14, 0x1c) + 224c: 6d93 mov r6, r4 + 224e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 2250: 6d58 or r5, r6 + 2252: 98c0 ld.w r6, (r14, 0x0) + 2254: 6d58 or r5, r6 + 2256: 6d5c or r5, r7 + 2258: 6cd4 or r3, r5 + 225a: 6c8c or r2, r3 + 225c: 9081 ld.w r4, (r0, 0x4) + 225e: 6c48 or r1, r2 + 2260: 6d04 or r4, r1 + 2262: 6d9f mov r6, r7 + 2264: b081 st.w r4, (r0, 0x4) +} + 2266: 1401 addi r14, r14, 4 + 2268: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000226a : +//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; + 226a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 226c: b044 st.w r2, (r0, 0x10) +} + 226e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00002270 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 2270: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 2272: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2274: 0c04 bf 0x227c // 227c + BTx->IMCR |= BT_IMSCR_X; + 2276: 6c8c or r2, r3 + 2278: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 227a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 227c: 68c9 andn r3, r2 + 227e: b06b st.w r3, (r0, 0x2c) +} + 2280: 07fd br 0x227a // 227a + +Disassembly of section .text.BT1_INT_ENABLE: + +00002284 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 2284: 3380 movi r3, 128 + 2286: 4376 lsli r3, r3, 22 + 2288: 1042 lrw r2, 0xe000e100 // 2290 + 228a: b260 st.w r3, (r2, 0x0) +} + 228c: 783c jmp r15 + 228e: 0000 bkpt + 2290: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00002294 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 2294: 1067 lrw r3, 0x2000002c // 22b0 + 2296: 3200 movi r2, 0 + 2298: 9360 ld.w r3, (r3, 0x0) + 229a: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 229c: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 229e: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 22a0: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 22a2: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 22a4: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 22a6: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 22a8: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 22aa: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 22ac: b34b st.w r2, (r3, 0x2c) +} + 22ae: 783c jmp r15 + 22b0: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +000022b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 22b4: 3840 cmpnei r0, 0 + 22b6: 080a bt 0x22ca // 22ca + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 22b8: 1075 lrw r3, 0x2000004c // 230c + 22ba: 32f0 movi r2, 240 + 22bc: 9320 ld.w r1, (r3, 0x0) + 22be: 9160 ld.w r3, (r1, 0x0) + 22c0: 4244 lsli r2, r2, 4 + 22c2: 68c9 andn r3, r2 + 22c4: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 22c6: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 22c8: 783c jmp r15 + if(IOGx==SIO_PA03) + 22ca: 3841 cmpnei r0, 1 + 22cc: 0809 bt 0x22de // 22de + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 22ce: 1070 lrw r3, 0x2000004c // 230c + 22d0: 32f0 movi r2, 240 + 22d2: 9320 ld.w r1, (r3, 0x0) + 22d4: 9160 ld.w r3, (r1, 0x0) + 22d6: 4248 lsli r2, r2, 8 + 22d8: 68c9 andn r3, r2 + 22da: 3baf bseti r3, 15 + 22dc: 07f5 br 0x22c6 // 22c6 + if(IOGx==SIO_PA012) + 22de: 3842 cmpnei r0, 2 + 22e0: 080a bt 0x22f4 // 22f4 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 22e2: 106b lrw r3, 0x2000004c // 230c + 22e4: 32f0 movi r2, 240 + 22e6: 9320 ld.w r1, (r3, 0x0) + 22e8: 9161 ld.w r3, (r1, 0x4) + 22ea: 424c lsli r2, r2, 12 + 22ec: 68c9 andn r3, r2 + 22ee: 3bb3 bseti r3, 19 + 22f0: b161 st.w r3, (r1, 0x4) + 22f2: 07eb br 0x22c8 // 22c8 + if(IOGx==SIO_PB01) + 22f4: 3843 cmpnei r0, 3 + 22f6: 0be9 bt 0x22c8 // 22c8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 22f8: 1066 lrw r3, 0x20000048 // 2310 + 22fa: 31f0 movi r1, 240 + 22fc: 9340 ld.w r2, (r3, 0x0) + 22fe: 9260 ld.w r3, (r2, 0x0) + 2300: 68c5 andn r3, r1 + 2302: 3170 movi r1, 112 + 2304: 6cc4 or r3, r1 + 2306: b260 st.w r3, (r2, 0x0) +} + 2308: 07e0 br 0x22c8 // 22c8 + 230a: 0000 bkpt + 230c: 2000004c .long 0x2000004c + 2310: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +00002314 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 2314: 4130 lsli r1, r1, 16 + 2316: 1063 lrw r3, 0x2000002c // 2320 + 2318: 6c04 or r0, r1 + 231a: 9360 ld.w r3, (r3, 0x0) + 231c: b300 st.w r0, (r3, 0x0) + +} + 231e: 783c jmp r15 + 2320: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +00002324 : +//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) +{ + 2324: 14c4 push r4-r7 + 2326: 1423 subi r14, r14, 12 + 2328: 9889 ld.w r4, (r14, 0x24) + 232a: b881 st.w r4, (r14, 0x4) + 232c: 988a ld.w r4, (r14, 0x28) + 232e: b882 st.w r4, (r14, 0x8) + 2330: 1c08 addi r4, r14, 32 + 2332: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2334: 4368 lsli r3, r3, 8 +{ + 2336: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2338: 6cc0 or r3, r0 +{ + 233a: 1c0b addi r4, r14, 44 + 233c: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 233e: 6cc4 or r3, r1 +{ + 2340: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2342: 4244 lsli r2, r2, 4 + 2344: 10eb lrw r7, 0x2000002c // 2370 + 2346: 6cc8 or r3, r2 + 2348: 97e0 ld.w r7, (r7, 0x0) +{ + 234a: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 234c: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 234e: 4498 lsli r4, r4, 24 + 2350: 9861 ld.w r3, (r14, 0x4) + 2352: 6d0c or r4, r3 + 2354: 9862 ld.w r3, (r14, 0x8) + 2356: 6d0c or r4, r3 +{ + 2358: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 235c: 9860 ld.w r3, (r14, 0x0) + 235e: 46d0 lsli r6, r6, 16 + 2360: 6d90 or r6, r4 + 2362: 45a2 lsli r5, r5, 2 + 2364: 4385 lsli r4, r3, 5 + 2366: 6d50 or r5, r4 + 2368: 6d58 or r5, r6 + 236a: b7a2 st.w r5, (r7, 0x8) +} + 236c: 1403 addi r14, r14, 12 + 236e: 1484 pop r4-r7 + 2370: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +00002374 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 2374: 1065 lrw r3, 0x20000040 // 2388 + 2376: 3200 movi r2, 0 + 2378: 9360 ld.w r3, (r3, 0x0) + 237a: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 237c: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 237e: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 2380: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 2382: b344 st.w r2, (r3, 0x10) +} + 2384: 783c jmp r15 + 2386: 0000 bkpt + 2388: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +0000238c : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 238c: 1065 lrw r3, 0x2000003c // 23a0 + 238e: 3200 movi r2, 0 + 2390: 9360 ld.w r3, (r3, 0x0) + 2392: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 2394: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 2396: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 2398: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 239a: b344 st.w r2, (r3, 0x10) +} + 239c: 783c jmp r15 + 239e: 0000 bkpt + 23a0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000023a4 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 23a4: 1065 lrw r3, 0x20000038 // 23b8 + 23a6: 3200 movi r2, 0 + 23a8: 9360 ld.w r3, (r3, 0x0) + 23aa: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 23ac: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 23ae: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 23b0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 23b2: b344 st.w r2, (r3, 0x10) +} + 23b4: 783c jmp r15 + 23b6: 0000 bkpt + 23b8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000023bc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 23bc: 1065 lrw r3, 0x20000040 // 23d0 + 23be: 320f movi r2, 15 + 23c0: 9360 ld.w r3, (r3, 0x0) + 23c2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 23c4: 3380 movi r3, 128 + 23c6: 4366 lsli r3, r3, 6 + 23c8: 1043 lrw r2, 0xe000e100 // 23d4 + 23ca: b260 st.w r3, (r2, 0x0) +} + 23cc: 783c jmp r15 + 23ce: 0000 bkpt + 23d0: 20000040 .long 0x20000040 + 23d4: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +000023d8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 23d8: 1065 lrw r3, 0x20000038 // 23ec + 23da: 320f movi r2, 15 + 23dc: 9360 ld.w r3, (r3, 0x0) + 23de: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 23e0: 3380 movi r3, 128 + 23e2: 4368 lsli r3, r3, 8 + 23e4: 1043 lrw r2, 0xe000e100 // 23f0 + 23e6: b260 st.w r3, (r2, 0x0) +} + 23e8: 783c jmp r15 + 23ea: 0000 bkpt + 23ec: 20000038 .long 0x20000038 + 23f0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +000023f4 : +//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) + 23f4: 3840 cmpnei r0, 0 + 23f6: 0821 bt 0x2438 // 2438 + { + if(UART_IO_G==0) + 23f8: 3940 cmpnei r1, 0 + 23fa: 080a bt 0x240e // 240e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 23fc: 1177 lrw r3, 0x2000004c // 24d8 + 23fe: 31ff movi r1, 255 + 2400: 9340 ld.w r2, (r3, 0x0) + 2402: 9260 ld.w r3, (r2, 0x0) + 2404: 68c5 andn r3, r1 + 2406: 3ba2 bseti r3, 2 + 2408: 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 + 240a: b260 st.w r3, (r2, 0x0) + 240c: 0415 br 0x2436 // 2436 + else if(UART_IO_G==1) + 240e: 3941 cmpnei r1, 1 + 2410: 0813 bt 0x2436 // 2436 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2412: 1172 lrw r3, 0x2000004c // 24d8 + 2414: 31f0 movi r1, 240 + 2416: 9340 ld.w r2, (r3, 0x0) + 2418: 9260 ld.w r3, (r2, 0x0) + 241a: 4130 lsli r1, r1, 16 + 241c: 68c5 andn r3, r1 + 241e: 31e0 movi r1, 224 + 2420: 412f lsli r1, r1, 15 + 2422: 6cc4 or r3, r1 + 2424: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2426: 31f0 movi r1, 240 + 2428: 9261 ld.w r3, (r2, 0x4) + 242a: 412c lsli r1, r1, 12 + 242c: 68c5 andn r3, r1 + 242e: 31e0 movi r1, 224 + 2430: 412b lsli r1, r1, 11 + 2432: 6cc4 or r3, r1 + 2434: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2436: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2438: 3841 cmpnei r0, 1 + 243a: 082d bt 0x2494 // 2494 + if(UART_IO_G==0) + 243c: 3940 cmpnei r1, 0 + 243e: 0814 bt 0x2466 // 2466 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2440: 1167 lrw r3, 0x20000048 // 24dc + 2442: 310f movi r1, 15 + 2444: 9340 ld.w r2, (r3, 0x0) + 2446: 9260 ld.w r3, (r2, 0x0) + 2448: 68c5 andn r3, r1 + 244a: 3107 movi r1, 7 + 244c: 6cc4 or r3, r1 + 244e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2450: 32f0 movi r2, 240 + 2452: 1162 lrw r3, 0x2000004c // 24d8 + 2454: 4250 lsli r2, r2, 16 + 2456: 9320 ld.w r1, (r3, 0x0) + 2458: 9161 ld.w r3, (r1, 0x4) + 245a: 68c9 andn r3, r2 + 245c: 32e0 movi r2, 224 + 245e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2460: 6cc8 or r3, r2 + 2462: b161 st.w r3, (r1, 0x4) + 2464: 07e9 br 0x2436 // 2436 + else if(UART_IO_G==1) + 2466: 3941 cmpnei r1, 1 + 2468: 080c bt 0x2480 // 2480 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 246a: 107c lrw r3, 0x2000004c // 24d8 + 246c: 32ff movi r2, 255 + 246e: 9320 ld.w r1, (r3, 0x0) + 2470: 424c lsli r2, r2, 12 + 2472: 9160 ld.w r3, (r1, 0x0) + 2474: 68c9 andn r3, r2 + 2476: 32ee movi r2, 238 + 2478: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 247a: 6cc8 or r3, r2 + 247c: b160 st.w r3, (r1, 0x0) +} + 247e: 07dc br 0x2436 // 2436 + else if(UART_IO_G==2) + 2480: 3942 cmpnei r1, 2 + 2482: 0bda bt 0x2436 // 2436 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2484: 1075 lrw r3, 0x2000004c // 24d8 + 2486: 32ee movi r2, 238 + 2488: 9320 ld.w r1, (r3, 0x0) + 248a: 9161 ld.w r3, (r1, 0x4) + 248c: 4368 lsli r3, r3, 8 + 248e: 4b68 lsri r3, r3, 8 + 2490: 4257 lsli r2, r2, 23 + 2492: 07e7 br 0x2460 // 2460 + if (IO_UART_NUM==IO_UART2) + 2494: 3842 cmpnei r0, 2 + 2496: 0bd0 bt 0x2436 // 2436 + if(UART_IO_G==0) + 2498: 3940 cmpnei r1, 0 + 249a: 0809 bt 0x24ac // 24ac + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 249c: 106f lrw r3, 0x2000004c // 24d8 + 249e: 31ff movi r1, 255 + 24a0: 9340 ld.w r2, (r3, 0x0) + 24a2: 9260 ld.w r3, (r2, 0x0) + 24a4: 68c5 andn r3, r1 + 24a6: 3177 movi r1, 119 + 24a8: 6cc4 or r3, r1 + 24aa: 07b0 br 0x240a // 240a + else if(UART_IO_G==1) + 24ac: 3941 cmpnei r1, 1 + 24ae: 0809 bt 0x24c0 // 24c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 24b0: 106a lrw r3, 0x2000004c // 24d8 + 24b2: 32ee movi r2, 238 + 24b4: 9320 ld.w r1, (r3, 0x0) + 24b6: 9160 ld.w r3, (r1, 0x0) + 24b8: 4368 lsli r3, r3, 8 + 24ba: 4b68 lsri r3, r3, 8 + 24bc: 4257 lsli r2, r2, 23 + 24be: 07de br 0x247a // 247a + else if(UART_IO_G==2) + 24c0: 3942 cmpnei r1, 2 + 24c2: 0bba bt 0x2436 // 2436 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 24c4: 1066 lrw r3, 0x20000048 // 24dc + 24c6: 32ff movi r2, 255 + 24c8: 9320 ld.w r1, (r3, 0x0) + 24ca: 4250 lsli r2, r2, 16 + 24cc: 9160 ld.w r3, (r1, 0x0) + 24ce: 68c9 andn r3, r2 + 24d0: 32cc movi r2, 204 + 24d2: 424f lsli r2, r2, 15 + 24d4: 07d3 br 0x247a // 247a + 24d6: 0000 bkpt + 24d8: 2000004c .long 0x2000004c + 24dc: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +000024e0 : +//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); + 24e0: 1063 lrw r3, 0x80003 // 24ec + 24e2: 6c8c or r2, r3 + 24e4: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 24e6: b024 st.w r1, (r0, 0x10) +} + 24e8: 783c jmp r15 + 24ea: 0000 bkpt + 24ec: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +000024f0 : +//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); + 24f0: 1063 lrw r3, 0x8000f // 24fc + 24f2: 6c8c or r2, r3 + 24f4: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 24f6: b024 st.w r1, (r0, 0x10) +} + 24f8: 783c jmp r15 + 24fa: 0000 bkpt + 24fc: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002500 : +//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) +{ + 2500: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2502: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2504: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2506: 5b85 subu r4, r3, r1 + 2508: 6490 cmphs r4, r2 + 250a: 0c02 bf 0x250e // 250e + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 250c: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 250e: 8380 ld.b r4, (r3, 0x0) + 2510: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 2512: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2514: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2516: 3c40 cmpnei r4, 0 + 2518: 0bfd bt 0x2512 // 2512 + 251a: 2300 addi r3, 1 + 251c: 07f5 br 0x2506 // 2506 + +Disassembly of section .text.EPT_Stop: + +00002520 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2520: 1068 lrw r3, 0x20000020 // 2540 + 2522: 3280 movi r2, 128 + 2524: 9360 ld.w r3, (r3, 0x0) + 2526: 608c addu r2, r3 + 2528: 1027 lrw r1, 0xa55ac73a // 2544 + 252a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 252c: 9341 ld.w r2, (r3, 0x4) + 252e: 31fe movi r1, 254 + 2530: 6884 and r2, r1 + 2532: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2534: 3101 movi r1, 1 + 2536: 9341 ld.w r2, (r3, 0x4) + 2538: 6884 and r2, r1 + 253a: 3a40 cmpnei r2, 0 + 253c: 0bfd bt 0x2536 // 2536 +} + 253e: 783c jmp r15 + 2540: 20000020 .long 0x20000020 + 2544: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002548 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2548: 1078 lrw r3, 0x20000050 // 25a8 + 254a: 3200 movi r2, 0 + 254c: 9360 ld.w r3, (r3, 0x0) + 254e: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2550: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 2552: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 2554: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 2556: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2558: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 255a: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 255c: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 255e: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2560: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 2562: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 2564: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 2566: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2568: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 256a: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 256c: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 256e: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 2570: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 2572: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 2574: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 2576: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2578: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 257a: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 257c: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 257e: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 2580: 23ff addi r3, 256 + 2582: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 2584: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 2586: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2588: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 258a: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 258c: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 258e: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 2590: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 2592: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 2594: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 2596: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2598: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 259a: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 259c: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 259e: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 25a0: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 25a2: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 25a4: b351 st.w r2, (r3, 0x44) +} + 25a6: 783c jmp r15 + 25a8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +000025ac : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 25ac: 1063 lrw r3, 0x20000050 // 25b8 + 25ae: 9340 ld.w r2, (r3, 0x0) + 25b0: 9264 ld.w r3, (r2, 0x10) + 25b2: 6c0c or r0, r3 + 25b4: b204 st.w r0, (r2, 0x10) +} + 25b6: 783c jmp r15 + 25b8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +000025bc : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 25bc: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 25be: 3002 movi r0, 2 + 25c0: e3fffff6 bsr 0x25ac // 25ac + while(!(ADC0->SR &ADC12_ADCENS)); + 25c4: 1065 lrw r3, 0x20000050 // 25d8 + 25c6: 3280 movi r2, 128 + 25c8: 9320 ld.w r1, (r3, 0x0) + 25ca: 4241 lsli r2, r2, 1 + 25cc: 9168 ld.w r3, (r1, 0x20) + 25ce: 68c8 and r3, r2 + 25d0: 3b40 cmpnei r3, 0 + 25d2: 0ffd bf 0x25cc // 25cc + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 25d4: 1490 pop r15 + 25d6: 0000 bkpt + 25d8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +000025dc : + if (NewState != DISABLE) + 25dc: 3940 cmpnei r1, 0 + 25de: 106a lrw r3, 0x20000050 // 2604 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25e0: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 25e2: 0c09 bf 0x25f4 // 25f4 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 25e4: 9260 ld.w r3, (r2, 0x0) + 25e6: 6cc0 or r3, r0 + 25e8: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 25ea: 9262 ld.w r3, (r2, 0x8) + 25ec: 68c0 and r3, r0 + 25ee: 3b40 cmpnei r3, 0 + 25f0: 0ffd bf 0x25ea // 25ea +} + 25f2: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 25f4: 9261 ld.w r3, (r2, 0x4) + 25f6: 6cc0 or r3, r0 + 25f8: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 25fa: 9262 ld.w r3, (r2, 0x8) + 25fc: 68c0 and r3, r0 + 25fe: 3b40 cmpnei r3, 0 + 2600: 0bfd bt 0x25fa // 25fa + 2602: 07f8 br 0x25f2 // 25f2 + 2604: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00002608 : +{ + 2608: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 260a: 3001 movi r0, 1 + 260c: e3ffffd0 bsr 0x25ac // 25ac +} + 2610: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00002614 : +{ + 2614: 14d0 push r15 + if (NewState != DISABLE) + 2616: 3840 cmpnei r0, 0 + 2618: 0c04 bf 0x2620 // 2620 + 261a: e3ffffd1 bsr 0x25bc // 25bc +} + 261e: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 2620: 3004 movi r0, 4 + 2622: e3ffffc5 bsr 0x25ac // 25ac + while(ADC0->SR&ADC12_ADCENS); + 2626: 1065 lrw r3, 0x20000050 // 2638 + 2628: 3280 movi r2, 128 + 262a: 9320 ld.w r1, (r3, 0x0) + 262c: 4241 lsli r2, r2, 1 + 262e: 9168 ld.w r3, (r1, 0x20) + 2630: 68c8 and r3, r2 + 2632: 3b40 cmpnei r3, 0 + 2634: 0bfd bt 0x262e // 262e + 2636: 07f4 br 0x261e // 261e + 2638: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +0000263c : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 263c: 1064 lrw r3, 0x20000050 // 264c + 263e: 3202 movi r2, 2 + 2640: 9320 ld.w r1, (r3, 0x0) + 2642: 9168 ld.w r3, (r1, 0x20) + 2644: 68c8 and r3, r2 + 2646: 3b40 cmpnei r3, 0 + 2648: 0ffd bf 0x2642 // 2642 +} + 264a: 783c jmp r15 + 264c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002650 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2650: 200f addi r0, 16 + 2652: 1065 lrw r3, 0x20000050 // 2664 + 2654: 3201 movi r2, 1 + 2656: 9320 ld.w r1, (r3, 0x0) + 2658: 7080 lsl r2, r0 + 265a: 9168 ld.w r3, (r1, 0x20) + 265c: 68c8 and r3, r2 + 265e: 3b40 cmpnei r3, 0 + 2660: 0ffd bf 0x265a // 265a +} + 2662: 783c jmp r15 + 2664: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002668 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2668: 203f addi r0, 64 + 266a: 1064 lrw r3, 0x20000050 // 2678 + 266c: 4002 lsli r0, r0, 2 + 266e: 9360 ld.w r3, (r3, 0x0) + 2670: 600c addu r0, r3 + 2672: 9000 ld.w r0, (r0, 0x0) + 2674: 7401 zexth r0, r0 +} + 2676: 783c jmp r15 + 2678: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +0000267c : + //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 ) +{ + 267c: 14d4 push r4-r7, r15 + 267e: 1422 subi r14, r14, 8 + 2680: 1c08 addi r4, r14, 32 + 2682: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2684: 2d00 subi r5, 1 +{ + 2686: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2688: 10db lrw r6, 0x20000050 // 26f4 +{ + 268a: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 268e: 45aa lsli r5, r5, 10 + 2690: 9680 ld.w r4, (r6, 0x0) + 2692: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 2694: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2696: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2698: 081c bt 0x26d0 // 26d0 + { + ADC0->MR&=~CONTCV; //one short mode + 269a: 9425 ld.w r1, (r4, 0x14) + 269c: 4121 lsli r1, r1, 1 + 269e: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 26a0: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 26a2: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 26a4: 4002 lsli r0, r0, 2 + 26a6: 9428 ld.w r1, (r4, 0x20) + 26a8: 6840 and r1, r0 + 26aa: 3940 cmpnei r1, 0 + 26ac: 0bfd bt 0x26a6 // 26a6 + 26ae: b861 st.w r3, (r14, 0x4) + 26b0: b840 st.w r2, (r14, 0x0) + 26b2: e3ffff85 bsr 0x25bc // 25bc + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 26b6: 3f40 cmpnei r7, 0 + 26b8: 9840 ld.w r2, (r14, 0x0) + 26ba: 9861 ld.w r3, (r14, 0x4) + 26bc: 0c16 bf 0x26e8 // 26e8 + { + ADC0->CR|=ADC12_10BITor12BIT; + 26be: 9600 ld.w r0, (r6, 0x0) + 26c0: 9024 ld.w r1, (r0, 0x10) + 26c2: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 26c4: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 26c6: 9620 ld.w r1, (r6, 0x0) + 26c8: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 26ca: b166 st.w r3, (r1, 0x18) +} + 26cc: 1402 addi r14, r14, 8 + 26ce: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 26d0: 3941 cmpnei r1, 1 + 26d2: 0bee bt 0x26ae // 26ae + ADC0->MR|=CONTCV; //Continuous mode + 26d4: 9425 ld.w r1, (r4, 0x14) + 26d6: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 26d8: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 26da: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 26dc: 4002 lsli r0, r0, 2 + 26de: 9428 ld.w r1, (r4, 0x20) + 26e0: 6840 and r1, r0 + 26e2: 3940 cmpnei r1, 0 + 26e4: 0ffd bf 0x26de // 26de + 26e6: 07e4 br 0x26ae // 26ae + ADC0->CR&=~ADC12_10BITor12BIT; + 26e8: 9600 ld.w r0, (r6, 0x0) + 26ea: 9024 ld.w r1, (r0, 0x10) + 26ec: 4121 lsli r1, r1, 1 + 26ee: 4921 lsri r1, r1, 1 + 26f0: 07ea br 0x26c4 // 26c4 + 26f2: 0000 bkpt + 26f4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +000026f8 : +//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) + 26f8: 3840 cmpnei r0, 0 + 26fa: 0808 bt 0x270a // 270a + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 26fc: 127c lrw r3, 0x20000050 // 286c + 26fe: 123d lrw r1, 0x103c0 // 2870 + 2700: 9340 ld.w r2, (r3, 0x0) + 2702: 9264 ld.w r3, (r2, 0x10) + 2704: 68c5 andn r3, r1 + 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); + 2706: b264 st.w r3, (r2, 0x10) + } +} + 2708: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 270a: 3841 cmpnei r0, 1 + 270c: 0810 bt 0x272c // 272c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 270e: 127a lrw r3, 0x2000004c // 2874 + 2710: 32f0 movi r2, 240 + 2712: 9320 ld.w r1, (r3, 0x0) + 2714: 9160 ld.w r3, (r1, 0x0) + 2716: 4244 lsli r2, r2, 4 + 2718: 68c9 andn r3, r2 + 271a: 3bab bseti r3, 11 + 271c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 271e: 1235 lrw r1, 0x103c0 // 2870 + 2720: 1273 lrw r3, 0x20000050 // 286c + 2722: 9340 ld.w r2, (r3, 0x0) + 2724: 9264 ld.w r3, (r2, 0x10) + 2726: 68c5 andn r3, r1 + 2728: 3ba6 bseti r3, 6 + 272a: 07ee br 0x2706 // 2706 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 272c: 3842 cmpnei r0, 2 + 272e: 0811 bt 0x2750 // 2750 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2730: 1271 lrw r3, 0x2000004c // 2874 + 2732: 32f0 movi r2, 240 + 2734: 9320 ld.w r1, (r3, 0x0) + 2736: 9160 ld.w r3, (r1, 0x0) + 2738: 4244 lsli r2, r2, 4 + 273a: 68c9 andn r3, r2 + 273c: 3bab bseti r3, 11 + 273e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2740: 122e lrw r1, 0x30103c0 // 2878 + 2742: 126b lrw r3, 0x20000050 // 286c + 2744: 9340 ld.w r2, (r3, 0x0) + 2746: 9264 ld.w r3, (r2, 0x10) + 2748: 68c5 andn r3, r1 + 274a: 3ba7 bseti r3, 7 + 274c: 3bb8 bseti r3, 24 + 274e: 07dc br 0x2706 // 2706 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2750: 3843 cmpnei r0, 3 + 2752: 0811 bt 0x2774 // 2774 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2754: 1268 lrw r3, 0x2000004c // 2874 + 2756: 32f0 movi r2, 240 + 2758: 9320 ld.w r1, (r3, 0x0) + 275a: 9160 ld.w r3, (r1, 0x0) + 275c: 4244 lsli r2, r2, 4 + 275e: 68c9 andn r3, r2 + 2760: 3bab bseti r3, 11 + 2762: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 2764: 1225 lrw r1, 0x30103c0 // 2878 + 2766: 1262 lrw r3, 0x20000050 // 286c + 2768: 9340 ld.w r2, (r3, 0x0) + 276a: 9264 ld.w r3, (r2, 0x10) + 276c: 68c5 andn r3, r1 + 276e: 1224 lrw r1, 0x30000c0 // 287c + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2770: 6cc4 or r3, r1 + 2772: 07ca br 0x2706 // 2706 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 2774: 3845 cmpnei r0, 5 + 2776: 0809 bt 0x2788 // 2788 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2778: 117d lrw r3, 0x20000050 // 286c + 277a: 1222 lrw r1, 0x503c0 // 2880 + 277c: 9340 ld.w r2, (r3, 0x0) + 277e: 9264 ld.w r3, (r2, 0x10) + 2780: 68c5 andn r3, r1 + 2782: 3ba8 bseti r3, 8 + 2784: 3bb2 bseti r3, 18 + 2786: 07c0 br 0x2706 // 2706 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2788: 3846 cmpnei r0, 6 + 278a: 0812 bt 0x27ae // 27ae + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 278c: 117a lrw r3, 0x2000004c // 2874 + 278e: 32f0 movi r2, 240 + 2790: 9320 ld.w r1, (r3, 0x0) + 2792: 9160 ld.w r3, (r1, 0x0) + 2794: 4248 lsli r2, r2, 8 + 2796: 68c9 andn r3, r2 + 2798: 32b0 movi r2, 176 + 279a: 4248 lsli r2, r2, 8 + 279c: 6cc8 or r3, r2 + 279e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 27a0: 1134 lrw r1, 0x103c0 // 2870 + 27a2: 1173 lrw r3, 0x20000050 // 286c + 27a4: 9340 ld.w r2, (r3, 0x0) + 27a6: 9264 ld.w r3, (r2, 0x10) + 27a8: 68c5 andn r3, r1 + 27aa: 3ba9 bseti r3, 9 + 27ac: 07ad br 0x2706 // 2706 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 27ae: 3847 cmpnei r0, 7 + 27b0: 0819 bt 0x27e2 // 27e2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27b2: 1171 lrw r3, 0x2000004c // 2874 + 27b4: 31f0 movi r1, 240 + 27b6: 9340 ld.w r2, (r3, 0x0) + 27b8: 9260 ld.w r3, (r2, 0x0) + 27ba: 4128 lsli r1, r1, 8 + 27bc: 68c5 andn r3, r1 + 27be: 31b0 movi r1, 176 + 27c0: 4128 lsli r1, r1, 8 + 27c2: 6cc4 or r3, r1 + 27c4: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27c6: 31f0 movi r1, 240 + 27c8: 9260 ld.w r3, (r2, 0x0) + 27ca: 4124 lsli r1, r1, 4 + 27cc: 68c5 andn r3, r1 + 27ce: 3bab bseti r3, 11 + 27d0: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 27d2: 1128 lrw r1, 0x103c0 // 2870 + 27d4: 1166 lrw r3, 0x20000050 // 286c + 27d6: 9340 ld.w r2, (r3, 0x0) + 27d8: 9264 ld.w r3, (r2, 0x10) + 27da: 68c5 andn r3, r1 + 27dc: 3ba6 bseti r3, 6 + 27de: 3ba9 bseti r3, 9 + 27e0: 0793 br 0x2706 // 2706 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 27e2: 3848 cmpnei r0, 8 + 27e4: 0818 bt 0x2814 // 2814 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 27e6: 1164 lrw r3, 0x2000004c // 2874 + 27e8: 31f0 movi r1, 240 + 27ea: 9340 ld.w r2, (r3, 0x0) + 27ec: 9260 ld.w r3, (r2, 0x0) + 27ee: 4128 lsli r1, r1, 8 + 27f0: 68c5 andn r3, r1 + 27f2: 31b0 movi r1, 176 + 27f4: 4128 lsli r1, r1, 8 + 27f6: 6cc4 or r3, r1 + 27f8: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27fa: 31f0 movi r1, 240 + 27fc: 9260 ld.w r3, (r2, 0x0) + 27fe: 4124 lsli r1, r1, 4 + 2800: 68c5 andn r3, r1 + 2802: 3bab bseti r3, 11 + 2804: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 2806: 103d lrw r1, 0x30103c0 // 2878 + 2808: 1079 lrw r3, 0x20000050 // 286c + 280a: 9340 ld.w r2, (r3, 0x0) + 280c: 9264 ld.w r3, (r2, 0x10) + 280e: 68c5 andn r3, r1 + 2810: 103d lrw r1, 0x1000280 // 2884 + 2812: 07af br 0x2770 // 2770 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 2814: 3849 cmpnei r0, 9 + 2816: 0818 bt 0x2846 // 2846 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2818: 1077 lrw r3, 0x2000004c // 2874 + 281a: 31f0 movi r1, 240 + 281c: 9340 ld.w r2, (r3, 0x0) + 281e: 9260 ld.w r3, (r2, 0x0) + 2820: 4128 lsli r1, r1, 8 + 2822: 68c5 andn r3, r1 + 2824: 31b0 movi r1, 176 + 2826: 4128 lsli r1, r1, 8 + 2828: 6cc4 or r3, r1 + 282a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 282c: 31f0 movi r1, 240 + 282e: 9260 ld.w r3, (r2, 0x0) + 2830: 4124 lsli r1, r1, 4 + 2832: 68c5 andn r3, r1 + 2834: 3bab bseti r3, 11 + 2836: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2838: 1030 lrw r1, 0x30103c0 // 2878 + 283a: 106d lrw r3, 0x20000050 // 286c + 283c: 9340 ld.w r2, (r3, 0x0) + 283e: 9264 ld.w r3, (r2, 0x10) + 2840: 68c5 andn r3, r1 + 2842: 1032 lrw r1, 0x30002c0 // 2888 + 2844: 0796 br 0x2770 // 2770 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 2846: 384b cmpnei r0, 11 + 2848: 0b60 bt 0x2708 // 2708 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 284a: 106b lrw r3, 0x2000004c // 2874 + 284c: 32f0 movi r2, 240 + 284e: 9320 ld.w r1, (r3, 0x0) + 2850: 9160 ld.w r3, (r1, 0x0) + 2852: 4248 lsli r2, r2, 8 + 2854: 68c9 andn r3, r2 + 2856: 32b0 movi r2, 176 + 2858: 4248 lsli r2, r2, 8 + 285a: 6cc8 or r3, r2 + 285c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 285e: 1029 lrw r1, 0x503c0 // 2880 + 2860: 1063 lrw r3, 0x20000050 // 286c + 2862: 9340 ld.w r2, (r3, 0x0) + 2864: 9264 ld.w r3, (r2, 0x10) + 2866: 68c5 andn r3, r1 + 2868: 1029 lrw r1, 0x40300 // 288c + 286a: 0783 br 0x2770 // 2770 + 286c: 20000050 .long 0x20000050 + 2870: 000103c0 .long 0x000103c0 + 2874: 2000004c .long 0x2000004c + 2878: 030103c0 .long 0x030103c0 + 287c: 030000c0 .long 0x030000c0 + 2880: 000503c0 .long 0x000503c0 + 2884: 01000280 .long 0x01000280 + 2888: 030002c0 .long 0x030002c0 + 288c: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002890 : +//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) +{ + 2890: 14d4 push r4-r7, r15 + 2892: 1421 subi r14, r14, 4 + 2894: b840 st.w r2, (r14, 0x0) + 2896: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2898: 125b lrw r2, 0x20000050 // 2a04 + 289a: 92c0 ld.w r6, (r2, 0x0) + 289c: 3200 movi r2, 0 + 289e: 4202 lsli r0, r2, 2 + 28a0: 6018 addu r0, r6 + 28a2: 908c ld.w r4, (r0, 0x30) + 28a4: 2200 addi r2, 1 + 28a6: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 28a8: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 28aa: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 28ac: 0bf9 bt 0x289e // 289e + } + switch(ADC12_ADCINX) + 28ae: 3d0f cmphsi r5, 16 + 28b0: 0825 bt 0x28fa // 28fa + 28b2: 6c17 mov r0, r5 + 28b4: 1255 lrw r2, 0x2000004c // 2a08 + 28b6: 1296 lrw r4, 0x20000048 // 2a0c + 28b8: e3fff222 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 28bc: 322c1408 .long 0x322c1408 + 28c0: 4d474039 .long 0x4d474039 + 28c4: 756d6559 .long 0x756d6559 + 28c8: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 28cc: 9240 ld.w r2, (r2, 0x0) + 28ce: 9200 ld.w r0, (r2, 0x0) + 28d0: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28d2: 9201 ld.w r0, (r2, 0x4) + 28d4: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 28d6: 9400 ld.w r0, (r4, 0x0) + 28d8: 9040 ld.w r2, (r0, 0x0) + 28da: 34f0 movi r4, 240 + 28dc: 6891 andn r2, r4 + 28de: 3aa4 bseti r2, 4 + 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; + 28e0: b040 st.w r2, (r0, 0x0) + break; + 28e2: 040c br 0x28fa // 28fa + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 28e4: 9200 ld.w r0, (r2, 0x0) + 28e6: 9040 ld.w r2, (r0, 0x0) + 28e8: 370f movi r7, 15 + 28ea: 689d andn r2, r7 + 28ec: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 28ee: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 28f0: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 28f2: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 28f4: 9440 ld.w r2, (r4, 0x0) + 28f6: 9200 ld.w r0, (r2, 0x0) + 28f8: b200 st.w r0, (r2, 0x0) + 28fa: 4362 lsli r3, r3, 2 + 28fc: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 28fe: 966c ld.w r3, (r6, 0x30) + 2900: 3300 movi r3, 0 + 2902: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2904: 9860 ld.w r3, (r14, 0x0) + 2906: 6c4c or r1, r3 + 2908: 964c ld.w r2, (r6, 0x30) + 290a: 6d44 or r5, r1 + 290c: 6d48 or r5, r2 + 290e: b6ac st.w r5, (r6, 0x30) +} + 2910: 1401 addi r14, r14, 4 + 2912: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 2914: 9200 ld.w r0, (r2, 0x0) + 2916: 9040 ld.w r2, (r0, 0x0) + 2918: 37f0 movi r7, 240 + 291a: 689d andn r2, r7 + 291c: 3aa4 bseti r2, 4 + 291e: 07e8 br 0x28ee // 28ee + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 2920: 9200 ld.w r0, (r2, 0x0) + 2922: 37f0 movi r7, 240 + 2924: 9040 ld.w r2, (r0, 0x0) + 2926: 47e8 lsli r7, r7, 8 + 2928: 689d andn r2, r7 + 292a: 3aac bseti r2, 12 + 292c: 07e1 br 0x28ee // 28ee + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 292e: 9200 ld.w r0, (r2, 0x0) + 2930: 37f0 movi r7, 240 + 2932: 9040 ld.w r2, (r0, 0x0) + 2934: 47f0 lsli r7, r7, 16 + 2936: 689d andn r2, r7 + 2938: 3ab4 bseti r2, 20 + 293a: 07da br 0x28ee // 28ee + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 293c: 9200 ld.w r0, (r2, 0x0) + 293e: 37f0 movi r7, 240 + 2940: 9040 ld.w r2, (r0, 0x0) + 2942: 47f4 lsli r7, r7, 20 + 2944: 689d andn r2, r7 + 2946: 3ab8 bseti r2, 24 + 2948: 07d3 br 0x28ee // 28ee + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 294a: 9200 ld.w r0, (r2, 0x0) + 294c: 9040 ld.w r2, (r0, 0x0) + 294e: 4244 lsli r2, r2, 4 + 2950: 4a44 lsri r2, r2, 4 + 2952: 3abc bseti r2, 28 + 2954: 07cd br 0x28ee // 28ee + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 2956: 9240 ld.w r2, (r2, 0x0) + 2958: 9200 ld.w r0, (r2, 0x0) + 295a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 295c: 9201 ld.w r0, (r2, 0x4) + 295e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2960: 9400 ld.w r0, (r4, 0x0) + 2962: 34f0 movi r4, 240 + 2964: 9040 ld.w r2, (r0, 0x0) + 2966: 4484 lsli r4, r4, 4 + 2968: 6891 andn r2, r4 + 296a: 3aa8 bseti r2, 8 + 296c: 07ba br 0x28e0 // 28e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 296e: 9240 ld.w r2, (r2, 0x0) + 2970: 9200 ld.w r0, (r2, 0x0) + 2972: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2974: 9201 ld.w r0, (r2, 0x4) + 2976: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2978: 9400 ld.w r0, (r4, 0x0) + 297a: 34f0 movi r4, 240 + 297c: 9040 ld.w r2, (r0, 0x0) + 297e: 4488 lsli r4, r4, 8 + 2980: 6891 andn r2, r4 + 2982: 3aac bseti r2, 12 + 2984: 07ae br 0x28e0 // 28e0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 2986: 9200 ld.w r0, (r2, 0x0) + 2988: 9040 ld.w r2, (r0, 0x0) + 298a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 298c: 9041 ld.w r2, (r0, 0x4) + 298e: 370f movi r7, 15 + 2990: 689d andn r2, r7 + 2992: 3aa0 bseti r2, 0 + 2994: 07af br 0x28f2 // 28f2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2996: 9200 ld.w r0, (r2, 0x0) + 2998: 9040 ld.w r2, (r0, 0x0) + 299a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 299c: 9041 ld.w r2, (r0, 0x4) + 299e: 37f0 movi r7, 240 + 29a0: 689d andn r2, r7 + 29a2: 3aa4 bseti r2, 4 + 29a4: 07a7 br 0x28f2 // 28f2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 29a6: 9200 ld.w r0, (r2, 0x0) + 29a8: 9040 ld.w r2, (r0, 0x0) + 29aa: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 29ac: 37f0 movi r7, 240 + 29ae: 9041 ld.w r2, (r0, 0x4) + 29b0: 47e4 lsli r7, r7, 4 + 29b2: 689d andn r2, r7 + 29b4: 3aa8 bseti r2, 8 + 29b6: 079e br 0x28f2 // 28f2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 29b8: 9200 ld.w r0, (r2, 0x0) + 29ba: 9040 ld.w r2, (r0, 0x0) + 29bc: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 29be: 37f0 movi r7, 240 + 29c0: 9041 ld.w r2, (r0, 0x4) + 29c2: 47e8 lsli r7, r7, 8 + 29c4: 689d andn r2, r7 + 29c6: 3aac bseti r2, 12 + 29c8: 0795 br 0x28f2 // 28f2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 29ca: 9200 ld.w r0, (r2, 0x0) + 29cc: 9040 ld.w r2, (r0, 0x0) + 29ce: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 29d0: 37f0 movi r7, 240 + 29d2: 9041 ld.w r2, (r0, 0x4) + 29d4: 47ec lsli r7, r7, 12 + 29d6: 689d andn r2, r7 + 29d8: 3ab0 bseti r2, 16 + 29da: 078c br 0x28f2 // 28f2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 29dc: 9200 ld.w r0, (r2, 0x0) + 29de: 9040 ld.w r2, (r0, 0x0) + 29e0: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 29e2: 37f0 movi r7, 240 + 29e4: 9041 ld.w r2, (r0, 0x4) + 29e6: 47f0 lsli r7, r7, 16 + 29e8: 689d andn r2, r7 + 29ea: 3ab4 bseti r2, 20 + 29ec: 0783 br 0x28f2 // 28f2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 29ee: 9240 ld.w r2, (r2, 0x0) + 29f0: 9200 ld.w r0, (r2, 0x0) + 29f2: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29f4: 9201 ld.w r0, (r2, 0x4) + 29f6: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 29f8: 9400 ld.w r0, (r4, 0x0) + 29fa: 9040 ld.w r2, (r0, 0x0) + 29fc: 340f movi r4, 15 + 29fe: 6891 andn r2, r4 + 2a00: 3aa0 bseti r2, 0 + 2a02: 076f br 0x28e0 // 28e0 + 2a04: 20000050 .long 0x20000050 + 2a08: 2000004c .long 0x2000004c + 2a0c: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002a10 : + 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) +{ + 2a10: 14c4 push r4-r7 + 2a12: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2a14: 1165 lrw r3, 0x20000060 // 2aa8 + 2a16: 1186 lrw r4, 0x5a5a5a5a // 2aac + 2a18: 9360 ld.w r3, (r3, 0x0) + 2a1a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2a1c: 3407 movi r4, 7 + 2a1e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2a20: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2a22: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a24: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2a26: 9384 ld.w r4, (r3, 0x10) + 2a28: 3c40 cmpnei r4, 0 + 2a2a: 0bfe bt 0x2a26 // 2a26 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2a2c: 2102 addi r1, 3 + 2a2e: 4922 lsri r1, r1, 2 + 2a30: 4122 lsli r1, r1, 2 + 2a32: 6048 addu r1, r2 + 2a34: b820 st.w r1, (r14, 0x0) + 2a36: 5829 subu r1, r0, r2 + 2a38: b821 st.w r1, (r14, 0x4) + 2a3a: 9820 ld.w r1, (r14, 0x0) + 2a3c: 644a cmpne r2, r1 + 2a3e: 0826 bt 0x2a8a // 2a8a + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2a40: 3106 movi r1, 6 + SetUserKey; + 2a42: 105b lrw r2, 0x5a5a5a5a // 2aac + 2a44: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2a46: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2a48: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2a4a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a4c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2a4e: 9324 ld.w r1, (r3, 0x10) + 2a50: 3940 cmpnei r1, 0 + 2a52: 0bfe bt 0x2a4e // 2a4e + //Perform pre-programming 4 + SetUserKey; + 2a54: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a56: 3201 movi r2, 1 + 2a58: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a5a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a5c: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2a5e: 934a ld.w r2, (r3, 0x28) + 2a60: 3a44 cmpnei r2, 4 + 2a62: 0bfe bt 0x2a5e // 2a5e + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2a64: 3102 movi r1, 2 + SetUserKey; + 2a66: 1052 lrw r2, 0x5a5a5a5a // 2aac + 2a68: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2a6a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2a6c: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2a6e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a70: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2a72: 932a ld.w r1, (r3, 0x28) + 2a74: 3941 cmpnei r1, 1 + 2a76: 0bfe bt 0x2a72 // 2a72 + //Write page cache data to flash memory 6 + SetUserKey; + 2a78: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2a7a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2a7c: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2a7e: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2a80: 934a ld.w r2, (r3, 0x28) + 2a82: 3a42 cmpnei r2, 2 + 2a84: 0bfe bt 0x2a80 // 2a80 +} + 2a86: 1402 addi r14, r14, 8 + 2a88: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2a8a: 82e0 ld.b r7, (r2, 0x0) + 2a8c: 8281 ld.b r4, (r2, 0x1) + 2a8e: 4488 lsli r4, r4, 8 + 2a90: 8222 ld.b r1, (r2, 0x2) + 2a92: 611c addu r4, r7 + 2a94: 82a3 ld.b r5, (r2, 0x3) + 2a96: 4130 lsli r1, r1, 16 + 2a98: 98c1 ld.w r6, (r14, 0x4) + 2a9a: 6050 addu r1, r4 + 2a9c: 45b8 lsli r5, r5, 24 + 2a9e: 6188 addu r6, r2 + 2aa0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2aa2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2aa4: 2203 addi r2, 4 + 2aa6: 07ca br 0x2a3a // 2a3a + 2aa8: 20000060 .long 0x20000060 + 2aac: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002ab0 : +//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) +{ + 2ab0: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2abc: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2abe: 3b40 cmpnei r3, 0 + 2ac0: 0c06 bf 0x2acc // 2acc + 2ac2: 6d0f mov r4, r3 + 2ac4: 6914 and r4, r5 + 2ac6: 3c40 cmpnei r4, 0 + 2ac8: 0802 bt 0x2acc // 2acc + RdStartAdd +=4; + 2aca: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2acc: 6d0f mov r4, r3 + 2ace: 6914 and r4, r5 + 2ad0: 6100 addu r4, r0 + 2ad2: 8480 ld.b r4, (r4, 0x0) + 2ad4: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002adc : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2adc: 33f8 movi r3, 248 + 2ade: 4366 lsli r3, r3, 6 + 2ae0: 115b lrw r2, 0x20000268 // 2bcc + 2ae2: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2ae4: 3246 movi r2, 70 + 2ae6: 117b lrw r3, 0x2000026e // 2bd0 + 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 + 2ae8: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2aea: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2aec: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2aee: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2af0: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2af2: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2af4: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2af6: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2af8: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2afa: 1157 lrw r2, 0x200004a0 // 2bd4 + 2afc: 8a22 ld.h r1, (r2, 0x4) + 2afe: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2b00: 8a23 ld.h r1, (r2, 0x6) + 2b02: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2b04: 8a24 ld.h r1, (r2, 0x8) + 2b06: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2b08: 8a25 ld.h r1, (r2, 0xa) + 2b0a: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2b0c: 8a26 ld.h r1, (r2, 0xc) + 2b0e: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2b10: 3146 movi r1, 70 + 2b12: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2b14: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2b16: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2b18: 3128 movi r1, 40 + 2b1a: 1170 lrw r3, 0x20000292 // 2bd8 + 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 + 2b1c: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2b1e: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2b20: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2b22: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2b24: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2b26: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2b28: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2b2a: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2b2c: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2b2e: 8a27 ld.h r1, (r2, 0xe) + 2b30: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2b32: 8a28 ld.h r1, (r2, 0x10) + 2b34: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2b36: 8a29 ld.h r1, (r2, 0x12) + 2b38: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2b3a: 8a2a ld.h r1, (r2, 0x14) + 2b3c: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2b3e: 8a2b ld.h r1, (r2, 0x16) + 2b40: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2b42: 3128 movi r1, 40 + 2b44: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2b46: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2b48: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2b4a: 8220 ld.b r1, (r2, 0x0) + 2b4c: 1164 lrw r3, 0x20000238 // 2bdc + 2b4e: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2b50: 8221 ld.b r1, (r2, 0x1) + 2b52: 1164 lrw r3, 0x20000240 // 2be0 + 2b54: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2b56: 3101 movi r1, 1 + 2b58: 1163 lrw r3, 0x20000241 // 2be4 + 2b5a: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2b5c: 3100 movi r1, 0 + 2b5e: 1163 lrw r3, 0x20000264 // 2be8 + 2b60: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2b62: 3106 movi r1, 6 + 2b64: 1162 lrw r3, 0x2000026c // 2bec + 2b66: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2b68: 8223 ld.b r1, (r2, 0x3) + 2b6a: 1162 lrw r3, 0x20000265 // 2bf0 + 2b6c: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2b6e: 9246 ld.w r2, (r2, 0x18) + 2b70: 1161 lrw r3, 0x2000023c // 2bf4 + 2b72: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2b74: 1141 lrw r2, 0xea5f // 2bf8 + 2b76: 1162 lrw r3, 0x200002b8 // 2bfc + 2b78: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2b7a: 3200 movi r2, 0 + 2b7c: 1161 lrw r3, 0x20000239 // 2c00 + 2b7e: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2b80: 3202 movi r2, 2 + 2b82: 1161 lrw r3, 0x2000023a // 2c04 + 2b84: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2b86: 3232 movi r2, 50 + 2b88: 1160 lrw r3, 0x20000290 // 2c08 + 2b8a: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2b8c: 3200 movi r2, 0 + 2b8e: 1160 lrw r3, 0x200002bc // 2c0c + 2b90: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2b92: 3201 movi r2, 1 + 2b94: 107f lrw r3, 0x200002b6 // 2c10 + 2b96: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2b98: 3202 movi r2, 2 + 2b9a: 107f lrw r3, 0x200002b4 // 2c14 + 2b9c: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2b9e: 3204 movi r2, 4 + 2ba0: 107e lrw r3, 0x20000242 // 2c18 + 2ba2: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2ba4: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2ba6: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2ba8: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2baa: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2bac: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2bae: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2bb0: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2bb2: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 2bb4: 3207 movi r2, 7 + 2bb6: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 2bb8: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 2bba: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 2bbc: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2bbe: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2bc0: 3204 movi r2, 4 + 2bc2: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2bc4: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2bc6: ab50 st.h r2, (r3, 0x20) + 2bc8: 783c jmp r15 + 2bca: 0000 bkpt + 2bcc: 20000268 .long 0x20000268 + 2bd0: 2000026e .long 0x2000026e + 2bd4: 200004a0 .long 0x200004a0 + 2bd8: 20000292 .long 0x20000292 + 2bdc: 20000238 .long 0x20000238 + 2be0: 20000240 .long 0x20000240 + 2be4: 20000241 .long 0x20000241 + 2be8: 20000264 .long 0x20000264 + 2bec: 2000026c .long 0x2000026c + 2bf0: 20000265 .long 0x20000265 + 2bf4: 2000023c .long 0x2000023c + 2bf8: 0000ea5f .long 0x0000ea5f + 2bfc: 200002b8 .long 0x200002b8 + 2c00: 20000239 .long 0x20000239 + 2c04: 2000023a .long 0x2000023a + 2c08: 20000290 .long 0x20000290 + 2c0c: 200002bc .long 0x200002bc + 2c10: 200002b6 .long 0x200002b6 + 2c14: 200002b4 .long 0x200002b4 + 2c18: 20000242 .long 0x20000242 + +Disassembly of section .text.CORET_DeInit: + +00002c1c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2c1c: 1065 lrw r3, 0x20000064 // 2c30 + 2c1e: 3204 movi r2, 4 + 2c20: 9360 ld.w r3, (r3, 0x0) + 2c22: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2c24: 3200 movi r2, 0 + 2c26: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2c28: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2c2a: b347 st.w r2, (r3, 0x1c) +} + 2c2c: 783c jmp r15 + 2c2e: 0000 bkpt + 2c30: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002c34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c34: 1064 lrw r3, 0x20000064 // 2c44 + 2c36: 3200 movi r2, 0 + 2c38: 9360 ld.w r3, (r3, 0x0) + 2c3a: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2c3c: 3201 movi r2, 1 + 2c3e: 1063 lrw r3, 0xe000e100 // 2c48 + 2c40: b340 st.w r2, (r3, 0x0) +} + 2c42: 783c jmp r15 + 2c44: 20000064 .long 0x20000064 + 2c48: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002c4c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2c4c: 1063 lrw r3, 0x20000064 // 2c58 + 2c4e: 9340 ld.w r2, (r3, 0x0) + 2c50: 9264 ld.w r3, (r2, 0x10) + 2c52: 3ba0 bseti r3, 0 + 2c54: b264 st.w r3, (r2, 0x10) +} + 2c56: 783c jmp r15 + 2c58: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002c5c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2c5c: 1063 lrw r3, 0x20000064 // 2c68 + 2c5e: 9340 ld.w r2, (r3, 0x0) + 2c60: 9264 ld.w r3, (r2, 0x10) + 2c62: 3b82 bclri r3, 2 + 2c64: b264 st.w r3, (r2, 0x10) +} + 2c66: 783c jmp r15 + 2c68: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002c6c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2c6c: 1063 lrw r3, 0x20000064 // 2c78 + 2c6e: 9340 ld.w r2, (r3, 0x0) + 2c70: 9264 ld.w r3, (r2, 0x10) + 2c72: 3ba1 bseti r3, 1 + 2c74: b264 st.w r3, (r2, 0x10) +} + 2c76: 783c jmp r15 + 2c78: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002c7c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2c7c: 1063 lrw r3, 0x20000064 // 2c88 + 2c7e: 3200 movi r2, 0 + 2c80: 9360 ld.w r3, (r3, 0x0) + 2c82: b346 st.w r2, (r3, 0x18) +} + 2c84: 783c jmp r15 + 2c86: 0000 bkpt + 2c88: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002c8c
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2c8c: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2c8e: e00000f9 bsr 0x2e80 // 2e80 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2c92: 1072 lrw r3, 0x200004f0 // 2cd8 + 2c94: 8340 ld.b r2, (r3, 0x0) + 2c96: 1032 lrw r1, 0xa184 // 2cdc + 2c98: 3000 movi r0, 0 + 2c9a: e00008c1 bsr 0x3e1c // 3e1c + + TemCtrl_Init(); + 2c9e: e0001bdf bsr 0x645c // 645c + DisPlay_Init(); + 2ca2: e0002129 bsr 0x6ef4 // 6ef4 + Debug_Init(); + 2ca6: e00023a5 bsr 0x73f0 // 73f0 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2caa: e3fff7f9 bsr 0x1c9c // 1c9c + + UART2_TASK(); + 2cae: e0000727 bsr 0x3afc // 3afc + + Touch_Key_Task(); + 2cb2: e0000aad bsr 0x420c // 420c + + TemCtrl_Pro(); + 2cb6: e0001d8f bsr 0x67d4 // 67d4 + + DisPlay_Task(); + 2cba: e000212d bsr 0x6f14 // 6f14 + + BUS485Send_Task(); + 2cbe: e000084d bsr 0x3d58 // 3d58 + + HT1621_Refresh_Task(); + 2cc2: e0001b85 bsr 0x63cc // 63cc + + ADC_Sample_Task(); + 2cc6: e0001079 bsr 0x4db8 // 4db8 + + Debug_Task(); + 2cca: e00023fd bsr 0x74c4 // 74c4 + + RLY_Direct_Control(); + 2cce: e00024a3 bsr 0x7614 // 7614 + + Tm1812_Task(); + 2cd2: e00015cd bsr 0x586c // 586c + 2cd6: 07ea br 0x2caa // 2caa + 2cd8: 200004f0 .long 0x200004f0 + 2cdc: 0000a184 .long 0x0000a184 + +Disassembly of section .text.delay_nms: + +00002ce0 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2ce0: 14d0 push r15 + 2ce2: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2ce4: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2ce6: 3300 movi r3, 0 + j = 50* t; + 2ce8: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2cea: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2cec: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2cee: b860 st.w r3, (r14, 0x0) + 2cf0: 9840 ld.w r2, (r14, 0x0) + 2cf2: 9861 ld.w r3, (r14, 0x4) + 2cf4: 64c8 cmphs r2, r3 + 2cf6: 0c03 bf 0x2cfc // 2cfc + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2cf8: 1403 addi r14, r14, 12 + 2cfa: 1490 pop r15 + k++; + 2cfc: 9862 ld.w r3, (r14, 0x8) + 2cfe: 2300 addi r3, 1 + 2d00: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2d02: e3fff7cd bsr 0x1c9c // 1c9c + for ( i = 0; i < j; i++ ) + 2d06: 9860 ld.w r3, (r14, 0x0) + 2d08: 2300 addi r3, 1 + 2d0a: 07f2 br 0x2cee // 2cee + +Disassembly of section .text.delay_nus: + +00002d0c : +void delay_nus(unsigned int t) +{ + 2d0c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2d0e: 3300 movi r3, 0 + 2d10: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2d12: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2d14: b860 st.w r3, (r14, 0x0) + 2d16: 9840 ld.w r2, (r14, 0x0) + 2d18: 9861 ld.w r3, (r14, 0x4) + 2d1a: 64c8 cmphs r2, r3 + 2d1c: 0c03 bf 0x2d22 // 2d22 + { + k++; + } +} + 2d1e: 1403 addi r14, r14, 12 + 2d20: 783c jmp r15 + k++; + 2d22: 9862 ld.w r3, (r14, 0x8) + 2d24: 2300 addi r3, 1 + 2d26: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2d28: 9860 ld.w r3, (r14, 0x0) + 2d2a: 2300 addi r3, 1 + 2d2c: 07f4 br 0x2d14 // 2d14 + +Disassembly of section .text.GPIO_CONFIG: + +00002d30 : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 2d30: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 2d32: 1181 lrw r4, 0x2000004c // 2db4 + 2d34: 310e movi r1, 14 + 2d36: 9400 ld.w r0, (r4, 0x0) + 2d38: e3fff8e6 bsr 0x1f04 // 1f04 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 2d3c: 320e movi r2, 14 + 2d3e: 310e movi r1, 14 + 2d40: 3000 movi r0, 0 + 2d42: e3fff8f3 bsr 0x1f28 // 1f28 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 2d46: 300e movi r0, 14 + 2d48: e3fff976 bsr 0x2034 // 2034 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 2d4c: 3180 movi r1, 128 + 2d4e: 3200 movi r2, 0 + 2d50: 4127 lsli r1, r1, 7 + 2d52: 3001 movi r0, 1 + 2d54: e3fff7e6 bsr 0x1d20 // 1d20 + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 2d58: 3180 movi r1, 128 + 2d5a: 4127 lsli r1, r1, 7 + 2d5c: 3001 movi r0, 1 + 2d5e: e3fff801 bsr 0x1d60 // 1d60 + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 2d62: 3180 movi r1, 128 + 2d64: 9400 ld.w r0, (r4, 0x0) + 2d66: 4127 lsli r1, r1, 7 + 2d68: e3fff816 bsr 0x1d94 // 1d94 +// GPIO_Init(GPIOA0,14,Output); +// GPIO_Write_Low(GPIOA0,14); +//// GPIO_Write_High(GPIOA0,14); + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 2d6c: 1093 lrw r4, 0x20000048 // 2db8 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 2d6e: e3fff81d bsr 0x1da8 // 1da8 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 2d72: 9400 ld.w r0, (r4, 0x0) + 2d74: 3105 movi r1, 5 + 2d76: e3fff8c7 bsr 0x1f04 // 1f04 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 2d7a: 3205 movi r2, 5 + 2d7c: 3105 movi r1, 5 + 2d7e: 3002 movi r0, 2 + 2d80: e3fff8d4 bsr 0x1f28 // 1f28 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 2d84: 3005 movi r0, 5 + 2d86: e3fff9d5 bsr 0x2130 // 2130 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 2d8a: 3201 movi r2, 1 + 2d8c: 3120 movi r1, 32 + 2d8e: 3001 movi r0, 1 + 2d90: e3fff7c8 bsr 0x1d20 // 1d20 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 2d94: 3200 movi r2, 0 + 2d96: 3120 movi r1, 32 + 2d98: 3001 movi r0, 1 + 2d9a: e3fff7c3 bsr 0x1d20 // 1d20 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 2d9e: 3120 movi r1, 32 + 2da0: 3001 movi r0, 1 + 2da2: e3fff7df bsr 0x1d60 // 1d60 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 2da6: 9400 ld.w r0, (r4, 0x0) + 2da8: 3120 movi r1, 32 + 2daa: e3fff7f5 bsr 0x1d94 // 1d94 + EXI3_Int_Enable(); + 2dae: e3fff7f5 bsr 0x1d98 // 1d98 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 2db2: 1491 pop r4, r15 + 2db4: 2000004c .long 0x2000004c + 2db8: 20000048 .long 0x20000048 + +Disassembly of section .text.BT_CONFIG: + +00002dbc : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2dbc: 14d2 push r4-r5, r15 + 2dbe: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2dc0: 1095 lrw r4, 0x20000008 // 2e14 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2dc2: 3500 movi r5, 0 + BT_DeInit(BT1); + 2dc4: 9400 ld.w r0, (r4, 0x0) + 2dc6: e3fffa19 bsr 0x21f8 // 21f8 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2dca: 9400 ld.w r0, (r4, 0x0) + 2dcc: b8a1 st.w r5, (r14, 0x4) + 2dce: b8a0 st.w r5, (r14, 0x0) + 2dd0: 3308 movi r3, 8 + 2dd2: 3200 movi r2, 0 + 2dd4: 3101 movi r1, 1 + 2dd6: e3fffa28 bsr 0x2226 // 2226 + 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); + 2dda: 3380 movi r3, 128 + 2ddc: 4363 lsli r3, r3, 3 + 2dde: b861 st.w r3, (r14, 0x4) + 2de0: 9400 ld.w r0, (r4, 0x0) + 2de2: 3300 movi r3, 0 + 2de4: b8a3 st.w r5, (r14, 0xc) + 2de6: b8a2 st.w r5, (r14, 0x8) + 2de8: b8a0 st.w r5, (r14, 0x0) + 2dea: 3200 movi r2, 0 + 2dec: 3180 movi r1, 128 + 2dee: e3fffa28 bsr 0x223e // 223e + BT_Period_CMP_Write(BT1,4780,1); + 2df2: 3201 movi r2, 1 + 2df4: 1029 lrw r1, 0x12ac // 2e18 + 2df6: 9400 ld.w r0, (r4, 0x0) + 2df8: e3fffa39 bsr 0x226a // 226a + BT_Start(BT1); + 2dfc: 9400 ld.w r0, (r4, 0x0) + 2dfe: e3fffa0b bsr 0x2214 // 2214 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2e02: 9400 ld.w r0, (r4, 0x0) + 2e04: 3202 movi r2, 2 + 2e06: 3101 movi r1, 1 + 2e08: e3fffa34 bsr 0x2270 // 2270 + BT1_INT_ENABLE(); + 2e0c: e3fffa3c bsr 0x2284 // 2284 + +} + 2e10: 1404 addi r14, r14, 16 + 2e12: 1492 pop r4-r5, r15 + 2e14: 20000008 .long 0x20000008 + 2e18: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002e1c : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2e1c: 14d0 push r15 + 2e1e: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2e20: e3fff68a bsr 0x1b34 // 1b34 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2e24: 3101 movi r1, 1 + 2e26: 3001 movi r0, 1 + 2e28: e3fff6ac bsr 0x1b80 // 1b80 + //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 + 2e2c: 3000 movi r0, 0 + 2e2e: e3fff705 bsr 0x1c38 // 1c38 + 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 + 2e32: 3180 movi r1, 128 + 2e34: 3308 movi r3, 8 + 2e36: 3200 movi r2, 0 + 2e38: 4121 lsli r1, r1, 1 + 2e3a: 3002 movi r0, 2 + 2e3c: e3fff6ba bsr 0x1bb0 // 1bb0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2e40: 30c0 movi r0, 192 + 2e42: 3118 movi r1, 24 + 2e44: 4002 lsli r0, r0, 2 + 2e46: e3fff735 bsr 0x1cb0 // 1cb0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2e4a: 3001 movi r0, 1 + 2e4c: e3fff70a bsr 0x1c60 // 1c60 + SYSCON_IWDCNT_Reload(); //reload WDT + 2e50: e3fff726 bsr 0x1c9c // 1c9c + IWDT_Int_Enable(); + 2e54: e3fff758 bsr 0x1d04 // 1d04 + //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 + 2e58: 3340 movi r3, 64 + 2e5a: b860 st.w r3, (r14, 0x0) + 2e5c: 31c0 movi r1, 192 + 2e5e: 3380 movi r3, 128 + 2e60: 4364 lsli r3, r3, 4 + 2e62: 3200 movi r2, 0 + 2e64: 4123 lsli r1, r1, 3 + 2e66: 3000 movi r0, 0 + 2e68: e3fff730 bsr 0x1cc8 // 1cc8 + LVD_Int_Enable(); + 2e6c: e3fff73e bsr 0x1ce8 // 1ce8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2e70: e3fff7a4 bsr 0x1db8 // 1db8 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2e74: 3000 movi r0, 0 + 2e76: e00035e9 bsr 0x9a48 // 9a48 + +} + 2e7a: 1401 addi r14, r14, 4 + 2e7c: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002e80 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2e80: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e82: 1161 lrw r3, 0x2000005c // 2f04 + Sys_RSR = 0x00000000; + 2e84: 1141 lrw r2, 0x200000b4 // 2f08 + 2e86: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e88: 9360 ld.w r3, (r3, 0x0) + 2e8a: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2e8c: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2e8e: 600c addu r0, r3 + 2e90: 9004 ld.w r0, (r0, 0x10) + 2e92: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2e94: 105e lrw r2, 0x200000b0 // 2f0c + 2e96: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2e98: 3180 movi r1, 128 + 2e9a: 4121 lsli r1, r1, 1 + 2e9c: 604c addu r1, r3 + 2e9e: 9120 ld.w r1, (r1, 0x0) + 2ea0: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2ea2: 105c lrw r2, 0xfffffff // 2f10 + 2ea4: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2ea6: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2ea8: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2eaa: 934c ld.w r2, (r3, 0x30) + 2eac: 6884 and r2, r1 + 2eae: 3a40 cmpnei r2, 0 + 2eb0: 0ffd bf 0x2eaa // 2eaa +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2eb2: e3ffffb5 bsr 0x2e1c // 2e1c + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2eb6: e0000559 bsr 0x3968 // 3968 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2eba: e3fff78b bsr 0x1dd0 // 1dd0 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2ebe: 3101 movi r1, 1 + 2ec0: 300f movi r0, 15 + 2ec2: e3fff799 bsr 0x1df4 // 1df4 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2ec6: 3102 movi r1, 2 + 2ec8: 3019 movi r0, 25 + 2eca: e3fff795 bsr 0x1df4 // 1df4 + + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 2ece: 3101 movi r1, 1 + 2ed0: 3016 movi r0, 22 + 2ed2: e3fff791 bsr 0x1df4 // 1df4 + + Set_INT_Priority(EXI4_IRQ, 1); //过零信号外部IO中断 + 2ed6: 3101 movi r1, 1 + 2ed8: 3017 movi r0, 23 + 2eda: e3fff78d bsr 0x1df4 // 1df4 + +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2ede: e0002345 bsr 0x7568 // 7568 + + BT_CONFIG(); //BT initial + 2ee2: e3ffff6d bsr 0x2dbc // 2dbc + + GPIO_CONFIG(); + 2ee6: e3ffff25 bsr 0x2d30 // 2d30 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2eea: 102b lrw r1, 0x7c98 // 2f14 + 2eec: 3002 movi r0, 2 + 2eee: e0000543 bsr 0x3974 // 3974 + + HT1621_Init(); //显示驱动初始化 + 2ef2: e00015cf bsr 0x5a90 // 5a90 + + TM1812_LED_Init(); + 2ef6: e0001565 bsr 0x59c0 // 59c0 + + ADC_Init(); + 2efa: e0000e6b bsr 0x4bd0 // 4bd0 + + Touch_Key_Init(); + 2efe: e0000797 bsr 0x3e2c // 3e2c +} + 2f02: 1490 pop r15 + 2f04: 2000005c .long 0x2000005c + 2f08: 200000b4 .long 0x200000b4 + 2f0c: 200000b0 .long 0x200000b0 + 2f10: 0fffffff .long 0x0fffffff + 2f14: 00007c98 .long 0x00007c98 + +Disassembly of section .text.SYSCONIntHandler: + +00002f18 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2f18: 1460 nie + 2f1a: 1462 ipush + // ISR content ... + nop; + 2f1c: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2f1e: 117a lrw r3, 0x2000005c // 3004 + 2f20: 3280 movi r2, 128 + 2f22: 9360 ld.w r3, (r3, 0x0) + 2f24: 60c8 addu r3, r2 + 2f26: 9323 ld.w r1, (r3, 0xc) + 2f28: 3001 movi r0, 1 + 2f2a: 6840 and r1, r0 + 2f2c: 3940 cmpnei r1, 0 + 2f2e: 0c04 bf 0x2f36 // 2f36 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2f30: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2f32: 1463 ipop + 2f34: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2f36: 9323 ld.w r1, (r3, 0xc) + 2f38: 3002 movi r0, 2 + 2f3a: 6840 and r1, r0 + 2f3c: 3940 cmpnei r1, 0 + 2f3e: 0bf9 bt 0x2f30 // 2f30 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2f40: 9323 ld.w r1, (r3, 0xc) + 2f42: 3008 movi r0, 8 + 2f44: 6840 and r1, r0 + 2f46: 3940 cmpnei r1, 0 + 2f48: 0bf4 bt 0x2f30 // 2f30 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2f4a: 9323 ld.w r1, (r3, 0xc) + 2f4c: 3010 movi r0, 16 + 2f4e: 6840 and r1, r0 + 2f50: 3940 cmpnei r1, 0 + 2f52: 0bef bt 0x2f30 // 2f30 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2f54: 9323 ld.w r1, (r3, 0xc) + 2f56: 6848 and r1, r2 + 2f58: 3940 cmpnei r1, 0 + 2f5a: 0c03 bf 0x2f60 // 2f60 + SYSCON->ICR = CMD_ERR_ST; + 2f5c: b341 st.w r2, (r3, 0x4) +} + 2f5e: 07ea br 0x2f32 // 2f32 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2f60: 3280 movi r2, 128 + 2f62: 9323 ld.w r1, (r3, 0xc) + 2f64: 4241 lsli r2, r2, 1 + 2f66: 6848 and r1, r2 + 2f68: 3940 cmpnei r1, 0 + 2f6a: 0bf9 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2f6c: 3280 movi r2, 128 + 2f6e: 9323 ld.w r1, (r3, 0xc) + 2f70: 4242 lsli r2, r2, 2 + 2f72: 6848 and r1, r2 + 2f74: 3940 cmpnei r1, 0 + 2f76: 0bf3 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2f78: 3280 movi r2, 128 + 2f7a: 9323 ld.w r1, (r3, 0xc) + 2f7c: 4243 lsli r2, r2, 3 + 2f7e: 6848 and r1, r2 + 2f80: 3940 cmpnei r1, 0 + 2f82: 0bed bt 0x2f5c // 2f5c + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2f84: 3280 movi r2, 128 + 2f86: 9323 ld.w r1, (r3, 0xc) + 2f88: 4244 lsli r2, r2, 4 + 2f8a: 6848 and r1, r2 + 2f8c: 3940 cmpnei r1, 0 + 2f8e: 0c03 bf 0x2f94 // 2f94 + nop; + 2f90: 6c03 mov r0, r0 + 2f92: 07e5 br 0x2f5c // 2f5c + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2f94: 3280 movi r2, 128 + 2f96: 9323 ld.w r1, (r3, 0xc) + 2f98: 4245 lsli r2, r2, 5 + 2f9a: 6848 and r1, r2 + 2f9c: 3940 cmpnei r1, 0 + 2f9e: 0bdf bt 0x2f5c // 2f5c + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 2fa0: 3280 movi r2, 128 + 2fa2: 9323 ld.w r1, (r3, 0xc) + 2fa4: 4246 lsli r2, r2, 6 + 2fa6: 6848 and r1, r2 + 2fa8: 3940 cmpnei r1, 0 + 2faa: 0bd9 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 2fac: 3280 movi r2, 128 + 2fae: 9323 ld.w r1, (r3, 0xc) + 2fb0: 4247 lsli r2, r2, 7 + 2fb2: 6848 and r1, r2 + 2fb4: 3940 cmpnei r1, 0 + 2fb6: 0bd3 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 2fb8: 3280 movi r2, 128 + 2fba: 9323 ld.w r1, (r3, 0xc) + 2fbc: 424b lsli r2, r2, 11 + 2fbe: 6848 and r1, r2 + 2fc0: 3940 cmpnei r1, 0 + 2fc2: 0bcd bt 0x2f5c // 2f5c + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 2fc4: 3280 movi r2, 128 + 2fc6: 9323 ld.w r1, (r3, 0xc) + 2fc8: 424c lsli r2, r2, 12 + 2fca: 6848 and r1, r2 + 2fcc: 3940 cmpnei r1, 0 + 2fce: 0bc7 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 2fd0: 3280 movi r2, 128 + 2fd2: 9323 ld.w r1, (r3, 0xc) + 2fd4: 424d lsli r2, r2, 13 + 2fd6: 6848 and r1, r2 + 2fd8: 3940 cmpnei r1, 0 + 2fda: 0bc1 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 2fdc: 3280 movi r2, 128 + 2fde: 9323 ld.w r1, (r3, 0xc) + 2fe0: 424e lsli r2, r2, 14 + 2fe2: 6848 and r1, r2 + 2fe4: 3940 cmpnei r1, 0 + 2fe6: 0bbb bt 0x2f5c // 2f5c + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 2fe8: 3280 movi r2, 128 + 2fea: 9323 ld.w r1, (r3, 0xc) + 2fec: 424f lsli r2, r2, 15 + 2fee: 6848 and r1, r2 + 2ff0: 3940 cmpnei r1, 0 + 2ff2: 0bb5 bt 0x2f5c // 2f5c + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2ff4: 3280 movi r2, 128 + 2ff6: 9323 ld.w r1, (r3, 0xc) + 2ff8: 4256 lsli r2, r2, 22 + 2ffa: 6848 and r1, r2 + 2ffc: 3940 cmpnei r1, 0 + 2ffe: 0baf bt 0x2f5c // 2f5c + 3000: 0799 br 0x2f32 // 2f32 + 3002: 0000 bkpt + 3004: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003008 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3008: 1460 nie + 300a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 300c: 1078 lrw r3, 0x20000060 // 306c + 300e: 3101 movi r1, 1 + 3010: 9360 ld.w r3, (r3, 0x0) + 3012: 934b ld.w r2, (r3, 0x2c) + 3014: 6884 and r2, r1 + 3016: 3a40 cmpnei r2, 0 + 3018: 0c04 bf 0x3020 // 3020 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 301a: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 301c: 1463 ipop + 301e: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3020: 934b ld.w r2, (r3, 0x2c) + 3022: 3102 movi r1, 2 + 3024: 6884 and r2, r1 + 3026: 3a40 cmpnei r2, 0 + 3028: 0bf9 bt 0x301a // 301a + else if(IFC->MISR&PEP_END_INT) + 302a: 934b ld.w r2, (r3, 0x2c) + 302c: 3104 movi r1, 4 + 302e: 6884 and r2, r1 + 3030: 3a40 cmpnei r2, 0 + 3032: 0bf4 bt 0x301a // 301a + else if(IFC->MISR&PROT_ERR_INT) + 3034: 3280 movi r2, 128 + 3036: 932b ld.w r1, (r3, 0x2c) + 3038: 4245 lsli r2, r2, 5 + 303a: 6848 and r1, r2 + 303c: 3940 cmpnei r1, 0 + 303e: 0c03 bf 0x3044 // 3044 + IFC->ICR=OVW_ERR_INT; + 3040: b34c st.w r2, (r3, 0x30) +} + 3042: 07ed br 0x301c // 301c + else if(IFC->MISR&UDEF_ERR_INT) + 3044: 3280 movi r2, 128 + 3046: 932b ld.w r1, (r3, 0x2c) + 3048: 4246 lsli r2, r2, 6 + 304a: 6848 and r1, r2 + 304c: 3940 cmpnei r1, 0 + 304e: 0bf9 bt 0x3040 // 3040 + else if(IFC->MISR&ADDR_ERR_INT) + 3050: 3280 movi r2, 128 + 3052: 932b ld.w r1, (r3, 0x2c) + 3054: 4247 lsli r2, r2, 7 + 3056: 6848 and r1, r2 + 3058: 3940 cmpnei r1, 0 + 305a: 0bf3 bt 0x3040 // 3040 + else if(IFC->MISR&OVW_ERR_INT) + 305c: 3280 movi r2, 128 + 305e: 932b ld.w r1, (r3, 0x2c) + 3060: 4248 lsli r2, r2, 8 + 3062: 6848 and r1, r2 + 3064: 3940 cmpnei r1, 0 + 3066: 0bed bt 0x3040 // 3040 + 3068: 07da br 0x301c // 301c + 306a: 0000 bkpt + 306c: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003070 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3070: 1460 nie + 3072: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3074: 1078 lrw r3, 0x20000050 // 30d4 + 3076: 3101 movi r1, 1 + 3078: 9360 ld.w r3, (r3, 0x0) + 307a: 9348 ld.w r2, (r3, 0x20) + 307c: 6884 and r2, r1 + 307e: 3a40 cmpnei r2, 0 + 3080: 0c04 bf 0x3088 // 3088 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3082: 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; + } +} + 3084: 1463 ipop + 3086: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3088: 9348 ld.w r2, (r3, 0x20) + 308a: 3102 movi r1, 2 + 308c: 6884 and r2, r1 + 308e: 3a40 cmpnei r2, 0 + 3090: 0bf9 bt 0x3082 // 3082 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3092: 9348 ld.w r2, (r3, 0x20) + 3094: 3104 movi r1, 4 + 3096: 6884 and r2, r1 + 3098: 3a40 cmpnei r2, 0 + 309a: 0bf4 bt 0x3082 // 3082 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 309c: 9348 ld.w r2, (r3, 0x20) + 309e: 3110 movi r1, 16 + 30a0: 6884 and r2, r1 + 30a2: 3a40 cmpnei r2, 0 + 30a4: 0bef bt 0x3082 // 3082 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 30a6: 9348 ld.w r2, (r3, 0x20) + 30a8: 3120 movi r1, 32 + 30aa: 6884 and r2, r1 + 30ac: 3a40 cmpnei r2, 0 + 30ae: 0bea bt 0x3082 // 3082 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 30b0: 9348 ld.w r2, (r3, 0x20) + 30b2: 3140 movi r1, 64 + 30b4: 6884 and r2, r1 + 30b6: 3a40 cmpnei r2, 0 + 30b8: 0be5 bt 0x3082 // 3082 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 30ba: 9348 ld.w r2, (r3, 0x20) + 30bc: 3180 movi r1, 128 + 30be: 6884 and r2, r1 + 30c0: 3a40 cmpnei r2, 0 + 30c2: 0be0 bt 0x3082 // 3082 + 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 + 30c4: 3280 movi r2, 128 + 30c6: 9328 ld.w r1, (r3, 0x20) + 30c8: 4249 lsli r2, r2, 9 + 30ca: 6848 and r1, r2 + 30cc: 3940 cmpnei r1, 0 + 30ce: 0fdb bf 0x3084 // 3084 + ADC0->CSR = ADC12_SEQ_END0; + 30d0: b347 st.w r2, (r3, 0x1c) +} + 30d2: 07d9 br 0x3084 // 3084 + 30d4: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +000030d8 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 30d8: 1460 nie + 30da: 1462 ipush + 30dc: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 30de: 1387 lrw r4, 0x20000020 // 3278 + 30e0: 3280 movi r2, 128 + 30e2: 9460 ld.w r3, (r4, 0x0) + 30e4: 60c8 addu r3, r2 + 30e6: 9335 ld.w r1, (r3, 0x54) + 30e8: 3001 movi r0, 1 + 30ea: 6840 and r1, r0 + 30ec: 3940 cmpnei r1, 0 + 30ee: 0c03 bf 0x30f4 // 30f4 + 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; + 30f0: b317 st.w r0, (r3, 0x5c) + 30f2: 0424 br 0x313a // 313a + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 30f4: 9335 ld.w r1, (r3, 0x54) + 30f6: 3002 movi r0, 2 + 30f8: 6840 and r1, r0 + 30fa: 3940 cmpnei r1, 0 + 30fc: 0bfa bt 0x30f0 // 30f0 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 30fe: 9335 ld.w r1, (r3, 0x54) + 3100: 3004 movi r0, 4 + 3102: 6840 and r1, r0 + 3104: 3940 cmpnei r1, 0 + 3106: 0bf5 bt 0x30f0 // 30f0 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3108: 9335 ld.w r1, (r3, 0x54) + 310a: 3008 movi r0, 8 + 310c: 6840 and r1, r0 + 310e: 3940 cmpnei r1, 0 + 3110: 0bf0 bt 0x30f0 // 30f0 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3112: 9335 ld.w r1, (r3, 0x54) + 3114: 3010 movi r0, 16 + 3116: 6840 and r1, r0 + 3118: 3940 cmpnei r1, 0 + 311a: 0c1f bf 0x3158 // 3158 + EPT0->ICR=EPT_CAP_LD0; + 311c: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 311e: 3200 movi r2, 0 + 3120: 3101 movi r1, 1 + 3122: 3000 movi r0, 0 + 3124: e3fff5fe bsr 0x1d20 // 1d20 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 3128: 3201 movi r2, 1 + 312a: 3101 movi r1, 1 + 312c: 3001 movi r0, 1 + 312e: e3fff5f9 bsr 0x1d20 // 1d20 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3132: 9460 ld.w r3, (r4, 0x0) + 3134: 934b ld.w r2, (r3, 0x2c) + 3136: 1272 lrw r3, 0x200002c4 // 327c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3138: 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 + 313a: 9460 ld.w r3, (r4, 0x0) + 313c: 3280 movi r2, 128 + 313e: 60c8 addu r3, r2 + 3140: 932b ld.w r1, (r3, 0x2c) + 3142: 3001 movi r0, 1 + 3144: 6840 and r1, r0 + 3146: 3940 cmpnei r1, 0 + 3148: 0c61 bf 0x320a // 320a + { + 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; + 314a: 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; + } +} + 314c: d9ee2001 ld.w r15, (r14, 0x4) + 3150: 9880 ld.w r4, (r14, 0x0) + 3152: 1402 addi r14, r14, 8 + 3154: 1463 ipop + 3156: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 3158: 9335 ld.w r1, (r3, 0x54) + 315a: 3020 movi r0, 32 + 315c: 6840 and r1, r0 + 315e: 3940 cmpnei r1, 0 + 3160: 0c10 bf 0x3180 // 3180 + EPT0->ICR=EPT_CAP_LD1; + 3162: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3164: 3200 movi r2, 0 + 3166: 3101 movi r1, 1 + 3168: 3001 movi r0, 1 + 316a: e3fff5db bsr 0x1d20 // 1d20 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 316e: 3201 movi r2, 1 + 3170: 3101 movi r1, 1 + 3172: 3000 movi r0, 0 + 3174: e3fff5d6 bsr 0x1d20 // 1d20 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3178: 9460 ld.w r3, (r4, 0x0) + 317a: 934c ld.w r2, (r3, 0x30) + 317c: 1261 lrw r3, 0x200002c0 // 3280 + 317e: 07dd br 0x3138 // 3138 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3180: 9335 ld.w r1, (r3, 0x54) + 3182: 3040 movi r0, 64 + 3184: 6840 and r1, r0 + 3186: 3940 cmpnei r1, 0 + 3188: 0bb4 bt 0x30f0 // 30f0 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 318a: 9335 ld.w r1, (r3, 0x54) + 318c: 6848 and r1, r2 + 318e: 3940 cmpnei r1, 0 + 3190: 0c03 bf 0x3196 // 3196 + EPT0->ICR=EPT_CDD; + 3192: b357 st.w r2, (r3, 0x5c) + 3194: 07d3 br 0x313a // 313a + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3196: 3280 movi r2, 128 + 3198: 9335 ld.w r1, (r3, 0x54) + 319a: 4241 lsli r2, r2, 1 + 319c: 6848 and r1, r2 + 319e: 3940 cmpnei r1, 0 + 31a0: 0bf9 bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 31a2: 3280 movi r2, 128 + 31a4: 9335 ld.w r1, (r3, 0x54) + 31a6: 4242 lsli r2, r2, 2 + 31a8: 6848 and r1, r2 + 31aa: 3940 cmpnei r1, 0 + 31ac: 0bf3 bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 31ae: 3280 movi r2, 128 + 31b0: 9335 ld.w r1, (r3, 0x54) + 31b2: 4243 lsli r2, r2, 3 + 31b4: 6848 and r1, r2 + 31b6: 3940 cmpnei r1, 0 + 31b8: 0bed bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 31ba: 3280 movi r2, 128 + 31bc: 9335 ld.w r1, (r3, 0x54) + 31be: 4244 lsli r2, r2, 4 + 31c0: 6848 and r1, r2 + 31c2: 3940 cmpnei r1, 0 + 31c4: 0be7 bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 31c6: 3280 movi r2, 128 + 31c8: 9335 ld.w r1, (r3, 0x54) + 31ca: 4245 lsli r2, r2, 5 + 31cc: 6848 and r1, r2 + 31ce: 3940 cmpnei r1, 0 + 31d0: 0be1 bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 31d2: 3280 movi r2, 128 + 31d4: 9335 ld.w r1, (r3, 0x54) + 31d6: 4246 lsli r2, r2, 6 + 31d8: 6848 and r1, r2 + 31da: 3940 cmpnei r1, 0 + 31dc: 0bdb bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 31de: 3280 movi r2, 128 + 31e0: 9335 ld.w r1, (r3, 0x54) + 31e2: 4247 lsli r2, r2, 7 + 31e4: 6848 and r1, r2 + 31e6: 3940 cmpnei r1, 0 + 31e8: 0bd5 bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 31ea: 3280 movi r2, 128 + 31ec: 9335 ld.w r1, (r3, 0x54) + 31ee: 4248 lsli r2, r2, 8 + 31f0: 6848 and r1, r2 + 31f2: 3940 cmpnei r1, 0 + 31f4: 0bcf bt 0x3192 // 3192 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 31f6: 3280 movi r2, 128 + 31f8: 9335 ld.w r1, (r3, 0x54) + 31fa: 4249 lsli r2, r2, 9 + 31fc: 6848 and r1, r2 + 31fe: 3940 cmpnei r1, 0 + 3200: 0f9d bf 0x313a // 313a + EPT0->ICR=EPT_PEND; + 3202: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3204: e3fff98e bsr 0x2520 // 2520 + 3208: 0799 br 0x313a // 313a + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 320a: 932b ld.w r1, (r3, 0x2c) + 320c: 3002 movi r0, 2 + 320e: 6840 and r1, r0 + 3210: 3940 cmpnei r1, 0 + 3212: 0b9c bt 0x314a // 314a + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3214: 932b ld.w r1, (r3, 0x2c) + 3216: 3004 movi r0, 4 + 3218: 6840 and r1, r0 + 321a: 3940 cmpnei r1, 0 + 321c: 0b97 bt 0x314a // 314a + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 321e: 932b ld.w r1, (r3, 0x2c) + 3220: 3008 movi r0, 8 + 3222: 6840 and r1, r0 + 3224: 3940 cmpnei r1, 0 + 3226: 0b92 bt 0x314a // 314a + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 3228: 932b ld.w r1, (r3, 0x2c) + 322a: 3010 movi r0, 16 + 322c: 6840 and r1, r0 + 322e: 3940 cmpnei r1, 0 + 3230: 0b8d bt 0x314a // 314a + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3232: 932b ld.w r1, (r3, 0x2c) + 3234: 3020 movi r0, 32 + 3236: 6840 and r1, r0 + 3238: 3940 cmpnei r1, 0 + 323a: 0b88 bt 0x314a // 314a + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 323c: 932b ld.w r1, (r3, 0x2c) + 323e: 3040 movi r0, 64 + 3240: 6840 and r1, r0 + 3242: 3940 cmpnei r1, 0 + 3244: 0b83 bt 0x314a // 314a + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 3246: 932b ld.w r1, (r3, 0x2c) + 3248: 6848 and r1, r2 + 324a: 3940 cmpnei r1, 0 + 324c: 0c03 bf 0x3252 // 3252 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 324e: b34d st.w r2, (r3, 0x34) +} + 3250: 077e br 0x314c // 314c + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3252: 3280 movi r2, 128 + 3254: 932b ld.w r1, (r3, 0x2c) + 3256: 4241 lsli r2, r2, 1 + 3258: 6848 and r1, r2 + 325a: 3940 cmpnei r1, 0 + 325c: 0bf9 bt 0x324e // 324e + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 325e: 3280 movi r2, 128 + 3260: 932b ld.w r1, (r3, 0x2c) + 3262: 4242 lsli r2, r2, 2 + 3264: 6848 and r1, r2 + 3266: 3940 cmpnei r1, 0 + 3268: 0bf3 bt 0x324e // 324e + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 326a: 3280 movi r2, 128 + 326c: 932b ld.w r1, (r3, 0x2c) + 326e: 4243 lsli r2, r2, 3 + 3270: 6848 and r1, r2 + 3272: 3940 cmpnei r1, 0 + 3274: 0bed bt 0x324e // 324e + 3276: 076b br 0x314c // 314c + 3278: 20000020 .long 0x20000020 + 327c: 200002c4 .long 0x200002c4 + 3280: 200002c0 .long 0x200002c0 + +Disassembly of section .text.WWDTHandler: + +00003284 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3284: 1460 nie + 3286: 1462 ipush + 3288: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 328a: 10ab lrw r5, 0x20000010 // 32b4 + 328c: 3401 movi r4, 1 + 328e: 9560 ld.w r3, (r5, 0x0) + 3290: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3292: 30ff movi r0, 255 + 3294: e3fff7aa bsr 0x21e8 // 21e8 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3298: 9540 ld.w r2, (r5, 0x0) + 329a: 9263 ld.w r3, (r2, 0xc) + 329c: 68d0 and r3, r4 + 329e: 3b40 cmpnei r3, 0 + 32a0: 0c02 bf 0x32a4 // 32a4 + { + WWDT->ICR = WWDT_EVI; + 32a2: b285 st.w r4, (r2, 0x14) + } +} + 32a4: d9ee2002 ld.w r15, (r14, 0x8) + 32a8: 98a1 ld.w r5, (r14, 0x4) + 32aa: 9880 ld.w r4, (r14, 0x0) + 32ac: 1403 addi r14, r14, 12 + 32ae: 1463 ipop + 32b0: 1461 nir + 32b2: 0000 bkpt + 32b4: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000032b8 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 32b8: 1460 nie + 32ba: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 32bc: 107e lrw r3, 0x20000024 // 3334 + 32be: 3101 movi r1, 1 + 32c0: 9360 ld.w r3, (r3, 0x0) + 32c2: 237f addi r3, 128 + 32c4: 9355 ld.w r2, (r3, 0x54) + 32c6: 6884 and r2, r1 + 32c8: 3a40 cmpnei r2, 0 + 32ca: 0c04 bf 0x32d2 // 32d2 + { + 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; + 32cc: 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; + } +} + 32ce: 1463 ipop + 32d0: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 32d2: 9355 ld.w r2, (r3, 0x54) + 32d4: 3102 movi r1, 2 + 32d6: 6884 and r2, r1 + 32d8: 3a40 cmpnei r2, 0 + 32da: 0bf9 bt 0x32cc // 32cc + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 32dc: 9355 ld.w r2, (r3, 0x54) + 32de: 3110 movi r1, 16 + 32e0: 6884 and r2, r1 + 32e2: 3a40 cmpnei r2, 0 + 32e4: 0bf4 bt 0x32cc // 32cc + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 32e6: 9355 ld.w r2, (r3, 0x54) + 32e8: 3120 movi r1, 32 + 32ea: 6884 and r2, r1 + 32ec: 3a40 cmpnei r2, 0 + 32ee: 0bef bt 0x32cc // 32cc + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 32f0: 3280 movi r2, 128 + 32f2: 9335 ld.w r1, (r3, 0x54) + 32f4: 4241 lsli r2, r2, 1 + 32f6: 6848 and r1, r2 + 32f8: 3940 cmpnei r1, 0 + 32fa: 0c03 bf 0x3300 // 3300 + GPT0->ICR = GPT_INT_PEND; + 32fc: b357 st.w r2, (r3, 0x5c) +} + 32fe: 07e8 br 0x32ce // 32ce + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3300: 3280 movi r2, 128 + 3302: 9335 ld.w r1, (r3, 0x54) + 3304: 4242 lsli r2, r2, 2 + 3306: 6848 and r1, r2 + 3308: 3940 cmpnei r1, 0 + 330a: 0bf9 bt 0x32fc // 32fc + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 330c: 3280 movi r2, 128 + 330e: 9335 ld.w r1, (r3, 0x54) + 3310: 4243 lsli r2, r2, 3 + 3312: 6848 and r1, r2 + 3314: 3940 cmpnei r1, 0 + 3316: 0bf3 bt 0x32fc // 32fc + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 3318: 3280 movi r2, 128 + 331a: 9335 ld.w r1, (r3, 0x54) + 331c: 4244 lsli r2, r2, 4 + 331e: 6848 and r1, r2 + 3320: 3940 cmpnei r1, 0 + 3322: 0bed bt 0x32fc // 32fc + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3324: 3280 movi r2, 128 + 3326: 9335 ld.w r1, (r3, 0x54) + 3328: 4249 lsli r2, r2, 9 + 332a: 6848 and r1, r2 + 332c: 3940 cmpnei r1, 0 + 332e: 0be7 bt 0x32fc // 32fc + 3330: 07cf br 0x32ce // 32ce + 3332: 0000 bkpt + 3334: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00003338 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 3338: 1460 nie + 333a: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 333c: 1079 lrw r3, 0x20000018 // 33a0 + 333e: 3101 movi r1, 1 + 3340: 9360 ld.w r3, (r3, 0x0) + 3342: 934a ld.w r2, (r3, 0x28) + 3344: 6884 and r2, r1 + 3346: 3a40 cmpnei r2, 0 + 3348: 0c14 bf 0x3370 // 3370 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 334a: 1057 lrw r2, 0xca53 // 33a4 + RTC->ICR=ALRA_INT; + 334c: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 334e: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3350: 9342 ld.w r2, (r3, 0x8) + 3352: 6c84 or r2, r1 + 3354: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 3356: 3280 movi r2, 128 + 3358: 424d lsli r2, r2, 13 + 335a: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 335c: 3102 movi r1, 2 + 335e: 9342 ld.w r2, (r3, 0x8) + 3360: 6884 and r2, r1 + 3362: 3a40 cmpnei r2, 0 + 3364: 0bfd bt 0x335e // 335e + RTC->CR &= ~0x1; + 3366: 9342 ld.w r2, (r3, 0x8) + 3368: 3a80 bclri r2, 0 + 336a: 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; + } +} + 336c: 1463 ipop + 336e: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3370: 934a ld.w r2, (r3, 0x28) + 3372: 3102 movi r1, 2 + 3374: 6884 and r2, r1 + 3376: 3a40 cmpnei r2, 0 + 3378: 0c03 bf 0x337e // 337e + RTC->ICR=RTC_TRGEV1_INT; + 337a: b32b st.w r1, (r3, 0x2c) +} + 337c: 07f8 br 0x336c // 336c + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 337e: 934a ld.w r2, (r3, 0x28) + 3380: 3104 movi r1, 4 + 3382: 6884 and r2, r1 + 3384: 3a40 cmpnei r2, 0 + 3386: 0bfa bt 0x337a // 337a + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3388: 934a ld.w r2, (r3, 0x28) + 338a: 3108 movi r1, 8 + 338c: 6884 and r2, r1 + 338e: 3a40 cmpnei r2, 0 + 3390: 0bf5 bt 0x337a // 337a + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3392: 934a ld.w r2, (r3, 0x28) + 3394: 3110 movi r1, 16 + 3396: 6884 and r2, r1 + 3398: 3a40 cmpnei r2, 0 + 339a: 0bf0 bt 0x337a // 337a + 339c: 07e8 br 0x336c // 336c + 339e: 0000 bkpt + 33a0: 20000018 .long 0x20000018 + 33a4: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000033a8 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 33a8: 1460 nie + 33aa: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 33ac: 106d lrw r3, 0x20000040 // 33e0 + 33ae: 3102 movi r1, 2 + 33b0: 9360 ld.w r3, (r3, 0x0) + 33b2: 9343 ld.w r2, (r3, 0xc) + 33b4: 6884 and r2, r1 + 33b6: 3a40 cmpnei r2, 0 + 33b8: 0c03 bf 0x33be // 33be + { + 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; + 33ba: b323 st.w r1, (r3, 0xc) + } +} + 33bc: 0410 br 0x33dc // 33dc + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 33be: 9343 ld.w r2, (r3, 0xc) + 33c0: 3101 movi r1, 1 + 33c2: 6884 and r2, r1 + 33c4: 3a40 cmpnei r2, 0 + 33c6: 0bfa bt 0x33ba // 33ba + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 33c8: 9343 ld.w r2, (r3, 0xc) + 33ca: 3108 movi r1, 8 + 33cc: 6884 and r2, r1 + 33ce: 3a40 cmpnei r2, 0 + 33d0: 0bf5 bt 0x33ba // 33ba + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 33d2: 9343 ld.w r2, (r3, 0xc) + 33d4: 3104 movi r1, 4 + 33d6: 6884 and r2, r1 + 33d8: 3a40 cmpnei r2, 0 + 33da: 0bf0 bt 0x33ba // 33ba +} + 33dc: 1463 ipop + 33de: 1461 nir + 33e0: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +000033e4 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 33e4: 1460 nie + 33e6: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 33e8: 106d lrw r3, 0x2000003c // 341c + 33ea: 3102 movi r1, 2 + 33ec: 9360 ld.w r3, (r3, 0x0) + 33ee: 9343 ld.w r2, (r3, 0xc) + 33f0: 6884 and r2, r1 + 33f2: 3a40 cmpnei r2, 0 + 33f4: 0c03 bf 0x33fa // 33fa + { + 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; + 33f6: b323 st.w r1, (r3, 0xc) + } +} + 33f8: 0410 br 0x3418 // 3418 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 33fa: 9343 ld.w r2, (r3, 0xc) + 33fc: 3101 movi r1, 1 + 33fe: 6884 and r2, r1 + 3400: 3a40 cmpnei r2, 0 + 3402: 0bfa bt 0x33f6 // 33f6 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3404: 9343 ld.w r2, (r3, 0xc) + 3406: 3108 movi r1, 8 + 3408: 6884 and r2, r1 + 340a: 3a40 cmpnei r2, 0 + 340c: 0bf5 bt 0x33f6 // 33f6 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 340e: 9343 ld.w r2, (r3, 0xc) + 3410: 3104 movi r1, 4 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0bf0 bt 0x33f6 // 33f6 +} + 3418: 1463 ipop + 341a: 1461 nir + 341c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003420 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3420: 1460 nie + 3422: 1462 ipush + 3424: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3426: 107f lrw r3, 0x20000038 // 34a0 + 3428: 3102 movi r1, 2 + 342a: 9360 ld.w r3, (r3, 0x0) + 342c: 9343 ld.w r2, (r3, 0xc) + 342e: 6884 and r2, r1 + 3430: 3a40 cmpnei r2, 0 + 3432: 0c0b bf 0x3448 // 3448 + { + UART2->ISR=UART_RX_INT_S; + 3434: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 3436: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 3438: 7400 zextb r0, r0 + 343a: e000032d bsr 0x3a94 // 3a94 + RS485_Comm_End ++; + } + + } + +} + 343e: d9ee2000 ld.w r15, (r14, 0x0) + 3442: 1401 addi r14, r14, 4 + 3444: 1463 ipop + 3446: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 3448: 9323 ld.w r1, (r3, 0xc) + 344a: 3201 movi r2, 1 + 344c: 6848 and r1, r2 + 344e: 3940 cmpnei r1, 0 + 3450: 0c0d bf 0x346a // 346a + UART2->ISR=UART_TX_INT_S; + 3452: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3454: 1074 lrw r3, 0x2000012c // 34a4 + 3456: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3458: 1074 lrw r3, 0x20000130 // 34a8 + 345a: 9360 ld.w r3, (r3, 0x0) + 345c: 3b41 cmpnei r3, 1 + 345e: 0bf0 bt 0x343e // 343e + RS485_Comm_Start ++; + 3460: 1053 lrw r2, 0x20000134 // 34ac + RS485_Comm_End ++; + 3462: 9260 ld.w r3, (r2, 0x0) + 3464: 2300 addi r3, 1 + 3466: b260 st.w r3, (r2, 0x0) +} + 3468: 07eb br 0x343e // 343e + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 346a: 9343 ld.w r2, (r3, 0xc) + 346c: 3108 movi r1, 8 + 346e: 6884 and r2, r1 + 3470: 3a40 cmpnei r2, 0 + 3472: 0c03 bf 0x3478 // 3478 + UART2->ISR=UART_TX_IOV_S; + 3474: b323 st.w r1, (r3, 0xc) + 3476: 07e4 br 0x343e // 343e + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3478: 9343 ld.w r2, (r3, 0xc) + 347a: 3104 movi r1, 4 + 347c: 6884 and r2, r1 + 347e: 3a40 cmpnei r2, 0 + 3480: 0bfa bt 0x3474 // 3474 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3482: 3180 movi r1, 128 + 3484: 9303 ld.w r0, (r3, 0xc) + 3486: 412c lsli r1, r1, 12 + 3488: 6804 and r0, r1 + 348a: 3840 cmpnei r0, 0 + 348c: 0fd9 bf 0x343e // 343e + UART2->ISR=UART_TX_DONE_S; + 348e: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3490: 1065 lrw r3, 0x2000012c // 34a4 + 3492: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3494: 1065 lrw r3, 0x20000130 // 34a8 + 3496: 9360 ld.w r3, (r3, 0x0) + 3498: 3b41 cmpnei r3, 1 + 349a: 0bd2 bt 0x343e // 343e + RS485_Comm_End ++; + 349c: 1045 lrw r2, 0x20000138 // 34b0 + 349e: 07e2 br 0x3462 // 3462 + 34a0: 20000038 .long 0x20000038 + 34a4: 2000012c .long 0x2000012c + 34a8: 20000130 .long 0x20000130 + 34ac: 20000134 .long 0x20000134 + 34b0: 20000138 .long 0x20000138 + +Disassembly of section .text.SPI0IntHandler: + +000034b4 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 34b4: 1460 nie + 34b6: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 34b8: 1178 lrw r3, 0x20000034 // 3598 + 34ba: 3101 movi r1, 1 + 34bc: 9360 ld.w r3, (r3, 0x0) + 34be: 9347 ld.w r2, (r3, 0x1c) + 34c0: 6884 and r2, r1 + 34c2: 3a40 cmpnei r2, 0 + 34c4: 0c03 bf 0x34ca // 34ca + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 34c6: b328 st.w r1, (r3, 0x20) + } + +} + 34c8: 0407 br 0x34d6 // 34d6 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 34ca: 9347 ld.w r2, (r3, 0x1c) + 34cc: 3002 movi r0, 2 + 34ce: 6880 and r2, r0 + 34d0: 3a40 cmpnei r2, 0 + 34d2: 0c04 bf 0x34da // 34da + SPI0->ICR = SPI_RTIM; + 34d4: b308 st.w r0, (r3, 0x20) +} + 34d6: 1463 ipop + 34d8: 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 + 34da: 9347 ld.w r2, (r3, 0x1c) + 34dc: 3004 movi r0, 4 + 34de: 6880 and r2, r0 + 34e0: 3a40 cmpnei r2, 0 + 34e2: 0c55 bf 0x358c // 358c + SPI0->ICR = SPI_RXIM; + 34e4: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 34e6: 9302 ld.w r0, (r3, 0x8) + 34e8: 32aa movi r2, 170 + 34ea: 6482 cmpne r0, r2 + 34ec: 083e bt 0x3568 // 3568 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 34ee: 3102 movi r1, 2 + 34f0: 9343 ld.w r2, (r3, 0xc) + 34f2: 6884 and r2, r1 + 34f4: 3a40 cmpnei r2, 0 + 34f6: 0ffd bf 0x34f0 // 34f0 + SPI0->DR = 0x11; + 34f8: 3211 movi r2, 17 + 34fa: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 34fc: 3110 movi r1, 16 + 34fe: 9343 ld.w r2, (r3, 0xc) + 3500: 6884 and r2, r1 + 3502: 3a40 cmpnei r2, 0 + 3504: 0bfd bt 0x34fe // 34fe + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3506: 3102 movi r1, 2 + 3508: 9343 ld.w r2, (r3, 0xc) + 350a: 6884 and r2, r1 + 350c: 3a40 cmpnei r2, 0 + 350e: 0ffd bf 0x3508 // 3508 + SPI0->DR = 0x12; + 3510: 3212 movi r2, 18 + 3512: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3514: 3110 movi r1, 16 + 3516: 9343 ld.w r2, (r3, 0xc) + 3518: 6884 and r2, r1 + 351a: 3a40 cmpnei r2, 0 + 351c: 0bfd bt 0x3516 // 3516 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 351e: 3102 movi r1, 2 + 3520: 9343 ld.w r2, (r3, 0xc) + 3522: 6884 and r2, r1 + 3524: 3a40 cmpnei r2, 0 + 3526: 0ffd bf 0x3520 // 3520 + SPI0->DR = 0x13; + 3528: 3213 movi r2, 19 + 352a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 352c: 3110 movi r1, 16 + 352e: 9343 ld.w r2, (r3, 0xc) + 3530: 6884 and r2, r1 + 3532: 3a40 cmpnei r2, 0 + 3534: 0bfd bt 0x352e // 352e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3536: 3102 movi r1, 2 + 3538: 9343 ld.w r2, (r3, 0xc) + 353a: 6884 and r2, r1 + 353c: 3a40 cmpnei r2, 0 + 353e: 0ffd bf 0x3538 // 3538 + SPI0->DR = 0x14; + 3540: 3214 movi r2, 20 + 3542: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3544: 3110 movi r1, 16 + 3546: 9343 ld.w r2, (r3, 0xc) + 3548: 6884 and r2, r1 + 354a: 3a40 cmpnei r2, 0 + 354c: 0bfd bt 0x3546 // 3546 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 354e: 3102 movi r1, 2 + 3550: 9343 ld.w r2, (r3, 0xc) + 3552: 6884 and r2, r1 + 3554: 3a40 cmpnei r2, 0 + 3556: 0ffd bf 0x3550 // 3550 + SPI0->DR = 0x15; + 3558: 3215 movi r2, 21 + 355a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 355c: 3110 movi r1, 16 + 355e: 9343 ld.w r2, (r3, 0xc) + 3560: 6884 and r2, r1 + 3562: 3a40 cmpnei r2, 0 + 3564: 0bfd bt 0x355e // 355e + 3566: 07b8 br 0x34d6 // 34d6 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 3568: 9343 ld.w r2, (r3, 0xc) + 356a: 6884 and r2, r1 + 356c: 3a40 cmpnei r2, 0 + 356e: 0bb4 bt 0x34d6 // 34d6 + SPI0->DR=0x0; //FIFO=0 + 3570: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3572: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3574: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3576: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3578: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 357a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 357c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 357e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3580: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3582: 9343 ld.w r2, (r3, 0xc) + 3584: 6884 and r2, r1 + 3586: 3a40 cmpnei r2, 0 + 3588: 0bfd bt 0x3582 // 3582 + 358a: 07a6 br 0x34d6 // 34d6 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 358c: 9347 ld.w r2, (r3, 0x1c) + 358e: 3108 movi r1, 8 + 3590: 6884 and r2, r1 + 3592: 3a40 cmpnei r2, 0 + 3594: 0b99 bt 0x34c6 // 34c6 + 3596: 07a0 br 0x34d6 // 34d6 + 3598: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +0000359c : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 359c: 1460 nie + 359e: 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) + 35a0: 1073 lrw r3, 0x2000002c // 35ec + 35a2: 3104 movi r1, 4 + 35a4: 9360 ld.w r3, (r3, 0x0) + 35a6: 9349 ld.w r2, (r3, 0x24) + 35a8: 6884 and r2, r1 + 35aa: 3a40 cmpnei r2, 0 + 35ac: 0c02 bf 0x35b0 // 35b0 + { + SIO0->ICR=0X04; + 35ae: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 35b0: 9349 ld.w r2, (r3, 0x24) + 35b2: 3101 movi r1, 1 + 35b4: 6884 and r2, r1 + 35b6: 3a40 cmpnei r2, 0 + 35b8: 0c02 bf 0x35bc // 35bc + { + SIO0->ICR=0X01; + 35ba: 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 + 35bc: 9349 ld.w r2, (r3, 0x24) + 35be: 3102 movi r1, 2 + 35c0: 6884 and r2, r1 + 35c2: 3a40 cmpnei r2, 0 + 35c4: 0c03 bf 0x35ca // 35ca + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 35c6: b32b st.w r1, (r3, 0x2c) + } +} + 35c8: 0410 br 0x35e8 // 35e8 + else if(SIO0->MISR&0X08) //RXBUFFULL + 35ca: 9349 ld.w r2, (r3, 0x24) + 35cc: 3108 movi r1, 8 + 35ce: 6884 and r2, r1 + 35d0: 3a40 cmpnei r2, 0 + 35d2: 0bfa bt 0x35c6 // 35c6 + else if(SIO0->MISR&0X010) //BREAK + 35d4: 9349 ld.w r2, (r3, 0x24) + 35d6: 3110 movi r1, 16 + 35d8: 6884 and r2, r1 + 35da: 3a40 cmpnei r2, 0 + 35dc: 0bf5 bt 0x35c6 // 35c6 + else if(SIO0->MISR&0X020) //TIMEOUT + 35de: 9349 ld.w r2, (r3, 0x24) + 35e0: 3120 movi r1, 32 + 35e2: 6884 and r2, r1 + 35e4: 3a40 cmpnei r2, 0 + 35e6: 0bf0 bt 0x35c6 // 35c6 +} + 35e8: 1463 ipop + 35ea: 1461 nir + 35ec: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +000035f0 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 35f0: 1460 nie + 35f2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 35f4: 106a lrw r3, 0x2000005c // 361c + 35f6: 3101 movi r1, 1 + 35f8: 9360 ld.w r3, (r3, 0x0) + 35fa: 237f addi r3, 128 + 35fc: 934c ld.w r2, (r3, 0x30) + 35fe: 6884 and r2, r1 + 3600: 3a40 cmpnei r2, 0 + 3602: 0c04 bf 0x360a // 360a + { + SYSCON->EXICR = EXI_PIN0; + 3604: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 3606: 1463 ipop + 3608: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 360a: 3280 movi r2, 128 + 360c: 932c ld.w r1, (r3, 0x30) + 360e: 4249 lsli r2, r2, 9 + 3610: 6848 and r1, r2 + 3612: 3940 cmpnei r1, 0 + 3614: 0ff9 bf 0x3606 // 3606 + SYSCON->EXICR = EXI_PIN16; + 3616: b34b st.w r2, (r3, 0x2c) +} + 3618: 07f7 br 0x3606 // 3606 + 361a: 0000 bkpt + 361c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00003620 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 3620: 1460 nie + 3622: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 3624: 106a lrw r3, 0x2000005c // 364c + 3626: 3102 movi r1, 2 + 3628: 9360 ld.w r3, (r3, 0x0) + 362a: 237f addi r3, 128 + 362c: 934c ld.w r2, (r3, 0x30) + 362e: 6884 and r2, r1 + 3630: 3a40 cmpnei r2, 0 + 3632: 0c04 bf 0x363a // 363a + { + SYSCON->EXICR = EXI_PIN1; + 3634: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 3636: 1463 ipop + 3638: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 363a: 3280 movi r2, 128 + 363c: 932c ld.w r1, (r3, 0x30) + 363e: 424a lsli r2, r2, 10 + 3640: 6848 and r1, r2 + 3642: 3940 cmpnei r1, 0 + 3644: 0ff9 bf 0x3636 // 3636 + SYSCON->EXICR = EXI_PIN17; + 3646: b34b st.w r2, (r3, 0x2c) +} + 3648: 07f7 br 0x3636 // 3636 + 364a: 0000 bkpt + 364c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00003650 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 3650: 1460 nie + 3652: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 3654: 1070 lrw r3, 0x2000005c // 3694 + 3656: 3104 movi r1, 4 + 3658: 9360 ld.w r3, (r3, 0x0) + 365a: 237f addi r3, 128 + 365c: 934c ld.w r2, (r3, 0x30) + 365e: 6884 and r2, r1 + 3660: 3a40 cmpnei r2, 0 + 3662: 0c04 bf 0x366a // 366a + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3664: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 3666: 1463 ipop + 3668: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 366a: 934c ld.w r2, (r3, 0x30) + 366c: 3108 movi r1, 8 + 366e: 6884 and r2, r1 + 3670: 3a40 cmpnei r2, 0 + 3672: 0bf9 bt 0x3664 // 3664 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3674: 3280 movi r2, 128 + 3676: 932c ld.w r1, (r3, 0x30) + 3678: 424b lsli r2, r2, 11 + 367a: 6848 and r1, r2 + 367c: 3940 cmpnei r1, 0 + 367e: 0c03 bf 0x3684 // 3684 + SYSCON->EXICR = EXI_PIN19; + 3680: b34b st.w r2, (r3, 0x2c) +} + 3682: 07f2 br 0x3666 // 3666 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3684: 3280 movi r2, 128 + 3686: 932c ld.w r1, (r3, 0x30) + 3688: 424c lsli r2, r2, 12 + 368a: 6848 and r1, r2 + 368c: 3940 cmpnei r1, 0 + 368e: 0bf9 bt 0x3680 // 3680 + 3690: 07eb br 0x3666 // 3666 + 3692: 0000 bkpt + 3694: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00003698 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 3698: 1460 nie + 369a: 1462 ipush + 369c: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 369e: 1079 lrw r3, 0x2000005c // 3700 + 36a0: 3280 movi r2, 128 + 36a2: 9360 ld.w r3, (r3, 0x0) + 36a4: 60c8 addu r3, r2 + 36a6: 932c ld.w r1, (r3, 0x30) + 36a8: 3010 movi r0, 16 + 36aa: 6840 and r1, r0 + 36ac: 3940 cmpnei r1, 0 + 36ae: 0c03 bf 0x36b4 // 36b4 + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 36b0: b30b st.w r0, (r3, 0x2c) + 36b2: 0409 br 0x36c4 // 36c4 + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 36b4: 932c ld.w r1, (r3, 0x30) + 36b6: 3020 movi r0, 32 + 36b8: 6840 and r1, r0 + 36ba: 3940 cmpnei r1, 0 + 36bc: 0c09 bf 0x36ce // 36ce + SYSCON->EXICR = EXI_PIN5; + 36be: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 36c0: e0000382 bsr 0x3dc4 // 3dc4 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 36c4: d9ee2000 ld.w r15, (r14, 0x0) + 36c8: 1401 addi r14, r14, 4 + 36ca: 1463 ipop + 36cc: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 36ce: 932c ld.w r1, (r3, 0x30) + 36d0: 3040 movi r0, 64 + 36d2: 6840 and r1, r0 + 36d4: 3940 cmpnei r1, 0 + 36d6: 0bed bt 0x36b0 // 36b0 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 36d8: 932c ld.w r1, (r3, 0x30) + 36da: 6848 and r1, r2 + 36dc: 3940 cmpnei r1, 0 + 36de: 0c03 bf 0x36e4 // 36e4 + SYSCON->EXICR = EXI_PIN9; + 36e0: b34b st.w r2, (r3, 0x2c) +} + 36e2: 07f1 br 0x36c4 // 36c4 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 36e4: 3280 movi r2, 128 + 36e6: 932c ld.w r1, (r3, 0x30) + 36e8: 4241 lsli r2, r2, 1 + 36ea: 6848 and r1, r2 + 36ec: 3940 cmpnei r1, 0 + 36ee: 0bf9 bt 0x36e0 // 36e0 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 36f0: 3280 movi r2, 128 + 36f2: 932c ld.w r1, (r3, 0x30) + 36f4: 4242 lsli r2, r2, 2 + 36f6: 6848 and r1, r2 + 36f8: 3940 cmpnei r1, 0 + 36fa: 0bf3 bt 0x36e0 // 36e0 + 36fc: 07e4 br 0x36c4 // 36c4 + 36fe: 0000 bkpt + 3700: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003704 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3704: 1460 nie + 3706: 1462 ipush + 3708: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 370a: 107d lrw r3, 0x2000005c // 377c + 370c: 3280 movi r2, 128 + 370e: 9360 ld.w r3, (r3, 0x0) + 3710: 237f addi r3, 128 + 3712: 932c ld.w r1, (r3, 0x30) + 3714: 4243 lsli r2, r2, 3 + 3716: 6848 and r1, r2 + 3718: 3940 cmpnei r1, 0 + 371a: 0c03 bf 0x3720 // 3720 + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 371c: b34b st.w r2, (r3, 0x2c) + } +} + 371e: 0422 br 0x3762 // 3762 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 3720: 3280 movi r2, 128 + 3722: 932c ld.w r1, (r3, 0x30) + 3724: 4244 lsli r2, r2, 4 + 3726: 6848 and r1, r2 + 3728: 3940 cmpnei r1, 0 + 372a: 0bf9 bt 0x371c // 371c + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 372c: 3280 movi r2, 128 + 372e: 932c ld.w r1, (r3, 0x30) + 3730: 4245 lsli r2, r2, 5 + 3732: 6848 and r1, r2 + 3734: 3940 cmpnei r1, 0 + 3736: 0bf3 bt 0x371c // 371c + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 3738: 3280 movi r2, 128 + 373a: 932c ld.w r1, (r3, 0x30) + 373c: 4246 lsli r2, r2, 6 + 373e: 6848 and r1, r2 + 3740: 3940 cmpnei r1, 0 + 3742: 0bed bt 0x371c // 371c + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3744: 3280 movi r2, 128 + 3746: 932c ld.w r1, (r3, 0x30) + 3748: 4247 lsli r2, r2, 7 + 374a: 6848 and r1, r2 + 374c: 3940 cmpnei r1, 0 + 374e: 0c0f bf 0x376c // 376c + SYSCON->EXICR = EXI_PIN14; + 3750: b34b st.w r2, (r3, 0x2c) + if(c_rly.rly_zCnt < 8){ + 3752: 104c lrw r2, 0x200005dc // 3780 + 3754: 8261 ld.b r3, (r2, 0x1) + 3756: 3b07 cmphsi r3, 8 + 3758: 0803 bt 0x375e // 375e + c_rly.rly_zCnt++; + 375a: 2300 addi r3, 1 + 375c: a261 st.b r3, (r2, 0x1) + RLY_Zero_Control(); //继电器控制 + 375e: e0001fbf bsr 0x76dc // 76dc +} + 3762: d9ee2000 ld.w r15, (r14, 0x0) + 3766: 1401 addi r14, r14, 4 + 3768: 1463 ipop + 376a: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 376c: 3280 movi r2, 128 + 376e: 932c ld.w r1, (r3, 0x30) + 3770: 4248 lsli r2, r2, 8 + 3772: 6848 and r1, r2 + 3774: 3940 cmpnei r1, 0 + 3776: 0bd3 bt 0x371c // 371c + 3778: 07f5 br 0x3762 // 3762 + 377a: 0000 bkpt + 377c: 2000005c .long 0x2000005c + 3780: 200005dc .long 0x200005dc + +Disassembly of section .text.LPTIntHandler: + +00003784 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3784: 1460 nie + 3786: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 3788: 106b lrw r3, 0x20000014 // 37b4 + 378a: 3101 movi r1, 1 + 378c: 9360 ld.w r3, (r3, 0x0) + 378e: 934e ld.w r2, (r3, 0x38) + 3790: 6884 and r2, r1 + 3792: 3a40 cmpnei r2, 0 + 3794: 0c03 bf 0x379a // 379a + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 3796: b330 st.w r1, (r3, 0x40) + } +} + 3798: 040b br 0x37ae // 37ae + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 379a: 934e ld.w r2, (r3, 0x38) + 379c: 3102 movi r1, 2 + 379e: 6884 and r2, r1 + 37a0: 3a40 cmpnei r2, 0 + 37a2: 0bfa bt 0x3796 // 3796 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 37a4: 934e ld.w r2, (r3, 0x38) + 37a6: 3104 movi r1, 4 + 37a8: 6884 and r2, r1 + 37aa: 3a40 cmpnei r2, 0 + 37ac: 0bf5 bt 0x3796 // 3796 +} + 37ae: 1463 ipop + 37b0: 1461 nir + 37b2: 0000 bkpt + 37b4: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +000037b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 37b8: 1460 nie + 37ba: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 37bc: 1071 lrw r3, 0x2000000c // 3800 + 37be: 3101 movi r1, 1 + 37c0: 9360 ld.w r3, (r3, 0x0) + 37c2: 934c ld.w r2, (r3, 0x30) + 37c4: 6884 and r2, r1 + 37c6: 3a40 cmpnei r2, 0 + 37c8: 0c0a bf 0x37dc // 37dc + { + BT0->ICR = BT_PEND; + 37ca: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 37cc: 9341 ld.w r2, (r3, 0x4) + 37ce: 3a86 bclri r2, 6 + 37d0: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 37d2: 9340 ld.w r2, (r3, 0x0) + 37d4: 3200 movi r2, 0 + 37d6: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 37d8: 1463 ipop + 37da: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 37dc: 934c ld.w r2, (r3, 0x30) + 37de: 3102 movi r1, 2 + 37e0: 6884 and r2, r1 + 37e2: 3a40 cmpnei r2, 0 + 37e4: 0c03 bf 0x37ea // 37ea + BT0->ICR = BT_EVTRG; + 37e6: b32d st.w r1, (r3, 0x34) +} + 37e8: 07f8 br 0x37d8 // 37d8 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 37ea: 934c ld.w r2, (r3, 0x30) + 37ec: 3104 movi r1, 4 + 37ee: 6884 and r2, r1 + 37f0: 3a40 cmpnei r2, 0 + 37f2: 0bfa bt 0x37e6 // 37e6 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 37f4: 934c ld.w r2, (r3, 0x30) + 37f6: 3108 movi r1, 8 + 37f8: 6884 and r2, r1 + 37fa: 3a40 cmpnei r2, 0 + 37fc: 0bf5 bt 0x37e6 // 37e6 + 37fe: 07ed br 0x37d8 // 37d8 + 3800: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003804 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3804: 1460 nie + 3806: 1462 ipush + 3808: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 380a: 1079 lrw r3, 0x20000008 // 386c + 380c: 3101 movi r1, 1 + 380e: 9360 ld.w r3, (r3, 0x0) + 3810: 934c ld.w r2, (r3, 0x30) + 3812: 6884 and r2, r1 + 3814: 3a40 cmpnei r2, 0 + 3816: 0c03 bf 0x381c // 381c + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 3818: b32d st.w r1, (r3, 0x34) + } +} + 381a: 0418 br 0x384a // 384a + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 381c: 934c ld.w r2, (r3, 0x30) + 381e: 3102 movi r1, 2 + 3820: 6884 and r2, r1 + 3822: 3a40 cmpnei r2, 0 + 3824: 0c18 bf 0x3854 // 3854 + BT1->ICR = BT_CMP; + 3826: b32d st.w r1, (r3, 0x34) + NUM++; + 3828: 1072 lrw r3, 0x200000b8 // 3870 + 382a: 8340 ld.b r2, (r3, 0x0) + 382c: 2200 addi r2, 1 + 382e: 7488 zextb r2, r2 + SysTick_100us++; + 3830: 9321 ld.w r1, (r3, 0x4) + 3832: 2100 addi r1, 1 + if(NUM >= 10){ + 3834: 3a09 cmphsi r2, 10 + NUM++; + 3836: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 3838: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 383a: 0c08 bf 0x384a // 384a + NUM = 0; + 383c: 3200 movi r2, 0 + 383e: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3840: 9342 ld.w r2, (r3, 0x8) + 3842: 2200 addi r2, 1 + 3844: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 3846: e000029f bsr 0x3d84 // 3d84 +} + 384a: d9ee2000 ld.w r15, (r14, 0x0) + 384e: 1401 addi r14, r14, 4 + 3850: 1463 ipop + 3852: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3854: 934c ld.w r2, (r3, 0x30) + 3856: 3104 movi r1, 4 + 3858: 6884 and r2, r1 + 385a: 3a40 cmpnei r2, 0 + 385c: 0bde bt 0x3818 // 3818 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 385e: 934c ld.w r2, (r3, 0x30) + 3860: 3108 movi r1, 8 + 3862: 6884 and r2, r1 + 3864: 3a40 cmpnei r2, 0 + 3866: 0bd9 bt 0x3818 // 3818 + 3868: 07f1 br 0x384a // 384a + 386a: 0000 bkpt + 386c: 20000008 .long 0x20000008 + 3870: 200000b8 .long 0x200000b8 + +Disassembly of section .text.PriviledgeVioHandler: + +00003874 : + 3874: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003876 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3876: 1460 nie + 3878: 1462 ipush + // ISR content ... + +} + 387a: 1463 ipop + 387c: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000387e : + 387e: 1460 nie + 3880: 1462 ipush + 3882: 1463 ipop + 3884: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00003886 : + 3886: 1460 nie + 3888: 1462 ipush + 388a: 1463 ipop + 388c: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000388e : + 388e: 1460 nie + 3890: 1462 ipush + 3892: 1463 ipop + 3894: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00003896 : + 3896: 1460 nie + 3898: 1462 ipush + 389a: 1463 ipop + 389c: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000389e : + 389e: 1460 nie + 38a0: 1462 ipush + 38a2: 1463 ipop + 38a4: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000038a6 : + 38a6: 1460 nie + 38a8: 1462 ipush + 38aa: 1463 ipop + 38ac: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000038ae : + 38ae: 1460 nie + 38b0: 1462 ipush + 38b2: 1463 ipop + 38b4: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000038b6 : + 38b6: 1460 nie + 38b8: 1462 ipush + 38ba: 1463 ipop + 38bc: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000038be : + 38be: 1460 nie + 38c0: 1462 ipush + 38c2: 1463 ipop + 38c4: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +000038c6 : + 38c6: 1460 nie + 38c8: 1462 ipush + 38ca: 1463 ipop + 38cc: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +000038ce : + 38ce: 1460 nie + 38d0: 1462 ipush + 38d2: 1463 ipop + 38d4: 1461 nir + +Disassembly of section .text.__divsi3: + +000038d8 <__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) +{ + 38d8: 14c1 push r4 + int PSR; + __asm volatile( + 38da: c0006023 mfcr r3, cr<0, 0> + 38de: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 38e2: 1046 lrw r2, 0x20000000 // 38f8 <__divsi3+0x20> + 38e4: 3400 movi r4, 0 + 38e6: 9240 ld.w r2, (r2, 0x0) + 38e8: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 38ea: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 38ec: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 38ee: b221 st.w r1, (r2, 0x4) + __asm volatile( + 38f0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 38f4: 9202 ld.w r0, (r2, 0x8) +} + 38f6: 1481 pop r4 + 38f8: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +000038fc <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 38fc: 14c1 push r4 + int PSR; + __asm volatile( + 38fe: c0006023 mfcr r3, cr<0, 0> + 3902: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3906: 1046 lrw r2, 0x20000000 // 391c <__udivsi3+0x20> + 3908: 3401 movi r4, 1 + 390a: 9240 ld.w r2, (r2, 0x0) + 390c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 390e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3910: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3912: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3914: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3918: 9202 ld.w r0, (r2, 0x8) +} + 391a: 1481 pop r4 + 391c: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00003920 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 3920: 14c1 push r4 + int PSR; + __asm volatile( + 3922: c0006023 mfcr r3, cr<0, 0> + 3926: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 392a: 1046 lrw r2, 0x20000000 // 3940 <__modsi3+0x20> + 392c: 3400 movi r4, 0 + 392e: 9240 ld.w r2, (r2, 0x0) + 3930: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3932: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3934: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3936: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3938: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 393c: 9203 ld.w r0, (r2, 0xc) +} + 393e: 1481 pop r4 + 3940: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003944 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3944: 14c1 push r4 + int PSR; + __asm volatile( + 3946: c0006023 mfcr r3, cr<0, 0> + 394a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 394e: 1046 lrw r2, 0x20000000 // 3964 <__umodsi3+0x20> + 3950: 3401 movi r4, 1 + 3952: 9240 ld.w r2, (r2, 0x0) + 3954: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3956: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3958: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 395a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 395c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3960: 9203 ld.w r0, (r2, 0xc) +} + 3962: 1481 pop r4 + 3964: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003968 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3968: c1807420 psrset ee, ie +} + 396c: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +0000396e : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 396e: c0807020 psrclr ie +} + 3972: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003974 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3974: 14d2 push r4-r5, r15 + switch(uart_id){ + 3976: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3978: 6d07 mov r4, r1 + switch(uart_id){ + 397a: 0c24 bf 0x39c2 // 39c2 + 397c: 3840 cmpnei r0, 0 + 397e: 0c04 bf 0x3986 // 3986 + 3980: 3842 cmpnei r0, 2 + 3982: 0c3a bf 0x39f6 // 39f6 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 3984: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 3986: e3fff4f7 bsr 0x2374 // 2374 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 398a: 3100 movi r1, 0 + 398c: 3000 movi r0, 0 + 398e: e3fff533 bsr 0x23f4 // 23f4 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3992: 1174 lrw r3, 0x20000040 // 3a60 + 3994: 3200 movi r2, 0 + 3996: 9300 ld.w r0, (r3, 0x0) + 3998: 1133 lrw r1, 0x1388 // 3a64 + 399a: e3fff5ab bsr 0x24f0 // 24f0 + UART0_Int_Enable(); + 399e: e3fff50f bsr 0x23bc // 23bc + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 39a2: 3273 movi r2, 115 + 39a4: 3100 movi r1, 0 + 39a6: 1111 lrw r0, 0x200002f0 // 3a68 + 39a8: e3ffeffa bsr 0x199c // 199c <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 39ac: 1170 lrw r3, 0x20000357 // 3a6c + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 39ae: 3203 movi r2, 3 + 39b0: a340 st.b r2, (r3, 0x0) + g_uart[UART_1].processing_cf = prt_cf; + 39b2: 4c48 lsri r2, r4, 8 + 39b4: a388 st.b r4, (r3, 0x8) + 39b6: a349 st.b r2, (r3, 0x9) + 39b8: 4c50 lsri r2, r4, 16 + 39ba: 4c98 lsri r4, r4, 24 + 39bc: a34a st.b r2, (r3, 0xa) + 39be: a38b st.b r4, (r3, 0xb) + break; + 39c0: 07e2 br 0x3984 // 3984 + UART1_DeInit(); //clear all UART Register + 39c2: e3fff4e5 bsr 0x238c // 238c + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 39c6: 3102 movi r1, 2 + 39c8: 3001 movi r0, 1 + 39ca: e3fff515 bsr 0x23f4 // 23f4 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 39ce: 11a9 lrw r5, 0x2000003c // 3a70 + 39d0: 31d0 movi r1, 208 + 39d2: 3200 movi r2, 0 + 39d4: 4121 lsli r1, r1, 1 + 39d6: 9500 ld.w r0, (r5, 0x0) + 39d8: e3fff584 bsr 0x24e0 // 24e0 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 39dc: 31d0 movi r1, 208 + 39de: 9500 ld.w r0, (r5, 0x0) + 39e0: 3200 movi r2, 0 + 39e2: 4121 lsli r1, r1, 1 + 39e4: e3fff586 bsr 0x24f0 // 24f0 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 39e8: 3273 movi r2, 115 + 39ea: 3100 movi r1, 0 + 39ec: 1102 lrw r0, 0x20000363 // 3a74 + 39ee: e3ffefd7 bsr 0x199c // 199c <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 39f2: 1162 lrw r3, 0x200003ca // 3a78 + 39f4: 07dd br 0x39ae // 39ae + UART2_DeInit(); //clear all UART Register + 39f6: e3fff4d7 bsr 0x23a4 // 23a4 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 39fa: 3102 movi r1, 2 + 39fc: 3002 movi r0, 2 + 39fe: e3fff4fb bsr 0x23f4 // 23f4 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3a02: 107f lrw r3, 0x20000038 // 3a7c + 3a04: 3200 movi r2, 0 + 3a06: 9300 ld.w r0, (r3, 0x0) + 3a08: 1037 lrw r1, 0x1388 // 3a64 + 3a0a: e3fff573 bsr 0x24f0 // 24f0 + UART2_Int_Enable(); + 3a0e: e3fff4e5 bsr 0x23d8 // 23d8 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3a12: 3273 movi r2, 115 + 3a14: 3100 movi r1, 0 + 3a16: 101b lrw r0, 0x200003d6 // 3a80 + 3a18: e3ffefc2 bsr 0x199c // 199c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 3a1c: 3254 movi r2, 84 + 3a1e: 3100 movi r1, 0 + 3a20: 1019 lrw r0, 0x2000044c // 3a84 + 3a22: e3ffefbd bsr 0x199c // 199c <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3a26: 1079 lrw r3, 0x2000046c // 3a88 + 3a28: 3201 movi r2, 1 + 3a2a: a353 st.b r2, (r3, 0x13) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3a2c: 1078 lrw r3, 0x2000043d // 3a8c + 3a2e: 3203 movi r2, 3 + 3a30: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].processing_cf = prt_cf; + 3a32: 4c48 lsri r2, r4, 8 + 3a34: a388 st.b r4, (r3, 0x8) + 3a36: a349 st.b r2, (r3, 0x9) + 3a38: 4c50 lsri r2, r4, 16 + 3a3a: 4c98 lsri r4, r4, 24 + 3a3c: a38b st.b r4, (r3, 0xb) + 3a3e: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 3a40: 3103 movi r1, 3 + 3a42: 1094 lrw r4, 0x20000048 // 3a90 + 3a44: 3200 movi r2, 0 + 3a46: 9400 ld.w r0, (r4, 0x0) + 3a48: e3fff1ee bsr 0x1e24 // 1e24 + GPIO_DriveStrength_EN(GPIOB0,3); + 3a4c: 9400 ld.w r0, (r4, 0x0) + 3a4e: 3103 movi r1, 3 + 3a50: e3fff264 bsr 0x1f18 // 1f18 + GPIO_Write_Low(GPIOB0,3); + 3a54: 9400 ld.w r0, (r4, 0x0) + 3a56: 3103 movi r1, 3 + 3a58: e3fff3a6 bsr 0x21a4 // 21a4 +} + 3a5c: 0794 br 0x3984 // 3984 + 3a5e: 0000 bkpt + 3a60: 20000040 .long 0x20000040 + 3a64: 00001388 .long 0x00001388 + 3a68: 200002f0 .long 0x200002f0 + 3a6c: 20000357 .long 0x20000357 + 3a70: 2000003c .long 0x2000003c + 3a74: 20000363 .long 0x20000363 + 3a78: 200003ca .long 0x200003ca + 3a7c: 20000038 .long 0x20000038 + 3a80: 200003d6 .long 0x200003d6 + 3a84: 2000044c .long 0x2000044c + 3a88: 2000046c .long 0x2000046c + 3a8c: 2000043d .long 0x2000043d + 3a90: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003a94 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3a94: 14c2 push r4-r5 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 3a96: 1056 lrw r2, 0x2000043b // 3aec + 3a98: 8261 ld.b r3, (r2, 0x1) + 3a9a: 8280 ld.b r4, (r2, 0x0) + 3a9c: 4368 lsli r3, r3, 8 + 3a9e: 6cd0 or r3, r4 + 3aa0: 3462 movi r4, 98 + 3aa2: 5a22 addi r1, r2, 1 + 3aa4: 64d1 cmplt r4, r3 + 3aa6: 6d07 mov r4, r1 + 3aa8: 0c04 bf 0x3ab0 // 3ab0 + 3aaa: 3300 movi r3, 0 + 3aac: a260 st.b r3, (r2, 0x0) + 3aae: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3ab0: 8460 ld.b r3, (r4, 0x0) + 3ab2: 82a0 ld.b r5, (r2, 0x0) + 3ab4: 4368 lsli r3, r3, 8 + 3ab6: 102f lrw r1, 0x200002f0 // 3af0 + 3ab8: 6cd4 or r3, r5 + 3aba: 5b82 addi r4, r3, 1 + 3abc: 60c4 addu r3, r1 + 3abe: 7511 zexth r4, r4 + 3ac0: 23e5 addi r3, 230 + 3ac2: a280 st.b r4, (r2, 0x0) + 3ac4: a300 st.b r0, (r3, 0x0) + 3ac6: 4c88 lsri r4, r4, 8 + +// uart_receive_input((U8_T)data); + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3ac8: 106b lrw r3, 0x200000c0 // 3af4 + 3aca: 9360 ld.w r3, (r3, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3acc: a281 st.b r4, (r2, 0x1) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3ace: 104b lrw r2, 0x151 // 3af8 + 3ad0: 6084 addu r2, r1 + 3ad2: 4b08 lsri r0, r3, 8 + 3ad4: a260 st.b r3, (r2, 0x0) + 3ad6: a201 st.b r0, (r2, 0x1) + 3ad8: 4b10 lsri r0, r3, 16 + 3ada: 4b78 lsri r3, r3, 24 + 3adc: a263 st.b r3, (r2, 0x3) + g_uart[UART_2].Receiving = 0x01; + 3ade: 33a5 movi r3, 165 + 3ae0: 4361 lsli r3, r3, 1 + 3ae2: 604c addu r1, r3 + 3ae4: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3ae6: a202 st.b r0, (r2, 0x2) + g_uart[UART_2].Receiving = 0x01; + 3ae8: a160 st.b r3, (r1, 0x0) +} + 3aea: 1482 pop r4-r5 + 3aec: 2000043b .long 0x2000043b + 3af0: 200002f0 .long 0x200002f0 + 3af4: 200000c0 .long 0x200000c0 + 3af8: 00000151 .long 0x00000151 + +Disassembly of section .text.UART2_TASK: + +00003afc : + + +void UART2_TASK(void){ + 3afc: 14d4 push r4-r7, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3afe: 118b lrw r4, 0x2000043a // 3ba8 + 3b00: 8460 ld.b r3, (r4, 0x0) + 3b02: 3b41 cmpnei r3, 1 + 3b04: 0851 bt 0x3ba6 // 3ba6 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3b06: 8448 ld.b r2, (r4, 0x8) + 3b08: 8467 ld.b r3, (r4, 0x7) + 3b0a: 4248 lsli r2, r2, 8 + 3b0c: 6c8c or r2, r3 + 3b0e: 8469 ld.b r3, (r4, 0x9) + 3b10: 4370 lsli r3, r3, 16 + 3b12: 6c8c or r2, r3 + 3b14: 846a ld.b r3, (r4, 0xa) + 3b16: 11c6 lrw r6, 0x200000c0 // 3bac + 3b18: 4378 lsli r3, r3, 24 + 3b1a: 6cc8 or r3, r2 + 3b1c: 9620 ld.w r1, (r6, 0x0) + 3b1e: 8444 ld.b r2, (r4, 0x4) + 3b20: 604e subu r1, r3 + 3b22: 4248 lsli r2, r2, 8 + 3b24: 8463 ld.b r3, (r4, 0x3) + 3b26: 6c8c or r2, r3 + 3b28: 8465 ld.b r3, (r4, 0x5) + 3b2a: 4370 lsli r3, r3, 16 + 3b2c: 6c8c or r2, r3 + 3b2e: 8466 ld.b r3, (r4, 0x6) + 3b30: 4378 lsli r3, r3, 24 + 3b32: 6cc8 or r3, r2 + 3b34: 644c cmphs r3, r1 + 3b36: 5cba addi r5, r4, 7 + 3b38: 0837 bt 0x3ba6 // 3ba6 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 3b3a: e3fff145 bsr 0x1dc4 // 1dc4 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b3e: 9660 ld.w r3, (r6, 0x0) + 3b40: 4b48 lsri r2, r3, 8 + 3b42: a467 st.b r3, (r4, 0x7) + 3b44: a448 st.b r2, (r4, 0x8) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b46: 84a2 ld.b r5, (r4, 0x2) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b48: 4b50 lsri r2, r3, 16 + 3b4a: 4b78 lsri r3, r3, 24 + 3b4c: a46a st.b r3, (r4, 0xa) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b4e: 45a8 lsli r5, r5, 8 + 3b50: 8461 ld.b r3, (r4, 0x1) + 3b52: 6d4c or r5, r3 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b54: a449 st.b r2, (r4, 0x9) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b56: 1037 lrw r1, 0x200003d6 // 3bb0 + 3b58: 6c97 mov r2, r5 + 3b5a: 1017 lrw r0, 0x200000c4 // 3bb4 + 3b5c: e3ffef64 bsr 0x1a24 // 1a24 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3b60: 10d6 lrw r6, 0x20000104 // 3bb8 + g_uart[UART_2].RecvLen = 0; + 3b62: 3300 movi r3, 0 + 3b64: a461 st.b r3, (r4, 0x1) + 3b66: a462 st.b r3, (r4, 0x2) + g_uart[UART_2].Receiving = 0; + 3b68: a460 st.b r3, (r4, 0x0) + DealLen = g_uart[UART_2].RecvLen; + 3b6a: aeb2 st.h r5, (r6, 0x24) + SYSCON_Int_Enable(); + 3b6c: e3fff126 bsr 0x1db8 // 1db8 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3b70: 844c ld.b r2, (r4, 0xc) + 3b72: 846b ld.b r3, (r4, 0xb) + 3b74: 4248 lsli r2, r2, 8 + 3b76: 6c8c or r2, r3 + 3b78: 846d ld.b r3, (r4, 0xd) + 3b7a: 4370 lsli r3, r3, 16 + 3b7c: 6c8c or r2, r3 + 3b7e: 846e ld.b r3, (r4, 0xe) + 3b80: 4378 lsli r3, r3, 24 + 3b82: 6cc8 or r3, r2 + 3b84: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b86: 5ce2 addi r7, r4, 1 + if(g_uart[UART_2].processing_cf != NULL){ + 3b88: 0c0a bf 0x3b9c // 3b9c + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 3b8a: 8e32 ld.h r1, (r6, 0x24) + 3b8c: 100a lrw r0, 0x200000c4 // 3bb4 + 3b8e: 7bcd jsr r3 + } + + if(rev == 0x01){ + 3b90: 3841 cmpnei r0, 1 + 3b92: 0805 bt 0x3b9c // 3b9c + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 3b94: 8e32 ld.h r1, (r6, 0x24) + 3b96: 1008 lrw r0, 0x200000c4 // 3bb4 + 3b98: e0000550 bsr 0x4638 // 4638 + } + +// g_uart[UART_2].RecvLen = 0; +// g_uart[UART_2].Receiving = 0; + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3b9c: 3264 movi r2, 100 + 3b9e: 3100 movi r1, 0 + 3ba0: 1005 lrw r0, 0x200000c4 // 3bb4 + 3ba2: e3ffeefd bsr 0x199c // 199c <__memset_fast> + } + } +} + 3ba6: 1494 pop r4-r7, r15 + 3ba8: 2000043a .long 0x2000043a + 3bac: 200000c0 .long 0x200000c0 + 3bb0: 200003d6 .long 0x200003d6 + 3bb4: 200000c4 .long 0x200000c4 + 3bb8: 20000104 .long 0x20000104 + +Disassembly of section .text.BUS485_Send: + +00003bbc : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3bbc: 14d4 push r4-r7, r15 + 3bbe: 1423 subi r14, r14, 12 + 3bc0: b802 st.w r0, (r14, 0x8) + 3bc2: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3bc4: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3bc6: 1189 lrw r4, 0x200000c4 // 3c68 + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 3bc8: 11c9 lrw r6, 0x20000048 // 3c6c + while(RS485_Comming == 0x01){ + 3bca: 947a ld.w r3, (r4, 0x68) + 3bcc: 3b41 cmpnei r3, 1 + 3bce: 0c3e bf 0x3c4a // 3c4a + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 3bd0: 1168 lrw r3, 0x2000046c // 3c70 + 3bd2: 83d2 ld.b r6, (r3, 0x12) + 3bd4: 3e40 cmpnei r6, 0 + 3bd6: b861 st.w r3, (r14, 0x4) + 3bd8: 0845 bt 0x3c62 // 3c62 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 3bda: 11e5 lrw r7, 0x20000048 // 3c6c + CK_CPU_DisAllNormalIrq(); + 3bdc: e3fffec9 bsr 0x396e // 396e + GPIO_Write_High(GPIOB0,3); + 3be0: 3103 movi r1, 3 + 3be2: 9700 ld.w r0, (r7, 0x0) + 3be4: e3fff2dc bsr 0x219c // 219c + + RS485_Comm_Flag = 0x01; + 3be8: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3bea: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3bec: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3bee: a352 st.b r2, (r3, 0x12) + RS485_Comm_Start = 0x00; + 3bf0: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3bf2: a354 st.b r2, (r3, 0x14) + RS485_Comm_End = 0x00; + 3bf4: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 3bf6: e3fffeb9 bsr 0x3968 // 3968 + + UARTTransmit(UART2,buff,len); + 3bfa: 105f lrw r2, 0x20000038 // 3c74 + 3bfc: 9200 ld.w r0, (r2, 0x0) + 3bfe: 9822 ld.w r1, (r14, 0x8) + 3c00: 9840 ld.w r2, (r14, 0x0) + 3c02: e3fff47f bsr 0x2500 // 2500 + do{ + delay_nus(100); + 3c06: 3064 movi r0, 100 + 3c08: e3fff882 bsr 0x2d0c // 2d0c + delay_cnt ++; + 3c0c: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3c0e: 3363 movi r3, 99 + 3c10: 654c cmphs r3, r5 + 3c12: 0c08 bf 0x3c22 // 3c22 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3c14: 947c ld.w r3, (r4, 0x70) + 3c16: 9840 ld.w r2, (r14, 0x0) + 3c18: 648d cmplt r3, r2 + 3c1a: 0bf6 bt 0x3c06 // 3c06 + 3c1c: 947d ld.w r3, (r4, 0x74) + 3c1e: 648d cmplt r3, r2 + 3c20: 0bf3 bt 0x3c06 // 3c06 + + + CK_CPU_DisAllNormalIrq(); + 3c22: e3fffea6 bsr 0x396e // 396e + + GPIO_Write_Low(GPIOB0,3); + 3c26: 9700 ld.w r0, (r7, 0x0) + 3c28: 3103 movi r1, 3 + 3c2a: e3fff2bd bsr 0x21a4 // 21a4 + RS485_Comm_Flag = 0x00; + 3c2e: 3300 movi r3, 0 + 3c30: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 3c32: 1072 lrw r3, 0x200000c0 // 3c78 + 3c34: 9340 ld.w r2, (r3, 0x0) + 3c36: 1072 lrw r3, 0x2000044c // 3c7c + 3c38: b352 st.w r2, (r3, 0x48) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 3c3a: 9861 ld.w r3, (r14, 0x4) + 3c3c: 3200 movi r2, 0 + 3c3e: a354 st.b r2, (r3, 0x14) + + CK_CPU_EnAllNormalIrq(); + 3c40: e3fffe94 bsr 0x3968 // 3968 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 3c44: 6c1b mov r0, r6 + 3c46: 1403 addi r14, r14, 12 + 3c48: 1494 pop r4-r7, r15 + delay_nus(100); + 3c4a: 3064 movi r0, 100 + 3c4c: e3fff860 bsr 0x2d0c // 2d0c + delay_cnt ++; + 3c50: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3c52: 3364 movi r3, 100 + 3c54: 64d6 cmpne r5, r3 + 3c56: 0fbd bf 0x3bd0 // 3bd0 + GPIO_Reverse(GPIOB0,3); + 3c58: 3103 movi r1, 3 + 3c5a: 9600 ld.w r0, (r6, 0x0) + 3c5c: e3fff2a8 bsr 0x21ac // 21ac + 3c60: 07b5 br 0x3bca // 3bca + return UART_BUSBUSY; //发送失败 + 3c62: 3601 movi r6, 1 + 3c64: 07f0 br 0x3c44 // 3c44 + 3c66: 0000 bkpt + 3c68: 200000c4 .long 0x200000c4 + 3c6c: 20000048 .long 0x20000048 + 3c70: 2000046c .long 0x2000046c + 3c74: 20000038 .long 0x20000038 + 3c78: 200000c0 .long 0x200000c0 + 3c7c: 2000044c .long 0x2000044c + +Disassembly of section .text.MultSend_Task: + +00003c80 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3c80: 14d4 push r4-r7, r15 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3c82: 5963 subi r3, r1, 1 + 3c84: 74cd zexth r3, r3 + 3c86: 3431 movi r4, 49 + 3c88: 64d0 cmphs r4, r3 + 3c8a: 0c26 bf 0x3cd6 // 3cd6 + + if(DatSd == 0x01) + 3c8c: 3a41 cmpnei r2, 1 + 3c8e: 0c03 bf 0x3c94 // 3c94 + }else{ + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3c90: 3001 movi r0, 1 +} + 3c92: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 3c94: 1074 lrw r3, 0x2000044c // 3ce4 + 3c96: 3420 movi r4, 32 + 3c98: 610c addu r4, r3 + 3c9a: 84b8 ld.b r5, (r4, 0x18) + 3c9c: 8456 ld.b r2, (r4, 0x16) + 3c9e: 6548 cmphs r2, r5 + 3ca0: 6d4f mov r5, r3 + 3ca2: 081c bt 0x3cda // 3cda + if( (m_send.ResendCnt == 0x00)||(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time)) + 3ca4: 3a40 cmpnei r2, 0 + 3ca6: 10d1 lrw r6, 0x200000c0 // 3ce8 + 3ca8: 0c07 bf 0x3cb6 // 3cb6 + 3caa: 93f3 ld.w r7, (r3, 0x4c) + 3cac: 9640 ld.w r2, (r6, 0x0) + 3cae: 609e subu r2, r7 + 3cb0: 9370 ld.w r3, (r3, 0x40) + 3cb2: 64c8 cmphs r2, r3 + 3cb4: 0c15 bf 0x3cde // 3cde + if(SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time){//数据发送间隔 + 3cb6: 9553 ld.w r2, (r5, 0x4c) + 3cb8: 9660 ld.w r3, (r6, 0x0) + 3cba: 60ca subu r3, r2 + 3cbc: 9550 ld.w r2, (r5, 0x40) + 3cbe: 648c cmphs r3, r2 + 3cc0: 0fe8 bf 0x3c90 // 3c90 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 3cc2: e3ffff7d bsr 0x3bbc // 3bbc + 3cc6: 3840 cmpnei r0, 0 + 3cc8: 0be4 bt 0x3c90 // 3c90 + m_send.ASend_Tick = SysTick_1ms; + 3cca: 9660 ld.w r3, (r6, 0x0) + 3ccc: b573 st.w r3, (r5, 0x4c) + m_send.ResendCnt++; + 3cce: 8476 ld.b r3, (r4, 0x16) + 3cd0: 2300 addi r3, 1 + 3cd2: a476 st.b r3, (r4, 0x16) + 3cd4: 07df br 0x3c92 // 3c92 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3cd6: 3004 movi r0, 4 + 3cd8: 07dd br 0x3c92 // 3c92 + return RETRY_END;//没有重发次数 + 3cda: 3003 movi r0, 3 + 3cdc: 07db br 0x3c92 // 3c92 + return DATA_END;//数据有效期结束 + 3cde: 3002 movi r0, 2 + 3ce0: 07d9 br 0x3c92 // 3c92 + 3ce2: 0000 bkpt + 3ce4: 2000044c .long 0x2000044c + 3ce8: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Set_GroupSend: + +00003cec : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3cec: 14d4 push r4-r7, r15 + 3cee: 1422 subi r14, r14, 8 + 3cf0: 6d8b mov r6, r2 + 3cf2: 9847 ld.w r2, (r14, 0x1c) + 3cf4: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3cf6: 5943 subi r2, r1, 1 +{ + 3cf8: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3cfa: 7489 zexth r2, r2 + 3cfc: 3131 movi r1, 49 + 3cfe: 6484 cmphs r1, r2 +{ + 3d00: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3d02: 0c1d bf 0x3d3c // 3d3c + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3d04: 108f lrw r4, 0x2000044c // 3d40 + 3d06: 3232 movi r2, 50 + 3d08: 3100 movi r1, 0 + 3d0a: 6c13 mov r0, r4 + 3d0c: b861 st.w r3, (r14, 0x4) + 3d0e: e3ffee47 bsr 0x199c // 199c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 3d12: 6c97 mov r2, r5 + 3d14: 6c5f mov r1, r7 + 3d16: 6c13 mov r0, r4 + 3d18: e3ffee86 bsr 0x1a24 // 1a24 <__memcpy_fast> + m_send.SendLen = sled; + + m_send.DataValid_Time = indate;//数据有效期 + 3d1c: 9861 ld.w r3, (r14, 0x4) + m_send.TotalCnt = SCnt; //数据发送次数 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3d1e: 9840 ld.w r2, (r14, 0x0) + m_send.DataValid_Time = indate;//数据有效期 + 3d20: b471 st.w r3, (r4, 0x44) + m_send.TotalCnt = SCnt; //数据发送次数 + 3d22: 3320 movi r3, 32 + 3d24: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3d26: b450 st.w r2, (r4, 0x40) + + m_send.ASend_Flag = 0x01; + 3d28: 3201 movi r2, 1 + 3d2a: a357 st.b r2, (r3, 0x17) + m_send.SendState = BUSSEND_WAIT; + 3d2c: a355 st.b r2, (r3, 0x15) + m_send.ResendCnt = 0x00; + 3d2e: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 3d30: a3d8 st.b r6, (r3, 0x18) + m_send.ResendCnt = 0x00; + 3d32: a356 st.b r2, (r3, 0x16) + m_send.SendLen = sled; + 3d34: acbd st.h r5, (r4, 0x3a) + m_send.BusbusyTimeout = SysTick_1ms; + 3d36: 1064 lrw r3, 0x200000c0 // 3d44 + 3d38: 9360 ld.w r3, (r3, 0x0) + 3d3a: b474 st.w r3, (r4, 0x50) +} + 3d3c: 1402 addi r14, r14, 8 + 3d3e: 1494 pop r4-r7, r15 + 3d40: 2000044c .long 0x2000044c + 3d44: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Clear_SendFlag: + +00003d48 : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 3d48: 1063 lrw r3, 0x2000046c // 3d54 + 3d4a: 3200 movi r2, 0 + 3d4c: a357 st.b r2, (r3, 0x17) + m_send.SendState = BUSSEND_SUCC; + 3d4e: a355 st.b r2, (r3, 0x15) +} + 3d50: 783c jmp r15 + 3d52: 0000 bkpt + 3d54: 2000046c .long 0x2000046c + +Disassembly of section .text.BUS485Send_Task: + +00003d58 : + + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 3d58: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 3d5a: 100a lrw r0, 0x2000044c // 3d80 + 3d5c: 3420 movi r4, 32 + 3d5e: 6100 addu r4, r0 + 3d60: 8477 ld.b r3, (r4, 0x17) + 3d62: 3b41 cmpnei r3, 1 + 3d64: 080c bt 0x3d7c // 3d7c + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 3d66: 883d ld.h r1, (r0, 0x3a) + 3d68: 3201 movi r2, 1 + 3d6a: e3ffff8b bsr 0x3c80 // 3c80 + 3d6e: a415 st.b r0, (r4, 0x15) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 3d70: 2801 subi r0, 2 + 3d72: 7400 zextb r0, r0 + 3d74: 3801 cmphsi r0, 2 + 3d76: 0803 bt 0x3d7c // 3d7c + { + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 3d78: 3300 movi r3, 0 + 3d7a: a477 st.b r3, (r4, 0x17) + } + } +} + 3d7c: 1491 pop r4, r15 + 3d7e: 0000 bkpt + 3d80: 2000044c .long 0x2000044c + +Disassembly of section .text.BusIdle_Task: + +00003d84 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 3d84: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 3d86: 10ae lrw r5, 0x2000044c // 3dbc + 3d88: 3420 movi r4, 32 + 3d8a: 6114 addu r4, r5 + 3d8c: 8472 ld.b r3, (r4, 0x12) + 3d8e: 3b40 cmpnei r3, 0 + 3d90: 0c15 bf 0x3dba // 3dba + 3d92: 8474 ld.b r3, (r4, 0x14) + 3d94: 3b41 cmpnei r3, 1 + 3d96: 0c12 bf 0x3dba // 3dba + { + CK_CPU_DisAllNormalIrq(); + 3d98: e3fffdeb bsr 0x396e // 396e + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 3d9c: 8473 ld.b r3, (r4, 0x13) + 3d9e: 3b41 cmpnei r3, 1 + 3da0: 080b bt 0x3db6 // 3db6 + 3da2: 1068 lrw r3, 0x200000c0 // 3dc0 + 3da4: 9340 ld.w r2, (r3, 0x0) + 3da6: 9572 ld.w r3, (r5, 0x48) + 3da8: 608e subu r2, r3 + 3daa: 956f ld.w r3, (r5, 0x3c) + 3dac: 2305 addi r3, 6 + 3dae: 64c8 cmphs r2, r3 + 3db0: 0c03 bf 0x3db6 // 3db6 + { + m_send.BusState_Flag = UART_BUSIDLE; + 3db2: 3300 movi r3, 0 + 3db4: a472 st.b r3, (r4, 0x12) + } + CK_CPU_EnAllNormalIrq(); + 3db6: e3fffdd9 bsr 0x3968 // 3968 + } +} + 3dba: 1492 pop r4-r5, r15 + 3dbc: 2000044c .long 0x2000044c + 3dc0: 200000c0 .long 0x200000c0 + +Disassembly of section .text.BusBusy_Task: + +00003dc4 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 3dc4: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 3dc6: 1093 lrw r4, 0x2000044c // 3e10 + 3dc8: 3520 movi r5, 32 + CK_CPU_DisAllNormalIrq(); + 3dca: e3fffdd2 bsr 0x396e // 396e + m_send.BusState_Flag = UART_BUSBUSY; + 3dce: 6150 addu r5, r4 + 3dd0: 3301 movi r3, 1 + 3dd2: a572 st.b r3, (r5, 0x12) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3dd4: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 3dd6: 1070 lrw r3, 0x200000c0 // 3e14 + 3dd8: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3dda: 9300 ld.w r0, (r3, 0x0) + 3ddc: 9473 ld.w r3, (r4, 0x4c) + m_send.BusState_Tick = SysTick_1ms; + 3dde: b452 st.w r2, (r4, 0x48) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3de0: 600e subu r0, r3 + 3de2: e3fffdb1 bsr 0x3944 // 3944 <__umodsi3> + 3de6: b40f st.w r0, (r4, 0x3c) + + if(READ_RXLEVEL_STATE == 0x01){ + 3de8: 3105 movi r1, 5 + 3dea: 108c lrw r4, 0x20000048 // 3e18 + 3dec: 9400 ld.w r0, (r4, 0x0) + 3dee: e3fff1ea bsr 0x21c2 // 21c2 + 3df2: 3841 cmpnei r0, 1 + 3df4: 0806 bt 0x3e00 // 3e00 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 3df6: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 3df8: a573 st.b r3, (r5, 0x13) + } + CK_CPU_EnAllNormalIrq(); + 3dfa: e3fffdb7 bsr 0x3968 // 3968 +} + 3dfe: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 3e00: 9400 ld.w r0, (r4, 0x0) + 3e02: 3105 movi r1, 5 + 3e04: e3fff1df bsr 0x21c2 // 21c2 + 3e08: 3840 cmpnei r0, 0 + 3e0a: 0bf8 bt 0x3dfa // 3dfa + m_send.HighBit_Flag = 0x00; //低电平 + 3e0c: 3300 movi r3, 0 + 3e0e: 07f5 br 0x3df8 // 3df8 + 3e10: 2000044c .long 0x2000044c + 3e14: 200000c0 .long 0x200000c0 + 3e18: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +00003e1c : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3e1c: 1423 subi r14, r14, 12 + 3e1e: b862 st.w r3, (r14, 0x8) + 3e20: b841 st.w r2, (r14, 0x4) + 3e22: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3e24: 1403 addi r14, r14, 12 + 3e26: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003e28 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3e28: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003e2c : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 3e2c: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3e2e: 3234 movi r2, 52 + 3e30: 3100 movi r1, 0 + 3e32: 1014 lrw r0, 0x200004bc // 3e80 + 3e34: e3ffedb4 bsr 0x199c // 199c <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3e38: 321c movi r2, 28 + 3e3a: 3100 movi r1, 0 + 3e3c: 1012 lrw r0, 0x200004a0 // 3e84 + 3e3e: e3ffedaf bsr 0x199c // 199c <__memset_fast> +// g_tk_filt[i].base_update_en = 0x01; +// } + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3e42: 1092 lrw r4, 0x200004f0 // 3e88 + EEPROM_Init(); //按键库初始化前先读取参数 + 3e44: e0000524 bsr 0x488c // 488c + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3e48: 8405 ld.b r0, (r4, 0x5) + 3e4a: 102f lrw r1, 0x200004a0 // 3e84 + 3e4c: e0000582 bsr 0x4950 // 4950 + if(rev == 0x00){ + 3e50: 3840 cmpnei r0, 0 + 3e52: 080e bt 0x3e6e // 3e6e + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3e54: 8405 ld.b r0, (r4, 0x5) + 3e56: 102c lrw r1, 0x200004a0 // 3e84 + 3e58: e00005d2 bsr 0x49fc // 49fc + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3e5c: 100a lrw r0, 0x200004a0 // 3e84 + 3e5e: e0000679 bsr 0x4b50 // 4b50 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3e62: e0002d6b bsr 0x9938 // 9938 + + base_update_f = 0x01; //触摸状态强制更新 + 3e66: 106a lrw r3, 0x20000731 // 3e8c + 3e68: 3201 movi r2, 1 + 3e6a: a340 st.b r2, (r3, 0x0) + +} + 3e6c: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3e6e: 1029 lrw r1, 0xa192 // 3e90 + 3e70: 3000 movi r0, 0 + 3e72: e3ffffd5 bsr 0x3e1c // 3e1c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3e76: 8405 ld.b r0, (r4, 0x5) + 3e78: 1023 lrw r1, 0x200004a0 // 3e84 + 3e7a: e0000633 bsr 0x4ae0 // 4ae0 + 3e7e: 07ef br 0x3e5c // 3e5c + 3e80: 200004bc .long 0x200004bc + 3e84: 200004a0 .long 0x200004a0 + 3e88: 200004f0 .long 0x200004f0 + 3e8c: 20000731 .long 0x20000731 + 3e90: 0000a192 .long 0x0000a192 + +Disassembly of section .text.TouchKey_RS485_Printf_2: + +00003e94 : +} + +//2025-03-31,新触摸库打印触摸环境值函数 + +U8_T Printf_Ch = TKE_CH_MAX; +void TouchKey_RS485_Printf_2(void){ + 3e94: 14d4 push r4-r7, r15 + 3e96: 1432 subi r14, r14, 72 + U8_T ch = 0; + U8_T send_buff[50]; + U8_T send_len = 0; + U8_T i = 0; + + switch ((Key_Map>>9)&0x1f) { + 3e98: 0378 lrw r3, 0x2000078c // 40b4 + 3e9a: 321f movi r2, 31 + 3e9c: 9300 ld.w r0, (r3, 0x0) + 3e9e: 4809 lsri r0, r0, 9 + 3ea0: 6808 and r0, r2 + 3ea2: 3810 cmphsi r0, 17 + 3ea4: b862 st.w r3, (r14, 0x8) + 3ea6: 037a lrw r3, 0x20000068 // 40b8 + 3ea8: 0852 bt 0x3f4c // 3f4c + 3eaa: e3ffe729 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3eae: 090b .short 0x090b + 3eb0: 4f494f47 .long 0x4f494f47 + 3eb4: 4f4b4f4f .long 0x4f4b4f4f + 3eb8: 4f4f4f4f .long 0x4f4f4f4f + 3ebc: 004d4f4f .long 0x004d4f4f + case 0x00:break; + case 0x01:Printf_Ch = TKE_CH1;break; + 3ec0: 3200 movi r2, 0 + case 0x02:Printf_Ch = TKE_CH2;break; + case 0x04:Printf_Ch = TKE_CH3;break; + case 0x08:Printf_Ch = TKE_CH4;break; + case 0x10:Printf_Ch = TKE_CH5;break; + default:Printf_Ch = TKE_CH_MAX;break; + 3ec2: a340 st.b r2, (r3, 0x0) + } + + ch = Printf_Ch; + 3ec4: 8360 ld.b r3, (r3, 0x0) + 3ec6: b861 st.w r3, (r14, 0x4) + + send_buff[send_len++] = 0x0D; + 3ec8: 1805 addi r0, r14, 20 + 3eca: 330d movi r3, 13 + 3ecc: a060 st.b r3, (r0, 0x0) + send_buff[send_len++] = 0x0A; + 3ece: 330a movi r3, 10 + 3ed0: 135b lrw r2, 0x20000654 // 40bc + 3ed2: 139c lrw r4, 0x20000069 // 40c0 + 3ed4: a061 st.b r3, (r0, 0x1) + + if (ch == TKE_CH_MAX){ + 3ed6: 9861 ld.w r3, (r14, 0x4) + 3ed8: 3b45 cmpnei r3, 5 + 3eda: b843 st.w r2, (r14, 0xc) + 3edc: 137a lrw r3, 0x200008f6 // 40c4 + 3ede: 135b lrw r2, 0x20000628 // 40c8 + 3ee0: b844 st.w r2, (r14, 0x10) + 3ee2: 0837 bt 0x3f50 // 3f50 + 3ee4: 6c83 mov r2, r0 + 3ee6: 3500 movi r5, 0 + + for(i=0;i>8; + 3ee8: 5c34 addu r1, r4, r5 + 3eea: 8120 ld.b r1, (r1, 0x0) + 3eec: 4121 lsli r1, r1, 1 + 3eee: 5be4 addu r7, r3, r1 + 3ef0: 8fc0 ld.h r6, (r7, 0x0) + 3ef2: 4ec8 lsri r6, r6, 8 + 3ef4: a2c2 st.b r6, (r2, 0x2) + send_buff[send_len++] = offset_data0_abs[MCU_Touch_CH[i]]&0xff; + 3ef6: 8fc0 ld.h r6, (r7, 0x0) + + send_buff[send_len++] = offset_data1_abs[MCU_Touch_CH[i]]>>8; + 3ef8: 98e3 ld.w r7, (r14, 0xc) + 3efa: 61c4 addu r7, r1 + send_buff[send_len++] = offset_data0_abs[MCU_Touch_CH[i]]&0xff; + 3efc: a2c3 st.b r6, (r2, 0x3) + send_buff[send_len++] = offset_data1_abs[MCU_Touch_CH[i]]>>8; + 3efe: 8fc0 ld.h r6, (r7, 0x0) + 3f00: 4ec8 lsri r6, r6, 8 + 3f02: a2c4 st.b r6, (r2, 0x4) + send_buff[send_len++] = offset_data1_abs[MCU_Touch_CH[i]]&0xff; + 3f04: 8fc0 ld.h r6, (r7, 0x0) + 3f06: a2c5 st.b r6, (r2, 0x5) + + send_buff[send_len++] = offset_data2_abs[MCU_Touch_CH[i]]>>8; + 3f08: 98c4 ld.w r6, (r14, 0x10) + 3f0a: 6058 addu r1, r6 + 3f0c: 89c0 ld.h r6, (r1, 0x0) + 3f0e: 2500 addi r5, 1 + 3f10: 4ec8 lsri r6, r6, 8 + send_buff[send_len++] = offset_data2_abs[MCU_Touch_CH[i]]&0xff; + 3f12: 8920 ld.h r1, (r1, 0x0) + for(i=0;i>8; + 3f16: a2c6 st.b r6, (r2, 0x6) + send_buff[send_len++] = offset_data2_abs[MCU_Touch_CH[i]]&0xff; + 3f18: a227 st.b r1, (r2, 0x7) + 3f1a: 2205 addi r2, 6 + for(i=0;i + + } + + send_buff[send_len++] = 0x00; + 3f1e: 3320 movi r3, 32 + 3f20: 60c0 addu r3, r0 + 3f22: 3200 movi r2, 0 + 3f24: a340 st.b r2, (r3, 0x0) + send_buff[send_len++] = 0x00; + 3f26: a341 st.b r2, (r3, 0x1) + + send_buff[send_len++] = 0x00; + send_buff[send_len++] = ((Key_Map & 0x0200< + +} + 3f38: 1412 addi r14, r14, 72 + 3f3a: 1494 pop r4-r7, r15 + case 0x02:Printf_Ch = TKE_CH2;break; + 3f3c: 3201 movi r2, 1 + 3f3e: 07c2 br 0x3ec2 // 3ec2 + case 0x04:Printf_Ch = TKE_CH3;break; + 3f40: 3202 movi r2, 2 + 3f42: 07c0 br 0x3ec2 // 3ec2 + case 0x08:Printf_Ch = TKE_CH4;break; + 3f44: 3203 movi r2, 3 + 3f46: 07be br 0x3ec2 // 3ec2 + case 0x10:Printf_Ch = TKE_CH5;break; + 3f48: 3204 movi r2, 4 + 3f4a: 07bc br 0x3ec2 // 3ec2 + default:Printf_Ch = TKE_CH_MAX;break; + 3f4c: 3205 movi r2, 5 + 3f4e: 07ba br 0x3ec2 // 3ec2 + i=MCU_Touch_CH[ch]; + 3f50: 9841 ld.w r2, (r14, 0x4) + 3f52: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data0[i]>>8; + 3f54: 8440 ld.b r2, (r4, 0x0) + 3f56: 4241 lsli r2, r2, 1 + 3f58: 129d lrw r4, 0x2000093e // 40cc + 3f5a: 6108 addu r4, r2 + 3f5c: 8c20 ld.h r1, (r4, 0x0) + 3f5e: 4928 lsri r1, r1, 8 + 3f60: a022 st.b r1, (r0, 0x2) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3f62: 8c20 ld.h r1, (r4, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 3f64: 129b lrw r4, 0x200005ec // 40d0 + 3f66: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3f68: a023 st.b r1, (r0, 0x3) + send_buff[send_len++] = baseline_data0[i]>>8; + 3f6a: 8c20 ld.h r1, (r4, 0x0) + 3f6c: 4928 lsri r1, r1, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3f6e: 60c8 addu r3, r2 + send_buff[send_len++] = baseline_data0[i]>>8; + 3f70: a024 st.b r1, (r0, 0x4) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3f72: 8c20 ld.h r1, (r4, 0x0) + 3f74: a025 st.b r1, (r0, 0x5) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3f76: 8b20 ld.h r1, (r3, 0x0) + 3f78: 4928 lsri r1, r1, 8 + send_buff[send_len++] = sampling_data1[i]>>8; + 3f7a: 1297 lrw r4, 0x200006d4 // 40d4 + 3f7c: 6108 addu r4, r2 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3f7e: a026 st.b r1, (r0, 0x6) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3f80: 8b20 ld.h r1, (r3, 0x0) + 3f82: a027 st.b r1, (r0, 0x7) + send_buff[send_len++] = sampling_data1[i]>>8; + 3f84: 8c20 ld.h r1, (r4, 0x0) + 3f86: 4928 lsri r1, r1, 8 + 3f88: a028 st.b r1, (r0, 0x8) + send_buff[send_len++] = sampling_data1[i]&0xff; + 3f8a: 8c20 ld.h r1, (r4, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 3f8c: 1293 lrw r4, 0x20000796 // 40d8 + 3f8e: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 3f90: a029 st.b r1, (r0, 0x9) + send_buff[send_len++] = baseline_data1[i]>>8; + 3f92: 8c20 ld.h r1, (r4, 0x0) + 3f94: 4928 lsri r1, r1, 8 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 3f96: 12aa lrw r5, 0x20000654 // 40bc + 3f98: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data1[i]>>8; + 3f9a: a02a st.b r1, (r0, 0xa) + send_buff[send_len++] = baseline_data1[i]&0xff; + 3f9c: 8c20 ld.h r1, (r4, 0x0) + 3f9e: a02b st.b r1, (r0, 0xb) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 3fa0: 8d20 ld.h r1, (r5, 0x0) + 3fa2: 4928 lsri r1, r1, 8 + send_buff[send_len++] = sampling_data2[i]>>8; + 3fa4: 128e lrw r4, 0x200007ca // 40dc + 3fa6: 6108 addu r4, r2 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 3fa8: a02c st.b r1, (r0, 0xc) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 3faa: 8d20 ld.h r1, (r5, 0x0) + 3fac: a02d st.b r1, (r0, 0xd) + send_buff[send_len++] = sampling_data2[i]>>8; + 3fae: 8c20 ld.h r1, (r4, 0x0) + 3fb0: 4928 lsri r1, r1, 8 + 3fb2: a02e st.b r1, (r0, 0xe) + send_buff[send_len++] = sampling_data2[i]&0xff; + 3fb4: 8c20 ld.h r1, (r4, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 3fb6: 128b lrw r4, 0x200008ac // 40e0 + 3fb8: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 3fba: a02f st.b r1, (r0, 0xf) + send_buff[send_len++] = baseline_data2[i]>>8; + 3fbc: 8c20 ld.h r1, (r4, 0x0) + 3fbe: 4928 lsri r1, r1, 8 + 3fc0: a030 st.b r1, (r0, 0x10) + send_buff[send_len++] = baseline_data2[i]&0xff; + 3fc2: 8c20 ld.h r1, (r4, 0x0) + 3fc4: a031 st.b r1, (r0, 0x11) + send_buff[send_len++] = (offset_data0_abs[i]>= touch_para.triggerlevel[ch]); + 3fc6: 12c8 lrw r6, 0x200004ac // 40e4 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 3fc8: 1220 lrw r1, 0x20000628 // 40c8 + 3fca: 6048 addu r1, r2 + 3fcc: 6c87 mov r2, r1 + 3fce: 8920 ld.h r1, (r1, 0x0) + 3fd0: 4928 lsri r1, r1, 8 + 3fd2: a032 st.b r1, (r0, 0x12) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 3fd4: 8a20 ld.h r1, (r2, 0x0) + 3fd6: a033 st.b r1, (r0, 0x13) + send_buff[send_len++] = 0x00; + 3fd8: 3100 movi r1, 0 + 3fda: a034 st.b r1, (r0, 0x14) + send_buff[send_len++] = (offset_data0_abs[i]>= touch_para.triggerlevel[ch]); + 3fdc: 9821 ld.w r1, (r14, 0x4) + 3fde: 4121 lsli r1, r1, 1 + 3fe0: 8b80 ld.h r4, (r3, 0x0) + 3fe2: 6058 addu r1, r6 + 3fe4: 8921 ld.h r1, (r1, 0x2) + 3fe6: 7511 zexth r4, r4 + 3fe8: 6450 cmphs r4, r1 + 3fea: 3400 movi r4, 0 + 3fec: 6111 addc r4, r4 + 3fee: a095 st.b r4, (r0, 0x15) + send_buff[send_len++] = 0x00; + 3ff0: 3400 movi r4, 0 + 3ff2: a096 st.b r4, (r0, 0x16) + send_buff[send_len++] = (offset_data1_abs[i]>= touch_para.triggerlevel[ch]); + 3ff4: 8d80 ld.h r4, (r5, 0x0) + 3ff6: 7511 zexth r4, r4 + 3ff8: 6450 cmphs r4, r1 + 3ffa: 3400 movi r4, 0 + 3ffc: 6111 addc r4, r4 + 3ffe: a097 st.b r4, (r0, 0x17) + send_buff[send_len++] = 0x00; + 4000: 3400 movi r4, 0 + 4002: a098 st.b r4, (r0, 0x18) + send_buff[send_len++] = (offset_data2_abs[i]>= touch_para.triggerlevel[ch]); + 4004: 8a80 ld.h r4, (r2, 0x0) + 4006: 7511 zexth r4, r4 + 4008: 6450 cmphs r4, r1 + 400a: 3400 movi r4, 0 + 400c: 6111 addc r4, r4 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=1); + 400e: 8bc0 ld.h r6, (r3, 0x0) + send_buff[send_len++] = (offset_data2_abs[i]>= touch_para.triggerlevel[ch]); + 4010: a099 st.b r4, (r0, 0x19) + send_buff[send_len++] = 0x00; + 4012: 3400 movi r4, 0 + 4014: a09a st.b r4, (r0, 0x1a) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=1); + 4016: 7599 zexth r6, r6 + 4018: 8d80 ld.h r4, (r5, 0x0) + 401a: 6458 cmphs r6, r1 + 401c: 7511 zexth r4, r4 + 401e: 3600 movi r6, 0 + 4020: 8ae0 ld.h r7, (r2, 0x0) + 4022: 6199 addc r6, r6 + 4024: 6450 cmphs r4, r1 + 4026: 3400 movi r4, 0 + 4028: 75dd zexth r7, r7 + 402a: 6111 addc r4, r4 + 402c: 6118 addu r4, r6 + 402e: 645c cmphs r7, r1 + 4030: 3600 movi r6, 0 + 4032: 6199 addc r6, r6 + 4034: 6118 addu r4, r6 + 4036: 3c20 cmplti r4, 1 + 4038: 6503 mvcv r4 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=2); + 403a: 8bc0 ld.h r6, (r3, 0x0) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=1); + 403c: a09b st.b r4, (r0, 0x1b) + send_buff[send_len++] = 0x00; + 403e: 3400 movi r4, 0 + 4040: a09c st.b r4, (r0, 0x1c) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=2); + 4042: 7599 zexth r6, r6 + 4044: 8d80 ld.h r4, (r5, 0x0) + 4046: 6458 cmphs r6, r1 + 4048: 7511 zexth r4, r4 + 404a: 3600 movi r6, 0 + 404c: 8ae0 ld.h r7, (r2, 0x0) + 404e: 6199 addc r6, r6 + 4050: 6450 cmphs r4, r1 + 4052: 3400 movi r4, 0 + 4054: 6111 addc r4, r4 + 4056: 75dd zexth r7, r7 + 4058: 645c cmphs r7, r1 + 405a: 6118 addu r4, r6 + 405c: 3600 movi r6, 0 + 405e: 6199 addc r6, r6 + 4060: 6118 addu r4, r6 + 4062: 3c21 cmplti r4, 2 + 4064: 6503 mvcv r4 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=3); + 4066: 8b60 ld.h r3, (r3, 0x0) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=2); + 4068: a09d st.b r4, (r0, 0x1d) + send_buff[send_len++] = 0x00; + 406a: 3400 movi r4, 0 + 406c: a09e st.b r4, (r0, 0x1e) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=3); + 406e: 74cd zexth r3, r3 + 4070: 8d80 ld.h r4, (r5, 0x0) + 4072: 644c cmphs r3, r1 + 4074: 7511 zexth r4, r4 + 4076: 8a40 ld.h r2, (r2, 0x0) + 4078: 3300 movi r3, 0 + 407a: 7489 zexth r2, r2 + 407c: 60cd addc r3, r3 + 407e: 6450 cmphs r4, r1 + 4080: 3400 movi r4, 0 + 4082: 6111 addc r4, r4 + 4084: 6448 cmphs r2, r1 + 4086: 3200 movi r2, 0 + 4088: 6089 addc r2, r2 + 408a: 60d0 addu r3, r4 + 408c: 60c8 addu r3, r2 + 408e: 3b22 cmplti r3, 3 + 4090: 64c3 mvcv r3 + send_buff[send_len++] = 0x00; + 4092: 3220 movi r2, 32 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=3); + 4094: a07f st.b r3, (r0, 0x1f) + send_buff[send_len++] = 0x00; + 4096: 6080 addu r2, r0 + 4098: 3300 movi r3, 0 + 409a: a260 st.b r3, (r2, 0x0) + send_buff[send_len++] = ((Key_Map & 0x0200< + 40b4: 2000078c .long 0x2000078c + 40b8: 20000068 .long 0x20000068 + 40bc: 20000654 .long 0x20000654 + 40c0: 20000069 .long 0x20000069 + 40c4: 200008f6 .long 0x200008f6 + 40c8: 20000628 .long 0x20000628 + 40cc: 2000093e .long 0x2000093e + 40d0: 200005ec .long 0x200005ec + 40d4: 200006d4 .long 0x200006d4 + 40d8: 20000796 .long 0x20000796 + 40dc: 200007ca .long 0x200007ca + 40e0: 200008ac .long 0x200008ac + 40e4: 200004ac .long 0x200004ac + +Disassembly of section .text.Get_TouchKey_CH_State: + +000040e8 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 40e8: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 40ea: 3804 cmphsi r0, 5 + 40ec: 0818 bt 0x411c // 411c + 40ee: 106d lrw r3, 0x200004bc // 4120 + 40f0: e3ffe606 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 40f4: 0e0b0803 .long 0x0e0b0803 + 40f8: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 40fa: 930a ld.w r0, (r3, 0x28) + 40fc: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 40fe: 3301 movi r3, 1 + U8_T state = 0; + 4100: 680c and r0, r3 +// } + break; + } + + return state; +} + 4102: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 4104: 930a ld.w r0, (r3, 0x28) + 4106: 480a lsri r0, r0, 10 + 4108: 07fb br 0x40fe // 40fe + if(g_key.key_state & 0x0800){ + 410a: 930a ld.w r0, (r3, 0x28) + 410c: 480b lsri r0, r0, 11 + 410e: 07f8 br 0x40fe // 40fe + if(g_key.key_state & 0x1000){ + 4110: 930a ld.w r0, (r3, 0x28) + 4112: 480c lsri r0, r0, 12 + 4114: 07f5 br 0x40fe // 40fe + if(g_key.key_state & 0x2000){ + 4116: 930a ld.w r0, (r3, 0x28) + 4118: 480d lsri r0, r0, 13 + 411a: 07f2 br 0x40fe // 40fe + U8_T state = 0; + 411c: 3000 movi r0, 0 + 411e: 07f2 br 0x4102 // 4102 + 4120: 200004bc .long 0x200004bc + +Disassembly of section .text.Touch_Key_Event_Handling: + +00004124 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 4124: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 4126: 118a lrw r4, 0x200004bc // 41cc + 4128: 8465 ld.b r3, (r4, 0x5) + 412a: 3b42 cmpnei r3, 2 + 412c: 081c bt 0x4164 // 4164 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 412e: 3300 movi r3, 0 + 4130: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 4132: 8466 ld.b r3, (r4, 0x6) + 4134: 3b42 cmpnei r3, 2 + 4136: 0820 bt 0x4176 // 4176 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 4138: 3300 movi r3, 0 + 413a: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 413c: 8467 ld.b r3, (r4, 0x7) + 413e: 3b42 cmpnei r3, 2 + 4140: 0824 bt 0x4188 // 4188 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4142: 3300 movi r3, 0 + 4144: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 4146: e000156b bsr 0x6c1c // 6c1c + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 414a: 8468 ld.b r3, (r4, 0x8) + 414c: 3b42 cmpnei r3, 2 + 414e: 0829 bt 0x41a0 // 41a0 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 4150: 3300 movi r3, 0 + 4152: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 4154: e0001628 bsr 0x6da4 // 6da4 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 4158: 8469 ld.b r3, (r4, 0x9) + 415a: 3b42 cmpnei r3, 2 + 415c: 082e bt 0x41b8 // 41b8 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 415e: 3300 movi r3, 0 + 4160: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 4162: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4164: 3b44 cmpnei r3, 4 + 4166: 0fe4 bf 0x412e // 412e + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 4168: 3b41 cmpnei r3, 1 + 416a: 0be4 bt 0x4132 // 4132 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 416c: 3300 movi r3, 0 + 416e: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 4170: e00013ee bsr 0x694c // 694c + 4174: 07df br 0x4132 // 4132 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4176: 3b44 cmpnei r3, 4 + 4178: 0fe0 bf 0x4138 // 4138 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 417a: 3b41 cmpnei r3, 1 + 417c: 0be0 bt 0x413c // 413c + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 417e: 3300 movi r3, 0 + 4180: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 4182: e0001455 bsr 0x6a2c // 6a2c + 4186: 07db br 0x413c // 413c + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4188: 3b44 cmpnei r3, 4 + 418a: 0804 bt 0x4192 // 4192 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 418c: 3300 movi r3, 0 + 418e: a467 st.b r3, (r4, 0x7) + 4190: 07dd br 0x414a // 414a + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 4192: 3b41 cmpnei r3, 1 + 4194: 0bdb bt 0x414a // 414a + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4196: 3300 movi r3, 0 + 4198: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 419a: e00014b9 bsr 0x6b0c // 6b0c + 419e: 07d6 br 0x414a // 414a + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 41a0: 3b44 cmpnei r3, 4 + 41a2: 0804 bt 0x41aa // 41aa + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 41a4: 3300 movi r3, 0 + 41a6: a468 st.b r3, (r4, 0x8) + 41a8: 07d8 br 0x4158 // 4158 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 41aa: 3b41 cmpnei r3, 1 + 41ac: 0bd6 bt 0x4158 // 4158 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 41ae: 3300 movi r3, 0 + 41b0: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 41b2: e0001571 bsr 0x6c94 // 6c94 + 41b6: 07d1 br 0x4158 // 4158 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 41b8: 3b44 cmpnei r3, 4 + 41ba: 0fd2 bf 0x415e // 415e + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 41bc: 3b41 cmpnei r3, 1 + 41be: 0bd2 bt 0x4162 // 4162 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 41c0: 3300 movi r3, 0 + 41c2: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 41c4: e000162c bsr 0x6e1c // 6e1c +} + 41c8: 07cd br 0x4162 // 4162 + 41ca: 0000 bkpt + 41cc: 200004bc .long 0x200004bc + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +000041d0 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 41d0: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 41d2: 106c lrw r3, 0x200005cd // 4200 + 41d4: 8340 ld.b r2, (r3, 0x0) + 41d6: 3a41 cmpnei r2, 1 + 41d8: 0c04 bf 0x41e0 // 41e0 + 41da: 8362 ld.b r3, (r3, 0x2) + 41dc: 3b45 cmpnei r3, 5 + 41de: 0c10 bf 0x41fe // 41fe + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 41e0: 1069 lrw r3, 0x200004bc // 4204 + 41e2: 835b ld.b r2, (r3, 0x1b) + 41e4: 3a41 cmpnei r2, 1 + 41e6: 080c bt 0x41fe // 41fe + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 41e8: 1028 lrw r1, 0x200000c0 // 4208 + 41ea: 9140 ld.w r2, (r1, 0x0) + 41ec: 930c ld.w r0, (r3, 0x30) + 41ee: 6082 subu r2, r0 + 41f0: 3095 movi r0, 149 + 41f2: 6480 cmphs r0, r2 + 41f4: 0805 bt 0x41fe // 41fe + g_key.key_dug_tick = SysTick_1ms; + 41f6: 9140 ld.w r2, (r1, 0x0) + 41f8: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + //TouchKey_RS485_Printf(); + TouchKey_RS485_Printf_2(); + 41fa: e3fffe4d bsr 0x3e94 // 3e94 + } + } +} + 41fe: 1490 pop r15 + 4200: 200005cd .long 0x200005cd + 4204: 200004bc .long 0x200004bc + 4208: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Touch_Key_Task: + +0000420c : +void Touch_Key_Task(void){ + 420c: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 420e: 1138 lrw r1, 0x200000c0 // 42ec + 4210: 1178 lrw r3, 0x200004bc // 42f0 + 4212: 9140 ld.w r2, (r1, 0x0) + 4214: 930b ld.w r0, (r3, 0x2c) + 4216: 6082 subu r2, r0 + 4218: 3a04 cmphsi r2, 5 + 421a: 0806 bt 0x4226 // 4226 + break; + } + } + } + + Touch_Key_Event_Handling(); + 421c: e3ffff84 bsr 0x4124 // 4124 + + TouchKey_Set_Interface_Task(); + 4220: e3ffffd8 bsr 0x41d0 // 41d0 + +} + 4224: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 4226: 9140 ld.w r2, (r1, 0x0) + 4228: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 422a: 1133 lrw r1, 0x2000078c // 42f4 + 422c: 9140 ld.w r2, (r1, 0x0) + 422e: 3a40 cmpnei r2, 0 + 4230: 0c02 bf 0x4234 // 4234 + g_key.key_state = Key_Map; + 4232: 9140 ld.w r2, (r1, 0x0) + 4234: 118f lrw r4, 0x200004bc // 42f0 +void Touch_Key_Task(void){ + 4236: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 4238: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 423a: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 423c: 11ef lrw r7, 0x257 // 42f8 + switch (g_key.KEY_STA[i]) { + 423e: 8460 ld.b r3, (r4, 0x0) + 4240: 3b41 cmpnei r3, 1 + 4242: 0c28 bf 0x4292 // 4292 + 4244: 3b40 cmpnei r3, 0 + 4246: 0c0a bf 0x425a // 425a + 4248: 3b42 cmpnei r3, 2 + 424a: 0c41 bf 0x42cc // 42cc + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 424c: 2500 addi r5, 1 + 424e: 7554 zextb r5, r5 + 4250: 3d45 cmpnei r5, 5 + 4252: 2400 addi r4, 1 + 4254: 2601 addi r6, 2 + 4256: 0bf4 bt 0x423e // 423e + 4258: 07e2 br 0x421c // 421c + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 425a: 6c17 mov r0, r5 + 425c: e3ffff46 bsr 0x40e8 // 40e8 + 4260: 3841 cmpnei r0, 1 + 4262: 0813 bt 0x4288 // 4288 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 4264: 8474 ld.b r3, (r4, 0x14) + 4266: 3b01 cmphsi r3, 2 + 4268: 0804 bt 0x4270 // 4270 + g_key.delayCnt[i]++; + 426a: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 426c: a474 st.b r3, (r4, 0x14) + 426e: 07ef br 0x424c // 424c + Controlled_Buzzer(0x01); + 4270: 3001 movi r0, 1 + 4272: e0000f83 bsr 0x6178 // 6178 + Contol_Switch_ClickAction(i,Control_ON); + 4276: 3101 movi r1, 1 + 4278: 6c17 mov r0, r5 + 427a: e00009df bsr 0x5638 // 5638 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 427e: 3301 movi r3, 1 + 4280: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 4282: 3300 movi r3, 0 + 4284: ae6e st.h r3, (r6, 0x1c) + 4286: 07f3 br 0x426c // 426c + g_key.delayCnt[i] = 0; + 4288: 3300 movi r3, 0 + 428a: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 428c: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 428e: a465 st.b r3, (r4, 0x5) + 4290: 07de br 0x424c // 424c + g_key.key_time[i]++; + 4292: 8e6e ld.h r3, (r6, 0x1c) + 4294: 2300 addi r3, 1 + 4296: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 4298: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 429a: ae6e st.h r3, (r6, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 429c: 0c10 bf 0x42bc // 42bc + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 429e: 6c17 mov r0, r5 + 42a0: e3ffff24 bsr 0x40e8 // 40e8 + 42a4: 3840 cmpnei r0, 0 + 42a6: 0bd3 bt 0x424c // 424c + Contol_Switch_ClickAction(i,Control_OFF); + 42a8: 3102 movi r1, 2 + 42aa: 6c17 mov r0, r5 + 42ac: e00009c6 bsr 0x5638 // 5638 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 42b0: 3301 movi r3, 1 + 42b2: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 42b4: 3300 movi r3, 0 + 42b6: ae6e st.h r3, (r6, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 42b8: a460 st.b r3, (r4, 0x0) + 42ba: 07c9 br 0x424c // 424c + g_key.KEY_STA[i] = KEY_STA_S2; + 42bc: 3302 movi r3, 2 + 42be: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 42c0: 3300 movi r3, 0 + 42c2: ae6e st.h r3, (r6, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 42c4: 3303 movi r3, 3 + 42c6: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 42c8: 3302 movi r3, 2 + 42ca: 07e2 br 0x428e // 428e + g_key.key_longPress[i] = KEY_VAL_NOT; + 42cc: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 42ce: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 42d0: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 42d2: e3ffff0b bsr 0x40e8 // 40e8 + 42d6: 3840 cmpnei r0, 0 + 42d8: 0bba bt 0x424c // 424c + Contol_Switch_ClickAction(i,Control_OFF); + 42da: 3102 movi r1, 2 + 42dc: 6c17 mov r0, r5 + 42de: e00009ad bsr 0x5638 // 5638 + g_key.KEY_STA[i] = KEY_STA_S0; + 42e2: 3300 movi r3, 0 + 42e4: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 42e6: 3304 movi r3, 4 + 42e8: 07d3 br 0x428e // 428e + 42ea: 0000 bkpt + 42ec: 200000c0 .long 0x200000c0 + 42f0: 200004bc .long 0x200004bc + 42f4: 2000078c .long 0x2000078c + 42f8: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +000042fc : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 42fc: 6040 addu r1, r0 + U8_T data_sum = 0; + 42fe: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 4304: 6cce nor r3, r3 + 4306: 740c zextb r0, r3 +} + 4308: 783c jmp r15 + data_sum += data[i]; + 430a: 8040 ld.b r2, (r0, 0x0) + 430c: 60c8 addu r3, r2 + 430e: 74cc zextb r3, r3 + 4310: 2000 addi r0, 1 + 4312: 07f7 br 0x4300 // 4300 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00004314 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 4314: 14d2 push r4-r5, r15 + 4316: 1430 subi r14, r14, 64 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 4318: 5992 addi r4, r1, 5 + 431a: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 431c: 3331 movi r3, 49 + 431e: 650c cmphs r3, r4 + 4320: 0803 bt 0x4326 // 4326 + para_len = 44; + 4322: 312c movi r1, 44 + reply_len = 50; + 4324: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 4326: 3300 movi r3, 0 + 4328: 2b50 subi r3, 81 + 432a: dc6e0004 st.b r3, (r14, 0x4) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 432e: dc8e0006 st.b r4, (r14, 0x6) + send_data[1] = g_eeprom.dev_addr; + 4332: 1074 lrw r3, 0x200004f0 // 4380 + 4334: 8360 ld.b r3, (r3, 0x0) + 4336: dc6e0005 st.b r3, (r14, 0x5) + send_data[3] = 0x00; + 433a: 3300 movi r3, 0 + 433c: dc6e0007 st.b r3, (r14, 0x7) + + for(i=0;i + } + send_data[i+4] = 0xFA; + 4348: 60c8 addu r3, r2 + 434a: 3200 movi r2, 0 + 434c: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 434e: 6c53 mov r1, r4 + 4350: 1801 addi r0, r14, 4 + send_data[i+4] = 0xFA; + 4352: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 4354: e3ffffd4 bsr 0x42fc // 42fc + +// if (detect_inf.control_model == 0x00){ +// MCU485_SendData(send_data,reply_len); + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 4358: 3314 movi r3, 20 + 435a: b860 st.w r3, (r14, 0x0) + 435c: 3396 movi r3, 150 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 435e: dc0e0007 st.b r0, (r14, 0x7) + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 4362: 4361 lsli r3, r3, 1 + 4364: 1801 addi r0, r14, 4 + 4366: 3201 movi r2, 1 + 4368: 6c53 mov r1, r4 + 436a: e3fffcc1 bsr 0x3cec // 3cec +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 436e: 1410 addi r14, r14, 64 + 4370: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 4372: 58ac addu r5, r0, r3 + 4374: 608c addu r2, r3 + 4376: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 4380: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00004384 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 4384: 14d4 push r4-r7, r15 + 4386: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 4388: 80a0 ld.b r5, (r0, 0x0) + 438a: 5dc3 subi r6, r5, 1 + 438c: 7598 zextb r6, r6 + 438e: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 4390: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 4392: 0834 bt 0x43fa // 43fa + 4394: 1125 lrw r1, 0x200004a0 // 4428 + 4396: 350b movi r5, 11 + 4398: 5862 addi r3, r0, 1 + 439a: 6140 addu r5, r0 + 439c: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 43ba: 8479 ld.b r3, (r4, 0x19) + 43bc: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 43be: 847a ld.b r3, (r4, 0x1a) + 43c0: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 43c2: 847b ld.b r3, (r4, 0x1b) + 43c4: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 43c6: 847c ld.b r3, (r4, 0x1c) + 43c8: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 43ca: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 43cc: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 43ce: 1037 lrw r1, 0x200004a0 // 4428 + touch_para.longpress_time = para[29]; + 43d0: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 43d2: e0000315 bsr 0x49fc // 49fc + + if(rev == 0x00){ + 43d6: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 43d8: 6d43 mov r5, r0 + if(rev == 0x00){ + 43da: 0805 bt 0x43e4 // 43e4 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 43dc: 1033 lrw r1, 0x200004a0 // 4428 + 43de: 6c1b mov r0, r6 + 43e0: e0000282 bsr 0x48e4 // 48e4 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 43e4: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 43e6: 3102 movi r1, 2 + 43e8: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 43ea: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 43ee: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 43f2: e3ffff91 bsr 0x4314 // 4314 +} + 43f6: 1401 addi r14, r14, 4 + 43f8: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 43fa: 3d40 cmpnei r5, 0 + 43fc: 0c03 bf 0x4402 // 4402 + rev = 0x01; + 43fe: 3501 movi r5, 1 + 4400: 07f2 br 0x43e4 // 43e4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 4402: 8061 ld.b r3, (r0, 0x1) + 4404: 104a lrw r2, 0x9ccc // 442c + 4406: 102b lrw r1, 0xa1bf // 4430 + 4408: 3000 movi r0, 0 + 440a: e3fffd09 bsr 0x3e1c // 3e1c + if( (para[1] > 0) && (para[1] <= 3) ){ + 440e: 8461 ld.b r3, (r4, 0x1) + 4410: 2b00 subi r3, 1 + 4412: 74cc zextb r3, r3 + 4414: 3b02 cmphsi r3, 3 + 4416: 0bf4 bt 0x43fe // 43fe + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4418: 1047 lrw r2, 0x200005cd // 4434 + g_eeprom.key_sens_level = para[1] - 1; + 441a: 1008 lrw r0, 0x200004f0 // 4438 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 441c: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 441e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4420: e00001be bsr 0x479c // 479c + 4424: 07e0 br 0x43e4 // 43e4 + 4426: 0000 bkpt + 4428: 200004a0 .long 0x200004a0 + 442c: 00009ccc .long 0x00009ccc + 4430: 0000a1bf .long 0x0000a1bf + 4434: 200005cd .long 0x200005cd + 4438: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +0000443c : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 443c: 14d3 push r4-r6, r15 + 443e: 142d subi r14, r14, 52 + 4440: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 4442: 3232 movi r2, 50 + 4444: 3100 movi r1, 0 + 4446: 6c3b mov r0, r14 + 4448: e3ffeaaa bsr 0x199c // 199c <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 444c: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 444e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4450: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 4452: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 4456: 0837 bt 0x44c4 // 44c4 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 4458: 11d5 lrw r6, 0x200004f0 // 452c + 445a: 8605 ld.b r0, (r6, 0x5) + 445c: 1135 lrw r1, 0x200004a0 // 4530 + 445e: e0000279 bsr 0x4950 // 4950 + if(rev != 0x00){ + 4462: 3840 cmpnei r0, 0 + 4464: 11b3 lrw r5, 0x200004a0 // 4530 + 4466: 0c05 bf 0x4470 // 4470 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4468: 8605 ld.b r0, (r6, 0x5) + 446a: 6c57 mov r1, r5 + 446c: e000033a bsr 0x4ae0 // 4ae0 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4470: 8665 ld.b r3, (r6, 0x5) + 4472: 2300 addi r3, 1 + 4474: dc6e0001 st.b r3, (r14, 0x1) + 4478: 6cfb mov r3, r14 + 447a: 114e lrw r2, 0x200004a0 // 4530 + + for(i=0;i> 8; + 4482: 4928 lsri r1, r1, 8 + 4484: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 448e: 4928 lsri r1, r1, 8 + 4490: a32f st.b r1, (r3, 0xf) + 4492: 2201 addi r2, 2 + 4494: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 4498: 8560 ld.b r3, (r5, 0x0) + 449a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 449e: 8561 ld.b r3, (r5, 0x1) + 44a0: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 44a4: 8562 ld.b r3, (r5, 0x2) + 44a6: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 44aa: 8563 ld.b r3, (r5, 0x3) + 44ac: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 44b0: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 44b2: dc6e001e st.b r3, (r14, 0x1e) + 44b6: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 44b8: 7445 zexth r1, r1 + 44ba: 6c3b mov r0, r14 + 44bc: e3ffff2c bsr 0x4314 // 4314 +} + 44c0: 140d addi r14, r14, 52 + 44c2: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 44c4: 3c03 cmphsi r4, 4 + 44c6: 0831 bt 0x4528 // 4528 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 44c8: 2c00 subi r4, 1 + 44ca: 7410 zextb r0, r4 + 44cc: 1039 lrw r1, 0x200004a0 // 4530 + 44ce: e0000241 bsr 0x4950 // 4950 + if(rev != 0x00){ + 44d2: 3840 cmpnei r0, 0 + 44d4: 1097 lrw r4, 0x200004a0 // 4530 + 44d6: 0c07 bf 0x44e4 // 44e4 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 44d8: 8500 ld.b r0, (r5, 0x0) + 44da: 2800 subi r0, 1 + 44dc: 7400 zextb r0, r0 + 44de: 6c53 mov r1, r4 + 44e0: e0000300 bsr 0x4ae0 // 4ae0 + reply_buff[reply_len++] = para[0]; + 44e4: 8560 ld.b r3, (r5, 0x0) + 44e6: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 44ee: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 44f0: 8902 ld.h r0, (r1, 0x4) + 44f2: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 44f6: 4808 lsri r0, r0, 8 + 44f8: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 4502: 4808 lsri r0, r0, 8 + 4504: a30f st.b r0, (r3, 0xf) + 4506: 2101 addi r1, 2 + 4508: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 450c: 8460 ld.b r3, (r4, 0x0) + 450e: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 4512: 8461 ld.b r3, (r4, 0x1) + 4514: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4518: 8462 ld.b r3, (r4, 0x2) + 451a: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 451e: 8463 ld.b r3, (r4, 0x3) + 4520: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 4524: 8478 ld.b r3, (r4, 0x18) + 4526: 07c6 br 0x44b2 // 44b2 + reply_buff[reply_len++] = 0x00; + 4528: 3102 movi r1, 2 + 452a: 07c7 br 0x44b8 // 44b8 + 452c: 200004f0 .long 0x200004f0 + 4530: 200004a0 .long 0x200004a0 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00004534 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 4534: 14d0 push r15 + 4536: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4538: 8060 ld.b r3, (r0, 0x0) + 453a: 3b41 cmpnei r3, 1 + 453c: 0810 bt 0x455c // 455c + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 453e: 106b lrw r3, 0x200004bc // 4568 + 4540: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 4542: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 4544: 3303 movi r3, 3 + 4546: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 454a: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 454c: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 454e: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 4550: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 4554: e3fffee0 bsr 0x4314 // 4314 +} + 4558: 1401 addi r14, r14, 4 + 455a: 1490 pop r15 + }else if(para[0] == 0x02){ + 455c: 3b42 cmpnei r3, 2 + 455e: 0bf3 bt 0x4544 // 4544 + g_key.key_dug_printf = 0x00; + 4560: 1062 lrw r3, 0x200004bc // 4568 + 4562: 3200 movi r2, 0 + 4564: 07ef br 0x4542 // 4542 + 4566: 0000 bkpt + 4568: 200004bc .long 0x200004bc + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +0000456c : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 456c: 14d0 push r15 + 456e: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4570: 1149 lrw r2, 0x2000093e // 4614 + reply_buff[reply_len++] = 0x04; //CMD + 4572: 3304 movi r3, 4 + 4574: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4578: 8a69 ld.h r3, (r2, 0x12) + 457a: 4b68 lsri r3, r3, 8 + 457c: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4580: 8a69 ld.h r3, (r2, 0x12) + 4582: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4586: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4588: 1164 lrw r3, 0x200005ec // 4618 + 458a: 8b29 ld.h r1, (r3, 0x12) + 458c: 4928 lsri r1, r1, 8 + 458e: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4592: 8b29 ld.h r1, (r3, 0x12) + 4594: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4598: 8a2a ld.h r1, (r2, 0x14) + 459a: 4928 lsri r1, r1, 8 + 459c: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 45a0: 8a2a ld.h r1, (r2, 0x14) + 45a2: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 45a6: 8b2a ld.h r1, (r3, 0x14) + 45a8: 4928 lsri r1, r1, 8 + 45aa: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 45ae: 8b2a ld.h r1, (r3, 0x14) + 45b0: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 45b4: 8a2b ld.h r1, (r2, 0x16) + 45b6: 4928 lsri r1, r1, 8 + 45b8: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 45bc: 8a2b ld.h r1, (r2, 0x16) + 45be: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 45c2: 8b2b ld.h r1, (r3, 0x16) + 45c4: 4928 lsri r1, r1, 8 + 45c6: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 45ca: 8b2b ld.h r1, (r3, 0x16) + 45cc: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 45d0: 8a2c ld.h r1, (r2, 0x18) + 45d2: 4928 lsri r1, r1, 8 + 45d4: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 45d8: 8a2c ld.h r1, (r2, 0x18) + 45da: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 45de: 8b2c ld.h r1, (r3, 0x18) + 45e0: 4928 lsri r1, r1, 8 + 45e2: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 45e6: 8b2c ld.h r1, (r3, 0x18) + 45e8: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 45ec: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 45ee: 8a4d ld.h r2, (r2, 0x1a) + 45f0: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 45f4: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 45f6: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 45f8: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 45fc: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 45fe: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4600: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4602: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4606: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 460a: e3fffe85 bsr 0x4314 // 4314 +} + 460e: 140d addi r14, r14, 52 + 4610: 1490 pop r15 + 4612: 0000 bkpt + 4614: 2000093e .long 0x2000093e + 4618: 200005ec .long 0x200005ec + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +0000461c : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 461c: 14d0 push r15 + 461e: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4620: 3305 movi r3, 5 + 4622: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4626: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4628: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 462a: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 462c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4630: e3fffe72 bsr 0x4314 // 4314 + 4634: 0400 br 0x4634 // 4634 + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004638 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4638: 14d2 push r4-r5, r15 + 463a: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 463c: 8060 ld.b r3, (r0, 0x0) + 463e: 32af movi r2, 175 + 4640: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4642: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 4644: 0c09 bf 0x4656 // 4656 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 4646: 3000 movi r0, 0 + 4648: 114b lrw r2, 0x9ce8 // 46f4 + 464a: 112c lrw r1, 0xa1cf // 46f8 + 464c: e3fffbe8 bsr 0x3e1c // 3e1c + return 0x01; + 4650: 3001 movi r0, 1 + break; + } + + + return 0; +} + 4652: 1401 addi r14, r14, 4 + 4654: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 4656: 114a lrw r2, 0x200004f0 // 46fc + 4658: 8061 ld.b r3, (r0, 0x1) + 465a: 8240 ld.b r2, (r2, 0x0) + 465c: 64ca cmpne r2, r3 + 465e: 0c08 bf 0x466e // 466e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4660: 3000 movi r0, 0 + 4662: 1145 lrw r2, 0x9ce8 // 46f4 + 4664: 1127 lrw r1, 0xa1e1 // 4700 + 4666: e3fffbdb bsr 0x3e1c // 3e1c + return 0x02; + 466a: 3002 movi r0, 2 + 466c: 07f3 br 0x4652 // 4652 + if(data[2] != len){ + 466e: 8062 ld.b r3, (r0, 0x2) + 4670: 750d zexth r4, r3 + 4672: 6452 cmpne r4, r1 + 4674: 0c09 bf 0x4686 // 4686 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 4676: b820 st.w r1, (r14, 0x0) + 4678: 105f lrw r2, 0x9ce8 // 46f4 + 467a: 1123 lrw r1, 0xa1f2 // 4704 + 467c: 3000 movi r0, 0 + 467e: e3fffbcf bsr 0x3e1c // 3e1c + return 0x03; + 4682: 3003 movi r0, 3 + 4684: 07e7 br 0x4652 // 4652 + if(data[len-1] != 0xFA){ + 4686: 60c0 addu r3, r0 + 4688: 2b00 subi r3, 1 + 468a: 8360 ld.b r3, (r3, 0x0) + 468c: 32fa movi r2, 250 + 468e: 648e cmpne r3, r2 + 4690: 0c07 bf 0x469e // 469e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 4692: 1059 lrw r2, 0x9ce8 // 46f4 + 4694: 103d lrw r1, 0xa205 // 4708 + 4696: 3000 movi r0, 0 + 4698: e3fffbc2 bsr 0x3e1c // 3e1c + 469c: 07f3 br 0x4682 // 4682 + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 469e: 5c23 subi r1, r4, 1 + 46a0: 7445 zexth r1, r1 + 46a2: e3fffe2d bsr 0x42fc // 42fc + 46a6: 3840 cmpnei r0, 0 + 46a8: 0806 bt 0x46b4 // 46b4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 46aa: 1053 lrw r2, 0x9ce8 // 46f4 + 46ac: 1038 lrw r1, 0xa215 // 470c + 46ae: e3fffbb7 bsr 0x3e1c // 3e1c + 46b2: 07e8 br 0x4682 // 4682 + switch(data[4]){ + 46b4: 8504 ld.b r0, (r5, 0x4) + 46b6: 2800 subi r0, 1 + 46b8: 3804 cmphsi r0, 5 + 46ba: 080c bt 0x46d2 // 46d2 + 46bc: 5c37 subi r1, r4, 6 + 46be: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 46c0: 7445 zexth r1, r1 + switch(data[4]){ + 46c2: e3ffe31d bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 46c6: 0803 .short 0x0803 + 46c8: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 46cc: 6c17 mov r0, r5 + 46ce: e3fffe5b bsr 0x4384 // 4384 + return 0; + 46d2: 3000 movi r0, 0 + 46d4: 07bf br 0x4652 // 4652 + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 46d6: 6c17 mov r0, r5 + 46d8: e3fffeb2 bsr 0x443c // 443c + 46dc: 07fb br 0x46d2 // 46d2 + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 46de: 6c17 mov r0, r5 + 46e0: e3ffff2a bsr 0x4534 // 4534 + 46e4: 07f7 br 0x46d2 // 46d2 + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 46e6: 6c17 mov r0, r5 + 46e8: e3ffff42 bsr 0x456c // 456c + 46ec: 07f3 br 0x46d2 // 46d2 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 46ee: 6c17 mov r0, r5 + 46f0: e3ffff96 bsr 0x461c // 461c + 46f4: 00009ce8 .long 0x00009ce8 + 46f8: 0000a1cf .long 0x0000a1cf + 46fc: 200004f0 .long 0x200004f0 + 4700: 0000a1e1 .long 0x0000a1e1 + 4704: 0000a1f2 .long 0x0000a1f2 + 4708: 0000a205 .long 0x0000a205 + 470c: 0000a215 .long 0x0000a215 + +Disassembly of section .text.EEPROM_CheckSum: + +00004710 : +#include "includes.h" + +E_PARA_INFO g_eeprom; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4710: 6cc3 mov r3, r0 + 4712: 6040 addu r1, r0 + U8_T data_sum = 0; + 4714: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 471a: 783c jmp r15 + data_sum += data[i]; + 471c: 8340 ld.b r2, (r3, 0x0) + 471e: 6008 addu r0, r2 + 4720: 7400 zextb r0, r0 + 4722: 2300 addi r3, 1 + 4724: 07f9 br 0x4716 // 4716 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004728 : + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4728: 14d1 push r4, r15 + 472a: 143b subi r14, r14, 108 + 472c: 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)); + 472e: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4730: 3264 movi r2, 100 + 4732: 3100 movi r1, 0 + 4734: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4736: b860 st.w r3, (r14, 0x0) + 4738: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 473c: e3ffe930 bsr 0x199c // 199c <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4740: 6cbb mov r2, r14 + 4742: 3104 movi r1, 4 + 4744: 1014 lrw r0, 0x10000100 // 4794 + 4746: e3fff1b5 bsr 0x2ab0 // 2ab0 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 474a: d84e0000 ld.b r2, (r14, 0x0) + 474e: 33a6 movi r3, 166 + 4750: 64ca cmpne r2, r3 + 4752: 0c04 bf 0x475a // 475a + return 0x00; + } + } + } + + return 0x01; + 4754: 3001 movi r0, 1 +} + 4756: 141b addi r14, r14, 108 + 4758: 1491 pop r4, r15 + read_len |= read_info[1]; + 475a: d82e0002 ld.b r1, (r14, 0x2) + 475e: d86e0001 ld.b r3, (r14, 0x1) + 4762: 4128 lsli r1, r1, 8 + 4764: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 4766: 3364 movi r3, 100 + 4768: 644c cmphs r3, r1 + 476a: 0ff5 bf 0x4754 // 4754 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 476c: 1a02 addi r2, r14, 8 + 476e: 100b lrw r0, 0x10000104 // 4798 + 4770: e3fff1a0 bsr 0x2ab0 // 2ab0 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 4774: 3108 movi r1, 8 + 4776: 1802 addi r0, r14, 8 + 4778: e3ffffcc bsr 0x4710 // 4710 + 477c: d86e0003 ld.b r3, (r14, 0x3) + 4780: 640e cmpne r3, r0 + 4782: 0be9 bt 0x4754 // 4754 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 4784: 3208 movi r2, 8 + 4786: 1902 addi r1, r14, 8 + 4788: 6c13 mov r0, r4 + 478a: e3ffe94d bsr 0x1a24 // 1a24 <__memcpy_fast> + return 0x00; + 478e: 3000 movi r0, 0 + 4790: 07e3 br 0x4756 // 4756 + 4792: 0000 bkpt + 4794: 10000100 .long 0x10000100 + 4798: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +0000479c : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 479c: 14d0 push r15 + 479e: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_DATA_Size_Max) save_len = EEPROM_DATA_Size_Max; + + save_data[0] = EEPROM_SVAE_FLAG; + 47a0: 3300 movi r3, 0 + 47a2: 2b59 subi r3, 90 + 47a4: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 47a8: 3308 movi r3, 8 + 47aa: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 47ae: 3300 movi r3, 0 + 47b0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 47b4: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 47b6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 47b8: 3208 movi r2, 8 + 47ba: 6c0f mov r0, r3 + 47bc: e3ffe934 bsr 0x1a24 // 1a24 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 47c0: 3108 movi r1, 8 + 47c2: e3ffffa7 bsr 0x4710 // 4710 + 47c6: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 47ca: 6cbb mov r2, r14 + 47cc: 310c movi r1, 12 + 47ce: 1004 lrw r0, 0x10000100 // 47dc + 47d0: e3fff120 bsr 0x2a10 // 2a10 + + return 0; +} + 47d4: 3000 movi r0, 0 + 47d6: 141b addi r14, r14, 108 + 47d8: 1490 pop r15 + 47da: 0000 bkpt + 47dc: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +000047e0 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 47e0: 14d1 push r4, r15 + 47e2: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 47e4: 8062 ld.b r3, (r0, 0x2) + 47e6: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 47e8: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 47ea: 0c03 bf 0x47f0 // 47f0 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 47ec: 3309 movi r3, 9 + 47ee: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 47f0: 8442 ld.b r2, (r4, 0x2) + 47f2: 103d lrw r1, 0xa224 // 4864 + 47f4: 3000 movi r0, 0 + 47f6: e3fffb13 bsr 0x3e1c // 3e1c + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 47fa: 8463 ld.b r3, (r4, 0x3) + 47fc: 3b02 cmphsi r3, 3 + 47fe: 0c03 bf 0x4804 // 4804 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4800: 3300 movi r3, 0 + 4802: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 4804: 8464 ld.b r3, (r4, 0x4) + 4806: 3b01 cmphsi r3, 2 + 4808: 0c03 bf 0x480e // 480e + { + info->backlight_en = 0x00; + 480a: 3300 movi r3, 0 + 480c: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 480e: 8461 ld.b r3, (r4, 0x1) + 4810: 3b02 cmphsi r3, 3 + 4812: 0c03 bf 0x4818 // 4818 + { + info->pipe_flag = 0x00; + 4814: 3300 movi r3, 0 + 4816: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4818: 8460 ld.b r3, (r4, 0x0) + 481a: 2b00 subi r3, 1 + 481c: 74cc zextb r3, r3 + 481e: 32fd movi r2, 253 + 4820: 64c8 cmphs r2, r3 + 4822: 0803 bt 0x4828 // 4828 + { + info->dev_addr = 0x01; + 4824: 3301 movi r3, 1 + 4826: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4828: 8465 ld.b r3, (r4, 0x5) + 482a: 3b02 cmphsi r3, 3 + 482c: 0c03 bf 0x4832 // 4832 + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 482e: 3301 movi r3, 1 + 4830: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 4832: 8466 ld.b r3, (r4, 0x6) + 4834: 3b02 cmphsi r3, 3 + 4836: 0c03 bf 0x483c // 483c + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 4838: 3300 movi r3, 0 + 483a: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 483c: 8467 ld.b r3, (r4, 0x7) + 483e: 3b02 cmphsi r3, 3 + 4840: 0c03 bf 0x4846 // 4846 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 4842: 3301 movi r3, 1 + 4844: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 4846: 8427 ld.b r1, (r4, 0x7) + 4848: b822 st.w r1, (r14, 0x8) + 484a: 8420 ld.b r1, (r4, 0x0) + 484c: b821 st.w r1, (r14, 0x4) + 484e: 8425 ld.b r1, (r4, 0x5) + 4850: b820 st.w r1, (r14, 0x0) + 4852: 8464 ld.b r3, (r4, 0x4) + 4854: 8443 ld.b r2, (r4, 0x3) + 4856: 1025 lrw r1, 0xa23b // 4868 + 4858: 3000 movi r0, 0 + 485a: e3fffae1 bsr 0x3e1c // 3e1c + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 485e: 3000 movi r0, 0 + 4860: 1403 addi r14, r14, 12 + 4862: 1491 pop r4, r15 + 4864: 0000a224 .long 0x0000a224 + 4868: 0000a23b .long 0x0000a23b + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +0000486c : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 486c: 3301 movi r3, 1 + 486e: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 4870: 3300 movi r3, 0 + 4872: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4874: 3309 movi r3, 9 + 4876: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4878: 3300 movi r3, 0 + 487a: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 487c: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 487e: 3301 movi r3, 1 + 4880: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 4882: 3300 movi r3, 0 + 4884: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 4886: 3301 movi r3, 1 + 4888: a067 st.b r3, (r0, 0x7) + +} + 488a: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +0000488c : +void EEPROM_Init(void){ + 488c: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 488e: 1073 lrw r3, 0x20000060 // 48d8 + 4890: 3201 movi r2, 1 + 4892: 9360 ld.w r3, (r3, 0x0) + 4894: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 4896: 9345 ld.w r2, (r3, 0x14) + 4898: 3aa1 bseti r2, 1 + 489a: 3ab0 bseti r2, 16 + 489c: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 489e: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 48a0: 108f lrw r4, 0x200004f0 // 48dc + delay_nms(10); + 48a2: e3fff21f bsr 0x2ce0 // 2ce0 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 48a6: 3208 movi r2, 8 + 48a8: 3100 movi r1, 0 + 48aa: 6c13 mov r0, r4 + 48ac: e3ffe878 bsr 0x199c // 199c <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 48b0: 6c13 mov r0, r4 + 48b2: e3ffff3b bsr 0x4728 // 4728 + if(rev == 0x00){ + 48b6: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 48b8: 6c13 mov r0, r4 + if(rev == 0x00){ + 48ba: 0804 bt 0x48c2 // 48c2 + EEPROM_Validate_ParaInfo(&g_eeprom); + 48bc: e3ffff92 bsr 0x47e0 // 47e0 +} + 48c0: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 48c2: e3ffffd5 bsr 0x486c // 486c + EEPROM_WriteParaInfo(&g_eeprom); + 48c6: 6c13 mov r0, r4 + 48c8: e3ffff6a bsr 0x479c // 479c + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 48cc: 8441 ld.b r2, (r4, 0x1) + 48ce: 1025 lrw r1, 0xa295 // 48e0 + 48d0: 3000 movi r0, 0 + 48d2: e3fffaa5 bsr 0x3e1c // 3e1c +} + 48d6: 07f5 br 0x48c0 // 48c0 + 48d8: 20000060 .long 0x20000060 + 48dc: 200004f0 .long 0x200004f0 + 48e0: 0000a295 .long 0x0000a295 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000048e4 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 48e4: 14d2 push r4-r5, r15 + 48e6: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 48e8: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 48ea: 6d47 mov r5, r1 + switch(level){ + 48ec: 0c07 bf 0x48fa // 48fa + 48ee: 3840 cmpnei r0, 0 + 48f0: 0c27 bf 0x493e // 493e + 48f2: 3842 cmpnei r0, 2 + 48f4: 0c23 bf 0x493a // 493a + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 48f6: 3001 movi r0, 1 + 48f8: 041f br 0x4936 // 4936 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 48fa: 1093 lrw r4, 0x10000280 // 4944 + break; + } + + memset(save_para,0,sizeof(save_para)); + 48fc: 323c movi r2, 60 + 48fe: 3100 movi r1, 0 + 4900: 6c3b mov r0, r14 + 4902: e3ffe84d bsr 0x199c // 199c <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_SVAE_FLAG; + 4906: 3300 movi r3, 0 + 4908: 2b59 subi r3, 90 + 490a: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 490e: 331c movi r3, 28 + 4910: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4914: 1b01 addi r3, r14, 4 + 4916: 321c movi r2, 28 + 4918: 6c0f mov r0, r3 + 491a: 6c57 mov r1, r5 + 491c: e3ffe884 bsr 0x1a24 // 1a24 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4920: 311c movi r1, 28 + 4922: e3fffef7 bsr 0x4710 // 4710 + 4926: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 492a: 6cbb mov r2, r14 + 492c: 6c13 mov r0, r4 + 492e: 3120 movi r1, 32 + 4930: e3fff070 bsr 0x2a10 // 2a10 + + return 0; + 4934: 3000 movi r0, 0 +} + 4936: 140f addi r14, r14, 60 + 4938: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 493a: 1084 lrw r4, 0x10000300 // 4948 + break; + 493c: 07e0 br 0x48fc // 48fc + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 493e: 1084 lrw r4, 0x10000200 // 494c + 4940: 07de br 0x48fc // 48fc + 4942: 0000 bkpt + 4944: 10000280 .long 0x10000280 + 4948: 10000300 .long 0x10000300 + 494c: 10000200 .long 0x10000200 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004950 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4950: 14d2 push r4-r5, r15 + 4952: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4954: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4956: 6d07 mov r4, r1 + switch(level){ + 4958: 0c3a bf 0x49cc // 49cc + 495a: 3840 cmpnei r0, 0 + 495c: 0c05 bf 0x4966 // 4966 + 495e: 3842 cmpnei r0, 2 + 4960: 0c34 bf 0x49c8 // 49c8 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4962: 3001 movi r0, 1 + 4964: 0430 br 0x49c4 // 49c4 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4966: 11a1 lrw r5, 0x10000200 // 49e8 + memset(read_info,0,sizeof(read_info)); + 4968: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 496a: 3234 movi r2, 52 + 496c: 3100 movi r1, 0 + 496e: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4970: b860 st.w r3, (r14, 0x0) + 4972: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4976: e3ffe813 bsr 0x199c // 199c <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 497a: 6cbb mov r2, r14 + 497c: 3104 movi r1, 4 + 497e: 6c17 mov r0, r5 + 4980: e3fff098 bsr 0x2ab0 // 2ab0 + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4984: d84e0000 ld.b r2, (r14, 0x0) + 4988: 33a6 movi r3, 166 + 498a: 64ca cmpne r2, r3 + 498c: 0827 bt 0x49da // 49da + read_len |= read_info[1]; + 498e: d84e0002 ld.b r2, (r14, 0x2) + 4992: d86e0001 ld.b r3, (r14, 0x1) + 4996: 4248 lsli r2, r2, 8 + 4998: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 499a: 3a5c cmpnei r2, 28 + 499c: 081a bt 0x49d0 // 49d0 + temp_addr += EEPROM_Offset_Data; + 499e: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 49a0: 1a02 addi r2, r14, 8 + 49a2: 311c movi r1, 28 + 49a4: e3fff086 bsr 0x2ab0 // 2ab0 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 49a8: 311c movi r1, 28 + 49aa: 1802 addi r0, r14, 8 + 49ac: e3fffeb2 bsr 0x4710 // 4710 + 49b0: d86e0003 ld.b r3, (r14, 0x3) + 49b4: 640e cmpne r3, r0 + 49b6: 0bd6 bt 0x4962 // 4962 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 49b8: 321c movi r2, 28 + 49ba: 1902 addi r1, r14, 8 + 49bc: 6c13 mov r0, r4 + 49be: e3ffe833 bsr 0x1a24 // 1a24 <__memcpy_fast> + return 0x00; + 49c2: 3000 movi r0, 0 +} + 49c4: 140f addi r14, r14, 60 + 49c6: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 49c8: 10a9 lrw r5, 0x10000300 // 49ec + break; + 49ca: 07cf br 0x4968 // 4968 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 49cc: 10a9 lrw r5, 0x10000280 // 49f0 + 49ce: 07cd br 0x4968 // 4968 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 49d0: 1029 lrw r1, 0xa2ae // 49f4 + 49d2: 3000 movi r0, 0 + 49d4: e3fffa24 bsr 0x3e1c // 3e1c + 49d8: 07c5 br 0x4962 // 4962 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 49da: 3304 movi r3, 4 + 49dc: 6cbb mov r2, r14 + 49de: 1027 lrw r1, 0xa2d0 // 49f8 + 49e0: 3000 movi r0, 0 + 49e2: e3fffa23 bsr 0x3e28 // 3e28 + 49e6: 07be br 0x4962 // 4962 + 49e8: 10000200 .long 0x10000200 + 49ec: 10000300 .long 0x10000300 + 49f0: 10000280 .long 0x10000280 + 49f4: 0000a2ae .long 0x0000a2ae + 49f8: 0000a2d0 .long 0x0000a2d0 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +000049fc : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 49fc: 14c4 push r4-r7 + 49fe: 1421 subi r14, r14, 4 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 4a00: 8163 ld.b r3, (r1, 0x3) + 4a02: 2b00 subi r3, 1 + 4a04: 74cc zextb r3, r3 + 4a06: 3263 movi r2, 99 + 4a08: 64c8 cmphs r2, r3 + 4a0a: 084e bt 0x4aa6 // 4aa6 + para->base_speed = 20; //默认参数 - 20 + 4a0c: 3314 movi r3, 20 + 4a0e: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 4a10: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4a12: 8140 ld.b r2, (r1, 0x0) + 4a14: 2a00 subi r2, 1 + 4a16: 7488 zextb r2, r2 + 4a18: 3a09 cmphsi r2, 10 + 4a1a: 0c04 bf 0x4a22 // 4a22 + para->press_debounce = 4; //默认参数 - 6 + 4a1c: 3304 movi r3, 4 + 4a1e: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 4a20: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4a22: 8141 ld.b r2, (r1, 0x1) + 4a24: 2a00 subi r2, 1 + 4a26: 7488 zextb r2, r2 + 4a28: 3a09 cmphsi r2, 10 + 4a2a: 0c04 bf 0x4a32 // 4a32 + para->release_debounce = 5; //默认参数 - 5 + 4a2c: 3305 movi r3, 5 + 4a2e: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 4a30: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4a32: 8142 ld.b r2, (r1, 0x2) + 4a34: 2a00 subi r2, 1 + 4a36: 7488 zextb r2, r2 + 4a38: 3463 movi r4, 99 + 4a3a: 6490 cmphs r4, r2 + 4a3c: 0804 bt 0x4a44 // 4a44 + para->multiTimes_filt = 40; //默认参数 - 40 + 4a3e: 3328 movi r3, 40 + 4a40: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4a42: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4a44: 9146 ld.w r2, (r1, 0x18) + 4a46: 2a00 subi r2, 1 + 4a48: 3a1f cmphsi r2, 32 + 4a4a: 0c04 bf 0x4a52 // 4a52 + para->longpress_time = 16; //默认参数 - 16 + 4a4c: 3310 movi r3, 16 + 4a4e: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 4a50: 3301 movi r3, 1 + }else if (i == 1){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 3){ + para->senprd[i] = 300; //默认参数 - 320 + 4a52: 3696 movi r6, 150 + }else if (i == 4){ + para->senprd[i] = 280; //默认参数 - 320 + 4a54: 358c movi r5, 140 + para->senprd[i] = 300; //默认参数 - 320 + 4a56: 46c1 lsli r6, r6, 1 + 4a58: 598e addi r4, r1, 4 + rev = 0x01; + 4a5a: 3200 movi r2, 0 + para->senprd[i] = 280; //默认参数 - 320 + 4a5c: 45a1 lsli r5, r5, 1 + para->senprd[i] = 300; //默认参数 - 320 + 4a5e: dcce1001 st.h r6, (r14, 0x2) + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4a62: 8cc0 ld.h r6, (r4, 0x0) + 4a64: 2e09 subi r6, 10 + 4a66: 7599 zexth r6, r6 + 4a68: 10fd lrw r7, 0x3de // 4adc + 4a6a: 659c cmphs r7, r6 + 4a6c: 0805 bt 0x4a76 // 4a76 + if (i == 0){ + 4a6e: 3a40 cmpnei r2, 0 + 4a70: 081d bt 0x4aaa // 4aaa + para->senprd[i] = 280; //默认参数 - 320 + 4a72: a9a2 st.h r5, (r1, 0x4) + }else { + para->senprd[i] = 300; //默认参数 - 320 + } + + rev = 0x01; + 4a74: 3301 movi r3, 1 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4a76: 8cc5 ld.h r6, (r4, 0xa) + 4a78: 2e13 subi r6, 20 + 4a7a: 37f5 movi r7, 245 + 4a7c: 7599 zexth r6, r6 + 4a7e: 47e2 lsli r7, r7, 2 + 4a80: 659c cmphs r7, r6 + 4a82: 080a bt 0x4a96 // 4a96 + + switch(level){ + 4a84: 3841 cmpnei r0, 1 + 4a86: 0c28 bf 0x4ad6 // 4ad6 + 4a88: 3840 cmpnei r0, 0 + 4a8a: 0c24 bf 0x4ad2 // 4ad2 + 4a8c: 3842 cmpnei r0, 2 + 4a8e: 0824 bt 0x4ad6 // 4ad6 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 60 + 4a90: 3350 movi r3, 80 + break; + case 0x00: + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 4a92: ac65 st.h r3, (r4, 0xa) + break; + } + + rev = 0x01; + 4a94: 3301 movi r3, 1 + for(i=0;i + } + } + + return rev; +} + 4aa0: 6c0f mov r0, r3 + 4aa2: 1401 addi r14, r14, 4 + 4aa4: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 4aa6: 3300 movi r3, 0 + 4aa8: 07b5 br 0x4a12 // 4a12 + }else if (i == 1){ + 4aaa: 3a41 cmpnei r2, 1 + 4aac: 0805 bt 0x4ab6 // 4ab6 + para->senprd[i] = 320; //默认参数 - 320 + 4aae: 33a0 movi r3, 160 + 4ab0: 4361 lsli r3, r3, 1 + 4ab2: a963 st.h r3, (r1, 0x6) + 4ab4: 07e0 br 0x4a74 // 4a74 + }else if (i == 2){ + 4ab6: 3a42 cmpnei r2, 2 + 4ab8: 0805 bt 0x4ac2 // 4ac2 + para->senprd[i] = 320; //默认参数 - 320 + 4aba: 33a0 movi r3, 160 + 4abc: 4361 lsli r3, r3, 1 + 4abe: a964 st.h r3, (r1, 0x8) + 4ac0: 07da br 0x4a74 // 4a74 + }else if (i == 3){ + 4ac2: 3a43 cmpnei r2, 3 + 4ac4: 0805 bt 0x4ace // 4ace + para->senprd[i] = 300; //默认参数 - 320 + 4ac6: d86e1001 ld.h r3, (r14, 0x2) + 4aca: a965 st.h r3, (r1, 0xa) + 4acc: 07d4 br 0x4a74 // 4a74 + para->senprd[i] = 280; //默认参数 - 320 + 4ace: a9a6 st.h r5, (r1, 0xc) + 4ad0: 07d2 br 0x4a74 // 4a74 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + 4ad2: 3378 movi r3, 120 + 4ad4: 07df br 0x4a92 // 4a92 + para->triggerlevel[i] = 100; + 4ad6: 3364 movi r3, 100 + 4ad8: 07dd br 0x4a92 // 4a92 + 4ada: 0000 bkpt + 4adc: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +00004ae0 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4ae0: 14c4 push r4-r7 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 4ae2: 3314 movi r3, 20 + 4ae4: a163 st.b r3, (r1, 0x3) + para->press_debounce = 4; //默认参数 - 6 + 4ae6: 3304 movi r3, 4 + 4ae8: a160 st.b r3, (r1, 0x0) + }else if (i == 1){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 3){ + para->senprd[i] = 300; //默认参数 - 320 + 4aea: 3596 movi r5, 150 + para->release_debounce = 5; //默认参数 - 5 + 4aec: 3305 movi r3, 5 + para->senprd[i] = 300; //默认参数 - 320 + 4aee: 45a1 lsli r5, r5, 1 + para->release_debounce = 5; //默认参数 - 5 + 4af0: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 4af2: 3328 movi r3, 40 + 4af4: a162 st.b r3, (r1, 0x2) + 4af6: 320e movi r2, 14 + para->longpress_time = 16; //默认参数 - 8 + 4af8: 3310 movi r3, 16 + }else if (i == 4){ + para->senprd[i] = 280; //默认参数 - 320 + 4afa: 348c movi r4, 140 + para->senprd[i] = 300; //默认参数 - 320 + 4afc: 6d97 mov r6, r5 + para->senprd[i] = 320; //默认参数 - 320 + 4afe: 35a0 movi r5, 160 + para->longpress_time = 16; //默认参数 - 8 + 4b00: b166 st.w r3, (r1, 0x18) + 4b02: 6084 addu r2, r1 + for(i=0;isenprd[i] = 280; //默认参数 - 320 + 4b06: 4481 lsli r4, r4, 1 + para->senprd[i] = 320; //默认参数 - 320 + 4b08: 45a1 lsli r5, r5, 1 + if (i == 0){ + 4b0a: 3b40 cmpnei r3, 0 + 4b0c: 0810 bt 0x4b2c // 4b2c + para->senprd[i] = 280; //默认参数 - 320 + 4b0e: a982 st.h r4, (r1, 0x4) +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 4b10: 3841 cmpnei r0, 1 + 4b12: 0c1d bf 0x4b4c // 4b4c + 4b14: 3840 cmpnei r0, 0 + 4b16: 0c19 bf 0x4b48 // 4b48 + 4b18: 3842 cmpnei r0, 2 + 4b1a: 0819 bt 0x4b4c // 4b4c + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 60 + 4b1c: 3750 movi r7, 80 + for(i=0;itriggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 4b24: aae0 st.h r7, (r2, 0x0) + 4b26: 2201 addi r2, 2 + for(i=0;i + break; + } + + } +} + 4b2a: 1484 pop r4-r7 + }else if (i == 1){ + 4b2c: 3b41 cmpnei r3, 1 + 4b2e: 0803 bt 0x4b34 // 4b34 + para->senprd[i] = 320; //默认参数 - 320 + 4b30: a9a3 st.h r5, (r1, 0x6) + 4b32: 07ef br 0x4b10 // 4b10 + }else if (i == 2){ + 4b34: 3b42 cmpnei r3, 2 + 4b36: 0803 bt 0x4b3c // 4b3c + para->senprd[i] = 320; //默认参数 - 320 + 4b38: a9a4 st.h r5, (r1, 0x8) + 4b3a: 07eb br 0x4b10 // 4b10 + }else if (i == 3){ + 4b3c: 3b43 cmpnei r3, 3 + 4b3e: 0803 bt 0x4b44 // 4b44 + para->senprd[i] = 300; //默认参数 - 320 + 4b40: a9c5 st.h r6, (r1, 0xa) + 4b42: 07e7 br 0x4b10 // 4b10 + para->senprd[i] = 280; //默认参数 - 320 + 4b44: a986 st.h r4, (r1, 0xc) + 4b46: 07e5 br 0x4b10 // 4b10 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + 4b48: 3778 movi r7, 120 + 4b4a: 07ea br 0x4b1e // 4b1e + para->triggerlevel[i] = 100; + 4b4c: 3764 movi r7, 100 + 4b4e: 07e8 br 0x4b1e // 4b1e + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004b50 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4b50: 14d4 push r4-r7, r15 + 4b52: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4b54: 8043 ld.b r2, (r0, 0x3) + 4b56: 1038 lrw r1, 0xa2ee // 4bb4 + 4b58: 3000 movi r0, 0 + 4b5a: e3fff961 bsr 0x3e1c // 3e1c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 4b5e: 8440 ld.b r2, (r4, 0x0) + 4b60: 1036 lrw r1, 0xa306 // 4bb8 + 4b62: 3000 movi r0, 0 + 4b64: e3fff95c bsr 0x3e1c // 3e1c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4b68: 8441 ld.b r2, (r4, 0x1) + 4b6a: 1035 lrw r1, 0xa322 // 4bbc + 4b6c: 3000 movi r0, 0 + 4b6e: e3fff957 bsr 0x3e1c // 3e1c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4b72: 8442 ld.b r2, (r4, 0x2) + 4b74: 1033 lrw r1, 0xa340 // 4bc0 + 4b76: 3000 movi r0, 0 + 4b78: e3fff952 bsr 0x3e1c // 3e1c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4b7c: 9446 ld.w r2, (r4, 0x18) + 4b7e: 3000 movi r0, 0 + 4b80: 1031 lrw r1, 0xa35d // 4bc4 + 4b82: e3fff94d bsr 0x3e1c // 3e1c + 4b86: 2403 addi r4, 4 + 4b88: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 4b8a: 10f0 lrw r7, 0xa379 // 4bc8 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4b8c: 10d0 lrw r6, 0xa392 // 4bcc + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4b8e: e3ffe887 bsr 0x1c9c // 1c9c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4b92: 8c60 ld.h r3, (r4, 0x0) + 4b94: 6c97 mov r2, r5 + 4b96: 6c5f mov r1, r7 + 4b98: 3000 movi r0, 0 + 4b9a: e3fff941 bsr 0x3e1c // 3e1c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4b9e: 8c65 ld.h r3, (r4, 0xa) + 4ba0: 6c97 mov r2, r5 + 4ba2: 6c5b mov r1, r6 + 4ba4: 3000 movi r0, 0 + 4ba6: 2500 addi r5, 1 + 4ba8: e3fff93a bsr 0x3e1c // 3e1c + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 4bb2: 1494 pop r4-r7, r15 + 4bb4: 0000a2ee .long 0x0000a2ee + 4bb8: 0000a306 .long 0x0000a306 + 4bbc: 0000a322 .long 0x0000a322 + 4bc0: 0000a340 .long 0x0000a340 + 4bc4: 0000a35d .long 0x0000a35d + 4bc8: 0000a379 .long 0x0000a379 + 4bcc: 0000a392 .long 0x0000a392 + +Disassembly of section .text.ADC_Init: + +00004bd0 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4bd0: 14d0 push r15 + 4bd2: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4bd4: e3ffecba bsr 0x2548 // 2548 + ADC12_Software_Reset(); //ADC软件复位 + 4bd8: e3ffed18 bsr 0x2608 // 2608 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 4bdc: 3101 movi r1, 1 + 4bde: 3002 movi r0, 2 + 4be0: e3ffecfe bsr 0x25dc // 25dc + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4be4: 3301 movi r3, 1 + 4be6: b861 st.w r3, (r14, 0x4) + 4be8: 3302 movi r3, 2 + 4bea: b860 st.w r3, (r14, 0x0) + 4bec: 3200 movi r2, 0 + 4bee: 3306 movi r3, 6 + 4bf0: 3101 movi r1, 1 + 4bf2: 3001 movi r0, 1 + 4bf4: e3ffed44 bsr 0x267c // 267c + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS);//如果设置内部参考电压源需要把初始化放在触摸初始化前面,否则触摸会出现错误 + 4bf8: 3003 movi r0, 3 + 4bfa: e3ffed7f bsr 0x26f8 // 26f8 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 4bfe: 3300 movi r3, 0 + 4c00: 3200 movi r2, 0 + 4c02: 3100 movi r1, 0 + 4c04: 300f movi r0, 15 + 4c06: e3ffee45 bsr 0x2890 // 2890 + + ADC12_CMD(ENABLE); + 4c0a: 3001 movi r0, 1 + 4c0c: e3ffed04 bsr 0x2614 // 2614 + + ADC12_ready_wait(); + 4c10: e3ffed16 bsr 0x263c // 263c + + ADC12_Control(ADC12_START); + 4c14: 3008 movi r0, 8 + 4c16: e3ffeccb bsr 0x25ac // 25ac + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 4c1a: 3250 movi r2, 80 + 4c1c: 3100 movi r1, 0 + 4c1e: 1003 lrw r0, 0x200004f8 // 4c28 + 4c20: e3ffe6be bsr 0x199c // 199c <__memset_fast> +} + 4c24: 1402 addi r14, r14, 8 + 4c26: 1490 pop r15 + 4c28: 200004f8 .long 0x200004f8 + +Disassembly of section .text.Thermistor_Array_Transform: + +00004c2c : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 4c2c: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 4c2e: 1070 lrw r3, 0x79bd // 4c6c + 4c30: 640c cmphs r3, r0 +{ + 4c32: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 4c34: 0c16 bf 0x4c60 // 4c60 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4c36: 33a1 movi r3, 161 + 4c38: 4365 lsli r3, r3, 5 + 4c3a: 640c cmphs r3, r0 + 4c3c: 0814 bt 0x4c64 // 4c64 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4c42: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 4c46: 8a60 ld.h r3, (r2, 0x0) + 4c48: 644c cmphs r3, r1 + 4c4a: 0c04 bf 0x4c52 // 4c52 + 4c4c: 8a61 ld.h r3, (r2, 0x2) + 4c4e: 644c cmphs r3, r1 + 4c50: 0c07 bf 0x4c5e // 4c5e + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 4c5c: 30fa movi r0, 250 +} + 4c5e: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 4c60: 3000 movi r0, 0 + 4c62: 07fe br 0x4c5e // 4c5e + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4c64: 30c8 movi r0, 200 + 4c66: 4001 lsli r0, r0, 1 + 4c68: 07fb br 0x4c5e // 4c5e + 4c6a: 0000 bkpt + 4c6c: 000079bd .long 0x000079bd + 4c70: 00009d02 .long 0x00009d02 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004c74 : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 4c74: 14d2 push r4-r5, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 4c78: 3200 movi r2, 0 + uint32_t temp_val = 0; + 4c7a: 3000 movi r0, 0 + 4c7c: 6d53 mov r5, r4 + temp_val += g_adc.dataBuff[i]; + 4c7e: 5a6e addi r3, r2, 4 + 4c80: 4361 lsli r3, r3, 1 + 4c82: 60d0 addu r3, r4 + 4c84: 8320 ld.b r1, (r3, 0x0) + 4c86: 8361 ld.b r3, (r3, 0x1) + 4c88: 4368 lsli r3, r3, 8 + 4c8a: 2200 addi r2, 1 + 4c8c: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4c94: 310a movi r1, 10 + 4c96: e3fff633 bsr 0x38fc // 38fc <__udivsi3> + 4c9a: 74c1 zexth r3, r0 + 4c9c: 748c zextb r2, r3 + 4c9e: 4b68 lsri r3, r3, 8 + 4ca0: a465 st.b r3, (r4, 0x5) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4ca2: a467 st.b r3, (r4, 0x7) + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4ca4: 847d ld.b r3, (r4, 0x1d) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4ca6: a444 st.b r2, (r4, 0x4) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4ca8: a446 st.b r2, (r4, 0x6) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4caa: 4368 lsli r3, r3, 8 + 4cac: 845c ld.b r2, (r4, 0x1c) + 4cae: 6cc8 or r3, r2 + 4cb0: 3b13 cmphsi r3, 20 + 4cb2: 0c06 bf 0x4cbe // 4cbe + g_adc.temp_index = 0; + 4cb4: 3300 movi r3, 0 + 4cb6: a47c st.b r3, (r4, 0x1c) + 4cb8: a47d st.b r3, (r4, 0x1d) + g_adc.gather_full = 1; + 4cba: 3301 movi r3, 1 + 4cbc: a461 st.b r3, (r4, 0x1) + + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4cbe: 859d ld.b r4, (r5, 0x1d) + 4cc0: 857c ld.b r3, (r5, 0x1c) + 4cc2: 4488 lsli r4, r4, 8 + 4cc4: 6d0c or r4, r3 + 4cc6: 5c62 addi r3, r4, 1 + 4cc8: 74cd zexth r3, r3 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4cca: 7481 zexth r2, r0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4ccc: a57c st.b r3, (r5, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4cce: 100b lrw r0, 0x2710 // 4cf8 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4cd0: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4cd2: 102b lrw r1, 0xce4 // 4cfc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4cd4: a57d st.b r3, (r5, 0x1d) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4cd6: 7c08 mult r0, r2 + 4cd8: 604a subu r1, r2 + 4cda: e3fff5ff bsr 0x38d8 // 38d8 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4cde: 240f addi r4, 16 + 4ce0: 7401 zexth r0, r0 + 4ce2: 4481 lsli r4, r4, 1 + 4ce4: e3ffffa4 bsr 0x4c2c // 4c2c + 4ce8: 6114 addu r4, r5 + 4cea: a400 st.b r0, (r4, 0x0) + 4cec: 4808 lsri r0, r0, 8 + 4cee: a401 st.b r0, (r4, 0x1) + + //Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d avg_val:%d",Thermistor_Array_Transform(temp_val),g_adc.avg_val); +} + 4cf0: 1492 pop r4-r5, r15 + 4cf2: 0000 bkpt + 4cf4: 200004f8 .long 0x200004f8 + 4cf8: 00002710 .long 0x00002710 + 4cfc: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.Get_Temp_Val: + +00004d00 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4d00: 1063 lrw r3, 0x200004f8 // 4d0c + 4d02: 831f ld.b r0, (r3, 0x1f) + 4d04: 835e ld.b r2, (r3, 0x1e) + 4d06: 4008 lsli r0, r0, 8 + 4d08: 6c08 or r0, r2 +} + 4d0a: 783c jmp r15 + 4d0c: 200004f8 .long 0x200004f8 + +Disassembly of section .text.Gather_Temp: + +00004d10 : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 4d10: 14d3 push r4-r6, r15 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 1000) + 4d12: 1187 lrw r4, 0x200004f8 // 4dac + 4d14: 3340 movi r3, 64 + 4d16: 60d0 addu r3, r4 + 4d18: 832d ld.b r1, (r3, 0xd) + 4d1a: 834c ld.b r2, (r3, 0xc) + 4d1c: 4128 lsli r1, r1, 8 + 4d1e: 6c48 or r1, r2 + 4d20: 834e ld.b r2, (r3, 0xe) + 4d22: 4250 lsli r2, r2, 16 + 4d24: 6c48 or r1, r2 + 4d26: 834f ld.b r2, (r3, 0xf) + 4d28: 11a2 lrw r5, 0x200000c0 // 4db0 + 4d2a: 4258 lsli r2, r2, 24 + 4d2c: 6c84 or r2, r1 + 4d2e: 9500 ld.w r0, (r5, 0x0) + 4d30: 600a subu r0, r2 + 4d32: 1141 lrw r2, 0x3e7 // 4db4 + 4d34: 6408 cmphs r2, r0 + 4d36: 0817 bt 0x4d64 // 4d64 + { + g_adc.gather_tick = SysTick_1ms; + 4d38: 9540 ld.w r2, (r5, 0x0) + 4d3a: 4a28 lsri r1, r2, 8 + 4d3c: a34c st.b r2, (r3, 0xc) + 4d3e: a32d st.b r1, (r3, 0xd) + 4d40: 4a30 lsri r1, r2, 16 + 4d42: 4a58 lsri r2, r2, 24 + 4d44: a32e st.b r1, (r3, 0xe) + 4d46: a34f st.b r2, (r3, 0xf) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 4d48: 8461 ld.b r3, (r4, 0x1) + 4d4a: 3b41 cmpnei r3, 1 + 4d4c: 0c0d bf 0x4d66 // 4d66 + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4d4e: 843d ld.b r1, (r4, 0x1d) + 4d50: 847c ld.b r3, (r4, 0x1c) + 4d52: 4128 lsli r1, r1, 8 + 4d54: 6c4c or r1, r3 + 4d56: 3000 movi r0, 0 + 4d58: 3300 movi r3, 0 + temp_val += g_adc.tempBuff[i]; + 4d5a: 3510 movi r5, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4d5c: 644c cmphs r3, r1 + 4d5e: 0c1c bf 0x4d96 // 4d96 + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 4d60: 3940 cmpnei r1, 0 + 4d62: 0813 bt 0x4d88 // 4d88 + } + g_adc.temp_val = temp_val / temp_size; + + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 4d64: 1493 pop r4-r6, r15 + if(g_adc.gather_full == 1){ + 4d66: 3200 movi r2, 0 + 4d68: 3000 movi r0, 0 + temp_val += g_adc.tempBuff[i]; + 4d6a: 3110 movi r1, 16 + 4d6c: 5a64 addu r3, r2, r1 + 4d6e: 4361 lsli r3, r3, 1 + 4d70: 60d0 addu r3, r4 + 4d72: 83a0 ld.b r5, (r3, 0x0) + 4d74: 8361 ld.b r3, (r3, 0x1) + 4d76: 4368 lsli r3, r3, 8 + 4d78: 2200 addi r2, 1 + 4d7a: 6cd4 or r3, r5 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4d7c: 3a54 cmpnei r2, 20 + temp_val += g_adc.tempBuff[i]; + 4d7e: 600c addu r0, r3 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4d80: 0bf6 bt 0x4d6c // 4d6c + g_adc.gather_full = 0; + 4d82: 3300 movi r3, 0 + 4d84: a461 st.b r3, (r4, 0x1) + temp_size = Temp_DataBuff_Size; + 4d86: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 4d88: e3fff5ba bsr 0x38fc // 38fc <__udivsi3> + 4d8c: 7401 zexth r0, r0 + 4d8e: a41e st.b r0, (r4, 0x1e) + 4d90: 4808 lsri r0, r0, 8 + 4d92: a41f st.b r0, (r4, 0x1f) + 4d94: 07e8 br 0x4d64 // 4d64 + temp_val += g_adc.tempBuff[i]; + 4d96: 5b54 addu r2, r3, r5 + 4d98: 4241 lsli r2, r2, 1 + 4d9a: 6090 addu r2, r4 + 4d9c: 82c0 ld.b r6, (r2, 0x0) + 4d9e: 8241 ld.b r2, (r2, 0x1) + 4da0: 4248 lsli r2, r2, 8 + 4da2: 6c98 or r2, r6 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4da4: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 4da6: 6008 addu r0, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4da8: 74cc zextb r3, r3 + 4daa: 07d9 br 0x4d5c // 4d5c + 4dac: 200004f8 .long 0x200004f8 + 4db0: 200000c0 .long 0x200000c0 + 4db4: 000003e7 .long 0x000003e7 + +Disassembly of section .text.ADC_Sample_Task: + +00004db8 : +void ADC_Sample_Task(void){ + 4db8: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 4dba: 1187 lrw r4, 0x200004f8 // 4e54 + 4dbc: 3340 movi r3, 64 + 4dbe: 60d0 addu r3, r4 + 4dc0: 8329 ld.b r1, (r3, 0x9) + 4dc2: 8348 ld.b r2, (r3, 0x8) + 4dc4: 4128 lsli r1, r1, 8 + 4dc6: 6c48 or r1, r2 + 4dc8: 834a ld.b r2, (r3, 0xa) + 4dca: 4250 lsli r2, r2, 16 + 4dcc: 6c48 or r1, r2 + 4dce: 834b ld.b r2, (r3, 0xb) + 4dd0: 11a2 lrw r5, 0x200000c0 // 4e58 + 4dd2: 4258 lsli r2, r2, 24 + 4dd4: 9500 ld.w r0, (r5, 0x0) + 4dd6: 6c84 or r2, r1 + 4dd8: 600a subu r0, r2 + 4dda: 380a cmphsi r0, 11 + 4ddc: 0c24 bf 0x4e24 // 4e24 + g_adc.sample_tick = SysTick_1ms; + 4dde: 9540 ld.w r2, (r5, 0x0) + 4de0: 4a28 lsri r1, r2, 8 + 4de2: a348 st.b r2, (r3, 0x8) + 4de4: a329 st.b r1, (r3, 0x9) + ADC12_SEQEND_wait(0); + 4de6: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 4de8: 4a30 lsri r1, r2, 16 + 4dea: 4a58 lsri r2, r2, 24 + 4dec: a34b st.b r2, (r3, 0xb) + 4dee: a32a st.b r1, (r3, 0xa) + ADC12_SEQEND_wait(0); + 4df0: e3ffec30 bsr 0x2650 // 2650 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4df4: 84c3 ld.b r6, (r4, 0x3) + 4df6: 8462 ld.b r3, (r4, 0x2) + 4df8: 46c8 lsli r6, r6, 8 + 4dfa: 6d8c or r6, r3 + 4dfc: 3000 movi r0, 0 + 4dfe: e3ffec35 bsr 0x2668 // 2668 + 4e02: 5e6e addi r3, r6, 4 + 4e04: 4361 lsli r3, r3, 1 + 4e06: 60d0 addu r3, r4 + 4e08: a300 st.b r0, (r3, 0x0) + 4e0a: 4808 lsri r0, r0, 8 + 4e0c: a301 st.b r0, (r3, 0x1) + g_adc.index++; + 4e0e: 8463 ld.b r3, (r4, 0x3) + 4e10: 8442 ld.b r2, (r4, 0x2) + 4e12: 4368 lsli r3, r3, 8 + 4e14: 6cc8 or r3, r2 + 4e16: 2300 addi r3, 1 + 4e18: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 4e1a: 3b09 cmphsi r3, 10 + 4e1c: 0815 bt 0x4e46 // 4e46 + g_adc.index++; + 4e1e: a462 st.b r3, (r4, 0x2) + 4e20: 4b68 lsri r3, r3, 8 + 4e22: a463 st.b r3, (r4, 0x3) + if (g_adc.full_flag == 0x01) { + 4e24: 8460 ld.b r3, (r4, 0x0) + 4e26: 3b41 cmpnei r3, 1 + 4e28: 080c bt 0x4e40 // 4e40 + if (SysTick_1ms - adc_tick >= 100) { + 4e2a: 104d lrw r2, 0x2000013c // 4e5c + 4e2c: 9220 ld.w r1, (r2, 0x0) + 4e2e: 9560 ld.w r3, (r5, 0x0) + 4e30: 60c6 subu r3, r1 + 4e32: 3163 movi r1, 99 + 4e34: 64c4 cmphs r1, r3 + 4e36: 0805 bt 0x4e40 // 4e40 + adc_tick = SysTick_1ms; + 4e38: 9560 ld.w r3, (r5, 0x0) + 4e3a: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 4e3c: e3ffff1c bsr 0x4c74 // 4c74 + Gather_Temp(); + 4e40: e3ffff68 bsr 0x4d10 // 4d10 +} + 4e44: 1493 pop r4-r6, r15 + g_adc.index = 0; + 4e46: 3300 movi r3, 0 + 4e48: a462 st.b r3, (r4, 0x2) + 4e4a: a463 st.b r3, (r4, 0x3) + g_adc.full_flag = 1; + 4e4c: 3301 movi r3, 1 + 4e4e: a460 st.b r3, (r4, 0x0) + 4e50: 07ea br 0x4e24 // 4e24 + 4e52: 0000 bkpt + 4e54: 200004f8 .long 0x200004f8 + 4e58: 200000c0 .long 0x200000c0 + 4e5c: 2000013c .long 0x2000013c + +Disassembly of section .text.Contol_Switch_Light: + +00004e60 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 4e60: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 4e62: 3805 cmphsi r0, 6 +{ + 4e64: 6d47 mov r5, r1 + switch(ch) + 4e66: 0818 bt 0x4e96 // 4e96 + 4e68: 009b lrw r4, 0x20000548 // 51f8 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 4e6a: 3941 cmpnei r1, 1 + switch(ch) + 4e6c: e3ffdf60 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 4e70: 00330006 .long 0x00330006 + 4e74: 008d0060 .long 0x008d0060 + 4e78: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 4e7c: 0814 bt 0x4ea4 // 4ea4 + if(g_switch.feedback_light_selection == 0x01){ + 4e7e: 8462 ld.b r3, (r4, 0x2) + 4e80: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4e82: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4e84: 080a bt 0x4e98 // 4e98 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 4e86: 300b movi r0, 11 + 4e88: e0000532 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4e8c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4e8e: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4e90: e000052e bsr 0x58ec // 58ec + g_switch.light_state[T_CH1] = state; + 4e94: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 4e96: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4e98: 3006 movi r0, 6 + 4e9a: e0000529 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4e9e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4ea0: 300b movi r0, 11 + 4ea2: 07f7 br 0x4e90 // 4e90 + }else if(state == Control_OFF){ + 4ea4: 3942 cmpnei r1, 2 + 4ea6: 0bf7 bt 0x4e94 // 4e94 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4ea8: 016a lrw r3, 0x200000c0 // 51fc + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4eaa: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4eac: 9360 ld.w r3, (r3, 0x0) + 4eae: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4eb0: 8462 ld.b r3, (r4, 0x2) + 4eb2: 3b41 cmpnei r3, 1 + 4eb4: 0809 bt 0x4ec6 // 4ec6 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 4eb6: 300b movi r0, 11 + 4eb8: e000051a bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 4ebc: 846a ld.b r3, (r4, 0xa) + 4ebe: 3b41 cmpnei r3, 1 + 4ec0: 0bea bt 0x4e94 // 4e94 + 4ec2: 3101 movi r1, 1 + 4ec4: 07e5 br 0x4e8e // 4e8e + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 4ec6: 3006 movi r0, 6 + 4ec8: e0000512 bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 4ecc: 846a ld.b r3, (r4, 0xa) + 4ece: 3b41 cmpnei r3, 1 + 4ed0: 0be2 bt 0x4e94 // 4e94 + 4ed2: 3101 movi r1, 1 + 4ed4: 07e6 br 0x4ea0 // 4ea0 + if(state == Control_ON){ + 4ed6: 0814 bt 0x4efe // 4efe + if(g_switch.feedback_light_selection == 0x01){ + 4ed8: 8462 ld.b r3, (r4, 0x2) + 4eda: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4edc: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4ede: 080a bt 0x4ef2 // 4ef2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 4ee0: 300c movi r0, 12 + 4ee2: e0000505 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4ee6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4ee8: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4eea: e0000501 bsr 0x58ec // 58ec + g_switch.light_state[T_CH2] = state; + 4eee: a4a6 st.b r5, (r4, 0x6) + break; + 4ef0: 07d3 br 0x4e96 // 4e96 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4ef2: 3007 movi r0, 7 + 4ef4: e00004fc bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4ef8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4efa: 300c movi r0, 12 + 4efc: 07f7 br 0x4eea // 4eea + }else if(state == Control_OFF){ + 4efe: 3942 cmpnei r1, 2 + 4f00: 0bf7 bt 0x4eee // 4eee + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f02: 0260 lrw r3, 0x200000c0 // 51fc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4f04: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f06: 9360 ld.w r3, (r3, 0x0) + 4f08: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4f0a: 8462 ld.b r3, (r4, 0x2) + 4f0c: 3b41 cmpnei r3, 1 + 4f0e: 0809 bt 0x4f20 // 4f20 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 4f10: 300c movi r0, 12 + 4f12: e00004ed bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 4f16: 846a ld.b r3, (r4, 0xa) + 4f18: 3b41 cmpnei r3, 1 + 4f1a: 0bea bt 0x4eee // 4eee + 4f1c: 3101 movi r1, 1 + 4f1e: 07e5 br 0x4ee8 // 4ee8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 4f20: 3007 movi r0, 7 + 4f22: e00004e5 bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 4f26: 846a ld.b r3, (r4, 0xa) + 4f28: 3b41 cmpnei r3, 1 + 4f2a: 0be2 bt 0x4eee // 4eee + 4f2c: 3101 movi r1, 1 + 4f2e: 07e6 br 0x4efa // 4efa + if(state == Control_ON){ + 4f30: 0814 bt 0x4f58 // 4f58 + if(g_switch.feedback_light_selection == 0x01){ + 4f32: 8462 ld.b r3, (r4, 0x2) + 4f34: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4f36: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f38: 080a bt 0x4f4c // 4f4c + TM1812_Control_CH_State(TPK3_White,Control_ON); + 4f3a: 300d movi r0, 13 + 4f3c: e00004d8 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4f40: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4f42: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4f44: e00004d4 bsr 0x58ec // 58ec + g_switch.light_state[T_CH3] = state; + 4f48: a4a7 st.b r5, (r4, 0x7) + break; + 4f4a: 07a6 br 0x4e96 // 4e96 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4f4c: 3008 movi r0, 8 + 4f4e: e00004cf bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4f52: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4f54: 300d movi r0, 13 + 4f56: 07f7 br 0x4f44 // 4f44 + }else if(state == Control_OFF){ + 4f58: 3942 cmpnei r1, 2 + 4f5a: 0bf7 bt 0x4f48 // 4f48 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f5c: 0277 lrw r3, 0x200000c0 // 51fc + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4f5e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4f60: 9360 ld.w r3, (r3, 0x0) + 4f62: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4f64: 8462 ld.b r3, (r4, 0x2) + 4f66: 3b41 cmpnei r3, 1 + 4f68: 0809 bt 0x4f7a // 4f7a + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 4f6a: 300d movi r0, 13 + 4f6c: e00004c0 bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 4f70: 846a ld.b r3, (r4, 0xa) + 4f72: 3b41 cmpnei r3, 1 + 4f74: 0bea bt 0x4f48 // 4f48 + 4f76: 3101 movi r1, 1 + 4f78: 07e5 br 0x4f42 // 4f42 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 4f7a: 3008 movi r0, 8 + 4f7c: e00004b8 bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 4f80: 846a ld.b r3, (r4, 0xa) + 4f82: 3b41 cmpnei r3, 1 + 4f84: 0be2 bt 0x4f48 // 4f48 + 4f86: 3101 movi r1, 1 + 4f88: 07e6 br 0x4f54 // 4f54 + if(state == Control_ON){ + 4f8a: 0814 bt 0x4fb2 // 4fb2 + if(g_switch.feedback_light_selection == 0x01){ + 4f8c: 8462 ld.b r3, (r4, 0x2) + 4f8e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4f90: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4f92: 080a bt 0x4fa6 // 4fa6 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 4f94: 300e movi r0, 14 + 4f96: e00004ab bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4f9a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4f9c: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4f9e: e00004a7 bsr 0x58ec // 58ec + g_switch.light_state[T_CH4] = state; + 4fa2: a4a8 st.b r5, (r4, 0x8) + break; + 4fa4: 0779 br 0x4e96 // 4e96 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4fa6: 3009 movi r0, 9 + 4fa8: e00004a2 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4fac: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4fae: 300e movi r0, 14 + 4fb0: 07f7 br 0x4f9e // 4f9e + }else if(state == Control_OFF){ + 4fb2: 3942 cmpnei r1, 2 + 4fb4: 0bf7 bt 0x4fa2 // 4fa2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fb6: 036d lrw r3, 0x200000c0 // 51fc + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4fb8: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 4fba: 9360 ld.w r3, (r3, 0x0) + 4fbc: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 4fbe: 8462 ld.b r3, (r4, 0x2) + 4fc0: 3b41 cmpnei r3, 1 + 4fc2: 0809 bt 0x4fd4 // 4fd4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 4fc4: 300e movi r0, 14 + 4fc6: e0000493 bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 4fca: 846a ld.b r3, (r4, 0xa) + 4fcc: 3b41 cmpnei r3, 1 + 4fce: 0bea bt 0x4fa2 // 4fa2 + 4fd0: 3101 movi r1, 1 + 4fd2: 07e5 br 0x4f9c // 4f9c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 4fd4: 3009 movi r0, 9 + 4fd6: e000048b bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 4fda: 846a ld.b r3, (r4, 0xa) + 4fdc: 3b41 cmpnei r3, 1 + 4fde: 0be2 bt 0x4fa2 // 4fa2 + 4fe0: 3101 movi r1, 1 + 4fe2: 07e6 br 0x4fae // 4fae + if(state == Control_ON){ + 4fe4: 0814 bt 0x500c // 500c + if(g_switch.feedback_light_selection == 0x01){ + 4fe6: 8462 ld.b r3, (r4, 0x2) + 4fe8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4fea: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 4fec: 080a bt 0x5000 // 5000 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 4fee: 300f movi r0, 15 + 4ff0: e000047e bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 4ff4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 4ff6: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 4ff8: e000047a bsr 0x58ec // 58ec + g_switch.light_state[T_CH5] = state; + 4ffc: a4a9 st.b r5, (r4, 0x9) + break; + 4ffe: 074c br 0x4e96 // 4e96 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 5000: 300a movi r0, 10 + 5002: e0000475 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 5006: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 5008: 300f movi r0, 15 + 500a: 07f7 br 0x4ff8 // 4ff8 + }else if(state == Control_OFF){ + 500c: 3942 cmpnei r1, 2 + 500e: 0bf7 bt 0x4ffc // 4ffc + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5010: 137b lrw r3, 0x200000c0 // 51fc + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 5012: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5014: 9360 ld.w r3, (r3, 0x0) + 5016: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5018: 8462 ld.b r3, (r4, 0x2) + 501a: 3b41 cmpnei r3, 1 + 501c: 0809 bt 0x502e // 502e + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 501e: 300f movi r0, 15 + 5020: e0000466 bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 5024: 846a ld.b r3, (r4, 0xa) + 5026: 3b41 cmpnei r3, 1 + 5028: 0bea bt 0x4ffc // 4ffc + 502a: 3101 movi r1, 1 + 502c: 07e5 br 0x4ff6 // 4ff6 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 502e: 300a movi r0, 10 + 5030: e000045e bsr 0x58ec // 58ec + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 5034: 846a ld.b r3, (r4, 0xa) + 5036: 3b41 cmpnei r3, 1 + 5038: 0be2 bt 0x4ffc // 4ffc + 503a: 3101 movi r1, 1 + 503c: 07e6 br 0x5008 // 5008 + if(state == Control_ON){ + 503e: 08b1 bt 0x51a0 // 51a0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5040: 136f lrw r3, 0x200000c0 // 51fc + 5042: 9360 ld.w r3, (r3, 0x0) + 5044: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5046: 8462 ld.b r3, (r4, 0x2) + 5048: 3b41 cmpnei r3, 1 + 504a: 8465 ld.b r3, (r4, 0x5) + 504c: 0857 bt 0x50fa // 50fa + if(g_switch.light_state[T_CH1] != Control_ON) { + 504e: 3b41 cmpnei r3, 1 + 5050: 0c33 bf 0x50b6 // 50b6 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5052: 3101 movi r1, 1 + 5054: 3006 movi r0, 6 + 5056: e000044b bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 505a: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 505c: 300b movi r0, 11 + 505e: e0000447 bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH2] != Control_ON) { + 5062: 8466 ld.b r3, (r4, 0x6) + 5064: 3b41 cmpnei r3, 1 + 5066: 0c2e bf 0x50c2 // 50c2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 5068: 3101 movi r1, 1 + 506a: 3007 movi r0, 7 + 506c: e0000440 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 5070: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5072: 300c movi r0, 12 + 5074: e000043c bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH3] != Control_ON) { + 5078: 8467 ld.b r3, (r4, 0x7) + 507a: 3b41 cmpnei r3, 1 + 507c: 0c29 bf 0x50ce // 50ce + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 507e: 3101 movi r1, 1 + 5080: 3008 movi r0, 8 + 5082: e0000435 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5086: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 5088: 300d movi r0, 13 + 508a: e0000431 bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH4] != Control_ON) { + 508e: 8468 ld.b r3, (r4, 0x8) + 5090: 3b41 cmpnei r3, 1 + 5092: 0c24 bf 0x50da // 50da + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5094: 3101 movi r1, 1 + 5096: 3009 movi r0, 9 + 5098: e000042a bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 509c: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 509e: 300e movi r0, 14 + 50a0: e0000426 bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH5] != Control_ON) { + 50a4: 8469 ld.b r3, (r4, 0x9) + 50a6: 3b41 cmpnei r3, 1 + 50a8: 0c1f bf 0x50e6 // 50e6 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 50aa: 3101 movi r1, 1 + 50ac: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 50ae: e000041f bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 50b2: 3102 movi r1, 2 + 50b4: 041e br 0x50f0 // 50f0 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 50b6: 3102 movi r1, 2 + 50b8: 3006 movi r0, 6 + 50ba: e0000419 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK1_White,Control_ON); + 50be: 3101 movi r1, 1 + 50c0: 07ce br 0x505c // 505c + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 50c2: 3102 movi r1, 2 + 50c4: 3007 movi r0, 7 + 50c6: e0000413 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_White,Control_ON); + 50ca: 3101 movi r1, 1 + 50cc: 07d3 br 0x5072 // 5072 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 50ce: 3102 movi r1, 2 + 50d0: 3008 movi r0, 8 + 50d2: e000040d bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_White,Control_ON); + 50d6: 3101 movi r1, 1 + 50d8: 07d8 br 0x5088 // 5088 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 50da: 3102 movi r1, 2 + 50dc: 3009 movi r0, 9 + 50de: e0000407 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_White,Control_ON); + 50e2: 3101 movi r1, 1 + 50e4: 07dd br 0x509e // 509e + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 50e6: 3102 movi r1, 2 + 50e8: 300a movi r0, 10 + 50ea: e0000401 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_White,Control_ON); + 50ee: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 50f0: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 50f2: e00003fd bsr 0x58ec // 58ec + g_switch.light_state[T_Backlight] = state; + 50f6: a4aa st.b r5, (r4, 0xa) +} + 50f8: 06cf br 0x4e96 // 4e96 + if(g_switch.light_state[T_CH1] != Control_ON) { + 50fa: 3b41 cmpnei r3, 1 + 50fc: 0c33 bf 0x5162 // 5162 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 50fe: 3101 movi r1, 1 + 5100: 300b movi r0, 11 + 5102: e00003f5 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5106: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5108: 3006 movi r0, 6 + 510a: e00003f1 bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH2] != Control_ON) { + 510e: 8466 ld.b r3, (r4, 0x6) + 5110: 3b41 cmpnei r3, 1 + 5112: 0c2e bf 0x516e // 516e + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5114: 3101 movi r1, 1 + 5116: 300c movi r0, 12 + 5118: e00003ea bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 511c: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 511e: 3007 movi r0, 7 + 5120: e00003e6 bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH3] != Control_ON) { + 5124: 8467 ld.b r3, (r4, 0x7) + 5126: 3b41 cmpnei r3, 1 + 5128: 0c29 bf 0x517a // 517a + TM1812_Control_CH_State(TPK3_White,Control_ON); + 512a: 3101 movi r1, 1 + 512c: 300d movi r0, 13 + 512e: e00003df bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5132: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5134: 3008 movi r0, 8 + 5136: e00003db bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH4] != Control_ON) { + 513a: 8468 ld.b r3, (r4, 0x8) + 513c: 3b41 cmpnei r3, 1 + 513e: 0c24 bf 0x5186 // 5186 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5140: 3101 movi r1, 1 + 5142: 300e movi r0, 14 + 5144: e00003d4 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5148: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 514a: 3009 movi r0, 9 + 514c: e00003d0 bsr 0x58ec // 58ec + if(g_switch.light_state[T_CH5] != Control_ON) { + 5150: 8469 ld.b r3, (r4, 0x9) + 5152: 3b41 cmpnei r3, 1 + 5154: 0c1f bf 0x5192 // 5192 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 5156: 3101 movi r1, 1 + 5158: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 515a: e00003c9 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 515e: 3102 movi r1, 2 + 5160: 041e br 0x519c // 519c + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5162: 3102 movi r1, 2 + 5164: 300b movi r0, 11 + 5166: e00003c3 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 516a: 3101 movi r1, 1 + 516c: 07ce br 0x5108 // 5108 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 516e: 3102 movi r1, 2 + 5170: 300c movi r0, 12 + 5172: e00003bd bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 5176: 3101 movi r1, 1 + 5178: 07d3 br 0x511e // 511e + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 517a: 3102 movi r1, 2 + 517c: 300d movi r0, 13 + 517e: e00003b7 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5182: 3101 movi r1, 1 + 5184: 07d8 br 0x5134 // 5134 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5186: 3102 movi r1, 2 + 5188: 300e movi r0, 14 + 518a: e00003b1 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 518e: 3101 movi r1, 1 + 5190: 07dd br 0x514a // 514a + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 5192: 3102 movi r1, 2 + 5194: 300f movi r0, 15 + 5196: e00003ab bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 519a: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 519c: 300a movi r0, 10 + 519e: 07aa br 0x50f2 // 50f2 + }else if(state == Control_OFF){ + 51a0: 3942 cmpnei r1, 2 + 51a2: 0baa bt 0x50f6 // 50f6 + if(g_switch.feedback_light_selection == 0x01){ + 51a4: 8462 ld.b r3, (r4, 0x2) + 51a6: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 51a8: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 51aa: 082b bt 0x5200 // 5200 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 51ac: 3006 movi r0, 6 + 51ae: e000039f bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 51b2: 3102 movi r1, 2 + 51b4: 3007 movi r0, 7 + 51b6: e000039b bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 51ba: 3102 movi r1, 2 + 51bc: 3008 movi r0, 8 + 51be: e0000397 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 51c2: 3102 movi r1, 2 + 51c4: 3009 movi r0, 9 + 51c6: e0000393 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 51ca: 3102 movi r1, 2 + 51cc: 300a movi r0, 10 + 51ce: e000038f bsr 0x58ec // 58ec + if(g_switch.autoOff_light_flag == 0x01){ + 51d2: 8461 ld.b r3, (r4, 0x1) + 51d4: 3b41 cmpnei r3, 1 + 51d6: 0b90 bt 0x50f6 // 50f6 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 51d8: 3102 movi r1, 2 + 51da: 300b movi r0, 11 + 51dc: e0000388 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 51e0: 3102 movi r1, 2 + 51e2: 300c movi r0, 12 + 51e4: e0000384 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 51e8: 3102 movi r1, 2 + 51ea: 300d movi r0, 13 + 51ec: e0000380 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 51f0: 3102 movi r1, 2 + 51f2: 300e movi r0, 14 + 51f4: 075d br 0x50ae // 50ae + 51f6: 0000 bkpt + 51f8: 20000548 .long 0x20000548 + 51fc: 200000c0 .long 0x200000c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5200: 300b movi r0, 11 + 5202: e0000375 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 5206: 3102 movi r1, 2 + 5208: 300c movi r0, 12 + 520a: e0000371 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 520e: 3102 movi r1, 2 + 5210: 300d movi r0, 13 + 5212: e000036d bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5216: 3102 movi r1, 2 + 5218: 300e movi r0, 14 + 521a: e0000369 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 521e: 3102 movi r1, 2 + 5220: 300f movi r0, 15 + 5222: e0000365 bsr 0x58ec // 58ec + if(g_switch.autoOff_light_flag == 0x01){ + 5226: 8461 ld.b r3, (r4, 0x1) + 5228: 3b41 cmpnei r3, 1 + 522a: 0b66 bt 0x50f6 // 50f6 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 522c: 3102 movi r1, 2 + 522e: 3006 movi r0, 6 + 5230: e000035e bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 5234: 3102 movi r1, 2 + 5236: 3007 movi r0, 7 + 5238: e000035a bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 523c: 3102 movi r1, 2 + 523e: 3008 movi r0, 8 + 5240: e0000356 bsr 0x58ec // 58ec + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5244: 3102 movi r1, 2 + 5246: 3009 movi r0, 9 + 5248: 0789 br 0x515a // 515a + +Disassembly of section .text.Contol_Switch_Light_2: + +0000524c : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 524c: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 524e: 3805 cmphsi r0, 6 +{ + 5250: 6d47 mov r5, r1 + switch(ch) + 5252: 0818 bt 0x5282 // 5282 + 5254: 009b lrw r4, 0x20000548 // 55e4 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 5256: 3941 cmpnei r1, 1 + switch(ch) + 5258: e3ffdd6a bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 525c: 00330006 .long 0x00330006 + 5260: 008d0060 .long 0x008d0060 + 5264: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 5268: 0814 bt 0x5290 // 5290 + if(g_switch.feedback_light_selection == 0x01){ + 526a: 8462 ld.b r3, (r4, 0x2) + 526c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 526e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5270: 080a bt 0x5284 // 5284 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5272: 300b movi r0, 11 + 5274: e0000374 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5278: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 527a: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 527c: e0000370 bsr 0x595c // 595c + g_switch.light_state[T_CH1] = state; + 5280: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 5282: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5284: 3006 movi r0, 6 + 5286: e000036b bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 528a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 528c: 300b movi r0, 11 + 528e: 07f7 br 0x527c // 527c + }else if(state == Control_OFF){ + 5290: 3942 cmpnei r1, 2 + 5292: 0bf7 bt 0x5280 // 5280 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5294: 016a lrw r3, 0x200000c0 // 55e8 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5296: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5298: 9360 ld.w r3, (r3, 0x0) + 529a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 529c: 8462 ld.b r3, (r4, 0x2) + 529e: 3b41 cmpnei r3, 1 + 52a0: 0809 bt 0x52b2 // 52b2 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 52a2: 300b movi r0, 11 + 52a4: e000035c bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 52a8: 846a ld.b r3, (r4, 0xa) + 52aa: 3b41 cmpnei r3, 1 + 52ac: 0bea bt 0x5280 // 5280 + 52ae: 3101 movi r1, 1 + 52b0: 07e5 br 0x527a // 527a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 52b2: 3006 movi r0, 6 + 52b4: e0000354 bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 52b8: 846a ld.b r3, (r4, 0xa) + 52ba: 3b41 cmpnei r3, 1 + 52bc: 0be2 bt 0x5280 // 5280 + 52be: 3101 movi r1, 1 + 52c0: 07e6 br 0x528c // 528c + if(state == Control_ON){ + 52c2: 0814 bt 0x52ea // 52ea + if(g_switch.feedback_light_selection == 0x01){ + 52c4: 8462 ld.b r3, (r4, 0x2) + 52c6: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 52c8: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 52ca: 080a bt 0x52de // 52de + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 52cc: 300c movi r0, 12 + 52ce: e0000347 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 52d2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 52d4: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 52d6: e0000343 bsr 0x595c // 595c + g_switch.light_state[T_CH2] = state; + 52da: a4a6 st.b r5, (r4, 0x6) + break; + 52dc: 07d3 br 0x5282 // 5282 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 52de: 3007 movi r0, 7 + 52e0: e000033e bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 52e4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 52e6: 300c movi r0, 12 + 52e8: 07f7 br 0x52d6 // 52d6 + }else if(state == Control_OFF){ + 52ea: 3942 cmpnei r1, 2 + 52ec: 0bf7 bt 0x52da // 52da + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 52ee: 0260 lrw r3, 0x200000c0 // 55e8 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 52f0: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 52f2: 9360 ld.w r3, (r3, 0x0) + 52f4: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 52f6: 8462 ld.b r3, (r4, 0x2) + 52f8: 3b41 cmpnei r3, 1 + 52fa: 0809 bt 0x530c // 530c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 52fc: 300c movi r0, 12 + 52fe: e000032f bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5302: 846a ld.b r3, (r4, 0xa) + 5304: 3b41 cmpnei r3, 1 + 5306: 0bea bt 0x52da // 52da + 5308: 3101 movi r1, 1 + 530a: 07e5 br 0x52d4 // 52d4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 530c: 3007 movi r0, 7 + 530e: e0000327 bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5312: 846a ld.b r3, (r4, 0xa) + 5314: 3b41 cmpnei r3, 1 + 5316: 0be2 bt 0x52da // 52da + 5318: 3101 movi r1, 1 + 531a: 07e6 br 0x52e6 // 52e6 + if(state == Control_ON){ + 531c: 0814 bt 0x5344 // 5344 + if(g_switch.feedback_light_selection == 0x01){ + 531e: 8462 ld.b r3, (r4, 0x2) + 5320: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5322: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5324: 080a bt 0x5338 // 5338 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5326: 300d movi r0, 13 + 5328: e000031a bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 532c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 532e: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5330: e0000316 bsr 0x595c // 595c + g_switch.light_state[T_CH3] = state; + 5334: a4a7 st.b r5, (r4, 0x7) + break; + 5336: 07a6 br 0x5282 // 5282 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5338: 3008 movi r0, 8 + 533a: e0000311 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 533e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5340: 300d movi r0, 13 + 5342: 07f7 br 0x5330 // 5330 + }else if(state == Control_OFF){ + 5344: 3942 cmpnei r1, 2 + 5346: 0bf7 bt 0x5334 // 5334 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5348: 0277 lrw r3, 0x200000c0 // 55e8 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 534a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 534c: 9360 ld.w r3, (r3, 0x0) + 534e: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5350: 8462 ld.b r3, (r4, 0x2) + 5352: 3b41 cmpnei r3, 1 + 5354: 0809 bt 0x5366 // 5366 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5356: 300d movi r0, 13 + 5358: e0000302 bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 535c: 846a ld.b r3, (r4, 0xa) + 535e: 3b41 cmpnei r3, 1 + 5360: 0bea bt 0x5334 // 5334 + 5362: 3101 movi r1, 1 + 5364: 07e5 br 0x532e // 532e + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5366: 3008 movi r0, 8 + 5368: e00002fa bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 536c: 846a ld.b r3, (r4, 0xa) + 536e: 3b41 cmpnei r3, 1 + 5370: 0be2 bt 0x5334 // 5334 + 5372: 3101 movi r1, 1 + 5374: 07e6 br 0x5340 // 5340 + if(state == Control_ON){ + 5376: 0814 bt 0x539e // 539e + if(g_switch.feedback_light_selection == 0x01){ + 5378: 8462 ld.b r3, (r4, 0x2) + 537a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 537c: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 537e: 080a bt 0x5392 // 5392 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5380: 300e movi r0, 14 + 5382: e00002ed bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5386: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5388: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 538a: e00002e9 bsr 0x595c // 595c + g_switch.light_state[T_CH4] = state; + 538e: a4a8 st.b r5, (r4, 0x8) + break; + 5390: 0779 br 0x5282 // 5282 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5392: 3009 movi r0, 9 + 5394: e00002e4 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5398: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 539a: 300e movi r0, 14 + 539c: 07f7 br 0x538a // 538a + }else if(state == Control_OFF){ + 539e: 3942 cmpnei r1, 2 + 53a0: 0bf7 bt 0x538e // 538e + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53a2: 036d lrw r3, 0x200000c0 // 55e8 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 53a4: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53a6: 9360 ld.w r3, (r3, 0x0) + 53a8: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 53aa: 8462 ld.b r3, (r4, 0x2) + 53ac: 3b41 cmpnei r3, 1 + 53ae: 0809 bt 0x53c0 // 53c0 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 53b0: 300e movi r0, 14 + 53b2: e00002d5 bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 53b6: 846a ld.b r3, (r4, 0xa) + 53b8: 3b41 cmpnei r3, 1 + 53ba: 0bea bt 0x538e // 538e + 53bc: 3101 movi r1, 1 + 53be: 07e5 br 0x5388 // 5388 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 53c0: 3009 movi r0, 9 + 53c2: e00002cd bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 53c6: 846a ld.b r3, (r4, 0xa) + 53c8: 3b41 cmpnei r3, 1 + 53ca: 0be2 bt 0x538e // 538e + 53cc: 3101 movi r1, 1 + 53ce: 07e6 br 0x539a // 539a + if(state == Control_ON){ + 53d0: 0814 bt 0x53f8 // 53f8 + if(g_switch.feedback_light_selection == 0x01){ + 53d2: 8462 ld.b r3, (r4, 0x2) + 53d4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 53d6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 53d8: 080a bt 0x53ec // 53ec + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 53da: 300f movi r0, 15 + 53dc: e00002c0 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 53e0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 53e2: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 53e4: e00002bc bsr 0x595c // 595c + g_switch.light_state[T_CH5] = state; + 53e8: a4a9 st.b r5, (r4, 0x9) + break; + 53ea: 074c br 0x5282 // 5282 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 53ec: 300a movi r0, 10 + 53ee: e00002b7 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 53f2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 53f4: 300f movi r0, 15 + 53f6: 07f7 br 0x53e4 // 53e4 + }else if(state == Control_OFF){ + 53f8: 3942 cmpnei r1, 2 + 53fa: 0bf7 bt 0x53e8 // 53e8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53fc: 137b lrw r3, 0x200000c0 // 55e8 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 53fe: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5400: 9360 ld.w r3, (r3, 0x0) + 5402: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5404: 8462 ld.b r3, (r4, 0x2) + 5406: 3b41 cmpnei r3, 1 + 5408: 0809 bt 0x541a // 541a + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 540a: 300f movi r0, 15 + 540c: e00002a8 bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5410: 846a ld.b r3, (r4, 0xa) + 5412: 3b41 cmpnei r3, 1 + 5414: 0bea bt 0x53e8 // 53e8 + 5416: 3101 movi r1, 1 + 5418: 07e5 br 0x53e2 // 53e2 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 541a: 300a movi r0, 10 + 541c: e00002a0 bsr 0x595c // 595c + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5420: 846a ld.b r3, (r4, 0xa) + 5422: 3b41 cmpnei r3, 1 + 5424: 0be2 bt 0x53e8 // 53e8 + 5426: 3101 movi r1, 1 + 5428: 07e6 br 0x53f4 // 53f4 + if(state == Control_ON){ + 542a: 08b1 bt 0x558c // 558c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 542c: 136f lrw r3, 0x200000c0 // 55e8 + 542e: 9360 ld.w r3, (r3, 0x0) + 5430: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5432: 8462 ld.b r3, (r4, 0x2) + 5434: 3b41 cmpnei r3, 1 + 5436: 8465 ld.b r3, (r4, 0x5) + 5438: 0857 bt 0x54e6 // 54e6 + if(g_switch.light_state[T_CH1] != Control_ON) { + 543a: 3b41 cmpnei r3, 1 + 543c: 0c33 bf 0x54a2 // 54a2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 543e: 3101 movi r1, 1 + 5440: 3006 movi r0, 6 + 5442: e000028d bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5446: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5448: 300b movi r0, 11 + 544a: e0000289 bsr 0x595c // 595c + if(g_switch.light_state[T_CH2] != Control_ON) { + 544e: 8466 ld.b r3, (r4, 0x6) + 5450: 3b41 cmpnei r3, 1 + 5452: 0c2e bf 0x54ae // 54ae + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5454: 3101 movi r1, 1 + 5456: 3007 movi r0, 7 + 5458: e0000282 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 545c: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 545e: 300c movi r0, 12 + 5460: e000027e bsr 0x595c // 595c + if(g_switch.light_state[T_CH3] != Control_ON) { + 5464: 8467 ld.b r3, (r4, 0x7) + 5466: 3b41 cmpnei r3, 1 + 5468: 0c29 bf 0x54ba // 54ba + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 546a: 3101 movi r1, 1 + 546c: 3008 movi r0, 8 + 546e: e0000277 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5472: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5474: 300d movi r0, 13 + 5476: e0000273 bsr 0x595c // 595c + if(g_switch.light_state[T_CH4] != Control_ON) { + 547a: 8468 ld.b r3, (r4, 0x8) + 547c: 3b41 cmpnei r3, 1 + 547e: 0c24 bf 0x54c6 // 54c6 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5480: 3101 movi r1, 1 + 5482: 3009 movi r0, 9 + 5484: e000026c bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5488: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 548a: 300e movi r0, 14 + 548c: e0000268 bsr 0x595c // 595c + if(g_switch.light_state[T_CH5] != Control_ON) { + 5490: 8469 ld.b r3, (r4, 0x9) + 5492: 3b41 cmpnei r3, 1 + 5494: 0c1f bf 0x54d2 // 54d2 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5496: 3101 movi r1, 1 + 5498: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 549a: e0000261 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 549e: 3102 movi r1, 2 + 54a0: 041e br 0x54dc // 54dc + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 54a2: 3102 movi r1, 2 + 54a4: 3006 movi r0, 6 + 54a6: e000025b bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 54aa: 3101 movi r1, 1 + 54ac: 07ce br 0x5448 // 5448 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 54ae: 3102 movi r1, 2 + 54b0: 3007 movi r0, 7 + 54b2: e0000255 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 54b6: 3101 movi r1, 1 + 54b8: 07d3 br 0x545e // 545e + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 54ba: 3102 movi r1, 2 + 54bc: 3008 movi r0, 8 + 54be: e000024f bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 54c2: 3101 movi r1, 1 + 54c4: 07d8 br 0x5474 // 5474 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 54c6: 3102 movi r1, 2 + 54c8: 3009 movi r0, 9 + 54ca: e0000249 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 54ce: 3101 movi r1, 1 + 54d0: 07dd br 0x548a // 548a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 54d2: 3102 movi r1, 2 + 54d4: 300a movi r0, 10 + 54d6: e0000243 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 54da: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 54dc: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 54de: e000023f bsr 0x595c // 595c + g_switch.light_state[T_Backlight] = state; + 54e2: a4aa st.b r5, (r4, 0xa) +} + 54e4: 06cf br 0x5282 // 5282 + if(g_switch.light_state[T_CH1] != Control_ON) { + 54e6: 3b41 cmpnei r3, 1 + 54e8: 0c33 bf 0x554e // 554e + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 54ea: 3101 movi r1, 1 + 54ec: 300b movi r0, 11 + 54ee: e0000237 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 54f2: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 54f4: 3006 movi r0, 6 + 54f6: e0000233 bsr 0x595c // 595c + if(g_switch.light_state[T_CH2] != Control_ON) { + 54fa: 8466 ld.b r3, (r4, 0x6) + 54fc: 3b41 cmpnei r3, 1 + 54fe: 0c2e bf 0x555a // 555a + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5500: 3101 movi r1, 1 + 5502: 300c movi r0, 12 + 5504: e000022c bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5508: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 550a: 3007 movi r0, 7 + 550c: e0000228 bsr 0x595c // 595c + if(g_switch.light_state[T_CH3] != Control_ON) { + 5510: 8467 ld.b r3, (r4, 0x7) + 5512: 3b41 cmpnei r3, 1 + 5514: 0c29 bf 0x5566 // 5566 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5516: 3101 movi r1, 1 + 5518: 300d movi r0, 13 + 551a: e0000221 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 551e: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5520: 3008 movi r0, 8 + 5522: e000021d bsr 0x595c // 595c + if(g_switch.light_state[T_CH4] != Control_ON) { + 5526: 8468 ld.b r3, (r4, 0x8) + 5528: 3b41 cmpnei r3, 1 + 552a: 0c24 bf 0x5572 // 5572 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 552c: 3101 movi r1, 1 + 552e: 300e movi r0, 14 + 5530: e0000216 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5534: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5536: 3009 movi r0, 9 + 5538: e0000212 bsr 0x595c // 595c + if(g_switch.light_state[T_CH5] != Control_ON) { + 553c: 8469 ld.b r3, (r4, 0x9) + 553e: 3b41 cmpnei r3, 1 + 5540: 0c1f bf 0x557e // 557e + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5542: 3101 movi r1, 1 + 5544: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5546: e000020b bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 554a: 3102 movi r1, 2 + 554c: 041e br 0x5588 // 5588 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 554e: 3102 movi r1, 2 + 5550: 300b movi r0, 11 + 5552: e0000205 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5556: 3101 movi r1, 1 + 5558: 07ce br 0x54f4 // 54f4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 555a: 3102 movi r1, 2 + 555c: 300c movi r0, 12 + 555e: e00001ff bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5562: 3101 movi r1, 1 + 5564: 07d3 br 0x550a // 550a + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5566: 3102 movi r1, 2 + 5568: 300d movi r0, 13 + 556a: e00001f9 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 556e: 3101 movi r1, 1 + 5570: 07d8 br 0x5520 // 5520 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5572: 3102 movi r1, 2 + 5574: 300e movi r0, 14 + 5576: e00001f3 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 557a: 3101 movi r1, 1 + 557c: 07dd br 0x5536 // 5536 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 557e: 3102 movi r1, 2 + 5580: 300f movi r0, 15 + 5582: e00001ed bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5586: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5588: 300a movi r0, 10 + 558a: 07aa br 0x54de // 54de + }else if(state == Control_OFF){ + 558c: 3942 cmpnei r1, 2 + 558e: 0baa bt 0x54e2 // 54e2 + if(g_switch.feedback_light_selection == 0x01){ + 5590: 8462 ld.b r3, (r4, 0x2) + 5592: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5594: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 5596: 082b bt 0x55ec // 55ec + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5598: 3006 movi r0, 6 + 559a: e00001e1 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 559e: 3102 movi r1, 2 + 55a0: 3007 movi r0, 7 + 55a2: e00001dd bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 55a6: 3102 movi r1, 2 + 55a8: 3008 movi r0, 8 + 55aa: e00001d9 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 55ae: 3102 movi r1, 2 + 55b0: 3009 movi r0, 9 + 55b2: e00001d5 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 55b6: 3102 movi r1, 2 + 55b8: 300a movi r0, 10 + 55ba: e00001d1 bsr 0x595c // 595c + if(g_switch.autoOff_light_flag == 0x01){ + 55be: 8461 ld.b r3, (r4, 0x1) + 55c0: 3b41 cmpnei r3, 1 + 55c2: 0b90 bt 0x54e2 // 54e2 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 55c4: 3102 movi r1, 2 + 55c6: 300b movi r0, 11 + 55c8: e00001ca bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 55cc: 3102 movi r1, 2 + 55ce: 300c movi r0, 12 + 55d0: e00001c6 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 55d4: 3102 movi r1, 2 + 55d6: 300d movi r0, 13 + 55d8: e00001c2 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 55dc: 3102 movi r1, 2 + 55de: 300e movi r0, 14 + 55e0: 075d br 0x549a // 549a + 55e2: 0000 bkpt + 55e4: 20000548 .long 0x20000548 + 55e8: 200000c0 .long 0x200000c0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 55ec: 300b movi r0, 11 + 55ee: e00001b7 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 55f2: 3102 movi r1, 2 + 55f4: 300c movi r0, 12 + 55f6: e00001b3 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 55fa: 3102 movi r1, 2 + 55fc: 300d movi r0, 13 + 55fe: e00001af bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5602: 3102 movi r1, 2 + 5604: 300e movi r0, 14 + 5606: e00001ab bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 560a: 3102 movi r1, 2 + 560c: 300f movi r0, 15 + 560e: e00001a7 bsr 0x595c // 595c + if(g_switch.autoOff_light_flag == 0x01){ + 5612: 8461 ld.b r3, (r4, 0x1) + 5614: 3b41 cmpnei r3, 1 + 5616: 0b66 bt 0x54e2 // 54e2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5618: 3102 movi r1, 2 + 561a: 3006 movi r0, 6 + 561c: e00001a0 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5620: 3102 movi r1, 2 + 5622: 3007 movi r0, 7 + 5624: e000019c bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5628: 3102 movi r1, 2 + 562a: 3008 movi r0, 8 + 562c: e0000198 bsr 0x595c // 595c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5630: 3102 movi r1, 2 + 5632: 3009 movi r0, 9 + 5634: 0789 br 0x5546 // 5546 + +Disassembly of section .text.Contol_Switch_ClickAction: + +00005638 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 5638: 14d0 push r15 + switch(ch) + 563a: 3804 cmphsi r0, 5 + 563c: 0809 bt 0x564e // 564e + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 563e: 1068 lrw r3, 0x20000548 // 565c + 5640: 836a ld.b r3, (r3, 0xa) + 5642: 3b41 cmpnei r3, 1 + 5644: 0806 bt 0x5650 // 5650 + if(state == Control_ON ){ + 5646: 3941 cmpnei r1, 1 + 5648: 0804 bt 0x5650 // 5650 + Contol_Switch_Light_2(ch,Control_ON); + 564a: e3fffe01 bsr 0x524c // 524c + break; + default: + + break; + } +} + 564e: 1490 pop r15 + if(state == Control_OFF ){ + 5650: 3942 cmpnei r1, 2 + 5652: 0bfe bt 0x564e // 564e + Contol_Switch_Light(ch,Control_OFF); + 5654: e3fffc06 bsr 0x4e60 // 4e60 +} + 5658: 07fb br 0x564e // 564e + 565a: 0000 bkpt + 565c: 20000548 .long 0x20000548 + +Disassembly of section .text.Get_TM1812_State_Change: + +00005660 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 5660: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 5662: 106f lrw r3, 0x200001a0 // 569c + 5664: 8318 ld.b r0, (r3, 0x18) + 5666: 3841 cmpnei r0, 1 + 5668: 0c19 bf 0x569a // 569a + 566a: 104e lrw r2, 0x20000140 // 56a0 + 566c: 3018 movi r0, 24 + 566e: 3300 movi r3, 0 + for(i=0;i + rev++; + 567a: 2300 addi r3, 1 + 567c: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 567e: 5a84 addu r4, r2, r1 + 5680: 8480 ld.b r4, (r4, 0x0) + 5682: 3c41 cmpnei r4, 1 + 5684: 0803 bt 0x568a // 568a + rev++; + 5686: 2300 addi r3, 1 + 5688: 74cc zextb r3, r3 + 568a: 2800 subi r0, 1 + 568c: 7400 zextb r0, r0 + for(i=0;i + } + } + + if(rev != 0x00) return 0x01; + 5694: 3b40 cmpnei r3, 0 + 5696: 6001 addc r0, r0 + return 0x01; //立即控制 + 5698: 7400 zextb r0, r0 + return 0x00; +} + 569a: 1482 pop r4-r5 + 569c: 200001a0 .long 0x200001a0 + 56a0: 20000140 .long 0x20000140 + +Disassembly of section .text.TimeCall_SIO_Send: + +000056a4 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 56a4: 14d4 push r4-r7, r15 + 56a6: 1421 subi r14, r14, 4 + 56a8: 1264 lrw r3, 0x20000140 // 57b8 + 56aa: 3188 movi r1, 136 + 56ac: 3260 movi r2, 96 + 56ae: 604c addu r1, r3 + 56b0: 608c addu r2, r3 + 56b2: 3718 movi r7, 24 + 56b4: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 56c2: 3448 movi r4, 72 + 56c4: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 56c6: 84a0 ld.b r5, (r4, 0x0) + 56c8: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 56ca: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 56cc: 083a bt 0x5740 // 5740 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 56ce: 35ff movi r5, 255 + 56d0: 6542 cmpne r0, r5 + 56d2: 0c34 bf 0x573a // 573a + //递增 + tm1812_param.gradient_cnt[i]++; + 56d4: 8280 ld.b r4, (r2, 0x0) + 56d6: 2400 addi r4, 1 + 56d8: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 56da: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 56dc: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 56de: 0c05 bf 0x56e8 // 56e8 + tm1812_param.curr_data[i]++; + 56e0: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 56e2: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 56e4: 3000 movi r0, 0 + 56e6: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 56e8: 3000 movi r0, 0 + 56ea: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 56ec: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 56ee: 3480 movi r4, 128 + 56f0: 6914 and r4, r5 + 56f2: 3c40 cmpnei r4, 0 + 56f4: 9180 ld.w r4, (r1, 0x0) + 56f6: 0c44 bf 0x577e // 577e + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 56f8: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 56fa: 7180 lsl r6, r0 + 56fc: 2001 addi r0, 2 + 56fe: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 5700: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5702: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 5704: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 5706: 0bf4 bt 0x56ee // 56ee + 5708: 5f03 subi r0, r7, 1 + 570a: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 5716: e3fff12c bsr 0x396e // 396e + + for(K=0;K + 571e: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5720: 3022 movi r0, 34 + 5722: 1148 lrw r2, 0x2000002c // 57c0 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5724: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5726: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5728: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 5732: e3fff11b bsr 0x3968 // 3968 + +} + 5736: 1401 addi r14, r14, 4 + 5738: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 573a: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 573c: a400 st.b r0, (r4, 0x0) + 573e: 07d5 br 0x56e8 // 56e8 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 5740: 3840 cmpnei r0, 0 + 5742: 0c09 bf 0x5754 // 5754 + tm1812_param.gradient_cnt[i]++; + 5744: 8280 ld.b r4, (r2, 0x0) + 5746: 2400 addi r4, 1 + 5748: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 574a: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 574c: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 574e: 0fcd bf 0x56e8 // 56e8 + tm1812_param.curr_data[i]--; + 5750: 2800 subi r0, 1 + 5752: 07c8 br 0x56e2 // 56e2 + tm1812_param.gradient_dir[i] = 0x01; + 5754: 3001 movi r0, 1 + 5756: 07f3 br 0x573c // 573c + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 5758: 7400 zextb r0, r0 + 575a: 8380 ld.b r4, (r3, 0x0) + 575c: 6500 cmphs r0, r4 + 575e: 0807 bt 0x576c // 576c + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 5760: 5ca1 subu r5, r4, r0 + 5762: 3d24 cmplti r5, 5 + 5764: 080b bt 0x577a // 577a + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 5766: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5768: a318 st.b r0, (r3, 0x18) + 576a: 07bf br 0x56e8 // 56e8 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 576c: 6410 cmphs r4, r0 + 576e: 0bbd bt 0x56e8 // 56e8 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 5770: 58b1 subu r5, r0, r4 + 5772: 3d24 cmplti r5, 5 + 5774: 0803 bt 0x577a // 577a + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5776: 2803 subi r0, 4 + 5778: 07f8 br 0x5768 // 5768 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 577a: a398 st.b r4, (r3, 0x18) + 577c: 07b6 br 0x56e8 // 56e8 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 577e: 3602 movi r6, 2 + 5780: 07bd br 0x56fa // 56fa + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5782: 8328 ld.b r1, (r3, 0x8) + 5784: 6040 addu r1, r0 + 5786: 4122 lsli r1, r1, 2 + 5788: 98c0 ld.w r6, (r14, 0x0) + 578a: 6058 addu r1, r6 + 578c: 9120 ld.w r1, (r1, 0x0) + 578e: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5790: 9228 ld.w r1, (r2, 0x20) + 5792: 6850 and r1, r4 + 5794: 3940 cmpnei r1, 0 + 5796: 0ffd bf 0x5790 // 5790 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5798: 922b ld.w r1, (r2, 0x2c) + 579a: 3982 bclri r1, 2 + 579c: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 579e: 9228 ld.w r1, (r2, 0x20) + 57a0: 6854 and r1, r5 + 57a2: 3940 cmpnei r1, 0 + 57a4: 0ffd bf 0x579e // 579e + SIO0->ICR &= ~SIO_TXDNE; + 57a6: 922b ld.w r1, (r2, 0x2c) + 57a8: 3980 bclri r1, 0 + 57aa: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 57b6: 0000 bkpt + 57b8: 20000140 .long 0x20000140 + 57bc: 20000220 .long 0x20000220 + 57c0: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +000057c4 : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 57c4: 14d4 push r4-r7, r15 + 57c6: 1421 subi r14, r14, 4 + 57c8: 1105 lrw r0, 0x20000140 // 585c + 57ca: 1166 lrw r3, 0x200001c8 // 5860 + 57cc: 3218 movi r2, 24 + 57ce: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 57e2: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 57e4: 7184 lsl r6, r1 + 57e6: 2101 addi r1, 2 + 57e8: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 57ea: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 57ec: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 57ee: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 57f0: 0bf4 bt 0x57d8 // 57d8 + 57f2: 2a00 subi r2, 1 + 57f4: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 57fe: e3fff0b8 bsr 0x396e // 396e + + for(K2=0;K2 + 5806: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5808: 3022 movi r0, 34 + 580a: 1058 lrw r2, 0x2000002c // 5868 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 580c: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 580e: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5810: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 581a: e3fff0a7 bsr 0x3968 // 3968 + +} + 581e: 1401 addi r14, r14, 4 + 5820: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5822: 3602 movi r6, 2 + 5824: 07e0 br 0x57e4 // 57e4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5826: 8329 ld.b r1, (r3, 0x9) + 5828: 6040 addu r1, r0 + 582a: 4122 lsli r1, r1, 2 + 582c: 98c0 ld.w r6, (r14, 0x0) + 582e: 6058 addu r1, r6 + 5830: 9120 ld.w r1, (r1, 0x0) + 5832: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5834: 9228 ld.w r1, (r2, 0x20) + 5836: 6850 and r1, r4 + 5838: 3940 cmpnei r1, 0 + 583a: 0ffd bf 0x5834 // 5834 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 583c: 922b ld.w r1, (r2, 0x2c) + 583e: 3982 bclri r1, 2 + 5840: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5842: 9228 ld.w r1, (r2, 0x20) + 5844: 6854 and r1, r5 + 5846: 3940 cmpnei r1, 0 + 5848: 0ffd bf 0x5842 // 5842 + SIO0->ICR &= ~SIO_TXDNE; + 584a: 922b ld.w r1, (r2, 0x2c) + 584c: 3980 bclri r1, 0 + 584e: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 585a: 0000 bkpt + 585c: 20000140 .long 0x20000140 + 5860: 200001c8 .long 0x200001c8 + 5864: 20000220 .long 0x20000220 + 5868: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +0000586c : + + +void Tm1812_Task(void) { + 586c: 14d0 push r15 + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 586e: e3fffef9 bsr 0x5660 // 5660 + 5872: 3841 cmpnei r0, 1 + 5874: 1070 lrw r3, 0x200001c0 // 58b4 + 5876: 0812 bt 0x589a // 589a + if(SysTick_100us - StateChange_Tick >= 20){ + 5878: 1030 lrw r1, 0x200000bc // 58b8 + 587a: 9140 ld.w r2, (r1, 0x0) + 587c: 931b ld.w r0, (r3, 0x6c) + 587e: 6082 subu r2, r0 + 5880: 3a13 cmphsi r2, 20 + 5882: 0c0b bf 0x5898 // 5898 + StateChange_Tick = SysTick_100us; + 5884: 9140 ld.w r2, (r1, 0x0) + 5886: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5888: 104d lrw r2, 0x200000c0 // 58bc + 588a: 9240 ld.w r2, (r2, 0x0) + 588c: b341 st.w r2, (r3, 0x4) + tm1812_param.change_flag = 0x00; + 588e: 106d lrw r3, 0x200001a0 // 58c0 + 5890: 3200 movi r2, 0 + 5892: a358 st.b r2, (r3, 0x18) + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + + TimeCall_SIO_Send(); + 5894: e3ffff08 bsr 0x56a4 // 56a4 + } + } + +} + 5898: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 589a: 1029 lrw r1, 0x200000c0 // 58bc + 589c: 9140 ld.w r2, (r1, 0x0) + 589e: 9301 ld.w r0, (r3, 0x4) + 58a0: 6082 subu r2, r0 + 58a2: 1009 lrw r0, 0x7cf // 58c4 + 58a4: 6480 cmphs r0, r2 + 58a6: 0bf9 bt 0x5898 // 5898 + StateChange_Tick = SysTick_100us; + 58a8: 1044 lrw r2, 0x200000bc // 58b8 + 58aa: 9240 ld.w r2, (r2, 0x0) + 58ac: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 58ae: 9140 ld.w r2, (r1, 0x0) + 58b0: b341 st.w r2, (r3, 0x4) + 58b2: 07f1 br 0x5894 // 5894 + 58b4: 200001c0 .long 0x200001c0 + 58b8: 200000bc .long 0x200000bc + 58bc: 200000c0 .long 0x200000c0 + 58c0: 200001a0 .long 0x200001a0 + 58c4: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +000058c8 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 58c8: 3817 cmphsi r0, 24 + 58ca: 080c bt 0x58e2 // 58e2 + return; + } + + tm1812_param.data[select] = data; + 58cc: 1066 lrw r3, 0x20000140 // 58e4 + 58ce: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 58d0: 3260 movi r2, 96 + 58d2: 608c addu r2, r3 + tm1812_param.data[select] = data; + 58d4: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 58d6: 3101 movi r1, 1 + 58d8: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 58da: 237f addi r3, 128 + 58dc: 1043 lrw r2, 0x200000c0 // 58e8 + 58de: 9240 ld.w r2, (r2, 0x0) + 58e0: b340 st.w r2, (r3, 0x0) +} + 58e2: 783c jmp r15 + 58e4: 20000140 .long 0x20000140 + 58e8: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_Control_CH_State: + +000058ec : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 58ec: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 58ee: 3817 cmphsi r0, 24 + 58f0: 082a bt 0x5944 // 5944 + return 0x01; + } + + switch(state){ + 58f2: 3942 cmpnei r1, 2 + 58f4: 0c12 bf 0x5918 // 5918 + 58f6: 3943 cmpnei r1, 3 + 58f8: 0c14 bf 0x5920 // 5920 + 58fa: 3941 cmpnei r1, 1 + 58fc: 0806 bt 0x5908 // 5908 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 58fe: 1073 lrw r3, 0x20000140 // 5948 + 5900: 600c addu r0, r3 + 5902: 3300 movi r3, 0 + 5904: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 5906: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5908: 1071 lrw r3, 0x200001a0 // 594c + 590a: 3201 movi r2, 1 + 590c: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 590e: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 5910: 1050 lrw r2, 0x200000c0 // 5950 + 5912: 9240 ld.w r2, (r2, 0x0) + 5914: b348 st.w r2, (r3, 0x20) +} + 5916: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 5918: 106c lrw r3, 0x20000140 // 5948 + 591a: 600c addu r0, r3 + 591c: 3300 movi r3, 0 + 591e: 07f4 br 0x5906 // 5906 + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 5920: 106a lrw r3, 0x20000140 // 5948 + 5922: 600c addu r0, r3 + 5924: 8020 ld.b r1, (r0, 0x0) + 5926: 32ff movi r2, 255 + 5928: 3300 movi r3, 0 + 592a: 6486 cmpne r1, r2 + 592c: 2b00 subi r3, 1 + 592e: 0c07 bf 0x593c // 593c + tm1812_param.data[ch] = TM1812_CH_ON; + 5930: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 5932: 1029 lrw r1, 0xa3b1 // 5954 + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5934: 3000 movi r0, 0 + 5936: e3fff273 bsr 0x3e1c // 3e1c + 593a: 07e7 br 0x5908 // 5908 + tm1812_param.data[ch] = TM1812_CH_OFF; + 593c: 3300 movi r3, 0 + 593e: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5940: 1026 lrw r1, 0xa3b9 // 5958 + 5942: 07f9 br 0x5934 // 5934 + return 0x01; + 5944: 3001 movi r0, 1 + 5946: 07e8 br 0x5916 // 5916 + 5948: 20000140 .long 0x20000140 + 594c: 200001a0 .long 0x200001a0 + 5950: 200000c0 .long 0x200000c0 + 5954: 0000a3b1 .long 0x0000a3b1 + 5958: 0000a3b9 .long 0x0000a3b9 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +0000595c : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 595c: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 595e: 3817 cmphsi r0, 24 + 5960: 0827 bt 0x59ae // 59ae + return 0x01; + } + + switch(state){ + 5962: 3942 cmpnei r1, 2 + 5964: 0c13 bf 0x598a // 598a + 5966: 3943 cmpnei r1, 3 + 5968: 0c15 bf 0x5992 // 5992 + 596a: 3941 cmpnei r1, 1 + 596c: 0807 bt 0x597a // 597a + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 596e: 1072 lrw r3, 0x20000140 // 59b4 + 5970: 600c addu r0, r3 + 5972: 3300 movi r3, 0 + 5974: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5976: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5978: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 597a: 1070 lrw r3, 0x200001a0 // 59b8 + 597c: 3201 movi r2, 1 + 597e: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5980: 3000 movi r0, 0 + 5982: 104f lrw r2, 0x200000c0 // 59bc + 5984: 9240 ld.w r2, (r2, 0x0) + 5986: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5988: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 598a: 106b lrw r3, 0x20000140 // 59b4 + 598c: 600c addu r0, r3 + 598e: 3300 movi r3, 0 + 5990: 07f3 br 0x5976 // 5976 + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 5992: 1069 lrw r3, 0x20000140 // 59b4 + 5994: 600c addu r0, r3 + 5996: 3218 movi r2, 24 + 5998: 6080 addu r2, r0 + 599a: 8280 ld.b r4, (r2, 0x0) + 599c: 31ff movi r1, 255 + 599e: 3300 movi r3, 0 + 59a0: 6452 cmpne r4, r1 + 59a2: 2b00 subi r3, 1 + 59a4: 0c03 bf 0x59aa // 59aa + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 59a6: a260 st.b r3, (r2, 0x0) + 59a8: 07e8 br 0x5978 // 5978 + 59aa: 3300 movi r3, 0 + 59ac: 07fd br 0x59a6 // 59a6 + return 0x01; + 59ae: 3001 movi r0, 1 + 59b0: 07ec br 0x5988 // 5988 + 59b2: 0000 bkpt + 59b4: 20000140 .long 0x20000140 + 59b8: 200001a0 .long 0x200001a0 + 59bc: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_LED_Init: + +000059c0 : +void TM1812_LED_Init(void){ + 59c0: 14d0 push r15 + 59c2: 1426 subi r14, r14, 24 + SIO_DeInit(); + 59c4: e3ffe468 bsr 0x2294 // 2294 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 59c8: 3001 movi r0, 1 + 59ca: e3ffe475 bsr 0x22b4 // 22b4 + SIO_TX_Init(SIOCLK_EN,9); // + 59ce: 3109 movi r1, 9 + 59d0: 3001 movi r0, 1 + 59d2: e3ffe4a1 bsr 0x2314 // 2314 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 59d6: 3303 movi r3, 3 + 59d8: b865 st.w r3, (r14, 0x14) + 59da: 330f movi r3, 15 + 59dc: b864 st.w r3, (r14, 0x10) + 59de: 33a0 movi r3, 160 + 59e0: 4366 lsli r3, r3, 6 + 59e2: b863 st.w r3, (r14, 0xc) + 59e4: 33a0 movi r3, 160 + 59e6: 4363 lsli r3, r3, 3 + 59e8: b862 st.w r3, (r14, 0x8) + 59ea: 3300 movi r3, 0 + 59ec: b861 st.w r3, (r14, 0x4) + 59ee: b860 st.w r3, (r14, 0x0) + 59f0: 3207 movi r2, 7 + 59f2: 3317 movi r3, 23 + 59f4: 3100 movi r1, 0 + 59f6: 3002 movi r0, 2 + 59f8: e3ffe496 bsr 0x2324 // 2324 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 59fc: 32e8 movi r2, 232 + 59fe: 3100 movi r1, 0 + 5a00: 1005 lrw r0, 0x20000140 // 5a14 + 5a02: e3ffdfcd bsr 0x199c // 199c <__memset_fast> + RLY_CTRL_EN; //继电器使能 + 5a06: 3101 movi r1, 1 + 5a08: 3017 movi r0, 23 + 5a0a: e3ffffa9 bsr 0x595c // 595c +} + 5a0e: 1406 addi r14, r14, 24 + 5a10: 1490 pop r15 + 5a12: 0000 bkpt + 5a14: 20000140 .long 0x20000140 + +Disassembly of section .text.HT1621_WR_Data: + +00005a18 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 5a18: 14d4 push r4-r7, r15 + 5a1a: 6d43 mov r5, r0 + 5a1c: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 5a26: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 5a28: 3101 movi r1, 1 + 5a2a: 9600 ld.w r0, (r6, 0x0) + 5a2c: e3ffe3bc bsr 0x21a4 // 21a4 + nop; + 5a30: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 5a32: 74d6 sextb r3, r5 + 5a34: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 5a36: 3104 movi r1, 4 + 5a38: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 5a3a: 0c0d bf 0x5a54 // 5a54 + HT1621_DATA_HIGH; + 5a3c: e3ffe3b0 bsr 0x219c // 219c + nop; + 5a40: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 5a42: 3101 movi r1, 1 + 5a44: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 5a46: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 5a4e: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 5a54: e3ffe3a8 bsr 0x21a4 // 21a4 + 5a58: 07f4 br 0x5a40 // 5a40 + 5a5a: 0000 bkpt + 5a5c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +00005a60 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 5a60: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5a62: 108b lrw r4, 0x2000004c // 5a8c +{ + 5a64: 6d43 mov r5, r0 + HT1621_CS_LOW; + 5a66: 310f movi r1, 15 + 5a68: 9400 ld.w r0, (r4, 0x0) + 5a6a: e3ffe39d bsr 0x21a4 // 21a4 + nop; + 5a6e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 5a70: 3104 movi r1, 4 + 5a72: 3080 movi r0, 128 + 5a74: e3ffffd2 bsr 0x5a18 // 5a18 + HT1621_WR_Data(cmd,8); + 5a78: 6c17 mov r0, r5 + 5a7a: 3108 movi r1, 8 + 5a7c: e3ffffce bsr 0x5a18 // 5a18 + HT1621_CS_HIGH; + 5a80: 9400 ld.w r0, (r4, 0x0) + 5a82: 310f movi r1, 15 + 5a84: e3ffe38c bsr 0x219c // 219c + nop; + 5a88: 6c03 mov r0, r0 +} + 5a8a: 1492 pop r4-r5, r15 + 5a8c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005a90 : +void HT1621_Init(void){ + 5a90: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 5a92: 118b lrw r4, 0x2000004c // 5b3c + memset(&HT1621,0,sizeof(HT1621_t)); + 5a94: 3240 movi r2, 64 + 5a96: 3100 movi r1, 0 + 5a98: 110a lrw r0, 0x20000564 // 5b40 + 5a9a: e3ffdf81 bsr 0x199c // 199c <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 5a9e: 9400 ld.w r0, (r4, 0x0) + 5aa0: 3200 movi r2, 0 + 5aa2: 3100 movi r1, 0 + 5aa4: e3ffe1c0 bsr 0x1e24 // 1e24 + GPIO_Init(GPIOA0,1,Output); + 5aa8: 9400 ld.w r0, (r4, 0x0) + 5aaa: 3200 movi r2, 0 + 5aac: 3101 movi r1, 1 + 5aae: e3ffe1bb bsr 0x1e24 // 1e24 + GPIO_Init(GPIOA0,15,Output); + 5ab2: 9400 ld.w r0, (r4, 0x0) + 5ab4: 3200 movi r2, 0 + 5ab6: 310f movi r1, 15 + 5ab8: e3ffe1b6 bsr 0x1e24 // 1e24 + GPIO_Init(GPIOA0,4,Output); + 5abc: 3200 movi r2, 0 + 5abe: 9400 ld.w r0, (r4, 0x0) + 5ac0: 3104 movi r1, 4 + 5ac2: e3ffe1b1 bsr 0x1e24 // 1e24 + GPIO_DriveStrength_EN(GPIOA0,0); + 5ac6: 9400 ld.w r0, (r4, 0x0) + 5ac8: 3100 movi r1, 0 + 5aca: e3ffe227 bsr 0x1f18 // 1f18 + GPIO_DriveStrength_EN(GPIOA0,1); + 5ace: 9400 ld.w r0, (r4, 0x0) + 5ad0: 3101 movi r1, 1 + 5ad2: e3ffe223 bsr 0x1f18 // 1f18 + GPIO_DriveStrength_EN(GPIOA0,15); + 5ad6: 9400 ld.w r0, (r4, 0x0) + 5ad8: 310f movi r1, 15 + 5ada: e3ffe21f bsr 0x1f18 // 1f18 + GPIO_DriveStrength_EN(GPIOA0,4); + 5ade: 9400 ld.w r0, (r4, 0x0) + 5ae0: 3104 movi r1, 4 + 5ae2: e3ffe21b bsr 0x1f18 // 1f18 + HT1621_CS_LOW; + 5ae6: 9400 ld.w r0, (r4, 0x0) + 5ae8: 310f movi r1, 15 + 5aea: e3ffe35d bsr 0x21a4 // 21a4 + HT1621_WR_LOW; + 5aee: 9400 ld.w r0, (r4, 0x0) + 5af0: 3101 movi r1, 1 + 5af2: e3ffe359 bsr 0x21a4 // 21a4 + HT1621_RD_LOW; + 5af6: 9400 ld.w r0, (r4, 0x0) + 5af8: 3100 movi r1, 0 + 5afa: e3ffe355 bsr 0x21a4 // 21a4 + HT1621_DATA_LOW; + 5afe: 3104 movi r1, 4 + 5b00: 9400 ld.w r0, (r4, 0x0) + 5b02: e3ffe351 bsr 0x21a4 // 21a4 + HT1621_WR_CMD(HT1621_BIAS); + 5b06: 3052 movi r0, 82 + 5b08: e3ffffac bsr 0x5a60 // 5a60 + HT1621_WR_CMD(HT1621_RC256); + 5b0c: 3030 movi r0, 48 + 5b0e: e3ffffa9 bsr 0x5a60 // 5a60 + HT1621_WR_CMD(HT1621_SYSDIS); + 5b12: 3000 movi r0, 0 + 5b14: e3ffffa6 bsr 0x5a60 // 5a60 + HT1621_WR_CMD(HT1621_WDTDIS); + 5b18: 300a movi r0, 10 + 5b1a: e3ffffa3 bsr 0x5a60 // 5a60 + HT1621_WR_CMD(HT1621_SYSEN); + 5b1e: 3002 movi r0, 2 + 5b20: e3ffffa0 bsr 0x5a60 // 5a60 + HT1621_WR_CMD(HT1621_LCDON); + 5b24: 3006 movi r0, 6 + 5b26: e3ffff9d bsr 0x5a60 // 5a60 + HT1621_WR_CMD(HT1621_BIOFF); + 5b2a: 3010 movi r0, 16 + 5b2c: e3ffff9a bsr 0x5a60 // 5a60 + HT1621_CS_HIGH; + 5b30: 9400 ld.w r0, (r4, 0x0) + 5b32: 310f movi r1, 15 + 5b34: e3ffe334 bsr 0x219c // 219c +} + 5b38: 1491 pop r4, r15 + 5b3a: 0000 bkpt + 5b3c: 2000004c .long 0x2000004c + 5b40: 20000564 .long 0x20000564 + +Disassembly of section .text.HT1621_Clear: + +00005b44 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 5b44: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 5b46: 3214 movi r2, 20 + 5b48: 3100 movi r1, 0 + + HT1621_CS_LOW; + 5b4a: 10b1 lrw r5, 0x2000004c // 5b8c + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 5b4c: 1011 lrw r0, 0x20000570 // 5b90 + 5b4e: e3ffdf27 bsr 0x199c // 199c <__memset_fast> + HT1621_CS_LOW; + 5b52: 310f movi r1, 15 + 5b54: 9500 ld.w r0, (r5, 0x0) + 5b56: e3ffe327 bsr 0x21a4 // 21a4 + nop; + 5b5a: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5b5c: 3103 movi r1, 3 + 5b5e: 30a0 movi r0, 160 + 5b60: e3ffff5c bsr 0x5a18 // 5a18 + HT1621_WR_Data(0,6); + 5b64: 3106 movi r1, 6 + 5b66: 3000 movi r0, 0 + 5b68: e3ffff58 bsr 0x5a18 // 5a18 + 5b6c: 3414 movi r4, 20 + 5b6e: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5b7e: 9500 ld.w r0, (r5, 0x0) + 5b80: 310f movi r1, 15 + 5b82: e3ffe30d bsr 0x219c // 219c + nop; + 5b86: 6c03 mov r0, r0 +} + 5b88: 1492 pop r4-r5, r15 + 5b8a: 0000 bkpt + 5b8c: 2000004c .long 0x2000004c + 5b90: 20000570 .long 0x20000570 + +Disassembly of section .text.HT1621_ALLON: + +00005b94 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 5b94: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5b96: 10af lrw r5, 0x2000004c // 5bd0 + 5b98: 310f movi r1, 15 + 5b9a: 9500 ld.w r0, (r5, 0x0) + 5b9c: e3ffe304 bsr 0x21a4 // 21a4 + nop; + 5ba0: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5ba2: 3103 movi r1, 3 + 5ba4: 30a0 movi r0, 160 + 5ba6: e3ffff39 bsr 0x5a18 // 5a18 + HT1621_WR_Data(0,6); + 5baa: 3106 movi r1, 6 + 5bac: 3000 movi r0, 0 + 5bae: e3ffff35 bsr 0x5a18 // 5a18 + 5bb2: 3414 movi r4, 20 + 5bb4: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5bc4: 9500 ld.w r0, (r5, 0x0) + 5bc6: 310f movi r1, 15 + 5bc8: e3ffe2ea bsr 0x219c // 219c + nop; + 5bcc: 6c03 mov r0, r0 +} + 5bce: 1492 pop r4-r5, r15 + 5bd0: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00005bd4 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 5bd4: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5bd6: 1091 lrw r4, 0x2000004c // 5c18 + 5bd8: 310f movi r1, 15 + 5bda: 9400 ld.w r0, (r4, 0x0) + 5bdc: e3ffe2e4 bsr 0x21a4 // 21a4 + nop; + 5be0: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5be2: 3103 movi r1, 3 + 5be4: 30a0 movi r0, 160 + 5be6: e3ffff19 bsr 0x5a18 // 5a18 + HT1621_WR_Data(0,6); + 5bea: 3106 movi r1, 6 + 5bec: 3000 movi r0, 0 + 5bee: e3ffff15 bsr 0x5a18 // 5a18 + 5bf2: 3500 movi r5, 0 + for(U8_T i=0;i + 5bf6: 60d4 addu r3, r5 + 5bf8: 830c ld.b r0, (r3, 0xc) + 5bfa: 4004 lsli r0, r0, 4 + 5bfc: 7400 zextb r0, r0 + 5bfe: 3104 movi r1, 4 + 5c00: 2500 addi r5, 1 + 5c02: e3ffff0b bsr 0x5a18 // 5a18 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5c0a: 9400 ld.w r0, (r4, 0x0) + 5c0c: 310f movi r1, 15 + 5c0e: e3ffe2c7 bsr 0x219c // 219c + nop; + 5c12: 6c03 mov r0, r0 +} + 5c14: 1492 pop r4-r5, r15 + 5c16: 0000 bkpt + 5c18: 2000004c .long 0x2000004c + 5c1c: 20000564 .long 0x20000564 + +Disassembly of section .text.Set_Temperature_Display: + +00005c20 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 5c20: 14d4 push r4-r7, r15 + 5c22: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5c24: 1170 lrw r3, 0x200005cd // 5ce4 + 5c26: 8368 ld.b r3, (r3, 0x8) + 5c28: 3b40 cmpnei r3, 0 +{ + 5c2a: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5c2c: b861 st.w r3, (r14, 0x4) + 5c2e: 0845 bt 0x5cb8 // 5cb8 + tmp_Integer = tmp/10; + 5c30: 310a movi r1, 10 + 5c32: e3ffee65 bsr 0x38fc // 38fc <__udivsi3> + 5c36: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5c38: 310a movi r1, 10 + 5c3a: 6c13 mov r0, r4 + 5c3c: e3ffee84 bsr 0x3944 // 3944 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 5c40: 118a lrw r4, 0x20000564 // 5ce8 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5c42: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 5c44: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5c46: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 5c48: 8476 ld.b r3, (r4, 0x16) + 5c4a: 68d4 and r3, r5 + 5c4c: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 5c4e: 8474 ld.b r3, (r4, 0x14) + 5c50: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 5c52: 310a movi r1, 10 + 5c54: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 5c56: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 5c58: e3ffee52 bsr 0x38fc // 38fc <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5c5c: 11e4 lrw r7, 0xa036 // 5cec + 5c5e: 7400 zextb r0, r0 + 5c60: 601c addu r0, r7 + 5c62: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 5c64: 8458 ld.b r2, (r4, 0x18) + 5c66: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5c68: 6c07 mov r0, r1 + 5c6a: 350f movi r5, 15 + 5c6c: 6814 and r0, r5 + 5c6e: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 5c70: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5c72: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 5c74: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 5c76: 6c1b mov r0, r6 + 5c78: 310a movi r1, 10 + 5c7a: e3ffee65 bsr 0x3944 // 3944 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5c7e: 7400 zextb r0, r0 + 5c80: 601c addu r0, r7 + 5c82: 8040 ld.b r2, (r0, 0x0) + 5c84: 6c4b mov r1, r2 + 5c86: 6854 and r1, r5 + 5c88: 9862 ld.w r3, (r14, 0x8) + 5c8a: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5c8c: 9860 ld.w r3, (r14, 0x0) + 5c8e: 61cc addu r7, r3 + 5c90: 8760 ld.b r3, (r7, 0x0) + 5c92: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5c94: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5c96: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5c98: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 5c9a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5c9c: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 5c9e: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5ca0: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5ca2: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5ca4: 6d48 or r5, r2 + 5ca6: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 5ca8: 081a bt 0x5cdc // 5cdc + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 5caa: 3ba1 bseti r3, 1 + 5cac: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 5cae: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5cb0: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 5cb2: a4b4 st.b r5, (r4, 0x14) +} + 5cb4: 1404 addi r14, r14, 16 + 5cb6: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5cb8: 3012 movi r0, 18 + 5cba: 7c10 mult r0, r4 + 5cbc: 310a movi r1, 10 + 5cbe: 34a0 movi r4, 160 + 5cc0: e3ffee0c bsr 0x38d8 // 38d8 <__divsi3> + 5cc4: 4481 lsli r4, r4, 1 + 5cc6: 6100 addu r4, r0 + 5cc8: 310a movi r1, 10 + 5cca: 6c13 mov r0, r4 + 5ccc: e3ffee06 bsr 0x38d8 // 38d8 <__divsi3> + 5cd0: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5cd2: 310a movi r1, 10 + 5cd4: 6c13 mov r0, r4 + 5cd6: e3ffee25 bsr 0x3920 // 3920 <__modsi3> + 5cda: 07b3 br 0x5c40 // 5c40 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5cdc: 3ba2 bseti r3, 2 + 5cde: 3ba3 bseti r3, 3 + 5ce0: 07e7 br 0x5cae // 5cae + 5ce2: 0000 bkpt + 5ce4: 200005cd .long 0x200005cd + 5ce8: 20000564 .long 0x20000564 + 5cec: 0000a036 .long 0x0000a036 + +Disassembly of section .text.Local_Temperature_Display: + +00005cf0 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 5cf0: 14d4 push r4-r7, r15 + 5cf2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5cf4: 1170 lrw r3, 0x200005cd // 5db4 + 5cf6: 8368 ld.b r3, (r3, 0x8) + 5cf8: 3b40 cmpnei r3, 0 +{ + 5cfa: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5cfc: b861 st.w r3, (r14, 0x4) + 5cfe: 0845 bt 0x5d88 // 5d88 + tmp_Integer = tmp/10; + 5d00: 310a movi r1, 10 + 5d02: e3ffedfd bsr 0x38fc // 38fc <__udivsi3> + 5d06: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5d08: 310a movi r1, 10 + 5d0a: 6c13 mov r0, r4 + 5d0c: e3ffee1c bsr 0x3944 // 3944 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 5d10: 118a lrw r4, 0x20000564 // 5db8 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5d12: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 5d14: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5d16: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 5d18: 847d ld.b r3, (r4, 0x1d) + 5d1a: 68d4 and r3, r5 + 5d1c: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 5d1e: 847b ld.b r3, (r4, 0x1b) + 5d20: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 5d22: 310a movi r1, 10 + 5d24: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 5d26: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 5d28: e3ffedea bsr 0x38fc // 38fc <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5d2c: 11e4 lrw r7, 0xa036 // 5dbc + 5d2e: 7400 zextb r0, r0 + 5d30: 601c addu r0, r7 + 5d32: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 5d34: 845f ld.b r2, (r4, 0x1f) + 5d36: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5d38: 6c07 mov r0, r1 + 5d3a: 350f movi r5, 15 + 5d3c: 6814 and r0, r5 + 5d3e: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5d40: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5d42: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5d44: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 5d46: 6c1b mov r0, r6 + 5d48: 310a movi r1, 10 + 5d4a: e3ffedfd bsr 0x3944 // 3944 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5d4e: 7400 zextb r0, r0 + 5d50: 601c addu r0, r7 + 5d52: 8040 ld.b r2, (r0, 0x0) + 5d54: 6c4b mov r1, r2 + 5d56: 6854 and r1, r5 + 5d58: 9862 ld.w r3, (r14, 0x8) + 5d5a: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5d5c: 9860 ld.w r3, (r14, 0x0) + 5d5e: 61cc addu r7, r3 + 5d60: 8760 ld.b r3, (r7, 0x0) + 5d62: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5d64: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5d66: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5d68: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 5d6a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5d6c: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 5d6e: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5d70: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5d72: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5d74: 6d48 or r5, r2 + 5d76: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 5d78: 081a bt 0x5dac // 5dac + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 5d7a: 3ba1 bseti r3, 1 + 5d7c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 5d7e: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5d80: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 5d82: a4bb st.b r5, (r4, 0x1b) +} + 5d84: 1404 addi r14, r14, 16 + 5d86: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5d88: 3012 movi r0, 18 + 5d8a: 7c10 mult r0, r4 + 5d8c: 310a movi r1, 10 + 5d8e: 34a0 movi r4, 160 + 5d90: e3ffeda4 bsr 0x38d8 // 38d8 <__divsi3> + 5d94: 4481 lsli r4, r4, 1 + 5d96: 6100 addu r4, r0 + 5d98: 310a movi r1, 10 + 5d9a: 6c13 mov r0, r4 + 5d9c: e3ffed9e bsr 0x38d8 // 38d8 <__divsi3> + 5da0: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5da2: 310a movi r1, 10 + 5da4: 6c13 mov r0, r4 + 5da6: e3ffedbd bsr 0x3920 // 3920 <__modsi3> + 5daa: 07b3 br 0x5d10 // 5d10 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5dac: 3ba2 bseti r3, 2 + 5dae: 3ba3 bseti r3, 3 + 5db0: 07e7 br 0x5d7e // 5d7e + 5db2: 0000 bkpt + 5db4: 200005cd .long 0x200005cd + 5db8: 20000564 .long 0x20000564 + 5dbc: 0000a036 .long 0x0000a036 + +Disassembly of section .text.Control_Mode: + +00005dc0 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 5dc0: 14d1 push r4, r15 + switch(mode){ + 5dc2: 3806 cmphsi r0, 7 + 5dc4: 0823 bt 0x5e0a // 5e0a + 5dc6: e3ffd7b3 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5dca: 0007 .short 0x0007 + 5dcc: 005a0020 .long 0x005a0020 + 5dd0: 009a0020 .long 0x009a0020 + 5dd4: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 5dd8: 0376 lrw r3, 0x200005cd // 5ffc + 5dda: 8349 ld.b r2, (r3, 0x9) + 5ddc: 3a40 cmpnei r2, 0 + 5dde: 0376 lrw r3, 0x20000564 // 6000 + 5de0: 0816 bt 0x5e0c // 5e0c + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 5de2: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 5de4: 830e ld.b r0, (r3, 0xe) + 5de6: 6811 andn r0, r4 + 5de8: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5dea: 830f ld.b r0, (r3, 0xf) + 5dec: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5dee: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5df0: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5df2: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5df4: 3982 bclri r1, 2 + 5df6: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5df8: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5dfa: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5dfc: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5dfe: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 5e00: 39a2 bseti r1, 2 + 5e02: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 5e04: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 5e06: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 5e08: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 5e0a: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 5e0c: 3a41 cmpnei r2, 1 + 5e0e: 0812 bt 0x5e32 // 5e32 + HT1621.show_cache[1] &= ~0x07; + 5e10: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 5e12: 830e ld.b r0, (r3, 0xe) + 5e14: 6811 andn r0, r4 + 5e16: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5e18: 830f ld.b r0, (r3, 0xf) + 5e1a: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5e1c: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5e1e: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5e20: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5e22: 3982 bclri r1, 2 + 5e24: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5e26: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5e28: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5e2a: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5e2c: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 5e2e: 39a2 bseti r1, 2 + 5e30: 07ea br 0x5e04 // 5e04 + else if(Debug_Inf.Language_Selection == 0x02) + 5e32: 3a42 cmpnei r2, 2 + 5e34: 0812 bt 0x5e58 // 5e58 + HT1621.show_cache[1] &= ~0x07; + 5e36: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 5e38: 830e ld.b r0, (r3, 0xe) + 5e3a: 6811 andn r0, r4 + 5e3c: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5e3e: 830f ld.b r0, (r3, 0xf) + 5e40: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5e42: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5e44: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5e46: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5e48: 3982 bclri r1, 2 + 5e4a: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5e4c: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5e4e: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5e50: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5e52: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 5e54: 39a3 bseti r1, 3 + 5e56: 07d7 br 0x5e04 // 5e04 + HT1621.show_cache[0] &= ~0x0C; + 5e58: 136a lrw r3, 0x20000564 // 6000 + 5e5a: 834c ld.b r2, (r3, 0xc) + 5e5c: 3a82 bclri r2, 2 + 5e5e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5e60: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 5e62: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5e64: 834d ld.b r2, (r3, 0xd) + 5e66: 6885 andn r2, r1 + 5e68: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5e6a: 834e ld.b r2, (r3, 0xe) + 5e6c: 6885 andn r2, r1 + 5e6e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5e70: 834f ld.b r2, (r3, 0xf) + 5e72: 6885 andn r2, r1 + 5e74: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5e76: 8351 ld.b r2, (r3, 0x11) + 5e78: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 5e7a: a351 st.b r2, (r3, 0x11) +} + 5e7c: 07c7 br 0x5e0a // 5e0a + if(Debug_Inf.Language_Selection == 0x00) + 5e7e: 1360 lrw r3, 0x200005cd // 5ffc + 5e80: 8349 ld.b r2, (r3, 0x9) + 5e82: 3a40 cmpnei r2, 0 + 5e84: 127f lrw r3, 0x20000564 // 6000 + 5e86: 0816 bt 0x5eb2 // 5eb2 + HT1621.show_cache[1] &= ~0x07; + 5e88: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5e8a: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5e8c: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5e8e: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5e90: 3a82 bclri r2, 2 + 5e92: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5e94: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5e96: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5e98: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5e9a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5e9c: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5e9e: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5ea0: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5ea2: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5ea4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5ea6: 39a1 bseti r1, 1 + 5ea8: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 5eaa: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 5eac: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 5eae: a34e st.b r2, (r3, 0xe) + 5eb0: 07ad br 0x5e0a // 5e0a + else if(Debug_Inf.Language_Selection == 0x01) + 5eb2: 3a41 cmpnei r2, 1 + 5eb4: 0812 bt 0x5ed8 // 5ed8 + HT1621.show_cache[1] &= ~0x07; + 5eb6: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5eb8: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5eba: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5ebc: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5ebe: 3a82 bclri r2, 2 + 5ec0: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5ec2: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5ec4: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5ec6: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5ec8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5eca: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5ecc: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5ece: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5ed0: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5ed2: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 5ed4: 39a1 bseti r1, 1 + 5ed6: 07ea br 0x5eaa // 5eaa + else if(Debug_Inf.Language_Selection == 0x02) + 5ed8: 3a42 cmpnei r2, 2 + 5eda: 0bbf bt 0x5e58 // 5e58 + HT1621.show_cache[1] &= ~0x07; + 5edc: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 5ede: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 5ee0: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5ee2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5ee4: 3a82 bclri r2, 2 + 5ee6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5ee8: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 5eea: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5eec: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5eee: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5ef0: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 5ef2: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 5ef4: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 5ef6: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5ef8: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 5efa: 39a2 bseti r1, 2 + 5efc: 07d7 br 0x5eaa // 5eaa + if(Debug_Inf.Language_Selection == 0x00) + 5efe: 1260 lrw r3, 0x200005cd // 5ffc + 5f00: 8349 ld.b r2, (r3, 0x9) + 5f02: 3a40 cmpnei r2, 0 + 5f04: 117f lrw r3, 0x20000564 // 6000 + 5f06: 0816 bt 0x5f32 // 5f32 + HT1621.show_cache[0] &= ~0x0C; + 5f08: 834c ld.b r2, (r3, 0xc) + 5f0a: 3a82 bclri r2, 2 + 5f0c: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5f0e: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5f10: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5f12: 834d ld.b r2, (r3, 0xd) + 5f14: 6881 andn r2, r0 + 5f16: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5f18: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5f1a: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5f1c: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5f1e: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5f20: 8311 ld.b r0, (r3, 0x11) + 5f22: 3880 bclri r0, 0 + 5f24: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5f26: 39a1 bseti r1, 1 + 5f28: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 5f2a: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 5f2c: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 5f2e: a34f st.b r2, (r3, 0xf) + 5f30: 076d br 0x5e0a // 5e0a + else if(Debug_Inf.Language_Selection == 0x01) + 5f32: 3a41 cmpnei r2, 1 + 5f34: 0812 bt 0x5f58 // 5f58 + HT1621.show_cache[0] &= ~0x0C; + 5f36: 834c ld.b r2, (r3, 0xc) + 5f38: 3a82 bclri r2, 2 + 5f3a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5f3c: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5f3e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5f40: 834d ld.b r2, (r3, 0xd) + 5f42: 6881 andn r2, r0 + 5f44: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5f46: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5f48: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5f4a: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5f4c: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5f4e: 8311 ld.b r0, (r3, 0x11) + 5f50: 3880 bclri r0, 0 + 5f52: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 5f54: 39a1 bseti r1, 1 + 5f56: 07ea br 0x5f2a // 5f2a + else if(Debug_Inf.Language_Selection == 0x02) + 5f58: 3a42 cmpnei r2, 2 + 5f5a: 0b7f bt 0x5e58 // 5e58 + HT1621.show_cache[0] &= ~0x0C; + 5f5c: 834c ld.b r2, (r3, 0xc) + 5f5e: 3a82 bclri r2, 2 + 5f60: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5f62: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5f64: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5f66: 834d ld.b r2, (r3, 0xd) + 5f68: 6881 andn r2, r0 + 5f6a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5f6c: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5f6e: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5f70: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 5f72: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 5f74: 8311 ld.b r0, (r3, 0x11) + 5f76: 3880 bclri r0, 0 + 5f78: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 5f7a: 39a2 bseti r1, 2 + 5f7c: 07d7 br 0x5f2a // 5f2a + if(Debug_Inf.Language_Selection == 0x00) + 5f7e: 1160 lrw r3, 0x200005cd // 5ffc + 5f80: 8349 ld.b r2, (r3, 0x9) + 5f82: 3a40 cmpnei r2, 0 + 5f84: 107f lrw r3, 0x20000564 // 6000 + 5f86: 0815 bt 0x5fb0 // 5fb0 + HT1621.show_cache[0] &= ~0x0C; + 5f88: 834c ld.b r2, (r3, 0xc) + 5f8a: 3a82 bclri r2, 2 + 5f8c: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5f8e: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5f90: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5f92: 834d ld.b r2, (r3, 0xd) + 5f94: 6881 andn r2, r0 + 5f96: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5f98: 834e ld.b r2, (r3, 0xe) + 5f9a: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5f9c: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5f9e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5fa0: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5fa2: 8351 ld.b r2, (r3, 0x11) + 5fa4: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5fa6: 39a1 bseti r1, 1 + 5fa8: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 5faa: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 5fac: 3aa0 bseti r2, 0 + 5fae: 0766 br 0x5e7a // 5e7a + else if(Debug_Inf.Language_Selection == 0x01) + 5fb0: 3a41 cmpnei r2, 1 + 5fb2: 0812 bt 0x5fd6 // 5fd6 + HT1621.show_cache[0] &= ~0x0C; + 5fb4: 834c ld.b r2, (r3, 0xc) + 5fb6: 3a82 bclri r2, 2 + 5fb8: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5fba: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5fbc: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5fbe: 834d ld.b r2, (r3, 0xd) + 5fc0: 6881 andn r2, r0 + 5fc2: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5fc4: 834e ld.b r2, (r3, 0xe) + 5fc6: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5fc8: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5fca: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5fcc: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5fce: 8351 ld.b r2, (r3, 0x11) + 5fd0: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 5fd2: 39a1 bseti r1, 1 + 5fd4: 07eb br 0x5faa // 5faa + else if(Debug_Inf.Language_Selection == 0x02) + 5fd6: 3a42 cmpnei r2, 2 + 5fd8: 0b40 bt 0x5e58 // 5e58 + HT1621.show_cache[0] &= ~0x0C; + 5fda: 834c ld.b r2, (r3, 0xc) + 5fdc: 3a82 bclri r2, 2 + 5fde: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 5fe0: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 5fe2: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 5fe4: 834d ld.b r2, (r3, 0xd) + 5fe6: 6881 andn r2, r0 + 5fe8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 5fea: 834e ld.b r2, (r3, 0xe) + 5fec: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 5fee: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 5ff0: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5ff2: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 5ff4: 8351 ld.b r2, (r3, 0x11) + 5ff6: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 5ff8: 39a2 bseti r1, 2 + 5ffa: 07d8 br 0x5faa // 5faa + 5ffc: 200005cd .long 0x200005cd + 6000: 20000564 .long 0x20000564 + +Disassembly of section .text.Control_wind_velocity: + +00006004 : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 6004: 14d2 push r4-r5, r15 + switch(velocity) + 6006: 3804 cmphsi r0, 5 + 6008: 0815 bt 0x6032 // 6032 + 600a: 1172 lrw r3, 0x20000564 // 60d0 + 600c: e3ffd678 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6010: 20120333 .long 0x20120333 + 6014: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 6016: 8351 ld.b r2, (r3, 0x11) + 6018: 310e movi r1, 14 + 601a: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 601c: 300f movi r0, 15 + 601e: 8330 ld.b r1, (r3, 0x10) + 6020: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 6022: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 6024: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 6026: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 6028: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 602a: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 602c: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 602e: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 6030: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 6032: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 6034: 310e movi r1, 14 + 6036: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6038: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 603a: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 603c: 8330 ld.b r1, (r3, 0x10) + 603e: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 6040: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 6042: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 6044: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 6046: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6048: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 604a: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 604c: 3aa3 bseti r2, 3 + 604e: 07f1 br 0x6030 // 6030 + HT1621.show_cache[5] &= ~0x0E; + 6050: 310e movi r1, 14 + 6052: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6054: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 6056: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 6058: 8330 ld.b r1, (r3, 0x10) + 605a: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 605c: 300e movi r0, 14 + 605e: 07f2 br 0x6042 // 6042 + HT1621.show_cache[4] &= ~0x0F; + 6060: 8350 ld.b r2, (r3, 0x10) + 6062: 310f movi r1, 15 + 6064: 6885 andn r2, r1 + 6066: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 6068: 310e movi r1, 14 + 606a: 8351 ld.b r2, (r3, 0x11) + 606c: 6885 andn r2, r1 + 606e: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 6070: 834f ld.b r2, (r3, 0xf) + 6072: 3a83 bclri r2, 3 + 6074: 07de br 0x6030 // 6030 + HT1621.show_cache[4] &= ~0x0F; + 6076: 8330 ld.b r1, (r3, 0x10) + 6078: 320f movi r2, 15 + 607a: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 607c: 300e movi r0, 14 + 607e: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6080: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 6082: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 6084: 3408 movi r4, 8 + 6086: 6c17 mov r0, r5 + 6088: 6c10 or r0, r4 + 608a: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 608c: 6c07 mov r0, r1 + 608e: 38a0 bseti r0, 0 + 6090: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 6092: 8303 ld.b r0, (r3, 0x3) + 6094: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 6096: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 6098: 0804 bt 0x60a0 // 60a0 + HT1621.show_cache[3] &= ~0x08; + 609a: 3d83 bclri r5, 3 + 609c: a3af st.b r5, (r3, 0xf) + 609e: 07ca br 0x6032 // 6032 + }else if(HT1621.wind_velocity == 0) //低风速 + 60a0: 3840 cmpnei r0, 0 + 60a2: 0807 bt 0x60b0 // 60b0 + HT1621.show_cache[4] |= 0x08; + 60a4: 39a0 bseti r1, 0 + 60a6: 39a3 bseti r1, 3 + 60a8: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 60aa: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 60ac: a351 st.b r2, (r3, 0x11) +} + 60ae: 07c2 br 0x6032 // 6032 + }else if(HT1621.wind_velocity == 1) //中风速 + 60b0: 3841 cmpnei r0, 1 + 60b2: 0807 bt 0x60c0 // 60c0 + HT1621.show_cache[4] |= 0x0C; + 60b4: 300d movi r0, 13 + 60b6: 6c40 or r1, r0 + 60b8: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 60ba: 3aa2 bseti r2, 2 + 60bc: 3aa3 bseti r2, 3 + 60be: 07f7 br 0x60ac // 60ac + }else if(HT1621.wind_velocity == 2) //高风速 + 60c0: 3842 cmpnei r0, 2 + 60c2: 0bb8 bt 0x6032 // 6032 + HT1621.show_cache[4] |= 0x0E; + 60c4: 300f movi r0, 15 + 60c6: 6c40 or r1, r0 + 60c8: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 60ca: 310e movi r1, 14 + 60cc: 6c84 or r2, r1 + 60ce: 07ef br 0x60ac // 60ac + 60d0: 20000564 .long 0x20000564 + +Disassembly of section .text.Control_Prompt_Text: + +000060d4 : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 60d4: 14c4 push r4-r7 + 60d6: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 60d8: 1167 lrw r3, 0x20000564 // 6174 + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 60da: 83d6 ld.b r6, (r3, 0x16) + 60dc: 3e80 bclri r6, 0 + 60de: 7598 zextb r6, r6 + 60e0: b8c0 st.w r6, (r14, 0x0) + 60e2: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 60e6: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 60e8: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 60ea: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 60ec: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 60ee: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 60f0: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 60f2: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 60f4: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 60f6: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 60f8: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 60fa: 3a80 bclri r2, 0 + 60fc: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 60fe: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 6100: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 6102: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 6104: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 6106: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 6108: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 610a: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 610c: 7598 zextb r6, r6 + + if(state == 0x00) + 610e: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 6110: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 6112: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 6114: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 6116: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 6118: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 611a: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 611c: 0814 bt 0x6144 // 6144 + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 611e: 3008 movi r0, 8 + 6120: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 6122: 3aa0 bseti r2, 0 + 6124: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 6126: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 6128: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 612a: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 612c: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 612e: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 6130: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 6132: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6134: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 6136: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6138: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 613a: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 613c: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 613e: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 6140: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 6142: 040b br 0x6158 // 6158 + else if(state == 0x01){ + 6144: 3841 cmpnei r0, 1 + 6146: 080b bt 0x615c // 615c + HT1621.show_cache[0] |= 0x01; //模式 + 6148: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 614a: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 614c: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 614e: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 6150: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 6152: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 6154: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6156: a33f st.b r1, (r3, 0x1f) +} + 6158: 1401 addi r14, r14, 4 + 615a: 1484 pop r4-r7 + }else if(state == 0x02){ + 615c: 3842 cmpnei r0, 2 + 615e: 0bfd bt 0x6158 // 6158 + HT1621.show_cache[0] |= 0x02; //模式 + 6160: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6162: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 6164: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 6166: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 6168: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 616a: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 616c: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 616e: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 6170: 6d84 or r6, r1 + 6172: 07e7 br 0x6140 // 6140 + 6174: 20000564 .long 0x20000564 + +Disassembly of section .text.Controlled_Buzzer: + +00006178 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 6178: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 617a: 3841 cmpnei r0, 1 + 617c: 0c0a bf 0x6190 // 6190 + 617e: 3840 cmpnei r0, 0 + 6180: 0c04 bf 0x6188 // 6188 + 6182: 3842 cmpnei r0, 2 + 6184: 0c12 bf 0x61a8 // 61a8 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 6186: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 6188: 3010 movi r0, 16 + 618a: e3fffc6b bsr 0x5a60 // 5a60 + break; + 618e: 07fc br 0x6186 // 6186 + HT1621_WR_CMD(HT1621_BLON); + 6190: 3012 movi r0, 18 + 6192: e3fffc67 bsr 0x5a60 // 5a60 + HT1621.buz_control = 0x01; + 6196: 1069 lrw r3, 0x20000564 // 61b8 + 6198: 3220 movi r2, 32 + 619a: 608c addu r2, r3 + 619c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 619e: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 61a0: 1047 lrw r2, 0x200000c0 // 61bc + 61a2: 9240 ld.w r2, (r2, 0x0) + 61a4: b34e st.w r2, (r3, 0x38) +} + 61a6: 07f0 br 0x6186 // 6186 + HT1621_WR_CMD(HT1621_BLON); + 61a8: 3012 movi r0, 18 + 61aa: e3fffc5b bsr 0x5a60 // 5a60 + HT1621.buz_control = 0x02; + 61ae: 1063 lrw r3, 0x20000564 // 61b8 + 61b0: 3220 movi r2, 32 + 61b2: 608c addu r2, r3 + 61b4: 3102 movi r1, 2 + 61b6: 07f4 br 0x619e // 619e + 61b8: 20000564 .long 0x20000564 + 61bc: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Controlled_LCD_Backlight: + +000061c0 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 61c0: 14d0 push r15 + switch (state) { + 61c2: 3840 cmpnei r0, 0 + 61c4: 0c04 bf 0x61cc // 61cc + 61c6: 3841 cmpnei r0, 1 + 61c8: 0c16 bf 0x61f4 // 61f4 + + } + break; + + } +} + 61ca: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 61cc: 1172 lrw r3, 0x200001a0 // 6294 + 61ce: 8359 ld.b r2, (r3, 0x19) + 61d0: 3a41 cmpnei r2, 1 + 61d2: 0bfc bt 0x61ca // 61ca + tm1812_param.LCD_blaklingt_flag = 0x00; + 61d4: 3200 movi r2, 0 + 61d6: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 61d8: 3100 movi r1, 0 + 61da: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 61dc: e3fffb76 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 61e0: 3100 movi r1, 0 + 61e2: 3001 movi r0, 1 + 61e4: e3fffb72 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 61e8: 3100 movi r1, 0 + 61ea: 3002 movi r0, 2 + 61ec: e3fffb6e bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 61f0: 3100 movi r1, 0 + 61f2: 0437 br 0x6260 // 6260 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 61f4: 1128 lrw r1, 0x200001a0 // 6294 + 61f6: 8179 ld.b r3, (r1, 0x19) + 61f8: 3b40 cmpnei r3, 0 + 61fa: 0be8 bt 0x61ca // 61ca + tm1812_param.LCD_blaklingt_flag = 0x01; + 61fc: 3301 movi r3, 1 + 61fe: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 6200: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 6202: 1166 lrw r3, 0x200005a4 // 6298 + 6204: 8362 ld.b r3, (r3, 0x2) + 6206: 4379 lsli r3, r3, 25 + 6208: 4b7d lsri r3, r3, 29 + 620a: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 620c: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 620e: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 6210: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 6212: 0c1c bf 0x624a // 624a + 6214: 3a44 cmpnei r2, 4 + 6216: 0c2a bf 0x626a // 626a + 6218: 3a40 cmpnei r2, 0 + 621a: 0be1 bt 0x61dc // 61dc + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 621c: e3fffb56 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 6220: 31ff movi r1, 255 + 6222: 3001 movi r0, 1 + 6224: e3fffb52 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6228: 3100 movi r1, 0 + 622a: 3002 movi r0, 2 + 622c: e3fffb4e bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6230: 3100 movi r1, 0 + 6232: 3003 movi r0, 3 + 6234: e3fffb4a bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6238: 3100 movi r1, 0 + 623a: 3004 movi r0, 4 + 623c: e3fffb46 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 6240: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 6242: 3005 movi r0, 5 + 6244: e3fffb42 bsr 0x58c8 // 58c8 +} + 6248: 07c1 br 0x61ca // 61ca + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 624a: e3fffb3f bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 624e: 31ff movi r1, 255 + 6250: 3001 movi r0, 1 + 6252: e3fffb3b bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6256: 3100 movi r1, 0 + 6258: 3002 movi r0, 2 + 625a: e3fffb37 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 625e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6260: 3003 movi r0, 3 + 6262: e3fffb33 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6266: 3100 movi r1, 0 + 6268: 0410 br 0x6288 // 6288 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 626a: e3fffb2f bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 626e: 31ff movi r1, 255 + 6270: 3001 movi r0, 1 + 6272: e3fffb2b bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6276: 3100 movi r1, 0 + 6278: 3002 movi r0, 2 + 627a: e3fffb27 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 627e: 3100 movi r1, 0 + 6280: 3003 movi r0, 3 + 6282: e3fffb23 bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 6286: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6288: 3004 movi r0, 4 + 628a: e3fffb1f bsr 0x58c8 // 58c8 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 628e: 3100 movi r1, 0 + 6290: 07d9 br 0x6242 // 6242 + 6292: 0000 bkpt + 6294: 200001a0 .long 0x200001a0 + 6298: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Controlled_Key_Backlight: + +0000629c : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 629c: 14d0 push r15 + switch(state){ + 629e: 3840 cmpnei r0, 0 + 62a0: 0c04 bf 0x62a8 // 62a8 + 62a2: 3841 cmpnei r0, 1 + 62a4: 0c0b bf 0x62ba // 62ba + + } + + break; + } +} + 62a6: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 62a8: 1068 lrw r3, 0x20000548 // 62c8 + 62aa: 836a ld.b r3, (r3, 0xa) + 62ac: 3b42 cmpnei r3, 2 + 62ae: 0ffc bf 0x62a6 // 62a6 + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 62b0: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 62b2: 3005 movi r0, 5 + 62b4: e3fff7cc bsr 0x524c // 524c +} + 62b8: 07f7 br 0x62a6 // 62a6 + if(g_switch.light_state[T_Backlight] != Control_ON) + 62ba: 1064 lrw r3, 0x20000548 // 62c8 + 62bc: 836a ld.b r3, (r3, 0xa) + 62be: 3b41 cmpnei r3, 1 + 62c0: 0ff3 bf 0x62a6 // 62a6 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 62c2: 3101 movi r1, 1 + 62c4: 07f7 br 0x62b2 // 62b2 + 62c6: 0000 bkpt + 62c8: 20000548 .long 0x20000548 + +Disassembly of section .text.Set_Device_ADDR: + +000062cc : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 62cc: 14d4 push r4-r7, r15 + 62ce: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62d0: 11c4 lrw r6, 0xa036 // 6360 + 62d2: 6018 addu r0, r6 + 62d4: 1184 lrw r4, 0x20000564 // 6364 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 62d6: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62d8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 62da: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62dc: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 62de: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62e0: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 62e2: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62e4: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 62e6: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62e8: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 62ea: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 62ec: 843b ld.b r1, (r4, 0x1b) + 62ee: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 62f0: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 62f2: 845d ld.b r2, (r4, 0x1d) + 62f4: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 62f6: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 62f8: 6c1f mov r0, r7 + 62fa: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 62fc: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 62fe: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 6300: e3ffeafe bsr 0x38fc // 38fc <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6304: 7400 zextb r0, r0 + 6306: 6018 addu r0, r6 + 6308: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 630a: 9861 ld.w r3, (r14, 0x4) + 630c: 841f ld.b r0, (r4, 0x1f) + 630e: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6310: 6c07 mov r0, r1 + 6312: 6814 and r0, r5 + 6314: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 6316: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6318: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 631a: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 631c: 6c1f mov r0, r7 + 631e: 310a movi r1, 10 + 6320: e3ffeaee bsr 0x38fc // 38fc <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 6324: 7400 zextb r0, r0 + 6326: 310a movi r1, 10 + 6328: e3ffeb0e bsr 0x3944 // 3944 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 632c: 7400 zextb r0, r0 + 632e: 6018 addu r0, r6 + 6330: 8060 ld.b r3, (r0, 0x0) + 6332: 6c4f mov r1, r3 + 6334: 6854 and r1, r5 + 6336: 9842 ld.w r2, (r14, 0x8) + 6338: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 633a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 633c: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 633e: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 6340: 310a movi r1, 10 + 6342: 6c1f mov r0, r7 + 6344: e3ffeb00 bsr 0x3944 // 3944 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6348: 7400 zextb r0, r0 + 634a: 6180 addu r6, r0 + 634c: 8660 ld.b r3, (r6, 0x0) + 634e: 694c and r5, r3 + 6350: 9840 ld.w r2, (r14, 0x0) + 6352: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6354: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6356: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6358: a47a st.b r3, (r4, 0x1a) +} + 635a: 1403 addi r14, r14, 12 + 635c: 1494 pop r4-r7, r15 + 635e: 0000 bkpt + 6360: 0000a036 .long 0x0000a036 + 6364: 20000564 .long 0x20000564 + +Disassembly of section .text.Set_Temp_Difference: + +00006368 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6368: 1057 lrw r2, 0x20000564 // 63c4 + HT1621.show_cache[10] &= 0x01; + 636a: 3101 movi r1, 1 + 636c: 8276 ld.b r3, (r2, 0x16) + 636e: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6370: 3ba1 bseti r3, 1 + 6372: 3ba2 bseti r3, 2 + 6374: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 6376: 330d movi r3, 13 + 6378: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 637a: 827f ld.b r3, (r2, 0x1f) + 637c: 68c4 and r3, r1 + 637e: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 6380: 3300 movi r3, 0 + 6382: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 6384: 827d ld.b r3, (r2, 0x1d) + 6386: 68c4 and r3, r1 + 6388: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 638a: 3300 movi r3, 0 + 638c: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 638e: 827b ld.b r3, (r2, 0x1b) + 6390: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 6392: 3300 movi r3, 0 + 6394: 2b08 subi r3, 9 + 6396: 60c0 addu r3, r0 + 6398: 74cc zextb r3, r3 + 639a: 3b09 cmphsi r3, 10 + 639c: 0c08 bf 0x63ac // 63ac + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 639e: 3808 cmphsi r0, 9 + 63a0: 0810 bt 0x63c0 // 63c0 + tmp_quantile = 9 - diff; + 63a2: 3309 movi r3, 9 + 63a4: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 63a6: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 63a8: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 63aa: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 63ac: 1007 lrw r0, 0xa036 // 63c8 + 63ae: 60c0 addu r3, r0 + 63b0: 8360 ld.b r3, (r3, 0x0) + 63b2: 4b04 lsri r0, r3, 4 + 63b4: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 63b6: 300f movi r0, 15 + 63b8: 68c0 and r3, r0 + 63ba: 6c4c or r1, r3 + 63bc: a23b st.b r1, (r2, 0x1b) +} + 63be: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 63c0: 3300 movi r3, 0 + 63c2: 07f5 br 0x63ac // 63ac + 63c4: 20000564 .long 0x20000564 + 63c8: 0000a036 .long 0x0000a036 + +Disassembly of section .text.HT1621_Refresh_Task: + +000063cc : + + +void HT1621_Refresh_Task(void){ + 63cc: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 63ce: 109e lrw r4, 0x200000c0 // 6444 + 63d0: 10be lrw r5, 0x20000564 // 6448 + 63d2: 9460 ld.w r3, (r4, 0x0) + 63d4: 954c ld.w r2, (r5, 0x30) + 63d6: 60ca subu r3, r2 + 63d8: 105d lrw r2, 0x1f3 // 644c + 63da: 64c8 cmphs r2, r3 + 63dc: 0806 bt 0x63e8 // 63e8 + HT1621.Refresh_timing = HT1621_Refresh_time; + 63de: 33fa movi r3, 250 + 63e0: 4361 lsli r3, r3, 1 + 63e2: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 63e4: e3fffbf8 bsr 0x5bd4 // 5bd4 +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 63e8: 107a lrw r3, 0x20000584 // 6450 + 63ea: 8344 ld.b r2, (r3, 0x4) + 63ec: 3a41 cmpnei r2, 1 + 63ee: 0824 bt 0x6436 // 6436 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 63f0: 952e ld.w r1, (r5, 0x38) + 63f2: 9440 ld.w r2, (r4, 0x0) + 63f4: 6086 subu r2, r1 + 63f6: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 63f8: 6484 cmphs r1, r2 + 63fa: 0808 bt 0x640a // 640a + HT1621.buz_tick = SysTick_1ms; + 63fc: 9440 ld.w r2, (r4, 0x0) + 63fe: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 6400: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 6402: 3200 movi r2, 0 + 6404: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 6406: e3fffb2d bsr 0x5a60 // 5a60 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 640a: 1053 lrw r2, 0x200005a4 // 6454 + 640c: 8202 ld.b r0, (r2, 0x2) + 640e: 1033 lrw r1, 0x200001a0 // 6458 + 6410: 4079 lsli r3, r0, 25 + 6412: 81ba ld.b r5, (r1, 0x1a) + 6414: 4b7d lsri r3, r3, 29 + 6416: 64d6 cmpne r5, r3 + 6418: 0c0e bf 0x6434 // 6434 + TempCtrl.BackLightTick = SysTick_1ms; + 641a: 9460 ld.w r3, (r4, 0x0) + 641c: 4b88 lsri r4, r3, 8 + 641e: a270 st.b r3, (r2, 0x10) + 6420: a291 st.b r4, (r2, 0x11) + 6422: 4b90 lsri r4, r3, 16 + 6424: 4b78 lsri r3, r3, 24 + 6426: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6428: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 642a: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 642c: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 642e: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6430: e3fffec8 bsr 0x61c0 // 61c0 + } + +} + 6434: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 6436: 3a42 cmpnei r2, 2 + 6438: 0be9 bt 0x640a // 640a + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 643a: 952e ld.w r1, (r5, 0x38) + 643c: 9440 ld.w r2, (r4, 0x0) + 643e: 6086 subu r2, r1 + 6440: 1023 lrw r1, 0x1f3 // 644c + 6442: 07db br 0x63f8 // 63f8 + 6444: 200000c0 .long 0x200000c0 + 6448: 20000564 .long 0x20000564 + 644c: 000001f3 .long 0x000001f3 + 6450: 20000584 .long 0x20000584 + 6454: 200005a4 .long 0x200005a4 + 6458: 200001a0 .long 0x200001a0 + +Disassembly of section .text.TemCtrl_Init: + +0000645c : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 645c: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 645e: 1299 lrw r4, 0x200005a4 // 65c0 + 6460: 3229 movi r2, 41 + 6462: 3100 movi r1, 0 + 6464: 6c13 mov r0, r4 + 6466: e3ffda9b bsr 0x199c // 199c <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 646a: 1277 lrw r3, 0x200000b4 // 65c4 + 646c: 9360 ld.w r3, (r3, 0x0) + 646e: 3b80 bclri r3, 0 + 6470: 3b40 cmpnei r3, 0 + 6472: 0ca0 bf 0x65b2 // 65b2 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 6474: 1235 lrw r1, 0xa3c2 // 65c8 + 6476: 3000 movi r0, 0 + 6478: e3ffecd2 bsr 0x3e1c // 3e1c + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 647c: 1274 lrw r3, 0x200000b0 // 65cc + 647e: 30ff movi r0, 255 + 6480: 9320 ld.w r1, (r3, 0x0) + 6482: 6840 and r1, r0 + 6484: 3940 cmpnei r1, 0 + 6486: 0c05 bf 0x6490 // 6490 + 6488: 9340 ld.w r2, (r3, 0x0) + 648a: 6880 and r2, r0 + 648c: 3a41 cmpnei r2, 1 + 648e: 0885 bt 0x6598 // 6598 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 6490: 9340 ld.w r2, (r3, 0x0) + 6492: 4227 lsli r1, r2, 7 + 6494: 307f movi r0, 127 + 6496: 8442 ld.b r2, (r4, 0x2) + 6498: 6880 and r2, r0 + 649a: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 649c: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 649e: 9340 ld.w r2, (r3, 0x0) + 64a0: 4a48 lsri r2, r2, 8 + 64a2: 30ff movi r0, 255 + 64a4: 6880 and r2, r0 + 64a6: 3a40 cmpnei r2, 0 + 64a8: 0c10 bf 0x64c8 // 64c8 + 64aa: 9340 ld.w r2, (r3, 0x0) + 64ac: 4a48 lsri r2, r2, 8 + 64ae: 6880 and r2, r0 + 64b0: 3a42 cmpnei r2, 2 + 64b2: 0c0b bf 0x64c8 // 64c8 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 64b4: 9320 ld.w r1, (r3, 0x0) + 64b6: 4928 lsri r1, r1, 8 + 64b8: 6840 and r1, r0 + 64ba: 3944 cmpnei r1, 4 + 64bc: 0c06 bf 0x64c8 // 64c8 + 64be: 9340 ld.w r2, (r3, 0x0) + 64c0: 4a48 lsri r2, r2, 8 + 64c2: 6880 and r2, r0 + 64c4: 3a46 cmpnei r2, 6 + 64c6: 086d bt 0x65a0 // 65a0 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 64c8: 9340 ld.w r2, (r3, 0x0) + 64ca: 3107 movi r1, 7 + 64cc: 4a48 lsri r2, r2, 8 + 64ce: 6884 and r2, r1 + 64d0: 3070 movi r0, 112 + 64d2: 8422 ld.b r1, (r4, 0x2) + 64d4: 4244 lsli r2, r2, 4 + 64d6: 6841 andn r1, r0 + 64d8: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 64da: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 64dc: 9340 ld.w r2, (r3, 0x0) + 64de: 4a50 lsri r2, r2, 16 + 64e0: 30ff movi r0, 255 + 64e2: 6880 and r2, r0 + 64e4: 3a41 cmpnei r2, 1 + 64e6: 0c10 bf 0x6506 // 6506 + 64e8: 9340 ld.w r2, (r3, 0x0) + 64ea: 4a50 lsri r2, r2, 16 + 64ec: 6880 and r2, r0 + 64ee: 3a42 cmpnei r2, 2 + 64f0: 0c0b bf 0x6506 // 6506 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 64f2: 9320 ld.w r1, (r3, 0x0) + 64f4: 4930 lsri r1, r1, 16 + 64f6: 6840 and r1, r0 + 64f8: 3943 cmpnei r1, 3 + 64fa: 0c06 bf 0x6506 // 6506 + 64fc: 9340 ld.w r2, (r3, 0x0) + 64fe: 4a50 lsri r2, r2, 16 + 6500: 6880 and r2, r0 + 6502: 3a40 cmpnei r2, 0 + 6504: 0852 bt 0x65a8 // 65a8 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 6506: 9340 ld.w r2, (r3, 0x0) + 6508: 3107 movi r1, 7 + 650a: 4a50 lsri r2, r2, 16 + 650c: 6884 and r2, r1 + 650e: 300e movi r0, 14 + 6510: 8422 ld.b r1, (r4, 0x2) + 6512: 4241 lsli r2, r2, 1 + 6514: 6841 andn r1, r0 + 6516: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 6518: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 651a: 9340 ld.w r2, (r3, 0x0) + 651c: 4a58 lsri r2, r2, 24 + 651e: 3a0f cmphsi r2, 16 + 6520: 0c05 bf 0x652a // 652a + 6522: 9340 ld.w r2, (r3, 0x0) + 6524: 4a58 lsri r2, r2, 24 + 6526: 3a1f cmphsi r2, 32 + 6528: 0c05 bf 0x6532 // 6532 + 652a: 9340 ld.w r2, (r3, 0x0) + 652c: 4a58 lsri r2, r2, 24 + 652e: 3a40 cmpnei r2, 0 + 6530: 0846 bt 0x65bc // 65bc + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 6532: 9360 ld.w r3, (r3, 0x0) + 6534: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 6536: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6538: e3fff3e4 bsr 0x4d00 // 4d00 + 653c: 1165 lrw r3, 0x200004f0 // 65d0 + 653e: 8362 ld.b r3, (r3, 0x2) + 6540: 320a movi r2, 10 + 6542: 7cc8 mult r3, r2 + 6544: 2b54 subi r3, 85 + 6546: 600c addu r0, r3 + 6548: 7401 zexth r0, r0 + 654a: 4868 lsri r3, r0, 8 + 654c: a469 st.b r3, (r4, 0x9) + 654e: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6550: 310a movi r1, 10 + 6552: e3ffe9d5 bsr 0x38fc // 38fc <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 6556: 3301 movi r3, 1 + 6558: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 655a: 3300 movi r3, 0 + 655c: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 655e: 3200 movi r2, 0 + 6560: 107d lrw r3, 0x2000005c // 65d4 + 6562: 9360 ld.w r3, (r3, 0x0) + 6564: 23ff addi r3, 256 + 6566: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6568: 8442 ld.b r2, (r4, 0x2) + 656a: 4239 lsli r1, r2, 25 + 656c: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 656e: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6570: 4128 lsli r1, r1, 8 + 6572: 9300 ld.w r0, (r3, 0x0) + 6574: 6c40 or r1, r0 + 6576: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6578: 423c lsli r1, r2, 28 + 657a: 493d lsri r1, r1, 29 + 657c: 9300 ld.w r0, (r3, 0x0) + 657e: 4130 lsli r1, r1, 16 + 6580: 6c40 or r1, r0 + 6582: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6584: 8421 ld.b r1, (r4, 0x1) + 6586: 9300 ld.w r0, (r3, 0x0) + 6588: 4138 lsli r1, r1, 24 + 658a: 6c40 or r1, r0 + 658c: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 658e: 9320 ld.w r1, (r3, 0x0) + 6590: 4a47 lsri r2, r2, 7 + 6592: 6c84 or r2, r1 + 6594: b340 st.w r2, (r3, 0x0) +} + 6596: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6598: 8442 ld.b r2, (r4, 0x2) + 659a: 317f movi r1, 127 + 659c: 6884 and r2, r1 + 659e: 077f br 0x649c // 649c + TempCtrl.TemState_Now.mode = MODEL_COLD; + 65a0: 8442 ld.b r2, (r4, 0x2) + 65a2: 3170 movi r1, 112 + 65a4: 6885 andn r2, r1 + 65a6: 079a br 0x64da // 64da + TempCtrl.TemState_Now.fan = FAN_MID; + 65a8: 8442 ld.b r2, (r4, 0x2) + 65aa: 310e movi r1, 14 + 65ac: 6885 andn r2, r1 + 65ae: 3aa2 bseti r2, 2 + 65b0: 07b4 br 0x6518 // 6518 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 65b2: 8462 ld.b r3, (r4, 0x2) + 65b4: 320e movi r2, 14 + 65b6: 68c9 andn r3, r2 + 65b8: 3ba2 bseti r3, 2 + 65ba: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 65bc: 3318 movi r3, 24 + 65be: 07bc br 0x6536 // 6536 + 65c0: 200005a4 .long 0x200005a4 + 65c4: 200000b4 .long 0x200000b4 + 65c8: 0000a3c2 .long 0x0000a3c2 + 65cc: 200000b0 .long 0x200000b0 + 65d0: 200004f0 .long 0x200004f0 + 65d4: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +000065d8 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 65d8: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 65da: 1031 lrw r1, 0x200005a4 // 661c + 65dc: 8162 ld.b r3, (r1, 0x2) + 65de: 748e sextb r2, r3 + 65e0: 3adf btsti r2, 31 + 65e2: 0c14 bf 0x660a // 660a + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 65e4: 4359 lsli r2, r3, 25 + 65e6: 4a5d lsri r2, r2, 29 + 65e8: 3a42 cmpnei r2, 2 + 65ea: 0c11 bf 0x660c // 660c + 65ec: 3a44 cmpnei r2, 4 + 65ee: 0c13 bf 0x6614 // 6614 + 65f0: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 65f2: 3270 movi r2, 112 + 65f4: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 65f6: 0802 bt 0x65fa // 65fa + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 65f8: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 65fa: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 65fc: 8142 ld.b r2, (r1, 0x2) + 65fe: 4259 lsli r2, r2, 25 + 6600: 4a5d lsri r2, r2, 29 + 6602: 1028 lrw r1, 0xa3db // 6620 + 6604: 3000 movi r0, 0 + 6606: e3ffec0b bsr 0x3e1c // 3e1c +} + 660a: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 660c: 3270 movi r2, 112 + 660e: 68c9 andn r3, r2 + 6610: 3ba6 bseti r3, 6 + 6612: 07f4 br 0x65fa // 65fa + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6614: 3270 movi r2, 112 + 6616: 68c9 andn r3, r2 + 6618: 07f1 br 0x65fa // 65fa + 661a: 0000 bkpt + 661c: 200005a4 .long 0x200005a4 + 6620: 0000a3db .long 0x0000a3db + +Disassembly of section .text.TemCtrl_Fan_Set: + +00006624 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 6624: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6626: 1072 lrw r3, 0x200005a4 // 666c + 6628: 8342 ld.b r2, (r3, 0x2) + 662a: 744a sextb r1, r2 + 662c: 39df btsti r1, 31 + 662e: 0c15 bf 0x6658 // 6658 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6630: 421c lsli r0, r2, 28 + 6632: 481d lsri r0, r0, 29 + 6634: 3803 cmphsi r0, 4 + 6636: 0817 bt 0x6664 // 6664 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6638: 8342 ld.b r2, (r3, 0x2) + 663a: 310e movi r1, 14 + 663c: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 663e: e3ffd35f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6642: 020f .short 0x020f + 6644: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 6646: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6648: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 664a: 8342 ld.b r2, (r3, 0x2) + 664c: 425c lsli r2, r2, 28 + 664e: 4a5d lsri r2, r2, 29 + 6650: 1028 lrw r1, 0xa3e4 // 6670 + 6652: 3000 movi r0, 0 + 6654: e3ffebe4 bsr 0x3e1c // 3e1c +} + 6658: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 665a: 3aa1 bseti r2, 1 + 665c: 3aa2 bseti r2, 2 + 665e: 07f5 br 0x6648 // 6648 + TempCtrl.TemState_Now.fan = FAN_LOW; + 6660: 3aa1 bseti r2, 1 + 6662: 07f3 br 0x6648 // 6648 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6664: 310e movi r1, 14 + 6666: 6885 andn r2, r1 + 6668: 07f0 br 0x6648 // 6648 + 666a: 0000 bkpt + 666c: 200005a4 .long 0x200005a4 + 6670: 0000a3e4 .long 0x0000a3e4 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00006674 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 6674: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6676: 106a lrw r3, 0x200005a4 // 669c + 6678: 8342 ld.b r2, (r3, 0x2) + 667a: 748a sextb r2, r2 + 667c: 3adf btsti r2, 31 + 667e: 0c0b bf 0x6694 // 6694 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6680: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 6682: 3a10 cmphsi r2, 17 + 6684: 0c09 bf 0x6696 // 6696 + { + TemSet--; //超过最低温度,就减 + 6686: 2a00 subi r2, 1 + 6688: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 668a: 1026 lrw r1, 0xa3eb // 66a0 + 668c: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 668e: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6690: e3ffebc6 bsr 0x3e1c // 3e1c +} + 6694: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 6696: 3210 movi r2, 16 + 6698: 07f9 br 0x668a // 668a + 669a: 0000 bkpt + 669c: 200005a4 .long 0x200005a4 + 66a0: 0000a3eb .long 0x0000a3eb + +Disassembly of section .text.TemCtrl_Temperature_Add: + +000066a4 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 66a4: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 66a6: 106a lrw r3, 0x200005a4 // 66cc + 66a8: 8342 ld.b r2, (r3, 0x2) + 66aa: 748a sextb r2, r2 + 66ac: 3adf btsti r2, 31 + 66ae: 0c0b bf 0x66c4 // 66c4 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 66b0: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 66b2: 3a1f cmphsi r2, 32 + 66b4: 0809 bt 0x66c6 // 66c6 + { + TemSet++; + 66b6: 2200 addi r2, 1 + 66b8: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 66ba: 1026 lrw r1, 0xa3f4 // 66d0 + 66bc: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 66be: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 66c0: e3ffebae bsr 0x3e1c // 3e1c +} + 66c4: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 66c6: 3220 movi r2, 32 + 66c8: 07f9 br 0x66ba // 66ba + 66ca: 0000 bkpt + 66cc: 200005a4 .long 0x200005a4 + 66d0: 0000a3f4 .long 0x0000a3f4 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +000066d4 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 66d4: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 66d6: 104b lrw r2, 0x200005a4 // 6700 + 66d8: 8262 ld.b r3, (r2, 0x2) + 66da: 4b27 lsri r1, r3, 7 + 66dc: 3940 cmpnei r1, 0 + 66de: 0c0d bf 0x66f8 // 66f8 + 66e0: 3941 cmpnei r1, 1 + 66e2: 080b bt 0x66f8 // 66f8 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 66e4: 317f movi r1, 127 + 66e6: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 66e8: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 66ea: 8242 ld.b r2, (r2, 0x2) + 66ec: 4a47 lsri r2, r2, 7 + 66ee: 1026 lrw r1, 0xa3f4 // 6704 + 66f0: 3000 movi r0, 0 + 66f2: e3ffeb95 bsr 0x3e1c // 3e1c +} + 66f6: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 66f8: 3100 movi r1, 0 + 66fa: 297f subi r1, 128 + 66fc: 6cc4 or r3, r1 + 66fe: 07f5 br 0x66e8 // 66e8 + 6700: 200005a4 .long 0x200005a4 + 6704: 0000a3f4 .long 0x0000a3f4 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00006708 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 6708: 14d1 push r4, r15 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 670a: 1130 lrw r1, 0x200005a4 // 67c8 + 670c: 8100 ld.b r0, (r1, 0x0) + 670e: 3840 cmpnei r0, 0 + 6710: 0802 bt 0x6714 // 6714 + 6712: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 6714: 8141 ld.b r2, (r1, 0x1) + 6716: 3a40 cmpnei r2, 0 + 6718: 0802 bt 0x671c // 671c + 671a: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 671c: 8162 ld.b r3, (r1, 0x2) + 671e: 4b87 lsri r4, r3, 7 + 6720: 3c40 cmpnei r4, 0 + 6722: 0c0f bf 0x6740 // 6740 + 6724: 3c41 cmpnei r4, 1 + 6726: 0850 bt 0x67c6 // 67c6 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 6728: 4399 lsli r4, r3, 25 + 672a: 4c9d lsri r4, r4, 29 + 672c: 3c42 cmpnei r4, 2 + 672e: 0c26 bf 0x677a // 677a + 6730: 3c44 cmpnei r4, 4 + 6732: 0c36 bf 0x679e // 679e + 6734: 3c40 cmpnei r4, 0 + 6736: 0848 bt 0x67c6 // 67c6 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6738: 5a83 subi r4, r2, 1 + 673a: 6501 cmplt r0, r4 + 673c: 0c05 bf 0x6746 // 6746 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 673e: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6740: 3b80 bclri r3, 0 + 6742: a162 st.b r3, (r1, 0x2) + 6744: 0419 br 0x6776 // 6776 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6746: 2200 addi r2, 1 + 6748: 6409 cmplt r2, r0 + 674a: 0c3e bf 0x67c6 // 67c6 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 674c: 3ba0 bseti r3, 0 + 674e: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6750: 107f lrw r3, 0x200004f0 // 67cc + 6752: 8361 ld.b r3, (r3, 0x1) + 6754: 3b41 cmpnei r3, 1 + 6756: 080a bt 0x676a // 676a + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6758: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 675a: 3000 movi r0, 0 + 675c: e0000752 bsr 0x7600 // 7600 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 6760: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6762: 3001 movi r0, 1 + 6764: e000074e bsr 0x7600 // 7600 + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 6768: 042f br 0x67c6 // 67c6 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 676a: 3b40 cmpnei r3, 0 + 676c: 0803 bt 0x6772 // 6772 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 676e: 3101 movi r1, 1 + 6770: 07f5 br 0x675a // 675a + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 6772: 3b42 cmpnei r3, 2 + 6774: 0829 bt 0x67c6 // 67c6 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6776: 3102 movi r1, 2 + 6778: 040e br 0x6794 // 6794 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 677a: 5a82 addi r4, r2, 1 + 677c: 6411 cmplt r4, r0 + 677e: 0be0 bt 0x673e // 673e + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6780: 2a00 subi r2, 1 + 6782: 6481 cmplt r0, r2 + 6784: 0c21 bf 0x67c6 // 67c6 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6786: 3ba0 bseti r3, 0 + 6788: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 678a: 1071 lrw r3, 0x200004f0 // 67cc + 678c: 8361 ld.b r3, (r3, 0x1) + 678e: 3b41 cmpnei r3, 1 + 6790: 0bed bt 0x676a // 676a + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6792: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6794: 3000 movi r0, 0 + 6796: e0000735 bsr 0x7600 // 7600 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 679a: 3102 movi r1, 2 + 679c: 07e3 br 0x6762 // 6762 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 679e: 3b80 bclri r3, 0 + 67a0: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 67a2: 3000 movi r0, 0 + 67a4: 3102 movi r1, 2 + 67a6: e000072d bsr 0x7600 // 7600 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 67aa: 3102 movi r1, 2 + 67ac: 3001 movi r0, 1 + 67ae: e0000729 bsr 0x7600 // 7600 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 67b2: 1067 lrw r3, 0x200004f0 // 67cc + 67b4: 8361 ld.b r3, (r3, 0x1) + 67b6: 3b42 cmpnei r3, 2 + 67b8: 0807 bt 0x67c6 // 67c6 + Relay_Stop(); + 67ba: e0000715 bsr 0x75e4 // 75e4 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 67be: 1025 lrw r1, 0xa402 // 67d0 + 67c0: 3000 movi r0, 0 + 67c2: e3ffeb2d bsr 0x3e1c // 3e1c +} + 67c6: 1491 pop r4, r15 + 67c8: 200005a4 .long 0x200005a4 + 67cc: 200004f0 .long 0x200004f0 + 67d0: 0000a402 .long 0x0000a402 + +Disassembly of section .text.TemCtrl_Pro: + +000067d4 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 67d4: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 67d6: 1218 lrw r0, 0x200000c0 // 6934 + 67d8: 1238 lrw r1, 0x20000230 // 6938 + 67da: 9040 ld.w r2, (r0, 0x0) + 67dc: 9160 ld.w r3, (r1, 0x0) + 67de: 608e subu r2, r3 + 67e0: 33fa movi r3, 250 + 67e2: 4362 lsli r3, r3, 2 + 67e4: 648c cmphs r3, r2 + 67e6: 083b bt 0x685c // 685c + { + tick = SysTick_1ms; + 67e8: 9060 ld.w r3, (r0, 0x0) + 67ea: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 67ec: 360a movi r6, 10 + 67ee: 12b4 lrw r5, 0x200004f0 // 693c + 67f0: e3fff288 bsr 0x4d00 // 4d00 + 67f4: 8542 ld.b r2, (r5, 0x2) + 67f6: 7c98 mult r2, r6 + 67f8: 2a54 subi r2, 85 + 67fa: 6080 addu r2, r0 + 67fc: 7589 zexth r6, r2 + 67fe: 1291 lrw r4, 0x200005a4 // 6940 + 6800: 7498 zextb r2, r6 + 6802: 4e68 lsri r3, r6, 8 + 6804: a448 st.b r2, (r4, 0x8) + 6806: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 6808: a44c st.b r2, (r4, 0xc) + 680a: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 680c: 310a movi r1, 10 + 680e: 6c1b mov r0, r6 + 6810: e3ffe876 bsr 0x38fc // 38fc <__udivsi3> + 6814: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6816: 6c9b mov r2, r6 + 6818: 122b lrw r1, 0xa40b // 6944 + 681a: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 681c: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 681e: e3ffeaff bsr 0x3e1c // 3e1c + + Tem_Valve_Ctrl(); + 6822: e3ffff73 bsr 0x6708 // 6708 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 6826: 8442 ld.b r2, (r4, 0x2) + 6828: 74c8 zextb r3, r2 + 682a: 3171 movi r1, 113 + 682c: 6c0f mov r0, r3 + 682e: 6805 andn r0, r1 + 6830: 3180 movi r1, 128 + 6832: 6442 cmpne r0, r1 + 6834: 083d bt 0x68ae // 68ae + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6836: 3270 movi r2, 112 + 6838: 68c8 and r3, r2 + 683a: 3b40 cmpnei r3, 0 + 683c: 0827 bt 0x688a // 688a + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 683e: 8461 ld.b r3, (r4, 0x1) + 6840: 8440 ld.b r2, (r4, 0x0) + 6842: 5b27 subi r1, r3, 2 + 6844: 6449 cmplt r2, r1 + 6846: 0c0c bf 0x685e // 685e + { + Relay_Stop(); //低风速 + 6848: e00006ce bsr 0x75e4 // 75e4 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 684c: 117f lrw r3, 0x20000564 // 6948 + 684e: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6850: 8402 ld.b r0, (r4, 0x2) + 6852: 401c lsli r0, r0, 28 + 6854: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 6856: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6858: e3fffbd6 bsr 0x6004 // 6004 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 685c: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 685e: 5b23 subi r1, r3, 1 + 6860: 644a cmpne r2, r1 + 6862: 0804 bt 0x686a // 686a + Relay_Low(); //低风速 + 6864: e00006b2 bsr 0x75c8 // 75c8 + 6868: 07f2 br 0x684c // 684c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 686a: 5b22 addi r1, r3, 1 + 686c: 644a cmpne r2, r1 + 686e: 0806 bt 0x687a // 687a + Relay_Mid(); //中风速 + 6870: e000069e bsr 0x75ac // 75ac + HT1621.wind_velocity = 1; + 6874: 1175 lrw r3, 0x20000564 // 6948 + 6876: 3201 movi r2, 1 + 6878: 07ec br 0x6850 // 6850 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 687a: 2301 addi r3, 2 + 687c: 648d cmplt r3, r2 + 687e: 0fef bf 0x685c // 685c + Relay_High(); //高风速 + 6880: e0000688 bsr 0x7590 // 7590 + HT1621.wind_velocity = 2; + 6884: 1171 lrw r3, 0x20000564 // 6948 + 6886: 3202 movi r2, 2 + 6888: 07e4 br 0x6850 // 6850 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 688a: 3220 movi r2, 32 + 688c: 648e cmpne r3, r2 + 688e: 0be7 bt 0x685c // 685c + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6890: 8461 ld.b r3, (r4, 0x1) + 6892: 8440 ld.b r2, (r4, 0x0) + 6894: 5b27 subi r1, r3, 2 + 6896: 6449 cmplt r2, r1 + 6898: 0bf4 bt 0x6880 // 6880 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 689a: 5b23 subi r1, r3, 1 + 689c: 644a cmpne r2, r1 + 689e: 0fe9 bf 0x6870 // 6870 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 68a0: 5b22 addi r1, r3, 1 + 68a2: 644a cmpne r2, r1 + 68a4: 0fe0 bf 0x6864 // 6864 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 68a6: 2301 addi r3, 2 + 68a8: 648d cmplt r3, r2 + 68aa: 0fd9 bf 0x685c // 685c + 68ac: 07ce br 0x6848 // 6848 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 68ae: 8521 ld.b r1, (r5, 0x1) + 68b0: 3942 cmpnei r1, 2 + 68b2: 744e sextb r1, r3 + 68b4: 083a bt 0x6928 // 6928 + 68b6: 39df btsti r1, 31 + 68b8: 0c38 bf 0x6928 // 6928 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 68ba: 310e movi r1, 14 + 68bc: 684c and r1, r3 + 68be: 3940 cmpnei r1, 0 + 68c0: 0fce bf 0x685c // 685c + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 68c2: 3170 movi r1, 112 + 68c4: 68c4 and r3, r1 + 68c6: 3b40 cmpnei r3, 0 + 68c8: 0819 bt 0x68fa // 68fa + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 68ca: 8461 ld.b r3, (r4, 0x1) + 68cc: 8420 ld.b r1, (r4, 0x0) + 68ce: 5b07 subi r0, r3, 2 + 68d0: 6405 cmplt r1, r0 + 68d2: 0bbb bt 0x6848 // 6848 + switch(TempCtrl.TemState_Now.fan) + 68d4: 425c lsli r2, r2, 28 + 68d6: 4a5d lsri r2, r2, 29 + 68d8: 3a42 cmpnei r2, 2 + 68da: 0c09 bf 0x68ec // 68ec + 68dc: 3a43 cmpnei r2, 3 + 68de: 0c0b bf 0x68f4 // 68f4 + 68e0: 3a41 cmpnei r2, 1 + 68e2: 0bbd bt 0x685c // 685c + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 68e4: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 68e6: 64c6 cmpne r1, r3 + 68e8: 0bba bt 0x685c // 685c + 68ea: 07bd br 0x6864 // 6864 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 68ec: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 68ee: 64c6 cmpne r1, r3 + 68f0: 0bb6 bt 0x685c // 685c + 68f2: 07bf br 0x6870 // 6870 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 68f4: 2301 addi r3, 2 + 68f6: 644d cmplt r3, r1 + 68f8: 07c3 br 0x687e // 687e + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 68fa: 3120 movi r1, 32 + 68fc: 644e cmpne r3, r1 + 68fe: 0baf bt 0x685c // 685c + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6900: 8461 ld.b r3, (r4, 0x1) + 6902: 8420 ld.b r1, (r4, 0x0) + 6904: 5b06 addi r0, r3, 2 + 6906: 6441 cmplt r0, r1 + 6908: 0ba0 bt 0x6848 // 6848 + switch(TempCtrl.TemState_Now.fan) + 690a: 425c lsli r2, r2, 28 + 690c: 4a5d lsri r2, r2, 29 + 690e: 3a42 cmpnei r2, 2 + 6910: 0c07 bf 0x691e // 691e + 6912: 3a43 cmpnei r2, 3 + 6914: 0c07 bf 0x6922 // 6922 + 6916: 3a41 cmpnei r2, 1 + 6918: 0ba2 bt 0x685c // 685c + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 691a: 2300 addi r3, 1 + 691c: 07e5 br 0x68e6 // 68e6 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 691e: 2b00 subi r3, 1 + 6920: 07e7 br 0x68ee // 68ee + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6922: 2b01 subi r3, 2 + 6924: 64c5 cmplt r1, r3 + 6926: 07ac br 0x687e // 687e + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6928: 39df btsti r1, 31 + 692a: 0b99 bt 0x685c // 685c + Relay_Stop(); //风速停 + 692c: e000065c bsr 0x75e4 // 75e4 + 6930: 0796 br 0x685c // 685c + 6932: 0000 bkpt + 6934: 200000c0 .long 0x200000c0 + 6938: 20000230 .long 0x20000230 + 693c: 200004f0 .long 0x200004f0 + 6940: 200005a4 .long 0x200005a4 + 6944: 0000a40b .long 0x0000a40b + 6948: 20000564 .long 0x20000564 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +0000694c : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 694c: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 694e: 1133 lrw r1, 0xa433 // 6a18 + 6950: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6952: 1193 lrw r4, 0x200005cd // 6a1c + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 6954: e3ffea64 bsr 0x3e1c // 3e1c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6958: 8460 ld.b r3, (r4, 0x0) + 695a: 3b41 cmpnei r3, 1 + 695c: 11b1 lrw r5, 0x200000c0 // 6a20 + 695e: 083e bt 0x69da // 69da + { + Debug_Inf.Tick = SysTick_1ms; + 6960: 9560 ld.w r3, (r5, 0x0) + 6962: 320a movi r2, 10 + 6964: 6090 addu r2, r4 + 6966: 4b28 lsri r1, r3, 8 + 6968: a260 st.b r3, (r2, 0x0) + 696a: a221 st.b r1, (r2, 0x1) + 696c: 4b30 lsri r1, r3, 16 + 696e: 4b78 lsri r3, r3, 24 + 6970: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page < PAGE8ID) + 6972: 8462 ld.b r3, (r4, 0x2) + 6974: 3b07 cmphsi r3, 8 + Debug_Inf.Tick = SysTick_1ms; + 6976: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page < PAGE8ID) + 6978: 0803 bt 0x697e // 697e + { + Debug_Inf.Page++; + 697a: 2300 addi r3, 1 + 697c: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 697e: e3fff8e3 bsr 0x5b44 // 5b44 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 6982: 8462 ld.b r3, (r4, 0x2) + 6984: 3b42 cmpnei r3, 2 + 6986: 0805 bt 0x6990 // 6990 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 6988: 8405 ld.b r0, (r4, 0x5) + 698a: e3fffcef bsr 0x6368 // 6368 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 698e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 6990: 3b41 cmpnei r3, 1 + 6992: 0806 bt 0x699e // 699e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6994: 8424 ld.b r1, (r4, 0x4) + 6996: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6998: e3fffc9a bsr 0x62cc // 62cc + 699c: 07f9 br 0x698e // 698e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 699e: 3b43 cmpnei r3, 3 + 69a0: 0804 bt 0x69a8 // 69a8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 69a2: 8426 ld.b r1, (r4, 0x6) + 69a4: 3003 movi r0, 3 + 69a6: 07f9 br 0x6998 // 6998 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 69a8: 3b44 cmpnei r3, 4 + 69aa: 0804 bt 0x69b2 // 69b2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 69ac: 8427 ld.b r1, (r4, 0x7) + 69ae: 3004 movi r0, 4 + 69b0: 07f4 br 0x6998 // 6998 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 69b2: 3b45 cmpnei r3, 5 + 69b4: 0804 bt 0x69bc // 69bc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 69b6: 8423 ld.b r1, (r4, 0x3) + 69b8: 3005 movi r0, 5 + 69ba: 07ef br 0x6998 // 6998 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 69bc: 3b46 cmpnei r3, 6 + 69be: 0804 bt 0x69c6 // 69c6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 69c0: 8428 ld.b r1, (r4, 0x8) + 69c2: 3006 movi r0, 6 + 69c4: 07ea br 0x6998 // 6998 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 69c6: 3b47 cmpnei r3, 7 + 69c8: 0804 bt 0x69d0 // 69d0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 69ca: 8429 ld.b r1, (r4, 0x9) + 69cc: 3007 movi r0, 7 + 69ce: 07e5 br 0x6998 // 6998 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 69d0: 3b48 cmpnei r3, 8 + 69d2: 0bde bt 0x698e // 698e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 69d4: 3102 movi r1, 2 + 69d6: 3008 movi r0, 8 + 69d8: 07e0 br 0x6998 // 6998 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 69da: 1073 lrw r3, 0x200005a4 // 6a24 + 69dc: 8358 ld.b r2, (r3, 0x18) + 69de: 3a41 cmpnei r2, 1 + 69e0: 6d0f mov r4, r3 + 69e2: 0811 bt 0x6a04 // 6a04 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 69e4: 8362 ld.b r3, (r3, 0x2) + 69e6: 74ce sextb r3, r3 + 69e8: 3bdf btsti r3, 31 + 69ea: 0c0d bf 0x6a04 // 6a04 + TemCtrl_Model_Set(); //模式切换 + 69ec: e3fffdf6 bsr 0x65d8 // 65d8 + if(g_eeprom.backlight_en == 0x01) + 69f0: 106e lrw r3, 0x200004f0 // 6a28 + 69f2: 8364 ld.b r3, (r3, 0x4) + 69f4: 3b41 cmpnei r3, 1 + 69f6: 0807 bt 0x6a04 // 6a04 + Controlled_LCD_Backlight(0x01); + 69f8: 3001 movi r0, 1 + 69fa: e3fffbe3 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 69fe: 3001 movi r0, 1 + 6a00: e3fffc4e bsr 0x629c // 629c + TempCtrl.BackLightTick = SysTick_1ms; + 6a04: 9560 ld.w r3, (r5, 0x0) + 6a06: 4b48 lsri r2, r3, 8 + 6a08: a470 st.b r3, (r4, 0x10) + 6a0a: a451 st.b r2, (r4, 0x11) + 6a0c: 4b50 lsri r2, r3, 16 + 6a0e: 4b78 lsri r3, r3, 24 + 6a10: a452 st.b r2, (r4, 0x12) + 6a12: a473 st.b r3, (r4, 0x13) +} + 6a14: 07bd br 0x698e // 698e + 6a16: 0000 bkpt + 6a18: 0000a433 .long 0x0000a433 + 6a1c: 200005cd .long 0x200005cd + 6a20: 200000c0 .long 0x200000c0 + 6a24: 200005a4 .long 0x200005a4 + 6a28: 200004f0 .long 0x200004f0 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +00006a2c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 6a2c: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6a2e: 1133 lrw r1, 0xa448 // 6af8 + 6a30: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6a32: 1193 lrw r4, 0x200005cd // 6afc + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6a34: e3ffe9f4 bsr 0x3e1c // 3e1c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6a38: 8460 ld.b r3, (r4, 0x0) + 6a3a: 3b41 cmpnei r3, 1 + 6a3c: 11b1 lrw r5, 0x200000c0 // 6b00 + 6a3e: 083e bt 0x6aba // 6aba + { + Debug_Inf.Tick = SysTick_1ms; + 6a40: 9560 ld.w r3, (r5, 0x0) + 6a42: 320a movi r2, 10 + 6a44: 6090 addu r2, r4 + 6a46: 4b28 lsri r1, r3, 8 + 6a48: a260 st.b r3, (r2, 0x0) + 6a4a: a221 st.b r1, (r2, 0x1) + 6a4c: 4b30 lsri r1, r3, 16 + 6a4e: 4b78 lsri r3, r3, 24 + 6a50: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page > PAGE1ID) + 6a52: 8462 ld.b r3, (r4, 0x2) + 6a54: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 6a56: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page > PAGE1ID) + 6a58: 0c03 bf 0x6a5e // 6a5e + { + Debug_Inf.Page--; + 6a5a: 2b00 subi r3, 1 + 6a5c: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 6a5e: e3fff873 bsr 0x5b44 // 5b44 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 6a62: 8462 ld.b r3, (r4, 0x2) + 6a64: 3b42 cmpnei r3, 2 + 6a66: 0805 bt 0x6a70 // 6a70 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 6a68: 8405 ld.b r0, (r4, 0x5) + 6a6a: e3fffc7f bsr 0x6368 // 6368 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 6a6e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 6a70: 3b41 cmpnei r3, 1 + 6a72: 0806 bt 0x6a7e // 6a7e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6a74: 8424 ld.b r1, (r4, 0x4) + 6a76: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6a78: e3fffc2a bsr 0x62cc // 62cc + 6a7c: 07f9 br 0x6a6e // 6a6e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 6a7e: 3b43 cmpnei r3, 3 + 6a80: 0804 bt 0x6a88 // 6a88 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6a82: 8426 ld.b r1, (r4, 0x6) + 6a84: 3003 movi r0, 3 + 6a86: 07f9 br 0x6a78 // 6a78 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 6a88: 3b44 cmpnei r3, 4 + 6a8a: 0804 bt 0x6a92 // 6a92 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6a8c: 8427 ld.b r1, (r4, 0x7) + 6a8e: 3004 movi r0, 4 + 6a90: 07f4 br 0x6a78 // 6a78 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 6a92: 3b45 cmpnei r3, 5 + 6a94: 0804 bt 0x6a9c // 6a9c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6a96: 8423 ld.b r1, (r4, 0x3) + 6a98: 3005 movi r0, 5 + 6a9a: 07ef br 0x6a78 // 6a78 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 6a9c: 3b46 cmpnei r3, 6 + 6a9e: 0804 bt 0x6aa6 // 6aa6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6aa0: 8428 ld.b r1, (r4, 0x8) + 6aa2: 3006 movi r0, 6 + 6aa4: 07ea br 0x6a78 // 6a78 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 6aa6: 3b47 cmpnei r3, 7 + 6aa8: 0804 bt 0x6ab0 // 6ab0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6aaa: 8429 ld.b r1, (r4, 0x9) + 6aac: 3007 movi r0, 7 + 6aae: 07e5 br 0x6a78 // 6a78 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 6ab0: 3b48 cmpnei r3, 8 + 6ab2: 0bde bt 0x6a6e // 6a6e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6ab4: 3102 movi r1, 2 + 6ab6: 3008 movi r0, 8 + 6ab8: 07e0 br 0x6a78 // 6a78 + if(TempCtrl.CardState == CARDIN) + 6aba: 1073 lrw r3, 0x200005a4 // 6b04 + 6abc: 8358 ld.b r2, (r3, 0x18) + 6abe: 3a41 cmpnei r2, 1 + 6ac0: 6d0f mov r4, r3 + 6ac2: 0811 bt 0x6ae4 // 6ae4 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6ac4: 8362 ld.b r3, (r3, 0x2) + 6ac6: 74ce sextb r3, r3 + 6ac8: 3bdf btsti r3, 31 + 6aca: 0c0d bf 0x6ae4 // 6ae4 + TemCtrl_Fan_Set(); //风速切换 + 6acc: e3fffdac bsr 0x6624 // 6624 + if(g_eeprom.backlight_en == 0x01) + 6ad0: 106e lrw r3, 0x200004f0 // 6b08 + 6ad2: 8364 ld.b r3, (r3, 0x4) + 6ad4: 3b41 cmpnei r3, 1 + 6ad6: 0807 bt 0x6ae4 // 6ae4 + Controlled_LCD_Backlight(0x01); + 6ad8: 3001 movi r0, 1 + 6ada: e3fffb73 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 6ade: 3001 movi r0, 1 + 6ae0: e3fffbde bsr 0x629c // 629c + TempCtrl.BackLightTick = SysTick_1ms; + 6ae4: 9560 ld.w r3, (r5, 0x0) + 6ae6: 4b48 lsri r2, r3, 8 + 6ae8: a470 st.b r3, (r4, 0x10) + 6aea: a451 st.b r2, (r4, 0x11) + 6aec: 4b50 lsri r2, r3, 16 + 6aee: 4b78 lsri r3, r3, 24 + 6af0: a452 st.b r2, (r4, 0x12) + 6af2: a473 st.b r3, (r4, 0x13) +} + 6af4: 07bd br 0x6a6e // 6a6e + 6af6: 0000 bkpt + 6af8: 0000a448 .long 0x0000a448 + 6afc: 200005cd .long 0x200005cd + 6b00: 200000c0 .long 0x200000c0 + 6b04: 200005a4 .long 0x200005a4 + 6b08: 200004f0 .long 0x200004f0 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00006b0c : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 6b0c: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 6b0e: 113f lrw r1, 0xa45b // 6c08 + 6b10: 3000 movi r0, 0 + 6b12: e3ffe985 bsr 0x3e1c // 3e1c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6b16: 117e lrw r3, 0x200005cd // 6c0c + 6b18: 8340 ld.b r2, (r3, 0x0) + 6b1a: 3a41 cmpnei r2, 1 + 6b1c: 11bd lrw r5, 0x200000c0 // 6c10 + 6b1e: 0858 bt 0x6bce // 6bce + { + Debug_Inf.Tick = SysTick_1ms; + 6b20: 9540 ld.w r2, (r5, 0x0) + 6b22: 310a movi r1, 10 + 6b24: 604c addu r1, r3 + 6b26: 4a08 lsri r0, r2, 8 + 6b28: a140 st.b r2, (r1, 0x0) + 6b2a: a101 st.b r0, (r1, 0x1) + 6b2c: 4a10 lsri r0, r2, 16 + 6b2e: 4a58 lsri r2, r2, 24 + 6b30: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 6b32: 8342 ld.b r2, (r3, 0x2) + 6b34: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 6b36: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 6b38: 080b bt 0x6b4e // 6b4e + 6b3a: 8324 ld.b r1, (r3, 0x4) + 6b3c: 3901 cmphsi r1, 2 + 6b3e: 0812 bt 0x6b62 // 6b62 + { + Debug_Inf.PipeFlag ++; + 6b40: 2100 addi r1, 1 + 6b42: 7444 zextb r1, r1 + 6b44: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6b46: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6b48: e3fffbc2 bsr 0x62cc // 62cc + 6b4c: 040b br 0x6b62 // 6b62 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 6b4e: 3a42 cmpnei r2, 2 + 6b50: 080a bt 0x6b64 // 6b64 + 6b52: 8305 ld.b r0, (r3, 0x5) + 6b54: 3811 cmphsi r0, 18 + 6b56: 0806 bt 0x6b62 // 6b62 + Debug_Inf.TempDiff++; + 6b58: 2000 addi r0, 1 + 6b5a: 7400 zextb r0, r0 + 6b5c: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 6b5e: e3fffc05 bsr 0x6368 // 6368 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 6b62: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 6b64: 3a43 cmpnei r2, 3 + 6b66: 0806 bt 0x6b72 // 6b72 + Debug_Inf.BackLight_En = 0x01; + 6b68: 3201 movi r2, 1 + 6b6a: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6b6c: 3101 movi r1, 1 + 6b6e: 3003 movi r0, 3 + 6b70: 07ec br 0x6b48 // 6b48 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 6b72: 3a44 cmpnei r2, 4 + 6b74: 0809 bt 0x6b86 // 6b86 + 6b76: 8327 ld.b r1, (r3, 0x7) + 6b78: 3901 cmphsi r1, 2 + 6b7a: 0bf4 bt 0x6b62 // 6b62 + Debug_Inf.KSens_Level++; + 6b7c: 2100 addi r1, 1 + 6b7e: 7444 zextb r1, r1 + 6b80: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6b82: 3004 movi r0, 4 + 6b84: 07e2 br 0x6b48 // 6b48 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 6b86: 3a45 cmpnei r2, 5 + 6b88: 080a bt 0x6b9c // 6b9c + 6b8a: 8323 ld.b r1, (r3, 0x3) + 6b8c: 32ff movi r2, 255 + 6b8e: 6486 cmpne r1, r2 + 6b90: 0fe9 bf 0x6b62 // 6b62 + Debug_Inf.DevAddr++; //刷新地址 + 6b92: 2100 addi r1, 1 + 6b94: 7444 zextb r1, r1 + 6b96: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6b98: 3005 movi r0, 5 + 6b9a: 07d7 br 0x6b48 // 6b48 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 6b9c: 3a46 cmpnei r2, 6 + 6b9e: 0809 bt 0x6bb0 // 6bb0 + 6ba0: 8348 ld.b r2, (r3, 0x8) + 6ba2: 3a40 cmpnei r2, 0 + 6ba4: 0bdf bt 0x6b62 // 6b62 + Debug_Inf.TempDisplay++; + 6ba6: 3201 movi r2, 1 + 6ba8: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6baa: 3101 movi r1, 1 + 6bac: 3006 movi r0, 6 + 6bae: 07cd br 0x6b48 // 6b48 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 6bb0: 3a47 cmpnei r2, 7 + 6bb2: 0809 bt 0x6bc4 // 6bc4 + 6bb4: 8329 ld.b r1, (r3, 0x9) + 6bb6: 3901 cmphsi r1, 2 + 6bb8: 0bd5 bt 0x6b62 // 6b62 + Debug_Inf.Language_Selection++; + 6bba: 2100 addi r1, 1 + 6bbc: 7444 zextb r1, r1 + 6bbe: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6bc0: 3007 movi r0, 7 + 6bc2: 07c3 br 0x6b48 // 6b48 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 6bc4: 3a48 cmpnei r2, 8 + 6bc6: 0bce bt 0x6b62 // 6b62 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6bc8: 3102 movi r1, 2 + 6bca: 3008 movi r0, 8 + 6bcc: 07be br 0x6b48 // 6b48 + if(TempCtrl.CardState == CARDIN) + 6bce: 1092 lrw r4, 0x200005a4 // 6c14 + 6bd0: 8478 ld.b r3, (r4, 0x18) + 6bd2: 3b41 cmpnei r3, 1 + 6bd4: 0811 bt 0x6bf6 // 6bf6 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6bd6: 8462 ld.b r3, (r4, 0x2) + 6bd8: 74ce sextb r3, r3 + 6bda: 3bdf btsti r3, 31 + 6bdc: 0c0d bf 0x6bf6 // 6bf6 + TemCtrl_Temperature_Add(); //设置温度+ + 6bde: e3fffd63 bsr 0x66a4 // 66a4 + if(g_eeprom.backlight_en == 0x01) + 6be2: 106e lrw r3, 0x200004f0 // 6c18 + 6be4: 8364 ld.b r3, (r3, 0x4) + 6be6: 3b41 cmpnei r3, 1 + 6be8: 0807 bt 0x6bf6 // 6bf6 + Controlled_LCD_Backlight(0x01); + 6bea: 3001 movi r0, 1 + 6bec: e3fffaea bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 6bf0: 3001 movi r0, 1 + 6bf2: e3fffb55 bsr 0x629c // 629c + TempCtrl.BackLightTick = SysTick_1ms; + 6bf6: 9560 ld.w r3, (r5, 0x0) + 6bf8: 4b48 lsri r2, r3, 8 + 6bfa: a470 st.b r3, (r4, 0x10) + 6bfc: a451 st.b r2, (r4, 0x11) + 6bfe: 4b50 lsri r2, r3, 16 + 6c00: 4b78 lsri r3, r3, 24 + 6c02: a452 st.b r2, (r4, 0x12) + 6c04: a473 st.b r3, (r4, 0x13) +} + 6c06: 07ae br 0x6b62 // 6b62 + 6c08: 0000a45b .long 0x0000a45b + 6c0c: 200005cd .long 0x200005cd + 6c10: 200000c0 .long 0x200000c0 + 6c14: 200005a4 .long 0x200005a4 + 6c18: 200004f0 .long 0x200004f0 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00006c1c : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 6c1c: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 6c1e: 109a lrw r4, 0x200005cd // 6c84 + 6c20: 8460 ld.b r3, (r4, 0x0) + 6c22: 3b40 cmpnei r3, 0 + 6c24: 082e bt 0x6c80 // 6c80 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 6c26: 8461 ld.b r3, (r4, 0x1) + 6c28: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6c2a: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 6c2c: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6c2e: 0829 bt 0x6c80 // 6c80 + 6c30: 1076 lrw r3, 0x200005a4 // 6c88 + 6c32: 8362 ld.b r3, (r3, 0x2) + 6c34: 74ce sextb r3, r3 + 6c36: 3bdf btsti r3, 31 + 6c38: 0824 bt 0x6c80 // 6c80 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 6c3a: 3000 movi r0, 0 + 6c3c: 1034 lrw r1, 0xa472 // 6c8c + 6c3e: e3ffe8ef bsr 0x3e1c // 3e1c + Debug_Inf.Tick = SysTick_1ms; + 6c42: 1074 lrw r3, 0x200000c0 // 6c90 + 6c44: 320a movi r2, 10 + 6c46: 9360 ld.w r3, (r3, 0x0) + 6c48: 6090 addu r2, r4 + 6c4a: 4b28 lsri r1, r3, 8 + 6c4c: a260 st.b r3, (r2, 0x0) + 6c4e: a221 st.b r1, (r2, 0x1) + 6c50: 4b30 lsri r1, r3, 16 + 6c52: 4b78 lsri r3, r3, 24 + 6c54: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 6c56: 3300 movi r3, 0 + 6c58: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 6c5a: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 6c5c: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 6c5e: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6c60: a462 st.b r3, (r4, 0x2) + //Debug_Inf.Renetwork = 0; + + HT1621_Clear(); + 6c62: e3fff771 bsr 0x5b44 // 5b44 + Controlled_LCD_Backlight(0x01); + 6c66: 3001 movi r0, 1 + 6c68: e3fffaac bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 6c6c: 3001 movi r0, 1 + 6c6e: e3fffb17 bsr 0x629c // 629c + Controlled_Buzzer(0x01); + 6c72: 3001 movi r0, 1 + 6c74: e3fffa82 bsr 0x6178 // 6178 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 6c78: 8424 ld.b r1, (r4, 0x4) + 6c7a: 3001 movi r0, 1 + 6c7c: e3fffb28 bsr 0x62cc // 62cc + + } + } + +} + 6c80: 1491 pop r4, r15 + 6c82: 0000 bkpt + 6c84: 200005cd .long 0x200005cd + 6c88: 200005a4 .long 0x200005a4 + 6c8c: 0000a472 .long 0x0000a472 + 6c90: 200000c0 .long 0x200000c0 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00006c94 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 6c94: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 6c96: 113f lrw r1, 0xa47b // 6d90 + 6c98: 3000 movi r0, 0 + 6c9a: e3ffe8c1 bsr 0x3e1c // 3e1c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6c9e: 117e lrw r3, 0x200005cd // 6d94 + 6ca0: 8340 ld.b r2, (r3, 0x0) + 6ca2: 3a41 cmpnei r2, 1 + 6ca4: 11bd lrw r5, 0x200000c0 // 6d98 + 6ca6: 0857 bt 0x6d54 // 6d54 + { + Debug_Inf.Tick = SysTick_1ms; + 6ca8: 9540 ld.w r2, (r5, 0x0) + 6caa: 310a movi r1, 10 + 6cac: 604c addu r1, r3 + 6cae: 4a08 lsri r0, r2, 8 + 6cb0: a140 st.b r2, (r1, 0x0) + 6cb2: a101 st.b r0, (r1, 0x1) + 6cb4: 4a10 lsri r0, r2, 16 + 6cb6: 4a58 lsri r2, r2, 24 + 6cb8: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 6cba: 8342 ld.b r2, (r3, 0x2) + 6cbc: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 6cbe: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 6cc0: 080b bt 0x6cd6 // 6cd6 + 6cc2: 8324 ld.b r1, (r3, 0x4) + 6cc4: 3940 cmpnei r1, 0 + 6cc6: 0c12 bf 0x6cea // 6cea + { + Debug_Inf.PipeFlag --; + 6cc8: 2900 subi r1, 1 + 6cca: 7444 zextb r1, r1 + 6ccc: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6cce: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6cd0: e3fffafe bsr 0x62cc // 62cc + 6cd4: 040b br 0x6cea // 6cea + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 6cd6: 3a42 cmpnei r2, 2 + 6cd8: 080a bt 0x6cec // 6cec + 6cda: 8305 ld.b r0, (r3, 0x5) + 6cdc: 3840 cmpnei r0, 0 + 6cde: 0c06 bf 0x6cea // 6cea + Debug_Inf.TempDiff--; + 6ce0: 2800 subi r0, 1 + 6ce2: 7400 zextb r0, r0 + 6ce4: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 6ce6: e3fffb41 bsr 0x6368 // 6368 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 6cea: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 6cec: 3a43 cmpnei r2, 3 + 6cee: 0806 bt 0x6cfa // 6cfa + Debug_Inf.BackLight_En = 0x00; + 6cf0: 3200 movi r2, 0 + 6cf2: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6cf4: 3100 movi r1, 0 + 6cf6: 3003 movi r0, 3 + 6cf8: 07ec br 0x6cd0 // 6cd0 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 6cfa: 3a44 cmpnei r2, 4 + 6cfc: 0809 bt 0x6d0e // 6d0e + 6cfe: 8327 ld.b r1, (r3, 0x7) + 6d00: 3940 cmpnei r1, 0 + 6d02: 0ff4 bf 0x6cea // 6cea + Debug_Inf.KSens_Level--; + 6d04: 2900 subi r1, 1 + 6d06: 7444 zextb r1, r1 + 6d08: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6d0a: 3004 movi r0, 4 + 6d0c: 07e2 br 0x6cd0 // 6cd0 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 6d0e: 3a45 cmpnei r2, 5 + 6d10: 0809 bt 0x6d22 // 6d22 + 6d12: 8323 ld.b r1, (r3, 0x3) + 6d14: 3940 cmpnei r1, 0 + 6d16: 0fea bf 0x6cea // 6cea + Debug_Inf.DevAddr--; //刷新地址 + 6d18: 2900 subi r1, 1 + 6d1a: 7444 zextb r1, r1 + 6d1c: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6d1e: 3005 movi r0, 5 + 6d20: 07d8 br 0x6cd0 // 6cd0 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 6d22: 3a46 cmpnei r2, 6 + 6d24: 0809 bt 0x6d36 // 6d36 + 6d26: 8328 ld.b r1, (r3, 0x8) + 6d28: 3940 cmpnei r1, 0 + 6d2a: 0fe0 bf 0x6cea // 6cea + Debug_Inf.TempDisplay--; + 6d2c: 2900 subi r1, 1 + 6d2e: 7444 zextb r1, r1 + 6d30: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6d32: 3006 movi r0, 6 + 6d34: 07ce br 0x6cd0 // 6cd0 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 6d36: 3a47 cmpnei r2, 7 + 6d38: 0809 bt 0x6d4a // 6d4a + 6d3a: 8329 ld.b r1, (r3, 0x9) + 6d3c: 3940 cmpnei r1, 0 + 6d3e: 0fd6 bf 0x6cea // 6cea + Debug_Inf.Language_Selection--; + 6d40: 2900 subi r1, 1 + 6d42: 7444 zextb r1, r1 + 6d44: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6d46: 3007 movi r0, 7 + 6d48: 07c4 br 0x6cd0 // 6cd0 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 6d4a: 3a48 cmpnei r2, 8 + 6d4c: 0bcf bt 0x6cea // 6cea + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6d4e: 3102 movi r1, 2 + 6d50: 3008 movi r0, 8 + 6d52: 07bf br 0x6cd0 // 6cd0 + if(TempCtrl.CardState == CARDIN) + 6d54: 1092 lrw r4, 0x200005a4 // 6d9c + 6d56: 8478 ld.b r3, (r4, 0x18) + 6d58: 3b41 cmpnei r3, 1 + 6d5a: 0811 bt 0x6d7c // 6d7c + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6d5c: 8462 ld.b r3, (r4, 0x2) + 6d5e: 74ce sextb r3, r3 + 6d60: 3bdf btsti r3, 31 + 6d62: 0c0d bf 0x6d7c // 6d7c + TemCtrl_Temperature_Dec(); //设置温度- + 6d64: e3fffc88 bsr 0x6674 // 6674 + if(g_eeprom.backlight_en == 0x01) + 6d68: 106e lrw r3, 0x200004f0 // 6da0 + 6d6a: 8364 ld.b r3, (r3, 0x4) + 6d6c: 3b41 cmpnei r3, 1 + 6d6e: 0807 bt 0x6d7c // 6d7c + Controlled_LCD_Backlight(0x01); + 6d70: 3001 movi r0, 1 + 6d72: e3fffa27 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 6d76: 3001 movi r0, 1 + 6d78: e3fffa92 bsr 0x629c // 629c + TempCtrl.BackLightTick = SysTick_1ms; + 6d7c: 9560 ld.w r3, (r5, 0x0) + 6d7e: 4b48 lsri r2, r3, 8 + 6d80: a470 st.b r3, (r4, 0x10) + 6d82: a451 st.b r2, (r4, 0x11) + 6d84: 4b50 lsri r2, r3, 16 + 6d86: 4b78 lsri r3, r3, 24 + 6d88: a452 st.b r2, (r4, 0x12) + 6d8a: a473 st.b r3, (r4, 0x13) +} + 6d8c: 07af br 0x6cea // 6cea + 6d8e: 0000 bkpt + 6d90: 0000a47b .long 0x0000a47b + 6d94: 200005cd .long 0x200005cd + 6d98: 200000c0 .long 0x200000c0 + 6d9c: 200005a4 .long 0x200005a4 + 6da0: 200004f0 .long 0x200004f0 + +Disassembly of section .text.KEY4_Long_Press: + +00006da4 : + +void KEY4_Long_Press(void) +{ + 6da4: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 6da6: 109a lrw r4, 0x200005cd // 6e0c + 6da8: 8460 ld.b r3, (r4, 0x0) + 6daa: 3b40 cmpnei r3, 0 + 6dac: 082e bt 0x6e08 // 6e08 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 6dae: 8461 ld.b r3, (r4, 0x1) + 6db0: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6db2: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 6db4: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6db6: 0829 bt 0x6e08 // 6e08 + 6db8: 1076 lrw r3, 0x200005a4 // 6e10 + 6dba: 8362 ld.b r3, (r3, 0x2) + 6dbc: 74ce sextb r3, r3 + 6dbe: 3bdf btsti r3, 31 + 6dc0: 0824 bt 0x6e08 // 6e08 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 6dc2: 1035 lrw r1, 0xa472 // 6e14 + 6dc4: 3000 movi r0, 0 + 6dc6: e3ffe82b bsr 0x3e1c // 3e1c + Debug_Inf.Tick = SysTick_1ms; + 6dca: 1074 lrw r3, 0x200000c0 // 6e18 + 6dcc: 320a movi r2, 10 + 6dce: 9360 ld.w r3, (r3, 0x0) + 6dd0: 6090 addu r2, r4 + 6dd2: 4b28 lsri r1, r3, 8 + 6dd4: a260 st.b r3, (r2, 0x0) + 6dd6: a221 st.b r1, (r2, 0x1) + 6dd8: 4b30 lsri r1, r3, 16 + 6dda: 4b78 lsri r3, r3, 24 + 6ddc: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 6dde: 3300 movi r3, 0 + 6de0: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 6de2: 3001 movi r0, 1 + Debug_Inf.State = 0x01; + 6de4: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 6de6: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 6de8: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6dea: a462 st.b r3, (r4, 0x2) + Controlled_LCD_Backlight(0x01); + 6dec: e3fff9ea bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 6df0: 3001 movi r0, 1 + 6df2: e3fffa55 bsr 0x629c // 629c + HT1621_Clear(); + 6df6: e3fff6a7 bsr 0x5b44 // 5b44 + Controlled_Buzzer(0x01); + 6dfa: 3001 movi r0, 1 + 6dfc: e3fff9be bsr 0x6178 // 6178 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 6e00: 8424 ld.b r1, (r4, 0x4) + 6e02: 3001 movi r0, 1 + 6e04: e3fffa64 bsr 0x62cc // 62cc + + } + } +} + 6e08: 1491 pop r4, r15 + 6e0a: 0000 bkpt + 6e0c: 200005cd .long 0x200005cd + 6e10: 200005a4 .long 0x200005a4 + 6e14: 0000a472 .long 0x0000a472 + 6e18: 200000c0 .long 0x200000c0 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00006e1c : + + +void KEY5_OnOff_Press_Fun(void) +{ + 6e1c: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 6e1e: 103c lrw r1, 0xa492 // 6e8c + 6e20: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 6e22: 109c lrw r4, 0x200005cd // 6e90 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 6e24: e3ffe7fc bsr 0x3e1c // 3e1c + if(Debug_Inf.State == 0x00) //正常模式 + 6e28: 8460 ld.b r3, (r4, 0x0) + 6e2a: 3b40 cmpnei r3, 0 + 6e2c: 081b bt 0x6e62 // 6e62 + { + if(TempCtrl.CardState == CARDIN) + 6e2e: 109a lrw r4, 0x200005a4 // 6e94 + 6e30: 8478 ld.b r3, (r4, 0x18) + 6e32: 3b41 cmpnei r3, 1 + 6e34: 080d bt 0x6e4e // 6e4e + { + TemCtrl_OnOff_Set(); + 6e36: e3fffc4f bsr 0x66d4 // 66d4 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 6e3a: 1078 lrw r3, 0x200000c0 // 6e98 + 6e3c: 9360 ld.w r3, (r3, 0x0) + 6e3e: 4b48 lsri r2, r3, 8 + 6e40: a470 st.b r3, (r4, 0x10) + 6e42: a451 st.b r2, (r4, 0x11) + 6e44: 4b50 lsri r2, r3, 16 + 6e46: 4b78 lsri r3, r3, 24 + 6e48: a452 st.b r2, (r4, 0x12) + 6e4a: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 6e4c: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 6e4e: 3001 movi r0, 1 + 6e50: e0000028 bsr 0x6ea0 // 6ea0 + Controlled_LCD_Backlight(1); + 6e54: 3001 movi r0, 1 + 6e56: e3fff9b5 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(1); + 6e5a: 3001 movi r0, 1 + 6e5c: e3fffa20 bsr 0x629c // 629c + 6e60: 07ed br 0x6e3a // 6e3a + else if(Debug_Inf.State == 0x01) //设置模式 + 6e62: 3b41 cmpnei r3, 1 + 6e64: 0bf4 bt 0x6e4c // 6e4c + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 6e66: 102e lrw r1, 0xa4a7 // 6e9c + 6e68: 3000 movi r0, 0 + 6e6a: e3ffe7d9 bsr 0x3e1c // 3e1c + Debug_Inf.State = 0x00; + 6e6e: 3300 movi r3, 0 + 6e70: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 6e72: 3301 movi r3, 1 + 6e74: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 6e76: e3fff667 bsr 0x5b44 // 5b44 + Controlled_LCD_Backlight(0x00); + 6e7a: 3000 movi r0, 0 + 6e7c: e3fff9a2 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x00); + 6e80: 3000 movi r0, 0 + 6e82: e3fffa0d bsr 0x629c // 629c + Dev_SaveData(); + 6e86: e00002d3 bsr 0x742c // 742c +} + 6e8a: 07e1 br 0x6e4c // 6e4c + 6e8c: 0000a492 .long 0x0000a492 + 6e90: 200005cd .long 0x200005cd + 6e94: 200005a4 .long 0x200005a4 + 6e98: 200000c0 .long 0x200000c0 + 6e9c: 0000a4a7 .long 0x0000a4a7 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00006ea0 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 6ea0: 14d1 push r4, r15 + if(state == TEMP_ON) + 6ea2: 3841 cmpnei r0, 1 + 6ea4: 0821 bt 0x6ee6 // 6ee6 + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 6ea6: 1072 lrw r3, 0x200005cd // 6eec + 6ea8: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 6eaa: 1092 lrw r4, 0x200005a4 // 6ef0 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 6eac: e3fff914 bsr 0x60d4 // 60d4 + Control_Mode(TempCtrl.TemState_Now.mode); + 6eb0: 8402 ld.b r0, (r4, 0x2) + 6eb2: 4019 lsli r0, r0, 25 + 6eb4: 481d lsri r0, r0, 29 + 6eb6: e3fff785 bsr 0x5dc0 // 5dc0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6eba: 8402 ld.b r0, (r4, 0x2) + 6ebc: 401c lsli r0, r0, 28 + 6ebe: 481d lsri r0, r0, 29 + 6ec0: e3fff8a2 bsr 0x6004 // 6004 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6ec4: 8401 ld.b r0, (r4, 0x1) + 6ec6: 3840 cmpnei r0, 0 + 6ec8: 0c0c bf 0x6ee0 // 6ee0 + 6eca: 330a movi r3, 10 + 6ecc: 7c0c mult r0, r3 + 6ece: e3fff6a9 bsr 0x5c20 // 5c20 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 6ed2: 8400 ld.b r0, (r4, 0x0) + 6ed4: 330a movi r3, 10 + 6ed6: 7c0c mult r0, r3 + 6ed8: 7401 zexth r0, r0 + 6eda: e3fff70b bsr 0x5cf0 // 5cf0 + } + else + { + HT1621_Clear(); + } +} + 6ede: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 6ee0: 30a0 movi r0, 160 + 6ee2: 4001 lsli r0, r0, 1 + 6ee4: 07f5 br 0x6ece // 6ece + HT1621_Clear(); + 6ee6: e3fff62f bsr 0x5b44 // 5b44 +} + 6eea: 07fa br 0x6ede // 6ede + 6eec: 200005cd .long 0x200005cd + 6ef0: 200005a4 .long 0x200005a4 + +Disassembly of section .text.DisPlay_Init: + +00006ef4 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 6ef4: 14d0 push r15 + HT1621_ALLON(); + 6ef6: e3fff64f bsr 0x5b94 // 5b94 + + delay_nms(5000); + 6efa: 1005 lrw r0, 0x1388 // 6f0c + 6efc: e3ffdef2 bsr 0x2ce0 // 2ce0 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 6f00: 1064 lrw r3, 0x200005a4 // 6f10 + 6f02: 8302 ld.b r0, (r3, 0x2) + 6f04: 4807 lsri r0, r0, 7 + 6f06: e3ffffcd bsr 0x6ea0 // 6ea0 + +} + 6f0a: 1490 pop r15 + 6f0c: 00001388 .long 0x00001388 + 6f10: 200005a4 .long 0x200005a4 + +Disassembly of section .text.DisPlay_Task: + +00006f14 : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 6f14: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 6f16: 0168 lrw r3, 0x200005cd // 7270 + 6f18: 8360 ld.b r3, (r3, 0x0) + 6f1a: 3b40 cmpnei r3, 0 + 6f1c: 0c03 bf 0x6f22 // 6f22 + 6f1e: e8000250 br 0x73be // 73be + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 6f22: 018a lrw r4, 0x200005a4 // 7274 + 6f24: 8451 ld.b r2, (r4, 0x11) + 6f26: 8470 ld.b r3, (r4, 0x10) + 6f28: 4248 lsli r2, r2, 8 + 6f2a: 6c8c or r2, r3 + 6f2c: 8472 ld.b r3, (r4, 0x12) + 6f2e: 4370 lsli r3, r3, 16 + 6f30: 6c8c or r2, r3 + 6f32: 8473 ld.b r3, (r4, 0x13) + 6f34: 01ae lrw r5, 0x200000c0 // 7278 + 6f36: 4378 lsli r3, r3, 24 + 6f38: 6cc8 or r3, r2 + 6f3a: 9520 ld.w r1, (r5, 0x0) + 6f3c: 604e subu r1, r3 + 6f3e: 014f lrw r2, 0xbb8 // 727c + 6f40: 6448 cmphs r2, r1 + 6f42: 08b7 bt 0x70b0 // 70b0 + 6f44: 8458 ld.b r2, (r4, 0x18) + 6f46: 3a40 cmpnei r2, 0 + 6f48: 08b4 bt 0x70b0 // 70b0 + { + TempCtrl.BackLightTick = SysTick_1ms; + 6f4a: 9560 ld.w r3, (r5, 0x0) + 6f4c: 4b48 lsri r2, r3, 8 + 6f4e: a470 st.b r3, (r4, 0x10) + 6f50: a451 st.b r2, (r4, 0x11) + 6f52: 4b50 lsri r2, r3, 16 + 6f54: 4b78 lsri r3, r3, 24 + 6f56: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 6f58: 3300 movi r3, 0 + 6f5a: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6f5c: 8462 ld.b r3, (r4, 0x2) + 6f5e: 74ce sextb r3, r3 + 6f60: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 6f62: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 6f64: 0803 bt 0x6f6a // 6f6a + { + HT1621_Clear(); + 6f66: e3fff5ef bsr 0x5b44 // 5b44 + } + //关背光 + Controlled_LCD_Backlight(0); + 6f6a: 3000 movi r0, 0 + 6f6c: e3fff92a bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x00); + 6f70: 3000 movi r0, 0 + 6f72: e3fff995 bsr 0x629c // 629c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 6f76: 013c lrw r1, 0xa4b1 // 7280 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 6f78: 3000 movi r0, 0 + 6f7a: e3ffe751 bsr 0x3e1c // 3e1c + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 6f7e: 8455 ld.b r2, (r4, 0x15) + 6f80: 8474 ld.b r3, (r4, 0x14) + 6f82: 4248 lsli r2, r2, 8 + 6f84: 6c8c or r2, r3 + 6f86: 8476 ld.b r3, (r4, 0x16) + 6f88: 4370 lsli r3, r3, 16 + 6f8a: 6c8c or r2, r3 + 6f8c: 8477 ld.b r3, (r4, 0x17) + 6f8e: 4378 lsli r3, r3, 24 + 6f90: 6cc8 or r3, r2 + 6f92: 9520 ld.w r1, (r5, 0x0) + 6f94: 604e subu r1, r3 + 6f96: 33fa movi r3, 250 + 6f98: 4362 lsli r3, r3, 2 + 6f9a: 644c cmphs r3, r1 + 6f9c: 081b bt 0x6fd2 // 6fd2 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 6f9e: 9560 ld.w r3, (r5, 0x0) + 6fa0: 4b48 lsri r2, r3, 8 + 6fa2: a474 st.b r3, (r4, 0x14) + 6fa4: a455 st.b r2, (r4, 0x15) + 6fa6: 4b50 lsri r2, r3, 16 + 6fa8: 4b78 lsri r3, r3, 24 + 6faa: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6fac: 847b ld.b r3, (r4, 0x1b) + 6fae: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 6fb0: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 6fb2: 08a7 bt 0x7100 // 7100 + 6fb4: 847c ld.b r3, (r4, 0x1c) + 6fb6: 3b41 cmpnei r3, 1 + 6fb8: 08a4 bt 0x7100 // 7100 + { + TempCtrl.SceneFlag = 0x00; + 6fba: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 6fbc: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 6fbe: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 6fc0: e3fff900 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x00); + 6fc4: 3000 movi r0, 0 + 6fc6: e3fff96b bsr 0x629c // 629c + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 6fca: 0230 lrw r1, 0xa4d3 // 7284 + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 6fcc: 3000 movi r0, 0 + 6fce: e3ffe727 bsr 0x3e1c // 3e1c + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 6fd2: 02f1 lrw r7, 0x200004f0 // 7288 + 6fd4: 8764 ld.b r3, (r7, 0x4) + 6fd6: 3b41 cmpnei r3, 1 + 6fd8: 081e bt 0x7014 // 7014 + 6fda: 8451 ld.b r2, (r4, 0x11) + 6fdc: 8470 ld.b r3, (r4, 0x10) + 6fde: 4248 lsli r2, r2, 8 + 6fe0: 6c8c or r2, r3 + 6fe2: 8472 ld.b r3, (r4, 0x12) + 6fe4: 4370 lsli r3, r3, 16 + 6fe6: 6c8c or r2, r3 + 6fe8: 8473 ld.b r3, (r4, 0x13) + 6fea: 4378 lsli r3, r3, 24 + 6fec: 6cc8 or r3, r2 + 6fee: 9520 ld.w r1, (r5, 0x0) + 6ff0: 604e subu r1, r3 + 6ff2: 0278 lrw r3, 0x1388 // 728c + 6ff4: 644c cmphs r3, r1 + 6ff6: 080f bt 0x7014 // 7014 + { + TempCtrl.BackLightTick = SysTick_1ms; + 6ff8: 9560 ld.w r3, (r5, 0x0) + 6ffa: 4b48 lsri r2, r3, 8 + 6ffc: a470 st.b r3, (r4, 0x10) + 6ffe: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 7000: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 7002: 4b50 lsri r2, r3, 16 + 7004: 4b78 lsri r3, r3, 24 + 7006: a452 st.b r2, (r4, 0x12) + 7008: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 700a: e3fff8db bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x00); + 700e: 3000 movi r0, 0 + 7010: e3fff946 bsr 0x629c // 629c + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7014: 8402 ld.b r0, (r4, 0x2) + 7016: 74c2 sextb r3, r0 + 7018: 3bdf btsti r3, 31 + 701a: 03c1 lrw r6, 0x200005c4 // 7290 + 701c: 0d4a bf 0x72b0 // 72b0 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 701e: 8466 ld.b r3, (r4, 0x6) + 7020: 4019 lsli r0, r0, 25 + 7022: 4359 lsli r2, r3, 25 + 7024: 481d lsri r0, r0, 29 + 7026: 4a5d lsri r2, r2, 29 + 7028: 640a cmpne r2, r0 + 702a: 0c21 bf 0x706c // 706c + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 702c: 3170 movi r1, 112 + 702e: 4044 lsli r2, r0, 4 + 7030: 68c5 andn r3, r1 + 7032: 6cc8 or r3, r2 + 7034: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 7036: e3fff6c5 bsr 0x5dc0 // 5dc0 + + SYSCON->UREG0 &= 0xFFFF00FF; + 703a: 0368 lrw r3, 0x2000005c // 7294 + 703c: 31ff movi r1, 255 + 703e: 9340 ld.w r2, (r3, 0x0) + 7040: 22ff addi r2, 256 + 7042: 9260 ld.w r3, (r2, 0x0) + 7044: 4128 lsli r1, r1, 8 + 7046: 68c5 andn r3, r1 + 7048: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 704a: 8462 ld.b r3, (r4, 0x2) + 704c: 4379 lsli r3, r3, 25 + 704e: 4b7d lsri r3, r3, 29 + 7050: 9220 ld.w r1, (r2, 0x0) + 7052: 4368 lsli r3, r3, 8 + 7054: 6cc4 or r3, r1 + 7056: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7058: 3301 movi r3, 1 + 705a: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 705c: 9560 ld.w r3, (r5, 0x0) + 705e: 4b28 lsri r1, r3, 8 + 7060: a665 st.b r3, (r6, 0x5) + 7062: a626 st.b r1, (r6, 0x6) + 7064: 4b30 lsri r1, r3, 16 + 7066: 4b78 lsri r3, r3, 24 + 7068: a627 st.b r1, (r6, 0x7) + 706a: a668 st.b r3, (r6, 0x8) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 706c: 8402 ld.b r0, (r4, 0x2) + 706e: 8466 ld.b r3, (r4, 0x6) + 7070: 401c lsli r0, r0, 28 + 7072: 437c lsli r3, r3, 28 + 7074: 4b7d lsri r3, r3, 29 + 7076: 481d lsri r0, r0, 29 + 7078: 640e cmpne r3, r0 + 707a: 0377 lrw r3, 0x20000234 // 7298 + 707c: 0804 bt 0x7084 // 7084 + 707e: 8340 ld.b r2, (r3, 0x0) + 7080: 3a41 cmpnei r2, 1 + 7082: 087b bt 0x7178 // 7178 + { + OpenDisPlay_Flag = 0x00; + 7084: 3200 movi r2, 0 + 7086: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 7088: 8466 ld.b r3, (r4, 0x6) + 708a: 310e movi r1, 14 + 708c: 4041 lsli r2, r0, 1 + 708e: 68c5 andn r3, r1 + 7090: 6cc8 or r3, r2 + 7092: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 7094: e3fff7b8 bsr 0x6004 // 6004 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 7098: 3270 movi r2, 112 + 709a: 8462 ld.b r3, (r4, 0x2) + 709c: 68c8 and r3, r2 + 709e: 3240 movi r2, 64 + 70a0: 648e cmpne r3, r2 + 70a2: 0843 bt 0x7128 // 7128 + 70a4: 8761 ld.b r3, (r7, 0x1) + 70a6: 3b42 cmpnei r3, 2 + 70a8: 0840 bt 0x7128 // 7128 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 70aa: e000029d bsr 0x75e4 // 75e4 + break; + 70ae: 044b br 0x7144 // 7144 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 70b0: 9540 ld.w r2, (r5, 0x0) + 70b2: 608e subu r2, r3 + 70b4: 33fa movi r3, 250 + 70b6: 4363 lsli r3, r3, 3 + 70b8: 648c cmphs r3, r2 + 70ba: 0b62 bt 0x6f7e // 6f7e + 70bc: 8478 ld.b r3, (r4, 0x18) + 70be: 3b41 cmpnei r3, 1 + 70c0: 0b5f bt 0x6f7e // 6f7e + 70c2: 8479 ld.b r3, (r4, 0x19) + 70c4: 3b41 cmpnei r3, 1 + 70c6: 0b5c bt 0x6f7e // 6f7e + TempCtrl.BackLightTick = SysTick_1ms; + 70c8: 9560 ld.w r3, (r5, 0x0) + 70ca: 4b48 lsri r2, r3, 8 + 70cc: a470 st.b r3, (r4, 0x10) + 70ce: a451 st.b r2, (r4, 0x11) + 70d0: 4b50 lsri r2, r3, 16 + 70d2: 4b78 lsri r3, r3, 24 + 70d4: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 70d6: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 70d8: 3300 movi r3, 0 + 70da: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 70dc: 74c2 sextb r3, r0 + 70de: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 70e0: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 70e2: 0f4e bf 0x6f7e // 6f7e + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 70e4: 4807 lsri r0, r0, 7 + 70e6: e3fffedd bsr 0x6ea0 // 6ea0 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 70ea: 847b ld.b r3, (r4, 0x1b) + 70ec: 3b44 cmpnei r3, 4 + 70ee: 0f48 bf 0x6f7e // 6f7e + Controlled_LCD_Backlight(1); + 70f0: 3001 movi r0, 1 + 70f2: e3fff867 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 70f6: 3001 movi r0, 1 + 70f8: e3fff8d2 bsr 0x629c // 629c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 70fc: 1328 lrw r1, 0xa4c3 // 729c + 70fe: 073d br 0x6f78 // 6f78 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 7100: 8462 ld.b r3, (r4, 0x2) + 7102: 74ce sextb r3, r3 + 7104: 3bdf btsti r3, 31 + 7106: 0f66 bf 0x6fd2 // 6fd2 + 7108: 8478 ld.b r3, (r4, 0x18) + 710a: 3b41 cmpnei r3, 1 + 710c: 0b63 bt 0x6fd2 // 6fd2 + 710e: 847c ld.b r3, (r4, 0x1c) + 7110: 3b41 cmpnei r3, 1 + 7112: 0b60 bt 0x6fd2 // 6fd2 + TempCtrl.SceneFlag = 0x00; + 7114: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 7116: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 7118: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 711a: e3fff853 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x01); + 711e: 3001 movi r0, 1 + 7120: e3fff8be bsr 0x629c // 629c + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 7124: 123f lrw r1, 0xa4e3 // 72a0 + 7126: 0753 br 0x6fcc // 6fcc + switch(TempCtrl.TemState_Now.fan) + 7128: 8402 ld.b r0, (r4, 0x2) + 712a: 401c lsli r0, r0, 28 + 712c: 481d lsri r0, r0, 29 + 712e: 2800 subi r0, 1 + 7130: 3803 cmphsi r0, 4 + 7132: 0809 bt 0x7144 // 7144 + 7134: e3ffcdee bsr 0xd10 // d10 <___gnu_csky_case_shi> + 7138: 01440004 .long 0x01440004 + 713c: ffb90147 .long 0xffb90147 + Relay_Low(); + 7140: e0000244 bsr 0x75c8 // 75c8 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 7144: 1274 lrw r3, 0x2000005c // 7294 + 7146: 31ff movi r1, 255 + 7148: 9340 ld.w r2, (r3, 0x0) + 714a: 22ff addi r2, 256 + 714c: 9260 ld.w r3, (r2, 0x0) + 714e: 4130 lsli r1, r1, 16 + 7150: 68c5 andn r3, r1 + 7152: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 7154: 8462 ld.b r3, (r4, 0x2) + 7156: 437c lsli r3, r3, 28 + 7158: 4b7d lsri r3, r3, 29 + 715a: 9220 ld.w r1, (r2, 0x0) + 715c: 4370 lsli r3, r3, 16 + 715e: 6cc4 or r3, r1 + 7160: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7162: 3301 movi r3, 1 + 7164: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7166: 9560 ld.w r3, (r5, 0x0) + 7168: 124f lrw r2, 0x200005c9 // 72a4 + 716a: 4b28 lsri r1, r3, 8 + 716c: a260 st.b r3, (r2, 0x0) + 716e: a221 st.b r1, (r2, 0x1) + 7170: 4b30 lsri r1, r3, 16 + 7172: 4b78 lsri r3, r3, 24 + 7174: a222 st.b r1, (r2, 0x2) + 7176: a263 st.b r3, (r2, 0x3) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 7178: 8401 ld.b r0, (r4, 0x1) + 717a: 8465 ld.b r3, (r4, 0x5) + 717c: 640e cmpne r3, r0 + 717e: 0c1f bf 0x71bc // 71bc + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 7180: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 7182: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 7184: 0924 bt 0x73cc // 73cc + { + Set_Temperature_Display(320); + 7186: 30a0 movi r0, 160 + 7188: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 718a: e3fff54b bsr 0x5c20 // 5c20 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 718e: 1262 lrw r3, 0x2000005c // 7294 + 7190: 9360 ld.w r3, (r3, 0x0) + 7192: 23ff addi r3, 256 + 7194: 9340 ld.w r2, (r3, 0x0) + 7196: 4248 lsli r2, r2, 8 + 7198: 4a48 lsri r2, r2, 8 + 719a: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 719c: 8441 ld.b r2, (r4, 0x1) + 719e: 9320 ld.w r1, (r3, 0x0) + 71a0: 4258 lsli r2, r2, 24 + 71a2: 6c84 or r2, r1 + 71a4: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 71a6: 3301 movi r3, 1 + 71a8: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 71aa: 9560 ld.w r3, (r5, 0x0) + 71ac: 115e lrw r2, 0x200005c9 // 72a4 + 71ae: 4b28 lsri r1, r3, 8 + 71b0: a260 st.b r3, (r2, 0x0) + 71b2: a221 st.b r1, (r2, 0x1) + 71b4: 4b30 lsri r1, r3, 16 + 71b6: 4b78 lsri r3, r3, 24 + 71b8: a222 st.b r1, (r2, 0x2) + 71ba: a263 st.b r3, (r2, 0x3) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 71bc: 8409 ld.b r0, (r4, 0x9) + 71be: 8468 ld.b r3, (r4, 0x8) + 71c0: 4008 lsli r0, r0, 8 + 71c2: 6c0c or r0, r3 + 71c4: 846b ld.b r3, (r4, 0xb) + 71c6: 844a ld.b r2, (r4, 0xa) + 71c8: 4368 lsli r3, r3, 8 + 71ca: 6cc8 or r3, r2 + 71cc: 640e cmpne r3, r0 + 71ce: 0c12 bf 0x71f2 // 71f2 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 71d0: 4868 lsri r3, r0, 8 + 71d2: a46b st.b r3, (r4, 0xb) + 71d4: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 71d6: e3fff58d bsr 0x5cf0 // 5cf0 + + SYSCON->UREG0 &= 0x00FFFFFF; + 71da: 116f lrw r3, 0x2000005c // 7294 + 71dc: 9360 ld.w r3, (r3, 0x0) + 71de: 23ff addi r3, 256 + 71e0: 9340 ld.w r2, (r3, 0x0) + 71e2: 4248 lsli r2, r2, 8 + 71e4: 4a48 lsri r2, r2, 8 + 71e6: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 71e8: 8441 ld.b r2, (r4, 0x1) + 71ea: 9320 ld.w r1, (r3, 0x0) + 71ec: 4258 lsli r2, r2, 24 + 71ee: 6c84 or r2, r1 + 71f0: b340 st.w r2, (r3, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 71f2: 844f ld.b r2, (r4, 0xf) + 71f4: 846e ld.b r3, (r4, 0xe) + 71f6: 4248 lsli r2, r2, 8 + 71f8: 6c8c or r2, r3 + 71fa: 846d ld.b r3, (r4, 0xd) + 71fc: 842c ld.b r1, (r4, 0xc) + 71fe: 4368 lsli r3, r3, 8 + 7200: 6cc4 or r3, r1 + 7202: 648c cmphs r3, r2 + 7204: 0804 bt 0x720c // 720c + 7206: 5a2d subu r1, r2, r3 + 7208: 392a cmplti r1, 11 + 720a: 0c06 bf 0x7216 // 7216 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 720c: 64c8 cmphs r2, r3 + 720e: 0812 bt 0x7232 // 7232 + 7210: 5b49 subu r2, r3, r2 + 7212: 3a2a cmplti r2, 11 + 7214: 080f bt 0x7232 // 7232 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 7216: 9540 ld.w r2, (r5, 0x0) + 7218: 1124 lrw r1, 0x200005c5 // 72a8 + 721a: 4a08 lsri r0, r2, 8 + 721c: a140 st.b r2, (r1, 0x0) + 721e: a101 st.b r0, (r1, 0x1) + 7220: 4a10 lsri r0, r2, 16 + 7222: 4a58 lsri r2, r2, 24 + 7224: a143 st.b r2, (r1, 0x3) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7226: 4b48 lsri r2, r3, 8 + 7228: a44f st.b r2, (r4, 0xf) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 722a: 3201 movi r2, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 722c: a102 st.b r0, (r1, 0x2) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 722e: a46e st.b r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 7230: a640 st.b r2, (r6, 0x0) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 7232: 8602 ld.b r0, (r6, 0x2) + 7234: 8641 ld.b r2, (r6, 0x1) + 7236: 4008 lsli r0, r0, 8 + 7238: 6c08 or r0, r2 + 723a: 8643 ld.b r2, (r6, 0x3) + 723c: 4250 lsli r2, r2, 16 + 723e: 6c08 or r0, r2 + 7240: 8644 ld.b r2, (r6, 0x4) + 7242: 4258 lsli r2, r2, 24 + 7244: 6c80 or r2, r0 + 7246: 9520 ld.w r1, (r5, 0x0) + 7248: 604a subu r1, r2 + 724a: 1059 lrw r2, 0x752f // 72ac + 724c: 6448 cmphs r2, r1 + 724e: 0831 bt 0x72b0 // 72b0 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 7250: 9540 ld.w r2, (r5, 0x0) + 7252: 1036 lrw r1, 0x200005c5 // 72a8 + 7254: 4a08 lsri r0, r2, 8 + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7256: a46e st.b r3, (r4, 0xe) + 7258: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 725a: a140 st.b r2, (r1, 0x0) + 725c: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 725e: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7260: 4a10 lsri r0, r2, 16 + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 7262: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7264: 4a58 lsri r2, r2, 24 + 7266: a102 st.b r0, (r1, 0x2) + 7268: a143 st.b r2, (r1, 0x3) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 726a: a660 st.b r3, (r6, 0x0) + 726c: 0422 br 0x72b0 // 72b0 + 726e: 0000 bkpt + 7270: 200005cd .long 0x200005cd + 7274: 200005a4 .long 0x200005a4 + 7278: 200000c0 .long 0x200000c0 + 727c: 00000bb8 .long 0x00000bb8 + 7280: 0000a4b1 .long 0x0000a4b1 + 7284: 0000a4d3 .long 0x0000a4d3 + 7288: 200004f0 .long 0x200004f0 + 728c: 00001388 .long 0x00001388 + 7290: 200005c4 .long 0x200005c4 + 7294: 2000005c .long 0x2000005c + 7298: 20000234 .long 0x20000234 + 729c: 0000a4c3 .long 0x0000a4c3 + 72a0: 0000a4e3 .long 0x0000a4e3 + 72a4: 200005c9 .long 0x200005c9 + 72a8: 200005c5 .long 0x200005c5 + 72ac: 0000752f .long 0x0000752f + + } + } + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 72b0: 8462 ld.b r3, (r4, 0x2) + 72b2: 8446 ld.b r2, (r4, 0x6) + 72b4: 4b07 lsri r0, r3, 7 + 72b6: 4a47 lsri r2, r2, 7 + 72b8: 640a cmpne r2, r0 + 72ba: 0c2e bf 0x7316 // 7316 + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 72bc: 74ce sextb r3, r3 + 72be: 3bdf btsti r3, 31 + 72c0: 0c04 bf 0x72c8 // 72c8 + OpenDisPlay_Flag = 1; + 72c2: 1265 lrw r3, 0x20000234 // 73d4 + 72c4: 3201 movi r2, 1 + 72c6: a340 st.b r2, (r3, 0x0) + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 72c8: 317f movi r1, 127 + 72ca: 8466 ld.b r3, (r4, 0x6) + 72cc: 4047 lsli r2, r0, 7 + 72ce: 68c4 and r3, r1 + 72d0: 6cc8 or r3, r2 + 72d2: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 72d4: e3fff776 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 72d8: 8402 ld.b r0, (r4, 0x2) + 72da: 4807 lsri r0, r0, 7 + 72dc: e3fff7e0 bsr 0x629c // 629c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 72e0: 8402 ld.b r0, (r4, 0x2) + 72e2: 4807 lsri r0, r0, 7 + 72e4: e3fffdde bsr 0x6ea0 // 6ea0 + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 72e8: 117c lrw r3, 0x2000005c // 73d8 + 72ea: 31ff movi r1, 255 + 72ec: 9340 ld.w r2, (r3, 0x0) + 72ee: 22ff addi r2, 256 + 72f0: 9260 ld.w r3, (r2, 0x0) + 72f2: 68c5 andn r3, r1 + 72f4: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 72f6: 8462 ld.b r3, (r4, 0x2) + 72f8: 9220 ld.w r1, (r2, 0x0) + 72fa: 4b67 lsri r3, r3, 7 + 72fc: 6cc4 or r3, r1 + 72fe: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7300: 3301 movi r3, 1 + 7302: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7304: 9560 ld.w r3, (r5, 0x0) + 7306: 1156 lrw r2, 0x200005c9 // 73dc + 7308: 4b28 lsri r1, r3, 8 + 730a: a260 st.b r3, (r2, 0x0) + 730c: a221 st.b r1, (r2, 0x1) + 730e: 4b30 lsri r1, r3, 16 + 7310: 4b78 lsri r3, r3, 24 + 7312: a222 st.b r1, (r2, 0x2) + 7314: a263 st.b r3, (r2, 0x3) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 7316: 8660 ld.b r3, (r6, 0x0) + 7318: 3b41 cmpnei r3, 1 + 731a: 082b bt 0x7370 // 7370 + 731c: 8646 ld.b r2, (r6, 0x6) + 731e: 8665 ld.b r3, (r6, 0x5) + 7320: 4248 lsli r2, r2, 8 + 7322: 6c8c or r2, r3 + 7324: 8667 ld.b r3, (r6, 0x7) + 7326: 4370 lsli r3, r3, 16 + 7328: 6c8c or r2, r3 + 732a: 8668 ld.b r3, (r6, 0x8) + 732c: 4378 lsli r3, r3, 24 + 732e: 6cc8 or r3, r2 + 7330: 9520 ld.w r1, (r5, 0x0) + 7332: 604e subu r1, r3 + 7334: 116b lrw r3, 0x3e7 // 73e0 + 7336: 644c cmphs r3, r1 + 7338: 081c bt 0x7370 // 7370 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 733a: 9560 ld.w r3, (r5, 0x0) + 733c: 1148 lrw r2, 0x200005c9 // 73dc + 733e: 4b28 lsri r1, r3, 8 + 7340: a260 st.b r3, (r2, 0x0) + 7342: a221 st.b r1, (r2, 0x1) + 7344: 4b30 lsri r1, r3, 16 + 7346: 4b78 lsri r3, r3, 24 + 7348: a263 st.b r3, (r2, 0x3) + TempCtrl.TempChange_Flag = 0x00; + 734a: 3300 movi r3, 0 + 734c: a660 st.b r3, (r6, 0x0) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 734e: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7350: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7352: 1145 lrw r2, 0x200005c5 // 73e4 + 7354: 4b28 lsri r1, r3, 8 + 7356: a260 st.b r3, (r2, 0x0) + 7358: a221 st.b r1, (r2, 0x1) + 735a: 4b30 lsri r1, r3, 16 + 735c: 4b78 lsri r3, r3, 24 + 735e: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7360: 8767 ld.b r3, (r7, 0x7) + 7362: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7364: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7366: 0805 bt 0x7370 // 7370 + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 7368: 30fa movi r0, 250 + 736a: 4002 lsli r0, r0, 2 + 736c: e0000254 bsr 0x7814 // 7814 + + + } + + // 状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 7370: 8646 ld.b r2, (r6, 0x6) + 7372: 8665 ld.b r3, (r6, 0x5) + 7374: 4248 lsli r2, r2, 8 + 7376: 6c8c or r2, r3 + 7378: 8667 ld.b r3, (r6, 0x7) + 737a: 4370 lsli r3, r3, 16 + 737c: 6c8c or r2, r3 + 737e: 8668 ld.b r3, (r6, 0x8) + 7380: 4378 lsli r3, r3, 24 + 7382: 6cc8 or r3, r2 + 7384: 9520 ld.w r1, (r5, 0x0) + 7386: 604e subu r1, r3 + 7388: 1078 lrw r3, 0x493df // 73e8 + 738a: 644c cmphs r3, r1 + 738c: 0819 bt 0x73be // 73be + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 738e: 9560 ld.w r3, (r5, 0x0) + 7390: 1053 lrw r2, 0x200005c9 // 73dc + 7392: 4b28 lsri r1, r3, 8 + 7394: a260 st.b r3, (r2, 0x0) + 7396: a221 st.b r1, (r2, 0x1) + 7398: 4b30 lsri r1, r3, 16 + 739a: 4b78 lsri r3, r3, 24 + 739c: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 739e: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 73a0: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 73a2: 1051 lrw r2, 0x200005c5 // 73e4 + 73a4: 4b28 lsri r1, r3, 8 + 73a6: a260 st.b r3, (r2, 0x0) + 73a8: a221 st.b r1, (r2, 0x1) + 73aa: 4b30 lsri r1, r3, 16 + 73ac: 4b78 lsri r3, r3, 24 + 73ae: a263 st.b r3, (r2, 0x3) + + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 73b0: 8767 ld.b r3, (r7, 0x7) + 73b2: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 73b4: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 73b6: 0804 bt 0x73be // 73be + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 73b8: 100d lrw r0, 0xea60 // 73ec + 73ba: e000022d bsr 0x7814 // 7814 + } + + } + + } +} + 73be: 1494 pop r4-r7, r15 + Relay_Mid(); + 73c0: e00000f6 bsr 0x75ac // 75ac + break; + 73c4: 06c0 br 0x7144 // 7144 + Relay_High(); + 73c6: e00000e5 bsr 0x7590 // 7590 + break; + 73ca: 06bd br 0x7144 // 7144 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 73cc: 330a movi r3, 10 + 73ce: 7c0c mult r0, r3 + 73d0: 06dd br 0x718a // 718a + 73d2: 0000 bkpt + 73d4: 20000234 .long 0x20000234 + 73d8: 2000005c .long 0x2000005c + 73dc: 200005c9 .long 0x200005c9 + 73e0: 000003e7 .long 0x000003e7 + 73e4: 200005c5 .long 0x200005c5 + 73e8: 000493df .long 0x000493df + 73ec: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Debug_Init: + +000073f0 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 73f0: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 73f2: 108d lrw r4, 0x200005cd // 7424 + 73f4: 320e movi r2, 14 + 73f6: 3100 movi r1, 0 + 73f8: 6c13 mov r0, r4 + 73fa: e3ffd2d1 bsr 0x199c // 199c <__memset_fast> + Debug_Inf.Page = 0x01; + 73fe: 3301 movi r3, 1 + 7400: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 7402: 106a lrw r3, 0x200004f0 // 7428 + 7404: 8340 ld.b r2, (r3, 0x0) + 7406: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 7408: 8341 ld.b r2, (r3, 0x1) + 740a: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 740c: 8342 ld.b r2, (r3, 0x2) + 740e: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 7410: 8344 ld.b r2, (r3, 0x4) + 7412: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 7414: 8345 ld.b r2, (r3, 0x5) + 7416: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7418: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 741a: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 741c: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 741e: a469 st.b r3, (r4, 0x9) +} + 7420: 1491 pop r4, r15 + 7422: 0000 bkpt + 7424: 200005cd .long 0x200005cd + 7428: 200004f0 .long 0x200004f0 + +Disassembly of section .text.Dev_SaveData: + +0000742c : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 742c: 14d1 push r4, r15 + 742e: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 7430: 1161 lrw r3, 0x200005cd // 74b4 + 7432: 1182 lrw r4, 0x200004f0 // 74b8 + 7434: 8343 ld.b r2, (r3, 0x3) + 7436: 8420 ld.b r1, (r4, 0x0) + 7438: 6486 cmpne r1, r2 + 743a: 0819 bt 0x746c // 746c + 743c: 8304 ld.b r0, (r3, 0x4) + 743e: 8421 ld.b r1, (r4, 0x1) + 7440: 6442 cmpne r0, r1 + 7442: 0815 bt 0x746c // 746c + 7444: 8305 ld.b r0, (r3, 0x5) + 7446: 8422 ld.b r1, (r4, 0x2) + 7448: 6442 cmpne r0, r1 + 744a: 0811 bt 0x746c // 746c + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 744c: 8306 ld.b r0, (r3, 0x6) + 744e: 8424 ld.b r1, (r4, 0x4) + 7450: 6442 cmpne r0, r1 + 7452: 080d bt 0x746c // 746c + 7454: 8307 ld.b r0, (r3, 0x7) + 7456: 8425 ld.b r1, (r4, 0x5) + 7458: 6442 cmpne r0, r1 + 745a: 0809 bt 0x746c // 746c + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 745c: 8308 ld.b r0, (r3, 0x8) + 745e: 8423 ld.b r1, (r4, 0x3) + 7460: 6442 cmpne r0, r1 + 7462: 0805 bt 0x746c // 746c + 7464: 8309 ld.b r0, (r3, 0x9) + 7466: 8426 ld.b r1, (r4, 0x6) + 7468: 6442 cmpne r0, r1 + 746a: 0c23 bf 0x74b0 // 74b0 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 746c: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 746e: 8344 ld.b r2, (r3, 0x4) + 7470: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 7472: 8345 ld.b r2, (r3, 0x5) + 7474: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 7476: 8346 ld.b r2, (r3, 0x6) + 7478: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 747a: 8347 ld.b r2, (r3, 0x7) + 747c: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 747e: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 7480: 100e lrw r0, 0x200004f0 // 74b8 + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7482: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7484: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7486: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 7488: e3ffe98a bsr 0x479c // 479c + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 748c: 8425 ld.b r1, (r4, 0x5) + 748e: b822 st.w r1, (r14, 0x8) + 7490: 8424 ld.b r1, (r4, 0x4) + 7492: b821 st.w r1, (r14, 0x4) + 7494: 8422 ld.b r1, (r4, 0x2) + 7496: 8461 ld.b r3, (r4, 0x1) + 7498: 8440 ld.b r2, (r4, 0x0) + 749a: b820 st.w r1, (r14, 0x0) + 749c: 3000 movi r0, 0 + 749e: 1028 lrw r1, 0xa4f6 // 74bc + 74a0: e3ffe4be bsr 0x3e1c // 3e1c + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 74a4: 8466 ld.b r3, (r4, 0x6) + 74a6: 8443 ld.b r2, (r4, 0x3) + 74a8: 1026 lrw r1, 0xa542 // 74c0 + 74aa: 3000 movi r0, 0 + 74ac: e3ffe4b8 bsr 0x3e1c // 3e1c + g_eeprom.temp_select,g_eeprom.langue_select); + } +} + 74b0: 1403 addi r14, r14, 12 + 74b2: 1491 pop r4, r15 + 74b4: 200005cd .long 0x200005cd + 74b8: 200004f0 .long 0x200004f0 + 74bc: 0000a4f6 .long 0x0000a4f6 + 74c0: 0000a542 .long 0x0000a542 + +Disassembly of section .text.Debug_Task: + +000074c4 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 74c4: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 74c6: 107b lrw r3, 0x200005cd // 7530 + 74c8: 8340 ld.b r2, (r3, 0x0) + 74ca: 3a41 cmpnei r2, 1 + 74cc: 0830 bt 0x752c // 752c + 74ce: 832b ld.b r1, (r3, 0xb) + 74d0: 834a ld.b r2, (r3, 0xa) + 74d2: 4128 lsli r1, r1, 8 + 74d4: 6c48 or r1, r2 + 74d6: 834c ld.b r2, (r3, 0xc) + 74d8: 4250 lsli r2, r2, 16 + 74da: 6c48 or r1, r2 + 74dc: 834d ld.b r2, (r3, 0xd) + 74de: 1096 lrw r4, 0x200000c0 // 7534 + 74e0: 4258 lsli r2, r2, 24 + 74e2: 6c84 or r2, r1 + 74e4: 9400 ld.w r0, (r4, 0x0) + 74e6: 600a subu r0, r2 + 74e8: 1054 lrw r2, 0x2710 // 7538 + 74ea: 6408 cmphs r2, r0 + 74ec: 0820 bt 0x752c // 752c + 74ee: 8342 ld.b r2, (r3, 0x2) + 74f0: 3a48 cmpnei r2, 8 + 74f2: 0c1d bf 0x752c // 752c + { + Debug_Inf.Tick = SysTick_1ms; + 74f4: 9440 ld.w r2, (r4, 0x0) + 74f6: 310a movi r1, 10 + 74f8: 604c addu r1, r3 + 74fa: 4a08 lsri r0, r2, 8 + 74fc: a140 st.b r2, (r1, 0x0) + 74fe: a101 st.b r0, (r1, 0x1) + 7500: 4a10 lsri r0, r2, 16 + 7502: 4a58 lsri r2, r2, 24 + 7504: a143 st.b r2, (r1, 0x3) + Debug_Inf.State = 0x00; + 7506: 3200 movi r2, 0 + 7508: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 750a: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 750c: a102 st.b r0, (r1, 0x2) + Debug_Inf.Page = 0x01; + 750e: a342 st.b r2, (r3, 0x2) + Dev_SaveData(); + 7510: e3ffff8e bsr 0x742c // 742c + + HT1621_Clear(); + 7514: e3fff318 bsr 0x5b44 // 5b44 + //关背光 + Controlled_LCD_Backlight(0x00); + 7518: 3000 movi r0, 0 + 751a: e3fff653 bsr 0x61c0 // 61c0 + Controlled_Key_Backlight(0x00); + 751e: 3000 movi r0, 0 + 7520: e3fff6be bsr 0x629c // 629c + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 7524: 1026 lrw r1, 0xa572 // 753c + 7526: 3000 movi r0, 0 + 7528: e3ffe47a bsr 0x3e1c // 3e1c + } + 752c: 1491 pop r4, r15 + 752e: 0000 bkpt + 7530: 200005cd .long 0x200005cd + 7534: 200000c0 .long 0x200000c0 + 7538: 00002710 .long 0x00002710 + 753c: 0000a572 .long 0x0000a572 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00007540 : + * @brief 产生继电器控制动作检测 + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7540: 14d3 push r4-r6, r15 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + if(rly_id >= RLY_MAX) return; + + if(c_rly.rly_state[rly_id] != state) + 7542: 10a9 lrw r5, 0x200005dc // 7564 + 7544: 5d80 addu r4, r5, r0 + 7546: 8463 ld.b r3, (r4, 0x3) + 7548: 644e cmpne r3, r1 +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 754a: 6d87 mov r6, r1 + if(c_rly.rly_state[rly_id] != state) + 754c: 0c0b bf 0x7562 // 7562 + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_CtrlRLY:%d",c_rly.rly_control); +// c_rly.rly_control = 0x01; + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 754e: e3ffe210 bsr 0x396e // 396e + c_rly.rly_state[rly_id] = state; + if(c_rly.rly_zero == UNZEROCROSSING){ + 7552: 8560 ld.b r3, (r5, 0x0) + c_rly.rly_control = 0x02; + 7554: 3b40 cmpnei r3, 0 + 7556: 64c3 mvcv r3 + 7558: 2300 addi r3, 1 + c_rly.rly_state[rly_id] = state; + 755a: a4c3 st.b r6, (r4, 0x3) + c_rly.rly_control = 0x02; + 755c: a562 st.b r3, (r5, 0x2) + }else{ + c_rly.rly_control = 0x01; + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 755e: e3ffe205 bsr 0x3968 // 3968 + } +} + 7562: 1493 pop r4-r6, r15 + 7564: 200005dc .long 0x200005dc + +Disassembly of section .text.Relay_Init: + +00007568 : +{ + 7568: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 756a: 1088 lrw r4, 0x20000548 // 7588 + 756c: 321c movi r2, 28 + 756e: 3100 movi r1, 0 + 7570: 6c13 mov r0, r4 + 7572: e3ffd215 bsr 0x199c // 199c <__memset_fast> + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 7576: 320c movi r2, 12 + 7578: 3100 movi r1, 0 + 757a: 1005 lrw r0, 0x200005dc // 758c + 757c: e3ffd210 bsr 0x199c // 199c <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 7580: 3301 movi r3, 1 + 7582: a462 st.b r3, (r4, 0x2) +} + 7584: 1491 pop r4, r15 + 7586: 0000 bkpt + 7588: 20000548 .long 0x20000548 + 758c: 200005dc .long 0x200005dc + +Disassembly of section .text.Relay_High: + +00007590 : +{ + 7590: 14d0 push r15 + 7592: 3101 movi r1, 1 + 7594: 3002 movi r0, 2 + 7596: e3ffffd5 bsr 0x7540 // 7540 + 759a: 3102 movi r1, 2 + 759c: 3003 movi r0, 3 + 759e: e3ffffd1 bsr 0x7540 // 7540 + 75a2: 3102 movi r1, 2 + 75a4: 3004 movi r0, 4 + 75a6: e3ffffcd bsr 0x7540 // 7540 +} + 75aa: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +000075ac : +{ + 75ac: 14d0 push r15 + 75ae: 3102 movi r1, 2 + 75b0: 3002 movi r0, 2 + 75b2: e3ffffc7 bsr 0x7540 // 7540 + 75b6: 3101 movi r1, 1 + 75b8: 3003 movi r0, 3 + 75ba: e3ffffc3 bsr 0x7540 // 7540 + 75be: 3102 movi r1, 2 + 75c0: 3004 movi r0, 4 + 75c2: e3ffffbf bsr 0x7540 // 7540 +} + 75c6: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +000075c8 : +{ + 75c8: 14d0 push r15 + 75ca: 3102 movi r1, 2 + 75cc: 3002 movi r0, 2 + 75ce: e3ffffb9 bsr 0x7540 // 7540 + 75d2: 3102 movi r1, 2 + 75d4: 3003 movi r0, 3 + 75d6: e3ffffb5 bsr 0x7540 // 7540 + 75da: 3101 movi r1, 1 + 75dc: 3004 movi r0, 4 + 75de: e3ffffb1 bsr 0x7540 // 7540 +} + 75e2: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +000075e4 : +{ + 75e4: 14d0 push r15 + 75e6: 3102 movi r1, 2 + 75e8: 3002 movi r0, 2 + 75ea: e3ffffab bsr 0x7540 // 7540 + 75ee: 3102 movi r1, 2 + 75f0: 3003 movi r0, 3 + 75f2: e3ffffa7 bsr 0x7540 // 7540 + 75f6: 3102 movi r1, 2 + 75f8: 3004 movi r0, 4 + 75fa: e3ffffa3 bsr 0x7540 // 7540 +} + 75fe: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00007600 : +{ + 7600: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + 7602: 5963 subi r3, r1, 1 + 7604: 74cc zextb r3, r3 + 7606: 3b01 cmphsi r3, 2 + 7608: 0805 bt 0x7612 // 7612 + if(rly_id >= RLY_MAX) return; + 760a: 3804 cmphsi r0, 5 + 760c: 0803 bt 0x7612 // 7612 + 760e: e3ffff99 bsr 0x7540 // 7540 +} + 7612: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +00007614 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + 7614: 14d2 push r4-r5, r15 + if(SysTick_1ms - c_rly.ZCrossing_tick >= 50)// 50ms + 7616: 1150 lrw r2, 0x200000c0 // 76d4 + 7618: 1190 lrw r4, 0x200005dc // 76d8 + 761a: 9260 ld.w r3, (r2, 0x0) + 761c: 9422 ld.w r1, (r4, 0x8) + 761e: 60c6 subu r3, r1 + 7620: 3131 movi r1, 49 + 7622: 64c4 cmphs r1, r3 + 7624: 0810 bt 0x7644 // 7644 + { + c_rly.ZCrossing_tick = SysTick_1ms; + 7626: 9260 ld.w r3, (r2, 0x0) + 7628: b462 st.w r3, (r4, 0x8) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 762a: e3ffe1a2 bsr 0x396e // 396e + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5) ){ //有过零信号 + 762e: 8461 ld.b r3, (r4, 0x1) + 7630: 2b01 subi r3, 2 + 7632: 74cc zextb r3, r3 + 7634: 3b03 cmphsi r3, 4 + 7636: 0812 bt 0x765a // 765a + c_rly.rly_zero = ZEROCROSSING; + 7638: 3301 movi r3, 1 + 763a: a460 st.b r3, (r4, 0x0) + c_rly.rly_zCnt = 0; + 763c: 3300 movi r3, 0 + }else { //无过零信号 + c_rly.rly_zero = UNZEROCROSSING; + c_rly.rly_zCnt = 0; + 763e: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7640: e3ffe194 bsr 0x3968 // 3968 + } + + if(c_rly.rly_control != 0x02) return; + 7644: 8462 ld.b r3, (r4, 0x2) + 7646: 3b42 cmpnei r3, 2 + 7648: 0819 bt 0x767a // 767a + 764a: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 764c: 5d03 subi r0, r5, 1 + 764e: 3803 cmphsi r0, 4 + 7650: 0808 bt 0x7660 // 7660 + 7652: e3ffcb55 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7656: 2117 .short 0x2117 + 7658: 352b .short 0x352b + c_rly.rly_zero = UNZEROCROSSING; + 765a: 3300 movi r3, 0 + 765c: a460 st.b r3, (r4, 0x0) + 765e: 07f0 br 0x763e // 763e + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7660: 8463 ld.b r3, (r4, 0x3) + 7662: 3b41 cmpnei r3, 1 + 7664: 080c bt 0x767c // 767c + RLY1_HOT_OPEN; + 7666: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7668: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 766a: e3fff179 bsr 0x595c // 595c + for (U8_T i = 0; i < RLY_MAX; i++) { + 766e: 2500 addi r5, 1 + 7670: 7554 zextb r5, r5 + 7672: 3d45 cmpnei r5, 5 + 7674: 0bec bt 0x764c // 764c + } + break; + } + } + + c_rly.rly_control = 0x00; + 7676: 3300 movi r3, 0 + 7678: a462 st.b r3, (r4, 0x2) +} + 767a: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 767c: 3b42 cmpnei r3, 2 + 767e: 0bf8 bt 0x766e // 766e + RLY1_HOT_CLOSE; + 7680: 3101 movi r1, 1 + 7682: 07f3 br 0x7668 // 7668 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7684: 8464 ld.b r3, (r4, 0x4) + 7686: 3b41 cmpnei r3, 1 + 7688: 0804 bt 0x7690 // 7690 + RLY2_COLD_OPEN; + 768a: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 768c: 3013 movi r0, 19 + 768e: 07ee br 0x766a // 766a + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7690: 3b42 cmpnei r3, 2 + 7692: 0bee bt 0x766e // 766e + RLY2_COLD_CLOSE; + 7694: 3101 movi r1, 1 + 7696: 07fb br 0x768c // 768c + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7698: 8465 ld.b r3, (r4, 0x5) + 769a: 3b41 cmpnei r3, 1 + 769c: 0804 bt 0x76a4 // 76a4 + RLY3_HIGH_OPEN; + 769e: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 76a0: 3014 movi r0, 20 + 76a2: 07e4 br 0x766a // 766a + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 76a4: 3b42 cmpnei r3, 2 + 76a6: 0be4 bt 0x766e // 766e + RLY3_HIGH_CLOSE; + 76a8: 3101 movi r1, 1 + 76aa: 07fb br 0x76a0 // 76a0 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 76ac: 8466 ld.b r3, (r4, 0x6) + 76ae: 3b41 cmpnei r3, 1 + 76b0: 0804 bt 0x76b8 // 76b8 + RLY4_MID_OPEN; + 76b2: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 76b4: 3015 movi r0, 21 + 76b6: 07da br 0x766a // 766a + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 76b8: 3b42 cmpnei r3, 2 + 76ba: 0bda bt 0x766e // 766e + RLY4_MID_CLOSE; + 76bc: 3101 movi r1, 1 + 76be: 07fb br 0x76b4 // 76b4 + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 76c0: 8467 ld.b r3, (r4, 0x7) + 76c2: 3b41 cmpnei r3, 1 + 76c4: 0804 bt 0x76cc // 76cc + RLY5_LOW_OPEN; + 76c6: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 76c8: 3016 movi r0, 22 + 76ca: 07d0 br 0x766a // 766a + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 76cc: 3b42 cmpnei r3, 2 + 76ce: 0bd0 bt 0x766e // 766e + RLY5_LOW_CLOSE; + 76d0: 3101 movi r1, 1 + 76d2: 07fb br 0x76c8 // 76c8 + 76d4: 200000c0 .long 0x200000c0 + 76d8: 200005dc .long 0x200005dc + +Disassembly of section .text.RLY_Zero_Control: + +000076dc : + * @brief 有过零信号控制继电器,在中断中调用 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + 76dc: 14d2 push r4-r5, r15 + if(c_rly.rly_control != 0x01) return; + 76de: 1185 lrw r4, 0x200005dc // 7770 + 76e0: 8462 ld.b r3, (r4, 0x2) + 76e2: 3b41 cmpnei r3, 1 + 76e4: 0818 bt 0x7714 // 7714 + 76e6: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 76e8: 5d03 subi r0, r5, 1 + 76ea: 3803 cmphsi r0, 4 + 76ec: 0805 bt 0x76f6 // 76f6 + 76ee: e3ffcb07 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 76f2: 2016 .short 0x2016 + 76f4: 342a .short 0x342a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 76f6: 8463 ld.b r3, (r4, 0x3) + 76f8: 3b41 cmpnei r3, 1 + 76fa: 080e bt 0x7716 // 7716 + RLY1_HOT_OPEN; + 76fc: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 76fe: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7700: e3fff12e bsr 0x595c // 595c + for (U8_T i = 0; i < RLY_MAX; i++) { + 7704: 2500 addi r5, 1 + 7706: 7554 zextb r5, r5 + 7708: 3d45 cmpnei r5, 5 + 770a: 0bef bt 0x76e8 // 76e8 + break; + } + + } + + TimeCall_SIO_Send2(); + 770c: e3fff05c bsr 0x57c4 // 57c4 + + c_rly.rly_control = 0x00; + 7710: 3300 movi r3, 0 + 7712: a462 st.b r3, (r4, 0x2) + 7714: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7716: 3b42 cmpnei r3, 2 + 7718: 0bf6 bt 0x7704 // 7704 + RLY1_HOT_CLOSE; + 771a: 3101 movi r1, 1 + 771c: 07f1 br 0x76fe // 76fe + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 771e: 8464 ld.b r3, (r4, 0x4) + 7720: 3b41 cmpnei r3, 1 + 7722: 0804 bt 0x772a // 772a + RLY2_COLD_OPEN; + 7724: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7726: 3013 movi r0, 19 + 7728: 07ec br 0x7700 // 7700 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 772a: 3b42 cmpnei r3, 2 + 772c: 0bec bt 0x7704 // 7704 + RLY2_COLD_CLOSE; + 772e: 3101 movi r1, 1 + 7730: 07fb br 0x7726 // 7726 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7732: 8465 ld.b r3, (r4, 0x5) + 7734: 3b41 cmpnei r3, 1 + 7736: 0804 bt 0x773e // 773e + RLY3_HIGH_OPEN; + 7738: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 773a: 3014 movi r0, 20 + 773c: 07e2 br 0x7700 // 7700 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 773e: 3b42 cmpnei r3, 2 + 7740: 0be2 bt 0x7704 // 7704 + RLY3_HIGH_CLOSE; + 7742: 3101 movi r1, 1 + 7744: 07fb br 0x773a // 773a + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7746: 8466 ld.b r3, (r4, 0x6) + 7748: 3b41 cmpnei r3, 1 + 774a: 0804 bt 0x7752 // 7752 + RLY4_MID_OPEN; + 774c: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 774e: 3015 movi r0, 21 + 7750: 07d8 br 0x7700 // 7700 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7752: 3b42 cmpnei r3, 2 + 7754: 0bd8 bt 0x7704 // 7704 + RLY4_MID_CLOSE; + 7756: 3101 movi r1, 1 + 7758: 07fb br 0x774e // 774e + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 775a: 8467 ld.b r3, (r4, 0x7) + 775c: 3b41 cmpnei r3, 1 + 775e: 0804 bt 0x7766 // 7766 + RLY5_LOW_OPEN; + 7760: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7762: 3016 movi r0, 22 + 7764: 07ce br 0x7700 // 7700 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7766: 3b42 cmpnei r3, 2 + 7768: 0bce bt 0x7704 // 7704 + RLY5_LOW_CLOSE; + 776a: 3101 movi r1, 1 + 776c: 07fb br 0x7762 // 7762 + 776e: 0000 bkpt + 7770: 200005dc .long 0x200005dc + +Disassembly of section .text.NetCRC16: + +00007774 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16(U8_T *aStr ,U16_T len) +{ + 7774: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7776: 3902 cmphsi r1, 3 + 7778: 0c1f bf 0x77b6 // 77b6 + U16_T alen = len-2; //CRC16??????? + 777a: 2901 subi r1, 2 + 777c: 7445 zexth r1, r1 + 777e: 6d43 mov r5, r0 + 7780: 3200 movi r2, 0 + 7782: 106e lrw r3, 0xffff // 77b8 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 778c: 6d8f mov r6, r3 + 778e: 699c and r6, r7 + 7790: 3e40 cmpnei r6, 0 + 7792: 4b61 lsri r3, r3, 1 + 7794: 0c04 bf 0x779c // 779c + 7796: 10ca lrw r6, 0xffffa001 // 77bc + 7798: 6cd9 xor r3, r6 + 779a: 74cd zexth r3, r3 + 779c: 2c00 subi r4, 1 + 779e: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 77a0: 3c40 cmpnei r4, 0 + 77a2: 0bf5 bt 0x778c // 778c + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 77ae: 6040 addu r1, r0 + 77b0: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 77b2: 4b68 lsri r3, r3, 8 + 77b4: a161 st.b r3, (r1, 0x1) +} + 77b6: 1484 pop r4-r7 + 77b8: 0000ffff .long 0x0000ffff + 77bc: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +000077c0 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 77c0: 14c3 push r4-r6 + 77c2: 6cc3 mov r3, r0 + 77c4: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 77c6: 10ac lrw r5, 0xffffa001 // 77f4 + xda = 0xFFFF ; + 77c8: 100c lrw r0, 0xffff // 77f8 + for (i = 0; i < len; i++) + 77ca: 644e cmpne r3, r1 + 77cc: 0802 bt 0x77d0 // 77d0 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 77ce: 1483 pop r4-r6 + xda ^= aStr[i] ; + 77d0: 8340 ld.b r2, (r3, 0x0) + 77d2: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 77d4: 3601 movi r6, 1 + xda ^= aStr[i] ; + 77d6: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 77d8: 6d03 mov r4, r0 + 77da: 6918 and r4, r6 + 77dc: 3c40 cmpnei r4, 0 + 77de: 4801 lsri r0, r0, 1 + 77e0: 0c03 bf 0x77e6 // 77e6 + 77e2: 6c15 xor r0, r5 + 77e4: 7401 zexth r0, r0 + 77e6: 2a00 subi r2, 1 + 77e8: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 77ea: 3a40 cmpnei r2, 0 + 77ec: 0bf6 bt 0x77d8 // 77d8 + 77ee: 2300 addi r3, 1 + 77f0: 07ed br 0x77ca // 77ca + 77f2: 0000 bkpt + 77f4: ffffa001 .long 0xffffa001 + 77f8: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +000077fc : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 77fc: 6cc3 mov r3, r0 + 77fe: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 7800: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 7802: 644e cmpne r3, r1 + 7804: 0802 bt 0x7808 // 7808 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7806: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7808: 8340 ld.b r2, (r3, 0x0) + 780a: 6008 addu r0, r2 + 780c: 7400 zextb r0, r0 + 780e: 2300 addi r3, 1 + 7810: 07f9 br 0x7802 // 7802 + +Disassembly of section .text.Rs485_ASend: + +00007814 : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 7814: 14d1 push r4, r15 + 7816: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7818: 117d lrw r3, 0x200004f0 // 790c + 781a: 8347 ld.b r2, (r3, 0x7) + 781c: 3a42 cmpnei r2, 2 +{ + 781e: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7820: 0864 bt 0x78e8 // 78e8 + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7822: 3255 movi r2, 85 + 7824: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + 7828: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + 782c: 3200 movi r2, 0 + 782e: 2a11 subi r2, 18 + 7830: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + 7834: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + 7836: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + 7838: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + 783c: 3203 movi r2, 3 + 783e: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 7842: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7846: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7848: 1152 lrw r2, 0x200005a4 // 7910 + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 784a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 784e: 8262 ld.b r3, (r2, 0x2) + 7850: 4b27 lsri r1, r3, 7 + 7852: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 7856: 3100 movi r1, 0 + 7858: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == 0x00) { + 785c: 3170 movi r1, 112 + 785e: 68c4 and r3, r1 + 7860: 3b40 cmpnei r3, 0 + 7862: 0845 bt 0x78ec // 78ec + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 7864: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7866: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 786a: 8261 ld.b r3, (r2, 0x1) + 786c: 3b40 cmpnei r3, 0 + 786e: 0802 bt 0x7872 // 7872 + 7870: 3320 movi r3, 32 + 7872: dc6e000e st.b r3, (r14, 0xe) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7876: 3300 movi r3, 0 + 7878: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 787c: 8262 ld.b r3, (r2, 0x2) + 787e: 437c lsli r3, r3, 28 + 7880: 4b7d lsri r3, r3, 29 + 7882: 3104 movi r1, 4 + 7884: 604e subu r1, r3 + 7886: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 7888: 3b40 cmpnei r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 788a: dc2e0010 st.b r1, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 788e: 0c39 bf 0x7900 // 7900 + 7890: 3b03 cmphsi r3, 4 + 7892: 083b bt 0x7908 // 7908 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + 7894: dc2e0011 st.b r1, (r14, 0x11) + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7898: 8222 ld.b r1, (r2, 0x2) + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 789a: 3300 movi r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 789c: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 789e: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 78a2: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 78a6: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 78a8: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 78ac: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 78b0: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 78b4: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 78b6: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 78b8: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 78ba: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 78be: 0802 bt 0x78c2 // 78c2 + 78c0: 3320 movi r3, 32 + 78c2: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 78c6: 3300 movi r3, 0 + 78c8: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 78cc: 1b01 addi r3, r14, 4 + 78ce: 5b0a addi r0, r3, 3 + 78d0: 3115 movi r1, 21 + 78d2: e3ffff51 bsr 0x7774 // 7774 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 78d6: 3396 movi r3, 150 + 78d8: 4361 lsli r3, r3, 1 + 78da: b860 st.w r3, (r14, 0x0) + 78dc: 3201 movi r2, 1 + 78de: 6cd3 mov r3, r4 + 78e0: 3118 movi r1, 24 + 78e2: 1801 addi r0, r14, 4 + 78e4: e3ffe204 bsr 0x3cec // 3cec + +} + 78e8: 1407 addi r14, r14, 28 + 78ea: 1491 pop r4, r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 78ec: 3120 movi r1, 32 + 78ee: 644e cmpne r3, r1 + 78f0: 0803 bt 0x78f6 // 78f6 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 78f2: 3302 movi r3, 2 + 78f4: 07b9 br 0x7866 // 7866 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 78f6: 3140 movi r1, 64 + 78f8: 644e cmpne r3, r1 + 78fa: 0bb8 bt 0x786a // 786a + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 78fc: 3303 movi r3, 3 + 78fe: 07b4 br 0x7866 // 7866 + SendData[13] = 0x00; // + 7900: 3300 movi r3, 0 + SendData[13] = 0x04; // + 7902: dc6e0011 st.b r3, (r14, 0x11) + break; + 7906: 07c9 br 0x7898 // 7898 + SendData[13] = 0x04; // + 7908: 3304 movi r3, 4 + 790a: 07fc br 0x7902 // 7902 + 790c: 200004f0 .long 0x200004f0 + 7910: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Rs485AskCycleSend: + +00007914 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 7914: 14d0 push r15 + 7916: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7918: 3355 movi r3, 85 + 791a: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 791e: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 7922: 3300 movi r3, 0 + 7924: 2b11 subi r3, 18 + 7926: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 792a: 3315 movi r3, 21 + 792c: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 7930: 3303 movi r3, 3 + 7932: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 7936: 1175 lrw r3, 0x200004f0 // 7a08 + 7938: 8360 ld.b r3, (r3, 0x0) + 793a: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 793e: 3300 movi r3, 0 + 7940: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7944: 1172 lrw r3, 0x200005a4 // 7a0c + 7946: 8342 ld.b r2, (r3, 0x2) + 7948: 4a27 lsri r1, r2, 7 + 794a: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 794e: 3100 movi r1, 0 + 7950: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == 0x00) { + 7954: 3170 movi r1, 112 + 7956: 6884 and r2, r1 + 7958: 3a40 cmpnei r2, 0 + 795a: 0846 bt 0x79e6 // 79e6 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 795c: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 795e: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7962: 8341 ld.b r2, (r3, 0x1) + 7964: 3a40 cmpnei r2, 0 + 7966: 0802 bt 0x796a // 796a + 7968: 3220 movi r2, 32 + 796a: dc4e000e st.b r2, (r14, 0xe) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 796e: 3200 movi r2, 0 + 7970: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7974: 8342 ld.b r2, (r3, 0x2) + 7976: 425c lsli r2, r2, 28 + 7978: 4a5d lsri r2, r2, 29 + 797a: 3104 movi r1, 4 + 797c: 604a subu r1, r2 + 797e: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + 7980: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7982: dc2e0010 st.b r1, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 7986: 0c3a bf 0x79fa // 79fa + 7988: 3a03 cmphsi r2, 4 + 798a: 083c bt 0x7a02 // 7a02 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + 798c: dc2e0011 st.b r1, (r14, 0x11) + break; + default: + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 7990: 3200 movi r2, 0 + 7992: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 7996: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 799a: 8342 ld.b r2, (r3, 0x2) + 799c: 425f lsli r2, r2, 31 + 799e: 4a5f lsri r2, r2, 31 + 79a0: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 79a2: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 79a4: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 79a8: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 79aa: 3200 movi r2, 0 + 79ac: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 79b0: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 79b4: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 79b8: 0802 bt 0x79bc // 79bc + 79ba: 3320 movi r3, 32 + 79bc: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 79c0: 3300 movi r3, 0 + 79c2: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 79c6: 1b01 addi r3, r14, 4 + 79c8: 5b0a addi r0, r3, 3 + 79ca: 3115 movi r1, 21 + 79cc: e3fffed4 bsr 0x7774 // 7774 + + //MCU485_SendData(SendData, 24); + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 79d0: 3314 movi r3, 20 + 79d2: b860 st.w r3, (r14, 0x0) + 79d4: 3396 movi r3, 150 + 79d6: 4361 lsli r3, r3, 1 + 79d8: 3201 movi r2, 1 + 79da: 3118 movi r1, 24 + 79dc: 1801 addi r0, r14, 4 + 79de: e3ffe187 bsr 0x3cec // 3cec + +} + 79e2: 1407 addi r14, r14, 28 + 79e4: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + 79e6: 3120 movi r1, 32 + 79e8: 644a cmpne r2, r1 + 79ea: 0803 bt 0x79f0 // 79f0 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 79ec: 3202 movi r2, 2 + 79ee: 07b8 br 0x795e // 795e + }else if (TempCtrl.TemState_Now.mode == 0x04) { + 79f0: 3140 movi r1, 64 + 79f2: 644a cmpne r2, r1 + 79f4: 0bb7 bt 0x7962 // 7962 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 79f6: 3203 movi r2, 3 + 79f8: 07b3 br 0x795e // 795e + SendData[13] = 0x00; // + 79fa: 3200 movi r2, 0 + SendData[13] = 0x04; // + 79fc: dc4e0011 st.b r2, (r14, 0x11) + break; + 7a00: 07c8 br 0x7990 // 7990 + SendData[13] = 0x04; // + 7a02: 3204 movi r2, 4 + 7a04: 07fc br 0x79fc // 79fc + 7a06: 0000 bkpt + 7a08: 200004f0 .long 0x200004f0 + 7a0c: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Rs485AskCtrlSend: + +00007a10 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 7a10: 14d0 push r15 + 7a12: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 7a14: 3355 movi r3, 85 + 7a16: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 7a1a: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 7a1e: 3300 movi r3, 0 + 7a20: 2b11 subi r3, 18 + 7a22: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 7a26: 3307 movi r3, 7 + 7a28: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7a2c: 3303 movi r3, 3 + 7a2e: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7a32: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 7a34: 106d lrw r3, 0x200004f0 // 7a68 + 7a36: 8360 ld.b r3, (r3, 0x0) + 7a38: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 7a3c: 8066 ld.b r3, (r0, 0x6) + 7a3e: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 7a42: 8067 ld.b r3, (r0, 0x7) + 7a44: dc6e000b st.b r3, (r14, 0xb) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7a48: 1b01 addi r3, r14, 4 + 7a4a: 5b0a addi r0, r3, 3 + 7a4c: e3fffe94 bsr 0x7774 // 7774 + +// MCU485_SendData(SendData, 10); + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 7a50: 3314 movi r3, 20 + 7a52: b860 st.w r3, (r14, 0x0) + 7a54: 3396 movi r3, 150 + 7a56: 4361 lsli r3, r3, 1 + 7a58: 3201 movi r2, 1 + 7a5a: 310a movi r1, 10 + 7a5c: 1801 addi r0, r14, 4 + 7a5e: e3ffe147 bsr 0x3cec // 3cec + +} + 7a62: 1404 addi r14, r14, 16 + 7a64: 1490 pop r15 + 7a66: 0000 bkpt + 7a68: 200004f0 .long 0x200004f0 + +Disassembly of section .text.Rs485AskReadSend: + +00007a6c : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 7a6c: 14d0 push r15 + 7a6e: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 7a70: 3355 movi r3, 85 + 7a72: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 7a76: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 7a7a: 3300 movi r3, 0 + 7a7c: 2b11 subi r3, 18 + 7a7e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 7a82: 3309 movi r3, 9 + 7a84: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7a88: 3303 movi r3, 3 + 7a8a: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7a8e: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 7a90: 106f lrw r3, 0x200004f0 // 7acc + 7a92: 8340 ld.b r2, (r3, 0x0) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 7a94: 8367 ld.b r3, (r3, 0x7) + SendData[5] = g_eeprom.dev_addr; + 7a96: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 7a9a: dc6e000d st.b r3, (r14, 0xd) + SendData[6] = Recdata[6]; + 7a9e: 8046 ld.b r2, (r0, 0x6) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7aa0: 1b01 addi r3, r14, 4 + SendData[6] = Recdata[6]; + 7aa2: dc4e000a st.b r2, (r14, 0xa) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7aa6: 5b0a addi r0, r3, 3 + SendData[7] = Project_FW_Version; + 7aa8: 3202 movi r2, 2 + 7aaa: dc4e000b st.b r2, (r14, 0xb) + SendData[8] = Project_HW_Version; + 7aae: dc4e000c st.b r2, (r14, 0xc) + NetCRC16(&SendData[0+3], SendData[0+3]); //校验 + 7ab2: e3fffe61 bsr 0x7774 // 7774 + +// MCU485_SendData(SendData, 12); + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 7ab6: 3314 movi r3, 20 + 7ab8: b860 st.w r3, (r14, 0x0) + 7aba: 3396 movi r3, 150 + 7abc: 4361 lsli r3, r3, 1 + 7abe: 3201 movi r2, 1 + 7ac0: 310c movi r1, 12 + 7ac2: 1801 addi r0, r14, 4 + 7ac4: e3ffe114 bsr 0x3cec // 3cec +} + 7ac8: 1404 addi r14, r14, 16 + 7aca: 1490 pop r15 + 7acc: 200004f0 .long 0x200004f0 + +Disassembly of section .text.Rs485_DevPort_ACK: + +00007ad0 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 7ad0: 14d0 push r15 + 7ad2: 1421 subi r14, r14, 4 + +// MCU485_SendData(Recdata, Lens); + + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 7ad4: 3314 movi r3, 20 + 7ad6: b860 st.w r3, (r14, 0x0) + 7ad8: 3396 movi r3, 150 + 7ada: 7445 zexth r1, r1 + 7adc: 4361 lsli r3, r3, 1 + 7ade: 3201 movi r2, 1 + 7ae0: e3ffe106 bsr 0x3cec // 3cec +} + 7ae4: 1401 addi r14, r14, 4 + 7ae6: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +00007ae8 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 7ae8: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 7aea: 3300 movi r3, 0 + 7aec: 2b08 subi r3, 9 + 7aee: 60c4 addu r3, r1 + 7af0: 74cd zexth r3, r3 + 7af2: 3b01 cmphsi r3, 2 +{ + 7af4: 6d03 mov r4, r0 + 7af6: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 7af8: 08c8 bt 0x7c88 // 7c88 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 7afa: 8060 ld.b r3, (r0, 0x0) + 7afc: 3255 movi r2, 85 + 7afe: 648e cmpne r3, r2 + 7b00: 08c0 bt 0x7c80 // 7c80 + 7b02: 8041 ld.b r2, (r0, 0x1) + 7b04: 64ca cmpne r2, r3 + 7b06: 08bd bt 0x7c80 // 7c80 + 7b08: 8042 ld.b r2, (r0, 0x2) + 7b0a: 33ee movi r3, 238 + 7b0c: 64ca cmpne r2, r3 + 7b0e: 08b9 bt 0x7c80 // 7c80 + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + 7b10: 8023 ld.b r1, (r0, 0x3) + 7b12: 596a addi r3, r1, 3 + 7b14: 654e cmpne r3, r5 + 7b16: 08b7 bt 0x7c84 // 7c84 + 7b18: 8004 ld.b r0, (r0, 0x4) + 7b1a: 3843 cmpnei r0, 3 + 7b1c: 08b4 bt 0x7c84 // 7c84 + 7b1e: 12dc lrw r6, 0x200004f0 // 7c8c + 7b20: 8640 ld.b r2, (r6, 0x0) + 7b22: 8465 ld.b r3, (r4, 0x5) + 7b24: 64ca cmpne r2, r3 + 7b26: 08ae bt 0x7c82 // 7c82 + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 7b28: 2901 subi r1, 2 + 7b2a: 7445 zexth r1, r1 + 7b2c: 5c0a addi r0, r4, 3 + 7b2e: e3fffe49 bsr 0x77c0 // 77c0 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 7b32: 5c54 addu r2, r4, r5 + 7b34: 5a63 subi r3, r2, 1 + 7b36: 8360 ld.b r3, (r3, 0x0) + 7b38: 2a01 subi r2, 2 + 7b3a: 4368 lsli r3, r3, 8 + 7b3c: 8240 ld.b r2, (r2, 0x0) + 7b3e: 60c8 addu r3, r2 + 7b40: 64c2 cmpne r0, r3 + 7b42: 08a3 bt 0x7c88 // 7c88 + { + switch(RecData[6]) + 7b44: 8406 ld.b r0, (r4, 0x6) + 7b46: 2800 subi r0, 1 + 7b48: 3811 cmphsi r0, 18 + 7b4a: 0811 bt 0x7b6c // 7b6c + 7b4c: e3ffc8d8 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7b50: 1e1e1e1e .long 0x1e1e1e1e + 7b54: 0e0e0e0e .long 0x0e0e0e0e + 7b58: 0e0e090e .long 0x0e0e090e + 7b5c: 220e0e0e .long 0x220e0e0e + 7b60: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 7b62: 8667 ld.b r3, (r6, 0x7) + 7b64: 3b42 cmpnei r3, 2 + 7b66: 080c bt 0x7b7e // 7b7e + { + Clear_SendFlag(); + 7b68: e3ffe0f0 bsr 0x3d48 // 3d48 + } + + } + break; + } + switch(RecData[6]) + 7b6c: 8406 ld.b r0, (r4, 0x6) + 7b6e: 2800 subi r0, 1 + 7b70: 3803 cmphsi r0, 4 + 7b72: 0808 bt 0x7b82 // 7b82 + 7b74: 8467 ld.b r3, (r4, 0x7) + 7b76: e3ffc8c3 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7b7a: 4836 .short 0x4836 + 7b7c: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + 7b7e: 3b41 cmpnei r3, 1 + 7b80: 0c03 bf 0x7b86 // 7b86 + break; + } + break; + } + + return ret; + 7b82: 3000 movi r0, 0 + 7b84: 047f br 0x7c82 // 7c82 + Rs485AskCycleSend(); + 7b86: e3fffec7 bsr 0x7914 // 7914 + 7b8a: 07f1 br 0x7b6c // 7b6c + Rs485AskCtrlSend(RecData); + 7b8c: 6c13 mov r0, r4 + 7b8e: e3ffff41 bsr 0x7a10 // 7a10 + 7b92: 07ed br 0x7b6c // 7b6c + Rs485AskReadSend(RecData); //版本号查询 + 7b94: 6c13 mov r0, r4 + 7b96: e3ffff6b bsr 0x7a6c // 7a6c + 7b9a: 07e9 br 0x7b6c // 7b6c + Rs485AskCtrlSend(RecData); + 7b9c: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7b9e: 11bd lrw r5, 0x200005a4 // 7c90 + Rs485AskCtrlSend(RecData); + 7ba0: e3ffff38 bsr 0x7a10 // 7a10 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7ba4: 855a ld.b r2, (r5, 0x1a) + 7ba6: 113c lrw r1, 0xa57d // 7c94 + 7ba8: 3000 movi r0, 0 + 7baa: e3ffe139 bsr 0x3e1c // 3e1c + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 7bae: 8467 ld.b r3, (r4, 0x7) + 7bb0: 855a ld.b r2, (r5, 0x1a) + 7bb2: 64ca cmpne r2, r3 + 7bb4: 0fdc bf 0x7b6c // 7b6c + if(TempCtrl.CardEn == 0x00) + 7bb6: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 7bb8: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 7bba: 0bd9 bt 0x7b6c // 7b6c + TempCtrl.CardState = 0x01; + 7bbc: 3301 movi r3, 1 + 7bbe: a578 st.b r3, (r5, 0x18) + 7bc0: 07d6 br 0x7b6c // 7b6c + if(RecData[7] != g_eeprom.dev_port) + 7bc2: 8467 ld.b r3, (r4, 0x7) + 7bc4: 8647 ld.b r2, (r6, 0x7) + 7bc6: 64ca cmpne r2, r3 + 7bc8: 0fdd bf 0x7b82 // 7b82 + EEPROM_WriteParaInfo(&g_eeprom); + 7bca: 1111 lrw r0, 0x200004f0 // 7c8c + g_eeprom.dev_port = RecData[7]; + 7bcc: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 7bce: e3ffe5e7 bsr 0x479c // 479c + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 7bd2: 110f lrw r0, 0x200004f0 // 7c8c + 7bd4: e3ffe5aa bsr 0x4728 // 4728 + if(rev_val == 0x00){ + 7bd8: 3840 cmpnei r0, 0 + 7bda: 0bc9 bt 0x7b6c // 7b6c + Rs485_DevPort_ACK(RecData,Len); + 7bdc: 7454 zextb r1, r5 + 7bde: 6c13 mov r0, r4 + 7be0: e3ffff78 bsr 0x7ad0 // 7ad0 + 7be4: 07c4 br 0x7b6c // 7b6c + switch(RecData[7]) + 7be6: 74cc zextb r3, r3 + 7be8: 3b40 cmpnei r3, 0 + 7bea: 0c0a bf 0x7bfe // 7bfe + 7bec: 3b41 cmpnei r3, 1 + 7bee: 0bca bt 0x7b82 // 7b82 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 7bf0: 1128 lrw r1, 0x200005a4 // 7c90 + 7bf2: 3200 movi r2, 0 + 7bf4: 8162 ld.b r3, (r1, 0x2) + 7bf6: 2a7f subi r2, 128 + 7bf8: 6cc8 or r3, r2 + 7bfa: a162 st.b r3, (r1, 0x2) + 7bfc: 07c3 br 0x7b82 // 7b82 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 7bfe: 1145 lrw r2, 0x200005a4 // 7c90 + 7c00: 8262 ld.b r3, (r2, 0x2) + 7c02: 317f movi r1, 127 + 7c04: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 7c06: a262 st.b r3, (r2, 0x2) + 7c08: 07bd br 0x7b82 // 7b82 + switch(RecData[7]) // + 7c0a: 74cc zextb r3, r3 + 7c0c: 3b42 cmpnei r3, 2 + 7c0e: 0c0a bf 0x7c22 // 7c22 + 7c10: 3b43 cmpnei r3, 3 + 7c12: 0c0e bf 0x7c2e // 7c2e + 7c14: 3b41 cmpnei r3, 1 + 7c16: 0bb6 bt 0x7b82 // 7b82 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 7c18: 105e lrw r2, 0x200005a4 // 7c90 + 7c1a: 8262 ld.b r3, (r2, 0x2) + 7c1c: 3170 movi r1, 112 + 7c1e: 68c5 andn r3, r1 + 7c20: 07f3 br 0x7c06 // 7c06 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 7c22: 105c lrw r2, 0x200005a4 // 7c90 + 7c24: 8262 ld.b r3, (r2, 0x2) + 7c26: 3170 movi r1, 112 + 7c28: 68c5 andn r3, r1 + 7c2a: 3ba5 bseti r3, 5 + 7c2c: 07ed br 0x7c06 // 7c06 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 7c2e: 1059 lrw r2, 0x200005a4 // 7c90 + 7c30: 8262 ld.b r3, (r2, 0x2) + 7c32: 3170 movi r1, 112 + 7c34: 68c5 andn r3, r1 + 7c36: 3ba6 bseti r3, 6 + 7c38: 07e7 br 0x7c06 // 7c06 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 7c3a: 3200 movi r2, 0 + 7c3c: 74cc zextb r3, r3 + 7c3e: 2a0f subi r2, 16 + 7c40: 608c addu r2, r3 + 7c42: 7488 zextb r2, r2 + 7c44: 3a0f cmphsi r2, 16 + 7c46: 0804 bt 0x7c4e // 7c4e + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 7c48: 1052 lrw r2, 0x200005a4 // 7c90 + 7c4a: a261 st.b r3, (r2, 0x1) + 7c4c: 079b br 0x7b82 // 7b82 + }else if(RecData[7] == TEM_MAX_SET){ + 7c4e: 3220 movi r2, 32 + 7c50: 648e cmpne r3, r2 + 7c52: 0b98 bt 0x7b82 // 7b82 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 7c54: 106f lrw r3, 0x200005a4 // 7c90 + 7c56: a341 st.b r2, (r3, 0x1) + 7c58: 0795 br 0x7b82 // 7b82 + switch(RecData[7]) //风速 + 7c5a: 740c zextb r0, r3 + 7c5c: 106d lrw r3, 0x200005a4 // 7c90 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7c5e: 8342 ld.b r2, (r3, 0x2) + 7c60: 310e movi r1, 14 + switch(RecData[7]) //风速 + 7c62: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7c64: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 7c66: 080b bt 0x7c7c // 7c7c + 7c68: e3ffc84a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7c6c: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 7c70: 3aa1 bseti r2, 1 + 7c72: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7c74: a342 st.b r2, (r3, 0x2) + 7c76: 0786 br 0x7b82 // 7b82 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 7c78: 3aa2 bseti r2, 2 + 7c7a: 07fd br 0x7c74 // 7c74 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 7c7c: 3aa1 bseti r2, 1 + 7c7e: 07fb br 0x7c74 // 7c74 + return 0x02; + 7c80: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 7c82: 1493 pop r4-r6, r15 + return 0x03; + 7c84: 3003 movi r0, 3 + 7c86: 07fe br 0x7c82 // 7c82 + return 0x01; + 7c88: 3001 movi r0, 1 + 7c8a: 07fc br 0x7c82 // 7c82 + 7c8c: 200004f0 .long 0x200004f0 + 7c90: 200005a4 .long 0x200005a4 + 7c94: 0000a57d .long 0x0000a57d + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00007c98 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 7c98: 14d2 push r4-r5, r15 + 7c9a: 6d43 mov r5, r0 + 7c9c: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 7c9e: e3ffff25 bsr 0x7ae8 // 7ae8 + 7ca2: 3840 cmpnei r0, 0 + 7ca4: 0803 bt 0x7caa // 7caa + { + return ret = 1; + } + } + + return ret; + 7ca6: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7ca8: 0404 br 0x7cb0 // 7cb0 + if (Len < 5){ //长度校验 + 7caa: 3c04 cmphsi r4, 5 + 7cac: 0803 bt 0x7cb2 // 7cb2 + return ret = 1; + 7cae: 3001 movi r0, 1 + 7cb0: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 7cb2: 8540 ld.b r2, (r5, 0x0) + 7cb4: 33ff movi r3, 255 + 7cb6: 64ca cmpne r2, r3 + 7cb8: 0c04 bf 0x7cc0 // 7cc0 + 7cba: 8561 ld.b r3, (r5, 0x1) + 7cbc: 3b48 cmpnei r3, 8 + 7cbe: 0bf8 bt 0x7cae // 7cae + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 7cc0: 1125 lrw r1, 0xa58c // 7d54 + 7cc2: 3000 movi r0, 0 + 7cc4: e3ffe0ac bsr 0x3e1c // 3e1c + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 7cc8: 3c45 cmpnei r4, 5 + 7cca: 0814 bt 0x7cf2 // 7cf2 + 7ccc: 3104 movi r1, 4 + 7cce: 6c17 mov r0, r5 + 7cd0: e3fffd96 bsr 0x77fc // 77fc + 7cd4: 8564 ld.b r3, (r5, 0x4) + 7cd6: 640e cmpne r3, r0 + 7cd8: 0beb bt 0x7cae // 7cae + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 7cda: 1160 lrw r3, 0x200005a4 // 7d58 + 7cdc: 8542 ld.b r2, (r5, 0x2) + 7cde: 8338 ld.b r1, (r3, 0x18) + 7ce0: 6486 cmpne r1, r2 + 7ce2: 0fe2 bf 0x7ca6 // 7ca6 + 7ce4: 833a ld.b r1, (r3, 0x1a) + 7ce6: 3941 cmpnei r1, 1 + 7ce8: 0bdf bt 0x7ca6 // 7ca6 + TempCtrl.CardState = RecData[2]; + 7cea: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 7cec: 3201 movi r2, 1 + 7cee: a359 st.b r2, (r3, 0x19) + 7cf0: 07db br 0x7ca6 // 7ca6 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 7cf2: 3c09 cmphsi r4, 10 + 7cf4: 0fdd bf 0x7cae // 7cae + 7cf6: 5c27 subi r1, r4, 2 + 7cf8: 7445 zexth r1, r1 + 7cfa: 6114 addu r4, r5 + 7cfc: 6c17 mov r0, r5 + 7cfe: e3fffd61 bsr 0x77c0 // 77c0 + 7d02: 5c63 subi r3, r4, 1 + 7d04: 8360 ld.b r3, (r3, 0x0) + 7d06: 2c01 subi r4, 2 + 7d08: 4368 lsli r3, r3, 8 + 7d0a: 8440 ld.b r2, (r4, 0x0) + 7d0c: 60c8 addu r3, r2 + 7d0e: 64c2 cmpne r0, r3 + 7d10: 0bcf bt 0x7cae // 7cae + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 7d12: 1072 lrw r3, 0x200005a4 // 7d58 + 7d14: 8543 ld.b r2, (r5, 0x3) + 7d16: 8338 ld.b r1, (r3, 0x18) + 7d18: 6486 cmpne r1, r2 + 7d1a: 0c07 bf 0x7d28 // 7d28 + 7d1c: 833a ld.b r1, (r3, 0x1a) + 7d1e: 3941 cmpnei r1, 1 + 7d20: 0804 bt 0x7d28 // 7d28 + TempCtrl.CardState = RecData[3]; + 7d22: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 7d24: 3201 movi r2, 1 + 7d26: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 7d28: 8547 ld.b r2, (r5, 0x7) + 7d2a: 833b ld.b r1, (r3, 0x1b) + 7d2c: 6486 cmpne r1, r2 + 7d2e: 0c0d bf 0x7d48 // 7d48 + TempCtrl.SceneNo = RecData[7]; + 7d30: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 7d32: 104b lrw r2, 0x200000c0 // 7d5c + 7d34: 9240 ld.w r2, (r2, 0x0) + 7d36: 4a28 lsri r1, r2, 8 + 7d38: a354 st.b r2, (r3, 0x14) + 7d3a: a335 st.b r1, (r3, 0x15) + 7d3c: 4a30 lsri r1, r2, 16 + 7d3e: 4a58 lsri r2, r2, 24 + 7d40: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 7d42: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 7d44: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 7d46: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 7d48: 835b ld.b r2, (r3, 0x1b) + 7d4a: 1026 lrw r1, 0xa59e // 7d60 + 7d4c: 3000 movi r0, 0 + 7d4e: e3ffe067 bsr 0x3e1c // 3e1c + 7d52: 07aa br 0x7ca6 // 7ca6 + 7d54: 0000a58c .long 0x0000a58c + 7d58: 200005a4 .long 0x200005a4 + 7d5c: 200000c0 .long 0x200000c0 + 7d60: 0000a59e .long 0x0000a59e + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00007d64 : + 7d64: 1063 lrw r3, 0x20000058 // 7d70 + 7d66: 9340 ld.w r2, (r3, 0x0) + 7d68: 926b ld.w r3, (r2, 0x2c) + 7d6a: 6c0c or r0, r3 + 7d6c: b20b st.w r0, (r2, 0x2c) + 7d6e: 783c jmp r15 + 7d70: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00007d74 : + 7d74: 14c1 push r4 + 7d76: 1069 lrw r3, 0x20000058 // 7d98 + 7d78: 3840 cmpnei r0, 0 + 7d7a: 9380 ld.w r4, (r3, 0x0) + 7d7c: 9400 ld.w r0, (r4, 0x0) + 7d7e: 0c0b bf 0x7d94 // 7d94 + 7d80: 38a0 bseti r0, 0 + 7d82: b400 st.w r0, (r4, 0x0) + 7d84: 9360 ld.w r3, (r3, 0x0) + 7d86: 4248 lsli r2, r2, 8 + 7d88: 4122 lsli r1, r1, 2 + 7d8a: 9300 ld.w r0, (r3, 0x0) + 7d8c: 6c48 or r1, r2 + 7d8e: 6c40 or r1, r0 + 7d90: b320 st.w r1, (r3, 0x0) + 7d92: 1481 pop r4 + 7d94: 3880 bclri r0, 0 + 7d96: 07f6 br 0x7d82 // 7d82 + 7d98: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +00007d9c : + 7d9c: 14c4 push r4-r7 + 7d9e: 1429 subi r14, r14, 36 + 7da0: b840 st.w r2, (r14, 0x0) + 7da2: 984d ld.w r2, (r14, 0x34) + 7da4: b841 st.w r2, (r14, 0x4) + 7da6: 984e ld.w r2, (r14, 0x38) + 7da8: b842 st.w r2, (r14, 0x8) + 7daa: 984f ld.w r2, (r14, 0x3c) + 7dac: b843 st.w r2, (r14, 0xc) + 7dae: 9850 ld.w r2, (r14, 0x40) + 7db0: 9895 ld.w r4, (r14, 0x54) + 7db2: b844 st.w r2, (r14, 0x10) + 7db4: 9853 ld.w r2, (r14, 0x4c) + 7db6: b845 st.w r2, (r14, 0x14) + 7db8: b887 st.w r4, (r14, 0x1c) + 7dba: 9854 ld.w r2, (r14, 0x50) + 7dbc: 1c11 addi r4, r14, 68 + 7dbe: b846 st.w r2, (r14, 0x18) + 7dc0: 8c80 ld.h r4, (r4, 0x0) + 7dc2: 1a15 addi r2, r14, 84 + 7dc4: 1d12 addi r5, r14, 72 + 7dc6: 8244 ld.b r2, (r2, 0x4) + 7dc8: 3c40 cmpnei r4, 0 + 7dca: 8dc0 ld.h r6, (r5, 0x0) + 7dcc: b848 st.w r2, (r14, 0x20) + 7dce: 0813 bt 0x7df4 // 7df4 + 7dd0: 105f lrw r2, 0x2000004c // 7e4c + 7dd2: 35f0 movi r5, 240 + 7dd4: 92e0 ld.w r7, (r2, 0x0) + 7dd6: 9740 ld.w r2, (r7, 0x0) + 7dd8: 45a4 lsli r5, r5, 4 + 7dda: 6895 andn r2, r5 + 7ddc: 3aab bseti r2, 11 + 7dde: b740 st.w r2, (r7, 0x0) + 7de0: 3502 movi r5, 2 + 7de2: 105c lrw r2, 0x20000050 // 7e50 + 7de4: 3e41 cmpnei r6, 1 + 7de6: 9240 ld.w r2, (r2, 0x0) + 7de8: b2a0 st.w r5, (r2, 0x0) + 7dea: 0828 bt 0x7e3a // 7e3a + 7dec: 92a4 ld.w r5, (r2, 0x10) + 7dee: 3db8 bseti r5, 24 + 7df0: 3db9 bseti r5, 25 + 7df2: b2a4 st.w r5, (r2, 0x10) + 7df4: 1058 lrw r2, 0x20000058 // 7e54 + 7df6: 448d lsli r4, r4, 13 + 7df8: 92a0 ld.w r5, (r2, 0x0) + 7dfa: 9541 ld.w r2, (r5, 0x4) + 7dfc: 3200 movi r2, 0 + 7dfe: b541 st.w r2, (r5, 0x4) + 7e00: 9541 ld.w r2, (r5, 0x4) + 7e02: 98c7 ld.w r6, (r14, 0x1c) + 7e04: 6c98 or r2, r6 + 7e06: 98c6 ld.w r6, (r14, 0x18) + 7e08: 6c98 or r2, r6 + 7e0a: 98c5 ld.w r6, (r14, 0x14) + 7e0c: 6c98 or r2, r6 + 7e0e: 98c8 ld.w r6, (r14, 0x20) + 7e10: 46d8 lsli r6, r6, 24 + 7e12: 6c98 or r2, r6 + 7e14: 98c4 ld.w r6, (r14, 0x10) + 7e16: 6c98 or r2, r6 + 7e18: 98c3 ld.w r6, (r14, 0xc) + 7e1a: 6c98 or r2, r6 + 7e1c: 98c2 ld.w r6, (r14, 0x8) + 7e1e: 6c98 or r2, r6 + 7e20: 98c1 ld.w r6, (r14, 0x4) + 7e22: 6c98 or r2, r6 + 7e24: 6c48 or r1, r2 + 7e26: 9840 ld.w r2, (r14, 0x0) + 7e28: 6c04 or r0, r1 + 7e2a: 4242 lsli r2, r2, 2 + 7e2c: 6c08 or r0, r2 + 7e2e: 6d00 or r4, r0 + 7e30: 4367 lsli r3, r3, 7 + 7e32: 6cd0 or r3, r4 + 7e34: b561 st.w r3, (r5, 0x4) + 7e36: 1409 addi r14, r14, 36 + 7e38: 1484 pop r4-r7 + 7e3a: 3e40 cmpnei r6, 0 + 7e3c: 0bdc bt 0x7df4 // 7df4 + 7e3e: 9264 ld.w r3, (r2, 0x10) + 7e40: 3b98 bclri r3, 24 + 7e42: 3b99 bclri r3, 25 + 7e44: 3bb8 bseti r3, 24 + 7e46: b264 st.w r3, (r2, 0x10) + 7e48: 3300 movi r3, 0 + 7e4a: 07d5 br 0x7df4 // 7df4 + 7e4c: 2000004c .long 0x2000004c + 7e50: 20000050 .long 0x20000050 + 7e54: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_io_enable: + +00007e58 : + 7e58: 14d4 push r4-r7, r15 + 7e5a: 1422 subi r14, r14, 8 + 7e5c: 1269 lrw r3, 0x2000004c // 7f80 + 7e5e: 31f0 movi r1, 240 + 7e60: 9360 ld.w r3, (r3, 0x0) + 7e62: 9340 ld.w r2, (r3, 0x0) + 7e64: 4130 lsli r1, r1, 16 + 7e66: 6885 andn r2, r1 + 7e68: 3ab4 bseti r2, 20 + 7e6a: 3ab7 bseti r2, 23 + 7e6c: b340 st.w r2, (r3, 0x0) + 7e6e: 35f0 movi r5, 240 + 7e70: 1245 lrw r2, 0x20000268 // 7f84 + 7e72: 36f0 movi r6, 240 + 7e74: 9240 ld.w r2, (r2, 0x0) + 7e76: b841 st.w r2, (r14, 0x4) + 7e78: 3400 movi r4, 0 + 7e7a: 1244 lrw r2, 0x20000048 // 7f88 + 7e7c: 45ac lsli r5, r5, 12 + 7e7e: 9240 ld.w r2, (r2, 0x0) + 7e80: b820 st.w r1, (r14, 0x0) + 7e82: 46c8 lsli r6, r6, 8 + 7e84: 3701 movi r7, 1 + 7e86: 71d0 lsl r7, r4 + 7e88: 9821 ld.w r1, (r14, 0x4) + 7e8a: 69c4 and r7, r1 + 7e8c: 3f40 cmpnei r7, 0 + 7e8e: 7410 zextb r0, r4 + 7e90: 0c1b bf 0x7ec6 // 7ec6 + 7e92: 2800 subi r0, 1 + 7e94: 380f cmphsi r0, 16 + 7e96: 080b bt 0x7eac // 7eac + 7e98: e3ffc732 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7e9c: 27201a0f .long 0x27201a0f + 7ea0: 3d38312c .long 0x3d38312c + 7ea4: 56514a44 .long 0x56514a44 + 7ea8: 6c67615b .long 0x6c67615b + 7eac: 9200 ld.w r0, (r2, 0x0) + 7eae: 37f0 movi r7, 240 + 7eb0: 681d andn r0, r7 + 7eb2: 38a4 bseti r0, 4 + 7eb4: 38a7 bseti r0, 7 + 7eb6: b200 st.w r0, (r2, 0x0) + 7eb8: 0407 br 0x7ec6 // 7ec6 + 7eba: 9300 ld.w r0, (r3, 0x0) + 7ebc: 370f movi r7, 15 + 7ebe: 681d andn r0, r7 + 7ec0: 38a0 bseti r0, 0 + 7ec2: 38a3 bseti r0, 3 + 7ec4: b300 st.w r0, (r3, 0x0) + 7ec6: 2400 addi r4, 1 + 7ec8: 3c51 cmpnei r4, 17 + 7eca: 0bdd bt 0x7e84 // 7e84 + 7ecc: 1402 addi r14, r14, 8 + 7ece: 1494 pop r4-r7, r15 + 7ed0: 9300 ld.w r0, (r3, 0x0) + 7ed2: 37f0 movi r7, 240 + 7ed4: 681d andn r0, r7 + 7ed6: 38a4 bseti r0, 4 + 7ed8: 38a7 bseti r0, 7 + 7eda: 07f5 br 0x7ec4 // 7ec4 + 7edc: 37f0 movi r7, 240 + 7ede: 9300 ld.w r0, (r3, 0x0) + 7ee0: 47e4 lsli r7, r7, 4 + 7ee2: 681d andn r0, r7 + 7ee4: 38a8 bseti r0, 8 + 7ee6: 38ab bseti r0, 11 + 7ee8: 07ee br 0x7ec4 // 7ec4 + 7eea: 9300 ld.w r0, (r3, 0x0) + 7eec: 6819 andn r0, r6 + 7eee: 38ac bseti r0, 12 + 7ef0: 38af bseti r0, 15 + 7ef2: 07e9 br 0x7ec4 // 7ec4 + 7ef4: 9300 ld.w r0, (r3, 0x0) + 7ef6: 6815 andn r0, r5 + 7ef8: 38b0 bseti r0, 16 + 7efa: 38b3 bseti r0, 19 + 7efc: 07e4 br 0x7ec4 // 7ec4 + 7efe: 37f0 movi r7, 240 + 7f00: 9200 ld.w r0, (r2, 0x0) + 7f02: 47e4 lsli r7, r7, 4 + 7f04: 681d andn r0, r7 + 7f06: 38a8 bseti r0, 8 + 7f08: 38ab bseti r0, 11 + 7f0a: 07d6 br 0x7eb6 // 7eb6 + 7f0c: 9200 ld.w r0, (r2, 0x0) + 7f0e: 6819 andn r0, r6 + 7f10: 38ac bseti r0, 12 + 7f12: 38af bseti r0, 15 + 7f14: 07d1 br 0x7eb6 // 7eb6 + 7f16: 9301 ld.w r0, (r3, 0x4) + 7f18: 370f movi r7, 15 + 7f1a: 681d andn r0, r7 + 7f1c: 38a0 bseti r0, 0 + 7f1e: 38a3 bseti r0, 3 + 7f20: b301 st.w r0, (r3, 0x4) + 7f22: 07d2 br 0x7ec6 // 7ec6 + 7f24: 9301 ld.w r0, (r3, 0x4) + 7f26: 37f0 movi r7, 240 + 7f28: 681d andn r0, r7 + 7f2a: 38a4 bseti r0, 4 + 7f2c: 38a7 bseti r0, 7 + 7f2e: 07f9 br 0x7f20 // 7f20 + 7f30: 37f0 movi r7, 240 + 7f32: 9301 ld.w r0, (r3, 0x4) + 7f34: 47e4 lsli r7, r7, 4 + 7f36: 681d andn r0, r7 + 7f38: 38a8 bseti r0, 8 + 7f3a: 38ab bseti r0, 11 + 7f3c: 07f2 br 0x7f20 // 7f20 + 7f3e: 9301 ld.w r0, (r3, 0x4) + 7f40: 6819 andn r0, r6 + 7f42: 38ac bseti r0, 12 + 7f44: 38af bseti r0, 15 + 7f46: 07ed br 0x7f20 // 7f20 + 7f48: 9301 ld.w r0, (r3, 0x4) + 7f4a: 6815 andn r0, r5 + 7f4c: 38b0 bseti r0, 16 + 7f4e: 38b3 bseti r0, 19 + 7f50: 07e8 br 0x7f20 // 7f20 + 7f52: 9301 ld.w r0, (r3, 0x4) + 7f54: 9820 ld.w r1, (r14, 0x0) + 7f56: 6805 andn r0, r1 + 7f58: 38b4 bseti r0, 20 + 7f5a: 38b7 bseti r0, 23 + 7f5c: 07e2 br 0x7f20 // 7f20 + 7f5e: 9200 ld.w r0, (r2, 0x0) + 7f60: 370f movi r7, 15 + 7f62: 681d andn r0, r7 + 7f64: 38a0 bseti r0, 0 + 7f66: 38a3 bseti r0, 3 + 7f68: 07a7 br 0x7eb6 // 7eb6 + 7f6a: 9200 ld.w r0, (r2, 0x0) + 7f6c: 6815 andn r0, r5 + 7f6e: 38b0 bseti r0, 16 + 7f70: 38b3 bseti r0, 19 + 7f72: 07a2 br 0x7eb6 // 7eb6 + 7f74: 9200 ld.w r0, (r2, 0x0) + 7f76: 9820 ld.w r1, (r14, 0x0) + 7f78: 6805 andn r0, r1 + 7f7a: 38b4 bseti r0, 20 + 7f7c: 38b7 bseti r0, 23 + 7f7e: 079c br 0x7eb6 // 7eb6 + 7f80: 2000004c .long 0x2000004c + 7f84: 20000268 .long 0x20000268 + 7f88: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Single_Longpress_prg: + +00007f8c : + 7f8c: 14c2 push r4-r5 + 7f8e: 117d lrw r3, 0x2000078c // 8080 + 7f90: 115d lrw r2, 0x200006f8 // 8084 + 7f92: 9360 ld.w r3, (r3, 0x0) + 7f94: 3b40 cmpnei r3, 0 + 7f96: 0840 bt 0x8016 // 8016 + 7f98: 113c lrw r1, 0x20000070 // 8088 + 7f9a: 8962 ld.h r3, (r1, 0x4) + 7f9c: 74cd zexth r3, r3 + 7f9e: 3b40 cmpnei r3, 0 + 7fa0: 0c3b bf 0x8016 // 8016 + 7fa2: 117b lrw r3, 0x2000068c // 808c + 7fa4: 9360 ld.w r3, (r3, 0x0) + 7fa6: 3b40 cmpnei r3, 0 + 7fa8: 117a lrw r3, 0x20000842 // 8090 + 7faa: 0c0e bf 0x7fc6 // 7fc6 + 7fac: 8300 ld.b r0, (r3, 0x0) + 7fae: 2000 addi r0, 1 + 7fb0: 7400 zextb r0, r0 + 7fb2: a300 st.b r0, (r3, 0x0) + 7fb4: 8380 ld.b r4, (r3, 0x0) + 7fb6: 8902 ld.h r0, (r1, 0x4) + 7fb8: 7401 zexth r0, r0 + 7fba: 3564 movi r5, 100 + 7fbc: 7c14 mult r0, r5 + 7fbe: 6501 cmplt r0, r4 + 7fc0: 0c05 bf 0x7fca // 7fca + 7fc2: 3001 movi r0, 1 + 7fc4: a200 st.b r0, (r2, 0x0) + 7fc6: 3000 movi r0, 0 + 7fc8: a300 st.b r0, (r3, 0x0) + 7fca: 1113 lrw r0, 0x20000620 // 8094 + 7fcc: 9000 ld.w r0, (r0, 0x0) + 7fce: 3840 cmpnei r0, 0 + 7fd0: 0c0e bf 0x7fec // 7fec + 7fd2: 8301 ld.b r0, (r3, 0x1) + 7fd4: 2000 addi r0, 1 + 7fd6: 7400 zextb r0, r0 + 7fd8: a301 st.b r0, (r3, 0x1) + 7fda: 8381 ld.b r4, (r3, 0x1) + 7fdc: 8902 ld.h r0, (r1, 0x4) + 7fde: 7401 zexth r0, r0 + 7fe0: 3564 movi r5, 100 + 7fe2: 7c14 mult r0, r5 + 7fe4: 6501 cmplt r0, r4 + 7fe6: 0c05 bf 0x7ff0 // 7ff0 + 7fe8: 3001 movi r0, 1 + 7fea: a201 st.b r0, (r2, 0x1) + 7fec: 3000 movi r0, 0 + 7fee: a301 st.b r0, (r3, 0x1) + 7ff0: 110a lrw r0, 0x20000704 // 8098 + 7ff2: 9000 ld.w r0, (r0, 0x0) + 7ff4: 3840 cmpnei r0, 0 + 7ff6: 0c0e bf 0x8012 // 8012 + 7ff8: 8302 ld.b r0, (r3, 0x2) + 7ffa: 2000 addi r0, 1 + 7ffc: 7400 zextb r0, r0 + 7ffe: a302 st.b r0, (r3, 0x2) + 8000: 8302 ld.b r0, (r3, 0x2) + 8002: 8922 ld.h r1, (r1, 0x4) + 8004: 7445 zexth r1, r1 + 8006: 3464 movi r4, 100 + 8008: 7c50 mult r1, r4 + 800a: 6405 cmplt r1, r0 + 800c: 0c05 bf 0x8016 // 8016 + 800e: 3101 movi r1, 1 + 8010: a222 st.b r1, (r2, 0x2) + 8012: 3100 movi r1, 0 + 8014: a322 st.b r1, (r3, 0x2) + 8016: 8260 ld.b r3, (r2, 0x0) + 8018: 3b41 cmpnei r3, 1 + 801a: 080f bt 0x8038 // 8038 + 801c: 3300 movi r3, 0 + 801e: 11a0 lrw r5, 0x2000093e // 809c + 8020: 1180 lrw r4, 0x200005ec // 80a0 + 8022: 4321 lsli r1, r3, 1 + 8024: 5d04 addu r0, r5, r1 + 8026: 8800 ld.h r0, (r0, 0x0) + 8028: 2300 addi r3, 1 + 802a: 7401 zexth r0, r0 + 802c: 6050 addu r1, r4 + 802e: 3b51 cmpnei r3, 17 + 8030: a900 st.h r0, (r1, 0x0) + 8032: 0bf8 bt 0x8022 // 8022 + 8034: 3300 movi r3, 0 + 8036: a260 st.b r3, (r2, 0x0) + 8038: 8261 ld.b r3, (r2, 0x1) + 803a: 3b41 cmpnei r3, 1 + 803c: 080f bt 0x805a // 805a + 803e: 3300 movi r3, 0 + 8040: 10b9 lrw r5, 0x200006d4 // 80a4 + 8042: 109a lrw r4, 0x20000796 // 80a8 + 8044: 4321 lsli r1, r3, 1 + 8046: 5d04 addu r0, r5, r1 + 8048: 8800 ld.h r0, (r0, 0x0) + 804a: 2300 addi r3, 1 + 804c: 7401 zexth r0, r0 + 804e: 6050 addu r1, r4 + 8050: 3b51 cmpnei r3, 17 + 8052: a900 st.h r0, (r1, 0x0) + 8054: 0bf8 bt 0x8044 // 8044 + 8056: 3300 movi r3, 0 + 8058: a261 st.b r3, (r2, 0x1) + 805a: 8262 ld.b r3, (r2, 0x2) + 805c: 3b41 cmpnei r3, 1 + 805e: 080f bt 0x807c // 807c + 8060: 3300 movi r3, 0 + 8062: 10b3 lrw r5, 0x200007ca // 80ac + 8064: 1093 lrw r4, 0x200008ac // 80b0 + 8066: 4321 lsli r1, r3, 1 + 8068: 5d04 addu r0, r5, r1 + 806a: 8800 ld.h r0, (r0, 0x0) + 806c: 2300 addi r3, 1 + 806e: 7401 zexth r0, r0 + 8070: 6050 addu r1, r4 + 8072: 3b51 cmpnei r3, 17 + 8074: a900 st.h r0, (r1, 0x0) + 8076: 0bf8 bt 0x8066 // 8066 + 8078: 3300 movi r3, 0 + 807a: a262 st.b r3, (r2, 0x2) + 807c: 1482 pop r4-r5 + 807e: 0000 bkpt + 8080: 2000078c .long 0x2000078c + 8084: 200006f8 .long 0x200006f8 + 8088: 20000070 .long 0x20000070 + 808c: 2000068c .long 0x2000068c + 8090: 20000842 .long 0x20000842 + 8094: 20000620 .long 0x20000620 + 8098: 20000704 .long 0x20000704 + 809c: 2000093e .long 0x2000093e + 80a0: 200005ec .long 0x200005ec + 80a4: 200006d4 .long 0x200006d4 + 80a8: 20000796 .long 0x20000796 + 80ac: 200007ca .long 0x200007ca + 80b0: 200008ac .long 0x200008ac + +Disassembly of section .text.TK_Sampling_prog: + +000080b4 : + 80b4: 14c4 push r4-r7 + 80b6: 1423 subi r14, r14, 12 + 80b8: 1169 lrw r3, 0x20000054 // 815c + 80ba: 114a lrw r2, 0x200008a9 // 8160 + 80bc: 6d0b mov r4, r2 + 80be: 9320 ld.w r1, (r3, 0x0) + 80c0: b840 st.w r2, (r14, 0x0) + 80c2: 3300 movi r3, 0 + 80c4: 11a8 lrw r5, 0x2000093e // 8164 + 80c6: 9840 ld.w r2, (r14, 0x0) + 80c8: 8240 ld.b r2, (r2, 0x0) + 80ca: 3a41 cmpnei r2, 1 + 80cc: 0808 bt 0x80dc // 80dc + 80ce: 4342 lsli r2, r3, 2 + 80d0: 6084 addu r2, r1 + 80d2: 9200 ld.w r0, (r2, 0x0) + 80d4: 4341 lsli r2, r3, 1 + 80d6: 7401 zexth r0, r0 + 80d8: 6094 addu r2, r5 + 80da: aa00 st.h r0, (r2, 0x0) + 80dc: 8440 ld.b r2, (r4, 0x0) + 80de: 3a42 cmpnei r2, 2 + 80e0: 0809 bt 0x80f2 // 80f2 + 80e2: 4342 lsli r2, r3, 2 + 80e4: 6084 addu r2, r1 + 80e6: 9200 ld.w r0, (r2, 0x0) + 80e8: 4341 lsli r2, r3, 1 + 80ea: 11c0 lrw r6, 0x200006d4 // 8168 + 80ec: 7401 zexth r0, r0 + 80ee: 6098 addu r2, r6 + 80f0: aa00 st.h r0, (r2, 0x0) + 80f2: 8440 ld.b r2, (r4, 0x0) + 80f4: 3a40 cmpnei r2, 0 + 80f6: 0809 bt 0x8108 // 8108 + 80f8: 4342 lsli r2, r3, 2 + 80fa: 6084 addu r2, r1 + 80fc: 9200 ld.w r0, (r2, 0x0) + 80fe: 4341 lsli r2, r3, 1 + 8100: 10db lrw r6, 0x200007ca // 816c + 8102: 7401 zexth r0, r0 + 8104: 6098 addu r2, r6 + 8106: aa00 st.h r0, (r2, 0x0) + 8108: 10da lrw r6, 0x20000731 // 8170 + 810a: 8640 ld.b r2, (r6, 0x0) + 810c: 3a41 cmpnei r2, 1 + 810e: 0821 bt 0x8150 // 8150 + 8110: 1079 lrw r3, 0x200005ec // 8174 + 8112: 3200 movi r2, 0 + 8114: b861 st.w r3, (r14, 0x4) + 8116: 1075 lrw r3, 0x200006d4 // 8168 + 8118: b862 st.w r3, (r14, 0x8) + 811a: 4261 lsli r3, r2, 1 + 811c: 5d0c addu r0, r5, r3 + 811e: 8800 ld.h r0, (r0, 0x0) + 8120: 98e1 ld.w r7, (r14, 0x4) + 8122: 61cc addu r7, r3 + 8124: 7401 zexth r0, r0 + 8126: af00 st.h r0, (r7, 0x0) + 8128: 9802 ld.w r0, (r14, 0x8) + 812a: 600c addu r0, r3 + 812c: 8800 ld.h r0, (r0, 0x0) + 812e: 10f3 lrw r7, 0x20000796 // 8178 + 8130: 61cc addu r7, r3 + 8132: 7401 zexth r0, r0 + 8134: af00 st.h r0, (r7, 0x0) + 8136: 2200 addi r2, 1 + 8138: 100d lrw r0, 0x200007ca // 816c + 813a: 600c addu r0, r3 + 813c: 8800 ld.h r0, (r0, 0x0) + 813e: 10f0 lrw r7, 0x200008ac // 817c + 8140: 7401 zexth r0, r0 + 8142: 60dc addu r3, r7 + 8144: 3a51 cmpnei r2, 17 + 8146: ab00 st.h r0, (r3, 0x0) + 8148: 0be9 bt 0x811a // 811a + 814a: 3300 movi r3, 0 + 814c: a660 st.b r3, (r6, 0x0) + 814e: 3311 movi r3, 17 + 8150: 2300 addi r3, 1 + 8152: 74cc zextb r3, r3 + 8154: 3b10 cmphsi r3, 17 + 8156: 0fb8 bf 0x80c6 // 80c6 + 8158: 1403 addi r14, r14, 12 + 815a: 1484 pop r4-r7 + 815c: 20000054 .long 0x20000054 + 8160: 200008a9 .long 0x200008a9 + 8164: 2000093e .long 0x2000093e + 8168: 200006d4 .long 0x200006d4 + 816c: 200007ca .long 0x200007ca + 8170: 20000731 .long 0x20000731 + 8174: 200005ec .long 0x200005ec + 8178: 20000796 .long 0x20000796 + 817c: 200008ac .long 0x200008ac + +Disassembly of section .text.get_key_number: + +00008180 : + 8180: 14c2 push r4-r5 + 8182: 3200 movi r2, 0 + 8184: 3000 movi r0, 0 + 8186: 1088 lrw r4, 0x2000078c // 81a4 + 8188: 3501 movi r5, 1 + 818a: 3120 movi r1, 32 + 818c: 9460 ld.w r3, (r4, 0x0) + 818e: 70c9 lsr r3, r2 + 8190: 68d4 and r3, r5 + 8192: 3b40 cmpnei r3, 0 + 8194: 0c02 bf 0x8198 // 8198 + 8196: 2000 addi r0, 1 + 8198: 2200 addi r2, 1 + 819a: 644a cmpne r2, r1 + 819c: 0bf8 bt 0x818c // 818c + 819e: 7400 zextb r0, r0 + 81a0: 1482 pop r4-r5 + 81a2: 0000 bkpt + 81a4: 2000078c .long 0x2000078c + +Disassembly of section .text.get_key_number0: + +000081a8 : + 81a8: 14c2 push r4-r5 + 81aa: 3200 movi r2, 0 + 81ac: 3000 movi r0, 0 + 81ae: 1088 lrw r4, 0x2000068c // 81cc + 81b0: 3501 movi r5, 1 + 81b2: 3120 movi r1, 32 + 81b4: 9460 ld.w r3, (r4, 0x0) + 81b6: 70c9 lsr r3, r2 + 81b8: 68d4 and r3, r5 + 81ba: 3b40 cmpnei r3, 0 + 81bc: 0c02 bf 0x81c0 // 81c0 + 81be: 2000 addi r0, 1 + 81c0: 2200 addi r2, 1 + 81c2: 644a cmpne r2, r1 + 81c4: 0bf8 bt 0x81b4 // 81b4 + 81c6: 7400 zextb r0, r0 + 81c8: 1482 pop r4-r5 + 81ca: 0000 bkpt + 81cc: 2000068c .long 0x2000068c + +Disassembly of section .text.get_key_number1: + +000081d0 : + 81d0: 14c2 push r4-r5 + 81d2: 3200 movi r2, 0 + 81d4: 3000 movi r0, 0 + 81d6: 1088 lrw r4, 0x20000620 // 81f4 + 81d8: 3501 movi r5, 1 + 81da: 3120 movi r1, 32 + 81dc: 9460 ld.w r3, (r4, 0x0) + 81de: 70c9 lsr r3, r2 + 81e0: 68d4 and r3, r5 + 81e2: 3b40 cmpnei r3, 0 + 81e4: 0c02 bf 0x81e8 // 81e8 + 81e6: 2000 addi r0, 1 + 81e8: 2200 addi r2, 1 + 81ea: 644a cmpne r2, r1 + 81ec: 0bf8 bt 0x81dc // 81dc + 81ee: 7400 zextb r0, r0 + 81f0: 1482 pop r4-r5 + 81f2: 0000 bkpt + 81f4: 20000620 .long 0x20000620 + +Disassembly of section .text.get_key_number2: + +000081f8 : + 81f8: 14c2 push r4-r5 + 81fa: 3200 movi r2, 0 + 81fc: 3000 movi r0, 0 + 81fe: 1088 lrw r4, 0x20000704 // 821c + 8200: 3501 movi r5, 1 + 8202: 3120 movi r1, 32 + 8204: 9460 ld.w r3, (r4, 0x0) + 8206: 70c9 lsr r3, r2 + 8208: 68d4 and r3, r5 + 820a: 3b40 cmpnei r3, 0 + 820c: 0c02 bf 0x8210 // 8210 + 820e: 2000 addi r0, 1 + 8210: 2200 addi r2, 1 + 8212: 644a cmpne r2, r1 + 8214: 0bf8 bt 0x8204 // 8204 + 8216: 7400 zextb r0, r0 + 8218: 1482 pop r4-r5 + 821a: 0000 bkpt + 821c: 20000704 .long 0x20000704 + +Disassembly of section .text.TK_Baseline_prog: + +00008220 : + 8220: 14c4 push r4-r7 + 8222: 142a subi r14, r14, 40 + 8224: 1264 lrw r3, 0x20000700 // 8334 + 8226: 1245 lrw r2, 0x200008a9 // 8338 + 8228: 6c0b mov r0, r2 + 822a: 9360 ld.w r3, (r3, 0x0) + 822c: b865 st.w r3, (r14, 0x14) + 822e: 1264 lrw r3, 0x200006d0 // 833c + 8230: 9360 ld.w r3, (r3, 0x0) + 8232: b864 st.w r3, (r14, 0x10) + 8234: 1263 lrw r3, 0x20000960 // 8340 + 8236: 9360 ld.w r3, (r3, 0x0) + 8238: b863 st.w r3, (r14, 0xc) + 823a: 1263 lrw r3, 0x20000058 // 8344 + 823c: 9360 ld.w r3, (r3, 0x0) + 823e: b866 st.w r3, (r14, 0x18) + 8240: 1262 lrw r3, 0x20000054 // 8348 + 8242: 9360 ld.w r3, (r3, 0x0) + 8244: b860 st.w r3, (r14, 0x0) + 8246: 3306 movi r3, 6 + 8248: b861 st.w r3, (r14, 0x4) + 824a: 1261 lrw r3, 0x20000070 // 834c + 824c: b862 st.w r3, (r14, 0x8) + 824e: 3103 movi r1, 3 + 8250: 8260 ld.b r3, (r2, 0x0) + 8252: 74cc zextb r3, r3 + 8254: 3b41 cmpnei r3, 1 + 8256: 0c66 bf 0x8322 // 8322 + 8258: 3b40 cmpnei r3, 0 + 825a: 0c5c bf 0x8312 // 8312 + 825c: 3b42 cmpnei r3, 2 + 825e: 0c65 bf 0x8328 // 8328 + 8260: 3301 movi r3, 1 + 8262: 9886 ld.w r4, (r14, 0x18) + 8264: b462 st.w r3, (r4, 0x8) + 8266: 9862 ld.w r3, (r14, 0x8) + 8268: 3400 movi r4, 0 + 826a: a380 st.b r4, (r3, 0x0) + 826c: 9862 ld.w r3, (r14, 0x8) + 826e: 8360 ld.b r3, (r3, 0x0) + 8270: 3b40 cmpnei r3, 0 + 8272: 0ffd bf 0x826c // 826c + 8274: 6c03 mov r0, r0 + 8276: 1197 lrw r4, 0x200005ec // 8350 + 8278: 3300 movi r3, 0 + 827a: b887 st.w r4, (r14, 0x1c) + 827c: 1196 lrw r4, 0x2000093e // 8354 + 827e: b888 st.w r4, (r14, 0x20) + 8280: 1196 lrw r4, 0x20000796 // 8358 + 8282: b889 st.w r4, (r14, 0x24) + 8284: 8080 ld.b r4, (r0, 0x0) + 8286: 3c41 cmpnei r4, 1 + 8288: 080f bt 0x82a6 // 82a6 + 828a: 9880 ld.w r4, (r14, 0x0) + 828c: 43a2 lsli r5, r3, 2 + 828e: 6150 addu r5, r4 + 8290: 95c0 ld.w r6, (r5, 0x0) + 8292: 4381 lsli r4, r3, 1 + 8294: 98e7 ld.w r7, (r14, 0x1c) + 8296: 7599 zexth r6, r6 + 8298: 61d0 addu r7, r4 + 829a: afc0 st.h r6, (r7, 0x0) + 829c: 95a0 ld.w r5, (r5, 0x0) + 829e: 98c8 ld.w r6, (r14, 0x20) + 82a0: 7555 zexth r5, r5 + 82a2: 6118 addu r4, r6 + 82a4: aca0 st.h r5, (r4, 0x0) + 82a6: 8080 ld.b r4, (r0, 0x0) + 82a8: 3c42 cmpnei r4, 2 + 82aa: 080f bt 0x82c8 // 82c8 + 82ac: 9880 ld.w r4, (r14, 0x0) + 82ae: 43a2 lsli r5, r3, 2 + 82b0: 6150 addu r5, r4 + 82b2: 95c0 ld.w r6, (r5, 0x0) + 82b4: 4381 lsli r4, r3, 1 + 82b6: 98e9 ld.w r7, (r14, 0x24) + 82b8: 7599 zexth r6, r6 + 82ba: 61d0 addu r7, r4 + 82bc: afc0 st.h r6, (r7, 0x0) + 82be: 95a0 ld.w r5, (r5, 0x0) + 82c0: 7555 zexth r5, r5 + 82c2: 11c7 lrw r6, 0x200006d4 // 835c + 82c4: 6118 addu r4, r6 + 82c6: aca0 st.h r5, (r4, 0x0) + 82c8: 8080 ld.b r4, (r0, 0x0) + 82ca: 3c40 cmpnei r4, 0 + 82cc: 080f bt 0x82ea // 82ea + 82ce: 9880 ld.w r4, (r14, 0x0) + 82d0: 43a2 lsli r5, r3, 2 + 82d2: 6150 addu r5, r4 + 82d4: 95c0 ld.w r6, (r5, 0x0) + 82d6: 4381 lsli r4, r3, 1 + 82d8: 11e2 lrw r7, 0x200008ac // 8360 + 82da: 7599 zexth r6, r6 + 82dc: 61d0 addu r7, r4 + 82de: afc0 st.h r6, (r7, 0x0) + 82e0: 95a0 ld.w r5, (r5, 0x0) + 82e2: 7555 zexth r5, r5 + 82e4: 11c0 lrw r6, 0x200007ca // 8364 + 82e6: 6118 addu r4, r6 + 82e8: aca0 st.h r5, (r4, 0x0) + 82ea: 2300 addi r3, 1 + 82ec: 3b51 cmpnei r3, 17 + 82ee: 0bcb bt 0x8284 // 8284 + 82f0: 2900 subi r1, 1 + 82f2: 7444 zextb r1, r1 + 82f4: 3940 cmpnei r1, 0 + 82f6: 0bad bt 0x8250 // 8250 + 82f8: 9861 ld.w r3, (r14, 0x4) + 82fa: 2b00 subi r3, 1 + 82fc: 74cc zextb r3, r3 + 82fe: 3b40 cmpnei r3, 0 + 8300: b861 st.w r3, (r14, 0x4) + 8302: 0ba6 bt 0x824e // 824e + 8304: 1079 lrw r3, 0x20000698 // 8368 + 8306: 3201 movi r2, 1 + 8308: a340 st.b r2, (r3, 0x0) + 830a: 3300 movi r3, 0 + 830c: a060 st.b r3, (r0, 0x0) + 830e: 140a addi r14, r14, 40 + 8310: 1484 pop r4-r7 + 8312: 1077 lrw r3, 0x40011200 // 836c + 8314: 9883 ld.w r4, (r14, 0xc) + 8316: b390 st.w r4, (r3, 0x40) + 8318: 8260 ld.b r3, (r2, 0x0) + 831a: 2300 addi r3, 1 + 831c: 74cc zextb r3, r3 + 831e: a260 st.b r3, (r2, 0x0) + 8320: 07a0 br 0x8260 // 8260 + 8322: 1073 lrw r3, 0x40011200 // 836c + 8324: 9884 ld.w r4, (r14, 0x10) + 8326: 07f8 br 0x8316 // 8316 + 8328: 1071 lrw r3, 0x40011200 // 836c + 832a: 9885 ld.w r4, (r14, 0x14) + 832c: b390 st.w r4, (r3, 0x40) + 832e: 3300 movi r3, 0 + 8330: 07f7 br 0x831e // 831e + 8332: 0000 bkpt + 8334: 20000700 .long 0x20000700 + 8338: 200008a9 .long 0x200008a9 + 833c: 200006d0 .long 0x200006d0 + 8340: 20000960 .long 0x20000960 + 8344: 20000058 .long 0x20000058 + 8348: 20000054 .long 0x20000054 + 834c: 20000070 .long 0x20000070 + 8350: 200005ec .long 0x200005ec + 8354: 2000093e .long 0x2000093e + 8358: 20000796 .long 0x20000796 + 835c: 200006d4 .long 0x200006d4 + 8360: 200008ac .long 0x200008ac + 8364: 200007ca .long 0x200007ca + 8368: 20000698 .long 0x20000698 + 836c: 40011200 .long 0x40011200 + +Disassembly of section .text.TK_Baseline_prog2: + +00008370 : + 8370: 14c4 push r4-r7 + 8372: 142a subi r14, r14, 40 + 8374: 1262 lrw r3, 0x20000698 // 847c + 8376: 3200 movi r2, 0 + 8378: a340 st.b r2, (r3, 0x0) + 837a: b866 st.w r3, (r14, 0x18) + 837c: 3103 movi r1, 3 + 837e: 1241 lrw r2, 0x20000700 // 8480 + 8380: 1261 lrw r3, 0x20000070 // 8484 + 8382: 9240 ld.w r2, (r2, 0x0) + 8384: b844 st.w r2, (r14, 0x10) + 8386: b861 st.w r3, (r14, 0x4) + 8388: 1240 lrw r2, 0x200006d0 // 8488 + 838a: 9240 ld.w r2, (r2, 0x0) + 838c: b843 st.w r2, (r14, 0xc) + 838e: 1240 lrw r2, 0x20000960 // 848c + 8390: 9240 ld.w r2, (r2, 0x0) + 8392: b842 st.w r2, (r14, 0x8) + 8394: 115f lrw r2, 0x20000058 // 8490 + 8396: 9240 ld.w r2, (r2, 0x0) + 8398: b845 st.w r2, (r14, 0x14) + 839a: 115f lrw r2, 0x20000054 // 8494 + 839c: 9240 ld.w r2, (r2, 0x0) + 839e: b840 st.w r2, (r14, 0x0) + 83a0: 115e lrw r2, 0x200008a9 // 8498 + 83a2: 6c0b mov r0, r2 + 83a4: 8260 ld.b r3, (r2, 0x0) + 83a6: 74cc zextb r3, r3 + 83a8: 3b41 cmpnei r3, 1 + 83aa: 0c60 bf 0x846a // 846a + 83ac: 3b40 cmpnei r3, 0 + 83ae: 0c56 bf 0x845a // 845a + 83b0: 3b42 cmpnei r3, 2 + 83b2: 0c5f bf 0x8470 // 8470 + 83b4: 3301 movi r3, 1 + 83b6: 9885 ld.w r4, (r14, 0x14) + 83b8: b462 st.w r3, (r4, 0x8) + 83ba: 9861 ld.w r3, (r14, 0x4) + 83bc: 3400 movi r4, 0 + 83be: a380 st.b r4, (r3, 0x0) + 83c0: 9861 ld.w r3, (r14, 0x4) + 83c2: 8360 ld.b r3, (r3, 0x0) + 83c4: 3b40 cmpnei r3, 0 + 83c6: 0ffd bf 0x83c0 // 83c0 + 83c8: 6c03 mov r0, r0 + 83ca: 1195 lrw r4, 0x200005ec // 849c + 83cc: 3300 movi r3, 0 + 83ce: b887 st.w r4, (r14, 0x1c) + 83d0: 1194 lrw r4, 0x2000093e // 84a0 + 83d2: b888 st.w r4, (r14, 0x20) + 83d4: 1194 lrw r4, 0x20000796 // 84a4 + 83d6: b889 st.w r4, (r14, 0x24) + 83d8: 8080 ld.b r4, (r0, 0x0) + 83da: 3c41 cmpnei r4, 1 + 83dc: 080f bt 0x83fa // 83fa + 83de: 9880 ld.w r4, (r14, 0x0) + 83e0: 43a2 lsli r5, r3, 2 + 83e2: 6150 addu r5, r4 + 83e4: 95c0 ld.w r6, (r5, 0x0) + 83e6: 4381 lsli r4, r3, 1 + 83e8: 98e7 ld.w r7, (r14, 0x1c) + 83ea: 7599 zexth r6, r6 + 83ec: 61d0 addu r7, r4 + 83ee: afc0 st.h r6, (r7, 0x0) + 83f0: 95a0 ld.w r5, (r5, 0x0) + 83f2: 98c8 ld.w r6, (r14, 0x20) + 83f4: 7555 zexth r5, r5 + 83f6: 6118 addu r4, r6 + 83f8: aca0 st.h r5, (r4, 0x0) + 83fa: 8080 ld.b r4, (r0, 0x0) + 83fc: 3c42 cmpnei r4, 2 + 83fe: 080f bt 0x841c // 841c + 8400: 9880 ld.w r4, (r14, 0x0) + 8402: 43a2 lsli r5, r3, 2 + 8404: 6150 addu r5, r4 + 8406: 95c0 ld.w r6, (r5, 0x0) + 8408: 4381 lsli r4, r3, 1 + 840a: 98e9 ld.w r7, (r14, 0x24) + 840c: 7599 zexth r6, r6 + 840e: 61d0 addu r7, r4 + 8410: afc0 st.h r6, (r7, 0x0) + 8412: 95a0 ld.w r5, (r5, 0x0) + 8414: 7555 zexth r5, r5 + 8416: 11c5 lrw r6, 0x200006d4 // 84a8 + 8418: 6118 addu r4, r6 + 841a: aca0 st.h r5, (r4, 0x0) + 841c: 8080 ld.b r4, (r0, 0x0) + 841e: 3c40 cmpnei r4, 0 + 8420: 080f bt 0x843e // 843e + 8422: 9880 ld.w r4, (r14, 0x0) + 8424: 43a2 lsli r5, r3, 2 + 8426: 6150 addu r5, r4 + 8428: 95c0 ld.w r6, (r5, 0x0) + 842a: 4381 lsli r4, r3, 1 + 842c: 11e0 lrw r7, 0x200008ac // 84ac + 842e: 7599 zexth r6, r6 + 8430: 61d0 addu r7, r4 + 8432: afc0 st.h r6, (r7, 0x0) + 8434: 95a0 ld.w r5, (r5, 0x0) + 8436: 7555 zexth r5, r5 + 8438: 10de lrw r6, 0x200007ca // 84b0 + 843a: 6118 addu r4, r6 + 843c: aca0 st.h r5, (r4, 0x0) + 843e: 2300 addi r3, 1 + 8440: 3b51 cmpnei r3, 17 + 8442: 0bcb bt 0x83d8 // 83d8 + 8444: 2900 subi r1, 1 + 8446: 7444 zextb r1, r1 + 8448: 3940 cmpnei r1, 0 + 844a: 0bad bt 0x83a4 // 83a4 + 844c: 9866 ld.w r3, (r14, 0x18) + 844e: 3201 movi r2, 1 + 8450: a340 st.b r2, (r3, 0x0) + 8452: 3300 movi r3, 0 + 8454: a060 st.b r3, (r0, 0x0) + 8456: 140a addi r14, r14, 40 + 8458: 1484 pop r4-r7 + 845a: 1077 lrw r3, 0x40011200 // 84b4 + 845c: 9882 ld.w r4, (r14, 0x8) + 845e: b390 st.w r4, (r3, 0x40) + 8460: 8260 ld.b r3, (r2, 0x0) + 8462: 2300 addi r3, 1 + 8464: 74cc zextb r3, r3 + 8466: a260 st.b r3, (r2, 0x0) + 8468: 07a6 br 0x83b4 // 83b4 + 846a: 1073 lrw r3, 0x40011200 // 84b4 + 846c: 9883 ld.w r4, (r14, 0xc) + 846e: 07f8 br 0x845e // 845e + 8470: 1071 lrw r3, 0x40011200 // 84b4 + 8472: 9884 ld.w r4, (r14, 0x10) + 8474: b390 st.w r4, (r3, 0x40) + 8476: 3300 movi r3, 0 + 8478: 07f7 br 0x8466 // 8466 + 847a: 0000 bkpt + 847c: 20000698 .long 0x20000698 + 8480: 20000700 .long 0x20000700 + 8484: 20000070 .long 0x20000070 + 8488: 200006d0 .long 0x200006d0 + 848c: 20000960 .long 0x20000960 + 8490: 20000058 .long 0x20000058 + 8494: 20000054 .long 0x20000054 + 8498: 200008a9 .long 0x200008a9 + 849c: 200005ec .long 0x200005ec + 84a0: 2000093e .long 0x2000093e + 84a4: 20000796 .long 0x20000796 + 84a8: 200006d4 .long 0x200006d4 + 84ac: 200008ac .long 0x200008ac + 84b0: 200007ca .long 0x200007ca + 84b4: 40011200 .long 0x40011200 + +Disassembly of section .text.tk_poweron_data_fineturn: + +000084b8 : + 84b8: 14d4 push r4-r7, r15 + 84ba: 1433 subi r14, r14, 76 + 84bc: 117e lrw r3, 0x20000070 // 85b4 + 84be: 8366 ld.b r3, (r3, 0x6) + 84c0: 3b41 cmpnei r3, 1 + 84c2: 0877 bt 0x85b0 // 85b0 + 84c4: 117d lrw r3, 0x2000093e // 85b8 + 84c6: b860 st.w r3, (r14, 0x0) + 84c8: 3300 movi r3, 0 + 84ca: 301e movi r0, 30 + 84cc: 4321 lsli r1, r3, 1 + 84ce: 1a02 addi r2, r14, 8 + 84d0: 6048 addu r1, r2 + 84d2: 115b lrw r2, 0x2000026e // 85bc + 84d4: 608c addu r2, r3 + 84d6: 8a40 ld.h r2, (r2, 0x0) + 84d8: 4245 lsli r2, r2, 5 + 84da: 6080 addu r2, r0 + 84dc: b140 st.w r2, (r1, 0x0) + 84de: 2301 addi r3, 2 + 84e0: 3222 movi r2, 34 + 84e2: 648e cmpne r3, r2 + 84e4: 0bf4 bt 0x84cc // 84cc + 84e6: 1197 lrw r4, 0x20000242 // 85c0 + 84e8: 3200 movi r2, 0 + 84ea: 3000 movi r0, 0 + 84ec: b881 st.w r4, (r14, 0x4) + 84ee: 11d6 lrw r6, 0x200006d4 // 85c4 + 84f0: 4261 lsli r3, r2, 1 + 84f2: 98a0 ld.w r5, (r14, 0x0) + 84f4: 614c addu r5, r3 + 84f6: 8d20 ld.h r1, (r5, 0x0) + 84f8: 7445 zexth r1, r1 + 84fa: 3940 cmpnei r1, 0 + 84fc: 0c36 bf 0x8568 // 8568 + 84fe: 5e2c addu r1, r6, r3 + 8500: 8920 ld.h r1, (r1, 0x0) + 8502: 7445 zexth r1, r1 + 8504: 3940 cmpnei r1, 0 + 8506: 0c31 bf 0x8568 // 8568 + 8508: 1130 lrw r1, 0x200007ca // 85c8 + 850a: 60c4 addu r3, r1 + 850c: 8b60 ld.h r3, (r3, 0x0) + 850e: 74cd zexth r3, r3 + 8510: 3b40 cmpnei r3, 0 + 8512: 0c2b bf 0x8568 // 8568 + 8514: 8d60 ld.h r3, (r5, 0x0) + 8516: 1f02 addi r7, r14, 8 + 8518: 42a2 lsli r5, r2, 2 + 851a: 615c addu r5, r7 + 851c: 74cd zexth r3, r3 + 851e: 95a0 ld.w r5, (r5, 0x0) + 8520: 60d6 subu r3, r5 + 8522: 3bdf btsti r3, 31 + 8524: 0c03 bf 0x852a // 852a + 8526: 3700 movi r7, 0 + 8528: 5f6d subu r3, r7, r3 + 852a: 3b24 cmplti r3, 5 + 852c: 0817 bt 0x855a // 855a + 852e: 4261 lsli r3, r2, 1 + 8530: 60d8 addu r3, r6 + 8532: 8b60 ld.h r3, (r3, 0x0) + 8534: 74cd zexth r3, r3 + 8536: 60d6 subu r3, r5 + 8538: 3bdf btsti r3, 31 + 853a: 0c03 bf 0x8540 // 8540 + 853c: 3700 movi r7, 0 + 853e: 5f6d subu r3, r7, r3 + 8540: 3b24 cmplti r3, 5 + 8542: 080c bt 0x855a // 855a + 8544: 4261 lsli r3, r2, 1 + 8546: 604c addu r1, r3 + 8548: 8960 ld.h r3, (r1, 0x0) + 854a: 74cd zexth r3, r3 + 854c: 60d6 subu r3, r5 + 854e: 3bdf btsti r3, 31 + 8550: 0c03 bf 0x8556 // 8556 + 8552: 3100 movi r1, 0 + 8554: 596d subu r3, r1, r3 + 8556: 3b24 cmplti r3, 5 + 8558: 0c08 bf 0x8568 // 8568 + 855a: 8c60 ld.h r3, (r4, 0x0) + 855c: 3b06 cmphsi r3, 7 + 855e: 0805 bt 0x8568 // 8568 + 8560: 2300 addi r3, 1 + 8562: 2000 addi r0, 1 + 8564: ac60 st.h r3, (r4, 0x0) + 8566: 7400 zextb r0, r0 + 8568: 2200 addi r2, 1 + 856a: 3a51 cmpnei r2, 17 + 856c: 2401 addi r4, 2 + 856e: 0bc1 bt 0x84f0 // 84f0 + 8570: 3840 cmpnei r0, 0 + 8572: 0c1f bf 0x85b0 // 85b0 + 8574: 1076 lrw r3, 0x20000058 // 85cc + 8576: 3200 movi r2, 0 + 8578: 9360 ld.w r3, (r3, 0x0) + 857a: b342 st.w r2, (r3, 0x8) + 857c: 10b5 lrw r5, 0x20000898 // 85d0 + 857e: 1076 lrw r3, 0x20000054 // 85d4 + 8580: 1016 lrw r0, 0x20000848 // 85d8 + 8582: 9380 ld.w r4, (r3, 0x0) + 8584: 3300 movi r3, 0 + 8586: 8040 ld.b r2, (r0, 0x0) + 8588: 648c cmphs r3, r2 + 858a: 0c04 bf 0x8592 // 8592 + 858c: e3fffef2 bsr 0x8370 // 8370 + 8590: 079c br 0x84c8 // 84c8 + 8592: 5d4c addu r2, r5, r3 + 8594: 8240 ld.b r2, (r2, 0x0) + 8596: 4241 lsli r2, r2, 1 + 8598: 98e1 ld.w r7, (r14, 0x4) + 859a: 4322 lsli r1, r3, 2 + 859c: 609c addu r2, r7 + 859e: 6050 addu r1, r4 + 85a0: 8a40 ld.h r2, (r2, 0x0) + 85a2: 91d2 ld.w r6, (r1, 0x48) + 85a4: 4254 lsli r2, r2, 20 + 85a6: 6c98 or r2, r6 + 85a8: 2300 addi r3, 1 + 85aa: b152 st.w r2, (r1, 0x48) + 85ac: 74cc zextb r3, r3 + 85ae: 07ec br 0x8586 // 8586 + 85b0: 1413 addi r14, r14, 76 + 85b2: 1494 pop r4-r7, r15 + 85b4: 20000070 .long 0x20000070 + 85b8: 2000093e .long 0x2000093e + 85bc: 2000026e .long 0x2000026e + 85c0: 20000242 .long 0x20000242 + 85c4: 200006d4 .long 0x200006d4 + 85c8: 200007ca .long 0x200007ca + 85cc: 20000058 .long 0x20000058 + 85d0: 20000898 .long 0x20000898 + 85d4: 20000054 .long 0x20000054 + 85d8: 20000848 .long 0x20000848 + +Disassembly of section .text.TK_Scan_Start: + +000085dc : + 85dc: 1073 lrw r3, 0x20000070 // 8628 + 85de: 1054 lrw r2, 0x200008a9 // 862c + 85e0: 8302 ld.b r0, (r3, 0x2) + 85e2: 8220 ld.b r1, (r2, 0x0) + 85e4: 6442 cmpne r0, r1 + 85e6: 0c16 bf 0x8612 // 8612 + 85e8: 8220 ld.b r1, (r2, 0x0) + 85ea: 7444 zextb r1, r1 + 85ec: 3941 cmpnei r1, 1 + 85ee: 0c18 bf 0x861e // 861e + 85f0: 3940 cmpnei r1, 0 + 85f2: 0c11 bf 0x8614 // 8614 + 85f4: 3942 cmpnei r1, 2 + 85f6: 0c16 bf 0x8622 // 8622 + 85f8: 8240 ld.b r2, (r2, 0x0) + 85fa: 7488 zextb r2, r2 + 85fc: a342 st.b r2, (r3, 0x2) + 85fe: 8341 ld.b r2, (r3, 0x1) + 8600: 7488 zextb r2, r2 + 8602: 3a41 cmpnei r2, 1 + 8604: 0807 bt 0x8612 // 8612 + 8606: 102b lrw r1, 0x20000058 // 8630 + 8608: 9120 ld.w r1, (r1, 0x0) + 860a: b142 st.w r2, (r1, 0x8) + 860c: 3200 movi r2, 0 + 860e: a340 st.b r2, (r3, 0x0) + 8610: a341 st.b r2, (r3, 0x1) + 8612: 783c jmp r15 + 8614: 1028 lrw r1, 0x20000960 // 8634 + 8616: 9100 ld.w r0, (r1, 0x0) + 8618: 1028 lrw r1, 0x40011200 // 8638 + 861a: b110 st.w r0, (r1, 0x40) + 861c: 07ee br 0x85f8 // 85f8 + 861e: 1028 lrw r1, 0x200006d0 // 863c + 8620: 07fb br 0x8616 // 8616 + 8622: 1028 lrw r1, 0x20000700 // 8640 + 8624: 07f9 br 0x8616 // 8616 + 8626: 0000 bkpt + 8628: 20000070 .long 0x20000070 + 862c: 200008a9 .long 0x200008a9 + 8630: 20000058 .long 0x20000058 + 8634: 20000960 .long 0x20000960 + 8638: 40011200 .long 0x40011200 + 863c: 200006d0 .long 0x200006d0 + 8640: 20000700 .long 0x20000700 + +Disassembly of section .text.TK_Keymap_prog: + +00008644 : + 8644: 14d4 push r4-r7, r15 + 8646: 142a subi r14, r14, 40 + 8648: 0171 lrw r3, 0x20000264 // 8980 + 864a: 8360 ld.b r3, (r3, 0x0) + 864c: b860 st.w r3, (r14, 0x0) + 864e: 3400 movi r4, 0 + 8650: 0172 lrw r3, 0x20000238 // 8984 + 8652: 8360 ld.b r3, (r3, 0x0) + 8654: b863 st.w r3, (r14, 0xc) + 8656: 0172 lrw r3, 0x20000241 // 8988 + 8658: 83a0 ld.b r5, (r3, 0x0) + 865a: 0172 lrw r3, 0x20000240 // 898c + 865c: 8360 ld.b r3, (r3, 0x0) + 865e: b866 st.w r3, (r14, 0x18) + 8660: 0173 lrw r3, 0x2000093e // 8990 + 8662: b868 st.w r3, (r14, 0x20) + 8664: 0173 lrw r3, 0x200006ac // 8994 + 8666: b864 st.w r3, (r14, 0x10) + 8668: b869 st.w r3, (r14, 0x24) + 866a: 4461 lsli r3, r4, 1 + 866c: 9848 ld.w r2, (r14, 0x20) + 866e: 608c addu r2, r3 + 8670: 0135 lrw r1, 0x200005ec // 8998 + 8672: 604c addu r1, r3 + 8674: 8a40 ld.h r2, (r2, 0x0) + 8676: 8920 ld.h r1, (r1, 0x0) + 8678: 6086 subu r2, r1 + 867a: 9829 ld.w r1, (r14, 0x24) + 867c: 604c addu r1, r3 + 867e: 748b sexth r2, r2 + 8680: a940 st.h r2, (r1, 0x0) + 8682: 0118 lrw r0, 0x20000796 // 899c + 8684: 0158 lrw r2, 0x200006d4 // 89a0 + 8686: 608c addu r2, r3 + 8688: 600c addu r0, r3 + 868a: 8a40 ld.h r2, (r2, 0x0) + 868c: 8800 ld.h r0, (r0, 0x0) + 868e: 6082 subu r2, r0 + 8690: 01da lrw r6, 0x200007ec // 89a4 + 8692: 5e0c addu r0, r6, r3 + 8694: 748b sexth r2, r2 + 8696: a840 st.h r2, (r0, 0x0) + 8698: b8c1 st.w r6, (r14, 0x4) + 869a: 015b lrw r2, 0x200007ca // 89a8 + 869c: 011b lrw r0, 0x200008ac // 89ac + 869e: 608c addu r2, r3 + 86a0: 600c addu r0, r3 + 86a2: 8a40 ld.h r2, (r2, 0x0) + 86a4: 8800 ld.h r0, (r0, 0x0) + 86a6: 6082 subu r2, r0 + 86a8: 011d lrw r0, 0x20000918 // 89b0 + 86aa: 748b sexth r2, r2 + 86ac: 58ec addu r7, r0, r3 + 86ae: af40 st.h r2, (r7, 0x0) + 86b0: 8940 ld.h r2, (r1, 0x0) + 86b2: 748b sexth r2, r2 + 86b4: 3adf btsti r2, 31 + 86b6: 015f lrw r2, 0x200008f6 // 89b4 + 86b8: 60c8 addu r3, r2 + 86ba: b802 st.w r0, (r14, 0x8) + 86bc: 0c49 bf 0x874e // 874e + 86be: 3200 movi r2, 0 + 86c0: ab40 st.h r2, (r3, 0x0) + 86c2: 9821 ld.w r1, (r14, 0x4) + 86c4: 4461 lsli r3, r4, 1 + 86c6: 604c addu r1, r3 + 86c8: 8940 ld.h r2, (r1, 0x0) + 86ca: 748b sexth r2, r2 + 86cc: 3adf btsti r2, 31 + 86ce: 0244 lrw r2, 0x20000654 // 89b8 + 86d0: 60c8 addu r3, r2 + 86d2: 0c41 bf 0x8754 // 8754 + 86d4: 3200 movi r2, 0 + 86d6: ab40 st.h r2, (r3, 0x0) + 86d8: 9822 ld.w r1, (r14, 0x8) + 86da: 4461 lsli r3, r4, 1 + 86dc: 604c addu r1, r3 + 86de: 8940 ld.h r2, (r1, 0x0) + 86e0: 748b sexth r2, r2 + 86e2: 3adf btsti r2, 31 + 86e4: 0249 lrw r2, 0x20000628 // 89bc + 86e6: 60c8 addu r3, r2 + 86e8: 0c39 bf 0x875a // 875a + 86ea: 3200 movi r2, 0 + 86ec: ab40 st.h r2, (r3, 0x0) + 86ee: 9860 ld.w r3, (r14, 0x0) + 86f0: 3b03 cmphsi r3, 4 + 86f2: 4421 lsli r1, r4, 1 + 86f4: 0cb5 bf 0x885e // 885e + 86f6: 9864 ld.w r3, (r14, 0x10) + 86f8: 60c4 addu r3, r1 + 86fa: 024d lrw r2, 0x20000292 // 89c0 + 86fc: 6048 addu r1, r2 + 86fe: 8b00 ld.h r0, (r3, 0x0) + 8700: 8940 ld.h r2, (r1, 0x0) + 8702: 7403 sexth r0, r0 + 8704: 6409 cmplt r2, r0 + 8706: 9820 ld.w r1, (r14, 0x0) + 8708: 7c84 mult r2, r1 + 870a: 0c9b bf 0x8840 // 8840 + 870c: 8b20 ld.h r1, (r3, 0x0) + 870e: 7447 sexth r1, r1 + 8710: 6485 cmplt r1, r2 + 8712: 0c97 bf 0x8840 // 8840 + 8714: 0233 lrw r1, 0x20000699 // 89c4 + 8716: 6050 addu r1, r4 + 8718: 8140 ld.b r2, (r1, 0x0) + 871a: 2200 addi r2, 1 + 871c: 7488 zextb r2, r2 + 871e: a140 st.b r2, (r1, 0x0) + 8720: 3000 movi r0, 0 + 8722: 0255 lrw r2, 0x20000678 // 89c8 + 8724: 6090 addu r2, r4 + 8726: a200 st.b r0, (r2, 0x0) + 8728: 0256 lrw r2, 0x200007b8 // 89cc + 872a: 6090 addu r2, r4 + 872c: a200 st.b r0, (r2, 0x0) + 872e: 0256 lrw r2, 0x20000850 // 89d0 + 8730: 6090 addu r2, r4 + 8732: a200 st.b r0, (r2, 0x0) + 8734: 8140 ld.b r2, (r1, 0x0) + 8736: 9803 ld.w r0, (r14, 0xc) + 8738: 6480 cmphs r0, r2 + 873a: 081d bt 0x8774 // 8774 + 873c: 3d40 cmpnei r5, 0 + 873e: 0811 bt 0x8760 // 8760 + 8740: 025a lrw r2, 0x2000068c // 89d4 + 8742: 9260 ld.w r3, (r2, 0x0) + 8744: 3b40 cmpnei r3, 0 + 8746: 0815 bt 0x8770 // 8770 + 8748: 9200 ld.w r0, (r2, 0x0) + 874a: 3301 movi r3, 1 + 874c: 040f br 0x876a // 876a + 874e: 8940 ld.h r2, (r1, 0x0) + 8750: 7489 zexth r2, r2 + 8752: 07b7 br 0x86c0 // 86c0 + 8754: 8940 ld.h r2, (r1, 0x0) + 8756: 7489 zexth r2, r2 + 8758: 07bf br 0x86d6 // 86d6 + 875a: 8940 ld.h r2, (r1, 0x0) + 875c: 7489 zexth r2, r2 + 875e: 07c7 br 0x86ec // 86ec + 8760: 3d41 cmpnei r5, 1 + 8762: 085c bt 0x881a // 881a + 8764: 0343 lrw r2, 0x2000068c // 89d4 + 8766: 6cd7 mov r3, r5 + 8768: 9200 ld.w r0, (r2, 0x0) + 876a: 70d0 lsl r3, r4 + 876c: 6cc0 or r3, r0 + 876e: b260 st.w r3, (r2, 0x0) + 8770: 3300 movi r3, 0 + 8772: a160 st.b r3, (r1, 0x0) + 8774: 4461 lsli r3, r4, 1 + 8776: 9844 ld.w r2, (r14, 0x10) + 8778: 608c addu r2, r3 + 877a: 8ac0 ld.h r6, (r2, 0x0) + 877c: 034e lrw r2, 0x20000292 // 89c0 + 877e: 60c8 addu r3, r2 + 8780: 8be0 ld.h r7, (r3, 0x0) + 8782: 4702 lsli r0, r7, 2 + 8784: 3105 movi r1, 5 + 8786: e3ffd8a9 bsr 0x38d8 // 38d8 <__divsi3> + 878a: 759b sexth r6, r6 + 878c: 6419 cmplt r6, r0 + 878e: b805 st.w r0, (r14, 0x14) + 8790: 0c18 bf 0x87c0 // 87c0 + 8792: 0351 lrw r2, 0x20000678 // 89c8 + 8794: 6090 addu r2, r4 + 8796: 8260 ld.b r3, (r2, 0x0) + 8798: 2300 addi r3, 1 + 879a: 74cc zextb r3, r3 + 879c: a260 st.b r3, (r2, 0x0) + 879e: 3100 movi r1, 0 + 87a0: 0376 lrw r3, 0x20000699 // 89c4 + 87a2: 60d0 addu r3, r4 + 87a4: a320 st.b r1, (r3, 0x0) + 87a6: 8260 ld.b r3, (r2, 0x0) + 87a8: 9826 ld.w r1, (r14, 0x18) + 87aa: 64c4 cmphs r1, r3 + 87ac: 080a bt 0x87c0 // 87c0 + 87ae: 3300 movi r3, 0 + 87b0: 0336 lrw r1, 0x2000068c // 89d4 + 87b2: 2b01 subi r3, 2 + 87b4: 9100 ld.w r0, (r1, 0x0) + 87b6: 70d3 rotl r3, r4 + 87b8: 68c0 and r3, r0 + 87ba: b160 st.w r3, (r1, 0x0) + 87bc: 3300 movi r3, 0 + 87be: a260 st.b r3, (r2, 0x0) + 87c0: 9860 ld.w r3, (r14, 0x0) + 87c2: 9841 ld.w r2, (r14, 0x4) + 87c4: 3b03 cmphsi r3, 4 + 87c6: 4461 lsli r3, r4, 1 + 87c8: 60c8 addu r3, r2 + 87ca: 8b40 ld.h r2, (r3, 0x0) + 87cc: 748b sexth r2, r2 + 87ce: 0d4d bf 0x8a68 // 8a68 + 87d0: 649d cmplt r7, r2 + 87d2: 0d3a bf 0x8a46 // 8a46 + 87d4: 8b40 ld.h r2, (r3, 0x0) + 87d6: 9820 ld.w r1, (r14, 0x0) + 87d8: 748b sexth r2, r2 + 87da: 7c5c mult r1, r7 + 87dc: 6449 cmplt r2, r1 + 87de: 0d34 bf 0x8a46 // 8a46 + 87e0: 133e lrw r1, 0x2000086c // 89d8 + 87e2: 6050 addu r1, r4 + 87e4: 8140 ld.b r2, (r1, 0x0) + 87e6: 2200 addi r2, 1 + 87e8: 7488 zextb r2, r2 + 87ea: a140 st.b r2, (r1, 0x0) + 87ec: 3000 movi r0, 0 + 87ee: 135c lrw r2, 0x20000708 // 89dc + 87f0: 6090 addu r2, r4 + 87f2: a200 st.b r0, (r2, 0x0) + 87f4: 135b lrw r2, 0x20000732 // 89e0 + 87f6: 6090 addu r2, r4 + 87f8: a200 st.b r0, (r2, 0x0) + 87fa: 135b lrw r2, 0x20000830 // 89e4 + 87fc: 6090 addu r2, r4 + 87fe: a200 st.b r0, (r2, 0x0) + 8800: 8140 ld.b r2, (r1, 0x0) + 8802: 9803 ld.w r0, (r14, 0xc) + 8804: 6480 cmphs r0, r2 + 8806: 087d bt 0x8900 // 8900 + 8808: 3d40 cmpnei r5, 0 + 880a: 0871 bt 0x88ec // 88ec + 880c: 1357 lrw r2, 0x20000620 // 89e8 + 880e: 9260 ld.w r3, (r2, 0x0) + 8810: 3b40 cmpnei r3, 0 + 8812: 0875 bt 0x88fc // 88fc + 8814: 9200 ld.w r0, (r2, 0x0) + 8816: 3301 movi r3, 1 + 8818: 046f br 0x88f6 // 88f6 + 881a: 3d42 cmpnei r5, 2 + 881c: 0c03 bf 0x8822 // 8822 + 881e: e8000201 br 0x8c20 // 8c20 + 8822: 13d3 lrw r6, 0x20000846 // 89ec + 8824: 8b00 ld.h r0, (r3, 0x0) + 8826: 8e40 ld.h r2, (r6, 0x0) + 8828: 7489 zexth r2, r2 + 882a: 7403 sexth r0, r0 + 882c: 2209 addi r2, 10 + 882e: 6409 cmplt r2, r0 + 8830: 0fa0 bf 0x8770 // 8770 + 8832: 8b60 ld.h r3, (r3, 0x0) + 8834: 74cd zexth r3, r3 + 8836: ae60 st.h r3, (r6, 0x0) + 8838: 3300 movi r3, 0 + 883a: 1347 lrw r2, 0x2000068c // 89d4 + 883c: b260 st.w r3, (r2, 0x0) + 883e: 0785 br 0x8748 // 8748 + 8840: 4461 lsli r3, r4, 1 + 8842: 9824 ld.w r1, (r14, 0x10) + 8844: 60c4 addu r3, r1 + 8846: 8b60 ld.h r3, (r3, 0x0) + 8848: 74cf sexth r3, r3 + 884a: 64c9 cmplt r2, r3 + 884c: 0f94 bf 0x8774 // 8774 + 884e: 3300 movi r3, 0 + 8850: 1341 lrw r2, 0x2000068c // 89d4 + 8852: 2b01 subi r3, 2 + 8854: 9220 ld.w r1, (r2, 0x0) + 8856: 70d3 rotl r3, r4 + 8858: 68c4 and r3, r1 + 885a: b260 st.w r3, (r2, 0x0) + 885c: 078c br 0x8774 // 8774 + 885e: 9844 ld.w r2, (r14, 0x10) + 8860: 6084 addu r2, r1 + 8862: 1218 lrw r0, 0x20000292 // 89c0 + 8864: 8a60 ld.h r3, (r2, 0x0) + 8866: 6040 addu r1, r0 + 8868: 74cf sexth r3, r3 + 886a: 8920 ld.h r1, (r1, 0x0) + 886c: 64c5 cmplt r1, r3 + 886e: 0f83 bf 0x8774 // 8774 + 8870: 1360 lrw r3, 0x200006aa // 89f0 + 8872: 8360 ld.b r3, (r3, 0x0) + 8874: 74cc zextb r3, r3 + 8876: 3b40 cmpnei r3, 0 + 8878: 0b7e bt 0x8774 // 8774 + 887a: 1213 lrw r0, 0x20000699 // 89c4 + 887c: 6010 addu r0, r4 + 887e: 8020 ld.b r1, (r0, 0x0) + 8880: 2100 addi r1, 1 + 8882: 7444 zextb r1, r1 + 8884: a020 st.b r1, (r0, 0x0) + 8886: 3600 movi r6, 0 + 8888: 1230 lrw r1, 0x20000678 // 89c8 + 888a: 6050 addu r1, r4 + 888c: a1c0 st.b r6, (r1, 0x0) + 888e: 1230 lrw r1, 0x200007b8 // 89cc + 8890: 6050 addu r1, r4 + 8892: a1c0 st.b r6, (r1, 0x0) + 8894: 122f lrw r1, 0x20000850 // 89d0 + 8896: 6050 addu r1, r4 + 8898: a1c0 st.b r6, (r1, 0x0) + 889a: 8020 ld.b r1, (r0, 0x0) + 889c: 98c3 ld.w r6, (r14, 0xc) + 889e: 6458 cmphs r6, r1 + 88a0: 0b6a bt 0x8774 // 8774 + 88a2: 3d40 cmpnei r5, 0 + 88a4: 0808 bt 0x88b4 // 88b4 + 88a6: 124c lrw r2, 0x2000068c // 89d4 + 88a8: 9260 ld.w r3, (r2, 0x0) + 88aa: 3b40 cmpnei r3, 0 + 88ac: 080c bt 0x88c4 // 88c4 + 88ae: 9220 ld.w r1, (r2, 0x0) + 88b0: 3301 movi r3, 1 + 88b2: 0406 br 0x88be // 88be + 88b4: 3d41 cmpnei r5, 1 + 88b6: 080a bt 0x88ca // 88ca + 88b8: 1247 lrw r2, 0x2000068c // 89d4 + 88ba: 6cd7 mov r3, r5 + 88bc: 9220 ld.w r1, (r2, 0x0) + 88be: 70d0 lsl r3, r4 + 88c0: 6cc4 or r3, r1 + 88c2: b260 st.w r3, (r2, 0x0) + 88c4: 3300 movi r3, 0 + 88c6: a060 st.b r3, (r0, 0x0) + 88c8: 0756 br 0x8774 // 8774 + 88ca: 3d42 cmpnei r5, 2 + 88cc: 0c02 bf 0x88d0 // 88d0 + 88ce: 05dc br 0x8c86 // 8c86 + 88d0: 12e7 lrw r7, 0x20000846 // 89ec + 88d2: 8ac0 ld.h r6, (r2, 0x0) + 88d4: 8f20 ld.h r1, (r7, 0x0) + 88d6: 7445 zexth r1, r1 + 88d8: 759b sexth r6, r6 + 88da: 2109 addi r1, 10 + 88dc: 6585 cmplt r1, r6 + 88de: 0ff3 bf 0x88c4 // 88c4 + 88e0: 8a40 ld.h r2, (r2, 0x0) + 88e2: 7489 zexth r2, r2 + 88e4: af40 st.h r2, (r7, 0x0) + 88e6: 115c lrw r2, 0x2000068c // 89d4 + 88e8: b260 st.w r3, (r2, 0x0) + 88ea: 07e2 br 0x88ae // 88ae + 88ec: 3d41 cmpnei r5, 1 + 88ee: 089b bt 0x8a24 // 8a24 + 88f0: 115e lrw r2, 0x20000620 // 89e8 + 88f2: 6cd7 mov r3, r5 + 88f4: 9200 ld.w r0, (r2, 0x0) + 88f6: 70d0 lsl r3, r4 + 88f8: 6cc0 or r3, r0 + 88fa: b260 st.w r3, (r2, 0x0) + 88fc: 3300 movi r3, 0 + 88fe: a160 st.b r3, (r1, 0x0) + 8900: 4461 lsli r3, r4, 1 + 8902: 9841 ld.w r2, (r14, 0x4) + 8904: 608c addu r2, r3 + 8906: 8a60 ld.h r3, (r2, 0x0) + 8908: 74cf sexth r3, r3 + 890a: 9845 ld.w r2, (r14, 0x14) + 890c: 648d cmplt r3, r2 + 890e: 0c18 bf 0x893e // 893e + 8910: 1153 lrw r2, 0x20000708 // 89dc + 8912: 6090 addu r2, r4 + 8914: 8260 ld.b r3, (r2, 0x0) + 8916: 2300 addi r3, 1 + 8918: 74cc zextb r3, r3 + 891a: a260 st.b r3, (r2, 0x0) + 891c: 3100 movi r1, 0 + 891e: 116f lrw r3, 0x2000086c // 89d8 + 8920: 60d0 addu r3, r4 + 8922: a320 st.b r1, (r3, 0x0) + 8924: 8260 ld.b r3, (r2, 0x0) + 8926: 9826 ld.w r1, (r14, 0x18) + 8928: 64c4 cmphs r1, r3 + 892a: 080a bt 0x893e // 893e + 892c: 3300 movi r3, 0 + 892e: 112f lrw r1, 0x20000620 // 89e8 + 8930: 2b01 subi r3, 2 + 8932: 9100 ld.w r0, (r1, 0x0) + 8934: 70d3 rotl r3, r4 + 8936: 68c0 and r3, r0 + 8938: b160 st.w r3, (r1, 0x0) + 893a: 3300 movi r3, 0 + 893c: a260 st.b r3, (r2, 0x0) + 893e: 9860 ld.w r3, (r14, 0x0) + 8940: 9842 ld.w r2, (r14, 0x8) + 8942: 3b03 cmphsi r3, 4 + 8944: 4461 lsli r3, r4, 1 + 8946: 60c8 addu r3, r2 + 8948: 8b40 ld.h r2, (r3, 0x0) + 894a: 748b sexth r2, r2 + 894c: 0d26 bf 0x8b98 // 8b98 + 894e: 9820 ld.w r1, (r14, 0x0) + 8950: 649d cmplt r7, r2 + 8952: 7c5c mult r1, r7 + 8954: 0d13 bf 0x8b7a // 8b7a + 8956: 8b40 ld.h r2, (r3, 0x0) + 8958: 748b sexth r2, r2 + 895a: 6449 cmplt r2, r1 + 895c: 0d0f bf 0x8b7a // 8b7a + 895e: 1126 lrw r1, 0x20000814 // 89f4 + 8960: 6050 addu r1, r4 + 8962: 8140 ld.b r2, (r1, 0x0) + 8964: 2200 addi r2, 1 + 8966: 7488 zextb r2, r2 + 8968: a140 st.b r2, (r1, 0x0) + 896a: 3000 movi r0, 0 + 896c: 1143 lrw r2, 0x20000882 // 89f8 + 896e: 6090 addu r2, r4 + 8970: a200 st.b r0, (r2, 0x0) + 8972: 1143 lrw r2, 0x2000060e // 89fc + 8974: 6090 addu r2, r4 + 8976: a200 st.b r0, (r2, 0x0) + 8978: 1142 lrw r2, 0x20000720 // 8a00 + 897a: 6090 addu r2, r4 + 897c: a200 st.b r0, (r2, 0x0) + 897e: 0443 br 0x8a04 // 8a04 + 8980: 20000264 .long 0x20000264 + 8984: 20000238 .long 0x20000238 + 8988: 20000241 .long 0x20000241 + 898c: 20000240 .long 0x20000240 + 8990: 2000093e .long 0x2000093e + 8994: 200006ac .long 0x200006ac + 8998: 200005ec .long 0x200005ec + 899c: 20000796 .long 0x20000796 + 89a0: 200006d4 .long 0x200006d4 + 89a4: 200007ec .long 0x200007ec + 89a8: 200007ca .long 0x200007ca + 89ac: 200008ac .long 0x200008ac + 89b0: 20000918 .long 0x20000918 + 89b4: 200008f6 .long 0x200008f6 + 89b8: 20000654 .long 0x20000654 + 89bc: 20000628 .long 0x20000628 + 89c0: 20000292 .long 0x20000292 + 89c4: 20000699 .long 0x20000699 + 89c8: 20000678 .long 0x20000678 + 89cc: 200007b8 .long 0x200007b8 + 89d0: 20000850 .long 0x20000850 + 89d4: 2000068c .long 0x2000068c + 89d8: 2000086c .long 0x2000086c + 89dc: 20000708 .long 0x20000708 + 89e0: 20000732 .long 0x20000732 + 89e4: 20000830 .long 0x20000830 + 89e8: 20000620 .long 0x20000620 + 89ec: 20000846 .long 0x20000846 + 89f0: 200006aa .long 0x200006aa + 89f4: 20000814 .long 0x20000814 + 89f8: 20000882 .long 0x20000882 + 89fc: 2000060e .long 0x2000060e + 8a00: 20000720 .long 0x20000720 + 8a04: 8140 ld.b r2, (r1, 0x0) + 8a06: 9803 ld.w r0, (r14, 0xc) + 8a08: 6480 cmphs r0, r2 + 8a0a: 0881 bt 0x8b0c // 8b0c + 8a0c: 3d40 cmpnei r5, 0 + 8a0e: 0874 bt 0x8af6 // 8af6 + 8a10: 014b lrw r2, 0x20000704 // 8d60 + 8a12: 9260 ld.w r3, (r2, 0x0) + 8a14: 3b40 cmpnei r3, 0 + 8a16: 0879 bt 0x8b08 // 8b08 + 8a18: 3301 movi r3, 1 + 8a1a: 9200 ld.w r0, (r2, 0x0) + 8a1c: 70d0 lsl r3, r4 + 8a1e: 6cc0 or r3, r0 + 8a20: b260 st.w r3, (r2, 0x0) + 8a22: 0473 br 0x8b08 // 8b08 + 8a24: 3d42 cmpnei r5, 2 + 8a26: 0960 bt 0x8ce6 // 8ce6 + 8a28: 01d0 lrw r6, 0x2000093c // 8d64 + 8a2a: 8b00 ld.h r0, (r3, 0x0) + 8a2c: 8e40 ld.h r2, (r6, 0x0) + 8a2e: 7489 zexth r2, r2 + 8a30: 7403 sexth r0, r0 + 8a32: 2209 addi r2, 10 + 8a34: 6409 cmplt r2, r0 + 8a36: 0f63 bf 0x88fc // 88fc + 8a38: 8b60 ld.h r3, (r3, 0x0) + 8a3a: 74cd zexth r3, r3 + 8a3c: ae60 st.h r3, (r6, 0x0) + 8a3e: 3300 movi r3, 0 + 8a40: 0155 lrw r2, 0x20000620 // 8d68 + 8a42: b260 st.w r3, (r2, 0x0) + 8a44: 06e8 br 0x8814 // 8814 + 8a46: 9841 ld.w r2, (r14, 0x4) + 8a48: 4461 lsli r3, r4, 1 + 8a4a: 60c8 addu r3, r2 + 8a4c: 8b60 ld.h r3, (r3, 0x0) + 8a4e: 9840 ld.w r2, (r14, 0x0) + 8a50: 74cf sexth r3, r3 + 8a52: 7c9c mult r2, r7 + 8a54: 64c9 cmplt r2, r3 + 8a56: 0f55 bf 0x8900 // 8900 + 8a58: 3300 movi r3, 0 + 8a5a: 015b lrw r2, 0x20000620 // 8d68 + 8a5c: 2b01 subi r3, 2 + 8a5e: 9220 ld.w r1, (r2, 0x0) + 8a60: 70d3 rotl r3, r4 + 8a62: 68c4 and r3, r1 + 8a64: b260 st.w r3, (r2, 0x0) + 8a66: 074d br 0x8900 // 8900 + 8a68: 649d cmplt r7, r2 + 8a6a: 0f4b bf 0x8900 // 8900 + 8a6c: 015f lrw r2, 0x200006aa // 8d6c + 8a6e: 8240 ld.b r2, (r2, 0x0) + 8a70: 7488 zextb r2, r2 + 8a72: 3a40 cmpnei r2, 0 + 8a74: b847 st.w r2, (r14, 0x1c) + 8a76: 0b45 bt 0x8900 // 8900 + 8a78: 0201 lrw r0, 0x2000086c // 8d70 + 8a7a: 6010 addu r0, r4 + 8a7c: 8020 ld.b r1, (r0, 0x0) + 8a7e: 2100 addi r1, 1 + 8a80: 7444 zextb r1, r1 + 8a82: a020 st.b r1, (r0, 0x0) + 8a84: 3600 movi r6, 0 + 8a86: 0223 lrw r1, 0x20000708 // 8d74 + 8a88: 6050 addu r1, r4 + 8a8a: a1c0 st.b r6, (r1, 0x0) + 8a8c: 0224 lrw r1, 0x20000732 // 8d78 + 8a8e: 6050 addu r1, r4 + 8a90: a1c0 st.b r6, (r1, 0x0) + 8a92: 0224 lrw r1, 0x20000830 // 8d7c + 8a94: 6050 addu r1, r4 + 8a96: a1c0 st.b r6, (r1, 0x0) + 8a98: 8020 ld.b r1, (r0, 0x0) + 8a9a: 98c3 ld.w r6, (r14, 0xc) + 8a9c: 6458 cmphs r6, r1 + 8a9e: 0b31 bt 0x8900 // 8900 + 8aa0: 3d40 cmpnei r5, 0 + 8aa2: 0808 bt 0x8ab2 // 8ab2 + 8aa4: 024e lrw r2, 0x20000620 // 8d68 + 8aa6: 9260 ld.w r3, (r2, 0x0) + 8aa8: 3b40 cmpnei r3, 0 + 8aaa: 0823 bt 0x8af0 // 8af0 + 8aac: 9220 ld.w r1, (r2, 0x0) + 8aae: 3301 movi r3, 1 + 8ab0: 0406 br 0x8abc // 8abc + 8ab2: 3d41 cmpnei r5, 1 + 8ab4: 0808 bt 0x8ac4 // 8ac4 + 8ab6: 0252 lrw r2, 0x20000620 // 8d68 + 8ab8: 6cd7 mov r3, r5 + 8aba: 9220 ld.w r1, (r2, 0x0) + 8abc: 70d0 lsl r3, r4 + 8abe: 6cc4 or r3, r1 + 8ac0: b260 st.w r3, (r2, 0x0) + 8ac2: 0417 br 0x8af0 // 8af0 + 8ac4: 3d42 cmpnei r5, 2 + 8ac6: 0942 bt 0x8d4a // 8d4a + 8ac8: 8bc0 ld.h r6, (r3, 0x0) + 8aca: 745b sexth r1, r6 + 8acc: 02d9 lrw r6, 0x2000093c // 8d64 + 8ace: 6c87 mov r2, r1 + 8ad0: 8e20 ld.h r1, (r6, 0x0) + 8ad2: 7445 zexth r1, r1 + 8ad4: 2109 addi r1, 10 + 8ad6: 6485 cmplt r1, r2 + 8ad8: 0c0c bf 0x8af0 // 8af0 + 8ada: 8b60 ld.h r3, (r3, 0x0) + 8adc: 74cd zexth r3, r3 + 8ade: ae60 st.h r3, (r6, 0x0) + 8ae0: 9867 ld.w r3, (r14, 0x1c) + 8ae2: 023d lrw r1, 0x20000620 // 8d68 + 8ae4: b160 st.w r3, (r1, 0x0) + 8ae6: 3301 movi r3, 1 + 8ae8: 9140 ld.w r2, (r1, 0x0) + 8aea: 70d0 lsl r3, r4 + 8aec: 6cc8 or r3, r2 + 8aee: b160 st.w r3, (r1, 0x0) + 8af0: 3300 movi r3, 0 + 8af2: a060 st.b r3, (r0, 0x0) + 8af4: 0706 br 0x8900 // 8900 + 8af6: 3d41 cmpnei r5, 1 + 8af8: 0830 bt 0x8b58 // 8b58 + 8afa: 0345 lrw r2, 0x20000704 // 8d60 + 8afc: 6cd7 mov r3, r5 + 8afe: 9200 ld.w r0, (r2, 0x0) + 8b00: 70d0 lsl r3, r4 + 8b02: 6cc0 or r3, r0 + 8b04: b260 st.w r3, (r2, 0x0) + 8b06: 6c03 mov r0, r0 + 8b08: 3300 movi r3, 0 + 8b0a: a160 st.b r3, (r1, 0x0) + 8b0c: 4461 lsli r3, r4, 1 + 8b0e: 9842 ld.w r2, (r14, 0x8) + 8b10: 608c addu r2, r3 + 8b12: 8a60 ld.h r3, (r2, 0x0) + 8b14: 74cf sexth r3, r3 + 8b16: 9845 ld.w r2, (r14, 0x14) + 8b18: 648d cmplt r3, r2 + 8b1a: 0c18 bf 0x8b4a // 8b4a + 8b1c: 0346 lrw r2, 0x20000882 // 8d80 + 8b1e: 6090 addu r2, r4 + 8b20: 8260 ld.b r3, (r2, 0x0) + 8b22: 2300 addi r3, 1 + 8b24: 74cc zextb r3, r3 + 8b26: a260 st.b r3, (r2, 0x0) + 8b28: 3100 movi r1, 0 + 8b2a: 0368 lrw r3, 0x20000814 // 8d84 + 8b2c: 60d0 addu r3, r4 + 8b2e: a320 st.b r1, (r3, 0x0) + 8b30: 8260 ld.b r3, (r2, 0x0) + 8b32: 9826 ld.w r1, (r14, 0x18) + 8b34: 64c4 cmphs r1, r3 + 8b36: 080a bt 0x8b4a // 8b4a + 8b38: 3300 movi r3, 0 + 8b3a: 0335 lrw r1, 0x20000704 // 8d60 + 8b3c: 2b01 subi r3, 2 + 8b3e: 9100 ld.w r0, (r1, 0x0) + 8b40: 70d3 rotl r3, r4 + 8b42: 68c0 and r3, r0 + 8b44: b160 st.w r3, (r1, 0x0) + 8b46: 3300 movi r3, 0 + 8b48: a260 st.b r3, (r2, 0x0) + 8b4a: 2400 addi r4, 1 + 8b4c: 3c51 cmpnei r4, 17 + 8b4e: 0c03 bf 0x8b54 // 8b54 + 8b50: e800fd8d br 0x866a // 866a + 8b54: 140a addi r14, r14, 40 + 8b56: 1494 pop r4-r7, r15 + 8b58: 3d42 cmpnei r5, 2 + 8b5a: 0948 bt 0x8dea // 8dea + 8b5c: 03d4 lrw r6, 0x200006ce // 8d88 + 8b5e: 8b00 ld.h r0, (r3, 0x0) + 8b60: 8e40 ld.h r2, (r6, 0x0) + 8b62: 7489 zexth r2, r2 + 8b64: 7403 sexth r0, r0 + 8b66: 2209 addi r2, 10 + 8b68: 6409 cmplt r2, r0 + 8b6a: 0fcf bf 0x8b08 // 8b08 + 8b6c: 8b60 ld.h r3, (r3, 0x0) + 8b6e: 74cd zexth r3, r3 + 8b70: ae60 st.h r3, (r6, 0x0) + 8b72: 3300 movi r3, 0 + 8b74: 135b lrw r2, 0x20000704 // 8d60 + 8b76: b260 st.w r3, (r2, 0x0) + 8b78: 0750 br 0x8a18 // 8a18 + 8b7a: 4461 lsli r3, r4, 1 + 8b7c: 9842 ld.w r2, (r14, 0x8) + 8b7e: 60c8 addu r3, r2 + 8b80: 8b60 ld.h r3, (r3, 0x0) + 8b82: 74cf sexth r3, r3 + 8b84: 64c5 cmplt r1, r3 + 8b86: 0fc3 bf 0x8b0c // 8b0c + 8b88: 3300 movi r3, 0 + 8b8a: 1356 lrw r2, 0x20000704 // 8d60 + 8b8c: 2b01 subi r3, 2 + 8b8e: 9220 ld.w r1, (r2, 0x0) + 8b90: 70d3 rotl r3, r4 + 8b92: 68c4 and r3, r1 + 8b94: b260 st.w r3, (r2, 0x0) + 8b96: 07bb br 0x8b0c // 8b0c + 8b98: 649d cmplt r7, r2 + 8b9a: 0fb9 bf 0x8b0c // 8b0c + 8b9c: 1354 lrw r2, 0x200006aa // 8d6c + 8b9e: 8240 ld.b r2, (r2, 0x0) + 8ba0: 7488 zextb r2, r2 + 8ba2: 3a40 cmpnei r2, 0 + 8ba4: 0bb4 bt 0x8b0c // 8b0c + 8ba6: 1318 lrw r0, 0x20000814 // 8d84 + 8ba8: 6010 addu r0, r4 + 8baa: 8020 ld.b r1, (r0, 0x0) + 8bac: 2100 addi r1, 1 + 8bae: 7444 zextb r1, r1 + 8bb0: a020 st.b r1, (r0, 0x0) + 8bb2: 3600 movi r6, 0 + 8bb4: 1333 lrw r1, 0x20000882 // 8d80 + 8bb6: 6050 addu r1, r4 + 8bb8: a1c0 st.b r6, (r1, 0x0) + 8bba: 1335 lrw r1, 0x2000060e // 8d8c + 8bbc: 6050 addu r1, r4 + 8bbe: a1c0 st.b r6, (r1, 0x0) + 8bc0: 1334 lrw r1, 0x20000720 // 8d90 + 8bc2: 6050 addu r1, r4 + 8bc4: a1c0 st.b r6, (r1, 0x0) + 8bc6: 8020 ld.b r1, (r0, 0x0) + 8bc8: 98c3 ld.w r6, (r14, 0xc) + 8bca: 6458 cmphs r6, r1 + 8bcc: 0ba0 bt 0x8b0c // 8b0c + 8bce: 3d40 cmpnei r5, 0 + 8bd0: 0808 bt 0x8be0 // 8be0 + 8bd2: 1344 lrw r2, 0x20000704 // 8d60 + 8bd4: 9260 ld.w r3, (r2, 0x0) + 8bd6: 3b40 cmpnei r3, 0 + 8bd8: 0821 bt 0x8c1a // 8c1a + 8bda: 9220 ld.w r1, (r2, 0x0) + 8bdc: 3301 movi r3, 1 + 8bde: 0406 br 0x8bea // 8bea + 8be0: 3d41 cmpnei r5, 1 + 8be2: 0808 bt 0x8bf2 // 8bf2 + 8be4: 125f lrw r2, 0x20000704 // 8d60 + 8be6: 6cd7 mov r3, r5 + 8be8: 9220 ld.w r1, (r2, 0x0) + 8bea: 70d0 lsl r3, r4 + 8bec: 6cc4 or r3, r1 + 8bee: b260 st.w r3, (r2, 0x0) + 8bf0: 0415 br 0x8c1a // 8c1a + 8bf2: 3d42 cmpnei r5, 2 + 8bf4: 092a bt 0x8e48 // 8e48 + 8bf6: 13e5 lrw r7, 0x200006ce // 8d88 + 8bf8: 8bc0 ld.h r6, (r3, 0x0) + 8bfa: 8f20 ld.h r1, (r7, 0x0) + 8bfc: 7445 zexth r1, r1 + 8bfe: 759b sexth r6, r6 + 8c00: 2109 addi r1, 10 + 8c02: 6585 cmplt r1, r6 + 8c04: 0c0b bf 0x8c1a // 8c1a + 8c06: 8b60 ld.h r3, (r3, 0x0) + 8c08: 1236 lrw r1, 0x20000704 // 8d60 + 8c0a: 74cd zexth r3, r3 + 8c0c: af60 st.h r3, (r7, 0x0) + 8c0e: b140 st.w r2, (r1, 0x0) + 8c10: 3301 movi r3, 1 + 8c12: 9140 ld.w r2, (r1, 0x0) + 8c14: 70d0 lsl r3, r4 + 8c16: 6cc8 or r3, r2 + 8c18: b160 st.w r3, (r1, 0x0) + 8c1a: 3300 movi r3, 0 + 8c1c: a060 st.b r3, (r0, 0x0) + 8c1e: 0777 br 0x8b0c // 8b0c + 8c20: 3d43 cmpnei r5, 3 + 8c22: 0c03 bf 0x8c28 // 8c28 + 8c24: e800fda6 br 0x8770 // 8770 + 8c28: 125b lrw r2, 0x20000846 // 8d94 + 8c2a: 8bc0 ld.h r6, (r3, 0x0) + 8c2c: 8a00 ld.h r0, (r2, 0x0) + 8c2e: 7401 zexth r0, r0 + 8c30: 759b sexth r6, r6 + 8c32: 2009 addi r0, 10 + 8c34: 6581 cmplt r0, r6 + 8c36: 0c0c bf 0x8c4e // 8c4e + 8c38: 8b60 ld.h r3, (r3, 0x0) + 8c3a: 74cd zexth r3, r3 + 8c3c: aa60 st.h r3, (r2, 0x0) + 8c3e: 3300 movi r3, 0 + 8c40: 1216 lrw r0, 0x2000068c // 8d98 + 8c42: b060 st.w r3, (r0, 0x0) + 8c44: 3301 movi r3, 1 + 8c46: 90c0 ld.w r6, (r0, 0x0) + 8c48: 70d0 lsl r3, r4 + 8c4a: 6cd8 or r3, r6 + 8c4c: b060 st.w r3, (r0, 0x0) + 8c4e: 9804 ld.w r0, (r14, 0x10) + 8c50: 4461 lsli r3, r4, 1 + 8c52: 60c0 addu r3, r0 + 8c54: 8b00 ld.h r0, (r3, 0x0) + 8c56: 8a40 ld.h r2, (r2, 0x0) + 8c58: 7489 zexth r2, r2 + 8c5a: 7403 sexth r0, r0 + 8c5c: 2a04 subi r2, 5 + 8c5e: 6481 cmplt r0, r2 + 8c60: 0803 bt 0x8c66 // 8c66 + 8c62: e800fd87 br 0x8770 // 8770 + 8c66: 12ce lrw r6, 0x20000650 // 8d9c + 8c68: 8b00 ld.h r0, (r3, 0x0) + 8c6a: 8e40 ld.h r2, (r6, 0x0) + 8c6c: 7489 zexth r2, r2 + 8c6e: 7403 sexth r0, r0 + 8c70: 2204 addi r2, 5 + 8c72: 6409 cmplt r2, r0 + 8c74: 0803 bt 0x8c7a // 8c7a + 8c76: e800fd7d br 0x8770 // 8770 + 8c7a: 8b60 ld.h r3, (r3, 0x0) + 8c7c: 74cd zexth r3, r3 + 8c7e: ae60 st.h r3, (r6, 0x0) + 8c80: 1246 lrw r2, 0x2000068c // 8d98 + 8c82: e800fd63 br 0x8748 // 8748 + 8c86: 3d43 cmpnei r5, 3 + 8c88: 0c02 bf 0x8c8c // 8c8c + 8c8a: 061d br 0x88c4 // 88c4 + 8c8c: 12c2 lrw r6, 0x20000846 // 8d94 + 8c8e: 8ae0 ld.h r7, (r2, 0x0) + 8c90: 8e20 ld.h r1, (r6, 0x0) + 8c92: 7445 zexth r1, r1 + 8c94: 75df sexth r7, r7 + 8c96: 2109 addi r1, 10 + 8c98: 65c5 cmplt r1, r7 + 8c9a: 0c0b bf 0x8cb0 // 8cb0 + 8c9c: 8a40 ld.h r2, (r2, 0x0) + 8c9e: 7489 zexth r2, r2 + 8ca0: ae40 st.h r2, (r6, 0x0) + 8ca2: 115e lrw r2, 0x2000068c // 8d98 + 8ca4: b260 st.w r3, (r2, 0x0) + 8ca6: 3301 movi r3, 1 + 8ca8: 9220 ld.w r1, (r2, 0x0) + 8caa: 70d0 lsl r3, r4 + 8cac: 6cc4 or r3, r1 + 8cae: b260 st.w r3, (r2, 0x0) + 8cb0: 9844 ld.w r2, (r14, 0x10) + 8cb2: 4461 lsli r3, r4, 1 + 8cb4: 60c8 addu r3, r2 + 8cb6: 8b40 ld.h r2, (r3, 0x0) + 8cb8: 8e20 ld.h r1, (r6, 0x0) + 8cba: 7445 zexth r1, r1 + 8cbc: 748b sexth r2, r2 + 8cbe: 2904 subi r1, 5 + 8cc0: 6449 cmplt r2, r1 + 8cc2: 0802 bt 0x8cc6 // 8cc6 + 8cc4: 0600 br 0x88c4 // 88c4 + 8cc6: 11d6 lrw r6, 0x20000650 // 8d9c + 8cc8: 8b20 ld.h r1, (r3, 0x0) + 8cca: 8e40 ld.h r2, (r6, 0x0) + 8ccc: 7489 zexth r2, r2 + 8cce: 7447 sexth r1, r1 + 8cd0: 2204 addi r2, 5 + 8cd2: 6449 cmplt r2, r1 + 8cd4: 0803 bt 0x8cda // 8cda + 8cd6: e800fdf7 br 0x88c4 // 88c4 + 8cda: 8b60 ld.h r3, (r3, 0x0) + 8cdc: 74cd zexth r3, r3 + 8cde: ae60 st.h r3, (r6, 0x0) + 8ce0: 114e lrw r2, 0x2000068c // 8d98 + 8ce2: e800fde6 br 0x88ae // 88ae + 8ce6: 3d43 cmpnei r5, 3 + 8ce8: 0c02 bf 0x8cec // 8cec + 8cea: 0609 br 0x88fc // 88fc + 8cec: 105e lrw r2, 0x2000093c // 8d64 + 8cee: 8bc0 ld.h r6, (r3, 0x0) + 8cf0: 8a00 ld.h r0, (r2, 0x0) + 8cf2: 7401 zexth r0, r0 + 8cf4: 759b sexth r6, r6 + 8cf6: 2009 addi r0, 10 + 8cf8: 6581 cmplt r0, r6 + 8cfa: 0c0c bf 0x8d12 // 8d12 + 8cfc: 8b60 ld.h r3, (r3, 0x0) + 8cfe: 74cd zexth r3, r3 + 8d00: aa60 st.h r3, (r2, 0x0) + 8d02: 3300 movi r3, 0 + 8d04: 1019 lrw r0, 0x20000620 // 8d68 + 8d06: b060 st.w r3, (r0, 0x0) + 8d08: 3301 movi r3, 1 + 8d0a: 90c0 ld.w r6, (r0, 0x0) + 8d0c: 70d0 lsl r3, r4 + 8d0e: 6cd8 or r3, r6 + 8d10: b060 st.w r3, (r0, 0x0) + 8d12: 9801 ld.w r0, (r14, 0x4) + 8d14: 4461 lsli r3, r4, 1 + 8d16: 60c0 addu r3, r0 + 8d18: 8b00 ld.h r0, (r3, 0x0) + 8d1a: 8a40 ld.h r2, (r2, 0x0) + 8d1c: 7489 zexth r2, r2 + 8d1e: 7403 sexth r0, r0 + 8d20: 2a04 subi r2, 5 + 8d22: 6481 cmplt r0, r2 + 8d24: 0803 bt 0x8d2a // 8d2a + 8d26: e800fdeb br 0x88fc // 88fc + 8d2a: 10de lrw r6, 0x2000084e // 8da0 + 8d2c: 8b00 ld.h r0, (r3, 0x0) + 8d2e: 8e40 ld.h r2, (r6, 0x0) + 8d30: 7489 zexth r2, r2 + 8d32: 7403 sexth r0, r0 + 8d34: 2204 addi r2, 5 + 8d36: 6409 cmplt r2, r0 + 8d38: 0803 bt 0x8d3e // 8d3e + 8d3a: e800fde1 br 0x88fc // 88fc + 8d3e: 8b60 ld.h r3, (r3, 0x0) + 8d40: 74cd zexth r3, r3 + 8d42: ae60 st.h r3, (r6, 0x0) + 8d44: 1049 lrw r2, 0x20000620 // 8d68 + 8d46: e800fd67 br 0x8814 // 8814 + 8d4a: 3d43 cmpnei r5, 3 + 8d4c: 0ad2 bt 0x8af0 // 8af0 + 8d4e: 8b20 ld.h r1, (r3, 0x0) + 8d50: 10c5 lrw r6, 0x2000093c // 8d64 + 8d52: 7487 sexth r2, r1 + 8d54: 8e20 ld.h r1, (r6, 0x0) + 8d56: 7445 zexth r1, r1 + 8d58: 2109 addi r1, 10 + 8d5a: 6485 cmplt r1, r2 + 8d5c: 0c2f bf 0x8dba // 8dba + 8d5e: 0423 br 0x8da4 // 8da4 + 8d60: 20000704 .long 0x20000704 + 8d64: 2000093c .long 0x2000093c + 8d68: 20000620 .long 0x20000620 + 8d6c: 200006aa .long 0x200006aa + 8d70: 2000086c .long 0x2000086c + 8d74: 20000708 .long 0x20000708 + 8d78: 20000732 .long 0x20000732 + 8d7c: 20000830 .long 0x20000830 + 8d80: 20000882 .long 0x20000882 + 8d84: 20000814 .long 0x20000814 + 8d88: 200006ce .long 0x200006ce + 8d8c: 2000060e .long 0x2000060e + 8d90: 20000720 .long 0x20000720 + 8d94: 20000846 .long 0x20000846 + 8d98: 2000068c .long 0x2000068c + 8d9c: 20000650 .long 0x20000650 + 8da0: 2000084e .long 0x2000084e + 8da4: 8b60 ld.h r3, (r3, 0x0) + 8da6: 74cd zexth r3, r3 + 8da8: ae60 st.h r3, (r6, 0x0) + 8daa: 9867 ld.w r3, (r14, 0x1c) + 8dac: 113d lrw r1, 0x20000620 // 8ea0 + 8dae: b160 st.w r3, (r1, 0x0) + 8db0: 3301 movi r3, 1 + 8db2: 9140 ld.w r2, (r1, 0x0) + 8db4: 70d0 lsl r3, r4 + 8db6: 6cc8 or r3, r2 + 8db8: b160 st.w r3, (r1, 0x0) + 8dba: 9841 ld.w r2, (r14, 0x4) + 8dbc: 4461 lsli r3, r4, 1 + 8dbe: 60c8 addu r3, r2 + 8dc0: 8b40 ld.h r2, (r3, 0x0) + 8dc2: 8e20 ld.h r1, (r6, 0x0) + 8dc4: 7445 zexth r1, r1 + 8dc6: 748b sexth r2, r2 + 8dc8: 2904 subi r1, 5 + 8dca: 6449 cmplt r2, r1 + 8dcc: 0e92 bf 0x8af0 // 8af0 + 8dce: 11d6 lrw r6, 0x2000084e // 8ea4 + 8dd0: 8b20 ld.h r1, (r3, 0x0) + 8dd2: 8e40 ld.h r2, (r6, 0x0) + 8dd4: 7489 zexth r2, r2 + 8dd6: 7447 sexth r1, r1 + 8dd8: 2204 addi r2, 5 + 8dda: 6449 cmplt r2, r1 + 8ddc: 0802 bt 0x8de0 // 8de0 + 8dde: 0689 br 0x8af0 // 8af0 + 8de0: 8b60 ld.h r3, (r3, 0x0) + 8de2: 74cd zexth r3, r3 + 8de4: ae60 st.h r3, (r6, 0x0) + 8de6: 114f lrw r2, 0x20000620 // 8ea0 + 8de8: 0662 br 0x8aac // 8aac + 8dea: 3d43 cmpnei r5, 3 + 8dec: 0a8e bt 0x8b08 // 8b08 + 8dee: 114f lrw r2, 0x200006ce // 8ea8 + 8df0: 8bc0 ld.h r6, (r3, 0x0) + 8df2: 8a00 ld.h r0, (r2, 0x0) + 8df4: 7401 zexth r0, r0 + 8df6: 759b sexth r6, r6 + 8df8: 2009 addi r0, 10 + 8dfa: 6581 cmplt r0, r6 + 8dfc: 0c0c bf 0x8e14 // 8e14 + 8dfe: 8b60 ld.h r3, (r3, 0x0) + 8e00: 74cd zexth r3, r3 + 8e02: aa60 st.h r3, (r2, 0x0) + 8e04: 3300 movi r3, 0 + 8e06: 110a lrw r0, 0x20000704 // 8eac + 8e08: b060 st.w r3, (r0, 0x0) + 8e0a: 3301 movi r3, 1 + 8e0c: 90c0 ld.w r6, (r0, 0x0) + 8e0e: 70d0 lsl r3, r4 + 8e10: 6cd8 or r3, r6 + 8e12: b060 st.w r3, (r0, 0x0) + 8e14: 9802 ld.w r0, (r14, 0x8) + 8e16: 4461 lsli r3, r4, 1 + 8e18: 60c0 addu r3, r0 + 8e1a: 8b00 ld.h r0, (r3, 0x0) + 8e1c: 8a40 ld.h r2, (r2, 0x0) + 8e1e: 7489 zexth r2, r2 + 8e20: 7403 sexth r0, r0 + 8e22: 2a04 subi r2, 5 + 8e24: 6481 cmplt r0, r2 + 8e26: 0802 bt 0x8e2a // 8e2a + 8e28: 0670 br 0x8b08 // 8b08 + 8e2a: 11c2 lrw r6, 0x20000794 // 8eb0 + 8e2c: 8b00 ld.h r0, (r3, 0x0) + 8e2e: 8e40 ld.h r2, (r6, 0x0) + 8e30: 7489 zexth r2, r2 + 8e32: 7403 sexth r0, r0 + 8e34: 2204 addi r2, 5 + 8e36: 6409 cmplt r2, r0 + 8e38: 0802 bt 0x8e3c // 8e3c + 8e3a: 0667 br 0x8b08 // 8b08 + 8e3c: 8b60 ld.h r3, (r3, 0x0) + 8e3e: 74cd zexth r3, r3 + 8e40: ae60 st.h r3, (r6, 0x0) + 8e42: 105b lrw r2, 0x20000704 // 8eac + 8e44: e800fdea br 0x8a18 // 8a18 + 8e48: 3d43 cmpnei r5, 3 + 8e4a: 0ae8 bt 0x8c1a // 8c1a + 8e4c: 10d7 lrw r6, 0x200006ce // 8ea8 + 8e4e: 8be0 ld.h r7, (r3, 0x0) + 8e50: 8e20 ld.h r1, (r6, 0x0) + 8e52: 7445 zexth r1, r1 + 8e54: 75df sexth r7, r7 + 8e56: 2109 addi r1, 10 + 8e58: 65c5 cmplt r1, r7 + 8e5a: 0c0b bf 0x8e70 // 8e70 + 8e5c: 8b60 ld.h r3, (r3, 0x0) + 8e5e: 1034 lrw r1, 0x20000704 // 8eac + 8e60: 74cd zexth r3, r3 + 8e62: ae60 st.h r3, (r6, 0x0) + 8e64: b140 st.w r2, (r1, 0x0) + 8e66: 3301 movi r3, 1 + 8e68: 9140 ld.w r2, (r1, 0x0) + 8e6a: 70d0 lsl r3, r4 + 8e6c: 6cc8 or r3, r2 + 8e6e: b160 st.w r3, (r1, 0x0) + 8e70: 9842 ld.w r2, (r14, 0x8) + 8e72: 4461 lsli r3, r4, 1 + 8e74: 60c8 addu r3, r2 + 8e76: 8b40 ld.h r2, (r3, 0x0) + 8e78: 8e20 ld.h r1, (r6, 0x0) + 8e7a: 7445 zexth r1, r1 + 8e7c: 748b sexth r2, r2 + 8e7e: 2904 subi r1, 5 + 8e80: 6449 cmplt r2, r1 + 8e82: 0ecc bf 0x8c1a // 8c1a + 8e84: 10cb lrw r6, 0x20000794 // 8eb0 + 8e86: 8b20 ld.h r1, (r3, 0x0) + 8e88: 8e40 ld.h r2, (r6, 0x0) + 8e8a: 7489 zexth r2, r2 + 8e8c: 7447 sexth r1, r1 + 8e8e: 2204 addi r2, 5 + 8e90: 6449 cmplt r2, r1 + 8e92: 0ec4 bf 0x8c1a // 8c1a + 8e94: 8b60 ld.h r3, (r3, 0x0) + 8e96: 74cd zexth r3, r3 + 8e98: ae60 st.h r3, (r6, 0x0) + 8e9a: 1045 lrw r2, 0x20000704 // 8eac + 8e9c: 069f br 0x8bda // 8bda + 8e9e: 0000 bkpt + 8ea0: 20000620 .long 0x20000620 + 8ea4: 2000084e .long 0x2000084e + 8ea8: 200006ce .long 0x200006ce + 8eac: 20000704 .long 0x20000704 + 8eb0: 20000794 .long 0x20000794 + +Disassembly of section .text.TK_overflow_predict: + +00008eb4 : + 8eb4: 14d4 push r4-r7, r15 + 8eb6: 1422 subi r14, r14, 8 + 8eb8: 113c lrw r1, 0x20000070 // 8fa8 + 8eba: 8167 ld.b r3, (r1, 0x7) + 8ebc: 3b41 cmpnei r3, 1 + 8ebe: 0823 bt 0x8f04 // 8f04 + 8ec0: 115b lrw r2, 0x2000080e // 8fac + 8ec2: 8260 ld.b r3, (r2, 0x0) + 8ec4: 2300 addi r3, 1 + 8ec6: 74cc zextb r3, r3 + 8ec8: a260 st.b r3, (r2, 0x0) + 8eca: 8260 ld.b r3, (r2, 0x0) + 8ecc: 1119 lrw r0, 0x20000265 // 8fb0 + 8ece: 8000 ld.b r0, (r0, 0x0) + 8ed0: 64c0 cmphs r0, r3 + 8ed2: 0819 bt 0x8f04 // 8f04 + 8ed4: 3300 movi r3, 0 + 8ed6: a260 st.b r3, (r2, 0x0) + 8ed8: 11b7 lrw r5, 0x20000719 // 8fb4 + 8eda: 8560 ld.b r3, (r5, 0x0) + 8edc: 3b40 cmpnei r3, 0 + 8ede: 0c15 bf 0x8f08 // 8f08 + 8ee0: 8560 ld.b r3, (r5, 0x0) + 8ee2: 3b41 cmpnei r3, 1 + 8ee4: 0810 bt 0x8f04 // 8f04 + 8ee6: 3300 movi r3, 0 + 8ee8: a560 st.b r3, (r5, 0x0) + 8eea: 3200 movi r2, 0 + 8eec: 1173 lrw r3, 0x20000058 // 8fb8 + 8eee: 1114 lrw r0, 0x20000848 // 8fbc + 8ef0: 11b4 lrw r5, 0x20000898 // 8fc0 + 8ef2: 11d5 lrw r6, 0x20000242 // 8fc4 + 8ef4: 9360 ld.w r3, (r3, 0x0) + 8ef6: b342 st.w r2, (r3, 0x8) + 8ef8: 1174 lrw r3, 0x20000054 // 8fc8 + 8efa: 9380 ld.w r4, (r3, 0x0) + 8efc: 3300 movi r3, 0 + 8efe: 8040 ld.b r2, (r0, 0x0) + 8f00: 648c cmphs r3, r2 + 8f02: 0c44 bf 0x8f8a // 8f8a + 8f04: 1402 addi r14, r14, 8 + 8f06: 1494 pop r4-r7, r15 + 8f08: 597e addi r3, r1, 8 + 8f0a: 3600 movi r6, 0 + 8f0c: 11f0 lrw r7, 0x20000268 // 8fcc + 8f0e: b860 st.w r3, (r14, 0x0) + 8f10: 9760 ld.w r3, (r7, 0x0) + 8f12: 70d9 lsr r3, r6 + 8f14: 3201 movi r2, 1 + 8f16: 68c8 and r3, r2 + 8f18: 3b40 cmpnei r3, 0 + 8f1a: 0c34 bf 0x8f82 // 8f82 + 8f1c: 4681 lsli r4, r6, 1 + 8f1e: 9860 ld.w r3, (r14, 0x0) + 8f20: 60d0 addu r3, r4 + 8f22: 8b00 ld.h r0, (r3, 0x0) + 8f24: e3ffc35a bsr 0x15d8 // 15d8 <__floatunsidf> + 8f28: 6cc7 mov r3, r1 + 8f2a: 3180 movi r1, 128 + 8f2c: 6c83 mov r2, r0 + 8f2e: 4137 lsli r1, r1, 23 + 8f30: 3000 movi r0, 0 + 8f32: e3ffb941 bsr 0x1b4 // 1b4 <__GI_pow> + 8f36: 1167 lrw r3, 0x2000026e // 8fd0 + 8f38: 60d0 addu r3, r4 + 8f3a: 8b60 ld.h r3, (r3, 0x0) + 8f3c: 4364 lsli r3, r3, 4 + 8f3e: 230e addi r3, 15 + 8f40: b861 st.w r3, (r14, 0x4) + 8f42: e3ffbf03 bsr 0xd48 // d48 <__fixunsdfsi> + 8f46: 9861 ld.w r3, (r14, 0x4) + 8f48: 7cc0 mult r3, r0 + 8f4a: 1143 lrw r2, 0x200008ce // 8fd4 + 8f4c: 740d zexth r0, r3 + 8f4e: 6090 addu r2, r4 + 8f50: 1162 lrw r3, 0x2000093e // 8fd8 + 8f52: 60d0 addu r3, r4 + 8f54: aa00 st.h r0, (r2, 0x0) + 8f56: 8b60 ld.h r3, (r3, 0x0) + 8f58: 8a00 ld.h r0, (r2, 0x0) + 8f5a: 7401 zexth r0, r0 + 8f5c: 325f movi r2, 95 + 8f5e: 74cd zexth r3, r3 + 8f60: 7c08 mult r0, r2 + 8f62: 3164 movi r1, 100 + 8f64: b861 st.w r3, (r14, 0x4) + 8f66: e3ffd4b9 bsr 0x38d8 // 38d8 <__divsi3> + 8f6a: 9861 ld.w r3, (r14, 0x4) + 8f6c: 64c1 cmplt r0, r3 + 8f6e: 0c0a bf 0x8f82 // 8f82 + 8f70: 1075 lrw r3, 0x20000242 // 8fc4 + 8f72: 610c addu r4, r3 + 8f74: 8c60 ld.h r3, (r4, 0x0) + 8f76: 3b06 cmphsi r3, 7 + 8f78: 0805 bt 0x8f82 // 8f82 + 8f7a: 2300 addi r3, 1 + 8f7c: ac60 st.h r3, (r4, 0x0) + 8f7e: 3301 movi r3, 1 + 8f80: a560 st.b r3, (r5, 0x0) + 8f82: 2600 addi r6, 1 + 8f84: 3e51 cmpnei r6, 17 + 8f86: 0bc5 bt 0x8f10 // 8f10 + 8f88: 07ac br 0x8ee0 // 8ee0 + 8f8a: 5d4c addu r2, r5, r3 + 8f8c: 8240 ld.b r2, (r2, 0x0) + 8f8e: 4241 lsli r2, r2, 1 + 8f90: 4322 lsli r1, r3, 2 + 8f92: 6098 addu r2, r6 + 8f94: 6050 addu r1, r4 + 8f96: 8a40 ld.h r2, (r2, 0x0) + 8f98: 91f2 ld.w r7, (r1, 0x48) + 8f9a: 4254 lsli r2, r2, 20 + 8f9c: 6c9c or r2, r7 + 8f9e: 2300 addi r3, 1 + 8fa0: b152 st.w r2, (r1, 0x48) + 8fa2: 74cc zextb r3, r3 + 8fa4: 07ad br 0x8efe // 8efe + 8fa6: 0000 bkpt + 8fa8: 20000070 .long 0x20000070 + 8fac: 2000080e .long 0x2000080e + 8fb0: 20000265 .long 0x20000265 + 8fb4: 20000719 .long 0x20000719 + 8fb8: 20000058 .long 0x20000058 + 8fbc: 20000848 .long 0x20000848 + 8fc0: 20000898 .long 0x20000898 + 8fc4: 20000242 .long 0x20000242 + 8fc8: 20000054 .long 0x20000054 + 8fcc: 20000268 .long 0x20000268 + 8fd0: 2000026e .long 0x2000026e + 8fd4: 200008ce .long 0x200008ce + 8fd8: 2000093e .long 0x2000093e + +Disassembly of section .text.TK_Baseline_tracking: + +00008fdc : + 8fdc: 14d4 push r4-r7, r15 + 8fde: 1421 subi r14, r14, 4 + 8fe0: 014a lrw r2, 0x2000078a // 9334 + 8fe2: 8260 ld.b r3, (r2, 0x0) + 8fe4: 2300 addi r3, 1 + 8fe6: 74cc zextb r3, r3 + 8fe8: a260 st.b r3, (r2, 0x0) + 8fea: 8260 ld.b r3, (r2, 0x0) + 8fec: 012c lrw r1, 0x20000265 // 9338 + 8fee: 8120 ld.b r1, (r1, 0x0) + 8ff0: 644c cmphs r3, r1 + 8ff2: 0803 bt 0x8ff8 // 8ff8 + 8ff4: e800020f br 0x9412 // 9412 + 8ff8: 3300 movi r3, 0 + 8ffa: a260 st.b r3, (r2, 0x0) + 8ffc: 016f lrw r3, 0x2000068c // 933c + 8ffe: 9360 ld.w r3, (r3, 0x0) + 9000: 3b40 cmpnei r3, 0 + 9002: 0c03 bf 0x9008 // 9008 + 9004: e8000209 br 0x9416 // 9416 + 9008: 0171 lrw r3, 0x200006ac // 9340 + 900a: 0150 lrw r2, 0x20000292 // 9344 + 900c: 3100 movi r1, 0 + 900e: b860 st.w r3, (r14, 0x0) + 9010: 6d0f mov r4, r3 + 9012: 0111 lrw r0, 0x200005ec // 9348 + 9014: 4161 lsli r3, r1, 1 + 9016: 98a0 ld.w r5, (r14, 0x0) + 9018: 614c addu r5, r3 + 901a: 8da0 ld.h r5, (r5, 0x0) + 901c: 7557 sexth r5, r5 + 901e: 3ddf btsti r5, 31 + 9020: 0c1c bf 0x9058 // 9058 + 9022: 01d4 lrw r6, 0x2000093e // 934c + 9024: 58ac addu r5, r0, r3 + 9026: 618c addu r6, r3 + 9028: 8da0 ld.h r5, (r5, 0x0) + 902a: 8ec0 ld.h r6, (r6, 0x0) + 902c: 7599 zexth r6, r6 + 902e: 7555 zexth r5, r5 + 9030: 615a subu r5, r6 + 9032: 8ac0 ld.h r6, (r2, 0x0) + 9034: 6595 cmplt r5, r6 + 9036: 0811 bt 0x9058 // 9058 + 9038: 01b9 lrw r5, 0x20000850 // 9350 + 903a: 6144 addu r5, r1 + 903c: 85c0 ld.b r6, (r5, 0x0) + 903e: 2600 addi r6, 1 + 9040: 7598 zextb r6, r6 + 9042: a5c0 st.b r6, (r5, 0x0) + 9044: 01db lrw r6, 0x20000090 // 9354 + 9046: 85e0 ld.b r7, (r5, 0x0) + 9048: 86ca ld.b r6, (r6, 0xa) + 904a: 65d8 cmphs r6, r7 + 904c: 0806 bt 0x9058 // 9058 + 904e: 01dc lrw r6, 0x200006f8 // 9358 + 9050: 3701 movi r7, 1 + 9052: a6e0 st.b r7, (r6, 0x0) + 9054: 3600 movi r6, 0 + 9056: a5c0 st.b r6, (r5, 0x0) + 9058: 5cac addu r5, r4, r3 + 905a: 8da0 ld.h r5, (r5, 0x0) + 905c: 7557 sexth r5, r5 + 905e: 3d20 cmplti r5, 1 + 9060: 081d bt 0x909a // 909a + 9062: 02a4 lrw r5, 0x2000093e // 934c + 9064: 614c addu r5, r3 + 9066: 58cc addu r6, r0, r3 + 9068: 8da0 ld.h r5, (r5, 0x0) + 906a: 8ec0 ld.h r6, (r6, 0x0) + 906c: 7599 zexth r6, r6 + 906e: 7555 zexth r5, r5 + 9070: 615a subu r5, r6 + 9072: 8ac0 ld.h r6, (r2, 0x0) + 9074: 46c2 lsli r6, r6, 2 + 9076: 6595 cmplt r5, r6 + 9078: 0811 bt 0x909a // 909a + 907a: 02a6 lrw r5, 0x200007b8 // 935c + 907c: 6144 addu r5, r1 + 907e: 85c0 ld.b r6, (r5, 0x0) + 9080: 2600 addi r6, 1 + 9082: 7598 zextb r6, r6 + 9084: a5c0 st.b r6, (r5, 0x0) + 9086: 02cb lrw r6, 0x20000090 // 9354 + 9088: 85e0 ld.b r7, (r5, 0x0) + 908a: 86cb ld.b r6, (r6, 0xb) + 908c: 65d8 cmphs r6, r7 + 908e: 0806 bt 0x909a // 909a + 9090: 02cd lrw r6, 0x200006f8 // 9358 + 9092: 3701 movi r7, 1 + 9094: a6e0 st.b r7, (r6, 0x0) + 9096: 3600 movi r6, 0 + 9098: a5c0 st.b r6, (r5, 0x0) + 909a: 5cac addu r5, r4, r3 + 909c: 8da0 ld.h r5, (r5, 0x0) + 909e: 7557 sexth r5, r5 + 90a0: 3ddf btsti r5, 31 + 90a2: 0c10 bf 0x90c2 // 90c2 + 90a4: 02f5 lrw r7, 0x2000093e // 934c + 90a6: 58cc addu r6, r0, r3 + 90a8: 61cc addu r7, r3 + 90aa: 8ea0 ld.h r5, (r6, 0x0) + 90ac: 8fe0 ld.h r7, (r7, 0x0) + 90ae: 75dd zexth r7, r7 + 90b0: 7555 zexth r5, r5 + 90b2: 615e subu r5, r7 + 90b4: 8ae0 ld.h r7, (r2, 0x0) + 90b6: 65d5 cmplt r5, r7 + 90b8: 0c05 bf 0x90c2 // 90c2 + 90ba: 8ea0 ld.h r5, (r6, 0x0) + 90bc: 2d00 subi r5, 1 + 90be: 7555 zexth r5, r5 + 90c0: aea0 st.h r5, (r6, 0x0) + 90c2: 5cac addu r5, r4, r3 + 90c4: 8da0 ld.h r5, (r5, 0x0) + 90c6: 7557 sexth r5, r5 + 90c8: 3ddf btsti r5, 31 + 90ca: 0c11 bf 0x90ec // 90ec + 90cc: 02ff lrw r7, 0x2000093e // 934c + 90ce: 58cc addu r6, r0, r3 + 90d0: 61cc addu r7, r3 + 90d2: 8ea0 ld.h r5, (r6, 0x0) + 90d4: 8fe0 ld.h r7, (r7, 0x0) + 90d6: 75dd zexth r7, r7 + 90d8: 7555 zexth r5, r5 + 90da: 615e subu r5, r7 + 90dc: 8ae0 ld.h r7, (r2, 0x0) + 90de: 4fe1 lsri r7, r7, 1 + 90e0: 65d5 cmplt r5, r7 + 90e2: 0805 bt 0x90ec // 90ec + 90e4: 8ea0 ld.h r5, (r6, 0x0) + 90e6: 2d01 subi r5, 2 + 90e8: 7555 zexth r5, r5 + 90ea: aea0 st.h r5, (r6, 0x0) + 90ec: 5ccc addu r6, r4, r3 + 90ee: 8ea0 ld.h r5, (r6, 0x0) + 90f0: 7557 sexth r5, r5 + 90f2: 3d20 cmplti r5, 1 + 90f4: 080c bt 0x910c // 910c + 90f6: 8ec0 ld.h r6, (r6, 0x0) + 90f8: 8aa0 ld.h r5, (r2, 0x0) + 90fa: 759b sexth r6, r6 + 90fc: 4da1 lsri r5, r5, 1 + 90fe: 6559 cmplt r6, r5 + 9100: 0c06 bf 0x910c // 910c + 9102: 58cc addu r6, r0, r3 + 9104: 8ea0 ld.h r5, (r6, 0x0) + 9106: 2500 addi r5, 1 + 9108: 7555 zexth r5, r5 + 910a: aea0 st.h r5, (r6, 0x0) + 910c: 5ccc addu r6, r4, r3 + 910e: 8ea0 ld.h r5, (r6, 0x0) + 9110: 7557 sexth r5, r5 + 9112: 3d20 cmplti r5, 1 + 9114: 0810 bt 0x9134 // 9134 + 9116: 8ee0 ld.h r7, (r6, 0x0) + 9118: 75df sexth r7, r7 + 911a: 8aa0 ld.h r5, (r2, 0x0) + 911c: 655d cmplt r7, r5 + 911e: 0c0b bf 0x9134 // 9134 + 9120: 8ec0 ld.h r6, (r6, 0x0) + 9122: 759b sexth r6, r6 + 9124: 4da1 lsri r5, r5, 1 + 9126: 6559 cmplt r6, r5 + 9128: 0806 bt 0x9134 // 9134 + 912a: 60c0 addu r3, r0 + 912c: 8ba0 ld.h r5, (r3, 0x0) + 912e: 2501 addi r5, 2 + 9130: 7555 zexth r5, r5 + 9132: aba0 st.h r5, (r3, 0x0) + 9134: 2100 addi r1, 1 + 9136: 3951 cmpnei r1, 17 + 9138: 2201 addi r2, 2 + 913a: 0b6d bt 0x9014 // 9014 + 913c: 0376 lrw r3, 0x20000620 // 9360 + 913e: 9360 ld.w r3, (r3, 0x0) + 9140: 3b40 cmpnei r3, 0 + 9142: 0980 bt 0x9442 // 9442 + 9144: 0377 lrw r3, 0x200007ec // 9364 + 9146: 035f lrw r2, 0x20000292 // 9344 + 9148: 3100 movi r1, 0 + 914a: b860 st.w r3, (r14, 0x0) + 914c: 6d0f mov r4, r3 + 914e: 0318 lrw r0, 0x20000796 // 9368 + 9150: 4161 lsli r3, r1, 1 + 9152: 98a0 ld.w r5, (r14, 0x0) + 9154: 614c addu r5, r3 + 9156: 8da0 ld.h r5, (r5, 0x0) + 9158: 7557 sexth r5, r5 + 915a: 3ddf btsti r5, 31 + 915c: 0c1c bf 0x9194 // 9194 + 915e: 03db lrw r6, 0x200006d4 // 936c + 9160: 58ac addu r5, r0, r3 + 9162: 618c addu r6, r3 + 9164: 8da0 ld.h r5, (r5, 0x0) + 9166: 8ec0 ld.h r6, (r6, 0x0) + 9168: 7599 zexth r6, r6 + 916a: 7555 zexth r5, r5 + 916c: 615a subu r5, r6 + 916e: 8ac0 ld.h r6, (r2, 0x0) + 9170: 6595 cmplt r5, r6 + 9172: 0811 bt 0x9194 // 9194 + 9174: 13bf lrw r5, 0x20000830 // 9370 + 9176: 6144 addu r5, r1 + 9178: 85c0 ld.b r6, (r5, 0x0) + 917a: 2600 addi r6, 1 + 917c: 7598 zextb r6, r6 + 917e: a5c0 st.b r6, (r5, 0x0) + 9180: 13d5 lrw r6, 0x20000090 // 9354 + 9182: 85e0 ld.b r7, (r5, 0x0) + 9184: 86ca ld.b r6, (r6, 0xa) + 9186: 65d8 cmphs r6, r7 + 9188: 0806 bt 0x9194 // 9194 + 918a: 13d4 lrw r6, 0x200006f8 // 9358 + 918c: 3701 movi r7, 1 + 918e: a6e1 st.b r7, (r6, 0x1) + 9190: 3600 movi r6, 0 + 9192: a5c0 st.b r6, (r5, 0x0) + 9194: 5cac addu r5, r4, r3 + 9196: 8da0 ld.h r5, (r5, 0x0) + 9198: 7557 sexth r5, r5 + 919a: 3d20 cmplti r5, 1 + 919c: 081d bt 0x91d6 // 91d6 + 919e: 13b4 lrw r5, 0x200006d4 // 936c + 91a0: 614c addu r5, r3 + 91a2: 58cc addu r6, r0, r3 + 91a4: 8da0 ld.h r5, (r5, 0x0) + 91a6: 8ec0 ld.h r6, (r6, 0x0) + 91a8: 7599 zexth r6, r6 + 91aa: 7555 zexth r5, r5 + 91ac: 615a subu r5, r6 + 91ae: 8ac0 ld.h r6, (r2, 0x0) + 91b0: 46c2 lsli r6, r6, 2 + 91b2: 6595 cmplt r5, r6 + 91b4: 0811 bt 0x91d6 // 91d6 + 91b6: 13b0 lrw r5, 0x20000732 // 9374 + 91b8: 6144 addu r5, r1 + 91ba: 85c0 ld.b r6, (r5, 0x0) + 91bc: 2600 addi r6, 1 + 91be: 7598 zextb r6, r6 + 91c0: a5c0 st.b r6, (r5, 0x0) + 91c2: 13c5 lrw r6, 0x20000090 // 9354 + 91c4: 85e0 ld.b r7, (r5, 0x0) + 91c6: 86cb ld.b r6, (r6, 0xb) + 91c8: 65d8 cmphs r6, r7 + 91ca: 0806 bt 0x91d6 // 91d6 + 91cc: 13c3 lrw r6, 0x200006f8 // 9358 + 91ce: 3701 movi r7, 1 + 91d0: a6e1 st.b r7, (r6, 0x1) + 91d2: 3600 movi r6, 0 + 91d4: a5c0 st.b r6, (r5, 0x0) + 91d6: 5cac addu r5, r4, r3 + 91d8: 8da0 ld.h r5, (r5, 0x0) + 91da: 7557 sexth r5, r5 + 91dc: 3ddf btsti r5, 31 + 91de: 0c10 bf 0x91fe // 91fe + 91e0: 13e3 lrw r7, 0x200006d4 // 936c + 91e2: 58cc addu r6, r0, r3 + 91e4: 61cc addu r7, r3 + 91e6: 8ea0 ld.h r5, (r6, 0x0) + 91e8: 8fe0 ld.h r7, (r7, 0x0) + 91ea: 75dd zexth r7, r7 + 91ec: 7555 zexth r5, r5 + 91ee: 615e subu r5, r7 + 91f0: 8ae0 ld.h r7, (r2, 0x0) + 91f2: 65d5 cmplt r5, r7 + 91f4: 0c05 bf 0x91fe // 91fe + 91f6: 8ea0 ld.h r5, (r6, 0x0) + 91f8: 2d00 subi r5, 1 + 91fa: 7555 zexth r5, r5 + 91fc: aea0 st.h r5, (r6, 0x0) + 91fe: 5cac addu r5, r4, r3 + 9200: 8da0 ld.h r5, (r5, 0x0) + 9202: 7557 sexth r5, r5 + 9204: 3ddf btsti r5, 31 + 9206: 0c11 bf 0x9228 // 9228 + 9208: 12f9 lrw r7, 0x200006d4 // 936c + 920a: 58cc addu r6, r0, r3 + 920c: 61cc addu r7, r3 + 920e: 8ea0 ld.h r5, (r6, 0x0) + 9210: 8fe0 ld.h r7, (r7, 0x0) + 9212: 75dd zexth r7, r7 + 9214: 7555 zexth r5, r5 + 9216: 615e subu r5, r7 + 9218: 8ae0 ld.h r7, (r2, 0x0) + 921a: 4fe1 lsri r7, r7, 1 + 921c: 65d5 cmplt r5, r7 + 921e: 0805 bt 0x9228 // 9228 + 9220: 8ea0 ld.h r5, (r6, 0x0) + 9222: 2d01 subi r5, 2 + 9224: 7555 zexth r5, r5 + 9226: aea0 st.h r5, (r6, 0x0) + 9228: 5ccc addu r6, r4, r3 + 922a: 8ea0 ld.h r5, (r6, 0x0) + 922c: 7557 sexth r5, r5 + 922e: 3d20 cmplti r5, 1 + 9230: 080c bt 0x9248 // 9248 + 9232: 8ec0 ld.h r6, (r6, 0x0) + 9234: 8aa0 ld.h r5, (r2, 0x0) + 9236: 759b sexth r6, r6 + 9238: 4da1 lsri r5, r5, 1 + 923a: 6559 cmplt r6, r5 + 923c: 0c06 bf 0x9248 // 9248 + 923e: 58cc addu r6, r0, r3 + 9240: 8ea0 ld.h r5, (r6, 0x0) + 9242: 2500 addi r5, 1 + 9244: 7555 zexth r5, r5 + 9246: aea0 st.h r5, (r6, 0x0) + 9248: 5ccc addu r6, r4, r3 + 924a: 8ea0 ld.h r5, (r6, 0x0) + 924c: 7557 sexth r5, r5 + 924e: 3d20 cmplti r5, 1 + 9250: 0810 bt 0x9270 // 9270 + 9252: 8ee0 ld.h r7, (r6, 0x0) + 9254: 75df sexth r7, r7 + 9256: 8aa0 ld.h r5, (r2, 0x0) + 9258: 655d cmplt r7, r5 + 925a: 0c0b bf 0x9270 // 9270 + 925c: 8ec0 ld.h r6, (r6, 0x0) + 925e: 759b sexth r6, r6 + 9260: 4da1 lsri r5, r5, 1 + 9262: 6559 cmplt r6, r5 + 9264: 0806 bt 0x9270 // 9270 + 9266: 60c0 addu r3, r0 + 9268: 8ba0 ld.h r5, (r3, 0x0) + 926a: 2501 addi r5, 2 + 926c: 7555 zexth r5, r5 + 926e: aba0 st.h r5, (r3, 0x0) + 9270: 2100 addi r1, 1 + 9272: 3951 cmpnei r1, 17 + 9274: 2201 addi r2, 2 + 9276: 0b6d bt 0x9150 // 9150 + 9278: 1260 lrw r3, 0x20000704 // 9378 + 927a: 9360 ld.w r3, (r3, 0x0) + 927c: 3b40 cmpnei r3, 0 + 927e: 08f8 bt 0x946e // 946e + 9280: 117f lrw r3, 0x20000918 // 937c + 9282: 1151 lrw r2, 0x20000292 // 9344 + 9284: 3100 movi r1, 0 + 9286: b860 st.w r3, (r14, 0x0) + 9288: 6d0f mov r4, r3 + 928a: 111e lrw r0, 0x200008ac // 9380 + 928c: 4161 lsli r3, r1, 1 + 928e: 98a0 ld.w r5, (r14, 0x0) + 9290: 614c addu r5, r3 + 9292: 8da0 ld.h r5, (r5, 0x0) + 9294: 7557 sexth r5, r5 + 9296: 3ddf btsti r5, 31 + 9298: 0c1c bf 0x92d0 // 92d0 + 929a: 11db lrw r6, 0x200007ca // 9384 + 929c: 58ac addu r5, r0, r3 + 929e: 618c addu r6, r3 + 92a0: 8da0 ld.h r5, (r5, 0x0) + 92a2: 8ec0 ld.h r6, (r6, 0x0) + 92a4: 7599 zexth r6, r6 + 92a6: 7555 zexth r5, r5 + 92a8: 615a subu r5, r6 + 92aa: 8ac0 ld.h r6, (r2, 0x0) + 92ac: 6595 cmplt r5, r6 + 92ae: 0811 bt 0x92d0 // 92d0 + 92b0: 11b6 lrw r5, 0x20000720 // 9388 + 92b2: 6144 addu r5, r1 + 92b4: 85c0 ld.b r6, (r5, 0x0) + 92b6: 2600 addi r6, 1 + 92b8: 7598 zextb r6, r6 + 92ba: a5c0 st.b r6, (r5, 0x0) + 92bc: 11c6 lrw r6, 0x20000090 // 9354 + 92be: 85e0 ld.b r7, (r5, 0x0) + 92c0: 86ca ld.b r6, (r6, 0xa) + 92c2: 65d8 cmphs r6, r7 + 92c4: 0806 bt 0x92d0 // 92d0 + 92c6: 11c5 lrw r6, 0x200006f8 // 9358 + 92c8: 3701 movi r7, 1 + 92ca: a6e2 st.b r7, (r6, 0x2) + 92cc: 3600 movi r6, 0 + 92ce: a5c0 st.b r6, (r5, 0x0) + 92d0: 5cac addu r5, r4, r3 + 92d2: 8da0 ld.h r5, (r5, 0x0) + 92d4: 7557 sexth r5, r5 + 92d6: 3d20 cmplti r5, 1 + 92d8: 081d bt 0x9312 // 9312 + 92da: 11ab lrw r5, 0x200007ca // 9384 + 92dc: 614c addu r5, r3 + 92de: 58cc addu r6, r0, r3 + 92e0: 8da0 ld.h r5, (r5, 0x0) + 92e2: 8ec0 ld.h r6, (r6, 0x0) + 92e4: 7599 zexth r6, r6 + 92e6: 7555 zexth r5, r5 + 92e8: 615a subu r5, r6 + 92ea: 8ac0 ld.h r6, (r2, 0x0) + 92ec: 46c2 lsli r6, r6, 2 + 92ee: 6595 cmplt r5, r6 + 92f0: 0811 bt 0x9312 // 9312 + 92f2: 11a7 lrw r5, 0x2000060e // 938c + 92f4: 6144 addu r5, r1 + 92f6: 85c0 ld.b r6, (r5, 0x0) + 92f8: 2600 addi r6, 1 + 92fa: 7598 zextb r6, r6 + 92fc: a5c0 st.b r6, (r5, 0x0) + 92fe: 10d6 lrw r6, 0x20000090 // 9354 + 9300: 85e0 ld.b r7, (r5, 0x0) + 9302: 86cb ld.b r6, (r6, 0xb) + 9304: 65d8 cmphs r6, r7 + 9306: 0806 bt 0x9312 // 9312 + 9308: 10d4 lrw r6, 0x200006f8 // 9358 + 930a: 3701 movi r7, 1 + 930c: a6e2 st.b r7, (r6, 0x2) + 930e: 3600 movi r6, 0 + 9310: a5c0 st.b r6, (r5, 0x0) + 9312: 5cac addu r5, r4, r3 + 9314: 8da0 ld.h r5, (r5, 0x0) + 9316: 7557 sexth r5, r5 + 9318: 3ddf btsti r5, 31 + 931a: 0c3f bf 0x9398 // 9398 + 931c: 10fa lrw r7, 0x200007ca // 9384 + 931e: 58cc addu r6, r0, r3 + 9320: 61cc addu r7, r3 + 9322: 8ea0 ld.h r5, (r6, 0x0) + 9324: 8fe0 ld.h r7, (r7, 0x0) + 9326: 75dd zexth r7, r7 + 9328: 7555 zexth r5, r5 + 932a: 615e subu r5, r7 + 932c: 8ae0 ld.h r7, (r2, 0x0) + 932e: 65d5 cmplt r5, r7 + 9330: 0c34 bf 0x9398 // 9398 + 9332: 042f br 0x9390 // 9390 + 9334: 2000078a .long 0x2000078a + 9338: 20000265 .long 0x20000265 + 933c: 2000068c .long 0x2000068c + 9340: 200006ac .long 0x200006ac + 9344: 20000292 .long 0x20000292 + 9348: 200005ec .long 0x200005ec + 934c: 2000093e .long 0x2000093e + 9350: 20000850 .long 0x20000850 + 9354: 20000090 .long 0x20000090 + 9358: 200006f8 .long 0x200006f8 + 935c: 200007b8 .long 0x200007b8 + 9360: 20000620 .long 0x20000620 + 9364: 200007ec .long 0x200007ec + 9368: 20000796 .long 0x20000796 + 936c: 200006d4 .long 0x200006d4 + 9370: 20000830 .long 0x20000830 + 9374: 20000732 .long 0x20000732 + 9378: 20000704 .long 0x20000704 + 937c: 20000918 .long 0x20000918 + 9380: 200008ac .long 0x200008ac + 9384: 200007ca .long 0x200007ca + 9388: 20000720 .long 0x20000720 + 938c: 2000060e .long 0x2000060e + 9390: 8ea0 ld.h r5, (r6, 0x0) + 9392: 2d00 subi r5, 1 + 9394: 7555 zexth r5, r5 + 9396: aea0 st.h r5, (r6, 0x0) + 9398: 5cac addu r5, r4, r3 + 939a: 8da0 ld.h r5, (r5, 0x0) + 939c: 7557 sexth r5, r5 + 939e: 3ddf btsti r5, 31 + 93a0: 0c11 bf 0x93c2 // 93c2 + 93a2: 11ff lrw r7, 0x200007ca // 949c + 93a4: 58cc addu r6, r0, r3 + 93a6: 61cc addu r7, r3 + 93a8: 8ea0 ld.h r5, (r6, 0x0) + 93aa: 8fe0 ld.h r7, (r7, 0x0) + 93ac: 75dd zexth r7, r7 + 93ae: 7555 zexth r5, r5 + 93b0: 615e subu r5, r7 + 93b2: 8ae0 ld.h r7, (r2, 0x0) + 93b4: 4fe1 lsri r7, r7, 1 + 93b6: 65d5 cmplt r5, r7 + 93b8: 0805 bt 0x93c2 // 93c2 + 93ba: 8ea0 ld.h r5, (r6, 0x0) + 93bc: 2d01 subi r5, 2 + 93be: 7555 zexth r5, r5 + 93c0: aea0 st.h r5, (r6, 0x0) + 93c2: 5ccc addu r6, r4, r3 + 93c4: 8ea0 ld.h r5, (r6, 0x0) + 93c6: 7557 sexth r5, r5 + 93c8: 3d20 cmplti r5, 1 + 93ca: 080c bt 0x93e2 // 93e2 + 93cc: 8ec0 ld.h r6, (r6, 0x0) + 93ce: 8aa0 ld.h r5, (r2, 0x0) + 93d0: 759b sexth r6, r6 + 93d2: 4da1 lsri r5, r5, 1 + 93d4: 6559 cmplt r6, r5 + 93d6: 0c06 bf 0x93e2 // 93e2 + 93d8: 58cc addu r6, r0, r3 + 93da: 8ea0 ld.h r5, (r6, 0x0) + 93dc: 2500 addi r5, 1 + 93de: 7555 zexth r5, r5 + 93e0: aea0 st.h r5, (r6, 0x0) + 93e2: 5ccc addu r6, r4, r3 + 93e4: 8ea0 ld.h r5, (r6, 0x0) + 93e6: 7557 sexth r5, r5 + 93e8: 3d20 cmplti r5, 1 + 93ea: 0810 bt 0x940a // 940a + 93ec: 8ee0 ld.h r7, (r6, 0x0) + 93ee: 75df sexth r7, r7 + 93f0: 8aa0 ld.h r5, (r2, 0x0) + 93f2: 655d cmplt r7, r5 + 93f4: 0c0b bf 0x940a // 940a + 93f6: 8ec0 ld.h r6, (r6, 0x0) + 93f8: 759b sexth r6, r6 + 93fa: 4da1 lsri r5, r5, 1 + 93fc: 6559 cmplt r6, r5 + 93fe: 0806 bt 0x940a // 940a + 9400: 60c0 addu r3, r0 + 9402: 8ba0 ld.h r5, (r3, 0x0) + 9404: 2501 addi r5, 2 + 9406: 7555 zexth r5, r5 + 9408: aba0 st.h r5, (r3, 0x0) + 940a: 2100 addi r1, 1 + 940c: 3951 cmpnei r1, 17 + 940e: 2201 addi r2, 2 + 9410: 0b3e bt 0x928c // 928c + 9412: 1401 addi r14, r14, 4 + 9414: 1494 pop r4-r7, r15 + 9416: e3fff6c9 bsr 0x81a8 // 81a8 + 941a: 1162 lrw r3, 0x20000090 // 94a0 + 941c: 836c ld.b r3, (r3, 0xc) + 941e: 64c0 cmphs r0, r3 + 9420: 1141 lrw r2, 0x20000624 // 94a4 + 9422: 0c0e bf 0x943e // 943e + 9424: 8260 ld.b r3, (r2, 0x0) + 9426: 74cc zextb r3, r3 + 9428: 3b01 cmphsi r3, 2 + 942a: 0c05 bf 0x9434 // 9434 + 942c: 107f lrw r3, 0x200006f8 // 94a8 + 942e: 3201 movi r2, 1 + 9430: a340 st.b r2, (r3, 0x0) + 9432: 0685 br 0x913c // 913c + 9434: 8260 ld.b r3, (r2, 0x0) + 9436: 2300 addi r3, 1 + 9438: 74cc zextb r3, r3 + 943a: a260 st.b r3, (r2, 0x0) + 943c: 0680 br 0x913c // 913c + 943e: 3300 movi r3, 0 + 9440: 07fd br 0x943a // 943a + 9442: e3fff6c7 bsr 0x81d0 // 81d0 + 9446: 1077 lrw r3, 0x20000090 // 94a0 + 9448: 836c ld.b r3, (r3, 0xc) + 944a: 64c0 cmphs r0, r3 + 944c: 1056 lrw r2, 0x20000624 // 94a4 + 944e: 0c0e bf 0x946a // 946a + 9450: 8261 ld.b r3, (r2, 0x1) + 9452: 74cc zextb r3, r3 + 9454: 3b01 cmphsi r3, 2 + 9456: 0c05 bf 0x9460 // 9460 + 9458: 1074 lrw r3, 0x200006f8 // 94a8 + 945a: 3201 movi r2, 1 + 945c: a341 st.b r2, (r3, 0x1) + 945e: 070d br 0x9278 // 9278 + 9460: 8261 ld.b r3, (r2, 0x1) + 9462: 2300 addi r3, 1 + 9464: 74cc zextb r3, r3 + 9466: a261 st.b r3, (r2, 0x1) + 9468: 0708 br 0x9278 // 9278 + 946a: 3300 movi r3, 0 + 946c: 07fd br 0x9466 // 9466 + 946e: e3fff6c5 bsr 0x81f8 // 81f8 + 9472: 106c lrw r3, 0x20000090 // 94a0 + 9474: 836c ld.b r3, (r3, 0xc) + 9476: 64c0 cmphs r0, r3 + 9478: 104b lrw r2, 0x20000624 // 94a4 + 947a: 0c0e bf 0x9496 // 9496 + 947c: 8262 ld.b r3, (r2, 0x2) + 947e: 74cc zextb r3, r3 + 9480: 3b01 cmphsi r3, 2 + 9482: 0c05 bf 0x948c // 948c + 9484: 1069 lrw r3, 0x200006f8 // 94a8 + 9486: 3201 movi r2, 1 + 9488: a342 st.b r2, (r3, 0x2) + 948a: 07c4 br 0x9412 // 9412 + 948c: 8262 ld.b r3, (r2, 0x2) + 948e: 2300 addi r3, 1 + 9490: 74cc zextb r3, r3 + 9492: a262 st.b r3, (r2, 0x2) + 9494: 07bf br 0x9412 // 9412 + 9496: 3300 movi r3, 0 + 9498: 07fd br 0x9492 // 9492 + 949a: 0000 bkpt + 949c: 200007ca .long 0x200007ca + 94a0: 20000090 .long 0x20000090 + 94a4: 20000624 .long 0x20000624 + 94a8: 200006f8 .long 0x200006f8 + +Disassembly of section .text.TK_result_prog: + +000094ac : + 94ac: 14d4 push r4-r7, r15 + 94ae: 1424 subi r14, r14, 16 + 94b0: 111f lrw r0, 0x2000068c // 95ac + 94b2: 1220 lrw r1, 0x20000620 // 95b0 + 94b4: 1240 lrw r2, 0x20000704 // 95b4 + 94b6: b821 st.w r1, (r14, 0x4) + 94b8: 9060 ld.w r3, (r0, 0x0) + 94ba: 91a0 ld.w r5, (r1, 0x0) + 94bc: 6cd4 or r3, r5 + 94be: 9280 ld.w r4, (r2, 0x0) + 94c0: 6cd0 or r3, r4 + 94c2: 3b40 cmpnei r3, 0 + 94c4: b800 st.w r0, (r14, 0x0) + 94c6: b842 st.w r2, (r14, 0x8) + 94c8: 119c lrw r4, 0x2000078c // 95b8 + 94ca: 0c67 bf 0x9598 // 9598 + 94cc: 111c lrw r0, 0x20000864 // 95bc + 94ce: 3500 movi r5, 0 + 94d0: 117c lrw r3, 0x2000082c // 95c0 + 94d2: b803 st.w r0, (r14, 0xc) + 94d4: 3201 movi r2, 1 + 94d6: 7094 lsl r2, r5 + 94d8: b040 st.w r2, (r0, 0x0) + 94da: 9840 ld.w r2, (r14, 0x0) + 94dc: 9240 ld.w r2, (r2, 0x0) + 94de: 9020 ld.w r1, (r0, 0x0) + 94e0: 6884 and r2, r1 + 94e2: b340 st.w r2, (r3, 0x0) + 94e4: 9841 ld.w r2, (r14, 0x4) + 94e6: 9240 ld.w r2, (r2, 0x0) + 94e8: 9020 ld.w r1, (r0, 0x0) + 94ea: 6848 and r1, r2 + 94ec: 1156 lrw r2, 0x200008f0 // 95c4 + 94ee: b220 st.w r1, (r2, 0x0) + 94f0: 9822 ld.w r1, (r14, 0x8) + 94f2: 9120 ld.w r1, (r1, 0x0) + 94f4: 90c0 ld.w r6, (r0, 0x0) + 94f6: 6984 and r6, r1 + 94f8: 1134 lrw r1, 0x20000790 // 95c8 + 94fa: b1c0 st.w r6, (r1, 0x0) + 94fc: 93e0 ld.w r7, (r3, 0x0) + 94fe: 92c0 ld.w r6, (r2, 0x0) + 9500: 659e cmpne r7, r6 + 9502: 0807 bt 0x9510 // 9510 + 9504: 92e0 ld.w r7, (r2, 0x0) + 9506: 91c0 ld.w r6, (r1, 0x0) + 9508: 659e cmpne r7, r6 + 950a: 0803 bt 0x9510 // 9510 + 950c: 9340 ld.w r2, (r3, 0x0) + 950e: 040c br 0x9526 // 9526 + 9510: 92c0 ld.w r6, (r2, 0x0) + 9512: 3e40 cmpnei r6, 0 + 9514: 0c29 bf 0x9566 // 9566 + 9516: 91c0 ld.w r6, (r1, 0x0) + 9518: 3e40 cmpnei r6, 0 + 951a: 0c26 bf 0x9566 // 9566 + 951c: 92e0 ld.w r7, (r2, 0x0) + 951e: 91c0 ld.w r6, (r1, 0x0) + 9520: 659e cmpne r7, r6 + 9522: 0822 bt 0x9566 // 9566 + 9524: 9240 ld.w r2, (r2, 0x0) + 9526: 9420 ld.w r1, (r4, 0x0) + 9528: 6c84 or r2, r1 + 952a: 2500 addi r5, 1 + 952c: 3d51 cmpnei r5, 17 + 952e: b440 st.w r2, (r4, 0x0) + 9530: 0bd2 bt 0x94d4 // 94d4 + 9532: 9460 ld.w r3, (r4, 0x0) + 9534: 3b40 cmpnei r3, 0 + 9536: 1146 lrw r2, 0x20000894 // 95cc + 9538: 0c32 bf 0x959c // 959c + 953a: 9420 ld.w r1, (r4, 0x0) + 953c: 9260 ld.w r3, (r2, 0x0) + 953e: 64c6 cmpne r1, r3 + 9540: 0c06 bf 0x954c // 954c + 9542: 9460 ld.w r3, (r4, 0x0) + 9544: b260 st.w r3, (r2, 0x0) + 9546: 3200 movi r2, 0 + 9548: 1162 lrw r3, 0x200006aa // 95d0 + 954a: a340 st.b r2, (r3, 0x0) + 954c: e3fff61a bsr 0x8180 // 8180 + 9550: 1161 lrw r3, 0x2000026c // 95d4 + 9552: 8360 ld.b r3, (r3, 0x0) + 9554: 640c cmphs r3, r0 + 9556: 0806 bt 0x9562 // 9562 + 9558: 3300 movi r3, 0 + 955a: b460 st.w r3, (r4, 0x0) + 955c: 3201 movi r2, 1 + 955e: 107d lrw r3, 0x200006aa // 95d0 + 9560: a340 st.b r2, (r3, 0x0) + 9562: 1404 addi r14, r14, 16 + 9564: 1494 pop r4-r7, r15 + 9566: 93c0 ld.w r6, (r3, 0x0) + 9568: 3e40 cmpnei r6, 0 + 956a: 0c08 bf 0x957a // 957a + 956c: 92c0 ld.w r6, (r2, 0x0) + 956e: 3e40 cmpnei r6, 0 + 9570: 0c05 bf 0x957a // 957a + 9572: 93c0 ld.w r6, (r3, 0x0) + 9574: 9240 ld.w r2, (r2, 0x0) + 9576: 649a cmpne r6, r2 + 9578: 0fca bf 0x950c // 950c + 957a: 9340 ld.w r2, (r3, 0x0) + 957c: 3a40 cmpnei r2, 0 + 957e: 0c08 bf 0x958e // 958e + 9580: 9140 ld.w r2, (r1, 0x0) + 9582: 3a40 cmpnei r2, 0 + 9584: 0c05 bf 0x958e // 958e + 9586: 9340 ld.w r2, (r3, 0x0) + 9588: 9120 ld.w r1, (r1, 0x0) + 958a: 644a cmpne r2, r1 + 958c: 0fc0 bf 0x950c // 950c + 958e: 9843 ld.w r2, (r14, 0xc) + 9590: 9220 ld.w r1, (r2, 0x0) + 9592: 9440 ld.w r2, (r4, 0x0) + 9594: 6885 andn r2, r1 + 9596: 07ca br 0x952a // 952a + 9598: b460 st.w r3, (r4, 0x0) + 959a: 07cc br 0x9532 // 9532 + 959c: b260 st.w r3, (r2, 0x0) + 959e: 3100 movi r1, 0 + 95a0: 104c lrw r2, 0x200006aa // 95d0 + 95a2: a220 st.b r1, (r2, 0x0) + 95a4: 104d lrw r2, 0x20000784 // 95d8 + 95a6: b260 st.w r3, (r2, 0x0) + 95a8: 07dd br 0x9562 // 9562 + 95aa: 0000 bkpt + 95ac: 2000068c .long 0x2000068c + 95b0: 20000620 .long 0x20000620 + 95b4: 20000704 .long 0x20000704 + 95b8: 2000078c .long 0x2000078c + 95bc: 20000864 .long 0x20000864 + 95c0: 2000082c .long 0x2000082c + 95c4: 200008f0 .long 0x200008f0 + 95c8: 20000790 .long 0x20000790 + 95cc: 20000894 .long 0x20000894 + 95d0: 200006aa .long 0x200006aa + 95d4: 2000026c .long 0x2000026c + 95d8: 20000784 .long 0x20000784 + +Disassembly of section .text.get_key_seq: + +000095dc : + 95dc: 14c4 push r4-r7 + 95de: 106c lrw r3, 0x20000268 // 960c + 95e0: 3200 movi r2, 0 + 95e2: 9380 ld.w r4, (r3, 0x0) + 95e4: 3000 movi r0, 0 + 95e6: 3300 movi r3, 0 + 95e8: 3501 movi r5, 1 + 95ea: 10ca lrw r6, 0x20000898 // 9610 + 95ec: 6c53 mov r1, r4 + 95ee: 704d lsr r1, r3 + 95f0: 6854 and r1, r5 + 95f2: 3940 cmpnei r1, 0 + 95f4: 75cc zextb r7, r3 + 95f6: 0c06 bf 0x9602 // 9602 + 95f8: 5e28 addu r1, r6, r2 + 95fa: 2200 addi r2, 1 + 95fc: 2000 addi r0, 1 + 95fe: a1e0 st.b r7, (r1, 0x0) + 9600: 7488 zextb r2, r2 + 9602: 2300 addi r3, 1 + 9604: 3b51 cmpnei r3, 17 + 9606: 0bf3 bt 0x95ec // 95ec + 9608: 7400 zextb r0, r0 + 960a: 1484 pop r4-r7 + 960c: 20000268 .long 0x20000268 + 9610: 20000898 .long 0x20000898 + +Disassembly of section .text.CORET_CONFIG: + +00009614 : + 9614: 14d0 push r15 + 9616: e3ffcb03 bsr 0x2c1c // 2c1c + 961a: 3180 movi r1, 128 + 961c: 4124 lsli r1, r1, 4 + 961e: 3001 movi r0, 1 + 9620: e3ffc2b0 bsr 0x1b80 // 1b80 + 9624: 1068 lrw r3, 0x20000064 // 9644 + 9626: 1049 lrw r2, 0x200002b8 // 9648 + 9628: 9360 ld.w r3, (r3, 0x0) + 962a: 9240 ld.w r2, (r2, 0x0) + 962c: b345 st.w r2, (r3, 0x14) + 962e: e3ffcb27 bsr 0x2c7c // 2c7c + 9632: e3ffcb15 bsr 0x2c5c // 2c5c + 9636: e3ffcb1b bsr 0x2c6c // 2c6c + 963a: e3ffcb09 bsr 0x2c4c // 2c4c + 963e: e3ffcafb bsr 0x2c34 // 2c34 + 9642: 1490 pop r15 + 9644: 20000064 .long 0x20000064 + 9648: 200002b8 .long 0x200002b8 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +0000964c : + 964c: 1066 lrw r3, 0x20000054 // 9664 + 964e: 3100 movi r1, 0 + 9650: 9300 ld.w r0, (r3, 0x0) + 9652: 3300 movi r3, 0 + 9654: 4342 lsli r2, r3, 2 + 9656: 2300 addi r3, 1 + 9658: 6080 addu r2, r0 + 965a: 3b51 cmpnei r3, 17 + 965c: b220 st.w r1, (r2, 0x0) + 965e: b232 st.w r1, (r2, 0x48) + 9660: 0bfa bt 0x9654 // 9654 + 9662: 783c jmp r15 + 9664: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_freq_para_init: + +00009668 : + 9668: 14d1 push r4, r15 + 966a: 107e lrw r3, 0x20000239 // 96e0 + 966c: 8360 ld.b r3, (r3, 0x0) + 966e: 3b40 cmpnei r3, 0 + 9670: 080c bt 0x9688 // 9688 + 9672: 107d lrw r3, 0x20000070 // 96e4 + 9674: 105d lrw r2, 0x20000960 // 96e8 + 9676: 932c ld.w r1, (r3, 0x30) + 9678: b220 st.w r1, (r2, 0x0) + 967a: 932d ld.w r1, (r3, 0x34) + 967c: 105c lrw r2, 0x200006d0 // 96ec + 967e: b220 st.w r1, (r2, 0x0) + 9680: 934e ld.w r2, (r3, 0x38) + 9682: 107c lrw r3, 0x20000700 // 96f0 + 9684: b340 st.w r2, (r3, 0x0) + 9686: 1491 pop r4, r15 + 9688: 3b41 cmpnei r3, 1 + 968a: 0bfe bt 0x9686 // 9686 + 968c: 1076 lrw r3, 0x20000070 // 96e4 + 968e: 1057 lrw r2, 0x20000960 // 96e8 + 9690: 932d ld.w r1, (r3, 0x34) + 9692: b220 st.w r1, (r2, 0x0) + 9694: 932d ld.w r1, (r3, 0x34) + 9696: 1056 lrw r2, 0x200006d0 // 96ec + 9698: b220 st.w r1, (r2, 0x0) + 969a: 934d ld.w r2, (r3, 0x34) + 969c: 3105 movi r1, 5 + 969e: 1075 lrw r3, 0x20000700 // 96f0 + 96a0: b340 st.w r2, (r3, 0x0) + 96a2: 1075 lrw r3, 0x20000058 // 96f4 + 96a4: 9380 ld.w r4, (r3, 0x0) + 96a6: 1075 lrw r3, 0x20000290 // 96f8 + 96a8: 8300 ld.b r0, (r3, 0x0) + 96aa: e3ffd129 bsr 0x38fc // 38fc <__udivsi3> + 96ae: 7400 zextb r0, r0 + 96b0: 1073 lrw r3, 0x2000023a // 96fc + 96b2: b408 st.w r0, (r4, 0x20) + 96b4: 8300 ld.b r0, (r3, 0x0) + 96b6: 3804 cmphsi r0, 5 + 96b8: 1072 lrw r3, 0x20000788 // 9700 + 96ba: 0810 bt 0x96da // 96da + 96bc: e3ffbb20 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 96c0: 090d0703 .long 0x090d0703 + 96c4: 000b .short 0x000b + 96c6: 3296 movi r2, 150 + 96c8: 4242 lsli r2, r2, 2 + 96ca: ab40 st.h r2, (r3, 0x0) + 96cc: 07dd br 0x9686 // 9686 + 96ce: 104e lrw r2, 0x5dc // 9704 + 96d0: 07fd br 0x96ca // 96ca + 96d2: 104e lrw r2, 0x1194 // 9708 + 96d4: 07fb br 0x96ca // 96ca + 96d6: 104e lrw r2, 0x1770 // 970c + 96d8: 07f9 br 0x96ca // 96ca + 96da: 104e lrw r2, 0xbb8 // 9710 + 96dc: 07f7 br 0x96ca // 96ca + 96de: 0000 bkpt + 96e0: 20000239 .long 0x20000239 + 96e4: 20000070 .long 0x20000070 + 96e8: 20000960 .long 0x20000960 + 96ec: 200006d0 .long 0x200006d0 + 96f0: 20000700 .long 0x20000700 + 96f4: 20000058 .long 0x20000058 + 96f8: 20000290 .long 0x20000290 + 96fc: 2000023a .long 0x2000023a + 9700: 20000788 .long 0x20000788 + 9704: 000005dc .long 0x000005dc + 9708: 00001194 .long 0x00001194 + 970c: 00001770 .long 0x00001770 + 9710: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.tk_reserved_init: + +00009714 : + 9714: 1065 lrw r3, 0x2000005c // 9728 + 9716: 1046 lrw r2, 0xa67a6cc7 // 972c + 9718: 9360 ld.w r3, (r3, 0x0) + 971a: b356 st.w r2, (r3, 0x58) + 971c: 1045 lrw r2, 0x21f1f04 // 9730 + 971e: b355 st.w r2, (r3, 0x54) + 9720: 1045 lrw r2, 0x69966996 // 9734 + 9722: 1066 lrw r3, 0x40011180 // 9738 + 9724: b35f st.w r2, (r3, 0x7c) + 9726: 783c jmp r15 + 9728: 2000005c .long 0x2000005c + 972c: a67a6cc7 .long 0xa67a6cc7 + 9730: 021f1f04 .long 0x021f1f04 + 9734: 69966996 .long 0x69966996 + 9738: 40011180 .long 0x40011180 + +Disassembly of section .text.TKEYIntHandler: + +0000973c : + 973c: 1460 nie + 973e: 1462 ipush + 9740: 14d1 push r4, r15 + 9742: 1183 lrw r4, 0x20000070 // 97cc + 9744: 8460 ld.b r3, (r4, 0x0) + 9746: 3b40 cmpnei r3, 0 + 9748: 0815 bt 0x9772 // 9772 + 974a: 3301 movi r3, 1 + 974c: a460 st.b r3, (r4, 0x0) + 974e: 1161 lrw r3, 0x20000698 // 97d0 + 9750: 8360 ld.b r3, (r3, 0x0) + 9752: 3b41 cmpnei r3, 1 + 9754: 080f bt 0x9772 // 9772 + 9756: 1140 lrw r2, 0x200008a9 // 97d4 + 9758: 8260 ld.b r3, (r2, 0x0) + 975a: 2300 addi r3, 1 + 975c: 74cc zextb r3, r3 + 975e: a260 st.b r3, (r2, 0x0) + 9760: 8260 ld.b r3, (r2, 0x0) + 9762: 3b43 cmpnei r3, 3 + 9764: 0803 bt 0x976a // 976a + 9766: 3300 movi r3, 0 + 9768: a260 st.b r3, (r2, 0x0) + 976a: e3fff4a5 bsr 0x80b4 // 80b4 + 976e: 3301 movi r3, 1 + 9770: a461 st.b r3, (r4, 0x1) + 9772: 107a lrw r3, 0x20000058 // 97d8 + 9774: 3101 movi r1, 1 + 9776: 9360 ld.w r3, (r3, 0x0) + 9778: 934a ld.w r2, (r3, 0x28) + 977a: 6884 and r2, r1 + 977c: 3a40 cmpnei r2, 0 + 977e: 0c02 bf 0x9782 // 9782 + 9780: b32c st.w r1, (r3, 0x30) + 9782: 934a ld.w r2, (r3, 0x28) + 9784: 3102 movi r1, 2 + 9786: 6884 and r2, r1 + 9788: 3a40 cmpnei r2, 0 + 978a: 0c02 bf 0x978e // 978e + 978c: b32c st.w r1, (r3, 0x30) + 978e: 934a ld.w r2, (r3, 0x28) + 9790: 3104 movi r1, 4 + 9792: 6884 and r2, r1 + 9794: 3a40 cmpnei r2, 0 + 9796: 0c02 bf 0x979a // 979a + 9798: b32c st.w r1, (r3, 0x30) + 979a: 934a ld.w r2, (r3, 0x28) + 979c: 3108 movi r1, 8 + 979e: 6884 and r2, r1 + 97a0: 3a40 cmpnei r2, 0 + 97a2: 0c02 bf 0x97a6 // 97a6 + 97a4: b32c st.w r1, (r3, 0x30) + 97a6: 934a ld.w r2, (r3, 0x28) + 97a8: 3110 movi r1, 16 + 97aa: 6884 and r2, r1 + 97ac: 3a40 cmpnei r2, 0 + 97ae: 0c02 bf 0x97b2 // 97b2 + 97b0: b32c st.w r1, (r3, 0x30) + 97b2: 934a ld.w r2, (r3, 0x28) + 97b4: 3120 movi r1, 32 + 97b6: 6884 and r2, r1 + 97b8: 3a40 cmpnei r2, 0 + 97ba: 0c02 bf 0x97be // 97be + 97bc: b32c st.w r1, (r3, 0x30) + 97be: d9ee2001 ld.w r15, (r14, 0x4) + 97c2: 9880 ld.w r4, (r14, 0x0) + 97c4: 1402 addi r14, r14, 8 + 97c6: 1463 ipop + 97c8: 1461 nir + 97ca: 0000 bkpt + 97cc: 20000070 .long 0x20000070 + 97d0: 20000698 .long 0x20000698 + 97d4: 200008a9 .long 0x200008a9 + 97d8: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +000097dc : + 97dc: 1460 nie + 97de: 1462 ipush + 97e0: 14d3 push r4-r6, r15 + 97e2: 1269 lrw r3, 0x20000064 // 9904 + 97e4: 3400 movi r4, 0 + 97e6: 9360 ld.w r3, (r3, 0x0) + 97e8: b386 st.w r4, (r3, 0x18) + 97ea: 1268 lrw r3, 0x20000698 // 9908 + 97ec: 8360 ld.b r3, (r3, 0x0) + 97ee: 3b41 cmpnei r3, 1 + 97f0: 0840 bt 0x9870 // 9870 + 97f2: e3fff6f5 bsr 0x85dc // 85dc + 97f6: e3fff727 bsr 0x8644 // 8644 + 97fa: e3fffb5d bsr 0x8eb4 // 8eb4 + 97fe: e3fffbef bsr 0x8fdc // 8fdc + 9802: e3fff3c5 bsr 0x7f8c // 7f8c + 9806: e3fffe53 bsr 0x94ac // 94ac + 980a: 1261 lrw r3, 0x2000078c // 990c + 980c: 9360 ld.w r3, (r3, 0x0) + 980e: 3b40 cmpnei r3, 0 + 9810: 0c12 bf 0x9834 // 9834 + 9812: 1260 lrw r3, 0x2000023c // 9910 + 9814: 9340 ld.w r2, (r3, 0x0) + 9816: 3a40 cmpnei r2, 0 + 9818: 0c0e bf 0x9834 // 9834 + 981a: 117f lrw r3, 0x20000784 // 9914 + 981c: 3064 movi r0, 100 + 981e: 9320 ld.w r1, (r3, 0x0) + 9820: 2100 addi r1, 1 + 9822: b320 st.w r1, (r3, 0x0) + 9824: 9320 ld.w r1, (r3, 0x0) + 9826: 7c80 mult r2, r0 + 9828: 6448 cmphs r2, r1 + 982a: 0805 bt 0x9834 // 9834 + 982c: 115b lrw r2, 0x20000731 // 9918 + 982e: 3101 movi r1, 1 + 9830: a220 st.b r1, (r2, 0x0) + 9832: b380 st.w r4, (r3, 0x0) + 9834: 117a lrw r3, 0x20000235 // 991c + 9836: 8340 ld.b r2, (r3, 0x0) + 9838: 3a41 cmpnei r2, 1 + 983a: 0823 bt 0x9880 // 9880 + 983c: 1139 lrw r1, 0x2000068c // 9920 + 983e: 115a lrw r2, 0x20000620 // 9924 + 9840: 9100 ld.w r0, (r1, 0x0) + 9842: 9260 ld.w r3, (r2, 0x0) + 9844: 64c2 cmpne r0, r3 + 9846: 1179 lrw r3, 0x20000828 // 9928 + 9848: 080a bt 0x985c // 985c + 984a: 9280 ld.w r4, (r2, 0x0) + 984c: 1158 lrw r2, 0x20000704 // 992c + 984e: 9200 ld.w r0, (r2, 0x0) + 9850: 6412 cmpne r4, r0 + 9852: 0805 bt 0x985c // 985c + 9854: 9120 ld.w r1, (r1, 0x0) + 9856: 9240 ld.w r2, (r2, 0x0) + 9858: 6486 cmpne r1, r2 + 985a: 0c09 bf 0x986c // 986c + 985c: 9340 ld.w r2, (r3, 0x0) + 985e: 2200 addi r2, 1 + 9860: b340 st.w r2, (r3, 0x0) + 9862: 1154 lrw r2, 0x20000090 // 9930 + 9864: 823c ld.b r1, (r2, 0x1c) + 9866: 9340 ld.w r2, (r3, 0x0) + 9868: 6484 cmphs r1, r2 + 986a: 0803 bt 0x9870 // 9870 + 986c: 3200 movi r2, 0 + 986e: b340 st.w r2, (r3, 0x0) + 9870: d9ee2003 ld.w r15, (r14, 0xc) + 9874: 98c2 ld.w r6, (r14, 0x8) + 9876: 98a1 ld.w r5, (r14, 0x4) + 9878: 9880 ld.w r4, (r14, 0x0) + 987a: 1404 addi r14, r14, 16 + 987c: 1463 ipop + 987e: 1461 nir + 9880: 83a0 ld.b r5, (r3, 0x0) + 9882: 7554 zextb r5, r5 + 9884: 3d40 cmpnei r5, 0 + 9886: 0bf5 bt 0x9870 // 9870 + 9888: 1166 lrw r3, 0x2000068c // 9920 + 988a: 1147 lrw r2, 0x20000620 // 9924 + 988c: 9300 ld.w r0, (r3, 0x0) + 988e: 9220 ld.w r1, (r2, 0x0) + 9890: 6442 cmpne r0, r1 + 9892: 1127 lrw r1, 0x20000704 // 992c + 9894: 1105 lrw r0, 0x20000828 // 9928 + 9896: 0c33 bf 0x98fc // 98fc + 9898: 92c0 ld.w r6, (r2, 0x0) + 989a: 9180 ld.w r4, (r1, 0x0) + 989c: 651a cmpne r6, r4 + 989e: 0c2f bf 0x98fc // 98fc + 98a0: 93c0 ld.w r6, (r3, 0x0) + 98a2: 9180 ld.w r4, (r1, 0x0) + 98a4: 651a cmpne r6, r4 + 98a6: 0c2b bf 0x98fc // 98fc + 98a8: 9080 ld.w r4, (r0, 0x0) + 98aa: 2400 addi r4, 1 + 98ac: b080 st.w r4, (r0, 0x0) + 98ae: 1181 lrw r4, 0x20000090 // 9930 + 98b0: 84dc ld.b r6, (r4, 0x1c) + 98b2: 9080 ld.w r4, (r0, 0x0) + 98b4: 6518 cmphs r6, r4 + 98b6: 0802 bt 0x98ba // 98ba + 98b8: b0a0 st.w r5, (r0, 0x0) + 98ba: 9380 ld.w r4, (r3, 0x0) + 98bc: 9200 ld.w r0, (r2, 0x0) + 98be: 6412 cmpne r4, r0 + 98c0: 101d lrw r0, 0x20000868 // 9934 + 98c2: 0c04 bf 0x98ca // 98ca + 98c4: 9180 ld.w r4, (r1, 0x0) + 98c6: 3c40 cmpnei r4, 0 + 98c8: 0c0f bf 0x98e6 // 98e6 + 98ca: 93a0 ld.w r5, (r3, 0x0) + 98cc: 9180 ld.w r4, (r1, 0x0) + 98ce: 6516 cmpne r5, r4 + 98d0: 0c04 bf 0x98d8 // 98d8 + 98d2: 9280 ld.w r4, (r2, 0x0) + 98d4: 3c40 cmpnei r4, 0 + 98d6: 0c08 bf 0x98e6 // 98e6 + 98d8: 9120 ld.w r1, (r1, 0x0) + 98da: 9240 ld.w r2, (r2, 0x0) + 98dc: 6486 cmpne r1, r2 + 98de: 0c0c bf 0x98f6 // 98f6 + 98e0: 9360 ld.w r3, (r3, 0x0) + 98e2: 3b40 cmpnei r3, 0 + 98e4: 0809 bt 0x98f6 // 98f6 + 98e6: 9060 ld.w r3, (r0, 0x0) + 98e8: 2300 addi r3, 1 + 98ea: b060 st.w r3, (r0, 0x0) + 98ec: 1071 lrw r3, 0x20000090 // 9930 + 98ee: 835c ld.b r2, (r3, 0x1c) + 98f0: 9060 ld.w r3, (r0, 0x0) + 98f2: 64c8 cmphs r2, r3 + 98f4: 0bbe bt 0x9870 // 9870 + 98f6: 3300 movi r3, 0 + 98f8: b060 st.w r3, (r0, 0x0) + 98fa: 07bb br 0x9870 // 9870 + 98fc: 3400 movi r4, 0 + 98fe: b080 st.w r4, (r0, 0x0) + 9900: 07dd br 0x98ba // 98ba + 9902: 0000 bkpt + 9904: 20000064 .long 0x20000064 + 9908: 20000698 .long 0x20000698 + 990c: 2000078c .long 0x2000078c + 9910: 2000023c .long 0x2000023c + 9914: 20000784 .long 0x20000784 + 9918: 20000731 .long 0x20000731 + 991c: 20000235 .long 0x20000235 + 9920: 2000068c .long 0x2000068c + 9924: 20000620 .long 0x20000620 + 9928: 20000828 .long 0x20000828 + 992c: 20000704 .long 0x20000704 + 9930: 20000090 .long 0x20000090 + 9934: 20000868 .long 0x20000868 + +Disassembly of section .text.tk_init: + +00009938 : + 9938: 14d4 push r4-r7, r15 + 993a: 142c subi r14, r14, 48 + 993c: e3fffeec bsr 0x9714 // 9714 + 9940: e3ffc8ce bsr 0x2adc // 2adc + 9944: e3fffe92 bsr 0x9668 // 9668 + 9948: e3fff288 bsr 0x7e58 // 7e58 + 994c: 3200 movi r2, 0 + 994e: 3100 movi r1, 0 + 9950: 3001 movi r0, 1 + 9952: e3fff211 bsr 0x7d74 // 7d74 + 9956: e3fffe7b bsr 0x964c // 964c + 995a: e3fffe41 bsr 0x95dc // 95dc + 995e: 1191 lrw r4, 0x20000848 // 9a20 + 9960: 3101 movi r1, 1 + 9962: a400 st.b r0, (r4, 0x0) + 9964: 8440 ld.b r2, (r4, 0x0) + 9966: 1170 lrw r3, 0x200002b4 // 9a24 + 9968: 8b60 ld.h r3, (r3, 0x0) + 996a: b829 st.w r1, (r14, 0x24) + 996c: 3180 movi r1, 128 + 996e: 412d lsli r1, r1, 13 + 9970: b828 st.w r1, (r14, 0x20) + 9972: 3180 movi r1, 128 + 9974: 4129 lsli r1, r1, 9 + 9976: b827 st.w r1, (r14, 0x1c) + 9978: 3100 movi r1, 0 + 997a: b826 st.w r1, (r14, 0x18) + 997c: 2a00 subi r2, 1 + 997e: 110b lrw r0, 0x200002b6 // 9a28 + 9980: 8800 ld.h r0, (r0, 0x0) + 9982: b805 st.w r0, (r14, 0x14) + 9984: 7488 zextb r2, r2 + 9986: 110a lrw r0, 0x200002bc // 9a2c + 9988: 8800 ld.h r0, (r0, 0x0) + 998a: b804 st.w r0, (r14, 0x10) + 998c: 3080 movi r0, 128 + 998e: 4005 lsli r0, r0, 5 + 9990: b803 st.w r0, (r14, 0xc) + 9992: 3080 movi r0, 128 + 9994: 4004 lsli r0, r0, 4 + 9996: b802 st.w r0, (r14, 0x8) + 9998: b821 st.w r1, (r14, 0x4) + 999a: b820 st.w r1, (r14, 0x0) + 999c: 3001 movi r0, 1 + 999e: 3102 movi r1, 2 + 99a0: e3fff1fe bsr 0x7d9c // 7d9c + 99a4: 3002 movi r0, 2 + 99a6: e3fff1df bsr 0x7d64 // 7d64 + 99aa: 3020 movi r0, 32 + 99ac: e3fff1dc bsr 0x7d64 // 7d64 + 99b0: 3380 movi r3, 128 + 99b2: 4372 lsli r3, r3, 18 + 99b4: 105f lrw r2, 0xe000e100 // 9a30 + 99b6: b260 st.w r3, (r2, 0x0) + 99b8: b270 st.w r3, (r2, 0x40) + 99ba: 10ff lrw r7, 0x20000078 // 9a34 + 99bc: 107f lrw r3, 0x20000054 // 9a38 + 99be: 11a0 lrw r5, 0x20000898 // 9a3c + 99c0: 11c0 lrw r6, 0x2000026e // 9a40 + 99c2: 9360 ld.w r3, (r3, 0x0) + 99c4: b86a st.w r3, (r14, 0x28) + 99c6: b88b st.w r4, (r14, 0x2c) + 99c8: 3300 movi r3, 0 + 99ca: 984b ld.w r2, (r14, 0x2c) + 99cc: 8240 ld.b r2, (r2, 0x0) + 99ce: 648c cmphs r3, r2 + 99d0: 0c09 bf 0x99e2 // 99e2 + 99d2: e3fffe21 bsr 0x9614 // 9614 + 99d6: e3fff425 bsr 0x8220 // 8220 + 99da: e3fff56f bsr 0x84b8 // 84b8 + 99de: 140c addi r14, r14, 48 + 99e0: 1494 pop r4-r7, r15 + 99e2: 5d0c addu r0, r5, r3 + 99e4: 8020 ld.b r1, (r0, 0x0) + 99e6: 8040 ld.b r2, (r0, 0x0) + 99e8: 8080 ld.b r4, (r0, 0x0) + 99ea: 8000 ld.b r0, (r0, 0x0) + 99ec: 4001 lsli r0, r0, 1 + 99ee: 6018 addu r0, r6 + 99f0: 4121 lsli r1, r1, 1 + 99f2: 8800 ld.h r0, (r0, 0x0) + 99f4: 605c addu r1, r7 + 99f6: 448f lsli r4, r4, 15 + 99f8: 6d00 or r4, r0 + 99fa: 4241 lsli r2, r2, 1 + 99fc: 8900 ld.h r0, (r1, 0x0) + 99fe: 1032 lrw r1, 0x20000242 // 9a44 + 9a00: 6084 addu r2, r1 + 9a02: 4018 lsli r0, r0, 24 + 9a04: 6c10 or r0, r4 + 9a06: 8a80 ld.h r4, (r2, 0x0) + 9a08: 3212 movi r2, 18 + 9a0a: 608c addu r2, r3 + 9a0c: 4494 lsli r4, r4, 20 + 9a0e: 4242 lsli r2, r2, 2 + 9a10: 982a ld.w r1, (r14, 0x28) + 9a12: 6c10 or r0, r4 + 9a14: 6084 addu r2, r1 + 9a16: 2300 addi r3, 1 + 9a18: b200 st.w r0, (r2, 0x0) + 9a1a: 74cc zextb r3, r3 + 9a1c: 07d7 br 0x99ca // 99ca + 9a1e: 0000 bkpt + 9a20: 20000848 .long 0x20000848 + 9a24: 200002b4 .long 0x200002b4 + 9a28: 200002b6 .long 0x200002b6 + 9a2c: 200002bc .long 0x200002bc + 9a30: e000e100 .long 0xe000e100 + 9a34: 20000078 .long 0x20000078 + 9a38: 20000054 .long 0x20000054 + 9a3c: 20000898 .long 0x20000898 + 9a40: 2000026e .long 0x2000026e + 9a44: 20000242 .long 0x20000242 + +Disassembly of section .text.std_clk_calib: + +00009a48 : + 9a48: 14d4 push r4-r7, r15 + 9a4a: 142d subi r14, r14, 52 + 9a4c: 3201 movi r2, 1 + 9a4e: 03ce lrw r6, 0x2000005c // 9c90 + 9a50: 6cc3 mov r3, r0 + 9a52: dc4e000a st.b r2, (r14, 0xa) + 9a56: 9640 ld.w r2, (r6, 0x0) + 9a58: 9247 ld.w r2, (r2, 0x1c) + 9a5a: 7488 zextb r2, r2 + 9a5c: dc4e0009 st.b r2, (r14, 0x9) + 9a60: d84e0009 ld.b r2, (r14, 0x9) + 9a64: 3a40 cmpnei r2, 0 + 9a66: 0c08 bf 0x9a76 // 9a76 + 9a68: d84e0009 ld.b r2, (r14, 0x9) + 9a6c: 3a42 cmpnei r2, 2 + 9a6e: 0c04 bf 0x9a76 // 9a76 + 9a70: 3000 movi r0, 0 + 9a72: 140d addi r14, r14, 52 + 9a74: 1494 pop r4-r7, r15 + 9a76: 0397 lrw r4, 0x2000000c // 9c94 + 9a78: 3209 movi r2, 9 + 9a7a: 9400 ld.w r0, (r4, 0x0) + 9a7c: 3b40 cmpnei r3, 0 + 9a7e: b041 st.w r2, (r0, 0x4) + 9a80: 0857 bt 0x9b2e // 9b2e + 9a82: 3307 movi r3, 7 + 9a84: dc6e000b st.b r3, (r14, 0xb) + 9a88: 037b lrw r3, 0x2dc6c00 // 9c98 + 9a8a: b863 st.w r3, (r14, 0xc) + 9a8c: 3380 movi r3, 128 + 9a8e: 4362 lsli r3, r3, 2 + 9a90: b867 st.w r3, (r14, 0x1c) + 9a92: d86e000b ld.b r3, (r14, 0xb) + 9a96: 74cc zextb r3, r3 + 9a98: b062 st.w r3, (r0, 0x8) + 9a9a: 037e lrw r3, 0xffff // 9c9c + 9a9c: b063 st.w r3, (r0, 0xc) + 9a9e: 3201 movi r2, 1 + 9aa0: 3101 movi r1, 1 + 9aa2: 03bf lrw r5, 0x20000014 // 9ca0 + 9aa4: e3ffc3e6 bsr 0x2270 // 2270 + 9aa8: 95e0 ld.w r7, (r5, 0x0) + 9aaa: 137f lrw r3, 0xbe9c0005 // 9ca4 + 9aac: b760 st.w r3, (r7, 0x0) + 9aae: 135f lrw r2, 0x30010 // 9ca8 + 9ab0: 3300 movi r3, 0 + 9ab2: b762 st.w r3, (r7, 0x8) + 9ab4: b743 st.w r2, (r7, 0xc) + 9ab6: 32d8 movi r2, 216 + 9ab8: b745 st.w r2, (r7, 0x14) + 9aba: 974f ld.w r2, (r7, 0x3c) + 9abc: 3aa2 bseti r2, 2 + 9abe: b74f st.w r2, (r7, 0x3c) + 9ac0: 9803 ld.w r0, (r14, 0xc) + 9ac2: d82e000b ld.b r1, (r14, 0xb) + 9ac6: 327d movi r2, 125 + 9ac8: 2100 addi r1, 1 + 9aca: 7c48 mult r1, r2 + 9acc: b861 st.w r3, (r14, 0x4) + 9ace: e3ffcf17 bsr 0x38fc // 38fc <__udivsi3> + 9ad2: b804 st.w r0, (r14, 0x10) + 9ad4: 32fa movi r2, 250 + 9ad6: 9824 ld.w r1, (r14, 0x10) + 9ad8: 4242 lsli r2, r2, 2 + 9ada: 6448 cmphs r2, r1 + 9adc: 0bca bt 0x9a70 // 9a70 + 9ade: 9844 ld.w r2, (r14, 0x10) + 9ae0: 3178 movi r1, 120 + 9ae2: 9804 ld.w r0, (r14, 0x10) + 9ae4: b840 st.w r2, (r14, 0x0) + 9ae6: e3ffcf0b bsr 0x38fc // 38fc <__udivsi3> + 9aea: 9840 ld.w r2, (r14, 0x0) + 9aec: 6082 subu r2, r0 + 9aee: b845 st.w r2, (r14, 0x14) + 9af0: 9804 ld.w r0, (r14, 0x10) + 9af2: 3178 movi r1, 120 + 9af4: 9844 ld.w r2, (r14, 0x10) + 9af6: b840 st.w r2, (r14, 0x0) + 9af8: e3ffcf02 bsr 0x38fc // 38fc <__udivsi3> + 9afc: 9840 ld.w r2, (r14, 0x0) + 9afe: 6008 addu r0, r2 + 9b00: b806 st.w r0, (r14, 0x18) + 9b02: c0807020 psrclr ie + 9b06: 9640 ld.w r2, (r6, 0x0) + 9b08: 9254 ld.w r2, (r2, 0x50) + 9b0a: b848 st.w r2, (r14, 0x20) + 9b0c: 9861 ld.w r3, (r14, 0x4) + 9b0e: 9440 ld.w r2, (r4, 0x0) + 9b10: b260 st.w r3, (r2, 0x0) + 9b12: b761 st.w r3, (r7, 0x4) + 9b14: d86e000a ld.b r3, (r14, 0xa) + 9b18: 3b40 cmpnei r3, 0 + 9b1a: 083e bt 0x9b96 // 9b96 + 9b1c: e3ffc35c bsr 0x21d4 // 21d4 + 9b20: 9400 ld.w r0, (r4, 0x0) + 9b22: e3ffc37d bsr 0x221c // 221c + 9b26: c1807420 psrset ee, ie + 9b2a: 3001 movi r0, 1 + 9b2c: 07a3 br 0x9a72 // 9a72 + 9b2e: 3b41 cmpnei r3, 1 + 9b30: 0806 bt 0x9b3c // 9b3c + 9b32: 3303 movi r3, 3 + 9b34: dc6e000b st.b r3, (r14, 0xb) + 9b38: 127d lrw r3, 0x16e3600 // 9cac + 9b3a: 07a8 br 0x9a8a // 9a8a + 9b3c: 3b42 cmpnei r3, 2 + 9b3e: 0806 bt 0x9b4a // 9b4a + 9b40: 3301 movi r3, 1 + 9b42: dc6e000b st.b r3, (r14, 0xb) + 9b46: 127b lrw r3, 0xb71b00 // 9cb0 + 9b48: 07a1 br 0x9a8a // 9a8a + 9b4a: 3b43 cmpnei r3, 3 + 9b4c: 0806 bt 0x9b58 // 9b58 + 9b4e: 3300 movi r3, 0 + 9b50: dc6e000b st.b r3, (r14, 0xb) + 9b54: 1278 lrw r3, 0x5b8d80 // 9cb4 + 9b56: 079a br 0x9a8a // 9a8a + 9b58: 3b44 cmpnei r3, 4 + 9b5a: 0809 bt 0x9b6c // 9b6c + 9b5c: 3300 movi r3, 0 + 9b5e: dc6e000b st.b r3, (r14, 0xb) + 9b62: 1276 lrw r3, 0x54c720 // 9cb8 + 9b64: b863 st.w r3, (r14, 0xc) + 9b66: 3380 movi r3, 128 + 9b68: 4369 lsli r3, r3, 9 + 9b6a: 0793 br 0x9a90 // 9a90 + 9b6c: 3b45 cmpnei r3, 5 + 9b6e: 0806 bt 0x9b7a // 9b7a + 9b70: 3300 movi r3, 0 + 9b72: dc6e000b st.b r3, (r14, 0xb) + 9b76: 1272 lrw r3, 0x3ffed0 // 9cbc + 9b78: 07f6 br 0x9b64 // 9b64 + 9b7a: 3b46 cmpnei r3, 6 + 9b7c: 0806 bt 0x9b88 // 9b88 + 9b7e: 3300 movi r3, 0 + 9b80: dc6e000b st.b r3, (r14, 0xb) + 9b84: 126f lrw r3, 0x1fff68 // 9cc0 + 9b86: 07ef br 0x9b64 // 9b64 + 9b88: 3b47 cmpnei r3, 7 + 9b8a: 0b84 bt 0x9a92 // 9a92 + 9b8c: 3300 movi r3, 0 + 9b8e: dc6e000b st.b r3, (r14, 0xb) + 9b92: 126d lrw r3, 0x1ffb8 // 9cc4 + 9b94: 07e8 br 0x9b64 // 9b64 + 9b96: 9560 ld.w r3, (r5, 0x0) + 9b98: 3101 movi r1, 1 + 9b9a: 9440 ld.w r2, (r4, 0x0) + 9b9c: b321 st.w r1, (r3, 0x4) + 9b9e: b220 st.w r1, (r2, 0x0) + 9ba0: 3100 movi r1, 0 + 9ba2: b327 st.w r1, (r3, 0x1c) + 9ba4: 3004 movi r0, 4 + 9ba6: b225 st.w r1, (r2, 0x14) + 9ba8: 932e ld.w r1, (r3, 0x38) + 9baa: 6840 and r1, r0 + 9bac: 3940 cmpnei r1, 0 + 9bae: 0ffd bf 0x9ba8 // 9ba8 + 9bb0: 9225 ld.w r1, (r2, 0x14) + 9bb2: b82a st.w r1, (r14, 0x28) + 9bb4: 3100 movi r1, 0 + 9bb6: b310 st.w r0, (r3, 0x40) + 9bb8: b327 st.w r1, (r3, 0x1c) + 9bba: 3004 movi r0, 4 + 9bbc: b225 st.w r1, (r2, 0x14) + 9bbe: 932e ld.w r1, (r3, 0x38) + 9bc0: 6840 and r1, r0 + 9bc2: 3940 cmpnei r1, 0 + 9bc4: 0ffd bf 0x9bbe // 9bbe + 9bc6: 9225 ld.w r1, (r2, 0x14) + 9bc8: b82b st.w r1, (r14, 0x2c) + 9bca: 3100 movi r1, 0 + 9bcc: b310 st.w r0, (r3, 0x40) + 9bce: b327 st.w r1, (r3, 0x1c) + 9bd0: 3004 movi r0, 4 + 9bd2: b225 st.w r1, (r2, 0x14) + 9bd4: 932e ld.w r1, (r3, 0x38) + 9bd6: 6840 and r1, r0 + 9bd8: 3940 cmpnei r1, 0 + 9bda: 0ffd bf 0x9bd4 // 9bd4 + 9bdc: 9225 ld.w r1, (r2, 0x14) + 9bde: b82c st.w r1, (r14, 0x30) + 9be0: b310 st.w r0, (r3, 0x40) + 9be2: 982b ld.w r1, (r14, 0x2c) + 9be4: 980c ld.w r0, (r14, 0x30) + 9be6: 6040 addu r1, r0 + 9be8: b829 st.w r1, (r14, 0x24) + 9bea: 9829 ld.w r1, (r14, 0x24) + 9bec: 4921 lsri r1, r1, 1 + 9bee: b829 st.w r1, (r14, 0x24) + 9bf0: 3100 movi r1, 0 + 9bf2: b321 st.w r1, (r3, 0x4) + 9bf4: b220 st.w r1, (r2, 0x0) + 9bf6: b327 st.w r1, (r3, 0x1c) + 9bf8: b225 st.w r1, (r2, 0x14) + 9bfa: d86e0009 ld.b r3, (r14, 0x9) + 9bfe: 3b42 cmpnei r3, 2 + 9c00: 9849 ld.w r2, (r14, 0x24) + 9c02: 082c bt 0x9c5a // 9c5a + 9c04: 1171 lrw r3, 0x7ff // 9cc8 + 9c06: 648c cmphs r3, r2 + 9c08: 0c03 bf 0x9c0e // 9c0e + 9c0a: 3300 movi r3, 0 + 9c0c: 040f br 0x9c2a // 9c2a + 9c0e: 9849 ld.w r2, (r14, 0x24) + 9c10: 9866 ld.w r3, (r14, 0x18) + 9c12: 648c cmphs r3, r2 + 9c14: 080e bt 0x9c30 // 9c30 + 9c16: 9868 ld.w r3, (r14, 0x20) + 9c18: 9847 ld.w r2, (r14, 0x1c) + 9c1a: 60ca subu r3, r2 + 9c1c: b868 st.w r3, (r14, 0x20) + 9c1e: 32fe movi r2, 254 + 9c20: 9868 ld.w r3, (r14, 0x20) + 9c22: 4248 lsli r2, r2, 8 + 9c24: 68c8 and r3, r2 + 9c26: 3b40 cmpnei r3, 0 + 9c28: 0812 bt 0x9c4c // 9c4c + 9c2a: dc6e000a st.b r3, (r14, 0xa) + 9c2e: 0721 br 0x9a70 // 9a70 + 9c30: 9849 ld.w r2, (r14, 0x24) + 9c32: 9865 ld.w r3, (r14, 0x14) + 9c34: 64c8 cmphs r2, r3 + 9c36: 0829 bt 0x9c88 // 9c88 + 9c38: 9868 ld.w r3, (r14, 0x20) + 9c3a: 9847 ld.w r2, (r14, 0x1c) + 9c3c: 60c8 addu r3, r2 + 9c3e: b868 st.w r3, (r14, 0x20) + 9c40: 33fe movi r3, 254 + 9c42: 9848 ld.w r2, (r14, 0x20) + 9c44: 4368 lsli r3, r3, 8 + 9c46: 688c and r2, r3 + 9c48: 64ca cmpne r2, r3 + 9c4a: 0fe0 bf 0x9c0a // 9c0a + 9c4c: 9660 ld.w r3, (r6, 0x0) + 9c4e: 9848 ld.w r2, (r14, 0x20) + 9c50: b354 st.w r2, (r3, 0x50) + 9c52: 3001 movi r0, 1 + 9c54: e3ffc846 bsr 0x2ce0 // 2ce0 + 9c58: 075e br 0x9b14 // 9b14 + 9c5a: 9866 ld.w r3, (r14, 0x18) + 9c5c: 648c cmphs r3, r2 + 9c5e: 0809 bt 0x9c70 // 9c70 + 9c60: 9868 ld.w r3, (r14, 0x20) + 9c62: 9847 ld.w r2, (r14, 0x1c) + 9c64: 60ca subu r3, r2 + 9c66: b868 st.w r3, (r14, 0x20) + 9c68: 32ff movi r2, 255 + 9c6a: 9868 ld.w r3, (r14, 0x20) + 9c6c: 4250 lsli r2, r2, 16 + 9c6e: 07db br 0x9c24 // 9c24 + 9c70: 9849 ld.w r2, (r14, 0x24) + 9c72: 9865 ld.w r3, (r14, 0x14) + 9c74: 64c8 cmphs r2, r3 + 9c76: 0809 bt 0x9c88 // 9c88 + 9c78: 9868 ld.w r3, (r14, 0x20) + 9c7a: 9847 ld.w r2, (r14, 0x1c) + 9c7c: 60c8 addu r3, r2 + 9c7e: b868 st.w r3, (r14, 0x20) + 9c80: 33ff movi r3, 255 + 9c82: 9848 ld.w r2, (r14, 0x20) + 9c84: 4370 lsli r3, r3, 16 + 9c86: 07e0 br 0x9c46 // 9c46 + 9c88: 3300 movi r3, 0 + 9c8a: dc6e000a st.b r3, (r14, 0xa) + 9c8e: 07e2 br 0x9c52 // 9c52 + 9c90: 2000005c .long 0x2000005c + 9c94: 2000000c .long 0x2000000c + 9c98: 02dc6c00 .long 0x02dc6c00 + 9c9c: 0000ffff .long 0x0000ffff + 9ca0: 20000014 .long 0x20000014 + 9ca4: be9c0005 .long 0xbe9c0005 + 9ca8: 00030010 .long 0x00030010 + 9cac: 016e3600 .long 0x016e3600 + 9cb0: 00b71b00 .long 0x00b71b00 + 9cb4: 005b8d80 .long 0x005b8d80 + 9cb8: 0054c720 .long 0x0054c720 + 9cbc: 003ffed0 .long 0x003ffed0 + 9cc0: 001fff68 .long 0x001fff68 + 9cc4: 0001ffb8 .long 0x0001ffb8 + 9cc8: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V02_20250321.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V02_20250321.map new file mode 100644 index 0000000..f2b7cf0 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V02_20250321.map @@ -0,0 +1,3302 @@ +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: 543360 (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: 280 + Section header string table index: 277 + +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 001a88 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001a88 002a88 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001ac0 002ac0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001b34 002b34 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001b80 002b80 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001bb0 002bb0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c38 002c38 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c60 002c60 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001c9c 002c9c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001cb0 002cb0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001cc8 002cc8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001ce8 002ce8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001d04 002d04 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001d20 002d20 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00001d60 002d60 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00001d94 002d94 000004 00 AX 0 0 2 + [17] .text.EXI3_Int_En PROGBITS 00001d98 002d98 000010 00 AX 0 0 4 + [18] .text.EXI4_Int_En PROGBITS 00001da8 002da8 000010 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00001db8 002db8 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Int_ PROGBITS 00001dc4 002dc4 00000c 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 00001dd0 002dd0 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 00001df4 002df4 000030 00 AX 0 0 4 + [23] .text.GPIO_Init PROGBITS 00001e24 002e24 0000e0 00 AX 0 0 4 + [24] .text.GPIO_PullHi PROGBITS 00001f04 002f04 000014 00 AX 0 0 2 + [25] .text.GPIO_DriveS PROGBITS 00001f18 002f18 00000e 00 AX 0 0 2 + [26] .text.GPIO_IntGro PROGBITS 00001f28 002f28 00010c 00 AX 0 0 4 + [27] .text.GPIOA0_EXI_ PROGBITS 00002034 003034 0000fc 00 AX 0 0 4 + [28] .text.GPIOB0_EXI_ PROGBITS 00002130 003130 00006c 00 AX 0 0 4 + [29] .text.GPIO_Write_ PROGBITS 0000219c 00319c 000008 00 AX 0 0 2 + [30] .text.GPIO_Write_ PROGBITS 000021a4 0031a4 000008 00 AX 0 0 2 + [31] .text.GPIO_Revers PROGBITS 000021ac 0031ac 000016 00 AX 0 0 2 + [32] .text.GPIO_Read_S PROGBITS 000021c2 0031c2 000010 00 AX 0 0 2 + [33] .text.LPT_Soft_Re PROGBITS 000021d4 0031d4 000014 00 AX 0 0 4 + [34] .text.WWDT_CNT_Lo PROGBITS 000021e8 0031e8 000010 00 AX 0 0 4 + [35] .text.BT_DeInit PROGBITS 000021f8 0031f8 00001c 00 AX 0 0 2 + [36] .text.BT_Start PROGBITS 00002214 003214 000008 00 AX 0 0 2 + [37] .text.BT_Soft_Res PROGBITS 0000221c 00321c 00000a 00 AX 0 0 2 + [38] .text.BT_Configur PROGBITS 00002226 003226 000018 00 AX 0 0 2 + [39] .text.BT_ControlS PROGBITS 0000223e 00323e 00002c 00 AX 0 0 2 + [40] .text.BT_Period_C PROGBITS 0000226a 00326a 000006 00 AX 0 0 2 + [41] .text.BT_ConfigIn PROGBITS 00002270 003270 000012 00 AX 0 0 2 + [42] .text.BT1_INT_ENA PROGBITS 00002284 003284 000010 00 AX 0 0 4 + [43] .text.SIO_DeInit PROGBITS 00002294 003294 000020 00 AX 0 0 4 + [44] .text.SIO_IO_Init PROGBITS 000022b4 0032b4 000060 00 AX 0 0 4 + [45] .text.SIO_TX_Init PROGBITS 00002314 003314 000010 00 AX 0 0 4 + [46] .text.SIO_TX_Conf PROGBITS 00002324 003324 000050 00 AX 0 0 4 + [47] .text.UART0_DeIni PROGBITS 00002374 003374 000018 00 AX 0 0 4 + [48] .text.UART1_DeIni PROGBITS 0000238c 00338c 000018 00 AX 0 0 4 + [49] .text.UART2_DeIni PROGBITS 000023a4 0033a4 000018 00 AX 0 0 4 + [50] .text.UART0_Int_E PROGBITS 000023bc 0033bc 00001c 00 AX 0 0 4 + [51] .text.UART2_Int_E PROGBITS 000023d8 0033d8 00001c 00 AX 0 0 4 + [52] .text.UART_IO_Ini PROGBITS 000023f4 0033f4 0000ec 00 AX 0 0 4 + [53] .text.UARTInit PROGBITS 000024e0 0034e0 000010 00 AX 0 0 4 + [54] .text.UARTInitRxT PROGBITS 000024f0 0034f0 000010 00 AX 0 0 4 + [55] .text.UARTTransmi PROGBITS 00002500 003500 00001e 00 AX 0 0 2 + [56] .text.EPT_Stop PROGBITS 00002520 003520 000028 00 AX 0 0 4 + [57] .text.ADC12_RESET PROGBITS 00002548 003548 000064 00 AX 0 0 4 + [58] .text.ADC12_Contr PROGBITS 000025ac 0035ac 000010 00 AX 0 0 4 + [59] .text.ADC12_CMD.p PROGBITS 000025bc 0035bc 000020 00 AX 0 0 4 + [60] .text.ADC12_CLK_C PROGBITS 000025dc 0035dc 00002c 00 AX 0 0 4 + [61] .text.ADC12_Softw PROGBITS 00002608 003608 00000a 00 AX 0 0 2 + [62] .text.ADC12_CMD PROGBITS 00002614 003614 000028 00 AX 0 0 4 + [63] .text.ADC12_ready PROGBITS 0000263c 00363c 000014 00 AX 0 0 4 + [64] .text.ADC12_SEQEN PROGBITS 00002650 003650 000018 00 AX 0 0 4 + [65] .text.ADC12_DATA_ PROGBITS 00002668 003668 000014 00 AX 0 0 4 + [66] .text.ADC12_Confi PROGBITS 0000267c 00367c 00007c 00 AX 0 0 4 + [67] .text.ADC12_Confi PROGBITS 000026f8 0036f8 000198 00 AX 0 0 4 + [68] .text.ADC12_Conve PROGBITS 00002890 003890 000180 00 AX 0 0 4 + [69] .text.Page_Progra PROGBITS 00002a10 003a10 0000a0 00 AX 0 0 4 + [70] .text.ReadDataArr PROGBITS 00002ab0 003ab0 00002a 00 AX 0 0 2 + [71] .text.tk_paramete PROGBITS 00002adc 003adc 000140 00 AX 0 0 4 + [72] .text.CORET_DeIni PROGBITS 00002c1c 003c1c 000018 00 AX 0 0 4 + [73] .text.CORET_Int_E PROGBITS 00002c34 003c34 000018 00 AX 0 0 4 + [74] .text.CORET_start PROGBITS 00002c4c 003c4c 000010 00 AX 0 0 4 + [75] .text.CORET_CLKSO PROGBITS 00002c5c 003c5c 000010 00 AX 0 0 4 + [76] .text.CORET_TICKI PROGBITS 00002c6c 003c6c 000010 00 AX 0 0 4 + [77] .text.CORET_reloa PROGBITS 00002c7c 003c7c 000010 00 AX 0 0 4 + [78] .text.startup.mai PROGBITS 00002c8c 003c8c 000054 00 AX 0 0 4 + [79] .text.delay_nms PROGBITS 00002ce0 003ce0 00002c 00 AX 0 0 2 + [80] .text.delay_nus PROGBITS 00002d0c 003d0c 000022 00 AX 0 0 2 + [81] .text.GPIO_CONFIG PROGBITS 00002d30 003d30 00008c 00 AX 0 0 4 + [82] .text.BT_CONFIG PROGBITS 00002dbc 003dbc 000060 00 AX 0 0 4 + [83] .text.SYSCON_CONF PROGBITS 00002e1c 003e1c 000062 00 AX 0 0 2 + [84] .text.APT32F102_i PROGBITS 00002e80 003e80 000098 00 AX 0 0 4 + [85] .text.SYSCONIntHa PROGBITS 00002f18 003f18 0000f0 00 AX 0 0 4 + [86] .text.IFCIntHandl PROGBITS 00003008 004008 000068 00 AX 0 0 4 + [87] .text.ADCIntHandl PROGBITS 00003070 004070 000068 00 AX 0 0 4 + [88] .text.EPT0IntHand PROGBITS 000030d8 0040d8 0001ac 00 AX 0 0 4 + [89] .text.WWDTHandler PROGBITS 00003284 004284 000034 00 AX 0 0 4 + [90] .text.GPT0IntHand PROGBITS 000032b8 0042b8 000080 00 AX 0 0 4 + [91] .text.RTCIntHandl PROGBITS 00003338 004338 000070 00 AX 0 0 4 + [92] .text.UART0IntHan PROGBITS 000033a8 0043a8 00003c 00 AX 0 0 4 + [93] .text.UART1IntHan PROGBITS 000033e4 0043e4 00003c 00 AX 0 0 4 + [94] .text.UART2IntHan PROGBITS 00003420 004420 000094 00 AX 0 0 4 + [95] .text.SPI0IntHand PROGBITS 000034b4 0044b4 0000e8 00 AX 0 0 4 + [96] .text.SIO0IntHand PROGBITS 0000359c 00459c 000054 00 AX 0 0 4 + [97] .text.EXI0IntHand PROGBITS 000035f0 0045f0 000030 00 AX 0 0 4 + [98] .text.EXI1IntHand PROGBITS 00003620 004620 000030 00 AX 0 0 4 + [99] .text.EXI2to3IntH PROGBITS 00003650 004650 000048 00 AX 0 0 4 + [100] .text.EXI4to9IntH PROGBITS 00003698 004698 00006c 00 AX 0 0 4 + [101] .text.EXI10to15In PROGBITS 00003704 004704 000080 00 AX 0 0 4 + [102] .text.LPTIntHandl PROGBITS 00003784 004784 000034 00 AX 0 0 4 + [103] .text.BT0IntHandl PROGBITS 000037b8 0047b8 00004c 00 AX 0 0 4 + [104] .text.BT1IntHandl PROGBITS 00003804 004804 000070 00 AX 0 0 4 + [105] .text.PriviledgeV PROGBITS 00003874 004874 000002 00 AX 0 0 2 + [106] .text.PendTrapHan PROGBITS 00003876 004876 000008 00 AX 0 0 2 + [107] .text.Trap3Handle PROGBITS 0000387e 00487e 000008 00 AX 0 0 2 + [108] .text.Trap2Handle PROGBITS 00003886 004886 000008 00 AX 0 0 2 + [109] .text.Trap1Handle PROGBITS 0000388e 00488e 000008 00 AX 0 0 2 + [110] .text.Trap0Handle PROGBITS 00003896 004896 000008 00 AX 0 0 2 + [111] .text.UnrecExecpH PROGBITS 0000389e 00489e 000008 00 AX 0 0 2 + [112] .text.BreakPointH PROGBITS 000038a6 0048a6 000008 00 AX 0 0 2 + [113] .text.AccessErrHa PROGBITS 000038ae 0048ae 000008 00 AX 0 0 2 + [114] .text.IllegalInst PROGBITS 000038b6 0048b6 000008 00 AX 0 0 2 + [115] .text.MisalignedH PROGBITS 000038be 0048be 000008 00 AX 0 0 2 + [116] .text.CNTAIntHand PROGBITS 000038c6 0048c6 000008 00 AX 0 0 2 + [117] .text.I2CIntHandl PROGBITS 000038ce 0048ce 000008 00 AX 0 0 2 + [118] .text.__divsi3 PROGBITS 000038d8 0048d8 000024 00 AX 0 0 4 + [119] .text.__udivsi3 PROGBITS 000038fc 0048fc 000024 00 AX 0 0 4 + [120] .text.__modsi3 PROGBITS 00003920 004920 000024 00 AX 0 0 4 + [121] .text.__umodsi3 PROGBITS 00003944 004944 000024 00 AX 0 0 4 + [122] .text.CK_CPU_EnAl PROGBITS 00003968 004968 000006 00 AX 0 0 2 + [123] .text.CK_CPU_DisA PROGBITS 0000396e 00496e 000006 00 AX 0 0 2 + [124] .text.UARTx_Init PROGBITS 00003974 004974 000120 00 AX 0 0 4 + [125] .text.UART2_RecvI PROGBITS 00003a94 004a94 000068 00 AX 0 0 4 + [126] .text.UART2_TASK PROGBITS 00003afc 004afc 0000c0 00 AX 0 0 4 + [127] .text.BUS485_Send PROGBITS 00003bbc 004bbc 0000c4 00 AX 0 0 4 + [128] .text.MultSend_Ta PROGBITS 00003c80 004c80 00006c 00 AX 0 0 4 + [129] .text.Set_GroupSe PROGBITS 00003cec 004cec 00005c 00 AX 0 0 4 + [130] .text.Clear_SendF PROGBITS 00003d48 004d48 000010 00 AX 0 0 4 + [131] .text.BUS485Send_ PROGBITS 00003d58 004d58 00002c 00 AX 0 0 4 + [132] .text.BusIdle_Tas PROGBITS 00003d84 004d84 000040 00 AX 0 0 4 + [133] .text.BusBusy_Tas PROGBITS 00003dc4 004dc4 000058 00 AX 0 0 4 + [134] .text.Dbg_Println PROGBITS 00003e1c 004e1c 00000c 00 AX 0 0 2 + [135] .text.Dbg_Print_B PROGBITS 00003e28 004e28 000002 00 AX 0 0 2 + [136] .text.Touch_Key_I PROGBITS 00003e2c 004e2c 000068 00 AX 0 0 4 + [137] .text.TouchKey_RS PROGBITS 00003e94 004e94 000254 00 AX 0 0 4 + [138] .text.Get_TouchKe PROGBITS 000040e8 0050e8 00003c 00 AX 0 0 4 + [139] .text.Touch_Key_E PROGBITS 00004124 005124 0000ac 00 AX 0 0 4 + [140] .text.TouchKey_Se PROGBITS 000041d0 0051d0 00003c 00 AX 0 0 4 + [141] .text.Touch_Key_T PROGBITS 0000420c 00520c 0000f0 00 AX 0 0 4 + [142] .text.TouchKey_Ch PROGBITS 000042fc 0052fc 000018 00 AX 0 0 2 + [143] .text.TouchKey_Co PROGBITS 00004314 005314 000070 00 AX 0 0 4 + [144] .text.TouchKey_Se PROGBITS 00004384 005384 0000b8 00 AX 0 0 4 + [145] .text.TouchKey_Re PROGBITS 0000443c 00543c 0000f8 00 AX 0 0 4 + [146] .text.TouchKey_Du PROGBITS 00004534 005534 000038 00 AX 0 0 4 + [147] .text.TouchKey_Re PROGBITS 0000456c 00556c 0000b0 00 AX 0 0 4 + [148] .text.TouchKey_Re PROGBITS 0000461c 00561c 00001a 00 AX 0 0 2 + [149] .text.TouchKey_Co PROGBITS 00004638 005638 0000d8 00 AX 0 0 4 + [150] .text.EEPROM_Chec PROGBITS 00004710 005710 000016 00 AX 0 0 2 + [151] .text.EEPROM_Read PROGBITS 00004728 005728 000074 00 AX 0 0 4 + [152] .text.EEPROM_Writ PROGBITS 0000479c 00579c 000044 00 AX 0 0 4 + [153] .text.EEPROM_Vali PROGBITS 000047e0 0057e0 00008c 00 AX 0 0 4 + [154] .text.EEPROM_Defa PROGBITS 0000486c 00586c 000020 00 AX 0 0 2 + [155] .text.EEPROM_Init PROGBITS 0000488c 00588c 000058 00 AX 0 0 4 + [156] .text.EEPROM_Writ PROGBITS 000048e4 0058e4 00006c 00 AX 0 0 4 + [157] .text.EEPROM_Read PROGBITS 00004950 005950 0000ac 00 AX 0 0 4 + [158] .text.EEPROM_Vali PROGBITS 000049fc 0059fc 0000e4 00 AX 0 0 4 + [159] .text.EEPROM_Defa PROGBITS 00004ae0 005ae0 000070 00 AX 0 0 2 + [160] .text.EEPROM_Touc PROGBITS 00004b50 005b50 000080 00 AX 0 0 4 + [161] .text.ADC_Init PROGBITS 00004bd0 005bd0 00005c 00 AX 0 0 4 + [162] .text.Thermistor_ PROGBITS 00004c2c 005c2c 000048 00 AX 0 0 4 + [163] .text.Calculate_A PROGBITS 00004c74 005c74 00008c 00 AX 0 0 4 + [164] .text.Get_Temp_Va PROGBITS 00004d00 005d00 000010 00 AX 0 0 4 + [165] .text.Gather_Temp PROGBITS 00004d10 005d10 0000a8 00 AX 0 0 4 + [166] .text.ADC_Sample_ PROGBITS 00004db8 005db8 0000a8 00 AX 0 0 4 + [167] .text.Contol_Swit PROGBITS 00004e60 005e60 0003ea 00 AX 0 0 4 + [168] .text.Contol_Swit PROGBITS 0000524c 00624c 0003ea 00 AX 0 0 4 + [169] .text.Contol_Swit PROGBITS 00005638 006638 000028 00 AX 0 0 4 + [170] .text.Get_TM1812_ PROGBITS 00005660 006660 000044 00 AX 0 0 4 + [171] .text.TimeCall_SI PROGBITS 000056a4 0066a4 000120 00 AX 0 0 4 + [172] .text.TimeCall_SI PROGBITS 000057c4 0067c4 0000a8 00 AX 0 0 4 + [173] .text.Tm1812_Task PROGBITS 0000586c 00686c 00005c 00 AX 0 0 4 + [174] .text.Tm1812_Ch_I PROGBITS 000058c8 0068c8 000024 00 AX 0 0 4 + [175] .text.TM1812_Cont PROGBITS 000058ec 0068ec 000070 00 AX 0 0 4 + [176] .text.TM1812_Cont PROGBITS 0000595c 00695c 000064 00 AX 0 0 4 + [177] .text.TM1812_LED_ PROGBITS 000059c0 0069c0 000058 00 AX 0 0 4 + [178] .text.HT1621_WR_D PROGBITS 00005a18 006a18 000048 00 AX 0 0 4 + [179] .text.HT1621_WR_C PROGBITS 00005a60 006a60 000030 00 AX 0 0 4 + [180] .text.HT1621_Init PROGBITS 00005a90 006a90 0000b4 00 AX 0 0 4 + [181] .text.HT1621_Clea PROGBITS 00005b44 006b44 000050 00 AX 0 0 4 + [182] .text.HT1621_ALLO PROGBITS 00005b94 006b94 000040 00 AX 0 0 4 + [183] .text.HT1621_Refr PROGBITS 00005bd4 006bd4 00004c 00 AX 0 0 4 + [184] .text.Set_Tempera PROGBITS 00005c20 006c20 0000d0 00 AX 0 0 4 + [185] .text.Local_Tempe PROGBITS 00005cf0 006cf0 0000d0 00 AX 0 0 4 + [186] .text.Control_Mod PROGBITS 00005dc0 006dc0 000244 00 AX 0 0 4 + [187] .text.Control_win PROGBITS 00006004 007004 0000d0 00 AX 0 0 4 + [188] .text.Control_Pro PROGBITS 000060d4 0070d4 0000a4 00 AX 0 0 4 + [189] .text.Controlled_ PROGBITS 00006178 007178 000048 00 AX 0 0 4 + [190] .text.Controlled_ PROGBITS 000061c0 0071c0 0000dc 00 AX 0 0 4 + [191] .text.Controlled_ PROGBITS 0000629c 00729c 000030 00 AX 0 0 4 + [192] .text.Set_Device_ PROGBITS 000062cc 0072cc 00009c 00 AX 0 0 4 + [193] .text.Set_Temp_Di PROGBITS 00006368 007368 000064 00 AX 0 0 4 + [194] .text.HT1621_Refr PROGBITS 000063cc 0073cc 000090 00 AX 0 0 4 + [195] .text.TemCtrl_Ini PROGBITS 0000645c 00745c 00017c 00 AX 0 0 4 + [196] .text.TemCtrl_Mod PROGBITS 000065d8 0075d8 00004c 00 AX 0 0 4 + [197] .text.TemCtrl_Fan PROGBITS 00006624 007624 000050 00 AX 0 0 4 + [198] .text.TemCtrl_Tem PROGBITS 00006674 007674 000030 00 AX 0 0 4 + [199] .text.TemCtrl_Tem PROGBITS 000066a4 0076a4 000030 00 AX 0 0 4 + [200] .text.TemCtrl_OnO PROGBITS 000066d4 0076d4 000034 00 AX 0 0 4 + [201] .text.Tem_Valve_C PROGBITS 00006708 007708 0000cc 00 AX 0 0 4 + [202] .text.TemCtrl_Pro PROGBITS 000067d4 0077d4 000178 00 AX 0 0 4 + [203] .text.KEY1_Model_ PROGBITS 0000694c 00794c 0000e0 00 AX 0 0 4 + [204] .text.KEY2_Fan_Pr PROGBITS 00006a2c 007a2c 0000e0 00 AX 0 0 4 + [205] .text.KEY3_TempAd PROGBITS 00006b0c 007b0c 000110 00 AX 0 0 4 + [206] .text.KEY3_Long_P PROGBITS 00006c1c 007c1c 000078 00 AX 0 0 4 + [207] .text.KEY4_TempDe PROGBITS 00006c94 007c94 000110 00 AX 0 0 4 + [208] .text.KEY4_Long_P PROGBITS 00006da4 007da4 000078 00 AX 0 0 4 + [209] .text.KEY5_OnOff_ PROGBITS 00006e1c 007e1c 000084 00 AX 0 0 4 + [210] .text.TempCtrl_On PROGBITS 00006ea0 007ea0 000054 00 AX 0 0 4 + [211] .text.DisPlay_Ini PROGBITS 00006ef4 007ef4 000020 00 AX 0 0 4 + [212] .text.DisPlay_Tas PROGBITS 00006f14 007f14 0004dc 00 AX 0 0 4 + [213] .text.Debug_Init PROGBITS 000073f0 0083f0 00003c 00 AX 0 0 4 + [214] .text.Dev_SaveDat PROGBITS 0000742c 00842c 000098 00 AX 0 0 4 + [215] .text.Debug_Task PROGBITS 000074c4 0084c4 00007c 00 AX 0 0 4 + [216] .text.BLV_RLY_Ctr PROGBITS 00007540 008540 000028 00 AX 0 0 4 + [217] .text.Relay_Init PROGBITS 00007568 008568 000028 00 AX 0 0 4 + [218] .text.Relay_High PROGBITS 00007590 008590 00001c 00 AX 0 0 2 + [219] .text.Relay_Mid PROGBITS 000075ac 0085ac 00001c 00 AX 0 0 2 + [220] .text.Relay_Low PROGBITS 000075c8 0085c8 00001c 00 AX 0 0 2 + [221] .text.Relay_Stop PROGBITS 000075e4 0085e4 00001c 00 AX 0 0 2 + [222] .text.BLV_RLY_Ctr PROGBITS 00007600 008600 000014 00 AX 0 0 2 + [223] .text.RLY_Direct_ PROGBITS 00007614 008614 0000c8 00 AX 0 0 4 + [224] .text.RLY_Zero_Co PROGBITS 000076dc 0086dc 000098 00 AX 0 0 4 + [225] .text.NetCRC16 PROGBITS 00007774 008774 00004c 00 AX 0 0 4 + [226] .text.GetCRC16 PROGBITS 000077c0 0087c0 00003c 00 AX 0 0 4 + [227] .text.SOR_CRC PROGBITS 000077fc 0087fc 000016 00 AX 0 0 2 + [228] .text.Rs485_ASend PROGBITS 00007814 008814 000100 00 AX 0 0 4 + [229] .text.Rs485AskCyc PROGBITS 00007914 008914 0000fc 00 AX 0 0 4 + [230] .text.Rs485AskCtr PROGBITS 00007a10 008a10 00005c 00 AX 0 0 4 + [231] .text.Rs485AskRea PROGBITS 00007a6c 008a6c 000064 00 AX 0 0 4 + [232] .text.Rs485_DevPo PROGBITS 00007ad0 008ad0 000018 00 AX 0 0 2 + [233] .text.Temp_Rec_An PROGBITS 00007ae8 008ae8 0001b0 00 AX 0 0 4 + [234] .text.Tem_Rs485_R PROGBITS 00007c98 008c98 0000cc 00 AX 0 0 4 + [235] .text.TK_ConfigIn PROGBITS 00007d64 008d64 000010 00 AX 0 0 4 + [236] .text.tk_clk_conf PROGBITS 00007d74 008d74 000028 00 AX 0 0 4 + [237] .text.TK_con0_con PROGBITS 00007d9c 008d9c 0000bc 00 AX 0 0 4 + [238] .text.tk_io_enabl PROGBITS 00007e58 008e58 000134 00 AX 0 0 4 + [239] .text.TK_Single_L PROGBITS 00007f8c 008f8c 000128 00 AX 0 0 4 + [240] .text.TK_Sampling PROGBITS 000080b4 0090b4 0000cc 00 AX 0 0 4 + [241] .text.get_key_num PROGBITS 00008180 009180 000028 00 AX 0 0 4 + [242] .text.get_key_num PROGBITS 000081a8 0091a8 000028 00 AX 0 0 4 + [243] .text.get_key_num PROGBITS 000081d0 0091d0 000028 00 AX 0 0 4 + [244] .text.get_key_num PROGBITS 000081f8 0091f8 000028 00 AX 0 0 4 + [245] .text.TK_Baseline PROGBITS 00008220 009220 000150 00 AX 0 0 4 + [246] .text.TK_Baseline PROGBITS 00008370 009370 000148 00 AX 0 0 4 + [247] .text.tk_poweron_ PROGBITS 000084b8 0094b8 000124 00 AX 0 0 4 + [248] .text.TK_Scan_Sta PROGBITS 000085dc 0095dc 000068 00 AX 0 0 4 + [249] .text.TK_Keymap_p PROGBITS 00008644 009644 000870 00 AX 0 0 4 + [250] .text.TK_overflow PROGBITS 00008eb4 009eb4 000128 00 AX 0 0 4 + [251] .text.TK_Baseline PROGBITS 00008fdc 009fdc 0004d0 00 AX 0 0 4 + [252] .text.TK_result_p PROGBITS 000094ac 00a4ac 000130 00 AX 0 0 4 + [253] .text.get_key_seq PROGBITS 000095dc 00a5dc 000038 00 AX 0 0 4 + [254] .text.CORET_CONFI PROGBITS 00009614 00a614 000038 00 AX 0 0 4 + [255] .text.tk_chxval_s PROGBITS 0000964c 00a64c 00001c 00 AX 0 0 4 + [256] .text.tk_freq_par PROGBITS 00009668 00a668 0000ac 00 AX 0 0 4 + [257] .text.tk_reserved PROGBITS 00009714 00a714 000028 00 AX 0 0 4 + [258] .text.TKEYIntHand PROGBITS 0000973c 00a73c 0000a0 00 AX 0 0 4 + [259] .text.CORETHandle PROGBITS 000097dc 00a7dc 00015c 00 AX 0 0 4 + [260] .text.tk_init PROGBITS 00009938 00a938 000110 00 AX 0 0 4 + [261] .text.std_clk_cal PROGBITS 00009a48 00aa48 000284 00 AX 0 0 4 + [262] .RomCode PROGBITS 00009ccc 00c0b0 000000 00 W 0 0 1 + [263] .rodata PROGBITS 00009ccc 00accc 0008e0 00 A 0 0 4 + [264] .data PROGBITS 20000000 00c000 0000b0 00 WA 0 0 4 + [265] .bss NOBITS 200000b0 00c0b0 0008b4 00 WA 0 0 4 + [266] .csky.attributes CSKY_ATTRIBUTES 00000000 00c0b0 000022 00 0 0 1 + [267] .comment PROGBITS 00000000 00c0d2 000042 01 MS 0 0 1 + [268] .csky_stack_size PROGBITS 00000000 00c120 000b0c 00 0 0 16 + [269] .debug_line PROGBITS 00000000 00cc2c 006b23 00 0 0 1 + [270] .debug_info PROGBITS 00000000 01374f 04f8a1 00 0 0 1 + [271] .debug_abbrev PROGBITS 00000000 062ff0 004677 00 0 0 1 + [272] .debug_aranges PROGBITS 00000000 067668 001180 00 0 0 8 + [273] .debug_ranges PROGBITS 00000000 0687e8 001180 00 0 0 1 + [274] .debug_str PROGBITS 00000000 069968 00a1e4 01 MS 0 0 1 + [275] .debug_frame PROGBITS 00000000 073b4c 002a74 00 0 0 4 + [276] .debug_loc PROGBITS 00000000 0765c0 00436d 00 0 0 1 + [277] .shstrtab STRTAB 00000000 083233 00184d 00 0 0 1 + [278] .symtab SYMTAB 00000000 07a930 0068c0 10 279 1203 4 + [279] .strtab STRTAB 00000000 0811f0 002043 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 0x0a5ac 0x0a5ac R E 0x1000 + LOAD 0x00c000 0x20000000 0x0000a5ac 0x000b0 0x00964 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.EXI3_Int_Enable .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.GPIOB0_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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf_2 .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16 .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.tk_io_enable .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Baseline_prog .text.TK_Baseline_prog2 .text.tk_poweron_data_fineturn .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_freq_para_init .text.tk_reserved_init .text.TKEYIntHandler .text.CORETHandler .text.tk_init .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/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.UART2_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/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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI3_Int_Enable) for EXI3_Int_Enable + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) for GPIOB0_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.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/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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.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.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_touch_key.o(.text.TouchKey_RS485_Printf_2) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + 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.EXI4to9IntHandler) 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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_2) for TouchKey_RS485_Printf_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16) for NetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) for tk_io_enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog) for TK_Baseline_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog2) for TK_Baseline_prog2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) for tk_poweron_data_fineturn + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) for tk_freq_para_init + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) for tk_init + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_f_1_18.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/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_2) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) 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_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2893 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_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.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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_RS485_Printf(Obj/SYSTEM_touch_key.o), (260 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (107 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_f_1_18.o), (0 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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). + +587 unused seciton(s) (total 138078 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_f_1_18.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_uart.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_wwdt.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + _fpadd_parts 0x00000d80 F 724 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00001048 0 .text + $t 0x00001054 0 .text + $d 0x000010bc 0 .text + $t 0x000010bc 0 .text + $d 0x000012e4 0 .text + $d 0x000012f0 0 .text + $t 0x000012f0 0 .text + $d 0x00001440 0 .text + $d 0x00001444 0 .text + $t 0x00001444 0 .text + $d 0x00001480 0 .text + $t 0x00001480 0 .text + $d 0x000014bc 0 .text + $t 0x000014bc 0 .text + $d 0x000014f8 0 .text + $t 0x000014f8 0 .text + $d 0x00001564 0 .text + $d 0x00001568 0 .text + $t 0x00001568 0 .text + $d 0x000015d4 0 .text + $d 0x000015d8 0 .text + $t 0x000015d8 0 .text + $d 0x0000162c 0 .text + $t 0x0000162c 0 .text + $d 0x00001670 0 .text + $t 0x00001670 0 .text + $d 0x000016a4 0 .text + $d 0x000016b0 0 .text + $t 0x000016b0 0 .text + $d 0x00001838 0 .text + $d 0x0000184c 0 .text + $t 0x0000184c 0 .text + $d 0x00001904 0 .text + $d 0x00001910 0 .text + $t 0x00001910 0 .text + $d 0x0000199c 0 .text + $t 0x0000199c 0 .text + $d 0x00001a24 0 .text + $t 0x00001a24 0 .text + $d 0x00001a88 0 .text.__main + $t 0x00001a88 0 .text.__main + $d 0x00001aac 0 .text.__main + SYSCON_General_CMD.part.0 0x00001ac0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001ac0 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001ac0 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b2c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b34 0 .text.SYSCON_RST_VALUE + $t 0x00001b34 0 .text.SYSCON_RST_VALUE + $d 0x00001b64 0 .text.SYSCON_RST_VALUE + $d 0x00001b80 0 .text.SYSCON_General_CMD + $t 0x00001b80 0 .text.SYSCON_General_CMD + $d 0x00001bac 0 .text.SYSCON_General_CMD + $d 0x00001bb0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001bb0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c28 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c38 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c38 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c5c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c60 0 .text.SYSCON_WDT_CMD + $t 0x00001c60 0 .text.SYSCON_WDT_CMD + $d 0x00001c90 0 .text.SYSCON_WDT_CMD + $d 0x00001c9c 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001c9c 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cac 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cb0 0 .text.SYSCON_IWDCNT_Config + $t 0x00001cb0 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cc0 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cc8 0 .text.SYSCON_LVD_Config + $t 0x00001cc8 0 .text.SYSCON_LVD_Config + $d 0x00001ce0 0 .text.SYSCON_LVD_Config + $d 0x00001ce8 0 .text.LVD_Int_Enable + $t 0x00001ce8 0 .text.LVD_Int_Enable + $d 0x00001d00 0 .text.LVD_Int_Enable + $d 0x00001d04 0 .text.IWDT_Int_Enable + $t 0x00001d04 0 .text.IWDT_Int_Enable + $d 0x00001d1c 0 .text.IWDT_Int_Enable + $d 0x00001d20 0 .text.EXTI_trigger_CMD + $t 0x00001d20 0 .text.EXTI_trigger_CMD + $d 0x00001d5c 0 .text.EXTI_trigger_CMD + $d 0x00001d60 0 .text.EXTI_interrupt_CMD + $t 0x00001d60 0 .text.EXTI_interrupt_CMD + $d 0x00001d8c 0 .text.EXTI_interrupt_CMD + $d 0x00001d94 0 .text.GPIO_EXTI_interrupt + $t 0x00001d94 0 .text.GPIO_EXTI_interrupt + $d 0x00001d98 0 .text.EXI3_Int_Enable + $t 0x00001d98 0 .text.EXI3_Int_Enable + $d 0x00001da4 0 .text.EXI3_Int_Enable + $d 0x00001da8 0 .text.EXI4_Int_Enable + $t 0x00001da8 0 .text.EXI4_Int_Enable + $d 0x00001db4 0 .text.EXI4_Int_Enable + $d 0x00001db8 0 .text.SYSCON_Int_Enable + $t 0x00001db8 0 .text.SYSCON_Int_Enable + $d 0x00001dc0 0 .text.SYSCON_Int_Enable + $d 0x00001dc4 0 .text.SYSCON_Int_Disable + $t 0x00001dc4 0 .text.SYSCON_Int_Disable + $d 0x00001dcc 0 .text.SYSCON_Int_Disable + $d 0x00001dd0 0 .text.SYSCON_INT_Priority + $t 0x00001dd0 0 .text.SYSCON_INT_Priority + $d 0x00001de8 0 .text.SYSCON_INT_Priority + $d 0x00001df4 0 .text.Set_INT_Priority + $t 0x00001df4 0 .text.Set_INT_Priority + $d 0x00001e20 0 .text.Set_INT_Priority + $d 0x00001e24 0 .text.GPIO_Init + $t 0x00001e24 0 .text.GPIO_Init + $d 0x00001e36 0 .text.GPIO_Init + $t 0x00001e3e 0 .text.GPIO_Init + $d 0x00001e9a 0 .text.GPIO_Init + $t 0x00001ea2 0 .text.GPIO_Init + $d 0x00001ef0 0 .text.GPIO_Init + $d 0x00001f04 0 .text.GPIO_PullHigh_Init + $t 0x00001f04 0 .text.GPIO_PullHigh_Init + $d 0x00001f18 0 .text.GPIO_DriveStrength_EN + $t 0x00001f18 0 .text.GPIO_DriveStrength_EN + $d 0x00001f28 0 .text.GPIO_IntGroup_Set + $t 0x00001f28 0 .text.GPIO_IntGroup_Set + $d 0x0000201c 0 .text.GPIO_IntGroup_Set + $d 0x00002034 0 .text.GPIOA0_EXI_Init + $t 0x00002034 0 .text.GPIOA0_EXI_Init + $d 0x00002040 0 .text.GPIOA0_EXI_Init + $t 0x00002050 0 .text.GPIOA0_EXI_Init + $d 0x0000212c 0 .text.GPIOA0_EXI_Init + $d 0x00002130 0 .text.GPIOB0_EXI_Init + $t 0x00002130 0 .text.GPIOB0_EXI_Init + $d 0x0000213c 0 .text.GPIOB0_EXI_Init + $t 0x00002142 0 .text.GPIOB0_EXI_Init + $d 0x00002198 0 .text.GPIOB0_EXI_Init + $d 0x0000219c 0 .text.GPIO_Write_High + $t 0x0000219c 0 .text.GPIO_Write_High + $d 0x000021a4 0 .text.GPIO_Write_Low + $t 0x000021a4 0 .text.GPIO_Write_Low + $d 0x000021ac 0 .text.GPIO_Reverse + $t 0x000021ac 0 .text.GPIO_Reverse + $d 0x000021c2 0 .text.GPIO_Read_Status + $t 0x000021c2 0 .text.GPIO_Read_Status + $d 0x000021d4 0 .text.LPT_Soft_Reset + $t 0x000021d4 0 .text.LPT_Soft_Reset + $d 0x000021e4 0 .text.LPT_Soft_Reset + $d 0x000021e8 0 .text.WWDT_CNT_Load + $t 0x000021e8 0 .text.WWDT_CNT_Load + $d 0x000021f4 0 .text.WWDT_CNT_Load + $d 0x000021f8 0 .text.BT_DeInit + $t 0x000021f8 0 .text.BT_DeInit + $d 0x00002214 0 .text.BT_Start + $t 0x00002214 0 .text.BT_Start + $d 0x0000221c 0 .text.BT_Soft_Reset + $t 0x0000221c 0 .text.BT_Soft_Reset + $d 0x00002226 0 .text.BT_Configure + $t 0x00002226 0 .text.BT_Configure + $d 0x0000223e 0 .text.BT_ControlSet_Configure + $t 0x0000223e 0 .text.BT_ControlSet_Configure + $d 0x0000226a 0 .text.BT_Period_CMP_Write + $t 0x0000226a 0 .text.BT_Period_CMP_Write + $d 0x00002270 0 .text.BT_ConfigInterrupt_CMD + $t 0x00002270 0 .text.BT_ConfigInterrupt_CMD + $d 0x00002284 0 .text.BT1_INT_ENABLE + $t 0x00002284 0 .text.BT1_INT_ENABLE + $d 0x00002290 0 .text.BT1_INT_ENABLE + $d 0x00002294 0 .text.SIO_DeInit + $t 0x00002294 0 .text.SIO_DeInit + $d 0x000022b0 0 .text.SIO_DeInit + $d 0x000022b4 0 .text.SIO_IO_Init + $t 0x000022b4 0 .text.SIO_IO_Init + $d 0x0000230c 0 .text.SIO_IO_Init + $d 0x00002314 0 .text.SIO_TX_Init + $t 0x00002314 0 .text.SIO_TX_Init + $d 0x00002320 0 .text.SIO_TX_Init + $d 0x00002324 0 .text.SIO_TX_Configure + $t 0x00002324 0 .text.SIO_TX_Configure + $d 0x00002370 0 .text.SIO_TX_Configure + $d 0x00002374 0 .text.UART0_DeInit + $t 0x00002374 0 .text.UART0_DeInit + $d 0x00002388 0 .text.UART0_DeInit + $d 0x0000238c 0 .text.UART1_DeInit + $t 0x0000238c 0 .text.UART1_DeInit + $d 0x000023a0 0 .text.UART1_DeInit + $d 0x000023a4 0 .text.UART2_DeInit + $t 0x000023a4 0 .text.UART2_DeInit + $d 0x000023b8 0 .text.UART2_DeInit + $d 0x000023bc 0 .text.UART0_Int_Enable + $t 0x000023bc 0 .text.UART0_Int_Enable + $d 0x000023d0 0 .text.UART0_Int_Enable + $d 0x000023d8 0 .text.UART2_Int_Enable + $t 0x000023d8 0 .text.UART2_Int_Enable + $d 0x000023ec 0 .text.UART2_Int_Enable + $d 0x000023f4 0 .text.UART_IO_Init + $t 0x000023f4 0 .text.UART_IO_Init + $d 0x000024d8 0 .text.UART_IO_Init + $d 0x000024e0 0 .text.UARTInit + $t 0x000024e0 0 .text.UARTInit + $d 0x000024ec 0 .text.UARTInit + $d 0x000024f0 0 .text.UARTInitRxTxIntEn + $t 0x000024f0 0 .text.UARTInitRxTxIntEn + $d 0x000024fc 0 .text.UARTInitRxTxIntEn + $d 0x00002500 0 .text.UARTTransmit + $t 0x00002500 0 .text.UARTTransmit + $d 0x00002520 0 .text.EPT_Stop + $t 0x00002520 0 .text.EPT_Stop + $d 0x00002540 0 .text.EPT_Stop + $d 0x00002548 0 .text.ADC12_RESET_VALUE + $t 0x00002548 0 .text.ADC12_RESET_VALUE + $d 0x000025a8 0 .text.ADC12_RESET_VALUE + $d 0x000025ac 0 .text.ADC12_Control + $t 0x000025ac 0 .text.ADC12_Control + $d 0x000025b8 0 .text.ADC12_Control + ADC12_CMD.part.0 0x000025bc F 32 .text.ADC12_CMD.part.0 + $d 0x000025bc 0 .text.ADC12_CMD.part.0 + $t 0x000025bc 0 .text.ADC12_CMD.part.0 + $d 0x000025d8 0 .text.ADC12_CMD.part.0 + $d 0x000025dc 0 .text.ADC12_CLK_CMD + $t 0x000025dc 0 .text.ADC12_CLK_CMD + $d 0x00002604 0 .text.ADC12_CLK_CMD + $d 0x00002608 0 .text.ADC12_Software_Reset + $t 0x00002608 0 .text.ADC12_Software_Reset + $d 0x00002614 0 .text.ADC12_CMD + $t 0x00002614 0 .text.ADC12_CMD + $d 0x00002638 0 .text.ADC12_CMD + $d 0x0000263c 0 .text.ADC12_ready_wait + $t 0x0000263c 0 .text.ADC12_ready_wait + $d 0x0000264c 0 .text.ADC12_ready_wait + $d 0x00002650 0 .text.ADC12_SEQEND_wait + $t 0x00002650 0 .text.ADC12_SEQEND_wait + $d 0x00002664 0 .text.ADC12_SEQEND_wait + $d 0x00002668 0 .text.ADC12_DATA_OUPUT + $t 0x00002668 0 .text.ADC12_DATA_OUPUT + $d 0x00002678 0 .text.ADC12_DATA_OUPUT + $d 0x0000267c 0 .text.ADC12_Configure_Mode + $t 0x0000267c 0 .text.ADC12_Configure_Mode + $d 0x000026f4 0 .text.ADC12_Configure_Mode + $d 0x000026f8 0 .text.ADC12_Configure_VREF_Selecte + $t 0x000026f8 0 .text.ADC12_Configure_VREF_Selecte + $d 0x0000286c 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002890 0 .text.ADC12_ConversionChannel_Config + $t 0x00002890 0 .text.ADC12_ConversionChannel_Config + $d 0x000028bc 0 .text.ADC12_ConversionChannel_Config + $t 0x000028cc 0 .text.ADC12_ConversionChannel_Config + $d 0x00002a04 0 .text.ADC12_ConversionChannel_Config + $d 0x00002a10 0 .text.Page_ProgramData + $t 0x00002a10 0 .text.Page_ProgramData + $d 0x00002aa8 0 .text.Page_ProgramData + $d 0x00002ab0 0 .text.ReadDataArry_U8 + $t 0x00002ab0 0 .text.ReadDataArry_U8 + $d 0x00002adc 0 .text.tk_parameter_init + $t 0x00002adc 0 .text.tk_parameter_init + $d 0x00002bcc 0 .text.tk_parameter_init + $d 0x00002c1c 0 .text.CORET_DeInit + $t 0x00002c1c 0 .text.CORET_DeInit + $d 0x00002c30 0 .text.CORET_DeInit + $d 0x00002c34 0 .text.CORET_Int_Enable + $t 0x00002c34 0 .text.CORET_Int_Enable + $d 0x00002c44 0 .text.CORET_Int_Enable + $d 0x00002c4c 0 .text.CORET_start + $t 0x00002c4c 0 .text.CORET_start + $d 0x00002c58 0 .text.CORET_start + $d 0x00002c5c 0 .text.CORET_CLKSOURCE_EX + $t 0x00002c5c 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c68 0 .text.CORET_CLKSOURCE_EX + $d 0x00002c6c 0 .text.CORET_TICKINT_Enable + $t 0x00002c6c 0 .text.CORET_TICKINT_Enable + $d 0x00002c78 0 .text.CORET_TICKINT_Enable + $d 0x00002c7c 0 .text.CORET_reload + $t 0x00002c7c 0 .text.CORET_reload + $d 0x00002c88 0 .text.CORET_reload + $d 0x00002c8c 0 .text.startup.main + $t 0x00002c8c 0 .text.startup.main + $d 0x00002cd8 0 .text.startup.main + $d 0x00002ce0 0 .text.delay_nms + $t 0x00002ce0 0 .text.delay_nms + $d 0x00002d0c 0 .text.delay_nus + $t 0x00002d0c 0 .text.delay_nus + $d 0x00002d30 0 .text.GPIO_CONFIG + $t 0x00002d30 0 .text.GPIO_CONFIG + $d 0x00002db4 0 .text.GPIO_CONFIG + $d 0x00002dbc 0 .text.BT_CONFIG + $t 0x00002dbc 0 .text.BT_CONFIG + $d 0x00002e14 0 .text.BT_CONFIG + $d 0x00002e1c 0 .text.SYSCON_CONFIG + $t 0x00002e1c 0 .text.SYSCON_CONFIG + $d 0x00002e80 0 .text.APT32F102_init + $t 0x00002e80 0 .text.APT32F102_init + $d 0x00002f04 0 .text.APT32F102_init + $d 0x00002f18 0 .text.SYSCONIntHandler + $t 0x00002f18 0 .text.SYSCONIntHandler + $d 0x00003004 0 .text.SYSCONIntHandler + $d 0x00003008 0 .text.IFCIntHandler + $t 0x00003008 0 .text.IFCIntHandler + $d 0x0000306c 0 .text.IFCIntHandler + $d 0x00003070 0 .text.ADCIntHandler + $t 0x00003070 0 .text.ADCIntHandler + $d 0x000030d4 0 .text.ADCIntHandler + $d 0x000030d8 0 .text.EPT0IntHandler + $t 0x000030d8 0 .text.EPT0IntHandler + $d 0x00003278 0 .text.EPT0IntHandler + $d 0x00003284 0 .text.WWDTHandler + $t 0x00003284 0 .text.WWDTHandler + $d 0x000032b4 0 .text.WWDTHandler + $d 0x000032b8 0 .text.GPT0IntHandler + $t 0x000032b8 0 .text.GPT0IntHandler + $d 0x00003334 0 .text.GPT0IntHandler + $d 0x00003338 0 .text.RTCIntHandler + $t 0x00003338 0 .text.RTCIntHandler + $d 0x000033a0 0 .text.RTCIntHandler + $d 0x000033a8 0 .text.UART0IntHandler + $t 0x000033a8 0 .text.UART0IntHandler + $d 0x000033e0 0 .text.UART0IntHandler + $d 0x000033e4 0 .text.UART1IntHandler + $t 0x000033e4 0 .text.UART1IntHandler + $d 0x0000341c 0 .text.UART1IntHandler + $d 0x00003420 0 .text.UART2IntHandler + $t 0x00003420 0 .text.UART2IntHandler + $d 0x000034a0 0 .text.UART2IntHandler + $d 0x000034b4 0 .text.SPI0IntHandler + $t 0x000034b4 0 .text.SPI0IntHandler + $d 0x00003598 0 .text.SPI0IntHandler + $d 0x0000359c 0 .text.SIO0IntHandler + $t 0x0000359c 0 .text.SIO0IntHandler + $d 0x000035ec 0 .text.SIO0IntHandler + $d 0x000035f0 0 .text.EXI0IntHandler + $t 0x000035f0 0 .text.EXI0IntHandler + $d 0x0000361c 0 .text.EXI0IntHandler + $d 0x00003620 0 .text.EXI1IntHandler + $t 0x00003620 0 .text.EXI1IntHandler + $d 0x0000364c 0 .text.EXI1IntHandler + $d 0x00003650 0 .text.EXI2to3IntHandler + $t 0x00003650 0 .text.EXI2to3IntHandler + $d 0x00003694 0 .text.EXI2to3IntHandler + $d 0x00003698 0 .text.EXI4to9IntHandler + $t 0x00003698 0 .text.EXI4to9IntHandler + $d 0x00003700 0 .text.EXI4to9IntHandler + $d 0x00003704 0 .text.EXI10to15IntHandler + $t 0x00003704 0 .text.EXI10to15IntHandler + $d 0x0000377c 0 .text.EXI10to15IntHandler + $d 0x00003784 0 .text.LPTIntHandler + $t 0x00003784 0 .text.LPTIntHandler + $d 0x000037b4 0 .text.LPTIntHandler + $d 0x000037b8 0 .text.BT0IntHandler + $t 0x000037b8 0 .text.BT0IntHandler + $d 0x00003800 0 .text.BT0IntHandler + $d 0x00003804 0 .text.BT1IntHandler + $t 0x00003804 0 .text.BT1IntHandler + $d 0x0000386c 0 .text.BT1IntHandler + $d 0x00003874 0 .text.PriviledgeVioHandler + $t 0x00003874 0 .text.PriviledgeVioHandler + $d 0x00003876 0 .text.PendTrapHandler + $t 0x00003876 0 .text.PendTrapHandler + $d 0x0000387e 0 .text.Trap3Handler + $t 0x0000387e 0 .text.Trap3Handler + $d 0x00003886 0 .text.Trap2Handler + $t 0x00003886 0 .text.Trap2Handler + $d 0x0000388e 0 .text.Trap1Handler + $t 0x0000388e 0 .text.Trap1Handler + $d 0x00003896 0 .text.Trap0Handler + $t 0x00003896 0 .text.Trap0Handler + $d 0x0000389e 0 .text.UnrecExecpHandler + $t 0x0000389e 0 .text.UnrecExecpHandler + $d 0x000038a6 0 .text.BreakPointHandler + $t 0x000038a6 0 .text.BreakPointHandler + $d 0x000038ae 0 .text.AccessErrHandler + $t 0x000038ae 0 .text.AccessErrHandler + $d 0x000038b6 0 .text.IllegalInstrHandler + $t 0x000038b6 0 .text.IllegalInstrHandler + $d 0x000038be 0 .text.MisalignedHandler + $t 0x000038be 0 .text.MisalignedHandler + $d 0x000038c6 0 .text.CNTAIntHandler + $t 0x000038c6 0 .text.CNTAIntHandler + $d 0x000038ce 0 .text.I2CIntHandler + $t 0x000038ce 0 .text.I2CIntHandler + $d 0x000038d8 0 .text.__divsi3 + $t 0x000038d8 0 .text.__divsi3 + $d 0x000038f8 0 .text.__divsi3 + $d 0x000038fc 0 .text.__udivsi3 + $t 0x000038fc 0 .text.__udivsi3 + $d 0x0000391c 0 .text.__udivsi3 + $d 0x00003920 0 .text.__modsi3 + $t 0x00003920 0 .text.__modsi3 + $d 0x00003940 0 .text.__modsi3 + $d 0x00003944 0 .text.__umodsi3 + $t 0x00003944 0 .text.__umodsi3 + $d 0x00003964 0 .text.__umodsi3 + $d 0x00003968 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003968 0 .text.CK_CPU_EnAllNormalIrq + $d 0x0000396e 0 .text.CK_CPU_DisAllNormalIrq + $t 0x0000396e 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00003974 0 .text.UARTx_Init + $t 0x00003974 0 .text.UARTx_Init + $d 0x00003a60 0 .text.UARTx_Init + $d 0x00003a94 0 .text.UART2_RecvINT_Processing + $t 0x00003a94 0 .text.UART2_RecvINT_Processing + $d 0x00003aec 0 .text.UART2_RecvINT_Processing + $d 0x00003afc 0 .text.UART2_TASK + $t 0x00003afc 0 .text.UART2_TASK + $d 0x00003ba8 0 .text.UART2_TASK + $d 0x00003bbc 0 .text.BUS485_Send + $t 0x00003bbc 0 .text.BUS485_Send + $d 0x00003c68 0 .text.BUS485_Send + $d 0x00003c80 0 .text.MultSend_Task + $t 0x00003c80 0 .text.MultSend_Task + $d 0x00003ce4 0 .text.MultSend_Task + $d 0x00003cec 0 .text.Set_GroupSend + $t 0x00003cec 0 .text.Set_GroupSend + $d 0x00003d40 0 .text.Set_GroupSend + $d 0x00003d48 0 .text.Clear_SendFlag + $t 0x00003d48 0 .text.Clear_SendFlag + $d 0x00003d54 0 .text.Clear_SendFlag + $d 0x00003d58 0 .text.BUS485Send_Task + $t 0x00003d58 0 .text.BUS485Send_Task + $d 0x00003d80 0 .text.BUS485Send_Task + $d 0x00003d84 0 .text.BusIdle_Task + $t 0x00003d84 0 .text.BusIdle_Task + $d 0x00003dbc 0 .text.BusIdle_Task + $d 0x00003dc4 0 .text.BusBusy_Task + $t 0x00003dc4 0 .text.BusBusy_Task + $d 0x00003e10 0 .text.BusBusy_Task + $d 0x00003e1c 0 .text.Dbg_Println + $t 0x00003e1c 0 .text.Dbg_Println + $d 0x00003e28 0 .text.Dbg_Print_Buff + $t 0x00003e28 0 .text.Dbg_Print_Buff + $d 0x00003e2c 0 .text.Touch_Key_Init + $t 0x00003e2c 0 .text.Touch_Key_Init + $d 0x00003e80 0 .text.Touch_Key_Init + $d 0x00003e94 0 .text.TouchKey_RS485_Printf_2 + $t 0x00003e94 0 .text.TouchKey_RS485_Printf_2 + $d 0x00003eae 0 .text.TouchKey_RS485_Printf_2 + $t 0x00003ec0 0 .text.TouchKey_RS485_Printf_2 + $d 0x000040b4 0 .text.TouchKey_RS485_Printf_2 + $d 0x000040e8 0 .text.Get_TouchKey_CH_State + $t 0x000040e8 0 .text.Get_TouchKey_CH_State + $d 0x000040f4 0 .text.Get_TouchKey_CH_State + $t 0x000040fa 0 .text.Get_TouchKey_CH_State + $d 0x00004120 0 .text.Get_TouchKey_CH_State + $d 0x00004124 0 .text.Touch_Key_Event_Handling + $t 0x00004124 0 .text.Touch_Key_Event_Handling + $d 0x000041cc 0 .text.Touch_Key_Event_Handling + $d 0x000041d0 0 .text.TouchKey_Set_Interface_Task + $t 0x000041d0 0 .text.TouchKey_Set_Interface_Task + $d 0x00004200 0 .text.TouchKey_Set_Interface_Task + $d 0x0000420c 0 .text.Touch_Key_Task + $t 0x0000420c 0 .text.Touch_Key_Task + $d 0x000042ec 0 .text.Touch_Key_Task + $d 0x000042fc 0 .text.TouchKey_CheckSum + $t 0x000042fc 0 .text.TouchKey_CheckSum + $d 0x00004314 0 .text.TouchKey_Comm_Reply + $t 0x00004314 0 .text.TouchKey_Comm_Reply + $d 0x00004380 0 .text.TouchKey_Comm_Reply + $d 0x00004384 0 .text.TouchKey_SetPara_Processing + $t 0x00004384 0 .text.TouchKey_SetPara_Processing + $d 0x00004428 0 .text.TouchKey_SetPara_Processing + $d 0x0000443c 0 .text.TouchKey_ReadPara_Processing + $t 0x0000443c 0 .text.TouchKey_ReadPara_Processing + $d 0x0000452c 0 .text.TouchKey_ReadPara_Processing + $d 0x00004534 0 .text.TouchKey_DugPrintf_Processing + $t 0x00004534 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004568 0 .text.TouchKey_DugPrintf_Processing + $d 0x0000456c 0 .text.TouchKey_ReadEnve_Processing + $t 0x0000456c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004614 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000461c 0 .text.TouchKey_ResetDevice_Processing + $t 0x0000461c 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004638 0 .text.TouchKey_Comm_Processing + $t 0x00004638 0 .text.TouchKey_Comm_Processing + $d 0x000046c6 0 .text.TouchKey_Comm_Processing + $t 0x000046cc 0 .text.TouchKey_Comm_Processing + $d 0x000046f4 0 .text.TouchKey_Comm_Processing + $d 0x00004710 0 .text.EEPROM_CheckSum + $t 0x00004710 0 .text.EEPROM_CheckSum + $d 0x00004728 0 .text.EEPROM_ReadParaInfo + $t 0x00004728 0 .text.EEPROM_ReadParaInfo + $d 0x00004794 0 .text.EEPROM_ReadParaInfo + $d 0x0000479c 0 .text.EEPROM_WriteParaInfo + $t 0x0000479c 0 .text.EEPROM_WriteParaInfo + $d 0x000047dc 0 .text.EEPROM_WriteParaInfo + $d 0x000047e0 0 .text.EEPROM_Validate_ParaInfo + $t 0x000047e0 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004864 0 .text.EEPROM_Validate_ParaInfo + $d 0x0000486c 0 .text.EEPROM_Default_ParaInfo + $t 0x0000486c 0 .text.EEPROM_Default_ParaInfo + $d 0x0000488c 0 .text.EEPROM_Init + $t 0x0000488c 0 .text.EEPROM_Init + $d 0x000048d8 0 .text.EEPROM_Init + $d 0x000048e4 0 .text.EEPROM_WriteTouchPara + $t 0x000048e4 0 .text.EEPROM_WriteTouchPara + $d 0x00004944 0 .text.EEPROM_WriteTouchPara + $d 0x00004950 0 .text.EEPROM_ReadTouchPara + $t 0x00004950 0 .text.EEPROM_ReadTouchPara + $d 0x000049e8 0 .text.EEPROM_ReadTouchPara + $d 0x000049fc 0 .text.EEPROM_Validate_TouchPara + $t 0x000049fc 0 .text.EEPROM_Validate_TouchPara + $d 0x00004adc 0 .text.EEPROM_Validate_TouchPara + $d 0x00004ae0 0 .text.EEPROM_Default_TouchPara + $t 0x00004ae0 0 .text.EEPROM_Default_TouchPara + $d 0x00004b50 0 .text.EEPROM_TouchPara_Printf + $t 0x00004b50 0 .text.EEPROM_TouchPara_Printf + $d 0x00004bb4 0 .text.EEPROM_TouchPara_Printf + $d 0x00004bd0 0 .text.ADC_Init + $t 0x00004bd0 0 .text.ADC_Init + $d 0x00004c28 0 .text.ADC_Init + $d 0x00004c2c 0 .text.Thermistor_Array_Transform + $t 0x00004c2c 0 .text.Thermistor_Array_Transform + $d 0x00004c6c 0 .text.Thermistor_Array_Transform + $d 0x00004c74 0 .text.Calculate_ADC_Sample_Average + $t 0x00004c74 0 .text.Calculate_ADC_Sample_Average + $d 0x00004cf4 0 .text.Calculate_ADC_Sample_Average + $d 0x00004d00 0 .text.Get_Temp_Val + $t 0x00004d00 0 .text.Get_Temp_Val + $d 0x00004d0c 0 .text.Get_Temp_Val + $d 0x00004d10 0 .text.Gather_Temp + $t 0x00004d10 0 .text.Gather_Temp + $d 0x00004dac 0 .text.Gather_Temp + $d 0x00004db8 0 .text.ADC_Sample_Task + $t 0x00004db8 0 .text.ADC_Sample_Task + $d 0x00004e54 0 .text.ADC_Sample_Task + $d 0x00004e60 0 .text.Contol_Switch_Light + $t 0x00004e60 0 .text.Contol_Switch_Light + $d 0x00004e70 0 .text.Contol_Switch_Light + $t 0x00004e7c 0 .text.Contol_Switch_Light + $d 0x000051f8 0 .text.Contol_Switch_Light + $t 0x00005200 0 .text.Contol_Switch_Light + $d 0x0000524c 0 .text.Contol_Switch_Light_2 + $t 0x0000524c 0 .text.Contol_Switch_Light_2 + $d 0x0000525c 0 .text.Contol_Switch_Light_2 + $t 0x00005268 0 .text.Contol_Switch_Light_2 + $d 0x000055e4 0 .text.Contol_Switch_Light_2 + $t 0x000055ec 0 .text.Contol_Switch_Light_2 + $d 0x00005638 0 .text.Contol_Switch_ClickAction + $t 0x00005638 0 .text.Contol_Switch_ClickAction + $d 0x0000565c 0 .text.Contol_Switch_ClickAction + $d 0x00005660 0 .text.Get_TM1812_State_Change + $t 0x00005660 0 .text.Get_TM1812_State_Change + $d 0x0000569c 0 .text.Get_TM1812_State_Change + $d 0x000056a4 0 .text.TimeCall_SIO_Send + $t 0x000056a4 0 .text.TimeCall_SIO_Send + $d 0x000057b8 0 .text.TimeCall_SIO_Send + $d 0x000057c4 0 .text.TimeCall_SIO_Send2 + $t 0x000057c4 0 .text.TimeCall_SIO_Send2 + $d 0x0000585c 0 .text.TimeCall_SIO_Send2 + $d 0x0000586c 0 .text.Tm1812_Task + $t 0x0000586c 0 .text.Tm1812_Task + $d 0x000058b4 0 .text.Tm1812_Task + $d 0x000058c8 0 .text.Tm1812_Ch_Insert_Data + $t 0x000058c8 0 .text.Tm1812_Ch_Insert_Data + $d 0x000058e4 0 .text.Tm1812_Ch_Insert_Data + $d 0x000058ec 0 .text.TM1812_Control_CH_State + $t 0x000058ec 0 .text.TM1812_Control_CH_State + $d 0x00005948 0 .text.TM1812_Control_CH_State + $d 0x0000595c 0 .text.TM1812_Control_CH_CurrState + $t 0x0000595c 0 .text.TM1812_Control_CH_CurrState + $d 0x000059b4 0 .text.TM1812_Control_CH_CurrState + $d 0x000059c0 0 .text.TM1812_LED_Init + $t 0x000059c0 0 .text.TM1812_LED_Init + $d 0x00005a14 0 .text.TM1812_LED_Init + $d 0x00005a18 0 .text.HT1621_WR_Data + $t 0x00005a18 0 .text.HT1621_WR_Data + $d 0x00005a5c 0 .text.HT1621_WR_Data + $d 0x00005a60 0 .text.HT1621_WR_CMD + $t 0x00005a60 0 .text.HT1621_WR_CMD + $d 0x00005a8c 0 .text.HT1621_WR_CMD + $d 0x00005a90 0 .text.HT1621_Init + $t 0x00005a90 0 .text.HT1621_Init + $d 0x00005b3c 0 .text.HT1621_Init + $d 0x00005b44 0 .text.HT1621_Clear + $t 0x00005b44 0 .text.HT1621_Clear + $d 0x00005b8c 0 .text.HT1621_Clear + $d 0x00005b94 0 .text.HT1621_ALLON + $t 0x00005b94 0 .text.HT1621_ALLON + $d 0x00005bd0 0 .text.HT1621_ALLON + $d 0x00005bd4 0 .text.HT1621_Refresh_Data + $t 0x00005bd4 0 .text.HT1621_Refresh_Data + $d 0x00005c18 0 .text.HT1621_Refresh_Data + $d 0x00005c20 0 .text.Set_Temperature_Display + $t 0x00005c20 0 .text.Set_Temperature_Display + $d 0x00005ce4 0 .text.Set_Temperature_Display + $d 0x00005cf0 0 .text.Local_Temperature_Display + $t 0x00005cf0 0 .text.Local_Temperature_Display + $d 0x00005db4 0 .text.Local_Temperature_Display + $d 0x00005dc0 0 .text.Control_Mode + $t 0x00005dc0 0 .text.Control_Mode + $d 0x00005dca 0 .text.Control_Mode + $t 0x00005dd8 0 .text.Control_Mode + $d 0x00005ffc 0 .text.Control_Mode + $d 0x00006004 0 .text.Control_wind_velocity + $t 0x00006004 0 .text.Control_wind_velocity + $d 0x00006010 0 .text.Control_wind_velocity + $t 0x00006016 0 .text.Control_wind_velocity + $d 0x000060d0 0 .text.Control_wind_velocity + $d 0x000060d4 0 .text.Control_Prompt_Text + $t 0x000060d4 0 .text.Control_Prompt_Text + $d 0x00006174 0 .text.Control_Prompt_Text + $d 0x00006178 0 .text.Controlled_Buzzer + $t 0x00006178 0 .text.Controlled_Buzzer + $d 0x000061b8 0 .text.Controlled_Buzzer + $d 0x000061c0 0 .text.Controlled_LCD_Backlight + $t 0x000061c0 0 .text.Controlled_LCD_Backlight + $d 0x00006294 0 .text.Controlled_LCD_Backlight + $d 0x0000629c 0 .text.Controlled_Key_Backlight + $t 0x0000629c 0 .text.Controlled_Key_Backlight + $d 0x000062c8 0 .text.Controlled_Key_Backlight + $d 0x000062cc 0 .text.Set_Device_ADDR + $t 0x000062cc 0 .text.Set_Device_ADDR + $d 0x00006360 0 .text.Set_Device_ADDR + $d 0x00006368 0 .text.Set_Temp_Difference + $t 0x00006368 0 .text.Set_Temp_Difference + $d 0x000063c4 0 .text.Set_Temp_Difference + $d 0x000063cc 0 .text.HT1621_Refresh_Task + $t 0x000063cc 0 .text.HT1621_Refresh_Task + $d 0x00006444 0 .text.HT1621_Refresh_Task + $d 0x0000645c 0 .text.TemCtrl_Init + $t 0x0000645c 0 .text.TemCtrl_Init + $d 0x000065c0 0 .text.TemCtrl_Init + $d 0x000065d8 0 .text.TemCtrl_Model_Set + $t 0x000065d8 0 .text.TemCtrl_Model_Set + $d 0x0000661c 0 .text.TemCtrl_Model_Set + $d 0x00006624 0 .text.TemCtrl_Fan_Set + $t 0x00006624 0 .text.TemCtrl_Fan_Set + $d 0x00006642 0 .text.TemCtrl_Fan_Set + $t 0x00006646 0 .text.TemCtrl_Fan_Set + $d 0x0000666c 0 .text.TemCtrl_Fan_Set + $d 0x00006674 0 .text.TemCtrl_Temperature_Dec + $t 0x00006674 0 .text.TemCtrl_Temperature_Dec + $d 0x0000669c 0 .text.TemCtrl_Temperature_Dec + $d 0x000066a4 0 .text.TemCtrl_Temperature_Add + $t 0x000066a4 0 .text.TemCtrl_Temperature_Add + $d 0x000066cc 0 .text.TemCtrl_Temperature_Add + $d 0x000066d4 0 .text.TemCtrl_OnOff_Set + $t 0x000066d4 0 .text.TemCtrl_OnOff_Set + $d 0x00006700 0 .text.TemCtrl_OnOff_Set + $d 0x00006708 0 .text.Tem_Valve_Ctrl + $t 0x00006708 0 .text.Tem_Valve_Ctrl + $d 0x000067c8 0 .text.Tem_Valve_Ctrl + $d 0x000067d4 0 .text.TemCtrl_Pro + $t 0x000067d4 0 .text.TemCtrl_Pro + $d 0x00006934 0 .text.TemCtrl_Pro + $d 0x0000694c 0 .text.KEY1_Model_Press_Fun + $t 0x0000694c 0 .text.KEY1_Model_Press_Fun + $d 0x00006a18 0 .text.KEY1_Model_Press_Fun + $d 0x00006a2c 0 .text.KEY2_Fan_Press_Fun + $t 0x00006a2c 0 .text.KEY2_Fan_Press_Fun + $d 0x00006af8 0 .text.KEY2_Fan_Press_Fun + $d 0x00006b0c 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00006b0c 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00006c08 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00006c1c 0 .text.KEY3_Long_Press_Fun + $t 0x00006c1c 0 .text.KEY3_Long_Press_Fun + $d 0x00006c84 0 .text.KEY3_Long_Press_Fun + $d 0x00006c94 0 .text.KEY4_TempDec_Press_Fun + $t 0x00006c94 0 .text.KEY4_TempDec_Press_Fun + $d 0x00006d90 0 .text.KEY4_TempDec_Press_Fun + $d 0x00006da4 0 .text.KEY4_Long_Press + $t 0x00006da4 0 .text.KEY4_Long_Press + $d 0x00006e0c 0 .text.KEY4_Long_Press + $d 0x00006e1c 0 .text.KEY5_OnOff_Press_Fun + $t 0x00006e1c 0 .text.KEY5_OnOff_Press_Fun + $d 0x00006e8c 0 .text.KEY5_OnOff_Press_Fun + $d 0x00006ea0 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00006ea0 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006eec 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00006ef4 0 .text.DisPlay_Init + $t 0x00006ef4 0 .text.DisPlay_Init + $d 0x00006f0c 0 .text.DisPlay_Init + $d 0x00006f14 0 .text.DisPlay_Task + $t 0x00006f14 0 .text.DisPlay_Task + $d 0x00007138 0 .text.DisPlay_Task + $t 0x00007140 0 .text.DisPlay_Task + $d 0x00007270 0 .text.DisPlay_Task + $t 0x000072b0 0 .text.DisPlay_Task + $d 0x000073d4 0 .text.DisPlay_Task + $d 0x000073f0 0 .text.Debug_Init + $t 0x000073f0 0 .text.Debug_Init + $d 0x00007424 0 .text.Debug_Init + $d 0x0000742c 0 .text.Dev_SaveData + $t 0x0000742c 0 .text.Dev_SaveData + $d 0x000074b4 0 .text.Dev_SaveData + $d 0x000074c4 0 .text.Debug_Task + $t 0x000074c4 0 .text.Debug_Task + $d 0x00007530 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x00007540 F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007540 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00007540 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007564 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007568 0 .text.Relay_Init + $t 0x00007568 0 .text.Relay_Init + $d 0x00007588 0 .text.Relay_Init + $d 0x00007590 0 .text.Relay_High + $t 0x00007590 0 .text.Relay_High + $d 0x000075ac 0 .text.Relay_Mid + $t 0x000075ac 0 .text.Relay_Mid + $d 0x000075c8 0 .text.Relay_Low + $t 0x000075c8 0 .text.Relay_Low + $d 0x000075e4 0 .text.Relay_Stop + $t 0x000075e4 0 .text.Relay_Stop + $d 0x00007600 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00007600 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x00007614 0 .text.RLY_Direct_Control + $t 0x00007614 0 .text.RLY_Direct_Control + $d 0x00007656 0 .text.RLY_Direct_Control + $t 0x0000765a 0 .text.RLY_Direct_Control + $d 0x000076d4 0 .text.RLY_Direct_Control + $d 0x000076dc 0 .text.RLY_Zero_Control + $t 0x000076dc 0 .text.RLY_Zero_Control + $d 0x000076f2 0 .text.RLY_Zero_Control + $t 0x000076f6 0 .text.RLY_Zero_Control + $d 0x00007770 0 .text.RLY_Zero_Control + $d 0x00007774 0 .text.NetCRC16 + $t 0x00007774 0 .text.NetCRC16 + $d 0x000077b8 0 .text.NetCRC16 + $d 0x000077c0 0 .text.GetCRC16 + $t 0x000077c0 0 .text.GetCRC16 + $d 0x000077f4 0 .text.GetCRC16 + $d 0x000077fc 0 .text.SOR_CRC + $t 0x000077fc 0 .text.SOR_CRC + $d 0x00007814 0 .text.Rs485_ASend + $t 0x00007814 0 .text.Rs485_ASend + $d 0x0000790c 0 .text.Rs485_ASend + $d 0x00007914 0 .text.Rs485AskCycleSend + $t 0x00007914 0 .text.Rs485AskCycleSend + $d 0x00007a08 0 .text.Rs485AskCycleSend + $d 0x00007a10 0 .text.Rs485AskCtrlSend + $t 0x00007a10 0 .text.Rs485AskCtrlSend + $d 0x00007a68 0 .text.Rs485AskCtrlSend + $d 0x00007a6c 0 .text.Rs485AskReadSend + $t 0x00007a6c 0 .text.Rs485AskReadSend + $d 0x00007acc 0 .text.Rs485AskReadSend + $d 0x00007ad0 0 .text.Rs485_DevPort_ACK + $t 0x00007ad0 0 .text.Rs485_DevPort_ACK + $d 0x00007ae8 0 .text.Temp_Rec_Analysis + $t 0x00007ae8 0 .text.Temp_Rec_Analysis + $d 0x00007b50 0 .text.Temp_Rec_Analysis + $t 0x00007b62 0 .text.Temp_Rec_Analysis + $d 0x00007b7a 0 .text.Temp_Rec_Analysis + $t 0x00007b7e 0 .text.Temp_Rec_Analysis + $d 0x00007c6c 0 .text.Temp_Rec_Analysis + $t 0x00007c70 0 .text.Temp_Rec_Analysis + $d 0x00007c8c 0 .text.Temp_Rec_Analysis + $d 0x00007c98 0 .text.Tem_Rs485_Rec_Pro + $t 0x00007c98 0 .text.Tem_Rs485_Rec_Pro + $d 0x00007d54 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x00007d64 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007d64 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00007d64 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007d70 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00007d74 0 .text.tk_clk_config + $t 0x00007d74 0 .text.tk_clk_config + $d 0x00007d98 0 .text.tk_clk_config + $d 0x00007d9c 0 .text.TK_con0_config + $t 0x00007d9c 0 .text.TK_con0_config + $d 0x00007e4c 0 .text.TK_con0_config + $d 0x00007e58 0 .text.tk_io_enable + $t 0x00007e58 0 .text.tk_io_enable + $d 0x00007e9c 0 .text.tk_io_enable + $t 0x00007eac 0 .text.tk_io_enable + $d 0x00007f80 0 .text.tk_io_enable + $d 0x00007f8c 0 .text.TK_Single_Longpress_prg + $t 0x00007f8c 0 .text.TK_Single_Longpress_prg + $d 0x00008080 0 .text.TK_Single_Longpress_prg + $d 0x000080b4 0 .text.TK_Sampling_prog + $t 0x000080b4 0 .text.TK_Sampling_prog + $d 0x0000815c 0 .text.TK_Sampling_prog + $d 0x00008180 0 .text.get_key_number + $t 0x00008180 0 .text.get_key_number + $d 0x000081a4 0 .text.get_key_number + $d 0x000081a8 0 .text.get_key_number0 + $t 0x000081a8 0 .text.get_key_number0 + $d 0x000081cc 0 .text.get_key_number0 + $d 0x000081d0 0 .text.get_key_number1 + $t 0x000081d0 0 .text.get_key_number1 + $d 0x000081f4 0 .text.get_key_number1 + $d 0x000081f8 0 .text.get_key_number2 + $t 0x000081f8 0 .text.get_key_number2 + $d 0x0000821c 0 .text.get_key_number2 + $d 0x00008220 0 .text.TK_Baseline_prog + $t 0x00008220 0 .text.TK_Baseline_prog + $d 0x00008334 0 .text.TK_Baseline_prog + $d 0x00008370 0 .text.TK_Baseline_prog2 + $t 0x00008370 0 .text.TK_Baseline_prog2 + $d 0x0000847c 0 .text.TK_Baseline_prog2 + $d 0x000084b8 0 .text.tk_poweron_data_fineturn + $t 0x000084b8 0 .text.tk_poweron_data_fineturn + $d 0x000085b4 0 .text.tk_poweron_data_fineturn + $d 0x000085dc 0 .text.TK_Scan_Start + $t 0x000085dc 0 .text.TK_Scan_Start + $d 0x00008628 0 .text.TK_Scan_Start + $d 0x00008644 0 .text.TK_Keymap_prog + $t 0x00008644 0 .text.TK_Keymap_prog + $d 0x00008980 0 .text.TK_Keymap_prog + $t 0x00008a04 0 .text.TK_Keymap_prog + $d 0x00008d60 0 .text.TK_Keymap_prog + $t 0x00008da4 0 .text.TK_Keymap_prog + $d 0x00008ea0 0 .text.TK_Keymap_prog + $d 0x00008eb4 0 .text.TK_overflow_predict + $t 0x00008eb4 0 .text.TK_overflow_predict + $d 0x00008fa8 0 .text.TK_overflow_predict + $d 0x00008fdc 0 .text.TK_Baseline_tracking + $t 0x00008fdc 0 .text.TK_Baseline_tracking + $d 0x00009334 0 .text.TK_Baseline_tracking + $t 0x00009390 0 .text.TK_Baseline_tracking + $d 0x0000949c 0 .text.TK_Baseline_tracking + $d 0x000094ac 0 .text.TK_result_prog + $t 0x000094ac 0 .text.TK_result_prog + $d 0x000095ac 0 .text.TK_result_prog + $d 0x000095dc 0 .text.get_key_seq + $t 0x000095dc 0 .text.get_key_seq + $d 0x0000960c 0 .text.get_key_seq + $d 0x00009614 0 .text.CORET_CONFIG + $t 0x00009614 0 .text.CORET_CONFIG + $d 0x00009644 0 .text.CORET_CONFIG + $d 0x0000964c 0 .text.tk_chxval_seqxcon_clr + $t 0x0000964c 0 .text.tk_chxval_seqxcon_clr + $d 0x00009664 0 .text.tk_chxval_seqxcon_clr + $d 0x00009668 0 .text.tk_freq_para_init + $t 0x00009668 0 .text.tk_freq_para_init + $d 0x000096c0 0 .text.tk_freq_para_init + $t 0x000096c6 0 .text.tk_freq_para_init + $d 0x000096e0 0 .text.tk_freq_para_init + $d 0x00009714 0 .text.tk_reserved_init + $t 0x00009714 0 .text.tk_reserved_init + $d 0x00009728 0 .text.tk_reserved_init + $d 0x0000973c 0 .text.TKEYIntHandler + $t 0x0000973c 0 .text.TKEYIntHandler + $d 0x000097cc 0 .text.TKEYIntHandler + $d 0x000097dc 0 .text.CORETHandler + $t 0x000097dc 0 .text.CORETHandler + $d 0x00009904 0 .text.CORETHandler + $d 0x00009938 0 .text.tk_init + $t 0x00009938 0 .text.tk_init + $d 0x00009a20 0 .text.tk_init + $d 0x00009a48 0 .text.std_clk_calib + $t 0x00009a48 0 .text.std_clk_calib + $d 0x00009c90 0 .text.std_clk_calib + __func__.6452 0x00009ccc O 28 .rodata + __func__.6490 0x00009ce8 O 25 .rodata + bp 0x0000a040 O 16 .rodata + dp_l 0x0000a050 O 16 .rodata + dp_h 0x0000a060 O 16 .rodata + NUM.6456 0x200000b8 O 1 .bss + adc_tick.6366 0x2000013c O 4 .bss + StateChange_Tick.6456 0x2000022c O 4 .bss + tick.6395 0x20000230 O 4 .bss + OpenDisPlay_Flag 0x20000234 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __adddf3 0x00001054 F 46 .text + __subdf3 0x00001084 F 54 .text + __muldf3 0x000010bc F 564 .text + __divdf3 0x000012f0 F 340 .text + __gtdf2 0x00001444 F 60 .text + __gedf2 0x00001480 F 60 .text + __ledf2 0x000014bc F 58 .text + __floatsidf 0x000014f8 F 112 .text + __fixdfsi 0x00001568 F 112 .text + __floatunsidf 0x000015d8 F 84 .text + __muldi3 0x0000162c F 68 .text + __clzsi2 0x00001670 F 64 .text + __pack_d 0x000016b0 F 412 .text + __unpack_d 0x0000184c F 196 .text + __fpcmp_parts_d 0x00001910 F 140 .text + __memset_fast 0x0000199c w F 136 .text + memset 0x0000199c w F 136 .text + __memcpy_fast 0x00001a24 w F 100 .text + memcpy 0x00001a24 w F 100 .text + __main 0x00001a88 F 56 .text.__main + SYSCON_RST_VALUE 0x00001b34 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001b80 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001bb0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c38 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c60 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001c9c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001cb0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001cc8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001ce8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001d04 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001d20 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00001d60 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00001d94 F 4 .text.GPIO_EXTI_interrupt + EXI3_Int_Enable 0x00001d98 F 16 .text.EXI3_Int_Enable + EXI4_Int_Enable 0x00001da8 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00001db8 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00001dc4 F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x00001dd0 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001df4 F 48 .text.Set_INT_Priority + GPIO_Init 0x00001e24 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f04 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f18 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f28 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00002034 F 252 .text.GPIOA0_EXI_Init + GPIOB0_EXI_Init 0x00002130 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x0000219c F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000021a4 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000021ac F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000021c2 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000021d4 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x000021e8 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x000021f8 F 28 .text.BT_DeInit + BT_Start 0x00002214 F 8 .text.BT_Start + BT_Soft_Reset 0x0000221c F 10 .text.BT_Soft_Reset + BT_Configure 0x00002226 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000223e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000226a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00002270 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00002284 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00002294 F 32 .text.SIO_DeInit + SIO_IO_Init 0x000022b4 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x00002314 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x00002324 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x00002374 F 24 .text.UART0_DeInit + UART1_DeInit 0x0000238c F 24 .text.UART1_DeInit + UART2_DeInit 0x000023a4 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000023bc F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x000023d8 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x000023f4 F 236 .text.UART_IO_Init + UARTInit 0x000024e0 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x000024f0 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002500 F 30 .text.UARTTransmit + EPT_Stop 0x00002520 F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x00002548 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x000025ac F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x000025dc F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00002608 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00002614 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x0000263c F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002650 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002668 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x0000267c F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x000026f8 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002890 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002a10 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002ab0 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002adc F 320 .text.tk_parameter_init + CORET_DeInit 0x00002c1c F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002c34 F 24 .text.CORET_Int_Enable + CORET_start 0x00002c4c F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002c5c F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002c6c F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002c7c F 16 .text.CORET_reload + main 0x00002c8c F 84 .text.startup.main + delay_nms 0x00002ce0 F 44 .text.delay_nms + delay_nus 0x00002d0c F 34 .text.delay_nus + GPIO_CONFIG 0x00002d30 F 140 .text.GPIO_CONFIG + BT_CONFIG 0x00002dbc F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002e1c F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002e80 F 152 .text.APT32F102_init + SYSCONIntHandler 0x00002f18 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003008 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003070 F 104 .text.ADCIntHandler + EPT0IntHandler 0x000030d8 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003284 F 52 .text.WWDTHandler + GPT0IntHandler 0x000032b8 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00003338 F 112 .text.RTCIntHandler + UART0IntHandler 0x000033a8 F 60 .text.UART0IntHandler + UART1IntHandler 0x000033e4 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003420 F 148 .text.UART2IntHandler + SPI0IntHandler 0x000034b4 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x0000359c F 84 .text.SIO0IntHandler + EXI0IntHandler 0x000035f0 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00003620 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00003650 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00003698 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003704 F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x00003784 F 52 .text.LPTIntHandler + BT0IntHandler 0x000037b8 F 76 .text.BT0IntHandler + BT1IntHandler 0x00003804 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00003874 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003876 F 8 .text.PendTrapHandler + Trap3Handler 0x0000387e F 8 .text.Trap3Handler + Trap2Handler 0x00003886 F 8 .text.Trap2Handler + Trap1Handler 0x0000388e F 8 .text.Trap1Handler + Trap0Handler 0x00003896 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000389e F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000038a6 F 8 .text.BreakPointHandler + AccessErrHandler 0x000038ae F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000038b6 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000038be F 8 .text.MisalignedHandler + CNTAIntHandler 0x000038c6 F 8 .text.CNTAIntHandler + I2CIntHandler 0x000038ce F 8 .text.I2CIntHandler + __divsi3 0x000038d8 F 36 .text.__divsi3 + __udivsi3 0x000038fc F 36 .text.__udivsi3 + __modsi3 0x00003920 F 36 .text.__modsi3 + __umodsi3 0x00003944 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003968 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x0000396e F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00003974 F 288 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003a94 F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003afc F 192 .text.UART2_TASK + BUS485_Send 0x00003bbc F 196 .text.BUS485_Send + MultSend_Task 0x00003c80 F 108 .text.MultSend_Task + Set_GroupSend 0x00003cec F 92 .text.Set_GroupSend + Clear_SendFlag 0x00003d48 F 16 .text.Clear_SendFlag + BUS485Send_Task 0x00003d58 F 44 .text.BUS485Send_Task + BusIdle_Task 0x00003d84 F 64 .text.BusIdle_Task + BusBusy_Task 0x00003dc4 F 88 .text.BusBusy_Task + Dbg_Println 0x00003e1c F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003e28 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003e2c F 104 .text.Touch_Key_Init + TouchKey_RS485_Printf_2 0x00003e94 F 596 .text.TouchKey_RS485_Printf_2 + Get_TouchKey_CH_State 0x000040e8 F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00004124 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x000041d0 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x0000420c F 240 .text.Touch_Key_Task + TouchKey_CheckSum 0x000042fc F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00004314 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00004384 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x0000443c F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00004534 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x0000456c F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x0000461c F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004638 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004710 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004728 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x0000479c F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x000047e0 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x0000486c F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x0000488c F 88 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000048e4 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004950 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x000049fc F 228 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x00004ae0 F 112 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004b50 F 128 .text.EEPROM_TouchPara_Printf + ADC_Init 0x00004bd0 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x00004c2c F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004c74 F 140 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x00004d00 F 16 .text.Get_Temp_Val + Gather_Temp 0x00004d10 F 168 .text.Gather_Temp + ADC_Sample_Task 0x00004db8 F 168 .text.ADC_Sample_Task + Contol_Switch_Light 0x00004e60 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x0000524c F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x00005638 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00005660 F 68 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x000056a4 F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x000057c4 F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x0000586c F 92 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x000058c8 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x000058ec F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x0000595c F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x000059c0 F 88 .text.TM1812_LED_Init + HT1621_WR_Data 0x00005a18 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x00005a60 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005a90 F 180 .text.HT1621_Init + HT1621_Clear 0x00005b44 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00005b94 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00005bd4 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x00005c20 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x00005cf0 F 208 .text.Local_Temperature_Display + Control_Mode 0x00005dc0 F 580 .text.Control_Mode + Control_wind_velocity 0x00006004 F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x000060d4 F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00006178 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x000061c0 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x0000629c F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x000062cc F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00006368 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x000063cc F 144 .text.HT1621_Refresh_Task + TemCtrl_Init 0x0000645c F 380 .text.TemCtrl_Init + TemCtrl_Model_Set 0x000065d8 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00006624 F 80 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00006674 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x000066a4 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x000066d4 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00006708 F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000067d4 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x0000694c F 224 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x00006a2c F 224 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00006b0c F 272 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00006c1c F 120 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00006c94 F 272 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00006da4 F 120 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00006e1c F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00006ea0 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00006ef4 F 32 .text.DisPlay_Init + DisPlay_Task 0x00006f14 F 1244 .text.DisPlay_Task + Debug_Init 0x000073f0 F 60 .text.Debug_Init + Dev_SaveData 0x0000742c F 152 .text.Dev_SaveData + Debug_Task 0x000074c4 F 124 .text.Debug_Task + Relay_Init 0x00007568 F 40 .text.Relay_Init + Relay_High 0x00007590 F 28 .text.Relay_High + Relay_Mid 0x000075ac F 28 .text.Relay_Mid + Relay_Low 0x000075c8 F 28 .text.Relay_Low + Relay_Stop 0x000075e4 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x00007600 F 20 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x00007614 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x000076dc F 152 .text.RLY_Zero_Control + NetCRC16 0x00007774 F 76 .text.NetCRC16 + GetCRC16 0x000077c0 F 60 .text.GetCRC16 + SOR_CRC 0x000077fc F 22 .text.SOR_CRC + Rs485_ASend 0x00007814 F 256 .text.Rs485_ASend + Rs485AskCycleSend 0x00007914 F 252 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00007a10 F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00007a6c F 100 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x00007ad0 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x00007ae8 F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00007c98 F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x00007d74 F 40 .text.tk_clk_config + TK_con0_config 0x00007d9c F 188 .text.TK_con0_config + tk_io_enable 0x00007e58 F 308 .text.tk_io_enable + TK_Single_Longpress_prg 0x00007f8c F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x000080b4 F 204 .text.TK_Sampling_prog + get_key_number 0x00008180 F 40 .text.get_key_number + get_key_number0 0x000081a8 F 40 .text.get_key_number0 + get_key_number1 0x000081d0 F 40 .text.get_key_number1 + get_key_number2 0x000081f8 F 40 .text.get_key_number2 + TK_Baseline_prog 0x00008220 F 336 .text.TK_Baseline_prog + TK_Baseline_prog2 0x00008370 F 328 .text.TK_Baseline_prog2 + tk_poweron_data_fineturn 0x000084b8 F 292 .text.tk_poweron_data_fineturn + TK_Scan_Start 0x000085dc F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x00008644 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x00008eb4 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x00008fdc F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x000094ac F 304 .text.TK_result_prog + get_key_seq 0x000095dc F 56 .text.get_key_seq + CORET_CONFIG 0x00009614 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x0000964c F 28 .text.tk_chxval_seqxcon_clr + tk_freq_para_init 0x00009668 F 156 .text.tk_freq_para_init + tk_reserved_init 0x00009714 F 40 .text.tk_reserved_init + TKEYIntHandler 0x0000973c F 160 .text.TKEYIntHandler + CORETHandler 0x000097dc F 348 .text.CORETHandler + tk_init 0x00009938 F 272 .text.tk_init + std_clk_calib 0x00009a48 F 644 .text.std_clk_calib + R_Array 0x00009d02 O 820 .rodata + Diaital 0x0000a036 O 10 .rodata + __thenan_df 0x0000a070 O 20 .rodata + __clz_tab 0x0000a084 O 256 .rodata + _end_rodata 0x0000a5ac 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 + Printf_Ch 0x20000068 O 1 .data + MCU_Touch_CH 0x20000069 O 5 .data + s_tkey 0x20000070 O 1 .data + samp_setover_f 0x20000071 O 1 .data + scan_step_temp 0x20000072 O 1 .data + SigleTK_longpress_time 0x20000074 O 2 .data + tk_dataturn_en 0x20000076 O 1 .data + tk_overflow_en 0x20000077 O 1 .data + tk_div 0x20000078 O 34 .data + neg_build_bounce 0x2000009a O 1 .data + pos_build_bounce 0x2000009b O 1 .data + Valid_SingleKey_Num 0x2000009c O 1 .data + tk_scan_para0 0x200000a0 O 4 .data + tk_scan_para1 0x200000a4 O 4 .data + tk_scan_para2 0x200000a8 O 4 .data + TkeyRebaseTime 0x200000ac O 1 .data + _end_data 0x200000b0 0 .data + Sav_Temp 0x200000b0 O 4 .bss + _bss_start 0x200000b0 0 .bss + Sys_RSR 0x200000b4 O 4 .bss + SysTick_100us 0x200000bc O 4 .bss + SysTick_1ms 0x200000c0 O 4 .bss + DealBuffer 0x200000c4 O 100 .bss + DealLen 0x20000128 O 2 .bss + RS485_Comming 0x2000012c O 4 .bss + RS485_Comm_Flag 0x20000130 O 4 .bss + RS485_Comm_Start 0x20000134 O 4 .bss + RS485_Comm_End 0x20000138 O 4 .bss + tm1812_param 0x20000140 O 232 .bss + K 0x20000228 O 1 .bss + K2 0x20000229 O 1 .bss + keymap_strict_mode 0x20000235 O 1 .bss + Press_debounce_data 0x20000238 O 1 .bss + TK_Lowpower_mode 0x20000239 O 1 .bss + TK_Lowpower_level 0x2000023a O 1 .bss + TK_longpress_time 0x2000023c O 4 .bss + Release_debounce_data 0x20000240 O 1 .bss + Key_mode 0x20000241 O 1 .bss + TK_icon 0x20000242 O 34 .bss + MultiTimes_Filter 0x20000264 O 1 .bss + Base_Speed 0x20000265 O 1 .bss + TK_IO_ENABLE 0x20000268 O 4 .bss + Valid_Key_Num 0x2000026c O 1 .bss + TK_senprd 0x2000026e O 34 .bss + TK_Wakeup_level 0x20000290 O 1 .bss + TK_Triggerlevel 0x20000292 O 34 .bss + TK_EC_LEVEL 0x200002b4 O 2 .bss + TK_FVR_LEVEL 0x200002b6 O 2 .bss + TK_BaseCnt 0x200002b8 O 4 .bss + TK_PSEL_MODE 0x200002bc O 2 .bss + R_CMPB_BUF 0x200002c0 O 4 .bss + R_CMPA_BUF 0x200002c4 O 4 .bss + R_SIORX_buf 0x200002c8 O 40 .bss + g_uart 0x200002f0 O 345 .bss + m_send 0x2000044c O 84 .bss + touch_para 0x200004a0 O 28 .bss + g_key 0x200004bc O 52 .bss + g_eeprom 0x200004f0 O 8 .bss + g_adc 0x200004f8 O 80 .bss + g_switch 0x20000548 O 28 .bss + HT1621 0x20000564 O 64 .bss + TempCtrl 0x200005a4 O 41 .bss + Debug_Inf 0x200005cd O 14 .bss + c_rly 0x200005dc O 12 .bss + Tk_press_time_cnt4 0x200005e8 O 4 .bss + baseline_data0 0x200005ec O 34 .bss + TK_Postive_build2 0x2000060e O 17 .bss + Key_Map1 0x20000620 O 4 .bss + Valid_Key_Num_CNT 0x20000624 O 3 .bss + offset_data2_abs 0x20000628 O 34 .bss + time_cnt0 0x2000064c O 4 .bss + offset0_max_tempB 0x20000650 O 2 .bss + scan_f 0x20000652 O 1 .bss + offset_data1_abs 0x20000654 O 34 .bss + TK_Slider1_Value 0x20000676 O 1 .bss + TK_Wheel_Value 0x20000677 O 1 .bss + Release_debounce0 0x20000678 O 17 .bss + Key_Map0 0x2000068c O 4 .bss + Tk_press_time_cnt2 0x20000690 O 4 .bss + TK_Slider0_Seq 0x20000694 O 4 .bss + bsae_over_f 0x20000698 O 1 .bss + Press_debounce0 0x20000699 O 17 .bss + Valid_key_f 0x200006aa O 1 .bss + offset_data0 0x200006ac O 34 .bss + offset2_max_tempA 0x200006ce O 2 .bss + TK_Scan_Freq1 0x200006d0 O 4 .bss + sampling_data1 0x200006d4 O 34 .bss + TK_Slider1_Level 0x200006f6 O 1 .bss + TK_Slider1_Function 0x200006f7 O 1 .bss + base_update_fs 0x200006f8 O 3 .bss + TK_Slider0_Function 0x200006fb O 1 .bss + Tk_press_time_cnt3 0x200006fc O 4 .bss + TK_Scan_Freq2 0x20000700 O 4 .bss + Key_Map2 0x20000704 O 4 .bss + Release_debounce1 0x20000708 O 17 .bss + tk_overflow_f 0x20000719 O 1 .bss + time_cnt2 0x2000071c O 4 .bss + TK_Negtive_build2 0x20000720 O 17 .bss + base_update_f 0x20000731 O 1 .bss + TK_Postive_build1 0x20000732 O 17 .bss + offset_max_data 0x20000744 O 64 .bss + time_cnt 0x20000784 O 4 .bss + lpt_scan_pend_cnt 0x20000788 O 2 .bss + TK_track_cnt 0x2000078a O 1 .bss + Key_Map 0x2000078c O 4 .bss + Key_Map2_temp 0x20000790 O 4 .bss + offset2_max_tempB 0x20000794 O 2 .bss + baseline_data1 0x20000796 O 34 .bss + TK_Postive_build0 0x200007b8 O 17 .bss + sampling_data2 0x200007ca O 34 .bss + offset_data1 0x200007ec O 34 .bss + TK_ovrdect_cnt 0x2000080e O 1 .bss + TK_Slider0_Level 0x2000080f O 1 .bss + time_cnt1 0x20000810 O 4 .bss + Press_debounce2 0x20000814 O 17 .bss + Tk_press_time_cnt0 0x20000828 O 4 .bss + Key_Map0_temp 0x2000082c O 4 .bss + TK_Negtive_build1 0x20000830 O 17 .bss + coret_spread_step 0x20000841 O 1 .bss + time_cnts 0x20000842 O 3 .bss + offset0_max_tempA 0x20000846 O 2 .bss + tk_num 0x20000848 O 1 .bss + TK_Slider1_Seq 0x20000849 O 4 .bss + offset1_max_tempB 0x2000084e O 2 .bss + TK_Negtive_build0 0x20000850 O 17 .bss + R_Debounce_temp2 0x20000864 O 4 .bss + Tk_press_time_cnt1 0x20000868 O 4 .bss + Press_debounce1 0x2000086c O 17 .bss + TK_Wheel_Seq 0x2000087d O 4 .bss + TK_Slider0_Value 0x20000881 O 1 .bss + Release_debounce2 0x20000882 O 17 .bss + r_Key_Map_Temp 0x20000894 O 4 .bss + tk_seque 0x20000898 O 17 .bss + scan_step 0x200008a9 O 1 .bss + TK_Wheel_Level 0x200008aa O 1 .bss + baseline_data2 0x200008ac O 34 .bss + tk_sampling_max 0x200008ce O 34 .bss + Key_Map1_temp 0x200008f0 O 4 .bss + coret_spread_cnt 0x200008f4 O 2 .bss + offset_data0_abs 0x200008f6 O 34 .bss + offset_data2 0x20000918 O 34 .bss + TK_Wheel_Function 0x2000093a O 1 .bss + offset1_max_tempA 0x2000093c O 2 .bss + sampling_data0 0x2000093e O 34 .bss + TK_Scan_Freq0 0x20000960 O 4 .bss + _ebss 0x20000964 0 .bss + _end 0x20000964 0 .bss + end 0x20000964 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: 0x0000a5ac, 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 1261 .text pow.o + 0x00000b5e 0x00000006 Code RO 1269 .text fabs.o + 0x00000b64 0x00000020 Code RO 1275 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1282 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1293 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1298 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1303 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1308 .text _fixunsdfsi.o + 0x00000d80 0x0000033a Code RO 1315 .text _addsub_df.o + 0x000010ba 0x00000002 PAD + 0x000010bc 0x00000234 Code RO 1322 .text _mul_df.o + 0x000012f0 0x00000154 Code RO 1329 .text _div_df.o + 0x00001444 0x0000003c Code RO 1336 .text _gt_df.o + 0x00001480 0x0000003c Code RO 1343 .text _ge_df.o + 0x000014bc 0x0000003a Code RO 1350 .text _le_df.o + 0x000014f6 0x00000002 PAD + 0x000014f8 0x00000070 Code RO 1357 .text _si_to_df.o + 0x00001568 0x00000070 Code RO 1364 .text _df_to_si.o + 0x000015d8 0x00000054 Code RO 1378 .text _usi_to_df.o + 0x0000162c 0x00000044 Code RO 1385 .text _muldi3.o + 0x00001670 0x00000040 Code RO 1392 .text _clzsi2.o + 0x000016b0 0x0000019c Code RO 1398 .text _pack_df.o + 0x0000184c 0x000000c4 Code RO 1405 .text _unpack_df.o + 0x00001910 0x0000008c Code RO 1412 .text _fpcmp_parts_df.o + 0x0000199c 0x00000088 Code RO 1433 .text memset_fast.o + 0x00001a24 0x00000064 Code RO 1438 .text memcpy_fast.o + 0x00001a88 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001ac0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001b34 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001b80 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001bb0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c38 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c60 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001c9c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001cb0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cc8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001ce8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d04 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d20 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d60 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d94 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00001d98 0x00000010 Code RO 89 .text.EXI3_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001da8 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001db8 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001dc4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x00001dd0 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001df4 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e24 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f04 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f18 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f28 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002034 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00002130 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x0000219c 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000021a4 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000021ac 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000021c2 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000021d4 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x000021e8 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x000021f8 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002214 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x0000221c 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002226 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000223e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000226a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00002270 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00002284 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00002294 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x000022b4 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x00002314 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x00002324 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x00002374 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x0000238c 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000023a4 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000023bc 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000023d8 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x000023f4 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x000024e0 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x000024f0 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002500 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002520 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002548 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x000025ac 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x000025bc 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x000025dc 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00002608 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00002614 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x0000263c 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002650 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002668 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x0000267c 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x000026f8 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002890 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002a10 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002ab0 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002adc 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002c1c 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002c34 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c4c 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002c5c 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002c6c 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002c7c 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002c8c 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00002ce0 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002d0c 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002d30 0x0000008c Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x00002dbc 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002e1c 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002e80 0x00000098 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002f18 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003008 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003070 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x000030d8 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003284 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000032b8 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00003338 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000033a8 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x000033e4 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003420 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000034b4 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x0000359c 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x000035f0 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00003620 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00003650 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00003698 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003704 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003784 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x000037b8 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003804 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003874 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003876 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000387e 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00003886 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000388e 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00003896 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000389e 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000038a6 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000038ae 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000038b6 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000038be 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x000038c6 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x000038ce 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x000038d8 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x000038fc 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003920 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00003944 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003968 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x0000396e 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003974 0x00000120 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003a94 0x00000068 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003afc 0x000000c0 Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003bbc 0x000000c4 Code RO 843 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003c80 0x0000006c Code RO 844 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003cec 0x0000005c Code RO 845 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x00003d48 0x00000010 Code RO 846 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x00003d58 0x0000002c Code RO 847 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00003d84 0x00000040 Code RO 849 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00003dc4 0x00000058 Code RO 850 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00003e1c 0x0000000c Code RO 852 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003e28 0x00000002 Code RO 853 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003e2c 0x00000068 Code RO 870 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003e94 0x00000254 Code RO 872 .text.TouchKey_RS485_Printf_2 Obj/SYSTEM_touch_key.o + 0x000040e8 0x0000003c Code RO 875 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00004124 0x000000ac Code RO 877 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x000041d0 0x0000003c Code RO 878 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x0000420c 0x000000f0 Code RO 879 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x000042fc 0x00000018 Code RO 880 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00004314 0x00000070 Code RO 881 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00004384 0x000000b8 Code RO 882 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x0000443c 0x000000f8 Code RO 883 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00004534 0x00000038 Code RO 884 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x0000456c 0x000000b0 Code RO 885 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x0000461c 0x0000001a Code RO 886 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004638 0x000000d8 Code RO 887 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004710 0x00000016 Code RO 906 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004728 0x00000074 Code RO 907 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x0000479c 0x00000044 Code RO 908 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x000047e0 0x0000008c Code RO 910 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x0000486c 0x00000020 Code RO 911 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x0000488c 0x00000058 Code RO 912 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000048e4 0x0000006c Code RO 913 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004950 0x000000ac Code RO 914 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x000049fc 0x000000e4 Code RO 915 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x00004ae0 0x00000070 Code RO 916 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004b50 0x00000080 Code RO 917 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004bd0 0x0000005c Code RO 935 .text.ADC_Init Obj/SYSTEM_adc.o + 0x00004c2c 0x00000048 Code RO 936 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004c74 0x0000008c Code RO 937 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x00004d00 0x00000010 Code RO 938 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004d10 0x000000a8 Code RO 939 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x00004db8 0x000000a8 Code RO 940 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00004e60 0x000003ea Code RO 958 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x0000524c 0x000003ea Code RO 959 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x00005638 0x00000028 Code RO 960 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00005660 0x00000044 Code RO 982 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x000056a4 0x00000120 Code RO 984 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x000057c4 0x000000a8 Code RO 985 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x0000586c 0x0000005c Code RO 986 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x000058c8 0x00000024 Code RO 987 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x000058ec 0x00000070 Code RO 988 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x0000595c 0x00000064 Code RO 989 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x000059c0 0x00000058 Code RO 990 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x00005a18 0x00000048 Code RO 1007 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x00005a60 0x00000030 Code RO 1008 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005a90 0x000000b4 Code RO 1009 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00005b44 0x00000050 Code RO 1013 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00005b94 0x00000040 Code RO 1014 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00005bd4 0x0000004c Code RO 1015 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x00005c20 0x000000d0 Code RO 1016 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005cf0 0x000000d0 Code RO 1017 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005dc0 0x00000244 Code RO 1018 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00006004 0x000000d0 Code RO 1019 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x000060d4 0x000000a4 Code RO 1020 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00006178 0x00000048 Code RO 1021 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x000061c0 0x000000dc Code RO 1022 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x0000629c 0x00000030 Code RO 1023 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x000062cc 0x0000009c Code RO 1024 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00006368 0x00000064 Code RO 1025 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x000063cc 0x00000090 Code RO 1026 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x0000645c 0x0000017c Code RO 1046 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x000065d8 0x0000004c Code RO 1047 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006624 0x00000050 Code RO 1048 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006674 0x00000030 Code RO 1049 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x000066a4 0x00000030 Code RO 1050 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x000066d4 0x00000034 Code RO 1051 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006708 0x000000cc Code RO 1052 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000067d4 0x00000178 Code RO 1053 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x0000694c 0x000000e0 Code RO 1071 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006a2c 0x000000e0 Code RO 1072 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006b0c 0x00000110 Code RO 1073 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006c1c 0x00000078 Code RO 1074 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006c94 0x00000110 Code RO 1075 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006da4 0x00000078 Code RO 1076 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00006e1c 0x00000084 Code RO 1077 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006ea0 0x00000054 Code RO 1093 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00006ef4 0x00000020 Code RO 1094 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00006f14 0x000004dc Code RO 1095 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x000073f0 0x0000003c Code RO 1112 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x0000742c 0x00000098 Code RO 1113 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x000074c4 0x0000007c Code RO 1114 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00007540 0x00000028 Code RO 1131 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x00007568 0x00000028 Code RO 1132 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00007590 0x0000001c Code RO 1133 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x000075ac 0x0000001c Code RO 1134 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x000075c8 0x0000001c Code RO 1135 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x000075e4 0x0000001c Code RO 1136 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007600 0x00000014 Code RO 1137 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x00007614 0x000000c8 Code RO 1138 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x000076dc 0x00000098 Code RO 1139 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x00007774 0x0000004c Code RO 1156 .text.NetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000077c0 0x0000003c Code RO 1157 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x000077fc 0x00000016 Code RO 1158 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00007814 0x00000100 Code RO 1159 .text.Rs485_ASend Obj/USRCTRL_uart_protocol.o + 0x00007914 0x000000fc Code RO 1160 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00007a10 0x0000005c Code RO 1161 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x00007a6c 0x00000064 Code RO 1162 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00007ad0 0x00000018 Code RO 1163 .text.Rs485_DevPort_ACK Obj/USRCTRL_uart_protocol.o + 0x00007ae8 0x000001b0 Code RO 1164 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x00007c98 0x000000cc Code RO 1165 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x00007d64 0x00000010 Code RO 1191 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_f_1_18.o + 0x00007d74 0x00000028 Code RO 1194 .text.tk_clk_config FWlib_apt32f102_tkey_f_1_18.o + 0x00007d9c 0x000000bc Code RO 1195 .text.TK_con0_config FWlib_apt32f102_tkey_f_1_18.o + 0x00007e58 0x00000134 Code RO 1198 .text.tk_io_enable FWlib_apt32f102_tkey_f_1_18.o + 0x00007f8c 0x00000128 Code RO 1199 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x000080b4 0x000000cc Code RO 1200 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008180 0x00000028 Code RO 1204 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x000081a8 0x00000028 Code RO 1205 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000081d0 0x00000028 Code RO 1206 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x000081f8 0x00000028 Code RO 1207 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x00008220 0x00000150 Code RO 1208 .text.TK_Baseline_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008370 0x00000148 Code RO 1209 .text.TK_Baseline_prog2 FWlib_apt32f102_tkey_f_1_18.o + 0x000084b8 0x00000124 Code RO 1210 .text.tk_poweron_data_fineturn FWlib_apt32f102_tkey_f_1_18.o + 0x000085dc 0x00000068 Code RO 1211 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x00008644 0x00000870 Code RO 1212 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008eb4 0x00000128 Code RO 1213 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x00008fdc 0x000004d0 Code RO 1214 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x000094ac 0x00000130 Code RO 1215 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000095dc 0x00000038 Code RO 1216 .text.get_key_seq FWlib_apt32f102_tkey_f_1_18.o + 0x00009614 0x00000038 Code RO 1217 .text.CORET_CONFIG FWlib_apt32f102_tkey_f_1_18.o + 0x0000964c 0x0000001c Code RO 1218 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_f_1_18.o + 0x00009668 0x000000ac Code RO 1219 .text.tk_freq_para_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009714 0x00000028 Code RO 1220 .text.tk_reserved_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000973c 0x000000a0 Code RO 1221 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x000097dc 0x0000015c Code RO 1222 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00009938 0x00000110 Code RO 1223 .text.tk_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009a48 0x00000284 Code RO 1241 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00009ccc 0x00000035 Data RO 888 .rodata Obj/SYSTEM_touch_key.o + 0x00009d01 0x00000001 PAD + 0x00009d02 0x00000334 Data RO 941 .rodata Obj/SYSTEM_adc.o + 0x0000a036 0x0000000a Data RO 1028 .rodata Obj/SYSTEM_ht1621.o + 0x0000a040 0x00000030 Data RO 1264 .rodata pow.o + 0x0000a070 0x00000014 Data RO 1374 .rodata _thenan_df.o + 0x0000a084 0x00000100 Data RO 1422 .rodata _clz.o + 0x0000a184 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x0000a192 0x00000092 Data RO 889 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000a224 0x0000018d Data RO 918 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000a3b1 0x00000011 Data RO 991 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x0000a3c2 0x00000071 Data RO 1054 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000a433 0x0000007e Data RO 1078 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000a4b1 0x00000045 Data RO 1096 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x0000a4f6 0x00000087 Data RO 1115 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x0000a57d 0x0000002c Data RO 1166 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x0000a5a9 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000964, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000006 Data RW 868 .data Obj/SYSTEM_touch_key.o + 0x2000006e 0x00000002 PAD + 0x20000070 0x0000003d Data RW 1189 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000ad 0x00000003 PAD + 0x200000b0 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b8 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000c4 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x2000013c 0x00000004 Zero RW 934 .bss Obj/SYSTEM_adc.o + 0x20000140 0x000000f0 Zero RW 976 .bss Obj/SYSTEM_tm1812.o + 0x20000230 0x00000004 Zero RW 1045 .bss Obj/USRCTRL_tempctrl_unit.o + 0x20000234 0x00000001 Zero RW 1092 .bss Obj/USRCTRL_display_logic.o + 0x20000235 0x00000001 Zero RW 1190 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000236 0x00000002 PAD + 0x20000238 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002be 0x00000002 PAD + 0x200002c0 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002f0 0x000001b0 Zero RW 866 COMMON Obj/SYSTEM_uart.o + 0x200004a0 0x00000050 Zero RW 902 COMMON Obj/SYSTEM_touch_key.o + 0x200004f0 0x00000008 Zero RW 931 COMMON Obj/SYSTEM_eeprom.o + 0x200004f8 0x00000050 Zero RW 954 COMMON Obj/SYSTEM_adc.o + 0x20000548 0x0000001c Zero RW 973 COMMON Obj/SYSTEM_switch_fun.o + 0x20000564 0x00000040 Zero RW 1042 COMMON Obj/SYSTEM_ht1621.o + 0x200005a4 0x00000029 Zero RW 1067 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x200005cd 0x0000000e Zero RW 1127 COMMON Obj/USRCTRL_debug_unit.o + 0x200005db 0x00000001 PAD + 0x200005dc 0x0000000c Zero RW 1152 COMMON Obj/USRCTRL_myrelay.o + 0x200005e8 0x0000037c Zero RW 1237 COMMON FWlib_apt32f102_tkey_f_1_18.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 268 Obj/arch_crt0.o + 56 0 0 0 802 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 868 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 940 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9303 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 13693 Obj/main.o + 564 0 0 0 16487 Obj/mcu_initial.o + 2494 0 0 60 15957 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1206 0 0 552 16170 Obj/SYSTEM_uart.o + 2274 199 6 80 17313 Obj/SYSTEM_touch_key.o + 1214 397 0 8 14945 Obj/SYSTEM_eeprom.o + 656 820 0 84 13950 Obj/SYSTEM_adc.o + 2044 0 0 28 14276 Obj/SYSTEM_switch_fun.o + 952 17 0 240 15266 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17593 Obj/SYSTEM_ht1621.o + 1264 113 0 45 13020 Obj/USRCTRL_tempctrl_unit.o + 1364 126 0 0 12576 Obj/USRCTRL_key_logic.o + 1360 69 0 1 12309 Obj/USRCTRL_display_logic.o + 336 135 0 14 12033 Obj/USRCTRL_debug_unit.o + 564 0 0 12 13561 Obj/USRCTRL_myrelay.o + 1518 44 0 0 14502 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 25714 1944 110 1330 421059 Object Totals + 6 4 5 5 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 7396 0 61 893 20058 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 7396 0 61 893 20058 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + 40110 2272 176 2228 449792 Grand Totals + 40110 2272 176 2228 449792 Elf Image Totals + 40110 2272 176 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 42382 ( 41.39kB) +Total RW Size (RW Data + ZI Data) 2404 ( 2.35kB) +Total ROM Size (Code + RO Data + RW Data) 42558 ( 41.56kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V03_20250422.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V03_20250422.asm new file mode 100644 index 0000000..40d544a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V03_20250422.asm @@ -0,0 +1,27088 @@ + +.//Obj/T1_TC_34650_V03_20250422.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 000060fa .long 0x000060fa + 2808: 000060ea .long 0x000060ea + 280c: 00002984 .long 0x00002984 + 2810: 000060f2 .long 0x000060f2 + 2814: 000060b0 .long 0x000060b0 + 2818: 00002984 .long 0x00002984 + 281c: 000060e2 .long 0x000060e2 + 2820: 000060da .long 0x000060da + 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: 000060d2 .long 0x000060d2 + 2844: 000060ca .long 0x000060ca + 2848: 000060c2 .long 0x000060c2 + 284c: 000060ba .long 0x000060ba + 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: 000060b2 .long 0x000060b2 + 2880: 0000c3ec .long 0x0000c3ec + 2884: 00005754 .long 0x00005754 + 2888: 00005844 .long 0x00005844 + 288c: 000058ac .long 0x000058ac + 2890: 00005914 .long 0x00005914 + 2894: 00002984 .long 0x00002984 + 2898: 00005ac0 .long 0x00005ac0 + 289c: 00005e2c .long 0x00005e2c + 28a0: 00005e5c .long 0x00005e5c + 28a4: 00005af4 .long 0x00005af4 + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00005b74 .long 0x00005b74 + 28b4: 00005be4 .long 0x00005be4 + 28b8: 00005c20 .long 0x00005c20 + 28bc: 00005c5c .long 0x00005c5c + 28c0: 00002984 .long 0x00002984 + 28c4: 0000610a .long 0x0000610a + 28c8: 00002984 .long 0x00002984 + 28cc: 00005cf0 .long 0x00005cf0 + 28d0: 00005dd8 .long 0x00005dd8 + 28d4: 00005e8c .long 0x00005e8c + 28d8: 00005ed4 .long 0x00005ed4 + 28dc: 00005f40 .long 0x00005f40 + 28e0: 00006102 .long 0x00006102 + 28e4: 0000c34c .long 0x0000c34c + 28e8: 00005fc0 .long 0x00005fc0 + 28ec: 00002984 .long 0x00002984 + 28f0: 00005ff4 .long 0x00005ff4 + 28f4: 00006040 .long 0x00006040 + 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, 0x42b0 // 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, 0x54c8 // 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: 000042b0 .long 0x000042b0 + 2998: 00002960 .long 0x00002960 + 299c: 000054c8 .long 0x000054c8 + 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: e000072f bsr 0x3854 // 3854 <__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: e0000715 bsr 0x3884 // 3884 <__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: e000082a bsr 0x3af0 // 3af0 <__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: e00006ec bsr 0x38bc // 38bc <__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: e00007e0 bsr 0x3af0 // 3af0 <__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: e000069b bsr 0x3884 // 3884 <__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: e0000666 bsr 0x3884 // 3884 <__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: e000067c bsr 0x38bc // 38bc <__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: e0000674 bsr 0x38bc // 38bc <__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: e000066c bsr 0x38bc // 38bc <__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: e000064a bsr 0x3884 // 3884 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e0000662 bsr 0x38bc // 38bc <__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: e0000640 bsr 0x3884 // 3884 <__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: e0000654 bsr 0x38bc // 38bc <__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: e000064e bsr 0x38bc // 38bc <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e000064a bsr 0x38bc // 38bc <__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: e0000628 bsr 0x3884 // 3884 <__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: e0000608 bsr 0x3854 // 3854 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000061a bsr 0x3884 // 3884 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000614 bsr 0x3884 // 3884 <__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: e0000603 bsr 0x3884 // 3884 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000061b bsr 0x38bc // 38bc <__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: e0000613 bsr 0x38bc // 38bc <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e00005d9 bsr 0x3854 // 3854 <__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: e0000605 bsr 0x38bc // 38bc <__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: e00005c7 bsr 0x3854 // 3854 <__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: e00005e7 bsr 0x38bc // 38bc <__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: e00005dc bsr 0x38bc // 38bc <__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, 0xcc50 // 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: e000059a bsr 0x3884 // 3884 <__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: e000057a bsr 0x3854 // 3854 <__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: e00006c2 bsr 0x3af0 // 3af0 <__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: 0000cc50 .long 0x0000cc50 + 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: e000056a bsr 0x38bc // 38bc <__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: e000055b bsr 0x38bc // 38bc <__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: e0000539 bsr 0x3884 // 3884 <__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: e0000531 bsr 0x3884 // 3884 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000052b bsr 0x3884 // 3884 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e0000543 bsr 0x38bc // 38bc <__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: e0000521 bsr 0x3884 // 3884 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e0000539 bsr 0x38bc // 38bc <__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: e0000531 bsr 0x38bc // 38bc <__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: e0000529 bsr 0x38bc // 38bc <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e00004ef bsr 0x3854 // 3854 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000051f bsr 0x38bc // 38bc <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e00004e5 bsr 0x3854 // 3854 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000515 bsr 0x38bc // 38bc <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e00004db bsr 0x3854 // 3854 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000050b bsr 0x38bc // 38bc <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e00004d1 bsr 0x3854 // 3854 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000501 bsr 0x38bc // 38bc <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e00004c7 bsr 0x3854 // 3854 <__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: e00004f3 bsr 0x38bc // 38bc <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e00004ed bsr 0x38bc // 38bc <__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: e00004b1 bsr 0x3854 // 3854 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e00004e1 bsr 0x38bc // 38bc <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e00004a9 bsr 0x3854 // 3854 <__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: e00004d5 bsr 0x38bc // 38bc <__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: e000049b bsr 0x3854 // 3854 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000497 bsr 0x3854 // 3854 <__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: e00004c4 bsr 0x38bc // 38bc <__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: e00004a0 bsr 0x3884 // 3884 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000049c bsr 0x3884 // 3884 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000496 bsr 0x3884 // 3884 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e00004ae bsr 0x38bc // 38bc <__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: e00004a6 bsr 0x38bc // 38bc <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e000046c bsr 0x3854 // 3854 <__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: e0000464 bsr 0x3854 // 3854 <__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: e0000491 bsr 0x38bc // 38bc <__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: e000046d bsr 0x3884 // 3884 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e0000467 bsr 0x3884 // 3884 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e000047f bsr 0x38bc // 38bc <__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: e0000477 bsr 0x38bc // 38bc <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e000043d bsr 0x3854 // 3854 <__adddf3> + 2fde: 01db lrw r6, 0xcc50 // 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: e0000436 bsr 0x3854 // 3854 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e0000683 bsr 0x3cf8 // 3cf8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xcc50 // 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: e0000423 bsr 0x3854 // 3854 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000041f bsr 0x3854 // 3854 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000041b bsr 0x3854 // 3854 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000042d bsr 0x3884 // 3884 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000429 bsr 0x3884 // 3884 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000425 bsr 0x3884 // 3884 <__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: e00003fc bsr 0x3854 // 3854 <__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: e000040c bsr 0x3884 // 3884 <__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: e00005e6 bsr 0x3c44 // 3c44 <__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: e00003dc bsr 0x3884 // 3884 <__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: e00003bc bsr 0x3854 // 3854 <__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: e00003ea bsr 0x38bc // 38bc <__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: e00003c6 bsr 0x3884 // 3884 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e00003c0 bsr 0x3884 // 3884 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e00003d8 bsr 0x38bc // 38bc <__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: e00003d0 bsr 0x38bc // 38bc <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000396 bsr 0x3854 // 3854 <__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: e000038e bsr 0x3854 // 3854 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e00003a0 bsr 0x3884 // 3884 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000039a bsr 0x3884 // 3884 <__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: e00003ae bsr 0x38bc // 38bc <__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: e00003a8 bsr 0x38bc // 38bc <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e0000388 bsr 0x3884 // 3884 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e00003a0 bsr 0x38bc // 38bc <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e0000368 bsr 0x3854 // 3854 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000398 bsr 0x38bc // 38bc <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e0000378 bsr 0x3884 // 3884 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000390 bsr 0x38bc // 38bc <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e0000358 bsr 0x3854 // 3854 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e0000388 bsr 0x38bc // 38bc <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e0000366 bsr 0x3884 // 3884 <__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: e000037a bsr 0x38bc // 38bc <__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: e0000355 bsr 0x3884 // 3884 <__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: e0000485 bsr 0x3af0 // 3af0 <__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: e0000363 bsr 0x38bc // 38bc <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000032b bsr 0x3854 // 3854 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e000033d bsr 0x3884 // 3884 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e0000339 bsr 0x3884 // 3884 <__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: e0000333 bsr 0x3884 // 3884 <__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: e0000331 bsr 0x38bc // 38bc <__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: e000030b bsr 0x3884 // 3884 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000521 bsr 0x3cbc // 3cbc <__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: 0000cc50 .long 0x0000cc50 + 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: e000028f bsr 0x38bc // 38bc <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e0000255 bsr 0x3854 // 3854 <__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: e0000258 bsr 0x3884 // 3884 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e000038a bsr 0x3af0 // 3af0 <__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_shi>: + 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: 7447 sexth r1, r1 + 3520: 4121 lsli r1, r1, 1 + 3522: 63c4 addu r15, r1 + 3524: 9801 ld.w r0, (r14, 0x4) + 3526: 9820 ld.w r1, (r14, 0x0) + 3528: 1402 addi r14, r14, 8 + 352a: 783c jmp r15 + +0000352c <___gnu_csky_case_uhi>: + 352c: 1422 subi r14, r14, 8 + 352e: b801 st.w r0, (r14, 0x4) + 3530: b820 st.w r1, (r14, 0x0) + 3532: 6c7f mov r1, r15 + 3534: 4001 lsli r0, r0, 1 + 3536: 6040 addu r1, r0 + 3538: 8920 ld.h r1, (r1, 0x0) + 353a: 4121 lsli r1, r1, 1 + 353c: 63c4 addu r15, r1 + 353e: 9801 ld.w r0, (r14, 0x4) + 3540: 9820 ld.w r1, (r14, 0x0) + 3542: 1402 addi r14, r14, 8 + 3544: 783c jmp r15 + ... + +00003548 <__fixunsdfsi>: + 3548: 14d2 push r4-r5, r15 + 354a: 3200 movi r2, 0 + 354c: 106c lrw r3, 0x41e00000 // 357c <__fixunsdfsi+0x34> + 354e: 6d43 mov r5, r0 + 3550: 6d07 mov r4, r1 + 3552: e0000397 bsr 0x3c80 // 3c80 <__gedf2> + 3556: 38df btsti r0, 31 + 3558: 0c06 bf 0x3564 // 3564 <__fixunsdfsi+0x1c> + 355a: 6c17 mov r0, r5 + 355c: 6c53 mov r1, r4 + 355e: e0000405 bsr 0x3d68 // 3d68 <__fixdfsi> + 3562: 1492 pop r4-r5, r15 + 3564: 3200 movi r2, 0 + 3566: 1066 lrw r3, 0x41e00000 // 357c <__fixunsdfsi+0x34> + 3568: 6c17 mov r0, r5 + 356a: 6c53 mov r1, r4 + 356c: e000018c bsr 0x3884 // 3884 <__subdf3> + 3570: e00003fc bsr 0x3d68 // 3d68 <__fixdfsi> + 3574: 3380 movi r3, 128 + 3576: 4378 lsli r3, r3, 24 + 3578: 600c addu r0, r3 + 357a: 1492 pop r4-r5, r15 + 357c: 41e00000 .long 0x41e00000 + +00003580 <_fpadd_parts>: + 3580: 14c4 push r4-r7 + 3582: 142a subi r14, r14, 40 + 3584: 9060 ld.w r3, (r0, 0x0) + 3586: 3b01 cmphsi r3, 2 + 3588: 6dcb mov r7, r2 + 358a: 0c67 bf 0x3658 // 3658 <_fpadd_parts+0xd8> + 358c: 9140 ld.w r2, (r1, 0x0) + 358e: 3a01 cmphsi r2, 2 + 3590: 0c66 bf 0x365c // 365c <_fpadd_parts+0xdc> + 3592: 3b44 cmpnei r3, 4 + 3594: 0cde bf 0x3750 // 3750 <_fpadd_parts+0x1d0> + 3596: 3a44 cmpnei r2, 4 + 3598: 0c62 bf 0x365c // 365c <_fpadd_parts+0xdc> + 359a: 3a42 cmpnei r2, 2 + 359c: 0cb7 bf 0x370a // 370a <_fpadd_parts+0x18a> + 359e: 3b42 cmpnei r3, 2 + 35a0: 0c5e bf 0x365c // 365c <_fpadd_parts+0xdc> + 35a2: 9043 ld.w r2, (r0, 0xc) + 35a4: 9064 ld.w r3, (r0, 0x10) + 35a6: 9082 ld.w r4, (r0, 0x8) + 35a8: 91a2 ld.w r5, (r1, 0x8) + 35aa: b842 st.w r2, (r14, 0x8) + 35ac: b863 st.w r3, (r14, 0xc) + 35ae: 9143 ld.w r2, (r1, 0xc) + 35b0: 9164 ld.w r3, (r1, 0x10) + 35b2: b840 st.w r2, (r14, 0x0) + 35b4: b861 st.w r3, (r14, 0x4) + 35b6: 5c75 subu r3, r4, r5 + 35b8: 3bdf btsti r3, 31 + 35ba: 6c8f mov r2, r3 + 35bc: 08d2 bt 0x3760 // 3760 <_fpadd_parts+0x1e0> + 35be: 363f movi r6, 63 + 35c0: 6499 cmplt r6, r2 + 35c2: 0c50 bf 0x3662 // 3662 <_fpadd_parts+0xe2> + 35c4: 6515 cmplt r5, r4 + 35c6: 0cbf bf 0x3744 // 3744 <_fpadd_parts+0x1c4> + 35c8: 3200 movi r2, 0 + 35ca: 3300 movi r3, 0 + 35cc: b840 st.w r2, (r14, 0x0) + 35ce: b861 st.w r3, (r14, 0x4) + 35d0: 9061 ld.w r3, (r0, 0x4) + 35d2: 9141 ld.w r2, (r1, 0x4) + 35d4: 648e cmpne r3, r2 + 35d6: 0c78 bf 0x36c6 // 36c6 <_fpadd_parts+0x146> + 35d8: 3b40 cmpnei r3, 0 + 35da: 0cad bf 0x3734 // 3734 <_fpadd_parts+0x1b4> + 35dc: 9800 ld.w r0, (r14, 0x0) + 35de: 9821 ld.w r1, (r14, 0x4) + 35e0: 9842 ld.w r2, (r14, 0x8) + 35e2: 9863 ld.w r3, (r14, 0xc) + 35e4: 6400 cmphs r0, r0 + 35e6: 600b subc r0, r2 + 35e8: 604f subc r1, r3 + 35ea: 39df btsti r1, 31 + 35ec: 08bd bt 0x3766 // 3766 <_fpadd_parts+0x1e6> + 35ee: 3300 movi r3, 0 + 35f0: b761 st.w r3, (r7, 0x4) + 35f2: b782 st.w r4, (r7, 0x8) + 35f4: 6c83 mov r2, r0 + 35f6: 6cc7 mov r3, r1 + 35f8: b703 st.w r0, (r7, 0xc) + 35fa: b724 st.w r1, (r7, 0x10) + 35fc: 3000 movi r0, 0 + 35fe: 3100 movi r1, 0 + 3600: 2800 subi r0, 1 + 3602: 2900 subi r1, 1 + 3604: 6401 cmplt r0, r0 + 3606: 6009 addc r0, r2 + 3608: 604d addc r1, r3 + 360a: 038f lrw r4, 0xfffffff // 3848 <_fpadd_parts+0x2c8> + 360c: 6450 cmphs r4, r1 + 360e: 0c67 bf 0x36dc // 36dc <_fpadd_parts+0x15c> + 3610: 6506 cmpne r1, r4 + 3612: 0cfd bf 0x380c // 380c <_fpadd_parts+0x28c> + 3614: 3000 movi r0, 0 + 3616: 9722 ld.w r1, (r7, 0x8) + 3618: 2801 subi r0, 2 + 361a: 2900 subi r1, 1 + 361c: 03d4 lrw r6, 0xfffffff // 3848 <_fpadd_parts+0x2c8> + 361e: b802 st.w r0, (r14, 0x8) + 3620: b8e0 st.w r7, (r14, 0x0) + 3622: 0403 br 0x3628 // 3628 <_fpadd_parts+0xa8> + 3624: 6596 cmpne r5, r6 + 3626: 0c83 bf 0x372c // 372c <_fpadd_parts+0x1ac> + 3628: 4301 lsli r0, r3, 1 + 362a: 4a9f lsri r4, r2, 31 + 362c: 6d00 or r4, r0 + 362e: 42a1 lsli r5, r2, 1 + 3630: 6c97 mov r2, r5 + 3632: 6cd3 mov r3, r4 + 3634: 3500 movi r5, 0 + 3636: 3400 movi r4, 0 + 3638: 2c00 subi r4, 1 + 363a: 2d00 subi r5, 1 + 363c: 6511 cmplt r4, r4 + 363e: 6109 addc r4, r2 + 3640: 614d addc r5, r3 + 3642: 6558 cmphs r6, r5 + 3644: 6c07 mov r0, r1 + 3646: 2900 subi r1, 1 + 3648: 0bee bt 0x3624 // 3624 <_fpadd_parts+0xa4> + 364a: 98e0 ld.w r7, (r14, 0x0) + 364c: b743 st.w r2, (r7, 0xc) + 364e: b764 st.w r3, (r7, 0x10) + 3650: 3303 movi r3, 3 + 3652: b702 st.w r0, (r7, 0x8) + 3654: b760 st.w r3, (r7, 0x0) + 3656: 6c1f mov r0, r7 + 3658: 140a addi r14, r14, 40 + 365a: 1484 pop r4-r7 + 365c: 6c07 mov r0, r1 + 365e: 140a addi r14, r14, 40 + 3660: 1484 pop r4-r7 + 3662: 3b20 cmplti r3, 1 + 3664: 088c bt 0x377c // 377c <_fpadd_parts+0x1fc> + 3666: 3300 movi r3, 0 + 3668: 2b1f subi r3, 32 + 366a: 60c8 addu r3, r2 + 366c: 3bdf btsti r3, 31 + 366e: b866 st.w r3, (r14, 0x18) + 3670: 08bb bt 0x37e6 // 37e6 <_fpadd_parts+0x266> + 3672: 98a1 ld.w r5, (r14, 0x4) + 3674: 714d lsr r5, r3 + 3676: b8a4 st.w r5, (r14, 0x10) + 3678: 3500 movi r5, 0 + 367a: b8a5 st.w r5, (r14, 0x14) + 367c: 9866 ld.w r3, (r14, 0x18) + 367e: 3bdf btsti r3, 31 + 3680: 3500 movi r5, 0 + 3682: 3600 movi r6, 0 + 3684: 08ad bt 0x37de // 37de <_fpadd_parts+0x25e> + 3686: 3201 movi r2, 1 + 3688: 708c lsl r2, r3 + 368a: 6d8b mov r6, r2 + 368c: 3200 movi r2, 0 + 368e: 3300 movi r3, 0 + 3690: 2a00 subi r2, 1 + 3692: 2b00 subi r3, 1 + 3694: 6489 cmplt r2, r2 + 3696: 6095 addc r2, r5 + 3698: 60d9 addc r3, r6 + 369a: 98a0 ld.w r5, (r14, 0x0) + 369c: 98c1 ld.w r6, (r14, 0x4) + 369e: 6948 and r5, r2 + 36a0: 698c and r6, r3 + 36a2: 6c97 mov r2, r5 + 36a4: 6cdb mov r3, r6 + 36a6: 6c8c or r2, r3 + 36a8: 3a40 cmpnei r2, 0 + 36aa: 3500 movi r5, 0 + 36ac: 6155 addc r5, r5 + 36ae: 6c97 mov r2, r5 + 36b0: 3300 movi r3, 0 + 36b2: 98a4 ld.w r5, (r14, 0x10) + 36b4: 98c5 ld.w r6, (r14, 0x14) + 36b6: 6d48 or r5, r2 + 36b8: 6d8c or r6, r3 + 36ba: 9061 ld.w r3, (r0, 0x4) + 36bc: 9141 ld.w r2, (r1, 0x4) + 36be: 648e cmpne r3, r2 + 36c0: b8a0 st.w r5, (r14, 0x0) + 36c2: b8c1 st.w r6, (r14, 0x4) + 36c4: 0b8a bt 0x35d8 // 35d8 <_fpadd_parts+0x58> + 36c6: b761 st.w r3, (r7, 0x4) + 36c8: 9800 ld.w r0, (r14, 0x0) + 36ca: 9821 ld.w r1, (r14, 0x4) + 36cc: 9842 ld.w r2, (r14, 0x8) + 36ce: 9863 ld.w r3, (r14, 0xc) + 36d0: 6489 cmplt r2, r2 + 36d2: 6081 addc r2, r0 + 36d4: 60c5 addc r3, r1 + 36d6: b782 st.w r4, (r7, 0x8) + 36d8: b743 st.w r2, (r7, 0xc) + 36da: b764 st.w r3, (r7, 0x10) + 36dc: 3103 movi r1, 3 + 36de: b720 st.w r1, (r7, 0x0) + 36e0: 123b lrw r1, 0x1fffffff // 384c <_fpadd_parts+0x2cc> + 36e2: 64c4 cmphs r1, r3 + 36e4: 0810 bt 0x3704 // 3704 <_fpadd_parts+0x184> + 36e6: 439f lsli r4, r3, 31 + 36e8: 4a01 lsri r0, r2, 1 + 36ea: 6c10 or r0, r4 + 36ec: 3500 movi r5, 0 + 36ee: 3401 movi r4, 1 + 36f0: 4b21 lsri r1, r3, 1 + 36f2: 6890 and r2, r4 + 36f4: 68d4 and r3, r5 + 36f6: 6c80 or r2, r0 + 36f8: 6cc4 or r3, r1 + 36fa: b743 st.w r2, (r7, 0xc) + 36fc: b764 st.w r3, (r7, 0x10) + 36fe: 9762 ld.w r3, (r7, 0x8) + 3700: 2300 addi r3, 1 + 3702: b762 st.w r3, (r7, 0x8) + 3704: 6c1f mov r0, r7 + 3706: 140a addi r14, r14, 40 + 3708: 1484 pop r4-r7 + 370a: 3b42 cmpnei r3, 2 + 370c: 0ba6 bt 0x3658 // 3658 <_fpadd_parts+0xd8> + 370e: b760 st.w r3, (r7, 0x0) + 3710: 9061 ld.w r3, (r0, 0x4) + 3712: b761 st.w r3, (r7, 0x4) + 3714: 9062 ld.w r3, (r0, 0x8) + 3716: b762 st.w r3, (r7, 0x8) + 3718: 9063 ld.w r3, (r0, 0xc) + 371a: b763 st.w r3, (r7, 0xc) + 371c: 9064 ld.w r3, (r0, 0x10) + 371e: 9141 ld.w r2, (r1, 0x4) + 3720: b764 st.w r3, (r7, 0x10) + 3722: 9061 ld.w r3, (r0, 0x4) + 3724: 68c8 and r3, r2 + 3726: b761 st.w r3, (r7, 0x4) + 3728: 6c1f mov r0, r7 + 372a: 0797 br 0x3658 // 3658 <_fpadd_parts+0xd8> + 372c: 98e2 ld.w r7, (r14, 0x8) + 372e: 651c cmphs r7, r4 + 3730: 0b7c bt 0x3628 // 3628 <_fpadd_parts+0xa8> + 3732: 078c br 0x364a // 364a <_fpadd_parts+0xca> + 3734: 9802 ld.w r0, (r14, 0x8) + 3736: 9823 ld.w r1, (r14, 0xc) + 3738: 9840 ld.w r2, (r14, 0x0) + 373a: 9861 ld.w r3, (r14, 0x4) + 373c: 6400 cmphs r0, r0 + 373e: 600b subc r0, r2 + 3740: 604f subc r1, r3 + 3742: 0754 br 0x35ea // 35ea <_fpadd_parts+0x6a> + 3744: 3200 movi r2, 0 + 3746: 3300 movi r3, 0 + 3748: 6d17 mov r4, r5 + 374a: b842 st.w r2, (r14, 0x8) + 374c: b863 st.w r3, (r14, 0xc) + 374e: 0741 br 0x35d0 // 35d0 <_fpadd_parts+0x50> + 3750: 3a44 cmpnei r2, 4 + 3752: 0b83 bt 0x3658 // 3658 <_fpadd_parts+0xd8> + 3754: 9041 ld.w r2, (r0, 0x4) + 3756: 9161 ld.w r3, (r1, 0x4) + 3758: 64ca cmpne r2, r3 + 375a: 0f7f bf 0x3658 // 3658 <_fpadd_parts+0xd8> + 375c: 111d lrw r0, 0xcc80 // 3850 <_fpadd_parts+0x2d0> + 375e: 077d br 0x3658 // 3658 <_fpadd_parts+0xd8> + 3760: 3200 movi r2, 0 + 3762: 608e subu r2, r3 + 3764: 072d br 0x35be // 35be <_fpadd_parts+0x3e> + 3766: 3301 movi r3, 1 + 3768: b761 st.w r3, (r7, 0x4) + 376a: 3200 movi r2, 0 + 376c: 3300 movi r3, 0 + 376e: 6488 cmphs r2, r2 + 3770: 6083 subc r2, r0 + 3772: 60c7 subc r3, r1 + 3774: b782 st.w r4, (r7, 0x8) + 3776: b743 st.w r2, (r7, 0xc) + 3778: b764 st.w r3, (r7, 0x10) + 377a: 0741 br 0x35fc // 35fc <_fpadd_parts+0x7c> + 377c: 3b40 cmpnei r3, 0 + 377e: 0f29 bf 0x35d0 // 35d0 <_fpadd_parts+0x50> + 3780: 3300 movi r3, 0 + 3782: 2b1f subi r3, 32 + 3784: 60c8 addu r3, r2 + 3786: 3bdf btsti r3, 31 + 3788: 6108 addu r4, r2 + 378a: b866 st.w r3, (r14, 0x18) + 378c: 0849 bt 0x381e // 381e <_fpadd_parts+0x29e> + 378e: 9863 ld.w r3, (r14, 0xc) + 3790: 98a6 ld.w r5, (r14, 0x18) + 3792: 70d5 lsr r3, r5 + 3794: b864 st.w r3, (r14, 0x10) + 3796: 3300 movi r3, 0 + 3798: b865 st.w r3, (r14, 0x14) + 379a: 9866 ld.w r3, (r14, 0x18) + 379c: 3bdf btsti r3, 31 + 379e: 3500 movi r5, 0 + 37a0: 3600 movi r6, 0 + 37a2: 083a bt 0x3816 // 3816 <_fpadd_parts+0x296> + 37a4: 3201 movi r2, 1 + 37a6: 708c lsl r2, r3 + 37a8: 6d8b mov r6, r2 + 37aa: 3200 movi r2, 0 + 37ac: 3300 movi r3, 0 + 37ae: 2a00 subi r2, 1 + 37b0: 2b00 subi r3, 1 + 37b2: 6489 cmplt r2, r2 + 37b4: 6095 addc r2, r5 + 37b6: 60d9 addc r3, r6 + 37b8: 98a2 ld.w r5, (r14, 0x8) + 37ba: 98c3 ld.w r6, (r14, 0xc) + 37bc: 6948 and r5, r2 + 37be: 698c and r6, r3 + 37c0: 6c97 mov r2, r5 + 37c2: 6cdb mov r3, r6 + 37c4: 6c8c or r2, r3 + 37c6: 3a40 cmpnei r2, 0 + 37c8: 3500 movi r5, 0 + 37ca: 6155 addc r5, r5 + 37cc: 6c97 mov r2, r5 + 37ce: 3300 movi r3, 0 + 37d0: 98a4 ld.w r5, (r14, 0x10) + 37d2: 98c5 ld.w r6, (r14, 0x14) + 37d4: 6d48 or r5, r2 + 37d6: 6d8c or r6, r3 + 37d8: b8a2 st.w r5, (r14, 0x8) + 37da: b8c3 st.w r6, (r14, 0xc) + 37dc: 06fa br 0x35d0 // 35d0 <_fpadd_parts+0x50> + 37de: 3301 movi r3, 1 + 37e0: 70c8 lsl r3, r2 + 37e2: 6d4f mov r5, r3 + 37e4: 0754 br 0x368c // 368c <_fpadd_parts+0x10c> + 37e6: 9861 ld.w r3, (r14, 0x4) + 37e8: 361f movi r6, 31 + 37ea: 43a1 lsli r5, r3, 1 + 37ec: 618a subu r6, r2 + 37ee: 7158 lsl r5, r6 + 37f0: b8a9 st.w r5, (r14, 0x24) + 37f2: 98a0 ld.w r5, (r14, 0x0) + 37f4: 98c1 ld.w r6, (r14, 0x4) + 37f6: b8a7 st.w r5, (r14, 0x1c) + 37f8: b8c8 st.w r6, (r14, 0x20) + 37fa: 9867 ld.w r3, (r14, 0x1c) + 37fc: 70c9 lsr r3, r2 + 37fe: 98a9 ld.w r5, (r14, 0x24) + 3800: 6cd4 or r3, r5 + 3802: b864 st.w r3, (r14, 0x10) + 3804: 9868 ld.w r3, (r14, 0x20) + 3806: 70c9 lsr r3, r2 + 3808: b865 st.w r3, (r14, 0x14) + 380a: 0739 br 0x367c // 367c <_fpadd_parts+0xfc> + 380c: 3100 movi r1, 0 + 380e: 2901 subi r1, 2 + 3810: 6404 cmphs r1, r0 + 3812: 0b01 bt 0x3614 // 3614 <_fpadd_parts+0x94> + 3814: 0764 br 0x36dc // 36dc <_fpadd_parts+0x15c> + 3816: 3301 movi r3, 1 + 3818: 70c8 lsl r3, r2 + 381a: 6d4f mov r5, r3 + 381c: 07c7 br 0x37aa // 37aa <_fpadd_parts+0x22a> + 381e: 9863 ld.w r3, (r14, 0xc) + 3820: 43c1 lsli r6, r3, 1 + 3822: 351f movi r5, 31 + 3824: 5d69 subu r3, r5, r2 + 3826: 6d5b mov r5, r6 + 3828: 714c lsl r5, r3 + 382a: b8a9 st.w r5, (r14, 0x24) + 382c: 98a2 ld.w r5, (r14, 0x8) + 382e: 98c3 ld.w r6, (r14, 0xc) + 3830: b8a7 st.w r5, (r14, 0x1c) + 3832: b8c8 st.w r6, (r14, 0x20) + 3834: 9867 ld.w r3, (r14, 0x1c) + 3836: 70c9 lsr r3, r2 + 3838: 98a9 ld.w r5, (r14, 0x24) + 383a: 6cd4 or r3, r5 + 383c: b864 st.w r3, (r14, 0x10) + 383e: 9868 ld.w r3, (r14, 0x20) + 3840: 70c9 lsr r3, r2 + 3842: b865 st.w r3, (r14, 0x14) + 3844: 07ab br 0x379a // 379a <_fpadd_parts+0x21a> + 3846: 0000 bkpt + 3848: 0fffffff .long 0x0fffffff + 384c: 1fffffff .long 0x1fffffff + 3850: 0000cc80 .long 0x0000cc80 + +00003854 <__adddf3>: + 3854: 14d0 push r15 + 3856: 1433 subi r14, r14, 76 + 3858: b800 st.w r0, (r14, 0x0) + 385a: b821 st.w r1, (r14, 0x4) + 385c: 6c3b mov r0, r14 + 385e: 1904 addi r1, r14, 16 + 3860: b863 st.w r3, (r14, 0xc) + 3862: b842 st.w r2, (r14, 0x8) + 3864: e00003f4 bsr 0x404c // 404c <__unpack_d> + 3868: 1909 addi r1, r14, 36 + 386a: 1802 addi r0, r14, 8 + 386c: e00003f0 bsr 0x404c // 404c <__unpack_d> + 3870: 1a0e addi r2, r14, 56 + 3872: 1909 addi r1, r14, 36 + 3874: 1804 addi r0, r14, 16 + 3876: e3fffe85 bsr 0x3580 // 3580 <_fpadd_parts> + 387a: e000031b bsr 0x3eb0 // 3eb0 <__pack_d> + 387e: 1413 addi r14, r14, 76 + 3880: 1490 pop r15 + ... + +00003884 <__subdf3>: + 3884: 14d0 push r15 + 3886: 1433 subi r14, r14, 76 + 3888: b800 st.w r0, (r14, 0x0) + 388a: b821 st.w r1, (r14, 0x4) + 388c: 6c3b mov r0, r14 + 388e: 1904 addi r1, r14, 16 + 3890: b842 st.w r2, (r14, 0x8) + 3892: b863 st.w r3, (r14, 0xc) + 3894: e00003dc bsr 0x404c // 404c <__unpack_d> + 3898: 1909 addi r1, r14, 36 + 389a: 1802 addi r0, r14, 8 + 389c: e00003d8 bsr 0x404c // 404c <__unpack_d> + 38a0: 986a ld.w r3, (r14, 0x28) + 38a2: 3201 movi r2, 1 + 38a4: 6cc9 xor r3, r2 + 38a6: 1909 addi r1, r14, 36 + 38a8: 1a0e addi r2, r14, 56 + 38aa: 1804 addi r0, r14, 16 + 38ac: b86a st.w r3, (r14, 0x28) + 38ae: e3fffe69 bsr 0x3580 // 3580 <_fpadd_parts> + 38b2: e00002ff bsr 0x3eb0 // 3eb0 <__pack_d> + 38b6: 1413 addi r14, r14, 76 + 38b8: 1490 pop r15 + ... + +000038bc <__muldf3>: + 38bc: 14d4 push r4-r7, r15 + 38be: 143b subi r14, r14, 108 + 38c0: b808 st.w r0, (r14, 0x20) + 38c2: b829 st.w r1, (r14, 0x24) + 38c4: 1808 addi r0, r14, 32 + 38c6: 190c addi r1, r14, 48 + 38c8: b86b st.w r3, (r14, 0x2c) + 38ca: b84a st.w r2, (r14, 0x28) + 38cc: e00003c0 bsr 0x404c // 404c <__unpack_d> + 38d0: 1911 addi r1, r14, 68 + 38d2: 180a addi r0, r14, 40 + 38d4: e00003bc bsr 0x404c // 404c <__unpack_d> + 38d8: 986c ld.w r3, (r14, 0x30) + 38da: 3b01 cmphsi r3, 2 + 38dc: 0cac bf 0x3a34 // 3a34 <__muldf3+0x178> + 38de: 9851 ld.w r2, (r14, 0x44) + 38e0: 3a01 cmphsi r2, 2 + 38e2: 0c9c bf 0x3a1a // 3a1a <__muldf3+0x15e> + 38e4: 3b44 cmpnei r3, 4 + 38e6: 0ca5 bf 0x3a30 // 3a30 <__muldf3+0x174> + 38e8: 3a44 cmpnei r2, 4 + 38ea: 0c96 bf 0x3a16 // 3a16 <__muldf3+0x15a> + 38ec: 3b42 cmpnei r3, 2 + 38ee: 0ca3 bf 0x3a34 // 3a34 <__muldf3+0x178> + 38f0: 3a42 cmpnei r2, 2 + 38f2: 0c94 bf 0x3a1a // 3a1a <__muldf3+0x15e> + 38f4: 98ef ld.w r7, (r14, 0x3c) + 38f6: 98b4 ld.w r5, (r14, 0x50) + 38f8: 9875 ld.w r3, (r14, 0x54) + 38fa: 6d8f mov r6, r3 + 38fc: 6c9f mov r2, r7 + 38fe: 3300 movi r3, 0 + 3900: 6c17 mov r0, r5 + 3902: 3100 movi r1, 0 + 3904: e0000294 bsr 0x3e2c // 3e2c <__muldi3> + 3908: b804 st.w r0, (r14, 0x10) + 390a: b825 st.w r1, (r14, 0x14) + 390c: 6c9f mov r2, r7 + 390e: 3300 movi r3, 0 + 3910: 6c1b mov r0, r6 + 3912: 3100 movi r1, 0 + 3914: 9890 ld.w r4, (r14, 0x40) + 3916: b8c2 st.w r6, (r14, 0x8) + 3918: e000028a bsr 0x3e2c // 3e2c <__muldi3> + 391c: 6d83 mov r6, r0 + 391e: 6dc7 mov r7, r1 + 3920: 9842 ld.w r2, (r14, 0x8) + 3922: 3300 movi r3, 0 + 3924: 6c13 mov r0, r4 + 3926: 3100 movi r1, 0 + 3928: e0000282 bsr 0x3e2c // 3e2c <__muldi3> + 392c: b806 st.w r0, (r14, 0x18) + 392e: b827 st.w r1, (r14, 0x1c) + 3930: 6c97 mov r2, r5 + 3932: 3300 movi r3, 0 + 3934: 6c13 mov r0, r4 + 3936: 3100 movi r1, 0 + 3938: e000027a bsr 0x3e2c // 3e2c <__muldi3> + 393c: 6401 cmplt r0, r0 + 393e: 6019 addc r0, r6 + 3940: 605d addc r1, r7 + 3942: 65c4 cmphs r1, r7 + 3944: 0c91 bf 0x3a66 // 3a66 <__muldf3+0x1aa> + 3946: 645e cmpne r7, r1 + 3948: 0c8d bf 0x3a62 // 3a62 <__muldf3+0x1a6> + 394a: 3300 movi r3, 0 + 394c: 3400 movi r4, 0 + 394e: b862 st.w r3, (r14, 0x8) + 3950: b883 st.w r4, (r14, 0xc) + 3952: 9884 ld.w r4, (r14, 0x10) + 3954: 98a5 ld.w r5, (r14, 0x14) + 3956: 3600 movi r6, 0 + 3958: 6dc3 mov r7, r0 + 395a: 6c93 mov r2, r4 + 395c: 6cd7 mov r3, r5 + 395e: 6489 cmplt r2, r2 + 3960: 6099 addc r2, r6 + 3962: 60dd addc r3, r7 + 3964: 6d8b mov r6, r2 + 3966: 6dcf mov r7, r3 + 3968: 6c93 mov r2, r4 + 396a: 6cd7 mov r3, r5 + 396c: 64dc cmphs r7, r3 + 396e: 0c70 bf 0x3a4e // 3a4e <__muldf3+0x192> + 3970: 65ce cmpne r3, r7 + 3972: 0c6c bf 0x3a4a // 3a4a <__muldf3+0x18e> + 3974: 6c87 mov r2, r1 + 3976: 3300 movi r3, 0 + 3978: 9806 ld.w r0, (r14, 0x18) + 397a: 9827 ld.w r1, (r14, 0x1c) + 397c: 6401 cmplt r0, r0 + 397e: 6009 addc r0, r2 + 3980: 604d addc r1, r3 + 3982: 6c83 mov r2, r0 + 3984: 6cc7 mov r3, r1 + 3986: 9802 ld.w r0, (r14, 0x8) + 3988: 9823 ld.w r1, (r14, 0xc) + 398a: 6401 cmplt r0, r0 + 398c: 6009 addc r0, r2 + 398e: 604d addc r1, r3 + 3990: 6c83 mov r2, r0 + 3992: 6cc7 mov r3, r1 + 3994: 988e ld.w r4, (r14, 0x38) + 3996: 9833 ld.w r1, (r14, 0x4c) + 3998: 6104 addu r4, r1 + 399a: 5c2e addi r1, r4, 4 + 399c: b838 st.w r1, (r14, 0x60) + 399e: 980d ld.w r0, (r14, 0x34) + 39a0: 9832 ld.w r1, (r14, 0x48) + 39a2: 6442 cmpne r0, r1 + 39a4: 12b0 lrw r5, 0x1fffffff // 3ae4 <__muldf3+0x228> + 39a6: 3100 movi r1, 0 + 39a8: 6045 addc r1, r1 + 39aa: 64d4 cmphs r5, r3 + 39ac: b837 st.w r1, (r14, 0x5c) + 39ae: 0879 bt 0x3aa0 // 3aa0 <__muldf3+0x1e4> + 39b0: 2404 addi r4, 5 + 39b2: b8a4 st.w r5, (r14, 0x10) + 39b4: 3001 movi r0, 1 + 39b6: 3100 movi r1, 0 + 39b8: 6808 and r0, r2 + 39ba: 684c and r1, r3 + 39bc: 6c04 or r0, r1 + 39be: 3840 cmpnei r0, 0 + 39c0: b882 st.w r4, (r14, 0x8) + 39c2: 0c0e bf 0x39de // 39de <__muldf3+0x122> + 39c4: 473f lsli r1, r7, 31 + 39c6: 4e01 lsri r0, r6, 1 + 39c8: 6c04 or r0, r1 + 39ca: 4f21 lsri r1, r7, 1 + 39cc: b800 st.w r0, (r14, 0x0) + 39ce: b821 st.w r1, (r14, 0x4) + 39d0: 3180 movi r1, 128 + 39d2: 98c0 ld.w r6, (r14, 0x0) + 39d4: 98e1 ld.w r7, (r14, 0x4) + 39d6: 3000 movi r0, 0 + 39d8: 4138 lsli r1, r1, 24 + 39da: 6d80 or r6, r0 + 39dc: 6dc4 or r7, r1 + 39de: 4b21 lsri r1, r3, 1 + 39e0: 43bf lsli r5, r3, 31 + 39e2: 4a01 lsri r0, r2, 1 + 39e4: 6cc7 mov r3, r1 + 39e6: 9824 ld.w r1, (r14, 0x10) + 39e8: 6d40 or r5, r0 + 39ea: 64c4 cmphs r1, r3 + 39ec: 6c97 mov r2, r5 + 39ee: 2400 addi r4, 1 + 39f0: 0fe2 bf 0x39b4 // 39b4 <__muldf3+0xf8> + 39f2: 9822 ld.w r1, (r14, 0x8) + 39f4: b838 st.w r1, (r14, 0x60) + 39f6: 30ff movi r0, 255 + 39f8: 3100 movi r1, 0 + 39fa: 6808 and r0, r2 + 39fc: 684c and r1, r3 + 39fe: 3480 movi r4, 128 + 3a00: 6502 cmpne r0, r4 + 3a02: 0c37 bf 0x3a70 // 3a70 <__muldf3+0x1b4> + 3a04: b859 st.w r2, (r14, 0x64) + 3a06: b87a st.w r3, (r14, 0x68) + 3a08: 3303 movi r3, 3 + 3a0a: b876 st.w r3, (r14, 0x58) + 3a0c: 1816 addi r0, r14, 88 + 3a0e: e0000251 bsr 0x3eb0 // 3eb0 <__pack_d> + 3a12: 141b addi r14, r14, 108 + 3a14: 1494 pop r4-r7, r15 + 3a16: 3b42 cmpnei r3, 2 + 3a18: 0c42 bf 0x3a9c // 3a9c <__muldf3+0x1e0> + 3a1a: 9872 ld.w r3, (r14, 0x48) + 3a1c: 984d ld.w r2, (r14, 0x34) + 3a1e: 64ca cmpne r2, r3 + 3a20: 3300 movi r3, 0 + 3a22: 60cd addc r3, r3 + 3a24: 1811 addi r0, r14, 68 + 3a26: b872 st.w r3, (r14, 0x48) + 3a28: e0000244 bsr 0x3eb0 // 3eb0 <__pack_d> + 3a2c: 141b addi r14, r14, 108 + 3a2e: 1494 pop r4-r7, r15 + 3a30: 3a42 cmpnei r2, 2 + 3a32: 0c35 bf 0x3a9c // 3a9c <__muldf3+0x1e0> + 3a34: 984d ld.w r2, (r14, 0x34) + 3a36: 9872 ld.w r3, (r14, 0x48) + 3a38: 64ca cmpne r2, r3 + 3a3a: 3300 movi r3, 0 + 3a3c: 60cd addc r3, r3 + 3a3e: 180c addi r0, r14, 48 + 3a40: b86d st.w r3, (r14, 0x34) + 3a42: e0000237 bsr 0x3eb0 // 3eb0 <__pack_d> + 3a46: 141b addi r14, r14, 108 + 3a48: 1494 pop r4-r7, r15 + 3a4a: 6498 cmphs r6, r2 + 3a4c: 0b94 bt 0x3974 // 3974 <__muldf3+0xb8> + 3a4e: 9882 ld.w r4, (r14, 0x8) + 3a50: 98a3 ld.w r5, (r14, 0xc) + 3a52: 3201 movi r2, 1 + 3a54: 3300 movi r3, 0 + 3a56: 6511 cmplt r4, r4 + 3a58: 6109 addc r4, r2 + 3a5a: 614d addc r5, r3 + 3a5c: b882 st.w r4, (r14, 0x8) + 3a5e: b8a3 st.w r5, (r14, 0xc) + 3a60: 078a br 0x3974 // 3974 <__muldf3+0xb8> + 3a62: 6580 cmphs r0, r6 + 3a64: 0b73 bt 0x394a // 394a <__muldf3+0x8e> + 3a66: 3300 movi r3, 0 + 3a68: 3401 movi r4, 1 + 3a6a: b862 st.w r3, (r14, 0x8) + 3a6c: b883 st.w r4, (r14, 0xc) + 3a6e: 0772 br 0x3952 // 3952 <__muldf3+0x96> + 3a70: 3940 cmpnei r1, 0 + 3a72: 0bc9 bt 0x3a04 // 3a04 <__muldf3+0x148> + 3a74: 3180 movi r1, 128 + 3a76: 4121 lsli r1, r1, 1 + 3a78: 6848 and r1, r2 + 3a7a: 3940 cmpnei r1, 0 + 3a7c: 0bc4 bt 0x3a04 // 3a04 <__muldf3+0x148> + 3a7e: 6c5b mov r1, r6 + 3a80: 6c5c or r1, r7 + 3a82: 3940 cmpnei r1, 0 + 3a84: 0fc0 bf 0x3a04 // 3a04 <__muldf3+0x148> + 3a86: 3080 movi r0, 128 + 3a88: 3100 movi r1, 0 + 3a8a: 6401 cmplt r0, r0 + 3a8c: 6009 addc r0, r2 + 3a8e: 604d addc r1, r3 + 3a90: 34ff movi r4, 255 + 3a92: 6d43 mov r5, r0 + 3a94: 6951 andn r5, r4 + 3a96: 6c97 mov r2, r5 + 3a98: 6cc7 mov r3, r1 + 3a9a: 07b5 br 0x3a04 // 3a04 <__muldf3+0x148> + 3a9c: 1013 lrw r0, 0xcc80 // 3ae8 <__muldf3+0x22c> + 3a9e: 07b8 br 0x3a0e // 3a0e <__muldf3+0x152> + 3aa0: 1033 lrw r1, 0xfffffff // 3aec <__muldf3+0x230> + 3aa2: 64c4 cmphs r1, r3 + 3aa4: 0fa9 bf 0x39f6 // 39f6 <__muldf3+0x13a> + 3aa6: 2402 addi r4, 3 + 3aa8: b822 st.w r1, (r14, 0x8) + 3aaa: 4a1f lsri r0, r2, 31 + 3aac: 4321 lsli r1, r3, 1 + 3aae: 42a1 lsli r5, r2, 1 + 3ab0: 6c04 or r0, r1 + 3ab2: 3fdf btsti r7, 31 + 3ab4: b880 st.w r4, (r14, 0x0) + 3ab6: 6c97 mov r2, r5 + 3ab8: 6cc3 mov r3, r0 + 3aba: 0c07 bf 0x3ac8 // 3ac8 <__muldf3+0x20c> + 3abc: 3001 movi r0, 1 + 3abe: 3100 movi r1, 0 + 3ac0: 6c08 or r0, r2 + 3ac2: 6c4c or r1, r3 + 3ac4: 6c83 mov r2, r0 + 3ac6: 6cc7 mov r3, r1 + 3ac8: 4721 lsli r1, r7, 1 + 3aca: 4e1f lsri r0, r6, 31 + 3acc: 6c04 or r0, r1 + 3ace: 9822 ld.w r1, (r14, 0x8) + 3ad0: 46a1 lsli r5, r6, 1 + 3ad2: 64c4 cmphs r1, r3 + 3ad4: 6d97 mov r6, r5 + 3ad6: 6dc3 mov r7, r0 + 3ad8: 2c00 subi r4, 1 + 3ada: 0be8 bt 0x3aaa // 3aaa <__muldf3+0x1ee> + 3adc: 9820 ld.w r1, (r14, 0x0) + 3ade: b838 st.w r1, (r14, 0x60) + 3ae0: 078b br 0x39f6 // 39f6 <__muldf3+0x13a> + 3ae2: 0000 bkpt + 3ae4: 1fffffff .long 0x1fffffff + 3ae8: 0000cc80 .long 0x0000cc80 + 3aec: 0fffffff .long 0x0fffffff + +00003af0 <__divdf3>: + 3af0: 14d4 push r4-r7, r15 + 3af2: 1432 subi r14, r14, 72 + 3af4: b804 st.w r0, (r14, 0x10) + 3af6: b825 st.w r1, (r14, 0x14) + 3af8: 1804 addi r0, r14, 16 + 3afa: 1908 addi r1, r14, 32 + 3afc: b867 st.w r3, (r14, 0x1c) + 3afe: b846 st.w r2, (r14, 0x18) + 3b00: e00002a6 bsr 0x404c // 404c <__unpack_d> + 3b04: 190d addi r1, r14, 52 + 3b06: 1806 addi r0, r14, 24 + 3b08: e00002a2 bsr 0x404c // 404c <__unpack_d> + 3b0c: 9868 ld.w r3, (r14, 0x20) + 3b0e: 3b01 cmphsi r3, 2 + 3b10: 0c66 bf 0x3bdc // 3bdc <__divdf3+0xec> + 3b12: 982d ld.w r1, (r14, 0x34) + 3b14: 3901 cmphsi r1, 2 + 3b16: 0c92 bf 0x3c3a // 3c3a <__divdf3+0x14a> + 3b18: 9849 ld.w r2, (r14, 0x24) + 3b1a: 980e ld.w r0, (r14, 0x38) + 3b1c: 6c81 xor r2, r0 + 3b1e: 3b44 cmpnei r3, 4 + 3b20: b849 st.w r2, (r14, 0x24) + 3b22: 0c62 bf 0x3be6 // 3be6 <__divdf3+0xf6> + 3b24: 3b42 cmpnei r3, 2 + 3b26: 0c60 bf 0x3be6 // 3be6 <__divdf3+0xf6> + 3b28: 3944 cmpnei r1, 4 + 3b2a: 0c62 bf 0x3bee // 3bee <__divdf3+0xfe> + 3b2c: 3942 cmpnei r1, 2 + 3b2e: 0c82 bf 0x3c32 // 3c32 <__divdf3+0x142> + 3b30: 982a ld.w r1, (r14, 0x28) + 3b32: 986f ld.w r3, (r14, 0x3c) + 3b34: 604e subu r1, r3 + 3b36: 9890 ld.w r4, (r14, 0x40) + 3b38: 98b1 ld.w r5, (r14, 0x44) + 3b3a: 984b ld.w r2, (r14, 0x2c) + 3b3c: 986c ld.w r3, (r14, 0x30) + 3b3e: 654c cmphs r3, r5 + 3b40: b82a st.w r1, (r14, 0x28) + 3b42: 6d93 mov r6, r4 + 3b44: 6dd7 mov r7, r5 + 3b46: 0c05 bf 0x3b50 // 3b50 <__divdf3+0x60> + 3b48: 64d6 cmpne r5, r3 + 3b4a: 080b bt 0x3b60 // 3b60 <__divdf3+0x70> + 3b4c: 6508 cmphs r2, r4 + 3b4e: 0809 bt 0x3b60 // 3b60 <__divdf3+0x70> + 3b50: 4a9f lsri r4, r2, 31 + 3b52: 4301 lsli r0, r3, 1 + 3b54: 42a1 lsli r5, r2, 1 + 3b56: 6d00 or r4, r0 + 3b58: 2900 subi r1, 1 + 3b5a: 6c97 mov r2, r5 + 3b5c: 6cd3 mov r3, r4 + 3b5e: b82a st.w r1, (r14, 0x28) + 3b60: 3000 movi r0, 0 + 3b62: 3100 movi r1, 0 + 3b64: b802 st.w r0, (r14, 0x8) + 3b66: b823 st.w r1, (r14, 0xc) + 3b68: 3180 movi r1, 128 + 3b6a: 343d movi r4, 61 + 3b6c: 3000 movi r0, 0 + 3b6e: 4135 lsli r1, r1, 21 + 3b70: b8c0 st.w r6, (r14, 0x0) + 3b72: b8e1 st.w r7, (r14, 0x4) + 3b74: 98a0 ld.w r5, (r14, 0x0) + 3b76: 98c1 ld.w r6, (r14, 0x4) + 3b78: 658c cmphs r3, r6 + 3b7a: 0c10 bf 0x3b9a // 3b9a <__divdf3+0xaa> + 3b7c: 64da cmpne r6, r3 + 3b7e: 0803 bt 0x3b84 // 3b84 <__divdf3+0x94> + 3b80: 6548 cmphs r2, r5 + 3b82: 0c0c bf 0x3b9a // 3b9a <__divdf3+0xaa> + 3b84: 98a2 ld.w r5, (r14, 0x8) + 3b86: 98c3 ld.w r6, (r14, 0xc) + 3b88: 6d40 or r5, r0 + 3b8a: 6d84 or r6, r1 + 3b8c: b8a2 st.w r5, (r14, 0x8) + 3b8e: b8c3 st.w r6, (r14, 0xc) + 3b90: 98a0 ld.w r5, (r14, 0x0) + 3b92: 98c1 ld.w r6, (r14, 0x4) + 3b94: 6488 cmphs r2, r2 + 3b96: 6097 subc r2, r5 + 3b98: 60db subc r3, r6 + 3b9a: 41bf lsli r5, r1, 31 + 3b9c: 48e1 lsri r7, r0, 1 + 3b9e: 6d97 mov r6, r5 + 3ba0: 49a1 lsri r5, r1, 1 + 3ba2: 6d9c or r6, r7 + 3ba4: 6c57 mov r1, r5 + 3ba6: 4abf lsri r5, r2, 31 + 3ba8: 6c1b mov r0, r6 + 3baa: 2c00 subi r4, 1 + 3bac: 6d97 mov r6, r5 + 3bae: 43a1 lsli r5, r3, 1 + 3bb0: 6d94 or r6, r5 + 3bb2: 4261 lsli r3, r2, 1 + 3bb4: 3c40 cmpnei r4, 0 + 3bb6: 6dcf mov r7, r3 + 3bb8: 6c8f mov r2, r3 + 3bba: 6cdb mov r3, r6 + 3bbc: 0bdc bt 0x3b74 // 3b74 <__divdf3+0x84> + 3bbe: 30ff movi r0, 255 + 3bc0: 3100 movi r1, 0 + 3bc2: 9882 ld.w r4, (r14, 0x8) + 3bc4: 98a3 ld.w r5, (r14, 0xc) + 3bc6: 6900 and r4, r0 + 3bc8: 6944 and r5, r1 + 3bca: 6c13 mov r0, r4 + 3bcc: 6c57 mov r1, r5 + 3bce: 3480 movi r4, 128 + 3bd0: 6502 cmpne r0, r4 + 3bd2: 0c15 bf 0x3bfc // 3bfc <__divdf3+0x10c> + 3bd4: 9862 ld.w r3, (r14, 0x8) + 3bd6: 9883 ld.w r4, (r14, 0xc) + 3bd8: b86b st.w r3, (r14, 0x2c) + 3bda: b88c st.w r4, (r14, 0x30) + 3bdc: 1808 addi r0, r14, 32 + 3bde: e0000169 bsr 0x3eb0 // 3eb0 <__pack_d> + 3be2: 1412 addi r14, r14, 72 + 3be4: 1494 pop r4-r7, r15 + 3be6: 644e cmpne r3, r1 + 3be8: 0bfa bt 0x3bdc // 3bdc <__divdf3+0xec> + 3bea: 1016 lrw r0, 0xcc80 // 3c40 <__divdf3+0x150> + 3bec: 07f9 br 0x3bde // 3bde <__divdf3+0xee> + 3bee: 3300 movi r3, 0 + 3bf0: 3400 movi r4, 0 + 3bf2: b86b st.w r3, (r14, 0x2c) + 3bf4: b88c st.w r4, (r14, 0x30) + 3bf6: b86a st.w r3, (r14, 0x28) + 3bf8: 1808 addi r0, r14, 32 + 3bfa: 07f2 br 0x3bde // 3bde <__divdf3+0xee> + 3bfc: 3940 cmpnei r1, 0 + 3bfe: 0beb bt 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c00: 3180 movi r1, 128 + 3c02: 4121 lsli r1, r1, 1 + 3c04: 9882 ld.w r4, (r14, 0x8) + 3c06: 98a3 ld.w r5, (r14, 0xc) + 3c08: 6850 and r1, r4 + 3c0a: 3940 cmpnei r1, 0 + 3c0c: 0be4 bt 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c0e: 6c98 or r2, r6 + 3c10: 3a40 cmpnei r2, 0 + 3c12: 0fe1 bf 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c14: 3280 movi r2, 128 + 3c16: 3300 movi r3, 0 + 3c18: 6c13 mov r0, r4 + 3c1a: 6c57 mov r1, r5 + 3c1c: 6401 cmplt r0, r0 + 3c1e: 6009 addc r0, r2 + 3c20: 604d addc r1, r3 + 3c22: 6c83 mov r2, r0 + 3c24: 6cc7 mov r3, r1 + 3c26: 6c0b mov r0, r2 + 3c28: 31ff movi r1, 255 + 3c2a: 6805 andn r0, r1 + 3c2c: b802 st.w r0, (r14, 0x8) + 3c2e: b863 st.w r3, (r14, 0xc) + 3c30: 07d2 br 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c32: 3304 movi r3, 4 + 3c34: b868 st.w r3, (r14, 0x20) + 3c36: 1808 addi r0, r14, 32 + 3c38: 07d3 br 0x3bde // 3bde <__divdf3+0xee> + 3c3a: 180d addi r0, r14, 52 + 3c3c: 07d1 br 0x3bde // 3bde <__divdf3+0xee> + 3c3e: 0000 bkpt + 3c40: 0000cc80 .long 0x0000cc80 + +00003c44 <__gtdf2>: + 3c44: 14d0 push r15 + 3c46: 142e subi r14, r14, 56 + 3c48: b800 st.w r0, (r14, 0x0) + 3c4a: b821 st.w r1, (r14, 0x4) + 3c4c: 6c3b mov r0, r14 + 3c4e: 1904 addi r1, r14, 16 + 3c50: b863 st.w r3, (r14, 0xc) + 3c52: b842 st.w r2, (r14, 0x8) + 3c54: e00001fc bsr 0x404c // 404c <__unpack_d> + 3c58: 1909 addi r1, r14, 36 + 3c5a: 1802 addi r0, r14, 8 + 3c5c: e00001f8 bsr 0x404c // 404c <__unpack_d> + 3c60: 9864 ld.w r3, (r14, 0x10) + 3c62: 3b01 cmphsi r3, 2 + 3c64: 0c0a bf 0x3c78 // 3c78 <__gtdf2+0x34> + 3c66: 9869 ld.w r3, (r14, 0x24) + 3c68: 3b01 cmphsi r3, 2 + 3c6a: 0c07 bf 0x3c78 // 3c78 <__gtdf2+0x34> + 3c6c: 1909 addi r1, r14, 36 + 3c6e: 1804 addi r0, r14, 16 + 3c70: e0000250 bsr 0x4110 // 4110 <__fpcmp_parts_d> + 3c74: 140e addi r14, r14, 56 + 3c76: 1490 pop r15 + 3c78: 3000 movi r0, 0 + 3c7a: 2800 subi r0, 1 + 3c7c: 140e addi r14, r14, 56 + 3c7e: 1490 pop r15 + +00003c80 <__gedf2>: + 3c80: 14d0 push r15 + 3c82: 142e subi r14, r14, 56 + 3c84: b800 st.w r0, (r14, 0x0) + 3c86: b821 st.w r1, (r14, 0x4) + 3c88: 6c3b mov r0, r14 + 3c8a: 1904 addi r1, r14, 16 + 3c8c: b863 st.w r3, (r14, 0xc) + 3c8e: b842 st.w r2, (r14, 0x8) + 3c90: e00001de bsr 0x404c // 404c <__unpack_d> + 3c94: 1909 addi r1, r14, 36 + 3c96: 1802 addi r0, r14, 8 + 3c98: e00001da bsr 0x404c // 404c <__unpack_d> + 3c9c: 9864 ld.w r3, (r14, 0x10) + 3c9e: 3b01 cmphsi r3, 2 + 3ca0: 0c0a bf 0x3cb4 // 3cb4 <__gedf2+0x34> + 3ca2: 9869 ld.w r3, (r14, 0x24) + 3ca4: 3b01 cmphsi r3, 2 + 3ca6: 0c07 bf 0x3cb4 // 3cb4 <__gedf2+0x34> + 3ca8: 1909 addi r1, r14, 36 + 3caa: 1804 addi r0, r14, 16 + 3cac: e0000232 bsr 0x4110 // 4110 <__fpcmp_parts_d> + 3cb0: 140e addi r14, r14, 56 + 3cb2: 1490 pop r15 + 3cb4: 3000 movi r0, 0 + 3cb6: 2800 subi r0, 1 + 3cb8: 140e addi r14, r14, 56 + 3cba: 1490 pop r15 + +00003cbc <__ledf2>: + 3cbc: 14d0 push r15 + 3cbe: 142e subi r14, r14, 56 + 3cc0: b800 st.w r0, (r14, 0x0) + 3cc2: b821 st.w r1, (r14, 0x4) + 3cc4: 6c3b mov r0, r14 + 3cc6: 1904 addi r1, r14, 16 + 3cc8: b863 st.w r3, (r14, 0xc) + 3cca: b842 st.w r2, (r14, 0x8) + 3ccc: e00001c0 bsr 0x404c // 404c <__unpack_d> + 3cd0: 1909 addi r1, r14, 36 + 3cd2: 1802 addi r0, r14, 8 + 3cd4: e00001bc bsr 0x404c // 404c <__unpack_d> + 3cd8: 9864 ld.w r3, (r14, 0x10) + 3cda: 3b01 cmphsi r3, 2 + 3cdc: 0c0a bf 0x3cf0 // 3cf0 <__ledf2+0x34> + 3cde: 9869 ld.w r3, (r14, 0x24) + 3ce0: 3b01 cmphsi r3, 2 + 3ce2: 0c07 bf 0x3cf0 // 3cf0 <__ledf2+0x34> + 3ce4: 1909 addi r1, r14, 36 + 3ce6: 1804 addi r0, r14, 16 + 3ce8: e0000214 bsr 0x4110 // 4110 <__fpcmp_parts_d> + 3cec: 140e addi r14, r14, 56 + 3cee: 1490 pop r15 + 3cf0: 3001 movi r0, 1 + 3cf2: 140e addi r14, r14, 56 + 3cf4: 1490 pop r15 + ... + +00003cf8 <__floatsidf>: + 3cf8: 14d1 push r4, r15 + 3cfa: 1425 subi r14, r14, 20 + 3cfc: 3303 movi r3, 3 + 3cfe: b860 st.w r3, (r14, 0x0) + 3d00: 3840 cmpnei r0, 0 + 3d02: 487f lsri r3, r0, 31 + 3d04: b861 st.w r3, (r14, 0x4) + 3d06: 0808 bt 0x3d16 // 3d16 <__floatsidf+0x1e> + 3d08: 3302 movi r3, 2 + 3d0a: b860 st.w r3, (r14, 0x0) + 3d0c: 6c3b mov r0, r14 + 3d0e: e00000d1 bsr 0x3eb0 // 3eb0 <__pack_d> + 3d12: 1405 addi r14, r14, 20 + 3d14: 1491 pop r4, r15 + 3d16: 38df btsti r0, 31 + 3d18: 0812 bt 0x3d3c // 3d3c <__floatsidf+0x44> + 3d1a: 6d03 mov r4, r0 + 3d1c: 6c13 mov r0, r4 + 3d1e: e00000a9 bsr 0x3e70 // 3e70 <__clzsi2> + 3d22: 321d movi r2, 29 + 3d24: 6080 addu r2, r0 + 3d26: 2802 subi r0, 3 + 3d28: 38df btsti r0, 31 + 3d2a: 0810 bt 0x3d4a // 3d4a <__floatsidf+0x52> + 3d2c: 7100 lsl r4, r0 + 3d2e: 3300 movi r3, 0 + 3d30: b884 st.w r4, (r14, 0x10) + 3d32: b863 st.w r3, (r14, 0xc) + 3d34: 333c movi r3, 60 + 3d36: 60ca subu r3, r2 + 3d38: b862 st.w r3, (r14, 0x8) + 3d3a: 07e9 br 0x3d0c // 3d0c <__floatsidf+0x14> + 3d3c: 3380 movi r3, 128 + 3d3e: 4378 lsli r3, r3, 24 + 3d40: 64c2 cmpne r0, r3 + 3d42: 0c0d bf 0x3d5c // 3d5c <__floatsidf+0x64> + 3d44: 3400 movi r4, 0 + 3d46: 6102 subu r4, r0 + 3d48: 07ea br 0x3d1c // 3d1c <__floatsidf+0x24> + 3d4a: 311f movi r1, 31 + 3d4c: 4c61 lsri r3, r4, 1 + 3d4e: 604a subu r1, r2 + 3d50: 6c13 mov r0, r4 + 3d52: 70c5 lsr r3, r1 + 3d54: 7008 lsl r0, r2 + 3d56: b864 st.w r3, (r14, 0x10) + 3d58: b803 st.w r0, (r14, 0xc) + 3d5a: 07ed br 0x3d34 // 3d34 <__floatsidf+0x3c> + 3d5c: 3000 movi r0, 0 + 3d5e: 1022 lrw r1, 0xc1e00000 // 3d64 <__floatsidf+0x6c> + 3d60: 07d9 br 0x3d12 // 3d12 <__floatsidf+0x1a> + 3d62: 0000 bkpt + 3d64: c1e00000 .long 0xc1e00000 + +00003d68 <__fixdfsi>: + 3d68: 14d0 push r15 + 3d6a: 1427 subi r14, r14, 28 + 3d6c: b800 st.w r0, (r14, 0x0) + 3d6e: b821 st.w r1, (r14, 0x4) + 3d70: 6c3b mov r0, r14 + 3d72: 1902 addi r1, r14, 8 + 3d74: e000016c bsr 0x404c // 404c <__unpack_d> + 3d78: 9862 ld.w r3, (r14, 0x8) + 3d7a: 3b02 cmphsi r3, 3 + 3d7c: 0c20 bf 0x3dbc // 3dbc <__fixdfsi+0x54> + 3d7e: 3b44 cmpnei r3, 4 + 3d80: 0c16 bf 0x3dac // 3dac <__fixdfsi+0x44> + 3d82: 9864 ld.w r3, (r14, 0x10) + 3d84: 3bdf btsti r3, 31 + 3d86: 081b bt 0x3dbc // 3dbc <__fixdfsi+0x54> + 3d88: 3b3e cmplti r3, 31 + 3d8a: 0c11 bf 0x3dac // 3dac <__fixdfsi+0x44> + 3d8c: 323c movi r2, 60 + 3d8e: 5a6d subu r3, r2, r3 + 3d90: 3200 movi r2, 0 + 3d92: 2a1f subi r2, 32 + 3d94: 608c addu r2, r3 + 3d96: 3adf btsti r2, 31 + 3d98: 0815 bt 0x3dc2 // 3dc2 <__fixdfsi+0x5a> + 3d9a: 9806 ld.w r0, (r14, 0x18) + 3d9c: 7009 lsr r0, r2 + 3d9e: 9863 ld.w r3, (r14, 0xc) + 3da0: 3b40 cmpnei r3, 0 + 3da2: 0c0b bf 0x3db8 // 3db8 <__fixdfsi+0x50> + 3da4: 3300 movi r3, 0 + 3da6: 5b01 subu r0, r3, r0 + 3da8: 1407 addi r14, r14, 28 + 3daa: 1490 pop r15 + 3dac: 9863 ld.w r3, (r14, 0xc) + 3dae: 3b40 cmpnei r3, 0 + 3db0: 3000 movi r0, 0 + 3db2: 6001 addc r0, r0 + 3db4: 1068 lrw r3, 0x7fffffff // 3dd4 <__fixdfsi+0x6c> + 3db6: 600c addu r0, r3 + 3db8: 1407 addi r14, r14, 28 + 3dba: 1490 pop r15 + 3dbc: 3000 movi r0, 0 + 3dbe: 1407 addi r14, r14, 28 + 3dc0: 1490 pop r15 + 3dc2: 9846 ld.w r2, (r14, 0x18) + 3dc4: 311f movi r1, 31 + 3dc6: 4241 lsli r2, r2, 1 + 3dc8: 604e subu r1, r3 + 3dca: 9805 ld.w r0, (r14, 0x14) + 3dcc: 7084 lsl r2, r1 + 3dce: 700d lsr r0, r3 + 3dd0: 6c08 or r0, r2 + 3dd2: 07e6 br 0x3d9e // 3d9e <__fixdfsi+0x36> + 3dd4: 7fffffff .long 0x7fffffff + +00003dd8 <__floatunsidf>: + 3dd8: 14d2 push r4-r5, r15 + 3dda: 1425 subi r14, r14, 20 + 3ddc: 3840 cmpnei r0, 0 + 3dde: 3500 movi r5, 0 + 3de0: 6d03 mov r4, r0 + 3de2: b8a1 st.w r5, (r14, 0x4) + 3de4: 0c15 bf 0x3e0e // 3e0e <__floatunsidf+0x36> + 3de6: 3303 movi r3, 3 + 3de8: b860 st.w r3, (r14, 0x0) + 3dea: e0000043 bsr 0x3e70 // 3e70 <__clzsi2> + 3dee: 321d movi r2, 29 + 3df0: 6080 addu r2, r0 + 3df2: 2802 subi r0, 3 + 3df4: 38df btsti r0, 31 + 3df6: 0813 bt 0x3e1c // 3e1c <__floatunsidf+0x44> + 3df8: 7100 lsl r4, r0 + 3dfa: b884 st.w r4, (r14, 0x10) + 3dfc: b8a3 st.w r5, (r14, 0xc) + 3dfe: 333c movi r3, 60 + 3e00: 60ca subu r3, r2 + 3e02: 6c3b mov r0, r14 + 3e04: b862 st.w r3, (r14, 0x8) + 3e06: e0000055 bsr 0x3eb0 // 3eb0 <__pack_d> + 3e0a: 1405 addi r14, r14, 20 + 3e0c: 1492 pop r4-r5, r15 + 3e0e: 3302 movi r3, 2 + 3e10: 6c3b mov r0, r14 + 3e12: b860 st.w r3, (r14, 0x0) + 3e14: e000004e bsr 0x3eb0 // 3eb0 <__pack_d> + 3e18: 1405 addi r14, r14, 20 + 3e1a: 1492 pop r4-r5, r15 + 3e1c: 311f movi r1, 31 + 3e1e: 4c61 lsri r3, r4, 1 + 3e20: 604a subu r1, r2 + 3e22: 70c5 lsr r3, r1 + 3e24: 7108 lsl r4, r2 + 3e26: b864 st.w r3, (r14, 0x10) + 3e28: b883 st.w r4, (r14, 0xc) + 3e2a: 07ea br 0x3dfe // 3dfe <__floatunsidf+0x26> + +00003e2c <__muldi3>: + 3e2c: 14c4 push r4-r7 + 3e2e: 1421 subi r14, r14, 4 + 3e30: 7501 zexth r4, r0 + 3e32: 48b0 lsri r5, r0, 16 + 3e34: 75c9 zexth r7, r2 + 3e36: 6d83 mov r6, r0 + 3e38: b820 st.w r1, (r14, 0x0) + 3e3a: 6c13 mov r0, r4 + 3e3c: 4a30 lsri r1, r2, 16 + 3e3e: 7c1c mult r0, r7 + 3e40: 7d04 mult r4, r1 + 3e42: 7dd4 mult r7, r5 + 3e44: 611c addu r4, r7 + 3e46: 7d44 mult r5, r1 + 3e48: 4830 lsri r1, r0, 16 + 3e4a: 6104 addu r4, r1 + 3e4c: 65d0 cmphs r4, r7 + 3e4e: 0804 bt 0x3e56 // 3e56 <__muldi3+0x2a> + 3e50: 3180 movi r1, 128 + 3e52: 4129 lsli r1, r1, 9 + 3e54: 6144 addu r5, r1 + 3e56: 4c30 lsri r1, r4, 16 + 3e58: 7cd8 mult r3, r6 + 3e5a: 6144 addu r5, r1 + 3e5c: 6c4f mov r1, r3 + 3e5e: 9860 ld.w r3, (r14, 0x0) + 3e60: 7cc8 mult r3, r2 + 3e62: 4490 lsli r4, r4, 16 + 3e64: 604c addu r1, r3 + 3e66: 7401 zexth r0, r0 + 3e68: 6010 addu r0, r4 + 3e6a: 6054 addu r1, r5 + 3e6c: 1401 addi r14, r14, 4 + 3e6e: 1484 pop r4-r7 + +00003e70 <__clzsi2>: + 3e70: 106d lrw r3, 0xffff // 3ea4 <__clzsi2+0x34> + 3e72: 640c cmphs r3, r0 + 3e74: 0c07 bf 0x3e82 // 3e82 <__clzsi2+0x12> + 3e76: 33ff movi r3, 255 + 3e78: 640c cmphs r3, r0 + 3e7a: 0c0f bf 0x3e98 // 3e98 <__clzsi2+0x28> + 3e7c: 3320 movi r3, 32 + 3e7e: 3200 movi r2, 0 + 3e80: 0406 br 0x3e8c // 3e8c <__clzsi2+0x1c> + 3e82: 106a lrw r3, 0xffffff // 3ea8 <__clzsi2+0x38> + 3e84: 640c cmphs r3, r0 + 3e86: 080c bt 0x3e9e // 3e9e <__clzsi2+0x2e> + 3e88: 3308 movi r3, 8 + 3e8a: 3218 movi r2, 24 + 3e8c: 7009 lsr r0, r2 + 3e8e: 1048 lrw r2, 0xcc94 // 3eac <__clzsi2+0x3c> + 3e90: 6008 addu r0, r2 + 3e92: 8040 ld.b r2, (r0, 0x0) + 3e94: 5b09 subu r0, r3, r2 + 3e96: 783c jmp r15 + 3e98: 3318 movi r3, 24 + 3e9a: 3208 movi r2, 8 + 3e9c: 07f8 br 0x3e8c // 3e8c <__clzsi2+0x1c> + 3e9e: 3310 movi r3, 16 + 3ea0: 3210 movi r2, 16 + 3ea2: 07f5 br 0x3e8c // 3e8c <__clzsi2+0x1c> + 3ea4: 0000ffff .long 0x0000ffff + 3ea8: 00ffffff .long 0x00ffffff + 3eac: 0000cc94 .long 0x0000cc94 + +00003eb0 <__pack_d>: + 3eb0: 14c4 push r4-r7 + 3eb2: 1422 subi r14, r14, 8 + 3eb4: 9060 ld.w r3, (r0, 0x0) + 3eb6: 3b01 cmphsi r3, 2 + 3eb8: 90c3 ld.w r6, (r0, 0xc) + 3eba: 90e4 ld.w r7, (r0, 0x10) + 3ebc: 9021 ld.w r1, (r0, 0x4) + 3ebe: 0c46 bf 0x3f4a // 3f4a <__pack_d+0x9a> + 3ec0: 3b44 cmpnei r3, 4 + 3ec2: 0c40 bf 0x3f42 // 3f42 <__pack_d+0x92> + 3ec4: 3b42 cmpnei r3, 2 + 3ec6: 0c27 bf 0x3f14 // 3f14 <__pack_d+0x64> + 3ec8: 6cdb mov r3, r6 + 3eca: 6cdc or r3, r7 + 3ecc: 3b40 cmpnei r3, 0 + 3ece: 0c23 bf 0x3f14 // 3f14 <__pack_d+0x64> + 3ed0: 9062 ld.w r3, (r0, 0x8) + 3ed2: 125a lrw r2, 0xfffffc02 // 4038 <__pack_d+0x188> + 3ed4: 648d cmplt r3, r2 + 3ed6: 0855 bt 0x3f80 // 3f80 <__pack_d+0xd0> + 3ed8: 1259 lrw r2, 0x3ff // 403c <__pack_d+0x18c> + 3eda: 64c9 cmplt r2, r3 + 3edc: 0833 bt 0x3f42 // 3f42 <__pack_d+0x92> + 3ede: 34ff movi r4, 255 + 3ee0: 3500 movi r5, 0 + 3ee2: 6918 and r4, r6 + 3ee4: 695c and r5, r7 + 3ee6: 3280 movi r2, 128 + 3ee8: 6492 cmpne r4, r2 + 3eea: 0c3f bf 0x3f68 // 3f68 <__pack_d+0xb8> + 3eec: 347f movi r4, 127 + 3eee: 3500 movi r5, 0 + 3ef0: 6599 cmplt r6, r6 + 3ef2: 6191 addc r6, r4 + 3ef4: 61d5 addc r7, r5 + 3ef6: 1253 lrw r2, 0x1fffffff // 4040 <__pack_d+0x190> + 3ef8: 65c8 cmphs r2, r7 + 3efa: 0c1a bf 0x3f2e // 3f2e <__pack_d+0x7e> + 3efc: 1290 lrw r4, 0x3ff // 403c <__pack_d+0x18c> + 3efe: 610c addu r4, r3 + 3f00: 4718 lsli r0, r7, 24 + 3f02: 4f68 lsri r3, r7, 8 + 3f04: 4e48 lsri r2, r6, 8 + 3f06: 6c80 or r2, r0 + 3f08: 430c lsli r0, r3, 12 + 3f0a: 486c lsri r3, r0, 12 + 3f0c: 120e lrw r0, 0x7ff // 4044 <__pack_d+0x194> + 3f0e: 6d4b mov r5, r2 + 3f10: 6900 and r4, r0 + 3f12: 0404 br 0x3f1a // 3f1a <__pack_d+0x6a> + 3f14: 3400 movi r4, 0 + 3f16: 3200 movi r2, 0 + 3f18: 3300 movi r3, 0 + 3f1a: 430c lsli r0, r3, 12 + 3f1c: 480c lsri r0, r0, 12 + 3f1e: 4474 lsli r3, r4, 20 + 3f20: 419f lsli r4, r1, 31 + 3f22: 6c43 mov r1, r0 + 3f24: 6c4c or r1, r3 + 3f26: 6c50 or r1, r4 + 3f28: 6c0b mov r0, r2 + 3f2a: 1402 addi r14, r14, 8 + 3f2c: 1484 pop r4-r7 + 3f2e: 479f lsli r4, r7, 31 + 3f30: 4e01 lsri r0, r6, 1 + 3f32: 6d00 or r4, r0 + 3f34: 6d93 mov r6, r4 + 3f36: 3480 movi r4, 128 + 3f38: 4f41 lsri r2, r7, 1 + 3f3a: 4483 lsli r4, r4, 3 + 3f3c: 6dcb mov r7, r2 + 3f3e: 610c addu r4, r3 + 3f40: 07e0 br 0x3f00 // 3f00 <__pack_d+0x50> + 3f42: 1281 lrw r4, 0x7ff // 4044 <__pack_d+0x194> + 3f44: 3200 movi r2, 0 + 3f46: 3300 movi r3, 0 + 3f48: 07e9 br 0x3f1a // 3f1a <__pack_d+0x6a> + 3f4a: 4e08 lsri r0, r6, 8 + 3f4c: 4798 lsli r4, r7, 24 + 3f4e: 6d00 or r4, r0 + 3f50: 3580 movi r5, 128 + 3f52: 4705 lsli r0, r7, 5 + 3f54: 6c93 mov r2, r4 + 3f56: 486d lsri r3, r0, 13 + 3f58: 3400 movi r4, 0 + 3f5a: 45ac lsli r5, r5, 12 + 3f5c: 6c90 or r2, r4 + 3f5e: 6cd4 or r3, r5 + 3f60: 430c lsli r0, r3, 12 + 3f62: 486c lsri r3, r0, 12 + 3f64: 1198 lrw r4, 0x7ff // 4044 <__pack_d+0x194> + 3f66: 07da br 0x3f1a // 3f1a <__pack_d+0x6a> + 3f68: 3d40 cmpnei r5, 0 + 3f6a: 0bc1 bt 0x3eec // 3eec <__pack_d+0x3c> + 3f6c: 4241 lsli r2, r2, 1 + 3f6e: 6898 and r2, r6 + 3f70: 3a40 cmpnei r2, 0 + 3f72: 0fc2 bf 0x3ef6 // 3ef6 <__pack_d+0x46> + 3f74: 3480 movi r4, 128 + 3f76: 3500 movi r5, 0 + 3f78: 6599 cmplt r6, r6 + 3f7a: 6191 addc r6, r4 + 3f7c: 61d5 addc r7, r5 + 3f7e: 07bc br 0x3ef6 // 3ef6 <__pack_d+0x46> + 3f80: 5a6d subu r3, r2, r3 + 3f82: 3238 movi r2, 56 + 3f84: 64c9 cmplt r2, r3 + 3f86: 0bc7 bt 0x3f14 // 3f14 <__pack_d+0x64> + 3f88: 3200 movi r2, 0 + 3f8a: 2a1f subi r2, 32 + 3f8c: 608c addu r2, r3 + 3f8e: 3adf btsti r2, 31 + 3f90: 0848 bt 0x4020 // 4020 <__pack_d+0x170> + 3f92: 6c1f mov r0, r7 + 3f94: 7009 lsr r0, r2 + 3f96: b800 st.w r0, (r14, 0x0) + 3f98: 3000 movi r0, 0 + 3f9a: b801 st.w r0, (r14, 0x4) + 3f9c: 3adf btsti r2, 31 + 3f9e: 083c bt 0x4016 // 4016 <__pack_d+0x166> + 3fa0: 3301 movi r3, 1 + 3fa2: 70c8 lsl r3, r2 + 3fa4: 6d4f mov r5, r3 + 3fa6: 3300 movi r3, 0 + 3fa8: 6d0f mov r4, r3 + 3faa: 3200 movi r2, 0 + 3fac: 3300 movi r3, 0 + 3fae: 2a00 subi r2, 1 + 3fb0: 2b00 subi r3, 1 + 3fb2: 6511 cmplt r4, r4 + 3fb4: 6109 addc r4, r2 + 3fb6: 614d addc r5, r3 + 3fb8: 6990 and r6, r4 + 3fba: 69d4 and r7, r5 + 3fbc: 6d9c or r6, r7 + 3fbe: 3e40 cmpnei r6, 0 + 3fc0: 3000 movi r0, 0 + 3fc2: 6001 addc r0, r0 + 3fc4: 6c83 mov r2, r0 + 3fc6: 3300 movi r3, 0 + 3fc8: 9880 ld.w r4, (r14, 0x0) + 3fca: 98a1 ld.w r5, (r14, 0x4) + 3fcc: 6d08 or r4, r2 + 3fce: 6d4c or r5, r3 + 3fd0: 32ff movi r2, 255 + 3fd2: 3300 movi r3, 0 + 3fd4: 6890 and r2, r4 + 3fd6: 68d4 and r3, r5 + 3fd8: 3080 movi r0, 128 + 3fda: 640a cmpne r2, r0 + 3fdc: 081b bt 0x4012 // 4012 <__pack_d+0x162> + 3fde: 3b40 cmpnei r3, 0 + 3fe0: 0819 bt 0x4012 // 4012 <__pack_d+0x162> + 3fe2: 3380 movi r3, 128 + 3fe4: 4361 lsli r3, r3, 1 + 3fe6: 68d0 and r3, r4 + 3fe8: 3b40 cmpnei r3, 0 + 3fea: 0c06 bf 0x3ff6 // 3ff6 <__pack_d+0x146> + 3fec: 3280 movi r2, 128 + 3fee: 3300 movi r3, 0 + 3ff0: 6511 cmplt r4, r4 + 3ff2: 6109 addc r4, r2 + 3ff4: 614d addc r5, r3 + 3ff6: 4518 lsli r0, r5, 24 + 3ff8: 4c48 lsri r2, r4, 8 + 3ffa: 4d68 lsri r3, r5, 8 + 3ffc: 1093 lrw r4, 0xfffffff // 4048 <__pack_d+0x198> + 3ffe: 6c80 or r2, r0 + 4000: 6550 cmphs r4, r5 + 4002: 430c lsli r0, r3, 12 + 4004: 486c lsri r3, r0, 12 + 4006: 3001 movi r0, 1 + 4008: 0c02 bf 0x400c // 400c <__pack_d+0x15c> + 400a: 3000 movi r0, 0 + 400c: 108e lrw r4, 0x7ff // 4044 <__pack_d+0x194> + 400e: 6900 and r4, r0 + 4010: 0785 br 0x3f1a // 3f1a <__pack_d+0x6a> + 4012: 327f movi r2, 127 + 4014: 07ed br 0x3fee // 3fee <__pack_d+0x13e> + 4016: 3201 movi r2, 1 + 4018: 708c lsl r2, r3 + 401a: 3500 movi r5, 0 + 401c: 6d0b mov r4, r2 + 401e: 07c6 br 0x3faa // 3faa <__pack_d+0xfa> + 4020: 341f movi r4, 31 + 4022: 610e subu r4, r3 + 4024: 4701 lsli r0, r7, 1 + 4026: 7010 lsl r0, r4 + 4028: 6d1b mov r4, r6 + 402a: 710d lsr r4, r3 + 402c: 6d00 or r4, r0 + 402e: 6c1f mov r0, r7 + 4030: 700d lsr r0, r3 + 4032: b880 st.w r4, (r14, 0x0) + 4034: b801 st.w r0, (r14, 0x4) + 4036: 07b3 br 0x3f9c // 3f9c <__pack_d+0xec> + 4038: fffffc02 .long 0xfffffc02 + 403c: 000003ff .long 0x000003ff + 4040: 1fffffff .long 0x1fffffff + 4044: 000007ff .long 0x000007ff + 4048: 0fffffff .long 0x0fffffff + +0000404c <__unpack_d>: + 404c: 1423 subi r14, r14, 12 + 404e: b880 st.w r4, (r14, 0x0) + 4050: b8c1 st.w r6, (r14, 0x4) + 4052: b8e2 st.w r7, (r14, 0x8) + 4054: 8843 ld.h r2, (r0, 0x6) + 4056: 4251 lsli r2, r2, 17 + 4058: 9061 ld.w r3, (r0, 0x4) + 405a: 9080 ld.w r4, (r0, 0x0) + 405c: 4a55 lsri r2, r2, 21 + 405e: 8007 ld.b r0, (r0, 0x7) + 4060: 436c lsli r3, r3, 12 + 4062: 4807 lsri r0, r0, 7 + 4064: 3a40 cmpnei r2, 0 + 4066: 4b6c lsri r3, r3, 12 + 4068: b101 st.w r0, (r1, 0x4) + 406a: 0819 bt 0x409c // 409c <__unpack_d+0x50> + 406c: 6c93 mov r2, r4 + 406e: 6c8c or r2, r3 + 4070: 3a40 cmpnei r2, 0 + 4072: 0c2d bf 0x40cc // 40cc <__unpack_d+0x80> + 4074: 4c58 lsri r2, r4, 24 + 4076: 4368 lsli r3, r3, 8 + 4078: 6cc8 or r3, r2 + 407a: 3203 movi r2, 3 + 407c: 4408 lsli r0, r4, 8 + 407e: b140 st.w r2, (r1, 0x0) + 4080: 1181 lrw r4, 0xfffffc01 // 4104 <__unpack_d+0xb8> + 4082: 11c2 lrw r6, 0xfffffff // 4108 <__unpack_d+0xbc> + 4084: 485f lsri r2, r0, 31 + 4086: 4361 lsli r3, r3, 1 + 4088: 6cc8 or r3, r2 + 408a: 64d8 cmphs r6, r3 + 408c: 6c93 mov r2, r4 + 408e: 4001 lsli r0, r0, 1 + 4090: 2c00 subi r4, 1 + 4092: 0bf9 bt 0x4084 // 4084 <__unpack_d+0x38> + 4094: b142 st.w r2, (r1, 0x8) + 4096: b103 st.w r0, (r1, 0xc) + 4098: b164 st.w r3, (r1, 0x10) + 409a: 0414 br 0x40c2 // 40c2 <__unpack_d+0x76> + 409c: 101c lrw r0, 0x7ff // 410c <__unpack_d+0xc0> + 409e: 640a cmpne r2, r0 + 40a0: 0c19 bf 0x40d2 // 40d2 <__unpack_d+0x86> + 40a2: 1019 lrw r0, 0xfffffc01 // 4104 <__unpack_d+0xb8> + 40a4: 6080 addu r2, r0 + 40a6: b142 st.w r2, (r1, 0x8) + 40a8: 3203 movi r2, 3 + 40aa: 43e8 lsli r7, r3, 8 + 40ac: b140 st.w r2, (r1, 0x0) + 40ae: 3380 movi r3, 128 + 40b0: 4c58 lsri r2, r4, 24 + 40b2: 6dc8 or r7, r2 + 40b4: 44c8 lsli r6, r4, 8 + 40b6: 3200 movi r2, 0 + 40b8: 4375 lsli r3, r3, 21 + 40ba: 6d88 or r6, r2 + 40bc: 6dcc or r7, r3 + 40be: b1c3 st.w r6, (r1, 0xc) + 40c0: b1e4 st.w r7, (r1, 0x10) + 40c2: 98e2 ld.w r7, (r14, 0x8) + 40c4: 98c1 ld.w r6, (r14, 0x4) + 40c6: 9880 ld.w r4, (r14, 0x0) + 40c8: 1403 addi r14, r14, 12 + 40ca: 783c jmp r15 + 40cc: 3302 movi r3, 2 + 40ce: b160 st.w r3, (r1, 0x0) + 40d0: 07f9 br 0x40c2 // 40c2 <__unpack_d+0x76> + 40d2: 6c93 mov r2, r4 + 40d4: 6c8c or r2, r3 + 40d6: 3a40 cmpnei r2, 0 + 40d8: 0c10 bf 0x40f8 // 40f8 <__unpack_d+0xac> + 40da: 3280 movi r2, 128 + 40dc: 424c lsli r2, r2, 12 + 40de: 688c and r2, r3 + 40e0: 3a40 cmpnei r2, 0 + 40e2: 0c0e bf 0x40fe // 40fe <__unpack_d+0xb2> + 40e4: 3201 movi r2, 1 + 40e6: b140 st.w r2, (r1, 0x0) + 40e8: 4c58 lsri r2, r4, 24 + 40ea: 4368 lsli r3, r3, 8 + 40ec: 6cc8 or r3, r2 + 40ee: 4408 lsli r0, r4, 8 + 40f0: 3b9b bclri r3, 27 + 40f2: b103 st.w r0, (r1, 0xc) + 40f4: b164 st.w r3, (r1, 0x10) + 40f6: 07e6 br 0x40c2 // 40c2 <__unpack_d+0x76> + 40f8: 3304 movi r3, 4 + 40fa: b160 st.w r3, (r1, 0x0) + 40fc: 07e3 br 0x40c2 // 40c2 <__unpack_d+0x76> + 40fe: b140 st.w r2, (r1, 0x0) + 4100: 07f4 br 0x40e8 // 40e8 <__unpack_d+0x9c> + 4102: 0000 bkpt + 4104: fffffc01 .long 0xfffffc01 + 4108: 0fffffff .long 0x0fffffff + 410c: 000007ff .long 0x000007ff + +00004110 <__fpcmp_parts_d>: + 4110: 14c1 push r4 + 4112: 9060 ld.w r3, (r0, 0x0) + 4114: 3b01 cmphsi r3, 2 + 4116: 0c12 bf 0x413a // 413a <__fpcmp_parts_d+0x2a> + 4118: 9140 ld.w r2, (r1, 0x0) + 411a: 3a01 cmphsi r2, 2 + 411c: 0c0f bf 0x413a // 413a <__fpcmp_parts_d+0x2a> + 411e: 3b44 cmpnei r3, 4 + 4120: 0c17 bf 0x414e // 414e <__fpcmp_parts_d+0x3e> + 4122: 3a44 cmpnei r2, 4 + 4124: 0c0f bf 0x4142 // 4142 <__fpcmp_parts_d+0x32> + 4126: 3b42 cmpnei r3, 2 + 4128: 0c0b bf 0x413e // 413e <__fpcmp_parts_d+0x2e> + 412a: 3a42 cmpnei r2, 2 + 412c: 0c13 bf 0x4152 // 4152 <__fpcmp_parts_d+0x42> + 412e: 9061 ld.w r3, (r0, 0x4) + 4130: 9141 ld.w r2, (r1, 0x4) + 4132: 648e cmpne r3, r2 + 4134: 0c14 bf 0x415c // 415c <__fpcmp_parts_d+0x4c> + 4136: 3b40 cmpnei r3, 0 + 4138: 0808 bt 0x4148 // 4148 <__fpcmp_parts_d+0x38> + 413a: 3001 movi r0, 1 + 413c: 1481 pop r4 + 413e: 3a42 cmpnei r2, 2 + 4140: 0c28 bf 0x4190 // 4190 <__fpcmp_parts_d+0x80> + 4142: 9161 ld.w r3, (r1, 0x4) + 4144: 3b40 cmpnei r3, 0 + 4146: 0bfa bt 0x413a // 413a <__fpcmp_parts_d+0x2a> + 4148: 3000 movi r0, 0 + 414a: 2800 subi r0, 1 + 414c: 1481 pop r4 + 414e: 3a44 cmpnei r2, 4 + 4150: 0c22 bf 0x4194 // 4194 <__fpcmp_parts_d+0x84> + 4152: 9061 ld.w r3, (r0, 0x4) + 4154: 3b40 cmpnei r3, 0 + 4156: 0bf9 bt 0x4148 // 4148 <__fpcmp_parts_d+0x38> + 4158: 3001 movi r0, 1 + 415a: 07f1 br 0x413c // 413c <__fpcmp_parts_d+0x2c> + 415c: 9082 ld.w r4, (r0, 0x8) + 415e: 9142 ld.w r2, (r1, 0x8) + 4160: 6509 cmplt r2, r4 + 4162: 0bea bt 0x4136 // 4136 <__fpcmp_parts_d+0x26> + 4164: 6491 cmplt r4, r2 + 4166: 080d bt 0x4180 // 4180 <__fpcmp_parts_d+0x70> + 4168: 9044 ld.w r2, (r0, 0x10) + 416a: 9083 ld.w r4, (r0, 0xc) + 416c: 9103 ld.w r0, (r1, 0xc) + 416e: 9124 ld.w r1, (r1, 0x10) + 4170: 6484 cmphs r1, r2 + 4172: 0fe2 bf 0x4136 // 4136 <__fpcmp_parts_d+0x26> + 4174: 644a cmpne r2, r1 + 4176: 0803 bt 0x417c // 417c <__fpcmp_parts_d+0x6c> + 4178: 6500 cmphs r0, r4 + 417a: 0fde bf 0x4136 // 4136 <__fpcmp_parts_d+0x26> + 417c: 6448 cmphs r2, r1 + 417e: 0805 bt 0x4188 // 4188 <__fpcmp_parts_d+0x78> + 4180: 3b40 cmpnei r3, 0 + 4182: 0fe3 bf 0x4148 // 4148 <__fpcmp_parts_d+0x38> + 4184: 3001 movi r0, 1 + 4186: 07db br 0x413c // 413c <__fpcmp_parts_d+0x2c> + 4188: 6486 cmpne r1, r2 + 418a: 0803 bt 0x4190 // 4190 <__fpcmp_parts_d+0x80> + 418c: 6410 cmphs r4, r0 + 418e: 0ff9 bf 0x4180 // 4180 <__fpcmp_parts_d+0x70> + 4190: 3000 movi r0, 0 + 4192: 1481 pop r4 + 4194: 9161 ld.w r3, (r1, 0x4) + 4196: 9041 ld.w r2, (r0, 0x4) + 4198: 5b09 subu r0, r3, r2 + 419a: 1481 pop r4 + +0000419c <__memset_fast>: + 419c: 14c3 push r4-r6 + 419e: 7444 zextb r1, r1 + 41a0: 3a40 cmpnei r2, 0 + 41a2: 0c1f bf 0x41e0 // 41e0 <__memset_fast+0x44> + 41a4: 6d43 mov r5, r0 + 41a6: 6d03 mov r4, r0 + 41a8: 3603 movi r6, 3 + 41aa: 6918 and r4, r6 + 41ac: 3c40 cmpnei r4, 0 + 41ae: 0c1a bf 0x41e2 // 41e2 <__memset_fast+0x46> + 41b0: a520 st.b r1, (r5, 0x0) + 41b2: 2a00 subi r2, 1 + 41b4: 3a40 cmpnei r2, 0 + 41b6: 0c15 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 41b8: 2500 addi r5, 1 + 41ba: 6d17 mov r4, r5 + 41bc: 3603 movi r6, 3 + 41be: 6918 and r4, r6 + 41c0: 3c40 cmpnei r4, 0 + 41c2: 0c10 bf 0x41e2 // 41e2 <__memset_fast+0x46> + 41c4: a520 st.b r1, (r5, 0x0) + 41c6: 2a00 subi r2, 1 + 41c8: 3a40 cmpnei r2, 0 + 41ca: 0c0b bf 0x41e0 // 41e0 <__memset_fast+0x44> + 41cc: 2500 addi r5, 1 + 41ce: 6d17 mov r4, r5 + 41d0: 3603 movi r6, 3 + 41d2: 6918 and r4, r6 + 41d4: 3c40 cmpnei r4, 0 + 41d6: 0c06 bf 0x41e2 // 41e2 <__memset_fast+0x46> + 41d8: a520 st.b r1, (r5, 0x0) + 41da: 2a00 subi r2, 1 + 41dc: 2500 addi r5, 1 + 41de: 0402 br 0x41e2 // 41e2 <__memset_fast+0x46> + 41e0: 1483 pop r4-r6 + 41e2: 4168 lsli r3, r1, 8 + 41e4: 6c4c or r1, r3 + 41e6: 4170 lsli r3, r1, 16 + 41e8: 6c4c or r1, r3 + 41ea: 3a2f cmplti r2, 16 + 41ec: 0809 bt 0x41fe // 41fe <__memset_fast+0x62> + 41ee: b520 st.w r1, (r5, 0x0) + 41f0: b521 st.w r1, (r5, 0x4) + 41f2: b522 st.w r1, (r5, 0x8) + 41f4: b523 st.w r1, (r5, 0xc) + 41f6: 2a0f subi r2, 16 + 41f8: 250f addi r5, 16 + 41fa: 3a2f cmplti r2, 16 + 41fc: 0ff9 bf 0x41ee // 41ee <__memset_fast+0x52> + 41fe: 3a23 cmplti r2, 4 + 4200: 0806 bt 0x420c // 420c <__memset_fast+0x70> + 4202: 2a03 subi r2, 4 + 4204: b520 st.w r1, (r5, 0x0) + 4206: 2503 addi r5, 4 + 4208: 3a23 cmplti r2, 4 + 420a: 0ffc bf 0x4202 // 4202 <__memset_fast+0x66> + 420c: 3a40 cmpnei r2, 0 + 420e: 0fe9 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 4210: 2a00 subi r2, 1 + 4212: a520 st.b r1, (r5, 0x0) + 4214: 3a40 cmpnei r2, 0 + 4216: 0fe5 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 4218: 2a00 subi r2, 1 + 421a: a521 st.b r1, (r5, 0x1) + 421c: 3a40 cmpnei r2, 0 + 421e: 0fe1 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 4220: a522 st.b r1, (r5, 0x2) + 4222: 1483 pop r4-r6 + +00004224 <__memcpy_fast>: + 4224: 14c3 push r4-r6 + 4226: 6d83 mov r6, r0 + 4228: 6d07 mov r4, r1 + 422a: 6d18 or r4, r6 + 422c: 3303 movi r3, 3 + 422e: 690c and r4, r3 + 4230: 3c40 cmpnei r4, 0 + 4232: 0c0b bf 0x4248 // 4248 <__memcpy_fast+0x24> + 4234: 3a40 cmpnei r2, 0 + 4236: 0c08 bf 0x4246 // 4246 <__memcpy_fast+0x22> + 4238: 8160 ld.b r3, (r1, 0x0) + 423a: 2100 addi r1, 1 + 423c: 2a00 subi r2, 1 + 423e: a660 st.b r3, (r6, 0x0) + 4240: 2600 addi r6, 1 + 4242: 3a40 cmpnei r2, 0 + 4244: 0bfa bt 0x4238 // 4238 <__memcpy_fast+0x14> + 4246: 1483 pop r4-r6 + 4248: 3a2f cmplti r2, 16 + 424a: 080e bt 0x4266 // 4266 <__memcpy_fast+0x42> + 424c: 91a0 ld.w r5, (r1, 0x0) + 424e: 9161 ld.w r3, (r1, 0x4) + 4250: 9182 ld.w r4, (r1, 0x8) + 4252: b6a0 st.w r5, (r6, 0x0) + 4254: 91a3 ld.w r5, (r1, 0xc) + 4256: b661 st.w r3, (r6, 0x4) + 4258: b682 st.w r4, (r6, 0x8) + 425a: b6a3 st.w r5, (r6, 0xc) + 425c: 2a0f subi r2, 16 + 425e: 210f addi r1, 16 + 4260: 260f addi r6, 16 + 4262: 3a2f cmplti r2, 16 + 4264: 0ff4 bf 0x424c // 424c <__memcpy_fast+0x28> + 4266: 3a23 cmplti r2, 4 + 4268: 0808 bt 0x4278 // 4278 <__memcpy_fast+0x54> + 426a: 9160 ld.w r3, (r1, 0x0) + 426c: 2a03 subi r2, 4 + 426e: 2103 addi r1, 4 + 4270: b660 st.w r3, (r6, 0x0) + 4272: 2603 addi r6, 4 + 4274: 3a23 cmplti r2, 4 + 4276: 0ffa bf 0x426a // 426a <__memcpy_fast+0x46> + 4278: 3a40 cmpnei r2, 0 + 427a: 0fe6 bf 0x4246 // 4246 <__memcpy_fast+0x22> + 427c: 8160 ld.b r3, (r1, 0x0) + 427e: 2100 addi r1, 1 + 4280: 2a00 subi r2, 1 + 4282: a660 st.b r3, (r6, 0x0) + 4284: 2600 addi r6, 1 + 4286: 07f9 br 0x4278 // 4278 <__memcpy_fast+0x54> + +00004288 <__GI_strncmp>: + 4288: 14c1 push r4 + 428a: 6cc3 mov r3, r0 + 428c: 6080 addu r2, r0 + 428e: 040c br 0x42a6 // 42a6 <__GI_strncmp+0x1e> + 4290: 8380 ld.b r4, (r3, 0x0) + 4292: 8100 ld.b r0, (r1, 0x0) + 4294: 6012 subu r0, r4 + 4296: 6c02 nor r0, r0 + 4298: 2000 addi r0, 1 + 429a: 3840 cmpnei r0, 0 + 429c: 0808 bt 0x42ac // 42ac <__GI_strncmp+0x24> + 429e: 3c40 cmpnei r4, 0 + 42a0: 0c06 bf 0x42ac // 42ac <__GI_strncmp+0x24> + 42a2: 2300 addi r3, 1 + 42a4: 2100 addi r1, 1 + 42a6: 648c cmphs r3, r2 + 42a8: 0ff4 bf 0x4290 // 4290 <__GI_strncmp+0x8> + 42aa: 3000 movi r0, 0 + 42ac: 1481 pop r4 + +Disassembly of section .text.__main: + +000042b0 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 42b0: 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 ) { + 42b2: 1009 lrw r0, 0x20000000 // 42d4 <__main+0x24> + 42b4: 1029 lrw r1, 0xd1c8 // 42d8 <__main+0x28> + 42b6: 6442 cmpne r0, r1 + 42b8: 0c05 bf 0x42c2 // 42c2 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 42ba: 1049 lrw r2, 0x200000b0 // 42dc <__main+0x2c> + 42bc: 6082 subu r2, r0 + 42be: e3ffffb3 bsr 0x4224 // 4224 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 42c2: 1048 lrw r2, 0x20000bcc // 42e0 <__main+0x30> + 42c4: 1008 lrw r0, 0x200000b0 // 42e4 <__main+0x34> + 42c6: 640a cmpne r2, r0 + 42c8: 0c05 bf 0x42d2 // 42d2 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 42ca: 6082 subu r2, r0 + 42cc: 3100 movi r1, 0 + 42ce: e3ffff67 bsr 0x419c // 419c <__memset_fast> + } + + +} + 42d2: 1490 pop r15 + 42d4: 20000000 .long 0x20000000 + 42d8: 0000d1c8 .long 0x0000d1c8 + 42dc: 200000b0 .long 0x200000b0 + 42e0: 20000bcc .long 0x20000bcc + 42e4: 200000b0 .long 0x200000b0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +000042e8 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 42e8: 3848 cmpnei r0, 8 + 42ea: 080a bt 0x42fe // 42fe + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 42ec: 107a lrw r3, 0x2000004c // 4354 + 42ee: 32ff movi r2, 255 + 42f0: 9320 ld.w r1, (r3, 0x0) + 42f2: 9160 ld.w r3, (r1, 0x0) + 42f4: 424c lsli r2, r2, 12 + 42f6: 68c9 andn r3, r2 + 42f8: 3bae bseti r3, 14 + 42fa: 3bb2 bseti r3, 18 + 42fc: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 42fe: 1077 lrw r3, 0x2000005c // 4358 + 4300: 9360 ld.w r3, (r3, 0x0) + 4302: 9341 ld.w r2, (r3, 0x4) + 4304: 6c80 or r2, r0 + 4306: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 4308: 9343 ld.w r2, (r3, 0xc) + 430a: 6880 and r2, r0 + 430c: 3a40 cmpnei r2, 0 + 430e: 0ffd bf 0x4308 // 4308 + switch(ENDIS_X) + 4310: 3842 cmpnei r0, 2 + 4312: 0807 bt 0x4320 // 4320 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 4314: 3102 movi r1, 2 + 4316: 9344 ld.w r2, (r3, 0x10) + 4318: 6884 and r2, r1 + 431a: 3a40 cmpnei r2, 0 + 431c: 0ffd bf 0x4316 // 4316 + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 431e: 783c jmp r15 + switch(ENDIS_X) + 4320: 3802 cmphsi r0, 3 + 4322: 0809 bt 0x4334 // 4334 + 4324: 3841 cmpnei r0, 1 + 4326: 0bfc bt 0x431e // 431e + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 4328: 3101 movi r1, 1 + 432a: 9344 ld.w r2, (r3, 0x10) + 432c: 6884 and r2, r1 + 432e: 3a40 cmpnei r2, 0 + 4330: 0ffd bf 0x432a // 432a + 4332: 07f6 br 0x431e // 431e + switch(ENDIS_X) + 4334: 3848 cmpnei r0, 8 + 4336: 0807 bt 0x4344 // 4344 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 4338: 3108 movi r1, 8 + 433a: 9344 ld.w r2, (r3, 0x10) + 433c: 6884 and r2, r1 + 433e: 3a40 cmpnei r2, 0 + 4340: 0ffd bf 0x433a // 433a + 4342: 07ee br 0x431e // 431e + switch(ENDIS_X) + 4344: 3850 cmpnei r0, 16 + 4346: 0bec bt 0x431e // 431e + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 4348: 3110 movi r1, 16 + 434a: 9344 ld.w r2, (r3, 0x10) + 434c: 6884 and r2, r1 + 434e: 3a40 cmpnei r2, 0 + 4350: 0ffd bf 0x434a // 434a + 4352: 07e6 br 0x431e // 431e + 4354: 2000004c .long 0x2000004c + 4358: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +0000435c : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 435c: 106c lrw r3, 0x2000005c // 438c + 435e: 104d lrw r2, 0xffff // 4390 + 4360: 9360 ld.w r3, (r3, 0x0) + 4362: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 4364: 104c lrw r2, 0xffffff // 4394 + 4366: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 4368: 104c lrw r2, 0xd22d0000 // 4398 + 436a: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 436c: 104c lrw r2, 0x70ff3bff // 439c + 436e: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 4370: 320a movi r2, 10 + 4372: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 4374: 102b lrw r1, 0x70c // 43a0 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 4376: 237f addi r3, 128 + 4378: 3200 movi r2, 0 + 437a: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 437c: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 437e: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 4380: 1029 lrw r1, 0x3fe // 43a4 + 4382: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 4384: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 4386: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 4388: b35f st.w r2, (r3, 0x7c) +} + 438a: 783c jmp r15 + 438c: 2000005c .long 0x2000005c + 4390: 0000ffff .long 0x0000ffff + 4394: 00ffffff .long 0x00ffffff + 4398: d22d0000 .long 0xd22d0000 + 439c: 70ff3bff .long 0x70ff3bff + 43a0: 0000070c .long 0x0000070c + 43a4: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +000043a8 : +{ + 43a8: 14d0 push r15 + if (NewState != DISABLE) + 43aa: 3840 cmpnei r0, 0 + 43ac: 0c05 bf 0x43b6 // 43b6 + 43ae: 6c07 mov r0, r1 + 43b0: e3ffff9c bsr 0x42e8 // 42e8 +} + 43b4: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 43b6: 1068 lrw r3, 0x2000005c // 43d4 + 43b8: 9360 ld.w r3, (r3, 0x0) + 43ba: 9342 ld.w r2, (r3, 0x8) + 43bc: 6c84 or r2, r1 + 43be: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 43c0: 9343 ld.w r2, (r3, 0xc) + 43c2: 6884 and r2, r1 + 43c4: 3a40 cmpnei r2, 0 + 43c6: 0bfd bt 0x43c0 // 43c0 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 43c8: 237f addi r3, 128 + 43ca: 9301 ld.w r0, (r3, 0x4) + 43cc: 6c40 or r1, r0 + 43ce: b321 st.w r1, (r3, 0x4) +} + 43d0: 07f2 br 0x43b4 // 43b4 + 43d2: 0000 bkpt + 43d4: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +000043d8 : +//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 ) +{ + 43d8: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 43da: 3b48 cmpnei r3, 8 + 43dc: 0828 bt 0x442c // 442c + { + IFC->CEDR=0X01; //CLKEN + 43de: 109d lrw r4, 0x20000060 // 4450 + 43e0: 3501 movi r5, 1 + 43e2: 9480 ld.w r4, (r4, 0x0) + 43e4: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 43e6: 3504 movi r5, 4 + 43e8: 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)) + 43ea: 5b83 subi r4, r3, 1 + 43ec: 3c01 cmphsi r4, 2 + 43ee: 0c2b bf 0x4444 // 4444 + { + 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)) + 43f0: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 43f2: 3c04 cmphsi r4, 5 + 43f4: 0c03 bf 0x43fa // 43fa + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 43f6: 3b4b cmpnei r3, 11 + 43f8: 0807 bt 0x4406 // 4406 + { + IFC->CEDR=0X01; //CLKEN + 43fa: 1076 lrw r3, 0x20000060 // 4450 + 43fc: 3401 movi r4, 1 + 43fe: 9360 ld.w r3, (r3, 0x0) + 4400: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 4402: 3400 movi r4, 0 + 4404: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 4406: 1094 lrw r4, 0xd22d0000 // 4454 + 4408: 6c10 or r0, r4 + 440a: 1074 lrw r3, 0x2000005c // 4458 + 440c: 6c40 or r1, r0 + 440e: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 4410: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 4412: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 4414: 4001 lsli r0, r0, 1 + 4416: 9324 ld.w r1, (r3, 0x10) + 4418: 6840 and r1, r0 + 441a: 3940 cmpnei r1, 0 + 441c: 0ffd bf 0x4416 // 4416 + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 441e: 1030 lrw r1, 0xc33c0000 // 445c + 4420: 6c48 or r1, r2 + 4422: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 4424: 9328 ld.w r1, (r3, 0x20) + 4426: 644a cmpne r2, r1 + 4428: 0bfe bt 0x4424 // 4424 +} + 442a: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 442c: 3b40 cmpnei r3, 0 + 442e: 0c03 bf 0x4434 // 4434 + 4430: 3b49 cmpnei r3, 9 + 4432: 0807 bt 0x4440 // 4440 + IFC->CEDR=0X01; //CLKEN + 4434: 1087 lrw r4, 0x20000060 // 4450 + 4436: 3501 movi r5, 1 + 4438: 9480 ld.w r4, (r4, 0x0) + 443a: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 443c: 3502 movi r5, 2 + 443e: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 4440: 3b4a cmpnei r3, 10 + 4442: 0bd4 bt 0x43ea // 43ea + IFC->CEDR=0X01; //CLKEN + 4444: 1083 lrw r4, 0x20000060 // 4450 + 4446: 3501 movi r5, 1 + 4448: 9480 ld.w r4, (r4, 0x0) + 444a: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 444c: b4a5 st.w r5, (r4, 0x14) + 444e: 07d1 br 0x43f0 // 43f0 + 4450: 20000060 .long 0x20000060 + 4454: d22d0000 .long 0xd22d0000 + 4458: 2000005c .long 0x2000005c + 445c: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00004460 : +//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) +{ + 4460: 14d1 push r4, r15 + 4462: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 4464: 3110 movi r1, 16 + 4466: 3000 movi r0, 0 + 4468: e3ffffa0 bsr 0x43a8 // 43a8 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 446c: 1066 lrw r3, 0x2000005c // 4484 + 446e: 9360 ld.w r3, (r3, 0x0) + 4470: 9319 ld.w r0, (r3, 0x64) + 4472: 3884 bclri r0, 4 + 4474: 3885 bclri r0, 5 + 4476: 6c10 or r0, r4 + 4478: b319 st.w r0, (r3, 0x64) + 447a: 3010 movi r0, 16 + 447c: e3ffff36 bsr 0x42e8 // 42e8 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 4480: 1491 pop r4, r15 + 4482: 0000 bkpt + 4484: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00004488 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 4488: 106c lrw r3, 0x2000005c // 44b8 + if(NewState != DISABLE) + 448a: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 448c: 9360 ld.w r3, (r3, 0x0) + 448e: 237f addi r3, 128 + if(NewState != DISABLE) + 4490: 0c0a bf 0x44a4 // 44a4 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 4492: 104b lrw r2, 0x78870000 // 44bc + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 4494: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 4496: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 4498: 4125 lsli r1, r1, 5 + 449a: 934d ld.w r2, (r3, 0x34) + 449c: 6884 and r2, r1 + 449e: 3a40 cmpnei r2, 0 + 44a0: 0ffd bf 0x449a // 449a + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 44a2: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 44a4: 1047 lrw r2, 0x788755aa // 44c0 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 44a6: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 44a8: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 44aa: 4125 lsli r1, r1, 5 + 44ac: 934d ld.w r2, (r3, 0x34) + 44ae: 6884 and r2, r1 + 44b0: 3a40 cmpnei r2, 0 + 44b2: 0bfd bt 0x44ac // 44ac + 44b4: 07f7 br 0x44a2 // 44a2 + 44b6: 0000 bkpt + 44b8: 2000005c .long 0x2000005c + 44bc: 78870000 .long 0x78870000 + 44c0: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +000044c4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 44c4: 1064 lrw r3, 0x2000005c // 44d4 + 44c6: 32b4 movi r2, 180 + 44c8: 9360 ld.w r3, (r3, 0x0) + 44ca: 237f addi r3, 128 + 44cc: 4257 lsli r2, r2, 23 + 44ce: b34e st.w r2, (r3, 0x38) +} + 44d0: 783c jmp r15 + 44d2: 0000 bkpt + 44d4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000044d8 : +//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; + 44d8: 1044 lrw r2, 0x87780000 // 44e8 + 44da: 1065 lrw r3, 0x2000005c // 44ec + 44dc: 6c48 or r1, r2 + 44de: 9360 ld.w r3, (r3, 0x0) + 44e0: 6c04 or r0, r1 + 44e2: 237f addi r3, 128 + 44e4: b30d st.w r0, (r3, 0x34) +} + 44e6: 783c jmp r15 + 44e8: 87780000 .long 0x87780000 + 44ec: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000044f0 : +//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) +{ + 44f0: 14c3 push r4-r6 + 44f2: 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; + 44f4: 10c5 lrw r6, 0xb44b0000 // 4508 + 44f6: 6d18 or r4, r6 + 44f8: 6cd0 or r3, r4 + 44fa: 6c8c or r2, r3 + 44fc: 6c48 or r1, r2 + 44fe: 10a4 lrw r5, 0x2000005c // 450c + 4500: 6c04 or r0, r1 + 4502: 95a0 ld.w r5, (r5, 0x0) + 4504: b513 st.w r0, (r5, 0x4c) +} + 4506: 1483 pop r4-r6 + 4508: b44b0000 .long 0xb44b0000 + 450c: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00004510 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 4510: 1066 lrw r3, 0x2000005c // 4528 + 4512: 3180 movi r1, 128 + 4514: 9360 ld.w r3, (r3, 0x0) + 4516: 3280 movi r2, 128 + 4518: 604c addu r1, r3 + 451a: 4244 lsli r2, r2, 4 + 451c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 451e: 935d ld.w r2, (r3, 0x74) + 4520: 3aab bseti r2, 11 + 4522: b35d st.w r2, (r3, 0x74) +} + 4524: 783c jmp r15 + 4526: 0000 bkpt + 4528: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +0000452c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 452c: 1066 lrw r3, 0x2000005c // 4544 + 452e: 3180 movi r1, 128 + 4530: 9360 ld.w r3, (r3, 0x0) + 4532: 3280 movi r2, 128 + 4534: 604c addu r1, r3 + 4536: 4241 lsli r2, r2, 1 + 4538: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 453a: 935d ld.w r2, (r3, 0x74) + 453c: 3aa8 bseti r2, 8 + 453e: b35d st.w r2, (r3, 0x74) +} + 4540: 783c jmp r15 + 4542: 0000 bkpt + 4544: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00004548 : +//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) + 4548: 3a40 cmpnei r2, 0 + 454a: 0c04 bf 0x4552 // 4552 + 454c: 3a41 cmpnei r2, 1 + 454e: 0c0e bf 0x456a // 456a + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 4550: 783c jmp r15 + 4552: 106d lrw r3, 0x2000005c // 4584 + if(NewState != DISABLE) + 4554: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 4556: 9360 ld.w r3, (r3, 0x0) + 4558: 237f addi r3, 128 + 455a: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 455c: 0c04 bf 0x4564 // 4564 + SYSCON->EXIRT |=EXIPIN; + 455e: 6c48 or r1, r2 + 4560: b325 st.w r1, (r3, 0x14) + 4562: 07f7 br 0x4550 // 4550 + SYSCON->EXIRT &=~EXIPIN; + 4564: 6885 andn r2, r1 + 4566: b345 st.w r2, (r3, 0x14) + 4568: 07f4 br 0x4550 // 4550 + 456a: 1067 lrw r3, 0x2000005c // 4584 + if(NewState != DISABLE) + 456c: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 456e: 9360 ld.w r3, (r3, 0x0) + 4570: 237f addi r3, 128 + 4572: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 4574: 0c04 bf 0x457c // 457c + SYSCON->EXIFT |=EXIPIN; + 4576: 6c48 or r1, r2 + 4578: b326 st.w r1, (r3, 0x18) + 457a: 07eb br 0x4550 // 4550 + SYSCON->EXIFT &=~EXIPIN; + 457c: 6885 andn r2, r1 + 457e: b346 st.w r2, (r3, 0x18) +} + 4580: 07e8 br 0x4550 // 4550 + 4582: 0000 bkpt + 4584: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00004588 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 4588: 106b lrw r3, 0x2000005c // 45b4 + 458a: 104c lrw r2, 0x3fff // 45b8 + 458c: 9360 ld.w r3, (r3, 0x0) + 458e: 237f addi r3, 128 + if(NewState != DISABLE) + 4590: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 4592: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 4594: 0c0c bf 0x45ac // 45ac + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 4596: 9347 ld.w r2, (r3, 0x1c) + 4598: 6c84 or r2, r1 + 459a: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 459c: 9349 ld.w r2, (r3, 0x24) + 459e: 6884 and r2, r1 + 45a0: 3a40 cmpnei r2, 0 + 45a2: 0ffd bf 0x459c // 459c + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 45a4: 934b ld.w r2, (r3, 0x2c) + 45a6: 6c48 or r1, r2 + 45a8: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 45aa: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 45ac: 9348 ld.w r2, (r3, 0x20) + 45ae: 6c48 or r1, r2 + 45b0: b328 st.w r1, (r3, 0x20) +} + 45b2: 07fc br 0x45aa // 45aa + 45b4: 2000005c .long 0x2000005c + 45b8: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +000045bc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 45bc: b02b st.w r1, (r0, 0x2c) +} + 45be: 783c jmp r15 + +Disassembly of section .text.EXI3_Int_Enable: + +000045c0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 45c0: 3380 movi r3, 128 + 45c2: 436f lsli r3, r3, 15 + 45c4: 1042 lrw r2, 0xe000e100 // 45cc + 45c6: b260 st.w r3, (r2, 0x0) +} + 45c8: 783c jmp r15 + 45ca: 0000 bkpt + 45cc: e000e100 .long 0xe000e100 + +Disassembly of section .text.EXI4_Int_Enable: + +000045d0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 45d0: 3380 movi r3, 128 + 45d2: 4370 lsli r3, r3, 16 + 45d4: 1042 lrw r2, 0xe000e100 // 45dc + 45d6: b260 st.w r3, (r2, 0x0) +} + 45d8: 783c jmp r15 + 45da: 0000 bkpt + 45dc: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +000045e0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 45e0: 3202 movi r2, 2 + 45e2: 1062 lrw r3, 0xe000e100 // 45e8 + 45e4: b340 st.w r2, (r3, 0x0) +} + 45e6: 783c jmp r15 + 45e8: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000045ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 45ec: 3202 movi r2, 2 + 45ee: 1062 lrw r3, 0xe000e180 // 45f4 + 45f0: b340 st.w r2, (r3, 0x0) +} + 45f2: 783c jmp r15 + 45f4: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_Software_Reset: + +000045f8 : +//EntryParameter:None +//ReturnValue:MCU reset +/*************************************************************/ +void SYSCON_Software_Reset(void) +{ + SYSCON->IDCCR=IDCCR_KEY|SWRST; + 45f8: 1063 lrw r3, 0x2000005c // 4604 + 45fa: 1044 lrw r2, 0xe11e0080 // 4608 + 45fc: 9360 ld.w r3, (r3, 0x0) + 45fe: b340 st.w r2, (r3, 0x0) +} + 4600: 783c jmp r15 + 4602: 0000 bkpt + 4604: 2000005c .long 0x2000005c + 4608: e11e0080 .long 0xe11e0080 + +Disassembly of section .text.SYSCON_INT_Priority: + +0000460c : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 460c: 1066 lrw r3, 0xe000e400 // 4624 + 460e: 1047 lrw r2, 0xc0c0c0c0 // 4628 + 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 + 4610: 1027 lrw r1, 0xc0c000c0 // 462c + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 4612: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 4614: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 4616: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 4618: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 461a: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 461c: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 461e: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 4620: b347 st.w r2, (r3, 0x1c) +} + 4622: 783c jmp r15 + 4624: e000e400 .long 0xe000e400 + 4628: c0c0c0c0 .long 0xc0c0c0c0 + 462c: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00004630 : +//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) +{ + 4630: 14c1 push r4 + 4632: 4862 lsri r3, r0, 2 + 4634: 4342 lsli r2, r3, 2 + 4636: 106a lrw r3, 0x20000064 // 465c + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 4638: 3403 movi r4, 3 + 463a: 9360 ld.w r3, (r3, 0x0) + 463c: 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)); + 464e: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 4652: 7040 lsl r1, r0 + 4654: 6c48 or r1, r2 + 4656: b320 st.w r1, (r3, 0x0) +} + 4658: 1481 pop r4 + 465a: 0000 bkpt + 465c: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_Init: + +00004660 : +//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) +{ + 4660: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 4662: 3907 cmphsi r1, 8 +{ + 4664: 6d03 mov r4, r0 + if(PinNum<8) + 4666: 0830 bt 0x46c6 // 46c6 + { + switch (PinNum) + 4668: 5903 subi r0, r1, 1 + 466a: 3806 cmphsi r0, 7 + 466c: 0827 bt 0x46ba // 46ba + 466e: e3fff747 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 4672: 1004 .short 0x1004 + 4674: 1d1a1613 .long 0x1d1a1613 + 4678: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 467a: 3300 movi r3, 0 + 467c: 3104 movi r1, 4 + 467e: 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) + 4680: 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< + 4696: 07f5 br 0x4680 // 4680 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 4698: 310c movi r1, 12 + 469a: 1166 lrw r3, 0xffff0fff // 4730 + 469c: 07f2 br 0x4680 // 4680 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 469e: 3110 movi r1, 16 + 46a0: 1165 lrw r3, 0xfff10000 // 4734 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 46a2: 2b00 subi r3, 1 + 46a4: 07ee br 0x4680 // 4680 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 46a6: 3114 movi r1, 20 + 46a8: 1164 lrw r3, 0xff100000 // 4738 + 46aa: 07fc br 0x46a2 // 46a2 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 46ac: 33f1 movi r3, 241 + 46ae: 3118 movi r1, 24 + 46b0: 4378 lsli r3, r3, 24 + 46b2: 07f8 br 0x46a2 // 46a2 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 46b4: 311c movi r1, 28 + 46b6: 1162 lrw r3, 0xfffffff // 473c + 46b8: 07e4 br 0x4680 // 4680 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 46ba: 3300 movi r3, 0 + 46bc: 3100 movi r1, 0 + 46be: 2b0f subi r3, 16 + 46c0: 07e0 br 0x4680 // 4680 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 46c6: 390f cmphsi r1, 16 + 46c8: 0be4 bt 0x4690 // 4690 + switch (PinNum) + 46ca: 2908 subi r1, 9 + 46cc: 3906 cmphsi r1, 7 + 46ce: 6c07 mov r0, r1 + 46d0: 0827 bt 0x471e // 471e + 46d2: e3fff715 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 46d6: 1004 .short 0x1004 + 46d8: 1d1a1613 .long 0x1d1a1613 + 46dc: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 46de: 3300 movi r3, 0 + 46e0: 3104 movi r1, 4 + 46e2: 2bf0 subi r3, 241 + if (Dir) + 46e4: 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; + 46f6: 3108 movi r1, 8 + 46f8: 106d lrw r3, 0xfffff0ff // 472c + 46fa: 07f5 br 0x46e4 // 46e4 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 46fc: 310c movi r1, 12 + 46fe: 106d lrw r3, 0xffff0fff // 4730 + 4700: 07f2 br 0x46e4 // 46e4 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 4702: 3110 movi r1, 16 + 4704: 106c lrw r3, 0xfff10000 // 4734 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 4706: 2b00 subi r3, 1 + 4708: 07ee br 0x46e4 // 46e4 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 470a: 3114 movi r1, 20 + 470c: 106b lrw r3, 0xff100000 // 4738 + 470e: 07fc br 0x4706 // 4706 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 4710: 33f1 movi r3, 241 + 4712: 3118 movi r1, 24 + 4714: 4378 lsli r3, r3, 24 + 4716: 07f8 br 0x4706 // 4706 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 4718: 311c movi r1, 28 + 471a: 1069 lrw r3, 0xfffffff // 473c + 471c: 07e4 br 0x46e4 // 46e4 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 471e: 3300 movi r3, 0 + 4720: 3100 movi r1, 0 + 4722: 2b0f subi r3, 16 + 4724: 07e0 br 0x46e4 // 46e4 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 472a: 0000 bkpt + 472c: fffff0ff .long 0xfffff0ff + 4730: ffff0fff .long 0xffff0fff + 4734: fff10000 .long 0xfff10000 + 4738: ff100000 .long 0xff100000 + 473c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00004740 : +//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)); + 4740: 4121 lsli r1, r1, 1 + 4742: 3203 movi r2, 3 + 4744: 9068 ld.w r3, (r0, 0x20) + 4746: 7084 lsl r2, r1 + 4748: 68c9 andn r3, r2 + 474a: 3201 movi r2, 1 + 474c: 7084 lsl r2, r1 + 474e: 6cc8 or r3, r2 + 4750: b068 st.w r3, (r0, 0x20) +} + 4752: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00004754 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 4754: 4121 lsli r1, r1, 1 + 4756: 3301 movi r3, 1 + 4758: 9049 ld.w r2, (r0, 0x24) + 475a: 70c4 lsl r3, r1 + 475c: 6cc8 or r3, r2 + 475e: b069 st.w r3, (r0, 0x24) +} + 4760: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00004764 : +//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) +{ + 4764: 14c1 push r4 + 4766: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 4768: 3a0f cmphsi r2, 16 + 476a: 084f bt 0x4808 // 4808 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 476c: 6ccb mov r3, r2 + 476e: 3b83 bclri r3, 3 + 4770: 3b40 cmpnei r3, 0 + 4772: 0813 bt 0x4798 // 4798 + { + R_data_temp=0xfffffff0; + 4774: 2b0f subi r3, 16 + 4776: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 4778: 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) + 477a: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 477c: dc6e0003 st.b r3, (r14, 0x3) + 4780: 1176 lrw r3, 0x20000044 // 4858 + if(Selete_EXI_x<8) + 4782: 0c38 bf 0x47f2 // 47f2 + { + 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)) + 4798: 3b41 cmpnei r3, 1 + 479a: 0806 bt 0x47a6 // 47a6 + R_data_temp=0xffffff0f; + 479c: 3300 movi r3, 0 + 479e: 2bf0 subi r3, 241 + 47a0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 47a2: 3304 movi r3, 4 + 47a4: 07eb br 0x477a // 477a + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 47a6: 3b42 cmpnei r3, 2 + 47a8: 0805 bt 0x47b2 // 47b2 + R_data_temp=0xfffff0ff; + 47aa: 116d lrw r3, 0xfffff0ff // 485c + 47ac: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 47ae: 3308 movi r3, 8 + 47b0: 07e5 br 0x477a // 477a + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 47b2: 3b43 cmpnei r3, 3 + 47b4: 0805 bt 0x47be // 47be + R_data_temp=0xffff0fff; + 47b6: 116b lrw r3, 0xffff0fff // 4860 + 47b8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 47ba: 330c movi r3, 12 + 47bc: 07df br 0x477a // 477a + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 47be: 3b44 cmpnei r3, 4 + 47c0: 0806 bt 0x47cc // 47cc + R_data_temp=0xfff0ffff; + 47c2: 1169 lrw r3, 0xfff10000 // 4864 + 47c4: 2b00 subi r3, 1 + 47c6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 47c8: 3310 movi r3, 16 + 47ca: 07d8 br 0x477a // 477a + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 47cc: 3b45 cmpnei r3, 5 + 47ce: 0806 bt 0x47da // 47da + R_data_temp=0xff0fffff; + 47d0: 1166 lrw r3, 0xff100000 // 4868 + 47d2: 2b00 subi r3, 1 + 47d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 47d6: 3314 movi r3, 20 + 47d8: 07d1 br 0x477a // 477a + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 47da: 3b46 cmpnei r3, 6 + 47dc: 0807 bt 0x47ea // 47ea + R_data_temp=0xf0ffffff; + 47de: 33f1 movi r3, 241 + 47e0: 4378 lsli r3, r3, 24 + 47e2: 2b00 subi r3, 1 + 47e4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 47e6: 3318 movi r3, 24 + 47e8: 07c9 br 0x477a // 477a + R_data_temp=0x0fffffff; + 47ea: 1161 lrw r3, 0xfffffff // 486c + 47ec: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 47ee: 331c movi r3, 28 + 47f0: 07c5 br 0x477a // 477a + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 4804: 1402 addi r14, r14, 8 + 4806: 1481 pop r4 + else if(Selete_EXI_x<20) + 4808: 3a13 cmphsi r2, 20 + 480a: 0bfd bt 0x4804 // 4804 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 480c: 3840 cmpnei r0, 0 + 480e: 0814 bt 0x4836 // 4836 + 4810: 3300 movi r3, 0 + 4812: 2b0f subi r3, 16 + 4814: 60c8 addu r3, r2 + 4816: 3b01 cmphsi r3, 2 + 4818: 0bf6 bt 0x4804 // 4804 + if(Selete_EXI_x==16) + 481a: 3a50 cmpnei r2, 16 + 481c: 106f lrw r3, 0x20000044 // 4858 + 481e: 0806 bt 0x482a // 482a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 4820: 9340 ld.w r2, (r3, 0x0) + 4822: 9262 ld.w r3, (r2, 0x8) + 4824: 6c4c or r1, r3 + 4826: b222 st.w r1, (r2, 0x8) + 4828: 07ee br 0x4804 // 4804 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 482a: 9360 ld.w r3, (r3, 0x0) + 482c: 9342 ld.w r2, (r3, 0x8) + 482e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 4830: 6c48 or r1, r2 + 4832: b322 st.w r1, (r3, 0x8) +} + 4834: 07e8 br 0x4804 // 4804 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 4836: 3842 cmpnei r0, 2 + 4838: 0be6 bt 0x4804 // 4804 + 483a: 3300 movi r3, 0 + 483c: 2b11 subi r3, 18 + 483e: 60c8 addu r3, r2 + 4840: 3b01 cmphsi r3, 2 + 4842: 0be1 bt 0x4804 // 4804 + 4844: 1065 lrw r3, 0x20000044 // 4858 + if(Selete_EXI_x==18) + 4846: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 4848: 9360 ld.w r3, (r3, 0x0) + 484a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 484c: 0803 bt 0x4852 // 4852 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 484e: 4128 lsli r1, r1, 8 + 4850: 07f0 br 0x4830 // 4830 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 4852: 412c lsli r1, r1, 12 + 4854: 07ee br 0x4830 // 4830 + 4856: 0000 bkpt + 4858: 20000044 .long 0x20000044 + 485c: fffff0ff .long 0xfffff0ff + 4860: ffff0fff .long 0xffff0fff + 4864: fff10000 .long 0xfff10000 + 4868: ff100000 .long 0xff100000 + 486c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00004870 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 4870: 14d0 push r15 + switch (EXI_IO) + 4872: 380f cmphsi r0, 16 + 4874: 0812 bt 0x4898 // 4898 + 4876: 117d lrw r3, 0x2000004c // 4968 + 4878: e3fff642 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 487c: 1d150f08 .long 0x1d150f08 + 4880: 39322b24 .long 0x39322b24 + 4884: 544c463f .long 0x544c463f + 4888: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 488c: 9340 ld.w r2, (r3, 0x0) + 488e: 9260 ld.w r3, (r2, 0x0) + 4890: 310f movi r1, 15 + 4892: 68c5 andn r3, r1 + 4894: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 4896: 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; + } +} + 4898: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 489a: 9340 ld.w r2, (r3, 0x0) + 489c: 9260 ld.w r3, (r2, 0x0) + 489e: 31f0 movi r1, 240 + 48a0: 68c5 andn r3, r1 + 48a2: 3ba4 bseti r3, 4 + 48a4: 07f9 br 0x4896 // 4896 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 48a6: 9320 ld.w r1, (r3, 0x0) + 48a8: 32f0 movi r2, 240 + 48aa: 9160 ld.w r3, (r1, 0x0) + 48ac: 4244 lsli r2, r2, 4 + 48ae: 68c9 andn r3, r2 + 48b0: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 48b2: b160 st.w r3, (r1, 0x0) + 48b4: 07f2 br 0x4898 // 4898 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 48b6: 9320 ld.w r1, (r3, 0x0) + 48b8: 32f0 movi r2, 240 + 48ba: 9160 ld.w r3, (r1, 0x0) + 48bc: 4248 lsli r2, r2, 8 + 48be: 68c9 andn r3, r2 + 48c0: 3bac bseti r3, 12 + 48c2: 07f8 br 0x48b2 // 48b2 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 48c4: 9320 ld.w r1, (r3, 0x0) + 48c6: 32f0 movi r2, 240 + 48c8: 9160 ld.w r3, (r1, 0x0) + 48ca: 424c lsli r2, r2, 12 + 48cc: 68c9 andn r3, r2 + 48ce: 3bb0 bseti r3, 16 + 48d0: 07f1 br 0x48b2 // 48b2 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 48d2: 9320 ld.w r1, (r3, 0x0) + 48d4: 32f0 movi r2, 240 + 48d6: 9160 ld.w r3, (r1, 0x0) + 48d8: 4250 lsli r2, r2, 16 + 48da: 68c9 andn r3, r2 + 48dc: 3bb4 bseti r3, 20 + 48de: 07ea br 0x48b2 // 48b2 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 48e0: 9320 ld.w r1, (r3, 0x0) + 48e2: 32f0 movi r2, 240 + 48e4: 9160 ld.w r3, (r1, 0x0) + 48e6: 4254 lsli r2, r2, 20 + 48e8: 68c9 andn r3, r2 + 48ea: 3bb8 bseti r3, 24 + 48ec: 07e3 br 0x48b2 // 48b2 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 48ee: 9340 ld.w r2, (r3, 0x0) + 48f0: 9260 ld.w r3, (r2, 0x0) + 48f2: 4364 lsli r3, r3, 4 + 48f4: 4b64 lsri r3, r3, 4 + 48f6: 3bbc bseti r3, 28 + 48f8: 07cf br 0x4896 // 4896 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 48fa: 9340 ld.w r2, (r3, 0x0) + 48fc: 9261 ld.w r3, (r2, 0x4) + 48fe: 310f movi r1, 15 + 4900: 68c5 andn r3, r1 + 4902: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 4904: b261 st.w r3, (r2, 0x4) +} + 4906: 07c9 br 0x4898 // 4898 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 4908: 9340 ld.w r2, (r3, 0x0) + 490a: 9261 ld.w r3, (r2, 0x4) + 490c: 31f0 movi r1, 240 + 490e: 68c5 andn r3, r1 + 4910: 3ba4 bseti r3, 4 + 4912: 07f9 br 0x4904 // 4904 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 4914: 9320 ld.w r1, (r3, 0x0) + 4916: 32f0 movi r2, 240 + 4918: 9161 ld.w r3, (r1, 0x4) + 491a: 4244 lsli r2, r2, 4 + 491c: 68c9 andn r3, r2 + 491e: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 4920: b161 st.w r3, (r1, 0x4) + 4922: 07bb br 0x4898 // 4898 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 4924: 9320 ld.w r1, (r3, 0x0) + 4926: 32f0 movi r2, 240 + 4928: 9161 ld.w r3, (r1, 0x4) + 492a: 4248 lsli r2, r2, 8 + 492c: 68c9 andn r3, r2 + 492e: 3bac bseti r3, 12 + 4930: 07f8 br 0x4920 // 4920 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 4932: 9320 ld.w r1, (r3, 0x0) + 4934: 32f0 movi r2, 240 + 4936: 9161 ld.w r3, (r1, 0x4) + 4938: 424c lsli r2, r2, 12 + 493a: 68c9 andn r3, r2 + 493c: 3bb0 bseti r3, 16 + 493e: 07f1 br 0x4920 // 4920 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 4940: 9320 ld.w r1, (r3, 0x0) + 4942: 32f0 movi r2, 240 + 4944: 9161 ld.w r3, (r1, 0x4) + 4946: 4250 lsli r2, r2, 16 + 4948: 68c9 andn r3, r2 + 494a: 3bb4 bseti r3, 20 + 494c: 07ea br 0x4920 // 4920 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 494e: 9320 ld.w r1, (r3, 0x0) + 4950: 32f0 movi r2, 240 + 4952: 9161 ld.w r3, (r1, 0x4) + 4954: 4254 lsli r2, r2, 20 + 4956: 68c9 andn r3, r2 + 4958: 3bb8 bseti r3, 24 + 495a: 07e3 br 0x4920 // 4920 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 495c: 9340 ld.w r2, (r3, 0x0) + 495e: 9261 ld.w r3, (r2, 0x4) + 4960: 4364 lsli r3, r3, 4 + 4962: 4b64 lsri r3, r3, 4 + 4964: 3bbc bseti r3, 28 + 4966: 07cf br 0x4904 // 4904 + 4968: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIOB0_EXI_Init: + +0000496c : +void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 496c: 14d0 push r15 + switch (EXI_IO) + 496e: 3805 cmphsi r0, 6 + 4970: 080d bt 0x498a // 498a + 4972: 1079 lrw r3, 0x20000048 // 49d4 + 4974: e3fff5c4 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 4978: 18100a03 .long 0x18100a03 + 497c: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 497e: 9340 ld.w r2, (r3, 0x0) + 4980: 9260 ld.w r3, (r2, 0x0) + 4982: 310f movi r1, 15 + 4984: 68c5 andn r3, r1 + 4986: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 4988: b260 st.w r3, (r2, 0x0) + 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; + } +} + 498a: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 498c: 9340 ld.w r2, (r3, 0x0) + 498e: 9260 ld.w r3, (r2, 0x0) + 4990: 31f0 movi r1, 240 + 4992: 68c5 andn r3, r1 + 4994: 3ba4 bseti r3, 4 + 4996: 07f9 br 0x4988 // 4988 + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 4998: 9320 ld.w r1, (r3, 0x0) + 499a: 32f0 movi r2, 240 + 499c: 9160 ld.w r3, (r1, 0x0) + 499e: 4244 lsli r2, r2, 4 + 49a0: 68c9 andn r3, r2 + 49a2: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 49a4: b160 st.w r3, (r1, 0x0) +} + 49a6: 07f2 br 0x498a // 498a + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 49a8: 9320 ld.w r1, (r3, 0x0) + 49aa: 32f0 movi r2, 240 + 49ac: 9160 ld.w r3, (r1, 0x0) + 49ae: 4248 lsli r2, r2, 8 + 49b0: 68c9 andn r3, r2 + 49b2: 3bac bseti r3, 12 + 49b4: 07f8 br 0x49a4 // 49a4 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 49b6: 9320 ld.w r1, (r3, 0x0) + 49b8: 32f0 movi r2, 240 + 49ba: 9160 ld.w r3, (r1, 0x0) + 49bc: 424c lsli r2, r2, 12 + 49be: 68c9 andn r3, r2 + 49c0: 3bb0 bseti r3, 16 + 49c2: 07f1 br 0x49a4 // 49a4 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 49c4: 9320 ld.w r1, (r3, 0x0) + 49c6: 32f0 movi r2, 240 + 49c8: 9160 ld.w r3, (r1, 0x0) + 49ca: 4250 lsli r2, r2, 16 + 49cc: 68c9 andn r3, r2 + 49ce: 3bb4 bseti r3, 20 + 49d0: 07ea br 0x49a4 // 49a4 + 49d2: 0000 bkpt + 49d4: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +000049d8 : +//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; + 49e8: 9045 ld.w r2, (r0, 0x14) + 49ea: 3301 movi r3, 1 + 49ec: 7085 lsr r2, r1 + 49ee: 688c and r2, r3 + { + if (dat==1) + 49f0: 3a40 cmpnei r2, 0 + 49f2: 70c4 lsl r3, r1 + 49f4: 0c03 bf 0x49fa // 49fa + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000049fe : +/*************************************************************/ +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); + 4a10: 1064 lrw r3, 0x20000014 // 4a20 + 4a12: 9340 ld.w r2, (r3, 0x0) + 4a14: 9261 ld.w r3, (r2, 0x4) + 4a16: 3bac bseti r3, 12 + 4a18: 3bae bseti r3, 14 + 4a1a: b261 st.w r3, (r2, 0x4) +} + 4a1c: 783c jmp r15 + 4a1e: 0000 bkpt + 4a20: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00004a24 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 4a24: 1063 lrw r3, 0x20000010 // 4a30 + 4a26: 9360 ld.w r3, (r3, 0x0) + 4a28: 9340 ld.w r2, (r3, 0x0) + 4a2a: 6c08 or r0, r2 + 4a2c: b300 st.w r0, (r3, 0x0) +} + 4a2e: 783c jmp r15 + 4a30: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00004a34 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 4a34: 3300 movi r3, 0 + 4a36: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 4a38: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 4a3a: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 4a3c: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 4a3e: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 4a40: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 4a42: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 4a44: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 4a46: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 4a48: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 4a4a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 4a4c: b06d st.w r3, (r0, 0x34) +} + 4a4e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00004a50 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 4a50: 9060 ld.w r3, (r0, 0x0) + 4a52: 3ba0 bseti r3, 0 + 4a54: b060 st.w r3, (r0, 0x0) +} + 4a56: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00004a58 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 4a58: 9060 ld.w r3, (r0, 0x0) + 4a5a: 3bac bseti r3, 12 + 4a5c: 3bae bseti r3, 14 + 4a5e: b060 st.w r3, (r0, 0x0) +} + 4a60: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00004a62 : +//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) +{ + 4a62: 14c3 push r4-r6 + 4a64: 98a4 ld.w r5, (r14, 0x10) + 4a66: 6d97 mov r6, r5 + 4a68: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 4a6a: 6d18 or r4, r6 + 4a6c: 6cd0 or r3, r4 + 4a6e: 90a1 ld.w r5, (r0, 0x4) + 4a70: 6c4c or r1, r3 + 4a72: 6c54 or r1, r5 + 4a74: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 4a76: b042 st.w r2, (r0, 0x8) +} + 4a78: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00004a7a : +//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) +{ + 4a7a: 14c4 push r4-r7 + 4a7c: 1421 subi r14, r14, 4 + 4a7e: 9885 ld.w r4, (r14, 0x14) + 4a80: 6dd3 mov r7, r4 + 4a82: 9886 ld.w r4, (r14, 0x18) + 4a84: b880 st.w r4, (r14, 0x0) + 4a86: 9887 ld.w r4, (r14, 0x1c) + 4a88: 6d93 mov r6, r4 + 4a8a: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 4a8c: 6d58 or r5, r6 + 4a8e: 98c0 ld.w r6, (r14, 0x0) + 4a90: 6d58 or r5, r6 + 4a92: 6d5c or r5, r7 + 4a94: 6cd4 or r3, r5 + 4a96: 6c8c or r2, r3 + 4a98: 9081 ld.w r4, (r0, 0x4) + 4a9a: 6c48 or r1, r2 + 4a9c: 6d04 or r4, r1 + 4a9e: 6d9f mov r6, r7 + 4aa0: b081 st.w r4, (r0, 0x4) +} + 4aa2: 1401 addi r14, r14, 4 + 4aa4: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00004aa6 : +//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; + 4aa6: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 4aa8: b044 st.w r2, (r0, 0x10) +} + 4aaa: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00004aac : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 4aac: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 4aae: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 4ab0: 0c04 bf 0x4ab8 // 4ab8 + BTx->IMCR |= BT_IMSCR_X; + 4ab2: 6c8c or r2, r3 + 4ab4: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 4ab6: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 4ab8: 68c9 andn r3, r2 + 4aba: b06b st.w r3, (r0, 0x2c) +} + 4abc: 07fd br 0x4ab6 // 4ab6 + +Disassembly of section .text.BT1_INT_ENABLE: + +00004ac0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 4ac0: 3380 movi r3, 128 + 4ac2: 4376 lsli r3, r3, 22 + 4ac4: 1042 lrw r2, 0xe000e100 // 4acc + 4ac6: b260 st.w r3, (r2, 0x0) +} + 4ac8: 783c jmp r15 + 4aca: 0000 bkpt + 4acc: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00004ad0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 4ad0: 1067 lrw r3, 0x2000002c // 4aec + 4ad2: 3200 movi r2, 0 + 4ad4: 9360 ld.w r3, (r3, 0x0) + 4ad6: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 4ad8: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 4ada: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 4adc: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 4ade: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 4ae0: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 4ae2: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 4ae4: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 4ae6: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 4ae8: b34b st.w r2, (r3, 0x2c) +} + 4aea: 783c jmp r15 + 4aec: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +00004af0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 4af0: 3840 cmpnei r0, 0 + 4af2: 080a bt 0x4b06 // 4b06 + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 4af4: 1075 lrw r3, 0x2000004c // 4b48 + 4af6: 32f0 movi r2, 240 + 4af8: 9320 ld.w r1, (r3, 0x0) + 4afa: 9160 ld.w r3, (r1, 0x0) + 4afc: 4244 lsli r2, r2, 4 + 4afe: 68c9 andn r3, r2 + 4b00: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 4b02: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 4b04: 783c jmp r15 + if(IOGx==SIO_PA03) + 4b06: 3841 cmpnei r0, 1 + 4b08: 0809 bt 0x4b1a // 4b1a + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 4b0a: 1070 lrw r3, 0x2000004c // 4b48 + 4b0c: 32f0 movi r2, 240 + 4b0e: 9320 ld.w r1, (r3, 0x0) + 4b10: 9160 ld.w r3, (r1, 0x0) + 4b12: 4248 lsli r2, r2, 8 + 4b14: 68c9 andn r3, r2 + 4b16: 3baf bseti r3, 15 + 4b18: 07f5 br 0x4b02 // 4b02 + if(IOGx==SIO_PA012) + 4b1a: 3842 cmpnei r0, 2 + 4b1c: 080a bt 0x4b30 // 4b30 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 4b1e: 106b lrw r3, 0x2000004c // 4b48 + 4b20: 32f0 movi r2, 240 + 4b22: 9320 ld.w r1, (r3, 0x0) + 4b24: 9161 ld.w r3, (r1, 0x4) + 4b26: 424c lsli r2, r2, 12 + 4b28: 68c9 andn r3, r2 + 4b2a: 3bb3 bseti r3, 19 + 4b2c: b161 st.w r3, (r1, 0x4) + 4b2e: 07eb br 0x4b04 // 4b04 + if(IOGx==SIO_PB01) + 4b30: 3843 cmpnei r0, 3 + 4b32: 0be9 bt 0x4b04 // 4b04 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 4b34: 1066 lrw r3, 0x20000048 // 4b4c + 4b36: 31f0 movi r1, 240 + 4b38: 9340 ld.w r2, (r3, 0x0) + 4b3a: 9260 ld.w r3, (r2, 0x0) + 4b3c: 68c5 andn r3, r1 + 4b3e: 3170 movi r1, 112 + 4b40: 6cc4 or r3, r1 + 4b42: b260 st.w r3, (r2, 0x0) +} + 4b44: 07e0 br 0x4b04 // 4b04 + 4b46: 0000 bkpt + 4b48: 2000004c .long 0x2000004c + 4b4c: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +00004b50 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 4b50: 4130 lsli r1, r1, 16 + 4b52: 1063 lrw r3, 0x2000002c // 4b5c + 4b54: 6c04 or r0, r1 + 4b56: 9360 ld.w r3, (r3, 0x0) + 4b58: b300 st.w r0, (r3, 0x0) + +} + 4b5a: 783c jmp r15 + 4b5c: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +00004b60 : +//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) +{ + 4b60: 14c4 push r4-r7 + 4b62: 1423 subi r14, r14, 12 + 4b64: 9889 ld.w r4, (r14, 0x24) + 4b66: b881 st.w r4, (r14, 0x4) + 4b68: 988a ld.w r4, (r14, 0x28) + 4b6a: b882 st.w r4, (r14, 0x8) + 4b6c: 1c08 addi r4, r14, 32 + 4b6e: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b70: 4368 lsli r3, r3, 8 +{ + 4b72: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b74: 6cc0 or r3, r0 +{ + 4b76: 1c0b addi r4, r14, 44 + 4b78: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b7a: 6cc4 or r3, r1 +{ + 4b7c: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b7e: 4244 lsli r2, r2, 4 + 4b80: 10eb lrw r7, 0x2000002c // 4bac + 4b82: 6cc8 or r3, r2 + 4b84: 97e0 ld.w r7, (r7, 0x0) +{ + 4b86: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b88: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 4b8a: 4498 lsli r4, r4, 24 + 4b8c: 9861 ld.w r3, (r14, 0x4) + 4b8e: 6d0c or r4, r3 + 4b90: 9862 ld.w r3, (r14, 0x8) + 4b92: 6d0c or r4, r3 +{ + 4b94: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 4b98: 9860 ld.w r3, (r14, 0x0) + 4b9a: 46d0 lsli r6, r6, 16 + 4b9c: 6d90 or r6, r4 + 4b9e: 45a2 lsli r5, r5, 2 + 4ba0: 4385 lsli r4, r3, 5 + 4ba2: 6d50 or r5, r4 + 4ba4: 6d58 or r5, r6 + 4ba6: b7a2 st.w r5, (r7, 0x8) +} + 4ba8: 1403 addi r14, r14, 12 + 4baa: 1484 pop r4-r7 + 4bac: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +00004bb0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 4bb0: 1065 lrw r3, 0x20000040 // 4bc4 + 4bb2: 3200 movi r2, 0 + 4bb4: 9360 ld.w r3, (r3, 0x0) + 4bb6: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 4bb8: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 4bba: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 4bbc: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 4bbe: b344 st.w r2, (r3, 0x10) +} + 4bc0: 783c jmp r15 + 4bc2: 0000 bkpt + 4bc4: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00004bc8 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 4bc8: 1065 lrw r3, 0x2000003c // 4bdc + 4bca: 3200 movi r2, 0 + 4bcc: 9360 ld.w r3, (r3, 0x0) + 4bce: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 4bd0: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 4bd2: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 4bd4: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 4bd6: b344 st.w r2, (r3, 0x10) +} + 4bd8: 783c jmp r15 + 4bda: 0000 bkpt + 4bdc: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00004be0 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 4be0: 1065 lrw r3, 0x20000038 // 4bf4 + 4be2: 3200 movi r2, 0 + 4be4: 9360 ld.w r3, (r3, 0x0) + 4be6: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 4be8: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 4bea: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 4bec: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 4bee: b344 st.w r2, (r3, 0x10) +} + 4bf0: 783c jmp r15 + 4bf2: 0000 bkpt + 4bf4: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00004bf8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 4bf8: 1065 lrw r3, 0x20000040 // 4c0c + 4bfa: 320f movi r2, 15 + 4bfc: 9360 ld.w r3, (r3, 0x0) + 4bfe: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 4c00: 3380 movi r3, 128 + 4c02: 4366 lsli r3, r3, 6 + 4c04: 1043 lrw r2, 0xe000e100 // 4c10 + 4c06: b260 st.w r3, (r2, 0x0) +} + 4c08: 783c jmp r15 + 4c0a: 0000 bkpt + 4c0c: 20000040 .long 0x20000040 + 4c10: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00004c14 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 4c14: 1065 lrw r3, 0x20000038 // 4c28 + 4c16: 320f movi r2, 15 + 4c18: 9360 ld.w r3, (r3, 0x0) + 4c1a: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 4c1c: 3380 movi r3, 128 + 4c1e: 4368 lsli r3, r3, 8 + 4c20: 1043 lrw r2, 0xe000e100 // 4c2c + 4c22: b260 st.w r3, (r2, 0x0) +} + 4c24: 783c jmp r15 + 4c26: 0000 bkpt + 4c28: 20000038 .long 0x20000038 + 4c2c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00004c30 : +//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) + 4c30: 3840 cmpnei r0, 0 + 4c32: 0821 bt 0x4c74 // 4c74 + { + if(UART_IO_G==0) + 4c34: 3940 cmpnei r1, 0 + 4c36: 080a bt 0x4c4a // 4c4a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 4c38: 1177 lrw r3, 0x2000004c // 4d14 + 4c3a: 31ff movi r1, 255 + 4c3c: 9340 ld.w r2, (r3, 0x0) + 4c3e: 9260 ld.w r3, (r2, 0x0) + 4c40: 68c5 andn r3, r1 + 4c42: 3ba2 bseti r3, 2 + 4c44: 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 + 4c46: b260 st.w r3, (r2, 0x0) + 4c48: 0415 br 0x4c72 // 4c72 + else if(UART_IO_G==1) + 4c4a: 3941 cmpnei r1, 1 + 4c4c: 0813 bt 0x4c72 // 4c72 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 4c4e: 1172 lrw r3, 0x2000004c // 4d14 + 4c50: 31f0 movi r1, 240 + 4c52: 9340 ld.w r2, (r3, 0x0) + 4c54: 9260 ld.w r3, (r2, 0x0) + 4c56: 4130 lsli r1, r1, 16 + 4c58: 68c5 andn r3, r1 + 4c5a: 31e0 movi r1, 224 + 4c5c: 412f lsli r1, r1, 15 + 4c5e: 6cc4 or r3, r1 + 4c60: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 4c62: 31f0 movi r1, 240 + 4c64: 9261 ld.w r3, (r2, 0x4) + 4c66: 412c lsli r1, r1, 12 + 4c68: 68c5 andn r3, r1 + 4c6a: 31e0 movi r1, 224 + 4c6c: 412b lsli r1, r1, 11 + 4c6e: 6cc4 or r3, r1 + 4c70: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 4c72: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 4c74: 3841 cmpnei r0, 1 + 4c76: 082d bt 0x4cd0 // 4cd0 + if(UART_IO_G==0) + 4c78: 3940 cmpnei r1, 0 + 4c7a: 0814 bt 0x4ca2 // 4ca2 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 4c7c: 1167 lrw r3, 0x20000048 // 4d18 + 4c7e: 310f movi r1, 15 + 4c80: 9340 ld.w r2, (r3, 0x0) + 4c82: 9260 ld.w r3, (r2, 0x0) + 4c84: 68c5 andn r3, r1 + 4c86: 3107 movi r1, 7 + 4c88: 6cc4 or r3, r1 + 4c8a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 4c8c: 32f0 movi r2, 240 + 4c8e: 1162 lrw r3, 0x2000004c // 4d14 + 4c90: 4250 lsli r2, r2, 16 + 4c92: 9320 ld.w r1, (r3, 0x0) + 4c94: 9161 ld.w r3, (r1, 0x4) + 4c96: 68c9 andn r3, r2 + 4c98: 32e0 movi r2, 224 + 4c9a: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 4c9c: 6cc8 or r3, r2 + 4c9e: b161 st.w r3, (r1, 0x4) + 4ca0: 07e9 br 0x4c72 // 4c72 + else if(UART_IO_G==1) + 4ca2: 3941 cmpnei r1, 1 + 4ca4: 080c bt 0x4cbc // 4cbc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 4ca6: 107c lrw r3, 0x2000004c // 4d14 + 4ca8: 32ff movi r2, 255 + 4caa: 9320 ld.w r1, (r3, 0x0) + 4cac: 424c lsli r2, r2, 12 + 4cae: 9160 ld.w r3, (r1, 0x0) + 4cb0: 68c9 andn r3, r2 + 4cb2: 32ee movi r2, 238 + 4cb4: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 4cb6: 6cc8 or r3, r2 + 4cb8: b160 st.w r3, (r1, 0x0) +} + 4cba: 07dc br 0x4c72 // 4c72 + else if(UART_IO_G==2) + 4cbc: 3942 cmpnei r1, 2 + 4cbe: 0bda bt 0x4c72 // 4c72 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 4cc0: 1075 lrw r3, 0x2000004c // 4d14 + 4cc2: 32ee movi r2, 238 + 4cc4: 9320 ld.w r1, (r3, 0x0) + 4cc6: 9161 ld.w r3, (r1, 0x4) + 4cc8: 4368 lsli r3, r3, 8 + 4cca: 4b68 lsri r3, r3, 8 + 4ccc: 4257 lsli r2, r2, 23 + 4cce: 07e7 br 0x4c9c // 4c9c + if (IO_UART_NUM==IO_UART2) + 4cd0: 3842 cmpnei r0, 2 + 4cd2: 0bd0 bt 0x4c72 // 4c72 + if(UART_IO_G==0) + 4cd4: 3940 cmpnei r1, 0 + 4cd6: 0809 bt 0x4ce8 // 4ce8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 4cd8: 106f lrw r3, 0x2000004c // 4d14 + 4cda: 31ff movi r1, 255 + 4cdc: 9340 ld.w r2, (r3, 0x0) + 4cde: 9260 ld.w r3, (r2, 0x0) + 4ce0: 68c5 andn r3, r1 + 4ce2: 3177 movi r1, 119 + 4ce4: 6cc4 or r3, r1 + 4ce6: 07b0 br 0x4c46 // 4c46 + else if(UART_IO_G==1) + 4ce8: 3941 cmpnei r1, 1 + 4cea: 0809 bt 0x4cfc // 4cfc + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 4cec: 106a lrw r3, 0x2000004c // 4d14 + 4cee: 32ee movi r2, 238 + 4cf0: 9320 ld.w r1, (r3, 0x0) + 4cf2: 9160 ld.w r3, (r1, 0x0) + 4cf4: 4368 lsli r3, r3, 8 + 4cf6: 4b68 lsri r3, r3, 8 + 4cf8: 4257 lsli r2, r2, 23 + 4cfa: 07de br 0x4cb6 // 4cb6 + else if(UART_IO_G==2) + 4cfc: 3942 cmpnei r1, 2 + 4cfe: 0bba bt 0x4c72 // 4c72 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 4d00: 1066 lrw r3, 0x20000048 // 4d18 + 4d02: 32ff movi r2, 255 + 4d04: 9320 ld.w r1, (r3, 0x0) + 4d06: 4250 lsli r2, r2, 16 + 4d08: 9160 ld.w r3, (r1, 0x0) + 4d0a: 68c9 andn r3, r2 + 4d0c: 32cc movi r2, 204 + 4d0e: 424f lsli r2, r2, 15 + 4d10: 07d3 br 0x4cb6 // 4cb6 + 4d12: 0000 bkpt + 4d14: 2000004c .long 0x2000004c + 4d18: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +00004d1c : +//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); + 4d1c: 1063 lrw r3, 0x80003 // 4d28 + 4d1e: 6c8c or r2, r3 + 4d20: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 4d22: b024 st.w r1, (r0, 0x10) +} + 4d24: 783c jmp r15 + 4d26: 0000 bkpt + 4d28: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00004d2c : +//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); + 4d2c: 1063 lrw r3, 0x8000f // 4d38 + 4d2e: 6c8c or r2, r3 + 4d30: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 4d32: b024 st.w r1, (r0, 0x10) +} + 4d34: 783c jmp r15 + 4d36: 0000 bkpt + 4d38: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00004d3c : +//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) +{ + 4d3c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 4d3e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 4d40: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 4d42: 5b85 subu r4, r3, r1 + 4d44: 6490 cmphs r4, r2 + 4d46: 0c02 bf 0x4d4a // 4d4a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 4d48: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 4d4a: 8380 ld.b r4, (r3, 0x0) + 4d4c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 4d4e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 4d50: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 4d52: 3c40 cmpnei r4, 0 + 4d54: 0bfd bt 0x4d4e // 4d4e + 4d56: 2300 addi r3, 1 + 4d58: 07f5 br 0x4d42 // 4d42 + +Disassembly of section .text.EPT_Stop: + +00004d5c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 4d5c: 1068 lrw r3, 0x20000020 // 4d7c + 4d5e: 3280 movi r2, 128 + 4d60: 9360 ld.w r3, (r3, 0x0) + 4d62: 608c addu r2, r3 + 4d64: 1027 lrw r1, 0xa55ac73a // 4d80 + 4d66: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 4d68: 9341 ld.w r2, (r3, 0x4) + 4d6a: 31fe movi r1, 254 + 4d6c: 6884 and r2, r1 + 4d6e: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 4d70: 3101 movi r1, 1 + 4d72: 9341 ld.w r2, (r3, 0x4) + 4d74: 6884 and r2, r1 + 4d76: 3a40 cmpnei r2, 0 + 4d78: 0bfd bt 0x4d72 // 4d72 +} + 4d7a: 783c jmp r15 + 4d7c: 20000020 .long 0x20000020 + 4d80: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +00004d84 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 4d84: 1078 lrw r3, 0x20000050 // 4de4 + 4d86: 3200 movi r2, 0 + 4d88: 9360 ld.w r3, (r3, 0x0) + 4d8a: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 4d8c: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 4d8e: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 4d90: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 4d92: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 4d94: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 4d96: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 4d98: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 4d9a: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 4d9c: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 4d9e: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 4da0: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 4da2: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 4da4: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 4da6: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 4da8: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 4daa: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 4dac: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 4dae: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 4db0: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 4db2: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 4db4: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 4db6: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 4db8: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 4dba: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 4dbc: 23ff addi r3, 256 + 4dbe: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 4dc0: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 4dc2: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 4dc4: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 4dc6: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 4dc8: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 4dca: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 4dcc: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 4dce: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 4dd0: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 4dd2: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 4dd4: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 4dd6: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 4dd8: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 4dda: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 4ddc: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 4dde: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 4de0: b351 st.w r2, (r3, 0x44) +} + 4de2: 783c jmp r15 + 4de4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00004de8 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 4de8: 1063 lrw r3, 0x20000050 // 4df4 + 4dea: 9340 ld.w r2, (r3, 0x0) + 4dec: 9264 ld.w r3, (r2, 0x10) + 4dee: 6c0c or r0, r3 + 4df0: b204 st.w r0, (r2, 0x10) +} + 4df2: 783c jmp r15 + 4df4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00004df8 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 4df8: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 4dfa: 3002 movi r0, 2 + 4dfc: e3fffff6 bsr 0x4de8 // 4de8 + while(!(ADC0->SR &ADC12_ADCENS)); + 4e00: 1065 lrw r3, 0x20000050 // 4e14 + 4e02: 3280 movi r2, 128 + 4e04: 9320 ld.w r1, (r3, 0x0) + 4e06: 4241 lsli r2, r2, 1 + 4e08: 9168 ld.w r3, (r1, 0x20) + 4e0a: 68c8 and r3, r2 + 4e0c: 3b40 cmpnei r3, 0 + 4e0e: 0ffd bf 0x4e08 // 4e08 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 4e10: 1490 pop r15 + 4e12: 0000 bkpt + 4e14: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +00004e18 : + if (NewState != DISABLE) + 4e18: 3940 cmpnei r1, 0 + 4e1a: 106a lrw r3, 0x20000050 // 4e40 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 4e1c: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 4e1e: 0c09 bf 0x4e30 // 4e30 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 4e20: 9260 ld.w r3, (r2, 0x0) + 4e22: 6cc0 or r3, r0 + 4e24: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 4e26: 9262 ld.w r3, (r2, 0x8) + 4e28: 68c0 and r3, r0 + 4e2a: 3b40 cmpnei r3, 0 + 4e2c: 0ffd bf 0x4e26 // 4e26 +} + 4e2e: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 4e30: 9261 ld.w r3, (r2, 0x4) + 4e32: 6cc0 or r3, r0 + 4e34: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 4e36: 9262 ld.w r3, (r2, 0x8) + 4e38: 68c0 and r3, r0 + 4e3a: 3b40 cmpnei r3, 0 + 4e3c: 0bfd bt 0x4e36 // 4e36 + 4e3e: 07f8 br 0x4e2e // 4e2e + 4e40: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00004e44 : +{ + 4e44: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 4e46: 3001 movi r0, 1 + 4e48: e3ffffd0 bsr 0x4de8 // 4de8 +} + 4e4c: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00004e50 : +{ + 4e50: 14d0 push r15 + if (NewState != DISABLE) + 4e52: 3840 cmpnei r0, 0 + 4e54: 0c04 bf 0x4e5c // 4e5c + 4e56: e3ffffd1 bsr 0x4df8 // 4df8 +} + 4e5a: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 4e5c: 3004 movi r0, 4 + 4e5e: e3ffffc5 bsr 0x4de8 // 4de8 + while(ADC0->SR&ADC12_ADCENS); + 4e62: 1065 lrw r3, 0x20000050 // 4e74 + 4e64: 3280 movi r2, 128 + 4e66: 9320 ld.w r1, (r3, 0x0) + 4e68: 4241 lsli r2, r2, 1 + 4e6a: 9168 ld.w r3, (r1, 0x20) + 4e6c: 68c8 and r3, r2 + 4e6e: 3b40 cmpnei r3, 0 + 4e70: 0bfd bt 0x4e6a // 4e6a + 4e72: 07f4 br 0x4e5a // 4e5a + 4e74: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00004e78 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 4e78: 1064 lrw r3, 0x20000050 // 4e88 + 4e7a: 3202 movi r2, 2 + 4e7c: 9320 ld.w r1, (r3, 0x0) + 4e7e: 9168 ld.w r3, (r1, 0x20) + 4e80: 68c8 and r3, r2 + 4e82: 3b40 cmpnei r3, 0 + 4e84: 0ffd bf 0x4e7e // 4e7e +} + 4e86: 783c jmp r15 + 4e88: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00004e8c : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 4e8c: 200f addi r0, 16 + 4e8e: 1065 lrw r3, 0x20000050 // 4ea0 + 4e90: 3201 movi r2, 1 + 4e92: 9320 ld.w r1, (r3, 0x0) + 4e94: 7080 lsl r2, r0 + 4e96: 9168 ld.w r3, (r1, 0x20) + 4e98: 68c8 and r3, r2 + 4e9a: 3b40 cmpnei r3, 0 + 4e9c: 0ffd bf 0x4e96 // 4e96 +} + 4e9e: 783c jmp r15 + 4ea0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00004ea4 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 4ea4: 203f addi r0, 64 + 4ea6: 1064 lrw r3, 0x20000050 // 4eb4 + 4ea8: 4002 lsli r0, r0, 2 + 4eaa: 9360 ld.w r3, (r3, 0x0) + 4eac: 600c addu r0, r3 + 4eae: 9000 ld.w r0, (r0, 0x0) + 4eb0: 7401 zexth r0, r0 +} + 4eb2: 783c jmp r15 + 4eb4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00004eb8 : + //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 ) +{ + 4eb8: 14d4 push r4-r7, r15 + 4eba: 1422 subi r14, r14, 8 + 4ebc: 1c08 addi r4, r14, 32 + 4ebe: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4ec0: 2d00 subi r5, 1 +{ + 4ec2: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4ec4: 10db lrw r6, 0x20000050 // 4f30 +{ + 4ec6: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4eca: 45aa lsli r5, r5, 10 + 4ecc: 9680 ld.w r4, (r6, 0x0) + 4ece: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 4ed0: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4ed2: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 4ed4: 081c bt 0x4f0c // 4f0c + { + ADC0->MR&=~CONTCV; //one short mode + 4ed6: 9425 ld.w r1, (r4, 0x14) + 4ed8: 4121 lsli r1, r1, 1 + 4eda: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 4edc: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 4ede: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 4ee0: 4002 lsli r0, r0, 2 + 4ee2: 9428 ld.w r1, (r4, 0x20) + 4ee4: 6840 and r1, r0 + 4ee6: 3940 cmpnei r1, 0 + 4ee8: 0bfd bt 0x4ee2 // 4ee2 + 4eea: b861 st.w r3, (r14, 0x4) + 4eec: b840 st.w r2, (r14, 0x0) + 4eee: e3ffff85 bsr 0x4df8 // 4df8 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 4ef2: 3f40 cmpnei r7, 0 + 4ef4: 9840 ld.w r2, (r14, 0x0) + 4ef6: 9861 ld.w r3, (r14, 0x4) + 4ef8: 0c16 bf 0x4f24 // 4f24 + { + ADC0->CR|=ADC12_10BITor12BIT; + 4efa: 9600 ld.w r0, (r6, 0x0) + 4efc: 9024 ld.w r1, (r0, 0x10) + 4efe: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 4f00: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 4f02: 9620 ld.w r1, (r6, 0x0) + 4f04: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 4f06: b166 st.w r3, (r1, 0x18) +} + 4f08: 1402 addi r14, r14, 8 + 4f0a: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 4f0c: 3941 cmpnei r1, 1 + 4f0e: 0bee bt 0x4eea // 4eea + ADC0->MR|=CONTCV; //Continuous mode + 4f10: 9425 ld.w r1, (r4, 0x14) + 4f12: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 4f14: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 4f16: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 4f18: 4002 lsli r0, r0, 2 + 4f1a: 9428 ld.w r1, (r4, 0x20) + 4f1c: 6840 and r1, r0 + 4f1e: 3940 cmpnei r1, 0 + 4f20: 0ffd bf 0x4f1a // 4f1a + 4f22: 07e4 br 0x4eea // 4eea + ADC0->CR&=~ADC12_10BITor12BIT; + 4f24: 9600 ld.w r0, (r6, 0x0) + 4f26: 9024 ld.w r1, (r0, 0x10) + 4f28: 4121 lsli r1, r1, 1 + 4f2a: 4921 lsri r1, r1, 1 + 4f2c: 07ea br 0x4f00 // 4f00 + 4f2e: 0000 bkpt + 4f30: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00004f34 : +//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) + 4f34: 3840 cmpnei r0, 0 + 4f36: 0808 bt 0x4f46 // 4f46 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 4f38: 127c lrw r3, 0x20000050 // 50a8 + 4f3a: 123d lrw r1, 0x103c0 // 50ac + 4f3c: 9340 ld.w r2, (r3, 0x0) + 4f3e: 9264 ld.w r3, (r2, 0x10) + 4f40: 68c5 andn r3, r1 + 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); + 4f42: b264 st.w r3, (r2, 0x10) + } +} + 4f44: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 4f46: 3841 cmpnei r0, 1 + 4f48: 0810 bt 0x4f68 // 4f68 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 4f4a: 127a lrw r3, 0x2000004c // 50b0 + 4f4c: 32f0 movi r2, 240 + 4f4e: 9320 ld.w r1, (r3, 0x0) + 4f50: 9160 ld.w r3, (r1, 0x0) + 4f52: 4244 lsli r2, r2, 4 + 4f54: 68c9 andn r3, r2 + 4f56: 3bab bseti r3, 11 + 4f58: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 4f5a: 1235 lrw r1, 0x103c0 // 50ac + 4f5c: 1273 lrw r3, 0x20000050 // 50a8 + 4f5e: 9340 ld.w r2, (r3, 0x0) + 4f60: 9264 ld.w r3, (r2, 0x10) + 4f62: 68c5 andn r3, r1 + 4f64: 3ba6 bseti r3, 6 + 4f66: 07ee br 0x4f42 // 4f42 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 4f68: 3842 cmpnei r0, 2 + 4f6a: 0811 bt 0x4f8c // 4f8c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 4f6c: 1271 lrw r3, 0x2000004c // 50b0 + 4f6e: 32f0 movi r2, 240 + 4f70: 9320 ld.w r1, (r3, 0x0) + 4f72: 9160 ld.w r3, (r1, 0x0) + 4f74: 4244 lsli r2, r2, 4 + 4f76: 68c9 andn r3, r2 + 4f78: 3bab bseti r3, 11 + 4f7a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 4f7c: 122e lrw r1, 0x30103c0 // 50b4 + 4f7e: 126b lrw r3, 0x20000050 // 50a8 + 4f80: 9340 ld.w r2, (r3, 0x0) + 4f82: 9264 ld.w r3, (r2, 0x10) + 4f84: 68c5 andn r3, r1 + 4f86: 3ba7 bseti r3, 7 + 4f88: 3bb8 bseti r3, 24 + 4f8a: 07dc br 0x4f42 // 4f42 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 4f8c: 3843 cmpnei r0, 3 + 4f8e: 0811 bt 0x4fb0 // 4fb0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 4f90: 1268 lrw r3, 0x2000004c // 50b0 + 4f92: 32f0 movi r2, 240 + 4f94: 9320 ld.w r1, (r3, 0x0) + 4f96: 9160 ld.w r3, (r1, 0x0) + 4f98: 4244 lsli r2, r2, 4 + 4f9a: 68c9 andn r3, r2 + 4f9c: 3bab bseti r3, 11 + 4f9e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 4fa0: 1225 lrw r1, 0x30103c0 // 50b4 + 4fa2: 1262 lrw r3, 0x20000050 // 50a8 + 4fa4: 9340 ld.w r2, (r3, 0x0) + 4fa6: 9264 ld.w r3, (r2, 0x10) + 4fa8: 68c5 andn r3, r1 + 4faa: 1224 lrw r1, 0x30000c0 // 50b8 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 4fac: 6cc4 or r3, r1 + 4fae: 07ca br 0x4f42 // 4f42 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 4fb0: 3845 cmpnei r0, 5 + 4fb2: 0809 bt 0x4fc4 // 4fc4 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 4fb4: 117d lrw r3, 0x20000050 // 50a8 + 4fb6: 1222 lrw r1, 0x503c0 // 50bc + 4fb8: 9340 ld.w r2, (r3, 0x0) + 4fba: 9264 ld.w r3, (r2, 0x10) + 4fbc: 68c5 andn r3, r1 + 4fbe: 3ba8 bseti r3, 8 + 4fc0: 3bb2 bseti r3, 18 + 4fc2: 07c0 br 0x4f42 // 4f42 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 4fc4: 3846 cmpnei r0, 6 + 4fc6: 0812 bt 0x4fea // 4fea + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 4fc8: 117a lrw r3, 0x2000004c // 50b0 + 4fca: 32f0 movi r2, 240 + 4fcc: 9320 ld.w r1, (r3, 0x0) + 4fce: 9160 ld.w r3, (r1, 0x0) + 4fd0: 4248 lsli r2, r2, 8 + 4fd2: 68c9 andn r3, r2 + 4fd4: 32b0 movi r2, 176 + 4fd6: 4248 lsli r2, r2, 8 + 4fd8: 6cc8 or r3, r2 + 4fda: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 4fdc: 1134 lrw r1, 0x103c0 // 50ac + 4fde: 1173 lrw r3, 0x20000050 // 50a8 + 4fe0: 9340 ld.w r2, (r3, 0x0) + 4fe2: 9264 ld.w r3, (r2, 0x10) + 4fe4: 68c5 andn r3, r1 + 4fe6: 3ba9 bseti r3, 9 + 4fe8: 07ad br 0x4f42 // 4f42 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 4fea: 3847 cmpnei r0, 7 + 4fec: 0819 bt 0x501e // 501e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 4fee: 1171 lrw r3, 0x2000004c // 50b0 + 4ff0: 31f0 movi r1, 240 + 4ff2: 9340 ld.w r2, (r3, 0x0) + 4ff4: 9260 ld.w r3, (r2, 0x0) + 4ff6: 4128 lsli r1, r1, 8 + 4ff8: 68c5 andn r3, r1 + 4ffa: 31b0 movi r1, 176 + 4ffc: 4128 lsli r1, r1, 8 + 4ffe: 6cc4 or r3, r1 + 5000: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 5002: 31f0 movi r1, 240 + 5004: 9260 ld.w r3, (r2, 0x0) + 5006: 4124 lsli r1, r1, 4 + 5008: 68c5 andn r3, r1 + 500a: 3bab bseti r3, 11 + 500c: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 500e: 1128 lrw r1, 0x103c0 // 50ac + 5010: 1166 lrw r3, 0x20000050 // 50a8 + 5012: 9340 ld.w r2, (r3, 0x0) + 5014: 9264 ld.w r3, (r2, 0x10) + 5016: 68c5 andn r3, r1 + 5018: 3ba6 bseti r3, 6 + 501a: 3ba9 bseti r3, 9 + 501c: 0793 br 0x4f42 // 4f42 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 501e: 3848 cmpnei r0, 8 + 5020: 0818 bt 0x5050 // 5050 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 5022: 1164 lrw r3, 0x2000004c // 50b0 + 5024: 31f0 movi r1, 240 + 5026: 9340 ld.w r2, (r3, 0x0) + 5028: 9260 ld.w r3, (r2, 0x0) + 502a: 4128 lsli r1, r1, 8 + 502c: 68c5 andn r3, r1 + 502e: 31b0 movi r1, 176 + 5030: 4128 lsli r1, r1, 8 + 5032: 6cc4 or r3, r1 + 5034: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 5036: 31f0 movi r1, 240 + 5038: 9260 ld.w r3, (r2, 0x0) + 503a: 4124 lsli r1, r1, 4 + 503c: 68c5 andn r3, r1 + 503e: 3bab bseti r3, 11 + 5040: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 5042: 103d lrw r1, 0x30103c0 // 50b4 + 5044: 1079 lrw r3, 0x20000050 // 50a8 + 5046: 9340 ld.w r2, (r3, 0x0) + 5048: 9264 ld.w r3, (r2, 0x10) + 504a: 68c5 andn r3, r1 + 504c: 103d lrw r1, 0x1000280 // 50c0 + 504e: 07af br 0x4fac // 4fac + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 5050: 3849 cmpnei r0, 9 + 5052: 0818 bt 0x5082 // 5082 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 5054: 1077 lrw r3, 0x2000004c // 50b0 + 5056: 31f0 movi r1, 240 + 5058: 9340 ld.w r2, (r3, 0x0) + 505a: 9260 ld.w r3, (r2, 0x0) + 505c: 4128 lsli r1, r1, 8 + 505e: 68c5 andn r3, r1 + 5060: 31b0 movi r1, 176 + 5062: 4128 lsli r1, r1, 8 + 5064: 6cc4 or r3, r1 + 5066: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 5068: 31f0 movi r1, 240 + 506a: 9260 ld.w r3, (r2, 0x0) + 506c: 4124 lsli r1, r1, 4 + 506e: 68c5 andn r3, r1 + 5070: 3bab bseti r3, 11 + 5072: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 5074: 1030 lrw r1, 0x30103c0 // 50b4 + 5076: 106d lrw r3, 0x20000050 // 50a8 + 5078: 9340 ld.w r2, (r3, 0x0) + 507a: 9264 ld.w r3, (r2, 0x10) + 507c: 68c5 andn r3, r1 + 507e: 1032 lrw r1, 0x30002c0 // 50c4 + 5080: 0796 br 0x4fac // 4fac + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 5082: 384b cmpnei r0, 11 + 5084: 0b60 bt 0x4f44 // 4f44 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 5086: 106b lrw r3, 0x2000004c // 50b0 + 5088: 32f0 movi r2, 240 + 508a: 9320 ld.w r1, (r3, 0x0) + 508c: 9160 ld.w r3, (r1, 0x0) + 508e: 4248 lsli r2, r2, 8 + 5090: 68c9 andn r3, r2 + 5092: 32b0 movi r2, 176 + 5094: 4248 lsli r2, r2, 8 + 5096: 6cc8 or r3, r2 + 5098: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 509a: 1029 lrw r1, 0x503c0 // 50bc + 509c: 1063 lrw r3, 0x20000050 // 50a8 + 509e: 9340 ld.w r2, (r3, 0x0) + 50a0: 9264 ld.w r3, (r2, 0x10) + 50a2: 68c5 andn r3, r1 + 50a4: 1029 lrw r1, 0x40300 // 50c8 + 50a6: 0783 br 0x4fac // 4fac + 50a8: 20000050 .long 0x20000050 + 50ac: 000103c0 .long 0x000103c0 + 50b0: 2000004c .long 0x2000004c + 50b4: 030103c0 .long 0x030103c0 + 50b8: 030000c0 .long 0x030000c0 + 50bc: 000503c0 .long 0x000503c0 + 50c0: 01000280 .long 0x01000280 + 50c4: 030002c0 .long 0x030002c0 + 50c8: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +000050cc : +//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) +{ + 50cc: 14d4 push r4-r7, r15 + 50ce: 1421 subi r14, r14, 4 + 50d0: b840 st.w r2, (r14, 0x0) + 50d2: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 50d4: 125b lrw r2, 0x20000050 // 5240 + 50d6: 92c0 ld.w r6, (r2, 0x0) + 50d8: 3200 movi r2, 0 + 50da: 4202 lsli r0, r2, 2 + 50dc: 6018 addu r0, r6 + 50de: 908c ld.w r4, (r0, 0x30) + 50e0: 2200 addi r2, 1 + 50e2: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 50e4: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 50e6: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 50e8: 0bf9 bt 0x50da // 50da + } + switch(ADC12_ADCINX) + 50ea: 3d0f cmphsi r5, 16 + 50ec: 0825 bt 0x5136 // 5136 + 50ee: 6c17 mov r0, r5 + 50f0: 1255 lrw r2, 0x2000004c // 5244 + 50f2: 1296 lrw r4, 0x20000048 // 5248 + 50f4: e3fff204 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 50f8: 322c1408 .long 0x322c1408 + 50fc: 4d474039 .long 0x4d474039 + 5100: 756d6559 .long 0x756d6559 + 5104: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 5108: 9240 ld.w r2, (r2, 0x0) + 510a: 9200 ld.w r0, (r2, 0x0) + 510c: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 510e: 9201 ld.w r0, (r2, 0x4) + 5110: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 5112: 9400 ld.w r0, (r4, 0x0) + 5114: 9040 ld.w r2, (r0, 0x0) + 5116: 34f0 movi r4, 240 + 5118: 6891 andn r2, r4 + 511a: 3aa4 bseti r2, 4 + 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; + 511c: b040 st.w r2, (r0, 0x0) + break; + 511e: 040c br 0x5136 // 5136 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 5120: 9200 ld.w r0, (r2, 0x0) + 5122: 9040 ld.w r2, (r0, 0x0) + 5124: 370f movi r7, 15 + 5126: 689d andn r2, r7 + 5128: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 512a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 512c: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 512e: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 5130: 9440 ld.w r2, (r4, 0x0) + 5132: 9200 ld.w r0, (r2, 0x0) + 5134: b200 st.w r0, (r2, 0x0) + 5136: 4362 lsli r3, r3, 2 + 5138: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 513a: 966c ld.w r3, (r6, 0x30) + 513c: 3300 movi r3, 0 + 513e: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 5140: 9860 ld.w r3, (r14, 0x0) + 5142: 6c4c or r1, r3 + 5144: 964c ld.w r2, (r6, 0x30) + 5146: 6d44 or r5, r1 + 5148: 6d48 or r5, r2 + 514a: b6ac st.w r5, (r6, 0x30) +} + 514c: 1401 addi r14, r14, 4 + 514e: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 5150: 9200 ld.w r0, (r2, 0x0) + 5152: 9040 ld.w r2, (r0, 0x0) + 5154: 37f0 movi r7, 240 + 5156: 689d andn r2, r7 + 5158: 3aa4 bseti r2, 4 + 515a: 07e8 br 0x512a // 512a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 515c: 9200 ld.w r0, (r2, 0x0) + 515e: 37f0 movi r7, 240 + 5160: 9040 ld.w r2, (r0, 0x0) + 5162: 47e8 lsli r7, r7, 8 + 5164: 689d andn r2, r7 + 5166: 3aac bseti r2, 12 + 5168: 07e1 br 0x512a // 512a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 516a: 9200 ld.w r0, (r2, 0x0) + 516c: 37f0 movi r7, 240 + 516e: 9040 ld.w r2, (r0, 0x0) + 5170: 47f0 lsli r7, r7, 16 + 5172: 689d andn r2, r7 + 5174: 3ab4 bseti r2, 20 + 5176: 07da br 0x512a // 512a + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 5178: 9200 ld.w r0, (r2, 0x0) + 517a: 37f0 movi r7, 240 + 517c: 9040 ld.w r2, (r0, 0x0) + 517e: 47f4 lsli r7, r7, 20 + 5180: 689d andn r2, r7 + 5182: 3ab8 bseti r2, 24 + 5184: 07d3 br 0x512a // 512a + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 5186: 9200 ld.w r0, (r2, 0x0) + 5188: 9040 ld.w r2, (r0, 0x0) + 518a: 4244 lsli r2, r2, 4 + 518c: 4a44 lsri r2, r2, 4 + 518e: 3abc bseti r2, 28 + 5190: 07cd br 0x512a // 512a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 5192: 9240 ld.w r2, (r2, 0x0) + 5194: 9200 ld.w r0, (r2, 0x0) + 5196: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 5198: 9201 ld.w r0, (r2, 0x4) + 519a: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 519c: 9400 ld.w r0, (r4, 0x0) + 519e: 34f0 movi r4, 240 + 51a0: 9040 ld.w r2, (r0, 0x0) + 51a2: 4484 lsli r4, r4, 4 + 51a4: 6891 andn r2, r4 + 51a6: 3aa8 bseti r2, 8 + 51a8: 07ba br 0x511c // 511c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 51aa: 9240 ld.w r2, (r2, 0x0) + 51ac: 9200 ld.w r0, (r2, 0x0) + 51ae: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 51b0: 9201 ld.w r0, (r2, 0x4) + 51b2: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 51b4: 9400 ld.w r0, (r4, 0x0) + 51b6: 34f0 movi r4, 240 + 51b8: 9040 ld.w r2, (r0, 0x0) + 51ba: 4488 lsli r4, r4, 8 + 51bc: 6891 andn r2, r4 + 51be: 3aac bseti r2, 12 + 51c0: 07ae br 0x511c // 511c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 51c2: 9200 ld.w r0, (r2, 0x0) + 51c4: 9040 ld.w r2, (r0, 0x0) + 51c6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 51c8: 9041 ld.w r2, (r0, 0x4) + 51ca: 370f movi r7, 15 + 51cc: 689d andn r2, r7 + 51ce: 3aa0 bseti r2, 0 + 51d0: 07af br 0x512e // 512e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 51d2: 9200 ld.w r0, (r2, 0x0) + 51d4: 9040 ld.w r2, (r0, 0x0) + 51d6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 51d8: 9041 ld.w r2, (r0, 0x4) + 51da: 37f0 movi r7, 240 + 51dc: 689d andn r2, r7 + 51de: 3aa4 bseti r2, 4 + 51e0: 07a7 br 0x512e // 512e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 51e2: 9200 ld.w r0, (r2, 0x0) + 51e4: 9040 ld.w r2, (r0, 0x0) + 51e6: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 51e8: 37f0 movi r7, 240 + 51ea: 9041 ld.w r2, (r0, 0x4) + 51ec: 47e4 lsli r7, r7, 4 + 51ee: 689d andn r2, r7 + 51f0: 3aa8 bseti r2, 8 + 51f2: 079e br 0x512e // 512e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 51f4: 9200 ld.w r0, (r2, 0x0) + 51f6: 9040 ld.w r2, (r0, 0x0) + 51f8: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 51fa: 37f0 movi r7, 240 + 51fc: 9041 ld.w r2, (r0, 0x4) + 51fe: 47e8 lsli r7, r7, 8 + 5200: 689d andn r2, r7 + 5202: 3aac bseti r2, 12 + 5204: 0795 br 0x512e // 512e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 5206: 9200 ld.w r0, (r2, 0x0) + 5208: 9040 ld.w r2, (r0, 0x0) + 520a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 520c: 37f0 movi r7, 240 + 520e: 9041 ld.w r2, (r0, 0x4) + 5210: 47ec lsli r7, r7, 12 + 5212: 689d andn r2, r7 + 5214: 3ab0 bseti r2, 16 + 5216: 078c br 0x512e // 512e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 5218: 9200 ld.w r0, (r2, 0x0) + 521a: 9040 ld.w r2, (r0, 0x0) + 521c: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 521e: 37f0 movi r7, 240 + 5220: 9041 ld.w r2, (r0, 0x4) + 5222: 47f0 lsli r7, r7, 16 + 5224: 689d andn r2, r7 + 5226: 3ab4 bseti r2, 20 + 5228: 0783 br 0x512e // 512e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 522a: 9240 ld.w r2, (r2, 0x0) + 522c: 9200 ld.w r0, (r2, 0x0) + 522e: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 5230: 9201 ld.w r0, (r2, 0x4) + 5232: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 5234: 9400 ld.w r0, (r4, 0x0) + 5236: 9040 ld.w r2, (r0, 0x0) + 5238: 340f movi r4, 15 + 523a: 6891 andn r2, r4 + 523c: 3aa0 bseti r2, 0 + 523e: 076f br 0x511c // 511c + 5240: 20000050 .long 0x20000050 + 5244: 2000004c .long 0x2000004c + 5248: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +0000524c : + 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) +{ + 524c: 14c4 push r4-r7 + 524e: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 5250: 1165 lrw r3, 0x20000060 // 52e4 + 5252: 1186 lrw r4, 0x5a5a5a5a // 52e8 + 5254: 9360 ld.w r3, (r3, 0x0) + 5256: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 5258: 3407 movi r4, 7 + 525a: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 525c: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 525e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 5260: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 5262: 9384 ld.w r4, (r3, 0x10) + 5264: 3c40 cmpnei r4, 0 + 5266: 0bfe bt 0x5262 // 5262 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 5268: 2102 addi r1, 3 + 526a: 4922 lsri r1, r1, 2 + 526c: 4122 lsli r1, r1, 2 + 526e: 6048 addu r1, r2 + 5270: b820 st.w r1, (r14, 0x0) + 5272: 5829 subu r1, r0, r2 + 5274: b821 st.w r1, (r14, 0x4) + 5276: 9820 ld.w r1, (r14, 0x0) + 5278: 644a cmpne r2, r1 + 527a: 0826 bt 0x52c6 // 52c6 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 527c: 3106 movi r1, 6 + SetUserKey; + 527e: 105b lrw r2, 0x5a5a5a5a // 52e8 + 5280: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 5282: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 5284: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 5286: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 5288: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 528a: 9324 ld.w r1, (r3, 0x10) + 528c: 3940 cmpnei r1, 0 + 528e: 0bfe bt 0x528a // 528a + //Perform pre-programming 4 + SetUserKey; + 5290: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 5292: 3201 movi r2, 1 + 5294: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 5296: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 5298: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 529a: 934a ld.w r2, (r3, 0x28) + 529c: 3a44 cmpnei r2, 4 + 529e: 0bfe bt 0x529a // 529a + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 52a0: 3102 movi r1, 2 + SetUserKey; + 52a2: 1052 lrw r2, 0x5a5a5a5a // 52e8 + 52a4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 52a6: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 52a8: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 52aa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 52ac: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 52ae: 932a ld.w r1, (r3, 0x28) + 52b0: 3941 cmpnei r1, 1 + 52b2: 0bfe bt 0x52ae // 52ae + //Write page cache data to flash memory 6 + SetUserKey; + 52b4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 52b6: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 52b8: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 52ba: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 52bc: 934a ld.w r2, (r3, 0x28) + 52be: 3a42 cmpnei r2, 2 + 52c0: 0bfe bt 0x52bc // 52bc +} + 52c2: 1402 addi r14, r14, 8 + 52c4: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 52c6: 82e0 ld.b r7, (r2, 0x0) + 52c8: 8281 ld.b r4, (r2, 0x1) + 52ca: 4488 lsli r4, r4, 8 + 52cc: 8222 ld.b r1, (r2, 0x2) + 52ce: 611c addu r4, r7 + 52d0: 82a3 ld.b r5, (r2, 0x3) + 52d2: 4130 lsli r1, r1, 16 + 52d4: 98c1 ld.w r6, (r14, 0x4) + 52d6: 6050 addu r1, r4 + 52d8: 45b8 lsli r5, r5, 24 + 52da: 6188 addu r6, r2 + 52dc: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 52de: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 52e0: 2203 addi r2, 4 + 52e2: 07ca br 0x5276 // 5276 + 52e4: 20000060 .long 0x20000060 + 52e8: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +000052ec : +//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) +{ + 52ec: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 52f8: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 52fa: 3b40 cmpnei r3, 0 + 52fc: 0c06 bf 0x5308 // 5308 + 52fe: 6d0f mov r4, r3 + 5300: 6914 and r4, r5 + 5302: 3c40 cmpnei r4, 0 + 5304: 0802 bt 0x5308 // 5308 + RdStartAdd +=4; + 5306: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 5308: 6d0f mov r4, r3 + 530a: 6914 and r4, r5 + 530c: 6100 addu r4, r0 + 530e: 8480 ld.b r4, (r4, 0x0) + 5310: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00005318 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 5318: 33f8 movi r3, 248 + 531a: 4366 lsli r3, r3, 6 + 531c: 115b lrw r2, 0x20000268 // 5408 + 531e: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 5320: 3246 movi r2, 70 + 5322: 117b lrw r3, 0x2000026e // 540c + 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 + 5324: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 5326: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 5328: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 532a: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 532c: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 532e: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 5330: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 5332: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 5334: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 5336: 1157 lrw r2, 0x200004a4 // 5410 + 5338: 8a22 ld.h r1, (r2, 0x4) + 533a: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 533c: 8a23 ld.h r1, (r2, 0x6) + 533e: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 5340: 8a24 ld.h r1, (r2, 0x8) + 5342: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 5344: 8a25 ld.h r1, (r2, 0xa) + 5346: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 5348: 8a26 ld.h r1, (r2, 0xc) + 534a: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 534c: 3146 movi r1, 70 + 534e: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 5350: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 5352: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 5354: 3128 movi r1, 40 + 5356: 1170 lrw r3, 0x20000292 // 5414 + 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 + 5358: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 535a: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 535c: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 535e: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 5360: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 5362: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 5364: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 5366: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 5368: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 536a: 8a27 ld.h r1, (r2, 0xe) + 536c: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 536e: 8a28 ld.h r1, (r2, 0x10) + 5370: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 5372: 8a29 ld.h r1, (r2, 0x12) + 5374: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 5376: 8a2a ld.h r1, (r2, 0x14) + 5378: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 537a: 8a2b ld.h r1, (r2, 0x16) + 537c: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 537e: 3128 movi r1, 40 + 5380: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 5382: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 5384: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 5386: 8220 ld.b r1, (r2, 0x0) + 5388: 1164 lrw r3, 0x20000238 // 5418 + 538a: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 538c: 8221 ld.b r1, (r2, 0x1) + 538e: 1164 lrw r3, 0x20000240 // 541c + 5390: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 5392: 3101 movi r1, 1 + 5394: 1163 lrw r3, 0x20000241 // 5420 + 5396: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 5398: 3100 movi r1, 0 + 539a: 1163 lrw r3, 0x20000264 // 5424 + 539c: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 539e: 3106 movi r1, 6 + 53a0: 1162 lrw r3, 0x2000026c // 5428 + 53a2: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 53a4: 8223 ld.b r1, (r2, 0x3) + 53a6: 1162 lrw r3, 0x20000265 // 542c + 53a8: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 53aa: 9246 ld.w r2, (r2, 0x18) + 53ac: 1161 lrw r3, 0x2000023c // 5430 + 53ae: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 53b0: 1141 lrw r2, 0xea5f // 5434 + 53b2: 1162 lrw r3, 0x200002b8 // 5438 + 53b4: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 53b6: 3200 movi r2, 0 + 53b8: 1161 lrw r3, 0x20000239 // 543c + 53ba: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 53bc: 3202 movi r2, 2 + 53be: 1161 lrw r3, 0x2000023a // 5440 + 53c0: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 53c2: 3232 movi r2, 50 + 53c4: 1160 lrw r3, 0x20000290 // 5444 + 53c6: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 53c8: 3200 movi r2, 0 + 53ca: 1160 lrw r3, 0x200002bc // 5448 + 53cc: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 53ce: 3201 movi r2, 1 + 53d0: 107f lrw r3, 0x200002b6 // 544c + 53d2: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 53d4: 3202 movi r2, 2 + 53d6: 107f lrw r3, 0x200002b4 // 5450 + 53d8: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 53da: 3204 movi r2, 4 + 53dc: 107e lrw r3, 0x20000242 // 5454 + 53de: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 53e0: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 53e2: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 53e4: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 53e6: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 53e8: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 53ea: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 53ec: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 53ee: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 53f0: 3207 movi r2, 7 + 53f2: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 53f4: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 53f6: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 53f8: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 53fa: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 53fc: 3204 movi r2, 4 + 53fe: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 5400: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 5402: ab50 st.h r2, (r3, 0x20) + 5404: 783c jmp r15 + 5406: 0000 bkpt + 5408: 20000268 .long 0x20000268 + 540c: 2000026e .long 0x2000026e + 5410: 200004a4 .long 0x200004a4 + 5414: 20000292 .long 0x20000292 + 5418: 20000238 .long 0x20000238 + 541c: 20000240 .long 0x20000240 + 5420: 20000241 .long 0x20000241 + 5424: 20000264 .long 0x20000264 + 5428: 2000026c .long 0x2000026c + 542c: 20000265 .long 0x20000265 + 5430: 2000023c .long 0x2000023c + 5434: 0000ea5f .long 0x0000ea5f + 5438: 200002b8 .long 0x200002b8 + 543c: 20000239 .long 0x20000239 + 5440: 2000023a .long 0x2000023a + 5444: 20000290 .long 0x20000290 + 5448: 200002bc .long 0x200002bc + 544c: 200002b6 .long 0x200002b6 + 5450: 200002b4 .long 0x200002b4 + 5454: 20000242 .long 0x20000242 + +Disassembly of section .text.CORET_DeInit: + +00005458 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 5458: 1065 lrw r3, 0x20000064 // 546c + 545a: 3204 movi r2, 4 + 545c: 9360 ld.w r3, (r3, 0x0) + 545e: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 5460: 3200 movi r2, 0 + 5462: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 5464: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 5466: b347 st.w r2, (r3, 0x1c) +} + 5468: 783c jmp r15 + 546a: 0000 bkpt + 546c: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00005470 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 5470: 1064 lrw r3, 0x20000064 // 5480 + 5472: 3200 movi r2, 0 + 5474: 9360 ld.w r3, (r3, 0x0) + 5476: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 5478: 3201 movi r2, 1 + 547a: 1063 lrw r3, 0xe000e100 // 5484 + 547c: b340 st.w r2, (r3, 0x0) +} + 547e: 783c jmp r15 + 5480: 20000064 .long 0x20000064 + 5484: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00005488 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 5488: 1063 lrw r3, 0x20000064 // 5494 + 548a: 9340 ld.w r2, (r3, 0x0) + 548c: 9264 ld.w r3, (r2, 0x10) + 548e: 3ba0 bseti r3, 0 + 5490: b264 st.w r3, (r2, 0x10) +} + 5492: 783c jmp r15 + 5494: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00005498 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 5498: 1063 lrw r3, 0x20000064 // 54a4 + 549a: 9340 ld.w r2, (r3, 0x0) + 549c: 9264 ld.w r3, (r2, 0x10) + 549e: 3b82 bclri r3, 2 + 54a0: b264 st.w r3, (r2, 0x10) +} + 54a2: 783c jmp r15 + 54a4: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +000054a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 54a8: 1063 lrw r3, 0x20000064 // 54b4 + 54aa: 9340 ld.w r2, (r3, 0x0) + 54ac: 9264 ld.w r3, (r2, 0x10) + 54ae: 3ba1 bseti r3, 1 + 54b0: b264 st.w r3, (r2, 0x10) +} + 54b2: 783c jmp r15 + 54b4: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +000054b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 54b8: 1063 lrw r3, 0x20000064 // 54c4 + 54ba: 3200 movi r2, 0 + 54bc: 9360 ld.w r3, (r3, 0x0) + 54be: b346 st.w r2, (r3, 0x18) +} + 54c0: 783c jmp r15 + 54c2: 0000 bkpt + 54c4: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +000054c8
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 54c8: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 54ca: e00000f9 bsr 0x56bc // 56bc + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 54ce: 1072 lrw r3, 0x200004f4 // 5514 + 54d0: 8340 ld.b r2, (r3, 0x0) + 54d2: 1032 lrw r1, 0xcd94 // 5518 + 54d4: 3000 movi r0, 0 + 54d6: e00008d3 bsr 0x667c // 667c + + TemCtrl_Init(); + 54da: e0001dbf bsr 0x9058 // 9058 + DisPlay_Init(); + 54de: e0002309 bsr 0x9af0 // 9af0 + Debug_Init(); + 54e2: e0002585 bsr 0x9fec // 9fec + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 54e6: e3fff7ef bsr 0x44c4 // 44c4 + + UART2_TASK(); + 54ea: e0000727 bsr 0x6338 // 6338 + + + + Touch_Key_Task(); + 54ee: e0000abf bsr 0x6a6c // 6a6c + + TemCtrl_Pro(); + 54f2: e0001f6f bsr 0x93d0 // 93d0 + + DisPlay_Task(); + 54f6: e000230d bsr 0x9b10 // 9b10 + + BUS485Send_Task(); + 54fa: e0000851 bsr 0x659c // 659c + + HT1621_Refresh_Task(); + 54fe: e0001c53 bsr 0x8da4 // 8da4 + + ADC_Sample_Task(); + 5502: e0001147 bsr 0x7790 // 7790 + + Debug_Task(); + 5506: e00025e5 bsr 0xa0d0 // a0d0 + + RLY_Direct_Control(); + 550a: e000268b bsr 0xa220 // a220 + + Tm1812_Task(); + 550e: e000169b bsr 0x8244 // 8244 + 5512: 07ea br 0x54e6 // 54e6 + 5514: 200004f4 .long 0x200004f4 + 5518: 0000cd94 .long 0x0000cd94 + +Disassembly of section .text.delay_nms: + +0000551c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 551c: 14d0 push r15 + 551e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 5520: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 5522: 3300 movi r3, 0 + j = 50* t; + 5524: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 5526: b862 st.w r3, (r14, 0x8) + j = 50* t; + 5528: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 552a: b860 st.w r3, (r14, 0x0) + 552c: 9840 ld.w r2, (r14, 0x0) + 552e: 9861 ld.w r3, (r14, 0x4) + 5530: 64c8 cmphs r2, r3 + 5532: 0c03 bf 0x5538 // 5538 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 5534: 1403 addi r14, r14, 12 + 5536: 1490 pop r15 + k++; + 5538: 9862 ld.w r3, (r14, 0x8) + 553a: 2300 addi r3, 1 + 553c: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 553e: e3fff7c3 bsr 0x44c4 // 44c4 + for ( i = 0; i < j; i++ ) + 5542: 9860 ld.w r3, (r14, 0x0) + 5544: 2300 addi r3, 1 + 5546: 07f2 br 0x552a // 552a + +Disassembly of section .text.delay_nus: + +00005548 : +void delay_nus(unsigned int t) +{ + 5548: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 554a: 3300 movi r3, 0 + 554c: b862 st.w r3, (r14, 0x8) + j = 1* t; + 554e: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 5550: b860 st.w r3, (r14, 0x0) + 5552: 9840 ld.w r2, (r14, 0x0) + 5554: 9861 ld.w r3, (r14, 0x4) + 5556: 64c8 cmphs r2, r3 + 5558: 0c03 bf 0x555e // 555e + { + k++; + } +} + 555a: 1403 addi r14, r14, 12 + 555c: 783c jmp r15 + k++; + 555e: 9862 ld.w r3, (r14, 0x8) + 5560: 2300 addi r3, 1 + 5562: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 5564: 9860 ld.w r3, (r14, 0x0) + 5566: 2300 addi r3, 1 + 5568: 07f4 br 0x5550 // 5550 + +Disassembly of section .text.GPIO_CONFIG: + +0000556c : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 556c: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 556e: 1181 lrw r4, 0x2000004c // 55f0 + 5570: 310e movi r1, 14 + 5572: 9400 ld.w r0, (r4, 0x0) + 5574: e3fff8e6 bsr 0x4740 // 4740 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 5578: 320e movi r2, 14 + 557a: 310e movi r1, 14 + 557c: 3000 movi r0, 0 + 557e: e3fff8f3 bsr 0x4764 // 4764 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 5582: 300e movi r0, 14 + 5584: e3fff976 bsr 0x4870 // 4870 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 5588: 3180 movi r1, 128 + 558a: 3200 movi r2, 0 + 558c: 4127 lsli r1, r1, 7 + 558e: 3001 movi r0, 1 + 5590: e3fff7dc bsr 0x4548 // 4548 + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 5594: 3180 movi r1, 128 + 5596: 4127 lsli r1, r1, 7 + 5598: 3001 movi r0, 1 + 559a: e3fff7f7 bsr 0x4588 // 4588 + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 559e: 3180 movi r1, 128 + 55a0: 9400 ld.w r0, (r4, 0x0) + 55a2: 4127 lsli r1, r1, 7 + 55a4: e3fff80c bsr 0x45bc // 45bc +// GPIO_Init(GPIOA0,14,Output); +// GPIO_Write_Low(GPIOA0,14); +//// GPIO_Write_High(GPIOA0,14); + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 55a8: 1093 lrw r4, 0x20000048 // 55f4 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 55aa: e3fff813 bsr 0x45d0 // 45d0 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 55ae: 9400 ld.w r0, (r4, 0x0) + 55b0: 3105 movi r1, 5 + 55b2: e3fff8c7 bsr 0x4740 // 4740 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 55b6: 3205 movi r2, 5 + 55b8: 3105 movi r1, 5 + 55ba: 3002 movi r0, 2 + 55bc: e3fff8d4 bsr 0x4764 // 4764 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 55c0: 3005 movi r0, 5 + 55c2: e3fff9d5 bsr 0x496c // 496c + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 55c6: 3201 movi r2, 1 + 55c8: 3120 movi r1, 32 + 55ca: 3001 movi r0, 1 + 55cc: e3fff7be bsr 0x4548 // 4548 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 55d0: 3200 movi r2, 0 + 55d2: 3120 movi r1, 32 + 55d4: 3001 movi r0, 1 + 55d6: e3fff7b9 bsr 0x4548 // 4548 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 55da: 3120 movi r1, 32 + 55dc: 3001 movi r0, 1 + 55de: e3fff7d5 bsr 0x4588 // 4588 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 55e2: 9400 ld.w r0, (r4, 0x0) + 55e4: 3120 movi r1, 32 + 55e6: e3fff7eb bsr 0x45bc // 45bc + EXI3_Int_Enable(); + 55ea: e3fff7eb bsr 0x45c0 // 45c0 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 55ee: 1491 pop r4, r15 + 55f0: 2000004c .long 0x2000004c + 55f4: 20000048 .long 0x20000048 + +Disassembly of section .text.BT_CONFIG: + +000055f8 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 55f8: 14d2 push r4-r5, r15 + 55fa: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 55fc: 1095 lrw r4, 0x20000008 // 5650 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 55fe: 3500 movi r5, 0 + BT_DeInit(BT1); + 5600: 9400 ld.w r0, (r4, 0x0) + 5602: e3fffa19 bsr 0x4a34 // 4a34 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 5606: 9400 ld.w r0, (r4, 0x0) + 5608: b8a1 st.w r5, (r14, 0x4) + 560a: b8a0 st.w r5, (r14, 0x0) + 560c: 3308 movi r3, 8 + 560e: 3200 movi r2, 0 + 5610: 3101 movi r1, 1 + 5612: e3fffa28 bsr 0x4a62 // 4a62 + 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); + 5616: 3380 movi r3, 128 + 5618: 4363 lsli r3, r3, 3 + 561a: b861 st.w r3, (r14, 0x4) + 561c: 9400 ld.w r0, (r4, 0x0) + 561e: 3300 movi r3, 0 + 5620: b8a3 st.w r5, (r14, 0xc) + 5622: b8a2 st.w r5, (r14, 0x8) + 5624: b8a0 st.w r5, (r14, 0x0) + 5626: 3200 movi r2, 0 + 5628: 3180 movi r1, 128 + 562a: e3fffa28 bsr 0x4a7a // 4a7a + BT_Period_CMP_Write(BT1,4780,1); + 562e: 3201 movi r2, 1 + 5630: 1029 lrw r1, 0x12ac // 5654 + 5632: 9400 ld.w r0, (r4, 0x0) + 5634: e3fffa39 bsr 0x4aa6 // 4aa6 + BT_Start(BT1); + 5638: 9400 ld.w r0, (r4, 0x0) + 563a: e3fffa0b bsr 0x4a50 // 4a50 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 563e: 9400 ld.w r0, (r4, 0x0) + 5640: 3202 movi r2, 2 + 5642: 3101 movi r1, 1 + 5644: e3fffa34 bsr 0x4aac // 4aac + BT1_INT_ENABLE(); + 5648: e3fffa3c bsr 0x4ac0 // 4ac0 + +} + 564c: 1404 addi r14, r14, 16 + 564e: 1492 pop r4-r5, r15 + 5650: 20000008 .long 0x20000008 + 5654: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00005658 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 5658: 14d0 push r15 + 565a: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 565c: e3fff680 bsr 0x435c // 435c + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 5660: 3101 movi r1, 1 + 5662: 3001 movi r0, 1 + 5664: e3fff6a2 bsr 0x43a8 // 43a8 + //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 + 5668: 3000 movi r0, 0 + 566a: e3fff6fb bsr 0x4460 // 4460 + 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 + 566e: 3180 movi r1, 128 + 5670: 3308 movi r3, 8 + 5672: 3200 movi r2, 0 + 5674: 4121 lsli r1, r1, 1 + 5676: 3002 movi r0, 2 + 5678: e3fff6b0 bsr 0x43d8 // 43d8 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 567c: 30c0 movi r0, 192 + 567e: 3118 movi r1, 24 + 5680: 4002 lsli r0, r0, 2 + 5682: e3fff72b bsr 0x44d8 // 44d8 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 5686: 3001 movi r0, 1 + 5688: e3fff700 bsr 0x4488 // 4488 + SYSCON_IWDCNT_Reload(); //reload WDT + 568c: e3fff71c bsr 0x44c4 // 44c4 + IWDT_Int_Enable(); + 5690: e3fff74e bsr 0x452c // 452c + //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 + 5694: 3340 movi r3, 64 + 5696: b860 st.w r3, (r14, 0x0) + 5698: 31c0 movi r1, 192 + 569a: 3380 movi r3, 128 + 569c: 4364 lsli r3, r3, 4 + 569e: 3200 movi r2, 0 + 56a0: 4123 lsli r1, r1, 3 + 56a2: 3000 movi r0, 0 + 56a4: e3fff726 bsr 0x44f0 // 44f0 + LVD_Int_Enable(); + 56a8: e3fff734 bsr 0x4510 // 4510 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 56ac: e3fff79a bsr 0x45e0 // 45e0 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 56b0: 3000 movi r0, 0 + 56b2: e00037d3 bsr 0xc658 // c658 + +} + 56b6: 1401 addi r14, r14, 4 + 56b8: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000056bc : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 56bc: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 56be: 1161 lrw r3, 0x2000005c // 5740 + Sys_RSR = 0x00000000; + 56c0: 1141 lrw r2, 0x200000b4 // 5744 + 56c2: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 56c4: 9360 ld.w r3, (r3, 0x0) + 56c6: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 56c8: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 56ca: 600c addu r0, r3 + 56cc: 9004 ld.w r0, (r0, 0x10) + 56ce: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 56d0: 105e lrw r2, 0x200000b0 // 5748 + 56d2: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 56d4: 3180 movi r1, 128 + 56d6: 4121 lsli r1, r1, 1 + 56d8: 604c addu r1, r3 + 56da: 9120 ld.w r1, (r1, 0x0) + 56dc: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 56de: 105c lrw r2, 0xfffffff // 574c + 56e0: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 56e2: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 56e4: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 56e6: 934c ld.w r2, (r3, 0x30) + 56e8: 6884 and r2, r1 + 56ea: 3a40 cmpnei r2, 0 + 56ec: 0ffd bf 0x56e6 // 56e6 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 56ee: e3ffffb5 bsr 0x5658 // 5658 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 56f2: e0000559 bsr 0x61a4 // 61a4 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 56f6: e3fff78b bsr 0x460c // 460c + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 56fa: 3101 movi r1, 1 + 56fc: 300f movi r0, 15 + 56fe: e3fff799 bsr 0x4630 // 4630 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 5702: 3102 movi r1, 2 + 5704: 3019 movi r0, 25 + 5706: e3fff795 bsr 0x4630 // 4630 + + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 570a: 3101 movi r1, 1 + 570c: 3016 movi r0, 22 + 570e: e3fff791 bsr 0x4630 // 4630 + + Set_INT_Priority(EXI4_IRQ, 1); //过零信号外部IO中断 + 5712: 3101 movi r1, 1 + 5714: 3017 movi r0, 23 + 5716: e3fff78d bsr 0x4630 // 4630 + +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 571a: e000252d bsr 0xa174 // a174 + + BT_CONFIG(); //BT initial + 571e: e3ffff6d bsr 0x55f8 // 55f8 + + GPIO_CONFIG(); + 5722: e3ffff25 bsr 0x556c // 556c + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 5726: 102b lrw r1, 0xa8a8 // 5750 + 5728: 3002 movi r0, 2 + 572a: e0000543 bsr 0x61b0 // 61b0 + + HT1621_Init(); //显示驱动初始化 + 572e: e000169d bsr 0x8468 // 8468 + + TM1812_LED_Init(); + 5732: e0001633 bsr 0x8398 // 8398 + + ADC_Init(); + 5736: e0000f39 bsr 0x75a8 // 75a8 + + Touch_Key_Init(); + 573a: e00007a9 bsr 0x668c // 668c +} + 573e: 1490 pop r15 + 5740: 2000005c .long 0x2000005c + 5744: 200000b4 .long 0x200000b4 + 5748: 200000b0 .long 0x200000b0 + 574c: 0fffffff .long 0x0fffffff + 5750: 0000a8a8 .long 0x0000a8a8 + +Disassembly of section .text.SYSCONIntHandler: + +00005754 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 5754: 1460 nie + 5756: 1462 ipush + // ISR content ... + nop; + 5758: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 575a: 117a lrw r3, 0x2000005c // 5840 + 575c: 3280 movi r2, 128 + 575e: 9360 ld.w r3, (r3, 0x0) + 5760: 60c8 addu r3, r2 + 5762: 9323 ld.w r1, (r3, 0xc) + 5764: 3001 movi r0, 1 + 5766: 6840 and r1, r0 + 5768: 3940 cmpnei r1, 0 + 576a: 0c04 bf 0x5772 // 5772 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 576c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 576e: 1463 ipop + 5770: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 5772: 9323 ld.w r1, (r3, 0xc) + 5774: 3002 movi r0, 2 + 5776: 6840 and r1, r0 + 5778: 3940 cmpnei r1, 0 + 577a: 0bf9 bt 0x576c // 576c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 577c: 9323 ld.w r1, (r3, 0xc) + 577e: 3008 movi r0, 8 + 5780: 6840 and r1, r0 + 5782: 3940 cmpnei r1, 0 + 5784: 0bf4 bt 0x576c // 576c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 5786: 9323 ld.w r1, (r3, 0xc) + 5788: 3010 movi r0, 16 + 578a: 6840 and r1, r0 + 578c: 3940 cmpnei r1, 0 + 578e: 0bef bt 0x576c // 576c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 5790: 9323 ld.w r1, (r3, 0xc) + 5792: 6848 and r1, r2 + 5794: 3940 cmpnei r1, 0 + 5796: 0c03 bf 0x579c // 579c + SYSCON->ICR = CMD_ERR_ST; + 5798: b341 st.w r2, (r3, 0x4) +} + 579a: 07ea br 0x576e // 576e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 579c: 3280 movi r2, 128 + 579e: 9323 ld.w r1, (r3, 0xc) + 57a0: 4241 lsli r2, r2, 1 + 57a2: 6848 and r1, r2 + 57a4: 3940 cmpnei r1, 0 + 57a6: 0bf9 bt 0x5798 // 5798 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 57a8: 3280 movi r2, 128 + 57aa: 9323 ld.w r1, (r3, 0xc) + 57ac: 4242 lsli r2, r2, 2 + 57ae: 6848 and r1, r2 + 57b0: 3940 cmpnei r1, 0 + 57b2: 0bf3 bt 0x5798 // 5798 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 57b4: 3280 movi r2, 128 + 57b6: 9323 ld.w r1, (r3, 0xc) + 57b8: 4243 lsli r2, r2, 3 + 57ba: 6848 and r1, r2 + 57bc: 3940 cmpnei r1, 0 + 57be: 0bed bt 0x5798 // 5798 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 57c0: 3280 movi r2, 128 + 57c2: 9323 ld.w r1, (r3, 0xc) + 57c4: 4244 lsli r2, r2, 4 + 57c6: 6848 and r1, r2 + 57c8: 3940 cmpnei r1, 0 + 57ca: 0c03 bf 0x57d0 // 57d0 + nop; + 57cc: 6c03 mov r0, r0 + 57ce: 07e5 br 0x5798 // 5798 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 57d0: 3280 movi r2, 128 + 57d2: 9323 ld.w r1, (r3, 0xc) + 57d4: 4245 lsli r2, r2, 5 + 57d6: 6848 and r1, r2 + 57d8: 3940 cmpnei r1, 0 + 57da: 0bdf bt 0x5798 // 5798 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 57dc: 3280 movi r2, 128 + 57de: 9323 ld.w r1, (r3, 0xc) + 57e0: 4246 lsli r2, r2, 6 + 57e2: 6848 and r1, r2 + 57e4: 3940 cmpnei r1, 0 + 57e6: 0bd9 bt 0x5798 // 5798 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 57e8: 3280 movi r2, 128 + 57ea: 9323 ld.w r1, (r3, 0xc) + 57ec: 4247 lsli r2, r2, 7 + 57ee: 6848 and r1, r2 + 57f0: 3940 cmpnei r1, 0 + 57f2: 0bd3 bt 0x5798 // 5798 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 57f4: 3280 movi r2, 128 + 57f6: 9323 ld.w r1, (r3, 0xc) + 57f8: 424b lsli r2, r2, 11 + 57fa: 6848 and r1, r2 + 57fc: 3940 cmpnei r1, 0 + 57fe: 0bcd bt 0x5798 // 5798 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 5800: 3280 movi r2, 128 + 5802: 9323 ld.w r1, (r3, 0xc) + 5804: 424c lsli r2, r2, 12 + 5806: 6848 and r1, r2 + 5808: 3940 cmpnei r1, 0 + 580a: 0bc7 bt 0x5798 // 5798 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 580c: 3280 movi r2, 128 + 580e: 9323 ld.w r1, (r3, 0xc) + 5810: 424d lsli r2, r2, 13 + 5812: 6848 and r1, r2 + 5814: 3940 cmpnei r1, 0 + 5816: 0bc1 bt 0x5798 // 5798 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 5818: 3280 movi r2, 128 + 581a: 9323 ld.w r1, (r3, 0xc) + 581c: 424e lsli r2, r2, 14 + 581e: 6848 and r1, r2 + 5820: 3940 cmpnei r1, 0 + 5822: 0bbb bt 0x5798 // 5798 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 5824: 3280 movi r2, 128 + 5826: 9323 ld.w r1, (r3, 0xc) + 5828: 424f lsli r2, r2, 15 + 582a: 6848 and r1, r2 + 582c: 3940 cmpnei r1, 0 + 582e: 0bb5 bt 0x5798 // 5798 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 5830: 3280 movi r2, 128 + 5832: 9323 ld.w r1, (r3, 0xc) + 5834: 4256 lsli r2, r2, 22 + 5836: 6848 and r1, r2 + 5838: 3940 cmpnei r1, 0 + 583a: 0baf bt 0x5798 // 5798 + 583c: 0799 br 0x576e // 576e + 583e: 0000 bkpt + 5840: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00005844 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 5844: 1460 nie + 5846: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 5848: 1078 lrw r3, 0x20000060 // 58a8 + 584a: 3101 movi r1, 1 + 584c: 9360 ld.w r3, (r3, 0x0) + 584e: 934b ld.w r2, (r3, 0x2c) + 5850: 6884 and r2, r1 + 5852: 3a40 cmpnei r2, 0 + 5854: 0c04 bf 0x585c // 585c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 5856: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 5858: 1463 ipop + 585a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 585c: 934b ld.w r2, (r3, 0x2c) + 585e: 3102 movi r1, 2 + 5860: 6884 and r2, r1 + 5862: 3a40 cmpnei r2, 0 + 5864: 0bf9 bt 0x5856 // 5856 + else if(IFC->MISR&PEP_END_INT) + 5866: 934b ld.w r2, (r3, 0x2c) + 5868: 3104 movi r1, 4 + 586a: 6884 and r2, r1 + 586c: 3a40 cmpnei r2, 0 + 586e: 0bf4 bt 0x5856 // 5856 + else if(IFC->MISR&PROT_ERR_INT) + 5870: 3280 movi r2, 128 + 5872: 932b ld.w r1, (r3, 0x2c) + 5874: 4245 lsli r2, r2, 5 + 5876: 6848 and r1, r2 + 5878: 3940 cmpnei r1, 0 + 587a: 0c03 bf 0x5880 // 5880 + IFC->ICR=OVW_ERR_INT; + 587c: b34c st.w r2, (r3, 0x30) +} + 587e: 07ed br 0x5858 // 5858 + else if(IFC->MISR&UDEF_ERR_INT) + 5880: 3280 movi r2, 128 + 5882: 932b ld.w r1, (r3, 0x2c) + 5884: 4246 lsli r2, r2, 6 + 5886: 6848 and r1, r2 + 5888: 3940 cmpnei r1, 0 + 588a: 0bf9 bt 0x587c // 587c + else if(IFC->MISR&ADDR_ERR_INT) + 588c: 3280 movi r2, 128 + 588e: 932b ld.w r1, (r3, 0x2c) + 5890: 4247 lsli r2, r2, 7 + 5892: 6848 and r1, r2 + 5894: 3940 cmpnei r1, 0 + 5896: 0bf3 bt 0x587c // 587c + else if(IFC->MISR&OVW_ERR_INT) + 5898: 3280 movi r2, 128 + 589a: 932b ld.w r1, (r3, 0x2c) + 589c: 4248 lsli r2, r2, 8 + 589e: 6848 and r1, r2 + 58a0: 3940 cmpnei r1, 0 + 58a2: 0bed bt 0x587c // 587c + 58a4: 07da br 0x5858 // 5858 + 58a6: 0000 bkpt + 58a8: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +000058ac : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 58ac: 1460 nie + 58ae: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 58b0: 1078 lrw r3, 0x20000050 // 5910 + 58b2: 3101 movi r1, 1 + 58b4: 9360 ld.w r3, (r3, 0x0) + 58b6: 9348 ld.w r2, (r3, 0x20) + 58b8: 6884 and r2, r1 + 58ba: 3a40 cmpnei r2, 0 + 58bc: 0c04 bf 0x58c4 // 58c4 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 58be: 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; + } +} + 58c0: 1463 ipop + 58c2: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 58c4: 9348 ld.w r2, (r3, 0x20) + 58c6: 3102 movi r1, 2 + 58c8: 6884 and r2, r1 + 58ca: 3a40 cmpnei r2, 0 + 58cc: 0bf9 bt 0x58be // 58be + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 58ce: 9348 ld.w r2, (r3, 0x20) + 58d0: 3104 movi r1, 4 + 58d2: 6884 and r2, r1 + 58d4: 3a40 cmpnei r2, 0 + 58d6: 0bf4 bt 0x58be // 58be + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 58d8: 9348 ld.w r2, (r3, 0x20) + 58da: 3110 movi r1, 16 + 58dc: 6884 and r2, r1 + 58de: 3a40 cmpnei r2, 0 + 58e0: 0bef bt 0x58be // 58be + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 58e2: 9348 ld.w r2, (r3, 0x20) + 58e4: 3120 movi r1, 32 + 58e6: 6884 and r2, r1 + 58e8: 3a40 cmpnei r2, 0 + 58ea: 0bea bt 0x58be // 58be + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 58ec: 9348 ld.w r2, (r3, 0x20) + 58ee: 3140 movi r1, 64 + 58f0: 6884 and r2, r1 + 58f2: 3a40 cmpnei r2, 0 + 58f4: 0be5 bt 0x58be // 58be + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 58f6: 9348 ld.w r2, (r3, 0x20) + 58f8: 3180 movi r1, 128 + 58fa: 6884 and r2, r1 + 58fc: 3a40 cmpnei r2, 0 + 58fe: 0be0 bt 0x58be // 58be + 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 + 5900: 3280 movi r2, 128 + 5902: 9328 ld.w r1, (r3, 0x20) + 5904: 4249 lsli r2, r2, 9 + 5906: 6848 and r1, r2 + 5908: 3940 cmpnei r1, 0 + 590a: 0fdb bf 0x58c0 // 58c0 + ADC0->CSR = ADC12_SEQ_END0; + 590c: b347 st.w r2, (r3, 0x1c) +} + 590e: 07d9 br 0x58c0 // 58c0 + 5910: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00005914 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 5914: 1460 nie + 5916: 1462 ipush + 5918: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 591a: 1387 lrw r4, 0x20000020 // 5ab4 + 591c: 3280 movi r2, 128 + 591e: 9460 ld.w r3, (r4, 0x0) + 5920: 60c8 addu r3, r2 + 5922: 9335 ld.w r1, (r3, 0x54) + 5924: 3001 movi r0, 1 + 5926: 6840 and r1, r0 + 5928: 3940 cmpnei r1, 0 + 592a: 0c03 bf 0x5930 // 5930 + 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; + 592c: b317 st.w r0, (r3, 0x5c) + 592e: 0424 br 0x5976 // 5976 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 5930: 9335 ld.w r1, (r3, 0x54) + 5932: 3002 movi r0, 2 + 5934: 6840 and r1, r0 + 5936: 3940 cmpnei r1, 0 + 5938: 0bfa bt 0x592c // 592c + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 593a: 9335 ld.w r1, (r3, 0x54) + 593c: 3004 movi r0, 4 + 593e: 6840 and r1, r0 + 5940: 3940 cmpnei r1, 0 + 5942: 0bf5 bt 0x592c // 592c + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 5944: 9335 ld.w r1, (r3, 0x54) + 5946: 3008 movi r0, 8 + 5948: 6840 and r1, r0 + 594a: 3940 cmpnei r1, 0 + 594c: 0bf0 bt 0x592c // 592c + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 594e: 9335 ld.w r1, (r3, 0x54) + 5950: 3010 movi r0, 16 + 5952: 6840 and r1, r0 + 5954: 3940 cmpnei r1, 0 + 5956: 0c1f bf 0x5994 // 5994 + EPT0->ICR=EPT_CAP_LD0; + 5958: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 595a: 3200 movi r2, 0 + 595c: 3101 movi r1, 1 + 595e: 3000 movi r0, 0 + 5960: e3fff5f4 bsr 0x4548 // 4548 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 5964: 3201 movi r2, 1 + 5966: 3101 movi r1, 1 + 5968: 3001 movi r0, 1 + 596a: e3fff5ef bsr 0x4548 // 4548 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 596e: 9460 ld.w r3, (r4, 0x0) + 5970: 934b ld.w r2, (r3, 0x2c) + 5972: 1272 lrw r3, 0x200002c4 // 5ab8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 5974: 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 + 5976: 9460 ld.w r3, (r4, 0x0) + 5978: 3280 movi r2, 128 + 597a: 60c8 addu r3, r2 + 597c: 932b ld.w r1, (r3, 0x2c) + 597e: 3001 movi r0, 1 + 5980: 6840 and r1, r0 + 5982: 3940 cmpnei r1, 0 + 5984: 0c61 bf 0x5a46 // 5a46 + { + 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; + 5986: 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; + } +} + 5988: d9ee2001 ld.w r15, (r14, 0x4) + 598c: 9880 ld.w r4, (r14, 0x0) + 598e: 1402 addi r14, r14, 8 + 5990: 1463 ipop + 5992: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 5994: 9335 ld.w r1, (r3, 0x54) + 5996: 3020 movi r0, 32 + 5998: 6840 and r1, r0 + 599a: 3940 cmpnei r1, 0 + 599c: 0c10 bf 0x59bc // 59bc + EPT0->ICR=EPT_CAP_LD1; + 599e: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 59a0: 3200 movi r2, 0 + 59a2: 3101 movi r1, 1 + 59a4: 3001 movi r0, 1 + 59a6: e3fff5d1 bsr 0x4548 // 4548 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 59aa: 3201 movi r2, 1 + 59ac: 3101 movi r1, 1 + 59ae: 3000 movi r0, 0 + 59b0: e3fff5cc bsr 0x4548 // 4548 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 59b4: 9460 ld.w r3, (r4, 0x0) + 59b6: 934c ld.w r2, (r3, 0x30) + 59b8: 1261 lrw r3, 0x200002c0 // 5abc + 59ba: 07dd br 0x5974 // 5974 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 59bc: 9335 ld.w r1, (r3, 0x54) + 59be: 3040 movi r0, 64 + 59c0: 6840 and r1, r0 + 59c2: 3940 cmpnei r1, 0 + 59c4: 0bb4 bt 0x592c // 592c + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 59c6: 9335 ld.w r1, (r3, 0x54) + 59c8: 6848 and r1, r2 + 59ca: 3940 cmpnei r1, 0 + 59cc: 0c03 bf 0x59d2 // 59d2 + EPT0->ICR=EPT_CDD; + 59ce: b357 st.w r2, (r3, 0x5c) + 59d0: 07d3 br 0x5976 // 5976 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 59d2: 3280 movi r2, 128 + 59d4: 9335 ld.w r1, (r3, 0x54) + 59d6: 4241 lsli r2, r2, 1 + 59d8: 6848 and r1, r2 + 59da: 3940 cmpnei r1, 0 + 59dc: 0bf9 bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 59de: 3280 movi r2, 128 + 59e0: 9335 ld.w r1, (r3, 0x54) + 59e2: 4242 lsli r2, r2, 2 + 59e4: 6848 and r1, r2 + 59e6: 3940 cmpnei r1, 0 + 59e8: 0bf3 bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 59ea: 3280 movi r2, 128 + 59ec: 9335 ld.w r1, (r3, 0x54) + 59ee: 4243 lsli r2, r2, 3 + 59f0: 6848 and r1, r2 + 59f2: 3940 cmpnei r1, 0 + 59f4: 0bed bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 59f6: 3280 movi r2, 128 + 59f8: 9335 ld.w r1, (r3, 0x54) + 59fa: 4244 lsli r2, r2, 4 + 59fc: 6848 and r1, r2 + 59fe: 3940 cmpnei r1, 0 + 5a00: 0be7 bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 5a02: 3280 movi r2, 128 + 5a04: 9335 ld.w r1, (r3, 0x54) + 5a06: 4245 lsli r2, r2, 5 + 5a08: 6848 and r1, r2 + 5a0a: 3940 cmpnei r1, 0 + 5a0c: 0be1 bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 5a0e: 3280 movi r2, 128 + 5a10: 9335 ld.w r1, (r3, 0x54) + 5a12: 4246 lsli r2, r2, 6 + 5a14: 6848 and r1, r2 + 5a16: 3940 cmpnei r1, 0 + 5a18: 0bdb bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 5a1a: 3280 movi r2, 128 + 5a1c: 9335 ld.w r1, (r3, 0x54) + 5a1e: 4247 lsli r2, r2, 7 + 5a20: 6848 and r1, r2 + 5a22: 3940 cmpnei r1, 0 + 5a24: 0bd5 bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 5a26: 3280 movi r2, 128 + 5a28: 9335 ld.w r1, (r3, 0x54) + 5a2a: 4248 lsli r2, r2, 8 + 5a2c: 6848 and r1, r2 + 5a2e: 3940 cmpnei r1, 0 + 5a30: 0bcf bt 0x59ce // 59ce + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 5a32: 3280 movi r2, 128 + 5a34: 9335 ld.w r1, (r3, 0x54) + 5a36: 4249 lsli r2, r2, 9 + 5a38: 6848 and r1, r2 + 5a3a: 3940 cmpnei r1, 0 + 5a3c: 0f9d bf 0x5976 // 5976 + EPT0->ICR=EPT_PEND; + 5a3e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 5a40: e3fff98e bsr 0x4d5c // 4d5c + 5a44: 0799 br 0x5976 // 5976 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 5a46: 932b ld.w r1, (r3, 0x2c) + 5a48: 3002 movi r0, 2 + 5a4a: 6840 and r1, r0 + 5a4c: 3940 cmpnei r1, 0 + 5a4e: 0b9c bt 0x5986 // 5986 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 5a50: 932b ld.w r1, (r3, 0x2c) + 5a52: 3004 movi r0, 4 + 5a54: 6840 and r1, r0 + 5a56: 3940 cmpnei r1, 0 + 5a58: 0b97 bt 0x5986 // 5986 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 5a5a: 932b ld.w r1, (r3, 0x2c) + 5a5c: 3008 movi r0, 8 + 5a5e: 6840 and r1, r0 + 5a60: 3940 cmpnei r1, 0 + 5a62: 0b92 bt 0x5986 // 5986 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 5a64: 932b ld.w r1, (r3, 0x2c) + 5a66: 3010 movi r0, 16 + 5a68: 6840 and r1, r0 + 5a6a: 3940 cmpnei r1, 0 + 5a6c: 0b8d bt 0x5986 // 5986 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 5a6e: 932b ld.w r1, (r3, 0x2c) + 5a70: 3020 movi r0, 32 + 5a72: 6840 and r1, r0 + 5a74: 3940 cmpnei r1, 0 + 5a76: 0b88 bt 0x5986 // 5986 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 5a78: 932b ld.w r1, (r3, 0x2c) + 5a7a: 3040 movi r0, 64 + 5a7c: 6840 and r1, r0 + 5a7e: 3940 cmpnei r1, 0 + 5a80: 0b83 bt 0x5986 // 5986 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 5a82: 932b ld.w r1, (r3, 0x2c) + 5a84: 6848 and r1, r2 + 5a86: 3940 cmpnei r1, 0 + 5a88: 0c03 bf 0x5a8e // 5a8e + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 5a8a: b34d st.w r2, (r3, 0x34) +} + 5a8c: 077e br 0x5988 // 5988 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 5a8e: 3280 movi r2, 128 + 5a90: 932b ld.w r1, (r3, 0x2c) + 5a92: 4241 lsli r2, r2, 1 + 5a94: 6848 and r1, r2 + 5a96: 3940 cmpnei r1, 0 + 5a98: 0bf9 bt 0x5a8a // 5a8a + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 5a9a: 3280 movi r2, 128 + 5a9c: 932b ld.w r1, (r3, 0x2c) + 5a9e: 4242 lsli r2, r2, 2 + 5aa0: 6848 and r1, r2 + 5aa2: 3940 cmpnei r1, 0 + 5aa4: 0bf3 bt 0x5a8a // 5a8a + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 5aa6: 3280 movi r2, 128 + 5aa8: 932b ld.w r1, (r3, 0x2c) + 5aaa: 4243 lsli r2, r2, 3 + 5aac: 6848 and r1, r2 + 5aae: 3940 cmpnei r1, 0 + 5ab0: 0bed bt 0x5a8a // 5a8a + 5ab2: 076b br 0x5988 // 5988 + 5ab4: 20000020 .long 0x20000020 + 5ab8: 200002c4 .long 0x200002c4 + 5abc: 200002c0 .long 0x200002c0 + +Disassembly of section .text.WWDTHandler: + +00005ac0 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 5ac0: 1460 nie + 5ac2: 1462 ipush + 5ac4: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 5ac6: 10ab lrw r5, 0x20000010 // 5af0 + 5ac8: 3401 movi r4, 1 + 5aca: 9560 ld.w r3, (r5, 0x0) + 5acc: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 5ace: 30ff movi r0, 255 + 5ad0: e3fff7aa bsr 0x4a24 // 4a24 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 5ad4: 9540 ld.w r2, (r5, 0x0) + 5ad6: 9263 ld.w r3, (r2, 0xc) + 5ad8: 68d0 and r3, r4 + 5ada: 3b40 cmpnei r3, 0 + 5adc: 0c02 bf 0x5ae0 // 5ae0 + { + WWDT->ICR = WWDT_EVI; + 5ade: b285 st.w r4, (r2, 0x14) + } +} + 5ae0: d9ee2002 ld.w r15, (r14, 0x8) + 5ae4: 98a1 ld.w r5, (r14, 0x4) + 5ae6: 9880 ld.w r4, (r14, 0x0) + 5ae8: 1403 addi r14, r14, 12 + 5aea: 1463 ipop + 5aec: 1461 nir + 5aee: 0000 bkpt + 5af0: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00005af4 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 5af4: 1460 nie + 5af6: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 5af8: 107e lrw r3, 0x20000024 // 5b70 + 5afa: 3101 movi r1, 1 + 5afc: 9360 ld.w r3, (r3, 0x0) + 5afe: 237f addi r3, 128 + 5b00: 9355 ld.w r2, (r3, 0x54) + 5b02: 6884 and r2, r1 + 5b04: 3a40 cmpnei r2, 0 + 5b06: 0c04 bf 0x5b0e // 5b0e + { + 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; + 5b08: 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; + } +} + 5b0a: 1463 ipop + 5b0c: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 5b0e: 9355 ld.w r2, (r3, 0x54) + 5b10: 3102 movi r1, 2 + 5b12: 6884 and r2, r1 + 5b14: 3a40 cmpnei r2, 0 + 5b16: 0bf9 bt 0x5b08 // 5b08 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 5b18: 9355 ld.w r2, (r3, 0x54) + 5b1a: 3110 movi r1, 16 + 5b1c: 6884 and r2, r1 + 5b1e: 3a40 cmpnei r2, 0 + 5b20: 0bf4 bt 0x5b08 // 5b08 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 5b22: 9355 ld.w r2, (r3, 0x54) + 5b24: 3120 movi r1, 32 + 5b26: 6884 and r2, r1 + 5b28: 3a40 cmpnei r2, 0 + 5b2a: 0bef bt 0x5b08 // 5b08 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 5b2c: 3280 movi r2, 128 + 5b2e: 9335 ld.w r1, (r3, 0x54) + 5b30: 4241 lsli r2, r2, 1 + 5b32: 6848 and r1, r2 + 5b34: 3940 cmpnei r1, 0 + 5b36: 0c03 bf 0x5b3c // 5b3c + GPT0->ICR = GPT_INT_PEND; + 5b38: b357 st.w r2, (r3, 0x5c) +} + 5b3a: 07e8 br 0x5b0a // 5b0a + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 5b3c: 3280 movi r2, 128 + 5b3e: 9335 ld.w r1, (r3, 0x54) + 5b40: 4242 lsli r2, r2, 2 + 5b42: 6848 and r1, r2 + 5b44: 3940 cmpnei r1, 0 + 5b46: 0bf9 bt 0x5b38 // 5b38 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 5b48: 3280 movi r2, 128 + 5b4a: 9335 ld.w r1, (r3, 0x54) + 5b4c: 4243 lsli r2, r2, 3 + 5b4e: 6848 and r1, r2 + 5b50: 3940 cmpnei r1, 0 + 5b52: 0bf3 bt 0x5b38 // 5b38 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 5b54: 3280 movi r2, 128 + 5b56: 9335 ld.w r1, (r3, 0x54) + 5b58: 4244 lsli r2, r2, 4 + 5b5a: 6848 and r1, r2 + 5b5c: 3940 cmpnei r1, 0 + 5b5e: 0bed bt 0x5b38 // 5b38 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 5b60: 3280 movi r2, 128 + 5b62: 9335 ld.w r1, (r3, 0x54) + 5b64: 4249 lsli r2, r2, 9 + 5b66: 6848 and r1, r2 + 5b68: 3940 cmpnei r1, 0 + 5b6a: 0be7 bt 0x5b38 // 5b38 + 5b6c: 07cf br 0x5b0a // 5b0a + 5b6e: 0000 bkpt + 5b70: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00005b74 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 5b74: 1460 nie + 5b76: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 5b78: 1079 lrw r3, 0x20000018 // 5bdc + 5b7a: 3101 movi r1, 1 + 5b7c: 9360 ld.w r3, (r3, 0x0) + 5b7e: 934a ld.w r2, (r3, 0x28) + 5b80: 6884 and r2, r1 + 5b82: 3a40 cmpnei r2, 0 + 5b84: 0c14 bf 0x5bac // 5bac + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 5b86: 1057 lrw r2, 0xca53 // 5be0 + RTC->ICR=ALRA_INT; + 5b88: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 5b8a: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 5b8c: 9342 ld.w r2, (r3, 0x8) + 5b8e: 6c84 or r2, r1 + 5b90: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 5b92: 3280 movi r2, 128 + 5b94: 424d lsli r2, r2, 13 + 5b96: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 5b98: 3102 movi r1, 2 + 5b9a: 9342 ld.w r2, (r3, 0x8) + 5b9c: 6884 and r2, r1 + 5b9e: 3a40 cmpnei r2, 0 + 5ba0: 0bfd bt 0x5b9a // 5b9a + RTC->CR &= ~0x1; + 5ba2: 9342 ld.w r2, (r3, 0x8) + 5ba4: 3a80 bclri r2, 0 + 5ba6: 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; + } +} + 5ba8: 1463 ipop + 5baa: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 5bac: 934a ld.w r2, (r3, 0x28) + 5bae: 3102 movi r1, 2 + 5bb0: 6884 and r2, r1 + 5bb2: 3a40 cmpnei r2, 0 + 5bb4: 0c03 bf 0x5bba // 5bba + RTC->ICR=RTC_TRGEV1_INT; + 5bb6: b32b st.w r1, (r3, 0x2c) +} + 5bb8: 07f8 br 0x5ba8 // 5ba8 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 5bba: 934a ld.w r2, (r3, 0x28) + 5bbc: 3104 movi r1, 4 + 5bbe: 6884 and r2, r1 + 5bc0: 3a40 cmpnei r2, 0 + 5bc2: 0bfa bt 0x5bb6 // 5bb6 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 5bc4: 934a ld.w r2, (r3, 0x28) + 5bc6: 3108 movi r1, 8 + 5bc8: 6884 and r2, r1 + 5bca: 3a40 cmpnei r2, 0 + 5bcc: 0bf5 bt 0x5bb6 // 5bb6 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 5bce: 934a ld.w r2, (r3, 0x28) + 5bd0: 3110 movi r1, 16 + 5bd2: 6884 and r2, r1 + 5bd4: 3a40 cmpnei r2, 0 + 5bd6: 0bf0 bt 0x5bb6 // 5bb6 + 5bd8: 07e8 br 0x5ba8 // 5ba8 + 5bda: 0000 bkpt + 5bdc: 20000018 .long 0x20000018 + 5be0: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00005be4 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 5be4: 1460 nie + 5be6: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 5be8: 106d lrw r3, 0x20000040 // 5c1c + 5bea: 3102 movi r1, 2 + 5bec: 9360 ld.w r3, (r3, 0x0) + 5bee: 9343 ld.w r2, (r3, 0xc) + 5bf0: 6884 and r2, r1 + 5bf2: 3a40 cmpnei r2, 0 + 5bf4: 0c03 bf 0x5bfa // 5bfa + { + 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; + 5bf6: b323 st.w r1, (r3, 0xc) + } +} + 5bf8: 0410 br 0x5c18 // 5c18 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 5bfa: 9343 ld.w r2, (r3, 0xc) + 5bfc: 3101 movi r1, 1 + 5bfe: 6884 and r2, r1 + 5c00: 3a40 cmpnei r2, 0 + 5c02: 0bfa bt 0x5bf6 // 5bf6 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 5c04: 9343 ld.w r2, (r3, 0xc) + 5c06: 3108 movi r1, 8 + 5c08: 6884 and r2, r1 + 5c0a: 3a40 cmpnei r2, 0 + 5c0c: 0bf5 bt 0x5bf6 // 5bf6 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 5c0e: 9343 ld.w r2, (r3, 0xc) + 5c10: 3104 movi r1, 4 + 5c12: 6884 and r2, r1 + 5c14: 3a40 cmpnei r2, 0 + 5c16: 0bf0 bt 0x5bf6 // 5bf6 +} + 5c18: 1463 ipop + 5c1a: 1461 nir + 5c1c: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00005c20 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 5c20: 1460 nie + 5c22: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 5c24: 106d lrw r3, 0x2000003c // 5c58 + 5c26: 3102 movi r1, 2 + 5c28: 9360 ld.w r3, (r3, 0x0) + 5c2a: 9343 ld.w r2, (r3, 0xc) + 5c2c: 6884 and r2, r1 + 5c2e: 3a40 cmpnei r2, 0 + 5c30: 0c03 bf 0x5c36 // 5c36 + { + 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; + 5c32: b323 st.w r1, (r3, 0xc) + } +} + 5c34: 0410 br 0x5c54 // 5c54 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 5c36: 9343 ld.w r2, (r3, 0xc) + 5c38: 3101 movi r1, 1 + 5c3a: 6884 and r2, r1 + 5c3c: 3a40 cmpnei r2, 0 + 5c3e: 0bfa bt 0x5c32 // 5c32 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 5c40: 9343 ld.w r2, (r3, 0xc) + 5c42: 3108 movi r1, 8 + 5c44: 6884 and r2, r1 + 5c46: 3a40 cmpnei r2, 0 + 5c48: 0bf5 bt 0x5c32 // 5c32 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 5c4a: 9343 ld.w r2, (r3, 0xc) + 5c4c: 3104 movi r1, 4 + 5c4e: 6884 and r2, r1 + 5c50: 3a40 cmpnei r2, 0 + 5c52: 0bf0 bt 0x5c32 // 5c32 +} + 5c54: 1463 ipop + 5c56: 1461 nir + 5c58: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00005c5c : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 5c5c: 1460 nie + 5c5e: 1462 ipush + 5c60: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 5c62: 107f lrw r3, 0x20000038 // 5cdc + 5c64: 3102 movi r1, 2 + 5c66: 9360 ld.w r3, (r3, 0x0) + 5c68: 9343 ld.w r2, (r3, 0xc) + 5c6a: 6884 and r2, r1 + 5c6c: 3a40 cmpnei r2, 0 + 5c6e: 0c0b bf 0x5c84 // 5c84 + { + UART2->ISR=UART_RX_INT_S; + 5c70: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 5c72: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 5c74: 7400 zextb r0, r0 + 5c76: e000032d bsr 0x62d0 // 62d0 + RS485_Comm_End ++; + } + + } + +} + 5c7a: d9ee2000 ld.w r15, (r14, 0x0) + 5c7e: 1401 addi r14, r14, 4 + 5c80: 1463 ipop + 5c82: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 5c84: 9323 ld.w r1, (r3, 0xc) + 5c86: 3201 movi r2, 1 + 5c88: 6848 and r1, r2 + 5c8a: 3940 cmpnei r1, 0 + 5c8c: 0c0d bf 0x5ca6 // 5ca6 + UART2->ISR=UART_TX_INT_S; + 5c8e: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 5c90: 1074 lrw r3, 0x2000012c // 5ce0 + 5c92: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 5c94: 1074 lrw r3, 0x20000130 // 5ce4 + 5c96: 9360 ld.w r3, (r3, 0x0) + 5c98: 3b41 cmpnei r3, 1 + 5c9a: 0bf0 bt 0x5c7a // 5c7a + RS485_Comm_Start ++; + 5c9c: 1053 lrw r2, 0x20000134 // 5ce8 + RS485_Comm_End ++; + 5c9e: 9260 ld.w r3, (r2, 0x0) + 5ca0: 2300 addi r3, 1 + 5ca2: b260 st.w r3, (r2, 0x0) +} + 5ca4: 07eb br 0x5c7a // 5c7a + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 5ca6: 9343 ld.w r2, (r3, 0xc) + 5ca8: 3108 movi r1, 8 + 5caa: 6884 and r2, r1 + 5cac: 3a40 cmpnei r2, 0 + 5cae: 0c03 bf 0x5cb4 // 5cb4 + UART2->ISR=UART_TX_IOV_S; + 5cb0: b323 st.w r1, (r3, 0xc) + 5cb2: 07e4 br 0x5c7a // 5c7a + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 5cb4: 9343 ld.w r2, (r3, 0xc) + 5cb6: 3104 movi r1, 4 + 5cb8: 6884 and r2, r1 + 5cba: 3a40 cmpnei r2, 0 + 5cbc: 0bfa bt 0x5cb0 // 5cb0 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 5cbe: 3180 movi r1, 128 + 5cc0: 9303 ld.w r0, (r3, 0xc) + 5cc2: 412c lsli r1, r1, 12 + 5cc4: 6804 and r0, r1 + 5cc6: 3840 cmpnei r0, 0 + 5cc8: 0fd9 bf 0x5c7a // 5c7a + UART2->ISR=UART_TX_DONE_S; + 5cca: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 5ccc: 1065 lrw r3, 0x2000012c // 5ce0 + 5cce: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 5cd0: 1065 lrw r3, 0x20000130 // 5ce4 + 5cd2: 9360 ld.w r3, (r3, 0x0) + 5cd4: 3b41 cmpnei r3, 1 + 5cd6: 0bd2 bt 0x5c7a // 5c7a + RS485_Comm_End ++; + 5cd8: 1045 lrw r2, 0x20000138 // 5cec + 5cda: 07e2 br 0x5c9e // 5c9e + 5cdc: 20000038 .long 0x20000038 + 5ce0: 2000012c .long 0x2000012c + 5ce4: 20000130 .long 0x20000130 + 5ce8: 20000134 .long 0x20000134 + 5cec: 20000138 .long 0x20000138 + +Disassembly of section .text.SPI0IntHandler: + +00005cf0 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 5cf0: 1460 nie + 5cf2: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 5cf4: 1178 lrw r3, 0x20000034 // 5dd4 + 5cf6: 3101 movi r1, 1 + 5cf8: 9360 ld.w r3, (r3, 0x0) + 5cfa: 9347 ld.w r2, (r3, 0x1c) + 5cfc: 6884 and r2, r1 + 5cfe: 3a40 cmpnei r2, 0 + 5d00: 0c03 bf 0x5d06 // 5d06 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 5d02: b328 st.w r1, (r3, 0x20) + } + +} + 5d04: 0407 br 0x5d12 // 5d12 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 5d06: 9347 ld.w r2, (r3, 0x1c) + 5d08: 3002 movi r0, 2 + 5d0a: 6880 and r2, r0 + 5d0c: 3a40 cmpnei r2, 0 + 5d0e: 0c04 bf 0x5d16 // 5d16 + SPI0->ICR = SPI_RTIM; + 5d10: b308 st.w r0, (r3, 0x20) +} + 5d12: 1463 ipop + 5d14: 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 + 5d16: 9347 ld.w r2, (r3, 0x1c) + 5d18: 3004 movi r0, 4 + 5d1a: 6880 and r2, r0 + 5d1c: 3a40 cmpnei r2, 0 + 5d1e: 0c55 bf 0x5dc8 // 5dc8 + SPI0->ICR = SPI_RXIM; + 5d20: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 5d22: 9302 ld.w r0, (r3, 0x8) + 5d24: 32aa movi r2, 170 + 5d26: 6482 cmpne r0, r2 + 5d28: 083e bt 0x5da4 // 5da4 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d2a: 3102 movi r1, 2 + 5d2c: 9343 ld.w r2, (r3, 0xc) + 5d2e: 6884 and r2, r1 + 5d30: 3a40 cmpnei r2, 0 + 5d32: 0ffd bf 0x5d2c // 5d2c + SPI0->DR = 0x11; + 5d34: 3211 movi r2, 17 + 5d36: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d38: 3110 movi r1, 16 + 5d3a: 9343 ld.w r2, (r3, 0xc) + 5d3c: 6884 and r2, r1 + 5d3e: 3a40 cmpnei r2, 0 + 5d40: 0bfd bt 0x5d3a // 5d3a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d42: 3102 movi r1, 2 + 5d44: 9343 ld.w r2, (r3, 0xc) + 5d46: 6884 and r2, r1 + 5d48: 3a40 cmpnei r2, 0 + 5d4a: 0ffd bf 0x5d44 // 5d44 + SPI0->DR = 0x12; + 5d4c: 3212 movi r2, 18 + 5d4e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d50: 3110 movi r1, 16 + 5d52: 9343 ld.w r2, (r3, 0xc) + 5d54: 6884 and r2, r1 + 5d56: 3a40 cmpnei r2, 0 + 5d58: 0bfd bt 0x5d52 // 5d52 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d5a: 3102 movi r1, 2 + 5d5c: 9343 ld.w r2, (r3, 0xc) + 5d5e: 6884 and r2, r1 + 5d60: 3a40 cmpnei r2, 0 + 5d62: 0ffd bf 0x5d5c // 5d5c + SPI0->DR = 0x13; + 5d64: 3213 movi r2, 19 + 5d66: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d68: 3110 movi r1, 16 + 5d6a: 9343 ld.w r2, (r3, 0xc) + 5d6c: 6884 and r2, r1 + 5d6e: 3a40 cmpnei r2, 0 + 5d70: 0bfd bt 0x5d6a // 5d6a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d72: 3102 movi r1, 2 + 5d74: 9343 ld.w r2, (r3, 0xc) + 5d76: 6884 and r2, r1 + 5d78: 3a40 cmpnei r2, 0 + 5d7a: 0ffd bf 0x5d74 // 5d74 + SPI0->DR = 0x14; + 5d7c: 3214 movi r2, 20 + 5d7e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d80: 3110 movi r1, 16 + 5d82: 9343 ld.w r2, (r3, 0xc) + 5d84: 6884 and r2, r1 + 5d86: 3a40 cmpnei r2, 0 + 5d88: 0bfd bt 0x5d82 // 5d82 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d8a: 3102 movi r1, 2 + 5d8c: 9343 ld.w r2, (r3, 0xc) + 5d8e: 6884 and r2, r1 + 5d90: 3a40 cmpnei r2, 0 + 5d92: 0ffd bf 0x5d8c // 5d8c + SPI0->DR = 0x15; + 5d94: 3215 movi r2, 21 + 5d96: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d98: 3110 movi r1, 16 + 5d9a: 9343 ld.w r2, (r3, 0xc) + 5d9c: 6884 and r2, r1 + 5d9e: 3a40 cmpnei r2, 0 + 5da0: 0bfd bt 0x5d9a // 5d9a + 5da2: 07b8 br 0x5d12 // 5d12 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 5da4: 9343 ld.w r2, (r3, 0xc) + 5da6: 6884 and r2, r1 + 5da8: 3a40 cmpnei r2, 0 + 5daa: 0bb4 bt 0x5d12 // 5d12 + SPI0->DR=0x0; //FIFO=0 + 5dac: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5dae: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 5db0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5db2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5db4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5db6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5db8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5dba: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5dbc: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5dbe: 9343 ld.w r2, (r3, 0xc) + 5dc0: 6884 and r2, r1 + 5dc2: 3a40 cmpnei r2, 0 + 5dc4: 0bfd bt 0x5dbe // 5dbe + 5dc6: 07a6 br 0x5d12 // 5d12 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 5dc8: 9347 ld.w r2, (r3, 0x1c) + 5dca: 3108 movi r1, 8 + 5dcc: 6884 and r2, r1 + 5dce: 3a40 cmpnei r2, 0 + 5dd0: 0b99 bt 0x5d02 // 5d02 + 5dd2: 07a0 br 0x5d12 // 5d12 + 5dd4: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00005dd8 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 5dd8: 1460 nie + 5dda: 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) + 5ddc: 1073 lrw r3, 0x2000002c // 5e28 + 5dde: 3104 movi r1, 4 + 5de0: 9360 ld.w r3, (r3, 0x0) + 5de2: 9349 ld.w r2, (r3, 0x24) + 5de4: 6884 and r2, r1 + 5de6: 3a40 cmpnei r2, 0 + 5de8: 0c02 bf 0x5dec // 5dec + { + SIO0->ICR=0X04; + 5dea: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 5dec: 9349 ld.w r2, (r3, 0x24) + 5dee: 3101 movi r1, 1 + 5df0: 6884 and r2, r1 + 5df2: 3a40 cmpnei r2, 0 + 5df4: 0c02 bf 0x5df8 // 5df8 + { + SIO0->ICR=0X01; + 5df6: 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 + 5df8: 9349 ld.w r2, (r3, 0x24) + 5dfa: 3102 movi r1, 2 + 5dfc: 6884 and r2, r1 + 5dfe: 3a40 cmpnei r2, 0 + 5e00: 0c03 bf 0x5e06 // 5e06 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 5e02: b32b st.w r1, (r3, 0x2c) + } +} + 5e04: 0410 br 0x5e24 // 5e24 + else if(SIO0->MISR&0X08) //RXBUFFULL + 5e06: 9349 ld.w r2, (r3, 0x24) + 5e08: 3108 movi r1, 8 + 5e0a: 6884 and r2, r1 + 5e0c: 3a40 cmpnei r2, 0 + 5e0e: 0bfa bt 0x5e02 // 5e02 + else if(SIO0->MISR&0X010) //BREAK + 5e10: 9349 ld.w r2, (r3, 0x24) + 5e12: 3110 movi r1, 16 + 5e14: 6884 and r2, r1 + 5e16: 3a40 cmpnei r2, 0 + 5e18: 0bf5 bt 0x5e02 // 5e02 + else if(SIO0->MISR&0X020) //TIMEOUT + 5e1a: 9349 ld.w r2, (r3, 0x24) + 5e1c: 3120 movi r1, 32 + 5e1e: 6884 and r2, r1 + 5e20: 3a40 cmpnei r2, 0 + 5e22: 0bf0 bt 0x5e02 // 5e02 +} + 5e24: 1463 ipop + 5e26: 1461 nir + 5e28: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00005e2c : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 5e2c: 1460 nie + 5e2e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 5e30: 106a lrw r3, 0x2000005c // 5e58 + 5e32: 3101 movi r1, 1 + 5e34: 9360 ld.w r3, (r3, 0x0) + 5e36: 237f addi r3, 128 + 5e38: 934c ld.w r2, (r3, 0x30) + 5e3a: 6884 and r2, r1 + 5e3c: 3a40 cmpnei r2, 0 + 5e3e: 0c04 bf 0x5e46 // 5e46 + { + SYSCON->EXICR = EXI_PIN0; + 5e40: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 5e42: 1463 ipop + 5e44: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 5e46: 3280 movi r2, 128 + 5e48: 932c ld.w r1, (r3, 0x30) + 5e4a: 4249 lsli r2, r2, 9 + 5e4c: 6848 and r1, r2 + 5e4e: 3940 cmpnei r1, 0 + 5e50: 0ff9 bf 0x5e42 // 5e42 + SYSCON->EXICR = EXI_PIN16; + 5e52: b34b st.w r2, (r3, 0x2c) +} + 5e54: 07f7 br 0x5e42 // 5e42 + 5e56: 0000 bkpt + 5e58: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00005e5c : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 5e5c: 1460 nie + 5e5e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 5e60: 106a lrw r3, 0x2000005c // 5e88 + 5e62: 3102 movi r1, 2 + 5e64: 9360 ld.w r3, (r3, 0x0) + 5e66: 237f addi r3, 128 + 5e68: 934c ld.w r2, (r3, 0x30) + 5e6a: 6884 and r2, r1 + 5e6c: 3a40 cmpnei r2, 0 + 5e6e: 0c04 bf 0x5e76 // 5e76 + { + SYSCON->EXICR = EXI_PIN1; + 5e70: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 5e72: 1463 ipop + 5e74: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 5e76: 3280 movi r2, 128 + 5e78: 932c ld.w r1, (r3, 0x30) + 5e7a: 424a lsli r2, r2, 10 + 5e7c: 6848 and r1, r2 + 5e7e: 3940 cmpnei r1, 0 + 5e80: 0ff9 bf 0x5e72 // 5e72 + SYSCON->EXICR = EXI_PIN17; + 5e82: b34b st.w r2, (r3, 0x2c) +} + 5e84: 07f7 br 0x5e72 // 5e72 + 5e86: 0000 bkpt + 5e88: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00005e8c : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 5e8c: 1460 nie + 5e8e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 5e90: 1070 lrw r3, 0x2000005c // 5ed0 + 5e92: 3104 movi r1, 4 + 5e94: 9360 ld.w r3, (r3, 0x0) + 5e96: 237f addi r3, 128 + 5e98: 934c ld.w r2, (r3, 0x30) + 5e9a: 6884 and r2, r1 + 5e9c: 3a40 cmpnei r2, 0 + 5e9e: 0c04 bf 0x5ea6 // 5ea6 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 5ea0: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 5ea2: 1463 ipop + 5ea4: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 5ea6: 934c ld.w r2, (r3, 0x30) + 5ea8: 3108 movi r1, 8 + 5eaa: 6884 and r2, r1 + 5eac: 3a40 cmpnei r2, 0 + 5eae: 0bf9 bt 0x5ea0 // 5ea0 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 5eb0: 3280 movi r2, 128 + 5eb2: 932c ld.w r1, (r3, 0x30) + 5eb4: 424b lsli r2, r2, 11 + 5eb6: 6848 and r1, r2 + 5eb8: 3940 cmpnei r1, 0 + 5eba: 0c03 bf 0x5ec0 // 5ec0 + SYSCON->EXICR = EXI_PIN19; + 5ebc: b34b st.w r2, (r3, 0x2c) +} + 5ebe: 07f2 br 0x5ea2 // 5ea2 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 5ec0: 3280 movi r2, 128 + 5ec2: 932c ld.w r1, (r3, 0x30) + 5ec4: 424c lsli r2, r2, 12 + 5ec6: 6848 and r1, r2 + 5ec8: 3940 cmpnei r1, 0 + 5eca: 0bf9 bt 0x5ebc // 5ebc + 5ecc: 07eb br 0x5ea2 // 5ea2 + 5ece: 0000 bkpt + 5ed0: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00005ed4 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 5ed4: 1460 nie + 5ed6: 1462 ipush + 5ed8: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 5eda: 1079 lrw r3, 0x2000005c // 5f3c + 5edc: 3280 movi r2, 128 + 5ede: 9360 ld.w r3, (r3, 0x0) + 5ee0: 60c8 addu r3, r2 + 5ee2: 932c ld.w r1, (r3, 0x30) + 5ee4: 3010 movi r0, 16 + 5ee6: 6840 and r1, r0 + 5ee8: 3940 cmpnei r1, 0 + 5eea: 0c03 bf 0x5ef0 // 5ef0 + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 5eec: b30b st.w r0, (r3, 0x2c) + 5eee: 0409 br 0x5f00 // 5f00 + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 5ef0: 932c ld.w r1, (r3, 0x30) + 5ef2: 3020 movi r0, 32 + 5ef4: 6840 and r1, r0 + 5ef6: 3940 cmpnei r1, 0 + 5ef8: 0c09 bf 0x5f0a // 5f0a + SYSCON->EXICR = EXI_PIN5; + 5efa: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 5efc: e0000394 bsr 0x6624 // 6624 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 5f00: d9ee2000 ld.w r15, (r14, 0x0) + 5f04: 1401 addi r14, r14, 4 + 5f06: 1463 ipop + 5f08: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 5f0a: 932c ld.w r1, (r3, 0x30) + 5f0c: 3040 movi r0, 64 + 5f0e: 6840 and r1, r0 + 5f10: 3940 cmpnei r1, 0 + 5f12: 0bed bt 0x5eec // 5eec + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 5f14: 932c ld.w r1, (r3, 0x30) + 5f16: 6848 and r1, r2 + 5f18: 3940 cmpnei r1, 0 + 5f1a: 0c03 bf 0x5f20 // 5f20 + SYSCON->EXICR = EXI_PIN9; + 5f1c: b34b st.w r2, (r3, 0x2c) +} + 5f1e: 07f1 br 0x5f00 // 5f00 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 5f20: 3280 movi r2, 128 + 5f22: 932c ld.w r1, (r3, 0x30) + 5f24: 4241 lsli r2, r2, 1 + 5f26: 6848 and r1, r2 + 5f28: 3940 cmpnei r1, 0 + 5f2a: 0bf9 bt 0x5f1c // 5f1c + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 5f2c: 3280 movi r2, 128 + 5f2e: 932c ld.w r1, (r3, 0x30) + 5f30: 4242 lsli r2, r2, 2 + 5f32: 6848 and r1, r2 + 5f34: 3940 cmpnei r1, 0 + 5f36: 0bf3 bt 0x5f1c // 5f1c + 5f38: 07e4 br 0x5f00 // 5f00 + 5f3a: 0000 bkpt + 5f3c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00005f40 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 5f40: 1460 nie + 5f42: 1462 ipush + 5f44: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 5f46: 107d lrw r3, 0x2000005c // 5fb8 + 5f48: 3280 movi r2, 128 + 5f4a: 9360 ld.w r3, (r3, 0x0) + 5f4c: 237f addi r3, 128 + 5f4e: 932c ld.w r1, (r3, 0x30) + 5f50: 4243 lsli r2, r2, 3 + 5f52: 6848 and r1, r2 + 5f54: 3940 cmpnei r1, 0 + 5f56: 0c03 bf 0x5f5c // 5f5c + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 5f58: b34b st.w r2, (r3, 0x2c) + } +} + 5f5a: 0422 br 0x5f9e // 5f9e + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 5f5c: 3280 movi r2, 128 + 5f5e: 932c ld.w r1, (r3, 0x30) + 5f60: 4244 lsli r2, r2, 4 + 5f62: 6848 and r1, r2 + 5f64: 3940 cmpnei r1, 0 + 5f66: 0bf9 bt 0x5f58 // 5f58 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 5f68: 3280 movi r2, 128 + 5f6a: 932c ld.w r1, (r3, 0x30) + 5f6c: 4245 lsli r2, r2, 5 + 5f6e: 6848 and r1, r2 + 5f70: 3940 cmpnei r1, 0 + 5f72: 0bf3 bt 0x5f58 // 5f58 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 5f74: 3280 movi r2, 128 + 5f76: 932c ld.w r1, (r3, 0x30) + 5f78: 4246 lsli r2, r2, 6 + 5f7a: 6848 and r1, r2 + 5f7c: 3940 cmpnei r1, 0 + 5f7e: 0bed bt 0x5f58 // 5f58 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 5f80: 3280 movi r2, 128 + 5f82: 932c ld.w r1, (r3, 0x30) + 5f84: 4247 lsli r2, r2, 7 + 5f86: 6848 and r1, r2 + 5f88: 3940 cmpnei r1, 0 + 5f8a: 0c0f bf 0x5fa8 // 5fa8 + SYSCON->EXICR = EXI_PIN14; + 5f8c: b34b st.w r2, (r3, 0x2c) + if(c_rly.rly_zCnt < 8){ + 5f8e: 104c lrw r2, 0x20000844 // 5fbc + 5f90: 8261 ld.b r3, (r2, 0x1) + 5f92: 3b07 cmphsi r3, 8 + 5f94: 0803 bt 0x5f9a // 5f9a + c_rly.rly_zCnt++; + 5f96: 2300 addi r3, 1 + 5f98: a261 st.b r3, (r2, 0x1) + RLY_Zero_Control(); //继电器控制 + 5f9a: e00021a7 bsr 0xa2e8 // a2e8 +} + 5f9e: d9ee2000 ld.w r15, (r14, 0x0) + 5fa2: 1401 addi r14, r14, 4 + 5fa4: 1463 ipop + 5fa6: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 5fa8: 3280 movi r2, 128 + 5faa: 932c ld.w r1, (r3, 0x30) + 5fac: 4248 lsli r2, r2, 8 + 5fae: 6848 and r1, r2 + 5fb0: 3940 cmpnei r1, 0 + 5fb2: 0bd3 bt 0x5f58 // 5f58 + 5fb4: 07f5 br 0x5f9e // 5f9e + 5fb6: 0000 bkpt + 5fb8: 2000005c .long 0x2000005c + 5fbc: 20000844 .long 0x20000844 + +Disassembly of section .text.LPTIntHandler: + +00005fc0 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 5fc0: 1460 nie + 5fc2: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 5fc4: 106b lrw r3, 0x20000014 // 5ff0 + 5fc6: 3101 movi r1, 1 + 5fc8: 9360 ld.w r3, (r3, 0x0) + 5fca: 934e ld.w r2, (r3, 0x38) + 5fcc: 6884 and r2, r1 + 5fce: 3a40 cmpnei r2, 0 + 5fd0: 0c03 bf 0x5fd6 // 5fd6 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 5fd2: b330 st.w r1, (r3, 0x40) + } +} + 5fd4: 040b br 0x5fea // 5fea + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 5fd6: 934e ld.w r2, (r3, 0x38) + 5fd8: 3102 movi r1, 2 + 5fda: 6884 and r2, r1 + 5fdc: 3a40 cmpnei r2, 0 + 5fde: 0bfa bt 0x5fd2 // 5fd2 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 5fe0: 934e ld.w r2, (r3, 0x38) + 5fe2: 3104 movi r1, 4 + 5fe4: 6884 and r2, r1 + 5fe6: 3a40 cmpnei r2, 0 + 5fe8: 0bf5 bt 0x5fd2 // 5fd2 +} + 5fea: 1463 ipop + 5fec: 1461 nir + 5fee: 0000 bkpt + 5ff0: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00005ff4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 5ff4: 1460 nie + 5ff6: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 5ff8: 1071 lrw r3, 0x2000000c // 603c + 5ffa: 3101 movi r1, 1 + 5ffc: 9360 ld.w r3, (r3, 0x0) + 5ffe: 934c ld.w r2, (r3, 0x30) + 6000: 6884 and r2, r1 + 6002: 3a40 cmpnei r2, 0 + 6004: 0c0a bf 0x6018 // 6018 + { + BT0->ICR = BT_PEND; + 6006: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 6008: 9341 ld.w r2, (r3, 0x4) + 600a: 3a86 bclri r2, 6 + 600c: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 600e: 9340 ld.w r2, (r3, 0x0) + 6010: 3200 movi r2, 0 + 6012: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 6014: 1463 ipop + 6016: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 6018: 934c ld.w r2, (r3, 0x30) + 601a: 3102 movi r1, 2 + 601c: 6884 and r2, r1 + 601e: 3a40 cmpnei r2, 0 + 6020: 0c03 bf 0x6026 // 6026 + BT0->ICR = BT_EVTRG; + 6022: b32d st.w r1, (r3, 0x34) +} + 6024: 07f8 br 0x6014 // 6014 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 6026: 934c ld.w r2, (r3, 0x30) + 6028: 3104 movi r1, 4 + 602a: 6884 and r2, r1 + 602c: 3a40 cmpnei r2, 0 + 602e: 0bfa bt 0x6022 // 6022 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 6030: 934c ld.w r2, (r3, 0x30) + 6032: 3108 movi r1, 8 + 6034: 6884 and r2, r1 + 6036: 3a40 cmpnei r2, 0 + 6038: 0bf5 bt 0x6022 // 6022 + 603a: 07ed br 0x6014 // 6014 + 603c: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00006040 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 6040: 1460 nie + 6042: 1462 ipush + 6044: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 6046: 1079 lrw r3, 0x20000008 // 60a8 + 6048: 3101 movi r1, 1 + 604a: 9360 ld.w r3, (r3, 0x0) + 604c: 934c ld.w r2, (r3, 0x30) + 604e: 6884 and r2, r1 + 6050: 3a40 cmpnei r2, 0 + 6052: 0c03 bf 0x6058 // 6058 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 6054: b32d st.w r1, (r3, 0x34) + } +} + 6056: 0418 br 0x6086 // 6086 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 6058: 934c ld.w r2, (r3, 0x30) + 605a: 3102 movi r1, 2 + 605c: 6884 and r2, r1 + 605e: 3a40 cmpnei r2, 0 + 6060: 0c18 bf 0x6090 // 6090 + BT1->ICR = BT_CMP; + 6062: b32d st.w r1, (r3, 0x34) + NUM++; + 6064: 1072 lrw r3, 0x200000b8 // 60ac + 6066: 8340 ld.b r2, (r3, 0x0) + 6068: 2200 addi r2, 1 + 606a: 7488 zextb r2, r2 + SysTick_100us++; + 606c: 9321 ld.w r1, (r3, 0x4) + 606e: 2100 addi r1, 1 + if(NUM >= 10){ + 6070: 3a09 cmphsi r2, 10 + NUM++; + 6072: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 6074: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 6076: 0c08 bf 0x6086 // 6086 + NUM = 0; + 6078: 3200 movi r2, 0 + 607a: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 607c: 9342 ld.w r2, (r3, 0x8) + 607e: 2200 addi r2, 1 + 6080: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 6082: e00002b1 bsr 0x65e4 // 65e4 +} + 6086: d9ee2000 ld.w r15, (r14, 0x0) + 608a: 1401 addi r14, r14, 4 + 608c: 1463 ipop + 608e: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 6090: 934c ld.w r2, (r3, 0x30) + 6092: 3104 movi r1, 4 + 6094: 6884 and r2, r1 + 6096: 3a40 cmpnei r2, 0 + 6098: 0bde bt 0x6054 // 6054 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 609a: 934c ld.w r2, (r3, 0x30) + 609c: 3108 movi r1, 8 + 609e: 6884 and r2, r1 + 60a0: 3a40 cmpnei r2, 0 + 60a2: 0bd9 bt 0x6054 // 6054 + 60a4: 07f1 br 0x6086 // 6086 + 60a6: 0000 bkpt + 60a8: 20000008 .long 0x20000008 + 60ac: 200000b8 .long 0x200000b8 + +Disassembly of section .text.PriviledgeVioHandler: + +000060b0 : + 60b0: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000060b2 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 60b2: 1460 nie + 60b4: 1462 ipush + // ISR content ... + +} + 60b6: 1463 ipop + 60b8: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000060ba : + 60ba: 1460 nie + 60bc: 1462 ipush + 60be: 1463 ipop + 60c0: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000060c2 : + 60c2: 1460 nie + 60c4: 1462 ipush + 60c6: 1463 ipop + 60c8: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000060ca : + 60ca: 1460 nie + 60cc: 1462 ipush + 60ce: 1463 ipop + 60d0: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000060d2 : + 60d2: 1460 nie + 60d4: 1462 ipush + 60d6: 1463 ipop + 60d8: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +000060da : + 60da: 1460 nie + 60dc: 1462 ipush + 60de: 1463 ipop + 60e0: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +000060e2 : + 60e2: 1460 nie + 60e4: 1462 ipush + 60e6: 1463 ipop + 60e8: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +000060ea : + 60ea: 1460 nie + 60ec: 1462 ipush + 60ee: 1463 ipop + 60f0: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +000060f2 : + 60f2: 1460 nie + 60f4: 1462 ipush + 60f6: 1463 ipop + 60f8: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +000060fa : + 60fa: 1460 nie + 60fc: 1462 ipush + 60fe: 1463 ipop + 6100: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00006102 : + 6102: 1460 nie + 6104: 1462 ipush + 6106: 1463 ipop + 6108: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000610a : + 610a: 1460 nie + 610c: 1462 ipush + 610e: 1463 ipop + 6110: 1461 nir + +Disassembly of section .text.__divsi3: + +00006114 <__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) +{ + 6114: 14c1 push r4 + int PSR; + __asm volatile( + 6116: c0006023 mfcr r3, cr<0, 0> + 611a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 611e: 1046 lrw r2, 0x20000000 // 6134 <__divsi3+0x20> + 6120: 3400 movi r4, 0 + 6122: 9240 ld.w r2, (r2, 0x0) + 6124: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 6126: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 6128: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 612a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 612c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 6130: 9202 ld.w r0, (r2, 0x8) +} + 6132: 1481 pop r4 + 6134: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00006138 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 6138: 14c1 push r4 + int PSR; + __asm volatile( + 613a: c0006023 mfcr r3, cr<0, 0> + 613e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 6142: 1046 lrw r2, 0x20000000 // 6158 <__udivsi3+0x20> + 6144: 3401 movi r4, 1 + 6146: 9240 ld.w r2, (r2, 0x0) + 6148: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 614a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 614c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 614e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 6150: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 6154: 9202 ld.w r0, (r2, 0x8) +} + 6156: 1481 pop r4 + 6158: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +0000615c <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 615c: 14c1 push r4 + int PSR; + __asm volatile( + 615e: c0006023 mfcr r3, cr<0, 0> + 6162: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 6166: 1046 lrw r2, 0x20000000 // 617c <__modsi3+0x20> + 6168: 3400 movi r4, 0 + 616a: 9240 ld.w r2, (r2, 0x0) + 616c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 616e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 6170: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 6172: b221 st.w r1, (r2, 0x4) + __asm volatile( + 6174: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 6178: 9203 ld.w r0, (r2, 0xc) +} + 617a: 1481 pop r4 + 617c: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00006180 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 6180: 14c1 push r4 + int PSR; + __asm volatile( + 6182: c0006023 mfcr r3, cr<0, 0> + 6186: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 618a: 1046 lrw r2, 0x20000000 // 61a0 <__umodsi3+0x20> + 618c: 3401 movi r4, 1 + 618e: 9240 ld.w r2, (r2, 0x0) + 6190: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 6192: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 6194: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 6196: b221 st.w r1, (r2, 0x4) + __asm volatile( + 6198: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 619c: 9203 ld.w r0, (r2, 0xc) +} + 619e: 1481 pop r4 + 61a0: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000061a4 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 61a4: c1807420 psrset ee, ie +} + 61a8: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000061aa : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 61aa: c0807020 psrclr ie +} + 61ae: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000061b0 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 61b0: 14d2 push r4-r5, r15 + switch(uart_id){ + 61b2: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 61b4: 6d07 mov r4, r1 + switch(uart_id){ + 61b6: 0c24 bf 0x61fe // 61fe + 61b8: 3840 cmpnei r0, 0 + 61ba: 0c04 bf 0x61c2 // 61c2 + 61bc: 3842 cmpnei r0, 2 + 61be: 0c3a bf 0x6232 // 6232 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 61c0: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 61c2: e3fff4f7 bsr 0x4bb0 // 4bb0 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 61c6: 3100 movi r1, 0 + 61c8: 3000 movi r0, 0 + 61ca: e3fff533 bsr 0x4c30 // 4c30 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 61ce: 1174 lrw r3, 0x20000040 // 629c + 61d0: 3200 movi r2, 0 + 61d2: 9300 ld.w r0, (r3, 0x0) + 61d4: 1133 lrw r1, 0x1388 // 62a0 + 61d6: e3fff5ab bsr 0x4d2c // 4d2c + UART0_Int_Enable(); + 61da: e3fff50f bsr 0x4bf8 // 4bf8 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 61de: 3273 movi r2, 115 + 61e0: 3100 movi r1, 0 + 61e2: 1111 lrw r0, 0x200002f0 // 62a4 + 61e4: e3ffefdc bsr 0x419c // 419c <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 61e8: 1170 lrw r3, 0x20000357 // 62a8 + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 61ea: 3203 movi r2, 3 + 61ec: a340 st.b r2, (r3, 0x0) + g_uart[UART_1].processing_cf = prt_cf; + 61ee: 4c48 lsri r2, r4, 8 + 61f0: a388 st.b r4, (r3, 0x8) + 61f2: a349 st.b r2, (r3, 0x9) + 61f4: 4c50 lsri r2, r4, 16 + 61f6: 4c98 lsri r4, r4, 24 + 61f8: a34a st.b r2, (r3, 0xa) + 61fa: a38b st.b r4, (r3, 0xb) + break; + 61fc: 07e2 br 0x61c0 // 61c0 + UART1_DeInit(); //clear all UART Register + 61fe: e3fff4e5 bsr 0x4bc8 // 4bc8 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 6202: 3102 movi r1, 2 + 6204: 3001 movi r0, 1 + 6206: e3fff515 bsr 0x4c30 // 4c30 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 620a: 11a9 lrw r5, 0x2000003c // 62ac + 620c: 31d0 movi r1, 208 + 620e: 3200 movi r2, 0 + 6210: 4121 lsli r1, r1, 1 + 6212: 9500 ld.w r0, (r5, 0x0) + 6214: e3fff584 bsr 0x4d1c // 4d1c + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 6218: 31d0 movi r1, 208 + 621a: 9500 ld.w r0, (r5, 0x0) + 621c: 3200 movi r2, 0 + 621e: 4121 lsli r1, r1, 1 + 6220: e3fff586 bsr 0x4d2c // 4d2c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 6224: 3273 movi r2, 115 + 6226: 3100 movi r1, 0 + 6228: 1102 lrw r0, 0x20000363 // 62b0 + 622a: e3ffefb9 bsr 0x419c // 419c <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 622e: 1162 lrw r3, 0x200003ca // 62b4 + 6230: 07dd br 0x61ea // 61ea + UART2_DeInit(); //clear all UART Register + 6232: e3fff4d7 bsr 0x4be0 // 4be0 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 6236: 3102 movi r1, 2 + 6238: 3002 movi r0, 2 + 623a: e3fff4fb bsr 0x4c30 // 4c30 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 623e: 107f lrw r3, 0x20000038 // 62b8 + 6240: 3200 movi r2, 0 + 6242: 9300 ld.w r0, (r3, 0x0) + 6244: 1037 lrw r1, 0x1388 // 62a0 + 6246: e3fff573 bsr 0x4d2c // 4d2c + UART2_Int_Enable(); + 624a: e3fff4e5 bsr 0x4c14 // 4c14 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 624e: 3273 movi r2, 115 + 6250: 3100 movi r1, 0 + 6252: 101b lrw r0, 0x200003d6 // 62bc + 6254: e3ffefa4 bsr 0x419c // 419c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 6258: 3258 movi r2, 88 + 625a: 3100 movi r1, 0 + 625c: 1019 lrw r0, 0x2000044c // 62c0 + 625e: e3ffef9f bsr 0x419c // 419c <__memset_fast> + m_send.HighBit_Flag = 0x01; + 6262: 1079 lrw r3, 0x2000046c // 62c4 + 6264: 3201 movi r2, 1 + 6266: a353 st.b r2, (r3, 0x13) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 6268: 1078 lrw r3, 0x2000043d // 62c8 + 626a: 3203 movi r2, 3 + 626c: a340 st.b r2, (r3, 0x0) + g_uart[UART_2].processing_cf = prt_cf; + 626e: 4c48 lsri r2, r4, 8 + 6270: a388 st.b r4, (r3, 0x8) + 6272: a349 st.b r2, (r3, 0x9) + 6274: 4c50 lsri r2, r4, 16 + 6276: 4c98 lsri r4, r4, 24 + 6278: a38b st.b r4, (r3, 0xb) + 627a: a34a st.b r2, (r3, 0xa) + GPIO_Init(GPIOB0,3,Output); + 627c: 3103 movi r1, 3 + 627e: 1094 lrw r4, 0x20000048 // 62cc + 6280: 3200 movi r2, 0 + 6282: 9400 ld.w r0, (r4, 0x0) + 6284: e3fff1ee bsr 0x4660 // 4660 + GPIO_DriveStrength_EN(GPIOB0,3); + 6288: 9400 ld.w r0, (r4, 0x0) + 628a: 3103 movi r1, 3 + 628c: e3fff264 bsr 0x4754 // 4754 + GPIO_Write_Low(GPIOB0,3); + 6290: 9400 ld.w r0, (r4, 0x0) + 6292: 3103 movi r1, 3 + 6294: e3fff3a6 bsr 0x49e0 // 49e0 +} + 6298: 0794 br 0x61c0 // 61c0 + 629a: 0000 bkpt + 629c: 20000040 .long 0x20000040 + 62a0: 00001388 .long 0x00001388 + 62a4: 200002f0 .long 0x200002f0 + 62a8: 20000357 .long 0x20000357 + 62ac: 2000003c .long 0x2000003c + 62b0: 20000363 .long 0x20000363 + 62b4: 200003ca .long 0x200003ca + 62b8: 20000038 .long 0x20000038 + 62bc: 200003d6 .long 0x200003d6 + 62c0: 2000044c .long 0x2000044c + 62c4: 2000046c .long 0x2000046c + 62c8: 2000043d .long 0x2000043d + 62cc: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000062d0 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 62d0: 14c2 push r4-r5 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 62d2: 1056 lrw r2, 0x2000043b // 6328 + 62d4: 8261 ld.b r3, (r2, 0x1) + 62d6: 8280 ld.b r4, (r2, 0x0) + 62d8: 4368 lsli r3, r3, 8 + 62da: 6cd0 or r3, r4 + 62dc: 3462 movi r4, 98 + 62de: 5a22 addi r1, r2, 1 + 62e0: 64d1 cmplt r4, r3 + 62e2: 6d07 mov r4, r1 + 62e4: 0c04 bf 0x62ec // 62ec + 62e6: 3300 movi r3, 0 + 62e8: a260 st.b r3, (r2, 0x0) + 62ea: a261 st.b r3, (r2, 0x1) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 62ec: 8460 ld.b r3, (r4, 0x0) + 62ee: 82a0 ld.b r5, (r2, 0x0) + 62f0: 4368 lsli r3, r3, 8 + 62f2: 102f lrw r1, 0x200002f0 // 632c + 62f4: 6cd4 or r3, r5 + 62f6: 5b82 addi r4, r3, 1 + 62f8: 60c4 addu r3, r1 + 62fa: 7511 zexth r4, r4 + 62fc: 23e5 addi r3, 230 + 62fe: a280 st.b r4, (r2, 0x0) + 6300: a300 st.b r0, (r3, 0x0) + 6302: 4c88 lsri r4, r4, 8 + +// uart_receive_input((U8_T)data); + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 6304: 106b lrw r3, 0x200000c0 // 6330 + 6306: 9360 ld.w r3, (r3, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 6308: a281 st.b r4, (r2, 0x1) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 630a: 104b lrw r2, 0x151 // 6334 + 630c: 6084 addu r2, r1 + 630e: 4b08 lsri r0, r3, 8 + 6310: a260 st.b r3, (r2, 0x0) + 6312: a201 st.b r0, (r2, 0x1) + 6314: 4b10 lsri r0, r3, 16 + 6316: 4b78 lsri r3, r3, 24 + 6318: a263 st.b r3, (r2, 0x3) + g_uart[UART_2].Receiving = 0x01; + 631a: 33a5 movi r3, 165 + 631c: 4361 lsli r3, r3, 1 + 631e: 604c addu r1, r3 + 6320: 3301 movi r3, 1 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 6322: a202 st.b r0, (r2, 0x2) + g_uart[UART_2].Receiving = 0x01; + 6324: a160 st.b r3, (r1, 0x0) +} + 6326: 1482 pop r4-r5 + 6328: 2000043b .long 0x2000043b + 632c: 200002f0 .long 0x200002f0 + 6330: 200000c0 .long 0x200000c0 + 6334: 00000151 .long 0x00000151 + +Disassembly of section .text.UART2_TASK: + +00006338 : + + +void UART2_TASK(void){ + 6338: 14d4 push r4-r7, r15 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 633a: 118e lrw r4, 0x2000043a // 63f0 + 633c: 8460 ld.b r3, (r4, 0x0) + 633e: 3b41 cmpnei r3, 1 + 6340: 0850 bt 0x63e0 // 63e0 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 6342: 8448 ld.b r2, (r4, 0x8) + 6344: 8467 ld.b r3, (r4, 0x7) + 6346: 4248 lsli r2, r2, 8 + 6348: 6c8c or r2, r3 + 634a: 8469 ld.b r3, (r4, 0x9) + 634c: 4370 lsli r3, r3, 16 + 634e: 6c8c or r2, r3 + 6350: 846a ld.b r3, (r4, 0xa) + 6352: 11c9 lrw r6, 0x200000c0 // 63f4 + 6354: 4378 lsli r3, r3, 24 + 6356: 6cc8 or r3, r2 + 6358: 9620 ld.w r1, (r6, 0x0) + 635a: 8444 ld.b r2, (r4, 0x4) + 635c: 604e subu r1, r3 + 635e: 4248 lsli r2, r2, 8 + 6360: 8463 ld.b r3, (r4, 0x3) + 6362: 6c8c or r2, r3 + 6364: 8465 ld.b r3, (r4, 0x5) + 6366: 4370 lsli r3, r3, 16 + 6368: 6c8c or r2, r3 + 636a: 8466 ld.b r3, (r4, 0x6) + 636c: 4378 lsli r3, r3, 24 + 636e: 6cc8 or r3, r2 + 6370: 644c cmphs r3, r1 + 6372: 5cba addi r5, r4, 7 + 6374: 0836 bt 0x63e0 // 63e0 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 6376: e3fff13b bsr 0x45ec // 45ec + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 637a: 9660 ld.w r3, (r6, 0x0) + 637c: 4b48 lsri r2, r3, 8 + 637e: a467 st.b r3, (r4, 0x7) + 6380: a448 st.b r2, (r4, 0x8) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 6382: 84c2 ld.b r6, (r4, 0x2) + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 6384: 4b50 lsri r2, r3, 16 + 6386: 4b78 lsri r3, r3, 24 + 6388: a46a st.b r3, (r4, 0xa) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 638a: 46c8 lsli r6, r6, 8 + 638c: 8461 ld.b r3, (r4, 0x1) + 638e: 6d8c or r6, r3 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 6390: a449 st.b r2, (r4, 0x9) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 6392: 103a lrw r1, 0x200003d6 // 63f8 + 6394: 6c9b mov r2, r6 + 6396: 101a lrw r0, 0x200000c4 // 63fc + 6398: e3ffef46 bsr 0x4224 // 4224 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 639c: 10b9 lrw r5, 0x20000104 // 6400 + g_uart[UART_2].RecvLen = 0; + 639e: 3300 movi r3, 0 + 63a0: a461 st.b r3, (r4, 0x1) + 63a2: a462 st.b r3, (r4, 0x2) + g_uart[UART_2].Receiving = 0; + 63a4: a460 st.b r3, (r4, 0x0) + DealLen = g_uart[UART_2].RecvLen; + 63a6: add2 st.h r6, (r5, 0x24) + SYSCON_Int_Enable(); + 63a8: e3fff11c bsr 0x45e0 // 45e0 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 63ac: 844c ld.b r2, (r4, 0xc) + 63ae: 846b ld.b r3, (r4, 0xb) + 63b0: 4248 lsli r2, r2, 8 + 63b2: 6c8c or r2, r3 + 63b4: 846d ld.b r3, (r4, 0xd) + 63b6: 4370 lsli r3, r3, 16 + 63b8: 6c8c or r2, r3 + 63ba: 846e ld.b r3, (r4, 0xe) + 63bc: 4378 lsli r3, r3, 24 + 63be: 6cc8 or r3, r2 + 63c0: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 63c2: 5ce2 addi r7, r4, 1 + if(g_uart[UART_2].processing_cf != NULL){ + 63c4: 080f bt 0x63e2 // 63e2 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + } + + if(rev != 0x00){ + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 63c6: 8d32 ld.h r1, (r5, 0x24) + 63c8: 100d lrw r0, 0x200000c4 // 63fc + 63ca: e0000567 bsr 0x6e98 // 6e98 + } + + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(DealBuffer,DealLen); + 63ce: 8d32 ld.h r1, (r5, 0x24) + 63d0: 100b lrw r0, 0x200000c4 // 63fc + 63d2: e000157b bsr 0x8ec8 // 8ec8 + } + +// g_uart[UART_2].RecvLen = 0; +// g_uart[UART_2].Receiving = 0; + memset(DealBuffer,0,USART_BUFFER_SIZE); + 63d6: 3264 movi r2, 100 + 63d8: 3100 movi r1, 0 + 63da: 1009 lrw r0, 0x200000c4 // 63fc + 63dc: e3ffeee0 bsr 0x419c // 419c <__memset_fast> + } + } +} + 63e0: 1494 pop r4-r7, r15 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 63e2: 8d32 ld.h r1, (r5, 0x24) + 63e4: 1006 lrw r0, 0x200000c4 // 63fc + 63e6: 7bcd jsr r3 + if(rev != 0x00){ + 63e8: 3840 cmpnei r0, 0 + 63ea: 0ff6 bf 0x63d6 // 63d6 + 63ec: 07ed br 0x63c6 // 63c6 + 63ee: 0000 bkpt + 63f0: 2000043a .long 0x2000043a + 63f4: 200000c0 .long 0x200000c0 + 63f8: 200003d6 .long 0x200003d6 + 63fc: 200000c4 .long 0x200000c4 + 6400: 20000104 .long 0x20000104 + +Disassembly of section .text.BUS485_Send: + +00006404 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 6404: 14d4 push r4-r7, r15 + 6406: 1423 subi r14, r14, 12 + 6408: b802 st.w r0, (r14, 0x8) + 640a: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 640c: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 640e: 1189 lrw r4, 0x200000c4 // 64b0 + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 6410: 11c9 lrw r6, 0x20000048 // 64b4 + while(RS485_Comming == 0x01){ + 6412: 947a ld.w r3, (r4, 0x68) + 6414: 3b41 cmpnei r3, 1 + 6416: 0c3e bf 0x6492 // 6492 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 6418: 1168 lrw r3, 0x2000046c // 64b8 + 641a: 83d2 ld.b r6, (r3, 0x12) + 641c: 3e40 cmpnei r6, 0 + 641e: b861 st.w r3, (r14, 0x4) + 6420: 0845 bt 0x64aa // 64aa + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 6422: 11e5 lrw r7, 0x20000048 // 64b4 + CK_CPU_DisAllNormalIrq(); + 6424: e3fffec3 bsr 0x61aa // 61aa + GPIO_Write_High(GPIOB0,3); + 6428: 3103 movi r1, 3 + 642a: 9700 ld.w r0, (r7, 0x0) + 642c: e3fff2d6 bsr 0x49d8 // 49d8 + + RS485_Comm_Flag = 0x01; + 6430: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 6432: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 6434: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 6436: a352 st.b r2, (r3, 0x12) + RS485_Comm_Start = 0x00; + 6438: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 643a: a354 st.b r2, (r3, 0x14) + RS485_Comm_End = 0x00; + 643c: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 643e: e3fffeb3 bsr 0x61a4 // 61a4 + + UARTTransmit(UART2,buff,len); + 6442: 105f lrw r2, 0x20000038 // 64bc + 6444: 9200 ld.w r0, (r2, 0x0) + 6446: 9822 ld.w r1, (r14, 0x8) + 6448: 9840 ld.w r2, (r14, 0x0) + 644a: e3fff479 bsr 0x4d3c // 4d3c + do{ + delay_nus(100); + 644e: 3064 movi r0, 100 + 6450: e3fff87c bsr 0x5548 // 5548 + delay_cnt ++; + 6454: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 6456: 3363 movi r3, 99 + 6458: 654c cmphs r3, r5 + 645a: 0c08 bf 0x646a // 646a + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 645c: 947c ld.w r3, (r4, 0x70) + 645e: 9840 ld.w r2, (r14, 0x0) + 6460: 648d cmplt r3, r2 + 6462: 0bf6 bt 0x644e // 644e + 6464: 947d ld.w r3, (r4, 0x74) + 6466: 648d cmplt r3, r2 + 6468: 0bf3 bt 0x644e // 644e + + + CK_CPU_DisAllNormalIrq(); + 646a: e3fffea0 bsr 0x61aa // 61aa + + GPIO_Write_Low(GPIOB0,3); + 646e: 9700 ld.w r0, (r7, 0x0) + 6470: 3103 movi r1, 3 + 6472: e3fff2b7 bsr 0x49e0 // 49e0 + RS485_Comm_Flag = 0x00; + 6476: 3300 movi r3, 0 + 6478: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 647a: 1072 lrw r3, 0x200000c0 // 64c0 + 647c: 9340 ld.w r2, (r3, 0x0) + 647e: 1072 lrw r3, 0x2000044c // 64c4 + 6480: b353 st.w r2, (r3, 0x4c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 6482: 9861 ld.w r3, (r14, 0x4) + 6484: 3200 movi r2, 0 + 6486: a354 st.b r2, (r3, 0x14) + + CK_CPU_EnAllNormalIrq(); + 6488: e3fffe8e bsr 0x61a4 // 61a4 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 648c: 6c1b mov r0, r6 + 648e: 1403 addi r14, r14, 12 + 6490: 1494 pop r4-r7, r15 + delay_nus(100); + 6492: 3064 movi r0, 100 + 6494: e3fff85a bsr 0x5548 // 5548 + delay_cnt ++; + 6498: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 649a: 3364 movi r3, 100 + 649c: 64d6 cmpne r5, r3 + 649e: 0fbd bf 0x6418 // 6418 + GPIO_Reverse(GPIOB0,3); + 64a0: 3103 movi r1, 3 + 64a2: 9600 ld.w r0, (r6, 0x0) + 64a4: e3fff2a2 bsr 0x49e8 // 49e8 + 64a8: 07b5 br 0x6412 // 6412 + return UART_BUSBUSY; //发送失败 + 64aa: 3601 movi r6, 1 + 64ac: 07f0 br 0x648c // 648c + 64ae: 0000 bkpt + 64b0: 200000c4 .long 0x200000c4 + 64b4: 20000048 .long 0x20000048 + 64b8: 2000046c .long 0x2000046c + 64bc: 20000038 .long 0x20000038 + 64c0: 200000c0 .long 0x200000c0 + 64c4: 2000044c .long 0x2000044c + +Disassembly of section .text.MultSend_Task: + +000064c8 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 64c8: 14d4 push r4-r7, r15 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 64ca: 5963 subi r3, r1, 1 + 64cc: 74cd zexth r3, r3 + 64ce: 3431 movi r4, 49 + 64d0: 64d0 cmphs r4, r3 + 64d2: 0c25 bf 0x651c // 651c + + if(DatSd == 0x01) + 64d4: 3a41 cmpnei r2, 1 + 64d6: 0c03 bf 0x64dc // 64dc + }else{ + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 64d8: 3001 movi r0, 1 +} + 64da: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 64dc: 1093 lrw r4, 0x2000044c // 6528 + 64de: 3520 movi r5, 32 + 64e0: 6150 addu r5, r4 + 64e2: 8556 ld.b r2, (r5, 0x16) + 64e4: 8578 ld.b r3, (r5, 0x18) + 64e6: 64c8 cmphs r2, r3 + 64e8: 081c bt 0x6520 // 6520 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 64ea: 10d1 lrw r6, 0x200000c0 // 652c + 64ec: 9660 ld.w r3, (r6, 0x0) + 64ee: 94f5 ld.w r7, (r4, 0x54) + 64f0: 60de subu r3, r7 + 64f2: 94f2 ld.w r7, (r4, 0x48) + 64f4: 65cc cmphs r3, r7 + 64f6: 0817 bt 0x6524 // 6524 + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 64f8: 3a40 cmpnei r2, 0 + 64fa: 0c07 bf 0x6508 // 6508 + 64fc: 9454 ld.w r2, (r4, 0x50) + 64fe: 9660 ld.w r3, (r6, 0x0) + 6500: 60ca subu r3, r2 + 6502: 9451 ld.w r2, (r4, 0x44) + 6504: 648c cmphs r3, r2 + 6506: 0fe9 bf 0x64d8 // 64d8 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 6508: e3ffff7e bsr 0x6404 // 6404 + 650c: 3840 cmpnei r0, 0 + 650e: 0be5 bt 0x64d8 // 64d8 + m_send.ASend_Tick = SysTick_1ms; + 6510: 9660 ld.w r3, (r6, 0x0) + 6512: b474 st.w r3, (r4, 0x50) + m_send.ResendCnt++; + 6514: 8576 ld.b r3, (r5, 0x16) + 6516: 2300 addi r3, 1 + 6518: a576 st.b r3, (r5, 0x16) + 651a: 07e0 br 0x64da // 64da + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 651c: 3004 movi r0, 4 + 651e: 07de br 0x64da // 64da + return RETRY_END;//没有重发次数 + 6520: 3003 movi r0, 3 + 6522: 07dc br 0x64da // 64da + return DATA_END;//数据有效期结束 + 6524: 3002 movi r0, 2 + 6526: 07da br 0x64da // 64da + 6528: 2000044c .long 0x2000044c + 652c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Set_GroupSend: + +00006530 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 6530: 14d4 push r4-r7, r15 + 6532: 1422 subi r14, r14, 8 + 6534: 6d8b mov r6, r2 + 6536: 9847 ld.w r2, (r14, 0x1c) + 6538: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 653a: 5943 subi r2, r1, 1 +{ + 653c: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 653e: 7489 zexth r2, r2 + 6540: 3131 movi r1, 49 + 6542: 6484 cmphs r1, r2 +{ + 6544: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 6546: 0c1d bf 0x6580 // 6580 + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 6548: 108f lrw r4, 0x2000044c // 6584 + 654a: 3232 movi r2, 50 + 654c: 3100 movi r1, 0 + 654e: 6c13 mov r0, r4 + 6550: b861 st.w r3, (r14, 0x4) + 6552: e3ffee25 bsr 0x419c // 419c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 6556: 6c97 mov r2, r5 + 6558: 6c5f mov r1, r7 + 655a: 6c13 mov r0, r4 + 655c: e3ffee64 bsr 0x4224 // 4224 <__memcpy_fast> + m_send.SendLen = sled; + + m_send.DataValid_Time = indate;//数据有效期 + 6560: 9861 ld.w r3, (r14, 0x4) + m_send.TotalCnt = SCnt; //数据发送次数 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 6562: 9840 ld.w r2, (r14, 0x0) + m_send.DataValid_Time = indate;//数据有效期 + 6564: b472 st.w r3, (r4, 0x48) + m_send.TotalCnt = SCnt; //数据发送次数 + 6566: 3320 movi r3, 32 + 6568: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 656a: b451 st.w r2, (r4, 0x44) + + m_send.ASend_Flag = 0x01; + 656c: 3201 movi r2, 1 + 656e: a357 st.b r2, (r3, 0x17) + m_send.SendState = BUSSEND_WAIT; + 6570: a355 st.b r2, (r3, 0x15) + m_send.ResendCnt = 0x00; + 6572: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 6574: a3d8 st.b r6, (r3, 0x18) + m_send.ResendCnt = 0x00; + 6576: a356 st.b r2, (r3, 0x16) + m_send.SendLen = sled; + 6578: acbe st.h r5, (r4, 0x3c) + m_send.BusbusyTimeout = SysTick_1ms; + 657a: 1064 lrw r3, 0x200000c0 // 6588 + 657c: 9360 ld.w r3, (r3, 0x0) + 657e: b475 st.w r3, (r4, 0x54) +} + 6580: 1402 addi r14, r14, 8 + 6582: 1494 pop r4-r7, r15 + 6584: 2000044c .long 0x2000044c + 6588: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Clear_SendFlag: + +0000658c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 658c: 1063 lrw r3, 0x2000046c // 6598 + 658e: 3200 movi r2, 0 + 6590: a357 st.b r2, (r3, 0x17) + m_send.SendState = BUSSEND_SUCC; + 6592: a355 st.b r2, (r3, 0x15) +} + 6594: 783c jmp r15 + 6596: 0000 bkpt + 6598: 2000046c .long 0x2000046c + +Disassembly of section .text.BUS485Send_Task: + +0000659c : + m_send.Jump_Flag = jump; +} + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 659c: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 659e: 100f lrw r0, 0x2000044c // 65d8 + 65a0: 3420 movi r4, 32 + 65a2: 6100 addu r4, r0 + 65a4: 8477 ld.b r3, (r4, 0x17) + 65a6: 3b41 cmpnei r3, 1 + 65a8: 0817 bt 0x65d6 // 65d6 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 65aa: 883e ld.h r1, (r0, 0x3c) + 65ac: 3201 movi r2, 1 + 65ae: e3ffff8d bsr 0x64c8 // 64c8 + 65b2: a415 st.b r0, (r4, 0x15) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 65b4: 2801 subi r0, 2 + 65b6: 7400 zextb r0, r0 + 65b8: 3801 cmphsi r0, 2 + 65ba: 080e bt 0x65d6 // 65d6 + { + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 65bc: 3300 movi r3, 0 + 65be: a477 st.b r3, (r4, 0x17) +// UARTx_ChangeBaud(UART_2,m_send.SetBaud); +// m_send.SetBaudFlag = 0x00; +// m_send.SetBaud = 0x00; +// } + + if(m_send.Jump_Flag == 0x01){ + 65c0: 847a ld.b r3, (r4, 0x1a) + 65c2: 3b41 cmpnei r3, 1 + 65c4: 0809 bt 0x65d6 // 65d6 + Dbg_Println(DBG_BIT_Debug_STATUS,"Jump Boot"); + + SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 + 65c6: 1066 lrw r3, 0x2000005c // 65dc + 65c8: 1046 lrw r2, 0x200006d0 // 65e0 + 65ca: 9360 ld.w r3, (r3, 0x0) + 65cc: 924d ld.w r2, (r2, 0x34) + 65ce: 23ff addi r3, 256 + 65d0: b343 st.w r2, (r3, 0xc) + SYSCON_Software_Reset(); + 65d2: e3fff013 bsr 0x45f8 // 45f8 + } + } + } +} + 65d6: 1491 pop r4, r15 + 65d8: 2000044c .long 0x2000044c + 65dc: 2000005c .long 0x2000005c + 65e0: 200006d0 .long 0x200006d0 + +Disassembly of section .text.BusIdle_Task: + +000065e4 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 65e4: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 65e6: 10ae lrw r5, 0x2000044c // 661c + 65e8: 3420 movi r4, 32 + 65ea: 6114 addu r4, r5 + 65ec: 8472 ld.b r3, (r4, 0x12) + 65ee: 3b40 cmpnei r3, 0 + 65f0: 0c15 bf 0x661a // 661a + 65f2: 8474 ld.b r3, (r4, 0x14) + 65f4: 3b41 cmpnei r3, 1 + 65f6: 0c12 bf 0x661a // 661a + { + CK_CPU_DisAllNormalIrq(); + 65f8: e3fffdd9 bsr 0x61aa // 61aa + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 65fc: 8473 ld.b r3, (r4, 0x13) + 65fe: 3b41 cmpnei r3, 1 + 6600: 080b bt 0x6616 // 6616 + 6602: 1068 lrw r3, 0x200000c0 // 6620 + 6604: 9340 ld.w r2, (r3, 0x0) + 6606: 9573 ld.w r3, (r5, 0x4c) + 6608: 608e subu r2, r3 + 660a: 9570 ld.w r3, (r5, 0x40) + 660c: 2305 addi r3, 6 + 660e: 64c8 cmphs r2, r3 + 6610: 0c03 bf 0x6616 // 6616 + { + m_send.BusState_Flag = UART_BUSIDLE; + 6612: 3300 movi r3, 0 + 6614: a472 st.b r3, (r4, 0x12) + } + CK_CPU_EnAllNormalIrq(); + 6616: e3fffdc7 bsr 0x61a4 // 61a4 + } +} + 661a: 1492 pop r4-r5, r15 + 661c: 2000044c .long 0x2000044c + 6620: 200000c0 .long 0x200000c0 + +Disassembly of section .text.BusBusy_Task: + +00006624 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 6624: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 6626: 1093 lrw r4, 0x2000044c // 6670 + 6628: 3520 movi r5, 32 + CK_CPU_DisAllNormalIrq(); + 662a: e3fffdc0 bsr 0x61aa // 61aa + m_send.BusState_Flag = UART_BUSBUSY; + 662e: 6150 addu r5, r4 + 6630: 3301 movi r3, 1 + 6632: a572 st.b r3, (r5, 0x12) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 6634: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 6636: 1070 lrw r3, 0x200000c0 // 6674 + 6638: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 663a: 9300 ld.w r0, (r3, 0x0) + 663c: 9474 ld.w r3, (r4, 0x50) + m_send.BusState_Tick = SysTick_1ms; + 663e: b453 st.w r2, (r4, 0x4c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 6640: 600e subu r0, r3 + 6642: e3fffd9f bsr 0x6180 // 6180 <__umodsi3> + 6646: b410 st.w r0, (r4, 0x40) + + if(READ_RXLEVEL_STATE == 0x01){ + 6648: 3105 movi r1, 5 + 664a: 108c lrw r4, 0x20000048 // 6678 + 664c: 9400 ld.w r0, (r4, 0x0) + 664e: e3fff1d8 bsr 0x49fe // 49fe + 6652: 3841 cmpnei r0, 1 + 6654: 0806 bt 0x6660 // 6660 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 6656: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 6658: a573 st.b r3, (r5, 0x13) + } + CK_CPU_EnAllNormalIrq(); + 665a: e3fffda5 bsr 0x61a4 // 61a4 +} + 665e: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 6660: 9400 ld.w r0, (r4, 0x0) + 6662: 3105 movi r1, 5 + 6664: e3fff1cd bsr 0x49fe // 49fe + 6668: 3840 cmpnei r0, 0 + 666a: 0bf8 bt 0x665a // 665a + m_send.HighBit_Flag = 0x00; //低电平 + 666c: 3300 movi r3, 0 + 666e: 07f5 br 0x6658 // 6658 + 6670: 2000044c .long 0x2000044c + 6674: 200000c0 .long 0x200000c0 + 6678: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +0000667c : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 667c: 1423 subi r14, r14, 12 + 667e: b862 st.w r3, (r14, 0x8) + 6680: b841 st.w r2, (r14, 0x4) + 6682: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 6684: 1403 addi r14, r14, 12 + 6686: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00006688 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 6688: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +0000668c : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 668c: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 668e: 3234 movi r2, 52 + 6690: 3100 movi r1, 0 + 6692: 1014 lrw r0, 0x200004c0 // 66e0 + 6694: e3ffed84 bsr 0x419c // 419c <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 6698: 321c movi r2, 28 + 669a: 3100 movi r1, 0 + 669c: 1012 lrw r0, 0x200004a4 // 66e4 + 669e: e3ffed7f bsr 0x419c // 419c <__memset_fast> +// g_tk_filt[i].base_update_en = 0x01; +// } + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 66a2: 1092 lrw r4, 0x200004f4 // 66e8 + EEPROM_Init(); //按键库初始化前先读取参数 + 66a4: e000073a bsr 0x7518 // 7518 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 66a8: 8405 ld.b r0, (r4, 0x5) + 66aa: 102f lrw r1, 0x200004a4 // 66e4 + 66ac: e0000556 bsr 0x7158 // 7158 + if(rev == 0x00){ + 66b0: 3840 cmpnei r0, 0 + 66b2: 080e bt 0x66ce // 66ce + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 66b4: 8405 ld.b r0, (r4, 0x5) + 66b6: 102c lrw r1, 0x200004a4 // 66e4 + 66b8: e00005a6 bsr 0x7204 // 7204 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 66bc: 100a lrw r0, 0x200004a4 // 66e4 + 66be: e000064d bsr 0x7358 // 7358 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 66c2: e0002f43 bsr 0xc548 // c548 + + base_update_f = 0x01; //触摸状态强制更新 + 66c6: 106a lrw r3, 0x20000999 // 66ec + 66c8: 3201 movi r2, 1 + 66ca: a340 st.b r2, (r3, 0x0) + +} + 66cc: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 66ce: 1029 lrw r1, 0xcda2 // 66f0 + 66d0: 3000 movi r0, 0 + 66d2: e3ffffd5 bsr 0x667c // 667c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 66d6: 8405 ld.b r0, (r4, 0x5) + 66d8: 1023 lrw r1, 0x200004a4 // 66e4 + 66da: e0000607 bsr 0x72e8 // 72e8 + 66de: 07ef br 0x66bc // 66bc + 66e0: 200004c0 .long 0x200004c0 + 66e4: 200004a4 .long 0x200004a4 + 66e8: 200004f4 .long 0x200004f4 + 66ec: 20000999 .long 0x20000999 + 66f0: 0000cda2 .long 0x0000cda2 + +Disassembly of section .text.TouchKey_RS485_Printf_2: + +000066f4 : +} + +//2025-03-31,新触摸库打印触摸环境值函数 + +U8_T Printf_Ch = TKE_CH_MAX; +void TouchKey_RS485_Printf_2(void){ + 66f4: 14d4 push r4-r7, r15 + 66f6: 1432 subi r14, r14, 72 + U8_T ch = 0; + U8_T send_buff[50]; + U8_T send_len = 0; + U8_T i = 0; + + switch ((Key_Map>>9)&0x1f) { + 66f8: 0378 lrw r3, 0x200009f4 // 6914 + 66fa: 321f movi r2, 31 + 66fc: 9300 ld.w r0, (r3, 0x0) + 66fe: 4809 lsri r0, r0, 9 + 6700: 6808 and r0, r2 + 6702: 3810 cmphsi r0, 17 + 6704: b862 st.w r3, (r14, 0x8) + 6706: 037a lrw r3, 0x20000068 // 6918 + 6708: 0852 bt 0x67ac // 67ac + 670a: e3ffe6f9 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 670e: 090b .short 0x090b + 6710: 4f494f47 .long 0x4f494f47 + 6714: 4f4b4f4f .long 0x4f4b4f4f + 6718: 4f4f4f4f .long 0x4f4f4f4f + 671c: 004d4f4f .long 0x004d4f4f + case 0x00:break; + case 0x01:Printf_Ch = TKE_CH1;break; + 6720: 3200 movi r2, 0 + case 0x02:Printf_Ch = TKE_CH2;break; + case 0x04:Printf_Ch = TKE_CH3;break; + case 0x08:Printf_Ch = TKE_CH4;break; + case 0x10:Printf_Ch = TKE_CH5;break; + default:Printf_Ch = TKE_CH_MAX;break; + 6722: a340 st.b r2, (r3, 0x0) + } + + ch = Printf_Ch; + 6724: 8360 ld.b r3, (r3, 0x0) + 6726: b861 st.w r3, (r14, 0x4) + + send_buff[send_len++] = 0x0D; + 6728: 1805 addi r0, r14, 20 + 672a: 330d movi r3, 13 + 672c: a060 st.b r3, (r0, 0x0) + send_buff[send_len++] = 0x0A; + 672e: 330a movi r3, 10 + 6730: 135b lrw r2, 0x200008bc // 691c + 6732: 139c lrw r4, 0x20000069 // 6920 + 6734: a061 st.b r3, (r0, 0x1) + + if (ch == TKE_CH_MAX){ + 6736: 9861 ld.w r3, (r14, 0x4) + 6738: 3b45 cmpnei r3, 5 + 673a: b843 st.w r2, (r14, 0xc) + 673c: 137a lrw r3, 0x20000b5e // 6924 + 673e: 135b lrw r2, 0x20000890 // 6928 + 6740: b844 st.w r2, (r14, 0x10) + 6742: 0837 bt 0x67b0 // 67b0 + 6744: 6c83 mov r2, r0 + 6746: 3500 movi r5, 0 + + for(i=0;i>8; + 6748: 5c34 addu r1, r4, r5 + 674a: 8120 ld.b r1, (r1, 0x0) + 674c: 4121 lsli r1, r1, 1 + 674e: 5be4 addu r7, r3, r1 + 6750: 8fc0 ld.h r6, (r7, 0x0) + 6752: 4ec8 lsri r6, r6, 8 + 6754: a2c2 st.b r6, (r2, 0x2) + send_buff[send_len++] = offset_data0_abs[MCU_Touch_CH[i]]&0xff; + 6756: 8fc0 ld.h r6, (r7, 0x0) + + send_buff[send_len++] = offset_data1_abs[MCU_Touch_CH[i]]>>8; + 6758: 98e3 ld.w r7, (r14, 0xc) + 675a: 61c4 addu r7, r1 + send_buff[send_len++] = offset_data0_abs[MCU_Touch_CH[i]]&0xff; + 675c: a2c3 st.b r6, (r2, 0x3) + send_buff[send_len++] = offset_data1_abs[MCU_Touch_CH[i]]>>8; + 675e: 8fc0 ld.h r6, (r7, 0x0) + 6760: 4ec8 lsri r6, r6, 8 + 6762: a2c4 st.b r6, (r2, 0x4) + send_buff[send_len++] = offset_data1_abs[MCU_Touch_CH[i]]&0xff; + 6764: 8fc0 ld.h r6, (r7, 0x0) + 6766: a2c5 st.b r6, (r2, 0x5) + + send_buff[send_len++] = offset_data2_abs[MCU_Touch_CH[i]]>>8; + 6768: 98c4 ld.w r6, (r14, 0x10) + 676a: 6058 addu r1, r6 + 676c: 89c0 ld.h r6, (r1, 0x0) + 676e: 2500 addi r5, 1 + 6770: 4ec8 lsri r6, r6, 8 + send_buff[send_len++] = offset_data2_abs[MCU_Touch_CH[i]]&0xff; + 6772: 8920 ld.h r1, (r1, 0x0) + for(i=0;i>8; + 6776: a2c6 st.b r6, (r2, 0x6) + send_buff[send_len++] = offset_data2_abs[MCU_Touch_CH[i]]&0xff; + 6778: a227 st.b r1, (r2, 0x7) + 677a: 2205 addi r2, 6 + for(i=0;i + + } + + send_buff[send_len++] = 0x00; + 677e: 3320 movi r3, 32 + 6780: 60c0 addu r3, r0 + 6782: 3200 movi r2, 0 + 6784: a340 st.b r2, (r3, 0x0) + send_buff[send_len++] = 0x00; + 6786: a341 st.b r2, (r3, 0x1) + + send_buff[send_len++] = 0x00; + send_buff[send_len++] = ((Key_Map & 0x0200< + +} + 6798: 1412 addi r14, r14, 72 + 679a: 1494 pop r4-r7, r15 + case 0x02:Printf_Ch = TKE_CH2;break; + 679c: 3201 movi r2, 1 + 679e: 07c2 br 0x6722 // 6722 + case 0x04:Printf_Ch = TKE_CH3;break; + 67a0: 3202 movi r2, 2 + 67a2: 07c0 br 0x6722 // 6722 + case 0x08:Printf_Ch = TKE_CH4;break; + 67a4: 3203 movi r2, 3 + 67a6: 07be br 0x6722 // 6722 + case 0x10:Printf_Ch = TKE_CH5;break; + 67a8: 3204 movi r2, 4 + 67aa: 07bc br 0x6722 // 6722 + default:Printf_Ch = TKE_CH_MAX;break; + 67ac: 3205 movi r2, 5 + 67ae: 07ba br 0x6722 // 6722 + i=MCU_Touch_CH[ch]; + 67b0: 9841 ld.w r2, (r14, 0x4) + 67b2: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data0[i]>>8; + 67b4: 8440 ld.b r2, (r4, 0x0) + 67b6: 4241 lsli r2, r2, 1 + 67b8: 129d lrw r4, 0x20000ba6 // 692c + 67ba: 6108 addu r4, r2 + 67bc: 8c20 ld.h r1, (r4, 0x0) + 67be: 4928 lsri r1, r1, 8 + 67c0: a022 st.b r1, (r0, 0x2) + send_buff[send_len++] = sampling_data0[i]&0xff; + 67c2: 8c20 ld.h r1, (r4, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 67c4: 129b lrw r4, 0x20000854 // 6930 + 67c6: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 67c8: a023 st.b r1, (r0, 0x3) + send_buff[send_len++] = baseline_data0[i]>>8; + 67ca: 8c20 ld.h r1, (r4, 0x0) + 67cc: 4928 lsri r1, r1, 8 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 67ce: 60c8 addu r3, r2 + send_buff[send_len++] = baseline_data0[i]>>8; + 67d0: a024 st.b r1, (r0, 0x4) + send_buff[send_len++] = baseline_data0[i]&0xff; + 67d2: 8c20 ld.h r1, (r4, 0x0) + 67d4: a025 st.b r1, (r0, 0x5) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 67d6: 8b20 ld.h r1, (r3, 0x0) + 67d8: 4928 lsri r1, r1, 8 + send_buff[send_len++] = sampling_data1[i]>>8; + 67da: 1297 lrw r4, 0x2000093c // 6934 + 67dc: 6108 addu r4, r2 + send_buff[send_len++] = offset_data0_abs[i]>>8; + 67de: a026 st.b r1, (r0, 0x6) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 67e0: 8b20 ld.h r1, (r3, 0x0) + 67e2: a027 st.b r1, (r0, 0x7) + send_buff[send_len++] = sampling_data1[i]>>8; + 67e4: 8c20 ld.h r1, (r4, 0x0) + 67e6: 4928 lsri r1, r1, 8 + 67e8: a028 st.b r1, (r0, 0x8) + send_buff[send_len++] = sampling_data1[i]&0xff; + 67ea: 8c20 ld.h r1, (r4, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 67ec: 1293 lrw r4, 0x200009fe // 6938 + 67ee: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 67f0: a029 st.b r1, (r0, 0x9) + send_buff[send_len++] = baseline_data1[i]>>8; + 67f2: 8c20 ld.h r1, (r4, 0x0) + 67f4: 4928 lsri r1, r1, 8 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 67f6: 12aa lrw r5, 0x200008bc // 691c + 67f8: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data1[i]>>8; + 67fa: a02a st.b r1, (r0, 0xa) + send_buff[send_len++] = baseline_data1[i]&0xff; + 67fc: 8c20 ld.h r1, (r4, 0x0) + 67fe: a02b st.b r1, (r0, 0xb) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 6800: 8d20 ld.h r1, (r5, 0x0) + 6802: 4928 lsri r1, r1, 8 + send_buff[send_len++] = sampling_data2[i]>>8; + 6804: 128e lrw r4, 0x20000a32 // 693c + 6806: 6108 addu r4, r2 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 6808: a02c st.b r1, (r0, 0xc) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 680a: 8d20 ld.h r1, (r5, 0x0) + 680c: a02d st.b r1, (r0, 0xd) + send_buff[send_len++] = sampling_data2[i]>>8; + 680e: 8c20 ld.h r1, (r4, 0x0) + 6810: 4928 lsri r1, r1, 8 + 6812: a02e st.b r1, (r0, 0xe) + send_buff[send_len++] = sampling_data2[i]&0xff; + 6814: 8c20 ld.h r1, (r4, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 6816: 128b lrw r4, 0x20000b14 // 6940 + 6818: 6108 addu r4, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 681a: a02f st.b r1, (r0, 0xf) + send_buff[send_len++] = baseline_data2[i]>>8; + 681c: 8c20 ld.h r1, (r4, 0x0) + 681e: 4928 lsri r1, r1, 8 + 6820: a030 st.b r1, (r0, 0x10) + send_buff[send_len++] = baseline_data2[i]&0xff; + 6822: 8c20 ld.h r1, (r4, 0x0) + 6824: a031 st.b r1, (r0, 0x11) + send_buff[send_len++] = (offset_data0_abs[i]>= touch_para.triggerlevel[ch]); + 6826: 12c8 lrw r6, 0x200004b0 // 6944 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 6828: 1220 lrw r1, 0x20000890 // 6928 + 682a: 6048 addu r1, r2 + 682c: 6c87 mov r2, r1 + 682e: 8920 ld.h r1, (r1, 0x0) + 6830: 4928 lsri r1, r1, 8 + 6832: a032 st.b r1, (r0, 0x12) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 6834: 8a20 ld.h r1, (r2, 0x0) + 6836: a033 st.b r1, (r0, 0x13) + send_buff[send_len++] = 0x00; + 6838: 3100 movi r1, 0 + 683a: a034 st.b r1, (r0, 0x14) + send_buff[send_len++] = (offset_data0_abs[i]>= touch_para.triggerlevel[ch]); + 683c: 9821 ld.w r1, (r14, 0x4) + 683e: 4121 lsli r1, r1, 1 + 6840: 8b80 ld.h r4, (r3, 0x0) + 6842: 6058 addu r1, r6 + 6844: 8921 ld.h r1, (r1, 0x2) + 6846: 7511 zexth r4, r4 + 6848: 6450 cmphs r4, r1 + 684a: 3400 movi r4, 0 + 684c: 6111 addc r4, r4 + 684e: a095 st.b r4, (r0, 0x15) + send_buff[send_len++] = 0x00; + 6850: 3400 movi r4, 0 + 6852: a096 st.b r4, (r0, 0x16) + send_buff[send_len++] = (offset_data1_abs[i]>= touch_para.triggerlevel[ch]); + 6854: 8d80 ld.h r4, (r5, 0x0) + 6856: 7511 zexth r4, r4 + 6858: 6450 cmphs r4, r1 + 685a: 3400 movi r4, 0 + 685c: 6111 addc r4, r4 + 685e: a097 st.b r4, (r0, 0x17) + send_buff[send_len++] = 0x00; + 6860: 3400 movi r4, 0 + 6862: a098 st.b r4, (r0, 0x18) + send_buff[send_len++] = (offset_data2_abs[i]>= touch_para.triggerlevel[ch]); + 6864: 8a80 ld.h r4, (r2, 0x0) + 6866: 7511 zexth r4, r4 + 6868: 6450 cmphs r4, r1 + 686a: 3400 movi r4, 0 + 686c: 6111 addc r4, r4 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=1); + 686e: 8bc0 ld.h r6, (r3, 0x0) + send_buff[send_len++] = (offset_data2_abs[i]>= touch_para.triggerlevel[ch]); + 6870: a099 st.b r4, (r0, 0x19) + send_buff[send_len++] = 0x00; + 6872: 3400 movi r4, 0 + 6874: a09a st.b r4, (r0, 0x1a) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=1); + 6876: 7599 zexth r6, r6 + 6878: 8d80 ld.h r4, (r5, 0x0) + 687a: 6458 cmphs r6, r1 + 687c: 7511 zexth r4, r4 + 687e: 3600 movi r6, 0 + 6880: 8ae0 ld.h r7, (r2, 0x0) + 6882: 6199 addc r6, r6 + 6884: 6450 cmphs r4, r1 + 6886: 3400 movi r4, 0 + 6888: 75dd zexth r7, r7 + 688a: 6111 addc r4, r4 + 688c: 6118 addu r4, r6 + 688e: 645c cmphs r7, r1 + 6890: 3600 movi r6, 0 + 6892: 6199 addc r6, r6 + 6894: 6118 addu r4, r6 + 6896: 3c20 cmplti r4, 1 + 6898: 6503 mvcv r4 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=2); + 689a: 8bc0 ld.h r6, (r3, 0x0) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=1); + 689c: a09b st.b r4, (r0, 0x1b) + send_buff[send_len++] = 0x00; + 689e: 3400 movi r4, 0 + 68a0: a09c st.b r4, (r0, 0x1c) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=2); + 68a2: 7599 zexth r6, r6 + 68a4: 8d80 ld.h r4, (r5, 0x0) + 68a6: 6458 cmphs r6, r1 + 68a8: 7511 zexth r4, r4 + 68aa: 3600 movi r6, 0 + 68ac: 8ae0 ld.h r7, (r2, 0x0) + 68ae: 6199 addc r6, r6 + 68b0: 6450 cmphs r4, r1 + 68b2: 3400 movi r4, 0 + 68b4: 6111 addc r4, r4 + 68b6: 75dd zexth r7, r7 + 68b8: 645c cmphs r7, r1 + 68ba: 6118 addu r4, r6 + 68bc: 3600 movi r6, 0 + 68be: 6199 addc r6, r6 + 68c0: 6118 addu r4, r6 + 68c2: 3c21 cmplti r4, 2 + 68c4: 6503 mvcv r4 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=3); + 68c6: 8b60 ld.h r3, (r3, 0x0) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=2); + 68c8: a09d st.b r4, (r0, 0x1d) + send_buff[send_len++] = 0x00; + 68ca: 3400 movi r4, 0 + 68cc: a09e st.b r4, (r0, 0x1e) + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=3); + 68ce: 74cd zexth r3, r3 + 68d0: 8d80 ld.h r4, (r5, 0x0) + 68d2: 644c cmphs r3, r1 + 68d4: 7511 zexth r4, r4 + 68d6: 8a40 ld.h r2, (r2, 0x0) + 68d8: 3300 movi r3, 0 + 68da: 7489 zexth r2, r2 + 68dc: 60cd addc r3, r3 + 68de: 6450 cmphs r4, r1 + 68e0: 3400 movi r4, 0 + 68e2: 6111 addc r4, r4 + 68e4: 6448 cmphs r2, r1 + 68e6: 3200 movi r2, 0 + 68e8: 6089 addc r2, r2 + 68ea: 60d0 addu r3, r4 + 68ec: 60c8 addu r3, r2 + 68ee: 3b22 cmplti r3, 3 + 68f0: 64c3 mvcv r3 + send_buff[send_len++] = 0x00; + 68f2: 3220 movi r2, 32 + send_buff[send_len++] = (((offset_data0_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data1_abs[i]>= touch_para.triggerlevel[ch]) + (offset_data2_abs[i]>= touch_para.triggerlevel[ch]))>=3); + 68f4: a07f st.b r3, (r0, 0x1f) + send_buff[send_len++] = 0x00; + 68f6: 6080 addu r2, r0 + 68f8: 3300 movi r3, 0 + 68fa: a260 st.b r3, (r2, 0x0) + send_buff[send_len++] = ((Key_Map & 0x0200< + 6914: 200009f4 .long 0x200009f4 + 6918: 20000068 .long 0x20000068 + 691c: 200008bc .long 0x200008bc + 6920: 20000069 .long 0x20000069 + 6924: 20000b5e .long 0x20000b5e + 6928: 20000890 .long 0x20000890 + 692c: 20000ba6 .long 0x20000ba6 + 6930: 20000854 .long 0x20000854 + 6934: 2000093c .long 0x2000093c + 6938: 200009fe .long 0x200009fe + 693c: 20000a32 .long 0x20000a32 + 6940: 20000b14 .long 0x20000b14 + 6944: 200004b0 .long 0x200004b0 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00006948 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 6948: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 694a: 3804 cmphsi r0, 5 + 694c: 0818 bt 0x697c // 697c + 694e: 106d lrw r3, 0x200004c0 // 6980 + 6950: e3ffe5d6 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6954: 0e0b0803 .long 0x0e0b0803 + 6958: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 695a: 930a ld.w r0, (r3, 0x28) + 695c: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 695e: 3301 movi r3, 1 + U8_T state = 0; + 6960: 680c and r0, r3 +// } + break; + } + + return state; +} + 6962: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 6964: 930a ld.w r0, (r3, 0x28) + 6966: 480a lsri r0, r0, 10 + 6968: 07fb br 0x695e // 695e + if(g_key.key_state & 0x0800){ + 696a: 930a ld.w r0, (r3, 0x28) + 696c: 480b lsri r0, r0, 11 + 696e: 07f8 br 0x695e // 695e + if(g_key.key_state & 0x1000){ + 6970: 930a ld.w r0, (r3, 0x28) + 6972: 480c lsri r0, r0, 12 + 6974: 07f5 br 0x695e // 695e + if(g_key.key_state & 0x2000){ + 6976: 930a ld.w r0, (r3, 0x28) + 6978: 480d lsri r0, r0, 13 + 697a: 07f2 br 0x695e // 695e + U8_T state = 0; + 697c: 3000 movi r0, 0 + 697e: 07f2 br 0x6962 // 6962 + 6980: 200004c0 .long 0x200004c0 + +Disassembly of section .text.Touch_Key_Event_Handling: + +00006984 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 6984: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 6986: 118a lrw r4, 0x200004c0 // 6a2c + 6988: 8465 ld.b r3, (r4, 0x5) + 698a: 3b42 cmpnei r3, 2 + 698c: 081c bt 0x69c4 // 69c4 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 698e: 3300 movi r3, 0 + 6990: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 6992: 8466 ld.b r3, (r4, 0x6) + 6994: 3b42 cmpnei r3, 2 + 6996: 0820 bt 0x69d6 // 69d6 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 6998: 3300 movi r3, 0 + 699a: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 699c: 8467 ld.b r3, (r4, 0x7) + 699e: 3b42 cmpnei r3, 2 + 69a0: 0824 bt 0x69e8 // 69e8 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 69a2: 3300 movi r3, 0 + 69a4: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 69a6: e0001739 bsr 0x9818 // 9818 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 69aa: 8468 ld.b r3, (r4, 0x8) + 69ac: 3b42 cmpnei r3, 2 + 69ae: 0829 bt 0x6a00 // 6a00 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 69b0: 3300 movi r3, 0 + 69b2: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 69b4: e00017f6 bsr 0x99a0 // 99a0 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 69b8: 8469 ld.b r3, (r4, 0x9) + 69ba: 3b42 cmpnei r3, 2 + 69bc: 082e bt 0x6a18 // 6a18 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 69be: 3300 movi r3, 0 + 69c0: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 69c2: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 69c4: 3b44 cmpnei r3, 4 + 69c6: 0fe4 bf 0x698e // 698e + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 69c8: 3b41 cmpnei r3, 1 + 69ca: 0be4 bt 0x6992 // 6992 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 69cc: 3300 movi r3, 0 + 69ce: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 69d0: e00015bc bsr 0x9548 // 9548 + 69d4: 07df br 0x6992 // 6992 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 69d6: 3b44 cmpnei r3, 4 + 69d8: 0fe0 bf 0x6998 // 6998 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 69da: 3b41 cmpnei r3, 1 + 69dc: 0be0 bt 0x699c // 699c + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 69de: 3300 movi r3, 0 + 69e0: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 69e2: e0001623 bsr 0x9628 // 9628 + 69e6: 07db br 0x699c // 699c + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 69e8: 3b44 cmpnei r3, 4 + 69ea: 0804 bt 0x69f2 // 69f2 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 69ec: 3300 movi r3, 0 + 69ee: a467 st.b r3, (r4, 0x7) + 69f0: 07dd br 0x69aa // 69aa + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 69f2: 3b41 cmpnei r3, 1 + 69f4: 0bdb bt 0x69aa // 69aa + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 69f6: 3300 movi r3, 0 + 69f8: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 69fa: e0001687 bsr 0x9708 // 9708 + 69fe: 07d6 br 0x69aa // 69aa + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a00: 3b44 cmpnei r3, 4 + 6a02: 0804 bt 0x6a0a // 6a0a + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 6a04: 3300 movi r3, 0 + 6a06: a468 st.b r3, (r4, 0x8) + 6a08: 07d8 br 0x69b8 // 69b8 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 6a0a: 3b41 cmpnei r3, 1 + 6a0c: 0bd6 bt 0x69b8 // 69b8 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 6a0e: 3300 movi r3, 0 + 6a10: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 6a12: e000173f bsr 0x9890 // 9890 + 6a16: 07d1 br 0x69b8 // 69b8 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a18: 3b44 cmpnei r3, 4 + 6a1a: 0fd2 bf 0x69be // 69be + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 6a1c: 3b41 cmpnei r3, 1 + 6a1e: 0bd2 bt 0x69c2 // 69c2 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 6a20: 3300 movi r3, 0 + 6a22: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 6a24: e00017fa bsr 0x9a18 // 9a18 +} + 6a28: 07cd br 0x69c2 // 69c2 + 6a2a: 0000 bkpt + 6a2c: 200004c0 .long 0x200004c0 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00006a30 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 6a30: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 6a32: 106c lrw r3, 0x20000835 // 6a60 + 6a34: 8340 ld.b r2, (r3, 0x0) + 6a36: 3a41 cmpnei r2, 1 + 6a38: 0c04 bf 0x6a40 // 6a40 + 6a3a: 8362 ld.b r3, (r3, 0x2) + 6a3c: 3b45 cmpnei r3, 5 + 6a3e: 0c10 bf 0x6a5e // 6a5e + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 6a40: 1069 lrw r3, 0x200004c0 // 6a64 + 6a42: 835b ld.b r2, (r3, 0x1b) + 6a44: 3a41 cmpnei r2, 1 + 6a46: 080c bt 0x6a5e // 6a5e + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 6a48: 1028 lrw r1, 0x200000c0 // 6a68 + 6a4a: 9140 ld.w r2, (r1, 0x0) + 6a4c: 930c ld.w r0, (r3, 0x30) + 6a4e: 6082 subu r2, r0 + 6a50: 3095 movi r0, 149 + 6a52: 6480 cmphs r0, r2 + 6a54: 0805 bt 0x6a5e // 6a5e + g_key.key_dug_tick = SysTick_1ms; + 6a56: 9140 ld.w r2, (r1, 0x0) + 6a58: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + //TouchKey_RS485_Printf(); + TouchKey_RS485_Printf_2(); + 6a5a: e3fffe4d bsr 0x66f4 // 66f4 + } + } +} + 6a5e: 1490 pop r15 + 6a60: 20000835 .long 0x20000835 + 6a64: 200004c0 .long 0x200004c0 + 6a68: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Touch_Key_Task: + +00006a6c : +void Touch_Key_Task(void){ + 6a6c: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 6a6e: 1138 lrw r1, 0x200000c0 // 6b4c + 6a70: 1178 lrw r3, 0x200004c0 // 6b50 + 6a72: 9140 ld.w r2, (r1, 0x0) + 6a74: 930b ld.w r0, (r3, 0x2c) + 6a76: 6082 subu r2, r0 + 6a78: 3a04 cmphsi r2, 5 + 6a7a: 0806 bt 0x6a86 // 6a86 + break; + } + } + } + + Touch_Key_Event_Handling(); + 6a7c: e3ffff84 bsr 0x6984 // 6984 + + TouchKey_Set_Interface_Task(); + 6a80: e3ffffd8 bsr 0x6a30 // 6a30 + +} + 6a84: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 6a86: 9140 ld.w r2, (r1, 0x0) + 6a88: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 6a8a: 1133 lrw r1, 0x200009f4 // 6b54 + 6a8c: 9140 ld.w r2, (r1, 0x0) + 6a8e: 3a40 cmpnei r2, 0 + 6a90: 0c02 bf 0x6a94 // 6a94 + g_key.key_state = Key_Map; + 6a92: 9140 ld.w r2, (r1, 0x0) + 6a94: 118f lrw r4, 0x200004c0 // 6b50 +void Touch_Key_Task(void){ + 6a96: 6d93 mov r6, r4 + g_key.key_state = Key_Map; + 6a98: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 6a9a: 3500 movi r5, 0 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 6a9c: 11ef lrw r7, 0x257 // 6b58 + switch (g_key.KEY_STA[i]) { + 6a9e: 8460 ld.b r3, (r4, 0x0) + 6aa0: 3b41 cmpnei r3, 1 + 6aa2: 0c28 bf 0x6af2 // 6af2 + 6aa4: 3b40 cmpnei r3, 0 + 6aa6: 0c0a bf 0x6aba // 6aba + 6aa8: 3b42 cmpnei r3, 2 + 6aaa: 0c41 bf 0x6b2c // 6b2c + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 6aac: 2500 addi r5, 1 + 6aae: 7554 zextb r5, r5 + 6ab0: 3d45 cmpnei r5, 5 + 6ab2: 2400 addi r4, 1 + 6ab4: 2601 addi r6, 2 + 6ab6: 0bf4 bt 0x6a9e // 6a9e + 6ab8: 07e2 br 0x6a7c // 6a7c + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 6aba: 6c17 mov r0, r5 + 6abc: e3ffff46 bsr 0x6948 // 6948 + 6ac0: 3841 cmpnei r0, 1 + 6ac2: 0813 bt 0x6ae8 // 6ae8 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 6ac4: 8474 ld.b r3, (r4, 0x14) + 6ac6: 3b01 cmphsi r3, 2 + 6ac8: 0804 bt 0x6ad0 // 6ad0 + g_key.delayCnt[i]++; + 6aca: 2300 addi r3, 1 + g_key.delayCnt[i] = 0; + 6acc: a474 st.b r3, (r4, 0x14) + 6ace: 07ef br 0x6aac // 6aac + Controlled_Buzzer(0x01); + 6ad0: 3001 movi r0, 1 + 6ad2: e000103f bsr 0x8b50 // 8b50 + Contol_Switch_ClickAction(i,Control_ON); + 6ad6: 3101 movi r1, 1 + 6ad8: 6c17 mov r0, r5 + 6ada: e0000a9b bsr 0x8010 // 8010 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 6ade: 3301 movi r3, 1 + 6ae0: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 6ae2: 3300 movi r3, 0 + 6ae4: ae6e st.h r3, (r6, 0x1c) + 6ae6: 07f3 br 0x6acc // 6acc + g_key.delayCnt[i] = 0; + 6ae8: 3300 movi r3, 0 + 6aea: a474 st.b r3, (r4, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 6aec: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 6aee: a465 st.b r3, (r4, 0x5) + 6af0: 07de br 0x6aac // 6aac + g_key.key_time[i]++; + 6af2: 8e6e ld.h r3, (r6, 0x1c) + 6af4: 2300 addi r3, 1 + 6af6: 74cd zexth r3, r3 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 6af8: 64dc cmphs r7, r3 + g_key.key_time[i]++; + 6afa: ae6e st.h r3, (r6, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 6afc: 0c10 bf 0x6b1c // 6b1c + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 6afe: 6c17 mov r0, r5 + 6b00: e3ffff24 bsr 0x6948 // 6948 + 6b04: 3840 cmpnei r0, 0 + 6b06: 0bd3 bt 0x6aac // 6aac + Contol_Switch_ClickAction(i,Control_OFF); + 6b08: 3102 movi r1, 2 + 6b0a: 6c17 mov r0, r5 + 6b0c: e0000a82 bsr 0x8010 // 8010 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 6b10: 3301 movi r3, 1 + 6b12: a465 st.b r3, (r4, 0x5) + g_key.key_time[i] = 0; + 6b14: 3300 movi r3, 0 + 6b16: ae6e st.h r3, (r6, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 6b18: a460 st.b r3, (r4, 0x0) + 6b1a: 07c9 br 0x6aac // 6aac + g_key.KEY_STA[i] = KEY_STA_S2; + 6b1c: 3302 movi r3, 2 + 6b1e: a460 st.b r3, (r4, 0x0) + g_key.key_time[i] = 0; + 6b20: 3300 movi r3, 0 + 6b22: ae6e st.h r3, (r6, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 6b24: 3303 movi r3, 3 + 6b26: a46f st.b r3, (r4, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 6b28: 3302 movi r3, 2 + 6b2a: 07e2 br 0x6aee // 6aee + g_key.key_longPress[i] = KEY_VAL_NOT; + 6b2c: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 6b2e: 6c17 mov r0, r5 + g_key.key_longPress[i] = KEY_VAL_NOT; + 6b30: a46f st.b r3, (r4, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 6b32: e3ffff0b bsr 0x6948 // 6948 + 6b36: 3840 cmpnei r0, 0 + 6b38: 0bba bt 0x6aac // 6aac + Contol_Switch_ClickAction(i,Control_OFF); + 6b3a: 3102 movi r1, 2 + 6b3c: 6c17 mov r0, r5 + 6b3e: e0000a69 bsr 0x8010 // 8010 + g_key.KEY_STA[i] = KEY_STA_S0; + 6b42: 3300 movi r3, 0 + 6b44: a460 st.b r3, (r4, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 6b46: 3304 movi r3, 4 + 6b48: 07d3 br 0x6aee // 6aee + 6b4a: 0000 bkpt + 6b4c: 200000c0 .long 0x200000c0 + 6b50: 200004c0 .long 0x200004c0 + 6b54: 200009f4 .long 0x200009f4 + 6b58: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00006b5c : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 6b5c: 6040 addu r1, r0 + U8_T data_sum = 0; + 6b5e: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 6b64: 6cce nor r3, r3 + 6b66: 740c zextb r0, r3 +} + 6b68: 783c jmp r15 + data_sum += data[i]; + 6b6a: 8040 ld.b r2, (r0, 0x0) + 6b6c: 60c8 addu r3, r2 + 6b6e: 74cc zextb r3, r3 + 6b70: 2000 addi r0, 1 + 6b72: 07f7 br 0x6b60 // 6b60 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00006b74 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 6b74: 14d2 push r4-r5, r15 + 6b76: 1430 subi r14, r14, 64 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 6b78: 5992 addi r4, r1, 5 + 6b7a: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 6b7c: 3331 movi r3, 49 + 6b7e: 650c cmphs r3, r4 + 6b80: 0803 bt 0x6b86 // 6b86 + para_len = 44; + 6b82: 312c movi r1, 44 + reply_len = 50; + 6b84: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 6b86: 3300 movi r3, 0 + 6b88: 2b50 subi r3, 81 + 6b8a: dc6e0004 st.b r3, (r14, 0x4) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 6b8e: dc8e0006 st.b r4, (r14, 0x6) + send_data[1] = g_eeprom.dev_addr; + 6b92: 1074 lrw r3, 0x200004f4 // 6be0 + 6b94: 8360 ld.b r3, (r3, 0x0) + 6b96: dc6e0005 st.b r3, (r14, 0x5) + send_data[3] = 0x00; + 6b9a: 3300 movi r3, 0 + 6b9c: dc6e0007 st.b r3, (r14, 0x7) + + for(i=0;i + } + send_data[i+4] = 0xFA; + 6ba8: 60c8 addu r3, r2 + 6baa: 3200 movi r2, 0 + 6bac: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 6bae: 6c53 mov r1, r4 + 6bb0: 1801 addi r0, r14, 4 + send_data[i+4] = 0xFA; + 6bb2: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 6bb4: e3ffffd4 bsr 0x6b5c // 6b5c + +// if (detect_inf.control_model == 0x00){ +// MCU485_SendData(send_data,reply_len); + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 6bb8: 3314 movi r3, 20 + 6bba: b860 st.w r3, (r14, 0x0) + 6bbc: 3396 movi r3, 150 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 6bbe: dc0e0007 st.b r0, (r14, 0x7) + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 6bc2: 4361 lsli r3, r3, 1 + 6bc4: 1801 addi r0, r14, 4 + 6bc6: 3201 movi r2, 1 + 6bc8: 6c53 mov r1, r4 + 6bca: e3fffcb3 bsr 0x6530 // 6530 +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 6bce: 1410 addi r14, r14, 64 + 6bd0: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 6bd2: 58ac addu r5, r0, r3 + 6bd4: 608c addu r2, r3 + 6bd6: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 6be0: 200004f4 .long 0x200004f4 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00006be4 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 6be4: 14d4 push r4-r7, r15 + 6be6: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 6be8: 80a0 ld.b r5, (r0, 0x0) + 6bea: 5dc3 subi r6, r5, 1 + 6bec: 7598 zextb r6, r6 + 6bee: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 6bf0: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 6bf2: 0834 bt 0x6c5a // 6c5a + 6bf4: 1125 lrw r1, 0x200004a4 // 6c88 + 6bf6: 350b movi r5, 11 + 6bf8: 5862 addi r3, r0, 1 + 6bfa: 6140 addu r5, r0 + 6bfc: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 6c1a: 8479 ld.b r3, (r4, 0x19) + 6c1c: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 6c1e: 847a ld.b r3, (r4, 0x1a) + 6c20: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 6c22: 847b ld.b r3, (r4, 0x1b) + 6c24: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 6c26: 847c ld.b r3, (r4, 0x1c) + 6c28: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6c2a: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 6c2c: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6c2e: 1037 lrw r1, 0x200004a4 // 6c88 + touch_para.longpress_time = para[29]; + 6c30: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6c32: e00002e9 bsr 0x7204 // 7204 + + if(rev == 0x00){ + 6c36: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6c38: 6d43 mov r5, r0 + if(rev == 0x00){ + 6c3a: 0805 bt 0x6c44 // 6c44 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 6c3c: 1033 lrw r1, 0x200004a4 // 6c88 + 6c3e: 6c1b mov r0, r6 + 6c40: e0000256 bsr 0x70ec // 70ec + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 6c44: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 6c46: 3102 movi r1, 2 + 6c48: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 6c4a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 6c4e: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 6c52: e3ffff91 bsr 0x6b74 // 6b74 +} + 6c56: 1401 addi r14, r14, 4 + 6c58: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 6c5a: 3d40 cmpnei r5, 0 + 6c5c: 0c03 bf 0x6c62 // 6c62 + rev = 0x01; + 6c5e: 3501 movi r5, 1 + 6c60: 07f2 br 0x6c44 // 6c44 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 6c62: 8061 ld.b r3, (r0, 0x1) + 6c64: 104a lrw r2, 0xc8dc // 6c8c + 6c66: 102b lrw r1, 0xcdcf // 6c90 + 6c68: 3000 movi r0, 0 + 6c6a: e3fffd09 bsr 0x667c // 667c + if( (para[1] > 0) && (para[1] <= 3) ){ + 6c6e: 8461 ld.b r3, (r4, 0x1) + 6c70: 2b00 subi r3, 1 + 6c72: 74cc zextb r3, r3 + 6c74: 3b02 cmphsi r3, 3 + 6c76: 0bf4 bt 0x6c5e // 6c5e + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 6c78: 1047 lrw r2, 0x20000835 // 6c94 + g_eeprom.key_sens_level = para[1] - 1; + 6c7a: 1008 lrw r0, 0x200004f4 // 6c98 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 6c7c: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 6c7e: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 6c80: e00001be bsr 0x6ffc // 6ffc + 6c84: 07e0 br 0x6c44 // 6c44 + 6c86: 0000 bkpt + 6c88: 200004a4 .long 0x200004a4 + 6c8c: 0000c8dc .long 0x0000c8dc + 6c90: 0000cdcf .long 0x0000cdcf + 6c94: 20000835 .long 0x20000835 + 6c98: 200004f4 .long 0x200004f4 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00006c9c : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 6c9c: 14d3 push r4-r6, r15 + 6c9e: 142d subi r14, r14, 52 + 6ca0: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 6ca2: 3232 movi r2, 50 + 6ca4: 3100 movi r1, 0 + 6ca6: 6c3b mov r0, r14 + 6ca8: e3ffea7a bsr 0x419c // 419c <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 6cac: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 6cae: 3302 movi r3, 2 + if(para[0] == 0x00){ + 6cb0: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 6cb2: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 6cb6: 0837 bt 0x6d24 // 6d24 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 6cb8: 11d5 lrw r6, 0x200004f4 // 6d8c + 6cba: 8605 ld.b r0, (r6, 0x5) + 6cbc: 1135 lrw r1, 0x200004a4 // 6d90 + 6cbe: e000024d bsr 0x7158 // 7158 + if(rev != 0x00){ + 6cc2: 3840 cmpnei r0, 0 + 6cc4: 11b3 lrw r5, 0x200004a4 // 6d90 + 6cc6: 0c05 bf 0x6cd0 // 6cd0 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 6cc8: 8605 ld.b r0, (r6, 0x5) + 6cca: 6c57 mov r1, r5 + 6ccc: e000030e bsr 0x72e8 // 72e8 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 6cd0: 8665 ld.b r3, (r6, 0x5) + 6cd2: 2300 addi r3, 1 + 6cd4: dc6e0001 st.b r3, (r14, 0x1) + 6cd8: 6cfb mov r3, r14 + 6cda: 114e lrw r2, 0x200004a4 // 6d90 + + for(i=0;i> 8; + 6ce2: 4928 lsri r1, r1, 8 + 6ce4: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 6cee: 4928 lsri r1, r1, 8 + 6cf0: a32f st.b r1, (r3, 0xf) + 6cf2: 2201 addi r2, 2 + 6cf4: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 6cf8: 8560 ld.b r3, (r5, 0x0) + 6cfa: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 6cfe: 8561 ld.b r3, (r5, 0x1) + 6d00: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 6d04: 8562 ld.b r3, (r5, 0x2) + 6d06: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 6d0a: 8563 ld.b r3, (r5, 0x3) + 6d0c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 6d10: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 6d12: dc6e001e st.b r3, (r14, 0x1e) + 6d16: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 6d18: 7445 zexth r1, r1 + 6d1a: 6c3b mov r0, r14 + 6d1c: e3ffff2c bsr 0x6b74 // 6b74 +} + 6d20: 140d addi r14, r14, 52 + 6d22: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 6d24: 3c03 cmphsi r4, 4 + 6d26: 0831 bt 0x6d88 // 6d88 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 6d28: 2c00 subi r4, 1 + 6d2a: 7410 zextb r0, r4 + 6d2c: 1039 lrw r1, 0x200004a4 // 6d90 + 6d2e: e0000215 bsr 0x7158 // 7158 + if(rev != 0x00){ + 6d32: 3840 cmpnei r0, 0 + 6d34: 1097 lrw r4, 0x200004a4 // 6d90 + 6d36: 0c07 bf 0x6d44 // 6d44 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 6d38: 8500 ld.b r0, (r5, 0x0) + 6d3a: 2800 subi r0, 1 + 6d3c: 7400 zextb r0, r0 + 6d3e: 6c53 mov r1, r4 + 6d40: e00002d4 bsr 0x72e8 // 72e8 + reply_buff[reply_len++] = para[0]; + 6d44: 8560 ld.b r3, (r5, 0x0) + 6d46: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 6d4e: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 6d50: 8902 ld.h r0, (r1, 0x4) + 6d52: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 6d56: 4808 lsri r0, r0, 8 + 6d58: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 6d62: 4808 lsri r0, r0, 8 + 6d64: a30f st.b r0, (r3, 0xf) + 6d66: 2101 addi r1, 2 + 6d68: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 6d6c: 8460 ld.b r3, (r4, 0x0) + 6d6e: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 6d72: 8461 ld.b r3, (r4, 0x1) + 6d74: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 6d78: 8462 ld.b r3, (r4, 0x2) + 6d7a: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 6d7e: 8463 ld.b r3, (r4, 0x3) + 6d80: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 6d84: 8478 ld.b r3, (r4, 0x18) + 6d86: 07c6 br 0x6d12 // 6d12 + reply_buff[reply_len++] = 0x00; + 6d88: 3102 movi r1, 2 + 6d8a: 07c7 br 0x6d18 // 6d18 + 6d8c: 200004f4 .long 0x200004f4 + 6d90: 200004a4 .long 0x200004a4 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00006d94 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 6d94: 14d0 push r15 + 6d96: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 6d98: 8060 ld.b r3, (r0, 0x0) + 6d9a: 3b41 cmpnei r3, 1 + 6d9c: 0810 bt 0x6dbc // 6dbc + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 6d9e: 106b lrw r3, 0x200004c0 // 6dc8 + 6da0: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 6da2: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 6da4: 3303 movi r3, 3 + 6da6: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 6daa: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 6dac: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 6dae: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 6db0: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 6db4: e3fffee0 bsr 0x6b74 // 6b74 +} + 6db8: 1401 addi r14, r14, 4 + 6dba: 1490 pop r15 + }else if(para[0] == 0x02){ + 6dbc: 3b42 cmpnei r3, 2 + 6dbe: 0bf3 bt 0x6da4 // 6da4 + g_key.key_dug_printf = 0x00; + 6dc0: 1062 lrw r3, 0x200004c0 // 6dc8 + 6dc2: 3200 movi r2, 0 + 6dc4: 07ef br 0x6da2 // 6da2 + 6dc6: 0000 bkpt + 6dc8: 200004c0 .long 0x200004c0 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00006dcc : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 6dcc: 14d0 push r15 + 6dce: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6dd0: 1149 lrw r2, 0x20000ba6 // 6e74 + reply_buff[reply_len++] = 0x04; //CMD + 6dd2: 3304 movi r3, 4 + 6dd4: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6dd8: 8a69 ld.h r3, (r2, 0x12) + 6dda: 4b68 lsri r3, r3, 8 + 6ddc: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6de0: 8a69 ld.h r3, (r2, 0x12) + 6de2: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 6de6: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6de8: 1164 lrw r3, 0x20000854 // 6e78 + 6dea: 8b29 ld.h r1, (r3, 0x12) + 6dec: 4928 lsri r1, r1, 8 + 6dee: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6df2: 8b29 ld.h r1, (r3, 0x12) + 6df4: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6df8: 8a2a ld.h r1, (r2, 0x14) + 6dfa: 4928 lsri r1, r1, 8 + 6dfc: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e00: 8a2a ld.h r1, (r2, 0x14) + 6e02: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e06: 8b2a ld.h r1, (r3, 0x14) + 6e08: 4928 lsri r1, r1, 8 + 6e0a: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e0e: 8b2a ld.h r1, (r3, 0x14) + 6e10: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e14: 8a2b ld.h r1, (r2, 0x16) + 6e16: 4928 lsri r1, r1, 8 + 6e18: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e1c: 8a2b ld.h r1, (r2, 0x16) + 6e1e: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e22: 8b2b ld.h r1, (r3, 0x16) + 6e24: 4928 lsri r1, r1, 8 + 6e26: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e2a: 8b2b ld.h r1, (r3, 0x16) + 6e2c: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e30: 8a2c ld.h r1, (r2, 0x18) + 6e32: 4928 lsri r1, r1, 8 + 6e34: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e38: 8a2c ld.h r1, (r2, 0x18) + 6e3a: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e3e: 8b2c ld.h r1, (r3, 0x18) + 6e40: 4928 lsri r1, r1, 8 + 6e42: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e46: 8b2c ld.h r1, (r3, 0x18) + 6e48: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e4c: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e4e: 8a4d ld.h r2, (r2, 0x1a) + 6e50: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e54: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e56: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e58: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e5c: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e5e: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 6e60: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e62: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e66: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 6e6a: e3fffe85 bsr 0x6b74 // 6b74 +} + 6e6e: 140d addi r14, r14, 52 + 6e70: 1490 pop r15 + 6e72: 0000 bkpt + 6e74: 20000ba6 .long 0x20000ba6 + 6e78: 20000854 .long 0x20000854 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00006e7c : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 6e7c: 14d0 push r15 + 6e7e: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 6e80: 3305 movi r3, 5 + 6e82: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 6e86: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 6e88: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 6e8a: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 6e8c: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 6e90: e3fffe72 bsr 0x6b74 // 6b74 + 6e94: 0400 br 0x6e94 // 6e94 + +Disassembly of section .text.TouchKey_Comm_Processing: + +00006e98 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 6e98: 14d2 push r4-r5, r15 + 6e9a: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 6e9c: 8060 ld.b r3, (r0, 0x0) + 6e9e: 32af movi r2, 175 + 6ea0: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 6ea2: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 6ea4: 0c09 bf 0x6eb6 // 6eb6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 6ea6: 3000 movi r0, 0 + 6ea8: 114b lrw r2, 0xc8f8 // 6f54 + 6eaa: 112c lrw r1, 0xcddf // 6f58 + 6eac: e3fffbe8 bsr 0x667c // 667c + return 0x01; + 6eb0: 3001 movi r0, 1 + break; + } + + + return 0; +} + 6eb2: 1401 addi r14, r14, 4 + 6eb4: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 6eb6: 114a lrw r2, 0x200004f4 // 6f5c + 6eb8: 8061 ld.b r3, (r0, 0x1) + 6eba: 8240 ld.b r2, (r2, 0x0) + 6ebc: 64ca cmpne r2, r3 + 6ebe: 0c08 bf 0x6ece // 6ece + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 6ec0: 3000 movi r0, 0 + 6ec2: 1145 lrw r2, 0xc8f8 // 6f54 + 6ec4: 1127 lrw r1, 0xcdf1 // 6f60 + 6ec6: e3fffbdb bsr 0x667c // 667c + return 0x02; + 6eca: 3002 movi r0, 2 + 6ecc: 07f3 br 0x6eb2 // 6eb2 + if(data[2] != len){ + 6ece: 8062 ld.b r3, (r0, 0x2) + 6ed0: 750d zexth r4, r3 + 6ed2: 6452 cmpne r4, r1 + 6ed4: 0c09 bf 0x6ee6 // 6ee6 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 6ed6: b820 st.w r1, (r14, 0x0) + 6ed8: 105f lrw r2, 0xc8f8 // 6f54 + 6eda: 1123 lrw r1, 0xce02 // 6f64 + 6edc: 3000 movi r0, 0 + 6ede: e3fffbcf bsr 0x667c // 667c + return 0x03; + 6ee2: 3003 movi r0, 3 + 6ee4: 07e7 br 0x6eb2 // 6eb2 + if(data[len-1] != 0xFA){ + 6ee6: 60c0 addu r3, r0 + 6ee8: 2b00 subi r3, 1 + 6eea: 8360 ld.b r3, (r3, 0x0) + 6eec: 32fa movi r2, 250 + 6eee: 648e cmpne r3, r2 + 6ef0: 0c07 bf 0x6efe // 6efe + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 6ef2: 1059 lrw r2, 0xc8f8 // 6f54 + 6ef4: 103d lrw r1, 0xce15 // 6f68 + 6ef6: 3000 movi r0, 0 + 6ef8: e3fffbc2 bsr 0x667c // 667c + 6efc: 07f3 br 0x6ee2 // 6ee2 + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 6efe: 5c23 subi r1, r4, 1 + 6f00: 7445 zexth r1, r1 + 6f02: e3fffe2d bsr 0x6b5c // 6b5c + 6f06: 3840 cmpnei r0, 0 + 6f08: 0806 bt 0x6f14 // 6f14 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 6f0a: 1053 lrw r2, 0xc8f8 // 6f54 + 6f0c: 1038 lrw r1, 0xce25 // 6f6c + 6f0e: e3fffbb7 bsr 0x667c // 667c + 6f12: 07e8 br 0x6ee2 // 6ee2 + switch(data[4]){ + 6f14: 8504 ld.b r0, (r5, 0x4) + 6f16: 2800 subi r0, 1 + 6f18: 3804 cmphsi r0, 5 + 6f1a: 080c bt 0x6f32 // 6f32 + 6f1c: 5c37 subi r1, r4, 6 + 6f1e: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 6f20: 7445 zexth r1, r1 + switch(data[4]){ + 6f22: e3ffe2ed bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6f26: 0803 .short 0x0803 + 6f28: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 6f2c: 6c17 mov r0, r5 + 6f2e: e3fffe5b bsr 0x6be4 // 6be4 + return 0; + 6f32: 3000 movi r0, 0 + 6f34: 07bf br 0x6eb2 // 6eb2 + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 6f36: 6c17 mov r0, r5 + 6f38: e3fffeb2 bsr 0x6c9c // 6c9c + 6f3c: 07fb br 0x6f32 // 6f32 + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 6f3e: 6c17 mov r0, r5 + 6f40: e3ffff2a bsr 0x6d94 // 6d94 + 6f44: 07f7 br 0x6f32 // 6f32 + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 6f46: 6c17 mov r0, r5 + 6f48: e3ffff42 bsr 0x6dcc // 6dcc + 6f4c: 07f3 br 0x6f32 // 6f32 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 6f4e: 6c17 mov r0, r5 + 6f50: e3ffff96 bsr 0x6e7c // 6e7c + 6f54: 0000c8f8 .long 0x0000c8f8 + 6f58: 0000cddf .long 0x0000cddf + 6f5c: 200004f4 .long 0x200004f4 + 6f60: 0000cdf1 .long 0x0000cdf1 + 6f64: 0000ce02 .long 0x0000ce02 + 6f68: 0000ce15 .long 0x0000ce15 + 6f6c: 0000ce25 .long 0x0000ce25 + +Disassembly of section .text.EEPROM_CheckSum: + +00006f70 : +E_PARA_INFO g_eeprom; +E_MCU_DEV_INFO g_mcu_dev; + + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 6f70: 6cc3 mov r3, r0 + 6f72: 6040 addu r1, r0 + U8_T data_sum = 0; + 6f74: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 6f7a: 783c jmp r15 + data_sum += data[i]; + 6f7c: 8340 ld.b r2, (r3, 0x0) + 6f7e: 6008 addu r0, r2 + 6f80: 7400 zextb r0, r0 + 6f82: 2300 addi r3, 1 + 6f84: 07f9 br 0x6f76 // 6f76 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00006f88 : +#endif + } +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 6f88: 14d1 push r4, r15 + 6f8a: 143b subi r14, r14, 108 + 6f8c: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 6f8e: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 6f90: 3264 movi r2, 100 + 6f92: 3100 movi r1, 0 + 6f94: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 6f96: b860 st.w r3, (r14, 0x0) + 6f98: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 6f9c: e3ffe900 bsr 0x419c // 419c <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 6fa0: 6cbb mov r2, r14 + 6fa2: 3104 movi r1, 4 + 6fa4: 1014 lrw r0, 0x10000100 // 6ff4 + 6fa6: e3fff1a3 bsr 0x52ec // 52ec + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 6faa: d84e0000 ld.b r2, (r14, 0x0) + 6fae: 33a6 movi r3, 166 + 6fb0: 64ca cmpne r2, r3 + 6fb2: 0c04 bf 0x6fba // 6fba + return 0x00; + } + } + } + + return 0x01; + 6fb4: 3001 movi r0, 1 +} + 6fb6: 141b addi r14, r14, 108 + 6fb8: 1491 pop r4, r15 + read_len |= read_info[1]; + 6fba: d82e0002 ld.b r1, (r14, 0x2) + 6fbe: d86e0001 ld.b r3, (r14, 0x1) + 6fc2: 4128 lsli r1, r1, 8 + 6fc4: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 6fc6: 3364 movi r3, 100 + 6fc8: 644c cmphs r3, r1 + 6fca: 0ff5 bf 0x6fb4 // 6fb4 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 6fcc: 1a02 addi r2, r14, 8 + 6fce: 100b lrw r0, 0x10000104 // 6ff8 + 6fd0: e3fff18e bsr 0x52ec // 52ec + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 6fd4: 3108 movi r1, 8 + 6fd6: 1802 addi r0, r14, 8 + 6fd8: e3ffffcc bsr 0x6f70 // 6f70 + 6fdc: d86e0003 ld.b r3, (r14, 0x3) + 6fe0: 640e cmpne r3, r0 + 6fe2: 0be9 bt 0x6fb4 // 6fb4 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 6fe4: 3208 movi r2, 8 + 6fe6: 1902 addi r1, r14, 8 + 6fe8: 6c13 mov r0, r4 + 6fea: e3ffe91d bsr 0x4224 // 4224 <__memcpy_fast> + return 0x00; + 6fee: 3000 movi r0, 0 + 6ff0: 07e3 br 0x6fb6 // 6fb6 + 6ff2: 0000 bkpt + 6ff4: 10000100 .long 0x10000100 + 6ff8: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00006ffc : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 6ffc: 14d0 push r15 + 6ffe: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 7000: 3300 movi r3, 0 + 7002: 2b59 subi r3, 90 + 7004: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 7008: 3308 movi r3, 8 + 700a: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 700e: 3300 movi r3, 0 + 7010: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 7014: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 7016: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 7018: 3208 movi r2, 8 + 701a: 6c0f mov r0, r3 + 701c: e3ffe904 bsr 0x4224 // 4224 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 7020: 3108 movi r1, 8 + 7022: e3ffffa7 bsr 0x6f70 // 6f70 + 7026: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 702a: 6cbb mov r2, r14 + 702c: 310c movi r1, 12 + 702e: 1004 lrw r0, 0x10000100 // 703c + 7030: e3fff10e bsr 0x524c // 524c + + return 0; +} + 7034: 3000 movi r0, 0 + 7036: 141b addi r14, r14, 108 + 7038: 1490 pop r15 + 703a: 0000 bkpt + 703c: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00007040 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 7040: 14d1 push r4, r15 + 7042: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 7044: 8062 ld.b r3, (r0, 0x2) + 7046: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 7048: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 704a: 0c03 bf 0x7050 // 7050 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 704c: 3309 movi r3, 9 + 704e: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 7050: 8442 ld.b r2, (r4, 0x2) + 7052: 103d lrw r1, 0xce34 // 70c4 + 7054: 3000 movi r0, 0 + 7056: e3fffb13 bsr 0x667c // 667c + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 705a: 8463 ld.b r3, (r4, 0x3) + 705c: 3b02 cmphsi r3, 3 + 705e: 0c03 bf 0x7064 // 7064 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 7060: 3300 movi r3, 0 + 7062: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 7064: 8464 ld.b r3, (r4, 0x4) + 7066: 3b01 cmphsi r3, 2 + 7068: 0c03 bf 0x706e // 706e + { + info->backlight_en = 0x00; + 706a: 3300 movi r3, 0 + 706c: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 706e: 8461 ld.b r3, (r4, 0x1) + 7070: 3b02 cmphsi r3, 3 + 7072: 0c03 bf 0x7078 // 7078 + { + info->pipe_flag = 0x00; + 7074: 3300 movi r3, 0 + 7076: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 7078: 8460 ld.b r3, (r4, 0x0) + 707a: 2b00 subi r3, 1 + 707c: 74cc zextb r3, r3 + 707e: 32fd movi r2, 253 + 7080: 64c8 cmphs r2, r3 + 7082: 0803 bt 0x7088 // 7088 + { + info->dev_addr = 0x01; + 7084: 3301 movi r3, 1 + 7086: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 7088: 8465 ld.b r3, (r4, 0x5) + 708a: 3b02 cmphsi r3, 3 + 708c: 0c03 bf 0x7092 // 7092 + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 708e: 3301 movi r3, 1 + 7090: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 7092: 8466 ld.b r3, (r4, 0x6) + 7094: 3b02 cmphsi r3, 3 + 7096: 0c03 bf 0x709c // 709c + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 7098: 3300 movi r3, 0 + 709a: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 709c: 8467 ld.b r3, (r4, 0x7) + 709e: 3b02 cmphsi r3, 3 + 70a0: 0c03 bf 0x70a6 // 70a6 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 70a2: 3301 movi r3, 1 + 70a4: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 70a6: 8427 ld.b r1, (r4, 0x7) + 70a8: b822 st.w r1, (r14, 0x8) + 70aa: 8420 ld.b r1, (r4, 0x0) + 70ac: b821 st.w r1, (r14, 0x4) + 70ae: 8425 ld.b r1, (r4, 0x5) + 70b0: b820 st.w r1, (r14, 0x0) + 70b2: 8464 ld.b r3, (r4, 0x4) + 70b4: 8443 ld.b r2, (r4, 0x3) + 70b6: 1025 lrw r1, 0xce4b // 70c8 + 70b8: 3000 movi r0, 0 + 70ba: e3fffae1 bsr 0x667c // 667c + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 70be: 3000 movi r0, 0 + 70c0: 1403 addi r14, r14, 12 + 70c2: 1491 pop r4, r15 + 70c4: 0000ce34 .long 0x0000ce34 + 70c8: 0000ce4b .long 0x0000ce4b + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +000070cc : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 70cc: 3301 movi r3, 1 + 70ce: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 70d0: 3300 movi r3, 0 + 70d2: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 70d4: 3309 movi r3, 9 + 70d6: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 70d8: 3300 movi r3, 0 + 70da: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 70dc: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 70de: 3301 movi r3, 1 + 70e0: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 70e2: 3300 movi r3, 0 + 70e4: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 70e6: 3301 movi r3, 1 + 70e8: a067 st.b r3, (r0, 0x7) + +} + 70ea: 783c jmp r15 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000070ec : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 70ec: 14d2 push r4-r5, r15 + 70ee: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 70f0: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 70f2: 6d47 mov r5, r1 + switch(level){ + 70f4: 0c07 bf 0x7102 // 7102 + 70f6: 3840 cmpnei r0, 0 + 70f8: 0c27 bf 0x7146 // 7146 + 70fa: 3842 cmpnei r0, 2 + 70fc: 0c23 bf 0x7142 // 7142 + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 70fe: 3001 movi r0, 1 + 7100: 041f br 0x713e // 713e + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 7102: 1093 lrw r4, 0x10000280 // 714c + break; + } + + memset(save_para,0,sizeof(save_para)); + 7104: 323c movi r2, 60 + 7106: 3100 movi r1, 0 + 7108: 6c3b mov r0, r14 + 710a: e3ffe849 bsr 0x419c // 419c <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_APP_SVAE_FLAG; + 710e: 3300 movi r3, 0 + 7110: 2b59 subi r3, 90 + 7112: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 7116: 331c movi r3, 28 + 7118: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 711c: 1b01 addi r3, r14, 4 + 711e: 321c movi r2, 28 + 7120: 6c0f mov r0, r3 + 7122: 6c57 mov r1, r5 + 7124: e3ffe880 bsr 0x4224 // 4224 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 7128: 311c movi r1, 28 + 712a: e3ffff23 bsr 0x6f70 // 6f70 + 712e: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 7132: 6cbb mov r2, r14 + 7134: 6c13 mov r0, r4 + 7136: 3120 movi r1, 32 + 7138: e3fff08a bsr 0x524c // 524c + + return 0; + 713c: 3000 movi r0, 0 +} + 713e: 140f addi r14, r14, 60 + 7140: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 7142: 1084 lrw r4, 0x10000300 // 7150 + break; + 7144: 07e0 br 0x7104 // 7104 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 7146: 1084 lrw r4, 0x10000200 // 7154 + 7148: 07de br 0x7104 // 7104 + 714a: 0000 bkpt + 714c: 10000280 .long 0x10000280 + 7150: 10000300 .long 0x10000300 + 7154: 10000200 .long 0x10000200 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00007158 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 7158: 14d2 push r4-r5, r15 + 715a: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 715c: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 715e: 6d07 mov r4, r1 + switch(level){ + 7160: 0c3a bf 0x71d4 // 71d4 + 7162: 3840 cmpnei r0, 0 + 7164: 0c05 bf 0x716e // 716e + 7166: 3842 cmpnei r0, 2 + 7168: 0c34 bf 0x71d0 // 71d0 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 716a: 3001 movi r0, 1 + 716c: 0430 br 0x71cc // 71cc + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 716e: 11a1 lrw r5, 0x10000200 // 71f0 + memset(read_info,0,sizeof(read_info)); + 7170: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7172: 3234 movi r2, 52 + 7174: 3100 movi r1, 0 + 7176: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7178: b860 st.w r3, (r14, 0x0) + 717a: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 717e: e3ffe80f bsr 0x419c // 419c <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 7182: 6cbb mov r2, r14 + 7184: 3104 movi r1, 4 + 7186: 6c17 mov r0, r5 + 7188: e3fff0b2 bsr 0x52ec // 52ec + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 718c: d84e0000 ld.b r2, (r14, 0x0) + 7190: 33a6 movi r3, 166 + 7192: 64ca cmpne r2, r3 + 7194: 0827 bt 0x71e2 // 71e2 + read_len |= read_info[1]; + 7196: d84e0002 ld.b r2, (r14, 0x2) + 719a: d86e0001 ld.b r3, (r14, 0x1) + 719e: 4248 lsli r2, r2, 8 + 71a0: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 71a2: 3a5c cmpnei r2, 28 + 71a4: 081a bt 0x71d8 // 71d8 + temp_addr += EEPROM_Offset_Data; + 71a6: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 71a8: 1a02 addi r2, r14, 8 + 71aa: 311c movi r1, 28 + 71ac: e3fff0a0 bsr 0x52ec // 52ec + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 71b0: 311c movi r1, 28 + 71b2: 1802 addi r0, r14, 8 + 71b4: e3fffede bsr 0x6f70 // 6f70 + 71b8: d86e0003 ld.b r3, (r14, 0x3) + 71bc: 640e cmpne r3, r0 + 71be: 0bd6 bt 0x716a // 716a + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 71c0: 321c movi r2, 28 + 71c2: 1902 addi r1, r14, 8 + 71c4: 6c13 mov r0, r4 + 71c6: e3ffe82f bsr 0x4224 // 4224 <__memcpy_fast> + return 0x00; + 71ca: 3000 movi r0, 0 +} + 71cc: 140f addi r14, r14, 60 + 71ce: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 71d0: 10a9 lrw r5, 0x10000300 // 71f4 + break; + 71d2: 07cf br 0x7170 // 7170 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 71d4: 10a9 lrw r5, 0x10000280 // 71f8 + 71d6: 07cd br 0x7170 // 7170 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 71d8: 1029 lrw r1, 0xcea5 // 71fc + 71da: 3000 movi r0, 0 + 71dc: e3fffa50 bsr 0x667c // 667c + 71e0: 07c5 br 0x716a // 716a + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 71e2: 3304 movi r3, 4 + 71e4: 6cbb mov r2, r14 + 71e6: 1027 lrw r1, 0xcec7 // 7200 + 71e8: 3000 movi r0, 0 + 71ea: e3fffa4f bsr 0x6688 // 6688 + 71ee: 07be br 0x716a // 716a + 71f0: 10000200 .long 0x10000200 + 71f4: 10000300 .long 0x10000300 + 71f8: 10000280 .long 0x10000280 + 71fc: 0000cea5 .long 0x0000cea5 + 7200: 0000cec7 .long 0x0000cec7 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00007204 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 7204: 14c4 push r4-r7 + 7206: 1421 subi r14, r14, 4 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 7208: 8163 ld.b r3, (r1, 0x3) + 720a: 2b00 subi r3, 1 + 720c: 74cc zextb r3, r3 + 720e: 3263 movi r2, 99 + 7210: 64c8 cmphs r2, r3 + 7212: 084e bt 0x72ae // 72ae + para->base_speed = 20; //默认参数 - 20 + 7214: 3314 movi r3, 20 + 7216: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 7218: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 721a: 8140 ld.b r2, (r1, 0x0) + 721c: 2a00 subi r2, 1 + 721e: 7488 zextb r2, r2 + 7220: 3a09 cmphsi r2, 10 + 7222: 0c04 bf 0x722a // 722a + para->press_debounce = 4; //默认参数 - 6 + 7224: 3304 movi r3, 4 + 7226: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 7228: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 722a: 8141 ld.b r2, (r1, 0x1) + 722c: 2a00 subi r2, 1 + 722e: 7488 zextb r2, r2 + 7230: 3a09 cmphsi r2, 10 + 7232: 0c04 bf 0x723a // 723a + para->release_debounce = 5; //默认参数 - 5 + 7234: 3305 movi r3, 5 + 7236: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 7238: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 723a: 8142 ld.b r2, (r1, 0x2) + 723c: 2a00 subi r2, 1 + 723e: 7488 zextb r2, r2 + 7240: 3463 movi r4, 99 + 7242: 6490 cmphs r4, r2 + 7244: 0804 bt 0x724c // 724c + para->multiTimes_filt = 40; //默认参数 - 40 + 7246: 3328 movi r3, 40 + 7248: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 724a: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 724c: 9146 ld.w r2, (r1, 0x18) + 724e: 2a00 subi r2, 1 + 7250: 3a1f cmphsi r2, 32 + 7252: 0c04 bf 0x725a // 725a + para->longpress_time = 16; //默认参数 - 16 + 7254: 3310 movi r3, 16 + 7256: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 7258: 3301 movi r3, 1 + }else if (i == 1){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 3){ + para->senprd[i] = 300; //默认参数 - 320 + 725a: 3696 movi r6, 150 + }else if (i == 4){ + para->senprd[i] = 280; //默认参数 - 320 + 725c: 358c movi r5, 140 + para->senprd[i] = 300; //默认参数 - 320 + 725e: 46c1 lsli r6, r6, 1 + 7260: 598e addi r4, r1, 4 + rev = 0x01; + 7262: 3200 movi r2, 0 + para->senprd[i] = 280; //默认参数 - 320 + 7264: 45a1 lsli r5, r5, 1 + para->senprd[i] = 300; //默认参数 - 320 + 7266: dcce1001 st.h r6, (r14, 0x2) + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 726a: 8cc0 ld.h r6, (r4, 0x0) + 726c: 2e09 subi r6, 10 + 726e: 7599 zexth r6, r6 + 7270: 10fd lrw r7, 0x3de // 72e4 + 7272: 659c cmphs r7, r6 + 7274: 0805 bt 0x727e // 727e + if (i == 0){ + 7276: 3a40 cmpnei r2, 0 + 7278: 081d bt 0x72b2 // 72b2 + para->senprd[i] = 280; //默认参数 - 320 + 727a: a9a2 st.h r5, (r1, 0x4) + }else { + para->senprd[i] = 300; //默认参数 - 320 + } + + rev = 0x01; + 727c: 3301 movi r3, 1 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 727e: 8cc5 ld.h r6, (r4, 0xa) + 7280: 2e13 subi r6, 20 + 7282: 37f5 movi r7, 245 + 7284: 7599 zexth r6, r6 + 7286: 47e2 lsli r7, r7, 2 + 7288: 659c cmphs r7, r6 + 728a: 080a bt 0x729e // 729e + + switch(level){ + 728c: 3841 cmpnei r0, 1 + 728e: 0c28 bf 0x72de // 72de + 7290: 3840 cmpnei r0, 0 + 7292: 0c24 bf 0x72da // 72da + 7294: 3842 cmpnei r0, 2 + 7296: 0824 bt 0x72de // 72de + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 60 + 7298: 3350 movi r3, 80 + break; + case 0x00: + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 729a: ac65 st.h r3, (r4, 0xa) + break; + } + + rev = 0x01; + 729c: 3301 movi r3, 1 + for(i=0;i + } + } + + return rev; +} + 72a8: 6c0f mov r0, r3 + 72aa: 1401 addi r14, r14, 4 + 72ac: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 72ae: 3300 movi r3, 0 + 72b0: 07b5 br 0x721a // 721a + }else if (i == 1){ + 72b2: 3a41 cmpnei r2, 1 + 72b4: 0805 bt 0x72be // 72be + para->senprd[i] = 320; //默认参数 - 320 + 72b6: 33a0 movi r3, 160 + 72b8: 4361 lsli r3, r3, 1 + 72ba: a963 st.h r3, (r1, 0x6) + 72bc: 07e0 br 0x727c // 727c + }else if (i == 2){ + 72be: 3a42 cmpnei r2, 2 + 72c0: 0805 bt 0x72ca // 72ca + para->senprd[i] = 320; //默认参数 - 320 + 72c2: 33a0 movi r3, 160 + 72c4: 4361 lsli r3, r3, 1 + 72c6: a964 st.h r3, (r1, 0x8) + 72c8: 07da br 0x727c // 727c + }else if (i == 3){ + 72ca: 3a43 cmpnei r2, 3 + 72cc: 0805 bt 0x72d6 // 72d6 + para->senprd[i] = 300; //默认参数 - 320 + 72ce: d86e1001 ld.h r3, (r14, 0x2) + 72d2: a965 st.h r3, (r1, 0xa) + 72d4: 07d4 br 0x727c // 727c + para->senprd[i] = 280; //默认参数 - 320 + 72d6: a9a6 st.h r5, (r1, 0xc) + 72d8: 07d2 br 0x727c // 727c + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + 72da: 3378 movi r3, 120 + 72dc: 07df br 0x729a // 729a + para->triggerlevel[i] = 100; + 72de: 3364 movi r3, 100 + 72e0: 07dd br 0x729a // 729a + 72e2: 0000 bkpt + 72e4: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000072e8 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 72e8: 14c4 push r4-r7 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 72ea: 3314 movi r3, 20 + 72ec: a163 st.b r3, (r1, 0x3) + para->press_debounce = 4; //默认参数 - 6 + 72ee: 3304 movi r3, 4 + 72f0: a160 st.b r3, (r1, 0x0) + }else if (i == 1){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 3){ + para->senprd[i] = 300; //默认参数 - 320 + 72f2: 3596 movi r5, 150 + para->release_debounce = 5; //默认参数 - 5 + 72f4: 3305 movi r3, 5 + para->senprd[i] = 300; //默认参数 - 320 + 72f6: 45a1 lsli r5, r5, 1 + para->release_debounce = 5; //默认参数 - 5 + 72f8: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 72fa: 3328 movi r3, 40 + 72fc: a162 st.b r3, (r1, 0x2) + 72fe: 320e movi r2, 14 + para->longpress_time = 16; //默认参数 - 8 + 7300: 3310 movi r3, 16 + }else if (i == 4){ + para->senprd[i] = 280; //默认参数 - 320 + 7302: 348c movi r4, 140 + para->senprd[i] = 300; //默认参数 - 320 + 7304: 6d97 mov r6, r5 + para->senprd[i] = 320; //默认参数 - 320 + 7306: 35a0 movi r5, 160 + para->longpress_time = 16; //默认参数 - 8 + 7308: b166 st.w r3, (r1, 0x18) + 730a: 6084 addu r2, r1 + for(i=0;isenprd[i] = 280; //默认参数 - 320 + 730e: 4481 lsli r4, r4, 1 + para->senprd[i] = 320; //默认参数 - 320 + 7310: 45a1 lsli r5, r5, 1 + if (i == 0){ + 7312: 3b40 cmpnei r3, 0 + 7314: 0810 bt 0x7334 // 7334 + para->senprd[i] = 280; //默认参数 - 320 + 7316: a982 st.h r4, (r1, 0x4) +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 7318: 3841 cmpnei r0, 1 + 731a: 0c1d bf 0x7354 // 7354 + 731c: 3840 cmpnei r0, 0 + 731e: 0c19 bf 0x7350 // 7350 + 7320: 3842 cmpnei r0, 2 + 7322: 0819 bt 0x7354 // 7354 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 60 + 7324: 3750 movi r7, 80 + for(i=0;itriggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 732c: aae0 st.h r7, (r2, 0x0) + 732e: 2201 addi r2, 2 + for(i=0;i + break; + } + + } +} + 7332: 1484 pop r4-r7 + }else if (i == 1){ + 7334: 3b41 cmpnei r3, 1 + 7336: 0803 bt 0x733c // 733c + para->senprd[i] = 320; //默认参数 - 320 + 7338: a9a3 st.h r5, (r1, 0x6) + 733a: 07ef br 0x7318 // 7318 + }else if (i == 2){ + 733c: 3b42 cmpnei r3, 2 + 733e: 0803 bt 0x7344 // 7344 + para->senprd[i] = 320; //默认参数 - 320 + 7340: a9a4 st.h r5, (r1, 0x8) + 7342: 07eb br 0x7318 // 7318 + }else if (i == 3){ + 7344: 3b43 cmpnei r3, 3 + 7346: 0803 bt 0x734c // 734c + para->senprd[i] = 300; //默认参数 - 320 + 7348: a9c5 st.h r6, (r1, 0xa) + 734a: 07e7 br 0x7318 // 7318 + para->senprd[i] = 280; //默认参数 - 320 + 734c: a986 st.h r4, (r1, 0xc) + 734e: 07e5 br 0x7318 // 7318 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + 7350: 3778 movi r7, 120 + 7352: 07ea br 0x7326 // 7326 + para->triggerlevel[i] = 100; + 7354: 3764 movi r7, 100 + 7356: 07e8 br 0x7326 // 7326 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00007358 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 7358: 14d4 push r4-r7, r15 + 735a: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 735c: 8043 ld.b r2, (r0, 0x3) + 735e: 1038 lrw r1, 0xcee5 // 73bc + 7360: 3000 movi r0, 0 + 7362: e3fff98d bsr 0x667c // 667c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 7366: 8440 ld.b r2, (r4, 0x0) + 7368: 1036 lrw r1, 0xcefd // 73c0 + 736a: 3000 movi r0, 0 + 736c: e3fff988 bsr 0x667c // 667c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 7370: 8441 ld.b r2, (r4, 0x1) + 7372: 1035 lrw r1, 0xcf19 // 73c4 + 7374: 3000 movi r0, 0 + 7376: e3fff983 bsr 0x667c // 667c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 737a: 8442 ld.b r2, (r4, 0x2) + 737c: 1033 lrw r1, 0xcf37 // 73c8 + 737e: 3000 movi r0, 0 + 7380: e3fff97e bsr 0x667c // 667c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 7384: 9446 ld.w r2, (r4, 0x18) + 7386: 3000 movi r0, 0 + 7388: 1031 lrw r1, 0xcf54 // 73cc + 738a: e3fff979 bsr 0x667c // 667c + 738e: 2403 addi r4, 4 + 7390: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 7392: 10f0 lrw r7, 0xcf70 // 73d0 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 7394: 10d0 lrw r6, 0xcf89 // 73d4 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 7396: e3ffe897 bsr 0x44c4 // 44c4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 739a: 8c60 ld.h r3, (r4, 0x0) + 739c: 6c97 mov r2, r5 + 739e: 6c5f mov r1, r7 + 73a0: 3000 movi r0, 0 + 73a2: e3fff96d bsr 0x667c // 667c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 73a6: 8c65 ld.h r3, (r4, 0xa) + 73a8: 6c97 mov r2, r5 + 73aa: 6c5b mov r1, r6 + 73ac: 3000 movi r0, 0 + 73ae: 2500 addi r5, 1 + 73b0: e3fff966 bsr 0x667c // 667c + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 73ba: 1494 pop r4-r7, r15 + 73bc: 0000cee5 .long 0x0000cee5 + 73c0: 0000cefd .long 0x0000cefd + 73c4: 0000cf19 .long 0x0000cf19 + 73c8: 0000cf37 .long 0x0000cf37 + 73cc: 0000cf54 .long 0x0000cf54 + 73d0: 0000cf70 .long 0x0000cf70 + 73d4: 0000cf89 .long 0x0000cf89 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +000073d8 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 73d8: 14d1 push r4, r15 + 73da: 1432 subi r14, r14, 72 + 73dc: 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)); + 73de: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 73e0: 3240 movi r2, 64 + 73e2: 3100 movi r1, 0 + 73e4: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 73e6: b860 st.w r3, (r14, 0x0) + 73e8: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 73ec: e3ffe6d8 bsr 0x419c // 419c <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 73f0: 3080 movi r0, 128 + 73f2: 6cbb mov r2, r14 + 73f4: 3104 movi r1, 4 + 73f6: 4015 lsli r0, r0, 21 + 73f8: e3ffef7a bsr 0x52ec // 52ec + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 73fc: d84e0000 ld.b r2, (r14, 0x0) + 7400: 33ae movi r3, 174 + 7402: 64ca cmpne r2, r3 + 7404: 0c04 bf 0x740c // 740c + return 0x00; + } + } + } + + return 0x01; + 7406: 3001 movi r0, 1 +} + 7408: 1412 addi r14, r14, 72 + 740a: 1491 pop r4, r15 + read_len |= read_info[1]; + 740c: d82e0002 ld.b r1, (r14, 0x2) + 7410: d86e0001 ld.b r3, (r14, 0x1) + 7414: 4128 lsli r1, r1, 8 + 7416: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 7418: 3340 movi r3, 64 + 741a: 644c cmphs r3, r1 + 741c: 0ff5 bf 0x7406 // 7406 + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 741e: 1a02 addi r2, r14, 8 + 7420: 1009 lrw r0, 0x10000004 // 7444 + 7422: e3ffef65 bsr 0x52ec // 52ec + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 7426: 3125 movi r1, 37 + 7428: 1802 addi r0, r14, 8 + 742a: e3fffda3 bsr 0x6f70 // 6f70 + 742e: d86e0003 ld.b r3, (r14, 0x3) + 7432: 640e cmpne r3, r0 + 7434: 0be9 bt 0x7406 // 7406 + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 7436: 3225 movi r2, 37 + 7438: 1902 addi r1, r14, 8 + 743a: 6c13 mov r0, r4 + 743c: e3ffe6f4 bsr 0x4224 // 4224 <__memcpy_fast> + return 0x00; + 7440: 3000 movi r0, 0 + 7442: 07e3 br 0x7408 // 7408 + 7444: 10000004 .long 0x10000004 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00007448 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 7448: 14d0 push r15 + 744a: 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; + 744c: 3300 movi r3, 0 + 744e: 2b51 subi r3, 82 + 7450: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 7454: 3325 movi r3, 37 + 7456: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 745a: 3300 movi r3, 0 + 745c: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 7460: 1b01 addi r3, r14, 4 +{ + 7462: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 7464: 3225 movi r2, 37 + 7466: 6c0f mov r0, r3 + 7468: e3ffe6de bsr 0x4224 // 4224 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 746c: 3125 movi r1, 37 + 746e: e3fffd81 bsr 0x6f70 // 6f70 + 7472: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 7476: 3080 movi r0, 128 + 7478: 4015 lsli r0, r0, 21 + 747a: 6cbb mov r2, r14 + 747c: 3129 movi r1, 41 + 747e: e3ffeee7 bsr 0x524c // 524c + + return 0; +} + 7482: 3000 movi r0, 0 + 7484: 1412 addi r14, r14, 72 + 7486: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00007488 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 7488: 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 = 0x01; + 748a: 3301 movi r3, 1 + 748c: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 748e: 3307 movi r3, 7 + 7490: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 7492: 3303 movi r3, 3 + 7494: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 7496: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 7498: 330c movi r3, 12 + 749a: a064 st.b r3, (r0, 0x4) +{ + 749c: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 749e: 3220 movi r2, 32 + 74a0: 3100 movi r1, 0 + 74a2: 6c17 mov r0, r5 + 74a4: e3ffe67c bsr 0x419c // 419c <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 74a8: 320c movi r2, 12 + 74aa: 1025 lrw r1, 0xcfa8 // 74bc + 74ac: 6c17 mov r0, r5 + 74ae: e3ffe6bb bsr 0x4224 // 4224 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 74b2: 6c13 mov r0, r4 + 74b4: e3ffffca bsr 0x7448 // 7448 +#endif +} + 74b8: 1492 pop r4-r5, r15 + 74ba: 0000 bkpt + 74bc: 0000cfa8 .long 0x0000cfa8 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +000074c0 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 74c0: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 74c2: 8063 ld.b r3, (r0, 0x3) + 74c4: 3b43 cmpnei r3, 3 +{ + 74c6: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 74c8: 0c21 bf 0x750a // 750a + { + info->dev_app_ver = Project_FW_Version; + 74ca: 3303 movi r3, 3 + 74cc: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 74ce: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 74d0: 8461 ld.b r3, (r4, 0x1) + 74d2: 3b47 cmpnei r3, 7 + 74d4: 0c04 bf 0x74dc // 74dc + { + info->dev_type = Project_Type; + 74d6: 3307 movi r3, 7 + 74d8: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 74da: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 74dc: 8464 ld.b r3, (r4, 0x4) + 74de: 3b4c cmpnei r3, 12 + 74e0: 0c04 bf 0x74e8 // 74e8 + { + info->dev_name_len = sizeof(Peoject_Name); + 74e2: 330c movi r3, 12 + 74e4: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 74e6: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 74e8: 5cd2 addi r6, r4, 5 + 74ea: 320c movi r2, 12 + 74ec: 102a lrw r1, 0xcfa8 // 7514 + 74ee: 6c1b mov r0, r6 + 74f0: e3ffe6cc bsr 0x4288 // 4288 <__GI_strncmp> + 74f4: 3840 cmpnei r0, 0 + 74f6: 0c0c bf 0x750e // 750e + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 74f8: 8444 ld.b r2, (r4, 0x4) + 74fa: 1027 lrw r1, 0xcfa8 // 7514 + 74fc: 6c1b mov r0, r6 + 74fe: e3ffe693 bsr 0x4224 // 4224 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 7502: 6c13 mov r0, r4 + 7504: e3ffffa2 bsr 0x7448 // 7448 + } +#endif +} + 7508: 0405 br 0x7512 // 7512 + U8_T save_flag = 0; + 750a: 3500 movi r5, 0 + 750c: 07e2 br 0x74d0 // 74d0 + if(save_flag == 0x01) + 750e: 3d41 cmpnei r5, 1 + 7510: 0ff9 bf 0x7502 // 7502 +} + 7512: 1493 pop r4-r6, r15 + 7514: 0000cfa8 .long 0x0000cfa8 + +Disassembly of section .text.EEPROM_Init: + +00007518 : +void EEPROM_Init(void){ + 7518: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 751a: 107e lrw r3, 0x20000060 // 7590 + 751c: 3201 movi r2, 1 + 751e: 9360 ld.w r3, (r3, 0x0) + 7520: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 7522: 9345 ld.w r2, (r3, 0x14) + 7524: 3aa1 bseti r2, 1 + 7526: 3ab0 bseti r2, 16 + 7528: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 752a: 300a movi r0, 10 + 752c: e3ffeff8 bsr 0x551c // 551c + memset(&g_boot,0,sizeof(BOOT_INFO_T));//boot + 7530: 329e movi r2, 158 + 7532: 4241 lsli r2, r2, 1 + 7534: 3100 movi r1, 0 + 7536: 1018 lrw r0, 0x200005d0 // 7594 + 7538: e3ffe632 bsr 0x419c // 419c <__memset_fast> + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 753c: 32fa movi r2, 250 + 753e: 1077 lrw r3, 0x200006d0 // 7598 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 7540: 1097 lrw r4, 0x200004f4 // 759c + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 7542: 4242 lsli r2, r2, 2 + 7544: ab59 st.h r2, (r3, 0x32) + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 7546: 3100 movi r1, 0 + 7548: 3208 movi r2, 8 + 754a: 6c13 mov r0, r4 + 754c: e3ffe628 bsr 0x419c // 419c <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 7550: 6c13 mov r0, r4 + 7552: e3fffd1b bsr 0x6f88 // 6f88 + if(rev == 0x00){ + 7556: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 7558: 6c13 mov r0, r4 + if(rev == 0x00){ + 755a: 080c bt 0x7572 // 7572 + EEPROM_Validate_ParaInfo(&g_eeprom); + 755c: e3fffd72 bsr 0x7040 // 7040 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 7560: 1010 lrw r0, 0x200004fc // 75a0 + 7562: e3ffff3b bsr 0x73d8 // 73d8 + if(rev == 0x00){ + 7566: 3840 cmpnei r0, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 7568: 100e lrw r0, 0x200004fc // 75a0 + if(rev == 0x00){ + 756a: 080f bt 0x7588 // 7588 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 756c: e3ffffaa bsr 0x74c0 // 74c0 +} + 7570: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 7572: e3fffdad bsr 0x70cc // 70cc + EEPROM_WriteParaInfo(&g_eeprom); + 7576: 6c13 mov r0, r4 + 7578: e3fffd42 bsr 0x6ffc // 6ffc + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 757c: 8441 ld.b r2, (r4, 0x1) + 757e: 102a lrw r1, 0xcfb4 // 75a4 + 7580: 3000 movi r0, 0 + 7582: e3fff87d bsr 0x667c // 667c + 7586: 07ed br 0x7560 // 7560 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 7588: e3ffff80 bsr 0x7488 // 7488 +} + 758c: 07f2 br 0x7570 // 7570 + 758e: 0000 bkpt + 7590: 20000060 .long 0x20000060 + 7594: 200005d0 .long 0x200005d0 + 7598: 200006d0 .long 0x200006d0 + 759c: 200004f4 .long 0x200004f4 + 75a0: 200004fc .long 0x200004fc + 75a4: 0000cfb4 .long 0x0000cfb4 + +Disassembly of section .text.ADC_Init: + +000075a8 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 75a8: 14d0 push r15 + 75aa: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 75ac: e3ffebec bsr 0x4d84 // 4d84 + ADC12_Software_Reset(); //ADC软件复位 + 75b0: e3ffec4a bsr 0x4e44 // 4e44 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 75b4: 3101 movi r1, 1 + 75b6: 3002 movi r0, 2 + 75b8: e3ffec30 bsr 0x4e18 // 4e18 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 75bc: 3301 movi r3, 1 + 75be: b861 st.w r3, (r14, 0x4) + 75c0: 3302 movi r3, 2 + 75c2: b860 st.w r3, (r14, 0x0) + 75c4: 3200 movi r2, 0 + 75c6: 3306 movi r3, 6 + 75c8: 3101 movi r1, 1 + 75ca: 3001 movi r0, 1 + 75cc: e3ffec76 bsr 0x4eb8 // 4eb8 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS);//如果设置内部参考电压源需要把初始化放在触摸初始化前面,否则触摸会出现错误 + 75d0: 3003 movi r0, 3 + 75d2: e3ffecb1 bsr 0x4f34 // 4f34 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 75d6: 3300 movi r3, 0 + 75d8: 3200 movi r2, 0 + 75da: 3100 movi r1, 0 + 75dc: 300f movi r0, 15 + 75de: e3ffed77 bsr 0x50cc // 50cc + + ADC12_CMD(ENABLE); + 75e2: 3001 movi r0, 1 + 75e4: e3ffec36 bsr 0x4e50 // 4e50 + + ADC12_ready_wait(); + 75e8: e3ffec48 bsr 0x4e78 // 4e78 + + ADC12_Control(ADC12_START); + 75ec: 3008 movi r0, 8 + 75ee: e3ffebfd bsr 0x4de8 // 4de8 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 75f2: 3250 movi r2, 80 + 75f4: 3100 movi r1, 0 + 75f6: 1003 lrw r0, 0x20000521 // 7600 + 75f8: e3ffe5d2 bsr 0x419c // 419c <__memset_fast> +} + 75fc: 1402 addi r14, r14, 8 + 75fe: 1490 pop r15 + 7600: 20000521 .long 0x20000521 + +Disassembly of section .text.Thermistor_Array_Transform: + +00007604 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 7604: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 7606: 1070 lrw r3, 0x79bd // 7644 + 7608: 640c cmphs r3, r0 +{ + 760a: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 760c: 0c16 bf 0x7638 // 7638 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 760e: 33a1 movi r3, 161 + 7610: 4365 lsli r3, r3, 5 + 7612: 640c cmphs r3, r0 + 7614: 0814 bt 0x763c // 763c + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 761a: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 761e: 8a60 ld.h r3, (r2, 0x0) + 7620: 644c cmphs r3, r1 + 7622: 0c04 bf 0x762a // 762a + 7624: 8a61 ld.h r3, (r2, 0x2) + 7626: 644c cmphs r3, r1 + 7628: 0c07 bf 0x7636 // 7636 + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 7634: 30fa movi r0, 250 +} + 7636: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 7638: 3000 movi r0, 0 + 763a: 07fe br 0x7636 // 7636 + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 763c: 30c8 movi r0, 200 + 763e: 4001 lsli r0, r0, 1 + 7640: 07fb br 0x7636 // 7636 + 7642: 0000 bkpt + 7644: 000079bd .long 0x000079bd + 7648: 0000c912 .long 0x0000c912 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +0000764c : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 764c: 14d2 push r4-r5, r15 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i +{ + 7650: 3200 movi r2, 0 + uint32_t temp_val = 0; + 7652: 3000 movi r0, 0 + 7654: 6d53 mov r5, r4 + temp_val += g_adc.dataBuff[i]; + 7656: 5a6e addi r3, r2, 4 + 7658: 4361 lsli r3, r3, 1 + 765a: 60d0 addu r3, r4 + 765c: 8320 ld.b r1, (r3, 0x0) + 765e: 8361 ld.b r3, (r3, 0x1) + 7660: 4368 lsli r3, r3, 8 + 7662: 2200 addi r2, 1 + 7664: 6cc4 or r3, r1 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 766c: 310a movi r1, 10 + 766e: e3fff565 bsr 0x6138 // 6138 <__udivsi3> + 7672: 74c1 zexth r3, r0 + 7674: 748c zextb r2, r3 + 7676: 4b68 lsri r3, r3, 8 + 7678: a465 st.b r3, (r4, 0x5) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 767a: a467 st.b r3, (r4, 0x7) + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 767c: 847d ld.b r3, (r4, 0x1d) + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 767e: a444 st.b r2, (r4, 0x4) + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 7680: a446 st.b r2, (r4, 0x6) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 7682: 4368 lsli r3, r3, 8 + 7684: 845c ld.b r2, (r4, 0x1c) + 7686: 6cc8 or r3, r2 + 7688: 3b13 cmphsi r3, 20 + 768a: 0c06 bf 0x7696 // 7696 + g_adc.temp_index = 0; + 768c: 3300 movi r3, 0 + 768e: a47c st.b r3, (r4, 0x1c) + 7690: a47d st.b r3, (r4, 0x1d) + g_adc.gather_full = 1; + 7692: 3301 movi r3, 1 + 7694: a461 st.b r3, (r4, 0x1) + + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 7696: 859d ld.b r4, (r5, 0x1d) + 7698: 857c ld.b r3, (r5, 0x1c) + 769a: 4488 lsli r4, r4, 8 + 769c: 6d0c or r4, r3 + 769e: 5c62 addi r3, r4, 1 + 76a0: 74cd zexth r3, r3 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 76a2: 7481 zexth r2, r0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 76a4: a57c st.b r3, (r5, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 76a6: 100b lrw r0, 0x2710 // 76d0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 76a8: 4b68 lsri r3, r3, 8 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 76aa: 102b lrw r1, 0xce4 // 76d4 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 76ac: a57d st.b r3, (r5, 0x1d) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 76ae: 7c08 mult r0, r2 + 76b0: 604a subu r1, r2 + 76b2: e3fff531 bsr 0x6114 // 6114 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 76b6: 240f addi r4, 16 + 76b8: 7401 zexth r0, r0 + 76ba: 4481 lsli r4, r4, 1 + 76bc: e3ffffa4 bsr 0x7604 // 7604 + 76c0: 6114 addu r4, r5 + 76c2: a400 st.b r0, (r4, 0x0) + 76c4: 4808 lsri r0, r0, 8 + 76c6: a401 st.b r0, (r4, 0x1) + + //Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d avg_val:%d",Thermistor_Array_Transform(temp_val),g_adc.avg_val); +} + 76c8: 1492 pop r4-r5, r15 + 76ca: 0000 bkpt + 76cc: 20000521 .long 0x20000521 + 76d0: 00002710 .long 0x00002710 + 76d4: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.Get_Temp_Val: + +000076d8 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 76d8: 1063 lrw r3, 0x20000521 // 76e4 + 76da: 831f ld.b r0, (r3, 0x1f) + 76dc: 835e ld.b r2, (r3, 0x1e) + 76de: 4008 lsli r0, r0, 8 + 76e0: 6c08 or r0, r2 +} + 76e2: 783c jmp r15 + 76e4: 20000521 .long 0x20000521 + +Disassembly of section .text.Gather_Temp: + +000076e8 : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 76e8: 14d3 push r4-r6, r15 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 1000) + 76ea: 1187 lrw r4, 0x20000521 // 7784 + 76ec: 3340 movi r3, 64 + 76ee: 60d0 addu r3, r4 + 76f0: 832d ld.b r1, (r3, 0xd) + 76f2: 834c ld.b r2, (r3, 0xc) + 76f4: 4128 lsli r1, r1, 8 + 76f6: 6c48 or r1, r2 + 76f8: 834e ld.b r2, (r3, 0xe) + 76fa: 4250 lsli r2, r2, 16 + 76fc: 6c48 or r1, r2 + 76fe: 834f ld.b r2, (r3, 0xf) + 7700: 11a2 lrw r5, 0x200000c0 // 7788 + 7702: 4258 lsli r2, r2, 24 + 7704: 6c84 or r2, r1 + 7706: 9500 ld.w r0, (r5, 0x0) + 7708: 600a subu r0, r2 + 770a: 1141 lrw r2, 0x3e7 // 778c + 770c: 6408 cmphs r2, r0 + 770e: 0817 bt 0x773c // 773c + { + g_adc.gather_tick = SysTick_1ms; + 7710: 9540 ld.w r2, (r5, 0x0) + 7712: 4a28 lsri r1, r2, 8 + 7714: a34c st.b r2, (r3, 0xc) + 7716: a32d st.b r1, (r3, 0xd) + 7718: 4a30 lsri r1, r2, 16 + 771a: 4a58 lsri r2, r2, 24 + 771c: a32e st.b r1, (r3, 0xe) + 771e: a34f st.b r2, (r3, 0xf) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 7720: 8461 ld.b r3, (r4, 0x1) + 7722: 3b41 cmpnei r3, 1 + 7724: 0c0d bf 0x773e // 773e + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7726: 843d ld.b r1, (r4, 0x1d) + 7728: 847c ld.b r3, (r4, 0x1c) + 772a: 4128 lsli r1, r1, 8 + 772c: 6c4c or r1, r3 + 772e: 3000 movi r0, 0 + 7730: 3300 movi r3, 0 + temp_val += g_adc.tempBuff[i]; + 7732: 3510 movi r5, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7734: 644c cmphs r3, r1 + 7736: 0c1c bf 0x776e // 776e + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 7738: 3940 cmpnei r1, 0 + 773a: 0813 bt 0x7760 // 7760 + } + g_adc.temp_val = temp_val / temp_size; + + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 773c: 1493 pop r4-r6, r15 + if(g_adc.gather_full == 1){ + 773e: 3200 movi r2, 0 + 7740: 3000 movi r0, 0 + temp_val += g_adc.tempBuff[i]; + 7742: 3110 movi r1, 16 + 7744: 5a64 addu r3, r2, r1 + 7746: 4361 lsli r3, r3, 1 + 7748: 60d0 addu r3, r4 + 774a: 83a0 ld.b r5, (r3, 0x0) + 774c: 8361 ld.b r3, (r3, 0x1) + 774e: 4368 lsli r3, r3, 8 + 7750: 2200 addi r2, 1 + 7752: 6cd4 or r3, r5 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 7754: 3a54 cmpnei r2, 20 + temp_val += g_adc.tempBuff[i]; + 7756: 600c addu r0, r3 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 7758: 0bf6 bt 0x7744 // 7744 + g_adc.gather_full = 0; + 775a: 3300 movi r3, 0 + 775c: a461 st.b r3, (r4, 0x1) + temp_size = Temp_DataBuff_Size; + 775e: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 7760: e3fff4ec bsr 0x6138 // 6138 <__udivsi3> + 7764: 7401 zexth r0, r0 + 7766: a41e st.b r0, (r4, 0x1e) + 7768: 4808 lsri r0, r0, 8 + 776a: a41f st.b r0, (r4, 0x1f) + 776c: 07e8 br 0x773c // 773c + temp_val += g_adc.tempBuff[i]; + 776e: 5b54 addu r2, r3, r5 + 7770: 4241 lsli r2, r2, 1 + 7772: 6090 addu r2, r4 + 7774: 82c0 ld.b r6, (r2, 0x0) + 7776: 8241 ld.b r2, (r2, 0x1) + 7778: 4248 lsli r2, r2, 8 + 777a: 6c98 or r2, r6 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 777c: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 777e: 6008 addu r0, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7780: 74cc zextb r3, r3 + 7782: 07d9 br 0x7734 // 7734 + 7784: 20000521 .long 0x20000521 + 7788: 200000c0 .long 0x200000c0 + 778c: 000003e7 .long 0x000003e7 + +Disassembly of section .text.ADC_Sample_Task: + +00007790 : +void ADC_Sample_Task(void){ + 7790: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 7792: 1187 lrw r4, 0x20000521 // 782c + 7794: 3340 movi r3, 64 + 7796: 60d0 addu r3, r4 + 7798: 8329 ld.b r1, (r3, 0x9) + 779a: 8348 ld.b r2, (r3, 0x8) + 779c: 4128 lsli r1, r1, 8 + 779e: 6c48 or r1, r2 + 77a0: 834a ld.b r2, (r3, 0xa) + 77a2: 4250 lsli r2, r2, 16 + 77a4: 6c48 or r1, r2 + 77a6: 834b ld.b r2, (r3, 0xb) + 77a8: 11a2 lrw r5, 0x200000c0 // 7830 + 77aa: 4258 lsli r2, r2, 24 + 77ac: 9500 ld.w r0, (r5, 0x0) + 77ae: 6c84 or r2, r1 + 77b0: 600a subu r0, r2 + 77b2: 380a cmphsi r0, 11 + 77b4: 0c24 bf 0x77fc // 77fc + g_adc.sample_tick = SysTick_1ms; + 77b6: 9540 ld.w r2, (r5, 0x0) + 77b8: 4a28 lsri r1, r2, 8 + 77ba: a348 st.b r2, (r3, 0x8) + 77bc: a329 st.b r1, (r3, 0x9) + ADC12_SEQEND_wait(0); + 77be: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 77c0: 4a30 lsri r1, r2, 16 + 77c2: 4a58 lsri r2, r2, 24 + 77c4: a34b st.b r2, (r3, 0xb) + 77c6: a32a st.b r1, (r3, 0xa) + ADC12_SEQEND_wait(0); + 77c8: e3ffeb62 bsr 0x4e8c // 4e8c + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 77cc: 84c3 ld.b r6, (r4, 0x3) + 77ce: 8462 ld.b r3, (r4, 0x2) + 77d0: 46c8 lsli r6, r6, 8 + 77d2: 6d8c or r6, r3 + 77d4: 3000 movi r0, 0 + 77d6: e3ffeb67 bsr 0x4ea4 // 4ea4 + 77da: 5e6e addi r3, r6, 4 + 77dc: 4361 lsli r3, r3, 1 + 77de: 60d0 addu r3, r4 + 77e0: a300 st.b r0, (r3, 0x0) + 77e2: 4808 lsri r0, r0, 8 + 77e4: a301 st.b r0, (r3, 0x1) + g_adc.index++; + 77e6: 8463 ld.b r3, (r4, 0x3) + 77e8: 8442 ld.b r2, (r4, 0x2) + 77ea: 4368 lsli r3, r3, 8 + 77ec: 6cc8 or r3, r2 + 77ee: 2300 addi r3, 1 + 77f0: 74cd zexth r3, r3 + if (g_adc.index >= ADC_DATABUFF_Size) { + 77f2: 3b09 cmphsi r3, 10 + 77f4: 0815 bt 0x781e // 781e + g_adc.index++; + 77f6: a462 st.b r3, (r4, 0x2) + 77f8: 4b68 lsri r3, r3, 8 + 77fa: a463 st.b r3, (r4, 0x3) + if (g_adc.full_flag == 0x01) { + 77fc: 8460 ld.b r3, (r4, 0x0) + 77fe: 3b41 cmpnei r3, 1 + 7800: 080c bt 0x7818 // 7818 + if (SysTick_1ms - adc_tick >= 100) { + 7802: 104d lrw r2, 0x2000013c // 7834 + 7804: 9220 ld.w r1, (r2, 0x0) + 7806: 9560 ld.w r3, (r5, 0x0) + 7808: 60c6 subu r3, r1 + 780a: 3163 movi r1, 99 + 780c: 64c4 cmphs r1, r3 + 780e: 0805 bt 0x7818 // 7818 + adc_tick = SysTick_1ms; + 7810: 9560 ld.w r3, (r5, 0x0) + 7812: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 7814: e3ffff1c bsr 0x764c // 764c + Gather_Temp(); + 7818: e3ffff68 bsr 0x76e8 // 76e8 +} + 781c: 1493 pop r4-r6, r15 + g_adc.index = 0; + 781e: 3300 movi r3, 0 + 7820: a462 st.b r3, (r4, 0x2) + 7822: a463 st.b r3, (r4, 0x3) + g_adc.full_flag = 1; + 7824: 3301 movi r3, 1 + 7826: a460 st.b r3, (r4, 0x0) + 7828: 07ea br 0x77fc // 77fc + 782a: 0000 bkpt + 782c: 20000521 .long 0x20000521 + 7830: 200000c0 .long 0x200000c0 + 7834: 2000013c .long 0x2000013c + +Disassembly of section .text.Contol_Switch_Light: + +00007838 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 7838: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 783a: 3805 cmphsi r0, 6 +{ + 783c: 6d47 mov r5, r1 + switch(ch) + 783e: 0818 bt 0x786e // 786e + 7840: 009b lrw r4, 0x20000574 // 7bd0 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 7842: 3941 cmpnei r1, 1 + switch(ch) + 7844: e3ffde74 bsr 0x352c // 352c <___gnu_csky_case_uhi> + 7848: 00330006 .long 0x00330006 + 784c: 008d0060 .long 0x008d0060 + 7850: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 7854: 0814 bt 0x787c // 787c + if(g_switch.feedback_light_selection == 0x01){ + 7856: 8462 ld.b r3, (r4, 0x2) + 7858: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 785a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 785c: 080a bt 0x7870 // 7870 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 785e: 300b movi r0, 11 + 7860: e0000532 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7864: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7866: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 7868: e000052e bsr 0x82c4 // 82c4 + g_switch.light_state[T_CH1] = state; + 786c: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 786e: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7870: 3006 movi r0, 6 + 7872: e0000529 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7876: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 7878: 300b movi r0, 11 + 787a: 07f7 br 0x7868 // 7868 + }else if(state == Control_OFF){ + 787c: 3942 cmpnei r1, 2 + 787e: 0bf7 bt 0x786c // 786c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7880: 016a lrw r3, 0x200000c0 // 7bd4 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7882: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7884: 9360 ld.w r3, (r3, 0x0) + 7886: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7888: 8462 ld.b r3, (r4, 0x2) + 788a: 3b41 cmpnei r3, 1 + 788c: 0809 bt 0x789e // 789e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 788e: 300b movi r0, 11 + 7890: e000051a bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7894: 846a ld.b r3, (r4, 0xa) + 7896: 3b41 cmpnei r3, 1 + 7898: 0bea bt 0x786c // 786c + 789a: 3101 movi r1, 1 + 789c: 07e5 br 0x7866 // 7866 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 789e: 3006 movi r0, 6 + 78a0: e0000512 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 78a4: 846a ld.b r3, (r4, 0xa) + 78a6: 3b41 cmpnei r3, 1 + 78a8: 0be2 bt 0x786c // 786c + 78aa: 3101 movi r1, 1 + 78ac: 07e6 br 0x7878 // 7878 + if(state == Control_ON){ + 78ae: 0814 bt 0x78d6 // 78d6 + if(g_switch.feedback_light_selection == 0x01){ + 78b0: 8462 ld.b r3, (r4, 0x2) + 78b2: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 78b4: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 78b6: 080a bt 0x78ca // 78ca + TM1812_Control_CH_State(TPK2_White,Control_ON); + 78b8: 300c movi r0, 12 + 78ba: e0000505 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 78be: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 78c0: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 78c2: e0000501 bsr 0x82c4 // 82c4 + g_switch.light_state[T_CH2] = state; + 78c6: a4a6 st.b r5, (r4, 0x6) + break; + 78c8: 07d3 br 0x786e // 786e + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 78ca: 3007 movi r0, 7 + 78cc: e00004fc bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 78d0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 78d2: 300c movi r0, 12 + 78d4: 07f7 br 0x78c2 // 78c2 + }else if(state == Control_OFF){ + 78d6: 3942 cmpnei r1, 2 + 78d8: 0bf7 bt 0x78c6 // 78c6 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 78da: 0260 lrw r3, 0x200000c0 // 7bd4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 78dc: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 78de: 9360 ld.w r3, (r3, 0x0) + 78e0: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 78e2: 8462 ld.b r3, (r4, 0x2) + 78e4: 3b41 cmpnei r3, 1 + 78e6: 0809 bt 0x78f8 // 78f8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 78e8: 300c movi r0, 12 + 78ea: e00004ed bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 78ee: 846a ld.b r3, (r4, 0xa) + 78f0: 3b41 cmpnei r3, 1 + 78f2: 0bea bt 0x78c6 // 78c6 + 78f4: 3101 movi r1, 1 + 78f6: 07e5 br 0x78c0 // 78c0 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 78f8: 3007 movi r0, 7 + 78fa: e00004e5 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 78fe: 846a ld.b r3, (r4, 0xa) + 7900: 3b41 cmpnei r3, 1 + 7902: 0be2 bt 0x78c6 // 78c6 + 7904: 3101 movi r1, 1 + 7906: 07e6 br 0x78d2 // 78d2 + if(state == Control_ON){ + 7908: 0814 bt 0x7930 // 7930 + if(g_switch.feedback_light_selection == 0x01){ + 790a: 8462 ld.b r3, (r4, 0x2) + 790c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 790e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7910: 080a bt 0x7924 // 7924 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 7912: 300d movi r0, 13 + 7914: e00004d8 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7918: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 791a: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 791c: e00004d4 bsr 0x82c4 // 82c4 + g_switch.light_state[T_CH3] = state; + 7920: a4a7 st.b r5, (r4, 0x7) + break; + 7922: 07a6 br 0x786e // 786e + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 7924: 3008 movi r0, 8 + 7926: e00004cf bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 792a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 792c: 300d movi r0, 13 + 792e: 07f7 br 0x791c // 791c + }else if(state == Control_OFF){ + 7930: 3942 cmpnei r1, 2 + 7932: 0bf7 bt 0x7920 // 7920 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7934: 0277 lrw r3, 0x200000c0 // 7bd4 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7936: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7938: 9360 ld.w r3, (r3, 0x0) + 793a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 793c: 8462 ld.b r3, (r4, 0x2) + 793e: 3b41 cmpnei r3, 1 + 7940: 0809 bt 0x7952 // 7952 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7942: 300d movi r0, 13 + 7944: e00004c0 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 7948: 846a ld.b r3, (r4, 0xa) + 794a: 3b41 cmpnei r3, 1 + 794c: 0bea bt 0x7920 // 7920 + 794e: 3101 movi r1, 1 + 7950: 07e5 br 0x791a // 791a + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7952: 3008 movi r0, 8 + 7954: e00004b8 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 7958: 846a ld.b r3, (r4, 0xa) + 795a: 3b41 cmpnei r3, 1 + 795c: 0be2 bt 0x7920 // 7920 + 795e: 3101 movi r1, 1 + 7960: 07e6 br 0x792c // 792c + if(state == Control_ON){ + 7962: 0814 bt 0x798a // 798a + if(g_switch.feedback_light_selection == 0x01){ + 7964: 8462 ld.b r3, (r4, 0x2) + 7966: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 7968: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 796a: 080a bt 0x797e // 797e + TM1812_Control_CH_State(TPK4_White,Control_ON); + 796c: 300e movi r0, 14 + 796e: e00004ab bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7972: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 7974: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 7976: e00004a7 bsr 0x82c4 // 82c4 + g_switch.light_state[T_CH4] = state; + 797a: a4a8 st.b r5, (r4, 0x8) + break; + 797c: 0779 br 0x786e // 786e + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 797e: 3009 movi r0, 9 + 7980: e00004a2 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7984: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 7986: 300e movi r0, 14 + 7988: 07f7 br 0x7976 // 7976 + }else if(state == Control_OFF){ + 798a: 3942 cmpnei r1, 2 + 798c: 0bf7 bt 0x797a // 797a + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 798e: 036d lrw r3, 0x200000c0 // 7bd4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7990: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7992: 9360 ld.w r3, (r3, 0x0) + 7994: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7996: 8462 ld.b r3, (r4, 0x2) + 7998: 3b41 cmpnei r3, 1 + 799a: 0809 bt 0x79ac // 79ac + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 799c: 300e movi r0, 14 + 799e: e0000493 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 79a2: 846a ld.b r3, (r4, 0xa) + 79a4: 3b41 cmpnei r3, 1 + 79a6: 0bea bt 0x797a // 797a + 79a8: 3101 movi r1, 1 + 79aa: 07e5 br 0x7974 // 7974 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 79ac: 3009 movi r0, 9 + 79ae: e000048b bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 79b2: 846a ld.b r3, (r4, 0xa) + 79b4: 3b41 cmpnei r3, 1 + 79b6: 0be2 bt 0x797a // 797a + 79b8: 3101 movi r1, 1 + 79ba: 07e6 br 0x7986 // 7986 + if(state == Control_ON){ + 79bc: 0814 bt 0x79e4 // 79e4 + if(g_switch.feedback_light_selection == 0x01){ + 79be: 8462 ld.b r3, (r4, 0x2) + 79c0: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 79c2: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 79c4: 080a bt 0x79d8 // 79d8 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 79c6: 300f movi r0, 15 + 79c8: e000047e bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 79cc: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 79ce: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 79d0: e000047a bsr 0x82c4 // 82c4 + g_switch.light_state[T_CH5] = state; + 79d4: a4a9 st.b r5, (r4, 0x9) + break; + 79d6: 074c br 0x786e // 786e + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 79d8: 300a movi r0, 10 + 79da: e0000475 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 79de: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 79e0: 300f movi r0, 15 + 79e2: 07f7 br 0x79d0 // 79d0 + }else if(state == Control_OFF){ + 79e4: 3942 cmpnei r1, 2 + 79e6: 0bf7 bt 0x79d4 // 79d4 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 79e8: 137b lrw r3, 0x200000c0 // 7bd4 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 79ea: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 79ec: 9360 ld.w r3, (r3, 0x0) + 79ee: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 79f0: 8462 ld.b r3, (r4, 0x2) + 79f2: 3b41 cmpnei r3, 1 + 79f4: 0809 bt 0x7a06 // 7a06 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 79f6: 300f movi r0, 15 + 79f8: e0000466 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 79fc: 846a ld.b r3, (r4, 0xa) + 79fe: 3b41 cmpnei r3, 1 + 7a00: 0bea bt 0x79d4 // 79d4 + 7a02: 3101 movi r1, 1 + 7a04: 07e5 br 0x79ce // 79ce + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7a06: 300a movi r0, 10 + 7a08: e000045e bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 7a0c: 846a ld.b r3, (r4, 0xa) + 7a0e: 3b41 cmpnei r3, 1 + 7a10: 0be2 bt 0x79d4 // 79d4 + 7a12: 3101 movi r1, 1 + 7a14: 07e6 br 0x79e0 // 79e0 + if(state == Control_ON){ + 7a16: 08b1 bt 0x7b78 // 7b78 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7a18: 136f lrw r3, 0x200000c0 // 7bd4 + 7a1a: 9360 ld.w r3, (r3, 0x0) + 7a1c: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7a1e: 8462 ld.b r3, (r4, 0x2) + 7a20: 3b41 cmpnei r3, 1 + 7a22: 8465 ld.b r3, (r4, 0x5) + 7a24: 0857 bt 0x7ad2 // 7ad2 + if(g_switch.light_state[T_CH1] != Control_ON) { + 7a26: 3b41 cmpnei r3, 1 + 7a28: 0c33 bf 0x7a8e // 7a8e + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7a2a: 3101 movi r1, 1 + 7a2c: 3006 movi r0, 6 + 7a2e: e000044b bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7a32: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 7a34: 300b movi r0, 11 + 7a36: e0000447 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7a3a: 8466 ld.b r3, (r4, 0x6) + 7a3c: 3b41 cmpnei r3, 1 + 7a3e: 0c2e bf 0x7a9a // 7a9a + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 7a40: 3101 movi r1, 1 + 7a42: 3007 movi r0, 7 + 7a44: e0000440 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7a48: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 7a4a: 300c movi r0, 12 + 7a4c: e000043c bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH3] != Control_ON) { + 7a50: 8467 ld.b r3, (r4, 0x7) + 7a52: 3b41 cmpnei r3, 1 + 7a54: 0c29 bf 0x7aa6 // 7aa6 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 7a56: 3101 movi r1, 1 + 7a58: 3008 movi r0, 8 + 7a5a: e0000435 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7a5e: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 7a60: 300d movi r0, 13 + 7a62: e0000431 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH4] != Control_ON) { + 7a66: 8468 ld.b r3, (r4, 0x8) + 7a68: 3b41 cmpnei r3, 1 + 7a6a: 0c24 bf 0x7ab2 // 7ab2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 7a6c: 3101 movi r1, 1 + 7a6e: 3009 movi r0, 9 + 7a70: e000042a bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7a74: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 7a76: 300e movi r0, 14 + 7a78: e0000426 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH5] != Control_ON) { + 7a7c: 8469 ld.b r3, (r4, 0x9) + 7a7e: 3b41 cmpnei r3, 1 + 7a80: 0c1f bf 0x7abe // 7abe + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 7a82: 3101 movi r1, 1 + 7a84: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7a86: e000041f bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7a8a: 3102 movi r1, 2 + 7a8c: 041e br 0x7ac8 // 7ac8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7a8e: 3102 movi r1, 2 + 7a90: 3006 movi r0, 6 + 7a92: e0000419 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 7a96: 3101 movi r1, 1 + 7a98: 07ce br 0x7a34 // 7a34 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7a9a: 3102 movi r1, 2 + 7a9c: 3007 movi r0, 7 + 7a9e: e0000413 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 7aa2: 3101 movi r1, 1 + 7aa4: 07d3 br 0x7a4a // 7a4a + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7aa6: 3102 movi r1, 2 + 7aa8: 3008 movi r0, 8 + 7aaa: e000040d bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 7aae: 3101 movi r1, 1 + 7ab0: 07d8 br 0x7a60 // 7a60 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7ab2: 3102 movi r1, 2 + 7ab4: 3009 movi r0, 9 + 7ab6: e0000407 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 7aba: 3101 movi r1, 1 + 7abc: 07dd br 0x7a76 // 7a76 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7abe: 3102 movi r1, 2 + 7ac0: 300a movi r0, 10 + 7ac2: e0000401 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 7ac6: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7ac8: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7aca: e00003fd bsr 0x82c4 // 82c4 + g_switch.light_state[T_Backlight] = state; + 7ace: a4aa st.b r5, (r4, 0xa) +} + 7ad0: 06cf br 0x786e // 786e + if(g_switch.light_state[T_CH1] != Control_ON) { + 7ad2: 3b41 cmpnei r3, 1 + 7ad4: 0c33 bf 0x7b3a // 7b3a + TM1812_Control_CH_State(TPK1_White,Control_ON); + 7ad6: 3101 movi r1, 1 + 7ad8: 300b movi r0, 11 + 7ada: e00003f5 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7ade: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7ae0: 3006 movi r0, 6 + 7ae2: e00003f1 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7ae6: 8466 ld.b r3, (r4, 0x6) + 7ae8: 3b41 cmpnei r3, 1 + 7aea: 0c2e bf 0x7b46 // 7b46 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 7aec: 3101 movi r1, 1 + 7aee: 300c movi r0, 12 + 7af0: e00003ea bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7af4: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 7af6: 3007 movi r0, 7 + 7af8: e00003e6 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH3] != Control_ON) { + 7afc: 8467 ld.b r3, (r4, 0x7) + 7afe: 3b41 cmpnei r3, 1 + 7b00: 0c29 bf 0x7b52 // 7b52 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 7b02: 3101 movi r1, 1 + 7b04: 300d movi r0, 13 + 7b06: e00003df bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7b0a: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 7b0c: 3008 movi r0, 8 + 7b0e: e00003db bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH4] != Control_ON) { + 7b12: 8468 ld.b r3, (r4, 0x8) + 7b14: 3b41 cmpnei r3, 1 + 7b16: 0c24 bf 0x7b5e // 7b5e + TM1812_Control_CH_State(TPK4_White,Control_ON); + 7b18: 3101 movi r1, 1 + 7b1a: 300e movi r0, 14 + 7b1c: e00003d4 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7b20: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 7b22: 3009 movi r0, 9 + 7b24: e00003d0 bsr 0x82c4 // 82c4 + if(g_switch.light_state[T_CH5] != Control_ON) { + 7b28: 8469 ld.b r3, (r4, 0x9) + 7b2a: 3b41 cmpnei r3, 1 + 7b2c: 0c1f bf 0x7b6a // 7b6a + TM1812_Control_CH_State(TPK5_White,Control_ON); + 7b2e: 3101 movi r1, 1 + 7b30: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7b32: e00003c9 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7b36: 3102 movi r1, 2 + 7b38: 041e br 0x7b74 // 7b74 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7b3a: 3102 movi r1, 2 + 7b3c: 300b movi r0, 11 + 7b3e: e00003c3 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7b42: 3101 movi r1, 1 + 7b44: 07ce br 0x7ae0 // 7ae0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7b46: 3102 movi r1, 2 + 7b48: 300c movi r0, 12 + 7b4a: e00003bd bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 7b4e: 3101 movi r1, 1 + 7b50: 07d3 br 0x7af6 // 7af6 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7b52: 3102 movi r1, 2 + 7b54: 300d movi r0, 13 + 7b56: e00003b7 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 7b5a: 3101 movi r1, 1 + 7b5c: 07d8 br 0x7b0c // 7b0c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7b5e: 3102 movi r1, 2 + 7b60: 300e movi r0, 14 + 7b62: e00003b1 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 7b66: 3101 movi r1, 1 + 7b68: 07dd br 0x7b22 // 7b22 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7b6a: 3102 movi r1, 2 + 7b6c: 300f movi r0, 15 + 7b6e: e00003ab bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 7b72: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7b74: 300a movi r0, 10 + 7b76: 07aa br 0x7aca // 7aca + }else if(state == Control_OFF){ + 7b78: 3942 cmpnei r1, 2 + 7b7a: 0baa bt 0x7ace // 7ace + if(g_switch.feedback_light_selection == 0x01){ + 7b7c: 8462 ld.b r3, (r4, 0x2) + 7b7e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7b80: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 7b82: 082b bt 0x7bd8 // 7bd8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7b84: 3006 movi r0, 6 + 7b86: e000039f bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7b8a: 3102 movi r1, 2 + 7b8c: 3007 movi r0, 7 + 7b8e: e000039b bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7b92: 3102 movi r1, 2 + 7b94: 3008 movi r0, 8 + 7b96: e0000397 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7b9a: 3102 movi r1, 2 + 7b9c: 3009 movi r0, 9 + 7b9e: e0000393 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7ba2: 3102 movi r1, 2 + 7ba4: 300a movi r0, 10 + 7ba6: e000038f bsr 0x82c4 // 82c4 + if(g_switch.autoOff_light_flag == 0x01){ + 7baa: 8461 ld.b r3, (r4, 0x1) + 7bac: 3b41 cmpnei r3, 1 + 7bae: 0b90 bt 0x7ace // 7ace + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7bb0: 3102 movi r1, 2 + 7bb2: 300b movi r0, 11 + 7bb4: e0000388 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7bb8: 3102 movi r1, 2 + 7bba: 300c movi r0, 12 + 7bbc: e0000384 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7bc0: 3102 movi r1, 2 + 7bc2: 300d movi r0, 13 + 7bc4: e0000380 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7bc8: 3102 movi r1, 2 + 7bca: 300e movi r0, 14 + 7bcc: 075d br 0x7a86 // 7a86 + 7bce: 0000 bkpt + 7bd0: 20000574 .long 0x20000574 + 7bd4: 200000c0 .long 0x200000c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7bd8: 300b movi r0, 11 + 7bda: e0000375 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7bde: 3102 movi r1, 2 + 7be0: 300c movi r0, 12 + 7be2: e0000371 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7be6: 3102 movi r1, 2 + 7be8: 300d movi r0, 13 + 7bea: e000036d bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7bee: 3102 movi r1, 2 + 7bf0: 300e movi r0, 14 + 7bf2: e0000369 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7bf6: 3102 movi r1, 2 + 7bf8: 300f movi r0, 15 + 7bfa: e0000365 bsr 0x82c4 // 82c4 + if(g_switch.autoOff_light_flag == 0x01){ + 7bfe: 8461 ld.b r3, (r4, 0x1) + 7c00: 3b41 cmpnei r3, 1 + 7c02: 0b66 bt 0x7ace // 7ace + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7c04: 3102 movi r1, 2 + 7c06: 3006 movi r0, 6 + 7c08: e000035e bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7c0c: 3102 movi r1, 2 + 7c0e: 3007 movi r0, 7 + 7c10: e000035a bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7c14: 3102 movi r1, 2 + 7c16: 3008 movi r0, 8 + 7c18: e0000356 bsr 0x82c4 // 82c4 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7c1c: 3102 movi r1, 2 + 7c1e: 3009 movi r0, 9 + 7c20: 0789 br 0x7b32 // 7b32 + +Disassembly of section .text.Contol_Switch_Light_2: + +00007c24 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 7c24: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 7c26: 3805 cmphsi r0, 6 +{ + 7c28: 6d47 mov r5, r1 + switch(ch) + 7c2a: 0818 bt 0x7c5a // 7c5a + 7c2c: 009b lrw r4, 0x20000574 // 7fbc + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 7c2e: 3941 cmpnei r1, 1 + switch(ch) + 7c30: e3ffdc7e bsr 0x352c // 352c <___gnu_csky_case_uhi> + 7c34: 00330006 .long 0x00330006 + 7c38: 008d0060 .long 0x008d0060 + 7c3c: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 7c40: 0814 bt 0x7c68 // 7c68 + if(g_switch.feedback_light_selection == 0x01){ + 7c42: 8462 ld.b r3, (r4, 0x2) + 7c44: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7c46: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7c48: 080a bt 0x7c5c // 7c5c + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7c4a: 300b movi r0, 11 + 7c4c: e0000374 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7c50: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7c52: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7c54: e0000370 bsr 0x8334 // 8334 + g_switch.light_state[T_CH1] = state; + 7c58: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 7c5a: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7c5c: 3006 movi r0, 6 + 7c5e: e000036b bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7c62: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7c64: 300b movi r0, 11 + 7c66: 07f7 br 0x7c54 // 7c54 + }else if(state == Control_OFF){ + 7c68: 3942 cmpnei r1, 2 + 7c6a: 0bf7 bt 0x7c58 // 7c58 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c6c: 016a lrw r3, 0x200000c0 // 7fc0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7c6e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c70: 9360 ld.w r3, (r3, 0x0) + 7c72: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7c74: 8462 ld.b r3, (r4, 0x2) + 7c76: 3b41 cmpnei r3, 1 + 7c78: 0809 bt 0x7c8a // 7c8a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7c7a: 300b movi r0, 11 + 7c7c: e000035c bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7c80: 846a ld.b r3, (r4, 0xa) + 7c82: 3b41 cmpnei r3, 1 + 7c84: 0bea bt 0x7c58 // 7c58 + 7c86: 3101 movi r1, 1 + 7c88: 07e5 br 0x7c52 // 7c52 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7c8a: 3006 movi r0, 6 + 7c8c: e0000354 bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7c90: 846a ld.b r3, (r4, 0xa) + 7c92: 3b41 cmpnei r3, 1 + 7c94: 0be2 bt 0x7c58 // 7c58 + 7c96: 3101 movi r1, 1 + 7c98: 07e6 br 0x7c64 // 7c64 + if(state == Control_ON){ + 7c9a: 0814 bt 0x7cc2 // 7cc2 + if(g_switch.feedback_light_selection == 0x01){ + 7c9c: 8462 ld.b r3, (r4, 0x2) + 7c9e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7ca0: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7ca2: 080a bt 0x7cb6 // 7cb6 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7ca4: 300c movi r0, 12 + 7ca6: e0000347 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7caa: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7cac: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7cae: e0000343 bsr 0x8334 // 8334 + g_switch.light_state[T_CH2] = state; + 7cb2: a4a6 st.b r5, (r4, 0x6) + break; + 7cb4: 07d3 br 0x7c5a // 7c5a + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7cb6: 3007 movi r0, 7 + 7cb8: e000033e bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7cbc: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7cbe: 300c movi r0, 12 + 7cc0: 07f7 br 0x7cae // 7cae + }else if(state == Control_OFF){ + 7cc2: 3942 cmpnei r1, 2 + 7cc4: 0bf7 bt 0x7cb2 // 7cb2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7cc6: 0260 lrw r3, 0x200000c0 // 7fc0 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7cc8: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7cca: 9360 ld.w r3, (r3, 0x0) + 7ccc: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7cce: 8462 ld.b r3, (r4, 0x2) + 7cd0: 3b41 cmpnei r3, 1 + 7cd2: 0809 bt 0x7ce4 // 7ce4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7cd4: 300c movi r0, 12 + 7cd6: e000032f bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7cda: 846a ld.b r3, (r4, 0xa) + 7cdc: 3b41 cmpnei r3, 1 + 7cde: 0bea bt 0x7cb2 // 7cb2 + 7ce0: 3101 movi r1, 1 + 7ce2: 07e5 br 0x7cac // 7cac + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7ce4: 3007 movi r0, 7 + 7ce6: e0000327 bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7cea: 846a ld.b r3, (r4, 0xa) + 7cec: 3b41 cmpnei r3, 1 + 7cee: 0be2 bt 0x7cb2 // 7cb2 + 7cf0: 3101 movi r1, 1 + 7cf2: 07e6 br 0x7cbe // 7cbe + if(state == Control_ON){ + 7cf4: 0814 bt 0x7d1c // 7d1c + if(g_switch.feedback_light_selection == 0x01){ + 7cf6: 8462 ld.b r3, (r4, 0x2) + 7cf8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7cfa: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7cfc: 080a bt 0x7d10 // 7d10 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7cfe: 300d movi r0, 13 + 7d00: e000031a bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7d04: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7d06: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7d08: e0000316 bsr 0x8334 // 8334 + g_switch.light_state[T_CH3] = state; + 7d0c: a4a7 st.b r5, (r4, 0x7) + break; + 7d0e: 07a6 br 0x7c5a // 7c5a + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7d10: 3008 movi r0, 8 + 7d12: e0000311 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7d16: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7d18: 300d movi r0, 13 + 7d1a: 07f7 br 0x7d08 // 7d08 + }else if(state == Control_OFF){ + 7d1c: 3942 cmpnei r1, 2 + 7d1e: 0bf7 bt 0x7d0c // 7d0c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7d20: 0277 lrw r3, 0x200000c0 // 7fc0 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7d22: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7d24: 9360 ld.w r3, (r3, 0x0) + 7d26: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7d28: 8462 ld.b r3, (r4, 0x2) + 7d2a: 3b41 cmpnei r3, 1 + 7d2c: 0809 bt 0x7d3e // 7d3e + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7d2e: 300d movi r0, 13 + 7d30: e0000302 bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7d34: 846a ld.b r3, (r4, 0xa) + 7d36: 3b41 cmpnei r3, 1 + 7d38: 0bea bt 0x7d0c // 7d0c + 7d3a: 3101 movi r1, 1 + 7d3c: 07e5 br 0x7d06 // 7d06 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7d3e: 3008 movi r0, 8 + 7d40: e00002fa bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7d44: 846a ld.b r3, (r4, 0xa) + 7d46: 3b41 cmpnei r3, 1 + 7d48: 0be2 bt 0x7d0c // 7d0c + 7d4a: 3101 movi r1, 1 + 7d4c: 07e6 br 0x7d18 // 7d18 + if(state == Control_ON){ + 7d4e: 0814 bt 0x7d76 // 7d76 + if(g_switch.feedback_light_selection == 0x01){ + 7d50: 8462 ld.b r3, (r4, 0x2) + 7d52: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d54: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7d56: 080a bt 0x7d6a // 7d6a + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d58: 300e movi r0, 14 + 7d5a: e00002ed bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7d5e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7d60: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d62: e00002e9 bsr 0x8334 // 8334 + g_switch.light_state[T_CH4] = state; + 7d66: a4a8 st.b r5, (r4, 0x8) + break; + 7d68: 0779 br 0x7c5a // 7c5a + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7d6a: 3009 movi r0, 9 + 7d6c: e00002e4 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7d70: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d72: 300e movi r0, 14 + 7d74: 07f7 br 0x7d62 // 7d62 + }else if(state == Control_OFF){ + 7d76: 3942 cmpnei r1, 2 + 7d78: 0bf7 bt 0x7d66 // 7d66 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7d7a: 036d lrw r3, 0x200000c0 // 7fc0 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7d7c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7d7e: 9360 ld.w r3, (r3, 0x0) + 7d80: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7d82: 8462 ld.b r3, (r4, 0x2) + 7d84: 3b41 cmpnei r3, 1 + 7d86: 0809 bt 0x7d98 // 7d98 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7d88: 300e movi r0, 14 + 7d8a: e00002d5 bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7d8e: 846a ld.b r3, (r4, 0xa) + 7d90: 3b41 cmpnei r3, 1 + 7d92: 0bea bt 0x7d66 // 7d66 + 7d94: 3101 movi r1, 1 + 7d96: 07e5 br 0x7d60 // 7d60 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7d98: 3009 movi r0, 9 + 7d9a: e00002cd bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d9e: 846a ld.b r3, (r4, 0xa) + 7da0: 3b41 cmpnei r3, 1 + 7da2: 0be2 bt 0x7d66 // 7d66 + 7da4: 3101 movi r1, 1 + 7da6: 07e6 br 0x7d72 // 7d72 + if(state == Control_ON){ + 7da8: 0814 bt 0x7dd0 // 7dd0 + if(g_switch.feedback_light_selection == 0x01){ + 7daa: 8462 ld.b r3, (r4, 0x2) + 7dac: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7dae: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7db0: 080a bt 0x7dc4 // 7dc4 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7db2: 300f movi r0, 15 + 7db4: e00002c0 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7db8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7dba: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7dbc: e00002bc bsr 0x8334 // 8334 + g_switch.light_state[T_CH5] = state; + 7dc0: a4a9 st.b r5, (r4, 0x9) + break; + 7dc2: 074c br 0x7c5a // 7c5a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7dc4: 300a movi r0, 10 + 7dc6: e00002b7 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7dca: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7dcc: 300f movi r0, 15 + 7dce: 07f7 br 0x7dbc // 7dbc + }else if(state == Control_OFF){ + 7dd0: 3942 cmpnei r1, 2 + 7dd2: 0bf7 bt 0x7dc0 // 7dc0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7dd4: 137b lrw r3, 0x200000c0 // 7fc0 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7dd6: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7dd8: 9360 ld.w r3, (r3, 0x0) + 7dda: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7ddc: 8462 ld.b r3, (r4, 0x2) + 7dde: 3b41 cmpnei r3, 1 + 7de0: 0809 bt 0x7df2 // 7df2 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7de2: 300f movi r0, 15 + 7de4: e00002a8 bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7de8: 846a ld.b r3, (r4, 0xa) + 7dea: 3b41 cmpnei r3, 1 + 7dec: 0bea bt 0x7dc0 // 7dc0 + 7dee: 3101 movi r1, 1 + 7df0: 07e5 br 0x7dba // 7dba + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7df2: 300a movi r0, 10 + 7df4: e00002a0 bsr 0x8334 // 8334 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7df8: 846a ld.b r3, (r4, 0xa) + 7dfa: 3b41 cmpnei r3, 1 + 7dfc: 0be2 bt 0x7dc0 // 7dc0 + 7dfe: 3101 movi r1, 1 + 7e00: 07e6 br 0x7dcc // 7dcc + if(state == Control_ON){ + 7e02: 08b1 bt 0x7f64 // 7f64 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7e04: 136f lrw r3, 0x200000c0 // 7fc0 + 7e06: 9360 ld.w r3, (r3, 0x0) + 7e08: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7e0a: 8462 ld.b r3, (r4, 0x2) + 7e0c: 3b41 cmpnei r3, 1 + 7e0e: 8465 ld.b r3, (r4, 0x5) + 7e10: 0857 bt 0x7ebe // 7ebe + if(g_switch.light_state[T_CH1] != Control_ON) { + 7e12: 3b41 cmpnei r3, 1 + 7e14: 0c33 bf 0x7e7a // 7e7a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7e16: 3101 movi r1, 1 + 7e18: 3006 movi r0, 6 + 7e1a: e000028d bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7e1e: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7e20: 300b movi r0, 11 + 7e22: e0000289 bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7e26: 8466 ld.b r3, (r4, 0x6) + 7e28: 3b41 cmpnei r3, 1 + 7e2a: 0c2e bf 0x7e86 // 7e86 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7e2c: 3101 movi r1, 1 + 7e2e: 3007 movi r0, 7 + 7e30: e0000282 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7e34: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7e36: 300c movi r0, 12 + 7e38: e000027e bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH3] != Control_ON) { + 7e3c: 8467 ld.b r3, (r4, 0x7) + 7e3e: 3b41 cmpnei r3, 1 + 7e40: 0c29 bf 0x7e92 // 7e92 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7e42: 3101 movi r1, 1 + 7e44: 3008 movi r0, 8 + 7e46: e0000277 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7e4a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7e4c: 300d movi r0, 13 + 7e4e: e0000273 bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH4] != Control_ON) { + 7e52: 8468 ld.b r3, (r4, 0x8) + 7e54: 3b41 cmpnei r3, 1 + 7e56: 0c24 bf 0x7e9e // 7e9e + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7e58: 3101 movi r1, 1 + 7e5a: 3009 movi r0, 9 + 7e5c: e000026c bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7e60: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7e62: 300e movi r0, 14 + 7e64: e0000268 bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH5] != Control_ON) { + 7e68: 8469 ld.b r3, (r4, 0x9) + 7e6a: 3b41 cmpnei r3, 1 + 7e6c: 0c1f bf 0x7eaa // 7eaa + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7e6e: 3101 movi r1, 1 + 7e70: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7e72: e0000261 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7e76: 3102 movi r1, 2 + 7e78: 041e br 0x7eb4 // 7eb4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7e7a: 3102 movi r1, 2 + 7e7c: 3006 movi r0, 6 + 7e7e: e000025b bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7e82: 3101 movi r1, 1 + 7e84: 07ce br 0x7e20 // 7e20 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7e86: 3102 movi r1, 2 + 7e88: 3007 movi r0, 7 + 7e8a: e0000255 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7e8e: 3101 movi r1, 1 + 7e90: 07d3 br 0x7e36 // 7e36 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7e92: 3102 movi r1, 2 + 7e94: 3008 movi r0, 8 + 7e96: e000024f bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7e9a: 3101 movi r1, 1 + 7e9c: 07d8 br 0x7e4c // 7e4c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7e9e: 3102 movi r1, 2 + 7ea0: 3009 movi r0, 9 + 7ea2: e0000249 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7ea6: 3101 movi r1, 1 + 7ea8: 07dd br 0x7e62 // 7e62 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7eaa: 3102 movi r1, 2 + 7eac: 300a movi r0, 10 + 7eae: e0000243 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7eb2: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7eb4: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7eb6: e000023f bsr 0x8334 // 8334 + g_switch.light_state[T_Backlight] = state; + 7eba: a4aa st.b r5, (r4, 0xa) +} + 7ebc: 06cf br 0x7c5a // 7c5a + if(g_switch.light_state[T_CH1] != Control_ON) { + 7ebe: 3b41 cmpnei r3, 1 + 7ec0: 0c33 bf 0x7f26 // 7f26 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7ec2: 3101 movi r1, 1 + 7ec4: 300b movi r0, 11 + 7ec6: e0000237 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7eca: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7ecc: 3006 movi r0, 6 + 7ece: e0000233 bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7ed2: 8466 ld.b r3, (r4, 0x6) + 7ed4: 3b41 cmpnei r3, 1 + 7ed6: 0c2e bf 0x7f32 // 7f32 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7ed8: 3101 movi r1, 1 + 7eda: 300c movi r0, 12 + 7edc: e000022c bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7ee0: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7ee2: 3007 movi r0, 7 + 7ee4: e0000228 bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH3] != Control_ON) { + 7ee8: 8467 ld.b r3, (r4, 0x7) + 7eea: 3b41 cmpnei r3, 1 + 7eec: 0c29 bf 0x7f3e // 7f3e + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7eee: 3101 movi r1, 1 + 7ef0: 300d movi r0, 13 + 7ef2: e0000221 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7ef6: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7ef8: 3008 movi r0, 8 + 7efa: e000021d bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH4] != Control_ON) { + 7efe: 8468 ld.b r3, (r4, 0x8) + 7f00: 3b41 cmpnei r3, 1 + 7f02: 0c24 bf 0x7f4a // 7f4a + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7f04: 3101 movi r1, 1 + 7f06: 300e movi r0, 14 + 7f08: e0000216 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7f0c: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7f0e: 3009 movi r0, 9 + 7f10: e0000212 bsr 0x8334 // 8334 + if(g_switch.light_state[T_CH5] != Control_ON) { + 7f14: 8469 ld.b r3, (r4, 0x9) + 7f16: 3b41 cmpnei r3, 1 + 7f18: 0c1f bf 0x7f56 // 7f56 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7f1a: 3101 movi r1, 1 + 7f1c: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7f1e: e000020b bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7f22: 3102 movi r1, 2 + 7f24: 041e br 0x7f60 // 7f60 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7f26: 3102 movi r1, 2 + 7f28: 300b movi r0, 11 + 7f2a: e0000205 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7f2e: 3101 movi r1, 1 + 7f30: 07ce br 0x7ecc // 7ecc + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7f32: 3102 movi r1, 2 + 7f34: 300c movi r0, 12 + 7f36: e00001ff bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7f3a: 3101 movi r1, 1 + 7f3c: 07d3 br 0x7ee2 // 7ee2 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7f3e: 3102 movi r1, 2 + 7f40: 300d movi r0, 13 + 7f42: e00001f9 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7f46: 3101 movi r1, 1 + 7f48: 07d8 br 0x7ef8 // 7ef8 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7f4a: 3102 movi r1, 2 + 7f4c: 300e movi r0, 14 + 7f4e: e00001f3 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7f52: 3101 movi r1, 1 + 7f54: 07dd br 0x7f0e // 7f0e + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7f56: 3102 movi r1, 2 + 7f58: 300f movi r0, 15 + 7f5a: e00001ed bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7f5e: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7f60: 300a movi r0, 10 + 7f62: 07aa br 0x7eb6 // 7eb6 + }else if(state == Control_OFF){ + 7f64: 3942 cmpnei r1, 2 + 7f66: 0baa bt 0x7eba // 7eba + if(g_switch.feedback_light_selection == 0x01){ + 7f68: 8462 ld.b r3, (r4, 0x2) + 7f6a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7f6c: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 7f6e: 082b bt 0x7fc4 // 7fc4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7f70: 3006 movi r0, 6 + 7f72: e00001e1 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7f76: 3102 movi r1, 2 + 7f78: 3007 movi r0, 7 + 7f7a: e00001dd bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7f7e: 3102 movi r1, 2 + 7f80: 3008 movi r0, 8 + 7f82: e00001d9 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7f86: 3102 movi r1, 2 + 7f88: 3009 movi r0, 9 + 7f8a: e00001d5 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7f8e: 3102 movi r1, 2 + 7f90: 300a movi r0, 10 + 7f92: e00001d1 bsr 0x8334 // 8334 + if(g_switch.autoOff_light_flag == 0x01){ + 7f96: 8461 ld.b r3, (r4, 0x1) + 7f98: 3b41 cmpnei r3, 1 + 7f9a: 0b90 bt 0x7eba // 7eba + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7f9c: 3102 movi r1, 2 + 7f9e: 300b movi r0, 11 + 7fa0: e00001ca bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7fa4: 3102 movi r1, 2 + 7fa6: 300c movi r0, 12 + 7fa8: e00001c6 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7fac: 3102 movi r1, 2 + 7fae: 300d movi r0, 13 + 7fb0: e00001c2 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7fb4: 3102 movi r1, 2 + 7fb6: 300e movi r0, 14 + 7fb8: 075d br 0x7e72 // 7e72 + 7fba: 0000 bkpt + 7fbc: 20000574 .long 0x20000574 + 7fc0: 200000c0 .long 0x200000c0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7fc4: 300b movi r0, 11 + 7fc6: e00001b7 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7fca: 3102 movi r1, 2 + 7fcc: 300c movi r0, 12 + 7fce: e00001b3 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7fd2: 3102 movi r1, 2 + 7fd4: 300d movi r0, 13 + 7fd6: e00001af bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7fda: 3102 movi r1, 2 + 7fdc: 300e movi r0, 14 + 7fde: e00001ab bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7fe2: 3102 movi r1, 2 + 7fe4: 300f movi r0, 15 + 7fe6: e00001a7 bsr 0x8334 // 8334 + if(g_switch.autoOff_light_flag == 0x01){ + 7fea: 8461 ld.b r3, (r4, 0x1) + 7fec: 3b41 cmpnei r3, 1 + 7fee: 0b66 bt 0x7eba // 7eba + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7ff0: 3102 movi r1, 2 + 7ff2: 3006 movi r0, 6 + 7ff4: e00001a0 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7ff8: 3102 movi r1, 2 + 7ffa: 3007 movi r0, 7 + 7ffc: e000019c bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 8000: 3102 movi r1, 2 + 8002: 3008 movi r0, 8 + 8004: e0000198 bsr 0x8334 // 8334 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 8008: 3102 movi r1, 2 + 800a: 3009 movi r0, 9 + 800c: 0789 br 0x7f1e // 7f1e + +Disassembly of section .text.Contol_Switch_ClickAction: + +00008010 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 8010: 14d0 push r15 + switch(ch) + 8012: 3804 cmphsi r0, 5 + 8014: 0809 bt 0x8026 // 8026 + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 8016: 1068 lrw r3, 0x20000574 // 8034 + 8018: 836a ld.b r3, (r3, 0xa) + 801a: 3b41 cmpnei r3, 1 + 801c: 0806 bt 0x8028 // 8028 + if(state == Control_ON ){ + 801e: 3941 cmpnei r1, 1 + 8020: 0804 bt 0x8028 // 8028 + Contol_Switch_Light_2(ch,Control_ON); + 8022: e3fffe01 bsr 0x7c24 // 7c24 + break; + default: + + break; + } +} + 8026: 1490 pop r15 + if(state == Control_OFF ){ + 8028: 3942 cmpnei r1, 2 + 802a: 0bfe bt 0x8026 // 8026 + Contol_Switch_Light(ch,Control_OFF); + 802c: e3fffc06 bsr 0x7838 // 7838 +} + 8030: 07fb br 0x8026 // 8026 + 8032: 0000 bkpt + 8034: 20000574 .long 0x20000574 + +Disassembly of section .text.Get_TM1812_State_Change: + +00008038 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 8038: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 803a: 106f lrw r3, 0x200001a0 // 8074 + 803c: 8318 ld.b r0, (r3, 0x18) + 803e: 3841 cmpnei r0, 1 + 8040: 0c19 bf 0x8072 // 8072 + 8042: 104e lrw r2, 0x20000140 // 8078 + 8044: 3018 movi r0, 24 + 8046: 3300 movi r3, 0 + for(i=0;i + rev++; + 8052: 2300 addi r3, 1 + 8054: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 8056: 5a84 addu r4, r2, r1 + 8058: 8480 ld.b r4, (r4, 0x0) + 805a: 3c41 cmpnei r4, 1 + 805c: 0803 bt 0x8062 // 8062 + rev++; + 805e: 2300 addi r3, 1 + 8060: 74cc zextb r3, r3 + 8062: 2800 subi r0, 1 + 8064: 7400 zextb r0, r0 + for(i=0;i + } + } + + if(rev != 0x00) return 0x01; + 806c: 3b40 cmpnei r3, 0 + 806e: 6001 addc r0, r0 + return 0x01; //立即控制 + 8070: 7400 zextb r0, r0 + return 0x00; +} + 8072: 1482 pop r4-r5 + 8074: 200001a0 .long 0x200001a0 + 8078: 20000140 .long 0x20000140 + +Disassembly of section .text.TimeCall_SIO_Send: + +0000807c : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 807c: 14d4 push r4-r7, r15 + 807e: 1421 subi r14, r14, 4 + 8080: 1264 lrw r3, 0x20000140 // 8190 + 8082: 3188 movi r1, 136 + 8084: 3260 movi r2, 96 + 8086: 604c addu r1, r3 + 8088: 608c addu r2, r3 + 808a: 3718 movi r7, 24 + 808c: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 809a: 3448 movi r4, 72 + 809c: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 809e: 84a0 ld.b r5, (r4, 0x0) + 80a0: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 80a2: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 80a4: 083a bt 0x8118 // 8118 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 80a6: 35ff movi r5, 255 + 80a8: 6542 cmpne r0, r5 + 80aa: 0c34 bf 0x8112 // 8112 + //递增 + tm1812_param.gradient_cnt[i]++; + 80ac: 8280 ld.b r4, (r2, 0x0) + 80ae: 2400 addi r4, 1 + 80b0: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 80b2: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 80b4: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 80b6: 0c05 bf 0x80c0 // 80c0 + tm1812_param.curr_data[i]++; + 80b8: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 80ba: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 80bc: 3000 movi r0, 0 + 80be: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 80c0: 3000 movi r0, 0 + 80c2: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 80c4: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 80c6: 3480 movi r4, 128 + 80c8: 6914 and r4, r5 + 80ca: 3c40 cmpnei r4, 0 + 80cc: 9180 ld.w r4, (r1, 0x0) + 80ce: 0c44 bf 0x8156 // 8156 + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 80d0: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 80d2: 7180 lsl r6, r0 + 80d4: 2001 addi r0, 2 + 80d6: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 80d8: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 80da: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 80dc: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 80de: 0bf4 bt 0x80c6 // 80c6 + 80e0: 5f03 subi r0, r7, 1 + 80e2: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 80ee: e3fff05e bsr 0x61aa // 61aa + + for(K=0;K + 80f6: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 80f8: 3022 movi r0, 34 + 80fa: 1148 lrw r2, 0x2000002c // 8198 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 80fc: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 80fe: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 8100: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 810a: e3fff04d bsr 0x61a4 // 61a4 + +} + 810e: 1401 addi r14, r14, 4 + 8110: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 8112: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 8114: a400 st.b r0, (r4, 0x0) + 8116: 07d5 br 0x80c0 // 80c0 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 8118: 3840 cmpnei r0, 0 + 811a: 0c09 bf 0x812c // 812c + tm1812_param.gradient_cnt[i]++; + 811c: 8280 ld.b r4, (r2, 0x0) + 811e: 2400 addi r4, 1 + 8120: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 8122: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 8124: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 8126: 0fcd bf 0x80c0 // 80c0 + tm1812_param.curr_data[i]--; + 8128: 2800 subi r0, 1 + 812a: 07c8 br 0x80ba // 80ba + tm1812_param.gradient_dir[i] = 0x01; + 812c: 3001 movi r0, 1 + 812e: 07f3 br 0x8114 // 8114 + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 8130: 7400 zextb r0, r0 + 8132: 8380 ld.b r4, (r3, 0x0) + 8134: 6500 cmphs r0, r4 + 8136: 0807 bt 0x8144 // 8144 + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 8138: 5ca1 subu r5, r4, r0 + 813a: 3d24 cmplti r5, 5 + 813c: 080b bt 0x8152 // 8152 + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 813e: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 8140: a318 st.b r0, (r3, 0x18) + 8142: 07bf br 0x80c0 // 80c0 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 8144: 6410 cmphs r4, r0 + 8146: 0bbd bt 0x80c0 // 80c0 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 8148: 58b1 subu r5, r0, r4 + 814a: 3d24 cmplti r5, 5 + 814c: 0803 bt 0x8152 // 8152 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 814e: 2803 subi r0, 4 + 8150: 07f8 br 0x8140 // 8140 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 8152: a398 st.b r4, (r3, 0x18) + 8154: 07b6 br 0x80c0 // 80c0 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 8156: 3602 movi r6, 2 + 8158: 07bd br 0x80d2 // 80d2 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 815a: 8328 ld.b r1, (r3, 0x8) + 815c: 6040 addu r1, r0 + 815e: 4122 lsli r1, r1, 2 + 8160: 98c0 ld.w r6, (r14, 0x0) + 8162: 6058 addu r1, r6 + 8164: 9120 ld.w r1, (r1, 0x0) + 8166: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 8168: 9228 ld.w r1, (r2, 0x20) + 816a: 6850 and r1, r4 + 816c: 3940 cmpnei r1, 0 + 816e: 0ffd bf 0x8168 // 8168 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 8170: 922b ld.w r1, (r2, 0x2c) + 8172: 3982 bclri r1, 2 + 8174: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 8176: 9228 ld.w r1, (r2, 0x20) + 8178: 6854 and r1, r5 + 817a: 3940 cmpnei r1, 0 + 817c: 0ffd bf 0x8176 // 8176 + SIO0->ICR &= ~SIO_TXDNE; + 817e: 922b ld.w r1, (r2, 0x2c) + 8180: 3980 bclri r1, 0 + 8182: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 818e: 0000 bkpt + 8190: 20000140 .long 0x20000140 + 8194: 20000220 .long 0x20000220 + 8198: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +0000819c : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 819c: 14d4 push r4-r7, r15 + 819e: 1421 subi r14, r14, 4 + 81a0: 1105 lrw r0, 0x20000140 // 8234 + 81a2: 1166 lrw r3, 0x200001c8 // 8238 + 81a4: 3218 movi r2, 24 + 81a6: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 81ba: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 81bc: 7184 lsl r6, r1 + 81be: 2101 addi r1, 2 + 81c0: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 81c2: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 81c4: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 81c6: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 81c8: 0bf4 bt 0x81b0 // 81b0 + 81ca: 2a00 subi r2, 1 + 81cc: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 81d6: e3ffefea bsr 0x61aa // 61aa + + for(K2=0;K2 + 81de: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 81e0: 3022 movi r0, 34 + 81e2: 1058 lrw r2, 0x2000002c // 8240 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 81e4: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 81e6: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 81e8: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 81f2: e3ffefd9 bsr 0x61a4 // 61a4 + +} + 81f6: 1401 addi r14, r14, 4 + 81f8: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 81fa: 3602 movi r6, 2 + 81fc: 07e0 br 0x81bc // 81bc + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 81fe: 8329 ld.b r1, (r3, 0x9) + 8200: 6040 addu r1, r0 + 8202: 4122 lsli r1, r1, 2 + 8204: 98c0 ld.w r6, (r14, 0x0) + 8206: 6058 addu r1, r6 + 8208: 9120 ld.w r1, (r1, 0x0) + 820a: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 820c: 9228 ld.w r1, (r2, 0x20) + 820e: 6850 and r1, r4 + 8210: 3940 cmpnei r1, 0 + 8212: 0ffd bf 0x820c // 820c + SIO0->ICR &= ~SIO_TXBUFEMPT; + 8214: 922b ld.w r1, (r2, 0x2c) + 8216: 3982 bclri r1, 2 + 8218: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 821a: 9228 ld.w r1, (r2, 0x20) + 821c: 6854 and r1, r5 + 821e: 3940 cmpnei r1, 0 + 8220: 0ffd bf 0x821a // 821a + SIO0->ICR &= ~SIO_TXDNE; + 8222: 922b ld.w r1, (r2, 0x2c) + 8224: 3980 bclri r1, 0 + 8226: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 8232: 0000 bkpt + 8234: 20000140 .long 0x20000140 + 8238: 200001c8 .long 0x200001c8 + 823c: 20000220 .long 0x20000220 + 8240: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +00008244 : + + +void Tm1812_Task(void) { + 8244: 14d0 push r15 + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 8246: e3fffef9 bsr 0x8038 // 8038 + 824a: 3841 cmpnei r0, 1 + 824c: 1070 lrw r3, 0x200001c0 // 828c + 824e: 0812 bt 0x8272 // 8272 + if(SysTick_100us - StateChange_Tick >= 20){ + 8250: 1030 lrw r1, 0x200000bc // 8290 + 8252: 9140 ld.w r2, (r1, 0x0) + 8254: 931b ld.w r0, (r3, 0x6c) + 8256: 6082 subu r2, r0 + 8258: 3a13 cmphsi r2, 20 + 825a: 0c0b bf 0x8270 // 8270 + StateChange_Tick = SysTick_100us; + 825c: 9140 ld.w r2, (r1, 0x0) + 825e: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 8260: 104d lrw r2, 0x200000c0 // 8294 + 8262: 9240 ld.w r2, (r2, 0x0) + 8264: b341 st.w r2, (r3, 0x4) + tm1812_param.change_flag = 0x00; + 8266: 106d lrw r3, 0x200001a0 // 8298 + 8268: 3200 movi r2, 0 + 826a: a358 st.b r2, (r3, 0x18) + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + + TimeCall_SIO_Send(); + 826c: e3ffff08 bsr 0x807c // 807c + } + } + +} + 8270: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 8272: 1029 lrw r1, 0x200000c0 // 8294 + 8274: 9140 ld.w r2, (r1, 0x0) + 8276: 9301 ld.w r0, (r3, 0x4) + 8278: 6082 subu r2, r0 + 827a: 1009 lrw r0, 0x7cf // 829c + 827c: 6480 cmphs r0, r2 + 827e: 0bf9 bt 0x8270 // 8270 + StateChange_Tick = SysTick_100us; + 8280: 1044 lrw r2, 0x200000bc // 8290 + 8282: 9240 ld.w r2, (r2, 0x0) + 8284: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 8286: 9140 ld.w r2, (r1, 0x0) + 8288: b341 st.w r2, (r3, 0x4) + 828a: 07f1 br 0x826c // 826c + 828c: 200001c0 .long 0x200001c0 + 8290: 200000bc .long 0x200000bc + 8294: 200000c0 .long 0x200000c0 + 8298: 200001a0 .long 0x200001a0 + 829c: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +000082a0 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 82a0: 3817 cmphsi r0, 24 + 82a2: 080c bt 0x82ba // 82ba + return; + } + + tm1812_param.data[select] = data; + 82a4: 1066 lrw r3, 0x20000140 // 82bc + 82a6: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 82a8: 3260 movi r2, 96 + 82aa: 608c addu r2, r3 + tm1812_param.data[select] = data; + 82ac: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 82ae: 3101 movi r1, 1 + 82b0: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 82b2: 237f addi r3, 128 + 82b4: 1043 lrw r2, 0x200000c0 // 82c0 + 82b6: 9240 ld.w r2, (r2, 0x0) + 82b8: b340 st.w r2, (r3, 0x0) +} + 82ba: 783c jmp r15 + 82bc: 20000140 .long 0x20000140 + 82c0: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_Control_CH_State: + +000082c4 : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 82c4: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 82c6: 3817 cmphsi r0, 24 + 82c8: 082a bt 0x831c // 831c + return 0x01; + } + + switch(state){ + 82ca: 3942 cmpnei r1, 2 + 82cc: 0c12 bf 0x82f0 // 82f0 + 82ce: 3943 cmpnei r1, 3 + 82d0: 0c14 bf 0x82f8 // 82f8 + 82d2: 3941 cmpnei r1, 1 + 82d4: 0806 bt 0x82e0 // 82e0 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 82d6: 1073 lrw r3, 0x20000140 // 8320 + 82d8: 600c addu r0, r3 + 82da: 3300 movi r3, 0 + 82dc: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 82de: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 82e0: 1071 lrw r3, 0x200001a0 // 8324 + 82e2: 3201 movi r2, 1 + 82e4: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 82e6: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 82e8: 1050 lrw r2, 0x200000c0 // 8328 + 82ea: 9240 ld.w r2, (r2, 0x0) + 82ec: b348 st.w r2, (r3, 0x20) +} + 82ee: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 82f0: 106c lrw r3, 0x20000140 // 8320 + 82f2: 600c addu r0, r3 + 82f4: 3300 movi r3, 0 + 82f6: 07f4 br 0x82de // 82de + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 82f8: 106a lrw r3, 0x20000140 // 8320 + 82fa: 600c addu r0, r3 + 82fc: 8020 ld.b r1, (r0, 0x0) + 82fe: 32ff movi r2, 255 + 8300: 3300 movi r3, 0 + 8302: 6486 cmpne r1, r2 + 8304: 2b00 subi r3, 1 + 8306: 0c07 bf 0x8314 // 8314 + tm1812_param.data[ch] = TM1812_CH_ON; + 8308: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 830a: 1029 lrw r1, 0xcfcd // 832c + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 830c: 3000 movi r0, 0 + 830e: e3fff1b7 bsr 0x667c // 667c + 8312: 07e7 br 0x82e0 // 82e0 + tm1812_param.data[ch] = TM1812_CH_OFF; + 8314: 3300 movi r3, 0 + 8316: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 8318: 1026 lrw r1, 0xcfd5 // 8330 + 831a: 07f9 br 0x830c // 830c + return 0x01; + 831c: 3001 movi r0, 1 + 831e: 07e8 br 0x82ee // 82ee + 8320: 20000140 .long 0x20000140 + 8324: 200001a0 .long 0x200001a0 + 8328: 200000c0 .long 0x200000c0 + 832c: 0000cfcd .long 0x0000cfcd + 8330: 0000cfd5 .long 0x0000cfd5 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +00008334 : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 8334: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 8336: 3817 cmphsi r0, 24 + 8338: 0827 bt 0x8386 // 8386 + return 0x01; + } + + switch(state){ + 833a: 3942 cmpnei r1, 2 + 833c: 0c13 bf 0x8362 // 8362 + 833e: 3943 cmpnei r1, 3 + 8340: 0c15 bf 0x836a // 836a + 8342: 3941 cmpnei r1, 1 + 8344: 0807 bt 0x8352 // 8352 + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 8346: 1072 lrw r3, 0x20000140 // 838c + 8348: 600c addu r0, r3 + 834a: 3300 movi r3, 0 + 834c: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 834e: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 8350: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 8352: 1070 lrw r3, 0x200001a0 // 8390 + 8354: 3201 movi r2, 1 + 8356: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 8358: 3000 movi r0, 0 + 835a: 104f lrw r2, 0x200000c0 // 8394 + 835c: 9240 ld.w r2, (r2, 0x0) + 835e: b348 st.w r2, (r3, 0x20) + + return 0; +} + 8360: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 8362: 106b lrw r3, 0x20000140 // 838c + 8364: 600c addu r0, r3 + 8366: 3300 movi r3, 0 + 8368: 07f3 br 0x834e // 834e + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 836a: 1069 lrw r3, 0x20000140 // 838c + 836c: 600c addu r0, r3 + 836e: 3218 movi r2, 24 + 8370: 6080 addu r2, r0 + 8372: 8280 ld.b r4, (r2, 0x0) + 8374: 31ff movi r1, 255 + 8376: 3300 movi r3, 0 + 8378: 6452 cmpne r4, r1 + 837a: 2b00 subi r3, 1 + 837c: 0c03 bf 0x8382 // 8382 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 837e: a260 st.b r3, (r2, 0x0) + 8380: 07e8 br 0x8350 // 8350 + 8382: 3300 movi r3, 0 + 8384: 07fd br 0x837e // 837e + return 0x01; + 8386: 3001 movi r0, 1 + 8388: 07ec br 0x8360 // 8360 + 838a: 0000 bkpt + 838c: 20000140 .long 0x20000140 + 8390: 200001a0 .long 0x200001a0 + 8394: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_LED_Init: + +00008398 : +void TM1812_LED_Init(void){ + 8398: 14d0 push r15 + 839a: 1426 subi r14, r14, 24 + SIO_DeInit(); + 839c: e3ffe39a bsr 0x4ad0 // 4ad0 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 83a0: 3001 movi r0, 1 + 83a2: e3ffe3a7 bsr 0x4af0 // 4af0 + SIO_TX_Init(SIOCLK_EN,9); // + 83a6: 3109 movi r1, 9 + 83a8: 3001 movi r0, 1 + 83aa: e3ffe3d3 bsr 0x4b50 // 4b50 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 83ae: 3303 movi r3, 3 + 83b0: b865 st.w r3, (r14, 0x14) + 83b2: 330f movi r3, 15 + 83b4: b864 st.w r3, (r14, 0x10) + 83b6: 33a0 movi r3, 160 + 83b8: 4366 lsli r3, r3, 6 + 83ba: b863 st.w r3, (r14, 0xc) + 83bc: 33a0 movi r3, 160 + 83be: 4363 lsli r3, r3, 3 + 83c0: b862 st.w r3, (r14, 0x8) + 83c2: 3300 movi r3, 0 + 83c4: b861 st.w r3, (r14, 0x4) + 83c6: b860 st.w r3, (r14, 0x0) + 83c8: 3207 movi r2, 7 + 83ca: 3317 movi r3, 23 + 83cc: 3100 movi r1, 0 + 83ce: 3002 movi r0, 2 + 83d0: e3ffe3c8 bsr 0x4b60 // 4b60 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 83d4: 32e8 movi r2, 232 + 83d6: 3100 movi r1, 0 + 83d8: 1005 lrw r0, 0x20000140 // 83ec + 83da: e3ffdee1 bsr 0x419c // 419c <__memset_fast> + RLY_CTRL_EN; //继电器使能 + 83de: 3101 movi r1, 1 + 83e0: 3017 movi r0, 23 + 83e2: e3ffffa9 bsr 0x8334 // 8334 +} + 83e6: 1406 addi r14, r14, 24 + 83e8: 1490 pop r15 + 83ea: 0000 bkpt + 83ec: 20000140 .long 0x20000140 + +Disassembly of section .text.HT1621_WR_Data: + +000083f0 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 83f0: 14d4 push r4-r7, r15 + 83f2: 6d43 mov r5, r0 + 83f4: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 83fe: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 8400: 3101 movi r1, 1 + 8402: 9600 ld.w r0, (r6, 0x0) + 8404: e3ffe2ee bsr 0x49e0 // 49e0 + nop; + 8408: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 840a: 74d6 sextb r3, r5 + 840c: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 840e: 3104 movi r1, 4 + 8410: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 8412: 0c0d bf 0x842c // 842c + HT1621_DATA_HIGH; + 8414: e3ffe2e2 bsr 0x49d8 // 49d8 + nop; + 8418: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 841a: 3101 movi r1, 1 + 841c: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 841e: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 8426: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 842c: e3ffe2da bsr 0x49e0 // 49e0 + 8430: 07f4 br 0x8418 // 8418 + 8432: 0000 bkpt + 8434: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +00008438 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 8438: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 843a: 108b lrw r4, 0x2000004c // 8464 +{ + 843c: 6d43 mov r5, r0 + HT1621_CS_LOW; + 843e: 310f movi r1, 15 + 8440: 9400 ld.w r0, (r4, 0x0) + 8442: e3ffe2cf bsr 0x49e0 // 49e0 + nop; + 8446: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 8448: 3104 movi r1, 4 + 844a: 3080 movi r0, 128 + 844c: e3ffffd2 bsr 0x83f0 // 83f0 + HT1621_WR_Data(cmd,8); + 8450: 6c17 mov r0, r5 + 8452: 3108 movi r1, 8 + 8454: e3ffffce bsr 0x83f0 // 83f0 + HT1621_CS_HIGH; + 8458: 9400 ld.w r0, (r4, 0x0) + 845a: 310f movi r1, 15 + 845c: e3ffe2be bsr 0x49d8 // 49d8 + nop; + 8460: 6c03 mov r0, r0 +} + 8462: 1492 pop r4-r5, r15 + 8464: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00008468 : +void HT1621_Init(void){ + 8468: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 846a: 118b lrw r4, 0x2000004c // 8514 + memset(&HT1621,0,sizeof(HT1621_t)); + 846c: 3240 movi r2, 64 + 846e: 3100 movi r1, 0 + 8470: 110a lrw r0, 0x20000590 // 8518 + 8472: e3ffde95 bsr 0x419c // 419c <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 8476: 9400 ld.w r0, (r4, 0x0) + 8478: 3200 movi r2, 0 + 847a: 3100 movi r1, 0 + 847c: e3ffe0f2 bsr 0x4660 // 4660 + GPIO_Init(GPIOA0,1,Output); + 8480: 9400 ld.w r0, (r4, 0x0) + 8482: 3200 movi r2, 0 + 8484: 3101 movi r1, 1 + 8486: e3ffe0ed bsr 0x4660 // 4660 + GPIO_Init(GPIOA0,15,Output); + 848a: 9400 ld.w r0, (r4, 0x0) + 848c: 3200 movi r2, 0 + 848e: 310f movi r1, 15 + 8490: e3ffe0e8 bsr 0x4660 // 4660 + GPIO_Init(GPIOA0,4,Output); + 8494: 3200 movi r2, 0 + 8496: 9400 ld.w r0, (r4, 0x0) + 8498: 3104 movi r1, 4 + 849a: e3ffe0e3 bsr 0x4660 // 4660 + GPIO_DriveStrength_EN(GPIOA0,0); + 849e: 9400 ld.w r0, (r4, 0x0) + 84a0: 3100 movi r1, 0 + 84a2: e3ffe159 bsr 0x4754 // 4754 + GPIO_DriveStrength_EN(GPIOA0,1); + 84a6: 9400 ld.w r0, (r4, 0x0) + 84a8: 3101 movi r1, 1 + 84aa: e3ffe155 bsr 0x4754 // 4754 + GPIO_DriveStrength_EN(GPIOA0,15); + 84ae: 9400 ld.w r0, (r4, 0x0) + 84b0: 310f movi r1, 15 + 84b2: e3ffe151 bsr 0x4754 // 4754 + GPIO_DriveStrength_EN(GPIOA0,4); + 84b6: 9400 ld.w r0, (r4, 0x0) + 84b8: 3104 movi r1, 4 + 84ba: e3ffe14d bsr 0x4754 // 4754 + HT1621_CS_LOW; + 84be: 9400 ld.w r0, (r4, 0x0) + 84c0: 310f movi r1, 15 + 84c2: e3ffe28f bsr 0x49e0 // 49e0 + HT1621_WR_LOW; + 84c6: 9400 ld.w r0, (r4, 0x0) + 84c8: 3101 movi r1, 1 + 84ca: e3ffe28b bsr 0x49e0 // 49e0 + HT1621_RD_LOW; + 84ce: 9400 ld.w r0, (r4, 0x0) + 84d0: 3100 movi r1, 0 + 84d2: e3ffe287 bsr 0x49e0 // 49e0 + HT1621_DATA_LOW; + 84d6: 3104 movi r1, 4 + 84d8: 9400 ld.w r0, (r4, 0x0) + 84da: e3ffe283 bsr 0x49e0 // 49e0 + HT1621_WR_CMD(HT1621_BIAS); + 84de: 3052 movi r0, 82 + 84e0: e3ffffac bsr 0x8438 // 8438 + HT1621_WR_CMD(HT1621_RC256); + 84e4: 3030 movi r0, 48 + 84e6: e3ffffa9 bsr 0x8438 // 8438 + HT1621_WR_CMD(HT1621_SYSDIS); + 84ea: 3000 movi r0, 0 + 84ec: e3ffffa6 bsr 0x8438 // 8438 + HT1621_WR_CMD(HT1621_WDTDIS); + 84f0: 300a movi r0, 10 + 84f2: e3ffffa3 bsr 0x8438 // 8438 + HT1621_WR_CMD(HT1621_SYSEN); + 84f6: 3002 movi r0, 2 + 84f8: e3ffffa0 bsr 0x8438 // 8438 + HT1621_WR_CMD(HT1621_LCDON); + 84fc: 3006 movi r0, 6 + 84fe: e3ffff9d bsr 0x8438 // 8438 + HT1621_WR_CMD(HT1621_BIOFF); + 8502: 3010 movi r0, 16 + 8504: e3ffff9a bsr 0x8438 // 8438 + HT1621_CS_HIGH; + 8508: 9400 ld.w r0, (r4, 0x0) + 850a: 310f movi r1, 15 + 850c: e3ffe266 bsr 0x49d8 // 49d8 +} + 8510: 1491 pop r4, r15 + 8512: 0000 bkpt + 8514: 2000004c .long 0x2000004c + 8518: 20000590 .long 0x20000590 + +Disassembly of section .text.HT1621_Clear: + +0000851c : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 851c: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 851e: 3214 movi r2, 20 + 8520: 3100 movi r1, 0 + + HT1621_CS_LOW; + 8522: 10b1 lrw r5, 0x2000004c // 8564 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 8524: 1011 lrw r0, 0x2000059c // 8568 + 8526: e3ffde3b bsr 0x419c // 419c <__memset_fast> + HT1621_CS_LOW; + 852a: 310f movi r1, 15 + 852c: 9500 ld.w r0, (r5, 0x0) + 852e: e3ffe259 bsr 0x49e0 // 49e0 + nop; + 8532: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 8534: 3103 movi r1, 3 + 8536: 30a0 movi r0, 160 + 8538: e3ffff5c bsr 0x83f0 // 83f0 + HT1621_WR_Data(0,6); + 853c: 3106 movi r1, 6 + 853e: 3000 movi r0, 0 + 8540: e3ffff58 bsr 0x83f0 // 83f0 + 8544: 3414 movi r4, 20 + 8546: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 8556: 9500 ld.w r0, (r5, 0x0) + 8558: 310f movi r1, 15 + 855a: e3ffe23f bsr 0x49d8 // 49d8 + nop; + 855e: 6c03 mov r0, r0 +} + 8560: 1492 pop r4-r5, r15 + 8562: 0000 bkpt + 8564: 2000004c .long 0x2000004c + 8568: 2000059c .long 0x2000059c + +Disassembly of section .text.HT1621_ALLON: + +0000856c : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 856c: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 856e: 10af lrw r5, 0x2000004c // 85a8 + 8570: 310f movi r1, 15 + 8572: 9500 ld.w r0, (r5, 0x0) + 8574: e3ffe236 bsr 0x49e0 // 49e0 + nop; + 8578: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 857a: 3103 movi r1, 3 + 857c: 30a0 movi r0, 160 + 857e: e3ffff39 bsr 0x83f0 // 83f0 + HT1621_WR_Data(0,6); + 8582: 3106 movi r1, 6 + 8584: 3000 movi r0, 0 + 8586: e3ffff35 bsr 0x83f0 // 83f0 + 858a: 3414 movi r4, 20 + 858c: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 859c: 9500 ld.w r0, (r5, 0x0) + 859e: 310f movi r1, 15 + 85a0: e3ffe21c bsr 0x49d8 // 49d8 + nop; + 85a4: 6c03 mov r0, r0 +} + 85a6: 1492 pop r4-r5, r15 + 85a8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +000085ac : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 85ac: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 85ae: 1091 lrw r4, 0x2000004c // 85f0 + 85b0: 310f movi r1, 15 + 85b2: 9400 ld.w r0, (r4, 0x0) + 85b4: e3ffe216 bsr 0x49e0 // 49e0 + nop; + 85b8: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 85ba: 3103 movi r1, 3 + 85bc: 30a0 movi r0, 160 + 85be: e3ffff19 bsr 0x83f0 // 83f0 + HT1621_WR_Data(0,6); + 85c2: 3106 movi r1, 6 + 85c4: 3000 movi r0, 0 + 85c6: e3ffff15 bsr 0x83f0 // 83f0 + 85ca: 3500 movi r5, 0 + for(U8_T i=0;i + 85ce: 60d4 addu r3, r5 + 85d0: 830c ld.b r0, (r3, 0xc) + 85d2: 4004 lsli r0, r0, 4 + 85d4: 7400 zextb r0, r0 + 85d6: 3104 movi r1, 4 + 85d8: 2500 addi r5, 1 + 85da: e3ffff0b bsr 0x83f0 // 83f0 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 85e2: 9400 ld.w r0, (r4, 0x0) + 85e4: 310f movi r1, 15 + 85e6: e3ffe1f9 bsr 0x49d8 // 49d8 + nop; + 85ea: 6c03 mov r0, r0 +} + 85ec: 1492 pop r4-r5, r15 + 85ee: 0000 bkpt + 85f0: 2000004c .long 0x2000004c + 85f4: 20000590 .long 0x20000590 + +Disassembly of section .text.Set_Temperature_Display: + +000085f8 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 85f8: 14d4 push r4-r7, r15 + 85fa: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 85fc: 1170 lrw r3, 0x20000835 // 86bc + 85fe: 8368 ld.b r3, (r3, 0x8) + 8600: 3b40 cmpnei r3, 0 +{ + 8602: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 8604: b861 st.w r3, (r14, 0x4) + 8606: 0845 bt 0x8690 // 8690 + tmp_Integer = tmp/10; + 8608: 310a movi r1, 10 + 860a: e3ffed97 bsr 0x6138 // 6138 <__udivsi3> + 860e: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 8610: 310a movi r1, 10 + 8612: 6c13 mov r0, r4 + 8614: e3ffedb6 bsr 0x6180 // 6180 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 8618: 118a lrw r4, 0x20000590 // 86c0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 861a: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 861c: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 861e: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 8620: 8476 ld.b r3, (r4, 0x16) + 8622: 68d4 and r3, r5 + 8624: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 8626: 8474 ld.b r3, (r4, 0x14) + 8628: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 862a: 310a movi r1, 10 + 862c: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 862e: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 8630: e3ffed84 bsr 0x6138 // 6138 <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 8634: 11e4 lrw r7, 0xcc46 // 86c4 + 8636: 7400 zextb r0, r0 + 8638: 601c addu r0, r7 + 863a: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 863c: 8458 ld.b r2, (r4, 0x18) + 863e: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 8640: 6c07 mov r0, r1 + 8642: 350f movi r5, 15 + 8644: 6814 and r0, r5 + 8646: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 8648: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 864a: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 864c: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 864e: 6c1b mov r0, r6 + 8650: 310a movi r1, 10 + 8652: e3ffed97 bsr 0x6180 // 6180 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 8656: 7400 zextb r0, r0 + 8658: 601c addu r0, r7 + 865a: 8040 ld.b r2, (r0, 0x0) + 865c: 6c4b mov r1, r2 + 865e: 6854 and r1, r5 + 8660: 9862 ld.w r3, (r14, 0x8) + 8662: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 8664: 9860 ld.w r3, (r14, 0x0) + 8666: 61cc addu r7, r3 + 8668: 8760 ld.b r3, (r7, 0x0) + 866a: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 866c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 866e: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 8670: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 8672: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 8674: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 8676: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 8678: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 867a: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 867c: 6d48 or r5, r2 + 867e: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 8680: 081a bt 0x86b4 // 86b4 + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 8682: 3ba1 bseti r3, 1 + 8684: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 8686: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 8688: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 868a: a4b4 st.b r5, (r4, 0x14) +} + 868c: 1404 addi r14, r14, 16 + 868e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 8690: 3012 movi r0, 18 + 8692: 7c10 mult r0, r4 + 8694: 310a movi r1, 10 + 8696: 34a0 movi r4, 160 + 8698: e3ffed3e bsr 0x6114 // 6114 <__divsi3> + 869c: 4481 lsli r4, r4, 1 + 869e: 6100 addu r4, r0 + 86a0: 310a movi r1, 10 + 86a2: 6c13 mov r0, r4 + 86a4: e3ffed38 bsr 0x6114 // 6114 <__divsi3> + 86a8: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 86aa: 310a movi r1, 10 + 86ac: 6c13 mov r0, r4 + 86ae: e3ffed57 bsr 0x615c // 615c <__modsi3> + 86b2: 07b3 br 0x8618 // 8618 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 86b4: 3ba2 bseti r3, 2 + 86b6: 3ba3 bseti r3, 3 + 86b8: 07e7 br 0x8686 // 8686 + 86ba: 0000 bkpt + 86bc: 20000835 .long 0x20000835 + 86c0: 20000590 .long 0x20000590 + 86c4: 0000cc46 .long 0x0000cc46 + +Disassembly of section .text.Local_Temperature_Display: + +000086c8 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 86c8: 14d4 push r4-r7, r15 + 86ca: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 86cc: 1170 lrw r3, 0x20000835 // 878c + 86ce: 8368 ld.b r3, (r3, 0x8) + 86d0: 3b40 cmpnei r3, 0 +{ + 86d2: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 86d4: b861 st.w r3, (r14, 0x4) + 86d6: 0845 bt 0x8760 // 8760 + tmp_Integer = tmp/10; + 86d8: 310a movi r1, 10 + 86da: e3ffed2f bsr 0x6138 // 6138 <__udivsi3> + 86de: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 86e0: 310a movi r1, 10 + 86e2: 6c13 mov r0, r4 + 86e4: e3ffed4e bsr 0x6180 // 6180 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 86e8: 118a lrw r4, 0x20000590 // 8790 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 86ea: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 86ec: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 86ee: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 86f0: 847d ld.b r3, (r4, 0x1d) + 86f2: 68d4 and r3, r5 + 86f4: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 86f6: 847b ld.b r3, (r4, 0x1b) + 86f8: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 86fa: 310a movi r1, 10 + 86fc: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 86fe: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 8700: e3ffed1c bsr 0x6138 // 6138 <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8704: 11e4 lrw r7, 0xcc46 // 8794 + 8706: 7400 zextb r0, r0 + 8708: 601c addu r0, r7 + 870a: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 870c: 845f ld.b r2, (r4, 0x1f) + 870e: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8710: 6c07 mov r0, r1 + 8712: 350f movi r5, 15 + 8714: 6814 and r0, r5 + 8716: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 8718: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 871a: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 871c: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 871e: 6c1b mov r0, r6 + 8720: 310a movi r1, 10 + 8722: e3ffed2f bsr 0x6180 // 6180 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 8726: 7400 zextb r0, r0 + 8728: 601c addu r0, r7 + 872a: 8040 ld.b r2, (r0, 0x0) + 872c: 6c4b mov r1, r2 + 872e: 6854 and r1, r5 + 8730: 9862 ld.w r3, (r14, 0x8) + 8732: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8734: 9860 ld.w r3, (r14, 0x0) + 8736: 61cc addu r7, r3 + 8738: 8760 ld.b r3, (r7, 0x0) + 873a: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 873c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 873e: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8740: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 8742: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 8744: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 8746: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8748: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 874a: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 874c: 6d48 or r5, r2 + 874e: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 8750: 081a bt 0x8784 // 8784 + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 8752: 3ba1 bseti r3, 1 + 8754: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 8756: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 8758: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 875a: a4bb st.b r5, (r4, 0x1b) +} + 875c: 1404 addi r14, r14, 16 + 875e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 8760: 3012 movi r0, 18 + 8762: 7c10 mult r0, r4 + 8764: 310a movi r1, 10 + 8766: 34a0 movi r4, 160 + 8768: e3ffecd6 bsr 0x6114 // 6114 <__divsi3> + 876c: 4481 lsli r4, r4, 1 + 876e: 6100 addu r4, r0 + 8770: 310a movi r1, 10 + 8772: 6c13 mov r0, r4 + 8774: e3ffecd0 bsr 0x6114 // 6114 <__divsi3> + 8778: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 877a: 310a movi r1, 10 + 877c: 6c13 mov r0, r4 + 877e: e3ffecef bsr 0x615c // 615c <__modsi3> + 8782: 07b3 br 0x86e8 // 86e8 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 8784: 3ba2 bseti r3, 2 + 8786: 3ba3 bseti r3, 3 + 8788: 07e7 br 0x8756 // 8756 + 878a: 0000 bkpt + 878c: 20000835 .long 0x20000835 + 8790: 20000590 .long 0x20000590 + 8794: 0000cc46 .long 0x0000cc46 + +Disassembly of section .text.Control_Mode: + +00008798 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 8798: 14d1 push r4, r15 + switch(mode){ + 879a: 3806 cmphsi r0, 7 + 879c: 0823 bt 0x87e2 // 87e2 + 879e: e3ffd6c7 bsr 0x352c // 352c <___gnu_csky_case_uhi> + 87a2: 0007 .short 0x0007 + 87a4: 005a0020 .long 0x005a0020 + 87a8: 009a0020 .long 0x009a0020 + 87ac: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 87b0: 0376 lrw r3, 0x20000835 // 89d4 + 87b2: 8349 ld.b r2, (r3, 0x9) + 87b4: 3a40 cmpnei r2, 0 + 87b6: 0376 lrw r3, 0x20000590 // 89d8 + 87b8: 0816 bt 0x87e4 // 87e4 + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 87ba: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 87bc: 830e ld.b r0, (r3, 0xe) + 87be: 6811 andn r0, r4 + 87c0: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 87c2: 830f ld.b r0, (r3, 0xf) + 87c4: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 87c6: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 87c8: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 87ca: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 87cc: 3982 bclri r1, 2 + 87ce: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 87d0: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 87d2: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 87d4: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 87d6: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 87d8: 39a2 bseti r1, 2 + 87da: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 87dc: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 87de: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 87e0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 87e2: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 87e4: 3a41 cmpnei r2, 1 + 87e6: 0812 bt 0x880a // 880a + HT1621.show_cache[1] &= ~0x07; + 87e8: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 87ea: 830e ld.b r0, (r3, 0xe) + 87ec: 6811 andn r0, r4 + 87ee: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 87f0: 830f ld.b r0, (r3, 0xf) + 87f2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 87f4: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 87f6: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 87f8: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 87fa: 3982 bclri r1, 2 + 87fc: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 87fe: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 8800: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 8802: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 8804: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 8806: 39a2 bseti r1, 2 + 8808: 07ea br 0x87dc // 87dc + else if(Debug_Inf.Language_Selection == 0x02) + 880a: 3a42 cmpnei r2, 2 + 880c: 0812 bt 0x8830 // 8830 + HT1621.show_cache[1] &= ~0x07; + 880e: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 8810: 830e ld.b r0, (r3, 0xe) + 8812: 6811 andn r0, r4 + 8814: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8816: 830f ld.b r0, (r3, 0xf) + 8818: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 881a: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 881c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 881e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 8820: 3982 bclri r1, 2 + 8822: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 8824: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 8826: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 8828: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 882a: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 882c: 39a3 bseti r1, 3 + 882e: 07d7 br 0x87dc // 87dc + HT1621.show_cache[0] &= ~0x0C; + 8830: 136a lrw r3, 0x20000590 // 89d8 + 8832: 834c ld.b r2, (r3, 0xc) + 8834: 3a82 bclri r2, 2 + 8836: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8838: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 883a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 883c: 834d ld.b r2, (r3, 0xd) + 883e: 6885 andn r2, r1 + 8840: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8842: 834e ld.b r2, (r3, 0xe) + 8844: 6885 andn r2, r1 + 8846: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8848: 834f ld.b r2, (r3, 0xf) + 884a: 6885 andn r2, r1 + 884c: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 884e: 8351 ld.b r2, (r3, 0x11) + 8850: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 8852: a351 st.b r2, (r3, 0x11) +} + 8854: 07c7 br 0x87e2 // 87e2 + if(Debug_Inf.Language_Selection == 0x00) + 8856: 1360 lrw r3, 0x20000835 // 89d4 + 8858: 8349 ld.b r2, (r3, 0x9) + 885a: 3a40 cmpnei r2, 0 + 885c: 127f lrw r3, 0x20000590 // 89d8 + 885e: 0816 bt 0x888a // 888a + HT1621.show_cache[1] &= ~0x07; + 8860: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 8862: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 8864: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 8866: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 8868: 3a82 bclri r2, 2 + 886a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 886c: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 886e: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 8870: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 8872: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 8874: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 8876: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 8878: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 887a: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 887c: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 887e: 39a1 bseti r1, 1 + 8880: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 8882: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 8884: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 8886: a34e st.b r2, (r3, 0xe) + 8888: 07ad br 0x87e2 // 87e2 + else if(Debug_Inf.Language_Selection == 0x01) + 888a: 3a41 cmpnei r2, 1 + 888c: 0812 bt 0x88b0 // 88b0 + HT1621.show_cache[1] &= ~0x07; + 888e: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 8890: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 8892: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 8894: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 8896: 3a82 bclri r2, 2 + 8898: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 889a: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 889c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 889e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 88a0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 88a2: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 88a4: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 88a6: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 88a8: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 88aa: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 88ac: 39a1 bseti r1, 1 + 88ae: 07ea br 0x8882 // 8882 + else if(Debug_Inf.Language_Selection == 0x02) + 88b0: 3a42 cmpnei r2, 2 + 88b2: 0bbf bt 0x8830 // 8830 + HT1621.show_cache[1] &= ~0x07; + 88b4: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 88b6: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 88b8: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 88ba: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 88bc: 3a82 bclri r2, 2 + 88be: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 88c0: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 88c2: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 88c4: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 88c6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 88c8: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 88ca: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 88cc: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 88ce: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 88d0: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 88d2: 39a2 bseti r1, 2 + 88d4: 07d7 br 0x8882 // 8882 + if(Debug_Inf.Language_Selection == 0x00) + 88d6: 1260 lrw r3, 0x20000835 // 89d4 + 88d8: 8349 ld.b r2, (r3, 0x9) + 88da: 3a40 cmpnei r2, 0 + 88dc: 117f lrw r3, 0x20000590 // 89d8 + 88de: 0816 bt 0x890a // 890a + HT1621.show_cache[0] &= ~0x0C; + 88e0: 834c ld.b r2, (r3, 0xc) + 88e2: 3a82 bclri r2, 2 + 88e4: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 88e6: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 88e8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 88ea: 834d ld.b r2, (r3, 0xd) + 88ec: 6881 andn r2, r0 + 88ee: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 88f0: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 88f2: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 88f4: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 88f6: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 88f8: 8311 ld.b r0, (r3, 0x11) + 88fa: 3880 bclri r0, 0 + 88fc: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 88fe: 39a1 bseti r1, 1 + 8900: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 8902: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 8904: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 8906: a34f st.b r2, (r3, 0xf) + 8908: 076d br 0x87e2 // 87e2 + else if(Debug_Inf.Language_Selection == 0x01) + 890a: 3a41 cmpnei r2, 1 + 890c: 0812 bt 0x8930 // 8930 + HT1621.show_cache[0] &= ~0x0C; + 890e: 834c ld.b r2, (r3, 0xc) + 8910: 3a82 bclri r2, 2 + 8912: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8914: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 8916: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 8918: 834d ld.b r2, (r3, 0xd) + 891a: 6881 andn r2, r0 + 891c: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 891e: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8920: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 8922: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 8924: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 8926: 8311 ld.b r0, (r3, 0x11) + 8928: 3880 bclri r0, 0 + 892a: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 892c: 39a1 bseti r1, 1 + 892e: 07ea br 0x8902 // 8902 + else if(Debug_Inf.Language_Selection == 0x02) + 8930: 3a42 cmpnei r2, 2 + 8932: 0b7f bt 0x8830 // 8830 + HT1621.show_cache[0] &= ~0x0C; + 8934: 834c ld.b r2, (r3, 0xc) + 8936: 3a82 bclri r2, 2 + 8938: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 893a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 893c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 893e: 834d ld.b r2, (r3, 0xd) + 8940: 6881 andn r2, r0 + 8942: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8944: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8946: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 8948: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 894a: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 894c: 8311 ld.b r0, (r3, 0x11) + 894e: 3880 bclri r0, 0 + 8950: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 8952: 39a2 bseti r1, 2 + 8954: 07d7 br 0x8902 // 8902 + if(Debug_Inf.Language_Selection == 0x00) + 8956: 1160 lrw r3, 0x20000835 // 89d4 + 8958: 8349 ld.b r2, (r3, 0x9) + 895a: 3a40 cmpnei r2, 0 + 895c: 107f lrw r3, 0x20000590 // 89d8 + 895e: 0815 bt 0x8988 // 8988 + HT1621.show_cache[0] &= ~0x0C; + 8960: 834c ld.b r2, (r3, 0xc) + 8962: 3a82 bclri r2, 2 + 8964: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8966: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 8968: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 896a: 834d ld.b r2, (r3, 0xd) + 896c: 6881 andn r2, r0 + 896e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8970: 834e ld.b r2, (r3, 0xe) + 8972: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 8974: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 8976: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8978: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 897a: 8351 ld.b r2, (r3, 0x11) + 897c: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 897e: 39a1 bseti r1, 1 + 8980: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 8982: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 8984: 3aa0 bseti r2, 0 + 8986: 0766 br 0x8852 // 8852 + else if(Debug_Inf.Language_Selection == 0x01) + 8988: 3a41 cmpnei r2, 1 + 898a: 0812 bt 0x89ae // 89ae + HT1621.show_cache[0] &= ~0x0C; + 898c: 834c ld.b r2, (r3, 0xc) + 898e: 3a82 bclri r2, 2 + 8990: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8992: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 8994: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 8996: 834d ld.b r2, (r3, 0xd) + 8998: 6881 andn r2, r0 + 899a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 899c: 834e ld.b r2, (r3, 0xe) + 899e: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 89a0: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 89a2: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 89a4: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 89a6: 8351 ld.b r2, (r3, 0x11) + 89a8: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 89aa: 39a1 bseti r1, 1 + 89ac: 07eb br 0x8982 // 8982 + else if(Debug_Inf.Language_Selection == 0x02) + 89ae: 3a42 cmpnei r2, 2 + 89b0: 0b40 bt 0x8830 // 8830 + HT1621.show_cache[0] &= ~0x0C; + 89b2: 834c ld.b r2, (r3, 0xc) + 89b4: 3a82 bclri r2, 2 + 89b6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 89b8: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 89ba: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 89bc: 834d ld.b r2, (r3, 0xd) + 89be: 6881 andn r2, r0 + 89c0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 89c2: 834e ld.b r2, (r3, 0xe) + 89c4: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 89c6: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 89c8: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 89ca: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 89cc: 8351 ld.b r2, (r3, 0x11) + 89ce: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 89d0: 39a2 bseti r1, 2 + 89d2: 07d8 br 0x8982 // 8982 + 89d4: 20000835 .long 0x20000835 + 89d8: 20000590 .long 0x20000590 + +Disassembly of section .text.Control_wind_velocity: + +000089dc : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 89dc: 14d2 push r4-r5, r15 + switch(velocity) + 89de: 3804 cmphsi r0, 5 + 89e0: 0815 bt 0x8a0a // 8a0a + 89e2: 1172 lrw r3, 0x20000590 // 8aa8 + 89e4: e3ffd58c bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 89e8: 20120333 .long 0x20120333 + 89ec: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 89ee: 8351 ld.b r2, (r3, 0x11) + 89f0: 310e movi r1, 14 + 89f2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 89f4: 300f movi r0, 15 + 89f6: 8330 ld.b r1, (r3, 0x10) + 89f8: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 89fa: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 89fc: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 89fe: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 8a00: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 8a02: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 8a04: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 8a06: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 8a08: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 8a0a: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 8a0c: 310e movi r1, 14 + 8a0e: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 8a10: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 8a12: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 8a14: 8330 ld.b r1, (r3, 0x10) + 8a16: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 8a18: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 8a1a: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 8a1c: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 8a1e: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 8a20: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 8a22: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 8a24: 3aa3 bseti r2, 3 + 8a26: 07f1 br 0x8a08 // 8a08 + HT1621.show_cache[5] &= ~0x0E; + 8a28: 310e movi r1, 14 + 8a2a: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 8a2c: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 8a2e: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 8a30: 8330 ld.b r1, (r3, 0x10) + 8a32: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 8a34: 300e movi r0, 14 + 8a36: 07f2 br 0x8a1a // 8a1a + HT1621.show_cache[4] &= ~0x0F; + 8a38: 8350 ld.b r2, (r3, 0x10) + 8a3a: 310f movi r1, 15 + 8a3c: 6885 andn r2, r1 + 8a3e: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 8a40: 310e movi r1, 14 + 8a42: 8351 ld.b r2, (r3, 0x11) + 8a44: 6885 andn r2, r1 + 8a46: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 8a48: 834f ld.b r2, (r3, 0xf) + 8a4a: 3a83 bclri r2, 3 + 8a4c: 07de br 0x8a08 // 8a08 + HT1621.show_cache[4] &= ~0x0F; + 8a4e: 8330 ld.b r1, (r3, 0x10) + 8a50: 320f movi r2, 15 + 8a52: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 8a54: 300e movi r0, 14 + 8a56: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 8a58: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 8a5a: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 8a5c: 3408 movi r4, 8 + 8a5e: 6c17 mov r0, r5 + 8a60: 6c10 or r0, r4 + 8a62: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 8a64: 6c07 mov r0, r1 + 8a66: 38a0 bseti r0, 0 + 8a68: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 8a6a: 8303 ld.b r0, (r3, 0x3) + 8a6c: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 8a6e: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 8a70: 0804 bt 0x8a78 // 8a78 + HT1621.show_cache[3] &= ~0x08; + 8a72: 3d83 bclri r5, 3 + 8a74: a3af st.b r5, (r3, 0xf) + 8a76: 07ca br 0x8a0a // 8a0a + }else if(HT1621.wind_velocity == 0) //低风速 + 8a78: 3840 cmpnei r0, 0 + 8a7a: 0807 bt 0x8a88 // 8a88 + HT1621.show_cache[4] |= 0x08; + 8a7c: 39a0 bseti r1, 0 + 8a7e: 39a3 bseti r1, 3 + 8a80: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 8a82: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 8a84: a351 st.b r2, (r3, 0x11) +} + 8a86: 07c2 br 0x8a0a // 8a0a + }else if(HT1621.wind_velocity == 1) //中风速 + 8a88: 3841 cmpnei r0, 1 + 8a8a: 0807 bt 0x8a98 // 8a98 + HT1621.show_cache[4] |= 0x0C; + 8a8c: 300d movi r0, 13 + 8a8e: 6c40 or r1, r0 + 8a90: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 8a92: 3aa2 bseti r2, 2 + 8a94: 3aa3 bseti r2, 3 + 8a96: 07f7 br 0x8a84 // 8a84 + }else if(HT1621.wind_velocity == 2) //高风速 + 8a98: 3842 cmpnei r0, 2 + 8a9a: 0bb8 bt 0x8a0a // 8a0a + HT1621.show_cache[4] |= 0x0E; + 8a9c: 300f movi r0, 15 + 8a9e: 6c40 or r1, r0 + 8aa0: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 8aa2: 310e movi r1, 14 + 8aa4: 6c84 or r2, r1 + 8aa6: 07ef br 0x8a84 // 8a84 + 8aa8: 20000590 .long 0x20000590 + +Disassembly of section .text.Control_Prompt_Text: + +00008aac : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 8aac: 14c4 push r4-r7 + 8aae: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 8ab0: 1167 lrw r3, 0x20000590 // 8b4c + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 8ab2: 83d6 ld.b r6, (r3, 0x16) + 8ab4: 3e80 bclri r6, 0 + 8ab6: 7598 zextb r6, r6 + 8ab8: b8c0 st.w r6, (r14, 0x0) + 8aba: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 8abe: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 8ac0: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8ac2: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8ac4: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 8ac6: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 8ac8: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 8aca: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 8acc: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8ace: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8ad0: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 8ad2: 3a80 bclri r2, 0 + 8ad4: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 8ad6: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 8ad8: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 8ada: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8adc: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8ade: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 8ae0: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 8ae2: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 8ae4: 7598 zextb r6, r6 + + if(state == 0x00) + 8ae6: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 8ae8: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8aea: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8aec: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 8aee: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 8af0: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 8af2: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 8af4: 0814 bt 0x8b1c // 8b1c + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 8af6: 3008 movi r0, 8 + 8af8: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 8afa: 3aa0 bseti r2, 0 + 8afc: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 8afe: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 8b00: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 8b02: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b04: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 8b06: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 8b08: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 8b0a: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b0c: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 8b0e: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 8b10: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 8b12: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b14: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 8b16: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 8b18: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 8b1a: 040b br 0x8b30 // 8b30 + else if(state == 0x01){ + 8b1c: 3841 cmpnei r0, 1 + 8b1e: 080b bt 0x8b34 // 8b34 + HT1621.show_cache[0] |= 0x01; //模式 + 8b20: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 8b22: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 8b24: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 8b26: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 8b28: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 8b2a: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 8b2c: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 8b2e: a33f st.b r1, (r3, 0x1f) +} + 8b30: 1401 addi r14, r14, 4 + 8b32: 1484 pop r4-r7 + }else if(state == 0x02){ + 8b34: 3842 cmpnei r0, 2 + 8b36: 0bfd bt 0x8b30 // 8b30 + HT1621.show_cache[0] |= 0x02; //模式 + 8b38: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b3a: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 8b3c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b3e: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 8b40: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b42: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 8b44: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 8b46: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 8b48: 6d84 or r6, r1 + 8b4a: 07e7 br 0x8b18 // 8b18 + 8b4c: 20000590 .long 0x20000590 + +Disassembly of section .text.Controlled_Buzzer: + +00008b50 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 8b50: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 8b52: 3841 cmpnei r0, 1 + 8b54: 0c0a bf 0x8b68 // 8b68 + 8b56: 3840 cmpnei r0, 0 + 8b58: 0c04 bf 0x8b60 // 8b60 + 8b5a: 3842 cmpnei r0, 2 + 8b5c: 0c12 bf 0x8b80 // 8b80 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 8b5e: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 8b60: 3010 movi r0, 16 + 8b62: e3fffc6b bsr 0x8438 // 8438 + break; + 8b66: 07fc br 0x8b5e // 8b5e + HT1621_WR_CMD(HT1621_BLON); + 8b68: 3012 movi r0, 18 + 8b6a: e3fffc67 bsr 0x8438 // 8438 + HT1621.buz_control = 0x01; + 8b6e: 1069 lrw r3, 0x20000590 // 8b90 + 8b70: 3220 movi r2, 32 + 8b72: 608c addu r2, r3 + 8b74: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 8b76: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 8b78: 1047 lrw r2, 0x200000c0 // 8b94 + 8b7a: 9240 ld.w r2, (r2, 0x0) + 8b7c: b34e st.w r2, (r3, 0x38) +} + 8b7e: 07f0 br 0x8b5e // 8b5e + HT1621_WR_CMD(HT1621_BLON); + 8b80: 3012 movi r0, 18 + 8b82: e3fffc5b bsr 0x8438 // 8438 + HT1621.buz_control = 0x02; + 8b86: 1063 lrw r3, 0x20000590 // 8b90 + 8b88: 3220 movi r2, 32 + 8b8a: 608c addu r2, r3 + 8b8c: 3102 movi r1, 2 + 8b8e: 07f4 br 0x8b76 // 8b76 + 8b90: 20000590 .long 0x20000590 + 8b94: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00008b98 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 8b98: 14d0 push r15 + switch (state) { + 8b9a: 3840 cmpnei r0, 0 + 8b9c: 0c04 bf 0x8ba4 // 8ba4 + 8b9e: 3841 cmpnei r0, 1 + 8ba0: 0c16 bf 0x8bcc // 8bcc + + } + break; + + } +} + 8ba2: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 8ba4: 1172 lrw r3, 0x200001a0 // 8c6c + 8ba6: 8359 ld.b r2, (r3, 0x19) + 8ba8: 3a41 cmpnei r2, 1 + 8baa: 0bfc bt 0x8ba2 // 8ba2 + tm1812_param.LCD_blaklingt_flag = 0x00; + 8bac: 3200 movi r2, 0 + 8bae: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8bb0: 3100 movi r1, 0 + 8bb2: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8bb4: e3fffb76 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 8bb8: 3100 movi r1, 0 + 8bba: 3001 movi r0, 1 + 8bbc: e3fffb72 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8bc0: 3100 movi r1, 0 + 8bc2: 3002 movi r0, 2 + 8bc4: e3fffb6e bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8bc8: 3100 movi r1, 0 + 8bca: 0437 br 0x8c38 // 8c38 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 8bcc: 1128 lrw r1, 0x200001a0 // 8c6c + 8bce: 8179 ld.b r3, (r1, 0x19) + 8bd0: 3b40 cmpnei r3, 0 + 8bd2: 0be8 bt 0x8ba2 // 8ba2 + tm1812_param.LCD_blaklingt_flag = 0x01; + 8bd4: 3301 movi r3, 1 + 8bd6: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8bd8: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 8bda: 1166 lrw r3, 0x2000080c // 8c70 + 8bdc: 8362 ld.b r3, (r3, 0x2) + 8bde: 4379 lsli r3, r3, 25 + 8be0: 4b7d lsri r3, r3, 29 + 8be2: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 8be4: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 8be6: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8be8: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 8bea: 0c1c bf 0x8c22 // 8c22 + 8bec: 3a44 cmpnei r2, 4 + 8bee: 0c2a bf 0x8c42 // 8c42 + 8bf0: 3a40 cmpnei r2, 0 + 8bf2: 0be1 bt 0x8bb4 // 8bb4 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8bf4: e3fffb56 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 8bf8: 31ff movi r1, 255 + 8bfa: 3001 movi r0, 1 + 8bfc: e3fffb52 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8c00: 3100 movi r1, 0 + 8c02: 3002 movi r0, 2 + 8c04: e3fffb4e bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8c08: 3100 movi r1, 0 + 8c0a: 3003 movi r0, 3 + 8c0c: e3fffb4a bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 8c10: 3100 movi r1, 0 + 8c12: 3004 movi r0, 4 + 8c14: e3fffb46 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 8c18: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 8c1a: 3005 movi r0, 5 + 8c1c: e3fffb42 bsr 0x82a0 // 82a0 +} + 8c20: 07c1 br 0x8ba2 // 8ba2 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8c22: e3fffb3f bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 8c26: 31ff movi r1, 255 + 8c28: 3001 movi r0, 1 + 8c2a: e3fffb3b bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8c2e: 3100 movi r1, 0 + 8c30: 3002 movi r0, 2 + 8c32: e3fffb37 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 8c36: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8c38: 3003 movi r0, 3 + 8c3a: e3fffb33 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 8c3e: 3100 movi r1, 0 + 8c40: 0410 br 0x8c60 // 8c60 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8c42: e3fffb2f bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 8c46: 31ff movi r1, 255 + 8c48: 3001 movi r0, 1 + 8c4a: e3fffb2b bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8c4e: 3100 movi r1, 0 + 8c50: 3002 movi r0, 2 + 8c52: e3fffb27 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8c56: 3100 movi r1, 0 + 8c58: 3003 movi r0, 3 + 8c5a: e3fffb23 bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 8c5e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 8c60: 3004 movi r0, 4 + 8c62: e3fffb1f bsr 0x82a0 // 82a0 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 8c66: 3100 movi r1, 0 + 8c68: 07d9 br 0x8c1a // 8c1a + 8c6a: 0000 bkpt + 8c6c: 200001a0 .long 0x200001a0 + 8c70: 2000080c .long 0x2000080c + +Disassembly of section .text.Controlled_Key_Backlight: + +00008c74 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 8c74: 14d0 push r15 + switch(state){ + 8c76: 3840 cmpnei r0, 0 + 8c78: 0c04 bf 0x8c80 // 8c80 + 8c7a: 3841 cmpnei r0, 1 + 8c7c: 0c0b bf 0x8c92 // 8c92 + + } + + break; + } +} + 8c7e: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 8c80: 1068 lrw r3, 0x20000574 // 8ca0 + 8c82: 836a ld.b r3, (r3, 0xa) + 8c84: 3b42 cmpnei r3, 2 + 8c86: 0ffc bf 0x8c7e // 8c7e + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 8c88: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 8c8a: 3005 movi r0, 5 + 8c8c: e3fff7cc bsr 0x7c24 // 7c24 +} + 8c90: 07f7 br 0x8c7e // 8c7e + if(g_switch.light_state[T_Backlight] != Control_ON) + 8c92: 1064 lrw r3, 0x20000574 // 8ca0 + 8c94: 836a ld.b r3, (r3, 0xa) + 8c96: 3b41 cmpnei r3, 1 + 8c98: 0ff3 bf 0x8c7e // 8c7e + Contol_Switch_Light_2(T_Backlight,Control_ON); + 8c9a: 3101 movi r1, 1 + 8c9c: 07f7 br 0x8c8a // 8c8a + 8c9e: 0000 bkpt + 8ca0: 20000574 .long 0x20000574 + +Disassembly of section .text.Set_Device_ADDR: + +00008ca4 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 8ca4: 14d4 push r4-r7, r15 + 8ca6: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8ca8: 11c4 lrw r6, 0xcc46 // 8d38 + 8caa: 6018 addu r0, r6 + 8cac: 1184 lrw r4, 0x20000590 // 8d3c +void Set_Device_ADDR(U8_T page, U8_T addr){ + 8cae: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8cb0: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 8cb2: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8cb4: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 8cb6: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8cb8: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 8cba: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8cbc: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 8cbe: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8cc0: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 8cc2: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 8cc4: 843b ld.b r1, (r4, 0x1b) + 8cc6: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8cc8: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 8cca: 845d ld.b r2, (r4, 0x1d) + 8ccc: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 8cce: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 8cd0: 6c1f mov r0, r7 + 8cd2: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 8cd4: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 8cd6: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 8cd8: e3ffea30 bsr 0x6138 // 6138 <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8cdc: 7400 zextb r0, r0 + 8cde: 6018 addu r0, r6 + 8ce0: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 8ce2: 9861 ld.w r3, (r14, 0x4) + 8ce4: 841f ld.b r0, (r4, 0x1f) + 8ce6: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8ce8: 6c07 mov r0, r1 + 8cea: 6814 and r0, r5 + 8cec: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 8cee: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8cf0: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 8cf2: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 8cf4: 6c1f mov r0, r7 + 8cf6: 310a movi r1, 10 + 8cf8: e3ffea20 bsr 0x6138 // 6138 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 8cfc: 7400 zextb r0, r0 + 8cfe: 310a movi r1, 10 + 8d00: e3ffea40 bsr 0x6180 // 6180 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 8d04: 7400 zextb r0, r0 + 8d06: 6018 addu r0, r6 + 8d08: 8060 ld.b r3, (r0, 0x0) + 8d0a: 6c4f mov r1, r3 + 8d0c: 6854 and r1, r5 + 8d0e: 9842 ld.w r2, (r14, 0x8) + 8d10: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 8d12: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 8d14: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 8d16: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 8d18: 310a movi r1, 10 + 8d1a: 6c1f mov r0, r7 + 8d1c: e3ffea32 bsr 0x6180 // 6180 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8d20: 7400 zextb r0, r0 + 8d22: 6180 addu r6, r0 + 8d24: 8660 ld.b r3, (r6, 0x0) + 8d26: 694c and r5, r3 + 8d28: 9840 ld.w r2, (r14, 0x0) + 8d2a: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8d2c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8d2e: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8d30: a47a st.b r3, (r4, 0x1a) +} + 8d32: 1403 addi r14, r14, 12 + 8d34: 1494 pop r4-r7, r15 + 8d36: 0000 bkpt + 8d38: 0000cc46 .long 0x0000cc46 + 8d3c: 20000590 .long 0x20000590 + +Disassembly of section .text.Set_Temp_Difference: + +00008d40 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 8d40: 1057 lrw r2, 0x20000590 // 8d9c + HT1621.show_cache[10] &= 0x01; + 8d42: 3101 movi r1, 1 + 8d44: 8276 ld.b r3, (r2, 0x16) + 8d46: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 8d48: 3ba1 bseti r3, 1 + 8d4a: 3ba2 bseti r3, 2 + 8d4c: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 8d4e: 330d movi r3, 13 + 8d50: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 8d52: 827f ld.b r3, (r2, 0x1f) + 8d54: 68c4 and r3, r1 + 8d56: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 8d58: 3300 movi r3, 0 + 8d5a: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 8d5c: 827d ld.b r3, (r2, 0x1d) + 8d5e: 68c4 and r3, r1 + 8d60: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 8d62: 3300 movi r3, 0 + 8d64: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 8d66: 827b ld.b r3, (r2, 0x1b) + 8d68: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 8d6a: 3300 movi r3, 0 + 8d6c: 2b08 subi r3, 9 + 8d6e: 60c0 addu r3, r0 + 8d70: 74cc zextb r3, r3 + 8d72: 3b09 cmphsi r3, 10 + 8d74: 0c08 bf 0x8d84 // 8d84 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 8d76: 3808 cmphsi r0, 9 + 8d78: 0810 bt 0x8d98 // 8d98 + tmp_quantile = 9 - diff; + 8d7a: 3309 movi r3, 9 + 8d7c: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 8d7e: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 8d80: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 8d82: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8d84: 1007 lrw r0, 0xcc46 // 8da0 + 8d86: 60c0 addu r3, r0 + 8d88: 8360 ld.b r3, (r3, 0x0) + 8d8a: 4b04 lsri r0, r3, 4 + 8d8c: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8d8e: 300f movi r0, 15 + 8d90: 68c0 and r3, r0 + 8d92: 6c4c or r1, r3 + 8d94: a23b st.b r1, (r2, 0x1b) +} + 8d96: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 8d98: 3300 movi r3, 0 + 8d9a: 07f5 br 0x8d84 // 8d84 + 8d9c: 20000590 .long 0x20000590 + 8da0: 0000cc46 .long 0x0000cc46 + +Disassembly of section .text.HT1621_Refresh_Task: + +00008da4 : + + +void HT1621_Refresh_Task(void){ + 8da4: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 8da6: 109e lrw r4, 0x200000c0 // 8e1c + 8da8: 10be lrw r5, 0x20000590 // 8e20 + 8daa: 9460 ld.w r3, (r4, 0x0) + 8dac: 954c ld.w r2, (r5, 0x30) + 8dae: 60ca subu r3, r2 + 8db0: 105d lrw r2, 0x1f3 // 8e24 + 8db2: 64c8 cmphs r2, r3 + 8db4: 0806 bt 0x8dc0 // 8dc0 + HT1621.Refresh_timing = HT1621_Refresh_time; + 8db6: 33fa movi r3, 250 + 8db8: 4361 lsli r3, r3, 1 + 8dba: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 8dbc: e3fffbf8 bsr 0x85ac // 85ac +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 8dc0: 107a lrw r3, 0x200005b0 // 8e28 + 8dc2: 8344 ld.b r2, (r3, 0x4) + 8dc4: 3a41 cmpnei r2, 1 + 8dc6: 0824 bt 0x8e0e // 8e0e + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 8dc8: 952e ld.w r1, (r5, 0x38) + 8dca: 9440 ld.w r2, (r4, 0x0) + 8dcc: 6086 subu r2, r1 + 8dce: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 8dd0: 6484 cmphs r1, r2 + 8dd2: 0808 bt 0x8de2 // 8de2 + HT1621.buz_tick = SysTick_1ms; + 8dd4: 9440 ld.w r2, (r4, 0x0) + 8dd6: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 8dd8: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 8dda: 3200 movi r2, 0 + 8ddc: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 8dde: e3fffb2d bsr 0x8438 // 8438 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 8de2: 1053 lrw r2, 0x2000080c // 8e2c + 8de4: 8202 ld.b r0, (r2, 0x2) + 8de6: 1033 lrw r1, 0x200001a0 // 8e30 + 8de8: 4079 lsli r3, r0, 25 + 8dea: 81ba ld.b r5, (r1, 0x1a) + 8dec: 4b7d lsri r3, r3, 29 + 8dee: 64d6 cmpne r5, r3 + 8df0: 0c0e bf 0x8e0c // 8e0c + TempCtrl.BackLightTick = SysTick_1ms; + 8df2: 9460 ld.w r3, (r4, 0x0) + 8df4: 4b88 lsri r4, r3, 8 + 8df6: a270 st.b r3, (r2, 0x10) + 8df8: a291 st.b r4, (r2, 0x11) + 8dfa: 4b90 lsri r4, r3, 16 + 8dfc: 4b78 lsri r3, r3, 24 + 8dfe: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 8e00: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 8e02: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 8e04: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 8e06: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 8e08: e3fffec8 bsr 0x8b98 // 8b98 + } + +} + 8e0c: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 8e0e: 3a42 cmpnei r2, 2 + 8e10: 0be9 bt 0x8de2 // 8de2 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 8e12: 952e ld.w r1, (r5, 0x38) + 8e14: 9440 ld.w r2, (r4, 0x0) + 8e16: 6086 subu r2, r1 + 8e18: 1023 lrw r1, 0x1f3 // 8e24 + 8e1a: 07db br 0x8dd0 // 8dd0 + 8e1c: 200000c0 .long 0x200000c0 + 8e20: 20000590 .long 0x20000590 + 8e24: 000001f3 .long 0x000001f3 + 8e28: 200005b0 .long 0x200005b0 + 8e2c: 2000080c .long 0x2000080c + 8e30: 200001a0 .long 0x200001a0 + +Disassembly of section .text.Boot_Comm_CheckSum: + +00008e34 : + } + +} + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 8e34: 14c1 push r4 + U8_T sum = 0; + 8e36: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 8e38: 1047 lrw r2, 0xffff // 8e54 + 8e3a: 2900 subi r1, 1 + 8e3c: 7445 zexth r1, r1 + 8e3e: 6486 cmpne r1, r2 + 8e40: 0804 bt 0x8e48 // 8e48 + { + sum += buffer[i]; + i++; + } + return (~sum); + 8e42: 6cce nor r3, r3 + 8e44: 740c zextb r0, r3 +} + 8e46: 1481 pop r4 + sum += buffer[i]; + 8e48: 8080 ld.b r4, (r0, 0x0) + 8e4a: 60d0 addu r3, r4 + 8e4c: 74cc zextb r3, r3 + 8e4e: 2000 addi r0, 1 + 8e50: 07f5 br 0x8e3a // 8e3a + 8e52: 0000 bkpt + 8e54: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +00008e58 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 8e58: 14d4 push r4-r7, r15 + 8e5a: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8e5c: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 8e5e: 1074 lrw r3, 0x200004fc // 8eac + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8e60: 47e1 lsli r7, r7, 1 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 8e62: 8340 ld.b r2, (r3, 0x0) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8e64: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 8e66: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8e68: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 8e6a: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8e6c: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 8e6e: 1071 lrw r3, 0x200005d0 // 8eb0 + 8e70: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8e72: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 8e74: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 8e76: 8062 ld.b r3, (r0, 0x2) + 8e78: 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; + 8e7a: 4d68 lsri r3, r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 8e7c: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 8e7e: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 8e80: 8041 ld.b r2, (r0, 0x1) + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 8e82: 3300 movi r3, 0 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 8e84: 58ce addi r6, r0, 4 +{ + 8e86: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 8e88: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 8e8a: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 8e8c: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 8e8e: 6c57 mov r1, r5 + 8e90: 6c1b mov r0, r6 + 8e92: e3ffffd1 bsr 0x8e34 // 8e34 + 8e96: a40a st.b r0, (r4, 0xa) +#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); + 8e98: 3264 movi r2, 100 + 8e9a: 8f79 ld.h r3, (r7, 0x32) + 8e9c: 6c57 mov r1, r5 + 8e9e: b840 st.w r2, (r14, 0x0) + 8ea0: 6c1b mov r0, r6 + 8ea2: 3201 movi r2, 1 + 8ea4: e3ffeb46 bsr 0x6530 // 6530 + + //ack_uart->ackLen = 0x00; +} + 8ea8: 1401 addi r14, r14, 4 + 8eaa: 1494 pop r4-r7, r15 + 8eac: 200004fc .long 0x200004fc + 8eb0: 200005d0 .long 0x200005d0 + +Disassembly of section .text.Boot_Time_Refresh: + +00008eb4 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + 8eb4: 1063 lrw r3, 0x200000c0 // 8ec0 + 8eb6: 9340 ld.w r2, (r3, 0x0) + 8eb8: 1063 lrw r3, 0x200006d0 // 8ec4 + 8eba: b34e st.w r2, (r3, 0x38) +} + 8ebc: 783c jmp r15 + 8ebe: 0000 bkpt + 8ec0: 200000c0 .long 0x200000c0 + 8ec4: 200006d0 .long 0x200006d0 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +00008ec8 : +{ + 8ec8: 14d4 push r4-r7, r15 + 8eca: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + 8ecc: 8065 ld.b r3, (r0, 0x5) + 8ece: 8044 ld.b r2, (r0, 0x4) + 8ed0: 4368 lsli r3, r3, 8 + 8ed2: 6cc8 or r3, r2 + if(len != data_len) { + 8ed4: 644e cmpne r3, r1 +{ + 8ed6: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + 8ed8: b860 st.w r3, (r14, 0x0) + if(len != data_len) { + 8eda: 08ad bt 0x9034 // 9034 + if(Boot_Comm_CheckSum(data,len) != 0) { + 8edc: 6c4f mov r1, r3 + 8ede: e3ffffab bsr 0x8e34 // 8e34 + 8ee2: 3840 cmpnei r0, 0 + 8ee4: 08aa bt 0x9038 // 9038 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 8ee6: 8561 ld.b r3, (r5, 0x1) + 8ee8: 748e sextb r2, r3 + 8eea: 3adf btsti r2, 31 + 8eec: 1296 lrw r4, 0x200005d0 // 9044 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 8eee: 8421 ld.b r1, (r4, 0x1) + 8ef0: 320f movi r2, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 8ef2: 0c2e bf 0x8f4e // 8f4e + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 8ef4: 68c8 and r3, r2 + 8ef6: 64c6 cmpne r1, r3 + 8ef8: 6001 addc r0, r0 + deal_flag = 0x00; + 8efa: 74c0 zextb r3, r0 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 8efc: 3700 movi r7, 0 + group_flag = 0x01; + 8efe: 3001 movi r0, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + 8f00: 12d2 lrw r6, 0x200004fc // 9048 + 8f02: 8542 ld.b r2, (r5, 0x2) + 8f04: 8621 ld.b r1, (r6, 0x1) + 8f06: 6486 cmpne r1, r2 + 8f08: 0c04 bf 0x8f10 // 8f10 + 8f0a: 31ff movi r1, 255 + 8f0c: 644a cmpne r2, r1 + 8f0e: 0897 bt 0x903c // 903c + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + 8f10: 8543 ld.b r2, (r5, 0x3) + 8f12: 8620 ld.b r1, (r6, 0x0) + 8f14: 6486 cmpne r1, r2 + 8f16: 0c04 bf 0x8f1e // 8f1e + 8f18: 31ff movi r1, 255 + 8f1a: 644a cmpne r2, r1 + 8f1c: 0892 bt 0x9040 // 9040 + 8f1e: b802 st.w r0, (r14, 0x8) + 8f20: b861 st.w r3, (r14, 0x4) + Boot_Time_Refresh(); + 8f22: e3ffffc9 bsr 0x8eb4 // 8eb4 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + 8f26: 8560 ld.b r3, (r5, 0x0) + 8f28: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + 8f2a: 8541 ld.b r2, (r5, 0x1) + 8f2c: 310f movi r1, 15 + 8f2e: 6884 and r2, r1 + 8f30: a441 st.b r2, (r4, 0x1) + switch(g_boot.cmd){ + 8f32: 31c0 movi r1, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 8f34: 8547 ld.b r2, (r5, 0x7) + switch(g_boot.cmd){ + 8f36: 644a cmpne r2, r1 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 8f38: a442 st.b r2, (r4, 0x2) + switch(g_boot.cmd){ + 8f3a: 9861 ld.w r3, (r14, 0x4) + 8f3c: 9802 ld.w r0, (r14, 0x8) + 8f3e: 0c1b bf 0x8f74 // 8f74 + 8f40: 31c1 movi r1, 193 + 8f42: 644a cmpne r2, r1 + 8f44: 0c63 bf 0x900a // 900a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 8f46: 3301 movi r3, 1 + 8f48: a46c st.b r3, (r4, 0xc) + g_boot.ackLen = 1; + 8f4a: 1261 lrw r3, 0x200006d0 // 904c + 8f4c: 046c br 0x9024 // 9024 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 8f4e: 688c and r2, r3 + 8f50: 6486 cmpne r1, r2 + 8f52: 080c bt 0x8f6a // 8f6a + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + 8f54: 3240 movi r2, 64 + 8f56: 68c8 and r3, r2 + 8f58: 3b40 cmpnei r3, 0 + 8f5a: 0c0b bf 0x8f70 // 8f70 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + 8f5c: 8547 ld.b r2, (r5, 0x7) + 8f5e: 846b ld.b r3, (r4, 0xb) + 8f60: 64ca cmpne r2, r3 + 8f62: 65c3 mvcv r7 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 8f64: 75dc zextb r7, r7 + 8f66: 3300 movi r3, 0 + 8f68: 07cc br 0x8f00 // 8f00 + reply_flag = 0x01; + 8f6a: 3701 movi r7, 1 + deal_flag = 0x01; + 8f6c: 3301 movi r3, 1 + 8f6e: 07c9 br 0x8f00 // 8f00 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 8f70: 3700 movi r7, 0 + 8f72: 07fa br 0x8f66 // 8f66 + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + 8f74: 3b41 cmpnei r3, 1 + 8f76: 0819 bt 0x8fa8 // 8fa8 + 8f78: 9860 ld.w r3, (r14, 0x0) + 8f7a: 3b0b cmphsi r3, 12 + 8f7c: 0c16 bf 0x8fa8 // 8fa8 + temp_data |= data[BCOMM_FMT_PARAM]; + 8f7e: 8549 ld.b r2, (r5, 0x9) + 8f80: 8568 ld.b r3, (r5, 0x8) + 8f82: 4248 lsli r2, r2, 8 + 8f84: 6c8c or r2, r3 + if(temp_data != g_boot.bootTimeout){ + 8f86: 1172 lrw r3, 0x200006d0 // 904c + 8f88: 932d ld.w r1, (r3, 0x34) + 8f8a: 644a cmpne r2, r1 + 8f8c: 0c09 bf 0x8f9e // 8f9e + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 8f8e: 3a09 cmphsi r2, 10 + 8f90: 0c3b bf 0x9006 // 9006 + 8f92: b34d st.w r2, (r3, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + 8f94: 31fa movi r1, 250 + 8f96: 934d ld.w r2, (r3, 0x34) + 8f98: 4122 lsli r1, r1, 2 + 8f9a: 7c84 mult r2, r1 + 8f9c: b34d st.w r2, (r3, 0x34) + 8f9e: 854b ld.b r2, (r5, 0xb) + 8fa0: 852a ld.b r1, (r5, 0xa) + 8fa2: 4248 lsli r2, r2, 8 + 8fa4: 6c84 or r2, r1 + g_boot.ackValidity = temp_data; + 8fa6: ab59 st.h r2, (r3, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + 8fa8: 3f41 cmpnei r7, 1 + 8faa: 082c bt 0x9002 // 9002 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + 8fac: 3302 movi r3, 2 + 8fae: a46c st.b r3, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + 8fb0: 8662 ld.b r3, (r6, 0x2) + 8fb2: a46d st.b r3, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + 8fb4: 8663 ld.b r3, (r6, 0x3) + 8fb6: a46e st.b r3, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + 8fb8: 3303 movi r3, 3 + 8fba: a46f st.b r3, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + 8fbc: 1165 lrw r3, 0x2000005c // 9050 + 8fbe: 9360 ld.w r3, (r3, 0x0) + 8fc0: 237f addi r3, 128 + 8fc2: 9359 ld.w r2, (r3, 0x64) + 8fc4: a450 st.b r2, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + 8fc6: 935a ld.w r2, (r3, 0x68) + 8fc8: a451 st.b r2, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + 8fca: 937b ld.w r3, (r3, 0x6c) + 8fcc: 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; + 8fce: 8644 ld.b r2, (r6, 0x4) + 8fd0: 3320 movi r3, 32 + 8fd2: 648c cmphs r3, r2 + 8fd4: 0802 bt 0x8fd8 // 8fd8 + 8fd6: a664 st.b r3, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + 8fd8: 8664 ld.b r3, (r6, 0x4) + 8fda: a473 st.b r3, (r4, 0x13) + 8fdc: 3320 movi r3, 32 + 8fde: 103b lrw r1, 0x200004fc // 9048 + 8fe0: 1059 lrw r2, 0x200005d0 // 9044 + 8fe2: 2b00 subi r3, 1 + 8fe4: 74cc zextb r3, r3 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + 8fe6: 8185 ld.b r4, (r1, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + 8ff2: 1077 lrw r3, 0x200006d0 // 904c + 8ff4: 3228 movi r2, 40 + 8ff6: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 8ff8: 3840 cmpnei r0, 0 + 8ffa: 0804 bt 0x9002 // 9002 + Boot_Comm_FillReplyPack(&g_boot); + 8ffc: 1012 lrw r0, 0x200005d0 // 9044 + 8ffe: e3ffff2d bsr 0x8e58 // 8e58 +} + 9002: 1403 addi r14, r14, 12 + 9004: 1494 pop r4-r7, r15 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 9006: 320a movi r2, 10 + 9008: 07c5 br 0x8f92 // 8f92 + if(deal_flag != 0x01) break; //不处理直接退出 + 900a: 3b41 cmpnei r3, 1 + 900c: 080e bt 0x9028 // 9028 + if(data[BCOMM_FMT_PARAM] == 0x02){ + 900e: 8568 ld.b r3, (r5, 0x8) + 9010: 3b42 cmpnei r3, 2 + 9012: 106f lrw r3, 0x200006d0 // 904c + 9014: 080e bt 0x9030 // 9030 + g_boot.bootTimeout = 200; //在Boot超时中跳转 + 9016: 32c8 movi r2, 200 + 9018: b34d st.w r2, (r3, 0x34) + g_boot.bootTick = SysTick_1ms; + 901a: 104f lrw r2, 0x200000c0 // 9054 + 901c: 9240 ld.w r2, (r2, 0x0) + 901e: b34e st.w r2, (r3, 0x38) + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + 9020: 3200 movi r2, 0 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 9022: a44c st.b r2, (r4, 0xc) + g_boot.ackLen = 1; + 9024: 3201 movi r2, 1 + 9026: ab58 st.h r2, (r3, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 9028: 3840 cmpnei r0, 0 + 902a: 0bec bt 0x9002 // 9002 + 902c: 3f41 cmpnei r7, 1 + 902e: 07e6 br 0x8ffa // 8ffa + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 9030: 3201 movi r2, 1 + 9032: 07f8 br 0x9022 // 9022 + return 0x01; + 9034: 3001 movi r0, 1 + 9036: 07e6 br 0x9002 // 9002 + return 0x02; + 9038: 3002 movi r0, 2 + 903a: 07e4 br 0x9002 // 9002 + return 0x03; + 903c: 3003 movi r0, 3 + 903e: 07e2 br 0x9002 // 9002 + return 0x04; + 9040: 3004 movi r0, 4 + 9042: 07e0 br 0x9002 // 9002 + 9044: 200005d0 .long 0x200005d0 + 9048: 200004fc .long 0x200004fc + 904c: 200006d0 .long 0x200006d0 + 9050: 2000005c .long 0x2000005c + 9054: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TemCtrl_Init: + +00009058 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 9058: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 905a: 1299 lrw r4, 0x2000080c // 91bc + 905c: 3229 movi r2, 41 + 905e: 3100 movi r1, 0 + 9060: 6c13 mov r0, r4 + 9062: e3ffd89d bsr 0x419c // 419c <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 9066: 1277 lrw r3, 0x200000b4 // 91c0 + 9068: 9360 ld.w r3, (r3, 0x0) + 906a: 3b80 bclri r3, 0 + 906c: 3b40 cmpnei r3, 0 + 906e: 0ca0 bf 0x91ae // 91ae + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 9070: 1235 lrw r1, 0xcfde // 91c4 + 9072: 3000 movi r0, 0 + 9074: e3ffeb04 bsr 0x667c // 667c + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 9078: 1274 lrw r3, 0x200000b0 // 91c8 + 907a: 30ff movi r0, 255 + 907c: 9320 ld.w r1, (r3, 0x0) + 907e: 6840 and r1, r0 + 9080: 3940 cmpnei r1, 0 + 9082: 0c05 bf 0x908c // 908c + 9084: 9340 ld.w r2, (r3, 0x0) + 9086: 6880 and r2, r0 + 9088: 3a41 cmpnei r2, 1 + 908a: 0885 bt 0x9194 // 9194 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 908c: 9340 ld.w r2, (r3, 0x0) + 908e: 4227 lsli r1, r2, 7 + 9090: 307f movi r0, 127 + 9092: 8442 ld.b r2, (r4, 0x2) + 9094: 6880 and r2, r0 + 9096: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 9098: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 909a: 9340 ld.w r2, (r3, 0x0) + 909c: 4a48 lsri r2, r2, 8 + 909e: 30ff movi r0, 255 + 90a0: 6880 and r2, r0 + 90a2: 3a40 cmpnei r2, 0 + 90a4: 0c10 bf 0x90c4 // 90c4 + 90a6: 9340 ld.w r2, (r3, 0x0) + 90a8: 4a48 lsri r2, r2, 8 + 90aa: 6880 and r2, r0 + 90ac: 3a42 cmpnei r2, 2 + 90ae: 0c0b bf 0x90c4 // 90c4 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 90b0: 9320 ld.w r1, (r3, 0x0) + 90b2: 4928 lsri r1, r1, 8 + 90b4: 6840 and r1, r0 + 90b6: 3944 cmpnei r1, 4 + 90b8: 0c06 bf 0x90c4 // 90c4 + 90ba: 9340 ld.w r2, (r3, 0x0) + 90bc: 4a48 lsri r2, r2, 8 + 90be: 6880 and r2, r0 + 90c0: 3a46 cmpnei r2, 6 + 90c2: 086d bt 0x919c // 919c + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 90c4: 9340 ld.w r2, (r3, 0x0) + 90c6: 3107 movi r1, 7 + 90c8: 4a48 lsri r2, r2, 8 + 90ca: 6884 and r2, r1 + 90cc: 3070 movi r0, 112 + 90ce: 8422 ld.b r1, (r4, 0x2) + 90d0: 4244 lsli r2, r2, 4 + 90d2: 6841 andn r1, r0 + 90d4: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 90d6: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 90d8: 9340 ld.w r2, (r3, 0x0) + 90da: 4a50 lsri r2, r2, 16 + 90dc: 30ff movi r0, 255 + 90de: 6880 and r2, r0 + 90e0: 3a41 cmpnei r2, 1 + 90e2: 0c10 bf 0x9102 // 9102 + 90e4: 9340 ld.w r2, (r3, 0x0) + 90e6: 4a50 lsri r2, r2, 16 + 90e8: 6880 and r2, r0 + 90ea: 3a42 cmpnei r2, 2 + 90ec: 0c0b bf 0x9102 // 9102 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 90ee: 9320 ld.w r1, (r3, 0x0) + 90f0: 4930 lsri r1, r1, 16 + 90f2: 6840 and r1, r0 + 90f4: 3943 cmpnei r1, 3 + 90f6: 0c06 bf 0x9102 // 9102 + 90f8: 9340 ld.w r2, (r3, 0x0) + 90fa: 4a50 lsri r2, r2, 16 + 90fc: 6880 and r2, r0 + 90fe: 3a40 cmpnei r2, 0 + 9100: 0852 bt 0x91a4 // 91a4 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 9102: 9340 ld.w r2, (r3, 0x0) + 9104: 3107 movi r1, 7 + 9106: 4a50 lsri r2, r2, 16 + 9108: 6884 and r2, r1 + 910a: 300e movi r0, 14 + 910c: 8422 ld.b r1, (r4, 0x2) + 910e: 4241 lsli r2, r2, 1 + 9110: 6841 andn r1, r0 + 9112: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 9114: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 31)) || (((Sav_Temp >> 24) & 0xFF) == 0x00)) + 9116: 9340 ld.w r2, (r3, 0x0) + 9118: 4a58 lsri r2, r2, 24 + 911a: 3a0f cmphsi r2, 16 + 911c: 0c05 bf 0x9126 // 9126 + 911e: 9340 ld.w r2, (r3, 0x0) + 9120: 4a58 lsri r2, r2, 24 + 9122: 3a1f cmphsi r2, 32 + 9124: 0c05 bf 0x912e // 912e + 9126: 9340 ld.w r2, (r3, 0x0) + 9128: 4a58 lsri r2, r2, 24 + 912a: 3a40 cmpnei r2, 0 + 912c: 0846 bt 0x91b8 // 91b8 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 912e: 9360 ld.w r3, (r3, 0x0) + 9130: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 9132: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 9134: e3fff2d2 bsr 0x76d8 // 76d8 + 9138: 1165 lrw r3, 0x200004f4 // 91cc + 913a: 8362 ld.b r3, (r3, 0x2) + 913c: 320a movi r2, 10 + 913e: 7cc8 mult r3, r2 + 9140: 2b54 subi r3, 85 + 9142: 600c addu r0, r3 + 9144: 7401 zexth r0, r0 + 9146: 4868 lsri r3, r0, 8 + 9148: a469 st.b r3, (r4, 0x9) + 914a: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 914c: 310a movi r1, 10 + 914e: e3ffe7f5 bsr 0x6138 // 6138 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 9152: 3301 movi r3, 1 + 9154: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 9156: 3300 movi r3, 0 + 9158: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 915a: 3200 movi r2, 0 + 915c: 107d lrw r3, 0x2000005c // 91d0 + 915e: 9360 ld.w r3, (r3, 0x0) + 9160: 23ff addi r3, 256 + 9162: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 9164: 8442 ld.b r2, (r4, 0x2) + 9166: 4239 lsli r1, r2, 25 + 9168: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 916a: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 916c: 4128 lsli r1, r1, 8 + 916e: 9300 ld.w r0, (r3, 0x0) + 9170: 6c40 or r1, r0 + 9172: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 9174: 423c lsli r1, r2, 28 + 9176: 493d lsri r1, r1, 29 + 9178: 9300 ld.w r0, (r3, 0x0) + 917a: 4130 lsli r1, r1, 16 + 917c: 6c40 or r1, r0 + 917e: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 9180: 8421 ld.b r1, (r4, 0x1) + 9182: 9300 ld.w r0, (r3, 0x0) + 9184: 4138 lsli r1, r1, 24 + 9186: 6c40 or r1, r0 + 9188: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 918a: 9320 ld.w r1, (r3, 0x0) + 918c: 4a47 lsri r2, r2, 7 + 918e: 6c84 or r2, r1 + 9190: b340 st.w r2, (r3, 0x0) +} + 9192: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 9194: 8442 ld.b r2, (r4, 0x2) + 9196: 317f movi r1, 127 + 9198: 6884 and r2, r1 + 919a: 077f br 0x9098 // 9098 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 919c: 8442 ld.b r2, (r4, 0x2) + 919e: 3170 movi r1, 112 + 91a0: 6885 andn r2, r1 + 91a2: 079a br 0x90d6 // 90d6 + TempCtrl.TemState_Now.fan = FAN_MID; + 91a4: 8442 ld.b r2, (r4, 0x2) + 91a6: 310e movi r1, 14 + 91a8: 6885 andn r2, r1 + 91aa: 3aa2 bseti r2, 2 + 91ac: 07b4 br 0x9114 // 9114 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 91ae: 8462 ld.b r3, (r4, 0x2) + 91b0: 320e movi r2, 14 + 91b2: 68c9 andn r3, r2 + 91b4: 3ba2 bseti r3, 2 + 91b6: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 91b8: 3318 movi r3, 24 + 91ba: 07bc br 0x9132 // 9132 + 91bc: 2000080c .long 0x2000080c + 91c0: 200000b4 .long 0x200000b4 + 91c4: 0000cfde .long 0x0000cfde + 91c8: 200000b0 .long 0x200000b0 + 91cc: 200004f4 .long 0x200004f4 + 91d0: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +000091d4 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 91d4: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 91d6: 1031 lrw r1, 0x2000080c // 9218 + 91d8: 8162 ld.b r3, (r1, 0x2) + 91da: 748e sextb r2, r3 + 91dc: 3adf btsti r2, 31 + 91de: 0c14 bf 0x9206 // 9206 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 91e0: 4359 lsli r2, r3, 25 + 91e2: 4a5d lsri r2, r2, 29 + 91e4: 3a42 cmpnei r2, 2 + 91e6: 0c11 bf 0x9208 // 9208 + 91e8: 3a44 cmpnei r2, 4 + 91ea: 0c13 bf 0x9210 // 9210 + 91ec: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 91ee: 3270 movi r2, 112 + 91f0: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 91f2: 0802 bt 0x91f6 // 91f6 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 91f4: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 91f6: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 91f8: 8142 ld.b r2, (r1, 0x2) + 91fa: 4259 lsli r2, r2, 25 + 91fc: 4a5d lsri r2, r2, 29 + 91fe: 1028 lrw r1, 0xcff7 // 921c + 9200: 3000 movi r0, 0 + 9202: e3ffea3d bsr 0x667c // 667c +} + 9206: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 9208: 3270 movi r2, 112 + 920a: 68c9 andn r3, r2 + 920c: 3ba6 bseti r3, 6 + 920e: 07f4 br 0x91f6 // 91f6 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 9210: 3270 movi r2, 112 + 9212: 68c9 andn r3, r2 + 9214: 07f1 br 0x91f6 // 91f6 + 9216: 0000 bkpt + 9218: 2000080c .long 0x2000080c + 921c: 0000cff7 .long 0x0000cff7 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00009220 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 9220: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 9222: 1072 lrw r3, 0x2000080c // 9268 + 9224: 8342 ld.b r2, (r3, 0x2) + 9226: 744a sextb r1, r2 + 9228: 39df btsti r1, 31 + 922a: 0c15 bf 0x9254 // 9254 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 922c: 421c lsli r0, r2, 28 + 922e: 481d lsri r0, r0, 29 + 9230: 3803 cmphsi r0, 4 + 9232: 0817 bt 0x9260 // 9260 + break; + case FAN_MID: + TempCtrl.TemState_Now.fan = FAN_HIGH; + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 9234: 8342 ld.b r2, (r3, 0x2) + 9236: 310e movi r1, 14 + 9238: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 923a: e3ffd161 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 923e: 020f .short 0x020f + 9240: 030c .short 0x030c + TempCtrl.TemState_Now.fan = FAN_MID; + 9242: 3aa2 bseti r2, 2 + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 9244: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 9246: 8342 ld.b r2, (r3, 0x2) + 9248: 425c lsli r2, r2, 28 + 924a: 4a5d lsri r2, r2, 29 + 924c: 1028 lrw r1, 0xd000 // 926c + 924e: 3000 movi r0, 0 + 9250: e3ffea16 bsr 0x667c // 667c +} + 9254: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 9256: 3aa1 bseti r2, 1 + 9258: 3aa2 bseti r2, 2 + 925a: 07f5 br 0x9244 // 9244 + TempCtrl.TemState_Now.fan = FAN_LOW; + 925c: 3aa1 bseti r2, 1 + 925e: 07f3 br 0x9244 // 9244 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 9260: 310e movi r1, 14 + 9262: 6885 andn r2, r1 + 9264: 07f0 br 0x9244 // 9244 + 9266: 0000 bkpt + 9268: 2000080c .long 0x2000080c + 926c: 0000d000 .long 0x0000d000 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00009270 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 9270: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 9272: 106a lrw r3, 0x2000080c // 9298 + 9274: 8342 ld.b r2, (r3, 0x2) + 9276: 748a sextb r2, r2 + 9278: 3adf btsti r2, 31 + 927a: 0c0b bf 0x9290 // 9290 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 927c: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 927e: 3a10 cmphsi r2, 17 + 9280: 0c09 bf 0x9292 // 9292 + { + TemSet--; //超过最低温度,就减 + 9282: 2a00 subi r2, 1 + 9284: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 9286: 1026 lrw r1, 0xd007 // 929c + 9288: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 928a: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 928c: e3ffe9f8 bsr 0x667c // 667c +} + 9290: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 9292: 3210 movi r2, 16 + 9294: 07f9 br 0x9286 // 9286 + 9296: 0000 bkpt + 9298: 2000080c .long 0x2000080c + 929c: 0000d007 .long 0x0000d007 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +000092a0 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 92a0: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 92a2: 106a lrw r3, 0x2000080c // 92c8 + 92a4: 8342 ld.b r2, (r3, 0x2) + 92a6: 748a sextb r2, r2 + 92a8: 3adf btsti r2, 31 + 92aa: 0c0b bf 0x92c0 // 92c0 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 92ac: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 92ae: 3a1f cmphsi r2, 32 + 92b0: 0809 bt 0x92c2 // 92c2 + { + TemSet++; + 92b2: 2200 addi r2, 1 + 92b4: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 92b6: 1026 lrw r1, 0xd010 // 92cc + 92b8: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 92ba: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 92bc: e3ffe9e0 bsr 0x667c // 667c +} + 92c0: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 92c2: 3220 movi r2, 32 + 92c4: 07f9 br 0x92b6 // 92b6 + 92c6: 0000 bkpt + 92c8: 2000080c .long 0x2000080c + 92cc: 0000d010 .long 0x0000d010 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +000092d0 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 92d0: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 92d2: 104b lrw r2, 0x2000080c // 92fc + 92d4: 8262 ld.b r3, (r2, 0x2) + 92d6: 4b27 lsri r1, r3, 7 + 92d8: 3940 cmpnei r1, 0 + 92da: 0c0d bf 0x92f4 // 92f4 + 92dc: 3941 cmpnei r1, 1 + 92de: 080b bt 0x92f4 // 92f4 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 92e0: 317f movi r1, 127 + 92e2: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 92e4: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 92e6: 8242 ld.b r2, (r2, 0x2) + 92e8: 4a47 lsri r2, r2, 7 + 92ea: 1026 lrw r1, 0xd010 // 9300 + 92ec: 3000 movi r0, 0 + 92ee: e3ffe9c7 bsr 0x667c // 667c +} + 92f2: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 92f4: 3100 movi r1, 0 + 92f6: 297f subi r1, 128 + 92f8: 6cc4 or r3, r1 + 92fa: 07f5 br 0x92e4 // 92e4 + 92fc: 2000080c .long 0x2000080c + 9300: 0000d010 .long 0x0000d010 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00009304 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 9304: 14d1 push r4, r15 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 9306: 1130 lrw r1, 0x2000080c // 93c4 + 9308: 8100 ld.b r0, (r1, 0x0) + 930a: 3840 cmpnei r0, 0 + 930c: 0802 bt 0x9310 // 9310 + 930e: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 9310: 8141 ld.b r2, (r1, 0x1) + 9312: 3a40 cmpnei r2, 0 + 9314: 0802 bt 0x9318 // 9318 + 9316: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 9318: 8162 ld.b r3, (r1, 0x2) + 931a: 4b87 lsri r4, r3, 7 + 931c: 3c40 cmpnei r4, 0 + 931e: 0c0f bf 0x933c // 933c + 9320: 3c41 cmpnei r4, 1 + 9322: 0850 bt 0x93c2 // 93c2 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 9324: 4399 lsli r4, r3, 25 + 9326: 4c9d lsri r4, r4, 29 + 9328: 3c42 cmpnei r4, 2 + 932a: 0c26 bf 0x9376 // 9376 + 932c: 3c44 cmpnei r4, 4 + 932e: 0c36 bf 0x939a // 939a + 9330: 3c40 cmpnei r4, 0 + 9332: 0848 bt 0x93c2 // 93c2 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 9334: 5a83 subi r4, r2, 1 + 9336: 6501 cmplt r0, r4 + 9338: 0c05 bf 0x9342 // 9342 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 933a: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 933c: 3b80 bclri r3, 0 + 933e: a162 st.b r3, (r1, 0x2) + 9340: 0419 br 0x9372 // 9372 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 9342: 2200 addi r2, 1 + 9344: 6409 cmplt r2, r0 + 9346: 0c3e bf 0x93c2 // 93c2 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 9348: 3ba0 bseti r3, 0 + 934a: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 934c: 107f lrw r3, 0x200004f4 // 93c8 + 934e: 8361 ld.b r3, (r3, 0x1) + 9350: 3b41 cmpnei r3, 1 + 9352: 080a bt 0x9366 // 9366 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 9354: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 9356: 3000 movi r0, 0 + 9358: e000075a bsr 0xa20c // a20c + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 935c: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 935e: 3001 movi r0, 1 + 9360: e0000756 bsr 0xa20c // a20c + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 9364: 042f br 0x93c2 // 93c2 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 9366: 3b40 cmpnei r3, 0 + 9368: 0803 bt 0x936e // 936e + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 936a: 3101 movi r1, 1 + 936c: 07f5 br 0x9356 // 9356 + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 936e: 3b42 cmpnei r3, 2 + 9370: 0829 bt 0x93c2 // 93c2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 9372: 3102 movi r1, 2 + 9374: 040e br 0x9390 // 9390 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 9376: 5a82 addi r4, r2, 1 + 9378: 6411 cmplt r4, r0 + 937a: 0be0 bt 0x933a // 933a + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 937c: 2a00 subi r2, 1 + 937e: 6481 cmplt r0, r2 + 9380: 0c21 bf 0x93c2 // 93c2 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 9382: 3ba0 bseti r3, 0 + 9384: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 9386: 1071 lrw r3, 0x200004f4 // 93c8 + 9388: 8361 ld.b r3, (r3, 0x1) + 938a: 3b41 cmpnei r3, 1 + 938c: 0bed bt 0x9366 // 9366 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 938e: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 9390: 3000 movi r0, 0 + 9392: e000073d bsr 0xa20c // a20c + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 9396: 3102 movi r1, 2 + 9398: 07e3 br 0x935e // 935e + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 939a: 3b80 bclri r3, 0 + 939c: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 939e: 3000 movi r0, 0 + 93a0: 3102 movi r1, 2 + 93a2: e0000735 bsr 0xa20c // a20c + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 93a6: 3102 movi r1, 2 + 93a8: 3001 movi r0, 1 + 93aa: e0000731 bsr 0xa20c // a20c + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 93ae: 1067 lrw r3, 0x200004f4 // 93c8 + 93b0: 8361 ld.b r3, (r3, 0x1) + 93b2: 3b42 cmpnei r3, 2 + 93b4: 0807 bt 0x93c2 // 93c2 + Relay_Stop(); + 93b6: e000071d bsr 0xa1f0 // a1f0 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 93ba: 1025 lrw r1, 0xd01e // 93cc + 93bc: 3000 movi r0, 0 + 93be: e3ffe95f bsr 0x667c // 667c +} + 93c2: 1491 pop r4, r15 + 93c4: 2000080c .long 0x2000080c + 93c8: 200004f4 .long 0x200004f4 + 93cc: 0000d01e .long 0x0000d01e + +Disassembly of section .text.TemCtrl_Pro: + +000093d0 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 93d0: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 93d2: 1218 lrw r0, 0x200000c0 // 9530 + 93d4: 1238 lrw r1, 0x20000230 // 9534 + 93d6: 9040 ld.w r2, (r0, 0x0) + 93d8: 9160 ld.w r3, (r1, 0x0) + 93da: 608e subu r2, r3 + 93dc: 33fa movi r3, 250 + 93de: 4362 lsli r3, r3, 2 + 93e0: 648c cmphs r3, r2 + 93e2: 083b bt 0x9458 // 9458 + { + tick = SysTick_1ms; + 93e4: 9060 ld.w r3, (r0, 0x0) + 93e6: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 93e8: 360a movi r6, 10 + 93ea: 12b4 lrw r5, 0x200004f4 // 9538 + 93ec: e3fff176 bsr 0x76d8 // 76d8 + 93f0: 8542 ld.b r2, (r5, 0x2) + 93f2: 7c98 mult r2, r6 + 93f4: 2a54 subi r2, 85 + 93f6: 6080 addu r2, r0 + 93f8: 7589 zexth r6, r2 + 93fa: 1291 lrw r4, 0x2000080c // 953c + 93fc: 7498 zextb r2, r6 + 93fe: 4e68 lsri r3, r6, 8 + 9400: a448 st.b r2, (r4, 0x8) + 9402: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 9404: a44c st.b r2, (r4, 0xc) + 9406: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 9408: 310a movi r1, 10 + 940a: 6c1b mov r0, r6 + 940c: e3ffe696 bsr 0x6138 // 6138 <__udivsi3> + 9410: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 9412: 6c9b mov r2, r6 + 9414: 122b lrw r1, 0xd027 // 9540 + 9416: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 9418: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 941a: e3ffe931 bsr 0x667c // 667c + + Tem_Valve_Ctrl(); + 941e: e3ffff73 bsr 0x9304 // 9304 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 9422: 8442 ld.b r2, (r4, 0x2) + 9424: 74c8 zextb r3, r2 + 9426: 3171 movi r1, 113 + 9428: 6c0f mov r0, r3 + 942a: 6805 andn r0, r1 + 942c: 3180 movi r1, 128 + 942e: 6442 cmpne r0, r1 + 9430: 083d bt 0x94aa // 94aa + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 9432: 3270 movi r2, 112 + 9434: 68c8 and r3, r2 + 9436: 3b40 cmpnei r3, 0 + 9438: 0827 bt 0x9486 // 9486 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 943a: 8461 ld.b r3, (r4, 0x1) + 943c: 8440 ld.b r2, (r4, 0x0) + 943e: 5b27 subi r1, r3, 2 + 9440: 6449 cmplt r2, r1 + 9442: 0c0c bf 0x945a // 945a + { + Relay_Stop(); //低风速 + 9444: e00006d6 bsr 0xa1f0 // a1f0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 9448: 117f lrw r3, 0x20000590 // 9544 + 944a: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 944c: 8402 ld.b r0, (r4, 0x2) + 944e: 401c lsli r0, r0, 28 + 9450: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 9452: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 9454: e3fffac4 bsr 0x89dc // 89dc + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 9458: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 945a: 5b23 subi r1, r3, 1 + 945c: 644a cmpne r2, r1 + 945e: 0804 bt 0x9466 // 9466 + Relay_Low(); //低风速 + 9460: e00006ba bsr 0xa1d4 // a1d4 + 9464: 07f2 br 0x9448 // 9448 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 9466: 5b22 addi r1, r3, 1 + 9468: 644a cmpne r2, r1 + 946a: 0806 bt 0x9476 // 9476 + Relay_Mid(); //中风速 + 946c: e00006a6 bsr 0xa1b8 // a1b8 + HT1621.wind_velocity = 1; + 9470: 1175 lrw r3, 0x20000590 // 9544 + 9472: 3201 movi r2, 1 + 9474: 07ec br 0x944c // 944c + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 9476: 2301 addi r3, 2 + 9478: 648d cmplt r3, r2 + 947a: 0fef bf 0x9458 // 9458 + Relay_High(); //高风速 + 947c: e0000690 bsr 0xa19c // a19c + HT1621.wind_velocity = 2; + 9480: 1171 lrw r3, 0x20000590 // 9544 + 9482: 3202 movi r2, 2 + 9484: 07e4 br 0x944c // 944c + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 9486: 3220 movi r2, 32 + 9488: 648e cmpne r3, r2 + 948a: 0be7 bt 0x9458 // 9458 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 948c: 8461 ld.b r3, (r4, 0x1) + 948e: 8440 ld.b r2, (r4, 0x0) + 9490: 5b27 subi r1, r3, 2 + 9492: 6449 cmplt r2, r1 + 9494: 0bf4 bt 0x947c // 947c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 9496: 5b23 subi r1, r3, 1 + 9498: 644a cmpne r2, r1 + 949a: 0fe9 bf 0x946c // 946c + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 949c: 5b22 addi r1, r3, 1 + 949e: 644a cmpne r2, r1 + 94a0: 0fe0 bf 0x9460 // 9460 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 94a2: 2301 addi r3, 2 + 94a4: 648d cmplt r3, r2 + 94a6: 0fd9 bf 0x9458 // 9458 + 94a8: 07ce br 0x9444 // 9444 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 94aa: 8521 ld.b r1, (r5, 0x1) + 94ac: 3942 cmpnei r1, 2 + 94ae: 744e sextb r1, r3 + 94b0: 083a bt 0x9524 // 9524 + 94b2: 39df btsti r1, 31 + 94b4: 0c38 bf 0x9524 // 9524 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 94b6: 310e movi r1, 14 + 94b8: 684c and r1, r3 + 94ba: 3940 cmpnei r1, 0 + 94bc: 0fce bf 0x9458 // 9458 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 94be: 3170 movi r1, 112 + 94c0: 68c4 and r3, r1 + 94c2: 3b40 cmpnei r3, 0 + 94c4: 0819 bt 0x94f6 // 94f6 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 94c6: 8461 ld.b r3, (r4, 0x1) + 94c8: 8420 ld.b r1, (r4, 0x0) + 94ca: 5b07 subi r0, r3, 2 + 94cc: 6405 cmplt r1, r0 + 94ce: 0bbb bt 0x9444 // 9444 + switch(TempCtrl.TemState_Now.fan) + 94d0: 425c lsli r2, r2, 28 + 94d2: 4a5d lsri r2, r2, 29 + 94d4: 3a42 cmpnei r2, 2 + 94d6: 0c09 bf 0x94e8 // 94e8 + 94d8: 3a43 cmpnei r2, 3 + 94da: 0c0b bf 0x94f0 // 94f0 + 94dc: 3a41 cmpnei r2, 1 + 94de: 0bbd bt 0x9458 // 9458 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 94e0: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 94e2: 64c6 cmpne r1, r3 + 94e4: 0bba bt 0x9458 // 9458 + 94e6: 07bd br 0x9460 // 9460 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 94e8: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 94ea: 64c6 cmpne r1, r3 + 94ec: 0bb6 bt 0x9458 // 9458 + 94ee: 07bf br 0x946c // 946c + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 94f0: 2301 addi r3, 2 + 94f2: 644d cmplt r3, r1 + 94f4: 07c3 br 0x947a // 947a + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 94f6: 3120 movi r1, 32 + 94f8: 644e cmpne r3, r1 + 94fa: 0baf bt 0x9458 // 9458 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 94fc: 8461 ld.b r3, (r4, 0x1) + 94fe: 8420 ld.b r1, (r4, 0x0) + 9500: 5b06 addi r0, r3, 2 + 9502: 6441 cmplt r0, r1 + 9504: 0ba0 bt 0x9444 // 9444 + switch(TempCtrl.TemState_Now.fan) + 9506: 425c lsli r2, r2, 28 + 9508: 4a5d lsri r2, r2, 29 + 950a: 3a42 cmpnei r2, 2 + 950c: 0c07 bf 0x951a // 951a + 950e: 3a43 cmpnei r2, 3 + 9510: 0c07 bf 0x951e // 951e + 9512: 3a41 cmpnei r2, 1 + 9514: 0ba2 bt 0x9458 // 9458 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 9516: 2300 addi r3, 1 + 9518: 07e5 br 0x94e2 // 94e2 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 951a: 2b00 subi r3, 1 + 951c: 07e7 br 0x94ea // 94ea + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 951e: 2b01 subi r3, 2 + 9520: 64c5 cmplt r1, r3 + 9522: 07ac br 0x947a // 947a + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 9524: 39df btsti r1, 31 + 9526: 0b99 bt 0x9458 // 9458 + Relay_Stop(); //风速停 + 9528: e0000664 bsr 0xa1f0 // a1f0 + 952c: 0796 br 0x9458 // 9458 + 952e: 0000 bkpt + 9530: 200000c0 .long 0x200000c0 + 9534: 20000230 .long 0x20000230 + 9538: 200004f4 .long 0x200004f4 + 953c: 2000080c .long 0x2000080c + 9540: 0000d027 .long 0x0000d027 + 9544: 20000590 .long 0x20000590 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00009548 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 9548: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 954a: 1133 lrw r1, 0xd04f // 9614 + 954c: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 954e: 1193 lrw r4, 0x20000835 // 9618 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 9550: e3ffe896 bsr 0x667c // 667c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 9554: 8460 ld.b r3, (r4, 0x0) + 9556: 3b41 cmpnei r3, 1 + 9558: 11b1 lrw r5, 0x200000c0 // 961c + 955a: 083e bt 0x95d6 // 95d6 + { + Debug_Inf.Tick = SysTick_1ms; + 955c: 9560 ld.w r3, (r5, 0x0) + 955e: 320a movi r2, 10 + 9560: 6090 addu r2, r4 + 9562: 4b28 lsri r1, r3, 8 + 9564: a260 st.b r3, (r2, 0x0) + 9566: a221 st.b r1, (r2, 0x1) + 9568: 4b30 lsri r1, r3, 16 + 956a: 4b78 lsri r3, r3, 24 + 956c: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page < PAGE8ID) + 956e: 8462 ld.b r3, (r4, 0x2) + 9570: 3b07 cmphsi r3, 8 + Debug_Inf.Tick = SysTick_1ms; + 9572: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page < PAGE8ID) + 9574: 0803 bt 0x957a // 957a + { + Debug_Inf.Page++; + 9576: 2300 addi r3, 1 + 9578: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 957a: e3fff7d1 bsr 0x851c // 851c + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 957e: 8462 ld.b r3, (r4, 0x2) + 9580: 3b42 cmpnei r3, 2 + 9582: 0805 bt 0x958c // 958c + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 9584: 8405 ld.b r0, (r4, 0x5) + 9586: e3fffbdd bsr 0x8d40 // 8d40 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 958a: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 958c: 3b41 cmpnei r3, 1 + 958e: 0806 bt 0x959a // 959a + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 9590: 8424 ld.b r1, (r4, 0x4) + 9592: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9594: e3fffb88 bsr 0x8ca4 // 8ca4 + 9598: 07f9 br 0x958a // 958a + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 959a: 3b43 cmpnei r3, 3 + 959c: 0804 bt 0x95a4 // 95a4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 959e: 8426 ld.b r1, (r4, 0x6) + 95a0: 3003 movi r0, 3 + 95a2: 07f9 br 0x9594 // 9594 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 95a4: 3b44 cmpnei r3, 4 + 95a6: 0804 bt 0x95ae // 95ae + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 95a8: 8427 ld.b r1, (r4, 0x7) + 95aa: 3004 movi r0, 4 + 95ac: 07f4 br 0x9594 // 9594 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 95ae: 3b45 cmpnei r3, 5 + 95b0: 0804 bt 0x95b8 // 95b8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 95b2: 8423 ld.b r1, (r4, 0x3) + 95b4: 3005 movi r0, 5 + 95b6: 07ef br 0x9594 // 9594 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 95b8: 3b46 cmpnei r3, 6 + 95ba: 0804 bt 0x95c2 // 95c2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 95bc: 8428 ld.b r1, (r4, 0x8) + 95be: 3006 movi r0, 6 + 95c0: 07ea br 0x9594 // 9594 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 95c2: 3b47 cmpnei r3, 7 + 95c4: 0804 bt 0x95cc // 95cc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 95c6: 8429 ld.b r1, (r4, 0x9) + 95c8: 3007 movi r0, 7 + 95ca: 07e5 br 0x9594 // 9594 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 95cc: 3b48 cmpnei r3, 8 + 95ce: 0bde bt 0x958a // 958a + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 95d0: 3103 movi r1, 3 + 95d2: 3008 movi r0, 8 + 95d4: 07e0 br 0x9594 // 9594 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 95d6: 1073 lrw r3, 0x2000080c // 9620 + 95d8: 8358 ld.b r2, (r3, 0x18) + 95da: 3a41 cmpnei r2, 1 + 95dc: 6d0f mov r4, r3 + 95de: 0811 bt 0x9600 // 9600 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 95e0: 8362 ld.b r3, (r3, 0x2) + 95e2: 74ce sextb r3, r3 + 95e4: 3bdf btsti r3, 31 + 95e6: 0c0d bf 0x9600 // 9600 + TemCtrl_Model_Set(); //模式切换 + 95e8: e3fffdf6 bsr 0x91d4 // 91d4 + if(g_eeprom.backlight_en == 0x01) + 95ec: 106e lrw r3, 0x200004f4 // 9624 + 95ee: 8364 ld.b r3, (r3, 0x4) + 95f0: 3b41 cmpnei r3, 1 + 95f2: 0807 bt 0x9600 // 9600 + Controlled_LCD_Backlight(0x01); + 95f4: 3001 movi r0, 1 + 95f6: e3fffad1 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 95fa: 3001 movi r0, 1 + 95fc: e3fffb3c bsr 0x8c74 // 8c74 + TempCtrl.BackLightTick = SysTick_1ms; + 9600: 9560 ld.w r3, (r5, 0x0) + 9602: 4b48 lsri r2, r3, 8 + 9604: a470 st.b r3, (r4, 0x10) + 9606: a451 st.b r2, (r4, 0x11) + 9608: 4b50 lsri r2, r3, 16 + 960a: 4b78 lsri r3, r3, 24 + 960c: a452 st.b r2, (r4, 0x12) + 960e: a473 st.b r3, (r4, 0x13) +} + 9610: 07bd br 0x958a // 958a + 9612: 0000 bkpt + 9614: 0000d04f .long 0x0000d04f + 9618: 20000835 .long 0x20000835 + 961c: 200000c0 .long 0x200000c0 + 9620: 2000080c .long 0x2000080c + 9624: 200004f4 .long 0x200004f4 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +00009628 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 9628: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 962a: 1133 lrw r1, 0xd064 // 96f4 + 962c: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 962e: 1193 lrw r4, 0x20000835 // 96f8 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 9630: e3ffe826 bsr 0x667c // 667c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 9634: 8460 ld.b r3, (r4, 0x0) + 9636: 3b41 cmpnei r3, 1 + 9638: 11b1 lrw r5, 0x200000c0 // 96fc + 963a: 083e bt 0x96b6 // 96b6 + { + Debug_Inf.Tick = SysTick_1ms; + 963c: 9560 ld.w r3, (r5, 0x0) + 963e: 320a movi r2, 10 + 9640: 6090 addu r2, r4 + 9642: 4b28 lsri r1, r3, 8 + 9644: a260 st.b r3, (r2, 0x0) + 9646: a221 st.b r1, (r2, 0x1) + 9648: 4b30 lsri r1, r3, 16 + 964a: 4b78 lsri r3, r3, 24 + 964c: a263 st.b r3, (r2, 0x3) + if(Debug_Inf.Page > PAGE1ID) + 964e: 8462 ld.b r3, (r4, 0x2) + 9650: 3b01 cmphsi r3, 2 + Debug_Inf.Tick = SysTick_1ms; + 9652: a222 st.b r1, (r2, 0x2) + if(Debug_Inf.Page > PAGE1ID) + 9654: 0c03 bf 0x965a // 965a + { + Debug_Inf.Page--; + 9656: 2b00 subi r3, 1 + 9658: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 965a: e3fff761 bsr 0x851c // 851c + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 965e: 8462 ld.b r3, (r4, 0x2) + 9660: 3b42 cmpnei r3, 2 + 9662: 0805 bt 0x966c // 966c + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 9664: 8405 ld.b r0, (r4, 0x5) + 9666: e3fffb6d bsr 0x8d40 // 8d40 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 966a: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 966c: 3b41 cmpnei r3, 1 + 966e: 0806 bt 0x967a // 967a + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 9670: 8424 ld.b r1, (r4, 0x4) + 9672: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9674: e3fffb18 bsr 0x8ca4 // 8ca4 + 9678: 07f9 br 0x966a // 966a + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 967a: 3b43 cmpnei r3, 3 + 967c: 0804 bt 0x9684 // 9684 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 967e: 8426 ld.b r1, (r4, 0x6) + 9680: 3003 movi r0, 3 + 9682: 07f9 br 0x9674 // 9674 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 9684: 3b44 cmpnei r3, 4 + 9686: 0804 bt 0x968e // 968e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 9688: 8427 ld.b r1, (r4, 0x7) + 968a: 3004 movi r0, 4 + 968c: 07f4 br 0x9674 // 9674 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 968e: 3b45 cmpnei r3, 5 + 9690: 0804 bt 0x9698 // 9698 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 9692: 8423 ld.b r1, (r4, 0x3) + 9694: 3005 movi r0, 5 + 9696: 07ef br 0x9674 // 9674 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 9698: 3b46 cmpnei r3, 6 + 969a: 0804 bt 0x96a2 // 96a2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 969c: 8428 ld.b r1, (r4, 0x8) + 969e: 3006 movi r0, 6 + 96a0: 07ea br 0x9674 // 9674 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 96a2: 3b47 cmpnei r3, 7 + 96a4: 0804 bt 0x96ac // 96ac + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 96a6: 8429 ld.b r1, (r4, 0x9) + 96a8: 3007 movi r0, 7 + 96aa: 07e5 br 0x9674 // 9674 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 96ac: 3b48 cmpnei r3, 8 + 96ae: 0bde bt 0x966a // 966a + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 96b0: 3103 movi r1, 3 + 96b2: 3008 movi r0, 8 + 96b4: 07e0 br 0x9674 // 9674 + if(TempCtrl.CardState == CARDIN) + 96b6: 1073 lrw r3, 0x2000080c // 9700 + 96b8: 8358 ld.b r2, (r3, 0x18) + 96ba: 3a41 cmpnei r2, 1 + 96bc: 6d0f mov r4, r3 + 96be: 0811 bt 0x96e0 // 96e0 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 96c0: 8362 ld.b r3, (r3, 0x2) + 96c2: 74ce sextb r3, r3 + 96c4: 3bdf btsti r3, 31 + 96c6: 0c0d bf 0x96e0 // 96e0 + TemCtrl_Fan_Set(); //风速切换 + 96c8: e3fffdac bsr 0x9220 // 9220 + if(g_eeprom.backlight_en == 0x01) + 96cc: 106e lrw r3, 0x200004f4 // 9704 + 96ce: 8364 ld.b r3, (r3, 0x4) + 96d0: 3b41 cmpnei r3, 1 + 96d2: 0807 bt 0x96e0 // 96e0 + Controlled_LCD_Backlight(0x01); + 96d4: 3001 movi r0, 1 + 96d6: e3fffa61 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 96da: 3001 movi r0, 1 + 96dc: e3fffacc bsr 0x8c74 // 8c74 + TempCtrl.BackLightTick = SysTick_1ms; + 96e0: 9560 ld.w r3, (r5, 0x0) + 96e2: 4b48 lsri r2, r3, 8 + 96e4: a470 st.b r3, (r4, 0x10) + 96e6: a451 st.b r2, (r4, 0x11) + 96e8: 4b50 lsri r2, r3, 16 + 96ea: 4b78 lsri r3, r3, 24 + 96ec: a452 st.b r2, (r4, 0x12) + 96ee: a473 st.b r3, (r4, 0x13) +} + 96f0: 07bd br 0x966a // 966a + 96f2: 0000 bkpt + 96f4: 0000d064 .long 0x0000d064 + 96f8: 20000835 .long 0x20000835 + 96fc: 200000c0 .long 0x200000c0 + 9700: 2000080c .long 0x2000080c + 9704: 200004f4 .long 0x200004f4 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00009708 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 9708: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 970a: 113f lrw r1, 0xd077 // 9804 + 970c: 3000 movi r0, 0 + 970e: e3ffe7b7 bsr 0x667c // 667c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 9712: 117e lrw r3, 0x20000835 // 9808 + 9714: 8340 ld.b r2, (r3, 0x0) + 9716: 3a41 cmpnei r2, 1 + 9718: 11bd lrw r5, 0x200000c0 // 980c + 971a: 0858 bt 0x97ca // 97ca + { + Debug_Inf.Tick = SysTick_1ms; + 971c: 9540 ld.w r2, (r5, 0x0) + 971e: 310a movi r1, 10 + 9720: 604c addu r1, r3 + 9722: 4a08 lsri r0, r2, 8 + 9724: a140 st.b r2, (r1, 0x0) + 9726: a101 st.b r0, (r1, 0x1) + 9728: 4a10 lsri r0, r2, 16 + 972a: 4a58 lsri r2, r2, 24 + 972c: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 972e: 8342 ld.b r2, (r3, 0x2) + 9730: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 9732: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 9734: 080b bt 0x974a // 974a + 9736: 8324 ld.b r1, (r3, 0x4) + 9738: 3901 cmphsi r1, 2 + 973a: 0812 bt 0x975e // 975e + { + Debug_Inf.PipeFlag ++; + 973c: 2100 addi r1, 1 + 973e: 7444 zextb r1, r1 + 9740: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 9742: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9744: e3fffab0 bsr 0x8ca4 // 8ca4 + 9748: 040b br 0x975e // 975e + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 974a: 3a42 cmpnei r2, 2 + 974c: 080a bt 0x9760 // 9760 + 974e: 8305 ld.b r0, (r3, 0x5) + 9750: 3811 cmphsi r0, 18 + 9752: 0806 bt 0x975e // 975e + Debug_Inf.TempDiff++; + 9754: 2000 addi r0, 1 + 9756: 7400 zextb r0, r0 + 9758: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 975a: e3fffaf3 bsr 0x8d40 // 8d40 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 975e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 9760: 3a43 cmpnei r2, 3 + 9762: 0806 bt 0x976e // 976e + Debug_Inf.BackLight_En = 0x01; + 9764: 3201 movi r2, 1 + 9766: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 9768: 3101 movi r1, 1 + 976a: 3003 movi r0, 3 + 976c: 07ec br 0x9744 // 9744 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 976e: 3a44 cmpnei r2, 4 + 9770: 0809 bt 0x9782 // 9782 + 9772: 8327 ld.b r1, (r3, 0x7) + 9774: 3901 cmphsi r1, 2 + 9776: 0bf4 bt 0x975e // 975e + Debug_Inf.KSens_Level++; + 9778: 2100 addi r1, 1 + 977a: 7444 zextb r1, r1 + 977c: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 977e: 3004 movi r0, 4 + 9780: 07e2 br 0x9744 // 9744 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 9782: 3a45 cmpnei r2, 5 + 9784: 080a bt 0x9798 // 9798 + 9786: 8323 ld.b r1, (r3, 0x3) + 9788: 32ff movi r2, 255 + 978a: 6486 cmpne r1, r2 + 978c: 0fe9 bf 0x975e // 975e + Debug_Inf.DevAddr++; //刷新地址 + 978e: 2100 addi r1, 1 + 9790: 7444 zextb r1, r1 + 9792: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 9794: 3005 movi r0, 5 + 9796: 07d7 br 0x9744 // 9744 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 9798: 3a46 cmpnei r2, 6 + 979a: 0809 bt 0x97ac // 97ac + 979c: 8348 ld.b r2, (r3, 0x8) + 979e: 3a40 cmpnei r2, 0 + 97a0: 0bdf bt 0x975e // 975e + Debug_Inf.TempDisplay++; + 97a2: 3201 movi r2, 1 + 97a4: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 97a6: 3101 movi r1, 1 + 97a8: 3006 movi r0, 6 + 97aa: 07cd br 0x9744 // 9744 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 97ac: 3a47 cmpnei r2, 7 + 97ae: 0809 bt 0x97c0 // 97c0 + 97b0: 8329 ld.b r1, (r3, 0x9) + 97b2: 3901 cmphsi r1, 2 + 97b4: 0bd5 bt 0x975e // 975e + Debug_Inf.Language_Selection++; + 97b6: 2100 addi r1, 1 + 97b8: 7444 zextb r1, r1 + 97ba: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 97bc: 3007 movi r0, 7 + 97be: 07c3 br 0x9744 // 9744 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 97c0: 3a48 cmpnei r2, 8 + 97c2: 0bce bt 0x975e // 975e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 97c4: 3103 movi r1, 3 + 97c6: 3008 movi r0, 8 + 97c8: 07be br 0x9744 // 9744 + if(TempCtrl.CardState == CARDIN) + 97ca: 1092 lrw r4, 0x2000080c // 9810 + 97cc: 8478 ld.b r3, (r4, 0x18) + 97ce: 3b41 cmpnei r3, 1 + 97d0: 0811 bt 0x97f2 // 97f2 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 97d2: 8462 ld.b r3, (r4, 0x2) + 97d4: 74ce sextb r3, r3 + 97d6: 3bdf btsti r3, 31 + 97d8: 0c0d bf 0x97f2 // 97f2 + TemCtrl_Temperature_Add(); //设置温度+ + 97da: e3fffd63 bsr 0x92a0 // 92a0 + if(g_eeprom.backlight_en == 0x01) + 97de: 106e lrw r3, 0x200004f4 // 9814 + 97e0: 8364 ld.b r3, (r3, 0x4) + 97e2: 3b41 cmpnei r3, 1 + 97e4: 0807 bt 0x97f2 // 97f2 + Controlled_LCD_Backlight(0x01); + 97e6: 3001 movi r0, 1 + 97e8: e3fff9d8 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 97ec: 3001 movi r0, 1 + 97ee: e3fffa43 bsr 0x8c74 // 8c74 + TempCtrl.BackLightTick = SysTick_1ms; + 97f2: 9560 ld.w r3, (r5, 0x0) + 97f4: 4b48 lsri r2, r3, 8 + 97f6: a470 st.b r3, (r4, 0x10) + 97f8: a451 st.b r2, (r4, 0x11) + 97fa: 4b50 lsri r2, r3, 16 + 97fc: 4b78 lsri r3, r3, 24 + 97fe: a452 st.b r2, (r4, 0x12) + 9800: a473 st.b r3, (r4, 0x13) +} + 9802: 07ae br 0x975e // 975e + 9804: 0000d077 .long 0x0000d077 + 9808: 20000835 .long 0x20000835 + 980c: 200000c0 .long 0x200000c0 + 9810: 2000080c .long 0x2000080c + 9814: 200004f4 .long 0x200004f4 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00009818 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 9818: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 981a: 109a lrw r4, 0x20000835 // 9880 + 981c: 8460 ld.b r3, (r4, 0x0) + 981e: 3b40 cmpnei r3, 0 + 9820: 082e bt 0x987c // 987c + { + Debug_Inf.Press_Flag |= (0x01<<0); + 9822: 8461 ld.b r3, (r4, 0x1) + 9824: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 9826: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 9828: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 982a: 0829 bt 0x987c // 987c + 982c: 1076 lrw r3, 0x2000080c // 9884 + 982e: 8362 ld.b r3, (r3, 0x2) + 9830: 74ce sextb r3, r3 + 9832: 3bdf btsti r3, 31 + 9834: 0824 bt 0x987c // 987c + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 9836: 3000 movi r0, 0 + 9838: 1034 lrw r1, 0xd08e // 9888 + 983a: e3ffe721 bsr 0x667c // 667c + Debug_Inf.Tick = SysTick_1ms; + 983e: 1074 lrw r3, 0x200000c0 // 988c + 9840: 320a movi r2, 10 + 9842: 9360 ld.w r3, (r3, 0x0) + 9844: 6090 addu r2, r4 + 9846: 4b28 lsri r1, r3, 8 + 9848: a260 st.b r3, (r2, 0x0) + 984a: a221 st.b r1, (r2, 0x1) + 984c: 4b30 lsri r1, r3, 16 + 984e: 4b78 lsri r3, r3, 24 + 9850: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 9852: 3300 movi r3, 0 + 9854: a461 st.b r3, (r4, 0x1) + //进入Debug模式 + Debug_Inf.State = 0x01; + 9856: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 9858: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 985a: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 985c: a462 st.b r3, (r4, 0x2) + //Debug_Inf.Renetwork = 0; + + HT1621_Clear(); + 985e: e3fff65f bsr 0x851c // 851c + Controlled_LCD_Backlight(0x01); + 9862: 3001 movi r0, 1 + 9864: e3fff99a bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 9868: 3001 movi r0, 1 + 986a: e3fffa05 bsr 0x8c74 // 8c74 + Controlled_Buzzer(0x01); + 986e: 3001 movi r0, 1 + 9870: e3fff970 bsr 0x8b50 // 8b50 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 9874: 8424 ld.b r1, (r4, 0x4) + 9876: 3001 movi r0, 1 + 9878: e3fffa16 bsr 0x8ca4 // 8ca4 + + } + } + +} + 987c: 1491 pop r4, r15 + 987e: 0000 bkpt + 9880: 20000835 .long 0x20000835 + 9884: 2000080c .long 0x2000080c + 9888: 0000d08e .long 0x0000d08e + 988c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00009890 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 9890: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 9892: 113f lrw r1, 0xd097 // 998c + 9894: 3000 movi r0, 0 + 9896: e3ffe6f3 bsr 0x667c // 667c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 989a: 117e lrw r3, 0x20000835 // 9990 + 989c: 8340 ld.b r2, (r3, 0x0) + 989e: 3a41 cmpnei r2, 1 + 98a0: 11bd lrw r5, 0x200000c0 // 9994 + 98a2: 0857 bt 0x9950 // 9950 + { + Debug_Inf.Tick = SysTick_1ms; + 98a4: 9540 ld.w r2, (r5, 0x0) + 98a6: 310a movi r1, 10 + 98a8: 604c addu r1, r3 + 98aa: 4a08 lsri r0, r2, 8 + 98ac: a140 st.b r2, (r1, 0x0) + 98ae: a101 st.b r0, (r1, 0x1) + 98b0: 4a10 lsri r0, r2, 16 + 98b2: 4a58 lsri r2, r2, 24 + 98b4: a143 st.b r2, (r1, 0x3) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 98b6: 8342 ld.b r2, (r3, 0x2) + 98b8: 3a41 cmpnei r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 98ba: a102 st.b r0, (r1, 0x2) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 98bc: 080b bt 0x98d2 // 98d2 + 98be: 8324 ld.b r1, (r3, 0x4) + 98c0: 3940 cmpnei r1, 0 + 98c2: 0c12 bf 0x98e6 // 98e6 + { + Debug_Inf.PipeFlag --; + 98c4: 2900 subi r1, 1 + 98c6: 7444 zextb r1, r1 + 98c8: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 98ca: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 98cc: e3fff9ec bsr 0x8ca4 // 8ca4 + 98d0: 040b br 0x98e6 // 98e6 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 98d2: 3a42 cmpnei r2, 2 + 98d4: 080a bt 0x98e8 // 98e8 + 98d6: 8305 ld.b r0, (r3, 0x5) + 98d8: 3840 cmpnei r0, 0 + 98da: 0c06 bf 0x98e6 // 98e6 + Debug_Inf.TempDiff--; + 98dc: 2800 subi r0, 1 + 98de: 7400 zextb r0, r0 + 98e0: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 98e2: e3fffa2f bsr 0x8d40 // 8d40 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 98e6: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 98e8: 3a43 cmpnei r2, 3 + 98ea: 0806 bt 0x98f6 // 98f6 + Debug_Inf.BackLight_En = 0x00; + 98ec: 3200 movi r2, 0 + 98ee: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 98f0: 3100 movi r1, 0 + 98f2: 3003 movi r0, 3 + 98f4: 07ec br 0x98cc // 98cc + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 98f6: 3a44 cmpnei r2, 4 + 98f8: 0809 bt 0x990a // 990a + 98fa: 8327 ld.b r1, (r3, 0x7) + 98fc: 3940 cmpnei r1, 0 + 98fe: 0ff4 bf 0x98e6 // 98e6 + Debug_Inf.KSens_Level--; + 9900: 2900 subi r1, 1 + 9902: 7444 zextb r1, r1 + 9904: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 9906: 3004 movi r0, 4 + 9908: 07e2 br 0x98cc // 98cc + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 990a: 3a45 cmpnei r2, 5 + 990c: 0809 bt 0x991e // 991e + 990e: 8323 ld.b r1, (r3, 0x3) + 9910: 3940 cmpnei r1, 0 + 9912: 0fea bf 0x98e6 // 98e6 + Debug_Inf.DevAddr--; //刷新地址 + 9914: 2900 subi r1, 1 + 9916: 7444 zextb r1, r1 + 9918: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 991a: 3005 movi r0, 5 + 991c: 07d8 br 0x98cc // 98cc + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 991e: 3a46 cmpnei r2, 6 + 9920: 0809 bt 0x9932 // 9932 + 9922: 8328 ld.b r1, (r3, 0x8) + 9924: 3940 cmpnei r1, 0 + 9926: 0fe0 bf 0x98e6 // 98e6 + Debug_Inf.TempDisplay--; + 9928: 2900 subi r1, 1 + 992a: 7444 zextb r1, r1 + 992c: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 992e: 3006 movi r0, 6 + 9930: 07ce br 0x98cc // 98cc + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 9932: 3a47 cmpnei r2, 7 + 9934: 0809 bt 0x9946 // 9946 + 9936: 8329 ld.b r1, (r3, 0x9) + 9938: 3940 cmpnei r1, 0 + 993a: 0fd6 bf 0x98e6 // 98e6 + Debug_Inf.Language_Selection--; + 993c: 2900 subi r1, 1 + 993e: 7444 zextb r1, r1 + 9940: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 9942: 3007 movi r0, 7 + 9944: 07c4 br 0x98cc // 98cc + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 9946: 3a48 cmpnei r2, 8 + 9948: 0bcf bt 0x98e6 // 98e6 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 994a: 3103 movi r1, 3 + 994c: 3008 movi r0, 8 + 994e: 07bf br 0x98cc // 98cc + if(TempCtrl.CardState == CARDIN) + 9950: 1092 lrw r4, 0x2000080c // 9998 + 9952: 8478 ld.b r3, (r4, 0x18) + 9954: 3b41 cmpnei r3, 1 + 9956: 0811 bt 0x9978 // 9978 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9958: 8462 ld.b r3, (r4, 0x2) + 995a: 74ce sextb r3, r3 + 995c: 3bdf btsti r3, 31 + 995e: 0c0d bf 0x9978 // 9978 + TemCtrl_Temperature_Dec(); //设置温度- + 9960: e3fffc88 bsr 0x9270 // 9270 + if(g_eeprom.backlight_en == 0x01) + 9964: 106e lrw r3, 0x200004f4 // 999c + 9966: 8364 ld.b r3, (r3, 0x4) + 9968: 3b41 cmpnei r3, 1 + 996a: 0807 bt 0x9978 // 9978 + Controlled_LCD_Backlight(0x01); + 996c: 3001 movi r0, 1 + 996e: e3fff915 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 9972: 3001 movi r0, 1 + 9974: e3fff980 bsr 0x8c74 // 8c74 + TempCtrl.BackLightTick = SysTick_1ms; + 9978: 9560 ld.w r3, (r5, 0x0) + 997a: 4b48 lsri r2, r3, 8 + 997c: a470 st.b r3, (r4, 0x10) + 997e: a451 st.b r2, (r4, 0x11) + 9980: 4b50 lsri r2, r3, 16 + 9982: 4b78 lsri r3, r3, 24 + 9984: a452 st.b r2, (r4, 0x12) + 9986: a473 st.b r3, (r4, 0x13) +} + 9988: 07af br 0x98e6 // 98e6 + 998a: 0000 bkpt + 998c: 0000d097 .long 0x0000d097 + 9990: 20000835 .long 0x20000835 + 9994: 200000c0 .long 0x200000c0 + 9998: 2000080c .long 0x2000080c + 999c: 200004f4 .long 0x200004f4 + +Disassembly of section .text.KEY4_Long_Press: + +000099a0 : + +void KEY4_Long_Press(void) +{ + 99a0: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 99a2: 109a lrw r4, 0x20000835 // 9a08 + 99a4: 8460 ld.b r3, (r4, 0x0) + 99a6: 3b40 cmpnei r3, 0 + 99a8: 082e bt 0x9a04 // 9a04 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 99aa: 8461 ld.b r3, (r4, 0x1) + 99ac: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 99ae: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 99b0: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 99b2: 0829 bt 0x9a04 // 9a04 + 99b4: 1076 lrw r3, 0x2000080c // 9a0c + 99b6: 8362 ld.b r3, (r3, 0x2) + 99b8: 74ce sextb r3, r3 + 99ba: 3bdf btsti r3, 31 + 99bc: 0824 bt 0x9a04 // 9a04 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 99be: 1035 lrw r1, 0xd08e // 9a10 + 99c0: 3000 movi r0, 0 + 99c2: e3ffe65d bsr 0x667c // 667c + Debug_Inf.Tick = SysTick_1ms; + 99c6: 1074 lrw r3, 0x200000c0 // 9a14 + 99c8: 320a movi r2, 10 + 99ca: 9360 ld.w r3, (r3, 0x0) + 99cc: 6090 addu r2, r4 + 99ce: 4b28 lsri r1, r3, 8 + 99d0: a260 st.b r3, (r2, 0x0) + 99d2: a221 st.b r1, (r2, 0x1) + 99d4: 4b30 lsri r1, r3, 16 + 99d6: 4b78 lsri r3, r3, 24 + 99d8: a263 st.b r3, (r2, 0x3) + Debug_Inf.Press_Flag = 0x00; + 99da: 3300 movi r3, 0 + 99dc: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 99de: 3001 movi r0, 1 + Debug_Inf.State = 0x01; + 99e0: 3301 movi r3, 1 + Debug_Inf.Tick = SysTick_1ms; + 99e2: a222 st.b r1, (r2, 0x2) + Debug_Inf.State = 0x01; + 99e4: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 99e6: a462 st.b r3, (r4, 0x2) + Controlled_LCD_Backlight(0x01); + 99e8: e3fff8d8 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 99ec: 3001 movi r0, 1 + 99ee: e3fff943 bsr 0x8c74 // 8c74 + HT1621_Clear(); + 99f2: e3fff595 bsr 0x851c // 851c + Controlled_Buzzer(0x01); + 99f6: 3001 movi r0, 1 + 99f8: e3fff8ac bsr 0x8b50 // 8b50 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 99fc: 8424 ld.b r1, (r4, 0x4) + 99fe: 3001 movi r0, 1 + 9a00: e3fff952 bsr 0x8ca4 // 8ca4 + + } + } +} + 9a04: 1491 pop r4, r15 + 9a06: 0000 bkpt + 9a08: 20000835 .long 0x20000835 + 9a0c: 2000080c .long 0x2000080c + 9a10: 0000d08e .long 0x0000d08e + 9a14: 200000c0 .long 0x200000c0 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00009a18 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 9a18: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 9a1a: 103c lrw r1, 0xd0ae // 9a88 + 9a1c: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 9a1e: 109c lrw r4, 0x20000835 // 9a8c + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 9a20: e3ffe62e bsr 0x667c // 667c + if(Debug_Inf.State == 0x00) //正常模式 + 9a24: 8460 ld.b r3, (r4, 0x0) + 9a26: 3b40 cmpnei r3, 0 + 9a28: 081b bt 0x9a5e // 9a5e + { + if(TempCtrl.CardState == CARDIN) + 9a2a: 109a lrw r4, 0x2000080c // 9a90 + 9a2c: 8478 ld.b r3, (r4, 0x18) + 9a2e: 3b41 cmpnei r3, 1 + 9a30: 080d bt 0x9a4a // 9a4a + { + TemCtrl_OnOff_Set(); + 9a32: e3fffc4f bsr 0x92d0 // 92d0 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 9a36: 1078 lrw r3, 0x200000c0 // 9a94 + 9a38: 9360 ld.w r3, (r3, 0x0) + 9a3a: 4b48 lsri r2, r3, 8 + 9a3c: a470 st.b r3, (r4, 0x10) + 9a3e: a451 st.b r2, (r4, 0x11) + 9a40: 4b50 lsri r2, r3, 16 + 9a42: 4b78 lsri r3, r3, 24 + 9a44: a452 st.b r2, (r4, 0x12) + 9a46: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 9a48: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 9a4a: 3001 movi r0, 1 + 9a4c: e0000028 bsr 0x9a9c // 9a9c + Controlled_LCD_Backlight(1); + 9a50: 3001 movi r0, 1 + 9a52: e3fff8a3 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(1); + 9a56: 3001 movi r0, 1 + 9a58: e3fff90e bsr 0x8c74 // 8c74 + 9a5c: 07ed br 0x9a36 // 9a36 + else if(Debug_Inf.State == 0x01) //设置模式 + 9a5e: 3b41 cmpnei r3, 1 + 9a60: 0bf4 bt 0x9a48 // 9a48 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 9a62: 102e lrw r1, 0xd0c3 // 9a98 + 9a64: 3000 movi r0, 0 + 9a66: e3ffe60b bsr 0x667c // 667c + Debug_Inf.State = 0x00; + 9a6a: 3300 movi r3, 0 + 9a6c: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 9a6e: 3301 movi r3, 1 + 9a70: a462 st.b r3, (r4, 0x2) + HT1621_Clear(); + 9a72: e3fff555 bsr 0x851c // 851c + Controlled_LCD_Backlight(0x00); + 9a76: 3000 movi r0, 0 + 9a78: e3fff890 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x00); + 9a7c: 3000 movi r0, 0 + 9a7e: e3fff8fb bsr 0x8c74 // 8c74 + Dev_SaveData(); + 9a82: e00002d3 bsr 0xa028 // a028 +} + 9a86: 07e1 br 0x9a48 // 9a48 + 9a88: 0000d0ae .long 0x0000d0ae + 9a8c: 20000835 .long 0x20000835 + 9a90: 2000080c .long 0x2000080c + 9a94: 200000c0 .long 0x200000c0 + 9a98: 0000d0c3 .long 0x0000d0c3 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00009a9c : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 9a9c: 14d1 push r4, r15 + if(state == TEMP_ON) + 9a9e: 3841 cmpnei r0, 1 + 9aa0: 0821 bt 0x9ae2 // 9ae2 + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 9aa2: 1072 lrw r3, 0x20000835 // 9ae8 + 9aa4: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 9aa6: 1092 lrw r4, 0x2000080c // 9aec + Control_Prompt_Text(Debug_Inf.Language_Selection); + 9aa8: e3fff802 bsr 0x8aac // 8aac + Control_Mode(TempCtrl.TemState_Now.mode); + 9aac: 8402 ld.b r0, (r4, 0x2) + 9aae: 4019 lsli r0, r0, 25 + 9ab0: 481d lsri r0, r0, 29 + 9ab2: e3fff673 bsr 0x8798 // 8798 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 9ab6: 8402 ld.b r0, (r4, 0x2) + 9ab8: 401c lsli r0, r0, 28 + 9aba: 481d lsri r0, r0, 29 + 9abc: e3fff790 bsr 0x89dc // 89dc + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 9ac0: 8401 ld.b r0, (r4, 0x1) + 9ac2: 3840 cmpnei r0, 0 + 9ac4: 0c0c bf 0x9adc // 9adc + 9ac6: 330a movi r3, 10 + 9ac8: 7c0c mult r0, r3 + 9aca: e3fff597 bsr 0x85f8 // 85f8 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 9ace: 8400 ld.b r0, (r4, 0x0) + 9ad0: 330a movi r3, 10 + 9ad2: 7c0c mult r0, r3 + 9ad4: 7401 zexth r0, r0 + 9ad6: e3fff5f9 bsr 0x86c8 // 86c8 + } + else + { + HT1621_Clear(); + } +} + 9ada: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 9adc: 30a0 movi r0, 160 + 9ade: 4001 lsli r0, r0, 1 + 9ae0: 07f5 br 0x9aca // 9aca + HT1621_Clear(); + 9ae2: e3fff51d bsr 0x851c // 851c +} + 9ae6: 07fa br 0x9ada // 9ada + 9ae8: 20000835 .long 0x20000835 + 9aec: 2000080c .long 0x2000080c + +Disassembly of section .text.DisPlay_Init: + +00009af0 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 9af0: 14d0 push r15 + HT1621_ALLON(); + 9af2: e3fff53d bsr 0x856c // 856c + + delay_nms(5000); + 9af6: 1005 lrw r0, 0x1388 // 9b08 + 9af8: e3ffdd12 bsr 0x551c // 551c + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 9afc: 1064 lrw r3, 0x2000080c // 9b0c + 9afe: 8302 ld.b r0, (r3, 0x2) + 9b00: 4807 lsri r0, r0, 7 + 9b02: e3ffffcd bsr 0x9a9c // 9a9c + +} + 9b06: 1490 pop r15 + 9b08: 00001388 .long 0x00001388 + 9b0c: 2000080c .long 0x2000080c + +Disassembly of section .text.DisPlay_Task: + +00009b10 : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 9b10: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 9b12: 0168 lrw r3, 0x20000835 // 9e6c + 9b14: 8360 ld.b r3, (r3, 0x0) + 9b16: 3b40 cmpnei r3, 0 + 9b18: 0c03 bf 0x9b1e // 9b1e + 9b1a: e8000250 br 0x9fba // 9fba + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 9b1e: 018a lrw r4, 0x2000080c // 9e70 + 9b20: 8451 ld.b r2, (r4, 0x11) + 9b22: 8470 ld.b r3, (r4, 0x10) + 9b24: 4248 lsli r2, r2, 8 + 9b26: 6c8c or r2, r3 + 9b28: 8472 ld.b r3, (r4, 0x12) + 9b2a: 4370 lsli r3, r3, 16 + 9b2c: 6c8c or r2, r3 + 9b2e: 8473 ld.b r3, (r4, 0x13) + 9b30: 01ae lrw r5, 0x200000c0 // 9e74 + 9b32: 4378 lsli r3, r3, 24 + 9b34: 6cc8 or r3, r2 + 9b36: 9520 ld.w r1, (r5, 0x0) + 9b38: 604e subu r1, r3 + 9b3a: 014f lrw r2, 0xbb8 // 9e78 + 9b3c: 6448 cmphs r2, r1 + 9b3e: 08b7 bt 0x9cac // 9cac + 9b40: 8458 ld.b r2, (r4, 0x18) + 9b42: 3a40 cmpnei r2, 0 + 9b44: 08b4 bt 0x9cac // 9cac + { + TempCtrl.BackLightTick = SysTick_1ms; + 9b46: 9560 ld.w r3, (r5, 0x0) + 9b48: 4b48 lsri r2, r3, 8 + 9b4a: a470 st.b r3, (r4, 0x10) + 9b4c: a451 st.b r2, (r4, 0x11) + 9b4e: 4b50 lsri r2, r3, 16 + 9b50: 4b78 lsri r3, r3, 24 + 9b52: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 9b54: 3300 movi r3, 0 + 9b56: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 9b58: 8462 ld.b r3, (r4, 0x2) + 9b5a: 74ce sextb r3, r3 + 9b5c: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 9b5e: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 9b60: 0803 bt 0x9b66 // 9b66 + { + HT1621_Clear(); + 9b62: e3fff4dd bsr 0x851c // 851c + } + //关背光 + Controlled_LCD_Backlight(0); + 9b66: 3000 movi r0, 0 + 9b68: e3fff818 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x00); + 9b6c: 3000 movi r0, 0 + 9b6e: e3fff883 bsr 0x8c74 // 8c74 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 9b72: 013c lrw r1, 0xd0cd // 9e7c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 9b74: 3000 movi r0, 0 + 9b76: e3ffe583 bsr 0x667c // 667c + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 9b7a: 8455 ld.b r2, (r4, 0x15) + 9b7c: 8474 ld.b r3, (r4, 0x14) + 9b7e: 4248 lsli r2, r2, 8 + 9b80: 6c8c or r2, r3 + 9b82: 8476 ld.b r3, (r4, 0x16) + 9b84: 4370 lsli r3, r3, 16 + 9b86: 6c8c or r2, r3 + 9b88: 8477 ld.b r3, (r4, 0x17) + 9b8a: 4378 lsli r3, r3, 24 + 9b8c: 6cc8 or r3, r2 + 9b8e: 9520 ld.w r1, (r5, 0x0) + 9b90: 604e subu r1, r3 + 9b92: 33fa movi r3, 250 + 9b94: 4362 lsli r3, r3, 2 + 9b96: 644c cmphs r3, r1 + 9b98: 081b bt 0x9bce // 9bce + { + TempCtrl.SceneNoTick = SysTick_1ms; + 9b9a: 9560 ld.w r3, (r5, 0x0) + 9b9c: 4b48 lsri r2, r3, 8 + 9b9e: a474 st.b r3, (r4, 0x14) + 9ba0: a455 st.b r2, (r4, 0x15) + 9ba2: 4b50 lsri r2, r3, 16 + 9ba4: 4b78 lsri r3, r3, 24 + 9ba6: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 9ba8: 847b ld.b r3, (r4, 0x1b) + 9baa: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 9bac: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 9bae: 08a7 bt 0x9cfc // 9cfc + 9bb0: 847c ld.b r3, (r4, 0x1c) + 9bb2: 3b41 cmpnei r3, 1 + 9bb4: 08a4 bt 0x9cfc // 9cfc + { + TempCtrl.SceneFlag = 0x00; + 9bb6: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 9bb8: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 9bba: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 9bbc: e3fff7ee bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x00); + 9bc0: 3000 movi r0, 0 + 9bc2: e3fff859 bsr 0x8c74 // 8c74 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 9bc6: 0230 lrw r1, 0xd0ef // 9e80 + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 9bc8: 3000 movi r0, 0 + 9bca: e3ffe559 bsr 0x667c // 667c + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 9bce: 02f1 lrw r7, 0x200004f4 // 9e84 + 9bd0: 8764 ld.b r3, (r7, 0x4) + 9bd2: 3b41 cmpnei r3, 1 + 9bd4: 081e bt 0x9c10 // 9c10 + 9bd6: 8451 ld.b r2, (r4, 0x11) + 9bd8: 8470 ld.b r3, (r4, 0x10) + 9bda: 4248 lsli r2, r2, 8 + 9bdc: 6c8c or r2, r3 + 9bde: 8472 ld.b r3, (r4, 0x12) + 9be0: 4370 lsli r3, r3, 16 + 9be2: 6c8c or r2, r3 + 9be4: 8473 ld.b r3, (r4, 0x13) + 9be6: 4378 lsli r3, r3, 24 + 9be8: 6cc8 or r3, r2 + 9bea: 9520 ld.w r1, (r5, 0x0) + 9bec: 604e subu r1, r3 + 9bee: 0278 lrw r3, 0x1388 // 9e88 + 9bf0: 644c cmphs r3, r1 + 9bf2: 080f bt 0x9c10 // 9c10 + { + TempCtrl.BackLightTick = SysTick_1ms; + 9bf4: 9560 ld.w r3, (r5, 0x0) + 9bf6: 4b48 lsri r2, r3, 8 + 9bf8: a470 st.b r3, (r4, 0x10) + 9bfa: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 9bfc: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 9bfe: 4b50 lsri r2, r3, 16 + 9c00: 4b78 lsri r3, r3, 24 + 9c02: a452 st.b r2, (r4, 0x12) + 9c04: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 9c06: e3fff7c9 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x00); + 9c0a: 3000 movi r0, 0 + 9c0c: e3fff834 bsr 0x8c74 // 8c74 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9c10: 8402 ld.b r0, (r4, 0x2) + 9c12: 74c2 sextb r3, r0 + 9c14: 3bdf btsti r3, 31 + 9c16: 03c1 lrw r6, 0x2000082c // 9e8c + 9c18: 0d4a bf 0x9eac // 9eac + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 9c1a: 8466 ld.b r3, (r4, 0x6) + 9c1c: 4019 lsli r0, r0, 25 + 9c1e: 4359 lsli r2, r3, 25 + 9c20: 481d lsri r0, r0, 29 + 9c22: 4a5d lsri r2, r2, 29 + 9c24: 640a cmpne r2, r0 + 9c26: 0c21 bf 0x9c68 // 9c68 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 9c28: 3170 movi r1, 112 + 9c2a: 4044 lsli r2, r0, 4 + 9c2c: 68c5 andn r3, r1 + 9c2e: 6cc8 or r3, r2 + 9c30: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 9c32: e3fff5b3 bsr 0x8798 // 8798 + + SYSCON->UREG0 &= 0xFFFF00FF; + 9c36: 0368 lrw r3, 0x2000005c // 9e90 + 9c38: 31ff movi r1, 255 + 9c3a: 9340 ld.w r2, (r3, 0x0) + 9c3c: 22ff addi r2, 256 + 9c3e: 9260 ld.w r3, (r2, 0x0) + 9c40: 4128 lsli r1, r1, 8 + 9c42: 68c5 andn r3, r1 + 9c44: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 9c46: 8462 ld.b r3, (r4, 0x2) + 9c48: 4379 lsli r3, r3, 25 + 9c4a: 4b7d lsri r3, r3, 29 + 9c4c: 9220 ld.w r1, (r2, 0x0) + 9c4e: 4368 lsli r3, r3, 8 + 9c50: 6cc4 or r3, r1 + 9c52: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9c54: 3301 movi r3, 1 + 9c56: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9c58: 9560 ld.w r3, (r5, 0x0) + 9c5a: 4b28 lsri r1, r3, 8 + 9c5c: a665 st.b r3, (r6, 0x5) + 9c5e: a626 st.b r1, (r6, 0x6) + 9c60: 4b30 lsri r1, r3, 16 + 9c62: 4b78 lsri r3, r3, 24 + 9c64: a627 st.b r1, (r6, 0x7) + 9c66: a668 st.b r3, (r6, 0x8) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 9c68: 8402 ld.b r0, (r4, 0x2) + 9c6a: 8466 ld.b r3, (r4, 0x6) + 9c6c: 401c lsli r0, r0, 28 + 9c6e: 437c lsli r3, r3, 28 + 9c70: 4b7d lsri r3, r3, 29 + 9c72: 481d lsri r0, r0, 29 + 9c74: 640e cmpne r3, r0 + 9c76: 0377 lrw r3, 0x20000234 // 9e94 + 9c78: 0804 bt 0x9c80 // 9c80 + 9c7a: 8340 ld.b r2, (r3, 0x0) + 9c7c: 3a41 cmpnei r2, 1 + 9c7e: 087b bt 0x9d74 // 9d74 + { + OpenDisPlay_Flag = 0x00; + 9c80: 3200 movi r2, 0 + 9c82: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 9c84: 8466 ld.b r3, (r4, 0x6) + 9c86: 310e movi r1, 14 + 9c88: 4041 lsli r2, r0, 1 + 9c8a: 68c5 andn r3, r1 + 9c8c: 6cc8 or r3, r2 + 9c8e: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 9c90: e3fff6a6 bsr 0x89dc // 89dc + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 9c94: 3270 movi r2, 112 + 9c96: 8462 ld.b r3, (r4, 0x2) + 9c98: 68c8 and r3, r2 + 9c9a: 3240 movi r2, 64 + 9c9c: 648e cmpne r3, r2 + 9c9e: 0843 bt 0x9d24 // 9d24 + 9ca0: 8761 ld.b r3, (r7, 0x1) + 9ca2: 3b42 cmpnei r3, 2 + 9ca4: 0840 bt 0x9d24 // 9d24 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 9ca6: e00002a5 bsr 0xa1f0 // a1f0 + break; + 9caa: 044b br 0x9d40 // 9d40 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 9cac: 9540 ld.w r2, (r5, 0x0) + 9cae: 608e subu r2, r3 + 9cb0: 33fa movi r3, 250 + 9cb2: 4363 lsli r3, r3, 3 + 9cb4: 648c cmphs r3, r2 + 9cb6: 0b62 bt 0x9b7a // 9b7a + 9cb8: 8478 ld.b r3, (r4, 0x18) + 9cba: 3b41 cmpnei r3, 1 + 9cbc: 0b5f bt 0x9b7a // 9b7a + 9cbe: 8479 ld.b r3, (r4, 0x19) + 9cc0: 3b41 cmpnei r3, 1 + 9cc2: 0b5c bt 0x9b7a // 9b7a + TempCtrl.BackLightTick = SysTick_1ms; + 9cc4: 9560 ld.w r3, (r5, 0x0) + 9cc6: 4b48 lsri r2, r3, 8 + 9cc8: a470 st.b r3, (r4, 0x10) + 9cca: a451 st.b r2, (r4, 0x11) + 9ccc: 4b50 lsri r2, r3, 16 + 9cce: 4b78 lsri r3, r3, 24 + 9cd0: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9cd2: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 9cd4: 3300 movi r3, 0 + 9cd6: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9cd8: 74c2 sextb r3, r0 + 9cda: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 9cdc: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9cde: 0f4e bf 0x9b7a // 9b7a + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 9ce0: 4807 lsri r0, r0, 7 + 9ce2: e3fffedd bsr 0x9a9c // 9a9c + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 9ce6: 847b ld.b r3, (r4, 0x1b) + 9ce8: 3b44 cmpnei r3, 4 + 9cea: 0f48 bf 0x9b7a // 9b7a + Controlled_LCD_Backlight(1); + 9cec: 3001 movi r0, 1 + 9cee: e3fff755 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 9cf2: 3001 movi r0, 1 + 9cf4: e3fff7c0 bsr 0x8c74 // 8c74 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 9cf8: 1328 lrw r1, 0xd0df // 9e98 + 9cfa: 073d br 0x9b74 // 9b74 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 9cfc: 8462 ld.b r3, (r4, 0x2) + 9cfe: 74ce sextb r3, r3 + 9d00: 3bdf btsti r3, 31 + 9d02: 0f66 bf 0x9bce // 9bce + 9d04: 8478 ld.b r3, (r4, 0x18) + 9d06: 3b41 cmpnei r3, 1 + 9d08: 0b63 bt 0x9bce // 9bce + 9d0a: 847c ld.b r3, (r4, 0x1c) + 9d0c: 3b41 cmpnei r3, 1 + 9d0e: 0b60 bt 0x9bce // 9bce + TempCtrl.SceneFlag = 0x00; + 9d10: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 9d12: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 9d14: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 9d16: e3fff741 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x01); + 9d1a: 3001 movi r0, 1 + 9d1c: e3fff7ac bsr 0x8c74 // 8c74 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 9d20: 123f lrw r1, 0xd0ff // 9e9c + 9d22: 0753 br 0x9bc8 // 9bc8 + switch(TempCtrl.TemState_Now.fan) + 9d24: 8402 ld.b r0, (r4, 0x2) + 9d26: 401c lsli r0, r0, 28 + 9d28: 481d lsri r0, r0, 29 + 9d2a: 2800 subi r0, 1 + 9d2c: 3803 cmphsi r0, 4 + 9d2e: 0809 bt 0x9d40 // 9d40 + 9d30: e3ffcbf0 bsr 0x3510 // 3510 <___gnu_csky_case_shi> + 9d34: 01440004 .long 0x01440004 + 9d38: ffb90147 .long 0xffb90147 + Relay_Low(); + 9d3c: e000024c bsr 0xa1d4 // a1d4 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 9d40: 1274 lrw r3, 0x2000005c // 9e90 + 9d42: 31ff movi r1, 255 + 9d44: 9340 ld.w r2, (r3, 0x0) + 9d46: 22ff addi r2, 256 + 9d48: 9260 ld.w r3, (r2, 0x0) + 9d4a: 4130 lsli r1, r1, 16 + 9d4c: 68c5 andn r3, r1 + 9d4e: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 9d50: 8462 ld.b r3, (r4, 0x2) + 9d52: 437c lsli r3, r3, 28 + 9d54: 4b7d lsri r3, r3, 29 + 9d56: 9220 ld.w r1, (r2, 0x0) + 9d58: 4370 lsli r3, r3, 16 + 9d5a: 6cc4 or r3, r1 + 9d5c: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9d5e: 3301 movi r3, 1 + 9d60: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9d62: 9560 ld.w r3, (r5, 0x0) + 9d64: 124f lrw r2, 0x20000831 // 9ea0 + 9d66: 4b28 lsri r1, r3, 8 + 9d68: a260 st.b r3, (r2, 0x0) + 9d6a: a221 st.b r1, (r2, 0x1) + 9d6c: 4b30 lsri r1, r3, 16 + 9d6e: 4b78 lsri r3, r3, 24 + 9d70: a222 st.b r1, (r2, 0x2) + 9d72: a263 st.b r3, (r2, 0x3) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 9d74: 8401 ld.b r0, (r4, 0x1) + 9d76: 8465 ld.b r3, (r4, 0x5) + 9d78: 640e cmpne r3, r0 + 9d7a: 0c1f bf 0x9db8 // 9db8 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 9d7c: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 9d7e: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 9d80: 0924 bt 0x9fc8 // 9fc8 + { + Set_Temperature_Display(320); + 9d82: 30a0 movi r0, 160 + 9d84: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 9d86: e3fff439 bsr 0x85f8 // 85f8 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 9d8a: 1262 lrw r3, 0x2000005c // 9e90 + 9d8c: 9360 ld.w r3, (r3, 0x0) + 9d8e: 23ff addi r3, 256 + 9d90: 9340 ld.w r2, (r3, 0x0) + 9d92: 4248 lsli r2, r2, 8 + 9d94: 4a48 lsri r2, r2, 8 + 9d96: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 9d98: 8441 ld.b r2, (r4, 0x1) + 9d9a: 9320 ld.w r1, (r3, 0x0) + 9d9c: 4258 lsli r2, r2, 24 + 9d9e: 6c84 or r2, r1 + 9da0: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9da2: 3301 movi r3, 1 + 9da4: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9da6: 9560 ld.w r3, (r5, 0x0) + 9da8: 115e lrw r2, 0x20000831 // 9ea0 + 9daa: 4b28 lsri r1, r3, 8 + 9dac: a260 st.b r3, (r2, 0x0) + 9dae: a221 st.b r1, (r2, 0x1) + 9db0: 4b30 lsri r1, r3, 16 + 9db2: 4b78 lsri r3, r3, 24 + 9db4: a222 st.b r1, (r2, 0x2) + 9db6: a263 st.b r3, (r2, 0x3) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 9db8: 8409 ld.b r0, (r4, 0x9) + 9dba: 8468 ld.b r3, (r4, 0x8) + 9dbc: 4008 lsli r0, r0, 8 + 9dbe: 6c0c or r0, r3 + 9dc0: 846b ld.b r3, (r4, 0xb) + 9dc2: 844a ld.b r2, (r4, 0xa) + 9dc4: 4368 lsli r3, r3, 8 + 9dc6: 6cc8 or r3, r2 + 9dc8: 640e cmpne r3, r0 + 9dca: 0c12 bf 0x9dee // 9dee + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 9dcc: 4868 lsri r3, r0, 8 + 9dce: a46b st.b r3, (r4, 0xb) + 9dd0: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 9dd2: e3fff47b bsr 0x86c8 // 86c8 + + SYSCON->UREG0 &= 0x00FFFFFF; + 9dd6: 116f lrw r3, 0x2000005c // 9e90 + 9dd8: 9360 ld.w r3, (r3, 0x0) + 9dda: 23ff addi r3, 256 + 9ddc: 9340 ld.w r2, (r3, 0x0) + 9dde: 4248 lsli r2, r2, 8 + 9de0: 4a48 lsri r2, r2, 8 + 9de2: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 9de4: 8441 ld.b r2, (r4, 0x1) + 9de6: 9320 ld.w r1, (r3, 0x0) + 9de8: 4258 lsli r2, r2, 24 + 9dea: 6c84 or r2, r1 + 9dec: b340 st.w r2, (r3, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 9dee: 844f ld.b r2, (r4, 0xf) + 9df0: 846e ld.b r3, (r4, 0xe) + 9df2: 4248 lsli r2, r2, 8 + 9df4: 6c8c or r2, r3 + 9df6: 846d ld.b r3, (r4, 0xd) + 9df8: 842c ld.b r1, (r4, 0xc) + 9dfa: 4368 lsli r3, r3, 8 + 9dfc: 6cc4 or r3, r1 + 9dfe: 648c cmphs r3, r2 + 9e00: 0804 bt 0x9e08 // 9e08 + 9e02: 5a2d subu r1, r2, r3 + 9e04: 392a cmplti r1, 11 + 9e06: 0c06 bf 0x9e12 // 9e12 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 9e08: 64c8 cmphs r2, r3 + 9e0a: 0812 bt 0x9e2e // 9e2e + 9e0c: 5b49 subu r2, r3, r2 + 9e0e: 3a2a cmplti r2, 11 + 9e10: 080f bt 0x9e2e // 9e2e + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 9e12: 9540 ld.w r2, (r5, 0x0) + 9e14: 1124 lrw r1, 0x2000082d // 9ea4 + 9e16: 4a08 lsri r0, r2, 8 + 9e18: a140 st.b r2, (r1, 0x0) + 9e1a: a101 st.b r0, (r1, 0x1) + 9e1c: 4a10 lsri r0, r2, 16 + 9e1e: 4a58 lsri r2, r2, 24 + 9e20: a143 st.b r2, (r1, 0x3) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9e22: 4b48 lsri r2, r3, 8 + 9e24: a44f st.b r2, (r4, 0xf) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 9e26: 3201 movi r2, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9e28: a102 st.b r0, (r1, 0x2) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9e2a: a46e st.b r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 9e2c: a640 st.b r2, (r6, 0x0) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 9e2e: 8602 ld.b r0, (r6, 0x2) + 9e30: 8641 ld.b r2, (r6, 0x1) + 9e32: 4008 lsli r0, r0, 8 + 9e34: 6c08 or r0, r2 + 9e36: 8643 ld.b r2, (r6, 0x3) + 9e38: 4250 lsli r2, r2, 16 + 9e3a: 6c08 or r0, r2 + 9e3c: 8644 ld.b r2, (r6, 0x4) + 9e3e: 4258 lsli r2, r2, 24 + 9e40: 6c80 or r2, r0 + 9e42: 9520 ld.w r1, (r5, 0x0) + 9e44: 604a subu r1, r2 + 9e46: 1059 lrw r2, 0x752f // 9ea8 + 9e48: 6448 cmphs r2, r1 + 9e4a: 0831 bt 0x9eac // 9eac + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 9e4c: 9540 ld.w r2, (r5, 0x0) + 9e4e: 1036 lrw r1, 0x2000082d // 9ea4 + 9e50: 4a08 lsri r0, r2, 8 + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9e52: a46e st.b r3, (r4, 0xe) + 9e54: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9e56: a140 st.b r2, (r1, 0x0) + 9e58: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9e5a: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9e5c: 4a10 lsri r0, r2, 16 + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 9e5e: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9e60: 4a58 lsri r2, r2, 24 + 9e62: a102 st.b r0, (r1, 0x2) + 9e64: a143 st.b r2, (r1, 0x3) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 9e66: a660 st.b r3, (r6, 0x0) + 9e68: 0422 br 0x9eac // 9eac + 9e6a: 0000 bkpt + 9e6c: 20000835 .long 0x20000835 + 9e70: 2000080c .long 0x2000080c + 9e74: 200000c0 .long 0x200000c0 + 9e78: 00000bb8 .long 0x00000bb8 + 9e7c: 0000d0cd .long 0x0000d0cd + 9e80: 0000d0ef .long 0x0000d0ef + 9e84: 200004f4 .long 0x200004f4 + 9e88: 00001388 .long 0x00001388 + 9e8c: 2000082c .long 0x2000082c + 9e90: 2000005c .long 0x2000005c + 9e94: 20000234 .long 0x20000234 + 9e98: 0000d0df .long 0x0000d0df + 9e9c: 0000d0ff .long 0x0000d0ff + 9ea0: 20000831 .long 0x20000831 + 9ea4: 2000082d .long 0x2000082d + 9ea8: 0000752f .long 0x0000752f + + } + } + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 9eac: 8462 ld.b r3, (r4, 0x2) + 9eae: 8446 ld.b r2, (r4, 0x6) + 9eb0: 4b07 lsri r0, r3, 7 + 9eb2: 4a47 lsri r2, r2, 7 + 9eb4: 640a cmpne r2, r0 + 9eb6: 0c2e bf 0x9f12 // 9f12 + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 9eb8: 74ce sextb r3, r3 + 9eba: 3bdf btsti r3, 31 + 9ebc: 0c04 bf 0x9ec4 // 9ec4 + OpenDisPlay_Flag = 1; + 9ebe: 1265 lrw r3, 0x20000234 // 9fd0 + 9ec0: 3201 movi r2, 1 + 9ec2: a340 st.b r2, (r3, 0x0) + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 9ec4: 317f movi r1, 127 + 9ec6: 8466 ld.b r3, (r4, 0x6) + 9ec8: 4047 lsli r2, r0, 7 + 9eca: 68c4 and r3, r1 + 9ecc: 6cc8 or r3, r2 + 9ece: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 9ed0: e3fff664 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 9ed4: 8402 ld.b r0, (r4, 0x2) + 9ed6: 4807 lsri r0, r0, 7 + 9ed8: e3fff6ce bsr 0x8c74 // 8c74 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 9edc: 8402 ld.b r0, (r4, 0x2) + 9ede: 4807 lsri r0, r0, 7 + 9ee0: e3fffdde bsr 0x9a9c // 9a9c + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 9ee4: 117c lrw r3, 0x2000005c // 9fd4 + 9ee6: 31ff movi r1, 255 + 9ee8: 9340 ld.w r2, (r3, 0x0) + 9eea: 22ff addi r2, 256 + 9eec: 9260 ld.w r3, (r2, 0x0) + 9eee: 68c5 andn r3, r1 + 9ef0: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 9ef2: 8462 ld.b r3, (r4, 0x2) + 9ef4: 9220 ld.w r1, (r2, 0x0) + 9ef6: 4b67 lsri r3, r3, 7 + 9ef8: 6cc4 or r3, r1 + 9efa: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9efc: 3301 movi r3, 1 + 9efe: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9f00: 9560 ld.w r3, (r5, 0x0) + 9f02: 1156 lrw r2, 0x20000831 // 9fd8 + 9f04: 4b28 lsri r1, r3, 8 + 9f06: a260 st.b r3, (r2, 0x0) + 9f08: a221 st.b r1, (r2, 0x1) + 9f0a: 4b30 lsri r1, r3, 16 + 9f0c: 4b78 lsri r3, r3, 24 + 9f0e: a222 st.b r1, (r2, 0x2) + 9f10: a263 st.b r3, (r2, 0x3) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 9f12: 8660 ld.b r3, (r6, 0x0) + 9f14: 3b41 cmpnei r3, 1 + 9f16: 082b bt 0x9f6c // 9f6c + 9f18: 8646 ld.b r2, (r6, 0x6) + 9f1a: 8665 ld.b r3, (r6, 0x5) + 9f1c: 4248 lsli r2, r2, 8 + 9f1e: 6c8c or r2, r3 + 9f20: 8667 ld.b r3, (r6, 0x7) + 9f22: 4370 lsli r3, r3, 16 + 9f24: 6c8c or r2, r3 + 9f26: 8668 ld.b r3, (r6, 0x8) + 9f28: 4378 lsli r3, r3, 24 + 9f2a: 6cc8 or r3, r2 + 9f2c: 9520 ld.w r1, (r5, 0x0) + 9f2e: 604e subu r1, r3 + 9f30: 116b lrw r3, 0x3e7 // 9fdc + 9f32: 644c cmphs r3, r1 + 9f34: 081c bt 0x9f6c // 9f6c + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 9f36: 9560 ld.w r3, (r5, 0x0) + 9f38: 1148 lrw r2, 0x20000831 // 9fd8 + 9f3a: 4b28 lsri r1, r3, 8 + 9f3c: a260 st.b r3, (r2, 0x0) + 9f3e: a221 st.b r1, (r2, 0x1) + 9f40: 4b30 lsri r1, r3, 16 + 9f42: 4b78 lsri r3, r3, 24 + 9f44: a263 st.b r3, (r2, 0x3) + TempCtrl.TempChange_Flag = 0x00; + 9f46: 3300 movi r3, 0 + 9f48: a660 st.b r3, (r6, 0x0) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 9f4a: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9f4c: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9f4e: 1145 lrw r2, 0x2000082d // 9fe0 + 9f50: 4b28 lsri r1, r3, 8 + 9f52: a260 st.b r3, (r2, 0x0) + 9f54: a221 st.b r1, (r2, 0x1) + 9f56: 4b30 lsri r1, r3, 16 + 9f58: 4b78 lsri r3, r3, 24 + 9f5a: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9f5c: 8767 ld.b r3, (r7, 0x7) + 9f5e: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9f60: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9f62: 0805 bt 0x9f6c // 9f6c + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 9f64: 30fa movi r0, 250 + 9f66: 4002 lsli r0, r0, 2 + 9f68: e000025c bsr 0xa420 // a420 + } + + } + + // 状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 9f6c: 8646 ld.b r2, (r6, 0x6) + 9f6e: 8665 ld.b r3, (r6, 0x5) + 9f70: 4248 lsli r2, r2, 8 + 9f72: 6c8c or r2, r3 + 9f74: 8667 ld.b r3, (r6, 0x7) + 9f76: 4370 lsli r3, r3, 16 + 9f78: 6c8c or r2, r3 + 9f7a: 8668 ld.b r3, (r6, 0x8) + 9f7c: 4378 lsli r3, r3, 24 + 9f7e: 6cc8 or r3, r2 + 9f80: 9520 ld.w r1, (r5, 0x0) + 9f82: 604e subu r1, r3 + 9f84: 1078 lrw r3, 0x493df // 9fe4 + 9f86: 644c cmphs r3, r1 + 9f88: 0819 bt 0x9fba // 9fba + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 9f8a: 9560 ld.w r3, (r5, 0x0) + 9f8c: 1053 lrw r2, 0x20000831 // 9fd8 + 9f8e: 4b28 lsri r1, r3, 8 + 9f90: a260 st.b r3, (r2, 0x0) + 9f92: a221 st.b r1, (r2, 0x1) + 9f94: 4b30 lsri r1, r3, 16 + 9f96: 4b78 lsri r3, r3, 24 + 9f98: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9f9a: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9f9c: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9f9e: 1051 lrw r2, 0x2000082d // 9fe0 + 9fa0: 4b28 lsri r1, r3, 8 + 9fa2: a260 st.b r3, (r2, 0x0) + 9fa4: a221 st.b r1, (r2, 0x1) + 9fa6: 4b30 lsri r1, r3, 16 + 9fa8: 4b78 lsri r3, r3, 24 + 9faa: a263 st.b r3, (r2, 0x3) + + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9fac: 8767 ld.b r3, (r7, 0x7) + 9fae: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9fb0: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9fb2: 0804 bt 0x9fba // 9fba + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 9fb4: 100d lrw r0, 0xea60 // 9fe8 + 9fb6: e0000235 bsr 0xa420 // a420 + } + + } + + } +} + 9fba: 1494 pop r4-r7, r15 + Relay_Mid(); + 9fbc: e00000fe bsr 0xa1b8 // a1b8 + break; + 9fc0: 06c0 br 0x9d40 // 9d40 + Relay_High(); + 9fc2: e00000ed bsr 0xa19c // a19c + break; + 9fc6: 06bd br 0x9d40 // 9d40 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 9fc8: 330a movi r3, 10 + 9fca: 7c0c mult r0, r3 + 9fcc: 06dd br 0x9d86 // 9d86 + 9fce: 0000 bkpt + 9fd0: 20000234 .long 0x20000234 + 9fd4: 2000005c .long 0x2000005c + 9fd8: 20000831 .long 0x20000831 + 9fdc: 000003e7 .long 0x000003e7 + 9fe0: 2000082d .long 0x2000082d + 9fe4: 000493df .long 0x000493df + 9fe8: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Debug_Init: + +00009fec : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 9fec: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 9fee: 108d lrw r4, 0x20000835 // a020 + 9ff0: 320e movi r2, 14 + 9ff2: 3100 movi r1, 0 + 9ff4: 6c13 mov r0, r4 + 9ff6: e3ffd0d3 bsr 0x419c // 419c <__memset_fast> + Debug_Inf.Page = 0x01; + 9ffa: 3301 movi r3, 1 + 9ffc: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 9ffe: 106a lrw r3, 0x200004f4 // a024 + a000: 8340 ld.b r2, (r3, 0x0) + a002: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + a004: 8341 ld.b r2, (r3, 0x1) + a006: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + a008: 8342 ld.b r2, (r3, 0x2) + a00a: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + a00c: 8344 ld.b r2, (r3, 0x4) + a00e: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + a010: 8345 ld.b r2, (r3, 0x5) + a012: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + a014: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + a016: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + a018: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + a01a: a469 st.b r3, (r4, 0x9) +} + a01c: 1491 pop r4, r15 + a01e: 0000 bkpt + a020: 20000835 .long 0x20000835 + a024: 200004f4 .long 0x200004f4 + +Disassembly of section .text.Dev_SaveData: + +0000a028 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + a028: 14d1 push r4, r15 + a02a: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + a02c: 1164 lrw r3, 0x20000835 // a0bc + a02e: 1185 lrw r4, 0x200004f4 // a0c0 + a030: 8343 ld.b r2, (r3, 0x3) + a032: 8420 ld.b r1, (r4, 0x0) + a034: 6486 cmpne r1, r2 + a036: 0819 bt 0xa068 // a068 + a038: 8304 ld.b r0, (r3, 0x4) + a03a: 8421 ld.b r1, (r4, 0x1) + a03c: 6442 cmpne r0, r1 + a03e: 0815 bt 0xa068 // a068 + a040: 8305 ld.b r0, (r3, 0x5) + a042: 8422 ld.b r1, (r4, 0x2) + a044: 6442 cmpne r0, r1 + a046: 0811 bt 0xa068 // a068 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + a048: 8306 ld.b r0, (r3, 0x6) + a04a: 8424 ld.b r1, (r4, 0x4) + a04c: 6442 cmpne r0, r1 + a04e: 080d bt 0xa068 // a068 + a050: 8307 ld.b r0, (r3, 0x7) + a052: 8425 ld.b r1, (r4, 0x5) + a054: 6442 cmpne r0, r1 + a056: 0809 bt 0xa068 // a068 + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + a058: 8308 ld.b r0, (r3, 0x8) + a05a: 8423 ld.b r1, (r4, 0x3) + a05c: 6442 cmpne r0, r1 + a05e: 0805 bt 0xa068 // a068 + a060: 8309 ld.b r0, (r3, 0x9) + a062: 8426 ld.b r1, (r4, 0x6) + a064: 6442 cmpne r0, r1 + a066: 0c28 bf 0xa0b6 // a0b6 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + a068: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + a06a: 8344 ld.b r2, (r3, 0x4) + a06c: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + a06e: 8345 ld.b r2, (r3, 0x5) + a070: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + a072: 8346 ld.b r2, (r3, 0x6) + a074: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + a076: 8347 ld.b r2, (r3, 0x7) + a078: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + a07a: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + a07c: 1011 lrw r0, 0x200004f4 // a0c0 + g_eeprom.langue_select = Debug_Inf.Language_Selection; + a07e: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + a080: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + a082: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + a084: e3ffe7bc bsr 0x6ffc // 6ffc + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + a088: 8425 ld.b r1, (r4, 0x5) + a08a: b822 st.w r1, (r14, 0x8) + a08c: 8424 ld.b r1, (r4, 0x4) + a08e: b821 st.w r1, (r14, 0x4) + a090: 8422 ld.b r1, (r4, 0x2) + a092: 8461 ld.b r3, (r4, 0x1) + a094: 8440 ld.b r2, (r4, 0x0) + a096: b820 st.w r1, (r14, 0x0) + a098: 3000 movi r0, 0 + a09a: 102b lrw r1, 0xd112 // a0c4 + a09c: e3ffe2f0 bsr 0x667c // 667c + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + a0a0: 8466 ld.b r3, (r4, 0x6) + a0a2: 3000 movi r0, 0 + a0a4: 8443 ld.b r2, (r4, 0x3) + a0a6: 1029 lrw r1, 0xd15e // a0c8 + a0a8: e3ffe2ea bsr 0x667c // 667c + g_eeprom.temp_select,g_eeprom.langue_select); + + //boot + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + a0ac: 1008 lrw r0, 0x200004fc // a0cc + a0ae: 8460 ld.b r3, (r4, 0x0) + a0b0: a060 st.b r3, (r0, 0x0) + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + a0b2: e3ffea07 bsr 0x74c0 // 74c0 + + } +} + a0b6: 1403 addi r14, r14, 12 + a0b8: 1491 pop r4, r15 + a0ba: 0000 bkpt + a0bc: 20000835 .long 0x20000835 + a0c0: 200004f4 .long 0x200004f4 + a0c4: 0000d112 .long 0x0000d112 + a0c8: 0000d15e .long 0x0000d15e + a0cc: 200004fc .long 0x200004fc + +Disassembly of section .text.Debug_Task: + +0000a0d0 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + a0d0: 14d1 push r4, r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + a0d2: 107b lrw r3, 0x20000835 // a13c + a0d4: 8340 ld.b r2, (r3, 0x0) + a0d6: 3a41 cmpnei r2, 1 + a0d8: 0830 bt 0xa138 // a138 + a0da: 832b ld.b r1, (r3, 0xb) + a0dc: 834a ld.b r2, (r3, 0xa) + a0de: 4128 lsli r1, r1, 8 + a0e0: 6c48 or r1, r2 + a0e2: 834c ld.b r2, (r3, 0xc) + a0e4: 4250 lsli r2, r2, 16 + a0e6: 6c48 or r1, r2 + a0e8: 834d ld.b r2, (r3, 0xd) + a0ea: 1096 lrw r4, 0x200000c0 // a140 + a0ec: 4258 lsli r2, r2, 24 + a0ee: 6c84 or r2, r1 + a0f0: 9400 ld.w r0, (r4, 0x0) + a0f2: 600a subu r0, r2 + a0f4: 1054 lrw r2, 0x2710 // a144 + a0f6: 6408 cmphs r2, r0 + a0f8: 0820 bt 0xa138 // a138 + a0fa: 8342 ld.b r2, (r3, 0x2) + a0fc: 3a48 cmpnei r2, 8 + a0fe: 0c1d bf 0xa138 // a138 + { + Debug_Inf.Tick = SysTick_1ms; + a100: 9440 ld.w r2, (r4, 0x0) + a102: 310a movi r1, 10 + a104: 604c addu r1, r3 + a106: 4a08 lsri r0, r2, 8 + a108: a140 st.b r2, (r1, 0x0) + a10a: a101 st.b r0, (r1, 0x1) + a10c: 4a10 lsri r0, r2, 16 + a10e: 4a58 lsri r2, r2, 24 + a110: a143 st.b r2, (r1, 0x3) + Debug_Inf.State = 0x00; + a112: 3200 movi r2, 0 + a114: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + a116: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + a118: a102 st.b r0, (r1, 0x2) + Debug_Inf.Page = 0x01; + a11a: a342 st.b r2, (r3, 0x2) + Dev_SaveData(); + a11c: e3ffff86 bsr 0xa028 // a028 + + HT1621_Clear(); + a120: e3fff1fe bsr 0x851c // 851c + //关背光 + Controlled_LCD_Backlight(0x00); + a124: 3000 movi r0, 0 + a126: e3fff539 bsr 0x8b98 // 8b98 + Controlled_Key_Backlight(0x00); + a12a: 3000 movi r0, 0 + a12c: e3fff5a4 bsr 0x8c74 // 8c74 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + a130: 1026 lrw r1, 0xd18e // a148 + a132: 3000 movi r0, 0 + a134: e3ffe2a4 bsr 0x667c // 667c + } + a138: 1491 pop r4, r15 + a13a: 0000 bkpt + a13c: 20000835 .long 0x20000835 + a140: 200000c0 .long 0x200000c0 + a144: 00002710 .long 0x00002710 + a148: 0000d18e .long 0x0000d18e + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +0000a14c : + * @brief 产生继电器控制动作检测 + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + a14c: 14d3 push r4-r6, r15 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + if(rly_id >= RLY_MAX) return; + + if(c_rly.rly_state[rly_id] != state) + a14e: 10a9 lrw r5, 0x20000844 // a170 + a150: 5d80 addu r4, r5, r0 + a152: 8463 ld.b r3, (r4, 0x3) + a154: 644e cmpne r3, r1 +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + a156: 6d87 mov r6, r1 + if(c_rly.rly_state[rly_id] != state) + a158: 0c0b bf 0xa16e // a16e + { +// Dbg_Println(DBG_BIT_SYS_STATUS,"BLV_CtrlRLY:%d",c_rly.rly_control); +// c_rly.rly_control = 0x01; + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + a15a: e3ffe028 bsr 0x61aa // 61aa + c_rly.rly_state[rly_id] = state; + if(c_rly.rly_zero == UNZEROCROSSING){ + a15e: 8560 ld.b r3, (r5, 0x0) + c_rly.rly_control = 0x02; + a160: 3b40 cmpnei r3, 0 + a162: 64c3 mvcv r3 + a164: 2300 addi r3, 1 + c_rly.rly_state[rly_id] = state; + a166: a4c3 st.b r6, (r4, 0x3) + c_rly.rly_control = 0x02; + a168: a562 st.b r3, (r5, 0x2) + }else{ + c_rly.rly_control = 0x01; + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + a16a: e3ffe01d bsr 0x61a4 // 61a4 + } +} + a16e: 1493 pop r4-r6, r15 + a170: 20000844 .long 0x20000844 + +Disassembly of section .text.Relay_Init: + +0000a174 : +{ + a174: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + a176: 1088 lrw r4, 0x20000574 // a194 + a178: 321c movi r2, 28 + a17a: 3100 movi r1, 0 + a17c: 6c13 mov r0, r4 + a17e: e3ffd00f bsr 0x419c // 419c <__memset_fast> + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + a182: 320c movi r2, 12 + a184: 3100 movi r1, 0 + a186: 1005 lrw r0, 0x20000844 // a198 + a188: e3ffd00a bsr 0x419c // 419c <__memset_fast> + g_switch.feedback_light_selection = 0x01; + a18c: 3301 movi r3, 1 + a18e: a462 st.b r3, (r4, 0x2) +} + a190: 1491 pop r4, r15 + a192: 0000 bkpt + a194: 20000574 .long 0x20000574 + a198: 20000844 .long 0x20000844 + +Disassembly of section .text.Relay_High: + +0000a19c : +{ + a19c: 14d0 push r15 + a19e: 3101 movi r1, 1 + a1a0: 3002 movi r0, 2 + a1a2: e3ffffd5 bsr 0xa14c // a14c + a1a6: 3102 movi r1, 2 + a1a8: 3003 movi r0, 3 + a1aa: e3ffffd1 bsr 0xa14c // a14c + a1ae: 3102 movi r1, 2 + a1b0: 3004 movi r0, 4 + a1b2: e3ffffcd bsr 0xa14c // a14c +} + a1b6: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +0000a1b8 : +{ + a1b8: 14d0 push r15 + a1ba: 3102 movi r1, 2 + a1bc: 3002 movi r0, 2 + a1be: e3ffffc7 bsr 0xa14c // a14c + a1c2: 3101 movi r1, 1 + a1c4: 3003 movi r0, 3 + a1c6: e3ffffc3 bsr 0xa14c // a14c + a1ca: 3102 movi r1, 2 + a1cc: 3004 movi r0, 4 + a1ce: e3ffffbf bsr 0xa14c // a14c +} + a1d2: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +0000a1d4 : +{ + a1d4: 14d0 push r15 + a1d6: 3102 movi r1, 2 + a1d8: 3002 movi r0, 2 + a1da: e3ffffb9 bsr 0xa14c // a14c + a1de: 3102 movi r1, 2 + a1e0: 3003 movi r0, 3 + a1e2: e3ffffb5 bsr 0xa14c // a14c + a1e6: 3101 movi r1, 1 + a1e8: 3004 movi r0, 4 + a1ea: e3ffffb1 bsr 0xa14c // a14c +} + a1ee: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +0000a1f0 : +{ + a1f0: 14d0 push r15 + a1f2: 3102 movi r1, 2 + a1f4: 3002 movi r0, 2 + a1f6: e3ffffab bsr 0xa14c // a14c + a1fa: 3102 movi r1, 2 + a1fc: 3003 movi r0, 3 + a1fe: e3ffffa7 bsr 0xa14c // a14c + a202: 3102 movi r1, 2 + a204: 3004 movi r0, 4 + a206: e3ffffa3 bsr 0xa14c // a14c +} + a20a: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +0000a20c : +{ + a20c: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + a20e: 5963 subi r3, r1, 1 + a210: 74cc zextb r3, r3 + a212: 3b01 cmphsi r3, 2 + a214: 0805 bt 0xa21e // a21e + if(rly_id >= RLY_MAX) return; + a216: 3804 cmphsi r0, 5 + a218: 0803 bt 0xa21e // a21e + a21a: e3ffff99 bsr 0xa14c // a14c +} + a21e: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +0000a220 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + a220: 14d2 push r4-r5, r15 + if(SysTick_1ms - c_rly.ZCrossing_tick >= 50)// 50ms + a222: 1150 lrw r2, 0x200000c0 // a2e0 + a224: 1190 lrw r4, 0x20000844 // a2e4 + a226: 9260 ld.w r3, (r2, 0x0) + a228: 9422 ld.w r1, (r4, 0x8) + a22a: 60c6 subu r3, r1 + a22c: 3131 movi r1, 49 + a22e: 64c4 cmphs r1, r3 + a230: 0810 bt 0xa250 // a250 + { + c_rly.ZCrossing_tick = SysTick_1ms; + a232: 9260 ld.w r3, (r2, 0x0) + a234: b462 st.w r3, (r4, 0x8) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + a236: e3ffdfba bsr 0x61aa // 61aa + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5) ){ //有过零信号 + a23a: 8461 ld.b r3, (r4, 0x1) + a23c: 2b01 subi r3, 2 + a23e: 74cc zextb r3, r3 + a240: 3b03 cmphsi r3, 4 + a242: 0812 bt 0xa266 // a266 + c_rly.rly_zero = ZEROCROSSING; + a244: 3301 movi r3, 1 + a246: a460 st.b r3, (r4, 0x0) + c_rly.rly_zCnt = 0; + a248: 3300 movi r3, 0 + }else { //无过零信号 + c_rly.rly_zero = UNZEROCROSSING; + c_rly.rly_zCnt = 0; + a24a: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + a24c: e3ffdfac bsr 0x61a4 // 61a4 + } + + if(c_rly.rly_control != 0x02) return; + a250: 8462 ld.b r3, (r4, 0x2) + a252: 3b42 cmpnei r3, 2 + a254: 0819 bt 0xa286 // a286 + a256: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + a258: 5d03 subi r0, r5, 1 + a25a: 3803 cmphsi r0, 4 + a25c: 0808 bt 0xa26c // a26c + a25e: e3ffc94f bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a262: 2117 .short 0x2117 + a264: 352b .short 0x352b + c_rly.rly_zero = UNZEROCROSSING; + a266: 3300 movi r3, 0 + a268: a460 st.b r3, (r4, 0x0) + a26a: 07f0 br 0xa24a // a24a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + a26c: 8463 ld.b r3, (r4, 0x3) + a26e: 3b41 cmpnei r3, 1 + a270: 080c bt 0xa288 // a288 + RLY1_HOT_OPEN; + a272: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + a274: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + a276: e3fff05f bsr 0x8334 // 8334 + for (U8_T i = 0; i < RLY_MAX; i++) { + a27a: 2500 addi r5, 1 + a27c: 7554 zextb r5, r5 + a27e: 3d45 cmpnei r5, 5 + a280: 0bec bt 0xa258 // a258 + } + break; + } + } + + c_rly.rly_control = 0x00; + a282: 3300 movi r3, 0 + a284: a462 st.b r3, (r4, 0x2) +} + a286: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + a288: 3b42 cmpnei r3, 2 + a28a: 0bf8 bt 0xa27a // a27a + RLY1_HOT_CLOSE; + a28c: 3101 movi r1, 1 + a28e: 07f3 br 0xa274 // a274 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + a290: 8464 ld.b r3, (r4, 0x4) + a292: 3b41 cmpnei r3, 1 + a294: 0804 bt 0xa29c // a29c + RLY2_COLD_OPEN; + a296: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + a298: 3013 movi r0, 19 + a29a: 07ee br 0xa276 // a276 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + a29c: 3b42 cmpnei r3, 2 + a29e: 0bee bt 0xa27a // a27a + RLY2_COLD_CLOSE; + a2a0: 3101 movi r1, 1 + a2a2: 07fb br 0xa298 // a298 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + a2a4: 8465 ld.b r3, (r4, 0x5) + a2a6: 3b41 cmpnei r3, 1 + a2a8: 0804 bt 0xa2b0 // a2b0 + RLY3_HIGH_OPEN; + a2aa: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + a2ac: 3014 movi r0, 20 + a2ae: 07e4 br 0xa276 // a276 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + a2b0: 3b42 cmpnei r3, 2 + a2b2: 0be4 bt 0xa27a // a27a + RLY3_HIGH_CLOSE; + a2b4: 3101 movi r1, 1 + a2b6: 07fb br 0xa2ac // a2ac + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + a2b8: 8466 ld.b r3, (r4, 0x6) + a2ba: 3b41 cmpnei r3, 1 + a2bc: 0804 bt 0xa2c4 // a2c4 + RLY4_MID_OPEN; + a2be: 3102 movi r1, 2 + RLY4_MID_CLOSE; + a2c0: 3015 movi r0, 21 + a2c2: 07da br 0xa276 // a276 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + a2c4: 3b42 cmpnei r3, 2 + a2c6: 0bda bt 0xa27a // a27a + RLY4_MID_CLOSE; + a2c8: 3101 movi r1, 1 + a2ca: 07fb br 0xa2c0 // a2c0 + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + a2cc: 8467 ld.b r3, (r4, 0x7) + a2ce: 3b41 cmpnei r3, 1 + a2d0: 0804 bt 0xa2d8 // a2d8 + RLY5_LOW_OPEN; + a2d2: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + a2d4: 3016 movi r0, 22 + a2d6: 07d0 br 0xa276 // a276 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + a2d8: 3b42 cmpnei r3, 2 + a2da: 0bd0 bt 0xa27a // a27a + RLY5_LOW_CLOSE; + a2dc: 3101 movi r1, 1 + a2de: 07fb br 0xa2d4 // a2d4 + a2e0: 200000c0 .long 0x200000c0 + a2e4: 20000844 .long 0x20000844 + +Disassembly of section .text.RLY_Zero_Control: + +0000a2e8 : + * @brief 有过零信号控制继电器,在中断中调用 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + a2e8: 14d2 push r4-r5, r15 + if(c_rly.rly_control != 0x01) return; + a2ea: 1185 lrw r4, 0x20000844 // a37c + a2ec: 8462 ld.b r3, (r4, 0x2) + a2ee: 3b41 cmpnei r3, 1 + a2f0: 0818 bt 0xa320 // a320 + a2f2: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + a2f4: 5d03 subi r0, r5, 1 + a2f6: 3803 cmphsi r0, 4 + a2f8: 0805 bt 0xa302 // a302 + a2fa: e3ffc901 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a2fe: 2016 .short 0x2016 + a300: 342a .short 0x342a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + a302: 8463 ld.b r3, (r4, 0x3) + a304: 3b41 cmpnei r3, 1 + a306: 080e bt 0xa322 // a322 + RLY1_HOT_OPEN; + a308: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + a30a: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + a30c: e3fff014 bsr 0x8334 // 8334 + for (U8_T i = 0; i < RLY_MAX; i++) { + a310: 2500 addi r5, 1 + a312: 7554 zextb r5, r5 + a314: 3d45 cmpnei r5, 5 + a316: 0bef bt 0xa2f4 // a2f4 + break; + } + + } + + TimeCall_SIO_Send2(); + a318: e3ffef42 bsr 0x819c // 819c + + c_rly.rly_control = 0x00; + a31c: 3300 movi r3, 0 + a31e: a462 st.b r3, (r4, 0x2) + a320: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + a322: 3b42 cmpnei r3, 2 + a324: 0bf6 bt 0xa310 // a310 + RLY1_HOT_CLOSE; + a326: 3101 movi r1, 1 + a328: 07f1 br 0xa30a // a30a + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + a32a: 8464 ld.b r3, (r4, 0x4) + a32c: 3b41 cmpnei r3, 1 + a32e: 0804 bt 0xa336 // a336 + RLY2_COLD_OPEN; + a330: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + a332: 3013 movi r0, 19 + a334: 07ec br 0xa30c // a30c + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + a336: 3b42 cmpnei r3, 2 + a338: 0bec bt 0xa310 // a310 + RLY2_COLD_CLOSE; + a33a: 3101 movi r1, 1 + a33c: 07fb br 0xa332 // a332 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + a33e: 8465 ld.b r3, (r4, 0x5) + a340: 3b41 cmpnei r3, 1 + a342: 0804 bt 0xa34a // a34a + RLY3_HIGH_OPEN; + a344: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + a346: 3014 movi r0, 20 + a348: 07e2 br 0xa30c // a30c + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + a34a: 3b42 cmpnei r3, 2 + a34c: 0be2 bt 0xa310 // a310 + RLY3_HIGH_CLOSE; + a34e: 3101 movi r1, 1 + a350: 07fb br 0xa346 // a346 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + a352: 8466 ld.b r3, (r4, 0x6) + a354: 3b41 cmpnei r3, 1 + a356: 0804 bt 0xa35e // a35e + RLY4_MID_OPEN; + a358: 3102 movi r1, 2 + RLY4_MID_CLOSE; + a35a: 3015 movi r0, 21 + a35c: 07d8 br 0xa30c // a30c + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + a35e: 3b42 cmpnei r3, 2 + a360: 0bd8 bt 0xa310 // a310 + RLY4_MID_CLOSE; + a362: 3101 movi r1, 1 + a364: 07fb br 0xa35a // a35a + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + a366: 8467 ld.b r3, (r4, 0x7) + a368: 3b41 cmpnei r3, 1 + a36a: 0804 bt 0xa372 // a372 + RLY5_LOW_OPEN; + a36c: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + a36e: 3016 movi r0, 22 + a370: 07ce br 0xa30c // a30c + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + a372: 3b42 cmpnei r3, 2 + a374: 0bce bt 0xa310 // a310 + RLY5_LOW_CLOSE; + a376: 3101 movi r1, 1 + a378: 07fb br 0xa36e // a36e + a37a: 0000 bkpt + a37c: 20000844 .long 0x20000844 + +Disassembly of section .text.NetCRC16_Check: + +0000a380 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + a380: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + a382: 3902 cmphsi r1, 3 + a384: 0c1f bf 0xa3c2 // a3c2 + U16_T alen = len-2; //CRC16??????? + a386: 2901 subi r1, 2 + a388: 7445 zexth r1, r1 + a38a: 6d43 mov r5, r0 + a38c: 3200 movi r2, 0 + a38e: 106e lrw r3, 0xffff // a3c4 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + a398: 6d8f mov r6, r3 + a39a: 699c and r6, r7 + a39c: 3e40 cmpnei r6, 0 + a39e: 4b61 lsri r3, r3, 1 + a3a0: 0c04 bf 0xa3a8 // a3a8 + a3a2: 10ca lrw r6, 0xffffa001 // a3c8 + a3a4: 6cd9 xor r3, r6 + a3a6: 74cd zexth r3, r3 + a3a8: 2c00 subi r4, 1 + a3aa: 7511 zexth r4, r4 + for(j=0;j<8;j++) + a3ac: 3c40 cmpnei r4, 0 + a3ae: 0bf5 bt 0xa398 // a398 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + a3ba: 6040 addu r1, r0 + a3bc: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + a3be: 4b68 lsri r3, r3, 8 + a3c0: a161 st.b r3, (r1, 0x1) +} + a3c2: 1484 pop r4-r7 + a3c4: 0000ffff .long 0x0000ffff + a3c8: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +0000a3cc : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + a3cc: 14c3 push r4-r6 + a3ce: 6cc3 mov r3, r0 + a3d0: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + a3d2: 10ac lrw r5, 0xffffa001 // a400 + xda = 0xFFFF ; + a3d4: 100c lrw r0, 0xffff // a404 + for (i = 0; i < len; i++) + a3d6: 644e cmpne r3, r1 + a3d8: 0802 bt 0xa3dc // a3dc + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + a3da: 1483 pop r4-r6 + xda ^= aStr[i] ; + a3dc: 8340 ld.b r2, (r3, 0x0) + a3de: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + a3e0: 3601 movi r6, 1 + xda ^= aStr[i] ; + a3e2: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + a3e4: 6d03 mov r4, r0 + a3e6: 6918 and r4, r6 + a3e8: 3c40 cmpnei r4, 0 + a3ea: 4801 lsri r0, r0, 1 + a3ec: 0c03 bf 0xa3f2 // a3f2 + a3ee: 6c15 xor r0, r5 + a3f0: 7401 zexth r0, r0 + a3f2: 2a00 subi r2, 1 + a3f4: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + a3f6: 3a40 cmpnei r2, 0 + a3f8: 0bf6 bt 0xa3e4 // a3e4 + a3fa: 2300 addi r3, 1 + a3fc: 07ed br 0xa3d6 // a3d6 + a3fe: 0000 bkpt + a400: ffffa001 .long 0xffffa001 + a404: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +0000a408 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + a408: 6cc3 mov r3, r0 + a40a: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + a40c: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + a40e: 644e cmpne r3, r1 + a410: 0802 bt 0xa414 // a414 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + a412: 783c jmp r15 + sor_data = sor_data+Data[i]; + a414: 8340 ld.b r2, (r3, 0x0) + a416: 6008 addu r0, r2 + a418: 7400 zextb r0, r0 + a41a: 2300 addi r3, 1 + a41c: 07f9 br 0xa40e // a40e + +Disassembly of section .text.Rs485_ASend: + +0000a420 : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + a420: 14d1 push r4, r15 + a422: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + a424: 117d lrw r3, 0x200004f4 // a518 + a426: 8347 ld.b r2, (r3, 0x7) + a428: 3a42 cmpnei r2, 2 +{ + a42a: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + a42c: 0864 bt 0xa4f4 // a4f4 + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + a42e: 3255 movi r2, 85 + a430: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + a434: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + a438: 3200 movi r2, 0 + a43a: 2a11 subi r2, 18 + a43c: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + a440: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + a442: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + a444: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + a448: 3203 movi r2, 3 + a44a: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + a44e: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + a452: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + a454: 1152 lrw r2, 0x2000080c // a51c + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + a456: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + a45a: 8262 ld.b r3, (r2, 0x2) + a45c: 4b27 lsri r1, r3, 7 + a45e: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + a462: 3100 movi r1, 0 + a464: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == 0x00) { + a468: 3170 movi r1, 112 + a46a: 68c4 and r3, r1 + a46c: 3b40 cmpnei r3, 0 + a46e: 0845 bt 0xa4f8 // a4f8 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + a470: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a472: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + a476: 8261 ld.b r3, (r2, 0x1) + a478: 3b40 cmpnei r3, 0 + a47a: 0802 bt 0xa47e // a47e + a47c: 3320 movi r3, 32 + a47e: dc6e000e st.b r3, (r14, 0xe) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + a482: 3300 movi r3, 0 + a484: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a488: 8262 ld.b r3, (r2, 0x2) + a48a: 437c lsli r3, r3, 28 + a48c: 4b7d lsri r3, r3, 29 + a48e: 3104 movi r1, 4 + a490: 604e subu r1, r3 + a492: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + a494: 3b40 cmpnei r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a496: dc2e0010 st.b r1, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + a49a: 0c39 bf 0xa50c // a50c + a49c: 3b03 cmphsi r3, 4 + a49e: 083b bt 0xa514 // a514 + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + a4a0: dc2e0011 st.b r1, (r14, 0x11) + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a4a4: 8222 ld.b r1, (r2, 0x2) + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + a4a6: 3300 movi r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a4a8: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + a4aa: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + a4ae: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a4b2: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + a4b4: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + a4b8: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + a4bc: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a4c0: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a4c2: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a4c4: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a4c6: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a4ca: 0802 bt 0xa4ce // a4ce + a4cc: 3320 movi r3, 32 + a4ce: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + a4d2: 3300 movi r3, 0 + a4d4: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a4d8: 1b01 addi r3, r14, 4 + a4da: 5b0a addi r0, r3, 3 + a4dc: 3115 movi r1, 21 + a4de: e3ffff51 bsr 0xa380 // a380 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + a4e2: 3396 movi r3, 150 + a4e4: 4361 lsli r3, r3, 1 + a4e6: b860 st.w r3, (r14, 0x0) + a4e8: 3201 movi r2, 1 + a4ea: 6cd3 mov r3, r4 + a4ec: 3118 movi r1, 24 + a4ee: 1801 addi r0, r14, 4 + a4f0: e3ffe020 bsr 0x6530 // 6530 + +} + a4f4: 1407 addi r14, r14, 28 + a4f6: 1491 pop r4, r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + a4f8: 3120 movi r1, 32 + a4fa: 644e cmpne r3, r1 + a4fc: 0803 bt 0xa502 // a502 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + a4fe: 3302 movi r3, 2 + a500: 07b9 br 0xa472 // a472 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + a502: 3140 movi r1, 64 + a504: 644e cmpne r3, r1 + a506: 0bb8 bt 0xa476 // a476 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a508: 3303 movi r3, 3 + a50a: 07b4 br 0xa472 // a472 + SendData[13] = 0x00; // + a50c: 3300 movi r3, 0 + SendData[13] = 0x04; // + a50e: dc6e0011 st.b r3, (r14, 0x11) + break; + a512: 07c9 br 0xa4a4 // a4a4 + SendData[13] = 0x04; // + a514: 3304 movi r3, 4 + a516: 07fc br 0xa50e // a50e + a518: 200004f4 .long 0x200004f4 + a51c: 2000080c .long 0x2000080c + +Disassembly of section .text.Rs485AskCycleSend: + +0000a520 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + a520: 14d0 push r15 + a522: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + a524: 3355 movi r3, 85 + a526: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + a52a: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + a52e: 3300 movi r3, 0 + a530: 2b11 subi r3, 18 + a532: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + a536: 3315 movi r3, 21 + a538: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + a53c: 3303 movi r3, 3 + a53e: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + a542: 1175 lrw r3, 0x200004f4 // a614 + a544: 8360 ld.b r3, (r3, 0x0) + a546: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + a54a: 3300 movi r3, 0 + a54c: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + a550: 1172 lrw r3, 0x2000080c // a618 + a552: 8342 ld.b r2, (r3, 0x2) + a554: 4a27 lsri r1, r2, 7 + a556: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + a55a: 3100 movi r1, 0 + a55c: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == 0x00) { + a560: 3170 movi r1, 112 + a562: 6884 and r2, r1 + a564: 3a40 cmpnei r2, 0 + a566: 0846 bt 0xa5f2 // a5f2 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + a568: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == 0x04) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a56a: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + a56e: 8341 ld.b r2, (r3, 0x1) + a570: 3a40 cmpnei r2, 0 + a572: 0802 bt 0xa576 // a576 + a574: 3220 movi r2, 32 + a576: dc4e000e st.b r2, (r14, 0xe) + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + a57a: 3200 movi r2, 0 + a57c: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a580: 8342 ld.b r2, (r3, 0x2) + a582: 425c lsli r2, r2, 28 + a584: 4a5d lsri r2, r2, 29 + a586: 3104 movi r1, 4 + a588: 604a subu r1, r2 + a58a: 7444 zextb r1, r1 + switch(TempCtrl.TemState_Now.fan) + a58c: 3a40 cmpnei r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a58e: dc2e0010 st.b r1, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + a592: 0c3a bf 0xa606 // a606 + a594: 3a03 cmphsi r2, 4 + a596: 083c bt 0xa60e // a60e + { + case FAN_LOW: //低速 + case FAN_MID: + case FAN_HIGH: + SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + a598: dc2e0011 st.b r1, (r14, 0x11) + break; + default: + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + a59c: 3200 movi r2, 0 + a59e: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + a5a2: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a5a6: 8342 ld.b r2, (r3, 0x2) + a5a8: 425f lsli r2, r2, 31 + a5aa: 4a5f lsri r2, r2, 31 + a5ac: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a5ae: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a5b0: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a5b4: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + a5b6: 3200 movi r2, 0 + a5b8: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + a5bc: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + a5c0: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a5c4: 0802 bt 0xa5c8 // a5c8 + a5c6: 3320 movi r3, 32 + a5c8: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + a5cc: 3300 movi r3, 0 + a5ce: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a5d2: 1b01 addi r3, r14, 4 + a5d4: 5b0a addi r0, r3, 3 + a5d6: 3115 movi r1, 21 + a5d8: e3fffed4 bsr 0xa380 // a380 + + //MCU485_SendData(SendData, 24); + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + a5dc: 3314 movi r3, 20 + a5de: b860 st.w r3, (r14, 0x0) + a5e0: 3396 movi r3, 150 + a5e2: 4361 lsli r3, r3, 1 + a5e4: 3201 movi r2, 1 + a5e6: 3118 movi r1, 24 + a5e8: 1801 addi r0, r14, 4 + a5ea: e3ffdfa3 bsr 0x6530 // 6530 + +} + a5ee: 1407 addi r14, r14, 28 + a5f0: 1490 pop r15 + }else if (TempCtrl.TemState_Now.mode == 0x02) { + a5f2: 3120 movi r1, 32 + a5f4: 644a cmpne r2, r1 + a5f6: 0803 bt 0xa5fc // a5fc + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + a5f8: 3202 movi r2, 2 + a5fa: 07b8 br 0xa56a // a56a + }else if (TempCtrl.TemState_Now.mode == 0x04) { + a5fc: 3140 movi r1, 64 + a5fe: 644a cmpne r2, r1 + a600: 0bb7 bt 0xa56e // a56e + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a602: 3203 movi r2, 3 + a604: 07b3 br 0xa56a // a56a + SendData[13] = 0x00; // + a606: 3200 movi r2, 0 + SendData[13] = 0x04; // + a608: dc4e0011 st.b r2, (r14, 0x11) + break; + a60c: 07c8 br 0xa59c // a59c + SendData[13] = 0x04; // + a60e: 3204 movi r2, 4 + a610: 07fc br 0xa608 // a608 + a612: 0000 bkpt + a614: 200004f4 .long 0x200004f4 + a618: 2000080c .long 0x2000080c + +Disassembly of section .text.Rs485AskCtrlSend: + +0000a61c : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + a61c: 14d0 push r15 + a61e: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + a620: 3355 movi r3, 85 + a622: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + a626: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + a62a: 3300 movi r3, 0 + a62c: 2b11 subi r3, 18 + a62e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + a632: 3307 movi r3, 7 + a634: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + a638: 3303 movi r3, 3 + a63a: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a63e: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + a640: 106d lrw r3, 0x200004f4 // a674 + a642: 8360 ld.b r3, (r3, 0x0) + a644: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + a648: 8066 ld.b r3, (r0, 0x6) + a64a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + a64e: 8067 ld.b r3, (r0, 0x7) + a650: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a654: 1b01 addi r3, r14, 4 + a656: 5b0a addi r0, r3, 3 + a658: e3fffe94 bsr 0xa380 // a380 + +// MCU485_SendData(SendData, 10); + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + a65c: 3314 movi r3, 20 + a65e: b860 st.w r3, (r14, 0x0) + a660: 3396 movi r3, 150 + a662: 4361 lsli r3, r3, 1 + a664: 3201 movi r2, 1 + a666: 310a movi r1, 10 + a668: 1801 addi r0, r14, 4 + a66a: e3ffdf63 bsr 0x6530 // 6530 + +} + a66e: 1404 addi r14, r14, 16 + a670: 1490 pop r15 + a672: 0000 bkpt + a674: 200004f4 .long 0x200004f4 + +Disassembly of section .text.Rs485AskReadSend: + +0000a678 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + a678: 14d0 push r15 + a67a: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + a67c: 3355 movi r3, 85 + a67e: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + a682: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + a686: 3300 movi r3, 0 + a688: 2b11 subi r3, 18 + a68a: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + a68e: 3309 movi r3, 9 + a690: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + a694: 3303 movi r3, 3 + a696: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a69a: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + a69c: 1070 lrw r3, 0x200004f4 // a6dc + a69e: 8340 ld.b r2, (r3, 0x0) + a6a0: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + a6a4: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + a6a6: 8046 ld.b r2, (r0, 0x6) + a6a8: dc4e000a st.b r2, (r14, 0xa) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + a6ac: dc6e000d st.b r3, (r14, 0xd) + SendData[7] = Project_FW_Version; + a6b0: 3203 movi r2, 3 + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a6b2: 1b01 addi r3, r14, 4 + SendData[7] = Project_FW_Version; + a6b4: dc4e000b st.b r2, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a6b8: 5b0a addi r0, r3, 3 + SendData[8] = Project_HW_Version; + a6ba: 3202 movi r2, 2 + a6bc: dc4e000c st.b r2, (r14, 0xc) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a6c0: e3fffe60 bsr 0xa380 // a380 + +// MCU485_SendData(SendData, 12); + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + a6c4: 3314 movi r3, 20 + a6c6: b860 st.w r3, (r14, 0x0) + a6c8: 3396 movi r3, 150 + a6ca: 4361 lsli r3, r3, 1 + a6cc: 3201 movi r2, 1 + a6ce: 310c movi r1, 12 + a6d0: 1801 addi r0, r14, 4 + a6d2: e3ffdf2f bsr 0x6530 // 6530 +} + a6d6: 1404 addi r14, r14, 16 + a6d8: 1490 pop r15 + a6da: 0000 bkpt + a6dc: 200004f4 .long 0x200004f4 + +Disassembly of section .text.Rs485_DevPort_ACK: + +0000a6e0 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + a6e0: 14d0 push r15 + a6e2: 1421 subi r14, r14, 4 + +// MCU485_SendData(Recdata, Lens); + + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + a6e4: 3314 movi r3, 20 + a6e6: b860 st.w r3, (r14, 0x0) + a6e8: 3396 movi r3, 150 + a6ea: 7445 zexth r1, r1 + a6ec: 4361 lsli r3, r3, 1 + a6ee: 3201 movi r2, 1 + a6f0: e3ffdf20 bsr 0x6530 // 6530 +} + a6f4: 1401 addi r14, r14, 4 + a6f6: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +0000a6f8 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + a6f8: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + a6fa: 3300 movi r3, 0 + a6fc: 2b08 subi r3, 9 + a6fe: 60c4 addu r3, r1 + a700: 74cd zexth r3, r3 + a702: 3b01 cmphsi r3, 2 +{ + a704: 6d03 mov r4, r0 + a706: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + a708: 08c8 bt 0xa898 // a898 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + a70a: 8060 ld.b r3, (r0, 0x0) + a70c: 3255 movi r2, 85 + a70e: 648e cmpne r3, r2 + a710: 08c0 bt 0xa890 // a890 + a712: 8041 ld.b r2, (r0, 0x1) + a714: 64ca cmpne r2, r3 + a716: 08bd bt 0xa890 // a890 + a718: 8042 ld.b r2, (r0, 0x2) + a71a: 33ee movi r3, 238 + a71c: 64ca cmpne r2, r3 + a71e: 08b9 bt 0xa890 // a890 + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + a720: 8023 ld.b r1, (r0, 0x3) + a722: 596a addi r3, r1, 3 + a724: 654e cmpne r3, r5 + a726: 08b7 bt 0xa894 // a894 + a728: 8004 ld.b r0, (r0, 0x4) + a72a: 3843 cmpnei r0, 3 + a72c: 08b4 bt 0xa894 // a894 + a72e: 12dc lrw r6, 0x200004f4 // a89c + a730: 8640 ld.b r2, (r6, 0x0) + a732: 8465 ld.b r3, (r4, 0x5) + a734: 64ca cmpne r2, r3 + a736: 08ae bt 0xa892 // a892 + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + a738: 2901 subi r1, 2 + a73a: 7445 zexth r1, r1 + a73c: 5c0a addi r0, r4, 3 + a73e: e3fffe47 bsr 0xa3cc // a3cc + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + a742: 5c54 addu r2, r4, r5 + a744: 5a63 subi r3, r2, 1 + a746: 8360 ld.b r3, (r3, 0x0) + a748: 2a01 subi r2, 2 + a74a: 4368 lsli r3, r3, 8 + a74c: 8240 ld.b r2, (r2, 0x0) + a74e: 60c8 addu r3, r2 + a750: 64c2 cmpne r0, r3 + a752: 08a3 bt 0xa898 // a898 + { + switch(RecData[6]) + a754: 8406 ld.b r0, (r4, 0x6) + a756: 2800 subi r0, 1 + a758: 3811 cmphsi r0, 18 + a75a: 0811 bt 0xa77c // a77c + a75c: e3ffc6d0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a760: 1e1e1e1e .long 0x1e1e1e1e + a764: 0e0e0e0e .long 0x0e0e0e0e + a768: 0e0e090e .long 0x0e0e090e + a76c: 220e0e0e .long 0x220e0e0e + a770: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + a772: 8667 ld.b r3, (r6, 0x7) + a774: 3b42 cmpnei r3, 2 + a776: 080c bt 0xa78e // a78e + { + Clear_SendFlag(); + a778: e3ffdf0a bsr 0x658c // 658c + } + + } + break; + } + switch(RecData[6]) + a77c: 8406 ld.b r0, (r4, 0x6) + a77e: 2800 subi r0, 1 + a780: 3803 cmphsi r0, 4 + a782: 0808 bt 0xa792 // a792 + a784: 8467 ld.b r3, (r4, 0x7) + a786: e3ffc6bb bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a78a: 4836 .short 0x4836 + a78c: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + a78e: 3b41 cmpnei r3, 1 + a790: 0c03 bf 0xa796 // a796 + break; + } + break; + } + + return ret; + a792: 3000 movi r0, 0 + a794: 047f br 0xa892 // a892 + Rs485AskCycleSend(); + a796: e3fffec5 bsr 0xa520 // a520 + a79a: 07f1 br 0xa77c // a77c + Rs485AskCtrlSend(RecData); + a79c: 6c13 mov r0, r4 + a79e: e3ffff3f bsr 0xa61c // a61c + a7a2: 07ed br 0xa77c // a77c + Rs485AskReadSend(RecData); //版本号查询 + a7a4: 6c13 mov r0, r4 + a7a6: e3ffff69 bsr 0xa678 // a678 + a7aa: 07e9 br 0xa77c // a77c + Rs485AskCtrlSend(RecData); + a7ac: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + a7ae: 11bd lrw r5, 0x2000080c // a8a0 + Rs485AskCtrlSend(RecData); + a7b0: e3ffff36 bsr 0xa61c // a61c + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + a7b4: 855a ld.b r2, (r5, 0x1a) + a7b6: 113c lrw r1, 0xd199 // a8a4 + a7b8: 3000 movi r0, 0 + a7ba: e3ffdf61 bsr 0x667c // 667c + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + a7be: 8467 ld.b r3, (r4, 0x7) + a7c0: 855a ld.b r2, (r5, 0x1a) + a7c2: 64ca cmpne r2, r3 + a7c4: 0fdc bf 0xa77c // a77c + if(TempCtrl.CardEn == 0x00) + a7c6: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + a7c8: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + a7ca: 0bd9 bt 0xa77c // a77c + TempCtrl.CardState = 0x01; + a7cc: 3301 movi r3, 1 + a7ce: a578 st.b r3, (r5, 0x18) + a7d0: 07d6 br 0xa77c // a77c + if(RecData[7] != g_eeprom.dev_port) + a7d2: 8467 ld.b r3, (r4, 0x7) + a7d4: 8647 ld.b r2, (r6, 0x7) + a7d6: 64ca cmpne r2, r3 + a7d8: 0fdd bf 0xa792 // a792 + EEPROM_WriteParaInfo(&g_eeprom); + a7da: 1111 lrw r0, 0x200004f4 // a89c + g_eeprom.dev_port = RecData[7]; + a7dc: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + a7de: e3ffe40f bsr 0x6ffc // 6ffc + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + a7e2: 110f lrw r0, 0x200004f4 // a89c + a7e4: e3ffe3d2 bsr 0x6f88 // 6f88 + if(rev_val == 0x00){ + a7e8: 3840 cmpnei r0, 0 + a7ea: 0bc9 bt 0xa77c // a77c + Rs485_DevPort_ACK(RecData,Len); + a7ec: 7454 zextb r1, r5 + a7ee: 6c13 mov r0, r4 + a7f0: e3ffff78 bsr 0xa6e0 // a6e0 + a7f4: 07c4 br 0xa77c // a77c + switch(RecData[7]) + a7f6: 74cc zextb r3, r3 + a7f8: 3b40 cmpnei r3, 0 + a7fa: 0c0a bf 0xa80e // a80e + a7fc: 3b41 cmpnei r3, 1 + a7fe: 0bca bt 0xa792 // a792 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + a800: 1128 lrw r1, 0x2000080c // a8a0 + a802: 3200 movi r2, 0 + a804: 8162 ld.b r3, (r1, 0x2) + a806: 2a7f subi r2, 128 + a808: 6cc8 or r3, r2 + a80a: a162 st.b r3, (r1, 0x2) + a80c: 07c3 br 0xa792 // a792 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + a80e: 1145 lrw r2, 0x2000080c // a8a0 + a810: 8262 ld.b r3, (r2, 0x2) + a812: 317f movi r1, 127 + a814: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + a816: a262 st.b r3, (r2, 0x2) + a818: 07bd br 0xa792 // a792 + switch(RecData[7]) // + a81a: 74cc zextb r3, r3 + a81c: 3b42 cmpnei r3, 2 + a81e: 0c0a bf 0xa832 // a832 + a820: 3b43 cmpnei r3, 3 + a822: 0c0e bf 0xa83e // a83e + a824: 3b41 cmpnei r3, 1 + a826: 0bb6 bt 0xa792 // a792 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + a828: 105e lrw r2, 0x2000080c // a8a0 + a82a: 8262 ld.b r3, (r2, 0x2) + a82c: 3170 movi r1, 112 + a82e: 68c5 andn r3, r1 + a830: 07f3 br 0xa816 // a816 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + a832: 105c lrw r2, 0x2000080c // a8a0 + a834: 8262 ld.b r3, (r2, 0x2) + a836: 3170 movi r1, 112 + a838: 68c5 andn r3, r1 + a83a: 3ba5 bseti r3, 5 + a83c: 07ed br 0xa816 // a816 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + a83e: 1059 lrw r2, 0x2000080c // a8a0 + a840: 8262 ld.b r3, (r2, 0x2) + a842: 3170 movi r1, 112 + a844: 68c5 andn r3, r1 + a846: 3ba6 bseti r3, 6 + a848: 07e7 br 0xa816 // a816 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + a84a: 3200 movi r2, 0 + a84c: 74cc zextb r3, r3 + a84e: 2a0f subi r2, 16 + a850: 608c addu r2, r3 + a852: 7488 zextb r2, r2 + a854: 3a0f cmphsi r2, 16 + a856: 0804 bt 0xa85e // a85e + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + a858: 1052 lrw r2, 0x2000080c // a8a0 + a85a: a261 st.b r3, (r2, 0x1) + a85c: 079b br 0xa792 // a792 + }else if(RecData[7] == TEM_MAX_SET){ + a85e: 3220 movi r2, 32 + a860: 648e cmpne r3, r2 + a862: 0b98 bt 0xa792 // a792 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + a864: 106f lrw r3, 0x2000080c // a8a0 + a866: a341 st.b r2, (r3, 0x1) + a868: 0795 br 0xa792 // a792 + switch(RecData[7]) //风速 + a86a: 740c zextb r0, r3 + a86c: 106d lrw r3, 0x2000080c // a8a0 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a86e: 8342 ld.b r2, (r3, 0x2) + a870: 310e movi r1, 14 + switch(RecData[7]) //风速 + a872: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a874: 6885 andn r2, r1 + switch(RecData[7]) //风速 + a876: 080b bt 0xa88c // a88c + a878: e3ffc642 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a87c: 08060204 .long 0x08060204 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + a880: 3aa1 bseti r2, 1 + a882: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a884: a342 st.b r2, (r3, 0x2) + a886: 0786 br 0xa792 // a792 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + a888: 3aa2 bseti r2, 2 + a88a: 07fd br 0xa884 // a884 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a88c: 3aa1 bseti r2, 1 + a88e: 07fb br 0xa884 // a884 + return 0x02; + a890: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + a892: 1493 pop r4-r6, r15 + return 0x03; + a894: 3003 movi r0, 3 + a896: 07fe br 0xa892 // a892 + return 0x01; + a898: 3001 movi r0, 1 + a89a: 07fc br 0xa892 // a892 + a89c: 200004f4 .long 0x200004f4 + a8a0: 2000080c .long 0x2000080c + a8a4: 0000d199 .long 0x0000d199 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +0000a8a8 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + a8a8: 14d2 push r4-r5, r15 + a8aa: 6d43 mov r5, r0 + a8ac: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + a8ae: e3ffff25 bsr 0xa6f8 // a6f8 + a8b2: 3840 cmpnei r0, 0 + a8b4: 0803 bt 0xa8ba // a8ba + { + return ret = 1; + } + } + + return ret; + a8b6: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + a8b8: 0404 br 0xa8c0 // a8c0 + if (Len < 5){ //长度校验 + a8ba: 3c04 cmphsi r4, 5 + a8bc: 0803 bt 0xa8c2 // a8c2 + return ret = 1; + a8be: 3001 movi r0, 1 + a8c0: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + a8c2: 8540 ld.b r2, (r5, 0x0) + a8c4: 33ff movi r3, 255 + a8c6: 64ca cmpne r2, r3 + a8c8: 0c04 bf 0xa8d0 // a8d0 + a8ca: 8561 ld.b r3, (r5, 0x1) + a8cc: 3b48 cmpnei r3, 8 + a8ce: 0bf8 bt 0xa8be // a8be + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + a8d0: 1125 lrw r1, 0xd1a8 // a964 + a8d2: 3000 movi r0, 0 + a8d4: e3ffded4 bsr 0x667c // 667c + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + a8d8: 3c45 cmpnei r4, 5 + a8da: 0814 bt 0xa902 // a902 + a8dc: 3104 movi r1, 4 + a8de: 6c17 mov r0, r5 + a8e0: e3fffd94 bsr 0xa408 // a408 + a8e4: 8564 ld.b r3, (r5, 0x4) + a8e6: 640e cmpne r3, r0 + a8e8: 0beb bt 0xa8be // a8be + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + a8ea: 1160 lrw r3, 0x2000080c // a968 + a8ec: 8542 ld.b r2, (r5, 0x2) + a8ee: 8338 ld.b r1, (r3, 0x18) + a8f0: 6486 cmpne r1, r2 + a8f2: 0fe2 bf 0xa8b6 // a8b6 + a8f4: 833a ld.b r1, (r3, 0x1a) + a8f6: 3941 cmpnei r1, 1 + a8f8: 0bdf bt 0xa8b6 // a8b6 + TempCtrl.CardState = RecData[2]; + a8fa: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + a8fc: 3201 movi r2, 1 + a8fe: a359 st.b r2, (r3, 0x19) + a900: 07db br 0xa8b6 // a8b6 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + a902: 3c09 cmphsi r4, 10 + a904: 0fdd bf 0xa8be // a8be + a906: 5c27 subi r1, r4, 2 + a908: 7445 zexth r1, r1 + a90a: 6114 addu r4, r5 + a90c: 6c17 mov r0, r5 + a90e: e3fffd5f bsr 0xa3cc // a3cc + a912: 5c63 subi r3, r4, 1 + a914: 8360 ld.b r3, (r3, 0x0) + a916: 2c01 subi r4, 2 + a918: 4368 lsli r3, r3, 8 + a91a: 8440 ld.b r2, (r4, 0x0) + a91c: 60c8 addu r3, r2 + a91e: 64c2 cmpne r0, r3 + a920: 0bcf bt 0xa8be // a8be + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + a922: 1072 lrw r3, 0x2000080c // a968 + a924: 8543 ld.b r2, (r5, 0x3) + a926: 8338 ld.b r1, (r3, 0x18) + a928: 6486 cmpne r1, r2 + a92a: 0c07 bf 0xa938 // a938 + a92c: 833a ld.b r1, (r3, 0x1a) + a92e: 3941 cmpnei r1, 1 + a930: 0804 bt 0xa938 // a938 + TempCtrl.CardState = RecData[3]; + a932: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + a934: 3201 movi r2, 1 + a936: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + a938: 8547 ld.b r2, (r5, 0x7) + a93a: 833b ld.b r1, (r3, 0x1b) + a93c: 6486 cmpne r1, r2 + a93e: 0c0d bf 0xa958 // a958 + TempCtrl.SceneNo = RecData[7]; + a940: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + a942: 104b lrw r2, 0x200000c0 // a96c + a944: 9240 ld.w r2, (r2, 0x0) + a946: 4a28 lsri r1, r2, 8 + a948: a354 st.b r2, (r3, 0x14) + a94a: a335 st.b r1, (r3, 0x15) + a94c: 4a30 lsri r1, r2, 16 + a94e: 4a58 lsri r2, r2, 24 + a950: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + a952: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + a954: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + a956: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + a958: 835b ld.b r2, (r3, 0x1b) + a95a: 1026 lrw r1, 0xd1ba // a970 + a95c: 3000 movi r0, 0 + a95e: e3ffde8f bsr 0x667c // 667c + a962: 07aa br 0xa8b6 // a8b6 + a964: 0000d1a8 .long 0x0000d1a8 + a968: 2000080c .long 0x2000080c + a96c: 200000c0 .long 0x200000c0 + a970: 0000d1ba .long 0x0000d1ba + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +0000a974 : + a974: 1063 lrw r3, 0x20000058 // a980 + a976: 9340 ld.w r2, (r3, 0x0) + a978: 926b ld.w r3, (r2, 0x2c) + a97a: 6c0c or r0, r3 + a97c: b20b st.w r0, (r2, 0x2c) + a97e: 783c jmp r15 + a980: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +0000a984 : + a984: 14c1 push r4 + a986: 1069 lrw r3, 0x20000058 // a9a8 + a988: 3840 cmpnei r0, 0 + a98a: 9380 ld.w r4, (r3, 0x0) + a98c: 9400 ld.w r0, (r4, 0x0) + a98e: 0c0b bf 0xa9a4 // a9a4 + a990: 38a0 bseti r0, 0 + a992: b400 st.w r0, (r4, 0x0) + a994: 9360 ld.w r3, (r3, 0x0) + a996: 4248 lsli r2, r2, 8 + a998: 4122 lsli r1, r1, 2 + a99a: 9300 ld.w r0, (r3, 0x0) + a99c: 6c48 or r1, r2 + a99e: 6c40 or r1, r0 + a9a0: b320 st.w r1, (r3, 0x0) + a9a2: 1481 pop r4 + a9a4: 3880 bclri r0, 0 + a9a6: 07f6 br 0xa992 // a992 + a9a8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +0000a9ac : + a9ac: 14c4 push r4-r7 + a9ae: 1429 subi r14, r14, 36 + a9b0: b840 st.w r2, (r14, 0x0) + a9b2: 984d ld.w r2, (r14, 0x34) + a9b4: b841 st.w r2, (r14, 0x4) + a9b6: 984e ld.w r2, (r14, 0x38) + a9b8: b842 st.w r2, (r14, 0x8) + a9ba: 984f ld.w r2, (r14, 0x3c) + a9bc: b843 st.w r2, (r14, 0xc) + a9be: 9850 ld.w r2, (r14, 0x40) + a9c0: 9895 ld.w r4, (r14, 0x54) + a9c2: b844 st.w r2, (r14, 0x10) + a9c4: 9853 ld.w r2, (r14, 0x4c) + a9c6: b845 st.w r2, (r14, 0x14) + a9c8: b887 st.w r4, (r14, 0x1c) + a9ca: 9854 ld.w r2, (r14, 0x50) + a9cc: 1c11 addi r4, r14, 68 + a9ce: b846 st.w r2, (r14, 0x18) + a9d0: 8c80 ld.h r4, (r4, 0x0) + a9d2: 1a15 addi r2, r14, 84 + a9d4: 1d12 addi r5, r14, 72 + a9d6: 8244 ld.b r2, (r2, 0x4) + a9d8: 3c40 cmpnei r4, 0 + a9da: 8dc0 ld.h r6, (r5, 0x0) + a9dc: b848 st.w r2, (r14, 0x20) + a9de: 0813 bt 0xaa04 // aa04 + a9e0: 105f lrw r2, 0x2000004c // aa5c + a9e2: 35f0 movi r5, 240 + a9e4: 92e0 ld.w r7, (r2, 0x0) + a9e6: 9740 ld.w r2, (r7, 0x0) + a9e8: 45a4 lsli r5, r5, 4 + a9ea: 6895 andn r2, r5 + a9ec: 3aab bseti r2, 11 + a9ee: b740 st.w r2, (r7, 0x0) + a9f0: 3502 movi r5, 2 + a9f2: 105c lrw r2, 0x20000050 // aa60 + a9f4: 3e41 cmpnei r6, 1 + a9f6: 9240 ld.w r2, (r2, 0x0) + a9f8: b2a0 st.w r5, (r2, 0x0) + a9fa: 0828 bt 0xaa4a // aa4a + a9fc: 92a4 ld.w r5, (r2, 0x10) + a9fe: 3db8 bseti r5, 24 + aa00: 3db9 bseti r5, 25 + aa02: b2a4 st.w r5, (r2, 0x10) + aa04: 1058 lrw r2, 0x20000058 // aa64 + aa06: 448d lsli r4, r4, 13 + aa08: 92a0 ld.w r5, (r2, 0x0) + aa0a: 9541 ld.w r2, (r5, 0x4) + aa0c: 3200 movi r2, 0 + aa0e: b541 st.w r2, (r5, 0x4) + aa10: 9541 ld.w r2, (r5, 0x4) + aa12: 98c7 ld.w r6, (r14, 0x1c) + aa14: 6c98 or r2, r6 + aa16: 98c6 ld.w r6, (r14, 0x18) + aa18: 6c98 or r2, r6 + aa1a: 98c5 ld.w r6, (r14, 0x14) + aa1c: 6c98 or r2, r6 + aa1e: 98c8 ld.w r6, (r14, 0x20) + aa20: 46d8 lsli r6, r6, 24 + aa22: 6c98 or r2, r6 + aa24: 98c4 ld.w r6, (r14, 0x10) + aa26: 6c98 or r2, r6 + aa28: 98c3 ld.w r6, (r14, 0xc) + aa2a: 6c98 or r2, r6 + aa2c: 98c2 ld.w r6, (r14, 0x8) + aa2e: 6c98 or r2, r6 + aa30: 98c1 ld.w r6, (r14, 0x4) + aa32: 6c98 or r2, r6 + aa34: 6c48 or r1, r2 + aa36: 9840 ld.w r2, (r14, 0x0) + aa38: 6c04 or r0, r1 + aa3a: 4242 lsli r2, r2, 2 + aa3c: 6c08 or r0, r2 + aa3e: 6d00 or r4, r0 + aa40: 4367 lsli r3, r3, 7 + aa42: 6cd0 or r3, r4 + aa44: b561 st.w r3, (r5, 0x4) + aa46: 1409 addi r14, r14, 36 + aa48: 1484 pop r4-r7 + aa4a: 3e40 cmpnei r6, 0 + aa4c: 0bdc bt 0xaa04 // aa04 + aa4e: 9264 ld.w r3, (r2, 0x10) + aa50: 3b98 bclri r3, 24 + aa52: 3b99 bclri r3, 25 + aa54: 3bb8 bseti r3, 24 + aa56: b264 st.w r3, (r2, 0x10) + aa58: 3300 movi r3, 0 + aa5a: 07d5 br 0xaa04 // aa04 + aa5c: 2000004c .long 0x2000004c + aa60: 20000050 .long 0x20000050 + aa64: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_io_enable: + +0000aa68 : + aa68: 14d4 push r4-r7, r15 + aa6a: 1422 subi r14, r14, 8 + aa6c: 1269 lrw r3, 0x2000004c // ab90 + aa6e: 31f0 movi r1, 240 + aa70: 9360 ld.w r3, (r3, 0x0) + aa72: 9340 ld.w r2, (r3, 0x0) + aa74: 4130 lsli r1, r1, 16 + aa76: 6885 andn r2, r1 + aa78: 3ab4 bseti r2, 20 + aa7a: 3ab7 bseti r2, 23 + aa7c: b340 st.w r2, (r3, 0x0) + aa7e: 35f0 movi r5, 240 + aa80: 1245 lrw r2, 0x20000268 // ab94 + aa82: 36f0 movi r6, 240 + aa84: 9240 ld.w r2, (r2, 0x0) + aa86: b841 st.w r2, (r14, 0x4) + aa88: 3400 movi r4, 0 + aa8a: 1244 lrw r2, 0x20000048 // ab98 + aa8c: 45ac lsli r5, r5, 12 + aa8e: 9240 ld.w r2, (r2, 0x0) + aa90: b820 st.w r1, (r14, 0x0) + aa92: 46c8 lsli r6, r6, 8 + aa94: 3701 movi r7, 1 + aa96: 71d0 lsl r7, r4 + aa98: 9821 ld.w r1, (r14, 0x4) + aa9a: 69c4 and r7, r1 + aa9c: 3f40 cmpnei r7, 0 + aa9e: 7410 zextb r0, r4 + aaa0: 0c1b bf 0xaad6 // aad6 + aaa2: 2800 subi r0, 1 + aaa4: 380f cmphsi r0, 16 + aaa6: 080b bt 0xaabc // aabc + aaa8: e3ffc52a bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + aaac: 27201a0f .long 0x27201a0f + aab0: 3d38312c .long 0x3d38312c + aab4: 56514a44 .long 0x56514a44 + aab8: 6c67615b .long 0x6c67615b + aabc: 9200 ld.w r0, (r2, 0x0) + aabe: 37f0 movi r7, 240 + aac0: 681d andn r0, r7 + aac2: 38a4 bseti r0, 4 + aac4: 38a7 bseti r0, 7 + aac6: b200 st.w r0, (r2, 0x0) + aac8: 0407 br 0xaad6 // aad6 + aaca: 9300 ld.w r0, (r3, 0x0) + aacc: 370f movi r7, 15 + aace: 681d andn r0, r7 + aad0: 38a0 bseti r0, 0 + aad2: 38a3 bseti r0, 3 + aad4: b300 st.w r0, (r3, 0x0) + aad6: 2400 addi r4, 1 + aad8: 3c51 cmpnei r4, 17 + aada: 0bdd bt 0xaa94 // aa94 + aadc: 1402 addi r14, r14, 8 + aade: 1494 pop r4-r7, r15 + aae0: 9300 ld.w r0, (r3, 0x0) + aae2: 37f0 movi r7, 240 + aae4: 681d andn r0, r7 + aae6: 38a4 bseti r0, 4 + aae8: 38a7 bseti r0, 7 + aaea: 07f5 br 0xaad4 // aad4 + aaec: 37f0 movi r7, 240 + aaee: 9300 ld.w r0, (r3, 0x0) + aaf0: 47e4 lsli r7, r7, 4 + aaf2: 681d andn r0, r7 + aaf4: 38a8 bseti r0, 8 + aaf6: 38ab bseti r0, 11 + aaf8: 07ee br 0xaad4 // aad4 + aafa: 9300 ld.w r0, (r3, 0x0) + aafc: 6819 andn r0, r6 + aafe: 38ac bseti r0, 12 + ab00: 38af bseti r0, 15 + ab02: 07e9 br 0xaad4 // aad4 + ab04: 9300 ld.w r0, (r3, 0x0) + ab06: 6815 andn r0, r5 + ab08: 38b0 bseti r0, 16 + ab0a: 38b3 bseti r0, 19 + ab0c: 07e4 br 0xaad4 // aad4 + ab0e: 37f0 movi r7, 240 + ab10: 9200 ld.w r0, (r2, 0x0) + ab12: 47e4 lsli r7, r7, 4 + ab14: 681d andn r0, r7 + ab16: 38a8 bseti r0, 8 + ab18: 38ab bseti r0, 11 + ab1a: 07d6 br 0xaac6 // aac6 + ab1c: 9200 ld.w r0, (r2, 0x0) + ab1e: 6819 andn r0, r6 + ab20: 38ac bseti r0, 12 + ab22: 38af bseti r0, 15 + ab24: 07d1 br 0xaac6 // aac6 + ab26: 9301 ld.w r0, (r3, 0x4) + ab28: 370f movi r7, 15 + ab2a: 681d andn r0, r7 + ab2c: 38a0 bseti r0, 0 + ab2e: 38a3 bseti r0, 3 + ab30: b301 st.w r0, (r3, 0x4) + ab32: 07d2 br 0xaad6 // aad6 + ab34: 9301 ld.w r0, (r3, 0x4) + ab36: 37f0 movi r7, 240 + ab38: 681d andn r0, r7 + ab3a: 38a4 bseti r0, 4 + ab3c: 38a7 bseti r0, 7 + ab3e: 07f9 br 0xab30 // ab30 + ab40: 37f0 movi r7, 240 + ab42: 9301 ld.w r0, (r3, 0x4) + ab44: 47e4 lsli r7, r7, 4 + ab46: 681d andn r0, r7 + ab48: 38a8 bseti r0, 8 + ab4a: 38ab bseti r0, 11 + ab4c: 07f2 br 0xab30 // ab30 + ab4e: 9301 ld.w r0, (r3, 0x4) + ab50: 6819 andn r0, r6 + ab52: 38ac bseti r0, 12 + ab54: 38af bseti r0, 15 + ab56: 07ed br 0xab30 // ab30 + ab58: 9301 ld.w r0, (r3, 0x4) + ab5a: 6815 andn r0, r5 + ab5c: 38b0 bseti r0, 16 + ab5e: 38b3 bseti r0, 19 + ab60: 07e8 br 0xab30 // ab30 + ab62: 9301 ld.w r0, (r3, 0x4) + ab64: 9820 ld.w r1, (r14, 0x0) + ab66: 6805 andn r0, r1 + ab68: 38b4 bseti r0, 20 + ab6a: 38b7 bseti r0, 23 + ab6c: 07e2 br 0xab30 // ab30 + ab6e: 9200 ld.w r0, (r2, 0x0) + ab70: 370f movi r7, 15 + ab72: 681d andn r0, r7 + ab74: 38a0 bseti r0, 0 + ab76: 38a3 bseti r0, 3 + ab78: 07a7 br 0xaac6 // aac6 + ab7a: 9200 ld.w r0, (r2, 0x0) + ab7c: 6815 andn r0, r5 + ab7e: 38b0 bseti r0, 16 + ab80: 38b3 bseti r0, 19 + ab82: 07a2 br 0xaac6 // aac6 + ab84: 9200 ld.w r0, (r2, 0x0) + ab86: 9820 ld.w r1, (r14, 0x0) + ab88: 6805 andn r0, r1 + ab8a: 38b4 bseti r0, 20 + ab8c: 38b7 bseti r0, 23 + ab8e: 079c br 0xaac6 // aac6 + ab90: 2000004c .long 0x2000004c + ab94: 20000268 .long 0x20000268 + ab98: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Single_Longpress_prg: + +0000ab9c : + ab9c: 14c2 push r4-r5 + ab9e: 117d lrw r3, 0x200009f4 // ac90 + aba0: 115d lrw r2, 0x20000960 // ac94 + aba2: 9360 ld.w r3, (r3, 0x0) + aba4: 3b40 cmpnei r3, 0 + aba6: 0840 bt 0xac26 // ac26 + aba8: 113c lrw r1, 0x20000070 // ac98 + abaa: 8962 ld.h r3, (r1, 0x4) + abac: 74cd zexth r3, r3 + abae: 3b40 cmpnei r3, 0 + abb0: 0c3b bf 0xac26 // ac26 + abb2: 117b lrw r3, 0x200008f4 // ac9c + abb4: 9360 ld.w r3, (r3, 0x0) + abb6: 3b40 cmpnei r3, 0 + abb8: 117a lrw r3, 0x20000aaa // aca0 + abba: 0c0e bf 0xabd6 // abd6 + abbc: 8300 ld.b r0, (r3, 0x0) + abbe: 2000 addi r0, 1 + abc0: 7400 zextb r0, r0 + abc2: a300 st.b r0, (r3, 0x0) + abc4: 8380 ld.b r4, (r3, 0x0) + abc6: 8902 ld.h r0, (r1, 0x4) + abc8: 7401 zexth r0, r0 + abca: 3564 movi r5, 100 + abcc: 7c14 mult r0, r5 + abce: 6501 cmplt r0, r4 + abd0: 0c05 bf 0xabda // abda + abd2: 3001 movi r0, 1 + abd4: a200 st.b r0, (r2, 0x0) + abd6: 3000 movi r0, 0 + abd8: a300 st.b r0, (r3, 0x0) + abda: 1113 lrw r0, 0x20000888 // aca4 + abdc: 9000 ld.w r0, (r0, 0x0) + abde: 3840 cmpnei r0, 0 + abe0: 0c0e bf 0xabfc // abfc + abe2: 8301 ld.b r0, (r3, 0x1) + abe4: 2000 addi r0, 1 + abe6: 7400 zextb r0, r0 + abe8: a301 st.b r0, (r3, 0x1) + abea: 8381 ld.b r4, (r3, 0x1) + abec: 8902 ld.h r0, (r1, 0x4) + abee: 7401 zexth r0, r0 + abf0: 3564 movi r5, 100 + abf2: 7c14 mult r0, r5 + abf4: 6501 cmplt r0, r4 + abf6: 0c05 bf 0xac00 // ac00 + abf8: 3001 movi r0, 1 + abfa: a201 st.b r0, (r2, 0x1) + abfc: 3000 movi r0, 0 + abfe: a301 st.b r0, (r3, 0x1) + ac00: 110a lrw r0, 0x2000096c // aca8 + ac02: 9000 ld.w r0, (r0, 0x0) + ac04: 3840 cmpnei r0, 0 + ac06: 0c0e bf 0xac22 // ac22 + ac08: 8302 ld.b r0, (r3, 0x2) + ac0a: 2000 addi r0, 1 + ac0c: 7400 zextb r0, r0 + ac0e: a302 st.b r0, (r3, 0x2) + ac10: 8302 ld.b r0, (r3, 0x2) + ac12: 8922 ld.h r1, (r1, 0x4) + ac14: 7445 zexth r1, r1 + ac16: 3464 movi r4, 100 + ac18: 7c50 mult r1, r4 + ac1a: 6405 cmplt r1, r0 + ac1c: 0c05 bf 0xac26 // ac26 + ac1e: 3101 movi r1, 1 + ac20: a222 st.b r1, (r2, 0x2) + ac22: 3100 movi r1, 0 + ac24: a322 st.b r1, (r3, 0x2) + ac26: 8260 ld.b r3, (r2, 0x0) + ac28: 3b41 cmpnei r3, 1 + ac2a: 080f bt 0xac48 // ac48 + ac2c: 3300 movi r3, 0 + ac2e: 11a0 lrw r5, 0x20000ba6 // acac + ac30: 1180 lrw r4, 0x20000854 // acb0 + ac32: 4321 lsli r1, r3, 1 + ac34: 5d04 addu r0, r5, r1 + ac36: 8800 ld.h r0, (r0, 0x0) + ac38: 2300 addi r3, 1 + ac3a: 7401 zexth r0, r0 + ac3c: 6050 addu r1, r4 + ac3e: 3b51 cmpnei r3, 17 + ac40: a900 st.h r0, (r1, 0x0) + ac42: 0bf8 bt 0xac32 // ac32 + ac44: 3300 movi r3, 0 + ac46: a260 st.b r3, (r2, 0x0) + ac48: 8261 ld.b r3, (r2, 0x1) + ac4a: 3b41 cmpnei r3, 1 + ac4c: 080f bt 0xac6a // ac6a + ac4e: 3300 movi r3, 0 + ac50: 10b9 lrw r5, 0x2000093c // acb4 + ac52: 109a lrw r4, 0x200009fe // acb8 + ac54: 4321 lsli r1, r3, 1 + ac56: 5d04 addu r0, r5, r1 + ac58: 8800 ld.h r0, (r0, 0x0) + ac5a: 2300 addi r3, 1 + ac5c: 7401 zexth r0, r0 + ac5e: 6050 addu r1, r4 + ac60: 3b51 cmpnei r3, 17 + ac62: a900 st.h r0, (r1, 0x0) + ac64: 0bf8 bt 0xac54 // ac54 + ac66: 3300 movi r3, 0 + ac68: a261 st.b r3, (r2, 0x1) + ac6a: 8262 ld.b r3, (r2, 0x2) + ac6c: 3b41 cmpnei r3, 1 + ac6e: 080f bt 0xac8c // ac8c + ac70: 3300 movi r3, 0 + ac72: 10b3 lrw r5, 0x20000a32 // acbc + ac74: 1093 lrw r4, 0x20000b14 // acc0 + ac76: 4321 lsli r1, r3, 1 + ac78: 5d04 addu r0, r5, r1 + ac7a: 8800 ld.h r0, (r0, 0x0) + ac7c: 2300 addi r3, 1 + ac7e: 7401 zexth r0, r0 + ac80: 6050 addu r1, r4 + ac82: 3b51 cmpnei r3, 17 + ac84: a900 st.h r0, (r1, 0x0) + ac86: 0bf8 bt 0xac76 // ac76 + ac88: 3300 movi r3, 0 + ac8a: a262 st.b r3, (r2, 0x2) + ac8c: 1482 pop r4-r5 + ac8e: 0000 bkpt + ac90: 200009f4 .long 0x200009f4 + ac94: 20000960 .long 0x20000960 + ac98: 20000070 .long 0x20000070 + ac9c: 200008f4 .long 0x200008f4 + aca0: 20000aaa .long 0x20000aaa + aca4: 20000888 .long 0x20000888 + aca8: 2000096c .long 0x2000096c + acac: 20000ba6 .long 0x20000ba6 + acb0: 20000854 .long 0x20000854 + acb4: 2000093c .long 0x2000093c + acb8: 200009fe .long 0x200009fe + acbc: 20000a32 .long 0x20000a32 + acc0: 20000b14 .long 0x20000b14 + +Disassembly of section .text.TK_Sampling_prog: + +0000acc4 : + acc4: 14c4 push r4-r7 + acc6: 1423 subi r14, r14, 12 + acc8: 1169 lrw r3, 0x20000054 // ad6c + acca: 114a lrw r2, 0x20000b11 // ad70 + accc: 6d0b mov r4, r2 + acce: 9320 ld.w r1, (r3, 0x0) + acd0: b840 st.w r2, (r14, 0x0) + acd2: 3300 movi r3, 0 + acd4: 11a8 lrw r5, 0x20000ba6 // ad74 + acd6: 9840 ld.w r2, (r14, 0x0) + acd8: 8240 ld.b r2, (r2, 0x0) + acda: 3a41 cmpnei r2, 1 + acdc: 0808 bt 0xacec // acec + acde: 4342 lsli r2, r3, 2 + ace0: 6084 addu r2, r1 + ace2: 9200 ld.w r0, (r2, 0x0) + ace4: 4341 lsli r2, r3, 1 + ace6: 7401 zexth r0, r0 + ace8: 6094 addu r2, r5 + acea: aa00 st.h r0, (r2, 0x0) + acec: 8440 ld.b r2, (r4, 0x0) + acee: 3a42 cmpnei r2, 2 + acf0: 0809 bt 0xad02 // ad02 + acf2: 4342 lsli r2, r3, 2 + acf4: 6084 addu r2, r1 + acf6: 9200 ld.w r0, (r2, 0x0) + acf8: 4341 lsli r2, r3, 1 + acfa: 11c0 lrw r6, 0x2000093c // ad78 + acfc: 7401 zexth r0, r0 + acfe: 6098 addu r2, r6 + ad00: aa00 st.h r0, (r2, 0x0) + ad02: 8440 ld.b r2, (r4, 0x0) + ad04: 3a40 cmpnei r2, 0 + ad06: 0809 bt 0xad18 // ad18 + ad08: 4342 lsli r2, r3, 2 + ad0a: 6084 addu r2, r1 + ad0c: 9200 ld.w r0, (r2, 0x0) + ad0e: 4341 lsli r2, r3, 1 + ad10: 10db lrw r6, 0x20000a32 // ad7c + ad12: 7401 zexth r0, r0 + ad14: 6098 addu r2, r6 + ad16: aa00 st.h r0, (r2, 0x0) + ad18: 10da lrw r6, 0x20000999 // ad80 + ad1a: 8640 ld.b r2, (r6, 0x0) + ad1c: 3a41 cmpnei r2, 1 + ad1e: 0821 bt 0xad60 // ad60 + ad20: 1079 lrw r3, 0x20000854 // ad84 + ad22: 3200 movi r2, 0 + ad24: b861 st.w r3, (r14, 0x4) + ad26: 1075 lrw r3, 0x2000093c // ad78 + ad28: b862 st.w r3, (r14, 0x8) + ad2a: 4261 lsli r3, r2, 1 + ad2c: 5d0c addu r0, r5, r3 + ad2e: 8800 ld.h r0, (r0, 0x0) + ad30: 98e1 ld.w r7, (r14, 0x4) + ad32: 61cc addu r7, r3 + ad34: 7401 zexth r0, r0 + ad36: af00 st.h r0, (r7, 0x0) + ad38: 9802 ld.w r0, (r14, 0x8) + ad3a: 600c addu r0, r3 + ad3c: 8800 ld.h r0, (r0, 0x0) + ad3e: 10f3 lrw r7, 0x200009fe // ad88 + ad40: 61cc addu r7, r3 + ad42: 7401 zexth r0, r0 + ad44: af00 st.h r0, (r7, 0x0) + ad46: 2200 addi r2, 1 + ad48: 100d lrw r0, 0x20000a32 // ad7c + ad4a: 600c addu r0, r3 + ad4c: 8800 ld.h r0, (r0, 0x0) + ad4e: 10f0 lrw r7, 0x20000b14 // ad8c + ad50: 7401 zexth r0, r0 + ad52: 60dc addu r3, r7 + ad54: 3a51 cmpnei r2, 17 + ad56: ab00 st.h r0, (r3, 0x0) + ad58: 0be9 bt 0xad2a // ad2a + ad5a: 3300 movi r3, 0 + ad5c: a660 st.b r3, (r6, 0x0) + ad5e: 3311 movi r3, 17 + ad60: 2300 addi r3, 1 + ad62: 74cc zextb r3, r3 + ad64: 3b10 cmphsi r3, 17 + ad66: 0fb8 bf 0xacd6 // acd6 + ad68: 1403 addi r14, r14, 12 + ad6a: 1484 pop r4-r7 + ad6c: 20000054 .long 0x20000054 + ad70: 20000b11 .long 0x20000b11 + ad74: 20000ba6 .long 0x20000ba6 + ad78: 2000093c .long 0x2000093c + ad7c: 20000a32 .long 0x20000a32 + ad80: 20000999 .long 0x20000999 + ad84: 20000854 .long 0x20000854 + ad88: 200009fe .long 0x200009fe + ad8c: 20000b14 .long 0x20000b14 + +Disassembly of section .text.get_key_number: + +0000ad90 : + ad90: 14c2 push r4-r5 + ad92: 3200 movi r2, 0 + ad94: 3000 movi r0, 0 + ad96: 1088 lrw r4, 0x200009f4 // adb4 + ad98: 3501 movi r5, 1 + ad9a: 3120 movi r1, 32 + ad9c: 9460 ld.w r3, (r4, 0x0) + ad9e: 70c9 lsr r3, r2 + ada0: 68d4 and r3, r5 + ada2: 3b40 cmpnei r3, 0 + ada4: 0c02 bf 0xada8 // ada8 + ada6: 2000 addi r0, 1 + ada8: 2200 addi r2, 1 + adaa: 644a cmpne r2, r1 + adac: 0bf8 bt 0xad9c // ad9c + adae: 7400 zextb r0, r0 + adb0: 1482 pop r4-r5 + adb2: 0000 bkpt + adb4: 200009f4 .long 0x200009f4 + +Disassembly of section .text.get_key_number0: + +0000adb8 : + adb8: 14c2 push r4-r5 + adba: 3200 movi r2, 0 + adbc: 3000 movi r0, 0 + adbe: 1088 lrw r4, 0x200008f4 // addc + adc0: 3501 movi r5, 1 + adc2: 3120 movi r1, 32 + adc4: 9460 ld.w r3, (r4, 0x0) + adc6: 70c9 lsr r3, r2 + adc8: 68d4 and r3, r5 + adca: 3b40 cmpnei r3, 0 + adcc: 0c02 bf 0xadd0 // add0 + adce: 2000 addi r0, 1 + add0: 2200 addi r2, 1 + add2: 644a cmpne r2, r1 + add4: 0bf8 bt 0xadc4 // adc4 + add6: 7400 zextb r0, r0 + add8: 1482 pop r4-r5 + adda: 0000 bkpt + addc: 200008f4 .long 0x200008f4 + +Disassembly of section .text.get_key_number1: + +0000ade0 : + ade0: 14c2 push r4-r5 + ade2: 3200 movi r2, 0 + ade4: 3000 movi r0, 0 + ade6: 1088 lrw r4, 0x20000888 // ae04 + ade8: 3501 movi r5, 1 + adea: 3120 movi r1, 32 + adec: 9460 ld.w r3, (r4, 0x0) + adee: 70c9 lsr r3, r2 + adf0: 68d4 and r3, r5 + adf2: 3b40 cmpnei r3, 0 + adf4: 0c02 bf 0xadf8 // adf8 + adf6: 2000 addi r0, 1 + adf8: 2200 addi r2, 1 + adfa: 644a cmpne r2, r1 + adfc: 0bf8 bt 0xadec // adec + adfe: 7400 zextb r0, r0 + ae00: 1482 pop r4-r5 + ae02: 0000 bkpt + ae04: 20000888 .long 0x20000888 + +Disassembly of section .text.get_key_number2: + +0000ae08 : + ae08: 14c2 push r4-r5 + ae0a: 3200 movi r2, 0 + ae0c: 3000 movi r0, 0 + ae0e: 1088 lrw r4, 0x2000096c // ae2c + ae10: 3501 movi r5, 1 + ae12: 3120 movi r1, 32 + ae14: 9460 ld.w r3, (r4, 0x0) + ae16: 70c9 lsr r3, r2 + ae18: 68d4 and r3, r5 + ae1a: 3b40 cmpnei r3, 0 + ae1c: 0c02 bf 0xae20 // ae20 + ae1e: 2000 addi r0, 1 + ae20: 2200 addi r2, 1 + ae22: 644a cmpne r2, r1 + ae24: 0bf8 bt 0xae14 // ae14 + ae26: 7400 zextb r0, r0 + ae28: 1482 pop r4-r5 + ae2a: 0000 bkpt + ae2c: 2000096c .long 0x2000096c + +Disassembly of section .text.TK_Baseline_prog: + +0000ae30 : + ae30: 14c4 push r4-r7 + ae32: 142a subi r14, r14, 40 + ae34: 1264 lrw r3, 0x20000968 // af44 + ae36: 1245 lrw r2, 0x20000b11 // af48 + ae38: 6c0b mov r0, r2 + ae3a: 9360 ld.w r3, (r3, 0x0) + ae3c: b865 st.w r3, (r14, 0x14) + ae3e: 1264 lrw r3, 0x20000938 // af4c + ae40: 9360 ld.w r3, (r3, 0x0) + ae42: b864 st.w r3, (r14, 0x10) + ae44: 1263 lrw r3, 0x20000bc8 // af50 + ae46: 9360 ld.w r3, (r3, 0x0) + ae48: b863 st.w r3, (r14, 0xc) + ae4a: 1263 lrw r3, 0x20000058 // af54 + ae4c: 9360 ld.w r3, (r3, 0x0) + ae4e: b866 st.w r3, (r14, 0x18) + ae50: 1262 lrw r3, 0x20000054 // af58 + ae52: 9360 ld.w r3, (r3, 0x0) + ae54: b860 st.w r3, (r14, 0x0) + ae56: 3306 movi r3, 6 + ae58: b861 st.w r3, (r14, 0x4) + ae5a: 1261 lrw r3, 0x20000070 // af5c + ae5c: b862 st.w r3, (r14, 0x8) + ae5e: 3103 movi r1, 3 + ae60: 8260 ld.b r3, (r2, 0x0) + ae62: 74cc zextb r3, r3 + ae64: 3b41 cmpnei r3, 1 + ae66: 0c66 bf 0xaf32 // af32 + ae68: 3b40 cmpnei r3, 0 + ae6a: 0c5c bf 0xaf22 // af22 + ae6c: 3b42 cmpnei r3, 2 + ae6e: 0c65 bf 0xaf38 // af38 + ae70: 3301 movi r3, 1 + ae72: 9886 ld.w r4, (r14, 0x18) + ae74: b462 st.w r3, (r4, 0x8) + ae76: 9862 ld.w r3, (r14, 0x8) + ae78: 3400 movi r4, 0 + ae7a: a380 st.b r4, (r3, 0x0) + ae7c: 9862 ld.w r3, (r14, 0x8) + ae7e: 8360 ld.b r3, (r3, 0x0) + ae80: 3b40 cmpnei r3, 0 + ae82: 0ffd bf 0xae7c // ae7c + ae84: 6c03 mov r0, r0 + ae86: 1197 lrw r4, 0x20000854 // af60 + ae88: 3300 movi r3, 0 + ae8a: b887 st.w r4, (r14, 0x1c) + ae8c: 1196 lrw r4, 0x20000ba6 // af64 + ae8e: b888 st.w r4, (r14, 0x20) + ae90: 1196 lrw r4, 0x200009fe // af68 + ae92: b889 st.w r4, (r14, 0x24) + ae94: 8080 ld.b r4, (r0, 0x0) + ae96: 3c41 cmpnei r4, 1 + ae98: 080f bt 0xaeb6 // aeb6 + ae9a: 9880 ld.w r4, (r14, 0x0) + ae9c: 43a2 lsli r5, r3, 2 + ae9e: 6150 addu r5, r4 + aea0: 95c0 ld.w r6, (r5, 0x0) + aea2: 4381 lsli r4, r3, 1 + aea4: 98e7 ld.w r7, (r14, 0x1c) + aea6: 7599 zexth r6, r6 + aea8: 61d0 addu r7, r4 + aeaa: afc0 st.h r6, (r7, 0x0) + aeac: 95a0 ld.w r5, (r5, 0x0) + aeae: 98c8 ld.w r6, (r14, 0x20) + aeb0: 7555 zexth r5, r5 + aeb2: 6118 addu r4, r6 + aeb4: aca0 st.h r5, (r4, 0x0) + aeb6: 8080 ld.b r4, (r0, 0x0) + aeb8: 3c42 cmpnei r4, 2 + aeba: 080f bt 0xaed8 // aed8 + aebc: 9880 ld.w r4, (r14, 0x0) + aebe: 43a2 lsli r5, r3, 2 + aec0: 6150 addu r5, r4 + aec2: 95c0 ld.w r6, (r5, 0x0) + aec4: 4381 lsli r4, r3, 1 + aec6: 98e9 ld.w r7, (r14, 0x24) + aec8: 7599 zexth r6, r6 + aeca: 61d0 addu r7, r4 + aecc: afc0 st.h r6, (r7, 0x0) + aece: 95a0 ld.w r5, (r5, 0x0) + aed0: 7555 zexth r5, r5 + aed2: 11c7 lrw r6, 0x2000093c // af6c + aed4: 6118 addu r4, r6 + aed6: aca0 st.h r5, (r4, 0x0) + aed8: 8080 ld.b r4, (r0, 0x0) + aeda: 3c40 cmpnei r4, 0 + aedc: 080f bt 0xaefa // aefa + aede: 9880 ld.w r4, (r14, 0x0) + aee0: 43a2 lsli r5, r3, 2 + aee2: 6150 addu r5, r4 + aee4: 95c0 ld.w r6, (r5, 0x0) + aee6: 4381 lsli r4, r3, 1 + aee8: 11e2 lrw r7, 0x20000b14 // af70 + aeea: 7599 zexth r6, r6 + aeec: 61d0 addu r7, r4 + aeee: afc0 st.h r6, (r7, 0x0) + aef0: 95a0 ld.w r5, (r5, 0x0) + aef2: 7555 zexth r5, r5 + aef4: 11c0 lrw r6, 0x20000a32 // af74 + aef6: 6118 addu r4, r6 + aef8: aca0 st.h r5, (r4, 0x0) + aefa: 2300 addi r3, 1 + aefc: 3b51 cmpnei r3, 17 + aefe: 0bcb bt 0xae94 // ae94 + af00: 2900 subi r1, 1 + af02: 7444 zextb r1, r1 + af04: 3940 cmpnei r1, 0 + af06: 0bad bt 0xae60 // ae60 + af08: 9861 ld.w r3, (r14, 0x4) + af0a: 2b00 subi r3, 1 + af0c: 74cc zextb r3, r3 + af0e: 3b40 cmpnei r3, 0 + af10: b861 st.w r3, (r14, 0x4) + af12: 0ba6 bt 0xae5e // ae5e + af14: 1079 lrw r3, 0x20000900 // af78 + af16: 3201 movi r2, 1 + af18: a340 st.b r2, (r3, 0x0) + af1a: 3300 movi r3, 0 + af1c: a060 st.b r3, (r0, 0x0) + af1e: 140a addi r14, r14, 40 + af20: 1484 pop r4-r7 + af22: 1077 lrw r3, 0x40011200 // af7c + af24: 9883 ld.w r4, (r14, 0xc) + af26: b390 st.w r4, (r3, 0x40) + af28: 8260 ld.b r3, (r2, 0x0) + af2a: 2300 addi r3, 1 + af2c: 74cc zextb r3, r3 + af2e: a260 st.b r3, (r2, 0x0) + af30: 07a0 br 0xae70 // ae70 + af32: 1073 lrw r3, 0x40011200 // af7c + af34: 9884 ld.w r4, (r14, 0x10) + af36: 07f8 br 0xaf26 // af26 + af38: 1071 lrw r3, 0x40011200 // af7c + af3a: 9885 ld.w r4, (r14, 0x14) + af3c: b390 st.w r4, (r3, 0x40) + af3e: 3300 movi r3, 0 + af40: 07f7 br 0xaf2e // af2e + af42: 0000 bkpt + af44: 20000968 .long 0x20000968 + af48: 20000b11 .long 0x20000b11 + af4c: 20000938 .long 0x20000938 + af50: 20000bc8 .long 0x20000bc8 + af54: 20000058 .long 0x20000058 + af58: 20000054 .long 0x20000054 + af5c: 20000070 .long 0x20000070 + af60: 20000854 .long 0x20000854 + af64: 20000ba6 .long 0x20000ba6 + af68: 200009fe .long 0x200009fe + af6c: 2000093c .long 0x2000093c + af70: 20000b14 .long 0x20000b14 + af74: 20000a32 .long 0x20000a32 + af78: 20000900 .long 0x20000900 + af7c: 40011200 .long 0x40011200 + +Disassembly of section .text.TK_Baseline_prog2: + +0000af80 : + af80: 14c4 push r4-r7 + af82: 142a subi r14, r14, 40 + af84: 1262 lrw r3, 0x20000900 // b08c + af86: 3200 movi r2, 0 + af88: a340 st.b r2, (r3, 0x0) + af8a: b866 st.w r3, (r14, 0x18) + af8c: 3103 movi r1, 3 + af8e: 1241 lrw r2, 0x20000968 // b090 + af90: 1261 lrw r3, 0x20000070 // b094 + af92: 9240 ld.w r2, (r2, 0x0) + af94: b844 st.w r2, (r14, 0x10) + af96: b861 st.w r3, (r14, 0x4) + af98: 1240 lrw r2, 0x20000938 // b098 + af9a: 9240 ld.w r2, (r2, 0x0) + af9c: b843 st.w r2, (r14, 0xc) + af9e: 1240 lrw r2, 0x20000bc8 // b09c + afa0: 9240 ld.w r2, (r2, 0x0) + afa2: b842 st.w r2, (r14, 0x8) + afa4: 115f lrw r2, 0x20000058 // b0a0 + afa6: 9240 ld.w r2, (r2, 0x0) + afa8: b845 st.w r2, (r14, 0x14) + afaa: 115f lrw r2, 0x20000054 // b0a4 + afac: 9240 ld.w r2, (r2, 0x0) + afae: b840 st.w r2, (r14, 0x0) + afb0: 115e lrw r2, 0x20000b11 // b0a8 + afb2: 6c0b mov r0, r2 + afb4: 8260 ld.b r3, (r2, 0x0) + afb6: 74cc zextb r3, r3 + afb8: 3b41 cmpnei r3, 1 + afba: 0c60 bf 0xb07a // b07a + afbc: 3b40 cmpnei r3, 0 + afbe: 0c56 bf 0xb06a // b06a + afc0: 3b42 cmpnei r3, 2 + afc2: 0c5f bf 0xb080 // b080 + afc4: 3301 movi r3, 1 + afc6: 9885 ld.w r4, (r14, 0x14) + afc8: b462 st.w r3, (r4, 0x8) + afca: 9861 ld.w r3, (r14, 0x4) + afcc: 3400 movi r4, 0 + afce: a380 st.b r4, (r3, 0x0) + afd0: 9861 ld.w r3, (r14, 0x4) + afd2: 8360 ld.b r3, (r3, 0x0) + afd4: 3b40 cmpnei r3, 0 + afd6: 0ffd bf 0xafd0 // afd0 + afd8: 6c03 mov r0, r0 + afda: 1195 lrw r4, 0x20000854 // b0ac + afdc: 3300 movi r3, 0 + afde: b887 st.w r4, (r14, 0x1c) + afe0: 1194 lrw r4, 0x20000ba6 // b0b0 + afe2: b888 st.w r4, (r14, 0x20) + afe4: 1194 lrw r4, 0x200009fe // b0b4 + afe6: b889 st.w r4, (r14, 0x24) + afe8: 8080 ld.b r4, (r0, 0x0) + afea: 3c41 cmpnei r4, 1 + afec: 080f bt 0xb00a // b00a + afee: 9880 ld.w r4, (r14, 0x0) + aff0: 43a2 lsli r5, r3, 2 + aff2: 6150 addu r5, r4 + aff4: 95c0 ld.w r6, (r5, 0x0) + aff6: 4381 lsli r4, r3, 1 + aff8: 98e7 ld.w r7, (r14, 0x1c) + affa: 7599 zexth r6, r6 + affc: 61d0 addu r7, r4 + affe: afc0 st.h r6, (r7, 0x0) + b000: 95a0 ld.w r5, (r5, 0x0) + b002: 98c8 ld.w r6, (r14, 0x20) + b004: 7555 zexth r5, r5 + b006: 6118 addu r4, r6 + b008: aca0 st.h r5, (r4, 0x0) + b00a: 8080 ld.b r4, (r0, 0x0) + b00c: 3c42 cmpnei r4, 2 + b00e: 080f bt 0xb02c // b02c + b010: 9880 ld.w r4, (r14, 0x0) + b012: 43a2 lsli r5, r3, 2 + b014: 6150 addu r5, r4 + b016: 95c0 ld.w r6, (r5, 0x0) + b018: 4381 lsli r4, r3, 1 + b01a: 98e9 ld.w r7, (r14, 0x24) + b01c: 7599 zexth r6, r6 + b01e: 61d0 addu r7, r4 + b020: afc0 st.h r6, (r7, 0x0) + b022: 95a0 ld.w r5, (r5, 0x0) + b024: 7555 zexth r5, r5 + b026: 11c5 lrw r6, 0x2000093c // b0b8 + b028: 6118 addu r4, r6 + b02a: aca0 st.h r5, (r4, 0x0) + b02c: 8080 ld.b r4, (r0, 0x0) + b02e: 3c40 cmpnei r4, 0 + b030: 080f bt 0xb04e // b04e + b032: 9880 ld.w r4, (r14, 0x0) + b034: 43a2 lsli r5, r3, 2 + b036: 6150 addu r5, r4 + b038: 95c0 ld.w r6, (r5, 0x0) + b03a: 4381 lsli r4, r3, 1 + b03c: 11e0 lrw r7, 0x20000b14 // b0bc + b03e: 7599 zexth r6, r6 + b040: 61d0 addu r7, r4 + b042: afc0 st.h r6, (r7, 0x0) + b044: 95a0 ld.w r5, (r5, 0x0) + b046: 7555 zexth r5, r5 + b048: 10de lrw r6, 0x20000a32 // b0c0 + b04a: 6118 addu r4, r6 + b04c: aca0 st.h r5, (r4, 0x0) + b04e: 2300 addi r3, 1 + b050: 3b51 cmpnei r3, 17 + b052: 0bcb bt 0xafe8 // afe8 + b054: 2900 subi r1, 1 + b056: 7444 zextb r1, r1 + b058: 3940 cmpnei r1, 0 + b05a: 0bad bt 0xafb4 // afb4 + b05c: 9866 ld.w r3, (r14, 0x18) + b05e: 3201 movi r2, 1 + b060: a340 st.b r2, (r3, 0x0) + b062: 3300 movi r3, 0 + b064: a060 st.b r3, (r0, 0x0) + b066: 140a addi r14, r14, 40 + b068: 1484 pop r4-r7 + b06a: 1077 lrw r3, 0x40011200 // b0c4 + b06c: 9882 ld.w r4, (r14, 0x8) + b06e: b390 st.w r4, (r3, 0x40) + b070: 8260 ld.b r3, (r2, 0x0) + b072: 2300 addi r3, 1 + b074: 74cc zextb r3, r3 + b076: a260 st.b r3, (r2, 0x0) + b078: 07a6 br 0xafc4 // afc4 + b07a: 1073 lrw r3, 0x40011200 // b0c4 + b07c: 9883 ld.w r4, (r14, 0xc) + b07e: 07f8 br 0xb06e // b06e + b080: 1071 lrw r3, 0x40011200 // b0c4 + b082: 9884 ld.w r4, (r14, 0x10) + b084: b390 st.w r4, (r3, 0x40) + b086: 3300 movi r3, 0 + b088: 07f7 br 0xb076 // b076 + b08a: 0000 bkpt + b08c: 20000900 .long 0x20000900 + b090: 20000968 .long 0x20000968 + b094: 20000070 .long 0x20000070 + b098: 20000938 .long 0x20000938 + b09c: 20000bc8 .long 0x20000bc8 + b0a0: 20000058 .long 0x20000058 + b0a4: 20000054 .long 0x20000054 + b0a8: 20000b11 .long 0x20000b11 + b0ac: 20000854 .long 0x20000854 + b0b0: 20000ba6 .long 0x20000ba6 + b0b4: 200009fe .long 0x200009fe + b0b8: 2000093c .long 0x2000093c + b0bc: 20000b14 .long 0x20000b14 + b0c0: 20000a32 .long 0x20000a32 + b0c4: 40011200 .long 0x40011200 + +Disassembly of section .text.tk_poweron_data_fineturn: + +0000b0c8 : + b0c8: 14d4 push r4-r7, r15 + b0ca: 1433 subi r14, r14, 76 + b0cc: 117e lrw r3, 0x20000070 // b1c4 + b0ce: 8366 ld.b r3, (r3, 0x6) + b0d0: 3b41 cmpnei r3, 1 + b0d2: 0877 bt 0xb1c0 // b1c0 + b0d4: 117d lrw r3, 0x20000ba6 // b1c8 + b0d6: b860 st.w r3, (r14, 0x0) + b0d8: 3300 movi r3, 0 + b0da: 301e movi r0, 30 + b0dc: 4321 lsli r1, r3, 1 + b0de: 1a02 addi r2, r14, 8 + b0e0: 6048 addu r1, r2 + b0e2: 115b lrw r2, 0x2000026e // b1cc + b0e4: 608c addu r2, r3 + b0e6: 8a40 ld.h r2, (r2, 0x0) + b0e8: 4245 lsli r2, r2, 5 + b0ea: 6080 addu r2, r0 + b0ec: b140 st.w r2, (r1, 0x0) + b0ee: 2301 addi r3, 2 + b0f0: 3222 movi r2, 34 + b0f2: 648e cmpne r3, r2 + b0f4: 0bf4 bt 0xb0dc // b0dc + b0f6: 1197 lrw r4, 0x20000242 // b1d0 + b0f8: 3200 movi r2, 0 + b0fa: 3000 movi r0, 0 + b0fc: b881 st.w r4, (r14, 0x4) + b0fe: 11d6 lrw r6, 0x2000093c // b1d4 + b100: 4261 lsli r3, r2, 1 + b102: 98a0 ld.w r5, (r14, 0x0) + b104: 614c addu r5, r3 + b106: 8d20 ld.h r1, (r5, 0x0) + b108: 7445 zexth r1, r1 + b10a: 3940 cmpnei r1, 0 + b10c: 0c36 bf 0xb178 // b178 + b10e: 5e2c addu r1, r6, r3 + b110: 8920 ld.h r1, (r1, 0x0) + b112: 7445 zexth r1, r1 + b114: 3940 cmpnei r1, 0 + b116: 0c31 bf 0xb178 // b178 + b118: 1130 lrw r1, 0x20000a32 // b1d8 + b11a: 60c4 addu r3, r1 + b11c: 8b60 ld.h r3, (r3, 0x0) + b11e: 74cd zexth r3, r3 + b120: 3b40 cmpnei r3, 0 + b122: 0c2b bf 0xb178 // b178 + b124: 8d60 ld.h r3, (r5, 0x0) + b126: 1f02 addi r7, r14, 8 + b128: 42a2 lsli r5, r2, 2 + b12a: 615c addu r5, r7 + b12c: 74cd zexth r3, r3 + b12e: 95a0 ld.w r5, (r5, 0x0) + b130: 60d6 subu r3, r5 + b132: 3bdf btsti r3, 31 + b134: 0c03 bf 0xb13a // b13a + b136: 3700 movi r7, 0 + b138: 5f6d subu r3, r7, r3 + b13a: 3b24 cmplti r3, 5 + b13c: 0817 bt 0xb16a // b16a + b13e: 4261 lsli r3, r2, 1 + b140: 60d8 addu r3, r6 + b142: 8b60 ld.h r3, (r3, 0x0) + b144: 74cd zexth r3, r3 + b146: 60d6 subu r3, r5 + b148: 3bdf btsti r3, 31 + b14a: 0c03 bf 0xb150 // b150 + b14c: 3700 movi r7, 0 + b14e: 5f6d subu r3, r7, r3 + b150: 3b24 cmplti r3, 5 + b152: 080c bt 0xb16a // b16a + b154: 4261 lsli r3, r2, 1 + b156: 604c addu r1, r3 + b158: 8960 ld.h r3, (r1, 0x0) + b15a: 74cd zexth r3, r3 + b15c: 60d6 subu r3, r5 + b15e: 3bdf btsti r3, 31 + b160: 0c03 bf 0xb166 // b166 + b162: 3100 movi r1, 0 + b164: 596d subu r3, r1, r3 + b166: 3b24 cmplti r3, 5 + b168: 0c08 bf 0xb178 // b178 + b16a: 8c60 ld.h r3, (r4, 0x0) + b16c: 3b06 cmphsi r3, 7 + b16e: 0805 bt 0xb178 // b178 + b170: 2300 addi r3, 1 + b172: 2000 addi r0, 1 + b174: ac60 st.h r3, (r4, 0x0) + b176: 7400 zextb r0, r0 + b178: 2200 addi r2, 1 + b17a: 3a51 cmpnei r2, 17 + b17c: 2401 addi r4, 2 + b17e: 0bc1 bt 0xb100 // b100 + b180: 3840 cmpnei r0, 0 + b182: 0c1f bf 0xb1c0 // b1c0 + b184: 1076 lrw r3, 0x20000058 // b1dc + b186: 3200 movi r2, 0 + b188: 9360 ld.w r3, (r3, 0x0) + b18a: b342 st.w r2, (r3, 0x8) + b18c: 10b5 lrw r5, 0x20000b00 // b1e0 + b18e: 1076 lrw r3, 0x20000054 // b1e4 + b190: 1016 lrw r0, 0x20000ab0 // b1e8 + b192: 9380 ld.w r4, (r3, 0x0) + b194: 3300 movi r3, 0 + b196: 8040 ld.b r2, (r0, 0x0) + b198: 648c cmphs r3, r2 + b19a: 0c04 bf 0xb1a2 // b1a2 + b19c: e3fffef2 bsr 0xaf80 // af80 + b1a0: 079c br 0xb0d8 // b0d8 + b1a2: 5d4c addu r2, r5, r3 + b1a4: 8240 ld.b r2, (r2, 0x0) + b1a6: 4241 lsli r2, r2, 1 + b1a8: 98e1 ld.w r7, (r14, 0x4) + b1aa: 4322 lsli r1, r3, 2 + b1ac: 609c addu r2, r7 + b1ae: 6050 addu r1, r4 + b1b0: 8a40 ld.h r2, (r2, 0x0) + b1b2: 91d2 ld.w r6, (r1, 0x48) + b1b4: 4254 lsli r2, r2, 20 + b1b6: 6c98 or r2, r6 + b1b8: 2300 addi r3, 1 + b1ba: b152 st.w r2, (r1, 0x48) + b1bc: 74cc zextb r3, r3 + b1be: 07ec br 0xb196 // b196 + b1c0: 1413 addi r14, r14, 76 + b1c2: 1494 pop r4-r7, r15 + b1c4: 20000070 .long 0x20000070 + b1c8: 20000ba6 .long 0x20000ba6 + b1cc: 2000026e .long 0x2000026e + b1d0: 20000242 .long 0x20000242 + b1d4: 2000093c .long 0x2000093c + b1d8: 20000a32 .long 0x20000a32 + b1dc: 20000058 .long 0x20000058 + b1e0: 20000b00 .long 0x20000b00 + b1e4: 20000054 .long 0x20000054 + b1e8: 20000ab0 .long 0x20000ab0 + +Disassembly of section .text.TK_Scan_Start: + +0000b1ec : + b1ec: 1073 lrw r3, 0x20000070 // b238 + b1ee: 1054 lrw r2, 0x20000b11 // b23c + b1f0: 8302 ld.b r0, (r3, 0x2) + b1f2: 8220 ld.b r1, (r2, 0x0) + b1f4: 6442 cmpne r0, r1 + b1f6: 0c16 bf 0xb222 // b222 + b1f8: 8220 ld.b r1, (r2, 0x0) + b1fa: 7444 zextb r1, r1 + b1fc: 3941 cmpnei r1, 1 + b1fe: 0c18 bf 0xb22e // b22e + b200: 3940 cmpnei r1, 0 + b202: 0c11 bf 0xb224 // b224 + b204: 3942 cmpnei r1, 2 + b206: 0c16 bf 0xb232 // b232 + b208: 8240 ld.b r2, (r2, 0x0) + b20a: 7488 zextb r2, r2 + b20c: a342 st.b r2, (r3, 0x2) + b20e: 8341 ld.b r2, (r3, 0x1) + b210: 7488 zextb r2, r2 + b212: 3a41 cmpnei r2, 1 + b214: 0807 bt 0xb222 // b222 + b216: 102b lrw r1, 0x20000058 // b240 + b218: 9120 ld.w r1, (r1, 0x0) + b21a: b142 st.w r2, (r1, 0x8) + b21c: 3200 movi r2, 0 + b21e: a340 st.b r2, (r3, 0x0) + b220: a341 st.b r2, (r3, 0x1) + b222: 783c jmp r15 + b224: 1028 lrw r1, 0x20000bc8 // b244 + b226: 9100 ld.w r0, (r1, 0x0) + b228: 1028 lrw r1, 0x40011200 // b248 + b22a: b110 st.w r0, (r1, 0x40) + b22c: 07ee br 0xb208 // b208 + b22e: 1028 lrw r1, 0x20000938 // b24c + b230: 07fb br 0xb226 // b226 + b232: 1028 lrw r1, 0x20000968 // b250 + b234: 07f9 br 0xb226 // b226 + b236: 0000 bkpt + b238: 20000070 .long 0x20000070 + b23c: 20000b11 .long 0x20000b11 + b240: 20000058 .long 0x20000058 + b244: 20000bc8 .long 0x20000bc8 + b248: 40011200 .long 0x40011200 + b24c: 20000938 .long 0x20000938 + b250: 20000968 .long 0x20000968 + +Disassembly of section .text.TK_Keymap_prog: + +0000b254 : + b254: 14d4 push r4-r7, r15 + b256: 142a subi r14, r14, 40 + b258: 0171 lrw r3, 0x20000264 // b590 + b25a: 8360 ld.b r3, (r3, 0x0) + b25c: b860 st.w r3, (r14, 0x0) + b25e: 3400 movi r4, 0 + b260: 0172 lrw r3, 0x20000238 // b594 + b262: 8360 ld.b r3, (r3, 0x0) + b264: b863 st.w r3, (r14, 0xc) + b266: 0172 lrw r3, 0x20000241 // b598 + b268: 83a0 ld.b r5, (r3, 0x0) + b26a: 0172 lrw r3, 0x20000240 // b59c + b26c: 8360 ld.b r3, (r3, 0x0) + b26e: b866 st.w r3, (r14, 0x18) + b270: 0173 lrw r3, 0x20000ba6 // b5a0 + b272: b868 st.w r3, (r14, 0x20) + b274: 0173 lrw r3, 0x20000914 // b5a4 + b276: b864 st.w r3, (r14, 0x10) + b278: b869 st.w r3, (r14, 0x24) + b27a: 4461 lsli r3, r4, 1 + b27c: 9848 ld.w r2, (r14, 0x20) + b27e: 608c addu r2, r3 + b280: 0135 lrw r1, 0x20000854 // b5a8 + b282: 604c addu r1, r3 + b284: 8a40 ld.h r2, (r2, 0x0) + b286: 8920 ld.h r1, (r1, 0x0) + b288: 6086 subu r2, r1 + b28a: 9829 ld.w r1, (r14, 0x24) + b28c: 604c addu r1, r3 + b28e: 748b sexth r2, r2 + b290: a940 st.h r2, (r1, 0x0) + b292: 0118 lrw r0, 0x200009fe // b5ac + b294: 0158 lrw r2, 0x2000093c // b5b0 + b296: 608c addu r2, r3 + b298: 600c addu r0, r3 + b29a: 8a40 ld.h r2, (r2, 0x0) + b29c: 8800 ld.h r0, (r0, 0x0) + b29e: 6082 subu r2, r0 + b2a0: 01da lrw r6, 0x20000a54 // b5b4 + b2a2: 5e0c addu r0, r6, r3 + b2a4: 748b sexth r2, r2 + b2a6: a840 st.h r2, (r0, 0x0) + b2a8: b8c1 st.w r6, (r14, 0x4) + b2aa: 015b lrw r2, 0x20000a32 // b5b8 + b2ac: 011b lrw r0, 0x20000b14 // b5bc + b2ae: 608c addu r2, r3 + b2b0: 600c addu r0, r3 + b2b2: 8a40 ld.h r2, (r2, 0x0) + b2b4: 8800 ld.h r0, (r0, 0x0) + b2b6: 6082 subu r2, r0 + b2b8: 011d lrw r0, 0x20000b80 // b5c0 + b2ba: 748b sexth r2, r2 + b2bc: 58ec addu r7, r0, r3 + b2be: af40 st.h r2, (r7, 0x0) + b2c0: 8940 ld.h r2, (r1, 0x0) + b2c2: 748b sexth r2, r2 + b2c4: 3adf btsti r2, 31 + b2c6: 015f lrw r2, 0x20000b5e // b5c4 + b2c8: 60c8 addu r3, r2 + b2ca: b802 st.w r0, (r14, 0x8) + b2cc: 0c49 bf 0xb35e // b35e + b2ce: 3200 movi r2, 0 + b2d0: ab40 st.h r2, (r3, 0x0) + b2d2: 9821 ld.w r1, (r14, 0x4) + b2d4: 4461 lsli r3, r4, 1 + b2d6: 604c addu r1, r3 + b2d8: 8940 ld.h r2, (r1, 0x0) + b2da: 748b sexth r2, r2 + b2dc: 3adf btsti r2, 31 + b2de: 0244 lrw r2, 0x200008bc // b5c8 + b2e0: 60c8 addu r3, r2 + b2e2: 0c41 bf 0xb364 // b364 + b2e4: 3200 movi r2, 0 + b2e6: ab40 st.h r2, (r3, 0x0) + b2e8: 9822 ld.w r1, (r14, 0x8) + b2ea: 4461 lsli r3, r4, 1 + b2ec: 604c addu r1, r3 + b2ee: 8940 ld.h r2, (r1, 0x0) + b2f0: 748b sexth r2, r2 + b2f2: 3adf btsti r2, 31 + b2f4: 0249 lrw r2, 0x20000890 // b5cc + b2f6: 60c8 addu r3, r2 + b2f8: 0c39 bf 0xb36a // b36a + b2fa: 3200 movi r2, 0 + b2fc: ab40 st.h r2, (r3, 0x0) + b2fe: 9860 ld.w r3, (r14, 0x0) + b300: 3b03 cmphsi r3, 4 + b302: 4421 lsli r1, r4, 1 + b304: 0cb5 bf 0xb46e // b46e + b306: 9864 ld.w r3, (r14, 0x10) + b308: 60c4 addu r3, r1 + b30a: 024d lrw r2, 0x20000292 // b5d0 + b30c: 6048 addu r1, r2 + b30e: 8b00 ld.h r0, (r3, 0x0) + b310: 8940 ld.h r2, (r1, 0x0) + b312: 7403 sexth r0, r0 + b314: 6409 cmplt r2, r0 + b316: 9820 ld.w r1, (r14, 0x0) + b318: 7c84 mult r2, r1 + b31a: 0c9b bf 0xb450 // b450 + b31c: 8b20 ld.h r1, (r3, 0x0) + b31e: 7447 sexth r1, r1 + b320: 6485 cmplt r1, r2 + b322: 0c97 bf 0xb450 // b450 + b324: 0233 lrw r1, 0x20000901 // b5d4 + b326: 6050 addu r1, r4 + b328: 8140 ld.b r2, (r1, 0x0) + b32a: 2200 addi r2, 1 + b32c: 7488 zextb r2, r2 + b32e: a140 st.b r2, (r1, 0x0) + b330: 3000 movi r0, 0 + b332: 0255 lrw r2, 0x200008e0 // b5d8 + b334: 6090 addu r2, r4 + b336: a200 st.b r0, (r2, 0x0) + b338: 0256 lrw r2, 0x20000a20 // b5dc + b33a: 6090 addu r2, r4 + b33c: a200 st.b r0, (r2, 0x0) + b33e: 0256 lrw r2, 0x20000ab8 // b5e0 + b340: 6090 addu r2, r4 + b342: a200 st.b r0, (r2, 0x0) + b344: 8140 ld.b r2, (r1, 0x0) + b346: 9803 ld.w r0, (r14, 0xc) + b348: 6480 cmphs r0, r2 + b34a: 081d bt 0xb384 // b384 + b34c: 3d40 cmpnei r5, 0 + b34e: 0811 bt 0xb370 // b370 + b350: 025a lrw r2, 0x200008f4 // b5e4 + b352: 9260 ld.w r3, (r2, 0x0) + b354: 3b40 cmpnei r3, 0 + b356: 0815 bt 0xb380 // b380 + b358: 9200 ld.w r0, (r2, 0x0) + b35a: 3301 movi r3, 1 + b35c: 040f br 0xb37a // b37a + b35e: 8940 ld.h r2, (r1, 0x0) + b360: 7489 zexth r2, r2 + b362: 07b7 br 0xb2d0 // b2d0 + b364: 8940 ld.h r2, (r1, 0x0) + b366: 7489 zexth r2, r2 + b368: 07bf br 0xb2e6 // b2e6 + b36a: 8940 ld.h r2, (r1, 0x0) + b36c: 7489 zexth r2, r2 + b36e: 07c7 br 0xb2fc // b2fc + b370: 3d41 cmpnei r5, 1 + b372: 085c bt 0xb42a // b42a + b374: 0343 lrw r2, 0x200008f4 // b5e4 + b376: 6cd7 mov r3, r5 + b378: 9200 ld.w r0, (r2, 0x0) + b37a: 70d0 lsl r3, r4 + b37c: 6cc0 or r3, r0 + b37e: b260 st.w r3, (r2, 0x0) + b380: 3300 movi r3, 0 + b382: a160 st.b r3, (r1, 0x0) + b384: 4461 lsli r3, r4, 1 + b386: 9844 ld.w r2, (r14, 0x10) + b388: 608c addu r2, r3 + b38a: 8ac0 ld.h r6, (r2, 0x0) + b38c: 034e lrw r2, 0x20000292 // b5d0 + b38e: 60c8 addu r3, r2 + b390: 8be0 ld.h r7, (r3, 0x0) + b392: 4702 lsli r0, r7, 2 + b394: 3105 movi r1, 5 + b396: e3ffd6bf bsr 0x6114 // 6114 <__divsi3> + b39a: 759b sexth r6, r6 + b39c: 6419 cmplt r6, r0 + b39e: b805 st.w r0, (r14, 0x14) + b3a0: 0c18 bf 0xb3d0 // b3d0 + b3a2: 0351 lrw r2, 0x200008e0 // b5d8 + b3a4: 6090 addu r2, r4 + b3a6: 8260 ld.b r3, (r2, 0x0) + b3a8: 2300 addi r3, 1 + b3aa: 74cc zextb r3, r3 + b3ac: a260 st.b r3, (r2, 0x0) + b3ae: 3100 movi r1, 0 + b3b0: 0376 lrw r3, 0x20000901 // b5d4 + b3b2: 60d0 addu r3, r4 + b3b4: a320 st.b r1, (r3, 0x0) + b3b6: 8260 ld.b r3, (r2, 0x0) + b3b8: 9826 ld.w r1, (r14, 0x18) + b3ba: 64c4 cmphs r1, r3 + b3bc: 080a bt 0xb3d0 // b3d0 + b3be: 3300 movi r3, 0 + b3c0: 0336 lrw r1, 0x200008f4 // b5e4 + b3c2: 2b01 subi r3, 2 + b3c4: 9100 ld.w r0, (r1, 0x0) + b3c6: 70d3 rotl r3, r4 + b3c8: 68c0 and r3, r0 + b3ca: b160 st.w r3, (r1, 0x0) + b3cc: 3300 movi r3, 0 + b3ce: a260 st.b r3, (r2, 0x0) + b3d0: 9860 ld.w r3, (r14, 0x0) + b3d2: 9841 ld.w r2, (r14, 0x4) + b3d4: 3b03 cmphsi r3, 4 + b3d6: 4461 lsli r3, r4, 1 + b3d8: 60c8 addu r3, r2 + b3da: 8b40 ld.h r2, (r3, 0x0) + b3dc: 748b sexth r2, r2 + b3de: 0d4d bf 0xb678 // b678 + b3e0: 649d cmplt r7, r2 + b3e2: 0d3a bf 0xb656 // b656 + b3e4: 8b40 ld.h r2, (r3, 0x0) + b3e6: 9820 ld.w r1, (r14, 0x0) + b3e8: 748b sexth r2, r2 + b3ea: 7c5c mult r1, r7 + b3ec: 6449 cmplt r2, r1 + b3ee: 0d34 bf 0xb656 // b656 + b3f0: 133e lrw r1, 0x20000ad4 // b5e8 + b3f2: 6050 addu r1, r4 + b3f4: 8140 ld.b r2, (r1, 0x0) + b3f6: 2200 addi r2, 1 + b3f8: 7488 zextb r2, r2 + b3fa: a140 st.b r2, (r1, 0x0) + b3fc: 3000 movi r0, 0 + b3fe: 135c lrw r2, 0x20000970 // b5ec + b400: 6090 addu r2, r4 + b402: a200 st.b r0, (r2, 0x0) + b404: 135b lrw r2, 0x2000099a // b5f0 + b406: 6090 addu r2, r4 + b408: a200 st.b r0, (r2, 0x0) + b40a: 135b lrw r2, 0x20000a98 // b5f4 + b40c: 6090 addu r2, r4 + b40e: a200 st.b r0, (r2, 0x0) + b410: 8140 ld.b r2, (r1, 0x0) + b412: 9803 ld.w r0, (r14, 0xc) + b414: 6480 cmphs r0, r2 + b416: 087d bt 0xb510 // b510 + b418: 3d40 cmpnei r5, 0 + b41a: 0871 bt 0xb4fc // b4fc + b41c: 1357 lrw r2, 0x20000888 // b5f8 + b41e: 9260 ld.w r3, (r2, 0x0) + b420: 3b40 cmpnei r3, 0 + b422: 0875 bt 0xb50c // b50c + b424: 9200 ld.w r0, (r2, 0x0) + b426: 3301 movi r3, 1 + b428: 046f br 0xb506 // b506 + b42a: 3d42 cmpnei r5, 2 + b42c: 0c03 bf 0xb432 // b432 + b42e: e8000201 br 0xb830 // b830 + b432: 13d3 lrw r6, 0x20000aae // b5fc + b434: 8b00 ld.h r0, (r3, 0x0) + b436: 8e40 ld.h r2, (r6, 0x0) + b438: 7489 zexth r2, r2 + b43a: 7403 sexth r0, r0 + b43c: 2209 addi r2, 10 + b43e: 6409 cmplt r2, r0 + b440: 0fa0 bf 0xb380 // b380 + b442: 8b60 ld.h r3, (r3, 0x0) + b444: 74cd zexth r3, r3 + b446: ae60 st.h r3, (r6, 0x0) + b448: 3300 movi r3, 0 + b44a: 1347 lrw r2, 0x200008f4 // b5e4 + b44c: b260 st.w r3, (r2, 0x0) + b44e: 0785 br 0xb358 // b358 + b450: 4461 lsli r3, r4, 1 + b452: 9824 ld.w r1, (r14, 0x10) + b454: 60c4 addu r3, r1 + b456: 8b60 ld.h r3, (r3, 0x0) + b458: 74cf sexth r3, r3 + b45a: 64c9 cmplt r2, r3 + b45c: 0f94 bf 0xb384 // b384 + b45e: 3300 movi r3, 0 + b460: 1341 lrw r2, 0x200008f4 // b5e4 + b462: 2b01 subi r3, 2 + b464: 9220 ld.w r1, (r2, 0x0) + b466: 70d3 rotl r3, r4 + b468: 68c4 and r3, r1 + b46a: b260 st.w r3, (r2, 0x0) + b46c: 078c br 0xb384 // b384 + b46e: 9844 ld.w r2, (r14, 0x10) + b470: 6084 addu r2, r1 + b472: 1218 lrw r0, 0x20000292 // b5d0 + b474: 8a60 ld.h r3, (r2, 0x0) + b476: 6040 addu r1, r0 + b478: 74cf sexth r3, r3 + b47a: 8920 ld.h r1, (r1, 0x0) + b47c: 64c5 cmplt r1, r3 + b47e: 0f83 bf 0xb384 // b384 + b480: 1360 lrw r3, 0x20000912 // b600 + b482: 8360 ld.b r3, (r3, 0x0) + b484: 74cc zextb r3, r3 + b486: 3b40 cmpnei r3, 0 + b488: 0b7e bt 0xb384 // b384 + b48a: 1213 lrw r0, 0x20000901 // b5d4 + b48c: 6010 addu r0, r4 + b48e: 8020 ld.b r1, (r0, 0x0) + b490: 2100 addi r1, 1 + b492: 7444 zextb r1, r1 + b494: a020 st.b r1, (r0, 0x0) + b496: 3600 movi r6, 0 + b498: 1230 lrw r1, 0x200008e0 // b5d8 + b49a: 6050 addu r1, r4 + b49c: a1c0 st.b r6, (r1, 0x0) + b49e: 1230 lrw r1, 0x20000a20 // b5dc + b4a0: 6050 addu r1, r4 + b4a2: a1c0 st.b r6, (r1, 0x0) + b4a4: 122f lrw r1, 0x20000ab8 // b5e0 + b4a6: 6050 addu r1, r4 + b4a8: a1c0 st.b r6, (r1, 0x0) + b4aa: 8020 ld.b r1, (r0, 0x0) + b4ac: 98c3 ld.w r6, (r14, 0xc) + b4ae: 6458 cmphs r6, r1 + b4b0: 0b6a bt 0xb384 // b384 + b4b2: 3d40 cmpnei r5, 0 + b4b4: 0808 bt 0xb4c4 // b4c4 + b4b6: 124c lrw r2, 0x200008f4 // b5e4 + b4b8: 9260 ld.w r3, (r2, 0x0) + b4ba: 3b40 cmpnei r3, 0 + b4bc: 080c bt 0xb4d4 // b4d4 + b4be: 9220 ld.w r1, (r2, 0x0) + b4c0: 3301 movi r3, 1 + b4c2: 0406 br 0xb4ce // b4ce + b4c4: 3d41 cmpnei r5, 1 + b4c6: 080a bt 0xb4da // b4da + b4c8: 1247 lrw r2, 0x200008f4 // b5e4 + b4ca: 6cd7 mov r3, r5 + b4cc: 9220 ld.w r1, (r2, 0x0) + b4ce: 70d0 lsl r3, r4 + b4d0: 6cc4 or r3, r1 + b4d2: b260 st.w r3, (r2, 0x0) + b4d4: 3300 movi r3, 0 + b4d6: a060 st.b r3, (r0, 0x0) + b4d8: 0756 br 0xb384 // b384 + b4da: 3d42 cmpnei r5, 2 + b4dc: 0c02 bf 0xb4e0 // b4e0 + b4de: 05dc br 0xb896 // b896 + b4e0: 12e7 lrw r7, 0x20000aae // b5fc + b4e2: 8ac0 ld.h r6, (r2, 0x0) + b4e4: 8f20 ld.h r1, (r7, 0x0) + b4e6: 7445 zexth r1, r1 + b4e8: 759b sexth r6, r6 + b4ea: 2109 addi r1, 10 + b4ec: 6585 cmplt r1, r6 + b4ee: 0ff3 bf 0xb4d4 // b4d4 + b4f0: 8a40 ld.h r2, (r2, 0x0) + b4f2: 7489 zexth r2, r2 + b4f4: af40 st.h r2, (r7, 0x0) + b4f6: 115c lrw r2, 0x200008f4 // b5e4 + b4f8: b260 st.w r3, (r2, 0x0) + b4fa: 07e2 br 0xb4be // b4be + b4fc: 3d41 cmpnei r5, 1 + b4fe: 089b bt 0xb634 // b634 + b500: 115e lrw r2, 0x20000888 // b5f8 + b502: 6cd7 mov r3, r5 + b504: 9200 ld.w r0, (r2, 0x0) + b506: 70d0 lsl r3, r4 + b508: 6cc0 or r3, r0 + b50a: b260 st.w r3, (r2, 0x0) + b50c: 3300 movi r3, 0 + b50e: a160 st.b r3, (r1, 0x0) + b510: 4461 lsli r3, r4, 1 + b512: 9841 ld.w r2, (r14, 0x4) + b514: 608c addu r2, r3 + b516: 8a60 ld.h r3, (r2, 0x0) + b518: 74cf sexth r3, r3 + b51a: 9845 ld.w r2, (r14, 0x14) + b51c: 648d cmplt r3, r2 + b51e: 0c18 bf 0xb54e // b54e + b520: 1153 lrw r2, 0x20000970 // b5ec + b522: 6090 addu r2, r4 + b524: 8260 ld.b r3, (r2, 0x0) + b526: 2300 addi r3, 1 + b528: 74cc zextb r3, r3 + b52a: a260 st.b r3, (r2, 0x0) + b52c: 3100 movi r1, 0 + b52e: 116f lrw r3, 0x20000ad4 // b5e8 + b530: 60d0 addu r3, r4 + b532: a320 st.b r1, (r3, 0x0) + b534: 8260 ld.b r3, (r2, 0x0) + b536: 9826 ld.w r1, (r14, 0x18) + b538: 64c4 cmphs r1, r3 + b53a: 080a bt 0xb54e // b54e + b53c: 3300 movi r3, 0 + b53e: 112f lrw r1, 0x20000888 // b5f8 + b540: 2b01 subi r3, 2 + b542: 9100 ld.w r0, (r1, 0x0) + b544: 70d3 rotl r3, r4 + b546: 68c0 and r3, r0 + b548: b160 st.w r3, (r1, 0x0) + b54a: 3300 movi r3, 0 + b54c: a260 st.b r3, (r2, 0x0) + b54e: 9860 ld.w r3, (r14, 0x0) + b550: 9842 ld.w r2, (r14, 0x8) + b552: 3b03 cmphsi r3, 4 + b554: 4461 lsli r3, r4, 1 + b556: 60c8 addu r3, r2 + b558: 8b40 ld.h r2, (r3, 0x0) + b55a: 748b sexth r2, r2 + b55c: 0d26 bf 0xb7a8 // b7a8 + b55e: 9820 ld.w r1, (r14, 0x0) + b560: 649d cmplt r7, r2 + b562: 7c5c mult r1, r7 + b564: 0d13 bf 0xb78a // b78a + b566: 8b40 ld.h r2, (r3, 0x0) + b568: 748b sexth r2, r2 + b56a: 6449 cmplt r2, r1 + b56c: 0d0f bf 0xb78a // b78a + b56e: 1126 lrw r1, 0x20000a7c // b604 + b570: 6050 addu r1, r4 + b572: 8140 ld.b r2, (r1, 0x0) + b574: 2200 addi r2, 1 + b576: 7488 zextb r2, r2 + b578: a140 st.b r2, (r1, 0x0) + b57a: 3000 movi r0, 0 + b57c: 1143 lrw r2, 0x20000aea // b608 + b57e: 6090 addu r2, r4 + b580: a200 st.b r0, (r2, 0x0) + b582: 1143 lrw r2, 0x20000876 // b60c + b584: 6090 addu r2, r4 + b586: a200 st.b r0, (r2, 0x0) + b588: 1142 lrw r2, 0x20000988 // b610 + b58a: 6090 addu r2, r4 + b58c: a200 st.b r0, (r2, 0x0) + b58e: 0443 br 0xb614 // b614 + b590: 20000264 .long 0x20000264 + b594: 20000238 .long 0x20000238 + b598: 20000241 .long 0x20000241 + b59c: 20000240 .long 0x20000240 + b5a0: 20000ba6 .long 0x20000ba6 + b5a4: 20000914 .long 0x20000914 + b5a8: 20000854 .long 0x20000854 + b5ac: 200009fe .long 0x200009fe + b5b0: 2000093c .long 0x2000093c + b5b4: 20000a54 .long 0x20000a54 + b5b8: 20000a32 .long 0x20000a32 + b5bc: 20000b14 .long 0x20000b14 + b5c0: 20000b80 .long 0x20000b80 + b5c4: 20000b5e .long 0x20000b5e + b5c8: 200008bc .long 0x200008bc + b5cc: 20000890 .long 0x20000890 + b5d0: 20000292 .long 0x20000292 + b5d4: 20000901 .long 0x20000901 + b5d8: 200008e0 .long 0x200008e0 + b5dc: 20000a20 .long 0x20000a20 + b5e0: 20000ab8 .long 0x20000ab8 + b5e4: 200008f4 .long 0x200008f4 + b5e8: 20000ad4 .long 0x20000ad4 + b5ec: 20000970 .long 0x20000970 + b5f0: 2000099a .long 0x2000099a + b5f4: 20000a98 .long 0x20000a98 + b5f8: 20000888 .long 0x20000888 + b5fc: 20000aae .long 0x20000aae + b600: 20000912 .long 0x20000912 + b604: 20000a7c .long 0x20000a7c + b608: 20000aea .long 0x20000aea + b60c: 20000876 .long 0x20000876 + b610: 20000988 .long 0x20000988 + b614: 8140 ld.b r2, (r1, 0x0) + b616: 9803 ld.w r0, (r14, 0xc) + b618: 6480 cmphs r0, r2 + b61a: 0881 bt 0xb71c // b71c + b61c: 3d40 cmpnei r5, 0 + b61e: 0874 bt 0xb706 // b706 + b620: 014b lrw r2, 0x2000096c // b970 + b622: 9260 ld.w r3, (r2, 0x0) + b624: 3b40 cmpnei r3, 0 + b626: 0879 bt 0xb718 // b718 + b628: 3301 movi r3, 1 + b62a: 9200 ld.w r0, (r2, 0x0) + b62c: 70d0 lsl r3, r4 + b62e: 6cc0 or r3, r0 + b630: b260 st.w r3, (r2, 0x0) + b632: 0473 br 0xb718 // b718 + b634: 3d42 cmpnei r5, 2 + b636: 0960 bt 0xb8f6 // b8f6 + b638: 01d0 lrw r6, 0x20000ba4 // b974 + b63a: 8b00 ld.h r0, (r3, 0x0) + b63c: 8e40 ld.h r2, (r6, 0x0) + b63e: 7489 zexth r2, r2 + b640: 7403 sexth r0, r0 + b642: 2209 addi r2, 10 + b644: 6409 cmplt r2, r0 + b646: 0f63 bf 0xb50c // b50c + b648: 8b60 ld.h r3, (r3, 0x0) + b64a: 74cd zexth r3, r3 + b64c: ae60 st.h r3, (r6, 0x0) + b64e: 3300 movi r3, 0 + b650: 0155 lrw r2, 0x20000888 // b978 + b652: b260 st.w r3, (r2, 0x0) + b654: 06e8 br 0xb424 // b424 + b656: 9841 ld.w r2, (r14, 0x4) + b658: 4461 lsli r3, r4, 1 + b65a: 60c8 addu r3, r2 + b65c: 8b60 ld.h r3, (r3, 0x0) + b65e: 9840 ld.w r2, (r14, 0x0) + b660: 74cf sexth r3, r3 + b662: 7c9c mult r2, r7 + b664: 64c9 cmplt r2, r3 + b666: 0f55 bf 0xb510 // b510 + b668: 3300 movi r3, 0 + b66a: 015b lrw r2, 0x20000888 // b978 + b66c: 2b01 subi r3, 2 + b66e: 9220 ld.w r1, (r2, 0x0) + b670: 70d3 rotl r3, r4 + b672: 68c4 and r3, r1 + b674: b260 st.w r3, (r2, 0x0) + b676: 074d br 0xb510 // b510 + b678: 649d cmplt r7, r2 + b67a: 0f4b bf 0xb510 // b510 + b67c: 015f lrw r2, 0x20000912 // b97c + b67e: 8240 ld.b r2, (r2, 0x0) + b680: 7488 zextb r2, r2 + b682: 3a40 cmpnei r2, 0 + b684: b847 st.w r2, (r14, 0x1c) + b686: 0b45 bt 0xb510 // b510 + b688: 0201 lrw r0, 0x20000ad4 // b980 + b68a: 6010 addu r0, r4 + b68c: 8020 ld.b r1, (r0, 0x0) + b68e: 2100 addi r1, 1 + b690: 7444 zextb r1, r1 + b692: a020 st.b r1, (r0, 0x0) + b694: 3600 movi r6, 0 + b696: 0223 lrw r1, 0x20000970 // b984 + b698: 6050 addu r1, r4 + b69a: a1c0 st.b r6, (r1, 0x0) + b69c: 0224 lrw r1, 0x2000099a // b988 + b69e: 6050 addu r1, r4 + b6a0: a1c0 st.b r6, (r1, 0x0) + b6a2: 0224 lrw r1, 0x20000a98 // b98c + b6a4: 6050 addu r1, r4 + b6a6: a1c0 st.b r6, (r1, 0x0) + b6a8: 8020 ld.b r1, (r0, 0x0) + b6aa: 98c3 ld.w r6, (r14, 0xc) + b6ac: 6458 cmphs r6, r1 + b6ae: 0b31 bt 0xb510 // b510 + b6b0: 3d40 cmpnei r5, 0 + b6b2: 0808 bt 0xb6c2 // b6c2 + b6b4: 024e lrw r2, 0x20000888 // b978 + b6b6: 9260 ld.w r3, (r2, 0x0) + b6b8: 3b40 cmpnei r3, 0 + b6ba: 0823 bt 0xb700 // b700 + b6bc: 9220 ld.w r1, (r2, 0x0) + b6be: 3301 movi r3, 1 + b6c0: 0406 br 0xb6cc // b6cc + b6c2: 3d41 cmpnei r5, 1 + b6c4: 0808 bt 0xb6d4 // b6d4 + b6c6: 0252 lrw r2, 0x20000888 // b978 + b6c8: 6cd7 mov r3, r5 + b6ca: 9220 ld.w r1, (r2, 0x0) + b6cc: 70d0 lsl r3, r4 + b6ce: 6cc4 or r3, r1 + b6d0: b260 st.w r3, (r2, 0x0) + b6d2: 0417 br 0xb700 // b700 + b6d4: 3d42 cmpnei r5, 2 + b6d6: 0942 bt 0xb95a // b95a + b6d8: 8bc0 ld.h r6, (r3, 0x0) + b6da: 745b sexth r1, r6 + b6dc: 02d9 lrw r6, 0x20000ba4 // b974 + b6de: 6c87 mov r2, r1 + b6e0: 8e20 ld.h r1, (r6, 0x0) + b6e2: 7445 zexth r1, r1 + b6e4: 2109 addi r1, 10 + b6e6: 6485 cmplt r1, r2 + b6e8: 0c0c bf 0xb700 // b700 + b6ea: 8b60 ld.h r3, (r3, 0x0) + b6ec: 74cd zexth r3, r3 + b6ee: ae60 st.h r3, (r6, 0x0) + b6f0: 9867 ld.w r3, (r14, 0x1c) + b6f2: 023d lrw r1, 0x20000888 // b978 + b6f4: b160 st.w r3, (r1, 0x0) + b6f6: 3301 movi r3, 1 + b6f8: 9140 ld.w r2, (r1, 0x0) + b6fa: 70d0 lsl r3, r4 + b6fc: 6cc8 or r3, r2 + b6fe: b160 st.w r3, (r1, 0x0) + b700: 3300 movi r3, 0 + b702: a060 st.b r3, (r0, 0x0) + b704: 0706 br 0xb510 // b510 + b706: 3d41 cmpnei r5, 1 + b708: 0830 bt 0xb768 // b768 + b70a: 0345 lrw r2, 0x2000096c // b970 + b70c: 6cd7 mov r3, r5 + b70e: 9200 ld.w r0, (r2, 0x0) + b710: 70d0 lsl r3, r4 + b712: 6cc0 or r3, r0 + b714: b260 st.w r3, (r2, 0x0) + b716: 6c03 mov r0, r0 + b718: 3300 movi r3, 0 + b71a: a160 st.b r3, (r1, 0x0) + b71c: 4461 lsli r3, r4, 1 + b71e: 9842 ld.w r2, (r14, 0x8) + b720: 608c addu r2, r3 + b722: 8a60 ld.h r3, (r2, 0x0) + b724: 74cf sexth r3, r3 + b726: 9845 ld.w r2, (r14, 0x14) + b728: 648d cmplt r3, r2 + b72a: 0c18 bf 0xb75a // b75a + b72c: 0346 lrw r2, 0x20000aea // b990 + b72e: 6090 addu r2, r4 + b730: 8260 ld.b r3, (r2, 0x0) + b732: 2300 addi r3, 1 + b734: 74cc zextb r3, r3 + b736: a260 st.b r3, (r2, 0x0) + b738: 3100 movi r1, 0 + b73a: 0368 lrw r3, 0x20000a7c // b994 + b73c: 60d0 addu r3, r4 + b73e: a320 st.b r1, (r3, 0x0) + b740: 8260 ld.b r3, (r2, 0x0) + b742: 9826 ld.w r1, (r14, 0x18) + b744: 64c4 cmphs r1, r3 + b746: 080a bt 0xb75a // b75a + b748: 3300 movi r3, 0 + b74a: 0335 lrw r1, 0x2000096c // b970 + b74c: 2b01 subi r3, 2 + b74e: 9100 ld.w r0, (r1, 0x0) + b750: 70d3 rotl r3, r4 + b752: 68c0 and r3, r0 + b754: b160 st.w r3, (r1, 0x0) + b756: 3300 movi r3, 0 + b758: a260 st.b r3, (r2, 0x0) + b75a: 2400 addi r4, 1 + b75c: 3c51 cmpnei r4, 17 + b75e: 0c03 bf 0xb764 // b764 + b760: e800fd8d br 0xb27a // b27a + b764: 140a addi r14, r14, 40 + b766: 1494 pop r4-r7, r15 + b768: 3d42 cmpnei r5, 2 + b76a: 0948 bt 0xb9fa // b9fa + b76c: 03d4 lrw r6, 0x20000936 // b998 + b76e: 8b00 ld.h r0, (r3, 0x0) + b770: 8e40 ld.h r2, (r6, 0x0) + b772: 7489 zexth r2, r2 + b774: 7403 sexth r0, r0 + b776: 2209 addi r2, 10 + b778: 6409 cmplt r2, r0 + b77a: 0fcf bf 0xb718 // b718 + b77c: 8b60 ld.h r3, (r3, 0x0) + b77e: 74cd zexth r3, r3 + b780: ae60 st.h r3, (r6, 0x0) + b782: 3300 movi r3, 0 + b784: 135b lrw r2, 0x2000096c // b970 + b786: b260 st.w r3, (r2, 0x0) + b788: 0750 br 0xb628 // b628 + b78a: 4461 lsli r3, r4, 1 + b78c: 9842 ld.w r2, (r14, 0x8) + b78e: 60c8 addu r3, r2 + b790: 8b60 ld.h r3, (r3, 0x0) + b792: 74cf sexth r3, r3 + b794: 64c5 cmplt r1, r3 + b796: 0fc3 bf 0xb71c // b71c + b798: 3300 movi r3, 0 + b79a: 1356 lrw r2, 0x2000096c // b970 + b79c: 2b01 subi r3, 2 + b79e: 9220 ld.w r1, (r2, 0x0) + b7a0: 70d3 rotl r3, r4 + b7a2: 68c4 and r3, r1 + b7a4: b260 st.w r3, (r2, 0x0) + b7a6: 07bb br 0xb71c // b71c + b7a8: 649d cmplt r7, r2 + b7aa: 0fb9 bf 0xb71c // b71c + b7ac: 1354 lrw r2, 0x20000912 // b97c + b7ae: 8240 ld.b r2, (r2, 0x0) + b7b0: 7488 zextb r2, r2 + b7b2: 3a40 cmpnei r2, 0 + b7b4: 0bb4 bt 0xb71c // b71c + b7b6: 1318 lrw r0, 0x20000a7c // b994 + b7b8: 6010 addu r0, r4 + b7ba: 8020 ld.b r1, (r0, 0x0) + b7bc: 2100 addi r1, 1 + b7be: 7444 zextb r1, r1 + b7c0: a020 st.b r1, (r0, 0x0) + b7c2: 3600 movi r6, 0 + b7c4: 1333 lrw r1, 0x20000aea // b990 + b7c6: 6050 addu r1, r4 + b7c8: a1c0 st.b r6, (r1, 0x0) + b7ca: 1335 lrw r1, 0x20000876 // b99c + b7cc: 6050 addu r1, r4 + b7ce: a1c0 st.b r6, (r1, 0x0) + b7d0: 1334 lrw r1, 0x20000988 // b9a0 + b7d2: 6050 addu r1, r4 + b7d4: a1c0 st.b r6, (r1, 0x0) + b7d6: 8020 ld.b r1, (r0, 0x0) + b7d8: 98c3 ld.w r6, (r14, 0xc) + b7da: 6458 cmphs r6, r1 + b7dc: 0ba0 bt 0xb71c // b71c + b7de: 3d40 cmpnei r5, 0 + b7e0: 0808 bt 0xb7f0 // b7f0 + b7e2: 1344 lrw r2, 0x2000096c // b970 + b7e4: 9260 ld.w r3, (r2, 0x0) + b7e6: 3b40 cmpnei r3, 0 + b7e8: 0821 bt 0xb82a // b82a + b7ea: 9220 ld.w r1, (r2, 0x0) + b7ec: 3301 movi r3, 1 + b7ee: 0406 br 0xb7fa // b7fa + b7f0: 3d41 cmpnei r5, 1 + b7f2: 0808 bt 0xb802 // b802 + b7f4: 125f lrw r2, 0x2000096c // b970 + b7f6: 6cd7 mov r3, r5 + b7f8: 9220 ld.w r1, (r2, 0x0) + b7fa: 70d0 lsl r3, r4 + b7fc: 6cc4 or r3, r1 + b7fe: b260 st.w r3, (r2, 0x0) + b800: 0415 br 0xb82a // b82a + b802: 3d42 cmpnei r5, 2 + b804: 092a bt 0xba58 // ba58 + b806: 13e5 lrw r7, 0x20000936 // b998 + b808: 8bc0 ld.h r6, (r3, 0x0) + b80a: 8f20 ld.h r1, (r7, 0x0) + b80c: 7445 zexth r1, r1 + b80e: 759b sexth r6, r6 + b810: 2109 addi r1, 10 + b812: 6585 cmplt r1, r6 + b814: 0c0b bf 0xb82a // b82a + b816: 8b60 ld.h r3, (r3, 0x0) + b818: 1236 lrw r1, 0x2000096c // b970 + b81a: 74cd zexth r3, r3 + b81c: af60 st.h r3, (r7, 0x0) + b81e: b140 st.w r2, (r1, 0x0) + b820: 3301 movi r3, 1 + b822: 9140 ld.w r2, (r1, 0x0) + b824: 70d0 lsl r3, r4 + b826: 6cc8 or r3, r2 + b828: b160 st.w r3, (r1, 0x0) + b82a: 3300 movi r3, 0 + b82c: a060 st.b r3, (r0, 0x0) + b82e: 0777 br 0xb71c // b71c + b830: 3d43 cmpnei r5, 3 + b832: 0c03 bf 0xb838 // b838 + b834: e800fda6 br 0xb380 // b380 + b838: 125b lrw r2, 0x20000aae // b9a4 + b83a: 8bc0 ld.h r6, (r3, 0x0) + b83c: 8a00 ld.h r0, (r2, 0x0) + b83e: 7401 zexth r0, r0 + b840: 759b sexth r6, r6 + b842: 2009 addi r0, 10 + b844: 6581 cmplt r0, r6 + b846: 0c0c bf 0xb85e // b85e + b848: 8b60 ld.h r3, (r3, 0x0) + b84a: 74cd zexth r3, r3 + b84c: aa60 st.h r3, (r2, 0x0) + b84e: 3300 movi r3, 0 + b850: 1216 lrw r0, 0x200008f4 // b9a8 + b852: b060 st.w r3, (r0, 0x0) + b854: 3301 movi r3, 1 + b856: 90c0 ld.w r6, (r0, 0x0) + b858: 70d0 lsl r3, r4 + b85a: 6cd8 or r3, r6 + b85c: b060 st.w r3, (r0, 0x0) + b85e: 9804 ld.w r0, (r14, 0x10) + b860: 4461 lsli r3, r4, 1 + b862: 60c0 addu r3, r0 + b864: 8b00 ld.h r0, (r3, 0x0) + b866: 8a40 ld.h r2, (r2, 0x0) + b868: 7489 zexth r2, r2 + b86a: 7403 sexth r0, r0 + b86c: 2a04 subi r2, 5 + b86e: 6481 cmplt r0, r2 + b870: 0803 bt 0xb876 // b876 + b872: e800fd87 br 0xb380 // b380 + b876: 12ce lrw r6, 0x200008b8 // b9ac + b878: 8b00 ld.h r0, (r3, 0x0) + b87a: 8e40 ld.h r2, (r6, 0x0) + b87c: 7489 zexth r2, r2 + b87e: 7403 sexth r0, r0 + b880: 2204 addi r2, 5 + b882: 6409 cmplt r2, r0 + b884: 0803 bt 0xb88a // b88a + b886: e800fd7d br 0xb380 // b380 + b88a: 8b60 ld.h r3, (r3, 0x0) + b88c: 74cd zexth r3, r3 + b88e: ae60 st.h r3, (r6, 0x0) + b890: 1246 lrw r2, 0x200008f4 // b9a8 + b892: e800fd63 br 0xb358 // b358 + b896: 3d43 cmpnei r5, 3 + b898: 0c02 bf 0xb89c // b89c + b89a: 061d br 0xb4d4 // b4d4 + b89c: 12c2 lrw r6, 0x20000aae // b9a4 + b89e: 8ae0 ld.h r7, (r2, 0x0) + b8a0: 8e20 ld.h r1, (r6, 0x0) + b8a2: 7445 zexth r1, r1 + b8a4: 75df sexth r7, r7 + b8a6: 2109 addi r1, 10 + b8a8: 65c5 cmplt r1, r7 + b8aa: 0c0b bf 0xb8c0 // b8c0 + b8ac: 8a40 ld.h r2, (r2, 0x0) + b8ae: 7489 zexth r2, r2 + b8b0: ae40 st.h r2, (r6, 0x0) + b8b2: 115e lrw r2, 0x200008f4 // b9a8 + b8b4: b260 st.w r3, (r2, 0x0) + b8b6: 3301 movi r3, 1 + b8b8: 9220 ld.w r1, (r2, 0x0) + b8ba: 70d0 lsl r3, r4 + b8bc: 6cc4 or r3, r1 + b8be: b260 st.w r3, (r2, 0x0) + b8c0: 9844 ld.w r2, (r14, 0x10) + b8c2: 4461 lsli r3, r4, 1 + b8c4: 60c8 addu r3, r2 + b8c6: 8b40 ld.h r2, (r3, 0x0) + b8c8: 8e20 ld.h r1, (r6, 0x0) + b8ca: 7445 zexth r1, r1 + b8cc: 748b sexth r2, r2 + b8ce: 2904 subi r1, 5 + b8d0: 6449 cmplt r2, r1 + b8d2: 0802 bt 0xb8d6 // b8d6 + b8d4: 0600 br 0xb4d4 // b4d4 + b8d6: 11d6 lrw r6, 0x200008b8 // b9ac + b8d8: 8b20 ld.h r1, (r3, 0x0) + b8da: 8e40 ld.h r2, (r6, 0x0) + b8dc: 7489 zexth r2, r2 + b8de: 7447 sexth r1, r1 + b8e0: 2204 addi r2, 5 + b8e2: 6449 cmplt r2, r1 + b8e4: 0803 bt 0xb8ea // b8ea + b8e6: e800fdf7 br 0xb4d4 // b4d4 + b8ea: 8b60 ld.h r3, (r3, 0x0) + b8ec: 74cd zexth r3, r3 + b8ee: ae60 st.h r3, (r6, 0x0) + b8f0: 114e lrw r2, 0x200008f4 // b9a8 + b8f2: e800fde6 br 0xb4be // b4be + b8f6: 3d43 cmpnei r5, 3 + b8f8: 0c02 bf 0xb8fc // b8fc + b8fa: 0609 br 0xb50c // b50c + b8fc: 105e lrw r2, 0x20000ba4 // b974 + b8fe: 8bc0 ld.h r6, (r3, 0x0) + b900: 8a00 ld.h r0, (r2, 0x0) + b902: 7401 zexth r0, r0 + b904: 759b sexth r6, r6 + b906: 2009 addi r0, 10 + b908: 6581 cmplt r0, r6 + b90a: 0c0c bf 0xb922 // b922 + b90c: 8b60 ld.h r3, (r3, 0x0) + b90e: 74cd zexth r3, r3 + b910: aa60 st.h r3, (r2, 0x0) + b912: 3300 movi r3, 0 + b914: 1019 lrw r0, 0x20000888 // b978 + b916: b060 st.w r3, (r0, 0x0) + b918: 3301 movi r3, 1 + b91a: 90c0 ld.w r6, (r0, 0x0) + b91c: 70d0 lsl r3, r4 + b91e: 6cd8 or r3, r6 + b920: b060 st.w r3, (r0, 0x0) + b922: 9801 ld.w r0, (r14, 0x4) + b924: 4461 lsli r3, r4, 1 + b926: 60c0 addu r3, r0 + b928: 8b00 ld.h r0, (r3, 0x0) + b92a: 8a40 ld.h r2, (r2, 0x0) + b92c: 7489 zexth r2, r2 + b92e: 7403 sexth r0, r0 + b930: 2a04 subi r2, 5 + b932: 6481 cmplt r0, r2 + b934: 0803 bt 0xb93a // b93a + b936: e800fdeb br 0xb50c // b50c + b93a: 10de lrw r6, 0x20000ab6 // b9b0 + b93c: 8b00 ld.h r0, (r3, 0x0) + b93e: 8e40 ld.h r2, (r6, 0x0) + b940: 7489 zexth r2, r2 + b942: 7403 sexth r0, r0 + b944: 2204 addi r2, 5 + b946: 6409 cmplt r2, r0 + b948: 0803 bt 0xb94e // b94e + b94a: e800fde1 br 0xb50c // b50c + b94e: 8b60 ld.h r3, (r3, 0x0) + b950: 74cd zexth r3, r3 + b952: ae60 st.h r3, (r6, 0x0) + b954: 1049 lrw r2, 0x20000888 // b978 + b956: e800fd67 br 0xb424 // b424 + b95a: 3d43 cmpnei r5, 3 + b95c: 0ad2 bt 0xb700 // b700 + b95e: 8b20 ld.h r1, (r3, 0x0) + b960: 10c5 lrw r6, 0x20000ba4 // b974 + b962: 7487 sexth r2, r1 + b964: 8e20 ld.h r1, (r6, 0x0) + b966: 7445 zexth r1, r1 + b968: 2109 addi r1, 10 + b96a: 6485 cmplt r1, r2 + b96c: 0c2f bf 0xb9ca // b9ca + b96e: 0423 br 0xb9b4 // b9b4 + b970: 2000096c .long 0x2000096c + b974: 20000ba4 .long 0x20000ba4 + b978: 20000888 .long 0x20000888 + b97c: 20000912 .long 0x20000912 + b980: 20000ad4 .long 0x20000ad4 + b984: 20000970 .long 0x20000970 + b988: 2000099a .long 0x2000099a + b98c: 20000a98 .long 0x20000a98 + b990: 20000aea .long 0x20000aea + b994: 20000a7c .long 0x20000a7c + b998: 20000936 .long 0x20000936 + b99c: 20000876 .long 0x20000876 + b9a0: 20000988 .long 0x20000988 + b9a4: 20000aae .long 0x20000aae + b9a8: 200008f4 .long 0x200008f4 + b9ac: 200008b8 .long 0x200008b8 + b9b0: 20000ab6 .long 0x20000ab6 + b9b4: 8b60 ld.h r3, (r3, 0x0) + b9b6: 74cd zexth r3, r3 + b9b8: ae60 st.h r3, (r6, 0x0) + b9ba: 9867 ld.w r3, (r14, 0x1c) + b9bc: 113d lrw r1, 0x20000888 // bab0 + b9be: b160 st.w r3, (r1, 0x0) + b9c0: 3301 movi r3, 1 + b9c2: 9140 ld.w r2, (r1, 0x0) + b9c4: 70d0 lsl r3, r4 + b9c6: 6cc8 or r3, r2 + b9c8: b160 st.w r3, (r1, 0x0) + b9ca: 9841 ld.w r2, (r14, 0x4) + b9cc: 4461 lsli r3, r4, 1 + b9ce: 60c8 addu r3, r2 + b9d0: 8b40 ld.h r2, (r3, 0x0) + b9d2: 8e20 ld.h r1, (r6, 0x0) + b9d4: 7445 zexth r1, r1 + b9d6: 748b sexth r2, r2 + b9d8: 2904 subi r1, 5 + b9da: 6449 cmplt r2, r1 + b9dc: 0e92 bf 0xb700 // b700 + b9de: 11d6 lrw r6, 0x20000ab6 // bab4 + b9e0: 8b20 ld.h r1, (r3, 0x0) + b9e2: 8e40 ld.h r2, (r6, 0x0) + b9e4: 7489 zexth r2, r2 + b9e6: 7447 sexth r1, r1 + b9e8: 2204 addi r2, 5 + b9ea: 6449 cmplt r2, r1 + b9ec: 0802 bt 0xb9f0 // b9f0 + b9ee: 0689 br 0xb700 // b700 + b9f0: 8b60 ld.h r3, (r3, 0x0) + b9f2: 74cd zexth r3, r3 + b9f4: ae60 st.h r3, (r6, 0x0) + b9f6: 114f lrw r2, 0x20000888 // bab0 + b9f8: 0662 br 0xb6bc // b6bc + b9fa: 3d43 cmpnei r5, 3 + b9fc: 0a8e bt 0xb718 // b718 + b9fe: 114f lrw r2, 0x20000936 // bab8 + ba00: 8bc0 ld.h r6, (r3, 0x0) + ba02: 8a00 ld.h r0, (r2, 0x0) + ba04: 7401 zexth r0, r0 + ba06: 759b sexth r6, r6 + ba08: 2009 addi r0, 10 + ba0a: 6581 cmplt r0, r6 + ba0c: 0c0c bf 0xba24 // ba24 + ba0e: 8b60 ld.h r3, (r3, 0x0) + ba10: 74cd zexth r3, r3 + ba12: aa60 st.h r3, (r2, 0x0) + ba14: 3300 movi r3, 0 + ba16: 110a lrw r0, 0x2000096c // babc + ba18: b060 st.w r3, (r0, 0x0) + ba1a: 3301 movi r3, 1 + ba1c: 90c0 ld.w r6, (r0, 0x0) + ba1e: 70d0 lsl r3, r4 + ba20: 6cd8 or r3, r6 + ba22: b060 st.w r3, (r0, 0x0) + ba24: 9802 ld.w r0, (r14, 0x8) + ba26: 4461 lsli r3, r4, 1 + ba28: 60c0 addu r3, r0 + ba2a: 8b00 ld.h r0, (r3, 0x0) + ba2c: 8a40 ld.h r2, (r2, 0x0) + ba2e: 7489 zexth r2, r2 + ba30: 7403 sexth r0, r0 + ba32: 2a04 subi r2, 5 + ba34: 6481 cmplt r0, r2 + ba36: 0802 bt 0xba3a // ba3a + ba38: 0670 br 0xb718 // b718 + ba3a: 11c2 lrw r6, 0x200009fc // bac0 + ba3c: 8b00 ld.h r0, (r3, 0x0) + ba3e: 8e40 ld.h r2, (r6, 0x0) + ba40: 7489 zexth r2, r2 + ba42: 7403 sexth r0, r0 + ba44: 2204 addi r2, 5 + ba46: 6409 cmplt r2, r0 + ba48: 0802 bt 0xba4c // ba4c + ba4a: 0667 br 0xb718 // b718 + ba4c: 8b60 ld.h r3, (r3, 0x0) + ba4e: 74cd zexth r3, r3 + ba50: ae60 st.h r3, (r6, 0x0) + ba52: 105b lrw r2, 0x2000096c // babc + ba54: e800fdea br 0xb628 // b628 + ba58: 3d43 cmpnei r5, 3 + ba5a: 0ae8 bt 0xb82a // b82a + ba5c: 10d7 lrw r6, 0x20000936 // bab8 + ba5e: 8be0 ld.h r7, (r3, 0x0) + ba60: 8e20 ld.h r1, (r6, 0x0) + ba62: 7445 zexth r1, r1 + ba64: 75df sexth r7, r7 + ba66: 2109 addi r1, 10 + ba68: 65c5 cmplt r1, r7 + ba6a: 0c0b bf 0xba80 // ba80 + ba6c: 8b60 ld.h r3, (r3, 0x0) + ba6e: 1034 lrw r1, 0x2000096c // babc + ba70: 74cd zexth r3, r3 + ba72: ae60 st.h r3, (r6, 0x0) + ba74: b140 st.w r2, (r1, 0x0) + ba76: 3301 movi r3, 1 + ba78: 9140 ld.w r2, (r1, 0x0) + ba7a: 70d0 lsl r3, r4 + ba7c: 6cc8 or r3, r2 + ba7e: b160 st.w r3, (r1, 0x0) + ba80: 9842 ld.w r2, (r14, 0x8) + ba82: 4461 lsli r3, r4, 1 + ba84: 60c8 addu r3, r2 + ba86: 8b40 ld.h r2, (r3, 0x0) + ba88: 8e20 ld.h r1, (r6, 0x0) + ba8a: 7445 zexth r1, r1 + ba8c: 748b sexth r2, r2 + ba8e: 2904 subi r1, 5 + ba90: 6449 cmplt r2, r1 + ba92: 0ecc bf 0xb82a // b82a + ba94: 10cb lrw r6, 0x200009fc // bac0 + ba96: 8b20 ld.h r1, (r3, 0x0) + ba98: 8e40 ld.h r2, (r6, 0x0) + ba9a: 7489 zexth r2, r2 + ba9c: 7447 sexth r1, r1 + ba9e: 2204 addi r2, 5 + baa0: 6449 cmplt r2, r1 + baa2: 0ec4 bf 0xb82a // b82a + baa4: 8b60 ld.h r3, (r3, 0x0) + baa6: 74cd zexth r3, r3 + baa8: ae60 st.h r3, (r6, 0x0) + baaa: 1045 lrw r2, 0x2000096c // babc + baac: 069f br 0xb7ea // b7ea + baae: 0000 bkpt + bab0: 20000888 .long 0x20000888 + bab4: 20000ab6 .long 0x20000ab6 + bab8: 20000936 .long 0x20000936 + babc: 2000096c .long 0x2000096c + bac0: 200009fc .long 0x200009fc + +Disassembly of section .text.TK_overflow_predict: + +0000bac4 : + bac4: 14d4 push r4-r7, r15 + bac6: 1422 subi r14, r14, 8 + bac8: 113c lrw r1, 0x20000070 // bbb8 + baca: 8167 ld.b r3, (r1, 0x7) + bacc: 3b41 cmpnei r3, 1 + bace: 0823 bt 0xbb14 // bb14 + bad0: 115b lrw r2, 0x20000a76 // bbbc + bad2: 8260 ld.b r3, (r2, 0x0) + bad4: 2300 addi r3, 1 + bad6: 74cc zextb r3, r3 + bad8: a260 st.b r3, (r2, 0x0) + bada: 8260 ld.b r3, (r2, 0x0) + badc: 1119 lrw r0, 0x20000265 // bbc0 + bade: 8000 ld.b r0, (r0, 0x0) + bae0: 64c0 cmphs r0, r3 + bae2: 0819 bt 0xbb14 // bb14 + bae4: 3300 movi r3, 0 + bae6: a260 st.b r3, (r2, 0x0) + bae8: 11b7 lrw r5, 0x20000981 // bbc4 + baea: 8560 ld.b r3, (r5, 0x0) + baec: 3b40 cmpnei r3, 0 + baee: 0c15 bf 0xbb18 // bb18 + baf0: 8560 ld.b r3, (r5, 0x0) + baf2: 3b41 cmpnei r3, 1 + baf4: 0810 bt 0xbb14 // bb14 + baf6: 3300 movi r3, 0 + baf8: a560 st.b r3, (r5, 0x0) + bafa: 3200 movi r2, 0 + bafc: 1173 lrw r3, 0x20000058 // bbc8 + bafe: 1114 lrw r0, 0x20000ab0 // bbcc + bb00: 11b4 lrw r5, 0x20000b00 // bbd0 + bb02: 11d5 lrw r6, 0x20000242 // bbd4 + bb04: 9360 ld.w r3, (r3, 0x0) + bb06: b342 st.w r2, (r3, 0x8) + bb08: 1174 lrw r3, 0x20000054 // bbd8 + bb0a: 9380 ld.w r4, (r3, 0x0) + bb0c: 3300 movi r3, 0 + bb0e: 8040 ld.b r2, (r0, 0x0) + bb10: 648c cmphs r3, r2 + bb12: 0c44 bf 0xbb9a // bb9a + bb14: 1402 addi r14, r14, 8 + bb16: 1494 pop r4-r7, r15 + bb18: 597e addi r3, r1, 8 + bb1a: 3600 movi r6, 0 + bb1c: 11f0 lrw r7, 0x20000268 // bbdc + bb1e: b860 st.w r3, (r14, 0x0) + bb20: 9760 ld.w r3, (r7, 0x0) + bb22: 70d9 lsr r3, r6 + bb24: 3201 movi r2, 1 + bb26: 68c8 and r3, r2 + bb28: 3b40 cmpnei r3, 0 + bb2a: 0c34 bf 0xbb92 // bb92 + bb2c: 4681 lsli r4, r6, 1 + bb2e: 9860 ld.w r3, (r14, 0x0) + bb30: 60d0 addu r3, r4 + bb32: 8b00 ld.h r0, (r3, 0x0) + bb34: e3ffc152 bsr 0x3dd8 // 3dd8 <__floatunsidf> + bb38: 6cc7 mov r3, r1 + bb3a: 3180 movi r1, 128 + bb3c: 6c83 mov r2, r0 + bb3e: 4137 lsli r1, r1, 23 + bb40: 3000 movi r0, 0 + bb42: e3ffb739 bsr 0x29b4 // 29b4 <__GI_pow> + bb46: 1167 lrw r3, 0x2000026e // bbe0 + bb48: 60d0 addu r3, r4 + bb4a: 8b60 ld.h r3, (r3, 0x0) + bb4c: 4364 lsli r3, r3, 4 + bb4e: 230e addi r3, 15 + bb50: b861 st.w r3, (r14, 0x4) + bb52: e3ffbcfb bsr 0x3548 // 3548 <__fixunsdfsi> + bb56: 9861 ld.w r3, (r14, 0x4) + bb58: 7cc0 mult r3, r0 + bb5a: 1143 lrw r2, 0x20000b36 // bbe4 + bb5c: 740d zexth r0, r3 + bb5e: 6090 addu r2, r4 + bb60: 1162 lrw r3, 0x20000ba6 // bbe8 + bb62: 60d0 addu r3, r4 + bb64: aa00 st.h r0, (r2, 0x0) + bb66: 8b60 ld.h r3, (r3, 0x0) + bb68: 8a00 ld.h r0, (r2, 0x0) + bb6a: 7401 zexth r0, r0 + bb6c: 325f movi r2, 95 + bb6e: 74cd zexth r3, r3 + bb70: 7c08 mult r0, r2 + bb72: 3164 movi r1, 100 + bb74: b861 st.w r3, (r14, 0x4) + bb76: e3ffd2cf bsr 0x6114 // 6114 <__divsi3> + bb7a: 9861 ld.w r3, (r14, 0x4) + bb7c: 64c1 cmplt r0, r3 + bb7e: 0c0a bf 0xbb92 // bb92 + bb80: 1075 lrw r3, 0x20000242 // bbd4 + bb82: 610c addu r4, r3 + bb84: 8c60 ld.h r3, (r4, 0x0) + bb86: 3b06 cmphsi r3, 7 + bb88: 0805 bt 0xbb92 // bb92 + bb8a: 2300 addi r3, 1 + bb8c: ac60 st.h r3, (r4, 0x0) + bb8e: 3301 movi r3, 1 + bb90: a560 st.b r3, (r5, 0x0) + bb92: 2600 addi r6, 1 + bb94: 3e51 cmpnei r6, 17 + bb96: 0bc5 bt 0xbb20 // bb20 + bb98: 07ac br 0xbaf0 // baf0 + bb9a: 5d4c addu r2, r5, r3 + bb9c: 8240 ld.b r2, (r2, 0x0) + bb9e: 4241 lsli r2, r2, 1 + bba0: 4322 lsli r1, r3, 2 + bba2: 6098 addu r2, r6 + bba4: 6050 addu r1, r4 + bba6: 8a40 ld.h r2, (r2, 0x0) + bba8: 91f2 ld.w r7, (r1, 0x48) + bbaa: 4254 lsli r2, r2, 20 + bbac: 6c9c or r2, r7 + bbae: 2300 addi r3, 1 + bbb0: b152 st.w r2, (r1, 0x48) + bbb2: 74cc zextb r3, r3 + bbb4: 07ad br 0xbb0e // bb0e + bbb6: 0000 bkpt + bbb8: 20000070 .long 0x20000070 + bbbc: 20000a76 .long 0x20000a76 + bbc0: 20000265 .long 0x20000265 + bbc4: 20000981 .long 0x20000981 + bbc8: 20000058 .long 0x20000058 + bbcc: 20000ab0 .long 0x20000ab0 + bbd0: 20000b00 .long 0x20000b00 + bbd4: 20000242 .long 0x20000242 + bbd8: 20000054 .long 0x20000054 + bbdc: 20000268 .long 0x20000268 + bbe0: 2000026e .long 0x2000026e + bbe4: 20000b36 .long 0x20000b36 + bbe8: 20000ba6 .long 0x20000ba6 + +Disassembly of section .text.TK_Baseline_tracking: + +0000bbec : + bbec: 14d4 push r4-r7, r15 + bbee: 1421 subi r14, r14, 4 + bbf0: 014a lrw r2, 0x200009f2 // bf44 + bbf2: 8260 ld.b r3, (r2, 0x0) + bbf4: 2300 addi r3, 1 + bbf6: 74cc zextb r3, r3 + bbf8: a260 st.b r3, (r2, 0x0) + bbfa: 8260 ld.b r3, (r2, 0x0) + bbfc: 012c lrw r1, 0x20000265 // bf48 + bbfe: 8120 ld.b r1, (r1, 0x0) + bc00: 644c cmphs r3, r1 + bc02: 0803 bt 0xbc08 // bc08 + bc04: e800020f br 0xc022 // c022 + bc08: 3300 movi r3, 0 + bc0a: a260 st.b r3, (r2, 0x0) + bc0c: 016f lrw r3, 0x200008f4 // bf4c + bc0e: 9360 ld.w r3, (r3, 0x0) + bc10: 3b40 cmpnei r3, 0 + bc12: 0c03 bf 0xbc18 // bc18 + bc14: e8000209 br 0xc026 // c026 + bc18: 0171 lrw r3, 0x20000914 // bf50 + bc1a: 0150 lrw r2, 0x20000292 // bf54 + bc1c: 3100 movi r1, 0 + bc1e: b860 st.w r3, (r14, 0x0) + bc20: 6d0f mov r4, r3 + bc22: 0111 lrw r0, 0x20000854 // bf58 + bc24: 4161 lsli r3, r1, 1 + bc26: 98a0 ld.w r5, (r14, 0x0) + bc28: 614c addu r5, r3 + bc2a: 8da0 ld.h r5, (r5, 0x0) + bc2c: 7557 sexth r5, r5 + bc2e: 3ddf btsti r5, 31 + bc30: 0c1c bf 0xbc68 // bc68 + bc32: 01d4 lrw r6, 0x20000ba6 // bf5c + bc34: 58ac addu r5, r0, r3 + bc36: 618c addu r6, r3 + bc38: 8da0 ld.h r5, (r5, 0x0) + bc3a: 8ec0 ld.h r6, (r6, 0x0) + bc3c: 7599 zexth r6, r6 + bc3e: 7555 zexth r5, r5 + bc40: 615a subu r5, r6 + bc42: 8ac0 ld.h r6, (r2, 0x0) + bc44: 6595 cmplt r5, r6 + bc46: 0811 bt 0xbc68 // bc68 + bc48: 01b9 lrw r5, 0x20000ab8 // bf60 + bc4a: 6144 addu r5, r1 + bc4c: 85c0 ld.b r6, (r5, 0x0) + bc4e: 2600 addi r6, 1 + bc50: 7598 zextb r6, r6 + bc52: a5c0 st.b r6, (r5, 0x0) + bc54: 01db lrw r6, 0x20000090 // bf64 + bc56: 85e0 ld.b r7, (r5, 0x0) + bc58: 86ca ld.b r6, (r6, 0xa) + bc5a: 65d8 cmphs r6, r7 + bc5c: 0806 bt 0xbc68 // bc68 + bc5e: 01dc lrw r6, 0x20000960 // bf68 + bc60: 3701 movi r7, 1 + bc62: a6e0 st.b r7, (r6, 0x0) + bc64: 3600 movi r6, 0 + bc66: a5c0 st.b r6, (r5, 0x0) + bc68: 5cac addu r5, r4, r3 + bc6a: 8da0 ld.h r5, (r5, 0x0) + bc6c: 7557 sexth r5, r5 + bc6e: 3d20 cmplti r5, 1 + bc70: 081d bt 0xbcaa // bcaa + bc72: 02a4 lrw r5, 0x20000ba6 // bf5c + bc74: 614c addu r5, r3 + bc76: 58cc addu r6, r0, r3 + bc78: 8da0 ld.h r5, (r5, 0x0) + bc7a: 8ec0 ld.h r6, (r6, 0x0) + bc7c: 7599 zexth r6, r6 + bc7e: 7555 zexth r5, r5 + bc80: 615a subu r5, r6 + bc82: 8ac0 ld.h r6, (r2, 0x0) + bc84: 46c2 lsli r6, r6, 2 + bc86: 6595 cmplt r5, r6 + bc88: 0811 bt 0xbcaa // bcaa + bc8a: 02a6 lrw r5, 0x20000a20 // bf6c + bc8c: 6144 addu r5, r1 + bc8e: 85c0 ld.b r6, (r5, 0x0) + bc90: 2600 addi r6, 1 + bc92: 7598 zextb r6, r6 + bc94: a5c0 st.b r6, (r5, 0x0) + bc96: 02cb lrw r6, 0x20000090 // bf64 + bc98: 85e0 ld.b r7, (r5, 0x0) + bc9a: 86cb ld.b r6, (r6, 0xb) + bc9c: 65d8 cmphs r6, r7 + bc9e: 0806 bt 0xbcaa // bcaa + bca0: 02cd lrw r6, 0x20000960 // bf68 + bca2: 3701 movi r7, 1 + bca4: a6e0 st.b r7, (r6, 0x0) + bca6: 3600 movi r6, 0 + bca8: a5c0 st.b r6, (r5, 0x0) + bcaa: 5cac addu r5, r4, r3 + bcac: 8da0 ld.h r5, (r5, 0x0) + bcae: 7557 sexth r5, r5 + bcb0: 3ddf btsti r5, 31 + bcb2: 0c10 bf 0xbcd2 // bcd2 + bcb4: 02f5 lrw r7, 0x20000ba6 // bf5c + bcb6: 58cc addu r6, r0, r3 + bcb8: 61cc addu r7, r3 + bcba: 8ea0 ld.h r5, (r6, 0x0) + bcbc: 8fe0 ld.h r7, (r7, 0x0) + bcbe: 75dd zexth r7, r7 + bcc0: 7555 zexth r5, r5 + bcc2: 615e subu r5, r7 + bcc4: 8ae0 ld.h r7, (r2, 0x0) + bcc6: 65d5 cmplt r5, r7 + bcc8: 0c05 bf 0xbcd2 // bcd2 + bcca: 8ea0 ld.h r5, (r6, 0x0) + bccc: 2d00 subi r5, 1 + bcce: 7555 zexth r5, r5 + bcd0: aea0 st.h r5, (r6, 0x0) + bcd2: 5cac addu r5, r4, r3 + bcd4: 8da0 ld.h r5, (r5, 0x0) + bcd6: 7557 sexth r5, r5 + bcd8: 3ddf btsti r5, 31 + bcda: 0c11 bf 0xbcfc // bcfc + bcdc: 02ff lrw r7, 0x20000ba6 // bf5c + bcde: 58cc addu r6, r0, r3 + bce0: 61cc addu r7, r3 + bce2: 8ea0 ld.h r5, (r6, 0x0) + bce4: 8fe0 ld.h r7, (r7, 0x0) + bce6: 75dd zexth r7, r7 + bce8: 7555 zexth r5, r5 + bcea: 615e subu r5, r7 + bcec: 8ae0 ld.h r7, (r2, 0x0) + bcee: 4fe1 lsri r7, r7, 1 + bcf0: 65d5 cmplt r5, r7 + bcf2: 0805 bt 0xbcfc // bcfc + bcf4: 8ea0 ld.h r5, (r6, 0x0) + bcf6: 2d01 subi r5, 2 + bcf8: 7555 zexth r5, r5 + bcfa: aea0 st.h r5, (r6, 0x0) + bcfc: 5ccc addu r6, r4, r3 + bcfe: 8ea0 ld.h r5, (r6, 0x0) + bd00: 7557 sexth r5, r5 + bd02: 3d20 cmplti r5, 1 + bd04: 080c bt 0xbd1c // bd1c + bd06: 8ec0 ld.h r6, (r6, 0x0) + bd08: 8aa0 ld.h r5, (r2, 0x0) + bd0a: 759b sexth r6, r6 + bd0c: 4da1 lsri r5, r5, 1 + bd0e: 6559 cmplt r6, r5 + bd10: 0c06 bf 0xbd1c // bd1c + bd12: 58cc addu r6, r0, r3 + bd14: 8ea0 ld.h r5, (r6, 0x0) + bd16: 2500 addi r5, 1 + bd18: 7555 zexth r5, r5 + bd1a: aea0 st.h r5, (r6, 0x0) + bd1c: 5ccc addu r6, r4, r3 + bd1e: 8ea0 ld.h r5, (r6, 0x0) + bd20: 7557 sexth r5, r5 + bd22: 3d20 cmplti r5, 1 + bd24: 0810 bt 0xbd44 // bd44 + bd26: 8ee0 ld.h r7, (r6, 0x0) + bd28: 75df sexth r7, r7 + bd2a: 8aa0 ld.h r5, (r2, 0x0) + bd2c: 655d cmplt r7, r5 + bd2e: 0c0b bf 0xbd44 // bd44 + bd30: 8ec0 ld.h r6, (r6, 0x0) + bd32: 759b sexth r6, r6 + bd34: 4da1 lsri r5, r5, 1 + bd36: 6559 cmplt r6, r5 + bd38: 0806 bt 0xbd44 // bd44 + bd3a: 60c0 addu r3, r0 + bd3c: 8ba0 ld.h r5, (r3, 0x0) + bd3e: 2501 addi r5, 2 + bd40: 7555 zexth r5, r5 + bd42: aba0 st.h r5, (r3, 0x0) + bd44: 2100 addi r1, 1 + bd46: 3951 cmpnei r1, 17 + bd48: 2201 addi r2, 2 + bd4a: 0b6d bt 0xbc24 // bc24 + bd4c: 0376 lrw r3, 0x20000888 // bf70 + bd4e: 9360 ld.w r3, (r3, 0x0) + bd50: 3b40 cmpnei r3, 0 + bd52: 0980 bt 0xc052 // c052 + bd54: 0377 lrw r3, 0x20000a54 // bf74 + bd56: 035f lrw r2, 0x20000292 // bf54 + bd58: 3100 movi r1, 0 + bd5a: b860 st.w r3, (r14, 0x0) + bd5c: 6d0f mov r4, r3 + bd5e: 0318 lrw r0, 0x200009fe // bf78 + bd60: 4161 lsli r3, r1, 1 + bd62: 98a0 ld.w r5, (r14, 0x0) + bd64: 614c addu r5, r3 + bd66: 8da0 ld.h r5, (r5, 0x0) + bd68: 7557 sexth r5, r5 + bd6a: 3ddf btsti r5, 31 + bd6c: 0c1c bf 0xbda4 // bda4 + bd6e: 03db lrw r6, 0x2000093c // bf7c + bd70: 58ac addu r5, r0, r3 + bd72: 618c addu r6, r3 + bd74: 8da0 ld.h r5, (r5, 0x0) + bd76: 8ec0 ld.h r6, (r6, 0x0) + bd78: 7599 zexth r6, r6 + bd7a: 7555 zexth r5, r5 + bd7c: 615a subu r5, r6 + bd7e: 8ac0 ld.h r6, (r2, 0x0) + bd80: 6595 cmplt r5, r6 + bd82: 0811 bt 0xbda4 // bda4 + bd84: 13bf lrw r5, 0x20000a98 // bf80 + bd86: 6144 addu r5, r1 + bd88: 85c0 ld.b r6, (r5, 0x0) + bd8a: 2600 addi r6, 1 + bd8c: 7598 zextb r6, r6 + bd8e: a5c0 st.b r6, (r5, 0x0) + bd90: 13d5 lrw r6, 0x20000090 // bf64 + bd92: 85e0 ld.b r7, (r5, 0x0) + bd94: 86ca ld.b r6, (r6, 0xa) + bd96: 65d8 cmphs r6, r7 + bd98: 0806 bt 0xbda4 // bda4 + bd9a: 13d4 lrw r6, 0x20000960 // bf68 + bd9c: 3701 movi r7, 1 + bd9e: a6e1 st.b r7, (r6, 0x1) + bda0: 3600 movi r6, 0 + bda2: a5c0 st.b r6, (r5, 0x0) + bda4: 5cac addu r5, r4, r3 + bda6: 8da0 ld.h r5, (r5, 0x0) + bda8: 7557 sexth r5, r5 + bdaa: 3d20 cmplti r5, 1 + bdac: 081d bt 0xbde6 // bde6 + bdae: 13b4 lrw r5, 0x2000093c // bf7c + bdb0: 614c addu r5, r3 + bdb2: 58cc addu r6, r0, r3 + bdb4: 8da0 ld.h r5, (r5, 0x0) + bdb6: 8ec0 ld.h r6, (r6, 0x0) + bdb8: 7599 zexth r6, r6 + bdba: 7555 zexth r5, r5 + bdbc: 615a subu r5, r6 + bdbe: 8ac0 ld.h r6, (r2, 0x0) + bdc0: 46c2 lsli r6, r6, 2 + bdc2: 6595 cmplt r5, r6 + bdc4: 0811 bt 0xbde6 // bde6 + bdc6: 13b0 lrw r5, 0x2000099a // bf84 + bdc8: 6144 addu r5, r1 + bdca: 85c0 ld.b r6, (r5, 0x0) + bdcc: 2600 addi r6, 1 + bdce: 7598 zextb r6, r6 + bdd0: a5c0 st.b r6, (r5, 0x0) + bdd2: 13c5 lrw r6, 0x20000090 // bf64 + bdd4: 85e0 ld.b r7, (r5, 0x0) + bdd6: 86cb ld.b r6, (r6, 0xb) + bdd8: 65d8 cmphs r6, r7 + bdda: 0806 bt 0xbde6 // bde6 + bddc: 13c3 lrw r6, 0x20000960 // bf68 + bdde: 3701 movi r7, 1 + bde0: a6e1 st.b r7, (r6, 0x1) + bde2: 3600 movi r6, 0 + bde4: a5c0 st.b r6, (r5, 0x0) + bde6: 5cac addu r5, r4, r3 + bde8: 8da0 ld.h r5, (r5, 0x0) + bdea: 7557 sexth r5, r5 + bdec: 3ddf btsti r5, 31 + bdee: 0c10 bf 0xbe0e // be0e + bdf0: 13e3 lrw r7, 0x2000093c // bf7c + bdf2: 58cc addu r6, r0, r3 + bdf4: 61cc addu r7, r3 + bdf6: 8ea0 ld.h r5, (r6, 0x0) + bdf8: 8fe0 ld.h r7, (r7, 0x0) + bdfa: 75dd zexth r7, r7 + bdfc: 7555 zexth r5, r5 + bdfe: 615e subu r5, r7 + be00: 8ae0 ld.h r7, (r2, 0x0) + be02: 65d5 cmplt r5, r7 + be04: 0c05 bf 0xbe0e // be0e + be06: 8ea0 ld.h r5, (r6, 0x0) + be08: 2d00 subi r5, 1 + be0a: 7555 zexth r5, r5 + be0c: aea0 st.h r5, (r6, 0x0) + be0e: 5cac addu r5, r4, r3 + be10: 8da0 ld.h r5, (r5, 0x0) + be12: 7557 sexth r5, r5 + be14: 3ddf btsti r5, 31 + be16: 0c11 bf 0xbe38 // be38 + be18: 12f9 lrw r7, 0x2000093c // bf7c + be1a: 58cc addu r6, r0, r3 + be1c: 61cc addu r7, r3 + be1e: 8ea0 ld.h r5, (r6, 0x0) + be20: 8fe0 ld.h r7, (r7, 0x0) + be22: 75dd zexth r7, r7 + be24: 7555 zexth r5, r5 + be26: 615e subu r5, r7 + be28: 8ae0 ld.h r7, (r2, 0x0) + be2a: 4fe1 lsri r7, r7, 1 + be2c: 65d5 cmplt r5, r7 + be2e: 0805 bt 0xbe38 // be38 + be30: 8ea0 ld.h r5, (r6, 0x0) + be32: 2d01 subi r5, 2 + be34: 7555 zexth r5, r5 + be36: aea0 st.h r5, (r6, 0x0) + be38: 5ccc addu r6, r4, r3 + be3a: 8ea0 ld.h r5, (r6, 0x0) + be3c: 7557 sexth r5, r5 + be3e: 3d20 cmplti r5, 1 + be40: 080c bt 0xbe58 // be58 + be42: 8ec0 ld.h r6, (r6, 0x0) + be44: 8aa0 ld.h r5, (r2, 0x0) + be46: 759b sexth r6, r6 + be48: 4da1 lsri r5, r5, 1 + be4a: 6559 cmplt r6, r5 + be4c: 0c06 bf 0xbe58 // be58 + be4e: 58cc addu r6, r0, r3 + be50: 8ea0 ld.h r5, (r6, 0x0) + be52: 2500 addi r5, 1 + be54: 7555 zexth r5, r5 + be56: aea0 st.h r5, (r6, 0x0) + be58: 5ccc addu r6, r4, r3 + be5a: 8ea0 ld.h r5, (r6, 0x0) + be5c: 7557 sexth r5, r5 + be5e: 3d20 cmplti r5, 1 + be60: 0810 bt 0xbe80 // be80 + be62: 8ee0 ld.h r7, (r6, 0x0) + be64: 75df sexth r7, r7 + be66: 8aa0 ld.h r5, (r2, 0x0) + be68: 655d cmplt r7, r5 + be6a: 0c0b bf 0xbe80 // be80 + be6c: 8ec0 ld.h r6, (r6, 0x0) + be6e: 759b sexth r6, r6 + be70: 4da1 lsri r5, r5, 1 + be72: 6559 cmplt r6, r5 + be74: 0806 bt 0xbe80 // be80 + be76: 60c0 addu r3, r0 + be78: 8ba0 ld.h r5, (r3, 0x0) + be7a: 2501 addi r5, 2 + be7c: 7555 zexth r5, r5 + be7e: aba0 st.h r5, (r3, 0x0) + be80: 2100 addi r1, 1 + be82: 3951 cmpnei r1, 17 + be84: 2201 addi r2, 2 + be86: 0b6d bt 0xbd60 // bd60 + be88: 1260 lrw r3, 0x2000096c // bf88 + be8a: 9360 ld.w r3, (r3, 0x0) + be8c: 3b40 cmpnei r3, 0 + be8e: 08f8 bt 0xc07e // c07e + be90: 117f lrw r3, 0x20000b80 // bf8c + be92: 1151 lrw r2, 0x20000292 // bf54 + be94: 3100 movi r1, 0 + be96: b860 st.w r3, (r14, 0x0) + be98: 6d0f mov r4, r3 + be9a: 111e lrw r0, 0x20000b14 // bf90 + be9c: 4161 lsli r3, r1, 1 + be9e: 98a0 ld.w r5, (r14, 0x0) + bea0: 614c addu r5, r3 + bea2: 8da0 ld.h r5, (r5, 0x0) + bea4: 7557 sexth r5, r5 + bea6: 3ddf btsti r5, 31 + bea8: 0c1c bf 0xbee0 // bee0 + beaa: 11db lrw r6, 0x20000a32 // bf94 + beac: 58ac addu r5, r0, r3 + beae: 618c addu r6, r3 + beb0: 8da0 ld.h r5, (r5, 0x0) + beb2: 8ec0 ld.h r6, (r6, 0x0) + beb4: 7599 zexth r6, r6 + beb6: 7555 zexth r5, r5 + beb8: 615a subu r5, r6 + beba: 8ac0 ld.h r6, (r2, 0x0) + bebc: 6595 cmplt r5, r6 + bebe: 0811 bt 0xbee0 // bee0 + bec0: 11b6 lrw r5, 0x20000988 // bf98 + bec2: 6144 addu r5, r1 + bec4: 85c0 ld.b r6, (r5, 0x0) + bec6: 2600 addi r6, 1 + bec8: 7598 zextb r6, r6 + beca: a5c0 st.b r6, (r5, 0x0) + becc: 11c6 lrw r6, 0x20000090 // bf64 + bece: 85e0 ld.b r7, (r5, 0x0) + bed0: 86ca ld.b r6, (r6, 0xa) + bed2: 65d8 cmphs r6, r7 + bed4: 0806 bt 0xbee0 // bee0 + bed6: 11c5 lrw r6, 0x20000960 // bf68 + bed8: 3701 movi r7, 1 + beda: a6e2 st.b r7, (r6, 0x2) + bedc: 3600 movi r6, 0 + bede: a5c0 st.b r6, (r5, 0x0) + bee0: 5cac addu r5, r4, r3 + bee2: 8da0 ld.h r5, (r5, 0x0) + bee4: 7557 sexth r5, r5 + bee6: 3d20 cmplti r5, 1 + bee8: 081d bt 0xbf22 // bf22 + beea: 11ab lrw r5, 0x20000a32 // bf94 + beec: 614c addu r5, r3 + beee: 58cc addu r6, r0, r3 + bef0: 8da0 ld.h r5, (r5, 0x0) + bef2: 8ec0 ld.h r6, (r6, 0x0) + bef4: 7599 zexth r6, r6 + bef6: 7555 zexth r5, r5 + bef8: 615a subu r5, r6 + befa: 8ac0 ld.h r6, (r2, 0x0) + befc: 46c2 lsli r6, r6, 2 + befe: 6595 cmplt r5, r6 + bf00: 0811 bt 0xbf22 // bf22 + bf02: 11a7 lrw r5, 0x20000876 // bf9c + bf04: 6144 addu r5, r1 + bf06: 85c0 ld.b r6, (r5, 0x0) + bf08: 2600 addi r6, 1 + bf0a: 7598 zextb r6, r6 + bf0c: a5c0 st.b r6, (r5, 0x0) + bf0e: 10d6 lrw r6, 0x20000090 // bf64 + bf10: 85e0 ld.b r7, (r5, 0x0) + bf12: 86cb ld.b r6, (r6, 0xb) + bf14: 65d8 cmphs r6, r7 + bf16: 0806 bt 0xbf22 // bf22 + bf18: 10d4 lrw r6, 0x20000960 // bf68 + bf1a: 3701 movi r7, 1 + bf1c: a6e2 st.b r7, (r6, 0x2) + bf1e: 3600 movi r6, 0 + bf20: a5c0 st.b r6, (r5, 0x0) + bf22: 5cac addu r5, r4, r3 + bf24: 8da0 ld.h r5, (r5, 0x0) + bf26: 7557 sexth r5, r5 + bf28: 3ddf btsti r5, 31 + bf2a: 0c3f bf 0xbfa8 // bfa8 + bf2c: 10fa lrw r7, 0x20000a32 // bf94 + bf2e: 58cc addu r6, r0, r3 + bf30: 61cc addu r7, r3 + bf32: 8ea0 ld.h r5, (r6, 0x0) + bf34: 8fe0 ld.h r7, (r7, 0x0) + bf36: 75dd zexth r7, r7 + bf38: 7555 zexth r5, r5 + bf3a: 615e subu r5, r7 + bf3c: 8ae0 ld.h r7, (r2, 0x0) + bf3e: 65d5 cmplt r5, r7 + bf40: 0c34 bf 0xbfa8 // bfa8 + bf42: 042f br 0xbfa0 // bfa0 + bf44: 200009f2 .long 0x200009f2 + bf48: 20000265 .long 0x20000265 + bf4c: 200008f4 .long 0x200008f4 + bf50: 20000914 .long 0x20000914 + bf54: 20000292 .long 0x20000292 + bf58: 20000854 .long 0x20000854 + bf5c: 20000ba6 .long 0x20000ba6 + bf60: 20000ab8 .long 0x20000ab8 + bf64: 20000090 .long 0x20000090 + bf68: 20000960 .long 0x20000960 + bf6c: 20000a20 .long 0x20000a20 + bf70: 20000888 .long 0x20000888 + bf74: 20000a54 .long 0x20000a54 + bf78: 200009fe .long 0x200009fe + bf7c: 2000093c .long 0x2000093c + bf80: 20000a98 .long 0x20000a98 + bf84: 2000099a .long 0x2000099a + bf88: 2000096c .long 0x2000096c + bf8c: 20000b80 .long 0x20000b80 + bf90: 20000b14 .long 0x20000b14 + bf94: 20000a32 .long 0x20000a32 + bf98: 20000988 .long 0x20000988 + bf9c: 20000876 .long 0x20000876 + bfa0: 8ea0 ld.h r5, (r6, 0x0) + bfa2: 2d00 subi r5, 1 + bfa4: 7555 zexth r5, r5 + bfa6: aea0 st.h r5, (r6, 0x0) + bfa8: 5cac addu r5, r4, r3 + bfaa: 8da0 ld.h r5, (r5, 0x0) + bfac: 7557 sexth r5, r5 + bfae: 3ddf btsti r5, 31 + bfb0: 0c11 bf 0xbfd2 // bfd2 + bfb2: 11ff lrw r7, 0x20000a32 // c0ac + bfb4: 58cc addu r6, r0, r3 + bfb6: 61cc addu r7, r3 + bfb8: 8ea0 ld.h r5, (r6, 0x0) + bfba: 8fe0 ld.h r7, (r7, 0x0) + bfbc: 75dd zexth r7, r7 + bfbe: 7555 zexth r5, r5 + bfc0: 615e subu r5, r7 + bfc2: 8ae0 ld.h r7, (r2, 0x0) + bfc4: 4fe1 lsri r7, r7, 1 + bfc6: 65d5 cmplt r5, r7 + bfc8: 0805 bt 0xbfd2 // bfd2 + bfca: 8ea0 ld.h r5, (r6, 0x0) + bfcc: 2d01 subi r5, 2 + bfce: 7555 zexth r5, r5 + bfd0: aea0 st.h r5, (r6, 0x0) + bfd2: 5ccc addu r6, r4, r3 + bfd4: 8ea0 ld.h r5, (r6, 0x0) + bfd6: 7557 sexth r5, r5 + bfd8: 3d20 cmplti r5, 1 + bfda: 080c bt 0xbff2 // bff2 + bfdc: 8ec0 ld.h r6, (r6, 0x0) + bfde: 8aa0 ld.h r5, (r2, 0x0) + bfe0: 759b sexth r6, r6 + bfe2: 4da1 lsri r5, r5, 1 + bfe4: 6559 cmplt r6, r5 + bfe6: 0c06 bf 0xbff2 // bff2 + bfe8: 58cc addu r6, r0, r3 + bfea: 8ea0 ld.h r5, (r6, 0x0) + bfec: 2500 addi r5, 1 + bfee: 7555 zexth r5, r5 + bff0: aea0 st.h r5, (r6, 0x0) + bff2: 5ccc addu r6, r4, r3 + bff4: 8ea0 ld.h r5, (r6, 0x0) + bff6: 7557 sexth r5, r5 + bff8: 3d20 cmplti r5, 1 + bffa: 0810 bt 0xc01a // c01a + bffc: 8ee0 ld.h r7, (r6, 0x0) + bffe: 75df sexth r7, r7 + c000: 8aa0 ld.h r5, (r2, 0x0) + c002: 655d cmplt r7, r5 + c004: 0c0b bf 0xc01a // c01a + c006: 8ec0 ld.h r6, (r6, 0x0) + c008: 759b sexth r6, r6 + c00a: 4da1 lsri r5, r5, 1 + c00c: 6559 cmplt r6, r5 + c00e: 0806 bt 0xc01a // c01a + c010: 60c0 addu r3, r0 + c012: 8ba0 ld.h r5, (r3, 0x0) + c014: 2501 addi r5, 2 + c016: 7555 zexth r5, r5 + c018: aba0 st.h r5, (r3, 0x0) + c01a: 2100 addi r1, 1 + c01c: 3951 cmpnei r1, 17 + c01e: 2201 addi r2, 2 + c020: 0b3e bt 0xbe9c // be9c + c022: 1401 addi r14, r14, 4 + c024: 1494 pop r4-r7, r15 + c026: e3fff6c9 bsr 0xadb8 // adb8 + c02a: 1162 lrw r3, 0x20000090 // c0b0 + c02c: 836c ld.b r3, (r3, 0xc) + c02e: 64c0 cmphs r0, r3 + c030: 1141 lrw r2, 0x2000088c // c0b4 + c032: 0c0e bf 0xc04e // c04e + c034: 8260 ld.b r3, (r2, 0x0) + c036: 74cc zextb r3, r3 + c038: 3b01 cmphsi r3, 2 + c03a: 0c05 bf 0xc044 // c044 + c03c: 107f lrw r3, 0x20000960 // c0b8 + c03e: 3201 movi r2, 1 + c040: a340 st.b r2, (r3, 0x0) + c042: 0685 br 0xbd4c // bd4c + c044: 8260 ld.b r3, (r2, 0x0) + c046: 2300 addi r3, 1 + c048: 74cc zextb r3, r3 + c04a: a260 st.b r3, (r2, 0x0) + c04c: 0680 br 0xbd4c // bd4c + c04e: 3300 movi r3, 0 + c050: 07fd br 0xc04a // c04a + c052: e3fff6c7 bsr 0xade0 // ade0 + c056: 1077 lrw r3, 0x20000090 // c0b0 + c058: 836c ld.b r3, (r3, 0xc) + c05a: 64c0 cmphs r0, r3 + c05c: 1056 lrw r2, 0x2000088c // c0b4 + c05e: 0c0e bf 0xc07a // c07a + c060: 8261 ld.b r3, (r2, 0x1) + c062: 74cc zextb r3, r3 + c064: 3b01 cmphsi r3, 2 + c066: 0c05 bf 0xc070 // c070 + c068: 1074 lrw r3, 0x20000960 // c0b8 + c06a: 3201 movi r2, 1 + c06c: a341 st.b r2, (r3, 0x1) + c06e: 070d br 0xbe88 // be88 + c070: 8261 ld.b r3, (r2, 0x1) + c072: 2300 addi r3, 1 + c074: 74cc zextb r3, r3 + c076: a261 st.b r3, (r2, 0x1) + c078: 0708 br 0xbe88 // be88 + c07a: 3300 movi r3, 0 + c07c: 07fd br 0xc076 // c076 + c07e: e3fff6c5 bsr 0xae08 // ae08 + c082: 106c lrw r3, 0x20000090 // c0b0 + c084: 836c ld.b r3, (r3, 0xc) + c086: 64c0 cmphs r0, r3 + c088: 104b lrw r2, 0x2000088c // c0b4 + c08a: 0c0e bf 0xc0a6 // c0a6 + c08c: 8262 ld.b r3, (r2, 0x2) + c08e: 74cc zextb r3, r3 + c090: 3b01 cmphsi r3, 2 + c092: 0c05 bf 0xc09c // c09c + c094: 1069 lrw r3, 0x20000960 // c0b8 + c096: 3201 movi r2, 1 + c098: a342 st.b r2, (r3, 0x2) + c09a: 07c4 br 0xc022 // c022 + c09c: 8262 ld.b r3, (r2, 0x2) + c09e: 2300 addi r3, 1 + c0a0: 74cc zextb r3, r3 + c0a2: a262 st.b r3, (r2, 0x2) + c0a4: 07bf br 0xc022 // c022 + c0a6: 3300 movi r3, 0 + c0a8: 07fd br 0xc0a2 // c0a2 + c0aa: 0000 bkpt + c0ac: 20000a32 .long 0x20000a32 + c0b0: 20000090 .long 0x20000090 + c0b4: 2000088c .long 0x2000088c + c0b8: 20000960 .long 0x20000960 + +Disassembly of section .text.TK_result_prog: + +0000c0bc : + c0bc: 14d4 push r4-r7, r15 + c0be: 1424 subi r14, r14, 16 + c0c0: 111f lrw r0, 0x200008f4 // c1bc + c0c2: 1220 lrw r1, 0x20000888 // c1c0 + c0c4: 1240 lrw r2, 0x2000096c // c1c4 + c0c6: b821 st.w r1, (r14, 0x4) + c0c8: 9060 ld.w r3, (r0, 0x0) + c0ca: 91a0 ld.w r5, (r1, 0x0) + c0cc: 6cd4 or r3, r5 + c0ce: 9280 ld.w r4, (r2, 0x0) + c0d0: 6cd0 or r3, r4 + c0d2: 3b40 cmpnei r3, 0 + c0d4: b800 st.w r0, (r14, 0x0) + c0d6: b842 st.w r2, (r14, 0x8) + c0d8: 119c lrw r4, 0x200009f4 // c1c8 + c0da: 0c67 bf 0xc1a8 // c1a8 + c0dc: 111c lrw r0, 0x20000acc // c1cc + c0de: 3500 movi r5, 0 + c0e0: 117c lrw r3, 0x20000a94 // c1d0 + c0e2: b803 st.w r0, (r14, 0xc) + c0e4: 3201 movi r2, 1 + c0e6: 7094 lsl r2, r5 + c0e8: b040 st.w r2, (r0, 0x0) + c0ea: 9840 ld.w r2, (r14, 0x0) + c0ec: 9240 ld.w r2, (r2, 0x0) + c0ee: 9020 ld.w r1, (r0, 0x0) + c0f0: 6884 and r2, r1 + c0f2: b340 st.w r2, (r3, 0x0) + c0f4: 9841 ld.w r2, (r14, 0x4) + c0f6: 9240 ld.w r2, (r2, 0x0) + c0f8: 9020 ld.w r1, (r0, 0x0) + c0fa: 6848 and r1, r2 + c0fc: 1156 lrw r2, 0x20000b58 // c1d4 + c0fe: b220 st.w r1, (r2, 0x0) + c100: 9822 ld.w r1, (r14, 0x8) + c102: 9120 ld.w r1, (r1, 0x0) + c104: 90c0 ld.w r6, (r0, 0x0) + c106: 6984 and r6, r1 + c108: 1134 lrw r1, 0x200009f8 // c1d8 + c10a: b1c0 st.w r6, (r1, 0x0) + c10c: 93e0 ld.w r7, (r3, 0x0) + c10e: 92c0 ld.w r6, (r2, 0x0) + c110: 659e cmpne r7, r6 + c112: 0807 bt 0xc120 // c120 + c114: 92e0 ld.w r7, (r2, 0x0) + c116: 91c0 ld.w r6, (r1, 0x0) + c118: 659e cmpne r7, r6 + c11a: 0803 bt 0xc120 // c120 + c11c: 9340 ld.w r2, (r3, 0x0) + c11e: 040c br 0xc136 // c136 + c120: 92c0 ld.w r6, (r2, 0x0) + c122: 3e40 cmpnei r6, 0 + c124: 0c29 bf 0xc176 // c176 + c126: 91c0 ld.w r6, (r1, 0x0) + c128: 3e40 cmpnei r6, 0 + c12a: 0c26 bf 0xc176 // c176 + c12c: 92e0 ld.w r7, (r2, 0x0) + c12e: 91c0 ld.w r6, (r1, 0x0) + c130: 659e cmpne r7, r6 + c132: 0822 bt 0xc176 // c176 + c134: 9240 ld.w r2, (r2, 0x0) + c136: 9420 ld.w r1, (r4, 0x0) + c138: 6c84 or r2, r1 + c13a: 2500 addi r5, 1 + c13c: 3d51 cmpnei r5, 17 + c13e: b440 st.w r2, (r4, 0x0) + c140: 0bd2 bt 0xc0e4 // c0e4 + c142: 9460 ld.w r3, (r4, 0x0) + c144: 3b40 cmpnei r3, 0 + c146: 1146 lrw r2, 0x20000afc // c1dc + c148: 0c32 bf 0xc1ac // c1ac + c14a: 9420 ld.w r1, (r4, 0x0) + c14c: 9260 ld.w r3, (r2, 0x0) + c14e: 64c6 cmpne r1, r3 + c150: 0c06 bf 0xc15c // c15c + c152: 9460 ld.w r3, (r4, 0x0) + c154: b260 st.w r3, (r2, 0x0) + c156: 3200 movi r2, 0 + c158: 1162 lrw r3, 0x20000912 // c1e0 + c15a: a340 st.b r2, (r3, 0x0) + c15c: e3fff61a bsr 0xad90 // ad90 + c160: 1161 lrw r3, 0x2000026c // c1e4 + c162: 8360 ld.b r3, (r3, 0x0) + c164: 640c cmphs r3, r0 + c166: 0806 bt 0xc172 // c172 + c168: 3300 movi r3, 0 + c16a: b460 st.w r3, (r4, 0x0) + c16c: 3201 movi r2, 1 + c16e: 107d lrw r3, 0x20000912 // c1e0 + c170: a340 st.b r2, (r3, 0x0) + c172: 1404 addi r14, r14, 16 + c174: 1494 pop r4-r7, r15 + c176: 93c0 ld.w r6, (r3, 0x0) + c178: 3e40 cmpnei r6, 0 + c17a: 0c08 bf 0xc18a // c18a + c17c: 92c0 ld.w r6, (r2, 0x0) + c17e: 3e40 cmpnei r6, 0 + c180: 0c05 bf 0xc18a // c18a + c182: 93c0 ld.w r6, (r3, 0x0) + c184: 9240 ld.w r2, (r2, 0x0) + c186: 649a cmpne r6, r2 + c188: 0fca bf 0xc11c // c11c + c18a: 9340 ld.w r2, (r3, 0x0) + c18c: 3a40 cmpnei r2, 0 + c18e: 0c08 bf 0xc19e // c19e + c190: 9140 ld.w r2, (r1, 0x0) + c192: 3a40 cmpnei r2, 0 + c194: 0c05 bf 0xc19e // c19e + c196: 9340 ld.w r2, (r3, 0x0) + c198: 9120 ld.w r1, (r1, 0x0) + c19a: 644a cmpne r2, r1 + c19c: 0fc0 bf 0xc11c // c11c + c19e: 9843 ld.w r2, (r14, 0xc) + c1a0: 9220 ld.w r1, (r2, 0x0) + c1a2: 9440 ld.w r2, (r4, 0x0) + c1a4: 6885 andn r2, r1 + c1a6: 07ca br 0xc13a // c13a + c1a8: b460 st.w r3, (r4, 0x0) + c1aa: 07cc br 0xc142 // c142 + c1ac: b260 st.w r3, (r2, 0x0) + c1ae: 3100 movi r1, 0 + c1b0: 104c lrw r2, 0x20000912 // c1e0 + c1b2: a220 st.b r1, (r2, 0x0) + c1b4: 104d lrw r2, 0x200009ec // c1e8 + c1b6: b260 st.w r3, (r2, 0x0) + c1b8: 07dd br 0xc172 // c172 + c1ba: 0000 bkpt + c1bc: 200008f4 .long 0x200008f4 + c1c0: 20000888 .long 0x20000888 + c1c4: 2000096c .long 0x2000096c + c1c8: 200009f4 .long 0x200009f4 + c1cc: 20000acc .long 0x20000acc + c1d0: 20000a94 .long 0x20000a94 + c1d4: 20000b58 .long 0x20000b58 + c1d8: 200009f8 .long 0x200009f8 + c1dc: 20000afc .long 0x20000afc + c1e0: 20000912 .long 0x20000912 + c1e4: 2000026c .long 0x2000026c + c1e8: 200009ec .long 0x200009ec + +Disassembly of section .text.get_key_seq: + +0000c1ec : + c1ec: 14c4 push r4-r7 + c1ee: 106c lrw r3, 0x20000268 // c21c + c1f0: 3200 movi r2, 0 + c1f2: 9380 ld.w r4, (r3, 0x0) + c1f4: 3000 movi r0, 0 + c1f6: 3300 movi r3, 0 + c1f8: 3501 movi r5, 1 + c1fa: 10ca lrw r6, 0x20000b00 // c220 + c1fc: 6c53 mov r1, r4 + c1fe: 704d lsr r1, r3 + c200: 6854 and r1, r5 + c202: 3940 cmpnei r1, 0 + c204: 75cc zextb r7, r3 + c206: 0c06 bf 0xc212 // c212 + c208: 5e28 addu r1, r6, r2 + c20a: 2200 addi r2, 1 + c20c: 2000 addi r0, 1 + c20e: a1e0 st.b r7, (r1, 0x0) + c210: 7488 zextb r2, r2 + c212: 2300 addi r3, 1 + c214: 3b51 cmpnei r3, 17 + c216: 0bf3 bt 0xc1fc // c1fc + c218: 7400 zextb r0, r0 + c21a: 1484 pop r4-r7 + c21c: 20000268 .long 0x20000268 + c220: 20000b00 .long 0x20000b00 + +Disassembly of section .text.CORET_CONFIG: + +0000c224 : + c224: 14d0 push r15 + c226: e3ffc919 bsr 0x5458 // 5458 + c22a: 3180 movi r1, 128 + c22c: 4124 lsli r1, r1, 4 + c22e: 3001 movi r0, 1 + c230: e3ffc0bc bsr 0x43a8 // 43a8 + c234: 1068 lrw r3, 0x20000064 // c254 + c236: 1049 lrw r2, 0x200002b8 // c258 + c238: 9360 ld.w r3, (r3, 0x0) + c23a: 9240 ld.w r2, (r2, 0x0) + c23c: b345 st.w r2, (r3, 0x14) + c23e: e3ffc93d bsr 0x54b8 // 54b8 + c242: e3ffc92b bsr 0x5498 // 5498 + c246: e3ffc931 bsr 0x54a8 // 54a8 + c24a: e3ffc91f bsr 0x5488 // 5488 + c24e: e3ffc911 bsr 0x5470 // 5470 + c252: 1490 pop r15 + c254: 20000064 .long 0x20000064 + c258: 200002b8 .long 0x200002b8 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +0000c25c : + c25c: 1066 lrw r3, 0x20000054 // c274 + c25e: 3100 movi r1, 0 + c260: 9300 ld.w r0, (r3, 0x0) + c262: 3300 movi r3, 0 + c264: 4342 lsli r2, r3, 2 + c266: 2300 addi r3, 1 + c268: 6080 addu r2, r0 + c26a: 3b51 cmpnei r3, 17 + c26c: b220 st.w r1, (r2, 0x0) + c26e: b232 st.w r1, (r2, 0x48) + c270: 0bfa bt 0xc264 // c264 + c272: 783c jmp r15 + c274: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_freq_para_init: + +0000c278 : + c278: 14d1 push r4, r15 + c27a: 107e lrw r3, 0x20000239 // c2f0 + c27c: 8360 ld.b r3, (r3, 0x0) + c27e: 3b40 cmpnei r3, 0 + c280: 080c bt 0xc298 // c298 + c282: 107d lrw r3, 0x20000070 // c2f4 + c284: 105d lrw r2, 0x20000bc8 // c2f8 + c286: 932c ld.w r1, (r3, 0x30) + c288: b220 st.w r1, (r2, 0x0) + c28a: 932d ld.w r1, (r3, 0x34) + c28c: 105c lrw r2, 0x20000938 // c2fc + c28e: b220 st.w r1, (r2, 0x0) + c290: 934e ld.w r2, (r3, 0x38) + c292: 107c lrw r3, 0x20000968 // c300 + c294: b340 st.w r2, (r3, 0x0) + c296: 1491 pop r4, r15 + c298: 3b41 cmpnei r3, 1 + c29a: 0bfe bt 0xc296 // c296 + c29c: 1076 lrw r3, 0x20000070 // c2f4 + c29e: 1057 lrw r2, 0x20000bc8 // c2f8 + c2a0: 932d ld.w r1, (r3, 0x34) + c2a2: b220 st.w r1, (r2, 0x0) + c2a4: 932d ld.w r1, (r3, 0x34) + c2a6: 1056 lrw r2, 0x20000938 // c2fc + c2a8: b220 st.w r1, (r2, 0x0) + c2aa: 934d ld.w r2, (r3, 0x34) + c2ac: 3105 movi r1, 5 + c2ae: 1075 lrw r3, 0x20000968 // c300 + c2b0: b340 st.w r2, (r3, 0x0) + c2b2: 1075 lrw r3, 0x20000058 // c304 + c2b4: 9380 ld.w r4, (r3, 0x0) + c2b6: 1075 lrw r3, 0x20000290 // c308 + c2b8: 8300 ld.b r0, (r3, 0x0) + c2ba: e3ffcf3f bsr 0x6138 // 6138 <__udivsi3> + c2be: 7400 zextb r0, r0 + c2c0: 1073 lrw r3, 0x2000023a // c30c + c2c2: b408 st.w r0, (r4, 0x20) + c2c4: 8300 ld.b r0, (r3, 0x0) + c2c6: 3804 cmphsi r0, 5 + c2c8: 1072 lrw r3, 0x200009f0 // c310 + c2ca: 0810 bt 0xc2ea // c2ea + c2cc: e3ffb918 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + c2d0: 090d0703 .long 0x090d0703 + c2d4: 000b .short 0x000b + c2d6: 3296 movi r2, 150 + c2d8: 4242 lsli r2, r2, 2 + c2da: ab40 st.h r2, (r3, 0x0) + c2dc: 07dd br 0xc296 // c296 + c2de: 104e lrw r2, 0x5dc // c314 + c2e0: 07fd br 0xc2da // c2da + c2e2: 104e lrw r2, 0x1194 // c318 + c2e4: 07fb br 0xc2da // c2da + c2e6: 104e lrw r2, 0x1770 // c31c + c2e8: 07f9 br 0xc2da // c2da + c2ea: 104e lrw r2, 0xbb8 // c320 + c2ec: 07f7 br 0xc2da // c2da + c2ee: 0000 bkpt + c2f0: 20000239 .long 0x20000239 + c2f4: 20000070 .long 0x20000070 + c2f8: 20000bc8 .long 0x20000bc8 + c2fc: 20000938 .long 0x20000938 + c300: 20000968 .long 0x20000968 + c304: 20000058 .long 0x20000058 + c308: 20000290 .long 0x20000290 + c30c: 2000023a .long 0x2000023a + c310: 200009f0 .long 0x200009f0 + c314: 000005dc .long 0x000005dc + c318: 00001194 .long 0x00001194 + c31c: 00001770 .long 0x00001770 + c320: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.tk_reserved_init: + +0000c324 : + c324: 1065 lrw r3, 0x2000005c // c338 + c326: 1046 lrw r2, 0xa67a6cc7 // c33c + c328: 9360 ld.w r3, (r3, 0x0) + c32a: b356 st.w r2, (r3, 0x58) + c32c: 1045 lrw r2, 0x21f1f04 // c340 + c32e: b355 st.w r2, (r3, 0x54) + c330: 1045 lrw r2, 0x69966996 // c344 + c332: 1066 lrw r3, 0x40011180 // c348 + c334: b35f st.w r2, (r3, 0x7c) + c336: 783c jmp r15 + c338: 2000005c .long 0x2000005c + c33c: a67a6cc7 .long 0xa67a6cc7 + c340: 021f1f04 .long 0x021f1f04 + c344: 69966996 .long 0x69966996 + c348: 40011180 .long 0x40011180 + +Disassembly of section .text.TKEYIntHandler: + +0000c34c : + c34c: 1460 nie + c34e: 1462 ipush + c350: 14d1 push r4, r15 + c352: 1183 lrw r4, 0x20000070 // c3dc + c354: 8460 ld.b r3, (r4, 0x0) + c356: 3b40 cmpnei r3, 0 + c358: 0815 bt 0xc382 // c382 + c35a: 3301 movi r3, 1 + c35c: a460 st.b r3, (r4, 0x0) + c35e: 1161 lrw r3, 0x20000900 // c3e0 + c360: 8360 ld.b r3, (r3, 0x0) + c362: 3b41 cmpnei r3, 1 + c364: 080f bt 0xc382 // c382 + c366: 1140 lrw r2, 0x20000b11 // c3e4 + c368: 8260 ld.b r3, (r2, 0x0) + c36a: 2300 addi r3, 1 + c36c: 74cc zextb r3, r3 + c36e: a260 st.b r3, (r2, 0x0) + c370: 8260 ld.b r3, (r2, 0x0) + c372: 3b43 cmpnei r3, 3 + c374: 0803 bt 0xc37a // c37a + c376: 3300 movi r3, 0 + c378: a260 st.b r3, (r2, 0x0) + c37a: e3fff4a5 bsr 0xacc4 // acc4 + c37e: 3301 movi r3, 1 + c380: a461 st.b r3, (r4, 0x1) + c382: 107a lrw r3, 0x20000058 // c3e8 + c384: 3101 movi r1, 1 + c386: 9360 ld.w r3, (r3, 0x0) + c388: 934a ld.w r2, (r3, 0x28) + c38a: 6884 and r2, r1 + c38c: 3a40 cmpnei r2, 0 + c38e: 0c02 bf 0xc392 // c392 + c390: b32c st.w r1, (r3, 0x30) + c392: 934a ld.w r2, (r3, 0x28) + c394: 3102 movi r1, 2 + c396: 6884 and r2, r1 + c398: 3a40 cmpnei r2, 0 + c39a: 0c02 bf 0xc39e // c39e + c39c: b32c st.w r1, (r3, 0x30) + c39e: 934a ld.w r2, (r3, 0x28) + c3a0: 3104 movi r1, 4 + c3a2: 6884 and r2, r1 + c3a4: 3a40 cmpnei r2, 0 + c3a6: 0c02 bf 0xc3aa // c3aa + c3a8: b32c st.w r1, (r3, 0x30) + c3aa: 934a ld.w r2, (r3, 0x28) + c3ac: 3108 movi r1, 8 + c3ae: 6884 and r2, r1 + c3b0: 3a40 cmpnei r2, 0 + c3b2: 0c02 bf 0xc3b6 // c3b6 + c3b4: b32c st.w r1, (r3, 0x30) + c3b6: 934a ld.w r2, (r3, 0x28) + c3b8: 3110 movi r1, 16 + c3ba: 6884 and r2, r1 + c3bc: 3a40 cmpnei r2, 0 + c3be: 0c02 bf 0xc3c2 // c3c2 + c3c0: b32c st.w r1, (r3, 0x30) + c3c2: 934a ld.w r2, (r3, 0x28) + c3c4: 3120 movi r1, 32 + c3c6: 6884 and r2, r1 + c3c8: 3a40 cmpnei r2, 0 + c3ca: 0c02 bf 0xc3ce // c3ce + c3cc: b32c st.w r1, (r3, 0x30) + c3ce: d9ee2001 ld.w r15, (r14, 0x4) + c3d2: 9880 ld.w r4, (r14, 0x0) + c3d4: 1402 addi r14, r14, 8 + c3d6: 1463 ipop + c3d8: 1461 nir + c3da: 0000 bkpt + c3dc: 20000070 .long 0x20000070 + c3e0: 20000900 .long 0x20000900 + c3e4: 20000b11 .long 0x20000b11 + c3e8: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +0000c3ec : + c3ec: 1460 nie + c3ee: 1462 ipush + c3f0: 14d3 push r4-r6, r15 + c3f2: 1269 lrw r3, 0x20000064 // c514 + c3f4: 3400 movi r4, 0 + c3f6: 9360 ld.w r3, (r3, 0x0) + c3f8: b386 st.w r4, (r3, 0x18) + c3fa: 1268 lrw r3, 0x20000900 // c518 + c3fc: 8360 ld.b r3, (r3, 0x0) + c3fe: 3b41 cmpnei r3, 1 + c400: 0840 bt 0xc480 // c480 + c402: e3fff6f5 bsr 0xb1ec // b1ec + c406: e3fff727 bsr 0xb254 // b254 + c40a: e3fffb5d bsr 0xbac4 // bac4 + c40e: e3fffbef bsr 0xbbec // bbec + c412: e3fff3c5 bsr 0xab9c // ab9c + c416: e3fffe53 bsr 0xc0bc // c0bc + c41a: 1261 lrw r3, 0x200009f4 // c51c + c41c: 9360 ld.w r3, (r3, 0x0) + c41e: 3b40 cmpnei r3, 0 + c420: 0c12 bf 0xc444 // c444 + c422: 1260 lrw r3, 0x2000023c // c520 + c424: 9340 ld.w r2, (r3, 0x0) + c426: 3a40 cmpnei r2, 0 + c428: 0c0e bf 0xc444 // c444 + c42a: 117f lrw r3, 0x200009ec // c524 + c42c: 3064 movi r0, 100 + c42e: 9320 ld.w r1, (r3, 0x0) + c430: 2100 addi r1, 1 + c432: b320 st.w r1, (r3, 0x0) + c434: 9320 ld.w r1, (r3, 0x0) + c436: 7c80 mult r2, r0 + c438: 6448 cmphs r2, r1 + c43a: 0805 bt 0xc444 // c444 + c43c: 115b lrw r2, 0x20000999 // c528 + c43e: 3101 movi r1, 1 + c440: a220 st.b r1, (r2, 0x0) + c442: b380 st.w r4, (r3, 0x0) + c444: 117a lrw r3, 0x20000235 // c52c + c446: 8340 ld.b r2, (r3, 0x0) + c448: 3a41 cmpnei r2, 1 + c44a: 0823 bt 0xc490 // c490 + c44c: 1139 lrw r1, 0x200008f4 // c530 + c44e: 115a lrw r2, 0x20000888 // c534 + c450: 9100 ld.w r0, (r1, 0x0) + c452: 9260 ld.w r3, (r2, 0x0) + c454: 64c2 cmpne r0, r3 + c456: 1179 lrw r3, 0x20000a90 // c538 + c458: 080a bt 0xc46c // c46c + c45a: 9280 ld.w r4, (r2, 0x0) + c45c: 1158 lrw r2, 0x2000096c // c53c + c45e: 9200 ld.w r0, (r2, 0x0) + c460: 6412 cmpne r4, r0 + c462: 0805 bt 0xc46c // c46c + c464: 9120 ld.w r1, (r1, 0x0) + c466: 9240 ld.w r2, (r2, 0x0) + c468: 6486 cmpne r1, r2 + c46a: 0c09 bf 0xc47c // c47c + c46c: 9340 ld.w r2, (r3, 0x0) + c46e: 2200 addi r2, 1 + c470: b340 st.w r2, (r3, 0x0) + c472: 1154 lrw r2, 0x20000090 // c540 + c474: 823c ld.b r1, (r2, 0x1c) + c476: 9340 ld.w r2, (r3, 0x0) + c478: 6484 cmphs r1, r2 + c47a: 0803 bt 0xc480 // c480 + c47c: 3200 movi r2, 0 + c47e: b340 st.w r2, (r3, 0x0) + c480: d9ee2003 ld.w r15, (r14, 0xc) + c484: 98c2 ld.w r6, (r14, 0x8) + c486: 98a1 ld.w r5, (r14, 0x4) + c488: 9880 ld.w r4, (r14, 0x0) + c48a: 1404 addi r14, r14, 16 + c48c: 1463 ipop + c48e: 1461 nir + c490: 83a0 ld.b r5, (r3, 0x0) + c492: 7554 zextb r5, r5 + c494: 3d40 cmpnei r5, 0 + c496: 0bf5 bt 0xc480 // c480 + c498: 1166 lrw r3, 0x200008f4 // c530 + c49a: 1147 lrw r2, 0x20000888 // c534 + c49c: 9300 ld.w r0, (r3, 0x0) + c49e: 9220 ld.w r1, (r2, 0x0) + c4a0: 6442 cmpne r0, r1 + c4a2: 1127 lrw r1, 0x2000096c // c53c + c4a4: 1105 lrw r0, 0x20000a90 // c538 + c4a6: 0c33 bf 0xc50c // c50c + c4a8: 92c0 ld.w r6, (r2, 0x0) + c4aa: 9180 ld.w r4, (r1, 0x0) + c4ac: 651a cmpne r6, r4 + c4ae: 0c2f bf 0xc50c // c50c + c4b0: 93c0 ld.w r6, (r3, 0x0) + c4b2: 9180 ld.w r4, (r1, 0x0) + c4b4: 651a cmpne r6, r4 + c4b6: 0c2b bf 0xc50c // c50c + c4b8: 9080 ld.w r4, (r0, 0x0) + c4ba: 2400 addi r4, 1 + c4bc: b080 st.w r4, (r0, 0x0) + c4be: 1181 lrw r4, 0x20000090 // c540 + c4c0: 84dc ld.b r6, (r4, 0x1c) + c4c2: 9080 ld.w r4, (r0, 0x0) + c4c4: 6518 cmphs r6, r4 + c4c6: 0802 bt 0xc4ca // c4ca + c4c8: b0a0 st.w r5, (r0, 0x0) + c4ca: 9380 ld.w r4, (r3, 0x0) + c4cc: 9200 ld.w r0, (r2, 0x0) + c4ce: 6412 cmpne r4, r0 + c4d0: 101d lrw r0, 0x20000ad0 // c544 + c4d2: 0c04 bf 0xc4da // c4da + c4d4: 9180 ld.w r4, (r1, 0x0) + c4d6: 3c40 cmpnei r4, 0 + c4d8: 0c0f bf 0xc4f6 // c4f6 + c4da: 93a0 ld.w r5, (r3, 0x0) + c4dc: 9180 ld.w r4, (r1, 0x0) + c4de: 6516 cmpne r5, r4 + c4e0: 0c04 bf 0xc4e8 // c4e8 + c4e2: 9280 ld.w r4, (r2, 0x0) + c4e4: 3c40 cmpnei r4, 0 + c4e6: 0c08 bf 0xc4f6 // c4f6 + c4e8: 9120 ld.w r1, (r1, 0x0) + c4ea: 9240 ld.w r2, (r2, 0x0) + c4ec: 6486 cmpne r1, r2 + c4ee: 0c0c bf 0xc506 // c506 + c4f0: 9360 ld.w r3, (r3, 0x0) + c4f2: 3b40 cmpnei r3, 0 + c4f4: 0809 bt 0xc506 // c506 + c4f6: 9060 ld.w r3, (r0, 0x0) + c4f8: 2300 addi r3, 1 + c4fa: b060 st.w r3, (r0, 0x0) + c4fc: 1071 lrw r3, 0x20000090 // c540 + c4fe: 835c ld.b r2, (r3, 0x1c) + c500: 9060 ld.w r3, (r0, 0x0) + c502: 64c8 cmphs r2, r3 + c504: 0bbe bt 0xc480 // c480 + c506: 3300 movi r3, 0 + c508: b060 st.w r3, (r0, 0x0) + c50a: 07bb br 0xc480 // c480 + c50c: 3400 movi r4, 0 + c50e: b080 st.w r4, (r0, 0x0) + c510: 07dd br 0xc4ca // c4ca + c512: 0000 bkpt + c514: 20000064 .long 0x20000064 + c518: 20000900 .long 0x20000900 + c51c: 200009f4 .long 0x200009f4 + c520: 2000023c .long 0x2000023c + c524: 200009ec .long 0x200009ec + c528: 20000999 .long 0x20000999 + c52c: 20000235 .long 0x20000235 + c530: 200008f4 .long 0x200008f4 + c534: 20000888 .long 0x20000888 + c538: 20000a90 .long 0x20000a90 + c53c: 2000096c .long 0x2000096c + c540: 20000090 .long 0x20000090 + c544: 20000ad0 .long 0x20000ad0 + +Disassembly of section .text.tk_init: + +0000c548 : + c548: 14d4 push r4-r7, r15 + c54a: 142c subi r14, r14, 48 + c54c: e3fffeec bsr 0xc324 // c324 + c550: e3ffc6e4 bsr 0x5318 // 5318 + c554: e3fffe92 bsr 0xc278 // c278 + c558: e3fff288 bsr 0xaa68 // aa68 + c55c: 3200 movi r2, 0 + c55e: 3100 movi r1, 0 + c560: 3001 movi r0, 1 + c562: e3fff211 bsr 0xa984 // a984 + c566: e3fffe7b bsr 0xc25c // c25c + c56a: e3fffe41 bsr 0xc1ec // c1ec + c56e: 1191 lrw r4, 0x20000ab0 // c630 + c570: 3101 movi r1, 1 + c572: a400 st.b r0, (r4, 0x0) + c574: 8440 ld.b r2, (r4, 0x0) + c576: 1170 lrw r3, 0x200002b4 // c634 + c578: 8b60 ld.h r3, (r3, 0x0) + c57a: b829 st.w r1, (r14, 0x24) + c57c: 3180 movi r1, 128 + c57e: 412d lsli r1, r1, 13 + c580: b828 st.w r1, (r14, 0x20) + c582: 3180 movi r1, 128 + c584: 4129 lsli r1, r1, 9 + c586: b827 st.w r1, (r14, 0x1c) + c588: 3100 movi r1, 0 + c58a: b826 st.w r1, (r14, 0x18) + c58c: 2a00 subi r2, 1 + c58e: 110b lrw r0, 0x200002b6 // c638 + c590: 8800 ld.h r0, (r0, 0x0) + c592: b805 st.w r0, (r14, 0x14) + c594: 7488 zextb r2, r2 + c596: 110a lrw r0, 0x200002bc // c63c + c598: 8800 ld.h r0, (r0, 0x0) + c59a: b804 st.w r0, (r14, 0x10) + c59c: 3080 movi r0, 128 + c59e: 4005 lsli r0, r0, 5 + c5a0: b803 st.w r0, (r14, 0xc) + c5a2: 3080 movi r0, 128 + c5a4: 4004 lsli r0, r0, 4 + c5a6: b802 st.w r0, (r14, 0x8) + c5a8: b821 st.w r1, (r14, 0x4) + c5aa: b820 st.w r1, (r14, 0x0) + c5ac: 3001 movi r0, 1 + c5ae: 3102 movi r1, 2 + c5b0: e3fff1fe bsr 0xa9ac // a9ac + c5b4: 3002 movi r0, 2 + c5b6: e3fff1df bsr 0xa974 // a974 + c5ba: 3020 movi r0, 32 + c5bc: e3fff1dc bsr 0xa974 // a974 + c5c0: 3380 movi r3, 128 + c5c2: 4372 lsli r3, r3, 18 + c5c4: 105f lrw r2, 0xe000e100 // c640 + c5c6: b260 st.w r3, (r2, 0x0) + c5c8: b270 st.w r3, (r2, 0x40) + c5ca: 10ff lrw r7, 0x20000078 // c644 + c5cc: 107f lrw r3, 0x20000054 // c648 + c5ce: 11a0 lrw r5, 0x20000b00 // c64c + c5d0: 11c0 lrw r6, 0x2000026e // c650 + c5d2: 9360 ld.w r3, (r3, 0x0) + c5d4: b86a st.w r3, (r14, 0x28) + c5d6: b88b st.w r4, (r14, 0x2c) + c5d8: 3300 movi r3, 0 + c5da: 984b ld.w r2, (r14, 0x2c) + c5dc: 8240 ld.b r2, (r2, 0x0) + c5de: 648c cmphs r3, r2 + c5e0: 0c09 bf 0xc5f2 // c5f2 + c5e2: e3fffe21 bsr 0xc224 // c224 + c5e6: e3fff425 bsr 0xae30 // ae30 + c5ea: e3fff56f bsr 0xb0c8 // b0c8 + c5ee: 140c addi r14, r14, 48 + c5f0: 1494 pop r4-r7, r15 + c5f2: 5d0c addu r0, r5, r3 + c5f4: 8020 ld.b r1, (r0, 0x0) + c5f6: 8040 ld.b r2, (r0, 0x0) + c5f8: 8080 ld.b r4, (r0, 0x0) + c5fa: 8000 ld.b r0, (r0, 0x0) + c5fc: 4001 lsli r0, r0, 1 + c5fe: 6018 addu r0, r6 + c600: 4121 lsli r1, r1, 1 + c602: 8800 ld.h r0, (r0, 0x0) + c604: 605c addu r1, r7 + c606: 448f lsli r4, r4, 15 + c608: 6d00 or r4, r0 + c60a: 4241 lsli r2, r2, 1 + c60c: 8900 ld.h r0, (r1, 0x0) + c60e: 1032 lrw r1, 0x20000242 // c654 + c610: 6084 addu r2, r1 + c612: 4018 lsli r0, r0, 24 + c614: 6c10 or r0, r4 + c616: 8a80 ld.h r4, (r2, 0x0) + c618: 3212 movi r2, 18 + c61a: 608c addu r2, r3 + c61c: 4494 lsli r4, r4, 20 + c61e: 4242 lsli r2, r2, 2 + c620: 982a ld.w r1, (r14, 0x28) + c622: 6c10 or r0, r4 + c624: 6084 addu r2, r1 + c626: 2300 addi r3, 1 + c628: b200 st.w r0, (r2, 0x0) + c62a: 74cc zextb r3, r3 + c62c: 07d7 br 0xc5da // c5da + c62e: 0000 bkpt + c630: 20000ab0 .long 0x20000ab0 + c634: 200002b4 .long 0x200002b4 + c638: 200002b6 .long 0x200002b6 + c63c: 200002bc .long 0x200002bc + c640: e000e100 .long 0xe000e100 + c644: 20000078 .long 0x20000078 + c648: 20000054 .long 0x20000054 + c64c: 20000b00 .long 0x20000b00 + c650: 2000026e .long 0x2000026e + c654: 20000242 .long 0x20000242 + +Disassembly of section .text.std_clk_calib: + +0000c658 : + c658: 14d4 push r4-r7, r15 + c65a: 142d subi r14, r14, 52 + c65c: 3201 movi r2, 1 + c65e: 03ce lrw r6, 0x2000005c // c8a0 + c660: 6cc3 mov r3, r0 + c662: dc4e000a st.b r2, (r14, 0xa) + c666: 9640 ld.w r2, (r6, 0x0) + c668: 9247 ld.w r2, (r2, 0x1c) + c66a: 7488 zextb r2, r2 + c66c: dc4e0009 st.b r2, (r14, 0x9) + c670: d84e0009 ld.b r2, (r14, 0x9) + c674: 3a40 cmpnei r2, 0 + c676: 0c08 bf 0xc686 // c686 + c678: d84e0009 ld.b r2, (r14, 0x9) + c67c: 3a42 cmpnei r2, 2 + c67e: 0c04 bf 0xc686 // c686 + c680: 3000 movi r0, 0 + c682: 140d addi r14, r14, 52 + c684: 1494 pop r4-r7, r15 + c686: 0397 lrw r4, 0x2000000c // c8a4 + c688: 3209 movi r2, 9 + c68a: 9400 ld.w r0, (r4, 0x0) + c68c: 3b40 cmpnei r3, 0 + c68e: b041 st.w r2, (r0, 0x4) + c690: 0857 bt 0xc73e // c73e + c692: 3307 movi r3, 7 + c694: dc6e000b st.b r3, (r14, 0xb) + c698: 037b lrw r3, 0x2dc6c00 // c8a8 + c69a: b863 st.w r3, (r14, 0xc) + c69c: 3380 movi r3, 128 + c69e: 4362 lsli r3, r3, 2 + c6a0: b867 st.w r3, (r14, 0x1c) + c6a2: d86e000b ld.b r3, (r14, 0xb) + c6a6: 74cc zextb r3, r3 + c6a8: b062 st.w r3, (r0, 0x8) + c6aa: 037e lrw r3, 0xffff // c8ac + c6ac: b063 st.w r3, (r0, 0xc) + c6ae: 3201 movi r2, 1 + c6b0: 3101 movi r1, 1 + c6b2: 03bf lrw r5, 0x20000014 // c8b0 + c6b4: e3ffc1fc bsr 0x4aac // 4aac + c6b8: 95e0 ld.w r7, (r5, 0x0) + c6ba: 137f lrw r3, 0xbe9c0005 // c8b4 + c6bc: b760 st.w r3, (r7, 0x0) + c6be: 135f lrw r2, 0x30010 // c8b8 + c6c0: 3300 movi r3, 0 + c6c2: b762 st.w r3, (r7, 0x8) + c6c4: b743 st.w r2, (r7, 0xc) + c6c6: 32d8 movi r2, 216 + c6c8: b745 st.w r2, (r7, 0x14) + c6ca: 974f ld.w r2, (r7, 0x3c) + c6cc: 3aa2 bseti r2, 2 + c6ce: b74f st.w r2, (r7, 0x3c) + c6d0: 9803 ld.w r0, (r14, 0xc) + c6d2: d82e000b ld.b r1, (r14, 0xb) + c6d6: 327d movi r2, 125 + c6d8: 2100 addi r1, 1 + c6da: 7c48 mult r1, r2 + c6dc: b861 st.w r3, (r14, 0x4) + c6de: e3ffcd2d bsr 0x6138 // 6138 <__udivsi3> + c6e2: b804 st.w r0, (r14, 0x10) + c6e4: 32fa movi r2, 250 + c6e6: 9824 ld.w r1, (r14, 0x10) + c6e8: 4242 lsli r2, r2, 2 + c6ea: 6448 cmphs r2, r1 + c6ec: 0bca bt 0xc680 // c680 + c6ee: 9844 ld.w r2, (r14, 0x10) + c6f0: 3178 movi r1, 120 + c6f2: 9804 ld.w r0, (r14, 0x10) + c6f4: b840 st.w r2, (r14, 0x0) + c6f6: e3ffcd21 bsr 0x6138 // 6138 <__udivsi3> + c6fa: 9840 ld.w r2, (r14, 0x0) + c6fc: 6082 subu r2, r0 + c6fe: b845 st.w r2, (r14, 0x14) + c700: 9804 ld.w r0, (r14, 0x10) + c702: 3178 movi r1, 120 + c704: 9844 ld.w r2, (r14, 0x10) + c706: b840 st.w r2, (r14, 0x0) + c708: e3ffcd18 bsr 0x6138 // 6138 <__udivsi3> + c70c: 9840 ld.w r2, (r14, 0x0) + c70e: 6008 addu r0, r2 + c710: b806 st.w r0, (r14, 0x18) + c712: c0807020 psrclr ie + c716: 9640 ld.w r2, (r6, 0x0) + c718: 9254 ld.w r2, (r2, 0x50) + c71a: b848 st.w r2, (r14, 0x20) + c71c: 9861 ld.w r3, (r14, 0x4) + c71e: 9440 ld.w r2, (r4, 0x0) + c720: b260 st.w r3, (r2, 0x0) + c722: b761 st.w r3, (r7, 0x4) + c724: d86e000a ld.b r3, (r14, 0xa) + c728: 3b40 cmpnei r3, 0 + c72a: 083e bt 0xc7a6 // c7a6 + c72c: e3ffc172 bsr 0x4a10 // 4a10 + c730: 9400 ld.w r0, (r4, 0x0) + c732: e3ffc193 bsr 0x4a58 // 4a58 + c736: c1807420 psrset ee, ie + c73a: 3001 movi r0, 1 + c73c: 07a3 br 0xc682 // c682 + c73e: 3b41 cmpnei r3, 1 + c740: 0806 bt 0xc74c // c74c + c742: 3303 movi r3, 3 + c744: dc6e000b st.b r3, (r14, 0xb) + c748: 127d lrw r3, 0x16e3600 // c8bc + c74a: 07a8 br 0xc69a // c69a + c74c: 3b42 cmpnei r3, 2 + c74e: 0806 bt 0xc75a // c75a + c750: 3301 movi r3, 1 + c752: dc6e000b st.b r3, (r14, 0xb) + c756: 127b lrw r3, 0xb71b00 // c8c0 + c758: 07a1 br 0xc69a // c69a + c75a: 3b43 cmpnei r3, 3 + c75c: 0806 bt 0xc768 // c768 + c75e: 3300 movi r3, 0 + c760: dc6e000b st.b r3, (r14, 0xb) + c764: 1278 lrw r3, 0x5b8d80 // c8c4 + c766: 079a br 0xc69a // c69a + c768: 3b44 cmpnei r3, 4 + c76a: 0809 bt 0xc77c // c77c + c76c: 3300 movi r3, 0 + c76e: dc6e000b st.b r3, (r14, 0xb) + c772: 1276 lrw r3, 0x54c720 // c8c8 + c774: b863 st.w r3, (r14, 0xc) + c776: 3380 movi r3, 128 + c778: 4369 lsli r3, r3, 9 + c77a: 0793 br 0xc6a0 // c6a0 + c77c: 3b45 cmpnei r3, 5 + c77e: 0806 bt 0xc78a // c78a + c780: 3300 movi r3, 0 + c782: dc6e000b st.b r3, (r14, 0xb) + c786: 1272 lrw r3, 0x3ffed0 // c8cc + c788: 07f6 br 0xc774 // c774 + c78a: 3b46 cmpnei r3, 6 + c78c: 0806 bt 0xc798 // c798 + c78e: 3300 movi r3, 0 + c790: dc6e000b st.b r3, (r14, 0xb) + c794: 126f lrw r3, 0x1fff68 // c8d0 + c796: 07ef br 0xc774 // c774 + c798: 3b47 cmpnei r3, 7 + c79a: 0b84 bt 0xc6a2 // c6a2 + c79c: 3300 movi r3, 0 + c79e: dc6e000b st.b r3, (r14, 0xb) + c7a2: 126d lrw r3, 0x1ffb8 // c8d4 + c7a4: 07e8 br 0xc774 // c774 + c7a6: 9560 ld.w r3, (r5, 0x0) + c7a8: 3101 movi r1, 1 + c7aa: 9440 ld.w r2, (r4, 0x0) + c7ac: b321 st.w r1, (r3, 0x4) + c7ae: b220 st.w r1, (r2, 0x0) + c7b0: 3100 movi r1, 0 + c7b2: b327 st.w r1, (r3, 0x1c) + c7b4: 3004 movi r0, 4 + c7b6: b225 st.w r1, (r2, 0x14) + c7b8: 932e ld.w r1, (r3, 0x38) + c7ba: 6840 and r1, r0 + c7bc: 3940 cmpnei r1, 0 + c7be: 0ffd bf 0xc7b8 // c7b8 + c7c0: 9225 ld.w r1, (r2, 0x14) + c7c2: b82a st.w r1, (r14, 0x28) + c7c4: 3100 movi r1, 0 + c7c6: b310 st.w r0, (r3, 0x40) + c7c8: b327 st.w r1, (r3, 0x1c) + c7ca: 3004 movi r0, 4 + c7cc: b225 st.w r1, (r2, 0x14) + c7ce: 932e ld.w r1, (r3, 0x38) + c7d0: 6840 and r1, r0 + c7d2: 3940 cmpnei r1, 0 + c7d4: 0ffd bf 0xc7ce // c7ce + c7d6: 9225 ld.w r1, (r2, 0x14) + c7d8: b82b st.w r1, (r14, 0x2c) + c7da: 3100 movi r1, 0 + c7dc: b310 st.w r0, (r3, 0x40) + c7de: b327 st.w r1, (r3, 0x1c) + c7e0: 3004 movi r0, 4 + c7e2: b225 st.w r1, (r2, 0x14) + c7e4: 932e ld.w r1, (r3, 0x38) + c7e6: 6840 and r1, r0 + c7e8: 3940 cmpnei r1, 0 + c7ea: 0ffd bf 0xc7e4 // c7e4 + c7ec: 9225 ld.w r1, (r2, 0x14) + c7ee: b82c st.w r1, (r14, 0x30) + c7f0: b310 st.w r0, (r3, 0x40) + c7f2: 982b ld.w r1, (r14, 0x2c) + c7f4: 980c ld.w r0, (r14, 0x30) + c7f6: 6040 addu r1, r0 + c7f8: b829 st.w r1, (r14, 0x24) + c7fa: 9829 ld.w r1, (r14, 0x24) + c7fc: 4921 lsri r1, r1, 1 + c7fe: b829 st.w r1, (r14, 0x24) + c800: 3100 movi r1, 0 + c802: b321 st.w r1, (r3, 0x4) + c804: b220 st.w r1, (r2, 0x0) + c806: b327 st.w r1, (r3, 0x1c) + c808: b225 st.w r1, (r2, 0x14) + c80a: d86e0009 ld.b r3, (r14, 0x9) + c80e: 3b42 cmpnei r3, 2 + c810: 9849 ld.w r2, (r14, 0x24) + c812: 082c bt 0xc86a // c86a + c814: 1171 lrw r3, 0x7ff // c8d8 + c816: 648c cmphs r3, r2 + c818: 0c03 bf 0xc81e // c81e + c81a: 3300 movi r3, 0 + c81c: 040f br 0xc83a // c83a + c81e: 9849 ld.w r2, (r14, 0x24) + c820: 9866 ld.w r3, (r14, 0x18) + c822: 648c cmphs r3, r2 + c824: 080e bt 0xc840 // c840 + c826: 9868 ld.w r3, (r14, 0x20) + c828: 9847 ld.w r2, (r14, 0x1c) + c82a: 60ca subu r3, r2 + c82c: b868 st.w r3, (r14, 0x20) + c82e: 32fe movi r2, 254 + c830: 9868 ld.w r3, (r14, 0x20) + c832: 4248 lsli r2, r2, 8 + c834: 68c8 and r3, r2 + c836: 3b40 cmpnei r3, 0 + c838: 0812 bt 0xc85c // c85c + c83a: dc6e000a st.b r3, (r14, 0xa) + c83e: 0721 br 0xc680 // c680 + c840: 9849 ld.w r2, (r14, 0x24) + c842: 9865 ld.w r3, (r14, 0x14) + c844: 64c8 cmphs r2, r3 + c846: 0829 bt 0xc898 // c898 + c848: 9868 ld.w r3, (r14, 0x20) + c84a: 9847 ld.w r2, (r14, 0x1c) + c84c: 60c8 addu r3, r2 + c84e: b868 st.w r3, (r14, 0x20) + c850: 33fe movi r3, 254 + c852: 9848 ld.w r2, (r14, 0x20) + c854: 4368 lsli r3, r3, 8 + c856: 688c and r2, r3 + c858: 64ca cmpne r2, r3 + c85a: 0fe0 bf 0xc81a // c81a + c85c: 9660 ld.w r3, (r6, 0x0) + c85e: 9848 ld.w r2, (r14, 0x20) + c860: b354 st.w r2, (r3, 0x50) + c862: 3001 movi r0, 1 + c864: e3ffc65c bsr 0x551c // 551c + c868: 075e br 0xc724 // c724 + c86a: 9866 ld.w r3, (r14, 0x18) + c86c: 648c cmphs r3, r2 + c86e: 0809 bt 0xc880 // c880 + c870: 9868 ld.w r3, (r14, 0x20) + c872: 9847 ld.w r2, (r14, 0x1c) + c874: 60ca subu r3, r2 + c876: b868 st.w r3, (r14, 0x20) + c878: 32ff movi r2, 255 + c87a: 9868 ld.w r3, (r14, 0x20) + c87c: 4250 lsli r2, r2, 16 + c87e: 07db br 0xc834 // c834 + c880: 9849 ld.w r2, (r14, 0x24) + c882: 9865 ld.w r3, (r14, 0x14) + c884: 64c8 cmphs r2, r3 + c886: 0809 bt 0xc898 // c898 + c888: 9868 ld.w r3, (r14, 0x20) + c88a: 9847 ld.w r2, (r14, 0x1c) + c88c: 60c8 addu r3, r2 + c88e: b868 st.w r3, (r14, 0x20) + c890: 33ff movi r3, 255 + c892: 9848 ld.w r2, (r14, 0x20) + c894: 4370 lsli r3, r3, 16 + c896: 07e0 br 0xc856 // c856 + c898: 3300 movi r3, 0 + c89a: dc6e000a st.b r3, (r14, 0xa) + c89e: 07e2 br 0xc862 // c862 + c8a0: 2000005c .long 0x2000005c + c8a4: 2000000c .long 0x2000000c + c8a8: 02dc6c00 .long 0x02dc6c00 + c8ac: 0000ffff .long 0x0000ffff + c8b0: 20000014 .long 0x20000014 + c8b4: be9c0005 .long 0xbe9c0005 + c8b8: 00030010 .long 0x00030010 + c8bc: 016e3600 .long 0x016e3600 + c8c0: 00b71b00 .long 0x00b71b00 + c8c4: 005b8d80 .long 0x005b8d80 + c8c8: 0054c720 .long 0x0054c720 + c8cc: 003ffed0 .long 0x003ffed0 + c8d0: 001fff68 .long 0x001fff68 + c8d4: 0001ffb8 .long 0x0001ffb8 + c8d8: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V03_20250422.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V03_20250422.map new file mode 100644 index 0000000..8c931f2 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V03_20250422.map @@ -0,0 +1,3406 @@ +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: 569376 (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: 289 + Section header string table index: 286 + +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 001aae 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 000042b0 0022b0 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 000042e8 0022e8 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 0000435c 00235c 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 000043a8 0023a8 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 000043d8 0023d8 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00004460 002460 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00004488 002488 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 000044c4 0024c4 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000044d8 0024d8 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000044f0 0024f0 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00004510 002510 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 0000452c 00252c 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00004548 002548 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00004588 002588 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 000045bc 0025bc 000004 00 AX 0 0 2 + [17] .text.EXI3_Int_En PROGBITS 000045c0 0025c0 000010 00 AX 0 0 4 + [18] .text.EXI4_Int_En PROGBITS 000045d0 0025d0 000010 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000045e0 0025e0 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Int_ PROGBITS 000045ec 0025ec 00000c 00 AX 0 0 4 + [21] .text.SYSCON_Soft PROGBITS 000045f8 0025f8 000014 00 AX 0 0 4 + [22] .text.SYSCON_INT_ PROGBITS 0000460c 00260c 000024 00 AX 0 0 4 + [23] .text.Set_INT_Pri PROGBITS 00004630 002630 000030 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 00004660 002660 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 00004740 002740 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00004754 002754 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00004764 002764 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 00004870 002870 0000fc 00 AX 0 0 4 + [29] .text.GPIOB0_EXI_ PROGBITS 0000496c 00296c 00006c 00 AX 0 0 4 + [30] .text.GPIO_Write_ PROGBITS 000049d8 0029d8 000008 00 AX 0 0 2 + [31] .text.GPIO_Write_ PROGBITS 000049e0 0029e0 000008 00 AX 0 0 2 + [32] .text.GPIO_Revers PROGBITS 000049e8 0029e8 000016 00 AX 0 0 2 + [33] .text.GPIO_Read_S PROGBITS 000049fe 0029fe 000010 00 AX 0 0 2 + [34] .text.LPT_Soft_Re PROGBITS 00004a10 002a10 000014 00 AX 0 0 4 + [35] .text.WWDT_CNT_Lo PROGBITS 00004a24 002a24 000010 00 AX 0 0 4 + [36] .text.BT_DeInit PROGBITS 00004a34 002a34 00001c 00 AX 0 0 2 + [37] .text.BT_Start PROGBITS 00004a50 002a50 000008 00 AX 0 0 2 + [38] .text.BT_Soft_Res PROGBITS 00004a58 002a58 00000a 00 AX 0 0 2 + [39] .text.BT_Configur PROGBITS 00004a62 002a62 000018 00 AX 0 0 2 + [40] .text.BT_ControlS PROGBITS 00004a7a 002a7a 00002c 00 AX 0 0 2 + [41] .text.BT_Period_C PROGBITS 00004aa6 002aa6 000006 00 AX 0 0 2 + [42] .text.BT_ConfigIn PROGBITS 00004aac 002aac 000012 00 AX 0 0 2 + [43] .text.BT1_INT_ENA PROGBITS 00004ac0 002ac0 000010 00 AX 0 0 4 + [44] .text.SIO_DeInit PROGBITS 00004ad0 002ad0 000020 00 AX 0 0 4 + [45] .text.SIO_IO_Init PROGBITS 00004af0 002af0 000060 00 AX 0 0 4 + [46] .text.SIO_TX_Init PROGBITS 00004b50 002b50 000010 00 AX 0 0 4 + [47] .text.SIO_TX_Conf PROGBITS 00004b60 002b60 000050 00 AX 0 0 4 + [48] .text.UART0_DeIni PROGBITS 00004bb0 002bb0 000018 00 AX 0 0 4 + [49] .text.UART1_DeIni PROGBITS 00004bc8 002bc8 000018 00 AX 0 0 4 + [50] .text.UART2_DeIni PROGBITS 00004be0 002be0 000018 00 AX 0 0 4 + [51] .text.UART0_Int_E PROGBITS 00004bf8 002bf8 00001c 00 AX 0 0 4 + [52] .text.UART2_Int_E PROGBITS 00004c14 002c14 00001c 00 AX 0 0 4 + [53] .text.UART_IO_Ini PROGBITS 00004c30 002c30 0000ec 00 AX 0 0 4 + [54] .text.UARTInit PROGBITS 00004d1c 002d1c 000010 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 00004d2c 002d2c 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 00004d3c 002d3c 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 00004d5c 002d5c 000028 00 AX 0 0 4 + [58] .text.ADC12_RESET PROGBITS 00004d84 002d84 000064 00 AX 0 0 4 + [59] .text.ADC12_Contr PROGBITS 00004de8 002de8 000010 00 AX 0 0 4 + [60] .text.ADC12_CMD.p PROGBITS 00004df8 002df8 000020 00 AX 0 0 4 + [61] .text.ADC12_CLK_C PROGBITS 00004e18 002e18 00002c 00 AX 0 0 4 + [62] .text.ADC12_Softw PROGBITS 00004e44 002e44 00000a 00 AX 0 0 2 + [63] .text.ADC12_CMD PROGBITS 00004e50 002e50 000028 00 AX 0 0 4 + [64] .text.ADC12_ready PROGBITS 00004e78 002e78 000014 00 AX 0 0 4 + [65] .text.ADC12_SEQEN PROGBITS 00004e8c 002e8c 000018 00 AX 0 0 4 + [66] .text.ADC12_DATA_ PROGBITS 00004ea4 002ea4 000014 00 AX 0 0 4 + [67] .text.ADC12_Confi PROGBITS 00004eb8 002eb8 00007c 00 AX 0 0 4 + [68] .text.ADC12_Confi PROGBITS 00004f34 002f34 000198 00 AX 0 0 4 + [69] .text.ADC12_Conve PROGBITS 000050cc 0030cc 000180 00 AX 0 0 4 + [70] .text.Page_Progra PROGBITS 0000524c 00324c 0000a0 00 AX 0 0 4 + [71] .text.ReadDataArr PROGBITS 000052ec 0032ec 00002a 00 AX 0 0 2 + [72] .text.tk_paramete PROGBITS 00005318 003318 000140 00 AX 0 0 4 + [73] .text.CORET_DeIni PROGBITS 00005458 003458 000018 00 AX 0 0 4 + [74] .text.CORET_Int_E PROGBITS 00005470 003470 000018 00 AX 0 0 4 + [75] .text.CORET_start PROGBITS 00005488 003488 000010 00 AX 0 0 4 + [76] .text.CORET_CLKSO PROGBITS 00005498 003498 000010 00 AX 0 0 4 + [77] .text.CORET_TICKI PROGBITS 000054a8 0034a8 000010 00 AX 0 0 4 + [78] .text.CORET_reloa PROGBITS 000054b8 0034b8 000010 00 AX 0 0 4 + [79] .text.startup.mai PROGBITS 000054c8 0034c8 000054 00 AX 0 0 4 + [80] .text.delay_nms PROGBITS 0000551c 00351c 00002c 00 AX 0 0 2 + [81] .text.delay_nus PROGBITS 00005548 003548 000022 00 AX 0 0 2 + [82] .text.GPIO_CONFIG PROGBITS 0000556c 00356c 00008c 00 AX 0 0 4 + [83] .text.BT_CONFIG PROGBITS 000055f8 0035f8 000060 00 AX 0 0 4 + [84] .text.SYSCON_CONF PROGBITS 00005658 003658 000062 00 AX 0 0 2 + [85] .text.APT32F102_i PROGBITS 000056bc 0036bc 000098 00 AX 0 0 4 + [86] .text.SYSCONIntHa PROGBITS 00005754 003754 0000f0 00 AX 0 0 4 + [87] .text.IFCIntHandl PROGBITS 00005844 003844 000068 00 AX 0 0 4 + [88] .text.ADCIntHandl PROGBITS 000058ac 0038ac 000068 00 AX 0 0 4 + [89] .text.EPT0IntHand PROGBITS 00005914 003914 0001ac 00 AX 0 0 4 + [90] .text.WWDTHandler PROGBITS 00005ac0 003ac0 000034 00 AX 0 0 4 + [91] .text.GPT0IntHand PROGBITS 00005af4 003af4 000080 00 AX 0 0 4 + [92] .text.RTCIntHandl PROGBITS 00005b74 003b74 000070 00 AX 0 0 4 + [93] .text.UART0IntHan PROGBITS 00005be4 003be4 00003c 00 AX 0 0 4 + [94] .text.UART1IntHan PROGBITS 00005c20 003c20 00003c 00 AX 0 0 4 + [95] .text.UART2IntHan PROGBITS 00005c5c 003c5c 000094 00 AX 0 0 4 + [96] .text.SPI0IntHand PROGBITS 00005cf0 003cf0 0000e8 00 AX 0 0 4 + [97] .text.SIO0IntHand PROGBITS 00005dd8 003dd8 000054 00 AX 0 0 4 + [98] .text.EXI0IntHand PROGBITS 00005e2c 003e2c 000030 00 AX 0 0 4 + [99] .text.EXI1IntHand PROGBITS 00005e5c 003e5c 000030 00 AX 0 0 4 + [100] .text.EXI2to3IntH PROGBITS 00005e8c 003e8c 000048 00 AX 0 0 4 + [101] .text.EXI4to9IntH PROGBITS 00005ed4 003ed4 00006c 00 AX 0 0 4 + [102] .text.EXI10to15In PROGBITS 00005f40 003f40 000080 00 AX 0 0 4 + [103] .text.LPTIntHandl PROGBITS 00005fc0 003fc0 000034 00 AX 0 0 4 + [104] .text.BT0IntHandl PROGBITS 00005ff4 003ff4 00004c 00 AX 0 0 4 + [105] .text.BT1IntHandl PROGBITS 00006040 004040 000070 00 AX 0 0 4 + [106] .text.PriviledgeV PROGBITS 000060b0 0040b0 000002 00 AX 0 0 2 + [107] .text.PendTrapHan PROGBITS 000060b2 0040b2 000008 00 AX 0 0 2 + [108] .text.Trap3Handle PROGBITS 000060ba 0040ba 000008 00 AX 0 0 2 + [109] .text.Trap2Handle PROGBITS 000060c2 0040c2 000008 00 AX 0 0 2 + [110] .text.Trap1Handle PROGBITS 000060ca 0040ca 000008 00 AX 0 0 2 + [111] .text.Trap0Handle PROGBITS 000060d2 0040d2 000008 00 AX 0 0 2 + [112] .text.UnrecExecpH PROGBITS 000060da 0040da 000008 00 AX 0 0 2 + [113] .text.BreakPointH PROGBITS 000060e2 0040e2 000008 00 AX 0 0 2 + [114] .text.AccessErrHa PROGBITS 000060ea 0040ea 000008 00 AX 0 0 2 + [115] .text.IllegalInst PROGBITS 000060f2 0040f2 000008 00 AX 0 0 2 + [116] .text.MisalignedH PROGBITS 000060fa 0040fa 000008 00 AX 0 0 2 + [117] .text.CNTAIntHand PROGBITS 00006102 004102 000008 00 AX 0 0 2 + [118] .text.I2CIntHandl PROGBITS 0000610a 00410a 000008 00 AX 0 0 2 + [119] .text.__divsi3 PROGBITS 00006114 004114 000024 00 AX 0 0 4 + [120] .text.__udivsi3 PROGBITS 00006138 004138 000024 00 AX 0 0 4 + [121] .text.__modsi3 PROGBITS 0000615c 00415c 000024 00 AX 0 0 4 + [122] .text.__umodsi3 PROGBITS 00006180 004180 000024 00 AX 0 0 4 + [123] .text.CK_CPU_EnAl PROGBITS 000061a4 0041a4 000006 00 AX 0 0 2 + [124] .text.CK_CPU_DisA PROGBITS 000061aa 0041aa 000006 00 AX 0 0 2 + [125] .text.UARTx_Init PROGBITS 000061b0 0041b0 000120 00 AX 0 0 4 + [126] .text.UART2_RecvI PROGBITS 000062d0 0042d0 000068 00 AX 0 0 4 + [127] .text.UART2_TASK PROGBITS 00006338 004338 0000cc 00 AX 0 0 4 + [128] .text.BUS485_Send PROGBITS 00006404 004404 0000c4 00 AX 0 0 4 + [129] .text.MultSend_Ta PROGBITS 000064c8 0044c8 000068 00 AX 0 0 4 + [130] .text.Set_GroupSe PROGBITS 00006530 004530 00005c 00 AX 0 0 4 + [131] .text.Clear_SendF PROGBITS 0000658c 00458c 000010 00 AX 0 0 4 + [132] .text.BUS485Send_ PROGBITS 0000659c 00459c 000048 00 AX 0 0 4 + [133] .text.BusIdle_Tas PROGBITS 000065e4 0045e4 000040 00 AX 0 0 4 + [134] .text.BusBusy_Tas PROGBITS 00006624 004624 000058 00 AX 0 0 4 + [135] .text.Dbg_Println PROGBITS 0000667c 00467c 00000c 00 AX 0 0 2 + [136] .text.Dbg_Print_B PROGBITS 00006688 004688 000002 00 AX 0 0 2 + [137] .text.Touch_Key_I PROGBITS 0000668c 00468c 000068 00 AX 0 0 4 + [138] .text.TouchKey_RS PROGBITS 000066f4 0046f4 000254 00 AX 0 0 4 + [139] .text.Get_TouchKe PROGBITS 00006948 004948 00003c 00 AX 0 0 4 + [140] .text.Touch_Key_E PROGBITS 00006984 004984 0000ac 00 AX 0 0 4 + [141] .text.TouchKey_Se PROGBITS 00006a30 004a30 00003c 00 AX 0 0 4 + [142] .text.Touch_Key_T PROGBITS 00006a6c 004a6c 0000f0 00 AX 0 0 4 + [143] .text.TouchKey_Ch PROGBITS 00006b5c 004b5c 000018 00 AX 0 0 2 + [144] .text.TouchKey_Co PROGBITS 00006b74 004b74 000070 00 AX 0 0 4 + [145] .text.TouchKey_Se PROGBITS 00006be4 004be4 0000b8 00 AX 0 0 4 + [146] .text.TouchKey_Re PROGBITS 00006c9c 004c9c 0000f8 00 AX 0 0 4 + [147] .text.TouchKey_Du PROGBITS 00006d94 004d94 000038 00 AX 0 0 4 + [148] .text.TouchKey_Re PROGBITS 00006dcc 004dcc 0000b0 00 AX 0 0 4 + [149] .text.TouchKey_Re PROGBITS 00006e7c 004e7c 00001a 00 AX 0 0 2 + [150] .text.TouchKey_Co PROGBITS 00006e98 004e98 0000d8 00 AX 0 0 4 + [151] .text.EEPROM_Chec PROGBITS 00006f70 004f70 000016 00 AX 0 0 2 + [152] .text.EEPROM_Read PROGBITS 00006f88 004f88 000074 00 AX 0 0 4 + [153] .text.EEPROM_Writ PROGBITS 00006ffc 004ffc 000044 00 AX 0 0 4 + [154] .text.EEPROM_Vali PROGBITS 00007040 005040 00008c 00 AX 0 0 4 + [155] .text.EEPROM_Defa PROGBITS 000070cc 0050cc 000020 00 AX 0 0 2 + [156] .text.EEPROM_Writ PROGBITS 000070ec 0050ec 00006c 00 AX 0 0 4 + [157] .text.EEPROM_Read PROGBITS 00007158 005158 0000ac 00 AX 0 0 4 + [158] .text.EEPROM_Vali PROGBITS 00007204 005204 0000e4 00 AX 0 0 4 + [159] .text.EEPROM_Defa PROGBITS 000072e8 0052e8 000070 00 AX 0 0 2 + [160] .text.EEPROM_Touc PROGBITS 00007358 005358 000080 00 AX 0 0 4 + [161] .text.EEPROM_Read PROGBITS 000073d8 0053d8 000070 00 AX 0 0 4 + [162] .text.EEPROM_Writ PROGBITS 00007448 005448 000040 00 AX 0 0 2 + [163] .text.EEPROM_Defa PROGBITS 00007488 005488 000038 00 AX 0 0 4 + [164] .text.EEPROM_Vali PROGBITS 000074c0 0054c0 000058 00 AX 0 0 4 + [165] .text.EEPROM_Init PROGBITS 00007518 005518 000090 00 AX 0 0 4 + [166] .text.ADC_Init PROGBITS 000075a8 0055a8 00005c 00 AX 0 0 4 + [167] .text.Thermistor_ PROGBITS 00007604 005604 000048 00 AX 0 0 4 + [168] .text.Calculate_A PROGBITS 0000764c 00564c 00008c 00 AX 0 0 4 + [169] .text.Get_Temp_Va PROGBITS 000076d8 0056d8 000010 00 AX 0 0 4 + [170] .text.Gather_Temp PROGBITS 000076e8 0056e8 0000a8 00 AX 0 0 4 + [171] .text.ADC_Sample_ PROGBITS 00007790 005790 0000a8 00 AX 0 0 4 + [172] .text.Contol_Swit PROGBITS 00007838 005838 0003ea 00 AX 0 0 4 + [173] .text.Contol_Swit PROGBITS 00007c24 005c24 0003ea 00 AX 0 0 4 + [174] .text.Contol_Swit PROGBITS 00008010 006010 000028 00 AX 0 0 4 + [175] .text.Get_TM1812_ PROGBITS 00008038 006038 000044 00 AX 0 0 4 + [176] .text.TimeCall_SI PROGBITS 0000807c 00607c 000120 00 AX 0 0 4 + [177] .text.TimeCall_SI PROGBITS 0000819c 00619c 0000a8 00 AX 0 0 4 + [178] .text.Tm1812_Task PROGBITS 00008244 006244 00005c 00 AX 0 0 4 + [179] .text.Tm1812_Ch_I PROGBITS 000082a0 0062a0 000024 00 AX 0 0 4 + [180] .text.TM1812_Cont PROGBITS 000082c4 0062c4 000070 00 AX 0 0 4 + [181] .text.TM1812_Cont PROGBITS 00008334 006334 000064 00 AX 0 0 4 + [182] .text.TM1812_LED_ PROGBITS 00008398 006398 000058 00 AX 0 0 4 + [183] .text.HT1621_WR_D PROGBITS 000083f0 0063f0 000048 00 AX 0 0 4 + [184] .text.HT1621_WR_C PROGBITS 00008438 006438 000030 00 AX 0 0 4 + [185] .text.HT1621_Init PROGBITS 00008468 006468 0000b4 00 AX 0 0 4 + [186] .text.HT1621_Clea PROGBITS 0000851c 00651c 000050 00 AX 0 0 4 + [187] .text.HT1621_ALLO PROGBITS 0000856c 00656c 000040 00 AX 0 0 4 + [188] .text.HT1621_Refr PROGBITS 000085ac 0065ac 00004c 00 AX 0 0 4 + [189] .text.Set_Tempera PROGBITS 000085f8 0065f8 0000d0 00 AX 0 0 4 + [190] .text.Local_Tempe PROGBITS 000086c8 0066c8 0000d0 00 AX 0 0 4 + [191] .text.Control_Mod PROGBITS 00008798 006798 000244 00 AX 0 0 4 + [192] .text.Control_win PROGBITS 000089dc 0069dc 0000d0 00 AX 0 0 4 + [193] .text.Control_Pro PROGBITS 00008aac 006aac 0000a4 00 AX 0 0 4 + [194] .text.Controlled_ PROGBITS 00008b50 006b50 000048 00 AX 0 0 4 + [195] .text.Controlled_ PROGBITS 00008b98 006b98 0000dc 00 AX 0 0 4 + [196] .text.Controlled_ PROGBITS 00008c74 006c74 000030 00 AX 0 0 4 + [197] .text.Set_Device_ PROGBITS 00008ca4 006ca4 00009c 00 AX 0 0 4 + [198] .text.Set_Temp_Di PROGBITS 00008d40 006d40 000064 00 AX 0 0 4 + [199] .text.HT1621_Refr PROGBITS 00008da4 006da4 000090 00 AX 0 0 4 + [200] .text.Boot_Comm_C PROGBITS 00008e34 006e34 000024 00 AX 0 0 4 + [201] .text.Boot_Comm_F PROGBITS 00008e58 006e58 00005c 00 AX 0 0 4 + [202] .text.Boot_Time_R PROGBITS 00008eb4 006eb4 000014 00 AX 0 0 4 + [203] .text.Boot_Comm_U PROGBITS 00008ec8 006ec8 000190 00 AX 0 0 4 + [204] .text.TemCtrl_Ini PROGBITS 00009058 007058 00017c 00 AX 0 0 4 + [205] .text.TemCtrl_Mod PROGBITS 000091d4 0071d4 00004c 00 AX 0 0 4 + [206] .text.TemCtrl_Fan PROGBITS 00009220 007220 000050 00 AX 0 0 4 + [207] .text.TemCtrl_Tem PROGBITS 00009270 007270 000030 00 AX 0 0 4 + [208] .text.TemCtrl_Tem PROGBITS 000092a0 0072a0 000030 00 AX 0 0 4 + [209] .text.TemCtrl_OnO PROGBITS 000092d0 0072d0 000034 00 AX 0 0 4 + [210] .text.Tem_Valve_C PROGBITS 00009304 007304 0000cc 00 AX 0 0 4 + [211] .text.TemCtrl_Pro PROGBITS 000093d0 0073d0 000178 00 AX 0 0 4 + [212] .text.KEY1_Model_ PROGBITS 00009548 007548 0000e0 00 AX 0 0 4 + [213] .text.KEY2_Fan_Pr PROGBITS 00009628 007628 0000e0 00 AX 0 0 4 + [214] .text.KEY3_TempAd PROGBITS 00009708 007708 000110 00 AX 0 0 4 + [215] .text.KEY3_Long_P PROGBITS 00009818 007818 000078 00 AX 0 0 4 + [216] .text.KEY4_TempDe PROGBITS 00009890 007890 000110 00 AX 0 0 4 + [217] .text.KEY4_Long_P PROGBITS 000099a0 0079a0 000078 00 AX 0 0 4 + [218] .text.KEY5_OnOff_ PROGBITS 00009a18 007a18 000084 00 AX 0 0 4 + [219] .text.TempCtrl_On PROGBITS 00009a9c 007a9c 000054 00 AX 0 0 4 + [220] .text.DisPlay_Ini PROGBITS 00009af0 007af0 000020 00 AX 0 0 4 + [221] .text.DisPlay_Tas PROGBITS 00009b10 007b10 0004dc 00 AX 0 0 4 + [222] .text.Debug_Init PROGBITS 00009fec 007fec 00003c 00 AX 0 0 4 + [223] .text.Dev_SaveDat PROGBITS 0000a028 008028 0000a8 00 AX 0 0 4 + [224] .text.Debug_Task PROGBITS 0000a0d0 0080d0 00007c 00 AX 0 0 4 + [225] .text.BLV_RLY_Ctr PROGBITS 0000a14c 00814c 000028 00 AX 0 0 4 + [226] .text.Relay_Init PROGBITS 0000a174 008174 000028 00 AX 0 0 4 + [227] .text.Relay_High PROGBITS 0000a19c 00819c 00001c 00 AX 0 0 2 + [228] .text.Relay_Mid PROGBITS 0000a1b8 0081b8 00001c 00 AX 0 0 2 + [229] .text.Relay_Low PROGBITS 0000a1d4 0081d4 00001c 00 AX 0 0 2 + [230] .text.Relay_Stop PROGBITS 0000a1f0 0081f0 00001c 00 AX 0 0 2 + [231] .text.BLV_RLY_Ctr PROGBITS 0000a20c 00820c 000014 00 AX 0 0 2 + [232] .text.RLY_Direct_ PROGBITS 0000a220 008220 0000c8 00 AX 0 0 4 + [233] .text.RLY_Zero_Co PROGBITS 0000a2e8 0082e8 000098 00 AX 0 0 4 + [234] .text.NetCRC16_Ch PROGBITS 0000a380 008380 00004c 00 AX 0 0 4 + [235] .text.GetCRC16 PROGBITS 0000a3cc 0083cc 00003c 00 AX 0 0 4 + [236] .text.SOR_CRC PROGBITS 0000a408 008408 000016 00 AX 0 0 2 + [237] .text.Rs485_ASend PROGBITS 0000a420 008420 000100 00 AX 0 0 4 + [238] .text.Rs485AskCyc PROGBITS 0000a520 008520 0000fc 00 AX 0 0 4 + [239] .text.Rs485AskCtr PROGBITS 0000a61c 00861c 00005c 00 AX 0 0 4 + [240] .text.Rs485AskRea PROGBITS 0000a678 008678 000068 00 AX 0 0 4 + [241] .text.Rs485_DevPo PROGBITS 0000a6e0 0086e0 000018 00 AX 0 0 2 + [242] .text.Temp_Rec_An PROGBITS 0000a6f8 0086f8 0001b0 00 AX 0 0 4 + [243] .text.Tem_Rs485_R PROGBITS 0000a8a8 0088a8 0000cc 00 AX 0 0 4 + [244] .text.TK_ConfigIn PROGBITS 0000a974 008974 000010 00 AX 0 0 4 + [245] .text.tk_clk_conf PROGBITS 0000a984 008984 000028 00 AX 0 0 4 + [246] .text.TK_con0_con PROGBITS 0000a9ac 0089ac 0000bc 00 AX 0 0 4 + [247] .text.tk_io_enabl PROGBITS 0000aa68 008a68 000134 00 AX 0 0 4 + [248] .text.TK_Single_L PROGBITS 0000ab9c 008b9c 000128 00 AX 0 0 4 + [249] .text.TK_Sampling PROGBITS 0000acc4 008cc4 0000cc 00 AX 0 0 4 + [250] .text.get_key_num PROGBITS 0000ad90 008d90 000028 00 AX 0 0 4 + [251] .text.get_key_num PROGBITS 0000adb8 008db8 000028 00 AX 0 0 4 + [252] .text.get_key_num PROGBITS 0000ade0 008de0 000028 00 AX 0 0 4 + [253] .text.get_key_num PROGBITS 0000ae08 008e08 000028 00 AX 0 0 4 + [254] .text.TK_Baseline PROGBITS 0000ae30 008e30 000150 00 AX 0 0 4 + [255] .text.TK_Baseline PROGBITS 0000af80 008f80 000148 00 AX 0 0 4 + [256] .text.tk_poweron_ PROGBITS 0000b0c8 0090c8 000124 00 AX 0 0 4 + [257] .text.TK_Scan_Sta PROGBITS 0000b1ec 0091ec 000068 00 AX 0 0 4 + [258] .text.TK_Keymap_p PROGBITS 0000b254 009254 000870 00 AX 0 0 4 + [259] .text.TK_overflow PROGBITS 0000bac4 009ac4 000128 00 AX 0 0 4 + [260] .text.TK_Baseline PROGBITS 0000bbec 009bec 0004d0 00 AX 0 0 4 + [261] .text.TK_result_p PROGBITS 0000c0bc 00a0bc 000130 00 AX 0 0 4 + [262] .text.get_key_seq PROGBITS 0000c1ec 00a1ec 000038 00 AX 0 0 4 + [263] .text.CORET_CONFI PROGBITS 0000c224 00a224 000038 00 AX 0 0 4 + [264] .text.tk_chxval_s PROGBITS 0000c25c 00a25c 00001c 00 AX 0 0 4 + [265] .text.tk_freq_par PROGBITS 0000c278 00a278 0000ac 00 AX 0 0 4 + [266] .text.tk_reserved PROGBITS 0000c324 00a324 000028 00 AX 0 0 4 + [267] .text.TKEYIntHand PROGBITS 0000c34c 00a34c 0000a0 00 AX 0 0 4 + [268] .text.CORETHandle PROGBITS 0000c3ec 00a3ec 00015c 00 AX 0 0 4 + [269] .text.tk_init PROGBITS 0000c548 00a548 000110 00 AX 0 0 4 + [270] .text.std_clk_cal PROGBITS 0000c658 00a658 000284 00 AX 0 0 4 + [271] .RomCode PROGBITS 0000c8dc 00c0b0 000000 00 W 0 0 1 + [272] .rodata PROGBITS 0000c8dc 00a8dc 0008ec 00 A 0 0 4 + [273] .data PROGBITS 20000000 00c000 0000b0 00 WA 0 0 4 + [274] .bss NOBITS 200000b0 00c0b0 000b1c 00 WA 0 0 4 + [275] .csky.attributes CSKY_ATTRIBUTES 00000000 00c0b0 000022 00 0 0 1 + [276] .comment PROGBITS 00000000 00c0d2 000042 01 MS 0 0 1 + [277] .csky_stack_size PROGBITS 00000000 00c120 000b9c 00 0 0 16 + [278] .debug_line PROGBITS 00000000 00ccbc 007132 00 0 0 1 + [279] .debug_info PROGBITS 00000000 013dee 054409 00 0 0 1 + [280] .debug_abbrev PROGBITS 00000000 0681f7 0049bc 00 0 0 1 + [281] .debug_aranges PROGBITS 00000000 06cbb8 001220 00 0 0 8 + [282] .debug_ranges PROGBITS 00000000 06ddd8 001230 00 0 0 1 + [283] .debug_str PROGBITS 00000000 06f008 00a5c8 01 MS 0 0 1 + [284] .debug_frame PROGBITS 00000000 0795d0 002c5c 00 0 0 4 + [285] .debug_loc PROGBITS 00000000 07c22c 004721 00 0 0 1 + [286] .shstrtab STRTAB 00000000 0896c7 001957 00 0 0 1 + [287] .symtab SYMTAB 00000000 080950 006c10 10 288 1242 4 + [288] .strtab STRTAB 00000000 087560 002167 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 0x0b1c8 0x0b1c8 R E 0x1000 + LOAD 0x00c000 0x20000000 0x0000d1c8 0x000b0 0x00bcc 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.EXI3_Int_Enable .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_Init .text.GPIO_PullHigh_Init .text.GPIO_DriveStrength_EN .text.GPIO_IntGroup_Set .text.GPIOA0_EXI_Init .text.GPIOB0_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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.TouchKey_RS485_Printf_2 .text.Get_TouchKey_CH_State .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.tk_io_enable .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Baseline_prog .text.TK_Baseline_prog2 .text.tk_poweron_data_fineturn .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_freq_para_init .text.tk_reserved_init .text.TKEYIntHandler .text.CORETHandler .text.tk_init .text.std_clk_calib .rodata + 01 .data .bss +====================================================================== +Csky GNU Linker + +====================================================================== + +Section Cross References + + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI3_Int_Enable) for EXI3_Int_Enable + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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/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.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.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_uart.o(.text.UARTx_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) for GPIOB0_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) 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_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) 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_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + 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/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_touch_key.o(.text.TouchKey_RS485_Printf_2) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) 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/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + 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.EXI4to9IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_2) for TouchKey_RS485_Printf_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + 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_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/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_MCUDevInfo) for EEPROM_Validate_MCUDevInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + 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.UART2_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) for tk_io_enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog) for TK_Baseline_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog2) for TK_Baseline_prog2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) for tk_poweron_data_fineturn + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) for tk_freq_para_init + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) for tk_init + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_f_1_18.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/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_2) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2893 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_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_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_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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (100 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (148 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (92 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (144 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_RS485_Printf(Obj/SYSTEM_touch_key.o), (260 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 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), (264 bytes). + Removing .text.Boot_Function_Init(Obj/SYSTEM_Bootload_fun.o), (180 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (107 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_f_1_18.o), (0 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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). + +600 unused seciton(s) (total 138702 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_f_1_18.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 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_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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 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 0x00003548 0 .text + $t 0x00003548 0 .text + $d 0x0000357c 0 .text + _fpadd_parts 0x00003580 F 724 .text + $d 0x00003580 0 .text + $t 0x00003580 0 .text + $d 0x00003848 0 .text + $t 0x00003854 0 .text + $d 0x000038bc 0 .text + $t 0x000038bc 0 .text + $d 0x00003ae4 0 .text + $d 0x00003af0 0 .text + $t 0x00003af0 0 .text + $d 0x00003c40 0 .text + $d 0x00003c44 0 .text + $t 0x00003c44 0 .text + $d 0x00003c80 0 .text + $t 0x00003c80 0 .text + $d 0x00003cbc 0 .text + $t 0x00003cbc 0 .text + $d 0x00003cf8 0 .text + $t 0x00003cf8 0 .text + $d 0x00003d64 0 .text + $d 0x00003d68 0 .text + $t 0x00003d68 0 .text + $d 0x00003dd4 0 .text + $d 0x00003dd8 0 .text + $t 0x00003dd8 0 .text + $d 0x00003e2c 0 .text + $t 0x00003e2c 0 .text + $d 0x00003e70 0 .text + $t 0x00003e70 0 .text + $d 0x00003ea4 0 .text + $d 0x00003eb0 0 .text + $t 0x00003eb0 0 .text + $d 0x00004038 0 .text + $d 0x0000404c 0 .text + $t 0x0000404c 0 .text + $d 0x00004104 0 .text + $d 0x00004110 0 .text + $t 0x00004110 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x00004224 0 .text + $t 0x00004224 0 .text + $d 0x00004288 0 .text + $t 0x00004288 0 .text + $d 0x000042b0 0 .text.__main + $t 0x000042b0 0 .text.__main + $d 0x000042d4 0 .text.__main + SYSCON_General_CMD.part.0 0x000042e8 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x000042e8 0 .text.SYSCON_General_CMD.part.0 + $t 0x000042e8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00004354 0 .text.SYSCON_General_CMD.part.0 + $d 0x0000435c 0 .text.SYSCON_RST_VALUE + $t 0x0000435c 0 .text.SYSCON_RST_VALUE + $d 0x0000438c 0 .text.SYSCON_RST_VALUE + $d 0x000043a8 0 .text.SYSCON_General_CMD + $t 0x000043a8 0 .text.SYSCON_General_CMD + $d 0x000043d4 0 .text.SYSCON_General_CMD + $d 0x000043d8 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x000043d8 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00004450 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00004460 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00004460 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00004484 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00004488 0 .text.SYSCON_WDT_CMD + $t 0x00004488 0 .text.SYSCON_WDT_CMD + $d 0x000044b8 0 .text.SYSCON_WDT_CMD + $d 0x000044c4 0 .text.SYSCON_IWDCNT_Reload + $t 0x000044c4 0 .text.SYSCON_IWDCNT_Reload + $d 0x000044d4 0 .text.SYSCON_IWDCNT_Reload + $d 0x000044d8 0 .text.SYSCON_IWDCNT_Config + $t 0x000044d8 0 .text.SYSCON_IWDCNT_Config + $d 0x000044e8 0 .text.SYSCON_IWDCNT_Config + $d 0x000044f0 0 .text.SYSCON_LVD_Config + $t 0x000044f0 0 .text.SYSCON_LVD_Config + $d 0x00004508 0 .text.SYSCON_LVD_Config + $d 0x00004510 0 .text.LVD_Int_Enable + $t 0x00004510 0 .text.LVD_Int_Enable + $d 0x00004528 0 .text.LVD_Int_Enable + $d 0x0000452c 0 .text.IWDT_Int_Enable + $t 0x0000452c 0 .text.IWDT_Int_Enable + $d 0x00004544 0 .text.IWDT_Int_Enable + $d 0x00004548 0 .text.EXTI_trigger_CMD + $t 0x00004548 0 .text.EXTI_trigger_CMD + $d 0x00004584 0 .text.EXTI_trigger_CMD + $d 0x00004588 0 .text.EXTI_interrupt_CMD + $t 0x00004588 0 .text.EXTI_interrupt_CMD + $d 0x000045b4 0 .text.EXTI_interrupt_CMD + $d 0x000045bc 0 .text.GPIO_EXTI_interrupt + $t 0x000045bc 0 .text.GPIO_EXTI_interrupt + $d 0x000045c0 0 .text.EXI3_Int_Enable + $t 0x000045c0 0 .text.EXI3_Int_Enable + $d 0x000045cc 0 .text.EXI3_Int_Enable + $d 0x000045d0 0 .text.EXI4_Int_Enable + $t 0x000045d0 0 .text.EXI4_Int_Enable + $d 0x000045dc 0 .text.EXI4_Int_Enable + $d 0x000045e0 0 .text.SYSCON_Int_Enable + $t 0x000045e0 0 .text.SYSCON_Int_Enable + $d 0x000045e8 0 .text.SYSCON_Int_Enable + $d 0x000045ec 0 .text.SYSCON_Int_Disable + $t 0x000045ec 0 .text.SYSCON_Int_Disable + $d 0x000045f4 0 .text.SYSCON_Int_Disable + $d 0x000045f8 0 .text.SYSCON_Software_Reset + $t 0x000045f8 0 .text.SYSCON_Software_Reset + $d 0x00004604 0 .text.SYSCON_Software_Reset + $d 0x0000460c 0 .text.SYSCON_INT_Priority + $t 0x0000460c 0 .text.SYSCON_INT_Priority + $d 0x00004624 0 .text.SYSCON_INT_Priority + $d 0x00004630 0 .text.Set_INT_Priority + $t 0x00004630 0 .text.Set_INT_Priority + $d 0x0000465c 0 .text.Set_INT_Priority + $d 0x00004660 0 .text.GPIO_Init + $t 0x00004660 0 .text.GPIO_Init + $d 0x00004672 0 .text.GPIO_Init + $t 0x0000467a 0 .text.GPIO_Init + $d 0x000046d6 0 .text.GPIO_Init + $t 0x000046de 0 .text.GPIO_Init + $d 0x0000472c 0 .text.GPIO_Init + $d 0x00004740 0 .text.GPIO_PullHigh_Init + $t 0x00004740 0 .text.GPIO_PullHigh_Init + $d 0x00004754 0 .text.GPIO_DriveStrength_EN + $t 0x00004754 0 .text.GPIO_DriveStrength_EN + $d 0x00004764 0 .text.GPIO_IntGroup_Set + $t 0x00004764 0 .text.GPIO_IntGroup_Set + $d 0x00004858 0 .text.GPIO_IntGroup_Set + $d 0x00004870 0 .text.GPIOA0_EXI_Init + $t 0x00004870 0 .text.GPIOA0_EXI_Init + $d 0x0000487c 0 .text.GPIOA0_EXI_Init + $t 0x0000488c 0 .text.GPIOA0_EXI_Init + $d 0x00004968 0 .text.GPIOA0_EXI_Init + $d 0x0000496c 0 .text.GPIOB0_EXI_Init + $t 0x0000496c 0 .text.GPIOB0_EXI_Init + $d 0x00004978 0 .text.GPIOB0_EXI_Init + $t 0x0000497e 0 .text.GPIOB0_EXI_Init + $d 0x000049d4 0 .text.GPIOB0_EXI_Init + $d 0x000049d8 0 .text.GPIO_Write_High + $t 0x000049d8 0 .text.GPIO_Write_High + $d 0x000049e0 0 .text.GPIO_Write_Low + $t 0x000049e0 0 .text.GPIO_Write_Low + $d 0x000049e8 0 .text.GPIO_Reverse + $t 0x000049e8 0 .text.GPIO_Reverse + $d 0x000049fe 0 .text.GPIO_Read_Status + $t 0x000049fe 0 .text.GPIO_Read_Status + $d 0x00004a10 0 .text.LPT_Soft_Reset + $t 0x00004a10 0 .text.LPT_Soft_Reset + $d 0x00004a20 0 .text.LPT_Soft_Reset + $d 0x00004a24 0 .text.WWDT_CNT_Load + $t 0x00004a24 0 .text.WWDT_CNT_Load + $d 0x00004a30 0 .text.WWDT_CNT_Load + $d 0x00004a34 0 .text.BT_DeInit + $t 0x00004a34 0 .text.BT_DeInit + $d 0x00004a50 0 .text.BT_Start + $t 0x00004a50 0 .text.BT_Start + $d 0x00004a58 0 .text.BT_Soft_Reset + $t 0x00004a58 0 .text.BT_Soft_Reset + $d 0x00004a62 0 .text.BT_Configure + $t 0x00004a62 0 .text.BT_Configure + $d 0x00004a7a 0 .text.BT_ControlSet_Configure + $t 0x00004a7a 0 .text.BT_ControlSet_Configure + $d 0x00004aa6 0 .text.BT_Period_CMP_Write + $t 0x00004aa6 0 .text.BT_Period_CMP_Write + $d 0x00004aac 0 .text.BT_ConfigInterrupt_CMD + $t 0x00004aac 0 .text.BT_ConfigInterrupt_CMD + $d 0x00004ac0 0 .text.BT1_INT_ENABLE + $t 0x00004ac0 0 .text.BT1_INT_ENABLE + $d 0x00004acc 0 .text.BT1_INT_ENABLE + $d 0x00004ad0 0 .text.SIO_DeInit + $t 0x00004ad0 0 .text.SIO_DeInit + $d 0x00004aec 0 .text.SIO_DeInit + $d 0x00004af0 0 .text.SIO_IO_Init + $t 0x00004af0 0 .text.SIO_IO_Init + $d 0x00004b48 0 .text.SIO_IO_Init + $d 0x00004b50 0 .text.SIO_TX_Init + $t 0x00004b50 0 .text.SIO_TX_Init + $d 0x00004b5c 0 .text.SIO_TX_Init + $d 0x00004b60 0 .text.SIO_TX_Configure + $t 0x00004b60 0 .text.SIO_TX_Configure + $d 0x00004bac 0 .text.SIO_TX_Configure + $d 0x00004bb0 0 .text.UART0_DeInit + $t 0x00004bb0 0 .text.UART0_DeInit + $d 0x00004bc4 0 .text.UART0_DeInit + $d 0x00004bc8 0 .text.UART1_DeInit + $t 0x00004bc8 0 .text.UART1_DeInit + $d 0x00004bdc 0 .text.UART1_DeInit + $d 0x00004be0 0 .text.UART2_DeInit + $t 0x00004be0 0 .text.UART2_DeInit + $d 0x00004bf4 0 .text.UART2_DeInit + $d 0x00004bf8 0 .text.UART0_Int_Enable + $t 0x00004bf8 0 .text.UART0_Int_Enable + $d 0x00004c0c 0 .text.UART0_Int_Enable + $d 0x00004c14 0 .text.UART2_Int_Enable + $t 0x00004c14 0 .text.UART2_Int_Enable + $d 0x00004c28 0 .text.UART2_Int_Enable + $d 0x00004c30 0 .text.UART_IO_Init + $t 0x00004c30 0 .text.UART_IO_Init + $d 0x00004d14 0 .text.UART_IO_Init + $d 0x00004d1c 0 .text.UARTInit + $t 0x00004d1c 0 .text.UARTInit + $d 0x00004d28 0 .text.UARTInit + $d 0x00004d2c 0 .text.UARTInitRxTxIntEn + $t 0x00004d2c 0 .text.UARTInitRxTxIntEn + $d 0x00004d38 0 .text.UARTInitRxTxIntEn + $d 0x00004d3c 0 .text.UARTTransmit + $t 0x00004d3c 0 .text.UARTTransmit + $d 0x00004d5c 0 .text.EPT_Stop + $t 0x00004d5c 0 .text.EPT_Stop + $d 0x00004d7c 0 .text.EPT_Stop + $d 0x00004d84 0 .text.ADC12_RESET_VALUE + $t 0x00004d84 0 .text.ADC12_RESET_VALUE + $d 0x00004de4 0 .text.ADC12_RESET_VALUE + $d 0x00004de8 0 .text.ADC12_Control + $t 0x00004de8 0 .text.ADC12_Control + $d 0x00004df4 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00004df8 F 32 .text.ADC12_CMD.part.0 + $d 0x00004df8 0 .text.ADC12_CMD.part.0 + $t 0x00004df8 0 .text.ADC12_CMD.part.0 + $d 0x00004e14 0 .text.ADC12_CMD.part.0 + $d 0x00004e18 0 .text.ADC12_CLK_CMD + $t 0x00004e18 0 .text.ADC12_CLK_CMD + $d 0x00004e40 0 .text.ADC12_CLK_CMD + $d 0x00004e44 0 .text.ADC12_Software_Reset + $t 0x00004e44 0 .text.ADC12_Software_Reset + $d 0x00004e50 0 .text.ADC12_CMD + $t 0x00004e50 0 .text.ADC12_CMD + $d 0x00004e74 0 .text.ADC12_CMD + $d 0x00004e78 0 .text.ADC12_ready_wait + $t 0x00004e78 0 .text.ADC12_ready_wait + $d 0x00004e88 0 .text.ADC12_ready_wait + $d 0x00004e8c 0 .text.ADC12_SEQEND_wait + $t 0x00004e8c 0 .text.ADC12_SEQEND_wait + $d 0x00004ea0 0 .text.ADC12_SEQEND_wait + $d 0x00004ea4 0 .text.ADC12_DATA_OUPUT + $t 0x00004ea4 0 .text.ADC12_DATA_OUPUT + $d 0x00004eb4 0 .text.ADC12_DATA_OUPUT + $d 0x00004eb8 0 .text.ADC12_Configure_Mode + $t 0x00004eb8 0 .text.ADC12_Configure_Mode + $d 0x00004f30 0 .text.ADC12_Configure_Mode + $d 0x00004f34 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00004f34 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000050a8 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000050cc 0 .text.ADC12_ConversionChannel_Config + $t 0x000050cc 0 .text.ADC12_ConversionChannel_Config + $d 0x000050f8 0 .text.ADC12_ConversionChannel_Config + $t 0x00005108 0 .text.ADC12_ConversionChannel_Config + $d 0x00005240 0 .text.ADC12_ConversionChannel_Config + $d 0x0000524c 0 .text.Page_ProgramData + $t 0x0000524c 0 .text.Page_ProgramData + $d 0x000052e4 0 .text.Page_ProgramData + $d 0x000052ec 0 .text.ReadDataArry_U8 + $t 0x000052ec 0 .text.ReadDataArry_U8 + $d 0x00005318 0 .text.tk_parameter_init + $t 0x00005318 0 .text.tk_parameter_init + $d 0x00005408 0 .text.tk_parameter_init + $d 0x00005458 0 .text.CORET_DeInit + $t 0x00005458 0 .text.CORET_DeInit + $d 0x0000546c 0 .text.CORET_DeInit + $d 0x00005470 0 .text.CORET_Int_Enable + $t 0x00005470 0 .text.CORET_Int_Enable + $d 0x00005480 0 .text.CORET_Int_Enable + $d 0x00005488 0 .text.CORET_start + $t 0x00005488 0 .text.CORET_start + $d 0x00005494 0 .text.CORET_start + $d 0x00005498 0 .text.CORET_CLKSOURCE_EX + $t 0x00005498 0 .text.CORET_CLKSOURCE_EX + $d 0x000054a4 0 .text.CORET_CLKSOURCE_EX + $d 0x000054a8 0 .text.CORET_TICKINT_Enable + $t 0x000054a8 0 .text.CORET_TICKINT_Enable + $d 0x000054b4 0 .text.CORET_TICKINT_Enable + $d 0x000054b8 0 .text.CORET_reload + $t 0x000054b8 0 .text.CORET_reload + $d 0x000054c4 0 .text.CORET_reload + $d 0x000054c8 0 .text.startup.main + $t 0x000054c8 0 .text.startup.main + $d 0x00005514 0 .text.startup.main + $d 0x0000551c 0 .text.delay_nms + $t 0x0000551c 0 .text.delay_nms + $d 0x00005548 0 .text.delay_nus + $t 0x00005548 0 .text.delay_nus + $d 0x0000556c 0 .text.GPIO_CONFIG + $t 0x0000556c 0 .text.GPIO_CONFIG + $d 0x000055f0 0 .text.GPIO_CONFIG + $d 0x000055f8 0 .text.BT_CONFIG + $t 0x000055f8 0 .text.BT_CONFIG + $d 0x00005650 0 .text.BT_CONFIG + $d 0x00005658 0 .text.SYSCON_CONFIG + $t 0x00005658 0 .text.SYSCON_CONFIG + $d 0x000056bc 0 .text.APT32F102_init + $t 0x000056bc 0 .text.APT32F102_init + $d 0x00005740 0 .text.APT32F102_init + $d 0x00005754 0 .text.SYSCONIntHandler + $t 0x00005754 0 .text.SYSCONIntHandler + $d 0x00005840 0 .text.SYSCONIntHandler + $d 0x00005844 0 .text.IFCIntHandler + $t 0x00005844 0 .text.IFCIntHandler + $d 0x000058a8 0 .text.IFCIntHandler + $d 0x000058ac 0 .text.ADCIntHandler + $t 0x000058ac 0 .text.ADCIntHandler + $d 0x00005910 0 .text.ADCIntHandler + $d 0x00005914 0 .text.EPT0IntHandler + $t 0x00005914 0 .text.EPT0IntHandler + $d 0x00005ab4 0 .text.EPT0IntHandler + $d 0x00005ac0 0 .text.WWDTHandler + $t 0x00005ac0 0 .text.WWDTHandler + $d 0x00005af0 0 .text.WWDTHandler + $d 0x00005af4 0 .text.GPT0IntHandler + $t 0x00005af4 0 .text.GPT0IntHandler + $d 0x00005b70 0 .text.GPT0IntHandler + $d 0x00005b74 0 .text.RTCIntHandler + $t 0x00005b74 0 .text.RTCIntHandler + $d 0x00005bdc 0 .text.RTCIntHandler + $d 0x00005be4 0 .text.UART0IntHandler + $t 0x00005be4 0 .text.UART0IntHandler + $d 0x00005c1c 0 .text.UART0IntHandler + $d 0x00005c20 0 .text.UART1IntHandler + $t 0x00005c20 0 .text.UART1IntHandler + $d 0x00005c58 0 .text.UART1IntHandler + $d 0x00005c5c 0 .text.UART2IntHandler + $t 0x00005c5c 0 .text.UART2IntHandler + $d 0x00005cdc 0 .text.UART2IntHandler + $d 0x00005cf0 0 .text.SPI0IntHandler + $t 0x00005cf0 0 .text.SPI0IntHandler + $d 0x00005dd4 0 .text.SPI0IntHandler + $d 0x00005dd8 0 .text.SIO0IntHandler + $t 0x00005dd8 0 .text.SIO0IntHandler + $d 0x00005e28 0 .text.SIO0IntHandler + $d 0x00005e2c 0 .text.EXI0IntHandler + $t 0x00005e2c 0 .text.EXI0IntHandler + $d 0x00005e58 0 .text.EXI0IntHandler + $d 0x00005e5c 0 .text.EXI1IntHandler + $t 0x00005e5c 0 .text.EXI1IntHandler + $d 0x00005e88 0 .text.EXI1IntHandler + $d 0x00005e8c 0 .text.EXI2to3IntHandler + $t 0x00005e8c 0 .text.EXI2to3IntHandler + $d 0x00005ed0 0 .text.EXI2to3IntHandler + $d 0x00005ed4 0 .text.EXI4to9IntHandler + $t 0x00005ed4 0 .text.EXI4to9IntHandler + $d 0x00005f3c 0 .text.EXI4to9IntHandler + $d 0x00005f40 0 .text.EXI10to15IntHandler + $t 0x00005f40 0 .text.EXI10to15IntHandler + $d 0x00005fb8 0 .text.EXI10to15IntHandler + $d 0x00005fc0 0 .text.LPTIntHandler + $t 0x00005fc0 0 .text.LPTIntHandler + $d 0x00005ff0 0 .text.LPTIntHandler + $d 0x00005ff4 0 .text.BT0IntHandler + $t 0x00005ff4 0 .text.BT0IntHandler + $d 0x0000603c 0 .text.BT0IntHandler + $d 0x00006040 0 .text.BT1IntHandler + $t 0x00006040 0 .text.BT1IntHandler + $d 0x000060a8 0 .text.BT1IntHandler + $d 0x000060b0 0 .text.PriviledgeVioHandler + $t 0x000060b0 0 .text.PriviledgeVioHandler + $d 0x000060b2 0 .text.PendTrapHandler + $t 0x000060b2 0 .text.PendTrapHandler + $d 0x000060ba 0 .text.Trap3Handler + $t 0x000060ba 0 .text.Trap3Handler + $d 0x000060c2 0 .text.Trap2Handler + $t 0x000060c2 0 .text.Trap2Handler + $d 0x000060ca 0 .text.Trap1Handler + $t 0x000060ca 0 .text.Trap1Handler + $d 0x000060d2 0 .text.Trap0Handler + $t 0x000060d2 0 .text.Trap0Handler + $d 0x000060da 0 .text.UnrecExecpHandler + $t 0x000060da 0 .text.UnrecExecpHandler + $d 0x000060e2 0 .text.BreakPointHandler + $t 0x000060e2 0 .text.BreakPointHandler + $d 0x000060ea 0 .text.AccessErrHandler + $t 0x000060ea 0 .text.AccessErrHandler + $d 0x000060f2 0 .text.IllegalInstrHandler + $t 0x000060f2 0 .text.IllegalInstrHandler + $d 0x000060fa 0 .text.MisalignedHandler + $t 0x000060fa 0 .text.MisalignedHandler + $d 0x00006102 0 .text.CNTAIntHandler + $t 0x00006102 0 .text.CNTAIntHandler + $d 0x0000610a 0 .text.I2CIntHandler + $t 0x0000610a 0 .text.I2CIntHandler + $d 0x00006114 0 .text.__divsi3 + $t 0x00006114 0 .text.__divsi3 + $d 0x00006134 0 .text.__divsi3 + $d 0x00006138 0 .text.__udivsi3 + $t 0x00006138 0 .text.__udivsi3 + $d 0x00006158 0 .text.__udivsi3 + $d 0x0000615c 0 .text.__modsi3 + $t 0x0000615c 0 .text.__modsi3 + $d 0x0000617c 0 .text.__modsi3 + $d 0x00006180 0 .text.__umodsi3 + $t 0x00006180 0 .text.__umodsi3 + $d 0x000061a0 0 .text.__umodsi3 + $d 0x000061a4 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000061a4 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000061aa 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000061aa 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000061b0 0 .text.UARTx_Init + $t 0x000061b0 0 .text.UARTx_Init + $d 0x0000629c 0 .text.UARTx_Init + $d 0x000062d0 0 .text.UART2_RecvINT_Processing + $t 0x000062d0 0 .text.UART2_RecvINT_Processing + $d 0x00006328 0 .text.UART2_RecvINT_Processing + $d 0x00006338 0 .text.UART2_TASK + $t 0x00006338 0 .text.UART2_TASK + $d 0x000063f0 0 .text.UART2_TASK + $d 0x00006404 0 .text.BUS485_Send + $t 0x00006404 0 .text.BUS485_Send + $d 0x000064b0 0 .text.BUS485_Send + $d 0x000064c8 0 .text.MultSend_Task + $t 0x000064c8 0 .text.MultSend_Task + $d 0x00006528 0 .text.MultSend_Task + $d 0x00006530 0 .text.Set_GroupSend + $t 0x00006530 0 .text.Set_GroupSend + $d 0x00006584 0 .text.Set_GroupSend + $d 0x0000658c 0 .text.Clear_SendFlag + $t 0x0000658c 0 .text.Clear_SendFlag + $d 0x00006598 0 .text.Clear_SendFlag + $d 0x0000659c 0 .text.BUS485Send_Task + $t 0x0000659c 0 .text.BUS485Send_Task + $d 0x000065d8 0 .text.BUS485Send_Task + $d 0x000065e4 0 .text.BusIdle_Task + $t 0x000065e4 0 .text.BusIdle_Task + $d 0x0000661c 0 .text.BusIdle_Task + $d 0x00006624 0 .text.BusBusy_Task + $t 0x00006624 0 .text.BusBusy_Task + $d 0x00006670 0 .text.BusBusy_Task + $d 0x0000667c 0 .text.Dbg_Println + $t 0x0000667c 0 .text.Dbg_Println + $d 0x00006688 0 .text.Dbg_Print_Buff + $t 0x00006688 0 .text.Dbg_Print_Buff + $d 0x0000668c 0 .text.Touch_Key_Init + $t 0x0000668c 0 .text.Touch_Key_Init + $d 0x000066e0 0 .text.Touch_Key_Init + $d 0x000066f4 0 .text.TouchKey_RS485_Printf_2 + $t 0x000066f4 0 .text.TouchKey_RS485_Printf_2 + $d 0x0000670e 0 .text.TouchKey_RS485_Printf_2 + $t 0x00006720 0 .text.TouchKey_RS485_Printf_2 + $d 0x00006914 0 .text.TouchKey_RS485_Printf_2 + $d 0x00006948 0 .text.Get_TouchKey_CH_State + $t 0x00006948 0 .text.Get_TouchKey_CH_State + $d 0x00006954 0 .text.Get_TouchKey_CH_State + $t 0x0000695a 0 .text.Get_TouchKey_CH_State + $d 0x00006980 0 .text.Get_TouchKey_CH_State + $d 0x00006984 0 .text.Touch_Key_Event_Handling + $t 0x00006984 0 .text.Touch_Key_Event_Handling + $d 0x00006a2c 0 .text.Touch_Key_Event_Handling + $d 0x00006a30 0 .text.TouchKey_Set_Interface_Task + $t 0x00006a30 0 .text.TouchKey_Set_Interface_Task + $d 0x00006a60 0 .text.TouchKey_Set_Interface_Task + $d 0x00006a6c 0 .text.Touch_Key_Task + $t 0x00006a6c 0 .text.Touch_Key_Task + $d 0x00006b4c 0 .text.Touch_Key_Task + $d 0x00006b5c 0 .text.TouchKey_CheckSum + $t 0x00006b5c 0 .text.TouchKey_CheckSum + $d 0x00006b74 0 .text.TouchKey_Comm_Reply + $t 0x00006b74 0 .text.TouchKey_Comm_Reply + $d 0x00006be0 0 .text.TouchKey_Comm_Reply + $d 0x00006be4 0 .text.TouchKey_SetPara_Processing + $t 0x00006be4 0 .text.TouchKey_SetPara_Processing + $d 0x00006c88 0 .text.TouchKey_SetPara_Processing + $d 0x00006c9c 0 .text.TouchKey_ReadPara_Processing + $t 0x00006c9c 0 .text.TouchKey_ReadPara_Processing + $d 0x00006d8c 0 .text.TouchKey_ReadPara_Processing + $d 0x00006d94 0 .text.TouchKey_DugPrintf_Processing + $t 0x00006d94 0 .text.TouchKey_DugPrintf_Processing + $d 0x00006dc8 0 .text.TouchKey_DugPrintf_Processing + $d 0x00006dcc 0 .text.TouchKey_ReadEnve_Processing + $t 0x00006dcc 0 .text.TouchKey_ReadEnve_Processing + $d 0x00006e74 0 .text.TouchKey_ReadEnve_Processing + $d 0x00006e7c 0 .text.TouchKey_ResetDevice_Processing + $t 0x00006e7c 0 .text.TouchKey_ResetDevice_Processing + $d 0x00006e98 0 .text.TouchKey_Comm_Processing + $t 0x00006e98 0 .text.TouchKey_Comm_Processing + $d 0x00006f26 0 .text.TouchKey_Comm_Processing + $t 0x00006f2c 0 .text.TouchKey_Comm_Processing + $d 0x00006f54 0 .text.TouchKey_Comm_Processing + $d 0x00006f70 0 .text.EEPROM_CheckSum + $t 0x00006f70 0 .text.EEPROM_CheckSum + $d 0x00006f88 0 .text.EEPROM_ReadParaInfo + $t 0x00006f88 0 .text.EEPROM_ReadParaInfo + $d 0x00006ff4 0 .text.EEPROM_ReadParaInfo + $d 0x00006ffc 0 .text.EEPROM_WriteParaInfo + $t 0x00006ffc 0 .text.EEPROM_WriteParaInfo + $d 0x0000703c 0 .text.EEPROM_WriteParaInfo + $d 0x00007040 0 .text.EEPROM_Validate_ParaInfo + $t 0x00007040 0 .text.EEPROM_Validate_ParaInfo + $d 0x000070c4 0 .text.EEPROM_Validate_ParaInfo + $d 0x000070cc 0 .text.EEPROM_Default_ParaInfo + $t 0x000070cc 0 .text.EEPROM_Default_ParaInfo + $d 0x000070ec 0 .text.EEPROM_WriteTouchPara + $t 0x000070ec 0 .text.EEPROM_WriteTouchPara + $d 0x0000714c 0 .text.EEPROM_WriteTouchPara + $d 0x00007158 0 .text.EEPROM_ReadTouchPara + $t 0x00007158 0 .text.EEPROM_ReadTouchPara + $d 0x000071f0 0 .text.EEPROM_ReadTouchPara + $d 0x00007204 0 .text.EEPROM_Validate_TouchPara + $t 0x00007204 0 .text.EEPROM_Validate_TouchPara + $d 0x000072e4 0 .text.EEPROM_Validate_TouchPara + $d 0x000072e8 0 .text.EEPROM_Default_TouchPara + $t 0x000072e8 0 .text.EEPROM_Default_TouchPara + $d 0x00007358 0 .text.EEPROM_TouchPara_Printf + $t 0x00007358 0 .text.EEPROM_TouchPara_Printf + $d 0x000073bc 0 .text.EEPROM_TouchPara_Printf + $d 0x000073d8 0 .text.EEPROM_ReadMCUDevInfo + $t 0x000073d8 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00007444 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00007448 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00007448 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00007488 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00007488 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000074bc 0 .text.EEPROM_Default_MCUDevInfo + $d 0x000074c0 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x000074c0 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00007514 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00007518 0 .text.EEPROM_Init + $t 0x00007518 0 .text.EEPROM_Init + $d 0x00007590 0 .text.EEPROM_Init + $d 0x000075a8 0 .text.ADC_Init + $t 0x000075a8 0 .text.ADC_Init + $d 0x00007600 0 .text.ADC_Init + $d 0x00007604 0 .text.Thermistor_Array_Transform + $t 0x00007604 0 .text.Thermistor_Array_Transform + $d 0x00007644 0 .text.Thermistor_Array_Transform + $d 0x0000764c 0 .text.Calculate_ADC_Sample_Average + $t 0x0000764c 0 .text.Calculate_ADC_Sample_Average + $d 0x000076cc 0 .text.Calculate_ADC_Sample_Average + $d 0x000076d8 0 .text.Get_Temp_Val + $t 0x000076d8 0 .text.Get_Temp_Val + $d 0x000076e4 0 .text.Get_Temp_Val + $d 0x000076e8 0 .text.Gather_Temp + $t 0x000076e8 0 .text.Gather_Temp + $d 0x00007784 0 .text.Gather_Temp + $d 0x00007790 0 .text.ADC_Sample_Task + $t 0x00007790 0 .text.ADC_Sample_Task + $d 0x0000782c 0 .text.ADC_Sample_Task + $d 0x00007838 0 .text.Contol_Switch_Light + $t 0x00007838 0 .text.Contol_Switch_Light + $d 0x00007848 0 .text.Contol_Switch_Light + $t 0x00007854 0 .text.Contol_Switch_Light + $d 0x00007bd0 0 .text.Contol_Switch_Light + $t 0x00007bd8 0 .text.Contol_Switch_Light + $d 0x00007c24 0 .text.Contol_Switch_Light_2 + $t 0x00007c24 0 .text.Contol_Switch_Light_2 + $d 0x00007c34 0 .text.Contol_Switch_Light_2 + $t 0x00007c40 0 .text.Contol_Switch_Light_2 + $d 0x00007fbc 0 .text.Contol_Switch_Light_2 + $t 0x00007fc4 0 .text.Contol_Switch_Light_2 + $d 0x00008010 0 .text.Contol_Switch_ClickAction + $t 0x00008010 0 .text.Contol_Switch_ClickAction + $d 0x00008034 0 .text.Contol_Switch_ClickAction + $d 0x00008038 0 .text.Get_TM1812_State_Change + $t 0x00008038 0 .text.Get_TM1812_State_Change + $d 0x00008074 0 .text.Get_TM1812_State_Change + $d 0x0000807c 0 .text.TimeCall_SIO_Send + $t 0x0000807c 0 .text.TimeCall_SIO_Send + $d 0x00008190 0 .text.TimeCall_SIO_Send + $d 0x0000819c 0 .text.TimeCall_SIO_Send2 + $t 0x0000819c 0 .text.TimeCall_SIO_Send2 + $d 0x00008234 0 .text.TimeCall_SIO_Send2 + $d 0x00008244 0 .text.Tm1812_Task + $t 0x00008244 0 .text.Tm1812_Task + $d 0x0000828c 0 .text.Tm1812_Task + $d 0x000082a0 0 .text.Tm1812_Ch_Insert_Data + $t 0x000082a0 0 .text.Tm1812_Ch_Insert_Data + $d 0x000082bc 0 .text.Tm1812_Ch_Insert_Data + $d 0x000082c4 0 .text.TM1812_Control_CH_State + $t 0x000082c4 0 .text.TM1812_Control_CH_State + $d 0x00008320 0 .text.TM1812_Control_CH_State + $d 0x00008334 0 .text.TM1812_Control_CH_CurrState + $t 0x00008334 0 .text.TM1812_Control_CH_CurrState + $d 0x0000838c 0 .text.TM1812_Control_CH_CurrState + $d 0x00008398 0 .text.TM1812_LED_Init + $t 0x00008398 0 .text.TM1812_LED_Init + $d 0x000083ec 0 .text.TM1812_LED_Init + $d 0x000083f0 0 .text.HT1621_WR_Data + $t 0x000083f0 0 .text.HT1621_WR_Data + $d 0x00008434 0 .text.HT1621_WR_Data + $d 0x00008438 0 .text.HT1621_WR_CMD + $t 0x00008438 0 .text.HT1621_WR_CMD + $d 0x00008464 0 .text.HT1621_WR_CMD + $d 0x00008468 0 .text.HT1621_Init + $t 0x00008468 0 .text.HT1621_Init + $d 0x00008514 0 .text.HT1621_Init + $d 0x0000851c 0 .text.HT1621_Clear + $t 0x0000851c 0 .text.HT1621_Clear + $d 0x00008564 0 .text.HT1621_Clear + $d 0x0000856c 0 .text.HT1621_ALLON + $t 0x0000856c 0 .text.HT1621_ALLON + $d 0x000085a8 0 .text.HT1621_ALLON + $d 0x000085ac 0 .text.HT1621_Refresh_Data + $t 0x000085ac 0 .text.HT1621_Refresh_Data + $d 0x000085f0 0 .text.HT1621_Refresh_Data + $d 0x000085f8 0 .text.Set_Temperature_Display + $t 0x000085f8 0 .text.Set_Temperature_Display + $d 0x000086bc 0 .text.Set_Temperature_Display + $d 0x000086c8 0 .text.Local_Temperature_Display + $t 0x000086c8 0 .text.Local_Temperature_Display + $d 0x0000878c 0 .text.Local_Temperature_Display + $d 0x00008798 0 .text.Control_Mode + $t 0x00008798 0 .text.Control_Mode + $d 0x000087a2 0 .text.Control_Mode + $t 0x000087b0 0 .text.Control_Mode + $d 0x000089d4 0 .text.Control_Mode + $d 0x000089dc 0 .text.Control_wind_velocity + $t 0x000089dc 0 .text.Control_wind_velocity + $d 0x000089e8 0 .text.Control_wind_velocity + $t 0x000089ee 0 .text.Control_wind_velocity + $d 0x00008aa8 0 .text.Control_wind_velocity + $d 0x00008aac 0 .text.Control_Prompt_Text + $t 0x00008aac 0 .text.Control_Prompt_Text + $d 0x00008b4c 0 .text.Control_Prompt_Text + $d 0x00008b50 0 .text.Controlled_Buzzer + $t 0x00008b50 0 .text.Controlled_Buzzer + $d 0x00008b90 0 .text.Controlled_Buzzer + $d 0x00008b98 0 .text.Controlled_LCD_Backlight + $t 0x00008b98 0 .text.Controlled_LCD_Backlight + $d 0x00008c6c 0 .text.Controlled_LCD_Backlight + $d 0x00008c74 0 .text.Controlled_Key_Backlight + $t 0x00008c74 0 .text.Controlled_Key_Backlight + $d 0x00008ca0 0 .text.Controlled_Key_Backlight + $d 0x00008ca4 0 .text.Set_Device_ADDR + $t 0x00008ca4 0 .text.Set_Device_ADDR + $d 0x00008d38 0 .text.Set_Device_ADDR + $d 0x00008d40 0 .text.Set_Temp_Difference + $t 0x00008d40 0 .text.Set_Temp_Difference + $d 0x00008d9c 0 .text.Set_Temp_Difference + $d 0x00008da4 0 .text.HT1621_Refresh_Task + $t 0x00008da4 0 .text.HT1621_Refresh_Task + $d 0x00008e1c 0 .text.HT1621_Refresh_Task + $d 0x00008e34 0 .text.Boot_Comm_CheckSum + $t 0x00008e34 0 .text.Boot_Comm_CheckSum + $d 0x00008e54 0 .text.Boot_Comm_CheckSum + $d 0x00008e58 0 .text.Boot_Comm_FillReplyPack + $t 0x00008e58 0 .text.Boot_Comm_FillReplyPack + $d 0x00008eac 0 .text.Boot_Comm_FillReplyPack + $d 0x00008eb4 0 .text.Boot_Time_Refresh + $t 0x00008eb4 0 .text.Boot_Time_Refresh + $d 0x00008ec0 0 .text.Boot_Time_Refresh + $d 0x00008ec8 0 .text.Boot_Comm_UpgradeProcess + $t 0x00008ec8 0 .text.Boot_Comm_UpgradeProcess + $d 0x00009044 0 .text.Boot_Comm_UpgradeProcess + $d 0x00009058 0 .text.TemCtrl_Init + $t 0x00009058 0 .text.TemCtrl_Init + $d 0x000091bc 0 .text.TemCtrl_Init + $d 0x000091d4 0 .text.TemCtrl_Model_Set + $t 0x000091d4 0 .text.TemCtrl_Model_Set + $d 0x00009218 0 .text.TemCtrl_Model_Set + $d 0x00009220 0 .text.TemCtrl_Fan_Set + $t 0x00009220 0 .text.TemCtrl_Fan_Set + $d 0x0000923e 0 .text.TemCtrl_Fan_Set + $t 0x00009242 0 .text.TemCtrl_Fan_Set + $d 0x00009268 0 .text.TemCtrl_Fan_Set + $d 0x00009270 0 .text.TemCtrl_Temperature_Dec + $t 0x00009270 0 .text.TemCtrl_Temperature_Dec + $d 0x00009298 0 .text.TemCtrl_Temperature_Dec + $d 0x000092a0 0 .text.TemCtrl_Temperature_Add + $t 0x000092a0 0 .text.TemCtrl_Temperature_Add + $d 0x000092c8 0 .text.TemCtrl_Temperature_Add + $d 0x000092d0 0 .text.TemCtrl_OnOff_Set + $t 0x000092d0 0 .text.TemCtrl_OnOff_Set + $d 0x000092fc 0 .text.TemCtrl_OnOff_Set + $d 0x00009304 0 .text.Tem_Valve_Ctrl + $t 0x00009304 0 .text.Tem_Valve_Ctrl + $d 0x000093c4 0 .text.Tem_Valve_Ctrl + $d 0x000093d0 0 .text.TemCtrl_Pro + $t 0x000093d0 0 .text.TemCtrl_Pro + $d 0x00009530 0 .text.TemCtrl_Pro + $d 0x00009548 0 .text.KEY1_Model_Press_Fun + $t 0x00009548 0 .text.KEY1_Model_Press_Fun + $d 0x00009614 0 .text.KEY1_Model_Press_Fun + $d 0x00009628 0 .text.KEY2_Fan_Press_Fun + $t 0x00009628 0 .text.KEY2_Fan_Press_Fun + $d 0x000096f4 0 .text.KEY2_Fan_Press_Fun + $d 0x00009708 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00009708 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00009804 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00009818 0 .text.KEY3_Long_Press_Fun + $t 0x00009818 0 .text.KEY3_Long_Press_Fun + $d 0x00009880 0 .text.KEY3_Long_Press_Fun + $d 0x00009890 0 .text.KEY4_TempDec_Press_Fun + $t 0x00009890 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000998c 0 .text.KEY4_TempDec_Press_Fun + $d 0x000099a0 0 .text.KEY4_Long_Press + $t 0x000099a0 0 .text.KEY4_Long_Press + $d 0x00009a08 0 .text.KEY4_Long_Press + $d 0x00009a18 0 .text.KEY5_OnOff_Press_Fun + $t 0x00009a18 0 .text.KEY5_OnOff_Press_Fun + $d 0x00009a88 0 .text.KEY5_OnOff_Press_Fun + $d 0x00009a9c 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00009a9c 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00009ae8 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00009af0 0 .text.DisPlay_Init + $t 0x00009af0 0 .text.DisPlay_Init + $d 0x00009b08 0 .text.DisPlay_Init + $d 0x00009b10 0 .text.DisPlay_Task + $t 0x00009b10 0 .text.DisPlay_Task + $d 0x00009d34 0 .text.DisPlay_Task + $t 0x00009d3c 0 .text.DisPlay_Task + $d 0x00009e6c 0 .text.DisPlay_Task + $t 0x00009eac 0 .text.DisPlay_Task + $d 0x00009fd0 0 .text.DisPlay_Task + $d 0x00009fec 0 .text.Debug_Init + $t 0x00009fec 0 .text.Debug_Init + $d 0x0000a020 0 .text.Debug_Init + $d 0x0000a028 0 .text.Dev_SaveData + $t 0x0000a028 0 .text.Dev_SaveData + $d 0x0000a0bc 0 .text.Dev_SaveData + $d 0x0000a0d0 0 .text.Debug_Task + $t 0x0000a0d0 0 .text.Debug_Task + $d 0x0000a13c 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x0000a14c F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x0000a14c 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x0000a14c 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x0000a170 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x0000a174 0 .text.Relay_Init + $t 0x0000a174 0 .text.Relay_Init + $d 0x0000a194 0 .text.Relay_Init + $d 0x0000a19c 0 .text.Relay_High + $t 0x0000a19c 0 .text.Relay_High + $d 0x0000a1b8 0 .text.Relay_Mid + $t 0x0000a1b8 0 .text.Relay_Mid + $d 0x0000a1d4 0 .text.Relay_Low + $t 0x0000a1d4 0 .text.Relay_Low + $d 0x0000a1f0 0 .text.Relay_Stop + $t 0x0000a1f0 0 .text.Relay_Stop + $d 0x0000a20c 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x0000a20c 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x0000a220 0 .text.RLY_Direct_Control + $t 0x0000a220 0 .text.RLY_Direct_Control + $d 0x0000a262 0 .text.RLY_Direct_Control + $t 0x0000a266 0 .text.RLY_Direct_Control + $d 0x0000a2e0 0 .text.RLY_Direct_Control + $d 0x0000a2e8 0 .text.RLY_Zero_Control + $t 0x0000a2e8 0 .text.RLY_Zero_Control + $d 0x0000a2fe 0 .text.RLY_Zero_Control + $t 0x0000a302 0 .text.RLY_Zero_Control + $d 0x0000a37c 0 .text.RLY_Zero_Control + $d 0x0000a380 0 .text.NetCRC16_Check + $t 0x0000a380 0 .text.NetCRC16_Check + $d 0x0000a3c4 0 .text.NetCRC16_Check + $d 0x0000a3cc 0 .text.GetCRC16 + $t 0x0000a3cc 0 .text.GetCRC16 + $d 0x0000a400 0 .text.GetCRC16 + $d 0x0000a408 0 .text.SOR_CRC + $t 0x0000a408 0 .text.SOR_CRC + $d 0x0000a420 0 .text.Rs485_ASend + $t 0x0000a420 0 .text.Rs485_ASend + $d 0x0000a518 0 .text.Rs485_ASend + $d 0x0000a520 0 .text.Rs485AskCycleSend + $t 0x0000a520 0 .text.Rs485AskCycleSend + $d 0x0000a614 0 .text.Rs485AskCycleSend + $d 0x0000a61c 0 .text.Rs485AskCtrlSend + $t 0x0000a61c 0 .text.Rs485AskCtrlSend + $d 0x0000a674 0 .text.Rs485AskCtrlSend + $d 0x0000a678 0 .text.Rs485AskReadSend + $t 0x0000a678 0 .text.Rs485AskReadSend + $d 0x0000a6dc 0 .text.Rs485AskReadSend + $d 0x0000a6e0 0 .text.Rs485_DevPort_ACK + $t 0x0000a6e0 0 .text.Rs485_DevPort_ACK + $d 0x0000a6f8 0 .text.Temp_Rec_Analysis + $t 0x0000a6f8 0 .text.Temp_Rec_Analysis + $d 0x0000a760 0 .text.Temp_Rec_Analysis + $t 0x0000a772 0 .text.Temp_Rec_Analysis + $d 0x0000a78a 0 .text.Temp_Rec_Analysis + $t 0x0000a78e 0 .text.Temp_Rec_Analysis + $d 0x0000a87c 0 .text.Temp_Rec_Analysis + $t 0x0000a880 0 .text.Temp_Rec_Analysis + $d 0x0000a89c 0 .text.Temp_Rec_Analysis + $d 0x0000a8a8 0 .text.Tem_Rs485_Rec_Pro + $t 0x0000a8a8 0 .text.Tem_Rs485_Rec_Pro + $d 0x0000a964 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x0000a974 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000a974 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x0000a974 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000a980 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000a984 0 .text.tk_clk_config + $t 0x0000a984 0 .text.tk_clk_config + $d 0x0000a9a8 0 .text.tk_clk_config + $d 0x0000a9ac 0 .text.TK_con0_config + $t 0x0000a9ac 0 .text.TK_con0_config + $d 0x0000aa5c 0 .text.TK_con0_config + $d 0x0000aa68 0 .text.tk_io_enable + $t 0x0000aa68 0 .text.tk_io_enable + $d 0x0000aaac 0 .text.tk_io_enable + $t 0x0000aabc 0 .text.tk_io_enable + $d 0x0000ab90 0 .text.tk_io_enable + $d 0x0000ab9c 0 .text.TK_Single_Longpress_prg + $t 0x0000ab9c 0 .text.TK_Single_Longpress_prg + $d 0x0000ac90 0 .text.TK_Single_Longpress_prg + $d 0x0000acc4 0 .text.TK_Sampling_prog + $t 0x0000acc4 0 .text.TK_Sampling_prog + $d 0x0000ad6c 0 .text.TK_Sampling_prog + $d 0x0000ad90 0 .text.get_key_number + $t 0x0000ad90 0 .text.get_key_number + $d 0x0000adb4 0 .text.get_key_number + $d 0x0000adb8 0 .text.get_key_number0 + $t 0x0000adb8 0 .text.get_key_number0 + $d 0x0000addc 0 .text.get_key_number0 + $d 0x0000ade0 0 .text.get_key_number1 + $t 0x0000ade0 0 .text.get_key_number1 + $d 0x0000ae04 0 .text.get_key_number1 + $d 0x0000ae08 0 .text.get_key_number2 + $t 0x0000ae08 0 .text.get_key_number2 + $d 0x0000ae2c 0 .text.get_key_number2 + $d 0x0000ae30 0 .text.TK_Baseline_prog + $t 0x0000ae30 0 .text.TK_Baseline_prog + $d 0x0000af44 0 .text.TK_Baseline_prog + $d 0x0000af80 0 .text.TK_Baseline_prog2 + $t 0x0000af80 0 .text.TK_Baseline_prog2 + $d 0x0000b08c 0 .text.TK_Baseline_prog2 + $d 0x0000b0c8 0 .text.tk_poweron_data_fineturn + $t 0x0000b0c8 0 .text.tk_poweron_data_fineturn + $d 0x0000b1c4 0 .text.tk_poweron_data_fineturn + $d 0x0000b1ec 0 .text.TK_Scan_Start + $t 0x0000b1ec 0 .text.TK_Scan_Start + $d 0x0000b238 0 .text.TK_Scan_Start + $d 0x0000b254 0 .text.TK_Keymap_prog + $t 0x0000b254 0 .text.TK_Keymap_prog + $d 0x0000b590 0 .text.TK_Keymap_prog + $t 0x0000b614 0 .text.TK_Keymap_prog + $d 0x0000b970 0 .text.TK_Keymap_prog + $t 0x0000b9b4 0 .text.TK_Keymap_prog + $d 0x0000bab0 0 .text.TK_Keymap_prog + $d 0x0000bac4 0 .text.TK_overflow_predict + $t 0x0000bac4 0 .text.TK_overflow_predict + $d 0x0000bbb8 0 .text.TK_overflow_predict + $d 0x0000bbec 0 .text.TK_Baseline_tracking + $t 0x0000bbec 0 .text.TK_Baseline_tracking + $d 0x0000bf44 0 .text.TK_Baseline_tracking + $t 0x0000bfa0 0 .text.TK_Baseline_tracking + $d 0x0000c0ac 0 .text.TK_Baseline_tracking + $d 0x0000c0bc 0 .text.TK_result_prog + $t 0x0000c0bc 0 .text.TK_result_prog + $d 0x0000c1bc 0 .text.TK_result_prog + $d 0x0000c1ec 0 .text.get_key_seq + $t 0x0000c1ec 0 .text.get_key_seq + $d 0x0000c21c 0 .text.get_key_seq + $d 0x0000c224 0 .text.CORET_CONFIG + $t 0x0000c224 0 .text.CORET_CONFIG + $d 0x0000c254 0 .text.CORET_CONFIG + $d 0x0000c25c 0 .text.tk_chxval_seqxcon_clr + $t 0x0000c25c 0 .text.tk_chxval_seqxcon_clr + $d 0x0000c274 0 .text.tk_chxval_seqxcon_clr + $d 0x0000c278 0 .text.tk_freq_para_init + $t 0x0000c278 0 .text.tk_freq_para_init + $d 0x0000c2d0 0 .text.tk_freq_para_init + $t 0x0000c2d6 0 .text.tk_freq_para_init + $d 0x0000c2f0 0 .text.tk_freq_para_init + $d 0x0000c324 0 .text.tk_reserved_init + $t 0x0000c324 0 .text.tk_reserved_init + $d 0x0000c338 0 .text.tk_reserved_init + $d 0x0000c34c 0 .text.TKEYIntHandler + $t 0x0000c34c 0 .text.TKEYIntHandler + $d 0x0000c3dc 0 .text.TKEYIntHandler + $d 0x0000c3ec 0 .text.CORETHandler + $t 0x0000c3ec 0 .text.CORETHandler + $d 0x0000c514 0 .text.CORETHandler + $d 0x0000c548 0 .text.tk_init + $t 0x0000c548 0 .text.tk_init + $d 0x0000c630 0 .text.tk_init + $d 0x0000c658 0 .text.std_clk_calib + $t 0x0000c658 0 .text.std_clk_calib + $d 0x0000c8a0 0 .text.std_clk_calib + __func__.6517 0x0000c8dc O 28 .rodata + __func__.6555 0x0000c8f8 O 25 .rodata + bp 0x0000cc50 O 16 .rodata + dp_l 0x0000cc60 O 16 .rodata + dp_h 0x0000cc70 O 16 .rodata + NUM.6521 0x200000b8 O 1 .bss + adc_tick.6431 0x2000013c O 4 .bss + StateChange_Tick.6521 0x2000022c O 4 .bss + tick.6460 0x20000230 O 4 .bss + OpenDisPlay_Flag 0x20000234 O 1 .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_shi 0x00003510 F 28 .text + ___gnu_csky_case_uhi 0x0000352c F 26 .text + __fixunsdfsi 0x00003548 F 56 .text + __adddf3 0x00003854 F 46 .text + __subdf3 0x00003884 F 54 .text + __muldf3 0x000038bc F 564 .text + __divdf3 0x00003af0 F 340 .text + __gtdf2 0x00003c44 F 60 .text + __gedf2 0x00003c80 F 60 .text + __ledf2 0x00003cbc F 58 .text + __floatsidf 0x00003cf8 F 112 .text + __fixdfsi 0x00003d68 F 112 .text + __floatunsidf 0x00003dd8 F 84 .text + __muldi3 0x00003e2c F 68 .text + __clzsi2 0x00003e70 F 64 .text + __pack_d 0x00003eb0 F 412 .text + __unpack_d 0x0000404c F 196 .text + __fpcmp_parts_d 0x00004110 F 140 .text + __memset_fast 0x0000419c w F 136 .text + memset 0x0000419c w F 136 .text + __memcpy_fast 0x00004224 w F 100 .text + memcpy 0x00004224 w F 100 .text + __GI_strncmp 0x00004288 F 38 .text + strncmp 0x00004288 w F 38 .text + __main 0x000042b0 F 56 .text.__main + SYSCON_RST_VALUE 0x0000435c F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x000043a8 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x000043d8 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00004460 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00004488 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x000044c4 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000044d8 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000044f0 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00004510 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x0000452c F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00004548 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00004588 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x000045bc F 4 .text.GPIO_EXTI_interrupt + EXI3_Int_Enable 0x000045c0 F 16 .text.EXI3_Int_Enable + EXI4_Int_Enable 0x000045d0 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x000045e0 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000045ec F 12 .text.SYSCON_Int_Disable + SYSCON_Software_Reset 0x000045f8 F 20 .text.SYSCON_Software_Reset + SYSCON_INT_Priority 0x0000460c F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00004630 F 48 .text.Set_INT_Priority + GPIO_Init 0x00004660 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00004740 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00004754 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00004764 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00004870 F 252 .text.GPIOA0_EXI_Init + GPIOB0_EXI_Init 0x0000496c F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x000049d8 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000049e0 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000049e8 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000049fe F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00004a10 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00004a24 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00004a34 F 28 .text.BT_DeInit + BT_Start 0x00004a50 F 8 .text.BT_Start + BT_Soft_Reset 0x00004a58 F 10 .text.BT_Soft_Reset + BT_Configure 0x00004a62 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00004a7a F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00004aa6 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00004aac F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00004ac0 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00004ad0 F 32 .text.SIO_DeInit + SIO_IO_Init 0x00004af0 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x00004b50 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x00004b60 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x00004bb0 F 24 .text.UART0_DeInit + UART1_DeInit 0x00004bc8 F 24 .text.UART1_DeInit + UART2_DeInit 0x00004be0 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00004bf8 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00004c14 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00004c30 F 236 .text.UART_IO_Init + UARTInit 0x00004d1c F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00004d2c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00004d3c F 30 .text.UARTTransmit + EPT_Stop 0x00004d5c F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x00004d84 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00004de8 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x00004e18 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00004e44 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00004e50 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00004e78 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00004e8c F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00004ea4 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00004eb8 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00004f34 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x000050cc F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x0000524c F 160 .text.Page_ProgramData + ReadDataArry_U8 0x000052ec F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00005318 F 320 .text.tk_parameter_init + CORET_DeInit 0x00005458 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00005470 F 24 .text.CORET_Int_Enable + CORET_start 0x00005488 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00005498 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x000054a8 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x000054b8 F 16 .text.CORET_reload + main 0x000054c8 F 84 .text.startup.main + delay_nms 0x0000551c F 44 .text.delay_nms + delay_nus 0x00005548 F 34 .text.delay_nus + GPIO_CONFIG 0x0000556c F 140 .text.GPIO_CONFIG + BT_CONFIG 0x000055f8 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00005658 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000056bc F 152 .text.APT32F102_init + SYSCONIntHandler 0x00005754 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00005844 F 104 .text.IFCIntHandler + ADCIntHandler 0x000058ac F 104 .text.ADCIntHandler + EPT0IntHandler 0x00005914 F 428 .text.EPT0IntHandler + WWDTHandler 0x00005ac0 F 52 .text.WWDTHandler + GPT0IntHandler 0x00005af4 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00005b74 F 112 .text.RTCIntHandler + UART0IntHandler 0x00005be4 F 60 .text.UART0IntHandler + UART1IntHandler 0x00005c20 F 60 .text.UART1IntHandler + UART2IntHandler 0x00005c5c F 148 .text.UART2IntHandler + SPI0IntHandler 0x00005cf0 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00005dd8 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00005e2c F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00005e5c F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00005e8c F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00005ed4 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00005f40 F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x00005fc0 F 52 .text.LPTIntHandler + BT0IntHandler 0x00005ff4 F 76 .text.BT0IntHandler + BT1IntHandler 0x00006040 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x000060b0 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000060b2 F 8 .text.PendTrapHandler + Trap3Handler 0x000060ba F 8 .text.Trap3Handler + Trap2Handler 0x000060c2 F 8 .text.Trap2Handler + Trap1Handler 0x000060ca F 8 .text.Trap1Handler + Trap0Handler 0x000060d2 F 8 .text.Trap0Handler + UnrecExecpHandler 0x000060da F 8 .text.UnrecExecpHandler + BreakPointHandler 0x000060e2 F 8 .text.BreakPointHandler + AccessErrHandler 0x000060ea F 8 .text.AccessErrHandler + IllegalInstrHandler 0x000060f2 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x000060fa F 8 .text.MisalignedHandler + CNTAIntHandler 0x00006102 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000610a F 8 .text.I2CIntHandler + __divsi3 0x00006114 F 36 .text.__divsi3 + __udivsi3 0x00006138 F 36 .text.__udivsi3 + __modsi3 0x0000615c F 36 .text.__modsi3 + __umodsi3 0x00006180 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000061a4 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000061aa F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000061b0 F 288 .text.UARTx_Init + UART2_RecvINT_Processing 0x000062d0 F 104 .text.UART2_RecvINT_Processing + UART2_TASK 0x00006338 F 204 .text.UART2_TASK + BUS485_Send 0x00006404 F 196 .text.BUS485_Send + MultSend_Task 0x000064c8 F 104 .text.MultSend_Task + Set_GroupSend 0x00006530 F 92 .text.Set_GroupSend + Clear_SendFlag 0x0000658c F 16 .text.Clear_SendFlag + BUS485Send_Task 0x0000659c F 72 .text.BUS485Send_Task + BusIdle_Task 0x000065e4 F 64 .text.BusIdle_Task + BusBusy_Task 0x00006624 F 88 .text.BusBusy_Task + Dbg_Println 0x0000667c F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00006688 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x0000668c F 104 .text.Touch_Key_Init + TouchKey_RS485_Printf_2 0x000066f4 F 596 .text.TouchKey_RS485_Printf_2 + Get_TouchKey_CH_State 0x00006948 F 60 .text.Get_TouchKey_CH_State + Touch_Key_Event_Handling 0x00006984 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00006a30 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00006a6c F 240 .text.Touch_Key_Task + TouchKey_CheckSum 0x00006b5c F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00006b74 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00006be4 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00006c9c F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00006d94 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00006dcc F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00006e7c F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00006e98 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00006f70 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00006f88 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00006ffc F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00007040 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x000070cc F 32 .text.EEPROM_Default_ParaInfo + EEPROM_WriteTouchPara 0x000070ec F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00007158 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00007204 F 228 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000072e8 F 112 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00007358 F 128 .text.EEPROM_TouchPara_Printf + EEPROM_ReadMCUDevInfo 0x000073d8 F 112 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00007448 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00007488 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x000074c0 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00007518 F 144 .text.EEPROM_Init + ADC_Init 0x000075a8 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x00007604 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x0000764c F 140 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x000076d8 F 16 .text.Get_Temp_Val + Gather_Temp 0x000076e8 F 168 .text.Gather_Temp + ADC_Sample_Task 0x00007790 F 168 .text.ADC_Sample_Task + Contol_Switch_Light 0x00007838 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00007c24 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x00008010 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00008038 F 68 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x0000807c F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x0000819c F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x00008244 F 92 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x000082a0 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x000082c4 F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x00008334 F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00008398 F 88 .text.TM1812_LED_Init + HT1621_WR_Data 0x000083f0 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x00008438 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00008468 F 180 .text.HT1621_Init + HT1621_Clear 0x0000851c F 80 .text.HT1621_Clear + HT1621_ALLON 0x0000856c F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x000085ac F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x000085f8 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x000086c8 F 208 .text.Local_Temperature_Display + Control_Mode 0x00008798 F 580 .text.Control_Mode + Control_wind_velocity 0x000089dc F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x00008aac F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00008b50 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00008b98 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00008c74 F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00008ca4 F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00008d40 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00008da4 F 144 .text.HT1621_Refresh_Task + Boot_Comm_CheckSum 0x00008e34 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x00008e58 F 92 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x00008eb4 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x00008ec8 F 400 .text.Boot_Comm_UpgradeProcess + TemCtrl_Init 0x00009058 F 380 .text.TemCtrl_Init + TemCtrl_Model_Set 0x000091d4 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00009220 F 80 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00009270 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x000092a0 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x000092d0 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00009304 F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x000093d0 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00009548 F 224 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x00009628 F 224 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00009708 F 272 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00009818 F 120 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00009890 F 272 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x000099a0 F 120 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00009a18 F 132 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00009a9c F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00009af0 F 32 .text.DisPlay_Init + DisPlay_Task 0x00009b10 F 1244 .text.DisPlay_Task + Debug_Init 0x00009fec F 60 .text.Debug_Init + Dev_SaveData 0x0000a028 F 168 .text.Dev_SaveData + Debug_Task 0x0000a0d0 F 124 .text.Debug_Task + Relay_Init 0x0000a174 F 40 .text.Relay_Init + Relay_High 0x0000a19c F 28 .text.Relay_High + Relay_Mid 0x0000a1b8 F 28 .text.Relay_Mid + Relay_Low 0x0000a1d4 F 28 .text.Relay_Low + Relay_Stop 0x0000a1f0 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x0000a20c F 20 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x0000a220 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x0000a2e8 F 152 .text.RLY_Zero_Control + NetCRC16_Check 0x0000a380 F 76 .text.NetCRC16_Check + GetCRC16 0x0000a3cc F 60 .text.GetCRC16 + SOR_CRC 0x0000a408 F 22 .text.SOR_CRC + Rs485_ASend 0x0000a420 F 256 .text.Rs485_ASend + Rs485AskCycleSend 0x0000a520 F 252 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x0000a61c F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x0000a678 F 104 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x0000a6e0 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x0000a6f8 F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x0000a8a8 F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x0000a984 F 40 .text.tk_clk_config + TK_con0_config 0x0000a9ac F 188 .text.TK_con0_config + tk_io_enable 0x0000aa68 F 308 .text.tk_io_enable + TK_Single_Longpress_prg 0x0000ab9c F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x0000acc4 F 204 .text.TK_Sampling_prog + get_key_number 0x0000ad90 F 40 .text.get_key_number + get_key_number0 0x0000adb8 F 40 .text.get_key_number0 + get_key_number1 0x0000ade0 F 40 .text.get_key_number1 + get_key_number2 0x0000ae08 F 40 .text.get_key_number2 + TK_Baseline_prog 0x0000ae30 F 336 .text.TK_Baseline_prog + TK_Baseline_prog2 0x0000af80 F 328 .text.TK_Baseline_prog2 + tk_poweron_data_fineturn 0x0000b0c8 F 292 .text.tk_poweron_data_fineturn + TK_Scan_Start 0x0000b1ec F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x0000b254 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x0000bac4 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000bbec F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x0000c0bc F 304 .text.TK_result_prog + get_key_seq 0x0000c1ec F 56 .text.get_key_seq + CORET_CONFIG 0x0000c224 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x0000c25c F 28 .text.tk_chxval_seqxcon_clr + tk_freq_para_init 0x0000c278 F 156 .text.tk_freq_para_init + tk_reserved_init 0x0000c324 F 40 .text.tk_reserved_init + TKEYIntHandler 0x0000c34c F 160 .text.TKEYIntHandler + CORETHandler 0x0000c3ec F 348 .text.CORETHandler + tk_init 0x0000c548 F 272 .text.tk_init + std_clk_calib 0x0000c658 F 644 .text.std_clk_calib + R_Array 0x0000c912 O 820 .rodata + Diaital 0x0000cc46 O 10 .rodata + __thenan_df 0x0000cc80 O 20 .rodata + __clz_tab 0x0000cc94 O 256 .rodata + _end_rodata 0x0000d1c8 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 + Printf_Ch 0x20000068 O 1 .data + MCU_Touch_CH 0x20000069 O 5 .data + s_tkey 0x20000070 O 1 .data + samp_setover_f 0x20000071 O 1 .data + scan_step_temp 0x20000072 O 1 .data + SigleTK_longpress_time 0x20000074 O 2 .data + tk_dataturn_en 0x20000076 O 1 .data + tk_overflow_en 0x20000077 O 1 .data + tk_div 0x20000078 O 34 .data + neg_build_bounce 0x2000009a O 1 .data + pos_build_bounce 0x2000009b O 1 .data + Valid_SingleKey_Num 0x2000009c O 1 .data + tk_scan_para0 0x200000a0 O 4 .data + tk_scan_para1 0x200000a4 O 4 .data + tk_scan_para2 0x200000a8 O 4 .data + TkeyRebaseTime 0x200000ac O 1 .data + _end_data 0x200000b0 0 .data + Sav_Temp 0x200000b0 O 4 .bss + _bss_start 0x200000b0 0 .bss + Sys_RSR 0x200000b4 O 4 .bss + SysTick_100us 0x200000bc O 4 .bss + SysTick_1ms 0x200000c0 O 4 .bss + DealBuffer 0x200000c4 O 100 .bss + DealLen 0x20000128 O 2 .bss + RS485_Comming 0x2000012c O 4 .bss + RS485_Comm_Flag 0x20000130 O 4 .bss + RS485_Comm_Start 0x20000134 O 4 .bss + RS485_Comm_End 0x20000138 O 4 .bss + tm1812_param 0x20000140 O 232 .bss + K 0x20000228 O 1 .bss + K2 0x20000229 O 1 .bss + keymap_strict_mode 0x20000235 O 1 .bss + Press_debounce_data 0x20000238 O 1 .bss + TK_Lowpower_mode 0x20000239 O 1 .bss + TK_Lowpower_level 0x2000023a O 1 .bss + TK_longpress_time 0x2000023c O 4 .bss + Release_debounce_data 0x20000240 O 1 .bss + Key_mode 0x20000241 O 1 .bss + TK_icon 0x20000242 O 34 .bss + MultiTimes_Filter 0x20000264 O 1 .bss + Base_Speed 0x20000265 O 1 .bss + TK_IO_ENABLE 0x20000268 O 4 .bss + Valid_Key_Num 0x2000026c O 1 .bss + TK_senprd 0x2000026e O 34 .bss + TK_Wakeup_level 0x20000290 O 1 .bss + TK_Triggerlevel 0x20000292 O 34 .bss + TK_EC_LEVEL 0x200002b4 O 2 .bss + TK_FVR_LEVEL 0x200002b6 O 2 .bss + TK_BaseCnt 0x200002b8 O 4 .bss + TK_PSEL_MODE 0x200002bc O 2 .bss + R_CMPB_BUF 0x200002c0 O 4 .bss + R_CMPA_BUF 0x200002c4 O 4 .bss + R_SIORX_buf 0x200002c8 O 40 .bss + g_uart 0x200002f0 O 345 .bss + m_send 0x2000044c O 88 .bss + touch_para 0x200004a4 O 28 .bss + g_key 0x200004c0 O 52 .bss + g_eeprom 0x200004f4 O 8 .bss + g_mcu_dev 0x200004fc O 37 .bss + g_adc 0x20000521 O 80 .bss + g_switch 0x20000574 O 28 .bss + HT1621 0x20000590 O 64 .bss + g_boot 0x200005d0 O 316 .bss + g_app_feature 0x2000070c O 256 .bss + TempCtrl 0x2000080c O 41 .bss + Debug_Inf 0x20000835 O 14 .bss + c_rly 0x20000844 O 12 .bss + Tk_press_time_cnt4 0x20000850 O 4 .bss + baseline_data0 0x20000854 O 34 .bss + TK_Postive_build2 0x20000876 O 17 .bss + Key_Map1 0x20000888 O 4 .bss + Valid_Key_Num_CNT 0x2000088c O 3 .bss + offset_data2_abs 0x20000890 O 34 .bss + time_cnt0 0x200008b4 O 4 .bss + offset0_max_tempB 0x200008b8 O 2 .bss + scan_f 0x200008ba O 1 .bss + offset_data1_abs 0x200008bc O 34 .bss + TK_Slider1_Value 0x200008de O 1 .bss + TK_Wheel_Value 0x200008df O 1 .bss + Release_debounce0 0x200008e0 O 17 .bss + Key_Map0 0x200008f4 O 4 .bss + Tk_press_time_cnt2 0x200008f8 O 4 .bss + TK_Slider0_Seq 0x200008fc O 4 .bss + bsae_over_f 0x20000900 O 1 .bss + Press_debounce0 0x20000901 O 17 .bss + Valid_key_f 0x20000912 O 1 .bss + offset_data0 0x20000914 O 34 .bss + offset2_max_tempA 0x20000936 O 2 .bss + TK_Scan_Freq1 0x20000938 O 4 .bss + sampling_data1 0x2000093c O 34 .bss + TK_Slider1_Level 0x2000095e O 1 .bss + TK_Slider1_Function 0x2000095f O 1 .bss + base_update_fs 0x20000960 O 3 .bss + TK_Slider0_Function 0x20000963 O 1 .bss + Tk_press_time_cnt3 0x20000964 O 4 .bss + TK_Scan_Freq2 0x20000968 O 4 .bss + Key_Map2 0x2000096c O 4 .bss + Release_debounce1 0x20000970 O 17 .bss + tk_overflow_f 0x20000981 O 1 .bss + time_cnt2 0x20000984 O 4 .bss + TK_Negtive_build2 0x20000988 O 17 .bss + base_update_f 0x20000999 O 1 .bss + TK_Postive_build1 0x2000099a O 17 .bss + offset_max_data 0x200009ac O 64 .bss + time_cnt 0x200009ec O 4 .bss + lpt_scan_pend_cnt 0x200009f0 O 2 .bss + TK_track_cnt 0x200009f2 O 1 .bss + Key_Map 0x200009f4 O 4 .bss + Key_Map2_temp 0x200009f8 O 4 .bss + offset2_max_tempB 0x200009fc O 2 .bss + baseline_data1 0x200009fe O 34 .bss + TK_Postive_build0 0x20000a20 O 17 .bss + sampling_data2 0x20000a32 O 34 .bss + offset_data1 0x20000a54 O 34 .bss + TK_ovrdect_cnt 0x20000a76 O 1 .bss + TK_Slider0_Level 0x20000a77 O 1 .bss + time_cnt1 0x20000a78 O 4 .bss + Press_debounce2 0x20000a7c O 17 .bss + Tk_press_time_cnt0 0x20000a90 O 4 .bss + Key_Map0_temp 0x20000a94 O 4 .bss + TK_Negtive_build1 0x20000a98 O 17 .bss + coret_spread_step 0x20000aa9 O 1 .bss + time_cnts 0x20000aaa O 3 .bss + offset0_max_tempA 0x20000aae O 2 .bss + tk_num 0x20000ab0 O 1 .bss + TK_Slider1_Seq 0x20000ab1 O 4 .bss + offset1_max_tempB 0x20000ab6 O 2 .bss + TK_Negtive_build0 0x20000ab8 O 17 .bss + R_Debounce_temp2 0x20000acc O 4 .bss + Tk_press_time_cnt1 0x20000ad0 O 4 .bss + Press_debounce1 0x20000ad4 O 17 .bss + TK_Wheel_Seq 0x20000ae5 O 4 .bss + TK_Slider0_Value 0x20000ae9 O 1 .bss + Release_debounce2 0x20000aea O 17 .bss + r_Key_Map_Temp 0x20000afc O 4 .bss + tk_seque 0x20000b00 O 17 .bss + scan_step 0x20000b11 O 1 .bss + TK_Wheel_Level 0x20000b12 O 1 .bss + baseline_data2 0x20000b14 O 34 .bss + tk_sampling_max 0x20000b36 O 34 .bss + Key_Map1_temp 0x20000b58 O 4 .bss + coret_spread_cnt 0x20000b5c O 2 .bss + offset_data0_abs 0x20000b5e O 34 .bss + offset_data2 0x20000b80 O 34 .bss + TK_Wheel_Function 0x20000ba2 O 1 .bss + offset1_max_tempA 0x20000ba4 O 2 .bss + sampling_data0 0x20000ba6 O 34 .bss + TK_Scan_Freq0 0x20000bc8 O 4 .bss + _ebss 0x20000bcc 0 .bss + _end 0x20000bcc 0 .bss + end 0x20000bcc 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: 0x0000a9c8, 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 1294 .text pow.o + 0x0000335e 0x00000006 Code RO 1302 .text fabs.o + 0x00003364 0x00000020 Code RO 1308 .text scalbn.o + 0x00003384 0x00000178 Code RO 1315 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1326 .text _csky_case_uqi.o + 0x00003510 0x0000001c Code RO 1331 .text _csky_case_shi.o + 0x0000352c 0x0000001a Code RO 1336 .text _csky_case_uhi.o + 0x00003546 0x00000002 PAD + 0x00003548 0x00000038 Code RO 1341 .text _fixunsdfsi.o + 0x00003580 0x0000033a Code RO 1348 .text _addsub_df.o + 0x000038ba 0x00000002 PAD + 0x000038bc 0x00000234 Code RO 1355 .text _mul_df.o + 0x00003af0 0x00000154 Code RO 1362 .text _div_df.o + 0x00003c44 0x0000003c Code RO 1369 .text _gt_df.o + 0x00003c80 0x0000003c Code RO 1376 .text _ge_df.o + 0x00003cbc 0x0000003a Code RO 1383 .text _le_df.o + 0x00003cf6 0x00000002 PAD + 0x00003cf8 0x00000070 Code RO 1390 .text _si_to_df.o + 0x00003d68 0x00000070 Code RO 1397 .text _df_to_si.o + 0x00003dd8 0x00000054 Code RO 1411 .text _usi_to_df.o + 0x00003e2c 0x00000044 Code RO 1418 .text _muldi3.o + 0x00003e70 0x00000040 Code RO 1425 .text _clzsi2.o + 0x00003eb0 0x0000019c Code RO 1431 .text _pack_df.o + 0x0000404c 0x000000c4 Code RO 1438 .text _unpack_df.o + 0x00004110 0x0000008c Code RO 1445 .text _fpcmp_parts_df.o + 0x0000419c 0x00000088 Code RO 1466 .text memset_fast.o + 0x00004224 0x00000064 Code RO 1471 .text memcpy_fast.o + 0x00004288 0x00000026 Code RO 1477 .text strncmp.o + 0x000042b0 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x000042e8 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x0000435c 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x000043a8 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x000043d8 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00004460 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00004488 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x000044c4 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000044d8 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000044f0 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00004510 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x0000452c 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00004548 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00004588 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x000045bc 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x000045c0 0x00000010 Code RO 89 .text.EXI3_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000045d0 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000045e0 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000045ec 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000045f8 0x00000014 Code RO 111 .text.SYSCON_Software_Reset Obj/FWlib_apt32f102_syscon.o + 0x0000460c 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00004630 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00004660 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00004740 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00004754 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00004764 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00004870 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x0000496c 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000049d8 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000049e0 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000049e8 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000049fe 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00004a10 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00004a24 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00004a34 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00004a50 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00004a58 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00004a62 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00004a7a 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00004aa6 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00004aac 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00004ac0 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00004ad0 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x00004af0 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x00004b50 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x00004b60 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x00004bb0 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00004bc8 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00004be0 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00004bf8 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00004c14 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00004c30 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00004d1c 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00004d2c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00004d3c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00004d5c 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00004d84 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00004de8 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00004df8 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x00004e18 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00004e44 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00004e50 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00004e78 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00004e8c 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00004ea4 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00004eb8 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00004f34 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x000050cc 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x0000524c 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x000052ec 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00005318 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00005458 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00005470 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00005488 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00005498 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x000054a8 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x000054b8 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x000054c8 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x0000551c 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00005548 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x0000556c 0x0000008c Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x000055f8 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00005658 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000056bc 0x00000098 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00005754 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00005844 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000058ac 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00005914 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00005ac0 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00005af4 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00005b74 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00005be4 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00005c20 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00005c5c 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00005cf0 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00005dd8 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00005e2c 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00005e5c 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00005e8c 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00005ed4 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00005f40 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00005fc0 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00005ff4 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00006040 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000060b0 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000060b2 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000060ba 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000060c2 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000060ca 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000060d2 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x000060da 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x000060e2 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x000060ea 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x000060f2 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x000060fa 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00006102 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000610a 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00006114 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00006138 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x0000615c 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00006180 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000061a4 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000061aa 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000061b0 0x00000120 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000062d0 0x00000068 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00006338 0x000000cc Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00006404 0x000000c4 Code RO 843 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x000064c8 0x00000068 Code RO 844 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00006530 0x0000005c Code RO 845 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000658c 0x00000010 Code RO 846 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000659c 0x00000048 Code RO 848 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x000065e4 0x00000040 Code RO 850 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00006624 0x00000058 Code RO 851 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x0000667c 0x0000000c Code RO 853 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00006688 0x00000002 Code RO 854 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x0000668c 0x00000068 Code RO 871 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x000066f4 0x00000254 Code RO 873 .text.TouchKey_RS485_Printf_2 Obj/SYSTEM_touch_key.o + 0x00006948 0x0000003c Code RO 876 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00006984 0x000000ac Code RO 878 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00006a30 0x0000003c Code RO 879 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00006a6c 0x000000f0 Code RO 880 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00006b5c 0x00000018 Code RO 881 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00006b74 0x00000070 Code RO 882 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00006be4 0x000000b8 Code RO 883 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00006c9c 0x000000f8 Code RO 884 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00006d94 0x00000038 Code RO 885 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00006dcc 0x000000b0 Code RO 886 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00006e7c 0x0000001a Code RO 887 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00006e98 0x000000d8 Code RO 888 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00006f70 0x00000016 Code RO 907 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00006f88 0x00000074 Code RO 908 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00006ffc 0x00000044 Code RO 909 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00007040 0x0000008c Code RO 911 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x000070cc 0x00000020 Code RO 912 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000070ec 0x0000006c Code RO 913 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00007158 0x000000ac Code RO 914 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00007204 0x000000e4 Code RO 915 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000072e8 0x00000070 Code RO 916 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00007358 0x00000080 Code RO 917 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x000073d8 0x00000070 Code RO 918 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00007448 0x00000040 Code RO 919 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00007488 0x00000038 Code RO 920 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x000074c0 0x00000058 Code RO 921 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00007518 0x00000090 Code RO 922 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000075a8 0x0000005c Code RO 940 .text.ADC_Init Obj/SYSTEM_adc.o + 0x00007604 0x00000048 Code RO 941 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x0000764c 0x0000008c Code RO 942 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000076d8 0x00000010 Code RO 943 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x000076e8 0x000000a8 Code RO 944 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x00007790 0x000000a8 Code RO 945 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00007838 0x000003ea Code RO 963 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00007c24 0x000003ea Code RO 964 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x00008010 0x00000028 Code RO 965 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00008038 0x00000044 Code RO 987 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x0000807c 0x00000120 Code RO 989 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x0000819c 0x000000a8 Code RO 990 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x00008244 0x0000005c Code RO 991 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x000082a0 0x00000024 Code RO 992 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x000082c4 0x00000070 Code RO 993 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x00008334 0x00000064 Code RO 994 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00008398 0x00000058 Code RO 995 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x000083f0 0x00000048 Code RO 1012 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x00008438 0x00000030 Code RO 1013 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00008468 0x000000b4 Code RO 1014 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x0000851c 0x00000050 Code RO 1018 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x0000856c 0x00000040 Code RO 1019 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x000085ac 0x0000004c Code RO 1020 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x000085f8 0x000000d0 Code RO 1021 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x000086c8 0x000000d0 Code RO 1022 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00008798 0x00000244 Code RO 1023 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x000089dc 0x000000d0 Code RO 1024 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00008aac 0x000000a4 Code RO 1025 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00008b50 0x00000048 Code RO 1026 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00008b98 0x000000dc Code RO 1027 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00008c74 0x00000030 Code RO 1028 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00008ca4 0x0000009c Code RO 1029 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00008d40 0x00000064 Code RO 1030 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00008da4 0x00000090 Code RO 1031 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00008e34 0x00000024 Code RO 1051 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x00008e58 0x0000005c Code RO 1053 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x00008eb4 0x00000014 Code RO 1057 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x00008ec8 0x00000190 Code RO 1058 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x00009058 0x0000017c Code RO 1079 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x000091d4 0x0000004c Code RO 1080 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00009220 0x00000050 Code RO 1081 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00009270 0x00000030 Code RO 1082 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x000092a0 0x00000030 Code RO 1083 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x000092d0 0x00000034 Code RO 1084 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00009304 0x000000cc Code RO 1085 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x000093d0 0x00000178 Code RO 1086 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00009548 0x000000e0 Code RO 1104 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009628 0x000000e0 Code RO 1105 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009708 0x00000110 Code RO 1106 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009818 0x00000078 Code RO 1107 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009890 0x00000110 Code RO 1108 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x000099a0 0x00000078 Code RO 1109 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00009a18 0x00000084 Code RO 1110 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009a9c 0x00000054 Code RO 1126 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00009af0 0x00000020 Code RO 1127 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00009b10 0x000004dc Code RO 1128 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00009fec 0x0000003c Code RO 1145 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x0000a028 0x000000a8 Code RO 1146 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x0000a0d0 0x0000007c Code RO 1147 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x0000a14c 0x00000028 Code RO 1164 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x0000a174 0x00000028 Code RO 1165 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x0000a19c 0x0000001c Code RO 1166 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x0000a1b8 0x0000001c Code RO 1167 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x0000a1d4 0x0000001c Code RO 1168 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x0000a1f0 0x0000001c Code RO 1169 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x0000a20c 0x00000014 Code RO 1170 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x0000a220 0x000000c8 Code RO 1171 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x0000a2e8 0x00000098 Code RO 1172 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x0000a380 0x0000004c Code RO 1189 .text.NetCRC16_Check Obj/USRCTRL_uart_protocol.o + 0x0000a3cc 0x0000003c Code RO 1190 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x0000a408 0x00000016 Code RO 1191 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x0000a420 0x00000100 Code RO 1192 .text.Rs485_ASend Obj/USRCTRL_uart_protocol.o + 0x0000a520 0x000000fc Code RO 1193 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x0000a61c 0x0000005c Code RO 1194 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x0000a678 0x00000068 Code RO 1195 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x0000a6e0 0x00000018 Code RO 1196 .text.Rs485_DevPort_ACK Obj/USRCTRL_uart_protocol.o + 0x0000a6f8 0x000001b0 Code RO 1197 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x0000a8a8 0x000000cc Code RO 1198 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x0000a974 0x00000010 Code RO 1224 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_f_1_18.o + 0x0000a984 0x00000028 Code RO 1227 .text.tk_clk_config FWlib_apt32f102_tkey_f_1_18.o + 0x0000a9ac 0x000000bc Code RO 1228 .text.TK_con0_config FWlib_apt32f102_tkey_f_1_18.o + 0x0000aa68 0x00000134 Code RO 1231 .text.tk_io_enable FWlib_apt32f102_tkey_f_1_18.o + 0x0000ab9c 0x00000128 Code RO 1232 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x0000acc4 0x000000cc Code RO 1233 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000ad90 0x00000028 Code RO 1237 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x0000adb8 0x00000028 Code RO 1238 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x0000ade0 0x00000028 Code RO 1239 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x0000ae08 0x00000028 Code RO 1240 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x0000ae30 0x00000150 Code RO 1241 .text.TK_Baseline_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000af80 0x00000148 Code RO 1242 .text.TK_Baseline_prog2 FWlib_apt32f102_tkey_f_1_18.o + 0x0000b0c8 0x00000124 Code RO 1243 .text.tk_poweron_data_fineturn FWlib_apt32f102_tkey_f_1_18.o + 0x0000b1ec 0x00000068 Code RO 1244 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x0000b254 0x00000870 Code RO 1245 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000bac4 0x00000128 Code RO 1246 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x0000bbec 0x000004d0 Code RO 1247 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x0000c0bc 0x00000130 Code RO 1248 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000c1ec 0x00000038 Code RO 1249 .text.get_key_seq FWlib_apt32f102_tkey_f_1_18.o + 0x0000c224 0x00000038 Code RO 1250 .text.CORET_CONFIG FWlib_apt32f102_tkey_f_1_18.o + 0x0000c25c 0x0000001c Code RO 1251 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_f_1_18.o + 0x0000c278 0x000000ac Code RO 1252 .text.tk_freq_para_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000c324 0x00000028 Code RO 1253 .text.tk_reserved_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000c34c 0x000000a0 Code RO 1254 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x0000c3ec 0x0000015c Code RO 1255 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x0000c548 0x00000110 Code RO 1256 .text.tk_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000c658 0x00000284 Code RO 1274 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000c8dc 0x00000035 Data RO 889 .rodata Obj/SYSTEM_touch_key.o + 0x0000c911 0x00000001 PAD + 0x0000c912 0x00000334 Data RO 946 .rodata Obj/SYSTEM_adc.o + 0x0000cc46 0x0000000a Data RO 1033 .rodata Obj/SYSTEM_ht1621.o + 0x0000cc50 0x00000030 Data RO 1297 .rodata pow.o + 0x0000cc80 0x00000014 Data RO 1407 .rodata _thenan_df.o + 0x0000cc94 0x00000100 Data RO 1455 .rodata _clz.o + 0x0000cd94 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x0000cda2 0x00000092 Data RO 890 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000ce34 0x00000199 Data RO 923 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000cfcd 0x00000011 Data RO 996 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x0000cfde 0x00000071 Data RO 1087 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000d04f 0x0000007e Data RO 1111 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000d0cd 0x00000045 Data RO 1129 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x0000d112 0x00000087 Data RO 1148 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x0000d199 0x0000002c Data RO 1199 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x0000d1c5 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000bcc, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000006 Data RW 869 .data Obj/SYSTEM_touch_key.o + 0x2000006e 0x00000002 PAD + 0x20000070 0x0000003d Data RW 1222 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000ad 0x00000003 PAD + 0x200000b0 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b8 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000c4 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x2000013c 0x00000004 Zero RW 939 .bss Obj/SYSTEM_adc.o + 0x20000140 0x000000f0 Zero RW 981 .bss Obj/SYSTEM_tm1812.o + 0x20000230 0x00000004 Zero RW 1078 .bss Obj/USRCTRL_tempctrl_unit.o + 0x20000234 0x00000001 Zero RW 1125 .bss Obj/USRCTRL_display_logic.o + 0x20000235 0x00000001 Zero RW 1223 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000236 0x00000002 PAD + 0x20000238 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002be 0x00000002 PAD + 0x200002c0 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002f0 0x000001b4 Zero RW 867 COMMON Obj/SYSTEM_uart.o + 0x200004a4 0x00000050 Zero RW 903 COMMON Obj/SYSTEM_touch_key.o + 0x200004f4 0x0000002d Zero RW 936 COMMON Obj/SYSTEM_eeprom.o + 0x20000521 0x00000050 Zero RW 959 COMMON Obj/SYSTEM_adc.o + 0x20000571 0x00000003 PAD + 0x20000574 0x0000001c Zero RW 978 COMMON Obj/SYSTEM_switch_fun.o + 0x20000590 0x00000040 Zero RW 1047 COMMON Obj/SYSTEM_ht1621.o + 0x200005d0 0x0000023c Zero RW 1075 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000080c 0x00000029 Zero RW 1100 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x20000835 0x0000000e Zero RW 1160 COMMON Obj/USRCTRL_debug_unit.o + 0x20000843 0x00000001 PAD + 0x20000844 0x0000000c Zero RW 1185 COMMON Obj/USRCTRL_myrelay.o + 0x20000850 0x0000037c Zero RW 1270 COMMON FWlib_apt32f102_tkey_f_1_18.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 268 Obj/arch_crt0.o + 56 0 0 0 802 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 888 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 940 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9303 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 14209 Obj/main.o + 564 0 0 0 16812 Obj/mcu_initial.o + 2494 0 0 60 16282 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1242 0 0 556 16614 Obj/SYSTEM_uart.o + 2274 199 6 80 17638 Obj/SYSTEM_touch_key.o + 1590 409 0 45 16277 Obj/SYSTEM_eeprom.o + 656 820 0 84 14275 Obj/SYSTEM_adc.o + 2044 0 0 28 14601 Obj/SYSTEM_switch_fun.o + 952 17 0 240 15591 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17918 Obj/SYSTEM_ht1621.o + 548 0 0 572 17956 Obj/SYSTEM_Bootload_fun.o + 1264 113 0 45 13345 Obj/USRCTRL_tempctrl_unit.o + 1364 126 0 0 12901 Obj/USRCTRL_key_logic.o + 1360 69 0 1 12634 Obj/USRCTRL_display_logic.o + 352 135 0 14 12360 Obj/USRCTRL_debug_unit.o + 564 0 0 12 13886 Obj/USRCTRL_myrelay.o + 1522 44 0 0 14812 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 26714 1956 110 1943 445519 Object Totals + 6 4 5 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 7396 0 61 893 20058 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 7396 0 61 893 20058 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + 41148 2284 176 2844 474252 Grand Totals + 41148 2284 176 2844 474252 Elf Image Totals + 41148 2284 176 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 43432 ( 42.41kB) +Total RW Size (RW Data + ZI Data) 3020 ( 2.95kB) +Total ROM Size (Code + RO Data + RW Data) 43608 ( 42.59kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250507.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250507.asm new file mode 100644 index 0000000..a230bd5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250507.asm @@ -0,0 +1,26887 @@ + +.//Obj/T1_TC_34650_V04_20250507.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00002800 : + 2800: 0000290c .long 0x0000290c + 2804: 00006126 .long 0x00006126 + 2808: 00006116 .long 0x00006116 + 280c: 00002984 .long 0x00002984 + 2810: 0000611e .long 0x0000611e + 2814: 000060dc .long 0x000060dc + 2818: 00002984 .long 0x00002984 + 281c: 0000610e .long 0x0000610e + 2820: 00006106 .long 0x00006106 + 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: 000060fe .long 0x000060fe + 2844: 000060f6 .long 0x000060f6 + 2848: 000060ee .long 0x000060ee + 284c: 000060e6 .long 0x000060e6 + 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: 000060de .long 0x000060de + 2880: 0000c23c .long 0x0000c23c + 2884: 00005780 .long 0x00005780 + 2888: 00005870 .long 0x00005870 + 288c: 000058d8 .long 0x000058d8 + 2890: 00005940 .long 0x00005940 + 2894: 00002984 .long 0x00002984 + 2898: 00005aec .long 0x00005aec + 289c: 00005e58 .long 0x00005e58 + 28a0: 00005e88 .long 0x00005e88 + 28a4: 00005b20 .long 0x00005b20 + 28a8: 00002984 .long 0x00002984 + 28ac: 00002984 .long 0x00002984 + 28b0: 00005ba0 .long 0x00005ba0 + 28b4: 00005c10 .long 0x00005c10 + 28b8: 00005c4c .long 0x00005c4c + 28bc: 00005c88 .long 0x00005c88 + 28c0: 00002984 .long 0x00002984 + 28c4: 00006136 .long 0x00006136 + 28c8: 00002984 .long 0x00002984 + 28cc: 00005d1c .long 0x00005d1c + 28d0: 00005e04 .long 0x00005e04 + 28d4: 00005eb8 .long 0x00005eb8 + 28d8: 00005f00 .long 0x00005f00 + 28dc: 00005f6c .long 0x00005f6c + 28e0: 0000612e .long 0x0000612e + 28e4: 0000c19c .long 0x0000c19c + 28e8: 00005fec .long 0x00005fec + 28ec: 00002984 .long 0x00002984 + 28f0: 00006020 .long 0x00006020 + 28f4: 0000606c .long 0x0000606c + 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, 0x4288 // 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, 0x54f0 // 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: 00004288 .long 0x00004288 + 2998: 00002960 .long 0x00002960 + 299c: 000054f0 .long 0x000054f0 + 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: e000072f bsr 0x3854 // 3854 <__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: e0000715 bsr 0x3884 // 3884 <__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: e000082a bsr 0x3af0 // 3af0 <__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: e00006ec bsr 0x38bc // 38bc <__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: e00007e0 bsr 0x3af0 // 3af0 <__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: e000069b bsr 0x3884 // 3884 <__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: e0000666 bsr 0x3884 // 3884 <__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: e000067c bsr 0x38bc // 38bc <__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: e0000674 bsr 0x38bc // 38bc <__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: e000066c bsr 0x38bc // 38bc <__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: e000064a bsr 0x3884 // 3884 <__subdf3> + 2bf4: 6c97 mov r2, r5 + 2bf6: 6cd3 mov r3, r4 + 2bf8: e0000662 bsr 0x38bc // 38bc <__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: e0000640 bsr 0x3884 // 3884 <__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: e0000654 bsr 0x38bc // 38bc <__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: e000064e bsr 0x38bc // 38bc <__muldf3> + 2c24: 1346 lrw r2, 0x652b82fe // 2dbc <__GI_pow+0x408> + 2c26: 1360 lrw r3, 0x3ff71547 // 2da4 <__GI_pow+0x3f0> + 2c28: e000064a bsr 0x38bc // 38bc <__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: e0000628 bsr 0x3884 // 3884 <__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: e0000608 bsr 0x3854 // 3854 <__adddf3> + 2c48: 6c9f mov r2, r7 + 2c4a: 6cdb mov r3, r6 + 2c4c: 3000 movi r0, 0 + 2c4e: b823 st.w r1, (r14, 0xc) + 2c50: e000061a bsr 0x3884 // 3884 <__subdf3> + 2c54: 6c83 mov r2, r0 + 2c56: 6cc7 mov r3, r1 + 2c58: 6c17 mov r0, r5 + 2c5a: 6c53 mov r1, r4 + 2c5c: e0000614 bsr 0x3884 // 3884 <__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: e0000603 bsr 0x3884 // 3884 <__subdf3> + 2c82: 9863 ld.w r3, (r14, 0xc) + 2c84: 3200 movi r2, 0 + 2c86: e000061b bsr 0x38bc // 38bc <__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: e0000613 bsr 0x38bc // 38bc <__muldf3> + 2c9a: 6c83 mov r2, r0 + 2c9c: 6cc7 mov r3, r1 + 2c9e: 6c1f mov r0, r7 + 2ca0: 6c5b mov r1, r6 + 2ca2: e00005d9 bsr 0x3854 // 3854 <__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: e0000605 bsr 0x38bc // 38bc <__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: e00005c7 bsr 0x3854 // 3854 <__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: e00005e7 bsr 0x38bc // 38bc <__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: e00005dc bsr 0x38bc // 38bc <__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, 0xcaa0 // 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: e000059a bsr 0x3884 // 3884 <__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: e000057a bsr 0x3854 // 3854 <__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: e00006c2 bsr 0x3af0 // 3af0 <__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: 0000caa0 .long 0x0000caa0 + 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: e000056a bsr 0x38bc // 38bc <__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: e000055b bsr 0x38bc // 38bc <__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: e0000539 bsr 0x3884 // 3884 <__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: e0000531 bsr 0x3884 // 3884 <__subdf3> + 2e26: 6c83 mov r2, r0 + 2e28: 6cc7 mov r3, r1 + 2e2a: 6c13 mov r0, r4 + 2e2c: 6c5f mov r1, r7 + 2e2e: e000052b bsr 0x3884 // 3884 <__subdf3> + 2e32: 6cdb mov r3, r6 + 2e34: 3200 movi r2, 0 + 2e36: e0000543 bsr 0x38bc // 38bc <__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: e0000521 bsr 0x3884 // 3884 <__subdf3> + 2e46: 984b ld.w r2, (r14, 0x2c) + 2e48: 986c ld.w r3, (r14, 0x30) + 2e4a: e0000539 bsr 0x38bc // 38bc <__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: e0000531 bsr 0x38bc // 38bc <__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: e0000529 bsr 0x38bc // 38bc <__muldf3> + 2e6e: ea820111 lrw r2, 0x93c9db65 // 32b0 <__GI_pow+0x8fc> + 2e72: ea830111 lrw r3, 0x3fcd864a // 32b4 <__GI_pow+0x900> + 2e76: e00004ef bsr 0x3854 // 3854 <__adddf3> + 2e7a: 6c97 mov r2, r5 + 2e7c: 6cd3 mov r3, r4 + 2e7e: e000051f bsr 0x38bc // 38bc <__muldf3> + 2e82: ea82010e lrw r2, 0xa91d4101 // 32b8 <__GI_pow+0x904> + 2e86: ea83010e lrw r3, 0x3fd17460 // 32bc <__GI_pow+0x908> + 2e8a: e00004e5 bsr 0x3854 // 3854 <__adddf3> + 2e8e: 6c97 mov r2, r5 + 2e90: 6cd3 mov r3, r4 + 2e92: e0000515 bsr 0x38bc // 38bc <__muldf3> + 2e96: ea82010b lrw r2, 0x518f264d // 32c0 <__GI_pow+0x90c> + 2e9a: ea83010b lrw r3, 0x3fd55555 // 32c4 <__GI_pow+0x910> + 2e9e: e00004db bsr 0x3854 // 3854 <__adddf3> + 2ea2: 6c97 mov r2, r5 + 2ea4: 6cd3 mov r3, r4 + 2ea6: e000050b bsr 0x38bc // 38bc <__muldf3> + 2eaa: ea820108 lrw r2, 0xdb6fabff // 32c8 <__GI_pow+0x914> + 2eae: ea830108 lrw r3, 0x3fdb6db6 // 32cc <__GI_pow+0x918> + 2eb2: e00004d1 bsr 0x3854 // 3854 <__adddf3> + 2eb6: 6c97 mov r2, r5 + 2eb8: 6cd3 mov r3, r4 + 2eba: e0000501 bsr 0x38bc // 38bc <__muldf3> + 2ebe: ea820105 lrw r2, 0x33333303 // 32d0 <__GI_pow+0x91c> + 2ec2: ea830105 lrw r3, 0x3fe33333 // 32d4 <__GI_pow+0x920> + 2ec6: e00004c7 bsr 0x3854 // 3854 <__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: e00004f3 bsr 0x38bc // 38bc <__muldf3> + 2eda: 6c83 mov r2, r0 + 2edc: 6cc7 mov r3, r1 + 2ede: 6c1f mov r0, r7 + 2ee0: 9829 ld.w r1, (r14, 0x24) + 2ee2: e00004ed bsr 0x38bc // 38bc <__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: e00004b1 bsr 0x3854 // 3854 <__adddf3> + 2ef6: 9845 ld.w r2, (r14, 0x14) + 2ef8: 9866 ld.w r3, (r14, 0x18) + 2efa: e00004e1 bsr 0x38bc // 38bc <__muldf3> + 2efe: 6c97 mov r2, r5 + 2f00: 6cd3 mov r3, r4 + 2f02: e00004a9 bsr 0x3854 // 3854 <__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: e00004d5 bsr 0x38bc // 38bc <__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: e000049b bsr 0x3854 // 3854 <__adddf3> + 2f22: 6c97 mov r2, r5 + 2f24: 9869 ld.w r3, (r14, 0x24) + 2f26: e0000497 bsr 0x3854 // 3854 <__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: e00004c4 bsr 0x38bc // 38bc <__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: e00004a0 bsr 0x3884 // 3884 <__subdf3> + 2f48: 6c9f mov r2, r7 + 2f4a: 986a ld.w r3, (r14, 0x28) + 2f4c: e000049c bsr 0x3884 // 3884 <__subdf3> + 2f50: 6c83 mov r2, r0 + 2f52: 6cc7 mov r3, r1 + 2f54: 6c17 mov r0, r5 + 2f56: 9829 ld.w r1, (r14, 0x24) + 2f58: e0000496 bsr 0x3884 // 3884 <__subdf3> + 2f5c: 9843 ld.w r2, (r14, 0xc) + 2f5e: 6cdb mov r3, r6 + 2f60: e00004ae bsr 0x38bc // 38bc <__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: e00004a6 bsr 0x38bc // 38bc <__muldf3> + 2f74: 6c83 mov r2, r0 + 2f76: 6cc7 mov r3, r1 + 2f78: 6c1b mov r0, r6 + 2f7a: 6c57 mov r1, r5 + 2f7c: e000046c bsr 0x3854 // 3854 <__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: e0000464 bsr 0x3854 // 3854 <__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: e0000491 bsr 0x38bc // 38bc <__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: e000046d bsr 0x3884 // 3884 <__subdf3> + 2fae: 6c83 mov r2, r0 + 2fb0: 6cc7 mov r3, r1 + 2fb2: 6c1f mov r0, r7 + 2fb4: 6c5b mov r1, r6 + 2fb6: e0000467 bsr 0x3884 // 3884 <__subdf3> + 2fba: 0155 lrw r2, 0xdc3a03fd // 32e0 <__GI_pow+0x92c> + 2fbc: 0177 lrw r3, 0x3feec709 // 32dc <__GI_pow+0x928> + 2fbe: e000047f bsr 0x38bc // 38bc <__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: e0000477 bsr 0x38bc // 38bc <__muldf3> + 2fd2: 6c83 mov r2, r0 + 2fd4: 6cc7 mov r3, r1 + 2fd6: 6c1f mov r0, r7 + 2fd8: 6c57 mov r1, r5 + 2fda: e000043d bsr 0x3854 // 3854 <__adddf3> + 2fde: 01db lrw r6, 0xcaa0 // 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: e0000436 bsr 0x3854 // 3854 <__adddf3> + 2fec: b809 st.w r0, (r14, 0x24) + 2fee: 9804 ld.w r0, (r14, 0x10) + 2ff0: b82a st.w r1, (r14, 0x28) + 2ff2: e0000683 bsr 0x3cf8 // 3cf8 <__floatsidf> + 2ff6: 6d83 mov r6, r0 + 2ff8: 0202 lrw r0, 0xcaa0 // 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: e0000423 bsr 0x3854 // 3854 <__adddf3> + 3012: 6c93 mov r2, r4 + 3014: 6cdf mov r3, r7 + 3016: e000041f bsr 0x3854 // 3854 <__adddf3> + 301a: 6c9b mov r2, r6 + 301c: 6cd7 mov r3, r5 + 301e: e000041b bsr 0x3854 // 3854 <__adddf3> + 3022: 6c9b mov r2, r6 + 3024: 6cd7 mov r3, r5 + 3026: 3000 movi r0, 0 + 3028: b823 st.w r1, (r14, 0xc) + 302a: e000042d bsr 0x3884 // 3884 <__subdf3> + 302e: 6c93 mov r2, r4 + 3030: 6cdf mov r3, r7 + 3032: e0000429 bsr 0x3884 // 3884 <__subdf3> + 3036: 9845 ld.w r2, (r14, 0x14) + 3038: 9866 ld.w r3, (r14, 0x18) + 303a: e0000425 bsr 0x3884 // 3884 <__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: e00003fc bsr 0x3854 // 3854 <__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: e000040c bsr 0x3884 // 3884 <__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: e00005e6 bsr 0x3c44 // 3c44 <__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: e00003dc bsr 0x3884 // 3884 <__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: e00003bc bsr 0x3854 // 3854 <__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: e00003ea bsr 0x38bc // 38bc <__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: e00003c6 bsr 0x3884 // 3884 <__subdf3> + 30fc: 6c83 mov r2, r0 + 30fe: 6cc7 mov r3, r1 + 3100: 6c1f mov r0, r7 + 3102: 6c5b mov r1, r6 + 3104: e00003c0 bsr 0x3884 // 3884 <__subdf3> + 3108: 035d lrw r2, 0xfefa39ef // 3310 <__GI_pow+0x95c> + 310a: 037c lrw r3, 0x3fe62e42 // 3314 <__GI_pow+0x960> + 310c: e00003d8 bsr 0x38bc // 38bc <__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: e00003d0 bsr 0x38bc // 38bc <__muldf3> + 3120: 6c83 mov r2, r0 + 3122: 6cc7 mov r3, r1 + 3124: 6c1f mov r0, r7 + 3126: 6c5b mov r1, r6 + 3128: e0000396 bsr 0x3854 // 3854 <__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: e000038e bsr 0x3854 // 3854 <__adddf3> + 313c: 9842 ld.w r2, (r14, 0x8) + 313e: 6cd7 mov r3, r5 + 3140: 6dc3 mov r7, r0 + 3142: 6d87 mov r6, r1 + 3144: e00003a0 bsr 0x3884 // 3884 <__subdf3> + 3148: 6c83 mov r2, r0 + 314a: 6cc7 mov r3, r1 + 314c: 9803 ld.w r0, (r14, 0xc) + 314e: 6c53 mov r1, r4 + 3150: e000039a bsr 0x3884 // 3884 <__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: e00003ae bsr 0x38bc // 38bc <__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: e00003a8 bsr 0x38bc // 38bc <__muldf3> + 3170: 134e lrw r2, 0xc5d26bf1 // 3328 <__GI_pow+0x974> + 3172: 136f lrw r3, 0x3ebbbd41 // 332c <__GI_pow+0x978> + 3174: e0000388 bsr 0x3884 // 3884 <__subdf3> + 3178: 6c97 mov r2, r5 + 317a: 6cd3 mov r3, r4 + 317c: e00003a0 bsr 0x38bc // 38bc <__muldf3> + 3180: 134c lrw r2, 0xaf25de2c // 3330 <__GI_pow+0x97c> + 3182: 136d lrw r3, 0x3f11566a // 3334 <__GI_pow+0x980> + 3184: e0000368 bsr 0x3854 // 3854 <__adddf3> + 3188: 6c97 mov r2, r5 + 318a: 6cd3 mov r3, r4 + 318c: e0000398 bsr 0x38bc // 38bc <__muldf3> + 3190: 134a lrw r2, 0x16bebd93 // 3338 <__GI_pow+0x984> + 3192: 136b lrw r3, 0x3f66c16c // 333c <__GI_pow+0x988> + 3194: e0000378 bsr 0x3884 // 3884 <__subdf3> + 3198: 6c97 mov r2, r5 + 319a: 6cd3 mov r3, r4 + 319c: e0000390 bsr 0x38bc // 38bc <__muldf3> + 31a0: 1348 lrw r2, 0x5555553e // 3340 <__GI_pow+0x98c> + 31a2: 1369 lrw r3, 0x3fc55555 // 3344 <__GI_pow+0x990> + 31a4: e0000358 bsr 0x3854 // 3854 <__adddf3> + 31a8: 6c97 mov r2, r5 + 31aa: 6cd3 mov r3, r4 + 31ac: e0000388 bsr 0x38bc // 38bc <__muldf3> + 31b0: 6c83 mov r2, r0 + 31b2: 6cc7 mov r3, r1 + 31b4: 6c1f mov r0, r7 + 31b6: 6c5b mov r1, r6 + 31b8: e0000366 bsr 0x3884 // 3884 <__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: e000037a bsr 0x38bc // 38bc <__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: e0000355 bsr 0x3884 // 3884 <__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: e0000485 bsr 0x3af0 // 3af0 <__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: e0000363 bsr 0x38bc // 38bc <__muldf3> + 31fa: 9842 ld.w r2, (r14, 0x8) + 31fc: 9863 ld.w r3, (r14, 0xc) + 31fe: e000032b bsr 0x3854 // 3854 <__adddf3> + 3202: 6c83 mov r2, r0 + 3204: 6cc7 mov r3, r1 + 3206: 6c17 mov r0, r5 + 3208: 6c53 mov r1, r4 + 320a: e000033d bsr 0x3884 // 3884 <__subdf3> + 320e: 6c9f mov r2, r7 + 3210: 6cdb mov r3, r6 + 3212: e0000339 bsr 0x3884 // 3884 <__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: e0000333 bsr 0x3884 // 3884 <__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: e0000331 bsr 0x38bc // 38bc <__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: e000030b bsr 0x3884 // 3884 <__subdf3> + 3272: 6c83 mov r2, r0 + 3274: 6cc7 mov r3, r1 + 3276: 6c1f mov r0, r7 + 3278: 6c5b mov r1, r6 + 327a: e0000521 bsr 0x3cbc // 3cbc <__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: 0000caa0 .long 0x0000caa0 + 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: e000028f bsr 0x38bc // 38bc <__muldf3> + 33a2: 6c83 mov r2, r0 + 33a4: 6cc7 mov r3, r1 + 33a6: 6c17 mov r0, r5 + 33a8: 6c53 mov r1, r4 + 33aa: e0000255 bsr 0x3854 // 3854 <__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: e0000258 bsr 0x3884 // 3884 <__subdf3> + 33d8: 6c83 mov r2, r0 + 33da: 6cc7 mov r3, r1 + 33dc: e000038a bsr 0x3af0 // 3af0 <__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_shi>: + 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: 7447 sexth r1, r1 + 3520: 4121 lsli r1, r1, 1 + 3522: 63c4 addu r15, r1 + 3524: 9801 ld.w r0, (r14, 0x4) + 3526: 9820 ld.w r1, (r14, 0x0) + 3528: 1402 addi r14, r14, 8 + 352a: 783c jmp r15 + +0000352c <___gnu_csky_case_uhi>: + 352c: 1422 subi r14, r14, 8 + 352e: b801 st.w r0, (r14, 0x4) + 3530: b820 st.w r1, (r14, 0x0) + 3532: 6c7f mov r1, r15 + 3534: 4001 lsli r0, r0, 1 + 3536: 6040 addu r1, r0 + 3538: 8920 ld.h r1, (r1, 0x0) + 353a: 4121 lsli r1, r1, 1 + 353c: 63c4 addu r15, r1 + 353e: 9801 ld.w r0, (r14, 0x4) + 3540: 9820 ld.w r1, (r14, 0x0) + 3542: 1402 addi r14, r14, 8 + 3544: 783c jmp r15 + ... + +00003548 <__fixunsdfsi>: + 3548: 14d2 push r4-r5, r15 + 354a: 3200 movi r2, 0 + 354c: 106c lrw r3, 0x41e00000 // 357c <__fixunsdfsi+0x34> + 354e: 6d43 mov r5, r0 + 3550: 6d07 mov r4, r1 + 3552: e0000397 bsr 0x3c80 // 3c80 <__gedf2> + 3556: 38df btsti r0, 31 + 3558: 0c06 bf 0x3564 // 3564 <__fixunsdfsi+0x1c> + 355a: 6c17 mov r0, r5 + 355c: 6c53 mov r1, r4 + 355e: e0000405 bsr 0x3d68 // 3d68 <__fixdfsi> + 3562: 1492 pop r4-r5, r15 + 3564: 3200 movi r2, 0 + 3566: 1066 lrw r3, 0x41e00000 // 357c <__fixunsdfsi+0x34> + 3568: 6c17 mov r0, r5 + 356a: 6c53 mov r1, r4 + 356c: e000018c bsr 0x3884 // 3884 <__subdf3> + 3570: e00003fc bsr 0x3d68 // 3d68 <__fixdfsi> + 3574: 3380 movi r3, 128 + 3576: 4378 lsli r3, r3, 24 + 3578: 600c addu r0, r3 + 357a: 1492 pop r4-r5, r15 + 357c: 41e00000 .long 0x41e00000 + +00003580 <_fpadd_parts>: + 3580: 14c4 push r4-r7 + 3582: 142a subi r14, r14, 40 + 3584: 9060 ld.w r3, (r0, 0x0) + 3586: 3b01 cmphsi r3, 2 + 3588: 6dcb mov r7, r2 + 358a: 0c67 bf 0x3658 // 3658 <_fpadd_parts+0xd8> + 358c: 9140 ld.w r2, (r1, 0x0) + 358e: 3a01 cmphsi r2, 2 + 3590: 0c66 bf 0x365c // 365c <_fpadd_parts+0xdc> + 3592: 3b44 cmpnei r3, 4 + 3594: 0cde bf 0x3750 // 3750 <_fpadd_parts+0x1d0> + 3596: 3a44 cmpnei r2, 4 + 3598: 0c62 bf 0x365c // 365c <_fpadd_parts+0xdc> + 359a: 3a42 cmpnei r2, 2 + 359c: 0cb7 bf 0x370a // 370a <_fpadd_parts+0x18a> + 359e: 3b42 cmpnei r3, 2 + 35a0: 0c5e bf 0x365c // 365c <_fpadd_parts+0xdc> + 35a2: 9043 ld.w r2, (r0, 0xc) + 35a4: 9064 ld.w r3, (r0, 0x10) + 35a6: 9082 ld.w r4, (r0, 0x8) + 35a8: 91a2 ld.w r5, (r1, 0x8) + 35aa: b842 st.w r2, (r14, 0x8) + 35ac: b863 st.w r3, (r14, 0xc) + 35ae: 9143 ld.w r2, (r1, 0xc) + 35b0: 9164 ld.w r3, (r1, 0x10) + 35b2: b840 st.w r2, (r14, 0x0) + 35b4: b861 st.w r3, (r14, 0x4) + 35b6: 5c75 subu r3, r4, r5 + 35b8: 3bdf btsti r3, 31 + 35ba: 6c8f mov r2, r3 + 35bc: 08d2 bt 0x3760 // 3760 <_fpadd_parts+0x1e0> + 35be: 363f movi r6, 63 + 35c0: 6499 cmplt r6, r2 + 35c2: 0c50 bf 0x3662 // 3662 <_fpadd_parts+0xe2> + 35c4: 6515 cmplt r5, r4 + 35c6: 0cbf bf 0x3744 // 3744 <_fpadd_parts+0x1c4> + 35c8: 3200 movi r2, 0 + 35ca: 3300 movi r3, 0 + 35cc: b840 st.w r2, (r14, 0x0) + 35ce: b861 st.w r3, (r14, 0x4) + 35d0: 9061 ld.w r3, (r0, 0x4) + 35d2: 9141 ld.w r2, (r1, 0x4) + 35d4: 648e cmpne r3, r2 + 35d6: 0c78 bf 0x36c6 // 36c6 <_fpadd_parts+0x146> + 35d8: 3b40 cmpnei r3, 0 + 35da: 0cad bf 0x3734 // 3734 <_fpadd_parts+0x1b4> + 35dc: 9800 ld.w r0, (r14, 0x0) + 35de: 9821 ld.w r1, (r14, 0x4) + 35e0: 9842 ld.w r2, (r14, 0x8) + 35e2: 9863 ld.w r3, (r14, 0xc) + 35e4: 6400 cmphs r0, r0 + 35e6: 600b subc r0, r2 + 35e8: 604f subc r1, r3 + 35ea: 39df btsti r1, 31 + 35ec: 08bd bt 0x3766 // 3766 <_fpadd_parts+0x1e6> + 35ee: 3300 movi r3, 0 + 35f0: b761 st.w r3, (r7, 0x4) + 35f2: b782 st.w r4, (r7, 0x8) + 35f4: 6c83 mov r2, r0 + 35f6: 6cc7 mov r3, r1 + 35f8: b703 st.w r0, (r7, 0xc) + 35fa: b724 st.w r1, (r7, 0x10) + 35fc: 3000 movi r0, 0 + 35fe: 3100 movi r1, 0 + 3600: 2800 subi r0, 1 + 3602: 2900 subi r1, 1 + 3604: 6401 cmplt r0, r0 + 3606: 6009 addc r0, r2 + 3608: 604d addc r1, r3 + 360a: 038f lrw r4, 0xfffffff // 3848 <_fpadd_parts+0x2c8> + 360c: 6450 cmphs r4, r1 + 360e: 0c67 bf 0x36dc // 36dc <_fpadd_parts+0x15c> + 3610: 6506 cmpne r1, r4 + 3612: 0cfd bf 0x380c // 380c <_fpadd_parts+0x28c> + 3614: 3000 movi r0, 0 + 3616: 9722 ld.w r1, (r7, 0x8) + 3618: 2801 subi r0, 2 + 361a: 2900 subi r1, 1 + 361c: 03d4 lrw r6, 0xfffffff // 3848 <_fpadd_parts+0x2c8> + 361e: b802 st.w r0, (r14, 0x8) + 3620: b8e0 st.w r7, (r14, 0x0) + 3622: 0403 br 0x3628 // 3628 <_fpadd_parts+0xa8> + 3624: 6596 cmpne r5, r6 + 3626: 0c83 bf 0x372c // 372c <_fpadd_parts+0x1ac> + 3628: 4301 lsli r0, r3, 1 + 362a: 4a9f lsri r4, r2, 31 + 362c: 6d00 or r4, r0 + 362e: 42a1 lsli r5, r2, 1 + 3630: 6c97 mov r2, r5 + 3632: 6cd3 mov r3, r4 + 3634: 3500 movi r5, 0 + 3636: 3400 movi r4, 0 + 3638: 2c00 subi r4, 1 + 363a: 2d00 subi r5, 1 + 363c: 6511 cmplt r4, r4 + 363e: 6109 addc r4, r2 + 3640: 614d addc r5, r3 + 3642: 6558 cmphs r6, r5 + 3644: 6c07 mov r0, r1 + 3646: 2900 subi r1, 1 + 3648: 0bee bt 0x3624 // 3624 <_fpadd_parts+0xa4> + 364a: 98e0 ld.w r7, (r14, 0x0) + 364c: b743 st.w r2, (r7, 0xc) + 364e: b764 st.w r3, (r7, 0x10) + 3650: 3303 movi r3, 3 + 3652: b702 st.w r0, (r7, 0x8) + 3654: b760 st.w r3, (r7, 0x0) + 3656: 6c1f mov r0, r7 + 3658: 140a addi r14, r14, 40 + 365a: 1484 pop r4-r7 + 365c: 6c07 mov r0, r1 + 365e: 140a addi r14, r14, 40 + 3660: 1484 pop r4-r7 + 3662: 3b20 cmplti r3, 1 + 3664: 088c bt 0x377c // 377c <_fpadd_parts+0x1fc> + 3666: 3300 movi r3, 0 + 3668: 2b1f subi r3, 32 + 366a: 60c8 addu r3, r2 + 366c: 3bdf btsti r3, 31 + 366e: b866 st.w r3, (r14, 0x18) + 3670: 08bb bt 0x37e6 // 37e6 <_fpadd_parts+0x266> + 3672: 98a1 ld.w r5, (r14, 0x4) + 3674: 714d lsr r5, r3 + 3676: b8a4 st.w r5, (r14, 0x10) + 3678: 3500 movi r5, 0 + 367a: b8a5 st.w r5, (r14, 0x14) + 367c: 9866 ld.w r3, (r14, 0x18) + 367e: 3bdf btsti r3, 31 + 3680: 3500 movi r5, 0 + 3682: 3600 movi r6, 0 + 3684: 08ad bt 0x37de // 37de <_fpadd_parts+0x25e> + 3686: 3201 movi r2, 1 + 3688: 708c lsl r2, r3 + 368a: 6d8b mov r6, r2 + 368c: 3200 movi r2, 0 + 368e: 3300 movi r3, 0 + 3690: 2a00 subi r2, 1 + 3692: 2b00 subi r3, 1 + 3694: 6489 cmplt r2, r2 + 3696: 6095 addc r2, r5 + 3698: 60d9 addc r3, r6 + 369a: 98a0 ld.w r5, (r14, 0x0) + 369c: 98c1 ld.w r6, (r14, 0x4) + 369e: 6948 and r5, r2 + 36a0: 698c and r6, r3 + 36a2: 6c97 mov r2, r5 + 36a4: 6cdb mov r3, r6 + 36a6: 6c8c or r2, r3 + 36a8: 3a40 cmpnei r2, 0 + 36aa: 3500 movi r5, 0 + 36ac: 6155 addc r5, r5 + 36ae: 6c97 mov r2, r5 + 36b0: 3300 movi r3, 0 + 36b2: 98a4 ld.w r5, (r14, 0x10) + 36b4: 98c5 ld.w r6, (r14, 0x14) + 36b6: 6d48 or r5, r2 + 36b8: 6d8c or r6, r3 + 36ba: 9061 ld.w r3, (r0, 0x4) + 36bc: 9141 ld.w r2, (r1, 0x4) + 36be: 648e cmpne r3, r2 + 36c0: b8a0 st.w r5, (r14, 0x0) + 36c2: b8c1 st.w r6, (r14, 0x4) + 36c4: 0b8a bt 0x35d8 // 35d8 <_fpadd_parts+0x58> + 36c6: b761 st.w r3, (r7, 0x4) + 36c8: 9800 ld.w r0, (r14, 0x0) + 36ca: 9821 ld.w r1, (r14, 0x4) + 36cc: 9842 ld.w r2, (r14, 0x8) + 36ce: 9863 ld.w r3, (r14, 0xc) + 36d0: 6489 cmplt r2, r2 + 36d2: 6081 addc r2, r0 + 36d4: 60c5 addc r3, r1 + 36d6: b782 st.w r4, (r7, 0x8) + 36d8: b743 st.w r2, (r7, 0xc) + 36da: b764 st.w r3, (r7, 0x10) + 36dc: 3103 movi r1, 3 + 36de: b720 st.w r1, (r7, 0x0) + 36e0: 123b lrw r1, 0x1fffffff // 384c <_fpadd_parts+0x2cc> + 36e2: 64c4 cmphs r1, r3 + 36e4: 0810 bt 0x3704 // 3704 <_fpadd_parts+0x184> + 36e6: 439f lsli r4, r3, 31 + 36e8: 4a01 lsri r0, r2, 1 + 36ea: 6c10 or r0, r4 + 36ec: 3500 movi r5, 0 + 36ee: 3401 movi r4, 1 + 36f0: 4b21 lsri r1, r3, 1 + 36f2: 6890 and r2, r4 + 36f4: 68d4 and r3, r5 + 36f6: 6c80 or r2, r0 + 36f8: 6cc4 or r3, r1 + 36fa: b743 st.w r2, (r7, 0xc) + 36fc: b764 st.w r3, (r7, 0x10) + 36fe: 9762 ld.w r3, (r7, 0x8) + 3700: 2300 addi r3, 1 + 3702: b762 st.w r3, (r7, 0x8) + 3704: 6c1f mov r0, r7 + 3706: 140a addi r14, r14, 40 + 3708: 1484 pop r4-r7 + 370a: 3b42 cmpnei r3, 2 + 370c: 0ba6 bt 0x3658 // 3658 <_fpadd_parts+0xd8> + 370e: b760 st.w r3, (r7, 0x0) + 3710: 9061 ld.w r3, (r0, 0x4) + 3712: b761 st.w r3, (r7, 0x4) + 3714: 9062 ld.w r3, (r0, 0x8) + 3716: b762 st.w r3, (r7, 0x8) + 3718: 9063 ld.w r3, (r0, 0xc) + 371a: b763 st.w r3, (r7, 0xc) + 371c: 9064 ld.w r3, (r0, 0x10) + 371e: 9141 ld.w r2, (r1, 0x4) + 3720: b764 st.w r3, (r7, 0x10) + 3722: 9061 ld.w r3, (r0, 0x4) + 3724: 68c8 and r3, r2 + 3726: b761 st.w r3, (r7, 0x4) + 3728: 6c1f mov r0, r7 + 372a: 0797 br 0x3658 // 3658 <_fpadd_parts+0xd8> + 372c: 98e2 ld.w r7, (r14, 0x8) + 372e: 651c cmphs r7, r4 + 3730: 0b7c bt 0x3628 // 3628 <_fpadd_parts+0xa8> + 3732: 078c br 0x364a // 364a <_fpadd_parts+0xca> + 3734: 9802 ld.w r0, (r14, 0x8) + 3736: 9823 ld.w r1, (r14, 0xc) + 3738: 9840 ld.w r2, (r14, 0x0) + 373a: 9861 ld.w r3, (r14, 0x4) + 373c: 6400 cmphs r0, r0 + 373e: 600b subc r0, r2 + 3740: 604f subc r1, r3 + 3742: 0754 br 0x35ea // 35ea <_fpadd_parts+0x6a> + 3744: 3200 movi r2, 0 + 3746: 3300 movi r3, 0 + 3748: 6d17 mov r4, r5 + 374a: b842 st.w r2, (r14, 0x8) + 374c: b863 st.w r3, (r14, 0xc) + 374e: 0741 br 0x35d0 // 35d0 <_fpadd_parts+0x50> + 3750: 3a44 cmpnei r2, 4 + 3752: 0b83 bt 0x3658 // 3658 <_fpadd_parts+0xd8> + 3754: 9041 ld.w r2, (r0, 0x4) + 3756: 9161 ld.w r3, (r1, 0x4) + 3758: 64ca cmpne r2, r3 + 375a: 0f7f bf 0x3658 // 3658 <_fpadd_parts+0xd8> + 375c: 111d lrw r0, 0xcad0 // 3850 <_fpadd_parts+0x2d0> + 375e: 077d br 0x3658 // 3658 <_fpadd_parts+0xd8> + 3760: 3200 movi r2, 0 + 3762: 608e subu r2, r3 + 3764: 072d br 0x35be // 35be <_fpadd_parts+0x3e> + 3766: 3301 movi r3, 1 + 3768: b761 st.w r3, (r7, 0x4) + 376a: 3200 movi r2, 0 + 376c: 3300 movi r3, 0 + 376e: 6488 cmphs r2, r2 + 3770: 6083 subc r2, r0 + 3772: 60c7 subc r3, r1 + 3774: b782 st.w r4, (r7, 0x8) + 3776: b743 st.w r2, (r7, 0xc) + 3778: b764 st.w r3, (r7, 0x10) + 377a: 0741 br 0x35fc // 35fc <_fpadd_parts+0x7c> + 377c: 3b40 cmpnei r3, 0 + 377e: 0f29 bf 0x35d0 // 35d0 <_fpadd_parts+0x50> + 3780: 3300 movi r3, 0 + 3782: 2b1f subi r3, 32 + 3784: 60c8 addu r3, r2 + 3786: 3bdf btsti r3, 31 + 3788: 6108 addu r4, r2 + 378a: b866 st.w r3, (r14, 0x18) + 378c: 0849 bt 0x381e // 381e <_fpadd_parts+0x29e> + 378e: 9863 ld.w r3, (r14, 0xc) + 3790: 98a6 ld.w r5, (r14, 0x18) + 3792: 70d5 lsr r3, r5 + 3794: b864 st.w r3, (r14, 0x10) + 3796: 3300 movi r3, 0 + 3798: b865 st.w r3, (r14, 0x14) + 379a: 9866 ld.w r3, (r14, 0x18) + 379c: 3bdf btsti r3, 31 + 379e: 3500 movi r5, 0 + 37a0: 3600 movi r6, 0 + 37a2: 083a bt 0x3816 // 3816 <_fpadd_parts+0x296> + 37a4: 3201 movi r2, 1 + 37a6: 708c lsl r2, r3 + 37a8: 6d8b mov r6, r2 + 37aa: 3200 movi r2, 0 + 37ac: 3300 movi r3, 0 + 37ae: 2a00 subi r2, 1 + 37b0: 2b00 subi r3, 1 + 37b2: 6489 cmplt r2, r2 + 37b4: 6095 addc r2, r5 + 37b6: 60d9 addc r3, r6 + 37b8: 98a2 ld.w r5, (r14, 0x8) + 37ba: 98c3 ld.w r6, (r14, 0xc) + 37bc: 6948 and r5, r2 + 37be: 698c and r6, r3 + 37c0: 6c97 mov r2, r5 + 37c2: 6cdb mov r3, r6 + 37c4: 6c8c or r2, r3 + 37c6: 3a40 cmpnei r2, 0 + 37c8: 3500 movi r5, 0 + 37ca: 6155 addc r5, r5 + 37cc: 6c97 mov r2, r5 + 37ce: 3300 movi r3, 0 + 37d0: 98a4 ld.w r5, (r14, 0x10) + 37d2: 98c5 ld.w r6, (r14, 0x14) + 37d4: 6d48 or r5, r2 + 37d6: 6d8c or r6, r3 + 37d8: b8a2 st.w r5, (r14, 0x8) + 37da: b8c3 st.w r6, (r14, 0xc) + 37dc: 06fa br 0x35d0 // 35d0 <_fpadd_parts+0x50> + 37de: 3301 movi r3, 1 + 37e0: 70c8 lsl r3, r2 + 37e2: 6d4f mov r5, r3 + 37e4: 0754 br 0x368c // 368c <_fpadd_parts+0x10c> + 37e6: 9861 ld.w r3, (r14, 0x4) + 37e8: 361f movi r6, 31 + 37ea: 43a1 lsli r5, r3, 1 + 37ec: 618a subu r6, r2 + 37ee: 7158 lsl r5, r6 + 37f0: b8a9 st.w r5, (r14, 0x24) + 37f2: 98a0 ld.w r5, (r14, 0x0) + 37f4: 98c1 ld.w r6, (r14, 0x4) + 37f6: b8a7 st.w r5, (r14, 0x1c) + 37f8: b8c8 st.w r6, (r14, 0x20) + 37fa: 9867 ld.w r3, (r14, 0x1c) + 37fc: 70c9 lsr r3, r2 + 37fe: 98a9 ld.w r5, (r14, 0x24) + 3800: 6cd4 or r3, r5 + 3802: b864 st.w r3, (r14, 0x10) + 3804: 9868 ld.w r3, (r14, 0x20) + 3806: 70c9 lsr r3, r2 + 3808: b865 st.w r3, (r14, 0x14) + 380a: 0739 br 0x367c // 367c <_fpadd_parts+0xfc> + 380c: 3100 movi r1, 0 + 380e: 2901 subi r1, 2 + 3810: 6404 cmphs r1, r0 + 3812: 0b01 bt 0x3614 // 3614 <_fpadd_parts+0x94> + 3814: 0764 br 0x36dc // 36dc <_fpadd_parts+0x15c> + 3816: 3301 movi r3, 1 + 3818: 70c8 lsl r3, r2 + 381a: 6d4f mov r5, r3 + 381c: 07c7 br 0x37aa // 37aa <_fpadd_parts+0x22a> + 381e: 9863 ld.w r3, (r14, 0xc) + 3820: 43c1 lsli r6, r3, 1 + 3822: 351f movi r5, 31 + 3824: 5d69 subu r3, r5, r2 + 3826: 6d5b mov r5, r6 + 3828: 714c lsl r5, r3 + 382a: b8a9 st.w r5, (r14, 0x24) + 382c: 98a2 ld.w r5, (r14, 0x8) + 382e: 98c3 ld.w r6, (r14, 0xc) + 3830: b8a7 st.w r5, (r14, 0x1c) + 3832: b8c8 st.w r6, (r14, 0x20) + 3834: 9867 ld.w r3, (r14, 0x1c) + 3836: 70c9 lsr r3, r2 + 3838: 98a9 ld.w r5, (r14, 0x24) + 383a: 6cd4 or r3, r5 + 383c: b864 st.w r3, (r14, 0x10) + 383e: 9868 ld.w r3, (r14, 0x20) + 3840: 70c9 lsr r3, r2 + 3842: b865 st.w r3, (r14, 0x14) + 3844: 07ab br 0x379a // 379a <_fpadd_parts+0x21a> + 3846: 0000 bkpt + 3848: 0fffffff .long 0x0fffffff + 384c: 1fffffff .long 0x1fffffff + 3850: 0000cad0 .long 0x0000cad0 + +00003854 <__adddf3>: + 3854: 14d0 push r15 + 3856: 1433 subi r14, r14, 76 + 3858: b800 st.w r0, (r14, 0x0) + 385a: b821 st.w r1, (r14, 0x4) + 385c: 6c3b mov r0, r14 + 385e: 1904 addi r1, r14, 16 + 3860: b863 st.w r3, (r14, 0xc) + 3862: b842 st.w r2, (r14, 0x8) + 3864: e00003f4 bsr 0x404c // 404c <__unpack_d> + 3868: 1909 addi r1, r14, 36 + 386a: 1802 addi r0, r14, 8 + 386c: e00003f0 bsr 0x404c // 404c <__unpack_d> + 3870: 1a0e addi r2, r14, 56 + 3872: 1909 addi r1, r14, 36 + 3874: 1804 addi r0, r14, 16 + 3876: e3fffe85 bsr 0x3580 // 3580 <_fpadd_parts> + 387a: e000031b bsr 0x3eb0 // 3eb0 <__pack_d> + 387e: 1413 addi r14, r14, 76 + 3880: 1490 pop r15 + ... + +00003884 <__subdf3>: + 3884: 14d0 push r15 + 3886: 1433 subi r14, r14, 76 + 3888: b800 st.w r0, (r14, 0x0) + 388a: b821 st.w r1, (r14, 0x4) + 388c: 6c3b mov r0, r14 + 388e: 1904 addi r1, r14, 16 + 3890: b842 st.w r2, (r14, 0x8) + 3892: b863 st.w r3, (r14, 0xc) + 3894: e00003dc bsr 0x404c // 404c <__unpack_d> + 3898: 1909 addi r1, r14, 36 + 389a: 1802 addi r0, r14, 8 + 389c: e00003d8 bsr 0x404c // 404c <__unpack_d> + 38a0: 986a ld.w r3, (r14, 0x28) + 38a2: 3201 movi r2, 1 + 38a4: 6cc9 xor r3, r2 + 38a6: 1909 addi r1, r14, 36 + 38a8: 1a0e addi r2, r14, 56 + 38aa: 1804 addi r0, r14, 16 + 38ac: b86a st.w r3, (r14, 0x28) + 38ae: e3fffe69 bsr 0x3580 // 3580 <_fpadd_parts> + 38b2: e00002ff bsr 0x3eb0 // 3eb0 <__pack_d> + 38b6: 1413 addi r14, r14, 76 + 38b8: 1490 pop r15 + ... + +000038bc <__muldf3>: + 38bc: 14d4 push r4-r7, r15 + 38be: 143b subi r14, r14, 108 + 38c0: b808 st.w r0, (r14, 0x20) + 38c2: b829 st.w r1, (r14, 0x24) + 38c4: 1808 addi r0, r14, 32 + 38c6: 190c addi r1, r14, 48 + 38c8: b86b st.w r3, (r14, 0x2c) + 38ca: b84a st.w r2, (r14, 0x28) + 38cc: e00003c0 bsr 0x404c // 404c <__unpack_d> + 38d0: 1911 addi r1, r14, 68 + 38d2: 180a addi r0, r14, 40 + 38d4: e00003bc bsr 0x404c // 404c <__unpack_d> + 38d8: 986c ld.w r3, (r14, 0x30) + 38da: 3b01 cmphsi r3, 2 + 38dc: 0cac bf 0x3a34 // 3a34 <__muldf3+0x178> + 38de: 9851 ld.w r2, (r14, 0x44) + 38e0: 3a01 cmphsi r2, 2 + 38e2: 0c9c bf 0x3a1a // 3a1a <__muldf3+0x15e> + 38e4: 3b44 cmpnei r3, 4 + 38e6: 0ca5 bf 0x3a30 // 3a30 <__muldf3+0x174> + 38e8: 3a44 cmpnei r2, 4 + 38ea: 0c96 bf 0x3a16 // 3a16 <__muldf3+0x15a> + 38ec: 3b42 cmpnei r3, 2 + 38ee: 0ca3 bf 0x3a34 // 3a34 <__muldf3+0x178> + 38f0: 3a42 cmpnei r2, 2 + 38f2: 0c94 bf 0x3a1a // 3a1a <__muldf3+0x15e> + 38f4: 98ef ld.w r7, (r14, 0x3c) + 38f6: 98b4 ld.w r5, (r14, 0x50) + 38f8: 9875 ld.w r3, (r14, 0x54) + 38fa: 6d8f mov r6, r3 + 38fc: 6c9f mov r2, r7 + 38fe: 3300 movi r3, 0 + 3900: 6c17 mov r0, r5 + 3902: 3100 movi r1, 0 + 3904: e0000294 bsr 0x3e2c // 3e2c <__muldi3> + 3908: b804 st.w r0, (r14, 0x10) + 390a: b825 st.w r1, (r14, 0x14) + 390c: 6c9f mov r2, r7 + 390e: 3300 movi r3, 0 + 3910: 6c1b mov r0, r6 + 3912: 3100 movi r1, 0 + 3914: 9890 ld.w r4, (r14, 0x40) + 3916: b8c2 st.w r6, (r14, 0x8) + 3918: e000028a bsr 0x3e2c // 3e2c <__muldi3> + 391c: 6d83 mov r6, r0 + 391e: 6dc7 mov r7, r1 + 3920: 9842 ld.w r2, (r14, 0x8) + 3922: 3300 movi r3, 0 + 3924: 6c13 mov r0, r4 + 3926: 3100 movi r1, 0 + 3928: e0000282 bsr 0x3e2c // 3e2c <__muldi3> + 392c: b806 st.w r0, (r14, 0x18) + 392e: b827 st.w r1, (r14, 0x1c) + 3930: 6c97 mov r2, r5 + 3932: 3300 movi r3, 0 + 3934: 6c13 mov r0, r4 + 3936: 3100 movi r1, 0 + 3938: e000027a bsr 0x3e2c // 3e2c <__muldi3> + 393c: 6401 cmplt r0, r0 + 393e: 6019 addc r0, r6 + 3940: 605d addc r1, r7 + 3942: 65c4 cmphs r1, r7 + 3944: 0c91 bf 0x3a66 // 3a66 <__muldf3+0x1aa> + 3946: 645e cmpne r7, r1 + 3948: 0c8d bf 0x3a62 // 3a62 <__muldf3+0x1a6> + 394a: 3300 movi r3, 0 + 394c: 3400 movi r4, 0 + 394e: b862 st.w r3, (r14, 0x8) + 3950: b883 st.w r4, (r14, 0xc) + 3952: 9884 ld.w r4, (r14, 0x10) + 3954: 98a5 ld.w r5, (r14, 0x14) + 3956: 3600 movi r6, 0 + 3958: 6dc3 mov r7, r0 + 395a: 6c93 mov r2, r4 + 395c: 6cd7 mov r3, r5 + 395e: 6489 cmplt r2, r2 + 3960: 6099 addc r2, r6 + 3962: 60dd addc r3, r7 + 3964: 6d8b mov r6, r2 + 3966: 6dcf mov r7, r3 + 3968: 6c93 mov r2, r4 + 396a: 6cd7 mov r3, r5 + 396c: 64dc cmphs r7, r3 + 396e: 0c70 bf 0x3a4e // 3a4e <__muldf3+0x192> + 3970: 65ce cmpne r3, r7 + 3972: 0c6c bf 0x3a4a // 3a4a <__muldf3+0x18e> + 3974: 6c87 mov r2, r1 + 3976: 3300 movi r3, 0 + 3978: 9806 ld.w r0, (r14, 0x18) + 397a: 9827 ld.w r1, (r14, 0x1c) + 397c: 6401 cmplt r0, r0 + 397e: 6009 addc r0, r2 + 3980: 604d addc r1, r3 + 3982: 6c83 mov r2, r0 + 3984: 6cc7 mov r3, r1 + 3986: 9802 ld.w r0, (r14, 0x8) + 3988: 9823 ld.w r1, (r14, 0xc) + 398a: 6401 cmplt r0, r0 + 398c: 6009 addc r0, r2 + 398e: 604d addc r1, r3 + 3990: 6c83 mov r2, r0 + 3992: 6cc7 mov r3, r1 + 3994: 988e ld.w r4, (r14, 0x38) + 3996: 9833 ld.w r1, (r14, 0x4c) + 3998: 6104 addu r4, r1 + 399a: 5c2e addi r1, r4, 4 + 399c: b838 st.w r1, (r14, 0x60) + 399e: 980d ld.w r0, (r14, 0x34) + 39a0: 9832 ld.w r1, (r14, 0x48) + 39a2: 6442 cmpne r0, r1 + 39a4: 12b0 lrw r5, 0x1fffffff // 3ae4 <__muldf3+0x228> + 39a6: 3100 movi r1, 0 + 39a8: 6045 addc r1, r1 + 39aa: 64d4 cmphs r5, r3 + 39ac: b837 st.w r1, (r14, 0x5c) + 39ae: 0879 bt 0x3aa0 // 3aa0 <__muldf3+0x1e4> + 39b0: 2404 addi r4, 5 + 39b2: b8a4 st.w r5, (r14, 0x10) + 39b4: 3001 movi r0, 1 + 39b6: 3100 movi r1, 0 + 39b8: 6808 and r0, r2 + 39ba: 684c and r1, r3 + 39bc: 6c04 or r0, r1 + 39be: 3840 cmpnei r0, 0 + 39c0: b882 st.w r4, (r14, 0x8) + 39c2: 0c0e bf 0x39de // 39de <__muldf3+0x122> + 39c4: 473f lsli r1, r7, 31 + 39c6: 4e01 lsri r0, r6, 1 + 39c8: 6c04 or r0, r1 + 39ca: 4f21 lsri r1, r7, 1 + 39cc: b800 st.w r0, (r14, 0x0) + 39ce: b821 st.w r1, (r14, 0x4) + 39d0: 3180 movi r1, 128 + 39d2: 98c0 ld.w r6, (r14, 0x0) + 39d4: 98e1 ld.w r7, (r14, 0x4) + 39d6: 3000 movi r0, 0 + 39d8: 4138 lsli r1, r1, 24 + 39da: 6d80 or r6, r0 + 39dc: 6dc4 or r7, r1 + 39de: 4b21 lsri r1, r3, 1 + 39e0: 43bf lsli r5, r3, 31 + 39e2: 4a01 lsri r0, r2, 1 + 39e4: 6cc7 mov r3, r1 + 39e6: 9824 ld.w r1, (r14, 0x10) + 39e8: 6d40 or r5, r0 + 39ea: 64c4 cmphs r1, r3 + 39ec: 6c97 mov r2, r5 + 39ee: 2400 addi r4, 1 + 39f0: 0fe2 bf 0x39b4 // 39b4 <__muldf3+0xf8> + 39f2: 9822 ld.w r1, (r14, 0x8) + 39f4: b838 st.w r1, (r14, 0x60) + 39f6: 30ff movi r0, 255 + 39f8: 3100 movi r1, 0 + 39fa: 6808 and r0, r2 + 39fc: 684c and r1, r3 + 39fe: 3480 movi r4, 128 + 3a00: 6502 cmpne r0, r4 + 3a02: 0c37 bf 0x3a70 // 3a70 <__muldf3+0x1b4> + 3a04: b859 st.w r2, (r14, 0x64) + 3a06: b87a st.w r3, (r14, 0x68) + 3a08: 3303 movi r3, 3 + 3a0a: b876 st.w r3, (r14, 0x58) + 3a0c: 1816 addi r0, r14, 88 + 3a0e: e0000251 bsr 0x3eb0 // 3eb0 <__pack_d> + 3a12: 141b addi r14, r14, 108 + 3a14: 1494 pop r4-r7, r15 + 3a16: 3b42 cmpnei r3, 2 + 3a18: 0c42 bf 0x3a9c // 3a9c <__muldf3+0x1e0> + 3a1a: 9872 ld.w r3, (r14, 0x48) + 3a1c: 984d ld.w r2, (r14, 0x34) + 3a1e: 64ca cmpne r2, r3 + 3a20: 3300 movi r3, 0 + 3a22: 60cd addc r3, r3 + 3a24: 1811 addi r0, r14, 68 + 3a26: b872 st.w r3, (r14, 0x48) + 3a28: e0000244 bsr 0x3eb0 // 3eb0 <__pack_d> + 3a2c: 141b addi r14, r14, 108 + 3a2e: 1494 pop r4-r7, r15 + 3a30: 3a42 cmpnei r2, 2 + 3a32: 0c35 bf 0x3a9c // 3a9c <__muldf3+0x1e0> + 3a34: 984d ld.w r2, (r14, 0x34) + 3a36: 9872 ld.w r3, (r14, 0x48) + 3a38: 64ca cmpne r2, r3 + 3a3a: 3300 movi r3, 0 + 3a3c: 60cd addc r3, r3 + 3a3e: 180c addi r0, r14, 48 + 3a40: b86d st.w r3, (r14, 0x34) + 3a42: e0000237 bsr 0x3eb0 // 3eb0 <__pack_d> + 3a46: 141b addi r14, r14, 108 + 3a48: 1494 pop r4-r7, r15 + 3a4a: 6498 cmphs r6, r2 + 3a4c: 0b94 bt 0x3974 // 3974 <__muldf3+0xb8> + 3a4e: 9882 ld.w r4, (r14, 0x8) + 3a50: 98a3 ld.w r5, (r14, 0xc) + 3a52: 3201 movi r2, 1 + 3a54: 3300 movi r3, 0 + 3a56: 6511 cmplt r4, r4 + 3a58: 6109 addc r4, r2 + 3a5a: 614d addc r5, r3 + 3a5c: b882 st.w r4, (r14, 0x8) + 3a5e: b8a3 st.w r5, (r14, 0xc) + 3a60: 078a br 0x3974 // 3974 <__muldf3+0xb8> + 3a62: 6580 cmphs r0, r6 + 3a64: 0b73 bt 0x394a // 394a <__muldf3+0x8e> + 3a66: 3300 movi r3, 0 + 3a68: 3401 movi r4, 1 + 3a6a: b862 st.w r3, (r14, 0x8) + 3a6c: b883 st.w r4, (r14, 0xc) + 3a6e: 0772 br 0x3952 // 3952 <__muldf3+0x96> + 3a70: 3940 cmpnei r1, 0 + 3a72: 0bc9 bt 0x3a04 // 3a04 <__muldf3+0x148> + 3a74: 3180 movi r1, 128 + 3a76: 4121 lsli r1, r1, 1 + 3a78: 6848 and r1, r2 + 3a7a: 3940 cmpnei r1, 0 + 3a7c: 0bc4 bt 0x3a04 // 3a04 <__muldf3+0x148> + 3a7e: 6c5b mov r1, r6 + 3a80: 6c5c or r1, r7 + 3a82: 3940 cmpnei r1, 0 + 3a84: 0fc0 bf 0x3a04 // 3a04 <__muldf3+0x148> + 3a86: 3080 movi r0, 128 + 3a88: 3100 movi r1, 0 + 3a8a: 6401 cmplt r0, r0 + 3a8c: 6009 addc r0, r2 + 3a8e: 604d addc r1, r3 + 3a90: 34ff movi r4, 255 + 3a92: 6d43 mov r5, r0 + 3a94: 6951 andn r5, r4 + 3a96: 6c97 mov r2, r5 + 3a98: 6cc7 mov r3, r1 + 3a9a: 07b5 br 0x3a04 // 3a04 <__muldf3+0x148> + 3a9c: 1013 lrw r0, 0xcad0 // 3ae8 <__muldf3+0x22c> + 3a9e: 07b8 br 0x3a0e // 3a0e <__muldf3+0x152> + 3aa0: 1033 lrw r1, 0xfffffff // 3aec <__muldf3+0x230> + 3aa2: 64c4 cmphs r1, r3 + 3aa4: 0fa9 bf 0x39f6 // 39f6 <__muldf3+0x13a> + 3aa6: 2402 addi r4, 3 + 3aa8: b822 st.w r1, (r14, 0x8) + 3aaa: 4a1f lsri r0, r2, 31 + 3aac: 4321 lsli r1, r3, 1 + 3aae: 42a1 lsli r5, r2, 1 + 3ab0: 6c04 or r0, r1 + 3ab2: 3fdf btsti r7, 31 + 3ab4: b880 st.w r4, (r14, 0x0) + 3ab6: 6c97 mov r2, r5 + 3ab8: 6cc3 mov r3, r0 + 3aba: 0c07 bf 0x3ac8 // 3ac8 <__muldf3+0x20c> + 3abc: 3001 movi r0, 1 + 3abe: 3100 movi r1, 0 + 3ac0: 6c08 or r0, r2 + 3ac2: 6c4c or r1, r3 + 3ac4: 6c83 mov r2, r0 + 3ac6: 6cc7 mov r3, r1 + 3ac8: 4721 lsli r1, r7, 1 + 3aca: 4e1f lsri r0, r6, 31 + 3acc: 6c04 or r0, r1 + 3ace: 9822 ld.w r1, (r14, 0x8) + 3ad0: 46a1 lsli r5, r6, 1 + 3ad2: 64c4 cmphs r1, r3 + 3ad4: 6d97 mov r6, r5 + 3ad6: 6dc3 mov r7, r0 + 3ad8: 2c00 subi r4, 1 + 3ada: 0be8 bt 0x3aaa // 3aaa <__muldf3+0x1ee> + 3adc: 9820 ld.w r1, (r14, 0x0) + 3ade: b838 st.w r1, (r14, 0x60) + 3ae0: 078b br 0x39f6 // 39f6 <__muldf3+0x13a> + 3ae2: 0000 bkpt + 3ae4: 1fffffff .long 0x1fffffff + 3ae8: 0000cad0 .long 0x0000cad0 + 3aec: 0fffffff .long 0x0fffffff + +00003af0 <__divdf3>: + 3af0: 14d4 push r4-r7, r15 + 3af2: 1432 subi r14, r14, 72 + 3af4: b804 st.w r0, (r14, 0x10) + 3af6: b825 st.w r1, (r14, 0x14) + 3af8: 1804 addi r0, r14, 16 + 3afa: 1908 addi r1, r14, 32 + 3afc: b867 st.w r3, (r14, 0x1c) + 3afe: b846 st.w r2, (r14, 0x18) + 3b00: e00002a6 bsr 0x404c // 404c <__unpack_d> + 3b04: 190d addi r1, r14, 52 + 3b06: 1806 addi r0, r14, 24 + 3b08: e00002a2 bsr 0x404c // 404c <__unpack_d> + 3b0c: 9868 ld.w r3, (r14, 0x20) + 3b0e: 3b01 cmphsi r3, 2 + 3b10: 0c66 bf 0x3bdc // 3bdc <__divdf3+0xec> + 3b12: 982d ld.w r1, (r14, 0x34) + 3b14: 3901 cmphsi r1, 2 + 3b16: 0c92 bf 0x3c3a // 3c3a <__divdf3+0x14a> + 3b18: 9849 ld.w r2, (r14, 0x24) + 3b1a: 980e ld.w r0, (r14, 0x38) + 3b1c: 6c81 xor r2, r0 + 3b1e: 3b44 cmpnei r3, 4 + 3b20: b849 st.w r2, (r14, 0x24) + 3b22: 0c62 bf 0x3be6 // 3be6 <__divdf3+0xf6> + 3b24: 3b42 cmpnei r3, 2 + 3b26: 0c60 bf 0x3be6 // 3be6 <__divdf3+0xf6> + 3b28: 3944 cmpnei r1, 4 + 3b2a: 0c62 bf 0x3bee // 3bee <__divdf3+0xfe> + 3b2c: 3942 cmpnei r1, 2 + 3b2e: 0c82 bf 0x3c32 // 3c32 <__divdf3+0x142> + 3b30: 982a ld.w r1, (r14, 0x28) + 3b32: 986f ld.w r3, (r14, 0x3c) + 3b34: 604e subu r1, r3 + 3b36: 9890 ld.w r4, (r14, 0x40) + 3b38: 98b1 ld.w r5, (r14, 0x44) + 3b3a: 984b ld.w r2, (r14, 0x2c) + 3b3c: 986c ld.w r3, (r14, 0x30) + 3b3e: 654c cmphs r3, r5 + 3b40: b82a st.w r1, (r14, 0x28) + 3b42: 6d93 mov r6, r4 + 3b44: 6dd7 mov r7, r5 + 3b46: 0c05 bf 0x3b50 // 3b50 <__divdf3+0x60> + 3b48: 64d6 cmpne r5, r3 + 3b4a: 080b bt 0x3b60 // 3b60 <__divdf3+0x70> + 3b4c: 6508 cmphs r2, r4 + 3b4e: 0809 bt 0x3b60 // 3b60 <__divdf3+0x70> + 3b50: 4a9f lsri r4, r2, 31 + 3b52: 4301 lsli r0, r3, 1 + 3b54: 42a1 lsli r5, r2, 1 + 3b56: 6d00 or r4, r0 + 3b58: 2900 subi r1, 1 + 3b5a: 6c97 mov r2, r5 + 3b5c: 6cd3 mov r3, r4 + 3b5e: b82a st.w r1, (r14, 0x28) + 3b60: 3000 movi r0, 0 + 3b62: 3100 movi r1, 0 + 3b64: b802 st.w r0, (r14, 0x8) + 3b66: b823 st.w r1, (r14, 0xc) + 3b68: 3180 movi r1, 128 + 3b6a: 343d movi r4, 61 + 3b6c: 3000 movi r0, 0 + 3b6e: 4135 lsli r1, r1, 21 + 3b70: b8c0 st.w r6, (r14, 0x0) + 3b72: b8e1 st.w r7, (r14, 0x4) + 3b74: 98a0 ld.w r5, (r14, 0x0) + 3b76: 98c1 ld.w r6, (r14, 0x4) + 3b78: 658c cmphs r3, r6 + 3b7a: 0c10 bf 0x3b9a // 3b9a <__divdf3+0xaa> + 3b7c: 64da cmpne r6, r3 + 3b7e: 0803 bt 0x3b84 // 3b84 <__divdf3+0x94> + 3b80: 6548 cmphs r2, r5 + 3b82: 0c0c bf 0x3b9a // 3b9a <__divdf3+0xaa> + 3b84: 98a2 ld.w r5, (r14, 0x8) + 3b86: 98c3 ld.w r6, (r14, 0xc) + 3b88: 6d40 or r5, r0 + 3b8a: 6d84 or r6, r1 + 3b8c: b8a2 st.w r5, (r14, 0x8) + 3b8e: b8c3 st.w r6, (r14, 0xc) + 3b90: 98a0 ld.w r5, (r14, 0x0) + 3b92: 98c1 ld.w r6, (r14, 0x4) + 3b94: 6488 cmphs r2, r2 + 3b96: 6097 subc r2, r5 + 3b98: 60db subc r3, r6 + 3b9a: 41bf lsli r5, r1, 31 + 3b9c: 48e1 lsri r7, r0, 1 + 3b9e: 6d97 mov r6, r5 + 3ba0: 49a1 lsri r5, r1, 1 + 3ba2: 6d9c or r6, r7 + 3ba4: 6c57 mov r1, r5 + 3ba6: 4abf lsri r5, r2, 31 + 3ba8: 6c1b mov r0, r6 + 3baa: 2c00 subi r4, 1 + 3bac: 6d97 mov r6, r5 + 3bae: 43a1 lsli r5, r3, 1 + 3bb0: 6d94 or r6, r5 + 3bb2: 4261 lsli r3, r2, 1 + 3bb4: 3c40 cmpnei r4, 0 + 3bb6: 6dcf mov r7, r3 + 3bb8: 6c8f mov r2, r3 + 3bba: 6cdb mov r3, r6 + 3bbc: 0bdc bt 0x3b74 // 3b74 <__divdf3+0x84> + 3bbe: 30ff movi r0, 255 + 3bc0: 3100 movi r1, 0 + 3bc2: 9882 ld.w r4, (r14, 0x8) + 3bc4: 98a3 ld.w r5, (r14, 0xc) + 3bc6: 6900 and r4, r0 + 3bc8: 6944 and r5, r1 + 3bca: 6c13 mov r0, r4 + 3bcc: 6c57 mov r1, r5 + 3bce: 3480 movi r4, 128 + 3bd0: 6502 cmpne r0, r4 + 3bd2: 0c15 bf 0x3bfc // 3bfc <__divdf3+0x10c> + 3bd4: 9862 ld.w r3, (r14, 0x8) + 3bd6: 9883 ld.w r4, (r14, 0xc) + 3bd8: b86b st.w r3, (r14, 0x2c) + 3bda: b88c st.w r4, (r14, 0x30) + 3bdc: 1808 addi r0, r14, 32 + 3bde: e0000169 bsr 0x3eb0 // 3eb0 <__pack_d> + 3be2: 1412 addi r14, r14, 72 + 3be4: 1494 pop r4-r7, r15 + 3be6: 644e cmpne r3, r1 + 3be8: 0bfa bt 0x3bdc // 3bdc <__divdf3+0xec> + 3bea: 1016 lrw r0, 0xcad0 // 3c40 <__divdf3+0x150> + 3bec: 07f9 br 0x3bde // 3bde <__divdf3+0xee> + 3bee: 3300 movi r3, 0 + 3bf0: 3400 movi r4, 0 + 3bf2: b86b st.w r3, (r14, 0x2c) + 3bf4: b88c st.w r4, (r14, 0x30) + 3bf6: b86a st.w r3, (r14, 0x28) + 3bf8: 1808 addi r0, r14, 32 + 3bfa: 07f2 br 0x3bde // 3bde <__divdf3+0xee> + 3bfc: 3940 cmpnei r1, 0 + 3bfe: 0beb bt 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c00: 3180 movi r1, 128 + 3c02: 4121 lsli r1, r1, 1 + 3c04: 9882 ld.w r4, (r14, 0x8) + 3c06: 98a3 ld.w r5, (r14, 0xc) + 3c08: 6850 and r1, r4 + 3c0a: 3940 cmpnei r1, 0 + 3c0c: 0be4 bt 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c0e: 6c98 or r2, r6 + 3c10: 3a40 cmpnei r2, 0 + 3c12: 0fe1 bf 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c14: 3280 movi r2, 128 + 3c16: 3300 movi r3, 0 + 3c18: 6c13 mov r0, r4 + 3c1a: 6c57 mov r1, r5 + 3c1c: 6401 cmplt r0, r0 + 3c1e: 6009 addc r0, r2 + 3c20: 604d addc r1, r3 + 3c22: 6c83 mov r2, r0 + 3c24: 6cc7 mov r3, r1 + 3c26: 6c0b mov r0, r2 + 3c28: 31ff movi r1, 255 + 3c2a: 6805 andn r0, r1 + 3c2c: b802 st.w r0, (r14, 0x8) + 3c2e: b863 st.w r3, (r14, 0xc) + 3c30: 07d2 br 0x3bd4 // 3bd4 <__divdf3+0xe4> + 3c32: 3304 movi r3, 4 + 3c34: b868 st.w r3, (r14, 0x20) + 3c36: 1808 addi r0, r14, 32 + 3c38: 07d3 br 0x3bde // 3bde <__divdf3+0xee> + 3c3a: 180d addi r0, r14, 52 + 3c3c: 07d1 br 0x3bde // 3bde <__divdf3+0xee> + 3c3e: 0000 bkpt + 3c40: 0000cad0 .long 0x0000cad0 + +00003c44 <__gtdf2>: + 3c44: 14d0 push r15 + 3c46: 142e subi r14, r14, 56 + 3c48: b800 st.w r0, (r14, 0x0) + 3c4a: b821 st.w r1, (r14, 0x4) + 3c4c: 6c3b mov r0, r14 + 3c4e: 1904 addi r1, r14, 16 + 3c50: b863 st.w r3, (r14, 0xc) + 3c52: b842 st.w r2, (r14, 0x8) + 3c54: e00001fc bsr 0x404c // 404c <__unpack_d> + 3c58: 1909 addi r1, r14, 36 + 3c5a: 1802 addi r0, r14, 8 + 3c5c: e00001f8 bsr 0x404c // 404c <__unpack_d> + 3c60: 9864 ld.w r3, (r14, 0x10) + 3c62: 3b01 cmphsi r3, 2 + 3c64: 0c0a bf 0x3c78 // 3c78 <__gtdf2+0x34> + 3c66: 9869 ld.w r3, (r14, 0x24) + 3c68: 3b01 cmphsi r3, 2 + 3c6a: 0c07 bf 0x3c78 // 3c78 <__gtdf2+0x34> + 3c6c: 1909 addi r1, r14, 36 + 3c6e: 1804 addi r0, r14, 16 + 3c70: e0000250 bsr 0x4110 // 4110 <__fpcmp_parts_d> + 3c74: 140e addi r14, r14, 56 + 3c76: 1490 pop r15 + 3c78: 3000 movi r0, 0 + 3c7a: 2800 subi r0, 1 + 3c7c: 140e addi r14, r14, 56 + 3c7e: 1490 pop r15 + +00003c80 <__gedf2>: + 3c80: 14d0 push r15 + 3c82: 142e subi r14, r14, 56 + 3c84: b800 st.w r0, (r14, 0x0) + 3c86: b821 st.w r1, (r14, 0x4) + 3c88: 6c3b mov r0, r14 + 3c8a: 1904 addi r1, r14, 16 + 3c8c: b863 st.w r3, (r14, 0xc) + 3c8e: b842 st.w r2, (r14, 0x8) + 3c90: e00001de bsr 0x404c // 404c <__unpack_d> + 3c94: 1909 addi r1, r14, 36 + 3c96: 1802 addi r0, r14, 8 + 3c98: e00001da bsr 0x404c // 404c <__unpack_d> + 3c9c: 9864 ld.w r3, (r14, 0x10) + 3c9e: 3b01 cmphsi r3, 2 + 3ca0: 0c0a bf 0x3cb4 // 3cb4 <__gedf2+0x34> + 3ca2: 9869 ld.w r3, (r14, 0x24) + 3ca4: 3b01 cmphsi r3, 2 + 3ca6: 0c07 bf 0x3cb4 // 3cb4 <__gedf2+0x34> + 3ca8: 1909 addi r1, r14, 36 + 3caa: 1804 addi r0, r14, 16 + 3cac: e0000232 bsr 0x4110 // 4110 <__fpcmp_parts_d> + 3cb0: 140e addi r14, r14, 56 + 3cb2: 1490 pop r15 + 3cb4: 3000 movi r0, 0 + 3cb6: 2800 subi r0, 1 + 3cb8: 140e addi r14, r14, 56 + 3cba: 1490 pop r15 + +00003cbc <__ledf2>: + 3cbc: 14d0 push r15 + 3cbe: 142e subi r14, r14, 56 + 3cc0: b800 st.w r0, (r14, 0x0) + 3cc2: b821 st.w r1, (r14, 0x4) + 3cc4: 6c3b mov r0, r14 + 3cc6: 1904 addi r1, r14, 16 + 3cc8: b863 st.w r3, (r14, 0xc) + 3cca: b842 st.w r2, (r14, 0x8) + 3ccc: e00001c0 bsr 0x404c // 404c <__unpack_d> + 3cd0: 1909 addi r1, r14, 36 + 3cd2: 1802 addi r0, r14, 8 + 3cd4: e00001bc bsr 0x404c // 404c <__unpack_d> + 3cd8: 9864 ld.w r3, (r14, 0x10) + 3cda: 3b01 cmphsi r3, 2 + 3cdc: 0c0a bf 0x3cf0 // 3cf0 <__ledf2+0x34> + 3cde: 9869 ld.w r3, (r14, 0x24) + 3ce0: 3b01 cmphsi r3, 2 + 3ce2: 0c07 bf 0x3cf0 // 3cf0 <__ledf2+0x34> + 3ce4: 1909 addi r1, r14, 36 + 3ce6: 1804 addi r0, r14, 16 + 3ce8: e0000214 bsr 0x4110 // 4110 <__fpcmp_parts_d> + 3cec: 140e addi r14, r14, 56 + 3cee: 1490 pop r15 + 3cf0: 3001 movi r0, 1 + 3cf2: 140e addi r14, r14, 56 + 3cf4: 1490 pop r15 + ... + +00003cf8 <__floatsidf>: + 3cf8: 14d1 push r4, r15 + 3cfa: 1425 subi r14, r14, 20 + 3cfc: 3303 movi r3, 3 + 3cfe: b860 st.w r3, (r14, 0x0) + 3d00: 3840 cmpnei r0, 0 + 3d02: 487f lsri r3, r0, 31 + 3d04: b861 st.w r3, (r14, 0x4) + 3d06: 0808 bt 0x3d16 // 3d16 <__floatsidf+0x1e> + 3d08: 3302 movi r3, 2 + 3d0a: b860 st.w r3, (r14, 0x0) + 3d0c: 6c3b mov r0, r14 + 3d0e: e00000d1 bsr 0x3eb0 // 3eb0 <__pack_d> + 3d12: 1405 addi r14, r14, 20 + 3d14: 1491 pop r4, r15 + 3d16: 38df btsti r0, 31 + 3d18: 0812 bt 0x3d3c // 3d3c <__floatsidf+0x44> + 3d1a: 6d03 mov r4, r0 + 3d1c: 6c13 mov r0, r4 + 3d1e: e00000a9 bsr 0x3e70 // 3e70 <__clzsi2> + 3d22: 321d movi r2, 29 + 3d24: 6080 addu r2, r0 + 3d26: 2802 subi r0, 3 + 3d28: 38df btsti r0, 31 + 3d2a: 0810 bt 0x3d4a // 3d4a <__floatsidf+0x52> + 3d2c: 7100 lsl r4, r0 + 3d2e: 3300 movi r3, 0 + 3d30: b884 st.w r4, (r14, 0x10) + 3d32: b863 st.w r3, (r14, 0xc) + 3d34: 333c movi r3, 60 + 3d36: 60ca subu r3, r2 + 3d38: b862 st.w r3, (r14, 0x8) + 3d3a: 07e9 br 0x3d0c // 3d0c <__floatsidf+0x14> + 3d3c: 3380 movi r3, 128 + 3d3e: 4378 lsli r3, r3, 24 + 3d40: 64c2 cmpne r0, r3 + 3d42: 0c0d bf 0x3d5c // 3d5c <__floatsidf+0x64> + 3d44: 3400 movi r4, 0 + 3d46: 6102 subu r4, r0 + 3d48: 07ea br 0x3d1c // 3d1c <__floatsidf+0x24> + 3d4a: 311f movi r1, 31 + 3d4c: 4c61 lsri r3, r4, 1 + 3d4e: 604a subu r1, r2 + 3d50: 6c13 mov r0, r4 + 3d52: 70c5 lsr r3, r1 + 3d54: 7008 lsl r0, r2 + 3d56: b864 st.w r3, (r14, 0x10) + 3d58: b803 st.w r0, (r14, 0xc) + 3d5a: 07ed br 0x3d34 // 3d34 <__floatsidf+0x3c> + 3d5c: 3000 movi r0, 0 + 3d5e: 1022 lrw r1, 0xc1e00000 // 3d64 <__floatsidf+0x6c> + 3d60: 07d9 br 0x3d12 // 3d12 <__floatsidf+0x1a> + 3d62: 0000 bkpt + 3d64: c1e00000 .long 0xc1e00000 + +00003d68 <__fixdfsi>: + 3d68: 14d0 push r15 + 3d6a: 1427 subi r14, r14, 28 + 3d6c: b800 st.w r0, (r14, 0x0) + 3d6e: b821 st.w r1, (r14, 0x4) + 3d70: 6c3b mov r0, r14 + 3d72: 1902 addi r1, r14, 8 + 3d74: e000016c bsr 0x404c // 404c <__unpack_d> + 3d78: 9862 ld.w r3, (r14, 0x8) + 3d7a: 3b02 cmphsi r3, 3 + 3d7c: 0c20 bf 0x3dbc // 3dbc <__fixdfsi+0x54> + 3d7e: 3b44 cmpnei r3, 4 + 3d80: 0c16 bf 0x3dac // 3dac <__fixdfsi+0x44> + 3d82: 9864 ld.w r3, (r14, 0x10) + 3d84: 3bdf btsti r3, 31 + 3d86: 081b bt 0x3dbc // 3dbc <__fixdfsi+0x54> + 3d88: 3b3e cmplti r3, 31 + 3d8a: 0c11 bf 0x3dac // 3dac <__fixdfsi+0x44> + 3d8c: 323c movi r2, 60 + 3d8e: 5a6d subu r3, r2, r3 + 3d90: 3200 movi r2, 0 + 3d92: 2a1f subi r2, 32 + 3d94: 608c addu r2, r3 + 3d96: 3adf btsti r2, 31 + 3d98: 0815 bt 0x3dc2 // 3dc2 <__fixdfsi+0x5a> + 3d9a: 9806 ld.w r0, (r14, 0x18) + 3d9c: 7009 lsr r0, r2 + 3d9e: 9863 ld.w r3, (r14, 0xc) + 3da0: 3b40 cmpnei r3, 0 + 3da2: 0c0b bf 0x3db8 // 3db8 <__fixdfsi+0x50> + 3da4: 3300 movi r3, 0 + 3da6: 5b01 subu r0, r3, r0 + 3da8: 1407 addi r14, r14, 28 + 3daa: 1490 pop r15 + 3dac: 9863 ld.w r3, (r14, 0xc) + 3dae: 3b40 cmpnei r3, 0 + 3db0: 3000 movi r0, 0 + 3db2: 6001 addc r0, r0 + 3db4: 1068 lrw r3, 0x7fffffff // 3dd4 <__fixdfsi+0x6c> + 3db6: 600c addu r0, r3 + 3db8: 1407 addi r14, r14, 28 + 3dba: 1490 pop r15 + 3dbc: 3000 movi r0, 0 + 3dbe: 1407 addi r14, r14, 28 + 3dc0: 1490 pop r15 + 3dc2: 9846 ld.w r2, (r14, 0x18) + 3dc4: 311f movi r1, 31 + 3dc6: 4241 lsli r2, r2, 1 + 3dc8: 604e subu r1, r3 + 3dca: 9805 ld.w r0, (r14, 0x14) + 3dcc: 7084 lsl r2, r1 + 3dce: 700d lsr r0, r3 + 3dd0: 6c08 or r0, r2 + 3dd2: 07e6 br 0x3d9e // 3d9e <__fixdfsi+0x36> + 3dd4: 7fffffff .long 0x7fffffff + +00003dd8 <__floatunsidf>: + 3dd8: 14d2 push r4-r5, r15 + 3dda: 1425 subi r14, r14, 20 + 3ddc: 3840 cmpnei r0, 0 + 3dde: 3500 movi r5, 0 + 3de0: 6d03 mov r4, r0 + 3de2: b8a1 st.w r5, (r14, 0x4) + 3de4: 0c15 bf 0x3e0e // 3e0e <__floatunsidf+0x36> + 3de6: 3303 movi r3, 3 + 3de8: b860 st.w r3, (r14, 0x0) + 3dea: e0000043 bsr 0x3e70 // 3e70 <__clzsi2> + 3dee: 321d movi r2, 29 + 3df0: 6080 addu r2, r0 + 3df2: 2802 subi r0, 3 + 3df4: 38df btsti r0, 31 + 3df6: 0813 bt 0x3e1c // 3e1c <__floatunsidf+0x44> + 3df8: 7100 lsl r4, r0 + 3dfa: b884 st.w r4, (r14, 0x10) + 3dfc: b8a3 st.w r5, (r14, 0xc) + 3dfe: 333c movi r3, 60 + 3e00: 60ca subu r3, r2 + 3e02: 6c3b mov r0, r14 + 3e04: b862 st.w r3, (r14, 0x8) + 3e06: e0000055 bsr 0x3eb0 // 3eb0 <__pack_d> + 3e0a: 1405 addi r14, r14, 20 + 3e0c: 1492 pop r4-r5, r15 + 3e0e: 3302 movi r3, 2 + 3e10: 6c3b mov r0, r14 + 3e12: b860 st.w r3, (r14, 0x0) + 3e14: e000004e bsr 0x3eb0 // 3eb0 <__pack_d> + 3e18: 1405 addi r14, r14, 20 + 3e1a: 1492 pop r4-r5, r15 + 3e1c: 311f movi r1, 31 + 3e1e: 4c61 lsri r3, r4, 1 + 3e20: 604a subu r1, r2 + 3e22: 70c5 lsr r3, r1 + 3e24: 7108 lsl r4, r2 + 3e26: b864 st.w r3, (r14, 0x10) + 3e28: b883 st.w r4, (r14, 0xc) + 3e2a: 07ea br 0x3dfe // 3dfe <__floatunsidf+0x26> + +00003e2c <__muldi3>: + 3e2c: 14c4 push r4-r7 + 3e2e: 1421 subi r14, r14, 4 + 3e30: 7501 zexth r4, r0 + 3e32: 48b0 lsri r5, r0, 16 + 3e34: 75c9 zexth r7, r2 + 3e36: 6d83 mov r6, r0 + 3e38: b820 st.w r1, (r14, 0x0) + 3e3a: 6c13 mov r0, r4 + 3e3c: 4a30 lsri r1, r2, 16 + 3e3e: 7c1c mult r0, r7 + 3e40: 7d04 mult r4, r1 + 3e42: 7dd4 mult r7, r5 + 3e44: 611c addu r4, r7 + 3e46: 7d44 mult r5, r1 + 3e48: 4830 lsri r1, r0, 16 + 3e4a: 6104 addu r4, r1 + 3e4c: 65d0 cmphs r4, r7 + 3e4e: 0804 bt 0x3e56 // 3e56 <__muldi3+0x2a> + 3e50: 3180 movi r1, 128 + 3e52: 4129 lsli r1, r1, 9 + 3e54: 6144 addu r5, r1 + 3e56: 4c30 lsri r1, r4, 16 + 3e58: 7cd8 mult r3, r6 + 3e5a: 6144 addu r5, r1 + 3e5c: 6c4f mov r1, r3 + 3e5e: 9860 ld.w r3, (r14, 0x0) + 3e60: 7cc8 mult r3, r2 + 3e62: 4490 lsli r4, r4, 16 + 3e64: 604c addu r1, r3 + 3e66: 7401 zexth r0, r0 + 3e68: 6010 addu r0, r4 + 3e6a: 6054 addu r1, r5 + 3e6c: 1401 addi r14, r14, 4 + 3e6e: 1484 pop r4-r7 + +00003e70 <__clzsi2>: + 3e70: 106d lrw r3, 0xffff // 3ea4 <__clzsi2+0x34> + 3e72: 640c cmphs r3, r0 + 3e74: 0c07 bf 0x3e82 // 3e82 <__clzsi2+0x12> + 3e76: 33ff movi r3, 255 + 3e78: 640c cmphs r3, r0 + 3e7a: 0c0f bf 0x3e98 // 3e98 <__clzsi2+0x28> + 3e7c: 3320 movi r3, 32 + 3e7e: 3200 movi r2, 0 + 3e80: 0406 br 0x3e8c // 3e8c <__clzsi2+0x1c> + 3e82: 106a lrw r3, 0xffffff // 3ea8 <__clzsi2+0x38> + 3e84: 640c cmphs r3, r0 + 3e86: 080c bt 0x3e9e // 3e9e <__clzsi2+0x2e> + 3e88: 3308 movi r3, 8 + 3e8a: 3218 movi r2, 24 + 3e8c: 7009 lsr r0, r2 + 3e8e: 1048 lrw r2, 0xcae4 // 3eac <__clzsi2+0x3c> + 3e90: 6008 addu r0, r2 + 3e92: 8040 ld.b r2, (r0, 0x0) + 3e94: 5b09 subu r0, r3, r2 + 3e96: 783c jmp r15 + 3e98: 3318 movi r3, 24 + 3e9a: 3208 movi r2, 8 + 3e9c: 07f8 br 0x3e8c // 3e8c <__clzsi2+0x1c> + 3e9e: 3310 movi r3, 16 + 3ea0: 3210 movi r2, 16 + 3ea2: 07f5 br 0x3e8c // 3e8c <__clzsi2+0x1c> + 3ea4: 0000ffff .long 0x0000ffff + 3ea8: 00ffffff .long 0x00ffffff + 3eac: 0000cae4 .long 0x0000cae4 + +00003eb0 <__pack_d>: + 3eb0: 14c4 push r4-r7 + 3eb2: 1422 subi r14, r14, 8 + 3eb4: 9060 ld.w r3, (r0, 0x0) + 3eb6: 3b01 cmphsi r3, 2 + 3eb8: 90c3 ld.w r6, (r0, 0xc) + 3eba: 90e4 ld.w r7, (r0, 0x10) + 3ebc: 9021 ld.w r1, (r0, 0x4) + 3ebe: 0c46 bf 0x3f4a // 3f4a <__pack_d+0x9a> + 3ec0: 3b44 cmpnei r3, 4 + 3ec2: 0c40 bf 0x3f42 // 3f42 <__pack_d+0x92> + 3ec4: 3b42 cmpnei r3, 2 + 3ec6: 0c27 bf 0x3f14 // 3f14 <__pack_d+0x64> + 3ec8: 6cdb mov r3, r6 + 3eca: 6cdc or r3, r7 + 3ecc: 3b40 cmpnei r3, 0 + 3ece: 0c23 bf 0x3f14 // 3f14 <__pack_d+0x64> + 3ed0: 9062 ld.w r3, (r0, 0x8) + 3ed2: 125a lrw r2, 0xfffffc02 // 4038 <__pack_d+0x188> + 3ed4: 648d cmplt r3, r2 + 3ed6: 0855 bt 0x3f80 // 3f80 <__pack_d+0xd0> + 3ed8: 1259 lrw r2, 0x3ff // 403c <__pack_d+0x18c> + 3eda: 64c9 cmplt r2, r3 + 3edc: 0833 bt 0x3f42 // 3f42 <__pack_d+0x92> + 3ede: 34ff movi r4, 255 + 3ee0: 3500 movi r5, 0 + 3ee2: 6918 and r4, r6 + 3ee4: 695c and r5, r7 + 3ee6: 3280 movi r2, 128 + 3ee8: 6492 cmpne r4, r2 + 3eea: 0c3f bf 0x3f68 // 3f68 <__pack_d+0xb8> + 3eec: 347f movi r4, 127 + 3eee: 3500 movi r5, 0 + 3ef0: 6599 cmplt r6, r6 + 3ef2: 6191 addc r6, r4 + 3ef4: 61d5 addc r7, r5 + 3ef6: 1253 lrw r2, 0x1fffffff // 4040 <__pack_d+0x190> + 3ef8: 65c8 cmphs r2, r7 + 3efa: 0c1a bf 0x3f2e // 3f2e <__pack_d+0x7e> + 3efc: 1290 lrw r4, 0x3ff // 403c <__pack_d+0x18c> + 3efe: 610c addu r4, r3 + 3f00: 4718 lsli r0, r7, 24 + 3f02: 4f68 lsri r3, r7, 8 + 3f04: 4e48 lsri r2, r6, 8 + 3f06: 6c80 or r2, r0 + 3f08: 430c lsli r0, r3, 12 + 3f0a: 486c lsri r3, r0, 12 + 3f0c: 120e lrw r0, 0x7ff // 4044 <__pack_d+0x194> + 3f0e: 6d4b mov r5, r2 + 3f10: 6900 and r4, r0 + 3f12: 0404 br 0x3f1a // 3f1a <__pack_d+0x6a> + 3f14: 3400 movi r4, 0 + 3f16: 3200 movi r2, 0 + 3f18: 3300 movi r3, 0 + 3f1a: 430c lsli r0, r3, 12 + 3f1c: 480c lsri r0, r0, 12 + 3f1e: 4474 lsli r3, r4, 20 + 3f20: 419f lsli r4, r1, 31 + 3f22: 6c43 mov r1, r0 + 3f24: 6c4c or r1, r3 + 3f26: 6c50 or r1, r4 + 3f28: 6c0b mov r0, r2 + 3f2a: 1402 addi r14, r14, 8 + 3f2c: 1484 pop r4-r7 + 3f2e: 479f lsli r4, r7, 31 + 3f30: 4e01 lsri r0, r6, 1 + 3f32: 6d00 or r4, r0 + 3f34: 6d93 mov r6, r4 + 3f36: 3480 movi r4, 128 + 3f38: 4f41 lsri r2, r7, 1 + 3f3a: 4483 lsli r4, r4, 3 + 3f3c: 6dcb mov r7, r2 + 3f3e: 610c addu r4, r3 + 3f40: 07e0 br 0x3f00 // 3f00 <__pack_d+0x50> + 3f42: 1281 lrw r4, 0x7ff // 4044 <__pack_d+0x194> + 3f44: 3200 movi r2, 0 + 3f46: 3300 movi r3, 0 + 3f48: 07e9 br 0x3f1a // 3f1a <__pack_d+0x6a> + 3f4a: 4e08 lsri r0, r6, 8 + 3f4c: 4798 lsli r4, r7, 24 + 3f4e: 6d00 or r4, r0 + 3f50: 3580 movi r5, 128 + 3f52: 4705 lsli r0, r7, 5 + 3f54: 6c93 mov r2, r4 + 3f56: 486d lsri r3, r0, 13 + 3f58: 3400 movi r4, 0 + 3f5a: 45ac lsli r5, r5, 12 + 3f5c: 6c90 or r2, r4 + 3f5e: 6cd4 or r3, r5 + 3f60: 430c lsli r0, r3, 12 + 3f62: 486c lsri r3, r0, 12 + 3f64: 1198 lrw r4, 0x7ff // 4044 <__pack_d+0x194> + 3f66: 07da br 0x3f1a // 3f1a <__pack_d+0x6a> + 3f68: 3d40 cmpnei r5, 0 + 3f6a: 0bc1 bt 0x3eec // 3eec <__pack_d+0x3c> + 3f6c: 4241 lsli r2, r2, 1 + 3f6e: 6898 and r2, r6 + 3f70: 3a40 cmpnei r2, 0 + 3f72: 0fc2 bf 0x3ef6 // 3ef6 <__pack_d+0x46> + 3f74: 3480 movi r4, 128 + 3f76: 3500 movi r5, 0 + 3f78: 6599 cmplt r6, r6 + 3f7a: 6191 addc r6, r4 + 3f7c: 61d5 addc r7, r5 + 3f7e: 07bc br 0x3ef6 // 3ef6 <__pack_d+0x46> + 3f80: 5a6d subu r3, r2, r3 + 3f82: 3238 movi r2, 56 + 3f84: 64c9 cmplt r2, r3 + 3f86: 0bc7 bt 0x3f14 // 3f14 <__pack_d+0x64> + 3f88: 3200 movi r2, 0 + 3f8a: 2a1f subi r2, 32 + 3f8c: 608c addu r2, r3 + 3f8e: 3adf btsti r2, 31 + 3f90: 0848 bt 0x4020 // 4020 <__pack_d+0x170> + 3f92: 6c1f mov r0, r7 + 3f94: 7009 lsr r0, r2 + 3f96: b800 st.w r0, (r14, 0x0) + 3f98: 3000 movi r0, 0 + 3f9a: b801 st.w r0, (r14, 0x4) + 3f9c: 3adf btsti r2, 31 + 3f9e: 083c bt 0x4016 // 4016 <__pack_d+0x166> + 3fa0: 3301 movi r3, 1 + 3fa2: 70c8 lsl r3, r2 + 3fa4: 6d4f mov r5, r3 + 3fa6: 3300 movi r3, 0 + 3fa8: 6d0f mov r4, r3 + 3faa: 3200 movi r2, 0 + 3fac: 3300 movi r3, 0 + 3fae: 2a00 subi r2, 1 + 3fb0: 2b00 subi r3, 1 + 3fb2: 6511 cmplt r4, r4 + 3fb4: 6109 addc r4, r2 + 3fb6: 614d addc r5, r3 + 3fb8: 6990 and r6, r4 + 3fba: 69d4 and r7, r5 + 3fbc: 6d9c or r6, r7 + 3fbe: 3e40 cmpnei r6, 0 + 3fc0: 3000 movi r0, 0 + 3fc2: 6001 addc r0, r0 + 3fc4: 6c83 mov r2, r0 + 3fc6: 3300 movi r3, 0 + 3fc8: 9880 ld.w r4, (r14, 0x0) + 3fca: 98a1 ld.w r5, (r14, 0x4) + 3fcc: 6d08 or r4, r2 + 3fce: 6d4c or r5, r3 + 3fd0: 32ff movi r2, 255 + 3fd2: 3300 movi r3, 0 + 3fd4: 6890 and r2, r4 + 3fd6: 68d4 and r3, r5 + 3fd8: 3080 movi r0, 128 + 3fda: 640a cmpne r2, r0 + 3fdc: 081b bt 0x4012 // 4012 <__pack_d+0x162> + 3fde: 3b40 cmpnei r3, 0 + 3fe0: 0819 bt 0x4012 // 4012 <__pack_d+0x162> + 3fe2: 3380 movi r3, 128 + 3fe4: 4361 lsli r3, r3, 1 + 3fe6: 68d0 and r3, r4 + 3fe8: 3b40 cmpnei r3, 0 + 3fea: 0c06 bf 0x3ff6 // 3ff6 <__pack_d+0x146> + 3fec: 3280 movi r2, 128 + 3fee: 3300 movi r3, 0 + 3ff0: 6511 cmplt r4, r4 + 3ff2: 6109 addc r4, r2 + 3ff4: 614d addc r5, r3 + 3ff6: 4518 lsli r0, r5, 24 + 3ff8: 4c48 lsri r2, r4, 8 + 3ffa: 4d68 lsri r3, r5, 8 + 3ffc: 1093 lrw r4, 0xfffffff // 4048 <__pack_d+0x198> + 3ffe: 6c80 or r2, r0 + 4000: 6550 cmphs r4, r5 + 4002: 430c lsli r0, r3, 12 + 4004: 486c lsri r3, r0, 12 + 4006: 3001 movi r0, 1 + 4008: 0c02 bf 0x400c // 400c <__pack_d+0x15c> + 400a: 3000 movi r0, 0 + 400c: 108e lrw r4, 0x7ff // 4044 <__pack_d+0x194> + 400e: 6900 and r4, r0 + 4010: 0785 br 0x3f1a // 3f1a <__pack_d+0x6a> + 4012: 327f movi r2, 127 + 4014: 07ed br 0x3fee // 3fee <__pack_d+0x13e> + 4016: 3201 movi r2, 1 + 4018: 708c lsl r2, r3 + 401a: 3500 movi r5, 0 + 401c: 6d0b mov r4, r2 + 401e: 07c6 br 0x3faa // 3faa <__pack_d+0xfa> + 4020: 341f movi r4, 31 + 4022: 610e subu r4, r3 + 4024: 4701 lsli r0, r7, 1 + 4026: 7010 lsl r0, r4 + 4028: 6d1b mov r4, r6 + 402a: 710d lsr r4, r3 + 402c: 6d00 or r4, r0 + 402e: 6c1f mov r0, r7 + 4030: 700d lsr r0, r3 + 4032: b880 st.w r4, (r14, 0x0) + 4034: b801 st.w r0, (r14, 0x4) + 4036: 07b3 br 0x3f9c // 3f9c <__pack_d+0xec> + 4038: fffffc02 .long 0xfffffc02 + 403c: 000003ff .long 0x000003ff + 4040: 1fffffff .long 0x1fffffff + 4044: 000007ff .long 0x000007ff + 4048: 0fffffff .long 0x0fffffff + +0000404c <__unpack_d>: + 404c: 1423 subi r14, r14, 12 + 404e: b880 st.w r4, (r14, 0x0) + 4050: b8c1 st.w r6, (r14, 0x4) + 4052: b8e2 st.w r7, (r14, 0x8) + 4054: 8843 ld.h r2, (r0, 0x6) + 4056: 4251 lsli r2, r2, 17 + 4058: 9061 ld.w r3, (r0, 0x4) + 405a: 9080 ld.w r4, (r0, 0x0) + 405c: 4a55 lsri r2, r2, 21 + 405e: 8007 ld.b r0, (r0, 0x7) + 4060: 436c lsli r3, r3, 12 + 4062: 4807 lsri r0, r0, 7 + 4064: 3a40 cmpnei r2, 0 + 4066: 4b6c lsri r3, r3, 12 + 4068: b101 st.w r0, (r1, 0x4) + 406a: 0819 bt 0x409c // 409c <__unpack_d+0x50> + 406c: 6c93 mov r2, r4 + 406e: 6c8c or r2, r3 + 4070: 3a40 cmpnei r2, 0 + 4072: 0c2d bf 0x40cc // 40cc <__unpack_d+0x80> + 4074: 4c58 lsri r2, r4, 24 + 4076: 4368 lsli r3, r3, 8 + 4078: 6cc8 or r3, r2 + 407a: 3203 movi r2, 3 + 407c: 4408 lsli r0, r4, 8 + 407e: b140 st.w r2, (r1, 0x0) + 4080: 1181 lrw r4, 0xfffffc01 // 4104 <__unpack_d+0xb8> + 4082: 11c2 lrw r6, 0xfffffff // 4108 <__unpack_d+0xbc> + 4084: 485f lsri r2, r0, 31 + 4086: 4361 lsli r3, r3, 1 + 4088: 6cc8 or r3, r2 + 408a: 64d8 cmphs r6, r3 + 408c: 6c93 mov r2, r4 + 408e: 4001 lsli r0, r0, 1 + 4090: 2c00 subi r4, 1 + 4092: 0bf9 bt 0x4084 // 4084 <__unpack_d+0x38> + 4094: b142 st.w r2, (r1, 0x8) + 4096: b103 st.w r0, (r1, 0xc) + 4098: b164 st.w r3, (r1, 0x10) + 409a: 0414 br 0x40c2 // 40c2 <__unpack_d+0x76> + 409c: 101c lrw r0, 0x7ff // 410c <__unpack_d+0xc0> + 409e: 640a cmpne r2, r0 + 40a0: 0c19 bf 0x40d2 // 40d2 <__unpack_d+0x86> + 40a2: 1019 lrw r0, 0xfffffc01 // 4104 <__unpack_d+0xb8> + 40a4: 6080 addu r2, r0 + 40a6: b142 st.w r2, (r1, 0x8) + 40a8: 3203 movi r2, 3 + 40aa: 43e8 lsli r7, r3, 8 + 40ac: b140 st.w r2, (r1, 0x0) + 40ae: 3380 movi r3, 128 + 40b0: 4c58 lsri r2, r4, 24 + 40b2: 6dc8 or r7, r2 + 40b4: 44c8 lsli r6, r4, 8 + 40b6: 3200 movi r2, 0 + 40b8: 4375 lsli r3, r3, 21 + 40ba: 6d88 or r6, r2 + 40bc: 6dcc or r7, r3 + 40be: b1c3 st.w r6, (r1, 0xc) + 40c0: b1e4 st.w r7, (r1, 0x10) + 40c2: 98e2 ld.w r7, (r14, 0x8) + 40c4: 98c1 ld.w r6, (r14, 0x4) + 40c6: 9880 ld.w r4, (r14, 0x0) + 40c8: 1403 addi r14, r14, 12 + 40ca: 783c jmp r15 + 40cc: 3302 movi r3, 2 + 40ce: b160 st.w r3, (r1, 0x0) + 40d0: 07f9 br 0x40c2 // 40c2 <__unpack_d+0x76> + 40d2: 6c93 mov r2, r4 + 40d4: 6c8c or r2, r3 + 40d6: 3a40 cmpnei r2, 0 + 40d8: 0c10 bf 0x40f8 // 40f8 <__unpack_d+0xac> + 40da: 3280 movi r2, 128 + 40dc: 424c lsli r2, r2, 12 + 40de: 688c and r2, r3 + 40e0: 3a40 cmpnei r2, 0 + 40e2: 0c0e bf 0x40fe // 40fe <__unpack_d+0xb2> + 40e4: 3201 movi r2, 1 + 40e6: b140 st.w r2, (r1, 0x0) + 40e8: 4c58 lsri r2, r4, 24 + 40ea: 4368 lsli r3, r3, 8 + 40ec: 6cc8 or r3, r2 + 40ee: 4408 lsli r0, r4, 8 + 40f0: 3b9b bclri r3, 27 + 40f2: b103 st.w r0, (r1, 0xc) + 40f4: b164 st.w r3, (r1, 0x10) + 40f6: 07e6 br 0x40c2 // 40c2 <__unpack_d+0x76> + 40f8: 3304 movi r3, 4 + 40fa: b160 st.w r3, (r1, 0x0) + 40fc: 07e3 br 0x40c2 // 40c2 <__unpack_d+0x76> + 40fe: b140 st.w r2, (r1, 0x0) + 4100: 07f4 br 0x40e8 // 40e8 <__unpack_d+0x9c> + 4102: 0000 bkpt + 4104: fffffc01 .long 0xfffffc01 + 4108: 0fffffff .long 0x0fffffff + 410c: 000007ff .long 0x000007ff + +00004110 <__fpcmp_parts_d>: + 4110: 14c1 push r4 + 4112: 9060 ld.w r3, (r0, 0x0) + 4114: 3b01 cmphsi r3, 2 + 4116: 0c12 bf 0x413a // 413a <__fpcmp_parts_d+0x2a> + 4118: 9140 ld.w r2, (r1, 0x0) + 411a: 3a01 cmphsi r2, 2 + 411c: 0c0f bf 0x413a // 413a <__fpcmp_parts_d+0x2a> + 411e: 3b44 cmpnei r3, 4 + 4120: 0c17 bf 0x414e // 414e <__fpcmp_parts_d+0x3e> + 4122: 3a44 cmpnei r2, 4 + 4124: 0c0f bf 0x4142 // 4142 <__fpcmp_parts_d+0x32> + 4126: 3b42 cmpnei r3, 2 + 4128: 0c0b bf 0x413e // 413e <__fpcmp_parts_d+0x2e> + 412a: 3a42 cmpnei r2, 2 + 412c: 0c13 bf 0x4152 // 4152 <__fpcmp_parts_d+0x42> + 412e: 9061 ld.w r3, (r0, 0x4) + 4130: 9141 ld.w r2, (r1, 0x4) + 4132: 648e cmpne r3, r2 + 4134: 0c14 bf 0x415c // 415c <__fpcmp_parts_d+0x4c> + 4136: 3b40 cmpnei r3, 0 + 4138: 0808 bt 0x4148 // 4148 <__fpcmp_parts_d+0x38> + 413a: 3001 movi r0, 1 + 413c: 1481 pop r4 + 413e: 3a42 cmpnei r2, 2 + 4140: 0c28 bf 0x4190 // 4190 <__fpcmp_parts_d+0x80> + 4142: 9161 ld.w r3, (r1, 0x4) + 4144: 3b40 cmpnei r3, 0 + 4146: 0bfa bt 0x413a // 413a <__fpcmp_parts_d+0x2a> + 4148: 3000 movi r0, 0 + 414a: 2800 subi r0, 1 + 414c: 1481 pop r4 + 414e: 3a44 cmpnei r2, 4 + 4150: 0c22 bf 0x4194 // 4194 <__fpcmp_parts_d+0x84> + 4152: 9061 ld.w r3, (r0, 0x4) + 4154: 3b40 cmpnei r3, 0 + 4156: 0bf9 bt 0x4148 // 4148 <__fpcmp_parts_d+0x38> + 4158: 3001 movi r0, 1 + 415a: 07f1 br 0x413c // 413c <__fpcmp_parts_d+0x2c> + 415c: 9082 ld.w r4, (r0, 0x8) + 415e: 9142 ld.w r2, (r1, 0x8) + 4160: 6509 cmplt r2, r4 + 4162: 0bea bt 0x4136 // 4136 <__fpcmp_parts_d+0x26> + 4164: 6491 cmplt r4, r2 + 4166: 080d bt 0x4180 // 4180 <__fpcmp_parts_d+0x70> + 4168: 9044 ld.w r2, (r0, 0x10) + 416a: 9083 ld.w r4, (r0, 0xc) + 416c: 9103 ld.w r0, (r1, 0xc) + 416e: 9124 ld.w r1, (r1, 0x10) + 4170: 6484 cmphs r1, r2 + 4172: 0fe2 bf 0x4136 // 4136 <__fpcmp_parts_d+0x26> + 4174: 644a cmpne r2, r1 + 4176: 0803 bt 0x417c // 417c <__fpcmp_parts_d+0x6c> + 4178: 6500 cmphs r0, r4 + 417a: 0fde bf 0x4136 // 4136 <__fpcmp_parts_d+0x26> + 417c: 6448 cmphs r2, r1 + 417e: 0805 bt 0x4188 // 4188 <__fpcmp_parts_d+0x78> + 4180: 3b40 cmpnei r3, 0 + 4182: 0fe3 bf 0x4148 // 4148 <__fpcmp_parts_d+0x38> + 4184: 3001 movi r0, 1 + 4186: 07db br 0x413c // 413c <__fpcmp_parts_d+0x2c> + 4188: 6486 cmpne r1, r2 + 418a: 0803 bt 0x4190 // 4190 <__fpcmp_parts_d+0x80> + 418c: 6410 cmphs r4, r0 + 418e: 0ff9 bf 0x4180 // 4180 <__fpcmp_parts_d+0x70> + 4190: 3000 movi r0, 0 + 4192: 1481 pop r4 + 4194: 9161 ld.w r3, (r1, 0x4) + 4196: 9041 ld.w r2, (r0, 0x4) + 4198: 5b09 subu r0, r3, r2 + 419a: 1481 pop r4 + +0000419c <__memset_fast>: + 419c: 14c3 push r4-r6 + 419e: 7444 zextb r1, r1 + 41a0: 3a40 cmpnei r2, 0 + 41a2: 0c1f bf 0x41e0 // 41e0 <__memset_fast+0x44> + 41a4: 6d43 mov r5, r0 + 41a6: 6d03 mov r4, r0 + 41a8: 3603 movi r6, 3 + 41aa: 6918 and r4, r6 + 41ac: 3c40 cmpnei r4, 0 + 41ae: 0c1a bf 0x41e2 // 41e2 <__memset_fast+0x46> + 41b0: a520 st.b r1, (r5, 0x0) + 41b2: 2a00 subi r2, 1 + 41b4: 3a40 cmpnei r2, 0 + 41b6: 0c15 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 41b8: 2500 addi r5, 1 + 41ba: 6d17 mov r4, r5 + 41bc: 3603 movi r6, 3 + 41be: 6918 and r4, r6 + 41c0: 3c40 cmpnei r4, 0 + 41c2: 0c10 bf 0x41e2 // 41e2 <__memset_fast+0x46> + 41c4: a520 st.b r1, (r5, 0x0) + 41c6: 2a00 subi r2, 1 + 41c8: 3a40 cmpnei r2, 0 + 41ca: 0c0b bf 0x41e0 // 41e0 <__memset_fast+0x44> + 41cc: 2500 addi r5, 1 + 41ce: 6d17 mov r4, r5 + 41d0: 3603 movi r6, 3 + 41d2: 6918 and r4, r6 + 41d4: 3c40 cmpnei r4, 0 + 41d6: 0c06 bf 0x41e2 // 41e2 <__memset_fast+0x46> + 41d8: a520 st.b r1, (r5, 0x0) + 41da: 2a00 subi r2, 1 + 41dc: 2500 addi r5, 1 + 41de: 0402 br 0x41e2 // 41e2 <__memset_fast+0x46> + 41e0: 1483 pop r4-r6 + 41e2: 4168 lsli r3, r1, 8 + 41e4: 6c4c or r1, r3 + 41e6: 4170 lsli r3, r1, 16 + 41e8: 6c4c or r1, r3 + 41ea: 3a2f cmplti r2, 16 + 41ec: 0809 bt 0x41fe // 41fe <__memset_fast+0x62> + 41ee: b520 st.w r1, (r5, 0x0) + 41f0: b521 st.w r1, (r5, 0x4) + 41f2: b522 st.w r1, (r5, 0x8) + 41f4: b523 st.w r1, (r5, 0xc) + 41f6: 2a0f subi r2, 16 + 41f8: 250f addi r5, 16 + 41fa: 3a2f cmplti r2, 16 + 41fc: 0ff9 bf 0x41ee // 41ee <__memset_fast+0x52> + 41fe: 3a23 cmplti r2, 4 + 4200: 0806 bt 0x420c // 420c <__memset_fast+0x70> + 4202: 2a03 subi r2, 4 + 4204: b520 st.w r1, (r5, 0x0) + 4206: 2503 addi r5, 4 + 4208: 3a23 cmplti r2, 4 + 420a: 0ffc bf 0x4202 // 4202 <__memset_fast+0x66> + 420c: 3a40 cmpnei r2, 0 + 420e: 0fe9 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 4210: 2a00 subi r2, 1 + 4212: a520 st.b r1, (r5, 0x0) + 4214: 3a40 cmpnei r2, 0 + 4216: 0fe5 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 4218: 2a00 subi r2, 1 + 421a: a521 st.b r1, (r5, 0x1) + 421c: 3a40 cmpnei r2, 0 + 421e: 0fe1 bf 0x41e0 // 41e0 <__memset_fast+0x44> + 4220: a522 st.b r1, (r5, 0x2) + 4222: 1483 pop r4-r6 + +00004224 <__memcpy_fast>: + 4224: 14c3 push r4-r6 + 4226: 6d83 mov r6, r0 + 4228: 6d07 mov r4, r1 + 422a: 6d18 or r4, r6 + 422c: 3303 movi r3, 3 + 422e: 690c and r4, r3 + 4230: 3c40 cmpnei r4, 0 + 4232: 0c0b bf 0x4248 // 4248 <__memcpy_fast+0x24> + 4234: 3a40 cmpnei r2, 0 + 4236: 0c08 bf 0x4246 // 4246 <__memcpy_fast+0x22> + 4238: 8160 ld.b r3, (r1, 0x0) + 423a: 2100 addi r1, 1 + 423c: 2a00 subi r2, 1 + 423e: a660 st.b r3, (r6, 0x0) + 4240: 2600 addi r6, 1 + 4242: 3a40 cmpnei r2, 0 + 4244: 0bfa bt 0x4238 // 4238 <__memcpy_fast+0x14> + 4246: 1483 pop r4-r6 + 4248: 3a2f cmplti r2, 16 + 424a: 080e bt 0x4266 // 4266 <__memcpy_fast+0x42> + 424c: 91a0 ld.w r5, (r1, 0x0) + 424e: 9161 ld.w r3, (r1, 0x4) + 4250: 9182 ld.w r4, (r1, 0x8) + 4252: b6a0 st.w r5, (r6, 0x0) + 4254: 91a3 ld.w r5, (r1, 0xc) + 4256: b661 st.w r3, (r6, 0x4) + 4258: b682 st.w r4, (r6, 0x8) + 425a: b6a3 st.w r5, (r6, 0xc) + 425c: 2a0f subi r2, 16 + 425e: 210f addi r1, 16 + 4260: 260f addi r6, 16 + 4262: 3a2f cmplti r2, 16 + 4264: 0ff4 bf 0x424c // 424c <__memcpy_fast+0x28> + 4266: 3a23 cmplti r2, 4 + 4268: 0808 bt 0x4278 // 4278 <__memcpy_fast+0x54> + 426a: 9160 ld.w r3, (r1, 0x0) + 426c: 2a03 subi r2, 4 + 426e: 2103 addi r1, 4 + 4270: b660 st.w r3, (r6, 0x0) + 4272: 2603 addi r6, 4 + 4274: 3a23 cmplti r2, 4 + 4276: 0ffa bf 0x426a // 426a <__memcpy_fast+0x46> + 4278: 3a40 cmpnei r2, 0 + 427a: 0fe6 bf 0x4246 // 4246 <__memcpy_fast+0x22> + 427c: 8160 ld.b r3, (r1, 0x0) + 427e: 2100 addi r1, 1 + 4280: 2a00 subi r2, 1 + 4282: a660 st.b r3, (r6, 0x0) + 4284: 2600 addi r6, 1 + 4286: 07f9 br 0x4278 // 4278 <__memcpy_fast+0x54> + +Disassembly of section .text.__main: + +00004288 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 4288: 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 ) { + 428a: 1009 lrw r0, 0x20000000 // 42ac <__main+0x24> + 428c: 1029 lrw r1, 0xd01c // 42b0 <__main+0x28> + 428e: 6442 cmpne r0, r1 + 4290: 0c05 bf 0x429a // 429a <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 4292: 1049 lrw r2, 0x200000b0 // 42b4 <__main+0x2c> + 4294: 6082 subu r2, r0 + 4296: e3ffffc7 bsr 0x4224 // 4224 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 429a: 1048 lrw r2, 0x20000c00 // 42b8 <__main+0x30> + 429c: 1008 lrw r0, 0x200000b0 // 42bc <__main+0x34> + 429e: 640a cmpne r2, r0 + 42a0: 0c05 bf 0x42aa // 42aa <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 42a2: 6082 subu r2, r0 + 42a4: 3100 movi r1, 0 + 42a6: e3ffff7b bsr 0x419c // 419c <__memset_fast> + } + + +} + 42aa: 1490 pop r15 + 42ac: 20000000 .long 0x20000000 + 42b0: 0000d01c .long 0x0000d01c + 42b4: 200000b0 .long 0x200000b0 + 42b8: 20000c00 .long 0x20000c00 + 42bc: 200000b0 .long 0x200000b0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +000042c0 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 42c0: 3848 cmpnei r0, 8 + 42c2: 080a bt 0x42d6 // 42d6 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 42c4: 107a lrw r3, 0x2000004c // 432c + 42c6: 32ff movi r2, 255 + 42c8: 9320 ld.w r1, (r3, 0x0) + 42ca: 9160 ld.w r3, (r1, 0x0) + 42cc: 424c lsli r2, r2, 12 + 42ce: 68c9 andn r3, r2 + 42d0: 3bae bseti r3, 14 + 42d2: 3bb2 bseti r3, 18 + 42d4: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 42d6: 1077 lrw r3, 0x2000005c // 4330 + 42d8: 9360 ld.w r3, (r3, 0x0) + 42da: 9341 ld.w r2, (r3, 0x4) + 42dc: 6c80 or r2, r0 + 42de: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 42e0: 9343 ld.w r2, (r3, 0xc) + 42e2: 6880 and r2, r0 + 42e4: 3a40 cmpnei r2, 0 + 42e6: 0ffd bf 0x42e0 // 42e0 + switch(ENDIS_X) + 42e8: 3842 cmpnei r0, 2 + 42ea: 0807 bt 0x42f8 // 42f8 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 42ec: 3102 movi r1, 2 + 42ee: 9344 ld.w r2, (r3, 0x10) + 42f0: 6884 and r2, r1 + 42f2: 3a40 cmpnei r2, 0 + 42f4: 0ffd bf 0x42ee // 42ee + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 42f6: 783c jmp r15 + switch(ENDIS_X) + 42f8: 3802 cmphsi r0, 3 + 42fa: 0809 bt 0x430c // 430c + 42fc: 3841 cmpnei r0, 1 + 42fe: 0bfc bt 0x42f6 // 42f6 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 4300: 3101 movi r1, 1 + 4302: 9344 ld.w r2, (r3, 0x10) + 4304: 6884 and r2, r1 + 4306: 3a40 cmpnei r2, 0 + 4308: 0ffd bf 0x4302 // 4302 + 430a: 07f6 br 0x42f6 // 42f6 + switch(ENDIS_X) + 430c: 3848 cmpnei r0, 8 + 430e: 0807 bt 0x431c // 431c + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 4310: 3108 movi r1, 8 + 4312: 9344 ld.w r2, (r3, 0x10) + 4314: 6884 and r2, r1 + 4316: 3a40 cmpnei r2, 0 + 4318: 0ffd bf 0x4312 // 4312 + 431a: 07ee br 0x42f6 // 42f6 + switch(ENDIS_X) + 431c: 3850 cmpnei r0, 16 + 431e: 0bec bt 0x42f6 // 42f6 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 4320: 3110 movi r1, 16 + 4322: 9344 ld.w r2, (r3, 0x10) + 4324: 6884 and r2, r1 + 4326: 3a40 cmpnei r2, 0 + 4328: 0ffd bf 0x4322 // 4322 + 432a: 07e6 br 0x42f6 // 42f6 + 432c: 2000004c .long 0x2000004c + 4330: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00004334 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 4334: 106c lrw r3, 0x2000005c // 4364 + 4336: 104d lrw r2, 0xffff // 4368 + 4338: 9360 ld.w r3, (r3, 0x0) + 433a: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 433c: 104c lrw r2, 0xffffff // 436c + 433e: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 4340: 104c lrw r2, 0xd22d0000 // 4370 + 4342: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 4344: 104c lrw r2, 0x70ff3bff // 4374 + 4346: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 4348: 320a movi r2, 10 + 434a: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 434c: 102b lrw r1, 0x70c // 4378 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 434e: 237f addi r3, 128 + 4350: 3200 movi r2, 0 + 4352: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 4354: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 4356: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 4358: 1029 lrw r1, 0x3fe // 437c + 435a: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 435c: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 435e: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 4360: b35f st.w r2, (r3, 0x7c) +} + 4362: 783c jmp r15 + 4364: 2000005c .long 0x2000005c + 4368: 0000ffff .long 0x0000ffff + 436c: 00ffffff .long 0x00ffffff + 4370: d22d0000 .long 0xd22d0000 + 4374: 70ff3bff .long 0x70ff3bff + 4378: 0000070c .long 0x0000070c + 437c: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00004380 : +{ + 4380: 14d0 push r15 + if (NewState != DISABLE) + 4382: 3840 cmpnei r0, 0 + 4384: 0c05 bf 0x438e // 438e + 4386: 6c07 mov r0, r1 + 4388: e3ffff9c bsr 0x42c0 // 42c0 +} + 438c: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 438e: 1068 lrw r3, 0x2000005c // 43ac + 4390: 9360 ld.w r3, (r3, 0x0) + 4392: 9342 ld.w r2, (r3, 0x8) + 4394: 6c84 or r2, r1 + 4396: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 4398: 9343 ld.w r2, (r3, 0xc) + 439a: 6884 and r2, r1 + 439c: 3a40 cmpnei r2, 0 + 439e: 0bfd bt 0x4398 // 4398 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 43a0: 237f addi r3, 128 + 43a2: 9301 ld.w r0, (r3, 0x4) + 43a4: 6c40 or r1, r0 + 43a6: b321 st.w r1, (r3, 0x4) +} + 43a8: 07f2 br 0x438c // 438c + 43aa: 0000 bkpt + 43ac: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +000043b0 : +//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 ) +{ + 43b0: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 43b2: 3b48 cmpnei r3, 8 + 43b4: 0828 bt 0x4404 // 4404 + { + IFC->CEDR=0X01; //CLKEN + 43b6: 109d lrw r4, 0x20000060 // 4428 + 43b8: 3501 movi r5, 1 + 43ba: 9480 ld.w r4, (r4, 0x0) + 43bc: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 43be: 3504 movi r5, 4 + 43c0: 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)) + 43c2: 5b83 subi r4, r3, 1 + 43c4: 3c01 cmphsi r4, 2 + 43c6: 0c2b bf 0x441c // 441c + { + 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)) + 43c8: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 43ca: 3c04 cmphsi r4, 5 + 43cc: 0c03 bf 0x43d2 // 43d2 + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 43ce: 3b4b cmpnei r3, 11 + 43d0: 0807 bt 0x43de // 43de + { + IFC->CEDR=0X01; //CLKEN + 43d2: 1076 lrw r3, 0x20000060 // 4428 + 43d4: 3401 movi r4, 1 + 43d6: 9360 ld.w r3, (r3, 0x0) + 43d8: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 43da: 3400 movi r4, 0 + 43dc: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 43de: 1094 lrw r4, 0xd22d0000 // 442c + 43e0: 6c10 or r0, r4 + 43e2: 1074 lrw r3, 0x2000005c // 4430 + 43e4: 6c40 or r1, r0 + 43e6: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 43e8: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 43ea: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 43ec: 4001 lsli r0, r0, 1 + 43ee: 9324 ld.w r1, (r3, 0x10) + 43f0: 6840 and r1, r0 + 43f2: 3940 cmpnei r1, 0 + 43f4: 0ffd bf 0x43ee // 43ee + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 43f6: 1030 lrw r1, 0xc33c0000 // 4434 + 43f8: 6c48 or r1, r2 + 43fa: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 43fc: 9328 ld.w r1, (r3, 0x20) + 43fe: 644a cmpne r2, r1 + 4400: 0bfe bt 0x43fc // 43fc +} + 4402: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 4404: 3b40 cmpnei r3, 0 + 4406: 0c03 bf 0x440c // 440c + 4408: 3b49 cmpnei r3, 9 + 440a: 0807 bt 0x4418 // 4418 + IFC->CEDR=0X01; //CLKEN + 440c: 1087 lrw r4, 0x20000060 // 4428 + 440e: 3501 movi r5, 1 + 4410: 9480 ld.w r4, (r4, 0x0) + 4412: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 4414: 3502 movi r5, 2 + 4416: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 4418: 3b4a cmpnei r3, 10 + 441a: 0bd4 bt 0x43c2 // 43c2 + IFC->CEDR=0X01; //CLKEN + 441c: 1083 lrw r4, 0x20000060 // 4428 + 441e: 3501 movi r5, 1 + 4420: 9480 ld.w r4, (r4, 0x0) + 4422: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 4424: b4a5 st.w r5, (r4, 0x14) + 4426: 07d1 br 0x43c8 // 43c8 + 4428: 20000060 .long 0x20000060 + 442c: d22d0000 .long 0xd22d0000 + 4430: 2000005c .long 0x2000005c + 4434: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00004438 : +//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) +{ + 4438: 14d1 push r4, r15 + 443a: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 443c: 3110 movi r1, 16 + 443e: 3000 movi r0, 0 + 4440: e3ffffa0 bsr 0x4380 // 4380 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 4444: 1066 lrw r3, 0x2000005c // 445c + 4446: 9360 ld.w r3, (r3, 0x0) + 4448: 9319 ld.w r0, (r3, 0x64) + 444a: 3884 bclri r0, 4 + 444c: 3885 bclri r0, 5 + 444e: 6c10 or r0, r4 + 4450: b319 st.w r0, (r3, 0x64) + 4452: 3010 movi r0, 16 + 4454: e3ffff36 bsr 0x42c0 // 42c0 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 4458: 1491 pop r4, r15 + 445a: 0000 bkpt + 445c: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00004460 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 4460: 106c lrw r3, 0x2000005c // 4490 + if(NewState != DISABLE) + 4462: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 4464: 9360 ld.w r3, (r3, 0x0) + 4466: 237f addi r3, 128 + if(NewState != DISABLE) + 4468: 0c0a bf 0x447c // 447c + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 446a: 104b lrw r2, 0x78870000 // 4494 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 446c: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 446e: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 4470: 4125 lsli r1, r1, 5 + 4472: 934d ld.w r2, (r3, 0x34) + 4474: 6884 and r2, r1 + 4476: 3a40 cmpnei r2, 0 + 4478: 0ffd bf 0x4472 // 4472 + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 447a: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 447c: 1047 lrw r2, 0x788755aa // 4498 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 447e: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 4480: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 4482: 4125 lsli r1, r1, 5 + 4484: 934d ld.w r2, (r3, 0x34) + 4486: 6884 and r2, r1 + 4488: 3a40 cmpnei r2, 0 + 448a: 0bfd bt 0x4484 // 4484 + 448c: 07f7 br 0x447a // 447a + 448e: 0000 bkpt + 4490: 2000005c .long 0x2000005c + 4494: 78870000 .long 0x78870000 + 4498: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +0000449c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 449c: 1064 lrw r3, 0x2000005c // 44ac + 449e: 32b4 movi r2, 180 + 44a0: 9360 ld.w r3, (r3, 0x0) + 44a2: 237f addi r3, 128 + 44a4: 4257 lsli r2, r2, 23 + 44a6: b34e st.w r2, (r3, 0x38) +} + 44a8: 783c jmp r15 + 44aa: 0000 bkpt + 44ac: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +000044b0 : +//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; + 44b0: 1044 lrw r2, 0x87780000 // 44c0 + 44b2: 1065 lrw r3, 0x2000005c // 44c4 + 44b4: 6c48 or r1, r2 + 44b6: 9360 ld.w r3, (r3, 0x0) + 44b8: 6c04 or r0, r1 + 44ba: 237f addi r3, 128 + 44bc: b30d st.w r0, (r3, 0x34) +} + 44be: 783c jmp r15 + 44c0: 87780000 .long 0x87780000 + 44c4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +000044c8 : +//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) +{ + 44c8: 14c3 push r4-r6 + 44ca: 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; + 44cc: 10c5 lrw r6, 0xb44b0000 // 44e0 + 44ce: 6d18 or r4, r6 + 44d0: 6cd0 or r3, r4 + 44d2: 6c8c or r2, r3 + 44d4: 6c48 or r1, r2 + 44d6: 10a4 lrw r5, 0x2000005c // 44e4 + 44d8: 6c04 or r0, r1 + 44da: 95a0 ld.w r5, (r5, 0x0) + 44dc: b513 st.w r0, (r5, 0x4c) +} + 44de: 1483 pop r4-r6 + 44e0: b44b0000 .long 0xb44b0000 + 44e4: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +000044e8 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 44e8: 1066 lrw r3, 0x2000005c // 4500 + 44ea: 3180 movi r1, 128 + 44ec: 9360 ld.w r3, (r3, 0x0) + 44ee: 3280 movi r2, 128 + 44f0: 604c addu r1, r3 + 44f2: 4244 lsli r2, r2, 4 + 44f4: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 44f6: 935d ld.w r2, (r3, 0x74) + 44f8: 3aab bseti r2, 11 + 44fa: b35d st.w r2, (r3, 0x74) +} + 44fc: 783c jmp r15 + 44fe: 0000 bkpt + 4500: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00004504 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 4504: 1066 lrw r3, 0x2000005c // 451c + 4506: 3180 movi r1, 128 + 4508: 9360 ld.w r3, (r3, 0x0) + 450a: 3280 movi r2, 128 + 450c: 604c addu r1, r3 + 450e: 4241 lsli r2, r2, 1 + 4510: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 4512: 935d ld.w r2, (r3, 0x74) + 4514: 3aa8 bseti r2, 8 + 4516: b35d st.w r2, (r3, 0x74) +} + 4518: 783c jmp r15 + 451a: 0000 bkpt + 451c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00004520 : +//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) + 4520: 3a40 cmpnei r2, 0 + 4522: 0c04 bf 0x452a // 452a + 4524: 3a41 cmpnei r2, 1 + 4526: 0c0e bf 0x4542 // 4542 + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 4528: 783c jmp r15 + 452a: 106d lrw r3, 0x2000005c // 455c + if(NewState != DISABLE) + 452c: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 452e: 9360 ld.w r3, (r3, 0x0) + 4530: 237f addi r3, 128 + 4532: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 4534: 0c04 bf 0x453c // 453c + SYSCON->EXIRT |=EXIPIN; + 4536: 6c48 or r1, r2 + 4538: b325 st.w r1, (r3, 0x14) + 453a: 07f7 br 0x4528 // 4528 + SYSCON->EXIRT &=~EXIPIN; + 453c: 6885 andn r2, r1 + 453e: b345 st.w r2, (r3, 0x14) + 4540: 07f4 br 0x4528 // 4528 + 4542: 1067 lrw r3, 0x2000005c // 455c + if(NewState != DISABLE) + 4544: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 4546: 9360 ld.w r3, (r3, 0x0) + 4548: 237f addi r3, 128 + 454a: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 454c: 0c04 bf 0x4554 // 4554 + SYSCON->EXIFT |=EXIPIN; + 454e: 6c48 or r1, r2 + 4550: b326 st.w r1, (r3, 0x18) + 4552: 07eb br 0x4528 // 4528 + SYSCON->EXIFT &=~EXIPIN; + 4554: 6885 andn r2, r1 + 4556: b346 st.w r2, (r3, 0x18) +} + 4558: 07e8 br 0x4528 // 4528 + 455a: 0000 bkpt + 455c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00004560 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 4560: 106b lrw r3, 0x2000005c // 458c + 4562: 104c lrw r2, 0x3fff // 4590 + 4564: 9360 ld.w r3, (r3, 0x0) + 4566: 237f addi r3, 128 + if(NewState != DISABLE) + 4568: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 456a: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 456c: 0c0c bf 0x4584 // 4584 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 456e: 9347 ld.w r2, (r3, 0x1c) + 4570: 6c84 or r2, r1 + 4572: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 4574: 9349 ld.w r2, (r3, 0x24) + 4576: 6884 and r2, r1 + 4578: 3a40 cmpnei r2, 0 + 457a: 0ffd bf 0x4574 // 4574 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 457c: 934b ld.w r2, (r3, 0x2c) + 457e: 6c48 or r1, r2 + 4580: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 4582: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 4584: 9348 ld.w r2, (r3, 0x20) + 4586: 6c48 or r1, r2 + 4588: b328 st.w r1, (r3, 0x20) +} + 458a: 07fc br 0x4582 // 4582 + 458c: 2000005c .long 0x2000005c + 4590: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00004594 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 4594: b02b st.w r1, (r0, 0x2c) +} + 4596: 783c jmp r15 + +Disassembly of section .text.EXI3_Int_Enable: + +00004598 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 4598: 3380 movi r3, 128 + 459a: 436f lsli r3, r3, 15 + 459c: 1042 lrw r2, 0xe000e100 // 45a4 + 459e: b260 st.w r3, (r2, 0x0) +} + 45a0: 783c jmp r15 + 45a2: 0000 bkpt + 45a4: e000e100 .long 0xe000e100 + +Disassembly of section .text.EXI4_Int_Enable: + +000045a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 45a8: 3380 movi r3, 128 + 45aa: 4370 lsli r3, r3, 16 + 45ac: 1042 lrw r2, 0xe000e100 // 45b4 + 45ae: b260 st.w r3, (r2, 0x0) +} + 45b0: 783c jmp r15 + 45b2: 0000 bkpt + 45b4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +000045b8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 45b8: 3202 movi r2, 2 + 45ba: 1062 lrw r3, 0xe000e100 // 45c0 + 45bc: b340 st.w r2, (r3, 0x0) +} + 45be: 783c jmp r15 + 45c0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +000045c4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 45c4: 3202 movi r2, 2 + 45c6: 1062 lrw r3, 0xe000e180 // 45cc + 45c8: b340 st.w r2, (r3, 0x0) +} + 45ca: 783c jmp r15 + 45cc: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +000045d0 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 45d0: 1066 lrw r3, 0xe000e400 // 45e8 + 45d2: 1047 lrw r2, 0xc0c0c0c0 // 45ec + 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 + 45d4: 1027 lrw r1, 0xc0c000c0 // 45f0 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 45d6: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 45d8: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 45da: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 45dc: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 45de: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 45e0: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 45e2: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 45e4: b347 st.w r2, (r3, 0x1c) +} + 45e6: 783c jmp r15 + 45e8: e000e400 .long 0xe000e400 + 45ec: c0c0c0c0 .long 0xc0c0c0c0 + 45f0: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000045f4 : +//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) +{ + 45f4: 14c1 push r4 + 45f6: 4862 lsri r3, r0, 2 + 45f8: 4342 lsli r2, r3, 2 + 45fa: 106a lrw r3, 0x20000064 // 4620 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 45fc: 3403 movi r4, 3 + 45fe: 9360 ld.w r3, (r3, 0x0) + 4600: 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)); + 4612: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 4616: 7040 lsl r1, r0 + 4618: 6c48 or r1, r2 + 461a: b320 st.w r1, (r3, 0x0) +} + 461c: 1481 pop r4 + 461e: 0000 bkpt + 4620: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00004624 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 4624: 1075 lrw r3, 0x2000004c // 4678 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 4626: 1036 lrw r1, 0x20000048 // 467c + 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; + 4628: 1016 lrw r0, 0xffff // 4680 + GPIOA0->CONLR &= 0xFF000000; + 462a: 9340 ld.w r2, (r3, 0x0) + 462c: 9260 ld.w r3, (r2, 0x0) + 462e: 4b78 lsri r3, r3, 24 + 4630: 4378 lsli r3, r3, 24 + 4632: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 4634: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 4636: 3300 movi r3, 0 + 4638: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 463a: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 463c: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 463e: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 4640: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 4642: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 4644: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 4646: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 4648: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 464a: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 464c: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 464e: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 4650: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 4652: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 4654: 303f movi r0, 63 + 4656: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 4658: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 465a: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 465c: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 465e: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 4660: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 4662: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 4664: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 4666: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 4668: 1047 lrw r2, 0x20000044 // 4684 + 466a: 9240 ld.w r2, (r2, 0x0) + 466c: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 466e: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 4670: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 4672: 330f movi r3, 15 + 4674: b263 st.w r3, (r2, 0xc) +} + 4676: 783c jmp r15 + 4678: 2000004c .long 0x2000004c + 467c: 20000048 .long 0x20000048 + 4680: 0000ffff .long 0x0000ffff + 4684: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00004688 : +//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) +{ + 4688: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 468a: 3907 cmphsi r1, 8 +{ + 468c: 6d03 mov r4, r0 + if(PinNum<8) + 468e: 0830 bt 0x46ee // 46ee + { + switch (PinNum) + 4690: 5903 subi r0, r1, 1 + 4692: 3806 cmphsi r0, 7 + 4694: 0827 bt 0x46e2 // 46e2 + 4696: e3fff733 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 469a: 1004 .short 0x1004 + 469c: 1d1a1613 .long 0x1d1a1613 + 46a0: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 46a2: 3300 movi r3, 0 + 46a4: 3104 movi r1, 4 + 46a6: 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) + 46a8: 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< + 46be: 07f5 br 0x46a8 // 46a8 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 46c0: 310c movi r1, 12 + 46c2: 1166 lrw r3, 0xffff0fff // 4758 + 46c4: 07f2 br 0x46a8 // 46a8 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 46c6: 3110 movi r1, 16 + 46c8: 1165 lrw r3, 0xfff10000 // 475c + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 46ca: 2b00 subi r3, 1 + 46cc: 07ee br 0x46a8 // 46a8 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 46ce: 3114 movi r1, 20 + 46d0: 1164 lrw r3, 0xff100000 // 4760 + 46d2: 07fc br 0x46ca // 46ca + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 46d4: 33f1 movi r3, 241 + 46d6: 3118 movi r1, 24 + 46d8: 4378 lsli r3, r3, 24 + 46da: 07f8 br 0x46ca // 46ca + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 46dc: 311c movi r1, 28 + 46de: 1162 lrw r3, 0xfffffff // 4764 + 46e0: 07e4 br 0x46a8 // 46a8 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 46e2: 3300 movi r3, 0 + 46e4: 3100 movi r1, 0 + 46e6: 2b0f subi r3, 16 + 46e8: 07e0 br 0x46a8 // 46a8 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 46ee: 390f cmphsi r1, 16 + 46f0: 0be4 bt 0x46b8 // 46b8 + switch (PinNum) + 46f2: 2908 subi r1, 9 + 46f4: 3906 cmphsi r1, 7 + 46f6: 6c07 mov r0, r1 + 46f8: 0827 bt 0x4746 // 4746 + 46fa: e3fff701 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 46fe: 1004 .short 0x1004 + 4700: 1d1a1613 .long 0x1d1a1613 + 4704: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 4706: 3300 movi r3, 0 + 4708: 3104 movi r1, 4 + 470a: 2bf0 subi r3, 241 + if (Dir) + 470c: 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; + 471e: 3108 movi r1, 8 + 4720: 106d lrw r3, 0xfffff0ff // 4754 + 4722: 07f5 br 0x470c // 470c + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 4724: 310c movi r1, 12 + 4726: 106d lrw r3, 0xffff0fff // 4758 + 4728: 07f2 br 0x470c // 470c + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 472a: 3110 movi r1, 16 + 472c: 106c lrw r3, 0xfff10000 // 475c + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 472e: 2b00 subi r3, 1 + 4730: 07ee br 0x470c // 470c + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 4732: 3114 movi r1, 20 + 4734: 106b lrw r3, 0xff100000 // 4760 + 4736: 07fc br 0x472e // 472e + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 4738: 33f1 movi r3, 241 + 473a: 3118 movi r1, 24 + 473c: 4378 lsli r3, r3, 24 + 473e: 07f8 br 0x472e // 472e + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 4740: 311c movi r1, 28 + 4742: 1069 lrw r3, 0xfffffff // 4764 + 4744: 07e4 br 0x470c // 470c + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 4746: 3300 movi r3, 0 + 4748: 3100 movi r1, 0 + 474a: 2b0f subi r3, 16 + 474c: 07e0 br 0x470c // 470c + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 4752: 0000 bkpt + 4754: fffff0ff .long 0xfffff0ff + 4758: ffff0fff .long 0xffff0fff + 475c: fff10000 .long 0xfff10000 + 4760: ff100000 .long 0xff100000 + 4764: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00004768 : +//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)); + 4768: 4121 lsli r1, r1, 1 + 476a: 3203 movi r2, 3 + 476c: 9068 ld.w r3, (r0, 0x20) + 476e: 7084 lsl r2, r1 + 4770: 68c9 andn r3, r2 + 4772: 3201 movi r2, 1 + 4774: 7084 lsl r2, r1 + 4776: 6cc8 or r3, r2 + 4778: b068 st.w r3, (r0, 0x20) +} + 477a: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +0000477c : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 477c: 4121 lsli r1, r1, 1 + 477e: 3301 movi r3, 1 + 4780: 9049 ld.w r2, (r0, 0x24) + 4782: 70c4 lsl r3, r1 + 4784: 6cc8 or r3, r2 + 4786: b069 st.w r3, (r0, 0x24) +} + 4788: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +0000478c : +//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) +{ + 478c: 14c1 push r4 + 478e: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 4790: 3a0f cmphsi r2, 16 + 4792: 084f bt 0x4830 // 4830 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 4794: 6ccb mov r3, r2 + 4796: 3b83 bclri r3, 3 + 4798: 3b40 cmpnei r3, 0 + 479a: 0813 bt 0x47c0 // 47c0 + { + R_data_temp=0xfffffff0; + 479c: 2b0f subi r3, 16 + 479e: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 47a0: 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) + 47a2: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 47a4: dc6e0003 st.b r3, (r14, 0x3) + 47a8: 1176 lrw r3, 0x20000044 // 4880 + if(Selete_EXI_x<8) + 47aa: 0c38 bf 0x481a // 481a + { + 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)) + 47c0: 3b41 cmpnei r3, 1 + 47c2: 0806 bt 0x47ce // 47ce + R_data_temp=0xffffff0f; + 47c4: 3300 movi r3, 0 + 47c6: 2bf0 subi r3, 241 + 47c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 47ca: 3304 movi r3, 4 + 47cc: 07eb br 0x47a2 // 47a2 + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 47ce: 3b42 cmpnei r3, 2 + 47d0: 0805 bt 0x47da // 47da + R_data_temp=0xfffff0ff; + 47d2: 116d lrw r3, 0xfffff0ff // 4884 + 47d4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 47d6: 3308 movi r3, 8 + 47d8: 07e5 br 0x47a2 // 47a2 + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 47da: 3b43 cmpnei r3, 3 + 47dc: 0805 bt 0x47e6 // 47e6 + R_data_temp=0xffff0fff; + 47de: 116b lrw r3, 0xffff0fff // 4888 + 47e0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 47e2: 330c movi r3, 12 + 47e4: 07df br 0x47a2 // 47a2 + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 47e6: 3b44 cmpnei r3, 4 + 47e8: 0806 bt 0x47f4 // 47f4 + R_data_temp=0xfff0ffff; + 47ea: 1169 lrw r3, 0xfff10000 // 488c + 47ec: 2b00 subi r3, 1 + 47ee: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 47f0: 3310 movi r3, 16 + 47f2: 07d8 br 0x47a2 // 47a2 + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 47f4: 3b45 cmpnei r3, 5 + 47f6: 0806 bt 0x4802 // 4802 + R_data_temp=0xff0fffff; + 47f8: 1166 lrw r3, 0xff100000 // 4890 + 47fa: 2b00 subi r3, 1 + 47fc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 47fe: 3314 movi r3, 20 + 4800: 07d1 br 0x47a2 // 47a2 + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 4802: 3b46 cmpnei r3, 6 + 4804: 0807 bt 0x4812 // 4812 + R_data_temp=0xf0ffffff; + 4806: 33f1 movi r3, 241 + 4808: 4378 lsli r3, r3, 24 + 480a: 2b00 subi r3, 1 + 480c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 480e: 3318 movi r3, 24 + 4810: 07c9 br 0x47a2 // 47a2 + R_data_temp=0x0fffffff; + 4812: 1161 lrw r3, 0xfffffff // 4894 + 4814: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 4816: 331c movi r3, 28 + 4818: 07c5 br 0x47a2 // 47a2 + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 482c: 1402 addi r14, r14, 8 + 482e: 1481 pop r4 + else if(Selete_EXI_x<20) + 4830: 3a13 cmphsi r2, 20 + 4832: 0bfd bt 0x482c // 482c + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 4834: 3840 cmpnei r0, 0 + 4836: 0814 bt 0x485e // 485e + 4838: 3300 movi r3, 0 + 483a: 2b0f subi r3, 16 + 483c: 60c8 addu r3, r2 + 483e: 3b01 cmphsi r3, 2 + 4840: 0bf6 bt 0x482c // 482c + if(Selete_EXI_x==16) + 4842: 3a50 cmpnei r2, 16 + 4844: 106f lrw r3, 0x20000044 // 4880 + 4846: 0806 bt 0x4852 // 4852 + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 4848: 9340 ld.w r2, (r3, 0x0) + 484a: 9262 ld.w r3, (r2, 0x8) + 484c: 6c4c or r1, r3 + 484e: b222 st.w r1, (r2, 0x8) + 4850: 07ee br 0x482c // 482c + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 4852: 9360 ld.w r3, (r3, 0x0) + 4854: 9342 ld.w r2, (r3, 0x8) + 4856: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 4858: 6c48 or r1, r2 + 485a: b322 st.w r1, (r3, 0x8) +} + 485c: 07e8 br 0x482c // 482c + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 485e: 3842 cmpnei r0, 2 + 4860: 0be6 bt 0x482c // 482c + 4862: 3300 movi r3, 0 + 4864: 2b11 subi r3, 18 + 4866: 60c8 addu r3, r2 + 4868: 3b01 cmphsi r3, 2 + 486a: 0be1 bt 0x482c // 482c + 486c: 1065 lrw r3, 0x20000044 // 4880 + if(Selete_EXI_x==18) + 486e: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 4870: 9360 ld.w r3, (r3, 0x0) + 4872: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 4874: 0803 bt 0x487a // 487a + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 4876: 4128 lsli r1, r1, 8 + 4878: 07f0 br 0x4858 // 4858 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 487a: 412c lsli r1, r1, 12 + 487c: 07ee br 0x4858 // 4858 + 487e: 0000 bkpt + 4880: 20000044 .long 0x20000044 + 4884: fffff0ff .long 0xfffff0ff + 4888: ffff0fff .long 0xffff0fff + 488c: fff10000 .long 0xfff10000 + 4890: ff100000 .long 0xff100000 + 4894: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00004898 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 4898: 14d0 push r15 + switch (EXI_IO) + 489a: 380f cmphsi r0, 16 + 489c: 0812 bt 0x48c0 // 48c0 + 489e: 117d lrw r3, 0x2000004c // 4990 + 48a0: e3fff62e bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 48a4: 1d150f08 .long 0x1d150f08 + 48a8: 39322b24 .long 0x39322b24 + 48ac: 544c463f .long 0x544c463f + 48b0: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 48b4: 9340 ld.w r2, (r3, 0x0) + 48b6: 9260 ld.w r3, (r2, 0x0) + 48b8: 310f movi r1, 15 + 48ba: 68c5 andn r3, r1 + 48bc: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 48be: 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; + } +} + 48c0: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 48c2: 9340 ld.w r2, (r3, 0x0) + 48c4: 9260 ld.w r3, (r2, 0x0) + 48c6: 31f0 movi r1, 240 + 48c8: 68c5 andn r3, r1 + 48ca: 3ba4 bseti r3, 4 + 48cc: 07f9 br 0x48be // 48be + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 48ce: 9320 ld.w r1, (r3, 0x0) + 48d0: 32f0 movi r2, 240 + 48d2: 9160 ld.w r3, (r1, 0x0) + 48d4: 4244 lsli r2, r2, 4 + 48d6: 68c9 andn r3, r2 + 48d8: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 48da: b160 st.w r3, (r1, 0x0) + 48dc: 07f2 br 0x48c0 // 48c0 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 48de: 9320 ld.w r1, (r3, 0x0) + 48e0: 32f0 movi r2, 240 + 48e2: 9160 ld.w r3, (r1, 0x0) + 48e4: 4248 lsli r2, r2, 8 + 48e6: 68c9 andn r3, r2 + 48e8: 3bac bseti r3, 12 + 48ea: 07f8 br 0x48da // 48da + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 48ec: 9320 ld.w r1, (r3, 0x0) + 48ee: 32f0 movi r2, 240 + 48f0: 9160 ld.w r3, (r1, 0x0) + 48f2: 424c lsli r2, r2, 12 + 48f4: 68c9 andn r3, r2 + 48f6: 3bb0 bseti r3, 16 + 48f8: 07f1 br 0x48da // 48da + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 48fa: 9320 ld.w r1, (r3, 0x0) + 48fc: 32f0 movi r2, 240 + 48fe: 9160 ld.w r3, (r1, 0x0) + 4900: 4250 lsli r2, r2, 16 + 4902: 68c9 andn r3, r2 + 4904: 3bb4 bseti r3, 20 + 4906: 07ea br 0x48da // 48da + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 4908: 9320 ld.w r1, (r3, 0x0) + 490a: 32f0 movi r2, 240 + 490c: 9160 ld.w r3, (r1, 0x0) + 490e: 4254 lsli r2, r2, 20 + 4910: 68c9 andn r3, r2 + 4912: 3bb8 bseti r3, 24 + 4914: 07e3 br 0x48da // 48da + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 4916: 9340 ld.w r2, (r3, 0x0) + 4918: 9260 ld.w r3, (r2, 0x0) + 491a: 4364 lsli r3, r3, 4 + 491c: 4b64 lsri r3, r3, 4 + 491e: 3bbc bseti r3, 28 + 4920: 07cf br 0x48be // 48be + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 4922: 9340 ld.w r2, (r3, 0x0) + 4924: 9261 ld.w r3, (r2, 0x4) + 4926: 310f movi r1, 15 + 4928: 68c5 andn r3, r1 + 492a: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 492c: b261 st.w r3, (r2, 0x4) +} + 492e: 07c9 br 0x48c0 // 48c0 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 4930: 9340 ld.w r2, (r3, 0x0) + 4932: 9261 ld.w r3, (r2, 0x4) + 4934: 31f0 movi r1, 240 + 4936: 68c5 andn r3, r1 + 4938: 3ba4 bseti r3, 4 + 493a: 07f9 br 0x492c // 492c + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 493c: 9320 ld.w r1, (r3, 0x0) + 493e: 32f0 movi r2, 240 + 4940: 9161 ld.w r3, (r1, 0x4) + 4942: 4244 lsli r2, r2, 4 + 4944: 68c9 andn r3, r2 + 4946: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 4948: b161 st.w r3, (r1, 0x4) + 494a: 07bb br 0x48c0 // 48c0 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 494c: 9320 ld.w r1, (r3, 0x0) + 494e: 32f0 movi r2, 240 + 4950: 9161 ld.w r3, (r1, 0x4) + 4952: 4248 lsli r2, r2, 8 + 4954: 68c9 andn r3, r2 + 4956: 3bac bseti r3, 12 + 4958: 07f8 br 0x4948 // 4948 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 495a: 9320 ld.w r1, (r3, 0x0) + 495c: 32f0 movi r2, 240 + 495e: 9161 ld.w r3, (r1, 0x4) + 4960: 424c lsli r2, r2, 12 + 4962: 68c9 andn r3, r2 + 4964: 3bb0 bseti r3, 16 + 4966: 07f1 br 0x4948 // 4948 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 4968: 9320 ld.w r1, (r3, 0x0) + 496a: 32f0 movi r2, 240 + 496c: 9161 ld.w r3, (r1, 0x4) + 496e: 4250 lsli r2, r2, 16 + 4970: 68c9 andn r3, r2 + 4972: 3bb4 bseti r3, 20 + 4974: 07ea br 0x4948 // 4948 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 4976: 9320 ld.w r1, (r3, 0x0) + 4978: 32f0 movi r2, 240 + 497a: 9161 ld.w r3, (r1, 0x4) + 497c: 4254 lsli r2, r2, 20 + 497e: 68c9 andn r3, r2 + 4980: 3bb8 bseti r3, 24 + 4982: 07e3 br 0x4948 // 4948 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 4984: 9340 ld.w r2, (r3, 0x0) + 4986: 9261 ld.w r3, (r2, 0x4) + 4988: 4364 lsli r3, r3, 4 + 498a: 4b64 lsri r3, r3, 4 + 498c: 3bbc bseti r3, 28 + 498e: 07cf br 0x492c // 492c + 4990: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIOB0_EXI_Init: + +00004994 : +void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 4994: 14d0 push r15 + switch (EXI_IO) + 4996: 3805 cmphsi r0, 6 + 4998: 080d bt 0x49b2 // 49b2 + 499a: 1079 lrw r3, 0x20000048 // 49fc + 499c: e3fff5b0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 49a0: 18100a03 .long 0x18100a03 + 49a4: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 49a6: 9340 ld.w r2, (r3, 0x0) + 49a8: 9260 ld.w r3, (r2, 0x0) + 49aa: 310f movi r1, 15 + 49ac: 68c5 andn r3, r1 + 49ae: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 49b0: b260 st.w r3, (r2, 0x0) + 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; + } +} + 49b2: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 49b4: 9340 ld.w r2, (r3, 0x0) + 49b6: 9260 ld.w r3, (r2, 0x0) + 49b8: 31f0 movi r1, 240 + 49ba: 68c5 andn r3, r1 + 49bc: 3ba4 bseti r3, 4 + 49be: 07f9 br 0x49b0 // 49b0 + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 49c0: 9320 ld.w r1, (r3, 0x0) + 49c2: 32f0 movi r2, 240 + 49c4: 9160 ld.w r3, (r1, 0x0) + 49c6: 4244 lsli r2, r2, 4 + 49c8: 68c9 andn r3, r2 + 49ca: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 49cc: b160 st.w r3, (r1, 0x0) +} + 49ce: 07f2 br 0x49b2 // 49b2 + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 49d0: 9320 ld.w r1, (r3, 0x0) + 49d2: 32f0 movi r2, 240 + 49d4: 9160 ld.w r3, (r1, 0x0) + 49d6: 4248 lsli r2, r2, 8 + 49d8: 68c9 andn r3, r2 + 49da: 3bac bseti r3, 12 + 49dc: 07f8 br 0x49cc // 49cc + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 49de: 9320 ld.w r1, (r3, 0x0) + 49e0: 32f0 movi r2, 240 + 49e2: 9160 ld.w r3, (r1, 0x0) + 49e4: 424c lsli r2, r2, 12 + 49e6: 68c9 andn r3, r2 + 49e8: 3bb0 bseti r3, 16 + 49ea: 07f1 br 0x49cc // 49cc + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 49ec: 9320 ld.w r1, (r3, 0x0) + 49ee: 32f0 movi r2, 240 + 49f0: 9160 ld.w r3, (r1, 0x0) + 49f2: 4250 lsli r2, r2, 16 + 49f4: 68c9 andn r3, r2 + 49f6: 3bb4 bseti r3, 20 + 49f8: 07ea br 0x49cc // 49cc + 49fa: 0000 bkpt + 49fc: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +00004a00 : +//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; + 4a10: 9045 ld.w r2, (r0, 0x14) + 4a12: 3301 movi r3, 1 + 4a14: 7085 lsr r2, r1 + 4a16: 688c and r2, r3 + { + if (dat==1) + 4a18: 3a40 cmpnei r2, 0 + 4a1a: 70c4 lsl r3, r1 + 4a1c: 0c03 bf 0x4a22 // 4a22 + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +00004a26 : +/*************************************************************/ +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); + 4a38: 1064 lrw r3, 0x20000014 // 4a48 + 4a3a: 9340 ld.w r2, (r3, 0x0) + 4a3c: 9261 ld.w r3, (r2, 0x4) + 4a3e: 3bac bseti r3, 12 + 4a40: 3bae bseti r3, 14 + 4a42: b261 st.w r3, (r2, 0x4) +} + 4a44: 783c jmp r15 + 4a46: 0000 bkpt + 4a48: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00004a4c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 4a4c: 1063 lrw r3, 0x20000010 // 4a58 + 4a4e: 9360 ld.w r3, (r3, 0x0) + 4a50: 9340 ld.w r2, (r3, 0x0) + 4a52: 6c08 or r0, r2 + 4a54: b300 st.w r0, (r3, 0x0) +} + 4a56: 783c jmp r15 + 4a58: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00004a5c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 4a5c: 3300 movi r3, 0 + 4a5e: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 4a60: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 4a62: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 4a64: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 4a66: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 4a68: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 4a6a: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 4a6c: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 4a6e: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 4a70: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 4a72: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 4a74: b06d st.w r3, (r0, 0x34) +} + 4a76: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00004a78 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 4a78: 9060 ld.w r3, (r0, 0x0) + 4a7a: 3ba0 bseti r3, 0 + 4a7c: b060 st.w r3, (r0, 0x0) +} + 4a7e: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +00004a80 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 4a80: 9060 ld.w r3, (r0, 0x0) + 4a82: 3bac bseti r3, 12 + 4a84: 3bae bseti r3, 14 + 4a86: b060 st.w r3, (r0, 0x0) +} + 4a88: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00004a8a : +//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) +{ + 4a8a: 14c3 push r4-r6 + 4a8c: 98a4 ld.w r5, (r14, 0x10) + 4a8e: 6d97 mov r6, r5 + 4a90: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 4a92: 6d18 or r4, r6 + 4a94: 6cd0 or r3, r4 + 4a96: 90a1 ld.w r5, (r0, 0x4) + 4a98: 6c4c or r1, r3 + 4a9a: 6c54 or r1, r5 + 4a9c: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 4a9e: b042 st.w r2, (r0, 0x8) +} + 4aa0: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +00004aa2 : +//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) +{ + 4aa2: 14c4 push r4-r7 + 4aa4: 1421 subi r14, r14, 4 + 4aa6: 9885 ld.w r4, (r14, 0x14) + 4aa8: 6dd3 mov r7, r4 + 4aaa: 9886 ld.w r4, (r14, 0x18) + 4aac: b880 st.w r4, (r14, 0x0) + 4aae: 9887 ld.w r4, (r14, 0x1c) + 4ab0: 6d93 mov r6, r4 + 4ab2: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 4ab4: 6d58 or r5, r6 + 4ab6: 98c0 ld.w r6, (r14, 0x0) + 4ab8: 6d58 or r5, r6 + 4aba: 6d5c or r5, r7 + 4abc: 6cd4 or r3, r5 + 4abe: 6c8c or r2, r3 + 4ac0: 9081 ld.w r4, (r0, 0x4) + 4ac2: 6c48 or r1, r2 + 4ac4: 6d04 or r4, r1 + 4ac6: 6d9f mov r6, r7 + 4ac8: b081 st.w r4, (r0, 0x4) +} + 4aca: 1401 addi r14, r14, 4 + 4acc: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +00004ace : +//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; + 4ace: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 4ad0: b044 st.w r2, (r0, 0x10) +} + 4ad2: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00004ad4 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 4ad4: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 4ad6: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 4ad8: 0c04 bf 0x4ae0 // 4ae0 + BTx->IMCR |= BT_IMSCR_X; + 4ada: 6c8c or r2, r3 + 4adc: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 4ade: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 4ae0: 68c9 andn r3, r2 + 4ae2: b06b st.w r3, (r0, 0x2c) +} + 4ae4: 07fd br 0x4ade // 4ade + +Disassembly of section .text.BT1_INT_ENABLE: + +00004ae8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 4ae8: 3380 movi r3, 128 + 4aea: 4376 lsli r3, r3, 22 + 4aec: 1042 lrw r2, 0xe000e100 // 4af4 + 4aee: b260 st.w r3, (r2, 0x0) +} + 4af0: 783c jmp r15 + 4af2: 0000 bkpt + 4af4: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00004af8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 4af8: 1067 lrw r3, 0x2000002c // 4b14 + 4afa: 3200 movi r2, 0 + 4afc: 9360 ld.w r3, (r3, 0x0) + 4afe: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 4b00: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 4b02: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 4b04: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 4b06: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 4b08: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 4b0a: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 4b0c: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 4b0e: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 4b10: b34b st.w r2, (r3, 0x2c) +} + 4b12: 783c jmp r15 + 4b14: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +00004b18 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 4b18: 3840 cmpnei r0, 0 + 4b1a: 080a bt 0x4b2e // 4b2e + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 4b1c: 1075 lrw r3, 0x2000004c // 4b70 + 4b1e: 32f0 movi r2, 240 + 4b20: 9320 ld.w r1, (r3, 0x0) + 4b22: 9160 ld.w r3, (r1, 0x0) + 4b24: 4244 lsli r2, r2, 4 + 4b26: 68c9 andn r3, r2 + 4b28: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 4b2a: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 4b2c: 783c jmp r15 + if(IOGx==SIO_PA03) + 4b2e: 3841 cmpnei r0, 1 + 4b30: 0809 bt 0x4b42 // 4b42 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 4b32: 1070 lrw r3, 0x2000004c // 4b70 + 4b34: 32f0 movi r2, 240 + 4b36: 9320 ld.w r1, (r3, 0x0) + 4b38: 9160 ld.w r3, (r1, 0x0) + 4b3a: 4248 lsli r2, r2, 8 + 4b3c: 68c9 andn r3, r2 + 4b3e: 3baf bseti r3, 15 + 4b40: 07f5 br 0x4b2a // 4b2a + if(IOGx==SIO_PA012) + 4b42: 3842 cmpnei r0, 2 + 4b44: 080a bt 0x4b58 // 4b58 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 4b46: 106b lrw r3, 0x2000004c // 4b70 + 4b48: 32f0 movi r2, 240 + 4b4a: 9320 ld.w r1, (r3, 0x0) + 4b4c: 9161 ld.w r3, (r1, 0x4) + 4b4e: 424c lsli r2, r2, 12 + 4b50: 68c9 andn r3, r2 + 4b52: 3bb3 bseti r3, 19 + 4b54: b161 st.w r3, (r1, 0x4) + 4b56: 07eb br 0x4b2c // 4b2c + if(IOGx==SIO_PB01) + 4b58: 3843 cmpnei r0, 3 + 4b5a: 0be9 bt 0x4b2c // 4b2c + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 4b5c: 1066 lrw r3, 0x20000048 // 4b74 + 4b5e: 31f0 movi r1, 240 + 4b60: 9340 ld.w r2, (r3, 0x0) + 4b62: 9260 ld.w r3, (r2, 0x0) + 4b64: 68c5 andn r3, r1 + 4b66: 3170 movi r1, 112 + 4b68: 6cc4 or r3, r1 + 4b6a: b260 st.w r3, (r2, 0x0) +} + 4b6c: 07e0 br 0x4b2c // 4b2c + 4b6e: 0000 bkpt + 4b70: 2000004c .long 0x2000004c + 4b74: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +00004b78 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 4b78: 4130 lsli r1, r1, 16 + 4b7a: 1063 lrw r3, 0x2000002c // 4b84 + 4b7c: 6c04 or r0, r1 + 4b7e: 9360 ld.w r3, (r3, 0x0) + 4b80: b300 st.w r0, (r3, 0x0) + +} + 4b82: 783c jmp r15 + 4b84: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +00004b88 : +//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) +{ + 4b88: 14c4 push r4-r7 + 4b8a: 1423 subi r14, r14, 12 + 4b8c: 9889 ld.w r4, (r14, 0x24) + 4b8e: b881 st.w r4, (r14, 0x4) + 4b90: 988a ld.w r4, (r14, 0x28) + 4b92: b882 st.w r4, (r14, 0x8) + 4b94: 1c08 addi r4, r14, 32 + 4b96: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b98: 4368 lsli r3, r3, 8 +{ + 4b9a: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4b9c: 6cc0 or r3, r0 +{ + 4b9e: 1c0b addi r4, r14, 44 + 4ba0: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4ba2: 6cc4 or r3, r1 +{ + 4ba4: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4ba6: 4244 lsli r2, r2, 4 + 4ba8: 10eb lrw r7, 0x2000002c // 4bd4 + 4baa: 6cc8 or r3, r2 + 4bac: 97e0 ld.w r7, (r7, 0x0) +{ + 4bae: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 4bb0: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 4bb2: 4498 lsli r4, r4, 24 + 4bb4: 9861 ld.w r3, (r14, 0x4) + 4bb6: 6d0c or r4, r3 + 4bb8: 9862 ld.w r3, (r14, 0x8) + 4bba: 6d0c or r4, r3 +{ + 4bbc: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 4bc0: 9860 ld.w r3, (r14, 0x0) + 4bc2: 46d0 lsli r6, r6, 16 + 4bc4: 6d90 or r6, r4 + 4bc6: 45a2 lsli r5, r5, 2 + 4bc8: 4385 lsli r4, r3, 5 + 4bca: 6d50 or r5, r4 + 4bcc: 6d58 or r5, r6 + 4bce: b7a2 st.w r5, (r7, 0x8) +} + 4bd0: 1403 addi r14, r14, 12 + 4bd2: 1484 pop r4-r7 + 4bd4: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +00004bd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 4bd8: 1065 lrw r3, 0x20000040 // 4bec + 4bda: 3200 movi r2, 0 + 4bdc: 9360 ld.w r3, (r3, 0x0) + 4bde: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 4be0: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 4be2: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 4be4: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 4be6: b344 st.w r2, (r3, 0x10) +} + 4be8: 783c jmp r15 + 4bea: 0000 bkpt + 4bec: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00004bf0 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 4bf0: 1065 lrw r3, 0x2000003c // 4c04 + 4bf2: 3200 movi r2, 0 + 4bf4: 9360 ld.w r3, (r3, 0x0) + 4bf6: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 4bf8: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 4bfa: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 4bfc: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 4bfe: b344 st.w r2, (r3, 0x10) +} + 4c00: 783c jmp r15 + 4c02: 0000 bkpt + 4c04: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00004c08 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 4c08: 1065 lrw r3, 0x20000038 // 4c1c + 4c0a: 3200 movi r2, 0 + 4c0c: 9360 ld.w r3, (r3, 0x0) + 4c0e: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 4c10: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 4c12: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 4c14: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 4c16: b344 st.w r2, (r3, 0x10) +} + 4c18: 783c jmp r15 + 4c1a: 0000 bkpt + 4c1c: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00004c20 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 4c20: 1065 lrw r3, 0x20000040 // 4c34 + 4c22: 320f movi r2, 15 + 4c24: 9360 ld.w r3, (r3, 0x0) + 4c26: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 4c28: 3380 movi r3, 128 + 4c2a: 4366 lsli r3, r3, 6 + 4c2c: 1043 lrw r2, 0xe000e100 // 4c38 + 4c2e: b260 st.w r3, (r2, 0x0) +} + 4c30: 783c jmp r15 + 4c32: 0000 bkpt + 4c34: 20000040 .long 0x20000040 + 4c38: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00004c3c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 4c3c: 1065 lrw r3, 0x20000038 // 4c50 + 4c3e: 320f movi r2, 15 + 4c40: 9360 ld.w r3, (r3, 0x0) + 4c42: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 4c44: 3380 movi r3, 128 + 4c46: 4368 lsli r3, r3, 8 + 4c48: 1043 lrw r2, 0xe000e100 // 4c54 + 4c4a: b260 st.w r3, (r2, 0x0) +} + 4c4c: 783c jmp r15 + 4c4e: 0000 bkpt + 4c50: 20000038 .long 0x20000038 + 4c54: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00004c58 : +//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) + 4c58: 3840 cmpnei r0, 0 + 4c5a: 0821 bt 0x4c9c // 4c9c + { + if(UART_IO_G==0) + 4c5c: 3940 cmpnei r1, 0 + 4c5e: 080a bt 0x4c72 // 4c72 + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 4c60: 1177 lrw r3, 0x2000004c // 4d3c + 4c62: 31ff movi r1, 255 + 4c64: 9340 ld.w r2, (r3, 0x0) + 4c66: 9260 ld.w r3, (r2, 0x0) + 4c68: 68c5 andn r3, r1 + 4c6a: 3ba2 bseti r3, 2 + 4c6c: 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 + 4c6e: b260 st.w r3, (r2, 0x0) + 4c70: 0415 br 0x4c9a // 4c9a + else if(UART_IO_G==1) + 4c72: 3941 cmpnei r1, 1 + 4c74: 0813 bt 0x4c9a // 4c9a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 4c76: 1172 lrw r3, 0x2000004c // 4d3c + 4c78: 31f0 movi r1, 240 + 4c7a: 9340 ld.w r2, (r3, 0x0) + 4c7c: 9260 ld.w r3, (r2, 0x0) + 4c7e: 4130 lsli r1, r1, 16 + 4c80: 68c5 andn r3, r1 + 4c82: 31e0 movi r1, 224 + 4c84: 412f lsli r1, r1, 15 + 4c86: 6cc4 or r3, r1 + 4c88: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 4c8a: 31f0 movi r1, 240 + 4c8c: 9261 ld.w r3, (r2, 0x4) + 4c8e: 412c lsli r1, r1, 12 + 4c90: 68c5 andn r3, r1 + 4c92: 31e0 movi r1, 224 + 4c94: 412b lsli r1, r1, 11 + 4c96: 6cc4 or r3, r1 + 4c98: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 4c9a: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 4c9c: 3841 cmpnei r0, 1 + 4c9e: 082d bt 0x4cf8 // 4cf8 + if(UART_IO_G==0) + 4ca0: 3940 cmpnei r1, 0 + 4ca2: 0814 bt 0x4cca // 4cca + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 4ca4: 1167 lrw r3, 0x20000048 // 4d40 + 4ca6: 310f movi r1, 15 + 4ca8: 9340 ld.w r2, (r3, 0x0) + 4caa: 9260 ld.w r3, (r2, 0x0) + 4cac: 68c5 andn r3, r1 + 4cae: 3107 movi r1, 7 + 4cb0: 6cc4 or r3, r1 + 4cb2: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 4cb4: 32f0 movi r2, 240 + 4cb6: 1162 lrw r3, 0x2000004c // 4d3c + 4cb8: 4250 lsli r2, r2, 16 + 4cba: 9320 ld.w r1, (r3, 0x0) + 4cbc: 9161 ld.w r3, (r1, 0x4) + 4cbe: 68c9 andn r3, r2 + 4cc0: 32e0 movi r2, 224 + 4cc2: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 4cc4: 6cc8 or r3, r2 + 4cc6: b161 st.w r3, (r1, 0x4) + 4cc8: 07e9 br 0x4c9a // 4c9a + else if(UART_IO_G==1) + 4cca: 3941 cmpnei r1, 1 + 4ccc: 080c bt 0x4ce4 // 4ce4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 4cce: 107c lrw r3, 0x2000004c // 4d3c + 4cd0: 32ff movi r2, 255 + 4cd2: 9320 ld.w r1, (r3, 0x0) + 4cd4: 424c lsli r2, r2, 12 + 4cd6: 9160 ld.w r3, (r1, 0x0) + 4cd8: 68c9 andn r3, r2 + 4cda: 32ee movi r2, 238 + 4cdc: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 4cde: 6cc8 or r3, r2 + 4ce0: b160 st.w r3, (r1, 0x0) +} + 4ce2: 07dc br 0x4c9a // 4c9a + else if(UART_IO_G==2) + 4ce4: 3942 cmpnei r1, 2 + 4ce6: 0bda bt 0x4c9a // 4c9a + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 4ce8: 1075 lrw r3, 0x2000004c // 4d3c + 4cea: 32ee movi r2, 238 + 4cec: 9320 ld.w r1, (r3, 0x0) + 4cee: 9161 ld.w r3, (r1, 0x4) + 4cf0: 4368 lsli r3, r3, 8 + 4cf2: 4b68 lsri r3, r3, 8 + 4cf4: 4257 lsli r2, r2, 23 + 4cf6: 07e7 br 0x4cc4 // 4cc4 + if (IO_UART_NUM==IO_UART2) + 4cf8: 3842 cmpnei r0, 2 + 4cfa: 0bd0 bt 0x4c9a // 4c9a + if(UART_IO_G==0) + 4cfc: 3940 cmpnei r1, 0 + 4cfe: 0809 bt 0x4d10 // 4d10 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 4d00: 106f lrw r3, 0x2000004c // 4d3c + 4d02: 31ff movi r1, 255 + 4d04: 9340 ld.w r2, (r3, 0x0) + 4d06: 9260 ld.w r3, (r2, 0x0) + 4d08: 68c5 andn r3, r1 + 4d0a: 3177 movi r1, 119 + 4d0c: 6cc4 or r3, r1 + 4d0e: 07b0 br 0x4c6e // 4c6e + else if(UART_IO_G==1) + 4d10: 3941 cmpnei r1, 1 + 4d12: 0809 bt 0x4d24 // 4d24 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 4d14: 106a lrw r3, 0x2000004c // 4d3c + 4d16: 32ee movi r2, 238 + 4d18: 9320 ld.w r1, (r3, 0x0) + 4d1a: 9160 ld.w r3, (r1, 0x0) + 4d1c: 4368 lsli r3, r3, 8 + 4d1e: 4b68 lsri r3, r3, 8 + 4d20: 4257 lsli r2, r2, 23 + 4d22: 07de br 0x4cde // 4cde + else if(UART_IO_G==2) + 4d24: 3942 cmpnei r1, 2 + 4d26: 0bba bt 0x4c9a // 4c9a + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 4d28: 1066 lrw r3, 0x20000048 // 4d40 + 4d2a: 32ff movi r2, 255 + 4d2c: 9320 ld.w r1, (r3, 0x0) + 4d2e: 4250 lsli r2, r2, 16 + 4d30: 9160 ld.w r3, (r1, 0x0) + 4d32: 68c9 andn r3, r2 + 4d34: 32cc movi r2, 204 + 4d36: 424f lsli r2, r2, 15 + 4d38: 07d3 br 0x4cde // 4cde + 4d3a: 0000 bkpt + 4d3c: 2000004c .long 0x2000004c + 4d40: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +00004d44 : +//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); + 4d44: 1063 lrw r3, 0x80003 // 4d50 + 4d46: 6c8c or r2, r3 + 4d48: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 4d4a: b024 st.w r1, (r0, 0x10) +} + 4d4c: 783c jmp r15 + 4d4e: 0000 bkpt + 4d50: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00004d54 : +//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); + 4d54: 1063 lrw r3, 0x8000f // 4d60 + 4d56: 6c8c or r2, r3 + 4d58: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 4d5a: b024 st.w r1, (r0, 0x10) +} + 4d5c: 783c jmp r15 + 4d5e: 0000 bkpt + 4d60: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00004d64 : +//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) +{ + 4d64: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 4d66: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 4d68: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 4d6a: 5b85 subu r4, r3, r1 + 4d6c: 6490 cmphs r4, r2 + 4d6e: 0c02 bf 0x4d72 // 4d72 + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 4d70: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 4d72: 8380 ld.b r4, (r3, 0x0) + 4d74: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 4d76: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 4d78: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 4d7a: 3c40 cmpnei r4, 0 + 4d7c: 0bfd bt 0x4d76 // 4d76 + 4d7e: 2300 addi r3, 1 + 4d80: 07f5 br 0x4d6a // 4d6a + +Disassembly of section .text.EPT_Stop: + +00004d84 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 4d84: 1068 lrw r3, 0x20000020 // 4da4 + 4d86: 3280 movi r2, 128 + 4d88: 9360 ld.w r3, (r3, 0x0) + 4d8a: 608c addu r2, r3 + 4d8c: 1027 lrw r1, 0xa55ac73a // 4da8 + 4d8e: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 4d90: 9341 ld.w r2, (r3, 0x4) + 4d92: 31fe movi r1, 254 + 4d94: 6884 and r2, r1 + 4d96: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 4d98: 3101 movi r1, 1 + 4d9a: 9341 ld.w r2, (r3, 0x4) + 4d9c: 6884 and r2, r1 + 4d9e: 3a40 cmpnei r2, 0 + 4da0: 0bfd bt 0x4d9a // 4d9a +} + 4da2: 783c jmp r15 + 4da4: 20000020 .long 0x20000020 + 4da8: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +00004dac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 4dac: 1078 lrw r3, 0x20000050 // 4e0c + 4dae: 3200 movi r2, 0 + 4db0: 9360 ld.w r3, (r3, 0x0) + 4db2: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 4db4: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 4db6: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 4db8: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 4dba: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 4dbc: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 4dbe: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 4dc0: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 4dc2: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 4dc4: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 4dc6: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 4dc8: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 4dca: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 4dcc: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 4dce: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 4dd0: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 4dd2: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 4dd4: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 4dd6: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 4dd8: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 4dda: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 4ddc: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 4dde: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 4de0: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 4de2: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 4de4: 23ff addi r3, 256 + 4de6: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 4de8: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 4dea: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 4dec: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 4dee: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 4df0: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 4df2: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 4df4: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 4df6: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 4df8: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 4dfa: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 4dfc: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 4dfe: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 4e00: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 4e02: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 4e04: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 4e06: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 4e08: b351 st.w r2, (r3, 0x44) +} + 4e0a: 783c jmp r15 + 4e0c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00004e10 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 4e10: 1063 lrw r3, 0x20000050 // 4e1c + 4e12: 9340 ld.w r2, (r3, 0x0) + 4e14: 9264 ld.w r3, (r2, 0x10) + 4e16: 6c0c or r0, r3 + 4e18: b204 st.w r0, (r2, 0x10) +} + 4e1a: 783c jmp r15 + 4e1c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00004e20 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 4e20: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 4e22: 3002 movi r0, 2 + 4e24: e3fffff6 bsr 0x4e10 // 4e10 + while(!(ADC0->SR &ADC12_ADCENS)); + 4e28: 1065 lrw r3, 0x20000050 // 4e3c + 4e2a: 3280 movi r2, 128 + 4e2c: 9320 ld.w r1, (r3, 0x0) + 4e2e: 4241 lsli r2, r2, 1 + 4e30: 9168 ld.w r3, (r1, 0x20) + 4e32: 68c8 and r3, r2 + 4e34: 3b40 cmpnei r3, 0 + 4e36: 0ffd bf 0x4e30 // 4e30 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 4e38: 1490 pop r15 + 4e3a: 0000 bkpt + 4e3c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +00004e40 : + if (NewState != DISABLE) + 4e40: 3940 cmpnei r1, 0 + 4e42: 106a lrw r3, 0x20000050 // 4e68 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 4e44: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 4e46: 0c09 bf 0x4e58 // 4e58 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 4e48: 9260 ld.w r3, (r2, 0x0) + 4e4a: 6cc0 or r3, r0 + 4e4c: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 4e4e: 9262 ld.w r3, (r2, 0x8) + 4e50: 68c0 and r3, r0 + 4e52: 3b40 cmpnei r3, 0 + 4e54: 0ffd bf 0x4e4e // 4e4e +} + 4e56: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 4e58: 9261 ld.w r3, (r2, 0x4) + 4e5a: 6cc0 or r3, r0 + 4e5c: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 4e5e: 9262 ld.w r3, (r2, 0x8) + 4e60: 68c0 and r3, r0 + 4e62: 3b40 cmpnei r3, 0 + 4e64: 0bfd bt 0x4e5e // 4e5e + 4e66: 07f8 br 0x4e56 // 4e56 + 4e68: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00004e6c : +{ + 4e6c: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 4e6e: 3001 movi r0, 1 + 4e70: e3ffffd0 bsr 0x4e10 // 4e10 +} + 4e74: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00004e78 : +{ + 4e78: 14d0 push r15 + if (NewState != DISABLE) + 4e7a: 3840 cmpnei r0, 0 + 4e7c: 0c04 bf 0x4e84 // 4e84 + 4e7e: e3ffffd1 bsr 0x4e20 // 4e20 +} + 4e82: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 4e84: 3004 movi r0, 4 + 4e86: e3ffffc5 bsr 0x4e10 // 4e10 + while(ADC0->SR&ADC12_ADCENS); + 4e8a: 1065 lrw r3, 0x20000050 // 4e9c + 4e8c: 3280 movi r2, 128 + 4e8e: 9320 ld.w r1, (r3, 0x0) + 4e90: 4241 lsli r2, r2, 1 + 4e92: 9168 ld.w r3, (r1, 0x20) + 4e94: 68c8 and r3, r2 + 4e96: 3b40 cmpnei r3, 0 + 4e98: 0bfd bt 0x4e92 // 4e92 + 4e9a: 07f4 br 0x4e82 // 4e82 + 4e9c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +00004ea0 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 4ea0: 1064 lrw r3, 0x20000050 // 4eb0 + 4ea2: 3202 movi r2, 2 + 4ea4: 9320 ld.w r1, (r3, 0x0) + 4ea6: 9168 ld.w r3, (r1, 0x20) + 4ea8: 68c8 and r3, r2 + 4eaa: 3b40 cmpnei r3, 0 + 4eac: 0ffd bf 0x4ea6 // 4ea6 +} + 4eae: 783c jmp r15 + 4eb0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00004eb4 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 4eb4: 200f addi r0, 16 + 4eb6: 1065 lrw r3, 0x20000050 // 4ec8 + 4eb8: 3201 movi r2, 1 + 4eba: 9320 ld.w r1, (r3, 0x0) + 4ebc: 7080 lsl r2, r0 + 4ebe: 9168 ld.w r3, (r1, 0x20) + 4ec0: 68c8 and r3, r2 + 4ec2: 3b40 cmpnei r3, 0 + 4ec4: 0ffd bf 0x4ebe // 4ebe +} + 4ec6: 783c jmp r15 + 4ec8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00004ecc : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 4ecc: 203f addi r0, 64 + 4ece: 1064 lrw r3, 0x20000050 // 4edc + 4ed0: 4002 lsli r0, r0, 2 + 4ed2: 9360 ld.w r3, (r3, 0x0) + 4ed4: 600c addu r0, r3 + 4ed6: 9000 ld.w r0, (r0, 0x0) + 4ed8: 7401 zexth r0, r0 +} + 4eda: 783c jmp r15 + 4edc: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00004ee0 : + //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 ) +{ + 4ee0: 14d4 push r4-r7, r15 + 4ee2: 1422 subi r14, r14, 8 + 4ee4: 1c08 addi r4, r14, 32 + 4ee6: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4ee8: 2d00 subi r5, 1 +{ + 4eea: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4eec: 10db lrw r6, 0x20000050 // 4f58 +{ + 4eee: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4ef2: 45aa lsli r5, r5, 10 + 4ef4: 9680 ld.w r4, (r6, 0x0) + 4ef6: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 4ef8: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 4efa: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 4efc: 081c bt 0x4f34 // 4f34 + { + ADC0->MR&=~CONTCV; //one short mode + 4efe: 9425 ld.w r1, (r4, 0x14) + 4f00: 4121 lsli r1, r1, 1 + 4f02: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 4f04: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 4f06: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 4f08: 4002 lsli r0, r0, 2 + 4f0a: 9428 ld.w r1, (r4, 0x20) + 4f0c: 6840 and r1, r0 + 4f0e: 3940 cmpnei r1, 0 + 4f10: 0bfd bt 0x4f0a // 4f0a + 4f12: b861 st.w r3, (r14, 0x4) + 4f14: b840 st.w r2, (r14, 0x0) + 4f16: e3ffff85 bsr 0x4e20 // 4e20 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 4f1a: 3f40 cmpnei r7, 0 + 4f1c: 9840 ld.w r2, (r14, 0x0) + 4f1e: 9861 ld.w r3, (r14, 0x4) + 4f20: 0c16 bf 0x4f4c // 4f4c + { + ADC0->CR|=ADC12_10BITor12BIT; + 4f22: 9600 ld.w r0, (r6, 0x0) + 4f24: 9024 ld.w r1, (r0, 0x10) + 4f26: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 4f28: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 4f2a: 9620 ld.w r1, (r6, 0x0) + 4f2c: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 4f2e: b166 st.w r3, (r1, 0x18) +} + 4f30: 1402 addi r14, r14, 8 + 4f32: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 4f34: 3941 cmpnei r1, 1 + 4f36: 0bee bt 0x4f12 // 4f12 + ADC0->MR|=CONTCV; //Continuous mode + 4f38: 9425 ld.w r1, (r4, 0x14) + 4f3a: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 4f3c: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 4f3e: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 4f40: 4002 lsli r0, r0, 2 + 4f42: 9428 ld.w r1, (r4, 0x20) + 4f44: 6840 and r1, r0 + 4f46: 3940 cmpnei r1, 0 + 4f48: 0ffd bf 0x4f42 // 4f42 + 4f4a: 07e4 br 0x4f12 // 4f12 + ADC0->CR&=~ADC12_10BITor12BIT; + 4f4c: 9600 ld.w r0, (r6, 0x0) + 4f4e: 9024 ld.w r1, (r0, 0x10) + 4f50: 4121 lsli r1, r1, 1 + 4f52: 4921 lsri r1, r1, 1 + 4f54: 07ea br 0x4f28 // 4f28 + 4f56: 0000 bkpt + 4f58: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00004f5c : +//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) + 4f5c: 3840 cmpnei r0, 0 + 4f5e: 0808 bt 0x4f6e // 4f6e + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 4f60: 127c lrw r3, 0x20000050 // 50d0 + 4f62: 123d lrw r1, 0x103c0 // 50d4 + 4f64: 9340 ld.w r2, (r3, 0x0) + 4f66: 9264 ld.w r3, (r2, 0x10) + 4f68: 68c5 andn r3, r1 + 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); + 4f6a: b264 st.w r3, (r2, 0x10) + } +} + 4f6c: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 4f6e: 3841 cmpnei r0, 1 + 4f70: 0810 bt 0x4f90 // 4f90 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 4f72: 127a lrw r3, 0x2000004c // 50d8 + 4f74: 32f0 movi r2, 240 + 4f76: 9320 ld.w r1, (r3, 0x0) + 4f78: 9160 ld.w r3, (r1, 0x0) + 4f7a: 4244 lsli r2, r2, 4 + 4f7c: 68c9 andn r3, r2 + 4f7e: 3bab bseti r3, 11 + 4f80: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 4f82: 1235 lrw r1, 0x103c0 // 50d4 + 4f84: 1273 lrw r3, 0x20000050 // 50d0 + 4f86: 9340 ld.w r2, (r3, 0x0) + 4f88: 9264 ld.w r3, (r2, 0x10) + 4f8a: 68c5 andn r3, r1 + 4f8c: 3ba6 bseti r3, 6 + 4f8e: 07ee br 0x4f6a // 4f6a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 4f90: 3842 cmpnei r0, 2 + 4f92: 0811 bt 0x4fb4 // 4fb4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 4f94: 1271 lrw r3, 0x2000004c // 50d8 + 4f96: 32f0 movi r2, 240 + 4f98: 9320 ld.w r1, (r3, 0x0) + 4f9a: 9160 ld.w r3, (r1, 0x0) + 4f9c: 4244 lsli r2, r2, 4 + 4f9e: 68c9 andn r3, r2 + 4fa0: 3bab bseti r3, 11 + 4fa2: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 4fa4: 122e lrw r1, 0x30103c0 // 50dc + 4fa6: 126b lrw r3, 0x20000050 // 50d0 + 4fa8: 9340 ld.w r2, (r3, 0x0) + 4faa: 9264 ld.w r3, (r2, 0x10) + 4fac: 68c5 andn r3, r1 + 4fae: 3ba7 bseti r3, 7 + 4fb0: 3bb8 bseti r3, 24 + 4fb2: 07dc br 0x4f6a // 4f6a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 4fb4: 3843 cmpnei r0, 3 + 4fb6: 0811 bt 0x4fd8 // 4fd8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 4fb8: 1268 lrw r3, 0x2000004c // 50d8 + 4fba: 32f0 movi r2, 240 + 4fbc: 9320 ld.w r1, (r3, 0x0) + 4fbe: 9160 ld.w r3, (r1, 0x0) + 4fc0: 4244 lsli r2, r2, 4 + 4fc2: 68c9 andn r3, r2 + 4fc4: 3bab bseti r3, 11 + 4fc6: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 4fc8: 1225 lrw r1, 0x30103c0 // 50dc + 4fca: 1262 lrw r3, 0x20000050 // 50d0 + 4fcc: 9340 ld.w r2, (r3, 0x0) + 4fce: 9264 ld.w r3, (r2, 0x10) + 4fd0: 68c5 andn r3, r1 + 4fd2: 1224 lrw r1, 0x30000c0 // 50e0 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 4fd4: 6cc4 or r3, r1 + 4fd6: 07ca br 0x4f6a // 4f6a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 4fd8: 3845 cmpnei r0, 5 + 4fda: 0809 bt 0x4fec // 4fec + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 4fdc: 117d lrw r3, 0x20000050 // 50d0 + 4fde: 1222 lrw r1, 0x503c0 // 50e4 + 4fe0: 9340 ld.w r2, (r3, 0x0) + 4fe2: 9264 ld.w r3, (r2, 0x10) + 4fe4: 68c5 andn r3, r1 + 4fe6: 3ba8 bseti r3, 8 + 4fe8: 3bb2 bseti r3, 18 + 4fea: 07c0 br 0x4f6a // 4f6a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 4fec: 3846 cmpnei r0, 6 + 4fee: 0812 bt 0x5012 // 5012 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 4ff0: 117a lrw r3, 0x2000004c // 50d8 + 4ff2: 32f0 movi r2, 240 + 4ff4: 9320 ld.w r1, (r3, 0x0) + 4ff6: 9160 ld.w r3, (r1, 0x0) + 4ff8: 4248 lsli r2, r2, 8 + 4ffa: 68c9 andn r3, r2 + 4ffc: 32b0 movi r2, 176 + 4ffe: 4248 lsli r2, r2, 8 + 5000: 6cc8 or r3, r2 + 5002: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 5004: 1134 lrw r1, 0x103c0 // 50d4 + 5006: 1173 lrw r3, 0x20000050 // 50d0 + 5008: 9340 ld.w r2, (r3, 0x0) + 500a: 9264 ld.w r3, (r2, 0x10) + 500c: 68c5 andn r3, r1 + 500e: 3ba9 bseti r3, 9 + 5010: 07ad br 0x4f6a // 4f6a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 5012: 3847 cmpnei r0, 7 + 5014: 0819 bt 0x5046 // 5046 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 5016: 1171 lrw r3, 0x2000004c // 50d8 + 5018: 31f0 movi r1, 240 + 501a: 9340 ld.w r2, (r3, 0x0) + 501c: 9260 ld.w r3, (r2, 0x0) + 501e: 4128 lsli r1, r1, 8 + 5020: 68c5 andn r3, r1 + 5022: 31b0 movi r1, 176 + 5024: 4128 lsli r1, r1, 8 + 5026: 6cc4 or r3, r1 + 5028: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 502a: 31f0 movi r1, 240 + 502c: 9260 ld.w r3, (r2, 0x0) + 502e: 4124 lsli r1, r1, 4 + 5030: 68c5 andn r3, r1 + 5032: 3bab bseti r3, 11 + 5034: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 5036: 1128 lrw r1, 0x103c0 // 50d4 + 5038: 1166 lrw r3, 0x20000050 // 50d0 + 503a: 9340 ld.w r2, (r3, 0x0) + 503c: 9264 ld.w r3, (r2, 0x10) + 503e: 68c5 andn r3, r1 + 5040: 3ba6 bseti r3, 6 + 5042: 3ba9 bseti r3, 9 + 5044: 0793 br 0x4f6a // 4f6a + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 5046: 3848 cmpnei r0, 8 + 5048: 0818 bt 0x5078 // 5078 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 504a: 1164 lrw r3, 0x2000004c // 50d8 + 504c: 31f0 movi r1, 240 + 504e: 9340 ld.w r2, (r3, 0x0) + 5050: 9260 ld.w r3, (r2, 0x0) + 5052: 4128 lsli r1, r1, 8 + 5054: 68c5 andn r3, r1 + 5056: 31b0 movi r1, 176 + 5058: 4128 lsli r1, r1, 8 + 505a: 6cc4 or r3, r1 + 505c: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 505e: 31f0 movi r1, 240 + 5060: 9260 ld.w r3, (r2, 0x0) + 5062: 4124 lsli r1, r1, 4 + 5064: 68c5 andn r3, r1 + 5066: 3bab bseti r3, 11 + 5068: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 506a: 103d lrw r1, 0x30103c0 // 50dc + 506c: 1079 lrw r3, 0x20000050 // 50d0 + 506e: 9340 ld.w r2, (r3, 0x0) + 5070: 9264 ld.w r3, (r2, 0x10) + 5072: 68c5 andn r3, r1 + 5074: 103d lrw r1, 0x1000280 // 50e8 + 5076: 07af br 0x4fd4 // 4fd4 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 5078: 3849 cmpnei r0, 9 + 507a: 0818 bt 0x50aa // 50aa + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 507c: 1077 lrw r3, 0x2000004c // 50d8 + 507e: 31f0 movi r1, 240 + 5080: 9340 ld.w r2, (r3, 0x0) + 5082: 9260 ld.w r3, (r2, 0x0) + 5084: 4128 lsli r1, r1, 8 + 5086: 68c5 andn r3, r1 + 5088: 31b0 movi r1, 176 + 508a: 4128 lsli r1, r1, 8 + 508c: 6cc4 or r3, r1 + 508e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 5090: 31f0 movi r1, 240 + 5092: 9260 ld.w r3, (r2, 0x0) + 5094: 4124 lsli r1, r1, 4 + 5096: 68c5 andn r3, r1 + 5098: 3bab bseti r3, 11 + 509a: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 509c: 1030 lrw r1, 0x30103c0 // 50dc + 509e: 106d lrw r3, 0x20000050 // 50d0 + 50a0: 9340 ld.w r2, (r3, 0x0) + 50a2: 9264 ld.w r3, (r2, 0x10) + 50a4: 68c5 andn r3, r1 + 50a6: 1032 lrw r1, 0x30002c0 // 50ec + 50a8: 0796 br 0x4fd4 // 4fd4 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 50aa: 384b cmpnei r0, 11 + 50ac: 0b60 bt 0x4f6c // 4f6c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 50ae: 106b lrw r3, 0x2000004c // 50d8 + 50b0: 32f0 movi r2, 240 + 50b2: 9320 ld.w r1, (r3, 0x0) + 50b4: 9160 ld.w r3, (r1, 0x0) + 50b6: 4248 lsli r2, r2, 8 + 50b8: 68c9 andn r3, r2 + 50ba: 32b0 movi r2, 176 + 50bc: 4248 lsli r2, r2, 8 + 50be: 6cc8 or r3, r2 + 50c0: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 50c2: 1029 lrw r1, 0x503c0 // 50e4 + 50c4: 1063 lrw r3, 0x20000050 // 50d0 + 50c6: 9340 ld.w r2, (r3, 0x0) + 50c8: 9264 ld.w r3, (r2, 0x10) + 50ca: 68c5 andn r3, r1 + 50cc: 1029 lrw r1, 0x40300 // 50f0 + 50ce: 0783 br 0x4fd4 // 4fd4 + 50d0: 20000050 .long 0x20000050 + 50d4: 000103c0 .long 0x000103c0 + 50d8: 2000004c .long 0x2000004c + 50dc: 030103c0 .long 0x030103c0 + 50e0: 030000c0 .long 0x030000c0 + 50e4: 000503c0 .long 0x000503c0 + 50e8: 01000280 .long 0x01000280 + 50ec: 030002c0 .long 0x030002c0 + 50f0: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +000050f4 : +//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) +{ + 50f4: 14d4 push r4-r7, r15 + 50f6: 1421 subi r14, r14, 4 + 50f8: b840 st.w r2, (r14, 0x0) + 50fa: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 50fc: 125b lrw r2, 0x20000050 // 5268 + 50fe: 92c0 ld.w r6, (r2, 0x0) + 5100: 3200 movi r2, 0 + 5102: 4202 lsli r0, r2, 2 + 5104: 6018 addu r0, r6 + 5106: 908c ld.w r4, (r0, 0x30) + 5108: 2200 addi r2, 1 + 510a: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 510c: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 510e: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 5110: 0bf9 bt 0x5102 // 5102 + } + switch(ADC12_ADCINX) + 5112: 3d0f cmphsi r5, 16 + 5114: 0825 bt 0x515e // 515e + 5116: 6c17 mov r0, r5 + 5118: 1255 lrw r2, 0x2000004c // 526c + 511a: 1296 lrw r4, 0x20000048 // 5270 + 511c: e3fff1f0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 5120: 322c1408 .long 0x322c1408 + 5124: 4d474039 .long 0x4d474039 + 5128: 756d6559 .long 0x756d6559 + 512c: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 5130: 9240 ld.w r2, (r2, 0x0) + 5132: 9200 ld.w r0, (r2, 0x0) + 5134: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 5136: 9201 ld.w r0, (r2, 0x4) + 5138: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 513a: 9400 ld.w r0, (r4, 0x0) + 513c: 9040 ld.w r2, (r0, 0x0) + 513e: 34f0 movi r4, 240 + 5140: 6891 andn r2, r4 + 5142: 3aa4 bseti r2, 4 + 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; + 5144: b040 st.w r2, (r0, 0x0) + break; + 5146: 040c br 0x515e // 515e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 5148: 9200 ld.w r0, (r2, 0x0) + 514a: 9040 ld.w r2, (r0, 0x0) + 514c: 370f movi r7, 15 + 514e: 689d andn r2, r7 + 5150: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 5152: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 5154: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 5156: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 5158: 9440 ld.w r2, (r4, 0x0) + 515a: 9200 ld.w r0, (r2, 0x0) + 515c: b200 st.w r0, (r2, 0x0) + 515e: 4362 lsli r3, r3, 2 + 5160: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 5162: 966c ld.w r3, (r6, 0x30) + 5164: 3300 movi r3, 0 + 5166: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 5168: 9860 ld.w r3, (r14, 0x0) + 516a: 6c4c or r1, r3 + 516c: 964c ld.w r2, (r6, 0x30) + 516e: 6d44 or r5, r1 + 5170: 6d48 or r5, r2 + 5172: b6ac st.w r5, (r6, 0x30) +} + 5174: 1401 addi r14, r14, 4 + 5176: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 5178: 9200 ld.w r0, (r2, 0x0) + 517a: 9040 ld.w r2, (r0, 0x0) + 517c: 37f0 movi r7, 240 + 517e: 689d andn r2, r7 + 5180: 3aa4 bseti r2, 4 + 5182: 07e8 br 0x5152 // 5152 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 5184: 9200 ld.w r0, (r2, 0x0) + 5186: 37f0 movi r7, 240 + 5188: 9040 ld.w r2, (r0, 0x0) + 518a: 47e8 lsli r7, r7, 8 + 518c: 689d andn r2, r7 + 518e: 3aac bseti r2, 12 + 5190: 07e1 br 0x5152 // 5152 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 5192: 9200 ld.w r0, (r2, 0x0) + 5194: 37f0 movi r7, 240 + 5196: 9040 ld.w r2, (r0, 0x0) + 5198: 47f0 lsli r7, r7, 16 + 519a: 689d andn r2, r7 + 519c: 3ab4 bseti r2, 20 + 519e: 07da br 0x5152 // 5152 + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 51a0: 9200 ld.w r0, (r2, 0x0) + 51a2: 37f0 movi r7, 240 + 51a4: 9040 ld.w r2, (r0, 0x0) + 51a6: 47f4 lsli r7, r7, 20 + 51a8: 689d andn r2, r7 + 51aa: 3ab8 bseti r2, 24 + 51ac: 07d3 br 0x5152 // 5152 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 51ae: 9200 ld.w r0, (r2, 0x0) + 51b0: 9040 ld.w r2, (r0, 0x0) + 51b2: 4244 lsli r2, r2, 4 + 51b4: 4a44 lsri r2, r2, 4 + 51b6: 3abc bseti r2, 28 + 51b8: 07cd br 0x5152 // 5152 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 51ba: 9240 ld.w r2, (r2, 0x0) + 51bc: 9200 ld.w r0, (r2, 0x0) + 51be: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 51c0: 9201 ld.w r0, (r2, 0x4) + 51c2: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 51c4: 9400 ld.w r0, (r4, 0x0) + 51c6: 34f0 movi r4, 240 + 51c8: 9040 ld.w r2, (r0, 0x0) + 51ca: 4484 lsli r4, r4, 4 + 51cc: 6891 andn r2, r4 + 51ce: 3aa8 bseti r2, 8 + 51d0: 07ba br 0x5144 // 5144 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 51d2: 9240 ld.w r2, (r2, 0x0) + 51d4: 9200 ld.w r0, (r2, 0x0) + 51d6: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 51d8: 9201 ld.w r0, (r2, 0x4) + 51da: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 51dc: 9400 ld.w r0, (r4, 0x0) + 51de: 34f0 movi r4, 240 + 51e0: 9040 ld.w r2, (r0, 0x0) + 51e2: 4488 lsli r4, r4, 8 + 51e4: 6891 andn r2, r4 + 51e6: 3aac bseti r2, 12 + 51e8: 07ae br 0x5144 // 5144 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 51ea: 9200 ld.w r0, (r2, 0x0) + 51ec: 9040 ld.w r2, (r0, 0x0) + 51ee: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 51f0: 9041 ld.w r2, (r0, 0x4) + 51f2: 370f movi r7, 15 + 51f4: 689d andn r2, r7 + 51f6: 3aa0 bseti r2, 0 + 51f8: 07af br 0x5156 // 5156 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 51fa: 9200 ld.w r0, (r2, 0x0) + 51fc: 9040 ld.w r2, (r0, 0x0) + 51fe: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 5200: 9041 ld.w r2, (r0, 0x4) + 5202: 37f0 movi r7, 240 + 5204: 689d andn r2, r7 + 5206: 3aa4 bseti r2, 4 + 5208: 07a7 br 0x5156 // 5156 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 520a: 9200 ld.w r0, (r2, 0x0) + 520c: 9040 ld.w r2, (r0, 0x0) + 520e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 5210: 37f0 movi r7, 240 + 5212: 9041 ld.w r2, (r0, 0x4) + 5214: 47e4 lsli r7, r7, 4 + 5216: 689d andn r2, r7 + 5218: 3aa8 bseti r2, 8 + 521a: 079e br 0x5156 // 5156 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 521c: 9200 ld.w r0, (r2, 0x0) + 521e: 9040 ld.w r2, (r0, 0x0) + 5220: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 5222: 37f0 movi r7, 240 + 5224: 9041 ld.w r2, (r0, 0x4) + 5226: 47e8 lsli r7, r7, 8 + 5228: 689d andn r2, r7 + 522a: 3aac bseti r2, 12 + 522c: 0795 br 0x5156 // 5156 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 522e: 9200 ld.w r0, (r2, 0x0) + 5230: 9040 ld.w r2, (r0, 0x0) + 5232: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 5234: 37f0 movi r7, 240 + 5236: 9041 ld.w r2, (r0, 0x4) + 5238: 47ec lsli r7, r7, 12 + 523a: 689d andn r2, r7 + 523c: 3ab0 bseti r2, 16 + 523e: 078c br 0x5156 // 5156 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 5240: 9200 ld.w r0, (r2, 0x0) + 5242: 9040 ld.w r2, (r0, 0x0) + 5244: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 5246: 37f0 movi r7, 240 + 5248: 9041 ld.w r2, (r0, 0x4) + 524a: 47f0 lsli r7, r7, 16 + 524c: 689d andn r2, r7 + 524e: 3ab4 bseti r2, 20 + 5250: 0783 br 0x5156 // 5156 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 5252: 9240 ld.w r2, (r2, 0x0) + 5254: 9200 ld.w r0, (r2, 0x0) + 5256: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 5258: 9201 ld.w r0, (r2, 0x4) + 525a: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 525c: 9400 ld.w r0, (r4, 0x0) + 525e: 9040 ld.w r2, (r0, 0x0) + 5260: 340f movi r4, 15 + 5262: 6891 andn r2, r4 + 5264: 3aa0 bseti r2, 0 + 5266: 076f br 0x5144 // 5144 + 5268: 20000050 .long 0x20000050 + 526c: 2000004c .long 0x2000004c + 5270: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00005274 : + 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) +{ + 5274: 14c4 push r4-r7 + 5276: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 5278: 1165 lrw r3, 0x20000060 // 530c + 527a: 1186 lrw r4, 0x5a5a5a5a // 5310 + 527c: 9360 ld.w r3, (r3, 0x0) + 527e: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 5280: 3407 movi r4, 7 + 5282: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 5284: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 5286: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 5288: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 528a: 9384 ld.w r4, (r3, 0x10) + 528c: 3c40 cmpnei r4, 0 + 528e: 0bfe bt 0x528a // 528a + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 5290: 2102 addi r1, 3 + 5292: 4922 lsri r1, r1, 2 + 5294: 4122 lsli r1, r1, 2 + 5296: 6048 addu r1, r2 + 5298: b820 st.w r1, (r14, 0x0) + 529a: 5829 subu r1, r0, r2 + 529c: b821 st.w r1, (r14, 0x4) + 529e: 9820 ld.w r1, (r14, 0x0) + 52a0: 644a cmpne r2, r1 + 52a2: 0826 bt 0x52ee // 52ee + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 52a4: 3106 movi r1, 6 + SetUserKey; + 52a6: 105b lrw r2, 0x5a5a5a5a // 5310 + 52a8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 52aa: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 52ac: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 52ae: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 52b0: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 52b2: 9324 ld.w r1, (r3, 0x10) + 52b4: 3940 cmpnei r1, 0 + 52b6: 0bfe bt 0x52b2 // 52b2 + //Perform pre-programming 4 + SetUserKey; + 52b8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 52ba: 3201 movi r2, 1 + 52bc: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 52be: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 52c0: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 52c2: 934a ld.w r2, (r3, 0x28) + 52c4: 3a44 cmpnei r2, 4 + 52c6: 0bfe bt 0x52c2 // 52c2 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 52c8: 3102 movi r1, 2 + SetUserKey; + 52ca: 1052 lrw r2, 0x5a5a5a5a // 5310 + 52cc: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 52ce: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 52d0: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 52d2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 52d4: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 52d6: 932a ld.w r1, (r3, 0x28) + 52d8: 3941 cmpnei r1, 1 + 52da: 0bfe bt 0x52d6 // 52d6 + //Write page cache data to flash memory 6 + SetUserKey; + 52dc: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 52de: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 52e0: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 52e2: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 52e4: 934a ld.w r2, (r3, 0x28) + 52e6: 3a42 cmpnei r2, 2 + 52e8: 0bfe bt 0x52e4 // 52e4 +} + 52ea: 1402 addi r14, r14, 8 + 52ec: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 52ee: 82e0 ld.b r7, (r2, 0x0) + 52f0: 8281 ld.b r4, (r2, 0x1) + 52f2: 4488 lsli r4, r4, 8 + 52f4: 8222 ld.b r1, (r2, 0x2) + 52f6: 611c addu r4, r7 + 52f8: 82a3 ld.b r5, (r2, 0x3) + 52fa: 4130 lsli r1, r1, 16 + 52fc: 98c1 ld.w r6, (r14, 0x4) + 52fe: 6050 addu r1, r4 + 5300: 45b8 lsli r5, r5, 24 + 5302: 6188 addu r6, r2 + 5304: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 5306: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 5308: 2203 addi r2, 4 + 530a: 07ca br 0x529e // 529e + 530c: 20000060 .long 0x20000060 + 5310: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00005314 : +//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) +{ + 5314: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 5320: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 5322: 3b40 cmpnei r3, 0 + 5324: 0c06 bf 0x5330 // 5330 + 5326: 6d0f mov r4, r3 + 5328: 6914 and r4, r5 + 532a: 3c40 cmpnei r4, 0 + 532c: 0802 bt 0x5330 // 5330 + RdStartAdd +=4; + 532e: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 5330: 6d0f mov r4, r3 + 5332: 6914 and r4, r5 + 5334: 6100 addu r4, r0 + 5336: 8480 ld.b r4, (r4, 0x0) + 5338: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00005340 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 5340: 33f8 movi r3, 248 + 5342: 4366 lsli r3, r3, 6 + 5344: 115b lrw r2, 0x20000268 // 5430 + 5346: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 5348: 3246 movi r2, 70 + 534a: 117b lrw r3, 0x2000026e // 5434 + 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 + 534c: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 534e: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 5350: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 5352: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 5354: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 5356: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 5358: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 535a: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 535c: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 535e: 1157 lrw r2, 0x200004d4 // 5438 + 5360: 8a22 ld.h r1, (r2, 0x4) + 5362: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 5364: 8a23 ld.h r1, (r2, 0x6) + 5366: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 5368: 8a24 ld.h r1, (r2, 0x8) + 536a: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 536c: 8a25 ld.h r1, (r2, 0xa) + 536e: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 5370: 8a26 ld.h r1, (r2, 0xc) + 5372: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 5374: 3146 movi r1, 70 + 5376: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 5378: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 537a: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 537c: 3128 movi r1, 40 + 537e: 1170 lrw r3, 0x20000292 // 543c + 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 + 5380: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 5382: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 5384: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 5386: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 5388: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 538a: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 538c: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 538e: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 5390: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 5392: 8a27 ld.h r1, (r2, 0xe) + 5394: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 5396: 8a28 ld.h r1, (r2, 0x10) + 5398: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 539a: 8a29 ld.h r1, (r2, 0x12) + 539c: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 539e: 8a2a ld.h r1, (r2, 0x14) + 53a0: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 53a2: 8a2b ld.h r1, (r2, 0x16) + 53a4: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 53a6: 3128 movi r1, 40 + 53a8: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 53aa: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 53ac: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 53ae: 8220 ld.b r1, (r2, 0x0) + 53b0: 1164 lrw r3, 0x20000238 // 5440 + 53b2: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 53b4: 8221 ld.b r1, (r2, 0x1) + 53b6: 1164 lrw r3, 0x20000240 // 5444 + 53b8: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 53ba: 3101 movi r1, 1 + 53bc: 1163 lrw r3, 0x20000241 // 5448 + 53be: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 53c0: 3100 movi r1, 0 + 53c2: 1163 lrw r3, 0x20000264 // 544c + 53c4: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 53c6: 3106 movi r1, 6 + 53c8: 1162 lrw r3, 0x2000026c // 5450 + 53ca: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 53cc: 8223 ld.b r1, (r2, 0x3) + 53ce: 1162 lrw r3, 0x20000265 // 5454 + 53d0: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 53d2: 9246 ld.w r2, (r2, 0x18) + 53d4: 1161 lrw r3, 0x2000023c // 5458 + 53d6: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 53d8: 1141 lrw r2, 0xea5f // 545c + 53da: 1162 lrw r3, 0x200002b8 // 5460 + 53dc: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 53de: 3200 movi r2, 0 + 53e0: 1161 lrw r3, 0x20000239 // 5464 + 53e2: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 53e4: 3202 movi r2, 2 + 53e6: 1161 lrw r3, 0x2000023a // 5468 + 53e8: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 53ea: 3232 movi r2, 50 + 53ec: 1160 lrw r3, 0x20000290 // 546c + 53ee: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 53f0: 3200 movi r2, 0 + 53f2: 1160 lrw r3, 0x200002bc // 5470 + 53f4: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 53f6: 3201 movi r2, 1 + 53f8: 107f lrw r3, 0x200002b6 // 5474 + 53fa: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3_6V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 53fc: 3203 movi r2, 3 + 53fe: 107f lrw r3, 0x200002b4 // 5478 + 5400: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 5402: 3204 movi r2, 4 + 5404: 107e lrw r3, 0x20000242 // 547c + 5406: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 5408: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 540a: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 540c: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 540e: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 5410: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 5412: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 5414: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 5416: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=7; //TCH9 TK Scan icon range 0~7 + 5418: 3207 movi r2, 7 + 541a: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=7; //TCH10 TK Scan icon range 0~7 + 541c: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=7; //TCH11 TK Scan icon range 0~7 + 541e: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=7; //TCH12 TK Scan icon range 0~7 + 5420: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 5422: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 5424: 3204 movi r2, 4 + 5426: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 5428: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 542a: ab50 st.h r2, (r3, 0x20) + 542c: 783c jmp r15 + 542e: 0000 bkpt + 5430: 20000268 .long 0x20000268 + 5434: 2000026e .long 0x2000026e + 5438: 200004d4 .long 0x200004d4 + 543c: 20000292 .long 0x20000292 + 5440: 20000238 .long 0x20000238 + 5444: 20000240 .long 0x20000240 + 5448: 20000241 .long 0x20000241 + 544c: 20000264 .long 0x20000264 + 5450: 2000026c .long 0x2000026c + 5454: 20000265 .long 0x20000265 + 5458: 2000023c .long 0x2000023c + 545c: 0000ea5f .long 0x0000ea5f + 5460: 200002b8 .long 0x200002b8 + 5464: 20000239 .long 0x20000239 + 5468: 2000023a .long 0x2000023a + 546c: 20000290 .long 0x20000290 + 5470: 200002bc .long 0x200002bc + 5474: 200002b6 .long 0x200002b6 + 5478: 200002b4 .long 0x200002b4 + 547c: 20000242 .long 0x20000242 + +Disassembly of section .text.CORET_DeInit: + +00005480 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 5480: 1065 lrw r3, 0x20000064 // 5494 + 5482: 3204 movi r2, 4 + 5484: 9360 ld.w r3, (r3, 0x0) + 5486: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 5488: 3200 movi r2, 0 + 548a: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 548c: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 548e: b347 st.w r2, (r3, 0x1c) +} + 5490: 783c jmp r15 + 5492: 0000 bkpt + 5494: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00005498 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 5498: 1064 lrw r3, 0x20000064 // 54a8 + 549a: 3200 movi r2, 0 + 549c: 9360 ld.w r3, (r3, 0x0) + 549e: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 54a0: 3201 movi r2, 1 + 54a2: 1063 lrw r3, 0xe000e100 // 54ac + 54a4: b340 st.w r2, (r3, 0x0) +} + 54a6: 783c jmp r15 + 54a8: 20000064 .long 0x20000064 + 54ac: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +000054b0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 54b0: 1063 lrw r3, 0x20000064 // 54bc + 54b2: 9340 ld.w r2, (r3, 0x0) + 54b4: 9264 ld.w r3, (r2, 0x10) + 54b6: 3ba0 bseti r3, 0 + 54b8: b264 st.w r3, (r2, 0x10) +} + 54ba: 783c jmp r15 + 54bc: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +000054c0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 54c0: 1063 lrw r3, 0x20000064 // 54cc + 54c2: 9340 ld.w r2, (r3, 0x0) + 54c4: 9264 ld.w r3, (r2, 0x10) + 54c6: 3b82 bclri r3, 2 + 54c8: b264 st.w r3, (r2, 0x10) +} + 54ca: 783c jmp r15 + 54cc: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +000054d0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 54d0: 1063 lrw r3, 0x20000064 // 54dc + 54d2: 9340 ld.w r2, (r3, 0x0) + 54d4: 9264 ld.w r3, (r2, 0x10) + 54d6: 3ba1 bseti r3, 1 + 54d8: b264 st.w r3, (r2, 0x10) +} + 54da: 783c jmp r15 + 54dc: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +000054e0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 54e0: 1063 lrw r3, 0x20000064 // 54ec + 54e2: 3200 movi r2, 0 + 54e4: 9360 ld.w r3, (r3, 0x0) + 54e6: b346 st.w r2, (r3, 0x18) +} + 54e8: 783c jmp r15 + 54ea: 0000 bkpt + 54ec: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +000054f0
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 54f0: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 54f2: e00000f9 bsr 0x56e4 // 56e4 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 54f6: 1072 lrw r3, 0x20000524 // 553c + 54f8: 8340 ld.b r2, (r3, 0x0) + 54fa: 1032 lrw r1, 0xcbe4 // 5540 + 54fc: 3000 movi r0, 0 + 54fe: e000089f bsr 0x663c // 663c + + TemCtrl_Init(); + 5502: e0001cf9 bsr 0x8ef4 // 8ef4 + DisPlay_Init(); + 5506: e0002219 bsr 0x9938 // 9938 + Debug_Init(); + 550a: e000249b bsr 0x9e40 // 9e40 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 550e: e3fff7c7 bsr 0x449c // 449c + + UART2_TASK(); + 5512: e000070b bsr 0x6328 // 6328 + + Touch_Key_Task(); + 5516: e0000adb bsr 0x6acc // 6acc + + TemCtrl_Pro(); + 551a: e0001ea5 bsr 0x9264 // 9264 + + DisPlay_Task(); + 551e: e000221d bsr 0x9958 // 9958 + + BUS485Send_Task(); + 5522: e0000825 bsr 0x656c // 656c + + HT1621_Refresh_Task(); + 5526: e0001b91 bsr 0x8c48 // 8c48 + + ADC_Sample_Task(); + 552a: e0001097 bsr 0x7658 // 7658 + + Debug_Task(); + 552e: e00024fd bsr 0x9f28 // 9f28 + + RLY_Direct_Control(); + 5532: e0002597 bsr 0xa060 // a060 + + Tm1812_Task(); + 5536: e00015cf bsr 0x80d4 // 80d4 + 553a: 07ea br 0x550e // 550e + 553c: 20000524 .long 0x20000524 + 5540: 0000cbe4 .long 0x0000cbe4 + +Disassembly of section .text.delay_nms: + +00005544 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 5544: 14d0 push r15 + 5546: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 5548: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 554a: 3300 movi r3, 0 + j = 50* t; + 554c: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 554e: b862 st.w r3, (r14, 0x8) + j = 50* t; + 5550: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 5552: b860 st.w r3, (r14, 0x0) + 5554: 9840 ld.w r2, (r14, 0x0) + 5556: 9861 ld.w r3, (r14, 0x4) + 5558: 64c8 cmphs r2, r3 + 555a: 0c03 bf 0x5560 // 5560 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 555c: 1403 addi r14, r14, 12 + 555e: 1490 pop r15 + k++; + 5560: 9862 ld.w r3, (r14, 0x8) + 5562: 2300 addi r3, 1 + 5564: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 5566: e3fff79b bsr 0x449c // 449c + for ( i = 0; i < j; i++ ) + 556a: 9860 ld.w r3, (r14, 0x0) + 556c: 2300 addi r3, 1 + 556e: 07f2 br 0x5552 // 5552 + +Disassembly of section .text.delay_nus: + +00005570 : +void delay_nus(unsigned int t) +{ + 5570: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 5572: 3300 movi r3, 0 + 5574: b862 st.w r3, (r14, 0x8) + j = 1* t; + 5576: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 5578: b860 st.w r3, (r14, 0x0) + 557a: 9840 ld.w r2, (r14, 0x0) + 557c: 9861 ld.w r3, (r14, 0x4) + 557e: 64c8 cmphs r2, r3 + 5580: 0c03 bf 0x5586 // 5586 + { + k++; + } +} + 5582: 1403 addi r14, r14, 12 + 5584: 783c jmp r15 + k++; + 5586: 9862 ld.w r3, (r14, 0x8) + 5588: 2300 addi r3, 1 + 558a: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 558c: 9860 ld.w r3, (r14, 0x0) + 558e: 2300 addi r3, 1 + 5590: 07f4 br 0x5578 // 5578 + +Disassembly of section .text.GPIO_CONFIG: + +00005594 : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 5594: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 5596: 1181 lrw r4, 0x2000004c // 5618 + 5598: 310e movi r1, 14 + 559a: 9400 ld.w r0, (r4, 0x0) + 559c: e3fff8e6 bsr 0x4768 // 4768 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 55a0: 320e movi r2, 14 + 55a2: 310e movi r1, 14 + 55a4: 3000 movi r0, 0 + 55a6: e3fff8f3 bsr 0x478c // 478c + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 55aa: 300e movi r0, 14 + 55ac: e3fff976 bsr 0x4898 // 4898 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 55b0: 3180 movi r1, 128 + 55b2: 3200 movi r2, 0 + 55b4: 4127 lsli r1, r1, 7 + 55b6: 3001 movi r0, 1 + 55b8: e3fff7b4 bsr 0x4520 // 4520 + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 55bc: 3180 movi r1, 128 + 55be: 4127 lsli r1, r1, 7 + 55c0: 3001 movi r0, 1 + 55c2: e3fff7cf bsr 0x4560 // 4560 + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 55c6: 3180 movi r1, 128 + 55c8: 9400 ld.w r0, (r4, 0x0) + 55ca: 4127 lsli r1, r1, 7 + 55cc: e3fff7e4 bsr 0x4594 // 4594 +// GPIO_Init(GPIOA0,14,Output); +// GPIO_Write_Low(GPIOA0,14); +//// GPIO_Write_High(GPIOA0,14); + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 55d0: 1093 lrw r4, 0x20000048 // 561c + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 55d2: e3fff7eb bsr 0x45a8 // 45a8 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 55d6: 9400 ld.w r0, (r4, 0x0) + 55d8: 3105 movi r1, 5 + 55da: e3fff8c7 bsr 0x4768 // 4768 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 55de: 3205 movi r2, 5 + 55e0: 3105 movi r1, 5 + 55e2: 3002 movi r0, 2 + 55e4: e3fff8d4 bsr 0x478c // 478c + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 55e8: 3005 movi r0, 5 + 55ea: e3fff9d5 bsr 0x4994 // 4994 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 55ee: 3201 movi r2, 1 + 55f0: 3120 movi r1, 32 + 55f2: 3001 movi r0, 1 + 55f4: e3fff796 bsr 0x4520 // 4520 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 55f8: 3200 movi r2, 0 + 55fa: 3120 movi r1, 32 + 55fc: 3001 movi r0, 1 + 55fe: e3fff791 bsr 0x4520 // 4520 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 5602: 3120 movi r1, 32 + 5604: 3001 movi r0, 1 + 5606: e3fff7ad bsr 0x4560 // 4560 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 560a: 9400 ld.w r0, (r4, 0x0) + 560c: 3120 movi r1, 32 + 560e: e3fff7c3 bsr 0x4594 // 4594 + EXI3_Int_Enable(); + 5612: e3fff7c3 bsr 0x4598 // 4598 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 5616: 1491 pop r4, r15 + 5618: 2000004c .long 0x2000004c + 561c: 20000048 .long 0x20000048 + +Disassembly of section .text.BT_CONFIG: + +00005620 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 5620: 14d2 push r4-r5, r15 + 5622: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 5624: 1095 lrw r4, 0x20000008 // 5678 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 5626: 3500 movi r5, 0 + BT_DeInit(BT1); + 5628: 9400 ld.w r0, (r4, 0x0) + 562a: e3fffa19 bsr 0x4a5c // 4a5c + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 562e: 9400 ld.w r0, (r4, 0x0) + 5630: b8a1 st.w r5, (r14, 0x4) + 5632: b8a0 st.w r5, (r14, 0x0) + 5634: 3308 movi r3, 8 + 5636: 3200 movi r2, 0 + 5638: 3101 movi r1, 1 + 563a: e3fffa28 bsr 0x4a8a // 4a8a + 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); + 563e: 3380 movi r3, 128 + 5640: 4363 lsli r3, r3, 3 + 5642: b861 st.w r3, (r14, 0x4) + 5644: 9400 ld.w r0, (r4, 0x0) + 5646: 3300 movi r3, 0 + 5648: b8a3 st.w r5, (r14, 0xc) + 564a: b8a2 st.w r5, (r14, 0x8) + 564c: b8a0 st.w r5, (r14, 0x0) + 564e: 3200 movi r2, 0 + 5650: 3180 movi r1, 128 + 5652: e3fffa28 bsr 0x4aa2 // 4aa2 + BT_Period_CMP_Write(BT1,4780,1); + 5656: 3201 movi r2, 1 + 5658: 1029 lrw r1, 0x12ac // 567c + 565a: 9400 ld.w r0, (r4, 0x0) + 565c: e3fffa39 bsr 0x4ace // 4ace + BT_Start(BT1); + 5660: 9400 ld.w r0, (r4, 0x0) + 5662: e3fffa0b bsr 0x4a78 // 4a78 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 5666: 9400 ld.w r0, (r4, 0x0) + 5668: 3202 movi r2, 2 + 566a: 3101 movi r1, 1 + 566c: e3fffa34 bsr 0x4ad4 // 4ad4 + BT1_INT_ENABLE(); + 5670: e3fffa3c bsr 0x4ae8 // 4ae8 + +} + 5674: 1404 addi r14, r14, 16 + 5676: 1492 pop r4-r5, r15 + 5678: 20000008 .long 0x20000008 + 567c: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00005680 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 5680: 14d0 push r15 + 5682: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 5684: e3fff658 bsr 0x4334 // 4334 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 5688: 3101 movi r1, 1 + 568a: 3001 movi r0, 1 + 568c: e3fff67a bsr 0x4380 // 4380 + //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 + 5690: 3000 movi r0, 0 + 5692: e3fff6d3 bsr 0x4438 // 4438 + 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 + 5696: 3180 movi r1, 128 + 5698: 3308 movi r3, 8 + 569a: 3200 movi r2, 0 + 569c: 4121 lsli r1, r1, 1 + 569e: 3002 movi r0, 2 + 56a0: e3fff688 bsr 0x43b0 // 43b0 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 56a4: 30c0 movi r0, 192 + 56a6: 3118 movi r1, 24 + 56a8: 4002 lsli r0, r0, 2 + 56aa: e3fff703 bsr 0x44b0 // 44b0 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 56ae: 3001 movi r0, 1 + 56b0: e3fff6d8 bsr 0x4460 // 4460 + SYSCON_IWDCNT_Reload(); //reload WDT + 56b4: e3fff6f4 bsr 0x449c // 449c + IWDT_Int_Enable(); + 56b8: e3fff726 bsr 0x4504 // 4504 + //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 + 56bc: 3340 movi r3, 64 + 56be: b860 st.w r3, (r14, 0x0) + 56c0: 31c0 movi r1, 192 + 56c2: 3380 movi r3, 128 + 56c4: 4364 lsli r3, r3, 4 + 56c6: 3200 movi r2, 0 + 56c8: 4123 lsli r1, r1, 3 + 56ca: 3000 movi r0, 0 + 56cc: e3fff6fe bsr 0x44c8 // 44c8 + LVD_Int_Enable(); + 56d0: e3fff70c bsr 0x44e8 // 44e8 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 56d4: e3fff772 bsr 0x45b8 // 45b8 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 56d8: 3000 movi r0, 0 + 56da: e00036e7 bsr 0xc4a8 // c4a8 + +} + 56de: 1401 addi r14, r14, 4 + 56e0: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000056e4 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 56e4: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 56e6: 1162 lrw r3, 0x2000005c // 576c + Sys_RSR = 0x00000000; + 56e8: 1142 lrw r2, 0x200000b4 // 5770 + 56ea: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 56ec: 9360 ld.w r3, (r3, 0x0) + 56ee: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 56f0: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 56f2: 600c addu r0, r3 + 56f4: 9004 ld.w r0, (r0, 0x10) + 56f6: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 56f8: 105f lrw r2, 0x200000b0 // 5774 + 56fa: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 56fc: 3180 movi r1, 128 + 56fe: 4121 lsli r1, r1, 1 + 5700: 604c addu r1, r3 + 5702: 9120 ld.w r1, (r1, 0x0) + 5704: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 5706: 105d lrw r2, 0xfffffff // 5778 + 5708: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 570a: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 570c: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 570e: 934c ld.w r2, (r3, 0x30) + 5710: 6884 and r2, r1 + 5712: 3a40 cmpnei r2, 0 + 5714: 0ffd bf 0x570e // 570e +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 5716: e3ffffb5 bsr 0x5680 // 5680 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 571a: e000055b bsr 0x61d0 // 61d0 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 571e: e3fff759 bsr 0x45d0 // 45d0 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 5722: 3101 movi r1, 1 + 5724: 300f movi r0, 15 + 5726: e3fff767 bsr 0x45f4 // 45f4 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 572a: 3102 movi r1, 2 + 572c: 3019 movi r0, 25 + 572e: e3fff763 bsr 0x45f4 // 45f4 + + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 5732: 3101 movi r1, 1 + 5734: 3016 movi r0, 22 + 5736: e3fff75f bsr 0x45f4 // 45f4 + + Set_INT_Priority(EXI4_IRQ, 1); //过零信号外部IO中断 + 573a: 3101 movi r1, 1 + 573c: 3017 movi r0, 23 + 573e: e3fff75b bsr 0x45f4 // 45f4 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 5742: e3fff771 bsr 0x4624 // 4624 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + Relay_Init(); + 5746: e0002437 bsr 0x9fb4 // 9fb4 + + BT_CONFIG(); //BT initial + 574a: e3ffff6b bsr 0x5620 // 5620 + + GPIO_CONFIG(); + 574e: e3ffff23 bsr 0x5594 // 5594 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 5752: 102b lrw r1, 0xa6f8 // 577c + 5754: 3002 movi r0, 2 + 5756: e0000543 bsr 0x61dc // 61dc + + HT1621_Init(); //显示驱动初始化 + 575a: e00015d9 bsr 0x830c // 830c + + TM1812_LED_Init(); + 575e: e0001565 bsr 0x8228 // 8228 + + ADC_Init(); + 5762: e0000ebb bsr 0x74d8 // 74d8 + + Touch_Key_Init(); + 5766: e0000773 bsr 0x664c // 664c +} + 576a: 1490 pop r15 + 576c: 2000005c .long 0x2000005c + 5770: 200000b4 .long 0x200000b4 + 5774: 200000b0 .long 0x200000b0 + 5778: 0fffffff .long 0x0fffffff + 577c: 0000a6f8 .long 0x0000a6f8 + +Disassembly of section .text.SYSCONIntHandler: + +00005780 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 5780: 1460 nie + 5782: 1462 ipush + // ISR content ... + nop; + 5784: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 5786: 117a lrw r3, 0x2000005c // 586c + 5788: 3280 movi r2, 128 + 578a: 9360 ld.w r3, (r3, 0x0) + 578c: 60c8 addu r3, r2 + 578e: 9323 ld.w r1, (r3, 0xc) + 5790: 3001 movi r0, 1 + 5792: 6840 and r1, r0 + 5794: 3940 cmpnei r1, 0 + 5796: 0c04 bf 0x579e // 579e + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 5798: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 579a: 1463 ipop + 579c: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 579e: 9323 ld.w r1, (r3, 0xc) + 57a0: 3002 movi r0, 2 + 57a2: 6840 and r1, r0 + 57a4: 3940 cmpnei r1, 0 + 57a6: 0bf9 bt 0x5798 // 5798 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 57a8: 9323 ld.w r1, (r3, 0xc) + 57aa: 3008 movi r0, 8 + 57ac: 6840 and r1, r0 + 57ae: 3940 cmpnei r1, 0 + 57b0: 0bf4 bt 0x5798 // 5798 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 57b2: 9323 ld.w r1, (r3, 0xc) + 57b4: 3010 movi r0, 16 + 57b6: 6840 and r1, r0 + 57b8: 3940 cmpnei r1, 0 + 57ba: 0bef bt 0x5798 // 5798 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 57bc: 9323 ld.w r1, (r3, 0xc) + 57be: 6848 and r1, r2 + 57c0: 3940 cmpnei r1, 0 + 57c2: 0c03 bf 0x57c8 // 57c8 + SYSCON->ICR = CMD_ERR_ST; + 57c4: b341 st.w r2, (r3, 0x4) +} + 57c6: 07ea br 0x579a // 579a + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 57c8: 3280 movi r2, 128 + 57ca: 9323 ld.w r1, (r3, 0xc) + 57cc: 4241 lsli r2, r2, 1 + 57ce: 6848 and r1, r2 + 57d0: 3940 cmpnei r1, 0 + 57d2: 0bf9 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 57d4: 3280 movi r2, 128 + 57d6: 9323 ld.w r1, (r3, 0xc) + 57d8: 4242 lsli r2, r2, 2 + 57da: 6848 and r1, r2 + 57dc: 3940 cmpnei r1, 0 + 57de: 0bf3 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 57e0: 3280 movi r2, 128 + 57e2: 9323 ld.w r1, (r3, 0xc) + 57e4: 4243 lsli r2, r2, 3 + 57e6: 6848 and r1, r2 + 57e8: 3940 cmpnei r1, 0 + 57ea: 0bed bt 0x57c4 // 57c4 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 57ec: 3280 movi r2, 128 + 57ee: 9323 ld.w r1, (r3, 0xc) + 57f0: 4244 lsli r2, r2, 4 + 57f2: 6848 and r1, r2 + 57f4: 3940 cmpnei r1, 0 + 57f6: 0c03 bf 0x57fc // 57fc + nop; + 57f8: 6c03 mov r0, r0 + 57fa: 07e5 br 0x57c4 // 57c4 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 57fc: 3280 movi r2, 128 + 57fe: 9323 ld.w r1, (r3, 0xc) + 5800: 4245 lsli r2, r2, 5 + 5802: 6848 and r1, r2 + 5804: 3940 cmpnei r1, 0 + 5806: 0bdf bt 0x57c4 // 57c4 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 5808: 3280 movi r2, 128 + 580a: 9323 ld.w r1, (r3, 0xc) + 580c: 4246 lsli r2, r2, 6 + 580e: 6848 and r1, r2 + 5810: 3940 cmpnei r1, 0 + 5812: 0bd9 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 5814: 3280 movi r2, 128 + 5816: 9323 ld.w r1, (r3, 0xc) + 5818: 4247 lsli r2, r2, 7 + 581a: 6848 and r1, r2 + 581c: 3940 cmpnei r1, 0 + 581e: 0bd3 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 5820: 3280 movi r2, 128 + 5822: 9323 ld.w r1, (r3, 0xc) + 5824: 424b lsli r2, r2, 11 + 5826: 6848 and r1, r2 + 5828: 3940 cmpnei r1, 0 + 582a: 0bcd bt 0x57c4 // 57c4 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 582c: 3280 movi r2, 128 + 582e: 9323 ld.w r1, (r3, 0xc) + 5830: 424c lsli r2, r2, 12 + 5832: 6848 and r1, r2 + 5834: 3940 cmpnei r1, 0 + 5836: 0bc7 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 5838: 3280 movi r2, 128 + 583a: 9323 ld.w r1, (r3, 0xc) + 583c: 424d lsli r2, r2, 13 + 583e: 6848 and r1, r2 + 5840: 3940 cmpnei r1, 0 + 5842: 0bc1 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 5844: 3280 movi r2, 128 + 5846: 9323 ld.w r1, (r3, 0xc) + 5848: 424e lsli r2, r2, 14 + 584a: 6848 and r1, r2 + 584c: 3940 cmpnei r1, 0 + 584e: 0bbb bt 0x57c4 // 57c4 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 5850: 3280 movi r2, 128 + 5852: 9323 ld.w r1, (r3, 0xc) + 5854: 424f lsli r2, r2, 15 + 5856: 6848 and r1, r2 + 5858: 3940 cmpnei r1, 0 + 585a: 0bb5 bt 0x57c4 // 57c4 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 585c: 3280 movi r2, 128 + 585e: 9323 ld.w r1, (r3, 0xc) + 5860: 4256 lsli r2, r2, 22 + 5862: 6848 and r1, r2 + 5864: 3940 cmpnei r1, 0 + 5866: 0baf bt 0x57c4 // 57c4 + 5868: 0799 br 0x579a // 579a + 586a: 0000 bkpt + 586c: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00005870 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 5870: 1460 nie + 5872: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 5874: 1078 lrw r3, 0x20000060 // 58d4 + 5876: 3101 movi r1, 1 + 5878: 9360 ld.w r3, (r3, 0x0) + 587a: 934b ld.w r2, (r3, 0x2c) + 587c: 6884 and r2, r1 + 587e: 3a40 cmpnei r2, 0 + 5880: 0c04 bf 0x5888 // 5888 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 5882: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 5884: 1463 ipop + 5886: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 5888: 934b ld.w r2, (r3, 0x2c) + 588a: 3102 movi r1, 2 + 588c: 6884 and r2, r1 + 588e: 3a40 cmpnei r2, 0 + 5890: 0bf9 bt 0x5882 // 5882 + else if(IFC->MISR&PEP_END_INT) + 5892: 934b ld.w r2, (r3, 0x2c) + 5894: 3104 movi r1, 4 + 5896: 6884 and r2, r1 + 5898: 3a40 cmpnei r2, 0 + 589a: 0bf4 bt 0x5882 // 5882 + else if(IFC->MISR&PROT_ERR_INT) + 589c: 3280 movi r2, 128 + 589e: 932b ld.w r1, (r3, 0x2c) + 58a0: 4245 lsli r2, r2, 5 + 58a2: 6848 and r1, r2 + 58a4: 3940 cmpnei r1, 0 + 58a6: 0c03 bf 0x58ac // 58ac + IFC->ICR=OVW_ERR_INT; + 58a8: b34c st.w r2, (r3, 0x30) +} + 58aa: 07ed br 0x5884 // 5884 + else if(IFC->MISR&UDEF_ERR_INT) + 58ac: 3280 movi r2, 128 + 58ae: 932b ld.w r1, (r3, 0x2c) + 58b0: 4246 lsli r2, r2, 6 + 58b2: 6848 and r1, r2 + 58b4: 3940 cmpnei r1, 0 + 58b6: 0bf9 bt 0x58a8 // 58a8 + else if(IFC->MISR&ADDR_ERR_INT) + 58b8: 3280 movi r2, 128 + 58ba: 932b ld.w r1, (r3, 0x2c) + 58bc: 4247 lsli r2, r2, 7 + 58be: 6848 and r1, r2 + 58c0: 3940 cmpnei r1, 0 + 58c2: 0bf3 bt 0x58a8 // 58a8 + else if(IFC->MISR&OVW_ERR_INT) + 58c4: 3280 movi r2, 128 + 58c6: 932b ld.w r1, (r3, 0x2c) + 58c8: 4248 lsli r2, r2, 8 + 58ca: 6848 and r1, r2 + 58cc: 3940 cmpnei r1, 0 + 58ce: 0bed bt 0x58a8 // 58a8 + 58d0: 07da br 0x5884 // 5884 + 58d2: 0000 bkpt + 58d4: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +000058d8 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 58d8: 1460 nie + 58da: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 58dc: 1078 lrw r3, 0x20000050 // 593c + 58de: 3101 movi r1, 1 + 58e0: 9360 ld.w r3, (r3, 0x0) + 58e2: 9348 ld.w r2, (r3, 0x20) + 58e4: 6884 and r2, r1 + 58e6: 3a40 cmpnei r2, 0 + 58e8: 0c04 bf 0x58f0 // 58f0 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 58ea: 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; + } +} + 58ec: 1463 ipop + 58ee: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 58f0: 9348 ld.w r2, (r3, 0x20) + 58f2: 3102 movi r1, 2 + 58f4: 6884 and r2, r1 + 58f6: 3a40 cmpnei r2, 0 + 58f8: 0bf9 bt 0x58ea // 58ea + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 58fa: 9348 ld.w r2, (r3, 0x20) + 58fc: 3104 movi r1, 4 + 58fe: 6884 and r2, r1 + 5900: 3a40 cmpnei r2, 0 + 5902: 0bf4 bt 0x58ea // 58ea + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 5904: 9348 ld.w r2, (r3, 0x20) + 5906: 3110 movi r1, 16 + 5908: 6884 and r2, r1 + 590a: 3a40 cmpnei r2, 0 + 590c: 0bef bt 0x58ea // 58ea + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 590e: 9348 ld.w r2, (r3, 0x20) + 5910: 3120 movi r1, 32 + 5912: 6884 and r2, r1 + 5914: 3a40 cmpnei r2, 0 + 5916: 0bea bt 0x58ea // 58ea + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 5918: 9348 ld.w r2, (r3, 0x20) + 591a: 3140 movi r1, 64 + 591c: 6884 and r2, r1 + 591e: 3a40 cmpnei r2, 0 + 5920: 0be5 bt 0x58ea // 58ea + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 5922: 9348 ld.w r2, (r3, 0x20) + 5924: 3180 movi r1, 128 + 5926: 6884 and r2, r1 + 5928: 3a40 cmpnei r2, 0 + 592a: 0be0 bt 0x58ea // 58ea + 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 + 592c: 3280 movi r2, 128 + 592e: 9328 ld.w r1, (r3, 0x20) + 5930: 4249 lsli r2, r2, 9 + 5932: 6848 and r1, r2 + 5934: 3940 cmpnei r1, 0 + 5936: 0fdb bf 0x58ec // 58ec + ADC0->CSR = ADC12_SEQ_END0; + 5938: b347 st.w r2, (r3, 0x1c) +} + 593a: 07d9 br 0x58ec // 58ec + 593c: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00005940 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 5940: 1460 nie + 5942: 1462 ipush + 5944: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 5946: 1387 lrw r4, 0x20000020 // 5ae0 + 5948: 3280 movi r2, 128 + 594a: 9460 ld.w r3, (r4, 0x0) + 594c: 60c8 addu r3, r2 + 594e: 9335 ld.w r1, (r3, 0x54) + 5950: 3001 movi r0, 1 + 5952: 6840 and r1, r0 + 5954: 3940 cmpnei r1, 0 + 5956: 0c03 bf 0x595c // 595c + 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; + 5958: b317 st.w r0, (r3, 0x5c) + 595a: 0424 br 0x59a2 // 59a2 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 595c: 9335 ld.w r1, (r3, 0x54) + 595e: 3002 movi r0, 2 + 5960: 6840 and r1, r0 + 5962: 3940 cmpnei r1, 0 + 5964: 0bfa bt 0x5958 // 5958 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 5966: 9335 ld.w r1, (r3, 0x54) + 5968: 3004 movi r0, 4 + 596a: 6840 and r1, r0 + 596c: 3940 cmpnei r1, 0 + 596e: 0bf5 bt 0x5958 // 5958 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 5970: 9335 ld.w r1, (r3, 0x54) + 5972: 3008 movi r0, 8 + 5974: 6840 and r1, r0 + 5976: 3940 cmpnei r1, 0 + 5978: 0bf0 bt 0x5958 // 5958 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 597a: 9335 ld.w r1, (r3, 0x54) + 597c: 3010 movi r0, 16 + 597e: 6840 and r1, r0 + 5980: 3940 cmpnei r1, 0 + 5982: 0c1f bf 0x59c0 // 59c0 + EPT0->ICR=EPT_CAP_LD0; + 5984: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 5986: 3200 movi r2, 0 + 5988: 3101 movi r1, 1 + 598a: 3000 movi r0, 0 + 598c: e3fff5ca bsr 0x4520 // 4520 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 5990: 3201 movi r2, 1 + 5992: 3101 movi r1, 1 + 5994: 3001 movi r0, 1 + 5996: e3fff5c5 bsr 0x4520 // 4520 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 599a: 9460 ld.w r3, (r4, 0x0) + 599c: 934b ld.w r2, (r3, 0x2c) + 599e: 1272 lrw r3, 0x200002c4 // 5ae4 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 59a0: 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 + 59a2: 9460 ld.w r3, (r4, 0x0) + 59a4: 3280 movi r2, 128 + 59a6: 60c8 addu r3, r2 + 59a8: 932b ld.w r1, (r3, 0x2c) + 59aa: 3001 movi r0, 1 + 59ac: 6840 and r1, r0 + 59ae: 3940 cmpnei r1, 0 + 59b0: 0c61 bf 0x5a72 // 5a72 + { + 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; + 59b2: 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; + } +} + 59b4: d9ee2001 ld.w r15, (r14, 0x4) + 59b8: 9880 ld.w r4, (r14, 0x0) + 59ba: 1402 addi r14, r14, 8 + 59bc: 1463 ipop + 59be: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 59c0: 9335 ld.w r1, (r3, 0x54) + 59c2: 3020 movi r0, 32 + 59c4: 6840 and r1, r0 + 59c6: 3940 cmpnei r1, 0 + 59c8: 0c10 bf 0x59e8 // 59e8 + EPT0->ICR=EPT_CAP_LD1; + 59ca: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 59cc: 3200 movi r2, 0 + 59ce: 3101 movi r1, 1 + 59d0: 3001 movi r0, 1 + 59d2: e3fff5a7 bsr 0x4520 // 4520 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 59d6: 3201 movi r2, 1 + 59d8: 3101 movi r1, 1 + 59da: 3000 movi r0, 0 + 59dc: e3fff5a2 bsr 0x4520 // 4520 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 59e0: 9460 ld.w r3, (r4, 0x0) + 59e2: 934c ld.w r2, (r3, 0x30) + 59e4: 1261 lrw r3, 0x200002c0 // 5ae8 + 59e6: 07dd br 0x59a0 // 59a0 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 59e8: 9335 ld.w r1, (r3, 0x54) + 59ea: 3040 movi r0, 64 + 59ec: 6840 and r1, r0 + 59ee: 3940 cmpnei r1, 0 + 59f0: 0bb4 bt 0x5958 // 5958 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 59f2: 9335 ld.w r1, (r3, 0x54) + 59f4: 6848 and r1, r2 + 59f6: 3940 cmpnei r1, 0 + 59f8: 0c03 bf 0x59fe // 59fe + EPT0->ICR=EPT_CDD; + 59fa: b357 st.w r2, (r3, 0x5c) + 59fc: 07d3 br 0x59a2 // 59a2 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 59fe: 3280 movi r2, 128 + 5a00: 9335 ld.w r1, (r3, 0x54) + 5a02: 4241 lsli r2, r2, 1 + 5a04: 6848 and r1, r2 + 5a06: 3940 cmpnei r1, 0 + 5a08: 0bf9 bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 5a0a: 3280 movi r2, 128 + 5a0c: 9335 ld.w r1, (r3, 0x54) + 5a0e: 4242 lsli r2, r2, 2 + 5a10: 6848 and r1, r2 + 5a12: 3940 cmpnei r1, 0 + 5a14: 0bf3 bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 5a16: 3280 movi r2, 128 + 5a18: 9335 ld.w r1, (r3, 0x54) + 5a1a: 4243 lsli r2, r2, 3 + 5a1c: 6848 and r1, r2 + 5a1e: 3940 cmpnei r1, 0 + 5a20: 0bed bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 5a22: 3280 movi r2, 128 + 5a24: 9335 ld.w r1, (r3, 0x54) + 5a26: 4244 lsli r2, r2, 4 + 5a28: 6848 and r1, r2 + 5a2a: 3940 cmpnei r1, 0 + 5a2c: 0be7 bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 5a2e: 3280 movi r2, 128 + 5a30: 9335 ld.w r1, (r3, 0x54) + 5a32: 4245 lsli r2, r2, 5 + 5a34: 6848 and r1, r2 + 5a36: 3940 cmpnei r1, 0 + 5a38: 0be1 bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 5a3a: 3280 movi r2, 128 + 5a3c: 9335 ld.w r1, (r3, 0x54) + 5a3e: 4246 lsli r2, r2, 6 + 5a40: 6848 and r1, r2 + 5a42: 3940 cmpnei r1, 0 + 5a44: 0bdb bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 5a46: 3280 movi r2, 128 + 5a48: 9335 ld.w r1, (r3, 0x54) + 5a4a: 4247 lsli r2, r2, 7 + 5a4c: 6848 and r1, r2 + 5a4e: 3940 cmpnei r1, 0 + 5a50: 0bd5 bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 5a52: 3280 movi r2, 128 + 5a54: 9335 ld.w r1, (r3, 0x54) + 5a56: 4248 lsli r2, r2, 8 + 5a58: 6848 and r1, r2 + 5a5a: 3940 cmpnei r1, 0 + 5a5c: 0bcf bt 0x59fa // 59fa + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 5a5e: 3280 movi r2, 128 + 5a60: 9335 ld.w r1, (r3, 0x54) + 5a62: 4249 lsli r2, r2, 9 + 5a64: 6848 and r1, r2 + 5a66: 3940 cmpnei r1, 0 + 5a68: 0f9d bf 0x59a2 // 59a2 + EPT0->ICR=EPT_PEND; + 5a6a: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 5a6c: e3fff98c bsr 0x4d84 // 4d84 + 5a70: 0799 br 0x59a2 // 59a2 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 5a72: 932b ld.w r1, (r3, 0x2c) + 5a74: 3002 movi r0, 2 + 5a76: 6840 and r1, r0 + 5a78: 3940 cmpnei r1, 0 + 5a7a: 0b9c bt 0x59b2 // 59b2 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 5a7c: 932b ld.w r1, (r3, 0x2c) + 5a7e: 3004 movi r0, 4 + 5a80: 6840 and r1, r0 + 5a82: 3940 cmpnei r1, 0 + 5a84: 0b97 bt 0x59b2 // 59b2 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 5a86: 932b ld.w r1, (r3, 0x2c) + 5a88: 3008 movi r0, 8 + 5a8a: 6840 and r1, r0 + 5a8c: 3940 cmpnei r1, 0 + 5a8e: 0b92 bt 0x59b2 // 59b2 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 5a90: 932b ld.w r1, (r3, 0x2c) + 5a92: 3010 movi r0, 16 + 5a94: 6840 and r1, r0 + 5a96: 3940 cmpnei r1, 0 + 5a98: 0b8d bt 0x59b2 // 59b2 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 5a9a: 932b ld.w r1, (r3, 0x2c) + 5a9c: 3020 movi r0, 32 + 5a9e: 6840 and r1, r0 + 5aa0: 3940 cmpnei r1, 0 + 5aa2: 0b88 bt 0x59b2 // 59b2 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 5aa4: 932b ld.w r1, (r3, 0x2c) + 5aa6: 3040 movi r0, 64 + 5aa8: 6840 and r1, r0 + 5aaa: 3940 cmpnei r1, 0 + 5aac: 0b83 bt 0x59b2 // 59b2 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 5aae: 932b ld.w r1, (r3, 0x2c) + 5ab0: 6848 and r1, r2 + 5ab2: 3940 cmpnei r1, 0 + 5ab4: 0c03 bf 0x5aba // 5aba + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 5ab6: b34d st.w r2, (r3, 0x34) +} + 5ab8: 077e br 0x59b4 // 59b4 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 5aba: 3280 movi r2, 128 + 5abc: 932b ld.w r1, (r3, 0x2c) + 5abe: 4241 lsli r2, r2, 1 + 5ac0: 6848 and r1, r2 + 5ac2: 3940 cmpnei r1, 0 + 5ac4: 0bf9 bt 0x5ab6 // 5ab6 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 5ac6: 3280 movi r2, 128 + 5ac8: 932b ld.w r1, (r3, 0x2c) + 5aca: 4242 lsli r2, r2, 2 + 5acc: 6848 and r1, r2 + 5ace: 3940 cmpnei r1, 0 + 5ad0: 0bf3 bt 0x5ab6 // 5ab6 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 5ad2: 3280 movi r2, 128 + 5ad4: 932b ld.w r1, (r3, 0x2c) + 5ad6: 4243 lsli r2, r2, 3 + 5ad8: 6848 and r1, r2 + 5ada: 3940 cmpnei r1, 0 + 5adc: 0bed bt 0x5ab6 // 5ab6 + 5ade: 076b br 0x59b4 // 59b4 + 5ae0: 20000020 .long 0x20000020 + 5ae4: 200002c4 .long 0x200002c4 + 5ae8: 200002c0 .long 0x200002c0 + +Disassembly of section .text.WWDTHandler: + +00005aec : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 5aec: 1460 nie + 5aee: 1462 ipush + 5af0: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 5af2: 10ab lrw r5, 0x20000010 // 5b1c + 5af4: 3401 movi r4, 1 + 5af6: 9560 ld.w r3, (r5, 0x0) + 5af8: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 5afa: 30ff movi r0, 255 + 5afc: e3fff7a8 bsr 0x4a4c // 4a4c + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 5b00: 9540 ld.w r2, (r5, 0x0) + 5b02: 9263 ld.w r3, (r2, 0xc) + 5b04: 68d0 and r3, r4 + 5b06: 3b40 cmpnei r3, 0 + 5b08: 0c02 bf 0x5b0c // 5b0c + { + WWDT->ICR = WWDT_EVI; + 5b0a: b285 st.w r4, (r2, 0x14) + } +} + 5b0c: d9ee2002 ld.w r15, (r14, 0x8) + 5b10: 98a1 ld.w r5, (r14, 0x4) + 5b12: 9880 ld.w r4, (r14, 0x0) + 5b14: 1403 addi r14, r14, 12 + 5b16: 1463 ipop + 5b18: 1461 nir + 5b1a: 0000 bkpt + 5b1c: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00005b20 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 5b20: 1460 nie + 5b22: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 5b24: 107e lrw r3, 0x20000024 // 5b9c + 5b26: 3101 movi r1, 1 + 5b28: 9360 ld.w r3, (r3, 0x0) + 5b2a: 237f addi r3, 128 + 5b2c: 9355 ld.w r2, (r3, 0x54) + 5b2e: 6884 and r2, r1 + 5b30: 3a40 cmpnei r2, 0 + 5b32: 0c04 bf 0x5b3a // 5b3a + { + 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; + 5b34: 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; + } +} + 5b36: 1463 ipop + 5b38: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 5b3a: 9355 ld.w r2, (r3, 0x54) + 5b3c: 3102 movi r1, 2 + 5b3e: 6884 and r2, r1 + 5b40: 3a40 cmpnei r2, 0 + 5b42: 0bf9 bt 0x5b34 // 5b34 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 5b44: 9355 ld.w r2, (r3, 0x54) + 5b46: 3110 movi r1, 16 + 5b48: 6884 and r2, r1 + 5b4a: 3a40 cmpnei r2, 0 + 5b4c: 0bf4 bt 0x5b34 // 5b34 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 5b4e: 9355 ld.w r2, (r3, 0x54) + 5b50: 3120 movi r1, 32 + 5b52: 6884 and r2, r1 + 5b54: 3a40 cmpnei r2, 0 + 5b56: 0bef bt 0x5b34 // 5b34 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 5b58: 3280 movi r2, 128 + 5b5a: 9335 ld.w r1, (r3, 0x54) + 5b5c: 4241 lsli r2, r2, 1 + 5b5e: 6848 and r1, r2 + 5b60: 3940 cmpnei r1, 0 + 5b62: 0c03 bf 0x5b68 // 5b68 + GPT0->ICR = GPT_INT_PEND; + 5b64: b357 st.w r2, (r3, 0x5c) +} + 5b66: 07e8 br 0x5b36 // 5b36 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 5b68: 3280 movi r2, 128 + 5b6a: 9335 ld.w r1, (r3, 0x54) + 5b6c: 4242 lsli r2, r2, 2 + 5b6e: 6848 and r1, r2 + 5b70: 3940 cmpnei r1, 0 + 5b72: 0bf9 bt 0x5b64 // 5b64 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 5b74: 3280 movi r2, 128 + 5b76: 9335 ld.w r1, (r3, 0x54) + 5b78: 4243 lsli r2, r2, 3 + 5b7a: 6848 and r1, r2 + 5b7c: 3940 cmpnei r1, 0 + 5b7e: 0bf3 bt 0x5b64 // 5b64 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 5b80: 3280 movi r2, 128 + 5b82: 9335 ld.w r1, (r3, 0x54) + 5b84: 4244 lsli r2, r2, 4 + 5b86: 6848 and r1, r2 + 5b88: 3940 cmpnei r1, 0 + 5b8a: 0bed bt 0x5b64 // 5b64 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 5b8c: 3280 movi r2, 128 + 5b8e: 9335 ld.w r1, (r3, 0x54) + 5b90: 4249 lsli r2, r2, 9 + 5b92: 6848 and r1, r2 + 5b94: 3940 cmpnei r1, 0 + 5b96: 0be7 bt 0x5b64 // 5b64 + 5b98: 07cf br 0x5b36 // 5b36 + 5b9a: 0000 bkpt + 5b9c: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00005ba0 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 5ba0: 1460 nie + 5ba2: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 5ba4: 1079 lrw r3, 0x20000018 // 5c08 + 5ba6: 3101 movi r1, 1 + 5ba8: 9360 ld.w r3, (r3, 0x0) + 5baa: 934a ld.w r2, (r3, 0x28) + 5bac: 6884 and r2, r1 + 5bae: 3a40 cmpnei r2, 0 + 5bb0: 0c14 bf 0x5bd8 // 5bd8 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 5bb2: 1057 lrw r2, 0xca53 // 5c0c + RTC->ICR=ALRA_INT; + 5bb4: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 5bb6: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 5bb8: 9342 ld.w r2, (r3, 0x8) + 5bba: 6c84 or r2, r1 + 5bbc: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 5bbe: 3280 movi r2, 128 + 5bc0: 424d lsli r2, r2, 13 + 5bc2: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 5bc4: 3102 movi r1, 2 + 5bc6: 9342 ld.w r2, (r3, 0x8) + 5bc8: 6884 and r2, r1 + 5bca: 3a40 cmpnei r2, 0 + 5bcc: 0bfd bt 0x5bc6 // 5bc6 + RTC->CR &= ~0x1; + 5bce: 9342 ld.w r2, (r3, 0x8) + 5bd0: 3a80 bclri r2, 0 + 5bd2: 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; + } +} + 5bd4: 1463 ipop + 5bd6: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 5bd8: 934a ld.w r2, (r3, 0x28) + 5bda: 3102 movi r1, 2 + 5bdc: 6884 and r2, r1 + 5bde: 3a40 cmpnei r2, 0 + 5be0: 0c03 bf 0x5be6 // 5be6 + RTC->ICR=RTC_TRGEV1_INT; + 5be2: b32b st.w r1, (r3, 0x2c) +} + 5be4: 07f8 br 0x5bd4 // 5bd4 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 5be6: 934a ld.w r2, (r3, 0x28) + 5be8: 3104 movi r1, 4 + 5bea: 6884 and r2, r1 + 5bec: 3a40 cmpnei r2, 0 + 5bee: 0bfa bt 0x5be2 // 5be2 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 5bf0: 934a ld.w r2, (r3, 0x28) + 5bf2: 3108 movi r1, 8 + 5bf4: 6884 and r2, r1 + 5bf6: 3a40 cmpnei r2, 0 + 5bf8: 0bf5 bt 0x5be2 // 5be2 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 5bfa: 934a ld.w r2, (r3, 0x28) + 5bfc: 3110 movi r1, 16 + 5bfe: 6884 and r2, r1 + 5c00: 3a40 cmpnei r2, 0 + 5c02: 0bf0 bt 0x5be2 // 5be2 + 5c04: 07e8 br 0x5bd4 // 5bd4 + 5c06: 0000 bkpt + 5c08: 20000018 .long 0x20000018 + 5c0c: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00005c10 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 5c10: 1460 nie + 5c12: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 5c14: 106d lrw r3, 0x20000040 // 5c48 + 5c16: 3102 movi r1, 2 + 5c18: 9360 ld.w r3, (r3, 0x0) + 5c1a: 9343 ld.w r2, (r3, 0xc) + 5c1c: 6884 and r2, r1 + 5c1e: 3a40 cmpnei r2, 0 + 5c20: 0c03 bf 0x5c26 // 5c26 + { + 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; + 5c22: b323 st.w r1, (r3, 0xc) + } +} + 5c24: 0410 br 0x5c44 // 5c44 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 5c26: 9343 ld.w r2, (r3, 0xc) + 5c28: 3101 movi r1, 1 + 5c2a: 6884 and r2, r1 + 5c2c: 3a40 cmpnei r2, 0 + 5c2e: 0bfa bt 0x5c22 // 5c22 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 5c30: 9343 ld.w r2, (r3, 0xc) + 5c32: 3108 movi r1, 8 + 5c34: 6884 and r2, r1 + 5c36: 3a40 cmpnei r2, 0 + 5c38: 0bf5 bt 0x5c22 // 5c22 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 5c3a: 9343 ld.w r2, (r3, 0xc) + 5c3c: 3104 movi r1, 4 + 5c3e: 6884 and r2, r1 + 5c40: 3a40 cmpnei r2, 0 + 5c42: 0bf0 bt 0x5c22 // 5c22 +} + 5c44: 1463 ipop + 5c46: 1461 nir + 5c48: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00005c4c : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 5c4c: 1460 nie + 5c4e: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 5c50: 106d lrw r3, 0x2000003c // 5c84 + 5c52: 3102 movi r1, 2 + 5c54: 9360 ld.w r3, (r3, 0x0) + 5c56: 9343 ld.w r2, (r3, 0xc) + 5c58: 6884 and r2, r1 + 5c5a: 3a40 cmpnei r2, 0 + 5c5c: 0c03 bf 0x5c62 // 5c62 + { + 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; + 5c5e: b323 st.w r1, (r3, 0xc) + } +} + 5c60: 0410 br 0x5c80 // 5c80 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 5c62: 9343 ld.w r2, (r3, 0xc) + 5c64: 3101 movi r1, 1 + 5c66: 6884 and r2, r1 + 5c68: 3a40 cmpnei r2, 0 + 5c6a: 0bfa bt 0x5c5e // 5c5e + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 5c6c: 9343 ld.w r2, (r3, 0xc) + 5c6e: 3108 movi r1, 8 + 5c70: 6884 and r2, r1 + 5c72: 3a40 cmpnei r2, 0 + 5c74: 0bf5 bt 0x5c5e // 5c5e + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 5c76: 9343 ld.w r2, (r3, 0xc) + 5c78: 3104 movi r1, 4 + 5c7a: 6884 and r2, r1 + 5c7c: 3a40 cmpnei r2, 0 + 5c7e: 0bf0 bt 0x5c5e // 5c5e +} + 5c80: 1463 ipop + 5c82: 1461 nir + 5c84: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00005c88 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 5c88: 1460 nie + 5c8a: 1462 ipush + 5c8c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 5c8e: 107f lrw r3, 0x20000038 // 5d08 + 5c90: 3102 movi r1, 2 + 5c92: 9360 ld.w r3, (r3, 0x0) + 5c94: 9343 ld.w r2, (r3, 0xc) + 5c96: 6884 and r2, r1 + 5c98: 3a40 cmpnei r2, 0 + 5c9a: 0c0b bf 0x5cb0 // 5cb0 + { + UART2->ISR=UART_RX_INT_S; + 5c9c: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 5c9e: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 5ca0: 7400 zextb r0, r0 + 5ca2: e0000321 bsr 0x62e4 // 62e4 + RS485_Comm_End ++; + } + + } + +} + 5ca6: d9ee2000 ld.w r15, (r14, 0x0) + 5caa: 1401 addi r14, r14, 4 + 5cac: 1463 ipop + 5cae: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 5cb0: 9323 ld.w r1, (r3, 0xc) + 5cb2: 3201 movi r2, 1 + 5cb4: 6848 and r1, r2 + 5cb6: 3940 cmpnei r1, 0 + 5cb8: 0c0d bf 0x5cd2 // 5cd2 + UART2->ISR=UART_TX_INT_S; + 5cba: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 5cbc: 1074 lrw r3, 0x2000012c // 5d0c + 5cbe: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 5cc0: 1074 lrw r3, 0x20000130 // 5d10 + 5cc2: 9360 ld.w r3, (r3, 0x0) + 5cc4: 3b41 cmpnei r3, 1 + 5cc6: 0bf0 bt 0x5ca6 // 5ca6 + RS485_Comm_Start ++; + 5cc8: 1053 lrw r2, 0x20000134 // 5d14 + RS485_Comm_End ++; + 5cca: 9260 ld.w r3, (r2, 0x0) + 5ccc: 2300 addi r3, 1 + 5cce: b260 st.w r3, (r2, 0x0) +} + 5cd0: 07eb br 0x5ca6 // 5ca6 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 5cd2: 9343 ld.w r2, (r3, 0xc) + 5cd4: 3108 movi r1, 8 + 5cd6: 6884 and r2, r1 + 5cd8: 3a40 cmpnei r2, 0 + 5cda: 0c03 bf 0x5ce0 // 5ce0 + UART2->ISR=UART_TX_IOV_S; + 5cdc: b323 st.w r1, (r3, 0xc) + 5cde: 07e4 br 0x5ca6 // 5ca6 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 5ce0: 9343 ld.w r2, (r3, 0xc) + 5ce2: 3104 movi r1, 4 + 5ce4: 6884 and r2, r1 + 5ce6: 3a40 cmpnei r2, 0 + 5ce8: 0bfa bt 0x5cdc // 5cdc + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 5cea: 3180 movi r1, 128 + 5cec: 9303 ld.w r0, (r3, 0xc) + 5cee: 412c lsli r1, r1, 12 + 5cf0: 6804 and r0, r1 + 5cf2: 3840 cmpnei r0, 0 + 5cf4: 0fd9 bf 0x5ca6 // 5ca6 + UART2->ISR=UART_TX_DONE_S; + 5cf6: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 5cf8: 1065 lrw r3, 0x2000012c // 5d0c + 5cfa: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 5cfc: 1065 lrw r3, 0x20000130 // 5d10 + 5cfe: 9360 ld.w r3, (r3, 0x0) + 5d00: 3b41 cmpnei r3, 1 + 5d02: 0bd2 bt 0x5ca6 // 5ca6 + RS485_Comm_End ++; + 5d04: 1045 lrw r2, 0x20000138 // 5d18 + 5d06: 07e2 br 0x5cca // 5cca + 5d08: 20000038 .long 0x20000038 + 5d0c: 2000012c .long 0x2000012c + 5d10: 20000130 .long 0x20000130 + 5d14: 20000134 .long 0x20000134 + 5d18: 20000138 .long 0x20000138 + +Disassembly of section .text.SPI0IntHandler: + +00005d1c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 5d1c: 1460 nie + 5d1e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 5d20: 1178 lrw r3, 0x20000034 // 5e00 + 5d22: 3101 movi r1, 1 + 5d24: 9360 ld.w r3, (r3, 0x0) + 5d26: 9347 ld.w r2, (r3, 0x1c) + 5d28: 6884 and r2, r1 + 5d2a: 3a40 cmpnei r2, 0 + 5d2c: 0c03 bf 0x5d32 // 5d32 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 5d2e: b328 st.w r1, (r3, 0x20) + } + +} + 5d30: 0407 br 0x5d3e // 5d3e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 5d32: 9347 ld.w r2, (r3, 0x1c) + 5d34: 3002 movi r0, 2 + 5d36: 6880 and r2, r0 + 5d38: 3a40 cmpnei r2, 0 + 5d3a: 0c04 bf 0x5d42 // 5d42 + SPI0->ICR = SPI_RTIM; + 5d3c: b308 st.w r0, (r3, 0x20) +} + 5d3e: 1463 ipop + 5d40: 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 + 5d42: 9347 ld.w r2, (r3, 0x1c) + 5d44: 3004 movi r0, 4 + 5d46: 6880 and r2, r0 + 5d48: 3a40 cmpnei r2, 0 + 5d4a: 0c55 bf 0x5df4 // 5df4 + SPI0->ICR = SPI_RXIM; + 5d4c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 5d4e: 9302 ld.w r0, (r3, 0x8) + 5d50: 32aa movi r2, 170 + 5d52: 6482 cmpne r0, r2 + 5d54: 083e bt 0x5dd0 // 5dd0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d56: 3102 movi r1, 2 + 5d58: 9343 ld.w r2, (r3, 0xc) + 5d5a: 6884 and r2, r1 + 5d5c: 3a40 cmpnei r2, 0 + 5d5e: 0ffd bf 0x5d58 // 5d58 + SPI0->DR = 0x11; + 5d60: 3211 movi r2, 17 + 5d62: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d64: 3110 movi r1, 16 + 5d66: 9343 ld.w r2, (r3, 0xc) + 5d68: 6884 and r2, r1 + 5d6a: 3a40 cmpnei r2, 0 + 5d6c: 0bfd bt 0x5d66 // 5d66 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d6e: 3102 movi r1, 2 + 5d70: 9343 ld.w r2, (r3, 0xc) + 5d72: 6884 and r2, r1 + 5d74: 3a40 cmpnei r2, 0 + 5d76: 0ffd bf 0x5d70 // 5d70 + SPI0->DR = 0x12; + 5d78: 3212 movi r2, 18 + 5d7a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d7c: 3110 movi r1, 16 + 5d7e: 9343 ld.w r2, (r3, 0xc) + 5d80: 6884 and r2, r1 + 5d82: 3a40 cmpnei r2, 0 + 5d84: 0bfd bt 0x5d7e // 5d7e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d86: 3102 movi r1, 2 + 5d88: 9343 ld.w r2, (r3, 0xc) + 5d8a: 6884 and r2, r1 + 5d8c: 3a40 cmpnei r2, 0 + 5d8e: 0ffd bf 0x5d88 // 5d88 + SPI0->DR = 0x13; + 5d90: 3213 movi r2, 19 + 5d92: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5d94: 3110 movi r1, 16 + 5d96: 9343 ld.w r2, (r3, 0xc) + 5d98: 6884 and r2, r1 + 5d9a: 3a40 cmpnei r2, 0 + 5d9c: 0bfd bt 0x5d96 // 5d96 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5d9e: 3102 movi r1, 2 + 5da0: 9343 ld.w r2, (r3, 0xc) + 5da2: 6884 and r2, r1 + 5da4: 3a40 cmpnei r2, 0 + 5da6: 0ffd bf 0x5da0 // 5da0 + SPI0->DR = 0x14; + 5da8: 3214 movi r2, 20 + 5daa: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5dac: 3110 movi r1, 16 + 5dae: 9343 ld.w r2, (r3, 0xc) + 5db0: 6884 and r2, r1 + 5db2: 3a40 cmpnei r2, 0 + 5db4: 0bfd bt 0x5dae // 5dae + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 5db6: 3102 movi r1, 2 + 5db8: 9343 ld.w r2, (r3, 0xc) + 5dba: 6884 and r2, r1 + 5dbc: 3a40 cmpnei r2, 0 + 5dbe: 0ffd bf 0x5db8 // 5db8 + SPI0->DR = 0x15; + 5dc0: 3215 movi r2, 21 + 5dc2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5dc4: 3110 movi r1, 16 + 5dc6: 9343 ld.w r2, (r3, 0xc) + 5dc8: 6884 and r2, r1 + 5dca: 3a40 cmpnei r2, 0 + 5dcc: 0bfd bt 0x5dc6 // 5dc6 + 5dce: 07b8 br 0x5d3e // 5d3e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 5dd0: 9343 ld.w r2, (r3, 0xc) + 5dd2: 6884 and r2, r1 + 5dd4: 3a40 cmpnei r2, 0 + 5dd6: 0bb4 bt 0x5d3e // 5d3e + SPI0->DR=0x0; //FIFO=0 + 5dd8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5dda: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 5ddc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5dde: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5de0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5de2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5de4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5de6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 5de8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 5dea: 9343 ld.w r2, (r3, 0xc) + 5dec: 6884 and r2, r1 + 5dee: 3a40 cmpnei r2, 0 + 5df0: 0bfd bt 0x5dea // 5dea + 5df2: 07a6 br 0x5d3e // 5d3e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 5df4: 9347 ld.w r2, (r3, 0x1c) + 5df6: 3108 movi r1, 8 + 5df8: 6884 and r2, r1 + 5dfa: 3a40 cmpnei r2, 0 + 5dfc: 0b99 bt 0x5d2e // 5d2e + 5dfe: 07a0 br 0x5d3e // 5d3e + 5e00: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00005e04 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 5e04: 1460 nie + 5e06: 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) + 5e08: 1073 lrw r3, 0x2000002c // 5e54 + 5e0a: 3104 movi r1, 4 + 5e0c: 9360 ld.w r3, (r3, 0x0) + 5e0e: 9349 ld.w r2, (r3, 0x24) + 5e10: 6884 and r2, r1 + 5e12: 3a40 cmpnei r2, 0 + 5e14: 0c02 bf 0x5e18 // 5e18 + { + SIO0->ICR=0X04; + 5e16: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 5e18: 9349 ld.w r2, (r3, 0x24) + 5e1a: 3101 movi r1, 1 + 5e1c: 6884 and r2, r1 + 5e1e: 3a40 cmpnei r2, 0 + 5e20: 0c02 bf 0x5e24 // 5e24 + { + SIO0->ICR=0X01; + 5e22: 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 + 5e24: 9349 ld.w r2, (r3, 0x24) + 5e26: 3102 movi r1, 2 + 5e28: 6884 and r2, r1 + 5e2a: 3a40 cmpnei r2, 0 + 5e2c: 0c03 bf 0x5e32 // 5e32 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 5e2e: b32b st.w r1, (r3, 0x2c) + } +} + 5e30: 0410 br 0x5e50 // 5e50 + else if(SIO0->MISR&0X08) //RXBUFFULL + 5e32: 9349 ld.w r2, (r3, 0x24) + 5e34: 3108 movi r1, 8 + 5e36: 6884 and r2, r1 + 5e38: 3a40 cmpnei r2, 0 + 5e3a: 0bfa bt 0x5e2e // 5e2e + else if(SIO0->MISR&0X010) //BREAK + 5e3c: 9349 ld.w r2, (r3, 0x24) + 5e3e: 3110 movi r1, 16 + 5e40: 6884 and r2, r1 + 5e42: 3a40 cmpnei r2, 0 + 5e44: 0bf5 bt 0x5e2e // 5e2e + else if(SIO0->MISR&0X020) //TIMEOUT + 5e46: 9349 ld.w r2, (r3, 0x24) + 5e48: 3120 movi r1, 32 + 5e4a: 6884 and r2, r1 + 5e4c: 3a40 cmpnei r2, 0 + 5e4e: 0bf0 bt 0x5e2e // 5e2e +} + 5e50: 1463 ipop + 5e52: 1461 nir + 5e54: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00005e58 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 5e58: 1460 nie + 5e5a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 5e5c: 106a lrw r3, 0x2000005c // 5e84 + 5e5e: 3101 movi r1, 1 + 5e60: 9360 ld.w r3, (r3, 0x0) + 5e62: 237f addi r3, 128 + 5e64: 934c ld.w r2, (r3, 0x30) + 5e66: 6884 and r2, r1 + 5e68: 3a40 cmpnei r2, 0 + 5e6a: 0c04 bf 0x5e72 // 5e72 + { + SYSCON->EXICR = EXI_PIN0; + 5e6c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 5e6e: 1463 ipop + 5e70: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 5e72: 3280 movi r2, 128 + 5e74: 932c ld.w r1, (r3, 0x30) + 5e76: 4249 lsli r2, r2, 9 + 5e78: 6848 and r1, r2 + 5e7a: 3940 cmpnei r1, 0 + 5e7c: 0ff9 bf 0x5e6e // 5e6e + SYSCON->EXICR = EXI_PIN16; + 5e7e: b34b st.w r2, (r3, 0x2c) +} + 5e80: 07f7 br 0x5e6e // 5e6e + 5e82: 0000 bkpt + 5e84: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00005e88 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 5e88: 1460 nie + 5e8a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 5e8c: 106a lrw r3, 0x2000005c // 5eb4 + 5e8e: 3102 movi r1, 2 + 5e90: 9360 ld.w r3, (r3, 0x0) + 5e92: 237f addi r3, 128 + 5e94: 934c ld.w r2, (r3, 0x30) + 5e96: 6884 and r2, r1 + 5e98: 3a40 cmpnei r2, 0 + 5e9a: 0c04 bf 0x5ea2 // 5ea2 + { + SYSCON->EXICR = EXI_PIN1; + 5e9c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 5e9e: 1463 ipop + 5ea0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 5ea2: 3280 movi r2, 128 + 5ea4: 932c ld.w r1, (r3, 0x30) + 5ea6: 424a lsli r2, r2, 10 + 5ea8: 6848 and r1, r2 + 5eaa: 3940 cmpnei r1, 0 + 5eac: 0ff9 bf 0x5e9e // 5e9e + SYSCON->EXICR = EXI_PIN17; + 5eae: b34b st.w r2, (r3, 0x2c) +} + 5eb0: 07f7 br 0x5e9e // 5e9e + 5eb2: 0000 bkpt + 5eb4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00005eb8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 5eb8: 1460 nie + 5eba: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 5ebc: 1070 lrw r3, 0x2000005c // 5efc + 5ebe: 3104 movi r1, 4 + 5ec0: 9360 ld.w r3, (r3, 0x0) + 5ec2: 237f addi r3, 128 + 5ec4: 934c ld.w r2, (r3, 0x30) + 5ec6: 6884 and r2, r1 + 5ec8: 3a40 cmpnei r2, 0 + 5eca: 0c04 bf 0x5ed2 // 5ed2 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 5ecc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 5ece: 1463 ipop + 5ed0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 5ed2: 934c ld.w r2, (r3, 0x30) + 5ed4: 3108 movi r1, 8 + 5ed6: 6884 and r2, r1 + 5ed8: 3a40 cmpnei r2, 0 + 5eda: 0bf9 bt 0x5ecc // 5ecc + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 5edc: 3280 movi r2, 128 + 5ede: 932c ld.w r1, (r3, 0x30) + 5ee0: 424b lsli r2, r2, 11 + 5ee2: 6848 and r1, r2 + 5ee4: 3940 cmpnei r1, 0 + 5ee6: 0c03 bf 0x5eec // 5eec + SYSCON->EXICR = EXI_PIN19; + 5ee8: b34b st.w r2, (r3, 0x2c) +} + 5eea: 07f2 br 0x5ece // 5ece + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 5eec: 3280 movi r2, 128 + 5eee: 932c ld.w r1, (r3, 0x30) + 5ef0: 424c lsli r2, r2, 12 + 5ef2: 6848 and r1, r2 + 5ef4: 3940 cmpnei r1, 0 + 5ef6: 0bf9 bt 0x5ee8 // 5ee8 + 5ef8: 07eb br 0x5ece // 5ece + 5efa: 0000 bkpt + 5efc: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00005f00 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 5f00: 1460 nie + 5f02: 1462 ipush + 5f04: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 5f06: 1079 lrw r3, 0x2000005c // 5f68 + 5f08: 3280 movi r2, 128 + 5f0a: 9360 ld.w r3, (r3, 0x0) + 5f0c: 60c8 addu r3, r2 + 5f0e: 932c ld.w r1, (r3, 0x30) + 5f10: 3010 movi r0, 16 + 5f12: 6840 and r1, r0 + 5f14: 3940 cmpnei r1, 0 + 5f16: 0c03 bf 0x5f1c // 5f1c + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 5f18: b30b st.w r0, (r3, 0x2c) + 5f1a: 0409 br 0x5f2c // 5f2c + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 5f1c: 932c ld.w r1, (r3, 0x30) + 5f1e: 3020 movi r0, 32 + 5f20: 6840 and r1, r0 + 5f22: 3940 cmpnei r1, 0 + 5f24: 0c09 bf 0x5f36 // 5f36 + SYSCON->EXICR = EXI_PIN5; + 5f26: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 5f28: e000035c bsr 0x65e0 // 65e0 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 5f2c: d9ee2000 ld.w r15, (r14, 0x0) + 5f30: 1401 addi r14, r14, 4 + 5f32: 1463 ipop + 5f34: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 5f36: 932c ld.w r1, (r3, 0x30) + 5f38: 3040 movi r0, 64 + 5f3a: 6840 and r1, r0 + 5f3c: 3940 cmpnei r1, 0 + 5f3e: 0bed bt 0x5f18 // 5f18 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 5f40: 932c ld.w r1, (r3, 0x30) + 5f42: 6848 and r1, r2 + 5f44: 3940 cmpnei r1, 0 + 5f46: 0c03 bf 0x5f4c // 5f4c + SYSCON->EXICR = EXI_PIN9; + 5f48: b34b st.w r2, (r3, 0x2c) +} + 5f4a: 07f1 br 0x5f2c // 5f2c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 5f4c: 3280 movi r2, 128 + 5f4e: 932c ld.w r1, (r3, 0x30) + 5f50: 4241 lsli r2, r2, 1 + 5f52: 6848 and r1, r2 + 5f54: 3940 cmpnei r1, 0 + 5f56: 0bf9 bt 0x5f48 // 5f48 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 5f58: 3280 movi r2, 128 + 5f5a: 932c ld.w r1, (r3, 0x30) + 5f5c: 4242 lsli r2, r2, 2 + 5f5e: 6848 and r1, r2 + 5f60: 3940 cmpnei r1, 0 + 5f62: 0bf3 bt 0x5f48 // 5f48 + 5f64: 07e4 br 0x5f2c // 5f2c + 5f66: 0000 bkpt + 5f68: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00005f6c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 5f6c: 1460 nie + 5f6e: 1462 ipush + 5f70: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 5f72: 107d lrw r3, 0x2000005c // 5fe4 + 5f74: 3280 movi r2, 128 + 5f76: 9360 ld.w r3, (r3, 0x0) + 5f78: 237f addi r3, 128 + 5f7a: 932c ld.w r1, (r3, 0x30) + 5f7c: 4243 lsli r2, r2, 3 + 5f7e: 6848 and r1, r2 + 5f80: 3940 cmpnei r1, 0 + 5f82: 0c03 bf 0x5f88 // 5f88 + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 5f84: b34b st.w r2, (r3, 0x2c) + } +} + 5f86: 0422 br 0x5fca // 5fca + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 5f88: 3280 movi r2, 128 + 5f8a: 932c ld.w r1, (r3, 0x30) + 5f8c: 4244 lsli r2, r2, 4 + 5f8e: 6848 and r1, r2 + 5f90: 3940 cmpnei r1, 0 + 5f92: 0bf9 bt 0x5f84 // 5f84 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 5f94: 3280 movi r2, 128 + 5f96: 932c ld.w r1, (r3, 0x30) + 5f98: 4245 lsli r2, r2, 5 + 5f9a: 6848 and r1, r2 + 5f9c: 3940 cmpnei r1, 0 + 5f9e: 0bf3 bt 0x5f84 // 5f84 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 5fa0: 3280 movi r2, 128 + 5fa2: 932c ld.w r1, (r3, 0x30) + 5fa4: 4246 lsli r2, r2, 6 + 5fa6: 6848 and r1, r2 + 5fa8: 3940 cmpnei r1, 0 + 5faa: 0bed bt 0x5f84 // 5f84 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 5fac: 3280 movi r2, 128 + 5fae: 932c ld.w r1, (r3, 0x30) + 5fb0: 4247 lsli r2, r2, 7 + 5fb2: 6848 and r1, r2 + 5fb4: 3940 cmpnei r1, 0 + 5fb6: 0c0f bf 0x5fd4 // 5fd4 + SYSCON->EXICR = EXI_PIN14; + 5fb8: b34b st.w r2, (r3, 0x2c) + if(c_rly.rly_zCnt < 8){ + 5fba: 104c lrw r2, 0x20000878 // 5fe8 + 5fbc: 8261 ld.b r3, (r2, 0x1) + 5fbe: 3b07 cmphsi r3, 8 + 5fc0: 0803 bt 0x5fc6 // 5fc6 + c_rly.rly_zCnt++; + 5fc2: 2300 addi r3, 1 + 5fc4: a261 st.b r3, (r2, 0x1) + RLY_Zero_Control(); //继电器控制 + 5fc6: e00020b1 bsr 0xa128 // a128 +} + 5fca: d9ee2000 ld.w r15, (r14, 0x0) + 5fce: 1401 addi r14, r14, 4 + 5fd0: 1463 ipop + 5fd2: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 5fd4: 3280 movi r2, 128 + 5fd6: 932c ld.w r1, (r3, 0x30) + 5fd8: 4248 lsli r2, r2, 8 + 5fda: 6848 and r1, r2 + 5fdc: 3940 cmpnei r1, 0 + 5fde: 0bd3 bt 0x5f84 // 5f84 + 5fe0: 07f5 br 0x5fca // 5fca + 5fe2: 0000 bkpt + 5fe4: 2000005c .long 0x2000005c + 5fe8: 20000878 .long 0x20000878 + +Disassembly of section .text.LPTIntHandler: + +00005fec : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 5fec: 1460 nie + 5fee: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 5ff0: 106b lrw r3, 0x20000014 // 601c + 5ff2: 3101 movi r1, 1 + 5ff4: 9360 ld.w r3, (r3, 0x0) + 5ff6: 934e ld.w r2, (r3, 0x38) + 5ff8: 6884 and r2, r1 + 5ffa: 3a40 cmpnei r2, 0 + 5ffc: 0c03 bf 0x6002 // 6002 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 5ffe: b330 st.w r1, (r3, 0x40) + } +} + 6000: 040b br 0x6016 // 6016 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 6002: 934e ld.w r2, (r3, 0x38) + 6004: 3102 movi r1, 2 + 6006: 6884 and r2, r1 + 6008: 3a40 cmpnei r2, 0 + 600a: 0bfa bt 0x5ffe // 5ffe + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 600c: 934e ld.w r2, (r3, 0x38) + 600e: 3104 movi r1, 4 + 6010: 6884 and r2, r1 + 6012: 3a40 cmpnei r2, 0 + 6014: 0bf5 bt 0x5ffe // 5ffe +} + 6016: 1463 ipop + 6018: 1461 nir + 601a: 0000 bkpt + 601c: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00006020 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 6020: 1460 nie + 6022: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 6024: 1071 lrw r3, 0x2000000c // 6068 + 6026: 3101 movi r1, 1 + 6028: 9360 ld.w r3, (r3, 0x0) + 602a: 934c ld.w r2, (r3, 0x30) + 602c: 6884 and r2, r1 + 602e: 3a40 cmpnei r2, 0 + 6030: 0c0a bf 0x6044 // 6044 + { + BT0->ICR = BT_PEND; + 6032: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 6034: 9341 ld.w r2, (r3, 0x4) + 6036: 3a86 bclri r2, 6 + 6038: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 603a: 9340 ld.w r2, (r3, 0x0) + 603c: 3200 movi r2, 0 + 603e: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 6040: 1463 ipop + 6042: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 6044: 934c ld.w r2, (r3, 0x30) + 6046: 3102 movi r1, 2 + 6048: 6884 and r2, r1 + 604a: 3a40 cmpnei r2, 0 + 604c: 0c03 bf 0x6052 // 6052 + BT0->ICR = BT_EVTRG; + 604e: b32d st.w r1, (r3, 0x34) +} + 6050: 07f8 br 0x6040 // 6040 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 6052: 934c ld.w r2, (r3, 0x30) + 6054: 3104 movi r1, 4 + 6056: 6884 and r2, r1 + 6058: 3a40 cmpnei r2, 0 + 605a: 0bfa bt 0x604e // 604e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 605c: 934c ld.w r2, (r3, 0x30) + 605e: 3108 movi r1, 8 + 6060: 6884 and r2, r1 + 6062: 3a40 cmpnei r2, 0 + 6064: 0bf5 bt 0x604e // 604e + 6066: 07ed br 0x6040 // 6040 + 6068: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +0000606c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 606c: 1460 nie + 606e: 1462 ipush + 6070: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 6072: 1079 lrw r3, 0x20000008 // 60d4 + 6074: 3101 movi r1, 1 + 6076: 9360 ld.w r3, (r3, 0x0) + 6078: 934c ld.w r2, (r3, 0x30) + 607a: 6884 and r2, r1 + 607c: 3a40 cmpnei r2, 0 + 607e: 0c03 bf 0x6084 // 6084 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 6080: b32d st.w r1, (r3, 0x34) + } +} + 6082: 0418 br 0x60b2 // 60b2 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 6084: 934c ld.w r2, (r3, 0x30) + 6086: 3102 movi r1, 2 + 6088: 6884 and r2, r1 + 608a: 3a40 cmpnei r2, 0 + 608c: 0c18 bf 0x60bc // 60bc + BT1->ICR = BT_CMP; + 608e: b32d st.w r1, (r3, 0x34) + NUM++; + 6090: 1072 lrw r3, 0x200000b8 // 60d8 + 6092: 8340 ld.b r2, (r3, 0x0) + 6094: 2200 addi r2, 1 + 6096: 7488 zextb r2, r2 + SysTick_100us++; + 6098: 9321 ld.w r1, (r3, 0x4) + 609a: 2100 addi r1, 1 + if(NUM >= 10){ + 609c: 3a09 cmphsi r2, 10 + NUM++; + 609e: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 60a0: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 60a2: 0c08 bf 0x60b2 // 60b2 + NUM = 0; + 60a4: 3200 movi r2, 0 + 60a6: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 60a8: 9342 ld.w r2, (r3, 0x8) + 60aa: 2200 addi r2, 1 + 60ac: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 60ae: e0000279 bsr 0x65a0 // 65a0 +} + 60b2: d9ee2000 ld.w r15, (r14, 0x0) + 60b6: 1401 addi r14, r14, 4 + 60b8: 1463 ipop + 60ba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 60bc: 934c ld.w r2, (r3, 0x30) + 60be: 3104 movi r1, 4 + 60c0: 6884 and r2, r1 + 60c2: 3a40 cmpnei r2, 0 + 60c4: 0bde bt 0x6080 // 6080 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 60c6: 934c ld.w r2, (r3, 0x30) + 60c8: 3108 movi r1, 8 + 60ca: 6884 and r2, r1 + 60cc: 3a40 cmpnei r2, 0 + 60ce: 0bd9 bt 0x6080 // 6080 + 60d0: 07f1 br 0x60b2 // 60b2 + 60d2: 0000 bkpt + 60d4: 20000008 .long 0x20000008 + 60d8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.PriviledgeVioHandler: + +000060dc : + 60dc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +000060de : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 60de: 1460 nie + 60e0: 1462 ipush + // ISR content ... + +} + 60e2: 1463 ipop + 60e4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +000060e6 : + 60e6: 1460 nie + 60e8: 1462 ipush + 60ea: 1463 ipop + 60ec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +000060ee : + 60ee: 1460 nie + 60f0: 1462 ipush + 60f2: 1463 ipop + 60f4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +000060f6 : + 60f6: 1460 nie + 60f8: 1462 ipush + 60fa: 1463 ipop + 60fc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +000060fe : + 60fe: 1460 nie + 6100: 1462 ipush + 6102: 1463 ipop + 6104: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00006106 : + 6106: 1460 nie + 6108: 1462 ipush + 610a: 1463 ipop + 610c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000610e : + 610e: 1460 nie + 6110: 1462 ipush + 6112: 1463 ipop + 6114: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00006116 : + 6116: 1460 nie + 6118: 1462 ipush + 611a: 1463 ipop + 611c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000611e : + 611e: 1460 nie + 6120: 1462 ipush + 6122: 1463 ipop + 6124: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00006126 : + 6126: 1460 nie + 6128: 1462 ipush + 612a: 1463 ipop + 612c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000612e : + 612e: 1460 nie + 6130: 1462 ipush + 6132: 1463 ipop + 6134: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00006136 : + 6136: 1460 nie + 6138: 1462 ipush + 613a: 1463 ipop + 613c: 1461 nir + +Disassembly of section .text.__divsi3: + +00006140 <__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) +{ + 6140: 14c1 push r4 + int PSR; + __asm volatile( + 6142: c0006023 mfcr r3, cr<0, 0> + 6146: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 614a: 1046 lrw r2, 0x20000000 // 6160 <__divsi3+0x20> + 614c: 3400 movi r4, 0 + 614e: 9240 ld.w r2, (r2, 0x0) + 6150: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 6152: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 6154: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 6156: b221 st.w r1, (r2, 0x4) + __asm volatile( + 6158: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 615c: 9202 ld.w r0, (r2, 0x8) +} + 615e: 1481 pop r4 + 6160: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00006164 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 6164: 14c1 push r4 + int PSR; + __asm volatile( + 6166: c0006023 mfcr r3, cr<0, 0> + 616a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 616e: 1046 lrw r2, 0x20000000 // 6184 <__udivsi3+0x20> + 6170: 3401 movi r4, 1 + 6172: 9240 ld.w r2, (r2, 0x0) + 6174: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 6176: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 6178: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 617a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 617c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 6180: 9202 ld.w r0, (r2, 0x8) +} + 6182: 1481 pop r4 + 6184: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00006188 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 6188: 14c1 push r4 + int PSR; + __asm volatile( + 618a: c0006023 mfcr r3, cr<0, 0> + 618e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 6192: 1046 lrw r2, 0x20000000 // 61a8 <__modsi3+0x20> + 6194: 3400 movi r4, 0 + 6196: 9240 ld.w r2, (r2, 0x0) + 6198: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 619a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 619c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 619e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 61a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 61a4: 9203 ld.w r0, (r2, 0xc) +} + 61a6: 1481 pop r4 + 61a8: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000061ac <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 61ac: 14c1 push r4 + int PSR; + __asm volatile( + 61ae: c0006023 mfcr r3, cr<0, 0> + 61b2: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 61b6: 1046 lrw r2, 0x20000000 // 61cc <__umodsi3+0x20> + 61b8: 3401 movi r4, 1 + 61ba: 9240 ld.w r2, (r2, 0x0) + 61bc: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 61be: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 61c0: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 61c2: b221 st.w r1, (r2, 0x4) + __asm volatile( + 61c4: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 61c8: 9203 ld.w r0, (r2, 0xc) +} + 61ca: 1481 pop r4 + 61cc: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000061d0 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 61d0: c1807420 psrset ee, ie +} + 61d4: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000061d6 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 61d6: c0807020 psrclr ie +} + 61da: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000061dc : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 61dc: 14d2 push r4-r5, r15 + switch(uart_id){ + 61de: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 61e0: 6d07 mov r4, r1 + switch(uart_id){ + 61e2: 0c1e bf 0x621e // 621e + 61e4: 3840 cmpnei r0, 0 + 61e6: 0c04 bf 0x61ee // 61ee + 61e8: 3842 cmpnei r0, 2 + 61ea: 0c37 bf 0x6258 // 6258 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 61ec: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 61ee: e3fff4f5 bsr 0x4bd8 // 4bd8 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 61f2: 3100 movi r1, 0 + 61f4: 3000 movi r0, 0 + 61f6: e3fff531 bsr 0x4c58 // 4c58 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 61fa: 116f lrw r3, 0x20000040 // 62b4 + 61fc: 3200 movi r2, 0 + 61fe: 9300 ld.w r0, (r3, 0x0) + 6200: 112e lrw r1, 0x1388 // 62b8 + 6202: e3fff5a9 bsr 0x4d54 // 4d54 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 6206: 11ae lrw r5, 0x200002f0 // 62bc + UART0_Int_Enable(); + 6208: e3fff50c bsr 0x4c20 // 4c20 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 620c: 3274 movi r2, 116 + 620e: 3100 movi r1, 0 + 6210: 6c17 mov r0, r5 + 6212: e3ffefc5 bsr 0x419c // 419c <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 6216: 3303 movi r3, 3 + 6218: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 621a: b59c st.w r4, (r5, 0x70) + break; + 621c: 07e8 br 0x61ec // 61ec + UART1_DeInit(); //clear all UART Register + 621e: e3fff4e9 bsr 0x4bf0 // 4bf0 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 6222: 3102 movi r1, 2 + 6224: 3001 movi r0, 1 + 6226: e3fff519 bsr 0x4c58 // 4c58 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 622a: 11a6 lrw r5, 0x2000003c // 62c0 + 622c: 31d0 movi r1, 208 + 622e: 3200 movi r2, 0 + 6230: 4121 lsli r1, r1, 1 + 6232: 9500 ld.w r0, (r5, 0x0) + 6234: e3fff588 bsr 0x4d44 // 4d44 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 6238: 31d0 movi r1, 208 + 623a: 9500 ld.w r0, (r5, 0x0) + 623c: 3200 movi r2, 0 + 623e: 4121 lsli r1, r1, 1 + 6240: e3fff58a bsr 0x4d54 // 4d54 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 6244: 3274 movi r2, 116 + 6246: 3100 movi r1, 0 + 6248: 101f lrw r0, 0x20000364 // 62c4 + 624a: e3ffefa9 bsr 0x419c // 419c <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 624e: 107f lrw r3, 0x20000370 // 62c8 + 6250: 3203 movi r2, 3 + 6252: b357 st.w r2, (r3, 0x5c) + g_uart[UART_1].processing_cf = prt_cf; + 6254: b399 st.w r4, (r3, 0x64) + break; + 6256: 07cb br 0x61ec // 61ec + UART2_DeInit(); //clear all UART Register + 6258: e3fff4d8 bsr 0x4c08 // 4c08 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 625c: 3102 movi r1, 2 + 625e: 3002 movi r0, 2 + 6260: e3fff4fc bsr 0x4c58 // 4c58 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 6264: 107a lrw r3, 0x20000038 // 62cc + 6266: 3200 movi r2, 0 + 6268: 9300 ld.w r0, (r3, 0x0) + 626a: 1034 lrw r1, 0x1388 // 62b8 + 626c: e3fff574 bsr 0x4d54 // 4d54 + UART2_Int_Enable(); + 6270: e3fff4e6 bsr 0x4c3c // 4c3c + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 6274: 3274 movi r2, 116 + 6276: 3100 movi r1, 0 + 6278: 1016 lrw r0, 0x200003d8 // 62d0 + 627a: e3ffef91 bsr 0x419c // 419c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 627e: 3288 movi r2, 136 + 6280: 3100 movi r1, 0 + 6282: 1015 lrw r0, 0x2000044c // 62d4 + 6284: e3ffef8c bsr 0x419c // 419c <__memset_fast> + m_send.HighBit_Flag = 0x01; + 6288: 1074 lrw r3, 0x200004ac // 62d8 + 628a: 3201 movi r2, 1 + 628c: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 628e: 1074 lrw r3, 0x200003f0 // 62dc + g_uart[UART_2].processing_cf = prt_cf; + 6290: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 6292: 3203 movi r2, 3 + GPIO_Init(GPIOB0,3,Output); + 6294: 1093 lrw r4, 0x20000048 // 62e0 + 6296: 3103 movi r1, 3 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 6298: b354 st.w r2, (r3, 0x50) + GPIO_Init(GPIOB0,3,Output); + 629a: 9400 ld.w r0, (r4, 0x0) + 629c: 3200 movi r2, 0 + 629e: e3fff1f5 bsr 0x4688 // 4688 + GPIO_DriveStrength_EN(GPIOB0,3); + 62a2: 9400 ld.w r0, (r4, 0x0) + 62a4: 3103 movi r1, 3 + 62a6: e3fff26b bsr 0x477c // 477c + GPIO_Write_Low(GPIOB0,3); + 62aa: 9400 ld.w r0, (r4, 0x0) + 62ac: 3103 movi r1, 3 + 62ae: e3fff3ad bsr 0x4a08 // 4a08 +} + 62b2: 079d br 0x61ec // 61ec + 62b4: 20000040 .long 0x20000040 + 62b8: 00001388 .long 0x00001388 + 62bc: 200002f0 .long 0x200002f0 + 62c0: 2000003c .long 0x2000003c + 62c4: 20000364 .long 0x20000364 + 62c8: 20000370 .long 0x20000370 + 62cc: 20000038 .long 0x20000038 + 62d0: 200003d8 .long 0x200003d8 + 62d4: 2000044c .long 0x2000044c + 62d8: 200004ac .long 0x200004ac + 62dc: 200003f0 .long 0x200003f0 + 62e0: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +000062e4 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 62e4: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 62e6: 104e lrw r2, 0x2000043e // 631c + 62e8: 8a20 ld.h r1, (r2, 0x0) + 62ea: 3362 movi r3, 98 + 62ec: 644d cmplt r3, r1 + 62ee: 0c03 bf 0x62f4 // 62f4 + 62f0: 3300 movi r3, 0 + 62f2: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 62f4: 8a60 ld.h r3, (r2, 0x0) + 62f6: 102b lrw r1, 0x200002f0 // 6320 + 62f8: 5b82 addi r4, r3, 1 + 62fa: 60c4 addu r3, r1 + 62fc: 23e7 addi r3, 232 + 62fe: a300 st.b r0, (r3, 0x0) + 6300: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 6302: 1069 lrw r3, 0x200000c0 // 6324 + 6304: 9340 ld.w r2, (r3, 0x0) + 6306: 3380 movi r3, 128 + 6308: 4361 lsli r3, r3, 1 + 630a: 60c4 addu r3, r1 + 630c: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 630e: 33a6 movi r3, 166 + 6310: 4361 lsli r3, r3, 1 + 6312: 604c addu r1, r3 + 6314: 3301 movi r3, 1 + 6316: a160 st.b r3, (r1, 0x0) +} + 6318: 1481 pop r4 + 631a: 0000 bkpt + 631c: 2000043e .long 0x2000043e + 6320: 200002f0 .long 0x200002f0 + 6324: 200000c0 .long 0x200000c0 + +Disassembly of section .text.UART2_TASK: + +00006328 : + + +void UART2_TASK(void){ + 6328: 14d4 push r4-r7, r15 + 632a: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 632c: 10dc lrw r6, 0x2000043c // 639c + 632e: 8660 ld.b r3, (r6, 0x0) + 6330: 3b41 cmpnei r3, 1 + 6332: 082d bt 0x638c // 638c + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 6334: 10bb lrw r5, 0x200003f0 // 63a0 + 6336: 109c lrw r4, 0x200000c0 // 63a4 + 6338: 9460 ld.w r3, (r4, 0x0) + 633a: 9555 ld.w r2, (r5, 0x54) + 633c: 60ca subu r3, r2 + 633e: 9554 ld.w r2, (r5, 0x50) + 6340: 64c8 cmphs r2, r3 + 6342: 0825 bt 0x638c // 638c + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 6344: e3fff140 bsr 0x45c4 // 45c4 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 6348: 9460 ld.w r3, (r4, 0x0) + 634a: b575 st.w r3, (r5, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 634c: 8e61 ld.h r3, (r6, 0x2) + 634e: 6c8f mov r2, r3 + 6350: 1036 lrw r1, 0x200003d8 // 63a8 + 6352: 1017 lrw r0, 0x200000c4 // 63ac + DealLen = g_uart[UART_2].RecvLen; + 6354: 1097 lrw r4, 0x20000104 // 63b0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 6356: b860 st.w r3, (r14, 0x0) + 6358: e3ffef66 bsr 0x4224 // 4224 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 635c: 9860 ld.w r3, (r14, 0x0) + 635e: ac72 st.h r3, (r4, 0x24) + g_uart[UART_2].RecvLen = 0; + 6360: 3300 movi r3, 0 + 6362: ae61 st.h r3, (r6, 0x2) + g_uart[UART_2].Receiving = 0; + 6364: a660 st.b r3, (r6, 0x0) + SYSCON_Int_Enable(); + 6366: e3fff129 bsr 0x45b8 // 45b8 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 636a: 9576 ld.w r3, (r5, 0x58) + 636c: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 636e: 5ee6 addi r7, r6, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 6370: 0810 bt 0x6390 // 6390 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + } + + if(rev != 0x00){ + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 6372: 8c32 ld.h r1, (r4, 0x24) + 6374: 100e lrw r0, 0x200000c4 // 63ac + 6376: e00005c9 bsr 0x6f08 // 6f08 + } + + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(DealBuffer,DealLen); + 637a: 8c32 ld.h r1, (r4, 0x24) + 637c: 100c lrw r0, 0x200000c4 // 63ac + 637e: e00014f7 bsr 0x8d6c // 8d6c + } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 6382: 3264 movi r2, 100 + 6384: 3100 movi r1, 0 + 6386: 100a lrw r0, 0x200000c4 // 63ac + 6388: e3ffef0a bsr 0x419c // 419c <__memset_fast> + } + } +} + 638c: 1401 addi r14, r14, 4 + 638e: 1494 pop r4-r7, r15 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 6390: 8c32 ld.h r1, (r4, 0x24) + 6392: 1007 lrw r0, 0x200000c4 // 63ac + 6394: 7bcd jsr r3 + if(rev != 0x00){ + 6396: 3840 cmpnei r0, 0 + 6398: 0ff5 bf 0x6382 // 6382 + 639a: 07ec br 0x6372 // 6372 + 639c: 2000043c .long 0x2000043c + 63a0: 200003f0 .long 0x200003f0 + 63a4: 200000c0 .long 0x200000c0 + 63a8: 200003d8 .long 0x200003d8 + 63ac: 200000c4 .long 0x200000c4 + 63b0: 20000104 .long 0x20000104 + +Disassembly of section .text.BUS485_Send: + +000063b4 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 63b4: 14d4 push r4-r7, r15 + 63b6: 1423 subi r14, r14, 12 + 63b8: b802 st.w r0, (r14, 0x8) + 63ba: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 63bc: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 63be: 1189 lrw r4, 0x200000c4 // 6460 + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 63c0: 11c9 lrw r6, 0x20000048 // 6464 + while(RS485_Comming == 0x01){ + 63c2: 947a ld.w r3, (r4, 0x68) + 63c4: 3b41 cmpnei r3, 1 + 63c6: 0c3e bf 0x6442 // 6442 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 63c8: 1168 lrw r3, 0x200004ac // 6468 + 63ca: 83c4 ld.b r6, (r3, 0x4) + 63cc: 3e40 cmpnei r6, 0 + 63ce: b861 st.w r3, (r14, 0x4) + 63d0: 0845 bt 0x645a // 645a + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 63d2: 11e5 lrw r7, 0x20000048 // 6464 + CK_CPU_DisAllNormalIrq(); + 63d4: e3ffff01 bsr 0x61d6 // 61d6 + GPIO_Write_High(GPIOB0,3); + 63d8: 3103 movi r1, 3 + 63da: 9700 ld.w r0, (r7, 0x0) + 63dc: e3fff312 bsr 0x4a00 // 4a00 + + RS485_Comm_Flag = 0x01; + 63e0: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 63e2: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 63e4: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 63e6: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 63e8: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 63ea: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 63ec: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 63ee: e3fffef1 bsr 0x61d0 // 61d0 + + UARTTransmit(UART2,buff,len); + 63f2: 105f lrw r2, 0x20000038 // 646c + 63f4: 9200 ld.w r0, (r2, 0x0) + 63f6: 9822 ld.w r1, (r14, 0x8) + 63f8: 9840 ld.w r2, (r14, 0x0) + 63fa: e3fff4b5 bsr 0x4d64 // 4d64 + do{ + delay_nus(100); + 63fe: 3064 movi r0, 100 + 6400: e3fff8b8 bsr 0x5570 // 5570 + delay_cnt ++; + 6404: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 6406: 3363 movi r3, 99 + 6408: 654c cmphs r3, r5 + 640a: 0c08 bf 0x641a // 641a + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 640c: 947c ld.w r3, (r4, 0x70) + 640e: 9840 ld.w r2, (r14, 0x0) + 6410: 648d cmplt r3, r2 + 6412: 0bf6 bt 0x63fe // 63fe + 6414: 947d ld.w r3, (r4, 0x74) + 6416: 648d cmplt r3, r2 + 6418: 0bf3 bt 0x63fe // 63fe + + + CK_CPU_DisAllNormalIrq(); + 641a: e3fffede bsr 0x61d6 // 61d6 + + GPIO_Write_Low(GPIOB0,3); + 641e: 9700 ld.w r0, (r7, 0x0) + 6420: 3103 movi r1, 3 + 6422: e3fff2f3 bsr 0x4a08 // 4a08 + RS485_Comm_Flag = 0x00; + 6426: 3300 movi r3, 0 + 6428: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 642a: 1072 lrw r3, 0x200000c0 // 6470 + 642c: 9340 ld.w r2, (r3, 0x0) + 642e: 1072 lrw r3, 0x2000044c // 6474 + 6430: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 6432: 9861 ld.w r3, (r14, 0x4) + 6434: 3200 movi r2, 0 + 6436: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 6438: e3fffecc bsr 0x61d0 // 61d0 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 643c: 6c1b mov r0, r6 + 643e: 1403 addi r14, r14, 12 + 6440: 1494 pop r4-r7, r15 + delay_nus(100); + 6442: 3064 movi r0, 100 + 6444: e3fff896 bsr 0x5570 // 5570 + delay_cnt ++; + 6448: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 644a: 3364 movi r3, 100 + 644c: 64d6 cmpne r5, r3 + 644e: 0fbd bf 0x63c8 // 63c8 + GPIO_Reverse(GPIOB0,3); + 6450: 3103 movi r1, 3 + 6452: 9600 ld.w r0, (r6, 0x0) + 6454: e3fff2de bsr 0x4a10 // 4a10 + 6458: 07b5 br 0x63c2 // 63c2 + return UART_BUSBUSY; //发送失败 + 645a: 3601 movi r6, 1 + 645c: 07f0 br 0x643c // 643c + 645e: 0000 bkpt + 6460: 200000c4 .long 0x200000c4 + 6464: 20000048 .long 0x20000048 + 6468: 200004ac .long 0x200004ac + 646c: 20000038 .long 0x20000038 + 6470: 200000c0 .long 0x200000c0 + 6474: 2000044c .long 0x2000044c + +Disassembly of section .text.MultSend_Task: + +00006478 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 6478: 14d4 push r4-r7, r15 + 647a: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 647c: 5963 subi r3, r1, 1 + 647e: 74cd zexth r3, r3 + 6480: 3463 movi r4, 99 + 6482: 64d0 cmphs r4, r3 +{ + 6484: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 6486: 0c29 bf 0x64d8 // 64d8 + + if(DatSd == 0x01) + 6488: 3a41 cmpnei r2, 1 + 648a: 0c04 bf 0x6492 // 6492 + }else{ + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 648c: 3001 movi r0, 1 +} + 648e: 1401 addi r14, r14, 4 + 6490: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 6492: 1075 lrw r3, 0x2000044c // 64e4 + 6494: 3760 movi r7, 96 + 6496: 61cc addu r7, r3 + 6498: 87c8 ld.b r6, (r7, 0x8) + 649a: 874a ld.b r2, (r7, 0xa) + 649c: 6498 cmphs r6, r2 + 649e: 081f bt 0x64dc // 64dc + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 64a0: 3480 movi r4, 128 + 64a2: 10b2 lrw r5, 0x200000c0 // 64e8 + 64a4: 610c addu r4, r3 + 64a6: 9401 ld.w r0, (r4, 0x4) + 64a8: 9540 ld.w r2, (r5, 0x0) + 64aa: 6082 subu r2, r0 + 64ac: 931e ld.w r0, (r3, 0x78) + 64ae: 6408 cmphs r2, r0 + 64b0: 0818 bt 0x64e0 // 64e0 + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 64b2: 3e40 cmpnei r6, 0 + 64b4: 0c07 bf 0x64c2 // 64c2 + 64b6: 9540 ld.w r2, (r5, 0x0) + 64b8: 94c0 ld.w r6, (r4, 0x0) + 64ba: 609a subu r2, r6 + 64bc: 937d ld.w r3, (r3, 0x74) + 64be: 64c8 cmphs r2, r3 + 64c0: 0fe6 bf 0x648c // 648c + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 64c2: 9800 ld.w r0, (r14, 0x0) + 64c4: e3ffff78 bsr 0x63b4 // 63b4 + 64c8: 3840 cmpnei r0, 0 + 64ca: 0be1 bt 0x648c // 648c + m_send.ASend_Tick = SysTick_1ms; + 64cc: 9560 ld.w r3, (r5, 0x0) + 64ce: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 64d0: 8768 ld.b r3, (r7, 0x8) + 64d2: 2300 addi r3, 1 + 64d4: a768 st.b r3, (r7, 0x8) + 64d6: 07dc br 0x648e // 648e + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 64d8: 3004 movi r0, 4 + 64da: 07da br 0x648e // 648e + return RETRY_END;//没有重发次数 + 64dc: 3003 movi r0, 3 + 64de: 07d8 br 0x648e // 648e + return DATA_END;//数据有效期结束 + 64e0: 3002 movi r0, 2 + 64e2: 07d6 br 0x648e // 648e + 64e4: 2000044c .long 0x2000044c + 64e8: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Set_GroupSend: + +000064ec : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 64ec: 14d4 push r4-r7, r15 + 64ee: 1422 subi r14, r14, 8 + 64f0: 6d8b mov r6, r2 + 64f2: 9847 ld.w r2, (r14, 0x1c) + 64f4: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 64f6: 5943 subi r2, r1, 1 +{ + 64f8: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 64fa: 7489 zexth r2, r2 + 64fc: 3163 movi r1, 99 + 64fe: 6484 cmphs r1, r2 +{ + 6500: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 6502: 0c20 bf 0x6542 // 6542 + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 6504: 1091 lrw r4, 0x2000044c // 6548 + 6506: 3264 movi r2, 100 + 6508: 3100 movi r1, 0 + 650a: 6c13 mov r0, r4 + 650c: b861 st.w r3, (r14, 0x4) + 650e: e3ffee47 bsr 0x419c // 419c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 6512: 6c97 mov r2, r5 + 6514: 6c13 mov r0, r4 + 6516: 6c5f mov r1, r7 + 6518: e3ffee86 bsr 0x4224 // 4224 <__memcpy_fast> + m_send.SendLen = sled; + 651c: 3240 movi r2, 64 + 651e: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 6520: 9861 ld.w r3, (r14, 0x4) + 6522: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 6524: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 6526: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 6528: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 652a: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 652c: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 652e: 3201 movi r2, 1 + 6530: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 6532: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 6534: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 6536: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 6538: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 653a: 247f addi r4, 128 + 653c: 1064 lrw r3, 0x200000c0 // 654c + 653e: 9360 ld.w r3, (r3, 0x0) + 6540: b461 st.w r3, (r4, 0x4) +} + 6542: 1402 addi r14, r14, 8 + 6544: 1494 pop r4-r7, r15 + 6546: 0000 bkpt + 6548: 2000044c .long 0x2000044c + 654c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Clear_SendFlag: + +00006550 : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 6550: 1063 lrw r3, 0x200004ac // 655c + 6552: 3200 movi r2, 0 + 6554: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 6556: a347 st.b r2, (r3, 0x7) +} + 6558: 783c jmp r15 + 655a: 0000 bkpt + 655c: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485_Jump_Boot: + +00006560 : +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 6560: 1062 lrw r3, 0x200004ac // 6568 + 6562: a30c st.b r0, (r3, 0xc) +} + 6564: 783c jmp r15 + 6566: 0000 bkpt + 6568: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485Send_Task: + +0000656c : + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 656c: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 656e: 108a lrw r4, 0x200004ac // 6594 + 6570: 8469 ld.b r3, (r4, 0x9) + 6572: 3b41 cmpnei r3, 1 + 6574: 080e bt 0x6590 // 6590 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 6576: 1069 lrw r3, 0x2000048c // 6598 + 6578: 8b37 ld.h r1, (r3, 0x2e) + 657a: 3201 movi r2, 1 + 657c: 1008 lrw r0, 0x2000044c // 659c + 657e: e3ffff7d bsr 0x6478 // 6478 + 6582: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 6584: 2801 subi r0, 2 + 6586: 7400 zextb r0, r0 + 6588: 3801 cmphsi r0, 2 + 658a: 0803 bt 0x6590 // 6590 + { + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 658c: 3300 movi r3, 0 + 658e: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 6590: 1491 pop r4, r15 + 6592: 0000 bkpt + 6594: 200004ac .long 0x200004ac + 6598: 2000048c .long 0x2000048c + 659c: 2000044c .long 0x2000044c + +Disassembly of section .text.BusIdle_Task: + +000065a0 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 65a0: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 65a2: 10ae lrw r5, 0x2000044c // 65d8 + 65a4: 3460 movi r4, 96 + 65a6: 6114 addu r4, r5 + 65a8: 8464 ld.b r3, (r4, 0x4) + 65aa: 3b40 cmpnei r3, 0 + 65ac: 0c15 bf 0x65d6 // 65d6 + 65ae: 8466 ld.b r3, (r4, 0x6) + 65b0: 3b41 cmpnei r3, 1 + 65b2: 0c12 bf 0x65d6 // 65d6 + { + CK_CPU_DisAllNormalIrq(); + 65b4: e3fffe11 bsr 0x61d6 // 61d6 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 65b8: 8465 ld.b r3, (r4, 0x5) + 65ba: 3b41 cmpnei r3, 1 + 65bc: 080b bt 0x65d2 // 65d2 + 65be: 1068 lrw r3, 0x200000c0 // 65dc + 65c0: 9340 ld.w r2, (r3, 0x0) + 65c2: 957f ld.w r3, (r5, 0x7c) + 65c4: 608e subu r2, r3 + 65c6: 957c ld.w r3, (r5, 0x70) + 65c8: 2305 addi r3, 6 + 65ca: 64c8 cmphs r2, r3 + 65cc: 0c03 bf 0x65d2 // 65d2 + { + m_send.BusState_Flag = UART_BUSIDLE; + 65ce: 3300 movi r3, 0 + 65d0: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 65d2: e3fffdff bsr 0x61d0 // 61d0 + } +} + 65d6: 1492 pop r4-r5, r15 + 65d8: 2000044c .long 0x2000044c + 65dc: 200000c0 .long 0x200000c0 + +Disassembly of section .text.BusBusy_Task: + +000065e0 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 65e0: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 65e2: 1094 lrw r4, 0x2000044c // 6630 + 65e4: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 65e6: e3fffdf8 bsr 0x61d6 // 61d6 + m_send.BusState_Flag = UART_BUSBUSY; + 65ea: 6150 addu r5, r4 + 65ec: 3301 movi r3, 1 + 65ee: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 65f0: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 65f2: 1071 lrw r3, 0x200000c0 // 6634 + 65f4: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 65f6: 9300 ld.w r0, (r3, 0x0) + 65f8: 3380 movi r3, 128 + 65fa: 60d0 addu r3, r4 + 65fc: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 65fe: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 6600: 600e subu r0, r3 + 6602: e3fffdd5 bsr 0x61ac // 61ac <__umodsi3> + 6606: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 6608: 3105 movi r1, 5 + 660a: 108c lrw r4, 0x20000048 // 6638 + 660c: 9400 ld.w r0, (r4, 0x0) + 660e: e3fff20c bsr 0x4a26 // 4a26 + 6612: 3841 cmpnei r0, 1 + 6614: 0806 bt 0x6620 // 6620 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 6616: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 6618: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 661a: e3fffddb bsr 0x61d0 // 61d0 +} + 661e: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 6620: 9400 ld.w r0, (r4, 0x0) + 6622: 3105 movi r1, 5 + 6624: e3fff201 bsr 0x4a26 // 4a26 + 6628: 3840 cmpnei r0, 0 + 662a: 0bf8 bt 0x661a // 661a + m_send.HighBit_Flag = 0x00; //低电平 + 662c: 3300 movi r3, 0 + 662e: 07f5 br 0x6618 // 6618 + 6630: 2000044c .long 0x2000044c + 6634: 200000c0 .long 0x200000c0 + 6638: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +0000663c : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 663c: 1423 subi r14, r14, 12 + 663e: b862 st.w r3, (r14, 0x8) + 6640: b841 st.w r2, (r14, 0x4) + 6642: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 6644: 1403 addi r14, r14, 12 + 6646: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00006648 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 6648: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +0000664c : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 664c: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 664e: 3234 movi r2, 52 + 6650: 3100 movi r1, 0 + 6652: 1014 lrw r0, 0x200004f0 // 66a0 + 6654: e3ffeda4 bsr 0x419c // 419c <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 6658: 321c movi r2, 28 + 665a: 3100 movi r1, 0 + 665c: 1012 lrw r0, 0x200004d4 // 66a4 + 665e: e3ffed9f bsr 0x419c // 419c <__memset_fast> +// g_tk_filt[i].base_update_en = 0x01; +// } + + EEPROM_Init(); //按键库初始化前先读取参数 + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 6662: 1092 lrw r4, 0x20000524 // 66a8 + EEPROM_Init(); //按键库初始化前先读取参数 + 6664: e000057c bsr 0x715c // 715c + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 6668: 8405 ld.b r0, (r4, 0x5) + 666a: 102f lrw r1, 0x200004d4 // 66a4 + 666c: e00005da bsr 0x7220 // 7220 + if(rev == 0x00){ + 6670: 3840 cmpnei r0, 0 + 6672: 080e bt 0x668e // 668e + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 6674: 8405 ld.b r0, (r4, 0x5) + 6676: 102c lrw r1, 0x200004d4 // 66a4 + 6678: e000062a bsr 0x72cc // 72cc + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 667c: 100a lrw r0, 0x200004d4 // 66a4 + 667e: e00006cd bsr 0x7418 // 7418 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 6682: e0002e8b bsr 0xc398 // c398 + + base_update_f = 0x01; //触摸状态强制更新 + 6686: 106a lrw r3, 0x200009cd // 66ac + 6688: 3201 movi r2, 1 + 668a: a340 st.b r2, (r3, 0x0) + +} + 668c: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 668e: 1029 lrw r1, 0xcbf2 // 66b0 + 6690: 3000 movi r0, 0 + 6692: e3ffffd5 bsr 0x663c // 663c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 6696: 8405 ld.b r0, (r4, 0x5) + 6698: 1023 lrw r1, 0x200004d4 // 66a4 + 669a: e0000687 bsr 0x73a8 // 73a8 + 669e: 07ef br 0x667c // 667c + 66a0: 200004f0 .long 0x200004f0 + 66a4: 200004d4 .long 0x200004d4 + 66a8: 20000524 .long 0x20000524 + 66ac: 200009cd .long 0x200009cd + 66b0: 0000cbf2 .long 0x0000cbf2 + +Disassembly of section .text.Get_TouchKey_CH_State: + +000066b4 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 66b4: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 66b6: 3804 cmphsi r0, 5 + 66b8: 0818 bt 0x66e8 // 66e8 + 66ba: 106d lrw r3, 0x200004f0 // 66ec + 66bc: e3ffe720 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 66c0: 0e0b0803 .long 0x0e0b0803 + 66c4: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 66c6: 930a ld.w r0, (r3, 0x28) + 66c8: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 66ca: 3301 movi r3, 1 + U8_T state = 0; + 66cc: 680c and r0, r3 +// } + break; + } + + return state; +} + 66ce: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 66d0: 930a ld.w r0, (r3, 0x28) + 66d2: 480a lsri r0, r0, 10 + 66d4: 07fb br 0x66ca // 66ca + if(g_key.key_state & 0x0800){ + 66d6: 930a ld.w r0, (r3, 0x28) + 66d8: 480b lsri r0, r0, 11 + 66da: 07f8 br 0x66ca // 66ca + if(g_key.key_state & 0x1000){ + 66dc: 930a ld.w r0, (r3, 0x28) + 66de: 480c lsri r0, r0, 12 + 66e0: 07f5 br 0x66ca // 66ca + if(g_key.key_state & 0x2000){ + 66e2: 930a ld.w r0, (r3, 0x28) + 66e4: 480d lsri r0, r0, 13 + 66e6: 07f2 br 0x66ca // 66ca + U8_T state = 0; + 66e8: 3000 movi r0, 0 + 66ea: 07f2 br 0x66ce // 66ce + 66ec: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_RS485_Printf_3: + +000066f0 : +void TouchKey_RS485_Printf_3(void){ + 66f0: 14d4 push r4-r7, r15 + 66f2: 143b subi r14, r14, 108 + send_buff[send_len++] = 0x0D; + 66f4: 1c02 addi r4, r14, 8 + 66f6: 330d movi r3, 13 + 66f8: a460 st.b r3, (r4, 0x0) + send_buff[send_len++] = 0x0A; + 66fa: 330a movi r3, 10 + 66fc: a461 st.b r3, (r4, 0x1) + 66fe: 3600 movi r6, 0 + U16_T trigger_state = 0x00;//触发状态 + 6700: 3500 movi r5, 0 + if(Get_TouchKey_CH_State(i) == 0x01) + 6702: 7418 zextb r0, r6 + 6704: e3ffffd8 bsr 0x66b4 // 66b4 + 6708: 3841 cmpnei r0, 1 + 670a: 0804 bt 0x6712 // 6712 + trigger_state = (trigger_state | (0x01< + send_buff[send_len++] = trigger_state>>8; + 6718: 3300 movi r3, 0 + 671a: a462 st.b r3, (r4, 0x2) + send_buff[send_len++] = trigger_state&0xff; + 671c: a4a3 st.b r5, (r4, 0x3) + i=MCU_Touch_CH[0]; + 671e: 0277 lrw r3, 0x20000068 // 69bc + 6720: 5b42 addi r2, r3, 1 + send_buff[send_len++] = sampling_data0[i]>>8; + 6722: 8361 ld.b r3, (r3, 0x1) + 6724: 4361 lsli r3, r3, 1 + 6726: 02b8 lrw r5, 0x20000bda // 69c0 + 6728: 5d2c addu r1, r5, r3 + i=MCU_Touch_CH[0]; + 672a: b841 st.w r2, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]>>8; + 672c: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 672e: 0219 lrw r0, 0x20000888 // 69c4 + send_buff[send_len++] = sampling_data0[i]>>8; + 6730: 4a48 lsri r2, r2, 8 + 6732: a444 st.b r2, (r4, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 6734: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 6736: 582c addu r1, r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 6738: a445 st.b r2, (r4, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 673a: 8940 ld.h r2, (r1, 0x0) + 673c: 4a48 lsri r2, r2, 8 + 673e: a446 st.b r2, (r4, 0x6) + send_buff[send_len++] = baseline_data0[i]&0xff; + 6740: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 6742: 023d lrw r1, 0x20000b92 // 69c8 + 6744: 604c addu r1, r3 + send_buff[send_len++] = baseline_data0[i]&0xff; + 6746: a447 st.b r2, (r4, 0x7) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 6748: 8940 ld.h r2, (r1, 0x0) + 674a: 4a48 lsri r2, r2, 8 + 674c: a448 st.b r2, (r4, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 674e: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 6750: 0320 lrw r1, 0x20000970 // 69cc + 6752: 604c addu r1, r3 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 6754: a449 st.b r2, (r4, 0x9) + send_buff[send_len++] = sampling_data1[i]>>8; + 6756: 8940 ld.h r2, (r1, 0x0) + 6758: 4a48 lsri r2, r2, 8 + 675a: a44a st.b r2, (r4, 0xa) + send_buff[send_len++] = sampling_data1[i]&0xff; + 675c: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 675e: 0322 lrw r1, 0x20000a32 // 69d0 + 6760: 604c addu r1, r3 + send_buff[send_len++] = sampling_data1[i]&0xff; + 6762: a44b st.b r2, (r4, 0xb) + send_buff[send_len++] = baseline_data1[i]>>8; + 6764: 8940 ld.h r2, (r1, 0x0) + 6766: 4a48 lsri r2, r2, 8 + 6768: a44c st.b r2, (r4, 0xc) + send_buff[send_len++] = baseline_data1[i]&0xff; + 676a: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 676c: 0325 lrw r1, 0x200008f0 // 69d4 + 676e: 604c addu r1, r3 + send_buff[send_len++] = baseline_data1[i]&0xff; + 6770: a44d st.b r2, (r4, 0xd) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 6772: 8940 ld.h r2, (r1, 0x0) + 6774: 4a48 lsri r2, r2, 8 + 6776: a44e st.b r2, (r4, 0xe) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 6778: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 677a: 0327 lrw r1, 0x20000a66 // 69d8 + 677c: 604c addu r1, r3 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 677e: a44f st.b r2, (r4, 0xf) + send_buff[send_len++] = sampling_data2[i]>>8; + 6780: 8940 ld.h r2, (r1, 0x0) + 6782: 4a48 lsri r2, r2, 8 + 6784: a450 st.b r2, (r4, 0x10) + send_buff[send_len++] = sampling_data2[i]&0xff; + 6786: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 6788: 032a lrw r1, 0x20000b48 // 69dc + 678a: 604c addu r1, r3 + send_buff[send_len++] = sampling_data2[i]&0xff; + 678c: a451 st.b r2, (r4, 0x11) + send_buff[send_len++] = baseline_data2[i]>>8; + 678e: 8940 ld.h r2, (r1, 0x0) + 6790: 4a48 lsri r2, r2, 8 + 6792: a452 st.b r2, (r4, 0x12) + send_buff[send_len++] = baseline_data2[i]&0xff; + 6794: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 6796: 032c lrw r1, 0x200008c4 // 69e0 + 6798: 60c4 addu r3, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 679a: a453 st.b r2, (r4, 0x13) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 679c: 8b40 ld.h r2, (r3, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 679e: 8b60 ld.h r3, (r3, 0x0) + 67a0: a475 st.b r3, (r4, 0x15) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 67a2: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 67a4: 9861 ld.w r3, (r14, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 67a6: a454 st.b r2, (r4, 0x14) + send_buff[send_len++] = sampling_data0[i]>>8; + 67a8: 8341 ld.b r2, (r3, 0x1) + 67aa: 4241 lsli r2, r2, 1 + 67ac: 5dc8 addu r6, r5, r2 + 67ae: 8e60 ld.h r3, (r6, 0x0) + 67b0: 4b68 lsri r3, r3, 8 + 67b2: a476 st.b r3, (r4, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + 67b4: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 67b6: 58c8 addu r6, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 67b8: a477 st.b r3, (r4, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 67ba: 8e60 ld.h r3, (r6, 0x0) + 67bc: 4b68 lsri r3, r3, 8 + 67be: a478 st.b r3, (r4, 0x18) + send_buff[send_len++] = baseline_data0[i]&0xff; + 67c0: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 67c2: 03dd lrw r6, 0x20000b92 // 69c8 + 67c4: 6188 addu r6, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 67c6: a479 st.b r3, (r4, 0x19) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 67c8: 8e60 ld.h r3, (r6, 0x0) + 67ca: 4b68 lsri r3, r3, 8 + 67cc: a47a st.b r3, (r4, 0x1a) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 67ce: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 67d0: 13df lrw r6, 0x20000970 // 69cc + 67d2: 6188 addu r6, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 67d4: a47b st.b r3, (r4, 0x1b) + send_buff[send_len++] = sampling_data1[i]>>8; + 67d6: 8e60 ld.h r3, (r6, 0x0) + 67d8: 4b68 lsri r3, r3, 8 + 67da: a47c st.b r3, (r4, 0x1c) + send_buff[send_len++] = sampling_data1[i]&0xff; + 67dc: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 67de: 13dd lrw r6, 0x20000a32 // 69d0 + 67e0: 6188 addu r6, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 67e2: a47d st.b r3, (r4, 0x1d) + send_buff[send_len++] = baseline_data1[i]>>8; + 67e4: 8e60 ld.h r3, (r6, 0x0) + 67e6: 4b68 lsri r3, r3, 8 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 67e8: 13fb lrw r7, 0x200008f0 // 69d4 + 67ea: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]>>8; + 67ec: a47e st.b r3, (r4, 0x1e) + send_buff[send_len++] = baseline_data1[i]&0xff; + 67ee: 8e60 ld.h r3, (r6, 0x0) + 67f0: a47f st.b r3, (r4, 0x1f) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 67f2: 8fc0 ld.h r6, (r7, 0x0) + 67f4: 3320 movi r3, 32 + 67f6: 60d0 addu r3, r4 + 67f8: 4ec8 lsri r6, r6, 8 + 67fa: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 67fc: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 67fe: 13f7 lrw r7, 0x20000a66 // 69d8 + 6800: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 6802: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = sampling_data2[i]>>8; + 6804: 8fc0 ld.h r6, (r7, 0x0) + 6806: 4ec8 lsri r6, r6, 8 + 6808: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = sampling_data2[i]&0xff; + 680a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 680c: 13f4 lrw r7, 0x20000b48 // 69dc + 680e: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 6810: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = baseline_data2[i]>>8; + 6812: 8fc0 ld.h r6, (r7, 0x0) + 6814: 4ec8 lsri r6, r6, 8 + 6816: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 6818: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 681a: 8fc0 ld.h r6, (r7, 0x0) + 681c: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 681e: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 6820: 8a40 ld.h r2, (r2, 0x0) + 6822: a347 st.b r2, (r3, 0x7) + send_buff[send_len++] = sampling_data0[i]>>8; + 6824: 9841 ld.w r2, (r14, 0x4) + 6826: 8242 ld.b r2, (r2, 0x2) + 6828: 4241 lsli r2, r2, 1 + 682a: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 682c: 4ec8 lsri r6, r6, 8 + 682e: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data0[i]>>8; + 6830: 8fc0 ld.h r6, (r7, 0x0) + 6832: 4ec8 lsri r6, r6, 8 + 6834: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = sampling_data0[i]&0xff; + 6836: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 6838: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 683a: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = baseline_data0[i]>>8; + 683c: 8fc0 ld.h r6, (r7, 0x0) + 683e: 4ec8 lsri r6, r6, 8 + 6840: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = baseline_data0[i]&0xff; + 6842: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 6844: 13e1 lrw r7, 0x20000b92 // 69c8 + 6846: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 6848: a3cb st.b r6, (r3, 0xb) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 684a: 8fc0 ld.h r6, (r7, 0x0) + 684c: 4ec8 lsri r6, r6, 8 + 684e: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 6850: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 6852: 12ff lrw r7, 0x20000970 // 69cc + 6854: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 6856: a3cd st.b r6, (r3, 0xd) + send_buff[send_len++] = sampling_data1[i]>>8; + 6858: 8fc0 ld.h r6, (r7, 0x0) + 685a: 4ec8 lsri r6, r6, 8 + 685c: a3ce st.b r6, (r3, 0xe) + send_buff[send_len++] = sampling_data1[i]&0xff; + 685e: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 6860: 12fc lrw r7, 0x20000a32 // 69d0 + 6862: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 6864: a3cf st.b r6, (r3, 0xf) + send_buff[send_len++] = baseline_data1[i]>>8; + 6866: 8fc0 ld.h r6, (r7, 0x0) + 6868: 4ec8 lsri r6, r6, 8 + 686a: a3d0 st.b r6, (r3, 0x10) + send_buff[send_len++] = baseline_data1[i]&0xff; + 686c: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 686e: 12fa lrw r7, 0x200008f0 // 69d4 + 6870: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 6872: a3d1 st.b r6, (r3, 0x11) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 6874: 8fc0 ld.h r6, (r7, 0x0) + 6876: 4ec8 lsri r6, r6, 8 + 6878: a3d2 st.b r6, (r3, 0x12) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 687a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 687c: 12f7 lrw r7, 0x20000a66 // 69d8 + 687e: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 6880: a3d3 st.b r6, (r3, 0x13) + send_buff[send_len++] = sampling_data2[i]>>8; + 6882: 8fc0 ld.h r6, (r7, 0x0) + 6884: 4ec8 lsri r6, r6, 8 + 6886: a3d4 st.b r6, (r3, 0x14) + send_buff[send_len++] = sampling_data2[i]&0xff; + 6888: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 688a: 12f5 lrw r7, 0x20000b48 // 69dc + 688c: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 688e: a3d5 st.b r6, (r3, 0x15) + send_buff[send_len++] = baseline_data2[i]>>8; + 6890: 8fc0 ld.h r6, (r7, 0x0) + 6892: 4ec8 lsri r6, r6, 8 + 6894: a3d6 st.b r6, (r3, 0x16) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 6896: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 6898: 8fc0 ld.h r6, (r7, 0x0) + 689a: a3d7 st.b r6, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 689c: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 689e: 8a40 ld.h r2, (r2, 0x0) + 68a0: a359 st.b r2, (r3, 0x19) + send_buff[send_len++] = sampling_data0[i]>>8; + 68a2: 9841 ld.w r2, (r14, 0x4) + 68a4: 8243 ld.b r2, (r2, 0x3) + 68a6: 4241 lsli r2, r2, 1 + 68a8: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 68aa: 4ec8 lsri r6, r6, 8 + 68ac: a3d8 st.b r6, (r3, 0x18) + send_buff[send_len++] = sampling_data0[i]>>8; + 68ae: 8fc0 ld.h r6, (r7, 0x0) + 68b0: 4ec8 lsri r6, r6, 8 + 68b2: a3da st.b r6, (r3, 0x1a) + send_buff[send_len++] = sampling_data0[i]&0xff; + 68b4: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 68b6: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 68b8: a3db st.b r6, (r3, 0x1b) + send_buff[send_len++] = baseline_data0[i]>>8; + 68ba: 8fc0 ld.h r6, (r7, 0x0) + 68bc: 4ec8 lsri r6, r6, 8 + 68be: a3dc st.b r6, (r3, 0x1c) + send_buff[send_len++] = baseline_data0[i]&0xff; + 68c0: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 68c2: 12e2 lrw r7, 0x20000b92 // 69c8 + 68c4: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 68c6: a3dd st.b r6, (r3, 0x1d) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 68c8: 8fc0 ld.h r6, (r7, 0x0) + 68ca: 4ec8 lsri r6, r6, 8 + 68cc: a3de st.b r6, (r3, 0x1e) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 68ce: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 68d0: 11ff lrw r7, 0x20000970 // 69cc + 68d2: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 68d4: a3df st.b r6, (r3, 0x1f) + send_buff[send_len++] = sampling_data1[i]>>8; + 68d6: 8fc0 ld.h r6, (r7, 0x0) + 68d8: 3340 movi r3, 64 + 68da: 60d0 addu r3, r4 + 68dc: 4ec8 lsri r6, r6, 8 + 68de: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = sampling_data1[i]&0xff; + 68e0: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 68e2: 11fc lrw r7, 0x20000a32 // 69d0 + 68e4: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 68e6: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = baseline_data1[i]>>8; + 68e8: 8fc0 ld.h r6, (r7, 0x0) + 68ea: 4ec8 lsri r6, r6, 8 + 68ec: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = baseline_data1[i]&0xff; + 68ee: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 68f0: 11f9 lrw r7, 0x200008f0 // 69d4 + 68f2: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 68f4: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 68f6: 8fc0 ld.h r6, (r7, 0x0) + 68f8: 4ec8 lsri r6, r6, 8 + 68fa: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 68fc: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 68fe: 11f7 lrw r7, 0x20000a66 // 69d8 + 6900: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 6902: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = sampling_data2[i]>>8; + 6904: 8fc0 ld.h r6, (r7, 0x0) + 6906: 4ec8 lsri r6, r6, 8 + 6908: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data2[i]&0xff; + 690a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 690c: 11f4 lrw r7, 0x20000b48 // 69dc + 690e: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 6910: a3c7 st.b r6, (r3, 0x7) + send_buff[send_len++] = baseline_data2[i]>>8; + 6912: 8fc0 ld.h r6, (r7, 0x0) + 6914: 4ec8 lsri r6, r6, 8 + 6916: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 6918: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 691a: 8fc0 ld.h r6, (r7, 0x0) + 691c: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 691e: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 6920: 8a40 ld.h r2, (r2, 0x0) + 6922: a34b st.b r2, (r3, 0xb) + send_buff[send_len++] = sampling_data0[i]>>8; + 6924: 9841 ld.w r2, (r14, 0x4) + 6926: 8244 ld.b r2, (r2, 0x4) + 6928: 4241 lsli r2, r2, 1 + 692a: 6148 addu r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 692c: 4ec8 lsri r6, r6, 8 + 692e: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = sampling_data0[i]>>8; + 6930: 8dc0 ld.h r6, (r5, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 6932: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data0[i]>>8; + 6934: 4ec8 lsri r6, r6, 8 + send_buff[send_len++] = sampling_data0[i]&0xff; + 6936: 8da0 ld.h r5, (r5, 0x0) + send_buff[send_len++] = sampling_data0[i]>>8; + 6938: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = sampling_data0[i]&0xff; + 693a: a3ad st.b r5, (r3, 0xd) + send_buff[send_len++] = baseline_data0[i]>>8; + 693c: 88a0 ld.h r5, (r0, 0x0) + 693e: 4da8 lsri r5, r5, 8 + 6940: a3ae st.b r5, (r3, 0xe) + send_buff[send_len++] = baseline_data0[i]&0xff; + 6942: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 6944: 11a1 lrw r5, 0x20000b92 // 69c8 + 6946: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 6948: a30f st.b r0, (r3, 0xf) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 694a: 8d00 ld.h r0, (r5, 0x0) + 694c: 4808 lsri r0, r0, 8 + 694e: a310 st.b r0, (r3, 0x10) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 6950: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 6952: 10bf lrw r5, 0x20000970 // 69cc + 6954: 6148 addu r5, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 6956: a311 st.b r0, (r3, 0x11) + send_buff[send_len++] = sampling_data1[i]>>8; + 6958: 8d00 ld.h r0, (r5, 0x0) + 695a: 4808 lsri r0, r0, 8 + 695c: a312 st.b r0, (r3, 0x12) + send_buff[send_len++] = sampling_data1[i]&0xff; + 695e: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 6960: 10bc lrw r5, 0x20000a32 // 69d0 + 6962: 6148 addu r5, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 6964: a313 st.b r0, (r3, 0x13) + send_buff[send_len++] = baseline_data1[i]>>8; + 6966: 8d00 ld.h r0, (r5, 0x0) + 6968: 4808 lsri r0, r0, 8 + 696a: a314 st.b r0, (r3, 0x14) + send_buff[send_len++] = baseline_data1[i]&0xff; + 696c: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 696e: 10ba lrw r5, 0x200008f0 // 69d4 + 6970: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 6972: a315 st.b r0, (r3, 0x15) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 6974: 8d00 ld.h r0, (r5, 0x0) + 6976: 4808 lsri r0, r0, 8 + 6978: a316 st.b r0, (r3, 0x16) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 697a: 8d00 ld.h r0, (r5, 0x0) + 697c: a317 st.b r0, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 697e: 6048 addu r1, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 6980: 1016 lrw r0, 0x20000a66 // 69d8 + 6982: 6008 addu r0, r2 + 6984: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = sampling_data2[i]&0xff; + 6986: 8800 ld.h r0, (r0, 0x0) + 6988: a319 st.b r0, (r3, 0x19) + send_buff[send_len++] = sampling_data2[i]>>8; + 698a: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = baseline_data2[i]>>8; + 698c: 1014 lrw r0, 0x20000b48 // 69dc + 698e: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 6990: a3b8 st.b r5, (r3, 0x18) + send_buff[send_len++] = baseline_data2[i]>>8; + 6992: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data2[i]&0xff; + 6994: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 6996: 8940 ld.h r2, (r1, 0x0) + 6998: 4a48 lsri r2, r2, 8 + 699a: a35c st.b r2, (r3, 0x1c) + send_buff[send_len++] = baseline_data2[i]>>8; + 699c: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 699e: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 69a0: a3ba st.b r5, (r3, 0x1a) + send_buff[send_len++] = baseline_data2[i]&0xff; + 69a2: a31b st.b r0, (r3, 0x1b) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 69a4: a35d st.b r2, (r3, 0x1d) + Set_GroupSend(send_buff,send_len,1,BUSSend_ValidTime3,20); //组包 + 69a6: 3314 movi r3, 20 + 69a8: b860 st.w r3, (r14, 0x0) + 69aa: 3396 movi r3, 150 + 69ac: 4361 lsli r3, r3, 1 + 69ae: 3201 movi r2, 1 + 69b0: 315e movi r1, 94 + 69b2: 6c13 mov r0, r4 + 69b4: e3fffd9c bsr 0x64ec // 64ec +} + 69b8: 141b addi r14, r14, 108 + 69ba: 1494 pop r4-r7, r15 + 69bc: 20000068 .long 0x20000068 + 69c0: 20000bda .long 0x20000bda + 69c4: 20000888 .long 0x20000888 + 69c8: 20000b92 .long 0x20000b92 + 69cc: 20000970 .long 0x20000970 + 69d0: 20000a32 .long 0x20000a32 + 69d4: 200008f0 .long 0x200008f0 + 69d8: 20000a66 .long 0x20000a66 + 69dc: 20000b48 .long 0x20000b48 + 69e0: 200008c4 .long 0x200008c4 + +Disassembly of section .text.Touch_Key_Event_Handling: + +000069e4 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 69e4: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 69e6: 118a lrw r4, 0x200004f0 // 6a8c + 69e8: 8465 ld.b r3, (r4, 0x5) + 69ea: 3b42 cmpnei r3, 2 + 69ec: 081c bt 0x6a24 // 6a24 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 69ee: 3300 movi r3, 0 + 69f0: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 69f2: 8466 ld.b r3, (r4, 0x6) + 69f4: 3b42 cmpnei r3, 2 + 69f6: 0820 bt 0x6a36 // 6a36 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 69f8: 3300 movi r3, 0 + 69fa: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 69fc: 8467 ld.b r3, (r4, 0x7) + 69fe: 3b42 cmpnei r3, 2 + 6a00: 0824 bt 0x6a48 // 6a48 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 6a02: 3300 movi r3, 0 + 6a04: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 6a06: e0001637 bsr 0x9674 // 9674 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 6a0a: 8468 ld.b r3, (r4, 0x8) + 6a0c: 3b42 cmpnei r3, 2 + 6a0e: 0829 bt 0x6a60 // 6a60 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 6a10: 3300 movi r3, 0 + 6a12: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 6a14: e00016e8 bsr 0x97e4 // 97e4 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 6a18: 8469 ld.b r3, (r4, 0x9) + 6a1a: 3b42 cmpnei r3, 2 + 6a1c: 082e bt 0x6a78 // 6a78 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 6a1e: 3300 movi r3, 0 + 6a20: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 6a22: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a24: 3b44 cmpnei r3, 4 + 6a26: 0fe4 bf 0x69ee // 69ee + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 6a28: 3b41 cmpnei r3, 1 + 6a2a: 0be4 bt 0x69f2 // 69f2 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 6a2c: 3300 movi r3, 0 + 6a2e: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 6a30: e00014d6 bsr 0x93dc // 93dc + 6a34: 07df br 0x69f2 // 69f2 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a36: 3b44 cmpnei r3, 4 + 6a38: 0fe0 bf 0x69f8 // 69f8 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 6a3a: 3b41 cmpnei r3, 1 + 6a3c: 0be0 bt 0x69fc // 69fc + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 6a3e: 3300 movi r3, 0 + 6a40: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 6a42: e0001533 bsr 0x94a8 // 94a8 + 6a46: 07db br 0x69fc // 69fc + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a48: 3b44 cmpnei r3, 4 + 6a4a: 0804 bt 0x6a52 // 6a52 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 6a4c: 3300 movi r3, 0 + 6a4e: a467 st.b r3, (r4, 0x7) + 6a50: 07dd br 0x6a0a // 6a0a + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 6a52: 3b41 cmpnei r3, 1 + 6a54: 0bdb bt 0x6a0a // 6a0a + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 6a56: 3300 movi r3, 0 + 6a58: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 6a5a: e000158d bsr 0x9574 // 9574 + 6a5e: 07d6 br 0x6a0a // 6a0a + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a60: 3b44 cmpnei r3, 4 + 6a62: 0804 bt 0x6a6a // 6a6a + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 6a64: 3300 movi r3, 0 + 6a66: a468 st.b r3, (r4, 0x8) + 6a68: 07d8 br 0x6a18 // 6a18 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 6a6a: 3b41 cmpnei r3, 1 + 6a6c: 0bd6 bt 0x6a18 // 6a18 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 6a6e: 3300 movi r3, 0 + 6a70: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 6a72: e0001639 bsr 0x96e4 // 96e4 + 6a76: 07d1 br 0x6a18 // 6a18 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 6a78: 3b44 cmpnei r3, 4 + 6a7a: 0fd2 bf 0x6a1e // 6a1e + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 6a7c: 3b41 cmpnei r3, 1 + 6a7e: 0bd2 bt 0x6a22 // 6a22 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 6a80: 3300 movi r3, 0 + 6a82: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 6a84: e00016e8 bsr 0x9854 // 9854 +} + 6a88: 07cd br 0x6a22 // 6a22 + 6a8a: 0000 bkpt + 6a8c: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +00006a90 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 6a90: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 6a92: 106c lrw r3, 0x20000868 // 6ac0 + 6a94: 8340 ld.b r2, (r3, 0x0) + 6a96: 3a41 cmpnei r2, 1 + 6a98: 0c04 bf 0x6aa0 // 6aa0 + 6a9a: 8362 ld.b r3, (r3, 0x2) + 6a9c: 3b45 cmpnei r3, 5 + 6a9e: 0c10 bf 0x6abe // 6abe + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 6aa0: 1069 lrw r3, 0x200004f0 // 6ac4 + 6aa2: 835b ld.b r2, (r3, 0x1b) + 6aa4: 3a41 cmpnei r2, 1 + 6aa6: 080c bt 0x6abe // 6abe + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 6aa8: 1028 lrw r1, 0x200000c0 // 6ac8 + 6aaa: 9140 ld.w r2, (r1, 0x0) + 6aac: 930c ld.w r0, (r3, 0x30) + 6aae: 6082 subu r2, r0 + 6ab0: 3095 movi r0, 149 + 6ab2: 6480 cmphs r0, r2 + 6ab4: 0805 bt 0x6abe // 6abe + g_key.key_dug_tick = SysTick_1ms; + 6ab6: 9140 ld.w r2, (r1, 0x0) + 6ab8: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + //TouchKey_RS485_Printf(); + //TouchKey_RS485_Printf_2(); + TouchKey_RS485_Printf_3(); + 6aba: e3fffe1b bsr 0x66f0 // 66f0 + + } + } +} + 6abe: 1490 pop r15 + 6ac0: 20000868 .long 0x20000868 + 6ac4: 200004f0 .long 0x200004f0 + 6ac8: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Touch_Key_Task: + +00006acc : +void Touch_Key_Task(void){ + 6acc: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 6ace: 113b lrw r1, 0x200000c0 // 6bb8 + 6ad0: 117b lrw r3, 0x200004f0 // 6bbc + 6ad2: 9140 ld.w r2, (r1, 0x0) + 6ad4: 930b ld.w r0, (r3, 0x2c) + 6ad6: 6082 subu r2, r0 + 6ad8: 3a04 cmphsi r2, 5 + 6ada: 0806 bt 0x6ae6 // 6ae6 + break; + } + } + } + + Touch_Key_Event_Handling(); + 6adc: e3ffff84 bsr 0x69e4 // 69e4 + + TouchKey_Set_Interface_Task(); + 6ae0: e3ffffd8 bsr 0x6a90 // 6a90 + +} + 6ae4: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 6ae6: 9140 ld.w r2, (r1, 0x0) + 6ae8: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 6aea: 1136 lrw r1, 0x20000a28 // 6bc0 + 6aec: 9140 ld.w r2, (r1, 0x0) + 6aee: 3a40 cmpnei r2, 0 + 6af0: 0c02 bf 0x6af4 // 6af4 + g_key.key_state = Key_Map; + 6af2: 9140 ld.w r2, (r1, 0x0) + 6af4: 11d2 lrw r6, 0x200004f0 // 6bbc +void Touch_Key_Task(void){ + 6af6: 6d5b mov r5, r6 + g_key.key_state = Key_Map; + 6af8: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 6afa: 3400 movi r4, 0 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 6afc: 11f2 lrw r7, 0x200005e0 // 6bc4 + switch (g_key.KEY_STA[i]) { + 6afe: 8640 ld.b r2, (r6, 0x0) + 6b00: 3a41 cmpnei r2, 1 + 6b02: 0c2e bf 0x6b5e // 6b5e + 6b04: 3a40 cmpnei r2, 0 + 6b06: 0c0a bf 0x6b1a // 6b1a + 6b08: 3a42 cmpnei r2, 2 + 6b0a: 0c48 bf 0x6b9a // 6b9a + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 6b0c: 2400 addi r4, 1 + 6b0e: 7510 zextb r4, r4 + 6b10: 3c45 cmpnei r4, 5 + 6b12: 2600 addi r6, 1 + 6b14: 2501 addi r5, 2 + 6b16: 0bf4 bt 0x6afe // 6afe + 6b18: 07e2 br 0x6adc // 6adc + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 6b1a: 6c13 mov r0, r4 + 6b1c: e3fffdcc bsr 0x66b4 // 66b4 + 6b20: 3841 cmpnei r0, 1 + 6b22: 0819 bt 0x6b54 // 6b54 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 6b24: 8654 ld.b r2, (r6, 0x14) + 6b26: 3a01 cmphsi r2, 2 + 6b28: 0804 bt 0x6b30 // 6b30 + g_key.delayCnt[i]++; + 6b2a: 2200 addi r2, 1 + 6b2c: a654 st.b r2, (r6, 0x14) + 6b2e: 07ef br 0x6b0c // 6b0c + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 6b30: 8745 ld.b r2, (r7, 0x5) + 6b32: 3a41 cmpnei r2, 1 + 6b34: 0c03 bf 0x6b3a // 6b3a + 6b36: 3c44 cmpnei r4, 4 + 6b38: 0804 bt 0x6b40 // 6b40 + Controlled_Buzzer(0x01); + 6b3a: 3001 movi r0, 1 + 6b3c: e0000f5c bsr 0x89f4 // 89f4 + Contol_Switch_ClickAction(i,Control_ON); + 6b40: 3101 movi r1, 1 + 6b42: 6c13 mov r0, r4 + 6b44: e00009ae bsr 0x7ea0 // 7ea0 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 6b48: 3301 movi r3, 1 + 6b4a: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 6b4c: 3300 movi r3, 0 + 6b4e: ad6e st.h r3, (r5, 0x1c) + g_key.delayCnt[i] = 0; + 6b50: a674 st.b r3, (r6, 0x14) + 6b52: 07dd br 0x6b0c // 6b0c + g_key.delayCnt[i] = 0; + 6b54: 3300 movi r3, 0 + 6b56: a674 st.b r3, (r6, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 6b58: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 6b5a: a665 st.b r3, (r6, 0x5) + 6b5c: 07d8 br 0x6b0c // 6b0c + g_key.key_time[i]++; + 6b5e: 8d4e ld.h r2, (r5, 0x1c) + 6b60: 2200 addi r2, 1 + 6b62: 7489 zexth r2, r2 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 6b64: 1079 lrw r3, 0x257 // 6bc8 + 6b66: 648c cmphs r3, r2 + g_key.key_time[i]++; + 6b68: ad4e st.h r2, (r5, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 6b6a: 0c10 bf 0x6b8a // 6b8a + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 6b6c: 6c13 mov r0, r4 + 6b6e: e3fffda3 bsr 0x66b4 // 66b4 + 6b72: 3840 cmpnei r0, 0 + 6b74: 0bcc bt 0x6b0c // 6b0c + Contol_Switch_ClickAction(i,Control_OFF); + 6b76: 3102 movi r1, 2 + 6b78: 6c13 mov r0, r4 + 6b7a: e0000993 bsr 0x7ea0 // 7ea0 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 6b7e: 3301 movi r3, 1 + 6b80: a665 st.b r3, (r6, 0x5) + g_key.key_time[i] = 0; + 6b82: 3300 movi r3, 0 + 6b84: ad6e st.h r3, (r5, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 6b86: a660 st.b r3, (r6, 0x0) + 6b88: 07c2 br 0x6b0c // 6b0c + g_key.KEY_STA[i] = KEY_STA_S2; + 6b8a: 3302 movi r3, 2 + 6b8c: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 6b8e: 3300 movi r3, 0 + 6b90: ad6e st.h r3, (r5, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 6b92: 3303 movi r3, 3 + 6b94: a66f st.b r3, (r6, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 6b96: 3302 movi r3, 2 + 6b98: 07e1 br 0x6b5a // 6b5a + g_key.key_longPress[i] = KEY_VAL_NOT; + 6b9a: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 6b9c: 6c13 mov r0, r4 + g_key.key_longPress[i] = KEY_VAL_NOT; + 6b9e: a66f st.b r3, (r6, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 6ba0: e3fffd8a bsr 0x66b4 // 66b4 + 6ba4: 3840 cmpnei r0, 0 + 6ba6: 0bb3 bt 0x6b0c // 6b0c + Contol_Switch_ClickAction(i,Control_OFF); + 6ba8: 3102 movi r1, 2 + 6baa: 6c13 mov r0, r4 + 6bac: e000097a bsr 0x7ea0 // 7ea0 + g_key.KEY_STA[i] = KEY_STA_S0; + 6bb0: 3300 movi r3, 0 + 6bb2: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 6bb4: 3304 movi r3, 4 + 6bb6: 07d2 br 0x6b5a // 6b5a + 6bb8: 200000c0 .long 0x200000c0 + 6bbc: 200004f0 .long 0x200004f0 + 6bc0: 20000a28 .long 0x20000a28 + 6bc4: 200005e0 .long 0x200005e0 + 6bc8: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00006bcc : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 6bcc: 6040 addu r1, r0 + U8_T data_sum = 0; + 6bce: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 6bd4: 6cce nor r3, r3 + 6bd6: 740c zextb r0, r3 +} + 6bd8: 783c jmp r15 + data_sum += data[i]; + 6bda: 8040 ld.b r2, (r0, 0x0) + 6bdc: 60c8 addu r3, r2 + 6bde: 74cc zextb r3, r3 + 6be0: 2000 addi r0, 1 + 6be2: 07f7 br 0x6bd0 // 6bd0 + +Disassembly of section .text.TouchKey_Comm_Reply: + +00006be4 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 6be4: 14d2 push r4-r5, r15 + 6be6: 1430 subi r14, r14, 64 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 6be8: 5992 addi r4, r1, 5 + 6bea: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 6bec: 3331 movi r3, 49 + 6bee: 650c cmphs r3, r4 + 6bf0: 0803 bt 0x6bf6 // 6bf6 + para_len = 44; + 6bf2: 312c movi r1, 44 + reply_len = 50; + 6bf4: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 6bf6: 3300 movi r3, 0 + 6bf8: 2b50 subi r3, 81 + 6bfa: dc6e0004 st.b r3, (r14, 0x4) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 6bfe: dc8e0006 st.b r4, (r14, 0x6) + send_data[1] = g_eeprom.dev_addr; + 6c02: 1074 lrw r3, 0x20000524 // 6c50 + 6c04: 8360 ld.b r3, (r3, 0x0) + 6c06: dc6e0005 st.b r3, (r14, 0x5) + send_data[3] = 0x00; + 6c0a: 3300 movi r3, 0 + 6c0c: dc6e0007 st.b r3, (r14, 0x7) + + for(i=0;i + } + send_data[i+4] = 0xFA; + 6c18: 60c8 addu r3, r2 + 6c1a: 3200 movi r2, 0 + 6c1c: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 6c1e: 6c53 mov r1, r4 + 6c20: 1801 addi r0, r14, 4 + send_data[i+4] = 0xFA; + 6c22: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 6c24: e3ffffd4 bsr 0x6bcc // 6bcc + +// if (detect_inf.control_model == 0x00){ +// MCU485_SendData(send_data,reply_len); + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 6c28: 3314 movi r3, 20 + 6c2a: b860 st.w r3, (r14, 0x0) + 6c2c: 3396 movi r3, 150 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 6c2e: dc0e0007 st.b r0, (r14, 0x7) + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 6c32: 4361 lsli r3, r3, 1 + 6c34: 1801 addi r0, r14, 4 + 6c36: 3201 movi r2, 1 + 6c38: 6c53 mov r1, r4 + 6c3a: e3fffc59 bsr 0x64ec // 64ec +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 6c3e: 1410 addi r14, r14, 64 + 6c40: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 6c42: 58ac addu r5, r0, r3 + 6c44: 608c addu r2, r3 + 6c46: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 6c50: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00006c54 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 6c54: 14d4 push r4-r7, r15 + 6c56: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 6c58: 80a0 ld.b r5, (r0, 0x0) + 6c5a: 5dc3 subi r6, r5, 1 + 6c5c: 7598 zextb r6, r6 + 6c5e: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 6c60: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 6c62: 0834 bt 0x6cca // 6cca + 6c64: 1125 lrw r1, 0x200004d4 // 6cf8 + 6c66: 350b movi r5, 11 + 6c68: 5862 addi r3, r0, 1 + 6c6a: 6140 addu r5, r0 + 6c6c: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 6c8a: 8479 ld.b r3, (r4, 0x19) + 6c8c: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 6c8e: 847a ld.b r3, (r4, 0x1a) + 6c90: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 6c92: 847b ld.b r3, (r4, 0x1b) + 6c94: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 6c96: 847c ld.b r3, (r4, 0x1c) + 6c98: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6c9a: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 6c9c: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6c9e: 1037 lrw r1, 0x200004d4 // 6cf8 + touch_para.longpress_time = para[29]; + 6ca0: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6ca2: e0000315 bsr 0x72cc // 72cc + + if(rev == 0x00){ + 6ca6: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 6ca8: 6d43 mov r5, r0 + if(rev == 0x00){ + 6caa: 0805 bt 0x6cb4 // 6cb4 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 6cac: 1033 lrw r1, 0x200004d4 // 6cf8 + 6cae: 6c1b mov r0, r6 + 6cb0: e0000282 bsr 0x71b4 // 71b4 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 6cb4: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 6cb6: 3102 movi r1, 2 + 6cb8: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 6cba: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 6cbe: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 6cc2: e3ffff91 bsr 0x6be4 // 6be4 +} + 6cc6: 1401 addi r14, r14, 4 + 6cc8: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 6cca: 3d40 cmpnei r5, 0 + 6ccc: 0c03 bf 0x6cd2 // 6cd2 + rev = 0x01; + 6cce: 3501 movi r5, 1 + 6cd0: 07f2 br 0x6cb4 // 6cb4 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 6cd2: 8061 ld.b r3, (r0, 0x1) + 6cd4: 104a lrw r2, 0xc72c // 6cfc + 6cd6: 102b lrw r1, 0xcc1f // 6d00 + 6cd8: 3000 movi r0, 0 + 6cda: e3fffcb1 bsr 0x663c // 663c + if( (para[1] > 0) && (para[1] <= 3) ){ + 6cde: 8461 ld.b r3, (r4, 0x1) + 6ce0: 2b00 subi r3, 1 + 6ce2: 74cc zextb r3, r3 + 6ce4: 3b02 cmphsi r3, 3 + 6ce6: 0bf4 bt 0x6cce // 6cce + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 6ce8: 1047 lrw r2, 0x20000868 // 6d04 + g_eeprom.key_sens_level = para[1] - 1; + 6cea: 1008 lrw r0, 0x20000524 // 6d08 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 6cec: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 6cee: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 6cf0: e00001be bsr 0x706c // 706c + 6cf4: 07e0 br 0x6cb4 // 6cb4 + 6cf6: 0000 bkpt + 6cf8: 200004d4 .long 0x200004d4 + 6cfc: 0000c72c .long 0x0000c72c + 6d00: 0000cc1f .long 0x0000cc1f + 6d04: 20000868 .long 0x20000868 + 6d08: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00006d0c : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 6d0c: 14d3 push r4-r6, r15 + 6d0e: 142d subi r14, r14, 52 + 6d10: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 6d12: 3232 movi r2, 50 + 6d14: 3100 movi r1, 0 + 6d16: 6c3b mov r0, r14 + 6d18: e3ffea42 bsr 0x419c // 419c <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 6d1c: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 6d1e: 3302 movi r3, 2 + if(para[0] == 0x00){ + 6d20: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 6d22: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 6d26: 0837 bt 0x6d94 // 6d94 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 6d28: 11d5 lrw r6, 0x20000524 // 6dfc + 6d2a: 8605 ld.b r0, (r6, 0x5) + 6d2c: 1135 lrw r1, 0x200004d4 // 6e00 + 6d2e: e0000279 bsr 0x7220 // 7220 + if(rev != 0x00){ + 6d32: 3840 cmpnei r0, 0 + 6d34: 11b3 lrw r5, 0x200004d4 // 6e00 + 6d36: 0c05 bf 0x6d40 // 6d40 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 6d38: 8605 ld.b r0, (r6, 0x5) + 6d3a: 6c57 mov r1, r5 + 6d3c: e0000336 bsr 0x73a8 // 73a8 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 6d40: 8665 ld.b r3, (r6, 0x5) + 6d42: 2300 addi r3, 1 + 6d44: dc6e0001 st.b r3, (r14, 0x1) + 6d48: 6cfb mov r3, r14 + 6d4a: 114e lrw r2, 0x200004d4 // 6e00 + + for(i=0;i> 8; + 6d52: 4928 lsri r1, r1, 8 + 6d54: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 6d5e: 4928 lsri r1, r1, 8 + 6d60: a32f st.b r1, (r3, 0xf) + 6d62: 2201 addi r2, 2 + 6d64: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 6d68: 8560 ld.b r3, (r5, 0x0) + 6d6a: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 6d6e: 8561 ld.b r3, (r5, 0x1) + 6d70: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 6d74: 8562 ld.b r3, (r5, 0x2) + 6d76: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 6d7a: 8563 ld.b r3, (r5, 0x3) + 6d7c: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 6d80: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 6d82: dc6e001e st.b r3, (r14, 0x1e) + 6d86: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 6d88: 7445 zexth r1, r1 + 6d8a: 6c3b mov r0, r14 + 6d8c: e3ffff2c bsr 0x6be4 // 6be4 +} + 6d90: 140d addi r14, r14, 52 + 6d92: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 6d94: 3c03 cmphsi r4, 4 + 6d96: 0831 bt 0x6df8 // 6df8 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 6d98: 2c00 subi r4, 1 + 6d9a: 7410 zextb r0, r4 + 6d9c: 1039 lrw r1, 0x200004d4 // 6e00 + 6d9e: e0000241 bsr 0x7220 // 7220 + if(rev != 0x00){ + 6da2: 3840 cmpnei r0, 0 + 6da4: 1097 lrw r4, 0x200004d4 // 6e00 + 6da6: 0c07 bf 0x6db4 // 6db4 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 6da8: 8500 ld.b r0, (r5, 0x0) + 6daa: 2800 subi r0, 1 + 6dac: 7400 zextb r0, r0 + 6dae: 6c53 mov r1, r4 + 6db0: e00002fc bsr 0x73a8 // 73a8 + reply_buff[reply_len++] = para[0]; + 6db4: 8560 ld.b r3, (r5, 0x0) + 6db6: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 6dbe: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 6dc0: 8902 ld.h r0, (r1, 0x4) + 6dc2: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 6dc6: 4808 lsri r0, r0, 8 + 6dc8: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 6dd2: 4808 lsri r0, r0, 8 + 6dd4: a30f st.b r0, (r3, 0xf) + 6dd6: 2101 addi r1, 2 + 6dd8: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 6ddc: 8460 ld.b r3, (r4, 0x0) + 6dde: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 6de2: 8461 ld.b r3, (r4, 0x1) + 6de4: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 6de8: 8462 ld.b r3, (r4, 0x2) + 6dea: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 6dee: 8463 ld.b r3, (r4, 0x3) + 6df0: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 6df4: 8478 ld.b r3, (r4, 0x18) + 6df6: 07c6 br 0x6d82 // 6d82 + reply_buff[reply_len++] = 0x00; + 6df8: 3102 movi r1, 2 + 6dfa: 07c7 br 0x6d88 // 6d88 + 6dfc: 20000524 .long 0x20000524 + 6e00: 200004d4 .long 0x200004d4 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +00006e04 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 6e04: 14d0 push r15 + 6e06: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 6e08: 8060 ld.b r3, (r0, 0x0) + 6e0a: 3b41 cmpnei r3, 1 + 6e0c: 0810 bt 0x6e2c // 6e2c + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 6e0e: 106b lrw r3, 0x200004f0 // 6e38 + 6e10: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 6e12: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 6e14: 3303 movi r3, 3 + 6e16: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 6e1a: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 6e1c: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 6e1e: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 6e20: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 6e24: e3fffee0 bsr 0x6be4 // 6be4 +} + 6e28: 1401 addi r14, r14, 4 + 6e2a: 1490 pop r15 + }else if(para[0] == 0x02){ + 6e2c: 3b42 cmpnei r3, 2 + 6e2e: 0bf3 bt 0x6e14 // 6e14 + g_key.key_dug_printf = 0x00; + 6e30: 1062 lrw r3, 0x200004f0 // 6e38 + 6e32: 3200 movi r2, 0 + 6e34: 07ef br 0x6e12 // 6e12 + 6e36: 0000 bkpt + 6e38: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00006e3c : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 6e3c: 14d0 push r15 + 6e3e: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e40: 1149 lrw r2, 0x20000bda // 6ee4 + reply_buff[reply_len++] = 0x04; //CMD + 6e42: 3304 movi r3, 4 + 6e44: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e48: 8a69 ld.h r3, (r2, 0x12) + 6e4a: 4b68 lsri r3, r3, 8 + 6e4c: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e50: 8a69 ld.h r3, (r2, 0x12) + 6e52: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 6e56: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e58: 1164 lrw r3, 0x20000888 // 6ee8 + 6e5a: 8b29 ld.h r1, (r3, 0x12) + 6e5c: 4928 lsri r1, r1, 8 + 6e5e: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e62: 8b29 ld.h r1, (r3, 0x12) + 6e64: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e68: 8a2a ld.h r1, (r2, 0x14) + 6e6a: 4928 lsri r1, r1, 8 + 6e6c: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e70: 8a2a ld.h r1, (r2, 0x14) + 6e72: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e76: 8b2a ld.h r1, (r3, 0x14) + 6e78: 4928 lsri r1, r1, 8 + 6e7a: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e7e: 8b2a ld.h r1, (r3, 0x14) + 6e80: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6e84: 8a2b ld.h r1, (r2, 0x16) + 6e86: 4928 lsri r1, r1, 8 + 6e88: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6e8c: 8a2b ld.h r1, (r2, 0x16) + 6e8e: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6e92: 8b2b ld.h r1, (r3, 0x16) + 6e94: 4928 lsri r1, r1, 8 + 6e96: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6e9a: 8b2b ld.h r1, (r3, 0x16) + 6e9c: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6ea0: 8a2c ld.h r1, (r2, 0x18) + 6ea2: 4928 lsri r1, r1, 8 + 6ea4: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6ea8: 8a2c ld.h r1, (r2, 0x18) + 6eaa: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6eae: 8b2c ld.h r1, (r3, 0x18) + 6eb0: 4928 lsri r1, r1, 8 + 6eb2: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6eb6: 8b2c ld.h r1, (r3, 0x18) + 6eb8: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6ebc: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 6ebe: 8a4d ld.h r2, (r2, 0x1a) + 6ec0: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6ec4: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6ec6: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 6ec8: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6ecc: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6ece: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 6ed0: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 6ed2: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 6ed6: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 6eda: e3fffe85 bsr 0x6be4 // 6be4 +} + 6ede: 140d addi r14, r14, 52 + 6ee0: 1490 pop r15 + 6ee2: 0000 bkpt + 6ee4: 20000bda .long 0x20000bda + 6ee8: 20000888 .long 0x20000888 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00006eec : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 6eec: 14d0 push r15 + 6eee: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 6ef0: 3305 movi r3, 5 + 6ef2: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 6ef6: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 6ef8: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 6efa: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 6efc: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 6f00: e3fffe72 bsr 0x6be4 // 6be4 + 6f04: 0400 br 0x6f04 // 6f04 + +Disassembly of section .text.TouchKey_Comm_Processing: + +00006f08 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 6f08: 14d2 push r4-r5, r15 + 6f0a: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 6f0c: 8060 ld.b r3, (r0, 0x0) + 6f0e: 32af movi r2, 175 + 6f10: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 6f12: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 6f14: 0c09 bf 0x6f26 // 6f26 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 6f16: 3000 movi r0, 0 + 6f18: 114b lrw r2, 0xc748 // 6fc4 + 6f1a: 112c lrw r1, 0xcc2f // 6fc8 + 6f1c: e3fffb90 bsr 0x663c // 663c + return 0x01; + 6f20: 3001 movi r0, 1 + break; + } + + + return 0; +} + 6f22: 1401 addi r14, r14, 4 + 6f24: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 6f26: 114a lrw r2, 0x20000524 // 6fcc + 6f28: 8061 ld.b r3, (r0, 0x1) + 6f2a: 8240 ld.b r2, (r2, 0x0) + 6f2c: 64ca cmpne r2, r3 + 6f2e: 0c08 bf 0x6f3e // 6f3e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 6f30: 3000 movi r0, 0 + 6f32: 1145 lrw r2, 0xc748 // 6fc4 + 6f34: 1127 lrw r1, 0xcc41 // 6fd0 + 6f36: e3fffb83 bsr 0x663c // 663c + return 0x02; + 6f3a: 3002 movi r0, 2 + 6f3c: 07f3 br 0x6f22 // 6f22 + if(data[2] != len){ + 6f3e: 8062 ld.b r3, (r0, 0x2) + 6f40: 750d zexth r4, r3 + 6f42: 6452 cmpne r4, r1 + 6f44: 0c09 bf 0x6f56 // 6f56 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 6f46: b820 st.w r1, (r14, 0x0) + 6f48: 105f lrw r2, 0xc748 // 6fc4 + 6f4a: 1123 lrw r1, 0xcc52 // 6fd4 + 6f4c: 3000 movi r0, 0 + 6f4e: e3fffb77 bsr 0x663c // 663c + return 0x03; + 6f52: 3003 movi r0, 3 + 6f54: 07e7 br 0x6f22 // 6f22 + if(data[len-1] != 0xFA){ + 6f56: 60c0 addu r3, r0 + 6f58: 2b00 subi r3, 1 + 6f5a: 8360 ld.b r3, (r3, 0x0) + 6f5c: 32fa movi r2, 250 + 6f5e: 648e cmpne r3, r2 + 6f60: 0c07 bf 0x6f6e // 6f6e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 6f62: 1059 lrw r2, 0xc748 // 6fc4 + 6f64: 103d lrw r1, 0xcc65 // 6fd8 + 6f66: 3000 movi r0, 0 + 6f68: e3fffb6a bsr 0x663c // 663c + 6f6c: 07f3 br 0x6f52 // 6f52 + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 6f6e: 5c23 subi r1, r4, 1 + 6f70: 7445 zexth r1, r1 + 6f72: e3fffe2d bsr 0x6bcc // 6bcc + 6f76: 3840 cmpnei r0, 0 + 6f78: 0806 bt 0x6f84 // 6f84 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 6f7a: 1053 lrw r2, 0xc748 // 6fc4 + 6f7c: 1038 lrw r1, 0xcc75 // 6fdc + 6f7e: e3fffb5f bsr 0x663c // 663c + 6f82: 07e8 br 0x6f52 // 6f52 + switch(data[4]){ + 6f84: 8504 ld.b r0, (r5, 0x4) + 6f86: 2800 subi r0, 1 + 6f88: 3804 cmphsi r0, 5 + 6f8a: 080c bt 0x6fa2 // 6fa2 + 6f8c: 5c37 subi r1, r4, 6 + 6f8e: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 6f90: 7445 zexth r1, r1 + switch(data[4]){ + 6f92: e3ffe2b5 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 6f96: 0803 .short 0x0803 + 6f98: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 6f9c: 6c17 mov r0, r5 + 6f9e: e3fffe5b bsr 0x6c54 // 6c54 + return 0; + 6fa2: 3000 movi r0, 0 + 6fa4: 07bf br 0x6f22 // 6f22 + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 6fa6: 6c17 mov r0, r5 + 6fa8: e3fffeb2 bsr 0x6d0c // 6d0c + 6fac: 07fb br 0x6fa2 // 6fa2 + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 6fae: 6c17 mov r0, r5 + 6fb0: e3ffff2a bsr 0x6e04 // 6e04 + 6fb4: 07f7 br 0x6fa2 // 6fa2 + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 6fb6: 6c17 mov r0, r5 + 6fb8: e3ffff42 bsr 0x6e3c // 6e3c + 6fbc: 07f3 br 0x6fa2 // 6fa2 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 6fbe: 6c17 mov r0, r5 + 6fc0: e3ffff96 bsr 0x6eec // 6eec + 6fc4: 0000c748 .long 0x0000c748 + 6fc8: 0000cc2f .long 0x0000cc2f + 6fcc: 20000524 .long 0x20000524 + 6fd0: 0000cc41 .long 0x0000cc41 + 6fd4: 0000cc52 .long 0x0000cc52 + 6fd8: 0000cc65 .long 0x0000cc65 + 6fdc: 0000cc75 .long 0x0000cc75 + +Disassembly of section .text.EEPROM_CheckSum: + +00006fe0 : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 6fe0: 6cc3 mov r3, r0 + 6fe2: 6040 addu r1, r0 + U8_T data_sum = 0; + 6fe4: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 6fea: 783c jmp r15 + data_sum += data[i]; + 6fec: 8340 ld.b r2, (r3, 0x0) + 6fee: 6008 addu r0, r2 + 6ff0: 7400 zextb r0, r0 + 6ff2: 2300 addi r3, 1 + 6ff4: 07f9 br 0x6fe6 // 6fe6 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00006ff8 : +// } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 6ff8: 14d1 push r4, r15 + 6ffa: 143b subi r14, r14, 108 + 6ffc: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 6ffe: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 7000: 3264 movi r2, 100 + 7002: 3100 movi r1, 0 + 7004: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7006: b860 st.w r3, (r14, 0x0) + 7008: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 700c: e3ffe8c8 bsr 0x419c // 419c <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 7010: 6cbb mov r2, r14 + 7012: 3104 movi r1, 4 + 7014: 1014 lrw r0, 0x10000100 // 7064 + 7016: e3fff17f bsr 0x5314 // 5314 + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 701a: d84e0000 ld.b r2, (r14, 0x0) + 701e: 33a6 movi r3, 166 + 7020: 64ca cmpne r2, r3 + 7022: 0c04 bf 0x702a // 702a + return 0x00; + } + } + } + + return 0x01; + 7024: 3001 movi r0, 1 +} + 7026: 141b addi r14, r14, 108 + 7028: 1491 pop r4, r15 + read_len |= read_info[1]; + 702a: d82e0002 ld.b r1, (r14, 0x2) + 702e: d86e0001 ld.b r3, (r14, 0x1) + 7032: 4128 lsli r1, r1, 8 + 7034: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 7036: 3364 movi r3, 100 + 7038: 644c cmphs r3, r1 + 703a: 0ff5 bf 0x7024 // 7024 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 703c: 1a02 addi r2, r14, 8 + 703e: 100b lrw r0, 0x10000104 // 7068 + 7040: e3fff16a bsr 0x5314 // 5314 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 7044: 3108 movi r1, 8 + 7046: 1802 addi r0, r14, 8 + 7048: e3ffffcc bsr 0x6fe0 // 6fe0 + 704c: d86e0003 ld.b r3, (r14, 0x3) + 7050: 640e cmpne r3, r0 + 7052: 0be9 bt 0x7024 // 7024 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 7054: 3208 movi r2, 8 + 7056: 1902 addi r1, r14, 8 + 7058: 6c13 mov r0, r4 + 705a: e3ffe8e5 bsr 0x4224 // 4224 <__memcpy_fast> + return 0x00; + 705e: 3000 movi r0, 0 + 7060: 07e3 br 0x7026 // 7026 + 7062: 0000 bkpt + 7064: 10000100 .long 0x10000100 + 7068: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +0000706c : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 706c: 14d0 push r15 + 706e: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 7070: 3300 movi r3, 0 + 7072: 2b59 subi r3, 90 + 7074: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 7078: 3308 movi r3, 8 + 707a: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 707e: 3300 movi r3, 0 + 7080: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 7084: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 7086: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 7088: 3208 movi r2, 8 + 708a: 6c0f mov r0, r3 + 708c: e3ffe8cc bsr 0x4224 // 4224 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 7090: 3108 movi r1, 8 + 7092: e3ffffa7 bsr 0x6fe0 // 6fe0 + 7096: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 709a: 6cbb mov r2, r14 + 709c: 310c movi r1, 12 + 709e: 1004 lrw r0, 0x10000100 // 70ac + 70a0: e3fff0ea bsr 0x5274 // 5274 + + return 0; +} + 70a4: 3000 movi r0, 0 + 70a6: 141b addi r14, r14, 108 + 70a8: 1490 pop r15 + 70aa: 0000 bkpt + 70ac: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +000070b0 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 70b0: 14d1 push r4, r15 + 70b2: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 70b4: 8062 ld.b r3, (r0, 0x2) + 70b6: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 70b8: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 70ba: 0c03 bf 0x70c0 // 70c0 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 70bc: 3309 movi r3, 9 + 70be: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 70c0: 8442 ld.b r2, (r4, 0x2) + 70c2: 103d lrw r1, 0xcc84 // 7134 + 70c4: 3000 movi r0, 0 + 70c6: e3fffabb bsr 0x663c // 663c + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 70ca: 8463 ld.b r3, (r4, 0x3) + 70cc: 3b02 cmphsi r3, 3 + 70ce: 0c03 bf 0x70d4 // 70d4 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 70d0: 3300 movi r3, 0 + 70d2: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 70d4: 8464 ld.b r3, (r4, 0x4) + 70d6: 3b01 cmphsi r3, 2 + 70d8: 0c03 bf 0x70de // 70de + { + info->backlight_en = 0x00; + 70da: 3300 movi r3, 0 + 70dc: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 70de: 8461 ld.b r3, (r4, 0x1) + 70e0: 3b02 cmphsi r3, 3 + 70e2: 0c03 bf 0x70e8 // 70e8 + { + info->pipe_flag = 0x00; + 70e4: 3300 movi r3, 0 + 70e6: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 70e8: 8460 ld.b r3, (r4, 0x0) + 70ea: 2b00 subi r3, 1 + 70ec: 74cc zextb r3, r3 + 70ee: 32fd movi r2, 253 + 70f0: 64c8 cmphs r2, r3 + 70f2: 0803 bt 0x70f8 // 70f8 + { + info->dev_addr = 0x01; + 70f4: 3301 movi r3, 1 + 70f6: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 70f8: 8465 ld.b r3, (r4, 0x5) + 70fa: 3b02 cmphsi r3, 3 + 70fc: 0c03 bf 0x7102 // 7102 + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 70fe: 3301 movi r3, 1 + 7100: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 7102: 8466 ld.b r3, (r4, 0x6) + 7104: 3b02 cmphsi r3, 3 + 7106: 0c03 bf 0x710c // 710c + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 7108: 3300 movi r3, 0 + 710a: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 710c: 8467 ld.b r3, (r4, 0x7) + 710e: 3b02 cmphsi r3, 3 + 7110: 0c03 bf 0x7116 // 7116 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 7112: 3301 movi r3, 1 + 7114: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 7116: 8427 ld.b r1, (r4, 0x7) + 7118: b822 st.w r1, (r14, 0x8) + 711a: 8420 ld.b r1, (r4, 0x0) + 711c: b821 st.w r1, (r14, 0x4) + 711e: 8425 ld.b r1, (r4, 0x5) + 7120: b820 st.w r1, (r14, 0x0) + 7122: 8464 ld.b r3, (r4, 0x4) + 7124: 8443 ld.b r2, (r4, 0x3) + 7126: 1025 lrw r1, 0xcc9b // 7138 + 7128: 3000 movi r0, 0 + 712a: e3fffa89 bsr 0x663c // 663c + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 712e: 3000 movi r0, 0 + 7130: 1403 addi r14, r14, 12 + 7132: 1491 pop r4, r15 + 7134: 0000cc84 .long 0x0000cc84 + 7138: 0000cc9b .long 0x0000cc9b + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +0000713c : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 713c: 3301 movi r3, 1 + 713e: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 7140: 3300 movi r3, 0 + 7142: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 7144: 3309 movi r3, 9 + 7146: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 7148: 3300 movi r3, 0 + 714a: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 714c: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 714e: 3301 movi r3, 1 + 7150: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 7152: 3300 movi r3, 0 + 7154: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 7156: 3301 movi r3, 1 + 7158: a067 st.b r3, (r0, 0x7) + +} + 715a: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +0000715c : +void EEPROM_Init(void){ + 715c: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 715e: 1073 lrw r3, 0x20000060 // 71a8 + 7160: 3201 movi r2, 1 + 7162: 9360 ld.w r3, (r3, 0x0) + 7164: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 7166: 9345 ld.w r2, (r3, 0x14) + 7168: 3aa1 bseti r2, 1 + 716a: 3ab0 bseti r2, 16 + 716c: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 716e: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 7170: 108f lrw r4, 0x20000524 // 71ac + delay_nms(10); + 7172: e3fff1e9 bsr 0x5544 // 5544 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 7176: 3208 movi r2, 8 + 7178: 3100 movi r1, 0 + 717a: 6c13 mov r0, r4 + 717c: e3ffe810 bsr 0x419c // 419c <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 7180: 6c13 mov r0, r4 + 7182: e3ffff3b bsr 0x6ff8 // 6ff8 + if(rev == 0x00){ + 7186: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 7188: 6c13 mov r0, r4 + if(rev == 0x00){ + 718a: 0804 bt 0x7192 // 7192 + EEPROM_Validate_ParaInfo(&g_eeprom); + 718c: e3ffff92 bsr 0x70b0 // 70b0 +} + 7190: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 7192: e3ffffd5 bsr 0x713c // 713c + EEPROM_WriteParaInfo(&g_eeprom); + 7196: 6c13 mov r0, r4 + 7198: e3ffff6a bsr 0x706c // 706c + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 719c: 8441 ld.b r2, (r4, 0x1) + 719e: 1025 lrw r1, 0xccf5 // 71b0 + 71a0: 3000 movi r0, 0 + 71a2: e3fffa4d bsr 0x663c // 663c +} + 71a6: 07f5 br 0x7190 // 7190 + 71a8: 20000060 .long 0x20000060 + 71ac: 20000524 .long 0x20000524 + 71b0: 0000ccf5 .long 0x0000ccf5 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +000071b4 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 71b4: 14d2 push r4-r5, r15 + 71b6: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 71b8: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 71ba: 6d47 mov r5, r1 + switch(level){ + 71bc: 0c07 bf 0x71ca // 71ca + 71be: 3840 cmpnei r0, 0 + 71c0: 0c27 bf 0x720e // 720e + 71c2: 3842 cmpnei r0, 2 + 71c4: 0c23 bf 0x720a // 720a + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 71c6: 3001 movi r0, 1 + 71c8: 041f br 0x7206 // 7206 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 71ca: 1093 lrw r4, 0x10000280 // 7214 + break; + } + + memset(save_para,0,sizeof(save_para)); + 71cc: 323c movi r2, 60 + 71ce: 3100 movi r1, 0 + 71d0: 6c3b mov r0, r14 + 71d2: e3ffe7e5 bsr 0x419c // 419c <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_APP_SVAE_FLAG; + 71d6: 3300 movi r3, 0 + 71d8: 2b59 subi r3, 90 + 71da: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 71de: 331c movi r3, 28 + 71e0: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 71e4: 1b01 addi r3, r14, 4 + 71e6: 321c movi r2, 28 + 71e8: 6c0f mov r0, r3 + 71ea: 6c57 mov r1, r5 + 71ec: e3ffe81c bsr 0x4224 // 4224 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 71f0: 311c movi r1, 28 + 71f2: e3fffef7 bsr 0x6fe0 // 6fe0 + 71f6: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 71fa: 6cbb mov r2, r14 + 71fc: 6c13 mov r0, r4 + 71fe: 3120 movi r1, 32 + 7200: e3fff03a bsr 0x5274 // 5274 + + return 0; + 7204: 3000 movi r0, 0 +} + 7206: 140f addi r14, r14, 60 + 7208: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 720a: 1084 lrw r4, 0x10000300 // 7218 + break; + 720c: 07e0 br 0x71cc // 71cc + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 720e: 1084 lrw r4, 0x10000200 // 721c + 7210: 07de br 0x71cc // 71cc + 7212: 0000 bkpt + 7214: 10000280 .long 0x10000280 + 7218: 10000300 .long 0x10000300 + 721c: 10000200 .long 0x10000200 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00007220 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 7220: 14d2 push r4-r5, r15 + 7222: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 7224: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 7226: 6d07 mov r4, r1 + switch(level){ + 7228: 0c3a bf 0x729c // 729c + 722a: 3840 cmpnei r0, 0 + 722c: 0c05 bf 0x7236 // 7236 + 722e: 3842 cmpnei r0, 2 + 7230: 0c34 bf 0x7298 // 7298 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 7232: 3001 movi r0, 1 + 7234: 0430 br 0x7294 // 7294 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 7236: 11a1 lrw r5, 0x10000200 // 72b8 + memset(read_info,0,sizeof(read_info)); + 7238: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 723a: 3234 movi r2, 52 + 723c: 3100 movi r1, 0 + 723e: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 7240: b860 st.w r3, (r14, 0x0) + 7242: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 7246: e3ffe7ab bsr 0x419c // 419c <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 724a: 6cbb mov r2, r14 + 724c: 3104 movi r1, 4 + 724e: 6c17 mov r0, r5 + 7250: e3fff062 bsr 0x5314 // 5314 + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 7254: d84e0000 ld.b r2, (r14, 0x0) + 7258: 33a6 movi r3, 166 + 725a: 64ca cmpne r2, r3 + 725c: 0827 bt 0x72aa // 72aa + read_len |= read_info[1]; + 725e: d84e0002 ld.b r2, (r14, 0x2) + 7262: d86e0001 ld.b r3, (r14, 0x1) + 7266: 4248 lsli r2, r2, 8 + 7268: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 726a: 3a5c cmpnei r2, 28 + 726c: 081a bt 0x72a0 // 72a0 + temp_addr += EEPROM_Offset_Data; + 726e: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 7270: 1a02 addi r2, r14, 8 + 7272: 311c movi r1, 28 + 7274: e3fff050 bsr 0x5314 // 5314 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 7278: 311c movi r1, 28 + 727a: 1802 addi r0, r14, 8 + 727c: e3fffeb2 bsr 0x6fe0 // 6fe0 + 7280: d86e0003 ld.b r3, (r14, 0x3) + 7284: 640e cmpne r3, r0 + 7286: 0bd6 bt 0x7232 // 7232 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 7288: 321c movi r2, 28 + 728a: 1902 addi r1, r14, 8 + 728c: 6c13 mov r0, r4 + 728e: e3ffe7cb bsr 0x4224 // 4224 <__memcpy_fast> + return 0x00; + 7292: 3000 movi r0, 0 +} + 7294: 140f addi r14, r14, 60 + 7296: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 7298: 10a9 lrw r5, 0x10000300 // 72bc + break; + 729a: 07cf br 0x7238 // 7238 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 729c: 10a9 lrw r5, 0x10000280 // 72c0 + 729e: 07cd br 0x7238 // 7238 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 72a0: 1029 lrw r1, 0xcd0e // 72c4 + 72a2: 3000 movi r0, 0 + 72a4: e3fff9cc bsr 0x663c // 663c + 72a8: 07c5 br 0x7232 // 7232 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 72aa: 3304 movi r3, 4 + 72ac: 6cbb mov r2, r14 + 72ae: 1027 lrw r1, 0xcd30 // 72c8 + 72b0: 3000 movi r0, 0 + 72b2: e3fff9cb bsr 0x6648 // 6648 + 72b6: 07be br 0x7232 // 7232 + 72b8: 10000200 .long 0x10000200 + 72bc: 10000300 .long 0x10000300 + 72c0: 10000280 .long 0x10000280 + 72c4: 0000cd0e .long 0x0000cd0e + 72c8: 0000cd30 .long 0x0000cd30 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +000072cc : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 72cc: 14c4 push r4-r7 + 72ce: 1421 subi r14, r14, 4 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 72d0: 8163 ld.b r3, (r1, 0x3) + 72d2: 2b00 subi r3, 1 + 72d4: 74cc zextb r3, r3 + 72d6: 3263 movi r2, 99 + 72d8: 64c8 cmphs r2, r3 + 72da: 084f bt 0x7378 // 7378 + para->base_speed = 20; //默认参数 - 20 + 72dc: 3314 movi r3, 20 + 72de: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 72e0: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 72e2: 8140 ld.b r2, (r1, 0x0) + 72e4: 2a00 subi r2, 1 + 72e6: 7488 zextb r2, r2 + 72e8: 3a09 cmphsi r2, 10 + 72ea: 0c04 bf 0x72f2 // 72f2 + para->press_debounce = 4; //默认参数 - 6 + 72ec: 3304 movi r3, 4 + 72ee: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 72f0: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 72f2: 8141 ld.b r2, (r1, 0x1) + 72f4: 2a00 subi r2, 1 + 72f6: 7488 zextb r2, r2 + 72f8: 3a09 cmphsi r2, 10 + 72fa: 0c04 bf 0x7302 // 7302 + para->release_debounce = 5; //默认参数 - 5 + 72fc: 3305 movi r3, 5 + 72fe: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 7300: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 7302: 8142 ld.b r2, (r1, 0x2) + 7304: 2a00 subi r2, 1 + 7306: 7488 zextb r2, r2 + 7308: 3463 movi r4, 99 + 730a: 6490 cmphs r4, r2 + 730c: 0804 bt 0x7314 // 7314 + para->multiTimes_filt = 40; //默认参数 - 40 + 730e: 3328 movi r3, 40 + 7310: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 7312: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 7314: 9146 ld.w r2, (r1, 0x18) + 7316: 2a00 subi r2, 1 + 7318: 3a1f cmphsi r2, 32 + 731a: 0c04 bf 0x7322 // 7322 + para->longpress_time = 16; //默认参数 - 16 + 731c: 3310 movi r3, 16 + 731e: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 7320: 3301 movi r3, 1 + }else if (i == 2){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 3){ + para->senprd[i] = 320; //默认参数 - 300 + }else if (i == 4){ + para->senprd[i] = 280; //默认参数 - 280 + 7322: 358c movi r5, 140 + 7324: 45a1 lsli r5, r5, 1 + 7326: dcae1001 st.h r5, (r14, 0x2) + para->senprd[i] = 320; //默认参数 - 300 + 732a: 35a0 movi r5, 160 + 732c: 598e addi r4, r1, 4 + rev = 0x01; + 732e: 3200 movi r2, 0 + para->senprd[i] = 320; //默认参数 - 300 + 7330: 45a1 lsli r5, r5, 1 + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 7332: 8cc0 ld.h r6, (r4, 0x0) + 7334: 2e09 subi r6, 10 + 7336: 7599 zexth r6, r6 + 7338: 10fb lrw r7, 0x3de // 73a4 + 733a: 659c cmphs r7, r6 + 733c: 0806 bt 0x7348 // 7348 + if (i == 0){ + 733e: 3a40 cmpnei r2, 0 + 7340: 081e bt 0x737c // 737c + para->senprd[i] = 250; //默认参数 - 280 + 7342: 33fa movi r3, 250 + 7344: a962 st.h r3, (r1, 0x4) + }else { + para->senprd[i] = 280; //默认参数 - 320 + } + + rev = 0x01; + 7346: 3301 movi r3, 1 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 7348: 8cc5 ld.h r6, (r4, 0xa) + 734a: 2e13 subi r6, 20 + 734c: 37f5 movi r7, 245 + 734e: 7599 zexth r6, r6 + 7350: 47e2 lsli r7, r7, 2 + 7352: 659c cmphs r7, r6 + 7354: 080a bt 0x7368 // 7368 + + switch(level){ + 7356: 3841 cmpnei r0, 1 + 7358: 0c24 bf 0x73a0 // 73a0 + 735a: 3840 cmpnei r0, 0 + 735c: 0c20 bf 0x739c // 739c + 735e: 3842 cmpnei r0, 2 + 7360: 0820 bt 0x73a0 // 73a0 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 60 + 7362: 3350 movi r3, 80 + break; + case 0x00: + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 7364: ac65 st.h r3, (r4, 0xa) + break; + } + + rev = 0x01; + 7366: 3301 movi r3, 1 + for(i=0;i + } + } + + return rev; +} + 7372: 6c0f mov r0, r3 + 7374: 1401 addi r14, r14, 4 + 7376: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 7378: 3300 movi r3, 0 + 737a: 07b4 br 0x72e2 // 72e2 + }else if (i == 1){ + 737c: 3a41 cmpnei r2, 1 + 737e: 0803 bt 0x7384 // 7384 + para->senprd[i] = 320; //默认参数 - 320 + 7380: a9a3 st.h r5, (r1, 0x6) + 7382: 07e2 br 0x7346 // 7346 + }else if (i == 2){ + 7384: 3a42 cmpnei r2, 2 + 7386: 0803 bt 0x738c // 738c + para->senprd[i] = 320; //默认参数 - 320 + 7388: a9a4 st.h r5, (r1, 0x8) + 738a: 07de br 0x7346 // 7346 + }else if (i == 3){ + 738c: 3a43 cmpnei r2, 3 + 738e: 0803 bt 0x7394 // 7394 + para->senprd[i] = 320; //默认参数 - 300 + 7390: a9a5 st.h r5, (r1, 0xa) + 7392: 07da br 0x7346 // 7346 + para->senprd[i] = 280; //默认参数 - 280 + 7394: d86e1001 ld.h r3, (r14, 0x2) + 7398: a966 st.h r3, (r1, 0xc) + 739a: 07d6 br 0x7346 // 7346 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + 739c: 3378 movi r3, 120 + 739e: 07e3 br 0x7364 // 7364 + para->triggerlevel[i] = 100; + 73a0: 3364 movi r3, 100 + 73a2: 07e1 br 0x7364 // 7364 + 73a4: 000003de .long 0x000003de + +Disassembly of section .text.EEPROM_Default_TouchPara: + +000073a8 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 73a8: 14c3 push r4-r6 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 73aa: 3314 movi r3, 20 + 73ac: a163 st.b r3, (r1, 0x3) + para->press_debounce = 4; //默认参数 - 6 + 73ae: 3304 movi r3, 4 + 73b0: a160 st.b r3, (r1, 0x0) + }else if (i == 2){ + para->senprd[i] = 320; //默认参数 - 320 + }else if (i == 3){ + para->senprd[i] = 320; //默认参数 - 300 + }else if (i == 4){ + para->senprd[i] = 280; //默认参数 - 280 + 73b2: 328c movi r2, 140 + para->release_debounce = 5; //默认参数 - 5 + 73b4: 3305 movi r3, 5 + para->senprd[i] = 280; //默认参数 - 280 + 73b6: 4241 lsli r2, r2, 1 + para->release_debounce = 5; //默认参数 - 5 + 73b8: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 73ba: 3328 movi r3, 40 + 73bc: a162 st.b r3, (r1, 0x2) + 73be: 340e movi r4, 14 + para->longpress_time = 16; //默认参数 - 8 + 73c0: 3310 movi r3, 16 + para->senprd[i] = 280; //默认参数 - 280 + 73c2: 6d4b mov r5, r2 + para->senprd[i] = 320; //默认参数 - 300 + 73c4: 32a0 movi r2, 160 + para->longpress_time = 16; //默认参数 - 8 + 73c6: b166 st.w r3, (r1, 0x18) + 73c8: 6104 addu r4, r1 + for(i=0;isenprd[i] = 320; //默认参数 - 300 + 73cc: 4241 lsli r2, r2, 1 + if (i == 0){ + 73ce: 3b40 cmpnei r3, 0 + 73d0: 0811 bt 0x73f2 // 73f2 + para->senprd[i] = 250; //默认参数 - 280 + 73d2: 36fa movi r6, 250 + 73d4: a9c2 st.h r6, (r1, 0x4) +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 73d6: 3841 cmpnei r0, 1 + 73d8: 0c1d bf 0x7412 // 7412 + 73da: 3840 cmpnei r0, 0 + 73dc: 0c19 bf 0x740e // 740e + 73de: 3842 cmpnei r0, 2 + 73e0: 0819 bt 0x7412 // 7412 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 60 + 73e2: 3650 movi r6, 80 + for(i=0;itriggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + break; + default: + para->triggerlevel[i] = 100; + 73ea: acc0 st.h r6, (r4, 0x0) + 73ec: 2401 addi r4, 2 + for(i=0;i + break; + } + + } +} + 73f0: 1483 pop r4-r6 + }else if (i == 1){ + 73f2: 3b41 cmpnei r3, 1 + 73f4: 0803 bt 0x73fa // 73fa + para->senprd[i] = 320; //默认参数 - 320 + 73f6: a943 st.h r2, (r1, 0x6) + 73f8: 07ef br 0x73d6 // 73d6 + }else if (i == 2){ + 73fa: 3b42 cmpnei r3, 2 + 73fc: 0803 bt 0x7402 // 7402 + para->senprd[i] = 320; //默认参数 - 320 + 73fe: a944 st.h r2, (r1, 0x8) + 7400: 07eb br 0x73d6 // 73d6 + }else if (i == 3){ + 7402: 3b43 cmpnei r3, 3 + 7404: 0803 bt 0x740a // 740a + para->senprd[i] = 320; //默认参数 - 300 + 7406: a945 st.h r2, (r1, 0xa) + 7408: 07e7 br 0x73d6 // 73d6 + para->senprd[i] = 280; //默认参数 - 280 + 740a: a9a6 st.h r5, (r1, 0xc) + 740c: 07e5 br 0x73d6 // 73d6 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 140 + 740e: 3678 movi r6, 120 + 7410: 07ea br 0x73e4 // 73e4 + para->triggerlevel[i] = 100; + 7412: 3664 movi r6, 100 + 7414: 07e8 br 0x73e4 // 73e4 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00007418 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 7418: 14d4 push r4-r7, r15 + 741a: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 741c: 8043 ld.b r2, (r0, 0x3) + 741e: 1038 lrw r1, 0xcd4e // 747c + 7420: 3000 movi r0, 0 + 7422: e3fff90d bsr 0x663c // 663c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 7426: 8440 ld.b r2, (r4, 0x0) + 7428: 1036 lrw r1, 0xcd66 // 7480 + 742a: 3000 movi r0, 0 + 742c: e3fff908 bsr 0x663c // 663c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 7430: 8441 ld.b r2, (r4, 0x1) + 7432: 1035 lrw r1, 0xcd82 // 7484 + 7434: 3000 movi r0, 0 + 7436: e3fff903 bsr 0x663c // 663c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 743a: 8442 ld.b r2, (r4, 0x2) + 743c: 1033 lrw r1, 0xcda0 // 7488 + 743e: 3000 movi r0, 0 + 7440: e3fff8fe bsr 0x663c // 663c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 7444: 9446 ld.w r2, (r4, 0x18) + 7446: 3000 movi r0, 0 + 7448: 1031 lrw r1, 0xcdbd // 748c + 744a: e3fff8f9 bsr 0x663c // 663c + 744e: 2403 addi r4, 4 + 7450: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 7452: 10f0 lrw r7, 0xcdd9 // 7490 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 7454: 10d0 lrw r6, 0xcdf2 // 7494 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 7456: e3ffe823 bsr 0x449c // 449c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 745a: 8c60 ld.h r3, (r4, 0x0) + 745c: 6c97 mov r2, r5 + 745e: 6c5f mov r1, r7 + 7460: 3000 movi r0, 0 + 7462: e3fff8ed bsr 0x663c // 663c + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 7466: 8c65 ld.h r3, (r4, 0xa) + 7468: 6c97 mov r2, r5 + 746a: 6c5b mov r1, r6 + 746c: 3000 movi r0, 0 + 746e: 2500 addi r5, 1 + 7470: e3fff8e6 bsr 0x663c // 663c + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 747a: 1494 pop r4-r7, r15 + 747c: 0000cd4e .long 0x0000cd4e + 7480: 0000cd66 .long 0x0000cd66 + 7484: 0000cd82 .long 0x0000cd82 + 7488: 0000cda0 .long 0x0000cda0 + 748c: 0000cdbd .long 0x0000cdbd + 7490: 0000cdd9 .long 0x0000cdd9 + 7494: 0000cdf2 .long 0x0000cdf2 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00007498 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 7498: 14d0 push r15 + 749a: 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; + 749c: 3300 movi r3, 0 + 749e: 2b51 subi r3, 82 + 74a0: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 74a4: 3325 movi r3, 37 + 74a6: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 74aa: 3300 movi r3, 0 + 74ac: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 74b0: 1b01 addi r3, r14, 4 +{ + 74b2: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 74b4: 3225 movi r2, 37 + 74b6: 6c0f mov r0, r3 + 74b8: e3ffe6b6 bsr 0x4224 // 4224 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 74bc: 3125 movi r1, 37 + 74be: e3fffd91 bsr 0x6fe0 // 6fe0 + 74c2: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 74c6: 3080 movi r0, 128 + 74c8: 4015 lsli r0, r0, 21 + 74ca: 6cbb mov r2, r14 + 74cc: 3129 movi r1, 41 + 74ce: e3ffeed3 bsr 0x5274 // 5274 + + return 0; +} + 74d2: 3000 movi r0, 0 + 74d4: 1412 addi r14, r14, 72 + 74d6: 1490 pop r15 + +Disassembly of section .text.ADC_Init: + +000074d8 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 74d8: 14d0 push r15 + 74da: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 74dc: e3ffec68 bsr 0x4dac // 4dac + ADC12_Software_Reset(); //ADC软件复位 + 74e0: e3ffecc6 bsr 0x4e6c // 4e6c + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 74e4: 3101 movi r1, 1 + 74e6: 3002 movi r0, 2 + 74e8: e3ffecac bsr 0x4e40 // 4e40 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 74ec: 3301 movi r3, 1 + 74ee: b861 st.w r3, (r14, 0x4) + 74f0: 3302 movi r3, 2 + 74f2: b860 st.w r3, (r14, 0x0) + 74f4: 3200 movi r2, 0 + 74f6: 3306 movi r3, 6 + 74f8: 3101 movi r1, 1 + 74fa: 3001 movi r0, 1 + 74fc: e3ffecf2 bsr 0x4ee0 // 4ee0 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS);//如果设置内部参考电压源需要把初始化放在触摸初始化前面,否则触摸会出现错误 + 7500: 3003 movi r0, 3 + 7502: e3ffed2d bsr 0x4f5c // 4f5c + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 7506: 3300 movi r3, 0 + 7508: 3200 movi r2, 0 + 750a: 3100 movi r1, 0 + 750c: 300f movi r0, 15 + 750e: e3ffedf3 bsr 0x50f4 // 50f4 + + ADC12_CMD(ENABLE); + 7512: 3001 movi r0, 1 + 7514: e3ffecb2 bsr 0x4e78 // 4e78 + + ADC12_ready_wait(); + 7518: e3ffecc4 bsr 0x4ea0 // 4ea0 + + ADC12_Control(ADC12_START); + 751c: 3008 movi r0, 8 + 751e: e3ffec79 bsr 0x4e10 // 4e10 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 7522: 3250 movi r2, 80 + 7524: 3100 movi r1, 0 + 7526: 1003 lrw r0, 0x20000554 // 7530 + 7528: e3ffe63a bsr 0x419c // 419c <__memset_fast> +} + 752c: 1402 addi r14, r14, 8 + 752e: 1490 pop r15 + 7530: 20000554 .long 0x20000554 + +Disassembly of section .text.Thermistor_Array_Transform: + +00007534 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 7534: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 7536: 1070 lrw r3, 0x79bd // 7574 + 7538: 640c cmphs r3, r0 +{ + 753a: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 753c: 0c16 bf 0x7568 // 7568 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 753e: 33a1 movi r3, 161 + 7540: 4365 lsli r3, r3, 5 + 7542: 640c cmphs r3, r0 + 7544: 0814 bt 0x756c // 756c + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 754a: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 754e: 8a60 ld.h r3, (r2, 0x0) + 7550: 644c cmphs r3, r1 + 7552: 0c04 bf 0x755a // 755a + 7554: 8a61 ld.h r3, (r2, 0x2) + 7556: 644c cmphs r3, r1 + 7558: 0c07 bf 0x7566 // 7566 + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 7564: 30fa movi r0, 250 +} + 7566: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 7568: 3000 movi r0, 0 + 756a: 07fe br 0x7566 // 7566 + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 756c: 30c8 movi r0, 200 + 756e: 4001 lsli r0, r0, 1 + 7570: 07fb br 0x7566 // 7566 + 7572: 0000 bkpt + 7574: 000079bd .long 0x000079bd + 7578: 0000c762 .long 0x0000c762 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +0000757c : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 757c: 14d2 push r4-r5, r15 + 757e: 1056 lrw r2, 0x20000554 // 75d4 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 7594: 310a movi r1, 10 + 7596: e3fff5e7 bsr 0x6164 // 6164 <__udivsi3> + 759a: 74c1 zexth r3, r0 + 759c: ac62 st.h r3, (r4, 0x4) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 759e: ac63 st.h r3, (r4, 0x6) + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 75a0: 8c6e ld.h r3, (r4, 0x1c) + 75a2: 3b13 cmphsi r3, 20 + 75a4: 0c05 bf 0x75ae // 75ae + g_adc.temp_index = 0; + 75a6: 3300 movi r3, 0 + 75a8: ac6e st.h r3, (r4, 0x1c) + g_adc.gather_full = 1; + 75aa: 3301 movi r3, 1 + 75ac: a461 st.b r3, (r4, 0x1) + + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 75ae: 8cae ld.h r5, (r4, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 75b0: 74c1 zexth r3, r0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 75b2: 5d42 addi r2, r5, 1 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 75b4: 1009 lrw r0, 0x2710 // 75d8 + 75b6: 102a lrw r1, 0xce4 // 75dc + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 75b8: ac4e st.h r2, (r4, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 75ba: 7c0c mult r0, r3 + 75bc: 604e subu r1, r3 + 75be: e3fff5c1 bsr 0x6140 // 6140 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 75c2: 250f addi r5, 16 + 75c4: 45a1 lsli r5, r5, 1 + 75c6: 7401 zexth r0, r0 + 75c8: e3ffffb6 bsr 0x7534 // 7534 + 75cc: 6114 addu r4, r5 + 75ce: ac00 st.h r0, (r4, 0x0) + + //Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d avg_val:%d",Thermistor_Array_Transform(temp_val),g_adc.avg_val); +} + 75d0: 1492 pop r4-r5, r15 + 75d2: 0000 bkpt + 75d4: 20000554 .long 0x20000554 + 75d8: 00002710 .long 0x00002710 + 75dc: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.Get_Temp_Val: + +000075e0 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 75e0: 1062 lrw r3, 0x20000554 // 75e8 + 75e2: 8b0f ld.h r0, (r3, 0x1e) +} + 75e4: 783c jmp r15 + 75e6: 0000 bkpt + 75e8: 20000554 .long 0x20000554 + +Disassembly of section .text.Gather_Temp: + +000075ec : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 75ec: 14d2 push r4-r5, r15 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 1000) + 75ee: 1058 lrw r2, 0x200000c0 // 764c + 75f0: 1098 lrw r4, 0x20000554 // 7650 + 75f2: 9260 ld.w r3, (r2, 0x0) + 75f4: 9433 ld.w r1, (r4, 0x4c) + 75f6: 60c6 subu r3, r1 + 75f8: 1037 lrw r1, 0x3e7 // 7654 + 75fa: 64c4 cmphs r1, r3 + 75fc: 080e bt 0x7618 // 7618 + { + g_adc.gather_tick = SysTick_1ms; + 75fe: 9260 ld.w r3, (r2, 0x0) + 7600: b473 st.w r3, (r4, 0x4c) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 7602: 8461 ld.b r3, (r4, 0x1) + 7604: 3b41 cmpnei r3, 1 + 7606: 0c0a bf 0x761a // 761a + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7608: 8c2e ld.h r1, (r4, 0x1c) + 760a: 3300 movi r3, 0 + 760c: 3000 movi r0, 0 + temp_val += g_adc.tempBuff[i]; + 760e: 3510 movi r5, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7610: 644c cmphs r3, r1 + 7612: 0c14 bf 0x763a // 763a + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 7614: 3940 cmpnei r1, 0 + 7616: 080e bt 0x7632 // 7632 + } + g_adc.temp_val = temp_val / temp_size; + + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 7618: 1492 pop r4-r5, r15 + 761a: 6c93 mov r2, r4 + if(g_adc.gather_full == 1){ + 761c: 3314 movi r3, 20 + 761e: 3000 movi r0, 0 + 7620: 2b00 subi r3, 1 + 7622: 74cc zextb r3, r3 + temp_val += g_adc.tempBuff[i]; + 7624: 8a30 ld.h r1, (r2, 0x20) + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 7626: 3b40 cmpnei r3, 0 + temp_val += g_adc.tempBuff[i]; + 7628: 6004 addu r0, r1 + 762a: 2201 addi r2, 2 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 762c: 0bfa bt 0x7620 // 7620 + g_adc.gather_full = 0; + 762e: a461 st.b r3, (r4, 0x1) + temp_size = Temp_DataBuff_Size; + 7630: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 7632: e3fff599 bsr 0x6164 // 6164 <__udivsi3> + 7636: ac0f st.h r0, (r4, 0x1e) + 7638: 07f0 br 0x7618 // 7618 + temp_val += g_adc.tempBuff[i]; + 763a: 5b54 addu r2, r3, r5 + 763c: 4241 lsli r2, r2, 1 + 763e: 6090 addu r2, r4 + 7640: 8a40 ld.h r2, (r2, 0x0) + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7642: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 7644: 6008 addu r0, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 7646: 74cc zextb r3, r3 + 7648: 07e4 br 0x7610 // 7610 + 764a: 0000 bkpt + 764c: 200000c0 .long 0x200000c0 + 7650: 20000554 .long 0x20000554 + 7654: 000003e7 .long 0x000003e7 + +Disassembly of section .text.ADC_Sample_Task: + +00007658 : +void ADC_Sample_Task(void){ + 7658: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 765a: 10d9 lrw r6, 0x200000c0 // 76bc + 765c: 1099 lrw r4, 0x20000554 // 76c0 + 765e: 9660 ld.w r3, (r6, 0x0) + 7660: 9452 ld.w r2, (r4, 0x48) + 7662: 60ca subu r3, r2 + 7664: 3b0a cmphsi r3, 11 + 7666: 0c14 bf 0x768e // 768e + g_adc.sample_tick = SysTick_1ms; + 7668: 9660 ld.w r3, (r6, 0x0) + ADC12_SEQEND_wait(0); + 766a: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 766c: b472 st.w r3, (r4, 0x48) + ADC12_SEQEND_wait(0); + 766e: e3ffec23 bsr 0x4eb4 // 4eb4 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 7672: 3000 movi r0, 0 + 7674: 8ca1 ld.h r5, (r4, 0x2) + 7676: e3ffec2b bsr 0x4ecc // 4ecc + g_adc.index++; + 767a: 8c61 ld.h r3, (r4, 0x2) + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 767c: 2503 addi r5, 4 + g_adc.index++; + 767e: 2300 addi r3, 1 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 7680: 45a1 lsli r5, r5, 1 + g_adc.index++; + 7682: 74cd zexth r3, r3 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 7684: 6150 addu r5, r4 + if (g_adc.index >= ADC_DATABUFF_Size) { + 7686: 3b09 cmphsi r3, 10 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 7688: ad00 st.h r0, (r5, 0x0) + if (g_adc.index >= ADC_DATABUFF_Size) { + 768a: 0813 bt 0x76b0 // 76b0 + g_adc.index++; + 768c: ac61 st.h r3, (r4, 0x2) + if (g_adc.full_flag == 0x01) { + 768e: 8460 ld.b r3, (r4, 0x0) + 7690: 3b41 cmpnei r3, 1 + 7692: 080c bt 0x76aa // 76aa + if (SysTick_1ms - adc_tick >= 100) { + 7694: 104c lrw r2, 0x2000013c // 76c4 + 7696: 9220 ld.w r1, (r2, 0x0) + 7698: 9660 ld.w r3, (r6, 0x0) + 769a: 60c6 subu r3, r1 + 769c: 3163 movi r1, 99 + 769e: 64c4 cmphs r1, r3 + 76a0: 0805 bt 0x76aa // 76aa + adc_tick = SysTick_1ms; + 76a2: 9660 ld.w r3, (r6, 0x0) + 76a4: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 76a6: e3ffff6b bsr 0x757c // 757c + Gather_Temp(); + 76aa: e3ffffa1 bsr 0x75ec // 75ec +} + 76ae: 1493 pop r4-r6, r15 + g_adc.index = 0; + 76b0: 3300 movi r3, 0 + 76b2: ac61 st.h r3, (r4, 0x2) + g_adc.full_flag = 1; + 76b4: 3301 movi r3, 1 + 76b6: a460 st.b r3, (r4, 0x0) + 76b8: 07eb br 0x768e // 768e + 76ba: 0000 bkpt + 76bc: 200000c0 .long 0x200000c0 + 76c0: 20000554 .long 0x20000554 + 76c4: 2000013c .long 0x2000013c + +Disassembly of section .text.Contol_Switch_Light: + +000076c8 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 76c8: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 76ca: 3805 cmphsi r0, 6 +{ + 76cc: 6d47 mov r5, r1 + switch(ch) + 76ce: 0818 bt 0x76fe // 76fe + 76d0: 009b lrw r4, 0x200005a4 // 7a60 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 76d2: 3941 cmpnei r1, 1 + switch(ch) + 76d4: e3ffdf2c bsr 0x352c // 352c <___gnu_csky_case_uhi> + 76d8: 00330006 .long 0x00330006 + 76dc: 008d0060 .long 0x008d0060 + 76e0: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 76e4: 0814 bt 0x770c // 770c + if(g_switch.feedback_light_selection == 0x01){ + 76e6: 8462 ld.b r3, (r4, 0x2) + 76e8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 76ea: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 76ec: 080a bt 0x7700 // 7700 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 76ee: 300b movi r0, 11 + 76f0: e0000532 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 76f4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 76f6: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 76f8: e000052e bsr 0x8154 // 8154 + g_switch.light_state[T_CH1] = state; + 76fc: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 76fe: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7700: 3006 movi r0, 6 + 7702: e0000529 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7706: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 7708: 300b movi r0, 11 + 770a: 07f7 br 0x76f8 // 76f8 + }else if(state == Control_OFF){ + 770c: 3942 cmpnei r1, 2 + 770e: 0bf7 bt 0x76fc // 76fc + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7710: 016a lrw r3, 0x200000c0 // 7a64 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7712: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7714: 9360 ld.w r3, (r3, 0x0) + 7716: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7718: 8462 ld.b r3, (r4, 0x2) + 771a: 3b41 cmpnei r3, 1 + 771c: 0809 bt 0x772e // 772e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 771e: 300b movi r0, 11 + 7720: e000051a bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7724: 846a ld.b r3, (r4, 0xa) + 7726: 3b41 cmpnei r3, 1 + 7728: 0bea bt 0x76fc // 76fc + 772a: 3101 movi r1, 1 + 772c: 07e5 br 0x76f6 // 76f6 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 772e: 3006 movi r0, 6 + 7730: e0000512 bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 7734: 846a ld.b r3, (r4, 0xa) + 7736: 3b41 cmpnei r3, 1 + 7738: 0be2 bt 0x76fc // 76fc + 773a: 3101 movi r1, 1 + 773c: 07e6 br 0x7708 // 7708 + if(state == Control_ON){ + 773e: 0814 bt 0x7766 // 7766 + if(g_switch.feedback_light_selection == 0x01){ + 7740: 8462 ld.b r3, (r4, 0x2) + 7742: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 7744: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7746: 080a bt 0x775a // 775a + TM1812_Control_CH_State(TPK2_White,Control_ON); + 7748: 300c movi r0, 12 + 774a: e0000505 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 774e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 7750: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 7752: e0000501 bsr 0x8154 // 8154 + g_switch.light_state[T_CH2] = state; + 7756: a4a6 st.b r5, (r4, 0x6) + break; + 7758: 07d3 br 0x76fe // 76fe + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 775a: 3007 movi r0, 7 + 775c: e00004fc bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7760: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 7762: 300c movi r0, 12 + 7764: 07f7 br 0x7752 // 7752 + }else if(state == Control_OFF){ + 7766: 3942 cmpnei r1, 2 + 7768: 0bf7 bt 0x7756 // 7756 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 776a: 0260 lrw r3, 0x200000c0 // 7a64 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 776c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 776e: 9360 ld.w r3, (r3, 0x0) + 7770: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7772: 8462 ld.b r3, (r4, 0x2) + 7774: 3b41 cmpnei r3, 1 + 7776: 0809 bt 0x7788 // 7788 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7778: 300c movi r0, 12 + 777a: e00004ed bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 777e: 846a ld.b r3, (r4, 0xa) + 7780: 3b41 cmpnei r3, 1 + 7782: 0bea bt 0x7756 // 7756 + 7784: 3101 movi r1, 1 + 7786: 07e5 br 0x7750 // 7750 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7788: 3007 movi r0, 7 + 778a: e00004e5 bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 778e: 846a ld.b r3, (r4, 0xa) + 7790: 3b41 cmpnei r3, 1 + 7792: 0be2 bt 0x7756 // 7756 + 7794: 3101 movi r1, 1 + 7796: 07e6 br 0x7762 // 7762 + if(state == Control_ON){ + 7798: 0814 bt 0x77c0 // 77c0 + if(g_switch.feedback_light_selection == 0x01){ + 779a: 8462 ld.b r3, (r4, 0x2) + 779c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 779e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 77a0: 080a bt 0x77b4 // 77b4 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 77a2: 300d movi r0, 13 + 77a4: e00004d8 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 77a8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 77aa: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 77ac: e00004d4 bsr 0x8154 // 8154 + g_switch.light_state[T_CH3] = state; + 77b0: a4a7 st.b r5, (r4, 0x7) + break; + 77b2: 07a6 br 0x76fe // 76fe + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 77b4: 3008 movi r0, 8 + 77b6: e00004cf bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 77ba: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 77bc: 300d movi r0, 13 + 77be: 07f7 br 0x77ac // 77ac + }else if(state == Control_OFF){ + 77c0: 3942 cmpnei r1, 2 + 77c2: 0bf7 bt 0x77b0 // 77b0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 77c4: 0277 lrw r3, 0x200000c0 // 7a64 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 77c6: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 77c8: 9360 ld.w r3, (r3, 0x0) + 77ca: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 77cc: 8462 ld.b r3, (r4, 0x2) + 77ce: 3b41 cmpnei r3, 1 + 77d0: 0809 bt 0x77e2 // 77e2 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 77d2: 300d movi r0, 13 + 77d4: e00004c0 bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 77d8: 846a ld.b r3, (r4, 0xa) + 77da: 3b41 cmpnei r3, 1 + 77dc: 0bea bt 0x77b0 // 77b0 + 77de: 3101 movi r1, 1 + 77e0: 07e5 br 0x77aa // 77aa + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 77e2: 3008 movi r0, 8 + 77e4: e00004b8 bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 77e8: 846a ld.b r3, (r4, 0xa) + 77ea: 3b41 cmpnei r3, 1 + 77ec: 0be2 bt 0x77b0 // 77b0 + 77ee: 3101 movi r1, 1 + 77f0: 07e6 br 0x77bc // 77bc + if(state == Control_ON){ + 77f2: 0814 bt 0x781a // 781a + if(g_switch.feedback_light_selection == 0x01){ + 77f4: 8462 ld.b r3, (r4, 0x2) + 77f6: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 77f8: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 77fa: 080a bt 0x780e // 780e + TM1812_Control_CH_State(TPK4_White,Control_ON); + 77fc: 300e movi r0, 14 + 77fe: e00004ab bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7802: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 7804: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 7806: e00004a7 bsr 0x8154 // 8154 + g_switch.light_state[T_CH4] = state; + 780a: a4a8 st.b r5, (r4, 0x8) + break; + 780c: 0779 br 0x76fe // 76fe + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 780e: 3009 movi r0, 9 + 7810: e00004a2 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7814: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 7816: 300e movi r0, 14 + 7818: 07f7 br 0x7806 // 7806 + }else if(state == Control_OFF){ + 781a: 3942 cmpnei r1, 2 + 781c: 0bf7 bt 0x780a // 780a + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 781e: 036d lrw r3, 0x200000c0 // 7a64 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7820: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7822: 9360 ld.w r3, (r3, 0x0) + 7824: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7826: 8462 ld.b r3, (r4, 0x2) + 7828: 3b41 cmpnei r3, 1 + 782a: 0809 bt 0x783c // 783c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 782c: 300e movi r0, 14 + 782e: e0000493 bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 7832: 846a ld.b r3, (r4, 0xa) + 7834: 3b41 cmpnei r3, 1 + 7836: 0bea bt 0x780a // 780a + 7838: 3101 movi r1, 1 + 783a: 07e5 br 0x7804 // 7804 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 783c: 3009 movi r0, 9 + 783e: e000048b bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 7842: 846a ld.b r3, (r4, 0xa) + 7844: 3b41 cmpnei r3, 1 + 7846: 0be2 bt 0x780a // 780a + 7848: 3101 movi r1, 1 + 784a: 07e6 br 0x7816 // 7816 + if(state == Control_ON){ + 784c: 0814 bt 0x7874 // 7874 + if(g_switch.feedback_light_selection == 0x01){ + 784e: 8462 ld.b r3, (r4, 0x2) + 7850: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 7852: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7854: 080a bt 0x7868 // 7868 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 7856: 300f movi r0, 15 + 7858: e000047e bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 785c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 785e: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 7860: e000047a bsr 0x8154 // 8154 + g_switch.light_state[T_CH5] = state; + 7864: a4a9 st.b r5, (r4, 0x9) + break; + 7866: 074c br 0x76fe // 76fe + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 7868: 300a movi r0, 10 + 786a: e0000475 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 786e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 7870: 300f movi r0, 15 + 7872: 07f7 br 0x7860 // 7860 + }else if(state == Control_OFF){ + 7874: 3942 cmpnei r1, 2 + 7876: 0bf7 bt 0x7864 // 7864 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7878: 137b lrw r3, 0x200000c0 // 7a64 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 787a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 787c: 9360 ld.w r3, (r3, 0x0) + 787e: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7880: 8462 ld.b r3, (r4, 0x2) + 7882: 3b41 cmpnei r3, 1 + 7884: 0809 bt 0x7896 // 7896 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7886: 300f movi r0, 15 + 7888: e0000466 bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 788c: 846a ld.b r3, (r4, 0xa) + 788e: 3b41 cmpnei r3, 1 + 7890: 0bea bt 0x7864 // 7864 + 7892: 3101 movi r1, 1 + 7894: 07e5 br 0x785e // 785e + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7896: 300a movi r0, 10 + 7898: e000045e bsr 0x8154 // 8154 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 789c: 846a ld.b r3, (r4, 0xa) + 789e: 3b41 cmpnei r3, 1 + 78a0: 0be2 bt 0x7864 // 7864 + 78a2: 3101 movi r1, 1 + 78a4: 07e6 br 0x7870 // 7870 + if(state == Control_ON){ + 78a6: 08b1 bt 0x7a08 // 7a08 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 78a8: 136f lrw r3, 0x200000c0 // 7a64 + 78aa: 9360 ld.w r3, (r3, 0x0) + 78ac: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 78ae: 8462 ld.b r3, (r4, 0x2) + 78b0: 3b41 cmpnei r3, 1 + 78b2: 8465 ld.b r3, (r4, 0x5) + 78b4: 0857 bt 0x7962 // 7962 + if(g_switch.light_state[T_CH1] != Control_ON) { + 78b6: 3b41 cmpnei r3, 1 + 78b8: 0c33 bf 0x791e // 791e + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 78ba: 3101 movi r1, 1 + 78bc: 3006 movi r0, 6 + 78be: e000044b bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 78c2: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 78c4: 300b movi r0, 11 + 78c6: e0000447 bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH2] != Control_ON) { + 78ca: 8466 ld.b r3, (r4, 0x6) + 78cc: 3b41 cmpnei r3, 1 + 78ce: 0c2e bf 0x792a // 792a + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 78d0: 3101 movi r1, 1 + 78d2: 3007 movi r0, 7 + 78d4: e0000440 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 78d8: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 78da: 300c movi r0, 12 + 78dc: e000043c bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH3] != Control_ON) { + 78e0: 8467 ld.b r3, (r4, 0x7) + 78e2: 3b41 cmpnei r3, 1 + 78e4: 0c29 bf 0x7936 // 7936 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 78e6: 3101 movi r1, 1 + 78e8: 3008 movi r0, 8 + 78ea: e0000435 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 78ee: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 78f0: 300d movi r0, 13 + 78f2: e0000431 bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH4] != Control_ON) { + 78f6: 8468 ld.b r3, (r4, 0x8) + 78f8: 3b41 cmpnei r3, 1 + 78fa: 0c24 bf 0x7942 // 7942 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 78fc: 3101 movi r1, 1 + 78fe: 3009 movi r0, 9 + 7900: e000042a bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7904: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 7906: 300e movi r0, 14 + 7908: e0000426 bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH5] != Control_ON) { + 790c: 8469 ld.b r3, (r4, 0x9) + 790e: 3b41 cmpnei r3, 1 + 7910: 0c1f bf 0x794e // 794e + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 7912: 3101 movi r1, 1 + 7914: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7916: e000041f bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 791a: 3102 movi r1, 2 + 791c: 041e br 0x7958 // 7958 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 791e: 3102 movi r1, 2 + 7920: 3006 movi r0, 6 + 7922: e0000419 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 7926: 3101 movi r1, 1 + 7928: 07ce br 0x78c4 // 78c4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 792a: 3102 movi r1, 2 + 792c: 3007 movi r0, 7 + 792e: e0000413 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 7932: 3101 movi r1, 1 + 7934: 07d3 br 0x78da // 78da + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7936: 3102 movi r1, 2 + 7938: 3008 movi r0, 8 + 793a: e000040d bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 793e: 3101 movi r1, 1 + 7940: 07d8 br 0x78f0 // 78f0 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7942: 3102 movi r1, 2 + 7944: 3009 movi r0, 9 + 7946: e0000407 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 794a: 3101 movi r1, 1 + 794c: 07dd br 0x7906 // 7906 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 794e: 3102 movi r1, 2 + 7950: 300a movi r0, 10 + 7952: e0000401 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 7956: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7958: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 795a: e00003fd bsr 0x8154 // 8154 + g_switch.light_state[T_Backlight] = state; + 795e: a4aa st.b r5, (r4, 0xa) +} + 7960: 06cf br 0x76fe // 76fe + if(g_switch.light_state[T_CH1] != Control_ON) { + 7962: 3b41 cmpnei r3, 1 + 7964: 0c33 bf 0x79ca // 79ca + TM1812_Control_CH_State(TPK1_White,Control_ON); + 7966: 3101 movi r1, 1 + 7968: 300b movi r0, 11 + 796a: e00003f5 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 796e: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 7970: 3006 movi r0, 6 + 7972: e00003f1 bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7976: 8466 ld.b r3, (r4, 0x6) + 7978: 3b41 cmpnei r3, 1 + 797a: 0c2e bf 0x79d6 // 79d6 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 797c: 3101 movi r1, 1 + 797e: 300c movi r0, 12 + 7980: e00003ea bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7984: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 7986: 3007 movi r0, 7 + 7988: e00003e6 bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH3] != Control_ON) { + 798c: 8467 ld.b r3, (r4, 0x7) + 798e: 3b41 cmpnei r3, 1 + 7990: 0c29 bf 0x79e2 // 79e2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 7992: 3101 movi r1, 1 + 7994: 300d movi r0, 13 + 7996: e00003df bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 799a: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 799c: 3008 movi r0, 8 + 799e: e00003db bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH4] != Control_ON) { + 79a2: 8468 ld.b r3, (r4, 0x8) + 79a4: 3b41 cmpnei r3, 1 + 79a6: 0c24 bf 0x79ee // 79ee + TM1812_Control_CH_State(TPK4_White,Control_ON); + 79a8: 3101 movi r1, 1 + 79aa: 300e movi r0, 14 + 79ac: e00003d4 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 79b0: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 79b2: 3009 movi r0, 9 + 79b4: e00003d0 bsr 0x8154 // 8154 + if(g_switch.light_state[T_CH5] != Control_ON) { + 79b8: 8469 ld.b r3, (r4, 0x9) + 79ba: 3b41 cmpnei r3, 1 + 79bc: 0c1f bf 0x79fa // 79fa + TM1812_Control_CH_State(TPK5_White,Control_ON); + 79be: 3101 movi r1, 1 + 79c0: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 79c2: e00003c9 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 79c6: 3102 movi r1, 2 + 79c8: 041e br 0x7a04 // 7a04 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 79ca: 3102 movi r1, 2 + 79cc: 300b movi r0, 11 + 79ce: e00003c3 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 79d2: 3101 movi r1, 1 + 79d4: 07ce br 0x7970 // 7970 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 79d6: 3102 movi r1, 2 + 79d8: 300c movi r0, 12 + 79da: e00003bd bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 79de: 3101 movi r1, 1 + 79e0: 07d3 br 0x7986 // 7986 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 79e2: 3102 movi r1, 2 + 79e4: 300d movi r0, 13 + 79e6: e00003b7 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 79ea: 3101 movi r1, 1 + 79ec: 07d8 br 0x799c // 799c + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 79ee: 3102 movi r1, 2 + 79f0: 300e movi r0, 14 + 79f2: e00003b1 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 79f6: 3101 movi r1, 1 + 79f8: 07dd br 0x79b2 // 79b2 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 79fa: 3102 movi r1, 2 + 79fc: 300f movi r0, 15 + 79fe: e00003ab bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 7a02: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7a04: 300a movi r0, 10 + 7a06: 07aa br 0x795a // 795a + }else if(state == Control_OFF){ + 7a08: 3942 cmpnei r1, 2 + 7a0a: 0baa bt 0x795e // 795e + if(g_switch.feedback_light_selection == 0x01){ + 7a0c: 8462 ld.b r3, (r4, 0x2) + 7a0e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7a10: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 7a12: 082b bt 0x7a68 // 7a68 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7a14: 3006 movi r0, 6 + 7a16: e000039f bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7a1a: 3102 movi r1, 2 + 7a1c: 3007 movi r0, 7 + 7a1e: e000039b bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7a22: 3102 movi r1, 2 + 7a24: 3008 movi r0, 8 + 7a26: e0000397 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7a2a: 3102 movi r1, 2 + 7a2c: 3009 movi r0, 9 + 7a2e: e0000393 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 7a32: 3102 movi r1, 2 + 7a34: 300a movi r0, 10 + 7a36: e000038f bsr 0x8154 // 8154 + if(g_switch.autoOff_light_flag == 0x01){ + 7a3a: 8461 ld.b r3, (r4, 0x1) + 7a3c: 3b41 cmpnei r3, 1 + 7a3e: 0b90 bt 0x795e // 795e + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7a40: 3102 movi r1, 2 + 7a42: 300b movi r0, 11 + 7a44: e0000388 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7a48: 3102 movi r1, 2 + 7a4a: 300c movi r0, 12 + 7a4c: e0000384 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7a50: 3102 movi r1, 2 + 7a52: 300d movi r0, 13 + 7a54: e0000380 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7a58: 3102 movi r1, 2 + 7a5a: 300e movi r0, 14 + 7a5c: 075d br 0x7916 // 7916 + 7a5e: 0000 bkpt + 7a60: 200005a4 .long 0x200005a4 + 7a64: 200000c0 .long 0x200000c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 7a68: 300b movi r0, 11 + 7a6a: e0000375 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 7a6e: 3102 movi r1, 2 + 7a70: 300c movi r0, 12 + 7a72: e0000371 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 7a76: 3102 movi r1, 2 + 7a78: 300d movi r0, 13 + 7a7a: e000036d bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 7a7e: 3102 movi r1, 2 + 7a80: 300e movi r0, 14 + 7a82: e0000369 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 7a86: 3102 movi r1, 2 + 7a88: 300f movi r0, 15 + 7a8a: e0000365 bsr 0x8154 // 8154 + if(g_switch.autoOff_light_flag == 0x01){ + 7a8e: 8461 ld.b r3, (r4, 0x1) + 7a90: 3b41 cmpnei r3, 1 + 7a92: 0b66 bt 0x795e // 795e + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 7a94: 3102 movi r1, 2 + 7a96: 3006 movi r0, 6 + 7a98: e000035e bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 7a9c: 3102 movi r1, 2 + 7a9e: 3007 movi r0, 7 + 7aa0: e000035a bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 7aa4: 3102 movi r1, 2 + 7aa6: 3008 movi r0, 8 + 7aa8: e0000356 bsr 0x8154 // 8154 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 7aac: 3102 movi r1, 2 + 7aae: 3009 movi r0, 9 + 7ab0: 0789 br 0x79c2 // 79c2 + +Disassembly of section .text.Contol_Switch_Light_2: + +00007ab4 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 7ab4: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 7ab6: 3805 cmphsi r0, 6 +{ + 7ab8: 6d47 mov r5, r1 + switch(ch) + 7aba: 0818 bt 0x7aea // 7aea + 7abc: 009b lrw r4, 0x200005a4 // 7e4c + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 7abe: 3941 cmpnei r1, 1 + switch(ch) + 7ac0: e3ffdd36 bsr 0x352c // 352c <___gnu_csky_case_uhi> + 7ac4: 00330006 .long 0x00330006 + 7ac8: 008d0060 .long 0x008d0060 + 7acc: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 7ad0: 0814 bt 0x7af8 // 7af8 + if(g_switch.feedback_light_selection == 0x01){ + 7ad2: 8462 ld.b r3, (r4, 0x2) + 7ad4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7ad6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7ad8: 080a bt 0x7aec // 7aec + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7ada: 300b movi r0, 11 + 7adc: e0000374 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7ae0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7ae2: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7ae4: e0000370 bsr 0x81c4 // 81c4 + g_switch.light_state[T_CH1] = state; + 7ae8: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 7aea: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7aec: 3006 movi r0, 6 + 7aee: e000036b bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7af2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7af4: 300b movi r0, 11 + 7af6: 07f7 br 0x7ae4 // 7ae4 + }else if(state == Control_OFF){ + 7af8: 3942 cmpnei r1, 2 + 7afa: 0bf7 bt 0x7ae8 // 7ae8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7afc: 016a lrw r3, 0x200000c0 // 7e50 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7afe: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7b00: 9360 ld.w r3, (r3, 0x0) + 7b02: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7b04: 8462 ld.b r3, (r4, 0x2) + 7b06: 3b41 cmpnei r3, 1 + 7b08: 0809 bt 0x7b1a // 7b1a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7b0a: 300b movi r0, 11 + 7b0c: e000035c bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7b10: 846a ld.b r3, (r4, 0xa) + 7b12: 3b41 cmpnei r3, 1 + 7b14: 0bea bt 0x7ae8 // 7ae8 + 7b16: 3101 movi r1, 1 + 7b18: 07e5 br 0x7ae2 // 7ae2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7b1a: 3006 movi r0, 6 + 7b1c: e0000354 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7b20: 846a ld.b r3, (r4, 0xa) + 7b22: 3b41 cmpnei r3, 1 + 7b24: 0be2 bt 0x7ae8 // 7ae8 + 7b26: 3101 movi r1, 1 + 7b28: 07e6 br 0x7af4 // 7af4 + if(state == Control_ON){ + 7b2a: 0814 bt 0x7b52 // 7b52 + if(g_switch.feedback_light_selection == 0x01){ + 7b2c: 8462 ld.b r3, (r4, 0x2) + 7b2e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7b30: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7b32: 080a bt 0x7b46 // 7b46 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7b34: 300c movi r0, 12 + 7b36: e0000347 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7b3a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7b3c: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7b3e: e0000343 bsr 0x81c4 // 81c4 + g_switch.light_state[T_CH2] = state; + 7b42: a4a6 st.b r5, (r4, 0x6) + break; + 7b44: 07d3 br 0x7aea // 7aea + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7b46: 3007 movi r0, 7 + 7b48: e000033e bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7b4c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7b4e: 300c movi r0, 12 + 7b50: 07f7 br 0x7b3e // 7b3e + }else if(state == Control_OFF){ + 7b52: 3942 cmpnei r1, 2 + 7b54: 0bf7 bt 0x7b42 // 7b42 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7b56: 0260 lrw r3, 0x200000c0 // 7e50 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7b58: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7b5a: 9360 ld.w r3, (r3, 0x0) + 7b5c: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7b5e: 8462 ld.b r3, (r4, 0x2) + 7b60: 3b41 cmpnei r3, 1 + 7b62: 0809 bt 0x7b74 // 7b74 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7b64: 300c movi r0, 12 + 7b66: e000032f bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7b6a: 846a ld.b r3, (r4, 0xa) + 7b6c: 3b41 cmpnei r3, 1 + 7b6e: 0bea bt 0x7b42 // 7b42 + 7b70: 3101 movi r1, 1 + 7b72: 07e5 br 0x7b3c // 7b3c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7b74: 3007 movi r0, 7 + 7b76: e0000327 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7b7a: 846a ld.b r3, (r4, 0xa) + 7b7c: 3b41 cmpnei r3, 1 + 7b7e: 0be2 bt 0x7b42 // 7b42 + 7b80: 3101 movi r1, 1 + 7b82: 07e6 br 0x7b4e // 7b4e + if(state == Control_ON){ + 7b84: 0814 bt 0x7bac // 7bac + if(g_switch.feedback_light_selection == 0x01){ + 7b86: 8462 ld.b r3, (r4, 0x2) + 7b88: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7b8a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7b8c: 080a bt 0x7ba0 // 7ba0 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7b8e: 300d movi r0, 13 + 7b90: e000031a bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7b94: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7b96: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7b98: e0000316 bsr 0x81c4 // 81c4 + g_switch.light_state[T_CH3] = state; + 7b9c: a4a7 st.b r5, (r4, 0x7) + break; + 7b9e: 07a6 br 0x7aea // 7aea + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7ba0: 3008 movi r0, 8 + 7ba2: e0000311 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7ba6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7ba8: 300d movi r0, 13 + 7baa: 07f7 br 0x7b98 // 7b98 + }else if(state == Control_OFF){ + 7bac: 3942 cmpnei r1, 2 + 7bae: 0bf7 bt 0x7b9c // 7b9c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7bb0: 0277 lrw r3, 0x200000c0 // 7e50 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7bb2: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7bb4: 9360 ld.w r3, (r3, 0x0) + 7bb6: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7bb8: 8462 ld.b r3, (r4, 0x2) + 7bba: 3b41 cmpnei r3, 1 + 7bbc: 0809 bt 0x7bce // 7bce + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7bbe: 300d movi r0, 13 + 7bc0: e0000302 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7bc4: 846a ld.b r3, (r4, 0xa) + 7bc6: 3b41 cmpnei r3, 1 + 7bc8: 0bea bt 0x7b9c // 7b9c + 7bca: 3101 movi r1, 1 + 7bcc: 07e5 br 0x7b96 // 7b96 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7bce: 3008 movi r0, 8 + 7bd0: e00002fa bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7bd4: 846a ld.b r3, (r4, 0xa) + 7bd6: 3b41 cmpnei r3, 1 + 7bd8: 0be2 bt 0x7b9c // 7b9c + 7bda: 3101 movi r1, 1 + 7bdc: 07e6 br 0x7ba8 // 7ba8 + if(state == Control_ON){ + 7bde: 0814 bt 0x7c06 // 7c06 + if(g_switch.feedback_light_selection == 0x01){ + 7be0: 8462 ld.b r3, (r4, 0x2) + 7be2: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7be4: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7be6: 080a bt 0x7bfa // 7bfa + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7be8: 300e movi r0, 14 + 7bea: e00002ed bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7bee: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7bf0: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7bf2: e00002e9 bsr 0x81c4 // 81c4 + g_switch.light_state[T_CH4] = state; + 7bf6: a4a8 st.b r5, (r4, 0x8) + break; + 7bf8: 0779 br 0x7aea // 7aea + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7bfa: 3009 movi r0, 9 + 7bfc: e00002e4 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7c00: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7c02: 300e movi r0, 14 + 7c04: 07f7 br 0x7bf2 // 7bf2 + }else if(state == Control_OFF){ + 7c06: 3942 cmpnei r1, 2 + 7c08: 0bf7 bt 0x7bf6 // 7bf6 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c0a: 036d lrw r3, 0x200000c0 // 7e50 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7c0c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c0e: 9360 ld.w r3, (r3, 0x0) + 7c10: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7c12: 8462 ld.b r3, (r4, 0x2) + 7c14: 3b41 cmpnei r3, 1 + 7c16: 0809 bt 0x7c28 // 7c28 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7c18: 300e movi r0, 14 + 7c1a: e00002d5 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7c1e: 846a ld.b r3, (r4, 0xa) + 7c20: 3b41 cmpnei r3, 1 + 7c22: 0bea bt 0x7bf6 // 7bf6 + 7c24: 3101 movi r1, 1 + 7c26: 07e5 br 0x7bf0 // 7bf0 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7c28: 3009 movi r0, 9 + 7c2a: e00002cd bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7c2e: 846a ld.b r3, (r4, 0xa) + 7c30: 3b41 cmpnei r3, 1 + 7c32: 0be2 bt 0x7bf6 // 7bf6 + 7c34: 3101 movi r1, 1 + 7c36: 07e6 br 0x7c02 // 7c02 + if(state == Control_ON){ + 7c38: 0814 bt 0x7c60 // 7c60 + if(g_switch.feedback_light_selection == 0x01){ + 7c3a: 8462 ld.b r3, (r4, 0x2) + 7c3c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7c3e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 7c40: 080a bt 0x7c54 // 7c54 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7c42: 300f movi r0, 15 + 7c44: e00002c0 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7c48: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7c4a: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7c4c: e00002bc bsr 0x81c4 // 81c4 + g_switch.light_state[T_CH5] = state; + 7c50: a4a9 st.b r5, (r4, 0x9) + break; + 7c52: 074c br 0x7aea // 7aea + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7c54: 300a movi r0, 10 + 7c56: e00002b7 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7c5a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7c5c: 300f movi r0, 15 + 7c5e: 07f7 br 0x7c4c // 7c4c + }else if(state == Control_OFF){ + 7c60: 3942 cmpnei r1, 2 + 7c62: 0bf7 bt 0x7c50 // 7c50 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c64: 137b lrw r3, 0x200000c0 // 7e50 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7c66: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c68: 9360 ld.w r3, (r3, 0x0) + 7c6a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7c6c: 8462 ld.b r3, (r4, 0x2) + 7c6e: 3b41 cmpnei r3, 1 + 7c70: 0809 bt 0x7c82 // 7c82 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7c72: 300f movi r0, 15 + 7c74: e00002a8 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7c78: 846a ld.b r3, (r4, 0xa) + 7c7a: 3b41 cmpnei r3, 1 + 7c7c: 0bea bt 0x7c50 // 7c50 + 7c7e: 3101 movi r1, 1 + 7c80: 07e5 br 0x7c4a // 7c4a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7c82: 300a movi r0, 10 + 7c84: e00002a0 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7c88: 846a ld.b r3, (r4, 0xa) + 7c8a: 3b41 cmpnei r3, 1 + 7c8c: 0be2 bt 0x7c50 // 7c50 + 7c8e: 3101 movi r1, 1 + 7c90: 07e6 br 0x7c5c // 7c5c + if(state == Control_ON){ + 7c92: 08b1 bt 0x7df4 // 7df4 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 7c94: 136f lrw r3, 0x200000c0 // 7e50 + 7c96: 9360 ld.w r3, (r3, 0x0) + 7c98: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 7c9a: 8462 ld.b r3, (r4, 0x2) + 7c9c: 3b41 cmpnei r3, 1 + 7c9e: 8465 ld.b r3, (r4, 0x5) + 7ca0: 0857 bt 0x7d4e // 7d4e + if(g_switch.light_state[T_CH1] != Control_ON) { + 7ca2: 3b41 cmpnei r3, 1 + 7ca4: 0c33 bf 0x7d0a // 7d0a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7ca6: 3101 movi r1, 1 + 7ca8: 3006 movi r0, 6 + 7caa: e000028d bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7cae: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7cb0: 300b movi r0, 11 + 7cb2: e0000289 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7cb6: 8466 ld.b r3, (r4, 0x6) + 7cb8: 3b41 cmpnei r3, 1 + 7cba: 0c2e bf 0x7d16 // 7d16 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7cbc: 3101 movi r1, 1 + 7cbe: 3007 movi r0, 7 + 7cc0: e0000282 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7cc4: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7cc6: 300c movi r0, 12 + 7cc8: e000027e bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH3] != Control_ON) { + 7ccc: 8467 ld.b r3, (r4, 0x7) + 7cce: 3b41 cmpnei r3, 1 + 7cd0: 0c29 bf 0x7d22 // 7d22 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7cd2: 3101 movi r1, 1 + 7cd4: 3008 movi r0, 8 + 7cd6: e0000277 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7cda: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7cdc: 300d movi r0, 13 + 7cde: e0000273 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH4] != Control_ON) { + 7ce2: 8468 ld.b r3, (r4, 0x8) + 7ce4: 3b41 cmpnei r3, 1 + 7ce6: 0c24 bf 0x7d2e // 7d2e + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7ce8: 3101 movi r1, 1 + 7cea: 3009 movi r0, 9 + 7cec: e000026c bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7cf0: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7cf2: 300e movi r0, 14 + 7cf4: e0000268 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH5] != Control_ON) { + 7cf8: 8469 ld.b r3, (r4, 0x9) + 7cfa: 3b41 cmpnei r3, 1 + 7cfc: 0c1f bf 0x7d3a // 7d3a + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7cfe: 3101 movi r1, 1 + 7d00: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7d02: e0000261 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7d06: 3102 movi r1, 2 + 7d08: 041e br 0x7d44 // 7d44 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7d0a: 3102 movi r1, 2 + 7d0c: 3006 movi r0, 6 + 7d0e: e000025b bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7d12: 3101 movi r1, 1 + 7d14: 07ce br 0x7cb0 // 7cb0 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7d16: 3102 movi r1, 2 + 7d18: 3007 movi r0, 7 + 7d1a: e0000255 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7d1e: 3101 movi r1, 1 + 7d20: 07d3 br 0x7cc6 // 7cc6 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7d22: 3102 movi r1, 2 + 7d24: 3008 movi r0, 8 + 7d26: e000024f bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7d2a: 3101 movi r1, 1 + 7d2c: 07d8 br 0x7cdc // 7cdc + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7d2e: 3102 movi r1, 2 + 7d30: 3009 movi r0, 9 + 7d32: e0000249 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d36: 3101 movi r1, 1 + 7d38: 07dd br 0x7cf2 // 7cf2 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7d3a: 3102 movi r1, 2 + 7d3c: 300a movi r0, 10 + 7d3e: e0000243 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7d42: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7d44: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7d46: e000023f bsr 0x81c4 // 81c4 + g_switch.light_state[T_Backlight] = state; + 7d4a: a4aa st.b r5, (r4, 0xa) +} + 7d4c: 06cf br 0x7aea // 7aea + if(g_switch.light_state[T_CH1] != Control_ON) { + 7d4e: 3b41 cmpnei r3, 1 + 7d50: 0c33 bf 0x7db6 // 7db6 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 7d52: 3101 movi r1, 1 + 7d54: 300b movi r0, 11 + 7d56: e0000237 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7d5a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7d5c: 3006 movi r0, 6 + 7d5e: e0000233 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH2] != Control_ON) { + 7d62: 8466 ld.b r3, (r4, 0x6) + 7d64: 3b41 cmpnei r3, 1 + 7d66: 0c2e bf 0x7dc2 // 7dc2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 7d68: 3101 movi r1, 1 + 7d6a: 300c movi r0, 12 + 7d6c: e000022c bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7d70: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7d72: 3007 movi r0, 7 + 7d74: e0000228 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH3] != Control_ON) { + 7d78: 8467 ld.b r3, (r4, 0x7) + 7d7a: 3b41 cmpnei r3, 1 + 7d7c: 0c29 bf 0x7dce // 7dce + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 7d7e: 3101 movi r1, 1 + 7d80: 300d movi r0, 13 + 7d82: e0000221 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7d86: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7d88: 3008 movi r0, 8 + 7d8a: e000021d bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH4] != Control_ON) { + 7d8e: 8468 ld.b r3, (r4, 0x8) + 7d90: 3b41 cmpnei r3, 1 + 7d92: 0c24 bf 0x7dda // 7dda + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 7d94: 3101 movi r1, 1 + 7d96: 300e movi r0, 14 + 7d98: e0000216 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7d9c: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7d9e: 3009 movi r0, 9 + 7da0: e0000212 bsr 0x81c4 // 81c4 + if(g_switch.light_state[T_CH5] != Control_ON) { + 7da4: 8469 ld.b r3, (r4, 0x9) + 7da6: 3b41 cmpnei r3, 1 + 7da8: 0c1f bf 0x7de6 // 7de6 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 7daa: 3101 movi r1, 1 + 7dac: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7dae: e000020b bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7db2: 3102 movi r1, 2 + 7db4: 041e br 0x7df0 // 7df0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7db6: 3102 movi r1, 2 + 7db8: 300b movi r0, 11 + 7dba: e0000205 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 7dbe: 3101 movi r1, 1 + 7dc0: 07ce br 0x7d5c // 7d5c + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7dc2: 3102 movi r1, 2 + 7dc4: 300c movi r0, 12 + 7dc6: e00001ff bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 7dca: 3101 movi r1, 1 + 7dcc: 07d3 br 0x7d72 // 7d72 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7dce: 3102 movi r1, 2 + 7dd0: 300d movi r0, 13 + 7dd2: e00001f9 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 7dd6: 3101 movi r1, 1 + 7dd8: 07d8 br 0x7d88 // 7d88 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7dda: 3102 movi r1, 2 + 7ddc: 300e movi r0, 14 + 7dde: e00001f3 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 7de2: 3101 movi r1, 1 + 7de4: 07dd br 0x7d9e // 7d9e + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7de6: 3102 movi r1, 2 + 7de8: 300f movi r0, 15 + 7dea: e00001ed bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 7dee: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7df0: 300a movi r0, 10 + 7df2: 07aa br 0x7d46 // 7d46 + }else if(state == Control_OFF){ + 7df4: 3942 cmpnei r1, 2 + 7df6: 0baa bt 0x7d4a // 7d4a + if(g_switch.feedback_light_selection == 0x01){ + 7df8: 8462 ld.b r3, (r4, 0x2) + 7dfa: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7dfc: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 7dfe: 082b bt 0x7e54 // 7e54 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7e00: 3006 movi r0, 6 + 7e02: e00001e1 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7e06: 3102 movi r1, 2 + 7e08: 3007 movi r0, 7 + 7e0a: e00001dd bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7e0e: 3102 movi r1, 2 + 7e10: 3008 movi r0, 8 + 7e12: e00001d9 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7e16: 3102 movi r1, 2 + 7e18: 3009 movi r0, 9 + 7e1a: e00001d5 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 7e1e: 3102 movi r1, 2 + 7e20: 300a movi r0, 10 + 7e22: e00001d1 bsr 0x81c4 // 81c4 + if(g_switch.autoOff_light_flag == 0x01){ + 7e26: 8461 ld.b r3, (r4, 0x1) + 7e28: 3b41 cmpnei r3, 1 + 7e2a: 0b90 bt 0x7d4a // 7d4a + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7e2c: 3102 movi r1, 2 + 7e2e: 300b movi r0, 11 + 7e30: e00001ca bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7e34: 3102 movi r1, 2 + 7e36: 300c movi r0, 12 + 7e38: e00001c6 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7e3c: 3102 movi r1, 2 + 7e3e: 300d movi r0, 13 + 7e40: e00001c2 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7e44: 3102 movi r1, 2 + 7e46: 300e movi r0, 14 + 7e48: 075d br 0x7d02 // 7d02 + 7e4a: 0000 bkpt + 7e4c: 200005a4 .long 0x200005a4 + 7e50: 200000c0 .long 0x200000c0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 7e54: 300b movi r0, 11 + 7e56: e00001b7 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 7e5a: 3102 movi r1, 2 + 7e5c: 300c movi r0, 12 + 7e5e: e00001b3 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 7e62: 3102 movi r1, 2 + 7e64: 300d movi r0, 13 + 7e66: e00001af bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 7e6a: 3102 movi r1, 2 + 7e6c: 300e movi r0, 14 + 7e6e: e00001ab bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 7e72: 3102 movi r1, 2 + 7e74: 300f movi r0, 15 + 7e76: e00001a7 bsr 0x81c4 // 81c4 + if(g_switch.autoOff_light_flag == 0x01){ + 7e7a: 8461 ld.b r3, (r4, 0x1) + 7e7c: 3b41 cmpnei r3, 1 + 7e7e: 0b66 bt 0x7d4a // 7d4a + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 7e80: 3102 movi r1, 2 + 7e82: 3006 movi r0, 6 + 7e84: e00001a0 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 7e88: 3102 movi r1, 2 + 7e8a: 3007 movi r0, 7 + 7e8c: e000019c bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 7e90: 3102 movi r1, 2 + 7e92: 3008 movi r0, 8 + 7e94: e0000198 bsr 0x81c4 // 81c4 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 7e98: 3102 movi r1, 2 + 7e9a: 3009 movi r0, 9 + 7e9c: 0789 br 0x7dae // 7dae + +Disassembly of section .text.Contol_Switch_ClickAction: + +00007ea0 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 7ea0: 14d0 push r15 + switch(ch) + 7ea2: 3804 cmphsi r0, 5 + 7ea4: 0809 bt 0x7eb6 // 7eb6 + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 7ea6: 1068 lrw r3, 0x200005a4 // 7ec4 + 7ea8: 836a ld.b r3, (r3, 0xa) + 7eaa: 3b41 cmpnei r3, 1 + 7eac: 0806 bt 0x7eb8 // 7eb8 + if(state == Control_ON ){ + 7eae: 3941 cmpnei r1, 1 + 7eb0: 0804 bt 0x7eb8 // 7eb8 + Contol_Switch_Light_2(ch,Control_ON); + 7eb2: e3fffe01 bsr 0x7ab4 // 7ab4 + break; + default: + + break; + } +} + 7eb6: 1490 pop r15 + if(state == Control_OFF ){ + 7eb8: 3942 cmpnei r1, 2 + 7eba: 0bfe bt 0x7eb6 // 7eb6 + Contol_Switch_Light(ch,Control_OFF); + 7ebc: e3fffc06 bsr 0x76c8 // 76c8 +} + 7ec0: 07fb br 0x7eb6 // 7eb6 + 7ec2: 0000 bkpt + 7ec4: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Get_TM1812_State_Change: + +00007ec8 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 7ec8: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 7eca: 106f lrw r3, 0x200001a0 // 7f04 + 7ecc: 8318 ld.b r0, (r3, 0x18) + 7ece: 3841 cmpnei r0, 1 + 7ed0: 0c19 bf 0x7f02 // 7f02 + 7ed2: 104e lrw r2, 0x20000140 // 7f08 + 7ed4: 3018 movi r0, 24 + 7ed6: 3300 movi r3, 0 + for(i=0;i + rev++; + 7ee2: 2300 addi r3, 1 + 7ee4: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 7ee6: 5a84 addu r4, r2, r1 + 7ee8: 8480 ld.b r4, (r4, 0x0) + 7eea: 3c41 cmpnei r4, 1 + 7eec: 0803 bt 0x7ef2 // 7ef2 + rev++; + 7eee: 2300 addi r3, 1 + 7ef0: 74cc zextb r3, r3 + 7ef2: 2800 subi r0, 1 + 7ef4: 7400 zextb r0, r0 + for(i=0;i + } + } + + if(rev != 0x00) return 0x01; + 7efc: 3b40 cmpnei r3, 0 + 7efe: 6001 addc r0, r0 + return 0x01; //立即控制 + 7f00: 7400 zextb r0, r0 + return 0x00; +} + 7f02: 1482 pop r4-r5 + 7f04: 200001a0 .long 0x200001a0 + 7f08: 20000140 .long 0x20000140 + +Disassembly of section .text.TimeCall_SIO_Send: + +00007f0c : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 7f0c: 14d4 push r4-r7, r15 + 7f0e: 1421 subi r14, r14, 4 + 7f10: 1264 lrw r3, 0x20000140 // 8020 + 7f12: 3188 movi r1, 136 + 7f14: 3260 movi r2, 96 + 7f16: 604c addu r1, r3 + 7f18: 608c addu r2, r3 + 7f1a: 3718 movi r7, 24 + 7f1c: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 7f2a: 3448 movi r4, 72 + 7f2c: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 7f2e: 84a0 ld.b r5, (r4, 0x0) + 7f30: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 7f32: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 7f34: 083a bt 0x7fa8 // 7fa8 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 7f36: 35ff movi r5, 255 + 7f38: 6542 cmpne r0, r5 + 7f3a: 0c34 bf 0x7fa2 // 7fa2 + //递增 + tm1812_param.gradient_cnt[i]++; + 7f3c: 8280 ld.b r4, (r2, 0x0) + 7f3e: 2400 addi r4, 1 + 7f40: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 7f42: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 7f44: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 7f46: 0c05 bf 0x7f50 // 7f50 + tm1812_param.curr_data[i]++; + 7f48: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 7f4a: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 7f4c: 3000 movi r0, 0 + 7f4e: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 7f50: 3000 movi r0, 0 + 7f52: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 7f54: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 7f56: 3480 movi r4, 128 + 7f58: 6914 and r4, r5 + 7f5a: 3c40 cmpnei r4, 0 + 7f5c: 9180 ld.w r4, (r1, 0x0) + 7f5e: 0c44 bf 0x7fe6 // 7fe6 + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 7f60: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 7f62: 7180 lsl r6, r0 + 7f64: 2001 addi r0, 2 + 7f66: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 7f68: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 7f6a: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 7f6c: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 7f6e: 0bf4 bt 0x7f56 // 7f56 + 7f70: 5f03 subi r0, r7, 1 + 7f72: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 7f7e: e3fff12c bsr 0x61d6 // 61d6 + + for(K=0;K + 7f86: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 7f88: 3022 movi r0, 34 + 7f8a: 1148 lrw r2, 0x2000002c // 8028 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 7f8c: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 7f8e: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 7f90: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 7f9a: e3fff11b bsr 0x61d0 // 61d0 + +} + 7f9e: 1401 addi r14, r14, 4 + 7fa0: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 7fa2: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 7fa4: a400 st.b r0, (r4, 0x0) + 7fa6: 07d5 br 0x7f50 // 7f50 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 7fa8: 3840 cmpnei r0, 0 + 7faa: 0c09 bf 0x7fbc // 7fbc + tm1812_param.gradient_cnt[i]++; + 7fac: 8280 ld.b r4, (r2, 0x0) + 7fae: 2400 addi r4, 1 + 7fb0: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 7fb2: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 7fb4: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 7fb6: 0fcd bf 0x7f50 // 7f50 + tm1812_param.curr_data[i]--; + 7fb8: 2800 subi r0, 1 + 7fba: 07c8 br 0x7f4a // 7f4a + tm1812_param.gradient_dir[i] = 0x01; + 7fbc: 3001 movi r0, 1 + 7fbe: 07f3 br 0x7fa4 // 7fa4 + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 7fc0: 7400 zextb r0, r0 + 7fc2: 8380 ld.b r4, (r3, 0x0) + 7fc4: 6500 cmphs r0, r4 + 7fc6: 0807 bt 0x7fd4 // 7fd4 + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 7fc8: 5ca1 subu r5, r4, r0 + 7fca: 3d24 cmplti r5, 5 + 7fcc: 080b bt 0x7fe2 // 7fe2 + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 7fce: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 7fd0: a318 st.b r0, (r3, 0x18) + 7fd2: 07bf br 0x7f50 // 7f50 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 7fd4: 6410 cmphs r4, r0 + 7fd6: 0bbd bt 0x7f50 // 7f50 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 7fd8: 58b1 subu r5, r0, r4 + 7fda: 3d24 cmplti r5, 5 + 7fdc: 0803 bt 0x7fe2 // 7fe2 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 7fde: 2803 subi r0, 4 + 7fe0: 07f8 br 0x7fd0 // 7fd0 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 7fe2: a398 st.b r4, (r3, 0x18) + 7fe4: 07b6 br 0x7f50 // 7f50 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 7fe6: 3602 movi r6, 2 + 7fe8: 07bd br 0x7f62 // 7f62 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 7fea: 8328 ld.b r1, (r3, 0x8) + 7fec: 6040 addu r1, r0 + 7fee: 4122 lsli r1, r1, 2 + 7ff0: 98c0 ld.w r6, (r14, 0x0) + 7ff2: 6058 addu r1, r6 + 7ff4: 9120 ld.w r1, (r1, 0x0) + 7ff6: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 7ff8: 9228 ld.w r1, (r2, 0x20) + 7ffa: 6850 and r1, r4 + 7ffc: 3940 cmpnei r1, 0 + 7ffe: 0ffd bf 0x7ff8 // 7ff8 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 8000: 922b ld.w r1, (r2, 0x2c) + 8002: 3982 bclri r1, 2 + 8004: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 8006: 9228 ld.w r1, (r2, 0x20) + 8008: 6854 and r1, r5 + 800a: 3940 cmpnei r1, 0 + 800c: 0ffd bf 0x8006 // 8006 + SIO0->ICR &= ~SIO_TXDNE; + 800e: 922b ld.w r1, (r2, 0x2c) + 8010: 3980 bclri r1, 0 + 8012: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 801e: 0000 bkpt + 8020: 20000140 .long 0x20000140 + 8024: 20000220 .long 0x20000220 + 8028: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +0000802c : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 802c: 14d4 push r4-r7, r15 + 802e: 1421 subi r14, r14, 4 + 8030: 1105 lrw r0, 0x20000140 // 80c4 + 8032: 1166 lrw r3, 0x200001c8 // 80c8 + 8034: 3218 movi r2, 24 + 8036: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 804a: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 804c: 7184 lsl r6, r1 + 804e: 2101 addi r1, 2 + 8050: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 8052: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 8054: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 8056: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 8058: 0bf4 bt 0x8040 // 8040 + 805a: 2a00 subi r2, 1 + 805c: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 8066: e3fff0b8 bsr 0x61d6 // 61d6 + + for(K2=0;K2 + 806e: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 8070: 3022 movi r0, 34 + 8072: 1058 lrw r2, 0x2000002c // 80d0 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 8074: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 8076: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 8078: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 8082: e3fff0a7 bsr 0x61d0 // 61d0 + +} + 8086: 1401 addi r14, r14, 4 + 8088: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 808a: 3602 movi r6, 2 + 808c: 07e0 br 0x804c // 804c + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 808e: 8329 ld.b r1, (r3, 0x9) + 8090: 6040 addu r1, r0 + 8092: 4122 lsli r1, r1, 2 + 8094: 98c0 ld.w r6, (r14, 0x0) + 8096: 6058 addu r1, r6 + 8098: 9120 ld.w r1, (r1, 0x0) + 809a: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 809c: 9228 ld.w r1, (r2, 0x20) + 809e: 6850 and r1, r4 + 80a0: 3940 cmpnei r1, 0 + 80a2: 0ffd bf 0x809c // 809c + SIO0->ICR &= ~SIO_TXBUFEMPT; + 80a4: 922b ld.w r1, (r2, 0x2c) + 80a6: 3982 bclri r1, 2 + 80a8: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 80aa: 9228 ld.w r1, (r2, 0x20) + 80ac: 6854 and r1, r5 + 80ae: 3940 cmpnei r1, 0 + 80b0: 0ffd bf 0x80aa // 80aa + SIO0->ICR &= ~SIO_TXDNE; + 80b2: 922b ld.w r1, (r2, 0x2c) + 80b4: 3980 bclri r1, 0 + 80b6: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 80c2: 0000 bkpt + 80c4: 20000140 .long 0x20000140 + 80c8: 200001c8 .long 0x200001c8 + 80cc: 20000220 .long 0x20000220 + 80d0: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +000080d4 : + + +void Tm1812_Task(void) { + 80d4: 14d0 push r15 + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 80d6: e3fffef9 bsr 0x7ec8 // 7ec8 + 80da: 3841 cmpnei r0, 1 + 80dc: 1070 lrw r3, 0x200001c0 // 811c + 80de: 0812 bt 0x8102 // 8102 + if(SysTick_100us - StateChange_Tick >= 20){ + 80e0: 1030 lrw r1, 0x200000bc // 8120 + 80e2: 9140 ld.w r2, (r1, 0x0) + 80e4: 931b ld.w r0, (r3, 0x6c) + 80e6: 6082 subu r2, r0 + 80e8: 3a13 cmphsi r2, 20 + 80ea: 0c0b bf 0x8100 // 8100 + StateChange_Tick = SysTick_100us; + 80ec: 9140 ld.w r2, (r1, 0x0) + 80ee: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 80f0: 104d lrw r2, 0x200000c0 // 8124 + 80f2: 9240 ld.w r2, (r2, 0x0) + 80f4: b341 st.w r2, (r3, 0x4) + tm1812_param.change_flag = 0x00; + 80f6: 106d lrw r3, 0x200001a0 // 8128 + 80f8: 3200 movi r2, 0 + 80fa: a358 st.b r2, (r3, 0x18) + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + + TimeCall_SIO_Send(); + 80fc: e3ffff08 bsr 0x7f0c // 7f0c + } + } + +} + 8100: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 8102: 1029 lrw r1, 0x200000c0 // 8124 + 8104: 9140 ld.w r2, (r1, 0x0) + 8106: 9301 ld.w r0, (r3, 0x4) + 8108: 6082 subu r2, r0 + 810a: 1009 lrw r0, 0x7cf // 812c + 810c: 6480 cmphs r0, r2 + 810e: 0bf9 bt 0x8100 // 8100 + StateChange_Tick = SysTick_100us; + 8110: 1044 lrw r2, 0x200000bc // 8120 + 8112: 9240 ld.w r2, (r2, 0x0) + 8114: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 8116: 9140 ld.w r2, (r1, 0x0) + 8118: b341 st.w r2, (r3, 0x4) + 811a: 07f1 br 0x80fc // 80fc + 811c: 200001c0 .long 0x200001c0 + 8120: 200000bc .long 0x200000bc + 8124: 200000c0 .long 0x200000c0 + 8128: 200001a0 .long 0x200001a0 + 812c: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00008130 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 8130: 3817 cmphsi r0, 24 + 8132: 080c bt 0x814a // 814a + return; + } + + tm1812_param.data[select] = data; + 8134: 1066 lrw r3, 0x20000140 // 814c + 8136: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 8138: 3260 movi r2, 96 + 813a: 608c addu r2, r3 + tm1812_param.data[select] = data; + 813c: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 813e: 3101 movi r1, 1 + 8140: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 8142: 237f addi r3, 128 + 8144: 1043 lrw r2, 0x200000c0 // 8150 + 8146: 9240 ld.w r2, (r2, 0x0) + 8148: b340 st.w r2, (r3, 0x0) +} + 814a: 783c jmp r15 + 814c: 20000140 .long 0x20000140 + 8150: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_Control_CH_State: + +00008154 : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 8154: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 8156: 3817 cmphsi r0, 24 + 8158: 082a bt 0x81ac // 81ac + return 0x01; + } + + switch(state){ + 815a: 3942 cmpnei r1, 2 + 815c: 0c12 bf 0x8180 // 8180 + 815e: 3943 cmpnei r1, 3 + 8160: 0c14 bf 0x8188 // 8188 + 8162: 3941 cmpnei r1, 1 + 8164: 0806 bt 0x8170 // 8170 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 8166: 1073 lrw r3, 0x20000140 // 81b0 + 8168: 600c addu r0, r3 + 816a: 3300 movi r3, 0 + 816c: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 816e: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 8170: 1071 lrw r3, 0x200001a0 // 81b4 + 8172: 3201 movi r2, 1 + 8174: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 8176: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 8178: 1050 lrw r2, 0x200000c0 // 81b8 + 817a: 9240 ld.w r2, (r2, 0x0) + 817c: b348 st.w r2, (r3, 0x20) +} + 817e: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 8180: 106c lrw r3, 0x20000140 // 81b0 + 8182: 600c addu r0, r3 + 8184: 3300 movi r3, 0 + 8186: 07f4 br 0x816e // 816e + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 8188: 106a lrw r3, 0x20000140 // 81b0 + 818a: 600c addu r0, r3 + 818c: 8020 ld.b r1, (r0, 0x0) + 818e: 32ff movi r2, 255 + 8190: 3300 movi r3, 0 + 8192: 6486 cmpne r1, r2 + 8194: 2b00 subi r3, 1 + 8196: 0c07 bf 0x81a4 // 81a4 + tm1812_param.data[ch] = TM1812_CH_ON; + 8198: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 819a: 1029 lrw r1, 0xce21 // 81bc + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 819c: 3000 movi r0, 0 + 819e: e3fff24f bsr 0x663c // 663c + 81a2: 07e7 br 0x8170 // 8170 + tm1812_param.data[ch] = TM1812_CH_OFF; + 81a4: 3300 movi r3, 0 + 81a6: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 81a8: 1026 lrw r1, 0xce29 // 81c0 + 81aa: 07f9 br 0x819c // 819c + return 0x01; + 81ac: 3001 movi r0, 1 + 81ae: 07e8 br 0x817e // 817e + 81b0: 20000140 .long 0x20000140 + 81b4: 200001a0 .long 0x200001a0 + 81b8: 200000c0 .long 0x200000c0 + 81bc: 0000ce21 .long 0x0000ce21 + 81c0: 0000ce29 .long 0x0000ce29 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +000081c4 : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 81c4: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 81c6: 3817 cmphsi r0, 24 + 81c8: 0827 bt 0x8216 // 8216 + return 0x01; + } + + switch(state){ + 81ca: 3942 cmpnei r1, 2 + 81cc: 0c13 bf 0x81f2 // 81f2 + 81ce: 3943 cmpnei r1, 3 + 81d0: 0c15 bf 0x81fa // 81fa + 81d2: 3941 cmpnei r1, 1 + 81d4: 0807 bt 0x81e2 // 81e2 + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 81d6: 1072 lrw r3, 0x20000140 // 821c + 81d8: 600c addu r0, r3 + 81da: 3300 movi r3, 0 + 81dc: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 81de: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 81e0: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 81e2: 1070 lrw r3, 0x200001a0 // 8220 + 81e4: 3201 movi r2, 1 + 81e6: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 81e8: 3000 movi r0, 0 + 81ea: 104f lrw r2, 0x200000c0 // 8224 + 81ec: 9240 ld.w r2, (r2, 0x0) + 81ee: b348 st.w r2, (r3, 0x20) + + return 0; +} + 81f0: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 81f2: 106b lrw r3, 0x20000140 // 821c + 81f4: 600c addu r0, r3 + 81f6: 3300 movi r3, 0 + 81f8: 07f3 br 0x81de // 81de + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 81fa: 1069 lrw r3, 0x20000140 // 821c + 81fc: 600c addu r0, r3 + 81fe: 3218 movi r2, 24 + 8200: 6080 addu r2, r0 + 8202: 8280 ld.b r4, (r2, 0x0) + 8204: 31ff movi r1, 255 + 8206: 3300 movi r3, 0 + 8208: 6452 cmpne r4, r1 + 820a: 2b00 subi r3, 1 + 820c: 0c03 bf 0x8212 // 8212 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 820e: a260 st.b r3, (r2, 0x0) + 8210: 07e8 br 0x81e0 // 81e0 + 8212: 3300 movi r3, 0 + 8214: 07fd br 0x820e // 820e + return 0x01; + 8216: 3001 movi r0, 1 + 8218: 07ec br 0x81f0 // 81f0 + 821a: 0000 bkpt + 821c: 20000140 .long 0x20000140 + 8220: 200001a0 .long 0x200001a0 + 8224: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_LED_Init: + +00008228 : +void TM1812_LED_Init(void){ + 8228: 14d0 push r15 + 822a: 1426 subi r14, r14, 24 + SIO_DeInit(); + 822c: e3ffe466 bsr 0x4af8 // 4af8 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 8230: 3001 movi r0, 1 + 8232: e3ffe473 bsr 0x4b18 // 4b18 + SIO_TX_Init(SIOCLK_EN,9); // + 8236: 3109 movi r1, 9 + 8238: 3001 movi r0, 1 + 823a: e3ffe49f bsr 0x4b78 // 4b78 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 823e: 3303 movi r3, 3 + 8240: b865 st.w r3, (r14, 0x14) + 8242: 330f movi r3, 15 + 8244: b864 st.w r3, (r14, 0x10) + 8246: 33a0 movi r3, 160 + 8248: 4366 lsli r3, r3, 6 + 824a: b863 st.w r3, (r14, 0xc) + 824c: 33a0 movi r3, 160 + 824e: 4363 lsli r3, r3, 3 + 8250: b862 st.w r3, (r14, 0x8) + 8252: 3300 movi r3, 0 + 8254: b861 st.w r3, (r14, 0x4) + 8256: b860 st.w r3, (r14, 0x0) + 8258: 3207 movi r2, 7 + 825a: 3317 movi r3, 23 + 825c: 3100 movi r1, 0 + 825e: 3002 movi r0, 2 + 8260: e3ffe494 bsr 0x4b88 // 4b88 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 8264: 32e8 movi r2, 232 + 8266: 3100 movi r1, 0 + 8268: 100a lrw r0, 0x20000140 // 8290 + 826a: e3ffdf99 bsr 0x419c // 419c <__memset_fast> + RLY1_HOT_CLOSE; + 826e: 3101 movi r1, 1 + 8270: 3012 movi r0, 18 + 8272: e3ffffa9 bsr 0x81c4 // 81c4 + RLY2_COLD_CLOSE; + 8276: 3101 movi r1, 1 + 8278: 3013 movi r0, 19 + 827a: e3ffffa5 bsr 0x81c4 // 81c4 + RLY_CTRL_EN; //继电器使能 + 827e: 3101 movi r1, 1 + 8280: 3017 movi r0, 23 + 8282: e3ffffa1 bsr 0x81c4 // 81c4 + TimeCall_SIO_Send2(); + 8286: e3fffed3 bsr 0x802c // 802c +} + 828a: 1406 addi r14, r14, 24 + 828c: 1490 pop r15 + 828e: 0000 bkpt + 8290: 20000140 .long 0x20000140 + +Disassembly of section .text.HT1621_WR_Data: + +00008294 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 8294: 14d4 push r4-r7, r15 + 8296: 6d43 mov r5, r0 + 8298: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 82a2: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 82a4: 3101 movi r1, 1 + 82a6: 9600 ld.w r0, (r6, 0x0) + 82a8: e3ffe3b0 bsr 0x4a08 // 4a08 + nop; + 82ac: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 82ae: 74d6 sextb r3, r5 + 82b0: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 82b2: 3104 movi r1, 4 + 82b4: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 82b6: 0c0d bf 0x82d0 // 82d0 + HT1621_DATA_HIGH; + 82b8: e3ffe3a4 bsr 0x4a00 // 4a00 + nop; + 82bc: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 82be: 3101 movi r1, 1 + 82c0: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 82c2: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 82ca: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 82d0: e3ffe39c bsr 0x4a08 // 4a08 + 82d4: 07f4 br 0x82bc // 82bc + 82d6: 0000 bkpt + 82d8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +000082dc : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 82dc: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 82de: 108b lrw r4, 0x2000004c // 8308 +{ + 82e0: 6d43 mov r5, r0 + HT1621_CS_LOW; + 82e2: 310f movi r1, 15 + 82e4: 9400 ld.w r0, (r4, 0x0) + 82e6: e3ffe391 bsr 0x4a08 // 4a08 + nop; + 82ea: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 82ec: 3104 movi r1, 4 + 82ee: 3080 movi r0, 128 + 82f0: e3ffffd2 bsr 0x8294 // 8294 + HT1621_WR_Data(cmd,8); + 82f4: 6c17 mov r0, r5 + 82f6: 3108 movi r1, 8 + 82f8: e3ffffce bsr 0x8294 // 8294 + HT1621_CS_HIGH; + 82fc: 9400 ld.w r0, (r4, 0x0) + 82fe: 310f movi r1, 15 + 8300: e3ffe380 bsr 0x4a00 // 4a00 + nop; + 8304: 6c03 mov r0, r0 +} + 8306: 1492 pop r4-r5, r15 + 8308: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +0000830c : +void HT1621_Init(void){ + 830c: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 830e: 118b lrw r4, 0x2000004c // 83b8 + memset(&HT1621,0,sizeof(HT1621_t)); + 8310: 3240 movi r2, 64 + 8312: 3100 movi r1, 0 + 8314: 110a lrw r0, 0x200005c0 // 83bc + 8316: e3ffdf43 bsr 0x419c // 419c <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 831a: 9400 ld.w r0, (r4, 0x0) + 831c: 3200 movi r2, 0 + 831e: 3100 movi r1, 0 + 8320: e3ffe1b4 bsr 0x4688 // 4688 + GPIO_Init(GPIOA0,1,Output); + 8324: 9400 ld.w r0, (r4, 0x0) + 8326: 3200 movi r2, 0 + 8328: 3101 movi r1, 1 + 832a: e3ffe1af bsr 0x4688 // 4688 + GPIO_Init(GPIOA0,15,Output); + 832e: 9400 ld.w r0, (r4, 0x0) + 8330: 3200 movi r2, 0 + 8332: 310f movi r1, 15 + 8334: e3ffe1aa bsr 0x4688 // 4688 + GPIO_Init(GPIOA0,4,Output); + 8338: 3200 movi r2, 0 + 833a: 9400 ld.w r0, (r4, 0x0) + 833c: 3104 movi r1, 4 + 833e: e3ffe1a5 bsr 0x4688 // 4688 + GPIO_DriveStrength_EN(GPIOA0,0); + 8342: 9400 ld.w r0, (r4, 0x0) + 8344: 3100 movi r1, 0 + 8346: e3ffe21b bsr 0x477c // 477c + GPIO_DriveStrength_EN(GPIOA0,1); + 834a: 9400 ld.w r0, (r4, 0x0) + 834c: 3101 movi r1, 1 + 834e: e3ffe217 bsr 0x477c // 477c + GPIO_DriveStrength_EN(GPIOA0,15); + 8352: 9400 ld.w r0, (r4, 0x0) + 8354: 310f movi r1, 15 + 8356: e3ffe213 bsr 0x477c // 477c + GPIO_DriveStrength_EN(GPIOA0,4); + 835a: 9400 ld.w r0, (r4, 0x0) + 835c: 3104 movi r1, 4 + 835e: e3ffe20f bsr 0x477c // 477c + HT1621_CS_LOW; + 8362: 9400 ld.w r0, (r4, 0x0) + 8364: 310f movi r1, 15 + 8366: e3ffe351 bsr 0x4a08 // 4a08 + HT1621_WR_LOW; + 836a: 9400 ld.w r0, (r4, 0x0) + 836c: 3101 movi r1, 1 + 836e: e3ffe34d bsr 0x4a08 // 4a08 + HT1621_RD_LOW; + 8372: 9400 ld.w r0, (r4, 0x0) + 8374: 3100 movi r1, 0 + 8376: e3ffe349 bsr 0x4a08 // 4a08 + HT1621_DATA_LOW; + 837a: 3104 movi r1, 4 + 837c: 9400 ld.w r0, (r4, 0x0) + 837e: e3ffe345 bsr 0x4a08 // 4a08 + HT1621_WR_CMD(HT1621_BIAS); + 8382: 3052 movi r0, 82 + 8384: e3ffffac bsr 0x82dc // 82dc + HT1621_WR_CMD(HT1621_RC256); + 8388: 3030 movi r0, 48 + 838a: e3ffffa9 bsr 0x82dc // 82dc + HT1621_WR_CMD(HT1621_SYSDIS); + 838e: 3000 movi r0, 0 + 8390: e3ffffa6 bsr 0x82dc // 82dc + HT1621_WR_CMD(HT1621_WDTDIS); + 8394: 300a movi r0, 10 + 8396: e3ffffa3 bsr 0x82dc // 82dc + HT1621_WR_CMD(HT1621_SYSEN); + 839a: 3002 movi r0, 2 + 839c: e3ffffa0 bsr 0x82dc // 82dc + HT1621_WR_CMD(HT1621_LCDON); + 83a0: 3006 movi r0, 6 + 83a2: e3ffff9d bsr 0x82dc // 82dc + HT1621_WR_CMD(HT1621_BIOFF); + 83a6: 3010 movi r0, 16 + 83a8: e3ffff9a bsr 0x82dc // 82dc + HT1621_CS_HIGH; + 83ac: 9400 ld.w r0, (r4, 0x0) + 83ae: 310f movi r1, 15 + 83b0: e3ffe328 bsr 0x4a00 // 4a00 +} + 83b4: 1491 pop r4, r15 + 83b6: 0000 bkpt + 83b8: 2000004c .long 0x2000004c + 83bc: 200005c0 .long 0x200005c0 + +Disassembly of section .text.HT1621_Clear: + +000083c0 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 83c0: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 83c2: 3214 movi r2, 20 + 83c4: 3100 movi r1, 0 + + HT1621_CS_LOW; + 83c6: 10b1 lrw r5, 0x2000004c // 8408 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 83c8: 1011 lrw r0, 0x200005cc // 840c + 83ca: e3ffdee9 bsr 0x419c // 419c <__memset_fast> + HT1621_CS_LOW; + 83ce: 310f movi r1, 15 + 83d0: 9500 ld.w r0, (r5, 0x0) + 83d2: e3ffe31b bsr 0x4a08 // 4a08 + nop; + 83d6: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 83d8: 3103 movi r1, 3 + 83da: 30a0 movi r0, 160 + 83dc: e3ffff5c bsr 0x8294 // 8294 + HT1621_WR_Data(0,6); + 83e0: 3106 movi r1, 6 + 83e2: 3000 movi r0, 0 + 83e4: e3ffff58 bsr 0x8294 // 8294 + 83e8: 3414 movi r4, 20 + 83ea: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 83fa: 9500 ld.w r0, (r5, 0x0) + 83fc: 310f movi r1, 15 + 83fe: e3ffe301 bsr 0x4a00 // 4a00 + nop; + 8402: 6c03 mov r0, r0 +} + 8404: 1492 pop r4-r5, r15 + 8406: 0000 bkpt + 8408: 2000004c .long 0x2000004c + 840c: 200005cc .long 0x200005cc + +Disassembly of section .text.HT1621_ALLON: + +00008410 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 8410: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 8412: 10af lrw r5, 0x2000004c // 844c + 8414: 310f movi r1, 15 + 8416: 9500 ld.w r0, (r5, 0x0) + 8418: e3ffe2f8 bsr 0x4a08 // 4a08 + nop; + 841c: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 841e: 3103 movi r1, 3 + 8420: 30a0 movi r0, 160 + 8422: e3ffff39 bsr 0x8294 // 8294 + HT1621_WR_Data(0,6); + 8426: 3106 movi r1, 6 + 8428: 3000 movi r0, 0 + 842a: e3ffff35 bsr 0x8294 // 8294 + 842e: 3414 movi r4, 20 + 8430: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 8440: 9500 ld.w r0, (r5, 0x0) + 8442: 310f movi r1, 15 + 8444: e3ffe2de bsr 0x4a00 // 4a00 + nop; + 8448: 6c03 mov r0, r0 +} + 844a: 1492 pop r4-r5, r15 + 844c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00008450 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 8450: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 8452: 1091 lrw r4, 0x2000004c // 8494 + 8454: 310f movi r1, 15 + 8456: 9400 ld.w r0, (r4, 0x0) + 8458: e3ffe2d8 bsr 0x4a08 // 4a08 + nop; + 845c: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 845e: 3103 movi r1, 3 + 8460: 30a0 movi r0, 160 + 8462: e3ffff19 bsr 0x8294 // 8294 + HT1621_WR_Data(0,6); + 8466: 3106 movi r1, 6 + 8468: 3000 movi r0, 0 + 846a: e3ffff15 bsr 0x8294 // 8294 + 846e: 3500 movi r5, 0 + for(U8_T i=0;i + 8472: 60d4 addu r3, r5 + 8474: 830c ld.b r0, (r3, 0xc) + 8476: 4004 lsli r0, r0, 4 + 8478: 7400 zextb r0, r0 + 847a: 3104 movi r1, 4 + 847c: 2500 addi r5, 1 + 847e: e3ffff0b bsr 0x8294 // 8294 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 8486: 9400 ld.w r0, (r4, 0x0) + 8488: 310f movi r1, 15 + 848a: e3ffe2bb bsr 0x4a00 // 4a00 + nop; + 848e: 6c03 mov r0, r0 +} + 8490: 1492 pop r4-r5, r15 + 8492: 0000 bkpt + 8494: 2000004c .long 0x2000004c + 8498: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temperature_Display: + +0000849c : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 849c: 14d4 push r4-r7, r15 + 849e: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 84a0: 1170 lrw r3, 0x20000868 // 8560 + 84a2: 8368 ld.b r3, (r3, 0x8) + 84a4: 3b40 cmpnei r3, 0 +{ + 84a6: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 84a8: b861 st.w r3, (r14, 0x4) + 84aa: 0845 bt 0x8534 // 8534 + tmp_Integer = tmp/10; + 84ac: 310a movi r1, 10 + 84ae: e3ffee5b bsr 0x6164 // 6164 <__udivsi3> + 84b2: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 84b4: 310a movi r1, 10 + 84b6: 6c13 mov r0, r4 + 84b8: e3ffee7a bsr 0x61ac // 61ac <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 84bc: 118a lrw r4, 0x200005c0 // 8564 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 84be: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 84c0: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 84c2: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 84c4: 8476 ld.b r3, (r4, 0x16) + 84c6: 68d4 and r3, r5 + 84c8: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 84ca: 8474 ld.b r3, (r4, 0x14) + 84cc: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 84ce: 310a movi r1, 10 + 84d0: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 84d2: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 84d4: e3ffee48 bsr 0x6164 // 6164 <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 84d8: 11e4 lrw r7, 0xca96 // 8568 + 84da: 7400 zextb r0, r0 + 84dc: 601c addu r0, r7 + 84de: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 84e0: 8458 ld.b r2, (r4, 0x18) + 84e2: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 84e4: 6c07 mov r0, r1 + 84e6: 350f movi r5, 15 + 84e8: 6814 and r0, r5 + 84ea: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 84ec: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 84ee: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 84f0: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 84f2: 6c1b mov r0, r6 + 84f4: 310a movi r1, 10 + 84f6: e3ffee5b bsr 0x61ac // 61ac <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 84fa: 7400 zextb r0, r0 + 84fc: 601c addu r0, r7 + 84fe: 8040 ld.b r2, (r0, 0x0) + 8500: 6c4b mov r1, r2 + 8502: 6854 and r1, r5 + 8504: 9862 ld.w r3, (r14, 0x8) + 8506: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 8508: 9860 ld.w r3, (r14, 0x0) + 850a: 61cc addu r7, r3 + 850c: 8760 ld.b r3, (r7, 0x0) + 850e: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 8510: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 8512: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 8514: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 8516: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 8518: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 851a: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 851c: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 851e: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 8520: 6d48 or r5, r2 + 8522: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 8524: 081a bt 0x8558 // 8558 + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 8526: 3ba1 bseti r3, 1 + 8528: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 852a: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 852c: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 852e: a4b4 st.b r5, (r4, 0x14) +} + 8530: 1404 addi r14, r14, 16 + 8532: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 8534: 3012 movi r0, 18 + 8536: 7c10 mult r0, r4 + 8538: 310a movi r1, 10 + 853a: 34a0 movi r4, 160 + 853c: e3ffee02 bsr 0x6140 // 6140 <__divsi3> + 8540: 4481 lsli r4, r4, 1 + 8542: 6100 addu r4, r0 + 8544: 310a movi r1, 10 + 8546: 6c13 mov r0, r4 + 8548: e3ffedfc bsr 0x6140 // 6140 <__divsi3> + 854c: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 854e: 310a movi r1, 10 + 8550: 6c13 mov r0, r4 + 8552: e3ffee1b bsr 0x6188 // 6188 <__modsi3> + 8556: 07b3 br 0x84bc // 84bc + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 8558: 3ba2 bseti r3, 2 + 855a: 3ba3 bseti r3, 3 + 855c: 07e7 br 0x852a // 852a + 855e: 0000 bkpt + 8560: 20000868 .long 0x20000868 + 8564: 200005c0 .long 0x200005c0 + 8568: 0000ca96 .long 0x0000ca96 + +Disassembly of section .text.Local_Temperature_Display: + +0000856c : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 856c: 14d4 push r4-r7, r15 + 856e: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 8570: 1170 lrw r3, 0x20000868 // 8630 + 8572: 8368 ld.b r3, (r3, 0x8) + 8574: 3b40 cmpnei r3, 0 +{ + 8576: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 8578: b861 st.w r3, (r14, 0x4) + 857a: 0845 bt 0x8604 // 8604 + tmp_Integer = tmp/10; + 857c: 310a movi r1, 10 + 857e: e3ffedf3 bsr 0x6164 // 6164 <__udivsi3> + 8582: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 8584: 310a movi r1, 10 + 8586: 6c13 mov r0, r4 + 8588: e3ffee12 bsr 0x61ac // 61ac <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 858c: 118a lrw r4, 0x200005c0 // 8634 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 858e: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 8590: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 8592: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 8594: 847d ld.b r3, (r4, 0x1d) + 8596: 68d4 and r3, r5 + 8598: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 859a: 847b ld.b r3, (r4, 0x1b) + 859c: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 859e: 310a movi r1, 10 + 85a0: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 85a2: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 85a4: e3ffede0 bsr 0x6164 // 6164 <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 85a8: 11e4 lrw r7, 0xca96 // 8638 + 85aa: 7400 zextb r0, r0 + 85ac: 601c addu r0, r7 + 85ae: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 85b0: 845f ld.b r2, (r4, 0x1f) + 85b2: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 85b4: 6c07 mov r0, r1 + 85b6: 350f movi r5, 15 + 85b8: 6814 and r0, r5 + 85ba: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 85bc: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 85be: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 85c0: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 85c2: 6c1b mov r0, r6 + 85c4: 310a movi r1, 10 + 85c6: e3ffedf3 bsr 0x61ac // 61ac <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 85ca: 7400 zextb r0, r0 + 85cc: 601c addu r0, r7 + 85ce: 8040 ld.b r2, (r0, 0x0) + 85d0: 6c4b mov r1, r2 + 85d2: 6854 and r1, r5 + 85d4: 9862 ld.w r3, (r14, 0x8) + 85d6: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 85d8: 9860 ld.w r3, (r14, 0x0) + 85da: 61cc addu r7, r3 + 85dc: 8760 ld.b r3, (r7, 0x0) + 85de: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 85e0: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 85e2: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 85e4: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 85e6: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 85e8: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 85ea: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 85ec: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 85ee: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 85f0: 6d48 or r5, r2 + 85f2: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 85f4: 081a bt 0x8628 // 8628 + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 85f6: 3ba1 bseti r3, 1 + 85f8: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 85fa: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 85fc: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 85fe: a4bb st.b r5, (r4, 0x1b) +} + 8600: 1404 addi r14, r14, 16 + 8602: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 8604: 3012 movi r0, 18 + 8606: 7c10 mult r0, r4 + 8608: 310a movi r1, 10 + 860a: 34a0 movi r4, 160 + 860c: e3ffed9a bsr 0x6140 // 6140 <__divsi3> + 8610: 4481 lsli r4, r4, 1 + 8612: 6100 addu r4, r0 + 8614: 310a movi r1, 10 + 8616: 6c13 mov r0, r4 + 8618: e3ffed94 bsr 0x6140 // 6140 <__divsi3> + 861c: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 861e: 310a movi r1, 10 + 8620: 6c13 mov r0, r4 + 8622: e3ffedb3 bsr 0x6188 // 6188 <__modsi3> + 8626: 07b3 br 0x858c // 858c + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 8628: 3ba2 bseti r3, 2 + 862a: 3ba3 bseti r3, 3 + 862c: 07e7 br 0x85fa // 85fa + 862e: 0000 bkpt + 8630: 20000868 .long 0x20000868 + 8634: 200005c0 .long 0x200005c0 + 8638: 0000ca96 .long 0x0000ca96 + +Disassembly of section .text.Control_Mode: + +0000863c : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 863c: 14d1 push r4, r15 + switch(mode){ + 863e: 3806 cmphsi r0, 7 + 8640: 0823 bt 0x8686 // 8686 + 8642: e3ffd775 bsr 0x352c // 352c <___gnu_csky_case_uhi> + 8646: 0007 .short 0x0007 + 8648: 005a0020 .long 0x005a0020 + 864c: 009a0020 .long 0x009a0020 + 8650: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 8654: 0376 lrw r3, 0x20000868 // 8878 + 8656: 8349 ld.b r2, (r3, 0x9) + 8658: 3a40 cmpnei r2, 0 + 865a: 0376 lrw r3, 0x200005c0 // 887c + 865c: 0816 bt 0x8688 // 8688 + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 865e: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 8660: 830e ld.b r0, (r3, 0xe) + 8662: 6811 andn r0, r4 + 8664: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8666: 830f ld.b r0, (r3, 0xf) + 8668: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 866a: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 866c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 866e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 8670: 3982 bclri r1, 2 + 8672: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 8674: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 8676: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 8678: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 867a: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 867c: 39a2 bseti r1, 2 + 867e: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 8680: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 8682: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 8684: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 8686: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 8688: 3a41 cmpnei r2, 1 + 868a: 0812 bt 0x86ae // 86ae + HT1621.show_cache[1] &= ~0x07; + 868c: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 868e: 830e ld.b r0, (r3, 0xe) + 8690: 6811 andn r0, r4 + 8692: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8694: 830f ld.b r0, (r3, 0xf) + 8696: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 8698: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 869a: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 869c: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 869e: 3982 bclri r1, 2 + 86a0: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 86a2: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 86a4: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 86a6: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 86a8: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 86aa: 39a2 bseti r1, 2 + 86ac: 07ea br 0x8680 // 8680 + else if(Debug_Inf.Language_Selection == 0x02) + 86ae: 3a42 cmpnei r2, 2 + 86b0: 0812 bt 0x86d4 // 86d4 + HT1621.show_cache[1] &= ~0x07; + 86b2: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 86b4: 830e ld.b r0, (r3, 0xe) + 86b6: 6811 andn r0, r4 + 86b8: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 86ba: 830f ld.b r0, (r3, 0xf) + 86bc: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 86be: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 86c0: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 86c2: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 86c4: 3982 bclri r1, 2 + 86c6: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 86c8: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 86ca: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 86cc: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 86ce: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 86d0: 39a3 bseti r1, 3 + 86d2: 07d7 br 0x8680 // 8680 + HT1621.show_cache[0] &= ~0x0C; + 86d4: 136a lrw r3, 0x200005c0 // 887c + 86d6: 834c ld.b r2, (r3, 0xc) + 86d8: 3a82 bclri r2, 2 + 86da: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 86dc: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 86de: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 86e0: 834d ld.b r2, (r3, 0xd) + 86e2: 6885 andn r2, r1 + 86e4: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 86e6: 834e ld.b r2, (r3, 0xe) + 86e8: 6885 andn r2, r1 + 86ea: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 86ec: 834f ld.b r2, (r3, 0xf) + 86ee: 6885 andn r2, r1 + 86f0: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 86f2: 8351 ld.b r2, (r3, 0x11) + 86f4: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 86f6: a351 st.b r2, (r3, 0x11) +} + 86f8: 07c7 br 0x8686 // 8686 + if(Debug_Inf.Language_Selection == 0x00) + 86fa: 1360 lrw r3, 0x20000868 // 8878 + 86fc: 8349 ld.b r2, (r3, 0x9) + 86fe: 3a40 cmpnei r2, 0 + 8700: 127f lrw r3, 0x200005c0 // 887c + 8702: 0816 bt 0x872e // 872e + HT1621.show_cache[1] &= ~0x07; + 8704: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 8706: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 8708: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 870a: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 870c: 3a82 bclri r2, 2 + 870e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8710: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 8712: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 8714: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 8716: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 8718: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 871a: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 871c: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 871e: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 8720: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 8722: 39a1 bseti r1, 1 + 8724: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 8726: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 8728: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 872a: a34e st.b r2, (r3, 0xe) + 872c: 07ad br 0x8686 // 8686 + else if(Debug_Inf.Language_Selection == 0x01) + 872e: 3a41 cmpnei r2, 1 + 8730: 0812 bt 0x8754 // 8754 + HT1621.show_cache[1] &= ~0x07; + 8732: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 8734: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 8736: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 8738: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 873a: 3a82 bclri r2, 2 + 873c: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 873e: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 8740: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 8742: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 8744: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 8746: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 8748: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 874a: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 874c: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 874e: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 8750: 39a1 bseti r1, 1 + 8752: 07ea br 0x8726 // 8726 + else if(Debug_Inf.Language_Selection == 0x02) + 8754: 3a42 cmpnei r2, 2 + 8756: 0bbf bt 0x86d4 // 86d4 + HT1621.show_cache[1] &= ~0x07; + 8758: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 875a: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 875c: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 875e: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 8760: 3a82 bclri r2, 2 + 8762: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8764: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 8766: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 8768: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 876a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 876c: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 876e: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 8770: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 8772: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 8774: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 8776: 39a2 bseti r1, 2 + 8778: 07d7 br 0x8726 // 8726 + if(Debug_Inf.Language_Selection == 0x00) + 877a: 1260 lrw r3, 0x20000868 // 8878 + 877c: 8349 ld.b r2, (r3, 0x9) + 877e: 3a40 cmpnei r2, 0 + 8780: 117f lrw r3, 0x200005c0 // 887c + 8782: 0816 bt 0x87ae // 87ae + HT1621.show_cache[0] &= ~0x0C; + 8784: 834c ld.b r2, (r3, 0xc) + 8786: 3a82 bclri r2, 2 + 8788: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 878a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 878c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 878e: 834d ld.b r2, (r3, 0xd) + 8790: 6881 andn r2, r0 + 8792: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8794: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8796: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 8798: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 879a: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 879c: 8311 ld.b r0, (r3, 0x11) + 879e: 3880 bclri r0, 0 + 87a0: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 87a2: 39a1 bseti r1, 1 + 87a4: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 87a6: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 87a8: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 87aa: a34f st.b r2, (r3, 0xf) + 87ac: 076d br 0x8686 // 8686 + else if(Debug_Inf.Language_Selection == 0x01) + 87ae: 3a41 cmpnei r2, 1 + 87b0: 0812 bt 0x87d4 // 87d4 + HT1621.show_cache[0] &= ~0x0C; + 87b2: 834c ld.b r2, (r3, 0xc) + 87b4: 3a82 bclri r2, 2 + 87b6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 87b8: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 87ba: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 87bc: 834d ld.b r2, (r3, 0xd) + 87be: 6881 andn r2, r0 + 87c0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 87c2: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 87c4: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 87c6: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 87c8: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 87ca: 8311 ld.b r0, (r3, 0x11) + 87cc: 3880 bclri r0, 0 + 87ce: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 87d0: 39a1 bseti r1, 1 + 87d2: 07ea br 0x87a6 // 87a6 + else if(Debug_Inf.Language_Selection == 0x02) + 87d4: 3a42 cmpnei r2, 2 + 87d6: 0b7f bt 0x86d4 // 86d4 + HT1621.show_cache[0] &= ~0x0C; + 87d8: 834c ld.b r2, (r3, 0xc) + 87da: 3a82 bclri r2, 2 + 87dc: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 87de: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 87e0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 87e2: 834d ld.b r2, (r3, 0xd) + 87e4: 6881 andn r2, r0 + 87e6: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 87e8: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 87ea: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 87ec: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 87ee: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 87f0: 8311 ld.b r0, (r3, 0x11) + 87f2: 3880 bclri r0, 0 + 87f4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 87f6: 39a2 bseti r1, 2 + 87f8: 07d7 br 0x87a6 // 87a6 + if(Debug_Inf.Language_Selection == 0x00) + 87fa: 1160 lrw r3, 0x20000868 // 8878 + 87fc: 8349 ld.b r2, (r3, 0x9) + 87fe: 3a40 cmpnei r2, 0 + 8800: 107f lrw r3, 0x200005c0 // 887c + 8802: 0815 bt 0x882c // 882c + HT1621.show_cache[0] &= ~0x0C; + 8804: 834c ld.b r2, (r3, 0xc) + 8806: 3a82 bclri r2, 2 + 8808: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 880a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 880c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 880e: 834d ld.b r2, (r3, 0xd) + 8810: 6881 andn r2, r0 + 8812: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8814: 834e ld.b r2, (r3, 0xe) + 8816: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 8818: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 881a: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 881c: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 881e: 8351 ld.b r2, (r3, 0x11) + 8820: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 8822: 39a1 bseti r1, 1 + 8824: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 8826: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 8828: 3aa0 bseti r2, 0 + 882a: 0766 br 0x86f6 // 86f6 + else if(Debug_Inf.Language_Selection == 0x01) + 882c: 3a41 cmpnei r2, 1 + 882e: 0812 bt 0x8852 // 8852 + HT1621.show_cache[0] &= ~0x0C; + 8830: 834c ld.b r2, (r3, 0xc) + 8832: 3a82 bclri r2, 2 + 8834: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 8836: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 8838: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 883a: 834d ld.b r2, (r3, 0xd) + 883c: 6881 andn r2, r0 + 883e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8840: 834e ld.b r2, (r3, 0xe) + 8842: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 8844: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 8846: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 8848: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 884a: 8351 ld.b r2, (r3, 0x11) + 884c: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 884e: 39a1 bseti r1, 1 + 8850: 07eb br 0x8826 // 8826 + else if(Debug_Inf.Language_Selection == 0x02) + 8852: 3a42 cmpnei r2, 2 + 8854: 0b40 bt 0x86d4 // 86d4 + HT1621.show_cache[0] &= ~0x0C; + 8856: 834c ld.b r2, (r3, 0xc) + 8858: 3a82 bclri r2, 2 + 885a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 885c: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 885e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 8860: 834d ld.b r2, (r3, 0xd) + 8862: 6881 andn r2, r0 + 8864: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 8866: 834e ld.b r2, (r3, 0xe) + 8868: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 886a: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 886c: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 886e: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 8870: 8351 ld.b r2, (r3, 0x11) + 8872: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 8874: 39a2 bseti r1, 2 + 8876: 07d8 br 0x8826 // 8826 + 8878: 20000868 .long 0x20000868 + 887c: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_wind_velocity: + +00008880 : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 8880: 14d2 push r4-r5, r15 + switch(velocity) + 8882: 3804 cmphsi r0, 5 + 8884: 0815 bt 0x88ae // 88ae + 8886: 1172 lrw r3, 0x200005c0 // 894c + 8888: e3ffd63a bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 888c: 33201203 .long 0x33201203 + 8890: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 8892: 8351 ld.b r2, (r3, 0x11) + 8894: 310e movi r1, 14 + 8896: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 8898: 300f movi r0, 15 + 889a: 8330 ld.b r1, (r3, 0x10) + 889c: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 889e: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 88a0: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 88a2: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 88a4: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 88a6: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 88a8: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 88aa: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 88ac: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 88ae: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 88b0: 310e movi r1, 14 + 88b2: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 88b4: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 88b6: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 88b8: 8330 ld.b r1, (r3, 0x10) + 88ba: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 88bc: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 88be: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 88c0: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 88c2: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 88c4: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 88c6: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 88c8: 3aa3 bseti r2, 3 + 88ca: 07f1 br 0x88ac // 88ac + HT1621.show_cache[5] &= ~0x0E; + 88cc: 310e movi r1, 14 + 88ce: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 88d0: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 88d2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 88d4: 8330 ld.b r1, (r3, 0x10) + 88d6: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 88d8: 300e movi r0, 14 + 88da: 07f2 br 0x88be // 88be + HT1621.show_cache[4] &= ~0x0F; + 88dc: 8350 ld.b r2, (r3, 0x10) + 88de: 310f movi r1, 15 + 88e0: 6885 andn r2, r1 + 88e2: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 88e4: 310e movi r1, 14 + 88e6: 8351 ld.b r2, (r3, 0x11) + 88e8: 6885 andn r2, r1 + 88ea: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 88ec: 834f ld.b r2, (r3, 0xf) + 88ee: 3a83 bclri r2, 3 + 88f0: 07de br 0x88ac // 88ac + HT1621.show_cache[4] &= ~0x0F; + 88f2: 8330 ld.b r1, (r3, 0x10) + 88f4: 320f movi r2, 15 + 88f6: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 88f8: 300e movi r0, 14 + 88fa: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 88fc: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 88fe: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 8900: 3408 movi r4, 8 + 8902: 6c17 mov r0, r5 + 8904: 6c10 or r0, r4 + 8906: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 8908: 6c07 mov r0, r1 + 890a: 38a0 bseti r0, 0 + 890c: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 890e: 8303 ld.b r0, (r3, 0x3) + 8910: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 8912: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 8914: 0804 bt 0x891c // 891c + HT1621.show_cache[3] &= ~0x08; + 8916: 3d83 bclri r5, 3 + 8918: a3af st.b r5, (r3, 0xf) + 891a: 07ca br 0x88ae // 88ae + }else if(HT1621.wind_velocity == 0) //低风速 + 891c: 3840 cmpnei r0, 0 + 891e: 0807 bt 0x892c // 892c + HT1621.show_cache[4] |= 0x08; + 8920: 39a0 bseti r1, 0 + 8922: 39a3 bseti r1, 3 + 8924: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 8926: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 8928: a351 st.b r2, (r3, 0x11) +} + 892a: 07c2 br 0x88ae // 88ae + }else if(HT1621.wind_velocity == 1) //中风速 + 892c: 3841 cmpnei r0, 1 + 892e: 0807 bt 0x893c // 893c + HT1621.show_cache[4] |= 0x0C; + 8930: 300d movi r0, 13 + 8932: 6c40 or r1, r0 + 8934: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 8936: 3aa2 bseti r2, 2 + 8938: 3aa3 bseti r2, 3 + 893a: 07f7 br 0x8928 // 8928 + }else if(HT1621.wind_velocity == 2) //高风速 + 893c: 3842 cmpnei r0, 2 + 893e: 0bb8 bt 0x88ae // 88ae + HT1621.show_cache[4] |= 0x0E; + 8940: 300f movi r0, 15 + 8942: 6c40 or r1, r0 + 8944: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 8946: 310e movi r1, 14 + 8948: 6c84 or r2, r1 + 894a: 07ef br 0x8928 // 8928 + 894c: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_Prompt_Text: + +00008950 : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 8950: 14c4 push r4-r7 + 8952: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 8954: 1167 lrw r3, 0x200005c0 // 89f0 + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 8956: 83d6 ld.b r6, (r3, 0x16) + 8958: 3e80 bclri r6, 0 + 895a: 7598 zextb r6, r6 + 895c: b8c0 st.w r6, (r14, 0x0) + 895e: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 8962: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 8964: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8966: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8968: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 896a: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 896c: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 896e: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 8970: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8972: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8974: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 8976: 3a80 bclri r2, 0 + 8978: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 897a: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 897c: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 897e: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 8980: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8982: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 8984: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 8986: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 8988: 7598 zextb r6, r6 + + if(state == 0x00) + 898a: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 898c: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 898e: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 8990: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 8992: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 8994: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 8996: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 8998: 0814 bt 0x89c0 // 89c0 + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 899a: 3008 movi r0, 8 + 899c: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 899e: 3aa0 bseti r2, 0 + 89a0: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 89a2: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 89a4: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 89a6: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 89a8: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 89aa: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 89ac: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 89ae: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 89b0: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 89b2: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 89b4: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 89b6: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 89b8: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 89ba: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 89bc: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 89be: 040b br 0x89d4 // 89d4 + else if(state == 0x01){ + 89c0: 3841 cmpnei r0, 1 + 89c2: 080b bt 0x89d8 // 89d8 + HT1621.show_cache[0] |= 0x01; //模式 + 89c4: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 89c6: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 89c8: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 89ca: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 89cc: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 89ce: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 89d0: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 89d2: a33f st.b r1, (r3, 0x1f) +} + 89d4: 1401 addi r14, r14, 4 + 89d6: 1484 pop r4-r7 + }else if(state == 0x02){ + 89d8: 3842 cmpnei r0, 2 + 89da: 0bfd bt 0x89d4 // 89d4 + HT1621.show_cache[0] |= 0x02; //模式 + 89dc: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 89de: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 89e0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 89e2: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 89e4: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 89e6: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 89e8: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 89ea: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 89ec: 6d84 or r6, r1 + 89ee: 07e7 br 0x89bc // 89bc + 89f0: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Controlled_Buzzer: + +000089f4 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 89f4: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 89f6: 3841 cmpnei r0, 1 + 89f8: 0c0a bf 0x8a0c // 8a0c + 89fa: 3840 cmpnei r0, 0 + 89fc: 0c04 bf 0x8a04 // 8a04 + 89fe: 3842 cmpnei r0, 2 + 8a00: 0c12 bf 0x8a24 // 8a24 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 8a02: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 8a04: 3010 movi r0, 16 + 8a06: e3fffc6b bsr 0x82dc // 82dc + break; + 8a0a: 07fc br 0x8a02 // 8a02 + HT1621_WR_CMD(HT1621_BLON); + 8a0c: 3012 movi r0, 18 + 8a0e: e3fffc67 bsr 0x82dc // 82dc + HT1621.buz_control = 0x01; + 8a12: 1069 lrw r3, 0x200005c0 // 8a34 + 8a14: 3220 movi r2, 32 + 8a16: 608c addu r2, r3 + 8a18: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 8a1a: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 8a1c: 1047 lrw r2, 0x200000c0 // 8a38 + 8a1e: 9240 ld.w r2, (r2, 0x0) + 8a20: b34e st.w r2, (r3, 0x38) +} + 8a22: 07f0 br 0x8a02 // 8a02 + HT1621_WR_CMD(HT1621_BLON); + 8a24: 3012 movi r0, 18 + 8a26: e3fffc5b bsr 0x82dc // 82dc + HT1621.buz_control = 0x02; + 8a2a: 1063 lrw r3, 0x200005c0 // 8a34 + 8a2c: 3220 movi r2, 32 + 8a2e: 608c addu r2, r3 + 8a30: 3102 movi r1, 2 + 8a32: 07f4 br 0x8a1a // 8a1a + 8a34: 200005c0 .long 0x200005c0 + 8a38: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00008a3c : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 8a3c: 14d0 push r15 + switch (state) { + 8a3e: 3840 cmpnei r0, 0 + 8a40: 0c04 bf 0x8a48 // 8a48 + 8a42: 3841 cmpnei r0, 1 + 8a44: 0c16 bf 0x8a70 // 8a70 + + } + break; + + } +} + 8a46: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 8a48: 1172 lrw r3, 0x200001a0 // 8b10 + 8a4a: 8359 ld.b r2, (r3, 0x19) + 8a4c: 3a41 cmpnei r2, 1 + 8a4e: 0bfc bt 0x8a46 // 8a46 + tm1812_param.LCD_blaklingt_flag = 0x00; + 8a50: 3200 movi r2, 0 + 8a52: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8a54: 3100 movi r1, 0 + 8a56: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8a58: e3fffb6c bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 8a5c: 3100 movi r1, 0 + 8a5e: 3001 movi r0, 1 + 8a60: e3fffb68 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8a64: 3100 movi r1, 0 + 8a66: 3002 movi r0, 2 + 8a68: e3fffb64 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8a6c: 3100 movi r1, 0 + 8a6e: 0437 br 0x8adc // 8adc + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 8a70: 1128 lrw r1, 0x200001a0 // 8b10 + 8a72: 8179 ld.b r3, (r1, 0x19) + 8a74: 3b40 cmpnei r3, 0 + 8a76: 0be8 bt 0x8a46 // 8a46 + tm1812_param.LCD_blaklingt_flag = 0x01; + 8a78: 3301 movi r3, 1 + 8a7a: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8a7c: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 8a7e: 1166 lrw r3, 0x2000083c // 8b14 + 8a80: 8362 ld.b r3, (r3, 0x2) + 8a82: 4379 lsli r3, r3, 25 + 8a84: 4b7d lsri r3, r3, 29 + 8a86: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 8a88: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 8a8a: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8a8c: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 8a8e: 0c1c bf 0x8ac6 // 8ac6 + 8a90: 3a44 cmpnei r2, 4 + 8a92: 0c2a bf 0x8ae6 // 8ae6 + 8a94: 3a40 cmpnei r2, 0 + 8a96: 0be1 bt 0x8a58 // 8a58 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8a98: e3fffb4c bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 8a9c: 31ff movi r1, 255 + 8a9e: 3001 movi r0, 1 + 8aa0: e3fffb48 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8aa4: 3100 movi r1, 0 + 8aa6: 3002 movi r0, 2 + 8aa8: e3fffb44 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8aac: 3100 movi r1, 0 + 8aae: 3003 movi r0, 3 + 8ab0: e3fffb40 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 8ab4: 3100 movi r1, 0 + 8ab6: 3004 movi r0, 4 + 8ab8: e3fffb3c bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 8abc: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 8abe: 3005 movi r0, 5 + 8ac0: e3fffb38 bsr 0x8130 // 8130 +} + 8ac4: 07c1 br 0x8a46 // 8a46 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8ac6: e3fffb35 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 8aca: 31ff movi r1, 255 + 8acc: 3001 movi r0, 1 + 8ace: e3fffb31 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8ad2: 3100 movi r1, 0 + 8ad4: 3002 movi r0, 2 + 8ad6: e3fffb2d bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 8ada: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8adc: 3003 movi r0, 3 + 8ade: e3fffb29 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 8ae2: 3100 movi r1, 0 + 8ae4: 0410 br 0x8b04 // 8b04 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 8ae6: e3fffb25 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 8aea: 31ff movi r1, 255 + 8aec: 3001 movi r0, 1 + 8aee: e3fffb21 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 8af2: 3100 movi r1, 0 + 8af4: 3002 movi r0, 2 + 8af6: e3fffb1d bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 8afa: 3100 movi r1, 0 + 8afc: 3003 movi r0, 3 + 8afe: e3fffb19 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 8b02: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 8b04: 3004 movi r0, 4 + 8b06: e3fffb15 bsr 0x8130 // 8130 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 8b0a: 3100 movi r1, 0 + 8b0c: 07d9 br 0x8abe // 8abe + 8b0e: 0000 bkpt + 8b10: 200001a0 .long 0x200001a0 + 8b14: 2000083c .long 0x2000083c + +Disassembly of section .text.Controlled_Key_Backlight: + +00008b18 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 8b18: 14d0 push r15 + switch(state){ + 8b1a: 3840 cmpnei r0, 0 + 8b1c: 0c04 bf 0x8b24 // 8b24 + 8b1e: 3841 cmpnei r0, 1 + 8b20: 0c0b bf 0x8b36 // 8b36 + + } + + break; + } +} + 8b22: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 8b24: 1068 lrw r3, 0x200005a4 // 8b44 + 8b26: 836a ld.b r3, (r3, 0xa) + 8b28: 3b42 cmpnei r3, 2 + 8b2a: 0ffc bf 0x8b22 // 8b22 + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 8b2c: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 8b2e: 3005 movi r0, 5 + 8b30: e3fff7c2 bsr 0x7ab4 // 7ab4 +} + 8b34: 07f7 br 0x8b22 // 8b22 + if(g_switch.light_state[T_Backlight] != Control_ON) + 8b36: 1064 lrw r3, 0x200005a4 // 8b44 + 8b38: 836a ld.b r3, (r3, 0xa) + 8b3a: 3b41 cmpnei r3, 1 + 8b3c: 0ff3 bf 0x8b22 // 8b22 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 8b3e: 3101 movi r1, 1 + 8b40: 07f7 br 0x8b2e // 8b2e + 8b42: 0000 bkpt + 8b44: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Set_Device_ADDR: + +00008b48 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 8b48: 14d4 push r4-r7, r15 + 8b4a: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b4c: 11c4 lrw r6, 0xca96 // 8bdc + 8b4e: 6018 addu r0, r6 + 8b50: 1184 lrw r4, 0x200005c0 // 8be0 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 8b52: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b54: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 8b56: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b58: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 8b5a: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b5c: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 8b5e: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b60: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 8b62: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b64: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 8b66: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 8b68: 843b ld.b r1, (r4, 0x1b) + 8b6a: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 8b6c: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 8b6e: 845d ld.b r2, (r4, 0x1d) + 8b70: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 8b72: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 8b74: 6c1f mov r0, r7 + 8b76: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 8b78: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 8b7a: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 8b7c: e3ffeaf4 bsr 0x6164 // 6164 <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8b80: 7400 zextb r0, r0 + 8b82: 6018 addu r0, r6 + 8b84: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 8b86: 9861 ld.w r3, (r14, 0x4) + 8b88: 841f ld.b r0, (r4, 0x1f) + 8b8a: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8b8c: 6c07 mov r0, r1 + 8b8e: 6814 and r0, r5 + 8b90: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 8b92: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 8b94: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 8b96: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 8b98: 6c1f mov r0, r7 + 8b9a: 310a movi r1, 10 + 8b9c: e3ffeae4 bsr 0x6164 // 6164 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 8ba0: 7400 zextb r0, r0 + 8ba2: 310a movi r1, 10 + 8ba4: e3ffeb04 bsr 0x61ac // 61ac <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 8ba8: 7400 zextb r0, r0 + 8baa: 6018 addu r0, r6 + 8bac: 8060 ld.b r3, (r0, 0x0) + 8bae: 6c4f mov r1, r3 + 8bb0: 6854 and r1, r5 + 8bb2: 9842 ld.w r2, (r14, 0x8) + 8bb4: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 8bb6: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 8bb8: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 8bba: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 8bbc: 310a movi r1, 10 + 8bbe: 6c1f mov r0, r7 + 8bc0: e3ffeaf6 bsr 0x61ac // 61ac <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8bc4: 7400 zextb r0, r0 + 8bc6: 6180 addu r6, r0 + 8bc8: 8660 ld.b r3, (r6, 0x0) + 8bca: 694c and r5, r3 + 8bcc: 9840 ld.w r2, (r14, 0x0) + 8bce: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8bd0: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8bd2: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8bd4: a47a st.b r3, (r4, 0x1a) +} + 8bd6: 1403 addi r14, r14, 12 + 8bd8: 1494 pop r4-r7, r15 + 8bda: 0000 bkpt + 8bdc: 0000ca96 .long 0x0000ca96 + 8be0: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temp_Difference: + +00008be4 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 8be4: 1057 lrw r2, 0x200005c0 // 8c40 + HT1621.show_cache[10] &= 0x01; + 8be6: 3101 movi r1, 1 + 8be8: 8276 ld.b r3, (r2, 0x16) + 8bea: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 8bec: 3ba1 bseti r3, 1 + 8bee: 3ba2 bseti r3, 2 + 8bf0: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 8bf2: 330d movi r3, 13 + 8bf4: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 8bf6: 827f ld.b r3, (r2, 0x1f) + 8bf8: 68c4 and r3, r1 + 8bfa: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 8bfc: 3300 movi r3, 0 + 8bfe: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 8c00: 827d ld.b r3, (r2, 0x1d) + 8c02: 68c4 and r3, r1 + 8c04: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 8c06: 3300 movi r3, 0 + 8c08: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 8c0a: 827b ld.b r3, (r2, 0x1b) + 8c0c: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 8c0e: 3300 movi r3, 0 + 8c10: 2b08 subi r3, 9 + 8c12: 60c0 addu r3, r0 + 8c14: 74cc zextb r3, r3 + 8c16: 3b09 cmphsi r3, 10 + 8c18: 0c08 bf 0x8c28 // 8c28 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 8c1a: 3808 cmphsi r0, 9 + 8c1c: 0810 bt 0x8c3c // 8c3c + tmp_quantile = 9 - diff; + 8c1e: 3309 movi r3, 9 + 8c20: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 8c22: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 8c24: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 8c26: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 8c28: 1007 lrw r0, 0xca96 // 8c44 + 8c2a: 60c0 addu r3, r0 + 8c2c: 8360 ld.b r3, (r3, 0x0) + 8c2e: 4b04 lsri r0, r3, 4 + 8c30: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 8c32: 300f movi r0, 15 + 8c34: 68c0 and r3, r0 + 8c36: 6c4c or r1, r3 + 8c38: a23b st.b r1, (r2, 0x1b) +} + 8c3a: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 8c3c: 3300 movi r3, 0 + 8c3e: 07f5 br 0x8c28 // 8c28 + 8c40: 200005c0 .long 0x200005c0 + 8c44: 0000ca96 .long 0x0000ca96 + +Disassembly of section .text.HT1621_Refresh_Task: + +00008c48 : + + +void HT1621_Refresh_Task(void){ + 8c48: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 8c4a: 109e lrw r4, 0x200000c0 // 8cc0 + 8c4c: 10be lrw r5, 0x200005c0 // 8cc4 + 8c4e: 9460 ld.w r3, (r4, 0x0) + 8c50: 954c ld.w r2, (r5, 0x30) + 8c52: 60ca subu r3, r2 + 8c54: 105d lrw r2, 0x1f3 // 8cc8 + 8c56: 64c8 cmphs r2, r3 + 8c58: 0806 bt 0x8c64 // 8c64 + HT1621.Refresh_timing = HT1621_Refresh_time; + 8c5a: 33fa movi r3, 250 + 8c5c: 4361 lsli r3, r3, 1 + 8c5e: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 8c60: e3fffbf8 bsr 0x8450 // 8450 +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 8c64: 107a lrw r3, 0x200005e0 // 8ccc + 8c66: 8344 ld.b r2, (r3, 0x4) + 8c68: 3a41 cmpnei r2, 1 + 8c6a: 0824 bt 0x8cb2 // 8cb2 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 8c6c: 952e ld.w r1, (r5, 0x38) + 8c6e: 9440 ld.w r2, (r4, 0x0) + 8c70: 6086 subu r2, r1 + 8c72: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 8c74: 6484 cmphs r1, r2 + 8c76: 0808 bt 0x8c86 // 8c86 + HT1621.buz_tick = SysTick_1ms; + 8c78: 9440 ld.w r2, (r4, 0x0) + 8c7a: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 8c7c: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 8c7e: 3200 movi r2, 0 + 8c80: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 8c82: e3fffb2d bsr 0x82dc // 82dc + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 8c86: 1053 lrw r2, 0x2000083c // 8cd0 + 8c88: 8202 ld.b r0, (r2, 0x2) + 8c8a: 1033 lrw r1, 0x200001a0 // 8cd4 + 8c8c: 4079 lsli r3, r0, 25 + 8c8e: 81ba ld.b r5, (r1, 0x1a) + 8c90: 4b7d lsri r3, r3, 29 + 8c92: 64d6 cmpne r5, r3 + 8c94: 0c0e bf 0x8cb0 // 8cb0 + TempCtrl.BackLightTick = SysTick_1ms; + 8c96: 9460 ld.w r3, (r4, 0x0) + 8c98: 4b88 lsri r4, r3, 8 + 8c9a: a270 st.b r3, (r2, 0x10) + 8c9c: a291 st.b r4, (r2, 0x11) + 8c9e: 4b90 lsri r4, r3, 16 + 8ca0: 4b78 lsri r3, r3, 24 + 8ca2: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 8ca4: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 8ca6: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 8ca8: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 8caa: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 8cac: e3fffec8 bsr 0x8a3c // 8a3c + } + +} + 8cb0: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 8cb2: 3a42 cmpnei r2, 2 + 8cb4: 0be9 bt 0x8c86 // 8c86 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 8cb6: 952e ld.w r1, (r5, 0x38) + 8cb8: 9440 ld.w r2, (r4, 0x0) + 8cba: 6086 subu r2, r1 + 8cbc: 1023 lrw r1, 0x1f3 // 8cc8 + 8cbe: 07db br 0x8c74 // 8c74 + 8cc0: 200000c0 .long 0x200000c0 + 8cc4: 200005c0 .long 0x200005c0 + 8cc8: 000001f3 .long 0x000001f3 + 8ccc: 200005e0 .long 0x200005e0 + 8cd0: 2000083c .long 0x2000083c + 8cd4: 200001a0 .long 0x200001a0 + +Disassembly of section .text.Boot_Comm_CheckSum: + +00008cd8 : + } + +} + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 8cd8: 14c1 push r4 + U8_T sum = 0; + 8cda: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 8cdc: 1047 lrw r2, 0xffff // 8cf8 + 8cde: 2900 subi r1, 1 + 8ce0: 7445 zexth r1, r1 + 8ce2: 6486 cmpne r1, r2 + 8ce4: 0804 bt 0x8cec // 8cec + { + sum += buffer[i]; + i++; + } + return (~sum); + 8ce6: 6cce nor r3, r3 + 8ce8: 740c zextb r0, r3 +} + 8cea: 1481 pop r4 + sum += buffer[i]; + 8cec: 8080 ld.b r4, (r0, 0x0) + 8cee: 60d0 addu r3, r4 + 8cf0: 74cc zextb r3, r3 + 8cf2: 2000 addi r0, 1 + 8cf4: 07f5 br 0x8cde // 8cde + 8cf6: 0000 bkpt + 8cf8: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +00008cfc : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 8cfc: 14d4 push r4-r7, r15 + 8cfe: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8d00: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 8d02: 1074 lrw r3, 0x2000052c // 8d50 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8d04: 47e1 lsli r7, r7, 1 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 8d06: 8340 ld.b r2, (r3, 0x0) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8d08: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 8d0a: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8d0c: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 8d0e: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8d10: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 8d12: 1071 lrw r3, 0x20000600 // 8d54 + 8d14: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 8d16: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 8d18: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 8d1a: 8062 ld.b r3, (r0, 0x2) + 8d1c: 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; + 8d1e: 4d68 lsri r3, r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 8d20: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 8d22: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 8d24: 8041 ld.b r2, (r0, 0x1) + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 8d26: 3300 movi r3, 0 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 8d28: 58ce addi r6, r0, 4 +{ + 8d2a: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 8d2c: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 8d2e: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 8d30: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 8d32: 6c57 mov r1, r5 + 8d34: 6c1b mov r0, r6 + 8d36: e3ffffd1 bsr 0x8cd8 // 8cd8 + 8d3a: a40a st.b r0, (r4, 0xa) +#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); + 8d3c: 3264 movi r2, 100 + 8d3e: 8f79 ld.h r3, (r7, 0x32) + 8d40: 6c57 mov r1, r5 + 8d42: b840 st.w r2, (r14, 0x0) + 8d44: 6c1b mov r0, r6 + 8d46: 3201 movi r2, 1 + 8d48: e3ffebd2 bsr 0x64ec // 64ec + + //ack_uart->ackLen = 0x00; +} + 8d4c: 1401 addi r14, r14, 4 + 8d4e: 1494 pop r4-r7, r15 + 8d50: 2000052c .long 0x2000052c + 8d54: 20000600 .long 0x20000600 + +Disassembly of section .text.Boot_Time_Refresh: + +00008d58 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + 8d58: 1063 lrw r3, 0x200000c0 // 8d64 + 8d5a: 9340 ld.w r2, (r3, 0x0) + 8d5c: 1063 lrw r3, 0x20000700 // 8d68 + 8d5e: b34e st.w r2, (r3, 0x38) +} + 8d60: 783c jmp r15 + 8d62: 0000 bkpt + 8d64: 200000c0 .long 0x200000c0 + 8d68: 20000700 .long 0x20000700 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +00008d6c : +{ + 8d6c: 14d4 push r4-r7, r15 + 8d6e: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + 8d70: 8065 ld.b r3, (r0, 0x5) + 8d72: 8044 ld.b r2, (r0, 0x4) + 8d74: 4368 lsli r3, r3, 8 + 8d76: 6cc8 or r3, r2 + if(len != data_len) { + 8d78: 644e cmpne r3, r1 +{ + 8d7a: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + 8d7c: b860 st.w r3, (r14, 0x0) + if(len != data_len) { + 8d7e: 08aa bt 0x8ed2 // 8ed2 + if(Boot_Comm_CheckSum(data,len) != 0) { + 8d80: 6c4f mov r1, r3 + 8d82: e3ffffab bsr 0x8cd8 // 8cd8 + 8d86: 3840 cmpnei r0, 0 + 8d88: 6cc3 mov r3, r0 + 8d8a: 08a6 bt 0x8ed6 // 8ed6 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 8d8c: 8541 ld.b r2, (r5, 0x1) + 8d8e: 744a sextb r1, r2 + 8d90: 39df btsti r1, 31 + 8d92: 1295 lrw r4, 0x20000600 // 8ee4 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 8d94: 8401 ld.b r0, (r4, 0x1) + 8d96: 310f movi r1, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 8d98: 0c2d bf 0x8df2 // 8df2 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 8d9a: 6884 and r2, r1 + 8d9c: 6482 cmpne r0, r2 + 8d9e: 60cd addc r3, r3 + deal_flag = 0x00; + 8da0: 740c zextb r0, r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 8da2: 3700 movi r7, 0 + group_flag = 0x01; + 8da4: 3301 movi r3, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + 8da6: 12d1 lrw r6, 0x2000052c // 8ee8 + 8da8: 8542 ld.b r2, (r5, 0x2) + 8daa: 8621 ld.b r1, (r6, 0x1) + 8dac: 6486 cmpne r1, r2 + 8dae: 0c04 bf 0x8db6 // 8db6 + 8db0: 31ff movi r1, 255 + 8db2: 644a cmpne r2, r1 + 8db4: 0893 bt 0x8eda // 8eda + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + 8db6: 8543 ld.b r2, (r5, 0x3) + 8db8: 8620 ld.b r1, (r6, 0x0) + 8dba: 6486 cmpne r1, r2 + 8dbc: 0c04 bf 0x8dc4 // 8dc4 + 8dbe: 31ff movi r1, 255 + 8dc0: 644a cmpne r2, r1 + 8dc2: 088e bt 0x8ede // 8ede + 8dc4: b862 st.w r3, (r14, 0x8) + 8dc6: b801 st.w r0, (r14, 0x4) + Boot_Time_Refresh(); + 8dc8: e3ffffc8 bsr 0x8d58 // 8d58 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + 8dcc: 8560 ld.b r3, (r5, 0x0) + 8dce: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + 8dd0: 8541 ld.b r2, (r5, 0x1) + 8dd2: 310f movi r1, 15 + 8dd4: 6884 and r2, r1 + 8dd6: a441 st.b r2, (r4, 0x1) + switch(g_boot.cmd){ + 8dd8: 31c0 movi r1, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 8dda: 8547 ld.b r2, (r5, 0x7) + switch(g_boot.cmd){ + 8ddc: 644a cmpne r2, r1 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 8dde: a442 st.b r2, (r4, 0x2) + switch(g_boot.cmd){ + 8de0: 9801 ld.w r0, (r14, 0x4) + 8de2: 9862 ld.w r3, (r14, 0x8) + 8de4: 0c1a bf 0x8e18 // 8e18 + 8de6: 31c1 movi r1, 193 + 8de8: 644a cmpne r2, r1 + 8dea: 0c62 bf 0x8eae // 8eae + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 8dec: 3201 movi r2, 1 + 8dee: a44c st.b r2, (r4, 0xc) + 8df0: 046a br 0x8ec4 // 8ec4 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 8df2: 6848 and r1, r2 + 8df4: 6442 cmpne r0, r1 + 8df6: 080c bt 0x8e0e // 8e0e + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + 8df8: 3140 movi r1, 64 + 8dfa: 6884 and r2, r1 + 8dfc: 3a40 cmpnei r2, 0 + 8dfe: 0c0b bf 0x8e14 // 8e14 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + 8e00: 8527 ld.b r1, (r5, 0x7) + 8e02: 844b ld.b r2, (r4, 0xb) + 8e04: 6486 cmpne r1, r2 + 8e06: 65c3 mvcv r7 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 8e08: 75dc zextb r7, r7 + 8e0a: 3000 movi r0, 0 + 8e0c: 07cd br 0x8da6 // 8da6 + reply_flag = 0x01; + 8e0e: 3701 movi r7, 1 + deal_flag = 0x01; + 8e10: 3001 movi r0, 1 + 8e12: 07ca br 0x8da6 // 8da6 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 8e14: 3700 movi r7, 0 + 8e16: 07fa br 0x8e0a // 8e0a + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + 8e18: 3841 cmpnei r0, 1 + 8e1a: 0819 bt 0x8e4c // 8e4c + 8e1c: 9840 ld.w r2, (r14, 0x0) + 8e1e: 3a0b cmphsi r2, 12 + 8e20: 0c16 bf 0x8e4c // 8e4c + temp_data |= data[BCOMM_FMT_PARAM]; + 8e22: 8529 ld.b r1, (r5, 0x9) + 8e24: 8548 ld.b r2, (r5, 0x8) + 8e26: 4128 lsli r1, r1, 8 + 8e28: 6c48 or r1, r2 + if(temp_data != g_boot.bootTimeout){ + 8e2a: 1151 lrw r2, 0x20000700 // 8eec + 8e2c: 920d ld.w r0, (r2, 0x34) + 8e2e: 6406 cmpne r1, r0 + 8e30: 0c09 bf 0x8e42 // 8e42 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 8e32: 3909 cmphsi r1, 10 + 8e34: 0c3b bf 0x8eaa // 8eaa + 8e36: b22d st.w r1, (r2, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + 8e38: 30fa movi r0, 250 + 8e3a: 922d ld.w r1, (r2, 0x34) + 8e3c: 4002 lsli r0, r0, 2 + 8e3e: 7c40 mult r1, r0 + 8e40: b22d st.w r1, (r2, 0x34) + 8e42: 852b ld.b r1, (r5, 0xb) + 8e44: 850a ld.b r0, (r5, 0xa) + 8e46: 4128 lsli r1, r1, 8 + 8e48: 6c40 or r1, r0 + g_boot.ackValidity = temp_data; + 8e4a: aa39 st.h r1, (r2, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + 8e4c: 3f41 cmpnei r7, 1 + 8e4e: 082c bt 0x8ea6 // 8ea6 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + 8e50: 3202 movi r2, 2 + 8e52: a44c st.b r2, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + 8e54: 8642 ld.b r2, (r6, 0x2) + 8e56: a44d st.b r2, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + 8e58: 8643 ld.b r2, (r6, 0x3) + 8e5a: a44e st.b r2, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + 8e5c: 3203 movi r2, 3 + 8e5e: a44f st.b r2, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + 8e60: 1144 lrw r2, 0x2000005c // 8ef0 + 8e62: 9240 ld.w r2, (r2, 0x0) + 8e64: 227f addi r2, 128 + 8e66: 9239 ld.w r1, (r2, 0x64) + 8e68: a430 st.b r1, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + 8e6a: 923a ld.w r1, (r2, 0x68) + 8e6c: a431 st.b r1, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + 8e6e: 925b ld.w r2, (r2, 0x6c) + 8e70: a452 st.b r2, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + 8e72: 8624 ld.b r1, (r6, 0x4) + 8e74: 3220 movi r2, 32 + 8e76: 6448 cmphs r2, r1 + 8e78: 0802 bt 0x8e7c // 8e7c + 8e7a: a644 st.b r2, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + 8e7c: 8644 ld.b r2, (r6, 0x4) + 8e7e: a453 st.b r2, (r4, 0x13) + 8e80: 3220 movi r2, 32 + 8e82: 101a lrw r0, 0x2000052c // 8ee8 + 8e84: 1038 lrw r1, 0x20000600 // 8ee4 + 8e86: 2a00 subi r2, 1 + 8e88: 7488 zextb r2, r2 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + 8e8a: 8085 ld.b r4, (r0, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + 8e96: 1056 lrw r2, 0x20000700 // 8eec + 8e98: 3128 movi r1, 40 + 8e9a: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 8e9c: 3b40 cmpnei r3, 0 + 8e9e: 0804 bt 0x8ea6 // 8ea6 + Boot_Comm_FillReplyPack(&g_boot); + 8ea0: 1011 lrw r0, 0x20000600 // 8ee4 + 8ea2: e3ffff2d bsr 0x8cfc // 8cfc +} + 8ea6: 1403 addi r14, r14, 12 + 8ea8: 1494 pop r4-r7, r15 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 8eaa: 310a movi r1, 10 + 8eac: 07c5 br 0x8e36 // 8e36 + if(deal_flag != 0x01) break; //不处理直接退出 + 8eae: 3841 cmpnei r0, 1 + 8eb0: 080d bt 0x8eca // 8eca + if(data[BCOMM_FMT_PARAM] == 0x01){ + 8eb2: 8548 ld.b r2, (r5, 0x8) + 8eb4: 3a41 cmpnei r2, 1 + 8eb6: 0b9b bt 0x8dec // 8dec + 8eb8: b860 st.w r3, (r14, 0x0) + BUS485_Jump_Boot(0x01); + 8eba: e3ffeb53 bsr 0x6560 // 6560 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + 8ebe: 3300 movi r3, 0 + 8ec0: a46c st.b r3, (r4, 0xc) + 8ec2: 9860 ld.w r3, (r14, 0x0) + g_boot.ackLen = 1; + 8ec4: 104a lrw r2, 0x20000700 // 8eec + 8ec6: 3101 movi r1, 1 + 8ec8: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 8eca: 3b40 cmpnei r3, 0 + 8ecc: 0bed bt 0x8ea6 // 8ea6 + 8ece: 3f41 cmpnei r7, 1 + 8ed0: 07e7 br 0x8e9e // 8e9e + return 0x01; + 8ed2: 3001 movi r0, 1 + 8ed4: 07e9 br 0x8ea6 // 8ea6 + return 0x02; + 8ed6: 3002 movi r0, 2 + 8ed8: 07e7 br 0x8ea6 // 8ea6 + return 0x03; + 8eda: 3003 movi r0, 3 + 8edc: 07e5 br 0x8ea6 // 8ea6 + return 0x04; + 8ede: 3004 movi r0, 4 + 8ee0: 07e3 br 0x8ea6 // 8ea6 + 8ee2: 0000 bkpt + 8ee4: 20000600 .long 0x20000600 + 8ee8: 2000052c .long 0x2000052c + 8eec: 20000700 .long 0x20000700 + 8ef0: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Init: + +00008ef4 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 8ef4: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 8ef6: 1298 lrw r4, 0x2000083c // 9054 + 8ef8: 3229 movi r2, 41 + 8efa: 3100 movi r1, 0 + 8efc: 6c13 mov r0, r4 + 8efe: e3ffd94f bsr 0x419c // 419c <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 8f02: 1276 lrw r3, 0x200000b4 // 9058 + 8f04: 9360 ld.w r3, (r3, 0x0) + 8f06: 3b80 bclri r3, 0 + 8f08: 3b40 cmpnei r3, 0 + 8f0a: 0c9e bf 0x9046 // 9046 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 8f0c: 1234 lrw r1, 0xce32 // 905c + 8f0e: 3000 movi r0, 0 + 8f10: e3ffeb96 bsr 0x663c // 663c + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 8f14: 1273 lrw r3, 0x200000b0 // 9060 + 8f16: 30ff movi r0, 255 + 8f18: 9320 ld.w r1, (r3, 0x0) + 8f1a: 6840 and r1, r0 + 8f1c: 3940 cmpnei r1, 0 + 8f1e: 0c05 bf 0x8f28 // 8f28 + 8f20: 9340 ld.w r2, (r3, 0x0) + 8f22: 6880 and r2, r0 + 8f24: 3a41 cmpnei r2, 1 + 8f26: 0883 bt 0x902c // 902c + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 8f28: 9340 ld.w r2, (r3, 0x0) + 8f2a: 4227 lsli r1, r2, 7 + 8f2c: 307f movi r0, 127 + 8f2e: 8442 ld.b r2, (r4, 0x2) + 8f30: 6880 and r2, r0 + 8f32: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 8f34: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 8f36: 9340 ld.w r2, (r3, 0x0) + 8f38: 4a48 lsri r2, r2, 8 + 8f3a: 30ff movi r0, 255 + 8f3c: 6880 and r2, r0 + 8f3e: 3a40 cmpnei r2, 0 + 8f40: 0c10 bf 0x8f60 // 8f60 + 8f42: 9340 ld.w r2, (r3, 0x0) + 8f44: 4a48 lsri r2, r2, 8 + 8f46: 6880 and r2, r0 + 8f48: 3a42 cmpnei r2, 2 + 8f4a: 0c0b bf 0x8f60 // 8f60 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 8f4c: 9320 ld.w r1, (r3, 0x0) + 8f4e: 4928 lsri r1, r1, 8 + 8f50: 6840 and r1, r0 + 8f52: 3944 cmpnei r1, 4 + 8f54: 0c06 bf 0x8f60 // 8f60 + 8f56: 9340 ld.w r2, (r3, 0x0) + 8f58: 4a48 lsri r2, r2, 8 + 8f5a: 6880 and r2, r0 + 8f5c: 3a46 cmpnei r2, 6 + 8f5e: 086b bt 0x9034 // 9034 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 8f60: 9340 ld.w r2, (r3, 0x0) + 8f62: 3107 movi r1, 7 + 8f64: 4a48 lsri r2, r2, 8 + 8f66: 6884 and r2, r1 + 8f68: 3070 movi r0, 112 + 8f6a: 8422 ld.b r1, (r4, 0x2) + 8f6c: 4244 lsli r2, r2, 4 + 8f6e: 6841 andn r1, r0 + 8f70: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 8f72: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 8f74: 9340 ld.w r2, (r3, 0x0) + 8f76: 4a50 lsri r2, r2, 16 + 8f78: 30ff movi r0, 255 + 8f7a: 6880 and r2, r0 + 8f7c: 3a40 cmpnei r2, 0 + 8f7e: 0c10 bf 0x8f9e // 8f9e + 8f80: 9340 ld.w r2, (r3, 0x0) + 8f82: 4a50 lsri r2, r2, 16 + 8f84: 6880 and r2, r0 + 8f86: 3a41 cmpnei r2, 1 + 8f88: 0c0b bf 0x8f9e // 8f9e + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 8f8a: 9320 ld.w r1, (r3, 0x0) + 8f8c: 4930 lsri r1, r1, 16 + 8f8e: 6840 and r1, r0 + 8f90: 3942 cmpnei r1, 2 + 8f92: 0c06 bf 0x8f9e // 8f9e + 8f94: 9340 ld.w r2, (r3, 0x0) + 8f96: 4a50 lsri r2, r2, 16 + 8f98: 6880 and r2, r0 + 8f9a: 3a43 cmpnei r2, 3 + 8f9c: 0850 bt 0x903c // 903c + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 8f9e: 9340 ld.w r2, (r3, 0x0) + 8fa0: 3107 movi r1, 7 + 8fa2: 4a50 lsri r2, r2, 16 + 8fa4: 6884 and r2, r1 + 8fa6: 300e movi r0, 14 + 8fa8: 8422 ld.b r1, (r4, 0x2) + 8faa: 4241 lsli r2, r2, 1 + 8fac: 6841 andn r1, r0 + 8fae: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 8fb0: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 8fb2: 9340 ld.w r2, (r3, 0x0) + 8fb4: 4a58 lsri r2, r2, 24 + 8fb6: 3a0f cmphsi r2, 16 + 8fb8: 0c4c bf 0x9050 // 9050 + 8fba: 3284 movi r2, 132 + 8fbc: 4256 lsli r2, r2, 22 + 8fbe: 9320 ld.w r1, (r3, 0x0) + 8fc0: 2a00 subi r2, 1 + 8fc2: 6448 cmphs r2, r1 + 8fc4: 0c46 bf 0x9050 // 9050 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 8fc6: 9360 ld.w r3, (r3, 0x0) + 8fc8: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 8fca: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 8fcc: e3fff30a bsr 0x75e0 // 75e0 + 8fd0: 1165 lrw r3, 0x20000524 // 9064 + 8fd2: 8362 ld.b r3, (r3, 0x2) + 8fd4: 320a movi r2, 10 + 8fd6: 7cc8 mult r3, r2 + 8fd8: 2b54 subi r3, 85 + 8fda: 600c addu r0, r3 + 8fdc: 7401 zexth r0, r0 + 8fde: 4868 lsri r3, r0, 8 + 8fe0: a469 st.b r3, (r4, 0x9) + 8fe2: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 8fe4: 310a movi r1, 10 + 8fe6: e3ffe8bf bsr 0x6164 // 6164 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 8fea: 3301 movi r3, 1 + 8fec: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 8fee: 3300 movi r3, 0 + 8ff0: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 8ff2: 3200 movi r2, 0 + 8ff4: 107d lrw r3, 0x2000005c // 9068 + 8ff6: 9360 ld.w r3, (r3, 0x0) + 8ff8: 23ff addi r3, 256 + 8ffa: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 8ffc: 8442 ld.b r2, (r4, 0x2) + 8ffe: 4239 lsli r1, r2, 25 + 9000: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 9002: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 9004: 4128 lsli r1, r1, 8 + 9006: 9300 ld.w r0, (r3, 0x0) + 9008: 6c40 or r1, r0 + 900a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 900c: 423c lsli r1, r2, 28 + 900e: 493d lsri r1, r1, 29 + 9010: 9300 ld.w r0, (r3, 0x0) + 9012: 4130 lsli r1, r1, 16 + 9014: 6c40 or r1, r0 + 9016: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 9018: 8421 ld.b r1, (r4, 0x1) + 901a: 9300 ld.w r0, (r3, 0x0) + 901c: 4138 lsli r1, r1, 24 + 901e: 6c40 or r1, r0 + 9020: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 9022: 9320 ld.w r1, (r3, 0x0) + 9024: 4a47 lsri r2, r2, 7 + 9026: 6c84 or r2, r1 + 9028: b340 st.w r2, (r3, 0x0) +} + 902a: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 902c: 8442 ld.b r2, (r4, 0x2) + 902e: 317f movi r1, 127 + 9030: 6884 and r2, r1 + 9032: 0781 br 0x8f34 // 8f34 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 9034: 8442 ld.b r2, (r4, 0x2) + 9036: 3170 movi r1, 112 + 9038: 6885 andn r2, r1 + 903a: 079c br 0x8f72 // 8f72 + TempCtrl.TemState_Now.fan = FAN_MID; + 903c: 8442 ld.b r2, (r4, 0x2) + 903e: 310e movi r1, 14 + 9040: 6885 andn r2, r1 + 9042: 3aa1 bseti r2, 1 + 9044: 07b6 br 0x8fb0 // 8fb0 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 9046: 8462 ld.b r3, (r4, 0x2) + 9048: 320e movi r2, 14 + 904a: 68c9 andn r3, r2 + 904c: 3ba1 bseti r3, 1 + 904e: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 9050: 3318 movi r3, 24 + 9052: 07bc br 0x8fca // 8fca + 9054: 2000083c .long 0x2000083c + 9058: 200000b4 .long 0x200000b4 + 905c: 0000ce32 .long 0x0000ce32 + 9060: 200000b0 .long 0x200000b0 + 9064: 20000524 .long 0x20000524 + 9068: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +0000906c : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 906c: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 906e: 1031 lrw r1, 0x2000083c // 90b0 + 9070: 8162 ld.b r3, (r1, 0x2) + 9072: 748e sextb r2, r3 + 9074: 3adf btsti r2, 31 + 9076: 0c14 bf 0x909e // 909e + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 9078: 4359 lsli r2, r3, 25 + 907a: 4a5d lsri r2, r2, 29 + 907c: 3a42 cmpnei r2, 2 + 907e: 0c11 bf 0x90a0 // 90a0 + 9080: 3a44 cmpnei r2, 4 + 9082: 0c13 bf 0x90a8 // 90a8 + 9084: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 9086: 3270 movi r2, 112 + 9088: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 908a: 0802 bt 0x908e // 908e + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 908c: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 908e: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 9090: 8142 ld.b r2, (r1, 0x2) + 9092: 4259 lsli r2, r2, 25 + 9094: 4a5d lsri r2, r2, 29 + 9096: 1028 lrw r1, 0xce4b // 90b4 + 9098: 3000 movi r0, 0 + 909a: e3ffead1 bsr 0x663c // 663c +} + 909e: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 90a0: 3270 movi r2, 112 + 90a2: 68c9 andn r3, r2 + 90a4: 3ba6 bseti r3, 6 + 90a6: 07f4 br 0x908e // 908e + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 90a8: 3270 movi r2, 112 + 90aa: 68c9 andn r3, r2 + 90ac: 07f1 br 0x908e // 908e + 90ae: 0000 bkpt + 90b0: 2000083c .long 0x2000083c + 90b4: 0000ce4b .long 0x0000ce4b + +Disassembly of section .text.TemCtrl_Fan_Set: + +000090b8 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 90b8: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 90ba: 1071 lrw r3, 0x2000083c // 90fc + 90bc: 8342 ld.b r2, (r3, 0x2) + 90be: 744a sextb r1, r2 + 90c0: 39df btsti r1, 31 + 90c2: 0c15 bf 0x90ec // 90ec + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 90c4: 421c lsli r0, r2, 28 + 90c6: 481d lsri r0, r0, 29 + 90c8: 3803 cmphsi r0, 4 + 90ca: 0814 bt 0x90f2 // 90f2 + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + 90cc: 8342 ld.b r2, (r3, 0x2) + 90ce: 310e movi r1, 14 + 90d0: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 90d2: e3ffd215 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + 90d6: 0c02 .short 0x0c02 + 90d8: 0310 .short 0x0310 + TempCtrl.TemState_Now.fan = FAN_MID; + 90da: 3aa1 bseti r2, 1 + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 90dc: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 90de: 8342 ld.b r2, (r3, 0x2) + 90e0: 425c lsli r2, r2, 28 + 90e2: 4a5d lsri r2, r2, 29 + 90e4: 1027 lrw r1, 0xce54 // 9100 + 90e6: 3000 movi r0, 0 + 90e8: e3ffeaaa bsr 0x663c // 663c +} + 90ec: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 90ee: 3aa2 bseti r2, 2 + 90f0: 07f6 br 0x90dc // 90dc + TempCtrl.TemState_Now.fan = FAN_AUTO; + 90f2: 310e movi r1, 14 + 90f4: 6885 andn r2, r1 + 90f6: 3aa1 bseti r2, 1 + 90f8: 3aa2 bseti r2, 2 + 90fa: 07f1 br 0x90dc // 90dc + 90fc: 2000083c .long 0x2000083c + 9100: 0000ce54 .long 0x0000ce54 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00009104 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 9104: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 9106: 106a lrw r3, 0x2000083c // 912c + 9108: 8342 ld.b r2, (r3, 0x2) + 910a: 748a sextb r2, r2 + 910c: 3adf btsti r2, 31 + 910e: 0c0b bf 0x9124 // 9124 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 9110: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 9112: 3a10 cmphsi r2, 17 + 9114: 0c09 bf 0x9126 // 9126 + { + TemSet--; //超过最低温度,就减 + 9116: 2a00 subi r2, 1 + 9118: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 911a: 1026 lrw r1, 0xce5b // 9130 + 911c: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 911e: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 9120: e3ffea8e bsr 0x663c // 663c +} + 9124: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 9126: 3210 movi r2, 16 + 9128: 07f9 br 0x911a // 911a + 912a: 0000 bkpt + 912c: 2000083c .long 0x2000083c + 9130: 0000ce5b .long 0x0000ce5b + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00009134 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 9134: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 9136: 106a lrw r3, 0x2000083c // 915c + 9138: 8342 ld.b r2, (r3, 0x2) + 913a: 748a sextb r2, r2 + 913c: 3adf btsti r2, 31 + 913e: 0c0b bf 0x9154 // 9154 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 9140: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 9142: 3a1f cmphsi r2, 32 + 9144: 0809 bt 0x9156 // 9156 + { + TemSet++; + 9146: 2200 addi r2, 1 + 9148: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 914a: 1026 lrw r1, 0xce64 // 9160 + 914c: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 914e: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 9150: e3ffea76 bsr 0x663c // 663c +} + 9154: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 9156: 3220 movi r2, 32 + 9158: 07f9 br 0x914a // 914a + 915a: 0000 bkpt + 915c: 2000083c .long 0x2000083c + 9160: 0000ce64 .long 0x0000ce64 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00009164 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 9164: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 9166: 104b lrw r2, 0x2000083c // 9190 + 9168: 8262 ld.b r3, (r2, 0x2) + 916a: 4b27 lsri r1, r3, 7 + 916c: 3940 cmpnei r1, 0 + 916e: 0c0d bf 0x9188 // 9188 + 9170: 3941 cmpnei r1, 1 + 9172: 080b bt 0x9188 // 9188 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 9174: 317f movi r1, 127 + 9176: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 9178: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 917a: 8242 ld.b r2, (r2, 0x2) + 917c: 4a47 lsri r2, r2, 7 + 917e: 1026 lrw r1, 0xce64 // 9194 + 9180: 3000 movi r0, 0 + 9182: e3ffea5d bsr 0x663c // 663c +} + 9186: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 9188: 3100 movi r1, 0 + 918a: 297f subi r1, 128 + 918c: 6cc4 or r3, r1 + 918e: 07f5 br 0x9178 // 9178 + 9190: 2000083c .long 0x2000083c + 9194: 0000ce64 .long 0x0000ce64 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00009198 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 9198: 14d1 push r4, r15 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 919a: 1130 lrw r1, 0x2000083c // 9258 + 919c: 8100 ld.b r0, (r1, 0x0) + 919e: 3840 cmpnei r0, 0 + 91a0: 0802 bt 0x91a4 // 91a4 + 91a2: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 91a4: 8141 ld.b r2, (r1, 0x1) + 91a6: 3a40 cmpnei r2, 0 + 91a8: 0802 bt 0x91ac // 91ac + 91aa: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 91ac: 8162 ld.b r3, (r1, 0x2) + 91ae: 4b87 lsri r4, r3, 7 + 91b0: 3c40 cmpnei r4, 0 + 91b2: 0c0f bf 0x91d0 // 91d0 + 91b4: 3c41 cmpnei r4, 1 + 91b6: 0850 bt 0x9256 // 9256 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 91b8: 4399 lsli r4, r3, 25 + 91ba: 4c9d lsri r4, r4, 29 + 91bc: 3c42 cmpnei r4, 2 + 91be: 0c26 bf 0x920a // 920a + 91c0: 3c44 cmpnei r4, 4 + 91c2: 0c36 bf 0x922e // 922e + 91c4: 3c40 cmpnei r4, 0 + 91c6: 0848 bt 0x9256 // 9256 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 91c8: 5a83 subi r4, r2, 1 + 91ca: 6501 cmplt r0, r4 + 91cc: 0c05 bf 0x91d6 // 91d6 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 91ce: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 91d0: 3b80 bclri r3, 0 + 91d2: a162 st.b r3, (r1, 0x2) + 91d4: 0419 br 0x9206 // 9206 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 91d6: 2200 addi r2, 1 + 91d8: 6409 cmplt r2, r0 + 91da: 0c3e bf 0x9256 // 9256 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 91dc: 3ba0 bseti r3, 0 + 91de: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 91e0: 107f lrw r3, 0x20000524 // 925c + 91e2: 8361 ld.b r3, (r3, 0x1) + 91e4: 3b41 cmpnei r3, 1 + 91e6: 080a bt 0x91fa // 91fa + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 91e8: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 91ea: 3000 movi r0, 0 + 91ec: e0000730 bsr 0xa04c // a04c + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 91f0: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 91f2: 3001 movi r0, 1 + 91f4: e000072c bsr 0xa04c // a04c + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 91f8: 042f br 0x9256 // 9256 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 91fa: 3b40 cmpnei r3, 0 + 91fc: 0803 bt 0x9202 // 9202 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 91fe: 3101 movi r1, 1 + 9200: 07f5 br 0x91ea // 91ea + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 9202: 3b42 cmpnei r3, 2 + 9204: 0829 bt 0x9256 // 9256 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 9206: 3102 movi r1, 2 + 9208: 040e br 0x9224 // 9224 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 920a: 5a82 addi r4, r2, 1 + 920c: 6411 cmplt r4, r0 + 920e: 0be0 bt 0x91ce // 91ce + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 9210: 2a00 subi r2, 1 + 9212: 6481 cmplt r0, r2 + 9214: 0c21 bf 0x9256 // 9256 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 9216: 3ba0 bseti r3, 0 + 9218: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 921a: 1071 lrw r3, 0x20000524 // 925c + 921c: 8361 ld.b r3, (r3, 0x1) + 921e: 3b41 cmpnei r3, 1 + 9220: 0bed bt 0x91fa // 91fa + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 9222: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 9224: 3000 movi r0, 0 + 9226: e0000713 bsr 0xa04c // a04c + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 922a: 3102 movi r1, 2 + 922c: 07e3 br 0x91f2 // 91f2 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 922e: 3b80 bclri r3, 0 + 9230: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 9232: 3000 movi r0, 0 + 9234: 3102 movi r1, 2 + 9236: e000070b bsr 0xa04c // a04c + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 923a: 3102 movi r1, 2 + 923c: 3001 movi r0, 1 + 923e: e0000707 bsr 0xa04c // a04c + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 9242: 1067 lrw r3, 0x20000524 // 925c + 9244: 8361 ld.b r3, (r3, 0x1) + 9246: 3b42 cmpnei r3, 2 + 9248: 0807 bt 0x9256 // 9256 + Relay_Stop(); + 924a: e00006f3 bsr 0xa030 // a030 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 924e: 1025 lrw r1, 0xce72 // 9260 + 9250: 3000 movi r0, 0 + 9252: e3ffe9f5 bsr 0x663c // 663c +} + 9256: 1491 pop r4, r15 + 9258: 2000083c .long 0x2000083c + 925c: 20000524 .long 0x20000524 + 9260: 0000ce72 .long 0x0000ce72 + +Disassembly of section .text.TemCtrl_Pro: + +00009264 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 9264: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 9266: 1218 lrw r0, 0x200000c0 // 93c4 + 9268: 1238 lrw r1, 0x20000230 // 93c8 + 926a: 9040 ld.w r2, (r0, 0x0) + 926c: 9160 ld.w r3, (r1, 0x0) + 926e: 608e subu r2, r3 + 9270: 33fa movi r3, 250 + 9272: 4362 lsli r3, r3, 2 + 9274: 648c cmphs r3, r2 + 9276: 083b bt 0x92ec // 92ec + { + tick = SysTick_1ms; + 9278: 9060 ld.w r3, (r0, 0x0) + 927a: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 927c: 360a movi r6, 10 + 927e: 12b4 lrw r5, 0x20000524 // 93cc + 9280: e3fff1b0 bsr 0x75e0 // 75e0 + 9284: 8542 ld.b r2, (r5, 0x2) + 9286: 7c98 mult r2, r6 + 9288: 2a54 subi r2, 85 + 928a: 6080 addu r2, r0 + 928c: 7589 zexth r6, r2 + 928e: 1291 lrw r4, 0x2000083c // 93d0 + 9290: 7498 zextb r2, r6 + 9292: 4e68 lsri r3, r6, 8 + 9294: a448 st.b r2, (r4, 0x8) + 9296: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 9298: a44c st.b r2, (r4, 0xc) + 929a: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 929c: 310a movi r1, 10 + 929e: 6c1b mov r0, r6 + 92a0: e3ffe762 bsr 0x6164 // 6164 <__udivsi3> + 92a4: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 92a6: 6c9b mov r2, r6 + 92a8: 122b lrw r1, 0xce7b // 93d4 + 92aa: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 92ac: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 92ae: e3ffe9c7 bsr 0x663c // 663c + + Tem_Valve_Ctrl(); + 92b2: e3ffff73 bsr 0x9198 // 9198 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 92b6: 8442 ld.b r2, (r4, 0x2) + 92b8: 74c8 zextb r3, r2 + 92ba: 3171 movi r1, 113 + 92bc: 6c0f mov r0, r3 + 92be: 6805 andn r0, r1 + 92c0: 3186 movi r1, 134 + 92c2: 6442 cmpne r0, r1 + 92c4: 083d bt 0x933e // 933e + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 92c6: 3270 movi r2, 112 + 92c8: 68c8 and r3, r2 + 92ca: 3b40 cmpnei r3, 0 + 92cc: 0827 bt 0x931a // 931a + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 92ce: 8461 ld.b r3, (r4, 0x1) + 92d0: 8440 ld.b r2, (r4, 0x0) + 92d2: 5b27 subi r1, r3, 2 + 92d4: 6449 cmplt r2, r1 + 92d6: 0c0c bf 0x92ee // 92ee + { + Relay_Stop(); //低风速 + 92d8: e00006ac bsr 0xa030 // a030 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 92dc: 117f lrw r3, 0x200005c0 // 93d8 + 92de: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 92e0: 8402 ld.b r0, (r4, 0x2) + 92e2: 401c lsli r0, r0, 28 + 92e4: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 92e6: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 92e8: e3fffacc bsr 0x8880 // 8880 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 92ec: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 92ee: 5b23 subi r1, r3, 1 + 92f0: 644a cmpne r2, r1 + 92f2: 0804 bt 0x92fa // 92fa + Relay_Low(); //低风速 + 92f4: e0000690 bsr 0xa014 // a014 + 92f8: 07f2 br 0x92dc // 92dc + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 92fa: 5b22 addi r1, r3, 1 + 92fc: 644a cmpne r2, r1 + 92fe: 0806 bt 0x930a // 930a + Relay_Mid(); //中风速 + 9300: e000067c bsr 0x9ff8 // 9ff8 + HT1621.wind_velocity = 1; + 9304: 1175 lrw r3, 0x200005c0 // 93d8 + 9306: 3201 movi r2, 1 + 9308: 07ec br 0x92e0 // 92e0 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 930a: 2301 addi r3, 2 + 930c: 648d cmplt r3, r2 + 930e: 0fef bf 0x92ec // 92ec + Relay_High(); //高风速 + 9310: e0000666 bsr 0x9fdc // 9fdc + HT1621.wind_velocity = 2; + 9314: 1171 lrw r3, 0x200005c0 // 93d8 + 9316: 3202 movi r2, 2 + 9318: 07e4 br 0x92e0 // 92e0 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 931a: 3220 movi r2, 32 + 931c: 648e cmpne r3, r2 + 931e: 0be7 bt 0x92ec // 92ec + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 9320: 8461 ld.b r3, (r4, 0x1) + 9322: 8440 ld.b r2, (r4, 0x0) + 9324: 5b27 subi r1, r3, 2 + 9326: 6449 cmplt r2, r1 + 9328: 0bf4 bt 0x9310 // 9310 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 932a: 5b23 subi r1, r3, 1 + 932c: 644a cmpne r2, r1 + 932e: 0fe9 bf 0x9300 // 9300 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 9330: 5b22 addi r1, r3, 1 + 9332: 644a cmpne r2, r1 + 9334: 0fe0 bf 0x92f4 // 92f4 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 9336: 2301 addi r3, 2 + 9338: 648d cmplt r3, r2 + 933a: 0fd9 bf 0x92ec // 92ec + 933c: 07ce br 0x92d8 // 92d8 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 933e: 8521 ld.b r1, (r5, 0x1) + 9340: 3942 cmpnei r1, 2 + 9342: 744e sextb r1, r3 + 9344: 083a bt 0x93b8 // 93b8 + 9346: 39df btsti r1, 31 + 9348: 0c38 bf 0x93b8 // 93b8 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 934a: 310e movi r1, 14 + 934c: 684c and r1, r3 + 934e: 3946 cmpnei r1, 6 + 9350: 0fce bf 0x92ec // 92ec + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 9352: 3170 movi r1, 112 + 9354: 68c4 and r3, r1 + 9356: 3b40 cmpnei r3, 0 + 9358: 0819 bt 0x938a // 938a + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 935a: 8461 ld.b r3, (r4, 0x1) + 935c: 8420 ld.b r1, (r4, 0x0) + 935e: 5b07 subi r0, r3, 2 + 9360: 6405 cmplt r1, r0 + 9362: 0bbb bt 0x92d8 // 92d8 + switch(TempCtrl.TemState_Now.fan) + 9364: 425c lsli r2, r2, 28 + 9366: 4a5d lsri r2, r2, 29 + 9368: 3a41 cmpnei r2, 1 + 936a: 0c0c bf 0x9382 // 9382 + 936c: 3a40 cmpnei r2, 0 + 936e: 0c06 bf 0x937a // 937a + 9370: 3a42 cmpnei r2, 2 + 9372: 0bbd bt 0x92ec // 92ec + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 9374: 2301 addi r3, 2 + 9376: 644d cmplt r3, r1 + 9378: 07cb br 0x930e // 930e + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 937a: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 937c: 64c6 cmpne r1, r3 + 937e: 0bb7 bt 0x92ec // 92ec + 9380: 07ba br 0x92f4 // 92f4 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 9382: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 9384: 64c6 cmpne r1, r3 + 9386: 0bb3 bt 0x92ec // 92ec + 9388: 07bc br 0x9300 // 9300 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 938a: 3120 movi r1, 32 + 938c: 644e cmpne r3, r1 + 938e: 0baf bt 0x92ec // 92ec + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 9390: 8461 ld.b r3, (r4, 0x1) + 9392: 8420 ld.b r1, (r4, 0x0) + 9394: 5b06 addi r0, r3, 2 + 9396: 6441 cmplt r0, r1 + 9398: 0ba0 bt 0x92d8 // 92d8 + switch(TempCtrl.TemState_Now.fan) + 939a: 425c lsli r2, r2, 28 + 939c: 4a5d lsri r2, r2, 29 + 939e: 3a41 cmpnei r2, 1 + 93a0: 0c0a bf 0x93b4 // 93b4 + 93a2: 3a40 cmpnei r2, 0 + 93a4: 0c06 bf 0x93b0 // 93b0 + 93a6: 3a42 cmpnei r2, 2 + 93a8: 0ba2 bt 0x92ec // 92ec + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 93aa: 2b01 subi r3, 2 + 93ac: 64c5 cmplt r1, r3 + 93ae: 07b0 br 0x930e // 930e + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 93b0: 2300 addi r3, 1 + 93b2: 07e5 br 0x937c // 937c + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 93b4: 2b00 subi r3, 1 + 93b6: 07e7 br 0x9384 // 9384 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 93b8: 39df btsti r1, 31 + 93ba: 0b99 bt 0x92ec // 92ec + Relay_Stop(); //风速停 + 93bc: e000063a bsr 0xa030 // a030 + 93c0: 0796 br 0x92ec // 92ec + 93c2: 0000 bkpt + 93c4: 200000c0 .long 0x200000c0 + 93c8: 20000230 .long 0x20000230 + 93cc: 20000524 .long 0x20000524 + 93d0: 2000083c .long 0x2000083c + 93d4: 0000ce7b .long 0x0000ce7b + 93d8: 200005c0 .long 0x200005c0 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +000093dc : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 93dc: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 93de: 112e lrw r1, 0xcea3 // 9494 + 93e0: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 93e2: 118e lrw r4, 0x20000868 // 9498 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 93e4: e3ffe92c bsr 0x663c // 663c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 93e8: 8460 ld.b r3, (r4, 0x0) + 93ea: 3b41 cmpnei r3, 1 + 93ec: 11ac lrw r5, 0x200000c0 // 949c + 93ee: 0836 bt 0x945a // 945a + { + Debug_Inf.Tick = SysTick_1ms; + 93f0: 9560 ld.w r3, (r5, 0x0) + 93f2: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page < PAGE8ID) + 93f4: 8462 ld.b r3, (r4, 0x2) + 93f6: 3b07 cmphsi r3, 8 + 93f8: 0803 bt 0x93fe // 93fe + { + Debug_Inf.Page++; + 93fa: 2300 addi r3, 1 + 93fc: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 93fe: e3fff7e1 bsr 0x83c0 // 83c0 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 9402: 8462 ld.b r3, (r4, 0x2) + 9404: 3b42 cmpnei r3, 2 + 9406: 0805 bt 0x9410 // 9410 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 9408: 8405 ld.b r0, (r4, 0x5) + 940a: e3fffbed bsr 0x8be4 // 8be4 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 940e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 9410: 3b41 cmpnei r3, 1 + 9412: 0806 bt 0x941e // 941e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 9414: 8424 ld.b r1, (r4, 0x4) + 9416: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9418: e3fffb98 bsr 0x8b48 // 8b48 + 941c: 07f9 br 0x940e // 940e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 941e: 3b43 cmpnei r3, 3 + 9420: 0804 bt 0x9428 // 9428 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 9422: 8426 ld.b r1, (r4, 0x6) + 9424: 3003 movi r0, 3 + 9426: 07f9 br 0x9418 // 9418 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 9428: 3b44 cmpnei r3, 4 + 942a: 0804 bt 0x9432 // 9432 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 942c: 8427 ld.b r1, (r4, 0x7) + 942e: 3004 movi r0, 4 + 9430: 07f4 br 0x9418 // 9418 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 9432: 3b45 cmpnei r3, 5 + 9434: 0804 bt 0x943c // 943c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 9436: 8423 ld.b r1, (r4, 0x3) + 9438: 3005 movi r0, 5 + 943a: 07ef br 0x9418 // 9418 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 943c: 3b46 cmpnei r3, 6 + 943e: 0804 bt 0x9446 // 9446 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 9440: 8428 ld.b r1, (r4, 0x8) + 9442: 3006 movi r0, 6 + 9444: 07ea br 0x9418 // 9418 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 9446: 3b47 cmpnei r3, 7 + 9448: 0804 bt 0x9450 // 9450 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 944a: 8429 ld.b r1, (r4, 0x9) + 944c: 3007 movi r0, 7 + 944e: 07e5 br 0x9418 // 9418 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 9450: 3b48 cmpnei r3, 8 + 9452: 0bde bt 0x940e // 940e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9454: 3104 movi r1, 4 + 9456: 3008 movi r0, 8 + 9458: 07e0 br 0x9418 // 9418 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 945a: 1092 lrw r4, 0x2000083c // 94a0 + 945c: 8478 ld.b r3, (r4, 0x18) + 945e: 3b41 cmpnei r3, 1 + 9460: 0811 bt 0x9482 // 9482 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9462: 8462 ld.b r3, (r4, 0x2) + 9464: 74ce sextb r3, r3 + 9466: 3bdf btsti r3, 31 + 9468: 0c0d bf 0x9482 // 9482 + TemCtrl_Model_Set(); //模式切换 + 946a: e3fffe01 bsr 0x906c // 906c + if(g_eeprom.backlight_en == 0x01) + 946e: 106e lrw r3, 0x20000524 // 94a4 + 9470: 8364 ld.b r3, (r3, 0x4) + 9472: 3b41 cmpnei r3, 1 + 9474: 0807 bt 0x9482 // 9482 + Controlled_LCD_Backlight(0x01); + 9476: 3001 movi r0, 1 + 9478: e3fffae2 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 947c: 3001 movi r0, 1 + 947e: e3fffb4d bsr 0x8b18 // 8b18 + TempCtrl.BackLightTick = SysTick_1ms; + 9482: 9560 ld.w r3, (r5, 0x0) + 9484: 4b48 lsri r2, r3, 8 + 9486: a470 st.b r3, (r4, 0x10) + 9488: a451 st.b r2, (r4, 0x11) + 948a: 4b50 lsri r2, r3, 16 + 948c: 4b78 lsri r3, r3, 24 + 948e: a452 st.b r2, (r4, 0x12) + 9490: a473 st.b r3, (r4, 0x13) +} + 9492: 07be br 0x940e // 940e + 9494: 0000cea3 .long 0x0000cea3 + 9498: 20000868 .long 0x20000868 + 949c: 200000c0 .long 0x200000c0 + 94a0: 2000083c .long 0x2000083c + 94a4: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +000094a8 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 94a8: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 94aa: 112e lrw r1, 0xceb8 // 9560 + 94ac: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 94ae: 118e lrw r4, 0x20000868 // 9564 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 94b0: e3ffe8c6 bsr 0x663c // 663c + if(Debug_Inf.State == 0x01) //设置模式下功能 + 94b4: 8460 ld.b r3, (r4, 0x0) + 94b6: 3b41 cmpnei r3, 1 + 94b8: 11ac lrw r5, 0x200000c0 // 9568 + 94ba: 0836 bt 0x9526 // 9526 + { + Debug_Inf.Tick = SysTick_1ms; + 94bc: 9560 ld.w r3, (r5, 0x0) + 94be: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page > PAGE1ID) + 94c0: 8462 ld.b r3, (r4, 0x2) + 94c2: 3b01 cmphsi r3, 2 + 94c4: 0c03 bf 0x94ca // 94ca + { + Debug_Inf.Page--; + 94c6: 2b00 subi r3, 1 + 94c8: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 94ca: e3fff77b bsr 0x83c0 // 83c0 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 94ce: 8462 ld.b r3, (r4, 0x2) + 94d0: 3b42 cmpnei r3, 2 + 94d2: 0805 bt 0x94dc // 94dc + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 94d4: 8405 ld.b r0, (r4, 0x5) + 94d6: e3fffb87 bsr 0x8be4 // 8be4 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 94da: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 94dc: 3b41 cmpnei r3, 1 + 94de: 0806 bt 0x94ea // 94ea + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 94e0: 8424 ld.b r1, (r4, 0x4) + 94e2: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 94e4: e3fffb32 bsr 0x8b48 // 8b48 + 94e8: 07f9 br 0x94da // 94da + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 94ea: 3b43 cmpnei r3, 3 + 94ec: 0804 bt 0x94f4 // 94f4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 94ee: 8426 ld.b r1, (r4, 0x6) + 94f0: 3003 movi r0, 3 + 94f2: 07f9 br 0x94e4 // 94e4 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 94f4: 3b44 cmpnei r3, 4 + 94f6: 0804 bt 0x94fe // 94fe + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 94f8: 8427 ld.b r1, (r4, 0x7) + 94fa: 3004 movi r0, 4 + 94fc: 07f4 br 0x94e4 // 94e4 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 94fe: 3b45 cmpnei r3, 5 + 9500: 0804 bt 0x9508 // 9508 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 9502: 8423 ld.b r1, (r4, 0x3) + 9504: 3005 movi r0, 5 + 9506: 07ef br 0x94e4 // 94e4 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 9508: 3b46 cmpnei r3, 6 + 950a: 0804 bt 0x9512 // 9512 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 950c: 8428 ld.b r1, (r4, 0x8) + 950e: 3006 movi r0, 6 + 9510: 07ea br 0x94e4 // 94e4 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 9512: 3b47 cmpnei r3, 7 + 9514: 0804 bt 0x951c // 951c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 9516: 8429 ld.b r1, (r4, 0x9) + 9518: 3007 movi r0, 7 + 951a: 07e5 br 0x94e4 // 94e4 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 951c: 3b48 cmpnei r3, 8 + 951e: 0bde bt 0x94da // 94da + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9520: 3104 movi r1, 4 + 9522: 3008 movi r0, 8 + 9524: 07e0 br 0x94e4 // 94e4 + if(TempCtrl.CardState == CARDIN) + 9526: 1092 lrw r4, 0x2000083c // 956c + 9528: 8478 ld.b r3, (r4, 0x18) + 952a: 3b41 cmpnei r3, 1 + 952c: 0811 bt 0x954e // 954e + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 952e: 8462 ld.b r3, (r4, 0x2) + 9530: 74ce sextb r3, r3 + 9532: 3bdf btsti r3, 31 + 9534: 0c0d bf 0x954e // 954e + TemCtrl_Fan_Set(); //风速切换 + 9536: e3fffdc1 bsr 0x90b8 // 90b8 + if(g_eeprom.backlight_en == 0x01) + 953a: 106e lrw r3, 0x20000524 // 9570 + 953c: 8364 ld.b r3, (r3, 0x4) + 953e: 3b41 cmpnei r3, 1 + 9540: 0807 bt 0x954e // 954e + Controlled_LCD_Backlight(0x01); + 9542: 3001 movi r0, 1 + 9544: e3fffa7c bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 9548: 3001 movi r0, 1 + 954a: e3fffae7 bsr 0x8b18 // 8b18 + TempCtrl.BackLightTick = SysTick_1ms; + 954e: 9560 ld.w r3, (r5, 0x0) + 9550: 4b48 lsri r2, r3, 8 + 9552: a470 st.b r3, (r4, 0x10) + 9554: a451 st.b r2, (r4, 0x11) + 9556: 4b50 lsri r2, r3, 16 + 9558: 4b78 lsri r3, r3, 24 + 955a: a452 st.b r2, (r4, 0x12) + 955c: a473 st.b r3, (r4, 0x13) +} + 955e: 07be br 0x94da // 94da + 9560: 0000ceb8 .long 0x0000ceb8 + 9564: 20000868 .long 0x20000868 + 9568: 200000c0 .long 0x200000c0 + 956c: 2000083c .long 0x2000083c + 9570: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00009574 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 9574: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 9576: 113b lrw r1, 0xcecb // 9660 + 9578: 3000 movi r0, 0 + 957a: e3ffe861 bsr 0x663c // 663c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 957e: 117a lrw r3, 0x20000868 // 9664 + 9580: 8340 ld.b r2, (r3, 0x0) + 9582: 3a41 cmpnei r2, 1 + 9584: 11b9 lrw r5, 0x200000c0 // 9668 + 9586: 0850 bt 0x9626 // 9626 + { + Debug_Inf.Tick = SysTick_1ms; + 9588: 9540 ld.w r2, (r5, 0x0) + 958a: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 958c: 8342 ld.b r2, (r3, 0x2) + 958e: 3a41 cmpnei r2, 1 + 9590: 080b bt 0x95a6 // 95a6 + 9592: 8324 ld.b r1, (r3, 0x4) + 9594: 3901 cmphsi r1, 2 + 9596: 0812 bt 0x95ba // 95ba + { + Debug_Inf.PipeFlag ++; + 9598: 2100 addi r1, 1 + 959a: 7444 zextb r1, r1 + 959c: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 959e: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 95a0: e3fffad4 bsr 0x8b48 // 8b48 + 95a4: 040b br 0x95ba // 95ba + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 95a6: 3a42 cmpnei r2, 2 + 95a8: 080a bt 0x95bc // 95bc + 95aa: 8305 ld.b r0, (r3, 0x5) + 95ac: 3811 cmphsi r0, 18 + 95ae: 0806 bt 0x95ba // 95ba + Debug_Inf.TempDiff++; + 95b0: 2000 addi r0, 1 + 95b2: 7400 zextb r0, r0 + 95b4: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 95b6: e3fffb17 bsr 0x8be4 // 8be4 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 95ba: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 95bc: 3a43 cmpnei r2, 3 + 95be: 0806 bt 0x95ca // 95ca + Debug_Inf.BackLight_En = 0x01; + 95c0: 3201 movi r2, 1 + 95c2: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 95c4: 3101 movi r1, 1 + 95c6: 3003 movi r0, 3 + 95c8: 07ec br 0x95a0 // 95a0 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 95ca: 3a44 cmpnei r2, 4 + 95cc: 0809 bt 0x95de // 95de + 95ce: 8327 ld.b r1, (r3, 0x7) + 95d0: 3901 cmphsi r1, 2 + 95d2: 0bf4 bt 0x95ba // 95ba + Debug_Inf.KSens_Level++; + 95d4: 2100 addi r1, 1 + 95d6: 7444 zextb r1, r1 + 95d8: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 95da: 3004 movi r0, 4 + 95dc: 07e2 br 0x95a0 // 95a0 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 95de: 3a45 cmpnei r2, 5 + 95e0: 080a bt 0x95f4 // 95f4 + 95e2: 8323 ld.b r1, (r3, 0x3) + 95e4: 32ff movi r2, 255 + 95e6: 6486 cmpne r1, r2 + 95e8: 0fe9 bf 0x95ba // 95ba + Debug_Inf.DevAddr++; //刷新地址 + 95ea: 2100 addi r1, 1 + 95ec: 7444 zextb r1, r1 + 95ee: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 95f0: 3005 movi r0, 5 + 95f2: 07d7 br 0x95a0 // 95a0 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 95f4: 3a46 cmpnei r2, 6 + 95f6: 0809 bt 0x9608 // 9608 + 95f8: 8348 ld.b r2, (r3, 0x8) + 95fa: 3a40 cmpnei r2, 0 + 95fc: 0bdf bt 0x95ba // 95ba + Debug_Inf.TempDisplay++; + 95fe: 3201 movi r2, 1 + 9600: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 9602: 3101 movi r1, 1 + 9604: 3006 movi r0, 6 + 9606: 07cd br 0x95a0 // 95a0 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 9608: 3a47 cmpnei r2, 7 + 960a: 0809 bt 0x961c // 961c + 960c: 8329 ld.b r1, (r3, 0x9) + 960e: 3901 cmphsi r1, 2 + 9610: 0bd5 bt 0x95ba // 95ba + Debug_Inf.Language_Selection++; + 9612: 2100 addi r1, 1 + 9614: 7444 zextb r1, r1 + 9616: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 9618: 3007 movi r0, 7 + 961a: 07c3 br 0x95a0 // 95a0 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 961c: 3a48 cmpnei r2, 8 + 961e: 0bce bt 0x95ba // 95ba + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9620: 3104 movi r1, 4 + 9622: 3008 movi r0, 8 + 9624: 07be br 0x95a0 // 95a0 + if(TempCtrl.CardState == CARDIN) + 9626: 1092 lrw r4, 0x2000083c // 966c + 9628: 8478 ld.b r3, (r4, 0x18) + 962a: 3b41 cmpnei r3, 1 + 962c: 0811 bt 0x964e // 964e + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 962e: 8462 ld.b r3, (r4, 0x2) + 9630: 74ce sextb r3, r3 + 9632: 3bdf btsti r3, 31 + 9634: 0c0d bf 0x964e // 964e + TemCtrl_Temperature_Add(); //设置温度+ + 9636: e3fffd7f bsr 0x9134 // 9134 + if(g_eeprom.backlight_en == 0x01) + 963a: 106e lrw r3, 0x20000524 // 9670 + 963c: 8364 ld.b r3, (r3, 0x4) + 963e: 3b41 cmpnei r3, 1 + 9640: 0807 bt 0x964e // 964e + Controlled_LCD_Backlight(0x01); + 9642: 3001 movi r0, 1 + 9644: e3fff9fc bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 9648: 3001 movi r0, 1 + 964a: e3fffa67 bsr 0x8b18 // 8b18 + TempCtrl.BackLightTick = SysTick_1ms; + 964e: 9560 ld.w r3, (r5, 0x0) + 9650: 4b48 lsri r2, r3, 8 + 9652: a470 st.b r3, (r4, 0x10) + 9654: a451 st.b r2, (r4, 0x11) + 9656: 4b50 lsri r2, r3, 16 + 9658: 4b78 lsri r3, r3, 24 + 965a: a452 st.b r2, (r4, 0x12) + 965c: a473 st.b r3, (r4, 0x13) +} + 965e: 07ae br 0x95ba // 95ba + 9660: 0000cecb .long 0x0000cecb + 9664: 20000868 .long 0x20000868 + 9668: 200000c0 .long 0x200000c0 + 966c: 2000083c .long 0x2000083c + 9670: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00009674 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 9674: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 9676: 1097 lrw r4, 0x20000868 // 96d0 + 9678: 8460 ld.b r3, (r4, 0x0) + 967a: 3b40 cmpnei r3, 0 + 967c: 0829 bt 0x96ce // 96ce + { + Debug_Inf.Press_Flag |= (0x01<<0); + 967e: 8461 ld.b r3, (r4, 0x1) + 9680: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 9682: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 9684: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 9686: 0824 bt 0x96ce // 96ce + 9688: 1073 lrw r3, 0x2000083c // 96d4 + 968a: 8362 ld.b r3, (r3, 0x2) + 968c: 74ce sextb r3, r3 + 968e: 3bdf btsti r3, 31 + 9690: 081f bt 0x96ce // 96ce + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 9692: 1032 lrw r1, 0xcee2 // 96d8 + 9694: 3000 movi r0, 0 + 9696: e3ffe7d3 bsr 0x663c // 663c + Debug_Inf.Tick = SysTick_1ms; + 969a: 1071 lrw r3, 0x200000c0 // 96dc + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 969c: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 969e: 9360 ld.w r3, (r3, 0x0) + 96a0: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 96a2: 3300 movi r3, 0 + 96a4: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 96a6: 3301 movi r3, 1 + 96a8: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 96aa: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x01; + 96ac: 106d lrw r3, 0x200005e0 // 96e0 + 96ae: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 96b0: e3fff688 bsr 0x83c0 // 83c0 + Controlled_LCD_Backlight(0x01); + 96b4: 3001 movi r0, 1 + 96b6: e3fff9c3 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 96ba: 3001 movi r0, 1 + 96bc: e3fffa2e bsr 0x8b18 // 8b18 + Controlled_Buzzer(0x01); + 96c0: 3001 movi r0, 1 + 96c2: e3fff999 bsr 0x89f4 // 89f4 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 96c6: 8424 ld.b r1, (r4, 0x4) + 96c8: 3001 movi r0, 1 + 96ca: e3fffa3f bsr 0x8b48 // 8b48 + + } + } + +} + 96ce: 1491 pop r4, r15 + 96d0: 20000868 .long 0x20000868 + 96d4: 2000083c .long 0x2000083c + 96d8: 0000cee2 .long 0x0000cee2 + 96dc: 200000c0 .long 0x200000c0 + 96e0: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +000096e4 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 96e4: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 96e6: 113b lrw r1, 0xceeb // 97d0 + 96e8: 3000 movi r0, 0 + 96ea: e3ffe7a9 bsr 0x663c // 663c + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 96ee: 117a lrw r3, 0x20000868 // 97d4 + 96f0: 8340 ld.b r2, (r3, 0x0) + 96f2: 3a41 cmpnei r2, 1 + 96f4: 11b9 lrw r5, 0x200000c0 // 97d8 + 96f6: 084f bt 0x9794 // 9794 + { + Debug_Inf.Tick = SysTick_1ms; + 96f8: 9540 ld.w r2, (r5, 0x0) + 96fa: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 96fc: 8342 ld.b r2, (r3, 0x2) + 96fe: 3a41 cmpnei r2, 1 + 9700: 080b bt 0x9716 // 9716 + 9702: 8324 ld.b r1, (r3, 0x4) + 9704: 3940 cmpnei r1, 0 + 9706: 0c12 bf 0x972a // 972a + { + Debug_Inf.PipeFlag --; + 9708: 2900 subi r1, 1 + 970a: 7444 zextb r1, r1 + 970c: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 970e: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 9710: e3fffa1c bsr 0x8b48 // 8b48 + 9714: 040b br 0x972a // 972a + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 9716: 3a42 cmpnei r2, 2 + 9718: 080a bt 0x972c // 972c + 971a: 8305 ld.b r0, (r3, 0x5) + 971c: 3840 cmpnei r0, 0 + 971e: 0c06 bf 0x972a // 972a + Debug_Inf.TempDiff--; + 9720: 2800 subi r0, 1 + 9722: 7400 zextb r0, r0 + 9724: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 9726: e3fffa5f bsr 0x8be4 // 8be4 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 972a: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 972c: 3a43 cmpnei r2, 3 + 972e: 0806 bt 0x973a // 973a + Debug_Inf.BackLight_En = 0x00; + 9730: 3200 movi r2, 0 + 9732: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 9734: 3100 movi r1, 0 + 9736: 3003 movi r0, 3 + 9738: 07ec br 0x9710 // 9710 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 973a: 3a44 cmpnei r2, 4 + 973c: 0809 bt 0x974e // 974e + 973e: 8327 ld.b r1, (r3, 0x7) + 9740: 3940 cmpnei r1, 0 + 9742: 0ff4 bf 0x972a // 972a + Debug_Inf.KSens_Level--; + 9744: 2900 subi r1, 1 + 9746: 7444 zextb r1, r1 + 9748: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 974a: 3004 movi r0, 4 + 974c: 07e2 br 0x9710 // 9710 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 974e: 3a45 cmpnei r2, 5 + 9750: 0809 bt 0x9762 // 9762 + 9752: 8323 ld.b r1, (r3, 0x3) + 9754: 3940 cmpnei r1, 0 + 9756: 0fea bf 0x972a // 972a + Debug_Inf.DevAddr--; //刷新地址 + 9758: 2900 subi r1, 1 + 975a: 7444 zextb r1, r1 + 975c: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 975e: 3005 movi r0, 5 + 9760: 07d8 br 0x9710 // 9710 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 9762: 3a46 cmpnei r2, 6 + 9764: 0809 bt 0x9776 // 9776 + 9766: 8328 ld.b r1, (r3, 0x8) + 9768: 3940 cmpnei r1, 0 + 976a: 0fe0 bf 0x972a // 972a + Debug_Inf.TempDisplay--; + 976c: 2900 subi r1, 1 + 976e: 7444 zextb r1, r1 + 9770: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 9772: 3006 movi r0, 6 + 9774: 07ce br 0x9710 // 9710 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 9776: 3a47 cmpnei r2, 7 + 9778: 0809 bt 0x978a // 978a + 977a: 8329 ld.b r1, (r3, 0x9) + 977c: 3940 cmpnei r1, 0 + 977e: 0fd6 bf 0x972a // 972a + Debug_Inf.Language_Selection--; + 9780: 2900 subi r1, 1 + 9782: 7444 zextb r1, r1 + 9784: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 9786: 3007 movi r0, 7 + 9788: 07c4 br 0x9710 // 9710 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 978a: 3a48 cmpnei r2, 8 + 978c: 0bcf bt 0x972a // 972a + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 978e: 3104 movi r1, 4 + 9790: 3008 movi r0, 8 + 9792: 07bf br 0x9710 // 9710 + if(TempCtrl.CardState == CARDIN) + 9794: 1092 lrw r4, 0x2000083c // 97dc + 9796: 8478 ld.b r3, (r4, 0x18) + 9798: 3b41 cmpnei r3, 1 + 979a: 0811 bt 0x97bc // 97bc + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 979c: 8462 ld.b r3, (r4, 0x2) + 979e: 74ce sextb r3, r3 + 97a0: 3bdf btsti r3, 31 + 97a2: 0c0d bf 0x97bc // 97bc + TemCtrl_Temperature_Dec(); //设置温度- + 97a4: e3fffcb0 bsr 0x9104 // 9104 + if(g_eeprom.backlight_en == 0x01) + 97a8: 106e lrw r3, 0x20000524 // 97e0 + 97aa: 8364 ld.b r3, (r3, 0x4) + 97ac: 3b41 cmpnei r3, 1 + 97ae: 0807 bt 0x97bc // 97bc + Controlled_LCD_Backlight(0x01); + 97b0: 3001 movi r0, 1 + 97b2: e3fff945 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 97b6: 3001 movi r0, 1 + 97b8: e3fff9b0 bsr 0x8b18 // 8b18 + TempCtrl.BackLightTick = SysTick_1ms; + 97bc: 9560 ld.w r3, (r5, 0x0) + 97be: 4b48 lsri r2, r3, 8 + 97c0: a470 st.b r3, (r4, 0x10) + 97c2: a451 st.b r2, (r4, 0x11) + 97c4: 4b50 lsri r2, r3, 16 + 97c6: 4b78 lsri r3, r3, 24 + 97c8: a452 st.b r2, (r4, 0x12) + 97ca: a473 st.b r3, (r4, 0x13) +} + 97cc: 07af br 0x972a // 972a + 97ce: 0000 bkpt + 97d0: 0000ceeb .long 0x0000ceeb + 97d4: 20000868 .long 0x20000868 + 97d8: 200000c0 .long 0x200000c0 + 97dc: 2000083c .long 0x2000083c + 97e0: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY4_Long_Press: + +000097e4 : + +void KEY4_Long_Press(void) +{ + 97e4: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 97e6: 1097 lrw r4, 0x20000868 // 9840 + 97e8: 8460 ld.b r3, (r4, 0x0) + 97ea: 3b40 cmpnei r3, 0 + 97ec: 0829 bt 0x983e // 983e + { + Debug_Inf.Press_Flag |= (0x01<<1); + 97ee: 8461 ld.b r3, (r4, 0x1) + 97f0: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 97f2: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 97f4: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 97f6: 0824 bt 0x983e // 983e + 97f8: 1073 lrw r3, 0x2000083c // 9844 + 97fa: 8362 ld.b r3, (r3, 0x2) + 97fc: 74ce sextb r3, r3 + 97fe: 3bdf btsti r3, 31 + 9800: 081f bt 0x983e // 983e + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 9802: 1032 lrw r1, 0xcee2 // 9848 + 9804: 3000 movi r0, 0 + 9806: e3ffe71b bsr 0x663c // 663c + Debug_Inf.Tick = SysTick_1ms; + 980a: 1071 lrw r3, 0x200000c0 // 984c + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 980c: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 980e: 9360 ld.w r3, (r3, 0x0) + 9810: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 9812: 3300 movi r3, 0 + 9814: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 9816: 3301 movi r3, 1 + 9818: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 981a: a462 st.b r3, (r4, 0x2) + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 981c: 3001 movi r0, 1 + HT1621.buz_ctrl_flag = 0x01; + 981e: 106d lrw r3, 0x200005e0 // 9850 + 9820: a345 st.b r2, (r3, 0x5) + Controlled_LCD_Backlight(0x01); + 9822: e3fff90d bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 9826: 3001 movi r0, 1 + 9828: e3fff978 bsr 0x8b18 // 8b18 + HT1621_Clear(); + 982c: e3fff5ca bsr 0x83c0 // 83c0 + Controlled_Buzzer(0x01); + 9830: 3001 movi r0, 1 + 9832: e3fff8e1 bsr 0x89f4 // 89f4 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 9836: 8424 ld.b r1, (r4, 0x4) + 9838: 3001 movi r0, 1 + 983a: e3fff987 bsr 0x8b48 // 8b48 + + } + } +} + 983e: 1491 pop r4, r15 + 9840: 20000868 .long 0x20000868 + 9844: 2000083c .long 0x2000083c + 9848: 0000cee2 .long 0x0000cee2 + 984c: 200000c0 .long 0x200000c0 + 9850: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00009854 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 9854: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 9856: 103e lrw r1, 0xcf02 // 98cc + 9858: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 985a: 109e lrw r4, 0x20000868 // 98d0 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 985c: e3ffe6f0 bsr 0x663c // 663c + if(Debug_Inf.State == 0x00) //正常模式 + 9860: 8460 ld.b r3, (r4, 0x0) + 9862: 3b40 cmpnei r3, 0 + 9864: 081b bt 0x989a // 989a + { + if(TempCtrl.CardState == CARDIN) + 9866: 109c lrw r4, 0x2000083c // 98d4 + 9868: 8478 ld.b r3, (r4, 0x18) + 986a: 3b41 cmpnei r3, 1 + 986c: 080d bt 0x9886 // 9886 + { + TemCtrl_OnOff_Set(); + 986e: e3fffc7b bsr 0x9164 // 9164 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 9872: 107a lrw r3, 0x200000c0 // 98d8 + 9874: 9360 ld.w r3, (r3, 0x0) + 9876: 4b48 lsri r2, r3, 8 + 9878: a470 st.b r3, (r4, 0x10) + 987a: a451 st.b r2, (r4, 0x11) + 987c: 4b50 lsri r2, r3, 16 + 987e: 4b78 lsri r3, r3, 24 + 9880: a452 st.b r2, (r4, 0x12) + 9882: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 9884: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 9886: 3001 movi r0, 1 + 9888: e000002e bsr 0x98e4 // 98e4 + Controlled_LCD_Backlight(1); + 988c: 3001 movi r0, 1 + 988e: e3fff8d7 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(1); + 9892: 3001 movi r0, 1 + 9894: e3fff942 bsr 0x8b18 // 8b18 + 9898: 07ed br 0x9872 // 9872 + else if(Debug_Inf.State == 0x01) //设置模式 + 989a: 3b41 cmpnei r3, 1 + 989c: 0bf4 bt 0x9884 // 9884 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 989e: 1030 lrw r1, 0xcf17 // 98dc + 98a0: 3000 movi r0, 0 + 98a2: e3ffe6cd bsr 0x663c // 663c + Debug_Inf.State = 0x00; + 98a6: 3300 movi r3, 0 + 98a8: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 98aa: 3301 movi r3, 1 + HT1621.buz_ctrl_flag = 0x00; + 98ac: 3200 movi r2, 0 + Debug_Inf.Page = 0x01; + 98ae: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 98b0: 106c lrw r3, 0x200005e0 // 98e0 + 98b2: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 98b4: e3fff586 bsr 0x83c0 // 83c0 + Controlled_LCD_Backlight(0x00); + 98b8: 3000 movi r0, 0 + 98ba: e3fff8c1 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x00); + 98be: 3000 movi r0, 0 + 98c0: e3fff92c bsr 0x8b18 // 8b18 + Dev_SaveData(); + 98c4: e00002dc bsr 0x9e7c // 9e7c +} + 98c8: 07de br 0x9884 // 9884 + 98ca: 0000 bkpt + 98cc: 0000cf02 .long 0x0000cf02 + 98d0: 20000868 .long 0x20000868 + 98d4: 2000083c .long 0x2000083c + 98d8: 200000c0 .long 0x200000c0 + 98dc: 0000cf17 .long 0x0000cf17 + 98e0: 200005e0 .long 0x200005e0 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +000098e4 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 98e4: 14d1 push r4, r15 + if(state == TEMP_ON) + 98e6: 3841 cmpnei r0, 1 + 98e8: 0821 bt 0x992a // 992a + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 98ea: 1072 lrw r3, 0x20000868 // 9930 + 98ec: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 98ee: 1092 lrw r4, 0x2000083c // 9934 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 98f0: e3fff830 bsr 0x8950 // 8950 + Control_Mode(TempCtrl.TemState_Now.mode); + 98f4: 8402 ld.b r0, (r4, 0x2) + 98f6: 4019 lsli r0, r0, 25 + 98f8: 481d lsri r0, r0, 29 + 98fa: e3fff6a1 bsr 0x863c // 863c + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 98fe: 8402 ld.b r0, (r4, 0x2) + 9900: 401c lsli r0, r0, 28 + 9902: 481d lsri r0, r0, 29 + 9904: e3fff7be bsr 0x8880 // 8880 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 9908: 8401 ld.b r0, (r4, 0x1) + 990a: 3840 cmpnei r0, 0 + 990c: 0c0c bf 0x9924 // 9924 + 990e: 330a movi r3, 10 + 9910: 7c0c mult r0, r3 + 9912: e3fff5c5 bsr 0x849c // 849c + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 9916: 8400 ld.b r0, (r4, 0x0) + 9918: 330a movi r3, 10 + 991a: 7c0c mult r0, r3 + 991c: 7401 zexth r0, r0 + 991e: e3fff627 bsr 0x856c // 856c + } + else + { + HT1621_Clear(); + } +} + 9922: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 9924: 30a0 movi r0, 160 + 9926: 4001 lsli r0, r0, 1 + 9928: 07f5 br 0x9912 // 9912 + HT1621_Clear(); + 992a: e3fff54b bsr 0x83c0 // 83c0 +} + 992e: 07fa br 0x9922 // 9922 + 9930: 20000868 .long 0x20000868 + 9934: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Init: + +00009938 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 9938: 14d0 push r15 + HT1621_ALLON(); + 993a: e3fff56b bsr 0x8410 // 8410 + + delay_nms(5000); + 993e: 1005 lrw r0, 0x1388 // 9950 + 9940: e3ffde02 bsr 0x5544 // 5544 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 9944: 1064 lrw r3, 0x2000083c // 9954 + 9946: 8302 ld.b r0, (r3, 0x2) + 9948: 4807 lsri r0, r0, 7 + 994a: e3ffffcd bsr 0x98e4 // 98e4 + +} + 994e: 1490 pop r15 + 9950: 00001388 .long 0x00001388 + 9954: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Task: + +00009958 : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 9958: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 995a: 0168 lrw r3, 0x20000868 // 9cb4 + 995c: 8360 ld.b r3, (r3, 0x0) + 995e: 3b40 cmpnei r3, 0 + 9960: 0c03 bf 0x9966 // 9966 + 9962: e8000253 br 0x9e08 // 9e08 + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 9966: 018a lrw r4, 0x2000083c // 9cb8 + 9968: 8451 ld.b r2, (r4, 0x11) + 996a: 8470 ld.b r3, (r4, 0x10) + 996c: 4248 lsli r2, r2, 8 + 996e: 6c8c or r2, r3 + 9970: 8472 ld.b r3, (r4, 0x12) + 9972: 4370 lsli r3, r3, 16 + 9974: 6c8c or r2, r3 + 9976: 8473 ld.b r3, (r4, 0x13) + 9978: 01ae lrw r5, 0x200000c0 // 9cbc + 997a: 4378 lsli r3, r3, 24 + 997c: 6cc8 or r3, r2 + 997e: 9520 ld.w r1, (r5, 0x0) + 9980: 604e subu r1, r3 + 9982: 014f lrw r2, 0xbb8 // 9cc0 + 9984: 6448 cmphs r2, r1 + 9986: 08b7 bt 0x9af4 // 9af4 + 9988: 8458 ld.b r2, (r4, 0x18) + 998a: 3a40 cmpnei r2, 0 + 998c: 08b4 bt 0x9af4 // 9af4 + { + TempCtrl.BackLightTick = SysTick_1ms; + 998e: 9560 ld.w r3, (r5, 0x0) + 9990: 4b48 lsri r2, r3, 8 + 9992: a470 st.b r3, (r4, 0x10) + 9994: a451 st.b r2, (r4, 0x11) + 9996: 4b50 lsri r2, r3, 16 + 9998: 4b78 lsri r3, r3, 24 + 999a: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 999c: 3300 movi r3, 0 + 999e: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 99a0: 8462 ld.b r3, (r4, 0x2) + 99a2: 74ce sextb r3, r3 + 99a4: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 99a6: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 99a8: 0803 bt 0x99ae // 99ae + { + HT1621_Clear(); + 99aa: e3fff50b bsr 0x83c0 // 83c0 + } + //关背光 + Controlled_LCD_Backlight(0); + 99ae: 3000 movi r0, 0 + 99b0: e3fff846 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x00); + 99b4: 3000 movi r0, 0 + 99b6: e3fff8b1 bsr 0x8b18 // 8b18 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 99ba: 013c lrw r1, 0xcf21 // 9cc4 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 99bc: 3000 movi r0, 0 + 99be: e3ffe63f bsr 0x663c // 663c + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 99c2: 8455 ld.b r2, (r4, 0x15) + 99c4: 8474 ld.b r3, (r4, 0x14) + 99c6: 4248 lsli r2, r2, 8 + 99c8: 6c8c or r2, r3 + 99ca: 8476 ld.b r3, (r4, 0x16) + 99cc: 4370 lsli r3, r3, 16 + 99ce: 6c8c or r2, r3 + 99d0: 8477 ld.b r3, (r4, 0x17) + 99d2: 4378 lsli r3, r3, 24 + 99d4: 6cc8 or r3, r2 + 99d6: 9520 ld.w r1, (r5, 0x0) + 99d8: 604e subu r1, r3 + 99da: 33fa movi r3, 250 + 99dc: 4362 lsli r3, r3, 2 + 99de: 644c cmphs r3, r1 + 99e0: 081b bt 0x9a16 // 9a16 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 99e2: 9560 ld.w r3, (r5, 0x0) + 99e4: 4b48 lsri r2, r3, 8 + 99e6: a474 st.b r3, (r4, 0x14) + 99e8: a455 st.b r2, (r4, 0x15) + 99ea: 4b50 lsri r2, r3, 16 + 99ec: 4b78 lsri r3, r3, 24 + 99ee: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 99f0: 847b ld.b r3, (r4, 0x1b) + 99f2: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 99f4: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 99f6: 08a7 bt 0x9b44 // 9b44 + 99f8: 847c ld.b r3, (r4, 0x1c) + 99fa: 3b41 cmpnei r3, 1 + 99fc: 08a4 bt 0x9b44 // 9b44 + { + TempCtrl.SceneFlag = 0x00; + 99fe: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 9a00: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 9a02: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 9a04: e3fff81c bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x00); + 9a08: 3000 movi r0, 0 + 9a0a: e3fff887 bsr 0x8b18 // 8b18 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 9a0e: 0230 lrw r1, 0xcf43 // 9cc8 + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 9a10: 3000 movi r0, 0 + 9a12: e3ffe615 bsr 0x663c // 663c + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 9a16: 02f1 lrw r7, 0x20000524 // 9ccc + 9a18: 8764 ld.b r3, (r7, 0x4) + 9a1a: 3b41 cmpnei r3, 1 + 9a1c: 081e bt 0x9a58 // 9a58 + 9a1e: 8451 ld.b r2, (r4, 0x11) + 9a20: 8470 ld.b r3, (r4, 0x10) + 9a22: 4248 lsli r2, r2, 8 + 9a24: 6c8c or r2, r3 + 9a26: 8472 ld.b r3, (r4, 0x12) + 9a28: 4370 lsli r3, r3, 16 + 9a2a: 6c8c or r2, r3 + 9a2c: 8473 ld.b r3, (r4, 0x13) + 9a2e: 4378 lsli r3, r3, 24 + 9a30: 6cc8 or r3, r2 + 9a32: 9520 ld.w r1, (r5, 0x0) + 9a34: 604e subu r1, r3 + 9a36: 0278 lrw r3, 0x1388 // 9cd0 + 9a38: 644c cmphs r3, r1 + 9a3a: 080f bt 0x9a58 // 9a58 + { + TempCtrl.BackLightTick = SysTick_1ms; + 9a3c: 9560 ld.w r3, (r5, 0x0) + 9a3e: 4b48 lsri r2, r3, 8 + 9a40: a470 st.b r3, (r4, 0x10) + 9a42: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 9a44: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 9a46: 4b50 lsri r2, r3, 16 + 9a48: 4b78 lsri r3, r3, 24 + 9a4a: a452 st.b r2, (r4, 0x12) + 9a4c: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 9a4e: e3fff7f7 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x00); + 9a52: 3000 movi r0, 0 + 9a54: e3fff862 bsr 0x8b18 // 8b18 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9a58: 8402 ld.b r0, (r4, 0x2) + 9a5a: 74c2 sextb r3, r0 + 9a5c: 3bdf btsti r3, 31 + 9a5e: 03c1 lrw r6, 0x2000085c // 9cd4 + 9a60: 0d4a bf 0x9cf4 // 9cf4 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 9a62: 8466 ld.b r3, (r4, 0x6) + 9a64: 4019 lsli r0, r0, 25 + 9a66: 4359 lsli r2, r3, 25 + 9a68: 481d lsri r0, r0, 29 + 9a6a: 4a5d lsri r2, r2, 29 + 9a6c: 640a cmpne r2, r0 + 9a6e: 0c21 bf 0x9ab0 // 9ab0 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 9a70: 3170 movi r1, 112 + 9a72: 4044 lsli r2, r0, 4 + 9a74: 68c5 andn r3, r1 + 9a76: 6cc8 or r3, r2 + 9a78: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 9a7a: e3fff5e1 bsr 0x863c // 863c + + SYSCON->UREG0 &= 0xFFFF00FF; + 9a7e: 0368 lrw r3, 0x2000005c // 9cd8 + 9a80: 31ff movi r1, 255 + 9a82: 9340 ld.w r2, (r3, 0x0) + 9a84: 22ff addi r2, 256 + 9a86: 9260 ld.w r3, (r2, 0x0) + 9a88: 4128 lsli r1, r1, 8 + 9a8a: 68c5 andn r3, r1 + 9a8c: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 9a8e: 8462 ld.b r3, (r4, 0x2) + 9a90: 4379 lsli r3, r3, 25 + 9a92: 4b7d lsri r3, r3, 29 + 9a94: 9220 ld.w r1, (r2, 0x0) + 9a96: 4368 lsli r3, r3, 8 + 9a98: 6cc4 or r3, r1 + 9a9a: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9a9c: 3301 movi r3, 1 + 9a9e: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9aa0: 9560 ld.w r3, (r5, 0x0) + 9aa2: 4b28 lsri r1, r3, 8 + 9aa4: a665 st.b r3, (r6, 0x5) + 9aa6: a626 st.b r1, (r6, 0x6) + 9aa8: 4b30 lsri r1, r3, 16 + 9aaa: 4b78 lsri r3, r3, 24 + 9aac: a627 st.b r1, (r6, 0x7) + 9aae: a668 st.b r3, (r6, 0x8) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 9ab0: 8402 ld.b r0, (r4, 0x2) + 9ab2: 8466 ld.b r3, (r4, 0x6) + 9ab4: 401c lsli r0, r0, 28 + 9ab6: 437c lsli r3, r3, 28 + 9ab8: 4b7d lsri r3, r3, 29 + 9aba: 481d lsri r0, r0, 29 + 9abc: 640e cmpne r3, r0 + 9abe: 0377 lrw r3, 0x20000234 // 9cdc + 9ac0: 0804 bt 0x9ac8 // 9ac8 + 9ac2: 8340 ld.b r2, (r3, 0x0) + 9ac4: 3a41 cmpnei r2, 1 + 9ac6: 087b bt 0x9bbc // 9bbc + { + OpenDisPlay_Flag = 0x00; + 9ac8: 3200 movi r2, 0 + 9aca: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 9acc: 8466 ld.b r3, (r4, 0x6) + 9ace: 310e movi r1, 14 + 9ad0: 4041 lsli r2, r0, 1 + 9ad2: 68c5 andn r3, r1 + 9ad4: 6cc8 or r3, r2 + 9ad6: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 9ad8: e3fff6d4 bsr 0x8880 // 8880 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 9adc: 3270 movi r2, 112 + 9ade: 8462 ld.b r3, (r4, 0x2) + 9ae0: 68c8 and r3, r2 + 9ae2: 3240 movi r2, 64 + 9ae4: 648e cmpne r3, r2 + 9ae6: 0843 bt 0x9b6c // 9b6c + 9ae8: 8761 ld.b r3, (r7, 0x1) + 9aea: 3b42 cmpnei r3, 2 + 9aec: 0840 bt 0x9b6c // 9b6c + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 9aee: e00002a1 bsr 0xa030 // a030 + break; + 9af2: 044b br 0x9b88 // 9b88 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 9af4: 9540 ld.w r2, (r5, 0x0) + 9af6: 608e subu r2, r3 + 9af8: 33fa movi r3, 250 + 9afa: 4363 lsli r3, r3, 3 + 9afc: 648c cmphs r3, r2 + 9afe: 0b62 bt 0x99c2 // 99c2 + 9b00: 8478 ld.b r3, (r4, 0x18) + 9b02: 3b41 cmpnei r3, 1 + 9b04: 0b5f bt 0x99c2 // 99c2 + 9b06: 8479 ld.b r3, (r4, 0x19) + 9b08: 3b41 cmpnei r3, 1 + 9b0a: 0b5c bt 0x99c2 // 99c2 + TempCtrl.BackLightTick = SysTick_1ms; + 9b0c: 9560 ld.w r3, (r5, 0x0) + 9b0e: 4b48 lsri r2, r3, 8 + 9b10: a470 st.b r3, (r4, 0x10) + 9b12: a451 st.b r2, (r4, 0x11) + 9b14: 4b50 lsri r2, r3, 16 + 9b16: 4b78 lsri r3, r3, 24 + 9b18: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9b1a: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 9b1c: 3300 movi r3, 0 + 9b1e: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9b20: 74c2 sextb r3, r0 + 9b22: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 9b24: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 9b26: 0f4e bf 0x99c2 // 99c2 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 9b28: 4807 lsri r0, r0, 7 + 9b2a: e3fffedd bsr 0x98e4 // 98e4 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 9b2e: 847b ld.b r3, (r4, 0x1b) + 9b30: 3b44 cmpnei r3, 4 + 9b32: 0f48 bf 0x99c2 // 99c2 + Controlled_LCD_Backlight(1); + 9b34: 3001 movi r0, 1 + 9b36: e3fff783 bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 9b3a: 3001 movi r0, 1 + 9b3c: e3fff7ee bsr 0x8b18 // 8b18 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 9b40: 1328 lrw r1, 0xcf33 // 9ce0 + 9b42: 073d br 0x99bc // 99bc + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 9b44: 8462 ld.b r3, (r4, 0x2) + 9b46: 74ce sextb r3, r3 + 9b48: 3bdf btsti r3, 31 + 9b4a: 0f66 bf 0x9a16 // 9a16 + 9b4c: 8478 ld.b r3, (r4, 0x18) + 9b4e: 3b41 cmpnei r3, 1 + 9b50: 0b63 bt 0x9a16 // 9a16 + 9b52: 847c ld.b r3, (r4, 0x1c) + 9b54: 3b41 cmpnei r3, 1 + 9b56: 0b60 bt 0x9a16 // 9a16 + TempCtrl.SceneFlag = 0x00; + 9b58: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 9b5a: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 9b5c: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 9b5e: e3fff76f bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x01); + 9b62: 3001 movi r0, 1 + 9b64: e3fff7da bsr 0x8b18 // 8b18 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 9b68: 123f lrw r1, 0xcf53 // 9ce4 + 9b6a: 0753 br 0x9a10 // 9a10 + switch(TempCtrl.TemState_Now.fan) + 9b6c: 8402 ld.b r0, (r4, 0x2) + 9b6e: 401c lsli r0, r0, 28 + 9b70: 481d lsri r0, r0, 29 + 9b72: 3804 cmphsi r0, 5 + 9b74: 080a bt 0x9b88 // 9b88 + 9b76: e3ffcccd bsr 0x3510 // 3510 <___gnu_csky_case_shi> + 9b7a: 0005 .short 0x0005 + 9b7c: 014b0148 .long 0x014b0148 + 9b80: ffba0007 .long 0xffba0007 + Relay_Low(); + 9b84: e0000248 bsr 0xa014 // a014 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 9b88: 1274 lrw r3, 0x2000005c // 9cd8 + 9b8a: 31ff movi r1, 255 + 9b8c: 9340 ld.w r2, (r3, 0x0) + 9b8e: 22ff addi r2, 256 + 9b90: 9260 ld.w r3, (r2, 0x0) + 9b92: 4130 lsli r1, r1, 16 + 9b94: 68c5 andn r3, r1 + 9b96: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 9b98: 8462 ld.b r3, (r4, 0x2) + 9b9a: 437c lsli r3, r3, 28 + 9b9c: 4b7d lsri r3, r3, 29 + 9b9e: 9220 ld.w r1, (r2, 0x0) + 9ba0: 4370 lsli r3, r3, 16 + 9ba2: 6cc4 or r3, r1 + 9ba4: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9ba6: 3301 movi r3, 1 + 9ba8: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9baa: 9560 ld.w r3, (r5, 0x0) + 9bac: 124f lrw r2, 0x20000861 // 9ce8 + 9bae: 4b28 lsri r1, r3, 8 + 9bb0: a260 st.b r3, (r2, 0x0) + 9bb2: a221 st.b r1, (r2, 0x1) + 9bb4: 4b30 lsri r1, r3, 16 + 9bb6: 4b78 lsri r3, r3, 24 + 9bb8: a222 st.b r1, (r2, 0x2) + 9bba: a263 st.b r3, (r2, 0x3) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 9bbc: 8401 ld.b r0, (r4, 0x1) + 9bbe: 8465 ld.b r3, (r4, 0x5) + 9bc0: 640e cmpne r3, r0 + 9bc2: 0c1f bf 0x9c00 // 9c00 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 9bc4: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 9bc6: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 9bc8: 0927 bt 0x9e16 // 9e16 + { + Set_Temperature_Display(320); + 9bca: 30a0 movi r0, 160 + 9bcc: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 9bce: e3fff467 bsr 0x849c // 849c + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 9bd2: 1262 lrw r3, 0x2000005c // 9cd8 + 9bd4: 9360 ld.w r3, (r3, 0x0) + 9bd6: 23ff addi r3, 256 + 9bd8: 9340 ld.w r2, (r3, 0x0) + 9bda: 4248 lsli r2, r2, 8 + 9bdc: 4a48 lsri r2, r2, 8 + 9bde: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 9be0: 8441 ld.b r2, (r4, 0x1) + 9be2: 9320 ld.w r1, (r3, 0x0) + 9be4: 4258 lsli r2, r2, 24 + 9be6: 6c84 or r2, r1 + 9be8: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9bea: 3301 movi r3, 1 + 9bec: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9bee: 9560 ld.w r3, (r5, 0x0) + 9bf0: 115e lrw r2, 0x20000861 // 9ce8 + 9bf2: 4b28 lsri r1, r3, 8 + 9bf4: a260 st.b r3, (r2, 0x0) + 9bf6: a221 st.b r1, (r2, 0x1) + 9bf8: 4b30 lsri r1, r3, 16 + 9bfa: 4b78 lsri r3, r3, 24 + 9bfc: a222 st.b r1, (r2, 0x2) + 9bfe: a263 st.b r3, (r2, 0x3) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 9c00: 8409 ld.b r0, (r4, 0x9) + 9c02: 8468 ld.b r3, (r4, 0x8) + 9c04: 4008 lsli r0, r0, 8 + 9c06: 6c0c or r0, r3 + 9c08: 846b ld.b r3, (r4, 0xb) + 9c0a: 844a ld.b r2, (r4, 0xa) + 9c0c: 4368 lsli r3, r3, 8 + 9c0e: 6cc8 or r3, r2 + 9c10: 640e cmpne r3, r0 + 9c12: 0c12 bf 0x9c36 // 9c36 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 9c14: 4868 lsri r3, r0, 8 + 9c16: a46b st.b r3, (r4, 0xb) + 9c18: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 9c1a: e3fff4a9 bsr 0x856c // 856c + + SYSCON->UREG0 &= 0x00FFFFFF; + 9c1e: 116f lrw r3, 0x2000005c // 9cd8 + 9c20: 9360 ld.w r3, (r3, 0x0) + 9c22: 23ff addi r3, 256 + 9c24: 9340 ld.w r2, (r3, 0x0) + 9c26: 4248 lsli r2, r2, 8 + 9c28: 4a48 lsri r2, r2, 8 + 9c2a: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 9c2c: 8441 ld.b r2, (r4, 0x1) + 9c2e: 9320 ld.w r1, (r3, 0x0) + 9c30: 4258 lsli r2, r2, 24 + 9c32: 6c84 or r2, r1 + 9c34: b340 st.w r2, (r3, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 9c36: 844f ld.b r2, (r4, 0xf) + 9c38: 846e ld.b r3, (r4, 0xe) + 9c3a: 4248 lsli r2, r2, 8 + 9c3c: 6c8c or r2, r3 + 9c3e: 846d ld.b r3, (r4, 0xd) + 9c40: 842c ld.b r1, (r4, 0xc) + 9c42: 4368 lsli r3, r3, 8 + 9c44: 6cc4 or r3, r1 + 9c46: 648c cmphs r3, r2 + 9c48: 0804 bt 0x9c50 // 9c50 + 9c4a: 5a2d subu r1, r2, r3 + 9c4c: 392a cmplti r1, 11 + 9c4e: 0c06 bf 0x9c5a // 9c5a + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 9c50: 64c8 cmphs r2, r3 + 9c52: 0812 bt 0x9c76 // 9c76 + 9c54: 5b49 subu r2, r3, r2 + 9c56: 3a2a cmplti r2, 11 + 9c58: 080f bt 0x9c76 // 9c76 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 9c5a: 9540 ld.w r2, (r5, 0x0) + 9c5c: 1124 lrw r1, 0x2000085d // 9cec + 9c5e: 4a08 lsri r0, r2, 8 + 9c60: a140 st.b r2, (r1, 0x0) + 9c62: a101 st.b r0, (r1, 0x1) + 9c64: 4a10 lsri r0, r2, 16 + 9c66: 4a58 lsri r2, r2, 24 + 9c68: a143 st.b r2, (r1, 0x3) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9c6a: 4b48 lsri r2, r3, 8 + 9c6c: a44f st.b r2, (r4, 0xf) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 9c6e: 3201 movi r2, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9c70: a102 st.b r0, (r1, 0x2) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9c72: a46e st.b r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 9c74: a640 st.b r2, (r6, 0x0) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 9c76: 8602 ld.b r0, (r6, 0x2) + 9c78: 8641 ld.b r2, (r6, 0x1) + 9c7a: 4008 lsli r0, r0, 8 + 9c7c: 6c08 or r0, r2 + 9c7e: 8643 ld.b r2, (r6, 0x3) + 9c80: 4250 lsli r2, r2, 16 + 9c82: 6c08 or r0, r2 + 9c84: 8644 ld.b r2, (r6, 0x4) + 9c86: 4258 lsli r2, r2, 24 + 9c88: 6c80 or r2, r0 + 9c8a: 9520 ld.w r1, (r5, 0x0) + 9c8c: 604a subu r1, r2 + 9c8e: 1059 lrw r2, 0x752f // 9cf0 + 9c90: 6448 cmphs r2, r1 + 9c92: 0831 bt 0x9cf4 // 9cf4 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 9c94: 9540 ld.w r2, (r5, 0x0) + 9c96: 1036 lrw r1, 0x2000085d // 9cec + 9c98: 4a08 lsri r0, r2, 8 + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9c9a: a46e st.b r3, (r4, 0xe) + 9c9c: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9c9e: a140 st.b r2, (r1, 0x0) + 9ca0: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 9ca2: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9ca4: 4a10 lsri r0, r2, 16 + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 9ca6: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9ca8: 4a58 lsri r2, r2, 24 + 9caa: a102 st.b r0, (r1, 0x2) + 9cac: a143 st.b r2, (r1, 0x3) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 9cae: a660 st.b r3, (r6, 0x0) + 9cb0: 0422 br 0x9cf4 // 9cf4 + 9cb2: 0000 bkpt + 9cb4: 20000868 .long 0x20000868 + 9cb8: 2000083c .long 0x2000083c + 9cbc: 200000c0 .long 0x200000c0 + 9cc0: 00000bb8 .long 0x00000bb8 + 9cc4: 0000cf21 .long 0x0000cf21 + 9cc8: 0000cf43 .long 0x0000cf43 + 9ccc: 20000524 .long 0x20000524 + 9cd0: 00001388 .long 0x00001388 + 9cd4: 2000085c .long 0x2000085c + 9cd8: 2000005c .long 0x2000005c + 9cdc: 20000234 .long 0x20000234 + 9ce0: 0000cf33 .long 0x0000cf33 + 9ce4: 0000cf53 .long 0x0000cf53 + 9ce8: 20000861 .long 0x20000861 + 9cec: 2000085d .long 0x2000085d + 9cf0: 0000752f .long 0x0000752f + + } + } + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 9cf4: 8462 ld.b r3, (r4, 0x2) + 9cf6: 8446 ld.b r2, (r4, 0x6) + 9cf8: 4b07 lsri r0, r3, 7 + 9cfa: 4a47 lsri r2, r2, 7 + 9cfc: 640a cmpne r2, r0 + 9cfe: 0c31 bf 0x9d60 // 9d60 + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ + 9d00: 74ce sextb r3, r3 + 9d02: 3bdf btsti r3, 31 + 9d04: 1267 lrw r3, 0x200005e0 // 9e20 + 9d06: 0c8b bf 0x9e1c // 9e1c + OpenDisPlay_Flag = 1; //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 9d08: 1247 lrw r2, 0x20000234 // 9e24 + 9d0a: 3101 movi r1, 1 + 9d0c: a220 st.b r1, (r2, 0x0) + HT1621.buz_ctrl_flag = 0x01; + 9d0e: 3201 movi r2, 1 + }else{ + HT1621.buz_ctrl_flag = 0x00; + 9d10: a345 st.b r2, (r3, 0x5) + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 9d12: 317f movi r1, 127 + 9d14: 8466 ld.b r3, (r4, 0x6) + 9d16: 4047 lsli r2, r0, 7 + 9d18: 68c4 and r3, r1 + 9d1a: 6cc8 or r3, r2 + 9d1c: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 9d1e: e3fff68f bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 9d22: 8402 ld.b r0, (r4, 0x2) + 9d24: 4807 lsri r0, r0, 7 + 9d26: e3fff6f9 bsr 0x8b18 // 8b18 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 9d2a: 8402 ld.b r0, (r4, 0x2) + 9d2c: 4807 lsri r0, r0, 7 + 9d2e: e3fffddb bsr 0x98e4 // 98e4 + + + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 9d32: 117e lrw r3, 0x2000005c // 9e28 + 9d34: 31ff movi r1, 255 + 9d36: 9340 ld.w r2, (r3, 0x0) + 9d38: 22ff addi r2, 256 + 9d3a: 9260 ld.w r3, (r2, 0x0) + 9d3c: 68c5 andn r3, r1 + 9d3e: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 9d40: 8462 ld.b r3, (r4, 0x2) + 9d42: 9220 ld.w r1, (r2, 0x0) + 9d44: 4b67 lsri r3, r3, 7 + 9d46: 6cc4 or r3, r1 + 9d48: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 9d4a: 3301 movi r3, 1 + 9d4c: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9d4e: 9560 ld.w r3, (r5, 0x0) + 9d50: 1157 lrw r2, 0x20000861 // 9e2c + 9d52: 4b28 lsri r1, r3, 8 + 9d54: a260 st.b r3, (r2, 0x0) + 9d56: a221 st.b r1, (r2, 0x1) + 9d58: 4b30 lsri r1, r3, 16 + 9d5a: 4b78 lsri r3, r3, 24 + 9d5c: a222 st.b r1, (r2, 0x2) + 9d5e: a263 st.b r3, (r2, 0x3) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 9d60: 8660 ld.b r3, (r6, 0x0) + 9d62: 3b41 cmpnei r3, 1 + 9d64: 082b bt 0x9dba // 9dba + 9d66: 8646 ld.b r2, (r6, 0x6) + 9d68: 8665 ld.b r3, (r6, 0x5) + 9d6a: 4248 lsli r2, r2, 8 + 9d6c: 6c8c or r2, r3 + 9d6e: 8667 ld.b r3, (r6, 0x7) + 9d70: 4370 lsli r3, r3, 16 + 9d72: 6c8c or r2, r3 + 9d74: 8668 ld.b r3, (r6, 0x8) + 9d76: 4378 lsli r3, r3, 24 + 9d78: 6cc8 or r3, r2 + 9d7a: 9520 ld.w r1, (r5, 0x0) + 9d7c: 604e subu r1, r3 + 9d7e: 116d lrw r3, 0x3e7 // 9e30 + 9d80: 644c cmphs r3, r1 + 9d82: 081c bt 0x9dba // 9dba + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 9d84: 9560 ld.w r3, (r5, 0x0) + 9d86: 114a lrw r2, 0x20000861 // 9e2c + 9d88: 4b28 lsri r1, r3, 8 + 9d8a: a260 st.b r3, (r2, 0x0) + 9d8c: a221 st.b r1, (r2, 0x1) + 9d8e: 4b30 lsri r1, r3, 16 + 9d90: 4b78 lsri r3, r3, 24 + 9d92: a263 st.b r3, (r2, 0x3) + TempCtrl.TempChange_Flag = 0x00; + 9d94: 3300 movi r3, 0 + 9d96: a660 st.b r3, (r6, 0x0) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 9d98: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9d9a: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9d9c: 1146 lrw r2, 0x2000085d // 9e34 + 9d9e: 4b28 lsri r1, r3, 8 + 9da0: a260 st.b r3, (r2, 0x0) + 9da2: a221 st.b r1, (r2, 0x1) + 9da4: 4b30 lsri r1, r3, 16 + 9da6: 4b78 lsri r3, r3, 24 + 9da8: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9daa: 8767 ld.b r3, (r7, 0x7) + 9dac: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9dae: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9db0: 0805 bt 0x9dba // 9dba + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 9db2: 30fa movi r0, 250 + 9db4: 4002 lsli r0, r0, 2 + 9db6: e0000255 bsr 0xa260 // a260 + } + + } + + // 状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 9dba: 8646 ld.b r2, (r6, 0x6) + 9dbc: 8665 ld.b r3, (r6, 0x5) + 9dbe: 4248 lsli r2, r2, 8 + 9dc0: 6c8c or r2, r3 + 9dc2: 8667 ld.b r3, (r6, 0x7) + 9dc4: 4370 lsli r3, r3, 16 + 9dc6: 6c8c or r2, r3 + 9dc8: 8668 ld.b r3, (r6, 0x8) + 9dca: 4378 lsli r3, r3, 24 + 9dcc: 6cc8 or r3, r2 + 9dce: 9520 ld.w r1, (r5, 0x0) + 9dd0: 604e subu r1, r3 + 9dd2: 107a lrw r3, 0x493df // 9e38 + 9dd4: 644c cmphs r3, r1 + 9dd6: 0819 bt 0x9e08 // 9e08 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 9dd8: 9560 ld.w r3, (r5, 0x0) + 9dda: 1055 lrw r2, 0x20000861 // 9e2c + 9ddc: 4b28 lsri r1, r3, 8 + 9dde: a260 st.b r3, (r2, 0x0) + 9de0: a221 st.b r1, (r2, 0x1) + 9de2: 4b30 lsri r1, r3, 16 + 9de4: 4b78 lsri r3, r3, 24 + 9de6: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9de8: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 9dea: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 9dec: 1052 lrw r2, 0x2000085d // 9e34 + 9dee: 4b28 lsri r1, r3, 8 + 9df0: a260 st.b r3, (r2, 0x0) + 9df2: a221 st.b r1, (r2, 0x1) + 9df4: 4b30 lsri r1, r3, 16 + 9df6: 4b78 lsri r3, r3, 24 + 9df8: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9dfa: 8767 ld.b r3, (r7, 0x7) + 9dfc: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 9dfe: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 9e00: 0804 bt 0x9e08 // 9e08 + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 9e02: 100f lrw r0, 0xea60 // 9e3c + 9e04: e000022e bsr 0xa260 // a260 + } + } + } +} + 9e08: 1494 pop r4-r7, r15 + Relay_Mid(); + 9e0a: e00000f7 bsr 0x9ff8 // 9ff8 + break; + 9e0e: 06bd br 0x9b88 // 9b88 + Relay_High(); + 9e10: e00000e6 bsr 0x9fdc // 9fdc + break; + 9e14: 06ba br 0x9b88 // 9b88 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 9e16: 330a movi r3, 10 + 9e18: 7c0c mult r0, r3 + 9e1a: 06da br 0x9bce // 9bce + HT1621.buz_ctrl_flag = 0x00; + 9e1c: 3200 movi r2, 0 + 9e1e: 0779 br 0x9d10 // 9d10 + 9e20: 200005e0 .long 0x200005e0 + 9e24: 20000234 .long 0x20000234 + 9e28: 2000005c .long 0x2000005c + 9e2c: 20000861 .long 0x20000861 + 9e30: 000003e7 .long 0x000003e7 + 9e34: 2000085d .long 0x2000085d + 9e38: 000493df .long 0x000493df + 9e3c: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Debug_Init: + +00009e40 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 9e40: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 9e42: 108d lrw r4, 0x20000868 // 9e74 + 9e44: 3210 movi r2, 16 + 9e46: 3100 movi r1, 0 + 9e48: 6c13 mov r0, r4 + 9e4a: e3ffd1a9 bsr 0x419c // 419c <__memset_fast> + Debug_Inf.Page = 0x01; + 9e4e: 3301 movi r3, 1 + 9e50: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 9e52: 106a lrw r3, 0x20000524 // 9e78 + 9e54: 8340 ld.b r2, (r3, 0x0) + 9e56: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 9e58: 8341 ld.b r2, (r3, 0x1) + 9e5a: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 9e5c: 8342 ld.b r2, (r3, 0x2) + 9e5e: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 9e60: 8344 ld.b r2, (r3, 0x4) + 9e62: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 9e64: 8345 ld.b r2, (r3, 0x5) + 9e66: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 9e68: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 9e6a: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 9e6c: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 9e6e: a469 st.b r3, (r4, 0x9) + + +} + 9e70: 1491 pop r4, r15 + 9e72: 0000 bkpt + 9e74: 20000868 .long 0x20000868 + 9e78: 20000524 .long 0x20000524 + +Disassembly of section .text.Dev_SaveData: + +00009e7c : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 9e7c: 14d1 push r4, r15 + 9e7e: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 9e80: 1165 lrw r3, 0x20000868 // 9f14 + 9e82: 1186 lrw r4, 0x20000524 // 9f18 + 9e84: 8343 ld.b r2, (r3, 0x3) + 9e86: 8420 ld.b r1, (r4, 0x0) + 9e88: 6486 cmpne r1, r2 + 9e8a: 0819 bt 0x9ebc // 9ebc + 9e8c: 8304 ld.b r0, (r3, 0x4) + 9e8e: 8421 ld.b r1, (r4, 0x1) + 9e90: 6442 cmpne r0, r1 + 9e92: 0815 bt 0x9ebc // 9ebc + 9e94: 8305 ld.b r0, (r3, 0x5) + 9e96: 8422 ld.b r1, (r4, 0x2) + 9e98: 6442 cmpne r0, r1 + 9e9a: 0811 bt 0x9ebc // 9ebc + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 9e9c: 8306 ld.b r0, (r3, 0x6) + 9e9e: 8424 ld.b r1, (r4, 0x4) + 9ea0: 6442 cmpne r0, r1 + 9ea2: 080d bt 0x9ebc // 9ebc + 9ea4: 8307 ld.b r0, (r3, 0x7) + 9ea6: 8425 ld.b r1, (r4, 0x5) + 9ea8: 6442 cmpne r0, r1 + 9eaa: 0809 bt 0x9ebc // 9ebc + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 9eac: 8308 ld.b r0, (r3, 0x8) + 9eae: 8423 ld.b r1, (r4, 0x3) + 9eb0: 6442 cmpne r0, r1 + 9eb2: 0805 bt 0x9ebc // 9ebc + 9eb4: 8309 ld.b r0, (r3, 0x9) + 9eb6: 8426 ld.b r1, (r4, 0x6) + 9eb8: 6442 cmpne r0, r1 + 9eba: 0c2b bf 0x9f10 // 9f10 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 9ebc: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 9ebe: 8344 ld.b r2, (r3, 0x4) + 9ec0: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 9ec2: 8345 ld.b r2, (r3, 0x5) + 9ec4: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 9ec6: 8346 ld.b r2, (r3, 0x6) + 9ec8: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 9eca: 8347 ld.b r2, (r3, 0x7) + 9ecc: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 9ece: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 9ed0: 1012 lrw r0, 0x20000524 // 9f18 + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 9ed2: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 9ed4: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 9ed6: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 9ed8: e3ffe8ca bsr 0x706c // 706c + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 9edc: 8425 ld.b r1, (r4, 0x5) + 9ede: b822 st.w r1, (r14, 0x8) + 9ee0: 8424 ld.b r1, (r4, 0x4) + 9ee2: b821 st.w r1, (r14, 0x4) + 9ee4: 8422 ld.b r1, (r4, 0x2) + 9ee6: 8461 ld.b r3, (r4, 0x1) + 9ee8: 8440 ld.b r2, (r4, 0x0) + 9eea: b820 st.w r1, (r14, 0x0) + 9eec: 3000 movi r0, 0 + 9eee: 102c lrw r1, 0xcf66 // 9f1c + 9ef0: e3ffe3a6 bsr 0x663c // 663c + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 9ef4: 8466 ld.b r3, (r4, 0x6) + 9ef6: 8443 ld.b r2, (r4, 0x3) + 9ef8: 3000 movi r0, 0 + 9efa: 102a lrw r1, 0xcfb2 // 9f20 + 9efc: e3ffe3a0 bsr 0x663c // 663c + g_eeprom.temp_select,g_eeprom.langue_select); + + //boot + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 9f00: 1009 lrw r0, 0x2000052c // 9f24 + 9f02: 8460 ld.b r3, (r4, 0x0) + 9f04: 8040 ld.b r2, (r0, 0x0) + 9f06: 64ca cmpne r2, r3 + 9f08: 0c04 bf 0x9f10 // 9f10 + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 9f0a: a060 st.b r3, (r0, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 9f0c: e3ffeac6 bsr 0x7498 // 7498 + } + + } +} + 9f10: 1403 addi r14, r14, 12 + 9f12: 1491 pop r4, r15 + 9f14: 20000868 .long 0x20000868 + 9f18: 20000524 .long 0x20000524 + 9f1c: 0000cf66 .long 0x0000cf66 + 9f20: 0000cfb2 .long 0x0000cfb2 + 9f24: 2000052c .long 0x2000052c + +Disassembly of section .text.Debug_Task: + +00009f28 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 9f28: 14d0 push r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 9f2a: 1074 lrw r3, 0x20000868 // 9f78 + 9f2c: 8340 ld.b r2, (r3, 0x0) + 9f2e: 3a41 cmpnei r2, 1 + 9f30: 0822 bt 0x9f74 // 9f74 + 9f32: 1033 lrw r1, 0x200000c0 // 9f7c + 9f34: 9140 ld.w r2, (r1, 0x0) + 9f36: 9303 ld.w r0, (r3, 0xc) + 9f38: 6082 subu r2, r0 + 9f3a: 1012 lrw r0, 0x2710 // 9f80 + 9f3c: 6480 cmphs r0, r2 + 9f3e: 081b bt 0x9f74 // 9f74 + 9f40: 8342 ld.b r2, (r3, 0x2) + 9f42: 3a48 cmpnei r2, 8 + 9f44: 0c18 bf 0x9f74 // 9f74 + { + Debug_Inf.Tick = SysTick_1ms; + 9f46: 9140 ld.w r2, (r1, 0x0) + 9f48: b343 st.w r2, (r3, 0xc) + Debug_Inf.State = 0x00; + 9f4a: 3200 movi r2, 0 + 9f4c: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 9f4e: 3201 movi r2, 1 + 9f50: a342 st.b r2, (r3, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 9f52: 106d lrw r3, 0x200005e0 // 9f84 + 9f54: 3200 movi r2, 0 + 9f56: a345 st.b r2, (r3, 0x5) + + Dev_SaveData(); + 9f58: e3ffff92 bsr 0x9e7c // 9e7c + + HT1621_Clear(); + 9f5c: e3fff232 bsr 0x83c0 // 83c0 + //关背光 + Controlled_LCD_Backlight(0x00); + 9f60: 3000 movi r0, 0 + 9f62: e3fff56d bsr 0x8a3c // 8a3c + Controlled_Key_Backlight(0x00); + 9f66: 3000 movi r0, 0 + 9f68: e3fff5d8 bsr 0x8b18 // 8b18 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 9f6c: 1027 lrw r1, 0xcfe2 // 9f88 + 9f6e: 3000 movi r0, 0 + 9f70: e3ffe366 bsr 0x663c // 663c + } + 9f74: 1490 pop r15 + 9f76: 0000 bkpt + 9f78: 20000868 .long 0x20000868 + 9f7c: 200000c0 .long 0x200000c0 + 9f80: 00002710 .long 0x00002710 + 9f84: 200005e0 .long 0x200005e0 + 9f88: 0000cfe2 .long 0x0000cfe2 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00009f8c : + * @brief 产生继电器控制动作检测 + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 9f8c: 14d3 push r4-r6, r15 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + if(rly_id >= RLY_MAX) return; + + if(c_rly.rly_state[rly_id] != state) + 9f8e: 10a9 lrw r5, 0x20000878 // 9fb0 + 9f90: 5d80 addu r4, r5, r0 + 9f92: 8463 ld.b r3, (r4, 0x3) + 9f94: 644e cmpne r3, r1 +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 9f96: 6d87 mov r6, r1 + if(c_rly.rly_state[rly_id] != state) + 9f98: 0c0b bf 0x9fae // 9fae + { + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 9f9a: e3ffe11e bsr 0x61d6 // 61d6 + c_rly.rly_state[rly_id] = state; + if(c_rly.rly_zero == UNZEROCROSSING){ + 9f9e: 8560 ld.b r3, (r5, 0x0) + c_rly.rly_control = 0x02; + 9fa0: 3b40 cmpnei r3, 0 + 9fa2: 64c3 mvcv r3 + 9fa4: 2300 addi r3, 1 + c_rly.rly_state[rly_id] = state; + 9fa6: a4c3 st.b r6, (r4, 0x3) + c_rly.rly_control = 0x02; + 9fa8: a562 st.b r3, (r5, 0x2) + }else{ + c_rly.rly_control = 0x01; + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 9faa: e3ffe113 bsr 0x61d0 // 61d0 + } +} + 9fae: 1493 pop r4-r6, r15 + 9fb0: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_Init: + +00009fb4 : +{ + 9fb4: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 9fb6: 1088 lrw r4, 0x200005a4 // 9fd4 + 9fb8: 321c movi r2, 28 + 9fba: 3100 movi r1, 0 + 9fbc: 6c13 mov r0, r4 + 9fbe: e3ffd0ef bsr 0x419c // 419c <__memset_fast> + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 9fc2: 320c movi r2, 12 + 9fc4: 3100 movi r1, 0 + 9fc6: 1005 lrw r0, 0x20000878 // 9fd8 + 9fc8: e3ffd0ea bsr 0x419c // 419c <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 9fcc: 3301 movi r3, 1 + 9fce: a462 st.b r3, (r4, 0x2) +} + 9fd0: 1491 pop r4, r15 + 9fd2: 0000 bkpt + 9fd4: 200005a4 .long 0x200005a4 + 9fd8: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_High: + +00009fdc : +{ + 9fdc: 14d0 push r15 + 9fde: 3101 movi r1, 1 + 9fe0: 3002 movi r0, 2 + 9fe2: e3ffffd5 bsr 0x9f8c // 9f8c + 9fe6: 3102 movi r1, 2 + 9fe8: 3003 movi r0, 3 + 9fea: e3ffffd1 bsr 0x9f8c // 9f8c + 9fee: 3102 movi r1, 2 + 9ff0: 3004 movi r0, 4 + 9ff2: e3ffffcd bsr 0x9f8c // 9f8c +} + 9ff6: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +00009ff8 : +{ + 9ff8: 14d0 push r15 + 9ffa: 3102 movi r1, 2 + 9ffc: 3002 movi r0, 2 + 9ffe: e3ffffc7 bsr 0x9f8c // 9f8c + a002: 3101 movi r1, 1 + a004: 3003 movi r0, 3 + a006: e3ffffc3 bsr 0x9f8c // 9f8c + a00a: 3102 movi r1, 2 + a00c: 3004 movi r0, 4 + a00e: e3ffffbf bsr 0x9f8c // 9f8c +} + a012: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +0000a014 : +{ + a014: 14d0 push r15 + a016: 3102 movi r1, 2 + a018: 3002 movi r0, 2 + a01a: e3ffffb9 bsr 0x9f8c // 9f8c + a01e: 3102 movi r1, 2 + a020: 3003 movi r0, 3 + a022: e3ffffb5 bsr 0x9f8c // 9f8c + a026: 3101 movi r1, 1 + a028: 3004 movi r0, 4 + a02a: e3ffffb1 bsr 0x9f8c // 9f8c +} + a02e: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +0000a030 : +{ + a030: 14d0 push r15 + a032: 3102 movi r1, 2 + a034: 3002 movi r0, 2 + a036: e3ffffab bsr 0x9f8c // 9f8c + a03a: 3102 movi r1, 2 + a03c: 3003 movi r0, 3 + a03e: e3ffffa7 bsr 0x9f8c // 9f8c + a042: 3102 movi r1, 2 + a044: 3004 movi r0, 4 + a046: e3ffffa3 bsr 0x9f8c // 9f8c +} + a04a: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +0000a04c : +{ + a04c: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + a04e: 5963 subi r3, r1, 1 + a050: 74cc zextb r3, r3 + a052: 3b01 cmphsi r3, 2 + a054: 0805 bt 0xa05e // a05e + if(rly_id >= RLY_MAX) return; + a056: 3804 cmphsi r0, 5 + a058: 0803 bt 0xa05e // a05e + a05a: e3ffff99 bsr 0x9f8c // 9f8c +} + a05e: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +0000a060 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + a060: 14d2 push r4-r5, r15 + if(SysTick_1ms - c_rly.ZCrossing_tick >= 50)// 50ms + a062: 1150 lrw r2, 0x200000c0 // a120 + a064: 1190 lrw r4, 0x20000878 // a124 + a066: 9260 ld.w r3, (r2, 0x0) + a068: 9422 ld.w r1, (r4, 0x8) + a06a: 60c6 subu r3, r1 + a06c: 3131 movi r1, 49 + a06e: 64c4 cmphs r1, r3 + a070: 0810 bt 0xa090 // a090 + { + c_rly.ZCrossing_tick = SysTick_1ms; + a072: 9260 ld.w r3, (r2, 0x0) + a074: b462 st.w r3, (r4, 0x8) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + a076: e3ffe0b0 bsr 0x61d6 // 61d6 + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5) ){ //有过零信号 + a07a: 8461 ld.b r3, (r4, 0x1) + a07c: 2b01 subi r3, 2 + a07e: 74cc zextb r3, r3 + a080: 3b03 cmphsi r3, 4 + a082: 0812 bt 0xa0a6 // a0a6 + c_rly.rly_zero = ZEROCROSSING; + a084: 3301 movi r3, 1 + a086: a460 st.b r3, (r4, 0x0) + c_rly.rly_zCnt = 0; + a088: 3300 movi r3, 0 + }else { //无过零信号 + c_rly.rly_zero = UNZEROCROSSING; + c_rly.rly_zCnt = 0; + a08a: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + a08c: e3ffe0a2 bsr 0x61d0 // 61d0 + } + + if(c_rly.rly_control != 0x02) return; + a090: 8462 ld.b r3, (r4, 0x2) + a092: 3b42 cmpnei r3, 2 + a094: 0819 bt 0xa0c6 // a0c6 + a096: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + a098: 5d03 subi r0, r5, 1 + a09a: 3803 cmphsi r0, 4 + a09c: 0808 bt 0xa0ac // a0ac + a09e: e3ffca2f bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a0a2: 2117 .short 0x2117 + a0a4: 352b .short 0x352b + c_rly.rly_zero = UNZEROCROSSING; + a0a6: 3300 movi r3, 0 + a0a8: a460 st.b r3, (r4, 0x0) + a0aa: 07f0 br 0xa08a // a08a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + a0ac: 8463 ld.b r3, (r4, 0x3) + a0ae: 3b41 cmpnei r3, 1 + a0b0: 080c bt 0xa0c8 // a0c8 + RLY1_HOT_OPEN; + a0b2: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + a0b4: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + a0b6: e3fff087 bsr 0x81c4 // 81c4 + for (U8_T i = 0; i < RLY_MAX; i++) { + a0ba: 2500 addi r5, 1 + a0bc: 7554 zextb r5, r5 + a0be: 3d45 cmpnei r5, 5 + a0c0: 0bec bt 0xa098 // a098 + } + break; + } + } + + c_rly.rly_control = 0x00; + a0c2: 3300 movi r3, 0 + a0c4: a462 st.b r3, (r4, 0x2) +} + a0c6: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + a0c8: 3b42 cmpnei r3, 2 + a0ca: 0bf8 bt 0xa0ba // a0ba + RLY1_HOT_CLOSE; + a0cc: 3101 movi r1, 1 + a0ce: 07f3 br 0xa0b4 // a0b4 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + a0d0: 8464 ld.b r3, (r4, 0x4) + a0d2: 3b41 cmpnei r3, 1 + a0d4: 0804 bt 0xa0dc // a0dc + RLY2_COLD_OPEN; + a0d6: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + a0d8: 3013 movi r0, 19 + a0da: 07ee br 0xa0b6 // a0b6 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + a0dc: 3b42 cmpnei r3, 2 + a0de: 0bee bt 0xa0ba // a0ba + RLY2_COLD_CLOSE; + a0e0: 3101 movi r1, 1 + a0e2: 07fb br 0xa0d8 // a0d8 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + a0e4: 8465 ld.b r3, (r4, 0x5) + a0e6: 3b41 cmpnei r3, 1 + a0e8: 0804 bt 0xa0f0 // a0f0 + RLY3_HIGH_OPEN; + a0ea: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + a0ec: 3014 movi r0, 20 + a0ee: 07e4 br 0xa0b6 // a0b6 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + a0f0: 3b42 cmpnei r3, 2 + a0f2: 0be4 bt 0xa0ba // a0ba + RLY3_HIGH_CLOSE; + a0f4: 3101 movi r1, 1 + a0f6: 07fb br 0xa0ec // a0ec + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + a0f8: 8466 ld.b r3, (r4, 0x6) + a0fa: 3b41 cmpnei r3, 1 + a0fc: 0804 bt 0xa104 // a104 + RLY4_MID_OPEN; + a0fe: 3102 movi r1, 2 + RLY4_MID_CLOSE; + a100: 3015 movi r0, 21 + a102: 07da br 0xa0b6 // a0b6 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + a104: 3b42 cmpnei r3, 2 + a106: 0bda bt 0xa0ba // a0ba + RLY4_MID_CLOSE; + a108: 3101 movi r1, 1 + a10a: 07fb br 0xa100 // a100 + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + a10c: 8467 ld.b r3, (r4, 0x7) + a10e: 3b41 cmpnei r3, 1 + a110: 0804 bt 0xa118 // a118 + RLY5_LOW_OPEN; + a112: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + a114: 3016 movi r0, 22 + a116: 07d0 br 0xa0b6 // a0b6 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + a118: 3b42 cmpnei r3, 2 + a11a: 0bd0 bt 0xa0ba // a0ba + RLY5_LOW_CLOSE; + a11c: 3101 movi r1, 1 + a11e: 07fb br 0xa114 // a114 + a120: 200000c0 .long 0x200000c0 + a124: 20000878 .long 0x20000878 + +Disassembly of section .text.RLY_Zero_Control: + +0000a128 : + * @brief 有过零信号控制继电器,在中断中调用 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + a128: 14d2 push r4-r5, r15 + if(c_rly.rly_control != 0x01) return; + a12a: 1185 lrw r4, 0x20000878 // a1bc + a12c: 8462 ld.b r3, (r4, 0x2) + a12e: 3b41 cmpnei r3, 1 + a130: 0818 bt 0xa160 // a160 + a132: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + a134: 5d03 subi r0, r5, 1 + a136: 3803 cmphsi r0, 4 + a138: 0805 bt 0xa142 // a142 + a13a: e3ffc9e1 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a13e: 2016 .short 0x2016 + a140: 342a .short 0x342a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + a142: 8463 ld.b r3, (r4, 0x3) + a144: 3b41 cmpnei r3, 1 + a146: 080e bt 0xa162 // a162 + RLY1_HOT_OPEN; + a148: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + a14a: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + a14c: e3fff03c bsr 0x81c4 // 81c4 + for (U8_T i = 0; i < RLY_MAX; i++) { + a150: 2500 addi r5, 1 + a152: 7554 zextb r5, r5 + a154: 3d45 cmpnei r5, 5 + a156: 0bef bt 0xa134 // a134 + break; + } + + } + + TimeCall_SIO_Send2(); + a158: e3ffef6a bsr 0x802c // 802c + + c_rly.rly_control = 0x00; + a15c: 3300 movi r3, 0 + a15e: a462 st.b r3, (r4, 0x2) + a160: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + a162: 3b42 cmpnei r3, 2 + a164: 0bf6 bt 0xa150 // a150 + RLY1_HOT_CLOSE; + a166: 3101 movi r1, 1 + a168: 07f1 br 0xa14a // a14a + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + a16a: 8464 ld.b r3, (r4, 0x4) + a16c: 3b41 cmpnei r3, 1 + a16e: 0804 bt 0xa176 // a176 + RLY2_COLD_OPEN; + a170: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + a172: 3013 movi r0, 19 + a174: 07ec br 0xa14c // a14c + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + a176: 3b42 cmpnei r3, 2 + a178: 0bec bt 0xa150 // a150 + RLY2_COLD_CLOSE; + a17a: 3101 movi r1, 1 + a17c: 07fb br 0xa172 // a172 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + a17e: 8465 ld.b r3, (r4, 0x5) + a180: 3b41 cmpnei r3, 1 + a182: 0804 bt 0xa18a // a18a + RLY3_HIGH_OPEN; + a184: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + a186: 3014 movi r0, 20 + a188: 07e2 br 0xa14c // a14c + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + a18a: 3b42 cmpnei r3, 2 + a18c: 0be2 bt 0xa150 // a150 + RLY3_HIGH_CLOSE; + a18e: 3101 movi r1, 1 + a190: 07fb br 0xa186 // a186 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + a192: 8466 ld.b r3, (r4, 0x6) + a194: 3b41 cmpnei r3, 1 + a196: 0804 bt 0xa19e // a19e + RLY4_MID_OPEN; + a198: 3102 movi r1, 2 + RLY4_MID_CLOSE; + a19a: 3015 movi r0, 21 + a19c: 07d8 br 0xa14c // a14c + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + a19e: 3b42 cmpnei r3, 2 + a1a0: 0bd8 bt 0xa150 // a150 + RLY4_MID_CLOSE; + a1a2: 3101 movi r1, 1 + a1a4: 07fb br 0xa19a // a19a + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + a1a6: 8467 ld.b r3, (r4, 0x7) + a1a8: 3b41 cmpnei r3, 1 + a1aa: 0804 bt 0xa1b2 // a1b2 + RLY5_LOW_OPEN; + a1ac: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + a1ae: 3016 movi r0, 22 + a1b0: 07ce br 0xa14c // a14c + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + a1b2: 3b42 cmpnei r3, 2 + a1b4: 0bce bt 0xa150 // a150 + RLY5_LOW_CLOSE; + a1b6: 3101 movi r1, 1 + a1b8: 07fb br 0xa1ae // a1ae + a1ba: 0000 bkpt + a1bc: 20000878 .long 0x20000878 + +Disassembly of section .text.NetCRC16_Check: + +0000a1c0 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + a1c0: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + a1c2: 3902 cmphsi r1, 3 + a1c4: 0c1f bf 0xa202 // a202 + U16_T alen = len-2; //CRC16??????? + a1c6: 2901 subi r1, 2 + a1c8: 7445 zexth r1, r1 + a1ca: 6d43 mov r5, r0 + a1cc: 3200 movi r2, 0 + a1ce: 106e lrw r3, 0xffff // a204 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + a1d8: 6d8f mov r6, r3 + a1da: 699c and r6, r7 + a1dc: 3e40 cmpnei r6, 0 + a1de: 4b61 lsri r3, r3, 1 + a1e0: 0c04 bf 0xa1e8 // a1e8 + a1e2: 10ca lrw r6, 0xffffa001 // a208 + a1e4: 6cd9 xor r3, r6 + a1e6: 74cd zexth r3, r3 + a1e8: 2c00 subi r4, 1 + a1ea: 7511 zexth r4, r4 + for(j=0;j<8;j++) + a1ec: 3c40 cmpnei r4, 0 + a1ee: 0bf5 bt 0xa1d8 // a1d8 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + a1fa: 6040 addu r1, r0 + a1fc: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + a1fe: 4b68 lsri r3, r3, 8 + a200: a161 st.b r3, (r1, 0x1) +} + a202: 1484 pop r4-r7 + a204: 0000ffff .long 0x0000ffff + a208: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +0000a20c : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + a20c: 14c3 push r4-r6 + a20e: 6cc3 mov r3, r0 + a210: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + a212: 10ac lrw r5, 0xffffa001 // a240 + xda = 0xFFFF ; + a214: 100c lrw r0, 0xffff // a244 + for (i = 0; i < len; i++) + a216: 644e cmpne r3, r1 + a218: 0802 bt 0xa21c // a21c + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + a21a: 1483 pop r4-r6 + xda ^= aStr[i] ; + a21c: 8340 ld.b r2, (r3, 0x0) + a21e: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + a220: 3601 movi r6, 1 + xda ^= aStr[i] ; + a222: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + a224: 6d03 mov r4, r0 + a226: 6918 and r4, r6 + a228: 3c40 cmpnei r4, 0 + a22a: 4801 lsri r0, r0, 1 + a22c: 0c03 bf 0xa232 // a232 + a22e: 6c15 xor r0, r5 + a230: 7401 zexth r0, r0 + a232: 2a00 subi r2, 1 + a234: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + a236: 3a40 cmpnei r2, 0 + a238: 0bf6 bt 0xa224 // a224 + a23a: 2300 addi r3, 1 + a23c: 07ed br 0xa216 // a216 + a23e: 0000 bkpt + a240: ffffa001 .long 0xffffa001 + a244: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +0000a248 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + a248: 6cc3 mov r3, r0 + a24a: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + a24c: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + a24e: 644e cmpne r3, r1 + a250: 0802 bt 0xa254 // a254 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + a252: 783c jmp r15 + sor_data = sor_data+Data[i]; + a254: 8340 ld.b r2, (r3, 0x0) + a256: 6008 addu r0, r2 + a258: 7400 zextb r0, r0 + a25a: 2300 addi r3, 1 + a25c: 07f9 br 0xa24e // a24e + +Disassembly of section .text.Rs485_ASend: + +0000a260 : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + a260: 14d1 push r4, r15 + a262: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + a264: 117f lrw r3, 0x20000524 // a360 + a266: 8347 ld.b r2, (r3, 0x7) + a268: 3a42 cmpnei r2, 2 +{ + a26a: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + a26c: 0870 bt 0xa34c // a34c + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + a26e: 3255 movi r2, 85 + a270: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + a274: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + a278: 3200 movi r2, 0 + a27a: 2a11 subi r2, 18 + a27c: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + a280: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + a282: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + a284: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + a288: 3203 movi r2, 3 + a28a: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + a28e: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + a292: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + a294: 1154 lrw r2, 0x2000083c // a364 + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + a296: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + a29a: 8262 ld.b r3, (r2, 0x2) + a29c: 4b27 lsri r1, r3, 7 + a29e: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + a2a2: 3100 movi r1, 0 + a2a4: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + a2a8: 3170 movi r1, 112 + a2aa: 68c4 and r3, r1 + a2ac: 3b40 cmpnei r3, 0 + a2ae: 081a bt 0xa2e2 // a2e2 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + a2b0: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a2b2: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + a2b6: 8261 ld.b r3, (r2, 0x1) + a2b8: 3b40 cmpnei r3, 0 + a2ba: 0802 bt 0xa2be // a2be + a2bc: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a2be: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + a2c0: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a2c4: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + a2c6: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a2c8: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + a2ca: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a2ce: 3304 movi r3, 4 + a2d0: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + a2d2: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a2d4: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + a2d8: 0842 bt 0xa35c // a35c + a2da: e3ffc911 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a2de: 390c .short 0x390c + a2e0: 3d3b .short 0x3d3b + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + a2e2: 3120 movi r1, 32 + a2e4: 644e cmpne r3, r1 + a2e6: 0803 bt 0xa2ec // a2ec + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + a2e8: 3302 movi r3, 2 + a2ea: 07e4 br 0xa2b2 // a2b2 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + a2ec: 3140 movi r1, 64 + a2ee: 644e cmpne r3, r1 + a2f0: 0be3 bt 0xa2b6 // a2b6 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a2f2: 3303 movi r3, 3 + a2f4: 07df br 0xa2b2 // a2b2 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + a2f6: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a2f8: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + a2fa: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a2fe: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + a300: 3300 movi r3, 0 + a302: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + a306: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a30a: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + a30c: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + a310: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + a314: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a318: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a31a: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a31c: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a31e: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a322: 0802 bt 0xa326 // a326 + a324: 3320 movi r3, 32 + a326: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + a32a: 3300 movi r3, 0 + a32c: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a330: 1b01 addi r3, r14, 4 + a332: 5b0a addi r0, r3, 3 + a334: 3115 movi r1, 21 + a336: e3ffff45 bsr 0xa1c0 // a1c0 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + a33a: 3396 movi r3, 150 + a33c: 4361 lsli r3, r3, 1 + a33e: b860 st.w r3, (r14, 0x0) + a340: 3201 movi r2, 1 + a342: 6cd3 mov r3, r4 + a344: 3118 movi r1, 24 + a346: 1801 addi r0, r14, 4 + a348: e3ffe0d2 bsr 0x64ec // 64ec + +} + a34c: 1407 addi r14, r14, 28 + a34e: 1491 pop r4, r15 + SendData[13] = 0x02; + a350: 3302 movi r3, 2 + a352: 07d3 br 0xa2f8 // a2f8 + SendData[13] = 0x01; + a354: 3301 movi r3, 1 + a356: 07d1 br 0xa2f8 // a2f8 + SendData[13] = 0x00; // + a358: 3300 movi r3, 0 + a35a: 07cf br 0xa2f8 // a2f8 + SendData[13] = 0x04; // + a35c: 3304 movi r3, 4 + a35e: 07cd br 0xa2f8 // a2f8 + a360: 20000524 .long 0x20000524 + a364: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCycleSend: + +0000a368 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + a368: 14d0 push r15 + a36a: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + a36c: 3355 movi r3, 85 + a36e: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + a372: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + a376: 3300 movi r3, 0 + a378: 2b11 subi r3, 18 + a37a: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + a37e: 3315 movi r3, 21 + a380: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + a384: 3303 movi r3, 3 + a386: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + a38a: 1177 lrw r3, 0x20000524 // a464 + a38c: 8360 ld.b r3, (r3, 0x0) + a38e: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + a392: 3300 movi r3, 0 + a394: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + a398: 1174 lrw r3, 0x2000083c // a468 + a39a: 8342 ld.b r2, (r3, 0x2) + a39c: 4a27 lsri r1, r2, 7 + a39e: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + a3a2: 3100 movi r1, 0 + a3a4: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + a3a8: 3170 movi r1, 112 + a3aa: 6884 and r2, r1 + a3ac: 3a40 cmpnei r2, 0 + a3ae: 081a bt 0xa3e2 // a3e2 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + a3b0: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a3b2: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + a3b6: 8341 ld.b r2, (r3, 0x1) + a3b8: 3a40 cmpnei r2, 0 + a3ba: 0802 bt 0xa3be // a3be + a3bc: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a3be: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + a3c0: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a3c4: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + a3c6: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a3c8: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + a3ca: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a3ce: 3204 movi r2, 4 + a3d0: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + a3d2: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + a3d4: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + a3d8: 0843 bt 0xa45e // a45e + a3da: e3ffc891 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a3de: 3a0c .short 0x3a0c + a3e0: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + a3e2: 3120 movi r1, 32 + a3e4: 644a cmpne r2, r1 + a3e6: 0803 bt 0xa3ec // a3ec + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + a3e8: 3202 movi r2, 2 + a3ea: 07e4 br 0xa3b2 // a3b2 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + a3ec: 3140 movi r1, 64 + a3ee: 644a cmpne r2, r1 + a3f0: 0be3 bt 0xa3b6 // a3b6 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + a3f2: 3203 movi r2, 3 + a3f4: 07df br 0xa3b2 // a3b2 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + a3f6: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + a3f8: dc4e0011 st.b r2, (r14, 0x11) + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + a3fc: 3200 movi r2, 0 + a3fe: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + a402: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a406: 8342 ld.b r2, (r3, 0x2) + a408: 425f lsli r2, r2, 31 + a40a: 4a5f lsri r2, r2, 31 + a40c: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a40e: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + a410: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a414: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + a416: 3200 movi r2, 0 + a418: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + a41c: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + a420: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + a424: 0802 bt 0xa428 // a428 + a426: 3320 movi r3, 32 + a428: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + a42c: 3300 movi r3, 0 + a42e: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a432: 1b01 addi r3, r14, 4 + a434: 5b0a addi r0, r3, 3 + a436: 3115 movi r1, 21 + a438: e3fffec4 bsr 0xa1c0 // a1c0 + + //MCU485_SendData(SendData, 24); + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + a43c: 3314 movi r3, 20 + a43e: b860 st.w r3, (r14, 0x0) + a440: 3396 movi r3, 150 + a442: 4361 lsli r3, r3, 1 + a444: 3201 movi r2, 1 + a446: 3118 movi r1, 24 + a448: 1801 addi r0, r14, 4 + a44a: e3ffe051 bsr 0x64ec // 64ec + +} + a44e: 1407 addi r14, r14, 28 + a450: 1490 pop r15 + SendData[13] = 0x02; + a452: 3202 movi r2, 2 + a454: 07d2 br 0xa3f8 // a3f8 + SendData[13] = 0x01; + a456: 3201 movi r2, 1 + a458: 07d0 br 0xa3f8 // a3f8 + SendData[13] = 0x00; // + a45a: 3200 movi r2, 0 + a45c: 07ce br 0xa3f8 // a3f8 + SendData[13] = 0x04; // + a45e: 3204 movi r2, 4 + a460: 07cc br 0xa3f8 // a3f8 + a462: 0000 bkpt + a464: 20000524 .long 0x20000524 + a468: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCtrlSend: + +0000a46c : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + a46c: 14d0 push r15 + a46e: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + a470: 3355 movi r3, 85 + a472: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + a476: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + a47a: 3300 movi r3, 0 + a47c: 2b11 subi r3, 18 + a47e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + a482: 3307 movi r3, 7 + a484: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + a488: 3303 movi r3, 3 + a48a: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a48e: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + a490: 106d lrw r3, 0x20000524 // a4c4 + a492: 8360 ld.b r3, (r3, 0x0) + a494: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + a498: 8066 ld.b r3, (r0, 0x6) + a49a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + a49e: 8067 ld.b r3, (r0, 0x7) + a4a0: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a4a4: 1b01 addi r3, r14, 4 + a4a6: 5b0a addi r0, r3, 3 + a4a8: e3fffe8c bsr 0xa1c0 // a1c0 + +// MCU485_SendData(SendData, 10); + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + a4ac: 3314 movi r3, 20 + a4ae: b860 st.w r3, (r14, 0x0) + a4b0: 3396 movi r3, 150 + a4b2: 4361 lsli r3, r3, 1 + a4b4: 3201 movi r2, 1 + a4b6: 310a movi r1, 10 + a4b8: 1801 addi r0, r14, 4 + a4ba: e3ffe019 bsr 0x64ec // 64ec + +} + a4be: 1404 addi r14, r14, 16 + a4c0: 1490 pop r15 + a4c2: 0000 bkpt + a4c4: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485AskReadSend: + +0000a4c8 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + a4c8: 14d0 push r15 + a4ca: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + a4cc: 3355 movi r3, 85 + a4ce: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + a4d2: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + a4d6: 3300 movi r3, 0 + a4d8: 2b11 subi r3, 18 + a4da: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + a4de: 3309 movi r3, 9 + a4e0: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + a4e4: 3303 movi r3, 3 + a4e6: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a4ea: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + a4ec: 1070 lrw r3, 0x20000524 // a52c + a4ee: 8340 ld.b r2, (r3, 0x0) + a4f0: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + a4f4: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + a4f6: 8046 ld.b r2, (r0, 0x6) + a4f8: dc4e000a st.b r2, (r14, 0xa) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + a4fc: dc6e000d st.b r3, (r14, 0xd) + SendData[7] = Project_FW_Version; + a500: 3204 movi r2, 4 + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a502: 1b01 addi r3, r14, 4 + SendData[7] = Project_FW_Version; + a504: dc4e000b st.b r2, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a508: 5b0a addi r0, r3, 3 + SendData[8] = Project_HW_Version; + a50a: 3202 movi r2, 2 + a50c: dc4e000c st.b r2, (r14, 0xc) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + a510: e3fffe58 bsr 0xa1c0 // a1c0 + +// MCU485_SendData(SendData, 12); + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + a514: 3314 movi r3, 20 + a516: b860 st.w r3, (r14, 0x0) + a518: 3396 movi r3, 150 + a51a: 4361 lsli r3, r3, 1 + a51c: 3201 movi r2, 1 + a51e: 310c movi r1, 12 + a520: 1801 addi r0, r14, 4 + a522: e3ffdfe5 bsr 0x64ec // 64ec +} + a526: 1404 addi r14, r14, 16 + a528: 1490 pop r15 + a52a: 0000 bkpt + a52c: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485_DevPort_ACK: + +0000a530 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + a530: 14d0 push r15 + a532: 1421 subi r14, r14, 4 + +// MCU485_SendData(Recdata, Lens); + + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + a534: 3314 movi r3, 20 + a536: b860 st.w r3, (r14, 0x0) + a538: 3396 movi r3, 150 + a53a: 7445 zexth r1, r1 + a53c: 4361 lsli r3, r3, 1 + a53e: 3201 movi r2, 1 + a540: e3ffdfd6 bsr 0x64ec // 64ec +} + a544: 1401 addi r14, r14, 4 + a546: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +0000a548 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + a548: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + a54a: 3300 movi r3, 0 + a54c: 2b08 subi r3, 9 + a54e: 60c4 addu r3, r1 + a550: 74cd zexth r3, r3 + a552: 3b01 cmphsi r3, 2 +{ + a554: 6d03 mov r4, r0 + a556: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + a558: 08c8 bt 0xa6e8 // a6e8 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + a55a: 8060 ld.b r3, (r0, 0x0) + a55c: 3255 movi r2, 85 + a55e: 648e cmpne r3, r2 + a560: 08c0 bt 0xa6e0 // a6e0 + a562: 8041 ld.b r2, (r0, 0x1) + a564: 64ca cmpne r2, r3 + a566: 08bd bt 0xa6e0 // a6e0 + a568: 8042 ld.b r2, (r0, 0x2) + a56a: 33ee movi r3, 238 + a56c: 64ca cmpne r2, r3 + a56e: 08b9 bt 0xa6e0 // a6e0 + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + a570: 8023 ld.b r1, (r0, 0x3) + a572: 596a addi r3, r1, 3 + a574: 654e cmpne r3, r5 + a576: 08b7 bt 0xa6e4 // a6e4 + a578: 8004 ld.b r0, (r0, 0x4) + a57a: 3843 cmpnei r0, 3 + a57c: 08b4 bt 0xa6e4 // a6e4 + a57e: 12dc lrw r6, 0x20000524 // a6ec + a580: 8640 ld.b r2, (r6, 0x0) + a582: 8465 ld.b r3, (r4, 0x5) + a584: 64ca cmpne r2, r3 + a586: 08ae bt 0xa6e2 // a6e2 + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + a588: 2901 subi r1, 2 + a58a: 7445 zexth r1, r1 + a58c: 5c0a addi r0, r4, 3 + a58e: e3fffe3f bsr 0xa20c // a20c + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + a592: 5c54 addu r2, r4, r5 + a594: 5a63 subi r3, r2, 1 + a596: 8360 ld.b r3, (r3, 0x0) + a598: 2a01 subi r2, 2 + a59a: 4368 lsli r3, r3, 8 + a59c: 8240 ld.b r2, (r2, 0x0) + a59e: 60c8 addu r3, r2 + a5a0: 64c2 cmpne r0, r3 + a5a2: 08a3 bt 0xa6e8 // a6e8 + { + switch(RecData[6]) + a5a4: 8406 ld.b r0, (r4, 0x6) + a5a6: 2800 subi r0, 1 + a5a8: 3811 cmphsi r0, 18 + a5aa: 0811 bt 0xa5cc // a5cc + a5ac: e3ffc7a8 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a5b0: 1e1e1e1e .long 0x1e1e1e1e + a5b4: 0e0e0e0e .long 0x0e0e0e0e + a5b8: 0e0e090e .long 0x0e0e090e + a5bc: 220e0e0e .long 0x220e0e0e + a5c0: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + a5c2: 8667 ld.b r3, (r6, 0x7) + a5c4: 3b42 cmpnei r3, 2 + a5c6: 080c bt 0xa5de // a5de + { + Clear_SendFlag(); + a5c8: e3ffdfc4 bsr 0x6550 // 6550 + } + + } + break; + } + switch(RecData[6]) + a5cc: 8406 ld.b r0, (r4, 0x6) + a5ce: 2800 subi r0, 1 + a5d0: 3803 cmphsi r0, 4 + a5d2: 0808 bt 0xa5e2 // a5e2 + a5d4: 8467 ld.b r3, (r4, 0x7) + a5d6: e3ffc793 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a5da: 4836 .short 0x4836 + a5dc: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + a5de: 3b41 cmpnei r3, 1 + a5e0: 0c03 bf 0xa5e6 // a5e6 + break; + } + break; + } + + return ret; + a5e2: 3000 movi r0, 0 + a5e4: 047f br 0xa6e2 // a6e2 + Rs485AskCycleSend(); + a5e6: e3fffec1 bsr 0xa368 // a368 + a5ea: 07f1 br 0xa5cc // a5cc + Rs485AskCtrlSend(RecData); + a5ec: 6c13 mov r0, r4 + a5ee: e3ffff3f bsr 0xa46c // a46c + a5f2: 07ed br 0xa5cc // a5cc + Rs485AskReadSend(RecData); //版本号查询 + a5f4: 6c13 mov r0, r4 + a5f6: e3ffff69 bsr 0xa4c8 // a4c8 + a5fa: 07e9 br 0xa5cc // a5cc + Rs485AskCtrlSend(RecData); + a5fc: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + a5fe: 11bd lrw r5, 0x2000083c // a6f0 + Rs485AskCtrlSend(RecData); + a600: e3ffff36 bsr 0xa46c // a46c + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + a604: 855a ld.b r2, (r5, 0x1a) + a606: 113c lrw r1, 0xcfed // a6f4 + a608: 3000 movi r0, 0 + a60a: e3ffe019 bsr 0x663c // 663c + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + a60e: 8467 ld.b r3, (r4, 0x7) + a610: 855a ld.b r2, (r5, 0x1a) + a612: 64ca cmpne r2, r3 + a614: 0fdc bf 0xa5cc // a5cc + if(TempCtrl.CardEn == 0x00) + a616: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + a618: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + a61a: 0bd9 bt 0xa5cc // a5cc + TempCtrl.CardState = 0x01; + a61c: 3301 movi r3, 1 + a61e: a578 st.b r3, (r5, 0x18) + a620: 07d6 br 0xa5cc // a5cc + if(RecData[7] != g_eeprom.dev_port) + a622: 8467 ld.b r3, (r4, 0x7) + a624: 8647 ld.b r2, (r6, 0x7) + a626: 64ca cmpne r2, r3 + a628: 0fdd bf 0xa5e2 // a5e2 + EEPROM_WriteParaInfo(&g_eeprom); + a62a: 1111 lrw r0, 0x20000524 // a6ec + g_eeprom.dev_port = RecData[7]; + a62c: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + a62e: e3ffe51f bsr 0x706c // 706c + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + a632: 110f lrw r0, 0x20000524 // a6ec + a634: e3ffe4e2 bsr 0x6ff8 // 6ff8 + if(rev_val == 0x00){ + a638: 3840 cmpnei r0, 0 + a63a: 0bc9 bt 0xa5cc // a5cc + Rs485_DevPort_ACK(RecData,Len); + a63c: 7454 zextb r1, r5 + a63e: 6c13 mov r0, r4 + a640: e3ffff78 bsr 0xa530 // a530 + a644: 07c4 br 0xa5cc // a5cc + switch(RecData[7]) + a646: 74cc zextb r3, r3 + a648: 3b40 cmpnei r3, 0 + a64a: 0c0a bf 0xa65e // a65e + a64c: 3b41 cmpnei r3, 1 + a64e: 0bca bt 0xa5e2 // a5e2 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + a650: 1128 lrw r1, 0x2000083c // a6f0 + a652: 3200 movi r2, 0 + a654: 8162 ld.b r3, (r1, 0x2) + a656: 2a7f subi r2, 128 + a658: 6cc8 or r3, r2 + a65a: a162 st.b r3, (r1, 0x2) + a65c: 07c3 br 0xa5e2 // a5e2 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + a65e: 1145 lrw r2, 0x2000083c // a6f0 + a660: 8262 ld.b r3, (r2, 0x2) + a662: 317f movi r1, 127 + a664: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + a666: a262 st.b r3, (r2, 0x2) + a668: 07bd br 0xa5e2 // a5e2 + switch(RecData[7]) // + a66a: 74cc zextb r3, r3 + a66c: 3b42 cmpnei r3, 2 + a66e: 0c0a bf 0xa682 // a682 + a670: 3b43 cmpnei r3, 3 + a672: 0c0e bf 0xa68e // a68e + a674: 3b41 cmpnei r3, 1 + a676: 0bb6 bt 0xa5e2 // a5e2 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + a678: 105e lrw r2, 0x2000083c // a6f0 + a67a: 8262 ld.b r3, (r2, 0x2) + a67c: 3170 movi r1, 112 + a67e: 68c5 andn r3, r1 + a680: 07f3 br 0xa666 // a666 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + a682: 105c lrw r2, 0x2000083c // a6f0 + a684: 8262 ld.b r3, (r2, 0x2) + a686: 3170 movi r1, 112 + a688: 68c5 andn r3, r1 + a68a: 3ba5 bseti r3, 5 + a68c: 07ed br 0xa666 // a666 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + a68e: 1059 lrw r2, 0x2000083c // a6f0 + a690: 8262 ld.b r3, (r2, 0x2) + a692: 3170 movi r1, 112 + a694: 68c5 andn r3, r1 + a696: 3ba6 bseti r3, 6 + a698: 07e7 br 0xa666 // a666 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + a69a: 3200 movi r2, 0 + a69c: 74cc zextb r3, r3 + a69e: 2a0f subi r2, 16 + a6a0: 608c addu r2, r3 + a6a2: 7488 zextb r2, r2 + a6a4: 3a0f cmphsi r2, 16 + a6a6: 0804 bt 0xa6ae // a6ae + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + a6a8: 1052 lrw r2, 0x2000083c // a6f0 + a6aa: a261 st.b r3, (r2, 0x1) + a6ac: 079b br 0xa5e2 // a5e2 + }else if(RecData[7] == TEM_MAX_SET){ + a6ae: 3220 movi r2, 32 + a6b0: 648e cmpne r3, r2 + a6b2: 0b98 bt 0xa5e2 // a5e2 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + a6b4: 106f lrw r3, 0x2000083c // a6f0 + a6b6: a341 st.b r2, (r3, 0x1) + a6b8: 0795 br 0xa5e2 // a5e2 + switch(RecData[7]) //风速 + a6ba: 740c zextb r0, r3 + a6bc: 106d lrw r3, 0x2000083c // a6f0 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a6be: 8342 ld.b r2, (r3, 0x2) + a6c0: 310e movi r1, 14 + switch(RecData[7]) //风速 + a6c2: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a6c4: 6885 andn r2, r1 + switch(RecData[7]) //风速 + a6c6: 0807 bt 0xa6d4 // a6d4 + a6c8: e3ffc71a bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a6cc: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + a6d0: 3aa1 bseti r2, 1 + a6d2: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + a6d4: a342 st.b r2, (r3, 0x2) + a6d6: 0786 br 0xa5e2 // a5e2 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + a6d8: 3aa2 bseti r2, 2 + a6da: 07fd br 0xa6d4 // a6d4 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + a6dc: 3aa1 bseti r2, 1 + a6de: 07fb br 0xa6d4 // a6d4 + return 0x02; + a6e0: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + a6e2: 1493 pop r4-r6, r15 + return 0x03; + a6e4: 3003 movi r0, 3 + a6e6: 07fe br 0xa6e2 // a6e2 + return 0x01; + a6e8: 3001 movi r0, 1 + a6ea: 07fc br 0xa6e2 // a6e2 + a6ec: 20000524 .long 0x20000524 + a6f0: 2000083c .long 0x2000083c + a6f4: 0000cfed .long 0x0000cfed + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +0000a6f8 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + a6f8: 14d2 push r4-r5, r15 + a6fa: 6d43 mov r5, r0 + a6fc: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + a6fe: e3ffff25 bsr 0xa548 // a548 + a702: 3840 cmpnei r0, 0 + a704: 0803 bt 0xa70a // a70a + { + return ret = 1; + } + } + + return ret; + a706: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + a708: 0404 br 0xa710 // a710 + if (Len < 5){ //长度校验 + a70a: 3c04 cmphsi r4, 5 + a70c: 0803 bt 0xa712 // a712 + return ret = 1; + a70e: 3001 movi r0, 1 + a710: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + a712: 8540 ld.b r2, (r5, 0x0) + a714: 33ff movi r3, 255 + a716: 64ca cmpne r2, r3 + a718: 0c04 bf 0xa720 // a720 + a71a: 8561 ld.b r3, (r5, 0x1) + a71c: 3b48 cmpnei r3, 8 + a71e: 0bf8 bt 0xa70e // a70e + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + a720: 1125 lrw r1, 0xcffc // a7b4 + a722: 3000 movi r0, 0 + a724: e3ffdf8c bsr 0x663c // 663c + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + a728: 3c45 cmpnei r4, 5 + a72a: 0814 bt 0xa752 // a752 + a72c: 3104 movi r1, 4 + a72e: 6c17 mov r0, r5 + a730: e3fffd8c bsr 0xa248 // a248 + a734: 8564 ld.b r3, (r5, 0x4) + a736: 640e cmpne r3, r0 + a738: 0beb bt 0xa70e // a70e + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + a73a: 1160 lrw r3, 0x2000083c // a7b8 + a73c: 8542 ld.b r2, (r5, 0x2) + a73e: 8338 ld.b r1, (r3, 0x18) + a740: 6486 cmpne r1, r2 + a742: 0fe2 bf 0xa706 // a706 + a744: 833a ld.b r1, (r3, 0x1a) + a746: 3941 cmpnei r1, 1 + a748: 0bdf bt 0xa706 // a706 + TempCtrl.CardState = RecData[2]; + a74a: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + a74c: 3201 movi r2, 1 + a74e: a359 st.b r2, (r3, 0x19) + a750: 07db br 0xa706 // a706 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + a752: 3c09 cmphsi r4, 10 + a754: 0fdd bf 0xa70e // a70e + a756: 5c27 subi r1, r4, 2 + a758: 7445 zexth r1, r1 + a75a: 6114 addu r4, r5 + a75c: 6c17 mov r0, r5 + a75e: e3fffd57 bsr 0xa20c // a20c + a762: 5c63 subi r3, r4, 1 + a764: 8360 ld.b r3, (r3, 0x0) + a766: 2c01 subi r4, 2 + a768: 4368 lsli r3, r3, 8 + a76a: 8440 ld.b r2, (r4, 0x0) + a76c: 60c8 addu r3, r2 + a76e: 64c2 cmpne r0, r3 + a770: 0bcf bt 0xa70e // a70e + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + a772: 1072 lrw r3, 0x2000083c // a7b8 + a774: 8543 ld.b r2, (r5, 0x3) + a776: 8338 ld.b r1, (r3, 0x18) + a778: 6486 cmpne r1, r2 + a77a: 0c07 bf 0xa788 // a788 + a77c: 833a ld.b r1, (r3, 0x1a) + a77e: 3941 cmpnei r1, 1 + a780: 0804 bt 0xa788 // a788 + TempCtrl.CardState = RecData[3]; + a782: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + a784: 3201 movi r2, 1 + a786: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + a788: 8547 ld.b r2, (r5, 0x7) + a78a: 833b ld.b r1, (r3, 0x1b) + a78c: 6486 cmpne r1, r2 + a78e: 0c0d bf 0xa7a8 // a7a8 + TempCtrl.SceneNo = RecData[7]; + a790: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + a792: 104b lrw r2, 0x200000c0 // a7bc + a794: 9240 ld.w r2, (r2, 0x0) + a796: 4a28 lsri r1, r2, 8 + a798: a354 st.b r2, (r3, 0x14) + a79a: a335 st.b r1, (r3, 0x15) + a79c: 4a30 lsri r1, r2, 16 + a79e: 4a58 lsri r2, r2, 24 + a7a0: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + a7a2: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + a7a4: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + a7a6: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + a7a8: 835b ld.b r2, (r3, 0x1b) + a7aa: 1026 lrw r1, 0xd00e // a7c0 + a7ac: 3000 movi r0, 0 + a7ae: e3ffdf47 bsr 0x663c // 663c + a7b2: 07aa br 0xa706 // a706 + a7b4: 0000cffc .long 0x0000cffc + a7b8: 2000083c .long 0x2000083c + a7bc: 200000c0 .long 0x200000c0 + a7c0: 0000d00e .long 0x0000d00e + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +0000a7c4 : + a7c4: 1063 lrw r3, 0x20000058 // a7d0 + a7c6: 9340 ld.w r2, (r3, 0x0) + a7c8: 926b ld.w r3, (r2, 0x2c) + a7ca: 6c0c or r0, r3 + a7cc: b20b st.w r0, (r2, 0x2c) + a7ce: 783c jmp r15 + a7d0: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +0000a7d4 : + a7d4: 14c1 push r4 + a7d6: 1069 lrw r3, 0x20000058 // a7f8 + a7d8: 3840 cmpnei r0, 0 + a7da: 9380 ld.w r4, (r3, 0x0) + a7dc: 9400 ld.w r0, (r4, 0x0) + a7de: 0c0b bf 0xa7f4 // a7f4 + a7e0: 38a0 bseti r0, 0 + a7e2: b400 st.w r0, (r4, 0x0) + a7e4: 9360 ld.w r3, (r3, 0x0) + a7e6: 4248 lsli r2, r2, 8 + a7e8: 4122 lsli r1, r1, 2 + a7ea: 9300 ld.w r0, (r3, 0x0) + a7ec: 6c48 or r1, r2 + a7ee: 6c40 or r1, r0 + a7f0: b320 st.w r1, (r3, 0x0) + a7f2: 1481 pop r4 + a7f4: 3880 bclri r0, 0 + a7f6: 07f6 br 0xa7e2 // a7e2 + a7f8: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +0000a7fc : + a7fc: 14c4 push r4-r7 + a7fe: 1429 subi r14, r14, 36 + a800: b840 st.w r2, (r14, 0x0) + a802: 984d ld.w r2, (r14, 0x34) + a804: b841 st.w r2, (r14, 0x4) + a806: 984e ld.w r2, (r14, 0x38) + a808: b842 st.w r2, (r14, 0x8) + a80a: 984f ld.w r2, (r14, 0x3c) + a80c: b843 st.w r2, (r14, 0xc) + a80e: 9850 ld.w r2, (r14, 0x40) + a810: 9895 ld.w r4, (r14, 0x54) + a812: b844 st.w r2, (r14, 0x10) + a814: 9853 ld.w r2, (r14, 0x4c) + a816: b845 st.w r2, (r14, 0x14) + a818: b887 st.w r4, (r14, 0x1c) + a81a: 9854 ld.w r2, (r14, 0x50) + a81c: 1c11 addi r4, r14, 68 + a81e: b846 st.w r2, (r14, 0x18) + a820: 8c80 ld.h r4, (r4, 0x0) + a822: 1a15 addi r2, r14, 84 + a824: 1d12 addi r5, r14, 72 + a826: 8244 ld.b r2, (r2, 0x4) + a828: 3c40 cmpnei r4, 0 + a82a: 8dc0 ld.h r6, (r5, 0x0) + a82c: b848 st.w r2, (r14, 0x20) + a82e: 0813 bt 0xa854 // a854 + a830: 105f lrw r2, 0x2000004c // a8ac + a832: 35f0 movi r5, 240 + a834: 92e0 ld.w r7, (r2, 0x0) + a836: 9740 ld.w r2, (r7, 0x0) + a838: 45a4 lsli r5, r5, 4 + a83a: 6895 andn r2, r5 + a83c: 3aab bseti r2, 11 + a83e: b740 st.w r2, (r7, 0x0) + a840: 3502 movi r5, 2 + a842: 105c lrw r2, 0x20000050 // a8b0 + a844: 3e41 cmpnei r6, 1 + a846: 9240 ld.w r2, (r2, 0x0) + a848: b2a0 st.w r5, (r2, 0x0) + a84a: 0828 bt 0xa89a // a89a + a84c: 92a4 ld.w r5, (r2, 0x10) + a84e: 3db8 bseti r5, 24 + a850: 3db9 bseti r5, 25 + a852: b2a4 st.w r5, (r2, 0x10) + a854: 1058 lrw r2, 0x20000058 // a8b4 + a856: 448d lsli r4, r4, 13 + a858: 92a0 ld.w r5, (r2, 0x0) + a85a: 9541 ld.w r2, (r5, 0x4) + a85c: 3200 movi r2, 0 + a85e: b541 st.w r2, (r5, 0x4) + a860: 9541 ld.w r2, (r5, 0x4) + a862: 98c7 ld.w r6, (r14, 0x1c) + a864: 6c98 or r2, r6 + a866: 98c6 ld.w r6, (r14, 0x18) + a868: 6c98 or r2, r6 + a86a: 98c5 ld.w r6, (r14, 0x14) + a86c: 6c98 or r2, r6 + a86e: 98c8 ld.w r6, (r14, 0x20) + a870: 46d8 lsli r6, r6, 24 + a872: 6c98 or r2, r6 + a874: 98c4 ld.w r6, (r14, 0x10) + a876: 6c98 or r2, r6 + a878: 98c3 ld.w r6, (r14, 0xc) + a87a: 6c98 or r2, r6 + a87c: 98c2 ld.w r6, (r14, 0x8) + a87e: 6c98 or r2, r6 + a880: 98c1 ld.w r6, (r14, 0x4) + a882: 6c98 or r2, r6 + a884: 6c48 or r1, r2 + a886: 9840 ld.w r2, (r14, 0x0) + a888: 6c04 or r0, r1 + a88a: 4242 lsli r2, r2, 2 + a88c: 6c08 or r0, r2 + a88e: 6d00 or r4, r0 + a890: 4367 lsli r3, r3, 7 + a892: 6cd0 or r3, r4 + a894: b561 st.w r3, (r5, 0x4) + a896: 1409 addi r14, r14, 36 + a898: 1484 pop r4-r7 + a89a: 3e40 cmpnei r6, 0 + a89c: 0bdc bt 0xa854 // a854 + a89e: 9264 ld.w r3, (r2, 0x10) + a8a0: 3b98 bclri r3, 24 + a8a2: 3b99 bclri r3, 25 + a8a4: 3bb8 bseti r3, 24 + a8a6: b264 st.w r3, (r2, 0x10) + a8a8: 3300 movi r3, 0 + a8aa: 07d5 br 0xa854 // a854 + a8ac: 2000004c .long 0x2000004c + a8b0: 20000050 .long 0x20000050 + a8b4: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_io_enable: + +0000a8b8 : + a8b8: 14d4 push r4-r7, r15 + a8ba: 1422 subi r14, r14, 8 + a8bc: 1269 lrw r3, 0x2000004c // a9e0 + a8be: 31f0 movi r1, 240 + a8c0: 9360 ld.w r3, (r3, 0x0) + a8c2: 9340 ld.w r2, (r3, 0x0) + a8c4: 4130 lsli r1, r1, 16 + a8c6: 6885 andn r2, r1 + a8c8: 3ab4 bseti r2, 20 + a8ca: 3ab7 bseti r2, 23 + a8cc: b340 st.w r2, (r3, 0x0) + a8ce: 35f0 movi r5, 240 + a8d0: 1245 lrw r2, 0x20000268 // a9e4 + a8d2: 36f0 movi r6, 240 + a8d4: 9240 ld.w r2, (r2, 0x0) + a8d6: b841 st.w r2, (r14, 0x4) + a8d8: 3400 movi r4, 0 + a8da: 1244 lrw r2, 0x20000048 // a9e8 + a8dc: 45ac lsli r5, r5, 12 + a8de: 9240 ld.w r2, (r2, 0x0) + a8e0: b820 st.w r1, (r14, 0x0) + a8e2: 46c8 lsli r6, r6, 8 + a8e4: 3701 movi r7, 1 + a8e6: 71d0 lsl r7, r4 + a8e8: 9821 ld.w r1, (r14, 0x4) + a8ea: 69c4 and r7, r1 + a8ec: 3f40 cmpnei r7, 0 + a8ee: 7410 zextb r0, r4 + a8f0: 0c1b bf 0xa926 // a926 + a8f2: 2800 subi r0, 1 + a8f4: 380f cmphsi r0, 16 + a8f6: 080b bt 0xa90c // a90c + a8f8: e3ffc602 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + a8fc: 27201a0f .long 0x27201a0f + a900: 3d38312c .long 0x3d38312c + a904: 56514a44 .long 0x56514a44 + a908: 6c67615b .long 0x6c67615b + a90c: 9200 ld.w r0, (r2, 0x0) + a90e: 37f0 movi r7, 240 + a910: 681d andn r0, r7 + a912: 38a4 bseti r0, 4 + a914: 38a7 bseti r0, 7 + a916: b200 st.w r0, (r2, 0x0) + a918: 0407 br 0xa926 // a926 + a91a: 9300 ld.w r0, (r3, 0x0) + a91c: 370f movi r7, 15 + a91e: 681d andn r0, r7 + a920: 38a0 bseti r0, 0 + a922: 38a3 bseti r0, 3 + a924: b300 st.w r0, (r3, 0x0) + a926: 2400 addi r4, 1 + a928: 3c51 cmpnei r4, 17 + a92a: 0bdd bt 0xa8e4 // a8e4 + a92c: 1402 addi r14, r14, 8 + a92e: 1494 pop r4-r7, r15 + a930: 9300 ld.w r0, (r3, 0x0) + a932: 37f0 movi r7, 240 + a934: 681d andn r0, r7 + a936: 38a4 bseti r0, 4 + a938: 38a7 bseti r0, 7 + a93a: 07f5 br 0xa924 // a924 + a93c: 37f0 movi r7, 240 + a93e: 9300 ld.w r0, (r3, 0x0) + a940: 47e4 lsli r7, r7, 4 + a942: 681d andn r0, r7 + a944: 38a8 bseti r0, 8 + a946: 38ab bseti r0, 11 + a948: 07ee br 0xa924 // a924 + a94a: 9300 ld.w r0, (r3, 0x0) + a94c: 6819 andn r0, r6 + a94e: 38ac bseti r0, 12 + a950: 38af bseti r0, 15 + a952: 07e9 br 0xa924 // a924 + a954: 9300 ld.w r0, (r3, 0x0) + a956: 6815 andn r0, r5 + a958: 38b0 bseti r0, 16 + a95a: 38b3 bseti r0, 19 + a95c: 07e4 br 0xa924 // a924 + a95e: 37f0 movi r7, 240 + a960: 9200 ld.w r0, (r2, 0x0) + a962: 47e4 lsli r7, r7, 4 + a964: 681d andn r0, r7 + a966: 38a8 bseti r0, 8 + a968: 38ab bseti r0, 11 + a96a: 07d6 br 0xa916 // a916 + a96c: 9200 ld.w r0, (r2, 0x0) + a96e: 6819 andn r0, r6 + a970: 38ac bseti r0, 12 + a972: 38af bseti r0, 15 + a974: 07d1 br 0xa916 // a916 + a976: 9301 ld.w r0, (r3, 0x4) + a978: 370f movi r7, 15 + a97a: 681d andn r0, r7 + a97c: 38a0 bseti r0, 0 + a97e: 38a3 bseti r0, 3 + a980: b301 st.w r0, (r3, 0x4) + a982: 07d2 br 0xa926 // a926 + a984: 9301 ld.w r0, (r3, 0x4) + a986: 37f0 movi r7, 240 + a988: 681d andn r0, r7 + a98a: 38a4 bseti r0, 4 + a98c: 38a7 bseti r0, 7 + a98e: 07f9 br 0xa980 // a980 + a990: 37f0 movi r7, 240 + a992: 9301 ld.w r0, (r3, 0x4) + a994: 47e4 lsli r7, r7, 4 + a996: 681d andn r0, r7 + a998: 38a8 bseti r0, 8 + a99a: 38ab bseti r0, 11 + a99c: 07f2 br 0xa980 // a980 + a99e: 9301 ld.w r0, (r3, 0x4) + a9a0: 6819 andn r0, r6 + a9a2: 38ac bseti r0, 12 + a9a4: 38af bseti r0, 15 + a9a6: 07ed br 0xa980 // a980 + a9a8: 9301 ld.w r0, (r3, 0x4) + a9aa: 6815 andn r0, r5 + a9ac: 38b0 bseti r0, 16 + a9ae: 38b3 bseti r0, 19 + a9b0: 07e8 br 0xa980 // a980 + a9b2: 9301 ld.w r0, (r3, 0x4) + a9b4: 9820 ld.w r1, (r14, 0x0) + a9b6: 6805 andn r0, r1 + a9b8: 38b4 bseti r0, 20 + a9ba: 38b7 bseti r0, 23 + a9bc: 07e2 br 0xa980 // a980 + a9be: 9200 ld.w r0, (r2, 0x0) + a9c0: 370f movi r7, 15 + a9c2: 681d andn r0, r7 + a9c4: 38a0 bseti r0, 0 + a9c6: 38a3 bseti r0, 3 + a9c8: 07a7 br 0xa916 // a916 + a9ca: 9200 ld.w r0, (r2, 0x0) + a9cc: 6815 andn r0, r5 + a9ce: 38b0 bseti r0, 16 + a9d0: 38b3 bseti r0, 19 + a9d2: 07a2 br 0xa916 // a916 + a9d4: 9200 ld.w r0, (r2, 0x0) + a9d6: 9820 ld.w r1, (r14, 0x0) + a9d8: 6805 andn r0, r1 + a9da: 38b4 bseti r0, 20 + a9dc: 38b7 bseti r0, 23 + a9de: 079c br 0xa916 // a916 + a9e0: 2000004c .long 0x2000004c + a9e4: 20000268 .long 0x20000268 + a9e8: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Single_Longpress_prg: + +0000a9ec : + a9ec: 14c2 push r4-r5 + a9ee: 117d lrw r3, 0x20000a28 // aae0 + a9f0: 115d lrw r2, 0x20000994 // aae4 + a9f2: 9360 ld.w r3, (r3, 0x0) + a9f4: 3b40 cmpnei r3, 0 + a9f6: 0840 bt 0xaa76 // aa76 + a9f8: 113c lrw r1, 0x20000070 // aae8 + a9fa: 8962 ld.h r3, (r1, 0x4) + a9fc: 74cd zexth r3, r3 + a9fe: 3b40 cmpnei r3, 0 + aa00: 0c3b bf 0xaa76 // aa76 + aa02: 117b lrw r3, 0x20000928 // aaec + aa04: 9360 ld.w r3, (r3, 0x0) + aa06: 3b40 cmpnei r3, 0 + aa08: 117a lrw r3, 0x20000ade // aaf0 + aa0a: 0c0e bf 0xaa26 // aa26 + aa0c: 8300 ld.b r0, (r3, 0x0) + aa0e: 2000 addi r0, 1 + aa10: 7400 zextb r0, r0 + aa12: a300 st.b r0, (r3, 0x0) + aa14: 8380 ld.b r4, (r3, 0x0) + aa16: 8902 ld.h r0, (r1, 0x4) + aa18: 7401 zexth r0, r0 + aa1a: 3564 movi r5, 100 + aa1c: 7c14 mult r0, r5 + aa1e: 6501 cmplt r0, r4 + aa20: 0c05 bf 0xaa2a // aa2a + aa22: 3001 movi r0, 1 + aa24: a200 st.b r0, (r2, 0x0) + aa26: 3000 movi r0, 0 + aa28: a300 st.b r0, (r3, 0x0) + aa2a: 1113 lrw r0, 0x200008bc // aaf4 + aa2c: 9000 ld.w r0, (r0, 0x0) + aa2e: 3840 cmpnei r0, 0 + aa30: 0c0e bf 0xaa4c // aa4c + aa32: 8301 ld.b r0, (r3, 0x1) + aa34: 2000 addi r0, 1 + aa36: 7400 zextb r0, r0 + aa38: a301 st.b r0, (r3, 0x1) + aa3a: 8381 ld.b r4, (r3, 0x1) + aa3c: 8902 ld.h r0, (r1, 0x4) + aa3e: 7401 zexth r0, r0 + aa40: 3564 movi r5, 100 + aa42: 7c14 mult r0, r5 + aa44: 6501 cmplt r0, r4 + aa46: 0c05 bf 0xaa50 // aa50 + aa48: 3001 movi r0, 1 + aa4a: a201 st.b r0, (r2, 0x1) + aa4c: 3000 movi r0, 0 + aa4e: a301 st.b r0, (r3, 0x1) + aa50: 110a lrw r0, 0x200009a0 // aaf8 + aa52: 9000 ld.w r0, (r0, 0x0) + aa54: 3840 cmpnei r0, 0 + aa56: 0c0e bf 0xaa72 // aa72 + aa58: 8302 ld.b r0, (r3, 0x2) + aa5a: 2000 addi r0, 1 + aa5c: 7400 zextb r0, r0 + aa5e: a302 st.b r0, (r3, 0x2) + aa60: 8302 ld.b r0, (r3, 0x2) + aa62: 8922 ld.h r1, (r1, 0x4) + aa64: 7445 zexth r1, r1 + aa66: 3464 movi r4, 100 + aa68: 7c50 mult r1, r4 + aa6a: 6405 cmplt r1, r0 + aa6c: 0c05 bf 0xaa76 // aa76 + aa6e: 3101 movi r1, 1 + aa70: a222 st.b r1, (r2, 0x2) + aa72: 3100 movi r1, 0 + aa74: a322 st.b r1, (r3, 0x2) + aa76: 8260 ld.b r3, (r2, 0x0) + aa78: 3b41 cmpnei r3, 1 + aa7a: 080f bt 0xaa98 // aa98 + aa7c: 3300 movi r3, 0 + aa7e: 11a0 lrw r5, 0x20000bda // aafc + aa80: 1180 lrw r4, 0x20000888 // ab00 + aa82: 4321 lsli r1, r3, 1 + aa84: 5d04 addu r0, r5, r1 + aa86: 8800 ld.h r0, (r0, 0x0) + aa88: 2300 addi r3, 1 + aa8a: 7401 zexth r0, r0 + aa8c: 6050 addu r1, r4 + aa8e: 3b51 cmpnei r3, 17 + aa90: a900 st.h r0, (r1, 0x0) + aa92: 0bf8 bt 0xaa82 // aa82 + aa94: 3300 movi r3, 0 + aa96: a260 st.b r3, (r2, 0x0) + aa98: 8261 ld.b r3, (r2, 0x1) + aa9a: 3b41 cmpnei r3, 1 + aa9c: 080f bt 0xaaba // aaba + aa9e: 3300 movi r3, 0 + aaa0: 10b9 lrw r5, 0x20000970 // ab04 + aaa2: 109a lrw r4, 0x20000a32 // ab08 + aaa4: 4321 lsli r1, r3, 1 + aaa6: 5d04 addu r0, r5, r1 + aaa8: 8800 ld.h r0, (r0, 0x0) + aaaa: 2300 addi r3, 1 + aaac: 7401 zexth r0, r0 + aaae: 6050 addu r1, r4 + aab0: 3b51 cmpnei r3, 17 + aab2: a900 st.h r0, (r1, 0x0) + aab4: 0bf8 bt 0xaaa4 // aaa4 + aab6: 3300 movi r3, 0 + aab8: a261 st.b r3, (r2, 0x1) + aaba: 8262 ld.b r3, (r2, 0x2) + aabc: 3b41 cmpnei r3, 1 + aabe: 080f bt 0xaadc // aadc + aac0: 3300 movi r3, 0 + aac2: 10b3 lrw r5, 0x20000a66 // ab0c + aac4: 1093 lrw r4, 0x20000b48 // ab10 + aac6: 4321 lsli r1, r3, 1 + aac8: 5d04 addu r0, r5, r1 + aaca: 8800 ld.h r0, (r0, 0x0) + aacc: 2300 addi r3, 1 + aace: 7401 zexth r0, r0 + aad0: 6050 addu r1, r4 + aad2: 3b51 cmpnei r3, 17 + aad4: a900 st.h r0, (r1, 0x0) + aad6: 0bf8 bt 0xaac6 // aac6 + aad8: 3300 movi r3, 0 + aada: a262 st.b r3, (r2, 0x2) + aadc: 1482 pop r4-r5 + aade: 0000 bkpt + aae0: 20000a28 .long 0x20000a28 + aae4: 20000994 .long 0x20000994 + aae8: 20000070 .long 0x20000070 + aaec: 20000928 .long 0x20000928 + aaf0: 20000ade .long 0x20000ade + aaf4: 200008bc .long 0x200008bc + aaf8: 200009a0 .long 0x200009a0 + aafc: 20000bda .long 0x20000bda + ab00: 20000888 .long 0x20000888 + ab04: 20000970 .long 0x20000970 + ab08: 20000a32 .long 0x20000a32 + ab0c: 20000a66 .long 0x20000a66 + ab10: 20000b48 .long 0x20000b48 + +Disassembly of section .text.TK_Sampling_prog: + +0000ab14 : + ab14: 14c4 push r4-r7 + ab16: 1423 subi r14, r14, 12 + ab18: 1169 lrw r3, 0x20000054 // abbc + ab1a: 114a lrw r2, 0x20000b45 // abc0 + ab1c: 6d0b mov r4, r2 + ab1e: 9320 ld.w r1, (r3, 0x0) + ab20: b840 st.w r2, (r14, 0x0) + ab22: 3300 movi r3, 0 + ab24: 11a8 lrw r5, 0x20000bda // abc4 + ab26: 9840 ld.w r2, (r14, 0x0) + ab28: 8240 ld.b r2, (r2, 0x0) + ab2a: 3a41 cmpnei r2, 1 + ab2c: 0808 bt 0xab3c // ab3c + ab2e: 4342 lsli r2, r3, 2 + ab30: 6084 addu r2, r1 + ab32: 9200 ld.w r0, (r2, 0x0) + ab34: 4341 lsli r2, r3, 1 + ab36: 7401 zexth r0, r0 + ab38: 6094 addu r2, r5 + ab3a: aa00 st.h r0, (r2, 0x0) + ab3c: 8440 ld.b r2, (r4, 0x0) + ab3e: 3a42 cmpnei r2, 2 + ab40: 0809 bt 0xab52 // ab52 + ab42: 4342 lsli r2, r3, 2 + ab44: 6084 addu r2, r1 + ab46: 9200 ld.w r0, (r2, 0x0) + ab48: 4341 lsli r2, r3, 1 + ab4a: 11c0 lrw r6, 0x20000970 // abc8 + ab4c: 7401 zexth r0, r0 + ab4e: 6098 addu r2, r6 + ab50: aa00 st.h r0, (r2, 0x0) + ab52: 8440 ld.b r2, (r4, 0x0) + ab54: 3a40 cmpnei r2, 0 + ab56: 0809 bt 0xab68 // ab68 + ab58: 4342 lsli r2, r3, 2 + ab5a: 6084 addu r2, r1 + ab5c: 9200 ld.w r0, (r2, 0x0) + ab5e: 4341 lsli r2, r3, 1 + ab60: 10db lrw r6, 0x20000a66 // abcc + ab62: 7401 zexth r0, r0 + ab64: 6098 addu r2, r6 + ab66: aa00 st.h r0, (r2, 0x0) + ab68: 10da lrw r6, 0x200009cd // abd0 + ab6a: 8640 ld.b r2, (r6, 0x0) + ab6c: 3a41 cmpnei r2, 1 + ab6e: 0821 bt 0xabb0 // abb0 + ab70: 1079 lrw r3, 0x20000888 // abd4 + ab72: 3200 movi r2, 0 + ab74: b861 st.w r3, (r14, 0x4) + ab76: 1075 lrw r3, 0x20000970 // abc8 + ab78: b862 st.w r3, (r14, 0x8) + ab7a: 4261 lsli r3, r2, 1 + ab7c: 5d0c addu r0, r5, r3 + ab7e: 8800 ld.h r0, (r0, 0x0) + ab80: 98e1 ld.w r7, (r14, 0x4) + ab82: 61cc addu r7, r3 + ab84: 7401 zexth r0, r0 + ab86: af00 st.h r0, (r7, 0x0) + ab88: 9802 ld.w r0, (r14, 0x8) + ab8a: 600c addu r0, r3 + ab8c: 8800 ld.h r0, (r0, 0x0) + ab8e: 10f3 lrw r7, 0x20000a32 // abd8 + ab90: 61cc addu r7, r3 + ab92: 7401 zexth r0, r0 + ab94: af00 st.h r0, (r7, 0x0) + ab96: 2200 addi r2, 1 + ab98: 100d lrw r0, 0x20000a66 // abcc + ab9a: 600c addu r0, r3 + ab9c: 8800 ld.h r0, (r0, 0x0) + ab9e: 10f0 lrw r7, 0x20000b48 // abdc + aba0: 7401 zexth r0, r0 + aba2: 60dc addu r3, r7 + aba4: 3a51 cmpnei r2, 17 + aba6: ab00 st.h r0, (r3, 0x0) + aba8: 0be9 bt 0xab7a // ab7a + abaa: 3300 movi r3, 0 + abac: a660 st.b r3, (r6, 0x0) + abae: 3311 movi r3, 17 + abb0: 2300 addi r3, 1 + abb2: 74cc zextb r3, r3 + abb4: 3b10 cmphsi r3, 17 + abb6: 0fb8 bf 0xab26 // ab26 + abb8: 1403 addi r14, r14, 12 + abba: 1484 pop r4-r7 + abbc: 20000054 .long 0x20000054 + abc0: 20000b45 .long 0x20000b45 + abc4: 20000bda .long 0x20000bda + abc8: 20000970 .long 0x20000970 + abcc: 20000a66 .long 0x20000a66 + abd0: 200009cd .long 0x200009cd + abd4: 20000888 .long 0x20000888 + abd8: 20000a32 .long 0x20000a32 + abdc: 20000b48 .long 0x20000b48 + +Disassembly of section .text.get_key_number: + +0000abe0 : + abe0: 14c2 push r4-r5 + abe2: 3200 movi r2, 0 + abe4: 3000 movi r0, 0 + abe6: 1088 lrw r4, 0x20000a28 // ac04 + abe8: 3501 movi r5, 1 + abea: 3120 movi r1, 32 + abec: 9460 ld.w r3, (r4, 0x0) + abee: 70c9 lsr r3, r2 + abf0: 68d4 and r3, r5 + abf2: 3b40 cmpnei r3, 0 + abf4: 0c02 bf 0xabf8 // abf8 + abf6: 2000 addi r0, 1 + abf8: 2200 addi r2, 1 + abfa: 644a cmpne r2, r1 + abfc: 0bf8 bt 0xabec // abec + abfe: 7400 zextb r0, r0 + ac00: 1482 pop r4-r5 + ac02: 0000 bkpt + ac04: 20000a28 .long 0x20000a28 + +Disassembly of section .text.get_key_number0: + +0000ac08 : + ac08: 14c2 push r4-r5 + ac0a: 3200 movi r2, 0 + ac0c: 3000 movi r0, 0 + ac0e: 1088 lrw r4, 0x20000928 // ac2c + ac10: 3501 movi r5, 1 + ac12: 3120 movi r1, 32 + ac14: 9460 ld.w r3, (r4, 0x0) + ac16: 70c9 lsr r3, r2 + ac18: 68d4 and r3, r5 + ac1a: 3b40 cmpnei r3, 0 + ac1c: 0c02 bf 0xac20 // ac20 + ac1e: 2000 addi r0, 1 + ac20: 2200 addi r2, 1 + ac22: 644a cmpne r2, r1 + ac24: 0bf8 bt 0xac14 // ac14 + ac26: 7400 zextb r0, r0 + ac28: 1482 pop r4-r5 + ac2a: 0000 bkpt + ac2c: 20000928 .long 0x20000928 + +Disassembly of section .text.get_key_number1: + +0000ac30 : + ac30: 14c2 push r4-r5 + ac32: 3200 movi r2, 0 + ac34: 3000 movi r0, 0 + ac36: 1088 lrw r4, 0x200008bc // ac54 + ac38: 3501 movi r5, 1 + ac3a: 3120 movi r1, 32 + ac3c: 9460 ld.w r3, (r4, 0x0) + ac3e: 70c9 lsr r3, r2 + ac40: 68d4 and r3, r5 + ac42: 3b40 cmpnei r3, 0 + ac44: 0c02 bf 0xac48 // ac48 + ac46: 2000 addi r0, 1 + ac48: 2200 addi r2, 1 + ac4a: 644a cmpne r2, r1 + ac4c: 0bf8 bt 0xac3c // ac3c + ac4e: 7400 zextb r0, r0 + ac50: 1482 pop r4-r5 + ac52: 0000 bkpt + ac54: 200008bc .long 0x200008bc + +Disassembly of section .text.get_key_number2: + +0000ac58 : + ac58: 14c2 push r4-r5 + ac5a: 3200 movi r2, 0 + ac5c: 3000 movi r0, 0 + ac5e: 1088 lrw r4, 0x200009a0 // ac7c + ac60: 3501 movi r5, 1 + ac62: 3120 movi r1, 32 + ac64: 9460 ld.w r3, (r4, 0x0) + ac66: 70c9 lsr r3, r2 + ac68: 68d4 and r3, r5 + ac6a: 3b40 cmpnei r3, 0 + ac6c: 0c02 bf 0xac70 // ac70 + ac6e: 2000 addi r0, 1 + ac70: 2200 addi r2, 1 + ac72: 644a cmpne r2, r1 + ac74: 0bf8 bt 0xac64 // ac64 + ac76: 7400 zextb r0, r0 + ac78: 1482 pop r4-r5 + ac7a: 0000 bkpt + ac7c: 200009a0 .long 0x200009a0 + +Disassembly of section .text.TK_Baseline_prog: + +0000ac80 : + ac80: 14c4 push r4-r7 + ac82: 142a subi r14, r14, 40 + ac84: 1264 lrw r3, 0x2000099c // ad94 + ac86: 1245 lrw r2, 0x20000b45 // ad98 + ac88: 6c0b mov r0, r2 + ac8a: 9360 ld.w r3, (r3, 0x0) + ac8c: b865 st.w r3, (r14, 0x14) + ac8e: 1264 lrw r3, 0x2000096c // ad9c + ac90: 9360 ld.w r3, (r3, 0x0) + ac92: b864 st.w r3, (r14, 0x10) + ac94: 1263 lrw r3, 0x20000bfc // ada0 + ac96: 9360 ld.w r3, (r3, 0x0) + ac98: b863 st.w r3, (r14, 0xc) + ac9a: 1263 lrw r3, 0x20000058 // ada4 + ac9c: 9360 ld.w r3, (r3, 0x0) + ac9e: b866 st.w r3, (r14, 0x18) + aca0: 1262 lrw r3, 0x20000054 // ada8 + aca2: 9360 ld.w r3, (r3, 0x0) + aca4: b860 st.w r3, (r14, 0x0) + aca6: 3306 movi r3, 6 + aca8: b861 st.w r3, (r14, 0x4) + acaa: 1261 lrw r3, 0x20000070 // adac + acac: b862 st.w r3, (r14, 0x8) + acae: 3103 movi r1, 3 + acb0: 8260 ld.b r3, (r2, 0x0) + acb2: 74cc zextb r3, r3 + acb4: 3b41 cmpnei r3, 1 + acb6: 0c66 bf 0xad82 // ad82 + acb8: 3b40 cmpnei r3, 0 + acba: 0c5c bf 0xad72 // ad72 + acbc: 3b42 cmpnei r3, 2 + acbe: 0c65 bf 0xad88 // ad88 + acc0: 3301 movi r3, 1 + acc2: 9886 ld.w r4, (r14, 0x18) + acc4: b462 st.w r3, (r4, 0x8) + acc6: 9862 ld.w r3, (r14, 0x8) + acc8: 3400 movi r4, 0 + acca: a380 st.b r4, (r3, 0x0) + accc: 9862 ld.w r3, (r14, 0x8) + acce: 8360 ld.b r3, (r3, 0x0) + acd0: 3b40 cmpnei r3, 0 + acd2: 0ffd bf 0xaccc // accc + acd4: 6c03 mov r0, r0 + acd6: 1197 lrw r4, 0x20000888 // adb0 + acd8: 3300 movi r3, 0 + acda: b887 st.w r4, (r14, 0x1c) + acdc: 1196 lrw r4, 0x20000bda // adb4 + acde: b888 st.w r4, (r14, 0x20) + ace0: 1196 lrw r4, 0x20000a32 // adb8 + ace2: b889 st.w r4, (r14, 0x24) + ace4: 8080 ld.b r4, (r0, 0x0) + ace6: 3c41 cmpnei r4, 1 + ace8: 080f bt 0xad06 // ad06 + acea: 9880 ld.w r4, (r14, 0x0) + acec: 43a2 lsli r5, r3, 2 + acee: 6150 addu r5, r4 + acf0: 95c0 ld.w r6, (r5, 0x0) + acf2: 4381 lsli r4, r3, 1 + acf4: 98e7 ld.w r7, (r14, 0x1c) + acf6: 7599 zexth r6, r6 + acf8: 61d0 addu r7, r4 + acfa: afc0 st.h r6, (r7, 0x0) + acfc: 95a0 ld.w r5, (r5, 0x0) + acfe: 98c8 ld.w r6, (r14, 0x20) + ad00: 7555 zexth r5, r5 + ad02: 6118 addu r4, r6 + ad04: aca0 st.h r5, (r4, 0x0) + ad06: 8080 ld.b r4, (r0, 0x0) + ad08: 3c42 cmpnei r4, 2 + ad0a: 080f bt 0xad28 // ad28 + ad0c: 9880 ld.w r4, (r14, 0x0) + ad0e: 43a2 lsli r5, r3, 2 + ad10: 6150 addu r5, r4 + ad12: 95c0 ld.w r6, (r5, 0x0) + ad14: 4381 lsli r4, r3, 1 + ad16: 98e9 ld.w r7, (r14, 0x24) + ad18: 7599 zexth r6, r6 + ad1a: 61d0 addu r7, r4 + ad1c: afc0 st.h r6, (r7, 0x0) + ad1e: 95a0 ld.w r5, (r5, 0x0) + ad20: 7555 zexth r5, r5 + ad22: 11c7 lrw r6, 0x20000970 // adbc + ad24: 6118 addu r4, r6 + ad26: aca0 st.h r5, (r4, 0x0) + ad28: 8080 ld.b r4, (r0, 0x0) + ad2a: 3c40 cmpnei r4, 0 + ad2c: 080f bt 0xad4a // ad4a + ad2e: 9880 ld.w r4, (r14, 0x0) + ad30: 43a2 lsli r5, r3, 2 + ad32: 6150 addu r5, r4 + ad34: 95c0 ld.w r6, (r5, 0x0) + ad36: 4381 lsli r4, r3, 1 + ad38: 11e2 lrw r7, 0x20000b48 // adc0 + ad3a: 7599 zexth r6, r6 + ad3c: 61d0 addu r7, r4 + ad3e: afc0 st.h r6, (r7, 0x0) + ad40: 95a0 ld.w r5, (r5, 0x0) + ad42: 7555 zexth r5, r5 + ad44: 11c0 lrw r6, 0x20000a66 // adc4 + ad46: 6118 addu r4, r6 + ad48: aca0 st.h r5, (r4, 0x0) + ad4a: 2300 addi r3, 1 + ad4c: 3b51 cmpnei r3, 17 + ad4e: 0bcb bt 0xace4 // ace4 + ad50: 2900 subi r1, 1 + ad52: 7444 zextb r1, r1 + ad54: 3940 cmpnei r1, 0 + ad56: 0bad bt 0xacb0 // acb0 + ad58: 9861 ld.w r3, (r14, 0x4) + ad5a: 2b00 subi r3, 1 + ad5c: 74cc zextb r3, r3 + ad5e: 3b40 cmpnei r3, 0 + ad60: b861 st.w r3, (r14, 0x4) + ad62: 0ba6 bt 0xacae // acae + ad64: 1079 lrw r3, 0x20000934 // adc8 + ad66: 3201 movi r2, 1 + ad68: a340 st.b r2, (r3, 0x0) + ad6a: 3300 movi r3, 0 + ad6c: a060 st.b r3, (r0, 0x0) + ad6e: 140a addi r14, r14, 40 + ad70: 1484 pop r4-r7 + ad72: 1077 lrw r3, 0x40011200 // adcc + ad74: 9883 ld.w r4, (r14, 0xc) + ad76: b390 st.w r4, (r3, 0x40) + ad78: 8260 ld.b r3, (r2, 0x0) + ad7a: 2300 addi r3, 1 + ad7c: 74cc zextb r3, r3 + ad7e: a260 st.b r3, (r2, 0x0) + ad80: 07a0 br 0xacc0 // acc0 + ad82: 1073 lrw r3, 0x40011200 // adcc + ad84: 9884 ld.w r4, (r14, 0x10) + ad86: 07f8 br 0xad76 // ad76 + ad88: 1071 lrw r3, 0x40011200 // adcc + ad8a: 9885 ld.w r4, (r14, 0x14) + ad8c: b390 st.w r4, (r3, 0x40) + ad8e: 3300 movi r3, 0 + ad90: 07f7 br 0xad7e // ad7e + ad92: 0000 bkpt + ad94: 2000099c .long 0x2000099c + ad98: 20000b45 .long 0x20000b45 + ad9c: 2000096c .long 0x2000096c + ada0: 20000bfc .long 0x20000bfc + ada4: 20000058 .long 0x20000058 + ada8: 20000054 .long 0x20000054 + adac: 20000070 .long 0x20000070 + adb0: 20000888 .long 0x20000888 + adb4: 20000bda .long 0x20000bda + adb8: 20000a32 .long 0x20000a32 + adbc: 20000970 .long 0x20000970 + adc0: 20000b48 .long 0x20000b48 + adc4: 20000a66 .long 0x20000a66 + adc8: 20000934 .long 0x20000934 + adcc: 40011200 .long 0x40011200 + +Disassembly of section .text.TK_Baseline_prog2: + +0000add0 : + add0: 14c4 push r4-r7 + add2: 142a subi r14, r14, 40 + add4: 1262 lrw r3, 0x20000934 // aedc + add6: 3200 movi r2, 0 + add8: a340 st.b r2, (r3, 0x0) + adda: b866 st.w r3, (r14, 0x18) + addc: 3103 movi r1, 3 + adde: 1241 lrw r2, 0x2000099c // aee0 + ade0: 1261 lrw r3, 0x20000070 // aee4 + ade2: 9240 ld.w r2, (r2, 0x0) + ade4: b844 st.w r2, (r14, 0x10) + ade6: b861 st.w r3, (r14, 0x4) + ade8: 1240 lrw r2, 0x2000096c // aee8 + adea: 9240 ld.w r2, (r2, 0x0) + adec: b843 st.w r2, (r14, 0xc) + adee: 1240 lrw r2, 0x20000bfc // aeec + adf0: 9240 ld.w r2, (r2, 0x0) + adf2: b842 st.w r2, (r14, 0x8) + adf4: 115f lrw r2, 0x20000058 // aef0 + adf6: 9240 ld.w r2, (r2, 0x0) + adf8: b845 st.w r2, (r14, 0x14) + adfa: 115f lrw r2, 0x20000054 // aef4 + adfc: 9240 ld.w r2, (r2, 0x0) + adfe: b840 st.w r2, (r14, 0x0) + ae00: 115e lrw r2, 0x20000b45 // aef8 + ae02: 6c0b mov r0, r2 + ae04: 8260 ld.b r3, (r2, 0x0) + ae06: 74cc zextb r3, r3 + ae08: 3b41 cmpnei r3, 1 + ae0a: 0c60 bf 0xaeca // aeca + ae0c: 3b40 cmpnei r3, 0 + ae0e: 0c56 bf 0xaeba // aeba + ae10: 3b42 cmpnei r3, 2 + ae12: 0c5f bf 0xaed0 // aed0 + ae14: 3301 movi r3, 1 + ae16: 9885 ld.w r4, (r14, 0x14) + ae18: b462 st.w r3, (r4, 0x8) + ae1a: 9861 ld.w r3, (r14, 0x4) + ae1c: 3400 movi r4, 0 + ae1e: a380 st.b r4, (r3, 0x0) + ae20: 9861 ld.w r3, (r14, 0x4) + ae22: 8360 ld.b r3, (r3, 0x0) + ae24: 3b40 cmpnei r3, 0 + ae26: 0ffd bf 0xae20 // ae20 + ae28: 6c03 mov r0, r0 + ae2a: 1195 lrw r4, 0x20000888 // aefc + ae2c: 3300 movi r3, 0 + ae2e: b887 st.w r4, (r14, 0x1c) + ae30: 1194 lrw r4, 0x20000bda // af00 + ae32: b888 st.w r4, (r14, 0x20) + ae34: 1194 lrw r4, 0x20000a32 // af04 + ae36: b889 st.w r4, (r14, 0x24) + ae38: 8080 ld.b r4, (r0, 0x0) + ae3a: 3c41 cmpnei r4, 1 + ae3c: 080f bt 0xae5a // ae5a + ae3e: 9880 ld.w r4, (r14, 0x0) + ae40: 43a2 lsli r5, r3, 2 + ae42: 6150 addu r5, r4 + ae44: 95c0 ld.w r6, (r5, 0x0) + ae46: 4381 lsli r4, r3, 1 + ae48: 98e7 ld.w r7, (r14, 0x1c) + ae4a: 7599 zexth r6, r6 + ae4c: 61d0 addu r7, r4 + ae4e: afc0 st.h r6, (r7, 0x0) + ae50: 95a0 ld.w r5, (r5, 0x0) + ae52: 98c8 ld.w r6, (r14, 0x20) + ae54: 7555 zexth r5, r5 + ae56: 6118 addu r4, r6 + ae58: aca0 st.h r5, (r4, 0x0) + ae5a: 8080 ld.b r4, (r0, 0x0) + ae5c: 3c42 cmpnei r4, 2 + ae5e: 080f bt 0xae7c // ae7c + ae60: 9880 ld.w r4, (r14, 0x0) + ae62: 43a2 lsli r5, r3, 2 + ae64: 6150 addu r5, r4 + ae66: 95c0 ld.w r6, (r5, 0x0) + ae68: 4381 lsli r4, r3, 1 + ae6a: 98e9 ld.w r7, (r14, 0x24) + ae6c: 7599 zexth r6, r6 + ae6e: 61d0 addu r7, r4 + ae70: afc0 st.h r6, (r7, 0x0) + ae72: 95a0 ld.w r5, (r5, 0x0) + ae74: 7555 zexth r5, r5 + ae76: 11c5 lrw r6, 0x20000970 // af08 + ae78: 6118 addu r4, r6 + ae7a: aca0 st.h r5, (r4, 0x0) + ae7c: 8080 ld.b r4, (r0, 0x0) + ae7e: 3c40 cmpnei r4, 0 + ae80: 080f bt 0xae9e // ae9e + ae82: 9880 ld.w r4, (r14, 0x0) + ae84: 43a2 lsli r5, r3, 2 + ae86: 6150 addu r5, r4 + ae88: 95c0 ld.w r6, (r5, 0x0) + ae8a: 4381 lsli r4, r3, 1 + ae8c: 11e0 lrw r7, 0x20000b48 // af0c + ae8e: 7599 zexth r6, r6 + ae90: 61d0 addu r7, r4 + ae92: afc0 st.h r6, (r7, 0x0) + ae94: 95a0 ld.w r5, (r5, 0x0) + ae96: 7555 zexth r5, r5 + ae98: 10de lrw r6, 0x20000a66 // af10 + ae9a: 6118 addu r4, r6 + ae9c: aca0 st.h r5, (r4, 0x0) + ae9e: 2300 addi r3, 1 + aea0: 3b51 cmpnei r3, 17 + aea2: 0bcb bt 0xae38 // ae38 + aea4: 2900 subi r1, 1 + aea6: 7444 zextb r1, r1 + aea8: 3940 cmpnei r1, 0 + aeaa: 0bad bt 0xae04 // ae04 + aeac: 9866 ld.w r3, (r14, 0x18) + aeae: 3201 movi r2, 1 + aeb0: a340 st.b r2, (r3, 0x0) + aeb2: 3300 movi r3, 0 + aeb4: a060 st.b r3, (r0, 0x0) + aeb6: 140a addi r14, r14, 40 + aeb8: 1484 pop r4-r7 + aeba: 1077 lrw r3, 0x40011200 // af14 + aebc: 9882 ld.w r4, (r14, 0x8) + aebe: b390 st.w r4, (r3, 0x40) + aec0: 8260 ld.b r3, (r2, 0x0) + aec2: 2300 addi r3, 1 + aec4: 74cc zextb r3, r3 + aec6: a260 st.b r3, (r2, 0x0) + aec8: 07a6 br 0xae14 // ae14 + aeca: 1073 lrw r3, 0x40011200 // af14 + aecc: 9883 ld.w r4, (r14, 0xc) + aece: 07f8 br 0xaebe // aebe + aed0: 1071 lrw r3, 0x40011200 // af14 + aed2: 9884 ld.w r4, (r14, 0x10) + aed4: b390 st.w r4, (r3, 0x40) + aed6: 3300 movi r3, 0 + aed8: 07f7 br 0xaec6 // aec6 + aeda: 0000 bkpt + aedc: 20000934 .long 0x20000934 + aee0: 2000099c .long 0x2000099c + aee4: 20000070 .long 0x20000070 + aee8: 2000096c .long 0x2000096c + aeec: 20000bfc .long 0x20000bfc + aef0: 20000058 .long 0x20000058 + aef4: 20000054 .long 0x20000054 + aef8: 20000b45 .long 0x20000b45 + aefc: 20000888 .long 0x20000888 + af00: 20000bda .long 0x20000bda + af04: 20000a32 .long 0x20000a32 + af08: 20000970 .long 0x20000970 + af0c: 20000b48 .long 0x20000b48 + af10: 20000a66 .long 0x20000a66 + af14: 40011200 .long 0x40011200 + +Disassembly of section .text.tk_poweron_data_fineturn: + +0000af18 : + af18: 14d4 push r4-r7, r15 + af1a: 1433 subi r14, r14, 76 + af1c: 117e lrw r3, 0x20000070 // b014 + af1e: 8366 ld.b r3, (r3, 0x6) + af20: 3b41 cmpnei r3, 1 + af22: 0877 bt 0xb010 // b010 + af24: 117d lrw r3, 0x20000bda // b018 + af26: b860 st.w r3, (r14, 0x0) + af28: 3300 movi r3, 0 + af2a: 301e movi r0, 30 + af2c: 4321 lsli r1, r3, 1 + af2e: 1a02 addi r2, r14, 8 + af30: 6048 addu r1, r2 + af32: 115b lrw r2, 0x2000026e // b01c + af34: 608c addu r2, r3 + af36: 8a40 ld.h r2, (r2, 0x0) + af38: 4245 lsli r2, r2, 5 + af3a: 6080 addu r2, r0 + af3c: b140 st.w r2, (r1, 0x0) + af3e: 2301 addi r3, 2 + af40: 3222 movi r2, 34 + af42: 648e cmpne r3, r2 + af44: 0bf4 bt 0xaf2c // af2c + af46: 1197 lrw r4, 0x20000242 // b020 + af48: 3200 movi r2, 0 + af4a: 3000 movi r0, 0 + af4c: b881 st.w r4, (r14, 0x4) + af4e: 11d6 lrw r6, 0x20000970 // b024 + af50: 4261 lsli r3, r2, 1 + af52: 98a0 ld.w r5, (r14, 0x0) + af54: 614c addu r5, r3 + af56: 8d20 ld.h r1, (r5, 0x0) + af58: 7445 zexth r1, r1 + af5a: 3940 cmpnei r1, 0 + af5c: 0c36 bf 0xafc8 // afc8 + af5e: 5e2c addu r1, r6, r3 + af60: 8920 ld.h r1, (r1, 0x0) + af62: 7445 zexth r1, r1 + af64: 3940 cmpnei r1, 0 + af66: 0c31 bf 0xafc8 // afc8 + af68: 1130 lrw r1, 0x20000a66 // b028 + af6a: 60c4 addu r3, r1 + af6c: 8b60 ld.h r3, (r3, 0x0) + af6e: 74cd zexth r3, r3 + af70: 3b40 cmpnei r3, 0 + af72: 0c2b bf 0xafc8 // afc8 + af74: 8d60 ld.h r3, (r5, 0x0) + af76: 1f02 addi r7, r14, 8 + af78: 42a2 lsli r5, r2, 2 + af7a: 615c addu r5, r7 + af7c: 74cd zexth r3, r3 + af7e: 95a0 ld.w r5, (r5, 0x0) + af80: 60d6 subu r3, r5 + af82: 3bdf btsti r3, 31 + af84: 0c03 bf 0xaf8a // af8a + af86: 3700 movi r7, 0 + af88: 5f6d subu r3, r7, r3 + af8a: 3b24 cmplti r3, 5 + af8c: 0817 bt 0xafba // afba + af8e: 4261 lsli r3, r2, 1 + af90: 60d8 addu r3, r6 + af92: 8b60 ld.h r3, (r3, 0x0) + af94: 74cd zexth r3, r3 + af96: 60d6 subu r3, r5 + af98: 3bdf btsti r3, 31 + af9a: 0c03 bf 0xafa0 // afa0 + af9c: 3700 movi r7, 0 + af9e: 5f6d subu r3, r7, r3 + afa0: 3b24 cmplti r3, 5 + afa2: 080c bt 0xafba // afba + afa4: 4261 lsli r3, r2, 1 + afa6: 604c addu r1, r3 + afa8: 8960 ld.h r3, (r1, 0x0) + afaa: 74cd zexth r3, r3 + afac: 60d6 subu r3, r5 + afae: 3bdf btsti r3, 31 + afb0: 0c03 bf 0xafb6 // afb6 + afb2: 3100 movi r1, 0 + afb4: 596d subu r3, r1, r3 + afb6: 3b24 cmplti r3, 5 + afb8: 0c08 bf 0xafc8 // afc8 + afba: 8c60 ld.h r3, (r4, 0x0) + afbc: 3b06 cmphsi r3, 7 + afbe: 0805 bt 0xafc8 // afc8 + afc0: 2300 addi r3, 1 + afc2: 2000 addi r0, 1 + afc4: ac60 st.h r3, (r4, 0x0) + afc6: 7400 zextb r0, r0 + afc8: 2200 addi r2, 1 + afca: 3a51 cmpnei r2, 17 + afcc: 2401 addi r4, 2 + afce: 0bc1 bt 0xaf50 // af50 + afd0: 3840 cmpnei r0, 0 + afd2: 0c1f bf 0xb010 // b010 + afd4: 1076 lrw r3, 0x20000058 // b02c + afd6: 3200 movi r2, 0 + afd8: 9360 ld.w r3, (r3, 0x0) + afda: b342 st.w r2, (r3, 0x8) + afdc: 10b5 lrw r5, 0x20000b34 // b030 + afde: 1076 lrw r3, 0x20000054 // b034 + afe0: 1016 lrw r0, 0x20000ae4 // b038 + afe2: 9380 ld.w r4, (r3, 0x0) + afe4: 3300 movi r3, 0 + afe6: 8040 ld.b r2, (r0, 0x0) + afe8: 648c cmphs r3, r2 + afea: 0c04 bf 0xaff2 // aff2 + afec: e3fffef2 bsr 0xadd0 // add0 + aff0: 079c br 0xaf28 // af28 + aff2: 5d4c addu r2, r5, r3 + aff4: 8240 ld.b r2, (r2, 0x0) + aff6: 4241 lsli r2, r2, 1 + aff8: 98e1 ld.w r7, (r14, 0x4) + affa: 4322 lsli r1, r3, 2 + affc: 609c addu r2, r7 + affe: 6050 addu r1, r4 + b000: 8a40 ld.h r2, (r2, 0x0) + b002: 91d2 ld.w r6, (r1, 0x48) + b004: 4254 lsli r2, r2, 20 + b006: 6c98 or r2, r6 + b008: 2300 addi r3, 1 + b00a: b152 st.w r2, (r1, 0x48) + b00c: 74cc zextb r3, r3 + b00e: 07ec br 0xafe6 // afe6 + b010: 1413 addi r14, r14, 76 + b012: 1494 pop r4-r7, r15 + b014: 20000070 .long 0x20000070 + b018: 20000bda .long 0x20000bda + b01c: 2000026e .long 0x2000026e + b020: 20000242 .long 0x20000242 + b024: 20000970 .long 0x20000970 + b028: 20000a66 .long 0x20000a66 + b02c: 20000058 .long 0x20000058 + b030: 20000b34 .long 0x20000b34 + b034: 20000054 .long 0x20000054 + b038: 20000ae4 .long 0x20000ae4 + +Disassembly of section .text.TK_Scan_Start: + +0000b03c : + b03c: 1073 lrw r3, 0x20000070 // b088 + b03e: 1054 lrw r2, 0x20000b45 // b08c + b040: 8302 ld.b r0, (r3, 0x2) + b042: 8220 ld.b r1, (r2, 0x0) + b044: 6442 cmpne r0, r1 + b046: 0c16 bf 0xb072 // b072 + b048: 8220 ld.b r1, (r2, 0x0) + b04a: 7444 zextb r1, r1 + b04c: 3941 cmpnei r1, 1 + b04e: 0c18 bf 0xb07e // b07e + b050: 3940 cmpnei r1, 0 + b052: 0c11 bf 0xb074 // b074 + b054: 3942 cmpnei r1, 2 + b056: 0c16 bf 0xb082 // b082 + b058: 8240 ld.b r2, (r2, 0x0) + b05a: 7488 zextb r2, r2 + b05c: a342 st.b r2, (r3, 0x2) + b05e: 8341 ld.b r2, (r3, 0x1) + b060: 7488 zextb r2, r2 + b062: 3a41 cmpnei r2, 1 + b064: 0807 bt 0xb072 // b072 + b066: 102b lrw r1, 0x20000058 // b090 + b068: 9120 ld.w r1, (r1, 0x0) + b06a: b142 st.w r2, (r1, 0x8) + b06c: 3200 movi r2, 0 + b06e: a340 st.b r2, (r3, 0x0) + b070: a341 st.b r2, (r3, 0x1) + b072: 783c jmp r15 + b074: 1028 lrw r1, 0x20000bfc // b094 + b076: 9100 ld.w r0, (r1, 0x0) + b078: 1028 lrw r1, 0x40011200 // b098 + b07a: b110 st.w r0, (r1, 0x40) + b07c: 07ee br 0xb058 // b058 + b07e: 1028 lrw r1, 0x2000096c // b09c + b080: 07fb br 0xb076 // b076 + b082: 1028 lrw r1, 0x2000099c // b0a0 + b084: 07f9 br 0xb076 // b076 + b086: 0000 bkpt + b088: 20000070 .long 0x20000070 + b08c: 20000b45 .long 0x20000b45 + b090: 20000058 .long 0x20000058 + b094: 20000bfc .long 0x20000bfc + b098: 40011200 .long 0x40011200 + b09c: 2000096c .long 0x2000096c + b0a0: 2000099c .long 0x2000099c + +Disassembly of section .text.TK_Keymap_prog: + +0000b0a4 : + b0a4: 14d4 push r4-r7, r15 + b0a6: 142a subi r14, r14, 40 + b0a8: 0171 lrw r3, 0x20000264 // b3e0 + b0aa: 8360 ld.b r3, (r3, 0x0) + b0ac: b860 st.w r3, (r14, 0x0) + b0ae: 3400 movi r4, 0 + b0b0: 0172 lrw r3, 0x20000238 // b3e4 + b0b2: 8360 ld.b r3, (r3, 0x0) + b0b4: b863 st.w r3, (r14, 0xc) + b0b6: 0172 lrw r3, 0x20000241 // b3e8 + b0b8: 83a0 ld.b r5, (r3, 0x0) + b0ba: 0172 lrw r3, 0x20000240 // b3ec + b0bc: 8360 ld.b r3, (r3, 0x0) + b0be: b866 st.w r3, (r14, 0x18) + b0c0: 0173 lrw r3, 0x20000bda // b3f0 + b0c2: b868 st.w r3, (r14, 0x20) + b0c4: 0173 lrw r3, 0x20000948 // b3f4 + b0c6: b864 st.w r3, (r14, 0x10) + b0c8: b869 st.w r3, (r14, 0x24) + b0ca: 4461 lsli r3, r4, 1 + b0cc: 9848 ld.w r2, (r14, 0x20) + b0ce: 608c addu r2, r3 + b0d0: 0135 lrw r1, 0x20000888 // b3f8 + b0d2: 604c addu r1, r3 + b0d4: 8a40 ld.h r2, (r2, 0x0) + b0d6: 8920 ld.h r1, (r1, 0x0) + b0d8: 6086 subu r2, r1 + b0da: 9829 ld.w r1, (r14, 0x24) + b0dc: 604c addu r1, r3 + b0de: 748b sexth r2, r2 + b0e0: a940 st.h r2, (r1, 0x0) + b0e2: 0118 lrw r0, 0x20000a32 // b3fc + b0e4: 0158 lrw r2, 0x20000970 // b400 + b0e6: 608c addu r2, r3 + b0e8: 600c addu r0, r3 + b0ea: 8a40 ld.h r2, (r2, 0x0) + b0ec: 8800 ld.h r0, (r0, 0x0) + b0ee: 6082 subu r2, r0 + b0f0: 01da lrw r6, 0x20000a88 // b404 + b0f2: 5e0c addu r0, r6, r3 + b0f4: 748b sexth r2, r2 + b0f6: a840 st.h r2, (r0, 0x0) + b0f8: b8c1 st.w r6, (r14, 0x4) + b0fa: 015b lrw r2, 0x20000a66 // b408 + b0fc: 011b lrw r0, 0x20000b48 // b40c + b0fe: 608c addu r2, r3 + b100: 600c addu r0, r3 + b102: 8a40 ld.h r2, (r2, 0x0) + b104: 8800 ld.h r0, (r0, 0x0) + b106: 6082 subu r2, r0 + b108: 011d lrw r0, 0x20000bb4 // b410 + b10a: 748b sexth r2, r2 + b10c: 58ec addu r7, r0, r3 + b10e: af40 st.h r2, (r7, 0x0) + b110: 8940 ld.h r2, (r1, 0x0) + b112: 748b sexth r2, r2 + b114: 3adf btsti r2, 31 + b116: 015f lrw r2, 0x20000b92 // b414 + b118: 60c8 addu r3, r2 + b11a: b802 st.w r0, (r14, 0x8) + b11c: 0c49 bf 0xb1ae // b1ae + b11e: 3200 movi r2, 0 + b120: ab40 st.h r2, (r3, 0x0) + b122: 9821 ld.w r1, (r14, 0x4) + b124: 4461 lsli r3, r4, 1 + b126: 604c addu r1, r3 + b128: 8940 ld.h r2, (r1, 0x0) + b12a: 748b sexth r2, r2 + b12c: 3adf btsti r2, 31 + b12e: 0244 lrw r2, 0x200008f0 // b418 + b130: 60c8 addu r3, r2 + b132: 0c41 bf 0xb1b4 // b1b4 + b134: 3200 movi r2, 0 + b136: ab40 st.h r2, (r3, 0x0) + b138: 9822 ld.w r1, (r14, 0x8) + b13a: 4461 lsli r3, r4, 1 + b13c: 604c addu r1, r3 + b13e: 8940 ld.h r2, (r1, 0x0) + b140: 748b sexth r2, r2 + b142: 3adf btsti r2, 31 + b144: 0249 lrw r2, 0x200008c4 // b41c + b146: 60c8 addu r3, r2 + b148: 0c39 bf 0xb1ba // b1ba + b14a: 3200 movi r2, 0 + b14c: ab40 st.h r2, (r3, 0x0) + b14e: 9860 ld.w r3, (r14, 0x0) + b150: 3b03 cmphsi r3, 4 + b152: 4421 lsli r1, r4, 1 + b154: 0cb5 bf 0xb2be // b2be + b156: 9864 ld.w r3, (r14, 0x10) + b158: 60c4 addu r3, r1 + b15a: 024d lrw r2, 0x20000292 // b420 + b15c: 6048 addu r1, r2 + b15e: 8b00 ld.h r0, (r3, 0x0) + b160: 8940 ld.h r2, (r1, 0x0) + b162: 7403 sexth r0, r0 + b164: 6409 cmplt r2, r0 + b166: 9820 ld.w r1, (r14, 0x0) + b168: 7c84 mult r2, r1 + b16a: 0c9b bf 0xb2a0 // b2a0 + b16c: 8b20 ld.h r1, (r3, 0x0) + b16e: 7447 sexth r1, r1 + b170: 6485 cmplt r1, r2 + b172: 0c97 bf 0xb2a0 // b2a0 + b174: 0233 lrw r1, 0x20000935 // b424 + b176: 6050 addu r1, r4 + b178: 8140 ld.b r2, (r1, 0x0) + b17a: 2200 addi r2, 1 + b17c: 7488 zextb r2, r2 + b17e: a140 st.b r2, (r1, 0x0) + b180: 3000 movi r0, 0 + b182: 0255 lrw r2, 0x20000914 // b428 + b184: 6090 addu r2, r4 + b186: a200 st.b r0, (r2, 0x0) + b188: 0256 lrw r2, 0x20000a54 // b42c + b18a: 6090 addu r2, r4 + b18c: a200 st.b r0, (r2, 0x0) + b18e: 0256 lrw r2, 0x20000aec // b430 + b190: 6090 addu r2, r4 + b192: a200 st.b r0, (r2, 0x0) + b194: 8140 ld.b r2, (r1, 0x0) + b196: 9803 ld.w r0, (r14, 0xc) + b198: 6480 cmphs r0, r2 + b19a: 081d bt 0xb1d4 // b1d4 + b19c: 3d40 cmpnei r5, 0 + b19e: 0811 bt 0xb1c0 // b1c0 + b1a0: 025a lrw r2, 0x20000928 // b434 + b1a2: 9260 ld.w r3, (r2, 0x0) + b1a4: 3b40 cmpnei r3, 0 + b1a6: 0815 bt 0xb1d0 // b1d0 + b1a8: 9200 ld.w r0, (r2, 0x0) + b1aa: 3301 movi r3, 1 + b1ac: 040f br 0xb1ca // b1ca + b1ae: 8940 ld.h r2, (r1, 0x0) + b1b0: 7489 zexth r2, r2 + b1b2: 07b7 br 0xb120 // b120 + b1b4: 8940 ld.h r2, (r1, 0x0) + b1b6: 7489 zexth r2, r2 + b1b8: 07bf br 0xb136 // b136 + b1ba: 8940 ld.h r2, (r1, 0x0) + b1bc: 7489 zexth r2, r2 + b1be: 07c7 br 0xb14c // b14c + b1c0: 3d41 cmpnei r5, 1 + b1c2: 085c bt 0xb27a // b27a + b1c4: 0343 lrw r2, 0x20000928 // b434 + b1c6: 6cd7 mov r3, r5 + b1c8: 9200 ld.w r0, (r2, 0x0) + b1ca: 70d0 lsl r3, r4 + b1cc: 6cc0 or r3, r0 + b1ce: b260 st.w r3, (r2, 0x0) + b1d0: 3300 movi r3, 0 + b1d2: a160 st.b r3, (r1, 0x0) + b1d4: 4461 lsli r3, r4, 1 + b1d6: 9844 ld.w r2, (r14, 0x10) + b1d8: 608c addu r2, r3 + b1da: 8ac0 ld.h r6, (r2, 0x0) + b1dc: 034e lrw r2, 0x20000292 // b420 + b1de: 60c8 addu r3, r2 + b1e0: 8be0 ld.h r7, (r3, 0x0) + b1e2: 4702 lsli r0, r7, 2 + b1e4: 3105 movi r1, 5 + b1e6: e3ffd7ad bsr 0x6140 // 6140 <__divsi3> + b1ea: 759b sexth r6, r6 + b1ec: 6419 cmplt r6, r0 + b1ee: b805 st.w r0, (r14, 0x14) + b1f0: 0c18 bf 0xb220 // b220 + b1f2: 0351 lrw r2, 0x20000914 // b428 + b1f4: 6090 addu r2, r4 + b1f6: 8260 ld.b r3, (r2, 0x0) + b1f8: 2300 addi r3, 1 + b1fa: 74cc zextb r3, r3 + b1fc: a260 st.b r3, (r2, 0x0) + b1fe: 3100 movi r1, 0 + b200: 0376 lrw r3, 0x20000935 // b424 + b202: 60d0 addu r3, r4 + b204: a320 st.b r1, (r3, 0x0) + b206: 8260 ld.b r3, (r2, 0x0) + b208: 9826 ld.w r1, (r14, 0x18) + b20a: 64c4 cmphs r1, r3 + b20c: 080a bt 0xb220 // b220 + b20e: 3300 movi r3, 0 + b210: 0336 lrw r1, 0x20000928 // b434 + b212: 2b01 subi r3, 2 + b214: 9100 ld.w r0, (r1, 0x0) + b216: 70d3 rotl r3, r4 + b218: 68c0 and r3, r0 + b21a: b160 st.w r3, (r1, 0x0) + b21c: 3300 movi r3, 0 + b21e: a260 st.b r3, (r2, 0x0) + b220: 9860 ld.w r3, (r14, 0x0) + b222: 9841 ld.w r2, (r14, 0x4) + b224: 3b03 cmphsi r3, 4 + b226: 4461 lsli r3, r4, 1 + b228: 60c8 addu r3, r2 + b22a: 8b40 ld.h r2, (r3, 0x0) + b22c: 748b sexth r2, r2 + b22e: 0d4d bf 0xb4c8 // b4c8 + b230: 649d cmplt r7, r2 + b232: 0d3a bf 0xb4a6 // b4a6 + b234: 8b40 ld.h r2, (r3, 0x0) + b236: 9820 ld.w r1, (r14, 0x0) + b238: 748b sexth r2, r2 + b23a: 7c5c mult r1, r7 + b23c: 6449 cmplt r2, r1 + b23e: 0d34 bf 0xb4a6 // b4a6 + b240: 133e lrw r1, 0x20000b08 // b438 + b242: 6050 addu r1, r4 + b244: 8140 ld.b r2, (r1, 0x0) + b246: 2200 addi r2, 1 + b248: 7488 zextb r2, r2 + b24a: a140 st.b r2, (r1, 0x0) + b24c: 3000 movi r0, 0 + b24e: 135c lrw r2, 0x200009a4 // b43c + b250: 6090 addu r2, r4 + b252: a200 st.b r0, (r2, 0x0) + b254: 135b lrw r2, 0x200009ce // b440 + b256: 6090 addu r2, r4 + b258: a200 st.b r0, (r2, 0x0) + b25a: 135b lrw r2, 0x20000acc // b444 + b25c: 6090 addu r2, r4 + b25e: a200 st.b r0, (r2, 0x0) + b260: 8140 ld.b r2, (r1, 0x0) + b262: 9803 ld.w r0, (r14, 0xc) + b264: 6480 cmphs r0, r2 + b266: 087d bt 0xb360 // b360 + b268: 3d40 cmpnei r5, 0 + b26a: 0871 bt 0xb34c // b34c + b26c: 1357 lrw r2, 0x200008bc // b448 + b26e: 9260 ld.w r3, (r2, 0x0) + b270: 3b40 cmpnei r3, 0 + b272: 0875 bt 0xb35c // b35c + b274: 9200 ld.w r0, (r2, 0x0) + b276: 3301 movi r3, 1 + b278: 046f br 0xb356 // b356 + b27a: 3d42 cmpnei r5, 2 + b27c: 0c03 bf 0xb282 // b282 + b27e: e8000201 br 0xb680 // b680 + b282: 13d3 lrw r6, 0x20000ae2 // b44c + b284: 8b00 ld.h r0, (r3, 0x0) + b286: 8e40 ld.h r2, (r6, 0x0) + b288: 7489 zexth r2, r2 + b28a: 7403 sexth r0, r0 + b28c: 2209 addi r2, 10 + b28e: 6409 cmplt r2, r0 + b290: 0fa0 bf 0xb1d0 // b1d0 + b292: 8b60 ld.h r3, (r3, 0x0) + b294: 74cd zexth r3, r3 + b296: ae60 st.h r3, (r6, 0x0) + b298: 3300 movi r3, 0 + b29a: 1347 lrw r2, 0x20000928 // b434 + b29c: b260 st.w r3, (r2, 0x0) + b29e: 0785 br 0xb1a8 // b1a8 + b2a0: 4461 lsli r3, r4, 1 + b2a2: 9824 ld.w r1, (r14, 0x10) + b2a4: 60c4 addu r3, r1 + b2a6: 8b60 ld.h r3, (r3, 0x0) + b2a8: 74cf sexth r3, r3 + b2aa: 64c9 cmplt r2, r3 + b2ac: 0f94 bf 0xb1d4 // b1d4 + b2ae: 3300 movi r3, 0 + b2b0: 1341 lrw r2, 0x20000928 // b434 + b2b2: 2b01 subi r3, 2 + b2b4: 9220 ld.w r1, (r2, 0x0) + b2b6: 70d3 rotl r3, r4 + b2b8: 68c4 and r3, r1 + b2ba: b260 st.w r3, (r2, 0x0) + b2bc: 078c br 0xb1d4 // b1d4 + b2be: 9844 ld.w r2, (r14, 0x10) + b2c0: 6084 addu r2, r1 + b2c2: 1218 lrw r0, 0x20000292 // b420 + b2c4: 8a60 ld.h r3, (r2, 0x0) + b2c6: 6040 addu r1, r0 + b2c8: 74cf sexth r3, r3 + b2ca: 8920 ld.h r1, (r1, 0x0) + b2cc: 64c5 cmplt r1, r3 + b2ce: 0f83 bf 0xb1d4 // b1d4 + b2d0: 1360 lrw r3, 0x20000946 // b450 + b2d2: 8360 ld.b r3, (r3, 0x0) + b2d4: 74cc zextb r3, r3 + b2d6: 3b40 cmpnei r3, 0 + b2d8: 0b7e bt 0xb1d4 // b1d4 + b2da: 1213 lrw r0, 0x20000935 // b424 + b2dc: 6010 addu r0, r4 + b2de: 8020 ld.b r1, (r0, 0x0) + b2e0: 2100 addi r1, 1 + b2e2: 7444 zextb r1, r1 + b2e4: a020 st.b r1, (r0, 0x0) + b2e6: 3600 movi r6, 0 + b2e8: 1230 lrw r1, 0x20000914 // b428 + b2ea: 6050 addu r1, r4 + b2ec: a1c0 st.b r6, (r1, 0x0) + b2ee: 1230 lrw r1, 0x20000a54 // b42c + b2f0: 6050 addu r1, r4 + b2f2: a1c0 st.b r6, (r1, 0x0) + b2f4: 122f lrw r1, 0x20000aec // b430 + b2f6: 6050 addu r1, r4 + b2f8: a1c0 st.b r6, (r1, 0x0) + b2fa: 8020 ld.b r1, (r0, 0x0) + b2fc: 98c3 ld.w r6, (r14, 0xc) + b2fe: 6458 cmphs r6, r1 + b300: 0b6a bt 0xb1d4 // b1d4 + b302: 3d40 cmpnei r5, 0 + b304: 0808 bt 0xb314 // b314 + b306: 124c lrw r2, 0x20000928 // b434 + b308: 9260 ld.w r3, (r2, 0x0) + b30a: 3b40 cmpnei r3, 0 + b30c: 080c bt 0xb324 // b324 + b30e: 9220 ld.w r1, (r2, 0x0) + b310: 3301 movi r3, 1 + b312: 0406 br 0xb31e // b31e + b314: 3d41 cmpnei r5, 1 + b316: 080a bt 0xb32a // b32a + b318: 1247 lrw r2, 0x20000928 // b434 + b31a: 6cd7 mov r3, r5 + b31c: 9220 ld.w r1, (r2, 0x0) + b31e: 70d0 lsl r3, r4 + b320: 6cc4 or r3, r1 + b322: b260 st.w r3, (r2, 0x0) + b324: 3300 movi r3, 0 + b326: a060 st.b r3, (r0, 0x0) + b328: 0756 br 0xb1d4 // b1d4 + b32a: 3d42 cmpnei r5, 2 + b32c: 0c02 bf 0xb330 // b330 + b32e: 05dc br 0xb6e6 // b6e6 + b330: 12e7 lrw r7, 0x20000ae2 // b44c + b332: 8ac0 ld.h r6, (r2, 0x0) + b334: 8f20 ld.h r1, (r7, 0x0) + b336: 7445 zexth r1, r1 + b338: 759b sexth r6, r6 + b33a: 2109 addi r1, 10 + b33c: 6585 cmplt r1, r6 + b33e: 0ff3 bf 0xb324 // b324 + b340: 8a40 ld.h r2, (r2, 0x0) + b342: 7489 zexth r2, r2 + b344: af40 st.h r2, (r7, 0x0) + b346: 115c lrw r2, 0x20000928 // b434 + b348: b260 st.w r3, (r2, 0x0) + b34a: 07e2 br 0xb30e // b30e + b34c: 3d41 cmpnei r5, 1 + b34e: 089b bt 0xb484 // b484 + b350: 115e lrw r2, 0x200008bc // b448 + b352: 6cd7 mov r3, r5 + b354: 9200 ld.w r0, (r2, 0x0) + b356: 70d0 lsl r3, r4 + b358: 6cc0 or r3, r0 + b35a: b260 st.w r3, (r2, 0x0) + b35c: 3300 movi r3, 0 + b35e: a160 st.b r3, (r1, 0x0) + b360: 4461 lsli r3, r4, 1 + b362: 9841 ld.w r2, (r14, 0x4) + b364: 608c addu r2, r3 + b366: 8a60 ld.h r3, (r2, 0x0) + b368: 74cf sexth r3, r3 + b36a: 9845 ld.w r2, (r14, 0x14) + b36c: 648d cmplt r3, r2 + b36e: 0c18 bf 0xb39e // b39e + b370: 1153 lrw r2, 0x200009a4 // b43c + b372: 6090 addu r2, r4 + b374: 8260 ld.b r3, (r2, 0x0) + b376: 2300 addi r3, 1 + b378: 74cc zextb r3, r3 + b37a: a260 st.b r3, (r2, 0x0) + b37c: 3100 movi r1, 0 + b37e: 116f lrw r3, 0x20000b08 // b438 + b380: 60d0 addu r3, r4 + b382: a320 st.b r1, (r3, 0x0) + b384: 8260 ld.b r3, (r2, 0x0) + b386: 9826 ld.w r1, (r14, 0x18) + b388: 64c4 cmphs r1, r3 + b38a: 080a bt 0xb39e // b39e + b38c: 3300 movi r3, 0 + b38e: 112f lrw r1, 0x200008bc // b448 + b390: 2b01 subi r3, 2 + b392: 9100 ld.w r0, (r1, 0x0) + b394: 70d3 rotl r3, r4 + b396: 68c0 and r3, r0 + b398: b160 st.w r3, (r1, 0x0) + b39a: 3300 movi r3, 0 + b39c: a260 st.b r3, (r2, 0x0) + b39e: 9860 ld.w r3, (r14, 0x0) + b3a0: 9842 ld.w r2, (r14, 0x8) + b3a2: 3b03 cmphsi r3, 4 + b3a4: 4461 lsli r3, r4, 1 + b3a6: 60c8 addu r3, r2 + b3a8: 8b40 ld.h r2, (r3, 0x0) + b3aa: 748b sexth r2, r2 + b3ac: 0d26 bf 0xb5f8 // b5f8 + b3ae: 9820 ld.w r1, (r14, 0x0) + b3b0: 649d cmplt r7, r2 + b3b2: 7c5c mult r1, r7 + b3b4: 0d13 bf 0xb5da // b5da + b3b6: 8b40 ld.h r2, (r3, 0x0) + b3b8: 748b sexth r2, r2 + b3ba: 6449 cmplt r2, r1 + b3bc: 0d0f bf 0xb5da // b5da + b3be: 1126 lrw r1, 0x20000ab0 // b454 + b3c0: 6050 addu r1, r4 + b3c2: 8140 ld.b r2, (r1, 0x0) + b3c4: 2200 addi r2, 1 + b3c6: 7488 zextb r2, r2 + b3c8: a140 st.b r2, (r1, 0x0) + b3ca: 3000 movi r0, 0 + b3cc: 1143 lrw r2, 0x20000b1e // b458 + b3ce: 6090 addu r2, r4 + b3d0: a200 st.b r0, (r2, 0x0) + b3d2: 1143 lrw r2, 0x200008aa // b45c + b3d4: 6090 addu r2, r4 + b3d6: a200 st.b r0, (r2, 0x0) + b3d8: 1142 lrw r2, 0x200009bc // b460 + b3da: 6090 addu r2, r4 + b3dc: a200 st.b r0, (r2, 0x0) + b3de: 0443 br 0xb464 // b464 + b3e0: 20000264 .long 0x20000264 + b3e4: 20000238 .long 0x20000238 + b3e8: 20000241 .long 0x20000241 + b3ec: 20000240 .long 0x20000240 + b3f0: 20000bda .long 0x20000bda + b3f4: 20000948 .long 0x20000948 + b3f8: 20000888 .long 0x20000888 + b3fc: 20000a32 .long 0x20000a32 + b400: 20000970 .long 0x20000970 + b404: 20000a88 .long 0x20000a88 + b408: 20000a66 .long 0x20000a66 + b40c: 20000b48 .long 0x20000b48 + b410: 20000bb4 .long 0x20000bb4 + b414: 20000b92 .long 0x20000b92 + b418: 200008f0 .long 0x200008f0 + b41c: 200008c4 .long 0x200008c4 + b420: 20000292 .long 0x20000292 + b424: 20000935 .long 0x20000935 + b428: 20000914 .long 0x20000914 + b42c: 20000a54 .long 0x20000a54 + b430: 20000aec .long 0x20000aec + b434: 20000928 .long 0x20000928 + b438: 20000b08 .long 0x20000b08 + b43c: 200009a4 .long 0x200009a4 + b440: 200009ce .long 0x200009ce + b444: 20000acc .long 0x20000acc + b448: 200008bc .long 0x200008bc + b44c: 20000ae2 .long 0x20000ae2 + b450: 20000946 .long 0x20000946 + b454: 20000ab0 .long 0x20000ab0 + b458: 20000b1e .long 0x20000b1e + b45c: 200008aa .long 0x200008aa + b460: 200009bc .long 0x200009bc + b464: 8140 ld.b r2, (r1, 0x0) + b466: 9803 ld.w r0, (r14, 0xc) + b468: 6480 cmphs r0, r2 + b46a: 0881 bt 0xb56c // b56c + b46c: 3d40 cmpnei r5, 0 + b46e: 0874 bt 0xb556 // b556 + b470: 014b lrw r2, 0x200009a0 // b7c0 + b472: 9260 ld.w r3, (r2, 0x0) + b474: 3b40 cmpnei r3, 0 + b476: 0879 bt 0xb568 // b568 + b478: 3301 movi r3, 1 + b47a: 9200 ld.w r0, (r2, 0x0) + b47c: 70d0 lsl r3, r4 + b47e: 6cc0 or r3, r0 + b480: b260 st.w r3, (r2, 0x0) + b482: 0473 br 0xb568 // b568 + b484: 3d42 cmpnei r5, 2 + b486: 0960 bt 0xb746 // b746 + b488: 01d0 lrw r6, 0x20000bd8 // b7c4 + b48a: 8b00 ld.h r0, (r3, 0x0) + b48c: 8e40 ld.h r2, (r6, 0x0) + b48e: 7489 zexth r2, r2 + b490: 7403 sexth r0, r0 + b492: 2209 addi r2, 10 + b494: 6409 cmplt r2, r0 + b496: 0f63 bf 0xb35c // b35c + b498: 8b60 ld.h r3, (r3, 0x0) + b49a: 74cd zexth r3, r3 + b49c: ae60 st.h r3, (r6, 0x0) + b49e: 3300 movi r3, 0 + b4a0: 0155 lrw r2, 0x200008bc // b7c8 + b4a2: b260 st.w r3, (r2, 0x0) + b4a4: 06e8 br 0xb274 // b274 + b4a6: 9841 ld.w r2, (r14, 0x4) + b4a8: 4461 lsli r3, r4, 1 + b4aa: 60c8 addu r3, r2 + b4ac: 8b60 ld.h r3, (r3, 0x0) + b4ae: 9840 ld.w r2, (r14, 0x0) + b4b0: 74cf sexth r3, r3 + b4b2: 7c9c mult r2, r7 + b4b4: 64c9 cmplt r2, r3 + b4b6: 0f55 bf 0xb360 // b360 + b4b8: 3300 movi r3, 0 + b4ba: 015b lrw r2, 0x200008bc // b7c8 + b4bc: 2b01 subi r3, 2 + b4be: 9220 ld.w r1, (r2, 0x0) + b4c0: 70d3 rotl r3, r4 + b4c2: 68c4 and r3, r1 + b4c4: b260 st.w r3, (r2, 0x0) + b4c6: 074d br 0xb360 // b360 + b4c8: 649d cmplt r7, r2 + b4ca: 0f4b bf 0xb360 // b360 + b4cc: 015f lrw r2, 0x20000946 // b7cc + b4ce: 8240 ld.b r2, (r2, 0x0) + b4d0: 7488 zextb r2, r2 + b4d2: 3a40 cmpnei r2, 0 + b4d4: b847 st.w r2, (r14, 0x1c) + b4d6: 0b45 bt 0xb360 // b360 + b4d8: 0201 lrw r0, 0x20000b08 // b7d0 + b4da: 6010 addu r0, r4 + b4dc: 8020 ld.b r1, (r0, 0x0) + b4de: 2100 addi r1, 1 + b4e0: 7444 zextb r1, r1 + b4e2: a020 st.b r1, (r0, 0x0) + b4e4: 3600 movi r6, 0 + b4e6: 0223 lrw r1, 0x200009a4 // b7d4 + b4e8: 6050 addu r1, r4 + b4ea: a1c0 st.b r6, (r1, 0x0) + b4ec: 0224 lrw r1, 0x200009ce // b7d8 + b4ee: 6050 addu r1, r4 + b4f0: a1c0 st.b r6, (r1, 0x0) + b4f2: 0224 lrw r1, 0x20000acc // b7dc + b4f4: 6050 addu r1, r4 + b4f6: a1c0 st.b r6, (r1, 0x0) + b4f8: 8020 ld.b r1, (r0, 0x0) + b4fa: 98c3 ld.w r6, (r14, 0xc) + b4fc: 6458 cmphs r6, r1 + b4fe: 0b31 bt 0xb360 // b360 + b500: 3d40 cmpnei r5, 0 + b502: 0808 bt 0xb512 // b512 + b504: 024e lrw r2, 0x200008bc // b7c8 + b506: 9260 ld.w r3, (r2, 0x0) + b508: 3b40 cmpnei r3, 0 + b50a: 0823 bt 0xb550 // b550 + b50c: 9220 ld.w r1, (r2, 0x0) + b50e: 3301 movi r3, 1 + b510: 0406 br 0xb51c // b51c + b512: 3d41 cmpnei r5, 1 + b514: 0808 bt 0xb524 // b524 + b516: 0252 lrw r2, 0x200008bc // b7c8 + b518: 6cd7 mov r3, r5 + b51a: 9220 ld.w r1, (r2, 0x0) + b51c: 70d0 lsl r3, r4 + b51e: 6cc4 or r3, r1 + b520: b260 st.w r3, (r2, 0x0) + b522: 0417 br 0xb550 // b550 + b524: 3d42 cmpnei r5, 2 + b526: 0942 bt 0xb7aa // b7aa + b528: 8bc0 ld.h r6, (r3, 0x0) + b52a: 745b sexth r1, r6 + b52c: 02d9 lrw r6, 0x20000bd8 // b7c4 + b52e: 6c87 mov r2, r1 + b530: 8e20 ld.h r1, (r6, 0x0) + b532: 7445 zexth r1, r1 + b534: 2109 addi r1, 10 + b536: 6485 cmplt r1, r2 + b538: 0c0c bf 0xb550 // b550 + b53a: 8b60 ld.h r3, (r3, 0x0) + b53c: 74cd zexth r3, r3 + b53e: ae60 st.h r3, (r6, 0x0) + b540: 9867 ld.w r3, (r14, 0x1c) + b542: 023d lrw r1, 0x200008bc // b7c8 + b544: b160 st.w r3, (r1, 0x0) + b546: 3301 movi r3, 1 + b548: 9140 ld.w r2, (r1, 0x0) + b54a: 70d0 lsl r3, r4 + b54c: 6cc8 or r3, r2 + b54e: b160 st.w r3, (r1, 0x0) + b550: 3300 movi r3, 0 + b552: a060 st.b r3, (r0, 0x0) + b554: 0706 br 0xb360 // b360 + b556: 3d41 cmpnei r5, 1 + b558: 0830 bt 0xb5b8 // b5b8 + b55a: 0345 lrw r2, 0x200009a0 // b7c0 + b55c: 6cd7 mov r3, r5 + b55e: 9200 ld.w r0, (r2, 0x0) + b560: 70d0 lsl r3, r4 + b562: 6cc0 or r3, r0 + b564: b260 st.w r3, (r2, 0x0) + b566: 6c03 mov r0, r0 + b568: 3300 movi r3, 0 + b56a: a160 st.b r3, (r1, 0x0) + b56c: 4461 lsli r3, r4, 1 + b56e: 9842 ld.w r2, (r14, 0x8) + b570: 608c addu r2, r3 + b572: 8a60 ld.h r3, (r2, 0x0) + b574: 74cf sexth r3, r3 + b576: 9845 ld.w r2, (r14, 0x14) + b578: 648d cmplt r3, r2 + b57a: 0c18 bf 0xb5aa // b5aa + b57c: 0346 lrw r2, 0x20000b1e // b7e0 + b57e: 6090 addu r2, r4 + b580: 8260 ld.b r3, (r2, 0x0) + b582: 2300 addi r3, 1 + b584: 74cc zextb r3, r3 + b586: a260 st.b r3, (r2, 0x0) + b588: 3100 movi r1, 0 + b58a: 0368 lrw r3, 0x20000ab0 // b7e4 + b58c: 60d0 addu r3, r4 + b58e: a320 st.b r1, (r3, 0x0) + b590: 8260 ld.b r3, (r2, 0x0) + b592: 9826 ld.w r1, (r14, 0x18) + b594: 64c4 cmphs r1, r3 + b596: 080a bt 0xb5aa // b5aa + b598: 3300 movi r3, 0 + b59a: 0335 lrw r1, 0x200009a0 // b7c0 + b59c: 2b01 subi r3, 2 + b59e: 9100 ld.w r0, (r1, 0x0) + b5a0: 70d3 rotl r3, r4 + b5a2: 68c0 and r3, r0 + b5a4: b160 st.w r3, (r1, 0x0) + b5a6: 3300 movi r3, 0 + b5a8: a260 st.b r3, (r2, 0x0) + b5aa: 2400 addi r4, 1 + b5ac: 3c51 cmpnei r4, 17 + b5ae: 0c03 bf 0xb5b4 // b5b4 + b5b0: e800fd8d br 0xb0ca // b0ca + b5b4: 140a addi r14, r14, 40 + b5b6: 1494 pop r4-r7, r15 + b5b8: 3d42 cmpnei r5, 2 + b5ba: 0948 bt 0xb84a // b84a + b5bc: 03d4 lrw r6, 0x2000096a // b7e8 + b5be: 8b00 ld.h r0, (r3, 0x0) + b5c0: 8e40 ld.h r2, (r6, 0x0) + b5c2: 7489 zexth r2, r2 + b5c4: 7403 sexth r0, r0 + b5c6: 2209 addi r2, 10 + b5c8: 6409 cmplt r2, r0 + b5ca: 0fcf bf 0xb568 // b568 + b5cc: 8b60 ld.h r3, (r3, 0x0) + b5ce: 74cd zexth r3, r3 + b5d0: ae60 st.h r3, (r6, 0x0) + b5d2: 3300 movi r3, 0 + b5d4: 135b lrw r2, 0x200009a0 // b7c0 + b5d6: b260 st.w r3, (r2, 0x0) + b5d8: 0750 br 0xb478 // b478 + b5da: 4461 lsli r3, r4, 1 + b5dc: 9842 ld.w r2, (r14, 0x8) + b5de: 60c8 addu r3, r2 + b5e0: 8b60 ld.h r3, (r3, 0x0) + b5e2: 74cf sexth r3, r3 + b5e4: 64c5 cmplt r1, r3 + b5e6: 0fc3 bf 0xb56c // b56c + b5e8: 3300 movi r3, 0 + b5ea: 1356 lrw r2, 0x200009a0 // b7c0 + b5ec: 2b01 subi r3, 2 + b5ee: 9220 ld.w r1, (r2, 0x0) + b5f0: 70d3 rotl r3, r4 + b5f2: 68c4 and r3, r1 + b5f4: b260 st.w r3, (r2, 0x0) + b5f6: 07bb br 0xb56c // b56c + b5f8: 649d cmplt r7, r2 + b5fa: 0fb9 bf 0xb56c // b56c + b5fc: 1354 lrw r2, 0x20000946 // b7cc + b5fe: 8240 ld.b r2, (r2, 0x0) + b600: 7488 zextb r2, r2 + b602: 3a40 cmpnei r2, 0 + b604: 0bb4 bt 0xb56c // b56c + b606: 1318 lrw r0, 0x20000ab0 // b7e4 + b608: 6010 addu r0, r4 + b60a: 8020 ld.b r1, (r0, 0x0) + b60c: 2100 addi r1, 1 + b60e: 7444 zextb r1, r1 + b610: a020 st.b r1, (r0, 0x0) + b612: 3600 movi r6, 0 + b614: 1333 lrw r1, 0x20000b1e // b7e0 + b616: 6050 addu r1, r4 + b618: a1c0 st.b r6, (r1, 0x0) + b61a: 1335 lrw r1, 0x200008aa // b7ec + b61c: 6050 addu r1, r4 + b61e: a1c0 st.b r6, (r1, 0x0) + b620: 1334 lrw r1, 0x200009bc // b7f0 + b622: 6050 addu r1, r4 + b624: a1c0 st.b r6, (r1, 0x0) + b626: 8020 ld.b r1, (r0, 0x0) + b628: 98c3 ld.w r6, (r14, 0xc) + b62a: 6458 cmphs r6, r1 + b62c: 0ba0 bt 0xb56c // b56c + b62e: 3d40 cmpnei r5, 0 + b630: 0808 bt 0xb640 // b640 + b632: 1344 lrw r2, 0x200009a0 // b7c0 + b634: 9260 ld.w r3, (r2, 0x0) + b636: 3b40 cmpnei r3, 0 + b638: 0821 bt 0xb67a // b67a + b63a: 9220 ld.w r1, (r2, 0x0) + b63c: 3301 movi r3, 1 + b63e: 0406 br 0xb64a // b64a + b640: 3d41 cmpnei r5, 1 + b642: 0808 bt 0xb652 // b652 + b644: 125f lrw r2, 0x200009a0 // b7c0 + b646: 6cd7 mov r3, r5 + b648: 9220 ld.w r1, (r2, 0x0) + b64a: 70d0 lsl r3, r4 + b64c: 6cc4 or r3, r1 + b64e: b260 st.w r3, (r2, 0x0) + b650: 0415 br 0xb67a // b67a + b652: 3d42 cmpnei r5, 2 + b654: 092a bt 0xb8a8 // b8a8 + b656: 13e5 lrw r7, 0x2000096a // b7e8 + b658: 8bc0 ld.h r6, (r3, 0x0) + b65a: 8f20 ld.h r1, (r7, 0x0) + b65c: 7445 zexth r1, r1 + b65e: 759b sexth r6, r6 + b660: 2109 addi r1, 10 + b662: 6585 cmplt r1, r6 + b664: 0c0b bf 0xb67a // b67a + b666: 8b60 ld.h r3, (r3, 0x0) + b668: 1236 lrw r1, 0x200009a0 // b7c0 + b66a: 74cd zexth r3, r3 + b66c: af60 st.h r3, (r7, 0x0) + b66e: b140 st.w r2, (r1, 0x0) + b670: 3301 movi r3, 1 + b672: 9140 ld.w r2, (r1, 0x0) + b674: 70d0 lsl r3, r4 + b676: 6cc8 or r3, r2 + b678: b160 st.w r3, (r1, 0x0) + b67a: 3300 movi r3, 0 + b67c: a060 st.b r3, (r0, 0x0) + b67e: 0777 br 0xb56c // b56c + b680: 3d43 cmpnei r5, 3 + b682: 0c03 bf 0xb688 // b688 + b684: e800fda6 br 0xb1d0 // b1d0 + b688: 125b lrw r2, 0x20000ae2 // b7f4 + b68a: 8bc0 ld.h r6, (r3, 0x0) + b68c: 8a00 ld.h r0, (r2, 0x0) + b68e: 7401 zexth r0, r0 + b690: 759b sexth r6, r6 + b692: 2009 addi r0, 10 + b694: 6581 cmplt r0, r6 + b696: 0c0c bf 0xb6ae // b6ae + b698: 8b60 ld.h r3, (r3, 0x0) + b69a: 74cd zexth r3, r3 + b69c: aa60 st.h r3, (r2, 0x0) + b69e: 3300 movi r3, 0 + b6a0: 1216 lrw r0, 0x20000928 // b7f8 + b6a2: b060 st.w r3, (r0, 0x0) + b6a4: 3301 movi r3, 1 + b6a6: 90c0 ld.w r6, (r0, 0x0) + b6a8: 70d0 lsl r3, r4 + b6aa: 6cd8 or r3, r6 + b6ac: b060 st.w r3, (r0, 0x0) + b6ae: 9804 ld.w r0, (r14, 0x10) + b6b0: 4461 lsli r3, r4, 1 + b6b2: 60c0 addu r3, r0 + b6b4: 8b00 ld.h r0, (r3, 0x0) + b6b6: 8a40 ld.h r2, (r2, 0x0) + b6b8: 7489 zexth r2, r2 + b6ba: 7403 sexth r0, r0 + b6bc: 2a04 subi r2, 5 + b6be: 6481 cmplt r0, r2 + b6c0: 0803 bt 0xb6c6 // b6c6 + b6c2: e800fd87 br 0xb1d0 // b1d0 + b6c6: 12ce lrw r6, 0x200008ec // b7fc + b6c8: 8b00 ld.h r0, (r3, 0x0) + b6ca: 8e40 ld.h r2, (r6, 0x0) + b6cc: 7489 zexth r2, r2 + b6ce: 7403 sexth r0, r0 + b6d0: 2204 addi r2, 5 + b6d2: 6409 cmplt r2, r0 + b6d4: 0803 bt 0xb6da // b6da + b6d6: e800fd7d br 0xb1d0 // b1d0 + b6da: 8b60 ld.h r3, (r3, 0x0) + b6dc: 74cd zexth r3, r3 + b6de: ae60 st.h r3, (r6, 0x0) + b6e0: 1246 lrw r2, 0x20000928 // b7f8 + b6e2: e800fd63 br 0xb1a8 // b1a8 + b6e6: 3d43 cmpnei r5, 3 + b6e8: 0c02 bf 0xb6ec // b6ec + b6ea: 061d br 0xb324 // b324 + b6ec: 12c2 lrw r6, 0x20000ae2 // b7f4 + b6ee: 8ae0 ld.h r7, (r2, 0x0) + b6f0: 8e20 ld.h r1, (r6, 0x0) + b6f2: 7445 zexth r1, r1 + b6f4: 75df sexth r7, r7 + b6f6: 2109 addi r1, 10 + b6f8: 65c5 cmplt r1, r7 + b6fa: 0c0b bf 0xb710 // b710 + b6fc: 8a40 ld.h r2, (r2, 0x0) + b6fe: 7489 zexth r2, r2 + b700: ae40 st.h r2, (r6, 0x0) + b702: 115e lrw r2, 0x20000928 // b7f8 + b704: b260 st.w r3, (r2, 0x0) + b706: 3301 movi r3, 1 + b708: 9220 ld.w r1, (r2, 0x0) + b70a: 70d0 lsl r3, r4 + b70c: 6cc4 or r3, r1 + b70e: b260 st.w r3, (r2, 0x0) + b710: 9844 ld.w r2, (r14, 0x10) + b712: 4461 lsli r3, r4, 1 + b714: 60c8 addu r3, r2 + b716: 8b40 ld.h r2, (r3, 0x0) + b718: 8e20 ld.h r1, (r6, 0x0) + b71a: 7445 zexth r1, r1 + b71c: 748b sexth r2, r2 + b71e: 2904 subi r1, 5 + b720: 6449 cmplt r2, r1 + b722: 0802 bt 0xb726 // b726 + b724: 0600 br 0xb324 // b324 + b726: 11d6 lrw r6, 0x200008ec // b7fc + b728: 8b20 ld.h r1, (r3, 0x0) + b72a: 8e40 ld.h r2, (r6, 0x0) + b72c: 7489 zexth r2, r2 + b72e: 7447 sexth r1, r1 + b730: 2204 addi r2, 5 + b732: 6449 cmplt r2, r1 + b734: 0803 bt 0xb73a // b73a + b736: e800fdf7 br 0xb324 // b324 + b73a: 8b60 ld.h r3, (r3, 0x0) + b73c: 74cd zexth r3, r3 + b73e: ae60 st.h r3, (r6, 0x0) + b740: 114e lrw r2, 0x20000928 // b7f8 + b742: e800fde6 br 0xb30e // b30e + b746: 3d43 cmpnei r5, 3 + b748: 0c02 bf 0xb74c // b74c + b74a: 0609 br 0xb35c // b35c + b74c: 105e lrw r2, 0x20000bd8 // b7c4 + b74e: 8bc0 ld.h r6, (r3, 0x0) + b750: 8a00 ld.h r0, (r2, 0x0) + b752: 7401 zexth r0, r0 + b754: 759b sexth r6, r6 + b756: 2009 addi r0, 10 + b758: 6581 cmplt r0, r6 + b75a: 0c0c bf 0xb772 // b772 + b75c: 8b60 ld.h r3, (r3, 0x0) + b75e: 74cd zexth r3, r3 + b760: aa60 st.h r3, (r2, 0x0) + b762: 3300 movi r3, 0 + b764: 1019 lrw r0, 0x200008bc // b7c8 + b766: b060 st.w r3, (r0, 0x0) + b768: 3301 movi r3, 1 + b76a: 90c0 ld.w r6, (r0, 0x0) + b76c: 70d0 lsl r3, r4 + b76e: 6cd8 or r3, r6 + b770: b060 st.w r3, (r0, 0x0) + b772: 9801 ld.w r0, (r14, 0x4) + b774: 4461 lsli r3, r4, 1 + b776: 60c0 addu r3, r0 + b778: 8b00 ld.h r0, (r3, 0x0) + b77a: 8a40 ld.h r2, (r2, 0x0) + b77c: 7489 zexth r2, r2 + b77e: 7403 sexth r0, r0 + b780: 2a04 subi r2, 5 + b782: 6481 cmplt r0, r2 + b784: 0803 bt 0xb78a // b78a + b786: e800fdeb br 0xb35c // b35c + b78a: 10de lrw r6, 0x20000aea // b800 + b78c: 8b00 ld.h r0, (r3, 0x0) + b78e: 8e40 ld.h r2, (r6, 0x0) + b790: 7489 zexth r2, r2 + b792: 7403 sexth r0, r0 + b794: 2204 addi r2, 5 + b796: 6409 cmplt r2, r0 + b798: 0803 bt 0xb79e // b79e + b79a: e800fde1 br 0xb35c // b35c + b79e: 8b60 ld.h r3, (r3, 0x0) + b7a0: 74cd zexth r3, r3 + b7a2: ae60 st.h r3, (r6, 0x0) + b7a4: 1049 lrw r2, 0x200008bc // b7c8 + b7a6: e800fd67 br 0xb274 // b274 + b7aa: 3d43 cmpnei r5, 3 + b7ac: 0ad2 bt 0xb550 // b550 + b7ae: 8b20 ld.h r1, (r3, 0x0) + b7b0: 10c5 lrw r6, 0x20000bd8 // b7c4 + b7b2: 7487 sexth r2, r1 + b7b4: 8e20 ld.h r1, (r6, 0x0) + b7b6: 7445 zexth r1, r1 + b7b8: 2109 addi r1, 10 + b7ba: 6485 cmplt r1, r2 + b7bc: 0c2f bf 0xb81a // b81a + b7be: 0423 br 0xb804 // b804 + b7c0: 200009a0 .long 0x200009a0 + b7c4: 20000bd8 .long 0x20000bd8 + b7c8: 200008bc .long 0x200008bc + b7cc: 20000946 .long 0x20000946 + b7d0: 20000b08 .long 0x20000b08 + b7d4: 200009a4 .long 0x200009a4 + b7d8: 200009ce .long 0x200009ce + b7dc: 20000acc .long 0x20000acc + b7e0: 20000b1e .long 0x20000b1e + b7e4: 20000ab0 .long 0x20000ab0 + b7e8: 2000096a .long 0x2000096a + b7ec: 200008aa .long 0x200008aa + b7f0: 200009bc .long 0x200009bc + b7f4: 20000ae2 .long 0x20000ae2 + b7f8: 20000928 .long 0x20000928 + b7fc: 200008ec .long 0x200008ec + b800: 20000aea .long 0x20000aea + b804: 8b60 ld.h r3, (r3, 0x0) + b806: 74cd zexth r3, r3 + b808: ae60 st.h r3, (r6, 0x0) + b80a: 9867 ld.w r3, (r14, 0x1c) + b80c: 113d lrw r1, 0x200008bc // b900 + b80e: b160 st.w r3, (r1, 0x0) + b810: 3301 movi r3, 1 + b812: 9140 ld.w r2, (r1, 0x0) + b814: 70d0 lsl r3, r4 + b816: 6cc8 or r3, r2 + b818: b160 st.w r3, (r1, 0x0) + b81a: 9841 ld.w r2, (r14, 0x4) + b81c: 4461 lsli r3, r4, 1 + b81e: 60c8 addu r3, r2 + b820: 8b40 ld.h r2, (r3, 0x0) + b822: 8e20 ld.h r1, (r6, 0x0) + b824: 7445 zexth r1, r1 + b826: 748b sexth r2, r2 + b828: 2904 subi r1, 5 + b82a: 6449 cmplt r2, r1 + b82c: 0e92 bf 0xb550 // b550 + b82e: 11d6 lrw r6, 0x20000aea // b904 + b830: 8b20 ld.h r1, (r3, 0x0) + b832: 8e40 ld.h r2, (r6, 0x0) + b834: 7489 zexth r2, r2 + b836: 7447 sexth r1, r1 + b838: 2204 addi r2, 5 + b83a: 6449 cmplt r2, r1 + b83c: 0802 bt 0xb840 // b840 + b83e: 0689 br 0xb550 // b550 + b840: 8b60 ld.h r3, (r3, 0x0) + b842: 74cd zexth r3, r3 + b844: ae60 st.h r3, (r6, 0x0) + b846: 114f lrw r2, 0x200008bc // b900 + b848: 0662 br 0xb50c // b50c + b84a: 3d43 cmpnei r5, 3 + b84c: 0a8e bt 0xb568 // b568 + b84e: 114f lrw r2, 0x2000096a // b908 + b850: 8bc0 ld.h r6, (r3, 0x0) + b852: 8a00 ld.h r0, (r2, 0x0) + b854: 7401 zexth r0, r0 + b856: 759b sexth r6, r6 + b858: 2009 addi r0, 10 + b85a: 6581 cmplt r0, r6 + b85c: 0c0c bf 0xb874 // b874 + b85e: 8b60 ld.h r3, (r3, 0x0) + b860: 74cd zexth r3, r3 + b862: aa60 st.h r3, (r2, 0x0) + b864: 3300 movi r3, 0 + b866: 110a lrw r0, 0x200009a0 // b90c + b868: b060 st.w r3, (r0, 0x0) + b86a: 3301 movi r3, 1 + b86c: 90c0 ld.w r6, (r0, 0x0) + b86e: 70d0 lsl r3, r4 + b870: 6cd8 or r3, r6 + b872: b060 st.w r3, (r0, 0x0) + b874: 9802 ld.w r0, (r14, 0x8) + b876: 4461 lsli r3, r4, 1 + b878: 60c0 addu r3, r0 + b87a: 8b00 ld.h r0, (r3, 0x0) + b87c: 8a40 ld.h r2, (r2, 0x0) + b87e: 7489 zexth r2, r2 + b880: 7403 sexth r0, r0 + b882: 2a04 subi r2, 5 + b884: 6481 cmplt r0, r2 + b886: 0802 bt 0xb88a // b88a + b888: 0670 br 0xb568 // b568 + b88a: 11c2 lrw r6, 0x20000a30 // b910 + b88c: 8b00 ld.h r0, (r3, 0x0) + b88e: 8e40 ld.h r2, (r6, 0x0) + b890: 7489 zexth r2, r2 + b892: 7403 sexth r0, r0 + b894: 2204 addi r2, 5 + b896: 6409 cmplt r2, r0 + b898: 0802 bt 0xb89c // b89c + b89a: 0667 br 0xb568 // b568 + b89c: 8b60 ld.h r3, (r3, 0x0) + b89e: 74cd zexth r3, r3 + b8a0: ae60 st.h r3, (r6, 0x0) + b8a2: 105b lrw r2, 0x200009a0 // b90c + b8a4: e800fdea br 0xb478 // b478 + b8a8: 3d43 cmpnei r5, 3 + b8aa: 0ae8 bt 0xb67a // b67a + b8ac: 10d7 lrw r6, 0x2000096a // b908 + b8ae: 8be0 ld.h r7, (r3, 0x0) + b8b0: 8e20 ld.h r1, (r6, 0x0) + b8b2: 7445 zexth r1, r1 + b8b4: 75df sexth r7, r7 + b8b6: 2109 addi r1, 10 + b8b8: 65c5 cmplt r1, r7 + b8ba: 0c0b bf 0xb8d0 // b8d0 + b8bc: 8b60 ld.h r3, (r3, 0x0) + b8be: 1034 lrw r1, 0x200009a0 // b90c + b8c0: 74cd zexth r3, r3 + b8c2: ae60 st.h r3, (r6, 0x0) + b8c4: b140 st.w r2, (r1, 0x0) + b8c6: 3301 movi r3, 1 + b8c8: 9140 ld.w r2, (r1, 0x0) + b8ca: 70d0 lsl r3, r4 + b8cc: 6cc8 or r3, r2 + b8ce: b160 st.w r3, (r1, 0x0) + b8d0: 9842 ld.w r2, (r14, 0x8) + b8d2: 4461 lsli r3, r4, 1 + b8d4: 60c8 addu r3, r2 + b8d6: 8b40 ld.h r2, (r3, 0x0) + b8d8: 8e20 ld.h r1, (r6, 0x0) + b8da: 7445 zexth r1, r1 + b8dc: 748b sexth r2, r2 + b8de: 2904 subi r1, 5 + b8e0: 6449 cmplt r2, r1 + b8e2: 0ecc bf 0xb67a // b67a + b8e4: 10cb lrw r6, 0x20000a30 // b910 + b8e6: 8b20 ld.h r1, (r3, 0x0) + b8e8: 8e40 ld.h r2, (r6, 0x0) + b8ea: 7489 zexth r2, r2 + b8ec: 7447 sexth r1, r1 + b8ee: 2204 addi r2, 5 + b8f0: 6449 cmplt r2, r1 + b8f2: 0ec4 bf 0xb67a // b67a + b8f4: 8b60 ld.h r3, (r3, 0x0) + b8f6: 74cd zexth r3, r3 + b8f8: ae60 st.h r3, (r6, 0x0) + b8fa: 1045 lrw r2, 0x200009a0 // b90c + b8fc: 069f br 0xb63a // b63a + b8fe: 0000 bkpt + b900: 200008bc .long 0x200008bc + b904: 20000aea .long 0x20000aea + b908: 2000096a .long 0x2000096a + b90c: 200009a0 .long 0x200009a0 + b910: 20000a30 .long 0x20000a30 + +Disassembly of section .text.TK_overflow_predict: + +0000b914 : + b914: 14d4 push r4-r7, r15 + b916: 1422 subi r14, r14, 8 + b918: 113c lrw r1, 0x20000070 // ba08 + b91a: 8167 ld.b r3, (r1, 0x7) + b91c: 3b41 cmpnei r3, 1 + b91e: 0823 bt 0xb964 // b964 + b920: 115b lrw r2, 0x20000aaa // ba0c + b922: 8260 ld.b r3, (r2, 0x0) + b924: 2300 addi r3, 1 + b926: 74cc zextb r3, r3 + b928: a260 st.b r3, (r2, 0x0) + b92a: 8260 ld.b r3, (r2, 0x0) + b92c: 1119 lrw r0, 0x20000265 // ba10 + b92e: 8000 ld.b r0, (r0, 0x0) + b930: 64c0 cmphs r0, r3 + b932: 0819 bt 0xb964 // b964 + b934: 3300 movi r3, 0 + b936: a260 st.b r3, (r2, 0x0) + b938: 11b7 lrw r5, 0x200009b5 // ba14 + b93a: 8560 ld.b r3, (r5, 0x0) + b93c: 3b40 cmpnei r3, 0 + b93e: 0c15 bf 0xb968 // b968 + b940: 8560 ld.b r3, (r5, 0x0) + b942: 3b41 cmpnei r3, 1 + b944: 0810 bt 0xb964 // b964 + b946: 3300 movi r3, 0 + b948: a560 st.b r3, (r5, 0x0) + b94a: 3200 movi r2, 0 + b94c: 1173 lrw r3, 0x20000058 // ba18 + b94e: 1114 lrw r0, 0x20000ae4 // ba1c + b950: 11b4 lrw r5, 0x20000b34 // ba20 + b952: 11d5 lrw r6, 0x20000242 // ba24 + b954: 9360 ld.w r3, (r3, 0x0) + b956: b342 st.w r2, (r3, 0x8) + b958: 1174 lrw r3, 0x20000054 // ba28 + b95a: 9380 ld.w r4, (r3, 0x0) + b95c: 3300 movi r3, 0 + b95e: 8040 ld.b r2, (r0, 0x0) + b960: 648c cmphs r3, r2 + b962: 0c44 bf 0xb9ea // b9ea + b964: 1402 addi r14, r14, 8 + b966: 1494 pop r4-r7, r15 + b968: 597e addi r3, r1, 8 + b96a: 3600 movi r6, 0 + b96c: 11f0 lrw r7, 0x20000268 // ba2c + b96e: b860 st.w r3, (r14, 0x0) + b970: 9760 ld.w r3, (r7, 0x0) + b972: 70d9 lsr r3, r6 + b974: 3201 movi r2, 1 + b976: 68c8 and r3, r2 + b978: 3b40 cmpnei r3, 0 + b97a: 0c34 bf 0xb9e2 // b9e2 + b97c: 4681 lsli r4, r6, 1 + b97e: 9860 ld.w r3, (r14, 0x0) + b980: 60d0 addu r3, r4 + b982: 8b00 ld.h r0, (r3, 0x0) + b984: e3ffc22a bsr 0x3dd8 // 3dd8 <__floatunsidf> + b988: 6cc7 mov r3, r1 + b98a: 3180 movi r1, 128 + b98c: 6c83 mov r2, r0 + b98e: 4137 lsli r1, r1, 23 + b990: 3000 movi r0, 0 + b992: e3ffb811 bsr 0x29b4 // 29b4 <__GI_pow> + b996: 1167 lrw r3, 0x2000026e // ba30 + b998: 60d0 addu r3, r4 + b99a: 8b60 ld.h r3, (r3, 0x0) + b99c: 4364 lsli r3, r3, 4 + b99e: 230e addi r3, 15 + b9a0: b861 st.w r3, (r14, 0x4) + b9a2: e3ffbdd3 bsr 0x3548 // 3548 <__fixunsdfsi> + b9a6: 9861 ld.w r3, (r14, 0x4) + b9a8: 7cc0 mult r3, r0 + b9aa: 1143 lrw r2, 0x20000b6a // ba34 + b9ac: 740d zexth r0, r3 + b9ae: 6090 addu r2, r4 + b9b0: 1162 lrw r3, 0x20000bda // ba38 + b9b2: 60d0 addu r3, r4 + b9b4: aa00 st.h r0, (r2, 0x0) + b9b6: 8b60 ld.h r3, (r3, 0x0) + b9b8: 8a00 ld.h r0, (r2, 0x0) + b9ba: 7401 zexth r0, r0 + b9bc: 325f movi r2, 95 + b9be: 74cd zexth r3, r3 + b9c0: 7c08 mult r0, r2 + b9c2: 3164 movi r1, 100 + b9c4: b861 st.w r3, (r14, 0x4) + b9c6: e3ffd3bd bsr 0x6140 // 6140 <__divsi3> + b9ca: 9861 ld.w r3, (r14, 0x4) + b9cc: 64c1 cmplt r0, r3 + b9ce: 0c0a bf 0xb9e2 // b9e2 + b9d0: 1075 lrw r3, 0x20000242 // ba24 + b9d2: 610c addu r4, r3 + b9d4: 8c60 ld.h r3, (r4, 0x0) + b9d6: 3b06 cmphsi r3, 7 + b9d8: 0805 bt 0xb9e2 // b9e2 + b9da: 2300 addi r3, 1 + b9dc: ac60 st.h r3, (r4, 0x0) + b9de: 3301 movi r3, 1 + b9e0: a560 st.b r3, (r5, 0x0) + b9e2: 2600 addi r6, 1 + b9e4: 3e51 cmpnei r6, 17 + b9e6: 0bc5 bt 0xb970 // b970 + b9e8: 07ac br 0xb940 // b940 + b9ea: 5d4c addu r2, r5, r3 + b9ec: 8240 ld.b r2, (r2, 0x0) + b9ee: 4241 lsli r2, r2, 1 + b9f0: 4322 lsli r1, r3, 2 + b9f2: 6098 addu r2, r6 + b9f4: 6050 addu r1, r4 + b9f6: 8a40 ld.h r2, (r2, 0x0) + b9f8: 91f2 ld.w r7, (r1, 0x48) + b9fa: 4254 lsli r2, r2, 20 + b9fc: 6c9c or r2, r7 + b9fe: 2300 addi r3, 1 + ba00: b152 st.w r2, (r1, 0x48) + ba02: 74cc zextb r3, r3 + ba04: 07ad br 0xb95e // b95e + ba06: 0000 bkpt + ba08: 20000070 .long 0x20000070 + ba0c: 20000aaa .long 0x20000aaa + ba10: 20000265 .long 0x20000265 + ba14: 200009b5 .long 0x200009b5 + ba18: 20000058 .long 0x20000058 + ba1c: 20000ae4 .long 0x20000ae4 + ba20: 20000b34 .long 0x20000b34 + ba24: 20000242 .long 0x20000242 + ba28: 20000054 .long 0x20000054 + ba2c: 20000268 .long 0x20000268 + ba30: 2000026e .long 0x2000026e + ba34: 20000b6a .long 0x20000b6a + ba38: 20000bda .long 0x20000bda + +Disassembly of section .text.TK_Baseline_tracking: + +0000ba3c : + ba3c: 14d4 push r4-r7, r15 + ba3e: 1421 subi r14, r14, 4 + ba40: 014a lrw r2, 0x20000a26 // bd94 + ba42: 8260 ld.b r3, (r2, 0x0) + ba44: 2300 addi r3, 1 + ba46: 74cc zextb r3, r3 + ba48: a260 st.b r3, (r2, 0x0) + ba4a: 8260 ld.b r3, (r2, 0x0) + ba4c: 012c lrw r1, 0x20000265 // bd98 + ba4e: 8120 ld.b r1, (r1, 0x0) + ba50: 644c cmphs r3, r1 + ba52: 0803 bt 0xba58 // ba58 + ba54: e800020f br 0xbe72 // be72 + ba58: 3300 movi r3, 0 + ba5a: a260 st.b r3, (r2, 0x0) + ba5c: 016f lrw r3, 0x20000928 // bd9c + ba5e: 9360 ld.w r3, (r3, 0x0) + ba60: 3b40 cmpnei r3, 0 + ba62: 0c03 bf 0xba68 // ba68 + ba64: e8000209 br 0xbe76 // be76 + ba68: 0171 lrw r3, 0x20000948 // bda0 + ba6a: 0150 lrw r2, 0x20000292 // bda4 + ba6c: 3100 movi r1, 0 + ba6e: b860 st.w r3, (r14, 0x0) + ba70: 6d0f mov r4, r3 + ba72: 0111 lrw r0, 0x20000888 // bda8 + ba74: 4161 lsli r3, r1, 1 + ba76: 98a0 ld.w r5, (r14, 0x0) + ba78: 614c addu r5, r3 + ba7a: 8da0 ld.h r5, (r5, 0x0) + ba7c: 7557 sexth r5, r5 + ba7e: 3ddf btsti r5, 31 + ba80: 0c1c bf 0xbab8 // bab8 + ba82: 01d4 lrw r6, 0x20000bda // bdac + ba84: 58ac addu r5, r0, r3 + ba86: 618c addu r6, r3 + ba88: 8da0 ld.h r5, (r5, 0x0) + ba8a: 8ec0 ld.h r6, (r6, 0x0) + ba8c: 7599 zexth r6, r6 + ba8e: 7555 zexth r5, r5 + ba90: 615a subu r5, r6 + ba92: 8ac0 ld.h r6, (r2, 0x0) + ba94: 6595 cmplt r5, r6 + ba96: 0811 bt 0xbab8 // bab8 + ba98: 01b9 lrw r5, 0x20000aec // bdb0 + ba9a: 6144 addu r5, r1 + ba9c: 85c0 ld.b r6, (r5, 0x0) + ba9e: 2600 addi r6, 1 + baa0: 7598 zextb r6, r6 + baa2: a5c0 st.b r6, (r5, 0x0) + baa4: 01db lrw r6, 0x20000090 // bdb4 + baa6: 85e0 ld.b r7, (r5, 0x0) + baa8: 86ca ld.b r6, (r6, 0xa) + baaa: 65d8 cmphs r6, r7 + baac: 0806 bt 0xbab8 // bab8 + baae: 01dc lrw r6, 0x20000994 // bdb8 + bab0: 3701 movi r7, 1 + bab2: a6e0 st.b r7, (r6, 0x0) + bab4: 3600 movi r6, 0 + bab6: a5c0 st.b r6, (r5, 0x0) + bab8: 5cac addu r5, r4, r3 + baba: 8da0 ld.h r5, (r5, 0x0) + babc: 7557 sexth r5, r5 + babe: 3d20 cmplti r5, 1 + bac0: 081d bt 0xbafa // bafa + bac2: 02a4 lrw r5, 0x20000bda // bdac + bac4: 614c addu r5, r3 + bac6: 58cc addu r6, r0, r3 + bac8: 8da0 ld.h r5, (r5, 0x0) + baca: 8ec0 ld.h r6, (r6, 0x0) + bacc: 7599 zexth r6, r6 + bace: 7555 zexth r5, r5 + bad0: 615a subu r5, r6 + bad2: 8ac0 ld.h r6, (r2, 0x0) + bad4: 46c2 lsli r6, r6, 2 + bad6: 6595 cmplt r5, r6 + bad8: 0811 bt 0xbafa // bafa + bada: 02a6 lrw r5, 0x20000a54 // bdbc + badc: 6144 addu r5, r1 + bade: 85c0 ld.b r6, (r5, 0x0) + bae0: 2600 addi r6, 1 + bae2: 7598 zextb r6, r6 + bae4: a5c0 st.b r6, (r5, 0x0) + bae6: 02cb lrw r6, 0x20000090 // bdb4 + bae8: 85e0 ld.b r7, (r5, 0x0) + baea: 86cb ld.b r6, (r6, 0xb) + baec: 65d8 cmphs r6, r7 + baee: 0806 bt 0xbafa // bafa + baf0: 02cd lrw r6, 0x20000994 // bdb8 + baf2: 3701 movi r7, 1 + baf4: a6e0 st.b r7, (r6, 0x0) + baf6: 3600 movi r6, 0 + baf8: a5c0 st.b r6, (r5, 0x0) + bafa: 5cac addu r5, r4, r3 + bafc: 8da0 ld.h r5, (r5, 0x0) + bafe: 7557 sexth r5, r5 + bb00: 3ddf btsti r5, 31 + bb02: 0c10 bf 0xbb22 // bb22 + bb04: 02f5 lrw r7, 0x20000bda // bdac + bb06: 58cc addu r6, r0, r3 + bb08: 61cc addu r7, r3 + bb0a: 8ea0 ld.h r5, (r6, 0x0) + bb0c: 8fe0 ld.h r7, (r7, 0x0) + bb0e: 75dd zexth r7, r7 + bb10: 7555 zexth r5, r5 + bb12: 615e subu r5, r7 + bb14: 8ae0 ld.h r7, (r2, 0x0) + bb16: 65d5 cmplt r5, r7 + bb18: 0c05 bf 0xbb22 // bb22 + bb1a: 8ea0 ld.h r5, (r6, 0x0) + bb1c: 2d00 subi r5, 1 + bb1e: 7555 zexth r5, r5 + bb20: aea0 st.h r5, (r6, 0x0) + bb22: 5cac addu r5, r4, r3 + bb24: 8da0 ld.h r5, (r5, 0x0) + bb26: 7557 sexth r5, r5 + bb28: 3ddf btsti r5, 31 + bb2a: 0c11 bf 0xbb4c // bb4c + bb2c: 02ff lrw r7, 0x20000bda // bdac + bb2e: 58cc addu r6, r0, r3 + bb30: 61cc addu r7, r3 + bb32: 8ea0 ld.h r5, (r6, 0x0) + bb34: 8fe0 ld.h r7, (r7, 0x0) + bb36: 75dd zexth r7, r7 + bb38: 7555 zexth r5, r5 + bb3a: 615e subu r5, r7 + bb3c: 8ae0 ld.h r7, (r2, 0x0) + bb3e: 4fe1 lsri r7, r7, 1 + bb40: 65d5 cmplt r5, r7 + bb42: 0805 bt 0xbb4c // bb4c + bb44: 8ea0 ld.h r5, (r6, 0x0) + bb46: 2d01 subi r5, 2 + bb48: 7555 zexth r5, r5 + bb4a: aea0 st.h r5, (r6, 0x0) + bb4c: 5ccc addu r6, r4, r3 + bb4e: 8ea0 ld.h r5, (r6, 0x0) + bb50: 7557 sexth r5, r5 + bb52: 3d20 cmplti r5, 1 + bb54: 080c bt 0xbb6c // bb6c + bb56: 8ec0 ld.h r6, (r6, 0x0) + bb58: 8aa0 ld.h r5, (r2, 0x0) + bb5a: 759b sexth r6, r6 + bb5c: 4da1 lsri r5, r5, 1 + bb5e: 6559 cmplt r6, r5 + bb60: 0c06 bf 0xbb6c // bb6c + bb62: 58cc addu r6, r0, r3 + bb64: 8ea0 ld.h r5, (r6, 0x0) + bb66: 2500 addi r5, 1 + bb68: 7555 zexth r5, r5 + bb6a: aea0 st.h r5, (r6, 0x0) + bb6c: 5ccc addu r6, r4, r3 + bb6e: 8ea0 ld.h r5, (r6, 0x0) + bb70: 7557 sexth r5, r5 + bb72: 3d20 cmplti r5, 1 + bb74: 0810 bt 0xbb94 // bb94 + bb76: 8ee0 ld.h r7, (r6, 0x0) + bb78: 75df sexth r7, r7 + bb7a: 8aa0 ld.h r5, (r2, 0x0) + bb7c: 655d cmplt r7, r5 + bb7e: 0c0b bf 0xbb94 // bb94 + bb80: 8ec0 ld.h r6, (r6, 0x0) + bb82: 759b sexth r6, r6 + bb84: 4da1 lsri r5, r5, 1 + bb86: 6559 cmplt r6, r5 + bb88: 0806 bt 0xbb94 // bb94 + bb8a: 60c0 addu r3, r0 + bb8c: 8ba0 ld.h r5, (r3, 0x0) + bb8e: 2501 addi r5, 2 + bb90: 7555 zexth r5, r5 + bb92: aba0 st.h r5, (r3, 0x0) + bb94: 2100 addi r1, 1 + bb96: 3951 cmpnei r1, 17 + bb98: 2201 addi r2, 2 + bb9a: 0b6d bt 0xba74 // ba74 + bb9c: 0376 lrw r3, 0x200008bc // bdc0 + bb9e: 9360 ld.w r3, (r3, 0x0) + bba0: 3b40 cmpnei r3, 0 + bba2: 0980 bt 0xbea2 // bea2 + bba4: 0377 lrw r3, 0x20000a88 // bdc4 + bba6: 035f lrw r2, 0x20000292 // bda4 + bba8: 3100 movi r1, 0 + bbaa: b860 st.w r3, (r14, 0x0) + bbac: 6d0f mov r4, r3 + bbae: 0318 lrw r0, 0x20000a32 // bdc8 + bbb0: 4161 lsli r3, r1, 1 + bbb2: 98a0 ld.w r5, (r14, 0x0) + bbb4: 614c addu r5, r3 + bbb6: 8da0 ld.h r5, (r5, 0x0) + bbb8: 7557 sexth r5, r5 + bbba: 3ddf btsti r5, 31 + bbbc: 0c1c bf 0xbbf4 // bbf4 + bbbe: 03db lrw r6, 0x20000970 // bdcc + bbc0: 58ac addu r5, r0, r3 + bbc2: 618c addu r6, r3 + bbc4: 8da0 ld.h r5, (r5, 0x0) + bbc6: 8ec0 ld.h r6, (r6, 0x0) + bbc8: 7599 zexth r6, r6 + bbca: 7555 zexth r5, r5 + bbcc: 615a subu r5, r6 + bbce: 8ac0 ld.h r6, (r2, 0x0) + bbd0: 6595 cmplt r5, r6 + bbd2: 0811 bt 0xbbf4 // bbf4 + bbd4: 13bf lrw r5, 0x20000acc // bdd0 + bbd6: 6144 addu r5, r1 + bbd8: 85c0 ld.b r6, (r5, 0x0) + bbda: 2600 addi r6, 1 + bbdc: 7598 zextb r6, r6 + bbde: a5c0 st.b r6, (r5, 0x0) + bbe0: 13d5 lrw r6, 0x20000090 // bdb4 + bbe2: 85e0 ld.b r7, (r5, 0x0) + bbe4: 86ca ld.b r6, (r6, 0xa) + bbe6: 65d8 cmphs r6, r7 + bbe8: 0806 bt 0xbbf4 // bbf4 + bbea: 13d4 lrw r6, 0x20000994 // bdb8 + bbec: 3701 movi r7, 1 + bbee: a6e1 st.b r7, (r6, 0x1) + bbf0: 3600 movi r6, 0 + bbf2: a5c0 st.b r6, (r5, 0x0) + bbf4: 5cac addu r5, r4, r3 + bbf6: 8da0 ld.h r5, (r5, 0x0) + bbf8: 7557 sexth r5, r5 + bbfa: 3d20 cmplti r5, 1 + bbfc: 081d bt 0xbc36 // bc36 + bbfe: 13b4 lrw r5, 0x20000970 // bdcc + bc00: 614c addu r5, r3 + bc02: 58cc addu r6, r0, r3 + bc04: 8da0 ld.h r5, (r5, 0x0) + bc06: 8ec0 ld.h r6, (r6, 0x0) + bc08: 7599 zexth r6, r6 + bc0a: 7555 zexth r5, r5 + bc0c: 615a subu r5, r6 + bc0e: 8ac0 ld.h r6, (r2, 0x0) + bc10: 46c2 lsli r6, r6, 2 + bc12: 6595 cmplt r5, r6 + bc14: 0811 bt 0xbc36 // bc36 + bc16: 13b0 lrw r5, 0x200009ce // bdd4 + bc18: 6144 addu r5, r1 + bc1a: 85c0 ld.b r6, (r5, 0x0) + bc1c: 2600 addi r6, 1 + bc1e: 7598 zextb r6, r6 + bc20: a5c0 st.b r6, (r5, 0x0) + bc22: 13c5 lrw r6, 0x20000090 // bdb4 + bc24: 85e0 ld.b r7, (r5, 0x0) + bc26: 86cb ld.b r6, (r6, 0xb) + bc28: 65d8 cmphs r6, r7 + bc2a: 0806 bt 0xbc36 // bc36 + bc2c: 13c3 lrw r6, 0x20000994 // bdb8 + bc2e: 3701 movi r7, 1 + bc30: a6e1 st.b r7, (r6, 0x1) + bc32: 3600 movi r6, 0 + bc34: a5c0 st.b r6, (r5, 0x0) + bc36: 5cac addu r5, r4, r3 + bc38: 8da0 ld.h r5, (r5, 0x0) + bc3a: 7557 sexth r5, r5 + bc3c: 3ddf btsti r5, 31 + bc3e: 0c10 bf 0xbc5e // bc5e + bc40: 13e3 lrw r7, 0x20000970 // bdcc + bc42: 58cc addu r6, r0, r3 + bc44: 61cc addu r7, r3 + bc46: 8ea0 ld.h r5, (r6, 0x0) + bc48: 8fe0 ld.h r7, (r7, 0x0) + bc4a: 75dd zexth r7, r7 + bc4c: 7555 zexth r5, r5 + bc4e: 615e subu r5, r7 + bc50: 8ae0 ld.h r7, (r2, 0x0) + bc52: 65d5 cmplt r5, r7 + bc54: 0c05 bf 0xbc5e // bc5e + bc56: 8ea0 ld.h r5, (r6, 0x0) + bc58: 2d00 subi r5, 1 + bc5a: 7555 zexth r5, r5 + bc5c: aea0 st.h r5, (r6, 0x0) + bc5e: 5cac addu r5, r4, r3 + bc60: 8da0 ld.h r5, (r5, 0x0) + bc62: 7557 sexth r5, r5 + bc64: 3ddf btsti r5, 31 + bc66: 0c11 bf 0xbc88 // bc88 + bc68: 12f9 lrw r7, 0x20000970 // bdcc + bc6a: 58cc addu r6, r0, r3 + bc6c: 61cc addu r7, r3 + bc6e: 8ea0 ld.h r5, (r6, 0x0) + bc70: 8fe0 ld.h r7, (r7, 0x0) + bc72: 75dd zexth r7, r7 + bc74: 7555 zexth r5, r5 + bc76: 615e subu r5, r7 + bc78: 8ae0 ld.h r7, (r2, 0x0) + bc7a: 4fe1 lsri r7, r7, 1 + bc7c: 65d5 cmplt r5, r7 + bc7e: 0805 bt 0xbc88 // bc88 + bc80: 8ea0 ld.h r5, (r6, 0x0) + bc82: 2d01 subi r5, 2 + bc84: 7555 zexth r5, r5 + bc86: aea0 st.h r5, (r6, 0x0) + bc88: 5ccc addu r6, r4, r3 + bc8a: 8ea0 ld.h r5, (r6, 0x0) + bc8c: 7557 sexth r5, r5 + bc8e: 3d20 cmplti r5, 1 + bc90: 080c bt 0xbca8 // bca8 + bc92: 8ec0 ld.h r6, (r6, 0x0) + bc94: 8aa0 ld.h r5, (r2, 0x0) + bc96: 759b sexth r6, r6 + bc98: 4da1 lsri r5, r5, 1 + bc9a: 6559 cmplt r6, r5 + bc9c: 0c06 bf 0xbca8 // bca8 + bc9e: 58cc addu r6, r0, r3 + bca0: 8ea0 ld.h r5, (r6, 0x0) + bca2: 2500 addi r5, 1 + bca4: 7555 zexth r5, r5 + bca6: aea0 st.h r5, (r6, 0x0) + bca8: 5ccc addu r6, r4, r3 + bcaa: 8ea0 ld.h r5, (r6, 0x0) + bcac: 7557 sexth r5, r5 + bcae: 3d20 cmplti r5, 1 + bcb0: 0810 bt 0xbcd0 // bcd0 + bcb2: 8ee0 ld.h r7, (r6, 0x0) + bcb4: 75df sexth r7, r7 + bcb6: 8aa0 ld.h r5, (r2, 0x0) + bcb8: 655d cmplt r7, r5 + bcba: 0c0b bf 0xbcd0 // bcd0 + bcbc: 8ec0 ld.h r6, (r6, 0x0) + bcbe: 759b sexth r6, r6 + bcc0: 4da1 lsri r5, r5, 1 + bcc2: 6559 cmplt r6, r5 + bcc4: 0806 bt 0xbcd0 // bcd0 + bcc6: 60c0 addu r3, r0 + bcc8: 8ba0 ld.h r5, (r3, 0x0) + bcca: 2501 addi r5, 2 + bccc: 7555 zexth r5, r5 + bcce: aba0 st.h r5, (r3, 0x0) + bcd0: 2100 addi r1, 1 + bcd2: 3951 cmpnei r1, 17 + bcd4: 2201 addi r2, 2 + bcd6: 0b6d bt 0xbbb0 // bbb0 + bcd8: 1260 lrw r3, 0x200009a0 // bdd8 + bcda: 9360 ld.w r3, (r3, 0x0) + bcdc: 3b40 cmpnei r3, 0 + bcde: 08f8 bt 0xbece // bece + bce0: 117f lrw r3, 0x20000bb4 // bddc + bce2: 1151 lrw r2, 0x20000292 // bda4 + bce4: 3100 movi r1, 0 + bce6: b860 st.w r3, (r14, 0x0) + bce8: 6d0f mov r4, r3 + bcea: 111e lrw r0, 0x20000b48 // bde0 + bcec: 4161 lsli r3, r1, 1 + bcee: 98a0 ld.w r5, (r14, 0x0) + bcf0: 614c addu r5, r3 + bcf2: 8da0 ld.h r5, (r5, 0x0) + bcf4: 7557 sexth r5, r5 + bcf6: 3ddf btsti r5, 31 + bcf8: 0c1c bf 0xbd30 // bd30 + bcfa: 11db lrw r6, 0x20000a66 // bde4 + bcfc: 58ac addu r5, r0, r3 + bcfe: 618c addu r6, r3 + bd00: 8da0 ld.h r5, (r5, 0x0) + bd02: 8ec0 ld.h r6, (r6, 0x0) + bd04: 7599 zexth r6, r6 + bd06: 7555 zexth r5, r5 + bd08: 615a subu r5, r6 + bd0a: 8ac0 ld.h r6, (r2, 0x0) + bd0c: 6595 cmplt r5, r6 + bd0e: 0811 bt 0xbd30 // bd30 + bd10: 11b6 lrw r5, 0x200009bc // bde8 + bd12: 6144 addu r5, r1 + bd14: 85c0 ld.b r6, (r5, 0x0) + bd16: 2600 addi r6, 1 + bd18: 7598 zextb r6, r6 + bd1a: a5c0 st.b r6, (r5, 0x0) + bd1c: 11c6 lrw r6, 0x20000090 // bdb4 + bd1e: 85e0 ld.b r7, (r5, 0x0) + bd20: 86ca ld.b r6, (r6, 0xa) + bd22: 65d8 cmphs r6, r7 + bd24: 0806 bt 0xbd30 // bd30 + bd26: 11c5 lrw r6, 0x20000994 // bdb8 + bd28: 3701 movi r7, 1 + bd2a: a6e2 st.b r7, (r6, 0x2) + bd2c: 3600 movi r6, 0 + bd2e: a5c0 st.b r6, (r5, 0x0) + bd30: 5cac addu r5, r4, r3 + bd32: 8da0 ld.h r5, (r5, 0x0) + bd34: 7557 sexth r5, r5 + bd36: 3d20 cmplti r5, 1 + bd38: 081d bt 0xbd72 // bd72 + bd3a: 11ab lrw r5, 0x20000a66 // bde4 + bd3c: 614c addu r5, r3 + bd3e: 58cc addu r6, r0, r3 + bd40: 8da0 ld.h r5, (r5, 0x0) + bd42: 8ec0 ld.h r6, (r6, 0x0) + bd44: 7599 zexth r6, r6 + bd46: 7555 zexth r5, r5 + bd48: 615a subu r5, r6 + bd4a: 8ac0 ld.h r6, (r2, 0x0) + bd4c: 46c2 lsli r6, r6, 2 + bd4e: 6595 cmplt r5, r6 + bd50: 0811 bt 0xbd72 // bd72 + bd52: 11a7 lrw r5, 0x200008aa // bdec + bd54: 6144 addu r5, r1 + bd56: 85c0 ld.b r6, (r5, 0x0) + bd58: 2600 addi r6, 1 + bd5a: 7598 zextb r6, r6 + bd5c: a5c0 st.b r6, (r5, 0x0) + bd5e: 10d6 lrw r6, 0x20000090 // bdb4 + bd60: 85e0 ld.b r7, (r5, 0x0) + bd62: 86cb ld.b r6, (r6, 0xb) + bd64: 65d8 cmphs r6, r7 + bd66: 0806 bt 0xbd72 // bd72 + bd68: 10d4 lrw r6, 0x20000994 // bdb8 + bd6a: 3701 movi r7, 1 + bd6c: a6e2 st.b r7, (r6, 0x2) + bd6e: 3600 movi r6, 0 + bd70: a5c0 st.b r6, (r5, 0x0) + bd72: 5cac addu r5, r4, r3 + bd74: 8da0 ld.h r5, (r5, 0x0) + bd76: 7557 sexth r5, r5 + bd78: 3ddf btsti r5, 31 + bd7a: 0c3f bf 0xbdf8 // bdf8 + bd7c: 10fa lrw r7, 0x20000a66 // bde4 + bd7e: 58cc addu r6, r0, r3 + bd80: 61cc addu r7, r3 + bd82: 8ea0 ld.h r5, (r6, 0x0) + bd84: 8fe0 ld.h r7, (r7, 0x0) + bd86: 75dd zexth r7, r7 + bd88: 7555 zexth r5, r5 + bd8a: 615e subu r5, r7 + bd8c: 8ae0 ld.h r7, (r2, 0x0) + bd8e: 65d5 cmplt r5, r7 + bd90: 0c34 bf 0xbdf8 // bdf8 + bd92: 042f br 0xbdf0 // bdf0 + bd94: 20000a26 .long 0x20000a26 + bd98: 20000265 .long 0x20000265 + bd9c: 20000928 .long 0x20000928 + bda0: 20000948 .long 0x20000948 + bda4: 20000292 .long 0x20000292 + bda8: 20000888 .long 0x20000888 + bdac: 20000bda .long 0x20000bda + bdb0: 20000aec .long 0x20000aec + bdb4: 20000090 .long 0x20000090 + bdb8: 20000994 .long 0x20000994 + bdbc: 20000a54 .long 0x20000a54 + bdc0: 200008bc .long 0x200008bc + bdc4: 20000a88 .long 0x20000a88 + bdc8: 20000a32 .long 0x20000a32 + bdcc: 20000970 .long 0x20000970 + bdd0: 20000acc .long 0x20000acc + bdd4: 200009ce .long 0x200009ce + bdd8: 200009a0 .long 0x200009a0 + bddc: 20000bb4 .long 0x20000bb4 + bde0: 20000b48 .long 0x20000b48 + bde4: 20000a66 .long 0x20000a66 + bde8: 200009bc .long 0x200009bc + bdec: 200008aa .long 0x200008aa + bdf0: 8ea0 ld.h r5, (r6, 0x0) + bdf2: 2d00 subi r5, 1 + bdf4: 7555 zexth r5, r5 + bdf6: aea0 st.h r5, (r6, 0x0) + bdf8: 5cac addu r5, r4, r3 + bdfa: 8da0 ld.h r5, (r5, 0x0) + bdfc: 7557 sexth r5, r5 + bdfe: 3ddf btsti r5, 31 + be00: 0c11 bf 0xbe22 // be22 + be02: 11ff lrw r7, 0x20000a66 // befc + be04: 58cc addu r6, r0, r3 + be06: 61cc addu r7, r3 + be08: 8ea0 ld.h r5, (r6, 0x0) + be0a: 8fe0 ld.h r7, (r7, 0x0) + be0c: 75dd zexth r7, r7 + be0e: 7555 zexth r5, r5 + be10: 615e subu r5, r7 + be12: 8ae0 ld.h r7, (r2, 0x0) + be14: 4fe1 lsri r7, r7, 1 + be16: 65d5 cmplt r5, r7 + be18: 0805 bt 0xbe22 // be22 + be1a: 8ea0 ld.h r5, (r6, 0x0) + be1c: 2d01 subi r5, 2 + be1e: 7555 zexth r5, r5 + be20: aea0 st.h r5, (r6, 0x0) + be22: 5ccc addu r6, r4, r3 + be24: 8ea0 ld.h r5, (r6, 0x0) + be26: 7557 sexth r5, r5 + be28: 3d20 cmplti r5, 1 + be2a: 080c bt 0xbe42 // be42 + be2c: 8ec0 ld.h r6, (r6, 0x0) + be2e: 8aa0 ld.h r5, (r2, 0x0) + be30: 759b sexth r6, r6 + be32: 4da1 lsri r5, r5, 1 + be34: 6559 cmplt r6, r5 + be36: 0c06 bf 0xbe42 // be42 + be38: 58cc addu r6, r0, r3 + be3a: 8ea0 ld.h r5, (r6, 0x0) + be3c: 2500 addi r5, 1 + be3e: 7555 zexth r5, r5 + be40: aea0 st.h r5, (r6, 0x0) + be42: 5ccc addu r6, r4, r3 + be44: 8ea0 ld.h r5, (r6, 0x0) + be46: 7557 sexth r5, r5 + be48: 3d20 cmplti r5, 1 + be4a: 0810 bt 0xbe6a // be6a + be4c: 8ee0 ld.h r7, (r6, 0x0) + be4e: 75df sexth r7, r7 + be50: 8aa0 ld.h r5, (r2, 0x0) + be52: 655d cmplt r7, r5 + be54: 0c0b bf 0xbe6a // be6a + be56: 8ec0 ld.h r6, (r6, 0x0) + be58: 759b sexth r6, r6 + be5a: 4da1 lsri r5, r5, 1 + be5c: 6559 cmplt r6, r5 + be5e: 0806 bt 0xbe6a // be6a + be60: 60c0 addu r3, r0 + be62: 8ba0 ld.h r5, (r3, 0x0) + be64: 2501 addi r5, 2 + be66: 7555 zexth r5, r5 + be68: aba0 st.h r5, (r3, 0x0) + be6a: 2100 addi r1, 1 + be6c: 3951 cmpnei r1, 17 + be6e: 2201 addi r2, 2 + be70: 0b3e bt 0xbcec // bcec + be72: 1401 addi r14, r14, 4 + be74: 1494 pop r4-r7, r15 + be76: e3fff6c9 bsr 0xac08 // ac08 + be7a: 1162 lrw r3, 0x20000090 // bf00 + be7c: 836c ld.b r3, (r3, 0xc) + be7e: 64c0 cmphs r0, r3 + be80: 1141 lrw r2, 0x200008c0 // bf04 + be82: 0c0e bf 0xbe9e // be9e + be84: 8260 ld.b r3, (r2, 0x0) + be86: 74cc zextb r3, r3 + be88: 3b01 cmphsi r3, 2 + be8a: 0c05 bf 0xbe94 // be94 + be8c: 107f lrw r3, 0x20000994 // bf08 + be8e: 3201 movi r2, 1 + be90: a340 st.b r2, (r3, 0x0) + be92: 0685 br 0xbb9c // bb9c + be94: 8260 ld.b r3, (r2, 0x0) + be96: 2300 addi r3, 1 + be98: 74cc zextb r3, r3 + be9a: a260 st.b r3, (r2, 0x0) + be9c: 0680 br 0xbb9c // bb9c + be9e: 3300 movi r3, 0 + bea0: 07fd br 0xbe9a // be9a + bea2: e3fff6c7 bsr 0xac30 // ac30 + bea6: 1077 lrw r3, 0x20000090 // bf00 + bea8: 836c ld.b r3, (r3, 0xc) + beaa: 64c0 cmphs r0, r3 + beac: 1056 lrw r2, 0x200008c0 // bf04 + beae: 0c0e bf 0xbeca // beca + beb0: 8261 ld.b r3, (r2, 0x1) + beb2: 74cc zextb r3, r3 + beb4: 3b01 cmphsi r3, 2 + beb6: 0c05 bf 0xbec0 // bec0 + beb8: 1074 lrw r3, 0x20000994 // bf08 + beba: 3201 movi r2, 1 + bebc: a341 st.b r2, (r3, 0x1) + bebe: 070d br 0xbcd8 // bcd8 + bec0: 8261 ld.b r3, (r2, 0x1) + bec2: 2300 addi r3, 1 + bec4: 74cc zextb r3, r3 + bec6: a261 st.b r3, (r2, 0x1) + bec8: 0708 br 0xbcd8 // bcd8 + beca: 3300 movi r3, 0 + becc: 07fd br 0xbec6 // bec6 + bece: e3fff6c5 bsr 0xac58 // ac58 + bed2: 106c lrw r3, 0x20000090 // bf00 + bed4: 836c ld.b r3, (r3, 0xc) + bed6: 64c0 cmphs r0, r3 + bed8: 104b lrw r2, 0x200008c0 // bf04 + beda: 0c0e bf 0xbef6 // bef6 + bedc: 8262 ld.b r3, (r2, 0x2) + bede: 74cc zextb r3, r3 + bee0: 3b01 cmphsi r3, 2 + bee2: 0c05 bf 0xbeec // beec + bee4: 1069 lrw r3, 0x20000994 // bf08 + bee6: 3201 movi r2, 1 + bee8: a342 st.b r2, (r3, 0x2) + beea: 07c4 br 0xbe72 // be72 + beec: 8262 ld.b r3, (r2, 0x2) + beee: 2300 addi r3, 1 + bef0: 74cc zextb r3, r3 + bef2: a262 st.b r3, (r2, 0x2) + bef4: 07bf br 0xbe72 // be72 + bef6: 3300 movi r3, 0 + bef8: 07fd br 0xbef2 // bef2 + befa: 0000 bkpt + befc: 20000a66 .long 0x20000a66 + bf00: 20000090 .long 0x20000090 + bf04: 200008c0 .long 0x200008c0 + bf08: 20000994 .long 0x20000994 + +Disassembly of section .text.TK_result_prog: + +0000bf0c : + bf0c: 14d4 push r4-r7, r15 + bf0e: 1424 subi r14, r14, 16 + bf10: 111f lrw r0, 0x20000928 // c00c + bf12: 1220 lrw r1, 0x200008bc // c010 + bf14: 1240 lrw r2, 0x200009a0 // c014 + bf16: b821 st.w r1, (r14, 0x4) + bf18: 9060 ld.w r3, (r0, 0x0) + bf1a: 91a0 ld.w r5, (r1, 0x0) + bf1c: 6cd4 or r3, r5 + bf1e: 9280 ld.w r4, (r2, 0x0) + bf20: 6cd0 or r3, r4 + bf22: 3b40 cmpnei r3, 0 + bf24: b800 st.w r0, (r14, 0x0) + bf26: b842 st.w r2, (r14, 0x8) + bf28: 119c lrw r4, 0x20000a28 // c018 + bf2a: 0c67 bf 0xbff8 // bff8 + bf2c: 111c lrw r0, 0x20000b00 // c01c + bf2e: 3500 movi r5, 0 + bf30: 117c lrw r3, 0x20000ac8 // c020 + bf32: b803 st.w r0, (r14, 0xc) + bf34: 3201 movi r2, 1 + bf36: 7094 lsl r2, r5 + bf38: b040 st.w r2, (r0, 0x0) + bf3a: 9840 ld.w r2, (r14, 0x0) + bf3c: 9240 ld.w r2, (r2, 0x0) + bf3e: 9020 ld.w r1, (r0, 0x0) + bf40: 6884 and r2, r1 + bf42: b340 st.w r2, (r3, 0x0) + bf44: 9841 ld.w r2, (r14, 0x4) + bf46: 9240 ld.w r2, (r2, 0x0) + bf48: 9020 ld.w r1, (r0, 0x0) + bf4a: 6848 and r1, r2 + bf4c: 1156 lrw r2, 0x20000b8c // c024 + bf4e: b220 st.w r1, (r2, 0x0) + bf50: 9822 ld.w r1, (r14, 0x8) + bf52: 9120 ld.w r1, (r1, 0x0) + bf54: 90c0 ld.w r6, (r0, 0x0) + bf56: 6984 and r6, r1 + bf58: 1134 lrw r1, 0x20000a2c // c028 + bf5a: b1c0 st.w r6, (r1, 0x0) + bf5c: 93e0 ld.w r7, (r3, 0x0) + bf5e: 92c0 ld.w r6, (r2, 0x0) + bf60: 659e cmpne r7, r6 + bf62: 0807 bt 0xbf70 // bf70 + bf64: 92e0 ld.w r7, (r2, 0x0) + bf66: 91c0 ld.w r6, (r1, 0x0) + bf68: 659e cmpne r7, r6 + bf6a: 0803 bt 0xbf70 // bf70 + bf6c: 9340 ld.w r2, (r3, 0x0) + bf6e: 040c br 0xbf86 // bf86 + bf70: 92c0 ld.w r6, (r2, 0x0) + bf72: 3e40 cmpnei r6, 0 + bf74: 0c29 bf 0xbfc6 // bfc6 + bf76: 91c0 ld.w r6, (r1, 0x0) + bf78: 3e40 cmpnei r6, 0 + bf7a: 0c26 bf 0xbfc6 // bfc6 + bf7c: 92e0 ld.w r7, (r2, 0x0) + bf7e: 91c0 ld.w r6, (r1, 0x0) + bf80: 659e cmpne r7, r6 + bf82: 0822 bt 0xbfc6 // bfc6 + bf84: 9240 ld.w r2, (r2, 0x0) + bf86: 9420 ld.w r1, (r4, 0x0) + bf88: 6c84 or r2, r1 + bf8a: 2500 addi r5, 1 + bf8c: 3d51 cmpnei r5, 17 + bf8e: b440 st.w r2, (r4, 0x0) + bf90: 0bd2 bt 0xbf34 // bf34 + bf92: 9460 ld.w r3, (r4, 0x0) + bf94: 3b40 cmpnei r3, 0 + bf96: 1146 lrw r2, 0x20000b30 // c02c + bf98: 0c32 bf 0xbffc // bffc + bf9a: 9420 ld.w r1, (r4, 0x0) + bf9c: 9260 ld.w r3, (r2, 0x0) + bf9e: 64c6 cmpne r1, r3 + bfa0: 0c06 bf 0xbfac // bfac + bfa2: 9460 ld.w r3, (r4, 0x0) + bfa4: b260 st.w r3, (r2, 0x0) + bfa6: 3200 movi r2, 0 + bfa8: 1162 lrw r3, 0x20000946 // c030 + bfaa: a340 st.b r2, (r3, 0x0) + bfac: e3fff61a bsr 0xabe0 // abe0 + bfb0: 1161 lrw r3, 0x2000026c // c034 + bfb2: 8360 ld.b r3, (r3, 0x0) + bfb4: 640c cmphs r3, r0 + bfb6: 0806 bt 0xbfc2 // bfc2 + bfb8: 3300 movi r3, 0 + bfba: b460 st.w r3, (r4, 0x0) + bfbc: 3201 movi r2, 1 + bfbe: 107d lrw r3, 0x20000946 // c030 + bfc0: a340 st.b r2, (r3, 0x0) + bfc2: 1404 addi r14, r14, 16 + bfc4: 1494 pop r4-r7, r15 + bfc6: 93c0 ld.w r6, (r3, 0x0) + bfc8: 3e40 cmpnei r6, 0 + bfca: 0c08 bf 0xbfda // bfda + bfcc: 92c0 ld.w r6, (r2, 0x0) + bfce: 3e40 cmpnei r6, 0 + bfd0: 0c05 bf 0xbfda // bfda + bfd2: 93c0 ld.w r6, (r3, 0x0) + bfd4: 9240 ld.w r2, (r2, 0x0) + bfd6: 649a cmpne r6, r2 + bfd8: 0fca bf 0xbf6c // bf6c + bfda: 9340 ld.w r2, (r3, 0x0) + bfdc: 3a40 cmpnei r2, 0 + bfde: 0c08 bf 0xbfee // bfee + bfe0: 9140 ld.w r2, (r1, 0x0) + bfe2: 3a40 cmpnei r2, 0 + bfe4: 0c05 bf 0xbfee // bfee + bfe6: 9340 ld.w r2, (r3, 0x0) + bfe8: 9120 ld.w r1, (r1, 0x0) + bfea: 644a cmpne r2, r1 + bfec: 0fc0 bf 0xbf6c // bf6c + bfee: 9843 ld.w r2, (r14, 0xc) + bff0: 9220 ld.w r1, (r2, 0x0) + bff2: 9440 ld.w r2, (r4, 0x0) + bff4: 6885 andn r2, r1 + bff6: 07ca br 0xbf8a // bf8a + bff8: b460 st.w r3, (r4, 0x0) + bffa: 07cc br 0xbf92 // bf92 + bffc: b260 st.w r3, (r2, 0x0) + bffe: 3100 movi r1, 0 + c000: 104c lrw r2, 0x20000946 // c030 + c002: a220 st.b r1, (r2, 0x0) + c004: 104d lrw r2, 0x20000a20 // c038 + c006: b260 st.w r3, (r2, 0x0) + c008: 07dd br 0xbfc2 // bfc2 + c00a: 0000 bkpt + c00c: 20000928 .long 0x20000928 + c010: 200008bc .long 0x200008bc + c014: 200009a0 .long 0x200009a0 + c018: 20000a28 .long 0x20000a28 + c01c: 20000b00 .long 0x20000b00 + c020: 20000ac8 .long 0x20000ac8 + c024: 20000b8c .long 0x20000b8c + c028: 20000a2c .long 0x20000a2c + c02c: 20000b30 .long 0x20000b30 + c030: 20000946 .long 0x20000946 + c034: 2000026c .long 0x2000026c + c038: 20000a20 .long 0x20000a20 + +Disassembly of section .text.get_key_seq: + +0000c03c : + c03c: 14c4 push r4-r7 + c03e: 106c lrw r3, 0x20000268 // c06c + c040: 3200 movi r2, 0 + c042: 9380 ld.w r4, (r3, 0x0) + c044: 3000 movi r0, 0 + c046: 3300 movi r3, 0 + c048: 3501 movi r5, 1 + c04a: 10ca lrw r6, 0x20000b34 // c070 + c04c: 6c53 mov r1, r4 + c04e: 704d lsr r1, r3 + c050: 6854 and r1, r5 + c052: 3940 cmpnei r1, 0 + c054: 75cc zextb r7, r3 + c056: 0c06 bf 0xc062 // c062 + c058: 5e28 addu r1, r6, r2 + c05a: 2200 addi r2, 1 + c05c: 2000 addi r0, 1 + c05e: a1e0 st.b r7, (r1, 0x0) + c060: 7488 zextb r2, r2 + c062: 2300 addi r3, 1 + c064: 3b51 cmpnei r3, 17 + c066: 0bf3 bt 0xc04c // c04c + c068: 7400 zextb r0, r0 + c06a: 1484 pop r4-r7 + c06c: 20000268 .long 0x20000268 + c070: 20000b34 .long 0x20000b34 + +Disassembly of section .text.CORET_CONFIG: + +0000c074 : + c074: 14d0 push r15 + c076: e3ffca05 bsr 0x5480 // 5480 + c07a: 3180 movi r1, 128 + c07c: 4124 lsli r1, r1, 4 + c07e: 3001 movi r0, 1 + c080: e3ffc180 bsr 0x4380 // 4380 + c084: 1068 lrw r3, 0x20000064 // c0a4 + c086: 1049 lrw r2, 0x200002b8 // c0a8 + c088: 9360 ld.w r3, (r3, 0x0) + c08a: 9240 ld.w r2, (r2, 0x0) + c08c: b345 st.w r2, (r3, 0x14) + c08e: e3ffca29 bsr 0x54e0 // 54e0 + c092: e3ffca17 bsr 0x54c0 // 54c0 + c096: e3ffca1d bsr 0x54d0 // 54d0 + c09a: e3ffca0b bsr 0x54b0 // 54b0 + c09e: e3ffc9fd bsr 0x5498 // 5498 + c0a2: 1490 pop r15 + c0a4: 20000064 .long 0x20000064 + c0a8: 200002b8 .long 0x200002b8 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +0000c0ac : + c0ac: 1066 lrw r3, 0x20000054 // c0c4 + c0ae: 3100 movi r1, 0 + c0b0: 9300 ld.w r0, (r3, 0x0) + c0b2: 3300 movi r3, 0 + c0b4: 4342 lsli r2, r3, 2 + c0b6: 2300 addi r3, 1 + c0b8: 6080 addu r2, r0 + c0ba: 3b51 cmpnei r3, 17 + c0bc: b220 st.w r1, (r2, 0x0) + c0be: b232 st.w r1, (r2, 0x48) + c0c0: 0bfa bt 0xc0b4 // c0b4 + c0c2: 783c jmp r15 + c0c4: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_freq_para_init: + +0000c0c8 : + c0c8: 14d1 push r4, r15 + c0ca: 107e lrw r3, 0x20000239 // c140 + c0cc: 8360 ld.b r3, (r3, 0x0) + c0ce: 3b40 cmpnei r3, 0 + c0d0: 080c bt 0xc0e8 // c0e8 + c0d2: 107d lrw r3, 0x20000070 // c144 + c0d4: 105d lrw r2, 0x20000bfc // c148 + c0d6: 932c ld.w r1, (r3, 0x30) + c0d8: b220 st.w r1, (r2, 0x0) + c0da: 932d ld.w r1, (r3, 0x34) + c0dc: 105c lrw r2, 0x2000096c // c14c + c0de: b220 st.w r1, (r2, 0x0) + c0e0: 934e ld.w r2, (r3, 0x38) + c0e2: 107c lrw r3, 0x2000099c // c150 + c0e4: b340 st.w r2, (r3, 0x0) + c0e6: 1491 pop r4, r15 + c0e8: 3b41 cmpnei r3, 1 + c0ea: 0bfe bt 0xc0e6 // c0e6 + c0ec: 1076 lrw r3, 0x20000070 // c144 + c0ee: 1057 lrw r2, 0x20000bfc // c148 + c0f0: 932d ld.w r1, (r3, 0x34) + c0f2: b220 st.w r1, (r2, 0x0) + c0f4: 932d ld.w r1, (r3, 0x34) + c0f6: 1056 lrw r2, 0x2000096c // c14c + c0f8: b220 st.w r1, (r2, 0x0) + c0fa: 934d ld.w r2, (r3, 0x34) + c0fc: 3105 movi r1, 5 + c0fe: 1075 lrw r3, 0x2000099c // c150 + c100: b340 st.w r2, (r3, 0x0) + c102: 1075 lrw r3, 0x20000058 // c154 + c104: 9380 ld.w r4, (r3, 0x0) + c106: 1075 lrw r3, 0x20000290 // c158 + c108: 8300 ld.b r0, (r3, 0x0) + c10a: e3ffd02d bsr 0x6164 // 6164 <__udivsi3> + c10e: 7400 zextb r0, r0 + c110: 1073 lrw r3, 0x2000023a // c15c + c112: b408 st.w r0, (r4, 0x20) + c114: 8300 ld.b r0, (r3, 0x0) + c116: 3804 cmphsi r0, 5 + c118: 1072 lrw r3, 0x20000a24 // c160 + c11a: 0810 bt 0xc13a // c13a + c11c: e3ffb9f0 bsr 0x34fc // 34fc <___gnu_csky_case_uqi> + c120: 090d0703 .long 0x090d0703 + c124: 000b .short 0x000b + c126: 3296 movi r2, 150 + c128: 4242 lsli r2, r2, 2 + c12a: ab40 st.h r2, (r3, 0x0) + c12c: 07dd br 0xc0e6 // c0e6 + c12e: 104e lrw r2, 0x5dc // c164 + c130: 07fd br 0xc12a // c12a + c132: 104e lrw r2, 0x1194 // c168 + c134: 07fb br 0xc12a // c12a + c136: 104e lrw r2, 0x1770 // c16c + c138: 07f9 br 0xc12a // c12a + c13a: 104e lrw r2, 0xbb8 // c170 + c13c: 07f7 br 0xc12a // c12a + c13e: 0000 bkpt + c140: 20000239 .long 0x20000239 + c144: 20000070 .long 0x20000070 + c148: 20000bfc .long 0x20000bfc + c14c: 2000096c .long 0x2000096c + c150: 2000099c .long 0x2000099c + c154: 20000058 .long 0x20000058 + c158: 20000290 .long 0x20000290 + c15c: 2000023a .long 0x2000023a + c160: 20000a24 .long 0x20000a24 + c164: 000005dc .long 0x000005dc + c168: 00001194 .long 0x00001194 + c16c: 00001770 .long 0x00001770 + c170: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.tk_reserved_init: + +0000c174 : + c174: 1065 lrw r3, 0x2000005c // c188 + c176: 1046 lrw r2, 0xa67a6cc7 // c18c + c178: 9360 ld.w r3, (r3, 0x0) + c17a: b356 st.w r2, (r3, 0x58) + c17c: 1045 lrw r2, 0x21f1f04 // c190 + c17e: b355 st.w r2, (r3, 0x54) + c180: 1045 lrw r2, 0x69966996 // c194 + c182: 1066 lrw r3, 0x40011180 // c198 + c184: b35f st.w r2, (r3, 0x7c) + c186: 783c jmp r15 + c188: 2000005c .long 0x2000005c + c18c: a67a6cc7 .long 0xa67a6cc7 + c190: 021f1f04 .long 0x021f1f04 + c194: 69966996 .long 0x69966996 + c198: 40011180 .long 0x40011180 + +Disassembly of section .text.TKEYIntHandler: + +0000c19c : + c19c: 1460 nie + c19e: 1462 ipush + c1a0: 14d1 push r4, r15 + c1a2: 1183 lrw r4, 0x20000070 // c22c + c1a4: 8460 ld.b r3, (r4, 0x0) + c1a6: 3b40 cmpnei r3, 0 + c1a8: 0815 bt 0xc1d2 // c1d2 + c1aa: 3301 movi r3, 1 + c1ac: a460 st.b r3, (r4, 0x0) + c1ae: 1161 lrw r3, 0x20000934 // c230 + c1b0: 8360 ld.b r3, (r3, 0x0) + c1b2: 3b41 cmpnei r3, 1 + c1b4: 080f bt 0xc1d2 // c1d2 + c1b6: 1140 lrw r2, 0x20000b45 // c234 + c1b8: 8260 ld.b r3, (r2, 0x0) + c1ba: 2300 addi r3, 1 + c1bc: 74cc zextb r3, r3 + c1be: a260 st.b r3, (r2, 0x0) + c1c0: 8260 ld.b r3, (r2, 0x0) + c1c2: 3b43 cmpnei r3, 3 + c1c4: 0803 bt 0xc1ca // c1ca + c1c6: 3300 movi r3, 0 + c1c8: a260 st.b r3, (r2, 0x0) + c1ca: e3fff4a5 bsr 0xab14 // ab14 + c1ce: 3301 movi r3, 1 + c1d0: a461 st.b r3, (r4, 0x1) + c1d2: 107a lrw r3, 0x20000058 // c238 + c1d4: 3101 movi r1, 1 + c1d6: 9360 ld.w r3, (r3, 0x0) + c1d8: 934a ld.w r2, (r3, 0x28) + c1da: 6884 and r2, r1 + c1dc: 3a40 cmpnei r2, 0 + c1de: 0c02 bf 0xc1e2 // c1e2 + c1e0: b32c st.w r1, (r3, 0x30) + c1e2: 934a ld.w r2, (r3, 0x28) + c1e4: 3102 movi r1, 2 + c1e6: 6884 and r2, r1 + c1e8: 3a40 cmpnei r2, 0 + c1ea: 0c02 bf 0xc1ee // c1ee + c1ec: b32c st.w r1, (r3, 0x30) + c1ee: 934a ld.w r2, (r3, 0x28) + c1f0: 3104 movi r1, 4 + c1f2: 6884 and r2, r1 + c1f4: 3a40 cmpnei r2, 0 + c1f6: 0c02 bf 0xc1fa // c1fa + c1f8: b32c st.w r1, (r3, 0x30) + c1fa: 934a ld.w r2, (r3, 0x28) + c1fc: 3108 movi r1, 8 + c1fe: 6884 and r2, r1 + c200: 3a40 cmpnei r2, 0 + c202: 0c02 bf 0xc206 // c206 + c204: b32c st.w r1, (r3, 0x30) + c206: 934a ld.w r2, (r3, 0x28) + c208: 3110 movi r1, 16 + c20a: 6884 and r2, r1 + c20c: 3a40 cmpnei r2, 0 + c20e: 0c02 bf 0xc212 // c212 + c210: b32c st.w r1, (r3, 0x30) + c212: 934a ld.w r2, (r3, 0x28) + c214: 3120 movi r1, 32 + c216: 6884 and r2, r1 + c218: 3a40 cmpnei r2, 0 + c21a: 0c02 bf 0xc21e // c21e + c21c: b32c st.w r1, (r3, 0x30) + c21e: d9ee2001 ld.w r15, (r14, 0x4) + c222: 9880 ld.w r4, (r14, 0x0) + c224: 1402 addi r14, r14, 8 + c226: 1463 ipop + c228: 1461 nir + c22a: 0000 bkpt + c22c: 20000070 .long 0x20000070 + c230: 20000934 .long 0x20000934 + c234: 20000b45 .long 0x20000b45 + c238: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +0000c23c : + c23c: 1460 nie + c23e: 1462 ipush + c240: 14d3 push r4-r6, r15 + c242: 1269 lrw r3, 0x20000064 // c364 + c244: 3400 movi r4, 0 + c246: 9360 ld.w r3, (r3, 0x0) + c248: b386 st.w r4, (r3, 0x18) + c24a: 1268 lrw r3, 0x20000934 // c368 + c24c: 8360 ld.b r3, (r3, 0x0) + c24e: 3b41 cmpnei r3, 1 + c250: 0840 bt 0xc2d0 // c2d0 + c252: e3fff6f5 bsr 0xb03c // b03c + c256: e3fff727 bsr 0xb0a4 // b0a4 + c25a: e3fffb5d bsr 0xb914 // b914 + c25e: e3fffbef bsr 0xba3c // ba3c + c262: e3fff3c5 bsr 0xa9ec // a9ec + c266: e3fffe53 bsr 0xbf0c // bf0c + c26a: 1261 lrw r3, 0x20000a28 // c36c + c26c: 9360 ld.w r3, (r3, 0x0) + c26e: 3b40 cmpnei r3, 0 + c270: 0c12 bf 0xc294 // c294 + c272: 1260 lrw r3, 0x2000023c // c370 + c274: 9340 ld.w r2, (r3, 0x0) + c276: 3a40 cmpnei r2, 0 + c278: 0c0e bf 0xc294 // c294 + c27a: 117f lrw r3, 0x20000a20 // c374 + c27c: 3064 movi r0, 100 + c27e: 9320 ld.w r1, (r3, 0x0) + c280: 2100 addi r1, 1 + c282: b320 st.w r1, (r3, 0x0) + c284: 9320 ld.w r1, (r3, 0x0) + c286: 7c80 mult r2, r0 + c288: 6448 cmphs r2, r1 + c28a: 0805 bt 0xc294 // c294 + c28c: 115b lrw r2, 0x200009cd // c378 + c28e: 3101 movi r1, 1 + c290: a220 st.b r1, (r2, 0x0) + c292: b380 st.w r4, (r3, 0x0) + c294: 117a lrw r3, 0x20000235 // c37c + c296: 8340 ld.b r2, (r3, 0x0) + c298: 3a41 cmpnei r2, 1 + c29a: 0823 bt 0xc2e0 // c2e0 + c29c: 1139 lrw r1, 0x20000928 // c380 + c29e: 115a lrw r2, 0x200008bc // c384 + c2a0: 9100 ld.w r0, (r1, 0x0) + c2a2: 9260 ld.w r3, (r2, 0x0) + c2a4: 64c2 cmpne r0, r3 + c2a6: 1179 lrw r3, 0x20000ac4 // c388 + c2a8: 080a bt 0xc2bc // c2bc + c2aa: 9280 ld.w r4, (r2, 0x0) + c2ac: 1158 lrw r2, 0x200009a0 // c38c + c2ae: 9200 ld.w r0, (r2, 0x0) + c2b0: 6412 cmpne r4, r0 + c2b2: 0805 bt 0xc2bc // c2bc + c2b4: 9120 ld.w r1, (r1, 0x0) + c2b6: 9240 ld.w r2, (r2, 0x0) + c2b8: 6486 cmpne r1, r2 + c2ba: 0c09 bf 0xc2cc // c2cc + c2bc: 9340 ld.w r2, (r3, 0x0) + c2be: 2200 addi r2, 1 + c2c0: b340 st.w r2, (r3, 0x0) + c2c2: 1154 lrw r2, 0x20000090 // c390 + c2c4: 823c ld.b r1, (r2, 0x1c) + c2c6: 9340 ld.w r2, (r3, 0x0) + c2c8: 6484 cmphs r1, r2 + c2ca: 0803 bt 0xc2d0 // c2d0 + c2cc: 3200 movi r2, 0 + c2ce: b340 st.w r2, (r3, 0x0) + c2d0: d9ee2003 ld.w r15, (r14, 0xc) + c2d4: 98c2 ld.w r6, (r14, 0x8) + c2d6: 98a1 ld.w r5, (r14, 0x4) + c2d8: 9880 ld.w r4, (r14, 0x0) + c2da: 1404 addi r14, r14, 16 + c2dc: 1463 ipop + c2de: 1461 nir + c2e0: 83a0 ld.b r5, (r3, 0x0) + c2e2: 7554 zextb r5, r5 + c2e4: 3d40 cmpnei r5, 0 + c2e6: 0bf5 bt 0xc2d0 // c2d0 + c2e8: 1166 lrw r3, 0x20000928 // c380 + c2ea: 1147 lrw r2, 0x200008bc // c384 + c2ec: 9300 ld.w r0, (r3, 0x0) + c2ee: 9220 ld.w r1, (r2, 0x0) + c2f0: 6442 cmpne r0, r1 + c2f2: 1127 lrw r1, 0x200009a0 // c38c + c2f4: 1105 lrw r0, 0x20000ac4 // c388 + c2f6: 0c33 bf 0xc35c // c35c + c2f8: 92c0 ld.w r6, (r2, 0x0) + c2fa: 9180 ld.w r4, (r1, 0x0) + c2fc: 651a cmpne r6, r4 + c2fe: 0c2f bf 0xc35c // c35c + c300: 93c0 ld.w r6, (r3, 0x0) + c302: 9180 ld.w r4, (r1, 0x0) + c304: 651a cmpne r6, r4 + c306: 0c2b bf 0xc35c // c35c + c308: 9080 ld.w r4, (r0, 0x0) + c30a: 2400 addi r4, 1 + c30c: b080 st.w r4, (r0, 0x0) + c30e: 1181 lrw r4, 0x20000090 // c390 + c310: 84dc ld.b r6, (r4, 0x1c) + c312: 9080 ld.w r4, (r0, 0x0) + c314: 6518 cmphs r6, r4 + c316: 0802 bt 0xc31a // c31a + c318: b0a0 st.w r5, (r0, 0x0) + c31a: 9380 ld.w r4, (r3, 0x0) + c31c: 9200 ld.w r0, (r2, 0x0) + c31e: 6412 cmpne r4, r0 + c320: 101d lrw r0, 0x20000b04 // c394 + c322: 0c04 bf 0xc32a // c32a + c324: 9180 ld.w r4, (r1, 0x0) + c326: 3c40 cmpnei r4, 0 + c328: 0c0f bf 0xc346 // c346 + c32a: 93a0 ld.w r5, (r3, 0x0) + c32c: 9180 ld.w r4, (r1, 0x0) + c32e: 6516 cmpne r5, r4 + c330: 0c04 bf 0xc338 // c338 + c332: 9280 ld.w r4, (r2, 0x0) + c334: 3c40 cmpnei r4, 0 + c336: 0c08 bf 0xc346 // c346 + c338: 9120 ld.w r1, (r1, 0x0) + c33a: 9240 ld.w r2, (r2, 0x0) + c33c: 6486 cmpne r1, r2 + c33e: 0c0c bf 0xc356 // c356 + c340: 9360 ld.w r3, (r3, 0x0) + c342: 3b40 cmpnei r3, 0 + c344: 0809 bt 0xc356 // c356 + c346: 9060 ld.w r3, (r0, 0x0) + c348: 2300 addi r3, 1 + c34a: b060 st.w r3, (r0, 0x0) + c34c: 1071 lrw r3, 0x20000090 // c390 + c34e: 835c ld.b r2, (r3, 0x1c) + c350: 9060 ld.w r3, (r0, 0x0) + c352: 64c8 cmphs r2, r3 + c354: 0bbe bt 0xc2d0 // c2d0 + c356: 3300 movi r3, 0 + c358: b060 st.w r3, (r0, 0x0) + c35a: 07bb br 0xc2d0 // c2d0 + c35c: 3400 movi r4, 0 + c35e: b080 st.w r4, (r0, 0x0) + c360: 07dd br 0xc31a // c31a + c362: 0000 bkpt + c364: 20000064 .long 0x20000064 + c368: 20000934 .long 0x20000934 + c36c: 20000a28 .long 0x20000a28 + c370: 2000023c .long 0x2000023c + c374: 20000a20 .long 0x20000a20 + c378: 200009cd .long 0x200009cd + c37c: 20000235 .long 0x20000235 + c380: 20000928 .long 0x20000928 + c384: 200008bc .long 0x200008bc + c388: 20000ac4 .long 0x20000ac4 + c38c: 200009a0 .long 0x200009a0 + c390: 20000090 .long 0x20000090 + c394: 20000b04 .long 0x20000b04 + +Disassembly of section .text.tk_init: + +0000c398 : + c398: 14d4 push r4-r7, r15 + c39a: 142c subi r14, r14, 48 + c39c: e3fffeec bsr 0xc174 // c174 + c3a0: e3ffc7d0 bsr 0x5340 // 5340 + c3a4: e3fffe92 bsr 0xc0c8 // c0c8 + c3a8: e3fff288 bsr 0xa8b8 // a8b8 + c3ac: 3200 movi r2, 0 + c3ae: 3100 movi r1, 0 + c3b0: 3001 movi r0, 1 + c3b2: e3fff211 bsr 0xa7d4 // a7d4 + c3b6: e3fffe7b bsr 0xc0ac // c0ac + c3ba: e3fffe41 bsr 0xc03c // c03c + c3be: 1191 lrw r4, 0x20000ae4 // c480 + c3c0: 3101 movi r1, 1 + c3c2: a400 st.b r0, (r4, 0x0) + c3c4: 8440 ld.b r2, (r4, 0x0) + c3c6: 1170 lrw r3, 0x200002b4 // c484 + c3c8: 8b60 ld.h r3, (r3, 0x0) + c3ca: b829 st.w r1, (r14, 0x24) + c3cc: 3180 movi r1, 128 + c3ce: 412d lsli r1, r1, 13 + c3d0: b828 st.w r1, (r14, 0x20) + c3d2: 3180 movi r1, 128 + c3d4: 4129 lsli r1, r1, 9 + c3d6: b827 st.w r1, (r14, 0x1c) + c3d8: 3100 movi r1, 0 + c3da: b826 st.w r1, (r14, 0x18) + c3dc: 2a00 subi r2, 1 + c3de: 110b lrw r0, 0x200002b6 // c488 + c3e0: 8800 ld.h r0, (r0, 0x0) + c3e2: b805 st.w r0, (r14, 0x14) + c3e4: 7488 zextb r2, r2 + c3e6: 110a lrw r0, 0x200002bc // c48c + c3e8: 8800 ld.h r0, (r0, 0x0) + c3ea: b804 st.w r0, (r14, 0x10) + c3ec: 3080 movi r0, 128 + c3ee: 4005 lsli r0, r0, 5 + c3f0: b803 st.w r0, (r14, 0xc) + c3f2: 3080 movi r0, 128 + c3f4: 4004 lsli r0, r0, 4 + c3f6: b802 st.w r0, (r14, 0x8) + c3f8: b821 st.w r1, (r14, 0x4) + c3fa: b820 st.w r1, (r14, 0x0) + c3fc: 3001 movi r0, 1 + c3fe: 3102 movi r1, 2 + c400: e3fff1fe bsr 0xa7fc // a7fc + c404: 3002 movi r0, 2 + c406: e3fff1df bsr 0xa7c4 // a7c4 + c40a: 3020 movi r0, 32 + c40c: e3fff1dc bsr 0xa7c4 // a7c4 + c410: 3380 movi r3, 128 + c412: 4372 lsli r3, r3, 18 + c414: 105f lrw r2, 0xe000e100 // c490 + c416: b260 st.w r3, (r2, 0x0) + c418: b270 st.w r3, (r2, 0x40) + c41a: 10ff lrw r7, 0x20000078 // c494 + c41c: 107f lrw r3, 0x20000054 // c498 + c41e: 11a0 lrw r5, 0x20000b34 // c49c + c420: 11c0 lrw r6, 0x2000026e // c4a0 + c422: 9360 ld.w r3, (r3, 0x0) + c424: b86a st.w r3, (r14, 0x28) + c426: b88b st.w r4, (r14, 0x2c) + c428: 3300 movi r3, 0 + c42a: 984b ld.w r2, (r14, 0x2c) + c42c: 8240 ld.b r2, (r2, 0x0) + c42e: 648c cmphs r3, r2 + c430: 0c09 bf 0xc442 // c442 + c432: e3fffe21 bsr 0xc074 // c074 + c436: e3fff425 bsr 0xac80 // ac80 + c43a: e3fff56f bsr 0xaf18 // af18 + c43e: 140c addi r14, r14, 48 + c440: 1494 pop r4-r7, r15 + c442: 5d0c addu r0, r5, r3 + c444: 8020 ld.b r1, (r0, 0x0) + c446: 8040 ld.b r2, (r0, 0x0) + c448: 8080 ld.b r4, (r0, 0x0) + c44a: 8000 ld.b r0, (r0, 0x0) + c44c: 4001 lsli r0, r0, 1 + c44e: 6018 addu r0, r6 + c450: 4121 lsli r1, r1, 1 + c452: 8800 ld.h r0, (r0, 0x0) + c454: 605c addu r1, r7 + c456: 448f lsli r4, r4, 15 + c458: 6d00 or r4, r0 + c45a: 4241 lsli r2, r2, 1 + c45c: 8900 ld.h r0, (r1, 0x0) + c45e: 1032 lrw r1, 0x20000242 // c4a4 + c460: 6084 addu r2, r1 + c462: 4018 lsli r0, r0, 24 + c464: 6c10 or r0, r4 + c466: 8a80 ld.h r4, (r2, 0x0) + c468: 3212 movi r2, 18 + c46a: 608c addu r2, r3 + c46c: 4494 lsli r4, r4, 20 + c46e: 4242 lsli r2, r2, 2 + c470: 982a ld.w r1, (r14, 0x28) + c472: 6c10 or r0, r4 + c474: 6084 addu r2, r1 + c476: 2300 addi r3, 1 + c478: b200 st.w r0, (r2, 0x0) + c47a: 74cc zextb r3, r3 + c47c: 07d7 br 0xc42a // c42a + c47e: 0000 bkpt + c480: 20000ae4 .long 0x20000ae4 + c484: 200002b4 .long 0x200002b4 + c488: 200002b6 .long 0x200002b6 + c48c: 200002bc .long 0x200002bc + c490: e000e100 .long 0xe000e100 + c494: 20000078 .long 0x20000078 + c498: 20000054 .long 0x20000054 + c49c: 20000b34 .long 0x20000b34 + c4a0: 2000026e .long 0x2000026e + c4a4: 20000242 .long 0x20000242 + +Disassembly of section .text.std_clk_calib: + +0000c4a8 : + c4a8: 14d4 push r4-r7, r15 + c4aa: 142d subi r14, r14, 52 + c4ac: 3201 movi r2, 1 + c4ae: 03ce lrw r6, 0x2000005c // c6f0 + c4b0: 6cc3 mov r3, r0 + c4b2: dc4e000a st.b r2, (r14, 0xa) + c4b6: 9640 ld.w r2, (r6, 0x0) + c4b8: 9247 ld.w r2, (r2, 0x1c) + c4ba: 7488 zextb r2, r2 + c4bc: dc4e0009 st.b r2, (r14, 0x9) + c4c0: d84e0009 ld.b r2, (r14, 0x9) + c4c4: 3a40 cmpnei r2, 0 + c4c6: 0c08 bf 0xc4d6 // c4d6 + c4c8: d84e0009 ld.b r2, (r14, 0x9) + c4cc: 3a42 cmpnei r2, 2 + c4ce: 0c04 bf 0xc4d6 // c4d6 + c4d0: 3000 movi r0, 0 + c4d2: 140d addi r14, r14, 52 + c4d4: 1494 pop r4-r7, r15 + c4d6: 0397 lrw r4, 0x2000000c // c6f4 + c4d8: 3209 movi r2, 9 + c4da: 9400 ld.w r0, (r4, 0x0) + c4dc: 3b40 cmpnei r3, 0 + c4de: b041 st.w r2, (r0, 0x4) + c4e0: 0857 bt 0xc58e // c58e + c4e2: 3307 movi r3, 7 + c4e4: dc6e000b st.b r3, (r14, 0xb) + c4e8: 037b lrw r3, 0x2dc6c00 // c6f8 + c4ea: b863 st.w r3, (r14, 0xc) + c4ec: 3380 movi r3, 128 + c4ee: 4362 lsli r3, r3, 2 + c4f0: b867 st.w r3, (r14, 0x1c) + c4f2: d86e000b ld.b r3, (r14, 0xb) + c4f6: 74cc zextb r3, r3 + c4f8: b062 st.w r3, (r0, 0x8) + c4fa: 037e lrw r3, 0xffff // c6fc + c4fc: b063 st.w r3, (r0, 0xc) + c4fe: 3201 movi r2, 1 + c500: 3101 movi r1, 1 + c502: 03bf lrw r5, 0x20000014 // c700 + c504: e3ffc2e8 bsr 0x4ad4 // 4ad4 + c508: 95e0 ld.w r7, (r5, 0x0) + c50a: 137f lrw r3, 0xbe9c0005 // c704 + c50c: b760 st.w r3, (r7, 0x0) + c50e: 135f lrw r2, 0x30010 // c708 + c510: 3300 movi r3, 0 + c512: b762 st.w r3, (r7, 0x8) + c514: b743 st.w r2, (r7, 0xc) + c516: 32d8 movi r2, 216 + c518: b745 st.w r2, (r7, 0x14) + c51a: 974f ld.w r2, (r7, 0x3c) + c51c: 3aa2 bseti r2, 2 + c51e: b74f st.w r2, (r7, 0x3c) + c520: 9803 ld.w r0, (r14, 0xc) + c522: d82e000b ld.b r1, (r14, 0xb) + c526: 327d movi r2, 125 + c528: 2100 addi r1, 1 + c52a: 7c48 mult r1, r2 + c52c: b861 st.w r3, (r14, 0x4) + c52e: e3ffce1b bsr 0x6164 // 6164 <__udivsi3> + c532: b804 st.w r0, (r14, 0x10) + c534: 32fa movi r2, 250 + c536: 9824 ld.w r1, (r14, 0x10) + c538: 4242 lsli r2, r2, 2 + c53a: 6448 cmphs r2, r1 + c53c: 0bca bt 0xc4d0 // c4d0 + c53e: 9844 ld.w r2, (r14, 0x10) + c540: 3178 movi r1, 120 + c542: 9804 ld.w r0, (r14, 0x10) + c544: b840 st.w r2, (r14, 0x0) + c546: e3ffce0f bsr 0x6164 // 6164 <__udivsi3> + c54a: 9840 ld.w r2, (r14, 0x0) + c54c: 6082 subu r2, r0 + c54e: b845 st.w r2, (r14, 0x14) + c550: 9804 ld.w r0, (r14, 0x10) + c552: 3178 movi r1, 120 + c554: 9844 ld.w r2, (r14, 0x10) + c556: b840 st.w r2, (r14, 0x0) + c558: e3ffce06 bsr 0x6164 // 6164 <__udivsi3> + c55c: 9840 ld.w r2, (r14, 0x0) + c55e: 6008 addu r0, r2 + c560: b806 st.w r0, (r14, 0x18) + c562: c0807020 psrclr ie + c566: 9640 ld.w r2, (r6, 0x0) + c568: 9254 ld.w r2, (r2, 0x50) + c56a: b848 st.w r2, (r14, 0x20) + c56c: 9861 ld.w r3, (r14, 0x4) + c56e: 9440 ld.w r2, (r4, 0x0) + c570: b260 st.w r3, (r2, 0x0) + c572: b761 st.w r3, (r7, 0x4) + c574: d86e000a ld.b r3, (r14, 0xa) + c578: 3b40 cmpnei r3, 0 + c57a: 083e bt 0xc5f6 // c5f6 + c57c: e3ffc25e bsr 0x4a38 // 4a38 + c580: 9400 ld.w r0, (r4, 0x0) + c582: e3ffc27f bsr 0x4a80 // 4a80 + c586: c1807420 psrset ee, ie + c58a: 3001 movi r0, 1 + c58c: 07a3 br 0xc4d2 // c4d2 + c58e: 3b41 cmpnei r3, 1 + c590: 0806 bt 0xc59c // c59c + c592: 3303 movi r3, 3 + c594: dc6e000b st.b r3, (r14, 0xb) + c598: 127d lrw r3, 0x16e3600 // c70c + c59a: 07a8 br 0xc4ea // c4ea + c59c: 3b42 cmpnei r3, 2 + c59e: 0806 bt 0xc5aa // c5aa + c5a0: 3301 movi r3, 1 + c5a2: dc6e000b st.b r3, (r14, 0xb) + c5a6: 127b lrw r3, 0xb71b00 // c710 + c5a8: 07a1 br 0xc4ea // c4ea + c5aa: 3b43 cmpnei r3, 3 + c5ac: 0806 bt 0xc5b8 // c5b8 + c5ae: 3300 movi r3, 0 + c5b0: dc6e000b st.b r3, (r14, 0xb) + c5b4: 1278 lrw r3, 0x5b8d80 // c714 + c5b6: 079a br 0xc4ea // c4ea + c5b8: 3b44 cmpnei r3, 4 + c5ba: 0809 bt 0xc5cc // c5cc + c5bc: 3300 movi r3, 0 + c5be: dc6e000b st.b r3, (r14, 0xb) + c5c2: 1276 lrw r3, 0x54c720 // c718 + c5c4: b863 st.w r3, (r14, 0xc) + c5c6: 3380 movi r3, 128 + c5c8: 4369 lsli r3, r3, 9 + c5ca: 0793 br 0xc4f0 // c4f0 + c5cc: 3b45 cmpnei r3, 5 + c5ce: 0806 bt 0xc5da // c5da + c5d0: 3300 movi r3, 0 + c5d2: dc6e000b st.b r3, (r14, 0xb) + c5d6: 1272 lrw r3, 0x3ffed0 // c71c + c5d8: 07f6 br 0xc5c4 // c5c4 + c5da: 3b46 cmpnei r3, 6 + c5dc: 0806 bt 0xc5e8 // c5e8 + c5de: 3300 movi r3, 0 + c5e0: dc6e000b st.b r3, (r14, 0xb) + c5e4: 126f lrw r3, 0x1fff68 // c720 + c5e6: 07ef br 0xc5c4 // c5c4 + c5e8: 3b47 cmpnei r3, 7 + c5ea: 0b84 bt 0xc4f2 // c4f2 + c5ec: 3300 movi r3, 0 + c5ee: dc6e000b st.b r3, (r14, 0xb) + c5f2: 126d lrw r3, 0x1ffb8 // c724 + c5f4: 07e8 br 0xc5c4 // c5c4 + c5f6: 9560 ld.w r3, (r5, 0x0) + c5f8: 3101 movi r1, 1 + c5fa: 9440 ld.w r2, (r4, 0x0) + c5fc: b321 st.w r1, (r3, 0x4) + c5fe: b220 st.w r1, (r2, 0x0) + c600: 3100 movi r1, 0 + c602: b327 st.w r1, (r3, 0x1c) + c604: 3004 movi r0, 4 + c606: b225 st.w r1, (r2, 0x14) + c608: 932e ld.w r1, (r3, 0x38) + c60a: 6840 and r1, r0 + c60c: 3940 cmpnei r1, 0 + c60e: 0ffd bf 0xc608 // c608 + c610: 9225 ld.w r1, (r2, 0x14) + c612: b82a st.w r1, (r14, 0x28) + c614: 3100 movi r1, 0 + c616: b310 st.w r0, (r3, 0x40) + c618: b327 st.w r1, (r3, 0x1c) + c61a: 3004 movi r0, 4 + c61c: b225 st.w r1, (r2, 0x14) + c61e: 932e ld.w r1, (r3, 0x38) + c620: 6840 and r1, r0 + c622: 3940 cmpnei r1, 0 + c624: 0ffd bf 0xc61e // c61e + c626: 9225 ld.w r1, (r2, 0x14) + c628: b82b st.w r1, (r14, 0x2c) + c62a: 3100 movi r1, 0 + c62c: b310 st.w r0, (r3, 0x40) + c62e: b327 st.w r1, (r3, 0x1c) + c630: 3004 movi r0, 4 + c632: b225 st.w r1, (r2, 0x14) + c634: 932e ld.w r1, (r3, 0x38) + c636: 6840 and r1, r0 + c638: 3940 cmpnei r1, 0 + c63a: 0ffd bf 0xc634 // c634 + c63c: 9225 ld.w r1, (r2, 0x14) + c63e: b82c st.w r1, (r14, 0x30) + c640: b310 st.w r0, (r3, 0x40) + c642: 982b ld.w r1, (r14, 0x2c) + c644: 980c ld.w r0, (r14, 0x30) + c646: 6040 addu r1, r0 + c648: b829 st.w r1, (r14, 0x24) + c64a: 9829 ld.w r1, (r14, 0x24) + c64c: 4921 lsri r1, r1, 1 + c64e: b829 st.w r1, (r14, 0x24) + c650: 3100 movi r1, 0 + c652: b321 st.w r1, (r3, 0x4) + c654: b220 st.w r1, (r2, 0x0) + c656: b327 st.w r1, (r3, 0x1c) + c658: b225 st.w r1, (r2, 0x14) + c65a: d86e0009 ld.b r3, (r14, 0x9) + c65e: 3b42 cmpnei r3, 2 + c660: 9849 ld.w r2, (r14, 0x24) + c662: 082c bt 0xc6ba // c6ba + c664: 1171 lrw r3, 0x7ff // c728 + c666: 648c cmphs r3, r2 + c668: 0c03 bf 0xc66e // c66e + c66a: 3300 movi r3, 0 + c66c: 040f br 0xc68a // c68a + c66e: 9849 ld.w r2, (r14, 0x24) + c670: 9866 ld.w r3, (r14, 0x18) + c672: 648c cmphs r3, r2 + c674: 080e bt 0xc690 // c690 + c676: 9868 ld.w r3, (r14, 0x20) + c678: 9847 ld.w r2, (r14, 0x1c) + c67a: 60ca subu r3, r2 + c67c: b868 st.w r3, (r14, 0x20) + c67e: 32fe movi r2, 254 + c680: 9868 ld.w r3, (r14, 0x20) + c682: 4248 lsli r2, r2, 8 + c684: 68c8 and r3, r2 + c686: 3b40 cmpnei r3, 0 + c688: 0812 bt 0xc6ac // c6ac + c68a: dc6e000a st.b r3, (r14, 0xa) + c68e: 0721 br 0xc4d0 // c4d0 + c690: 9849 ld.w r2, (r14, 0x24) + c692: 9865 ld.w r3, (r14, 0x14) + c694: 64c8 cmphs r2, r3 + c696: 0829 bt 0xc6e8 // c6e8 + c698: 9868 ld.w r3, (r14, 0x20) + c69a: 9847 ld.w r2, (r14, 0x1c) + c69c: 60c8 addu r3, r2 + c69e: b868 st.w r3, (r14, 0x20) + c6a0: 33fe movi r3, 254 + c6a2: 9848 ld.w r2, (r14, 0x20) + c6a4: 4368 lsli r3, r3, 8 + c6a6: 688c and r2, r3 + c6a8: 64ca cmpne r2, r3 + c6aa: 0fe0 bf 0xc66a // c66a + c6ac: 9660 ld.w r3, (r6, 0x0) + c6ae: 9848 ld.w r2, (r14, 0x20) + c6b0: b354 st.w r2, (r3, 0x50) + c6b2: 3001 movi r0, 1 + c6b4: e3ffc748 bsr 0x5544 // 5544 + c6b8: 075e br 0xc574 // c574 + c6ba: 9866 ld.w r3, (r14, 0x18) + c6bc: 648c cmphs r3, r2 + c6be: 0809 bt 0xc6d0 // c6d0 + c6c0: 9868 ld.w r3, (r14, 0x20) + c6c2: 9847 ld.w r2, (r14, 0x1c) + c6c4: 60ca subu r3, r2 + c6c6: b868 st.w r3, (r14, 0x20) + c6c8: 32ff movi r2, 255 + c6ca: 9868 ld.w r3, (r14, 0x20) + c6cc: 4250 lsli r2, r2, 16 + c6ce: 07db br 0xc684 // c684 + c6d0: 9849 ld.w r2, (r14, 0x24) + c6d2: 9865 ld.w r3, (r14, 0x14) + c6d4: 64c8 cmphs r2, r3 + c6d6: 0809 bt 0xc6e8 // c6e8 + c6d8: 9868 ld.w r3, (r14, 0x20) + c6da: 9847 ld.w r2, (r14, 0x1c) + c6dc: 60c8 addu r3, r2 + c6de: b868 st.w r3, (r14, 0x20) + c6e0: 33ff movi r3, 255 + c6e2: 9848 ld.w r2, (r14, 0x20) + c6e4: 4370 lsli r3, r3, 16 + c6e6: 07e0 br 0xc6a6 // c6a6 + c6e8: 3300 movi r3, 0 + c6ea: dc6e000a st.b r3, (r14, 0xa) + c6ee: 07e2 br 0xc6b2 // c6b2 + c6f0: 2000005c .long 0x2000005c + c6f4: 2000000c .long 0x2000000c + c6f8: 02dc6c00 .long 0x02dc6c00 + c6fc: 0000ffff .long 0x0000ffff + c700: 20000014 .long 0x20000014 + c704: be9c0005 .long 0xbe9c0005 + c708: 00030010 .long 0x00030010 + c70c: 016e3600 .long 0x016e3600 + c710: 00b71b00 .long 0x00b71b00 + c714: 005b8d80 .long 0x005b8d80 + c718: 0054c720 .long 0x0054c720 + c71c: 003ffed0 .long 0x003ffed0 + c720: 001fff68 .long 0x001fff68 + c724: 0001ffb8 .long 0x0001ffb8 + c728: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250507.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250507.map new file mode 100644 index 0000000..a9292bb --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250507.map @@ -0,0 +1,3386 @@ +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: 569552 (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: 287 + Section header string table index: 284 + +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 001a88 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00004288 002288 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 000042c0 0022c0 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00004334 002334 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00004380 002380 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 000043b0 0023b0 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00004438 002438 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00004460 002460 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 0000449c 00249c 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 000044b0 0024b0 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 000044c8 0024c8 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 000044e8 0024e8 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00004504 002504 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00004520 002520 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00004560 002560 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00004594 002594 000004 00 AX 0 0 2 + [17] .text.EXI3_Int_En PROGBITS 00004598 002598 000010 00 AX 0 0 4 + [18] .text.EXI4_Int_En PROGBITS 000045a8 0025a8 000010 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 000045b8 0025b8 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Int_ PROGBITS 000045c4 0025c4 00000c 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 000045d0 0025d0 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000045f4 0025f4 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00004624 002624 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 00004688 002688 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 00004768 002768 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 0000477c 00277c 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 0000478c 00278c 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 00004898 002898 0000fc 00 AX 0 0 4 + [29] .text.GPIOB0_EXI_ PROGBITS 00004994 002994 00006c 00 AX 0 0 4 + [30] .text.GPIO_Write_ PROGBITS 00004a00 002a00 000008 00 AX 0 0 2 + [31] .text.GPIO_Write_ PROGBITS 00004a08 002a08 000008 00 AX 0 0 2 + [32] .text.GPIO_Revers PROGBITS 00004a10 002a10 000016 00 AX 0 0 2 + [33] .text.GPIO_Read_S PROGBITS 00004a26 002a26 000010 00 AX 0 0 2 + [34] .text.LPT_Soft_Re PROGBITS 00004a38 002a38 000014 00 AX 0 0 4 + [35] .text.WWDT_CNT_Lo PROGBITS 00004a4c 002a4c 000010 00 AX 0 0 4 + [36] .text.BT_DeInit PROGBITS 00004a5c 002a5c 00001c 00 AX 0 0 2 + [37] .text.BT_Start PROGBITS 00004a78 002a78 000008 00 AX 0 0 2 + [38] .text.BT_Soft_Res PROGBITS 00004a80 002a80 00000a 00 AX 0 0 2 + [39] .text.BT_Configur PROGBITS 00004a8a 002a8a 000018 00 AX 0 0 2 + [40] .text.BT_ControlS PROGBITS 00004aa2 002aa2 00002c 00 AX 0 0 2 + [41] .text.BT_Period_C PROGBITS 00004ace 002ace 000006 00 AX 0 0 2 + [42] .text.BT_ConfigIn PROGBITS 00004ad4 002ad4 000012 00 AX 0 0 2 + [43] .text.BT1_INT_ENA PROGBITS 00004ae8 002ae8 000010 00 AX 0 0 4 + [44] .text.SIO_DeInit PROGBITS 00004af8 002af8 000020 00 AX 0 0 4 + [45] .text.SIO_IO_Init PROGBITS 00004b18 002b18 000060 00 AX 0 0 4 + [46] .text.SIO_TX_Init PROGBITS 00004b78 002b78 000010 00 AX 0 0 4 + [47] .text.SIO_TX_Conf PROGBITS 00004b88 002b88 000050 00 AX 0 0 4 + [48] .text.UART0_DeIni PROGBITS 00004bd8 002bd8 000018 00 AX 0 0 4 + [49] .text.UART1_DeIni PROGBITS 00004bf0 002bf0 000018 00 AX 0 0 4 + [50] .text.UART2_DeIni PROGBITS 00004c08 002c08 000018 00 AX 0 0 4 + [51] .text.UART0_Int_E PROGBITS 00004c20 002c20 00001c 00 AX 0 0 4 + [52] .text.UART2_Int_E PROGBITS 00004c3c 002c3c 00001c 00 AX 0 0 4 + [53] .text.UART_IO_Ini PROGBITS 00004c58 002c58 0000ec 00 AX 0 0 4 + [54] .text.UARTInit PROGBITS 00004d44 002d44 000010 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 00004d54 002d54 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 00004d64 002d64 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 00004d84 002d84 000028 00 AX 0 0 4 + [58] .text.ADC12_RESET PROGBITS 00004dac 002dac 000064 00 AX 0 0 4 + [59] .text.ADC12_Contr PROGBITS 00004e10 002e10 000010 00 AX 0 0 4 + [60] .text.ADC12_CMD.p PROGBITS 00004e20 002e20 000020 00 AX 0 0 4 + [61] .text.ADC12_CLK_C PROGBITS 00004e40 002e40 00002c 00 AX 0 0 4 + [62] .text.ADC12_Softw PROGBITS 00004e6c 002e6c 00000a 00 AX 0 0 2 + [63] .text.ADC12_CMD PROGBITS 00004e78 002e78 000028 00 AX 0 0 4 + [64] .text.ADC12_ready PROGBITS 00004ea0 002ea0 000014 00 AX 0 0 4 + [65] .text.ADC12_SEQEN PROGBITS 00004eb4 002eb4 000018 00 AX 0 0 4 + [66] .text.ADC12_DATA_ PROGBITS 00004ecc 002ecc 000014 00 AX 0 0 4 + [67] .text.ADC12_Confi PROGBITS 00004ee0 002ee0 00007c 00 AX 0 0 4 + [68] .text.ADC12_Confi PROGBITS 00004f5c 002f5c 000198 00 AX 0 0 4 + [69] .text.ADC12_Conve PROGBITS 000050f4 0030f4 000180 00 AX 0 0 4 + [70] .text.Page_Progra PROGBITS 00005274 003274 0000a0 00 AX 0 0 4 + [71] .text.ReadDataArr PROGBITS 00005314 003314 00002a 00 AX 0 0 2 + [72] .text.tk_paramete PROGBITS 00005340 003340 000140 00 AX 0 0 4 + [73] .text.CORET_DeIni PROGBITS 00005480 003480 000018 00 AX 0 0 4 + [74] .text.CORET_Int_E PROGBITS 00005498 003498 000018 00 AX 0 0 4 + [75] .text.CORET_start PROGBITS 000054b0 0034b0 000010 00 AX 0 0 4 + [76] .text.CORET_CLKSO PROGBITS 000054c0 0034c0 000010 00 AX 0 0 4 + [77] .text.CORET_TICKI PROGBITS 000054d0 0034d0 000010 00 AX 0 0 4 + [78] .text.CORET_reloa PROGBITS 000054e0 0034e0 000010 00 AX 0 0 4 + [79] .text.startup.mai PROGBITS 000054f0 0034f0 000054 00 AX 0 0 4 + [80] .text.delay_nms PROGBITS 00005544 003544 00002c 00 AX 0 0 2 + [81] .text.delay_nus PROGBITS 00005570 003570 000022 00 AX 0 0 2 + [82] .text.GPIO_CONFIG PROGBITS 00005594 003594 00008c 00 AX 0 0 4 + [83] .text.BT_CONFIG PROGBITS 00005620 003620 000060 00 AX 0 0 4 + [84] .text.SYSCON_CONF PROGBITS 00005680 003680 000062 00 AX 0 0 2 + [85] .text.APT32F102_i PROGBITS 000056e4 0036e4 00009c 00 AX 0 0 4 + [86] .text.SYSCONIntHa PROGBITS 00005780 003780 0000f0 00 AX 0 0 4 + [87] .text.IFCIntHandl PROGBITS 00005870 003870 000068 00 AX 0 0 4 + [88] .text.ADCIntHandl PROGBITS 000058d8 0038d8 000068 00 AX 0 0 4 + [89] .text.EPT0IntHand PROGBITS 00005940 003940 0001ac 00 AX 0 0 4 + [90] .text.WWDTHandler PROGBITS 00005aec 003aec 000034 00 AX 0 0 4 + [91] .text.GPT0IntHand PROGBITS 00005b20 003b20 000080 00 AX 0 0 4 + [92] .text.RTCIntHandl PROGBITS 00005ba0 003ba0 000070 00 AX 0 0 4 + [93] .text.UART0IntHan PROGBITS 00005c10 003c10 00003c 00 AX 0 0 4 + [94] .text.UART1IntHan PROGBITS 00005c4c 003c4c 00003c 00 AX 0 0 4 + [95] .text.UART2IntHan PROGBITS 00005c88 003c88 000094 00 AX 0 0 4 + [96] .text.SPI0IntHand PROGBITS 00005d1c 003d1c 0000e8 00 AX 0 0 4 + [97] .text.SIO0IntHand PROGBITS 00005e04 003e04 000054 00 AX 0 0 4 + [98] .text.EXI0IntHand PROGBITS 00005e58 003e58 000030 00 AX 0 0 4 + [99] .text.EXI1IntHand PROGBITS 00005e88 003e88 000030 00 AX 0 0 4 + [100] .text.EXI2to3IntH PROGBITS 00005eb8 003eb8 000048 00 AX 0 0 4 + [101] .text.EXI4to9IntH PROGBITS 00005f00 003f00 00006c 00 AX 0 0 4 + [102] .text.EXI10to15In PROGBITS 00005f6c 003f6c 000080 00 AX 0 0 4 + [103] .text.LPTIntHandl PROGBITS 00005fec 003fec 000034 00 AX 0 0 4 + [104] .text.BT0IntHandl PROGBITS 00006020 004020 00004c 00 AX 0 0 4 + [105] .text.BT1IntHandl PROGBITS 0000606c 00406c 000070 00 AX 0 0 4 + [106] .text.PriviledgeV PROGBITS 000060dc 0040dc 000002 00 AX 0 0 2 + [107] .text.PendTrapHan PROGBITS 000060de 0040de 000008 00 AX 0 0 2 + [108] .text.Trap3Handle PROGBITS 000060e6 0040e6 000008 00 AX 0 0 2 + [109] .text.Trap2Handle PROGBITS 000060ee 0040ee 000008 00 AX 0 0 2 + [110] .text.Trap1Handle PROGBITS 000060f6 0040f6 000008 00 AX 0 0 2 + [111] .text.Trap0Handle PROGBITS 000060fe 0040fe 000008 00 AX 0 0 2 + [112] .text.UnrecExecpH PROGBITS 00006106 004106 000008 00 AX 0 0 2 + [113] .text.BreakPointH PROGBITS 0000610e 00410e 000008 00 AX 0 0 2 + [114] .text.AccessErrHa PROGBITS 00006116 004116 000008 00 AX 0 0 2 + [115] .text.IllegalInst PROGBITS 0000611e 00411e 000008 00 AX 0 0 2 + [116] .text.MisalignedH PROGBITS 00006126 004126 000008 00 AX 0 0 2 + [117] .text.CNTAIntHand PROGBITS 0000612e 00412e 000008 00 AX 0 0 2 + [118] .text.I2CIntHandl PROGBITS 00006136 004136 000008 00 AX 0 0 2 + [119] .text.__divsi3 PROGBITS 00006140 004140 000024 00 AX 0 0 4 + [120] .text.__udivsi3 PROGBITS 00006164 004164 000024 00 AX 0 0 4 + [121] .text.__modsi3 PROGBITS 00006188 004188 000024 00 AX 0 0 4 + [122] .text.__umodsi3 PROGBITS 000061ac 0041ac 000024 00 AX 0 0 4 + [123] .text.CK_CPU_EnAl PROGBITS 000061d0 0041d0 000006 00 AX 0 0 2 + [124] .text.CK_CPU_DisA PROGBITS 000061d6 0041d6 000006 00 AX 0 0 2 + [125] .text.UARTx_Init PROGBITS 000061dc 0041dc 000108 00 AX 0 0 4 + [126] .text.UART2_RecvI PROGBITS 000062e4 0042e4 000044 00 AX 0 0 4 + [127] .text.UART2_TASK PROGBITS 00006328 004328 00008c 00 AX 0 0 4 + [128] .text.BUS485_Send PROGBITS 000063b4 0043b4 0000c4 00 AX 0 0 4 + [129] .text.MultSend_Ta PROGBITS 00006478 004478 000074 00 AX 0 0 4 + [130] .text.Set_GroupSe PROGBITS 000064ec 0044ec 000064 00 AX 0 0 4 + [131] .text.Clear_SendF PROGBITS 00006550 004550 000010 00 AX 0 0 4 + [132] .text.BUS485_Jump PROGBITS 00006560 004560 00000c 00 AX 0 0 4 + [133] .text.BUS485Send_ PROGBITS 0000656c 00456c 000034 00 AX 0 0 4 + [134] .text.BusIdle_Tas PROGBITS 000065a0 0045a0 000040 00 AX 0 0 4 + [135] .text.BusBusy_Tas PROGBITS 000065e0 0045e0 00005c 00 AX 0 0 4 + [136] .text.Dbg_Println PROGBITS 0000663c 00463c 00000c 00 AX 0 0 2 + [137] .text.Dbg_Print_B PROGBITS 00006648 004648 000002 00 AX 0 0 2 + [138] .text.Touch_Key_I PROGBITS 0000664c 00464c 000068 00 AX 0 0 4 + [139] .text.Get_TouchKe PROGBITS 000066b4 0046b4 00003c 00 AX 0 0 4 + [140] .text.TouchKey_RS PROGBITS 000066f0 0046f0 0002f4 00 AX 0 0 4 + [141] .text.Touch_Key_E PROGBITS 000069e4 0049e4 0000ac 00 AX 0 0 4 + [142] .text.TouchKey_Se PROGBITS 00006a90 004a90 00003c 00 AX 0 0 4 + [143] .text.Touch_Key_T PROGBITS 00006acc 004acc 000100 00 AX 0 0 4 + [144] .text.TouchKey_Ch PROGBITS 00006bcc 004bcc 000018 00 AX 0 0 2 + [145] .text.TouchKey_Co PROGBITS 00006be4 004be4 000070 00 AX 0 0 4 + [146] .text.TouchKey_Se PROGBITS 00006c54 004c54 0000b8 00 AX 0 0 4 + [147] .text.TouchKey_Re PROGBITS 00006d0c 004d0c 0000f8 00 AX 0 0 4 + [148] .text.TouchKey_Du PROGBITS 00006e04 004e04 000038 00 AX 0 0 4 + [149] .text.TouchKey_Re PROGBITS 00006e3c 004e3c 0000b0 00 AX 0 0 4 + [150] .text.TouchKey_Re PROGBITS 00006eec 004eec 00001a 00 AX 0 0 2 + [151] .text.TouchKey_Co PROGBITS 00006f08 004f08 0000d8 00 AX 0 0 4 + [152] .text.EEPROM_Chec PROGBITS 00006fe0 004fe0 000016 00 AX 0 0 2 + [153] .text.EEPROM_Read PROGBITS 00006ff8 004ff8 000074 00 AX 0 0 4 + [154] .text.EEPROM_Writ PROGBITS 0000706c 00506c 000044 00 AX 0 0 4 + [155] .text.EEPROM_Vali PROGBITS 000070b0 0050b0 00008c 00 AX 0 0 4 + [156] .text.EEPROM_Defa PROGBITS 0000713c 00513c 000020 00 AX 0 0 2 + [157] .text.EEPROM_Init PROGBITS 0000715c 00515c 000058 00 AX 0 0 4 + [158] .text.EEPROM_Writ PROGBITS 000071b4 0051b4 00006c 00 AX 0 0 4 + [159] .text.EEPROM_Read PROGBITS 00007220 005220 0000ac 00 AX 0 0 4 + [160] .text.EEPROM_Vali PROGBITS 000072cc 0052cc 0000dc 00 AX 0 0 4 + [161] .text.EEPROM_Defa PROGBITS 000073a8 0053a8 00006e 00 AX 0 0 2 + [162] .text.EEPROM_Touc PROGBITS 00007418 005418 000080 00 AX 0 0 4 + [163] .text.EEPROM_Writ PROGBITS 00007498 005498 000040 00 AX 0 0 2 + [164] .text.ADC_Init PROGBITS 000074d8 0054d8 00005c 00 AX 0 0 4 + [165] .text.Thermistor_ PROGBITS 00007534 005534 000048 00 AX 0 0 4 + [166] .text.Calculate_A PROGBITS 0000757c 00557c 000064 00 AX 0 0 4 + [167] .text.Get_Temp_Va PROGBITS 000075e0 0055e0 00000c 00 AX 0 0 4 + [168] .text.Gather_Temp PROGBITS 000075ec 0055ec 00006c 00 AX 0 0 4 + [169] .text.ADC_Sample_ PROGBITS 00007658 005658 000070 00 AX 0 0 4 + [170] .text.Contol_Swit PROGBITS 000076c8 0056c8 0003ea 00 AX 0 0 4 + [171] .text.Contol_Swit PROGBITS 00007ab4 005ab4 0003ea 00 AX 0 0 4 + [172] .text.Contol_Swit PROGBITS 00007ea0 005ea0 000028 00 AX 0 0 4 + [173] .text.Get_TM1812_ PROGBITS 00007ec8 005ec8 000044 00 AX 0 0 4 + [174] .text.TimeCall_SI PROGBITS 00007f0c 005f0c 000120 00 AX 0 0 4 + [175] .text.TimeCall_SI PROGBITS 0000802c 00602c 0000a8 00 AX 0 0 4 + [176] .text.Tm1812_Task PROGBITS 000080d4 0060d4 00005c 00 AX 0 0 4 + [177] .text.Tm1812_Ch_I PROGBITS 00008130 006130 000024 00 AX 0 0 4 + [178] .text.TM1812_Cont PROGBITS 00008154 006154 000070 00 AX 0 0 4 + [179] .text.TM1812_Cont PROGBITS 000081c4 0061c4 000064 00 AX 0 0 4 + [180] .text.TM1812_LED_ PROGBITS 00008228 006228 00006c 00 AX 0 0 4 + [181] .text.HT1621_WR_D PROGBITS 00008294 006294 000048 00 AX 0 0 4 + [182] .text.HT1621_WR_C PROGBITS 000082dc 0062dc 000030 00 AX 0 0 4 + [183] .text.HT1621_Init PROGBITS 0000830c 00630c 0000b4 00 AX 0 0 4 + [184] .text.HT1621_Clea PROGBITS 000083c0 0063c0 000050 00 AX 0 0 4 + [185] .text.HT1621_ALLO PROGBITS 00008410 006410 000040 00 AX 0 0 4 + [186] .text.HT1621_Refr PROGBITS 00008450 006450 00004c 00 AX 0 0 4 + [187] .text.Set_Tempera PROGBITS 0000849c 00649c 0000d0 00 AX 0 0 4 + [188] .text.Local_Tempe PROGBITS 0000856c 00656c 0000d0 00 AX 0 0 4 + [189] .text.Control_Mod PROGBITS 0000863c 00663c 000244 00 AX 0 0 4 + [190] .text.Control_win PROGBITS 00008880 006880 0000d0 00 AX 0 0 4 + [191] .text.Control_Pro PROGBITS 00008950 006950 0000a4 00 AX 0 0 4 + [192] .text.Controlled_ PROGBITS 000089f4 0069f4 000048 00 AX 0 0 4 + [193] .text.Controlled_ PROGBITS 00008a3c 006a3c 0000dc 00 AX 0 0 4 + [194] .text.Controlled_ PROGBITS 00008b18 006b18 000030 00 AX 0 0 4 + [195] .text.Set_Device_ PROGBITS 00008b48 006b48 00009c 00 AX 0 0 4 + [196] .text.Set_Temp_Di PROGBITS 00008be4 006be4 000064 00 AX 0 0 4 + [197] .text.HT1621_Refr PROGBITS 00008c48 006c48 000090 00 AX 0 0 4 + [198] .text.Boot_Comm_C PROGBITS 00008cd8 006cd8 000024 00 AX 0 0 4 + [199] .text.Boot_Comm_F PROGBITS 00008cfc 006cfc 00005c 00 AX 0 0 4 + [200] .text.Boot_Time_R PROGBITS 00008d58 006d58 000014 00 AX 0 0 4 + [201] .text.Boot_Comm_U PROGBITS 00008d6c 006d6c 000188 00 AX 0 0 4 + [202] .text.TemCtrl_Ini PROGBITS 00008ef4 006ef4 000178 00 AX 0 0 4 + [203] .text.TemCtrl_Mod PROGBITS 0000906c 00706c 00004c 00 AX 0 0 4 + [204] .text.TemCtrl_Fan PROGBITS 000090b8 0070b8 00004c 00 AX 0 0 4 + [205] .text.TemCtrl_Tem PROGBITS 00009104 007104 000030 00 AX 0 0 4 + [206] .text.TemCtrl_Tem PROGBITS 00009134 007134 000030 00 AX 0 0 4 + [207] .text.TemCtrl_OnO PROGBITS 00009164 007164 000034 00 AX 0 0 4 + [208] .text.Tem_Valve_C PROGBITS 00009198 007198 0000cc 00 AX 0 0 4 + [209] .text.TemCtrl_Pro PROGBITS 00009264 007264 000178 00 AX 0 0 4 + [210] .text.KEY1_Model_ PROGBITS 000093dc 0073dc 0000cc 00 AX 0 0 4 + [211] .text.KEY2_Fan_Pr PROGBITS 000094a8 0074a8 0000cc 00 AX 0 0 4 + [212] .text.KEY3_TempAd PROGBITS 00009574 007574 000100 00 AX 0 0 4 + [213] .text.KEY3_Long_P PROGBITS 00009674 007674 000070 00 AX 0 0 4 + [214] .text.KEY4_TempDe PROGBITS 000096e4 0076e4 000100 00 AX 0 0 4 + [215] .text.KEY4_Long_P PROGBITS 000097e4 0077e4 000070 00 AX 0 0 4 + [216] .text.KEY5_OnOff_ PROGBITS 00009854 007854 000090 00 AX 0 0 4 + [217] .text.TempCtrl_On PROGBITS 000098e4 0078e4 000054 00 AX 0 0 4 + [218] .text.DisPlay_Ini PROGBITS 00009938 007938 000020 00 AX 0 0 4 + [219] .text.DisPlay_Tas PROGBITS 00009958 007958 0004e8 00 AX 0 0 4 + [220] .text.Debug_Init PROGBITS 00009e40 007e40 00003c 00 AX 0 0 4 + [221] .text.Dev_SaveDat PROGBITS 00009e7c 007e7c 0000ac 00 AX 0 0 4 + [222] .text.Debug_Task PROGBITS 00009f28 007f28 000064 00 AX 0 0 4 + [223] .text.BLV_RLY_Ctr PROGBITS 00009f8c 007f8c 000028 00 AX 0 0 4 + [224] .text.Relay_Init PROGBITS 00009fb4 007fb4 000028 00 AX 0 0 4 + [225] .text.Relay_High PROGBITS 00009fdc 007fdc 00001c 00 AX 0 0 2 + [226] .text.Relay_Mid PROGBITS 00009ff8 007ff8 00001c 00 AX 0 0 2 + [227] .text.Relay_Low PROGBITS 0000a014 008014 00001c 00 AX 0 0 2 + [228] .text.Relay_Stop PROGBITS 0000a030 008030 00001c 00 AX 0 0 2 + [229] .text.BLV_RLY_Ctr PROGBITS 0000a04c 00804c 000014 00 AX 0 0 2 + [230] .text.RLY_Direct_ PROGBITS 0000a060 008060 0000c8 00 AX 0 0 4 + [231] .text.RLY_Zero_Co PROGBITS 0000a128 008128 000098 00 AX 0 0 4 + [232] .text.NetCRC16_Ch PROGBITS 0000a1c0 0081c0 00004c 00 AX 0 0 4 + [233] .text.GetCRC16 PROGBITS 0000a20c 00820c 00003c 00 AX 0 0 4 + [234] .text.SOR_CRC PROGBITS 0000a248 008248 000016 00 AX 0 0 2 + [235] .text.Rs485_ASend PROGBITS 0000a260 008260 000108 00 AX 0 0 4 + [236] .text.Rs485AskCyc PROGBITS 0000a368 008368 000104 00 AX 0 0 4 + [237] .text.Rs485AskCtr PROGBITS 0000a46c 00846c 00005c 00 AX 0 0 4 + [238] .text.Rs485AskRea PROGBITS 0000a4c8 0084c8 000068 00 AX 0 0 4 + [239] .text.Rs485_DevPo PROGBITS 0000a530 008530 000018 00 AX 0 0 2 + [240] .text.Temp_Rec_An PROGBITS 0000a548 008548 0001b0 00 AX 0 0 4 + [241] .text.Tem_Rs485_R PROGBITS 0000a6f8 0086f8 0000cc 00 AX 0 0 4 + [242] .text.TK_ConfigIn PROGBITS 0000a7c4 0087c4 000010 00 AX 0 0 4 + [243] .text.tk_clk_conf PROGBITS 0000a7d4 0087d4 000028 00 AX 0 0 4 + [244] .text.TK_con0_con PROGBITS 0000a7fc 0087fc 0000bc 00 AX 0 0 4 + [245] .text.tk_io_enabl PROGBITS 0000a8b8 0088b8 000134 00 AX 0 0 4 + [246] .text.TK_Single_L PROGBITS 0000a9ec 0089ec 000128 00 AX 0 0 4 + [247] .text.TK_Sampling PROGBITS 0000ab14 008b14 0000cc 00 AX 0 0 4 + [248] .text.get_key_num PROGBITS 0000abe0 008be0 000028 00 AX 0 0 4 + [249] .text.get_key_num PROGBITS 0000ac08 008c08 000028 00 AX 0 0 4 + [250] .text.get_key_num PROGBITS 0000ac30 008c30 000028 00 AX 0 0 4 + [251] .text.get_key_num PROGBITS 0000ac58 008c58 000028 00 AX 0 0 4 + [252] .text.TK_Baseline PROGBITS 0000ac80 008c80 000150 00 AX 0 0 4 + [253] .text.TK_Baseline PROGBITS 0000add0 008dd0 000148 00 AX 0 0 4 + [254] .text.tk_poweron_ PROGBITS 0000af18 008f18 000124 00 AX 0 0 4 + [255] .text.TK_Scan_Sta PROGBITS 0000b03c 00903c 000068 00 AX 0 0 4 + [256] .text.TK_Keymap_p PROGBITS 0000b0a4 0090a4 000870 00 AX 0 0 4 + [257] .text.TK_overflow PROGBITS 0000b914 009914 000128 00 AX 0 0 4 + [258] .text.TK_Baseline PROGBITS 0000ba3c 009a3c 0004d0 00 AX 0 0 4 + [259] .text.TK_result_p PROGBITS 0000bf0c 009f0c 000130 00 AX 0 0 4 + [260] .text.get_key_seq PROGBITS 0000c03c 00a03c 000038 00 AX 0 0 4 + [261] .text.CORET_CONFI PROGBITS 0000c074 00a074 000038 00 AX 0 0 4 + [262] .text.tk_chxval_s PROGBITS 0000c0ac 00a0ac 00001c 00 AX 0 0 4 + [263] .text.tk_freq_par PROGBITS 0000c0c8 00a0c8 0000ac 00 AX 0 0 4 + [264] .text.tk_reserved PROGBITS 0000c174 00a174 000028 00 AX 0 0 4 + [265] .text.TKEYIntHand PROGBITS 0000c19c 00a19c 0000a0 00 AX 0 0 4 + [266] .text.CORETHandle PROGBITS 0000c23c 00a23c 00015c 00 AX 0 0 4 + [267] .text.tk_init PROGBITS 0000c398 00a398 000110 00 AX 0 0 4 + [268] .text.std_clk_cal PROGBITS 0000c4a8 00a4a8 000284 00 AX 0 0 4 + [269] .RomCode PROGBITS 0000c72c 00c0b0 000000 00 W 0 0 1 + [270] .rodata PROGBITS 0000c72c 00a72c 0008f0 00 A 0 0 4 + [271] .data PROGBITS 20000000 00c000 0000b0 00 WA 0 0 4 + [272] .bss NOBITS 200000b0 00c0b0 000b50 00 WA 0 0 4 + [273] .csky.attributes CSKY_ATTRIBUTES 00000000 00c0b0 000022 00 0 0 1 + [274] .comment PROGBITS 00000000 00c0d2 000042 01 MS 0 0 1 + [275] .csky_stack_size PROGBITS 00000000 00c120 000bac 00 0 0 16 + [276] .debug_line PROGBITS 00000000 00cccc 0071f5 00 0 0 1 + [277] .debug_info PROGBITS 00000000 013ec1 054436 00 0 0 1 + [278] .debug_abbrev PROGBITS 00000000 0682f7 0049f6 00 0 0 1 + [279] .debug_aranges PROGBITS 00000000 06ccf0 001228 00 0 0 8 + [280] .debug_ranges PROGBITS 00000000 06df18 001238 00 0 0 1 + [281] .debug_str PROGBITS 00000000 06f150 00a5fc 01 MS 0 0 1 + [282] .debug_frame PROGBITS 00000000 07974c 002c94 00 0 0 4 + [283] .debug_loc PROGBITS 00000000 07c3e0 00479a 00 0 0 1 + [284] .shstrtab STRTAB 00000000 0897c8 001907 00 0 0 1 + [285] .symtab SYMTAB 00000000 080b7c 006b40 10 286 1233 4 + [286] .strtab STRTAB 00000000 0876bc 00210c 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 0x0b01c 0x0b01c R E 0x1000 + LOAD 0x00c000 0x20000000 0x0000d01c 0x000b0 0x00c00 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.EXI3_Int_Enable .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.Get_TouchKey_CH_State .text.TouchKey_RS485_Printf_3 .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.EEPROM_WriteMCUDevInfo .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.tk_io_enable .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Baseline_prog .text.TK_Baseline_prog2 .text.tk_poweron_data_fineturn .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_freq_para_init .text.tk_reserved_init .text.TKEYIntHandler .text.CORETHandler .text.tk_init .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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI3_Int_Enable) for EXI3_Int_Enable + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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.UART2_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_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/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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) for GPIOB0_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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 + 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) 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_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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.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.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_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) 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/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) 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/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.EXI4to9IntHandler) 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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) for TouchKey_RS485_Printf_3 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) for EEPROM_WriteMCUDevInfo + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + 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.UART2_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) for tk_io_enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog) for TK_Baseline_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog2) for TK_Baseline_prog2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) for tk_poweron_data_fineturn + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) for tk_freq_para_init + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) for tk_init + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_f_1_18.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/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) 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_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteMCUDevInfo) 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), (2893 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_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_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_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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (64 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (68 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_RS485_Printf_2(Obj/SYSTEM_touch_key.o), (596 bytes). + Removing .text.TouchKey_RS485_Printf(Obj/SYSTEM_touch_key.o), (260 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text.EEPROM_ReadMCUDevInfo(Obj/SYSTEM_eeprom.o), (112 bytes). + Removing .text.EEPROM_Default_MCUDevInfo(Obj/SYSTEM_eeprom.o), (56 bytes). + Removing .text.EEPROM_Validate_MCUDevInfo(Obj/SYSTEM_eeprom.o), (88 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 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), (264 bytes). + Removing .text.Boot_Function_Init(Obj/SYSTEM_Bootload_fun.o), (180 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (107 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_f_1_18.o), (0 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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). + +605 unused seciton(s) (total 139292 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_f_1_18.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 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_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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 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 0x00003548 0 .text + $t 0x00003548 0 .text + $d 0x0000357c 0 .text + _fpadd_parts 0x00003580 F 724 .text + $d 0x00003580 0 .text + $t 0x00003580 0 .text + $d 0x00003848 0 .text + $t 0x00003854 0 .text + $d 0x000038bc 0 .text + $t 0x000038bc 0 .text + $d 0x00003ae4 0 .text + $d 0x00003af0 0 .text + $t 0x00003af0 0 .text + $d 0x00003c40 0 .text + $d 0x00003c44 0 .text + $t 0x00003c44 0 .text + $d 0x00003c80 0 .text + $t 0x00003c80 0 .text + $d 0x00003cbc 0 .text + $t 0x00003cbc 0 .text + $d 0x00003cf8 0 .text + $t 0x00003cf8 0 .text + $d 0x00003d64 0 .text + $d 0x00003d68 0 .text + $t 0x00003d68 0 .text + $d 0x00003dd4 0 .text + $d 0x00003dd8 0 .text + $t 0x00003dd8 0 .text + $d 0x00003e2c 0 .text + $t 0x00003e2c 0 .text + $d 0x00003e70 0 .text + $t 0x00003e70 0 .text + $d 0x00003ea4 0 .text + $d 0x00003eb0 0 .text + $t 0x00003eb0 0 .text + $d 0x00004038 0 .text + $d 0x0000404c 0 .text + $t 0x0000404c 0 .text + $d 0x00004104 0 .text + $d 0x00004110 0 .text + $t 0x00004110 0 .text + $d 0x0000419c 0 .text + $t 0x0000419c 0 .text + $d 0x00004224 0 .text + $t 0x00004224 0 .text + $d 0x00004288 0 .text.__main + $t 0x00004288 0 .text.__main + $d 0x000042ac 0 .text.__main + SYSCON_General_CMD.part.0 0x000042c0 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x000042c0 0 .text.SYSCON_General_CMD.part.0 + $t 0x000042c0 0 .text.SYSCON_General_CMD.part.0 + $d 0x0000432c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00004334 0 .text.SYSCON_RST_VALUE + $t 0x00004334 0 .text.SYSCON_RST_VALUE + $d 0x00004364 0 .text.SYSCON_RST_VALUE + $d 0x00004380 0 .text.SYSCON_General_CMD + $t 0x00004380 0 .text.SYSCON_General_CMD + $d 0x000043ac 0 .text.SYSCON_General_CMD + $d 0x000043b0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x000043b0 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00004428 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00004438 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00004438 0 .text.SYSCON_HFOSC_SELECTE + $d 0x0000445c 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00004460 0 .text.SYSCON_WDT_CMD + $t 0x00004460 0 .text.SYSCON_WDT_CMD + $d 0x00004490 0 .text.SYSCON_WDT_CMD + $d 0x0000449c 0 .text.SYSCON_IWDCNT_Reload + $t 0x0000449c 0 .text.SYSCON_IWDCNT_Reload + $d 0x000044ac 0 .text.SYSCON_IWDCNT_Reload + $d 0x000044b0 0 .text.SYSCON_IWDCNT_Config + $t 0x000044b0 0 .text.SYSCON_IWDCNT_Config + $d 0x000044c0 0 .text.SYSCON_IWDCNT_Config + $d 0x000044c8 0 .text.SYSCON_LVD_Config + $t 0x000044c8 0 .text.SYSCON_LVD_Config + $d 0x000044e0 0 .text.SYSCON_LVD_Config + $d 0x000044e8 0 .text.LVD_Int_Enable + $t 0x000044e8 0 .text.LVD_Int_Enable + $d 0x00004500 0 .text.LVD_Int_Enable + $d 0x00004504 0 .text.IWDT_Int_Enable + $t 0x00004504 0 .text.IWDT_Int_Enable + $d 0x0000451c 0 .text.IWDT_Int_Enable + $d 0x00004520 0 .text.EXTI_trigger_CMD + $t 0x00004520 0 .text.EXTI_trigger_CMD + $d 0x0000455c 0 .text.EXTI_trigger_CMD + $d 0x00004560 0 .text.EXTI_interrupt_CMD + $t 0x00004560 0 .text.EXTI_interrupt_CMD + $d 0x0000458c 0 .text.EXTI_interrupt_CMD + $d 0x00004594 0 .text.GPIO_EXTI_interrupt + $t 0x00004594 0 .text.GPIO_EXTI_interrupt + $d 0x00004598 0 .text.EXI3_Int_Enable + $t 0x00004598 0 .text.EXI3_Int_Enable + $d 0x000045a4 0 .text.EXI3_Int_Enable + $d 0x000045a8 0 .text.EXI4_Int_Enable + $t 0x000045a8 0 .text.EXI4_Int_Enable + $d 0x000045b4 0 .text.EXI4_Int_Enable + $d 0x000045b8 0 .text.SYSCON_Int_Enable + $t 0x000045b8 0 .text.SYSCON_Int_Enable + $d 0x000045c0 0 .text.SYSCON_Int_Enable + $d 0x000045c4 0 .text.SYSCON_Int_Disable + $t 0x000045c4 0 .text.SYSCON_Int_Disable + $d 0x000045cc 0 .text.SYSCON_Int_Disable + $d 0x000045d0 0 .text.SYSCON_INT_Priority + $t 0x000045d0 0 .text.SYSCON_INT_Priority + $d 0x000045e8 0 .text.SYSCON_INT_Priority + $d 0x000045f4 0 .text.Set_INT_Priority + $t 0x000045f4 0 .text.Set_INT_Priority + $d 0x00004620 0 .text.Set_INT_Priority + $d 0x00004624 0 .text.GPIO_DeInit + $t 0x00004624 0 .text.GPIO_DeInit + $d 0x00004678 0 .text.GPIO_DeInit + $d 0x00004688 0 .text.GPIO_Init + $t 0x00004688 0 .text.GPIO_Init + $d 0x0000469a 0 .text.GPIO_Init + $t 0x000046a2 0 .text.GPIO_Init + $d 0x000046fe 0 .text.GPIO_Init + $t 0x00004706 0 .text.GPIO_Init + $d 0x00004754 0 .text.GPIO_Init + $d 0x00004768 0 .text.GPIO_PullHigh_Init + $t 0x00004768 0 .text.GPIO_PullHigh_Init + $d 0x0000477c 0 .text.GPIO_DriveStrength_EN + $t 0x0000477c 0 .text.GPIO_DriveStrength_EN + $d 0x0000478c 0 .text.GPIO_IntGroup_Set + $t 0x0000478c 0 .text.GPIO_IntGroup_Set + $d 0x00004880 0 .text.GPIO_IntGroup_Set + $d 0x00004898 0 .text.GPIOA0_EXI_Init + $t 0x00004898 0 .text.GPIOA0_EXI_Init + $d 0x000048a4 0 .text.GPIOA0_EXI_Init + $t 0x000048b4 0 .text.GPIOA0_EXI_Init + $d 0x00004990 0 .text.GPIOA0_EXI_Init + $d 0x00004994 0 .text.GPIOB0_EXI_Init + $t 0x00004994 0 .text.GPIOB0_EXI_Init + $d 0x000049a0 0 .text.GPIOB0_EXI_Init + $t 0x000049a6 0 .text.GPIOB0_EXI_Init + $d 0x000049fc 0 .text.GPIOB0_EXI_Init + $d 0x00004a00 0 .text.GPIO_Write_High + $t 0x00004a00 0 .text.GPIO_Write_High + $d 0x00004a08 0 .text.GPIO_Write_Low + $t 0x00004a08 0 .text.GPIO_Write_Low + $d 0x00004a10 0 .text.GPIO_Reverse + $t 0x00004a10 0 .text.GPIO_Reverse + $d 0x00004a26 0 .text.GPIO_Read_Status + $t 0x00004a26 0 .text.GPIO_Read_Status + $d 0x00004a38 0 .text.LPT_Soft_Reset + $t 0x00004a38 0 .text.LPT_Soft_Reset + $d 0x00004a48 0 .text.LPT_Soft_Reset + $d 0x00004a4c 0 .text.WWDT_CNT_Load + $t 0x00004a4c 0 .text.WWDT_CNT_Load + $d 0x00004a58 0 .text.WWDT_CNT_Load + $d 0x00004a5c 0 .text.BT_DeInit + $t 0x00004a5c 0 .text.BT_DeInit + $d 0x00004a78 0 .text.BT_Start + $t 0x00004a78 0 .text.BT_Start + $d 0x00004a80 0 .text.BT_Soft_Reset + $t 0x00004a80 0 .text.BT_Soft_Reset + $d 0x00004a8a 0 .text.BT_Configure + $t 0x00004a8a 0 .text.BT_Configure + $d 0x00004aa2 0 .text.BT_ControlSet_Configure + $t 0x00004aa2 0 .text.BT_ControlSet_Configure + $d 0x00004ace 0 .text.BT_Period_CMP_Write + $t 0x00004ace 0 .text.BT_Period_CMP_Write + $d 0x00004ad4 0 .text.BT_ConfigInterrupt_CMD + $t 0x00004ad4 0 .text.BT_ConfigInterrupt_CMD + $d 0x00004ae8 0 .text.BT1_INT_ENABLE + $t 0x00004ae8 0 .text.BT1_INT_ENABLE + $d 0x00004af4 0 .text.BT1_INT_ENABLE + $d 0x00004af8 0 .text.SIO_DeInit + $t 0x00004af8 0 .text.SIO_DeInit + $d 0x00004b14 0 .text.SIO_DeInit + $d 0x00004b18 0 .text.SIO_IO_Init + $t 0x00004b18 0 .text.SIO_IO_Init + $d 0x00004b70 0 .text.SIO_IO_Init + $d 0x00004b78 0 .text.SIO_TX_Init + $t 0x00004b78 0 .text.SIO_TX_Init + $d 0x00004b84 0 .text.SIO_TX_Init + $d 0x00004b88 0 .text.SIO_TX_Configure + $t 0x00004b88 0 .text.SIO_TX_Configure + $d 0x00004bd4 0 .text.SIO_TX_Configure + $d 0x00004bd8 0 .text.UART0_DeInit + $t 0x00004bd8 0 .text.UART0_DeInit + $d 0x00004bec 0 .text.UART0_DeInit + $d 0x00004bf0 0 .text.UART1_DeInit + $t 0x00004bf0 0 .text.UART1_DeInit + $d 0x00004c04 0 .text.UART1_DeInit + $d 0x00004c08 0 .text.UART2_DeInit + $t 0x00004c08 0 .text.UART2_DeInit + $d 0x00004c1c 0 .text.UART2_DeInit + $d 0x00004c20 0 .text.UART0_Int_Enable + $t 0x00004c20 0 .text.UART0_Int_Enable + $d 0x00004c34 0 .text.UART0_Int_Enable + $d 0x00004c3c 0 .text.UART2_Int_Enable + $t 0x00004c3c 0 .text.UART2_Int_Enable + $d 0x00004c50 0 .text.UART2_Int_Enable + $d 0x00004c58 0 .text.UART_IO_Init + $t 0x00004c58 0 .text.UART_IO_Init + $d 0x00004d3c 0 .text.UART_IO_Init + $d 0x00004d44 0 .text.UARTInit + $t 0x00004d44 0 .text.UARTInit + $d 0x00004d50 0 .text.UARTInit + $d 0x00004d54 0 .text.UARTInitRxTxIntEn + $t 0x00004d54 0 .text.UARTInitRxTxIntEn + $d 0x00004d60 0 .text.UARTInitRxTxIntEn + $d 0x00004d64 0 .text.UARTTransmit + $t 0x00004d64 0 .text.UARTTransmit + $d 0x00004d84 0 .text.EPT_Stop + $t 0x00004d84 0 .text.EPT_Stop + $d 0x00004da4 0 .text.EPT_Stop + $d 0x00004dac 0 .text.ADC12_RESET_VALUE + $t 0x00004dac 0 .text.ADC12_RESET_VALUE + $d 0x00004e0c 0 .text.ADC12_RESET_VALUE + $d 0x00004e10 0 .text.ADC12_Control + $t 0x00004e10 0 .text.ADC12_Control + $d 0x00004e1c 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00004e20 F 32 .text.ADC12_CMD.part.0 + $d 0x00004e20 0 .text.ADC12_CMD.part.0 + $t 0x00004e20 0 .text.ADC12_CMD.part.0 + $d 0x00004e3c 0 .text.ADC12_CMD.part.0 + $d 0x00004e40 0 .text.ADC12_CLK_CMD + $t 0x00004e40 0 .text.ADC12_CLK_CMD + $d 0x00004e68 0 .text.ADC12_CLK_CMD + $d 0x00004e6c 0 .text.ADC12_Software_Reset + $t 0x00004e6c 0 .text.ADC12_Software_Reset + $d 0x00004e78 0 .text.ADC12_CMD + $t 0x00004e78 0 .text.ADC12_CMD + $d 0x00004e9c 0 .text.ADC12_CMD + $d 0x00004ea0 0 .text.ADC12_ready_wait + $t 0x00004ea0 0 .text.ADC12_ready_wait + $d 0x00004eb0 0 .text.ADC12_ready_wait + $d 0x00004eb4 0 .text.ADC12_SEQEND_wait + $t 0x00004eb4 0 .text.ADC12_SEQEND_wait + $d 0x00004ec8 0 .text.ADC12_SEQEND_wait + $d 0x00004ecc 0 .text.ADC12_DATA_OUPUT + $t 0x00004ecc 0 .text.ADC12_DATA_OUPUT + $d 0x00004edc 0 .text.ADC12_DATA_OUPUT + $d 0x00004ee0 0 .text.ADC12_Configure_Mode + $t 0x00004ee0 0 .text.ADC12_Configure_Mode + $d 0x00004f58 0 .text.ADC12_Configure_Mode + $d 0x00004f5c 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00004f5c 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000050d0 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000050f4 0 .text.ADC12_ConversionChannel_Config + $t 0x000050f4 0 .text.ADC12_ConversionChannel_Config + $d 0x00005120 0 .text.ADC12_ConversionChannel_Config + $t 0x00005130 0 .text.ADC12_ConversionChannel_Config + $d 0x00005268 0 .text.ADC12_ConversionChannel_Config + $d 0x00005274 0 .text.Page_ProgramData + $t 0x00005274 0 .text.Page_ProgramData + $d 0x0000530c 0 .text.Page_ProgramData + $d 0x00005314 0 .text.ReadDataArry_U8 + $t 0x00005314 0 .text.ReadDataArry_U8 + $d 0x00005340 0 .text.tk_parameter_init + $t 0x00005340 0 .text.tk_parameter_init + $d 0x00005430 0 .text.tk_parameter_init + $d 0x00005480 0 .text.CORET_DeInit + $t 0x00005480 0 .text.CORET_DeInit + $d 0x00005494 0 .text.CORET_DeInit + $d 0x00005498 0 .text.CORET_Int_Enable + $t 0x00005498 0 .text.CORET_Int_Enable + $d 0x000054a8 0 .text.CORET_Int_Enable + $d 0x000054b0 0 .text.CORET_start + $t 0x000054b0 0 .text.CORET_start + $d 0x000054bc 0 .text.CORET_start + $d 0x000054c0 0 .text.CORET_CLKSOURCE_EX + $t 0x000054c0 0 .text.CORET_CLKSOURCE_EX + $d 0x000054cc 0 .text.CORET_CLKSOURCE_EX + $d 0x000054d0 0 .text.CORET_TICKINT_Enable + $t 0x000054d0 0 .text.CORET_TICKINT_Enable + $d 0x000054dc 0 .text.CORET_TICKINT_Enable + $d 0x000054e0 0 .text.CORET_reload + $t 0x000054e0 0 .text.CORET_reload + $d 0x000054ec 0 .text.CORET_reload + $d 0x000054f0 0 .text.startup.main + $t 0x000054f0 0 .text.startup.main + $d 0x0000553c 0 .text.startup.main + $d 0x00005544 0 .text.delay_nms + $t 0x00005544 0 .text.delay_nms + $d 0x00005570 0 .text.delay_nus + $t 0x00005570 0 .text.delay_nus + $d 0x00005594 0 .text.GPIO_CONFIG + $t 0x00005594 0 .text.GPIO_CONFIG + $d 0x00005618 0 .text.GPIO_CONFIG + $d 0x00005620 0 .text.BT_CONFIG + $t 0x00005620 0 .text.BT_CONFIG + $d 0x00005678 0 .text.BT_CONFIG + $d 0x00005680 0 .text.SYSCON_CONFIG + $t 0x00005680 0 .text.SYSCON_CONFIG + $d 0x000056e4 0 .text.APT32F102_init + $t 0x000056e4 0 .text.APT32F102_init + $d 0x0000576c 0 .text.APT32F102_init + $d 0x00005780 0 .text.SYSCONIntHandler + $t 0x00005780 0 .text.SYSCONIntHandler + $d 0x0000586c 0 .text.SYSCONIntHandler + $d 0x00005870 0 .text.IFCIntHandler + $t 0x00005870 0 .text.IFCIntHandler + $d 0x000058d4 0 .text.IFCIntHandler + $d 0x000058d8 0 .text.ADCIntHandler + $t 0x000058d8 0 .text.ADCIntHandler + $d 0x0000593c 0 .text.ADCIntHandler + $d 0x00005940 0 .text.EPT0IntHandler + $t 0x00005940 0 .text.EPT0IntHandler + $d 0x00005ae0 0 .text.EPT0IntHandler + $d 0x00005aec 0 .text.WWDTHandler + $t 0x00005aec 0 .text.WWDTHandler + $d 0x00005b1c 0 .text.WWDTHandler + $d 0x00005b20 0 .text.GPT0IntHandler + $t 0x00005b20 0 .text.GPT0IntHandler + $d 0x00005b9c 0 .text.GPT0IntHandler + $d 0x00005ba0 0 .text.RTCIntHandler + $t 0x00005ba0 0 .text.RTCIntHandler + $d 0x00005c08 0 .text.RTCIntHandler + $d 0x00005c10 0 .text.UART0IntHandler + $t 0x00005c10 0 .text.UART0IntHandler + $d 0x00005c48 0 .text.UART0IntHandler + $d 0x00005c4c 0 .text.UART1IntHandler + $t 0x00005c4c 0 .text.UART1IntHandler + $d 0x00005c84 0 .text.UART1IntHandler + $d 0x00005c88 0 .text.UART2IntHandler + $t 0x00005c88 0 .text.UART2IntHandler + $d 0x00005d08 0 .text.UART2IntHandler + $d 0x00005d1c 0 .text.SPI0IntHandler + $t 0x00005d1c 0 .text.SPI0IntHandler + $d 0x00005e00 0 .text.SPI0IntHandler + $d 0x00005e04 0 .text.SIO0IntHandler + $t 0x00005e04 0 .text.SIO0IntHandler + $d 0x00005e54 0 .text.SIO0IntHandler + $d 0x00005e58 0 .text.EXI0IntHandler + $t 0x00005e58 0 .text.EXI0IntHandler + $d 0x00005e84 0 .text.EXI0IntHandler + $d 0x00005e88 0 .text.EXI1IntHandler + $t 0x00005e88 0 .text.EXI1IntHandler + $d 0x00005eb4 0 .text.EXI1IntHandler + $d 0x00005eb8 0 .text.EXI2to3IntHandler + $t 0x00005eb8 0 .text.EXI2to3IntHandler + $d 0x00005efc 0 .text.EXI2to3IntHandler + $d 0x00005f00 0 .text.EXI4to9IntHandler + $t 0x00005f00 0 .text.EXI4to9IntHandler + $d 0x00005f68 0 .text.EXI4to9IntHandler + $d 0x00005f6c 0 .text.EXI10to15IntHandler + $t 0x00005f6c 0 .text.EXI10to15IntHandler + $d 0x00005fe4 0 .text.EXI10to15IntHandler + $d 0x00005fec 0 .text.LPTIntHandler + $t 0x00005fec 0 .text.LPTIntHandler + $d 0x0000601c 0 .text.LPTIntHandler + $d 0x00006020 0 .text.BT0IntHandler + $t 0x00006020 0 .text.BT0IntHandler + $d 0x00006068 0 .text.BT0IntHandler + $d 0x0000606c 0 .text.BT1IntHandler + $t 0x0000606c 0 .text.BT1IntHandler + $d 0x000060d4 0 .text.BT1IntHandler + $d 0x000060dc 0 .text.PriviledgeVioHandler + $t 0x000060dc 0 .text.PriviledgeVioHandler + $d 0x000060de 0 .text.PendTrapHandler + $t 0x000060de 0 .text.PendTrapHandler + $d 0x000060e6 0 .text.Trap3Handler + $t 0x000060e6 0 .text.Trap3Handler + $d 0x000060ee 0 .text.Trap2Handler + $t 0x000060ee 0 .text.Trap2Handler + $d 0x000060f6 0 .text.Trap1Handler + $t 0x000060f6 0 .text.Trap1Handler + $d 0x000060fe 0 .text.Trap0Handler + $t 0x000060fe 0 .text.Trap0Handler + $d 0x00006106 0 .text.UnrecExecpHandler + $t 0x00006106 0 .text.UnrecExecpHandler + $d 0x0000610e 0 .text.BreakPointHandler + $t 0x0000610e 0 .text.BreakPointHandler + $d 0x00006116 0 .text.AccessErrHandler + $t 0x00006116 0 .text.AccessErrHandler + $d 0x0000611e 0 .text.IllegalInstrHandler + $t 0x0000611e 0 .text.IllegalInstrHandler + $d 0x00006126 0 .text.MisalignedHandler + $t 0x00006126 0 .text.MisalignedHandler + $d 0x0000612e 0 .text.CNTAIntHandler + $t 0x0000612e 0 .text.CNTAIntHandler + $d 0x00006136 0 .text.I2CIntHandler + $t 0x00006136 0 .text.I2CIntHandler + $d 0x00006140 0 .text.__divsi3 + $t 0x00006140 0 .text.__divsi3 + $d 0x00006160 0 .text.__divsi3 + $d 0x00006164 0 .text.__udivsi3 + $t 0x00006164 0 .text.__udivsi3 + $d 0x00006184 0 .text.__udivsi3 + $d 0x00006188 0 .text.__modsi3 + $t 0x00006188 0 .text.__modsi3 + $d 0x000061a8 0 .text.__modsi3 + $d 0x000061ac 0 .text.__umodsi3 + $t 0x000061ac 0 .text.__umodsi3 + $d 0x000061cc 0 .text.__umodsi3 + $d 0x000061d0 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000061d0 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000061d6 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000061d6 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000061dc 0 .text.UARTx_Init + $t 0x000061dc 0 .text.UARTx_Init + $d 0x000062b4 0 .text.UARTx_Init + $d 0x000062e4 0 .text.UART2_RecvINT_Processing + $t 0x000062e4 0 .text.UART2_RecvINT_Processing + $d 0x0000631c 0 .text.UART2_RecvINT_Processing + $d 0x00006328 0 .text.UART2_TASK + $t 0x00006328 0 .text.UART2_TASK + $d 0x0000639c 0 .text.UART2_TASK + $d 0x000063b4 0 .text.BUS485_Send + $t 0x000063b4 0 .text.BUS485_Send + $d 0x00006460 0 .text.BUS485_Send + $d 0x00006478 0 .text.MultSend_Task + $t 0x00006478 0 .text.MultSend_Task + $d 0x000064e4 0 .text.MultSend_Task + $d 0x000064ec 0 .text.Set_GroupSend + $t 0x000064ec 0 .text.Set_GroupSend + $d 0x00006548 0 .text.Set_GroupSend + $d 0x00006550 0 .text.Clear_SendFlag + $t 0x00006550 0 .text.Clear_SendFlag + $d 0x0000655c 0 .text.Clear_SendFlag + $d 0x00006560 0 .text.BUS485_Jump_Boot + $t 0x00006560 0 .text.BUS485_Jump_Boot + $d 0x00006568 0 .text.BUS485_Jump_Boot + $d 0x0000656c 0 .text.BUS485Send_Task + $t 0x0000656c 0 .text.BUS485Send_Task + $d 0x00006594 0 .text.BUS485Send_Task + $d 0x000065a0 0 .text.BusIdle_Task + $t 0x000065a0 0 .text.BusIdle_Task + $d 0x000065d8 0 .text.BusIdle_Task + $d 0x000065e0 0 .text.BusBusy_Task + $t 0x000065e0 0 .text.BusBusy_Task + $d 0x00006630 0 .text.BusBusy_Task + $d 0x0000663c 0 .text.Dbg_Println + $t 0x0000663c 0 .text.Dbg_Println + $d 0x00006648 0 .text.Dbg_Print_Buff + $t 0x00006648 0 .text.Dbg_Print_Buff + $d 0x0000664c 0 .text.Touch_Key_Init + $t 0x0000664c 0 .text.Touch_Key_Init + $d 0x000066a0 0 .text.Touch_Key_Init + $d 0x000066b4 0 .text.Get_TouchKey_CH_State + $t 0x000066b4 0 .text.Get_TouchKey_CH_State + $d 0x000066c0 0 .text.Get_TouchKey_CH_State + $t 0x000066c6 0 .text.Get_TouchKey_CH_State + $d 0x000066ec 0 .text.Get_TouchKey_CH_State + $d 0x000066f0 0 .text.TouchKey_RS485_Printf_3 + $t 0x000066f0 0 .text.TouchKey_RS485_Printf_3 + $d 0x000069bc 0 .text.TouchKey_RS485_Printf_3 + $d 0x000069e4 0 .text.Touch_Key_Event_Handling + $t 0x000069e4 0 .text.Touch_Key_Event_Handling + $d 0x00006a8c 0 .text.Touch_Key_Event_Handling + $d 0x00006a90 0 .text.TouchKey_Set_Interface_Task + $t 0x00006a90 0 .text.TouchKey_Set_Interface_Task + $d 0x00006ac0 0 .text.TouchKey_Set_Interface_Task + $d 0x00006acc 0 .text.Touch_Key_Task + $t 0x00006acc 0 .text.Touch_Key_Task + $d 0x00006bb8 0 .text.Touch_Key_Task + $d 0x00006bcc 0 .text.TouchKey_CheckSum + $t 0x00006bcc 0 .text.TouchKey_CheckSum + $d 0x00006be4 0 .text.TouchKey_Comm_Reply + $t 0x00006be4 0 .text.TouchKey_Comm_Reply + $d 0x00006c50 0 .text.TouchKey_Comm_Reply + $d 0x00006c54 0 .text.TouchKey_SetPara_Processing + $t 0x00006c54 0 .text.TouchKey_SetPara_Processing + $d 0x00006cf8 0 .text.TouchKey_SetPara_Processing + $d 0x00006d0c 0 .text.TouchKey_ReadPara_Processing + $t 0x00006d0c 0 .text.TouchKey_ReadPara_Processing + $d 0x00006dfc 0 .text.TouchKey_ReadPara_Processing + $d 0x00006e04 0 .text.TouchKey_DugPrintf_Processing + $t 0x00006e04 0 .text.TouchKey_DugPrintf_Processing + $d 0x00006e38 0 .text.TouchKey_DugPrintf_Processing + $d 0x00006e3c 0 .text.TouchKey_ReadEnve_Processing + $t 0x00006e3c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00006ee4 0 .text.TouchKey_ReadEnve_Processing + $d 0x00006eec 0 .text.TouchKey_ResetDevice_Processing + $t 0x00006eec 0 .text.TouchKey_ResetDevice_Processing + $d 0x00006f08 0 .text.TouchKey_Comm_Processing + $t 0x00006f08 0 .text.TouchKey_Comm_Processing + $d 0x00006f96 0 .text.TouchKey_Comm_Processing + $t 0x00006f9c 0 .text.TouchKey_Comm_Processing + $d 0x00006fc4 0 .text.TouchKey_Comm_Processing + $d 0x00006fe0 0 .text.EEPROM_CheckSum + $t 0x00006fe0 0 .text.EEPROM_CheckSum + $d 0x00006ff8 0 .text.EEPROM_ReadParaInfo + $t 0x00006ff8 0 .text.EEPROM_ReadParaInfo + $d 0x00007064 0 .text.EEPROM_ReadParaInfo + $d 0x0000706c 0 .text.EEPROM_WriteParaInfo + $t 0x0000706c 0 .text.EEPROM_WriteParaInfo + $d 0x000070ac 0 .text.EEPROM_WriteParaInfo + $d 0x000070b0 0 .text.EEPROM_Validate_ParaInfo + $t 0x000070b0 0 .text.EEPROM_Validate_ParaInfo + $d 0x00007134 0 .text.EEPROM_Validate_ParaInfo + $d 0x0000713c 0 .text.EEPROM_Default_ParaInfo + $t 0x0000713c 0 .text.EEPROM_Default_ParaInfo + $d 0x0000715c 0 .text.EEPROM_Init + $t 0x0000715c 0 .text.EEPROM_Init + $d 0x000071a8 0 .text.EEPROM_Init + $d 0x000071b4 0 .text.EEPROM_WriteTouchPara + $t 0x000071b4 0 .text.EEPROM_WriteTouchPara + $d 0x00007214 0 .text.EEPROM_WriteTouchPara + $d 0x00007220 0 .text.EEPROM_ReadTouchPara + $t 0x00007220 0 .text.EEPROM_ReadTouchPara + $d 0x000072b8 0 .text.EEPROM_ReadTouchPara + $d 0x000072cc 0 .text.EEPROM_Validate_TouchPara + $t 0x000072cc 0 .text.EEPROM_Validate_TouchPara + $d 0x000073a4 0 .text.EEPROM_Validate_TouchPara + $d 0x000073a8 0 .text.EEPROM_Default_TouchPara + $t 0x000073a8 0 .text.EEPROM_Default_TouchPara + $d 0x00007418 0 .text.EEPROM_TouchPara_Printf + $t 0x00007418 0 .text.EEPROM_TouchPara_Printf + $d 0x0000747c 0 .text.EEPROM_TouchPara_Printf + $d 0x00007498 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00007498 0 .text.EEPROM_WriteMCUDevInfo + $d 0x000074d8 0 .text.ADC_Init + $t 0x000074d8 0 .text.ADC_Init + $d 0x00007530 0 .text.ADC_Init + $d 0x00007534 0 .text.Thermistor_Array_Transform + $t 0x00007534 0 .text.Thermistor_Array_Transform + $d 0x00007574 0 .text.Thermistor_Array_Transform + $d 0x0000757c 0 .text.Calculate_ADC_Sample_Average + $t 0x0000757c 0 .text.Calculate_ADC_Sample_Average + $d 0x000075d4 0 .text.Calculate_ADC_Sample_Average + $d 0x000075e0 0 .text.Get_Temp_Val + $t 0x000075e0 0 .text.Get_Temp_Val + $d 0x000075e8 0 .text.Get_Temp_Val + $d 0x000075ec 0 .text.Gather_Temp + $t 0x000075ec 0 .text.Gather_Temp + $d 0x0000764c 0 .text.Gather_Temp + $d 0x00007658 0 .text.ADC_Sample_Task + $t 0x00007658 0 .text.ADC_Sample_Task + $d 0x000076bc 0 .text.ADC_Sample_Task + $d 0x000076c8 0 .text.Contol_Switch_Light + $t 0x000076c8 0 .text.Contol_Switch_Light + $d 0x000076d8 0 .text.Contol_Switch_Light + $t 0x000076e4 0 .text.Contol_Switch_Light + $d 0x00007a60 0 .text.Contol_Switch_Light + $t 0x00007a68 0 .text.Contol_Switch_Light + $d 0x00007ab4 0 .text.Contol_Switch_Light_2 + $t 0x00007ab4 0 .text.Contol_Switch_Light_2 + $d 0x00007ac4 0 .text.Contol_Switch_Light_2 + $t 0x00007ad0 0 .text.Contol_Switch_Light_2 + $d 0x00007e4c 0 .text.Contol_Switch_Light_2 + $t 0x00007e54 0 .text.Contol_Switch_Light_2 + $d 0x00007ea0 0 .text.Contol_Switch_ClickAction + $t 0x00007ea0 0 .text.Contol_Switch_ClickAction + $d 0x00007ec4 0 .text.Contol_Switch_ClickAction + $d 0x00007ec8 0 .text.Get_TM1812_State_Change + $t 0x00007ec8 0 .text.Get_TM1812_State_Change + $d 0x00007f04 0 .text.Get_TM1812_State_Change + $d 0x00007f0c 0 .text.TimeCall_SIO_Send + $t 0x00007f0c 0 .text.TimeCall_SIO_Send + $d 0x00008020 0 .text.TimeCall_SIO_Send + $d 0x0000802c 0 .text.TimeCall_SIO_Send2 + $t 0x0000802c 0 .text.TimeCall_SIO_Send2 + $d 0x000080c4 0 .text.TimeCall_SIO_Send2 + $d 0x000080d4 0 .text.Tm1812_Task + $t 0x000080d4 0 .text.Tm1812_Task + $d 0x0000811c 0 .text.Tm1812_Task + $d 0x00008130 0 .text.Tm1812_Ch_Insert_Data + $t 0x00008130 0 .text.Tm1812_Ch_Insert_Data + $d 0x0000814c 0 .text.Tm1812_Ch_Insert_Data + $d 0x00008154 0 .text.TM1812_Control_CH_State + $t 0x00008154 0 .text.TM1812_Control_CH_State + $d 0x000081b0 0 .text.TM1812_Control_CH_State + $d 0x000081c4 0 .text.TM1812_Control_CH_CurrState + $t 0x000081c4 0 .text.TM1812_Control_CH_CurrState + $d 0x0000821c 0 .text.TM1812_Control_CH_CurrState + $d 0x00008228 0 .text.TM1812_LED_Init + $t 0x00008228 0 .text.TM1812_LED_Init + $d 0x00008290 0 .text.TM1812_LED_Init + $d 0x00008294 0 .text.HT1621_WR_Data + $t 0x00008294 0 .text.HT1621_WR_Data + $d 0x000082d8 0 .text.HT1621_WR_Data + $d 0x000082dc 0 .text.HT1621_WR_CMD + $t 0x000082dc 0 .text.HT1621_WR_CMD + $d 0x00008308 0 .text.HT1621_WR_CMD + $d 0x0000830c 0 .text.HT1621_Init + $t 0x0000830c 0 .text.HT1621_Init + $d 0x000083b8 0 .text.HT1621_Init + $d 0x000083c0 0 .text.HT1621_Clear + $t 0x000083c0 0 .text.HT1621_Clear + $d 0x00008408 0 .text.HT1621_Clear + $d 0x00008410 0 .text.HT1621_ALLON + $t 0x00008410 0 .text.HT1621_ALLON + $d 0x0000844c 0 .text.HT1621_ALLON + $d 0x00008450 0 .text.HT1621_Refresh_Data + $t 0x00008450 0 .text.HT1621_Refresh_Data + $d 0x00008494 0 .text.HT1621_Refresh_Data + $d 0x0000849c 0 .text.Set_Temperature_Display + $t 0x0000849c 0 .text.Set_Temperature_Display + $d 0x00008560 0 .text.Set_Temperature_Display + $d 0x0000856c 0 .text.Local_Temperature_Display + $t 0x0000856c 0 .text.Local_Temperature_Display + $d 0x00008630 0 .text.Local_Temperature_Display + $d 0x0000863c 0 .text.Control_Mode + $t 0x0000863c 0 .text.Control_Mode + $d 0x00008646 0 .text.Control_Mode + $t 0x00008654 0 .text.Control_Mode + $d 0x00008878 0 .text.Control_Mode + $d 0x00008880 0 .text.Control_wind_velocity + $t 0x00008880 0 .text.Control_wind_velocity + $d 0x0000888c 0 .text.Control_wind_velocity + $t 0x00008892 0 .text.Control_wind_velocity + $d 0x0000894c 0 .text.Control_wind_velocity + $d 0x00008950 0 .text.Control_Prompt_Text + $t 0x00008950 0 .text.Control_Prompt_Text + $d 0x000089f0 0 .text.Control_Prompt_Text + $d 0x000089f4 0 .text.Controlled_Buzzer + $t 0x000089f4 0 .text.Controlled_Buzzer + $d 0x00008a34 0 .text.Controlled_Buzzer + $d 0x00008a3c 0 .text.Controlled_LCD_Backlight + $t 0x00008a3c 0 .text.Controlled_LCD_Backlight + $d 0x00008b10 0 .text.Controlled_LCD_Backlight + $d 0x00008b18 0 .text.Controlled_Key_Backlight + $t 0x00008b18 0 .text.Controlled_Key_Backlight + $d 0x00008b44 0 .text.Controlled_Key_Backlight + $d 0x00008b48 0 .text.Set_Device_ADDR + $t 0x00008b48 0 .text.Set_Device_ADDR + $d 0x00008bdc 0 .text.Set_Device_ADDR + $d 0x00008be4 0 .text.Set_Temp_Difference + $t 0x00008be4 0 .text.Set_Temp_Difference + $d 0x00008c40 0 .text.Set_Temp_Difference + $d 0x00008c48 0 .text.HT1621_Refresh_Task + $t 0x00008c48 0 .text.HT1621_Refresh_Task + $d 0x00008cc0 0 .text.HT1621_Refresh_Task + $d 0x00008cd8 0 .text.Boot_Comm_CheckSum + $t 0x00008cd8 0 .text.Boot_Comm_CheckSum + $d 0x00008cf8 0 .text.Boot_Comm_CheckSum + $d 0x00008cfc 0 .text.Boot_Comm_FillReplyPack + $t 0x00008cfc 0 .text.Boot_Comm_FillReplyPack + $d 0x00008d50 0 .text.Boot_Comm_FillReplyPack + $d 0x00008d58 0 .text.Boot_Time_Refresh + $t 0x00008d58 0 .text.Boot_Time_Refresh + $d 0x00008d64 0 .text.Boot_Time_Refresh + $d 0x00008d6c 0 .text.Boot_Comm_UpgradeProcess + $t 0x00008d6c 0 .text.Boot_Comm_UpgradeProcess + $d 0x00008ee4 0 .text.Boot_Comm_UpgradeProcess + $d 0x00008ef4 0 .text.TemCtrl_Init + $t 0x00008ef4 0 .text.TemCtrl_Init + $d 0x00009054 0 .text.TemCtrl_Init + $d 0x0000906c 0 .text.TemCtrl_Model_Set + $t 0x0000906c 0 .text.TemCtrl_Model_Set + $d 0x000090b0 0 .text.TemCtrl_Model_Set + $d 0x000090b8 0 .text.TemCtrl_Fan_Set + $t 0x000090b8 0 .text.TemCtrl_Fan_Set + $d 0x000090d6 0 .text.TemCtrl_Fan_Set + $t 0x000090da 0 .text.TemCtrl_Fan_Set + $d 0x000090fc 0 .text.TemCtrl_Fan_Set + $d 0x00009104 0 .text.TemCtrl_Temperature_Dec + $t 0x00009104 0 .text.TemCtrl_Temperature_Dec + $d 0x0000912c 0 .text.TemCtrl_Temperature_Dec + $d 0x00009134 0 .text.TemCtrl_Temperature_Add + $t 0x00009134 0 .text.TemCtrl_Temperature_Add + $d 0x0000915c 0 .text.TemCtrl_Temperature_Add + $d 0x00009164 0 .text.TemCtrl_OnOff_Set + $t 0x00009164 0 .text.TemCtrl_OnOff_Set + $d 0x00009190 0 .text.TemCtrl_OnOff_Set + $d 0x00009198 0 .text.Tem_Valve_Ctrl + $t 0x00009198 0 .text.Tem_Valve_Ctrl + $d 0x00009258 0 .text.Tem_Valve_Ctrl + $d 0x00009264 0 .text.TemCtrl_Pro + $t 0x00009264 0 .text.TemCtrl_Pro + $d 0x000093c4 0 .text.TemCtrl_Pro + $d 0x000093dc 0 .text.KEY1_Model_Press_Fun + $t 0x000093dc 0 .text.KEY1_Model_Press_Fun + $d 0x00009494 0 .text.KEY1_Model_Press_Fun + $d 0x000094a8 0 .text.KEY2_Fan_Press_Fun + $t 0x000094a8 0 .text.KEY2_Fan_Press_Fun + $d 0x00009560 0 .text.KEY2_Fan_Press_Fun + $d 0x00009574 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00009574 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00009660 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00009674 0 .text.KEY3_Long_Press_Fun + $t 0x00009674 0 .text.KEY3_Long_Press_Fun + $d 0x000096d0 0 .text.KEY3_Long_Press_Fun + $d 0x000096e4 0 .text.KEY4_TempDec_Press_Fun + $t 0x000096e4 0 .text.KEY4_TempDec_Press_Fun + $d 0x000097d0 0 .text.KEY4_TempDec_Press_Fun + $d 0x000097e4 0 .text.KEY4_Long_Press + $t 0x000097e4 0 .text.KEY4_Long_Press + $d 0x00009840 0 .text.KEY4_Long_Press + $d 0x00009854 0 .text.KEY5_OnOff_Press_Fun + $t 0x00009854 0 .text.KEY5_OnOff_Press_Fun + $d 0x000098cc 0 .text.KEY5_OnOff_Press_Fun + $d 0x000098e4 0 .text.TempCtrl_OnOff_DisPlay + $t 0x000098e4 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00009930 0 .text.TempCtrl_OnOff_DisPlay + $d 0x00009938 0 .text.DisPlay_Init + $t 0x00009938 0 .text.DisPlay_Init + $d 0x00009950 0 .text.DisPlay_Init + $d 0x00009958 0 .text.DisPlay_Task + $t 0x00009958 0 .text.DisPlay_Task + $d 0x00009b7a 0 .text.DisPlay_Task + $t 0x00009b84 0 .text.DisPlay_Task + $d 0x00009cb4 0 .text.DisPlay_Task + $t 0x00009cf4 0 .text.DisPlay_Task + $d 0x00009e20 0 .text.DisPlay_Task + $d 0x00009e40 0 .text.Debug_Init + $t 0x00009e40 0 .text.Debug_Init + $d 0x00009e74 0 .text.Debug_Init + $d 0x00009e7c 0 .text.Dev_SaveData + $t 0x00009e7c 0 .text.Dev_SaveData + $d 0x00009f14 0 .text.Dev_SaveData + $d 0x00009f28 0 .text.Debug_Task + $t 0x00009f28 0 .text.Debug_Task + $d 0x00009f78 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x00009f8c F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00009f8c 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00009f8c 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00009fb0 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00009fb4 0 .text.Relay_Init + $t 0x00009fb4 0 .text.Relay_Init + $d 0x00009fd4 0 .text.Relay_Init + $d 0x00009fdc 0 .text.Relay_High + $t 0x00009fdc 0 .text.Relay_High + $d 0x00009ff8 0 .text.Relay_Mid + $t 0x00009ff8 0 .text.Relay_Mid + $d 0x0000a014 0 .text.Relay_Low + $t 0x0000a014 0 .text.Relay_Low + $d 0x0000a030 0 .text.Relay_Stop + $t 0x0000a030 0 .text.Relay_Stop + $d 0x0000a04c 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x0000a04c 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x0000a060 0 .text.RLY_Direct_Control + $t 0x0000a060 0 .text.RLY_Direct_Control + $d 0x0000a0a2 0 .text.RLY_Direct_Control + $t 0x0000a0a6 0 .text.RLY_Direct_Control + $d 0x0000a120 0 .text.RLY_Direct_Control + $d 0x0000a128 0 .text.RLY_Zero_Control + $t 0x0000a128 0 .text.RLY_Zero_Control + $d 0x0000a13e 0 .text.RLY_Zero_Control + $t 0x0000a142 0 .text.RLY_Zero_Control + $d 0x0000a1bc 0 .text.RLY_Zero_Control + $d 0x0000a1c0 0 .text.NetCRC16_Check + $t 0x0000a1c0 0 .text.NetCRC16_Check + $d 0x0000a204 0 .text.NetCRC16_Check + $d 0x0000a20c 0 .text.GetCRC16 + $t 0x0000a20c 0 .text.GetCRC16 + $d 0x0000a240 0 .text.GetCRC16 + $d 0x0000a248 0 .text.SOR_CRC + $t 0x0000a248 0 .text.SOR_CRC + $d 0x0000a260 0 .text.Rs485_ASend + $t 0x0000a260 0 .text.Rs485_ASend + $d 0x0000a2de 0 .text.Rs485_ASend + $t 0x0000a2e2 0 .text.Rs485_ASend + $d 0x0000a360 0 .text.Rs485_ASend + $d 0x0000a368 0 .text.Rs485AskCycleSend + $t 0x0000a368 0 .text.Rs485AskCycleSend + $d 0x0000a3de 0 .text.Rs485AskCycleSend + $t 0x0000a3e2 0 .text.Rs485AskCycleSend + $d 0x0000a464 0 .text.Rs485AskCycleSend + $d 0x0000a46c 0 .text.Rs485AskCtrlSend + $t 0x0000a46c 0 .text.Rs485AskCtrlSend + $d 0x0000a4c4 0 .text.Rs485AskCtrlSend + $d 0x0000a4c8 0 .text.Rs485AskReadSend + $t 0x0000a4c8 0 .text.Rs485AskReadSend + $d 0x0000a52c 0 .text.Rs485AskReadSend + $d 0x0000a530 0 .text.Rs485_DevPort_ACK + $t 0x0000a530 0 .text.Rs485_DevPort_ACK + $d 0x0000a548 0 .text.Temp_Rec_Analysis + $t 0x0000a548 0 .text.Temp_Rec_Analysis + $d 0x0000a5b0 0 .text.Temp_Rec_Analysis + $t 0x0000a5c2 0 .text.Temp_Rec_Analysis + $d 0x0000a5da 0 .text.Temp_Rec_Analysis + $t 0x0000a5de 0 .text.Temp_Rec_Analysis + $d 0x0000a6cc 0 .text.Temp_Rec_Analysis + $t 0x0000a6d0 0 .text.Temp_Rec_Analysis + $d 0x0000a6ec 0 .text.Temp_Rec_Analysis + $d 0x0000a6f8 0 .text.Tem_Rs485_Rec_Pro + $t 0x0000a6f8 0 .text.Tem_Rs485_Rec_Pro + $d 0x0000a7b4 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x0000a7c4 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000a7c4 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x0000a7c4 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000a7d0 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000a7d4 0 .text.tk_clk_config + $t 0x0000a7d4 0 .text.tk_clk_config + $d 0x0000a7f8 0 .text.tk_clk_config + $d 0x0000a7fc 0 .text.TK_con0_config + $t 0x0000a7fc 0 .text.TK_con0_config + $d 0x0000a8ac 0 .text.TK_con0_config + $d 0x0000a8b8 0 .text.tk_io_enable + $t 0x0000a8b8 0 .text.tk_io_enable + $d 0x0000a8fc 0 .text.tk_io_enable + $t 0x0000a90c 0 .text.tk_io_enable + $d 0x0000a9e0 0 .text.tk_io_enable + $d 0x0000a9ec 0 .text.TK_Single_Longpress_prg + $t 0x0000a9ec 0 .text.TK_Single_Longpress_prg + $d 0x0000aae0 0 .text.TK_Single_Longpress_prg + $d 0x0000ab14 0 .text.TK_Sampling_prog + $t 0x0000ab14 0 .text.TK_Sampling_prog + $d 0x0000abbc 0 .text.TK_Sampling_prog + $d 0x0000abe0 0 .text.get_key_number + $t 0x0000abe0 0 .text.get_key_number + $d 0x0000ac04 0 .text.get_key_number + $d 0x0000ac08 0 .text.get_key_number0 + $t 0x0000ac08 0 .text.get_key_number0 + $d 0x0000ac2c 0 .text.get_key_number0 + $d 0x0000ac30 0 .text.get_key_number1 + $t 0x0000ac30 0 .text.get_key_number1 + $d 0x0000ac54 0 .text.get_key_number1 + $d 0x0000ac58 0 .text.get_key_number2 + $t 0x0000ac58 0 .text.get_key_number2 + $d 0x0000ac7c 0 .text.get_key_number2 + $d 0x0000ac80 0 .text.TK_Baseline_prog + $t 0x0000ac80 0 .text.TK_Baseline_prog + $d 0x0000ad94 0 .text.TK_Baseline_prog + $d 0x0000add0 0 .text.TK_Baseline_prog2 + $t 0x0000add0 0 .text.TK_Baseline_prog2 + $d 0x0000aedc 0 .text.TK_Baseline_prog2 + $d 0x0000af18 0 .text.tk_poweron_data_fineturn + $t 0x0000af18 0 .text.tk_poweron_data_fineturn + $d 0x0000b014 0 .text.tk_poweron_data_fineturn + $d 0x0000b03c 0 .text.TK_Scan_Start + $t 0x0000b03c 0 .text.TK_Scan_Start + $d 0x0000b088 0 .text.TK_Scan_Start + $d 0x0000b0a4 0 .text.TK_Keymap_prog + $t 0x0000b0a4 0 .text.TK_Keymap_prog + $d 0x0000b3e0 0 .text.TK_Keymap_prog + $t 0x0000b464 0 .text.TK_Keymap_prog + $d 0x0000b7c0 0 .text.TK_Keymap_prog + $t 0x0000b804 0 .text.TK_Keymap_prog + $d 0x0000b900 0 .text.TK_Keymap_prog + $d 0x0000b914 0 .text.TK_overflow_predict + $t 0x0000b914 0 .text.TK_overflow_predict + $d 0x0000ba08 0 .text.TK_overflow_predict + $d 0x0000ba3c 0 .text.TK_Baseline_tracking + $t 0x0000ba3c 0 .text.TK_Baseline_tracking + $d 0x0000bd94 0 .text.TK_Baseline_tracking + $t 0x0000bdf0 0 .text.TK_Baseline_tracking + $d 0x0000befc 0 .text.TK_Baseline_tracking + $d 0x0000bf0c 0 .text.TK_result_prog + $t 0x0000bf0c 0 .text.TK_result_prog + $d 0x0000c00c 0 .text.TK_result_prog + $d 0x0000c03c 0 .text.get_key_seq + $t 0x0000c03c 0 .text.get_key_seq + $d 0x0000c06c 0 .text.get_key_seq + $d 0x0000c074 0 .text.CORET_CONFIG + $t 0x0000c074 0 .text.CORET_CONFIG + $d 0x0000c0a4 0 .text.CORET_CONFIG + $d 0x0000c0ac 0 .text.tk_chxval_seqxcon_clr + $t 0x0000c0ac 0 .text.tk_chxval_seqxcon_clr + $d 0x0000c0c4 0 .text.tk_chxval_seqxcon_clr + $d 0x0000c0c8 0 .text.tk_freq_para_init + $t 0x0000c0c8 0 .text.tk_freq_para_init + $d 0x0000c120 0 .text.tk_freq_para_init + $t 0x0000c126 0 .text.tk_freq_para_init + $d 0x0000c140 0 .text.tk_freq_para_init + $d 0x0000c174 0 .text.tk_reserved_init + $t 0x0000c174 0 .text.tk_reserved_init + $d 0x0000c188 0 .text.tk_reserved_init + $d 0x0000c19c 0 .text.TKEYIntHandler + $t 0x0000c19c 0 .text.TKEYIntHandler + $d 0x0000c22c 0 .text.TKEYIntHandler + $d 0x0000c23c 0 .text.CORETHandler + $t 0x0000c23c 0 .text.CORETHandler + $d 0x0000c364 0 .text.CORETHandler + $d 0x0000c398 0 .text.tk_init + $t 0x0000c398 0 .text.tk_init + $d 0x0000c480 0 .text.tk_init + $d 0x0000c4a8 0 .text.std_clk_calib + $t 0x0000c4a8 0 .text.std_clk_calib + $d 0x0000c6f0 0 .text.std_clk_calib + __func__.6533 0x0000c72c O 28 .rodata + __func__.6571 0x0000c748 O 25 .rodata + bp 0x0000caa0 O 16 .rodata + dp_l 0x0000cab0 O 16 .rodata + dp_h 0x0000cac0 O 16 .rodata + NUM.6526 0x200000b8 O 1 .bss + adc_tick.6436 0x2000013c O 4 .bss + StateChange_Tick.6526 0x2000022c O 4 .bss + tick.6465 0x20000230 O 4 .bss + OpenDisPlay_Flag 0x20000234 O 1 .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_shi 0x00003510 F 28 .text + ___gnu_csky_case_uhi 0x0000352c F 26 .text + __fixunsdfsi 0x00003548 F 56 .text + __adddf3 0x00003854 F 46 .text + __subdf3 0x00003884 F 54 .text + __muldf3 0x000038bc F 564 .text + __divdf3 0x00003af0 F 340 .text + __gtdf2 0x00003c44 F 60 .text + __gedf2 0x00003c80 F 60 .text + __ledf2 0x00003cbc F 58 .text + __floatsidf 0x00003cf8 F 112 .text + __fixdfsi 0x00003d68 F 112 .text + __floatunsidf 0x00003dd8 F 84 .text + __muldi3 0x00003e2c F 68 .text + __clzsi2 0x00003e70 F 64 .text + __pack_d 0x00003eb0 F 412 .text + __unpack_d 0x0000404c F 196 .text + __fpcmp_parts_d 0x00004110 F 140 .text + __memset_fast 0x0000419c w F 136 .text + memset 0x0000419c w F 136 .text + __memcpy_fast 0x00004224 w F 100 .text + memcpy 0x00004224 w F 100 .text + __main 0x00004288 F 56 .text.__main + SYSCON_RST_VALUE 0x00004334 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00004380 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x000043b0 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00004438 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00004460 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x0000449c F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x000044b0 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x000044c8 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x000044e8 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00004504 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00004520 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00004560 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00004594 F 4 .text.GPIO_EXTI_interrupt + EXI3_Int_Enable 0x00004598 F 16 .text.EXI3_Int_Enable + EXI4_Int_Enable 0x000045a8 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x000045b8 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x000045c4 F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x000045d0 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000045f4 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00004624 F 100 .text.GPIO_DeInit + GPIO_Init 0x00004688 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00004768 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x0000477c F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x0000478c F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00004898 F 252 .text.GPIOA0_EXI_Init + GPIOB0_EXI_Init 0x00004994 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x00004a00 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00004a08 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00004a10 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x00004a26 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00004a38 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00004a4c F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00004a5c F 28 .text.BT_DeInit + BT_Start 0x00004a78 F 8 .text.BT_Start + BT_Soft_Reset 0x00004a80 F 10 .text.BT_Soft_Reset + BT_Configure 0x00004a8a F 24 .text.BT_Configure + BT_ControlSet_Configure 0x00004aa2 F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x00004ace F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00004ad4 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00004ae8 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00004af8 F 32 .text.SIO_DeInit + SIO_IO_Init 0x00004b18 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x00004b78 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x00004b88 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x00004bd8 F 24 .text.UART0_DeInit + UART1_DeInit 0x00004bf0 F 24 .text.UART1_DeInit + UART2_DeInit 0x00004c08 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00004c20 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00004c3c F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00004c58 F 236 .text.UART_IO_Init + UARTInit 0x00004d44 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00004d54 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00004d64 F 30 .text.UARTTransmit + EPT_Stop 0x00004d84 F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x00004dac F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00004e10 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x00004e40 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00004e6c F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00004e78 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x00004ea0 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00004eb4 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00004ecc F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00004ee0 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00004f5c F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x000050f4 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00005274 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00005314 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00005340 F 320 .text.tk_parameter_init + CORET_DeInit 0x00005480 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00005498 F 24 .text.CORET_Int_Enable + CORET_start 0x000054b0 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x000054c0 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x000054d0 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x000054e0 F 16 .text.CORET_reload + main 0x000054f0 F 84 .text.startup.main + delay_nms 0x00005544 F 44 .text.delay_nms + delay_nus 0x00005570 F 34 .text.delay_nus + GPIO_CONFIG 0x00005594 F 140 .text.GPIO_CONFIG + BT_CONFIG 0x00005620 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00005680 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000056e4 F 156 .text.APT32F102_init + SYSCONIntHandler 0x00005780 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00005870 F 104 .text.IFCIntHandler + ADCIntHandler 0x000058d8 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00005940 F 428 .text.EPT0IntHandler + WWDTHandler 0x00005aec F 52 .text.WWDTHandler + GPT0IntHandler 0x00005b20 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00005ba0 F 112 .text.RTCIntHandler + UART0IntHandler 0x00005c10 F 60 .text.UART0IntHandler + UART1IntHandler 0x00005c4c F 60 .text.UART1IntHandler + UART2IntHandler 0x00005c88 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00005d1c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00005e04 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00005e58 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00005e88 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00005eb8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00005f00 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00005f6c F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x00005fec F 52 .text.LPTIntHandler + BT0IntHandler 0x00006020 F 76 .text.BT0IntHandler + BT1IntHandler 0x0000606c F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x000060dc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x000060de F 8 .text.PendTrapHandler + Trap3Handler 0x000060e6 F 8 .text.Trap3Handler + Trap2Handler 0x000060ee F 8 .text.Trap2Handler + Trap1Handler 0x000060f6 F 8 .text.Trap1Handler + Trap0Handler 0x000060fe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00006106 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000610e F 8 .text.BreakPointHandler + AccessErrHandler 0x00006116 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000611e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00006126 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000612e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00006136 F 8 .text.I2CIntHandler + __divsi3 0x00006140 F 36 .text.__divsi3 + __udivsi3 0x00006164 F 36 .text.__udivsi3 + __modsi3 0x00006188 F 36 .text.__modsi3 + __umodsi3 0x000061ac F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000061d0 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000061d6 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000061dc F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x000062e4 F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00006328 F 140 .text.UART2_TASK + BUS485_Send 0x000063b4 F 196 .text.BUS485_Send + MultSend_Task 0x00006478 F 116 .text.MultSend_Task + Set_GroupSend 0x000064ec F 100 .text.Set_GroupSend + Clear_SendFlag 0x00006550 F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x00006560 F 12 .text.BUS485_Jump_Boot + BUS485Send_Task 0x0000656c F 52 .text.BUS485Send_Task + BusIdle_Task 0x000065a0 F 64 .text.BusIdle_Task + BusBusy_Task 0x000065e0 F 92 .text.BusBusy_Task + Dbg_Println 0x0000663c F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00006648 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x0000664c F 104 .text.Touch_Key_Init + Get_TouchKey_CH_State 0x000066b4 F 60 .text.Get_TouchKey_CH_State + TouchKey_RS485_Printf_3 0x000066f0 F 756 .text.TouchKey_RS485_Printf_3 + Touch_Key_Event_Handling 0x000069e4 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x00006a90 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00006acc F 256 .text.Touch_Key_Task + TouchKey_CheckSum 0x00006bcc F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x00006be4 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00006c54 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00006d0c F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x00006e04 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00006e3c F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00006eec F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00006f08 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00006fe0 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00006ff8 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x0000706c F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x000070b0 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x0000713c F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x0000715c F 88 .text.EEPROM_Init + EEPROM_WriteTouchPara 0x000071b4 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00007220 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x000072cc F 220 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x000073a8 F 110 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00007418 F 128 .text.EEPROM_TouchPara_Printf + EEPROM_WriteMCUDevInfo 0x00007498 F 64 .text.EEPROM_WriteMCUDevInfo + ADC_Init 0x000074d8 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x00007534 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x0000757c F 100 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x000075e0 F 12 .text.Get_Temp_Val + Gather_Temp 0x000075ec F 108 .text.Gather_Temp + ADC_Sample_Task 0x00007658 F 112 .text.ADC_Sample_Task + Contol_Switch_Light 0x000076c8 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00007ab4 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x00007ea0 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00007ec8 F 68 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00007f0c F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x0000802c F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x000080d4 F 92 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00008130 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x00008154 F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x000081c4 F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00008228 F 108 .text.TM1812_LED_Init + HT1621_WR_Data 0x00008294 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x000082dc F 48 .text.HT1621_WR_CMD + HT1621_Init 0x0000830c F 180 .text.HT1621_Init + HT1621_Clear 0x000083c0 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00008410 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00008450 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x0000849c F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x0000856c F 208 .text.Local_Temperature_Display + Control_Mode 0x0000863c F 580 .text.Control_Mode + Control_wind_velocity 0x00008880 F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x00008950 F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x000089f4 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00008a3c F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00008b18 F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x00008b48 F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00008be4 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x00008c48 F 144 .text.HT1621_Refresh_Task + Boot_Comm_CheckSum 0x00008cd8 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x00008cfc F 92 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x00008d58 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x00008d6c F 392 .text.Boot_Comm_UpgradeProcess + TemCtrl_Init 0x00008ef4 F 376 .text.TemCtrl_Init + TemCtrl_Model_Set 0x0000906c F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x000090b8 F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00009104 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00009134 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00009164 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00009198 F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00009264 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x000093dc F 204 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x000094a8 F 204 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00009574 F 256 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00009674 F 112 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x000096e4 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x000097e4 F 112 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00009854 F 144 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x000098e4 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x00009938 F 32 .text.DisPlay_Init + DisPlay_Task 0x00009958 F 1256 .text.DisPlay_Task + Debug_Init 0x00009e40 F 60 .text.Debug_Init + Dev_SaveData 0x00009e7c F 172 .text.Dev_SaveData + Debug_Task 0x00009f28 F 100 .text.Debug_Task + Relay_Init 0x00009fb4 F 40 .text.Relay_Init + Relay_High 0x00009fdc F 28 .text.Relay_High + Relay_Mid 0x00009ff8 F 28 .text.Relay_Mid + Relay_Low 0x0000a014 F 28 .text.Relay_Low + Relay_Stop 0x0000a030 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x0000a04c F 20 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x0000a060 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x0000a128 F 152 .text.RLY_Zero_Control + NetCRC16_Check 0x0000a1c0 F 76 .text.NetCRC16_Check + GetCRC16 0x0000a20c F 60 .text.GetCRC16 + SOR_CRC 0x0000a248 F 22 .text.SOR_CRC + Rs485_ASend 0x0000a260 F 264 .text.Rs485_ASend + Rs485AskCycleSend 0x0000a368 F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x0000a46c F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x0000a4c8 F 104 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x0000a530 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x0000a548 F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x0000a6f8 F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x0000a7d4 F 40 .text.tk_clk_config + TK_con0_config 0x0000a7fc F 188 .text.TK_con0_config + tk_io_enable 0x0000a8b8 F 308 .text.tk_io_enable + TK_Single_Longpress_prg 0x0000a9ec F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x0000ab14 F 204 .text.TK_Sampling_prog + get_key_number 0x0000abe0 F 40 .text.get_key_number + get_key_number0 0x0000ac08 F 40 .text.get_key_number0 + get_key_number1 0x0000ac30 F 40 .text.get_key_number1 + get_key_number2 0x0000ac58 F 40 .text.get_key_number2 + TK_Baseline_prog 0x0000ac80 F 336 .text.TK_Baseline_prog + TK_Baseline_prog2 0x0000add0 F 328 .text.TK_Baseline_prog2 + tk_poweron_data_fineturn 0x0000af18 F 292 .text.tk_poweron_data_fineturn + TK_Scan_Start 0x0000b03c F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x0000b0a4 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x0000b914 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x0000ba3c F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x0000bf0c F 304 .text.TK_result_prog + get_key_seq 0x0000c03c F 56 .text.get_key_seq + CORET_CONFIG 0x0000c074 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x0000c0ac F 28 .text.tk_chxval_seqxcon_clr + tk_freq_para_init 0x0000c0c8 F 156 .text.tk_freq_para_init + tk_reserved_init 0x0000c174 F 40 .text.tk_reserved_init + TKEYIntHandler 0x0000c19c F 160 .text.TKEYIntHandler + CORETHandler 0x0000c23c F 348 .text.CORETHandler + tk_init 0x0000c398 F 272 .text.tk_init + std_clk_calib 0x0000c4a8 F 644 .text.std_clk_calib + R_Array 0x0000c762 O 820 .rodata + Diaital 0x0000ca96 O 10 .rodata + __thenan_df 0x0000cad0 O 20 .rodata + __clz_tab 0x0000cae4 O 256 .rodata + _end_rodata 0x0000d01c 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 + Printf_Ch 0x20000068 O 1 .data + MCU_Touch_CH 0x20000069 O 5 .data + s_tkey 0x20000070 O 1 .data + samp_setover_f 0x20000071 O 1 .data + scan_step_temp 0x20000072 O 1 .data + SigleTK_longpress_time 0x20000074 O 2 .data + tk_dataturn_en 0x20000076 O 1 .data + tk_overflow_en 0x20000077 O 1 .data + tk_div 0x20000078 O 34 .data + neg_build_bounce 0x2000009a O 1 .data + pos_build_bounce 0x2000009b O 1 .data + Valid_SingleKey_Num 0x2000009c O 1 .data + tk_scan_para0 0x200000a0 O 4 .data + tk_scan_para1 0x200000a4 O 4 .data + tk_scan_para2 0x200000a8 O 4 .data + TkeyRebaseTime 0x200000ac O 1 .data + _end_data 0x200000b0 0 .data + Sav_Temp 0x200000b0 O 4 .bss + _bss_start 0x200000b0 0 .bss + Sys_RSR 0x200000b4 O 4 .bss + SysTick_100us 0x200000bc O 4 .bss + SysTick_1ms 0x200000c0 O 4 .bss + DealBuffer 0x200000c4 O 100 .bss + DealLen 0x20000128 O 2 .bss + RS485_Comming 0x2000012c O 4 .bss + RS485_Comm_Flag 0x20000130 O 4 .bss + RS485_Comm_Start 0x20000134 O 4 .bss + RS485_Comm_End 0x20000138 O 4 .bss + tm1812_param 0x20000140 O 232 .bss + K 0x20000228 O 1 .bss + K2 0x20000229 O 1 .bss + keymap_strict_mode 0x20000235 O 1 .bss + Press_debounce_data 0x20000238 O 1 .bss + TK_Lowpower_mode 0x20000239 O 1 .bss + TK_Lowpower_level 0x2000023a O 1 .bss + TK_longpress_time 0x2000023c O 4 .bss + Release_debounce_data 0x20000240 O 1 .bss + Key_mode 0x20000241 O 1 .bss + TK_icon 0x20000242 O 34 .bss + MultiTimes_Filter 0x20000264 O 1 .bss + Base_Speed 0x20000265 O 1 .bss + TK_IO_ENABLE 0x20000268 O 4 .bss + Valid_Key_Num 0x2000026c O 1 .bss + TK_senprd 0x2000026e O 34 .bss + TK_Wakeup_level 0x20000290 O 1 .bss + TK_Triggerlevel 0x20000292 O 34 .bss + TK_EC_LEVEL 0x200002b4 O 2 .bss + TK_FVR_LEVEL 0x200002b6 O 2 .bss + TK_BaseCnt 0x200002b8 O 4 .bss + TK_PSEL_MODE 0x200002bc O 2 .bss + R_CMPB_BUF 0x200002c0 O 4 .bss + R_CMPA_BUF 0x200002c4 O 4 .bss + R_SIORX_buf 0x200002c8 O 40 .bss + g_uart 0x200002f0 O 348 .bss + m_send 0x2000044c O 136 .bss + touch_para 0x200004d4 O 28 .bss + g_key 0x200004f0 O 52 .bss + g_eeprom 0x20000524 O 8 .bss + g_mcu_dev 0x2000052c O 37 .bss + g_adc 0x20000554 O 80 .bss + g_switch 0x200005a4 O 28 .bss + HT1621 0x200005c0 O 64 .bss + g_boot 0x20000600 O 316 .bss + g_app_feature 0x2000073c O 256 .bss + TempCtrl 0x2000083c O 41 .bss + Debug_Inf 0x20000868 O 16 .bss + c_rly 0x20000878 O 12 .bss + Tk_press_time_cnt4 0x20000884 O 4 .bss + baseline_data0 0x20000888 O 34 .bss + TK_Postive_build2 0x200008aa O 17 .bss + Key_Map1 0x200008bc O 4 .bss + Valid_Key_Num_CNT 0x200008c0 O 3 .bss + offset_data2_abs 0x200008c4 O 34 .bss + time_cnt0 0x200008e8 O 4 .bss + offset0_max_tempB 0x200008ec O 2 .bss + scan_f 0x200008ee O 1 .bss + offset_data1_abs 0x200008f0 O 34 .bss + TK_Slider1_Value 0x20000912 O 1 .bss + TK_Wheel_Value 0x20000913 O 1 .bss + Release_debounce0 0x20000914 O 17 .bss + Key_Map0 0x20000928 O 4 .bss + Tk_press_time_cnt2 0x2000092c O 4 .bss + TK_Slider0_Seq 0x20000930 O 4 .bss + bsae_over_f 0x20000934 O 1 .bss + Press_debounce0 0x20000935 O 17 .bss + Valid_key_f 0x20000946 O 1 .bss + offset_data0 0x20000948 O 34 .bss + offset2_max_tempA 0x2000096a O 2 .bss + TK_Scan_Freq1 0x2000096c O 4 .bss + sampling_data1 0x20000970 O 34 .bss + TK_Slider1_Level 0x20000992 O 1 .bss + TK_Slider1_Function 0x20000993 O 1 .bss + base_update_fs 0x20000994 O 3 .bss + TK_Slider0_Function 0x20000997 O 1 .bss + Tk_press_time_cnt3 0x20000998 O 4 .bss + TK_Scan_Freq2 0x2000099c O 4 .bss + Key_Map2 0x200009a0 O 4 .bss + Release_debounce1 0x200009a4 O 17 .bss + tk_overflow_f 0x200009b5 O 1 .bss + time_cnt2 0x200009b8 O 4 .bss + TK_Negtive_build2 0x200009bc O 17 .bss + base_update_f 0x200009cd O 1 .bss + TK_Postive_build1 0x200009ce O 17 .bss + offset_max_data 0x200009e0 O 64 .bss + time_cnt 0x20000a20 O 4 .bss + lpt_scan_pend_cnt 0x20000a24 O 2 .bss + TK_track_cnt 0x20000a26 O 1 .bss + Key_Map 0x20000a28 O 4 .bss + Key_Map2_temp 0x20000a2c O 4 .bss + offset2_max_tempB 0x20000a30 O 2 .bss + baseline_data1 0x20000a32 O 34 .bss + TK_Postive_build0 0x20000a54 O 17 .bss + sampling_data2 0x20000a66 O 34 .bss + offset_data1 0x20000a88 O 34 .bss + TK_ovrdect_cnt 0x20000aaa O 1 .bss + TK_Slider0_Level 0x20000aab O 1 .bss + time_cnt1 0x20000aac O 4 .bss + Press_debounce2 0x20000ab0 O 17 .bss + Tk_press_time_cnt0 0x20000ac4 O 4 .bss + Key_Map0_temp 0x20000ac8 O 4 .bss + TK_Negtive_build1 0x20000acc O 17 .bss + coret_spread_step 0x20000add O 1 .bss + time_cnts 0x20000ade O 3 .bss + offset0_max_tempA 0x20000ae2 O 2 .bss + tk_num 0x20000ae4 O 1 .bss + TK_Slider1_Seq 0x20000ae5 O 4 .bss + offset1_max_tempB 0x20000aea O 2 .bss + TK_Negtive_build0 0x20000aec O 17 .bss + R_Debounce_temp2 0x20000b00 O 4 .bss + Tk_press_time_cnt1 0x20000b04 O 4 .bss + Press_debounce1 0x20000b08 O 17 .bss + TK_Wheel_Seq 0x20000b19 O 4 .bss + TK_Slider0_Value 0x20000b1d O 1 .bss + Release_debounce2 0x20000b1e O 17 .bss + r_Key_Map_Temp 0x20000b30 O 4 .bss + tk_seque 0x20000b34 O 17 .bss + scan_step 0x20000b45 O 1 .bss + TK_Wheel_Level 0x20000b46 O 1 .bss + baseline_data2 0x20000b48 O 34 .bss + tk_sampling_max 0x20000b6a O 34 .bss + Key_Map1_temp 0x20000b8c O 4 .bss + coret_spread_cnt 0x20000b90 O 2 .bss + offset_data0_abs 0x20000b92 O 34 .bss + offset_data2 0x20000bb4 O 34 .bss + TK_Wheel_Function 0x20000bd6 O 1 .bss + offset1_max_tempA 0x20000bd8 O 2 .bss + sampling_data0 0x20000bda O 34 .bss + TK_Scan_Freq0 0x20000bfc O 4 .bss + _ebss 0x20000c00 0 .bss + _end 0x20000c00 0 .bss + end 0x20000c00 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: 0x0000a81c, 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 1295 .text pow.o + 0x0000335e 0x00000006 Code RO 1303 .text fabs.o + 0x00003364 0x00000020 Code RO 1309 .text scalbn.o + 0x00003384 0x00000178 Code RO 1316 .text sqrt.o + 0x000034fc 0x00000014 Code RO 1327 .text _csky_case_uqi.o + 0x00003510 0x0000001c Code RO 1332 .text _csky_case_shi.o + 0x0000352c 0x0000001a Code RO 1337 .text _csky_case_uhi.o + 0x00003546 0x00000002 PAD + 0x00003548 0x00000038 Code RO 1342 .text _fixunsdfsi.o + 0x00003580 0x0000033a Code RO 1349 .text _addsub_df.o + 0x000038ba 0x00000002 PAD + 0x000038bc 0x00000234 Code RO 1356 .text _mul_df.o + 0x00003af0 0x00000154 Code RO 1363 .text _div_df.o + 0x00003c44 0x0000003c Code RO 1370 .text _gt_df.o + 0x00003c80 0x0000003c Code RO 1377 .text _ge_df.o + 0x00003cbc 0x0000003a Code RO 1384 .text _le_df.o + 0x00003cf6 0x00000002 PAD + 0x00003cf8 0x00000070 Code RO 1391 .text _si_to_df.o + 0x00003d68 0x00000070 Code RO 1398 .text _df_to_si.o + 0x00003dd8 0x00000054 Code RO 1412 .text _usi_to_df.o + 0x00003e2c 0x00000044 Code RO 1419 .text _muldi3.o + 0x00003e70 0x00000040 Code RO 1426 .text _clzsi2.o + 0x00003eb0 0x0000019c Code RO 1432 .text _pack_df.o + 0x0000404c 0x000000c4 Code RO 1439 .text _unpack_df.o + 0x00004110 0x0000008c Code RO 1446 .text _fpcmp_parts_df.o + 0x0000419c 0x00000088 Code RO 1467 .text memset_fast.o + 0x00004224 0x00000064 Code RO 1472 .text memcpy_fast.o + 0x00004288 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x000042c0 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00004334 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00004380 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x000043b0 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00004438 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00004460 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000449c 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x000044b0 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x000044c8 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x000044e8 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00004504 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00004520 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00004560 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00004594 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00004598 0x00000010 Code RO 89 .text.EXI3_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000045a8 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000045b8 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x000045c4 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x000045d0 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000045f4 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00004624 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00004688 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00004768 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x0000477c 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x0000478c 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00004898 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00004994 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00004a00 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00004a08 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00004a10 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x00004a26 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00004a38 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00004a4c 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00004a5c 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00004a78 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x00004a80 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00004a8a 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x00004aa2 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x00004ace 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00004ad4 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00004ae8 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00004af8 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x00004b18 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x00004b78 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x00004b88 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x00004bd8 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00004bf0 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00004c08 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00004c20 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00004c3c 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00004c58 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00004d44 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00004d54 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00004d64 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00004d84 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00004dac 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00004e10 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00004e20 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x00004e40 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00004e6c 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00004e78 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x00004ea0 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00004eb4 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00004ecc 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00004ee0 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00004f5c 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x000050f4 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00005274 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00005314 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00005340 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00005480 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00005498 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x000054b0 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x000054c0 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x000054d0 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x000054e0 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x000054f0 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00005544 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00005570 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00005594 0x0000008c Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x00005620 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00005680 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000056e4 0x0000009c Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00005780 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00005870 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000058d8 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00005940 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00005aec 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00005b20 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00005ba0 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00005c10 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00005c4c 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00005c88 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00005d1c 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00005e04 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00005e58 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00005e88 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00005eb8 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00005f00 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00005f6c 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00005fec 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00006020 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x0000606c 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x000060dc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x000060de 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x000060e6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x000060ee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x000060f6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x000060fe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00006106 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000610e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00006116 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000611e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00006126 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000612e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00006136 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00006140 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00006164 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00006188 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x000061ac 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000061d0 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000061d6 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000061dc 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x000062e4 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00006328 0x0000008c Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000063b4 0x000000c4 Code RO 843 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00006478 0x00000074 Code RO 844 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x000064ec 0x00000064 Code RO 845 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x00006550 0x00000010 Code RO 846 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x00006560 0x0000000c Code RO 847 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x0000656c 0x00000034 Code RO 848 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x000065a0 0x00000040 Code RO 850 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000065e0 0x0000005c Code RO 851 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x0000663c 0x0000000c Code RO 853 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00006648 0x00000002 Code RO 854 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x0000664c 0x00000068 Code RO 871 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x000066b4 0x0000003c Code RO 876 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x000066f0 0x000002f4 Code RO 877 .text.TouchKey_RS485_Printf_3 Obj/SYSTEM_touch_key.o + 0x000069e4 0x000000ac Code RO 879 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x00006a90 0x0000003c Code RO 880 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00006acc 0x00000100 Code RO 881 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00006bcc 0x00000018 Code RO 882 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x00006be4 0x00000070 Code RO 883 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00006c54 0x000000b8 Code RO 884 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00006d0c 0x000000f8 Code RO 885 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x00006e04 0x00000038 Code RO 886 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00006e3c 0x000000b0 Code RO 887 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00006eec 0x0000001a Code RO 888 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00006f08 0x000000d8 Code RO 889 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00006fe0 0x00000016 Code RO 908 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00006ff8 0x00000074 Code RO 909 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x0000706c 0x00000044 Code RO 910 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x000070b0 0x0000008c Code RO 912 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x0000713c 0x00000020 Code RO 913 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x0000715c 0x00000058 Code RO 914 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000071b4 0x0000006c Code RO 915 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00007220 0x000000ac Code RO 916 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x000072cc 0x000000dc Code RO 917 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x000073a8 0x0000006e Code RO 918 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00007418 0x00000080 Code RO 919 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00007498 0x00000040 Code RO 921 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x000074d8 0x0000005c Code RO 941 .text.ADC_Init Obj/SYSTEM_adc.o + 0x00007534 0x00000048 Code RO 942 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x0000757c 0x00000064 Code RO 943 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x000075e0 0x0000000c Code RO 944 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x000075ec 0x0000006c Code RO 945 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x00007658 0x00000070 Code RO 946 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x000076c8 0x000003ea Code RO 964 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00007ab4 0x000003ea Code RO 965 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x00007ea0 0x00000028 Code RO 966 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00007ec8 0x00000044 Code RO 988 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00007f0c 0x00000120 Code RO 990 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x0000802c 0x000000a8 Code RO 991 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x000080d4 0x0000005c Code RO 992 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00008130 0x00000024 Code RO 993 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x00008154 0x00000070 Code RO 994 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x000081c4 0x00000064 Code RO 995 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00008228 0x0000006c Code RO 996 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x00008294 0x00000048 Code RO 1013 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x000082dc 0x00000030 Code RO 1014 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x0000830c 0x000000b4 Code RO 1015 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x000083c0 0x00000050 Code RO 1019 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00008410 0x00000040 Code RO 1020 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00008450 0x0000004c Code RO 1021 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x0000849c 0x000000d0 Code RO 1022 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x0000856c 0x000000d0 Code RO 1023 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x0000863c 0x00000244 Code RO 1024 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x00008880 0x000000d0 Code RO 1025 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x00008950 0x000000a4 Code RO 1026 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x000089f4 0x00000048 Code RO 1027 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00008a3c 0x000000dc Code RO 1028 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00008b18 0x00000030 Code RO 1029 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x00008b48 0x0000009c Code RO 1030 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00008be4 0x00000064 Code RO 1031 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x00008c48 0x00000090 Code RO 1032 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00008cd8 0x00000024 Code RO 1052 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x00008cfc 0x0000005c Code RO 1054 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x00008d58 0x00000014 Code RO 1058 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x00008d6c 0x00000188 Code RO 1059 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x00008ef4 0x00000178 Code RO 1080 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x0000906c 0x0000004c Code RO 1081 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x000090b8 0x0000004c Code RO 1082 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00009104 0x00000030 Code RO 1083 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00009134 0x00000030 Code RO 1084 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00009164 0x00000034 Code RO 1085 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00009198 0x000000cc Code RO 1086 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x00009264 0x00000178 Code RO 1087 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x000093dc 0x000000cc Code RO 1105 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x000094a8 0x000000cc Code RO 1106 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009574 0x00000100 Code RO 1107 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00009674 0x00000070 Code RO 1108 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x000096e4 0x00000100 Code RO 1109 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x000097e4 0x00000070 Code RO 1110 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00009854 0x00000090 Code RO 1111 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x000098e4 0x00000054 Code RO 1127 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x00009938 0x00000020 Code RO 1128 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00009958 0x000004e8 Code RO 1129 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00009e40 0x0000003c Code RO 1146 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00009e7c 0x000000ac Code RO 1147 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00009f28 0x00000064 Code RO 1148 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00009f8c 0x00000028 Code RO 1165 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x00009fb4 0x00000028 Code RO 1166 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00009fdc 0x0000001c Code RO 1167 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00009ff8 0x0000001c Code RO 1168 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x0000a014 0x0000001c Code RO 1169 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x0000a030 0x0000001c Code RO 1170 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x0000a04c 0x00000014 Code RO 1171 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x0000a060 0x000000c8 Code RO 1172 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x0000a128 0x00000098 Code RO 1173 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x0000a1c0 0x0000004c Code RO 1190 .text.NetCRC16_Check Obj/USRCTRL_uart_protocol.o + 0x0000a20c 0x0000003c Code RO 1191 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x0000a248 0x00000016 Code RO 1192 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x0000a260 0x00000108 Code RO 1193 .text.Rs485_ASend Obj/USRCTRL_uart_protocol.o + 0x0000a368 0x00000104 Code RO 1194 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x0000a46c 0x0000005c Code RO 1195 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x0000a4c8 0x00000068 Code RO 1196 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x0000a530 0x00000018 Code RO 1197 .text.Rs485_DevPort_ACK Obj/USRCTRL_uart_protocol.o + 0x0000a548 0x000001b0 Code RO 1198 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x0000a6f8 0x000000cc Code RO 1199 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x0000a7c4 0x00000010 Code RO 1225 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_f_1_18.o + 0x0000a7d4 0x00000028 Code RO 1228 .text.tk_clk_config FWlib_apt32f102_tkey_f_1_18.o + 0x0000a7fc 0x000000bc Code RO 1229 .text.TK_con0_config FWlib_apt32f102_tkey_f_1_18.o + 0x0000a8b8 0x00000134 Code RO 1232 .text.tk_io_enable FWlib_apt32f102_tkey_f_1_18.o + 0x0000a9ec 0x00000128 Code RO 1233 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x0000ab14 0x000000cc Code RO 1234 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000abe0 0x00000028 Code RO 1238 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x0000ac08 0x00000028 Code RO 1239 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x0000ac30 0x00000028 Code RO 1240 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x0000ac58 0x00000028 Code RO 1241 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x0000ac80 0x00000150 Code RO 1242 .text.TK_Baseline_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000add0 0x00000148 Code RO 1243 .text.TK_Baseline_prog2 FWlib_apt32f102_tkey_f_1_18.o + 0x0000af18 0x00000124 Code RO 1244 .text.tk_poweron_data_fineturn FWlib_apt32f102_tkey_f_1_18.o + 0x0000b03c 0x00000068 Code RO 1245 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x0000b0a4 0x00000870 Code RO 1246 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000b914 0x00000128 Code RO 1247 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x0000ba3c 0x000004d0 Code RO 1248 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x0000bf0c 0x00000130 Code RO 1249 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000c03c 0x00000038 Code RO 1250 .text.get_key_seq FWlib_apt32f102_tkey_f_1_18.o + 0x0000c074 0x00000038 Code RO 1251 .text.CORET_CONFIG FWlib_apt32f102_tkey_f_1_18.o + 0x0000c0ac 0x0000001c Code RO 1252 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_f_1_18.o + 0x0000c0c8 0x000000ac Code RO 1253 .text.tk_freq_para_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000c174 0x00000028 Code RO 1254 .text.tk_reserved_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000c19c 0x000000a0 Code RO 1255 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x0000c23c 0x0000015c Code RO 1256 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x0000c398 0x00000110 Code RO 1257 .text.tk_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000c4a8 0x00000284 Code RO 1275 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000c72c 0x00000035 Data RO 890 .rodata Obj/SYSTEM_touch_key.o + 0x0000c761 0x00000001 PAD + 0x0000c762 0x00000334 Data RO 947 .rodata Obj/SYSTEM_adc.o + 0x0000ca96 0x0000000a Data RO 1034 .rodata Obj/SYSTEM_ht1621.o + 0x0000caa0 0x00000030 Data RO 1298 .rodata pow.o + 0x0000cad0 0x00000014 Data RO 1408 .rodata _thenan_df.o + 0x0000cae4 0x00000100 Data RO 1456 .rodata _clz.o + 0x0000cbe4 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x0000cbf2 0x00000092 Data RO 891 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000cc84 0x0000019d Data RO 924 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000ce21 0x00000011 Data RO 997 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x0000ce32 0x00000071 Data RO 1088 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000cea3 0x0000007e Data RO 1112 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000cf21 0x00000045 Data RO 1130 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x0000cf66 0x00000087 Data RO 1149 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x0000cfed 0x0000002c Data RO 1200 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x0000d019 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000c00, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000006 Data RW 869 .data Obj/SYSTEM_touch_key.o + 0x2000006e 0x00000002 PAD + 0x20000070 0x0000003d Data RW 1223 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000ad 0x00000003 PAD + 0x200000b0 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b8 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000c4 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x2000013c 0x00000004 Zero RW 940 .bss Obj/SYSTEM_adc.o + 0x20000140 0x000000f0 Zero RW 982 .bss Obj/SYSTEM_tm1812.o + 0x20000230 0x00000004 Zero RW 1079 .bss Obj/USRCTRL_tempctrl_unit.o + 0x20000234 0x00000001 Zero RW 1126 .bss Obj/USRCTRL_display_logic.o + 0x20000235 0x00000001 Zero RW 1224 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000236 0x00000002 PAD + 0x20000238 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002be 0x00000002 PAD + 0x200002c0 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002f0 0x000001e4 Zero RW 867 COMMON Obj/SYSTEM_uart.o + 0x200004d4 0x00000050 Zero RW 904 COMMON Obj/SYSTEM_touch_key.o + 0x20000524 0x0000002d Zero RW 937 COMMON Obj/SYSTEM_eeprom.o + 0x20000551 0x00000003 PAD + 0x20000554 0x00000050 Zero RW 960 COMMON Obj/SYSTEM_adc.o + 0x200005a4 0x0000001c Zero RW 979 COMMON Obj/SYSTEM_switch_fun.o + 0x200005c0 0x00000040 Zero RW 1048 COMMON Obj/SYSTEM_ht1621.o + 0x20000600 0x0000023c Zero RW 1076 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000083c 0x00000029 Zero RW 1101 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x20000865 0x00000003 PAD + 0x20000868 0x00000010 Zero RW 1161 COMMON Obj/USRCTRL_debug_unit.o + 0x20000878 0x0000000c Zero RW 1186 COMMON Obj/USRCTRL_myrelay.o + 0x20000884 0x0000037c Zero RW 1271 COMMON FWlib_apt32f102_tkey_f_1_18.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 268 Obj/arch_crt0.o + 56 0 0 0 802 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 868 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 1040 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9303 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 14219 Obj/main.o + 568 0 0 0 16809 Obj/mcu_initial.o + 2494 0 0 60 16278 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1134 0 0 604 16630 Obj/SYSTEM_uart.o + 2450 199 6 80 18206 Obj/SYSTEM_touch_key.o + 1268 413 0 45 16234 Obj/SYSTEM_eeprom.o + 496 820 0 84 14255 Obj/SYSTEM_adc.o + 2044 0 0 28 14597 Obj/SYSTEM_switch_fun.o + 972 17 0 240 15606 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17914 Obj/SYSTEM_ht1621.o + 540 0 0 572 17948 Obj/SYSTEM_Bootload_fun.o + 1256 113 0 45 13347 Obj/USRCTRL_tempctrl_unit.o + 1288 126 0 0 12898 Obj/USRCTRL_key_logic.o + 1372 69 0 1 12635 Obj/USRCTRL_display_logic.o + 332 135 0 16 12357 Obj/USRCTRL_debug_unit.o + 564 0 0 12 13878 Obj/USRCTRL_myrelay.o + 1538 44 0 0 14843 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 26320 1960 110 1993 446062 Object Totals + 6 4 5 10 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 7396 0 61 893 20058 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 7396 0 61 893 20058 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + 40716 2288 176 2896 474795 Grand Totals + 40716 2288 176 2896 474795 Elf Image Totals + 40716 2288 176 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 43004 ( 42.00kB) +Total RW Size (RW Data + ZI Data) 3072 ( 3.00kB) +Total ROM Size (Code + RO Data + RW Data) 43180 ( 42.17kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250513.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250513.asm new file mode 100644 index 0000000..d0c2ed8 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250513.asm @@ -0,0 +1,27249 @@ + +.//Obj/T1_TC_34650_V04_20250513.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 0000394e .long 0x0000394e + 8: 0000393e .long 0x0000393e + c: 00000184 .long 0x00000184 + 10: 00003946 .long 0x00003946 + 14: 00003904 .long 0x00003904 + 18: 00000184 .long 0x00000184 + 1c: 00003936 .long 0x00003936 + 20: 0000392e .long 0x0000392e + 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: 00003926 .long 0x00003926 + 44: 0000391e .long 0x0000391e + 48: 00003916 .long 0x00003916 + 4c: 0000390e .long 0x0000390e + 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: 00003906 .long 0x00003906 + 80: 00009bf8 .long 0x00009bf8 + 84: 00002fa8 .long 0x00002fa8 + 88: 00003098 .long 0x00003098 + 8c: 00003100 .long 0x00003100 + 90: 00003168 .long 0x00003168 + 94: 00000184 .long 0x00000184 + 98: 00003314 .long 0x00003314 + 9c: 00003680 .long 0x00003680 + a0: 000036b0 .long 0x000036b0 + a4: 00003348 .long 0x00003348 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 000033c8 .long 0x000033c8 + b4: 00003438 .long 0x00003438 + b8: 00003474 .long 0x00003474 + bc: 000034b0 .long 0x000034b0 + c0: 00000184 .long 0x00000184 + c4: 0000395e .long 0x0000395e + c8: 00000184 .long 0x00000184 + cc: 00003544 .long 0x00003544 + d0: 0000362c .long 0x0000362c + d4: 000036e0 .long 0x000036e0 + d8: 00003728 .long 0x00003728 + dc: 00003794 .long 0x00003794 + e0: 00003956 .long 0x00003956 + e4: 00009b58 .long 0x00009b58 + e8: 00003814 .long 0x00003814 + ec: 00000184 .long 0x00000184 + f0: 00003848 .long 0x00003848 + f4: 00003894 .long 0x00003894 + 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, 0x1ab0 // 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, 0x2d18 // 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: 00001ab0 .long 0x00001ab0 + 198: 00000160 .long 0x00000160 + 19c: 00002d18 .long 0x00002d18 + 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: e000072f bsr 0x1054 // 1054 <__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: e0000715 bsr 0x1084 // 1084 <__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: e000082a bsr 0x12f0 // 12f0 <__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: e00006ec bsr 0x10bc // 10bc <__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: e00007e0 bsr 0x12f0 // 12f0 <__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: e000069b bsr 0x1084 // 1084 <__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: e0000666 bsr 0x1084 // 1084 <__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: e000067c bsr 0x10bc // 10bc <__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: e0000674 bsr 0x10bc // 10bc <__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: e000066c bsr 0x10bc // 10bc <__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: e000064a bsr 0x1084 // 1084 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000662 bsr 0x10bc // 10bc <__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: e0000640 bsr 0x1084 // 1084 <__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: e0000654 bsr 0x10bc // 10bc <__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: e000064e bsr 0x10bc // 10bc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e000064a bsr 0x10bc // 10bc <__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: e0000628 bsr 0x1084 // 1084 <__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: e0000608 bsr 0x1054 // 1054 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e000061a bsr 0x1084 // 1084 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e0000614 bsr 0x1084 // 1084 <__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: e0000603 bsr 0x1084 // 1084 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e000061b bsr 0x10bc // 10bc <__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: e0000613 bsr 0x10bc // 10bc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e00005d9 bsr 0x1054 // 1054 <__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: e0000605 bsr 0x10bc // 10bc <__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: e00005c7 bsr 0x1054 // 1054 <__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: e00005e7 bsr 0x10bc // 10bc <__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: e00005dc bsr 0x10bc // 10bc <__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, 0xa45c // 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: e000059a bsr 0x1084 // 1084 <__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: e000057a bsr 0x1054 // 1054 <__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: e00006c2 bsr 0x12f0 // 12f0 <__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: 0000a45c .long 0x0000a45c + 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: e000056a bsr 0x10bc // 10bc <__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: e000055b bsr 0x10bc // 10bc <__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: e0000539 bsr 0x1084 // 1084 <__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: e0000531 bsr 0x1084 // 1084 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e000052b bsr 0x1084 // 1084 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e0000543 bsr 0x10bc // 10bc <__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: e0000521 bsr 0x1084 // 1084 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e0000539 bsr 0x10bc // 10bc <__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: e0000531 bsr 0x10bc // 10bc <__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: e0000529 bsr 0x10bc // 10bc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e00004ef bsr 0x1054 // 1054 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e000051f bsr 0x10bc // 10bc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e00004e5 bsr 0x1054 // 1054 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e0000515 bsr 0x10bc // 10bc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e00004db bsr 0x1054 // 1054 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e000050b bsr 0x10bc // 10bc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e00004d1 bsr 0x1054 // 1054 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e0000501 bsr 0x10bc // 10bc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e00004c7 bsr 0x1054 // 1054 <__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: e00004f3 bsr 0x10bc // 10bc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e00004ed bsr 0x10bc // 10bc <__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: e00004b1 bsr 0x1054 // 1054 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e00004e1 bsr 0x10bc // 10bc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e00004a9 bsr 0x1054 // 1054 <__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: e00004d5 bsr 0x10bc // 10bc <__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: e000049b bsr 0x1054 // 1054 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000497 bsr 0x1054 // 1054 <__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: e00004c4 bsr 0x10bc // 10bc <__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: e00004a0 bsr 0x1084 // 1084 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000049c bsr 0x1084 // 1084 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000496 bsr 0x1084 // 1084 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e00004ae bsr 0x10bc // 10bc <__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: e00004a6 bsr 0x10bc // 10bc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000046c bsr 0x1054 // 1054 <__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: e0000464 bsr 0x1054 // 1054 <__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: e0000491 bsr 0x10bc // 10bc <__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: e000046d bsr 0x1084 // 1084 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000467 bsr 0x1084 // 1084 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000047f bsr 0x10bc // 10bc <__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: e0000477 bsr 0x10bc // 10bc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e000043d bsr 0x1054 // 1054 <__adddf3> + 7de: 01db lrw r6, 0xa45c // 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: e0000436 bsr 0x1054 // 1054 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000683 bsr 0x14f8 // 14f8 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0xa45c // 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: e0000423 bsr 0x1054 // 1054 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e000041f bsr 0x1054 // 1054 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e000041b bsr 0x1054 // 1054 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e000042d bsr 0x1084 // 1084 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e0000429 bsr 0x1084 // 1084 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e0000425 bsr 0x1084 // 1084 <__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: e00003fc bsr 0x1054 // 1054 <__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: e000040c bsr 0x1084 // 1084 <__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: e00005e6 bsr 0x1444 // 1444 <__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: e00003dc bsr 0x1084 // 1084 <__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: e00003bc bsr 0x1054 // 1054 <__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: e00003ea bsr 0x10bc // 10bc <__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: e00003c6 bsr 0x1084 // 1084 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e00003c0 bsr 0x1084 // 1084 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e00003d8 bsr 0x10bc // 10bc <__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: e00003d0 bsr 0x10bc // 10bc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000396 bsr 0x1054 // 1054 <__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: e000038e bsr 0x1054 // 1054 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e00003a0 bsr 0x1084 // 1084 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000039a bsr 0x1084 // 1084 <__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: e00003ae bsr 0x10bc // 10bc <__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: e00003a8 bsr 0x10bc // 10bc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000388 bsr 0x1084 // 1084 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e00003a0 bsr 0x10bc // 10bc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000368 bsr 0x1054 // 1054 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000398 bsr 0x10bc // 10bc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000378 bsr 0x1084 // 1084 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000390 bsr 0x10bc // 10bc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e0000358 bsr 0x1054 // 1054 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000388 bsr 0x10bc // 10bc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000366 bsr 0x1084 // 1084 <__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: e000037a bsr 0x10bc // 10bc <__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: e0000355 bsr 0x1084 // 1084 <__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: e0000485 bsr 0x12f0 // 12f0 <__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: e0000363 bsr 0x10bc // 10bc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e000032b bsr 0x1054 // 1054 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e000033d bsr 0x1084 // 1084 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e0000339 bsr 0x1084 // 1084 <__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: e0000333 bsr 0x1084 // 1084 <__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: e0000331 bsr 0x10bc // 10bc <__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: e000030b bsr 0x1084 // 1084 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e0000521 bsr 0x14bc // 14bc <__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: 0000a45c .long 0x0000a45c + 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: e000028f bsr 0x10bc // 10bc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e0000255 bsr 0x1054 // 1054 <__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: e0000258 bsr 0x1084 // 1084 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000038a bsr 0x12f0 // 12f0 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000397 bsr 0x1480 // 1480 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e0000405 bsr 0x1568 // 1568 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000018c bsr 0x1084 // 1084 <__subdf3> + d70: e00003fc bsr 0x1568 // 1568 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <_fpadd_parts>: + d80: 14c4 push r4-r7 + d82: 142a subi r14, r14, 40 + d84: 9060 ld.w r3, (r0, 0x0) + d86: 3b01 cmphsi r3, 2 + d88: 6dcb mov r7, r2 + d8a: 0c67 bf 0xe58 // e58 <_fpadd_parts+0xd8> + d8c: 9140 ld.w r2, (r1, 0x0) + d8e: 3a01 cmphsi r2, 2 + d90: 0c66 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d92: 3b44 cmpnei r3, 4 + d94: 0cde bf 0xf50 // f50 <_fpadd_parts+0x1d0> + d96: 3a44 cmpnei r2, 4 + d98: 0c62 bf 0xe5c // e5c <_fpadd_parts+0xdc> + d9a: 3a42 cmpnei r2, 2 + d9c: 0cb7 bf 0xf0a // f0a <_fpadd_parts+0x18a> + d9e: 3b42 cmpnei r3, 2 + da0: 0c5e bf 0xe5c // e5c <_fpadd_parts+0xdc> + da2: 9043 ld.w r2, (r0, 0xc) + da4: 9064 ld.w r3, (r0, 0x10) + da6: 9082 ld.w r4, (r0, 0x8) + da8: 91a2 ld.w r5, (r1, 0x8) + daa: b842 st.w r2, (r14, 0x8) + dac: b863 st.w r3, (r14, 0xc) + dae: 9143 ld.w r2, (r1, 0xc) + db0: 9164 ld.w r3, (r1, 0x10) + db2: b840 st.w r2, (r14, 0x0) + db4: b861 st.w r3, (r14, 0x4) + db6: 5c75 subu r3, r4, r5 + db8: 3bdf btsti r3, 31 + dba: 6c8f mov r2, r3 + dbc: 08d2 bt 0xf60 // f60 <_fpadd_parts+0x1e0> + dbe: 363f movi r6, 63 + dc0: 6499 cmplt r6, r2 + dc2: 0c50 bf 0xe62 // e62 <_fpadd_parts+0xe2> + dc4: 6515 cmplt r5, r4 + dc6: 0cbf bf 0xf44 // f44 <_fpadd_parts+0x1c4> + dc8: 3200 movi r2, 0 + dca: 3300 movi r3, 0 + dcc: b840 st.w r2, (r14, 0x0) + dce: b861 st.w r3, (r14, 0x4) + dd0: 9061 ld.w r3, (r0, 0x4) + dd2: 9141 ld.w r2, (r1, 0x4) + dd4: 648e cmpne r3, r2 + dd6: 0c78 bf 0xec6 // ec6 <_fpadd_parts+0x146> + dd8: 3b40 cmpnei r3, 0 + dda: 0cad bf 0xf34 // f34 <_fpadd_parts+0x1b4> + ddc: 9800 ld.w r0, (r14, 0x0) + dde: 9821 ld.w r1, (r14, 0x4) + de0: 9842 ld.w r2, (r14, 0x8) + de2: 9863 ld.w r3, (r14, 0xc) + de4: 6400 cmphs r0, r0 + de6: 600b subc r0, r2 + de8: 604f subc r1, r3 + dea: 39df btsti r1, 31 + dec: 08bd bt 0xf66 // f66 <_fpadd_parts+0x1e6> + dee: 3300 movi r3, 0 + df0: b761 st.w r3, (r7, 0x4) + df2: b782 st.w r4, (r7, 0x8) + df4: 6c83 mov r2, r0 + df6: 6cc7 mov r3, r1 + df8: b703 st.w r0, (r7, 0xc) + dfa: b724 st.w r1, (r7, 0x10) + dfc: 3000 movi r0, 0 + dfe: 3100 movi r1, 0 + e00: 2800 subi r0, 1 + e02: 2900 subi r1, 1 + e04: 6401 cmplt r0, r0 + e06: 6009 addc r0, r2 + e08: 604d addc r1, r3 + e0a: 038f lrw r4, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e0c: 6450 cmphs r4, r1 + e0e: 0c67 bf 0xedc // edc <_fpadd_parts+0x15c> + e10: 6506 cmpne r1, r4 + e12: 0cfd bf 0x100c // 100c <_fpadd_parts+0x28c> + e14: 3000 movi r0, 0 + e16: 9722 ld.w r1, (r7, 0x8) + e18: 2801 subi r0, 2 + e1a: 2900 subi r1, 1 + e1c: 03d4 lrw r6, 0xfffffff // 1048 <_fpadd_parts+0x2c8> + e1e: b802 st.w r0, (r14, 0x8) + e20: b8e0 st.w r7, (r14, 0x0) + e22: 0403 br 0xe28 // e28 <_fpadd_parts+0xa8> + e24: 6596 cmpne r5, r6 + e26: 0c83 bf 0xf2c // f2c <_fpadd_parts+0x1ac> + e28: 4301 lsli r0, r3, 1 + e2a: 4a9f lsri r4, r2, 31 + e2c: 6d00 or r4, r0 + e2e: 42a1 lsli r5, r2, 1 + e30: 6c97 mov r2, r5 + e32: 6cd3 mov r3, r4 + e34: 3500 movi r5, 0 + e36: 3400 movi r4, 0 + e38: 2c00 subi r4, 1 + e3a: 2d00 subi r5, 1 + e3c: 6511 cmplt r4, r4 + e3e: 6109 addc r4, r2 + e40: 614d addc r5, r3 + e42: 6558 cmphs r6, r5 + e44: 6c07 mov r0, r1 + e46: 2900 subi r1, 1 + e48: 0bee bt 0xe24 // e24 <_fpadd_parts+0xa4> + e4a: 98e0 ld.w r7, (r14, 0x0) + e4c: b743 st.w r2, (r7, 0xc) + e4e: b764 st.w r3, (r7, 0x10) + e50: 3303 movi r3, 3 + e52: b702 st.w r0, (r7, 0x8) + e54: b760 st.w r3, (r7, 0x0) + e56: 6c1f mov r0, r7 + e58: 140a addi r14, r14, 40 + e5a: 1484 pop r4-r7 + e5c: 6c07 mov r0, r1 + e5e: 140a addi r14, r14, 40 + e60: 1484 pop r4-r7 + e62: 3b20 cmplti r3, 1 + e64: 088c bt 0xf7c // f7c <_fpadd_parts+0x1fc> + e66: 3300 movi r3, 0 + e68: 2b1f subi r3, 32 + e6a: 60c8 addu r3, r2 + e6c: 3bdf btsti r3, 31 + e6e: b866 st.w r3, (r14, 0x18) + e70: 08bb bt 0xfe6 // fe6 <_fpadd_parts+0x266> + e72: 98a1 ld.w r5, (r14, 0x4) + e74: 714d lsr r5, r3 + e76: b8a4 st.w r5, (r14, 0x10) + e78: 3500 movi r5, 0 + e7a: b8a5 st.w r5, (r14, 0x14) + e7c: 9866 ld.w r3, (r14, 0x18) + e7e: 3bdf btsti r3, 31 + e80: 3500 movi r5, 0 + e82: 3600 movi r6, 0 + e84: 08ad bt 0xfde // fde <_fpadd_parts+0x25e> + e86: 3201 movi r2, 1 + e88: 708c lsl r2, r3 + e8a: 6d8b mov r6, r2 + e8c: 3200 movi r2, 0 + e8e: 3300 movi r3, 0 + e90: 2a00 subi r2, 1 + e92: 2b00 subi r3, 1 + e94: 6489 cmplt r2, r2 + e96: 6095 addc r2, r5 + e98: 60d9 addc r3, r6 + e9a: 98a0 ld.w r5, (r14, 0x0) + e9c: 98c1 ld.w r6, (r14, 0x4) + e9e: 6948 and r5, r2 + ea0: 698c and r6, r3 + ea2: 6c97 mov r2, r5 + ea4: 6cdb mov r3, r6 + ea6: 6c8c or r2, r3 + ea8: 3a40 cmpnei r2, 0 + eaa: 3500 movi r5, 0 + eac: 6155 addc r5, r5 + eae: 6c97 mov r2, r5 + eb0: 3300 movi r3, 0 + eb2: 98a4 ld.w r5, (r14, 0x10) + eb4: 98c5 ld.w r6, (r14, 0x14) + eb6: 6d48 or r5, r2 + eb8: 6d8c or r6, r3 + eba: 9061 ld.w r3, (r0, 0x4) + ebc: 9141 ld.w r2, (r1, 0x4) + ebe: 648e cmpne r3, r2 + ec0: b8a0 st.w r5, (r14, 0x0) + ec2: b8c1 st.w r6, (r14, 0x4) + ec4: 0b8a bt 0xdd8 // dd8 <_fpadd_parts+0x58> + ec6: b761 st.w r3, (r7, 0x4) + ec8: 9800 ld.w r0, (r14, 0x0) + eca: 9821 ld.w r1, (r14, 0x4) + ecc: 9842 ld.w r2, (r14, 0x8) + ece: 9863 ld.w r3, (r14, 0xc) + ed0: 6489 cmplt r2, r2 + ed2: 6081 addc r2, r0 + ed4: 60c5 addc r3, r1 + ed6: b782 st.w r4, (r7, 0x8) + ed8: b743 st.w r2, (r7, 0xc) + eda: b764 st.w r3, (r7, 0x10) + edc: 3103 movi r1, 3 + ede: b720 st.w r1, (r7, 0x0) + ee0: 123b lrw r1, 0x1fffffff // 104c <_fpadd_parts+0x2cc> + ee2: 64c4 cmphs r1, r3 + ee4: 0810 bt 0xf04 // f04 <_fpadd_parts+0x184> + ee6: 439f lsli r4, r3, 31 + ee8: 4a01 lsri r0, r2, 1 + eea: 6c10 or r0, r4 + eec: 3500 movi r5, 0 + eee: 3401 movi r4, 1 + ef0: 4b21 lsri r1, r3, 1 + ef2: 6890 and r2, r4 + ef4: 68d4 and r3, r5 + ef6: 6c80 or r2, r0 + ef8: 6cc4 or r3, r1 + efa: b743 st.w r2, (r7, 0xc) + efc: b764 st.w r3, (r7, 0x10) + efe: 9762 ld.w r3, (r7, 0x8) + f00: 2300 addi r3, 1 + f02: b762 st.w r3, (r7, 0x8) + f04: 6c1f mov r0, r7 + f06: 140a addi r14, r14, 40 + f08: 1484 pop r4-r7 + f0a: 3b42 cmpnei r3, 2 + f0c: 0ba6 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f0e: b760 st.w r3, (r7, 0x0) + f10: 9061 ld.w r3, (r0, 0x4) + f12: b761 st.w r3, (r7, 0x4) + f14: 9062 ld.w r3, (r0, 0x8) + f16: b762 st.w r3, (r7, 0x8) + f18: 9063 ld.w r3, (r0, 0xc) + f1a: b763 st.w r3, (r7, 0xc) + f1c: 9064 ld.w r3, (r0, 0x10) + f1e: 9141 ld.w r2, (r1, 0x4) + f20: b764 st.w r3, (r7, 0x10) + f22: 9061 ld.w r3, (r0, 0x4) + f24: 68c8 and r3, r2 + f26: b761 st.w r3, (r7, 0x4) + f28: 6c1f mov r0, r7 + f2a: 0797 br 0xe58 // e58 <_fpadd_parts+0xd8> + f2c: 98e2 ld.w r7, (r14, 0x8) + f2e: 651c cmphs r7, r4 + f30: 0b7c bt 0xe28 // e28 <_fpadd_parts+0xa8> + f32: 078c br 0xe4a // e4a <_fpadd_parts+0xca> + f34: 9802 ld.w r0, (r14, 0x8) + f36: 9823 ld.w r1, (r14, 0xc) + f38: 9840 ld.w r2, (r14, 0x0) + f3a: 9861 ld.w r3, (r14, 0x4) + f3c: 6400 cmphs r0, r0 + f3e: 600b subc r0, r2 + f40: 604f subc r1, r3 + f42: 0754 br 0xdea // dea <_fpadd_parts+0x6a> + f44: 3200 movi r2, 0 + f46: 3300 movi r3, 0 + f48: 6d17 mov r4, r5 + f4a: b842 st.w r2, (r14, 0x8) + f4c: b863 st.w r3, (r14, 0xc) + f4e: 0741 br 0xdd0 // dd0 <_fpadd_parts+0x50> + f50: 3a44 cmpnei r2, 4 + f52: 0b83 bt 0xe58 // e58 <_fpadd_parts+0xd8> + f54: 9041 ld.w r2, (r0, 0x4) + f56: 9161 ld.w r3, (r1, 0x4) + f58: 64ca cmpne r2, r3 + f5a: 0f7f bf 0xe58 // e58 <_fpadd_parts+0xd8> + f5c: 111d lrw r0, 0xa48c // 1050 <_fpadd_parts+0x2d0> + f5e: 077d br 0xe58 // e58 <_fpadd_parts+0xd8> + f60: 3200 movi r2, 0 + f62: 608e subu r2, r3 + f64: 072d br 0xdbe // dbe <_fpadd_parts+0x3e> + f66: 3301 movi r3, 1 + f68: b761 st.w r3, (r7, 0x4) + f6a: 3200 movi r2, 0 + f6c: 3300 movi r3, 0 + f6e: 6488 cmphs r2, r2 + f70: 6083 subc r2, r0 + f72: 60c7 subc r3, r1 + f74: b782 st.w r4, (r7, 0x8) + f76: b743 st.w r2, (r7, 0xc) + f78: b764 st.w r3, (r7, 0x10) + f7a: 0741 br 0xdfc // dfc <_fpadd_parts+0x7c> + f7c: 3b40 cmpnei r3, 0 + f7e: 0f29 bf 0xdd0 // dd0 <_fpadd_parts+0x50> + f80: 3300 movi r3, 0 + f82: 2b1f subi r3, 32 + f84: 60c8 addu r3, r2 + f86: 3bdf btsti r3, 31 + f88: 6108 addu r4, r2 + f8a: b866 st.w r3, (r14, 0x18) + f8c: 0849 bt 0x101e // 101e <_fpadd_parts+0x29e> + f8e: 9863 ld.w r3, (r14, 0xc) + f90: 98a6 ld.w r5, (r14, 0x18) + f92: 70d5 lsr r3, r5 + f94: b864 st.w r3, (r14, 0x10) + f96: 3300 movi r3, 0 + f98: b865 st.w r3, (r14, 0x14) + f9a: 9866 ld.w r3, (r14, 0x18) + f9c: 3bdf btsti r3, 31 + f9e: 3500 movi r5, 0 + fa0: 3600 movi r6, 0 + fa2: 083a bt 0x1016 // 1016 <_fpadd_parts+0x296> + fa4: 3201 movi r2, 1 + fa6: 708c lsl r2, r3 + fa8: 6d8b mov r6, r2 + faa: 3200 movi r2, 0 + fac: 3300 movi r3, 0 + fae: 2a00 subi r2, 1 + fb0: 2b00 subi r3, 1 + fb2: 6489 cmplt r2, r2 + fb4: 6095 addc r2, r5 + fb6: 60d9 addc r3, r6 + fb8: 98a2 ld.w r5, (r14, 0x8) + fba: 98c3 ld.w r6, (r14, 0xc) + fbc: 6948 and r5, r2 + fbe: 698c and r6, r3 + fc0: 6c97 mov r2, r5 + fc2: 6cdb mov r3, r6 + fc4: 6c8c or r2, r3 + fc6: 3a40 cmpnei r2, 0 + fc8: 3500 movi r5, 0 + fca: 6155 addc r5, r5 + fcc: 6c97 mov r2, r5 + fce: 3300 movi r3, 0 + fd0: 98a4 ld.w r5, (r14, 0x10) + fd2: 98c5 ld.w r6, (r14, 0x14) + fd4: 6d48 or r5, r2 + fd6: 6d8c or r6, r3 + fd8: b8a2 st.w r5, (r14, 0x8) + fda: b8c3 st.w r6, (r14, 0xc) + fdc: 06fa br 0xdd0 // dd0 <_fpadd_parts+0x50> + fde: 3301 movi r3, 1 + fe0: 70c8 lsl r3, r2 + fe2: 6d4f mov r5, r3 + fe4: 0754 br 0xe8c // e8c <_fpadd_parts+0x10c> + fe6: 9861 ld.w r3, (r14, 0x4) + fe8: 361f movi r6, 31 + fea: 43a1 lsli r5, r3, 1 + fec: 618a subu r6, r2 + fee: 7158 lsl r5, r6 + ff0: b8a9 st.w r5, (r14, 0x24) + ff2: 98a0 ld.w r5, (r14, 0x0) + ff4: 98c1 ld.w r6, (r14, 0x4) + ff6: b8a7 st.w r5, (r14, 0x1c) + ff8: b8c8 st.w r6, (r14, 0x20) + ffa: 9867 ld.w r3, (r14, 0x1c) + ffc: 70c9 lsr r3, r2 + ffe: 98a9 ld.w r5, (r14, 0x24) + 1000: 6cd4 or r3, r5 + 1002: b864 st.w r3, (r14, 0x10) + 1004: 9868 ld.w r3, (r14, 0x20) + 1006: 70c9 lsr r3, r2 + 1008: b865 st.w r3, (r14, 0x14) + 100a: 0739 br 0xe7c // e7c <_fpadd_parts+0xfc> + 100c: 3100 movi r1, 0 + 100e: 2901 subi r1, 2 + 1010: 6404 cmphs r1, r0 + 1012: 0b01 bt 0xe14 // e14 <_fpadd_parts+0x94> + 1014: 0764 br 0xedc // edc <_fpadd_parts+0x15c> + 1016: 3301 movi r3, 1 + 1018: 70c8 lsl r3, r2 + 101a: 6d4f mov r5, r3 + 101c: 07c7 br 0xfaa // faa <_fpadd_parts+0x22a> + 101e: 9863 ld.w r3, (r14, 0xc) + 1020: 43c1 lsli r6, r3, 1 + 1022: 351f movi r5, 31 + 1024: 5d69 subu r3, r5, r2 + 1026: 6d5b mov r5, r6 + 1028: 714c lsl r5, r3 + 102a: b8a9 st.w r5, (r14, 0x24) + 102c: 98a2 ld.w r5, (r14, 0x8) + 102e: 98c3 ld.w r6, (r14, 0xc) + 1030: b8a7 st.w r5, (r14, 0x1c) + 1032: b8c8 st.w r6, (r14, 0x20) + 1034: 9867 ld.w r3, (r14, 0x1c) + 1036: 70c9 lsr r3, r2 + 1038: 98a9 ld.w r5, (r14, 0x24) + 103a: 6cd4 or r3, r5 + 103c: b864 st.w r3, (r14, 0x10) + 103e: 9868 ld.w r3, (r14, 0x20) + 1040: 70c9 lsr r3, r2 + 1042: b865 st.w r3, (r14, 0x14) + 1044: 07ab br 0xf9a // f9a <_fpadd_parts+0x21a> + 1046: 0000 bkpt + 1048: 0fffffff .long 0x0fffffff + 104c: 1fffffff .long 0x1fffffff + 1050: 0000a48c .long 0x0000a48c + +00001054 <__adddf3>: + 1054: 14d0 push r15 + 1056: 1433 subi r14, r14, 76 + 1058: b800 st.w r0, (r14, 0x0) + 105a: b821 st.w r1, (r14, 0x4) + 105c: 6c3b mov r0, r14 + 105e: 1904 addi r1, r14, 16 + 1060: b863 st.w r3, (r14, 0xc) + 1062: b842 st.w r2, (r14, 0x8) + 1064: e00003f4 bsr 0x184c // 184c <__unpack_d> + 1068: 1909 addi r1, r14, 36 + 106a: 1802 addi r0, r14, 8 + 106c: e00003f0 bsr 0x184c // 184c <__unpack_d> + 1070: 1a0e addi r2, r14, 56 + 1072: 1909 addi r1, r14, 36 + 1074: 1804 addi r0, r14, 16 + 1076: e3fffe85 bsr 0xd80 // d80 <_fpadd_parts> + 107a: e000031b bsr 0x16b0 // 16b0 <__pack_d> + 107e: 1413 addi r14, r14, 76 + 1080: 1490 pop r15 + ... + +00001084 <__subdf3>: + 1084: 14d0 push r15 + 1086: 1433 subi r14, r14, 76 + 1088: b800 st.w r0, (r14, 0x0) + 108a: b821 st.w r1, (r14, 0x4) + 108c: 6c3b mov r0, r14 + 108e: 1904 addi r1, r14, 16 + 1090: b842 st.w r2, (r14, 0x8) + 1092: b863 st.w r3, (r14, 0xc) + 1094: e00003dc bsr 0x184c // 184c <__unpack_d> + 1098: 1909 addi r1, r14, 36 + 109a: 1802 addi r0, r14, 8 + 109c: e00003d8 bsr 0x184c // 184c <__unpack_d> + 10a0: 986a ld.w r3, (r14, 0x28) + 10a2: 3201 movi r2, 1 + 10a4: 6cc9 xor r3, r2 + 10a6: 1909 addi r1, r14, 36 + 10a8: 1a0e addi r2, r14, 56 + 10aa: 1804 addi r0, r14, 16 + 10ac: b86a st.w r3, (r14, 0x28) + 10ae: e3fffe69 bsr 0xd80 // d80 <_fpadd_parts> + 10b2: e00002ff bsr 0x16b0 // 16b0 <__pack_d> + 10b6: 1413 addi r14, r14, 76 + 10b8: 1490 pop r15 + ... + +000010bc <__muldf3>: + 10bc: 14d4 push r4-r7, r15 + 10be: 143b subi r14, r14, 108 + 10c0: b808 st.w r0, (r14, 0x20) + 10c2: b829 st.w r1, (r14, 0x24) + 10c4: 1808 addi r0, r14, 32 + 10c6: 190c addi r1, r14, 48 + 10c8: b86b st.w r3, (r14, 0x2c) + 10ca: b84a st.w r2, (r14, 0x28) + 10cc: e00003c0 bsr 0x184c // 184c <__unpack_d> + 10d0: 1911 addi r1, r14, 68 + 10d2: 180a addi r0, r14, 40 + 10d4: e00003bc bsr 0x184c // 184c <__unpack_d> + 10d8: 986c ld.w r3, (r14, 0x30) + 10da: 3b01 cmphsi r3, 2 + 10dc: 0cac bf 0x1234 // 1234 <__muldf3+0x178> + 10de: 9851 ld.w r2, (r14, 0x44) + 10e0: 3a01 cmphsi r2, 2 + 10e2: 0c9c bf 0x121a // 121a <__muldf3+0x15e> + 10e4: 3b44 cmpnei r3, 4 + 10e6: 0ca5 bf 0x1230 // 1230 <__muldf3+0x174> + 10e8: 3a44 cmpnei r2, 4 + 10ea: 0c96 bf 0x1216 // 1216 <__muldf3+0x15a> + 10ec: 3b42 cmpnei r3, 2 + 10ee: 0ca3 bf 0x1234 // 1234 <__muldf3+0x178> + 10f0: 3a42 cmpnei r2, 2 + 10f2: 0c94 bf 0x121a // 121a <__muldf3+0x15e> + 10f4: 98ef ld.w r7, (r14, 0x3c) + 10f6: 98b4 ld.w r5, (r14, 0x50) + 10f8: 9875 ld.w r3, (r14, 0x54) + 10fa: 6d8f mov r6, r3 + 10fc: 6c9f mov r2, r7 + 10fe: 3300 movi r3, 0 + 1100: 6c17 mov r0, r5 + 1102: 3100 movi r1, 0 + 1104: e0000294 bsr 0x162c // 162c <__muldi3> + 1108: b804 st.w r0, (r14, 0x10) + 110a: b825 st.w r1, (r14, 0x14) + 110c: 6c9f mov r2, r7 + 110e: 3300 movi r3, 0 + 1110: 6c1b mov r0, r6 + 1112: 3100 movi r1, 0 + 1114: 9890 ld.w r4, (r14, 0x40) + 1116: b8c2 st.w r6, (r14, 0x8) + 1118: e000028a bsr 0x162c // 162c <__muldi3> + 111c: 6d83 mov r6, r0 + 111e: 6dc7 mov r7, r1 + 1120: 9842 ld.w r2, (r14, 0x8) + 1122: 3300 movi r3, 0 + 1124: 6c13 mov r0, r4 + 1126: 3100 movi r1, 0 + 1128: e0000282 bsr 0x162c // 162c <__muldi3> + 112c: b806 st.w r0, (r14, 0x18) + 112e: b827 st.w r1, (r14, 0x1c) + 1130: 6c97 mov r2, r5 + 1132: 3300 movi r3, 0 + 1134: 6c13 mov r0, r4 + 1136: 3100 movi r1, 0 + 1138: e000027a bsr 0x162c // 162c <__muldi3> + 113c: 6401 cmplt r0, r0 + 113e: 6019 addc r0, r6 + 1140: 605d addc r1, r7 + 1142: 65c4 cmphs r1, r7 + 1144: 0c91 bf 0x1266 // 1266 <__muldf3+0x1aa> + 1146: 645e cmpne r7, r1 + 1148: 0c8d bf 0x1262 // 1262 <__muldf3+0x1a6> + 114a: 3300 movi r3, 0 + 114c: 3400 movi r4, 0 + 114e: b862 st.w r3, (r14, 0x8) + 1150: b883 st.w r4, (r14, 0xc) + 1152: 9884 ld.w r4, (r14, 0x10) + 1154: 98a5 ld.w r5, (r14, 0x14) + 1156: 3600 movi r6, 0 + 1158: 6dc3 mov r7, r0 + 115a: 6c93 mov r2, r4 + 115c: 6cd7 mov r3, r5 + 115e: 6489 cmplt r2, r2 + 1160: 6099 addc r2, r6 + 1162: 60dd addc r3, r7 + 1164: 6d8b mov r6, r2 + 1166: 6dcf mov r7, r3 + 1168: 6c93 mov r2, r4 + 116a: 6cd7 mov r3, r5 + 116c: 64dc cmphs r7, r3 + 116e: 0c70 bf 0x124e // 124e <__muldf3+0x192> + 1170: 65ce cmpne r3, r7 + 1172: 0c6c bf 0x124a // 124a <__muldf3+0x18e> + 1174: 6c87 mov r2, r1 + 1176: 3300 movi r3, 0 + 1178: 9806 ld.w r0, (r14, 0x18) + 117a: 9827 ld.w r1, (r14, 0x1c) + 117c: 6401 cmplt r0, r0 + 117e: 6009 addc r0, r2 + 1180: 604d addc r1, r3 + 1182: 6c83 mov r2, r0 + 1184: 6cc7 mov r3, r1 + 1186: 9802 ld.w r0, (r14, 0x8) + 1188: 9823 ld.w r1, (r14, 0xc) + 118a: 6401 cmplt r0, r0 + 118c: 6009 addc r0, r2 + 118e: 604d addc r1, r3 + 1190: 6c83 mov r2, r0 + 1192: 6cc7 mov r3, r1 + 1194: 988e ld.w r4, (r14, 0x38) + 1196: 9833 ld.w r1, (r14, 0x4c) + 1198: 6104 addu r4, r1 + 119a: 5c2e addi r1, r4, 4 + 119c: b838 st.w r1, (r14, 0x60) + 119e: 980d ld.w r0, (r14, 0x34) + 11a0: 9832 ld.w r1, (r14, 0x48) + 11a2: 6442 cmpne r0, r1 + 11a4: 12b0 lrw r5, 0x1fffffff // 12e4 <__muldf3+0x228> + 11a6: 3100 movi r1, 0 + 11a8: 6045 addc r1, r1 + 11aa: 64d4 cmphs r5, r3 + 11ac: b837 st.w r1, (r14, 0x5c) + 11ae: 0879 bt 0x12a0 // 12a0 <__muldf3+0x1e4> + 11b0: 2404 addi r4, 5 + 11b2: b8a4 st.w r5, (r14, 0x10) + 11b4: 3001 movi r0, 1 + 11b6: 3100 movi r1, 0 + 11b8: 6808 and r0, r2 + 11ba: 684c and r1, r3 + 11bc: 6c04 or r0, r1 + 11be: 3840 cmpnei r0, 0 + 11c0: b882 st.w r4, (r14, 0x8) + 11c2: 0c0e bf 0x11de // 11de <__muldf3+0x122> + 11c4: 473f lsli r1, r7, 31 + 11c6: 4e01 lsri r0, r6, 1 + 11c8: 6c04 or r0, r1 + 11ca: 4f21 lsri r1, r7, 1 + 11cc: b800 st.w r0, (r14, 0x0) + 11ce: b821 st.w r1, (r14, 0x4) + 11d0: 3180 movi r1, 128 + 11d2: 98c0 ld.w r6, (r14, 0x0) + 11d4: 98e1 ld.w r7, (r14, 0x4) + 11d6: 3000 movi r0, 0 + 11d8: 4138 lsli r1, r1, 24 + 11da: 6d80 or r6, r0 + 11dc: 6dc4 or r7, r1 + 11de: 4b21 lsri r1, r3, 1 + 11e0: 43bf lsli r5, r3, 31 + 11e2: 4a01 lsri r0, r2, 1 + 11e4: 6cc7 mov r3, r1 + 11e6: 9824 ld.w r1, (r14, 0x10) + 11e8: 6d40 or r5, r0 + 11ea: 64c4 cmphs r1, r3 + 11ec: 6c97 mov r2, r5 + 11ee: 2400 addi r4, 1 + 11f0: 0fe2 bf 0x11b4 // 11b4 <__muldf3+0xf8> + 11f2: 9822 ld.w r1, (r14, 0x8) + 11f4: b838 st.w r1, (r14, 0x60) + 11f6: 30ff movi r0, 255 + 11f8: 3100 movi r1, 0 + 11fa: 6808 and r0, r2 + 11fc: 684c and r1, r3 + 11fe: 3480 movi r4, 128 + 1200: 6502 cmpne r0, r4 + 1202: 0c37 bf 0x1270 // 1270 <__muldf3+0x1b4> + 1204: b859 st.w r2, (r14, 0x64) + 1206: b87a st.w r3, (r14, 0x68) + 1208: 3303 movi r3, 3 + 120a: b876 st.w r3, (r14, 0x58) + 120c: 1816 addi r0, r14, 88 + 120e: e0000251 bsr 0x16b0 // 16b0 <__pack_d> + 1212: 141b addi r14, r14, 108 + 1214: 1494 pop r4-r7, r15 + 1216: 3b42 cmpnei r3, 2 + 1218: 0c42 bf 0x129c // 129c <__muldf3+0x1e0> + 121a: 9872 ld.w r3, (r14, 0x48) + 121c: 984d ld.w r2, (r14, 0x34) + 121e: 64ca cmpne r2, r3 + 1220: 3300 movi r3, 0 + 1222: 60cd addc r3, r3 + 1224: 1811 addi r0, r14, 68 + 1226: b872 st.w r3, (r14, 0x48) + 1228: e0000244 bsr 0x16b0 // 16b0 <__pack_d> + 122c: 141b addi r14, r14, 108 + 122e: 1494 pop r4-r7, r15 + 1230: 3a42 cmpnei r2, 2 + 1232: 0c35 bf 0x129c // 129c <__muldf3+0x1e0> + 1234: 984d ld.w r2, (r14, 0x34) + 1236: 9872 ld.w r3, (r14, 0x48) + 1238: 64ca cmpne r2, r3 + 123a: 3300 movi r3, 0 + 123c: 60cd addc r3, r3 + 123e: 180c addi r0, r14, 48 + 1240: b86d st.w r3, (r14, 0x34) + 1242: e0000237 bsr 0x16b0 // 16b0 <__pack_d> + 1246: 141b addi r14, r14, 108 + 1248: 1494 pop r4-r7, r15 + 124a: 6498 cmphs r6, r2 + 124c: 0b94 bt 0x1174 // 1174 <__muldf3+0xb8> + 124e: 9882 ld.w r4, (r14, 0x8) + 1250: 98a3 ld.w r5, (r14, 0xc) + 1252: 3201 movi r2, 1 + 1254: 3300 movi r3, 0 + 1256: 6511 cmplt r4, r4 + 1258: 6109 addc r4, r2 + 125a: 614d addc r5, r3 + 125c: b882 st.w r4, (r14, 0x8) + 125e: b8a3 st.w r5, (r14, 0xc) + 1260: 078a br 0x1174 // 1174 <__muldf3+0xb8> + 1262: 6580 cmphs r0, r6 + 1264: 0b73 bt 0x114a // 114a <__muldf3+0x8e> + 1266: 3300 movi r3, 0 + 1268: 3401 movi r4, 1 + 126a: b862 st.w r3, (r14, 0x8) + 126c: b883 st.w r4, (r14, 0xc) + 126e: 0772 br 0x1152 // 1152 <__muldf3+0x96> + 1270: 3940 cmpnei r1, 0 + 1272: 0bc9 bt 0x1204 // 1204 <__muldf3+0x148> + 1274: 3180 movi r1, 128 + 1276: 4121 lsli r1, r1, 1 + 1278: 6848 and r1, r2 + 127a: 3940 cmpnei r1, 0 + 127c: 0bc4 bt 0x1204 // 1204 <__muldf3+0x148> + 127e: 6c5b mov r1, r6 + 1280: 6c5c or r1, r7 + 1282: 3940 cmpnei r1, 0 + 1284: 0fc0 bf 0x1204 // 1204 <__muldf3+0x148> + 1286: 3080 movi r0, 128 + 1288: 3100 movi r1, 0 + 128a: 6401 cmplt r0, r0 + 128c: 6009 addc r0, r2 + 128e: 604d addc r1, r3 + 1290: 34ff movi r4, 255 + 1292: 6d43 mov r5, r0 + 1294: 6951 andn r5, r4 + 1296: 6c97 mov r2, r5 + 1298: 6cc7 mov r3, r1 + 129a: 07b5 br 0x1204 // 1204 <__muldf3+0x148> + 129c: 1013 lrw r0, 0xa48c // 12e8 <__muldf3+0x22c> + 129e: 07b8 br 0x120e // 120e <__muldf3+0x152> + 12a0: 1033 lrw r1, 0xfffffff // 12ec <__muldf3+0x230> + 12a2: 64c4 cmphs r1, r3 + 12a4: 0fa9 bf 0x11f6 // 11f6 <__muldf3+0x13a> + 12a6: 2402 addi r4, 3 + 12a8: b822 st.w r1, (r14, 0x8) + 12aa: 4a1f lsri r0, r2, 31 + 12ac: 4321 lsli r1, r3, 1 + 12ae: 42a1 lsli r5, r2, 1 + 12b0: 6c04 or r0, r1 + 12b2: 3fdf btsti r7, 31 + 12b4: b880 st.w r4, (r14, 0x0) + 12b6: 6c97 mov r2, r5 + 12b8: 6cc3 mov r3, r0 + 12ba: 0c07 bf 0x12c8 // 12c8 <__muldf3+0x20c> + 12bc: 3001 movi r0, 1 + 12be: 3100 movi r1, 0 + 12c0: 6c08 or r0, r2 + 12c2: 6c4c or r1, r3 + 12c4: 6c83 mov r2, r0 + 12c6: 6cc7 mov r3, r1 + 12c8: 4721 lsli r1, r7, 1 + 12ca: 4e1f lsri r0, r6, 31 + 12cc: 6c04 or r0, r1 + 12ce: 9822 ld.w r1, (r14, 0x8) + 12d0: 46a1 lsli r5, r6, 1 + 12d2: 64c4 cmphs r1, r3 + 12d4: 6d97 mov r6, r5 + 12d6: 6dc3 mov r7, r0 + 12d8: 2c00 subi r4, 1 + 12da: 0be8 bt 0x12aa // 12aa <__muldf3+0x1ee> + 12dc: 9820 ld.w r1, (r14, 0x0) + 12de: b838 st.w r1, (r14, 0x60) + 12e0: 078b br 0x11f6 // 11f6 <__muldf3+0x13a> + 12e2: 0000 bkpt + 12e4: 1fffffff .long 0x1fffffff + 12e8: 0000a48c .long 0x0000a48c + 12ec: 0fffffff .long 0x0fffffff + +000012f0 <__divdf3>: + 12f0: 14d4 push r4-r7, r15 + 12f2: 1432 subi r14, r14, 72 + 12f4: b804 st.w r0, (r14, 0x10) + 12f6: b825 st.w r1, (r14, 0x14) + 12f8: 1804 addi r0, r14, 16 + 12fa: 1908 addi r1, r14, 32 + 12fc: b867 st.w r3, (r14, 0x1c) + 12fe: b846 st.w r2, (r14, 0x18) + 1300: e00002a6 bsr 0x184c // 184c <__unpack_d> + 1304: 190d addi r1, r14, 52 + 1306: 1806 addi r0, r14, 24 + 1308: e00002a2 bsr 0x184c // 184c <__unpack_d> + 130c: 9868 ld.w r3, (r14, 0x20) + 130e: 3b01 cmphsi r3, 2 + 1310: 0c66 bf 0x13dc // 13dc <__divdf3+0xec> + 1312: 982d ld.w r1, (r14, 0x34) + 1314: 3901 cmphsi r1, 2 + 1316: 0c92 bf 0x143a // 143a <__divdf3+0x14a> + 1318: 9849 ld.w r2, (r14, 0x24) + 131a: 980e ld.w r0, (r14, 0x38) + 131c: 6c81 xor r2, r0 + 131e: 3b44 cmpnei r3, 4 + 1320: b849 st.w r2, (r14, 0x24) + 1322: 0c62 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1324: 3b42 cmpnei r3, 2 + 1326: 0c60 bf 0x13e6 // 13e6 <__divdf3+0xf6> + 1328: 3944 cmpnei r1, 4 + 132a: 0c62 bf 0x13ee // 13ee <__divdf3+0xfe> + 132c: 3942 cmpnei r1, 2 + 132e: 0c82 bf 0x1432 // 1432 <__divdf3+0x142> + 1330: 982a ld.w r1, (r14, 0x28) + 1332: 986f ld.w r3, (r14, 0x3c) + 1334: 604e subu r1, r3 + 1336: 9890 ld.w r4, (r14, 0x40) + 1338: 98b1 ld.w r5, (r14, 0x44) + 133a: 984b ld.w r2, (r14, 0x2c) + 133c: 986c ld.w r3, (r14, 0x30) + 133e: 654c cmphs r3, r5 + 1340: b82a st.w r1, (r14, 0x28) + 1342: 6d93 mov r6, r4 + 1344: 6dd7 mov r7, r5 + 1346: 0c05 bf 0x1350 // 1350 <__divdf3+0x60> + 1348: 64d6 cmpne r5, r3 + 134a: 080b bt 0x1360 // 1360 <__divdf3+0x70> + 134c: 6508 cmphs r2, r4 + 134e: 0809 bt 0x1360 // 1360 <__divdf3+0x70> + 1350: 4a9f lsri r4, r2, 31 + 1352: 4301 lsli r0, r3, 1 + 1354: 42a1 lsli r5, r2, 1 + 1356: 6d00 or r4, r0 + 1358: 2900 subi r1, 1 + 135a: 6c97 mov r2, r5 + 135c: 6cd3 mov r3, r4 + 135e: b82a st.w r1, (r14, 0x28) + 1360: 3000 movi r0, 0 + 1362: 3100 movi r1, 0 + 1364: b802 st.w r0, (r14, 0x8) + 1366: b823 st.w r1, (r14, 0xc) + 1368: 3180 movi r1, 128 + 136a: 343d movi r4, 61 + 136c: 3000 movi r0, 0 + 136e: 4135 lsli r1, r1, 21 + 1370: b8c0 st.w r6, (r14, 0x0) + 1372: b8e1 st.w r7, (r14, 0x4) + 1374: 98a0 ld.w r5, (r14, 0x0) + 1376: 98c1 ld.w r6, (r14, 0x4) + 1378: 658c cmphs r3, r6 + 137a: 0c10 bf 0x139a // 139a <__divdf3+0xaa> + 137c: 64da cmpne r6, r3 + 137e: 0803 bt 0x1384 // 1384 <__divdf3+0x94> + 1380: 6548 cmphs r2, r5 + 1382: 0c0c bf 0x139a // 139a <__divdf3+0xaa> + 1384: 98a2 ld.w r5, (r14, 0x8) + 1386: 98c3 ld.w r6, (r14, 0xc) + 1388: 6d40 or r5, r0 + 138a: 6d84 or r6, r1 + 138c: b8a2 st.w r5, (r14, 0x8) + 138e: b8c3 st.w r6, (r14, 0xc) + 1390: 98a0 ld.w r5, (r14, 0x0) + 1392: 98c1 ld.w r6, (r14, 0x4) + 1394: 6488 cmphs r2, r2 + 1396: 6097 subc r2, r5 + 1398: 60db subc r3, r6 + 139a: 41bf lsli r5, r1, 31 + 139c: 48e1 lsri r7, r0, 1 + 139e: 6d97 mov r6, r5 + 13a0: 49a1 lsri r5, r1, 1 + 13a2: 6d9c or r6, r7 + 13a4: 6c57 mov r1, r5 + 13a6: 4abf lsri r5, r2, 31 + 13a8: 6c1b mov r0, r6 + 13aa: 2c00 subi r4, 1 + 13ac: 6d97 mov r6, r5 + 13ae: 43a1 lsli r5, r3, 1 + 13b0: 6d94 or r6, r5 + 13b2: 4261 lsli r3, r2, 1 + 13b4: 3c40 cmpnei r4, 0 + 13b6: 6dcf mov r7, r3 + 13b8: 6c8f mov r2, r3 + 13ba: 6cdb mov r3, r6 + 13bc: 0bdc bt 0x1374 // 1374 <__divdf3+0x84> + 13be: 30ff movi r0, 255 + 13c0: 3100 movi r1, 0 + 13c2: 9882 ld.w r4, (r14, 0x8) + 13c4: 98a3 ld.w r5, (r14, 0xc) + 13c6: 6900 and r4, r0 + 13c8: 6944 and r5, r1 + 13ca: 6c13 mov r0, r4 + 13cc: 6c57 mov r1, r5 + 13ce: 3480 movi r4, 128 + 13d0: 6502 cmpne r0, r4 + 13d2: 0c15 bf 0x13fc // 13fc <__divdf3+0x10c> + 13d4: 9862 ld.w r3, (r14, 0x8) + 13d6: 9883 ld.w r4, (r14, 0xc) + 13d8: b86b st.w r3, (r14, 0x2c) + 13da: b88c st.w r4, (r14, 0x30) + 13dc: 1808 addi r0, r14, 32 + 13de: e0000169 bsr 0x16b0 // 16b0 <__pack_d> + 13e2: 1412 addi r14, r14, 72 + 13e4: 1494 pop r4-r7, r15 + 13e6: 644e cmpne r3, r1 + 13e8: 0bfa bt 0x13dc // 13dc <__divdf3+0xec> + 13ea: 1016 lrw r0, 0xa48c // 1440 <__divdf3+0x150> + 13ec: 07f9 br 0x13de // 13de <__divdf3+0xee> + 13ee: 3300 movi r3, 0 + 13f0: 3400 movi r4, 0 + 13f2: b86b st.w r3, (r14, 0x2c) + 13f4: b88c st.w r4, (r14, 0x30) + 13f6: b86a st.w r3, (r14, 0x28) + 13f8: 1808 addi r0, r14, 32 + 13fa: 07f2 br 0x13de // 13de <__divdf3+0xee> + 13fc: 3940 cmpnei r1, 0 + 13fe: 0beb bt 0x13d4 // 13d4 <__divdf3+0xe4> + 1400: 3180 movi r1, 128 + 1402: 4121 lsli r1, r1, 1 + 1404: 9882 ld.w r4, (r14, 0x8) + 1406: 98a3 ld.w r5, (r14, 0xc) + 1408: 6850 and r1, r4 + 140a: 3940 cmpnei r1, 0 + 140c: 0be4 bt 0x13d4 // 13d4 <__divdf3+0xe4> + 140e: 6c98 or r2, r6 + 1410: 3a40 cmpnei r2, 0 + 1412: 0fe1 bf 0x13d4 // 13d4 <__divdf3+0xe4> + 1414: 3280 movi r2, 128 + 1416: 3300 movi r3, 0 + 1418: 6c13 mov r0, r4 + 141a: 6c57 mov r1, r5 + 141c: 6401 cmplt r0, r0 + 141e: 6009 addc r0, r2 + 1420: 604d addc r1, r3 + 1422: 6c83 mov r2, r0 + 1424: 6cc7 mov r3, r1 + 1426: 6c0b mov r0, r2 + 1428: 31ff movi r1, 255 + 142a: 6805 andn r0, r1 + 142c: b802 st.w r0, (r14, 0x8) + 142e: b863 st.w r3, (r14, 0xc) + 1430: 07d2 br 0x13d4 // 13d4 <__divdf3+0xe4> + 1432: 3304 movi r3, 4 + 1434: b868 st.w r3, (r14, 0x20) + 1436: 1808 addi r0, r14, 32 + 1438: 07d3 br 0x13de // 13de <__divdf3+0xee> + 143a: 180d addi r0, r14, 52 + 143c: 07d1 br 0x13de // 13de <__divdf3+0xee> + 143e: 0000 bkpt + 1440: 0000a48c .long 0x0000a48c + +00001444 <__gtdf2>: + 1444: 14d0 push r15 + 1446: 142e subi r14, r14, 56 + 1448: b800 st.w r0, (r14, 0x0) + 144a: b821 st.w r1, (r14, 0x4) + 144c: 6c3b mov r0, r14 + 144e: 1904 addi r1, r14, 16 + 1450: b863 st.w r3, (r14, 0xc) + 1452: b842 st.w r2, (r14, 0x8) + 1454: e00001fc bsr 0x184c // 184c <__unpack_d> + 1458: 1909 addi r1, r14, 36 + 145a: 1802 addi r0, r14, 8 + 145c: e00001f8 bsr 0x184c // 184c <__unpack_d> + 1460: 9864 ld.w r3, (r14, 0x10) + 1462: 3b01 cmphsi r3, 2 + 1464: 0c0a bf 0x1478 // 1478 <__gtdf2+0x34> + 1466: 9869 ld.w r3, (r14, 0x24) + 1468: 3b01 cmphsi r3, 2 + 146a: 0c07 bf 0x1478 // 1478 <__gtdf2+0x34> + 146c: 1909 addi r1, r14, 36 + 146e: 1804 addi r0, r14, 16 + 1470: e0000250 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 1474: 140e addi r14, r14, 56 + 1476: 1490 pop r15 + 1478: 3000 movi r0, 0 + 147a: 2800 subi r0, 1 + 147c: 140e addi r14, r14, 56 + 147e: 1490 pop r15 + +00001480 <__gedf2>: + 1480: 14d0 push r15 + 1482: 142e subi r14, r14, 56 + 1484: b800 st.w r0, (r14, 0x0) + 1486: b821 st.w r1, (r14, 0x4) + 1488: 6c3b mov r0, r14 + 148a: 1904 addi r1, r14, 16 + 148c: b863 st.w r3, (r14, 0xc) + 148e: b842 st.w r2, (r14, 0x8) + 1490: e00001de bsr 0x184c // 184c <__unpack_d> + 1494: 1909 addi r1, r14, 36 + 1496: 1802 addi r0, r14, 8 + 1498: e00001da bsr 0x184c // 184c <__unpack_d> + 149c: 9864 ld.w r3, (r14, 0x10) + 149e: 3b01 cmphsi r3, 2 + 14a0: 0c0a bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a2: 9869 ld.w r3, (r14, 0x24) + 14a4: 3b01 cmphsi r3, 2 + 14a6: 0c07 bf 0x14b4 // 14b4 <__gedf2+0x34> + 14a8: 1909 addi r1, r14, 36 + 14aa: 1804 addi r0, r14, 16 + 14ac: e0000232 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14b0: 140e addi r14, r14, 56 + 14b2: 1490 pop r15 + 14b4: 3000 movi r0, 0 + 14b6: 2800 subi r0, 1 + 14b8: 140e addi r14, r14, 56 + 14ba: 1490 pop r15 + +000014bc <__ledf2>: + 14bc: 14d0 push r15 + 14be: 142e subi r14, r14, 56 + 14c0: b800 st.w r0, (r14, 0x0) + 14c2: b821 st.w r1, (r14, 0x4) + 14c4: 6c3b mov r0, r14 + 14c6: 1904 addi r1, r14, 16 + 14c8: b863 st.w r3, (r14, 0xc) + 14ca: b842 st.w r2, (r14, 0x8) + 14cc: e00001c0 bsr 0x184c // 184c <__unpack_d> + 14d0: 1909 addi r1, r14, 36 + 14d2: 1802 addi r0, r14, 8 + 14d4: e00001bc bsr 0x184c // 184c <__unpack_d> + 14d8: 9864 ld.w r3, (r14, 0x10) + 14da: 3b01 cmphsi r3, 2 + 14dc: 0c0a bf 0x14f0 // 14f0 <__ledf2+0x34> + 14de: 9869 ld.w r3, (r14, 0x24) + 14e0: 3b01 cmphsi r3, 2 + 14e2: 0c07 bf 0x14f0 // 14f0 <__ledf2+0x34> + 14e4: 1909 addi r1, r14, 36 + 14e6: 1804 addi r0, r14, 16 + 14e8: e0000214 bsr 0x1910 // 1910 <__fpcmp_parts_d> + 14ec: 140e addi r14, r14, 56 + 14ee: 1490 pop r15 + 14f0: 3001 movi r0, 1 + 14f2: 140e addi r14, r14, 56 + 14f4: 1490 pop r15 + ... + +000014f8 <__floatsidf>: + 14f8: 14d1 push r4, r15 + 14fa: 1425 subi r14, r14, 20 + 14fc: 3303 movi r3, 3 + 14fe: b860 st.w r3, (r14, 0x0) + 1500: 3840 cmpnei r0, 0 + 1502: 487f lsri r3, r0, 31 + 1504: b861 st.w r3, (r14, 0x4) + 1506: 0808 bt 0x1516 // 1516 <__floatsidf+0x1e> + 1508: 3302 movi r3, 2 + 150a: b860 st.w r3, (r14, 0x0) + 150c: 6c3b mov r0, r14 + 150e: e00000d1 bsr 0x16b0 // 16b0 <__pack_d> + 1512: 1405 addi r14, r14, 20 + 1514: 1491 pop r4, r15 + 1516: 38df btsti r0, 31 + 1518: 0812 bt 0x153c // 153c <__floatsidf+0x44> + 151a: 6d03 mov r4, r0 + 151c: 6c13 mov r0, r4 + 151e: e00000a9 bsr 0x1670 // 1670 <__clzsi2> + 1522: 321d movi r2, 29 + 1524: 6080 addu r2, r0 + 1526: 2802 subi r0, 3 + 1528: 38df btsti r0, 31 + 152a: 0810 bt 0x154a // 154a <__floatsidf+0x52> + 152c: 7100 lsl r4, r0 + 152e: 3300 movi r3, 0 + 1530: b884 st.w r4, (r14, 0x10) + 1532: b863 st.w r3, (r14, 0xc) + 1534: 333c movi r3, 60 + 1536: 60ca subu r3, r2 + 1538: b862 st.w r3, (r14, 0x8) + 153a: 07e9 br 0x150c // 150c <__floatsidf+0x14> + 153c: 3380 movi r3, 128 + 153e: 4378 lsli r3, r3, 24 + 1540: 64c2 cmpne r0, r3 + 1542: 0c0d bf 0x155c // 155c <__floatsidf+0x64> + 1544: 3400 movi r4, 0 + 1546: 6102 subu r4, r0 + 1548: 07ea br 0x151c // 151c <__floatsidf+0x24> + 154a: 311f movi r1, 31 + 154c: 4c61 lsri r3, r4, 1 + 154e: 604a subu r1, r2 + 1550: 6c13 mov r0, r4 + 1552: 70c5 lsr r3, r1 + 1554: 7008 lsl r0, r2 + 1556: b864 st.w r3, (r14, 0x10) + 1558: b803 st.w r0, (r14, 0xc) + 155a: 07ed br 0x1534 // 1534 <__floatsidf+0x3c> + 155c: 3000 movi r0, 0 + 155e: 1022 lrw r1, 0xc1e00000 // 1564 <__floatsidf+0x6c> + 1560: 07d9 br 0x1512 // 1512 <__floatsidf+0x1a> + 1562: 0000 bkpt + 1564: c1e00000 .long 0xc1e00000 + +00001568 <__fixdfsi>: + 1568: 14d0 push r15 + 156a: 1427 subi r14, r14, 28 + 156c: b800 st.w r0, (r14, 0x0) + 156e: b821 st.w r1, (r14, 0x4) + 1570: 6c3b mov r0, r14 + 1572: 1902 addi r1, r14, 8 + 1574: e000016c bsr 0x184c // 184c <__unpack_d> + 1578: 9862 ld.w r3, (r14, 0x8) + 157a: 3b02 cmphsi r3, 3 + 157c: 0c20 bf 0x15bc // 15bc <__fixdfsi+0x54> + 157e: 3b44 cmpnei r3, 4 + 1580: 0c16 bf 0x15ac // 15ac <__fixdfsi+0x44> + 1582: 9864 ld.w r3, (r14, 0x10) + 1584: 3bdf btsti r3, 31 + 1586: 081b bt 0x15bc // 15bc <__fixdfsi+0x54> + 1588: 3b3e cmplti r3, 31 + 158a: 0c11 bf 0x15ac // 15ac <__fixdfsi+0x44> + 158c: 323c movi r2, 60 + 158e: 5a6d subu r3, r2, r3 + 1590: 3200 movi r2, 0 + 1592: 2a1f subi r2, 32 + 1594: 608c addu r2, r3 + 1596: 3adf btsti r2, 31 + 1598: 0815 bt 0x15c2 // 15c2 <__fixdfsi+0x5a> + 159a: 9806 ld.w r0, (r14, 0x18) + 159c: 7009 lsr r0, r2 + 159e: 9863 ld.w r3, (r14, 0xc) + 15a0: 3b40 cmpnei r3, 0 + 15a2: 0c0b bf 0x15b8 // 15b8 <__fixdfsi+0x50> + 15a4: 3300 movi r3, 0 + 15a6: 5b01 subu r0, r3, r0 + 15a8: 1407 addi r14, r14, 28 + 15aa: 1490 pop r15 + 15ac: 9863 ld.w r3, (r14, 0xc) + 15ae: 3b40 cmpnei r3, 0 + 15b0: 3000 movi r0, 0 + 15b2: 6001 addc r0, r0 + 15b4: 1068 lrw r3, 0x7fffffff // 15d4 <__fixdfsi+0x6c> + 15b6: 600c addu r0, r3 + 15b8: 1407 addi r14, r14, 28 + 15ba: 1490 pop r15 + 15bc: 3000 movi r0, 0 + 15be: 1407 addi r14, r14, 28 + 15c0: 1490 pop r15 + 15c2: 9846 ld.w r2, (r14, 0x18) + 15c4: 311f movi r1, 31 + 15c6: 4241 lsli r2, r2, 1 + 15c8: 604e subu r1, r3 + 15ca: 9805 ld.w r0, (r14, 0x14) + 15cc: 7084 lsl r2, r1 + 15ce: 700d lsr r0, r3 + 15d0: 6c08 or r0, r2 + 15d2: 07e6 br 0x159e // 159e <__fixdfsi+0x36> + 15d4: 7fffffff .long 0x7fffffff + +000015d8 <__floatunsidf>: + 15d8: 14d2 push r4-r5, r15 + 15da: 1425 subi r14, r14, 20 + 15dc: 3840 cmpnei r0, 0 + 15de: 3500 movi r5, 0 + 15e0: 6d03 mov r4, r0 + 15e2: b8a1 st.w r5, (r14, 0x4) + 15e4: 0c15 bf 0x160e // 160e <__floatunsidf+0x36> + 15e6: 3303 movi r3, 3 + 15e8: b860 st.w r3, (r14, 0x0) + 15ea: e0000043 bsr 0x1670 // 1670 <__clzsi2> + 15ee: 321d movi r2, 29 + 15f0: 6080 addu r2, r0 + 15f2: 2802 subi r0, 3 + 15f4: 38df btsti r0, 31 + 15f6: 0813 bt 0x161c // 161c <__floatunsidf+0x44> + 15f8: 7100 lsl r4, r0 + 15fa: b884 st.w r4, (r14, 0x10) + 15fc: b8a3 st.w r5, (r14, 0xc) + 15fe: 333c movi r3, 60 + 1600: 60ca subu r3, r2 + 1602: 6c3b mov r0, r14 + 1604: b862 st.w r3, (r14, 0x8) + 1606: e0000055 bsr 0x16b0 // 16b0 <__pack_d> + 160a: 1405 addi r14, r14, 20 + 160c: 1492 pop r4-r5, r15 + 160e: 3302 movi r3, 2 + 1610: 6c3b mov r0, r14 + 1612: b860 st.w r3, (r14, 0x0) + 1614: e000004e bsr 0x16b0 // 16b0 <__pack_d> + 1618: 1405 addi r14, r14, 20 + 161a: 1492 pop r4-r5, r15 + 161c: 311f movi r1, 31 + 161e: 4c61 lsri r3, r4, 1 + 1620: 604a subu r1, r2 + 1622: 70c5 lsr r3, r1 + 1624: 7108 lsl r4, r2 + 1626: b864 st.w r3, (r14, 0x10) + 1628: b883 st.w r4, (r14, 0xc) + 162a: 07ea br 0x15fe // 15fe <__floatunsidf+0x26> + +0000162c <__muldi3>: + 162c: 14c4 push r4-r7 + 162e: 1421 subi r14, r14, 4 + 1630: 7501 zexth r4, r0 + 1632: 48b0 lsri r5, r0, 16 + 1634: 75c9 zexth r7, r2 + 1636: 6d83 mov r6, r0 + 1638: b820 st.w r1, (r14, 0x0) + 163a: 6c13 mov r0, r4 + 163c: 4a30 lsri r1, r2, 16 + 163e: 7c1c mult r0, r7 + 1640: 7d04 mult r4, r1 + 1642: 7dd4 mult r7, r5 + 1644: 611c addu r4, r7 + 1646: 7d44 mult r5, r1 + 1648: 4830 lsri r1, r0, 16 + 164a: 6104 addu r4, r1 + 164c: 65d0 cmphs r4, r7 + 164e: 0804 bt 0x1656 // 1656 <__muldi3+0x2a> + 1650: 3180 movi r1, 128 + 1652: 4129 lsli r1, r1, 9 + 1654: 6144 addu r5, r1 + 1656: 4c30 lsri r1, r4, 16 + 1658: 7cd8 mult r3, r6 + 165a: 6144 addu r5, r1 + 165c: 6c4f mov r1, r3 + 165e: 9860 ld.w r3, (r14, 0x0) + 1660: 7cc8 mult r3, r2 + 1662: 4490 lsli r4, r4, 16 + 1664: 604c addu r1, r3 + 1666: 7401 zexth r0, r0 + 1668: 6010 addu r0, r4 + 166a: 6054 addu r1, r5 + 166c: 1401 addi r14, r14, 4 + 166e: 1484 pop r4-r7 + +00001670 <__clzsi2>: + 1670: 106d lrw r3, 0xffff // 16a4 <__clzsi2+0x34> + 1672: 640c cmphs r3, r0 + 1674: 0c07 bf 0x1682 // 1682 <__clzsi2+0x12> + 1676: 33ff movi r3, 255 + 1678: 640c cmphs r3, r0 + 167a: 0c0f bf 0x1698 // 1698 <__clzsi2+0x28> + 167c: 3320 movi r3, 32 + 167e: 3200 movi r2, 0 + 1680: 0406 br 0x168c // 168c <__clzsi2+0x1c> + 1682: 106a lrw r3, 0xffffff // 16a8 <__clzsi2+0x38> + 1684: 640c cmphs r3, r0 + 1686: 080c bt 0x169e // 169e <__clzsi2+0x2e> + 1688: 3308 movi r3, 8 + 168a: 3218 movi r2, 24 + 168c: 7009 lsr r0, r2 + 168e: 1048 lrw r2, 0xa4a0 // 16ac <__clzsi2+0x3c> + 1690: 6008 addu r0, r2 + 1692: 8040 ld.b r2, (r0, 0x0) + 1694: 5b09 subu r0, r3, r2 + 1696: 783c jmp r15 + 1698: 3318 movi r3, 24 + 169a: 3208 movi r2, 8 + 169c: 07f8 br 0x168c // 168c <__clzsi2+0x1c> + 169e: 3310 movi r3, 16 + 16a0: 3210 movi r2, 16 + 16a2: 07f5 br 0x168c // 168c <__clzsi2+0x1c> + 16a4: 0000ffff .long 0x0000ffff + 16a8: 00ffffff .long 0x00ffffff + 16ac: 0000a4a0 .long 0x0000a4a0 + +000016b0 <__pack_d>: + 16b0: 14c4 push r4-r7 + 16b2: 1422 subi r14, r14, 8 + 16b4: 9060 ld.w r3, (r0, 0x0) + 16b6: 3b01 cmphsi r3, 2 + 16b8: 90c3 ld.w r6, (r0, 0xc) + 16ba: 90e4 ld.w r7, (r0, 0x10) + 16bc: 9021 ld.w r1, (r0, 0x4) + 16be: 0c46 bf 0x174a // 174a <__pack_d+0x9a> + 16c0: 3b44 cmpnei r3, 4 + 16c2: 0c40 bf 0x1742 // 1742 <__pack_d+0x92> + 16c4: 3b42 cmpnei r3, 2 + 16c6: 0c27 bf 0x1714 // 1714 <__pack_d+0x64> + 16c8: 6cdb mov r3, r6 + 16ca: 6cdc or r3, r7 + 16cc: 3b40 cmpnei r3, 0 + 16ce: 0c23 bf 0x1714 // 1714 <__pack_d+0x64> + 16d0: 9062 ld.w r3, (r0, 0x8) + 16d2: 125a lrw r2, 0xfffffc02 // 1838 <__pack_d+0x188> + 16d4: 648d cmplt r3, r2 + 16d6: 0855 bt 0x1780 // 1780 <__pack_d+0xd0> + 16d8: 1259 lrw r2, 0x3ff // 183c <__pack_d+0x18c> + 16da: 64c9 cmplt r2, r3 + 16dc: 0833 bt 0x1742 // 1742 <__pack_d+0x92> + 16de: 34ff movi r4, 255 + 16e0: 3500 movi r5, 0 + 16e2: 6918 and r4, r6 + 16e4: 695c and r5, r7 + 16e6: 3280 movi r2, 128 + 16e8: 6492 cmpne r4, r2 + 16ea: 0c3f bf 0x1768 // 1768 <__pack_d+0xb8> + 16ec: 347f movi r4, 127 + 16ee: 3500 movi r5, 0 + 16f0: 6599 cmplt r6, r6 + 16f2: 6191 addc r6, r4 + 16f4: 61d5 addc r7, r5 + 16f6: 1253 lrw r2, 0x1fffffff // 1840 <__pack_d+0x190> + 16f8: 65c8 cmphs r2, r7 + 16fa: 0c1a bf 0x172e // 172e <__pack_d+0x7e> + 16fc: 1290 lrw r4, 0x3ff // 183c <__pack_d+0x18c> + 16fe: 610c addu r4, r3 + 1700: 4718 lsli r0, r7, 24 + 1702: 4f68 lsri r3, r7, 8 + 1704: 4e48 lsri r2, r6, 8 + 1706: 6c80 or r2, r0 + 1708: 430c lsli r0, r3, 12 + 170a: 486c lsri r3, r0, 12 + 170c: 120e lrw r0, 0x7ff // 1844 <__pack_d+0x194> + 170e: 6d4b mov r5, r2 + 1710: 6900 and r4, r0 + 1712: 0404 br 0x171a // 171a <__pack_d+0x6a> + 1714: 3400 movi r4, 0 + 1716: 3200 movi r2, 0 + 1718: 3300 movi r3, 0 + 171a: 430c lsli r0, r3, 12 + 171c: 480c lsri r0, r0, 12 + 171e: 4474 lsli r3, r4, 20 + 1720: 419f lsli r4, r1, 31 + 1722: 6c43 mov r1, r0 + 1724: 6c4c or r1, r3 + 1726: 6c50 or r1, r4 + 1728: 6c0b mov r0, r2 + 172a: 1402 addi r14, r14, 8 + 172c: 1484 pop r4-r7 + 172e: 479f lsli r4, r7, 31 + 1730: 4e01 lsri r0, r6, 1 + 1732: 6d00 or r4, r0 + 1734: 6d93 mov r6, r4 + 1736: 3480 movi r4, 128 + 1738: 4f41 lsri r2, r7, 1 + 173a: 4483 lsli r4, r4, 3 + 173c: 6dcb mov r7, r2 + 173e: 610c addu r4, r3 + 1740: 07e0 br 0x1700 // 1700 <__pack_d+0x50> + 1742: 1281 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1744: 3200 movi r2, 0 + 1746: 3300 movi r3, 0 + 1748: 07e9 br 0x171a // 171a <__pack_d+0x6a> + 174a: 4e08 lsri r0, r6, 8 + 174c: 4798 lsli r4, r7, 24 + 174e: 6d00 or r4, r0 + 1750: 3580 movi r5, 128 + 1752: 4705 lsli r0, r7, 5 + 1754: 6c93 mov r2, r4 + 1756: 486d lsri r3, r0, 13 + 1758: 3400 movi r4, 0 + 175a: 45ac lsli r5, r5, 12 + 175c: 6c90 or r2, r4 + 175e: 6cd4 or r3, r5 + 1760: 430c lsli r0, r3, 12 + 1762: 486c lsri r3, r0, 12 + 1764: 1198 lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 1766: 07da br 0x171a // 171a <__pack_d+0x6a> + 1768: 3d40 cmpnei r5, 0 + 176a: 0bc1 bt 0x16ec // 16ec <__pack_d+0x3c> + 176c: 4241 lsli r2, r2, 1 + 176e: 6898 and r2, r6 + 1770: 3a40 cmpnei r2, 0 + 1772: 0fc2 bf 0x16f6 // 16f6 <__pack_d+0x46> + 1774: 3480 movi r4, 128 + 1776: 3500 movi r5, 0 + 1778: 6599 cmplt r6, r6 + 177a: 6191 addc r6, r4 + 177c: 61d5 addc r7, r5 + 177e: 07bc br 0x16f6 // 16f6 <__pack_d+0x46> + 1780: 5a6d subu r3, r2, r3 + 1782: 3238 movi r2, 56 + 1784: 64c9 cmplt r2, r3 + 1786: 0bc7 bt 0x1714 // 1714 <__pack_d+0x64> + 1788: 3200 movi r2, 0 + 178a: 2a1f subi r2, 32 + 178c: 608c addu r2, r3 + 178e: 3adf btsti r2, 31 + 1790: 0848 bt 0x1820 // 1820 <__pack_d+0x170> + 1792: 6c1f mov r0, r7 + 1794: 7009 lsr r0, r2 + 1796: b800 st.w r0, (r14, 0x0) + 1798: 3000 movi r0, 0 + 179a: b801 st.w r0, (r14, 0x4) + 179c: 3adf btsti r2, 31 + 179e: 083c bt 0x1816 // 1816 <__pack_d+0x166> + 17a0: 3301 movi r3, 1 + 17a2: 70c8 lsl r3, r2 + 17a4: 6d4f mov r5, r3 + 17a6: 3300 movi r3, 0 + 17a8: 6d0f mov r4, r3 + 17aa: 3200 movi r2, 0 + 17ac: 3300 movi r3, 0 + 17ae: 2a00 subi r2, 1 + 17b0: 2b00 subi r3, 1 + 17b2: 6511 cmplt r4, r4 + 17b4: 6109 addc r4, r2 + 17b6: 614d addc r5, r3 + 17b8: 6990 and r6, r4 + 17ba: 69d4 and r7, r5 + 17bc: 6d9c or r6, r7 + 17be: 3e40 cmpnei r6, 0 + 17c0: 3000 movi r0, 0 + 17c2: 6001 addc r0, r0 + 17c4: 6c83 mov r2, r0 + 17c6: 3300 movi r3, 0 + 17c8: 9880 ld.w r4, (r14, 0x0) + 17ca: 98a1 ld.w r5, (r14, 0x4) + 17cc: 6d08 or r4, r2 + 17ce: 6d4c or r5, r3 + 17d0: 32ff movi r2, 255 + 17d2: 3300 movi r3, 0 + 17d4: 6890 and r2, r4 + 17d6: 68d4 and r3, r5 + 17d8: 3080 movi r0, 128 + 17da: 640a cmpne r2, r0 + 17dc: 081b bt 0x1812 // 1812 <__pack_d+0x162> + 17de: 3b40 cmpnei r3, 0 + 17e0: 0819 bt 0x1812 // 1812 <__pack_d+0x162> + 17e2: 3380 movi r3, 128 + 17e4: 4361 lsli r3, r3, 1 + 17e6: 68d0 and r3, r4 + 17e8: 3b40 cmpnei r3, 0 + 17ea: 0c06 bf 0x17f6 // 17f6 <__pack_d+0x146> + 17ec: 3280 movi r2, 128 + 17ee: 3300 movi r3, 0 + 17f0: 6511 cmplt r4, r4 + 17f2: 6109 addc r4, r2 + 17f4: 614d addc r5, r3 + 17f6: 4518 lsli r0, r5, 24 + 17f8: 4c48 lsri r2, r4, 8 + 17fa: 4d68 lsri r3, r5, 8 + 17fc: 1093 lrw r4, 0xfffffff // 1848 <__pack_d+0x198> + 17fe: 6c80 or r2, r0 + 1800: 6550 cmphs r4, r5 + 1802: 430c lsli r0, r3, 12 + 1804: 486c lsri r3, r0, 12 + 1806: 3001 movi r0, 1 + 1808: 0c02 bf 0x180c // 180c <__pack_d+0x15c> + 180a: 3000 movi r0, 0 + 180c: 108e lrw r4, 0x7ff // 1844 <__pack_d+0x194> + 180e: 6900 and r4, r0 + 1810: 0785 br 0x171a // 171a <__pack_d+0x6a> + 1812: 327f movi r2, 127 + 1814: 07ed br 0x17ee // 17ee <__pack_d+0x13e> + 1816: 3201 movi r2, 1 + 1818: 708c lsl r2, r3 + 181a: 3500 movi r5, 0 + 181c: 6d0b mov r4, r2 + 181e: 07c6 br 0x17aa // 17aa <__pack_d+0xfa> + 1820: 341f movi r4, 31 + 1822: 610e subu r4, r3 + 1824: 4701 lsli r0, r7, 1 + 1826: 7010 lsl r0, r4 + 1828: 6d1b mov r4, r6 + 182a: 710d lsr r4, r3 + 182c: 6d00 or r4, r0 + 182e: 6c1f mov r0, r7 + 1830: 700d lsr r0, r3 + 1832: b880 st.w r4, (r14, 0x0) + 1834: b801 st.w r0, (r14, 0x4) + 1836: 07b3 br 0x179c // 179c <__pack_d+0xec> + 1838: fffffc02 .long 0xfffffc02 + 183c: 000003ff .long 0x000003ff + 1840: 1fffffff .long 0x1fffffff + 1844: 000007ff .long 0x000007ff + 1848: 0fffffff .long 0x0fffffff + +0000184c <__unpack_d>: + 184c: 1423 subi r14, r14, 12 + 184e: b880 st.w r4, (r14, 0x0) + 1850: b8c1 st.w r6, (r14, 0x4) + 1852: b8e2 st.w r7, (r14, 0x8) + 1854: 8843 ld.h r2, (r0, 0x6) + 1856: 4251 lsli r2, r2, 17 + 1858: 9061 ld.w r3, (r0, 0x4) + 185a: 9080 ld.w r4, (r0, 0x0) + 185c: 4a55 lsri r2, r2, 21 + 185e: 8007 ld.b r0, (r0, 0x7) + 1860: 436c lsli r3, r3, 12 + 1862: 4807 lsri r0, r0, 7 + 1864: 3a40 cmpnei r2, 0 + 1866: 4b6c lsri r3, r3, 12 + 1868: b101 st.w r0, (r1, 0x4) + 186a: 0819 bt 0x189c // 189c <__unpack_d+0x50> + 186c: 6c93 mov r2, r4 + 186e: 6c8c or r2, r3 + 1870: 3a40 cmpnei r2, 0 + 1872: 0c2d bf 0x18cc // 18cc <__unpack_d+0x80> + 1874: 4c58 lsri r2, r4, 24 + 1876: 4368 lsli r3, r3, 8 + 1878: 6cc8 or r3, r2 + 187a: 3203 movi r2, 3 + 187c: 4408 lsli r0, r4, 8 + 187e: b140 st.w r2, (r1, 0x0) + 1880: 1181 lrw r4, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 1882: 11c2 lrw r6, 0xfffffff // 1908 <__unpack_d+0xbc> + 1884: 485f lsri r2, r0, 31 + 1886: 4361 lsli r3, r3, 1 + 1888: 6cc8 or r3, r2 + 188a: 64d8 cmphs r6, r3 + 188c: 6c93 mov r2, r4 + 188e: 4001 lsli r0, r0, 1 + 1890: 2c00 subi r4, 1 + 1892: 0bf9 bt 0x1884 // 1884 <__unpack_d+0x38> + 1894: b142 st.w r2, (r1, 0x8) + 1896: b103 st.w r0, (r1, 0xc) + 1898: b164 st.w r3, (r1, 0x10) + 189a: 0414 br 0x18c2 // 18c2 <__unpack_d+0x76> + 189c: 101c lrw r0, 0x7ff // 190c <__unpack_d+0xc0> + 189e: 640a cmpne r2, r0 + 18a0: 0c19 bf 0x18d2 // 18d2 <__unpack_d+0x86> + 18a2: 1019 lrw r0, 0xfffffc01 // 1904 <__unpack_d+0xb8> + 18a4: 6080 addu r2, r0 + 18a6: b142 st.w r2, (r1, 0x8) + 18a8: 3203 movi r2, 3 + 18aa: 43e8 lsli r7, r3, 8 + 18ac: b140 st.w r2, (r1, 0x0) + 18ae: 3380 movi r3, 128 + 18b0: 4c58 lsri r2, r4, 24 + 18b2: 6dc8 or r7, r2 + 18b4: 44c8 lsli r6, r4, 8 + 18b6: 3200 movi r2, 0 + 18b8: 4375 lsli r3, r3, 21 + 18ba: 6d88 or r6, r2 + 18bc: 6dcc or r7, r3 + 18be: b1c3 st.w r6, (r1, 0xc) + 18c0: b1e4 st.w r7, (r1, 0x10) + 18c2: 98e2 ld.w r7, (r14, 0x8) + 18c4: 98c1 ld.w r6, (r14, 0x4) + 18c6: 9880 ld.w r4, (r14, 0x0) + 18c8: 1403 addi r14, r14, 12 + 18ca: 783c jmp r15 + 18cc: 3302 movi r3, 2 + 18ce: b160 st.w r3, (r1, 0x0) + 18d0: 07f9 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18d2: 6c93 mov r2, r4 + 18d4: 6c8c or r2, r3 + 18d6: 3a40 cmpnei r2, 0 + 18d8: 0c10 bf 0x18f8 // 18f8 <__unpack_d+0xac> + 18da: 3280 movi r2, 128 + 18dc: 424c lsli r2, r2, 12 + 18de: 688c and r2, r3 + 18e0: 3a40 cmpnei r2, 0 + 18e2: 0c0e bf 0x18fe // 18fe <__unpack_d+0xb2> + 18e4: 3201 movi r2, 1 + 18e6: b140 st.w r2, (r1, 0x0) + 18e8: 4c58 lsri r2, r4, 24 + 18ea: 4368 lsli r3, r3, 8 + 18ec: 6cc8 or r3, r2 + 18ee: 4408 lsli r0, r4, 8 + 18f0: 3b9b bclri r3, 27 + 18f2: b103 st.w r0, (r1, 0xc) + 18f4: b164 st.w r3, (r1, 0x10) + 18f6: 07e6 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18f8: 3304 movi r3, 4 + 18fa: b160 st.w r3, (r1, 0x0) + 18fc: 07e3 br 0x18c2 // 18c2 <__unpack_d+0x76> + 18fe: b140 st.w r2, (r1, 0x0) + 1900: 07f4 br 0x18e8 // 18e8 <__unpack_d+0x9c> + 1902: 0000 bkpt + 1904: fffffc01 .long 0xfffffc01 + 1908: 0fffffff .long 0x0fffffff + 190c: 000007ff .long 0x000007ff + +00001910 <__fpcmp_parts_d>: + 1910: 14c1 push r4 + 1912: 9060 ld.w r3, (r0, 0x0) + 1914: 3b01 cmphsi r3, 2 + 1916: 0c12 bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1918: 9140 ld.w r2, (r1, 0x0) + 191a: 3a01 cmphsi r2, 2 + 191c: 0c0f bf 0x193a // 193a <__fpcmp_parts_d+0x2a> + 191e: 3b44 cmpnei r3, 4 + 1920: 0c17 bf 0x194e // 194e <__fpcmp_parts_d+0x3e> + 1922: 3a44 cmpnei r2, 4 + 1924: 0c0f bf 0x1942 // 1942 <__fpcmp_parts_d+0x32> + 1926: 3b42 cmpnei r3, 2 + 1928: 0c0b bf 0x193e // 193e <__fpcmp_parts_d+0x2e> + 192a: 3a42 cmpnei r2, 2 + 192c: 0c13 bf 0x1952 // 1952 <__fpcmp_parts_d+0x42> + 192e: 9061 ld.w r3, (r0, 0x4) + 1930: 9141 ld.w r2, (r1, 0x4) + 1932: 648e cmpne r3, r2 + 1934: 0c14 bf 0x195c // 195c <__fpcmp_parts_d+0x4c> + 1936: 3b40 cmpnei r3, 0 + 1938: 0808 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 193a: 3001 movi r0, 1 + 193c: 1481 pop r4 + 193e: 3a42 cmpnei r2, 2 + 1940: 0c28 bf 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 1942: 9161 ld.w r3, (r1, 0x4) + 1944: 3b40 cmpnei r3, 0 + 1946: 0bfa bt 0x193a // 193a <__fpcmp_parts_d+0x2a> + 1948: 3000 movi r0, 0 + 194a: 2800 subi r0, 1 + 194c: 1481 pop r4 + 194e: 3a44 cmpnei r2, 4 + 1950: 0c22 bf 0x1994 // 1994 <__fpcmp_parts_d+0x84> + 1952: 9061 ld.w r3, (r0, 0x4) + 1954: 3b40 cmpnei r3, 0 + 1956: 0bf9 bt 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1958: 3001 movi r0, 1 + 195a: 07f1 br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 195c: 9082 ld.w r4, (r0, 0x8) + 195e: 9142 ld.w r2, (r1, 0x8) + 1960: 6509 cmplt r2, r4 + 1962: 0bea bt 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1964: 6491 cmplt r4, r2 + 1966: 080d bt 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1968: 9044 ld.w r2, (r0, 0x10) + 196a: 9083 ld.w r4, (r0, 0xc) + 196c: 9103 ld.w r0, (r1, 0xc) + 196e: 9124 ld.w r1, (r1, 0x10) + 1970: 6484 cmphs r1, r2 + 1972: 0fe2 bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 1974: 644a cmpne r2, r1 + 1976: 0803 bt 0x197c // 197c <__fpcmp_parts_d+0x6c> + 1978: 6500 cmphs r0, r4 + 197a: 0fde bf 0x1936 // 1936 <__fpcmp_parts_d+0x26> + 197c: 6448 cmphs r2, r1 + 197e: 0805 bt 0x1988 // 1988 <__fpcmp_parts_d+0x78> + 1980: 3b40 cmpnei r3, 0 + 1982: 0fe3 bf 0x1948 // 1948 <__fpcmp_parts_d+0x38> + 1984: 3001 movi r0, 1 + 1986: 07db br 0x193c // 193c <__fpcmp_parts_d+0x2c> + 1988: 6486 cmpne r1, r2 + 198a: 0803 bt 0x1990 // 1990 <__fpcmp_parts_d+0x80> + 198c: 6410 cmphs r4, r0 + 198e: 0ff9 bf 0x1980 // 1980 <__fpcmp_parts_d+0x70> + 1990: 3000 movi r0, 0 + 1992: 1481 pop r4 + 1994: 9161 ld.w r3, (r1, 0x4) + 1996: 9041 ld.w r2, (r0, 0x4) + 1998: 5b09 subu r0, r3, r2 + 199a: 1481 pop r4 + +0000199c <__memset_fast>: + 199c: 14c3 push r4-r6 + 199e: 7444 zextb r1, r1 + 19a0: 3a40 cmpnei r2, 0 + 19a2: 0c1f bf 0x19e0 // 19e0 <__memset_fast+0x44> + 19a4: 6d43 mov r5, r0 + 19a6: 6d03 mov r4, r0 + 19a8: 3603 movi r6, 3 + 19aa: 6918 and r4, r6 + 19ac: 3c40 cmpnei r4, 0 + 19ae: 0c1a bf 0x19e2 // 19e2 <__memset_fast+0x46> + 19b0: a520 st.b r1, (r5, 0x0) + 19b2: 2a00 subi r2, 1 + 19b4: 3a40 cmpnei r2, 0 + 19b6: 0c15 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 19b8: 2500 addi r5, 1 + 19ba: 6d17 mov r4, r5 + 19bc: 3603 movi r6, 3 + 19be: 6918 and r4, r6 + 19c0: 3c40 cmpnei r4, 0 + 19c2: 0c10 bf 0x19e2 // 19e2 <__memset_fast+0x46> + 19c4: a520 st.b r1, (r5, 0x0) + 19c6: 2a00 subi r2, 1 + 19c8: 3a40 cmpnei r2, 0 + 19ca: 0c0b bf 0x19e0 // 19e0 <__memset_fast+0x44> + 19cc: 2500 addi r5, 1 + 19ce: 6d17 mov r4, r5 + 19d0: 3603 movi r6, 3 + 19d2: 6918 and r4, r6 + 19d4: 3c40 cmpnei r4, 0 + 19d6: 0c06 bf 0x19e2 // 19e2 <__memset_fast+0x46> + 19d8: a520 st.b r1, (r5, 0x0) + 19da: 2a00 subi r2, 1 + 19dc: 2500 addi r5, 1 + 19de: 0402 br 0x19e2 // 19e2 <__memset_fast+0x46> + 19e0: 1483 pop r4-r6 + 19e2: 4168 lsli r3, r1, 8 + 19e4: 6c4c or r1, r3 + 19e6: 4170 lsli r3, r1, 16 + 19e8: 6c4c or r1, r3 + 19ea: 3a2f cmplti r2, 16 + 19ec: 0809 bt 0x19fe // 19fe <__memset_fast+0x62> + 19ee: b520 st.w r1, (r5, 0x0) + 19f0: b521 st.w r1, (r5, 0x4) + 19f2: b522 st.w r1, (r5, 0x8) + 19f4: b523 st.w r1, (r5, 0xc) + 19f6: 2a0f subi r2, 16 + 19f8: 250f addi r5, 16 + 19fa: 3a2f cmplti r2, 16 + 19fc: 0ff9 bf 0x19ee // 19ee <__memset_fast+0x52> + 19fe: 3a23 cmplti r2, 4 + 1a00: 0806 bt 0x1a0c // 1a0c <__memset_fast+0x70> + 1a02: 2a03 subi r2, 4 + 1a04: b520 st.w r1, (r5, 0x0) + 1a06: 2503 addi r5, 4 + 1a08: 3a23 cmplti r2, 4 + 1a0a: 0ffc bf 0x1a02 // 1a02 <__memset_fast+0x66> + 1a0c: 3a40 cmpnei r2, 0 + 1a0e: 0fe9 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 1a10: 2a00 subi r2, 1 + 1a12: a520 st.b r1, (r5, 0x0) + 1a14: 3a40 cmpnei r2, 0 + 1a16: 0fe5 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 1a18: 2a00 subi r2, 1 + 1a1a: a521 st.b r1, (r5, 0x1) + 1a1c: 3a40 cmpnei r2, 0 + 1a1e: 0fe1 bf 0x19e0 // 19e0 <__memset_fast+0x44> + 1a20: a522 st.b r1, (r5, 0x2) + 1a22: 1483 pop r4-r6 + +00001a24 <__memcpy_fast>: + 1a24: 14c3 push r4-r6 + 1a26: 6d83 mov r6, r0 + 1a28: 6d07 mov r4, r1 + 1a2a: 6d18 or r4, r6 + 1a2c: 3303 movi r3, 3 + 1a2e: 690c and r4, r3 + 1a30: 3c40 cmpnei r4, 0 + 1a32: 0c0b bf 0x1a48 // 1a48 <__memcpy_fast+0x24> + 1a34: 3a40 cmpnei r2, 0 + 1a36: 0c08 bf 0x1a46 // 1a46 <__memcpy_fast+0x22> + 1a38: 8160 ld.b r3, (r1, 0x0) + 1a3a: 2100 addi r1, 1 + 1a3c: 2a00 subi r2, 1 + 1a3e: a660 st.b r3, (r6, 0x0) + 1a40: 2600 addi r6, 1 + 1a42: 3a40 cmpnei r2, 0 + 1a44: 0bfa bt 0x1a38 // 1a38 <__memcpy_fast+0x14> + 1a46: 1483 pop r4-r6 + 1a48: 3a2f cmplti r2, 16 + 1a4a: 080e bt 0x1a66 // 1a66 <__memcpy_fast+0x42> + 1a4c: 91a0 ld.w r5, (r1, 0x0) + 1a4e: 9161 ld.w r3, (r1, 0x4) + 1a50: 9182 ld.w r4, (r1, 0x8) + 1a52: b6a0 st.w r5, (r6, 0x0) + 1a54: 91a3 ld.w r5, (r1, 0xc) + 1a56: b661 st.w r3, (r6, 0x4) + 1a58: b682 st.w r4, (r6, 0x8) + 1a5a: b6a3 st.w r5, (r6, 0xc) + 1a5c: 2a0f subi r2, 16 + 1a5e: 210f addi r1, 16 + 1a60: 260f addi r6, 16 + 1a62: 3a2f cmplti r2, 16 + 1a64: 0ff4 bf 0x1a4c // 1a4c <__memcpy_fast+0x28> + 1a66: 3a23 cmplti r2, 4 + 1a68: 0808 bt 0x1a78 // 1a78 <__memcpy_fast+0x54> + 1a6a: 9160 ld.w r3, (r1, 0x0) + 1a6c: 2a03 subi r2, 4 + 1a6e: 2103 addi r1, 4 + 1a70: b660 st.w r3, (r6, 0x0) + 1a72: 2603 addi r6, 4 + 1a74: 3a23 cmplti r2, 4 + 1a76: 0ffa bf 0x1a6a // 1a6a <__memcpy_fast+0x46> + 1a78: 3a40 cmpnei r2, 0 + 1a7a: 0fe6 bf 0x1a46 // 1a46 <__memcpy_fast+0x22> + 1a7c: 8160 ld.b r3, (r1, 0x0) + 1a7e: 2100 addi r1, 1 + 1a80: 2a00 subi r2, 1 + 1a82: a660 st.b r3, (r6, 0x0) + 1a84: 2600 addi r6, 1 + 1a86: 07f9 br 0x1a78 // 1a78 <__memcpy_fast+0x54> + +00001a88 <__GI_strncmp>: + 1a88: 14c1 push r4 + 1a8a: 6cc3 mov r3, r0 + 1a8c: 6080 addu r2, r0 + 1a8e: 040c br 0x1aa6 // 1aa6 <__GI_strncmp+0x1e> + 1a90: 8380 ld.b r4, (r3, 0x0) + 1a92: 8100 ld.b r0, (r1, 0x0) + 1a94: 6012 subu r0, r4 + 1a96: 6c02 nor r0, r0 + 1a98: 2000 addi r0, 1 + 1a9a: 3840 cmpnei r0, 0 + 1a9c: 0808 bt 0x1aac // 1aac <__GI_strncmp+0x24> + 1a9e: 3c40 cmpnei r4, 0 + 1aa0: 0c06 bf 0x1aac // 1aac <__GI_strncmp+0x24> + 1aa2: 2300 addi r3, 1 + 1aa4: 2100 addi r1, 1 + 1aa6: 648c cmphs r3, r2 + 1aa8: 0ff4 bf 0x1a90 // 1a90 <__GI_strncmp+0x8> + 1aaa: 3000 movi r0, 0 + 1aac: 1481 pop r4 + +Disassembly of section .text.__main: + +00001ab0 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1ab0: 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 ) { + 1ab2: 1009 lrw r0, 0x20000000 // 1ad4 <__main+0x24> + 1ab4: 1029 lrw r1, 0xa9d8 // 1ad8 <__main+0x28> + 1ab6: 6442 cmpne r0, r1 + 1ab8: 0c05 bf 0x1ac2 // 1ac2 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1aba: 1049 lrw r2, 0x200000b0 // 1adc <__main+0x2c> + 1abc: 6082 subu r2, r0 + 1abe: e3ffffb3 bsr 0x1a24 // 1a24 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1ac2: 1048 lrw r2, 0x20000c00 // 1ae0 <__main+0x30> + 1ac4: 1008 lrw r0, 0x200000b0 // 1ae4 <__main+0x34> + 1ac6: 640a cmpne r2, r0 + 1ac8: 0c05 bf 0x1ad2 // 1ad2 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1aca: 6082 subu r2, r0 + 1acc: 3100 movi r1, 0 + 1ace: e3ffff67 bsr 0x199c // 199c <__memset_fast> + } + + +} + 1ad2: 1490 pop r15 + 1ad4: 20000000 .long 0x20000000 + 1ad8: 0000a9d8 .long 0x0000a9d8 + 1adc: 200000b0 .long 0x200000b0 + 1ae0: 20000c00 .long 0x20000c00 + 1ae4: 200000b0 .long 0x200000b0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001ae8 : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1ae8: 3848 cmpnei r0, 8 + 1aea: 080a bt 0x1afe // 1afe + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1aec: 107a lrw r3, 0x2000004c // 1b54 + 1aee: 32ff movi r2, 255 + 1af0: 9320 ld.w r1, (r3, 0x0) + 1af2: 9160 ld.w r3, (r1, 0x0) + 1af4: 424c lsli r2, r2, 12 + 1af6: 68c9 andn r3, r2 + 1af8: 3bae bseti r3, 14 + 1afa: 3bb2 bseti r3, 18 + 1afc: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1afe: 1077 lrw r3, 0x2000005c // 1b58 + 1b00: 9360 ld.w r3, (r3, 0x0) + 1b02: 9341 ld.w r2, (r3, 0x4) + 1b04: 6c80 or r2, r0 + 1b06: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1b08: 9343 ld.w r2, (r3, 0xc) + 1b0a: 6880 and r2, r0 + 1b0c: 3a40 cmpnei r2, 0 + 1b0e: 0ffd bf 0x1b08 // 1b08 + switch(ENDIS_X) + 1b10: 3842 cmpnei r0, 2 + 1b12: 0807 bt 0x1b20 // 1b20 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1b14: 3102 movi r1, 2 + 1b16: 9344 ld.w r2, (r3, 0x10) + 1b18: 6884 and r2, r1 + 1b1a: 3a40 cmpnei r2, 0 + 1b1c: 0ffd bf 0x1b16 // 1b16 + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1b1e: 783c jmp r15 + switch(ENDIS_X) + 1b20: 3802 cmphsi r0, 3 + 1b22: 0809 bt 0x1b34 // 1b34 + 1b24: 3841 cmpnei r0, 1 + 1b26: 0bfc bt 0x1b1e // 1b1e + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1b28: 3101 movi r1, 1 + 1b2a: 9344 ld.w r2, (r3, 0x10) + 1b2c: 6884 and r2, r1 + 1b2e: 3a40 cmpnei r2, 0 + 1b30: 0ffd bf 0x1b2a // 1b2a + 1b32: 07f6 br 0x1b1e // 1b1e + switch(ENDIS_X) + 1b34: 3848 cmpnei r0, 8 + 1b36: 0807 bt 0x1b44 // 1b44 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1b38: 3108 movi r1, 8 + 1b3a: 9344 ld.w r2, (r3, 0x10) + 1b3c: 6884 and r2, r1 + 1b3e: 3a40 cmpnei r2, 0 + 1b40: 0ffd bf 0x1b3a // 1b3a + 1b42: 07ee br 0x1b1e // 1b1e + switch(ENDIS_X) + 1b44: 3850 cmpnei r0, 16 + 1b46: 0bec bt 0x1b1e // 1b1e + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1b48: 3110 movi r1, 16 + 1b4a: 9344 ld.w r2, (r3, 0x10) + 1b4c: 6884 and r2, r1 + 1b4e: 3a40 cmpnei r2, 0 + 1b50: 0ffd bf 0x1b4a // 1b4a + 1b52: 07e6 br 0x1b1e // 1b1e + 1b54: 2000004c .long 0x2000004c + 1b58: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001b5c : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1b5c: 106c lrw r3, 0x2000005c // 1b8c + 1b5e: 104d lrw r2, 0xffff // 1b90 + 1b60: 9360 ld.w r3, (r3, 0x0) + 1b62: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1b64: 104c lrw r2, 0xffffff // 1b94 + 1b66: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1b68: 104c lrw r2, 0xd22d0000 // 1b98 + 1b6a: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1b6c: 104c lrw r2, 0x70ff3bff // 1b9c + 1b6e: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1b70: 320a movi r2, 10 + 1b72: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b74: 102b lrw r1, 0x70c // 1ba0 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1b76: 237f addi r3, 128 + 1b78: 3200 movi r2, 0 + 1b7a: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1b7c: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1b7e: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1b80: 1029 lrw r1, 0x3fe // 1ba4 + 1b82: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1b84: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1b86: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1b88: b35f st.w r2, (r3, 0x7c) +} + 1b8a: 783c jmp r15 + 1b8c: 2000005c .long 0x2000005c + 1b90: 0000ffff .long 0x0000ffff + 1b94: 00ffffff .long 0x00ffffff + 1b98: d22d0000 .long 0xd22d0000 + 1b9c: 70ff3bff .long 0x70ff3bff + 1ba0: 0000070c .long 0x0000070c + 1ba4: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001ba8 : +{ + 1ba8: 14d0 push r15 + if (NewState != DISABLE) + 1baa: 3840 cmpnei r0, 0 + 1bac: 0c05 bf 0x1bb6 // 1bb6 + 1bae: 6c07 mov r0, r1 + 1bb0: e3ffff9c bsr 0x1ae8 // 1ae8 +} + 1bb4: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1bb6: 1068 lrw r3, 0x2000005c // 1bd4 + 1bb8: 9360 ld.w r3, (r3, 0x0) + 1bba: 9342 ld.w r2, (r3, 0x8) + 1bbc: 6c84 or r2, r1 + 1bbe: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1bc0: 9343 ld.w r2, (r3, 0xc) + 1bc2: 6884 and r2, r1 + 1bc4: 3a40 cmpnei r2, 0 + 1bc6: 0bfd bt 0x1bc0 // 1bc0 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1bc8: 237f addi r3, 128 + 1bca: 9301 ld.w r0, (r3, 0x4) + 1bcc: 6c40 or r1, r0 + 1bce: b321 st.w r1, (r3, 0x4) +} + 1bd0: 07f2 br 0x1bb4 // 1bb4 + 1bd2: 0000 bkpt + 1bd4: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001bd8 : +//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 ) +{ + 1bd8: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1bda: 3b48 cmpnei r3, 8 + 1bdc: 0828 bt 0x1c2c // 1c2c + { + IFC->CEDR=0X01; //CLKEN + 1bde: 109d lrw r4, 0x20000060 // 1c50 + 1be0: 3501 movi r5, 1 + 1be2: 9480 ld.w r4, (r4, 0x0) + 1be4: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1be6: 3504 movi r5, 4 + 1be8: 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)) + 1bea: 5b83 subi r4, r3, 1 + 1bec: 3c01 cmphsi r4, 2 + 1bee: 0c2b bf 0x1c44 // 1c44 + { + 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)) + 1bf0: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1bf2: 3c04 cmphsi r4, 5 + 1bf4: 0c03 bf 0x1bfa // 1bfa + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1bf6: 3b4b cmpnei r3, 11 + 1bf8: 0807 bt 0x1c06 // 1c06 + { + IFC->CEDR=0X01; //CLKEN + 1bfa: 1076 lrw r3, 0x20000060 // 1c50 + 1bfc: 3401 movi r4, 1 + 1bfe: 9360 ld.w r3, (r3, 0x0) + 1c00: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1c02: 3400 movi r4, 0 + 1c04: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c06: 1094 lrw r4, 0xd22d0000 // 1c54 + 1c08: 6c10 or r0, r4 + 1c0a: 1074 lrw r3, 0x2000005c // 1c58 + 1c0c: 6c40 or r1, r0 + 1c0e: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c10: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1c12: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1c14: 4001 lsli r0, r0, 1 + 1c16: 9324 ld.w r1, (r3, 0x10) + 1c18: 6840 and r1, r0 + 1c1a: 3940 cmpnei r1, 0 + 1c1c: 0ffd bf 0x1c16 // 1c16 + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1c1e: 1030 lrw r1, 0xc33c0000 // 1c5c + 1c20: 6c48 or r1, r2 + 1c22: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1c24: 9328 ld.w r1, (r3, 0x20) + 1c26: 644a cmpne r2, r1 + 1c28: 0bfe bt 0x1c24 // 1c24 +} + 1c2a: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1c2c: 3b40 cmpnei r3, 0 + 1c2e: 0c03 bf 0x1c34 // 1c34 + 1c30: 3b49 cmpnei r3, 9 + 1c32: 0807 bt 0x1c40 // 1c40 + IFC->CEDR=0X01; //CLKEN + 1c34: 1087 lrw r4, 0x20000060 // 1c50 + 1c36: 3501 movi r5, 1 + 1c38: 9480 ld.w r4, (r4, 0x0) + 1c3a: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1c3c: 3502 movi r5, 2 + 1c3e: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1c40: 3b4a cmpnei r3, 10 + 1c42: 0bd4 bt 0x1bea // 1bea + IFC->CEDR=0X01; //CLKEN + 1c44: 1083 lrw r4, 0x20000060 // 1c50 + 1c46: 3501 movi r5, 1 + 1c48: 9480 ld.w r4, (r4, 0x0) + 1c4a: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1c4c: b4a5 st.w r5, (r4, 0x14) + 1c4e: 07d1 br 0x1bf0 // 1bf0 + 1c50: 20000060 .long 0x20000060 + 1c54: d22d0000 .long 0xd22d0000 + 1c58: 2000005c .long 0x2000005c + 1c5c: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001c60 : +//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) +{ + 1c60: 14d1 push r4, r15 + 1c62: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1c64: 3110 movi r1, 16 + 1c66: 3000 movi r0, 0 + 1c68: e3ffffa0 bsr 0x1ba8 // 1ba8 + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1c6c: 1066 lrw r3, 0x2000005c // 1c84 + 1c6e: 9360 ld.w r3, (r3, 0x0) + 1c70: 9319 ld.w r0, (r3, 0x64) + 1c72: 3884 bclri r0, 4 + 1c74: 3885 bclri r0, 5 + 1c76: 6c10 or r0, r4 + 1c78: b319 st.w r0, (r3, 0x64) + 1c7a: 3010 movi r0, 16 + 1c7c: e3ffff36 bsr 0x1ae8 // 1ae8 + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1c80: 1491 pop r4, r15 + 1c82: 0000 bkpt + 1c84: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001c88 : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1c88: 106c lrw r3, 0x2000005c // 1cb8 + if(NewState != DISABLE) + 1c8a: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c8c: 9360 ld.w r3, (r3, 0x0) + 1c8e: 237f addi r3, 128 + if(NewState != DISABLE) + 1c90: 0c0a bf 0x1ca4 // 1ca4 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c92: 104b lrw r2, 0x78870000 // 1cbc + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c94: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1c96: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1c98: 4125 lsli r1, r1, 5 + 1c9a: 934d ld.w r2, (r3, 0x34) + 1c9c: 6884 and r2, r1 + 1c9e: 3a40 cmpnei r2, 0 + 1ca0: 0ffd bf 0x1c9a // 1c9a + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1ca2: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1ca4: 1047 lrw r2, 0x788755aa // 1cc0 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1ca6: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1ca8: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1caa: 4125 lsli r1, r1, 5 + 1cac: 934d ld.w r2, (r3, 0x34) + 1cae: 6884 and r2, r1 + 1cb0: 3a40 cmpnei r2, 0 + 1cb2: 0bfd bt 0x1cac // 1cac + 1cb4: 07f7 br 0x1ca2 // 1ca2 + 1cb6: 0000 bkpt + 1cb8: 2000005c .long 0x2000005c + 1cbc: 78870000 .long 0x78870000 + 1cc0: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001cc4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1cc4: 1064 lrw r3, 0x2000005c // 1cd4 + 1cc6: 32b4 movi r2, 180 + 1cc8: 9360 ld.w r3, (r3, 0x0) + 1cca: 237f addi r3, 128 + 1ccc: 4257 lsli r2, r2, 23 + 1cce: b34e st.w r2, (r3, 0x38) +} + 1cd0: 783c jmp r15 + 1cd2: 0000 bkpt + 1cd4: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001cd8 : +//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; + 1cd8: 1044 lrw r2, 0x87780000 // 1ce8 + 1cda: 1065 lrw r3, 0x2000005c // 1cec + 1cdc: 6c48 or r1, r2 + 1cde: 9360 ld.w r3, (r3, 0x0) + 1ce0: 6c04 or r0, r1 + 1ce2: 237f addi r3, 128 + 1ce4: b30d st.w r0, (r3, 0x34) +} + 1ce6: 783c jmp r15 + 1ce8: 87780000 .long 0x87780000 + 1cec: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001cf0 : +//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) +{ + 1cf0: 14c3 push r4-r6 + 1cf2: 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; + 1cf4: 10c5 lrw r6, 0xb44b0000 // 1d08 + 1cf6: 6d18 or r4, r6 + 1cf8: 6cd0 or r3, r4 + 1cfa: 6c8c or r2, r3 + 1cfc: 6c48 or r1, r2 + 1cfe: 10a4 lrw r5, 0x2000005c // 1d0c + 1d00: 6c04 or r0, r1 + 1d02: 95a0 ld.w r5, (r5, 0x0) + 1d04: b513 st.w r0, (r5, 0x4c) +} + 1d06: 1483 pop r4-r6 + 1d08: b44b0000 .long 0xb44b0000 + 1d0c: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001d10 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1d10: 1066 lrw r3, 0x2000005c // 1d28 + 1d12: 3180 movi r1, 128 + 1d14: 9360 ld.w r3, (r3, 0x0) + 1d16: 3280 movi r2, 128 + 1d18: 604c addu r1, r3 + 1d1a: 4244 lsli r2, r2, 4 + 1d1c: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1d1e: 935d ld.w r2, (r3, 0x74) + 1d20: 3aab bseti r2, 11 + 1d22: b35d st.w r2, (r3, 0x74) +} + 1d24: 783c jmp r15 + 1d26: 0000 bkpt + 1d28: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001d2c : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1d2c: 1066 lrw r3, 0x2000005c // 1d44 + 1d2e: 3180 movi r1, 128 + 1d30: 9360 ld.w r3, (r3, 0x0) + 1d32: 3280 movi r2, 128 + 1d34: 604c addu r1, r3 + 1d36: 4241 lsli r2, r2, 1 + 1d38: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1d3a: 935d ld.w r2, (r3, 0x74) + 1d3c: 3aa8 bseti r2, 8 + 1d3e: b35d st.w r2, (r3, 0x74) +} + 1d40: 783c jmp r15 + 1d42: 0000 bkpt + 1d44: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001d48 : +//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) + 1d48: 3a40 cmpnei r2, 0 + 1d4a: 0c04 bf 0x1d52 // 1d52 + 1d4c: 3a41 cmpnei r2, 1 + 1d4e: 0c0e bf 0x1d6a // 1d6a + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1d50: 783c jmp r15 + 1d52: 106d lrw r3, 0x2000005c // 1d84 + if(NewState != DISABLE) + 1d54: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1d56: 9360 ld.w r3, (r3, 0x0) + 1d58: 237f addi r3, 128 + 1d5a: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 1d5c: 0c04 bf 0x1d64 // 1d64 + SYSCON->EXIRT |=EXIPIN; + 1d5e: 6c48 or r1, r2 + 1d60: b325 st.w r1, (r3, 0x14) + 1d62: 07f7 br 0x1d50 // 1d50 + SYSCON->EXIRT &=~EXIPIN; + 1d64: 6885 andn r2, r1 + 1d66: b345 st.w r2, (r3, 0x14) + 1d68: 07f4 br 0x1d50 // 1d50 + 1d6a: 1067 lrw r3, 0x2000005c // 1d84 + if(NewState != DISABLE) + 1d6c: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 1d6e: 9360 ld.w r3, (r3, 0x0) + 1d70: 237f addi r3, 128 + 1d72: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 1d74: 0c04 bf 0x1d7c // 1d7c + SYSCON->EXIFT |=EXIPIN; + 1d76: 6c48 or r1, r2 + 1d78: b326 st.w r1, (r3, 0x18) + 1d7a: 07eb br 0x1d50 // 1d50 + SYSCON->EXIFT &=~EXIPIN; + 1d7c: 6885 andn r2, r1 + 1d7e: b346 st.w r2, (r3, 0x18) +} + 1d80: 07e8 br 0x1d50 // 1d50 + 1d82: 0000 bkpt + 1d84: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +00001d88 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d88: 106b lrw r3, 0x2000005c // 1db4 + 1d8a: 104c lrw r2, 0x3fff // 1db8 + 1d8c: 9360 ld.w r3, (r3, 0x0) + 1d8e: 237f addi r3, 128 + if(NewState != DISABLE) + 1d90: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 1d92: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 1d94: 0c0c bf 0x1dac // 1dac + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 1d96: 9347 ld.w r2, (r3, 0x1c) + 1d98: 6c84 or r2, r1 + 1d9a: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 1d9c: 9349 ld.w r2, (r3, 0x24) + 1d9e: 6884 and r2, r1 + 1da0: 3a40 cmpnei r2, 0 + 1da2: 0ffd bf 0x1d9c // 1d9c + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 1da4: 934b ld.w r2, (r3, 0x2c) + 1da6: 6c48 or r1, r2 + 1da8: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 1daa: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 1dac: 9348 ld.w r2, (r3, 0x20) + 1dae: 6c48 or r1, r2 + 1db0: b328 st.w r1, (r3, 0x20) +} + 1db2: 07fc br 0x1daa // 1daa + 1db4: 2000005c .long 0x2000005c + 1db8: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00001dbc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 1dbc: b02b st.w r1, (r0, 0x2c) +} + 1dbe: 783c jmp r15 + +Disassembly of section .text.EXI3_Int_Enable: + +00001dc0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 1dc0: 3380 movi r3, 128 + 1dc2: 436f lsli r3, r3, 15 + 1dc4: 1042 lrw r2, 0xe000e100 // 1dcc + 1dc6: b260 st.w r3, (r2, 0x0) +} + 1dc8: 783c jmp r15 + 1dca: 0000 bkpt + 1dcc: e000e100 .long 0xe000e100 + +Disassembly of section .text.EXI4_Int_Enable: + +00001dd0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 1dd0: 3380 movi r3, 128 + 1dd2: 4370 lsli r3, r3, 16 + 1dd4: 1042 lrw r2, 0xe000e100 // 1ddc + 1dd6: b260 st.w r3, (r2, 0x0) +} + 1dd8: 783c jmp r15 + 1dda: 0000 bkpt + 1ddc: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00001de0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 1de0: 3202 movi r2, 2 + 1de2: 1062 lrw r3, 0xe000e100 // 1de8 + 1de4: b340 st.w r2, (r3, 0x0) +} + 1de6: 783c jmp r15 + 1de8: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00001dec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 1dec: 3202 movi r2, 2 + 1dee: 1062 lrw r3, 0xe000e180 // 1df4 + 1df0: b340 st.w r2, (r3, 0x0) +} + 1df2: 783c jmp r15 + 1df4: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +00001df8 : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1df8: 1066 lrw r3, 0xe000e400 // 1e10 + 1dfa: 1047 lrw r2, 0xc0c0c0c0 // 1e14 + 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 + 1dfc: 1027 lrw r1, 0xc0c000c0 // 1e18 + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 1dfe: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 1e00: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 1e02: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 1e04: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 1e06: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 1e08: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 1e0a: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 1e0c: b347 st.w r2, (r3, 0x1c) +} + 1e0e: 783c jmp r15 + 1e10: e000e400 .long 0xe000e400 + 1e14: c0c0c0c0 .long 0xc0c0c0c0 + 1e18: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +00001e1c : +//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) +{ + 1e1c: 14c1 push r4 + 1e1e: 4862 lsri r3, r0, 2 + 1e20: 4342 lsli r2, r3, 2 + 1e22: 106a lrw r3, 0x20000064 // 1e48 + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 1e24: 3403 movi r4, 3 + 1e26: 9360 ld.w r3, (r3, 0x0) + 1e28: 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)); + 1e3a: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 1e3e: 7040 lsl r1, r0 + 1e40: 6c48 or r1, r2 + 1e42: b320 st.w r1, (r3, 0x0) +} + 1e44: 1481 pop r4 + 1e46: 0000 bkpt + 1e48: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +00001e4c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 1e4c: 1075 lrw r3, 0x2000004c // 1ea0 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1e4e: 1036 lrw r1, 0x20000048 // 1ea4 + 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; + 1e50: 1016 lrw r0, 0xffff // 1ea8 + GPIOA0->CONLR &= 0xFF000000; + 1e52: 9340 ld.w r2, (r3, 0x0) + 1e54: 9260 ld.w r3, (r2, 0x0) + 1e56: 4b78 lsri r3, r3, 24 + 1e58: 4378 lsli r3, r3, 24 + 1e5a: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1e5c: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 1e5e: 3300 movi r3, 0 + 1e60: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1e62: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 1e64: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 1e66: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 1e68: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 1e6a: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 1e6c: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 1e6e: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 1e70: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 1e72: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 1e74: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 1e76: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 1e78: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 1e7a: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 1e7c: 303f movi r0, 63 + 1e7e: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 1e80: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 1e82: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 1e84: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 1e86: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 1e88: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 1e8a: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 1e8c: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 1e8e: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 1e90: 1047 lrw r2, 0x20000044 // 1eac + 1e92: 9240 ld.w r2, (r2, 0x0) + 1e94: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 1e96: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 1e98: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 1e9a: 330f movi r3, 15 + 1e9c: b263 st.w r3, (r2, 0xc) +} + 1e9e: 783c jmp r15 + 1ea0: 2000004c .long 0x2000004c + 1ea4: 20000048 .long 0x20000048 + 1ea8: 0000ffff .long 0x0000ffff + 1eac: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00001eb0 : +//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) +{ + 1eb0: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1eb2: 3907 cmphsi r1, 8 +{ + 1eb4: 6d03 mov r4, r0 + if(PinNum<8) + 1eb6: 0830 bt 0x1f16 // 1f16 + { + switch (PinNum) + 1eb8: 5903 subi r0, r1, 1 + 1eba: 3806 cmphsi r0, 7 + 1ebc: 0827 bt 0x1f0a // 1f0a + 1ebe: e3fff71f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1ec2: 1004 .short 0x1004 + 1ec4: 1d1a1613 .long 0x1d1a1613 + 1ec8: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1eca: 3300 movi r3, 0 + 1ecc: 3104 movi r1, 4 + 1ece: 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) + 1ed0: 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< + 1ee6: 07f5 br 0x1ed0 // 1ed0 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1ee8: 310c movi r1, 12 + 1eea: 1166 lrw r3, 0xffff0fff // 1f80 + 1eec: 07f2 br 0x1ed0 // 1ed0 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1eee: 3110 movi r1, 16 + 1ef0: 1165 lrw r3, 0xfff10000 // 1f84 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ef2: 2b00 subi r3, 1 + 1ef4: 07ee br 0x1ed0 // 1ed0 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1ef6: 3114 movi r1, 20 + 1ef8: 1164 lrw r3, 0xff100000 // 1f88 + 1efa: 07fc br 0x1ef2 // 1ef2 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1efc: 33f1 movi r3, 241 + 1efe: 3118 movi r1, 24 + 1f00: 4378 lsli r3, r3, 24 + 1f02: 07f8 br 0x1ef2 // 1ef2 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1f04: 311c movi r1, 28 + 1f06: 1162 lrw r3, 0xfffffff // 1f8c + 1f08: 07e4 br 0x1ed0 // 1ed0 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1f0a: 3300 movi r3, 0 + 1f0c: 3100 movi r1, 0 + 1f0e: 2b0f subi r3, 16 + 1f10: 07e0 br 0x1ed0 // 1ed0 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1f16: 390f cmphsi r1, 16 + 1f18: 0be4 bt 0x1ee0 // 1ee0 + switch (PinNum) + 1f1a: 2908 subi r1, 9 + 1f1c: 3906 cmphsi r1, 7 + 1f1e: 6c07 mov r0, r1 + 1f20: 0827 bt 0x1f6e // 1f6e + 1f22: e3fff6ed bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1f26: 1004 .short 0x1004 + 1f28: 1d1a1613 .long 0x1d1a1613 + 1f2c: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1f2e: 3300 movi r3, 0 + 1f30: 3104 movi r1, 4 + 1f32: 2bf0 subi r3, 241 + if (Dir) + 1f34: 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; + 1f46: 3108 movi r1, 8 + 1f48: 106d lrw r3, 0xfffff0ff // 1f7c + 1f4a: 07f5 br 0x1f34 // 1f34 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1f4c: 310c movi r1, 12 + 1f4e: 106d lrw r3, 0xffff0fff // 1f80 + 1f50: 07f2 br 0x1f34 // 1f34 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1f52: 3110 movi r1, 16 + 1f54: 106c lrw r3, 0xfff10000 // 1f84 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1f56: 2b00 subi r3, 1 + 1f58: 07ee br 0x1f34 // 1f34 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1f5a: 3114 movi r1, 20 + 1f5c: 106b lrw r3, 0xff100000 // 1f88 + 1f5e: 07fc br 0x1f56 // 1f56 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1f60: 33f1 movi r3, 241 + 1f62: 3118 movi r1, 24 + 1f64: 4378 lsli r3, r3, 24 + 1f66: 07f8 br 0x1f56 // 1f56 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1f68: 311c movi r1, 28 + 1f6a: 1069 lrw r3, 0xfffffff // 1f8c + 1f6c: 07e4 br 0x1f34 // 1f34 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1f6e: 3300 movi r3, 0 + 1f70: 3100 movi r1, 0 + 1f72: 2b0f subi r3, 16 + 1f74: 07e0 br 0x1f34 // 1f34 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1f7a: 0000 bkpt + 1f7c: fffff0ff .long 0xfffff0ff + 1f80: ffff0fff .long 0xffff0fff + 1f84: fff10000 .long 0xfff10000 + 1f88: ff100000 .long 0xff100000 + 1f8c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f90 : +//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)); + 1f90: 4121 lsli r1, r1, 1 + 1f92: 3203 movi r2, 3 + 1f94: 9068 ld.w r3, (r0, 0x20) + 1f96: 7084 lsl r2, r1 + 1f98: 68c9 andn r3, r2 + 1f9a: 3201 movi r2, 1 + 1f9c: 7084 lsl r2, r1 + 1f9e: 6cc8 or r3, r2 + 1fa0: b068 st.w r3, (r0, 0x20) +} + 1fa2: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001fa4 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1fa4: 4121 lsli r1, r1, 1 + 1fa6: 3301 movi r3, 1 + 1fa8: 9049 ld.w r2, (r0, 0x24) + 1faa: 70c4 lsl r3, r1 + 1fac: 6cc8 or r3, r2 + 1fae: b069 st.w r3, (r0, 0x24) +} + 1fb0: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001fb4 : +//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) +{ + 1fb4: 14c1 push r4 + 1fb6: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1fb8: 3a0f cmphsi r2, 16 + 1fba: 084f bt 0x2058 // 2058 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1fbc: 6ccb mov r3, r2 + 1fbe: 3b83 bclri r3, 3 + 1fc0: 3b40 cmpnei r3, 0 + 1fc2: 0813 bt 0x1fe8 // 1fe8 + { + R_data_temp=0xfffffff0; + 1fc4: 2b0f subi r3, 16 + 1fc6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1fc8: 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) + 1fca: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1fcc: dc6e0003 st.b r3, (r14, 0x3) + 1fd0: 1176 lrw r3, 0x20000044 // 20a8 + if(Selete_EXI_x<8) + 1fd2: 0c38 bf 0x2042 // 2042 + { + 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)) + 1fe8: 3b41 cmpnei r3, 1 + 1fea: 0806 bt 0x1ff6 // 1ff6 + R_data_temp=0xffffff0f; + 1fec: 3300 movi r3, 0 + 1fee: 2bf0 subi r3, 241 + 1ff0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1ff2: 3304 movi r3, 4 + 1ff4: 07eb br 0x1fca // 1fca + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1ff6: 3b42 cmpnei r3, 2 + 1ff8: 0805 bt 0x2002 // 2002 + R_data_temp=0xfffff0ff; + 1ffa: 116d lrw r3, 0xfffff0ff // 20ac + 1ffc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1ffe: 3308 movi r3, 8 + 2000: 07e5 br 0x1fca // 1fca + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 2002: 3b43 cmpnei r3, 3 + 2004: 0805 bt 0x200e // 200e + R_data_temp=0xffff0fff; + 2006: 116b lrw r3, 0xffff0fff // 20b0 + 2008: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 200a: 330c movi r3, 12 + 200c: 07df br 0x1fca // 1fca + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 200e: 3b44 cmpnei r3, 4 + 2010: 0806 bt 0x201c // 201c + R_data_temp=0xfff0ffff; + 2012: 1169 lrw r3, 0xfff10000 // 20b4 + 2014: 2b00 subi r3, 1 + 2016: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 2018: 3310 movi r3, 16 + 201a: 07d8 br 0x1fca // 1fca + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 201c: 3b45 cmpnei r3, 5 + 201e: 0806 bt 0x202a // 202a + R_data_temp=0xff0fffff; + 2020: 1166 lrw r3, 0xff100000 // 20b8 + 2022: 2b00 subi r3, 1 + 2024: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 2026: 3314 movi r3, 20 + 2028: 07d1 br 0x1fca // 1fca + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 202a: 3b46 cmpnei r3, 6 + 202c: 0807 bt 0x203a // 203a + R_data_temp=0xf0ffffff; + 202e: 33f1 movi r3, 241 + 2030: 4378 lsli r3, r3, 24 + 2032: 2b00 subi r3, 1 + 2034: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 2036: 3318 movi r3, 24 + 2038: 07c9 br 0x1fca // 1fca + R_data_temp=0x0fffffff; + 203a: 1161 lrw r3, 0xfffffff // 20bc + 203c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 203e: 331c movi r3, 28 + 2040: 07c5 br 0x1fca // 1fca + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 2054: 1402 addi r14, r14, 8 + 2056: 1481 pop r4 + else if(Selete_EXI_x<20) + 2058: 3a13 cmphsi r2, 20 + 205a: 0bfd bt 0x2054 // 2054 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 205c: 3840 cmpnei r0, 0 + 205e: 0814 bt 0x2086 // 2086 + 2060: 3300 movi r3, 0 + 2062: 2b0f subi r3, 16 + 2064: 60c8 addu r3, r2 + 2066: 3b01 cmphsi r3, 2 + 2068: 0bf6 bt 0x2054 // 2054 + if(Selete_EXI_x==16) + 206a: 3a50 cmpnei r2, 16 + 206c: 106f lrw r3, 0x20000044 // 20a8 + 206e: 0806 bt 0x207a // 207a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2070: 9340 ld.w r2, (r3, 0x0) + 2072: 9262 ld.w r3, (r2, 0x8) + 2074: 6c4c or r1, r3 + 2076: b222 st.w r1, (r2, 0x8) + 2078: 07ee br 0x2054 // 2054 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 207a: 9360 ld.w r3, (r3, 0x0) + 207c: 9342 ld.w r2, (r3, 0x8) + 207e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2080: 6c48 or r1, r2 + 2082: b322 st.w r1, (r3, 0x8) +} + 2084: 07e8 br 0x2054 // 2054 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 2086: 3842 cmpnei r0, 2 + 2088: 0be6 bt 0x2054 // 2054 + 208a: 3300 movi r3, 0 + 208c: 2b11 subi r3, 18 + 208e: 60c8 addu r3, r2 + 2090: 3b01 cmphsi r3, 2 + 2092: 0be1 bt 0x2054 // 2054 + 2094: 1065 lrw r3, 0x20000044 // 20a8 + if(Selete_EXI_x==18) + 2096: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2098: 9360 ld.w r3, (r3, 0x0) + 209a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 209c: 0803 bt 0x20a2 // 20a2 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 209e: 4128 lsli r1, r1, 8 + 20a0: 07f0 br 0x2080 // 2080 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 20a2: 412c lsli r1, r1, 12 + 20a4: 07ee br 0x2080 // 2080 + 20a6: 0000 bkpt + 20a8: 20000044 .long 0x20000044 + 20ac: fffff0ff .long 0xfffff0ff + 20b0: ffff0fff .long 0xffff0fff + 20b4: fff10000 .long 0xfff10000 + 20b8: ff100000 .long 0xff100000 + 20bc: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +000020c0 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 20c0: 14d0 push r15 + switch (EXI_IO) + 20c2: 380f cmphsi r0, 16 + 20c4: 0812 bt 0x20e8 // 20e8 + 20c6: 117d lrw r3, 0x2000004c // 21b8 + 20c8: e3fff61a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 20cc: 1d150f08 .long 0x1d150f08 + 20d0: 39322b24 .long 0x39322b24 + 20d4: 544c463f .long 0x544c463f + 20d8: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 20dc: 9340 ld.w r2, (r3, 0x0) + 20de: 9260 ld.w r3, (r2, 0x0) + 20e0: 310f movi r1, 15 + 20e2: 68c5 andn r3, r1 + 20e4: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 20e6: 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; + } +} + 20e8: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 20ea: 9340 ld.w r2, (r3, 0x0) + 20ec: 9260 ld.w r3, (r2, 0x0) + 20ee: 31f0 movi r1, 240 + 20f0: 68c5 andn r3, r1 + 20f2: 3ba4 bseti r3, 4 + 20f4: 07f9 br 0x20e6 // 20e6 + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 20f6: 9320 ld.w r1, (r3, 0x0) + 20f8: 32f0 movi r2, 240 + 20fa: 9160 ld.w r3, (r1, 0x0) + 20fc: 4244 lsli r2, r2, 4 + 20fe: 68c9 andn r3, r2 + 2100: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 2102: b160 st.w r3, (r1, 0x0) + 2104: 07f2 br 0x20e8 // 20e8 + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 2106: 9320 ld.w r1, (r3, 0x0) + 2108: 32f0 movi r2, 240 + 210a: 9160 ld.w r3, (r1, 0x0) + 210c: 4248 lsli r2, r2, 8 + 210e: 68c9 andn r3, r2 + 2110: 3bac bseti r3, 12 + 2112: 07f8 br 0x2102 // 2102 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 2114: 9320 ld.w r1, (r3, 0x0) + 2116: 32f0 movi r2, 240 + 2118: 9160 ld.w r3, (r1, 0x0) + 211a: 424c lsli r2, r2, 12 + 211c: 68c9 andn r3, r2 + 211e: 3bb0 bseti r3, 16 + 2120: 07f1 br 0x2102 // 2102 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2122: 9320 ld.w r1, (r3, 0x0) + 2124: 32f0 movi r2, 240 + 2126: 9160 ld.w r3, (r1, 0x0) + 2128: 4250 lsli r2, r2, 16 + 212a: 68c9 andn r3, r2 + 212c: 3bb4 bseti r3, 20 + 212e: 07ea br 0x2102 // 2102 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 2130: 9320 ld.w r1, (r3, 0x0) + 2132: 32f0 movi r2, 240 + 2134: 9160 ld.w r3, (r1, 0x0) + 2136: 4254 lsli r2, r2, 20 + 2138: 68c9 andn r3, r2 + 213a: 3bb8 bseti r3, 24 + 213c: 07e3 br 0x2102 // 2102 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 213e: 9340 ld.w r2, (r3, 0x0) + 2140: 9260 ld.w r3, (r2, 0x0) + 2142: 4364 lsli r3, r3, 4 + 2144: 4b64 lsri r3, r3, 4 + 2146: 3bbc bseti r3, 28 + 2148: 07cf br 0x20e6 // 20e6 + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 214a: 9340 ld.w r2, (r3, 0x0) + 214c: 9261 ld.w r3, (r2, 0x4) + 214e: 310f movi r1, 15 + 2150: 68c5 andn r3, r1 + 2152: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2154: b261 st.w r3, (r2, 0x4) +} + 2156: 07c9 br 0x20e8 // 20e8 + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 2158: 9340 ld.w r2, (r3, 0x0) + 215a: 9261 ld.w r3, (r2, 0x4) + 215c: 31f0 movi r1, 240 + 215e: 68c5 andn r3, r1 + 2160: 3ba4 bseti r3, 4 + 2162: 07f9 br 0x2154 // 2154 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 2164: 9320 ld.w r1, (r3, 0x0) + 2166: 32f0 movi r2, 240 + 2168: 9161 ld.w r3, (r1, 0x4) + 216a: 4244 lsli r2, r2, 4 + 216c: 68c9 andn r3, r2 + 216e: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2170: b161 st.w r3, (r1, 0x4) + 2172: 07bb br 0x20e8 // 20e8 + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 2174: 9320 ld.w r1, (r3, 0x0) + 2176: 32f0 movi r2, 240 + 2178: 9161 ld.w r3, (r1, 0x4) + 217a: 4248 lsli r2, r2, 8 + 217c: 68c9 andn r3, r2 + 217e: 3bac bseti r3, 12 + 2180: 07f8 br 0x2170 // 2170 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 2182: 9320 ld.w r1, (r3, 0x0) + 2184: 32f0 movi r2, 240 + 2186: 9161 ld.w r3, (r1, 0x4) + 2188: 424c lsli r2, r2, 12 + 218a: 68c9 andn r3, r2 + 218c: 3bb0 bseti r3, 16 + 218e: 07f1 br 0x2170 // 2170 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 2190: 9320 ld.w r1, (r3, 0x0) + 2192: 32f0 movi r2, 240 + 2194: 9161 ld.w r3, (r1, 0x4) + 2196: 4250 lsli r2, r2, 16 + 2198: 68c9 andn r3, r2 + 219a: 3bb4 bseti r3, 20 + 219c: 07ea br 0x2170 // 2170 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 219e: 9320 ld.w r1, (r3, 0x0) + 21a0: 32f0 movi r2, 240 + 21a2: 9161 ld.w r3, (r1, 0x4) + 21a4: 4254 lsli r2, r2, 20 + 21a6: 68c9 andn r3, r2 + 21a8: 3bb8 bseti r3, 24 + 21aa: 07e3 br 0x2170 // 2170 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 21ac: 9340 ld.w r2, (r3, 0x0) + 21ae: 9261 ld.w r3, (r2, 0x4) + 21b0: 4364 lsli r3, r3, 4 + 21b2: 4b64 lsri r3, r3, 4 + 21b4: 3bbc bseti r3, 28 + 21b6: 07cf br 0x2154 // 2154 + 21b8: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIOB0_EXI_Init: + +000021bc : +void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 21bc: 14d0 push r15 + switch (EXI_IO) + 21be: 3805 cmphsi r0, 6 + 21c0: 080d bt 0x21da // 21da + 21c2: 1079 lrw r3, 0x20000048 // 2224 + 21c4: e3fff59c bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 21c8: 18100a03 .long 0x18100a03 + 21cc: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 21ce: 9340 ld.w r2, (r3, 0x0) + 21d0: 9260 ld.w r3, (r2, 0x0) + 21d2: 310f movi r1, 15 + 21d4: 68c5 andn r3, r1 + 21d6: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 21d8: b260 st.w r3, (r2, 0x0) + 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; + } +} + 21da: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 21dc: 9340 ld.w r2, (r3, 0x0) + 21de: 9260 ld.w r3, (r2, 0x0) + 21e0: 31f0 movi r1, 240 + 21e2: 68c5 andn r3, r1 + 21e4: 3ba4 bseti r3, 4 + 21e6: 07f9 br 0x21d8 // 21d8 + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 21e8: 9320 ld.w r1, (r3, 0x0) + 21ea: 32f0 movi r2, 240 + 21ec: 9160 ld.w r3, (r1, 0x0) + 21ee: 4244 lsli r2, r2, 4 + 21f0: 68c9 andn r3, r2 + 21f2: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 21f4: b160 st.w r3, (r1, 0x0) +} + 21f6: 07f2 br 0x21da // 21da + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 21f8: 9320 ld.w r1, (r3, 0x0) + 21fa: 32f0 movi r2, 240 + 21fc: 9160 ld.w r3, (r1, 0x0) + 21fe: 4248 lsli r2, r2, 8 + 2200: 68c9 andn r3, r2 + 2202: 3bac bseti r3, 12 + 2204: 07f8 br 0x21f4 // 21f4 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 2206: 9320 ld.w r1, (r3, 0x0) + 2208: 32f0 movi r2, 240 + 220a: 9160 ld.w r3, (r1, 0x0) + 220c: 424c lsli r2, r2, 12 + 220e: 68c9 andn r3, r2 + 2210: 3bb0 bseti r3, 16 + 2212: 07f1 br 0x21f4 // 21f4 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2214: 9320 ld.w r1, (r3, 0x0) + 2216: 32f0 movi r2, 240 + 2218: 9160 ld.w r3, (r1, 0x0) + 221a: 4250 lsli r2, r2, 16 + 221c: 68c9 andn r3, r2 + 221e: 3bb4 bseti r3, 20 + 2220: 07ea br 0x21f4 // 21f4 + 2222: 0000 bkpt + 2224: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +00002228 : +//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; + 2238: 9045 ld.w r2, (r0, 0x14) + 223a: 3301 movi r3, 1 + 223c: 7085 lsr r2, r1 + 223e: 688c and r2, r3 + { + if (dat==1) + 2240: 3a40 cmpnei r2, 0 + 2242: 70c4 lsl r3, r1 + 2244: 0c03 bf 0x224a // 224a + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +0000224e : +/*************************************************************/ +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); + 2260: 1064 lrw r3, 0x20000014 // 2270 + 2262: 9340 ld.w r2, (r3, 0x0) + 2264: 9261 ld.w r3, (r2, 0x4) + 2266: 3bac bseti r3, 12 + 2268: 3bae bseti r3, 14 + 226a: b261 st.w r3, (r2, 0x4) +} + 226c: 783c jmp r15 + 226e: 0000 bkpt + 2270: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002274 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2274: 1063 lrw r3, 0x20000010 // 2280 + 2276: 9360 ld.w r3, (r3, 0x0) + 2278: 9340 ld.w r2, (r3, 0x0) + 227a: 6c08 or r0, r2 + 227c: b300 st.w r0, (r3, 0x0) +} + 227e: 783c jmp r15 + 2280: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002284 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2284: 3300 movi r3, 0 + 2286: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 2288: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 228a: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 228c: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 228e: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2290: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2292: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2294: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 2296: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 2298: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 229a: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 229c: b06d st.w r3, (r0, 0x34) +} + 229e: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +000022a0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 22a0: 9060 ld.w r3, (r0, 0x0) + 22a2: 3ba0 bseti r3, 0 + 22a4: b060 st.w r3, (r0, 0x0) +} + 22a6: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +000022a8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 22a8: 9060 ld.w r3, (r0, 0x0) + 22aa: 3bac bseti r3, 12 + 22ac: 3bae bseti r3, 14 + 22ae: b060 st.w r3, (r0, 0x0) +} + 22b0: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +000022b2 : +//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) +{ + 22b2: 14c3 push r4-r6 + 22b4: 98a4 ld.w r5, (r14, 0x10) + 22b6: 6d97 mov r6, r5 + 22b8: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 22ba: 6d18 or r4, r6 + 22bc: 6cd0 or r3, r4 + 22be: 90a1 ld.w r5, (r0, 0x4) + 22c0: 6c4c or r1, r3 + 22c2: 6c54 or r1, r5 + 22c4: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 22c6: b042 st.w r2, (r0, 0x8) +} + 22c8: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +000022ca : +//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) +{ + 22ca: 14c4 push r4-r7 + 22cc: 1421 subi r14, r14, 4 + 22ce: 9885 ld.w r4, (r14, 0x14) + 22d0: 6dd3 mov r7, r4 + 22d2: 9886 ld.w r4, (r14, 0x18) + 22d4: b880 st.w r4, (r14, 0x0) + 22d6: 9887 ld.w r4, (r14, 0x1c) + 22d8: 6d93 mov r6, r4 + 22da: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 22dc: 6d58 or r5, r6 + 22de: 98c0 ld.w r6, (r14, 0x0) + 22e0: 6d58 or r5, r6 + 22e2: 6d5c or r5, r7 + 22e4: 6cd4 or r3, r5 + 22e6: 6c8c or r2, r3 + 22e8: 9081 ld.w r4, (r0, 0x4) + 22ea: 6c48 or r1, r2 + 22ec: 6d04 or r4, r1 + 22ee: 6d9f mov r6, r7 + 22f0: b081 st.w r4, (r0, 0x4) +} + 22f2: 1401 addi r14, r14, 4 + 22f4: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +000022f6 : +//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; + 22f6: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 22f8: b044 st.w r2, (r0, 0x10) +} + 22fa: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +000022fc : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 22fc: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 22fe: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2300: 0c04 bf 0x2308 // 2308 + BTx->IMCR |= BT_IMSCR_X; + 2302: 6c8c or r2, r3 + 2304: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 2306: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 2308: 68c9 andn r3, r2 + 230a: b06b st.w r3, (r0, 0x2c) +} + 230c: 07fd br 0x2306 // 2306 + +Disassembly of section .text.BT1_INT_ENABLE: + +00002310 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 2310: 3380 movi r3, 128 + 2312: 4376 lsli r3, r3, 22 + 2314: 1042 lrw r2, 0xe000e100 // 231c + 2316: b260 st.w r3, (r2, 0x0) +} + 2318: 783c jmp r15 + 231a: 0000 bkpt + 231c: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +00002320 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 2320: 1067 lrw r3, 0x2000002c // 233c + 2322: 3200 movi r2, 0 + 2324: 9360 ld.w r3, (r3, 0x0) + 2326: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 2328: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 232a: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 232c: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 232e: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 2330: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 2332: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 2334: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 2336: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 2338: b34b st.w r2, (r3, 0x2c) +} + 233a: 783c jmp r15 + 233c: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +00002340 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 2340: 3840 cmpnei r0, 0 + 2342: 080a bt 0x2356 // 2356 + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 2344: 1075 lrw r3, 0x2000004c // 2398 + 2346: 32f0 movi r2, 240 + 2348: 9320 ld.w r1, (r3, 0x0) + 234a: 9160 ld.w r3, (r1, 0x0) + 234c: 4244 lsli r2, r2, 4 + 234e: 68c9 andn r3, r2 + 2350: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 2352: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 2354: 783c jmp r15 + if(IOGx==SIO_PA03) + 2356: 3841 cmpnei r0, 1 + 2358: 0809 bt 0x236a // 236a + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 235a: 1070 lrw r3, 0x2000004c // 2398 + 235c: 32f0 movi r2, 240 + 235e: 9320 ld.w r1, (r3, 0x0) + 2360: 9160 ld.w r3, (r1, 0x0) + 2362: 4248 lsli r2, r2, 8 + 2364: 68c9 andn r3, r2 + 2366: 3baf bseti r3, 15 + 2368: 07f5 br 0x2352 // 2352 + if(IOGx==SIO_PA012) + 236a: 3842 cmpnei r0, 2 + 236c: 080a bt 0x2380 // 2380 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 236e: 106b lrw r3, 0x2000004c // 2398 + 2370: 32f0 movi r2, 240 + 2372: 9320 ld.w r1, (r3, 0x0) + 2374: 9161 ld.w r3, (r1, 0x4) + 2376: 424c lsli r2, r2, 12 + 2378: 68c9 andn r3, r2 + 237a: 3bb3 bseti r3, 19 + 237c: b161 st.w r3, (r1, 0x4) + 237e: 07eb br 0x2354 // 2354 + if(IOGx==SIO_PB01) + 2380: 3843 cmpnei r0, 3 + 2382: 0be9 bt 0x2354 // 2354 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 2384: 1066 lrw r3, 0x20000048 // 239c + 2386: 31f0 movi r1, 240 + 2388: 9340 ld.w r2, (r3, 0x0) + 238a: 9260 ld.w r3, (r2, 0x0) + 238c: 68c5 andn r3, r1 + 238e: 3170 movi r1, 112 + 2390: 6cc4 or r3, r1 + 2392: b260 st.w r3, (r2, 0x0) +} + 2394: 07e0 br 0x2354 // 2354 + 2396: 0000 bkpt + 2398: 2000004c .long 0x2000004c + 239c: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +000023a0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 23a0: 4130 lsli r1, r1, 16 + 23a2: 1063 lrw r3, 0x2000002c // 23ac + 23a4: 6c04 or r0, r1 + 23a6: 9360 ld.w r3, (r3, 0x0) + 23a8: b300 st.w r0, (r3, 0x0) + +} + 23aa: 783c jmp r15 + 23ac: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +000023b0 : +//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) +{ + 23b0: 14c4 push r4-r7 + 23b2: 1423 subi r14, r14, 12 + 23b4: 9889 ld.w r4, (r14, 0x24) + 23b6: b881 st.w r4, (r14, 0x4) + 23b8: 988a ld.w r4, (r14, 0x28) + 23ba: b882 st.w r4, (r14, 0x8) + 23bc: 1c08 addi r4, r14, 32 + 23be: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 23c0: 4368 lsli r3, r3, 8 +{ + 23c2: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 23c4: 6cc0 or r3, r0 +{ + 23c6: 1c0b addi r4, r14, 44 + 23c8: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 23ca: 6cc4 or r3, r1 +{ + 23cc: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 23ce: 4244 lsli r2, r2, 4 + 23d0: 10eb lrw r7, 0x2000002c // 23fc + 23d2: 6cc8 or r3, r2 + 23d4: 97e0 ld.w r7, (r7, 0x0) +{ + 23d6: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 23d8: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 23da: 4498 lsli r4, r4, 24 + 23dc: 9861 ld.w r3, (r14, 0x4) + 23de: 6d0c or r4, r3 + 23e0: 9862 ld.w r3, (r14, 0x8) + 23e2: 6d0c or r4, r3 +{ + 23e4: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 23e8: 9860 ld.w r3, (r14, 0x0) + 23ea: 46d0 lsli r6, r6, 16 + 23ec: 6d90 or r6, r4 + 23ee: 45a2 lsli r5, r5, 2 + 23f0: 4385 lsli r4, r3, 5 + 23f2: 6d50 or r5, r4 + 23f4: 6d58 or r5, r6 + 23f6: b7a2 st.w r5, (r7, 0x8) +} + 23f8: 1403 addi r14, r14, 12 + 23fa: 1484 pop r4-r7 + 23fc: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +00002400 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 2400: 1065 lrw r3, 0x20000040 // 2414 + 2402: 3200 movi r2, 0 + 2404: 9360 ld.w r3, (r3, 0x0) + 2406: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 2408: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 240a: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 240c: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 240e: b344 st.w r2, (r3, 0x10) +} + 2410: 783c jmp r15 + 2412: 0000 bkpt + 2414: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +00002418 : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 2418: 1065 lrw r3, 0x2000003c // 242c + 241a: 3200 movi r2, 0 + 241c: 9360 ld.w r3, (r3, 0x0) + 241e: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 2420: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 2422: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 2424: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 2426: b344 st.w r2, (r3, 0x10) +} + 2428: 783c jmp r15 + 242a: 0000 bkpt + 242c: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +00002430 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 2430: 1065 lrw r3, 0x20000038 // 2444 + 2432: 3200 movi r2, 0 + 2434: 9360 ld.w r3, (r3, 0x0) + 2436: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 2438: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 243a: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 243c: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 243e: b344 st.w r2, (r3, 0x10) +} + 2440: 783c jmp r15 + 2442: 0000 bkpt + 2444: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +00002448 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 2448: 1065 lrw r3, 0x20000040 // 245c + 244a: 320f movi r2, 15 + 244c: 9360 ld.w r3, (r3, 0x0) + 244e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2450: 3380 movi r3, 128 + 2452: 4366 lsli r3, r3, 6 + 2454: 1043 lrw r2, 0xe000e100 // 2460 + 2456: b260 st.w r3, (r2, 0x0) +} + 2458: 783c jmp r15 + 245a: 0000 bkpt + 245c: 20000040 .long 0x20000040 + 2460: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002464 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2464: 1065 lrw r3, 0x20000038 // 2478 + 2466: 320f movi r2, 15 + 2468: 9360 ld.w r3, (r3, 0x0) + 246a: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 246c: 3380 movi r3, 128 + 246e: 4368 lsli r3, r3, 8 + 2470: 1043 lrw r2, 0xe000e100 // 247c + 2472: b260 st.w r3, (r2, 0x0) +} + 2474: 783c jmp r15 + 2476: 0000 bkpt + 2478: 20000038 .long 0x20000038 + 247c: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002480 : +//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) + 2480: 3840 cmpnei r0, 0 + 2482: 0821 bt 0x24c4 // 24c4 + { + if(UART_IO_G==0) + 2484: 3940 cmpnei r1, 0 + 2486: 080a bt 0x249a // 249a + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 2488: 1177 lrw r3, 0x2000004c // 2564 + 248a: 31ff movi r1, 255 + 248c: 9340 ld.w r2, (r3, 0x0) + 248e: 9260 ld.w r3, (r2, 0x0) + 2490: 68c5 andn r3, r1 + 2492: 3ba2 bseti r3, 2 + 2494: 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 + 2496: b260 st.w r3, (r2, 0x0) + 2498: 0415 br 0x24c2 // 24c2 + else if(UART_IO_G==1) + 249a: 3941 cmpnei r1, 1 + 249c: 0813 bt 0x24c2 // 24c2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 249e: 1172 lrw r3, 0x2000004c // 2564 + 24a0: 31f0 movi r1, 240 + 24a2: 9340 ld.w r2, (r3, 0x0) + 24a4: 9260 ld.w r3, (r2, 0x0) + 24a6: 4130 lsli r1, r1, 16 + 24a8: 68c5 andn r3, r1 + 24aa: 31e0 movi r1, 224 + 24ac: 412f lsli r1, r1, 15 + 24ae: 6cc4 or r3, r1 + 24b0: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 24b2: 31f0 movi r1, 240 + 24b4: 9261 ld.w r3, (r2, 0x4) + 24b6: 412c lsli r1, r1, 12 + 24b8: 68c5 andn r3, r1 + 24ba: 31e0 movi r1, 224 + 24bc: 412b lsli r1, r1, 11 + 24be: 6cc4 or r3, r1 + 24c0: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 24c2: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 24c4: 3841 cmpnei r0, 1 + 24c6: 082d bt 0x2520 // 2520 + if(UART_IO_G==0) + 24c8: 3940 cmpnei r1, 0 + 24ca: 0814 bt 0x24f2 // 24f2 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 24cc: 1167 lrw r3, 0x20000048 // 2568 + 24ce: 310f movi r1, 15 + 24d0: 9340 ld.w r2, (r3, 0x0) + 24d2: 9260 ld.w r3, (r2, 0x0) + 24d4: 68c5 andn r3, r1 + 24d6: 3107 movi r1, 7 + 24d8: 6cc4 or r3, r1 + 24da: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 24dc: 32f0 movi r2, 240 + 24de: 1162 lrw r3, 0x2000004c // 2564 + 24e0: 4250 lsli r2, r2, 16 + 24e2: 9320 ld.w r1, (r3, 0x0) + 24e4: 9161 ld.w r3, (r1, 0x4) + 24e6: 68c9 andn r3, r2 + 24e8: 32e0 movi r2, 224 + 24ea: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 24ec: 6cc8 or r3, r2 + 24ee: b161 st.w r3, (r1, 0x4) + 24f0: 07e9 br 0x24c2 // 24c2 + else if(UART_IO_G==1) + 24f2: 3941 cmpnei r1, 1 + 24f4: 080c bt 0x250c // 250c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 24f6: 107c lrw r3, 0x2000004c // 2564 + 24f8: 32ff movi r2, 255 + 24fa: 9320 ld.w r1, (r3, 0x0) + 24fc: 424c lsli r2, r2, 12 + 24fe: 9160 ld.w r3, (r1, 0x0) + 2500: 68c9 andn r3, r2 + 2502: 32ee movi r2, 238 + 2504: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2506: 6cc8 or r3, r2 + 2508: b160 st.w r3, (r1, 0x0) +} + 250a: 07dc br 0x24c2 // 24c2 + else if(UART_IO_G==2) + 250c: 3942 cmpnei r1, 2 + 250e: 0bda bt 0x24c2 // 24c2 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2510: 1075 lrw r3, 0x2000004c // 2564 + 2512: 32ee movi r2, 238 + 2514: 9320 ld.w r1, (r3, 0x0) + 2516: 9161 ld.w r3, (r1, 0x4) + 2518: 4368 lsli r3, r3, 8 + 251a: 4b68 lsri r3, r3, 8 + 251c: 4257 lsli r2, r2, 23 + 251e: 07e7 br 0x24ec // 24ec + if (IO_UART_NUM==IO_UART2) + 2520: 3842 cmpnei r0, 2 + 2522: 0bd0 bt 0x24c2 // 24c2 + if(UART_IO_G==0) + 2524: 3940 cmpnei r1, 0 + 2526: 0809 bt 0x2538 // 2538 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 2528: 106f lrw r3, 0x2000004c // 2564 + 252a: 31ff movi r1, 255 + 252c: 9340 ld.w r2, (r3, 0x0) + 252e: 9260 ld.w r3, (r2, 0x0) + 2530: 68c5 andn r3, r1 + 2532: 3177 movi r1, 119 + 2534: 6cc4 or r3, r1 + 2536: 07b0 br 0x2496 // 2496 + else if(UART_IO_G==1) + 2538: 3941 cmpnei r1, 1 + 253a: 0809 bt 0x254c // 254c + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 253c: 106a lrw r3, 0x2000004c // 2564 + 253e: 32ee movi r2, 238 + 2540: 9320 ld.w r1, (r3, 0x0) + 2542: 9160 ld.w r3, (r1, 0x0) + 2544: 4368 lsli r3, r3, 8 + 2546: 4b68 lsri r3, r3, 8 + 2548: 4257 lsli r2, r2, 23 + 254a: 07de br 0x2506 // 2506 + else if(UART_IO_G==2) + 254c: 3942 cmpnei r1, 2 + 254e: 0bba bt 0x24c2 // 24c2 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2550: 1066 lrw r3, 0x20000048 // 2568 + 2552: 32ff movi r2, 255 + 2554: 9320 ld.w r1, (r3, 0x0) + 2556: 4250 lsli r2, r2, 16 + 2558: 9160 ld.w r3, (r1, 0x0) + 255a: 68c9 andn r3, r2 + 255c: 32cc movi r2, 204 + 255e: 424f lsli r2, r2, 15 + 2560: 07d3 br 0x2506 // 2506 + 2562: 0000 bkpt + 2564: 2000004c .long 0x2000004c + 2568: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +0000256c : +//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); + 256c: 1063 lrw r3, 0x80003 // 2578 + 256e: 6c8c or r2, r3 + 2570: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2572: b024 st.w r1, (r0, 0x10) +} + 2574: 783c jmp r15 + 2576: 0000 bkpt + 2578: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +0000257c : +//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); + 257c: 1063 lrw r3, 0x8000f // 2588 + 257e: 6c8c or r2, r3 + 2580: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2582: b024 st.w r1, (r0, 0x10) +} + 2584: 783c jmp r15 + 2586: 0000 bkpt + 2588: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +0000258c : +//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) +{ + 258c: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 258e: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2590: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2592: 5b85 subu r4, r3, r1 + 2594: 6490 cmphs r4, r2 + 2596: 0c02 bf 0x259a // 259a + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 2598: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 259a: 8380 ld.b r4, (r3, 0x0) + 259c: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 259e: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 25a0: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 25a2: 3c40 cmpnei r4, 0 + 25a4: 0bfd bt 0x259e // 259e + 25a6: 2300 addi r3, 1 + 25a8: 07f5 br 0x2592 // 2592 + +Disassembly of section .text.EPT_Stop: + +000025ac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 25ac: 1068 lrw r3, 0x20000020 // 25cc + 25ae: 3280 movi r2, 128 + 25b0: 9360 ld.w r3, (r3, 0x0) + 25b2: 608c addu r2, r3 + 25b4: 1027 lrw r1, 0xa55ac73a // 25d0 + 25b6: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 25b8: 9341 ld.w r2, (r3, 0x4) + 25ba: 31fe movi r1, 254 + 25bc: 6884 and r2, r1 + 25be: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 25c0: 3101 movi r1, 1 + 25c2: 9341 ld.w r2, (r3, 0x4) + 25c4: 6884 and r2, r1 + 25c6: 3a40 cmpnei r2, 0 + 25c8: 0bfd bt 0x25c2 // 25c2 +} + 25ca: 783c jmp r15 + 25cc: 20000020 .long 0x20000020 + 25d0: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +000025d4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 25d4: 1078 lrw r3, 0x20000050 // 2634 + 25d6: 3200 movi r2, 0 + 25d8: 9360 ld.w r3, (r3, 0x0) + 25da: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 25dc: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 25de: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 25e0: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 25e2: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 25e4: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 25e6: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 25e8: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 25ea: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 25ec: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 25ee: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 25f0: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 25f2: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 25f4: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 25f6: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 25f8: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 25fa: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 25fc: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 25fe: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 2600: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 2602: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 2604: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 2606: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 2608: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 260a: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 260c: 23ff addi r3, 256 + 260e: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 2610: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 2612: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 2614: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 2616: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 2618: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 261a: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 261c: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 261e: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 2620: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 2622: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 2624: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 2626: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 2628: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 262a: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 262c: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 262e: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 2630: b351 st.w r2, (r3, 0x44) +} + 2632: 783c jmp r15 + 2634: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +00002638 : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 2638: 1063 lrw r3, 0x20000050 // 2644 + 263a: 9340 ld.w r2, (r3, 0x0) + 263c: 9264 ld.w r3, (r2, 0x10) + 263e: 6c0c or r0, r3 + 2640: b204 st.w r0, (r2, 0x10) +} + 2642: 783c jmp r15 + 2644: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +00002648 : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 2648: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 264a: 3002 movi r0, 2 + 264c: e3fffff6 bsr 0x2638 // 2638 + while(!(ADC0->SR &ADC12_ADCENS)); + 2650: 1065 lrw r3, 0x20000050 // 2664 + 2652: 3280 movi r2, 128 + 2654: 9320 ld.w r1, (r3, 0x0) + 2656: 4241 lsli r2, r2, 1 + 2658: 9168 ld.w r3, (r1, 0x20) + 265a: 68c8 and r3, r2 + 265c: 3b40 cmpnei r3, 0 + 265e: 0ffd bf 0x2658 // 2658 + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2660: 1490 pop r15 + 2662: 0000 bkpt + 2664: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +00002668 : + if (NewState != DISABLE) + 2668: 3940 cmpnei r1, 0 + 266a: 106a lrw r3, 0x20000050 // 2690 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 266c: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 266e: 0c09 bf 0x2680 // 2680 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2670: 9260 ld.w r3, (r2, 0x0) + 2672: 6cc0 or r3, r0 + 2674: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 2676: 9262 ld.w r3, (r2, 0x8) + 2678: 68c0 and r3, r0 + 267a: 3b40 cmpnei r3, 0 + 267c: 0ffd bf 0x2676 // 2676 +} + 267e: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2680: 9261 ld.w r3, (r2, 0x4) + 2682: 6cc0 or r3, r0 + 2684: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 2686: 9262 ld.w r3, (r2, 0x8) + 2688: 68c0 and r3, r0 + 268a: 3b40 cmpnei r3, 0 + 268c: 0bfd bt 0x2686 // 2686 + 268e: 07f8 br 0x267e // 267e + 2690: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00002694 : +{ + 2694: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 2696: 3001 movi r0, 1 + 2698: e3ffffd0 bsr 0x2638 // 2638 +} + 269c: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +000026a0 : +{ + 26a0: 14d0 push r15 + if (NewState != DISABLE) + 26a2: 3840 cmpnei r0, 0 + 26a4: 0c04 bf 0x26ac // 26ac + 26a6: e3ffffd1 bsr 0x2648 // 2648 +} + 26aa: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 26ac: 3004 movi r0, 4 + 26ae: e3ffffc5 bsr 0x2638 // 2638 + while(ADC0->SR&ADC12_ADCENS); + 26b2: 1065 lrw r3, 0x20000050 // 26c4 + 26b4: 3280 movi r2, 128 + 26b6: 9320 ld.w r1, (r3, 0x0) + 26b8: 4241 lsli r2, r2, 1 + 26ba: 9168 ld.w r3, (r1, 0x20) + 26bc: 68c8 and r3, r2 + 26be: 3b40 cmpnei r3, 0 + 26c0: 0bfd bt 0x26ba // 26ba + 26c2: 07f4 br 0x26aa // 26aa + 26c4: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +000026c8 : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 26c8: 1064 lrw r3, 0x20000050 // 26d8 + 26ca: 3202 movi r2, 2 + 26cc: 9320 ld.w r1, (r3, 0x0) + 26ce: 9168 ld.w r3, (r1, 0x20) + 26d0: 68c8 and r3, r2 + 26d2: 3b40 cmpnei r3, 0 + 26d4: 0ffd bf 0x26ce // 26ce +} + 26d6: 783c jmp r15 + 26d8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +000026dc : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 26dc: 200f addi r0, 16 + 26de: 1065 lrw r3, 0x20000050 // 26f0 + 26e0: 3201 movi r2, 1 + 26e2: 9320 ld.w r1, (r3, 0x0) + 26e4: 7080 lsl r2, r0 + 26e6: 9168 ld.w r3, (r1, 0x20) + 26e8: 68c8 and r3, r2 + 26ea: 3b40 cmpnei r3, 0 + 26ec: 0ffd bf 0x26e6 // 26e6 +} + 26ee: 783c jmp r15 + 26f0: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +000026f4 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 26f4: 203f addi r0, 64 + 26f6: 1064 lrw r3, 0x20000050 // 2704 + 26f8: 4002 lsli r0, r0, 2 + 26fa: 9360 ld.w r3, (r3, 0x0) + 26fc: 600c addu r0, r3 + 26fe: 9000 ld.w r0, (r0, 0x0) + 2700: 7401 zexth r0, r0 +} + 2702: 783c jmp r15 + 2704: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +00002708 : + //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 ) +{ + 2708: 14d4 push r4-r7, r15 + 270a: 1422 subi r14, r14, 8 + 270c: 1c08 addi r4, r14, 32 + 270e: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2710: 2d00 subi r5, 1 +{ + 2712: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2714: 10db lrw r6, 0x20000050 // 2780 +{ + 2716: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 271a: 45aa lsli r5, r5, 10 + 271c: 9680 ld.w r4, (r6, 0x0) + 271e: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 2720: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 2722: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 2724: 081c bt 0x275c // 275c + { + ADC0->MR&=~CONTCV; //one short mode + 2726: 9425 ld.w r1, (r4, 0x14) + 2728: 4121 lsli r1, r1, 1 + 272a: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 272c: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 272e: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 2730: 4002 lsli r0, r0, 2 + 2732: 9428 ld.w r1, (r4, 0x20) + 2734: 6840 and r1, r0 + 2736: 3940 cmpnei r1, 0 + 2738: 0bfd bt 0x2732 // 2732 + 273a: b861 st.w r3, (r14, 0x4) + 273c: b840 st.w r2, (r14, 0x0) + 273e: e3ffff85 bsr 0x2648 // 2648 + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 2742: 3f40 cmpnei r7, 0 + 2744: 9840 ld.w r2, (r14, 0x0) + 2746: 9861 ld.w r3, (r14, 0x4) + 2748: 0c16 bf 0x2774 // 2774 + { + ADC0->CR|=ADC12_10BITor12BIT; + 274a: 9600 ld.w r0, (r6, 0x0) + 274c: 9024 ld.w r1, (r0, 0x10) + 274e: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 2750: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 2752: 9620 ld.w r1, (r6, 0x0) + 2754: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 2756: b166 st.w r3, (r1, 0x18) +} + 2758: 1402 addi r14, r14, 8 + 275a: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 275c: 3941 cmpnei r1, 1 + 275e: 0bee bt 0x273a // 273a + ADC0->MR|=CONTCV; //Continuous mode + 2760: 9425 ld.w r1, (r4, 0x14) + 2762: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 2764: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 2766: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 2768: 4002 lsli r0, r0, 2 + 276a: 9428 ld.w r1, (r4, 0x20) + 276c: 6840 and r1, r0 + 276e: 3940 cmpnei r1, 0 + 2770: 0ffd bf 0x276a // 276a + 2772: 07e4 br 0x273a // 273a + ADC0->CR&=~ADC12_10BITor12BIT; + 2774: 9600 ld.w r0, (r6, 0x0) + 2776: 9024 ld.w r1, (r0, 0x10) + 2778: 4121 lsli r1, r1, 1 + 277a: 4921 lsri r1, r1, 1 + 277c: 07ea br 0x2750 // 2750 + 277e: 0000 bkpt + 2780: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00002784 : +//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) + 2784: 3840 cmpnei r0, 0 + 2786: 0808 bt 0x2796 // 2796 + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 2788: 127c lrw r3, 0x20000050 // 28f8 + 278a: 123d lrw r1, 0x103c0 // 28fc + 278c: 9340 ld.w r2, (r3, 0x0) + 278e: 9264 ld.w r3, (r2, 0x10) + 2790: 68c5 andn r3, r1 + 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); + 2792: b264 st.w r3, (r2, 0x10) + } +} + 2794: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 2796: 3841 cmpnei r0, 1 + 2798: 0810 bt 0x27b8 // 27b8 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 279a: 127a lrw r3, 0x2000004c // 2900 + 279c: 32f0 movi r2, 240 + 279e: 9320 ld.w r1, (r3, 0x0) + 27a0: 9160 ld.w r3, (r1, 0x0) + 27a2: 4244 lsli r2, r2, 4 + 27a4: 68c9 andn r3, r2 + 27a6: 3bab bseti r3, 11 + 27a8: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 27aa: 1235 lrw r1, 0x103c0 // 28fc + 27ac: 1273 lrw r3, 0x20000050 // 28f8 + 27ae: 9340 ld.w r2, (r3, 0x0) + 27b0: 9264 ld.w r3, (r2, 0x10) + 27b2: 68c5 andn r3, r1 + 27b4: 3ba6 bseti r3, 6 + 27b6: 07ee br 0x2792 // 2792 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 27b8: 3842 cmpnei r0, 2 + 27ba: 0811 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27bc: 1271 lrw r3, 0x2000004c // 2900 + 27be: 32f0 movi r2, 240 + 27c0: 9320 ld.w r1, (r3, 0x0) + 27c2: 9160 ld.w r3, (r1, 0x0) + 27c4: 4244 lsli r2, r2, 4 + 27c6: 68c9 andn r3, r2 + 27c8: 3bab bseti r3, 11 + 27ca: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 27cc: 122e lrw r1, 0x30103c0 // 2904 + 27ce: 126b lrw r3, 0x20000050 // 28f8 + 27d0: 9340 ld.w r2, (r3, 0x0) + 27d2: 9264 ld.w r3, (r2, 0x10) + 27d4: 68c5 andn r3, r1 + 27d6: 3ba7 bseti r3, 7 + 27d8: 3bb8 bseti r3, 24 + 27da: 07dc br 0x2792 // 2792 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 27dc: 3843 cmpnei r0, 3 + 27de: 0811 bt 0x2800 // 2800 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 27e0: 1268 lrw r3, 0x2000004c // 2900 + 27e2: 32f0 movi r2, 240 + 27e4: 9320 ld.w r1, (r3, 0x0) + 27e6: 9160 ld.w r3, (r1, 0x0) + 27e8: 4244 lsli r2, r2, 4 + 27ea: 68c9 andn r3, r2 + 27ec: 3bab bseti r3, 11 + 27ee: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 27f0: 1225 lrw r1, 0x30103c0 // 2904 + 27f2: 1262 lrw r3, 0x20000050 // 28f8 + 27f4: 9340 ld.w r2, (r3, 0x0) + 27f6: 9264 ld.w r3, (r2, 0x10) + 27f8: 68c5 andn r3, r1 + 27fa: 1224 lrw r1, 0x30000c0 // 2908 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 27fc: 6cc4 or r3, r1 + 27fe: 07ca br 0x2792 // 2792 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 2800: 3845 cmpnei r0, 5 + 2802: 0809 bt 0x2814 // 2814 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2804: 117d lrw r3, 0x20000050 // 28f8 + 2806: 1222 lrw r1, 0x503c0 // 290c + 2808: 9340 ld.w r2, (r3, 0x0) + 280a: 9264 ld.w r3, (r2, 0x10) + 280c: 68c5 andn r3, r1 + 280e: 3ba8 bseti r3, 8 + 2810: 3bb2 bseti r3, 18 + 2812: 07c0 br 0x2792 // 2792 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2814: 3846 cmpnei r0, 6 + 2816: 0812 bt 0x283a // 283a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2818: 117a lrw r3, 0x2000004c // 2900 + 281a: 32f0 movi r2, 240 + 281c: 9320 ld.w r1, (r3, 0x0) + 281e: 9160 ld.w r3, (r1, 0x0) + 2820: 4248 lsli r2, r2, 8 + 2822: 68c9 andn r3, r2 + 2824: 32b0 movi r2, 176 + 2826: 4248 lsli r2, r2, 8 + 2828: 6cc8 or r3, r2 + 282a: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 282c: 1134 lrw r1, 0x103c0 // 28fc + 282e: 1173 lrw r3, 0x20000050 // 28f8 + 2830: 9340 ld.w r2, (r3, 0x0) + 2832: 9264 ld.w r3, (r2, 0x10) + 2834: 68c5 andn r3, r1 + 2836: 3ba9 bseti r3, 9 + 2838: 07ad br 0x2792 // 2792 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 283a: 3847 cmpnei r0, 7 + 283c: 0819 bt 0x286e // 286e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 283e: 1171 lrw r3, 0x2000004c // 2900 + 2840: 31f0 movi r1, 240 + 2842: 9340 ld.w r2, (r3, 0x0) + 2844: 9260 ld.w r3, (r2, 0x0) + 2846: 4128 lsli r1, r1, 8 + 2848: 68c5 andn r3, r1 + 284a: 31b0 movi r1, 176 + 284c: 4128 lsli r1, r1, 8 + 284e: 6cc4 or r3, r1 + 2850: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2852: 31f0 movi r1, 240 + 2854: 9260 ld.w r3, (r2, 0x0) + 2856: 4124 lsli r1, r1, 4 + 2858: 68c5 andn r3, r1 + 285a: 3bab bseti r3, 11 + 285c: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 285e: 1128 lrw r1, 0x103c0 // 28fc + 2860: 1166 lrw r3, 0x20000050 // 28f8 + 2862: 9340 ld.w r2, (r3, 0x0) + 2864: 9264 ld.w r3, (r2, 0x10) + 2866: 68c5 andn r3, r1 + 2868: 3ba6 bseti r3, 6 + 286a: 3ba9 bseti r3, 9 + 286c: 0793 br 0x2792 // 2792 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 286e: 3848 cmpnei r0, 8 + 2870: 0818 bt 0x28a0 // 28a0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2872: 1164 lrw r3, 0x2000004c // 2900 + 2874: 31f0 movi r1, 240 + 2876: 9340 ld.w r2, (r3, 0x0) + 2878: 9260 ld.w r3, (r2, 0x0) + 287a: 4128 lsli r1, r1, 8 + 287c: 68c5 andn r3, r1 + 287e: 31b0 movi r1, 176 + 2880: 4128 lsli r1, r1, 8 + 2882: 6cc4 or r3, r1 + 2884: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2886: 31f0 movi r1, 240 + 2888: 9260 ld.w r3, (r2, 0x0) + 288a: 4124 lsli r1, r1, 4 + 288c: 68c5 andn r3, r1 + 288e: 3bab bseti r3, 11 + 2890: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 2892: 103d lrw r1, 0x30103c0 // 2904 + 2894: 1079 lrw r3, 0x20000050 // 28f8 + 2896: 9340 ld.w r2, (r3, 0x0) + 2898: 9264 ld.w r3, (r2, 0x10) + 289a: 68c5 andn r3, r1 + 289c: 103d lrw r1, 0x1000280 // 2910 + 289e: 07af br 0x27fc // 27fc + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 28a0: 3849 cmpnei r0, 9 + 28a2: 0818 bt 0x28d2 // 28d2 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 28a4: 1077 lrw r3, 0x2000004c // 2900 + 28a6: 31f0 movi r1, 240 + 28a8: 9340 ld.w r2, (r3, 0x0) + 28aa: 9260 ld.w r3, (r2, 0x0) + 28ac: 4128 lsli r1, r1, 8 + 28ae: 68c5 andn r3, r1 + 28b0: 31b0 movi r1, 176 + 28b2: 4128 lsli r1, r1, 8 + 28b4: 6cc4 or r3, r1 + 28b6: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 28b8: 31f0 movi r1, 240 + 28ba: 9260 ld.w r3, (r2, 0x0) + 28bc: 4124 lsli r1, r1, 4 + 28be: 68c5 andn r3, r1 + 28c0: 3bab bseti r3, 11 + 28c2: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 28c4: 1030 lrw r1, 0x30103c0 // 2904 + 28c6: 106d lrw r3, 0x20000050 // 28f8 + 28c8: 9340 ld.w r2, (r3, 0x0) + 28ca: 9264 ld.w r3, (r2, 0x10) + 28cc: 68c5 andn r3, r1 + 28ce: 1032 lrw r1, 0x30002c0 // 2914 + 28d0: 0796 br 0x27fc // 27fc + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 28d2: 384b cmpnei r0, 11 + 28d4: 0b60 bt 0x2794 // 2794 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 28d6: 106b lrw r3, 0x2000004c // 2900 + 28d8: 32f0 movi r2, 240 + 28da: 9320 ld.w r1, (r3, 0x0) + 28dc: 9160 ld.w r3, (r1, 0x0) + 28de: 4248 lsli r2, r2, 8 + 28e0: 68c9 andn r3, r2 + 28e2: 32b0 movi r2, 176 + 28e4: 4248 lsli r2, r2, 8 + 28e6: 6cc8 or r3, r2 + 28e8: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 28ea: 1029 lrw r1, 0x503c0 // 290c + 28ec: 1063 lrw r3, 0x20000050 // 28f8 + 28ee: 9340 ld.w r2, (r3, 0x0) + 28f0: 9264 ld.w r3, (r2, 0x10) + 28f2: 68c5 andn r3, r1 + 28f4: 1029 lrw r1, 0x40300 // 2918 + 28f6: 0783 br 0x27fc // 27fc + 28f8: 20000050 .long 0x20000050 + 28fc: 000103c0 .long 0x000103c0 + 2900: 2000004c .long 0x2000004c + 2904: 030103c0 .long 0x030103c0 + 2908: 030000c0 .long 0x030000c0 + 290c: 000503c0 .long 0x000503c0 + 2910: 01000280 .long 0x01000280 + 2914: 030002c0 .long 0x030002c0 + 2918: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +0000291c : +//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) +{ + 291c: 14d4 push r4-r7, r15 + 291e: 1421 subi r14, r14, 4 + 2920: b840 st.w r2, (r14, 0x0) + 2922: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2924: 125b lrw r2, 0x20000050 // 2a90 + 2926: 92c0 ld.w r6, (r2, 0x0) + 2928: 3200 movi r2, 0 + 292a: 4202 lsli r0, r2, 2 + 292c: 6018 addu r0, r6 + 292e: 908c ld.w r4, (r0, 0x30) + 2930: 2200 addi r2, 1 + 2932: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2934: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2936: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2938: 0bf9 bt 0x292a // 292a + } + switch(ADC12_ADCINX) + 293a: 3d0f cmphsi r5, 16 + 293c: 0825 bt 0x2986 // 2986 + 293e: 6c17 mov r0, r5 + 2940: 1255 lrw r2, 0x2000004c // 2a94 + 2942: 1296 lrw r4, 0x20000048 // 2a98 + 2944: e3fff1dc bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2948: 322c1408 .long 0x322c1408 + 294c: 4d474039 .long 0x4d474039 + 2950: 756d6559 .long 0x756d6559 + 2954: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2958: 9240 ld.w r2, (r2, 0x0) + 295a: 9200 ld.w r0, (r2, 0x0) + 295c: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 295e: 9201 ld.w r0, (r2, 0x4) + 2960: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 2962: 9400 ld.w r0, (r4, 0x0) + 2964: 9040 ld.w r2, (r0, 0x0) + 2966: 34f0 movi r4, 240 + 2968: 6891 andn r2, r4 + 296a: 3aa4 bseti r2, 4 + 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; + 296c: b040 st.w r2, (r0, 0x0) + break; + 296e: 040c br 0x2986 // 2986 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2970: 9200 ld.w r0, (r2, 0x0) + 2972: 9040 ld.w r2, (r0, 0x0) + 2974: 370f movi r7, 15 + 2976: 689d andn r2, r7 + 2978: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 297a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 297c: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 297e: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2980: 9440 ld.w r2, (r4, 0x0) + 2982: 9200 ld.w r0, (r2, 0x0) + 2984: b200 st.w r0, (r2, 0x0) + 2986: 4362 lsli r3, r3, 2 + 2988: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 298a: 966c ld.w r3, (r6, 0x30) + 298c: 3300 movi r3, 0 + 298e: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2990: 9860 ld.w r3, (r14, 0x0) + 2992: 6c4c or r1, r3 + 2994: 964c ld.w r2, (r6, 0x30) + 2996: 6d44 or r5, r1 + 2998: 6d48 or r5, r2 + 299a: b6ac st.w r5, (r6, 0x30) +} + 299c: 1401 addi r14, r14, 4 + 299e: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 29a0: 9200 ld.w r0, (r2, 0x0) + 29a2: 9040 ld.w r2, (r0, 0x0) + 29a4: 37f0 movi r7, 240 + 29a6: 689d andn r2, r7 + 29a8: 3aa4 bseti r2, 4 + 29aa: 07e8 br 0x297a // 297a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 29ac: 9200 ld.w r0, (r2, 0x0) + 29ae: 37f0 movi r7, 240 + 29b0: 9040 ld.w r2, (r0, 0x0) + 29b2: 47e8 lsli r7, r7, 8 + 29b4: 689d andn r2, r7 + 29b6: 3aac bseti r2, 12 + 29b8: 07e1 br 0x297a // 297a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 29ba: 9200 ld.w r0, (r2, 0x0) + 29bc: 37f0 movi r7, 240 + 29be: 9040 ld.w r2, (r0, 0x0) + 29c0: 47f0 lsli r7, r7, 16 + 29c2: 689d andn r2, r7 + 29c4: 3ab4 bseti r2, 20 + 29c6: 07da br 0x297a // 297a + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 29c8: 9200 ld.w r0, (r2, 0x0) + 29ca: 37f0 movi r7, 240 + 29cc: 9040 ld.w r2, (r0, 0x0) + 29ce: 47f4 lsli r7, r7, 20 + 29d0: 689d andn r2, r7 + 29d2: 3ab8 bseti r2, 24 + 29d4: 07d3 br 0x297a // 297a + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 29d6: 9200 ld.w r0, (r2, 0x0) + 29d8: 9040 ld.w r2, (r0, 0x0) + 29da: 4244 lsli r2, r2, 4 + 29dc: 4a44 lsri r2, r2, 4 + 29de: 3abc bseti r2, 28 + 29e0: 07cd br 0x297a // 297a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 29e2: 9240 ld.w r2, (r2, 0x0) + 29e4: 9200 ld.w r0, (r2, 0x0) + 29e6: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 29e8: 9201 ld.w r0, (r2, 0x4) + 29ea: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 29ec: 9400 ld.w r0, (r4, 0x0) + 29ee: 34f0 movi r4, 240 + 29f0: 9040 ld.w r2, (r0, 0x0) + 29f2: 4484 lsli r4, r4, 4 + 29f4: 6891 andn r2, r4 + 29f6: 3aa8 bseti r2, 8 + 29f8: 07ba br 0x296c // 296c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 29fa: 9240 ld.w r2, (r2, 0x0) + 29fc: 9200 ld.w r0, (r2, 0x0) + 29fe: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2a00: 9201 ld.w r0, (r2, 0x4) + 2a02: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2a04: 9400 ld.w r0, (r4, 0x0) + 2a06: 34f0 movi r4, 240 + 2a08: 9040 ld.w r2, (r0, 0x0) + 2a0a: 4488 lsli r4, r4, 8 + 2a0c: 6891 andn r2, r4 + 2a0e: 3aac bseti r2, 12 + 2a10: 07ae br 0x296c // 296c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 2a12: 9200 ld.w r0, (r2, 0x0) + 2a14: 9040 ld.w r2, (r0, 0x0) + 2a16: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2a18: 9041 ld.w r2, (r0, 0x4) + 2a1a: 370f movi r7, 15 + 2a1c: 689d andn r2, r7 + 2a1e: 3aa0 bseti r2, 0 + 2a20: 07af br 0x297e // 297e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2a22: 9200 ld.w r0, (r2, 0x0) + 2a24: 9040 ld.w r2, (r0, 0x0) + 2a26: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2a28: 9041 ld.w r2, (r0, 0x4) + 2a2a: 37f0 movi r7, 240 + 2a2c: 689d andn r2, r7 + 2a2e: 3aa4 bseti r2, 4 + 2a30: 07a7 br 0x297e // 297e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2a32: 9200 ld.w r0, (r2, 0x0) + 2a34: 9040 ld.w r2, (r0, 0x0) + 2a36: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2a38: 37f0 movi r7, 240 + 2a3a: 9041 ld.w r2, (r0, 0x4) + 2a3c: 47e4 lsli r7, r7, 4 + 2a3e: 689d andn r2, r7 + 2a40: 3aa8 bseti r2, 8 + 2a42: 079e br 0x297e // 297e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2a44: 9200 ld.w r0, (r2, 0x0) + 2a46: 9040 ld.w r2, (r0, 0x0) + 2a48: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2a4a: 37f0 movi r7, 240 + 2a4c: 9041 ld.w r2, (r0, 0x4) + 2a4e: 47e8 lsli r7, r7, 8 + 2a50: 689d andn r2, r7 + 2a52: 3aac bseti r2, 12 + 2a54: 0795 br 0x297e // 297e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2a56: 9200 ld.w r0, (r2, 0x0) + 2a58: 9040 ld.w r2, (r0, 0x0) + 2a5a: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2a5c: 37f0 movi r7, 240 + 2a5e: 9041 ld.w r2, (r0, 0x4) + 2a60: 47ec lsli r7, r7, 12 + 2a62: 689d andn r2, r7 + 2a64: 3ab0 bseti r2, 16 + 2a66: 078c br 0x297e // 297e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 2a68: 9200 ld.w r0, (r2, 0x0) + 2a6a: 9040 ld.w r2, (r0, 0x0) + 2a6c: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2a6e: 37f0 movi r7, 240 + 2a70: 9041 ld.w r2, (r0, 0x4) + 2a72: 47f0 lsli r7, r7, 16 + 2a74: 689d andn r2, r7 + 2a76: 3ab4 bseti r2, 20 + 2a78: 0783 br 0x297e // 297e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 2a7a: 9240 ld.w r2, (r2, 0x0) + 2a7c: 9200 ld.w r0, (r2, 0x0) + 2a7e: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2a80: 9201 ld.w r0, (r2, 0x4) + 2a82: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2a84: 9400 ld.w r0, (r4, 0x0) + 2a86: 9040 ld.w r2, (r0, 0x0) + 2a88: 340f movi r4, 15 + 2a8a: 6891 andn r2, r4 + 2a8c: 3aa0 bseti r2, 0 + 2a8e: 076f br 0x296c // 296c + 2a90: 20000050 .long 0x20000050 + 2a94: 2000004c .long 0x2000004c + 2a98: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002a9c : + 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) +{ + 2a9c: 14c4 push r4-r7 + 2a9e: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2aa0: 1165 lrw r3, 0x20000060 // 2b34 + 2aa2: 1186 lrw r4, 0x5a5a5a5a // 2b38 + 2aa4: 9360 ld.w r3, (r3, 0x0) + 2aa6: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2aa8: 3407 movi r4, 7 + 2aaa: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2aac: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2aae: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2ab0: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2ab2: 9384 ld.w r4, (r3, 0x10) + 2ab4: 3c40 cmpnei r4, 0 + 2ab6: 0bfe bt 0x2ab2 // 2ab2 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2ab8: 2102 addi r1, 3 + 2aba: 4922 lsri r1, r1, 2 + 2abc: 4122 lsli r1, r1, 2 + 2abe: 6048 addu r1, r2 + 2ac0: b820 st.w r1, (r14, 0x0) + 2ac2: 5829 subu r1, r0, r2 + 2ac4: b821 st.w r1, (r14, 0x4) + 2ac6: 9820 ld.w r1, (r14, 0x0) + 2ac8: 644a cmpne r2, r1 + 2aca: 0826 bt 0x2b16 // 2b16 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2acc: 3106 movi r1, 6 + SetUserKey; + 2ace: 105b lrw r2, 0x5a5a5a5a // 2b38 + 2ad0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2ad2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2ad4: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2ad6: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2ad8: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2ada: 9324 ld.w r1, (r3, 0x10) + 2adc: 3940 cmpnei r1, 0 + 2ade: 0bfe bt 0x2ada // 2ada + //Perform pre-programming 4 + SetUserKey; + 2ae0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2ae2: 3201 movi r2, 1 + 2ae4: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2ae6: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2ae8: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2aea: 934a ld.w r2, (r3, 0x28) + 2aec: 3a44 cmpnei r2, 4 + 2aee: 0bfe bt 0x2aea // 2aea + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2af0: 3102 movi r1, 2 + SetUserKey; + 2af2: 1052 lrw r2, 0x5a5a5a5a // 2b38 + 2af4: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2af6: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2af8: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2afa: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2afc: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2afe: 932a ld.w r1, (r3, 0x28) + 2b00: 3941 cmpnei r1, 1 + 2b02: 0bfe bt 0x2afe // 2afe + //Write page cache data to flash memory 6 + SetUserKey; + 2b04: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2b06: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2b08: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2b0a: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2b0c: 934a ld.w r2, (r3, 0x28) + 2b0e: 3a42 cmpnei r2, 2 + 2b10: 0bfe bt 0x2b0c // 2b0c +} + 2b12: 1402 addi r14, r14, 8 + 2b14: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2b16: 82e0 ld.b r7, (r2, 0x0) + 2b18: 8281 ld.b r4, (r2, 0x1) + 2b1a: 4488 lsli r4, r4, 8 + 2b1c: 8222 ld.b r1, (r2, 0x2) + 2b1e: 611c addu r4, r7 + 2b20: 82a3 ld.b r5, (r2, 0x3) + 2b22: 4130 lsli r1, r1, 16 + 2b24: 98c1 ld.w r6, (r14, 0x4) + 2b26: 6050 addu r1, r4 + 2b28: 45b8 lsli r5, r5, 24 + 2b2a: 6188 addu r6, r2 + 2b2c: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2b2e: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2b30: 2203 addi r2, 4 + 2b32: 07ca br 0x2ac6 // 2ac6 + 2b34: 20000060 .long 0x20000060 + 2b38: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002b3c : +//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) +{ + 2b3c: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2b48: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2b4a: 3b40 cmpnei r3, 0 + 2b4c: 0c06 bf 0x2b58 // 2b58 + 2b4e: 6d0f mov r4, r3 + 2b50: 6914 and r4, r5 + 2b52: 3c40 cmpnei r4, 0 + 2b54: 0802 bt 0x2b58 // 2b58 + RdStartAdd +=4; + 2b56: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2b58: 6d0f mov r4, r3 + 2b5a: 6914 and r4, r5 + 2b5c: 6100 addu r4, r0 + 2b5e: 8480 ld.b r4, (r4, 0x0) + 2b60: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002b68 : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2b68: 33f8 movi r3, 248 + 2b6a: 4366 lsli r3, r3, 6 + 2b6c: 115b lrw r2, 0x20000268 // 2c58 + 2b6e: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2b70: 3246 movi r2, 70 + 2b72: 117b lrw r3, 0x2000026e // 2c5c + 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 + 2b74: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2b76: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2b78: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2b7a: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2b7c: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2b7e: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2b80: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2b82: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2b84: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2b86: 1157 lrw r2, 0x200004d4 // 2c60 + 2b88: 8a22 ld.h r1, (r2, 0x4) + 2b8a: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2b8c: 8a23 ld.h r1, (r2, 0x6) + 2b8e: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2b90: 8a24 ld.h r1, (r2, 0x8) + 2b92: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2b94: 8a25 ld.h r1, (r2, 0xa) + 2b96: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2b98: 8a26 ld.h r1, (r2, 0xc) + 2b9a: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2b9c: 3146 movi r1, 70 + 2b9e: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2ba0: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2ba2: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2ba4: 3128 movi r1, 40 + 2ba6: 1170 lrw r3, 0x20000292 // 2c64 + 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 + 2ba8: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2baa: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2bac: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2bae: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2bb0: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2bb2: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2bb4: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2bb6: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2bb8: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2bba: 8a27 ld.h r1, (r2, 0xe) + 2bbc: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2bbe: 8a28 ld.h r1, (r2, 0x10) + 2bc0: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2bc2: 8a29 ld.h r1, (r2, 0x12) + 2bc4: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2bc6: 8a2a ld.h r1, (r2, 0x14) + 2bc8: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2bca: 8a2b ld.h r1, (r2, 0x16) + 2bcc: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2bce: 3128 movi r1, 40 + 2bd0: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2bd2: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2bd4: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2bd6: 8220 ld.b r1, (r2, 0x0) + 2bd8: 1164 lrw r3, 0x20000238 // 2c68 + 2bda: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2bdc: 8221 ld.b r1, (r2, 0x1) + 2bde: 1164 lrw r3, 0x20000240 // 2c6c + 2be0: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2be2: 3101 movi r1, 1 + 2be4: 1163 lrw r3, 0x20000241 // 2c70 + 2be6: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2be8: 3100 movi r1, 0 + 2bea: 1163 lrw r3, 0x20000264 // 2c74 + 2bec: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2bee: 3106 movi r1, 6 + 2bf0: 1162 lrw r3, 0x2000026c // 2c78 + 2bf2: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2bf4: 8223 ld.b r1, (r2, 0x3) + 2bf6: 1162 lrw r3, 0x20000265 // 2c7c + 2bf8: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2bfa: 9246 ld.w r2, (r2, 0x18) + 2bfc: 1161 lrw r3, 0x2000023c // 2c80 + 2bfe: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2c00: 1141 lrw r2, 0xea5f // 2c84 + 2c02: 1162 lrw r3, 0x200002b8 // 2c88 + 2c04: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2c06: 3200 movi r2, 0 + 2c08: 1161 lrw r3, 0x20000239 // 2c8c + 2c0a: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2c0c: 3202 movi r2, 2 + 2c0e: 1161 lrw r3, 0x2000023a // 2c90 + 2c10: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2c12: 3232 movi r2, 50 + 2c14: 1160 lrw r3, 0x20000290 // 2c94 + 2c16: a340 st.b r2, (r3, 0x0) +/**************************************************** +//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 + 2c18: 3200 movi r2, 0 + 2c1a: 1160 lrw r3, 0x200002bc // 2c98 + 2c1c: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2c1e: 3201 movi r2, 1 + 2c20: 107f lrw r3, 0x200002b6 // 2c9c + 2c22: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3_6V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2c24: 3203 movi r2, 3 + 2c26: 107f lrw r3, 0x200002b4 // 2ca0 + 2c28: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2c2a: 3204 movi r2, 4 + 2c2c: 107e lrw r3, 0x20000242 // 2ca4 + 2c2e: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2c30: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2c32: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2c34: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2c36: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2c38: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2c3a: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2c3c: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2c3e: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + 2c40: 3206 movi r2, 6 + 2c42: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + 2c44: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + 2c46: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + 2c48: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + 2c4a: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2c4c: 3204 movi r2, 4 + 2c4e: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2c50: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2c52: ab50 st.h r2, (r3, 0x20) + 2c54: 783c jmp r15 + 2c56: 0000 bkpt + 2c58: 20000268 .long 0x20000268 + 2c5c: 2000026e .long 0x2000026e + 2c60: 200004d4 .long 0x200004d4 + 2c64: 20000292 .long 0x20000292 + 2c68: 20000238 .long 0x20000238 + 2c6c: 20000240 .long 0x20000240 + 2c70: 20000241 .long 0x20000241 + 2c74: 20000264 .long 0x20000264 + 2c78: 2000026c .long 0x2000026c + 2c7c: 20000265 .long 0x20000265 + 2c80: 2000023c .long 0x2000023c + 2c84: 0000ea5f .long 0x0000ea5f + 2c88: 200002b8 .long 0x200002b8 + 2c8c: 20000239 .long 0x20000239 + 2c90: 2000023a .long 0x2000023a + 2c94: 20000290 .long 0x20000290 + 2c98: 200002bc .long 0x200002bc + 2c9c: 200002b6 .long 0x200002b6 + 2ca0: 200002b4 .long 0x200002b4 + 2ca4: 20000242 .long 0x20000242 + +Disassembly of section .text.CORET_DeInit: + +00002ca8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2ca8: 1065 lrw r3, 0x20000064 // 2cbc + 2caa: 3204 movi r2, 4 + 2cac: 9360 ld.w r3, (r3, 0x0) + 2cae: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2cb0: 3200 movi r2, 0 + 2cb2: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2cb4: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2cb6: b347 st.w r2, (r3, 0x1c) +} + 2cb8: 783c jmp r15 + 2cba: 0000 bkpt + 2cbc: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002cc0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2cc0: 1064 lrw r3, 0x20000064 // 2cd0 + 2cc2: 3200 movi r2, 0 + 2cc4: 9360 ld.w r3, (r3, 0x0) + 2cc6: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2cc8: 3201 movi r2, 1 + 2cca: 1063 lrw r3, 0xe000e100 // 2cd4 + 2ccc: b340 st.w r2, (r3, 0x0) +} + 2cce: 783c jmp r15 + 2cd0: 20000064 .long 0x20000064 + 2cd4: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002cd8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2cd8: 1063 lrw r3, 0x20000064 // 2ce4 + 2cda: 9340 ld.w r2, (r3, 0x0) + 2cdc: 9264 ld.w r3, (r2, 0x10) + 2cde: 3ba0 bseti r3, 0 + 2ce0: b264 st.w r3, (r2, 0x10) +} + 2ce2: 783c jmp r15 + 2ce4: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002ce8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2ce8: 1063 lrw r3, 0x20000064 // 2cf4 + 2cea: 9340 ld.w r2, (r3, 0x0) + 2cec: 9264 ld.w r3, (r2, 0x10) + 2cee: 3b82 bclri r3, 2 + 2cf0: b264 st.w r3, (r2, 0x10) +} + 2cf2: 783c jmp r15 + 2cf4: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002cf8 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2cf8: 1063 lrw r3, 0x20000064 // 2d04 + 2cfa: 9340 ld.w r2, (r3, 0x0) + 2cfc: 9264 ld.w r3, (r2, 0x10) + 2cfe: 3ba1 bseti r3, 1 + 2d00: b264 st.w r3, (r2, 0x10) +} + 2d02: 783c jmp r15 + 2d04: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002d08 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2d08: 1063 lrw r3, 0x20000064 // 2d14 + 2d0a: 3200 movi r2, 0 + 2d0c: 9360 ld.w r3, (r3, 0x0) + 2d0e: b346 st.w r2, (r3, 0x18) +} + 2d10: 783c jmp r15 + 2d12: 0000 bkpt + 2d14: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002d18
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2d18: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2d1a: e00000f9 bsr 0x2f0c // 2f0c + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2d1e: 1072 lrw r3, 0x20000524 // 2d64 + 2d20: 8340 ld.b r2, (r3, 0x0) + 2d22: 1032 lrw r1, 0xa5a0 // 2d68 + 2d24: 3000 movi r0, 0 + 2d26: e000089f bsr 0x3e64 // 3e64 + + TemCtrl_Init(); + 2d2a: e0001dc3 bsr 0x68b0 // 68b0 + DisPlay_Init(); + 2d2e: e00022e3 bsr 0x72f4 // 72f4 + Debug_Init(); + 2d32: e0002565 bsr 0x77fc // 77fc + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2d36: e3fff7c7 bsr 0x1cc4 // 1cc4 + + UART2_TASK(); + 2d3a: e000070b bsr 0x3b50 // 3b50 + + Touch_Key_Task(); + 2d3e: e0000adb bsr 0x42f4 // 42f4 + + TemCtrl_Pro(); + 2d42: e0001f6f bsr 0x6c20 // 6c20 + + DisPlay_Task(); + 2d46: e00022e7 bsr 0x7314 // 7314 + + BUS485Send_Task(); + 2d4a: e0000825 bsr 0x3d94 // 3d94 + + HT1621_Refresh_Task(); + 2d4e: e0001c2b bsr 0x65a4 // 65a4 + + ADC_Sample_Task(); + 2d52: e0001131 bsr 0x4fb4 // 4fb4 + + Debug_Task(); + 2d56: e00025c7 bsr 0x78e4 // 78e4 + + RLY_Direct_Control(); + 2d5a: e0002661 bsr 0x7a1c // 7a1c + + Tm1812_Task(); + 2d5e: e0001669 bsr 0x5a30 // 5a30 + 2d62: 07ea br 0x2d36 // 2d36 + 2d64: 20000524 .long 0x20000524 + 2d68: 0000a5a0 .long 0x0000a5a0 + +Disassembly of section .text.delay_nms: + +00002d6c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 2d6c: 14d0 push r15 + 2d6e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2d70: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2d72: 3300 movi r3, 0 + j = 50* t; + 2d74: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2d76: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2d78: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2d7a: b860 st.w r3, (r14, 0x0) + 2d7c: 9840 ld.w r2, (r14, 0x0) + 2d7e: 9861 ld.w r3, (r14, 0x4) + 2d80: 64c8 cmphs r2, r3 + 2d82: 0c03 bf 0x2d88 // 2d88 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2d84: 1403 addi r14, r14, 12 + 2d86: 1490 pop r15 + k++; + 2d88: 9862 ld.w r3, (r14, 0x8) + 2d8a: 2300 addi r3, 1 + 2d8c: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 2d8e: e3fff79b bsr 0x1cc4 // 1cc4 + for ( i = 0; i < j; i++ ) + 2d92: 9860 ld.w r3, (r14, 0x0) + 2d94: 2300 addi r3, 1 + 2d96: 07f2 br 0x2d7a // 2d7a + +Disassembly of section .text.delay_nus: + +00002d98 : +void delay_nus(unsigned int t) +{ + 2d98: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 2d9a: 3300 movi r3, 0 + 2d9c: b862 st.w r3, (r14, 0x8) + j = 1* t; + 2d9e: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 2da0: b860 st.w r3, (r14, 0x0) + 2da2: 9840 ld.w r2, (r14, 0x0) + 2da4: 9861 ld.w r3, (r14, 0x4) + 2da6: 64c8 cmphs r2, r3 + 2da8: 0c03 bf 0x2dae // 2dae + { + k++; + } +} + 2daa: 1403 addi r14, r14, 12 + 2dac: 783c jmp r15 + k++; + 2dae: 9862 ld.w r3, (r14, 0x8) + 2db0: 2300 addi r3, 1 + 2db2: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 2db4: 9860 ld.w r3, (r14, 0x0) + 2db6: 2300 addi r3, 1 + 2db8: 07f4 br 0x2da0 // 2da0 + +Disassembly of section .text.GPIO_CONFIG: + +00002dbc : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 2dbc: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 2dbe: 1181 lrw r4, 0x2000004c // 2e40 + 2dc0: 310e movi r1, 14 + 2dc2: 9400 ld.w r0, (r4, 0x0) + 2dc4: e3fff8e6 bsr 0x1f90 // 1f90 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 2dc8: 320e movi r2, 14 + 2dca: 310e movi r1, 14 + 2dcc: 3000 movi r0, 0 + 2dce: e3fff8f3 bsr 0x1fb4 // 1fb4 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 2dd2: 300e movi r0, 14 + 2dd4: e3fff976 bsr 0x20c0 // 20c0 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 2dd8: 3180 movi r1, 128 + 2dda: 3200 movi r2, 0 + 2ddc: 4127 lsli r1, r1, 7 + 2dde: 3001 movi r0, 1 + 2de0: e3fff7b4 bsr 0x1d48 // 1d48 + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 2de4: 3180 movi r1, 128 + 2de6: 4127 lsli r1, r1, 7 + 2de8: 3001 movi r0, 1 + 2dea: e3fff7cf bsr 0x1d88 // 1d88 + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 2dee: 3180 movi r1, 128 + 2df0: 9400 ld.w r0, (r4, 0x0) + 2df2: 4127 lsli r1, r1, 7 + 2df4: e3fff7e4 bsr 0x1dbc // 1dbc +// GPIO_Init(GPIOA0,14,Output); +// GPIO_Write_Low(GPIOA0,14); +//// GPIO_Write_High(GPIOA0,14); + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 2df8: 1093 lrw r4, 0x20000048 // 2e44 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 2dfa: e3fff7eb bsr 0x1dd0 // 1dd0 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 2dfe: 9400 ld.w r0, (r4, 0x0) + 2e00: 3105 movi r1, 5 + 2e02: e3fff8c7 bsr 0x1f90 // 1f90 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 2e06: 3205 movi r2, 5 + 2e08: 3105 movi r1, 5 + 2e0a: 3002 movi r0, 2 + 2e0c: e3fff8d4 bsr 0x1fb4 // 1fb4 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 2e10: 3005 movi r0, 5 + 2e12: e3fff9d5 bsr 0x21bc // 21bc + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 2e16: 3201 movi r2, 1 + 2e18: 3120 movi r1, 32 + 2e1a: 3001 movi r0, 1 + 2e1c: e3fff796 bsr 0x1d48 // 1d48 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 2e20: 3200 movi r2, 0 + 2e22: 3120 movi r1, 32 + 2e24: 3001 movi r0, 1 + 2e26: e3fff791 bsr 0x1d48 // 1d48 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 2e2a: 3120 movi r1, 32 + 2e2c: 3001 movi r0, 1 + 2e2e: e3fff7ad bsr 0x1d88 // 1d88 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 2e32: 9400 ld.w r0, (r4, 0x0) + 2e34: 3120 movi r1, 32 + 2e36: e3fff7c3 bsr 0x1dbc // 1dbc + EXI3_Int_Enable(); + 2e3a: e3fff7c3 bsr 0x1dc0 // 1dc0 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 2e3e: 1491 pop r4, r15 + 2e40: 2000004c .long 0x2000004c + 2e44: 20000048 .long 0x20000048 + +Disassembly of section .text.BT_CONFIG: + +00002e48 : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 2e48: 14d2 push r4-r5, r15 + 2e4a: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 2e4c: 1095 lrw r4, 0x20000008 // 2ea0 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2e4e: 3500 movi r5, 0 + BT_DeInit(BT1); + 2e50: 9400 ld.w r0, (r4, 0x0) + 2e52: e3fffa19 bsr 0x2284 // 2284 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 2e56: 9400 ld.w r0, (r4, 0x0) + 2e58: b8a1 st.w r5, (r14, 0x4) + 2e5a: b8a0 st.w r5, (r14, 0x0) + 2e5c: 3308 movi r3, 8 + 2e5e: 3200 movi r2, 0 + 2e60: 3101 movi r1, 1 + 2e62: e3fffa28 bsr 0x22b2 // 22b2 + 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); + 2e66: 3380 movi r3, 128 + 2e68: 4363 lsli r3, r3, 3 + 2e6a: b861 st.w r3, (r14, 0x4) + 2e6c: 9400 ld.w r0, (r4, 0x0) + 2e6e: 3300 movi r3, 0 + 2e70: b8a3 st.w r5, (r14, 0xc) + 2e72: b8a2 st.w r5, (r14, 0x8) + 2e74: b8a0 st.w r5, (r14, 0x0) + 2e76: 3200 movi r2, 0 + 2e78: 3180 movi r1, 128 + 2e7a: e3fffa28 bsr 0x22ca // 22ca + BT_Period_CMP_Write(BT1,4780,1); + 2e7e: 3201 movi r2, 1 + 2e80: 1029 lrw r1, 0x12ac // 2ea4 + 2e82: 9400 ld.w r0, (r4, 0x0) + 2e84: e3fffa39 bsr 0x22f6 // 22f6 + BT_Start(BT1); + 2e88: 9400 ld.w r0, (r4, 0x0) + 2e8a: e3fffa0b bsr 0x22a0 // 22a0 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2e8e: 9400 ld.w r0, (r4, 0x0) + 2e90: 3202 movi r2, 2 + 2e92: 3101 movi r1, 1 + 2e94: e3fffa34 bsr 0x22fc // 22fc + BT1_INT_ENABLE(); + 2e98: e3fffa3c bsr 0x2310 // 2310 + +} + 2e9c: 1404 addi r14, r14, 16 + 2e9e: 1492 pop r4-r5, r15 + 2ea0: 20000008 .long 0x20000008 + 2ea4: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +00002ea8 : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 2ea8: 14d0 push r15 + 2eaa: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2eac: e3fff658 bsr 0x1b5c // 1b5c + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2eb0: 3101 movi r1, 1 + 2eb2: 3001 movi r0, 1 + 2eb4: e3fff67a bsr 0x1ba8 // 1ba8 + //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 + 2eb8: 3000 movi r0, 0 + 2eba: e3fff6d3 bsr 0x1c60 // 1c60 + 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 + 2ebe: 3180 movi r1, 128 + 2ec0: 3308 movi r3, 8 + 2ec2: 3200 movi r2, 0 + 2ec4: 4121 lsli r1, r1, 1 + 2ec6: 3002 movi r0, 2 + 2ec8: e3fff688 bsr 0x1bd8 // 1bd8 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2ecc: 30c0 movi r0, 192 + 2ece: 3118 movi r1, 24 + 2ed0: 4002 lsli r0, r0, 2 + 2ed2: e3fff703 bsr 0x1cd8 // 1cd8 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 2ed6: 3001 movi r0, 1 + 2ed8: e3fff6d8 bsr 0x1c88 // 1c88 + SYSCON_IWDCNT_Reload(); //reload WDT + 2edc: e3fff6f4 bsr 0x1cc4 // 1cc4 + IWDT_Int_Enable(); + 2ee0: e3fff726 bsr 0x1d2c // 1d2c + //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 + 2ee4: 3340 movi r3, 64 + 2ee6: b860 st.w r3, (r14, 0x0) + 2ee8: 31c0 movi r1, 192 + 2eea: 3380 movi r3, 128 + 2eec: 4364 lsli r3, r3, 4 + 2eee: 3200 movi r2, 0 + 2ef0: 4123 lsli r1, r1, 3 + 2ef2: 3000 movi r0, 0 + 2ef4: e3fff6fe bsr 0x1cf0 // 1cf0 + LVD_Int_Enable(); + 2ef8: e3fff70c bsr 0x1d10 // 1d10 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2efc: e3fff772 bsr 0x1de0 // 1de0 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 2f00: 3000 movi r0, 0 + 2f02: e00037b1 bsr 0x9e64 // 9e64 + +} + 2f06: 1401 addi r14, r14, 4 + 2f08: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002f0c : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2f0c: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2f0e: 1162 lrw r3, 0x2000005c // 2f94 + Sys_RSR = 0x00000000; + 2f10: 1142 lrw r2, 0x200000b4 // 2f98 + 2f12: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2f14: 9360 ld.w r3, (r3, 0x0) + 2f16: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 2f18: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2f1a: 600c addu r0, r3 + 2f1c: 9004 ld.w r0, (r0, 0x10) + 2f1e: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 2f20: 105f lrw r2, 0x200000b0 // 2f9c + 2f22: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 2f24: 3180 movi r1, 128 + 2f26: 4121 lsli r1, r1, 1 + 2f28: 604c addu r1, r3 + 2f2a: 9120 ld.w r1, (r1, 0x0) + 2f2c: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 2f2e: 105d lrw r2, 0xfffffff // 2fa0 + 2f30: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2f32: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 2f34: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 2f36: 934c ld.w r2, (r3, 0x30) + 2f38: 6884 and r2, r1 + 2f3a: 3a40 cmpnei r2, 0 + 2f3c: 0ffd bf 0x2f36 // 2f36 +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 2f3e: e3ffffb5 bsr 0x2ea8 // 2ea8 + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 2f42: e000055b bsr 0x39f8 // 39f8 + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 2f46: e3fff759 bsr 0x1df8 // 1df8 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 2f4a: 3101 movi r1, 1 + 2f4c: 300f movi r0, 15 + 2f4e: e3fff767 bsr 0x1e1c // 1e1c + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 2f52: 3102 movi r1, 2 + 2f54: 3019 movi r0, 25 + 2f56: e3fff763 bsr 0x1e1c // 1e1c + + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 2f5a: 3101 movi r1, 1 + 2f5c: 3016 movi r0, 22 + 2f5e: e3fff75f bsr 0x1e1c // 1e1c + + Set_INT_Priority(EXI4_IRQ, 1); //过零信号外部IO中断 + 2f62: 3101 movi r1, 1 + 2f64: 3017 movi r0, 23 + 2f66: e3fff75b bsr 0x1e1c // 1e1c + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 2f6a: e3fff771 bsr 0x1e4c // 1e4c +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 2f6e: e0002501 bsr 0x7970 // 7970 + + BT_CONFIG(); //BT initial + 2f72: e3ffff6b bsr 0x2e48 // 2e48 + + GPIO_CONFIG(); + 2f76: e3ffff23 bsr 0x2dbc // 2dbc + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 2f7a: 102b lrw r1, 0x80b4 // 2fa4 + 2f7c: 3002 movi r0, 2 + 2f7e: e0000543 bsr 0x3a04 // 3a04 + + HT1621_Init(); //显示驱动初始化 + 2f82: e0001673 bsr 0x5c68 // 5c68 + + TM1812_LED_Init(); + 2f86: e00015ff bsr 0x5b84 // 5b84 + + ADC_Init(); + 2f8a: e0000f55 bsr 0x4e34 // 4e34 + + Touch_Key_Init(); + 2f8e: e0000773 bsr 0x3e74 // 3e74 +} + 2f92: 1490 pop r15 + 2f94: 2000005c .long 0x2000005c + 2f98: 200000b4 .long 0x200000b4 + 2f9c: 200000b0 .long 0x200000b0 + 2fa0: 0fffffff .long 0x0fffffff + 2fa4: 000080b4 .long 0x000080b4 + +Disassembly of section .text.SYSCONIntHandler: + +00002fa8 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2fa8: 1460 nie + 2faa: 1462 ipush + // ISR content ... + nop; + 2fac: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 2fae: 117a lrw r3, 0x2000005c // 3094 + 2fb0: 3280 movi r2, 128 + 2fb2: 9360 ld.w r3, (r3, 0x0) + 2fb4: 60c8 addu r3, r2 + 2fb6: 9323 ld.w r1, (r3, 0xc) + 2fb8: 3001 movi r0, 1 + 2fba: 6840 and r1, r0 + 2fbc: 3940 cmpnei r1, 0 + 2fbe: 0c04 bf 0x2fc6 // 2fc6 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 2fc0: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 2fc2: 1463 ipop + 2fc4: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2fc6: 9323 ld.w r1, (r3, 0xc) + 2fc8: 3002 movi r0, 2 + 2fca: 6840 and r1, r0 + 2fcc: 3940 cmpnei r1, 0 + 2fce: 0bf9 bt 0x2fc0 // 2fc0 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 2fd0: 9323 ld.w r1, (r3, 0xc) + 2fd2: 3008 movi r0, 8 + 2fd4: 6840 and r1, r0 + 2fd6: 3940 cmpnei r1, 0 + 2fd8: 0bf4 bt 0x2fc0 // 2fc0 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2fda: 9323 ld.w r1, (r3, 0xc) + 2fdc: 3010 movi r0, 16 + 2fde: 6840 and r1, r0 + 2fe0: 3940 cmpnei r1, 0 + 2fe2: 0bef bt 0x2fc0 // 2fc0 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2fe4: 9323 ld.w r1, (r3, 0xc) + 2fe6: 6848 and r1, r2 + 2fe8: 3940 cmpnei r1, 0 + 2fea: 0c03 bf 0x2ff0 // 2ff0 + SYSCON->ICR = CMD_ERR_ST; + 2fec: b341 st.w r2, (r3, 0x4) +} + 2fee: 07ea br 0x2fc2 // 2fc2 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 2ff0: 3280 movi r2, 128 + 2ff2: 9323 ld.w r1, (r3, 0xc) + 2ff4: 4241 lsli r2, r2, 1 + 2ff6: 6848 and r1, r2 + 2ff8: 3940 cmpnei r1, 0 + 2ffa: 0bf9 bt 0x2fec // 2fec + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2ffc: 3280 movi r2, 128 + 2ffe: 9323 ld.w r1, (r3, 0xc) + 3000: 4242 lsli r2, r2, 2 + 3002: 6848 and r1, r2 + 3004: 3940 cmpnei r1, 0 + 3006: 0bf3 bt 0x2fec // 2fec + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 3008: 3280 movi r2, 128 + 300a: 9323 ld.w r1, (r3, 0xc) + 300c: 4243 lsli r2, r2, 3 + 300e: 6848 and r1, r2 + 3010: 3940 cmpnei r1, 0 + 3012: 0bed bt 0x2fec // 2fec + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 3014: 3280 movi r2, 128 + 3016: 9323 ld.w r1, (r3, 0xc) + 3018: 4244 lsli r2, r2, 4 + 301a: 6848 and r1, r2 + 301c: 3940 cmpnei r1, 0 + 301e: 0c03 bf 0x3024 // 3024 + nop; + 3020: 6c03 mov r0, r0 + 3022: 07e5 br 0x2fec // 2fec + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 3024: 3280 movi r2, 128 + 3026: 9323 ld.w r1, (r3, 0xc) + 3028: 4245 lsli r2, r2, 5 + 302a: 6848 and r1, r2 + 302c: 3940 cmpnei r1, 0 + 302e: 0bdf bt 0x2fec // 2fec + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 3030: 3280 movi r2, 128 + 3032: 9323 ld.w r1, (r3, 0xc) + 3034: 4246 lsli r2, r2, 6 + 3036: 6848 and r1, r2 + 3038: 3940 cmpnei r1, 0 + 303a: 0bd9 bt 0x2fec // 2fec + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 303c: 3280 movi r2, 128 + 303e: 9323 ld.w r1, (r3, 0xc) + 3040: 4247 lsli r2, r2, 7 + 3042: 6848 and r1, r2 + 3044: 3940 cmpnei r1, 0 + 3046: 0bd3 bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 3048: 3280 movi r2, 128 + 304a: 9323 ld.w r1, (r3, 0xc) + 304c: 424b lsli r2, r2, 11 + 304e: 6848 and r1, r2 + 3050: 3940 cmpnei r1, 0 + 3052: 0bcd bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 3054: 3280 movi r2, 128 + 3056: 9323 ld.w r1, (r3, 0xc) + 3058: 424c lsli r2, r2, 12 + 305a: 6848 and r1, r2 + 305c: 3940 cmpnei r1, 0 + 305e: 0bc7 bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3060: 3280 movi r2, 128 + 3062: 9323 ld.w r1, (r3, 0xc) + 3064: 424d lsli r2, r2, 13 + 3066: 6848 and r1, r2 + 3068: 3940 cmpnei r1, 0 + 306a: 0bc1 bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 306c: 3280 movi r2, 128 + 306e: 9323 ld.w r1, (r3, 0xc) + 3070: 424e lsli r2, r2, 14 + 3072: 6848 and r1, r2 + 3074: 3940 cmpnei r1, 0 + 3076: 0bbb bt 0x2fec // 2fec + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 3078: 3280 movi r2, 128 + 307a: 9323 ld.w r1, (r3, 0xc) + 307c: 424f lsli r2, r2, 15 + 307e: 6848 and r1, r2 + 3080: 3940 cmpnei r1, 0 + 3082: 0bb5 bt 0x2fec // 2fec + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3084: 3280 movi r2, 128 + 3086: 9323 ld.w r1, (r3, 0xc) + 3088: 4256 lsli r2, r2, 22 + 308a: 6848 and r1, r2 + 308c: 3940 cmpnei r1, 0 + 308e: 0baf bt 0x2fec // 2fec + 3090: 0799 br 0x2fc2 // 2fc2 + 3092: 0000 bkpt + 3094: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00003098 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 3098: 1460 nie + 309a: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 309c: 1078 lrw r3, 0x20000060 // 30fc + 309e: 3101 movi r1, 1 + 30a0: 9360 ld.w r3, (r3, 0x0) + 30a2: 934b ld.w r2, (r3, 0x2c) + 30a4: 6884 and r2, r1 + 30a6: 3a40 cmpnei r2, 0 + 30a8: 0c04 bf 0x30b0 // 30b0 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 30aa: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 30ac: 1463 ipop + 30ae: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 30b0: 934b ld.w r2, (r3, 0x2c) + 30b2: 3102 movi r1, 2 + 30b4: 6884 and r2, r1 + 30b6: 3a40 cmpnei r2, 0 + 30b8: 0bf9 bt 0x30aa // 30aa + else if(IFC->MISR&PEP_END_INT) + 30ba: 934b ld.w r2, (r3, 0x2c) + 30bc: 3104 movi r1, 4 + 30be: 6884 and r2, r1 + 30c0: 3a40 cmpnei r2, 0 + 30c2: 0bf4 bt 0x30aa // 30aa + else if(IFC->MISR&PROT_ERR_INT) + 30c4: 3280 movi r2, 128 + 30c6: 932b ld.w r1, (r3, 0x2c) + 30c8: 4245 lsli r2, r2, 5 + 30ca: 6848 and r1, r2 + 30cc: 3940 cmpnei r1, 0 + 30ce: 0c03 bf 0x30d4 // 30d4 + IFC->ICR=OVW_ERR_INT; + 30d0: b34c st.w r2, (r3, 0x30) +} + 30d2: 07ed br 0x30ac // 30ac + else if(IFC->MISR&UDEF_ERR_INT) + 30d4: 3280 movi r2, 128 + 30d6: 932b ld.w r1, (r3, 0x2c) + 30d8: 4246 lsli r2, r2, 6 + 30da: 6848 and r1, r2 + 30dc: 3940 cmpnei r1, 0 + 30de: 0bf9 bt 0x30d0 // 30d0 + else if(IFC->MISR&ADDR_ERR_INT) + 30e0: 3280 movi r2, 128 + 30e2: 932b ld.w r1, (r3, 0x2c) + 30e4: 4247 lsli r2, r2, 7 + 30e6: 6848 and r1, r2 + 30e8: 3940 cmpnei r1, 0 + 30ea: 0bf3 bt 0x30d0 // 30d0 + else if(IFC->MISR&OVW_ERR_INT) + 30ec: 3280 movi r2, 128 + 30ee: 932b ld.w r1, (r3, 0x2c) + 30f0: 4248 lsli r2, r2, 8 + 30f2: 6848 and r1, r2 + 30f4: 3940 cmpnei r1, 0 + 30f6: 0bed bt 0x30d0 // 30d0 + 30f8: 07da br 0x30ac // 30ac + 30fa: 0000 bkpt + 30fc: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +00003100 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 3100: 1460 nie + 3102: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 3104: 1078 lrw r3, 0x20000050 // 3164 + 3106: 3101 movi r1, 1 + 3108: 9360 ld.w r3, (r3, 0x0) + 310a: 9348 ld.w r2, (r3, 0x20) + 310c: 6884 and r2, r1 + 310e: 3a40 cmpnei r2, 0 + 3110: 0c04 bf 0x3118 // 3118 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 3112: 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; + } +} + 3114: 1463 ipop + 3116: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 3118: 9348 ld.w r2, (r3, 0x20) + 311a: 3102 movi r1, 2 + 311c: 6884 and r2, r1 + 311e: 3a40 cmpnei r2, 0 + 3120: 0bf9 bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 3122: 9348 ld.w r2, (r3, 0x20) + 3124: 3104 movi r1, 4 + 3126: 6884 and r2, r1 + 3128: 3a40 cmpnei r2, 0 + 312a: 0bf4 bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 312c: 9348 ld.w r2, (r3, 0x20) + 312e: 3110 movi r1, 16 + 3130: 6884 and r2, r1 + 3132: 3a40 cmpnei r2, 0 + 3134: 0bef bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 3136: 9348 ld.w r2, (r3, 0x20) + 3138: 3120 movi r1, 32 + 313a: 6884 and r2, r1 + 313c: 3a40 cmpnei r2, 0 + 313e: 0bea bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 3140: 9348 ld.w r2, (r3, 0x20) + 3142: 3140 movi r1, 64 + 3144: 6884 and r2, r1 + 3146: 3a40 cmpnei r2, 0 + 3148: 0be5 bt 0x3112 // 3112 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 314a: 9348 ld.w r2, (r3, 0x20) + 314c: 3180 movi r1, 128 + 314e: 6884 and r2, r1 + 3150: 3a40 cmpnei r2, 0 + 3152: 0be0 bt 0x3112 // 3112 + 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 + 3154: 3280 movi r2, 128 + 3156: 9328 ld.w r1, (r3, 0x20) + 3158: 4249 lsli r2, r2, 9 + 315a: 6848 and r1, r2 + 315c: 3940 cmpnei r1, 0 + 315e: 0fdb bf 0x3114 // 3114 + ADC0->CSR = ADC12_SEQ_END0; + 3160: b347 st.w r2, (r3, 0x1c) +} + 3162: 07d9 br 0x3114 // 3114 + 3164: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +00003168 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 3168: 1460 nie + 316a: 1462 ipush + 316c: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 316e: 1387 lrw r4, 0x20000020 // 3308 + 3170: 3280 movi r2, 128 + 3172: 9460 ld.w r3, (r4, 0x0) + 3174: 60c8 addu r3, r2 + 3176: 9335 ld.w r1, (r3, 0x54) + 3178: 3001 movi r0, 1 + 317a: 6840 and r1, r0 + 317c: 3940 cmpnei r1, 0 + 317e: 0c03 bf 0x3184 // 3184 + 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; + 3180: b317 st.w r0, (r3, 0x5c) + 3182: 0424 br 0x31ca // 31ca + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3184: 9335 ld.w r1, (r3, 0x54) + 3186: 3002 movi r0, 2 + 3188: 6840 and r1, r0 + 318a: 3940 cmpnei r1, 0 + 318c: 0bfa bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 318e: 9335 ld.w r1, (r3, 0x54) + 3190: 3004 movi r0, 4 + 3192: 6840 and r1, r0 + 3194: 3940 cmpnei r1, 0 + 3196: 0bf5 bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 3198: 9335 ld.w r1, (r3, 0x54) + 319a: 3008 movi r0, 8 + 319c: 6840 and r1, r0 + 319e: 3940 cmpnei r1, 0 + 31a0: 0bf0 bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 31a2: 9335 ld.w r1, (r3, 0x54) + 31a4: 3010 movi r0, 16 + 31a6: 6840 and r1, r0 + 31a8: 3940 cmpnei r1, 0 + 31aa: 0c1f bf 0x31e8 // 31e8 + EPT0->ICR=EPT_CAP_LD0; + 31ac: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 31ae: 3200 movi r2, 0 + 31b0: 3101 movi r1, 1 + 31b2: 3000 movi r0, 0 + 31b4: e3fff5ca bsr 0x1d48 // 1d48 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 31b8: 3201 movi r2, 1 + 31ba: 3101 movi r1, 1 + 31bc: 3001 movi r0, 1 + 31be: e3fff5c5 bsr 0x1d48 // 1d48 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 31c2: 9460 ld.w r3, (r4, 0x0) + 31c4: 934b ld.w r2, (r3, 0x2c) + 31c6: 1272 lrw r3, 0x200002c4 // 330c + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 31c8: 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 + 31ca: 9460 ld.w r3, (r4, 0x0) + 31cc: 3280 movi r2, 128 + 31ce: 60c8 addu r3, r2 + 31d0: 932b ld.w r1, (r3, 0x2c) + 31d2: 3001 movi r0, 1 + 31d4: 6840 and r1, r0 + 31d6: 3940 cmpnei r1, 0 + 31d8: 0c61 bf 0x329a // 329a + { + 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; + 31da: 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; + } +} + 31dc: d9ee2001 ld.w r15, (r14, 0x4) + 31e0: 9880 ld.w r4, (r14, 0x0) + 31e2: 1402 addi r14, r14, 8 + 31e4: 1463 ipop + 31e6: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 31e8: 9335 ld.w r1, (r3, 0x54) + 31ea: 3020 movi r0, 32 + 31ec: 6840 and r1, r0 + 31ee: 3940 cmpnei r1, 0 + 31f0: 0c10 bf 0x3210 // 3210 + EPT0->ICR=EPT_CAP_LD1; + 31f2: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 31f4: 3200 movi r2, 0 + 31f6: 3101 movi r1, 1 + 31f8: 3001 movi r0, 1 + 31fa: e3fff5a7 bsr 0x1d48 // 1d48 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 31fe: 3201 movi r2, 1 + 3200: 3101 movi r1, 1 + 3202: 3000 movi r0, 0 + 3204: e3fff5a2 bsr 0x1d48 // 1d48 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 3208: 9460 ld.w r3, (r4, 0x0) + 320a: 934c ld.w r2, (r3, 0x30) + 320c: 1261 lrw r3, 0x200002c0 // 3310 + 320e: 07dd br 0x31c8 // 31c8 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 3210: 9335 ld.w r1, (r3, 0x54) + 3212: 3040 movi r0, 64 + 3214: 6840 and r1, r0 + 3216: 3940 cmpnei r1, 0 + 3218: 0bb4 bt 0x3180 // 3180 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 321a: 9335 ld.w r1, (r3, 0x54) + 321c: 6848 and r1, r2 + 321e: 3940 cmpnei r1, 0 + 3220: 0c03 bf 0x3226 // 3226 + EPT0->ICR=EPT_CDD; + 3222: b357 st.w r2, (r3, 0x5c) + 3224: 07d3 br 0x31ca // 31ca + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 3226: 3280 movi r2, 128 + 3228: 9335 ld.w r1, (r3, 0x54) + 322a: 4241 lsli r2, r2, 1 + 322c: 6848 and r1, r2 + 322e: 3940 cmpnei r1, 0 + 3230: 0bf9 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 3232: 3280 movi r2, 128 + 3234: 9335 ld.w r1, (r3, 0x54) + 3236: 4242 lsli r2, r2, 2 + 3238: 6848 and r1, r2 + 323a: 3940 cmpnei r1, 0 + 323c: 0bf3 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 323e: 3280 movi r2, 128 + 3240: 9335 ld.w r1, (r3, 0x54) + 3242: 4243 lsli r2, r2, 3 + 3244: 6848 and r1, r2 + 3246: 3940 cmpnei r1, 0 + 3248: 0bed bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 324a: 3280 movi r2, 128 + 324c: 9335 ld.w r1, (r3, 0x54) + 324e: 4244 lsli r2, r2, 4 + 3250: 6848 and r1, r2 + 3252: 3940 cmpnei r1, 0 + 3254: 0be7 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 3256: 3280 movi r2, 128 + 3258: 9335 ld.w r1, (r3, 0x54) + 325a: 4245 lsli r2, r2, 5 + 325c: 6848 and r1, r2 + 325e: 3940 cmpnei r1, 0 + 3260: 0be1 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3262: 3280 movi r2, 128 + 3264: 9335 ld.w r1, (r3, 0x54) + 3266: 4246 lsli r2, r2, 6 + 3268: 6848 and r1, r2 + 326a: 3940 cmpnei r1, 0 + 326c: 0bdb bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 326e: 3280 movi r2, 128 + 3270: 9335 ld.w r1, (r3, 0x54) + 3272: 4247 lsli r2, r2, 7 + 3274: 6848 and r1, r2 + 3276: 3940 cmpnei r1, 0 + 3278: 0bd5 bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 327a: 3280 movi r2, 128 + 327c: 9335 ld.w r1, (r3, 0x54) + 327e: 4248 lsli r2, r2, 8 + 3280: 6848 and r1, r2 + 3282: 3940 cmpnei r1, 0 + 3284: 0bcf bt 0x3222 // 3222 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 3286: 3280 movi r2, 128 + 3288: 9335 ld.w r1, (r3, 0x54) + 328a: 4249 lsli r2, r2, 9 + 328c: 6848 and r1, r2 + 328e: 3940 cmpnei r1, 0 + 3290: 0f9d bf 0x31ca // 31ca + EPT0->ICR=EPT_PEND; + 3292: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3294: e3fff98c bsr 0x25ac // 25ac + 3298: 0799 br 0x31ca // 31ca + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 329a: 932b ld.w r1, (r3, 0x2c) + 329c: 3002 movi r0, 2 + 329e: 6840 and r1, r0 + 32a0: 3940 cmpnei r1, 0 + 32a2: 0b9c bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 32a4: 932b ld.w r1, (r3, 0x2c) + 32a6: 3004 movi r0, 4 + 32a8: 6840 and r1, r0 + 32aa: 3940 cmpnei r1, 0 + 32ac: 0b97 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 32ae: 932b ld.w r1, (r3, 0x2c) + 32b0: 3008 movi r0, 8 + 32b2: 6840 and r1, r0 + 32b4: 3940 cmpnei r1, 0 + 32b6: 0b92 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 32b8: 932b ld.w r1, (r3, 0x2c) + 32ba: 3010 movi r0, 16 + 32bc: 6840 and r1, r0 + 32be: 3940 cmpnei r1, 0 + 32c0: 0b8d bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 32c2: 932b ld.w r1, (r3, 0x2c) + 32c4: 3020 movi r0, 32 + 32c6: 6840 and r1, r0 + 32c8: 3940 cmpnei r1, 0 + 32ca: 0b88 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 32cc: 932b ld.w r1, (r3, 0x2c) + 32ce: 3040 movi r0, 64 + 32d0: 6840 and r1, r0 + 32d2: 3940 cmpnei r1, 0 + 32d4: 0b83 bt 0x31da // 31da + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 32d6: 932b ld.w r1, (r3, 0x2c) + 32d8: 6848 and r1, r2 + 32da: 3940 cmpnei r1, 0 + 32dc: 0c03 bf 0x32e2 // 32e2 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 32de: b34d st.w r2, (r3, 0x34) +} + 32e0: 077e br 0x31dc // 31dc + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 32e2: 3280 movi r2, 128 + 32e4: 932b ld.w r1, (r3, 0x2c) + 32e6: 4241 lsli r2, r2, 1 + 32e8: 6848 and r1, r2 + 32ea: 3940 cmpnei r1, 0 + 32ec: 0bf9 bt 0x32de // 32de + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 32ee: 3280 movi r2, 128 + 32f0: 932b ld.w r1, (r3, 0x2c) + 32f2: 4242 lsli r2, r2, 2 + 32f4: 6848 and r1, r2 + 32f6: 3940 cmpnei r1, 0 + 32f8: 0bf3 bt 0x32de // 32de + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 32fa: 3280 movi r2, 128 + 32fc: 932b ld.w r1, (r3, 0x2c) + 32fe: 4243 lsli r2, r2, 3 + 3300: 6848 and r1, r2 + 3302: 3940 cmpnei r1, 0 + 3304: 0bed bt 0x32de // 32de + 3306: 076b br 0x31dc // 31dc + 3308: 20000020 .long 0x20000020 + 330c: 200002c4 .long 0x200002c4 + 3310: 200002c0 .long 0x200002c0 + +Disassembly of section .text.WWDTHandler: + +00003314 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 3314: 1460 nie + 3316: 1462 ipush + 3318: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 331a: 10ab lrw r5, 0x20000010 // 3344 + 331c: 3401 movi r4, 1 + 331e: 9560 ld.w r3, (r5, 0x0) + 3320: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 3322: 30ff movi r0, 255 + 3324: e3fff7a8 bsr 0x2274 // 2274 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 3328: 9540 ld.w r2, (r5, 0x0) + 332a: 9263 ld.w r3, (r2, 0xc) + 332c: 68d0 and r3, r4 + 332e: 3b40 cmpnei r3, 0 + 3330: 0c02 bf 0x3334 // 3334 + { + WWDT->ICR = WWDT_EVI; + 3332: b285 st.w r4, (r2, 0x14) + } +} + 3334: d9ee2002 ld.w r15, (r14, 0x8) + 3338: 98a1 ld.w r5, (r14, 0x4) + 333a: 9880 ld.w r4, (r14, 0x0) + 333c: 1403 addi r14, r14, 12 + 333e: 1463 ipop + 3340: 1461 nir + 3342: 0000 bkpt + 3344: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +00003348 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 3348: 1460 nie + 334a: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 334c: 107e lrw r3, 0x20000024 // 33c4 + 334e: 3101 movi r1, 1 + 3350: 9360 ld.w r3, (r3, 0x0) + 3352: 237f addi r3, 128 + 3354: 9355 ld.w r2, (r3, 0x54) + 3356: 6884 and r2, r1 + 3358: 3a40 cmpnei r2, 0 + 335a: 0c04 bf 0x3362 // 3362 + { + 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; + 335c: 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; + } +} + 335e: 1463 ipop + 3360: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3362: 9355 ld.w r2, (r3, 0x54) + 3364: 3102 movi r1, 2 + 3366: 6884 and r2, r1 + 3368: 3a40 cmpnei r2, 0 + 336a: 0bf9 bt 0x335c // 335c + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 336c: 9355 ld.w r2, (r3, 0x54) + 336e: 3110 movi r1, 16 + 3370: 6884 and r2, r1 + 3372: 3a40 cmpnei r2, 0 + 3374: 0bf4 bt 0x335c // 335c + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 3376: 9355 ld.w r2, (r3, 0x54) + 3378: 3120 movi r1, 32 + 337a: 6884 and r2, r1 + 337c: 3a40 cmpnei r2, 0 + 337e: 0bef bt 0x335c // 335c + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3380: 3280 movi r2, 128 + 3382: 9335 ld.w r1, (r3, 0x54) + 3384: 4241 lsli r2, r2, 1 + 3386: 6848 and r1, r2 + 3388: 3940 cmpnei r1, 0 + 338a: 0c03 bf 0x3390 // 3390 + GPT0->ICR = GPT_INT_PEND; + 338c: b357 st.w r2, (r3, 0x5c) +} + 338e: 07e8 br 0x335e // 335e + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3390: 3280 movi r2, 128 + 3392: 9335 ld.w r1, (r3, 0x54) + 3394: 4242 lsli r2, r2, 2 + 3396: 6848 and r1, r2 + 3398: 3940 cmpnei r1, 0 + 339a: 0bf9 bt 0x338c // 338c + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 339c: 3280 movi r2, 128 + 339e: 9335 ld.w r1, (r3, 0x54) + 33a0: 4243 lsli r2, r2, 3 + 33a2: 6848 and r1, r2 + 33a4: 3940 cmpnei r1, 0 + 33a6: 0bf3 bt 0x338c // 338c + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 33a8: 3280 movi r2, 128 + 33aa: 9335 ld.w r1, (r3, 0x54) + 33ac: 4244 lsli r2, r2, 4 + 33ae: 6848 and r1, r2 + 33b0: 3940 cmpnei r1, 0 + 33b2: 0bed bt 0x338c // 338c + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 33b4: 3280 movi r2, 128 + 33b6: 9335 ld.w r1, (r3, 0x54) + 33b8: 4249 lsli r2, r2, 9 + 33ba: 6848 and r1, r2 + 33bc: 3940 cmpnei r1, 0 + 33be: 0be7 bt 0x338c // 338c + 33c0: 07cf br 0x335e // 335e + 33c2: 0000 bkpt + 33c4: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +000033c8 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 33c8: 1460 nie + 33ca: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 33cc: 1079 lrw r3, 0x20000018 // 3430 + 33ce: 3101 movi r1, 1 + 33d0: 9360 ld.w r3, (r3, 0x0) + 33d2: 934a ld.w r2, (r3, 0x28) + 33d4: 6884 and r2, r1 + 33d6: 3a40 cmpnei r2, 0 + 33d8: 0c14 bf 0x3400 // 3400 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 33da: 1057 lrw r2, 0xca53 // 3434 + RTC->ICR=ALRA_INT; + 33dc: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 33de: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 33e0: 9342 ld.w r2, (r3, 0x8) + 33e2: 6c84 or r2, r1 + 33e4: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 33e6: 3280 movi r2, 128 + 33e8: 424d lsli r2, r2, 13 + 33ea: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 33ec: 3102 movi r1, 2 + 33ee: 9342 ld.w r2, (r3, 0x8) + 33f0: 6884 and r2, r1 + 33f2: 3a40 cmpnei r2, 0 + 33f4: 0bfd bt 0x33ee // 33ee + RTC->CR &= ~0x1; + 33f6: 9342 ld.w r2, (r3, 0x8) + 33f8: 3a80 bclri r2, 0 + 33fa: 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; + } +} + 33fc: 1463 ipop + 33fe: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 3400: 934a ld.w r2, (r3, 0x28) + 3402: 3102 movi r1, 2 + 3404: 6884 and r2, r1 + 3406: 3a40 cmpnei r2, 0 + 3408: 0c03 bf 0x340e // 340e + RTC->ICR=RTC_TRGEV1_INT; + 340a: b32b st.w r1, (r3, 0x2c) +} + 340c: 07f8 br 0x33fc // 33fc + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 340e: 934a ld.w r2, (r3, 0x28) + 3410: 3104 movi r1, 4 + 3412: 6884 and r2, r1 + 3414: 3a40 cmpnei r2, 0 + 3416: 0bfa bt 0x340a // 340a + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 3418: 934a ld.w r2, (r3, 0x28) + 341a: 3108 movi r1, 8 + 341c: 6884 and r2, r1 + 341e: 3a40 cmpnei r2, 0 + 3420: 0bf5 bt 0x340a // 340a + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 3422: 934a ld.w r2, (r3, 0x28) + 3424: 3110 movi r1, 16 + 3426: 6884 and r2, r1 + 3428: 3a40 cmpnei r2, 0 + 342a: 0bf0 bt 0x340a // 340a + 342c: 07e8 br 0x33fc // 33fc + 342e: 0000 bkpt + 3430: 20000018 .long 0x20000018 + 3434: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00003438 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 3438: 1460 nie + 343a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 343c: 106d lrw r3, 0x20000040 // 3470 + 343e: 3102 movi r1, 2 + 3440: 9360 ld.w r3, (r3, 0x0) + 3442: 9343 ld.w r2, (r3, 0xc) + 3444: 6884 and r2, r1 + 3446: 3a40 cmpnei r2, 0 + 3448: 0c03 bf 0x344e // 344e + { + 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; + 344a: b323 st.w r1, (r3, 0xc) + } +} + 344c: 0410 br 0x346c // 346c + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 344e: 9343 ld.w r2, (r3, 0xc) + 3450: 3101 movi r1, 1 + 3452: 6884 and r2, r1 + 3454: 3a40 cmpnei r2, 0 + 3456: 0bfa bt 0x344a // 344a + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3458: 9343 ld.w r2, (r3, 0xc) + 345a: 3108 movi r1, 8 + 345c: 6884 and r2, r1 + 345e: 3a40 cmpnei r2, 0 + 3460: 0bf5 bt 0x344a // 344a + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3462: 9343 ld.w r2, (r3, 0xc) + 3464: 3104 movi r1, 4 + 3466: 6884 and r2, r1 + 3468: 3a40 cmpnei r2, 0 + 346a: 0bf0 bt 0x344a // 344a +} + 346c: 1463 ipop + 346e: 1461 nir + 3470: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003474 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3474: 1460 nie + 3476: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 3478: 106d lrw r3, 0x2000003c // 34ac + 347a: 3102 movi r1, 2 + 347c: 9360 ld.w r3, (r3, 0x0) + 347e: 9343 ld.w r2, (r3, 0xc) + 3480: 6884 and r2, r1 + 3482: 3a40 cmpnei r2, 0 + 3484: 0c03 bf 0x348a // 348a + { + 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; + 3486: b323 st.w r1, (r3, 0xc) + } +} + 3488: 0410 br 0x34a8 // 34a8 + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 348a: 9343 ld.w r2, (r3, 0xc) + 348c: 3101 movi r1, 1 + 348e: 6884 and r2, r1 + 3490: 3a40 cmpnei r2, 0 + 3492: 0bfa bt 0x3486 // 3486 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3494: 9343 ld.w r2, (r3, 0xc) + 3496: 3108 movi r1, 8 + 3498: 6884 and r2, r1 + 349a: 3a40 cmpnei r2, 0 + 349c: 0bf5 bt 0x3486 // 3486 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 349e: 9343 ld.w r2, (r3, 0xc) + 34a0: 3104 movi r1, 4 + 34a2: 6884 and r2, r1 + 34a4: 3a40 cmpnei r2, 0 + 34a6: 0bf0 bt 0x3486 // 3486 +} + 34a8: 1463 ipop + 34aa: 1461 nir + 34ac: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +000034b0 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 34b0: 1460 nie + 34b2: 1462 ipush + 34b4: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 34b6: 107f lrw r3, 0x20000038 // 3530 + 34b8: 3102 movi r1, 2 + 34ba: 9360 ld.w r3, (r3, 0x0) + 34bc: 9343 ld.w r2, (r3, 0xc) + 34be: 6884 and r2, r1 + 34c0: 3a40 cmpnei r2, 0 + 34c2: 0c0b bf 0x34d8 // 34d8 + { + UART2->ISR=UART_RX_INT_S; + 34c4: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 34c6: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 34c8: 7400 zextb r0, r0 + 34ca: e0000321 bsr 0x3b0c // 3b0c + RS485_Comm_End ++; + } + + } + +} + 34ce: d9ee2000 ld.w r15, (r14, 0x0) + 34d2: 1401 addi r14, r14, 4 + 34d4: 1463 ipop + 34d6: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 34d8: 9323 ld.w r1, (r3, 0xc) + 34da: 3201 movi r2, 1 + 34dc: 6848 and r1, r2 + 34de: 3940 cmpnei r1, 0 + 34e0: 0c0d bf 0x34fa // 34fa + UART2->ISR=UART_TX_INT_S; + 34e2: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 34e4: 1074 lrw r3, 0x2000012c // 3534 + 34e6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 34e8: 1074 lrw r3, 0x20000130 // 3538 + 34ea: 9360 ld.w r3, (r3, 0x0) + 34ec: 3b41 cmpnei r3, 1 + 34ee: 0bf0 bt 0x34ce // 34ce + RS485_Comm_Start ++; + 34f0: 1053 lrw r2, 0x20000134 // 353c + RS485_Comm_End ++; + 34f2: 9260 ld.w r3, (r2, 0x0) + 34f4: 2300 addi r3, 1 + 34f6: b260 st.w r3, (r2, 0x0) +} + 34f8: 07eb br 0x34ce // 34ce + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 34fa: 9343 ld.w r2, (r3, 0xc) + 34fc: 3108 movi r1, 8 + 34fe: 6884 and r2, r1 + 3500: 3a40 cmpnei r2, 0 + 3502: 0c03 bf 0x3508 // 3508 + UART2->ISR=UART_TX_IOV_S; + 3504: b323 st.w r1, (r3, 0xc) + 3506: 07e4 br 0x34ce // 34ce + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3508: 9343 ld.w r2, (r3, 0xc) + 350a: 3104 movi r1, 4 + 350c: 6884 and r2, r1 + 350e: 3a40 cmpnei r2, 0 + 3510: 0bfa bt 0x3504 // 3504 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 3512: 3180 movi r1, 128 + 3514: 9303 ld.w r0, (r3, 0xc) + 3516: 412c lsli r1, r1, 12 + 3518: 6804 and r0, r1 + 351a: 3840 cmpnei r0, 0 + 351c: 0fd9 bf 0x34ce // 34ce + UART2->ISR=UART_TX_DONE_S; + 351e: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 3520: 1065 lrw r3, 0x2000012c // 3534 + 3522: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 3524: 1065 lrw r3, 0x20000130 // 3538 + 3526: 9360 ld.w r3, (r3, 0x0) + 3528: 3b41 cmpnei r3, 1 + 352a: 0bd2 bt 0x34ce // 34ce + RS485_Comm_End ++; + 352c: 1045 lrw r2, 0x20000138 // 3540 + 352e: 07e2 br 0x34f2 // 34f2 + 3530: 20000038 .long 0x20000038 + 3534: 2000012c .long 0x2000012c + 3538: 20000130 .long 0x20000130 + 353c: 20000134 .long 0x20000134 + 3540: 20000138 .long 0x20000138 + +Disassembly of section .text.SPI0IntHandler: + +00003544 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 3544: 1460 nie + 3546: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 3548: 1178 lrw r3, 0x20000034 // 3628 + 354a: 3101 movi r1, 1 + 354c: 9360 ld.w r3, (r3, 0x0) + 354e: 9347 ld.w r2, (r3, 0x1c) + 3550: 6884 and r2, r1 + 3552: 3a40 cmpnei r2, 0 + 3554: 0c03 bf 0x355a // 355a + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 3556: b328 st.w r1, (r3, 0x20) + } + +} + 3558: 0407 br 0x3566 // 3566 + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 355a: 9347 ld.w r2, (r3, 0x1c) + 355c: 3002 movi r0, 2 + 355e: 6880 and r2, r0 + 3560: 3a40 cmpnei r2, 0 + 3562: 0c04 bf 0x356a // 356a + SPI0->ICR = SPI_RTIM; + 3564: b308 st.w r0, (r3, 0x20) +} + 3566: 1463 ipop + 3568: 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 + 356a: 9347 ld.w r2, (r3, 0x1c) + 356c: 3004 movi r0, 4 + 356e: 6880 and r2, r0 + 3570: 3a40 cmpnei r2, 0 + 3572: 0c55 bf 0x361c // 361c + SPI0->ICR = SPI_RXIM; + 3574: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 3576: 9302 ld.w r0, (r3, 0x8) + 3578: 32aa movi r2, 170 + 357a: 6482 cmpne r0, r2 + 357c: 083e bt 0x35f8 // 35f8 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 357e: 3102 movi r1, 2 + 3580: 9343 ld.w r2, (r3, 0xc) + 3582: 6884 and r2, r1 + 3584: 3a40 cmpnei r2, 0 + 3586: 0ffd bf 0x3580 // 3580 + SPI0->DR = 0x11; + 3588: 3211 movi r2, 17 + 358a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 358c: 3110 movi r1, 16 + 358e: 9343 ld.w r2, (r3, 0xc) + 3590: 6884 and r2, r1 + 3592: 3a40 cmpnei r2, 0 + 3594: 0bfd bt 0x358e // 358e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3596: 3102 movi r1, 2 + 3598: 9343 ld.w r2, (r3, 0xc) + 359a: 6884 and r2, r1 + 359c: 3a40 cmpnei r2, 0 + 359e: 0ffd bf 0x3598 // 3598 + SPI0->DR = 0x12; + 35a0: 3212 movi r2, 18 + 35a2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35a4: 3110 movi r1, 16 + 35a6: 9343 ld.w r2, (r3, 0xc) + 35a8: 6884 and r2, r1 + 35aa: 3a40 cmpnei r2, 0 + 35ac: 0bfd bt 0x35a6 // 35a6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 35ae: 3102 movi r1, 2 + 35b0: 9343 ld.w r2, (r3, 0xc) + 35b2: 6884 and r2, r1 + 35b4: 3a40 cmpnei r2, 0 + 35b6: 0ffd bf 0x35b0 // 35b0 + SPI0->DR = 0x13; + 35b8: 3213 movi r2, 19 + 35ba: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35bc: 3110 movi r1, 16 + 35be: 9343 ld.w r2, (r3, 0xc) + 35c0: 6884 and r2, r1 + 35c2: 3a40 cmpnei r2, 0 + 35c4: 0bfd bt 0x35be // 35be + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 35c6: 3102 movi r1, 2 + 35c8: 9343 ld.w r2, (r3, 0xc) + 35ca: 6884 and r2, r1 + 35cc: 3a40 cmpnei r2, 0 + 35ce: 0ffd bf 0x35c8 // 35c8 + SPI0->DR = 0x14; + 35d0: 3214 movi r2, 20 + 35d2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35d4: 3110 movi r1, 16 + 35d6: 9343 ld.w r2, (r3, 0xc) + 35d8: 6884 and r2, r1 + 35da: 3a40 cmpnei r2, 0 + 35dc: 0bfd bt 0x35d6 // 35d6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 35de: 3102 movi r1, 2 + 35e0: 9343 ld.w r2, (r3, 0xc) + 35e2: 6884 and r2, r1 + 35e4: 3a40 cmpnei r2, 0 + 35e6: 0ffd bf 0x35e0 // 35e0 + SPI0->DR = 0x15; + 35e8: 3215 movi r2, 21 + 35ea: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 35ec: 3110 movi r1, 16 + 35ee: 9343 ld.w r2, (r3, 0xc) + 35f0: 6884 and r2, r1 + 35f2: 3a40 cmpnei r2, 0 + 35f4: 0bfd bt 0x35ee // 35ee + 35f6: 07b8 br 0x3566 // 3566 + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 35f8: 9343 ld.w r2, (r3, 0xc) + 35fa: 6884 and r2, r1 + 35fc: 3a40 cmpnei r2, 0 + 35fe: 0bb4 bt 0x3566 // 3566 + SPI0->DR=0x0; //FIFO=0 + 3600: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3602: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 3604: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3606: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3608: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 360a: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 360c: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 360e: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 3610: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3612: 9343 ld.w r2, (r3, 0xc) + 3614: 6884 and r2, r1 + 3616: 3a40 cmpnei r2, 0 + 3618: 0bfd bt 0x3612 // 3612 + 361a: 07a6 br 0x3566 // 3566 + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 361c: 9347 ld.w r2, (r3, 0x1c) + 361e: 3108 movi r1, 8 + 3620: 6884 and r2, r1 + 3622: 3a40 cmpnei r2, 0 + 3624: 0b99 bt 0x3556 // 3556 + 3626: 07a0 br 0x3566 // 3566 + 3628: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +0000362c : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 362c: 1460 nie + 362e: 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) + 3630: 1073 lrw r3, 0x2000002c // 367c + 3632: 3104 movi r1, 4 + 3634: 9360 ld.w r3, (r3, 0x0) + 3636: 9349 ld.w r2, (r3, 0x24) + 3638: 6884 and r2, r1 + 363a: 3a40 cmpnei r2, 0 + 363c: 0c02 bf 0x3640 // 3640 + { + SIO0->ICR=0X04; + 363e: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 3640: 9349 ld.w r2, (r3, 0x24) + 3642: 3101 movi r1, 1 + 3644: 6884 and r2, r1 + 3646: 3a40 cmpnei r2, 0 + 3648: 0c02 bf 0x364c // 364c + { + SIO0->ICR=0X01; + 364a: 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 + 364c: 9349 ld.w r2, (r3, 0x24) + 364e: 3102 movi r1, 2 + 3650: 6884 and r2, r1 + 3652: 3a40 cmpnei r2, 0 + 3654: 0c03 bf 0x365a // 365a + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 3656: b32b st.w r1, (r3, 0x2c) + } +} + 3658: 0410 br 0x3678 // 3678 + else if(SIO0->MISR&0X08) //RXBUFFULL + 365a: 9349 ld.w r2, (r3, 0x24) + 365c: 3108 movi r1, 8 + 365e: 6884 and r2, r1 + 3660: 3a40 cmpnei r2, 0 + 3662: 0bfa bt 0x3656 // 3656 + else if(SIO0->MISR&0X010) //BREAK + 3664: 9349 ld.w r2, (r3, 0x24) + 3666: 3110 movi r1, 16 + 3668: 6884 and r2, r1 + 366a: 3a40 cmpnei r2, 0 + 366c: 0bf5 bt 0x3656 // 3656 + else if(SIO0->MISR&0X020) //TIMEOUT + 366e: 9349 ld.w r2, (r3, 0x24) + 3670: 3120 movi r1, 32 + 3672: 6884 and r2, r1 + 3674: 3a40 cmpnei r2, 0 + 3676: 0bf0 bt 0x3656 // 3656 +} + 3678: 1463 ipop + 367a: 1461 nir + 367c: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003680 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3680: 1460 nie + 3682: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3684: 106a lrw r3, 0x2000005c // 36ac + 3686: 3101 movi r1, 1 + 3688: 9360 ld.w r3, (r3, 0x0) + 368a: 237f addi r3, 128 + 368c: 934c ld.w r2, (r3, 0x30) + 368e: 6884 and r2, r1 + 3690: 3a40 cmpnei r2, 0 + 3692: 0c04 bf 0x369a // 369a + { + SYSCON->EXICR = EXI_PIN0; + 3694: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 3696: 1463 ipop + 3698: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 369a: 3280 movi r2, 128 + 369c: 932c ld.w r1, (r3, 0x30) + 369e: 4249 lsli r2, r2, 9 + 36a0: 6848 and r1, r2 + 36a2: 3940 cmpnei r1, 0 + 36a4: 0ff9 bf 0x3696 // 3696 + SYSCON->EXICR = EXI_PIN16; + 36a6: b34b st.w r2, (r3, 0x2c) +} + 36a8: 07f7 br 0x3696 // 3696 + 36aa: 0000 bkpt + 36ac: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +000036b0 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 36b0: 1460 nie + 36b2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 36b4: 106a lrw r3, 0x2000005c // 36dc + 36b6: 3102 movi r1, 2 + 36b8: 9360 ld.w r3, (r3, 0x0) + 36ba: 237f addi r3, 128 + 36bc: 934c ld.w r2, (r3, 0x30) + 36be: 6884 and r2, r1 + 36c0: 3a40 cmpnei r2, 0 + 36c2: 0c04 bf 0x36ca // 36ca + { + SYSCON->EXICR = EXI_PIN1; + 36c4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 36c6: 1463 ipop + 36c8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 36ca: 3280 movi r2, 128 + 36cc: 932c ld.w r1, (r3, 0x30) + 36ce: 424a lsli r2, r2, 10 + 36d0: 6848 and r1, r2 + 36d2: 3940 cmpnei r1, 0 + 36d4: 0ff9 bf 0x36c6 // 36c6 + SYSCON->EXICR = EXI_PIN17; + 36d6: b34b st.w r2, (r3, 0x2c) +} + 36d8: 07f7 br 0x36c6 // 36c6 + 36da: 0000 bkpt + 36dc: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +000036e0 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 36e0: 1460 nie + 36e2: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 36e4: 1070 lrw r3, 0x2000005c // 3724 + 36e6: 3104 movi r1, 4 + 36e8: 9360 ld.w r3, (r3, 0x0) + 36ea: 237f addi r3, 128 + 36ec: 934c ld.w r2, (r3, 0x30) + 36ee: 6884 and r2, r1 + 36f0: 3a40 cmpnei r2, 0 + 36f2: 0c04 bf 0x36fa // 36fa + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 36f4: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 36f6: 1463 ipop + 36f8: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 36fa: 934c ld.w r2, (r3, 0x30) + 36fc: 3108 movi r1, 8 + 36fe: 6884 and r2, r1 + 3700: 3a40 cmpnei r2, 0 + 3702: 0bf9 bt 0x36f4 // 36f4 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 3704: 3280 movi r2, 128 + 3706: 932c ld.w r1, (r3, 0x30) + 3708: 424b lsli r2, r2, 11 + 370a: 6848 and r1, r2 + 370c: 3940 cmpnei r1, 0 + 370e: 0c03 bf 0x3714 // 3714 + SYSCON->EXICR = EXI_PIN19; + 3710: b34b st.w r2, (r3, 0x2c) +} + 3712: 07f2 br 0x36f6 // 36f6 + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 3714: 3280 movi r2, 128 + 3716: 932c ld.w r1, (r3, 0x30) + 3718: 424c lsli r2, r2, 12 + 371a: 6848 and r1, r2 + 371c: 3940 cmpnei r1, 0 + 371e: 0bf9 bt 0x3710 // 3710 + 3720: 07eb br 0x36f6 // 36f6 + 3722: 0000 bkpt + 3724: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00003728 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 3728: 1460 nie + 372a: 1462 ipush + 372c: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 372e: 1079 lrw r3, 0x2000005c // 3790 + 3730: 3280 movi r2, 128 + 3732: 9360 ld.w r3, (r3, 0x0) + 3734: 60c8 addu r3, r2 + 3736: 932c ld.w r1, (r3, 0x30) + 3738: 3010 movi r0, 16 + 373a: 6840 and r1, r0 + 373c: 3940 cmpnei r1, 0 + 373e: 0c03 bf 0x3744 // 3744 + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 3740: b30b st.w r0, (r3, 0x2c) + 3742: 0409 br 0x3754 // 3754 + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 3744: 932c ld.w r1, (r3, 0x30) + 3746: 3020 movi r0, 32 + 3748: 6840 and r1, r0 + 374a: 3940 cmpnei r1, 0 + 374c: 0c09 bf 0x375e // 375e + SYSCON->EXICR = EXI_PIN5; + 374e: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 3750: e000035c bsr 0x3e08 // 3e08 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 3754: d9ee2000 ld.w r15, (r14, 0x0) + 3758: 1401 addi r14, r14, 4 + 375a: 1463 ipop + 375c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 375e: 932c ld.w r1, (r3, 0x30) + 3760: 3040 movi r0, 64 + 3762: 6840 and r1, r0 + 3764: 3940 cmpnei r1, 0 + 3766: 0bed bt 0x3740 // 3740 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 3768: 932c ld.w r1, (r3, 0x30) + 376a: 6848 and r1, r2 + 376c: 3940 cmpnei r1, 0 + 376e: 0c03 bf 0x3774 // 3774 + SYSCON->EXICR = EXI_PIN9; + 3770: b34b st.w r2, (r3, 0x2c) +} + 3772: 07f1 br 0x3754 // 3754 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3774: 3280 movi r2, 128 + 3776: 932c ld.w r1, (r3, 0x30) + 3778: 4241 lsli r2, r2, 1 + 377a: 6848 and r1, r2 + 377c: 3940 cmpnei r1, 0 + 377e: 0bf9 bt 0x3770 // 3770 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3780: 3280 movi r2, 128 + 3782: 932c ld.w r1, (r3, 0x30) + 3784: 4242 lsli r2, r2, 2 + 3786: 6848 and r1, r2 + 3788: 3940 cmpnei r1, 0 + 378a: 0bf3 bt 0x3770 // 3770 + 378c: 07e4 br 0x3754 // 3754 + 378e: 0000 bkpt + 3790: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003794 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3794: 1460 nie + 3796: 1462 ipush + 3798: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 379a: 107d lrw r3, 0x2000005c // 380c + 379c: 3280 movi r2, 128 + 379e: 9360 ld.w r3, (r3, 0x0) + 37a0: 237f addi r3, 128 + 37a2: 932c ld.w r1, (r3, 0x30) + 37a4: 4243 lsli r2, r2, 3 + 37a6: 6848 and r1, r2 + 37a8: 3940 cmpnei r1, 0 + 37aa: 0c03 bf 0x37b0 // 37b0 + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 37ac: b34b st.w r2, (r3, 0x2c) + } +} + 37ae: 0422 br 0x37f2 // 37f2 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 37b0: 3280 movi r2, 128 + 37b2: 932c ld.w r1, (r3, 0x30) + 37b4: 4244 lsli r2, r2, 4 + 37b6: 6848 and r1, r2 + 37b8: 3940 cmpnei r1, 0 + 37ba: 0bf9 bt 0x37ac // 37ac + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 37bc: 3280 movi r2, 128 + 37be: 932c ld.w r1, (r3, 0x30) + 37c0: 4245 lsli r2, r2, 5 + 37c2: 6848 and r1, r2 + 37c4: 3940 cmpnei r1, 0 + 37c6: 0bf3 bt 0x37ac // 37ac + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 37c8: 3280 movi r2, 128 + 37ca: 932c ld.w r1, (r3, 0x30) + 37cc: 4246 lsli r2, r2, 6 + 37ce: 6848 and r1, r2 + 37d0: 3940 cmpnei r1, 0 + 37d2: 0bed bt 0x37ac // 37ac + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 37d4: 3280 movi r2, 128 + 37d6: 932c ld.w r1, (r3, 0x30) + 37d8: 4247 lsli r2, r2, 7 + 37da: 6848 and r1, r2 + 37dc: 3940 cmpnei r1, 0 + 37de: 0c0f bf 0x37fc // 37fc + SYSCON->EXICR = EXI_PIN14; + 37e0: b34b st.w r2, (r3, 0x2c) + if(c_rly.rly_zCnt < 8){ + 37e2: 104c lrw r2, 0x20000878 // 3810 + 37e4: 8261 ld.b r3, (r2, 0x1) + 37e6: 3b07 cmphsi r3, 8 + 37e8: 0803 bt 0x37ee // 37ee + c_rly.rly_zCnt++; + 37ea: 2300 addi r3, 1 + 37ec: a261 st.b r3, (r2, 0x1) + RLY_Zero_Control(); //继电器控制 + 37ee: e000217b bsr 0x7ae4 // 7ae4 +} + 37f2: d9ee2000 ld.w r15, (r14, 0x0) + 37f6: 1401 addi r14, r14, 4 + 37f8: 1463 ipop + 37fa: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 37fc: 3280 movi r2, 128 + 37fe: 932c ld.w r1, (r3, 0x30) + 3800: 4248 lsli r2, r2, 8 + 3802: 6848 and r1, r2 + 3804: 3940 cmpnei r1, 0 + 3806: 0bd3 bt 0x37ac // 37ac + 3808: 07f5 br 0x37f2 // 37f2 + 380a: 0000 bkpt + 380c: 2000005c .long 0x2000005c + 3810: 20000878 .long 0x20000878 + +Disassembly of section .text.LPTIntHandler: + +00003814 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3814: 1460 nie + 3816: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 3818: 106b lrw r3, 0x20000014 // 3844 + 381a: 3101 movi r1, 1 + 381c: 9360 ld.w r3, (r3, 0x0) + 381e: 934e ld.w r2, (r3, 0x38) + 3820: 6884 and r2, r1 + 3822: 3a40 cmpnei r2, 0 + 3824: 0c03 bf 0x382a // 382a + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 3826: b330 st.w r1, (r3, 0x40) + } +} + 3828: 040b br 0x383e // 383e + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 382a: 934e ld.w r2, (r3, 0x38) + 382c: 3102 movi r1, 2 + 382e: 6884 and r2, r1 + 3830: 3a40 cmpnei r2, 0 + 3832: 0bfa bt 0x3826 // 3826 + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3834: 934e ld.w r2, (r3, 0x38) + 3836: 3104 movi r1, 4 + 3838: 6884 and r2, r1 + 383a: 3a40 cmpnei r2, 0 + 383c: 0bf5 bt 0x3826 // 3826 +} + 383e: 1463 ipop + 3840: 1461 nir + 3842: 0000 bkpt + 3844: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00003848 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 3848: 1460 nie + 384a: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 384c: 1071 lrw r3, 0x2000000c // 3890 + 384e: 3101 movi r1, 1 + 3850: 9360 ld.w r3, (r3, 0x0) + 3852: 934c ld.w r2, (r3, 0x30) + 3854: 6884 and r2, r1 + 3856: 3a40 cmpnei r2, 0 + 3858: 0c0a bf 0x386c // 386c + { + BT0->ICR = BT_PEND; + 385a: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 385c: 9341 ld.w r2, (r3, 0x4) + 385e: 3a86 bclri r2, 6 + 3860: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3862: 9340 ld.w r2, (r3, 0x0) + 3864: 3200 movi r2, 0 + 3866: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 3868: 1463 ipop + 386a: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 386c: 934c ld.w r2, (r3, 0x30) + 386e: 3102 movi r1, 2 + 3870: 6884 and r2, r1 + 3872: 3a40 cmpnei r2, 0 + 3874: 0c03 bf 0x387a // 387a + BT0->ICR = BT_EVTRG; + 3876: b32d st.w r1, (r3, 0x34) +} + 3878: 07f8 br 0x3868 // 3868 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 387a: 934c ld.w r2, (r3, 0x30) + 387c: 3104 movi r1, 4 + 387e: 6884 and r2, r1 + 3880: 3a40 cmpnei r2, 0 + 3882: 0bfa bt 0x3876 // 3876 + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3884: 934c ld.w r2, (r3, 0x30) + 3886: 3108 movi r1, 8 + 3888: 6884 and r2, r1 + 388a: 3a40 cmpnei r2, 0 + 388c: 0bf5 bt 0x3876 // 3876 + 388e: 07ed br 0x3868 // 3868 + 3890: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003894 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3894: 1460 nie + 3896: 1462 ipush + 3898: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 389a: 1079 lrw r3, 0x20000008 // 38fc + 389c: 3101 movi r1, 1 + 389e: 9360 ld.w r3, (r3, 0x0) + 38a0: 934c ld.w r2, (r3, 0x30) + 38a2: 6884 and r2, r1 + 38a4: 3a40 cmpnei r2, 0 + 38a6: 0c03 bf 0x38ac // 38ac + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 38a8: b32d st.w r1, (r3, 0x34) + } +} + 38aa: 0418 br 0x38da // 38da + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 38ac: 934c ld.w r2, (r3, 0x30) + 38ae: 3102 movi r1, 2 + 38b0: 6884 and r2, r1 + 38b2: 3a40 cmpnei r2, 0 + 38b4: 0c18 bf 0x38e4 // 38e4 + BT1->ICR = BT_CMP; + 38b6: b32d st.w r1, (r3, 0x34) + NUM++; + 38b8: 1072 lrw r3, 0x200000b8 // 3900 + 38ba: 8340 ld.b r2, (r3, 0x0) + 38bc: 2200 addi r2, 1 + 38be: 7488 zextb r2, r2 + SysTick_100us++; + 38c0: 9321 ld.w r1, (r3, 0x4) + 38c2: 2100 addi r1, 1 + if(NUM >= 10){ + 38c4: 3a09 cmphsi r2, 10 + NUM++; + 38c6: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 38c8: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 38ca: 0c08 bf 0x38da // 38da + NUM = 0; + 38cc: 3200 movi r2, 0 + 38ce: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 38d0: 9342 ld.w r2, (r3, 0x8) + 38d2: 2200 addi r2, 1 + 38d4: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 38d6: e0000279 bsr 0x3dc8 // 3dc8 +} + 38da: d9ee2000 ld.w r15, (r14, 0x0) + 38de: 1401 addi r14, r14, 4 + 38e0: 1463 ipop + 38e2: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 38e4: 934c ld.w r2, (r3, 0x30) + 38e6: 3104 movi r1, 4 + 38e8: 6884 and r2, r1 + 38ea: 3a40 cmpnei r2, 0 + 38ec: 0bde bt 0x38a8 // 38a8 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 38ee: 934c ld.w r2, (r3, 0x30) + 38f0: 3108 movi r1, 8 + 38f2: 6884 and r2, r1 + 38f4: 3a40 cmpnei r2, 0 + 38f6: 0bd9 bt 0x38a8 // 38a8 + 38f8: 07f1 br 0x38da // 38da + 38fa: 0000 bkpt + 38fc: 20000008 .long 0x20000008 + 3900: 200000b8 .long 0x200000b8 + +Disassembly of section .text.PriviledgeVioHandler: + +00003904 : + 3904: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003906 : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3906: 1460 nie + 3908: 1462 ipush + // ISR content ... + +} + 390a: 1463 ipop + 390c: 1461 nir + +Disassembly of section .text.Trap3Handler: + +0000390e : + 390e: 1460 nie + 3910: 1462 ipush + 3912: 1463 ipop + 3914: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00003916 : + 3916: 1460 nie + 3918: 1462 ipush + 391a: 1463 ipop + 391c: 1461 nir + +Disassembly of section .text.Trap1Handler: + +0000391e : + 391e: 1460 nie + 3920: 1462 ipush + 3922: 1463 ipop + 3924: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00003926 : + 3926: 1460 nie + 3928: 1462 ipush + 392a: 1463 ipop + 392c: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +0000392e : + 392e: 1460 nie + 3930: 1462 ipush + 3932: 1463 ipop + 3934: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00003936 : + 3936: 1460 nie + 3938: 1462 ipush + 393a: 1463 ipop + 393c: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +0000393e : + 393e: 1460 nie + 3940: 1462 ipush + 3942: 1463 ipop + 3944: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00003946 : + 3946: 1460 nie + 3948: 1462 ipush + 394a: 1463 ipop + 394c: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +0000394e : + 394e: 1460 nie + 3950: 1462 ipush + 3952: 1463 ipop + 3954: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00003956 : + 3956: 1460 nie + 3958: 1462 ipush + 395a: 1463 ipop + 395c: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +0000395e : + 395e: 1460 nie + 3960: 1462 ipush + 3962: 1463 ipop + 3964: 1461 nir + +Disassembly of section .text.__divsi3: + +00003968 <__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) +{ + 3968: 14c1 push r4 + int PSR; + __asm volatile( + 396a: c0006023 mfcr r3, cr<0, 0> + 396e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3972: 1046 lrw r2, 0x20000000 // 3988 <__divsi3+0x20> + 3974: 3400 movi r4, 0 + 3976: 9240 ld.w r2, (r2, 0x0) + 3978: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 397a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 397c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 397e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3980: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3984: 9202 ld.w r0, (r2, 0x8) +} + 3986: 1481 pop r4 + 3988: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +0000398c <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 398c: 14c1 push r4 + int PSR; + __asm volatile( + 398e: c0006023 mfcr r3, cr<0, 0> + 3992: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3996: 1046 lrw r2, 0x20000000 // 39ac <__udivsi3+0x20> + 3998: 3401 movi r4, 1 + 399a: 9240 ld.w r2, (r2, 0x0) + 399c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 399e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 39a0: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 39a2: b221 st.w r1, (r2, 0x4) + __asm volatile( + 39a4: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 39a8: 9202 ld.w r0, (r2, 0x8) +} + 39aa: 1481 pop r4 + 39ac: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +000039b0 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 39b0: 14c1 push r4 + int PSR; + __asm volatile( + 39b2: c0006023 mfcr r3, cr<0, 0> + 39b6: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 39ba: 1046 lrw r2, 0x20000000 // 39d0 <__modsi3+0x20> + 39bc: 3400 movi r4, 0 + 39be: 9240 ld.w r2, (r2, 0x0) + 39c0: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 39c2: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 39c4: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 39c6: b221 st.w r1, (r2, 0x4) + __asm volatile( + 39c8: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 39cc: 9203 ld.w r0, (r2, 0xc) +} + 39ce: 1481 pop r4 + 39d0: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +000039d4 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 39d4: 14c1 push r4 + int PSR; + __asm volatile( + 39d6: c0006023 mfcr r3, cr<0, 0> + 39da: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 39de: 1046 lrw r2, 0x20000000 // 39f4 <__umodsi3+0x20> + 39e0: 3401 movi r4, 1 + 39e2: 9240 ld.w r2, (r2, 0x0) + 39e4: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 39e6: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 39e8: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 39ea: b221 st.w r1, (r2, 0x4) + __asm volatile( + 39ec: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 39f0: 9203 ld.w r0, (r2, 0xc) +} + 39f2: 1481 pop r4 + 39f4: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000039f8 : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 39f8: c1807420 psrset ee, ie +} + 39fc: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000039fe : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 39fe: c0807020 psrclr ie +} + 3a02: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003a04 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3a04: 14d2 push r4-r5, r15 + switch(uart_id){ + 3a06: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3a08: 6d07 mov r4, r1 + switch(uart_id){ + 3a0a: 0c1e bf 0x3a46 // 3a46 + 3a0c: 3840 cmpnei r0, 0 + 3a0e: 0c04 bf 0x3a16 // 3a16 + 3a10: 3842 cmpnei r0, 2 + 3a12: 0c37 bf 0x3a80 // 3a80 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 3a14: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 3a16: e3fff4f5 bsr 0x2400 // 2400 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 3a1a: 3100 movi r1, 0 + 3a1c: 3000 movi r0, 0 + 3a1e: e3fff531 bsr 0x2480 // 2480 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3a22: 116f lrw r3, 0x20000040 // 3adc + 3a24: 3200 movi r2, 0 + 3a26: 9300 ld.w r0, (r3, 0x0) + 3a28: 112e lrw r1, 0x1388 // 3ae0 + 3a2a: e3fff5a9 bsr 0x257c // 257c + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 3a2e: 11ae lrw r5, 0x200002f0 // 3ae4 + UART0_Int_Enable(); + 3a30: e3fff50c bsr 0x2448 // 2448 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 3a34: 3274 movi r2, 116 + 3a36: 3100 movi r1, 0 + 3a38: 6c17 mov r0, r5 + 3a3a: e3ffefb1 bsr 0x199c // 199c <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 3a3e: 3303 movi r3, 3 + 3a40: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 3a42: b59c st.w r4, (r5, 0x70) + break; + 3a44: 07e8 br 0x3a14 // 3a14 + UART1_DeInit(); //clear all UART Register + 3a46: e3fff4e9 bsr 0x2418 // 2418 + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3a4a: 3102 movi r1, 2 + 3a4c: 3001 movi r0, 1 + 3a4e: e3fff519 bsr 0x2480 // 2480 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 3a52: 11a6 lrw r5, 0x2000003c // 3ae8 + 3a54: 31d0 movi r1, 208 + 3a56: 3200 movi r2, 0 + 3a58: 4121 lsli r1, r1, 1 + 3a5a: 9500 ld.w r0, (r5, 0x0) + 3a5c: e3fff588 bsr 0x256c // 256c + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3a60: 31d0 movi r1, 208 + 3a62: 9500 ld.w r0, (r5, 0x0) + 3a64: 3200 movi r2, 0 + 3a66: 4121 lsli r1, r1, 1 + 3a68: e3fff58a bsr 0x257c // 257c + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3a6c: 3274 movi r2, 116 + 3a6e: 3100 movi r1, 0 + 3a70: 101f lrw r0, 0x20000364 // 3aec + 3a72: e3ffef95 bsr 0x199c // 199c <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 3a76: 107f lrw r3, 0x20000370 // 3af0 + 3a78: 3203 movi r2, 3 + 3a7a: b357 st.w r2, (r3, 0x5c) + g_uart[UART_1].processing_cf = prt_cf; + 3a7c: b399 st.w r4, (r3, 0x64) + break; + 3a7e: 07cb br 0x3a14 // 3a14 + UART2_DeInit(); //clear all UART Register + 3a80: e3fff4d8 bsr 0x2430 // 2430 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3a84: 3102 movi r1, 2 + 3a86: 3002 movi r0, 2 + 3a88: e3fff4fc bsr 0x2480 // 2480 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3a8c: 107a lrw r3, 0x20000038 // 3af4 + 3a8e: 3200 movi r2, 0 + 3a90: 9300 ld.w r0, (r3, 0x0) + 3a92: 1034 lrw r1, 0x1388 // 3ae0 + 3a94: e3fff574 bsr 0x257c // 257c + UART2_Int_Enable(); + 3a98: e3fff4e6 bsr 0x2464 // 2464 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3a9c: 3274 movi r2, 116 + 3a9e: 3100 movi r1, 0 + 3aa0: 1016 lrw r0, 0x200003d8 // 3af8 + 3aa2: e3ffef7d bsr 0x199c // 199c <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 3aa6: 3288 movi r2, 136 + 3aa8: 3100 movi r1, 0 + 3aaa: 1015 lrw r0, 0x2000044c // 3afc + 3aac: e3ffef78 bsr 0x199c // 199c <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3ab0: 1074 lrw r3, 0x200004ac // 3b00 + 3ab2: 3201 movi r2, 1 + 3ab4: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3ab6: 1074 lrw r3, 0x200003f0 // 3b04 + g_uart[UART_2].processing_cf = prt_cf; + 3ab8: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3aba: 3203 movi r2, 3 + GPIO_Init(GPIOB0,3,Output); + 3abc: 1093 lrw r4, 0x20000048 // 3b08 + 3abe: 3103 movi r1, 3 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3ac0: b354 st.w r2, (r3, 0x50) + GPIO_Init(GPIOB0,3,Output); + 3ac2: 9400 ld.w r0, (r4, 0x0) + 3ac4: 3200 movi r2, 0 + 3ac6: e3fff1f5 bsr 0x1eb0 // 1eb0 + GPIO_DriveStrength_EN(GPIOB0,3); + 3aca: 9400 ld.w r0, (r4, 0x0) + 3acc: 3103 movi r1, 3 + 3ace: e3fff26b bsr 0x1fa4 // 1fa4 + GPIO_Write_Low(GPIOB0,3); + 3ad2: 9400 ld.w r0, (r4, 0x0) + 3ad4: 3103 movi r1, 3 + 3ad6: e3fff3ad bsr 0x2230 // 2230 +} + 3ada: 079d br 0x3a14 // 3a14 + 3adc: 20000040 .long 0x20000040 + 3ae0: 00001388 .long 0x00001388 + 3ae4: 200002f0 .long 0x200002f0 + 3ae8: 2000003c .long 0x2000003c + 3aec: 20000364 .long 0x20000364 + 3af0: 20000370 .long 0x20000370 + 3af4: 20000038 .long 0x20000038 + 3af8: 200003d8 .long 0x200003d8 + 3afc: 2000044c .long 0x2000044c + 3b00: 200004ac .long 0x200004ac + 3b04: 200003f0 .long 0x200003f0 + 3b08: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003b0c : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3b0c: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 3b0e: 104e lrw r2, 0x2000043e // 3b44 + 3b10: 8a20 ld.h r1, (r2, 0x0) + 3b12: 3362 movi r3, 98 + 3b14: 644d cmplt r3, r1 + 3b16: 0c03 bf 0x3b1c // 3b1c + 3b18: 3300 movi r3, 0 + 3b1a: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3b1c: 8a60 ld.h r3, (r2, 0x0) + 3b1e: 102b lrw r1, 0x200002f0 // 3b48 + 3b20: 5b82 addi r4, r3, 1 + 3b22: 60c4 addu r3, r1 + 3b24: 23e7 addi r3, 232 + 3b26: a300 st.b r0, (r3, 0x0) + 3b28: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b2a: 1069 lrw r3, 0x200000c0 // 3b4c + 3b2c: 9340 ld.w r2, (r3, 0x0) + 3b2e: 3380 movi r3, 128 + 3b30: 4361 lsli r3, r3, 1 + 3b32: 60c4 addu r3, r1 + 3b34: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 3b36: 33a6 movi r3, 166 + 3b38: 4361 lsli r3, r3, 1 + 3b3a: 604c addu r1, r3 + 3b3c: 3301 movi r3, 1 + 3b3e: a160 st.b r3, (r1, 0x0) +} + 3b40: 1481 pop r4 + 3b42: 0000 bkpt + 3b44: 2000043e .long 0x2000043e + 3b48: 200002f0 .long 0x200002f0 + 3b4c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.UART2_TASK: + +00003b50 : + + +void UART2_TASK(void){ + 3b50: 14d4 push r4-r7, r15 + 3b52: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3b54: 10dc lrw r6, 0x2000043c // 3bc4 + 3b56: 8660 ld.b r3, (r6, 0x0) + 3b58: 3b41 cmpnei r3, 1 + 3b5a: 082d bt 0x3bb4 // 3bb4 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3b5c: 10bb lrw r5, 0x200003f0 // 3bc8 + 3b5e: 109c lrw r4, 0x200000c0 // 3bcc + 3b60: 9460 ld.w r3, (r4, 0x0) + 3b62: 9555 ld.w r2, (r5, 0x54) + 3b64: 60ca subu r3, r2 + 3b66: 9554 ld.w r2, (r5, 0x50) + 3b68: 64c8 cmphs r2, r3 + 3b6a: 0825 bt 0x3bb4 // 3bb4 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 3b6c: e3fff140 bsr 0x1dec // 1dec + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3b70: 9460 ld.w r3, (r4, 0x0) + 3b72: b575 st.w r3, (r5, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b74: 8e61 ld.h r3, (r6, 0x2) + 3b76: 6c8f mov r2, r3 + 3b78: 1036 lrw r1, 0x200003d8 // 3bd0 + 3b7a: 1017 lrw r0, 0x200000c4 // 3bd4 + DealLen = g_uart[UART_2].RecvLen; + 3b7c: 1097 lrw r4, 0x20000104 // 3bd8 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b7e: b860 st.w r3, (r14, 0x0) + 3b80: e3ffef52 bsr 0x1a24 // 1a24 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3b84: 9860 ld.w r3, (r14, 0x0) + 3b86: ac72 st.h r3, (r4, 0x24) + g_uart[UART_2].RecvLen = 0; + 3b88: 3300 movi r3, 0 + 3b8a: ae61 st.h r3, (r6, 0x2) + g_uart[UART_2].Receiving = 0; + 3b8c: a660 st.b r3, (r6, 0x0) + SYSCON_Int_Enable(); + 3b8e: e3fff129 bsr 0x1de0 // 1de0 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3b92: 9576 ld.w r3, (r5, 0x58) + 3b94: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3b96: 5ee6 addi r7, r6, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 3b98: 0810 bt 0x3bb8 // 3bb8 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + } + + if(rev != 0x00){ + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 3b9a: 8c32 ld.h r1, (r4, 0x24) + 3b9c: 100e lrw r0, 0x200000c4 // 3bd4 + 3b9e: e00005c9 bsr 0x4730 // 4730 + } + + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(DealBuffer,DealLen); + 3ba2: 8c32 ld.h r1, (r4, 0x24) + 3ba4: 100c lrw r0, 0x200000c4 // 3bd4 + 3ba6: e00015c1 bsr 0x6728 // 6728 + } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3baa: 3264 movi r2, 100 + 3bac: 3100 movi r1, 0 + 3bae: 100a lrw r0, 0x200000c4 // 3bd4 + 3bb0: e3ffeef6 bsr 0x199c // 199c <__memset_fast> + } + } +} + 3bb4: 1401 addi r14, r14, 4 + 3bb6: 1494 pop r4-r7, r15 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 3bb8: 8c32 ld.h r1, (r4, 0x24) + 3bba: 1007 lrw r0, 0x200000c4 // 3bd4 + 3bbc: 7bcd jsr r3 + if(rev != 0x00){ + 3bbe: 3840 cmpnei r0, 0 + 3bc0: 0ff5 bf 0x3baa // 3baa + 3bc2: 07ec br 0x3b9a // 3b9a + 3bc4: 2000043c .long 0x2000043c + 3bc8: 200003f0 .long 0x200003f0 + 3bcc: 200000c0 .long 0x200000c0 + 3bd0: 200003d8 .long 0x200003d8 + 3bd4: 200000c4 .long 0x200000c4 + 3bd8: 20000104 .long 0x20000104 + +Disassembly of section .text.BUS485_Send: + +00003bdc : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3bdc: 14d4 push r4-r7, r15 + 3bde: 1423 subi r14, r14, 12 + 3be0: b802 st.w r0, (r14, 0x8) + 3be2: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3be4: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3be6: 1189 lrw r4, 0x200000c4 // 3c88 + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 3be8: 11c9 lrw r6, 0x20000048 // 3c8c + while(RS485_Comming == 0x01){ + 3bea: 947a ld.w r3, (r4, 0x68) + 3bec: 3b41 cmpnei r3, 1 + 3bee: 0c3e bf 0x3c6a // 3c6a + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 3bf0: 1168 lrw r3, 0x200004ac // 3c90 + 3bf2: 83c4 ld.b r6, (r3, 0x4) + 3bf4: 3e40 cmpnei r6, 0 + 3bf6: b861 st.w r3, (r14, 0x4) + 3bf8: 0845 bt 0x3c82 // 3c82 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 3bfa: 11e5 lrw r7, 0x20000048 // 3c8c + CK_CPU_DisAllNormalIrq(); + 3bfc: e3ffff01 bsr 0x39fe // 39fe + GPIO_Write_High(GPIOB0,3); + 3c00: 3103 movi r1, 3 + 3c02: 9700 ld.w r0, (r7, 0x0) + 3c04: e3fff312 bsr 0x2228 // 2228 + + RS485_Comm_Flag = 0x01; + 3c08: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3c0a: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3c0c: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3c0e: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 3c10: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3c12: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 3c14: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 3c16: e3fffef1 bsr 0x39f8 // 39f8 + + UARTTransmit(UART2,buff,len); + 3c1a: 105f lrw r2, 0x20000038 // 3c94 + 3c1c: 9200 ld.w r0, (r2, 0x0) + 3c1e: 9822 ld.w r1, (r14, 0x8) + 3c20: 9840 ld.w r2, (r14, 0x0) + 3c22: e3fff4b5 bsr 0x258c // 258c + do{ + delay_nus(100); + 3c26: 3064 movi r0, 100 + 3c28: e3fff8b8 bsr 0x2d98 // 2d98 + delay_cnt ++; + 3c2c: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3c2e: 3363 movi r3, 99 + 3c30: 654c cmphs r3, r5 + 3c32: 0c08 bf 0x3c42 // 3c42 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3c34: 947c ld.w r3, (r4, 0x70) + 3c36: 9840 ld.w r2, (r14, 0x0) + 3c38: 648d cmplt r3, r2 + 3c3a: 0bf6 bt 0x3c26 // 3c26 + 3c3c: 947d ld.w r3, (r4, 0x74) + 3c3e: 648d cmplt r3, r2 + 3c40: 0bf3 bt 0x3c26 // 3c26 + + + CK_CPU_DisAllNormalIrq(); + 3c42: e3fffede bsr 0x39fe // 39fe + + GPIO_Write_Low(GPIOB0,3); + 3c46: 9700 ld.w r0, (r7, 0x0) + 3c48: 3103 movi r1, 3 + 3c4a: e3fff2f3 bsr 0x2230 // 2230 + RS485_Comm_Flag = 0x00; + 3c4e: 3300 movi r3, 0 + 3c50: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 3c52: 1072 lrw r3, 0x200000c0 // 3c98 + 3c54: 9340 ld.w r2, (r3, 0x0) + 3c56: 1072 lrw r3, 0x2000044c // 3c9c + 3c58: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 3c5a: 9861 ld.w r3, (r14, 0x4) + 3c5c: 3200 movi r2, 0 + 3c5e: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 3c60: e3fffecc bsr 0x39f8 // 39f8 + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 3c64: 6c1b mov r0, r6 + 3c66: 1403 addi r14, r14, 12 + 3c68: 1494 pop r4-r7, r15 + delay_nus(100); + 3c6a: 3064 movi r0, 100 + 3c6c: e3fff896 bsr 0x2d98 // 2d98 + delay_cnt ++; + 3c70: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3c72: 3364 movi r3, 100 + 3c74: 64d6 cmpne r5, r3 + 3c76: 0fbd bf 0x3bf0 // 3bf0 + GPIO_Reverse(GPIOB0,3); + 3c78: 3103 movi r1, 3 + 3c7a: 9600 ld.w r0, (r6, 0x0) + 3c7c: e3fff2de bsr 0x2238 // 2238 + 3c80: 07b5 br 0x3bea // 3bea + return UART_BUSBUSY; //发送失败 + 3c82: 3601 movi r6, 1 + 3c84: 07f0 br 0x3c64 // 3c64 + 3c86: 0000 bkpt + 3c88: 200000c4 .long 0x200000c4 + 3c8c: 20000048 .long 0x20000048 + 3c90: 200004ac .long 0x200004ac + 3c94: 20000038 .long 0x20000038 + 3c98: 200000c0 .long 0x200000c0 + 3c9c: 2000044c .long 0x2000044c + +Disassembly of section .text.MultSend_Task: + +00003ca0 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3ca0: 14d4 push r4-r7, r15 + 3ca2: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3ca4: 5963 subi r3, r1, 1 + 3ca6: 74cd zexth r3, r3 + 3ca8: 3463 movi r4, 99 + 3caa: 64d0 cmphs r4, r3 +{ + 3cac: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3cae: 0c29 bf 0x3d00 // 3d00 + + if(DatSd == 0x01) + 3cb0: 3a41 cmpnei r2, 1 + 3cb2: 0c04 bf 0x3cba // 3cba + }else{ + Dbg_Println(DBG_BIT_Debug_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3cb4: 3001 movi r0, 1 +} + 3cb6: 1401 addi r14, r14, 4 + 3cb8: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 3cba: 1075 lrw r3, 0x2000044c // 3d0c + 3cbc: 3760 movi r7, 96 + 3cbe: 61cc addu r7, r3 + 3cc0: 87c8 ld.b r6, (r7, 0x8) + 3cc2: 874a ld.b r2, (r7, 0xa) + 3cc4: 6498 cmphs r6, r2 + 3cc6: 081f bt 0x3d04 // 3d04 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 3cc8: 3480 movi r4, 128 + 3cca: 10b2 lrw r5, 0x200000c0 // 3d10 + 3ccc: 610c addu r4, r3 + 3cce: 9401 ld.w r0, (r4, 0x4) + 3cd0: 9540 ld.w r2, (r5, 0x0) + 3cd2: 6082 subu r2, r0 + 3cd4: 931e ld.w r0, (r3, 0x78) + 3cd6: 6408 cmphs r2, r0 + 3cd8: 0818 bt 0x3d08 // 3d08 + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 3cda: 3e40 cmpnei r6, 0 + 3cdc: 0c07 bf 0x3cea // 3cea + 3cde: 9540 ld.w r2, (r5, 0x0) + 3ce0: 94c0 ld.w r6, (r4, 0x0) + 3ce2: 609a subu r2, r6 + 3ce4: 937d ld.w r3, (r3, 0x74) + 3ce6: 64c8 cmphs r2, r3 + 3ce8: 0fe6 bf 0x3cb4 // 3cb4 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 3cea: 9800 ld.w r0, (r14, 0x0) + 3cec: e3ffff78 bsr 0x3bdc // 3bdc + 3cf0: 3840 cmpnei r0, 0 + 3cf2: 0be1 bt 0x3cb4 // 3cb4 + m_send.ASend_Tick = SysTick_1ms; + 3cf4: 9560 ld.w r3, (r5, 0x0) + 3cf6: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 3cf8: 8768 ld.b r3, (r7, 0x8) + 3cfa: 2300 addi r3, 1 + 3cfc: a768 st.b r3, (r7, 0x8) + 3cfe: 07dc br 0x3cb6 // 3cb6 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3d00: 3004 movi r0, 4 + 3d02: 07da br 0x3cb6 // 3cb6 + return RETRY_END;//没有重发次数 + 3d04: 3003 movi r0, 3 + 3d06: 07d8 br 0x3cb6 // 3cb6 + return DATA_END;//数据有效期结束 + 3d08: 3002 movi r0, 2 + 3d0a: 07d6 br 0x3cb6 // 3cb6 + 3d0c: 2000044c .long 0x2000044c + 3d10: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Set_GroupSend: + +00003d14 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3d14: 14d4 push r4-r7, r15 + 3d16: 1422 subi r14, r14, 8 + 3d18: 6d8b mov r6, r2 + 3d1a: 9847 ld.w r2, (r14, 0x1c) + 3d1c: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3d1e: 5943 subi r2, r1, 1 +{ + 3d20: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3d22: 7489 zexth r2, r2 + 3d24: 3163 movi r1, 99 + 3d26: 6484 cmphs r1, r2 +{ + 3d28: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3d2a: 0c20 bf 0x3d6a // 3d6a + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3d2c: 1091 lrw r4, 0x2000044c // 3d70 + 3d2e: 3264 movi r2, 100 + 3d30: 3100 movi r1, 0 + 3d32: 6c13 mov r0, r4 + 3d34: b861 st.w r3, (r14, 0x4) + 3d36: e3ffee33 bsr 0x199c // 199c <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 3d3a: 6c97 mov r2, r5 + 3d3c: 6c13 mov r0, r4 + 3d3e: 6c5f mov r1, r7 + 3d40: e3ffee72 bsr 0x1a24 // 1a24 <__memcpy_fast> + m_send.SendLen = sled; + 3d44: 3240 movi r2, 64 + 3d46: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 3d48: 9861 ld.w r3, (r14, 0x4) + 3d4a: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 3d4c: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 3d4e: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3d50: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 3d52: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3d54: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 3d56: 3201 movi r2, 1 + 3d58: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 3d5a: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 3d5c: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 3d5e: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 3d60: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 3d62: 247f addi r4, 128 + 3d64: 1064 lrw r3, 0x200000c0 // 3d74 + 3d66: 9360 ld.w r3, (r3, 0x0) + 3d68: b461 st.w r3, (r4, 0x4) +} + 3d6a: 1402 addi r14, r14, 8 + 3d6c: 1494 pop r4-r7, r15 + 3d6e: 0000 bkpt + 3d70: 2000044c .long 0x2000044c + 3d74: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Clear_SendFlag: + +00003d78 : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 3d78: 1063 lrw r3, 0x200004ac // 3d84 + 3d7a: 3200 movi r2, 0 + 3d7c: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 3d7e: a347 st.b r2, (r3, 0x7) +} + 3d80: 783c jmp r15 + 3d82: 0000 bkpt + 3d84: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485_Jump_Boot: + +00003d88 : +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 3d88: 1062 lrw r3, 0x200004ac // 3d90 + 3d8a: a30c st.b r0, (r3, 0xc) +} + 3d8c: 783c jmp r15 + 3d8e: 0000 bkpt + 3d90: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485Send_Task: + +00003d94 : + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 3d94: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 3d96: 108a lrw r4, 0x200004ac // 3dbc + 3d98: 8469 ld.b r3, (r4, 0x9) + 3d9a: 3b41 cmpnei r3, 1 + 3d9c: 080e bt 0x3db8 // 3db8 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 3d9e: 1069 lrw r3, 0x2000048c // 3dc0 + 3da0: 8b37 ld.h r1, (r3, 0x2e) + 3da2: 3201 movi r2, 1 + 3da4: 1008 lrw r0, 0x2000044c // 3dc4 + 3da6: e3ffff7d bsr 0x3ca0 // 3ca0 + 3daa: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 3dac: 2801 subi r0, 2 + 3dae: 7400 zextb r0, r0 + 3db0: 3801 cmphsi r0, 2 + 3db2: 0803 bt 0x3db8 // 3db8 + { + Dbg_Println(DBG_BIT_Debug_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 3db4: 3300 movi r3, 0 + 3db6: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 3db8: 1491 pop r4, r15 + 3dba: 0000 bkpt + 3dbc: 200004ac .long 0x200004ac + 3dc0: 2000048c .long 0x2000048c + 3dc4: 2000044c .long 0x2000044c + +Disassembly of section .text.BusIdle_Task: + +00003dc8 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 3dc8: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 3dca: 10ae lrw r5, 0x2000044c // 3e00 + 3dcc: 3460 movi r4, 96 + 3dce: 6114 addu r4, r5 + 3dd0: 8464 ld.b r3, (r4, 0x4) + 3dd2: 3b40 cmpnei r3, 0 + 3dd4: 0c15 bf 0x3dfe // 3dfe + 3dd6: 8466 ld.b r3, (r4, 0x6) + 3dd8: 3b41 cmpnei r3, 1 + 3dda: 0c12 bf 0x3dfe // 3dfe + { + CK_CPU_DisAllNormalIrq(); + 3ddc: e3fffe11 bsr 0x39fe // 39fe + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 3de0: 8465 ld.b r3, (r4, 0x5) + 3de2: 3b41 cmpnei r3, 1 + 3de4: 080b bt 0x3dfa // 3dfa + 3de6: 1068 lrw r3, 0x200000c0 // 3e04 + 3de8: 9340 ld.w r2, (r3, 0x0) + 3dea: 957f ld.w r3, (r5, 0x7c) + 3dec: 608e subu r2, r3 + 3dee: 957c ld.w r3, (r5, 0x70) + 3df0: 2305 addi r3, 6 + 3df2: 64c8 cmphs r2, r3 + 3df4: 0c03 bf 0x3dfa // 3dfa + { + m_send.BusState_Flag = UART_BUSIDLE; + 3df6: 3300 movi r3, 0 + 3df8: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 3dfa: e3fffdff bsr 0x39f8 // 39f8 + } +} + 3dfe: 1492 pop r4-r5, r15 + 3e00: 2000044c .long 0x2000044c + 3e04: 200000c0 .long 0x200000c0 + +Disassembly of section .text.BusBusy_Task: + +00003e08 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 3e08: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 3e0a: 1094 lrw r4, 0x2000044c // 3e58 + 3e0c: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 3e0e: e3fffdf8 bsr 0x39fe // 39fe + m_send.BusState_Flag = UART_BUSBUSY; + 3e12: 6150 addu r5, r4 + 3e14: 3301 movi r3, 1 + 3e16: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3e18: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 3e1a: 1071 lrw r3, 0x200000c0 // 3e5c + 3e1c: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3e1e: 9300 ld.w r0, (r3, 0x0) + 3e20: 3380 movi r3, 128 + 3e22: 60d0 addu r3, r4 + 3e24: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 3e26: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3e28: 600e subu r0, r3 + 3e2a: e3fffdd5 bsr 0x39d4 // 39d4 <__umodsi3> + 3e2e: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 3e30: 3105 movi r1, 5 + 3e32: 108c lrw r4, 0x20000048 // 3e60 + 3e34: 9400 ld.w r0, (r4, 0x0) + 3e36: e3fff20c bsr 0x224e // 224e + 3e3a: 3841 cmpnei r0, 1 + 3e3c: 0806 bt 0x3e48 // 3e48 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 3e3e: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 3e40: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 3e42: e3fffddb bsr 0x39f8 // 39f8 +} + 3e46: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 3e48: 9400 ld.w r0, (r4, 0x0) + 3e4a: 3105 movi r1, 5 + 3e4c: e3fff201 bsr 0x224e // 224e + 3e50: 3840 cmpnei r0, 0 + 3e52: 0bf8 bt 0x3e42 // 3e42 + m_send.HighBit_Flag = 0x00; //低电平 + 3e54: 3300 movi r3, 0 + 3e56: 07f5 br 0x3e40 // 3e40 + 3e58: 2000044c .long 0x2000044c + 3e5c: 200000c0 .long 0x200000c0 + 3e60: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +00003e64 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 3e64: 1423 subi r14, r14, 12 + 3e66: b862 st.w r3, (r14, 0x8) + 3e68: b841 st.w r2, (r14, 0x4) + 3e6a: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 3e6c: 1403 addi r14, r14, 12 + 3e6e: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00003e70 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 3e70: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00003e74 : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 3e74: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 3e76: 3234 movi r2, 52 + 3e78: 3100 movi r1, 0 + 3e7a: 1014 lrw r0, 0x200004f0 // 3ec8 + 3e7c: e3ffed90 bsr 0x199c // 199c <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 3e80: 321c movi r2, 28 + 3e82: 3100 movi r1, 0 + 3e84: 1012 lrw r0, 0x200004d4 // 3ecc + 3e86: e3ffed8b bsr 0x199c // 199c <__memset_fast> + + //EEPROM_Init(); //按键库初始化前先读取参数 + Boot_Function_Init(); + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3e8a: 1092 lrw r4, 0x20000524 // 3ed0 + Boot_Function_Init(); + 3e8c: e00013d4 bsr 0x6634 // 6634 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 3e90: 8405 ld.b r0, (r4, 0x5) + 3e92: 102f lrw r1, 0x200004d4 // 3ecc + 3e94: e00005ae bsr 0x49f0 // 49f0 + if(rev == 0x00){ + 3e98: 3840 cmpnei r0, 0 + 3e9a: 080e bt 0x3eb6 // 3eb6 + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3e9c: 8405 ld.b r0, (r4, 0x5) + 3e9e: 102c lrw r1, 0x200004d4 // 3ecc + 3ea0: e00005fe bsr 0x4a9c // 4a9c + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 3ea4: 100a lrw r0, 0x200004d4 // 3ecc + 3ea6: e00006a3 bsr 0x4bec // 4bec + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 3eaa: e0002f55 bsr 0x9d54 // 9d54 + + base_update_f = 0x01; //触摸状态强制更新 + 3eae: 106a lrw r3, 0x200009cd // 3ed4 + 3eb0: 3201 movi r2, 1 + 3eb2: a340 st.b r2, (r3, 0x0) + +} + 3eb4: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 3eb6: 1029 lrw r1, 0xa5ae // 3ed8 + 3eb8: 3000 movi r0, 0 + 3eba: e3ffffd5 bsr 0x3e64 // 3e64 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 3ebe: 8405 ld.b r0, (r4, 0x5) + 3ec0: 1023 lrw r1, 0x200004d4 // 3ecc + 3ec2: e000065d bsr 0x4b7c // 4b7c + 3ec6: 07ef br 0x3ea4 // 3ea4 + 3ec8: 200004f0 .long 0x200004f0 + 3ecc: 200004d4 .long 0x200004d4 + 3ed0: 20000524 .long 0x20000524 + 3ed4: 200009cd .long 0x200009cd + 3ed8: 0000a5ae .long 0x0000a5ae + +Disassembly of section .text.Get_TouchKey_CH_State: + +00003edc : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 3edc: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 3ede: 3804 cmphsi r0, 5 + 3ee0: 0818 bt 0x3f10 // 3f10 + 3ee2: 106d lrw r3, 0x200004f0 // 3f14 + 3ee4: e3ffe70c bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3ee8: 0e0b0803 .long 0x0e0b0803 + 3eec: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 3eee: 930a ld.w r0, (r3, 0x28) + 3ef0: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 3ef2: 3301 movi r3, 1 + U8_T state = 0; + 3ef4: 680c and r0, r3 +// } + break; + } + + return state; +} + 3ef6: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 3ef8: 930a ld.w r0, (r3, 0x28) + 3efa: 480a lsri r0, r0, 10 + 3efc: 07fb br 0x3ef2 // 3ef2 + if(g_key.key_state & 0x0800){ + 3efe: 930a ld.w r0, (r3, 0x28) + 3f00: 480b lsri r0, r0, 11 + 3f02: 07f8 br 0x3ef2 // 3ef2 + if(g_key.key_state & 0x1000){ + 3f04: 930a ld.w r0, (r3, 0x28) + 3f06: 480c lsri r0, r0, 12 + 3f08: 07f5 br 0x3ef2 // 3ef2 + if(g_key.key_state & 0x2000){ + 3f0a: 930a ld.w r0, (r3, 0x28) + 3f0c: 480d lsri r0, r0, 13 + 3f0e: 07f2 br 0x3ef2 // 3ef2 + U8_T state = 0; + 3f10: 3000 movi r0, 0 + 3f12: 07f2 br 0x3ef6 // 3ef6 + 3f14: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_RS485_Printf_3: + +00003f18 : +void TouchKey_RS485_Printf_3(void){ + 3f18: 14d4 push r4-r7, r15 + 3f1a: 143b subi r14, r14, 108 + send_buff[send_len++] = 0x0D; + 3f1c: 1c02 addi r4, r14, 8 + 3f1e: 330d movi r3, 13 + 3f20: a460 st.b r3, (r4, 0x0) + send_buff[send_len++] = 0x0A; + 3f22: 330a movi r3, 10 + 3f24: a461 st.b r3, (r4, 0x1) + 3f26: 3600 movi r6, 0 + U16_T trigger_state = 0x00;//触发状态 + 3f28: 3500 movi r5, 0 + if(Get_TouchKey_CH_State(i) == 0x01) + 3f2a: 7418 zextb r0, r6 + 3f2c: e3ffffd8 bsr 0x3edc // 3edc + 3f30: 3841 cmpnei r0, 1 + 3f32: 0804 bt 0x3f3a // 3f3a + trigger_state = (trigger_state | (0x01< + send_buff[send_len++] = trigger_state>>8; + 3f40: 3300 movi r3, 0 + 3f42: a462 st.b r3, (r4, 0x2) + send_buff[send_len++] = trigger_state&0xff; + 3f44: a4a3 st.b r5, (r4, 0x3) + i=MCU_Touch_CH[0]; + 3f46: 0277 lrw r3, 0x20000068 // 41e4 + 3f48: 5b42 addi r2, r3, 1 + send_buff[send_len++] = sampling_data0[i]>>8; + 3f4a: 8361 ld.b r3, (r3, 0x1) + 3f4c: 4361 lsli r3, r3, 1 + 3f4e: 02b8 lrw r5, 0x20000bda // 41e8 + 3f50: 5d2c addu r1, r5, r3 + i=MCU_Touch_CH[0]; + 3f52: b841 st.w r2, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]>>8; + 3f54: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 3f56: 0219 lrw r0, 0x20000888 // 41ec + send_buff[send_len++] = sampling_data0[i]>>8; + 3f58: 4a48 lsri r2, r2, 8 + 3f5a: a444 st.b r2, (r4, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3f5c: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 3f5e: 582c addu r1, r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3f60: a445 st.b r2, (r4, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 3f62: 8940 ld.h r2, (r1, 0x0) + 3f64: 4a48 lsri r2, r2, 8 + 3f66: a446 st.b r2, (r4, 0x6) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3f68: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3f6a: 023d lrw r1, 0x20000b92 // 41f0 + 3f6c: 604c addu r1, r3 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3f6e: a447 st.b r2, (r4, 0x7) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3f70: 8940 ld.h r2, (r1, 0x0) + 3f72: 4a48 lsri r2, r2, 8 + 3f74: a448 st.b r2, (r4, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3f76: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 3f78: 0320 lrw r1, 0x20000970 // 41f4 + 3f7a: 604c addu r1, r3 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3f7c: a449 st.b r2, (r4, 0x9) + send_buff[send_len++] = sampling_data1[i]>>8; + 3f7e: 8940 ld.h r2, (r1, 0x0) + 3f80: 4a48 lsri r2, r2, 8 + 3f82: a44a st.b r2, (r4, 0xa) + send_buff[send_len++] = sampling_data1[i]&0xff; + 3f84: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 3f86: 0322 lrw r1, 0x20000a32 // 41f8 + 3f88: 604c addu r1, r3 + send_buff[send_len++] = sampling_data1[i]&0xff; + 3f8a: a44b st.b r2, (r4, 0xb) + send_buff[send_len++] = baseline_data1[i]>>8; + 3f8c: 8940 ld.h r2, (r1, 0x0) + 3f8e: 4a48 lsri r2, r2, 8 + 3f90: a44c st.b r2, (r4, 0xc) + send_buff[send_len++] = baseline_data1[i]&0xff; + 3f92: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 3f94: 0325 lrw r1, 0x200008f0 // 41fc + 3f96: 604c addu r1, r3 + send_buff[send_len++] = baseline_data1[i]&0xff; + 3f98: a44d st.b r2, (r4, 0xd) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 3f9a: 8940 ld.h r2, (r1, 0x0) + 3f9c: 4a48 lsri r2, r2, 8 + 3f9e: a44e st.b r2, (r4, 0xe) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 3fa0: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 3fa2: 0327 lrw r1, 0x20000a66 // 4200 + 3fa4: 604c addu r1, r3 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 3fa6: a44f st.b r2, (r4, 0xf) + send_buff[send_len++] = sampling_data2[i]>>8; + 3fa8: 8940 ld.h r2, (r1, 0x0) + 3faa: 4a48 lsri r2, r2, 8 + 3fac: a450 st.b r2, (r4, 0x10) + send_buff[send_len++] = sampling_data2[i]&0xff; + 3fae: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 3fb0: 032a lrw r1, 0x20000b48 // 4204 + 3fb2: 604c addu r1, r3 + send_buff[send_len++] = sampling_data2[i]&0xff; + 3fb4: a451 st.b r2, (r4, 0x11) + send_buff[send_len++] = baseline_data2[i]>>8; + 3fb6: 8940 ld.h r2, (r1, 0x0) + 3fb8: 4a48 lsri r2, r2, 8 + 3fba: a452 st.b r2, (r4, 0x12) + send_buff[send_len++] = baseline_data2[i]&0xff; + 3fbc: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 3fbe: 032c lrw r1, 0x200008c4 // 4208 + 3fc0: 60c4 addu r3, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 3fc2: a453 st.b r2, (r4, 0x13) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 3fc4: 8b40 ld.h r2, (r3, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 3fc6: 8b60 ld.h r3, (r3, 0x0) + 3fc8: a475 st.b r3, (r4, 0x15) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 3fca: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 3fcc: 9861 ld.w r3, (r14, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 3fce: a454 st.b r2, (r4, 0x14) + send_buff[send_len++] = sampling_data0[i]>>8; + 3fd0: 8341 ld.b r2, (r3, 0x1) + 3fd2: 4241 lsli r2, r2, 1 + 3fd4: 5dc8 addu r6, r5, r2 + 3fd6: 8e60 ld.h r3, (r6, 0x0) + 3fd8: 4b68 lsri r3, r3, 8 + 3fda: a476 st.b r3, (r4, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + 3fdc: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 3fde: 58c8 addu r6, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 3fe0: a477 st.b r3, (r4, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 3fe2: 8e60 ld.h r3, (r6, 0x0) + 3fe4: 4b68 lsri r3, r3, 8 + 3fe6: a478 st.b r3, (r4, 0x18) + send_buff[send_len++] = baseline_data0[i]&0xff; + 3fe8: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3fea: 03dd lrw r6, 0x20000b92 // 41f0 + 3fec: 6188 addu r6, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 3fee: a479 st.b r3, (r4, 0x19) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 3ff0: 8e60 ld.h r3, (r6, 0x0) + 3ff2: 4b68 lsri r3, r3, 8 + 3ff4: a47a st.b r3, (r4, 0x1a) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3ff6: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 3ff8: 13df lrw r6, 0x20000970 // 41f4 + 3ffa: 6188 addu r6, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 3ffc: a47b st.b r3, (r4, 0x1b) + send_buff[send_len++] = sampling_data1[i]>>8; + 3ffe: 8e60 ld.h r3, (r6, 0x0) + 4000: 4b68 lsri r3, r3, 8 + 4002: a47c st.b r3, (r4, 0x1c) + send_buff[send_len++] = sampling_data1[i]&0xff; + 4004: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 4006: 13dd lrw r6, 0x20000a32 // 41f8 + 4008: 6188 addu r6, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 400a: a47d st.b r3, (r4, 0x1d) + send_buff[send_len++] = baseline_data1[i]>>8; + 400c: 8e60 ld.h r3, (r6, 0x0) + 400e: 4b68 lsri r3, r3, 8 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4010: 13fb lrw r7, 0x200008f0 // 41fc + 4012: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]>>8; + 4014: a47e st.b r3, (r4, 0x1e) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4016: 8e60 ld.h r3, (r6, 0x0) + 4018: a47f st.b r3, (r4, 0x1f) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 401a: 8fc0 ld.h r6, (r7, 0x0) + 401c: 3320 movi r3, 32 + 401e: 60d0 addu r3, r4 + 4020: 4ec8 lsri r6, r6, 8 + 4022: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4024: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 4026: 13f7 lrw r7, 0x20000a66 // 4200 + 4028: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 402a: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = sampling_data2[i]>>8; + 402c: 8fc0 ld.h r6, (r7, 0x0) + 402e: 4ec8 lsri r6, r6, 8 + 4030: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4032: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 4034: 13f4 lrw r7, 0x20000b48 // 4204 + 4036: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 4038: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = baseline_data2[i]>>8; + 403a: 8fc0 ld.h r6, (r7, 0x0) + 403c: 4ec8 lsri r6, r6, 8 + 403e: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4040: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 4042: 8fc0 ld.h r6, (r7, 0x0) + 4044: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4046: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 4048: 8a40 ld.h r2, (r2, 0x0) + 404a: a347 st.b r2, (r3, 0x7) + send_buff[send_len++] = sampling_data0[i]>>8; + 404c: 9841 ld.w r2, (r14, 0x4) + 404e: 8242 ld.b r2, (r2, 0x2) + 4050: 4241 lsli r2, r2, 1 + 4052: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4054: 4ec8 lsri r6, r6, 8 + 4056: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data0[i]>>8; + 4058: 8fc0 ld.h r6, (r7, 0x0) + 405a: 4ec8 lsri r6, r6, 8 + 405c: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = sampling_data0[i]&0xff; + 405e: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4060: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4062: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = baseline_data0[i]>>8; + 4064: 8fc0 ld.h r6, (r7, 0x0) + 4066: 4ec8 lsri r6, r6, 8 + 4068: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = baseline_data0[i]&0xff; + 406a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 406c: 13e1 lrw r7, 0x20000b92 // 41f0 + 406e: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4070: a3cb st.b r6, (r3, 0xb) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4072: 8fc0 ld.h r6, (r7, 0x0) + 4074: 4ec8 lsri r6, r6, 8 + 4076: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4078: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 407a: 12ff lrw r7, 0x20000970 // 41f4 + 407c: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 407e: a3cd st.b r6, (r3, 0xd) + send_buff[send_len++] = sampling_data1[i]>>8; + 4080: 8fc0 ld.h r6, (r7, 0x0) + 4082: 4ec8 lsri r6, r6, 8 + 4084: a3ce st.b r6, (r3, 0xe) + send_buff[send_len++] = sampling_data1[i]&0xff; + 4086: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 4088: 12fc lrw r7, 0x20000a32 // 41f8 + 408a: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 408c: a3cf st.b r6, (r3, 0xf) + send_buff[send_len++] = baseline_data1[i]>>8; + 408e: 8fc0 ld.h r6, (r7, 0x0) + 4090: 4ec8 lsri r6, r6, 8 + 4092: a3d0 st.b r6, (r3, 0x10) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4094: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4096: 12fa lrw r7, 0x200008f0 // 41fc + 4098: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 409a: a3d1 st.b r6, (r3, 0x11) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 409c: 8fc0 ld.h r6, (r7, 0x0) + 409e: 4ec8 lsri r6, r6, 8 + 40a0: a3d2 st.b r6, (r3, 0x12) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 40a2: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 40a4: 12f7 lrw r7, 0x20000a66 // 4200 + 40a6: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 40a8: a3d3 st.b r6, (r3, 0x13) + send_buff[send_len++] = sampling_data2[i]>>8; + 40aa: 8fc0 ld.h r6, (r7, 0x0) + 40ac: 4ec8 lsri r6, r6, 8 + 40ae: a3d4 st.b r6, (r3, 0x14) + send_buff[send_len++] = sampling_data2[i]&0xff; + 40b0: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 40b2: 12f5 lrw r7, 0x20000b48 // 4204 + 40b4: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 40b6: a3d5 st.b r6, (r3, 0x15) + send_buff[send_len++] = baseline_data2[i]>>8; + 40b8: 8fc0 ld.h r6, (r7, 0x0) + 40ba: 4ec8 lsri r6, r6, 8 + 40bc: a3d6 st.b r6, (r3, 0x16) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 40be: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 40c0: 8fc0 ld.h r6, (r7, 0x0) + 40c2: a3d7 st.b r6, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 40c4: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 40c6: 8a40 ld.h r2, (r2, 0x0) + 40c8: a359 st.b r2, (r3, 0x19) + send_buff[send_len++] = sampling_data0[i]>>8; + 40ca: 9841 ld.w r2, (r14, 0x4) + 40cc: 8243 ld.b r2, (r2, 0x3) + 40ce: 4241 lsli r2, r2, 1 + 40d0: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 40d2: 4ec8 lsri r6, r6, 8 + 40d4: a3d8 st.b r6, (r3, 0x18) + send_buff[send_len++] = sampling_data0[i]>>8; + 40d6: 8fc0 ld.h r6, (r7, 0x0) + 40d8: 4ec8 lsri r6, r6, 8 + 40da: a3da st.b r6, (r3, 0x1a) + send_buff[send_len++] = sampling_data0[i]&0xff; + 40dc: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 40de: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 40e0: a3db st.b r6, (r3, 0x1b) + send_buff[send_len++] = baseline_data0[i]>>8; + 40e2: 8fc0 ld.h r6, (r7, 0x0) + 40e4: 4ec8 lsri r6, r6, 8 + 40e6: a3dc st.b r6, (r3, 0x1c) + send_buff[send_len++] = baseline_data0[i]&0xff; + 40e8: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 40ea: 12e2 lrw r7, 0x20000b92 // 41f0 + 40ec: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 40ee: a3dd st.b r6, (r3, 0x1d) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 40f0: 8fc0 ld.h r6, (r7, 0x0) + 40f2: 4ec8 lsri r6, r6, 8 + 40f4: a3de st.b r6, (r3, 0x1e) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 40f6: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 40f8: 11ff lrw r7, 0x20000970 // 41f4 + 40fa: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 40fc: a3df st.b r6, (r3, 0x1f) + send_buff[send_len++] = sampling_data1[i]>>8; + 40fe: 8fc0 ld.h r6, (r7, 0x0) + 4100: 3340 movi r3, 64 + 4102: 60d0 addu r3, r4 + 4104: 4ec8 lsri r6, r6, 8 + 4106: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = sampling_data1[i]&0xff; + 4108: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 410a: 11fc lrw r7, 0x20000a32 // 41f8 + 410c: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 410e: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = baseline_data1[i]>>8; + 4110: 8fc0 ld.h r6, (r7, 0x0) + 4112: 4ec8 lsri r6, r6, 8 + 4114: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4116: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4118: 11f9 lrw r7, 0x200008f0 // 41fc + 411a: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 411c: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 411e: 8fc0 ld.h r6, (r7, 0x0) + 4120: 4ec8 lsri r6, r6, 8 + 4122: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4124: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 4126: 11f7 lrw r7, 0x20000a66 // 4200 + 4128: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 412a: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = sampling_data2[i]>>8; + 412c: 8fc0 ld.h r6, (r7, 0x0) + 412e: 4ec8 lsri r6, r6, 8 + 4130: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4132: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 4134: 11f4 lrw r7, 0x20000b48 // 4204 + 4136: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 4138: a3c7 st.b r6, (r3, 0x7) + send_buff[send_len++] = baseline_data2[i]>>8; + 413a: 8fc0 ld.h r6, (r7, 0x0) + 413c: 4ec8 lsri r6, r6, 8 + 413e: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4140: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 4142: 8fc0 ld.h r6, (r7, 0x0) + 4144: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4146: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 4148: 8a40 ld.h r2, (r2, 0x0) + 414a: a34b st.b r2, (r3, 0xb) + send_buff[send_len++] = sampling_data0[i]>>8; + 414c: 9841 ld.w r2, (r14, 0x4) + 414e: 8244 ld.b r2, (r2, 0x4) + 4150: 4241 lsli r2, r2, 1 + 4152: 6148 addu r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4154: 4ec8 lsri r6, r6, 8 + 4156: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = sampling_data0[i]>>8; + 4158: 8dc0 ld.h r6, (r5, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 415a: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data0[i]>>8; + 415c: 4ec8 lsri r6, r6, 8 + send_buff[send_len++] = sampling_data0[i]&0xff; + 415e: 8da0 ld.h r5, (r5, 0x0) + send_buff[send_len++] = sampling_data0[i]>>8; + 4160: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4162: a3ad st.b r5, (r3, 0xd) + send_buff[send_len++] = baseline_data0[i]>>8; + 4164: 88a0 ld.h r5, (r0, 0x0) + 4166: 4da8 lsri r5, r5, 8 + 4168: a3ae st.b r5, (r3, 0xe) + send_buff[send_len++] = baseline_data0[i]&0xff; + 416a: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 416c: 11a1 lrw r5, 0x20000b92 // 41f0 + 416e: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4170: a30f st.b r0, (r3, 0xf) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4172: 8d00 ld.h r0, (r5, 0x0) + 4174: 4808 lsri r0, r0, 8 + 4176: a310 st.b r0, (r3, 0x10) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4178: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 417a: 10bf lrw r5, 0x20000970 // 41f4 + 417c: 6148 addu r5, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 417e: a311 st.b r0, (r3, 0x11) + send_buff[send_len++] = sampling_data1[i]>>8; + 4180: 8d00 ld.h r0, (r5, 0x0) + 4182: 4808 lsri r0, r0, 8 + 4184: a312 st.b r0, (r3, 0x12) + send_buff[send_len++] = sampling_data1[i]&0xff; + 4186: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 4188: 10bc lrw r5, 0x20000a32 // 41f8 + 418a: 6148 addu r5, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 418c: a313 st.b r0, (r3, 0x13) + send_buff[send_len++] = baseline_data1[i]>>8; + 418e: 8d00 ld.h r0, (r5, 0x0) + 4190: 4808 lsri r0, r0, 8 + 4192: a314 st.b r0, (r3, 0x14) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4194: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4196: 10ba lrw r5, 0x200008f0 // 41fc + 4198: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 419a: a315 st.b r0, (r3, 0x15) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 419c: 8d00 ld.h r0, (r5, 0x0) + 419e: 4808 lsri r0, r0, 8 + 41a0: a316 st.b r0, (r3, 0x16) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 41a2: 8d00 ld.h r0, (r5, 0x0) + 41a4: a317 st.b r0, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 41a6: 6048 addu r1, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 41a8: 1016 lrw r0, 0x20000a66 // 4200 + 41aa: 6008 addu r0, r2 + 41ac: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = sampling_data2[i]&0xff; + 41ae: 8800 ld.h r0, (r0, 0x0) + 41b0: a319 st.b r0, (r3, 0x19) + send_buff[send_len++] = sampling_data2[i]>>8; + 41b2: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = baseline_data2[i]>>8; + 41b4: 1014 lrw r0, 0x20000b48 // 4204 + 41b6: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 41b8: a3b8 st.b r5, (r3, 0x18) + send_buff[send_len++] = baseline_data2[i]>>8; + 41ba: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data2[i]&0xff; + 41bc: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 41be: 8940 ld.h r2, (r1, 0x0) + 41c0: 4a48 lsri r2, r2, 8 + 41c2: a35c st.b r2, (r3, 0x1c) + send_buff[send_len++] = baseline_data2[i]>>8; + 41c4: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 41c6: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 41c8: a3ba st.b r5, (r3, 0x1a) + send_buff[send_len++] = baseline_data2[i]&0xff; + 41ca: a31b st.b r0, (r3, 0x1b) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 41cc: a35d st.b r2, (r3, 0x1d) + Set_GroupSend(send_buff,send_len,1,BUSSend_ValidTime3,20); //组包 + 41ce: 3314 movi r3, 20 + 41d0: b860 st.w r3, (r14, 0x0) + 41d2: 3396 movi r3, 150 + 41d4: 4361 lsli r3, r3, 1 + 41d6: 3201 movi r2, 1 + 41d8: 315e movi r1, 94 + 41da: 6c13 mov r0, r4 + 41dc: e3fffd9c bsr 0x3d14 // 3d14 +} + 41e0: 141b addi r14, r14, 108 + 41e2: 1494 pop r4-r7, r15 + 41e4: 20000068 .long 0x20000068 + 41e8: 20000bda .long 0x20000bda + 41ec: 20000888 .long 0x20000888 + 41f0: 20000b92 .long 0x20000b92 + 41f4: 20000970 .long 0x20000970 + 41f8: 20000a32 .long 0x20000a32 + 41fc: 200008f0 .long 0x200008f0 + 4200: 20000a66 .long 0x20000a66 + 4204: 20000b48 .long 0x20000b48 + 4208: 200008c4 .long 0x200008c4 + +Disassembly of section .text.Touch_Key_Event_Handling: + +0000420c : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 420c: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 420e: 118a lrw r4, 0x200004f0 // 42b4 + 4210: 8465 ld.b r3, (r4, 0x5) + 4212: 3b42 cmpnei r3, 2 + 4214: 081c bt 0x424c // 424c + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 4216: 3300 movi r3, 0 + 4218: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 421a: 8466 ld.b r3, (r4, 0x6) + 421c: 3b42 cmpnei r3, 2 + 421e: 0820 bt 0x425e // 425e + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 4220: 3300 movi r3, 0 + 4222: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 4224: 8467 ld.b r3, (r4, 0x7) + 4226: 3b42 cmpnei r3, 2 + 4228: 0824 bt 0x4270 // 4270 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 422a: 3300 movi r3, 0 + 422c: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 422e: e0001701 bsr 0x7030 // 7030 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 4232: 8468 ld.b r3, (r4, 0x8) + 4234: 3b42 cmpnei r3, 2 + 4236: 0829 bt 0x4288 // 4288 + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 4238: 3300 movi r3, 0 + 423a: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 423c: e00017b2 bsr 0x71a0 // 71a0 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 4240: 8469 ld.b r3, (r4, 0x9) + 4242: 3b42 cmpnei r3, 2 + 4244: 082e bt 0x42a0 // 42a0 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 4246: 3300 movi r3, 0 + 4248: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 424a: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 424c: 3b44 cmpnei r3, 4 + 424e: 0fe4 bf 0x4216 // 4216 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 4250: 3b41 cmpnei r3, 1 + 4252: 0be4 bt 0x421a // 421a + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 4254: 3300 movi r3, 0 + 4256: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 4258: e00015a0 bsr 0x6d98 // 6d98 + 425c: 07df br 0x421a // 421a + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 425e: 3b44 cmpnei r3, 4 + 4260: 0fe0 bf 0x4220 // 4220 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 4262: 3b41 cmpnei r3, 1 + 4264: 0be0 bt 0x4224 // 4224 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 4266: 3300 movi r3, 0 + 4268: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 426a: e00015fd bsr 0x6e64 // 6e64 + 426e: 07db br 0x4224 // 4224 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4270: 3b44 cmpnei r3, 4 + 4272: 0804 bt 0x427a // 427a + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4274: 3300 movi r3, 0 + 4276: a467 st.b r3, (r4, 0x7) + 4278: 07dd br 0x4232 // 4232 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 427a: 3b41 cmpnei r3, 1 + 427c: 0bdb bt 0x4232 // 4232 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 427e: 3300 movi r3, 0 + 4280: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 4282: e0001657 bsr 0x6f30 // 6f30 + 4286: 07d6 br 0x4232 // 4232 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4288: 3b44 cmpnei r3, 4 + 428a: 0804 bt 0x4292 // 4292 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 428c: 3300 movi r3, 0 + 428e: a468 st.b r3, (r4, 0x8) + 4290: 07d8 br 0x4240 // 4240 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 4292: 3b41 cmpnei r3, 1 + 4294: 0bd6 bt 0x4240 // 4240 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 4296: 3300 movi r3, 0 + 4298: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 429a: e0001703 bsr 0x70a0 // 70a0 + 429e: 07d1 br 0x4240 // 4240 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 42a0: 3b44 cmpnei r3, 4 + 42a2: 0fd2 bf 0x4246 // 4246 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 42a4: 3b41 cmpnei r3, 1 + 42a6: 0bd2 bt 0x424a // 424a + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 42a8: 3300 movi r3, 0 + 42aa: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 42ac: e00017b2 bsr 0x7210 // 7210 +} + 42b0: 07cd br 0x424a // 424a + 42b2: 0000 bkpt + 42b4: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +000042b8 : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 42b8: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 42ba: 106c lrw r3, 0x20000868 // 42e8 + 42bc: 8340 ld.b r2, (r3, 0x0) + 42be: 3a41 cmpnei r2, 1 + 42c0: 0c04 bf 0x42c8 // 42c8 + 42c2: 8362 ld.b r3, (r3, 0x2) + 42c4: 3b45 cmpnei r3, 5 + 42c6: 0c10 bf 0x42e6 // 42e6 + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 42c8: 1069 lrw r3, 0x200004f0 // 42ec + 42ca: 835b ld.b r2, (r3, 0x1b) + 42cc: 3a41 cmpnei r2, 1 + 42ce: 080c bt 0x42e6 // 42e6 + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 42d0: 1028 lrw r1, 0x200000c0 // 42f0 + 42d2: 9140 ld.w r2, (r1, 0x0) + 42d4: 930c ld.w r0, (r3, 0x30) + 42d6: 6082 subu r2, r0 + 42d8: 3095 movi r0, 149 + 42da: 6480 cmphs r0, r2 + 42dc: 0805 bt 0x42e6 // 42e6 + g_key.key_dug_tick = SysTick_1ms; + 42de: 9140 ld.w r2, (r1, 0x0) + 42e0: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + //TouchKey_RS485_Printf(); + //TouchKey_RS485_Printf_2(); + TouchKey_RS485_Printf_3(); + 42e2: e3fffe1b bsr 0x3f18 // 3f18 + + } + } +} + 42e6: 1490 pop r15 + 42e8: 20000868 .long 0x20000868 + 42ec: 200004f0 .long 0x200004f0 + 42f0: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Touch_Key_Task: + +000042f4 : +void Touch_Key_Task(void){ + 42f4: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 42f6: 113b lrw r1, 0x200000c0 // 43e0 + 42f8: 117b lrw r3, 0x200004f0 // 43e4 + 42fa: 9140 ld.w r2, (r1, 0x0) + 42fc: 930b ld.w r0, (r3, 0x2c) + 42fe: 6082 subu r2, r0 + 4300: 3a04 cmphsi r2, 5 + 4302: 0806 bt 0x430e // 430e + break; + } + } + } + + Touch_Key_Event_Handling(); + 4304: e3ffff84 bsr 0x420c // 420c + + TouchKey_Set_Interface_Task(); + 4308: e3ffffd8 bsr 0x42b8 // 42b8 + +} + 430c: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 430e: 9140 ld.w r2, (r1, 0x0) + 4310: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 4312: 1136 lrw r1, 0x20000a28 // 43e8 + 4314: 9140 ld.w r2, (r1, 0x0) + 4316: 3a40 cmpnei r2, 0 + 4318: 0c02 bf 0x431c // 431c + g_key.key_state = Key_Map; + 431a: 9140 ld.w r2, (r1, 0x0) + 431c: 11d2 lrw r6, 0x200004f0 // 43e4 +void Touch_Key_Task(void){ + 431e: 6d5b mov r5, r6 + g_key.key_state = Key_Map; + 4320: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 4322: 3400 movi r4, 0 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 4324: 11f2 lrw r7, 0x200005e0 // 43ec + switch (g_key.KEY_STA[i]) { + 4326: 8640 ld.b r2, (r6, 0x0) + 4328: 3a41 cmpnei r2, 1 + 432a: 0c2e bf 0x4386 // 4386 + 432c: 3a40 cmpnei r2, 0 + 432e: 0c0a bf 0x4342 // 4342 + 4330: 3a42 cmpnei r2, 2 + 4332: 0c48 bf 0x43c2 // 43c2 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 4334: 2400 addi r4, 1 + 4336: 7510 zextb r4, r4 + 4338: 3c45 cmpnei r4, 5 + 433a: 2600 addi r6, 1 + 433c: 2501 addi r5, 2 + 433e: 0bf4 bt 0x4326 // 4326 + 4340: 07e2 br 0x4304 // 4304 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 4342: 6c13 mov r0, r4 + 4344: e3fffdcc bsr 0x3edc // 3edc + 4348: 3841 cmpnei r0, 1 + 434a: 0819 bt 0x437c // 437c + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 434c: 8654 ld.b r2, (r6, 0x14) + 434e: 3a01 cmphsi r2, 2 + 4350: 0804 bt 0x4358 // 4358 + g_key.delayCnt[i]++; + 4352: 2200 addi r2, 1 + 4354: a654 st.b r2, (r6, 0x14) + 4356: 07ef br 0x4334 // 4334 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 4358: 8745 ld.b r2, (r7, 0x5) + 435a: 3a41 cmpnei r2, 1 + 435c: 0c03 bf 0x4362 // 4362 + 435e: 3c44 cmpnei r4, 4 + 4360: 0804 bt 0x4368 // 4368 + Controlled_Buzzer(0x01); + 4362: 3001 movi r0, 1 + 4364: e0000ff6 bsr 0x6350 // 6350 + Contol_Switch_ClickAction(i,Control_ON); + 4368: 3101 movi r1, 1 + 436a: 6c13 mov r0, r4 + 436c: e0000a48 bsr 0x57fc // 57fc + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 4370: 3301 movi r3, 1 + 4372: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 4374: 3300 movi r3, 0 + 4376: ad6e st.h r3, (r5, 0x1c) + g_key.delayCnt[i] = 0; + 4378: a674 st.b r3, (r6, 0x14) + 437a: 07dd br 0x4334 // 4334 + g_key.delayCnt[i] = 0; + 437c: 3300 movi r3, 0 + 437e: a674 st.b r3, (r6, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 4380: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 4382: a665 st.b r3, (r6, 0x5) + 4384: 07d8 br 0x4334 // 4334 + g_key.key_time[i]++; + 4386: 8d4e ld.h r2, (r5, 0x1c) + 4388: 2200 addi r2, 1 + 438a: 7489 zexth r2, r2 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 438c: 1079 lrw r3, 0x257 // 43f0 + 438e: 648c cmphs r3, r2 + g_key.key_time[i]++; + 4390: ad4e st.h r2, (r5, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 4392: 0c10 bf 0x43b2 // 43b2 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 4394: 6c13 mov r0, r4 + 4396: e3fffda3 bsr 0x3edc // 3edc + 439a: 3840 cmpnei r0, 0 + 439c: 0bcc bt 0x4334 // 4334 + Contol_Switch_ClickAction(i,Control_OFF); + 439e: 3102 movi r1, 2 + 43a0: 6c13 mov r0, r4 + 43a2: e0000a2d bsr 0x57fc // 57fc + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 43a6: 3301 movi r3, 1 + 43a8: a665 st.b r3, (r6, 0x5) + g_key.key_time[i] = 0; + 43aa: 3300 movi r3, 0 + 43ac: ad6e st.h r3, (r5, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 43ae: a660 st.b r3, (r6, 0x0) + 43b0: 07c2 br 0x4334 // 4334 + g_key.KEY_STA[i] = KEY_STA_S2; + 43b2: 3302 movi r3, 2 + 43b4: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 43b6: 3300 movi r3, 0 + 43b8: ad6e st.h r3, (r5, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 43ba: 3303 movi r3, 3 + 43bc: a66f st.b r3, (r6, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 43be: 3302 movi r3, 2 + 43c0: 07e1 br 0x4382 // 4382 + g_key.key_longPress[i] = KEY_VAL_NOT; + 43c2: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 43c4: 6c13 mov r0, r4 + g_key.key_longPress[i] = KEY_VAL_NOT; + 43c6: a66f st.b r3, (r6, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 43c8: e3fffd8a bsr 0x3edc // 3edc + 43cc: 3840 cmpnei r0, 0 + 43ce: 0bb3 bt 0x4334 // 4334 + Contol_Switch_ClickAction(i,Control_OFF); + 43d0: 3102 movi r1, 2 + 43d2: 6c13 mov r0, r4 + 43d4: e0000a14 bsr 0x57fc // 57fc + g_key.KEY_STA[i] = KEY_STA_S0; + 43d8: 3300 movi r3, 0 + 43da: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 43dc: 3304 movi r3, 4 + 43de: 07d2 br 0x4382 // 4382 + 43e0: 200000c0 .long 0x200000c0 + 43e4: 200004f0 .long 0x200004f0 + 43e8: 20000a28 .long 0x20000a28 + 43ec: 200005e0 .long 0x200005e0 + 43f0: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +000043f4 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 43f4: 6040 addu r1, r0 + U8_T data_sum = 0; + 43f6: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 43fc: 6cce nor r3, r3 + 43fe: 740c zextb r0, r3 +} + 4400: 783c jmp r15 + data_sum += data[i]; + 4402: 8040 ld.b r2, (r0, 0x0) + 4404: 60c8 addu r3, r2 + 4406: 74cc zextb r3, r3 + 4408: 2000 addi r0, 1 + 440a: 07f7 br 0x43f8 // 43f8 + +Disassembly of section .text.TouchKey_Comm_Reply: + +0000440c : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 440c: 14d2 push r4-r5, r15 + 440e: 1430 subi r14, r14, 64 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 4410: 5992 addi r4, r1, 5 + 4412: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 4414: 3331 movi r3, 49 + 4416: 650c cmphs r3, r4 + 4418: 0803 bt 0x441e // 441e + para_len = 44; + 441a: 312c movi r1, 44 + reply_len = 50; + 441c: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 441e: 3300 movi r3, 0 + 4420: 2b50 subi r3, 81 + 4422: dc6e0004 st.b r3, (r14, 0x4) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 4426: dc8e0006 st.b r4, (r14, 0x6) + send_data[1] = g_eeprom.dev_addr; + 442a: 1074 lrw r3, 0x20000524 // 4478 + 442c: 8360 ld.b r3, (r3, 0x0) + 442e: dc6e0005 st.b r3, (r14, 0x5) + send_data[3] = 0x00; + 4432: 3300 movi r3, 0 + 4434: dc6e0007 st.b r3, (r14, 0x7) + + for(i=0;i + } + send_data[i+4] = 0xFA; + 4440: 60c8 addu r3, r2 + 4442: 3200 movi r2, 0 + 4444: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 4446: 6c53 mov r1, r4 + 4448: 1801 addi r0, r14, 4 + send_data[i+4] = 0xFA; + 444a: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 444c: e3ffffd4 bsr 0x43f4 // 43f4 + +// if (detect_inf.control_model == 0x00){ +// MCU485_SendData(send_data,reply_len); + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 4450: 3314 movi r3, 20 + 4452: b860 st.w r3, (r14, 0x0) + 4454: 3396 movi r3, 150 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 4456: dc0e0007 st.b r0, (r14, 0x7) + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 445a: 4361 lsli r3, r3, 1 + 445c: 1801 addi r0, r14, 4 + 445e: 3201 movi r2, 1 + 4460: 6c53 mov r1, r4 + 4462: e3fffc59 bsr 0x3d14 // 3d14 +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 4466: 1410 addi r14, r14, 64 + 4468: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 446a: 58ac addu r5, r0, r3 + 446c: 608c addu r2, r3 + 446e: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 4478: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +0000447c : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 447c: 14d4 push r4-r7, r15 + 447e: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 4480: 80a0 ld.b r5, (r0, 0x0) + 4482: 5dc3 subi r6, r5, 1 + 4484: 7598 zextb r6, r6 + 4486: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 4488: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 448a: 0834 bt 0x44f2 // 44f2 + 448c: 1125 lrw r1, 0x200004d4 // 4520 + 448e: 350b movi r5, 11 + 4490: 5862 addi r3, r0, 1 + 4492: 6140 addu r5, r0 + 4494: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 44b2: 8479 ld.b r3, (r4, 0x19) + 44b4: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 44b6: 847a ld.b r3, (r4, 0x1a) + 44b8: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 44ba: 847b ld.b r3, (r4, 0x1b) + 44bc: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 44be: 847c ld.b r3, (r4, 0x1c) + 44c0: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 44c2: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 44c4: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 44c6: 1037 lrw r1, 0x200004d4 // 4520 + touch_para.longpress_time = para[29]; + 44c8: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 44ca: e00002e9 bsr 0x4a9c // 4a9c + + if(rev == 0x00){ + 44ce: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 44d0: 6d43 mov r5, r0 + if(rev == 0x00){ + 44d2: 0805 bt 0x44dc // 44dc + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 44d4: 1033 lrw r1, 0x200004d4 // 4520 + 44d6: 6c1b mov r0, r6 + 44d8: e0000256 bsr 0x4984 // 4984 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 44dc: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 44de: 3102 movi r1, 2 + 44e0: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 44e2: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 44e6: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 44ea: e3ffff91 bsr 0x440c // 440c +} + 44ee: 1401 addi r14, r14, 4 + 44f0: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 44f2: 3d40 cmpnei r5, 0 + 44f4: 0c03 bf 0x44fa // 44fa + rev = 0x01; + 44f6: 3501 movi r5, 1 + 44f8: 07f2 br 0x44dc // 44dc + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 44fa: 8061 ld.b r3, (r0, 0x1) + 44fc: 104a lrw r2, 0xa0e8 // 4524 + 44fe: 102b lrw r1, 0xa5db // 4528 + 4500: 3000 movi r0, 0 + 4502: e3fffcb1 bsr 0x3e64 // 3e64 + if( (para[1] > 0) && (para[1] <= 3) ){ + 4506: 8461 ld.b r3, (r4, 0x1) + 4508: 2b00 subi r3, 1 + 450a: 74cc zextb r3, r3 + 450c: 3b02 cmphsi r3, 3 + 450e: 0bf4 bt 0x44f6 // 44f6 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4510: 1047 lrw r2, 0x20000868 // 452c + g_eeprom.key_sens_level = para[1] - 1; + 4512: 1008 lrw r0, 0x20000524 // 4530 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 4514: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 4516: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 4518: e00001be bsr 0x4894 // 4894 + 451c: 07e0 br 0x44dc // 44dc + 451e: 0000 bkpt + 4520: 200004d4 .long 0x200004d4 + 4524: 0000a0e8 .long 0x0000a0e8 + 4528: 0000a5db .long 0x0000a5db + 452c: 20000868 .long 0x20000868 + 4530: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +00004534 : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 4534: 14d3 push r4-r6, r15 + 4536: 142d subi r14, r14, 52 + 4538: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 453a: 3232 movi r2, 50 + 453c: 3100 movi r1, 0 + 453e: 6c3b mov r0, r14 + 4540: e3ffea2e bsr 0x199c // 199c <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 4544: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 4546: 3302 movi r3, 2 + if(para[0] == 0x00){ + 4548: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 454a: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 454e: 0837 bt 0x45bc // 45bc + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 4550: 11d5 lrw r6, 0x20000524 // 4624 + 4552: 8605 ld.b r0, (r6, 0x5) + 4554: 1135 lrw r1, 0x200004d4 // 4628 + 4556: e000024d bsr 0x49f0 // 49f0 + if(rev != 0x00){ + 455a: 3840 cmpnei r0, 0 + 455c: 11b3 lrw r5, 0x200004d4 // 4628 + 455e: 0c05 bf 0x4568 // 4568 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4560: 8605 ld.b r0, (r6, 0x5) + 4562: 6c57 mov r1, r5 + 4564: e000030c bsr 0x4b7c // 4b7c + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 4568: 8665 ld.b r3, (r6, 0x5) + 456a: 2300 addi r3, 1 + 456c: dc6e0001 st.b r3, (r14, 0x1) + 4570: 6cfb mov r3, r14 + 4572: 114e lrw r2, 0x200004d4 // 4628 + + for(i=0;i> 8; + 457a: 4928 lsri r1, r1, 8 + 457c: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 4586: 4928 lsri r1, r1, 8 + 4588: a32f st.b r1, (r3, 0xf) + 458a: 2201 addi r2, 2 + 458c: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 4590: 8560 ld.b r3, (r5, 0x0) + 4592: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 4596: 8561 ld.b r3, (r5, 0x1) + 4598: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 459c: 8562 ld.b r3, (r5, 0x2) + 459e: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 45a2: 8563 ld.b r3, (r5, 0x3) + 45a4: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 45a8: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 45aa: dc6e001e st.b r3, (r14, 0x1e) + 45ae: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 45b0: 7445 zexth r1, r1 + 45b2: 6c3b mov r0, r14 + 45b4: e3ffff2c bsr 0x440c // 440c +} + 45b8: 140d addi r14, r14, 52 + 45ba: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 45bc: 3c03 cmphsi r4, 4 + 45be: 0831 bt 0x4620 // 4620 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 45c0: 2c00 subi r4, 1 + 45c2: 7410 zextb r0, r4 + 45c4: 1039 lrw r1, 0x200004d4 // 4628 + 45c6: e0000215 bsr 0x49f0 // 49f0 + if(rev != 0x00){ + 45ca: 3840 cmpnei r0, 0 + 45cc: 1097 lrw r4, 0x200004d4 // 4628 + 45ce: 0c07 bf 0x45dc // 45dc + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 45d0: 8500 ld.b r0, (r5, 0x0) + 45d2: 2800 subi r0, 1 + 45d4: 7400 zextb r0, r0 + 45d6: 6c53 mov r1, r4 + 45d8: e00002d2 bsr 0x4b7c // 4b7c + reply_buff[reply_len++] = para[0]; + 45dc: 8560 ld.b r3, (r5, 0x0) + 45de: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 45e6: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 45e8: 8902 ld.h r0, (r1, 0x4) + 45ea: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 45ee: 4808 lsri r0, r0, 8 + 45f0: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 45fa: 4808 lsri r0, r0, 8 + 45fc: a30f st.b r0, (r3, 0xf) + 45fe: 2101 addi r1, 2 + 4600: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 4604: 8460 ld.b r3, (r4, 0x0) + 4606: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 460a: 8461 ld.b r3, (r4, 0x1) + 460c: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4610: 8462 ld.b r3, (r4, 0x2) + 4612: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 4616: 8463 ld.b r3, (r4, 0x3) + 4618: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 461c: 8478 ld.b r3, (r4, 0x18) + 461e: 07c6 br 0x45aa // 45aa + reply_buff[reply_len++] = 0x00; + 4620: 3102 movi r1, 2 + 4622: 07c7 br 0x45b0 // 45b0 + 4624: 20000524 .long 0x20000524 + 4628: 200004d4 .long 0x200004d4 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +0000462c : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 462c: 14d0 push r15 + 462e: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 4630: 8060 ld.b r3, (r0, 0x0) + 4632: 3b41 cmpnei r3, 1 + 4634: 0810 bt 0x4654 // 4654 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 4636: 106b lrw r3, 0x200004f0 // 4660 + 4638: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 463a: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 463c: 3303 movi r3, 3 + 463e: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4642: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 4644: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 4646: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 4648: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 464c: e3fffee0 bsr 0x440c // 440c +} + 4650: 1401 addi r14, r14, 4 + 4652: 1490 pop r15 + }else if(para[0] == 0x02){ + 4654: 3b42 cmpnei r3, 2 + 4656: 0bf3 bt 0x463c // 463c + g_key.key_dug_printf = 0x00; + 4658: 1062 lrw r3, 0x200004f0 // 4660 + 465a: 3200 movi r2, 0 + 465c: 07ef br 0x463a // 463a + 465e: 0000 bkpt + 4660: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004664 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4664: 14d0 push r15 + 4666: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4668: 1149 lrw r2, 0x20000bda // 470c + reply_buff[reply_len++] = 0x04; //CMD + 466a: 3304 movi r3, 4 + 466c: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4670: 8a69 ld.h r3, (r2, 0x12) + 4672: 4b68 lsri r3, r3, 8 + 4674: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4678: 8a69 ld.h r3, (r2, 0x12) + 467a: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 467e: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4680: 1164 lrw r3, 0x20000888 // 4710 + 4682: 8b29 ld.h r1, (r3, 0x12) + 4684: 4928 lsri r1, r1, 8 + 4686: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 468a: 8b29 ld.h r1, (r3, 0x12) + 468c: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4690: 8a2a ld.h r1, (r2, 0x14) + 4692: 4928 lsri r1, r1, 8 + 4694: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4698: 8a2a ld.h r1, (r2, 0x14) + 469a: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 469e: 8b2a ld.h r1, (r3, 0x14) + 46a0: 4928 lsri r1, r1, 8 + 46a2: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 46a6: 8b2a ld.h r1, (r3, 0x14) + 46a8: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 46ac: 8a2b ld.h r1, (r2, 0x16) + 46ae: 4928 lsri r1, r1, 8 + 46b0: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 46b4: 8a2b ld.h r1, (r2, 0x16) + 46b6: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 46ba: 8b2b ld.h r1, (r3, 0x16) + 46bc: 4928 lsri r1, r1, 8 + 46be: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 46c2: 8b2b ld.h r1, (r3, 0x16) + 46c4: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 46c8: 8a2c ld.h r1, (r2, 0x18) + 46ca: 4928 lsri r1, r1, 8 + 46cc: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 46d0: 8a2c ld.h r1, (r2, 0x18) + 46d2: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 46d6: 8b2c ld.h r1, (r3, 0x18) + 46d8: 4928 lsri r1, r1, 8 + 46da: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 46de: 8b2c ld.h r1, (r3, 0x18) + 46e0: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 46e4: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 46e6: 8a4d ld.h r2, (r2, 0x1a) + 46e8: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 46ec: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 46ee: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 46f0: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 46f4: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 46f6: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 46f8: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 46fa: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 46fe: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4702: e3fffe85 bsr 0x440c // 440c +} + 4706: 140d addi r14, r14, 52 + 4708: 1490 pop r15 + 470a: 0000 bkpt + 470c: 20000bda .long 0x20000bda + 4710: 20000888 .long 0x20000888 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +00004714 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 4714: 14d0 push r15 + 4716: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 4718: 3305 movi r3, 5 + 471a: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 471e: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 4720: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4722: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 4724: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 4728: e3fffe72 bsr 0x440c // 440c + 472c: 0400 br 0x472c // 472c + +Disassembly of section .text.TouchKey_Comm_Processing: + +00004730 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 4730: 14d2 push r4-r5, r15 + 4732: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 4734: 8060 ld.b r3, (r0, 0x0) + 4736: 32af movi r2, 175 + 4738: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 473a: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 473c: 0c09 bf 0x474e // 474e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 473e: 3000 movi r0, 0 + 4740: 114b lrw r2, 0xa104 // 47ec + 4742: 112c lrw r1, 0xa5eb // 47f0 + 4744: e3fffb90 bsr 0x3e64 // 3e64 + return 0x01; + 4748: 3001 movi r0, 1 + break; + } + + + return 0; +} + 474a: 1401 addi r14, r14, 4 + 474c: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 474e: 114a lrw r2, 0x20000524 // 47f4 + 4750: 8061 ld.b r3, (r0, 0x1) + 4752: 8240 ld.b r2, (r2, 0x0) + 4754: 64ca cmpne r2, r3 + 4756: 0c08 bf 0x4766 // 4766 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 4758: 3000 movi r0, 0 + 475a: 1145 lrw r2, 0xa104 // 47ec + 475c: 1127 lrw r1, 0xa5fd // 47f8 + 475e: e3fffb83 bsr 0x3e64 // 3e64 + return 0x02; + 4762: 3002 movi r0, 2 + 4764: 07f3 br 0x474a // 474a + if(data[2] != len){ + 4766: 8062 ld.b r3, (r0, 0x2) + 4768: 750d zexth r4, r3 + 476a: 6452 cmpne r4, r1 + 476c: 0c09 bf 0x477e // 477e + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 476e: b820 st.w r1, (r14, 0x0) + 4770: 105f lrw r2, 0xa104 // 47ec + 4772: 1123 lrw r1, 0xa60e // 47fc + 4774: 3000 movi r0, 0 + 4776: e3fffb77 bsr 0x3e64 // 3e64 + return 0x03; + 477a: 3003 movi r0, 3 + 477c: 07e7 br 0x474a // 474a + if(data[len-1] != 0xFA){ + 477e: 60c0 addu r3, r0 + 4780: 2b00 subi r3, 1 + 4782: 8360 ld.b r3, (r3, 0x0) + 4784: 32fa movi r2, 250 + 4786: 648e cmpne r3, r2 + 4788: 0c07 bf 0x4796 // 4796 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 478a: 1059 lrw r2, 0xa104 // 47ec + 478c: 103d lrw r1, 0xa621 // 4800 + 478e: 3000 movi r0, 0 + 4790: e3fffb6a bsr 0x3e64 // 3e64 + 4794: 07f3 br 0x477a // 477a + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 4796: 5c23 subi r1, r4, 1 + 4798: 7445 zexth r1, r1 + 479a: e3fffe2d bsr 0x43f4 // 43f4 + 479e: 3840 cmpnei r0, 0 + 47a0: 0806 bt 0x47ac // 47ac + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 47a2: 1053 lrw r2, 0xa104 // 47ec + 47a4: 1038 lrw r1, 0xa631 // 4804 + 47a6: e3fffb5f bsr 0x3e64 // 3e64 + 47aa: 07e8 br 0x477a // 477a + switch(data[4]){ + 47ac: 8504 ld.b r0, (r5, 0x4) + 47ae: 2800 subi r0, 1 + 47b0: 3804 cmphsi r0, 5 + 47b2: 080c bt 0x47ca // 47ca + 47b4: 5c37 subi r1, r4, 6 + 47b6: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 47b8: 7445 zexth r1, r1 + switch(data[4]){ + 47ba: e3ffe2a1 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 47be: 0803 .short 0x0803 + 47c0: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 47c4: 6c17 mov r0, r5 + 47c6: e3fffe5b bsr 0x447c // 447c + return 0; + 47ca: 3000 movi r0, 0 + 47cc: 07bf br 0x474a // 474a + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 47ce: 6c17 mov r0, r5 + 47d0: e3fffeb2 bsr 0x4534 // 4534 + 47d4: 07fb br 0x47ca // 47ca + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 47d6: 6c17 mov r0, r5 + 47d8: e3ffff2a bsr 0x462c // 462c + 47dc: 07f7 br 0x47ca // 47ca + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 47de: 6c17 mov r0, r5 + 47e0: e3ffff42 bsr 0x4664 // 4664 + 47e4: 07f3 br 0x47ca // 47ca + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 47e6: 6c17 mov r0, r5 + 47e8: e3ffff96 bsr 0x4714 // 4714 + 47ec: 0000a104 .long 0x0000a104 + 47f0: 0000a5eb .long 0x0000a5eb + 47f4: 20000524 .long 0x20000524 + 47f8: 0000a5fd .long 0x0000a5fd + 47fc: 0000a60e .long 0x0000a60e + 4800: 0000a621 .long 0x0000a621 + 4804: 0000a631 .long 0x0000a631 + +Disassembly of section .text.EEPROM_CheckSum: + +00004808 : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4808: 6cc3 mov r3, r0 + 480a: 6040 addu r1, r0 + U8_T data_sum = 0; + 480c: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4812: 783c jmp r15 + data_sum += data[i]; + 4814: 8340 ld.b r2, (r3, 0x0) + 4816: 6008 addu r0, r2 + 4818: 7400 zextb r0, r0 + 481a: 2300 addi r3, 1 + 481c: 07f9 br 0x480e // 480e + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004820 : + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4820: 14d1 push r4, r15 + 4822: 143b subi r14, r14, 108 + 4824: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 4826: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4828: 3264 movi r2, 100 + 482a: 3100 movi r1, 0 + 482c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 482e: b860 st.w r3, (r14, 0x0) + 4830: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4834: e3ffe8b4 bsr 0x199c // 199c <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4838: 6cbb mov r2, r14 + 483a: 3104 movi r1, 4 + 483c: 1014 lrw r0, 0x10000100 // 488c + 483e: e3fff17f bsr 0x2b3c // 2b3c + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 4842: d84e0000 ld.b r2, (r14, 0x0) + 4846: 33a6 movi r3, 166 + 4848: 64ca cmpne r2, r3 + 484a: 0c04 bf 0x4852 // 4852 + return 0x00; + } + } + } + + return 0x01; + 484c: 3001 movi r0, 1 +} + 484e: 141b addi r14, r14, 108 + 4850: 1491 pop r4, r15 + read_len |= read_info[1]; + 4852: d82e0002 ld.b r1, (r14, 0x2) + 4856: d86e0001 ld.b r3, (r14, 0x1) + 485a: 4128 lsli r1, r1, 8 + 485c: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 485e: 3364 movi r3, 100 + 4860: 644c cmphs r3, r1 + 4862: 0ff5 bf 0x484c // 484c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4864: 1a02 addi r2, r14, 8 + 4866: 100b lrw r0, 0x10000104 // 4890 + 4868: e3fff16a bsr 0x2b3c // 2b3c + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 486c: 3108 movi r1, 8 + 486e: 1802 addi r0, r14, 8 + 4870: e3ffffcc bsr 0x4808 // 4808 + 4874: d86e0003 ld.b r3, (r14, 0x3) + 4878: 640e cmpne r3, r0 + 487a: 0be9 bt 0x484c // 484c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 487c: 3208 movi r2, 8 + 487e: 1902 addi r1, r14, 8 + 4880: 6c13 mov r0, r4 + 4882: e3ffe8d1 bsr 0x1a24 // 1a24 <__memcpy_fast> + return 0x00; + 4886: 3000 movi r0, 0 + 4888: 07e3 br 0x484e // 484e + 488a: 0000 bkpt + 488c: 10000100 .long 0x10000100 + 4890: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00004894 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 4894: 14d0 push r15 + 4896: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 4898: 3300 movi r3, 0 + 489a: 2b59 subi r3, 90 + 489c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 48a0: 3308 movi r3, 8 + 48a2: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 48a6: 3300 movi r3, 0 + 48a8: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 48ac: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 48ae: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 48b0: 3208 movi r2, 8 + 48b2: 6c0f mov r0, r3 + 48b4: e3ffe8b8 bsr 0x1a24 // 1a24 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 48b8: 3108 movi r1, 8 + 48ba: e3ffffa7 bsr 0x4808 // 4808 + 48be: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 48c2: 6cbb mov r2, r14 + 48c4: 310c movi r1, 12 + 48c6: 1004 lrw r0, 0x10000100 // 48d4 + 48c8: e3fff0ea bsr 0x2a9c // 2a9c + + return 0; +} + 48cc: 3000 movi r0, 0 + 48ce: 141b addi r14, r14, 108 + 48d0: 1490 pop r15 + 48d2: 0000 bkpt + 48d4: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +000048d8 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 48d8: 14d1 push r4, r15 + 48da: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 48dc: 8062 ld.b r3, (r0, 0x2) + 48de: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 48e0: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 48e2: 0c03 bf 0x48e8 // 48e8 + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 48e4: 3309 movi r3, 9 + 48e6: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 48e8: 8442 ld.b r2, (r4, 0x2) + 48ea: 103d lrw r1, 0xa640 // 495c + 48ec: 3000 movi r0, 0 + 48ee: e3fffabb bsr 0x3e64 // 3e64 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 48f2: 8463 ld.b r3, (r4, 0x3) + 48f4: 3b02 cmphsi r3, 3 + 48f6: 0c03 bf 0x48fc // 48fc + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 48f8: 3300 movi r3, 0 + 48fa: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 48fc: 8464 ld.b r3, (r4, 0x4) + 48fe: 3b01 cmphsi r3, 2 + 4900: 0c03 bf 0x4906 // 4906 + { + info->backlight_en = 0x00; + 4902: 3300 movi r3, 0 + 4904: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 4906: 8461 ld.b r3, (r4, 0x1) + 4908: 3b02 cmphsi r3, 3 + 490a: 0c03 bf 0x4910 // 4910 + { + info->pipe_flag = 0x00; + 490c: 3300 movi r3, 0 + 490e: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4910: 8460 ld.b r3, (r4, 0x0) + 4912: 2b00 subi r3, 1 + 4914: 74cc zextb r3, r3 + 4916: 32fd movi r2, 253 + 4918: 64c8 cmphs r2, r3 + 491a: 0803 bt 0x4920 // 4920 + { + info->dev_addr = 0x01; + 491c: 3301 movi r3, 1 + 491e: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4920: 8465 ld.b r3, (r4, 0x5) + 4922: 3b02 cmphsi r3, 3 + 4924: 0c03 bf 0x492a // 492a + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4926: 3301 movi r3, 1 + 4928: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 492a: 8466 ld.b r3, (r4, 0x6) + 492c: 3b02 cmphsi r3, 3 + 492e: 0c03 bf 0x4934 // 4934 + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 4930: 3300 movi r3, 0 + 4932: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 4934: 8467 ld.b r3, (r4, 0x7) + 4936: 3b02 cmphsi r3, 3 + 4938: 0c03 bf 0x493e // 493e + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 493a: 3301 movi r3, 1 + 493c: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 493e: 8427 ld.b r1, (r4, 0x7) + 4940: b822 st.w r1, (r14, 0x8) + 4942: 8420 ld.b r1, (r4, 0x0) + 4944: b821 st.w r1, (r14, 0x4) + 4946: 8425 ld.b r1, (r4, 0x5) + 4948: b820 st.w r1, (r14, 0x0) + 494a: 8464 ld.b r3, (r4, 0x4) + 494c: 8443 ld.b r2, (r4, 0x3) + 494e: 1025 lrw r1, 0xa657 // 4960 + 4950: 3000 movi r0, 0 + 4952: e3fffa89 bsr 0x3e64 // 3e64 + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 4956: 3000 movi r0, 0 + 4958: 1403 addi r14, r14, 12 + 495a: 1491 pop r4, r15 + 495c: 0000a640 .long 0x0000a640 + 4960: 0000a657 .long 0x0000a657 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004964 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4964: 3301 movi r3, 1 + 4966: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 4968: 3300 movi r3, 0 + 496a: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 496c: 3309 movi r3, 9 + 496e: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4970: 3300 movi r3, 0 + 4972: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 4974: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 4976: 3301 movi r3, 1 + 4978: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 497a: 3300 movi r3, 0 + 497c: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 497e: 3301 movi r3, 1 + 4980: a067 st.b r3, (r0, 0x7) + +} + 4982: 783c jmp r15 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004984 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4984: 14d2 push r4-r5, r15 + 4986: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4988: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 498a: 6d47 mov r5, r1 + switch(level){ + 498c: 0c07 bf 0x499a // 499a + 498e: 3840 cmpnei r0, 0 + 4990: 0c27 bf 0x49de // 49de + 4992: 3842 cmpnei r0, 2 + 4994: 0c23 bf 0x49da // 49da + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4996: 3001 movi r0, 1 + 4998: 041f br 0x49d6 // 49d6 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 499a: 1093 lrw r4, 0x10000280 // 49e4 + break; + } + + memset(save_para,0,sizeof(save_para)); + 499c: 323c movi r2, 60 + 499e: 3100 movi r1, 0 + 49a0: 6c3b mov r0, r14 + 49a2: e3ffe7fd bsr 0x199c // 199c <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_APP_SVAE_FLAG; + 49a6: 3300 movi r3, 0 + 49a8: 2b59 subi r3, 90 + 49aa: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 49ae: 331c movi r3, 28 + 49b0: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 49b4: 1b01 addi r3, r14, 4 + 49b6: 321c movi r2, 28 + 49b8: 6c0f mov r0, r3 + 49ba: 6c57 mov r1, r5 + 49bc: e3ffe834 bsr 0x1a24 // 1a24 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 49c0: 311c movi r1, 28 + 49c2: e3ffff23 bsr 0x4808 // 4808 + 49c6: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 49ca: 6cbb mov r2, r14 + 49cc: 6c13 mov r0, r4 + 49ce: 3120 movi r1, 32 + 49d0: e3fff066 bsr 0x2a9c // 2a9c + + return 0; + 49d4: 3000 movi r0, 0 +} + 49d6: 140f addi r14, r14, 60 + 49d8: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 49da: 1084 lrw r4, 0x10000300 // 49e8 + break; + 49dc: 07e0 br 0x499c // 499c + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 49de: 1084 lrw r4, 0x10000200 // 49ec + 49e0: 07de br 0x499c // 499c + 49e2: 0000 bkpt + 49e4: 10000280 .long 0x10000280 + 49e8: 10000300 .long 0x10000300 + 49ec: 10000200 .long 0x10000200 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +000049f0 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 49f0: 14d2 push r4-r5, r15 + 49f2: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 49f4: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 49f6: 6d07 mov r4, r1 + switch(level){ + 49f8: 0c3a bf 0x4a6c // 4a6c + 49fa: 3840 cmpnei r0, 0 + 49fc: 0c05 bf 0x4a06 // 4a06 + 49fe: 3842 cmpnei r0, 2 + 4a00: 0c34 bf 0x4a68 // 4a68 + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4a02: 3001 movi r0, 1 + 4a04: 0430 br 0x4a64 // 4a64 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4a06: 11a1 lrw r5, 0x10000200 // 4a88 + memset(read_info,0,sizeof(read_info)); + 4a08: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4a0a: 3234 movi r2, 52 + 4a0c: 3100 movi r1, 0 + 4a0e: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4a10: b860 st.w r3, (r14, 0x0) + 4a12: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4a16: e3ffe7c3 bsr 0x199c // 199c <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4a1a: 6cbb mov r2, r14 + 4a1c: 3104 movi r1, 4 + 4a1e: 6c17 mov r0, r5 + 4a20: e3fff08e bsr 0x2b3c // 2b3c + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 4a24: d84e0000 ld.b r2, (r14, 0x0) + 4a28: 33a6 movi r3, 166 + 4a2a: 64ca cmpne r2, r3 + 4a2c: 0827 bt 0x4a7a // 4a7a + read_len |= read_info[1]; + 4a2e: d84e0002 ld.b r2, (r14, 0x2) + 4a32: d86e0001 ld.b r3, (r14, 0x1) + 4a36: 4248 lsli r2, r2, 8 + 4a38: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4a3a: 3a5c cmpnei r2, 28 + 4a3c: 081a bt 0x4a70 // 4a70 + temp_addr += EEPROM_Offset_Data; + 4a3e: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 4a40: 1a02 addi r2, r14, 8 + 4a42: 311c movi r1, 28 + 4a44: e3fff07c bsr 0x2b3c // 2b3c + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 4a48: 311c movi r1, 28 + 4a4a: 1802 addi r0, r14, 8 + 4a4c: e3fffede bsr 0x4808 // 4808 + 4a50: d86e0003 ld.b r3, (r14, 0x3) + 4a54: 640e cmpne r3, r0 + 4a56: 0bd6 bt 0x4a02 // 4a02 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 4a58: 321c movi r2, 28 + 4a5a: 1902 addi r1, r14, 8 + 4a5c: 6c13 mov r0, r4 + 4a5e: e3ffe7e3 bsr 0x1a24 // 1a24 <__memcpy_fast> + return 0x00; + 4a62: 3000 movi r0, 0 +} + 4a64: 140f addi r14, r14, 60 + 4a66: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4a68: 10a9 lrw r5, 0x10000300 // 4a8c + break; + 4a6a: 07cf br 0x4a08 // 4a08 + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4a6c: 10a9 lrw r5, 0x10000280 // 4a90 + 4a6e: 07cd br 0x4a08 // 4a08 + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 4a70: 1029 lrw r1, 0xa6b1 // 4a94 + 4a72: 3000 movi r0, 0 + 4a74: e3fff9f8 bsr 0x3e64 // 3e64 + 4a78: 07c5 br 0x4a02 // 4a02 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 4a7a: 3304 movi r3, 4 + 4a7c: 6cbb mov r2, r14 + 4a7e: 1027 lrw r1, 0xa6d3 // 4a98 + 4a80: 3000 movi r0, 0 + 4a82: e3fff9f7 bsr 0x3e70 // 3e70 + 4a86: 07be br 0x4a02 // 4a02 + 4a88: 10000200 .long 0x10000200 + 4a8c: 10000300 .long 0x10000300 + 4a90: 10000280 .long 0x10000280 + 4a94: 0000a6b1 .long 0x0000a6b1 + 4a98: 0000a6d3 .long 0x0000a6d3 + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00004a9c : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4a9c: 14c4 push r4-r7 + 4a9e: 1421 subi r14, r14, 4 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 4aa0: 8163 ld.b r3, (r1, 0x3) + 4aa2: 2b00 subi r3, 1 + 4aa4: 74cc zextb r3, r3 + 4aa6: 3263 movi r2, 99 + 4aa8: 64c8 cmphs r2, r3 + 4aaa: 084e bt 0x4b46 // 4b46 + para->base_speed = 20; //默认参数 - 20 + 4aac: 3314 movi r3, 20 + 4aae: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 4ab0: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4ab2: 8140 ld.b r2, (r1, 0x0) + 4ab4: 2a00 subi r2, 1 + 4ab6: 7488 zextb r2, r2 + 4ab8: 3a09 cmphsi r2, 10 + 4aba: 0c04 bf 0x4ac2 // 4ac2 + para->press_debounce = 3; //默认参数 - 6 + 4abc: 3303 movi r3, 3 + 4abe: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 4ac0: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4ac2: 8141 ld.b r2, (r1, 0x1) + 4ac4: 2a00 subi r2, 1 + 4ac6: 7488 zextb r2, r2 + 4ac8: 3a09 cmphsi r2, 10 + 4aca: 0c04 bf 0x4ad2 // 4ad2 + para->release_debounce = 3; //默认参数 - 5 + 4acc: 3303 movi r3, 3 + 4ace: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 4ad0: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4ad2: 8142 ld.b r2, (r1, 0x2) + 4ad4: 2a00 subi r2, 1 + 4ad6: 7488 zextb r2, r2 + 4ad8: 3463 movi r4, 99 + 4ada: 6490 cmphs r4, r2 + 4adc: 0804 bt 0x4ae4 // 4ae4 + para->multiTimes_filt = 40; //默认参数 - 40 + 4ade: 3328 movi r3, 40 + 4ae0: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4ae2: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4ae4: 9146 ld.w r2, (r1, 0x18) + 4ae6: 2a00 subi r2, 1 + 4ae8: 3a1f cmphsi r2, 32 + 4aea: 0c04 bf 0x4af2 // 4af2 + para->longpress_time = 16; //默认参数 - 16 + 4aec: 3310 movi r3, 16 + 4aee: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 4af0: 3301 movi r3, 1 + if (i == 0){ + para->senprd[i] = 200; //默认参数 - 250 + }else if (i == 1){ + para->senprd[i] = 265; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 270; //默认参数 - 320 + 4af2: 3587 movi r5, 135 + 4af4: 45a1 lsli r5, r5, 1 + 4af6: 598e addi r4, r1, 4 + rev = 0x01; + 4af8: 3200 movi r2, 0 + }else if (i == 3){ + para->senprd[i] = 265; //默认参数 - 320 + 4afa: 11e0 lrw r7, 0x109 // 4b78 + para->senprd[i] = 270; //默认参数 - 320 + 4afc: dcae1001 st.h r5, (r14, 0x2) + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4b00: 8ca0 ld.h r5, (r4, 0x0) + 4b02: 2d09 subi r5, 10 + 4b04: 7555 zexth r5, r5 + 4b06: 10dc lrw r6, 0x3de // 4b74 + 4b08: 6558 cmphs r6, r5 + 4b0a: 0806 bt 0x4b16 // 4b16 + if (i == 0){ + 4b0c: 3a40 cmpnei r2, 0 + 4b0e: 081e bt 0x4b4a // 4b4a + para->senprd[i] = 200; //默认参数 - 250 + 4b10: 33c8 movi r3, 200 + 4b12: a962 st.h r3, (r1, 0x4) + para->senprd[i] = 230; //默认参数 - 280 + }else { + para->senprd[i] = 250; //默认参数 - 280 + } + + rev = 0x01; + 4b14: 3301 movi r3, 1 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4b16: 8ca5 ld.h r5, (r4, 0xa) + 4b18: 2d13 subi r5, 20 + 4b1a: 36f5 movi r6, 245 + 4b1c: 7555 zexth r5, r5 + 4b1e: 46c2 lsli r6, r6, 2 + 4b20: 6558 cmphs r6, r5 + 4b22: 080a bt 0x4b36 // 4b36 + + switch(level){ + 4b24: 3841 cmpnei r0, 1 + 4b26: 0c25 bf 0x4b70 // 4b70 + 4b28: 3840 cmpnei r0, 0 + 4b2a: 0c21 bf 0x4b6c // 4b6c + 4b2c: 3842 cmpnei r0, 2 + 4b2e: 0821 bt 0x4b70 // 4b70 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 80 + 4b30: 3350 movi r3, 80 + break; + case 0x00: + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + break; + default: + para->triggerlevel[i] = 100; + 4b32: ac65 st.h r3, (r4, 0xa) + break; + } + + rev = 0x01; + 4b34: 3301 movi r3, 1 + for(i=0;i + } + } + + return rev; +} + 4b40: 6c0f mov r0, r3 + 4b42: 1401 addi r14, r14, 4 + 4b44: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 4b46: 3300 movi r3, 0 + 4b48: 07b5 br 0x4ab2 // 4ab2 + }else if (i == 1){ + 4b4a: 3a41 cmpnei r2, 1 + 4b4c: 0803 bt 0x4b52 // 4b52 + para->senprd[i] = 265; //默认参数 - 320 + 4b4e: a9e3 st.h r7, (r1, 0x6) + 4b50: 07e2 br 0x4b14 // 4b14 + }else if (i == 2){ + 4b52: 3a42 cmpnei r2, 2 + 4b54: 0805 bt 0x4b5e // 4b5e + para->senprd[i] = 270; //默认参数 - 320 + 4b56: d86e1001 ld.h r3, (r14, 0x2) + 4b5a: a964 st.h r3, (r1, 0x8) + 4b5c: 07dc br 0x4b14 // 4b14 + }else if (i == 3){ + 4b5e: 3a43 cmpnei r2, 3 + 4b60: 0803 bt 0x4b66 // 4b66 + para->senprd[i] = 265; //默认参数 - 320 + 4b62: a9e5 st.h r7, (r1, 0xa) + 4b64: 07d8 br 0x4b14 // 4b14 + para->senprd[i] = 230; //默认参数 - 280 + 4b66: 33e6 movi r3, 230 + 4b68: a966 st.h r3, (r1, 0xc) + 4b6a: 07d5 br 0x4b14 // 4b14 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + 4b6c: 3378 movi r3, 120 + 4b6e: 07e2 br 0x4b32 // 4b32 + para->triggerlevel[i] = 100; + 4b70: 3364 movi r3, 100 + 4b72: 07e0 br 0x4b32 // 4b32 + 4b74: 000003de .long 0x000003de + 4b78: 00000109 .long 0x00000109 + +Disassembly of section .text.EEPROM_Default_TouchPara: + +00004b7c : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4b7c: 14c3 push r4-r6 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 4b7e: 3314 movi r3, 20 + 4b80: a163 st.b r3, (r1, 0x3) + para->press_debounce = 3; //默认参数 - 6 + 4b82: 3303 movi r3, 3 + 4b84: a160 st.b r3, (r1, 0x0) + para->release_debounce = 3; //默认参数 - 5 + 4b86: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 4b88: 3328 movi r3, 40 + 4b8a: a162 st.b r3, (r1, 0x2) + 4b8c: 320e movi r2, 14 + para->longpress_time = 16; //默认参数 - 8 + 4b8e: 3310 movi r3, 16 + if (i == 0){ + para->senprd[i] = 200; //默认参数 - 250 + }else if (i == 1){ + para->senprd[i] = 265; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 270; //默认参数 - 320 + 4b90: 3487 movi r4, 135 + para->longpress_time = 16; //默认参数 - 8 + 4b92: b166 st.w r3, (r1, 0x18) + 4b94: 6084 addu r2, r1 + for(i=0;isenprd[i] = 265; //默认参数 - 320 + 4b98: 10b4 lrw r5, 0x109 // 4be8 + para->senprd[i] = 270; //默认参数 - 320 + 4b9a: 4481 lsli r4, r4, 1 + if (i == 0){ + 4b9c: 3b40 cmpnei r3, 0 + 4b9e: 0811 bt 0x4bc0 // 4bc0 + para->senprd[i] = 200; //默认参数 - 250 + 4ba0: 36c8 movi r6, 200 + 4ba2: a9c2 st.h r6, (r1, 0x4) +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 4ba4: 3841 cmpnei r0, 1 + 4ba6: 0c1e bf 0x4be2 // 4be2 + 4ba8: 3840 cmpnei r0, 0 + 4baa: 0c1a bf 0x4bde // 4bde + 4bac: 3842 cmpnei r0, 2 + 4bae: 081a bt 0x4be2 // 4be2 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 80 + 4bb0: 3650 movi r6, 80 + for(i=0;itriggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + break; + default: + para->triggerlevel[i] = 100; + 4bb8: aac0 st.h r6, (r2, 0x0) + 4bba: 2201 addi r2, 2 + for(i=0;i + break; + } + + } +} + 4bbe: 1483 pop r4-r6 + }else if (i == 1){ + 4bc0: 3b41 cmpnei r3, 1 + 4bc2: 0803 bt 0x4bc8 // 4bc8 + para->senprd[i] = 265; //默认参数 - 320 + 4bc4: a9a3 st.h r5, (r1, 0x6) + 4bc6: 07ef br 0x4ba4 // 4ba4 + }else if (i == 2){ + 4bc8: 3b42 cmpnei r3, 2 + 4bca: 0803 bt 0x4bd0 // 4bd0 + para->senprd[i] = 270; //默认参数 - 320 + 4bcc: a984 st.h r4, (r1, 0x8) + 4bce: 07eb br 0x4ba4 // 4ba4 + }else if (i == 3){ + 4bd0: 3b43 cmpnei r3, 3 + 4bd2: 0803 bt 0x4bd8 // 4bd8 + para->senprd[i] = 265; //默认参数 - 320 + 4bd4: a9a5 st.h r5, (r1, 0xa) + 4bd6: 07e7 br 0x4ba4 // 4ba4 + para->senprd[i] = 230; //默认参数 - 280 + 4bd8: 36e6 movi r6, 230 + 4bda: a9c6 st.h r6, (r1, 0xc) + 4bdc: 07e4 br 0x4ba4 // 4ba4 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + 4bde: 3678 movi r6, 120 + 4be0: 07e9 br 0x4bb2 // 4bb2 + para->triggerlevel[i] = 100; + 4be2: 3664 movi r6, 100 + 4be4: 07e7 br 0x4bb2 // 4bb2 + 4be6: 0000 .short 0x0000 + 4be8: 00000109 .long 0x00000109 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004bec : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4bec: 14d4 push r4-r7, r15 + 4bee: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4bf0: 8043 ld.b r2, (r0, 0x3) + 4bf2: 1038 lrw r1, 0xa6f1 // 4c50 + 4bf4: 3000 movi r0, 0 + 4bf6: e3fff937 bsr 0x3e64 // 3e64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 4bfa: 8440 ld.b r2, (r4, 0x0) + 4bfc: 1036 lrw r1, 0xa709 // 4c54 + 4bfe: 3000 movi r0, 0 + 4c00: e3fff932 bsr 0x3e64 // 3e64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4c04: 8441 ld.b r2, (r4, 0x1) + 4c06: 1035 lrw r1, 0xa725 // 4c58 + 4c08: 3000 movi r0, 0 + 4c0a: e3fff92d bsr 0x3e64 // 3e64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4c0e: 8442 ld.b r2, (r4, 0x2) + 4c10: 1033 lrw r1, 0xa743 // 4c5c + 4c12: 3000 movi r0, 0 + 4c14: e3fff928 bsr 0x3e64 // 3e64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4c18: 9446 ld.w r2, (r4, 0x18) + 4c1a: 3000 movi r0, 0 + 4c1c: 1031 lrw r1, 0xa760 // 4c60 + 4c1e: e3fff923 bsr 0x3e64 // 3e64 + 4c22: 2403 addi r4, 4 + 4c24: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 4c26: 10f0 lrw r7, 0xa77c // 4c64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4c28: 10d0 lrw r6, 0xa795 // 4c68 + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4c2a: e3ffe84d bsr 0x1cc4 // 1cc4 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4c2e: 8c60 ld.h r3, (r4, 0x0) + 4c30: 6c97 mov r2, r5 + 4c32: 6c5f mov r1, r7 + 4c34: 3000 movi r0, 0 + 4c36: e3fff917 bsr 0x3e64 // 3e64 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4c3a: 8c65 ld.h r3, (r4, 0xa) + 4c3c: 6c97 mov r2, r5 + 4c3e: 6c5b mov r1, r6 + 4c40: 3000 movi r0, 0 + 4c42: 2500 addi r5, 1 + 4c44: e3fff910 bsr 0x3e64 // 3e64 + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 4c4e: 1494 pop r4-r7, r15 + 4c50: 0000a6f1 .long 0x0000a6f1 + 4c54: 0000a709 .long 0x0000a709 + 4c58: 0000a725 .long 0x0000a725 + 4c5c: 0000a743 .long 0x0000a743 + 4c60: 0000a760 .long 0x0000a760 + 4c64: 0000a77c .long 0x0000a77c + 4c68: 0000a795 .long 0x0000a795 + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +00004c6c : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4c6c: 14d1 push r4, r15 + 4c6e: 1432 subi r14, r14, 72 + 4c70: 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)); + 4c72: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4c74: 3240 movi r2, 64 + 4c76: 3100 movi r1, 0 + 4c78: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4c7a: b860 st.w r3, (r14, 0x0) + 4c7c: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4c80: e3ffe68e bsr 0x199c // 199c <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 4c84: 3080 movi r0, 128 + 4c86: 6cbb mov r2, r14 + 4c88: 3104 movi r1, 4 + 4c8a: 4015 lsli r0, r0, 21 + 4c8c: e3ffef58 bsr 0x2b3c // 2b3c + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4c90: d84e0000 ld.b r2, (r14, 0x0) + 4c94: 33ae movi r3, 174 + 4c96: 64ca cmpne r2, r3 + 4c98: 0c04 bf 0x4ca0 // 4ca0 + return 0x00; + } + } + } + + return 0x01; + 4c9a: 3001 movi r0, 1 +} + 4c9c: 1412 addi r14, r14, 72 + 4c9e: 1491 pop r4, r15 + read_len |= read_info[1]; + 4ca0: d82e0002 ld.b r1, (r14, 0x2) + 4ca4: d86e0001 ld.b r3, (r14, 0x1) + 4ca8: 4128 lsli r1, r1, 8 + 4caa: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 4cac: 3340 movi r3, 64 + 4cae: 644c cmphs r3, r1 + 4cb0: 0ff5 bf 0x4c9a // 4c9a + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4cb2: 1a02 addi r2, r14, 8 + 4cb4: 1009 lrw r0, 0x10000004 // 4cd8 + 4cb6: e3ffef43 bsr 0x2b3c // 2b3c + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 4cba: 3125 movi r1, 37 + 4cbc: 1802 addi r0, r14, 8 + 4cbe: e3fffda5 bsr 0x4808 // 4808 + 4cc2: d86e0003 ld.b r3, (r14, 0x3) + 4cc6: 640e cmpne r3, r0 + 4cc8: 0be9 bt 0x4c9a // 4c9a + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 4cca: 3225 movi r2, 37 + 4ccc: 1902 addi r1, r14, 8 + 4cce: 6c13 mov r0, r4 + 4cd0: e3ffe6aa bsr 0x1a24 // 1a24 <__memcpy_fast> + return 0x00; + 4cd4: 3000 movi r0, 0 + 4cd6: 07e3 br 0x4c9c // 4c9c + 4cd8: 10000004 .long 0x10000004 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00004cdc : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4cdc: 14d0 push r15 + 4cde: 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; + 4ce0: 3300 movi r3, 0 + 4ce2: 2b51 subi r3, 82 + 4ce4: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4ce8: 3325 movi r3, 37 + 4cea: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4cee: 3300 movi r3, 0 + 4cf0: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4cf4: 1b01 addi r3, r14, 4 +{ + 4cf6: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4cf8: 3225 movi r2, 37 + 4cfa: 6c0f mov r0, r3 + 4cfc: e3ffe694 bsr 0x1a24 // 1a24 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4d00: 3125 movi r1, 37 + 4d02: e3fffd83 bsr 0x4808 // 4808 + 4d06: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 4d0a: 3080 movi r0, 128 + 4d0c: 4015 lsli r0, r0, 21 + 4d0e: 6cbb mov r2, r14 + 4d10: 3129 movi r1, 41 + 4d12: e3ffeec5 bsr 0x2a9c // 2a9c + + return 0; +} + 4d16: 3000 movi r0, 0 + 4d18: 1412 addi r14, r14, 72 + 4d1a: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00004d1c : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4d1c: 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 = 0x01; + 4d1e: 3301 movi r3, 1 + 4d20: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 4d22: 3307 movi r3, 7 + 4d24: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 4d26: 3304 movi r3, 4 + 4d28: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4d2a: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 4d2c: 3310 movi r3, 16 + 4d2e: a064 st.b r3, (r0, 0x4) +{ + 4d30: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4d32: 3220 movi r2, 32 + 4d34: 3100 movi r1, 0 + 4d36: 6c17 mov r0, r5 + 4d38: e3ffe632 bsr 0x199c // 199c <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 4d3c: 3210 movi r2, 16 + 4d3e: 1025 lrw r1, 0xa7b4 // 4d50 + 4d40: 6c17 mov r0, r5 + 4d42: e3ffe671 bsr 0x1a24 // 1a24 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 4d46: 6c13 mov r0, r4 + 4d48: e3ffffca bsr 0x4cdc // 4cdc +#endif +} + 4d4c: 1492 pop r4-r5, r15 + 4d4e: 0000 bkpt + 4d50: 0000a7b4 .long 0x0000a7b4 + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +00004d54 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4d54: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 4d56: 8063 ld.b r3, (r0, 0x3) + 4d58: 3b44 cmpnei r3, 4 +{ + 4d5a: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 4d5c: 0c21 bf 0x4d9e // 4d9e + { + info->dev_app_ver = Project_FW_Version; + 4d5e: 3304 movi r3, 4 + 4d60: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 4d62: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 4d64: 8461 ld.b r3, (r4, 0x1) + 4d66: 3b47 cmpnei r3, 7 + 4d68: 0c04 bf 0x4d70 // 4d70 + { + info->dev_type = Project_Type; + 4d6a: 3307 movi r3, 7 + 4d6c: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 4d6e: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 4d70: 8464 ld.b r3, (r4, 0x4) + 4d72: 3b50 cmpnei r3, 16 + 4d74: 0c04 bf 0x4d7c // 4d7c + { + info->dev_name_len = sizeof(Peoject_Name); + 4d76: 3310 movi r3, 16 + 4d78: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 4d7a: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 4d7c: 5cd2 addi r6, r4, 5 + 4d7e: 3210 movi r2, 16 + 4d80: 102a lrw r1, 0xa7b4 // 4da8 + 4d82: 6c1b mov r0, r6 + 4d84: e3ffe682 bsr 0x1a88 // 1a88 <__GI_strncmp> + 4d88: 3840 cmpnei r0, 0 + 4d8a: 0c0c bf 0x4da2 // 4da2 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 4d8c: 8444 ld.b r2, (r4, 0x4) + 4d8e: 1027 lrw r1, 0xa7b4 // 4da8 + 4d90: 6c1b mov r0, r6 + 4d92: e3ffe649 bsr 0x1a24 // 1a24 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 4d96: 6c13 mov r0, r4 + 4d98: e3ffffa2 bsr 0x4cdc // 4cdc + } +#endif +} + 4d9c: 0405 br 0x4da6 // 4da6 + U8_T save_flag = 0; + 4d9e: 3500 movi r5, 0 + 4da0: 07e2 br 0x4d64 // 4d64 + if(save_flag == 0x01) + 4da2: 3d41 cmpnei r5, 1 + 4da4: 0ff9 bf 0x4d96 // 4d96 +} + 4da6: 1493 pop r4-r6, r15 + 4da8: 0000a7b4 .long 0x0000a7b4 + +Disassembly of section .text.EEPROM_Init: + +00004dac : +void EEPROM_Init(void){ + 4dac: 14d3 push r4-r6, r15 + EnIFCClk; //使能 IFC 时钟 + 4dae: 107e lrw r3, 0x20000060 // 4e24 + 4db0: 3201 movi r2, 1 + 4db2: 9360 ld.w r3, (r3, 0x0) + 4db4: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 4db6: 9345 ld.w r2, (r3, 0x14) + 4db8: 3aa1 bseti r2, 1 + 4dba: 3ab0 bseti r2, 16 + 4dbc: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 4dbe: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 4dc0: 109a lrw r4, 0x20000524 // 4e28 + delay_nms(10); + 4dc2: e3ffefd5 bsr 0x2d6c // 2d6c + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 4dc6: 3208 movi r2, 8 + 4dc8: 3100 movi r1, 0 + 4dca: 6c13 mov r0, r4 + 4dcc: e3ffe5e8 bsr 0x199c // 199c <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 4dd0: 6c13 mov r0, r4 + 4dd2: e3fffd27 bsr 0x4820 // 4820 + if(rev == 0x00){ + 4dd6: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 4dd8: 6c13 mov r0, r4 + if(rev == 0x00){ + 4dda: 0816 bt 0x4e06 // 4e06 + EEPROM_Validate_ParaInfo(&g_eeprom); + 4ddc: e3fffd7e bsr 0x48d8 // 48d8 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 4de0: 10b3 lrw r5, 0x2000052c // 4e2c + 4de2: 6c17 mov r0, r5 + 4de4: e3ffff44 bsr 0x4c6c // 4c6c + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 4de8: 8460 ld.b r3, (r4, 0x0) + 4dea: 8540 ld.b r2, (r5, 0x0) + 4dec: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 4dee: 6d83 mov r6, r0 + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 4df0: 0c05 bf 0x4dfa // 4dfa + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 4df2: 6c17 mov r0, r5 + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 4df4: a560 st.b r3, (r5, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 4df6: e3ffff73 bsr 0x4cdc // 4cdc + if(rev == 0x00){ + 4dfa: 3e40 cmpnei r6, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 4dfc: 100c lrw r0, 0x2000052c // 4e2c + if(rev == 0x00){ + 4dfe: 080f bt 0x4e1c // 4e1c + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 4e00: e3ffffaa bsr 0x4d54 // 4d54 +} + 4e04: 1493 pop r4-r6, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 4e06: e3fffdaf bsr 0x4964 // 4964 + EEPROM_WriteParaInfo(&g_eeprom); + 4e0a: 6c13 mov r0, r4 + 4e0c: e3fffd44 bsr 0x4894 // 4894 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 4e10: 8441 ld.b r2, (r4, 0x1) + 4e12: 1028 lrw r1, 0xa7c4 // 4e30 + 4e14: 3000 movi r0, 0 + 4e16: e3fff827 bsr 0x3e64 // 3e64 + 4e1a: 07e3 br 0x4de0 // 4de0 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 4e1c: e3ffff80 bsr 0x4d1c // 4d1c +} + 4e20: 07f2 br 0x4e04 // 4e04 + 4e22: 0000 bkpt + 4e24: 20000060 .long 0x20000060 + 4e28: 20000524 .long 0x20000524 + 4e2c: 2000052c .long 0x2000052c + 4e30: 0000a7c4 .long 0x0000a7c4 + +Disassembly of section .text.ADC_Init: + +00004e34 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 4e34: 14d0 push r15 + 4e36: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 4e38: e3ffebce bsr 0x25d4 // 25d4 + ADC12_Software_Reset(); //ADC软件复位 + 4e3c: e3ffec2c bsr 0x2694 // 2694 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 4e40: 3101 movi r1, 1 + 4e42: 3002 movi r0, 2 + 4e44: e3ffec12 bsr 0x2668 // 2668 + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 4e48: 3301 movi r3, 1 + 4e4a: b861 st.w r3, (r14, 0x4) + 4e4c: 3302 movi r3, 2 + 4e4e: b860 st.w r3, (r14, 0x0) + 4e50: 3200 movi r2, 0 + 4e52: 3306 movi r3, 6 + 4e54: 3101 movi r1, 1 + 4e56: 3001 movi r0, 1 + 4e58: e3ffec58 bsr 0x2708 // 2708 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS);//如果设置内部参考电压源需要把初始化放在触摸初始化前面,否则触摸会出现错误 + 4e5c: 3003 movi r0, 3 + 4e5e: e3ffec93 bsr 0x2784 // 2784 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGDIS,0); + 4e62: 3300 movi r3, 0 + 4e64: 3200 movi r2, 0 + 4e66: 3100 movi r1, 0 + 4e68: 300f movi r0, 15 + 4e6a: e3ffed59 bsr 0x291c // 291c + + ADC12_CMD(ENABLE); + 4e6e: 3001 movi r0, 1 + 4e70: e3ffec18 bsr 0x26a0 // 26a0 + + ADC12_ready_wait(); + 4e74: e3ffec2a bsr 0x26c8 // 26c8 + + ADC12_Control(ADC12_START); + 4e78: 3008 movi r0, 8 + 4e7a: e3ffebdf bsr 0x2638 // 2638 + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 4e7e: 3250 movi r2, 80 + 4e80: 3100 movi r1, 0 + 4e82: 1003 lrw r0, 0x20000554 // 4e8c + 4e84: e3ffe58c bsr 0x199c // 199c <__memset_fast> +} + 4e88: 1402 addi r14, r14, 8 + 4e8a: 1490 pop r15 + 4e8c: 20000554 .long 0x20000554 + +Disassembly of section .text.Thermistor_Array_Transform: + +00004e90 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 4e90: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 4e92: 1070 lrw r3, 0x79bd // 4ed0 + 4e94: 640c cmphs r3, r0 +{ + 4e96: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 4e98: 0c16 bf 0x4ec4 // 4ec4 + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4e9a: 33a1 movi r3, 161 + 4e9c: 4365 lsli r3, r3, 5 + 4e9e: 640c cmphs r3, r0 + 4ea0: 0814 bt 0x4ec8 // 4ec8 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4ea6: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 4eaa: 8a60 ld.h r3, (r2, 0x0) + 4eac: 644c cmphs r3, r1 + 4eae: 0c04 bf 0x4eb6 // 4eb6 + 4eb0: 8a61 ld.h r3, (r2, 0x2) + 4eb2: 644c cmphs r3, r1 + 4eb4: 0c07 bf 0x4ec2 // 4ec2 + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 4ec0: 30fa movi r0, 250 +} + 4ec2: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 4ec4: 3000 movi r0, 0 + 4ec6: 07fe br 0x4ec2 // 4ec2 + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 4ec8: 30c8 movi r0, 200 + 4eca: 4001 lsli r0, r0, 1 + 4ecc: 07fb br 0x4ec2 // 4ec2 + 4ece: 0000 bkpt + 4ed0: 000079bd .long 0x000079bd + 4ed4: 0000a11e .long 0x0000a11e + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00004ed8 : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 4ed8: 14d2 push r4-r5, r15 + 4eda: 1056 lrw r2, 0x20000554 // 4f30 + uint32_t temp_val = 0; + + //电压平滑滤波 - 换算采集电压 + for(U16_T i=0;i + } + + g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + 4ef0: 310a movi r1, 10 + 4ef2: e3fff54d bsr 0x398c // 398c <__udivsi3> + 4ef6: 74c1 zexth r3, r0 + 4ef8: ac62 st.h r3, (r4, 0x4) + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value +// temp_val = g_adc.avg_val; + + g_adc.voltage = g_adc.avg_val;//temp_val*4920/4096 ; + 4efa: ac63 st.h r3, (r4, 0x6) + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 4efc: 8c6e ld.h r3, (r4, 0x1c) + 4efe: 3b13 cmphsi r3, 20 + 4f00: 0c05 bf 0x4f0a // 4f0a + g_adc.temp_index = 0; + 4f02: 3300 movi r3, 0 + 4f04: ac6e st.h r3, (r4, 0x1c) + g_adc.gather_full = 1; + 4f06: 3301 movi r3, 1 + 4f08: a461 st.b r3, (r4, 0x1) + + } + + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4f0a: 8cae ld.h r5, (r4, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4f0c: 74c1 zexth r3, r0 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4f0e: 5d42 addi r2, r5, 1 + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4f10: 1009 lrw r0, 0x2710 // 4f34 + 4f12: 102a lrw r1, 0xce4 // 4f38 + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4f14: ac4e st.h r2, (r4, 0x1c) + temp_val = g_adc.voltage * 10000/(3300 - g_adc.voltage); + 4f16: 7c0c mult r0, r3 + 4f18: 604e subu r1, r3 + 4f1a: e3fff527 bsr 0x3968 // 3968 <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 4f1e: 250f addi r5, 16 + 4f20: 45a1 lsli r5, r5, 1 + 4f22: 7401 zexth r0, r0 + 4f24: e3ffffb6 bsr 0x4e90 // 4e90 + 4f28: 6114 addu r4, r5 + 4f2a: ac00 st.h r0, (r4, 0x0) + + //Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d avg_val:%d",Thermistor_Array_Transform(temp_val),g_adc.avg_val); +} + 4f2c: 1492 pop r4-r5, r15 + 4f2e: 0000 bkpt + 4f30: 20000554 .long 0x20000554 + 4f34: 00002710 .long 0x00002710 + 4f38: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.Get_Temp_Val: + +00004f3c : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 4f3c: 1062 lrw r3, 0x20000554 // 4f44 + 4f3e: 8b0f ld.h r0, (r3, 0x1e) +} + 4f40: 783c jmp r15 + 4f42: 0000 bkpt + 4f44: 20000554 .long 0x20000554 + +Disassembly of section .text.Gather_Temp: + +00004f48 : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 4f48: 14d2 push r4-r5, r15 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 1000) + 4f4a: 1058 lrw r2, 0x200000c0 // 4fa8 + 4f4c: 1098 lrw r4, 0x20000554 // 4fac + 4f4e: 9260 ld.w r3, (r2, 0x0) + 4f50: 9433 ld.w r1, (r4, 0x4c) + 4f52: 60c6 subu r3, r1 + 4f54: 1037 lrw r1, 0x3e7 // 4fb0 + 4f56: 64c4 cmphs r1, r3 + 4f58: 080e bt 0x4f74 // 4f74 + { + g_adc.gather_tick = SysTick_1ms; + 4f5a: 9260 ld.w r3, (r2, 0x0) + 4f5c: b473 st.w r3, (r4, 0x4c) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 4f5e: 8461 ld.b r3, (r4, 0x1) + 4f60: 3b41 cmpnei r3, 1 + 4f62: 0c0a bf 0x4f76 // 4f76 + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4f64: 8c2e ld.h r1, (r4, 0x1c) + 4f66: 3300 movi r3, 0 + 4f68: 3000 movi r0, 0 + temp_val += g_adc.tempBuff[i]; + 4f6a: 3510 movi r5, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4f6c: 644c cmphs r3, r1 + 4f6e: 0c14 bf 0x4f96 // 4f96 + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 4f70: 3940 cmpnei r1, 0 + 4f72: 080e bt 0x4f8e // 4f8e + } + g_adc.temp_val = temp_val / temp_size; + + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 4f74: 1492 pop r4-r5, r15 + 4f76: 6c93 mov r2, r4 + if(g_adc.gather_full == 1){ + 4f78: 3314 movi r3, 20 + 4f7a: 3000 movi r0, 0 + 4f7c: 2b00 subi r3, 1 + 4f7e: 74cc zextb r3, r3 + temp_val += g_adc.tempBuff[i]; + 4f80: 8a30 ld.h r1, (r2, 0x20) + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4f82: 3b40 cmpnei r3, 0 + temp_val += g_adc.tempBuff[i]; + 4f84: 6004 addu r0, r1 + 4f86: 2201 addi r2, 2 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 4f88: 0bfa bt 0x4f7c // 4f7c + g_adc.gather_full = 0; + 4f8a: a461 st.b r3, (r4, 0x1) + temp_size = Temp_DataBuff_Size; + 4f8c: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 4f8e: e3fff4ff bsr 0x398c // 398c <__udivsi3> + 4f92: ac0f st.h r0, (r4, 0x1e) + 4f94: 07f0 br 0x4f74 // 4f74 + temp_val += g_adc.tempBuff[i]; + 4f96: 5b54 addu r2, r3, r5 + 4f98: 4241 lsli r2, r2, 1 + 4f9a: 6090 addu r2, r4 + 4f9c: 8a40 ld.h r2, (r2, 0x0) + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4f9e: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 4fa0: 6008 addu r0, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 4fa2: 74cc zextb r3, r3 + 4fa4: 07e4 br 0x4f6c // 4f6c + 4fa6: 0000 bkpt + 4fa8: 200000c0 .long 0x200000c0 + 4fac: 20000554 .long 0x20000554 + 4fb0: 000003e7 .long 0x000003e7 + +Disassembly of section .text.ADC_Sample_Task: + +00004fb4 : +void ADC_Sample_Task(void){ + 4fb4: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 4fb6: 10d9 lrw r6, 0x200000c0 // 5018 + 4fb8: 1099 lrw r4, 0x20000554 // 501c + 4fba: 9660 ld.w r3, (r6, 0x0) + 4fbc: 9452 ld.w r2, (r4, 0x48) + 4fbe: 60ca subu r3, r2 + 4fc0: 3b0a cmphsi r3, 11 + 4fc2: 0c14 bf 0x4fea // 4fea + g_adc.sample_tick = SysTick_1ms; + 4fc4: 9660 ld.w r3, (r6, 0x0) + ADC12_SEQEND_wait(0); + 4fc6: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 4fc8: b472 st.w r3, (r4, 0x48) + ADC12_SEQEND_wait(0); + 4fca: e3ffeb89 bsr 0x26dc // 26dc + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4fce: 3000 movi r0, 0 + 4fd0: 8ca1 ld.h r5, (r4, 0x2) + 4fd2: e3ffeb91 bsr 0x26f4 // 26f4 + g_adc.index++; + 4fd6: 8c61 ld.h r3, (r4, 0x2) + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4fd8: 2503 addi r5, 4 + g_adc.index++; + 4fda: 2300 addi r3, 1 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4fdc: 45a1 lsli r5, r5, 1 + g_adc.index++; + 4fde: 74cd zexth r3, r3 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4fe0: 6150 addu r5, r4 + if (g_adc.index >= ADC_DATABUFF_Size) { + 4fe2: 3b09 cmphsi r3, 10 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 4fe4: ad00 st.h r0, (r5, 0x0) + if (g_adc.index >= ADC_DATABUFF_Size) { + 4fe6: 0813 bt 0x500c // 500c + g_adc.index++; + 4fe8: ac61 st.h r3, (r4, 0x2) + if (g_adc.full_flag == 0x01) { + 4fea: 8460 ld.b r3, (r4, 0x0) + 4fec: 3b41 cmpnei r3, 1 + 4fee: 080c bt 0x5006 // 5006 + if (SysTick_1ms - adc_tick >= 100) { + 4ff0: 104c lrw r2, 0x2000013c // 5020 + 4ff2: 9220 ld.w r1, (r2, 0x0) + 4ff4: 9660 ld.w r3, (r6, 0x0) + 4ff6: 60c6 subu r3, r1 + 4ff8: 3163 movi r1, 99 + 4ffa: 64c4 cmphs r1, r3 + 4ffc: 0805 bt 0x5006 // 5006 + adc_tick = SysTick_1ms; + 4ffe: 9660 ld.w r3, (r6, 0x0) + 5000: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 5002: e3ffff6b bsr 0x4ed8 // 4ed8 + Gather_Temp(); + 5006: e3ffffa1 bsr 0x4f48 // 4f48 +} + 500a: 1493 pop r4-r6, r15 + g_adc.index = 0; + 500c: 3300 movi r3, 0 + 500e: ac61 st.h r3, (r4, 0x2) + g_adc.full_flag = 1; + 5010: 3301 movi r3, 1 + 5012: a460 st.b r3, (r4, 0x0) + 5014: 07eb br 0x4fea // 4fea + 5016: 0000 bkpt + 5018: 200000c0 .long 0x200000c0 + 501c: 20000554 .long 0x20000554 + 5020: 2000013c .long 0x2000013c + +Disassembly of section .text.Contol_Switch_Light: + +00005024 : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 5024: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 5026: 3805 cmphsi r0, 6 +{ + 5028: 6d47 mov r5, r1 + switch(ch) + 502a: 0818 bt 0x505a // 505a + 502c: 009b lrw r4, 0x200005a4 // 53bc + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 502e: 3941 cmpnei r1, 1 + switch(ch) + 5030: e3ffde7e bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5034: 00330006 .long 0x00330006 + 5038: 008d0060 .long 0x008d0060 + 503c: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 5040: 0814 bt 0x5068 // 5068 + if(g_switch.feedback_light_selection == 0x01){ + 5042: 8462 ld.b r3, (r4, 0x2) + 5044: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5046: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5048: 080a bt 0x505c // 505c + TM1812_Control_CH_State(TPK1_White,Control_ON); + 504a: 300b movi r0, 11 + 504c: e0000532 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5050: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5052: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 5054: e000052e bsr 0x5ab0 // 5ab0 + g_switch.light_state[T_CH1] = state; + 5058: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 505a: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 505c: 3006 movi r0, 6 + 505e: e0000529 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5062: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 5064: 300b movi r0, 11 + 5066: 07f7 br 0x5054 // 5054 + }else if(state == Control_OFF){ + 5068: 3942 cmpnei r1, 2 + 506a: 0bf7 bt 0x5058 // 5058 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 506c: 016a lrw r3, 0x200000c0 // 53c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 506e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5070: 9360 ld.w r3, (r3, 0x0) + 5072: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5074: 8462 ld.b r3, (r4, 0x2) + 5076: 3b41 cmpnei r3, 1 + 5078: 0809 bt 0x508a // 508a + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 507a: 300b movi r0, 11 + 507c: e000051a bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5080: 846a ld.b r3, (r4, 0xa) + 5082: 3b41 cmpnei r3, 1 + 5084: 0bea bt 0x5058 // 5058 + 5086: 3101 movi r1, 1 + 5088: 07e5 br 0x5052 // 5052 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 508a: 3006 movi r0, 6 + 508c: e0000512 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 5090: 846a ld.b r3, (r4, 0xa) + 5092: 3b41 cmpnei r3, 1 + 5094: 0be2 bt 0x5058 // 5058 + 5096: 3101 movi r1, 1 + 5098: 07e6 br 0x5064 // 5064 + if(state == Control_ON){ + 509a: 0814 bt 0x50c2 // 50c2 + if(g_switch.feedback_light_selection == 0x01){ + 509c: 8462 ld.b r3, (r4, 0x2) + 509e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 50a0: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 50a2: 080a bt 0x50b6 // 50b6 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 50a4: 300c movi r0, 12 + 50a6: e0000505 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 50aa: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 50ac: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 50ae: e0000501 bsr 0x5ab0 // 5ab0 + g_switch.light_state[T_CH2] = state; + 50b2: a4a6 st.b r5, (r4, 0x6) + break; + 50b4: 07d3 br 0x505a // 505a + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 50b6: 3007 movi r0, 7 + 50b8: e00004fc bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 50bc: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 50be: 300c movi r0, 12 + 50c0: 07f7 br 0x50ae // 50ae + }else if(state == Control_OFF){ + 50c2: 3942 cmpnei r1, 2 + 50c4: 0bf7 bt 0x50b2 // 50b2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 50c6: 0260 lrw r3, 0x200000c0 // 53c0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 50c8: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 50ca: 9360 ld.w r3, (r3, 0x0) + 50cc: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 50ce: 8462 ld.b r3, (r4, 0x2) + 50d0: 3b41 cmpnei r3, 1 + 50d2: 0809 bt 0x50e4 // 50e4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 50d4: 300c movi r0, 12 + 50d6: e00004ed bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 50da: 846a ld.b r3, (r4, 0xa) + 50dc: 3b41 cmpnei r3, 1 + 50de: 0bea bt 0x50b2 // 50b2 + 50e0: 3101 movi r1, 1 + 50e2: 07e5 br 0x50ac // 50ac + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 50e4: 3007 movi r0, 7 + 50e6: e00004e5 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 50ea: 846a ld.b r3, (r4, 0xa) + 50ec: 3b41 cmpnei r3, 1 + 50ee: 0be2 bt 0x50b2 // 50b2 + 50f0: 3101 movi r1, 1 + 50f2: 07e6 br 0x50be // 50be + if(state == Control_ON){ + 50f4: 0814 bt 0x511c // 511c + if(g_switch.feedback_light_selection == 0x01){ + 50f6: 8462 ld.b r3, (r4, 0x2) + 50f8: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 50fa: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 50fc: 080a bt 0x5110 // 5110 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 50fe: 300d movi r0, 13 + 5100: e00004d8 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5104: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5106: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5108: e00004d4 bsr 0x5ab0 // 5ab0 + g_switch.light_state[T_CH3] = state; + 510c: a4a7 st.b r5, (r4, 0x7) + break; + 510e: 07a6 br 0x505a // 505a + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5110: 3008 movi r0, 8 + 5112: e00004cf bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5116: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5118: 300d movi r0, 13 + 511a: 07f7 br 0x5108 // 5108 + }else if(state == Control_OFF){ + 511c: 3942 cmpnei r1, 2 + 511e: 0bf7 bt 0x510c // 510c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5120: 0277 lrw r3, 0x200000c0 // 53c0 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5122: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5124: 9360 ld.w r3, (r3, 0x0) + 5126: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5128: 8462 ld.b r3, (r4, 0x2) + 512a: 3b41 cmpnei r3, 1 + 512c: 0809 bt 0x513e // 513e + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 512e: 300d movi r0, 13 + 5130: e00004c0 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5134: 846a ld.b r3, (r4, 0xa) + 5136: 3b41 cmpnei r3, 1 + 5138: 0bea bt 0x510c // 510c + 513a: 3101 movi r1, 1 + 513c: 07e5 br 0x5106 // 5106 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 513e: 3008 movi r0, 8 + 5140: e00004b8 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5144: 846a ld.b r3, (r4, 0xa) + 5146: 3b41 cmpnei r3, 1 + 5148: 0be2 bt 0x510c // 510c + 514a: 3101 movi r1, 1 + 514c: 07e6 br 0x5118 // 5118 + if(state == Control_ON){ + 514e: 0814 bt 0x5176 // 5176 + if(g_switch.feedback_light_selection == 0x01){ + 5150: 8462 ld.b r3, (r4, 0x2) + 5152: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5154: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5156: 080a bt 0x516a // 516a + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5158: 300e movi r0, 14 + 515a: e00004ab bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 515e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5160: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 5162: e00004a7 bsr 0x5ab0 // 5ab0 + g_switch.light_state[T_CH4] = state; + 5166: a4a8 st.b r5, (r4, 0x8) + break; + 5168: 0779 br 0x505a // 505a + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 516a: 3009 movi r0, 9 + 516c: e00004a2 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5170: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 5172: 300e movi r0, 14 + 5174: 07f7 br 0x5162 // 5162 + }else if(state == Control_OFF){ + 5176: 3942 cmpnei r1, 2 + 5178: 0bf7 bt 0x5166 // 5166 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 517a: 036d lrw r3, 0x200000c0 // 53c0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 517c: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 517e: 9360 ld.w r3, (r3, 0x0) + 5180: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5182: 8462 ld.b r3, (r4, 0x2) + 5184: 3b41 cmpnei r3, 1 + 5186: 0809 bt 0x5198 // 5198 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5188: 300e movi r0, 14 + 518a: e0000493 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 518e: 846a ld.b r3, (r4, 0xa) + 5190: 3b41 cmpnei r3, 1 + 5192: 0bea bt 0x5166 // 5166 + 5194: 3101 movi r1, 1 + 5196: 07e5 br 0x5160 // 5160 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5198: 3009 movi r0, 9 + 519a: e000048b bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 519e: 846a ld.b r3, (r4, 0xa) + 51a0: 3b41 cmpnei r3, 1 + 51a2: 0be2 bt 0x5166 // 5166 + 51a4: 3101 movi r1, 1 + 51a6: 07e6 br 0x5172 // 5172 + if(state == Control_ON){ + 51a8: 0814 bt 0x51d0 // 51d0 + if(g_switch.feedback_light_selection == 0x01){ + 51aa: 8462 ld.b r3, (r4, 0x2) + 51ac: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 51ae: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 51b0: 080a bt 0x51c4 // 51c4 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 51b2: 300f movi r0, 15 + 51b4: e000047e bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 51b8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 51ba: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 51bc: e000047a bsr 0x5ab0 // 5ab0 + g_switch.light_state[T_CH5] = state; + 51c0: a4a9 st.b r5, (r4, 0x9) + break; + 51c2: 074c br 0x505a // 505a + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 51c4: 300a movi r0, 10 + 51c6: e0000475 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 51ca: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 51cc: 300f movi r0, 15 + 51ce: 07f7 br 0x51bc // 51bc + }else if(state == Control_OFF){ + 51d0: 3942 cmpnei r1, 2 + 51d2: 0bf7 bt 0x51c0 // 51c0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 51d4: 137b lrw r3, 0x200000c0 // 53c0 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 51d6: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 51d8: 9360 ld.w r3, (r3, 0x0) + 51da: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 51dc: 8462 ld.b r3, (r4, 0x2) + 51de: 3b41 cmpnei r3, 1 + 51e0: 0809 bt 0x51f2 // 51f2 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 51e2: 300f movi r0, 15 + 51e4: e0000466 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 51e8: 846a ld.b r3, (r4, 0xa) + 51ea: 3b41 cmpnei r3, 1 + 51ec: 0bea bt 0x51c0 // 51c0 + 51ee: 3101 movi r1, 1 + 51f0: 07e5 br 0x51ba // 51ba + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 51f2: 300a movi r0, 10 + 51f4: e000045e bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 51f8: 846a ld.b r3, (r4, 0xa) + 51fa: 3b41 cmpnei r3, 1 + 51fc: 0be2 bt 0x51c0 // 51c0 + 51fe: 3101 movi r1, 1 + 5200: 07e6 br 0x51cc // 51cc + if(state == Control_ON){ + 5202: 08b1 bt 0x5364 // 5364 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5204: 136f lrw r3, 0x200000c0 // 53c0 + 5206: 9360 ld.w r3, (r3, 0x0) + 5208: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 520a: 8462 ld.b r3, (r4, 0x2) + 520c: 3b41 cmpnei r3, 1 + 520e: 8465 ld.b r3, (r4, 0x5) + 5210: 0857 bt 0x52be // 52be + if(g_switch.light_state[T_CH1] != Control_ON) { + 5212: 3b41 cmpnei r3, 1 + 5214: 0c33 bf 0x527a // 527a + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5216: 3101 movi r1, 1 + 5218: 3006 movi r0, 6 + 521a: e000044b bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 521e: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5220: 300b movi r0, 11 + 5222: e0000447 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH2] != Control_ON) { + 5226: 8466 ld.b r3, (r4, 0x6) + 5228: 3b41 cmpnei r3, 1 + 522a: 0c2e bf 0x5286 // 5286 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 522c: 3101 movi r1, 1 + 522e: 3007 movi r0, 7 + 5230: e0000440 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 5234: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5236: 300c movi r0, 12 + 5238: e000043c bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH3] != Control_ON) { + 523c: 8467 ld.b r3, (r4, 0x7) + 523e: 3b41 cmpnei r3, 1 + 5240: 0c29 bf 0x5292 // 5292 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5242: 3101 movi r1, 1 + 5244: 3008 movi r0, 8 + 5246: e0000435 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 524a: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 524c: 300d movi r0, 13 + 524e: e0000431 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH4] != Control_ON) { + 5252: 8468 ld.b r3, (r4, 0x8) + 5254: 3b41 cmpnei r3, 1 + 5256: 0c24 bf 0x529e // 529e + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5258: 3101 movi r1, 1 + 525a: 3009 movi r0, 9 + 525c: e000042a bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5260: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5262: 300e movi r0, 14 + 5264: e0000426 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5268: 8469 ld.b r3, (r4, 0x9) + 526a: 3b41 cmpnei r3, 1 + 526c: 0c1f bf 0x52aa // 52aa + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 526e: 3101 movi r1, 1 + 5270: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5272: e000041f bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 5276: 3102 movi r1, 2 + 5278: 041e br 0x52b4 // 52b4 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 527a: 3102 movi r1, 2 + 527c: 3006 movi r0, 6 + 527e: e0000419 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5282: 3101 movi r1, 1 + 5284: 07ce br 0x5220 // 5220 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 5286: 3102 movi r1, 2 + 5288: 3007 movi r0, 7 + 528a: e0000413 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 528e: 3101 movi r1, 1 + 5290: 07d3 br 0x5236 // 5236 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5292: 3102 movi r1, 2 + 5294: 3008 movi r0, 8 + 5296: e000040d bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 529a: 3101 movi r1, 1 + 529c: 07d8 br 0x524c // 524c + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 529e: 3102 movi r1, 2 + 52a0: 3009 movi r0, 9 + 52a2: e0000407 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 52a6: 3101 movi r1, 1 + 52a8: 07dd br 0x5262 // 5262 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 52aa: 3102 movi r1, 2 + 52ac: 300a movi r0, 10 + 52ae: e0000401 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 52b2: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 52b4: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 52b6: e00003fd bsr 0x5ab0 // 5ab0 + g_switch.light_state[T_Backlight] = state; + 52ba: a4aa st.b r5, (r4, 0xa) +} + 52bc: 06cf br 0x505a // 505a + if(g_switch.light_state[T_CH1] != Control_ON) { + 52be: 3b41 cmpnei r3, 1 + 52c0: 0c33 bf 0x5326 // 5326 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 52c2: 3101 movi r1, 1 + 52c4: 300b movi r0, 11 + 52c6: e00003f5 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 52ca: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 52cc: 3006 movi r0, 6 + 52ce: e00003f1 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH2] != Control_ON) { + 52d2: 8466 ld.b r3, (r4, 0x6) + 52d4: 3b41 cmpnei r3, 1 + 52d6: 0c2e bf 0x5332 // 5332 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 52d8: 3101 movi r1, 1 + 52da: 300c movi r0, 12 + 52dc: e00003ea bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 52e0: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 52e2: 3007 movi r0, 7 + 52e4: e00003e6 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH3] != Control_ON) { + 52e8: 8467 ld.b r3, (r4, 0x7) + 52ea: 3b41 cmpnei r3, 1 + 52ec: 0c29 bf 0x533e // 533e + TM1812_Control_CH_State(TPK3_White,Control_ON); + 52ee: 3101 movi r1, 1 + 52f0: 300d movi r0, 13 + 52f2: e00003df bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 52f6: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 52f8: 3008 movi r0, 8 + 52fa: e00003db bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH4] != Control_ON) { + 52fe: 8468 ld.b r3, (r4, 0x8) + 5300: 3b41 cmpnei r3, 1 + 5302: 0c24 bf 0x534a // 534a + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5304: 3101 movi r1, 1 + 5306: 300e movi r0, 14 + 5308: e00003d4 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 530c: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 530e: 3009 movi r0, 9 + 5310: e00003d0 bsr 0x5ab0 // 5ab0 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5314: 8469 ld.b r3, (r4, 0x9) + 5316: 3b41 cmpnei r3, 1 + 5318: 0c1f bf 0x5356 // 5356 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 531a: 3101 movi r1, 1 + 531c: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 531e: e00003c9 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 5322: 3102 movi r1, 2 + 5324: 041e br 0x5360 // 5360 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5326: 3102 movi r1, 2 + 5328: 300b movi r0, 11 + 532a: e00003c3 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 532e: 3101 movi r1, 1 + 5330: 07ce br 0x52cc // 52cc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 5332: 3102 movi r1, 2 + 5334: 300c movi r0, 12 + 5336: e00003bd bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 533a: 3101 movi r1, 1 + 533c: 07d3 br 0x52e2 // 52e2 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 533e: 3102 movi r1, 2 + 5340: 300d movi r0, 13 + 5342: e00003b7 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5346: 3101 movi r1, 1 + 5348: 07d8 br 0x52f8 // 52f8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 534a: 3102 movi r1, 2 + 534c: 300e movi r0, 14 + 534e: e00003b1 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5352: 3101 movi r1, 1 + 5354: 07dd br 0x530e // 530e + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 5356: 3102 movi r1, 2 + 5358: 300f movi r0, 15 + 535a: e00003ab bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 535e: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 5360: 300a movi r0, 10 + 5362: 07aa br 0x52b6 // 52b6 + }else if(state == Control_OFF){ + 5364: 3942 cmpnei r1, 2 + 5366: 0baa bt 0x52ba // 52ba + if(g_switch.feedback_light_selection == 0x01){ + 5368: 8462 ld.b r3, (r4, 0x2) + 536a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 536c: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 536e: 082b bt 0x53c4 // 53c4 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5370: 3006 movi r0, 6 + 5372: e000039f bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 5376: 3102 movi r1, 2 + 5378: 3007 movi r0, 7 + 537a: e000039b bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 537e: 3102 movi r1, 2 + 5380: 3008 movi r0, 8 + 5382: e0000397 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5386: 3102 movi r1, 2 + 5388: 3009 movi r0, 9 + 538a: e0000393 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 538e: 3102 movi r1, 2 + 5390: 300a movi r0, 10 + 5392: e000038f bsr 0x5ab0 // 5ab0 + if(g_switch.autoOff_light_flag == 0x01){ + 5396: 8461 ld.b r3, (r4, 0x1) + 5398: 3b41 cmpnei r3, 1 + 539a: 0b90 bt 0x52ba // 52ba + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 539c: 3102 movi r1, 2 + 539e: 300b movi r0, 11 + 53a0: e0000388 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53a4: 3102 movi r1, 2 + 53a6: 300c movi r0, 12 + 53a8: e0000384 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 53ac: 3102 movi r1, 2 + 53ae: 300d movi r0, 13 + 53b0: e0000380 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 53b4: 3102 movi r1, 2 + 53b6: 300e movi r0, 14 + 53b8: 075d br 0x5272 // 5272 + 53ba: 0000 bkpt + 53bc: 200005a4 .long 0x200005a4 + 53c0: 200000c0 .long 0x200000c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 53c4: 300b movi r0, 11 + 53c6: e0000375 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53ca: 3102 movi r1, 2 + 53cc: 300c movi r0, 12 + 53ce: e0000371 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 53d2: 3102 movi r1, 2 + 53d4: 300d movi r0, 13 + 53d6: e000036d bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 53da: 3102 movi r1, 2 + 53dc: 300e movi r0, 14 + 53de: e0000369 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 53e2: 3102 movi r1, 2 + 53e4: 300f movi r0, 15 + 53e6: e0000365 bsr 0x5ab0 // 5ab0 + if(g_switch.autoOff_light_flag == 0x01){ + 53ea: 8461 ld.b r3, (r4, 0x1) + 53ec: 3b41 cmpnei r3, 1 + 53ee: 0b66 bt 0x52ba // 52ba + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 53f0: 3102 movi r1, 2 + 53f2: 3006 movi r0, 6 + 53f4: e000035e bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 53f8: 3102 movi r1, 2 + 53fa: 3007 movi r0, 7 + 53fc: e000035a bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5400: 3102 movi r1, 2 + 5402: 3008 movi r0, 8 + 5404: e0000356 bsr 0x5ab0 // 5ab0 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5408: 3102 movi r1, 2 + 540a: 3009 movi r0, 9 + 540c: 0789 br 0x531e // 531e + +Disassembly of section .text.Contol_Switch_Light_2: + +00005410 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 5410: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 5412: 3805 cmphsi r0, 6 +{ + 5414: 6d47 mov r5, r1 + switch(ch) + 5416: 0818 bt 0x5446 // 5446 + 5418: 009b lrw r4, 0x200005a4 // 57a8 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 541a: 3941 cmpnei r1, 1 + switch(ch) + 541c: e3ffdc88 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5420: 00330006 .long 0x00330006 + 5424: 008d0060 .long 0x008d0060 + 5428: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 542c: 0814 bt 0x5454 // 5454 + if(g_switch.feedback_light_selection == 0x01){ + 542e: 8462 ld.b r3, (r4, 0x2) + 5430: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5432: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5434: 080a bt 0x5448 // 5448 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5436: 300b movi r0, 11 + 5438: e0000374 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 543c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 543e: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5440: e0000370 bsr 0x5b20 // 5b20 + g_switch.light_state[T_CH1] = state; + 5444: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 5446: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5448: 3006 movi r0, 6 + 544a: e000036b bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 544e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5450: 300b movi r0, 11 + 5452: 07f7 br 0x5440 // 5440 + }else if(state == Control_OFF){ + 5454: 3942 cmpnei r1, 2 + 5456: 0bf7 bt 0x5444 // 5444 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5458: 016a lrw r3, 0x200000c0 // 57ac + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 545a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 545c: 9360 ld.w r3, (r3, 0x0) + 545e: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5460: 8462 ld.b r3, (r4, 0x2) + 5462: 3b41 cmpnei r3, 1 + 5464: 0809 bt 0x5476 // 5476 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5466: 300b movi r0, 11 + 5468: e000035c bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 546c: 846a ld.b r3, (r4, 0xa) + 546e: 3b41 cmpnei r3, 1 + 5470: 0bea bt 0x5444 // 5444 + 5472: 3101 movi r1, 1 + 5474: 07e5 br 0x543e // 543e + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5476: 3006 movi r0, 6 + 5478: e0000354 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 547c: 846a ld.b r3, (r4, 0xa) + 547e: 3b41 cmpnei r3, 1 + 5480: 0be2 bt 0x5444 // 5444 + 5482: 3101 movi r1, 1 + 5484: 07e6 br 0x5450 // 5450 + if(state == Control_ON){ + 5486: 0814 bt 0x54ae // 54ae + if(g_switch.feedback_light_selection == 0x01){ + 5488: 8462 ld.b r3, (r4, 0x2) + 548a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 548c: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 548e: 080a bt 0x54a2 // 54a2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5490: 300c movi r0, 12 + 5492: e0000347 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5496: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5498: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 549a: e0000343 bsr 0x5b20 // 5b20 + g_switch.light_state[T_CH2] = state; + 549e: a4a6 st.b r5, (r4, 0x6) + break; + 54a0: 07d3 br 0x5446 // 5446 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 54a2: 3007 movi r0, 7 + 54a4: e000033e bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 54a8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 54aa: 300c movi r0, 12 + 54ac: 07f7 br 0x549a // 549a + }else if(state == Control_OFF){ + 54ae: 3942 cmpnei r1, 2 + 54b0: 0bf7 bt 0x549e // 549e + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54b2: 0260 lrw r3, 0x200000c0 // 57ac + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 54b4: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54b6: 9360 ld.w r3, (r3, 0x0) + 54b8: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 54ba: 8462 ld.b r3, (r4, 0x2) + 54bc: 3b41 cmpnei r3, 1 + 54be: 0809 bt 0x54d0 // 54d0 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 54c0: 300c movi r0, 12 + 54c2: e000032f bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 54c6: 846a ld.b r3, (r4, 0xa) + 54c8: 3b41 cmpnei r3, 1 + 54ca: 0bea bt 0x549e // 549e + 54cc: 3101 movi r1, 1 + 54ce: 07e5 br 0x5498 // 5498 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 54d0: 3007 movi r0, 7 + 54d2: e0000327 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 54d6: 846a ld.b r3, (r4, 0xa) + 54d8: 3b41 cmpnei r3, 1 + 54da: 0be2 bt 0x549e // 549e + 54dc: 3101 movi r1, 1 + 54de: 07e6 br 0x54aa // 54aa + if(state == Control_ON){ + 54e0: 0814 bt 0x5508 // 5508 + if(g_switch.feedback_light_selection == 0x01){ + 54e2: 8462 ld.b r3, (r4, 0x2) + 54e4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 54e6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 54e8: 080a bt 0x54fc // 54fc + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 54ea: 300d movi r0, 13 + 54ec: e000031a bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 54f0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 54f2: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 54f4: e0000316 bsr 0x5b20 // 5b20 + g_switch.light_state[T_CH3] = state; + 54f8: a4a7 st.b r5, (r4, 0x7) + break; + 54fa: 07a6 br 0x5446 // 5446 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 54fc: 3008 movi r0, 8 + 54fe: e0000311 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5502: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5504: 300d movi r0, 13 + 5506: 07f7 br 0x54f4 // 54f4 + }else if(state == Control_OFF){ + 5508: 3942 cmpnei r1, 2 + 550a: 0bf7 bt 0x54f8 // 54f8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 550c: 0277 lrw r3, 0x200000c0 // 57ac + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 550e: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5510: 9360 ld.w r3, (r3, 0x0) + 5512: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5514: 8462 ld.b r3, (r4, 0x2) + 5516: 3b41 cmpnei r3, 1 + 5518: 0809 bt 0x552a // 552a + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 551a: 300d movi r0, 13 + 551c: e0000302 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5520: 846a ld.b r3, (r4, 0xa) + 5522: 3b41 cmpnei r3, 1 + 5524: 0bea bt 0x54f8 // 54f8 + 5526: 3101 movi r1, 1 + 5528: 07e5 br 0x54f2 // 54f2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 552a: 3008 movi r0, 8 + 552c: e00002fa bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5530: 846a ld.b r3, (r4, 0xa) + 5532: 3b41 cmpnei r3, 1 + 5534: 0be2 bt 0x54f8 // 54f8 + 5536: 3101 movi r1, 1 + 5538: 07e6 br 0x5504 // 5504 + if(state == Control_ON){ + 553a: 0814 bt 0x5562 // 5562 + if(g_switch.feedback_light_selection == 0x01){ + 553c: 8462 ld.b r3, (r4, 0x2) + 553e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5540: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5542: 080a bt 0x5556 // 5556 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5544: 300e movi r0, 14 + 5546: e00002ed bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 554a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 554c: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 554e: e00002e9 bsr 0x5b20 // 5b20 + g_switch.light_state[T_CH4] = state; + 5552: a4a8 st.b r5, (r4, 0x8) + break; + 5554: 0779 br 0x5446 // 5446 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5556: 3009 movi r0, 9 + 5558: e00002e4 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 555c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 555e: 300e movi r0, 14 + 5560: 07f7 br 0x554e // 554e + }else if(state == Control_OFF){ + 5562: 3942 cmpnei r1, 2 + 5564: 0bf7 bt 0x5552 // 5552 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5566: 036d lrw r3, 0x200000c0 // 57ac + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5568: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 556a: 9360 ld.w r3, (r3, 0x0) + 556c: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 556e: 8462 ld.b r3, (r4, 0x2) + 5570: 3b41 cmpnei r3, 1 + 5572: 0809 bt 0x5584 // 5584 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5574: 300e movi r0, 14 + 5576: e00002d5 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 557a: 846a ld.b r3, (r4, 0xa) + 557c: 3b41 cmpnei r3, 1 + 557e: 0bea bt 0x5552 // 5552 + 5580: 3101 movi r1, 1 + 5582: 07e5 br 0x554c // 554c + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5584: 3009 movi r0, 9 + 5586: e00002cd bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 558a: 846a ld.b r3, (r4, 0xa) + 558c: 3b41 cmpnei r3, 1 + 558e: 0be2 bt 0x5552 // 5552 + 5590: 3101 movi r1, 1 + 5592: 07e6 br 0x555e // 555e + if(state == Control_ON){ + 5594: 0814 bt 0x55bc // 55bc + if(g_switch.feedback_light_selection == 0x01){ + 5596: 8462 ld.b r3, (r4, 0x2) + 5598: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 559a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 559c: 080a bt 0x55b0 // 55b0 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 559e: 300f movi r0, 15 + 55a0: e00002c0 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 55a4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 55a6: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 55a8: e00002bc bsr 0x5b20 // 5b20 + g_switch.light_state[T_CH5] = state; + 55ac: a4a9 st.b r5, (r4, 0x9) + break; + 55ae: 074c br 0x5446 // 5446 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 55b0: 300a movi r0, 10 + 55b2: e00002b7 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 55b6: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 55b8: 300f movi r0, 15 + 55ba: 07f7 br 0x55a8 // 55a8 + }else if(state == Control_OFF){ + 55bc: 3942 cmpnei r1, 2 + 55be: 0bf7 bt 0x55ac // 55ac + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 55c0: 137b lrw r3, 0x200000c0 // 57ac + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 55c2: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 55c4: 9360 ld.w r3, (r3, 0x0) + 55c6: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 55c8: 8462 ld.b r3, (r4, 0x2) + 55ca: 3b41 cmpnei r3, 1 + 55cc: 0809 bt 0x55de // 55de + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 55ce: 300f movi r0, 15 + 55d0: e00002a8 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 55d4: 846a ld.b r3, (r4, 0xa) + 55d6: 3b41 cmpnei r3, 1 + 55d8: 0bea bt 0x55ac // 55ac + 55da: 3101 movi r1, 1 + 55dc: 07e5 br 0x55a6 // 55a6 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 55de: 300a movi r0, 10 + 55e0: e00002a0 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 55e4: 846a ld.b r3, (r4, 0xa) + 55e6: 3b41 cmpnei r3, 1 + 55e8: 0be2 bt 0x55ac // 55ac + 55ea: 3101 movi r1, 1 + 55ec: 07e6 br 0x55b8 // 55b8 + if(state == Control_ON){ + 55ee: 08b1 bt 0x5750 // 5750 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 55f0: 136f lrw r3, 0x200000c0 // 57ac + 55f2: 9360 ld.w r3, (r3, 0x0) + 55f4: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 55f6: 8462 ld.b r3, (r4, 0x2) + 55f8: 3b41 cmpnei r3, 1 + 55fa: 8465 ld.b r3, (r4, 0x5) + 55fc: 0857 bt 0x56aa // 56aa + if(g_switch.light_state[T_CH1] != Control_ON) { + 55fe: 3b41 cmpnei r3, 1 + 5600: 0c33 bf 0x5666 // 5666 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5602: 3101 movi r1, 1 + 5604: 3006 movi r0, 6 + 5606: e000028d bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 560a: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 560c: 300b movi r0, 11 + 560e: e0000289 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH2] != Control_ON) { + 5612: 8466 ld.b r3, (r4, 0x6) + 5614: 3b41 cmpnei r3, 1 + 5616: 0c2e bf 0x5672 // 5672 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5618: 3101 movi r1, 1 + 561a: 3007 movi r0, 7 + 561c: e0000282 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5620: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5622: 300c movi r0, 12 + 5624: e000027e bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH3] != Control_ON) { + 5628: 8467 ld.b r3, (r4, 0x7) + 562a: 3b41 cmpnei r3, 1 + 562c: 0c29 bf 0x567e // 567e + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 562e: 3101 movi r1, 1 + 5630: 3008 movi r0, 8 + 5632: e0000277 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5636: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5638: 300d movi r0, 13 + 563a: e0000273 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH4] != Control_ON) { + 563e: 8468 ld.b r3, (r4, 0x8) + 5640: 3b41 cmpnei r3, 1 + 5642: 0c24 bf 0x568a // 568a + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5644: 3101 movi r1, 1 + 5646: 3009 movi r0, 9 + 5648: e000026c bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 564c: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 564e: 300e movi r0, 14 + 5650: e0000268 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5654: 8469 ld.b r3, (r4, 0x9) + 5656: 3b41 cmpnei r3, 1 + 5658: 0c1f bf 0x5696 // 5696 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 565a: 3101 movi r1, 1 + 565c: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 565e: e0000261 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5662: 3102 movi r1, 2 + 5664: 041e br 0x56a0 // 56a0 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5666: 3102 movi r1, 2 + 5668: 3006 movi r0, 6 + 566a: e000025b bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 566e: 3101 movi r1, 1 + 5670: 07ce br 0x560c // 560c + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5672: 3102 movi r1, 2 + 5674: 3007 movi r0, 7 + 5676: e0000255 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 567a: 3101 movi r1, 1 + 567c: 07d3 br 0x5622 // 5622 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 567e: 3102 movi r1, 2 + 5680: 3008 movi r0, 8 + 5682: e000024f bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5686: 3101 movi r1, 1 + 5688: 07d8 br 0x5638 // 5638 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 568a: 3102 movi r1, 2 + 568c: 3009 movi r0, 9 + 568e: e0000249 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5692: 3101 movi r1, 1 + 5694: 07dd br 0x564e // 564e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5696: 3102 movi r1, 2 + 5698: 300a movi r0, 10 + 569a: e0000243 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 569e: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 56a0: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 56a2: e000023f bsr 0x5b20 // 5b20 + g_switch.light_state[T_Backlight] = state; + 56a6: a4aa st.b r5, (r4, 0xa) +} + 56a8: 06cf br 0x5446 // 5446 + if(g_switch.light_state[T_CH1] != Control_ON) { + 56aa: 3b41 cmpnei r3, 1 + 56ac: 0c33 bf 0x5712 // 5712 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 56ae: 3101 movi r1, 1 + 56b0: 300b movi r0, 11 + 56b2: e0000237 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 56b6: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 56b8: 3006 movi r0, 6 + 56ba: e0000233 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH2] != Control_ON) { + 56be: 8466 ld.b r3, (r4, 0x6) + 56c0: 3b41 cmpnei r3, 1 + 56c2: 0c2e bf 0x571e // 571e + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 56c4: 3101 movi r1, 1 + 56c6: 300c movi r0, 12 + 56c8: e000022c bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 56cc: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 56ce: 3007 movi r0, 7 + 56d0: e0000228 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH3] != Control_ON) { + 56d4: 8467 ld.b r3, (r4, 0x7) + 56d6: 3b41 cmpnei r3, 1 + 56d8: 0c29 bf 0x572a // 572a + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 56da: 3101 movi r1, 1 + 56dc: 300d movi r0, 13 + 56de: e0000221 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 56e2: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 56e4: 3008 movi r0, 8 + 56e6: e000021d bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH4] != Control_ON) { + 56ea: 8468 ld.b r3, (r4, 0x8) + 56ec: 3b41 cmpnei r3, 1 + 56ee: 0c24 bf 0x5736 // 5736 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 56f0: 3101 movi r1, 1 + 56f2: 300e movi r0, 14 + 56f4: e0000216 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 56f8: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 56fa: 3009 movi r0, 9 + 56fc: e0000212 bsr 0x5b20 // 5b20 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5700: 8469 ld.b r3, (r4, 0x9) + 5702: 3b41 cmpnei r3, 1 + 5704: 0c1f bf 0x5742 // 5742 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5706: 3101 movi r1, 1 + 5708: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 570a: e000020b bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 570e: 3102 movi r1, 2 + 5710: 041e br 0x574c // 574c + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5712: 3102 movi r1, 2 + 5714: 300b movi r0, 11 + 5716: e0000205 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 571a: 3101 movi r1, 1 + 571c: 07ce br 0x56b8 // 56b8 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 571e: 3102 movi r1, 2 + 5720: 300c movi r0, 12 + 5722: e00001ff bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5726: 3101 movi r1, 1 + 5728: 07d3 br 0x56ce // 56ce + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 572a: 3102 movi r1, 2 + 572c: 300d movi r0, 13 + 572e: e00001f9 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5732: 3101 movi r1, 1 + 5734: 07d8 br 0x56e4 // 56e4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5736: 3102 movi r1, 2 + 5738: 300e movi r0, 14 + 573a: e00001f3 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 573e: 3101 movi r1, 1 + 5740: 07dd br 0x56fa // 56fa + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5742: 3102 movi r1, 2 + 5744: 300f movi r0, 15 + 5746: e00001ed bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 574a: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 574c: 300a movi r0, 10 + 574e: 07aa br 0x56a2 // 56a2 + }else if(state == Control_OFF){ + 5750: 3942 cmpnei r1, 2 + 5752: 0baa bt 0x56a6 // 56a6 + if(g_switch.feedback_light_selection == 0x01){ + 5754: 8462 ld.b r3, (r4, 0x2) + 5756: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5758: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 575a: 082b bt 0x57b0 // 57b0 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 575c: 3006 movi r0, 6 + 575e: e00001e1 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5762: 3102 movi r1, 2 + 5764: 3007 movi r0, 7 + 5766: e00001dd bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 576a: 3102 movi r1, 2 + 576c: 3008 movi r0, 8 + 576e: e00001d9 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5772: 3102 movi r1, 2 + 5774: 3009 movi r0, 9 + 5776: e00001d5 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 577a: 3102 movi r1, 2 + 577c: 300a movi r0, 10 + 577e: e00001d1 bsr 0x5b20 // 5b20 + if(g_switch.autoOff_light_flag == 0x01){ + 5782: 8461 ld.b r3, (r4, 0x1) + 5784: 3b41 cmpnei r3, 1 + 5786: 0b90 bt 0x56a6 // 56a6 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5788: 3102 movi r1, 2 + 578a: 300b movi r0, 11 + 578c: e00001ca bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5790: 3102 movi r1, 2 + 5792: 300c movi r0, 12 + 5794: e00001c6 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5798: 3102 movi r1, 2 + 579a: 300d movi r0, 13 + 579c: e00001c2 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 57a0: 3102 movi r1, 2 + 57a2: 300e movi r0, 14 + 57a4: 075d br 0x565e // 565e + 57a6: 0000 bkpt + 57a8: 200005a4 .long 0x200005a4 + 57ac: 200000c0 .long 0x200000c0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 57b0: 300b movi r0, 11 + 57b2: e00001b7 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57b6: 3102 movi r1, 2 + 57b8: 300c movi r0, 12 + 57ba: e00001b3 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 57be: 3102 movi r1, 2 + 57c0: 300d movi r0, 13 + 57c2: e00001af bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 57c6: 3102 movi r1, 2 + 57c8: 300e movi r0, 14 + 57ca: e00001ab bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 57ce: 3102 movi r1, 2 + 57d0: 300f movi r0, 15 + 57d2: e00001a7 bsr 0x5b20 // 5b20 + if(g_switch.autoOff_light_flag == 0x01){ + 57d6: 8461 ld.b r3, (r4, 0x1) + 57d8: 3b41 cmpnei r3, 1 + 57da: 0b66 bt 0x56a6 // 56a6 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 57dc: 3102 movi r1, 2 + 57de: 3006 movi r0, 6 + 57e0: e00001a0 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 57e4: 3102 movi r1, 2 + 57e6: 3007 movi r0, 7 + 57e8: e000019c bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 57ec: 3102 movi r1, 2 + 57ee: 3008 movi r0, 8 + 57f0: e0000198 bsr 0x5b20 // 5b20 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 57f4: 3102 movi r1, 2 + 57f6: 3009 movi r0, 9 + 57f8: 0789 br 0x570a // 570a + +Disassembly of section .text.Contol_Switch_ClickAction: + +000057fc : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 57fc: 14d0 push r15 + switch(ch) + 57fe: 3804 cmphsi r0, 5 + 5800: 0809 bt 0x5812 // 5812 + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 5802: 1068 lrw r3, 0x200005a4 // 5820 + 5804: 836a ld.b r3, (r3, 0xa) + 5806: 3b41 cmpnei r3, 1 + 5808: 0806 bt 0x5814 // 5814 + if(state == Control_ON ){ + 580a: 3941 cmpnei r1, 1 + 580c: 0804 bt 0x5814 // 5814 + Contol_Switch_Light_2(ch,Control_ON); + 580e: e3fffe01 bsr 0x5410 // 5410 + break; + default: + + break; + } +} + 5812: 1490 pop r15 + if(state == Control_OFF ){ + 5814: 3942 cmpnei r1, 2 + 5816: 0bfe bt 0x5812 // 5812 + Contol_Switch_Light(ch,Control_OFF); + 5818: e3fffc06 bsr 0x5024 // 5024 +} + 581c: 07fb br 0x5812 // 5812 + 581e: 0000 bkpt + 5820: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Get_TM1812_State_Change: + +00005824 : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 5824: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 5826: 106f lrw r3, 0x200001a0 // 5860 + 5828: 8318 ld.b r0, (r3, 0x18) + 582a: 3841 cmpnei r0, 1 + 582c: 0c19 bf 0x585e // 585e + 582e: 104e lrw r2, 0x20000140 // 5864 + 5830: 3018 movi r0, 24 + 5832: 3300 movi r3, 0 + for(i=0;i + rev++; + 583e: 2300 addi r3, 1 + 5840: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 5842: 5a84 addu r4, r2, r1 + 5844: 8480 ld.b r4, (r4, 0x0) + 5846: 3c41 cmpnei r4, 1 + 5848: 0803 bt 0x584e // 584e + rev++; + 584a: 2300 addi r3, 1 + 584c: 74cc zextb r3, r3 + 584e: 2800 subi r0, 1 + 5850: 7400 zextb r0, r0 + for(i=0;i + } + } + + if(rev != 0x00) return 0x01; + 5858: 3b40 cmpnei r3, 0 + 585a: 6001 addc r0, r0 + return 0x01; //立即控制 + 585c: 7400 zextb r0, r0 + return 0x00; +} + 585e: 1482 pop r4-r5 + 5860: 200001a0 .long 0x200001a0 + 5864: 20000140 .long 0x20000140 + +Disassembly of section .text.TimeCall_SIO_Send: + +00005868 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 5868: 14d4 push r4-r7, r15 + 586a: 1421 subi r14, r14, 4 + 586c: 1264 lrw r3, 0x20000140 // 597c + 586e: 3188 movi r1, 136 + 5870: 3260 movi r2, 96 + 5872: 604c addu r1, r3 + 5874: 608c addu r2, r3 + 5876: 3718 movi r7, 24 + 5878: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 5886: 3448 movi r4, 72 + 5888: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 588a: 84a0 ld.b r5, (r4, 0x0) + 588c: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 588e: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 5890: 083a bt 0x5904 // 5904 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 5892: 35ff movi r5, 255 + 5894: 6542 cmpne r0, r5 + 5896: 0c34 bf 0x58fe // 58fe + //递增 + tm1812_param.gradient_cnt[i]++; + 5898: 8280 ld.b r4, (r2, 0x0) + 589a: 2400 addi r4, 1 + 589c: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 589e: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 58a0: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 58a2: 0c05 bf 0x58ac // 58ac + tm1812_param.curr_data[i]++; + 58a4: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 58a6: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 58a8: 3000 movi r0, 0 + 58aa: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 58ac: 3000 movi r0, 0 + 58ae: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 58b0: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 58b2: 3480 movi r4, 128 + 58b4: 6914 and r4, r5 + 58b6: 3c40 cmpnei r4, 0 + 58b8: 9180 ld.w r4, (r1, 0x0) + 58ba: 0c44 bf 0x5942 // 5942 + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 58bc: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 58be: 7180 lsl r6, r0 + 58c0: 2001 addi r0, 2 + 58c2: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 58c4: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 58c6: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 58c8: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 58ca: 0bf4 bt 0x58b2 // 58b2 + 58cc: 5f03 subi r0, r7, 1 + 58ce: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 58da: e3fff092 bsr 0x39fe // 39fe + + for(K=0;K + 58e2: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 58e4: 3022 movi r0, 34 + 58e6: 1148 lrw r2, 0x2000002c // 5984 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 58e8: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 58ea: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 58ec: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 58f6: e3fff081 bsr 0x39f8 // 39f8 + +} + 58fa: 1401 addi r14, r14, 4 + 58fc: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 58fe: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 5900: a400 st.b r0, (r4, 0x0) + 5902: 07d5 br 0x58ac // 58ac + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 5904: 3840 cmpnei r0, 0 + 5906: 0c09 bf 0x5918 // 5918 + tm1812_param.gradient_cnt[i]++; + 5908: 8280 ld.b r4, (r2, 0x0) + 590a: 2400 addi r4, 1 + 590c: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 590e: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 5910: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5912: 0fcd bf 0x58ac // 58ac + tm1812_param.curr_data[i]--; + 5914: 2800 subi r0, 1 + 5916: 07c8 br 0x58a6 // 58a6 + tm1812_param.gradient_dir[i] = 0x01; + 5918: 3001 movi r0, 1 + 591a: 07f3 br 0x5900 // 5900 + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 591c: 7400 zextb r0, r0 + 591e: 8380 ld.b r4, (r3, 0x0) + 5920: 6500 cmphs r0, r4 + 5922: 0807 bt 0x5930 // 5930 + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 5924: 5ca1 subu r5, r4, r0 + 5926: 3d24 cmplti r5, 5 + 5928: 080b bt 0x593e // 593e + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 592a: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 592c: a318 st.b r0, (r3, 0x18) + 592e: 07bf br 0x58ac // 58ac + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 5930: 6410 cmphs r4, r0 + 5932: 0bbd bt 0x58ac // 58ac + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 5934: 58b1 subu r5, r0, r4 + 5936: 3d24 cmplti r5, 5 + 5938: 0803 bt 0x593e // 593e + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 593a: 2803 subi r0, 4 + 593c: 07f8 br 0x592c // 592c + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 593e: a398 st.b r4, (r3, 0x18) + 5940: 07b6 br 0x58ac // 58ac + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5942: 3602 movi r6, 2 + 5944: 07bd br 0x58be // 58be + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5946: 8328 ld.b r1, (r3, 0x8) + 5948: 6040 addu r1, r0 + 594a: 4122 lsli r1, r1, 2 + 594c: 98c0 ld.w r6, (r14, 0x0) + 594e: 6058 addu r1, r6 + 5950: 9120 ld.w r1, (r1, 0x0) + 5952: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5954: 9228 ld.w r1, (r2, 0x20) + 5956: 6850 and r1, r4 + 5958: 3940 cmpnei r1, 0 + 595a: 0ffd bf 0x5954 // 5954 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 595c: 922b ld.w r1, (r2, 0x2c) + 595e: 3982 bclri r1, 2 + 5960: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5962: 9228 ld.w r1, (r2, 0x20) + 5964: 6854 and r1, r5 + 5966: 3940 cmpnei r1, 0 + 5968: 0ffd bf 0x5962 // 5962 + SIO0->ICR &= ~SIO_TXDNE; + 596a: 922b ld.w r1, (r2, 0x2c) + 596c: 3980 bclri r1, 0 + 596e: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 597a: 0000 bkpt + 597c: 20000140 .long 0x20000140 + 5980: 20000220 .long 0x20000220 + 5984: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +00005988 : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 5988: 14d4 push r4-r7, r15 + 598a: 1421 subi r14, r14, 4 + 598c: 1105 lrw r0, 0x20000140 // 5a20 + 598e: 1166 lrw r3, 0x200001c8 // 5a24 + 5990: 3218 movi r2, 24 + 5992: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 59a6: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 59a8: 7184 lsl r6, r1 + 59aa: 2101 addi r1, 2 + 59ac: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 59ae: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 59b0: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 59b2: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 59b4: 0bf4 bt 0x599c // 599c + 59b6: 2a00 subi r2, 1 + 59b8: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 59c2: e3fff01e bsr 0x39fe // 39fe + + for(K2=0;K2 + 59ca: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 59cc: 3022 movi r0, 34 + 59ce: 1058 lrw r2, 0x2000002c // 5a2c + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 59d0: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 59d2: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 59d4: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 59de: e3fff00d bsr 0x39f8 // 39f8 + +} + 59e2: 1401 addi r14, r14, 4 + 59e4: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 59e6: 3602 movi r6, 2 + 59e8: 07e0 br 0x59a8 // 59a8 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 59ea: 8329 ld.b r1, (r3, 0x9) + 59ec: 6040 addu r1, r0 + 59ee: 4122 lsli r1, r1, 2 + 59f0: 98c0 ld.w r6, (r14, 0x0) + 59f2: 6058 addu r1, r6 + 59f4: 9120 ld.w r1, (r1, 0x0) + 59f6: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 59f8: 9228 ld.w r1, (r2, 0x20) + 59fa: 6850 and r1, r4 + 59fc: 3940 cmpnei r1, 0 + 59fe: 0ffd bf 0x59f8 // 59f8 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5a00: 922b ld.w r1, (r2, 0x2c) + 5a02: 3982 bclri r1, 2 + 5a04: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5a06: 9228 ld.w r1, (r2, 0x20) + 5a08: 6854 and r1, r5 + 5a0a: 3940 cmpnei r1, 0 + 5a0c: 0ffd bf 0x5a06 // 5a06 + SIO0->ICR &= ~SIO_TXDNE; + 5a0e: 922b ld.w r1, (r2, 0x2c) + 5a10: 3980 bclri r1, 0 + 5a12: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 5a1e: 0000 bkpt + 5a20: 20000140 .long 0x20000140 + 5a24: 200001c8 .long 0x200001c8 + 5a28: 20000220 .long 0x20000220 + 5a2c: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +00005a30 : + + +void Tm1812_Task(void) { + 5a30: 14d0 push r15 + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 5a32: e3fffef9 bsr 0x5824 // 5824 + 5a36: 3841 cmpnei r0, 1 + 5a38: 1070 lrw r3, 0x200001c0 // 5a78 + 5a3a: 0812 bt 0x5a5e // 5a5e + if(SysTick_100us - StateChange_Tick >= 20){ + 5a3c: 1030 lrw r1, 0x200000bc // 5a7c + 5a3e: 9140 ld.w r2, (r1, 0x0) + 5a40: 931b ld.w r0, (r3, 0x6c) + 5a42: 6082 subu r2, r0 + 5a44: 3a13 cmphsi r2, 20 + 5a46: 0c0b bf 0x5a5c // 5a5c + StateChange_Tick = SysTick_100us; + 5a48: 9140 ld.w r2, (r1, 0x0) + 5a4a: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5a4c: 104d lrw r2, 0x200000c0 // 5a80 + 5a4e: 9240 ld.w r2, (r2, 0x0) + 5a50: b341 st.w r2, (r3, 0x4) + tm1812_param.change_flag = 0x00; + 5a52: 106d lrw r3, 0x200001a0 // 5a84 + 5a54: 3200 movi r2, 0 + 5a56: a358 st.b r2, (r3, 0x18) + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + + TimeCall_SIO_Send(); + 5a58: e3ffff08 bsr 0x5868 // 5868 + } + } + +} + 5a5c: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 5a5e: 1029 lrw r1, 0x200000c0 // 5a80 + 5a60: 9140 ld.w r2, (r1, 0x0) + 5a62: 9301 ld.w r0, (r3, 0x4) + 5a64: 6082 subu r2, r0 + 5a66: 1009 lrw r0, 0x7cf // 5a88 + 5a68: 6480 cmphs r0, r2 + 5a6a: 0bf9 bt 0x5a5c // 5a5c + StateChange_Tick = SysTick_100us; + 5a6c: 1044 lrw r2, 0x200000bc // 5a7c + 5a6e: 9240 ld.w r2, (r2, 0x0) + 5a70: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5a72: 9140 ld.w r2, (r1, 0x0) + 5a74: b341 st.w r2, (r3, 0x4) + 5a76: 07f1 br 0x5a58 // 5a58 + 5a78: 200001c0 .long 0x200001c0 + 5a7c: 200000bc .long 0x200000bc + 5a80: 200000c0 .long 0x200000c0 + 5a84: 200001a0 .long 0x200001a0 + 5a88: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00005a8c : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 5a8c: 3817 cmphsi r0, 24 + 5a8e: 080c bt 0x5aa6 // 5aa6 + return; + } + + tm1812_param.data[select] = data; + 5a90: 1066 lrw r3, 0x20000140 // 5aa8 + 5a92: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 5a94: 3260 movi r2, 96 + 5a96: 608c addu r2, r3 + tm1812_param.data[select] = data; + 5a98: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 5a9a: 3101 movi r1, 1 + 5a9c: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5a9e: 237f addi r3, 128 + 5aa0: 1043 lrw r2, 0x200000c0 // 5aac + 5aa2: 9240 ld.w r2, (r2, 0x0) + 5aa4: b340 st.w r2, (r3, 0x0) +} + 5aa6: 783c jmp r15 + 5aa8: 20000140 .long 0x20000140 + 5aac: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_Control_CH_State: + +00005ab0 : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 5ab0: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5ab2: 3817 cmphsi r0, 24 + 5ab4: 082a bt 0x5b08 // 5b08 + return 0x01; + } + + switch(state){ + 5ab6: 3942 cmpnei r1, 2 + 5ab8: 0c12 bf 0x5adc // 5adc + 5aba: 3943 cmpnei r1, 3 + 5abc: 0c14 bf 0x5ae4 // 5ae4 + 5abe: 3941 cmpnei r1, 1 + 5ac0: 0806 bt 0x5acc // 5acc + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 5ac2: 1073 lrw r3, 0x20000140 // 5b0c + 5ac4: 600c addu r0, r3 + 5ac6: 3300 movi r3, 0 + 5ac8: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 5aca: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5acc: 1071 lrw r3, 0x200001a0 // 5b10 + 5ace: 3201 movi r2, 1 + 5ad0: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 5ad2: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 5ad4: 1050 lrw r2, 0x200000c0 // 5b14 + 5ad6: 9240 ld.w r2, (r2, 0x0) + 5ad8: b348 st.w r2, (r3, 0x20) +} + 5ada: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 5adc: 106c lrw r3, 0x20000140 // 5b0c + 5ade: 600c addu r0, r3 + 5ae0: 3300 movi r3, 0 + 5ae2: 07f4 br 0x5aca // 5aca + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 5ae4: 106a lrw r3, 0x20000140 // 5b0c + 5ae6: 600c addu r0, r3 + 5ae8: 8020 ld.b r1, (r0, 0x0) + 5aea: 32ff movi r2, 255 + 5aec: 3300 movi r3, 0 + 5aee: 6486 cmpne r1, r2 + 5af0: 2b00 subi r3, 1 + 5af2: 0c07 bf 0x5b00 // 5b00 + tm1812_param.data[ch] = TM1812_CH_ON; + 5af4: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 5af6: 1029 lrw r1, 0xa7dd // 5b18 + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5af8: 3000 movi r0, 0 + 5afa: e3fff1b5 bsr 0x3e64 // 3e64 + 5afe: 07e7 br 0x5acc // 5acc + tm1812_param.data[ch] = TM1812_CH_OFF; + 5b00: 3300 movi r3, 0 + 5b02: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5b04: 1026 lrw r1, 0xa7e5 // 5b1c + 5b06: 07f9 br 0x5af8 // 5af8 + return 0x01; + 5b08: 3001 movi r0, 1 + 5b0a: 07e8 br 0x5ada // 5ada + 5b0c: 20000140 .long 0x20000140 + 5b10: 200001a0 .long 0x200001a0 + 5b14: 200000c0 .long 0x200000c0 + 5b18: 0000a7dd .long 0x0000a7dd + 5b1c: 0000a7e5 .long 0x0000a7e5 + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +00005b20 : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 5b20: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5b22: 3817 cmphsi r0, 24 + 5b24: 0827 bt 0x5b72 // 5b72 + return 0x01; + } + + switch(state){ + 5b26: 3942 cmpnei r1, 2 + 5b28: 0c13 bf 0x5b4e // 5b4e + 5b2a: 3943 cmpnei r1, 3 + 5b2c: 0c15 bf 0x5b56 // 5b56 + 5b2e: 3941 cmpnei r1, 1 + 5b30: 0807 bt 0x5b3e // 5b3e + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 5b32: 1072 lrw r3, 0x20000140 // 5b78 + 5b34: 600c addu r0, r3 + 5b36: 3300 movi r3, 0 + 5b38: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5b3a: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5b3c: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5b3e: 1070 lrw r3, 0x200001a0 // 5b7c + 5b40: 3201 movi r2, 1 + 5b42: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5b44: 3000 movi r0, 0 + 5b46: 104f lrw r2, 0x200000c0 // 5b80 + 5b48: 9240 ld.w r2, (r2, 0x0) + 5b4a: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5b4c: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5b4e: 106b lrw r3, 0x20000140 // 5b78 + 5b50: 600c addu r0, r3 + 5b52: 3300 movi r3, 0 + 5b54: 07f3 br 0x5b3a // 5b3a + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 5b56: 1069 lrw r3, 0x20000140 // 5b78 + 5b58: 600c addu r0, r3 + 5b5a: 3218 movi r2, 24 + 5b5c: 6080 addu r2, r0 + 5b5e: 8280 ld.b r4, (r2, 0x0) + 5b60: 31ff movi r1, 255 + 5b62: 3300 movi r3, 0 + 5b64: 6452 cmpne r4, r1 + 5b66: 2b00 subi r3, 1 + 5b68: 0c03 bf 0x5b6e // 5b6e + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5b6a: a260 st.b r3, (r2, 0x0) + 5b6c: 07e8 br 0x5b3c // 5b3c + 5b6e: 3300 movi r3, 0 + 5b70: 07fd br 0x5b6a // 5b6a + return 0x01; + 5b72: 3001 movi r0, 1 + 5b74: 07ec br 0x5b4c // 5b4c + 5b76: 0000 bkpt + 5b78: 20000140 .long 0x20000140 + 5b7c: 200001a0 .long 0x200001a0 + 5b80: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_LED_Init: + +00005b84 : +void TM1812_LED_Init(void){ + 5b84: 14d0 push r15 + 5b86: 1426 subi r14, r14, 24 + SIO_DeInit(); + 5b88: e3ffe3cc bsr 0x2320 // 2320 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 5b8c: 3001 movi r0, 1 + 5b8e: e3ffe3d9 bsr 0x2340 // 2340 + SIO_TX_Init(SIOCLK_EN,9); // + 5b92: 3109 movi r1, 9 + 5b94: 3001 movi r0, 1 + 5b96: e3ffe405 bsr 0x23a0 // 23a0 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 5b9a: 3303 movi r3, 3 + 5b9c: b865 st.w r3, (r14, 0x14) + 5b9e: 330f movi r3, 15 + 5ba0: b864 st.w r3, (r14, 0x10) + 5ba2: 33a0 movi r3, 160 + 5ba4: 4366 lsli r3, r3, 6 + 5ba6: b863 st.w r3, (r14, 0xc) + 5ba8: 33a0 movi r3, 160 + 5baa: 4363 lsli r3, r3, 3 + 5bac: b862 st.w r3, (r14, 0x8) + 5bae: 3300 movi r3, 0 + 5bb0: b861 st.w r3, (r14, 0x4) + 5bb2: b860 st.w r3, (r14, 0x0) + 5bb4: 3207 movi r2, 7 + 5bb6: 3317 movi r3, 23 + 5bb8: 3100 movi r1, 0 + 5bba: 3002 movi r0, 2 + 5bbc: e3ffe3fa bsr 0x23b0 // 23b0 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 5bc0: 32e8 movi r2, 232 + 5bc2: 3100 movi r1, 0 + 5bc4: 100a lrw r0, 0x20000140 // 5bec + 5bc6: e3ffdeeb bsr 0x199c // 199c <__memset_fast> + RLY1_HOT_CLOSE; + 5bca: 3101 movi r1, 1 + 5bcc: 3012 movi r0, 18 + 5bce: e3ffffa9 bsr 0x5b20 // 5b20 + RLY2_COLD_CLOSE; + 5bd2: 3101 movi r1, 1 + 5bd4: 3013 movi r0, 19 + 5bd6: e3ffffa5 bsr 0x5b20 // 5b20 + RLY_CTRL_EN; //继电器使能 + 5bda: 3101 movi r1, 1 + 5bdc: 3017 movi r0, 23 + 5bde: e3ffffa1 bsr 0x5b20 // 5b20 + TimeCall_SIO_Send2(); + 5be2: e3fffed3 bsr 0x5988 // 5988 +} + 5be6: 1406 addi r14, r14, 24 + 5be8: 1490 pop r15 + 5bea: 0000 bkpt + 5bec: 20000140 .long 0x20000140 + +Disassembly of section .text.HT1621_WR_Data: + +00005bf0 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 5bf0: 14d4 push r4-r7, r15 + 5bf2: 6d43 mov r5, r0 + 5bf4: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 5bfe: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 5c00: 3101 movi r1, 1 + 5c02: 9600 ld.w r0, (r6, 0x0) + 5c04: e3ffe316 bsr 0x2230 // 2230 + nop; + 5c08: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 5c0a: 74d6 sextb r3, r5 + 5c0c: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 5c0e: 3104 movi r1, 4 + 5c10: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 5c12: 0c0d bf 0x5c2c // 5c2c + HT1621_DATA_HIGH; + 5c14: e3ffe30a bsr 0x2228 // 2228 + nop; + 5c18: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 5c1a: 3101 movi r1, 1 + 5c1c: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 5c1e: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 5c26: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 5c2c: e3ffe302 bsr 0x2230 // 2230 + 5c30: 07f4 br 0x5c18 // 5c18 + 5c32: 0000 bkpt + 5c34: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +00005c38 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 5c38: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5c3a: 108b lrw r4, 0x2000004c // 5c64 +{ + 5c3c: 6d43 mov r5, r0 + HT1621_CS_LOW; + 5c3e: 310f movi r1, 15 + 5c40: 9400 ld.w r0, (r4, 0x0) + 5c42: e3ffe2f7 bsr 0x2230 // 2230 + nop; + 5c46: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 5c48: 3104 movi r1, 4 + 5c4a: 3080 movi r0, 128 + 5c4c: e3ffffd2 bsr 0x5bf0 // 5bf0 + HT1621_WR_Data(cmd,8); + 5c50: 6c17 mov r0, r5 + 5c52: 3108 movi r1, 8 + 5c54: e3ffffce bsr 0x5bf0 // 5bf0 + HT1621_CS_HIGH; + 5c58: 9400 ld.w r0, (r4, 0x0) + 5c5a: 310f movi r1, 15 + 5c5c: e3ffe2e6 bsr 0x2228 // 2228 + nop; + 5c60: 6c03 mov r0, r0 +} + 5c62: 1492 pop r4-r5, r15 + 5c64: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005c68 : +void HT1621_Init(void){ + 5c68: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 5c6a: 118b lrw r4, 0x2000004c // 5d14 + memset(&HT1621,0,sizeof(HT1621_t)); + 5c6c: 3240 movi r2, 64 + 5c6e: 3100 movi r1, 0 + 5c70: 110a lrw r0, 0x200005c0 // 5d18 + 5c72: e3ffde95 bsr 0x199c // 199c <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 5c76: 9400 ld.w r0, (r4, 0x0) + 5c78: 3200 movi r2, 0 + 5c7a: 3100 movi r1, 0 + 5c7c: e3ffe11a bsr 0x1eb0 // 1eb0 + GPIO_Init(GPIOA0,1,Output); + 5c80: 9400 ld.w r0, (r4, 0x0) + 5c82: 3200 movi r2, 0 + 5c84: 3101 movi r1, 1 + 5c86: e3ffe115 bsr 0x1eb0 // 1eb0 + GPIO_Init(GPIOA0,15,Output); + 5c8a: 9400 ld.w r0, (r4, 0x0) + 5c8c: 3200 movi r2, 0 + 5c8e: 310f movi r1, 15 + 5c90: e3ffe110 bsr 0x1eb0 // 1eb0 + GPIO_Init(GPIOA0,4,Output); + 5c94: 3200 movi r2, 0 + 5c96: 9400 ld.w r0, (r4, 0x0) + 5c98: 3104 movi r1, 4 + 5c9a: e3ffe10b bsr 0x1eb0 // 1eb0 + GPIO_DriveStrength_EN(GPIOA0,0); + 5c9e: 9400 ld.w r0, (r4, 0x0) + 5ca0: 3100 movi r1, 0 + 5ca2: e3ffe181 bsr 0x1fa4 // 1fa4 + GPIO_DriveStrength_EN(GPIOA0,1); + 5ca6: 9400 ld.w r0, (r4, 0x0) + 5ca8: 3101 movi r1, 1 + 5caa: e3ffe17d bsr 0x1fa4 // 1fa4 + GPIO_DriveStrength_EN(GPIOA0,15); + 5cae: 9400 ld.w r0, (r4, 0x0) + 5cb0: 310f movi r1, 15 + 5cb2: e3ffe179 bsr 0x1fa4 // 1fa4 + GPIO_DriveStrength_EN(GPIOA0,4); + 5cb6: 9400 ld.w r0, (r4, 0x0) + 5cb8: 3104 movi r1, 4 + 5cba: e3ffe175 bsr 0x1fa4 // 1fa4 + HT1621_CS_LOW; + 5cbe: 9400 ld.w r0, (r4, 0x0) + 5cc0: 310f movi r1, 15 + 5cc2: e3ffe2b7 bsr 0x2230 // 2230 + HT1621_WR_LOW; + 5cc6: 9400 ld.w r0, (r4, 0x0) + 5cc8: 3101 movi r1, 1 + 5cca: e3ffe2b3 bsr 0x2230 // 2230 + HT1621_RD_LOW; + 5cce: 9400 ld.w r0, (r4, 0x0) + 5cd0: 3100 movi r1, 0 + 5cd2: e3ffe2af bsr 0x2230 // 2230 + HT1621_DATA_LOW; + 5cd6: 3104 movi r1, 4 + 5cd8: 9400 ld.w r0, (r4, 0x0) + 5cda: e3ffe2ab bsr 0x2230 // 2230 + HT1621_WR_CMD(HT1621_BIAS); + 5cde: 3052 movi r0, 82 + 5ce0: e3ffffac bsr 0x5c38 // 5c38 + HT1621_WR_CMD(HT1621_RC256); + 5ce4: 3030 movi r0, 48 + 5ce6: e3ffffa9 bsr 0x5c38 // 5c38 + HT1621_WR_CMD(HT1621_SYSDIS); + 5cea: 3000 movi r0, 0 + 5cec: e3ffffa6 bsr 0x5c38 // 5c38 + HT1621_WR_CMD(HT1621_WDTDIS); + 5cf0: 300a movi r0, 10 + 5cf2: e3ffffa3 bsr 0x5c38 // 5c38 + HT1621_WR_CMD(HT1621_SYSEN); + 5cf6: 3002 movi r0, 2 + 5cf8: e3ffffa0 bsr 0x5c38 // 5c38 + HT1621_WR_CMD(HT1621_LCDON); + 5cfc: 3006 movi r0, 6 + 5cfe: e3ffff9d bsr 0x5c38 // 5c38 + HT1621_WR_CMD(HT1621_BIOFF); + 5d02: 3010 movi r0, 16 + 5d04: e3ffff9a bsr 0x5c38 // 5c38 + HT1621_CS_HIGH; + 5d08: 9400 ld.w r0, (r4, 0x0) + 5d0a: 310f movi r1, 15 + 5d0c: e3ffe28e bsr 0x2228 // 2228 +} + 5d10: 1491 pop r4, r15 + 5d12: 0000 bkpt + 5d14: 2000004c .long 0x2000004c + 5d18: 200005c0 .long 0x200005c0 + +Disassembly of section .text.HT1621_Clear: + +00005d1c : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 5d1c: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 5d1e: 3214 movi r2, 20 + 5d20: 3100 movi r1, 0 + + HT1621_CS_LOW; + 5d22: 10b1 lrw r5, 0x2000004c // 5d64 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 5d24: 1011 lrw r0, 0x200005cc // 5d68 + 5d26: e3ffde3b bsr 0x199c // 199c <__memset_fast> + HT1621_CS_LOW; + 5d2a: 310f movi r1, 15 + 5d2c: 9500 ld.w r0, (r5, 0x0) + 5d2e: e3ffe281 bsr 0x2230 // 2230 + nop; + 5d32: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5d34: 3103 movi r1, 3 + 5d36: 30a0 movi r0, 160 + 5d38: e3ffff5c bsr 0x5bf0 // 5bf0 + HT1621_WR_Data(0,6); + 5d3c: 3106 movi r1, 6 + 5d3e: 3000 movi r0, 0 + 5d40: e3ffff58 bsr 0x5bf0 // 5bf0 + 5d44: 3414 movi r4, 20 + 5d46: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5d56: 9500 ld.w r0, (r5, 0x0) + 5d58: 310f movi r1, 15 + 5d5a: e3ffe267 bsr 0x2228 // 2228 + nop; + 5d5e: 6c03 mov r0, r0 +} + 5d60: 1492 pop r4-r5, r15 + 5d62: 0000 bkpt + 5d64: 2000004c .long 0x2000004c + 5d68: 200005cc .long 0x200005cc + +Disassembly of section .text.HT1621_ALLON: + +00005d6c : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 5d6c: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5d6e: 10af lrw r5, 0x2000004c // 5da8 + 5d70: 310f movi r1, 15 + 5d72: 9500 ld.w r0, (r5, 0x0) + 5d74: e3ffe25e bsr 0x2230 // 2230 + nop; + 5d78: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5d7a: 3103 movi r1, 3 + 5d7c: 30a0 movi r0, 160 + 5d7e: e3ffff39 bsr 0x5bf0 // 5bf0 + HT1621_WR_Data(0,6); + 5d82: 3106 movi r1, 6 + 5d84: 3000 movi r0, 0 + 5d86: e3ffff35 bsr 0x5bf0 // 5bf0 + 5d8a: 3414 movi r4, 20 + 5d8c: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5d9c: 9500 ld.w r0, (r5, 0x0) + 5d9e: 310f movi r1, 15 + 5da0: e3ffe244 bsr 0x2228 // 2228 + nop; + 5da4: 6c03 mov r0, r0 +} + 5da6: 1492 pop r4-r5, r15 + 5da8: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +00005dac : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 5dac: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5dae: 1091 lrw r4, 0x2000004c // 5df0 + 5db0: 310f movi r1, 15 + 5db2: 9400 ld.w r0, (r4, 0x0) + 5db4: e3ffe23e bsr 0x2230 // 2230 + nop; + 5db8: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 5dba: 3103 movi r1, 3 + 5dbc: 30a0 movi r0, 160 + 5dbe: e3ffff19 bsr 0x5bf0 // 5bf0 + HT1621_WR_Data(0,6); + 5dc2: 3106 movi r1, 6 + 5dc4: 3000 movi r0, 0 + 5dc6: e3ffff15 bsr 0x5bf0 // 5bf0 + 5dca: 3500 movi r5, 0 + for(U8_T i=0;i + 5dce: 60d4 addu r3, r5 + 5dd0: 830c ld.b r0, (r3, 0xc) + 5dd2: 4004 lsli r0, r0, 4 + 5dd4: 7400 zextb r0, r0 + 5dd6: 3104 movi r1, 4 + 5dd8: 2500 addi r5, 1 + 5dda: e3ffff0b bsr 0x5bf0 // 5bf0 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 5de2: 9400 ld.w r0, (r4, 0x0) + 5de4: 310f movi r1, 15 + 5de6: e3ffe221 bsr 0x2228 // 2228 + nop; + 5dea: 6c03 mov r0, r0 +} + 5dec: 1492 pop r4-r5, r15 + 5dee: 0000 bkpt + 5df0: 2000004c .long 0x2000004c + 5df4: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temperature_Display: + +00005df8 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 5df8: 14d4 push r4-r7, r15 + 5dfa: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5dfc: 1170 lrw r3, 0x20000868 // 5ebc + 5dfe: 8368 ld.b r3, (r3, 0x8) + 5e00: 3b40 cmpnei r3, 0 +{ + 5e02: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5e04: b861 st.w r3, (r14, 0x4) + 5e06: 0845 bt 0x5e90 // 5e90 + tmp_Integer = tmp/10; + 5e08: 310a movi r1, 10 + 5e0a: e3ffedc1 bsr 0x398c // 398c <__udivsi3> + 5e0e: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5e10: 310a movi r1, 10 + 5e12: 6c13 mov r0, r4 + 5e14: e3ffede0 bsr 0x39d4 // 39d4 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 5e18: 118a lrw r4, 0x200005c0 // 5ec0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5e1a: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 5e1c: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5e1e: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 5e20: 8476 ld.b r3, (r4, 0x16) + 5e22: 68d4 and r3, r5 + 5e24: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 5e26: 8474 ld.b r3, (r4, 0x14) + 5e28: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 5e2a: 310a movi r1, 10 + 5e2c: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 5e2e: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 5e30: e3ffedae bsr 0x398c // 398c <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5e34: 11e4 lrw r7, 0xa452 // 5ec4 + 5e36: 7400 zextb r0, r0 + 5e38: 601c addu r0, r7 + 5e3a: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 5e3c: 8458 ld.b r2, (r4, 0x18) + 5e3e: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5e40: 6c07 mov r0, r1 + 5e42: 350f movi r5, 15 + 5e44: 6814 and r0, r5 + 5e46: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 5e48: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 5e4a: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 5e4c: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 5e4e: 6c1b mov r0, r6 + 5e50: 310a movi r1, 10 + 5e52: e3ffedc1 bsr 0x39d4 // 39d4 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5e56: 7400 zextb r0, r0 + 5e58: 601c addu r0, r7 + 5e5a: 8040 ld.b r2, (r0, 0x0) + 5e5c: 6c4b mov r1, r2 + 5e5e: 6854 and r1, r5 + 5e60: 9862 ld.w r3, (r14, 0x8) + 5e62: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5e64: 9860 ld.w r3, (r14, 0x0) + 5e66: 61cc addu r7, r3 + 5e68: 8760 ld.b r3, (r7, 0x0) + 5e6a: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5e6c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5e6e: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 5e70: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 5e72: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 5e74: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 5e76: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5e78: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 5e7a: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 5e7c: 6d48 or r5, r2 + 5e7e: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 5e80: 081a bt 0x5eb4 // 5eb4 + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 5e82: 3ba1 bseti r3, 1 + 5e84: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 5e86: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5e88: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 5e8a: a4b4 st.b r5, (r4, 0x14) +} + 5e8c: 1404 addi r14, r14, 16 + 5e8e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5e90: 3012 movi r0, 18 + 5e92: 7c10 mult r0, r4 + 5e94: 310a movi r1, 10 + 5e96: 34a0 movi r4, 160 + 5e98: e3ffed68 bsr 0x3968 // 3968 <__divsi3> + 5e9c: 4481 lsli r4, r4, 1 + 5e9e: 6100 addu r4, r0 + 5ea0: 310a movi r1, 10 + 5ea2: 6c13 mov r0, r4 + 5ea4: e3ffed62 bsr 0x3968 // 3968 <__divsi3> + 5ea8: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5eaa: 310a movi r1, 10 + 5eac: 6c13 mov r0, r4 + 5eae: e3ffed81 bsr 0x39b0 // 39b0 <__modsi3> + 5eb2: 07b3 br 0x5e18 // 5e18 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 5eb4: 3ba2 bseti r3, 2 + 5eb6: 3ba3 bseti r3, 3 + 5eb8: 07e7 br 0x5e86 // 5e86 + 5eba: 0000 bkpt + 5ebc: 20000868 .long 0x20000868 + 5ec0: 200005c0 .long 0x200005c0 + 5ec4: 0000a452 .long 0x0000a452 + +Disassembly of section .text.Local_Temperature_Display: + +00005ec8 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 5ec8: 14d4 push r4-r7, r15 + 5eca: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5ecc: 1170 lrw r3, 0x20000868 // 5f8c + 5ece: 8368 ld.b r3, (r3, 0x8) + 5ed0: 3b40 cmpnei r3, 0 +{ + 5ed2: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 5ed4: b861 st.w r3, (r14, 0x4) + 5ed6: 0845 bt 0x5f60 // 5f60 + tmp_Integer = tmp/10; + 5ed8: 310a movi r1, 10 + 5eda: e3ffed59 bsr 0x398c // 398c <__udivsi3> + 5ede: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 5ee0: 310a movi r1, 10 + 5ee2: 6c13 mov r0, r4 + 5ee4: e3ffed78 bsr 0x39d4 // 39d4 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 5ee8: 118a lrw r4, 0x200005c0 // 5f90 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5eea: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 5eec: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5eee: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 5ef0: 847d ld.b r3, (r4, 0x1d) + 5ef2: 68d4 and r3, r5 + 5ef4: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 5ef6: 847b ld.b r3, (r4, 0x1b) + 5ef8: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 5efa: 310a movi r1, 10 + 5efc: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 5efe: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 5f00: e3ffed46 bsr 0x398c // 398c <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5f04: 11e4 lrw r7, 0xa452 // 5f94 + 5f06: 7400 zextb r0, r0 + 5f08: 601c addu r0, r7 + 5f0a: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 5f0c: 845f ld.b r2, (r4, 0x1f) + 5f0e: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5f10: 6c07 mov r0, r1 + 5f12: 350f movi r5, 15 + 5f14: 6814 and r0, r5 + 5f16: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5f18: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 5f1a: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 5f1c: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 5f1e: 6c1b mov r0, r6 + 5f20: 310a movi r1, 10 + 5f22: e3ffed59 bsr 0x39d4 // 39d4 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5f26: 7400 zextb r0, r0 + 5f28: 601c addu r0, r7 + 5f2a: 8040 ld.b r2, (r0, 0x0) + 5f2c: 6c4b mov r1, r2 + 5f2e: 6854 and r1, r5 + 5f30: 9862 ld.w r3, (r14, 0x8) + 5f32: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f34: 9860 ld.w r3, (r14, 0x0) + 5f36: 61cc addu r7, r3 + 5f38: 8760 ld.b r3, (r7, 0x0) + 5f3a: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f3c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5f3e: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 5f40: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 5f42: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 5f44: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 5f46: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f48: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 5f4a: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 5f4c: 6d48 or r5, r2 + 5f4e: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 5f50: 081a bt 0x5f84 // 5f84 + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 5f52: 3ba1 bseti r3, 1 + 5f54: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 5f56: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5f58: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 5f5a: a4bb st.b r5, (r4, 0x1b) +} + 5f5c: 1404 addi r14, r14, 16 + 5f5e: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 5f60: 3012 movi r0, 18 + 5f62: 7c10 mult r0, r4 + 5f64: 310a movi r1, 10 + 5f66: 34a0 movi r4, 160 + 5f68: e3ffed00 bsr 0x3968 // 3968 <__divsi3> + 5f6c: 4481 lsli r4, r4, 1 + 5f6e: 6100 addu r4, r0 + 5f70: 310a movi r1, 10 + 5f72: 6c13 mov r0, r4 + 5f74: e3ffecfa bsr 0x3968 // 3968 <__divsi3> + 5f78: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 5f7a: 310a movi r1, 10 + 5f7c: 6c13 mov r0, r4 + 5f7e: e3ffed19 bsr 0x39b0 // 39b0 <__modsi3> + 5f82: 07b3 br 0x5ee8 // 5ee8 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 5f84: 3ba2 bseti r3, 2 + 5f86: 3ba3 bseti r3, 3 + 5f88: 07e7 br 0x5f56 // 5f56 + 5f8a: 0000 bkpt + 5f8c: 20000868 .long 0x20000868 + 5f90: 200005c0 .long 0x200005c0 + 5f94: 0000a452 .long 0x0000a452 + +Disassembly of section .text.Control_Mode: + +00005f98 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 5f98: 14d1 push r4, r15 + switch(mode){ + 5f9a: 3806 cmphsi r0, 7 + 5f9c: 0823 bt 0x5fe2 // 5fe2 + 5f9e: e3ffd6c7 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5fa2: 0007 .short 0x0007 + 5fa4: 005a0020 .long 0x005a0020 + 5fa8: 009a0020 .long 0x009a0020 + 5fac: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 5fb0: 0376 lrw r3, 0x20000868 // 61d4 + 5fb2: 8349 ld.b r2, (r3, 0x9) + 5fb4: 3a40 cmpnei r2, 0 + 5fb6: 0376 lrw r3, 0x200005c0 // 61d8 + 5fb8: 0816 bt 0x5fe4 // 5fe4 + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 5fba: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 5fbc: 830e ld.b r0, (r3, 0xe) + 5fbe: 6811 andn r0, r4 + 5fc0: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5fc2: 830f ld.b r0, (r3, 0xf) + 5fc4: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5fc6: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5fc8: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5fca: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5fcc: 3982 bclri r1, 2 + 5fce: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5fd0: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 5fd2: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 5fd4: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 5fd6: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 5fd8: 39a2 bseti r1, 2 + 5fda: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 5fdc: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 5fde: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 5fe0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 5fe2: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 5fe4: 3a41 cmpnei r2, 1 + 5fe6: 0812 bt 0x600a // 600a + HT1621.show_cache[1] &= ~0x07; + 5fe8: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 5fea: 830e ld.b r0, (r3, 0xe) + 5fec: 6811 andn r0, r4 + 5fee: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 5ff0: 830f ld.b r0, (r3, 0xf) + 5ff2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 5ff4: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 5ff6: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 5ff8: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 5ffa: 3982 bclri r1, 2 + 5ffc: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 5ffe: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 6000: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 6002: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 6004: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 6006: 39a2 bseti r1, 2 + 6008: 07ea br 0x5fdc // 5fdc + else if(Debug_Inf.Language_Selection == 0x02) + 600a: 3a42 cmpnei r2, 2 + 600c: 0812 bt 0x6030 // 6030 + HT1621.show_cache[1] &= ~0x07; + 600e: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 6010: 830e ld.b r0, (r3, 0xe) + 6012: 6811 andn r0, r4 + 6014: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6016: 830f ld.b r0, (r3, 0xf) + 6018: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 601a: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 601c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 601e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 6020: 3982 bclri r1, 2 + 6022: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 6024: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 6026: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 6028: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 602a: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 602c: 39a3 bseti r1, 3 + 602e: 07d7 br 0x5fdc // 5fdc + HT1621.show_cache[0] &= ~0x0C; + 6030: 136a lrw r3, 0x200005c0 // 61d8 + 6032: 834c ld.b r2, (r3, 0xc) + 6034: 3a82 bclri r2, 2 + 6036: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6038: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 603a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 603c: 834d ld.b r2, (r3, 0xd) + 603e: 6885 andn r2, r1 + 6040: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6042: 834e ld.b r2, (r3, 0xe) + 6044: 6885 andn r2, r1 + 6046: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6048: 834f ld.b r2, (r3, 0xf) + 604a: 6885 andn r2, r1 + 604c: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 604e: 8351 ld.b r2, (r3, 0x11) + 6050: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 6052: a351 st.b r2, (r3, 0x11) +} + 6054: 07c7 br 0x5fe2 // 5fe2 + if(Debug_Inf.Language_Selection == 0x00) + 6056: 1360 lrw r3, 0x20000868 // 61d4 + 6058: 8349 ld.b r2, (r3, 0x9) + 605a: 3a40 cmpnei r2, 0 + 605c: 127f lrw r3, 0x200005c0 // 61d8 + 605e: 0816 bt 0x608a // 608a + HT1621.show_cache[1] &= ~0x07; + 6060: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 6062: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 6064: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 6066: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 6068: 3a82 bclri r2, 2 + 606a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 606c: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 606e: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6070: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 6072: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6074: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 6076: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 6078: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 607a: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 607c: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 607e: 39a1 bseti r1, 1 + 6080: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 6082: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 6084: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 6086: a34e st.b r2, (r3, 0xe) + 6088: 07ad br 0x5fe2 // 5fe2 + else if(Debug_Inf.Language_Selection == 0x01) + 608a: 3a41 cmpnei r2, 1 + 608c: 0812 bt 0x60b0 // 60b0 + HT1621.show_cache[1] &= ~0x07; + 608e: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 6090: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 6092: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 6094: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 6096: 3a82 bclri r2, 2 + 6098: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 609a: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 609c: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 609e: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 60a0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 60a2: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 60a4: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 60a6: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 60a8: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 60aa: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 60ac: 39a1 bseti r1, 1 + 60ae: 07ea br 0x6082 // 6082 + else if(Debug_Inf.Language_Selection == 0x02) + 60b0: 3a42 cmpnei r2, 2 + 60b2: 0bbf bt 0x6030 // 6030 + HT1621.show_cache[1] &= ~0x07; + 60b4: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 60b6: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 60b8: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 60ba: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 60bc: 3a82 bclri r2, 2 + 60be: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 60c0: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 60c2: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 60c4: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 60c6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 60c8: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 60ca: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 60cc: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 60ce: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 60d0: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 60d2: 39a2 bseti r1, 2 + 60d4: 07d7 br 0x6082 // 6082 + if(Debug_Inf.Language_Selection == 0x00) + 60d6: 1260 lrw r3, 0x20000868 // 61d4 + 60d8: 8349 ld.b r2, (r3, 0x9) + 60da: 3a40 cmpnei r2, 0 + 60dc: 117f lrw r3, 0x200005c0 // 61d8 + 60de: 0816 bt 0x610a // 610a + HT1621.show_cache[0] &= ~0x0C; + 60e0: 834c ld.b r2, (r3, 0xc) + 60e2: 3a82 bclri r2, 2 + 60e4: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 60e6: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 60e8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 60ea: 834d ld.b r2, (r3, 0xd) + 60ec: 6881 andn r2, r0 + 60ee: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 60f0: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 60f2: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 60f4: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 60f6: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 60f8: 8311 ld.b r0, (r3, 0x11) + 60fa: 3880 bclri r0, 0 + 60fc: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 60fe: 39a1 bseti r1, 1 + 6100: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 6102: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 6104: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 6106: a34f st.b r2, (r3, 0xf) + 6108: 076d br 0x5fe2 // 5fe2 + else if(Debug_Inf.Language_Selection == 0x01) + 610a: 3a41 cmpnei r2, 1 + 610c: 0812 bt 0x6130 // 6130 + HT1621.show_cache[0] &= ~0x0C; + 610e: 834c ld.b r2, (r3, 0xc) + 6110: 3a82 bclri r2, 2 + 6112: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6114: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6116: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6118: 834d ld.b r2, (r3, 0xd) + 611a: 6881 andn r2, r0 + 611c: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 611e: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6120: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 6122: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 6124: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 6126: 8311 ld.b r0, (r3, 0x11) + 6128: 3880 bclri r0, 0 + 612a: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 612c: 39a1 bseti r1, 1 + 612e: 07ea br 0x6102 // 6102 + else if(Debug_Inf.Language_Selection == 0x02) + 6130: 3a42 cmpnei r2, 2 + 6132: 0b7f bt 0x6030 // 6030 + HT1621.show_cache[0] &= ~0x0C; + 6134: 834c ld.b r2, (r3, 0xc) + 6136: 3a82 bclri r2, 2 + 6138: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 613a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 613c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 613e: 834d ld.b r2, (r3, 0xd) + 6140: 6881 andn r2, r0 + 6142: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6144: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6146: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 6148: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 614a: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 614c: 8311 ld.b r0, (r3, 0x11) + 614e: 3880 bclri r0, 0 + 6150: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 6152: 39a2 bseti r1, 2 + 6154: 07d7 br 0x6102 // 6102 + if(Debug_Inf.Language_Selection == 0x00) + 6156: 1160 lrw r3, 0x20000868 // 61d4 + 6158: 8349 ld.b r2, (r3, 0x9) + 615a: 3a40 cmpnei r2, 0 + 615c: 107f lrw r3, 0x200005c0 // 61d8 + 615e: 0815 bt 0x6188 // 6188 + HT1621.show_cache[0] &= ~0x0C; + 6160: 834c ld.b r2, (r3, 0xc) + 6162: 3a82 bclri r2, 2 + 6164: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6166: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6168: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 616a: 834d ld.b r2, (r3, 0xd) + 616c: 6881 andn r2, r0 + 616e: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6170: 834e ld.b r2, (r3, 0xe) + 6172: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 6174: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 6176: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6178: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 617a: 8351 ld.b r2, (r3, 0x11) + 617c: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 617e: 39a1 bseti r1, 1 + 6180: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 6182: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 6184: 3aa0 bseti r2, 0 + 6186: 0766 br 0x6052 // 6052 + else if(Debug_Inf.Language_Selection == 0x01) + 6188: 3a41 cmpnei r2, 1 + 618a: 0812 bt 0x61ae // 61ae + HT1621.show_cache[0] &= ~0x0C; + 618c: 834c ld.b r2, (r3, 0xc) + 618e: 3a82 bclri r2, 2 + 6190: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6192: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6194: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6196: 834d ld.b r2, (r3, 0xd) + 6198: 6881 andn r2, r0 + 619a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 619c: 834e ld.b r2, (r3, 0xe) + 619e: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 61a0: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 61a2: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 61a4: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 61a6: 8351 ld.b r2, (r3, 0x11) + 61a8: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 61aa: 39a1 bseti r1, 1 + 61ac: 07eb br 0x6182 // 6182 + else if(Debug_Inf.Language_Selection == 0x02) + 61ae: 3a42 cmpnei r2, 2 + 61b0: 0b40 bt 0x6030 // 6030 + HT1621.show_cache[0] &= ~0x0C; + 61b2: 834c ld.b r2, (r3, 0xc) + 61b4: 3a82 bclri r2, 2 + 61b6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 61b8: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 61ba: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 61bc: 834d ld.b r2, (r3, 0xd) + 61be: 6881 andn r2, r0 + 61c0: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 61c2: 834e ld.b r2, (r3, 0xe) + 61c4: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 61c6: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 61c8: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 61ca: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 61cc: 8351 ld.b r2, (r3, 0x11) + 61ce: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 61d0: 39a2 bseti r1, 2 + 61d2: 07d8 br 0x6182 // 6182 + 61d4: 20000868 .long 0x20000868 + 61d8: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_wind_velocity: + +000061dc : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 61dc: 14d2 push r4-r5, r15 + switch(velocity) + 61de: 3804 cmphsi r0, 5 + 61e0: 0815 bt 0x620a // 620a + 61e2: 1172 lrw r3, 0x200005c0 // 62a8 + 61e4: e3ffd58c bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 61e8: 33201203 .long 0x33201203 + 61ec: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 61ee: 8351 ld.b r2, (r3, 0x11) + 61f0: 310e movi r1, 14 + 61f2: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 61f4: 300f movi r0, 15 + 61f6: 8330 ld.b r1, (r3, 0x10) + 61f8: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 61fa: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 61fc: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 61fe: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 6200: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 6202: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 6204: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 6206: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 6208: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 620a: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 620c: 310e movi r1, 14 + 620e: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6210: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 6212: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 6214: 8330 ld.b r1, (r3, 0x10) + 6216: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 6218: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 621a: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 621c: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 621e: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6220: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 6222: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 6224: 3aa3 bseti r2, 3 + 6226: 07f1 br 0x6208 // 6208 + HT1621.show_cache[5] &= ~0x0E; + 6228: 310e movi r1, 14 + 622a: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 622c: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 622e: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 6230: 8330 ld.b r1, (r3, 0x10) + 6232: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 6234: 300e movi r0, 14 + 6236: 07f2 br 0x621a // 621a + HT1621.show_cache[4] &= ~0x0F; + 6238: 8350 ld.b r2, (r3, 0x10) + 623a: 310f movi r1, 15 + 623c: 6885 andn r2, r1 + 623e: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 6240: 310e movi r1, 14 + 6242: 8351 ld.b r2, (r3, 0x11) + 6244: 6885 andn r2, r1 + 6246: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 6248: 834f ld.b r2, (r3, 0xf) + 624a: 3a83 bclri r2, 3 + 624c: 07de br 0x6208 // 6208 + HT1621.show_cache[4] &= ~0x0F; + 624e: 8330 ld.b r1, (r3, 0x10) + 6250: 320f movi r2, 15 + 6252: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 6254: 300e movi r0, 14 + 6256: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6258: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 625a: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 625c: 3408 movi r4, 8 + 625e: 6c17 mov r0, r5 + 6260: 6c10 or r0, r4 + 6262: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 6264: 6c07 mov r0, r1 + 6266: 38a0 bseti r0, 0 + 6268: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 626a: 8303 ld.b r0, (r3, 0x3) + 626c: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 626e: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 6270: 0804 bt 0x6278 // 6278 + HT1621.show_cache[3] &= ~0x08; + 6272: 3d83 bclri r5, 3 + 6274: a3af st.b r5, (r3, 0xf) + 6276: 07ca br 0x620a // 620a + }else if(HT1621.wind_velocity == 0) //低风速 + 6278: 3840 cmpnei r0, 0 + 627a: 0807 bt 0x6288 // 6288 + HT1621.show_cache[4] |= 0x08; + 627c: 39a0 bseti r1, 0 + 627e: 39a3 bseti r1, 3 + 6280: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 6282: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 6284: a351 st.b r2, (r3, 0x11) +} + 6286: 07c2 br 0x620a // 620a + }else if(HT1621.wind_velocity == 1) //中风速 + 6288: 3841 cmpnei r0, 1 + 628a: 0807 bt 0x6298 // 6298 + HT1621.show_cache[4] |= 0x0C; + 628c: 300d movi r0, 13 + 628e: 6c40 or r1, r0 + 6290: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 6292: 3aa2 bseti r2, 2 + 6294: 3aa3 bseti r2, 3 + 6296: 07f7 br 0x6284 // 6284 + }else if(HT1621.wind_velocity == 2) //高风速 + 6298: 3842 cmpnei r0, 2 + 629a: 0bb8 bt 0x620a // 620a + HT1621.show_cache[4] |= 0x0E; + 629c: 300f movi r0, 15 + 629e: 6c40 or r1, r0 + 62a0: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 62a2: 310e movi r1, 14 + 62a4: 6c84 or r2, r1 + 62a6: 07ef br 0x6284 // 6284 + 62a8: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_Prompt_Text: + +000062ac : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 62ac: 14c4 push r4-r7 + 62ae: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 62b0: 1167 lrw r3, 0x200005c0 // 634c + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 62b2: 83d6 ld.b r6, (r3, 0x16) + 62b4: 3e80 bclri r6, 0 + 62b6: 7598 zextb r6, r6 + 62b8: b8c0 st.w r6, (r14, 0x0) + 62ba: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 62be: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 62c0: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 62c2: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 62c4: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 62c6: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 62c8: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 62ca: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 62cc: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 62ce: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 62d0: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 62d2: 3a80 bclri r2, 0 + 62d4: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 62d6: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 62d8: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 62da: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 62dc: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 62de: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 62e0: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 62e2: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 62e4: 7598 zextb r6, r6 + + if(state == 0x00) + 62e6: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 62e8: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 62ea: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 62ec: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 62ee: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 62f0: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 62f2: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 62f4: 0814 bt 0x631c // 631c + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 62f6: 3008 movi r0, 8 + 62f8: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 62fa: 3aa0 bseti r2, 0 + 62fc: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 62fe: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 6300: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 6302: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6304: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 6306: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 6308: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 630a: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 630c: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 630e: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6310: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 6312: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 6314: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 6316: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 6318: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 631a: 040b br 0x6330 // 6330 + else if(state == 0x01){ + 631c: 3841 cmpnei r0, 1 + 631e: 080b bt 0x6334 // 6334 + HT1621.show_cache[0] |= 0x01; //模式 + 6320: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 6322: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 6324: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 6326: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 6328: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 632a: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 632c: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 632e: a33f st.b r1, (r3, 0x1f) +} + 6330: 1401 addi r14, r14, 4 + 6332: 1484 pop r4-r7 + }else if(state == 0x02){ + 6334: 3842 cmpnei r0, 2 + 6336: 0bfd bt 0x6330 // 6330 + HT1621.show_cache[0] |= 0x02; //模式 + 6338: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 633a: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 633c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 633e: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 6340: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6342: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 6344: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 6346: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 6348: 6d84 or r6, r1 + 634a: 07e7 br 0x6318 // 6318 + 634c: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Controlled_Buzzer: + +00006350 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 6350: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 6352: 3841 cmpnei r0, 1 + 6354: 0c0a bf 0x6368 // 6368 + 6356: 3840 cmpnei r0, 0 + 6358: 0c04 bf 0x6360 // 6360 + 635a: 3842 cmpnei r0, 2 + 635c: 0c12 bf 0x6380 // 6380 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 635e: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 6360: 3010 movi r0, 16 + 6362: e3fffc6b bsr 0x5c38 // 5c38 + break; + 6366: 07fc br 0x635e // 635e + HT1621_WR_CMD(HT1621_BLON); + 6368: 3012 movi r0, 18 + 636a: e3fffc67 bsr 0x5c38 // 5c38 + HT1621.buz_control = 0x01; + 636e: 1069 lrw r3, 0x200005c0 // 6390 + 6370: 3220 movi r2, 32 + 6372: 608c addu r2, r3 + 6374: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 6376: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 6378: 1047 lrw r2, 0x200000c0 // 6394 + 637a: 9240 ld.w r2, (r2, 0x0) + 637c: b34e st.w r2, (r3, 0x38) +} + 637e: 07f0 br 0x635e // 635e + HT1621_WR_CMD(HT1621_BLON); + 6380: 3012 movi r0, 18 + 6382: e3fffc5b bsr 0x5c38 // 5c38 + HT1621.buz_control = 0x02; + 6386: 1063 lrw r3, 0x200005c0 // 6390 + 6388: 3220 movi r2, 32 + 638a: 608c addu r2, r3 + 638c: 3102 movi r1, 2 + 638e: 07f4 br 0x6376 // 6376 + 6390: 200005c0 .long 0x200005c0 + 6394: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00006398 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 6398: 14d0 push r15 + switch (state) { + 639a: 3840 cmpnei r0, 0 + 639c: 0c04 bf 0x63a4 // 63a4 + 639e: 3841 cmpnei r0, 1 + 63a0: 0c16 bf 0x63cc // 63cc + + } + break; + + } +} + 63a2: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 63a4: 1172 lrw r3, 0x200001a0 // 646c + 63a6: 8359 ld.b r2, (r3, 0x19) + 63a8: 3a41 cmpnei r2, 1 + 63aa: 0bfc bt 0x63a2 // 63a2 + tm1812_param.LCD_blaklingt_flag = 0x00; + 63ac: 3200 movi r2, 0 + 63ae: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 63b0: 3100 movi r1, 0 + 63b2: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 63b4: e3fffb6c bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 63b8: 3100 movi r1, 0 + 63ba: 3001 movi r0, 1 + 63bc: e3fffb68 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 63c0: 3100 movi r1, 0 + 63c2: 3002 movi r0, 2 + 63c4: e3fffb64 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 63c8: 3100 movi r1, 0 + 63ca: 0437 br 0x6438 // 6438 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 63cc: 1128 lrw r1, 0x200001a0 // 646c + 63ce: 8179 ld.b r3, (r1, 0x19) + 63d0: 3b40 cmpnei r3, 0 + 63d2: 0be8 bt 0x63a2 // 63a2 + tm1812_param.LCD_blaklingt_flag = 0x01; + 63d4: 3301 movi r3, 1 + 63d6: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 63d8: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 63da: 1166 lrw r3, 0x2000083c // 6470 + 63dc: 8362 ld.b r3, (r3, 0x2) + 63de: 4379 lsli r3, r3, 25 + 63e0: 4b7d lsri r3, r3, 29 + 63e2: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 63e4: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 63e6: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 63e8: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 63ea: 0c1c bf 0x6422 // 6422 + 63ec: 3a44 cmpnei r2, 4 + 63ee: 0c2a bf 0x6442 // 6442 + 63f0: 3a40 cmpnei r2, 0 + 63f2: 0be1 bt 0x63b4 // 63b4 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 63f4: e3fffb4c bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 63f8: 31ff movi r1, 255 + 63fa: 3001 movi r0, 1 + 63fc: e3fffb48 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6400: 3100 movi r1, 0 + 6402: 3002 movi r0, 2 + 6404: e3fffb44 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6408: 3100 movi r1, 0 + 640a: 3003 movi r0, 3 + 640c: e3fffb40 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6410: 3100 movi r1, 0 + 6412: 3004 movi r0, 4 + 6414: e3fffb3c bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 6418: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 641a: 3005 movi r0, 5 + 641c: e3fffb38 bsr 0x5a8c // 5a8c +} + 6420: 07c1 br 0x63a2 // 63a2 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 6422: e3fffb35 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 6426: 31ff movi r1, 255 + 6428: 3001 movi r0, 1 + 642a: e3fffb31 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 642e: 3100 movi r1, 0 + 6430: 3002 movi r0, 2 + 6432: e3fffb2d bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 6436: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6438: 3003 movi r0, 3 + 643a: e3fffb29 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 643e: 3100 movi r1, 0 + 6440: 0410 br 0x6460 // 6460 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 6442: e3fffb25 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 6446: 31ff movi r1, 255 + 6448: 3001 movi r0, 1 + 644a: e3fffb21 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 644e: 3100 movi r1, 0 + 6450: 3002 movi r0, 2 + 6452: e3fffb1d bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6456: 3100 movi r1, 0 + 6458: 3003 movi r0, 3 + 645a: e3fffb19 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 645e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6460: 3004 movi r0, 4 + 6462: e3fffb15 bsr 0x5a8c // 5a8c + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 6466: 3100 movi r1, 0 + 6468: 07d9 br 0x641a // 641a + 646a: 0000 bkpt + 646c: 200001a0 .long 0x200001a0 + 6470: 2000083c .long 0x2000083c + +Disassembly of section .text.Controlled_Key_Backlight: + +00006474 : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 6474: 14d0 push r15 + switch(state){ + 6476: 3840 cmpnei r0, 0 + 6478: 0c04 bf 0x6480 // 6480 + 647a: 3841 cmpnei r0, 1 + 647c: 0c0b bf 0x6492 // 6492 + + } + + break; + } +} + 647e: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 6480: 1068 lrw r3, 0x200005a4 // 64a0 + 6482: 836a ld.b r3, (r3, 0xa) + 6484: 3b42 cmpnei r3, 2 + 6486: 0ffc bf 0x647e // 647e + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 6488: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 648a: 3005 movi r0, 5 + 648c: e3fff7c2 bsr 0x5410 // 5410 +} + 6490: 07f7 br 0x647e // 647e + if(g_switch.light_state[T_Backlight] != Control_ON) + 6492: 1064 lrw r3, 0x200005a4 // 64a0 + 6494: 836a ld.b r3, (r3, 0xa) + 6496: 3b41 cmpnei r3, 1 + 6498: 0ff3 bf 0x647e // 647e + Contol_Switch_Light_2(T_Backlight,Control_ON); + 649a: 3101 movi r1, 1 + 649c: 07f7 br 0x648a // 648a + 649e: 0000 bkpt + 64a0: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Set_Device_ADDR: + +000064a4 : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 64a4: 14d4 push r4-r7, r15 + 64a6: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64a8: 11c4 lrw r6, 0xa452 // 6538 + 64aa: 6018 addu r0, r6 + 64ac: 1184 lrw r4, 0x200005c0 // 653c +void Set_Device_ADDR(U8_T page, U8_T addr){ + 64ae: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64b0: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 64b2: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64b4: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 64b6: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64b8: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 64ba: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64bc: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 64be: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64c0: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 64c2: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 64c4: 843b ld.b r1, (r4, 0x1b) + 64c6: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 64c8: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 64ca: 845d ld.b r2, (r4, 0x1d) + 64cc: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 64ce: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 64d0: 6c1f mov r0, r7 + 64d2: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 64d4: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 64d6: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 64d8: e3ffea5a bsr 0x398c // 398c <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 64dc: 7400 zextb r0, r0 + 64de: 6018 addu r0, r6 + 64e0: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 64e2: 9861 ld.w r3, (r14, 0x4) + 64e4: 841f ld.b r0, (r4, 0x1f) + 64e6: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 64e8: 6c07 mov r0, r1 + 64ea: 6814 and r0, r5 + 64ec: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 64ee: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 64f0: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 64f2: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 64f4: 6c1f mov r0, r7 + 64f6: 310a movi r1, 10 + 64f8: e3ffea4a bsr 0x398c // 398c <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 64fc: 7400 zextb r0, r0 + 64fe: 310a movi r1, 10 + 6500: e3ffea6a bsr 0x39d4 // 39d4 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 6504: 7400 zextb r0, r0 + 6506: 6018 addu r0, r6 + 6508: 8060 ld.b r3, (r0, 0x0) + 650a: 6c4f mov r1, r3 + 650c: 6854 and r1, r5 + 650e: 9842 ld.w r2, (r14, 0x8) + 6510: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 6512: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 6514: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 6516: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 6518: 310a movi r1, 10 + 651a: 6c1f mov r0, r7 + 651c: e3ffea5c bsr 0x39d4 // 39d4 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6520: 7400 zextb r0, r0 + 6522: 6180 addu r6, r0 + 6524: 8660 ld.b r3, (r6, 0x0) + 6526: 694c and r5, r3 + 6528: 9840 ld.w r2, (r14, 0x0) + 652a: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 652c: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 652e: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6530: a47a st.b r3, (r4, 0x1a) +} + 6532: 1403 addi r14, r14, 12 + 6534: 1494 pop r4-r7, r15 + 6536: 0000 bkpt + 6538: 0000a452 .long 0x0000a452 + 653c: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temp_Difference: + +00006540 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6540: 1057 lrw r2, 0x200005c0 // 659c + HT1621.show_cache[10] &= 0x01; + 6542: 3101 movi r1, 1 + 6544: 8276 ld.b r3, (r2, 0x16) + 6546: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6548: 3ba1 bseti r3, 1 + 654a: 3ba2 bseti r3, 2 + 654c: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 654e: 330d movi r3, 13 + 6550: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 6552: 827f ld.b r3, (r2, 0x1f) + 6554: 68c4 and r3, r1 + 6556: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 6558: 3300 movi r3, 0 + 655a: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 655c: 827d ld.b r3, (r2, 0x1d) + 655e: 68c4 and r3, r1 + 6560: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 6562: 3300 movi r3, 0 + 6564: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 6566: 827b ld.b r3, (r2, 0x1b) + 6568: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 656a: 3300 movi r3, 0 + 656c: 2b08 subi r3, 9 + 656e: 60c0 addu r3, r0 + 6570: 74cc zextb r3, r3 + 6572: 3b09 cmphsi r3, 10 + 6574: 0c08 bf 0x6584 // 6584 + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 6576: 3808 cmphsi r0, 9 + 6578: 0810 bt 0x6598 // 6598 + tmp_quantile = 9 - diff; + 657a: 3309 movi r3, 9 + 657c: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 657e: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 6580: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 6582: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6584: 1007 lrw r0, 0xa452 // 65a0 + 6586: 60c0 addu r3, r0 + 6588: 8360 ld.b r3, (r3, 0x0) + 658a: 4b04 lsri r0, r3, 4 + 658c: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 658e: 300f movi r0, 15 + 6590: 68c0 and r3, r0 + 6592: 6c4c or r1, r3 + 6594: a23b st.b r1, (r2, 0x1b) +} + 6596: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 6598: 3300 movi r3, 0 + 659a: 07f5 br 0x6584 // 6584 + 659c: 200005c0 .long 0x200005c0 + 65a0: 0000a452 .long 0x0000a452 + +Disassembly of section .text.HT1621_Refresh_Task: + +000065a4 : + + +void HT1621_Refresh_Task(void){ + 65a4: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 65a6: 109e lrw r4, 0x200000c0 // 661c + 65a8: 10be lrw r5, 0x200005c0 // 6620 + 65aa: 9460 ld.w r3, (r4, 0x0) + 65ac: 954c ld.w r2, (r5, 0x30) + 65ae: 60ca subu r3, r2 + 65b0: 105d lrw r2, 0x1f3 // 6624 + 65b2: 64c8 cmphs r2, r3 + 65b4: 0806 bt 0x65c0 // 65c0 + HT1621.Refresh_timing = HT1621_Refresh_time; + 65b6: 33fa movi r3, 250 + 65b8: 4361 lsli r3, r3, 1 + 65ba: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 65bc: e3fffbf8 bsr 0x5dac // 5dac +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 65c0: 107a lrw r3, 0x200005e0 // 6628 + 65c2: 8344 ld.b r2, (r3, 0x4) + 65c4: 3a41 cmpnei r2, 1 + 65c6: 0824 bt 0x660e // 660e + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 65c8: 952e ld.w r1, (r5, 0x38) + 65ca: 9440 ld.w r2, (r4, 0x0) + 65cc: 6086 subu r2, r1 + 65ce: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 65d0: 6484 cmphs r1, r2 + 65d2: 0808 bt 0x65e2 // 65e2 + HT1621.buz_tick = SysTick_1ms; + 65d4: 9440 ld.w r2, (r4, 0x0) + 65d6: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 65d8: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 65da: 3200 movi r2, 0 + 65dc: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 65de: e3fffb2d bsr 0x5c38 // 5c38 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 65e2: 1053 lrw r2, 0x2000083c // 662c + 65e4: 8202 ld.b r0, (r2, 0x2) + 65e6: 1033 lrw r1, 0x200001a0 // 6630 + 65e8: 4079 lsli r3, r0, 25 + 65ea: 81ba ld.b r5, (r1, 0x1a) + 65ec: 4b7d lsri r3, r3, 29 + 65ee: 64d6 cmpne r5, r3 + 65f0: 0c0e bf 0x660c // 660c + TempCtrl.BackLightTick = SysTick_1ms; + 65f2: 9460 ld.w r3, (r4, 0x0) + 65f4: 4b88 lsri r4, r3, 8 + 65f6: a270 st.b r3, (r2, 0x10) + 65f8: a291 st.b r4, (r2, 0x11) + 65fa: 4b90 lsri r4, r3, 16 + 65fc: 4b78 lsri r3, r3, 24 + 65fe: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6600: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 6602: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 6604: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 6606: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6608: e3fffec8 bsr 0x6398 // 6398 + } + +} + 660c: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 660e: 3a42 cmpnei r2, 2 + 6610: 0be9 bt 0x65e2 // 65e2 + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 6612: 952e ld.w r1, (r5, 0x38) + 6614: 9440 ld.w r2, (r4, 0x0) + 6616: 6086 subu r2, r1 + 6618: 1023 lrw r1, 0x1f3 // 6624 + 661a: 07db br 0x65d0 // 65d0 + 661c: 200000c0 .long 0x200000c0 + 6620: 200005c0 .long 0x200005c0 + 6624: 000001f3 .long 0x000001f3 + 6628: 200005e0 .long 0x200005e0 + 662c: 2000083c .long 0x2000083c + 6630: 200001a0 .long 0x200001a0 + +Disassembly of section .text.Boot_Function_Init: + +00006634 : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 6634: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 6636: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 6638: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 663a: 4241 lsli r2, r2, 1 + 663c: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 663e: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 6640: 1010 lrw r0, 0x20000600 // 6680 + 6642: e3ffd9ad bsr 0x199c // 199c <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 6646: 6c97 mov r2, r5 + 6648: 3100 movi r1, 0 + 664a: 100f lrw r0, 0x2000073c // 6684 + 664c: e3ffd9a8 bsr 0x199c // 199c <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 6650: 33fa movi r3, 250 + 6652: 4362 lsli r3, r3, 2 + 6654: 108d lrw r4, 0x20000700 // 6688 + 6656: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 6658: e3fff3aa bsr 0x4dac // 4dac +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 665c: 106c lrw r3, 0x2000005c // 668c + 665e: 9360 ld.w r3, (r3, 0x0) + 6660: 23ff addi r3, 256 + 6662: 9363 ld.w r3, (r3, 0xc) + 6664: 74cd zexth r3, r3 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 6666: 654e cmpne r3, r5 + 6668: 0804 bt 0x6670 // 6670 + { + g_boot.bootTimeout = 5000; + 666a: 106a lrw r3, 0x1388 // 6690 +#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; + 666c: b46d st.w r3, (r4, 0x34) +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 666e: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 6670: 3b41 cmpnei r3, 1 + g_boot.bootTimeout = 500; + 6672: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 6674: 0803 bt 0x667a // 667a + g_boot.bootTimeout = 500; + 6676: 4361 lsli r3, r3, 1 + 6678: 07fa br 0x666c // 666c + g_boot.bootTimeout = 2000; + 667a: 4363 lsli r3, r3, 3 + 667c: 07f8 br 0x666c // 666c + 667e: 0000 bkpt + 6680: 20000600 .long 0x20000600 + 6684: 2000073c .long 0x2000073c + 6688: 20000700 .long 0x20000700 + 668c: 2000005c .long 0x2000005c + 6690: 00001388 .long 0x00001388 + +Disassembly of section .text.Boot_Comm_CheckSum: + +00006694 : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 6694: 14c1 push r4 + U8_T sum = 0; + 6696: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 6698: 1047 lrw r2, 0xffff // 66b4 + 669a: 2900 subi r1, 1 + 669c: 7445 zexth r1, r1 + 669e: 6486 cmpne r1, r2 + 66a0: 0804 bt 0x66a8 // 66a8 + { + sum += buffer[i]; + i++; + } + return (~sum); + 66a2: 6cce nor r3, r3 + 66a4: 740c zextb r0, r3 +} + 66a6: 1481 pop r4 + sum += buffer[i]; + 66a8: 8080 ld.b r4, (r0, 0x0) + 66aa: 60d0 addu r3, r4 + 66ac: 74cc zextb r3, r3 + 66ae: 2000 addi r0, 1 + 66b0: 07f5 br 0x669a // 669a + 66b2: 0000 bkpt + 66b4: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +000066b8 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 66b8: 14d4 push r4-r7, r15 + 66ba: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 66bc: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 66be: 1074 lrw r3, 0x2000052c // 670c + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 66c0: 47e1 lsli r7, r7, 1 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 66c2: 8340 ld.b r2, (r3, 0x0) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 66c4: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 66c6: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 66c8: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 66ca: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 66cc: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 66ce: 1071 lrw r3, 0x20000600 // 6710 + 66d0: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 66d2: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 66d4: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 66d6: 8062 ld.b r3, (r0, 0x2) + 66d8: 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; + 66da: 4d68 lsri r3, r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 66dc: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 66de: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 66e0: 8041 ld.b r2, (r0, 0x1) + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 66e2: 3300 movi r3, 0 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 66e4: 58ce addi r6, r0, 4 +{ + 66e6: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 66e8: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 66ea: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 66ec: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 66ee: 6c57 mov r1, r5 + 66f0: 6c1b mov r0, r6 + 66f2: e3ffffd1 bsr 0x6694 // 6694 + 66f6: a40a st.b r0, (r4, 0xa) +#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); + 66f8: 3264 movi r2, 100 + 66fa: 8f79 ld.h r3, (r7, 0x32) + 66fc: 6c57 mov r1, r5 + 66fe: b840 st.w r2, (r14, 0x0) + 6700: 6c1b mov r0, r6 + 6702: 3201 movi r2, 1 + 6704: e3ffeb08 bsr 0x3d14 // 3d14 + + //ack_uart->ackLen = 0x00; +} + 6708: 1401 addi r14, r14, 4 + 670a: 1494 pop r4-r7, r15 + 670c: 2000052c .long 0x2000052c + 6710: 20000600 .long 0x20000600 + +Disassembly of section .text.Boot_Time_Refresh: + +00006714 : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + 6714: 1063 lrw r3, 0x200000c0 // 6720 + 6716: 9340 ld.w r2, (r3, 0x0) + 6718: 1063 lrw r3, 0x20000700 // 6724 + 671a: b34e st.w r2, (r3, 0x38) +} + 671c: 783c jmp r15 + 671e: 0000 bkpt + 6720: 200000c0 .long 0x200000c0 + 6724: 20000700 .long 0x20000700 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +00006728 : +{ + 6728: 14d4 push r4-r7, r15 + 672a: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + 672c: 8065 ld.b r3, (r0, 0x5) + 672e: 8044 ld.b r2, (r0, 0x4) + 6730: 4368 lsli r3, r3, 8 + 6732: 6cc8 or r3, r2 + if(len != data_len) { + 6734: 644e cmpne r3, r1 +{ + 6736: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + 6738: b860 st.w r3, (r14, 0x0) + if(len != data_len) { + 673a: 08aa bt 0x688e // 688e + if(Boot_Comm_CheckSum(data,len) != 0) { + 673c: 6c4f mov r1, r3 + 673e: e3ffffab bsr 0x6694 // 6694 + 6742: 3840 cmpnei r0, 0 + 6744: 6cc3 mov r3, r0 + 6746: 08a6 bt 0x6892 // 6892 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 6748: 8541 ld.b r2, (r5, 0x1) + 674a: 744a sextb r1, r2 + 674c: 39df btsti r1, 31 + 674e: 1295 lrw r4, 0x20000600 // 68a0 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6750: 8401 ld.b r0, (r4, 0x1) + 6752: 310f movi r1, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 6754: 0c2d bf 0x67ae // 67ae + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6756: 6884 and r2, r1 + 6758: 6482 cmpne r0, r2 + 675a: 60cd addc r3, r3 + deal_flag = 0x00; + 675c: 740c zextb r0, r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 675e: 3700 movi r7, 0 + group_flag = 0x01; + 6760: 3301 movi r3, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + 6762: 12d1 lrw r6, 0x2000052c // 68a4 + 6764: 8542 ld.b r2, (r5, 0x2) + 6766: 8621 ld.b r1, (r6, 0x1) + 6768: 6486 cmpne r1, r2 + 676a: 0c04 bf 0x6772 // 6772 + 676c: 31ff movi r1, 255 + 676e: 644a cmpne r2, r1 + 6770: 0893 bt 0x6896 // 6896 + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + 6772: 8543 ld.b r2, (r5, 0x3) + 6774: 8620 ld.b r1, (r6, 0x0) + 6776: 6486 cmpne r1, r2 + 6778: 0c04 bf 0x6780 // 6780 + 677a: 31ff movi r1, 255 + 677c: 644a cmpne r2, r1 + 677e: 088e bt 0x689a // 689a + 6780: b862 st.w r3, (r14, 0x8) + 6782: b801 st.w r0, (r14, 0x4) + Boot_Time_Refresh(); + 6784: e3ffffc8 bsr 0x6714 // 6714 + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + 6788: 8560 ld.b r3, (r5, 0x0) + 678a: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + 678c: 8541 ld.b r2, (r5, 0x1) + 678e: 310f movi r1, 15 + 6790: 6884 and r2, r1 + 6792: a441 st.b r2, (r4, 0x1) + switch(g_boot.cmd){ + 6794: 31c0 movi r1, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 6796: 8547 ld.b r2, (r5, 0x7) + switch(g_boot.cmd){ + 6798: 644a cmpne r2, r1 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 679a: a442 st.b r2, (r4, 0x2) + switch(g_boot.cmd){ + 679c: 9801 ld.w r0, (r14, 0x4) + 679e: 9862 ld.w r3, (r14, 0x8) + 67a0: 0c1a bf 0x67d4 // 67d4 + 67a2: 31c1 movi r1, 193 + 67a4: 644a cmpne r2, r1 + 67a6: 0c62 bf 0x686a // 686a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 67a8: 3201 movi r2, 1 + 67aa: a44c st.b r2, (r4, 0xc) + 67ac: 046a br 0x6880 // 6880 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 67ae: 6848 and r1, r2 + 67b0: 6442 cmpne r0, r1 + 67b2: 080c bt 0x67ca // 67ca + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + 67b4: 3140 movi r1, 64 + 67b6: 6884 and r2, r1 + 67b8: 3a40 cmpnei r2, 0 + 67ba: 0c0b bf 0x67d0 // 67d0 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + 67bc: 8527 ld.b r1, (r5, 0x7) + 67be: 844b ld.b r2, (r4, 0xb) + 67c0: 6486 cmpne r1, r2 + 67c2: 65c3 mvcv r7 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 67c4: 75dc zextb r7, r7 + 67c6: 3000 movi r0, 0 + 67c8: 07cd br 0x6762 // 6762 + reply_flag = 0x01; + 67ca: 3701 movi r7, 1 + deal_flag = 0x01; + 67cc: 3001 movi r0, 1 + 67ce: 07ca br 0x6762 // 6762 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 67d0: 3700 movi r7, 0 + 67d2: 07fa br 0x67c6 // 67c6 + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + 67d4: 3841 cmpnei r0, 1 + 67d6: 0819 bt 0x6808 // 6808 + 67d8: 9840 ld.w r2, (r14, 0x0) + 67da: 3a0b cmphsi r2, 12 + 67dc: 0c16 bf 0x6808 // 6808 + temp_data |= data[BCOMM_FMT_PARAM]; + 67de: 8529 ld.b r1, (r5, 0x9) + 67e0: 8548 ld.b r2, (r5, 0x8) + 67e2: 4128 lsli r1, r1, 8 + 67e4: 6c48 or r1, r2 + if(temp_data != g_boot.bootTimeout){ + 67e6: 1151 lrw r2, 0x20000700 // 68a8 + 67e8: 920d ld.w r0, (r2, 0x34) + 67ea: 6406 cmpne r1, r0 + 67ec: 0c09 bf 0x67fe // 67fe + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 67ee: 3909 cmphsi r1, 10 + 67f0: 0c3b bf 0x6866 // 6866 + 67f2: b22d st.w r1, (r2, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + 67f4: 30fa movi r0, 250 + 67f6: 922d ld.w r1, (r2, 0x34) + 67f8: 4002 lsli r0, r0, 2 + 67fa: 7c40 mult r1, r0 + 67fc: b22d st.w r1, (r2, 0x34) + 67fe: 852b ld.b r1, (r5, 0xb) + 6800: 850a ld.b r0, (r5, 0xa) + 6802: 4128 lsli r1, r1, 8 + 6804: 6c40 or r1, r0 + g_boot.ackValidity = temp_data; + 6806: aa39 st.h r1, (r2, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + 6808: 3f41 cmpnei r7, 1 + 680a: 082c bt 0x6862 // 6862 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + 680c: 3202 movi r2, 2 + 680e: a44c st.b r2, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + 6810: 8642 ld.b r2, (r6, 0x2) + 6812: a44d st.b r2, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + 6814: 8643 ld.b r2, (r6, 0x3) + 6816: a44e st.b r2, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + 6818: 3203 movi r2, 3 + 681a: a44f st.b r2, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + 681c: 1144 lrw r2, 0x2000005c // 68ac + 681e: 9240 ld.w r2, (r2, 0x0) + 6820: 227f addi r2, 128 + 6822: 9239 ld.w r1, (r2, 0x64) + 6824: a430 st.b r1, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + 6826: 923a ld.w r1, (r2, 0x68) + 6828: a431 st.b r1, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + 682a: 925b ld.w r2, (r2, 0x6c) + 682c: a452 st.b r2, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + 682e: 8624 ld.b r1, (r6, 0x4) + 6830: 3220 movi r2, 32 + 6832: 6448 cmphs r2, r1 + 6834: 0802 bt 0x6838 // 6838 + 6836: a644 st.b r2, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + 6838: 8644 ld.b r2, (r6, 0x4) + 683a: a453 st.b r2, (r4, 0x13) + 683c: 3220 movi r2, 32 + 683e: 101a lrw r0, 0x2000052c // 68a4 + 6840: 1038 lrw r1, 0x20000600 // 68a0 + 6842: 2a00 subi r2, 1 + 6844: 7488 zextb r2, r2 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + 6846: 8085 ld.b r4, (r0, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + 6852: 1056 lrw r2, 0x20000700 // 68a8 + 6854: 3128 movi r1, 40 + 6856: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 6858: 3b40 cmpnei r3, 0 + 685a: 0804 bt 0x6862 // 6862 + Boot_Comm_FillReplyPack(&g_boot); + 685c: 1011 lrw r0, 0x20000600 // 68a0 + 685e: e3ffff2d bsr 0x66b8 // 66b8 +} + 6862: 1403 addi r14, r14, 12 + 6864: 1494 pop r4-r7, r15 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 6866: 310a movi r1, 10 + 6868: 07c5 br 0x67f2 // 67f2 + if(deal_flag != 0x01) break; //不处理直接退出 + 686a: 3841 cmpnei r0, 1 + 686c: 080d bt 0x6886 // 6886 + if(data[BCOMM_FMT_PARAM] == 0x01){ + 686e: 8548 ld.b r2, (r5, 0x8) + 6870: 3a41 cmpnei r2, 1 + 6872: 0b9b bt 0x67a8 // 67a8 + 6874: b860 st.w r3, (r14, 0x0) + BUS485_Jump_Boot(0x01); + 6876: e3ffea89 bsr 0x3d88 // 3d88 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + 687a: 3300 movi r3, 0 + 687c: a46c st.b r3, (r4, 0xc) + 687e: 9860 ld.w r3, (r14, 0x0) + g_boot.ackLen = 1; + 6880: 104a lrw r2, 0x20000700 // 68a8 + 6882: 3101 movi r1, 1 + 6884: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 6886: 3b40 cmpnei r3, 0 + 6888: 0bed bt 0x6862 // 6862 + 688a: 3f41 cmpnei r7, 1 + 688c: 07e7 br 0x685a // 685a + return 0x01; + 688e: 3001 movi r0, 1 + 6890: 07e9 br 0x6862 // 6862 + return 0x02; + 6892: 3002 movi r0, 2 + 6894: 07e7 br 0x6862 // 6862 + return 0x03; + 6896: 3003 movi r0, 3 + 6898: 07e5 br 0x6862 // 6862 + return 0x04; + 689a: 3004 movi r0, 4 + 689c: 07e3 br 0x6862 // 6862 + 689e: 0000 bkpt + 68a0: 20000600 .long 0x20000600 + 68a4: 2000052c .long 0x2000052c + 68a8: 20000700 .long 0x20000700 + 68ac: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Init: + +000068b0 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 68b0: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 68b2: 1298 lrw r4, 0x2000083c // 6a10 + 68b4: 3229 movi r2, 41 + 68b6: 3100 movi r1, 0 + 68b8: 6c13 mov r0, r4 + 68ba: e3ffd871 bsr 0x199c // 199c <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 68be: 1276 lrw r3, 0x200000b4 // 6a14 + 68c0: 9360 ld.w r3, (r3, 0x0) + 68c2: 3b80 bclri r3, 0 + 68c4: 3b40 cmpnei r3, 0 + 68c6: 0c9e bf 0x6a02 // 6a02 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 68c8: 1234 lrw r1, 0xa7ee // 6a18 + 68ca: 3000 movi r0, 0 + 68cc: e3ffeacc bsr 0x3e64 // 3e64 + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 68d0: 1273 lrw r3, 0x200000b0 // 6a1c + 68d2: 30ff movi r0, 255 + 68d4: 9320 ld.w r1, (r3, 0x0) + 68d6: 6840 and r1, r0 + 68d8: 3940 cmpnei r1, 0 + 68da: 0c05 bf 0x68e4 // 68e4 + 68dc: 9340 ld.w r2, (r3, 0x0) + 68de: 6880 and r2, r0 + 68e0: 3a41 cmpnei r2, 1 + 68e2: 0883 bt 0x69e8 // 69e8 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 68e4: 9340 ld.w r2, (r3, 0x0) + 68e6: 4227 lsli r1, r2, 7 + 68e8: 307f movi r0, 127 + 68ea: 8442 ld.b r2, (r4, 0x2) + 68ec: 6880 and r2, r0 + 68ee: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 68f0: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 68f2: 9340 ld.w r2, (r3, 0x0) + 68f4: 4a48 lsri r2, r2, 8 + 68f6: 30ff movi r0, 255 + 68f8: 6880 and r2, r0 + 68fa: 3a40 cmpnei r2, 0 + 68fc: 0c10 bf 0x691c // 691c + 68fe: 9340 ld.w r2, (r3, 0x0) + 6900: 4a48 lsri r2, r2, 8 + 6902: 6880 and r2, r0 + 6904: 3a42 cmpnei r2, 2 + 6906: 0c0b bf 0x691c // 691c + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 6908: 9320 ld.w r1, (r3, 0x0) + 690a: 4928 lsri r1, r1, 8 + 690c: 6840 and r1, r0 + 690e: 3944 cmpnei r1, 4 + 6910: 0c06 bf 0x691c // 691c + 6912: 9340 ld.w r2, (r3, 0x0) + 6914: 4a48 lsri r2, r2, 8 + 6916: 6880 and r2, r0 + 6918: 3a46 cmpnei r2, 6 + 691a: 086b bt 0x69f0 // 69f0 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 691c: 9340 ld.w r2, (r3, 0x0) + 691e: 3107 movi r1, 7 + 6920: 4a48 lsri r2, r2, 8 + 6922: 6884 and r2, r1 + 6924: 3070 movi r0, 112 + 6926: 8422 ld.b r1, (r4, 0x2) + 6928: 4244 lsli r2, r2, 4 + 692a: 6841 andn r1, r0 + 692c: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 692e: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 6930: 9340 ld.w r2, (r3, 0x0) + 6932: 4a50 lsri r2, r2, 16 + 6934: 30ff movi r0, 255 + 6936: 6880 and r2, r0 + 6938: 3a40 cmpnei r2, 0 + 693a: 0c10 bf 0x695a // 695a + 693c: 9340 ld.w r2, (r3, 0x0) + 693e: 4a50 lsri r2, r2, 16 + 6940: 6880 and r2, r0 + 6942: 3a41 cmpnei r2, 1 + 6944: 0c0b bf 0x695a // 695a + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 6946: 9320 ld.w r1, (r3, 0x0) + 6948: 4930 lsri r1, r1, 16 + 694a: 6840 and r1, r0 + 694c: 3942 cmpnei r1, 2 + 694e: 0c06 bf 0x695a // 695a + 6950: 9340 ld.w r2, (r3, 0x0) + 6952: 4a50 lsri r2, r2, 16 + 6954: 6880 and r2, r0 + 6956: 3a43 cmpnei r2, 3 + 6958: 0850 bt 0x69f8 // 69f8 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 695a: 9340 ld.w r2, (r3, 0x0) + 695c: 3107 movi r1, 7 + 695e: 4a50 lsri r2, r2, 16 + 6960: 6884 and r2, r1 + 6962: 300e movi r0, 14 + 6964: 8422 ld.b r1, (r4, 0x2) + 6966: 4241 lsli r2, r2, 1 + 6968: 6841 andn r1, r0 + 696a: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 696c: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 696e: 9340 ld.w r2, (r3, 0x0) + 6970: 4a58 lsri r2, r2, 24 + 6972: 3a0f cmphsi r2, 16 + 6974: 0c4c bf 0x6a0c // 6a0c + 6976: 3284 movi r2, 132 + 6978: 4256 lsli r2, r2, 22 + 697a: 9320 ld.w r1, (r3, 0x0) + 697c: 2a00 subi r2, 1 + 697e: 6448 cmphs r2, r1 + 6980: 0c46 bf 0x6a0c // 6a0c + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 6982: 9360 ld.w r3, (r3, 0x0) + 6984: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 6986: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6988: e3fff2da bsr 0x4f3c // 4f3c + 698c: 1165 lrw r3, 0x20000524 // 6a20 + 698e: 8362 ld.b r3, (r3, 0x2) + 6990: 320a movi r2, 10 + 6992: 7cc8 mult r3, r2 + 6994: 2b54 subi r3, 85 + 6996: 600c addu r0, r3 + 6998: 7401 zexth r0, r0 + 699a: 4868 lsri r3, r0, 8 + 699c: a469 st.b r3, (r4, 0x9) + 699e: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 69a0: 310a movi r1, 10 + 69a2: e3ffe7f5 bsr 0x398c // 398c <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 69a6: 3301 movi r3, 1 + 69a8: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 69aa: 3300 movi r3, 0 + 69ac: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 69ae: 3200 movi r2, 0 + 69b0: 107d lrw r3, 0x2000005c // 6a24 + 69b2: 9360 ld.w r3, (r3, 0x0) + 69b4: 23ff addi r3, 256 + 69b6: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 69b8: 8442 ld.b r2, (r4, 0x2) + 69ba: 4239 lsli r1, r2, 25 + 69bc: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 69be: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 69c0: 4128 lsli r1, r1, 8 + 69c2: 9300 ld.w r0, (r3, 0x0) + 69c4: 6c40 or r1, r0 + 69c6: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 69c8: 423c lsli r1, r2, 28 + 69ca: 493d lsri r1, r1, 29 + 69cc: 9300 ld.w r0, (r3, 0x0) + 69ce: 4130 lsli r1, r1, 16 + 69d0: 6c40 or r1, r0 + 69d2: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 69d4: 8421 ld.b r1, (r4, 0x1) + 69d6: 9300 ld.w r0, (r3, 0x0) + 69d8: 4138 lsli r1, r1, 24 + 69da: 6c40 or r1, r0 + 69dc: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 69de: 9320 ld.w r1, (r3, 0x0) + 69e0: 4a47 lsri r2, r2, 7 + 69e2: 6c84 or r2, r1 + 69e4: b340 st.w r2, (r3, 0x0) +} + 69e6: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 69e8: 8442 ld.b r2, (r4, 0x2) + 69ea: 317f movi r1, 127 + 69ec: 6884 and r2, r1 + 69ee: 0781 br 0x68f0 // 68f0 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 69f0: 8442 ld.b r2, (r4, 0x2) + 69f2: 3170 movi r1, 112 + 69f4: 6885 andn r2, r1 + 69f6: 079c br 0x692e // 692e + TempCtrl.TemState_Now.fan = FAN_MID; + 69f8: 8442 ld.b r2, (r4, 0x2) + 69fa: 310e movi r1, 14 + 69fc: 6885 andn r2, r1 + 69fe: 3aa1 bseti r2, 1 + 6a00: 07b6 br 0x696c // 696c + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 6a02: 8462 ld.b r3, (r4, 0x2) + 6a04: 320e movi r2, 14 + 6a06: 68c9 andn r3, r2 + 6a08: 3ba1 bseti r3, 1 + 6a0a: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 6a0c: 3318 movi r3, 24 + 6a0e: 07bc br 0x6986 // 6986 + 6a10: 2000083c .long 0x2000083c + 6a14: 200000b4 .long 0x200000b4 + 6a18: 0000a7ee .long 0x0000a7ee + 6a1c: 200000b0 .long 0x200000b0 + 6a20: 20000524 .long 0x20000524 + 6a24: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00006a28 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 6a28: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6a2a: 1031 lrw r1, 0x2000083c // 6a6c + 6a2c: 8162 ld.b r3, (r1, 0x2) + 6a2e: 748e sextb r2, r3 + 6a30: 3adf btsti r2, 31 + 6a32: 0c14 bf 0x6a5a // 6a5a + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 6a34: 4359 lsli r2, r3, 25 + 6a36: 4a5d lsri r2, r2, 29 + 6a38: 3a42 cmpnei r2, 2 + 6a3a: 0c11 bf 0x6a5c // 6a5c + 6a3c: 3a44 cmpnei r2, 4 + 6a3e: 0c13 bf 0x6a64 // 6a64 + 6a40: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6a42: 3270 movi r2, 112 + 6a44: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 6a46: 0802 bt 0x6a4a // 6a4a + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6a48: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6a4a: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 6a4c: 8142 ld.b r2, (r1, 0x2) + 6a4e: 4259 lsli r2, r2, 25 + 6a50: 4a5d lsri r2, r2, 29 + 6a52: 1028 lrw r1, 0xa807 // 6a70 + 6a54: 3000 movi r0, 0 + 6a56: e3ffea07 bsr 0x3e64 // 3e64 +} + 6a5a: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 6a5c: 3270 movi r2, 112 + 6a5e: 68c9 andn r3, r2 + 6a60: 3ba6 bseti r3, 6 + 6a62: 07f4 br 0x6a4a // 6a4a + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6a64: 3270 movi r2, 112 + 6a66: 68c9 andn r3, r2 + 6a68: 07f1 br 0x6a4a // 6a4a + 6a6a: 0000 bkpt + 6a6c: 2000083c .long 0x2000083c + 6a70: 0000a807 .long 0x0000a807 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00006a74 : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 6a74: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6a76: 1071 lrw r3, 0x2000083c // 6ab8 + 6a78: 8342 ld.b r2, (r3, 0x2) + 6a7a: 744a sextb r1, r2 + 6a7c: 39df btsti r1, 31 + 6a7e: 0c15 bf 0x6aa8 // 6aa8 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6a80: 421c lsli r0, r2, 28 + 6a82: 481d lsri r0, r0, 29 + 6a84: 3803 cmphsi r0, 4 + 6a86: 0814 bt 0x6aae // 6aae + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + 6a88: 8342 ld.b r2, (r3, 0x2) + 6a8a: 310e movi r1, 14 + 6a8c: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 6a8e: e3ffd137 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6a92: 0c02 .short 0x0c02 + 6a94: 0310 .short 0x0310 + TempCtrl.TemState_Now.fan = FAN_MID; + 6a96: 3aa1 bseti r2, 1 + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6a98: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 6a9a: 8342 ld.b r2, (r3, 0x2) + 6a9c: 425c lsli r2, r2, 28 + 6a9e: 4a5d lsri r2, r2, 29 + 6aa0: 1027 lrw r1, 0xa810 // 6abc + 6aa2: 3000 movi r0, 0 + 6aa4: e3ffe9e0 bsr 0x3e64 // 3e64 +} + 6aa8: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 6aaa: 3aa2 bseti r2, 2 + 6aac: 07f6 br 0x6a98 // 6a98 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6aae: 310e movi r1, 14 + 6ab0: 6885 andn r2, r1 + 6ab2: 3aa1 bseti r2, 1 + 6ab4: 3aa2 bseti r2, 2 + 6ab6: 07f1 br 0x6a98 // 6a98 + 6ab8: 2000083c .long 0x2000083c + 6abc: 0000a810 .long 0x0000a810 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00006ac0 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 6ac0: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6ac2: 106a lrw r3, 0x2000083c // 6ae8 + 6ac4: 8342 ld.b r2, (r3, 0x2) + 6ac6: 748a sextb r2, r2 + 6ac8: 3adf btsti r2, 31 + 6aca: 0c0b bf 0x6ae0 // 6ae0 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6acc: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 6ace: 3a10 cmphsi r2, 17 + 6ad0: 0c09 bf 0x6ae2 // 6ae2 + { + TemSet--; //超过最低温度,就减 + 6ad2: 2a00 subi r2, 1 + 6ad4: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6ad6: 1026 lrw r1, 0xa817 // 6aec + 6ad8: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 6ada: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6adc: e3ffe9c4 bsr 0x3e64 // 3e64 +} + 6ae0: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 6ae2: 3210 movi r2, 16 + 6ae4: 07f9 br 0x6ad6 // 6ad6 + 6ae6: 0000 bkpt + 6ae8: 2000083c .long 0x2000083c + 6aec: 0000a817 .long 0x0000a817 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00006af0 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 6af0: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6af2: 106a lrw r3, 0x2000083c // 6b18 + 6af4: 8342 ld.b r2, (r3, 0x2) + 6af6: 748a sextb r2, r2 + 6af8: 3adf btsti r2, 31 + 6afa: 0c0b bf 0x6b10 // 6b10 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6afc: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 6afe: 3a1f cmphsi r2, 32 + 6b00: 0809 bt 0x6b12 // 6b12 + { + TemSet++; + 6b02: 2200 addi r2, 1 + 6b04: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6b06: 1026 lrw r1, 0xa820 // 6b1c + 6b08: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 6b0a: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6b0c: e3ffe9ac bsr 0x3e64 // 3e64 +} + 6b10: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 6b12: 3220 movi r2, 32 + 6b14: 07f9 br 0x6b06 // 6b06 + 6b16: 0000 bkpt + 6b18: 2000083c .long 0x2000083c + 6b1c: 0000a820 .long 0x0000a820 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00006b20 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 6b20: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 6b22: 104b lrw r2, 0x2000083c // 6b4c + 6b24: 8262 ld.b r3, (r2, 0x2) + 6b26: 4b27 lsri r1, r3, 7 + 6b28: 3940 cmpnei r1, 0 + 6b2a: 0c0d bf 0x6b44 // 6b44 + 6b2c: 3941 cmpnei r1, 1 + 6b2e: 080b bt 0x6b44 // 6b44 + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6b30: 317f movi r1, 127 + 6b32: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6b34: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 6b36: 8242 ld.b r2, (r2, 0x2) + 6b38: 4a47 lsri r2, r2, 7 + 6b3a: 1026 lrw r1, 0xa820 // 6b50 + 6b3c: 3000 movi r0, 0 + 6b3e: e3ffe993 bsr 0x3e64 // 3e64 +} + 6b42: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6b44: 3100 movi r1, 0 + 6b46: 297f subi r1, 128 + 6b48: 6cc4 or r3, r1 + 6b4a: 07f5 br 0x6b34 // 6b34 + 6b4c: 2000083c .long 0x2000083c + 6b50: 0000a820 .long 0x0000a820 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00006b54 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 6b54: 14d1 push r4, r15 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 6b56: 1130 lrw r1, 0x2000083c // 6c14 + 6b58: 8100 ld.b r0, (r1, 0x0) + 6b5a: 3840 cmpnei r0, 0 + 6b5c: 0802 bt 0x6b60 // 6b60 + 6b5e: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 6b60: 8141 ld.b r2, (r1, 0x1) + 6b62: 3a40 cmpnei r2, 0 + 6b64: 0802 bt 0x6b68 // 6b68 + 6b66: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 6b68: 8162 ld.b r3, (r1, 0x2) + 6b6a: 4b87 lsri r4, r3, 7 + 6b6c: 3c40 cmpnei r4, 0 + 6b6e: 0c0f bf 0x6b8c // 6b8c + 6b70: 3c41 cmpnei r4, 1 + 6b72: 0850 bt 0x6c12 // 6c12 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 6b74: 4399 lsli r4, r3, 25 + 6b76: 4c9d lsri r4, r4, 29 + 6b78: 3c42 cmpnei r4, 2 + 6b7a: 0c26 bf 0x6bc6 // 6bc6 + 6b7c: 3c44 cmpnei r4, 4 + 6b7e: 0c36 bf 0x6bea // 6bea + 6b80: 3c40 cmpnei r4, 0 + 6b82: 0848 bt 0x6c12 // 6c12 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6b84: 5a83 subi r4, r2, 1 + 6b86: 6501 cmplt r0, r4 + 6b88: 0c05 bf 0x6b92 // 6b92 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6b8a: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6b8c: 3b80 bclri r3, 0 + 6b8e: a162 st.b r3, (r1, 0x2) + 6b90: 0419 br 0x6bc2 // 6bc2 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6b92: 2200 addi r2, 1 + 6b94: 6409 cmplt r2, r0 + 6b96: 0c3e bf 0x6c12 // 6c12 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6b98: 3ba0 bseti r3, 0 + 6b9a: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6b9c: 107f lrw r3, 0x20000524 // 6c18 + 6b9e: 8361 ld.b r3, (r3, 0x1) + 6ba0: 3b41 cmpnei r3, 1 + 6ba2: 080a bt 0x6bb6 // 6bb6 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6ba4: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6ba6: 3000 movi r0, 0 + 6ba8: e0000730 bsr 0x7a08 // 7a08 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 6bac: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6bae: 3001 movi r0, 1 + 6bb0: e000072c bsr 0x7a08 // 7a08 + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 6bb4: 042f br 0x6c12 // 6c12 + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 6bb6: 3b40 cmpnei r3, 0 + 6bb8: 0803 bt 0x6bbe // 6bbe + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6bba: 3101 movi r1, 1 + 6bbc: 07f5 br 0x6ba6 // 6ba6 + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 6bbe: 3b42 cmpnei r3, 2 + 6bc0: 0829 bt 0x6c12 // 6c12 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6bc2: 3102 movi r1, 2 + 6bc4: 040e br 0x6be0 // 6be0 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6bc6: 5a82 addi r4, r2, 1 + 6bc8: 6411 cmplt r4, r0 + 6bca: 0be0 bt 0x6b8a // 6b8a + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6bcc: 2a00 subi r2, 1 + 6bce: 6481 cmplt r0, r2 + 6bd0: 0c21 bf 0x6c12 // 6c12 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6bd2: 3ba0 bseti r3, 0 + 6bd4: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6bd6: 1071 lrw r3, 0x20000524 // 6c18 + 6bd8: 8361 ld.b r3, (r3, 0x1) + 6bda: 3b41 cmpnei r3, 1 + 6bdc: 0bed bt 0x6bb6 // 6bb6 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6bde: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6be0: 3000 movi r0, 0 + 6be2: e0000713 bsr 0x7a08 // 7a08 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6be6: 3102 movi r1, 2 + 6be8: 07e3 br 0x6bae // 6bae + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6bea: 3b80 bclri r3, 0 + 6bec: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6bee: 3000 movi r0, 0 + 6bf0: 3102 movi r1, 2 + 6bf2: e000070b bsr 0x7a08 // 7a08 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6bf6: 3102 movi r1, 2 + 6bf8: 3001 movi r0, 1 + 6bfa: e0000707 bsr 0x7a08 // 7a08 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6bfe: 1067 lrw r3, 0x20000524 // 6c18 + 6c00: 8361 ld.b r3, (r3, 0x1) + 6c02: 3b42 cmpnei r3, 2 + 6c04: 0807 bt 0x6c12 // 6c12 + Relay_Stop(); + 6c06: e00006f3 bsr 0x79ec // 79ec + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 6c0a: 1025 lrw r1, 0xa82e // 6c1c + 6c0c: 3000 movi r0, 0 + 6c0e: e3ffe92b bsr 0x3e64 // 3e64 +} + 6c12: 1491 pop r4, r15 + 6c14: 2000083c .long 0x2000083c + 6c18: 20000524 .long 0x20000524 + 6c1c: 0000a82e .long 0x0000a82e + +Disassembly of section .text.TemCtrl_Pro: + +00006c20 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 6c20: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 6c22: 1218 lrw r0, 0x200000c0 // 6d80 + 6c24: 1238 lrw r1, 0x20000230 // 6d84 + 6c26: 9040 ld.w r2, (r0, 0x0) + 6c28: 9160 ld.w r3, (r1, 0x0) + 6c2a: 608e subu r2, r3 + 6c2c: 33fa movi r3, 250 + 6c2e: 4362 lsli r3, r3, 2 + 6c30: 648c cmphs r3, r2 + 6c32: 083b bt 0x6ca8 // 6ca8 + { + tick = SysTick_1ms; + 6c34: 9060 ld.w r3, (r0, 0x0) + 6c36: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6c38: 360a movi r6, 10 + 6c3a: 12b4 lrw r5, 0x20000524 // 6d88 + 6c3c: e3fff180 bsr 0x4f3c // 4f3c + 6c40: 8542 ld.b r2, (r5, 0x2) + 6c42: 7c98 mult r2, r6 + 6c44: 2a54 subi r2, 85 + 6c46: 6080 addu r2, r0 + 6c48: 7589 zexth r6, r2 + 6c4a: 1291 lrw r4, 0x2000083c // 6d8c + 6c4c: 7498 zextb r2, r6 + 6c4e: 4e68 lsri r3, r6, 8 + 6c50: a448 st.b r2, (r4, 0x8) + 6c52: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 6c54: a44c st.b r2, (r4, 0xc) + 6c56: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6c58: 310a movi r1, 10 + 6c5a: 6c1b mov r0, r6 + 6c5c: e3ffe698 bsr 0x398c // 398c <__udivsi3> + 6c60: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6c62: 6c9b mov r2, r6 + 6c64: 122b lrw r1, 0xa837 // 6d90 + 6c66: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6c68: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6c6a: e3ffe8fd bsr 0x3e64 // 3e64 + + Tem_Valve_Ctrl(); + 6c6e: e3ffff73 bsr 0x6b54 // 6b54 + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 6c72: 8442 ld.b r2, (r4, 0x2) + 6c74: 74c8 zextb r3, r2 + 6c76: 3171 movi r1, 113 + 6c78: 6c0f mov r0, r3 + 6c7a: 6805 andn r0, r1 + 6c7c: 3186 movi r1, 134 + 6c7e: 6442 cmpne r0, r1 + 6c80: 083d bt 0x6cfa // 6cfa + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6c82: 3270 movi r2, 112 + 6c84: 68c8 and r3, r2 + 6c86: 3b40 cmpnei r3, 0 + 6c88: 0827 bt 0x6cd6 // 6cd6 + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 6c8a: 8461 ld.b r3, (r4, 0x1) + 6c8c: 8440 ld.b r2, (r4, 0x0) + 6c8e: 5b27 subi r1, r3, 2 + 6c90: 6449 cmplt r2, r1 + 6c92: 0c0c bf 0x6caa // 6caa + { + Relay_Stop(); //低风速 + 6c94: e00006ac bsr 0x79ec // 79ec + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 6c98: 117f lrw r3, 0x200005c0 // 6d94 + 6c9a: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6c9c: 8402 ld.b r0, (r4, 0x2) + 6c9e: 401c lsli r0, r0, 28 + 6ca0: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 6ca2: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6ca4: e3fffa9c bsr 0x61dc // 61dc + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 6ca8: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6caa: 5b23 subi r1, r3, 1 + 6cac: 644a cmpne r2, r1 + 6cae: 0804 bt 0x6cb6 // 6cb6 + Relay_Low(); //低风速 + 6cb0: e0000690 bsr 0x79d0 // 79d0 + 6cb4: 07f2 br 0x6c98 // 6c98 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6cb6: 5b22 addi r1, r3, 1 + 6cb8: 644a cmpne r2, r1 + 6cba: 0806 bt 0x6cc6 // 6cc6 + Relay_Mid(); //中风速 + 6cbc: e000067c bsr 0x79b4 // 79b4 + HT1621.wind_velocity = 1; + 6cc0: 1175 lrw r3, 0x200005c0 // 6d94 + 6cc2: 3201 movi r2, 1 + 6cc4: 07ec br 0x6c9c // 6c9c + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6cc6: 2301 addi r3, 2 + 6cc8: 648d cmplt r3, r2 + 6cca: 0fef bf 0x6ca8 // 6ca8 + Relay_High(); //高风速 + 6ccc: e0000666 bsr 0x7998 // 7998 + HT1621.wind_velocity = 2; + 6cd0: 1171 lrw r3, 0x200005c0 // 6d94 + 6cd2: 3202 movi r2, 2 + 6cd4: 07e4 br 0x6c9c // 6c9c + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 6cd6: 3220 movi r2, 32 + 6cd8: 648e cmpne r3, r2 + 6cda: 0be7 bt 0x6ca8 // 6ca8 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6cdc: 8461 ld.b r3, (r4, 0x1) + 6cde: 8440 ld.b r2, (r4, 0x0) + 6ce0: 5b27 subi r1, r3, 2 + 6ce2: 6449 cmplt r2, r1 + 6ce4: 0bf4 bt 0x6ccc // 6ccc + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6ce6: 5b23 subi r1, r3, 1 + 6ce8: 644a cmpne r2, r1 + 6cea: 0fe9 bf 0x6cbc // 6cbc + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6cec: 5b22 addi r1, r3, 1 + 6cee: 644a cmpne r2, r1 + 6cf0: 0fe0 bf 0x6cb0 // 6cb0 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 6cf2: 2301 addi r3, 2 + 6cf4: 648d cmplt r3, r2 + 6cf6: 0fd9 bf 0x6ca8 // 6ca8 + 6cf8: 07ce br 0x6c94 // 6c94 + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 6cfa: 8521 ld.b r1, (r5, 0x1) + 6cfc: 3942 cmpnei r1, 2 + 6cfe: 744e sextb r1, r3 + 6d00: 083a bt 0x6d74 // 6d74 + 6d02: 39df btsti r1, 31 + 6d04: 0c38 bf 0x6d74 // 6d74 + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 6d06: 310e movi r1, 14 + 6d08: 684c and r1, r3 + 6d0a: 3946 cmpnei r1, 6 + 6d0c: 0fce bf 0x6ca8 // 6ca8 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6d0e: 3170 movi r1, 112 + 6d10: 68c4 and r3, r1 + 6d12: 3b40 cmpnei r3, 0 + 6d14: 0819 bt 0x6d46 // 6d46 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6d16: 8461 ld.b r3, (r4, 0x1) + 6d18: 8420 ld.b r1, (r4, 0x0) + 6d1a: 5b07 subi r0, r3, 2 + 6d1c: 6405 cmplt r1, r0 + 6d1e: 0bbb bt 0x6c94 // 6c94 + switch(TempCtrl.TemState_Now.fan) + 6d20: 425c lsli r2, r2, 28 + 6d22: 4a5d lsri r2, r2, 29 + 6d24: 3a41 cmpnei r2, 1 + 6d26: 0c0c bf 0x6d3e // 6d3e + 6d28: 3a40 cmpnei r2, 0 + 6d2a: 0c06 bf 0x6d36 // 6d36 + 6d2c: 3a42 cmpnei r2, 2 + 6d2e: 0bbd bt 0x6ca8 // 6ca8 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6d30: 2301 addi r3, 2 + 6d32: 644d cmplt r3, r1 + 6d34: 07cb br 0x6cca // 6cca + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6d36: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6d38: 64c6 cmpne r1, r3 + 6d3a: 0bb7 bt 0x6ca8 // 6ca8 + 6d3c: 07ba br 0x6cb0 // 6cb0 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6d3e: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6d40: 64c6 cmpne r1, r3 + 6d42: 0bb3 bt 0x6ca8 // 6ca8 + 6d44: 07bc br 0x6cbc // 6cbc + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 6d46: 3120 movi r1, 32 + 6d48: 644e cmpne r3, r1 + 6d4a: 0baf bt 0x6ca8 // 6ca8 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6d4c: 8461 ld.b r3, (r4, 0x1) + 6d4e: 8420 ld.b r1, (r4, 0x0) + 6d50: 5b06 addi r0, r3, 2 + 6d52: 6441 cmplt r0, r1 + 6d54: 0ba0 bt 0x6c94 // 6c94 + switch(TempCtrl.TemState_Now.fan) + 6d56: 425c lsli r2, r2, 28 + 6d58: 4a5d lsri r2, r2, 29 + 6d5a: 3a41 cmpnei r2, 1 + 6d5c: 0c0a bf 0x6d70 // 6d70 + 6d5e: 3a40 cmpnei r2, 0 + 6d60: 0c06 bf 0x6d6c // 6d6c + 6d62: 3a42 cmpnei r2, 2 + 6d64: 0ba2 bt 0x6ca8 // 6ca8 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6d66: 2b01 subi r3, 2 + 6d68: 64c5 cmplt r1, r3 + 6d6a: 07b0 br 0x6cca // 6cca + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6d6c: 2300 addi r3, 1 + 6d6e: 07e5 br 0x6d38 // 6d38 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6d70: 2b00 subi r3, 1 + 6d72: 07e7 br 0x6d40 // 6d40 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 6d74: 39df btsti r1, 31 + 6d76: 0b99 bt 0x6ca8 // 6ca8 + Relay_Stop(); //风速停 + 6d78: e000063a bsr 0x79ec // 79ec + 6d7c: 0796 br 0x6ca8 // 6ca8 + 6d7e: 0000 bkpt + 6d80: 200000c0 .long 0x200000c0 + 6d84: 20000230 .long 0x20000230 + 6d88: 20000524 .long 0x20000524 + 6d8c: 2000083c .long 0x2000083c + 6d90: 0000a837 .long 0x0000a837 + 6d94: 200005c0 .long 0x200005c0 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00006d98 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 6d98: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 6d9a: 112e lrw r1, 0xa85f // 6e50 + 6d9c: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6d9e: 118e lrw r4, 0x20000868 // 6e54 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 6da0: e3ffe862 bsr 0x3e64 // 3e64 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6da4: 8460 ld.b r3, (r4, 0x0) + 6da6: 3b41 cmpnei r3, 1 + 6da8: 11ac lrw r5, 0x200000c0 // 6e58 + 6daa: 0836 bt 0x6e16 // 6e16 + { + Debug_Inf.Tick = SysTick_1ms; + 6dac: 9560 ld.w r3, (r5, 0x0) + 6dae: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page < PAGE8ID) + 6db0: 8462 ld.b r3, (r4, 0x2) + 6db2: 3b07 cmphsi r3, 8 + 6db4: 0803 bt 0x6dba // 6dba + { + Debug_Inf.Page++; + 6db6: 2300 addi r3, 1 + 6db8: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 6dba: e3fff7b1 bsr 0x5d1c // 5d1c + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 6dbe: 8462 ld.b r3, (r4, 0x2) + 6dc0: 3b42 cmpnei r3, 2 + 6dc2: 0805 bt 0x6dcc // 6dcc + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 6dc4: 8405 ld.b r0, (r4, 0x5) + 6dc6: e3fffbbd bsr 0x6540 // 6540 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 6dca: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 6dcc: 3b41 cmpnei r3, 1 + 6dce: 0806 bt 0x6dda // 6dda + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6dd0: 8424 ld.b r1, (r4, 0x4) + 6dd2: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6dd4: e3fffb68 bsr 0x64a4 // 64a4 + 6dd8: 07f9 br 0x6dca // 6dca + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 6dda: 3b43 cmpnei r3, 3 + 6ddc: 0804 bt 0x6de4 // 6de4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6dde: 8426 ld.b r1, (r4, 0x6) + 6de0: 3003 movi r0, 3 + 6de2: 07f9 br 0x6dd4 // 6dd4 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 6de4: 3b44 cmpnei r3, 4 + 6de6: 0804 bt 0x6dee // 6dee + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6de8: 8427 ld.b r1, (r4, 0x7) + 6dea: 3004 movi r0, 4 + 6dec: 07f4 br 0x6dd4 // 6dd4 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 6dee: 3b45 cmpnei r3, 5 + 6df0: 0804 bt 0x6df8 // 6df8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6df2: 8423 ld.b r1, (r4, 0x3) + 6df4: 3005 movi r0, 5 + 6df6: 07ef br 0x6dd4 // 6dd4 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 6df8: 3b46 cmpnei r3, 6 + 6dfa: 0804 bt 0x6e02 // 6e02 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6dfc: 8428 ld.b r1, (r4, 0x8) + 6dfe: 3006 movi r0, 6 + 6e00: 07ea br 0x6dd4 // 6dd4 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 6e02: 3b47 cmpnei r3, 7 + 6e04: 0804 bt 0x6e0c // 6e0c + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6e06: 8429 ld.b r1, (r4, 0x9) + 6e08: 3007 movi r0, 7 + 6e0a: 07e5 br 0x6dd4 // 6dd4 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 6e0c: 3b48 cmpnei r3, 8 + 6e0e: 0bde bt 0x6dca // 6dca + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6e10: 3104 movi r1, 4 + 6e12: 3008 movi r0, 8 + 6e14: 07e0 br 0x6dd4 // 6dd4 + if(TempCtrl.CardState == CARDIN) //插卡状态 + 6e16: 1092 lrw r4, 0x2000083c // 6e5c + 6e18: 8478 ld.b r3, (r4, 0x18) + 6e1a: 3b41 cmpnei r3, 1 + 6e1c: 0811 bt 0x6e3e // 6e3e + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6e1e: 8462 ld.b r3, (r4, 0x2) + 6e20: 74ce sextb r3, r3 + 6e22: 3bdf btsti r3, 31 + 6e24: 0c0d bf 0x6e3e // 6e3e + TemCtrl_Model_Set(); //模式切换 + 6e26: e3fffe01 bsr 0x6a28 // 6a28 + if(g_eeprom.backlight_en == 0x01) + 6e2a: 106e lrw r3, 0x20000524 // 6e60 + 6e2c: 8364 ld.b r3, (r3, 0x4) + 6e2e: 3b41 cmpnei r3, 1 + 6e30: 0807 bt 0x6e3e // 6e3e + Controlled_LCD_Backlight(0x01); + 6e32: 3001 movi r0, 1 + 6e34: e3fffab2 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 6e38: 3001 movi r0, 1 + 6e3a: e3fffb1d bsr 0x6474 // 6474 + TempCtrl.BackLightTick = SysTick_1ms; + 6e3e: 9560 ld.w r3, (r5, 0x0) + 6e40: 4b48 lsri r2, r3, 8 + 6e42: a470 st.b r3, (r4, 0x10) + 6e44: a451 st.b r2, (r4, 0x11) + 6e46: 4b50 lsri r2, r3, 16 + 6e48: 4b78 lsri r3, r3, 24 + 6e4a: a452 st.b r2, (r4, 0x12) + 6e4c: a473 st.b r3, (r4, 0x13) +} + 6e4e: 07be br 0x6dca // 6dca + 6e50: 0000a85f .long 0x0000a85f + 6e54: 20000868 .long 0x20000868 + 6e58: 200000c0 .long 0x200000c0 + 6e5c: 2000083c .long 0x2000083c + 6e60: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +00006e64 : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 6e64: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6e66: 112e lrw r1, 0xa874 // 6f1c + 6e68: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6e6a: 118e lrw r4, 0x20000868 // 6f20 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 6e6c: e3ffe7fc bsr 0x3e64 // 3e64 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6e70: 8460 ld.b r3, (r4, 0x0) + 6e72: 3b41 cmpnei r3, 1 + 6e74: 11ac lrw r5, 0x200000c0 // 6f24 + 6e76: 0836 bt 0x6ee2 // 6ee2 + { + Debug_Inf.Tick = SysTick_1ms; + 6e78: 9560 ld.w r3, (r5, 0x0) + 6e7a: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page > PAGE1ID) + 6e7c: 8462 ld.b r3, (r4, 0x2) + 6e7e: 3b01 cmphsi r3, 2 + 6e80: 0c03 bf 0x6e86 // 6e86 + { + Debug_Inf.Page--; + 6e82: 2b00 subi r3, 1 + 6e84: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 6e86: e3fff74b bsr 0x5d1c // 5d1c + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 6e8a: 8462 ld.b r3, (r4, 0x2) + 6e8c: 3b42 cmpnei r3, 2 + 6e8e: 0805 bt 0x6e98 // 6e98 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 6e90: 8405 ld.b r0, (r4, 0x5) + 6e92: e3fffb57 bsr 0x6540 // 6540 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 6e96: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 6e98: 3b41 cmpnei r3, 1 + 6e9a: 0806 bt 0x6ea6 // 6ea6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6e9c: 8424 ld.b r1, (r4, 0x4) + 6e9e: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6ea0: e3fffb02 bsr 0x64a4 // 64a4 + 6ea4: 07f9 br 0x6e96 // 6e96 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 6ea6: 3b43 cmpnei r3, 3 + 6ea8: 0804 bt 0x6eb0 // 6eb0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6eaa: 8426 ld.b r1, (r4, 0x6) + 6eac: 3003 movi r0, 3 + 6eae: 07f9 br 0x6ea0 // 6ea0 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 6eb0: 3b44 cmpnei r3, 4 + 6eb2: 0804 bt 0x6eba // 6eba + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6eb4: 8427 ld.b r1, (r4, 0x7) + 6eb6: 3004 movi r0, 4 + 6eb8: 07f4 br 0x6ea0 // 6ea0 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 6eba: 3b45 cmpnei r3, 5 + 6ebc: 0804 bt 0x6ec4 // 6ec4 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6ebe: 8423 ld.b r1, (r4, 0x3) + 6ec0: 3005 movi r0, 5 + 6ec2: 07ef br 0x6ea0 // 6ea0 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 6ec4: 3b46 cmpnei r3, 6 + 6ec6: 0804 bt 0x6ece // 6ece + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6ec8: 8428 ld.b r1, (r4, 0x8) + 6eca: 3006 movi r0, 6 + 6ecc: 07ea br 0x6ea0 // 6ea0 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 6ece: 3b47 cmpnei r3, 7 + 6ed0: 0804 bt 0x6ed8 // 6ed8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6ed2: 8429 ld.b r1, (r4, 0x9) + 6ed4: 3007 movi r0, 7 + 6ed6: 07e5 br 0x6ea0 // 6ea0 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 6ed8: 3b48 cmpnei r3, 8 + 6eda: 0bde bt 0x6e96 // 6e96 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6edc: 3104 movi r1, 4 + 6ede: 3008 movi r0, 8 + 6ee0: 07e0 br 0x6ea0 // 6ea0 + if(TempCtrl.CardState == CARDIN) + 6ee2: 1092 lrw r4, 0x2000083c // 6f28 + 6ee4: 8478 ld.b r3, (r4, 0x18) + 6ee6: 3b41 cmpnei r3, 1 + 6ee8: 0811 bt 0x6f0a // 6f0a + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6eea: 8462 ld.b r3, (r4, 0x2) + 6eec: 74ce sextb r3, r3 + 6eee: 3bdf btsti r3, 31 + 6ef0: 0c0d bf 0x6f0a // 6f0a + TemCtrl_Fan_Set(); //风速切换 + 6ef2: e3fffdc1 bsr 0x6a74 // 6a74 + if(g_eeprom.backlight_en == 0x01) + 6ef6: 106e lrw r3, 0x20000524 // 6f2c + 6ef8: 8364 ld.b r3, (r3, 0x4) + 6efa: 3b41 cmpnei r3, 1 + 6efc: 0807 bt 0x6f0a // 6f0a + Controlled_LCD_Backlight(0x01); + 6efe: 3001 movi r0, 1 + 6f00: e3fffa4c bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 6f04: 3001 movi r0, 1 + 6f06: e3fffab7 bsr 0x6474 // 6474 + TempCtrl.BackLightTick = SysTick_1ms; + 6f0a: 9560 ld.w r3, (r5, 0x0) + 6f0c: 4b48 lsri r2, r3, 8 + 6f0e: a470 st.b r3, (r4, 0x10) + 6f10: a451 st.b r2, (r4, 0x11) + 6f12: 4b50 lsri r2, r3, 16 + 6f14: 4b78 lsri r3, r3, 24 + 6f16: a452 st.b r2, (r4, 0x12) + 6f18: a473 st.b r3, (r4, 0x13) +} + 6f1a: 07be br 0x6e96 // 6e96 + 6f1c: 0000a874 .long 0x0000a874 + 6f20: 20000868 .long 0x20000868 + 6f24: 200000c0 .long 0x200000c0 + 6f28: 2000083c .long 0x2000083c + 6f2c: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00006f30 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 6f30: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 6f32: 113b lrw r1, 0xa887 // 701c + 6f34: 3000 movi r0, 0 + 6f36: e3ffe797 bsr 0x3e64 // 3e64 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 6f3a: 117a lrw r3, 0x20000868 // 7020 + 6f3c: 8340 ld.b r2, (r3, 0x0) + 6f3e: 3a41 cmpnei r2, 1 + 6f40: 11b9 lrw r5, 0x200000c0 // 7024 + 6f42: 0850 bt 0x6fe2 // 6fe2 + { + Debug_Inf.Tick = SysTick_1ms; + 6f44: 9540 ld.w r2, (r5, 0x0) + 6f46: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 6f48: 8342 ld.b r2, (r3, 0x2) + 6f4a: 3a41 cmpnei r2, 1 + 6f4c: 080b bt 0x6f62 // 6f62 + 6f4e: 8324 ld.b r1, (r3, 0x4) + 6f50: 3901 cmphsi r1, 2 + 6f52: 0812 bt 0x6f76 // 6f76 + { + Debug_Inf.PipeFlag ++; + 6f54: 2100 addi r1, 1 + 6f56: 7444 zextb r1, r1 + 6f58: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 6f5a: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6f5c: e3fffaa4 bsr 0x64a4 // 64a4 + 6f60: 040b br 0x6f76 // 6f76 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 6f62: 3a42 cmpnei r2, 2 + 6f64: 080a bt 0x6f78 // 6f78 + 6f66: 8305 ld.b r0, (r3, 0x5) + 6f68: 3811 cmphsi r0, 18 + 6f6a: 0806 bt 0x6f76 // 6f76 + Debug_Inf.TempDiff++; + 6f6c: 2000 addi r0, 1 + 6f6e: 7400 zextb r0, r0 + 6f70: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 6f72: e3fffae7 bsr 0x6540 // 6540 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 6f76: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 6f78: 3a43 cmpnei r2, 3 + 6f7a: 0806 bt 0x6f86 // 6f86 + Debug_Inf.BackLight_En = 0x01; + 6f7c: 3201 movi r2, 1 + 6f7e: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 6f80: 3101 movi r1, 1 + 6f82: 3003 movi r0, 3 + 6f84: 07ec br 0x6f5c // 6f5c + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 6f86: 3a44 cmpnei r2, 4 + 6f88: 0809 bt 0x6f9a // 6f9a + 6f8a: 8327 ld.b r1, (r3, 0x7) + 6f8c: 3901 cmphsi r1, 2 + 6f8e: 0bf4 bt 0x6f76 // 6f76 + Debug_Inf.KSens_Level++; + 6f90: 2100 addi r1, 1 + 6f92: 7444 zextb r1, r1 + 6f94: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 6f96: 3004 movi r0, 4 + 6f98: 07e2 br 0x6f5c // 6f5c + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 6f9a: 3a45 cmpnei r2, 5 + 6f9c: 080a bt 0x6fb0 // 6fb0 + 6f9e: 8323 ld.b r1, (r3, 0x3) + 6fa0: 32ff movi r2, 255 + 6fa2: 6486 cmpne r1, r2 + 6fa4: 0fe9 bf 0x6f76 // 6f76 + Debug_Inf.DevAddr++; //刷新地址 + 6fa6: 2100 addi r1, 1 + 6fa8: 7444 zextb r1, r1 + 6faa: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 6fac: 3005 movi r0, 5 + 6fae: 07d7 br 0x6f5c // 6f5c + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 6fb0: 3a46 cmpnei r2, 6 + 6fb2: 0809 bt 0x6fc4 // 6fc4 + 6fb4: 8348 ld.b r2, (r3, 0x8) + 6fb6: 3a40 cmpnei r2, 0 + 6fb8: 0bdf bt 0x6f76 // 6f76 + Debug_Inf.TempDisplay++; + 6fba: 3201 movi r2, 1 + 6fbc: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 6fbe: 3101 movi r1, 1 + 6fc0: 3006 movi r0, 6 + 6fc2: 07cd br 0x6f5c // 6f5c + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 6fc4: 3a47 cmpnei r2, 7 + 6fc6: 0809 bt 0x6fd8 // 6fd8 + 6fc8: 8329 ld.b r1, (r3, 0x9) + 6fca: 3901 cmphsi r1, 2 + 6fcc: 0bd5 bt 0x6f76 // 6f76 + Debug_Inf.Language_Selection++; + 6fce: 2100 addi r1, 1 + 6fd0: 7444 zextb r1, r1 + 6fd2: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 6fd4: 3007 movi r0, 7 + 6fd6: 07c3 br 0x6f5c // 6f5c + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 6fd8: 3a48 cmpnei r2, 8 + 6fda: 0bce bt 0x6f76 // 6f76 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 6fdc: 3104 movi r1, 4 + 6fde: 3008 movi r0, 8 + 6fe0: 07be br 0x6f5c // 6f5c + if(TempCtrl.CardState == CARDIN) + 6fe2: 1092 lrw r4, 0x2000083c // 7028 + 6fe4: 8478 ld.b r3, (r4, 0x18) + 6fe6: 3b41 cmpnei r3, 1 + 6fe8: 0811 bt 0x700a // 700a + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 6fea: 8462 ld.b r3, (r4, 0x2) + 6fec: 74ce sextb r3, r3 + 6fee: 3bdf btsti r3, 31 + 6ff0: 0c0d bf 0x700a // 700a + TemCtrl_Temperature_Add(); //设置温度+ + 6ff2: e3fffd7f bsr 0x6af0 // 6af0 + if(g_eeprom.backlight_en == 0x01) + 6ff6: 106e lrw r3, 0x20000524 // 702c + 6ff8: 8364 ld.b r3, (r3, 0x4) + 6ffa: 3b41 cmpnei r3, 1 + 6ffc: 0807 bt 0x700a // 700a + Controlled_LCD_Backlight(0x01); + 6ffe: 3001 movi r0, 1 + 7000: e3fff9cc bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 7004: 3001 movi r0, 1 + 7006: e3fffa37 bsr 0x6474 // 6474 + TempCtrl.BackLightTick = SysTick_1ms; + 700a: 9560 ld.w r3, (r5, 0x0) + 700c: 4b48 lsri r2, r3, 8 + 700e: a470 st.b r3, (r4, 0x10) + 7010: a451 st.b r2, (r4, 0x11) + 7012: 4b50 lsri r2, r3, 16 + 7014: 4b78 lsri r3, r3, 24 + 7016: a452 st.b r2, (r4, 0x12) + 7018: a473 st.b r3, (r4, 0x13) +} + 701a: 07ae br 0x6f76 // 6f76 + 701c: 0000a887 .long 0x0000a887 + 7020: 20000868 .long 0x20000868 + 7024: 200000c0 .long 0x200000c0 + 7028: 2000083c .long 0x2000083c + 702c: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00007030 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 7030: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 7032: 1097 lrw r4, 0x20000868 // 708c + 7034: 8460 ld.b r3, (r4, 0x0) + 7036: 3b40 cmpnei r3, 0 + 7038: 0829 bt 0x708a // 708a + { + Debug_Inf.Press_Flag |= (0x01<<0); + 703a: 8461 ld.b r3, (r4, 0x1) + 703c: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 703e: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 7040: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 7042: 0824 bt 0x708a // 708a + 7044: 1073 lrw r3, 0x2000083c // 7090 + 7046: 8362 ld.b r3, (r3, 0x2) + 7048: 74ce sextb r3, r3 + 704a: 3bdf btsti r3, 31 + 704c: 081f bt 0x708a // 708a + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 704e: 1032 lrw r1, 0xa89e // 7094 + 7050: 3000 movi r0, 0 + 7052: e3ffe709 bsr 0x3e64 // 3e64 + Debug_Inf.Tick = SysTick_1ms; + 7056: 1071 lrw r3, 0x200000c0 // 7098 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 7058: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 705a: 9360 ld.w r3, (r3, 0x0) + 705c: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 705e: 3300 movi r3, 0 + 7060: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 7062: 3301 movi r3, 1 + 7064: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 7066: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x01; + 7068: 106d lrw r3, 0x200005e0 // 709c + 706a: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 706c: e3fff658 bsr 0x5d1c // 5d1c + Controlled_LCD_Backlight(0x01); + 7070: 3001 movi r0, 1 + 7072: e3fff993 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 7076: 3001 movi r0, 1 + 7078: e3fff9fe bsr 0x6474 // 6474 + Controlled_Buzzer(0x01); + 707c: 3001 movi r0, 1 + 707e: e3fff969 bsr 0x6350 // 6350 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 7082: 8424 ld.b r1, (r4, 0x4) + 7084: 3001 movi r0, 1 + 7086: e3fffa0f bsr 0x64a4 // 64a4 + + } + } + +} + 708a: 1491 pop r4, r15 + 708c: 20000868 .long 0x20000868 + 7090: 2000083c .long 0x2000083c + 7094: 0000a89e .long 0x0000a89e + 7098: 200000c0 .long 0x200000c0 + 709c: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +000070a0 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 70a0: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 70a2: 113b lrw r1, 0xa8a7 // 718c + 70a4: 3000 movi r0, 0 + 70a6: e3ffe6df bsr 0x3e64 // 3e64 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 70aa: 117a lrw r3, 0x20000868 // 7190 + 70ac: 8340 ld.b r2, (r3, 0x0) + 70ae: 3a41 cmpnei r2, 1 + 70b0: 11b9 lrw r5, 0x200000c0 // 7194 + 70b2: 084f bt 0x7150 // 7150 + { + Debug_Inf.Tick = SysTick_1ms; + 70b4: 9540 ld.w r2, (r5, 0x0) + 70b6: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 70b8: 8342 ld.b r2, (r3, 0x2) + 70ba: 3a41 cmpnei r2, 1 + 70bc: 080b bt 0x70d2 // 70d2 + 70be: 8324 ld.b r1, (r3, 0x4) + 70c0: 3940 cmpnei r1, 0 + 70c2: 0c12 bf 0x70e6 // 70e6 + { + Debug_Inf.PipeFlag --; + 70c4: 2900 subi r1, 1 + 70c6: 7444 zextb r1, r1 + 70c8: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 70ca: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 70cc: e3fff9ec bsr 0x64a4 // 64a4 + 70d0: 040b br 0x70e6 // 70e6 + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 70d2: 3a42 cmpnei r2, 2 + 70d4: 080a bt 0x70e8 // 70e8 + 70d6: 8305 ld.b r0, (r3, 0x5) + 70d8: 3840 cmpnei r0, 0 + 70da: 0c06 bf 0x70e6 // 70e6 + Debug_Inf.TempDiff--; + 70dc: 2800 subi r0, 1 + 70de: 7400 zextb r0, r0 + 70e0: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 70e2: e3fffa2f bsr 0x6540 // 6540 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 70e6: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 70e8: 3a43 cmpnei r2, 3 + 70ea: 0806 bt 0x70f6 // 70f6 + Debug_Inf.BackLight_En = 0x00; + 70ec: 3200 movi r2, 0 + 70ee: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 70f0: 3100 movi r1, 0 + 70f2: 3003 movi r0, 3 + 70f4: 07ec br 0x70cc // 70cc + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 70f6: 3a44 cmpnei r2, 4 + 70f8: 0809 bt 0x710a // 710a + 70fa: 8327 ld.b r1, (r3, 0x7) + 70fc: 3940 cmpnei r1, 0 + 70fe: 0ff4 bf 0x70e6 // 70e6 + Debug_Inf.KSens_Level--; + 7100: 2900 subi r1, 1 + 7102: 7444 zextb r1, r1 + 7104: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 7106: 3004 movi r0, 4 + 7108: 07e2 br 0x70cc // 70cc + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 710a: 3a45 cmpnei r2, 5 + 710c: 0809 bt 0x711e // 711e + 710e: 8323 ld.b r1, (r3, 0x3) + 7110: 3940 cmpnei r1, 0 + 7112: 0fea bf 0x70e6 // 70e6 + Debug_Inf.DevAddr--; //刷新地址 + 7114: 2900 subi r1, 1 + 7116: 7444 zextb r1, r1 + 7118: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 711a: 3005 movi r0, 5 + 711c: 07d8 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 711e: 3a46 cmpnei r2, 6 + 7120: 0809 bt 0x7132 // 7132 + 7122: 8328 ld.b r1, (r3, 0x8) + 7124: 3940 cmpnei r1, 0 + 7126: 0fe0 bf 0x70e6 // 70e6 + Debug_Inf.TempDisplay--; + 7128: 2900 subi r1, 1 + 712a: 7444 zextb r1, r1 + 712c: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 712e: 3006 movi r0, 6 + 7130: 07ce br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 7132: 3a47 cmpnei r2, 7 + 7134: 0809 bt 0x7146 // 7146 + 7136: 8329 ld.b r1, (r3, 0x9) + 7138: 3940 cmpnei r1, 0 + 713a: 0fd6 bf 0x70e6 // 70e6 + Debug_Inf.Language_Selection--; + 713c: 2900 subi r1, 1 + 713e: 7444 zextb r1, r1 + 7140: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 7142: 3007 movi r0, 7 + 7144: 07c4 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 7146: 3a48 cmpnei r2, 8 + 7148: 0bcf bt 0x70e6 // 70e6 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 714a: 3104 movi r1, 4 + 714c: 3008 movi r0, 8 + 714e: 07bf br 0x70cc // 70cc + if(TempCtrl.CardState == CARDIN) + 7150: 1092 lrw r4, 0x2000083c // 7198 + 7152: 8478 ld.b r3, (r4, 0x18) + 7154: 3b41 cmpnei r3, 1 + 7156: 0811 bt 0x7178 // 7178 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7158: 8462 ld.b r3, (r4, 0x2) + 715a: 74ce sextb r3, r3 + 715c: 3bdf btsti r3, 31 + 715e: 0c0d bf 0x7178 // 7178 + TemCtrl_Temperature_Dec(); //设置温度- + 7160: e3fffcb0 bsr 0x6ac0 // 6ac0 + if(g_eeprom.backlight_en == 0x01) + 7164: 106e lrw r3, 0x20000524 // 719c + 7166: 8364 ld.b r3, (r3, 0x4) + 7168: 3b41 cmpnei r3, 1 + 716a: 0807 bt 0x7178 // 7178 + Controlled_LCD_Backlight(0x01); + 716c: 3001 movi r0, 1 + 716e: e3fff915 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 7172: 3001 movi r0, 1 + 7174: e3fff980 bsr 0x6474 // 6474 + TempCtrl.BackLightTick = SysTick_1ms; + 7178: 9560 ld.w r3, (r5, 0x0) + 717a: 4b48 lsri r2, r3, 8 + 717c: a470 st.b r3, (r4, 0x10) + 717e: a451 st.b r2, (r4, 0x11) + 7180: 4b50 lsri r2, r3, 16 + 7182: 4b78 lsri r3, r3, 24 + 7184: a452 st.b r2, (r4, 0x12) + 7186: a473 st.b r3, (r4, 0x13) +} + 7188: 07af br 0x70e6 // 70e6 + 718a: 0000 bkpt + 718c: 0000a8a7 .long 0x0000a8a7 + 7190: 20000868 .long 0x20000868 + 7194: 200000c0 .long 0x200000c0 + 7198: 2000083c .long 0x2000083c + 719c: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY4_Long_Press: + +000071a0 : + +void KEY4_Long_Press(void) +{ + 71a0: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 71a2: 1097 lrw r4, 0x20000868 // 71fc + 71a4: 8460 ld.b r3, (r4, 0x0) + 71a6: 3b40 cmpnei r3, 0 + 71a8: 0829 bt 0x71fa // 71fa + { + Debug_Inf.Press_Flag |= (0x01<<1); + 71aa: 8461 ld.b r3, (r4, 0x1) + 71ac: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 71ae: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 71b0: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 71b2: 0824 bt 0x71fa // 71fa + 71b4: 1073 lrw r3, 0x2000083c // 7200 + 71b6: 8362 ld.b r3, (r3, 0x2) + 71b8: 74ce sextb r3, r3 + 71ba: 3bdf btsti r3, 31 + 71bc: 081f bt 0x71fa // 71fa + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 71be: 1032 lrw r1, 0xa89e // 7204 + 71c0: 3000 movi r0, 0 + 71c2: e3ffe651 bsr 0x3e64 // 3e64 + Debug_Inf.Tick = SysTick_1ms; + 71c6: 1071 lrw r3, 0x200000c0 // 7208 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 71c8: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 71ca: 9360 ld.w r3, (r3, 0x0) + 71cc: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 71ce: 3300 movi r3, 0 + 71d0: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 71d2: 3301 movi r3, 1 + 71d4: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 71d6: a462 st.b r3, (r4, 0x2) + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 71d8: 3001 movi r0, 1 + HT1621.buz_ctrl_flag = 0x01; + 71da: 106d lrw r3, 0x200005e0 // 720c + 71dc: a345 st.b r2, (r3, 0x5) + Controlled_LCD_Backlight(0x01); + 71de: e3fff8dd bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 71e2: 3001 movi r0, 1 + 71e4: e3fff948 bsr 0x6474 // 6474 + HT1621_Clear(); + 71e8: e3fff59a bsr 0x5d1c // 5d1c + Controlled_Buzzer(0x01); + 71ec: 3001 movi r0, 1 + 71ee: e3fff8b1 bsr 0x6350 // 6350 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 71f2: 8424 ld.b r1, (r4, 0x4) + 71f4: 3001 movi r0, 1 + 71f6: e3fff957 bsr 0x64a4 // 64a4 + + } + } +} + 71fa: 1491 pop r4, r15 + 71fc: 20000868 .long 0x20000868 + 7200: 2000083c .long 0x2000083c + 7204: 0000a89e .long 0x0000a89e + 7208: 200000c0 .long 0x200000c0 + 720c: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00007210 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 7210: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 7212: 103e lrw r1, 0xa8be // 7288 + 7214: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 7216: 109e lrw r4, 0x20000868 // 728c + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 7218: e3ffe626 bsr 0x3e64 // 3e64 + if(Debug_Inf.State == 0x00) //正常模式 + 721c: 8460 ld.b r3, (r4, 0x0) + 721e: 3b40 cmpnei r3, 0 + 7220: 081b bt 0x7256 // 7256 + { + if(TempCtrl.CardState == CARDIN) + 7222: 109c lrw r4, 0x2000083c // 7290 + 7224: 8478 ld.b r3, (r4, 0x18) + 7226: 3b41 cmpnei r3, 1 + 7228: 080d bt 0x7242 // 7242 + { + TemCtrl_OnOff_Set(); + 722a: e3fffc7b bsr 0x6b20 // 6b20 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 722e: 107a lrw r3, 0x200000c0 // 7294 + 7230: 9360 ld.w r3, (r3, 0x0) + 7232: 4b48 lsri r2, r3, 8 + 7234: a470 st.b r3, (r4, 0x10) + 7236: a451 st.b r2, (r4, 0x11) + 7238: 4b50 lsri r2, r3, 16 + 723a: 4b78 lsri r3, r3, 24 + 723c: a452 st.b r2, (r4, 0x12) + 723e: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 7240: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 7242: 3001 movi r0, 1 + 7244: e000002e bsr 0x72a0 // 72a0 + Controlled_LCD_Backlight(1); + 7248: 3001 movi r0, 1 + 724a: e3fff8a7 bsr 0x6398 // 6398 + Controlled_Key_Backlight(1); + 724e: 3001 movi r0, 1 + 7250: e3fff912 bsr 0x6474 // 6474 + 7254: 07ed br 0x722e // 722e + else if(Debug_Inf.State == 0x01) //设置模式 + 7256: 3b41 cmpnei r3, 1 + 7258: 0bf4 bt 0x7240 // 7240 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 725a: 1030 lrw r1, 0xa8d3 // 7298 + 725c: 3000 movi r0, 0 + 725e: e3ffe603 bsr 0x3e64 // 3e64 + Debug_Inf.State = 0x00; + 7262: 3300 movi r3, 0 + 7264: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 7266: 3301 movi r3, 1 + HT1621.buz_ctrl_flag = 0x00; + 7268: 3200 movi r2, 0 + Debug_Inf.Page = 0x01; + 726a: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 726c: 106c lrw r3, 0x200005e0 // 729c + 726e: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 7270: e3fff556 bsr 0x5d1c // 5d1c + Controlled_LCD_Backlight(0x00); + 7274: 3000 movi r0, 0 + 7276: e3fff891 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x00); + 727a: 3000 movi r0, 0 + 727c: e3fff8fc bsr 0x6474 // 6474 + Dev_SaveData(); + 7280: e00002dc bsr 0x7838 // 7838 +} + 7284: 07de br 0x7240 // 7240 + 7286: 0000 bkpt + 7288: 0000a8be .long 0x0000a8be + 728c: 20000868 .long 0x20000868 + 7290: 2000083c .long 0x2000083c + 7294: 200000c0 .long 0x200000c0 + 7298: 0000a8d3 .long 0x0000a8d3 + 729c: 200005e0 .long 0x200005e0 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +000072a0 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 72a0: 14d1 push r4, r15 + if(state == TEMP_ON) + 72a2: 3841 cmpnei r0, 1 + 72a4: 0821 bt 0x72e6 // 72e6 + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 72a6: 1072 lrw r3, 0x20000868 // 72ec + 72a8: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 72aa: 1092 lrw r4, 0x2000083c // 72f0 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 72ac: e3fff800 bsr 0x62ac // 62ac + Control_Mode(TempCtrl.TemState_Now.mode); + 72b0: 8402 ld.b r0, (r4, 0x2) + 72b2: 4019 lsli r0, r0, 25 + 72b4: 481d lsri r0, r0, 29 + 72b6: e3fff671 bsr 0x5f98 // 5f98 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 72ba: 8402 ld.b r0, (r4, 0x2) + 72bc: 401c lsli r0, r0, 28 + 72be: 481d lsri r0, r0, 29 + 72c0: e3fff78e bsr 0x61dc // 61dc + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 72c4: 8401 ld.b r0, (r4, 0x1) + 72c6: 3840 cmpnei r0, 0 + 72c8: 0c0c bf 0x72e0 // 72e0 + 72ca: 330a movi r3, 10 + 72cc: 7c0c mult r0, r3 + 72ce: e3fff595 bsr 0x5df8 // 5df8 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 72d2: 8400 ld.b r0, (r4, 0x0) + 72d4: 330a movi r3, 10 + 72d6: 7c0c mult r0, r3 + 72d8: 7401 zexth r0, r0 + 72da: e3fff5f7 bsr 0x5ec8 // 5ec8 + } + else + { + HT1621_Clear(); + } +} + 72de: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 72e0: 30a0 movi r0, 160 + 72e2: 4001 lsli r0, r0, 1 + 72e4: 07f5 br 0x72ce // 72ce + HT1621_Clear(); + 72e6: e3fff51b bsr 0x5d1c // 5d1c +} + 72ea: 07fa br 0x72de // 72de + 72ec: 20000868 .long 0x20000868 + 72f0: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Init: + +000072f4 : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 72f4: 14d0 push r15 + HT1621_ALLON(); + 72f6: e3fff53b bsr 0x5d6c // 5d6c + + delay_nms(5000); + 72fa: 1005 lrw r0, 0x1388 // 730c + 72fc: e3ffdd38 bsr 0x2d6c // 2d6c + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 7300: 1064 lrw r3, 0x2000083c // 7310 + 7302: 8302 ld.b r0, (r3, 0x2) + 7304: 4807 lsri r0, r0, 7 + 7306: e3ffffcd bsr 0x72a0 // 72a0 + +} + 730a: 1490 pop r15 + 730c: 00001388 .long 0x00001388 + 7310: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Task: + +00007314 : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 7314: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 7316: 0168 lrw r3, 0x20000868 // 7670 + 7318: 8360 ld.b r3, (r3, 0x0) + 731a: 3b40 cmpnei r3, 0 + 731c: 0c03 bf 0x7322 // 7322 + 731e: e8000253 br 0x77c4 // 77c4 + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 7322: 018a lrw r4, 0x2000083c // 7674 + 7324: 8451 ld.b r2, (r4, 0x11) + 7326: 8470 ld.b r3, (r4, 0x10) + 7328: 4248 lsli r2, r2, 8 + 732a: 6c8c or r2, r3 + 732c: 8472 ld.b r3, (r4, 0x12) + 732e: 4370 lsli r3, r3, 16 + 7330: 6c8c or r2, r3 + 7332: 8473 ld.b r3, (r4, 0x13) + 7334: 01ae lrw r5, 0x200000c0 // 7678 + 7336: 4378 lsli r3, r3, 24 + 7338: 6cc8 or r3, r2 + 733a: 9520 ld.w r1, (r5, 0x0) + 733c: 604e subu r1, r3 + 733e: 014f lrw r2, 0xbb8 // 767c + 7340: 6448 cmphs r2, r1 + 7342: 08b7 bt 0x74b0 // 74b0 + 7344: 8458 ld.b r2, (r4, 0x18) + 7346: 3a40 cmpnei r2, 0 + 7348: 08b4 bt 0x74b0 // 74b0 + { + TempCtrl.BackLightTick = SysTick_1ms; + 734a: 9560 ld.w r3, (r5, 0x0) + 734c: 4b48 lsri r2, r3, 8 + 734e: a470 st.b r3, (r4, 0x10) + 7350: a451 st.b r2, (r4, 0x11) + 7352: 4b50 lsri r2, r3, 16 + 7354: 4b78 lsri r3, r3, 24 + 7356: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 7358: 3300 movi r3, 0 + 735a: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 735c: 8462 ld.b r3, (r4, 0x2) + 735e: 74ce sextb r3, r3 + 7360: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 7362: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 7364: 0803 bt 0x736a // 736a + { + HT1621_Clear(); + 7366: e3fff4db bsr 0x5d1c // 5d1c + } + //关背光 + Controlled_LCD_Backlight(0); + 736a: 3000 movi r0, 0 + 736c: e3fff816 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x00); + 7370: 3000 movi r0, 0 + 7372: e3fff881 bsr 0x6474 // 6474 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 7376: 013c lrw r1, 0xa8dd // 7680 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 7378: 3000 movi r0, 0 + 737a: e3ffe575 bsr 0x3e64 // 3e64 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 737e: 8455 ld.b r2, (r4, 0x15) + 7380: 8474 ld.b r3, (r4, 0x14) + 7382: 4248 lsli r2, r2, 8 + 7384: 6c8c or r2, r3 + 7386: 8476 ld.b r3, (r4, 0x16) + 7388: 4370 lsli r3, r3, 16 + 738a: 6c8c or r2, r3 + 738c: 8477 ld.b r3, (r4, 0x17) + 738e: 4378 lsli r3, r3, 24 + 7390: 6cc8 or r3, r2 + 7392: 9520 ld.w r1, (r5, 0x0) + 7394: 604e subu r1, r3 + 7396: 33fa movi r3, 250 + 7398: 4362 lsli r3, r3, 2 + 739a: 644c cmphs r3, r1 + 739c: 081b bt 0x73d2 // 73d2 + { + TempCtrl.SceneNoTick = SysTick_1ms; + 739e: 9560 ld.w r3, (r5, 0x0) + 73a0: 4b48 lsri r2, r3, 8 + 73a2: a474 st.b r3, (r4, 0x14) + 73a4: a455 st.b r2, (r4, 0x15) + 73a6: 4b50 lsri r2, r3, 16 + 73a8: 4b78 lsri r3, r3, 24 + 73aa: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 73ac: 847b ld.b r3, (r4, 0x1b) + 73ae: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 73b0: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 73b2: 08a7 bt 0x7500 // 7500 + 73b4: 847c ld.b r3, (r4, 0x1c) + 73b6: 3b41 cmpnei r3, 1 + 73b8: 08a4 bt 0x7500 // 7500 + { + TempCtrl.SceneFlag = 0x00; + 73ba: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 73bc: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 73be: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 73c0: e3fff7ec bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x00); + 73c4: 3000 movi r0, 0 + 73c6: e3fff857 bsr 0x6474 // 6474 + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 73ca: 0230 lrw r1, 0xa8ff // 7684 + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 73cc: 3000 movi r0, 0 + 73ce: e3ffe54b bsr 0x3e64 // 3e64 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 73d2: 02f1 lrw r7, 0x20000524 // 7688 + 73d4: 8764 ld.b r3, (r7, 0x4) + 73d6: 3b41 cmpnei r3, 1 + 73d8: 081e bt 0x7414 // 7414 + 73da: 8451 ld.b r2, (r4, 0x11) + 73dc: 8470 ld.b r3, (r4, 0x10) + 73de: 4248 lsli r2, r2, 8 + 73e0: 6c8c or r2, r3 + 73e2: 8472 ld.b r3, (r4, 0x12) + 73e4: 4370 lsli r3, r3, 16 + 73e6: 6c8c or r2, r3 + 73e8: 8473 ld.b r3, (r4, 0x13) + 73ea: 4378 lsli r3, r3, 24 + 73ec: 6cc8 or r3, r2 + 73ee: 9520 ld.w r1, (r5, 0x0) + 73f0: 604e subu r1, r3 + 73f2: 0278 lrw r3, 0x1388 // 768c + 73f4: 644c cmphs r3, r1 + 73f6: 080f bt 0x7414 // 7414 + { + TempCtrl.BackLightTick = SysTick_1ms; + 73f8: 9560 ld.w r3, (r5, 0x0) + 73fa: 4b48 lsri r2, r3, 8 + 73fc: a470 st.b r3, (r4, 0x10) + 73fe: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 7400: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 7402: 4b50 lsri r2, r3, 16 + 7404: 4b78 lsri r3, r3, 24 + 7406: a452 st.b r2, (r4, 0x12) + 7408: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 740a: e3fff7c7 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x00); + 740e: 3000 movi r0, 0 + 7410: e3fff832 bsr 0x6474 // 6474 + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7414: 8402 ld.b r0, (r4, 0x2) + 7416: 74c2 sextb r3, r0 + 7418: 3bdf btsti r3, 31 + 741a: 03c1 lrw r6, 0x2000085c // 7690 + 741c: 0d4a bf 0x76b0 // 76b0 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 741e: 8466 ld.b r3, (r4, 0x6) + 7420: 4019 lsli r0, r0, 25 + 7422: 4359 lsli r2, r3, 25 + 7424: 481d lsri r0, r0, 29 + 7426: 4a5d lsri r2, r2, 29 + 7428: 640a cmpne r2, r0 + 742a: 0c21 bf 0x746c // 746c + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 742c: 3170 movi r1, 112 + 742e: 4044 lsli r2, r0, 4 + 7430: 68c5 andn r3, r1 + 7432: 6cc8 or r3, r2 + 7434: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 7436: e3fff5b1 bsr 0x5f98 // 5f98 + + SYSCON->UREG0 &= 0xFFFF00FF; + 743a: 0368 lrw r3, 0x2000005c // 7694 + 743c: 31ff movi r1, 255 + 743e: 9340 ld.w r2, (r3, 0x0) + 7440: 22ff addi r2, 256 + 7442: 9260 ld.w r3, (r2, 0x0) + 7444: 4128 lsli r1, r1, 8 + 7446: 68c5 andn r3, r1 + 7448: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 744a: 8462 ld.b r3, (r4, 0x2) + 744c: 4379 lsli r3, r3, 25 + 744e: 4b7d lsri r3, r3, 29 + 7450: 9220 ld.w r1, (r2, 0x0) + 7452: 4368 lsli r3, r3, 8 + 7454: 6cc4 or r3, r1 + 7456: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7458: 3301 movi r3, 1 + 745a: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 745c: 9560 ld.w r3, (r5, 0x0) + 745e: 4b28 lsri r1, r3, 8 + 7460: a665 st.b r3, (r6, 0x5) + 7462: a626 st.b r1, (r6, 0x6) + 7464: 4b30 lsri r1, r3, 16 + 7466: 4b78 lsri r3, r3, 24 + 7468: a627 st.b r1, (r6, 0x7) + 746a: a668 st.b r3, (r6, 0x8) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 746c: 8402 ld.b r0, (r4, 0x2) + 746e: 8466 ld.b r3, (r4, 0x6) + 7470: 401c lsli r0, r0, 28 + 7472: 437c lsli r3, r3, 28 + 7474: 4b7d lsri r3, r3, 29 + 7476: 481d lsri r0, r0, 29 + 7478: 640e cmpne r3, r0 + 747a: 0377 lrw r3, 0x20000234 // 7698 + 747c: 0804 bt 0x7484 // 7484 + 747e: 8340 ld.b r2, (r3, 0x0) + 7480: 3a41 cmpnei r2, 1 + 7482: 087b bt 0x7578 // 7578 + { + OpenDisPlay_Flag = 0x00; + 7484: 3200 movi r2, 0 + 7486: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 7488: 8466 ld.b r3, (r4, 0x6) + 748a: 310e movi r1, 14 + 748c: 4041 lsli r2, r0, 1 + 748e: 68c5 andn r3, r1 + 7490: 6cc8 or r3, r2 + 7492: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 7494: e3fff6a4 bsr 0x61dc // 61dc + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 7498: 3270 movi r2, 112 + 749a: 8462 ld.b r3, (r4, 0x2) + 749c: 68c8 and r3, r2 + 749e: 3240 movi r2, 64 + 74a0: 648e cmpne r3, r2 + 74a2: 0843 bt 0x7528 // 7528 + 74a4: 8761 ld.b r3, (r7, 0x1) + 74a6: 3b42 cmpnei r3, 2 + 74a8: 0840 bt 0x7528 // 7528 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 74aa: e00002a1 bsr 0x79ec // 79ec + break; + 74ae: 044b br 0x7544 // 7544 + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 74b0: 9540 ld.w r2, (r5, 0x0) + 74b2: 608e subu r2, r3 + 74b4: 33fa movi r3, 250 + 74b6: 4363 lsli r3, r3, 3 + 74b8: 648c cmphs r3, r2 + 74ba: 0b62 bt 0x737e // 737e + 74bc: 8478 ld.b r3, (r4, 0x18) + 74be: 3b41 cmpnei r3, 1 + 74c0: 0b5f bt 0x737e // 737e + 74c2: 8479 ld.b r3, (r4, 0x19) + 74c4: 3b41 cmpnei r3, 1 + 74c6: 0b5c bt 0x737e // 737e + TempCtrl.BackLightTick = SysTick_1ms; + 74c8: 9560 ld.w r3, (r5, 0x0) + 74ca: 4b48 lsri r2, r3, 8 + 74cc: a470 st.b r3, (r4, 0x10) + 74ce: a451 st.b r2, (r4, 0x11) + 74d0: 4b50 lsri r2, r3, 16 + 74d2: 4b78 lsri r3, r3, 24 + 74d4: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 74d6: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 74d8: 3300 movi r3, 0 + 74da: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 74dc: 74c2 sextb r3, r0 + 74de: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 74e0: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 74e2: 0f4e bf 0x737e // 737e + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 74e4: 4807 lsri r0, r0, 7 + 74e6: e3fffedd bsr 0x72a0 // 72a0 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 74ea: 847b ld.b r3, (r4, 0x1b) + 74ec: 3b44 cmpnei r3, 4 + 74ee: 0f48 bf 0x737e // 737e + Controlled_LCD_Backlight(1); + 74f0: 3001 movi r0, 1 + 74f2: e3fff753 bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 74f6: 3001 movi r0, 1 + 74f8: e3fff7be bsr 0x6474 // 6474 + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 74fc: 1328 lrw r1, 0xa8ef // 769c + 74fe: 073d br 0x7378 // 7378 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 7500: 8462 ld.b r3, (r4, 0x2) + 7502: 74ce sextb r3, r3 + 7504: 3bdf btsti r3, 31 + 7506: 0f66 bf 0x73d2 // 73d2 + 7508: 8478 ld.b r3, (r4, 0x18) + 750a: 3b41 cmpnei r3, 1 + 750c: 0b63 bt 0x73d2 // 73d2 + 750e: 847c ld.b r3, (r4, 0x1c) + 7510: 3b41 cmpnei r3, 1 + 7512: 0b60 bt 0x73d2 // 73d2 + TempCtrl.SceneFlag = 0x00; + 7514: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 7516: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 7518: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 751a: e3fff73f bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x01); + 751e: 3001 movi r0, 1 + 7520: e3fff7aa bsr 0x6474 // 6474 + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 7524: 123f lrw r1, 0xa90f // 76a0 + 7526: 0753 br 0x73cc // 73cc + switch(TempCtrl.TemState_Now.fan) + 7528: 8402 ld.b r0, (r4, 0x2) + 752a: 401c lsli r0, r0, 28 + 752c: 481d lsri r0, r0, 29 + 752e: 3804 cmphsi r0, 5 + 7530: 080a bt 0x7544 // 7544 + 7532: e3ffcbef bsr 0xd10 // d10 <___gnu_csky_case_shi> + 7536: 0005 .short 0x0005 + 7538: 014b0148 .long 0x014b0148 + 753c: ffba0007 .long 0xffba0007 + Relay_Low(); + 7540: e0000248 bsr 0x79d0 // 79d0 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 7544: 1274 lrw r3, 0x2000005c // 7694 + 7546: 31ff movi r1, 255 + 7548: 9340 ld.w r2, (r3, 0x0) + 754a: 22ff addi r2, 256 + 754c: 9260 ld.w r3, (r2, 0x0) + 754e: 4130 lsli r1, r1, 16 + 7550: 68c5 andn r3, r1 + 7552: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 7554: 8462 ld.b r3, (r4, 0x2) + 7556: 437c lsli r3, r3, 28 + 7558: 4b7d lsri r3, r3, 29 + 755a: 9220 ld.w r1, (r2, 0x0) + 755c: 4370 lsli r3, r3, 16 + 755e: 6cc4 or r3, r1 + 7560: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7562: 3301 movi r3, 1 + 7564: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7566: 9560 ld.w r3, (r5, 0x0) + 7568: 124f lrw r2, 0x20000861 // 76a4 + 756a: 4b28 lsri r1, r3, 8 + 756c: a260 st.b r3, (r2, 0x0) + 756e: a221 st.b r1, (r2, 0x1) + 7570: 4b30 lsri r1, r3, 16 + 7572: 4b78 lsri r3, r3, 24 + 7574: a222 st.b r1, (r2, 0x2) + 7576: a263 st.b r3, (r2, 0x3) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 7578: 8401 ld.b r0, (r4, 0x1) + 757a: 8465 ld.b r3, (r4, 0x5) + 757c: 640e cmpne r3, r0 + 757e: 0c1f bf 0x75bc // 75bc + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 7580: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 7582: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 7584: 0927 bt 0x77d2 // 77d2 + { + Set_Temperature_Display(320); + 7586: 30a0 movi r0, 160 + 7588: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 758a: e3fff437 bsr 0x5df8 // 5df8 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 758e: 1262 lrw r3, 0x2000005c // 7694 + 7590: 9360 ld.w r3, (r3, 0x0) + 7592: 23ff addi r3, 256 + 7594: 9340 ld.w r2, (r3, 0x0) + 7596: 4248 lsli r2, r2, 8 + 7598: 4a48 lsri r2, r2, 8 + 759a: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 759c: 8441 ld.b r2, (r4, 0x1) + 759e: 9320 ld.w r1, (r3, 0x0) + 75a0: 4258 lsli r2, r2, 24 + 75a2: 6c84 or r2, r1 + 75a4: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 75a6: 3301 movi r3, 1 + 75a8: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 75aa: 9560 ld.w r3, (r5, 0x0) + 75ac: 115e lrw r2, 0x20000861 // 76a4 + 75ae: 4b28 lsri r1, r3, 8 + 75b0: a260 st.b r3, (r2, 0x0) + 75b2: a221 st.b r1, (r2, 0x1) + 75b4: 4b30 lsri r1, r3, 16 + 75b6: 4b78 lsri r3, r3, 24 + 75b8: a222 st.b r1, (r2, 0x2) + 75ba: a263 st.b r3, (r2, 0x3) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 75bc: 8409 ld.b r0, (r4, 0x9) + 75be: 8468 ld.b r3, (r4, 0x8) + 75c0: 4008 lsli r0, r0, 8 + 75c2: 6c0c or r0, r3 + 75c4: 846b ld.b r3, (r4, 0xb) + 75c6: 844a ld.b r2, (r4, 0xa) + 75c8: 4368 lsli r3, r3, 8 + 75ca: 6cc8 or r3, r2 + 75cc: 640e cmpne r3, r0 + 75ce: 0c12 bf 0x75f2 // 75f2 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 75d0: 4868 lsri r3, r0, 8 + 75d2: a46b st.b r3, (r4, 0xb) + 75d4: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 75d6: e3fff479 bsr 0x5ec8 // 5ec8 + + SYSCON->UREG0 &= 0x00FFFFFF; + 75da: 116f lrw r3, 0x2000005c // 7694 + 75dc: 9360 ld.w r3, (r3, 0x0) + 75de: 23ff addi r3, 256 + 75e0: 9340 ld.w r2, (r3, 0x0) + 75e2: 4248 lsli r2, r2, 8 + 75e4: 4a48 lsri r2, r2, 8 + 75e6: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 75e8: 8441 ld.b r2, (r4, 0x1) + 75ea: 9320 ld.w r1, (r3, 0x0) + 75ec: 4258 lsli r2, r2, 24 + 75ee: 6c84 or r2, r1 + 75f0: b340 st.w r2, (r3, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 75f2: 844f ld.b r2, (r4, 0xf) + 75f4: 846e ld.b r3, (r4, 0xe) + 75f6: 4248 lsli r2, r2, 8 + 75f8: 6c8c or r2, r3 + 75fa: 846d ld.b r3, (r4, 0xd) + 75fc: 842c ld.b r1, (r4, 0xc) + 75fe: 4368 lsli r3, r3, 8 + 7600: 6cc4 or r3, r1 + 7602: 648c cmphs r3, r2 + 7604: 0804 bt 0x760c // 760c + 7606: 5a2d subu r1, r2, r3 + 7608: 392a cmplti r1, 11 + 760a: 0c06 bf 0x7616 // 7616 + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 760c: 64c8 cmphs r2, r3 + 760e: 0812 bt 0x7632 // 7632 + 7610: 5b49 subu r2, r3, r2 + 7612: 3a2a cmplti r2, 11 + 7614: 080f bt 0x7632 // 7632 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 7616: 9540 ld.w r2, (r5, 0x0) + 7618: 1124 lrw r1, 0x2000085d // 76a8 + 761a: 4a08 lsri r0, r2, 8 + 761c: a140 st.b r2, (r1, 0x0) + 761e: a101 st.b r0, (r1, 0x1) + 7620: 4a10 lsri r0, r2, 16 + 7622: 4a58 lsri r2, r2, 24 + 7624: a143 st.b r2, (r1, 0x3) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7626: 4b48 lsri r2, r3, 8 + 7628: a44f st.b r2, (r4, 0xf) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 762a: 3201 movi r2, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 762c: a102 st.b r0, (r1, 0x2) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 762e: a46e st.b r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 7630: a640 st.b r2, (r6, 0x0) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 7632: 8602 ld.b r0, (r6, 0x2) + 7634: 8641 ld.b r2, (r6, 0x1) + 7636: 4008 lsli r0, r0, 8 + 7638: 6c08 or r0, r2 + 763a: 8643 ld.b r2, (r6, 0x3) + 763c: 4250 lsli r2, r2, 16 + 763e: 6c08 or r0, r2 + 7640: 8644 ld.b r2, (r6, 0x4) + 7642: 4258 lsli r2, r2, 24 + 7644: 6c80 or r2, r0 + 7646: 9520 ld.w r1, (r5, 0x0) + 7648: 604a subu r1, r2 + 764a: 1059 lrw r2, 0x752f // 76ac + 764c: 6448 cmphs r2, r1 + 764e: 0831 bt 0x76b0 // 76b0 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 7650: 9540 ld.w r2, (r5, 0x0) + 7652: 1036 lrw r1, 0x2000085d // 76a8 + 7654: 4a08 lsri r0, r2, 8 + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7656: a46e st.b r3, (r4, 0xe) + 7658: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 765a: a140 st.b r2, (r1, 0x0) + 765c: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 765e: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7660: 4a10 lsri r0, r2, 16 + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 7662: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7664: 4a58 lsri r2, r2, 24 + 7666: a102 st.b r0, (r1, 0x2) + 7668: a143 st.b r2, (r1, 0x3) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 766a: a660 st.b r3, (r6, 0x0) + 766c: 0422 br 0x76b0 // 76b0 + 766e: 0000 bkpt + 7670: 20000868 .long 0x20000868 + 7674: 2000083c .long 0x2000083c + 7678: 200000c0 .long 0x200000c0 + 767c: 00000bb8 .long 0x00000bb8 + 7680: 0000a8dd .long 0x0000a8dd + 7684: 0000a8ff .long 0x0000a8ff + 7688: 20000524 .long 0x20000524 + 768c: 00001388 .long 0x00001388 + 7690: 2000085c .long 0x2000085c + 7694: 2000005c .long 0x2000005c + 7698: 20000234 .long 0x20000234 + 769c: 0000a8ef .long 0x0000a8ef + 76a0: 0000a90f .long 0x0000a90f + 76a4: 20000861 .long 0x20000861 + 76a8: 2000085d .long 0x2000085d + 76ac: 0000752f .long 0x0000752f + + } + } + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 76b0: 8462 ld.b r3, (r4, 0x2) + 76b2: 8446 ld.b r2, (r4, 0x6) + 76b4: 4b07 lsri r0, r3, 7 + 76b6: 4a47 lsri r2, r2, 7 + 76b8: 640a cmpne r2, r0 + 76ba: 0c31 bf 0x771c // 771c + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ + 76bc: 74ce sextb r3, r3 + 76be: 3bdf btsti r3, 31 + 76c0: 1267 lrw r3, 0x200005e0 // 77dc + 76c2: 0c8b bf 0x77d8 // 77d8 + OpenDisPlay_Flag = 1; //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 76c4: 1247 lrw r2, 0x20000234 // 77e0 + 76c6: 3101 movi r1, 1 + 76c8: a220 st.b r1, (r2, 0x0) + HT1621.buz_ctrl_flag = 0x01; + 76ca: 3201 movi r2, 1 + }else{ + HT1621.buz_ctrl_flag = 0x00; + 76cc: a345 st.b r2, (r3, 0x5) + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 76ce: 317f movi r1, 127 + 76d0: 8466 ld.b r3, (r4, 0x6) + 76d2: 4047 lsli r2, r0, 7 + 76d4: 68c4 and r3, r1 + 76d6: 6cc8 or r3, r2 + 76d8: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 76da: e3fff65f bsr 0x6398 // 6398 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 76de: 8402 ld.b r0, (r4, 0x2) + 76e0: 4807 lsri r0, r0, 7 + 76e2: e3fff6c9 bsr 0x6474 // 6474 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 76e6: 8402 ld.b r0, (r4, 0x2) + 76e8: 4807 lsri r0, r0, 7 + 76ea: e3fffddb bsr 0x72a0 // 72a0 + + + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 76ee: 117e lrw r3, 0x2000005c // 77e4 + 76f0: 31ff movi r1, 255 + 76f2: 9340 ld.w r2, (r3, 0x0) + 76f4: 22ff addi r2, 256 + 76f6: 9260 ld.w r3, (r2, 0x0) + 76f8: 68c5 andn r3, r1 + 76fa: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 76fc: 8462 ld.b r3, (r4, 0x2) + 76fe: 9220 ld.w r1, (r2, 0x0) + 7700: 4b67 lsri r3, r3, 7 + 7702: 6cc4 or r3, r1 + 7704: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7706: 3301 movi r3, 1 + 7708: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 770a: 9560 ld.w r3, (r5, 0x0) + 770c: 1157 lrw r2, 0x20000861 // 77e8 + 770e: 4b28 lsri r1, r3, 8 + 7710: a260 st.b r3, (r2, 0x0) + 7712: a221 st.b r1, (r2, 0x1) + 7714: 4b30 lsri r1, r3, 16 + 7716: 4b78 lsri r3, r3, 24 + 7718: a222 st.b r1, (r2, 0x2) + 771a: a263 st.b r3, (r2, 0x3) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 771c: 8660 ld.b r3, (r6, 0x0) + 771e: 3b41 cmpnei r3, 1 + 7720: 082b bt 0x7776 // 7776 + 7722: 8646 ld.b r2, (r6, 0x6) + 7724: 8665 ld.b r3, (r6, 0x5) + 7726: 4248 lsli r2, r2, 8 + 7728: 6c8c or r2, r3 + 772a: 8667 ld.b r3, (r6, 0x7) + 772c: 4370 lsli r3, r3, 16 + 772e: 6c8c or r2, r3 + 7730: 8668 ld.b r3, (r6, 0x8) + 7732: 4378 lsli r3, r3, 24 + 7734: 6cc8 or r3, r2 + 7736: 9520 ld.w r1, (r5, 0x0) + 7738: 604e subu r1, r3 + 773a: 116d lrw r3, 0x3e7 // 77ec + 773c: 644c cmphs r3, r1 + 773e: 081c bt 0x7776 // 7776 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 7740: 9560 ld.w r3, (r5, 0x0) + 7742: 114a lrw r2, 0x20000861 // 77e8 + 7744: 4b28 lsri r1, r3, 8 + 7746: a260 st.b r3, (r2, 0x0) + 7748: a221 st.b r1, (r2, 0x1) + 774a: 4b30 lsri r1, r3, 16 + 774c: 4b78 lsri r3, r3, 24 + 774e: a263 st.b r3, (r2, 0x3) + TempCtrl.TempChange_Flag = 0x00; + 7750: 3300 movi r3, 0 + 7752: a660 st.b r3, (r6, 0x0) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 7754: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7756: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7758: 1146 lrw r2, 0x2000085d // 77f0 + 775a: 4b28 lsri r1, r3, 8 + 775c: a260 st.b r3, (r2, 0x0) + 775e: a221 st.b r1, (r2, 0x1) + 7760: 4b30 lsri r1, r3, 16 + 7762: 4b78 lsri r3, r3, 24 + 7764: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7766: 8767 ld.b r3, (r7, 0x7) + 7768: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 776a: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 776c: 0805 bt 0x7776 // 7776 + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 776e: 30fa movi r0, 250 + 7770: 4002 lsli r0, r0, 2 + 7772: e0000255 bsr 0x7c1c // 7c1c + } + + } + + // 状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 7776: 8646 ld.b r2, (r6, 0x6) + 7778: 8665 ld.b r3, (r6, 0x5) + 777a: 4248 lsli r2, r2, 8 + 777c: 6c8c or r2, r3 + 777e: 8667 ld.b r3, (r6, 0x7) + 7780: 4370 lsli r3, r3, 16 + 7782: 6c8c or r2, r3 + 7784: 8668 ld.b r3, (r6, 0x8) + 7786: 4378 lsli r3, r3, 24 + 7788: 6cc8 or r3, r2 + 778a: 9520 ld.w r1, (r5, 0x0) + 778c: 604e subu r1, r3 + 778e: 107a lrw r3, 0x493df // 77f4 + 7790: 644c cmphs r3, r1 + 7792: 0819 bt 0x77c4 // 77c4 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 7794: 9560 ld.w r3, (r5, 0x0) + 7796: 1055 lrw r2, 0x20000861 // 77e8 + 7798: 4b28 lsri r1, r3, 8 + 779a: a260 st.b r3, (r2, 0x0) + 779c: a221 st.b r1, (r2, 0x1) + 779e: 4b30 lsri r1, r3, 16 + 77a0: 4b78 lsri r3, r3, 24 + 77a2: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 77a4: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 77a6: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 77a8: 1052 lrw r2, 0x2000085d // 77f0 + 77aa: 4b28 lsri r1, r3, 8 + 77ac: a260 st.b r3, (r2, 0x0) + 77ae: a221 st.b r1, (r2, 0x1) + 77b0: 4b30 lsri r1, r3, 16 + 77b2: 4b78 lsri r3, r3, 24 + 77b4: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 77b6: 8767 ld.b r3, (r7, 0x7) + 77b8: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 77ba: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 77bc: 0804 bt 0x77c4 // 77c4 + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 77be: 100f lrw r0, 0xea60 // 77f8 + 77c0: e000022e bsr 0x7c1c // 7c1c + } + } + } +} + 77c4: 1494 pop r4-r7, r15 + Relay_Mid(); + 77c6: e00000f7 bsr 0x79b4 // 79b4 + break; + 77ca: 06bd br 0x7544 // 7544 + Relay_High(); + 77cc: e00000e6 bsr 0x7998 // 7998 + break; + 77d0: 06ba br 0x7544 // 7544 + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 77d2: 330a movi r3, 10 + 77d4: 7c0c mult r0, r3 + 77d6: 06da br 0x758a // 758a + HT1621.buz_ctrl_flag = 0x00; + 77d8: 3200 movi r2, 0 + 77da: 0779 br 0x76cc // 76cc + 77dc: 200005e0 .long 0x200005e0 + 77e0: 20000234 .long 0x20000234 + 77e4: 2000005c .long 0x2000005c + 77e8: 20000861 .long 0x20000861 + 77ec: 000003e7 .long 0x000003e7 + 77f0: 2000085d .long 0x2000085d + 77f4: 000493df .long 0x000493df + 77f8: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Debug_Init: + +000077fc : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 77fc: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 77fe: 108d lrw r4, 0x20000868 // 7830 + 7800: 3210 movi r2, 16 + 7802: 3100 movi r1, 0 + 7804: 6c13 mov r0, r4 + 7806: e3ffd0cb bsr 0x199c // 199c <__memset_fast> + Debug_Inf.Page = 0x01; + 780a: 3301 movi r3, 1 + 780c: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 780e: 106a lrw r3, 0x20000524 // 7834 + 7810: 8340 ld.b r2, (r3, 0x0) + 7812: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 7814: 8341 ld.b r2, (r3, 0x1) + 7816: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 7818: 8342 ld.b r2, (r3, 0x2) + 781a: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 781c: 8344 ld.b r2, (r3, 0x4) + 781e: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 7820: 8345 ld.b r2, (r3, 0x5) + 7822: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7824: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 7826: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7828: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 782a: a469 st.b r3, (r4, 0x9) + + +} + 782c: 1491 pop r4, r15 + 782e: 0000 bkpt + 7830: 20000868 .long 0x20000868 + 7834: 20000524 .long 0x20000524 + +Disassembly of section .text.Dev_SaveData: + +00007838 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 7838: 14d1 push r4, r15 + 783a: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 783c: 1165 lrw r3, 0x20000868 // 78d0 + 783e: 1186 lrw r4, 0x20000524 // 78d4 + 7840: 8343 ld.b r2, (r3, 0x3) + 7842: 8420 ld.b r1, (r4, 0x0) + 7844: 6486 cmpne r1, r2 + 7846: 0819 bt 0x7878 // 7878 + 7848: 8304 ld.b r0, (r3, 0x4) + 784a: 8421 ld.b r1, (r4, 0x1) + 784c: 6442 cmpne r0, r1 + 784e: 0815 bt 0x7878 // 7878 + 7850: 8305 ld.b r0, (r3, 0x5) + 7852: 8422 ld.b r1, (r4, 0x2) + 7854: 6442 cmpne r0, r1 + 7856: 0811 bt 0x7878 // 7878 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 7858: 8306 ld.b r0, (r3, 0x6) + 785a: 8424 ld.b r1, (r4, 0x4) + 785c: 6442 cmpne r0, r1 + 785e: 080d bt 0x7878 // 7878 + 7860: 8307 ld.b r0, (r3, 0x7) + 7862: 8425 ld.b r1, (r4, 0x5) + 7864: 6442 cmpne r0, r1 + 7866: 0809 bt 0x7878 // 7878 + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 7868: 8308 ld.b r0, (r3, 0x8) + 786a: 8423 ld.b r1, (r4, 0x3) + 786c: 6442 cmpne r0, r1 + 786e: 0805 bt 0x7878 // 7878 + 7870: 8309 ld.b r0, (r3, 0x9) + 7872: 8426 ld.b r1, (r4, 0x6) + 7874: 6442 cmpne r0, r1 + 7876: 0c2b bf 0x78cc // 78cc + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 7878: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 787a: 8344 ld.b r2, (r3, 0x4) + 787c: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 787e: 8345 ld.b r2, (r3, 0x5) + 7880: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 7882: 8346 ld.b r2, (r3, 0x6) + 7884: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 7886: 8347 ld.b r2, (r3, 0x7) + 7888: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 788a: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 788c: 1012 lrw r0, 0x20000524 // 78d4 + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 788e: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7890: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7892: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 7894: e3ffe800 bsr 0x4894 // 4894 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 7898: 8425 ld.b r1, (r4, 0x5) + 789a: b822 st.w r1, (r14, 0x8) + 789c: 8424 ld.b r1, (r4, 0x4) + 789e: b821 st.w r1, (r14, 0x4) + 78a0: 8422 ld.b r1, (r4, 0x2) + 78a2: 8461 ld.b r3, (r4, 0x1) + 78a4: 8440 ld.b r2, (r4, 0x0) + 78a6: b820 st.w r1, (r14, 0x0) + 78a8: 3000 movi r0, 0 + 78aa: 102c lrw r1, 0xa922 // 78d8 + 78ac: e3ffe2dc bsr 0x3e64 // 3e64 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 78b0: 8466 ld.b r3, (r4, 0x6) + 78b2: 8443 ld.b r2, (r4, 0x3) + 78b4: 3000 movi r0, 0 + 78b6: 102a lrw r1, 0xa96e // 78dc + 78b8: e3ffe2d6 bsr 0x3e64 // 3e64 + g_eeprom.temp_select,g_eeprom.langue_select); + + //boot + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 78bc: 1009 lrw r0, 0x2000052c // 78e0 + 78be: 8460 ld.b r3, (r4, 0x0) + 78c0: 8040 ld.b r2, (r0, 0x0) + 78c2: 64ca cmpne r2, r3 + 78c4: 0c04 bf 0x78cc // 78cc + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 78c6: a060 st.b r3, (r0, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 78c8: e3ffea0a bsr 0x4cdc // 4cdc + } + + } +} + 78cc: 1403 addi r14, r14, 12 + 78ce: 1491 pop r4, r15 + 78d0: 20000868 .long 0x20000868 + 78d4: 20000524 .long 0x20000524 + 78d8: 0000a922 .long 0x0000a922 + 78dc: 0000a96e .long 0x0000a96e + 78e0: 2000052c .long 0x2000052c + +Disassembly of section .text.Debug_Task: + +000078e4 : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 78e4: 14d0 push r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 78e6: 1074 lrw r3, 0x20000868 // 7934 + 78e8: 8340 ld.b r2, (r3, 0x0) + 78ea: 3a41 cmpnei r2, 1 + 78ec: 0822 bt 0x7930 // 7930 + 78ee: 1033 lrw r1, 0x200000c0 // 7938 + 78f0: 9140 ld.w r2, (r1, 0x0) + 78f2: 9303 ld.w r0, (r3, 0xc) + 78f4: 6082 subu r2, r0 + 78f6: 1012 lrw r0, 0x2710 // 793c + 78f8: 6480 cmphs r0, r2 + 78fa: 081b bt 0x7930 // 7930 + 78fc: 8342 ld.b r2, (r3, 0x2) + 78fe: 3a48 cmpnei r2, 8 + 7900: 0c18 bf 0x7930 // 7930 + { + Debug_Inf.Tick = SysTick_1ms; + 7902: 9140 ld.w r2, (r1, 0x0) + 7904: b343 st.w r2, (r3, 0xc) + Debug_Inf.State = 0x00; + 7906: 3200 movi r2, 0 + 7908: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 790a: 3201 movi r2, 1 + 790c: a342 st.b r2, (r3, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 790e: 106d lrw r3, 0x200005e0 // 7940 + 7910: 3200 movi r2, 0 + 7912: a345 st.b r2, (r3, 0x5) + + Dev_SaveData(); + 7914: e3ffff92 bsr 0x7838 // 7838 + + HT1621_Clear(); + 7918: e3fff202 bsr 0x5d1c // 5d1c + //关背光 + Controlled_LCD_Backlight(0x00); + 791c: 3000 movi r0, 0 + 791e: e3fff53d bsr 0x6398 // 6398 + Controlled_Key_Backlight(0x00); + 7922: 3000 movi r0, 0 + 7924: e3fff5a8 bsr 0x6474 // 6474 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 7928: 1027 lrw r1, 0xa99e // 7944 + 792a: 3000 movi r0, 0 + 792c: e3ffe29c bsr 0x3e64 // 3e64 + } + 7930: 1490 pop r15 + 7932: 0000 bkpt + 7934: 20000868 .long 0x20000868 + 7938: 200000c0 .long 0x200000c0 + 793c: 00002710 .long 0x00002710 + 7940: 200005e0 .long 0x200005e0 + 7944: 0000a99e .long 0x0000a99e + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00007948 : + * @brief 产生继电器控制动作检测 + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7948: 14d3 push r4-r6, r15 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + if(rly_id >= RLY_MAX) return; + + if(c_rly.rly_state[rly_id] != state) + 794a: 10a9 lrw r5, 0x20000878 // 796c + 794c: 5d80 addu r4, r5, r0 + 794e: 8463 ld.b r3, (r4, 0x3) + 7950: 644e cmpne r3, r1 +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7952: 6d87 mov r6, r1 + if(c_rly.rly_state[rly_id] != state) + 7954: 0c0b bf 0x796a // 796a + { + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7956: e3ffe054 bsr 0x39fe // 39fe + c_rly.rly_state[rly_id] = state; + if(c_rly.rly_zero == UNZEROCROSSING){ + 795a: 8560 ld.b r3, (r5, 0x0) + c_rly.rly_control = 0x02; + 795c: 3b40 cmpnei r3, 0 + 795e: 64c3 mvcv r3 + 7960: 2300 addi r3, 1 + c_rly.rly_state[rly_id] = state; + 7962: a4c3 st.b r6, (r4, 0x3) + c_rly.rly_control = 0x02; + 7964: a562 st.b r3, (r5, 0x2) + }else{ + c_rly.rly_control = 0x01; + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7966: e3ffe049 bsr 0x39f8 // 39f8 + } +} + 796a: 1493 pop r4-r6, r15 + 796c: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_Init: + +00007970 : +{ + 7970: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 7972: 1088 lrw r4, 0x200005a4 // 7990 + 7974: 321c movi r2, 28 + 7976: 3100 movi r1, 0 + 7978: 6c13 mov r0, r4 + 797a: e3ffd011 bsr 0x199c // 199c <__memset_fast> + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 797e: 320c movi r2, 12 + 7980: 3100 movi r1, 0 + 7982: 1005 lrw r0, 0x20000878 // 7994 + 7984: e3ffd00c bsr 0x199c // 199c <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 7988: 3301 movi r3, 1 + 798a: a462 st.b r3, (r4, 0x2) +} + 798c: 1491 pop r4, r15 + 798e: 0000 bkpt + 7990: 200005a4 .long 0x200005a4 + 7994: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_High: + +00007998 : +{ + 7998: 14d0 push r15 + 799a: 3101 movi r1, 1 + 799c: 3002 movi r0, 2 + 799e: e3ffffd5 bsr 0x7948 // 7948 + 79a2: 3102 movi r1, 2 + 79a4: 3003 movi r0, 3 + 79a6: e3ffffd1 bsr 0x7948 // 7948 + 79aa: 3102 movi r1, 2 + 79ac: 3004 movi r0, 4 + 79ae: e3ffffcd bsr 0x7948 // 7948 +} + 79b2: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +000079b4 : +{ + 79b4: 14d0 push r15 + 79b6: 3102 movi r1, 2 + 79b8: 3002 movi r0, 2 + 79ba: e3ffffc7 bsr 0x7948 // 7948 + 79be: 3101 movi r1, 1 + 79c0: 3003 movi r0, 3 + 79c2: e3ffffc3 bsr 0x7948 // 7948 + 79c6: 3102 movi r1, 2 + 79c8: 3004 movi r0, 4 + 79ca: e3ffffbf bsr 0x7948 // 7948 +} + 79ce: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +000079d0 : +{ + 79d0: 14d0 push r15 + 79d2: 3102 movi r1, 2 + 79d4: 3002 movi r0, 2 + 79d6: e3ffffb9 bsr 0x7948 // 7948 + 79da: 3102 movi r1, 2 + 79dc: 3003 movi r0, 3 + 79de: e3ffffb5 bsr 0x7948 // 7948 + 79e2: 3101 movi r1, 1 + 79e4: 3004 movi r0, 4 + 79e6: e3ffffb1 bsr 0x7948 // 7948 +} + 79ea: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +000079ec : +{ + 79ec: 14d0 push r15 + 79ee: 3102 movi r1, 2 + 79f0: 3002 movi r0, 2 + 79f2: e3ffffab bsr 0x7948 // 7948 + 79f6: 3102 movi r1, 2 + 79f8: 3003 movi r0, 3 + 79fa: e3ffffa7 bsr 0x7948 // 7948 + 79fe: 3102 movi r1, 2 + 7a00: 3004 movi r0, 4 + 7a02: e3ffffa3 bsr 0x7948 // 7948 +} + 7a06: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00007a08 : +{ + 7a08: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + 7a0a: 5963 subi r3, r1, 1 + 7a0c: 74cc zextb r3, r3 + 7a0e: 3b01 cmphsi r3, 2 + 7a10: 0805 bt 0x7a1a // 7a1a + if(rly_id >= RLY_MAX) return; + 7a12: 3804 cmphsi r0, 5 + 7a14: 0803 bt 0x7a1a // 7a1a + 7a16: e3ffff99 bsr 0x7948 // 7948 +} + 7a1a: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +00007a1c : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + 7a1c: 14d2 push r4-r5, r15 + if(SysTick_1ms - c_rly.ZCrossing_tick >= 50)// 50ms + 7a1e: 1150 lrw r2, 0x200000c0 // 7adc + 7a20: 1190 lrw r4, 0x20000878 // 7ae0 + 7a22: 9260 ld.w r3, (r2, 0x0) + 7a24: 9422 ld.w r1, (r4, 0x8) + 7a26: 60c6 subu r3, r1 + 7a28: 3131 movi r1, 49 + 7a2a: 64c4 cmphs r1, r3 + 7a2c: 0810 bt 0x7a4c // 7a4c + { + c_rly.ZCrossing_tick = SysTick_1ms; + 7a2e: 9260 ld.w r3, (r2, 0x0) + 7a30: b462 st.w r3, (r4, 0x8) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7a32: e3ffdfe6 bsr 0x39fe // 39fe + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5) ){ //有过零信号 + 7a36: 8461 ld.b r3, (r4, 0x1) + 7a38: 2b01 subi r3, 2 + 7a3a: 74cc zextb r3, r3 + 7a3c: 3b03 cmphsi r3, 4 + 7a3e: 0812 bt 0x7a62 // 7a62 + c_rly.rly_zero = ZEROCROSSING; + 7a40: 3301 movi r3, 1 + 7a42: a460 st.b r3, (r4, 0x0) + c_rly.rly_zCnt = 0; + 7a44: 3300 movi r3, 0 + }else { //无过零信号 + c_rly.rly_zero = UNZEROCROSSING; + c_rly.rly_zCnt = 0; + 7a46: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7a48: e3ffdfd8 bsr 0x39f8 // 39f8 + } + + if(c_rly.rly_control != 0x02) return; + 7a4c: 8462 ld.b r3, (r4, 0x2) + 7a4e: 3b42 cmpnei r3, 2 + 7a50: 0819 bt 0x7a82 // 7a82 + 7a52: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 7a54: 5d03 subi r0, r5, 1 + 7a56: 3803 cmphsi r0, 4 + 7a58: 0808 bt 0x7a68 // 7a68 + 7a5a: e3ffc951 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7a5e: 2117 .short 0x2117 + 7a60: 352b .short 0x352b + c_rly.rly_zero = UNZEROCROSSING; + 7a62: 3300 movi r3, 0 + 7a64: a460 st.b r3, (r4, 0x0) + 7a66: 07f0 br 0x7a46 // 7a46 + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7a68: 8463 ld.b r3, (r4, 0x3) + 7a6a: 3b41 cmpnei r3, 1 + 7a6c: 080c bt 0x7a84 // 7a84 + RLY1_HOT_OPEN; + 7a6e: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7a70: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7a72: e3fff057 bsr 0x5b20 // 5b20 + for (U8_T i = 0; i < RLY_MAX; i++) { + 7a76: 2500 addi r5, 1 + 7a78: 7554 zextb r5, r5 + 7a7a: 3d45 cmpnei r5, 5 + 7a7c: 0bec bt 0x7a54 // 7a54 + } + break; + } + } + + c_rly.rly_control = 0x00; + 7a7e: 3300 movi r3, 0 + 7a80: a462 st.b r3, (r4, 0x2) +} + 7a82: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7a84: 3b42 cmpnei r3, 2 + 7a86: 0bf8 bt 0x7a76 // 7a76 + RLY1_HOT_CLOSE; + 7a88: 3101 movi r1, 1 + 7a8a: 07f3 br 0x7a70 // 7a70 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7a8c: 8464 ld.b r3, (r4, 0x4) + 7a8e: 3b41 cmpnei r3, 1 + 7a90: 0804 bt 0x7a98 // 7a98 + RLY2_COLD_OPEN; + 7a92: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7a94: 3013 movi r0, 19 + 7a96: 07ee br 0x7a72 // 7a72 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7a98: 3b42 cmpnei r3, 2 + 7a9a: 0bee bt 0x7a76 // 7a76 + RLY2_COLD_CLOSE; + 7a9c: 3101 movi r1, 1 + 7a9e: 07fb br 0x7a94 // 7a94 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7aa0: 8465 ld.b r3, (r4, 0x5) + 7aa2: 3b41 cmpnei r3, 1 + 7aa4: 0804 bt 0x7aac // 7aac + RLY3_HIGH_OPEN; + 7aa6: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7aa8: 3014 movi r0, 20 + 7aaa: 07e4 br 0x7a72 // 7a72 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 7aac: 3b42 cmpnei r3, 2 + 7aae: 0be4 bt 0x7a76 // 7a76 + RLY3_HIGH_CLOSE; + 7ab0: 3101 movi r1, 1 + 7ab2: 07fb br 0x7aa8 // 7aa8 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7ab4: 8466 ld.b r3, (r4, 0x6) + 7ab6: 3b41 cmpnei r3, 1 + 7ab8: 0804 bt 0x7ac0 // 7ac0 + RLY4_MID_OPEN; + 7aba: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7abc: 3015 movi r0, 21 + 7abe: 07da br 0x7a72 // 7a72 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7ac0: 3b42 cmpnei r3, 2 + 7ac2: 0bda bt 0x7a76 // 7a76 + RLY4_MID_CLOSE; + 7ac4: 3101 movi r1, 1 + 7ac6: 07fb br 0x7abc // 7abc + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 7ac8: 8467 ld.b r3, (r4, 0x7) + 7aca: 3b41 cmpnei r3, 1 + 7acc: 0804 bt 0x7ad4 // 7ad4 + RLY5_LOW_OPEN; + 7ace: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7ad0: 3016 movi r0, 22 + 7ad2: 07d0 br 0x7a72 // 7a72 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7ad4: 3b42 cmpnei r3, 2 + 7ad6: 0bd0 bt 0x7a76 // 7a76 + RLY5_LOW_CLOSE; + 7ad8: 3101 movi r1, 1 + 7ada: 07fb br 0x7ad0 // 7ad0 + 7adc: 200000c0 .long 0x200000c0 + 7ae0: 20000878 .long 0x20000878 + +Disassembly of section .text.RLY_Zero_Control: + +00007ae4 : + * @brief 有过零信号控制继电器,在中断中调用 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + 7ae4: 14d2 push r4-r5, r15 + if(c_rly.rly_control != 0x01) return; + 7ae6: 1185 lrw r4, 0x20000878 // 7b78 + 7ae8: 8462 ld.b r3, (r4, 0x2) + 7aea: 3b41 cmpnei r3, 1 + 7aec: 0818 bt 0x7b1c // 7b1c + 7aee: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 7af0: 5d03 subi r0, r5, 1 + 7af2: 3803 cmphsi r0, 4 + 7af4: 0805 bt 0x7afe // 7afe + 7af6: e3ffc903 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7afa: 2016 .short 0x2016 + 7afc: 342a .short 0x342a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7afe: 8463 ld.b r3, (r4, 0x3) + 7b00: 3b41 cmpnei r3, 1 + 7b02: 080e bt 0x7b1e // 7b1e + RLY1_HOT_OPEN; + 7b04: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7b06: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7b08: e3fff00c bsr 0x5b20 // 5b20 + for (U8_T i = 0; i < RLY_MAX; i++) { + 7b0c: 2500 addi r5, 1 + 7b0e: 7554 zextb r5, r5 + 7b10: 3d45 cmpnei r5, 5 + 7b12: 0bef bt 0x7af0 // 7af0 + break; + } + + } + + TimeCall_SIO_Send2(); + 7b14: e3ffef3a bsr 0x5988 // 5988 + + c_rly.rly_control = 0x00; + 7b18: 3300 movi r3, 0 + 7b1a: a462 st.b r3, (r4, 0x2) + 7b1c: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7b1e: 3b42 cmpnei r3, 2 + 7b20: 0bf6 bt 0x7b0c // 7b0c + RLY1_HOT_CLOSE; + 7b22: 3101 movi r1, 1 + 7b24: 07f1 br 0x7b06 // 7b06 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7b26: 8464 ld.b r3, (r4, 0x4) + 7b28: 3b41 cmpnei r3, 1 + 7b2a: 0804 bt 0x7b32 // 7b32 + RLY2_COLD_OPEN; + 7b2c: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7b2e: 3013 movi r0, 19 + 7b30: 07ec br 0x7b08 // 7b08 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7b32: 3b42 cmpnei r3, 2 + 7b34: 0bec bt 0x7b0c // 7b0c + RLY2_COLD_CLOSE; + 7b36: 3101 movi r1, 1 + 7b38: 07fb br 0x7b2e // 7b2e + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7b3a: 8465 ld.b r3, (r4, 0x5) + 7b3c: 3b41 cmpnei r3, 1 + 7b3e: 0804 bt 0x7b46 // 7b46 + RLY3_HIGH_OPEN; + 7b40: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7b42: 3014 movi r0, 20 + 7b44: 07e2 br 0x7b08 // 7b08 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 7b46: 3b42 cmpnei r3, 2 + 7b48: 0be2 bt 0x7b0c // 7b0c + RLY3_HIGH_CLOSE; + 7b4a: 3101 movi r1, 1 + 7b4c: 07fb br 0x7b42 // 7b42 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7b4e: 8466 ld.b r3, (r4, 0x6) + 7b50: 3b41 cmpnei r3, 1 + 7b52: 0804 bt 0x7b5a // 7b5a + RLY4_MID_OPEN; + 7b54: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7b56: 3015 movi r0, 21 + 7b58: 07d8 br 0x7b08 // 7b08 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7b5a: 3b42 cmpnei r3, 2 + 7b5c: 0bd8 bt 0x7b0c // 7b0c + RLY4_MID_CLOSE; + 7b5e: 3101 movi r1, 1 + 7b60: 07fb br 0x7b56 // 7b56 + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 7b62: 8467 ld.b r3, (r4, 0x7) + 7b64: 3b41 cmpnei r3, 1 + 7b66: 0804 bt 0x7b6e // 7b6e + RLY5_LOW_OPEN; + 7b68: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7b6a: 3016 movi r0, 22 + 7b6c: 07ce br 0x7b08 // 7b08 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7b6e: 3b42 cmpnei r3, 2 + 7b70: 0bce bt 0x7b0c // 7b0c + RLY5_LOW_CLOSE; + 7b72: 3101 movi r1, 1 + 7b74: 07fb br 0x7b6a // 7b6a + 7b76: 0000 bkpt + 7b78: 20000878 .long 0x20000878 + +Disassembly of section .text.NetCRC16_Check: + +00007b7c : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + 7b7c: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7b7e: 3902 cmphsi r1, 3 + 7b80: 0c1f bf 0x7bbe // 7bbe + U16_T alen = len-2; //CRC16??????? + 7b82: 2901 subi r1, 2 + 7b84: 7445 zexth r1, r1 + 7b86: 6d43 mov r5, r0 + 7b88: 3200 movi r2, 0 + 7b8a: 106e lrw r3, 0xffff // 7bc0 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 7b94: 6d8f mov r6, r3 + 7b96: 699c and r6, r7 + 7b98: 3e40 cmpnei r6, 0 + 7b9a: 4b61 lsri r3, r3, 1 + 7b9c: 0c04 bf 0x7ba4 // 7ba4 + 7b9e: 10ca lrw r6, 0xffffa001 // 7bc4 + 7ba0: 6cd9 xor r3, r6 + 7ba2: 74cd zexth r3, r3 + 7ba4: 2c00 subi r4, 1 + 7ba6: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 7ba8: 3c40 cmpnei r4, 0 + 7baa: 0bf5 bt 0x7b94 // 7b94 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 7bb6: 6040 addu r1, r0 + 7bb8: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 7bba: 4b68 lsri r3, r3, 8 + 7bbc: a161 st.b r3, (r1, 0x1) +} + 7bbe: 1484 pop r4-r7 + 7bc0: 0000ffff .long 0x0000ffff + 7bc4: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00007bc8 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 7bc8: 14c3 push r4-r6 + 7bca: 6cc3 mov r3, r0 + 7bcc: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 7bce: 10ac lrw r5, 0xffffa001 // 7bfc + xda = 0xFFFF ; + 7bd0: 100c lrw r0, 0xffff // 7c00 + for (i = 0; i < len; i++) + 7bd2: 644e cmpne r3, r1 + 7bd4: 0802 bt 0x7bd8 // 7bd8 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 7bd6: 1483 pop r4-r6 + xda ^= aStr[i] ; + 7bd8: 8340 ld.b r2, (r3, 0x0) + 7bda: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 7bdc: 3601 movi r6, 1 + xda ^= aStr[i] ; + 7bde: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 7be0: 6d03 mov r4, r0 + 7be2: 6918 and r4, r6 + 7be4: 3c40 cmpnei r4, 0 + 7be6: 4801 lsri r0, r0, 1 + 7be8: 0c03 bf 0x7bee // 7bee + 7bea: 6c15 xor r0, r5 + 7bec: 7401 zexth r0, r0 + 7bee: 2a00 subi r2, 1 + 7bf0: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 7bf2: 3a40 cmpnei r2, 0 + 7bf4: 0bf6 bt 0x7be0 // 7be0 + 7bf6: 2300 addi r3, 1 + 7bf8: 07ed br 0x7bd2 // 7bd2 + 7bfa: 0000 bkpt + 7bfc: ffffa001 .long 0xffffa001 + 7c00: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00007c04 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 7c04: 6cc3 mov r3, r0 + 7c06: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 7c08: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 7c0a: 644e cmpne r3, r1 + 7c0c: 0802 bt 0x7c10 // 7c10 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7c0e: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7c10: 8340 ld.b r2, (r3, 0x0) + 7c12: 6008 addu r0, r2 + 7c14: 7400 zextb r0, r0 + 7c16: 2300 addi r3, 1 + 7c18: 07f9 br 0x7c0a // 7c0a + +Disassembly of section .text.Rs485_ASend: + +00007c1c : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 7c1c: 14d1 push r4, r15 + 7c1e: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7c20: 117f lrw r3, 0x20000524 // 7d1c + 7c22: 8347 ld.b r2, (r3, 0x7) + 7c24: 3a42 cmpnei r2, 2 +{ + 7c26: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7c28: 0870 bt 0x7d08 // 7d08 + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7c2a: 3255 movi r2, 85 + 7c2c: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + 7c30: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + 7c34: 3200 movi r2, 0 + 7c36: 2a11 subi r2, 18 + 7c38: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + 7c3c: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + 7c3e: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + 7c40: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7c44: 3203 movi r2, 3 + 7c46: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 7c4a: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7c4e: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7c50: 1154 lrw r2, 0x2000083c // 7d20 + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7c52: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7c56: 8262 ld.b r3, (r2, 0x2) + 7c58: 4b27 lsri r1, r3, 7 + 7c5a: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 7c5e: 3100 movi r1, 0 + 7c60: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 7c64: 3170 movi r1, 112 + 7c66: 68c4 and r3, r1 + 7c68: 3b40 cmpnei r3, 0 + 7c6a: 081a bt 0x7c9e // 7c9e + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 7c6c: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7c6e: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7c72: 8261 ld.b r3, (r2, 0x1) + 7c74: 3b40 cmpnei r3, 0 + 7c76: 0802 bt 0x7c7a // 7c7a + 7c78: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7c7a: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7c7c: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7c80: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7c82: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7c84: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7c86: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7c8a: 3304 movi r3, 4 + 7c8c: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + 7c8e: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7c90: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 7c94: 0842 bt 0x7d18 // 7d18 + 7c96: e3ffc833 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7c9a: 390c .short 0x390c + 7c9c: 3d3b .short 0x3d3b + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 7c9e: 3120 movi r1, 32 + 7ca0: 644e cmpne r3, r1 + 7ca2: 0803 bt 0x7ca8 // 7ca8 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 7ca4: 3302 movi r3, 2 + 7ca6: 07e4 br 0x7c6e // 7c6e + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 7ca8: 3140 movi r1, 64 + 7caa: 644e cmpne r3, r1 + 7cac: 0be3 bt 0x7c72 // 7c72 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7cae: 3303 movi r3, 3 + 7cb0: 07df br 0x7c6e // 7c6e + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 7cb2: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7cb4: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + 7cb6: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7cba: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 7cbc: 3300 movi r3, 0 + 7cbe: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 7cc2: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7cc6: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 7cc8: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 7ccc: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 7cd0: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7cd4: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7cd6: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7cd8: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7cda: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7cde: 0802 bt 0x7ce2 // 7ce2 + 7ce0: 3320 movi r3, 32 + 7ce2: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 7ce6: 3300 movi r3, 0 + 7ce8: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7cec: 1b01 addi r3, r14, 4 + 7cee: 5b0a addi r0, r3, 3 + 7cf0: 3115 movi r1, 21 + 7cf2: e3ffff45 bsr 0x7b7c // 7b7c + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 7cf6: 3396 movi r3, 150 + 7cf8: 4361 lsli r3, r3, 1 + 7cfa: b860 st.w r3, (r14, 0x0) + 7cfc: 3201 movi r2, 1 + 7cfe: 6cd3 mov r3, r4 + 7d00: 3118 movi r1, 24 + 7d02: 1801 addi r0, r14, 4 + 7d04: e3ffe008 bsr 0x3d14 // 3d14 + +} + 7d08: 1407 addi r14, r14, 28 + 7d0a: 1491 pop r4, r15 + SendData[13] = 0x02; + 7d0c: 3302 movi r3, 2 + 7d0e: 07d3 br 0x7cb4 // 7cb4 + SendData[13] = 0x01; + 7d10: 3301 movi r3, 1 + 7d12: 07d1 br 0x7cb4 // 7cb4 + SendData[13] = 0x00; // + 7d14: 3300 movi r3, 0 + 7d16: 07cf br 0x7cb4 // 7cb4 + SendData[13] = 0x04; // + 7d18: 3304 movi r3, 4 + 7d1a: 07cd br 0x7cb4 // 7cb4 + 7d1c: 20000524 .long 0x20000524 + 7d20: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCycleSend: + +00007d24 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 7d24: 14d0 push r15 + 7d26: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7d28: 3355 movi r3, 85 + 7d2a: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 7d2e: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 7d32: 3300 movi r3, 0 + 7d34: 2b11 subi r3, 18 + 7d36: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 7d3a: 3315 movi r3, 21 + 7d3c: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 7d40: 3303 movi r3, 3 + 7d42: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 7d46: 1177 lrw r3, 0x20000524 // 7e20 + 7d48: 8360 ld.b r3, (r3, 0x0) + 7d4a: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7d4e: 3300 movi r3, 0 + 7d50: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7d54: 1174 lrw r3, 0x2000083c // 7e24 + 7d56: 8342 ld.b r2, (r3, 0x2) + 7d58: 4a27 lsri r1, r2, 7 + 7d5a: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 7d5e: 3100 movi r1, 0 + 7d60: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 7d64: 3170 movi r1, 112 + 7d66: 6884 and r2, r1 + 7d68: 3a40 cmpnei r2, 0 + 7d6a: 081a bt 0x7d9e // 7d9e + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 7d6c: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7d6e: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7d72: 8341 ld.b r2, (r3, 0x1) + 7d74: 3a40 cmpnei r2, 0 + 7d76: 0802 bt 0x7d7a // 7d7a + 7d78: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7d7a: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7d7c: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7d80: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7d82: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7d84: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7d86: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7d8a: 3204 movi r2, 4 + 7d8c: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + 7d8e: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7d90: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 7d94: 0843 bt 0x7e1a // 7e1a + 7d96: e3ffc7b3 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7d9a: 3a0c .short 0x3a0c + 7d9c: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 7d9e: 3120 movi r1, 32 + 7da0: 644a cmpne r2, r1 + 7da2: 0803 bt 0x7da8 // 7da8 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 7da4: 3202 movi r2, 2 + 7da6: 07e4 br 0x7d6e // 7d6e + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 7da8: 3140 movi r1, 64 + 7daa: 644a cmpne r2, r1 + 7dac: 0be3 bt 0x7d72 // 7d72 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7dae: 3203 movi r2, 3 + 7db0: 07df br 0x7d6e // 7d6e + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 7db2: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + 7db4: dc4e0011 st.b r2, (r14, 0x11) + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 7db8: 3200 movi r2, 0 + 7dba: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 7dbe: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7dc2: 8342 ld.b r2, (r3, 0x2) + 7dc4: 425f lsli r2, r2, 31 + 7dc6: 4a5f lsri r2, r2, 31 + 7dc8: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7dca: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7dcc: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7dd0: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 7dd2: 3200 movi r2, 0 + 7dd4: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 7dd8: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 7ddc: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7de0: 0802 bt 0x7de4 // 7de4 + 7de2: 3320 movi r3, 32 + 7de4: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 7de8: 3300 movi r3, 0 + 7dea: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7dee: 1b01 addi r3, r14, 4 + 7df0: 5b0a addi r0, r3, 3 + 7df2: 3115 movi r1, 21 + 7df4: e3fffec4 bsr 0x7b7c // 7b7c + + //MCU485_SendData(SendData, 24); + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 7df8: 3314 movi r3, 20 + 7dfa: b860 st.w r3, (r14, 0x0) + 7dfc: 3396 movi r3, 150 + 7dfe: 4361 lsli r3, r3, 1 + 7e00: 3201 movi r2, 1 + 7e02: 3118 movi r1, 24 + 7e04: 1801 addi r0, r14, 4 + 7e06: e3ffdf87 bsr 0x3d14 // 3d14 + +} + 7e0a: 1407 addi r14, r14, 28 + 7e0c: 1490 pop r15 + SendData[13] = 0x02; + 7e0e: 3202 movi r2, 2 + 7e10: 07d2 br 0x7db4 // 7db4 + SendData[13] = 0x01; + 7e12: 3201 movi r2, 1 + 7e14: 07d0 br 0x7db4 // 7db4 + SendData[13] = 0x00; // + 7e16: 3200 movi r2, 0 + 7e18: 07ce br 0x7db4 // 7db4 + SendData[13] = 0x04; // + 7e1a: 3204 movi r2, 4 + 7e1c: 07cc br 0x7db4 // 7db4 + 7e1e: 0000 bkpt + 7e20: 20000524 .long 0x20000524 + 7e24: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCtrlSend: + +00007e28 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 7e28: 14d0 push r15 + 7e2a: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 7e2c: 3355 movi r3, 85 + 7e2e: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 7e32: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 7e36: 3300 movi r3, 0 + 7e38: 2b11 subi r3, 18 + 7e3a: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 7e3e: 3307 movi r3, 7 + 7e40: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7e44: 3303 movi r3, 3 + 7e46: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7e4a: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 7e4c: 106d lrw r3, 0x20000524 // 7e80 + 7e4e: 8360 ld.b r3, (r3, 0x0) + 7e50: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 7e54: 8066 ld.b r3, (r0, 0x6) + 7e56: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 7e5a: 8067 ld.b r3, (r0, 0x7) + 7e5c: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7e60: 1b01 addi r3, r14, 4 + 7e62: 5b0a addi r0, r3, 3 + 7e64: e3fffe8c bsr 0x7b7c // 7b7c + +// MCU485_SendData(SendData, 10); + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 7e68: 3314 movi r3, 20 + 7e6a: b860 st.w r3, (r14, 0x0) + 7e6c: 3396 movi r3, 150 + 7e6e: 4361 lsli r3, r3, 1 + 7e70: 3201 movi r2, 1 + 7e72: 310a movi r1, 10 + 7e74: 1801 addi r0, r14, 4 + 7e76: e3ffdf4f bsr 0x3d14 // 3d14 + +} + 7e7a: 1404 addi r14, r14, 16 + 7e7c: 1490 pop r15 + 7e7e: 0000 bkpt + 7e80: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485AskReadSend: + +00007e84 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 7e84: 14d0 push r15 + 7e86: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 7e88: 3355 movi r3, 85 + 7e8a: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 7e8e: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 7e92: 3300 movi r3, 0 + 7e94: 2b11 subi r3, 18 + 7e96: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 7e9a: 3309 movi r3, 9 + 7e9c: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7ea0: 3303 movi r3, 3 + 7ea2: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7ea6: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 7ea8: 1070 lrw r3, 0x20000524 // 7ee8 + 7eaa: 8340 ld.b r2, (r3, 0x0) + 7eac: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 7eb0: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + 7eb2: 8046 ld.b r2, (r0, 0x6) + 7eb4: dc4e000a st.b r2, (r14, 0xa) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 7eb8: dc6e000d st.b r3, (r14, 0xd) + SendData[7] = Project_FW_Version; + 7ebc: 3204 movi r2, 4 + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7ebe: 1b01 addi r3, r14, 4 + SendData[7] = Project_FW_Version; + 7ec0: dc4e000b st.b r2, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7ec4: 5b0a addi r0, r3, 3 + SendData[8] = Project_HW_Version; + 7ec6: 3202 movi r2, 2 + 7ec8: dc4e000c st.b r2, (r14, 0xc) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7ecc: e3fffe58 bsr 0x7b7c // 7b7c + +// MCU485_SendData(SendData, 12); + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 7ed0: 3314 movi r3, 20 + 7ed2: b860 st.w r3, (r14, 0x0) + 7ed4: 3396 movi r3, 150 + 7ed6: 4361 lsli r3, r3, 1 + 7ed8: 3201 movi r2, 1 + 7eda: 310c movi r1, 12 + 7edc: 1801 addi r0, r14, 4 + 7ede: e3ffdf1b bsr 0x3d14 // 3d14 +} + 7ee2: 1404 addi r14, r14, 16 + 7ee4: 1490 pop r15 + 7ee6: 0000 bkpt + 7ee8: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485_DevPort_ACK: + +00007eec : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 7eec: 14d0 push r15 + 7eee: 1421 subi r14, r14, 4 + +// MCU485_SendData(Recdata, Lens); + + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 7ef0: 3314 movi r3, 20 + 7ef2: b860 st.w r3, (r14, 0x0) + 7ef4: 3396 movi r3, 150 + 7ef6: 7445 zexth r1, r1 + 7ef8: 4361 lsli r3, r3, 1 + 7efa: 3201 movi r2, 1 + 7efc: e3ffdf0c bsr 0x3d14 // 3d14 +} + 7f00: 1401 addi r14, r14, 4 + 7f02: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +00007f04 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 7f04: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 7f06: 3300 movi r3, 0 + 7f08: 2b08 subi r3, 9 + 7f0a: 60c4 addu r3, r1 + 7f0c: 74cd zexth r3, r3 + 7f0e: 3b01 cmphsi r3, 2 +{ + 7f10: 6d03 mov r4, r0 + 7f12: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 7f14: 08c8 bt 0x80a4 // 80a4 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 7f16: 8060 ld.b r3, (r0, 0x0) + 7f18: 3255 movi r2, 85 + 7f1a: 648e cmpne r3, r2 + 7f1c: 08c0 bt 0x809c // 809c + 7f1e: 8041 ld.b r2, (r0, 0x1) + 7f20: 64ca cmpne r2, r3 + 7f22: 08bd bt 0x809c // 809c + 7f24: 8042 ld.b r2, (r0, 0x2) + 7f26: 33ee movi r3, 238 + 7f28: 64ca cmpne r2, r3 + 7f2a: 08b9 bt 0x809c // 809c + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + 7f2c: 8023 ld.b r1, (r0, 0x3) + 7f2e: 596a addi r3, r1, 3 + 7f30: 654e cmpne r3, r5 + 7f32: 08b7 bt 0x80a0 // 80a0 + 7f34: 8004 ld.b r0, (r0, 0x4) + 7f36: 3843 cmpnei r0, 3 + 7f38: 08b4 bt 0x80a0 // 80a0 + 7f3a: 12dc lrw r6, 0x20000524 // 80a8 + 7f3c: 8640 ld.b r2, (r6, 0x0) + 7f3e: 8465 ld.b r3, (r4, 0x5) + 7f40: 64ca cmpne r2, r3 + 7f42: 08ae bt 0x809e // 809e + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 7f44: 2901 subi r1, 2 + 7f46: 7445 zexth r1, r1 + 7f48: 5c0a addi r0, r4, 3 + 7f4a: e3fffe3f bsr 0x7bc8 // 7bc8 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 7f4e: 5c54 addu r2, r4, r5 + 7f50: 5a63 subi r3, r2, 1 + 7f52: 8360 ld.b r3, (r3, 0x0) + 7f54: 2a01 subi r2, 2 + 7f56: 4368 lsli r3, r3, 8 + 7f58: 8240 ld.b r2, (r2, 0x0) + 7f5a: 60c8 addu r3, r2 + 7f5c: 64c2 cmpne r0, r3 + 7f5e: 08a3 bt 0x80a4 // 80a4 + { + switch(RecData[6]) + 7f60: 8406 ld.b r0, (r4, 0x6) + 7f62: 2800 subi r0, 1 + 7f64: 3811 cmphsi r0, 18 + 7f66: 0811 bt 0x7f88 // 7f88 + 7f68: e3ffc6ca bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7f6c: 1e1e1e1e .long 0x1e1e1e1e + 7f70: 0e0e0e0e .long 0x0e0e0e0e + 7f74: 0e0e090e .long 0x0e0e090e + 7f78: 220e0e0e .long 0x220e0e0e + 7f7c: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 7f7e: 8667 ld.b r3, (r6, 0x7) + 7f80: 3b42 cmpnei r3, 2 + 7f82: 080c bt 0x7f9a // 7f9a + { + Clear_SendFlag(); + 7f84: e3ffdefa bsr 0x3d78 // 3d78 + } + + } + break; + } + switch(RecData[6]) + 7f88: 8406 ld.b r0, (r4, 0x6) + 7f8a: 2800 subi r0, 1 + 7f8c: 3803 cmphsi r0, 4 + 7f8e: 0808 bt 0x7f9e // 7f9e + 7f90: 8467 ld.b r3, (r4, 0x7) + 7f92: e3ffc6b5 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7f96: 4836 .short 0x4836 + 7f98: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + 7f9a: 3b41 cmpnei r3, 1 + 7f9c: 0c03 bf 0x7fa2 // 7fa2 + break; + } + break; + } + + return ret; + 7f9e: 3000 movi r0, 0 + 7fa0: 047f br 0x809e // 809e + Rs485AskCycleSend(); + 7fa2: e3fffec1 bsr 0x7d24 // 7d24 + 7fa6: 07f1 br 0x7f88 // 7f88 + Rs485AskCtrlSend(RecData); + 7fa8: 6c13 mov r0, r4 + 7faa: e3ffff3f bsr 0x7e28 // 7e28 + 7fae: 07ed br 0x7f88 // 7f88 + Rs485AskReadSend(RecData); //版本号查询 + 7fb0: 6c13 mov r0, r4 + 7fb2: e3ffff69 bsr 0x7e84 // 7e84 + 7fb6: 07e9 br 0x7f88 // 7f88 + Rs485AskCtrlSend(RecData); + 7fb8: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7fba: 11bd lrw r5, 0x2000083c // 80ac + Rs485AskCtrlSend(RecData); + 7fbc: e3ffff36 bsr 0x7e28 // 7e28 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 7fc0: 855a ld.b r2, (r5, 0x1a) + 7fc2: 113c lrw r1, 0xa9a9 // 80b0 + 7fc4: 3000 movi r0, 0 + 7fc6: e3ffdf4f bsr 0x3e64 // 3e64 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 7fca: 8467 ld.b r3, (r4, 0x7) + 7fcc: 855a ld.b r2, (r5, 0x1a) + 7fce: 64ca cmpne r2, r3 + 7fd0: 0fdc bf 0x7f88 // 7f88 + if(TempCtrl.CardEn == 0x00) + 7fd2: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 7fd4: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 7fd6: 0bd9 bt 0x7f88 // 7f88 + TempCtrl.CardState = 0x01; + 7fd8: 3301 movi r3, 1 + 7fda: a578 st.b r3, (r5, 0x18) + 7fdc: 07d6 br 0x7f88 // 7f88 + if(RecData[7] != g_eeprom.dev_port) + 7fde: 8467 ld.b r3, (r4, 0x7) + 7fe0: 8647 ld.b r2, (r6, 0x7) + 7fe2: 64ca cmpne r2, r3 + 7fe4: 0fdd bf 0x7f9e // 7f9e + EEPROM_WriteParaInfo(&g_eeprom); + 7fe6: 1111 lrw r0, 0x20000524 // 80a8 + g_eeprom.dev_port = RecData[7]; + 7fe8: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 7fea: e3ffe455 bsr 0x4894 // 4894 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 7fee: 110f lrw r0, 0x20000524 // 80a8 + 7ff0: e3ffe418 bsr 0x4820 // 4820 + if(rev_val == 0x00){ + 7ff4: 3840 cmpnei r0, 0 + 7ff6: 0bc9 bt 0x7f88 // 7f88 + Rs485_DevPort_ACK(RecData,Len); + 7ff8: 7454 zextb r1, r5 + 7ffa: 6c13 mov r0, r4 + 7ffc: e3ffff78 bsr 0x7eec // 7eec + 8000: 07c4 br 0x7f88 // 7f88 + switch(RecData[7]) + 8002: 74cc zextb r3, r3 + 8004: 3b40 cmpnei r3, 0 + 8006: 0c0a bf 0x801a // 801a + 8008: 3b41 cmpnei r3, 1 + 800a: 0bca bt 0x7f9e // 7f9e + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 800c: 1128 lrw r1, 0x2000083c // 80ac + 800e: 3200 movi r2, 0 + 8010: 8162 ld.b r3, (r1, 0x2) + 8012: 2a7f subi r2, 128 + 8014: 6cc8 or r3, r2 + 8016: a162 st.b r3, (r1, 0x2) + 8018: 07c3 br 0x7f9e // 7f9e + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 801a: 1145 lrw r2, 0x2000083c // 80ac + 801c: 8262 ld.b r3, (r2, 0x2) + 801e: 317f movi r1, 127 + 8020: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 8022: a262 st.b r3, (r2, 0x2) + 8024: 07bd br 0x7f9e // 7f9e + switch(RecData[7]) // + 8026: 74cc zextb r3, r3 + 8028: 3b42 cmpnei r3, 2 + 802a: 0c0a bf 0x803e // 803e + 802c: 3b43 cmpnei r3, 3 + 802e: 0c0e bf 0x804a // 804a + 8030: 3b41 cmpnei r3, 1 + 8032: 0bb6 bt 0x7f9e // 7f9e + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 8034: 105e lrw r2, 0x2000083c // 80ac + 8036: 8262 ld.b r3, (r2, 0x2) + 8038: 3170 movi r1, 112 + 803a: 68c5 andn r3, r1 + 803c: 07f3 br 0x8022 // 8022 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 803e: 105c lrw r2, 0x2000083c // 80ac + 8040: 8262 ld.b r3, (r2, 0x2) + 8042: 3170 movi r1, 112 + 8044: 68c5 andn r3, r1 + 8046: 3ba5 bseti r3, 5 + 8048: 07ed br 0x8022 // 8022 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 804a: 1059 lrw r2, 0x2000083c // 80ac + 804c: 8262 ld.b r3, (r2, 0x2) + 804e: 3170 movi r1, 112 + 8050: 68c5 andn r3, r1 + 8052: 3ba6 bseti r3, 6 + 8054: 07e7 br 0x8022 // 8022 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 8056: 3200 movi r2, 0 + 8058: 74cc zextb r3, r3 + 805a: 2a0f subi r2, 16 + 805c: 608c addu r2, r3 + 805e: 7488 zextb r2, r2 + 8060: 3a0f cmphsi r2, 16 + 8062: 0804 bt 0x806a // 806a + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 8064: 1052 lrw r2, 0x2000083c // 80ac + 8066: a261 st.b r3, (r2, 0x1) + 8068: 079b br 0x7f9e // 7f9e + }else if(RecData[7] == TEM_MAX_SET){ + 806a: 3220 movi r2, 32 + 806c: 648e cmpne r3, r2 + 806e: 0b98 bt 0x7f9e // 7f9e + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 8070: 106f lrw r3, 0x2000083c // 80ac + 8072: a341 st.b r2, (r3, 0x1) + 8074: 0795 br 0x7f9e // 7f9e + switch(RecData[7]) //风速 + 8076: 740c zextb r0, r3 + 8078: 106d lrw r3, 0x2000083c // 80ac + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 807a: 8342 ld.b r2, (r3, 0x2) + 807c: 310e movi r1, 14 + switch(RecData[7]) //风速 + 807e: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8080: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 8082: 0807 bt 0x8090 // 8090 + 8084: e3ffc63c bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8088: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + 808c: 3aa1 bseti r2, 1 + 808e: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8090: a342 st.b r2, (r3, 0x2) + 8092: 0786 br 0x7f9e // 7f9e + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 8094: 3aa2 bseti r2, 2 + 8096: 07fd br 0x8090 // 8090 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 8098: 3aa1 bseti r2, 1 + 809a: 07fb br 0x8090 // 8090 + return 0x02; + 809c: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 809e: 1493 pop r4-r6, r15 + return 0x03; + 80a0: 3003 movi r0, 3 + 80a2: 07fe br 0x809e // 809e + return 0x01; + 80a4: 3001 movi r0, 1 + 80a6: 07fc br 0x809e // 809e + 80a8: 20000524 .long 0x20000524 + 80ac: 2000083c .long 0x2000083c + 80b0: 0000a9a9 .long 0x0000a9a9 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000080b4 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 80b4: 14d2 push r4-r5, r15 + 80b6: 6d43 mov r5, r0 + 80b8: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 80ba: e3ffff25 bsr 0x7f04 // 7f04 + 80be: 3840 cmpnei r0, 0 + 80c0: 0803 bt 0x80c6 // 80c6 + { + return ret = 1; + } + } + + return ret; + 80c2: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 80c4: 0404 br 0x80cc // 80cc + if (Len < 5){ //长度校验 + 80c6: 3c04 cmphsi r4, 5 + 80c8: 0803 bt 0x80ce // 80ce + return ret = 1; + 80ca: 3001 movi r0, 1 + 80cc: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 80ce: 8540 ld.b r2, (r5, 0x0) + 80d0: 33ff movi r3, 255 + 80d2: 64ca cmpne r2, r3 + 80d4: 0c04 bf 0x80dc // 80dc + 80d6: 8561 ld.b r3, (r5, 0x1) + 80d8: 3b48 cmpnei r3, 8 + 80da: 0bf8 bt 0x80ca // 80ca + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 80dc: 1125 lrw r1, 0xa9b8 // 8170 + 80de: 3000 movi r0, 0 + 80e0: e3ffdec2 bsr 0x3e64 // 3e64 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 80e4: 3c45 cmpnei r4, 5 + 80e6: 0814 bt 0x810e // 810e + 80e8: 3104 movi r1, 4 + 80ea: 6c17 mov r0, r5 + 80ec: e3fffd8c bsr 0x7c04 // 7c04 + 80f0: 8564 ld.b r3, (r5, 0x4) + 80f2: 640e cmpne r3, r0 + 80f4: 0beb bt 0x80ca // 80ca + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 80f6: 1160 lrw r3, 0x2000083c // 8174 + 80f8: 8542 ld.b r2, (r5, 0x2) + 80fa: 8338 ld.b r1, (r3, 0x18) + 80fc: 6486 cmpne r1, r2 + 80fe: 0fe2 bf 0x80c2 // 80c2 + 8100: 833a ld.b r1, (r3, 0x1a) + 8102: 3941 cmpnei r1, 1 + 8104: 0bdf bt 0x80c2 // 80c2 + TempCtrl.CardState = RecData[2]; + 8106: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 8108: 3201 movi r2, 1 + 810a: a359 st.b r2, (r3, 0x19) + 810c: 07db br 0x80c2 // 80c2 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 810e: 3c09 cmphsi r4, 10 + 8110: 0fdd bf 0x80ca // 80ca + 8112: 5c27 subi r1, r4, 2 + 8114: 7445 zexth r1, r1 + 8116: 6114 addu r4, r5 + 8118: 6c17 mov r0, r5 + 811a: e3fffd57 bsr 0x7bc8 // 7bc8 + 811e: 5c63 subi r3, r4, 1 + 8120: 8360 ld.b r3, (r3, 0x0) + 8122: 2c01 subi r4, 2 + 8124: 4368 lsli r3, r3, 8 + 8126: 8440 ld.b r2, (r4, 0x0) + 8128: 60c8 addu r3, r2 + 812a: 64c2 cmpne r0, r3 + 812c: 0bcf bt 0x80ca // 80ca + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 812e: 1072 lrw r3, 0x2000083c // 8174 + 8130: 8543 ld.b r2, (r5, 0x3) + 8132: 8338 ld.b r1, (r3, 0x18) + 8134: 6486 cmpne r1, r2 + 8136: 0c07 bf 0x8144 // 8144 + 8138: 833a ld.b r1, (r3, 0x1a) + 813a: 3941 cmpnei r1, 1 + 813c: 0804 bt 0x8144 // 8144 + TempCtrl.CardState = RecData[3]; + 813e: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 8140: 3201 movi r2, 1 + 8142: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 8144: 8547 ld.b r2, (r5, 0x7) + 8146: 833b ld.b r1, (r3, 0x1b) + 8148: 6486 cmpne r1, r2 + 814a: 0c0d bf 0x8164 // 8164 + TempCtrl.SceneNo = RecData[7]; + 814c: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 814e: 104b lrw r2, 0x200000c0 // 8178 + 8150: 9240 ld.w r2, (r2, 0x0) + 8152: 4a28 lsri r1, r2, 8 + 8154: a354 st.b r2, (r3, 0x14) + 8156: a335 st.b r1, (r3, 0x15) + 8158: 4a30 lsri r1, r2, 16 + 815a: 4a58 lsri r2, r2, 24 + 815c: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 815e: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 8160: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 8162: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 8164: 835b ld.b r2, (r3, 0x1b) + 8166: 1026 lrw r1, 0xa9ca // 817c + 8168: 3000 movi r0, 0 + 816a: e3ffde7d bsr 0x3e64 // 3e64 + 816e: 07aa br 0x80c2 // 80c2 + 8170: 0000a9b8 .long 0x0000a9b8 + 8174: 2000083c .long 0x2000083c + 8178: 200000c0 .long 0x200000c0 + 817c: 0000a9ca .long 0x0000a9ca + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00008180 : + 8180: 1063 lrw r3, 0x20000058 // 818c + 8182: 9340 ld.w r2, (r3, 0x0) + 8184: 926b ld.w r3, (r2, 0x2c) + 8186: 6c0c or r0, r3 + 8188: b20b st.w r0, (r2, 0x2c) + 818a: 783c jmp r15 + 818c: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00008190 : + 8190: 14c1 push r4 + 8192: 1069 lrw r3, 0x20000058 // 81b4 + 8194: 3840 cmpnei r0, 0 + 8196: 9380 ld.w r4, (r3, 0x0) + 8198: 9400 ld.w r0, (r4, 0x0) + 819a: 0c0b bf 0x81b0 // 81b0 + 819c: 38a0 bseti r0, 0 + 819e: b400 st.w r0, (r4, 0x0) + 81a0: 9360 ld.w r3, (r3, 0x0) + 81a2: 4248 lsli r2, r2, 8 + 81a4: 4122 lsli r1, r1, 2 + 81a6: 9300 ld.w r0, (r3, 0x0) + 81a8: 6c48 or r1, r2 + 81aa: 6c40 or r1, r0 + 81ac: b320 st.w r1, (r3, 0x0) + 81ae: 1481 pop r4 + 81b0: 3880 bclri r0, 0 + 81b2: 07f6 br 0x819e // 819e + 81b4: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +000081b8 : + 81b8: 14c4 push r4-r7 + 81ba: 1429 subi r14, r14, 36 + 81bc: b840 st.w r2, (r14, 0x0) + 81be: 984d ld.w r2, (r14, 0x34) + 81c0: b841 st.w r2, (r14, 0x4) + 81c2: 984e ld.w r2, (r14, 0x38) + 81c4: b842 st.w r2, (r14, 0x8) + 81c6: 984f ld.w r2, (r14, 0x3c) + 81c8: b843 st.w r2, (r14, 0xc) + 81ca: 9850 ld.w r2, (r14, 0x40) + 81cc: 9895 ld.w r4, (r14, 0x54) + 81ce: b844 st.w r2, (r14, 0x10) + 81d0: 9853 ld.w r2, (r14, 0x4c) + 81d2: b845 st.w r2, (r14, 0x14) + 81d4: b887 st.w r4, (r14, 0x1c) + 81d6: 9854 ld.w r2, (r14, 0x50) + 81d8: 1c11 addi r4, r14, 68 + 81da: b846 st.w r2, (r14, 0x18) + 81dc: 8c80 ld.h r4, (r4, 0x0) + 81de: 1a15 addi r2, r14, 84 + 81e0: 1d12 addi r5, r14, 72 + 81e2: 8244 ld.b r2, (r2, 0x4) + 81e4: 3c40 cmpnei r4, 0 + 81e6: 8dc0 ld.h r6, (r5, 0x0) + 81e8: b848 st.w r2, (r14, 0x20) + 81ea: 0813 bt 0x8210 // 8210 + 81ec: 105f lrw r2, 0x2000004c // 8268 + 81ee: 35f0 movi r5, 240 + 81f0: 92e0 ld.w r7, (r2, 0x0) + 81f2: 9740 ld.w r2, (r7, 0x0) + 81f4: 45a4 lsli r5, r5, 4 + 81f6: 6895 andn r2, r5 + 81f8: 3aab bseti r2, 11 + 81fa: b740 st.w r2, (r7, 0x0) + 81fc: 3502 movi r5, 2 + 81fe: 105c lrw r2, 0x20000050 // 826c + 8200: 3e41 cmpnei r6, 1 + 8202: 9240 ld.w r2, (r2, 0x0) + 8204: b2a0 st.w r5, (r2, 0x0) + 8206: 0828 bt 0x8256 // 8256 + 8208: 92a4 ld.w r5, (r2, 0x10) + 820a: 3db8 bseti r5, 24 + 820c: 3db9 bseti r5, 25 + 820e: b2a4 st.w r5, (r2, 0x10) + 8210: 1058 lrw r2, 0x20000058 // 8270 + 8212: 448d lsli r4, r4, 13 + 8214: 92a0 ld.w r5, (r2, 0x0) + 8216: 9541 ld.w r2, (r5, 0x4) + 8218: 3200 movi r2, 0 + 821a: b541 st.w r2, (r5, 0x4) + 821c: 9541 ld.w r2, (r5, 0x4) + 821e: 98c7 ld.w r6, (r14, 0x1c) + 8220: 6c98 or r2, r6 + 8222: 98c6 ld.w r6, (r14, 0x18) + 8224: 6c98 or r2, r6 + 8226: 98c5 ld.w r6, (r14, 0x14) + 8228: 6c98 or r2, r6 + 822a: 98c8 ld.w r6, (r14, 0x20) + 822c: 46d8 lsli r6, r6, 24 + 822e: 6c98 or r2, r6 + 8230: 98c4 ld.w r6, (r14, 0x10) + 8232: 6c98 or r2, r6 + 8234: 98c3 ld.w r6, (r14, 0xc) + 8236: 6c98 or r2, r6 + 8238: 98c2 ld.w r6, (r14, 0x8) + 823a: 6c98 or r2, r6 + 823c: 98c1 ld.w r6, (r14, 0x4) + 823e: 6c98 or r2, r6 + 8240: 6c48 or r1, r2 + 8242: 9840 ld.w r2, (r14, 0x0) + 8244: 6c04 or r0, r1 + 8246: 4242 lsli r2, r2, 2 + 8248: 6c08 or r0, r2 + 824a: 6d00 or r4, r0 + 824c: 4367 lsli r3, r3, 7 + 824e: 6cd0 or r3, r4 + 8250: b561 st.w r3, (r5, 0x4) + 8252: 1409 addi r14, r14, 36 + 8254: 1484 pop r4-r7 + 8256: 3e40 cmpnei r6, 0 + 8258: 0bdc bt 0x8210 // 8210 + 825a: 9264 ld.w r3, (r2, 0x10) + 825c: 3b98 bclri r3, 24 + 825e: 3b99 bclri r3, 25 + 8260: 3bb8 bseti r3, 24 + 8262: b264 st.w r3, (r2, 0x10) + 8264: 3300 movi r3, 0 + 8266: 07d5 br 0x8210 // 8210 + 8268: 2000004c .long 0x2000004c + 826c: 20000050 .long 0x20000050 + 8270: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_io_enable: + +00008274 : + 8274: 14d4 push r4-r7, r15 + 8276: 1422 subi r14, r14, 8 + 8278: 1269 lrw r3, 0x2000004c // 839c + 827a: 31f0 movi r1, 240 + 827c: 9360 ld.w r3, (r3, 0x0) + 827e: 9340 ld.w r2, (r3, 0x0) + 8280: 4130 lsli r1, r1, 16 + 8282: 6885 andn r2, r1 + 8284: 3ab4 bseti r2, 20 + 8286: 3ab7 bseti r2, 23 + 8288: b340 st.w r2, (r3, 0x0) + 828a: 35f0 movi r5, 240 + 828c: 1245 lrw r2, 0x20000268 // 83a0 + 828e: 36f0 movi r6, 240 + 8290: 9240 ld.w r2, (r2, 0x0) + 8292: b841 st.w r2, (r14, 0x4) + 8294: 3400 movi r4, 0 + 8296: 1244 lrw r2, 0x20000048 // 83a4 + 8298: 45ac lsli r5, r5, 12 + 829a: 9240 ld.w r2, (r2, 0x0) + 829c: b820 st.w r1, (r14, 0x0) + 829e: 46c8 lsli r6, r6, 8 + 82a0: 3701 movi r7, 1 + 82a2: 71d0 lsl r7, r4 + 82a4: 9821 ld.w r1, (r14, 0x4) + 82a6: 69c4 and r7, r1 + 82a8: 3f40 cmpnei r7, 0 + 82aa: 7410 zextb r0, r4 + 82ac: 0c1b bf 0x82e2 // 82e2 + 82ae: 2800 subi r0, 1 + 82b0: 380f cmphsi r0, 16 + 82b2: 080b bt 0x82c8 // 82c8 + 82b4: e3ffc524 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 82b8: 27201a0f .long 0x27201a0f + 82bc: 3d38312c .long 0x3d38312c + 82c0: 56514a44 .long 0x56514a44 + 82c4: 6c67615b .long 0x6c67615b + 82c8: 9200 ld.w r0, (r2, 0x0) + 82ca: 37f0 movi r7, 240 + 82cc: 681d andn r0, r7 + 82ce: 38a4 bseti r0, 4 + 82d0: 38a7 bseti r0, 7 + 82d2: b200 st.w r0, (r2, 0x0) + 82d4: 0407 br 0x82e2 // 82e2 + 82d6: 9300 ld.w r0, (r3, 0x0) + 82d8: 370f movi r7, 15 + 82da: 681d andn r0, r7 + 82dc: 38a0 bseti r0, 0 + 82de: 38a3 bseti r0, 3 + 82e0: b300 st.w r0, (r3, 0x0) + 82e2: 2400 addi r4, 1 + 82e4: 3c51 cmpnei r4, 17 + 82e6: 0bdd bt 0x82a0 // 82a0 + 82e8: 1402 addi r14, r14, 8 + 82ea: 1494 pop r4-r7, r15 + 82ec: 9300 ld.w r0, (r3, 0x0) + 82ee: 37f0 movi r7, 240 + 82f0: 681d andn r0, r7 + 82f2: 38a4 bseti r0, 4 + 82f4: 38a7 bseti r0, 7 + 82f6: 07f5 br 0x82e0 // 82e0 + 82f8: 37f0 movi r7, 240 + 82fa: 9300 ld.w r0, (r3, 0x0) + 82fc: 47e4 lsli r7, r7, 4 + 82fe: 681d andn r0, r7 + 8300: 38a8 bseti r0, 8 + 8302: 38ab bseti r0, 11 + 8304: 07ee br 0x82e0 // 82e0 + 8306: 9300 ld.w r0, (r3, 0x0) + 8308: 6819 andn r0, r6 + 830a: 38ac bseti r0, 12 + 830c: 38af bseti r0, 15 + 830e: 07e9 br 0x82e0 // 82e0 + 8310: 9300 ld.w r0, (r3, 0x0) + 8312: 6815 andn r0, r5 + 8314: 38b0 bseti r0, 16 + 8316: 38b3 bseti r0, 19 + 8318: 07e4 br 0x82e0 // 82e0 + 831a: 37f0 movi r7, 240 + 831c: 9200 ld.w r0, (r2, 0x0) + 831e: 47e4 lsli r7, r7, 4 + 8320: 681d andn r0, r7 + 8322: 38a8 bseti r0, 8 + 8324: 38ab bseti r0, 11 + 8326: 07d6 br 0x82d2 // 82d2 + 8328: 9200 ld.w r0, (r2, 0x0) + 832a: 6819 andn r0, r6 + 832c: 38ac bseti r0, 12 + 832e: 38af bseti r0, 15 + 8330: 07d1 br 0x82d2 // 82d2 + 8332: 9301 ld.w r0, (r3, 0x4) + 8334: 370f movi r7, 15 + 8336: 681d andn r0, r7 + 8338: 38a0 bseti r0, 0 + 833a: 38a3 bseti r0, 3 + 833c: b301 st.w r0, (r3, 0x4) + 833e: 07d2 br 0x82e2 // 82e2 + 8340: 9301 ld.w r0, (r3, 0x4) + 8342: 37f0 movi r7, 240 + 8344: 681d andn r0, r7 + 8346: 38a4 bseti r0, 4 + 8348: 38a7 bseti r0, 7 + 834a: 07f9 br 0x833c // 833c + 834c: 37f0 movi r7, 240 + 834e: 9301 ld.w r0, (r3, 0x4) + 8350: 47e4 lsli r7, r7, 4 + 8352: 681d andn r0, r7 + 8354: 38a8 bseti r0, 8 + 8356: 38ab bseti r0, 11 + 8358: 07f2 br 0x833c // 833c + 835a: 9301 ld.w r0, (r3, 0x4) + 835c: 6819 andn r0, r6 + 835e: 38ac bseti r0, 12 + 8360: 38af bseti r0, 15 + 8362: 07ed br 0x833c // 833c + 8364: 9301 ld.w r0, (r3, 0x4) + 8366: 6815 andn r0, r5 + 8368: 38b0 bseti r0, 16 + 836a: 38b3 bseti r0, 19 + 836c: 07e8 br 0x833c // 833c + 836e: 9301 ld.w r0, (r3, 0x4) + 8370: 9820 ld.w r1, (r14, 0x0) + 8372: 6805 andn r0, r1 + 8374: 38b4 bseti r0, 20 + 8376: 38b7 bseti r0, 23 + 8378: 07e2 br 0x833c // 833c + 837a: 9200 ld.w r0, (r2, 0x0) + 837c: 370f movi r7, 15 + 837e: 681d andn r0, r7 + 8380: 38a0 bseti r0, 0 + 8382: 38a3 bseti r0, 3 + 8384: 07a7 br 0x82d2 // 82d2 + 8386: 9200 ld.w r0, (r2, 0x0) + 8388: 6815 andn r0, r5 + 838a: 38b0 bseti r0, 16 + 838c: 38b3 bseti r0, 19 + 838e: 07a2 br 0x82d2 // 82d2 + 8390: 9200 ld.w r0, (r2, 0x0) + 8392: 9820 ld.w r1, (r14, 0x0) + 8394: 6805 andn r0, r1 + 8396: 38b4 bseti r0, 20 + 8398: 38b7 bseti r0, 23 + 839a: 079c br 0x82d2 // 82d2 + 839c: 2000004c .long 0x2000004c + 83a0: 20000268 .long 0x20000268 + 83a4: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Single_Longpress_prg: + +000083a8 : + 83a8: 14c2 push r4-r5 + 83aa: 117d lrw r3, 0x20000a28 // 849c + 83ac: 115d lrw r2, 0x20000994 // 84a0 + 83ae: 9360 ld.w r3, (r3, 0x0) + 83b0: 3b40 cmpnei r3, 0 + 83b2: 0840 bt 0x8432 // 8432 + 83b4: 113c lrw r1, 0x20000070 // 84a4 + 83b6: 8962 ld.h r3, (r1, 0x4) + 83b8: 74cd zexth r3, r3 + 83ba: 3b40 cmpnei r3, 0 + 83bc: 0c3b bf 0x8432 // 8432 + 83be: 117b lrw r3, 0x20000928 // 84a8 + 83c0: 9360 ld.w r3, (r3, 0x0) + 83c2: 3b40 cmpnei r3, 0 + 83c4: 117a lrw r3, 0x20000ade // 84ac + 83c6: 0c0e bf 0x83e2 // 83e2 + 83c8: 8300 ld.b r0, (r3, 0x0) + 83ca: 2000 addi r0, 1 + 83cc: 7400 zextb r0, r0 + 83ce: a300 st.b r0, (r3, 0x0) + 83d0: 8380 ld.b r4, (r3, 0x0) + 83d2: 8902 ld.h r0, (r1, 0x4) + 83d4: 7401 zexth r0, r0 + 83d6: 3564 movi r5, 100 + 83d8: 7c14 mult r0, r5 + 83da: 6501 cmplt r0, r4 + 83dc: 0c05 bf 0x83e6 // 83e6 + 83de: 3001 movi r0, 1 + 83e0: a200 st.b r0, (r2, 0x0) + 83e2: 3000 movi r0, 0 + 83e4: a300 st.b r0, (r3, 0x0) + 83e6: 1113 lrw r0, 0x200008bc // 84b0 + 83e8: 9000 ld.w r0, (r0, 0x0) + 83ea: 3840 cmpnei r0, 0 + 83ec: 0c0e bf 0x8408 // 8408 + 83ee: 8301 ld.b r0, (r3, 0x1) + 83f0: 2000 addi r0, 1 + 83f2: 7400 zextb r0, r0 + 83f4: a301 st.b r0, (r3, 0x1) + 83f6: 8381 ld.b r4, (r3, 0x1) + 83f8: 8902 ld.h r0, (r1, 0x4) + 83fa: 7401 zexth r0, r0 + 83fc: 3564 movi r5, 100 + 83fe: 7c14 mult r0, r5 + 8400: 6501 cmplt r0, r4 + 8402: 0c05 bf 0x840c // 840c + 8404: 3001 movi r0, 1 + 8406: a201 st.b r0, (r2, 0x1) + 8408: 3000 movi r0, 0 + 840a: a301 st.b r0, (r3, 0x1) + 840c: 110a lrw r0, 0x200009a0 // 84b4 + 840e: 9000 ld.w r0, (r0, 0x0) + 8410: 3840 cmpnei r0, 0 + 8412: 0c0e bf 0x842e // 842e + 8414: 8302 ld.b r0, (r3, 0x2) + 8416: 2000 addi r0, 1 + 8418: 7400 zextb r0, r0 + 841a: a302 st.b r0, (r3, 0x2) + 841c: 8302 ld.b r0, (r3, 0x2) + 841e: 8922 ld.h r1, (r1, 0x4) + 8420: 7445 zexth r1, r1 + 8422: 3464 movi r4, 100 + 8424: 7c50 mult r1, r4 + 8426: 6405 cmplt r1, r0 + 8428: 0c05 bf 0x8432 // 8432 + 842a: 3101 movi r1, 1 + 842c: a222 st.b r1, (r2, 0x2) + 842e: 3100 movi r1, 0 + 8430: a322 st.b r1, (r3, 0x2) + 8432: 8260 ld.b r3, (r2, 0x0) + 8434: 3b41 cmpnei r3, 1 + 8436: 080f bt 0x8454 // 8454 + 8438: 3300 movi r3, 0 + 843a: 11a0 lrw r5, 0x20000bda // 84b8 + 843c: 1180 lrw r4, 0x20000888 // 84bc + 843e: 4321 lsli r1, r3, 1 + 8440: 5d04 addu r0, r5, r1 + 8442: 8800 ld.h r0, (r0, 0x0) + 8444: 2300 addi r3, 1 + 8446: 7401 zexth r0, r0 + 8448: 6050 addu r1, r4 + 844a: 3b51 cmpnei r3, 17 + 844c: a900 st.h r0, (r1, 0x0) + 844e: 0bf8 bt 0x843e // 843e + 8450: 3300 movi r3, 0 + 8452: a260 st.b r3, (r2, 0x0) + 8454: 8261 ld.b r3, (r2, 0x1) + 8456: 3b41 cmpnei r3, 1 + 8458: 080f bt 0x8476 // 8476 + 845a: 3300 movi r3, 0 + 845c: 10b9 lrw r5, 0x20000970 // 84c0 + 845e: 109a lrw r4, 0x20000a32 // 84c4 + 8460: 4321 lsli r1, r3, 1 + 8462: 5d04 addu r0, r5, r1 + 8464: 8800 ld.h r0, (r0, 0x0) + 8466: 2300 addi r3, 1 + 8468: 7401 zexth r0, r0 + 846a: 6050 addu r1, r4 + 846c: 3b51 cmpnei r3, 17 + 846e: a900 st.h r0, (r1, 0x0) + 8470: 0bf8 bt 0x8460 // 8460 + 8472: 3300 movi r3, 0 + 8474: a261 st.b r3, (r2, 0x1) + 8476: 8262 ld.b r3, (r2, 0x2) + 8478: 3b41 cmpnei r3, 1 + 847a: 080f bt 0x8498 // 8498 + 847c: 3300 movi r3, 0 + 847e: 10b3 lrw r5, 0x20000a66 // 84c8 + 8480: 1093 lrw r4, 0x20000b48 // 84cc + 8482: 4321 lsli r1, r3, 1 + 8484: 5d04 addu r0, r5, r1 + 8486: 8800 ld.h r0, (r0, 0x0) + 8488: 2300 addi r3, 1 + 848a: 7401 zexth r0, r0 + 848c: 6050 addu r1, r4 + 848e: 3b51 cmpnei r3, 17 + 8490: a900 st.h r0, (r1, 0x0) + 8492: 0bf8 bt 0x8482 // 8482 + 8494: 3300 movi r3, 0 + 8496: a262 st.b r3, (r2, 0x2) + 8498: 1482 pop r4-r5 + 849a: 0000 bkpt + 849c: 20000a28 .long 0x20000a28 + 84a0: 20000994 .long 0x20000994 + 84a4: 20000070 .long 0x20000070 + 84a8: 20000928 .long 0x20000928 + 84ac: 20000ade .long 0x20000ade + 84b0: 200008bc .long 0x200008bc + 84b4: 200009a0 .long 0x200009a0 + 84b8: 20000bda .long 0x20000bda + 84bc: 20000888 .long 0x20000888 + 84c0: 20000970 .long 0x20000970 + 84c4: 20000a32 .long 0x20000a32 + 84c8: 20000a66 .long 0x20000a66 + 84cc: 20000b48 .long 0x20000b48 + +Disassembly of section .text.TK_Sampling_prog: + +000084d0 : + 84d0: 14c4 push r4-r7 + 84d2: 1423 subi r14, r14, 12 + 84d4: 1169 lrw r3, 0x20000054 // 8578 + 84d6: 114a lrw r2, 0x20000b45 // 857c + 84d8: 6d0b mov r4, r2 + 84da: 9320 ld.w r1, (r3, 0x0) + 84dc: b840 st.w r2, (r14, 0x0) + 84de: 3300 movi r3, 0 + 84e0: 11a8 lrw r5, 0x20000bda // 8580 + 84e2: 9840 ld.w r2, (r14, 0x0) + 84e4: 8240 ld.b r2, (r2, 0x0) + 84e6: 3a41 cmpnei r2, 1 + 84e8: 0808 bt 0x84f8 // 84f8 + 84ea: 4342 lsli r2, r3, 2 + 84ec: 6084 addu r2, r1 + 84ee: 9200 ld.w r0, (r2, 0x0) + 84f0: 4341 lsli r2, r3, 1 + 84f2: 7401 zexth r0, r0 + 84f4: 6094 addu r2, r5 + 84f6: aa00 st.h r0, (r2, 0x0) + 84f8: 8440 ld.b r2, (r4, 0x0) + 84fa: 3a42 cmpnei r2, 2 + 84fc: 0809 bt 0x850e // 850e + 84fe: 4342 lsli r2, r3, 2 + 8500: 6084 addu r2, r1 + 8502: 9200 ld.w r0, (r2, 0x0) + 8504: 4341 lsli r2, r3, 1 + 8506: 11c0 lrw r6, 0x20000970 // 8584 + 8508: 7401 zexth r0, r0 + 850a: 6098 addu r2, r6 + 850c: aa00 st.h r0, (r2, 0x0) + 850e: 8440 ld.b r2, (r4, 0x0) + 8510: 3a40 cmpnei r2, 0 + 8512: 0809 bt 0x8524 // 8524 + 8514: 4342 lsli r2, r3, 2 + 8516: 6084 addu r2, r1 + 8518: 9200 ld.w r0, (r2, 0x0) + 851a: 4341 lsli r2, r3, 1 + 851c: 10db lrw r6, 0x20000a66 // 8588 + 851e: 7401 zexth r0, r0 + 8520: 6098 addu r2, r6 + 8522: aa00 st.h r0, (r2, 0x0) + 8524: 10da lrw r6, 0x200009cd // 858c + 8526: 8640 ld.b r2, (r6, 0x0) + 8528: 3a41 cmpnei r2, 1 + 852a: 0821 bt 0x856c // 856c + 852c: 1079 lrw r3, 0x20000888 // 8590 + 852e: 3200 movi r2, 0 + 8530: b861 st.w r3, (r14, 0x4) + 8532: 1075 lrw r3, 0x20000970 // 8584 + 8534: b862 st.w r3, (r14, 0x8) + 8536: 4261 lsli r3, r2, 1 + 8538: 5d0c addu r0, r5, r3 + 853a: 8800 ld.h r0, (r0, 0x0) + 853c: 98e1 ld.w r7, (r14, 0x4) + 853e: 61cc addu r7, r3 + 8540: 7401 zexth r0, r0 + 8542: af00 st.h r0, (r7, 0x0) + 8544: 9802 ld.w r0, (r14, 0x8) + 8546: 600c addu r0, r3 + 8548: 8800 ld.h r0, (r0, 0x0) + 854a: 10f3 lrw r7, 0x20000a32 // 8594 + 854c: 61cc addu r7, r3 + 854e: 7401 zexth r0, r0 + 8550: af00 st.h r0, (r7, 0x0) + 8552: 2200 addi r2, 1 + 8554: 100d lrw r0, 0x20000a66 // 8588 + 8556: 600c addu r0, r3 + 8558: 8800 ld.h r0, (r0, 0x0) + 855a: 10f0 lrw r7, 0x20000b48 // 8598 + 855c: 7401 zexth r0, r0 + 855e: 60dc addu r3, r7 + 8560: 3a51 cmpnei r2, 17 + 8562: ab00 st.h r0, (r3, 0x0) + 8564: 0be9 bt 0x8536 // 8536 + 8566: 3300 movi r3, 0 + 8568: a660 st.b r3, (r6, 0x0) + 856a: 3311 movi r3, 17 + 856c: 2300 addi r3, 1 + 856e: 74cc zextb r3, r3 + 8570: 3b10 cmphsi r3, 17 + 8572: 0fb8 bf 0x84e2 // 84e2 + 8574: 1403 addi r14, r14, 12 + 8576: 1484 pop r4-r7 + 8578: 20000054 .long 0x20000054 + 857c: 20000b45 .long 0x20000b45 + 8580: 20000bda .long 0x20000bda + 8584: 20000970 .long 0x20000970 + 8588: 20000a66 .long 0x20000a66 + 858c: 200009cd .long 0x200009cd + 8590: 20000888 .long 0x20000888 + 8594: 20000a32 .long 0x20000a32 + 8598: 20000b48 .long 0x20000b48 + +Disassembly of section .text.get_key_number: + +0000859c : + 859c: 14c2 push r4-r5 + 859e: 3200 movi r2, 0 + 85a0: 3000 movi r0, 0 + 85a2: 1088 lrw r4, 0x20000a28 // 85c0 + 85a4: 3501 movi r5, 1 + 85a6: 3120 movi r1, 32 + 85a8: 9460 ld.w r3, (r4, 0x0) + 85aa: 70c9 lsr r3, r2 + 85ac: 68d4 and r3, r5 + 85ae: 3b40 cmpnei r3, 0 + 85b0: 0c02 bf 0x85b4 // 85b4 + 85b2: 2000 addi r0, 1 + 85b4: 2200 addi r2, 1 + 85b6: 644a cmpne r2, r1 + 85b8: 0bf8 bt 0x85a8 // 85a8 + 85ba: 7400 zextb r0, r0 + 85bc: 1482 pop r4-r5 + 85be: 0000 bkpt + 85c0: 20000a28 .long 0x20000a28 + +Disassembly of section .text.get_key_number0: + +000085c4 : + 85c4: 14c2 push r4-r5 + 85c6: 3200 movi r2, 0 + 85c8: 3000 movi r0, 0 + 85ca: 1088 lrw r4, 0x20000928 // 85e8 + 85cc: 3501 movi r5, 1 + 85ce: 3120 movi r1, 32 + 85d0: 9460 ld.w r3, (r4, 0x0) + 85d2: 70c9 lsr r3, r2 + 85d4: 68d4 and r3, r5 + 85d6: 3b40 cmpnei r3, 0 + 85d8: 0c02 bf 0x85dc // 85dc + 85da: 2000 addi r0, 1 + 85dc: 2200 addi r2, 1 + 85de: 644a cmpne r2, r1 + 85e0: 0bf8 bt 0x85d0 // 85d0 + 85e2: 7400 zextb r0, r0 + 85e4: 1482 pop r4-r5 + 85e6: 0000 bkpt + 85e8: 20000928 .long 0x20000928 + +Disassembly of section .text.get_key_number1: + +000085ec : + 85ec: 14c2 push r4-r5 + 85ee: 3200 movi r2, 0 + 85f0: 3000 movi r0, 0 + 85f2: 1088 lrw r4, 0x200008bc // 8610 + 85f4: 3501 movi r5, 1 + 85f6: 3120 movi r1, 32 + 85f8: 9460 ld.w r3, (r4, 0x0) + 85fa: 70c9 lsr r3, r2 + 85fc: 68d4 and r3, r5 + 85fe: 3b40 cmpnei r3, 0 + 8600: 0c02 bf 0x8604 // 8604 + 8602: 2000 addi r0, 1 + 8604: 2200 addi r2, 1 + 8606: 644a cmpne r2, r1 + 8608: 0bf8 bt 0x85f8 // 85f8 + 860a: 7400 zextb r0, r0 + 860c: 1482 pop r4-r5 + 860e: 0000 bkpt + 8610: 200008bc .long 0x200008bc + +Disassembly of section .text.get_key_number2: + +00008614 : + 8614: 14c2 push r4-r5 + 8616: 3200 movi r2, 0 + 8618: 3000 movi r0, 0 + 861a: 1088 lrw r4, 0x200009a0 // 8638 + 861c: 3501 movi r5, 1 + 861e: 3120 movi r1, 32 + 8620: 9460 ld.w r3, (r4, 0x0) + 8622: 70c9 lsr r3, r2 + 8624: 68d4 and r3, r5 + 8626: 3b40 cmpnei r3, 0 + 8628: 0c02 bf 0x862c // 862c + 862a: 2000 addi r0, 1 + 862c: 2200 addi r2, 1 + 862e: 644a cmpne r2, r1 + 8630: 0bf8 bt 0x8620 // 8620 + 8632: 7400 zextb r0, r0 + 8634: 1482 pop r4-r5 + 8636: 0000 bkpt + 8638: 200009a0 .long 0x200009a0 + +Disassembly of section .text.TK_Baseline_prog: + +0000863c : + 863c: 14c4 push r4-r7 + 863e: 142a subi r14, r14, 40 + 8640: 1264 lrw r3, 0x2000099c // 8750 + 8642: 1245 lrw r2, 0x20000b45 // 8754 + 8644: 6c0b mov r0, r2 + 8646: 9360 ld.w r3, (r3, 0x0) + 8648: b865 st.w r3, (r14, 0x14) + 864a: 1264 lrw r3, 0x2000096c // 8758 + 864c: 9360 ld.w r3, (r3, 0x0) + 864e: b864 st.w r3, (r14, 0x10) + 8650: 1263 lrw r3, 0x20000bfc // 875c + 8652: 9360 ld.w r3, (r3, 0x0) + 8654: b863 st.w r3, (r14, 0xc) + 8656: 1263 lrw r3, 0x20000058 // 8760 + 8658: 9360 ld.w r3, (r3, 0x0) + 865a: b866 st.w r3, (r14, 0x18) + 865c: 1262 lrw r3, 0x20000054 // 8764 + 865e: 9360 ld.w r3, (r3, 0x0) + 8660: b860 st.w r3, (r14, 0x0) + 8662: 3306 movi r3, 6 + 8664: b861 st.w r3, (r14, 0x4) + 8666: 1261 lrw r3, 0x20000070 // 8768 + 8668: b862 st.w r3, (r14, 0x8) + 866a: 3103 movi r1, 3 + 866c: 8260 ld.b r3, (r2, 0x0) + 866e: 74cc zextb r3, r3 + 8670: 3b41 cmpnei r3, 1 + 8672: 0c66 bf 0x873e // 873e + 8674: 3b40 cmpnei r3, 0 + 8676: 0c5c bf 0x872e // 872e + 8678: 3b42 cmpnei r3, 2 + 867a: 0c65 bf 0x8744 // 8744 + 867c: 3301 movi r3, 1 + 867e: 9886 ld.w r4, (r14, 0x18) + 8680: b462 st.w r3, (r4, 0x8) + 8682: 9862 ld.w r3, (r14, 0x8) + 8684: 3400 movi r4, 0 + 8686: a380 st.b r4, (r3, 0x0) + 8688: 9862 ld.w r3, (r14, 0x8) + 868a: 8360 ld.b r3, (r3, 0x0) + 868c: 3b40 cmpnei r3, 0 + 868e: 0ffd bf 0x8688 // 8688 + 8690: 6c03 mov r0, r0 + 8692: 1197 lrw r4, 0x20000888 // 876c + 8694: 3300 movi r3, 0 + 8696: b887 st.w r4, (r14, 0x1c) + 8698: 1196 lrw r4, 0x20000bda // 8770 + 869a: b888 st.w r4, (r14, 0x20) + 869c: 1196 lrw r4, 0x20000a32 // 8774 + 869e: b889 st.w r4, (r14, 0x24) + 86a0: 8080 ld.b r4, (r0, 0x0) + 86a2: 3c41 cmpnei r4, 1 + 86a4: 080f bt 0x86c2 // 86c2 + 86a6: 9880 ld.w r4, (r14, 0x0) + 86a8: 43a2 lsli r5, r3, 2 + 86aa: 6150 addu r5, r4 + 86ac: 95c0 ld.w r6, (r5, 0x0) + 86ae: 4381 lsli r4, r3, 1 + 86b0: 98e7 ld.w r7, (r14, 0x1c) + 86b2: 7599 zexth r6, r6 + 86b4: 61d0 addu r7, r4 + 86b6: afc0 st.h r6, (r7, 0x0) + 86b8: 95a0 ld.w r5, (r5, 0x0) + 86ba: 98c8 ld.w r6, (r14, 0x20) + 86bc: 7555 zexth r5, r5 + 86be: 6118 addu r4, r6 + 86c0: aca0 st.h r5, (r4, 0x0) + 86c2: 8080 ld.b r4, (r0, 0x0) + 86c4: 3c42 cmpnei r4, 2 + 86c6: 080f bt 0x86e4 // 86e4 + 86c8: 9880 ld.w r4, (r14, 0x0) + 86ca: 43a2 lsli r5, r3, 2 + 86cc: 6150 addu r5, r4 + 86ce: 95c0 ld.w r6, (r5, 0x0) + 86d0: 4381 lsli r4, r3, 1 + 86d2: 98e9 ld.w r7, (r14, 0x24) + 86d4: 7599 zexth r6, r6 + 86d6: 61d0 addu r7, r4 + 86d8: afc0 st.h r6, (r7, 0x0) + 86da: 95a0 ld.w r5, (r5, 0x0) + 86dc: 7555 zexth r5, r5 + 86de: 11c7 lrw r6, 0x20000970 // 8778 + 86e0: 6118 addu r4, r6 + 86e2: aca0 st.h r5, (r4, 0x0) + 86e4: 8080 ld.b r4, (r0, 0x0) + 86e6: 3c40 cmpnei r4, 0 + 86e8: 080f bt 0x8706 // 8706 + 86ea: 9880 ld.w r4, (r14, 0x0) + 86ec: 43a2 lsli r5, r3, 2 + 86ee: 6150 addu r5, r4 + 86f0: 95c0 ld.w r6, (r5, 0x0) + 86f2: 4381 lsli r4, r3, 1 + 86f4: 11e2 lrw r7, 0x20000b48 // 877c + 86f6: 7599 zexth r6, r6 + 86f8: 61d0 addu r7, r4 + 86fa: afc0 st.h r6, (r7, 0x0) + 86fc: 95a0 ld.w r5, (r5, 0x0) + 86fe: 7555 zexth r5, r5 + 8700: 11c0 lrw r6, 0x20000a66 // 8780 + 8702: 6118 addu r4, r6 + 8704: aca0 st.h r5, (r4, 0x0) + 8706: 2300 addi r3, 1 + 8708: 3b51 cmpnei r3, 17 + 870a: 0bcb bt 0x86a0 // 86a0 + 870c: 2900 subi r1, 1 + 870e: 7444 zextb r1, r1 + 8710: 3940 cmpnei r1, 0 + 8712: 0bad bt 0x866c // 866c + 8714: 9861 ld.w r3, (r14, 0x4) + 8716: 2b00 subi r3, 1 + 8718: 74cc zextb r3, r3 + 871a: 3b40 cmpnei r3, 0 + 871c: b861 st.w r3, (r14, 0x4) + 871e: 0ba6 bt 0x866a // 866a + 8720: 1079 lrw r3, 0x20000934 // 8784 + 8722: 3201 movi r2, 1 + 8724: a340 st.b r2, (r3, 0x0) + 8726: 3300 movi r3, 0 + 8728: a060 st.b r3, (r0, 0x0) + 872a: 140a addi r14, r14, 40 + 872c: 1484 pop r4-r7 + 872e: 1077 lrw r3, 0x40011200 // 8788 + 8730: 9883 ld.w r4, (r14, 0xc) + 8732: b390 st.w r4, (r3, 0x40) + 8734: 8260 ld.b r3, (r2, 0x0) + 8736: 2300 addi r3, 1 + 8738: 74cc zextb r3, r3 + 873a: a260 st.b r3, (r2, 0x0) + 873c: 07a0 br 0x867c // 867c + 873e: 1073 lrw r3, 0x40011200 // 8788 + 8740: 9884 ld.w r4, (r14, 0x10) + 8742: 07f8 br 0x8732 // 8732 + 8744: 1071 lrw r3, 0x40011200 // 8788 + 8746: 9885 ld.w r4, (r14, 0x14) + 8748: b390 st.w r4, (r3, 0x40) + 874a: 3300 movi r3, 0 + 874c: 07f7 br 0x873a // 873a + 874e: 0000 bkpt + 8750: 2000099c .long 0x2000099c + 8754: 20000b45 .long 0x20000b45 + 8758: 2000096c .long 0x2000096c + 875c: 20000bfc .long 0x20000bfc + 8760: 20000058 .long 0x20000058 + 8764: 20000054 .long 0x20000054 + 8768: 20000070 .long 0x20000070 + 876c: 20000888 .long 0x20000888 + 8770: 20000bda .long 0x20000bda + 8774: 20000a32 .long 0x20000a32 + 8778: 20000970 .long 0x20000970 + 877c: 20000b48 .long 0x20000b48 + 8780: 20000a66 .long 0x20000a66 + 8784: 20000934 .long 0x20000934 + 8788: 40011200 .long 0x40011200 + +Disassembly of section .text.TK_Baseline_prog2: + +0000878c : + 878c: 14c4 push r4-r7 + 878e: 142a subi r14, r14, 40 + 8790: 1262 lrw r3, 0x20000934 // 8898 + 8792: 3200 movi r2, 0 + 8794: a340 st.b r2, (r3, 0x0) + 8796: b866 st.w r3, (r14, 0x18) + 8798: 3103 movi r1, 3 + 879a: 1241 lrw r2, 0x2000099c // 889c + 879c: 1261 lrw r3, 0x20000070 // 88a0 + 879e: 9240 ld.w r2, (r2, 0x0) + 87a0: b844 st.w r2, (r14, 0x10) + 87a2: b861 st.w r3, (r14, 0x4) + 87a4: 1240 lrw r2, 0x2000096c // 88a4 + 87a6: 9240 ld.w r2, (r2, 0x0) + 87a8: b843 st.w r2, (r14, 0xc) + 87aa: 1240 lrw r2, 0x20000bfc // 88a8 + 87ac: 9240 ld.w r2, (r2, 0x0) + 87ae: b842 st.w r2, (r14, 0x8) + 87b0: 115f lrw r2, 0x20000058 // 88ac + 87b2: 9240 ld.w r2, (r2, 0x0) + 87b4: b845 st.w r2, (r14, 0x14) + 87b6: 115f lrw r2, 0x20000054 // 88b0 + 87b8: 9240 ld.w r2, (r2, 0x0) + 87ba: b840 st.w r2, (r14, 0x0) + 87bc: 115e lrw r2, 0x20000b45 // 88b4 + 87be: 6c0b mov r0, r2 + 87c0: 8260 ld.b r3, (r2, 0x0) + 87c2: 74cc zextb r3, r3 + 87c4: 3b41 cmpnei r3, 1 + 87c6: 0c60 bf 0x8886 // 8886 + 87c8: 3b40 cmpnei r3, 0 + 87ca: 0c56 bf 0x8876 // 8876 + 87cc: 3b42 cmpnei r3, 2 + 87ce: 0c5f bf 0x888c // 888c + 87d0: 3301 movi r3, 1 + 87d2: 9885 ld.w r4, (r14, 0x14) + 87d4: b462 st.w r3, (r4, 0x8) + 87d6: 9861 ld.w r3, (r14, 0x4) + 87d8: 3400 movi r4, 0 + 87da: a380 st.b r4, (r3, 0x0) + 87dc: 9861 ld.w r3, (r14, 0x4) + 87de: 8360 ld.b r3, (r3, 0x0) + 87e0: 3b40 cmpnei r3, 0 + 87e2: 0ffd bf 0x87dc // 87dc + 87e4: 6c03 mov r0, r0 + 87e6: 1195 lrw r4, 0x20000888 // 88b8 + 87e8: 3300 movi r3, 0 + 87ea: b887 st.w r4, (r14, 0x1c) + 87ec: 1194 lrw r4, 0x20000bda // 88bc + 87ee: b888 st.w r4, (r14, 0x20) + 87f0: 1194 lrw r4, 0x20000a32 // 88c0 + 87f2: b889 st.w r4, (r14, 0x24) + 87f4: 8080 ld.b r4, (r0, 0x0) + 87f6: 3c41 cmpnei r4, 1 + 87f8: 080f bt 0x8816 // 8816 + 87fa: 9880 ld.w r4, (r14, 0x0) + 87fc: 43a2 lsli r5, r3, 2 + 87fe: 6150 addu r5, r4 + 8800: 95c0 ld.w r6, (r5, 0x0) + 8802: 4381 lsli r4, r3, 1 + 8804: 98e7 ld.w r7, (r14, 0x1c) + 8806: 7599 zexth r6, r6 + 8808: 61d0 addu r7, r4 + 880a: afc0 st.h r6, (r7, 0x0) + 880c: 95a0 ld.w r5, (r5, 0x0) + 880e: 98c8 ld.w r6, (r14, 0x20) + 8810: 7555 zexth r5, r5 + 8812: 6118 addu r4, r6 + 8814: aca0 st.h r5, (r4, 0x0) + 8816: 8080 ld.b r4, (r0, 0x0) + 8818: 3c42 cmpnei r4, 2 + 881a: 080f bt 0x8838 // 8838 + 881c: 9880 ld.w r4, (r14, 0x0) + 881e: 43a2 lsli r5, r3, 2 + 8820: 6150 addu r5, r4 + 8822: 95c0 ld.w r6, (r5, 0x0) + 8824: 4381 lsli r4, r3, 1 + 8826: 98e9 ld.w r7, (r14, 0x24) + 8828: 7599 zexth r6, r6 + 882a: 61d0 addu r7, r4 + 882c: afc0 st.h r6, (r7, 0x0) + 882e: 95a0 ld.w r5, (r5, 0x0) + 8830: 7555 zexth r5, r5 + 8832: 11c5 lrw r6, 0x20000970 // 88c4 + 8834: 6118 addu r4, r6 + 8836: aca0 st.h r5, (r4, 0x0) + 8838: 8080 ld.b r4, (r0, 0x0) + 883a: 3c40 cmpnei r4, 0 + 883c: 080f bt 0x885a // 885a + 883e: 9880 ld.w r4, (r14, 0x0) + 8840: 43a2 lsli r5, r3, 2 + 8842: 6150 addu r5, r4 + 8844: 95c0 ld.w r6, (r5, 0x0) + 8846: 4381 lsli r4, r3, 1 + 8848: 11e0 lrw r7, 0x20000b48 // 88c8 + 884a: 7599 zexth r6, r6 + 884c: 61d0 addu r7, r4 + 884e: afc0 st.h r6, (r7, 0x0) + 8850: 95a0 ld.w r5, (r5, 0x0) + 8852: 7555 zexth r5, r5 + 8854: 10de lrw r6, 0x20000a66 // 88cc + 8856: 6118 addu r4, r6 + 8858: aca0 st.h r5, (r4, 0x0) + 885a: 2300 addi r3, 1 + 885c: 3b51 cmpnei r3, 17 + 885e: 0bcb bt 0x87f4 // 87f4 + 8860: 2900 subi r1, 1 + 8862: 7444 zextb r1, r1 + 8864: 3940 cmpnei r1, 0 + 8866: 0bad bt 0x87c0 // 87c0 + 8868: 9866 ld.w r3, (r14, 0x18) + 886a: 3201 movi r2, 1 + 886c: a340 st.b r2, (r3, 0x0) + 886e: 3300 movi r3, 0 + 8870: a060 st.b r3, (r0, 0x0) + 8872: 140a addi r14, r14, 40 + 8874: 1484 pop r4-r7 + 8876: 1077 lrw r3, 0x40011200 // 88d0 + 8878: 9882 ld.w r4, (r14, 0x8) + 887a: b390 st.w r4, (r3, 0x40) + 887c: 8260 ld.b r3, (r2, 0x0) + 887e: 2300 addi r3, 1 + 8880: 74cc zextb r3, r3 + 8882: a260 st.b r3, (r2, 0x0) + 8884: 07a6 br 0x87d0 // 87d0 + 8886: 1073 lrw r3, 0x40011200 // 88d0 + 8888: 9883 ld.w r4, (r14, 0xc) + 888a: 07f8 br 0x887a // 887a + 888c: 1071 lrw r3, 0x40011200 // 88d0 + 888e: 9884 ld.w r4, (r14, 0x10) + 8890: b390 st.w r4, (r3, 0x40) + 8892: 3300 movi r3, 0 + 8894: 07f7 br 0x8882 // 8882 + 8896: 0000 bkpt + 8898: 20000934 .long 0x20000934 + 889c: 2000099c .long 0x2000099c + 88a0: 20000070 .long 0x20000070 + 88a4: 2000096c .long 0x2000096c + 88a8: 20000bfc .long 0x20000bfc + 88ac: 20000058 .long 0x20000058 + 88b0: 20000054 .long 0x20000054 + 88b4: 20000b45 .long 0x20000b45 + 88b8: 20000888 .long 0x20000888 + 88bc: 20000bda .long 0x20000bda + 88c0: 20000a32 .long 0x20000a32 + 88c4: 20000970 .long 0x20000970 + 88c8: 20000b48 .long 0x20000b48 + 88cc: 20000a66 .long 0x20000a66 + 88d0: 40011200 .long 0x40011200 + +Disassembly of section .text.tk_poweron_data_fineturn: + +000088d4 : + 88d4: 14d4 push r4-r7, r15 + 88d6: 1433 subi r14, r14, 76 + 88d8: 117e lrw r3, 0x20000070 // 89d0 + 88da: 8366 ld.b r3, (r3, 0x6) + 88dc: 3b41 cmpnei r3, 1 + 88de: 0877 bt 0x89cc // 89cc + 88e0: 117d lrw r3, 0x20000bda // 89d4 + 88e2: b860 st.w r3, (r14, 0x0) + 88e4: 3300 movi r3, 0 + 88e6: 301e movi r0, 30 + 88e8: 4321 lsli r1, r3, 1 + 88ea: 1a02 addi r2, r14, 8 + 88ec: 6048 addu r1, r2 + 88ee: 115b lrw r2, 0x2000026e // 89d8 + 88f0: 608c addu r2, r3 + 88f2: 8a40 ld.h r2, (r2, 0x0) + 88f4: 4245 lsli r2, r2, 5 + 88f6: 6080 addu r2, r0 + 88f8: b140 st.w r2, (r1, 0x0) + 88fa: 2301 addi r3, 2 + 88fc: 3222 movi r2, 34 + 88fe: 648e cmpne r3, r2 + 8900: 0bf4 bt 0x88e8 // 88e8 + 8902: 1197 lrw r4, 0x20000242 // 89dc + 8904: 3200 movi r2, 0 + 8906: 3000 movi r0, 0 + 8908: b881 st.w r4, (r14, 0x4) + 890a: 11d6 lrw r6, 0x20000970 // 89e0 + 890c: 4261 lsli r3, r2, 1 + 890e: 98a0 ld.w r5, (r14, 0x0) + 8910: 614c addu r5, r3 + 8912: 8d20 ld.h r1, (r5, 0x0) + 8914: 7445 zexth r1, r1 + 8916: 3940 cmpnei r1, 0 + 8918: 0c36 bf 0x8984 // 8984 + 891a: 5e2c addu r1, r6, r3 + 891c: 8920 ld.h r1, (r1, 0x0) + 891e: 7445 zexth r1, r1 + 8920: 3940 cmpnei r1, 0 + 8922: 0c31 bf 0x8984 // 8984 + 8924: 1130 lrw r1, 0x20000a66 // 89e4 + 8926: 60c4 addu r3, r1 + 8928: 8b60 ld.h r3, (r3, 0x0) + 892a: 74cd zexth r3, r3 + 892c: 3b40 cmpnei r3, 0 + 892e: 0c2b bf 0x8984 // 8984 + 8930: 8d60 ld.h r3, (r5, 0x0) + 8932: 1f02 addi r7, r14, 8 + 8934: 42a2 lsli r5, r2, 2 + 8936: 615c addu r5, r7 + 8938: 74cd zexth r3, r3 + 893a: 95a0 ld.w r5, (r5, 0x0) + 893c: 60d6 subu r3, r5 + 893e: 3bdf btsti r3, 31 + 8940: 0c03 bf 0x8946 // 8946 + 8942: 3700 movi r7, 0 + 8944: 5f6d subu r3, r7, r3 + 8946: 3b24 cmplti r3, 5 + 8948: 0817 bt 0x8976 // 8976 + 894a: 4261 lsli r3, r2, 1 + 894c: 60d8 addu r3, r6 + 894e: 8b60 ld.h r3, (r3, 0x0) + 8950: 74cd zexth r3, r3 + 8952: 60d6 subu r3, r5 + 8954: 3bdf btsti r3, 31 + 8956: 0c03 bf 0x895c // 895c + 8958: 3700 movi r7, 0 + 895a: 5f6d subu r3, r7, r3 + 895c: 3b24 cmplti r3, 5 + 895e: 080c bt 0x8976 // 8976 + 8960: 4261 lsli r3, r2, 1 + 8962: 604c addu r1, r3 + 8964: 8960 ld.h r3, (r1, 0x0) + 8966: 74cd zexth r3, r3 + 8968: 60d6 subu r3, r5 + 896a: 3bdf btsti r3, 31 + 896c: 0c03 bf 0x8972 // 8972 + 896e: 3100 movi r1, 0 + 8970: 596d subu r3, r1, r3 + 8972: 3b24 cmplti r3, 5 + 8974: 0c08 bf 0x8984 // 8984 + 8976: 8c60 ld.h r3, (r4, 0x0) + 8978: 3b06 cmphsi r3, 7 + 897a: 0805 bt 0x8984 // 8984 + 897c: 2300 addi r3, 1 + 897e: 2000 addi r0, 1 + 8980: ac60 st.h r3, (r4, 0x0) + 8982: 7400 zextb r0, r0 + 8984: 2200 addi r2, 1 + 8986: 3a51 cmpnei r2, 17 + 8988: 2401 addi r4, 2 + 898a: 0bc1 bt 0x890c // 890c + 898c: 3840 cmpnei r0, 0 + 898e: 0c1f bf 0x89cc // 89cc + 8990: 1076 lrw r3, 0x20000058 // 89e8 + 8992: 3200 movi r2, 0 + 8994: 9360 ld.w r3, (r3, 0x0) + 8996: b342 st.w r2, (r3, 0x8) + 8998: 10b5 lrw r5, 0x20000b34 // 89ec + 899a: 1076 lrw r3, 0x20000054 // 89f0 + 899c: 1016 lrw r0, 0x20000ae4 // 89f4 + 899e: 9380 ld.w r4, (r3, 0x0) + 89a0: 3300 movi r3, 0 + 89a2: 8040 ld.b r2, (r0, 0x0) + 89a4: 648c cmphs r3, r2 + 89a6: 0c04 bf 0x89ae // 89ae + 89a8: e3fffef2 bsr 0x878c // 878c + 89ac: 079c br 0x88e4 // 88e4 + 89ae: 5d4c addu r2, r5, r3 + 89b0: 8240 ld.b r2, (r2, 0x0) + 89b2: 4241 lsli r2, r2, 1 + 89b4: 98e1 ld.w r7, (r14, 0x4) + 89b6: 4322 lsli r1, r3, 2 + 89b8: 609c addu r2, r7 + 89ba: 6050 addu r1, r4 + 89bc: 8a40 ld.h r2, (r2, 0x0) + 89be: 91d2 ld.w r6, (r1, 0x48) + 89c0: 4254 lsli r2, r2, 20 + 89c2: 6c98 or r2, r6 + 89c4: 2300 addi r3, 1 + 89c6: b152 st.w r2, (r1, 0x48) + 89c8: 74cc zextb r3, r3 + 89ca: 07ec br 0x89a2 // 89a2 + 89cc: 1413 addi r14, r14, 76 + 89ce: 1494 pop r4-r7, r15 + 89d0: 20000070 .long 0x20000070 + 89d4: 20000bda .long 0x20000bda + 89d8: 2000026e .long 0x2000026e + 89dc: 20000242 .long 0x20000242 + 89e0: 20000970 .long 0x20000970 + 89e4: 20000a66 .long 0x20000a66 + 89e8: 20000058 .long 0x20000058 + 89ec: 20000b34 .long 0x20000b34 + 89f0: 20000054 .long 0x20000054 + 89f4: 20000ae4 .long 0x20000ae4 + +Disassembly of section .text.TK_Scan_Start: + +000089f8 : + 89f8: 1073 lrw r3, 0x20000070 // 8a44 + 89fa: 1054 lrw r2, 0x20000b45 // 8a48 + 89fc: 8302 ld.b r0, (r3, 0x2) + 89fe: 8220 ld.b r1, (r2, 0x0) + 8a00: 6442 cmpne r0, r1 + 8a02: 0c16 bf 0x8a2e // 8a2e + 8a04: 8220 ld.b r1, (r2, 0x0) + 8a06: 7444 zextb r1, r1 + 8a08: 3941 cmpnei r1, 1 + 8a0a: 0c18 bf 0x8a3a // 8a3a + 8a0c: 3940 cmpnei r1, 0 + 8a0e: 0c11 bf 0x8a30 // 8a30 + 8a10: 3942 cmpnei r1, 2 + 8a12: 0c16 bf 0x8a3e // 8a3e + 8a14: 8240 ld.b r2, (r2, 0x0) + 8a16: 7488 zextb r2, r2 + 8a18: a342 st.b r2, (r3, 0x2) + 8a1a: 8341 ld.b r2, (r3, 0x1) + 8a1c: 7488 zextb r2, r2 + 8a1e: 3a41 cmpnei r2, 1 + 8a20: 0807 bt 0x8a2e // 8a2e + 8a22: 102b lrw r1, 0x20000058 // 8a4c + 8a24: 9120 ld.w r1, (r1, 0x0) + 8a26: b142 st.w r2, (r1, 0x8) + 8a28: 3200 movi r2, 0 + 8a2a: a340 st.b r2, (r3, 0x0) + 8a2c: a341 st.b r2, (r3, 0x1) + 8a2e: 783c jmp r15 + 8a30: 1028 lrw r1, 0x20000bfc // 8a50 + 8a32: 9100 ld.w r0, (r1, 0x0) + 8a34: 1028 lrw r1, 0x40011200 // 8a54 + 8a36: b110 st.w r0, (r1, 0x40) + 8a38: 07ee br 0x8a14 // 8a14 + 8a3a: 1028 lrw r1, 0x2000096c // 8a58 + 8a3c: 07fb br 0x8a32 // 8a32 + 8a3e: 1028 lrw r1, 0x2000099c // 8a5c + 8a40: 07f9 br 0x8a32 // 8a32 + 8a42: 0000 bkpt + 8a44: 20000070 .long 0x20000070 + 8a48: 20000b45 .long 0x20000b45 + 8a4c: 20000058 .long 0x20000058 + 8a50: 20000bfc .long 0x20000bfc + 8a54: 40011200 .long 0x40011200 + 8a58: 2000096c .long 0x2000096c + 8a5c: 2000099c .long 0x2000099c + +Disassembly of section .text.TK_Keymap_prog: + +00008a60 : + 8a60: 14d4 push r4-r7, r15 + 8a62: 142a subi r14, r14, 40 + 8a64: 0171 lrw r3, 0x20000264 // 8d9c + 8a66: 8360 ld.b r3, (r3, 0x0) + 8a68: b860 st.w r3, (r14, 0x0) + 8a6a: 3400 movi r4, 0 + 8a6c: 0172 lrw r3, 0x20000238 // 8da0 + 8a6e: 8360 ld.b r3, (r3, 0x0) + 8a70: b863 st.w r3, (r14, 0xc) + 8a72: 0172 lrw r3, 0x20000241 // 8da4 + 8a74: 83a0 ld.b r5, (r3, 0x0) + 8a76: 0172 lrw r3, 0x20000240 // 8da8 + 8a78: 8360 ld.b r3, (r3, 0x0) + 8a7a: b866 st.w r3, (r14, 0x18) + 8a7c: 0173 lrw r3, 0x20000bda // 8dac + 8a7e: b868 st.w r3, (r14, 0x20) + 8a80: 0173 lrw r3, 0x20000948 // 8db0 + 8a82: b864 st.w r3, (r14, 0x10) + 8a84: b869 st.w r3, (r14, 0x24) + 8a86: 4461 lsli r3, r4, 1 + 8a88: 9848 ld.w r2, (r14, 0x20) + 8a8a: 608c addu r2, r3 + 8a8c: 0135 lrw r1, 0x20000888 // 8db4 + 8a8e: 604c addu r1, r3 + 8a90: 8a40 ld.h r2, (r2, 0x0) + 8a92: 8920 ld.h r1, (r1, 0x0) + 8a94: 6086 subu r2, r1 + 8a96: 9829 ld.w r1, (r14, 0x24) + 8a98: 604c addu r1, r3 + 8a9a: 748b sexth r2, r2 + 8a9c: a940 st.h r2, (r1, 0x0) + 8a9e: 0118 lrw r0, 0x20000a32 // 8db8 + 8aa0: 0158 lrw r2, 0x20000970 // 8dbc + 8aa2: 608c addu r2, r3 + 8aa4: 600c addu r0, r3 + 8aa6: 8a40 ld.h r2, (r2, 0x0) + 8aa8: 8800 ld.h r0, (r0, 0x0) + 8aaa: 6082 subu r2, r0 + 8aac: 01da lrw r6, 0x20000a88 // 8dc0 + 8aae: 5e0c addu r0, r6, r3 + 8ab0: 748b sexth r2, r2 + 8ab2: a840 st.h r2, (r0, 0x0) + 8ab4: b8c1 st.w r6, (r14, 0x4) + 8ab6: 015b lrw r2, 0x20000a66 // 8dc4 + 8ab8: 011b lrw r0, 0x20000b48 // 8dc8 + 8aba: 608c addu r2, r3 + 8abc: 600c addu r0, r3 + 8abe: 8a40 ld.h r2, (r2, 0x0) + 8ac0: 8800 ld.h r0, (r0, 0x0) + 8ac2: 6082 subu r2, r0 + 8ac4: 011d lrw r0, 0x20000bb4 // 8dcc + 8ac6: 748b sexth r2, r2 + 8ac8: 58ec addu r7, r0, r3 + 8aca: af40 st.h r2, (r7, 0x0) + 8acc: 8940 ld.h r2, (r1, 0x0) + 8ace: 748b sexth r2, r2 + 8ad0: 3adf btsti r2, 31 + 8ad2: 015f lrw r2, 0x20000b92 // 8dd0 + 8ad4: 60c8 addu r3, r2 + 8ad6: b802 st.w r0, (r14, 0x8) + 8ad8: 0c49 bf 0x8b6a // 8b6a + 8ada: 3200 movi r2, 0 + 8adc: ab40 st.h r2, (r3, 0x0) + 8ade: 9821 ld.w r1, (r14, 0x4) + 8ae0: 4461 lsli r3, r4, 1 + 8ae2: 604c addu r1, r3 + 8ae4: 8940 ld.h r2, (r1, 0x0) + 8ae6: 748b sexth r2, r2 + 8ae8: 3adf btsti r2, 31 + 8aea: 0244 lrw r2, 0x200008f0 // 8dd4 + 8aec: 60c8 addu r3, r2 + 8aee: 0c41 bf 0x8b70 // 8b70 + 8af0: 3200 movi r2, 0 + 8af2: ab40 st.h r2, (r3, 0x0) + 8af4: 9822 ld.w r1, (r14, 0x8) + 8af6: 4461 lsli r3, r4, 1 + 8af8: 604c addu r1, r3 + 8afa: 8940 ld.h r2, (r1, 0x0) + 8afc: 748b sexth r2, r2 + 8afe: 3adf btsti r2, 31 + 8b00: 0249 lrw r2, 0x200008c4 // 8dd8 + 8b02: 60c8 addu r3, r2 + 8b04: 0c39 bf 0x8b76 // 8b76 + 8b06: 3200 movi r2, 0 + 8b08: ab40 st.h r2, (r3, 0x0) + 8b0a: 9860 ld.w r3, (r14, 0x0) + 8b0c: 3b03 cmphsi r3, 4 + 8b0e: 4421 lsli r1, r4, 1 + 8b10: 0cb5 bf 0x8c7a // 8c7a + 8b12: 9864 ld.w r3, (r14, 0x10) + 8b14: 60c4 addu r3, r1 + 8b16: 024d lrw r2, 0x20000292 // 8ddc + 8b18: 6048 addu r1, r2 + 8b1a: 8b00 ld.h r0, (r3, 0x0) + 8b1c: 8940 ld.h r2, (r1, 0x0) + 8b1e: 7403 sexth r0, r0 + 8b20: 6409 cmplt r2, r0 + 8b22: 9820 ld.w r1, (r14, 0x0) + 8b24: 7c84 mult r2, r1 + 8b26: 0c9b bf 0x8c5c // 8c5c + 8b28: 8b20 ld.h r1, (r3, 0x0) + 8b2a: 7447 sexth r1, r1 + 8b2c: 6485 cmplt r1, r2 + 8b2e: 0c97 bf 0x8c5c // 8c5c + 8b30: 0233 lrw r1, 0x20000935 // 8de0 + 8b32: 6050 addu r1, r4 + 8b34: 8140 ld.b r2, (r1, 0x0) + 8b36: 2200 addi r2, 1 + 8b38: 7488 zextb r2, r2 + 8b3a: a140 st.b r2, (r1, 0x0) + 8b3c: 3000 movi r0, 0 + 8b3e: 0255 lrw r2, 0x20000914 // 8de4 + 8b40: 6090 addu r2, r4 + 8b42: a200 st.b r0, (r2, 0x0) + 8b44: 0256 lrw r2, 0x20000a54 // 8de8 + 8b46: 6090 addu r2, r4 + 8b48: a200 st.b r0, (r2, 0x0) + 8b4a: 0256 lrw r2, 0x20000aec // 8dec + 8b4c: 6090 addu r2, r4 + 8b4e: a200 st.b r0, (r2, 0x0) + 8b50: 8140 ld.b r2, (r1, 0x0) + 8b52: 9803 ld.w r0, (r14, 0xc) + 8b54: 6480 cmphs r0, r2 + 8b56: 081d bt 0x8b90 // 8b90 + 8b58: 3d40 cmpnei r5, 0 + 8b5a: 0811 bt 0x8b7c // 8b7c + 8b5c: 025a lrw r2, 0x20000928 // 8df0 + 8b5e: 9260 ld.w r3, (r2, 0x0) + 8b60: 3b40 cmpnei r3, 0 + 8b62: 0815 bt 0x8b8c // 8b8c + 8b64: 9200 ld.w r0, (r2, 0x0) + 8b66: 3301 movi r3, 1 + 8b68: 040f br 0x8b86 // 8b86 + 8b6a: 8940 ld.h r2, (r1, 0x0) + 8b6c: 7489 zexth r2, r2 + 8b6e: 07b7 br 0x8adc // 8adc + 8b70: 8940 ld.h r2, (r1, 0x0) + 8b72: 7489 zexth r2, r2 + 8b74: 07bf br 0x8af2 // 8af2 + 8b76: 8940 ld.h r2, (r1, 0x0) + 8b78: 7489 zexth r2, r2 + 8b7a: 07c7 br 0x8b08 // 8b08 + 8b7c: 3d41 cmpnei r5, 1 + 8b7e: 085c bt 0x8c36 // 8c36 + 8b80: 0343 lrw r2, 0x20000928 // 8df0 + 8b82: 6cd7 mov r3, r5 + 8b84: 9200 ld.w r0, (r2, 0x0) + 8b86: 70d0 lsl r3, r4 + 8b88: 6cc0 or r3, r0 + 8b8a: b260 st.w r3, (r2, 0x0) + 8b8c: 3300 movi r3, 0 + 8b8e: a160 st.b r3, (r1, 0x0) + 8b90: 4461 lsli r3, r4, 1 + 8b92: 9844 ld.w r2, (r14, 0x10) + 8b94: 608c addu r2, r3 + 8b96: 8ac0 ld.h r6, (r2, 0x0) + 8b98: 034e lrw r2, 0x20000292 // 8ddc + 8b9a: 60c8 addu r3, r2 + 8b9c: 8be0 ld.h r7, (r3, 0x0) + 8b9e: 4702 lsli r0, r7, 2 + 8ba0: 3105 movi r1, 5 + 8ba2: e3ffd6e3 bsr 0x3968 // 3968 <__divsi3> + 8ba6: 759b sexth r6, r6 + 8ba8: 6419 cmplt r6, r0 + 8baa: b805 st.w r0, (r14, 0x14) + 8bac: 0c18 bf 0x8bdc // 8bdc + 8bae: 0351 lrw r2, 0x20000914 // 8de4 + 8bb0: 6090 addu r2, r4 + 8bb2: 8260 ld.b r3, (r2, 0x0) + 8bb4: 2300 addi r3, 1 + 8bb6: 74cc zextb r3, r3 + 8bb8: a260 st.b r3, (r2, 0x0) + 8bba: 3100 movi r1, 0 + 8bbc: 0376 lrw r3, 0x20000935 // 8de0 + 8bbe: 60d0 addu r3, r4 + 8bc0: a320 st.b r1, (r3, 0x0) + 8bc2: 8260 ld.b r3, (r2, 0x0) + 8bc4: 9826 ld.w r1, (r14, 0x18) + 8bc6: 64c4 cmphs r1, r3 + 8bc8: 080a bt 0x8bdc // 8bdc + 8bca: 3300 movi r3, 0 + 8bcc: 0336 lrw r1, 0x20000928 // 8df0 + 8bce: 2b01 subi r3, 2 + 8bd0: 9100 ld.w r0, (r1, 0x0) + 8bd2: 70d3 rotl r3, r4 + 8bd4: 68c0 and r3, r0 + 8bd6: b160 st.w r3, (r1, 0x0) + 8bd8: 3300 movi r3, 0 + 8bda: a260 st.b r3, (r2, 0x0) + 8bdc: 9860 ld.w r3, (r14, 0x0) + 8bde: 9841 ld.w r2, (r14, 0x4) + 8be0: 3b03 cmphsi r3, 4 + 8be2: 4461 lsli r3, r4, 1 + 8be4: 60c8 addu r3, r2 + 8be6: 8b40 ld.h r2, (r3, 0x0) + 8be8: 748b sexth r2, r2 + 8bea: 0d4d bf 0x8e84 // 8e84 + 8bec: 649d cmplt r7, r2 + 8bee: 0d3a bf 0x8e62 // 8e62 + 8bf0: 8b40 ld.h r2, (r3, 0x0) + 8bf2: 9820 ld.w r1, (r14, 0x0) + 8bf4: 748b sexth r2, r2 + 8bf6: 7c5c mult r1, r7 + 8bf8: 6449 cmplt r2, r1 + 8bfa: 0d34 bf 0x8e62 // 8e62 + 8bfc: 133e lrw r1, 0x20000b08 // 8df4 + 8bfe: 6050 addu r1, r4 + 8c00: 8140 ld.b r2, (r1, 0x0) + 8c02: 2200 addi r2, 1 + 8c04: 7488 zextb r2, r2 + 8c06: a140 st.b r2, (r1, 0x0) + 8c08: 3000 movi r0, 0 + 8c0a: 135c lrw r2, 0x200009a4 // 8df8 + 8c0c: 6090 addu r2, r4 + 8c0e: a200 st.b r0, (r2, 0x0) + 8c10: 135b lrw r2, 0x200009ce // 8dfc + 8c12: 6090 addu r2, r4 + 8c14: a200 st.b r0, (r2, 0x0) + 8c16: 135b lrw r2, 0x20000acc // 8e00 + 8c18: 6090 addu r2, r4 + 8c1a: a200 st.b r0, (r2, 0x0) + 8c1c: 8140 ld.b r2, (r1, 0x0) + 8c1e: 9803 ld.w r0, (r14, 0xc) + 8c20: 6480 cmphs r0, r2 + 8c22: 087d bt 0x8d1c // 8d1c + 8c24: 3d40 cmpnei r5, 0 + 8c26: 0871 bt 0x8d08 // 8d08 + 8c28: 1357 lrw r2, 0x200008bc // 8e04 + 8c2a: 9260 ld.w r3, (r2, 0x0) + 8c2c: 3b40 cmpnei r3, 0 + 8c2e: 0875 bt 0x8d18 // 8d18 + 8c30: 9200 ld.w r0, (r2, 0x0) + 8c32: 3301 movi r3, 1 + 8c34: 046f br 0x8d12 // 8d12 + 8c36: 3d42 cmpnei r5, 2 + 8c38: 0c03 bf 0x8c3e // 8c3e + 8c3a: e8000201 br 0x903c // 903c + 8c3e: 13d3 lrw r6, 0x20000ae2 // 8e08 + 8c40: 8b00 ld.h r0, (r3, 0x0) + 8c42: 8e40 ld.h r2, (r6, 0x0) + 8c44: 7489 zexth r2, r2 + 8c46: 7403 sexth r0, r0 + 8c48: 2209 addi r2, 10 + 8c4a: 6409 cmplt r2, r0 + 8c4c: 0fa0 bf 0x8b8c // 8b8c + 8c4e: 8b60 ld.h r3, (r3, 0x0) + 8c50: 74cd zexth r3, r3 + 8c52: ae60 st.h r3, (r6, 0x0) + 8c54: 3300 movi r3, 0 + 8c56: 1347 lrw r2, 0x20000928 // 8df0 + 8c58: b260 st.w r3, (r2, 0x0) + 8c5a: 0785 br 0x8b64 // 8b64 + 8c5c: 4461 lsli r3, r4, 1 + 8c5e: 9824 ld.w r1, (r14, 0x10) + 8c60: 60c4 addu r3, r1 + 8c62: 8b60 ld.h r3, (r3, 0x0) + 8c64: 74cf sexth r3, r3 + 8c66: 64c9 cmplt r2, r3 + 8c68: 0f94 bf 0x8b90 // 8b90 + 8c6a: 3300 movi r3, 0 + 8c6c: 1341 lrw r2, 0x20000928 // 8df0 + 8c6e: 2b01 subi r3, 2 + 8c70: 9220 ld.w r1, (r2, 0x0) + 8c72: 70d3 rotl r3, r4 + 8c74: 68c4 and r3, r1 + 8c76: b260 st.w r3, (r2, 0x0) + 8c78: 078c br 0x8b90 // 8b90 + 8c7a: 9844 ld.w r2, (r14, 0x10) + 8c7c: 6084 addu r2, r1 + 8c7e: 1218 lrw r0, 0x20000292 // 8ddc + 8c80: 8a60 ld.h r3, (r2, 0x0) + 8c82: 6040 addu r1, r0 + 8c84: 74cf sexth r3, r3 + 8c86: 8920 ld.h r1, (r1, 0x0) + 8c88: 64c5 cmplt r1, r3 + 8c8a: 0f83 bf 0x8b90 // 8b90 + 8c8c: 1360 lrw r3, 0x20000946 // 8e0c + 8c8e: 8360 ld.b r3, (r3, 0x0) + 8c90: 74cc zextb r3, r3 + 8c92: 3b40 cmpnei r3, 0 + 8c94: 0b7e bt 0x8b90 // 8b90 + 8c96: 1213 lrw r0, 0x20000935 // 8de0 + 8c98: 6010 addu r0, r4 + 8c9a: 8020 ld.b r1, (r0, 0x0) + 8c9c: 2100 addi r1, 1 + 8c9e: 7444 zextb r1, r1 + 8ca0: a020 st.b r1, (r0, 0x0) + 8ca2: 3600 movi r6, 0 + 8ca4: 1230 lrw r1, 0x20000914 // 8de4 + 8ca6: 6050 addu r1, r4 + 8ca8: a1c0 st.b r6, (r1, 0x0) + 8caa: 1230 lrw r1, 0x20000a54 // 8de8 + 8cac: 6050 addu r1, r4 + 8cae: a1c0 st.b r6, (r1, 0x0) + 8cb0: 122f lrw r1, 0x20000aec // 8dec + 8cb2: 6050 addu r1, r4 + 8cb4: a1c0 st.b r6, (r1, 0x0) + 8cb6: 8020 ld.b r1, (r0, 0x0) + 8cb8: 98c3 ld.w r6, (r14, 0xc) + 8cba: 6458 cmphs r6, r1 + 8cbc: 0b6a bt 0x8b90 // 8b90 + 8cbe: 3d40 cmpnei r5, 0 + 8cc0: 0808 bt 0x8cd0 // 8cd0 + 8cc2: 124c lrw r2, 0x20000928 // 8df0 + 8cc4: 9260 ld.w r3, (r2, 0x0) + 8cc6: 3b40 cmpnei r3, 0 + 8cc8: 080c bt 0x8ce0 // 8ce0 + 8cca: 9220 ld.w r1, (r2, 0x0) + 8ccc: 3301 movi r3, 1 + 8cce: 0406 br 0x8cda // 8cda + 8cd0: 3d41 cmpnei r5, 1 + 8cd2: 080a bt 0x8ce6 // 8ce6 + 8cd4: 1247 lrw r2, 0x20000928 // 8df0 + 8cd6: 6cd7 mov r3, r5 + 8cd8: 9220 ld.w r1, (r2, 0x0) + 8cda: 70d0 lsl r3, r4 + 8cdc: 6cc4 or r3, r1 + 8cde: b260 st.w r3, (r2, 0x0) + 8ce0: 3300 movi r3, 0 + 8ce2: a060 st.b r3, (r0, 0x0) + 8ce4: 0756 br 0x8b90 // 8b90 + 8ce6: 3d42 cmpnei r5, 2 + 8ce8: 0c02 bf 0x8cec // 8cec + 8cea: 05dc br 0x90a2 // 90a2 + 8cec: 12e7 lrw r7, 0x20000ae2 // 8e08 + 8cee: 8ac0 ld.h r6, (r2, 0x0) + 8cf0: 8f20 ld.h r1, (r7, 0x0) + 8cf2: 7445 zexth r1, r1 + 8cf4: 759b sexth r6, r6 + 8cf6: 2109 addi r1, 10 + 8cf8: 6585 cmplt r1, r6 + 8cfa: 0ff3 bf 0x8ce0 // 8ce0 + 8cfc: 8a40 ld.h r2, (r2, 0x0) + 8cfe: 7489 zexth r2, r2 + 8d00: af40 st.h r2, (r7, 0x0) + 8d02: 115c lrw r2, 0x20000928 // 8df0 + 8d04: b260 st.w r3, (r2, 0x0) + 8d06: 07e2 br 0x8cca // 8cca + 8d08: 3d41 cmpnei r5, 1 + 8d0a: 089b bt 0x8e40 // 8e40 + 8d0c: 115e lrw r2, 0x200008bc // 8e04 + 8d0e: 6cd7 mov r3, r5 + 8d10: 9200 ld.w r0, (r2, 0x0) + 8d12: 70d0 lsl r3, r4 + 8d14: 6cc0 or r3, r0 + 8d16: b260 st.w r3, (r2, 0x0) + 8d18: 3300 movi r3, 0 + 8d1a: a160 st.b r3, (r1, 0x0) + 8d1c: 4461 lsli r3, r4, 1 + 8d1e: 9841 ld.w r2, (r14, 0x4) + 8d20: 608c addu r2, r3 + 8d22: 8a60 ld.h r3, (r2, 0x0) + 8d24: 74cf sexth r3, r3 + 8d26: 9845 ld.w r2, (r14, 0x14) + 8d28: 648d cmplt r3, r2 + 8d2a: 0c18 bf 0x8d5a // 8d5a + 8d2c: 1153 lrw r2, 0x200009a4 // 8df8 + 8d2e: 6090 addu r2, r4 + 8d30: 8260 ld.b r3, (r2, 0x0) + 8d32: 2300 addi r3, 1 + 8d34: 74cc zextb r3, r3 + 8d36: a260 st.b r3, (r2, 0x0) + 8d38: 3100 movi r1, 0 + 8d3a: 116f lrw r3, 0x20000b08 // 8df4 + 8d3c: 60d0 addu r3, r4 + 8d3e: a320 st.b r1, (r3, 0x0) + 8d40: 8260 ld.b r3, (r2, 0x0) + 8d42: 9826 ld.w r1, (r14, 0x18) + 8d44: 64c4 cmphs r1, r3 + 8d46: 080a bt 0x8d5a // 8d5a + 8d48: 3300 movi r3, 0 + 8d4a: 112f lrw r1, 0x200008bc // 8e04 + 8d4c: 2b01 subi r3, 2 + 8d4e: 9100 ld.w r0, (r1, 0x0) + 8d50: 70d3 rotl r3, r4 + 8d52: 68c0 and r3, r0 + 8d54: b160 st.w r3, (r1, 0x0) + 8d56: 3300 movi r3, 0 + 8d58: a260 st.b r3, (r2, 0x0) + 8d5a: 9860 ld.w r3, (r14, 0x0) + 8d5c: 9842 ld.w r2, (r14, 0x8) + 8d5e: 3b03 cmphsi r3, 4 + 8d60: 4461 lsli r3, r4, 1 + 8d62: 60c8 addu r3, r2 + 8d64: 8b40 ld.h r2, (r3, 0x0) + 8d66: 748b sexth r2, r2 + 8d68: 0d26 bf 0x8fb4 // 8fb4 + 8d6a: 9820 ld.w r1, (r14, 0x0) + 8d6c: 649d cmplt r7, r2 + 8d6e: 7c5c mult r1, r7 + 8d70: 0d13 bf 0x8f96 // 8f96 + 8d72: 8b40 ld.h r2, (r3, 0x0) + 8d74: 748b sexth r2, r2 + 8d76: 6449 cmplt r2, r1 + 8d78: 0d0f bf 0x8f96 // 8f96 + 8d7a: 1126 lrw r1, 0x20000ab0 // 8e10 + 8d7c: 6050 addu r1, r4 + 8d7e: 8140 ld.b r2, (r1, 0x0) + 8d80: 2200 addi r2, 1 + 8d82: 7488 zextb r2, r2 + 8d84: a140 st.b r2, (r1, 0x0) + 8d86: 3000 movi r0, 0 + 8d88: 1143 lrw r2, 0x20000b1e // 8e14 + 8d8a: 6090 addu r2, r4 + 8d8c: a200 st.b r0, (r2, 0x0) + 8d8e: 1143 lrw r2, 0x200008aa // 8e18 + 8d90: 6090 addu r2, r4 + 8d92: a200 st.b r0, (r2, 0x0) + 8d94: 1142 lrw r2, 0x200009bc // 8e1c + 8d96: 6090 addu r2, r4 + 8d98: a200 st.b r0, (r2, 0x0) + 8d9a: 0443 br 0x8e20 // 8e20 + 8d9c: 20000264 .long 0x20000264 + 8da0: 20000238 .long 0x20000238 + 8da4: 20000241 .long 0x20000241 + 8da8: 20000240 .long 0x20000240 + 8dac: 20000bda .long 0x20000bda + 8db0: 20000948 .long 0x20000948 + 8db4: 20000888 .long 0x20000888 + 8db8: 20000a32 .long 0x20000a32 + 8dbc: 20000970 .long 0x20000970 + 8dc0: 20000a88 .long 0x20000a88 + 8dc4: 20000a66 .long 0x20000a66 + 8dc8: 20000b48 .long 0x20000b48 + 8dcc: 20000bb4 .long 0x20000bb4 + 8dd0: 20000b92 .long 0x20000b92 + 8dd4: 200008f0 .long 0x200008f0 + 8dd8: 200008c4 .long 0x200008c4 + 8ddc: 20000292 .long 0x20000292 + 8de0: 20000935 .long 0x20000935 + 8de4: 20000914 .long 0x20000914 + 8de8: 20000a54 .long 0x20000a54 + 8dec: 20000aec .long 0x20000aec + 8df0: 20000928 .long 0x20000928 + 8df4: 20000b08 .long 0x20000b08 + 8df8: 200009a4 .long 0x200009a4 + 8dfc: 200009ce .long 0x200009ce + 8e00: 20000acc .long 0x20000acc + 8e04: 200008bc .long 0x200008bc + 8e08: 20000ae2 .long 0x20000ae2 + 8e0c: 20000946 .long 0x20000946 + 8e10: 20000ab0 .long 0x20000ab0 + 8e14: 20000b1e .long 0x20000b1e + 8e18: 200008aa .long 0x200008aa + 8e1c: 200009bc .long 0x200009bc + 8e20: 8140 ld.b r2, (r1, 0x0) + 8e22: 9803 ld.w r0, (r14, 0xc) + 8e24: 6480 cmphs r0, r2 + 8e26: 0881 bt 0x8f28 // 8f28 + 8e28: 3d40 cmpnei r5, 0 + 8e2a: 0874 bt 0x8f12 // 8f12 + 8e2c: 014b lrw r2, 0x200009a0 // 917c + 8e2e: 9260 ld.w r3, (r2, 0x0) + 8e30: 3b40 cmpnei r3, 0 + 8e32: 0879 bt 0x8f24 // 8f24 + 8e34: 3301 movi r3, 1 + 8e36: 9200 ld.w r0, (r2, 0x0) + 8e38: 70d0 lsl r3, r4 + 8e3a: 6cc0 or r3, r0 + 8e3c: b260 st.w r3, (r2, 0x0) + 8e3e: 0473 br 0x8f24 // 8f24 + 8e40: 3d42 cmpnei r5, 2 + 8e42: 0960 bt 0x9102 // 9102 + 8e44: 01d0 lrw r6, 0x20000bd8 // 9180 + 8e46: 8b00 ld.h r0, (r3, 0x0) + 8e48: 8e40 ld.h r2, (r6, 0x0) + 8e4a: 7489 zexth r2, r2 + 8e4c: 7403 sexth r0, r0 + 8e4e: 2209 addi r2, 10 + 8e50: 6409 cmplt r2, r0 + 8e52: 0f63 bf 0x8d18 // 8d18 + 8e54: 8b60 ld.h r3, (r3, 0x0) + 8e56: 74cd zexth r3, r3 + 8e58: ae60 st.h r3, (r6, 0x0) + 8e5a: 3300 movi r3, 0 + 8e5c: 0155 lrw r2, 0x200008bc // 9184 + 8e5e: b260 st.w r3, (r2, 0x0) + 8e60: 06e8 br 0x8c30 // 8c30 + 8e62: 9841 ld.w r2, (r14, 0x4) + 8e64: 4461 lsli r3, r4, 1 + 8e66: 60c8 addu r3, r2 + 8e68: 8b60 ld.h r3, (r3, 0x0) + 8e6a: 9840 ld.w r2, (r14, 0x0) + 8e6c: 74cf sexth r3, r3 + 8e6e: 7c9c mult r2, r7 + 8e70: 64c9 cmplt r2, r3 + 8e72: 0f55 bf 0x8d1c // 8d1c + 8e74: 3300 movi r3, 0 + 8e76: 015b lrw r2, 0x200008bc // 9184 + 8e78: 2b01 subi r3, 2 + 8e7a: 9220 ld.w r1, (r2, 0x0) + 8e7c: 70d3 rotl r3, r4 + 8e7e: 68c4 and r3, r1 + 8e80: b260 st.w r3, (r2, 0x0) + 8e82: 074d br 0x8d1c // 8d1c + 8e84: 649d cmplt r7, r2 + 8e86: 0f4b bf 0x8d1c // 8d1c + 8e88: 015f lrw r2, 0x20000946 // 9188 + 8e8a: 8240 ld.b r2, (r2, 0x0) + 8e8c: 7488 zextb r2, r2 + 8e8e: 3a40 cmpnei r2, 0 + 8e90: b847 st.w r2, (r14, 0x1c) + 8e92: 0b45 bt 0x8d1c // 8d1c + 8e94: 0201 lrw r0, 0x20000b08 // 918c + 8e96: 6010 addu r0, r4 + 8e98: 8020 ld.b r1, (r0, 0x0) + 8e9a: 2100 addi r1, 1 + 8e9c: 7444 zextb r1, r1 + 8e9e: a020 st.b r1, (r0, 0x0) + 8ea0: 3600 movi r6, 0 + 8ea2: 0223 lrw r1, 0x200009a4 // 9190 + 8ea4: 6050 addu r1, r4 + 8ea6: a1c0 st.b r6, (r1, 0x0) + 8ea8: 0224 lrw r1, 0x200009ce // 9194 + 8eaa: 6050 addu r1, r4 + 8eac: a1c0 st.b r6, (r1, 0x0) + 8eae: 0224 lrw r1, 0x20000acc // 9198 + 8eb0: 6050 addu r1, r4 + 8eb2: a1c0 st.b r6, (r1, 0x0) + 8eb4: 8020 ld.b r1, (r0, 0x0) + 8eb6: 98c3 ld.w r6, (r14, 0xc) + 8eb8: 6458 cmphs r6, r1 + 8eba: 0b31 bt 0x8d1c // 8d1c + 8ebc: 3d40 cmpnei r5, 0 + 8ebe: 0808 bt 0x8ece // 8ece + 8ec0: 024e lrw r2, 0x200008bc // 9184 + 8ec2: 9260 ld.w r3, (r2, 0x0) + 8ec4: 3b40 cmpnei r3, 0 + 8ec6: 0823 bt 0x8f0c // 8f0c + 8ec8: 9220 ld.w r1, (r2, 0x0) + 8eca: 3301 movi r3, 1 + 8ecc: 0406 br 0x8ed8 // 8ed8 + 8ece: 3d41 cmpnei r5, 1 + 8ed0: 0808 bt 0x8ee0 // 8ee0 + 8ed2: 0252 lrw r2, 0x200008bc // 9184 + 8ed4: 6cd7 mov r3, r5 + 8ed6: 9220 ld.w r1, (r2, 0x0) + 8ed8: 70d0 lsl r3, r4 + 8eda: 6cc4 or r3, r1 + 8edc: b260 st.w r3, (r2, 0x0) + 8ede: 0417 br 0x8f0c // 8f0c + 8ee0: 3d42 cmpnei r5, 2 + 8ee2: 0942 bt 0x9166 // 9166 + 8ee4: 8bc0 ld.h r6, (r3, 0x0) + 8ee6: 745b sexth r1, r6 + 8ee8: 02d9 lrw r6, 0x20000bd8 // 9180 + 8eea: 6c87 mov r2, r1 + 8eec: 8e20 ld.h r1, (r6, 0x0) + 8eee: 7445 zexth r1, r1 + 8ef0: 2109 addi r1, 10 + 8ef2: 6485 cmplt r1, r2 + 8ef4: 0c0c bf 0x8f0c // 8f0c + 8ef6: 8b60 ld.h r3, (r3, 0x0) + 8ef8: 74cd zexth r3, r3 + 8efa: ae60 st.h r3, (r6, 0x0) + 8efc: 9867 ld.w r3, (r14, 0x1c) + 8efe: 023d lrw r1, 0x200008bc // 9184 + 8f00: b160 st.w r3, (r1, 0x0) + 8f02: 3301 movi r3, 1 + 8f04: 9140 ld.w r2, (r1, 0x0) + 8f06: 70d0 lsl r3, r4 + 8f08: 6cc8 or r3, r2 + 8f0a: b160 st.w r3, (r1, 0x0) + 8f0c: 3300 movi r3, 0 + 8f0e: a060 st.b r3, (r0, 0x0) + 8f10: 0706 br 0x8d1c // 8d1c + 8f12: 3d41 cmpnei r5, 1 + 8f14: 0830 bt 0x8f74 // 8f74 + 8f16: 0345 lrw r2, 0x200009a0 // 917c + 8f18: 6cd7 mov r3, r5 + 8f1a: 9200 ld.w r0, (r2, 0x0) + 8f1c: 70d0 lsl r3, r4 + 8f1e: 6cc0 or r3, r0 + 8f20: b260 st.w r3, (r2, 0x0) + 8f22: 6c03 mov r0, r0 + 8f24: 3300 movi r3, 0 + 8f26: a160 st.b r3, (r1, 0x0) + 8f28: 4461 lsli r3, r4, 1 + 8f2a: 9842 ld.w r2, (r14, 0x8) + 8f2c: 608c addu r2, r3 + 8f2e: 8a60 ld.h r3, (r2, 0x0) + 8f30: 74cf sexth r3, r3 + 8f32: 9845 ld.w r2, (r14, 0x14) + 8f34: 648d cmplt r3, r2 + 8f36: 0c18 bf 0x8f66 // 8f66 + 8f38: 0346 lrw r2, 0x20000b1e // 919c + 8f3a: 6090 addu r2, r4 + 8f3c: 8260 ld.b r3, (r2, 0x0) + 8f3e: 2300 addi r3, 1 + 8f40: 74cc zextb r3, r3 + 8f42: a260 st.b r3, (r2, 0x0) + 8f44: 3100 movi r1, 0 + 8f46: 0368 lrw r3, 0x20000ab0 // 91a0 + 8f48: 60d0 addu r3, r4 + 8f4a: a320 st.b r1, (r3, 0x0) + 8f4c: 8260 ld.b r3, (r2, 0x0) + 8f4e: 9826 ld.w r1, (r14, 0x18) + 8f50: 64c4 cmphs r1, r3 + 8f52: 080a bt 0x8f66 // 8f66 + 8f54: 3300 movi r3, 0 + 8f56: 0335 lrw r1, 0x200009a0 // 917c + 8f58: 2b01 subi r3, 2 + 8f5a: 9100 ld.w r0, (r1, 0x0) + 8f5c: 70d3 rotl r3, r4 + 8f5e: 68c0 and r3, r0 + 8f60: b160 st.w r3, (r1, 0x0) + 8f62: 3300 movi r3, 0 + 8f64: a260 st.b r3, (r2, 0x0) + 8f66: 2400 addi r4, 1 + 8f68: 3c51 cmpnei r4, 17 + 8f6a: 0c03 bf 0x8f70 // 8f70 + 8f6c: e800fd8d br 0x8a86 // 8a86 + 8f70: 140a addi r14, r14, 40 + 8f72: 1494 pop r4-r7, r15 + 8f74: 3d42 cmpnei r5, 2 + 8f76: 0948 bt 0x9206 // 9206 + 8f78: 03d4 lrw r6, 0x2000096a // 91a4 + 8f7a: 8b00 ld.h r0, (r3, 0x0) + 8f7c: 8e40 ld.h r2, (r6, 0x0) + 8f7e: 7489 zexth r2, r2 + 8f80: 7403 sexth r0, r0 + 8f82: 2209 addi r2, 10 + 8f84: 6409 cmplt r2, r0 + 8f86: 0fcf bf 0x8f24 // 8f24 + 8f88: 8b60 ld.h r3, (r3, 0x0) + 8f8a: 74cd zexth r3, r3 + 8f8c: ae60 st.h r3, (r6, 0x0) + 8f8e: 3300 movi r3, 0 + 8f90: 135b lrw r2, 0x200009a0 // 917c + 8f92: b260 st.w r3, (r2, 0x0) + 8f94: 0750 br 0x8e34 // 8e34 + 8f96: 4461 lsli r3, r4, 1 + 8f98: 9842 ld.w r2, (r14, 0x8) + 8f9a: 60c8 addu r3, r2 + 8f9c: 8b60 ld.h r3, (r3, 0x0) + 8f9e: 74cf sexth r3, r3 + 8fa0: 64c5 cmplt r1, r3 + 8fa2: 0fc3 bf 0x8f28 // 8f28 + 8fa4: 3300 movi r3, 0 + 8fa6: 1356 lrw r2, 0x200009a0 // 917c + 8fa8: 2b01 subi r3, 2 + 8faa: 9220 ld.w r1, (r2, 0x0) + 8fac: 70d3 rotl r3, r4 + 8fae: 68c4 and r3, r1 + 8fb0: b260 st.w r3, (r2, 0x0) + 8fb2: 07bb br 0x8f28 // 8f28 + 8fb4: 649d cmplt r7, r2 + 8fb6: 0fb9 bf 0x8f28 // 8f28 + 8fb8: 1354 lrw r2, 0x20000946 // 9188 + 8fba: 8240 ld.b r2, (r2, 0x0) + 8fbc: 7488 zextb r2, r2 + 8fbe: 3a40 cmpnei r2, 0 + 8fc0: 0bb4 bt 0x8f28 // 8f28 + 8fc2: 1318 lrw r0, 0x20000ab0 // 91a0 + 8fc4: 6010 addu r0, r4 + 8fc6: 8020 ld.b r1, (r0, 0x0) + 8fc8: 2100 addi r1, 1 + 8fca: 7444 zextb r1, r1 + 8fcc: a020 st.b r1, (r0, 0x0) + 8fce: 3600 movi r6, 0 + 8fd0: 1333 lrw r1, 0x20000b1e // 919c + 8fd2: 6050 addu r1, r4 + 8fd4: a1c0 st.b r6, (r1, 0x0) + 8fd6: 1335 lrw r1, 0x200008aa // 91a8 + 8fd8: 6050 addu r1, r4 + 8fda: a1c0 st.b r6, (r1, 0x0) + 8fdc: 1334 lrw r1, 0x200009bc // 91ac + 8fde: 6050 addu r1, r4 + 8fe0: a1c0 st.b r6, (r1, 0x0) + 8fe2: 8020 ld.b r1, (r0, 0x0) + 8fe4: 98c3 ld.w r6, (r14, 0xc) + 8fe6: 6458 cmphs r6, r1 + 8fe8: 0ba0 bt 0x8f28 // 8f28 + 8fea: 3d40 cmpnei r5, 0 + 8fec: 0808 bt 0x8ffc // 8ffc + 8fee: 1344 lrw r2, 0x200009a0 // 917c + 8ff0: 9260 ld.w r3, (r2, 0x0) + 8ff2: 3b40 cmpnei r3, 0 + 8ff4: 0821 bt 0x9036 // 9036 + 8ff6: 9220 ld.w r1, (r2, 0x0) + 8ff8: 3301 movi r3, 1 + 8ffa: 0406 br 0x9006 // 9006 + 8ffc: 3d41 cmpnei r5, 1 + 8ffe: 0808 bt 0x900e // 900e + 9000: 125f lrw r2, 0x200009a0 // 917c + 9002: 6cd7 mov r3, r5 + 9004: 9220 ld.w r1, (r2, 0x0) + 9006: 70d0 lsl r3, r4 + 9008: 6cc4 or r3, r1 + 900a: b260 st.w r3, (r2, 0x0) + 900c: 0415 br 0x9036 // 9036 + 900e: 3d42 cmpnei r5, 2 + 9010: 092a bt 0x9264 // 9264 + 9012: 13e5 lrw r7, 0x2000096a // 91a4 + 9014: 8bc0 ld.h r6, (r3, 0x0) + 9016: 8f20 ld.h r1, (r7, 0x0) + 9018: 7445 zexth r1, r1 + 901a: 759b sexth r6, r6 + 901c: 2109 addi r1, 10 + 901e: 6585 cmplt r1, r6 + 9020: 0c0b bf 0x9036 // 9036 + 9022: 8b60 ld.h r3, (r3, 0x0) + 9024: 1236 lrw r1, 0x200009a0 // 917c + 9026: 74cd zexth r3, r3 + 9028: af60 st.h r3, (r7, 0x0) + 902a: b140 st.w r2, (r1, 0x0) + 902c: 3301 movi r3, 1 + 902e: 9140 ld.w r2, (r1, 0x0) + 9030: 70d0 lsl r3, r4 + 9032: 6cc8 or r3, r2 + 9034: b160 st.w r3, (r1, 0x0) + 9036: 3300 movi r3, 0 + 9038: a060 st.b r3, (r0, 0x0) + 903a: 0777 br 0x8f28 // 8f28 + 903c: 3d43 cmpnei r5, 3 + 903e: 0c03 bf 0x9044 // 9044 + 9040: e800fda6 br 0x8b8c // 8b8c + 9044: 125b lrw r2, 0x20000ae2 // 91b0 + 9046: 8bc0 ld.h r6, (r3, 0x0) + 9048: 8a00 ld.h r0, (r2, 0x0) + 904a: 7401 zexth r0, r0 + 904c: 759b sexth r6, r6 + 904e: 2009 addi r0, 10 + 9050: 6581 cmplt r0, r6 + 9052: 0c0c bf 0x906a // 906a + 9054: 8b60 ld.h r3, (r3, 0x0) + 9056: 74cd zexth r3, r3 + 9058: aa60 st.h r3, (r2, 0x0) + 905a: 3300 movi r3, 0 + 905c: 1216 lrw r0, 0x20000928 // 91b4 + 905e: b060 st.w r3, (r0, 0x0) + 9060: 3301 movi r3, 1 + 9062: 90c0 ld.w r6, (r0, 0x0) + 9064: 70d0 lsl r3, r4 + 9066: 6cd8 or r3, r6 + 9068: b060 st.w r3, (r0, 0x0) + 906a: 9804 ld.w r0, (r14, 0x10) + 906c: 4461 lsli r3, r4, 1 + 906e: 60c0 addu r3, r0 + 9070: 8b00 ld.h r0, (r3, 0x0) + 9072: 8a40 ld.h r2, (r2, 0x0) + 9074: 7489 zexth r2, r2 + 9076: 7403 sexth r0, r0 + 9078: 2a04 subi r2, 5 + 907a: 6481 cmplt r0, r2 + 907c: 0803 bt 0x9082 // 9082 + 907e: e800fd87 br 0x8b8c // 8b8c + 9082: 12ce lrw r6, 0x200008ec // 91b8 + 9084: 8b00 ld.h r0, (r3, 0x0) + 9086: 8e40 ld.h r2, (r6, 0x0) + 9088: 7489 zexth r2, r2 + 908a: 7403 sexth r0, r0 + 908c: 2204 addi r2, 5 + 908e: 6409 cmplt r2, r0 + 9090: 0803 bt 0x9096 // 9096 + 9092: e800fd7d br 0x8b8c // 8b8c + 9096: 8b60 ld.h r3, (r3, 0x0) + 9098: 74cd zexth r3, r3 + 909a: ae60 st.h r3, (r6, 0x0) + 909c: 1246 lrw r2, 0x20000928 // 91b4 + 909e: e800fd63 br 0x8b64 // 8b64 + 90a2: 3d43 cmpnei r5, 3 + 90a4: 0c02 bf 0x90a8 // 90a8 + 90a6: 061d br 0x8ce0 // 8ce0 + 90a8: 12c2 lrw r6, 0x20000ae2 // 91b0 + 90aa: 8ae0 ld.h r7, (r2, 0x0) + 90ac: 8e20 ld.h r1, (r6, 0x0) + 90ae: 7445 zexth r1, r1 + 90b0: 75df sexth r7, r7 + 90b2: 2109 addi r1, 10 + 90b4: 65c5 cmplt r1, r7 + 90b6: 0c0b bf 0x90cc // 90cc + 90b8: 8a40 ld.h r2, (r2, 0x0) + 90ba: 7489 zexth r2, r2 + 90bc: ae40 st.h r2, (r6, 0x0) + 90be: 115e lrw r2, 0x20000928 // 91b4 + 90c0: b260 st.w r3, (r2, 0x0) + 90c2: 3301 movi r3, 1 + 90c4: 9220 ld.w r1, (r2, 0x0) + 90c6: 70d0 lsl r3, r4 + 90c8: 6cc4 or r3, r1 + 90ca: b260 st.w r3, (r2, 0x0) + 90cc: 9844 ld.w r2, (r14, 0x10) + 90ce: 4461 lsli r3, r4, 1 + 90d0: 60c8 addu r3, r2 + 90d2: 8b40 ld.h r2, (r3, 0x0) + 90d4: 8e20 ld.h r1, (r6, 0x0) + 90d6: 7445 zexth r1, r1 + 90d8: 748b sexth r2, r2 + 90da: 2904 subi r1, 5 + 90dc: 6449 cmplt r2, r1 + 90de: 0802 bt 0x90e2 // 90e2 + 90e0: 0600 br 0x8ce0 // 8ce0 + 90e2: 11d6 lrw r6, 0x200008ec // 91b8 + 90e4: 8b20 ld.h r1, (r3, 0x0) + 90e6: 8e40 ld.h r2, (r6, 0x0) + 90e8: 7489 zexth r2, r2 + 90ea: 7447 sexth r1, r1 + 90ec: 2204 addi r2, 5 + 90ee: 6449 cmplt r2, r1 + 90f0: 0803 bt 0x90f6 // 90f6 + 90f2: e800fdf7 br 0x8ce0 // 8ce0 + 90f6: 8b60 ld.h r3, (r3, 0x0) + 90f8: 74cd zexth r3, r3 + 90fa: ae60 st.h r3, (r6, 0x0) + 90fc: 114e lrw r2, 0x20000928 // 91b4 + 90fe: e800fde6 br 0x8cca // 8cca + 9102: 3d43 cmpnei r5, 3 + 9104: 0c02 bf 0x9108 // 9108 + 9106: 0609 br 0x8d18 // 8d18 + 9108: 105e lrw r2, 0x20000bd8 // 9180 + 910a: 8bc0 ld.h r6, (r3, 0x0) + 910c: 8a00 ld.h r0, (r2, 0x0) + 910e: 7401 zexth r0, r0 + 9110: 759b sexth r6, r6 + 9112: 2009 addi r0, 10 + 9114: 6581 cmplt r0, r6 + 9116: 0c0c bf 0x912e // 912e + 9118: 8b60 ld.h r3, (r3, 0x0) + 911a: 74cd zexth r3, r3 + 911c: aa60 st.h r3, (r2, 0x0) + 911e: 3300 movi r3, 0 + 9120: 1019 lrw r0, 0x200008bc // 9184 + 9122: b060 st.w r3, (r0, 0x0) + 9124: 3301 movi r3, 1 + 9126: 90c0 ld.w r6, (r0, 0x0) + 9128: 70d0 lsl r3, r4 + 912a: 6cd8 or r3, r6 + 912c: b060 st.w r3, (r0, 0x0) + 912e: 9801 ld.w r0, (r14, 0x4) + 9130: 4461 lsli r3, r4, 1 + 9132: 60c0 addu r3, r0 + 9134: 8b00 ld.h r0, (r3, 0x0) + 9136: 8a40 ld.h r2, (r2, 0x0) + 9138: 7489 zexth r2, r2 + 913a: 7403 sexth r0, r0 + 913c: 2a04 subi r2, 5 + 913e: 6481 cmplt r0, r2 + 9140: 0803 bt 0x9146 // 9146 + 9142: e800fdeb br 0x8d18 // 8d18 + 9146: 10de lrw r6, 0x20000aea // 91bc + 9148: 8b00 ld.h r0, (r3, 0x0) + 914a: 8e40 ld.h r2, (r6, 0x0) + 914c: 7489 zexth r2, r2 + 914e: 7403 sexth r0, r0 + 9150: 2204 addi r2, 5 + 9152: 6409 cmplt r2, r0 + 9154: 0803 bt 0x915a // 915a + 9156: e800fde1 br 0x8d18 // 8d18 + 915a: 8b60 ld.h r3, (r3, 0x0) + 915c: 74cd zexth r3, r3 + 915e: ae60 st.h r3, (r6, 0x0) + 9160: 1049 lrw r2, 0x200008bc // 9184 + 9162: e800fd67 br 0x8c30 // 8c30 + 9166: 3d43 cmpnei r5, 3 + 9168: 0ad2 bt 0x8f0c // 8f0c + 916a: 8b20 ld.h r1, (r3, 0x0) + 916c: 10c5 lrw r6, 0x20000bd8 // 9180 + 916e: 7487 sexth r2, r1 + 9170: 8e20 ld.h r1, (r6, 0x0) + 9172: 7445 zexth r1, r1 + 9174: 2109 addi r1, 10 + 9176: 6485 cmplt r1, r2 + 9178: 0c2f bf 0x91d6 // 91d6 + 917a: 0423 br 0x91c0 // 91c0 + 917c: 200009a0 .long 0x200009a0 + 9180: 20000bd8 .long 0x20000bd8 + 9184: 200008bc .long 0x200008bc + 9188: 20000946 .long 0x20000946 + 918c: 20000b08 .long 0x20000b08 + 9190: 200009a4 .long 0x200009a4 + 9194: 200009ce .long 0x200009ce + 9198: 20000acc .long 0x20000acc + 919c: 20000b1e .long 0x20000b1e + 91a0: 20000ab0 .long 0x20000ab0 + 91a4: 2000096a .long 0x2000096a + 91a8: 200008aa .long 0x200008aa + 91ac: 200009bc .long 0x200009bc + 91b0: 20000ae2 .long 0x20000ae2 + 91b4: 20000928 .long 0x20000928 + 91b8: 200008ec .long 0x200008ec + 91bc: 20000aea .long 0x20000aea + 91c0: 8b60 ld.h r3, (r3, 0x0) + 91c2: 74cd zexth r3, r3 + 91c4: ae60 st.h r3, (r6, 0x0) + 91c6: 9867 ld.w r3, (r14, 0x1c) + 91c8: 113d lrw r1, 0x200008bc // 92bc + 91ca: b160 st.w r3, (r1, 0x0) + 91cc: 3301 movi r3, 1 + 91ce: 9140 ld.w r2, (r1, 0x0) + 91d0: 70d0 lsl r3, r4 + 91d2: 6cc8 or r3, r2 + 91d4: b160 st.w r3, (r1, 0x0) + 91d6: 9841 ld.w r2, (r14, 0x4) + 91d8: 4461 lsli r3, r4, 1 + 91da: 60c8 addu r3, r2 + 91dc: 8b40 ld.h r2, (r3, 0x0) + 91de: 8e20 ld.h r1, (r6, 0x0) + 91e0: 7445 zexth r1, r1 + 91e2: 748b sexth r2, r2 + 91e4: 2904 subi r1, 5 + 91e6: 6449 cmplt r2, r1 + 91e8: 0e92 bf 0x8f0c // 8f0c + 91ea: 11d6 lrw r6, 0x20000aea // 92c0 + 91ec: 8b20 ld.h r1, (r3, 0x0) + 91ee: 8e40 ld.h r2, (r6, 0x0) + 91f0: 7489 zexth r2, r2 + 91f2: 7447 sexth r1, r1 + 91f4: 2204 addi r2, 5 + 91f6: 6449 cmplt r2, r1 + 91f8: 0802 bt 0x91fc // 91fc + 91fa: 0689 br 0x8f0c // 8f0c + 91fc: 8b60 ld.h r3, (r3, 0x0) + 91fe: 74cd zexth r3, r3 + 9200: ae60 st.h r3, (r6, 0x0) + 9202: 114f lrw r2, 0x200008bc // 92bc + 9204: 0662 br 0x8ec8 // 8ec8 + 9206: 3d43 cmpnei r5, 3 + 9208: 0a8e bt 0x8f24 // 8f24 + 920a: 114f lrw r2, 0x2000096a // 92c4 + 920c: 8bc0 ld.h r6, (r3, 0x0) + 920e: 8a00 ld.h r0, (r2, 0x0) + 9210: 7401 zexth r0, r0 + 9212: 759b sexth r6, r6 + 9214: 2009 addi r0, 10 + 9216: 6581 cmplt r0, r6 + 9218: 0c0c bf 0x9230 // 9230 + 921a: 8b60 ld.h r3, (r3, 0x0) + 921c: 74cd zexth r3, r3 + 921e: aa60 st.h r3, (r2, 0x0) + 9220: 3300 movi r3, 0 + 9222: 110a lrw r0, 0x200009a0 // 92c8 + 9224: b060 st.w r3, (r0, 0x0) + 9226: 3301 movi r3, 1 + 9228: 90c0 ld.w r6, (r0, 0x0) + 922a: 70d0 lsl r3, r4 + 922c: 6cd8 or r3, r6 + 922e: b060 st.w r3, (r0, 0x0) + 9230: 9802 ld.w r0, (r14, 0x8) + 9232: 4461 lsli r3, r4, 1 + 9234: 60c0 addu r3, r0 + 9236: 8b00 ld.h r0, (r3, 0x0) + 9238: 8a40 ld.h r2, (r2, 0x0) + 923a: 7489 zexth r2, r2 + 923c: 7403 sexth r0, r0 + 923e: 2a04 subi r2, 5 + 9240: 6481 cmplt r0, r2 + 9242: 0802 bt 0x9246 // 9246 + 9244: 0670 br 0x8f24 // 8f24 + 9246: 11c2 lrw r6, 0x20000a30 // 92cc + 9248: 8b00 ld.h r0, (r3, 0x0) + 924a: 8e40 ld.h r2, (r6, 0x0) + 924c: 7489 zexth r2, r2 + 924e: 7403 sexth r0, r0 + 9250: 2204 addi r2, 5 + 9252: 6409 cmplt r2, r0 + 9254: 0802 bt 0x9258 // 9258 + 9256: 0667 br 0x8f24 // 8f24 + 9258: 8b60 ld.h r3, (r3, 0x0) + 925a: 74cd zexth r3, r3 + 925c: ae60 st.h r3, (r6, 0x0) + 925e: 105b lrw r2, 0x200009a0 // 92c8 + 9260: e800fdea br 0x8e34 // 8e34 + 9264: 3d43 cmpnei r5, 3 + 9266: 0ae8 bt 0x9036 // 9036 + 9268: 10d7 lrw r6, 0x2000096a // 92c4 + 926a: 8be0 ld.h r7, (r3, 0x0) + 926c: 8e20 ld.h r1, (r6, 0x0) + 926e: 7445 zexth r1, r1 + 9270: 75df sexth r7, r7 + 9272: 2109 addi r1, 10 + 9274: 65c5 cmplt r1, r7 + 9276: 0c0b bf 0x928c // 928c + 9278: 8b60 ld.h r3, (r3, 0x0) + 927a: 1034 lrw r1, 0x200009a0 // 92c8 + 927c: 74cd zexth r3, r3 + 927e: ae60 st.h r3, (r6, 0x0) + 9280: b140 st.w r2, (r1, 0x0) + 9282: 3301 movi r3, 1 + 9284: 9140 ld.w r2, (r1, 0x0) + 9286: 70d0 lsl r3, r4 + 9288: 6cc8 or r3, r2 + 928a: b160 st.w r3, (r1, 0x0) + 928c: 9842 ld.w r2, (r14, 0x8) + 928e: 4461 lsli r3, r4, 1 + 9290: 60c8 addu r3, r2 + 9292: 8b40 ld.h r2, (r3, 0x0) + 9294: 8e20 ld.h r1, (r6, 0x0) + 9296: 7445 zexth r1, r1 + 9298: 748b sexth r2, r2 + 929a: 2904 subi r1, 5 + 929c: 6449 cmplt r2, r1 + 929e: 0ecc bf 0x9036 // 9036 + 92a0: 10cb lrw r6, 0x20000a30 // 92cc + 92a2: 8b20 ld.h r1, (r3, 0x0) + 92a4: 8e40 ld.h r2, (r6, 0x0) + 92a6: 7489 zexth r2, r2 + 92a8: 7447 sexth r1, r1 + 92aa: 2204 addi r2, 5 + 92ac: 6449 cmplt r2, r1 + 92ae: 0ec4 bf 0x9036 // 9036 + 92b0: 8b60 ld.h r3, (r3, 0x0) + 92b2: 74cd zexth r3, r3 + 92b4: ae60 st.h r3, (r6, 0x0) + 92b6: 1045 lrw r2, 0x200009a0 // 92c8 + 92b8: 069f br 0x8ff6 // 8ff6 + 92ba: 0000 bkpt + 92bc: 200008bc .long 0x200008bc + 92c0: 20000aea .long 0x20000aea + 92c4: 2000096a .long 0x2000096a + 92c8: 200009a0 .long 0x200009a0 + 92cc: 20000a30 .long 0x20000a30 + +Disassembly of section .text.TK_overflow_predict: + +000092d0 : + 92d0: 14d4 push r4-r7, r15 + 92d2: 1422 subi r14, r14, 8 + 92d4: 113c lrw r1, 0x20000070 // 93c4 + 92d6: 8167 ld.b r3, (r1, 0x7) + 92d8: 3b41 cmpnei r3, 1 + 92da: 0823 bt 0x9320 // 9320 + 92dc: 115b lrw r2, 0x20000aaa // 93c8 + 92de: 8260 ld.b r3, (r2, 0x0) + 92e0: 2300 addi r3, 1 + 92e2: 74cc zextb r3, r3 + 92e4: a260 st.b r3, (r2, 0x0) + 92e6: 8260 ld.b r3, (r2, 0x0) + 92e8: 1119 lrw r0, 0x20000265 // 93cc + 92ea: 8000 ld.b r0, (r0, 0x0) + 92ec: 64c0 cmphs r0, r3 + 92ee: 0819 bt 0x9320 // 9320 + 92f0: 3300 movi r3, 0 + 92f2: a260 st.b r3, (r2, 0x0) + 92f4: 11b7 lrw r5, 0x200009b5 // 93d0 + 92f6: 8560 ld.b r3, (r5, 0x0) + 92f8: 3b40 cmpnei r3, 0 + 92fa: 0c15 bf 0x9324 // 9324 + 92fc: 8560 ld.b r3, (r5, 0x0) + 92fe: 3b41 cmpnei r3, 1 + 9300: 0810 bt 0x9320 // 9320 + 9302: 3300 movi r3, 0 + 9304: a560 st.b r3, (r5, 0x0) + 9306: 3200 movi r2, 0 + 9308: 1173 lrw r3, 0x20000058 // 93d4 + 930a: 1114 lrw r0, 0x20000ae4 // 93d8 + 930c: 11b4 lrw r5, 0x20000b34 // 93dc + 930e: 11d5 lrw r6, 0x20000242 // 93e0 + 9310: 9360 ld.w r3, (r3, 0x0) + 9312: b342 st.w r2, (r3, 0x8) + 9314: 1174 lrw r3, 0x20000054 // 93e4 + 9316: 9380 ld.w r4, (r3, 0x0) + 9318: 3300 movi r3, 0 + 931a: 8040 ld.b r2, (r0, 0x0) + 931c: 648c cmphs r3, r2 + 931e: 0c44 bf 0x93a6 // 93a6 + 9320: 1402 addi r14, r14, 8 + 9322: 1494 pop r4-r7, r15 + 9324: 597e addi r3, r1, 8 + 9326: 3600 movi r6, 0 + 9328: 11f0 lrw r7, 0x20000268 // 93e8 + 932a: b860 st.w r3, (r14, 0x0) + 932c: 9760 ld.w r3, (r7, 0x0) + 932e: 70d9 lsr r3, r6 + 9330: 3201 movi r2, 1 + 9332: 68c8 and r3, r2 + 9334: 3b40 cmpnei r3, 0 + 9336: 0c34 bf 0x939e // 939e + 9338: 4681 lsli r4, r6, 1 + 933a: 9860 ld.w r3, (r14, 0x0) + 933c: 60d0 addu r3, r4 + 933e: 8b00 ld.h r0, (r3, 0x0) + 9340: e3ffc14c bsr 0x15d8 // 15d8 <__floatunsidf> + 9344: 6cc7 mov r3, r1 + 9346: 3180 movi r1, 128 + 9348: 6c83 mov r2, r0 + 934a: 4137 lsli r1, r1, 23 + 934c: 3000 movi r0, 0 + 934e: e3ffb733 bsr 0x1b4 // 1b4 <__GI_pow> + 9352: 1167 lrw r3, 0x2000026e // 93ec + 9354: 60d0 addu r3, r4 + 9356: 8b60 ld.h r3, (r3, 0x0) + 9358: 4364 lsli r3, r3, 4 + 935a: 230e addi r3, 15 + 935c: b861 st.w r3, (r14, 0x4) + 935e: e3ffbcf5 bsr 0xd48 // d48 <__fixunsdfsi> + 9362: 9861 ld.w r3, (r14, 0x4) + 9364: 7cc0 mult r3, r0 + 9366: 1143 lrw r2, 0x20000b6a // 93f0 + 9368: 740d zexth r0, r3 + 936a: 6090 addu r2, r4 + 936c: 1162 lrw r3, 0x20000bda // 93f4 + 936e: 60d0 addu r3, r4 + 9370: aa00 st.h r0, (r2, 0x0) + 9372: 8b60 ld.h r3, (r3, 0x0) + 9374: 8a00 ld.h r0, (r2, 0x0) + 9376: 7401 zexth r0, r0 + 9378: 325f movi r2, 95 + 937a: 74cd zexth r3, r3 + 937c: 7c08 mult r0, r2 + 937e: 3164 movi r1, 100 + 9380: b861 st.w r3, (r14, 0x4) + 9382: e3ffd2f3 bsr 0x3968 // 3968 <__divsi3> + 9386: 9861 ld.w r3, (r14, 0x4) + 9388: 64c1 cmplt r0, r3 + 938a: 0c0a bf 0x939e // 939e + 938c: 1075 lrw r3, 0x20000242 // 93e0 + 938e: 610c addu r4, r3 + 9390: 8c60 ld.h r3, (r4, 0x0) + 9392: 3b06 cmphsi r3, 7 + 9394: 0805 bt 0x939e // 939e + 9396: 2300 addi r3, 1 + 9398: ac60 st.h r3, (r4, 0x0) + 939a: 3301 movi r3, 1 + 939c: a560 st.b r3, (r5, 0x0) + 939e: 2600 addi r6, 1 + 93a0: 3e51 cmpnei r6, 17 + 93a2: 0bc5 bt 0x932c // 932c + 93a4: 07ac br 0x92fc // 92fc + 93a6: 5d4c addu r2, r5, r3 + 93a8: 8240 ld.b r2, (r2, 0x0) + 93aa: 4241 lsli r2, r2, 1 + 93ac: 4322 lsli r1, r3, 2 + 93ae: 6098 addu r2, r6 + 93b0: 6050 addu r1, r4 + 93b2: 8a40 ld.h r2, (r2, 0x0) + 93b4: 91f2 ld.w r7, (r1, 0x48) + 93b6: 4254 lsli r2, r2, 20 + 93b8: 6c9c or r2, r7 + 93ba: 2300 addi r3, 1 + 93bc: b152 st.w r2, (r1, 0x48) + 93be: 74cc zextb r3, r3 + 93c0: 07ad br 0x931a // 931a + 93c2: 0000 bkpt + 93c4: 20000070 .long 0x20000070 + 93c8: 20000aaa .long 0x20000aaa + 93cc: 20000265 .long 0x20000265 + 93d0: 200009b5 .long 0x200009b5 + 93d4: 20000058 .long 0x20000058 + 93d8: 20000ae4 .long 0x20000ae4 + 93dc: 20000b34 .long 0x20000b34 + 93e0: 20000242 .long 0x20000242 + 93e4: 20000054 .long 0x20000054 + 93e8: 20000268 .long 0x20000268 + 93ec: 2000026e .long 0x2000026e + 93f0: 20000b6a .long 0x20000b6a + 93f4: 20000bda .long 0x20000bda + +Disassembly of section .text.TK_Baseline_tracking: + +000093f8 : + 93f8: 14d4 push r4-r7, r15 + 93fa: 1421 subi r14, r14, 4 + 93fc: 014a lrw r2, 0x20000a26 // 9750 + 93fe: 8260 ld.b r3, (r2, 0x0) + 9400: 2300 addi r3, 1 + 9402: 74cc zextb r3, r3 + 9404: a260 st.b r3, (r2, 0x0) + 9406: 8260 ld.b r3, (r2, 0x0) + 9408: 012c lrw r1, 0x20000265 // 9754 + 940a: 8120 ld.b r1, (r1, 0x0) + 940c: 644c cmphs r3, r1 + 940e: 0803 bt 0x9414 // 9414 + 9410: e800020f br 0x982e // 982e + 9414: 3300 movi r3, 0 + 9416: a260 st.b r3, (r2, 0x0) + 9418: 016f lrw r3, 0x20000928 // 9758 + 941a: 9360 ld.w r3, (r3, 0x0) + 941c: 3b40 cmpnei r3, 0 + 941e: 0c03 bf 0x9424 // 9424 + 9420: e8000209 br 0x9832 // 9832 + 9424: 0171 lrw r3, 0x20000948 // 975c + 9426: 0150 lrw r2, 0x20000292 // 9760 + 9428: 3100 movi r1, 0 + 942a: b860 st.w r3, (r14, 0x0) + 942c: 6d0f mov r4, r3 + 942e: 0111 lrw r0, 0x20000888 // 9764 + 9430: 4161 lsli r3, r1, 1 + 9432: 98a0 ld.w r5, (r14, 0x0) + 9434: 614c addu r5, r3 + 9436: 8da0 ld.h r5, (r5, 0x0) + 9438: 7557 sexth r5, r5 + 943a: 3ddf btsti r5, 31 + 943c: 0c1c bf 0x9474 // 9474 + 943e: 01d4 lrw r6, 0x20000bda // 9768 + 9440: 58ac addu r5, r0, r3 + 9442: 618c addu r6, r3 + 9444: 8da0 ld.h r5, (r5, 0x0) + 9446: 8ec0 ld.h r6, (r6, 0x0) + 9448: 7599 zexth r6, r6 + 944a: 7555 zexth r5, r5 + 944c: 615a subu r5, r6 + 944e: 8ac0 ld.h r6, (r2, 0x0) + 9450: 6595 cmplt r5, r6 + 9452: 0811 bt 0x9474 // 9474 + 9454: 01b9 lrw r5, 0x20000aec // 976c + 9456: 6144 addu r5, r1 + 9458: 85c0 ld.b r6, (r5, 0x0) + 945a: 2600 addi r6, 1 + 945c: 7598 zextb r6, r6 + 945e: a5c0 st.b r6, (r5, 0x0) + 9460: 01db lrw r6, 0x20000090 // 9770 + 9462: 85e0 ld.b r7, (r5, 0x0) + 9464: 86ca ld.b r6, (r6, 0xa) + 9466: 65d8 cmphs r6, r7 + 9468: 0806 bt 0x9474 // 9474 + 946a: 01dc lrw r6, 0x20000994 // 9774 + 946c: 3701 movi r7, 1 + 946e: a6e0 st.b r7, (r6, 0x0) + 9470: 3600 movi r6, 0 + 9472: a5c0 st.b r6, (r5, 0x0) + 9474: 5cac addu r5, r4, r3 + 9476: 8da0 ld.h r5, (r5, 0x0) + 9478: 7557 sexth r5, r5 + 947a: 3d20 cmplti r5, 1 + 947c: 081d bt 0x94b6 // 94b6 + 947e: 02a4 lrw r5, 0x20000bda // 9768 + 9480: 614c addu r5, r3 + 9482: 58cc addu r6, r0, r3 + 9484: 8da0 ld.h r5, (r5, 0x0) + 9486: 8ec0 ld.h r6, (r6, 0x0) + 9488: 7599 zexth r6, r6 + 948a: 7555 zexth r5, r5 + 948c: 615a subu r5, r6 + 948e: 8ac0 ld.h r6, (r2, 0x0) + 9490: 46c2 lsli r6, r6, 2 + 9492: 6595 cmplt r5, r6 + 9494: 0811 bt 0x94b6 // 94b6 + 9496: 02a6 lrw r5, 0x20000a54 // 9778 + 9498: 6144 addu r5, r1 + 949a: 85c0 ld.b r6, (r5, 0x0) + 949c: 2600 addi r6, 1 + 949e: 7598 zextb r6, r6 + 94a0: a5c0 st.b r6, (r5, 0x0) + 94a2: 02cb lrw r6, 0x20000090 // 9770 + 94a4: 85e0 ld.b r7, (r5, 0x0) + 94a6: 86cb ld.b r6, (r6, 0xb) + 94a8: 65d8 cmphs r6, r7 + 94aa: 0806 bt 0x94b6 // 94b6 + 94ac: 02cd lrw r6, 0x20000994 // 9774 + 94ae: 3701 movi r7, 1 + 94b0: a6e0 st.b r7, (r6, 0x0) + 94b2: 3600 movi r6, 0 + 94b4: a5c0 st.b r6, (r5, 0x0) + 94b6: 5cac addu r5, r4, r3 + 94b8: 8da0 ld.h r5, (r5, 0x0) + 94ba: 7557 sexth r5, r5 + 94bc: 3ddf btsti r5, 31 + 94be: 0c10 bf 0x94de // 94de + 94c0: 02f5 lrw r7, 0x20000bda // 9768 + 94c2: 58cc addu r6, r0, r3 + 94c4: 61cc addu r7, r3 + 94c6: 8ea0 ld.h r5, (r6, 0x0) + 94c8: 8fe0 ld.h r7, (r7, 0x0) + 94ca: 75dd zexth r7, r7 + 94cc: 7555 zexth r5, r5 + 94ce: 615e subu r5, r7 + 94d0: 8ae0 ld.h r7, (r2, 0x0) + 94d2: 65d5 cmplt r5, r7 + 94d4: 0c05 bf 0x94de // 94de + 94d6: 8ea0 ld.h r5, (r6, 0x0) + 94d8: 2d00 subi r5, 1 + 94da: 7555 zexth r5, r5 + 94dc: aea0 st.h r5, (r6, 0x0) + 94de: 5cac addu r5, r4, r3 + 94e0: 8da0 ld.h r5, (r5, 0x0) + 94e2: 7557 sexth r5, r5 + 94e4: 3ddf btsti r5, 31 + 94e6: 0c11 bf 0x9508 // 9508 + 94e8: 02ff lrw r7, 0x20000bda // 9768 + 94ea: 58cc addu r6, r0, r3 + 94ec: 61cc addu r7, r3 + 94ee: 8ea0 ld.h r5, (r6, 0x0) + 94f0: 8fe0 ld.h r7, (r7, 0x0) + 94f2: 75dd zexth r7, r7 + 94f4: 7555 zexth r5, r5 + 94f6: 615e subu r5, r7 + 94f8: 8ae0 ld.h r7, (r2, 0x0) + 94fa: 4fe1 lsri r7, r7, 1 + 94fc: 65d5 cmplt r5, r7 + 94fe: 0805 bt 0x9508 // 9508 + 9500: 8ea0 ld.h r5, (r6, 0x0) + 9502: 2d01 subi r5, 2 + 9504: 7555 zexth r5, r5 + 9506: aea0 st.h r5, (r6, 0x0) + 9508: 5ccc addu r6, r4, r3 + 950a: 8ea0 ld.h r5, (r6, 0x0) + 950c: 7557 sexth r5, r5 + 950e: 3d20 cmplti r5, 1 + 9510: 080c bt 0x9528 // 9528 + 9512: 8ec0 ld.h r6, (r6, 0x0) + 9514: 8aa0 ld.h r5, (r2, 0x0) + 9516: 759b sexth r6, r6 + 9518: 4da1 lsri r5, r5, 1 + 951a: 6559 cmplt r6, r5 + 951c: 0c06 bf 0x9528 // 9528 + 951e: 58cc addu r6, r0, r3 + 9520: 8ea0 ld.h r5, (r6, 0x0) + 9522: 2500 addi r5, 1 + 9524: 7555 zexth r5, r5 + 9526: aea0 st.h r5, (r6, 0x0) + 9528: 5ccc addu r6, r4, r3 + 952a: 8ea0 ld.h r5, (r6, 0x0) + 952c: 7557 sexth r5, r5 + 952e: 3d20 cmplti r5, 1 + 9530: 0810 bt 0x9550 // 9550 + 9532: 8ee0 ld.h r7, (r6, 0x0) + 9534: 75df sexth r7, r7 + 9536: 8aa0 ld.h r5, (r2, 0x0) + 9538: 655d cmplt r7, r5 + 953a: 0c0b bf 0x9550 // 9550 + 953c: 8ec0 ld.h r6, (r6, 0x0) + 953e: 759b sexth r6, r6 + 9540: 4da1 lsri r5, r5, 1 + 9542: 6559 cmplt r6, r5 + 9544: 0806 bt 0x9550 // 9550 + 9546: 60c0 addu r3, r0 + 9548: 8ba0 ld.h r5, (r3, 0x0) + 954a: 2501 addi r5, 2 + 954c: 7555 zexth r5, r5 + 954e: aba0 st.h r5, (r3, 0x0) + 9550: 2100 addi r1, 1 + 9552: 3951 cmpnei r1, 17 + 9554: 2201 addi r2, 2 + 9556: 0b6d bt 0x9430 // 9430 + 9558: 0376 lrw r3, 0x200008bc // 977c + 955a: 9360 ld.w r3, (r3, 0x0) + 955c: 3b40 cmpnei r3, 0 + 955e: 0980 bt 0x985e // 985e + 9560: 0377 lrw r3, 0x20000a88 // 9780 + 9562: 035f lrw r2, 0x20000292 // 9760 + 9564: 3100 movi r1, 0 + 9566: b860 st.w r3, (r14, 0x0) + 9568: 6d0f mov r4, r3 + 956a: 0318 lrw r0, 0x20000a32 // 9784 + 956c: 4161 lsli r3, r1, 1 + 956e: 98a0 ld.w r5, (r14, 0x0) + 9570: 614c addu r5, r3 + 9572: 8da0 ld.h r5, (r5, 0x0) + 9574: 7557 sexth r5, r5 + 9576: 3ddf btsti r5, 31 + 9578: 0c1c bf 0x95b0 // 95b0 + 957a: 03db lrw r6, 0x20000970 // 9788 + 957c: 58ac addu r5, r0, r3 + 957e: 618c addu r6, r3 + 9580: 8da0 ld.h r5, (r5, 0x0) + 9582: 8ec0 ld.h r6, (r6, 0x0) + 9584: 7599 zexth r6, r6 + 9586: 7555 zexth r5, r5 + 9588: 615a subu r5, r6 + 958a: 8ac0 ld.h r6, (r2, 0x0) + 958c: 6595 cmplt r5, r6 + 958e: 0811 bt 0x95b0 // 95b0 + 9590: 13bf lrw r5, 0x20000acc // 978c + 9592: 6144 addu r5, r1 + 9594: 85c0 ld.b r6, (r5, 0x0) + 9596: 2600 addi r6, 1 + 9598: 7598 zextb r6, r6 + 959a: a5c0 st.b r6, (r5, 0x0) + 959c: 13d5 lrw r6, 0x20000090 // 9770 + 959e: 85e0 ld.b r7, (r5, 0x0) + 95a0: 86ca ld.b r6, (r6, 0xa) + 95a2: 65d8 cmphs r6, r7 + 95a4: 0806 bt 0x95b0 // 95b0 + 95a6: 13d4 lrw r6, 0x20000994 // 9774 + 95a8: 3701 movi r7, 1 + 95aa: a6e1 st.b r7, (r6, 0x1) + 95ac: 3600 movi r6, 0 + 95ae: a5c0 st.b r6, (r5, 0x0) + 95b0: 5cac addu r5, r4, r3 + 95b2: 8da0 ld.h r5, (r5, 0x0) + 95b4: 7557 sexth r5, r5 + 95b6: 3d20 cmplti r5, 1 + 95b8: 081d bt 0x95f2 // 95f2 + 95ba: 13b4 lrw r5, 0x20000970 // 9788 + 95bc: 614c addu r5, r3 + 95be: 58cc addu r6, r0, r3 + 95c0: 8da0 ld.h r5, (r5, 0x0) + 95c2: 8ec0 ld.h r6, (r6, 0x0) + 95c4: 7599 zexth r6, r6 + 95c6: 7555 zexth r5, r5 + 95c8: 615a subu r5, r6 + 95ca: 8ac0 ld.h r6, (r2, 0x0) + 95cc: 46c2 lsli r6, r6, 2 + 95ce: 6595 cmplt r5, r6 + 95d0: 0811 bt 0x95f2 // 95f2 + 95d2: 13b0 lrw r5, 0x200009ce // 9790 + 95d4: 6144 addu r5, r1 + 95d6: 85c0 ld.b r6, (r5, 0x0) + 95d8: 2600 addi r6, 1 + 95da: 7598 zextb r6, r6 + 95dc: a5c0 st.b r6, (r5, 0x0) + 95de: 13c5 lrw r6, 0x20000090 // 9770 + 95e0: 85e0 ld.b r7, (r5, 0x0) + 95e2: 86cb ld.b r6, (r6, 0xb) + 95e4: 65d8 cmphs r6, r7 + 95e6: 0806 bt 0x95f2 // 95f2 + 95e8: 13c3 lrw r6, 0x20000994 // 9774 + 95ea: 3701 movi r7, 1 + 95ec: a6e1 st.b r7, (r6, 0x1) + 95ee: 3600 movi r6, 0 + 95f0: a5c0 st.b r6, (r5, 0x0) + 95f2: 5cac addu r5, r4, r3 + 95f4: 8da0 ld.h r5, (r5, 0x0) + 95f6: 7557 sexth r5, r5 + 95f8: 3ddf btsti r5, 31 + 95fa: 0c10 bf 0x961a // 961a + 95fc: 13e3 lrw r7, 0x20000970 // 9788 + 95fe: 58cc addu r6, r0, r3 + 9600: 61cc addu r7, r3 + 9602: 8ea0 ld.h r5, (r6, 0x0) + 9604: 8fe0 ld.h r7, (r7, 0x0) + 9606: 75dd zexth r7, r7 + 9608: 7555 zexth r5, r5 + 960a: 615e subu r5, r7 + 960c: 8ae0 ld.h r7, (r2, 0x0) + 960e: 65d5 cmplt r5, r7 + 9610: 0c05 bf 0x961a // 961a + 9612: 8ea0 ld.h r5, (r6, 0x0) + 9614: 2d00 subi r5, 1 + 9616: 7555 zexth r5, r5 + 9618: aea0 st.h r5, (r6, 0x0) + 961a: 5cac addu r5, r4, r3 + 961c: 8da0 ld.h r5, (r5, 0x0) + 961e: 7557 sexth r5, r5 + 9620: 3ddf btsti r5, 31 + 9622: 0c11 bf 0x9644 // 9644 + 9624: 12f9 lrw r7, 0x20000970 // 9788 + 9626: 58cc addu r6, r0, r3 + 9628: 61cc addu r7, r3 + 962a: 8ea0 ld.h r5, (r6, 0x0) + 962c: 8fe0 ld.h r7, (r7, 0x0) + 962e: 75dd zexth r7, r7 + 9630: 7555 zexth r5, r5 + 9632: 615e subu r5, r7 + 9634: 8ae0 ld.h r7, (r2, 0x0) + 9636: 4fe1 lsri r7, r7, 1 + 9638: 65d5 cmplt r5, r7 + 963a: 0805 bt 0x9644 // 9644 + 963c: 8ea0 ld.h r5, (r6, 0x0) + 963e: 2d01 subi r5, 2 + 9640: 7555 zexth r5, r5 + 9642: aea0 st.h r5, (r6, 0x0) + 9644: 5ccc addu r6, r4, r3 + 9646: 8ea0 ld.h r5, (r6, 0x0) + 9648: 7557 sexth r5, r5 + 964a: 3d20 cmplti r5, 1 + 964c: 080c bt 0x9664 // 9664 + 964e: 8ec0 ld.h r6, (r6, 0x0) + 9650: 8aa0 ld.h r5, (r2, 0x0) + 9652: 759b sexth r6, r6 + 9654: 4da1 lsri r5, r5, 1 + 9656: 6559 cmplt r6, r5 + 9658: 0c06 bf 0x9664 // 9664 + 965a: 58cc addu r6, r0, r3 + 965c: 8ea0 ld.h r5, (r6, 0x0) + 965e: 2500 addi r5, 1 + 9660: 7555 zexth r5, r5 + 9662: aea0 st.h r5, (r6, 0x0) + 9664: 5ccc addu r6, r4, r3 + 9666: 8ea0 ld.h r5, (r6, 0x0) + 9668: 7557 sexth r5, r5 + 966a: 3d20 cmplti r5, 1 + 966c: 0810 bt 0x968c // 968c + 966e: 8ee0 ld.h r7, (r6, 0x0) + 9670: 75df sexth r7, r7 + 9672: 8aa0 ld.h r5, (r2, 0x0) + 9674: 655d cmplt r7, r5 + 9676: 0c0b bf 0x968c // 968c + 9678: 8ec0 ld.h r6, (r6, 0x0) + 967a: 759b sexth r6, r6 + 967c: 4da1 lsri r5, r5, 1 + 967e: 6559 cmplt r6, r5 + 9680: 0806 bt 0x968c // 968c + 9682: 60c0 addu r3, r0 + 9684: 8ba0 ld.h r5, (r3, 0x0) + 9686: 2501 addi r5, 2 + 9688: 7555 zexth r5, r5 + 968a: aba0 st.h r5, (r3, 0x0) + 968c: 2100 addi r1, 1 + 968e: 3951 cmpnei r1, 17 + 9690: 2201 addi r2, 2 + 9692: 0b6d bt 0x956c // 956c + 9694: 1260 lrw r3, 0x200009a0 // 9794 + 9696: 9360 ld.w r3, (r3, 0x0) + 9698: 3b40 cmpnei r3, 0 + 969a: 08f8 bt 0x988a // 988a + 969c: 117f lrw r3, 0x20000bb4 // 9798 + 969e: 1151 lrw r2, 0x20000292 // 9760 + 96a0: 3100 movi r1, 0 + 96a2: b860 st.w r3, (r14, 0x0) + 96a4: 6d0f mov r4, r3 + 96a6: 111e lrw r0, 0x20000b48 // 979c + 96a8: 4161 lsli r3, r1, 1 + 96aa: 98a0 ld.w r5, (r14, 0x0) + 96ac: 614c addu r5, r3 + 96ae: 8da0 ld.h r5, (r5, 0x0) + 96b0: 7557 sexth r5, r5 + 96b2: 3ddf btsti r5, 31 + 96b4: 0c1c bf 0x96ec // 96ec + 96b6: 11db lrw r6, 0x20000a66 // 97a0 + 96b8: 58ac addu r5, r0, r3 + 96ba: 618c addu r6, r3 + 96bc: 8da0 ld.h r5, (r5, 0x0) + 96be: 8ec0 ld.h r6, (r6, 0x0) + 96c0: 7599 zexth r6, r6 + 96c2: 7555 zexth r5, r5 + 96c4: 615a subu r5, r6 + 96c6: 8ac0 ld.h r6, (r2, 0x0) + 96c8: 6595 cmplt r5, r6 + 96ca: 0811 bt 0x96ec // 96ec + 96cc: 11b6 lrw r5, 0x200009bc // 97a4 + 96ce: 6144 addu r5, r1 + 96d0: 85c0 ld.b r6, (r5, 0x0) + 96d2: 2600 addi r6, 1 + 96d4: 7598 zextb r6, r6 + 96d6: a5c0 st.b r6, (r5, 0x0) + 96d8: 11c6 lrw r6, 0x20000090 // 9770 + 96da: 85e0 ld.b r7, (r5, 0x0) + 96dc: 86ca ld.b r6, (r6, 0xa) + 96de: 65d8 cmphs r6, r7 + 96e0: 0806 bt 0x96ec // 96ec + 96e2: 11c5 lrw r6, 0x20000994 // 9774 + 96e4: 3701 movi r7, 1 + 96e6: a6e2 st.b r7, (r6, 0x2) + 96e8: 3600 movi r6, 0 + 96ea: a5c0 st.b r6, (r5, 0x0) + 96ec: 5cac addu r5, r4, r3 + 96ee: 8da0 ld.h r5, (r5, 0x0) + 96f0: 7557 sexth r5, r5 + 96f2: 3d20 cmplti r5, 1 + 96f4: 081d bt 0x972e // 972e + 96f6: 11ab lrw r5, 0x20000a66 // 97a0 + 96f8: 614c addu r5, r3 + 96fa: 58cc addu r6, r0, r3 + 96fc: 8da0 ld.h r5, (r5, 0x0) + 96fe: 8ec0 ld.h r6, (r6, 0x0) + 9700: 7599 zexth r6, r6 + 9702: 7555 zexth r5, r5 + 9704: 615a subu r5, r6 + 9706: 8ac0 ld.h r6, (r2, 0x0) + 9708: 46c2 lsli r6, r6, 2 + 970a: 6595 cmplt r5, r6 + 970c: 0811 bt 0x972e // 972e + 970e: 11a7 lrw r5, 0x200008aa // 97a8 + 9710: 6144 addu r5, r1 + 9712: 85c0 ld.b r6, (r5, 0x0) + 9714: 2600 addi r6, 1 + 9716: 7598 zextb r6, r6 + 9718: a5c0 st.b r6, (r5, 0x0) + 971a: 10d6 lrw r6, 0x20000090 // 9770 + 971c: 85e0 ld.b r7, (r5, 0x0) + 971e: 86cb ld.b r6, (r6, 0xb) + 9720: 65d8 cmphs r6, r7 + 9722: 0806 bt 0x972e // 972e + 9724: 10d4 lrw r6, 0x20000994 // 9774 + 9726: 3701 movi r7, 1 + 9728: a6e2 st.b r7, (r6, 0x2) + 972a: 3600 movi r6, 0 + 972c: a5c0 st.b r6, (r5, 0x0) + 972e: 5cac addu r5, r4, r3 + 9730: 8da0 ld.h r5, (r5, 0x0) + 9732: 7557 sexth r5, r5 + 9734: 3ddf btsti r5, 31 + 9736: 0c3f bf 0x97b4 // 97b4 + 9738: 10fa lrw r7, 0x20000a66 // 97a0 + 973a: 58cc addu r6, r0, r3 + 973c: 61cc addu r7, r3 + 973e: 8ea0 ld.h r5, (r6, 0x0) + 9740: 8fe0 ld.h r7, (r7, 0x0) + 9742: 75dd zexth r7, r7 + 9744: 7555 zexth r5, r5 + 9746: 615e subu r5, r7 + 9748: 8ae0 ld.h r7, (r2, 0x0) + 974a: 65d5 cmplt r5, r7 + 974c: 0c34 bf 0x97b4 // 97b4 + 974e: 042f br 0x97ac // 97ac + 9750: 20000a26 .long 0x20000a26 + 9754: 20000265 .long 0x20000265 + 9758: 20000928 .long 0x20000928 + 975c: 20000948 .long 0x20000948 + 9760: 20000292 .long 0x20000292 + 9764: 20000888 .long 0x20000888 + 9768: 20000bda .long 0x20000bda + 976c: 20000aec .long 0x20000aec + 9770: 20000090 .long 0x20000090 + 9774: 20000994 .long 0x20000994 + 9778: 20000a54 .long 0x20000a54 + 977c: 200008bc .long 0x200008bc + 9780: 20000a88 .long 0x20000a88 + 9784: 20000a32 .long 0x20000a32 + 9788: 20000970 .long 0x20000970 + 978c: 20000acc .long 0x20000acc + 9790: 200009ce .long 0x200009ce + 9794: 200009a0 .long 0x200009a0 + 9798: 20000bb4 .long 0x20000bb4 + 979c: 20000b48 .long 0x20000b48 + 97a0: 20000a66 .long 0x20000a66 + 97a4: 200009bc .long 0x200009bc + 97a8: 200008aa .long 0x200008aa + 97ac: 8ea0 ld.h r5, (r6, 0x0) + 97ae: 2d00 subi r5, 1 + 97b0: 7555 zexth r5, r5 + 97b2: aea0 st.h r5, (r6, 0x0) + 97b4: 5cac addu r5, r4, r3 + 97b6: 8da0 ld.h r5, (r5, 0x0) + 97b8: 7557 sexth r5, r5 + 97ba: 3ddf btsti r5, 31 + 97bc: 0c11 bf 0x97de // 97de + 97be: 11ff lrw r7, 0x20000a66 // 98b8 + 97c0: 58cc addu r6, r0, r3 + 97c2: 61cc addu r7, r3 + 97c4: 8ea0 ld.h r5, (r6, 0x0) + 97c6: 8fe0 ld.h r7, (r7, 0x0) + 97c8: 75dd zexth r7, r7 + 97ca: 7555 zexth r5, r5 + 97cc: 615e subu r5, r7 + 97ce: 8ae0 ld.h r7, (r2, 0x0) + 97d0: 4fe1 lsri r7, r7, 1 + 97d2: 65d5 cmplt r5, r7 + 97d4: 0805 bt 0x97de // 97de + 97d6: 8ea0 ld.h r5, (r6, 0x0) + 97d8: 2d01 subi r5, 2 + 97da: 7555 zexth r5, r5 + 97dc: aea0 st.h r5, (r6, 0x0) + 97de: 5ccc addu r6, r4, r3 + 97e0: 8ea0 ld.h r5, (r6, 0x0) + 97e2: 7557 sexth r5, r5 + 97e4: 3d20 cmplti r5, 1 + 97e6: 080c bt 0x97fe // 97fe + 97e8: 8ec0 ld.h r6, (r6, 0x0) + 97ea: 8aa0 ld.h r5, (r2, 0x0) + 97ec: 759b sexth r6, r6 + 97ee: 4da1 lsri r5, r5, 1 + 97f0: 6559 cmplt r6, r5 + 97f2: 0c06 bf 0x97fe // 97fe + 97f4: 58cc addu r6, r0, r3 + 97f6: 8ea0 ld.h r5, (r6, 0x0) + 97f8: 2500 addi r5, 1 + 97fa: 7555 zexth r5, r5 + 97fc: aea0 st.h r5, (r6, 0x0) + 97fe: 5ccc addu r6, r4, r3 + 9800: 8ea0 ld.h r5, (r6, 0x0) + 9802: 7557 sexth r5, r5 + 9804: 3d20 cmplti r5, 1 + 9806: 0810 bt 0x9826 // 9826 + 9808: 8ee0 ld.h r7, (r6, 0x0) + 980a: 75df sexth r7, r7 + 980c: 8aa0 ld.h r5, (r2, 0x0) + 980e: 655d cmplt r7, r5 + 9810: 0c0b bf 0x9826 // 9826 + 9812: 8ec0 ld.h r6, (r6, 0x0) + 9814: 759b sexth r6, r6 + 9816: 4da1 lsri r5, r5, 1 + 9818: 6559 cmplt r6, r5 + 981a: 0806 bt 0x9826 // 9826 + 981c: 60c0 addu r3, r0 + 981e: 8ba0 ld.h r5, (r3, 0x0) + 9820: 2501 addi r5, 2 + 9822: 7555 zexth r5, r5 + 9824: aba0 st.h r5, (r3, 0x0) + 9826: 2100 addi r1, 1 + 9828: 3951 cmpnei r1, 17 + 982a: 2201 addi r2, 2 + 982c: 0b3e bt 0x96a8 // 96a8 + 982e: 1401 addi r14, r14, 4 + 9830: 1494 pop r4-r7, r15 + 9832: e3fff6c9 bsr 0x85c4 // 85c4 + 9836: 1162 lrw r3, 0x20000090 // 98bc + 9838: 836c ld.b r3, (r3, 0xc) + 983a: 64c0 cmphs r0, r3 + 983c: 1141 lrw r2, 0x200008c0 // 98c0 + 983e: 0c0e bf 0x985a // 985a + 9840: 8260 ld.b r3, (r2, 0x0) + 9842: 74cc zextb r3, r3 + 9844: 3b01 cmphsi r3, 2 + 9846: 0c05 bf 0x9850 // 9850 + 9848: 107f lrw r3, 0x20000994 // 98c4 + 984a: 3201 movi r2, 1 + 984c: a340 st.b r2, (r3, 0x0) + 984e: 0685 br 0x9558 // 9558 + 9850: 8260 ld.b r3, (r2, 0x0) + 9852: 2300 addi r3, 1 + 9854: 74cc zextb r3, r3 + 9856: a260 st.b r3, (r2, 0x0) + 9858: 0680 br 0x9558 // 9558 + 985a: 3300 movi r3, 0 + 985c: 07fd br 0x9856 // 9856 + 985e: e3fff6c7 bsr 0x85ec // 85ec + 9862: 1077 lrw r3, 0x20000090 // 98bc + 9864: 836c ld.b r3, (r3, 0xc) + 9866: 64c0 cmphs r0, r3 + 9868: 1056 lrw r2, 0x200008c0 // 98c0 + 986a: 0c0e bf 0x9886 // 9886 + 986c: 8261 ld.b r3, (r2, 0x1) + 986e: 74cc zextb r3, r3 + 9870: 3b01 cmphsi r3, 2 + 9872: 0c05 bf 0x987c // 987c + 9874: 1074 lrw r3, 0x20000994 // 98c4 + 9876: 3201 movi r2, 1 + 9878: a341 st.b r2, (r3, 0x1) + 987a: 070d br 0x9694 // 9694 + 987c: 8261 ld.b r3, (r2, 0x1) + 987e: 2300 addi r3, 1 + 9880: 74cc zextb r3, r3 + 9882: a261 st.b r3, (r2, 0x1) + 9884: 0708 br 0x9694 // 9694 + 9886: 3300 movi r3, 0 + 9888: 07fd br 0x9882 // 9882 + 988a: e3fff6c5 bsr 0x8614 // 8614 + 988e: 106c lrw r3, 0x20000090 // 98bc + 9890: 836c ld.b r3, (r3, 0xc) + 9892: 64c0 cmphs r0, r3 + 9894: 104b lrw r2, 0x200008c0 // 98c0 + 9896: 0c0e bf 0x98b2 // 98b2 + 9898: 8262 ld.b r3, (r2, 0x2) + 989a: 74cc zextb r3, r3 + 989c: 3b01 cmphsi r3, 2 + 989e: 0c05 bf 0x98a8 // 98a8 + 98a0: 1069 lrw r3, 0x20000994 // 98c4 + 98a2: 3201 movi r2, 1 + 98a4: a342 st.b r2, (r3, 0x2) + 98a6: 07c4 br 0x982e // 982e + 98a8: 8262 ld.b r3, (r2, 0x2) + 98aa: 2300 addi r3, 1 + 98ac: 74cc zextb r3, r3 + 98ae: a262 st.b r3, (r2, 0x2) + 98b0: 07bf br 0x982e // 982e + 98b2: 3300 movi r3, 0 + 98b4: 07fd br 0x98ae // 98ae + 98b6: 0000 bkpt + 98b8: 20000a66 .long 0x20000a66 + 98bc: 20000090 .long 0x20000090 + 98c0: 200008c0 .long 0x200008c0 + 98c4: 20000994 .long 0x20000994 + +Disassembly of section .text.TK_result_prog: + +000098c8 : + 98c8: 14d4 push r4-r7, r15 + 98ca: 1424 subi r14, r14, 16 + 98cc: 111f lrw r0, 0x20000928 // 99c8 + 98ce: 1220 lrw r1, 0x200008bc // 99cc + 98d0: 1240 lrw r2, 0x200009a0 // 99d0 + 98d2: b821 st.w r1, (r14, 0x4) + 98d4: 9060 ld.w r3, (r0, 0x0) + 98d6: 91a0 ld.w r5, (r1, 0x0) + 98d8: 6cd4 or r3, r5 + 98da: 9280 ld.w r4, (r2, 0x0) + 98dc: 6cd0 or r3, r4 + 98de: 3b40 cmpnei r3, 0 + 98e0: b800 st.w r0, (r14, 0x0) + 98e2: b842 st.w r2, (r14, 0x8) + 98e4: 119c lrw r4, 0x20000a28 // 99d4 + 98e6: 0c67 bf 0x99b4 // 99b4 + 98e8: 111c lrw r0, 0x20000b00 // 99d8 + 98ea: 3500 movi r5, 0 + 98ec: 117c lrw r3, 0x20000ac8 // 99dc + 98ee: b803 st.w r0, (r14, 0xc) + 98f0: 3201 movi r2, 1 + 98f2: 7094 lsl r2, r5 + 98f4: b040 st.w r2, (r0, 0x0) + 98f6: 9840 ld.w r2, (r14, 0x0) + 98f8: 9240 ld.w r2, (r2, 0x0) + 98fa: 9020 ld.w r1, (r0, 0x0) + 98fc: 6884 and r2, r1 + 98fe: b340 st.w r2, (r3, 0x0) + 9900: 9841 ld.w r2, (r14, 0x4) + 9902: 9240 ld.w r2, (r2, 0x0) + 9904: 9020 ld.w r1, (r0, 0x0) + 9906: 6848 and r1, r2 + 9908: 1156 lrw r2, 0x20000b8c // 99e0 + 990a: b220 st.w r1, (r2, 0x0) + 990c: 9822 ld.w r1, (r14, 0x8) + 990e: 9120 ld.w r1, (r1, 0x0) + 9910: 90c0 ld.w r6, (r0, 0x0) + 9912: 6984 and r6, r1 + 9914: 1134 lrw r1, 0x20000a2c // 99e4 + 9916: b1c0 st.w r6, (r1, 0x0) + 9918: 93e0 ld.w r7, (r3, 0x0) + 991a: 92c0 ld.w r6, (r2, 0x0) + 991c: 659e cmpne r7, r6 + 991e: 0807 bt 0x992c // 992c + 9920: 92e0 ld.w r7, (r2, 0x0) + 9922: 91c0 ld.w r6, (r1, 0x0) + 9924: 659e cmpne r7, r6 + 9926: 0803 bt 0x992c // 992c + 9928: 9340 ld.w r2, (r3, 0x0) + 992a: 040c br 0x9942 // 9942 + 992c: 92c0 ld.w r6, (r2, 0x0) + 992e: 3e40 cmpnei r6, 0 + 9930: 0c29 bf 0x9982 // 9982 + 9932: 91c0 ld.w r6, (r1, 0x0) + 9934: 3e40 cmpnei r6, 0 + 9936: 0c26 bf 0x9982 // 9982 + 9938: 92e0 ld.w r7, (r2, 0x0) + 993a: 91c0 ld.w r6, (r1, 0x0) + 993c: 659e cmpne r7, r6 + 993e: 0822 bt 0x9982 // 9982 + 9940: 9240 ld.w r2, (r2, 0x0) + 9942: 9420 ld.w r1, (r4, 0x0) + 9944: 6c84 or r2, r1 + 9946: 2500 addi r5, 1 + 9948: 3d51 cmpnei r5, 17 + 994a: b440 st.w r2, (r4, 0x0) + 994c: 0bd2 bt 0x98f0 // 98f0 + 994e: 9460 ld.w r3, (r4, 0x0) + 9950: 3b40 cmpnei r3, 0 + 9952: 1146 lrw r2, 0x20000b30 // 99e8 + 9954: 0c32 bf 0x99b8 // 99b8 + 9956: 9420 ld.w r1, (r4, 0x0) + 9958: 9260 ld.w r3, (r2, 0x0) + 995a: 64c6 cmpne r1, r3 + 995c: 0c06 bf 0x9968 // 9968 + 995e: 9460 ld.w r3, (r4, 0x0) + 9960: b260 st.w r3, (r2, 0x0) + 9962: 3200 movi r2, 0 + 9964: 1162 lrw r3, 0x20000946 // 99ec + 9966: a340 st.b r2, (r3, 0x0) + 9968: e3fff61a bsr 0x859c // 859c + 996c: 1161 lrw r3, 0x2000026c // 99f0 + 996e: 8360 ld.b r3, (r3, 0x0) + 9970: 640c cmphs r3, r0 + 9972: 0806 bt 0x997e // 997e + 9974: 3300 movi r3, 0 + 9976: b460 st.w r3, (r4, 0x0) + 9978: 3201 movi r2, 1 + 997a: 107d lrw r3, 0x20000946 // 99ec + 997c: a340 st.b r2, (r3, 0x0) + 997e: 1404 addi r14, r14, 16 + 9980: 1494 pop r4-r7, r15 + 9982: 93c0 ld.w r6, (r3, 0x0) + 9984: 3e40 cmpnei r6, 0 + 9986: 0c08 bf 0x9996 // 9996 + 9988: 92c0 ld.w r6, (r2, 0x0) + 998a: 3e40 cmpnei r6, 0 + 998c: 0c05 bf 0x9996 // 9996 + 998e: 93c0 ld.w r6, (r3, 0x0) + 9990: 9240 ld.w r2, (r2, 0x0) + 9992: 649a cmpne r6, r2 + 9994: 0fca bf 0x9928 // 9928 + 9996: 9340 ld.w r2, (r3, 0x0) + 9998: 3a40 cmpnei r2, 0 + 999a: 0c08 bf 0x99aa // 99aa + 999c: 9140 ld.w r2, (r1, 0x0) + 999e: 3a40 cmpnei r2, 0 + 99a0: 0c05 bf 0x99aa // 99aa + 99a2: 9340 ld.w r2, (r3, 0x0) + 99a4: 9120 ld.w r1, (r1, 0x0) + 99a6: 644a cmpne r2, r1 + 99a8: 0fc0 bf 0x9928 // 9928 + 99aa: 9843 ld.w r2, (r14, 0xc) + 99ac: 9220 ld.w r1, (r2, 0x0) + 99ae: 9440 ld.w r2, (r4, 0x0) + 99b0: 6885 andn r2, r1 + 99b2: 07ca br 0x9946 // 9946 + 99b4: b460 st.w r3, (r4, 0x0) + 99b6: 07cc br 0x994e // 994e + 99b8: b260 st.w r3, (r2, 0x0) + 99ba: 3100 movi r1, 0 + 99bc: 104c lrw r2, 0x20000946 // 99ec + 99be: a220 st.b r1, (r2, 0x0) + 99c0: 104d lrw r2, 0x20000a20 // 99f4 + 99c2: b260 st.w r3, (r2, 0x0) + 99c4: 07dd br 0x997e // 997e + 99c6: 0000 bkpt + 99c8: 20000928 .long 0x20000928 + 99cc: 200008bc .long 0x200008bc + 99d0: 200009a0 .long 0x200009a0 + 99d4: 20000a28 .long 0x20000a28 + 99d8: 20000b00 .long 0x20000b00 + 99dc: 20000ac8 .long 0x20000ac8 + 99e0: 20000b8c .long 0x20000b8c + 99e4: 20000a2c .long 0x20000a2c + 99e8: 20000b30 .long 0x20000b30 + 99ec: 20000946 .long 0x20000946 + 99f0: 2000026c .long 0x2000026c + 99f4: 20000a20 .long 0x20000a20 + +Disassembly of section .text.get_key_seq: + +000099f8 : + 99f8: 14c4 push r4-r7 + 99fa: 106c lrw r3, 0x20000268 // 9a28 + 99fc: 3200 movi r2, 0 + 99fe: 9380 ld.w r4, (r3, 0x0) + 9a00: 3000 movi r0, 0 + 9a02: 3300 movi r3, 0 + 9a04: 3501 movi r5, 1 + 9a06: 10ca lrw r6, 0x20000b34 // 9a2c + 9a08: 6c53 mov r1, r4 + 9a0a: 704d lsr r1, r3 + 9a0c: 6854 and r1, r5 + 9a0e: 3940 cmpnei r1, 0 + 9a10: 75cc zextb r7, r3 + 9a12: 0c06 bf 0x9a1e // 9a1e + 9a14: 5e28 addu r1, r6, r2 + 9a16: 2200 addi r2, 1 + 9a18: 2000 addi r0, 1 + 9a1a: a1e0 st.b r7, (r1, 0x0) + 9a1c: 7488 zextb r2, r2 + 9a1e: 2300 addi r3, 1 + 9a20: 3b51 cmpnei r3, 17 + 9a22: 0bf3 bt 0x9a08 // 9a08 + 9a24: 7400 zextb r0, r0 + 9a26: 1484 pop r4-r7 + 9a28: 20000268 .long 0x20000268 + 9a2c: 20000b34 .long 0x20000b34 + +Disassembly of section .text.CORET_CONFIG: + +00009a30 : + 9a30: 14d0 push r15 + 9a32: e3ffc93b bsr 0x2ca8 // 2ca8 + 9a36: 3180 movi r1, 128 + 9a38: 4124 lsli r1, r1, 4 + 9a3a: 3001 movi r0, 1 + 9a3c: e3ffc0b6 bsr 0x1ba8 // 1ba8 + 9a40: 1068 lrw r3, 0x20000064 // 9a60 + 9a42: 1049 lrw r2, 0x200002b8 // 9a64 + 9a44: 9360 ld.w r3, (r3, 0x0) + 9a46: 9240 ld.w r2, (r2, 0x0) + 9a48: b345 st.w r2, (r3, 0x14) + 9a4a: e3ffc95f bsr 0x2d08 // 2d08 + 9a4e: e3ffc94d bsr 0x2ce8 // 2ce8 + 9a52: e3ffc953 bsr 0x2cf8 // 2cf8 + 9a56: e3ffc941 bsr 0x2cd8 // 2cd8 + 9a5a: e3ffc933 bsr 0x2cc0 // 2cc0 + 9a5e: 1490 pop r15 + 9a60: 20000064 .long 0x20000064 + 9a64: 200002b8 .long 0x200002b8 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00009a68 : + 9a68: 1066 lrw r3, 0x20000054 // 9a80 + 9a6a: 3100 movi r1, 0 + 9a6c: 9300 ld.w r0, (r3, 0x0) + 9a6e: 3300 movi r3, 0 + 9a70: 4342 lsli r2, r3, 2 + 9a72: 2300 addi r3, 1 + 9a74: 6080 addu r2, r0 + 9a76: 3b51 cmpnei r3, 17 + 9a78: b220 st.w r1, (r2, 0x0) + 9a7a: b232 st.w r1, (r2, 0x48) + 9a7c: 0bfa bt 0x9a70 // 9a70 + 9a7e: 783c jmp r15 + 9a80: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_freq_para_init: + +00009a84 : + 9a84: 14d1 push r4, r15 + 9a86: 107e lrw r3, 0x20000239 // 9afc + 9a88: 8360 ld.b r3, (r3, 0x0) + 9a8a: 3b40 cmpnei r3, 0 + 9a8c: 080c bt 0x9aa4 // 9aa4 + 9a8e: 107d lrw r3, 0x20000070 // 9b00 + 9a90: 105d lrw r2, 0x20000bfc // 9b04 + 9a92: 932c ld.w r1, (r3, 0x30) + 9a94: b220 st.w r1, (r2, 0x0) + 9a96: 932d ld.w r1, (r3, 0x34) + 9a98: 105c lrw r2, 0x2000096c // 9b08 + 9a9a: b220 st.w r1, (r2, 0x0) + 9a9c: 934e ld.w r2, (r3, 0x38) + 9a9e: 107c lrw r3, 0x2000099c // 9b0c + 9aa0: b340 st.w r2, (r3, 0x0) + 9aa2: 1491 pop r4, r15 + 9aa4: 3b41 cmpnei r3, 1 + 9aa6: 0bfe bt 0x9aa2 // 9aa2 + 9aa8: 1076 lrw r3, 0x20000070 // 9b00 + 9aaa: 1057 lrw r2, 0x20000bfc // 9b04 + 9aac: 932d ld.w r1, (r3, 0x34) + 9aae: b220 st.w r1, (r2, 0x0) + 9ab0: 932d ld.w r1, (r3, 0x34) + 9ab2: 1056 lrw r2, 0x2000096c // 9b08 + 9ab4: b220 st.w r1, (r2, 0x0) + 9ab6: 934d ld.w r2, (r3, 0x34) + 9ab8: 3105 movi r1, 5 + 9aba: 1075 lrw r3, 0x2000099c // 9b0c + 9abc: b340 st.w r2, (r3, 0x0) + 9abe: 1075 lrw r3, 0x20000058 // 9b10 + 9ac0: 9380 ld.w r4, (r3, 0x0) + 9ac2: 1075 lrw r3, 0x20000290 // 9b14 + 9ac4: 8300 ld.b r0, (r3, 0x0) + 9ac6: e3ffcf63 bsr 0x398c // 398c <__udivsi3> + 9aca: 7400 zextb r0, r0 + 9acc: 1073 lrw r3, 0x2000023a // 9b18 + 9ace: b408 st.w r0, (r4, 0x20) + 9ad0: 8300 ld.b r0, (r3, 0x0) + 9ad2: 3804 cmphsi r0, 5 + 9ad4: 1072 lrw r3, 0x20000a24 // 9b1c + 9ad6: 0810 bt 0x9af6 // 9af6 + 9ad8: e3ffb912 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 9adc: 090d0703 .long 0x090d0703 + 9ae0: 000b .short 0x000b + 9ae2: 3296 movi r2, 150 + 9ae4: 4242 lsli r2, r2, 2 + 9ae6: ab40 st.h r2, (r3, 0x0) + 9ae8: 07dd br 0x9aa2 // 9aa2 + 9aea: 104e lrw r2, 0x5dc // 9b20 + 9aec: 07fd br 0x9ae6 // 9ae6 + 9aee: 104e lrw r2, 0x1194 // 9b24 + 9af0: 07fb br 0x9ae6 // 9ae6 + 9af2: 104e lrw r2, 0x1770 // 9b28 + 9af4: 07f9 br 0x9ae6 // 9ae6 + 9af6: 104e lrw r2, 0xbb8 // 9b2c + 9af8: 07f7 br 0x9ae6 // 9ae6 + 9afa: 0000 bkpt + 9afc: 20000239 .long 0x20000239 + 9b00: 20000070 .long 0x20000070 + 9b04: 20000bfc .long 0x20000bfc + 9b08: 2000096c .long 0x2000096c + 9b0c: 2000099c .long 0x2000099c + 9b10: 20000058 .long 0x20000058 + 9b14: 20000290 .long 0x20000290 + 9b18: 2000023a .long 0x2000023a + 9b1c: 20000a24 .long 0x20000a24 + 9b20: 000005dc .long 0x000005dc + 9b24: 00001194 .long 0x00001194 + 9b28: 00001770 .long 0x00001770 + 9b2c: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.tk_reserved_init: + +00009b30 : + 9b30: 1065 lrw r3, 0x2000005c // 9b44 + 9b32: 1046 lrw r2, 0xa67a6cc7 // 9b48 + 9b34: 9360 ld.w r3, (r3, 0x0) + 9b36: b356 st.w r2, (r3, 0x58) + 9b38: 1045 lrw r2, 0x21f1f04 // 9b4c + 9b3a: b355 st.w r2, (r3, 0x54) + 9b3c: 1045 lrw r2, 0x69966996 // 9b50 + 9b3e: 1066 lrw r3, 0x40011180 // 9b54 + 9b40: b35f st.w r2, (r3, 0x7c) + 9b42: 783c jmp r15 + 9b44: 2000005c .long 0x2000005c + 9b48: a67a6cc7 .long 0xa67a6cc7 + 9b4c: 021f1f04 .long 0x021f1f04 + 9b50: 69966996 .long 0x69966996 + 9b54: 40011180 .long 0x40011180 + +Disassembly of section .text.TKEYIntHandler: + +00009b58 : + 9b58: 1460 nie + 9b5a: 1462 ipush + 9b5c: 14d1 push r4, r15 + 9b5e: 1183 lrw r4, 0x20000070 // 9be8 + 9b60: 8460 ld.b r3, (r4, 0x0) + 9b62: 3b40 cmpnei r3, 0 + 9b64: 0815 bt 0x9b8e // 9b8e + 9b66: 3301 movi r3, 1 + 9b68: a460 st.b r3, (r4, 0x0) + 9b6a: 1161 lrw r3, 0x20000934 // 9bec + 9b6c: 8360 ld.b r3, (r3, 0x0) + 9b6e: 3b41 cmpnei r3, 1 + 9b70: 080f bt 0x9b8e // 9b8e + 9b72: 1140 lrw r2, 0x20000b45 // 9bf0 + 9b74: 8260 ld.b r3, (r2, 0x0) + 9b76: 2300 addi r3, 1 + 9b78: 74cc zextb r3, r3 + 9b7a: a260 st.b r3, (r2, 0x0) + 9b7c: 8260 ld.b r3, (r2, 0x0) + 9b7e: 3b43 cmpnei r3, 3 + 9b80: 0803 bt 0x9b86 // 9b86 + 9b82: 3300 movi r3, 0 + 9b84: a260 st.b r3, (r2, 0x0) + 9b86: e3fff4a5 bsr 0x84d0 // 84d0 + 9b8a: 3301 movi r3, 1 + 9b8c: a461 st.b r3, (r4, 0x1) + 9b8e: 107a lrw r3, 0x20000058 // 9bf4 + 9b90: 3101 movi r1, 1 + 9b92: 9360 ld.w r3, (r3, 0x0) + 9b94: 934a ld.w r2, (r3, 0x28) + 9b96: 6884 and r2, r1 + 9b98: 3a40 cmpnei r2, 0 + 9b9a: 0c02 bf 0x9b9e // 9b9e + 9b9c: b32c st.w r1, (r3, 0x30) + 9b9e: 934a ld.w r2, (r3, 0x28) + 9ba0: 3102 movi r1, 2 + 9ba2: 6884 and r2, r1 + 9ba4: 3a40 cmpnei r2, 0 + 9ba6: 0c02 bf 0x9baa // 9baa + 9ba8: b32c st.w r1, (r3, 0x30) + 9baa: 934a ld.w r2, (r3, 0x28) + 9bac: 3104 movi r1, 4 + 9bae: 6884 and r2, r1 + 9bb0: 3a40 cmpnei r2, 0 + 9bb2: 0c02 bf 0x9bb6 // 9bb6 + 9bb4: b32c st.w r1, (r3, 0x30) + 9bb6: 934a ld.w r2, (r3, 0x28) + 9bb8: 3108 movi r1, 8 + 9bba: 6884 and r2, r1 + 9bbc: 3a40 cmpnei r2, 0 + 9bbe: 0c02 bf 0x9bc2 // 9bc2 + 9bc0: b32c st.w r1, (r3, 0x30) + 9bc2: 934a ld.w r2, (r3, 0x28) + 9bc4: 3110 movi r1, 16 + 9bc6: 6884 and r2, r1 + 9bc8: 3a40 cmpnei r2, 0 + 9bca: 0c02 bf 0x9bce // 9bce + 9bcc: b32c st.w r1, (r3, 0x30) + 9bce: 934a ld.w r2, (r3, 0x28) + 9bd0: 3120 movi r1, 32 + 9bd2: 6884 and r2, r1 + 9bd4: 3a40 cmpnei r2, 0 + 9bd6: 0c02 bf 0x9bda // 9bda + 9bd8: b32c st.w r1, (r3, 0x30) + 9bda: d9ee2001 ld.w r15, (r14, 0x4) + 9bde: 9880 ld.w r4, (r14, 0x0) + 9be0: 1402 addi r14, r14, 8 + 9be2: 1463 ipop + 9be4: 1461 nir + 9be6: 0000 bkpt + 9be8: 20000070 .long 0x20000070 + 9bec: 20000934 .long 0x20000934 + 9bf0: 20000b45 .long 0x20000b45 + 9bf4: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +00009bf8 : + 9bf8: 1460 nie + 9bfa: 1462 ipush + 9bfc: 14d3 push r4-r6, r15 + 9bfe: 1269 lrw r3, 0x20000064 // 9d20 + 9c00: 3400 movi r4, 0 + 9c02: 9360 ld.w r3, (r3, 0x0) + 9c04: b386 st.w r4, (r3, 0x18) + 9c06: 1268 lrw r3, 0x20000934 // 9d24 + 9c08: 8360 ld.b r3, (r3, 0x0) + 9c0a: 3b41 cmpnei r3, 1 + 9c0c: 0840 bt 0x9c8c // 9c8c + 9c0e: e3fff6f5 bsr 0x89f8 // 89f8 + 9c12: e3fff727 bsr 0x8a60 // 8a60 + 9c16: e3fffb5d bsr 0x92d0 // 92d0 + 9c1a: e3fffbef bsr 0x93f8 // 93f8 + 9c1e: e3fff3c5 bsr 0x83a8 // 83a8 + 9c22: e3fffe53 bsr 0x98c8 // 98c8 + 9c26: 1261 lrw r3, 0x20000a28 // 9d28 + 9c28: 9360 ld.w r3, (r3, 0x0) + 9c2a: 3b40 cmpnei r3, 0 + 9c2c: 0c12 bf 0x9c50 // 9c50 + 9c2e: 1260 lrw r3, 0x2000023c // 9d2c + 9c30: 9340 ld.w r2, (r3, 0x0) + 9c32: 3a40 cmpnei r2, 0 + 9c34: 0c0e bf 0x9c50 // 9c50 + 9c36: 117f lrw r3, 0x20000a20 // 9d30 + 9c38: 3064 movi r0, 100 + 9c3a: 9320 ld.w r1, (r3, 0x0) + 9c3c: 2100 addi r1, 1 + 9c3e: b320 st.w r1, (r3, 0x0) + 9c40: 9320 ld.w r1, (r3, 0x0) + 9c42: 7c80 mult r2, r0 + 9c44: 6448 cmphs r2, r1 + 9c46: 0805 bt 0x9c50 // 9c50 + 9c48: 115b lrw r2, 0x200009cd // 9d34 + 9c4a: 3101 movi r1, 1 + 9c4c: a220 st.b r1, (r2, 0x0) + 9c4e: b380 st.w r4, (r3, 0x0) + 9c50: 117a lrw r3, 0x20000235 // 9d38 + 9c52: 8340 ld.b r2, (r3, 0x0) + 9c54: 3a41 cmpnei r2, 1 + 9c56: 0823 bt 0x9c9c // 9c9c + 9c58: 1139 lrw r1, 0x20000928 // 9d3c + 9c5a: 115a lrw r2, 0x200008bc // 9d40 + 9c5c: 9100 ld.w r0, (r1, 0x0) + 9c5e: 9260 ld.w r3, (r2, 0x0) + 9c60: 64c2 cmpne r0, r3 + 9c62: 1179 lrw r3, 0x20000ac4 // 9d44 + 9c64: 080a bt 0x9c78 // 9c78 + 9c66: 9280 ld.w r4, (r2, 0x0) + 9c68: 1158 lrw r2, 0x200009a0 // 9d48 + 9c6a: 9200 ld.w r0, (r2, 0x0) + 9c6c: 6412 cmpne r4, r0 + 9c6e: 0805 bt 0x9c78 // 9c78 + 9c70: 9120 ld.w r1, (r1, 0x0) + 9c72: 9240 ld.w r2, (r2, 0x0) + 9c74: 6486 cmpne r1, r2 + 9c76: 0c09 bf 0x9c88 // 9c88 + 9c78: 9340 ld.w r2, (r3, 0x0) + 9c7a: 2200 addi r2, 1 + 9c7c: b340 st.w r2, (r3, 0x0) + 9c7e: 1154 lrw r2, 0x20000090 // 9d4c + 9c80: 823c ld.b r1, (r2, 0x1c) + 9c82: 9340 ld.w r2, (r3, 0x0) + 9c84: 6484 cmphs r1, r2 + 9c86: 0803 bt 0x9c8c // 9c8c + 9c88: 3200 movi r2, 0 + 9c8a: b340 st.w r2, (r3, 0x0) + 9c8c: d9ee2003 ld.w r15, (r14, 0xc) + 9c90: 98c2 ld.w r6, (r14, 0x8) + 9c92: 98a1 ld.w r5, (r14, 0x4) + 9c94: 9880 ld.w r4, (r14, 0x0) + 9c96: 1404 addi r14, r14, 16 + 9c98: 1463 ipop + 9c9a: 1461 nir + 9c9c: 83a0 ld.b r5, (r3, 0x0) + 9c9e: 7554 zextb r5, r5 + 9ca0: 3d40 cmpnei r5, 0 + 9ca2: 0bf5 bt 0x9c8c // 9c8c + 9ca4: 1166 lrw r3, 0x20000928 // 9d3c + 9ca6: 1147 lrw r2, 0x200008bc // 9d40 + 9ca8: 9300 ld.w r0, (r3, 0x0) + 9caa: 9220 ld.w r1, (r2, 0x0) + 9cac: 6442 cmpne r0, r1 + 9cae: 1127 lrw r1, 0x200009a0 // 9d48 + 9cb0: 1105 lrw r0, 0x20000ac4 // 9d44 + 9cb2: 0c33 bf 0x9d18 // 9d18 + 9cb4: 92c0 ld.w r6, (r2, 0x0) + 9cb6: 9180 ld.w r4, (r1, 0x0) + 9cb8: 651a cmpne r6, r4 + 9cba: 0c2f bf 0x9d18 // 9d18 + 9cbc: 93c0 ld.w r6, (r3, 0x0) + 9cbe: 9180 ld.w r4, (r1, 0x0) + 9cc0: 651a cmpne r6, r4 + 9cc2: 0c2b bf 0x9d18 // 9d18 + 9cc4: 9080 ld.w r4, (r0, 0x0) + 9cc6: 2400 addi r4, 1 + 9cc8: b080 st.w r4, (r0, 0x0) + 9cca: 1181 lrw r4, 0x20000090 // 9d4c + 9ccc: 84dc ld.b r6, (r4, 0x1c) + 9cce: 9080 ld.w r4, (r0, 0x0) + 9cd0: 6518 cmphs r6, r4 + 9cd2: 0802 bt 0x9cd6 // 9cd6 + 9cd4: b0a0 st.w r5, (r0, 0x0) + 9cd6: 9380 ld.w r4, (r3, 0x0) + 9cd8: 9200 ld.w r0, (r2, 0x0) + 9cda: 6412 cmpne r4, r0 + 9cdc: 101d lrw r0, 0x20000b04 // 9d50 + 9cde: 0c04 bf 0x9ce6 // 9ce6 + 9ce0: 9180 ld.w r4, (r1, 0x0) + 9ce2: 3c40 cmpnei r4, 0 + 9ce4: 0c0f bf 0x9d02 // 9d02 + 9ce6: 93a0 ld.w r5, (r3, 0x0) + 9ce8: 9180 ld.w r4, (r1, 0x0) + 9cea: 6516 cmpne r5, r4 + 9cec: 0c04 bf 0x9cf4 // 9cf4 + 9cee: 9280 ld.w r4, (r2, 0x0) + 9cf0: 3c40 cmpnei r4, 0 + 9cf2: 0c08 bf 0x9d02 // 9d02 + 9cf4: 9120 ld.w r1, (r1, 0x0) + 9cf6: 9240 ld.w r2, (r2, 0x0) + 9cf8: 6486 cmpne r1, r2 + 9cfa: 0c0c bf 0x9d12 // 9d12 + 9cfc: 9360 ld.w r3, (r3, 0x0) + 9cfe: 3b40 cmpnei r3, 0 + 9d00: 0809 bt 0x9d12 // 9d12 + 9d02: 9060 ld.w r3, (r0, 0x0) + 9d04: 2300 addi r3, 1 + 9d06: b060 st.w r3, (r0, 0x0) + 9d08: 1071 lrw r3, 0x20000090 // 9d4c + 9d0a: 835c ld.b r2, (r3, 0x1c) + 9d0c: 9060 ld.w r3, (r0, 0x0) + 9d0e: 64c8 cmphs r2, r3 + 9d10: 0bbe bt 0x9c8c // 9c8c + 9d12: 3300 movi r3, 0 + 9d14: b060 st.w r3, (r0, 0x0) + 9d16: 07bb br 0x9c8c // 9c8c + 9d18: 3400 movi r4, 0 + 9d1a: b080 st.w r4, (r0, 0x0) + 9d1c: 07dd br 0x9cd6 // 9cd6 + 9d1e: 0000 bkpt + 9d20: 20000064 .long 0x20000064 + 9d24: 20000934 .long 0x20000934 + 9d28: 20000a28 .long 0x20000a28 + 9d2c: 2000023c .long 0x2000023c + 9d30: 20000a20 .long 0x20000a20 + 9d34: 200009cd .long 0x200009cd + 9d38: 20000235 .long 0x20000235 + 9d3c: 20000928 .long 0x20000928 + 9d40: 200008bc .long 0x200008bc + 9d44: 20000ac4 .long 0x20000ac4 + 9d48: 200009a0 .long 0x200009a0 + 9d4c: 20000090 .long 0x20000090 + 9d50: 20000b04 .long 0x20000b04 + +Disassembly of section .text.tk_init: + +00009d54 : + 9d54: 14d4 push r4-r7, r15 + 9d56: 142c subi r14, r14, 48 + 9d58: e3fffeec bsr 0x9b30 // 9b30 + 9d5c: e3ffc706 bsr 0x2b68 // 2b68 + 9d60: e3fffe92 bsr 0x9a84 // 9a84 + 9d64: e3fff288 bsr 0x8274 // 8274 + 9d68: 3200 movi r2, 0 + 9d6a: 3100 movi r1, 0 + 9d6c: 3001 movi r0, 1 + 9d6e: e3fff211 bsr 0x8190 // 8190 + 9d72: e3fffe7b bsr 0x9a68 // 9a68 + 9d76: e3fffe41 bsr 0x99f8 // 99f8 + 9d7a: 1191 lrw r4, 0x20000ae4 // 9e3c + 9d7c: 3101 movi r1, 1 + 9d7e: a400 st.b r0, (r4, 0x0) + 9d80: 8440 ld.b r2, (r4, 0x0) + 9d82: 1170 lrw r3, 0x200002b4 // 9e40 + 9d84: 8b60 ld.h r3, (r3, 0x0) + 9d86: b829 st.w r1, (r14, 0x24) + 9d88: 3180 movi r1, 128 + 9d8a: 412d lsli r1, r1, 13 + 9d8c: b828 st.w r1, (r14, 0x20) + 9d8e: 3180 movi r1, 128 + 9d90: 4129 lsli r1, r1, 9 + 9d92: b827 st.w r1, (r14, 0x1c) + 9d94: 3100 movi r1, 0 + 9d96: b826 st.w r1, (r14, 0x18) + 9d98: 2a00 subi r2, 1 + 9d9a: 110b lrw r0, 0x200002b6 // 9e44 + 9d9c: 8800 ld.h r0, (r0, 0x0) + 9d9e: b805 st.w r0, (r14, 0x14) + 9da0: 7488 zextb r2, r2 + 9da2: 110a lrw r0, 0x200002bc // 9e48 + 9da4: 8800 ld.h r0, (r0, 0x0) + 9da6: b804 st.w r0, (r14, 0x10) + 9da8: 3080 movi r0, 128 + 9daa: 4005 lsli r0, r0, 5 + 9dac: b803 st.w r0, (r14, 0xc) + 9dae: 3080 movi r0, 128 + 9db0: 4004 lsli r0, r0, 4 + 9db2: b802 st.w r0, (r14, 0x8) + 9db4: b821 st.w r1, (r14, 0x4) + 9db6: b820 st.w r1, (r14, 0x0) + 9db8: 3001 movi r0, 1 + 9dba: 3102 movi r1, 2 + 9dbc: e3fff1fe bsr 0x81b8 // 81b8 + 9dc0: 3002 movi r0, 2 + 9dc2: e3fff1df bsr 0x8180 // 8180 + 9dc6: 3020 movi r0, 32 + 9dc8: e3fff1dc bsr 0x8180 // 8180 + 9dcc: 3380 movi r3, 128 + 9dce: 4372 lsli r3, r3, 18 + 9dd0: 105f lrw r2, 0xe000e100 // 9e4c + 9dd2: b260 st.w r3, (r2, 0x0) + 9dd4: b270 st.w r3, (r2, 0x40) + 9dd6: 10ff lrw r7, 0x20000078 // 9e50 + 9dd8: 107f lrw r3, 0x20000054 // 9e54 + 9dda: 11a0 lrw r5, 0x20000b34 // 9e58 + 9ddc: 11c0 lrw r6, 0x2000026e // 9e5c + 9dde: 9360 ld.w r3, (r3, 0x0) + 9de0: b86a st.w r3, (r14, 0x28) + 9de2: b88b st.w r4, (r14, 0x2c) + 9de4: 3300 movi r3, 0 + 9de6: 984b ld.w r2, (r14, 0x2c) + 9de8: 8240 ld.b r2, (r2, 0x0) + 9dea: 648c cmphs r3, r2 + 9dec: 0c09 bf 0x9dfe // 9dfe + 9dee: e3fffe21 bsr 0x9a30 // 9a30 + 9df2: e3fff425 bsr 0x863c // 863c + 9df6: e3fff56f bsr 0x88d4 // 88d4 + 9dfa: 140c addi r14, r14, 48 + 9dfc: 1494 pop r4-r7, r15 + 9dfe: 5d0c addu r0, r5, r3 + 9e00: 8020 ld.b r1, (r0, 0x0) + 9e02: 8040 ld.b r2, (r0, 0x0) + 9e04: 8080 ld.b r4, (r0, 0x0) + 9e06: 8000 ld.b r0, (r0, 0x0) + 9e08: 4001 lsli r0, r0, 1 + 9e0a: 6018 addu r0, r6 + 9e0c: 4121 lsli r1, r1, 1 + 9e0e: 8800 ld.h r0, (r0, 0x0) + 9e10: 605c addu r1, r7 + 9e12: 448f lsli r4, r4, 15 + 9e14: 6d00 or r4, r0 + 9e16: 4241 lsli r2, r2, 1 + 9e18: 8900 ld.h r0, (r1, 0x0) + 9e1a: 1032 lrw r1, 0x20000242 // 9e60 + 9e1c: 6084 addu r2, r1 + 9e1e: 4018 lsli r0, r0, 24 + 9e20: 6c10 or r0, r4 + 9e22: 8a80 ld.h r4, (r2, 0x0) + 9e24: 3212 movi r2, 18 + 9e26: 608c addu r2, r3 + 9e28: 4494 lsli r4, r4, 20 + 9e2a: 4242 lsli r2, r2, 2 + 9e2c: 982a ld.w r1, (r14, 0x28) + 9e2e: 6c10 or r0, r4 + 9e30: 6084 addu r2, r1 + 9e32: 2300 addi r3, 1 + 9e34: b200 st.w r0, (r2, 0x0) + 9e36: 74cc zextb r3, r3 + 9e38: 07d7 br 0x9de6 // 9de6 + 9e3a: 0000 bkpt + 9e3c: 20000ae4 .long 0x20000ae4 + 9e40: 200002b4 .long 0x200002b4 + 9e44: 200002b6 .long 0x200002b6 + 9e48: 200002bc .long 0x200002bc + 9e4c: e000e100 .long 0xe000e100 + 9e50: 20000078 .long 0x20000078 + 9e54: 20000054 .long 0x20000054 + 9e58: 20000b34 .long 0x20000b34 + 9e5c: 2000026e .long 0x2000026e + 9e60: 20000242 .long 0x20000242 + +Disassembly of section .text.std_clk_calib: + +00009e64 : + 9e64: 14d4 push r4-r7, r15 + 9e66: 142d subi r14, r14, 52 + 9e68: 3201 movi r2, 1 + 9e6a: 03ce lrw r6, 0x2000005c // a0ac + 9e6c: 6cc3 mov r3, r0 + 9e6e: dc4e000a st.b r2, (r14, 0xa) + 9e72: 9640 ld.w r2, (r6, 0x0) + 9e74: 9247 ld.w r2, (r2, 0x1c) + 9e76: 7488 zextb r2, r2 + 9e78: dc4e0009 st.b r2, (r14, 0x9) + 9e7c: d84e0009 ld.b r2, (r14, 0x9) + 9e80: 3a40 cmpnei r2, 0 + 9e82: 0c08 bf 0x9e92 // 9e92 + 9e84: d84e0009 ld.b r2, (r14, 0x9) + 9e88: 3a42 cmpnei r2, 2 + 9e8a: 0c04 bf 0x9e92 // 9e92 + 9e8c: 3000 movi r0, 0 + 9e8e: 140d addi r14, r14, 52 + 9e90: 1494 pop r4-r7, r15 + 9e92: 0397 lrw r4, 0x2000000c // a0b0 + 9e94: 3209 movi r2, 9 + 9e96: 9400 ld.w r0, (r4, 0x0) + 9e98: 3b40 cmpnei r3, 0 + 9e9a: b041 st.w r2, (r0, 0x4) + 9e9c: 0857 bt 0x9f4a // 9f4a + 9e9e: 3307 movi r3, 7 + 9ea0: dc6e000b st.b r3, (r14, 0xb) + 9ea4: 037b lrw r3, 0x2dc6c00 // a0b4 + 9ea6: b863 st.w r3, (r14, 0xc) + 9ea8: 3380 movi r3, 128 + 9eaa: 4362 lsli r3, r3, 2 + 9eac: b867 st.w r3, (r14, 0x1c) + 9eae: d86e000b ld.b r3, (r14, 0xb) + 9eb2: 74cc zextb r3, r3 + 9eb4: b062 st.w r3, (r0, 0x8) + 9eb6: 037e lrw r3, 0xffff // a0b8 + 9eb8: b063 st.w r3, (r0, 0xc) + 9eba: 3201 movi r2, 1 + 9ebc: 3101 movi r1, 1 + 9ebe: 03bf lrw r5, 0x20000014 // a0bc + 9ec0: e3ffc21e bsr 0x22fc // 22fc + 9ec4: 95e0 ld.w r7, (r5, 0x0) + 9ec6: 137f lrw r3, 0xbe9c0005 // a0c0 + 9ec8: b760 st.w r3, (r7, 0x0) + 9eca: 135f lrw r2, 0x30010 // a0c4 + 9ecc: 3300 movi r3, 0 + 9ece: b762 st.w r3, (r7, 0x8) + 9ed0: b743 st.w r2, (r7, 0xc) + 9ed2: 32d8 movi r2, 216 + 9ed4: b745 st.w r2, (r7, 0x14) + 9ed6: 974f ld.w r2, (r7, 0x3c) + 9ed8: 3aa2 bseti r2, 2 + 9eda: b74f st.w r2, (r7, 0x3c) + 9edc: 9803 ld.w r0, (r14, 0xc) + 9ede: d82e000b ld.b r1, (r14, 0xb) + 9ee2: 327d movi r2, 125 + 9ee4: 2100 addi r1, 1 + 9ee6: 7c48 mult r1, r2 + 9ee8: b861 st.w r3, (r14, 0x4) + 9eea: e3ffcd51 bsr 0x398c // 398c <__udivsi3> + 9eee: b804 st.w r0, (r14, 0x10) + 9ef0: 32fa movi r2, 250 + 9ef2: 9824 ld.w r1, (r14, 0x10) + 9ef4: 4242 lsli r2, r2, 2 + 9ef6: 6448 cmphs r2, r1 + 9ef8: 0bca bt 0x9e8c // 9e8c + 9efa: 9844 ld.w r2, (r14, 0x10) + 9efc: 3178 movi r1, 120 + 9efe: 9804 ld.w r0, (r14, 0x10) + 9f00: b840 st.w r2, (r14, 0x0) + 9f02: e3ffcd45 bsr 0x398c // 398c <__udivsi3> + 9f06: 9840 ld.w r2, (r14, 0x0) + 9f08: 6082 subu r2, r0 + 9f0a: b845 st.w r2, (r14, 0x14) + 9f0c: 9804 ld.w r0, (r14, 0x10) + 9f0e: 3178 movi r1, 120 + 9f10: 9844 ld.w r2, (r14, 0x10) + 9f12: b840 st.w r2, (r14, 0x0) + 9f14: e3ffcd3c bsr 0x398c // 398c <__udivsi3> + 9f18: 9840 ld.w r2, (r14, 0x0) + 9f1a: 6008 addu r0, r2 + 9f1c: b806 st.w r0, (r14, 0x18) + 9f1e: c0807020 psrclr ie + 9f22: 9640 ld.w r2, (r6, 0x0) + 9f24: 9254 ld.w r2, (r2, 0x50) + 9f26: b848 st.w r2, (r14, 0x20) + 9f28: 9861 ld.w r3, (r14, 0x4) + 9f2a: 9440 ld.w r2, (r4, 0x0) + 9f2c: b260 st.w r3, (r2, 0x0) + 9f2e: b761 st.w r3, (r7, 0x4) + 9f30: d86e000a ld.b r3, (r14, 0xa) + 9f34: 3b40 cmpnei r3, 0 + 9f36: 083e bt 0x9fb2 // 9fb2 + 9f38: e3ffc194 bsr 0x2260 // 2260 + 9f3c: 9400 ld.w r0, (r4, 0x0) + 9f3e: e3ffc1b5 bsr 0x22a8 // 22a8 + 9f42: c1807420 psrset ee, ie + 9f46: 3001 movi r0, 1 + 9f48: 07a3 br 0x9e8e // 9e8e + 9f4a: 3b41 cmpnei r3, 1 + 9f4c: 0806 bt 0x9f58 // 9f58 + 9f4e: 3303 movi r3, 3 + 9f50: dc6e000b st.b r3, (r14, 0xb) + 9f54: 127d lrw r3, 0x16e3600 // a0c8 + 9f56: 07a8 br 0x9ea6 // 9ea6 + 9f58: 3b42 cmpnei r3, 2 + 9f5a: 0806 bt 0x9f66 // 9f66 + 9f5c: 3301 movi r3, 1 + 9f5e: dc6e000b st.b r3, (r14, 0xb) + 9f62: 127b lrw r3, 0xb71b00 // a0cc + 9f64: 07a1 br 0x9ea6 // 9ea6 + 9f66: 3b43 cmpnei r3, 3 + 9f68: 0806 bt 0x9f74 // 9f74 + 9f6a: 3300 movi r3, 0 + 9f6c: dc6e000b st.b r3, (r14, 0xb) + 9f70: 1278 lrw r3, 0x5b8d80 // a0d0 + 9f72: 079a br 0x9ea6 // 9ea6 + 9f74: 3b44 cmpnei r3, 4 + 9f76: 0809 bt 0x9f88 // 9f88 + 9f78: 3300 movi r3, 0 + 9f7a: dc6e000b st.b r3, (r14, 0xb) + 9f7e: 1276 lrw r3, 0x54c720 // a0d4 + 9f80: b863 st.w r3, (r14, 0xc) + 9f82: 3380 movi r3, 128 + 9f84: 4369 lsli r3, r3, 9 + 9f86: 0793 br 0x9eac // 9eac + 9f88: 3b45 cmpnei r3, 5 + 9f8a: 0806 bt 0x9f96 // 9f96 + 9f8c: 3300 movi r3, 0 + 9f8e: dc6e000b st.b r3, (r14, 0xb) + 9f92: 1272 lrw r3, 0x3ffed0 // a0d8 + 9f94: 07f6 br 0x9f80 // 9f80 + 9f96: 3b46 cmpnei r3, 6 + 9f98: 0806 bt 0x9fa4 // 9fa4 + 9f9a: 3300 movi r3, 0 + 9f9c: dc6e000b st.b r3, (r14, 0xb) + 9fa0: 126f lrw r3, 0x1fff68 // a0dc + 9fa2: 07ef br 0x9f80 // 9f80 + 9fa4: 3b47 cmpnei r3, 7 + 9fa6: 0b84 bt 0x9eae // 9eae + 9fa8: 3300 movi r3, 0 + 9faa: dc6e000b st.b r3, (r14, 0xb) + 9fae: 126d lrw r3, 0x1ffb8 // a0e0 + 9fb0: 07e8 br 0x9f80 // 9f80 + 9fb2: 9560 ld.w r3, (r5, 0x0) + 9fb4: 3101 movi r1, 1 + 9fb6: 9440 ld.w r2, (r4, 0x0) + 9fb8: b321 st.w r1, (r3, 0x4) + 9fba: b220 st.w r1, (r2, 0x0) + 9fbc: 3100 movi r1, 0 + 9fbe: b327 st.w r1, (r3, 0x1c) + 9fc0: 3004 movi r0, 4 + 9fc2: b225 st.w r1, (r2, 0x14) + 9fc4: 932e ld.w r1, (r3, 0x38) + 9fc6: 6840 and r1, r0 + 9fc8: 3940 cmpnei r1, 0 + 9fca: 0ffd bf 0x9fc4 // 9fc4 + 9fcc: 9225 ld.w r1, (r2, 0x14) + 9fce: b82a st.w r1, (r14, 0x28) + 9fd0: 3100 movi r1, 0 + 9fd2: b310 st.w r0, (r3, 0x40) + 9fd4: b327 st.w r1, (r3, 0x1c) + 9fd6: 3004 movi r0, 4 + 9fd8: b225 st.w r1, (r2, 0x14) + 9fda: 932e ld.w r1, (r3, 0x38) + 9fdc: 6840 and r1, r0 + 9fde: 3940 cmpnei r1, 0 + 9fe0: 0ffd bf 0x9fda // 9fda + 9fe2: 9225 ld.w r1, (r2, 0x14) + 9fe4: b82b st.w r1, (r14, 0x2c) + 9fe6: 3100 movi r1, 0 + 9fe8: b310 st.w r0, (r3, 0x40) + 9fea: b327 st.w r1, (r3, 0x1c) + 9fec: 3004 movi r0, 4 + 9fee: b225 st.w r1, (r2, 0x14) + 9ff0: 932e ld.w r1, (r3, 0x38) + 9ff2: 6840 and r1, r0 + 9ff4: 3940 cmpnei r1, 0 + 9ff6: 0ffd bf 0x9ff0 // 9ff0 + 9ff8: 9225 ld.w r1, (r2, 0x14) + 9ffa: b82c st.w r1, (r14, 0x30) + 9ffc: b310 st.w r0, (r3, 0x40) + 9ffe: 982b ld.w r1, (r14, 0x2c) + a000: 980c ld.w r0, (r14, 0x30) + a002: 6040 addu r1, r0 + a004: b829 st.w r1, (r14, 0x24) + a006: 9829 ld.w r1, (r14, 0x24) + a008: 4921 lsri r1, r1, 1 + a00a: b829 st.w r1, (r14, 0x24) + a00c: 3100 movi r1, 0 + a00e: b321 st.w r1, (r3, 0x4) + a010: b220 st.w r1, (r2, 0x0) + a012: b327 st.w r1, (r3, 0x1c) + a014: b225 st.w r1, (r2, 0x14) + a016: d86e0009 ld.b r3, (r14, 0x9) + a01a: 3b42 cmpnei r3, 2 + a01c: 9849 ld.w r2, (r14, 0x24) + a01e: 082c bt 0xa076 // a076 + a020: 1171 lrw r3, 0x7ff // a0e4 + a022: 648c cmphs r3, r2 + a024: 0c03 bf 0xa02a // a02a + a026: 3300 movi r3, 0 + a028: 040f br 0xa046 // a046 + a02a: 9849 ld.w r2, (r14, 0x24) + a02c: 9866 ld.w r3, (r14, 0x18) + a02e: 648c cmphs r3, r2 + a030: 080e bt 0xa04c // a04c + a032: 9868 ld.w r3, (r14, 0x20) + a034: 9847 ld.w r2, (r14, 0x1c) + a036: 60ca subu r3, r2 + a038: b868 st.w r3, (r14, 0x20) + a03a: 32fe movi r2, 254 + a03c: 9868 ld.w r3, (r14, 0x20) + a03e: 4248 lsli r2, r2, 8 + a040: 68c8 and r3, r2 + a042: 3b40 cmpnei r3, 0 + a044: 0812 bt 0xa068 // a068 + a046: dc6e000a st.b r3, (r14, 0xa) + a04a: 0721 br 0x9e8c // 9e8c + a04c: 9849 ld.w r2, (r14, 0x24) + a04e: 9865 ld.w r3, (r14, 0x14) + a050: 64c8 cmphs r2, r3 + a052: 0829 bt 0xa0a4 // a0a4 + a054: 9868 ld.w r3, (r14, 0x20) + a056: 9847 ld.w r2, (r14, 0x1c) + a058: 60c8 addu r3, r2 + a05a: b868 st.w r3, (r14, 0x20) + a05c: 33fe movi r3, 254 + a05e: 9848 ld.w r2, (r14, 0x20) + a060: 4368 lsli r3, r3, 8 + a062: 688c and r2, r3 + a064: 64ca cmpne r2, r3 + a066: 0fe0 bf 0xa026 // a026 + a068: 9660 ld.w r3, (r6, 0x0) + a06a: 9848 ld.w r2, (r14, 0x20) + a06c: b354 st.w r2, (r3, 0x50) + a06e: 3001 movi r0, 1 + a070: e3ffc67e bsr 0x2d6c // 2d6c + a074: 075e br 0x9f30 // 9f30 + a076: 9866 ld.w r3, (r14, 0x18) + a078: 648c cmphs r3, r2 + a07a: 0809 bt 0xa08c // a08c + a07c: 9868 ld.w r3, (r14, 0x20) + a07e: 9847 ld.w r2, (r14, 0x1c) + a080: 60ca subu r3, r2 + a082: b868 st.w r3, (r14, 0x20) + a084: 32ff movi r2, 255 + a086: 9868 ld.w r3, (r14, 0x20) + a088: 4250 lsli r2, r2, 16 + a08a: 07db br 0xa040 // a040 + a08c: 9849 ld.w r2, (r14, 0x24) + a08e: 9865 ld.w r3, (r14, 0x14) + a090: 64c8 cmphs r2, r3 + a092: 0809 bt 0xa0a4 // a0a4 + a094: 9868 ld.w r3, (r14, 0x20) + a096: 9847 ld.w r2, (r14, 0x1c) + a098: 60c8 addu r3, r2 + a09a: b868 st.w r3, (r14, 0x20) + a09c: 33ff movi r3, 255 + a09e: 9848 ld.w r2, (r14, 0x20) + a0a0: 4370 lsli r3, r3, 16 + a0a2: 07e0 br 0xa062 // a062 + a0a4: 3300 movi r3, 0 + a0a6: dc6e000a st.b r3, (r14, 0xa) + a0aa: 07e2 br 0xa06e // a06e + a0ac: 2000005c .long 0x2000005c + a0b0: 2000000c .long 0x2000000c + a0b4: 02dc6c00 .long 0x02dc6c00 + a0b8: 0000ffff .long 0x0000ffff + a0bc: 20000014 .long 0x20000014 + a0c0: be9c0005 .long 0xbe9c0005 + a0c4: 00030010 .long 0x00030010 + a0c8: 016e3600 .long 0x016e3600 + a0cc: 00b71b00 .long 0x00b71b00 + a0d0: 005b8d80 .long 0x005b8d80 + a0d4: 0054c720 .long 0x0054c720 + a0d8: 003ffed0 .long 0x003ffed0 + a0dc: 001fff68 .long 0x001fff68 + a0e0: 0001ffb8 .long 0x0001ffb8 + a0e4: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250513.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250513.map new file mode 100644 index 0000000..c49dd2c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_20250513.map @@ -0,0 +1,3427 @@ +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: 570176 (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: 291 + Section header string table index: 288 + +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 001aae 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001ab0 002ab0 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001ae8 002ae8 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001b5c 002b5c 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001ba8 002ba8 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001bd8 002bd8 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001c60 002c60 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001c88 002c88 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001cc4 002cc4 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001cd8 002cd8 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001cf0 002cf0 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001d10 002d10 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001d2c 002d2c 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001d48 002d48 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 00001d88 002d88 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00001dbc 002dbc 000004 00 AX 0 0 2 + [17] .text.EXI3_Int_En PROGBITS 00001dc0 002dc0 000010 00 AX 0 0 4 + [18] .text.EXI4_Int_En PROGBITS 00001dd0 002dd0 000010 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00001de0 002de0 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Int_ PROGBITS 00001dec 002dec 00000c 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 00001df8 002df8 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 00001e1c 002e1c 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 00001e4c 002e4c 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 00001eb0 002eb0 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 00001f90 002f90 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00001fa4 002fa4 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00001fb4 002fb4 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 000020c0 0030c0 0000fc 00 AX 0 0 4 + [29] .text.GPIOB0_EXI_ PROGBITS 000021bc 0031bc 00006c 00 AX 0 0 4 + [30] .text.GPIO_Write_ PROGBITS 00002228 003228 000008 00 AX 0 0 2 + [31] .text.GPIO_Write_ PROGBITS 00002230 003230 000008 00 AX 0 0 2 + [32] .text.GPIO_Revers PROGBITS 00002238 003238 000016 00 AX 0 0 2 + [33] .text.GPIO_Read_S PROGBITS 0000224e 00324e 000010 00 AX 0 0 2 + [34] .text.LPT_Soft_Re PROGBITS 00002260 003260 000014 00 AX 0 0 4 + [35] .text.WWDT_CNT_Lo PROGBITS 00002274 003274 000010 00 AX 0 0 4 + [36] .text.BT_DeInit PROGBITS 00002284 003284 00001c 00 AX 0 0 2 + [37] .text.BT_Start PROGBITS 000022a0 0032a0 000008 00 AX 0 0 2 + [38] .text.BT_Soft_Res PROGBITS 000022a8 0032a8 00000a 00 AX 0 0 2 + [39] .text.BT_Configur PROGBITS 000022b2 0032b2 000018 00 AX 0 0 2 + [40] .text.BT_ControlS PROGBITS 000022ca 0032ca 00002c 00 AX 0 0 2 + [41] .text.BT_Period_C PROGBITS 000022f6 0032f6 000006 00 AX 0 0 2 + [42] .text.BT_ConfigIn PROGBITS 000022fc 0032fc 000012 00 AX 0 0 2 + [43] .text.BT1_INT_ENA PROGBITS 00002310 003310 000010 00 AX 0 0 4 + [44] .text.SIO_DeInit PROGBITS 00002320 003320 000020 00 AX 0 0 4 + [45] .text.SIO_IO_Init PROGBITS 00002340 003340 000060 00 AX 0 0 4 + [46] .text.SIO_TX_Init PROGBITS 000023a0 0033a0 000010 00 AX 0 0 4 + [47] .text.SIO_TX_Conf PROGBITS 000023b0 0033b0 000050 00 AX 0 0 4 + [48] .text.UART0_DeIni PROGBITS 00002400 003400 000018 00 AX 0 0 4 + [49] .text.UART1_DeIni PROGBITS 00002418 003418 000018 00 AX 0 0 4 + [50] .text.UART2_DeIni PROGBITS 00002430 003430 000018 00 AX 0 0 4 + [51] .text.UART0_Int_E PROGBITS 00002448 003448 00001c 00 AX 0 0 4 + [52] .text.UART2_Int_E PROGBITS 00002464 003464 00001c 00 AX 0 0 4 + [53] .text.UART_IO_Ini PROGBITS 00002480 003480 0000ec 00 AX 0 0 4 + [54] .text.UARTInit PROGBITS 0000256c 00356c 000010 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 0000257c 00357c 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 0000258c 00358c 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 000025ac 0035ac 000028 00 AX 0 0 4 + [58] .text.ADC12_RESET PROGBITS 000025d4 0035d4 000064 00 AX 0 0 4 + [59] .text.ADC12_Contr PROGBITS 00002638 003638 000010 00 AX 0 0 4 + [60] .text.ADC12_CMD.p PROGBITS 00002648 003648 000020 00 AX 0 0 4 + [61] .text.ADC12_CLK_C PROGBITS 00002668 003668 00002c 00 AX 0 0 4 + [62] .text.ADC12_Softw PROGBITS 00002694 003694 00000a 00 AX 0 0 2 + [63] .text.ADC12_CMD PROGBITS 000026a0 0036a0 000028 00 AX 0 0 4 + [64] .text.ADC12_ready PROGBITS 000026c8 0036c8 000014 00 AX 0 0 4 + [65] .text.ADC12_SEQEN PROGBITS 000026dc 0036dc 000018 00 AX 0 0 4 + [66] .text.ADC12_DATA_ PROGBITS 000026f4 0036f4 000014 00 AX 0 0 4 + [67] .text.ADC12_Confi PROGBITS 00002708 003708 00007c 00 AX 0 0 4 + [68] .text.ADC12_Confi PROGBITS 00002784 003784 000198 00 AX 0 0 4 + [69] .text.ADC12_Conve PROGBITS 0000291c 00391c 000180 00 AX 0 0 4 + [70] .text.Page_Progra PROGBITS 00002a9c 003a9c 0000a0 00 AX 0 0 4 + [71] .text.ReadDataArr PROGBITS 00002b3c 003b3c 00002a 00 AX 0 0 2 + [72] .text.tk_paramete PROGBITS 00002b68 003b68 000140 00 AX 0 0 4 + [73] .text.CORET_DeIni PROGBITS 00002ca8 003ca8 000018 00 AX 0 0 4 + [74] .text.CORET_Int_E PROGBITS 00002cc0 003cc0 000018 00 AX 0 0 4 + [75] .text.CORET_start PROGBITS 00002cd8 003cd8 000010 00 AX 0 0 4 + [76] .text.CORET_CLKSO PROGBITS 00002ce8 003ce8 000010 00 AX 0 0 4 + [77] .text.CORET_TICKI PROGBITS 00002cf8 003cf8 000010 00 AX 0 0 4 + [78] .text.CORET_reloa PROGBITS 00002d08 003d08 000010 00 AX 0 0 4 + [79] .text.startup.mai PROGBITS 00002d18 003d18 000054 00 AX 0 0 4 + [80] .text.delay_nms PROGBITS 00002d6c 003d6c 00002c 00 AX 0 0 2 + [81] .text.delay_nus PROGBITS 00002d98 003d98 000022 00 AX 0 0 2 + [82] .text.GPIO_CONFIG PROGBITS 00002dbc 003dbc 00008c 00 AX 0 0 4 + [83] .text.BT_CONFIG PROGBITS 00002e48 003e48 000060 00 AX 0 0 4 + [84] .text.SYSCON_CONF PROGBITS 00002ea8 003ea8 000062 00 AX 0 0 2 + [85] .text.APT32F102_i PROGBITS 00002f0c 003f0c 00009c 00 AX 0 0 4 + [86] .text.SYSCONIntHa PROGBITS 00002fa8 003fa8 0000f0 00 AX 0 0 4 + [87] .text.IFCIntHandl PROGBITS 00003098 004098 000068 00 AX 0 0 4 + [88] .text.ADCIntHandl PROGBITS 00003100 004100 000068 00 AX 0 0 4 + [89] .text.EPT0IntHand PROGBITS 00003168 004168 0001ac 00 AX 0 0 4 + [90] .text.WWDTHandler PROGBITS 00003314 004314 000034 00 AX 0 0 4 + [91] .text.GPT0IntHand PROGBITS 00003348 004348 000080 00 AX 0 0 4 + [92] .text.RTCIntHandl PROGBITS 000033c8 0043c8 000070 00 AX 0 0 4 + [93] .text.UART0IntHan PROGBITS 00003438 004438 00003c 00 AX 0 0 4 + [94] .text.UART1IntHan PROGBITS 00003474 004474 00003c 00 AX 0 0 4 + [95] .text.UART2IntHan PROGBITS 000034b0 0044b0 000094 00 AX 0 0 4 + [96] .text.SPI0IntHand PROGBITS 00003544 004544 0000e8 00 AX 0 0 4 + [97] .text.SIO0IntHand PROGBITS 0000362c 00462c 000054 00 AX 0 0 4 + [98] .text.EXI0IntHand PROGBITS 00003680 004680 000030 00 AX 0 0 4 + [99] .text.EXI1IntHand PROGBITS 000036b0 0046b0 000030 00 AX 0 0 4 + [100] .text.EXI2to3IntH PROGBITS 000036e0 0046e0 000048 00 AX 0 0 4 + [101] .text.EXI4to9IntH PROGBITS 00003728 004728 00006c 00 AX 0 0 4 + [102] .text.EXI10to15In PROGBITS 00003794 004794 000080 00 AX 0 0 4 + [103] .text.LPTIntHandl PROGBITS 00003814 004814 000034 00 AX 0 0 4 + [104] .text.BT0IntHandl PROGBITS 00003848 004848 00004c 00 AX 0 0 4 + [105] .text.BT1IntHandl PROGBITS 00003894 004894 000070 00 AX 0 0 4 + [106] .text.PriviledgeV PROGBITS 00003904 004904 000002 00 AX 0 0 2 + [107] .text.PendTrapHan PROGBITS 00003906 004906 000008 00 AX 0 0 2 + [108] .text.Trap3Handle PROGBITS 0000390e 00490e 000008 00 AX 0 0 2 + [109] .text.Trap2Handle PROGBITS 00003916 004916 000008 00 AX 0 0 2 + [110] .text.Trap1Handle PROGBITS 0000391e 00491e 000008 00 AX 0 0 2 + [111] .text.Trap0Handle PROGBITS 00003926 004926 000008 00 AX 0 0 2 + [112] .text.UnrecExecpH PROGBITS 0000392e 00492e 000008 00 AX 0 0 2 + [113] .text.BreakPointH PROGBITS 00003936 004936 000008 00 AX 0 0 2 + [114] .text.AccessErrHa PROGBITS 0000393e 00493e 000008 00 AX 0 0 2 + [115] .text.IllegalInst PROGBITS 00003946 004946 000008 00 AX 0 0 2 + [116] .text.MisalignedH PROGBITS 0000394e 00494e 000008 00 AX 0 0 2 + [117] .text.CNTAIntHand PROGBITS 00003956 004956 000008 00 AX 0 0 2 + [118] .text.I2CIntHandl PROGBITS 0000395e 00495e 000008 00 AX 0 0 2 + [119] .text.__divsi3 PROGBITS 00003968 004968 000024 00 AX 0 0 4 + [120] .text.__udivsi3 PROGBITS 0000398c 00498c 000024 00 AX 0 0 4 + [121] .text.__modsi3 PROGBITS 000039b0 0049b0 000024 00 AX 0 0 4 + [122] .text.__umodsi3 PROGBITS 000039d4 0049d4 000024 00 AX 0 0 4 + [123] .text.CK_CPU_EnAl PROGBITS 000039f8 0049f8 000006 00 AX 0 0 2 + [124] .text.CK_CPU_DisA PROGBITS 000039fe 0049fe 000006 00 AX 0 0 2 + [125] .text.UARTx_Init PROGBITS 00003a04 004a04 000108 00 AX 0 0 4 + [126] .text.UART2_RecvI PROGBITS 00003b0c 004b0c 000044 00 AX 0 0 4 + [127] .text.UART2_TASK PROGBITS 00003b50 004b50 00008c 00 AX 0 0 4 + [128] .text.BUS485_Send PROGBITS 00003bdc 004bdc 0000c4 00 AX 0 0 4 + [129] .text.MultSend_Ta PROGBITS 00003ca0 004ca0 000074 00 AX 0 0 4 + [130] .text.Set_GroupSe PROGBITS 00003d14 004d14 000064 00 AX 0 0 4 + [131] .text.Clear_SendF PROGBITS 00003d78 004d78 000010 00 AX 0 0 4 + [132] .text.BUS485_Jump PROGBITS 00003d88 004d88 00000c 00 AX 0 0 4 + [133] .text.BUS485Send_ PROGBITS 00003d94 004d94 000034 00 AX 0 0 4 + [134] .text.BusIdle_Tas PROGBITS 00003dc8 004dc8 000040 00 AX 0 0 4 + [135] .text.BusBusy_Tas PROGBITS 00003e08 004e08 00005c 00 AX 0 0 4 + [136] .text.Dbg_Println PROGBITS 00003e64 004e64 00000c 00 AX 0 0 2 + [137] .text.Dbg_Print_B PROGBITS 00003e70 004e70 000002 00 AX 0 0 2 + [138] .text.Touch_Key_I PROGBITS 00003e74 004e74 000068 00 AX 0 0 4 + [139] .text.Get_TouchKe PROGBITS 00003edc 004edc 00003c 00 AX 0 0 4 + [140] .text.TouchKey_RS PROGBITS 00003f18 004f18 0002f4 00 AX 0 0 4 + [141] .text.Touch_Key_E PROGBITS 0000420c 00520c 0000ac 00 AX 0 0 4 + [142] .text.TouchKey_Se PROGBITS 000042b8 0052b8 00003c 00 AX 0 0 4 + [143] .text.Touch_Key_T PROGBITS 000042f4 0052f4 000100 00 AX 0 0 4 + [144] .text.TouchKey_Ch PROGBITS 000043f4 0053f4 000018 00 AX 0 0 2 + [145] .text.TouchKey_Co PROGBITS 0000440c 00540c 000070 00 AX 0 0 4 + [146] .text.TouchKey_Se PROGBITS 0000447c 00547c 0000b8 00 AX 0 0 4 + [147] .text.TouchKey_Re PROGBITS 00004534 005534 0000f8 00 AX 0 0 4 + [148] .text.TouchKey_Du PROGBITS 0000462c 00562c 000038 00 AX 0 0 4 + [149] .text.TouchKey_Re PROGBITS 00004664 005664 0000b0 00 AX 0 0 4 + [150] .text.TouchKey_Re PROGBITS 00004714 005714 00001a 00 AX 0 0 2 + [151] .text.TouchKey_Co PROGBITS 00004730 005730 0000d8 00 AX 0 0 4 + [152] .text.EEPROM_Chec PROGBITS 00004808 005808 000016 00 AX 0 0 2 + [153] .text.EEPROM_Read PROGBITS 00004820 005820 000074 00 AX 0 0 4 + [154] .text.EEPROM_Writ PROGBITS 00004894 005894 000044 00 AX 0 0 4 + [155] .text.EEPROM_Vali PROGBITS 000048d8 0058d8 00008c 00 AX 0 0 4 + [156] .text.EEPROM_Defa PROGBITS 00004964 005964 000020 00 AX 0 0 2 + [157] .text.EEPROM_Writ PROGBITS 00004984 005984 00006c 00 AX 0 0 4 + [158] .text.EEPROM_Read PROGBITS 000049f0 0059f0 0000ac 00 AX 0 0 4 + [159] .text.EEPROM_Vali PROGBITS 00004a9c 005a9c 0000e0 00 AX 0 0 4 + [160] .text.EEPROM_Defa PROGBITS 00004b7c 005b7c 000070 00 AX 0 0 4 + [161] .text.EEPROM_Touc PROGBITS 00004bec 005bec 000080 00 AX 0 0 4 + [162] .text.EEPROM_Read PROGBITS 00004c6c 005c6c 000070 00 AX 0 0 4 + [163] .text.EEPROM_Writ PROGBITS 00004cdc 005cdc 000040 00 AX 0 0 2 + [164] .text.EEPROM_Defa PROGBITS 00004d1c 005d1c 000038 00 AX 0 0 4 + [165] .text.EEPROM_Vali PROGBITS 00004d54 005d54 000058 00 AX 0 0 4 + [166] .text.EEPROM_Init PROGBITS 00004dac 005dac 000088 00 AX 0 0 4 + [167] .text.ADC_Init PROGBITS 00004e34 005e34 00005c 00 AX 0 0 4 + [168] .text.Thermistor_ PROGBITS 00004e90 005e90 000048 00 AX 0 0 4 + [169] .text.Calculate_A PROGBITS 00004ed8 005ed8 000064 00 AX 0 0 4 + [170] .text.Get_Temp_Va PROGBITS 00004f3c 005f3c 00000c 00 AX 0 0 4 + [171] .text.Gather_Temp PROGBITS 00004f48 005f48 00006c 00 AX 0 0 4 + [172] .text.ADC_Sample_ PROGBITS 00004fb4 005fb4 000070 00 AX 0 0 4 + [173] .text.Contol_Swit PROGBITS 00005024 006024 0003ea 00 AX 0 0 4 + [174] .text.Contol_Swit PROGBITS 00005410 006410 0003ea 00 AX 0 0 4 + [175] .text.Contol_Swit PROGBITS 000057fc 0067fc 000028 00 AX 0 0 4 + [176] .text.Get_TM1812_ PROGBITS 00005824 006824 000044 00 AX 0 0 4 + [177] .text.TimeCall_SI PROGBITS 00005868 006868 000120 00 AX 0 0 4 + [178] .text.TimeCall_SI PROGBITS 00005988 006988 0000a8 00 AX 0 0 4 + [179] .text.Tm1812_Task PROGBITS 00005a30 006a30 00005c 00 AX 0 0 4 + [180] .text.Tm1812_Ch_I PROGBITS 00005a8c 006a8c 000024 00 AX 0 0 4 + [181] .text.TM1812_Cont PROGBITS 00005ab0 006ab0 000070 00 AX 0 0 4 + [182] .text.TM1812_Cont PROGBITS 00005b20 006b20 000064 00 AX 0 0 4 + [183] .text.TM1812_LED_ PROGBITS 00005b84 006b84 00006c 00 AX 0 0 4 + [184] .text.HT1621_WR_D PROGBITS 00005bf0 006bf0 000048 00 AX 0 0 4 + [185] .text.HT1621_WR_C PROGBITS 00005c38 006c38 000030 00 AX 0 0 4 + [186] .text.HT1621_Init PROGBITS 00005c68 006c68 0000b4 00 AX 0 0 4 + [187] .text.HT1621_Clea PROGBITS 00005d1c 006d1c 000050 00 AX 0 0 4 + [188] .text.HT1621_ALLO PROGBITS 00005d6c 006d6c 000040 00 AX 0 0 4 + [189] .text.HT1621_Refr PROGBITS 00005dac 006dac 00004c 00 AX 0 0 4 + [190] .text.Set_Tempera PROGBITS 00005df8 006df8 0000d0 00 AX 0 0 4 + [191] .text.Local_Tempe PROGBITS 00005ec8 006ec8 0000d0 00 AX 0 0 4 + [192] .text.Control_Mod PROGBITS 00005f98 006f98 000244 00 AX 0 0 4 + [193] .text.Control_win PROGBITS 000061dc 0071dc 0000d0 00 AX 0 0 4 + [194] .text.Control_Pro PROGBITS 000062ac 0072ac 0000a4 00 AX 0 0 4 + [195] .text.Controlled_ PROGBITS 00006350 007350 000048 00 AX 0 0 4 + [196] .text.Controlled_ PROGBITS 00006398 007398 0000dc 00 AX 0 0 4 + [197] .text.Controlled_ PROGBITS 00006474 007474 000030 00 AX 0 0 4 + [198] .text.Set_Device_ PROGBITS 000064a4 0074a4 00009c 00 AX 0 0 4 + [199] .text.Set_Temp_Di PROGBITS 00006540 007540 000064 00 AX 0 0 4 + [200] .text.HT1621_Refr PROGBITS 000065a4 0075a4 000090 00 AX 0 0 4 + [201] .text.Boot_Functi PROGBITS 00006634 007634 000060 00 AX 0 0 4 + [202] .text.Boot_Comm_C PROGBITS 00006694 007694 000024 00 AX 0 0 4 + [203] .text.Boot_Comm_F PROGBITS 000066b8 0076b8 00005c 00 AX 0 0 4 + [204] .text.Boot_Time_R PROGBITS 00006714 007714 000014 00 AX 0 0 4 + [205] .text.Boot_Comm_U PROGBITS 00006728 007728 000188 00 AX 0 0 4 + [206] .text.TemCtrl_Ini PROGBITS 000068b0 0078b0 000178 00 AX 0 0 4 + [207] .text.TemCtrl_Mod PROGBITS 00006a28 007a28 00004c 00 AX 0 0 4 + [208] .text.TemCtrl_Fan PROGBITS 00006a74 007a74 00004c 00 AX 0 0 4 + [209] .text.TemCtrl_Tem PROGBITS 00006ac0 007ac0 000030 00 AX 0 0 4 + [210] .text.TemCtrl_Tem PROGBITS 00006af0 007af0 000030 00 AX 0 0 4 + [211] .text.TemCtrl_OnO PROGBITS 00006b20 007b20 000034 00 AX 0 0 4 + [212] .text.Tem_Valve_C PROGBITS 00006b54 007b54 0000cc 00 AX 0 0 4 + [213] .text.TemCtrl_Pro PROGBITS 00006c20 007c20 000178 00 AX 0 0 4 + [214] .text.KEY1_Model_ PROGBITS 00006d98 007d98 0000cc 00 AX 0 0 4 + [215] .text.KEY2_Fan_Pr PROGBITS 00006e64 007e64 0000cc 00 AX 0 0 4 + [216] .text.KEY3_TempAd PROGBITS 00006f30 007f30 000100 00 AX 0 0 4 + [217] .text.KEY3_Long_P PROGBITS 00007030 008030 000070 00 AX 0 0 4 + [218] .text.KEY4_TempDe PROGBITS 000070a0 0080a0 000100 00 AX 0 0 4 + [219] .text.KEY4_Long_P PROGBITS 000071a0 0081a0 000070 00 AX 0 0 4 + [220] .text.KEY5_OnOff_ PROGBITS 00007210 008210 000090 00 AX 0 0 4 + [221] .text.TempCtrl_On PROGBITS 000072a0 0082a0 000054 00 AX 0 0 4 + [222] .text.DisPlay_Ini PROGBITS 000072f4 0082f4 000020 00 AX 0 0 4 + [223] .text.DisPlay_Tas PROGBITS 00007314 008314 0004e8 00 AX 0 0 4 + [224] .text.Debug_Init PROGBITS 000077fc 0087fc 00003c 00 AX 0 0 4 + [225] .text.Dev_SaveDat PROGBITS 00007838 008838 0000ac 00 AX 0 0 4 + [226] .text.Debug_Task PROGBITS 000078e4 0088e4 000064 00 AX 0 0 4 + [227] .text.BLV_RLY_Ctr PROGBITS 00007948 008948 000028 00 AX 0 0 4 + [228] .text.Relay_Init PROGBITS 00007970 008970 000028 00 AX 0 0 4 + [229] .text.Relay_High PROGBITS 00007998 008998 00001c 00 AX 0 0 2 + [230] .text.Relay_Mid PROGBITS 000079b4 0089b4 00001c 00 AX 0 0 2 + [231] .text.Relay_Low PROGBITS 000079d0 0089d0 00001c 00 AX 0 0 2 + [232] .text.Relay_Stop PROGBITS 000079ec 0089ec 00001c 00 AX 0 0 2 + [233] .text.BLV_RLY_Ctr PROGBITS 00007a08 008a08 000014 00 AX 0 0 2 + [234] .text.RLY_Direct_ PROGBITS 00007a1c 008a1c 0000c8 00 AX 0 0 4 + [235] .text.RLY_Zero_Co PROGBITS 00007ae4 008ae4 000098 00 AX 0 0 4 + [236] .text.NetCRC16_Ch PROGBITS 00007b7c 008b7c 00004c 00 AX 0 0 4 + [237] .text.GetCRC16 PROGBITS 00007bc8 008bc8 00003c 00 AX 0 0 4 + [238] .text.SOR_CRC PROGBITS 00007c04 008c04 000016 00 AX 0 0 2 + [239] .text.Rs485_ASend PROGBITS 00007c1c 008c1c 000108 00 AX 0 0 4 + [240] .text.Rs485AskCyc PROGBITS 00007d24 008d24 000104 00 AX 0 0 4 + [241] .text.Rs485AskCtr PROGBITS 00007e28 008e28 00005c 00 AX 0 0 4 + [242] .text.Rs485AskRea PROGBITS 00007e84 008e84 000068 00 AX 0 0 4 + [243] .text.Rs485_DevPo PROGBITS 00007eec 008eec 000018 00 AX 0 0 2 + [244] .text.Temp_Rec_An PROGBITS 00007f04 008f04 0001b0 00 AX 0 0 4 + [245] .text.Tem_Rs485_R PROGBITS 000080b4 0090b4 0000cc 00 AX 0 0 4 + [246] .text.TK_ConfigIn PROGBITS 00008180 009180 000010 00 AX 0 0 4 + [247] .text.tk_clk_conf PROGBITS 00008190 009190 000028 00 AX 0 0 4 + [248] .text.TK_con0_con PROGBITS 000081b8 0091b8 0000bc 00 AX 0 0 4 + [249] .text.tk_io_enabl PROGBITS 00008274 009274 000134 00 AX 0 0 4 + [250] .text.TK_Single_L PROGBITS 000083a8 0093a8 000128 00 AX 0 0 4 + [251] .text.TK_Sampling PROGBITS 000084d0 0094d0 0000cc 00 AX 0 0 4 + [252] .text.get_key_num PROGBITS 0000859c 00959c 000028 00 AX 0 0 4 + [253] .text.get_key_num PROGBITS 000085c4 0095c4 000028 00 AX 0 0 4 + [254] .text.get_key_num PROGBITS 000085ec 0095ec 000028 00 AX 0 0 4 + [255] .text.get_key_num PROGBITS 00008614 009614 000028 00 AX 0 0 4 + [256] .text.TK_Baseline PROGBITS 0000863c 00963c 000150 00 AX 0 0 4 + [257] .text.TK_Baseline PROGBITS 0000878c 00978c 000148 00 AX 0 0 4 + [258] .text.tk_poweron_ PROGBITS 000088d4 0098d4 000124 00 AX 0 0 4 + [259] .text.TK_Scan_Sta PROGBITS 000089f8 0099f8 000068 00 AX 0 0 4 + [260] .text.TK_Keymap_p PROGBITS 00008a60 009a60 000870 00 AX 0 0 4 + [261] .text.TK_overflow PROGBITS 000092d0 00a2d0 000128 00 AX 0 0 4 + [262] .text.TK_Baseline PROGBITS 000093f8 00a3f8 0004d0 00 AX 0 0 4 + [263] .text.TK_result_p PROGBITS 000098c8 00a8c8 000130 00 AX 0 0 4 + [264] .text.get_key_seq PROGBITS 000099f8 00a9f8 000038 00 AX 0 0 4 + [265] .text.CORET_CONFI PROGBITS 00009a30 00aa30 000038 00 AX 0 0 4 + [266] .text.tk_chxval_s PROGBITS 00009a68 00aa68 00001c 00 AX 0 0 4 + [267] .text.tk_freq_par PROGBITS 00009a84 00aa84 0000ac 00 AX 0 0 4 + [268] .text.tk_reserved PROGBITS 00009b30 00ab30 000028 00 AX 0 0 4 + [269] .text.TKEYIntHand PROGBITS 00009b58 00ab58 0000a0 00 AX 0 0 4 + [270] .text.CORETHandle PROGBITS 00009bf8 00abf8 00015c 00 AX 0 0 4 + [271] .text.tk_init PROGBITS 00009d54 00ad54 000110 00 AX 0 0 4 + [272] .text.std_clk_cal PROGBITS 00009e64 00ae64 000284 00 AX 0 0 4 + [273] .RomCode PROGBITS 0000a0e8 00c0b0 000000 00 W 0 0 1 + [274] .rodata PROGBITS 0000a0e8 00b0e8 0008f0 00 A 0 0 4 + [275] .data PROGBITS 20000000 00c000 0000b0 00 WA 0 0 4 + [276] .bss NOBITS 200000b0 00c0b0 000b50 00 WA 0 0 4 + [277] .csky.attributes CSKY_ATTRIBUTES 00000000 00c0b0 000022 00 0 0 1 + [278] .comment PROGBITS 00000000 00c0d2 000042 01 MS 0 0 1 + [279] .csky_stack_size PROGBITS 00000000 00c120 000bac 00 0 0 16 + [280] .debug_line PROGBITS 00000000 00cccc 0071e2 00 0 0 1 + [281] .debug_info PROGBITS 00000000 013eae 054430 00 0 0 1 + [282] .debug_abbrev PROGBITS 00000000 0682de 0049f6 00 0 0 1 + [283] .debug_aranges PROGBITS 00000000 06ccd8 001228 00 0 0 8 + [284] .debug_ranges PROGBITS 00000000 06df00 001238 00 0 0 1 + [285] .debug_str PROGBITS 00000000 06f138 00a5fc 01 MS 0 0 1 + [286] .debug_frame PROGBITS 00000000 079734 002c98 00 0 0 4 + [287] .debug_loc PROGBITS 00000000 07c3cc 004792 00 0 0 1 + [288] .shstrtab STRTAB 00000000 0899c1 00197d 00 0 0 1 + [289] .symtab SYMTAB 00000000 080b60 006ce0 10 290 1253 4 + [290] .strtab STRTAB 00000000 087840 002181 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 0x0a9d8 0x0a9d8 R E 0x1000 + LOAD 0x00c000 0x20000000 0x0000a9d8 0x000b0 0x00c00 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.EXI3_Int_Enable .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.Get_TouchKey_CH_State .text.TouchKey_RS485_Printf_3 .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.tk_io_enable .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Baseline_prog .text.TK_Baseline_prog2 .text.tk_poweron_data_fineturn .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_freq_para_init .text.tk_reserved_init .text.TKEYIntHandler .text.CORETHandler .text.tk_init .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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI3_Int_Enable) for EXI3_Int_Enable + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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.UART2_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_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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/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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) for GPIOB0_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) 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_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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.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.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_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) 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/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) 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/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.EXI4to9IntHandler) 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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) 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_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) for TouchKey_RS485_Printf_3 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + 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/USRCTRL_debug_unit.o(.text.Dev_SaveData) 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_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/SYSTEM_touch_key.o(.text.Touch_Key_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.UART2_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) for tk_io_enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog) for TK_Baseline_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog2) for TK_Baseline_prog2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) for tk_poweron_data_fineturn + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) for tk_freq_para_init + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) for tk_init + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_f_1_18.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/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) 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/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2893 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_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_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_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), (3087 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), (3404 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), (3149 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), (8012 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_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 .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), (3520 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), (3636 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), (4836 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (64 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (68 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_RS485_Printf_2(Obj/SYSTEM_touch_key.o), (596 bytes). + Removing .text.TouchKey_RS485_Printf(Obj/SYSTEM_touch_key.o), (260 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 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), (264 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (107 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_f_1_18.o), (0 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.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). + +599 unused seciton(s) (total 138786 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_f_1_18.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 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_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + _fpadd_parts 0x00000d80 F 724 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00001048 0 .text + $t 0x00001054 0 .text + $d 0x000010bc 0 .text + $t 0x000010bc 0 .text + $d 0x000012e4 0 .text + $d 0x000012f0 0 .text + $t 0x000012f0 0 .text + $d 0x00001440 0 .text + $d 0x00001444 0 .text + $t 0x00001444 0 .text + $d 0x00001480 0 .text + $t 0x00001480 0 .text + $d 0x000014bc 0 .text + $t 0x000014bc 0 .text + $d 0x000014f8 0 .text + $t 0x000014f8 0 .text + $d 0x00001564 0 .text + $d 0x00001568 0 .text + $t 0x00001568 0 .text + $d 0x000015d4 0 .text + $d 0x000015d8 0 .text + $t 0x000015d8 0 .text + $d 0x0000162c 0 .text + $t 0x0000162c 0 .text + $d 0x00001670 0 .text + $t 0x00001670 0 .text + $d 0x000016a4 0 .text + $d 0x000016b0 0 .text + $t 0x000016b0 0 .text + $d 0x00001838 0 .text + $d 0x0000184c 0 .text + $t 0x0000184c 0 .text + $d 0x00001904 0 .text + $d 0x00001910 0 .text + $t 0x00001910 0 .text + $d 0x0000199c 0 .text + $t 0x0000199c 0 .text + $d 0x00001a24 0 .text + $t 0x00001a24 0 .text + $d 0x00001a88 0 .text + $t 0x00001a88 0 .text + $d 0x00001ab0 0 .text.__main + $t 0x00001ab0 0 .text.__main + $d 0x00001ad4 0 .text.__main + SYSCON_General_CMD.part.0 0x00001ae8 F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001ae8 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001ae8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b54 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001b5c 0 .text.SYSCON_RST_VALUE + $t 0x00001b5c 0 .text.SYSCON_RST_VALUE + $d 0x00001b8c 0 .text.SYSCON_RST_VALUE + $d 0x00001ba8 0 .text.SYSCON_General_CMD + $t 0x00001ba8 0 .text.SYSCON_General_CMD + $d 0x00001bd4 0 .text.SYSCON_General_CMD + $d 0x00001bd8 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001bd8 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c50 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001c60 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001c60 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c84 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001c88 0 .text.SYSCON_WDT_CMD + $t 0x00001c88 0 .text.SYSCON_WDT_CMD + $d 0x00001cb8 0 .text.SYSCON_WDT_CMD + $d 0x00001cc4 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001cc4 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cd4 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001cd8 0 .text.SYSCON_IWDCNT_Config + $t 0x00001cd8 0 .text.SYSCON_IWDCNT_Config + $d 0x00001ce8 0 .text.SYSCON_IWDCNT_Config + $d 0x00001cf0 0 .text.SYSCON_LVD_Config + $t 0x00001cf0 0 .text.SYSCON_LVD_Config + $d 0x00001d08 0 .text.SYSCON_LVD_Config + $d 0x00001d10 0 .text.LVD_Int_Enable + $t 0x00001d10 0 .text.LVD_Int_Enable + $d 0x00001d28 0 .text.LVD_Int_Enable + $d 0x00001d2c 0 .text.IWDT_Int_Enable + $t 0x00001d2c 0 .text.IWDT_Int_Enable + $d 0x00001d44 0 .text.IWDT_Int_Enable + $d 0x00001d48 0 .text.EXTI_trigger_CMD + $t 0x00001d48 0 .text.EXTI_trigger_CMD + $d 0x00001d84 0 .text.EXTI_trigger_CMD + $d 0x00001d88 0 .text.EXTI_interrupt_CMD + $t 0x00001d88 0 .text.EXTI_interrupt_CMD + $d 0x00001db4 0 .text.EXTI_interrupt_CMD + $d 0x00001dbc 0 .text.GPIO_EXTI_interrupt + $t 0x00001dbc 0 .text.GPIO_EXTI_interrupt + $d 0x00001dc0 0 .text.EXI3_Int_Enable + $t 0x00001dc0 0 .text.EXI3_Int_Enable + $d 0x00001dcc 0 .text.EXI3_Int_Enable + $d 0x00001dd0 0 .text.EXI4_Int_Enable + $t 0x00001dd0 0 .text.EXI4_Int_Enable + $d 0x00001ddc 0 .text.EXI4_Int_Enable + $d 0x00001de0 0 .text.SYSCON_Int_Enable + $t 0x00001de0 0 .text.SYSCON_Int_Enable + $d 0x00001de8 0 .text.SYSCON_Int_Enable + $d 0x00001dec 0 .text.SYSCON_Int_Disable + $t 0x00001dec 0 .text.SYSCON_Int_Disable + $d 0x00001df4 0 .text.SYSCON_Int_Disable + $d 0x00001df8 0 .text.SYSCON_INT_Priority + $t 0x00001df8 0 .text.SYSCON_INT_Priority + $d 0x00001e10 0 .text.SYSCON_INT_Priority + $d 0x00001e1c 0 .text.Set_INT_Priority + $t 0x00001e1c 0 .text.Set_INT_Priority + $d 0x00001e48 0 .text.Set_INT_Priority + $d 0x00001e4c 0 .text.GPIO_DeInit + $t 0x00001e4c 0 .text.GPIO_DeInit + $d 0x00001ea0 0 .text.GPIO_DeInit + $d 0x00001eb0 0 .text.GPIO_Init + $t 0x00001eb0 0 .text.GPIO_Init + $d 0x00001ec2 0 .text.GPIO_Init + $t 0x00001eca 0 .text.GPIO_Init + $d 0x00001f26 0 .text.GPIO_Init + $t 0x00001f2e 0 .text.GPIO_Init + $d 0x00001f7c 0 .text.GPIO_Init + $d 0x00001f90 0 .text.GPIO_PullHigh_Init + $t 0x00001f90 0 .text.GPIO_PullHigh_Init + $d 0x00001fa4 0 .text.GPIO_DriveStrength_EN + $t 0x00001fa4 0 .text.GPIO_DriveStrength_EN + $d 0x00001fb4 0 .text.GPIO_IntGroup_Set + $t 0x00001fb4 0 .text.GPIO_IntGroup_Set + $d 0x000020a8 0 .text.GPIO_IntGroup_Set + $d 0x000020c0 0 .text.GPIOA0_EXI_Init + $t 0x000020c0 0 .text.GPIOA0_EXI_Init + $d 0x000020cc 0 .text.GPIOA0_EXI_Init + $t 0x000020dc 0 .text.GPIOA0_EXI_Init + $d 0x000021b8 0 .text.GPIOA0_EXI_Init + $d 0x000021bc 0 .text.GPIOB0_EXI_Init + $t 0x000021bc 0 .text.GPIOB0_EXI_Init + $d 0x000021c8 0 .text.GPIOB0_EXI_Init + $t 0x000021ce 0 .text.GPIOB0_EXI_Init + $d 0x00002224 0 .text.GPIOB0_EXI_Init + $d 0x00002228 0 .text.GPIO_Write_High + $t 0x00002228 0 .text.GPIO_Write_High + $d 0x00002230 0 .text.GPIO_Write_Low + $t 0x00002230 0 .text.GPIO_Write_Low + $d 0x00002238 0 .text.GPIO_Reverse + $t 0x00002238 0 .text.GPIO_Reverse + $d 0x0000224e 0 .text.GPIO_Read_Status + $t 0x0000224e 0 .text.GPIO_Read_Status + $d 0x00002260 0 .text.LPT_Soft_Reset + $t 0x00002260 0 .text.LPT_Soft_Reset + $d 0x00002270 0 .text.LPT_Soft_Reset + $d 0x00002274 0 .text.WWDT_CNT_Load + $t 0x00002274 0 .text.WWDT_CNT_Load + $d 0x00002280 0 .text.WWDT_CNT_Load + $d 0x00002284 0 .text.BT_DeInit + $t 0x00002284 0 .text.BT_DeInit + $d 0x000022a0 0 .text.BT_Start + $t 0x000022a0 0 .text.BT_Start + $d 0x000022a8 0 .text.BT_Soft_Reset + $t 0x000022a8 0 .text.BT_Soft_Reset + $d 0x000022b2 0 .text.BT_Configure + $t 0x000022b2 0 .text.BT_Configure + $d 0x000022ca 0 .text.BT_ControlSet_Configure + $t 0x000022ca 0 .text.BT_ControlSet_Configure + $d 0x000022f6 0 .text.BT_Period_CMP_Write + $t 0x000022f6 0 .text.BT_Period_CMP_Write + $d 0x000022fc 0 .text.BT_ConfigInterrupt_CMD + $t 0x000022fc 0 .text.BT_ConfigInterrupt_CMD + $d 0x00002310 0 .text.BT1_INT_ENABLE + $t 0x00002310 0 .text.BT1_INT_ENABLE + $d 0x0000231c 0 .text.BT1_INT_ENABLE + $d 0x00002320 0 .text.SIO_DeInit + $t 0x00002320 0 .text.SIO_DeInit + $d 0x0000233c 0 .text.SIO_DeInit + $d 0x00002340 0 .text.SIO_IO_Init + $t 0x00002340 0 .text.SIO_IO_Init + $d 0x00002398 0 .text.SIO_IO_Init + $d 0x000023a0 0 .text.SIO_TX_Init + $t 0x000023a0 0 .text.SIO_TX_Init + $d 0x000023ac 0 .text.SIO_TX_Init + $d 0x000023b0 0 .text.SIO_TX_Configure + $t 0x000023b0 0 .text.SIO_TX_Configure + $d 0x000023fc 0 .text.SIO_TX_Configure + $d 0x00002400 0 .text.UART0_DeInit + $t 0x00002400 0 .text.UART0_DeInit + $d 0x00002414 0 .text.UART0_DeInit + $d 0x00002418 0 .text.UART1_DeInit + $t 0x00002418 0 .text.UART1_DeInit + $d 0x0000242c 0 .text.UART1_DeInit + $d 0x00002430 0 .text.UART2_DeInit + $t 0x00002430 0 .text.UART2_DeInit + $d 0x00002444 0 .text.UART2_DeInit + $d 0x00002448 0 .text.UART0_Int_Enable + $t 0x00002448 0 .text.UART0_Int_Enable + $d 0x0000245c 0 .text.UART0_Int_Enable + $d 0x00002464 0 .text.UART2_Int_Enable + $t 0x00002464 0 .text.UART2_Int_Enable + $d 0x00002478 0 .text.UART2_Int_Enable + $d 0x00002480 0 .text.UART_IO_Init + $t 0x00002480 0 .text.UART_IO_Init + $d 0x00002564 0 .text.UART_IO_Init + $d 0x0000256c 0 .text.UARTInit + $t 0x0000256c 0 .text.UARTInit + $d 0x00002578 0 .text.UARTInit + $d 0x0000257c 0 .text.UARTInitRxTxIntEn + $t 0x0000257c 0 .text.UARTInitRxTxIntEn + $d 0x00002588 0 .text.UARTInitRxTxIntEn + $d 0x0000258c 0 .text.UARTTransmit + $t 0x0000258c 0 .text.UARTTransmit + $d 0x000025ac 0 .text.EPT_Stop + $t 0x000025ac 0 .text.EPT_Stop + $d 0x000025cc 0 .text.EPT_Stop + $d 0x000025d4 0 .text.ADC12_RESET_VALUE + $t 0x000025d4 0 .text.ADC12_RESET_VALUE + $d 0x00002634 0 .text.ADC12_RESET_VALUE + $d 0x00002638 0 .text.ADC12_Control + $t 0x00002638 0 .text.ADC12_Control + $d 0x00002644 0 .text.ADC12_Control + ADC12_CMD.part.0 0x00002648 F 32 .text.ADC12_CMD.part.0 + $d 0x00002648 0 .text.ADC12_CMD.part.0 + $t 0x00002648 0 .text.ADC12_CMD.part.0 + $d 0x00002664 0 .text.ADC12_CMD.part.0 + $d 0x00002668 0 .text.ADC12_CLK_CMD + $t 0x00002668 0 .text.ADC12_CLK_CMD + $d 0x00002690 0 .text.ADC12_CLK_CMD + $d 0x00002694 0 .text.ADC12_Software_Reset + $t 0x00002694 0 .text.ADC12_Software_Reset + $d 0x000026a0 0 .text.ADC12_CMD + $t 0x000026a0 0 .text.ADC12_CMD + $d 0x000026c4 0 .text.ADC12_CMD + $d 0x000026c8 0 .text.ADC12_ready_wait + $t 0x000026c8 0 .text.ADC12_ready_wait + $d 0x000026d8 0 .text.ADC12_ready_wait + $d 0x000026dc 0 .text.ADC12_SEQEND_wait + $t 0x000026dc 0 .text.ADC12_SEQEND_wait + $d 0x000026f0 0 .text.ADC12_SEQEND_wait + $d 0x000026f4 0 .text.ADC12_DATA_OUPUT + $t 0x000026f4 0 .text.ADC12_DATA_OUPUT + $d 0x00002704 0 .text.ADC12_DATA_OUPUT + $d 0x00002708 0 .text.ADC12_Configure_Mode + $t 0x00002708 0 .text.ADC12_Configure_Mode + $d 0x00002780 0 .text.ADC12_Configure_Mode + $d 0x00002784 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00002784 0 .text.ADC12_Configure_VREF_Selecte + $d 0x000028f8 0 .text.ADC12_Configure_VREF_Selecte + $d 0x0000291c 0 .text.ADC12_ConversionChannel_Config + $t 0x0000291c 0 .text.ADC12_ConversionChannel_Config + $d 0x00002948 0 .text.ADC12_ConversionChannel_Config + $t 0x00002958 0 .text.ADC12_ConversionChannel_Config + $d 0x00002a90 0 .text.ADC12_ConversionChannel_Config + $d 0x00002a9c 0 .text.Page_ProgramData + $t 0x00002a9c 0 .text.Page_ProgramData + $d 0x00002b34 0 .text.Page_ProgramData + $d 0x00002b3c 0 .text.ReadDataArry_U8 + $t 0x00002b3c 0 .text.ReadDataArry_U8 + $d 0x00002b68 0 .text.tk_parameter_init + $t 0x00002b68 0 .text.tk_parameter_init + $d 0x00002c58 0 .text.tk_parameter_init + $d 0x00002ca8 0 .text.CORET_DeInit + $t 0x00002ca8 0 .text.CORET_DeInit + $d 0x00002cbc 0 .text.CORET_DeInit + $d 0x00002cc0 0 .text.CORET_Int_Enable + $t 0x00002cc0 0 .text.CORET_Int_Enable + $d 0x00002cd0 0 .text.CORET_Int_Enable + $d 0x00002cd8 0 .text.CORET_start + $t 0x00002cd8 0 .text.CORET_start + $d 0x00002ce4 0 .text.CORET_start + $d 0x00002ce8 0 .text.CORET_CLKSOURCE_EX + $t 0x00002ce8 0 .text.CORET_CLKSOURCE_EX + $d 0x00002cf4 0 .text.CORET_CLKSOURCE_EX + $d 0x00002cf8 0 .text.CORET_TICKINT_Enable + $t 0x00002cf8 0 .text.CORET_TICKINT_Enable + $d 0x00002d04 0 .text.CORET_TICKINT_Enable + $d 0x00002d08 0 .text.CORET_reload + $t 0x00002d08 0 .text.CORET_reload + $d 0x00002d14 0 .text.CORET_reload + $d 0x00002d18 0 .text.startup.main + $t 0x00002d18 0 .text.startup.main + $d 0x00002d64 0 .text.startup.main + $d 0x00002d6c 0 .text.delay_nms + $t 0x00002d6c 0 .text.delay_nms + $d 0x00002d98 0 .text.delay_nus + $t 0x00002d98 0 .text.delay_nus + $d 0x00002dbc 0 .text.GPIO_CONFIG + $t 0x00002dbc 0 .text.GPIO_CONFIG + $d 0x00002e40 0 .text.GPIO_CONFIG + $d 0x00002e48 0 .text.BT_CONFIG + $t 0x00002e48 0 .text.BT_CONFIG + $d 0x00002ea0 0 .text.BT_CONFIG + $d 0x00002ea8 0 .text.SYSCON_CONFIG + $t 0x00002ea8 0 .text.SYSCON_CONFIG + $d 0x00002f0c 0 .text.APT32F102_init + $t 0x00002f0c 0 .text.APT32F102_init + $d 0x00002f94 0 .text.APT32F102_init + $d 0x00002fa8 0 .text.SYSCONIntHandler + $t 0x00002fa8 0 .text.SYSCONIntHandler + $d 0x00003094 0 .text.SYSCONIntHandler + $d 0x00003098 0 .text.IFCIntHandler + $t 0x00003098 0 .text.IFCIntHandler + $d 0x000030fc 0 .text.IFCIntHandler + $d 0x00003100 0 .text.ADCIntHandler + $t 0x00003100 0 .text.ADCIntHandler + $d 0x00003164 0 .text.ADCIntHandler + $d 0x00003168 0 .text.EPT0IntHandler + $t 0x00003168 0 .text.EPT0IntHandler + $d 0x00003308 0 .text.EPT0IntHandler + $d 0x00003314 0 .text.WWDTHandler + $t 0x00003314 0 .text.WWDTHandler + $d 0x00003344 0 .text.WWDTHandler + $d 0x00003348 0 .text.GPT0IntHandler + $t 0x00003348 0 .text.GPT0IntHandler + $d 0x000033c4 0 .text.GPT0IntHandler + $d 0x000033c8 0 .text.RTCIntHandler + $t 0x000033c8 0 .text.RTCIntHandler + $d 0x00003430 0 .text.RTCIntHandler + $d 0x00003438 0 .text.UART0IntHandler + $t 0x00003438 0 .text.UART0IntHandler + $d 0x00003470 0 .text.UART0IntHandler + $d 0x00003474 0 .text.UART1IntHandler + $t 0x00003474 0 .text.UART1IntHandler + $d 0x000034ac 0 .text.UART1IntHandler + $d 0x000034b0 0 .text.UART2IntHandler + $t 0x000034b0 0 .text.UART2IntHandler + $d 0x00003530 0 .text.UART2IntHandler + $d 0x00003544 0 .text.SPI0IntHandler + $t 0x00003544 0 .text.SPI0IntHandler + $d 0x00003628 0 .text.SPI0IntHandler + $d 0x0000362c 0 .text.SIO0IntHandler + $t 0x0000362c 0 .text.SIO0IntHandler + $d 0x0000367c 0 .text.SIO0IntHandler + $d 0x00003680 0 .text.EXI0IntHandler + $t 0x00003680 0 .text.EXI0IntHandler + $d 0x000036ac 0 .text.EXI0IntHandler + $d 0x000036b0 0 .text.EXI1IntHandler + $t 0x000036b0 0 .text.EXI1IntHandler + $d 0x000036dc 0 .text.EXI1IntHandler + $d 0x000036e0 0 .text.EXI2to3IntHandler + $t 0x000036e0 0 .text.EXI2to3IntHandler + $d 0x00003724 0 .text.EXI2to3IntHandler + $d 0x00003728 0 .text.EXI4to9IntHandler + $t 0x00003728 0 .text.EXI4to9IntHandler + $d 0x00003790 0 .text.EXI4to9IntHandler + $d 0x00003794 0 .text.EXI10to15IntHandler + $t 0x00003794 0 .text.EXI10to15IntHandler + $d 0x0000380c 0 .text.EXI10to15IntHandler + $d 0x00003814 0 .text.LPTIntHandler + $t 0x00003814 0 .text.LPTIntHandler + $d 0x00003844 0 .text.LPTIntHandler + $d 0x00003848 0 .text.BT0IntHandler + $t 0x00003848 0 .text.BT0IntHandler + $d 0x00003890 0 .text.BT0IntHandler + $d 0x00003894 0 .text.BT1IntHandler + $t 0x00003894 0 .text.BT1IntHandler + $d 0x000038fc 0 .text.BT1IntHandler + $d 0x00003904 0 .text.PriviledgeVioHandler + $t 0x00003904 0 .text.PriviledgeVioHandler + $d 0x00003906 0 .text.PendTrapHandler + $t 0x00003906 0 .text.PendTrapHandler + $d 0x0000390e 0 .text.Trap3Handler + $t 0x0000390e 0 .text.Trap3Handler + $d 0x00003916 0 .text.Trap2Handler + $t 0x00003916 0 .text.Trap2Handler + $d 0x0000391e 0 .text.Trap1Handler + $t 0x0000391e 0 .text.Trap1Handler + $d 0x00003926 0 .text.Trap0Handler + $t 0x00003926 0 .text.Trap0Handler + $d 0x0000392e 0 .text.UnrecExecpHandler + $t 0x0000392e 0 .text.UnrecExecpHandler + $d 0x00003936 0 .text.BreakPointHandler + $t 0x00003936 0 .text.BreakPointHandler + $d 0x0000393e 0 .text.AccessErrHandler + $t 0x0000393e 0 .text.AccessErrHandler + $d 0x00003946 0 .text.IllegalInstrHandler + $t 0x00003946 0 .text.IllegalInstrHandler + $d 0x0000394e 0 .text.MisalignedHandler + $t 0x0000394e 0 .text.MisalignedHandler + $d 0x00003956 0 .text.CNTAIntHandler + $t 0x00003956 0 .text.CNTAIntHandler + $d 0x0000395e 0 .text.I2CIntHandler + $t 0x0000395e 0 .text.I2CIntHandler + $d 0x00003968 0 .text.__divsi3 + $t 0x00003968 0 .text.__divsi3 + $d 0x00003988 0 .text.__divsi3 + $d 0x0000398c 0 .text.__udivsi3 + $t 0x0000398c 0 .text.__udivsi3 + $d 0x000039ac 0 .text.__udivsi3 + $d 0x000039b0 0 .text.__modsi3 + $t 0x000039b0 0 .text.__modsi3 + $d 0x000039d0 0 .text.__modsi3 + $d 0x000039d4 0 .text.__umodsi3 + $t 0x000039d4 0 .text.__umodsi3 + $d 0x000039f4 0 .text.__umodsi3 + $d 0x000039f8 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000039f8 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000039fe 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000039fe 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00003a04 0 .text.UARTx_Init + $t 0x00003a04 0 .text.UARTx_Init + $d 0x00003adc 0 .text.UARTx_Init + $d 0x00003b0c 0 .text.UART2_RecvINT_Processing + $t 0x00003b0c 0 .text.UART2_RecvINT_Processing + $d 0x00003b44 0 .text.UART2_RecvINT_Processing + $d 0x00003b50 0 .text.UART2_TASK + $t 0x00003b50 0 .text.UART2_TASK + $d 0x00003bc4 0 .text.UART2_TASK + $d 0x00003bdc 0 .text.BUS485_Send + $t 0x00003bdc 0 .text.BUS485_Send + $d 0x00003c88 0 .text.BUS485_Send + $d 0x00003ca0 0 .text.MultSend_Task + $t 0x00003ca0 0 .text.MultSend_Task + $d 0x00003d0c 0 .text.MultSend_Task + $d 0x00003d14 0 .text.Set_GroupSend + $t 0x00003d14 0 .text.Set_GroupSend + $d 0x00003d70 0 .text.Set_GroupSend + $d 0x00003d78 0 .text.Clear_SendFlag + $t 0x00003d78 0 .text.Clear_SendFlag + $d 0x00003d84 0 .text.Clear_SendFlag + $d 0x00003d88 0 .text.BUS485_Jump_Boot + $t 0x00003d88 0 .text.BUS485_Jump_Boot + $d 0x00003d90 0 .text.BUS485_Jump_Boot + $d 0x00003d94 0 .text.BUS485Send_Task + $t 0x00003d94 0 .text.BUS485Send_Task + $d 0x00003dbc 0 .text.BUS485Send_Task + $d 0x00003dc8 0 .text.BusIdle_Task + $t 0x00003dc8 0 .text.BusIdle_Task + $d 0x00003e00 0 .text.BusIdle_Task + $d 0x00003e08 0 .text.BusBusy_Task + $t 0x00003e08 0 .text.BusBusy_Task + $d 0x00003e58 0 .text.BusBusy_Task + $d 0x00003e64 0 .text.Dbg_Println + $t 0x00003e64 0 .text.Dbg_Println + $d 0x00003e70 0 .text.Dbg_Print_Buff + $t 0x00003e70 0 .text.Dbg_Print_Buff + $d 0x00003e74 0 .text.Touch_Key_Init + $t 0x00003e74 0 .text.Touch_Key_Init + $d 0x00003ec8 0 .text.Touch_Key_Init + $d 0x00003edc 0 .text.Get_TouchKey_CH_State + $t 0x00003edc 0 .text.Get_TouchKey_CH_State + $d 0x00003ee8 0 .text.Get_TouchKey_CH_State + $t 0x00003eee 0 .text.Get_TouchKey_CH_State + $d 0x00003f14 0 .text.Get_TouchKey_CH_State + $d 0x00003f18 0 .text.TouchKey_RS485_Printf_3 + $t 0x00003f18 0 .text.TouchKey_RS485_Printf_3 + $d 0x000041e4 0 .text.TouchKey_RS485_Printf_3 + $d 0x0000420c 0 .text.Touch_Key_Event_Handling + $t 0x0000420c 0 .text.Touch_Key_Event_Handling + $d 0x000042b4 0 .text.Touch_Key_Event_Handling + $d 0x000042b8 0 .text.TouchKey_Set_Interface_Task + $t 0x000042b8 0 .text.TouchKey_Set_Interface_Task + $d 0x000042e8 0 .text.TouchKey_Set_Interface_Task + $d 0x000042f4 0 .text.Touch_Key_Task + $t 0x000042f4 0 .text.Touch_Key_Task + $d 0x000043e0 0 .text.Touch_Key_Task + $d 0x000043f4 0 .text.TouchKey_CheckSum + $t 0x000043f4 0 .text.TouchKey_CheckSum + $d 0x0000440c 0 .text.TouchKey_Comm_Reply + $t 0x0000440c 0 .text.TouchKey_Comm_Reply + $d 0x00004478 0 .text.TouchKey_Comm_Reply + $d 0x0000447c 0 .text.TouchKey_SetPara_Processing + $t 0x0000447c 0 .text.TouchKey_SetPara_Processing + $d 0x00004520 0 .text.TouchKey_SetPara_Processing + $d 0x00004534 0 .text.TouchKey_ReadPara_Processing + $t 0x00004534 0 .text.TouchKey_ReadPara_Processing + $d 0x00004624 0 .text.TouchKey_ReadPara_Processing + $d 0x0000462c 0 .text.TouchKey_DugPrintf_Processing + $t 0x0000462c 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004660 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004664 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004664 0 .text.TouchKey_ReadEnve_Processing + $d 0x0000470c 0 .text.TouchKey_ReadEnve_Processing + $d 0x00004714 0 .text.TouchKey_ResetDevice_Processing + $t 0x00004714 0 .text.TouchKey_ResetDevice_Processing + $d 0x00004730 0 .text.TouchKey_Comm_Processing + $t 0x00004730 0 .text.TouchKey_Comm_Processing + $d 0x000047be 0 .text.TouchKey_Comm_Processing + $t 0x000047c4 0 .text.TouchKey_Comm_Processing + $d 0x000047ec 0 .text.TouchKey_Comm_Processing + $d 0x00004808 0 .text.EEPROM_CheckSum + $t 0x00004808 0 .text.EEPROM_CheckSum + $d 0x00004820 0 .text.EEPROM_ReadParaInfo + $t 0x00004820 0 .text.EEPROM_ReadParaInfo + $d 0x0000488c 0 .text.EEPROM_ReadParaInfo + $d 0x00004894 0 .text.EEPROM_WriteParaInfo + $t 0x00004894 0 .text.EEPROM_WriteParaInfo + $d 0x000048d4 0 .text.EEPROM_WriteParaInfo + $d 0x000048d8 0 .text.EEPROM_Validate_ParaInfo + $t 0x000048d8 0 .text.EEPROM_Validate_ParaInfo + $d 0x0000495c 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004964 0 .text.EEPROM_Default_ParaInfo + $t 0x00004964 0 .text.EEPROM_Default_ParaInfo + $d 0x00004984 0 .text.EEPROM_WriteTouchPara + $t 0x00004984 0 .text.EEPROM_WriteTouchPara + $d 0x000049e4 0 .text.EEPROM_WriteTouchPara + $d 0x000049f0 0 .text.EEPROM_ReadTouchPara + $t 0x000049f0 0 .text.EEPROM_ReadTouchPara + $d 0x00004a88 0 .text.EEPROM_ReadTouchPara + $d 0x00004a9c 0 .text.EEPROM_Validate_TouchPara + $t 0x00004a9c 0 .text.EEPROM_Validate_TouchPara + $d 0x00004b74 0 .text.EEPROM_Validate_TouchPara + $d 0x00004b7c 0 .text.EEPROM_Default_TouchPara + $t 0x00004b7c 0 .text.EEPROM_Default_TouchPara + $d 0x00004be6 0 .text.EEPROM_Default_TouchPara + $d 0x00004bec 0 .text.EEPROM_TouchPara_Printf + $t 0x00004bec 0 .text.EEPROM_TouchPara_Printf + $d 0x00004c50 0 .text.EEPROM_TouchPara_Printf + $d 0x00004c6c 0 .text.EEPROM_ReadMCUDevInfo + $t 0x00004c6c 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004cd8 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004cdc 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00004cdc 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00004d1c 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00004d1c 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00004d50 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00004d54 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x00004d54 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00004da8 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00004dac 0 .text.EEPROM_Init + $t 0x00004dac 0 .text.EEPROM_Init + $d 0x00004e24 0 .text.EEPROM_Init + $d 0x00004e34 0 .text.ADC_Init + $t 0x00004e34 0 .text.ADC_Init + $d 0x00004e8c 0 .text.ADC_Init + $d 0x00004e90 0 .text.Thermistor_Array_Transform + $t 0x00004e90 0 .text.Thermistor_Array_Transform + $d 0x00004ed0 0 .text.Thermistor_Array_Transform + $d 0x00004ed8 0 .text.Calculate_ADC_Sample_Average + $t 0x00004ed8 0 .text.Calculate_ADC_Sample_Average + $d 0x00004f30 0 .text.Calculate_ADC_Sample_Average + $d 0x00004f3c 0 .text.Get_Temp_Val + $t 0x00004f3c 0 .text.Get_Temp_Val + $d 0x00004f44 0 .text.Get_Temp_Val + $d 0x00004f48 0 .text.Gather_Temp + $t 0x00004f48 0 .text.Gather_Temp + $d 0x00004fa8 0 .text.Gather_Temp + $d 0x00004fb4 0 .text.ADC_Sample_Task + $t 0x00004fb4 0 .text.ADC_Sample_Task + $d 0x00005018 0 .text.ADC_Sample_Task + $d 0x00005024 0 .text.Contol_Switch_Light + $t 0x00005024 0 .text.Contol_Switch_Light + $d 0x00005034 0 .text.Contol_Switch_Light + $t 0x00005040 0 .text.Contol_Switch_Light + $d 0x000053bc 0 .text.Contol_Switch_Light + $t 0x000053c4 0 .text.Contol_Switch_Light + $d 0x00005410 0 .text.Contol_Switch_Light_2 + $t 0x00005410 0 .text.Contol_Switch_Light_2 + $d 0x00005420 0 .text.Contol_Switch_Light_2 + $t 0x0000542c 0 .text.Contol_Switch_Light_2 + $d 0x000057a8 0 .text.Contol_Switch_Light_2 + $t 0x000057b0 0 .text.Contol_Switch_Light_2 + $d 0x000057fc 0 .text.Contol_Switch_ClickAction + $t 0x000057fc 0 .text.Contol_Switch_ClickAction + $d 0x00005820 0 .text.Contol_Switch_ClickAction + $d 0x00005824 0 .text.Get_TM1812_State_Change + $t 0x00005824 0 .text.Get_TM1812_State_Change + $d 0x00005860 0 .text.Get_TM1812_State_Change + $d 0x00005868 0 .text.TimeCall_SIO_Send + $t 0x00005868 0 .text.TimeCall_SIO_Send + $d 0x0000597c 0 .text.TimeCall_SIO_Send + $d 0x00005988 0 .text.TimeCall_SIO_Send2 + $t 0x00005988 0 .text.TimeCall_SIO_Send2 + $d 0x00005a20 0 .text.TimeCall_SIO_Send2 + $d 0x00005a30 0 .text.Tm1812_Task + $t 0x00005a30 0 .text.Tm1812_Task + $d 0x00005a78 0 .text.Tm1812_Task + $d 0x00005a8c 0 .text.Tm1812_Ch_Insert_Data + $t 0x00005a8c 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005aa8 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005ab0 0 .text.TM1812_Control_CH_State + $t 0x00005ab0 0 .text.TM1812_Control_CH_State + $d 0x00005b0c 0 .text.TM1812_Control_CH_State + $d 0x00005b20 0 .text.TM1812_Control_CH_CurrState + $t 0x00005b20 0 .text.TM1812_Control_CH_CurrState + $d 0x00005b78 0 .text.TM1812_Control_CH_CurrState + $d 0x00005b84 0 .text.TM1812_LED_Init + $t 0x00005b84 0 .text.TM1812_LED_Init + $d 0x00005bec 0 .text.TM1812_LED_Init + $d 0x00005bf0 0 .text.HT1621_WR_Data + $t 0x00005bf0 0 .text.HT1621_WR_Data + $d 0x00005c34 0 .text.HT1621_WR_Data + $d 0x00005c38 0 .text.HT1621_WR_CMD + $t 0x00005c38 0 .text.HT1621_WR_CMD + $d 0x00005c64 0 .text.HT1621_WR_CMD + $d 0x00005c68 0 .text.HT1621_Init + $t 0x00005c68 0 .text.HT1621_Init + $d 0x00005d14 0 .text.HT1621_Init + $d 0x00005d1c 0 .text.HT1621_Clear + $t 0x00005d1c 0 .text.HT1621_Clear + $d 0x00005d64 0 .text.HT1621_Clear + $d 0x00005d6c 0 .text.HT1621_ALLON + $t 0x00005d6c 0 .text.HT1621_ALLON + $d 0x00005da8 0 .text.HT1621_ALLON + $d 0x00005dac 0 .text.HT1621_Refresh_Data + $t 0x00005dac 0 .text.HT1621_Refresh_Data + $d 0x00005df0 0 .text.HT1621_Refresh_Data + $d 0x00005df8 0 .text.Set_Temperature_Display + $t 0x00005df8 0 .text.Set_Temperature_Display + $d 0x00005ebc 0 .text.Set_Temperature_Display + $d 0x00005ec8 0 .text.Local_Temperature_Display + $t 0x00005ec8 0 .text.Local_Temperature_Display + $d 0x00005f8c 0 .text.Local_Temperature_Display + $d 0x00005f98 0 .text.Control_Mode + $t 0x00005f98 0 .text.Control_Mode + $d 0x00005fa2 0 .text.Control_Mode + $t 0x00005fb0 0 .text.Control_Mode + $d 0x000061d4 0 .text.Control_Mode + $d 0x000061dc 0 .text.Control_wind_velocity + $t 0x000061dc 0 .text.Control_wind_velocity + $d 0x000061e8 0 .text.Control_wind_velocity + $t 0x000061ee 0 .text.Control_wind_velocity + $d 0x000062a8 0 .text.Control_wind_velocity + $d 0x000062ac 0 .text.Control_Prompt_Text + $t 0x000062ac 0 .text.Control_Prompt_Text + $d 0x0000634c 0 .text.Control_Prompt_Text + $d 0x00006350 0 .text.Controlled_Buzzer + $t 0x00006350 0 .text.Controlled_Buzzer + $d 0x00006390 0 .text.Controlled_Buzzer + $d 0x00006398 0 .text.Controlled_LCD_Backlight + $t 0x00006398 0 .text.Controlled_LCD_Backlight + $d 0x0000646c 0 .text.Controlled_LCD_Backlight + $d 0x00006474 0 .text.Controlled_Key_Backlight + $t 0x00006474 0 .text.Controlled_Key_Backlight + $d 0x000064a0 0 .text.Controlled_Key_Backlight + $d 0x000064a4 0 .text.Set_Device_ADDR + $t 0x000064a4 0 .text.Set_Device_ADDR + $d 0x00006538 0 .text.Set_Device_ADDR + $d 0x00006540 0 .text.Set_Temp_Difference + $t 0x00006540 0 .text.Set_Temp_Difference + $d 0x0000659c 0 .text.Set_Temp_Difference + $d 0x000065a4 0 .text.HT1621_Refresh_Task + $t 0x000065a4 0 .text.HT1621_Refresh_Task + $d 0x0000661c 0 .text.HT1621_Refresh_Task + $d 0x00006634 0 .text.Boot_Function_Init + $t 0x00006634 0 .text.Boot_Function_Init + $d 0x00006680 0 .text.Boot_Function_Init + $d 0x00006694 0 .text.Boot_Comm_CheckSum + $t 0x00006694 0 .text.Boot_Comm_CheckSum + $d 0x000066b4 0 .text.Boot_Comm_CheckSum + $d 0x000066b8 0 .text.Boot_Comm_FillReplyPack + $t 0x000066b8 0 .text.Boot_Comm_FillReplyPack + $d 0x0000670c 0 .text.Boot_Comm_FillReplyPack + $d 0x00006714 0 .text.Boot_Time_Refresh + $t 0x00006714 0 .text.Boot_Time_Refresh + $d 0x00006720 0 .text.Boot_Time_Refresh + $d 0x00006728 0 .text.Boot_Comm_UpgradeProcess + $t 0x00006728 0 .text.Boot_Comm_UpgradeProcess + $d 0x000068a0 0 .text.Boot_Comm_UpgradeProcess + $d 0x000068b0 0 .text.TemCtrl_Init + $t 0x000068b0 0 .text.TemCtrl_Init + $d 0x00006a10 0 .text.TemCtrl_Init + $d 0x00006a28 0 .text.TemCtrl_Model_Set + $t 0x00006a28 0 .text.TemCtrl_Model_Set + $d 0x00006a6c 0 .text.TemCtrl_Model_Set + $d 0x00006a74 0 .text.TemCtrl_Fan_Set + $t 0x00006a74 0 .text.TemCtrl_Fan_Set + $d 0x00006a92 0 .text.TemCtrl_Fan_Set + $t 0x00006a96 0 .text.TemCtrl_Fan_Set + $d 0x00006ab8 0 .text.TemCtrl_Fan_Set + $d 0x00006ac0 0 .text.TemCtrl_Temperature_Dec + $t 0x00006ac0 0 .text.TemCtrl_Temperature_Dec + $d 0x00006ae8 0 .text.TemCtrl_Temperature_Dec + $d 0x00006af0 0 .text.TemCtrl_Temperature_Add + $t 0x00006af0 0 .text.TemCtrl_Temperature_Add + $d 0x00006b18 0 .text.TemCtrl_Temperature_Add + $d 0x00006b20 0 .text.TemCtrl_OnOff_Set + $t 0x00006b20 0 .text.TemCtrl_OnOff_Set + $d 0x00006b4c 0 .text.TemCtrl_OnOff_Set + $d 0x00006b54 0 .text.Tem_Valve_Ctrl + $t 0x00006b54 0 .text.Tem_Valve_Ctrl + $d 0x00006c14 0 .text.Tem_Valve_Ctrl + $d 0x00006c20 0 .text.TemCtrl_Pro + $t 0x00006c20 0 .text.TemCtrl_Pro + $d 0x00006d80 0 .text.TemCtrl_Pro + $d 0x00006d98 0 .text.KEY1_Model_Press_Fun + $t 0x00006d98 0 .text.KEY1_Model_Press_Fun + $d 0x00006e50 0 .text.KEY1_Model_Press_Fun + $d 0x00006e64 0 .text.KEY2_Fan_Press_Fun + $t 0x00006e64 0 .text.KEY2_Fan_Press_Fun + $d 0x00006f1c 0 .text.KEY2_Fan_Press_Fun + $d 0x00006f30 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00006f30 0 .text.KEY3_TempAdd_Press_Fun + $d 0x0000701c 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00007030 0 .text.KEY3_Long_Press_Fun + $t 0x00007030 0 .text.KEY3_Long_Press_Fun + $d 0x0000708c 0 .text.KEY3_Long_Press_Fun + $d 0x000070a0 0 .text.KEY4_TempDec_Press_Fun + $t 0x000070a0 0 .text.KEY4_TempDec_Press_Fun + $d 0x0000718c 0 .text.KEY4_TempDec_Press_Fun + $d 0x000071a0 0 .text.KEY4_Long_Press + $t 0x000071a0 0 .text.KEY4_Long_Press + $d 0x000071fc 0 .text.KEY4_Long_Press + $d 0x00007210 0 .text.KEY5_OnOff_Press_Fun + $t 0x00007210 0 .text.KEY5_OnOff_Press_Fun + $d 0x00007288 0 .text.KEY5_OnOff_Press_Fun + $d 0x000072a0 0 .text.TempCtrl_OnOff_DisPlay + $t 0x000072a0 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000072ec 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000072f4 0 .text.DisPlay_Init + $t 0x000072f4 0 .text.DisPlay_Init + $d 0x0000730c 0 .text.DisPlay_Init + $d 0x00007314 0 .text.DisPlay_Task + $t 0x00007314 0 .text.DisPlay_Task + $d 0x00007536 0 .text.DisPlay_Task + $t 0x00007540 0 .text.DisPlay_Task + $d 0x00007670 0 .text.DisPlay_Task + $t 0x000076b0 0 .text.DisPlay_Task + $d 0x000077dc 0 .text.DisPlay_Task + $d 0x000077fc 0 .text.Debug_Init + $t 0x000077fc 0 .text.Debug_Init + $d 0x00007830 0 .text.Debug_Init + $d 0x00007838 0 .text.Dev_SaveData + $t 0x00007838 0 .text.Dev_SaveData + $d 0x000078d0 0 .text.Dev_SaveData + $d 0x000078e4 0 .text.Debug_Task + $t 0x000078e4 0 .text.Debug_Task + $d 0x00007934 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x00007948 F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007948 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00007948 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x0000796c 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007970 0 .text.Relay_Init + $t 0x00007970 0 .text.Relay_Init + $d 0x00007990 0 .text.Relay_Init + $d 0x00007998 0 .text.Relay_High + $t 0x00007998 0 .text.Relay_High + $d 0x000079b4 0 .text.Relay_Mid + $t 0x000079b4 0 .text.Relay_Mid + $d 0x000079d0 0 .text.Relay_Low + $t 0x000079d0 0 .text.Relay_Low + $d 0x000079ec 0 .text.Relay_Stop + $t 0x000079ec 0 .text.Relay_Stop + $d 0x00007a08 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00007a08 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x00007a1c 0 .text.RLY_Direct_Control + $t 0x00007a1c 0 .text.RLY_Direct_Control + $d 0x00007a5e 0 .text.RLY_Direct_Control + $t 0x00007a62 0 .text.RLY_Direct_Control + $d 0x00007adc 0 .text.RLY_Direct_Control + $d 0x00007ae4 0 .text.RLY_Zero_Control + $t 0x00007ae4 0 .text.RLY_Zero_Control + $d 0x00007afa 0 .text.RLY_Zero_Control + $t 0x00007afe 0 .text.RLY_Zero_Control + $d 0x00007b78 0 .text.RLY_Zero_Control + $d 0x00007b7c 0 .text.NetCRC16_Check + $t 0x00007b7c 0 .text.NetCRC16_Check + $d 0x00007bc0 0 .text.NetCRC16_Check + $d 0x00007bc8 0 .text.GetCRC16 + $t 0x00007bc8 0 .text.GetCRC16 + $d 0x00007bfc 0 .text.GetCRC16 + $d 0x00007c04 0 .text.SOR_CRC + $t 0x00007c04 0 .text.SOR_CRC + $d 0x00007c1c 0 .text.Rs485_ASend + $t 0x00007c1c 0 .text.Rs485_ASend + $d 0x00007c9a 0 .text.Rs485_ASend + $t 0x00007c9e 0 .text.Rs485_ASend + $d 0x00007d1c 0 .text.Rs485_ASend + $d 0x00007d24 0 .text.Rs485AskCycleSend + $t 0x00007d24 0 .text.Rs485AskCycleSend + $d 0x00007d9a 0 .text.Rs485AskCycleSend + $t 0x00007d9e 0 .text.Rs485AskCycleSend + $d 0x00007e20 0 .text.Rs485AskCycleSend + $d 0x00007e28 0 .text.Rs485AskCtrlSend + $t 0x00007e28 0 .text.Rs485AskCtrlSend + $d 0x00007e80 0 .text.Rs485AskCtrlSend + $d 0x00007e84 0 .text.Rs485AskReadSend + $t 0x00007e84 0 .text.Rs485AskReadSend + $d 0x00007ee8 0 .text.Rs485AskReadSend + $d 0x00007eec 0 .text.Rs485_DevPort_ACK + $t 0x00007eec 0 .text.Rs485_DevPort_ACK + $d 0x00007f04 0 .text.Temp_Rec_Analysis + $t 0x00007f04 0 .text.Temp_Rec_Analysis + $d 0x00007f6c 0 .text.Temp_Rec_Analysis + $t 0x00007f7e 0 .text.Temp_Rec_Analysis + $d 0x00007f96 0 .text.Temp_Rec_Analysis + $t 0x00007f9a 0 .text.Temp_Rec_Analysis + $d 0x00008088 0 .text.Temp_Rec_Analysis + $t 0x0000808c 0 .text.Temp_Rec_Analysis + $d 0x000080a8 0 .text.Temp_Rec_Analysis + $d 0x000080b4 0 .text.Tem_Rs485_Rec_Pro + $t 0x000080b4 0 .text.Tem_Rs485_Rec_Pro + $d 0x00008170 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x00008180 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008180 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00008180 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x0000818c 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008190 0 .text.tk_clk_config + $t 0x00008190 0 .text.tk_clk_config + $d 0x000081b4 0 .text.tk_clk_config + $d 0x000081b8 0 .text.TK_con0_config + $t 0x000081b8 0 .text.TK_con0_config + $d 0x00008268 0 .text.TK_con0_config + $d 0x00008274 0 .text.tk_io_enable + $t 0x00008274 0 .text.tk_io_enable + $d 0x000082b8 0 .text.tk_io_enable + $t 0x000082c8 0 .text.tk_io_enable + $d 0x0000839c 0 .text.tk_io_enable + $d 0x000083a8 0 .text.TK_Single_Longpress_prg + $t 0x000083a8 0 .text.TK_Single_Longpress_prg + $d 0x0000849c 0 .text.TK_Single_Longpress_prg + $d 0x000084d0 0 .text.TK_Sampling_prog + $t 0x000084d0 0 .text.TK_Sampling_prog + $d 0x00008578 0 .text.TK_Sampling_prog + $d 0x0000859c 0 .text.get_key_number + $t 0x0000859c 0 .text.get_key_number + $d 0x000085c0 0 .text.get_key_number + $d 0x000085c4 0 .text.get_key_number0 + $t 0x000085c4 0 .text.get_key_number0 + $d 0x000085e8 0 .text.get_key_number0 + $d 0x000085ec 0 .text.get_key_number1 + $t 0x000085ec 0 .text.get_key_number1 + $d 0x00008610 0 .text.get_key_number1 + $d 0x00008614 0 .text.get_key_number2 + $t 0x00008614 0 .text.get_key_number2 + $d 0x00008638 0 .text.get_key_number2 + $d 0x0000863c 0 .text.TK_Baseline_prog + $t 0x0000863c 0 .text.TK_Baseline_prog + $d 0x00008750 0 .text.TK_Baseline_prog + $d 0x0000878c 0 .text.TK_Baseline_prog2 + $t 0x0000878c 0 .text.TK_Baseline_prog2 + $d 0x00008898 0 .text.TK_Baseline_prog2 + $d 0x000088d4 0 .text.tk_poweron_data_fineturn + $t 0x000088d4 0 .text.tk_poweron_data_fineturn + $d 0x000089d0 0 .text.tk_poweron_data_fineturn + $d 0x000089f8 0 .text.TK_Scan_Start + $t 0x000089f8 0 .text.TK_Scan_Start + $d 0x00008a44 0 .text.TK_Scan_Start + $d 0x00008a60 0 .text.TK_Keymap_prog + $t 0x00008a60 0 .text.TK_Keymap_prog + $d 0x00008d9c 0 .text.TK_Keymap_prog + $t 0x00008e20 0 .text.TK_Keymap_prog + $d 0x0000917c 0 .text.TK_Keymap_prog + $t 0x000091c0 0 .text.TK_Keymap_prog + $d 0x000092bc 0 .text.TK_Keymap_prog + $d 0x000092d0 0 .text.TK_overflow_predict + $t 0x000092d0 0 .text.TK_overflow_predict + $d 0x000093c4 0 .text.TK_overflow_predict + $d 0x000093f8 0 .text.TK_Baseline_tracking + $t 0x000093f8 0 .text.TK_Baseline_tracking + $d 0x00009750 0 .text.TK_Baseline_tracking + $t 0x000097ac 0 .text.TK_Baseline_tracking + $d 0x000098b8 0 .text.TK_Baseline_tracking + $d 0x000098c8 0 .text.TK_result_prog + $t 0x000098c8 0 .text.TK_result_prog + $d 0x000099c8 0 .text.TK_result_prog + $d 0x000099f8 0 .text.get_key_seq + $t 0x000099f8 0 .text.get_key_seq + $d 0x00009a28 0 .text.get_key_seq + $d 0x00009a30 0 .text.CORET_CONFIG + $t 0x00009a30 0 .text.CORET_CONFIG + $d 0x00009a60 0 .text.CORET_CONFIG + $d 0x00009a68 0 .text.tk_chxval_seqxcon_clr + $t 0x00009a68 0 .text.tk_chxval_seqxcon_clr + $d 0x00009a80 0 .text.tk_chxval_seqxcon_clr + $d 0x00009a84 0 .text.tk_freq_para_init + $t 0x00009a84 0 .text.tk_freq_para_init + $d 0x00009adc 0 .text.tk_freq_para_init + $t 0x00009ae2 0 .text.tk_freq_para_init + $d 0x00009afc 0 .text.tk_freq_para_init + $d 0x00009b30 0 .text.tk_reserved_init + $t 0x00009b30 0 .text.tk_reserved_init + $d 0x00009b44 0 .text.tk_reserved_init + $d 0x00009b58 0 .text.TKEYIntHandler + $t 0x00009b58 0 .text.TKEYIntHandler + $d 0x00009be8 0 .text.TKEYIntHandler + $d 0x00009bf8 0 .text.CORETHandler + $t 0x00009bf8 0 .text.CORETHandler + $d 0x00009d20 0 .text.CORETHandler + $d 0x00009d54 0 .text.tk_init + $t 0x00009d54 0 .text.tk_init + $d 0x00009e3c 0 .text.tk_init + $d 0x00009e64 0 .text.std_clk_calib + $t 0x00009e64 0 .text.std_clk_calib + $d 0x0000a0ac 0 .text.std_clk_calib + __func__.6533 0x0000a0e8 O 28 .rodata + __func__.6571 0x0000a104 O 25 .rodata + bp 0x0000a45c O 16 .rodata + dp_l 0x0000a46c O 16 .rodata + dp_h 0x0000a47c O 16 .rodata + NUM.6526 0x200000b8 O 1 .bss + adc_tick.6436 0x2000013c O 4 .bss + StateChange_Tick.6526 0x2000022c O 4 .bss + tick.6465 0x20000230 O 4 .bss + OpenDisPlay_Flag 0x20000234 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __adddf3 0x00001054 F 46 .text + __subdf3 0x00001084 F 54 .text + __muldf3 0x000010bc F 564 .text + __divdf3 0x000012f0 F 340 .text + __gtdf2 0x00001444 F 60 .text + __gedf2 0x00001480 F 60 .text + __ledf2 0x000014bc F 58 .text + __floatsidf 0x000014f8 F 112 .text + __fixdfsi 0x00001568 F 112 .text + __floatunsidf 0x000015d8 F 84 .text + __muldi3 0x0000162c F 68 .text + __clzsi2 0x00001670 F 64 .text + __pack_d 0x000016b0 F 412 .text + __unpack_d 0x0000184c F 196 .text + __fpcmp_parts_d 0x00001910 F 140 .text + __memset_fast 0x0000199c w F 136 .text + memset 0x0000199c w F 136 .text + __memcpy_fast 0x00001a24 w F 100 .text + memcpy 0x00001a24 w F 100 .text + __GI_strncmp 0x00001a88 F 38 .text + strncmp 0x00001a88 w F 38 .text + __main 0x00001ab0 F 56 .text.__main + SYSCON_RST_VALUE 0x00001b5c F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001ba8 F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001bd8 F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001c60 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001c88 F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001cc4 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001cd8 F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001cf0 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001d10 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001d2c F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001d48 F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x00001d88 F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00001dbc F 4 .text.GPIO_EXTI_interrupt + EXI3_Int_Enable 0x00001dc0 F 16 .text.EXI3_Int_Enable + EXI4_Int_Enable 0x00001dd0 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00001de0 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00001dec F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x00001df8 F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x00001e1c F 48 .text.Set_INT_Priority + GPIO_DeInit 0x00001e4c F 100 .text.GPIO_DeInit + GPIO_Init 0x00001eb0 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f90 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001fa4 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001fb4 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x000020c0 F 252 .text.GPIOA0_EXI_Init + GPIOB0_EXI_Init 0x000021bc F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x00002228 F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x00002230 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x00002238 F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x0000224e F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00002260 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002274 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002284 F 28 .text.BT_DeInit + BT_Start 0x000022a0 F 8 .text.BT_Start + BT_Soft_Reset 0x000022a8 F 10 .text.BT_Soft_Reset + BT_Configure 0x000022b2 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x000022ca F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x000022f6 F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x000022fc F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x00002310 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x00002320 F 32 .text.SIO_DeInit + SIO_IO_Init 0x00002340 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x000023a0 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x000023b0 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x00002400 F 24 .text.UART0_DeInit + UART1_DeInit 0x00002418 F 24 .text.UART1_DeInit + UART2_DeInit 0x00002430 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x00002448 F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00002464 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002480 F 236 .text.UART_IO_Init + UARTInit 0x0000256c F 16 .text.UARTInit + UARTInitRxTxIntEn 0x0000257c F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x0000258c F 30 .text.UARTTransmit + EPT_Stop 0x000025ac F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x000025d4 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x00002638 F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x00002668 F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00002694 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x000026a0 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x000026c8 F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x000026dc F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x000026f4 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x00002708 F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00002784 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x0000291c F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002a9c F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002b3c F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002b68 F 320 .text.tk_parameter_init + CORET_DeInit 0x00002ca8 F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002cc0 F 24 .text.CORET_Int_Enable + CORET_start 0x00002cd8 F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002ce8 F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002cf8 F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002d08 F 16 .text.CORET_reload + main 0x00002d18 F 84 .text.startup.main + delay_nms 0x00002d6c F 44 .text.delay_nms + delay_nus 0x00002d98 F 34 .text.delay_nus + GPIO_CONFIG 0x00002dbc F 140 .text.GPIO_CONFIG + BT_CONFIG 0x00002e48 F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x00002ea8 F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002f0c F 156 .text.APT32F102_init + SYSCONIntHandler 0x00002fa8 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00003098 F 104 .text.IFCIntHandler + ADCIntHandler 0x00003100 F 104 .text.ADCIntHandler + EPT0IntHandler 0x00003168 F 428 .text.EPT0IntHandler + WWDTHandler 0x00003314 F 52 .text.WWDTHandler + GPT0IntHandler 0x00003348 F 128 .text.GPT0IntHandler + RTCIntHandler 0x000033c8 F 112 .text.RTCIntHandler + UART0IntHandler 0x00003438 F 60 .text.UART0IntHandler + UART1IntHandler 0x00003474 F 60 .text.UART1IntHandler + UART2IntHandler 0x000034b0 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00003544 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x0000362c F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003680 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x000036b0 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x000036e0 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00003728 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003794 F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x00003814 F 52 .text.LPTIntHandler + BT0IntHandler 0x00003848 F 76 .text.BT0IntHandler + BT1IntHandler 0x00003894 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00003904 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003906 F 8 .text.PendTrapHandler + Trap3Handler 0x0000390e F 8 .text.Trap3Handler + Trap2Handler 0x00003916 F 8 .text.Trap2Handler + Trap1Handler 0x0000391e F 8 .text.Trap1Handler + Trap0Handler 0x00003926 F 8 .text.Trap0Handler + UnrecExecpHandler 0x0000392e F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00003936 F 8 .text.BreakPointHandler + AccessErrHandler 0x0000393e F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00003946 F 8 .text.IllegalInstrHandler + MisalignedHandler 0x0000394e F 8 .text.MisalignedHandler + CNTAIntHandler 0x00003956 F 8 .text.CNTAIntHandler + I2CIntHandler 0x0000395e F 8 .text.I2CIntHandler + __divsi3 0x00003968 F 36 .text.__divsi3 + __udivsi3 0x0000398c F 36 .text.__udivsi3 + __modsi3 0x000039b0 F 36 .text.__modsi3 + __umodsi3 0x000039d4 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000039f8 F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000039fe F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00003a04 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003b0c F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003b50 F 140 .text.UART2_TASK + BUS485_Send 0x00003bdc F 196 .text.BUS485_Send + MultSend_Task 0x00003ca0 F 116 .text.MultSend_Task + Set_GroupSend 0x00003d14 F 100 .text.Set_GroupSend + Clear_SendFlag 0x00003d78 F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x00003d88 F 12 .text.BUS485_Jump_Boot + BUS485Send_Task 0x00003d94 F 52 .text.BUS485Send_Task + BusIdle_Task 0x00003dc8 F 64 .text.BusIdle_Task + BusBusy_Task 0x00003e08 F 92 .text.BusBusy_Task + Dbg_Println 0x00003e64 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00003e70 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00003e74 F 104 .text.Touch_Key_Init + Get_TouchKey_CH_State 0x00003edc F 60 .text.Get_TouchKey_CH_State + TouchKey_RS485_Printf_3 0x00003f18 F 756 .text.TouchKey_RS485_Printf_3 + Touch_Key_Event_Handling 0x0000420c F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x000042b8 F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x000042f4 F 256 .text.Touch_Key_Task + TouchKey_CheckSum 0x000043f4 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x0000440c F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x0000447c F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x00004534 F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x0000462c F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004664 F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x00004714 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x00004730 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004808 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004820 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00004894 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x000048d8 F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004964 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_WriteTouchPara 0x00004984 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x000049f0 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00004a9c F 220 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x00004b7c F 106 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004bec F 128 .text.EEPROM_TouchPara_Printf + EEPROM_ReadMCUDevInfo 0x00004c6c F 112 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00004cdc F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00004d1c F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x00004d54 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00004dac F 136 .text.EEPROM_Init + ADC_Init 0x00004e34 F 92 .text.ADC_Init + Thermistor_Array_Transform 0x00004e90 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00004ed8 F 100 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x00004f3c F 12 .text.Get_Temp_Val + Gather_Temp 0x00004f48 F 108 .text.Gather_Temp + ADC_Sample_Task 0x00004fb4 F 112 .text.ADC_Sample_Task + Contol_Switch_Light 0x00005024 F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00005410 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x000057fc F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00005824 F 68 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00005868 F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x00005988 F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x00005a30 F 92 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00005a8c F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x00005ab0 F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x00005b20 F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00005b84 F 108 .text.TM1812_LED_Init + HT1621_WR_Data 0x00005bf0 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x00005c38 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005c68 F 180 .text.HT1621_Init + HT1621_Clear 0x00005d1c F 80 .text.HT1621_Clear + HT1621_ALLON 0x00005d6c F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x00005dac F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x00005df8 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x00005ec8 F 208 .text.Local_Temperature_Display + Control_Mode 0x00005f98 F 580 .text.Control_Mode + Control_wind_velocity 0x000061dc F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x000062ac F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00006350 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00006398 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x00006474 F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x000064a4 F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00006540 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x000065a4 F 144 .text.HT1621_Refresh_Task + Boot_Function_Init 0x00006634 F 96 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x00006694 F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x000066b8 F 92 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x00006714 F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x00006728 F 392 .text.Boot_Comm_UpgradeProcess + TemCtrl_Init 0x000068b0 F 376 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00006a28 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00006a74 F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00006ac0 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00006af0 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00006b20 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00006b54 F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00006c20 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00006d98 F 204 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x00006e64 F 204 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00006f30 F 256 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00007030 F 112 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x000070a0 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x000071a0 F 112 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00007210 F 144 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x000072a0 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x000072f4 F 32 .text.DisPlay_Init + DisPlay_Task 0x00007314 F 1256 .text.DisPlay_Task + Debug_Init 0x000077fc F 60 .text.Debug_Init + Dev_SaveData 0x00007838 F 172 .text.Dev_SaveData + Debug_Task 0x000078e4 F 100 .text.Debug_Task + Relay_Init 0x00007970 F 40 .text.Relay_Init + Relay_High 0x00007998 F 28 .text.Relay_High + Relay_Mid 0x000079b4 F 28 .text.Relay_Mid + Relay_Low 0x000079d0 F 28 .text.Relay_Low + Relay_Stop 0x000079ec F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x00007a08 F 20 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x00007a1c F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x00007ae4 F 152 .text.RLY_Zero_Control + NetCRC16_Check 0x00007b7c F 76 .text.NetCRC16_Check + GetCRC16 0x00007bc8 F 60 .text.GetCRC16 + SOR_CRC 0x00007c04 F 22 .text.SOR_CRC + Rs485_ASend 0x00007c1c F 264 .text.Rs485_ASend + Rs485AskCycleSend 0x00007d24 F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00007e28 F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00007e84 F 104 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x00007eec F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x00007f04 F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000080b4 F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x00008190 F 40 .text.tk_clk_config + TK_con0_config 0x000081b8 F 188 .text.TK_con0_config + tk_io_enable 0x00008274 F 308 .text.tk_io_enable + TK_Single_Longpress_prg 0x000083a8 F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x000084d0 F 204 .text.TK_Sampling_prog + get_key_number 0x0000859c F 40 .text.get_key_number + get_key_number0 0x000085c4 F 40 .text.get_key_number0 + get_key_number1 0x000085ec F 40 .text.get_key_number1 + get_key_number2 0x00008614 F 40 .text.get_key_number2 + TK_Baseline_prog 0x0000863c F 336 .text.TK_Baseline_prog + TK_Baseline_prog2 0x0000878c F 328 .text.TK_Baseline_prog2 + tk_poweron_data_fineturn 0x000088d4 F 292 .text.tk_poweron_data_fineturn + TK_Scan_Start 0x000089f8 F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x00008a60 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x000092d0 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x000093f8 F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x000098c8 F 304 .text.TK_result_prog + get_key_seq 0x000099f8 F 56 .text.get_key_seq + CORET_CONFIG 0x00009a30 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00009a68 F 28 .text.tk_chxval_seqxcon_clr + tk_freq_para_init 0x00009a84 F 156 .text.tk_freq_para_init + tk_reserved_init 0x00009b30 F 40 .text.tk_reserved_init + TKEYIntHandler 0x00009b58 F 160 .text.TKEYIntHandler + CORETHandler 0x00009bf8 F 348 .text.CORETHandler + tk_init 0x00009d54 F 272 .text.tk_init + std_clk_calib 0x00009e64 F 644 .text.std_clk_calib + R_Array 0x0000a11e O 820 .rodata + Diaital 0x0000a452 O 10 .rodata + __thenan_df 0x0000a48c O 20 .rodata + __clz_tab 0x0000a4a0 O 256 .rodata + _end_rodata 0x0000a9d8 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 + Printf_Ch 0x20000068 O 1 .data + MCU_Touch_CH 0x20000069 O 5 .data + s_tkey 0x20000070 O 1 .data + samp_setover_f 0x20000071 O 1 .data + scan_step_temp 0x20000072 O 1 .data + SigleTK_longpress_time 0x20000074 O 2 .data + tk_dataturn_en 0x20000076 O 1 .data + tk_overflow_en 0x20000077 O 1 .data + tk_div 0x20000078 O 34 .data + neg_build_bounce 0x2000009a O 1 .data + pos_build_bounce 0x2000009b O 1 .data + Valid_SingleKey_Num 0x2000009c O 1 .data + tk_scan_para0 0x200000a0 O 4 .data + tk_scan_para1 0x200000a4 O 4 .data + tk_scan_para2 0x200000a8 O 4 .data + TkeyRebaseTime 0x200000ac O 1 .data + _end_data 0x200000b0 0 .data + Sav_Temp 0x200000b0 O 4 .bss + _bss_start 0x200000b0 0 .bss + Sys_RSR 0x200000b4 O 4 .bss + SysTick_100us 0x200000bc O 4 .bss + SysTick_1ms 0x200000c0 O 4 .bss + DealBuffer 0x200000c4 O 100 .bss + DealLen 0x20000128 O 2 .bss + RS485_Comming 0x2000012c O 4 .bss + RS485_Comm_Flag 0x20000130 O 4 .bss + RS485_Comm_Start 0x20000134 O 4 .bss + RS485_Comm_End 0x20000138 O 4 .bss + tm1812_param 0x20000140 O 232 .bss + K 0x20000228 O 1 .bss + K2 0x20000229 O 1 .bss + keymap_strict_mode 0x20000235 O 1 .bss + Press_debounce_data 0x20000238 O 1 .bss + TK_Lowpower_mode 0x20000239 O 1 .bss + TK_Lowpower_level 0x2000023a O 1 .bss + TK_longpress_time 0x2000023c O 4 .bss + Release_debounce_data 0x20000240 O 1 .bss + Key_mode 0x20000241 O 1 .bss + TK_icon 0x20000242 O 34 .bss + MultiTimes_Filter 0x20000264 O 1 .bss + Base_Speed 0x20000265 O 1 .bss + TK_IO_ENABLE 0x20000268 O 4 .bss + Valid_Key_Num 0x2000026c O 1 .bss + TK_senprd 0x2000026e O 34 .bss + TK_Wakeup_level 0x20000290 O 1 .bss + TK_Triggerlevel 0x20000292 O 34 .bss + TK_EC_LEVEL 0x200002b4 O 2 .bss + TK_FVR_LEVEL 0x200002b6 O 2 .bss + TK_BaseCnt 0x200002b8 O 4 .bss + TK_PSEL_MODE 0x200002bc O 2 .bss + R_CMPB_BUF 0x200002c0 O 4 .bss + R_CMPA_BUF 0x200002c4 O 4 .bss + R_SIORX_buf 0x200002c8 O 40 .bss + g_uart 0x200002f0 O 348 .bss + m_send 0x2000044c O 136 .bss + touch_para 0x200004d4 O 28 .bss + g_key 0x200004f0 O 52 .bss + g_eeprom 0x20000524 O 8 .bss + g_mcu_dev 0x2000052c O 37 .bss + g_adc 0x20000554 O 80 .bss + g_switch 0x200005a4 O 28 .bss + HT1621 0x200005c0 O 64 .bss + g_boot 0x20000600 O 316 .bss + g_app_feature 0x2000073c O 256 .bss + TempCtrl 0x2000083c O 41 .bss + Debug_Inf 0x20000868 O 16 .bss + c_rly 0x20000878 O 12 .bss + Tk_press_time_cnt4 0x20000884 O 4 .bss + baseline_data0 0x20000888 O 34 .bss + TK_Postive_build2 0x200008aa O 17 .bss + Key_Map1 0x200008bc O 4 .bss + Valid_Key_Num_CNT 0x200008c0 O 3 .bss + offset_data2_abs 0x200008c4 O 34 .bss + time_cnt0 0x200008e8 O 4 .bss + offset0_max_tempB 0x200008ec O 2 .bss + scan_f 0x200008ee O 1 .bss + offset_data1_abs 0x200008f0 O 34 .bss + TK_Slider1_Value 0x20000912 O 1 .bss + TK_Wheel_Value 0x20000913 O 1 .bss + Release_debounce0 0x20000914 O 17 .bss + Key_Map0 0x20000928 O 4 .bss + Tk_press_time_cnt2 0x2000092c O 4 .bss + TK_Slider0_Seq 0x20000930 O 4 .bss + bsae_over_f 0x20000934 O 1 .bss + Press_debounce0 0x20000935 O 17 .bss + Valid_key_f 0x20000946 O 1 .bss + offset_data0 0x20000948 O 34 .bss + offset2_max_tempA 0x2000096a O 2 .bss + TK_Scan_Freq1 0x2000096c O 4 .bss + sampling_data1 0x20000970 O 34 .bss + TK_Slider1_Level 0x20000992 O 1 .bss + TK_Slider1_Function 0x20000993 O 1 .bss + base_update_fs 0x20000994 O 3 .bss + TK_Slider0_Function 0x20000997 O 1 .bss + Tk_press_time_cnt3 0x20000998 O 4 .bss + TK_Scan_Freq2 0x2000099c O 4 .bss + Key_Map2 0x200009a0 O 4 .bss + Release_debounce1 0x200009a4 O 17 .bss + tk_overflow_f 0x200009b5 O 1 .bss + time_cnt2 0x200009b8 O 4 .bss + TK_Negtive_build2 0x200009bc O 17 .bss + base_update_f 0x200009cd O 1 .bss + TK_Postive_build1 0x200009ce O 17 .bss + offset_max_data 0x200009e0 O 64 .bss + time_cnt 0x20000a20 O 4 .bss + lpt_scan_pend_cnt 0x20000a24 O 2 .bss + TK_track_cnt 0x20000a26 O 1 .bss + Key_Map 0x20000a28 O 4 .bss + Key_Map2_temp 0x20000a2c O 4 .bss + offset2_max_tempB 0x20000a30 O 2 .bss + baseline_data1 0x20000a32 O 34 .bss + TK_Postive_build0 0x20000a54 O 17 .bss + sampling_data2 0x20000a66 O 34 .bss + offset_data1 0x20000a88 O 34 .bss + TK_ovrdect_cnt 0x20000aaa O 1 .bss + TK_Slider0_Level 0x20000aab O 1 .bss + time_cnt1 0x20000aac O 4 .bss + Press_debounce2 0x20000ab0 O 17 .bss + Tk_press_time_cnt0 0x20000ac4 O 4 .bss + Key_Map0_temp 0x20000ac8 O 4 .bss + TK_Negtive_build1 0x20000acc O 17 .bss + coret_spread_step 0x20000add O 1 .bss + time_cnts 0x20000ade O 3 .bss + offset0_max_tempA 0x20000ae2 O 2 .bss + tk_num 0x20000ae4 O 1 .bss + TK_Slider1_Seq 0x20000ae5 O 4 .bss + offset1_max_tempB 0x20000aea O 2 .bss + TK_Negtive_build0 0x20000aec O 17 .bss + R_Debounce_temp2 0x20000b00 O 4 .bss + Tk_press_time_cnt1 0x20000b04 O 4 .bss + Press_debounce1 0x20000b08 O 17 .bss + TK_Wheel_Seq 0x20000b19 O 4 .bss + TK_Slider0_Value 0x20000b1d O 1 .bss + Release_debounce2 0x20000b1e O 17 .bss + r_Key_Map_Temp 0x20000b30 O 4 .bss + tk_seque 0x20000b34 O 17 .bss + scan_step 0x20000b45 O 1 .bss + TK_Wheel_Level 0x20000b46 O 1 .bss + baseline_data2 0x20000b48 O 34 .bss + tk_sampling_max 0x20000b6a O 34 .bss + Key_Map1_temp 0x20000b8c O 4 .bss + coret_spread_cnt 0x20000b90 O 2 .bss + offset_data0_abs 0x20000b92 O 34 .bss + offset_data2 0x20000bb4 O 34 .bss + TK_Wheel_Function 0x20000bd6 O 1 .bss + offset1_max_tempA 0x20000bd8 O 2 .bss + sampling_data0 0x20000bda O 34 .bss + TK_Scan_Freq0 0x20000bfc O 4 .bss + _ebss 0x20000c00 0 .bss + _end 0x20000c00 0 .bss + end 0x20000c00 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: 0x0000a9d8, 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 1295 .text pow.o + 0x00000b5e 0x00000006 Code RO 1303 .text fabs.o + 0x00000b64 0x00000020 Code RO 1309 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1316 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1327 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1332 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1337 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1342 .text _fixunsdfsi.o + 0x00000d80 0x0000033a Code RO 1349 .text _addsub_df.o + 0x000010ba 0x00000002 PAD + 0x000010bc 0x00000234 Code RO 1356 .text _mul_df.o + 0x000012f0 0x00000154 Code RO 1363 .text _div_df.o + 0x00001444 0x0000003c Code RO 1370 .text _gt_df.o + 0x00001480 0x0000003c Code RO 1377 .text _ge_df.o + 0x000014bc 0x0000003a Code RO 1384 .text _le_df.o + 0x000014f6 0x00000002 PAD + 0x000014f8 0x00000070 Code RO 1391 .text _si_to_df.o + 0x00001568 0x00000070 Code RO 1398 .text _df_to_si.o + 0x000015d8 0x00000054 Code RO 1412 .text _usi_to_df.o + 0x0000162c 0x00000044 Code RO 1419 .text _muldi3.o + 0x00001670 0x00000040 Code RO 1426 .text _clzsi2.o + 0x000016b0 0x0000019c Code RO 1432 .text _pack_df.o + 0x0000184c 0x000000c4 Code RO 1439 .text _unpack_df.o + 0x00001910 0x0000008c Code RO 1446 .text _fpcmp_parts_df.o + 0x0000199c 0x00000088 Code RO 1467 .text memset_fast.o + 0x00001a24 0x00000064 Code RO 1472 .text memcpy_fast.o + 0x00001a88 0x00000026 Code RO 1478 .text strncmp.o + 0x00001ab0 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001ae8 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001b5c 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001ba8 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001bd8 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001c60 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001c88 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001cc4 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001cd8 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001cf0 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001d10 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d2c 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001d48 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001d88 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001dbc 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00001dc0 0x00000010 Code RO 89 .text.EXI3_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001dd0 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001de0 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001dec 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x00001df8 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e1c 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x00001e4c 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00001eb0 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f90 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001fa4 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001fb4 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x000020c0 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000021bc 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00002228 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x00002230 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x00002238 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x0000224e 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00002260 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002274 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002284 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x000022a0 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x000022a8 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x000022b2 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x000022ca 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x000022f6 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x000022fc 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x00002310 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x00002320 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x00002340 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x000023a0 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x000023b0 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x00002400 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002418 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002430 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x00002448 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002464 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002480 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x0000256c 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x0000257c 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x0000258c 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x000025ac 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x000025d4 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x00002638 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x00002648 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x00002668 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00002694 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x000026a0 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x000026c8 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x000026dc 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x000026f4 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x00002708 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00002784 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x0000291c 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002a9c 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002b3c 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002b68 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002ca8 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002cc0 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002cd8 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002ce8 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002cf8 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002d08 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002d18 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00002d6c 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x00002d98 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00002dbc 0x0000008c Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x00002e48 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x00002ea8 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002f0c 0x0000009c Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002fa8 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00003098 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x00003100 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x00003168 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00003314 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x00003348 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x000033c8 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00003438 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003474 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x000034b0 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00003544 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x0000362c 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003680 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x000036b0 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x000036e0 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00003728 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003794 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003814 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00003848 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003894 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003904 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003906 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x0000390e 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00003916 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x0000391e 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00003926 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x0000392e 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00003936 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x0000393e 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00003946 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x0000394e 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00003956 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x0000395e 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003968 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x0000398c 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x000039b0 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x000039d4 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000039f8 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000039fe 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003a04 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003b0c 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003b50 0x0000008c Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003bdc 0x000000c4 Code RO 843 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003ca0 0x00000074 Code RO 844 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003d14 0x00000064 Code RO 845 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x00003d78 0x00000010 Code RO 846 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x00003d88 0x0000000c Code RO 847 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00003d94 0x00000034 Code RO 848 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00003dc8 0x00000040 Code RO 850 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00003e08 0x0000005c Code RO 851 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00003e64 0x0000000c Code RO 853 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00003e70 0x00000002 Code RO 854 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00003e74 0x00000068 Code RO 871 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00003edc 0x0000003c Code RO 876 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x00003f18 0x000002f4 Code RO 877 .text.TouchKey_RS485_Printf_3 Obj/SYSTEM_touch_key.o + 0x0000420c 0x000000ac Code RO 879 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x000042b8 0x0000003c Code RO 880 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x000042f4 0x00000100 Code RO 881 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x000043f4 0x00000018 Code RO 882 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x0000440c 0x00000070 Code RO 883 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x0000447c 0x000000b8 Code RO 884 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x00004534 0x000000f8 Code RO 885 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x0000462c 0x00000038 Code RO 886 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004664 0x000000b0 Code RO 887 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x00004714 0x0000001a Code RO 888 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x00004730 0x000000d8 Code RO 889 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004808 0x00000016 Code RO 908 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004820 0x00000074 Code RO 909 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00004894 0x00000044 Code RO 910 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x000048d8 0x0000008c Code RO 912 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004964 0x00000020 Code RO 913 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004984 0x0000006c Code RO 914 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x000049f0 0x000000ac Code RO 915 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00004a9c 0x000000e0 Code RO 916 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x00004b7c 0x00000070 Code RO 917 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004bec 0x00000080 Code RO 918 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004c6c 0x00000070 Code RO 919 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004cdc 0x00000040 Code RO 920 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004d1c 0x00000038 Code RO 921 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004d54 0x00000058 Code RO 922 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004dac 0x00000088 Code RO 923 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x00004e34 0x0000005c Code RO 941 .text.ADC_Init Obj/SYSTEM_adc.o + 0x00004e90 0x00000048 Code RO 942 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00004ed8 0x00000064 Code RO 943 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x00004f3c 0x0000000c Code RO 944 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x00004f48 0x0000006c Code RO 945 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x00004fb4 0x00000070 Code RO 946 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x00005024 0x000003ea Code RO 964 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00005410 0x000003ea Code RO 965 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x000057fc 0x00000028 Code RO 966 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00005824 0x00000044 Code RO 988 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00005868 0x00000120 Code RO 990 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x00005988 0x000000a8 Code RO 991 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x00005a30 0x0000005c Code RO 992 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00005a8c 0x00000024 Code RO 993 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x00005ab0 0x00000070 Code RO 994 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x00005b20 0x00000064 Code RO 995 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00005b84 0x0000006c Code RO 996 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x00005bf0 0x00000048 Code RO 1013 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x00005c38 0x00000030 Code RO 1014 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005c68 0x000000b4 Code RO 1015 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00005d1c 0x00000050 Code RO 1019 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00005d6c 0x00000040 Code RO 1020 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x00005dac 0x0000004c Code RO 1021 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x00005df8 0x000000d0 Code RO 1022 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005ec8 0x000000d0 Code RO 1023 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00005f98 0x00000244 Code RO 1024 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x000061dc 0x000000d0 Code RO 1025 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x000062ac 0x000000a4 Code RO 1026 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00006350 0x00000048 Code RO 1027 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00006398 0x000000dc Code RO 1028 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x00006474 0x00000030 Code RO 1029 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x000064a4 0x0000009c Code RO 1030 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00006540 0x00000064 Code RO 1031 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x000065a4 0x00000090 Code RO 1032 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x00006634 0x00000060 Code RO 1052 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x00006694 0x00000024 Code RO 1053 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x000066b8 0x0000005c Code RO 1055 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x00006714 0x00000014 Code RO 1059 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x00006728 0x00000188 Code RO 1060 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x000068b0 0x00000178 Code RO 1080 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00006a28 0x0000004c Code RO 1081 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006a74 0x0000004c Code RO 1082 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006ac0 0x00000030 Code RO 1083 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00006af0 0x00000030 Code RO 1084 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00006b20 0x00000034 Code RO 1085 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006b54 0x000000cc Code RO 1086 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x00006c20 0x00000178 Code RO 1087 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00006d98 0x000000cc Code RO 1105 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006e64 0x000000cc Code RO 1106 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00006f30 0x00000100 Code RO 1107 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007030 0x00000070 Code RO 1108 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x000070a0 0x00000100 Code RO 1109 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x000071a0 0x00000070 Code RO 1110 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00007210 0x00000090 Code RO 1111 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x000072a0 0x00000054 Code RO 1127 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x000072f4 0x00000020 Code RO 1128 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x00007314 0x000004e8 Code RO 1129 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x000077fc 0x0000003c Code RO 1146 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00007838 0x000000ac Code RO 1147 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x000078e4 0x00000064 Code RO 1148 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00007948 0x00000028 Code RO 1165 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x00007970 0x00000028 Code RO 1166 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00007998 0x0000001c Code RO 1167 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x000079b4 0x0000001c Code RO 1168 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x000079d0 0x0000001c Code RO 1169 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x000079ec 0x0000001c Code RO 1170 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007a08 0x00000014 Code RO 1171 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x00007a1c 0x000000c8 Code RO 1172 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x00007ae4 0x00000098 Code RO 1173 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x00007b7c 0x0000004c Code RO 1190 .text.NetCRC16_Check Obj/USRCTRL_uart_protocol.o + 0x00007bc8 0x0000003c Code RO 1191 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00007c04 0x00000016 Code RO 1192 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00007c1c 0x00000108 Code RO 1193 .text.Rs485_ASend Obj/USRCTRL_uart_protocol.o + 0x00007d24 0x00000104 Code RO 1194 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00007e28 0x0000005c Code RO 1195 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x00007e84 0x00000068 Code RO 1196 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x00007eec 0x00000018 Code RO 1197 .text.Rs485_DevPort_ACK Obj/USRCTRL_uart_protocol.o + 0x00007f04 0x000001b0 Code RO 1198 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x000080b4 0x000000cc Code RO 1199 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x00008180 0x00000010 Code RO 1225 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_f_1_18.o + 0x00008190 0x00000028 Code RO 1228 .text.tk_clk_config FWlib_apt32f102_tkey_f_1_18.o + 0x000081b8 0x000000bc Code RO 1229 .text.TK_con0_config FWlib_apt32f102_tkey_f_1_18.o + 0x00008274 0x00000134 Code RO 1232 .text.tk_io_enable FWlib_apt32f102_tkey_f_1_18.o + 0x000083a8 0x00000128 Code RO 1233 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x000084d0 0x000000cc Code RO 1234 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000859c 0x00000028 Code RO 1238 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x000085c4 0x00000028 Code RO 1239 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000085ec 0x00000028 Code RO 1240 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x00008614 0x00000028 Code RO 1241 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x0000863c 0x00000150 Code RO 1242 .text.TK_Baseline_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000878c 0x00000148 Code RO 1243 .text.TK_Baseline_prog2 FWlib_apt32f102_tkey_f_1_18.o + 0x000088d4 0x00000124 Code RO 1244 .text.tk_poweron_data_fineturn FWlib_apt32f102_tkey_f_1_18.o + 0x000089f8 0x00000068 Code RO 1245 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x00008a60 0x00000870 Code RO 1246 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000092d0 0x00000128 Code RO 1247 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x000093f8 0x000004d0 Code RO 1248 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x000098c8 0x00000130 Code RO 1249 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000099f8 0x00000038 Code RO 1250 .text.get_key_seq FWlib_apt32f102_tkey_f_1_18.o + 0x00009a30 0x00000038 Code RO 1251 .text.CORET_CONFIG FWlib_apt32f102_tkey_f_1_18.o + 0x00009a68 0x0000001c Code RO 1252 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_f_1_18.o + 0x00009a84 0x000000ac Code RO 1253 .text.tk_freq_para_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009b30 0x00000028 Code RO 1254 .text.tk_reserved_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009b58 0x000000a0 Code RO 1255 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00009bf8 0x0000015c Code RO 1256 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00009d54 0x00000110 Code RO 1257 .text.tk_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009e64 0x00000284 Code RO 1275 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000a0e8 0x00000035 Data RO 890 .rodata Obj/SYSTEM_touch_key.o + 0x0000a11d 0x00000001 PAD + 0x0000a11e 0x00000334 Data RO 947 .rodata Obj/SYSTEM_adc.o + 0x0000a452 0x0000000a Data RO 1034 .rodata Obj/SYSTEM_ht1621.o + 0x0000a45c 0x00000030 Data RO 1298 .rodata pow.o + 0x0000a48c 0x00000014 Data RO 1408 .rodata _thenan_df.o + 0x0000a4a0 0x00000100 Data RO 1456 .rodata _clz.o + 0x0000a5a0 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x0000a5ae 0x00000092 Data RO 891 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000a640 0x0000019d Data RO 924 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000a7dd 0x00000011 Data RO 997 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x0000a7ee 0x00000071 Data RO 1088 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000a85f 0x0000007e Data RO 1112 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000a8dd 0x00000045 Data RO 1130 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x0000a922 0x00000087 Data RO 1149 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x0000a9a9 0x0000002c Data RO 1200 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x0000a9d5 0x00000003 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000c00, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000006 Data RW 869 .data Obj/SYSTEM_touch_key.o + 0x2000006e 0x00000002 PAD + 0x20000070 0x0000003d Data RW 1223 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000ad 0x00000003 PAD + 0x200000b0 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b8 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000c4 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x2000013c 0x00000004 Zero RW 940 .bss Obj/SYSTEM_adc.o + 0x20000140 0x000000f0 Zero RW 982 .bss Obj/SYSTEM_tm1812.o + 0x20000230 0x00000004 Zero RW 1079 .bss Obj/USRCTRL_tempctrl_unit.o + 0x20000234 0x00000001 Zero RW 1126 .bss Obj/USRCTRL_display_logic.o + 0x20000235 0x00000001 Zero RW 1224 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000236 0x00000002 PAD + 0x20000238 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002be 0x00000002 PAD + 0x200002c0 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002f0 0x000001e4 Zero RW 867 COMMON Obj/SYSTEM_uart.o + 0x200004d4 0x00000050 Zero RW 904 COMMON Obj/SYSTEM_touch_key.o + 0x20000524 0x0000002d Zero RW 937 COMMON Obj/SYSTEM_eeprom.o + 0x20000551 0x00000003 PAD + 0x20000554 0x00000050 Zero RW 960 COMMON Obj/SYSTEM_adc.o + 0x200005a4 0x0000001c Zero RW 979 COMMON Obj/SYSTEM_switch_fun.o + 0x200005c0 0x00000040 Zero RW 1048 COMMON Obj/SYSTEM_ht1621.o + 0x20000600 0x0000023c Zero RW 1076 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000083c 0x00000029 Zero RW 1101 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x20000865 0x00000003 PAD + 0x20000868 0x00000010 Zero RW 1161 COMMON Obj/USRCTRL_debug_unit.o + 0x20000878 0x0000000c Zero RW 1186 COMMON Obj/USRCTRL_myrelay.o + 0x20000884 0x0000037c Zero RW 1271 COMMON FWlib_apt32f102_tkey_f_1_18.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 268 Obj/arch_crt0.o + 56 0 0 0 802 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 868 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 1040 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9303 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 14219 Obj/main.o + 568 0 0 0 16809 Obj/mcu_initial.o + 2494 0 0 60 16278 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1134 0 0 604 16630 Obj/SYSTEM_uart.o + 2450 199 6 80 18204 Obj/SYSTEM_touch_key.o + 1578 413 0 45 16271 Obj/SYSTEM_eeprom.o + 496 820 0 84 14255 Obj/SYSTEM_adc.o + 2044 0 0 28 14597 Obj/SYSTEM_switch_fun.o + 972 17 0 240 15606 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17914 Obj/SYSTEM_ht1621.o + 636 0 0 572 17884 Obj/SYSTEM_Bootload_fun.o + 1256 113 0 45 13347 Obj/USRCTRL_tempctrl_unit.o + 1288 126 0 0 12898 Obj/USRCTRL_key_logic.o + 1372 69 0 1 12635 Obj/USRCTRL_display_logic.o + 332 135 0 16 12357 Obj/USRCTRL_debug_unit.o + 564 0 0 12 13878 Obj/USRCTRL_myrelay.o + 1538 44 0 0 14843 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 26726 1960 110 1993 446033 Object Totals + 6 4 5 10 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 7396 0 61 893 20058 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 7396 0 61 893 20058 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.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 + ------------------------------------------------------------ + 3226 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 + 41160 2288 176 2896 474766 Grand Totals + 41160 2288 176 2896 474766 Elf Image Totals + 41160 2288 176 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 43448 ( 42.43kB) +Total RW Size (RW Data + ZI Data) 3072 ( 3.00kB) +Total ROM Size (Code + RO Data + RW Data) 43624 ( 42.60kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_202505161010.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_202505161010.asm new file mode 100644 index 0000000..892a088 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_202505161010.asm @@ -0,0 +1,27636 @@ + +.//Obj/T1_TC_34650_V04_202505161010.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003bf2 .long 0x00003bf2 + 8: 00003be2 .long 0x00003be2 + c: 00000184 .long 0x00000184 + 10: 00003bea .long 0x00003bea + 14: 00003ba8 .long 0x00003ba8 + 18: 00000184 .long 0x00000184 + 1c: 00003bda .long 0x00003bda + 20: 00003bd2 .long 0x00003bd2 + 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: 00003bca .long 0x00003bca + 44: 00003bc2 .long 0x00003bc2 + 48: 00003bba .long 0x00003bba + 4c: 00003bb2 .long 0x00003bb2 + 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: 00003baa .long 0x00003baa + 80: 00009ef0 .long 0x00009ef0 + 84: 0000324c .long 0x0000324c + 88: 0000333c .long 0x0000333c + 8c: 000033a4 .long 0x000033a4 + 90: 0000340c .long 0x0000340c + 94: 00000184 .long 0x00000184 + 98: 000035b8 .long 0x000035b8 + 9c: 00003924 .long 0x00003924 + a0: 00003954 .long 0x00003954 + a4: 000035ec .long 0x000035ec + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 0000366c .long 0x0000366c + b4: 000036dc .long 0x000036dc + b8: 00003718 .long 0x00003718 + bc: 00003754 .long 0x00003754 + c0: 00000184 .long 0x00000184 + c4: 00003c02 .long 0x00003c02 + c8: 00000184 .long 0x00000184 + cc: 000037e8 .long 0x000037e8 + d0: 000038d0 .long 0x000038d0 + d4: 00003984 .long 0x00003984 + d8: 000039cc .long 0x000039cc + dc: 00003a38 .long 0x00003a38 + e0: 00003bfa .long 0x00003bfa + e4: 00009e50 .long 0x00009e50 + e8: 00003ab8 .long 0x00003ab8 + ec: 00000184 .long 0x00000184 + f0: 00003aec .long 0x00003aec + f4: 00003b38 .long 0x00003b38 + 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, 0x1d54 // 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, 0x2fbc // 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: 00001d54 .long 0x00001d54 + 198: 00000160 .long 0x00000160 + 19c: 00002fbc .long 0x00002fbc + 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: e00007cf bsr 0x1194 // 1194 <__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: e00007b5 bsr 0x11c4 // 11c4 <__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: e00008ca bsr 0x1430 // 1430 <__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: e000078c bsr 0x11fc // 11fc <__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: e0000880 bsr 0x1430 // 1430 <__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: e000073b bsr 0x11c4 // 11c4 <__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: e0000706 bsr 0x11c4 // 11c4 <__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: e000071c bsr 0x11fc // 11fc <__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: e0000714 bsr 0x11fc // 11fc <__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: e000070c bsr 0x11fc // 11fc <__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: e00006ea bsr 0x11c4 // 11c4 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000702 bsr 0x11fc // 11fc <__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: e00006e0 bsr 0x11c4 // 11c4 <__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: e00006f4 bsr 0x11fc // 11fc <__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: e00006ee bsr 0x11fc // 11fc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e00006ea bsr 0x11fc // 11fc <__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: e00006c8 bsr 0x11c4 // 11c4 <__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: e00006a8 bsr 0x1194 // 1194 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e00006ba bsr 0x11c4 // 11c4 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e00006b4 bsr 0x11c4 // 11c4 <__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: e00006a3 bsr 0x11c4 // 11c4 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e00006bb bsr 0x11fc // 11fc <__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: e00006b3 bsr 0x11fc // 11fc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e0000679 bsr 0x1194 // 1194 <__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: e00006a5 bsr 0x11fc // 11fc <__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: e0000667 bsr 0x1194 // 1194 <__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: e0000687 bsr 0x11fc // 11fc <__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: e000067c bsr 0x11fc // 11fc <__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, 0xa754 // 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: e000063a bsr 0x11c4 // 11c4 <__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: e000061a bsr 0x1194 // 1194 <__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: e0000762 bsr 0x1430 // 1430 <__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: 0000a754 .long 0x0000a754 + 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: e000060a bsr 0x11fc // 11fc <__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: e00005fb bsr 0x11fc // 11fc <__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: e00005d9 bsr 0x11c4 // 11c4 <__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: e00005d1 bsr 0x11c4 // 11c4 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e00005cb bsr 0x11c4 // 11c4 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e00005e3 bsr 0x11fc // 11fc <__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: e00005c1 bsr 0x11c4 // 11c4 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e00005d9 bsr 0x11fc // 11fc <__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: e00005d1 bsr 0x11fc // 11fc <__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: e00005c9 bsr 0x11fc // 11fc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e000058f bsr 0x1194 // 1194 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e00005bf bsr 0x11fc // 11fc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e0000585 bsr 0x1194 // 1194 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e00005b5 bsr 0x11fc // 11fc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e000057b bsr 0x1194 // 1194 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e00005ab bsr 0x11fc // 11fc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e0000571 bsr 0x1194 // 1194 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e00005a1 bsr 0x11fc // 11fc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e0000567 bsr 0x1194 // 1194 <__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: e0000593 bsr 0x11fc // 11fc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e000058d bsr 0x11fc // 11fc <__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: e0000551 bsr 0x1194 // 1194 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e0000581 bsr 0x11fc // 11fc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e0000549 bsr 0x1194 // 1194 <__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: e0000575 bsr 0x11fc // 11fc <__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: e000053b bsr 0x1194 // 1194 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000537 bsr 0x1194 // 1194 <__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: e0000564 bsr 0x11fc // 11fc <__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: e0000540 bsr 0x11c4 // 11c4 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000053c bsr 0x11c4 // 11c4 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000536 bsr 0x11c4 // 11c4 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e000054e bsr 0x11fc // 11fc <__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: e0000546 bsr 0x11fc // 11fc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000050c bsr 0x1194 // 1194 <__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: e0000504 bsr 0x1194 // 1194 <__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: e0000531 bsr 0x11fc // 11fc <__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: e000050d bsr 0x11c4 // 11c4 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000507 bsr 0x11c4 // 11c4 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000051f bsr 0x11fc // 11fc <__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: e0000517 bsr 0x11fc // 11fc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e00004dd bsr 0x1194 // 1194 <__adddf3> + 7de: 01db lrw r6, 0xa754 // 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: e00004d6 bsr 0x1194 // 1194 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000723 bsr 0x1638 // 1638 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0xa754 // 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: e00004c3 bsr 0x1194 // 1194 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e00004bf bsr 0x1194 // 1194 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e00004bb bsr 0x1194 // 1194 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e00004cd bsr 0x11c4 // 11c4 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e00004c9 bsr 0x11c4 // 11c4 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e00004c5 bsr 0x11c4 // 11c4 <__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: e000049c bsr 0x1194 // 1194 <__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: e00004ac bsr 0x11c4 // 11c4 <__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: e0000686 bsr 0x1584 // 1584 <__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: e000047c bsr 0x11c4 // 11c4 <__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: e000045c bsr 0x1194 // 1194 <__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: e000048a bsr 0x11fc // 11fc <__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: e0000466 bsr 0x11c4 // 11c4 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e0000460 bsr 0x11c4 // 11c4 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e0000478 bsr 0x11fc // 11fc <__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: e0000470 bsr 0x11fc // 11fc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000436 bsr 0x1194 // 1194 <__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: e000042e bsr 0x1194 // 1194 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e0000440 bsr 0x11c4 // 11c4 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000043a bsr 0x11c4 // 11c4 <__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: e000044e bsr 0x11fc // 11fc <__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: e0000448 bsr 0x11fc // 11fc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000428 bsr 0x11c4 // 11c4 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e0000440 bsr 0x11fc // 11fc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000408 bsr 0x1194 // 1194 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000438 bsr 0x11fc // 11fc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000418 bsr 0x11c4 // 11c4 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000430 bsr 0x11fc // 11fc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e00003f8 bsr 0x1194 // 1194 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000428 bsr 0x11fc // 11fc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000406 bsr 0x11c4 // 11c4 <__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: e000041a bsr 0x11fc // 11fc <__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: e00003f5 bsr 0x11c4 // 11c4 <__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: e0000525 bsr 0x1430 // 1430 <__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: e0000403 bsr 0x11fc // 11fc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e00003cb bsr 0x1194 // 1194 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e00003dd bsr 0x11c4 // 11c4 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e00003d9 bsr 0x11c4 // 11c4 <__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: e00003d3 bsr 0x11c4 // 11c4 <__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: e00003d1 bsr 0x11fc // 11fc <__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: e00003ab bsr 0x11c4 // 11c4 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e00005c1 bsr 0x15fc // 15fc <__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: 0000a754 .long 0x0000a754 + 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: e000032f bsr 0x11fc // 11fc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e00002f5 bsr 0x1194 // 1194 <__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: e00002f8 bsr 0x11c4 // 11c4 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000042a bsr 0x1430 // 1430 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000437 bsr 0x15c0 // 15c0 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e00004a5 bsr 0x16a8 // 16a8 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000022c bsr 0x11c4 // 11c4 <__subdf3> + d70: e000049c bsr 0x16a8 // 16a8 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <__divsf3>: + d80: 14d1 push r4, r15 + d82: 142a subi r14, r14, 40 + d84: b800 st.w r0, (r14, 0x0) + d86: b821 st.w r1, (r14, 0x4) + d88: 6c3b mov r0, r14 + d8a: 1902 addi r1, r14, 8 + d8c: e00005a2 bsr 0x18d0 // 18d0 <__unpack_f> + d90: 1906 addi r1, r14, 24 + d92: 1801 addi r0, r14, 4 + d94: e000059e bsr 0x18d0 // 18d0 <__unpack_f> + d98: 9862 ld.w r3, (r14, 0x8) + d9a: 3b01 cmphsi r3, 2 + d9c: 0c2c bf 0xdf4 // df4 <__divsf3+0x74> + d9e: 9826 ld.w r1, (r14, 0x18) + da0: 3901 cmphsi r1, 2 + da2: 0c48 bf 0xe32 // e32 <__divsf3+0xb2> + da4: 9843 ld.w r2, (r14, 0xc) + da6: 9807 ld.w r0, (r14, 0x1c) + da8: 6c81 xor r2, r0 + daa: 3b44 cmpnei r3, 4 + dac: b843 st.w r2, (r14, 0xc) + dae: 0c28 bf 0xdfe // dfe <__divsf3+0x7e> + db0: 3b42 cmpnei r3, 2 + db2: 0c26 bf 0xdfe // dfe <__divsf3+0x7e> + db4: 3944 cmpnei r1, 4 + db6: 0c2c bf 0xe0e // e0e <__divsf3+0x8e> + db8: 3942 cmpnei r1, 2 + dba: 0c38 bf 0xe2a // e2a <__divsf3+0xaa> + dbc: 9844 ld.w r2, (r14, 0x10) + dbe: 9868 ld.w r3, (r14, 0x20) + dc0: 608e subu r2, r3 + dc2: 9809 ld.w r0, (r14, 0x24) + dc4: 9865 ld.w r3, (r14, 0x14) + dc6: 640c cmphs r3, r0 + dc8: b844 st.w r2, (r14, 0x10) + dca: 0c1e bf 0xe06 // e06 <__divsf3+0x86> + dcc: 3180 movi r1, 128 + dce: 321f movi r2, 31 + dd0: 3400 movi r4, 0 + dd2: 4137 lsli r1, r1, 23 + dd4: 640c cmphs r3, r0 + dd6: 0c03 bf 0xddc // ddc <__divsf3+0x5c> + dd8: 6d04 or r4, r1 + dda: 60c2 subu r3, r0 + ddc: 2a00 subi r2, 1 + dde: 3a40 cmpnei r2, 0 + de0: 4921 lsri r1, r1, 1 + de2: 4361 lsli r3, r3, 1 + de4: 0bf8 bt 0xdd4 // dd4 <__divsf3+0x54> + de6: 317f movi r1, 127 + de8: 6c93 mov r2, r4 + dea: 6884 and r2, r1 + dec: 3040 movi r0, 64 + dee: 640a cmpne r2, r0 + df0: 0c14 bf 0xe18 // e18 <__divsf3+0x98> + df2: b885 st.w r4, (r14, 0x14) + df4: 1802 addi r0, r14, 8 + df6: e0000511 bsr 0x1818 // 1818 <__pack_f> + dfa: 140a addi r14, r14, 40 + dfc: 1491 pop r4, r15 + dfe: 644e cmpne r3, r1 + e00: 0bfa bt 0xdf4 // df4 <__divsf3+0x74> + e02: 100e lrw r0, 0xa784 // e38 <__divsf3+0xb8> + e04: 07f9 br 0xdf6 // df6 <__divsf3+0x76> + e06: 2a00 subi r2, 1 + e08: 4361 lsli r3, r3, 1 + e0a: b844 st.w r2, (r14, 0x10) + e0c: 07e0 br 0xdcc // dcc <__divsf3+0x4c> + e0e: 3300 movi r3, 0 + e10: b865 st.w r3, (r14, 0x14) + e12: b864 st.w r3, (r14, 0x10) + e14: 1802 addi r0, r14, 8 + e16: 07f0 br 0xdf6 // df6 <__divsf3+0x76> + e18: 3080 movi r0, 128 + e1a: 6810 and r0, r4 + e1c: 3840 cmpnei r0, 0 + e1e: 0bea bt 0xdf2 // df2 <__divsf3+0x72> + e20: 3b40 cmpnei r3, 0 + e22: 0fe8 bf 0xdf2 // df2 <__divsf3+0x72> + e24: 6108 addu r4, r2 + e26: 6905 andn r4, r1 + e28: 07e5 br 0xdf2 // df2 <__divsf3+0x72> + e2a: 3304 movi r3, 4 + e2c: b862 st.w r3, (r14, 0x8) + e2e: 1802 addi r0, r14, 8 + e30: 07e3 br 0xdf6 // df6 <__divsf3+0x76> + e32: 1806 addi r0, r14, 24 + e34: 07e1 br 0xdf6 // df6 <__divsf3+0x76> + e36: 0000 bkpt + e38: 0000a784 .long 0x0000a784 + +00000e3c <__extendsfdf2>: + e3c: 14d1 push r4, r15 + e3e: 1426 subi r14, r14, 24 + e40: b801 st.w r0, (r14, 0x4) + e42: 1902 addi r1, r14, 8 + e44: 1801 addi r0, r14, 4 + e46: e0000545 bsr 0x18d0 // 18d0 <__unpack_f> + e4a: 9865 ld.w r3, (r14, 0x14) + e4c: 4b82 lsri r4, r3, 2 + e4e: 9844 ld.w r2, (r14, 0x10) + e50: 437e lsli r3, r3, 30 + e52: 9823 ld.w r1, (r14, 0xc) + e54: 9802 ld.w r0, (r14, 0x8) + e56: b880 st.w r4, (r14, 0x0) + e58: e0000460 bsr 0x1718 // 1718 <__make_dp> + e5c: 1406 addi r14, r14, 24 + e5e: 1491 pop r4, r15 + +00000e60 <__floatunsisf>: + e60: 14d2 push r4-r5, r15 + e62: 1424 subi r14, r14, 16 + e64: 3840 cmpnei r0, 0 + e66: 3300 movi r3, 0 + e68: 6d03 mov r4, r0 + e6a: b861 st.w r3, (r14, 0x4) + e6c: 0c15 bf 0xe96 // e96 <__floatunsisf+0x36> + e6e: 3303 movi r3, 3 + e70: 351e movi r5, 30 + e72: b860 st.w r3, (r14, 0x0) + e74: b8a2 st.w r5, (r14, 0x8) + e76: e00004b1 bsr 0x17d8 // 17d8 <__clzsi2> + e7a: 3840 cmpnei r0, 0 + e7c: 5863 subi r3, r0, 1 + e7e: 0c13 bf 0xea4 // ea4 <__floatunsisf+0x44> + e80: 3b40 cmpnei r3, 0 + e82: 0c1d bf 0xebc // ebc <__floatunsisf+0x5c> + e84: 710c lsl r4, r3 + e86: 614e subu r5, r3 + e88: b883 st.w r4, (r14, 0xc) + e8a: b8a2 st.w r5, (r14, 0x8) + e8c: 6c3b mov r0, r14 + e8e: e00004c5 bsr 0x1818 // 1818 <__pack_f> + e92: 1404 addi r14, r14, 16 + e94: 1492 pop r4-r5, r15 + e96: 3302 movi r3, 2 + e98: 6c3b mov r0, r14 + e9a: b860 st.w r3, (r14, 0x0) + e9c: e00004be bsr 0x1818 // 1818 <__pack_f> + ea0: 1404 addi r14, r14, 16 + ea2: 1492 pop r4-r5, r15 + ea4: 3301 movi r3, 1 + ea6: 68d0 and r3, r4 + ea8: 4c81 lsri r4, r4, 1 + eaa: 6d0c or r4, r3 + eac: 6c3b mov r0, r14 + eae: 331f movi r3, 31 + eb0: b883 st.w r4, (r14, 0xc) + eb2: b862 st.w r3, (r14, 0x8) + eb4: e00004b2 bsr 0x1818 // 1818 <__pack_f> + eb8: 1404 addi r14, r14, 16 + eba: 1492 pop r4-r5, r15 + ebc: b883 st.w r4, (r14, 0xc) + ebe: 07e7 br 0xe8c // e8c <__floatunsisf+0x2c> + +00000ec0 <_fpadd_parts>: + ec0: 14c4 push r4-r7 + ec2: 142a subi r14, r14, 40 + ec4: 9060 ld.w r3, (r0, 0x0) + ec6: 3b01 cmphsi r3, 2 + ec8: 6dcb mov r7, r2 + eca: 0c67 bf 0xf98 // f98 <_fpadd_parts+0xd8> + ecc: 9140 ld.w r2, (r1, 0x0) + ece: 3a01 cmphsi r2, 2 + ed0: 0c66 bf 0xf9c // f9c <_fpadd_parts+0xdc> + ed2: 3b44 cmpnei r3, 4 + ed4: 0cde bf 0x1090 // 1090 <_fpadd_parts+0x1d0> + ed6: 3a44 cmpnei r2, 4 + ed8: 0c62 bf 0xf9c // f9c <_fpadd_parts+0xdc> + eda: 3a42 cmpnei r2, 2 + edc: 0cb7 bf 0x104a // 104a <_fpadd_parts+0x18a> + ede: 3b42 cmpnei r3, 2 + ee0: 0c5e bf 0xf9c // f9c <_fpadd_parts+0xdc> + ee2: 9043 ld.w r2, (r0, 0xc) + ee4: 9064 ld.w r3, (r0, 0x10) + ee6: 9082 ld.w r4, (r0, 0x8) + ee8: 91a2 ld.w r5, (r1, 0x8) + eea: b842 st.w r2, (r14, 0x8) + eec: b863 st.w r3, (r14, 0xc) + eee: 9143 ld.w r2, (r1, 0xc) + ef0: 9164 ld.w r3, (r1, 0x10) + ef2: b840 st.w r2, (r14, 0x0) + ef4: b861 st.w r3, (r14, 0x4) + ef6: 5c75 subu r3, r4, r5 + ef8: 3bdf btsti r3, 31 + efa: 6c8f mov r2, r3 + efc: 08d2 bt 0x10a0 // 10a0 <_fpadd_parts+0x1e0> + efe: 363f movi r6, 63 + f00: 6499 cmplt r6, r2 + f02: 0c50 bf 0xfa2 // fa2 <_fpadd_parts+0xe2> + f04: 6515 cmplt r5, r4 + f06: 0cbf bf 0x1084 // 1084 <_fpadd_parts+0x1c4> + f08: 3200 movi r2, 0 + f0a: 3300 movi r3, 0 + f0c: b840 st.w r2, (r14, 0x0) + f0e: b861 st.w r3, (r14, 0x4) + f10: 9061 ld.w r3, (r0, 0x4) + f12: 9141 ld.w r2, (r1, 0x4) + f14: 648e cmpne r3, r2 + f16: 0c78 bf 0x1006 // 1006 <_fpadd_parts+0x146> + f18: 3b40 cmpnei r3, 0 + f1a: 0cad bf 0x1074 // 1074 <_fpadd_parts+0x1b4> + f1c: 9800 ld.w r0, (r14, 0x0) + f1e: 9821 ld.w r1, (r14, 0x4) + f20: 9842 ld.w r2, (r14, 0x8) + f22: 9863 ld.w r3, (r14, 0xc) + f24: 6400 cmphs r0, r0 + f26: 600b subc r0, r2 + f28: 604f subc r1, r3 + f2a: 39df btsti r1, 31 + f2c: 08bd bt 0x10a6 // 10a6 <_fpadd_parts+0x1e6> + f2e: 3300 movi r3, 0 + f30: b761 st.w r3, (r7, 0x4) + f32: b782 st.w r4, (r7, 0x8) + f34: 6c83 mov r2, r0 + f36: 6cc7 mov r3, r1 + f38: b703 st.w r0, (r7, 0xc) + f3a: b724 st.w r1, (r7, 0x10) + f3c: 3000 movi r0, 0 + f3e: 3100 movi r1, 0 + f40: 2800 subi r0, 1 + f42: 2900 subi r1, 1 + f44: 6401 cmplt r0, r0 + f46: 6009 addc r0, r2 + f48: 604d addc r1, r3 + f4a: 038f lrw r4, 0xfffffff // 1188 <_fpadd_parts+0x2c8> + f4c: 6450 cmphs r4, r1 + f4e: 0c67 bf 0x101c // 101c <_fpadd_parts+0x15c> + f50: 6506 cmpne r1, r4 + f52: 0cfd bf 0x114c // 114c <_fpadd_parts+0x28c> + f54: 3000 movi r0, 0 + f56: 9722 ld.w r1, (r7, 0x8) + f58: 2801 subi r0, 2 + f5a: 2900 subi r1, 1 + f5c: 03d4 lrw r6, 0xfffffff // 1188 <_fpadd_parts+0x2c8> + f5e: b802 st.w r0, (r14, 0x8) + f60: b8e0 st.w r7, (r14, 0x0) + f62: 0403 br 0xf68 // f68 <_fpadd_parts+0xa8> + f64: 6596 cmpne r5, r6 + f66: 0c83 bf 0x106c // 106c <_fpadd_parts+0x1ac> + f68: 4301 lsli r0, r3, 1 + f6a: 4a9f lsri r4, r2, 31 + f6c: 6d00 or r4, r0 + f6e: 42a1 lsli r5, r2, 1 + f70: 6c97 mov r2, r5 + f72: 6cd3 mov r3, r4 + f74: 3500 movi r5, 0 + f76: 3400 movi r4, 0 + f78: 2c00 subi r4, 1 + f7a: 2d00 subi r5, 1 + f7c: 6511 cmplt r4, r4 + f7e: 6109 addc r4, r2 + f80: 614d addc r5, r3 + f82: 6558 cmphs r6, r5 + f84: 6c07 mov r0, r1 + f86: 2900 subi r1, 1 + f88: 0bee bt 0xf64 // f64 <_fpadd_parts+0xa4> + f8a: 98e0 ld.w r7, (r14, 0x0) + f8c: b743 st.w r2, (r7, 0xc) + f8e: b764 st.w r3, (r7, 0x10) + f90: 3303 movi r3, 3 + f92: b702 st.w r0, (r7, 0x8) + f94: b760 st.w r3, (r7, 0x0) + f96: 6c1f mov r0, r7 + f98: 140a addi r14, r14, 40 + f9a: 1484 pop r4-r7 + f9c: 6c07 mov r0, r1 + f9e: 140a addi r14, r14, 40 + fa0: 1484 pop r4-r7 + fa2: 3b20 cmplti r3, 1 + fa4: 088c bt 0x10bc // 10bc <_fpadd_parts+0x1fc> + fa6: 3300 movi r3, 0 + fa8: 2b1f subi r3, 32 + faa: 60c8 addu r3, r2 + fac: 3bdf btsti r3, 31 + fae: b866 st.w r3, (r14, 0x18) + fb0: 08bb bt 0x1126 // 1126 <_fpadd_parts+0x266> + fb2: 98a1 ld.w r5, (r14, 0x4) + fb4: 714d lsr r5, r3 + fb6: b8a4 st.w r5, (r14, 0x10) + fb8: 3500 movi r5, 0 + fba: b8a5 st.w r5, (r14, 0x14) + fbc: 9866 ld.w r3, (r14, 0x18) + fbe: 3bdf btsti r3, 31 + fc0: 3500 movi r5, 0 + fc2: 3600 movi r6, 0 + fc4: 08ad bt 0x111e // 111e <_fpadd_parts+0x25e> + fc6: 3201 movi r2, 1 + fc8: 708c lsl r2, r3 + fca: 6d8b mov r6, r2 + fcc: 3200 movi r2, 0 + fce: 3300 movi r3, 0 + fd0: 2a00 subi r2, 1 + fd2: 2b00 subi r3, 1 + fd4: 6489 cmplt r2, r2 + fd6: 6095 addc r2, r5 + fd8: 60d9 addc r3, r6 + fda: 98a0 ld.w r5, (r14, 0x0) + fdc: 98c1 ld.w r6, (r14, 0x4) + fde: 6948 and r5, r2 + fe0: 698c and r6, r3 + fe2: 6c97 mov r2, r5 + fe4: 6cdb mov r3, r6 + fe6: 6c8c or r2, r3 + fe8: 3a40 cmpnei r2, 0 + fea: 3500 movi r5, 0 + fec: 6155 addc r5, r5 + fee: 6c97 mov r2, r5 + ff0: 3300 movi r3, 0 + ff2: 98a4 ld.w r5, (r14, 0x10) + ff4: 98c5 ld.w r6, (r14, 0x14) + ff6: 6d48 or r5, r2 + ff8: 6d8c or r6, r3 + ffa: 9061 ld.w r3, (r0, 0x4) + ffc: 9141 ld.w r2, (r1, 0x4) + ffe: 648e cmpne r3, r2 + 1000: b8a0 st.w r5, (r14, 0x0) + 1002: b8c1 st.w r6, (r14, 0x4) + 1004: 0b8a bt 0xf18 // f18 <_fpadd_parts+0x58> + 1006: b761 st.w r3, (r7, 0x4) + 1008: 9800 ld.w r0, (r14, 0x0) + 100a: 9821 ld.w r1, (r14, 0x4) + 100c: 9842 ld.w r2, (r14, 0x8) + 100e: 9863 ld.w r3, (r14, 0xc) + 1010: 6489 cmplt r2, r2 + 1012: 6081 addc r2, r0 + 1014: 60c5 addc r3, r1 + 1016: b782 st.w r4, (r7, 0x8) + 1018: b743 st.w r2, (r7, 0xc) + 101a: b764 st.w r3, (r7, 0x10) + 101c: 3103 movi r1, 3 + 101e: b720 st.w r1, (r7, 0x0) + 1020: 123b lrw r1, 0x1fffffff // 118c <_fpadd_parts+0x2cc> + 1022: 64c4 cmphs r1, r3 + 1024: 0810 bt 0x1044 // 1044 <_fpadd_parts+0x184> + 1026: 439f lsli r4, r3, 31 + 1028: 4a01 lsri r0, r2, 1 + 102a: 6c10 or r0, r4 + 102c: 3500 movi r5, 0 + 102e: 3401 movi r4, 1 + 1030: 4b21 lsri r1, r3, 1 + 1032: 6890 and r2, r4 + 1034: 68d4 and r3, r5 + 1036: 6c80 or r2, r0 + 1038: 6cc4 or r3, r1 + 103a: b743 st.w r2, (r7, 0xc) + 103c: b764 st.w r3, (r7, 0x10) + 103e: 9762 ld.w r3, (r7, 0x8) + 1040: 2300 addi r3, 1 + 1042: b762 st.w r3, (r7, 0x8) + 1044: 6c1f mov r0, r7 + 1046: 140a addi r14, r14, 40 + 1048: 1484 pop r4-r7 + 104a: 3b42 cmpnei r3, 2 + 104c: 0ba6 bt 0xf98 // f98 <_fpadd_parts+0xd8> + 104e: b760 st.w r3, (r7, 0x0) + 1050: 9061 ld.w r3, (r0, 0x4) + 1052: b761 st.w r3, (r7, 0x4) + 1054: 9062 ld.w r3, (r0, 0x8) + 1056: b762 st.w r3, (r7, 0x8) + 1058: 9063 ld.w r3, (r0, 0xc) + 105a: b763 st.w r3, (r7, 0xc) + 105c: 9064 ld.w r3, (r0, 0x10) + 105e: 9141 ld.w r2, (r1, 0x4) + 1060: b764 st.w r3, (r7, 0x10) + 1062: 9061 ld.w r3, (r0, 0x4) + 1064: 68c8 and r3, r2 + 1066: b761 st.w r3, (r7, 0x4) + 1068: 6c1f mov r0, r7 + 106a: 0797 br 0xf98 // f98 <_fpadd_parts+0xd8> + 106c: 98e2 ld.w r7, (r14, 0x8) + 106e: 651c cmphs r7, r4 + 1070: 0b7c bt 0xf68 // f68 <_fpadd_parts+0xa8> + 1072: 078c br 0xf8a // f8a <_fpadd_parts+0xca> + 1074: 9802 ld.w r0, (r14, 0x8) + 1076: 9823 ld.w r1, (r14, 0xc) + 1078: 9840 ld.w r2, (r14, 0x0) + 107a: 9861 ld.w r3, (r14, 0x4) + 107c: 6400 cmphs r0, r0 + 107e: 600b subc r0, r2 + 1080: 604f subc r1, r3 + 1082: 0754 br 0xf2a // f2a <_fpadd_parts+0x6a> + 1084: 3200 movi r2, 0 + 1086: 3300 movi r3, 0 + 1088: 6d17 mov r4, r5 + 108a: b842 st.w r2, (r14, 0x8) + 108c: b863 st.w r3, (r14, 0xc) + 108e: 0741 br 0xf10 // f10 <_fpadd_parts+0x50> + 1090: 3a44 cmpnei r2, 4 + 1092: 0b83 bt 0xf98 // f98 <_fpadd_parts+0xd8> + 1094: 9041 ld.w r2, (r0, 0x4) + 1096: 9161 ld.w r3, (r1, 0x4) + 1098: 64ca cmpne r2, r3 + 109a: 0f7f bf 0xf98 // f98 <_fpadd_parts+0xd8> + 109c: 111d lrw r0, 0xa794 // 1190 <_fpadd_parts+0x2d0> + 109e: 077d br 0xf98 // f98 <_fpadd_parts+0xd8> + 10a0: 3200 movi r2, 0 + 10a2: 608e subu r2, r3 + 10a4: 072d br 0xefe // efe <_fpadd_parts+0x3e> + 10a6: 3301 movi r3, 1 + 10a8: b761 st.w r3, (r7, 0x4) + 10aa: 3200 movi r2, 0 + 10ac: 3300 movi r3, 0 + 10ae: 6488 cmphs r2, r2 + 10b0: 6083 subc r2, r0 + 10b2: 60c7 subc r3, r1 + 10b4: b782 st.w r4, (r7, 0x8) + 10b6: b743 st.w r2, (r7, 0xc) + 10b8: b764 st.w r3, (r7, 0x10) + 10ba: 0741 br 0xf3c // f3c <_fpadd_parts+0x7c> + 10bc: 3b40 cmpnei r3, 0 + 10be: 0f29 bf 0xf10 // f10 <_fpadd_parts+0x50> + 10c0: 3300 movi r3, 0 + 10c2: 2b1f subi r3, 32 + 10c4: 60c8 addu r3, r2 + 10c6: 3bdf btsti r3, 31 + 10c8: 6108 addu r4, r2 + 10ca: b866 st.w r3, (r14, 0x18) + 10cc: 0849 bt 0x115e // 115e <_fpadd_parts+0x29e> + 10ce: 9863 ld.w r3, (r14, 0xc) + 10d0: 98a6 ld.w r5, (r14, 0x18) + 10d2: 70d5 lsr r3, r5 + 10d4: b864 st.w r3, (r14, 0x10) + 10d6: 3300 movi r3, 0 + 10d8: b865 st.w r3, (r14, 0x14) + 10da: 9866 ld.w r3, (r14, 0x18) + 10dc: 3bdf btsti r3, 31 + 10de: 3500 movi r5, 0 + 10e0: 3600 movi r6, 0 + 10e2: 083a bt 0x1156 // 1156 <_fpadd_parts+0x296> + 10e4: 3201 movi r2, 1 + 10e6: 708c lsl r2, r3 + 10e8: 6d8b mov r6, r2 + 10ea: 3200 movi r2, 0 + 10ec: 3300 movi r3, 0 + 10ee: 2a00 subi r2, 1 + 10f0: 2b00 subi r3, 1 + 10f2: 6489 cmplt r2, r2 + 10f4: 6095 addc r2, r5 + 10f6: 60d9 addc r3, r6 + 10f8: 98a2 ld.w r5, (r14, 0x8) + 10fa: 98c3 ld.w r6, (r14, 0xc) + 10fc: 6948 and r5, r2 + 10fe: 698c and r6, r3 + 1100: 6c97 mov r2, r5 + 1102: 6cdb mov r3, r6 + 1104: 6c8c or r2, r3 + 1106: 3a40 cmpnei r2, 0 + 1108: 3500 movi r5, 0 + 110a: 6155 addc r5, r5 + 110c: 6c97 mov r2, r5 + 110e: 3300 movi r3, 0 + 1110: 98a4 ld.w r5, (r14, 0x10) + 1112: 98c5 ld.w r6, (r14, 0x14) + 1114: 6d48 or r5, r2 + 1116: 6d8c or r6, r3 + 1118: b8a2 st.w r5, (r14, 0x8) + 111a: b8c3 st.w r6, (r14, 0xc) + 111c: 06fa br 0xf10 // f10 <_fpadd_parts+0x50> + 111e: 3301 movi r3, 1 + 1120: 70c8 lsl r3, r2 + 1122: 6d4f mov r5, r3 + 1124: 0754 br 0xfcc // fcc <_fpadd_parts+0x10c> + 1126: 9861 ld.w r3, (r14, 0x4) + 1128: 361f movi r6, 31 + 112a: 43a1 lsli r5, r3, 1 + 112c: 618a subu r6, r2 + 112e: 7158 lsl r5, r6 + 1130: b8a9 st.w r5, (r14, 0x24) + 1132: 98a0 ld.w r5, (r14, 0x0) + 1134: 98c1 ld.w r6, (r14, 0x4) + 1136: b8a7 st.w r5, (r14, 0x1c) + 1138: b8c8 st.w r6, (r14, 0x20) + 113a: 9867 ld.w r3, (r14, 0x1c) + 113c: 70c9 lsr r3, r2 + 113e: 98a9 ld.w r5, (r14, 0x24) + 1140: 6cd4 or r3, r5 + 1142: b864 st.w r3, (r14, 0x10) + 1144: 9868 ld.w r3, (r14, 0x20) + 1146: 70c9 lsr r3, r2 + 1148: b865 st.w r3, (r14, 0x14) + 114a: 0739 br 0xfbc // fbc <_fpadd_parts+0xfc> + 114c: 3100 movi r1, 0 + 114e: 2901 subi r1, 2 + 1150: 6404 cmphs r1, r0 + 1152: 0b01 bt 0xf54 // f54 <_fpadd_parts+0x94> + 1154: 0764 br 0x101c // 101c <_fpadd_parts+0x15c> + 1156: 3301 movi r3, 1 + 1158: 70c8 lsl r3, r2 + 115a: 6d4f mov r5, r3 + 115c: 07c7 br 0x10ea // 10ea <_fpadd_parts+0x22a> + 115e: 9863 ld.w r3, (r14, 0xc) + 1160: 43c1 lsli r6, r3, 1 + 1162: 351f movi r5, 31 + 1164: 5d69 subu r3, r5, r2 + 1166: 6d5b mov r5, r6 + 1168: 714c lsl r5, r3 + 116a: b8a9 st.w r5, (r14, 0x24) + 116c: 98a2 ld.w r5, (r14, 0x8) + 116e: 98c3 ld.w r6, (r14, 0xc) + 1170: b8a7 st.w r5, (r14, 0x1c) + 1172: b8c8 st.w r6, (r14, 0x20) + 1174: 9867 ld.w r3, (r14, 0x1c) + 1176: 70c9 lsr r3, r2 + 1178: 98a9 ld.w r5, (r14, 0x24) + 117a: 6cd4 or r3, r5 + 117c: b864 st.w r3, (r14, 0x10) + 117e: 9868 ld.w r3, (r14, 0x20) + 1180: 70c9 lsr r3, r2 + 1182: b865 st.w r3, (r14, 0x14) + 1184: 07ab br 0x10da // 10da <_fpadd_parts+0x21a> + 1186: 0000 bkpt + 1188: 0fffffff .long 0x0fffffff + 118c: 1fffffff .long 0x1fffffff + 1190: 0000a794 .long 0x0000a794 + +00001194 <__adddf3>: + 1194: 14d0 push r15 + 1196: 1433 subi r14, r14, 76 + 1198: b800 st.w r0, (r14, 0x0) + 119a: b821 st.w r1, (r14, 0x4) + 119c: 6c3b mov r0, r14 + 119e: 1904 addi r1, r14, 16 + 11a0: b863 st.w r3, (r14, 0xc) + 11a2: b842 st.w r2, (r14, 0x8) + 11a4: e00004a6 bsr 0x1af0 // 1af0 <__unpack_d> + 11a8: 1909 addi r1, r14, 36 + 11aa: 1802 addi r0, r14, 8 + 11ac: e00004a2 bsr 0x1af0 // 1af0 <__unpack_d> + 11b0: 1a0e addi r2, r14, 56 + 11b2: 1909 addi r1, r14, 36 + 11b4: 1804 addi r0, r14, 16 + 11b6: e3fffe85 bsr 0xec0 // ec0 <_fpadd_parts> + 11ba: e00003cd bsr 0x1954 // 1954 <__pack_d> + 11be: 1413 addi r14, r14, 76 + 11c0: 1490 pop r15 + ... + +000011c4 <__subdf3>: + 11c4: 14d0 push r15 + 11c6: 1433 subi r14, r14, 76 + 11c8: b800 st.w r0, (r14, 0x0) + 11ca: b821 st.w r1, (r14, 0x4) + 11cc: 6c3b mov r0, r14 + 11ce: 1904 addi r1, r14, 16 + 11d0: b842 st.w r2, (r14, 0x8) + 11d2: b863 st.w r3, (r14, 0xc) + 11d4: e000048e bsr 0x1af0 // 1af0 <__unpack_d> + 11d8: 1909 addi r1, r14, 36 + 11da: 1802 addi r0, r14, 8 + 11dc: e000048a bsr 0x1af0 // 1af0 <__unpack_d> + 11e0: 986a ld.w r3, (r14, 0x28) + 11e2: 3201 movi r2, 1 + 11e4: 6cc9 xor r3, r2 + 11e6: 1909 addi r1, r14, 36 + 11e8: 1a0e addi r2, r14, 56 + 11ea: 1804 addi r0, r14, 16 + 11ec: b86a st.w r3, (r14, 0x28) + 11ee: e3fffe69 bsr 0xec0 // ec0 <_fpadd_parts> + 11f2: e00003b1 bsr 0x1954 // 1954 <__pack_d> + 11f6: 1413 addi r14, r14, 76 + 11f8: 1490 pop r15 + ... + +000011fc <__muldf3>: + 11fc: 14d4 push r4-r7, r15 + 11fe: 143b subi r14, r14, 108 + 1200: b808 st.w r0, (r14, 0x20) + 1202: b829 st.w r1, (r14, 0x24) + 1204: 1808 addi r0, r14, 32 + 1206: 190c addi r1, r14, 48 + 1208: b86b st.w r3, (r14, 0x2c) + 120a: b84a st.w r2, (r14, 0x28) + 120c: e0000472 bsr 0x1af0 // 1af0 <__unpack_d> + 1210: 1911 addi r1, r14, 68 + 1212: 180a addi r0, r14, 40 + 1214: e000046e bsr 0x1af0 // 1af0 <__unpack_d> + 1218: 986c ld.w r3, (r14, 0x30) + 121a: 3b01 cmphsi r3, 2 + 121c: 0cac bf 0x1374 // 1374 <__muldf3+0x178> + 121e: 9851 ld.w r2, (r14, 0x44) + 1220: 3a01 cmphsi r2, 2 + 1222: 0c9c bf 0x135a // 135a <__muldf3+0x15e> + 1224: 3b44 cmpnei r3, 4 + 1226: 0ca5 bf 0x1370 // 1370 <__muldf3+0x174> + 1228: 3a44 cmpnei r2, 4 + 122a: 0c96 bf 0x1356 // 1356 <__muldf3+0x15a> + 122c: 3b42 cmpnei r3, 2 + 122e: 0ca3 bf 0x1374 // 1374 <__muldf3+0x178> + 1230: 3a42 cmpnei r2, 2 + 1232: 0c94 bf 0x135a // 135a <__muldf3+0x15e> + 1234: 98ef ld.w r7, (r14, 0x3c) + 1236: 98b4 ld.w r5, (r14, 0x50) + 1238: 9875 ld.w r3, (r14, 0x54) + 123a: 6d8f mov r6, r3 + 123c: 6c9f mov r2, r7 + 123e: 3300 movi r3, 0 + 1240: 6c17 mov r0, r5 + 1242: 3100 movi r1, 0 + 1244: e00002a8 bsr 0x1794 // 1794 <__muldi3> + 1248: b804 st.w r0, (r14, 0x10) + 124a: b825 st.w r1, (r14, 0x14) + 124c: 6c9f mov r2, r7 + 124e: 3300 movi r3, 0 + 1250: 6c1b mov r0, r6 + 1252: 3100 movi r1, 0 + 1254: 9890 ld.w r4, (r14, 0x40) + 1256: b8c2 st.w r6, (r14, 0x8) + 1258: e000029e bsr 0x1794 // 1794 <__muldi3> + 125c: 6d83 mov r6, r0 + 125e: 6dc7 mov r7, r1 + 1260: 9842 ld.w r2, (r14, 0x8) + 1262: 3300 movi r3, 0 + 1264: 6c13 mov r0, r4 + 1266: 3100 movi r1, 0 + 1268: e0000296 bsr 0x1794 // 1794 <__muldi3> + 126c: b806 st.w r0, (r14, 0x18) + 126e: b827 st.w r1, (r14, 0x1c) + 1270: 6c97 mov r2, r5 + 1272: 3300 movi r3, 0 + 1274: 6c13 mov r0, r4 + 1276: 3100 movi r1, 0 + 1278: e000028e bsr 0x1794 // 1794 <__muldi3> + 127c: 6401 cmplt r0, r0 + 127e: 6019 addc r0, r6 + 1280: 605d addc r1, r7 + 1282: 65c4 cmphs r1, r7 + 1284: 0c91 bf 0x13a6 // 13a6 <__muldf3+0x1aa> + 1286: 645e cmpne r7, r1 + 1288: 0c8d bf 0x13a2 // 13a2 <__muldf3+0x1a6> + 128a: 3300 movi r3, 0 + 128c: 3400 movi r4, 0 + 128e: b862 st.w r3, (r14, 0x8) + 1290: b883 st.w r4, (r14, 0xc) + 1292: 9884 ld.w r4, (r14, 0x10) + 1294: 98a5 ld.w r5, (r14, 0x14) + 1296: 3600 movi r6, 0 + 1298: 6dc3 mov r7, r0 + 129a: 6c93 mov r2, r4 + 129c: 6cd7 mov r3, r5 + 129e: 6489 cmplt r2, r2 + 12a0: 6099 addc r2, r6 + 12a2: 60dd addc r3, r7 + 12a4: 6d8b mov r6, r2 + 12a6: 6dcf mov r7, r3 + 12a8: 6c93 mov r2, r4 + 12aa: 6cd7 mov r3, r5 + 12ac: 64dc cmphs r7, r3 + 12ae: 0c70 bf 0x138e // 138e <__muldf3+0x192> + 12b0: 65ce cmpne r3, r7 + 12b2: 0c6c bf 0x138a // 138a <__muldf3+0x18e> + 12b4: 6c87 mov r2, r1 + 12b6: 3300 movi r3, 0 + 12b8: 9806 ld.w r0, (r14, 0x18) + 12ba: 9827 ld.w r1, (r14, 0x1c) + 12bc: 6401 cmplt r0, r0 + 12be: 6009 addc r0, r2 + 12c0: 604d addc r1, r3 + 12c2: 6c83 mov r2, r0 + 12c4: 6cc7 mov r3, r1 + 12c6: 9802 ld.w r0, (r14, 0x8) + 12c8: 9823 ld.w r1, (r14, 0xc) + 12ca: 6401 cmplt r0, r0 + 12cc: 6009 addc r0, r2 + 12ce: 604d addc r1, r3 + 12d0: 6c83 mov r2, r0 + 12d2: 6cc7 mov r3, r1 + 12d4: 988e ld.w r4, (r14, 0x38) + 12d6: 9833 ld.w r1, (r14, 0x4c) + 12d8: 6104 addu r4, r1 + 12da: 5c2e addi r1, r4, 4 + 12dc: b838 st.w r1, (r14, 0x60) + 12de: 980d ld.w r0, (r14, 0x34) + 12e0: 9832 ld.w r1, (r14, 0x48) + 12e2: 6442 cmpne r0, r1 + 12e4: 12b0 lrw r5, 0x1fffffff // 1424 <__muldf3+0x228> + 12e6: 3100 movi r1, 0 + 12e8: 6045 addc r1, r1 + 12ea: 64d4 cmphs r5, r3 + 12ec: b837 st.w r1, (r14, 0x5c) + 12ee: 0879 bt 0x13e0 // 13e0 <__muldf3+0x1e4> + 12f0: 2404 addi r4, 5 + 12f2: b8a4 st.w r5, (r14, 0x10) + 12f4: 3001 movi r0, 1 + 12f6: 3100 movi r1, 0 + 12f8: 6808 and r0, r2 + 12fa: 684c and r1, r3 + 12fc: 6c04 or r0, r1 + 12fe: 3840 cmpnei r0, 0 + 1300: b882 st.w r4, (r14, 0x8) + 1302: 0c0e bf 0x131e // 131e <__muldf3+0x122> + 1304: 473f lsli r1, r7, 31 + 1306: 4e01 lsri r0, r6, 1 + 1308: 6c04 or r0, r1 + 130a: 4f21 lsri r1, r7, 1 + 130c: b800 st.w r0, (r14, 0x0) + 130e: b821 st.w r1, (r14, 0x4) + 1310: 3180 movi r1, 128 + 1312: 98c0 ld.w r6, (r14, 0x0) + 1314: 98e1 ld.w r7, (r14, 0x4) + 1316: 3000 movi r0, 0 + 1318: 4138 lsli r1, r1, 24 + 131a: 6d80 or r6, r0 + 131c: 6dc4 or r7, r1 + 131e: 4b21 lsri r1, r3, 1 + 1320: 43bf lsli r5, r3, 31 + 1322: 4a01 lsri r0, r2, 1 + 1324: 6cc7 mov r3, r1 + 1326: 9824 ld.w r1, (r14, 0x10) + 1328: 6d40 or r5, r0 + 132a: 64c4 cmphs r1, r3 + 132c: 6c97 mov r2, r5 + 132e: 2400 addi r4, 1 + 1330: 0fe2 bf 0x12f4 // 12f4 <__muldf3+0xf8> + 1332: 9822 ld.w r1, (r14, 0x8) + 1334: b838 st.w r1, (r14, 0x60) + 1336: 30ff movi r0, 255 + 1338: 3100 movi r1, 0 + 133a: 6808 and r0, r2 + 133c: 684c and r1, r3 + 133e: 3480 movi r4, 128 + 1340: 6502 cmpne r0, r4 + 1342: 0c37 bf 0x13b0 // 13b0 <__muldf3+0x1b4> + 1344: b859 st.w r2, (r14, 0x64) + 1346: b87a st.w r3, (r14, 0x68) + 1348: 3303 movi r3, 3 + 134a: b876 st.w r3, (r14, 0x58) + 134c: 1816 addi r0, r14, 88 + 134e: e0000303 bsr 0x1954 // 1954 <__pack_d> + 1352: 141b addi r14, r14, 108 + 1354: 1494 pop r4-r7, r15 + 1356: 3b42 cmpnei r3, 2 + 1358: 0c42 bf 0x13dc // 13dc <__muldf3+0x1e0> + 135a: 9872 ld.w r3, (r14, 0x48) + 135c: 984d ld.w r2, (r14, 0x34) + 135e: 64ca cmpne r2, r3 + 1360: 3300 movi r3, 0 + 1362: 60cd addc r3, r3 + 1364: 1811 addi r0, r14, 68 + 1366: b872 st.w r3, (r14, 0x48) + 1368: e00002f6 bsr 0x1954 // 1954 <__pack_d> + 136c: 141b addi r14, r14, 108 + 136e: 1494 pop r4-r7, r15 + 1370: 3a42 cmpnei r2, 2 + 1372: 0c35 bf 0x13dc // 13dc <__muldf3+0x1e0> + 1374: 984d ld.w r2, (r14, 0x34) + 1376: 9872 ld.w r3, (r14, 0x48) + 1378: 64ca cmpne r2, r3 + 137a: 3300 movi r3, 0 + 137c: 60cd addc r3, r3 + 137e: 180c addi r0, r14, 48 + 1380: b86d st.w r3, (r14, 0x34) + 1382: e00002e9 bsr 0x1954 // 1954 <__pack_d> + 1386: 141b addi r14, r14, 108 + 1388: 1494 pop r4-r7, r15 + 138a: 6498 cmphs r6, r2 + 138c: 0b94 bt 0x12b4 // 12b4 <__muldf3+0xb8> + 138e: 9882 ld.w r4, (r14, 0x8) + 1390: 98a3 ld.w r5, (r14, 0xc) + 1392: 3201 movi r2, 1 + 1394: 3300 movi r3, 0 + 1396: 6511 cmplt r4, r4 + 1398: 6109 addc r4, r2 + 139a: 614d addc r5, r3 + 139c: b882 st.w r4, (r14, 0x8) + 139e: b8a3 st.w r5, (r14, 0xc) + 13a0: 078a br 0x12b4 // 12b4 <__muldf3+0xb8> + 13a2: 6580 cmphs r0, r6 + 13a4: 0b73 bt 0x128a // 128a <__muldf3+0x8e> + 13a6: 3300 movi r3, 0 + 13a8: 3401 movi r4, 1 + 13aa: b862 st.w r3, (r14, 0x8) + 13ac: b883 st.w r4, (r14, 0xc) + 13ae: 0772 br 0x1292 // 1292 <__muldf3+0x96> + 13b0: 3940 cmpnei r1, 0 + 13b2: 0bc9 bt 0x1344 // 1344 <__muldf3+0x148> + 13b4: 3180 movi r1, 128 + 13b6: 4121 lsli r1, r1, 1 + 13b8: 6848 and r1, r2 + 13ba: 3940 cmpnei r1, 0 + 13bc: 0bc4 bt 0x1344 // 1344 <__muldf3+0x148> + 13be: 6c5b mov r1, r6 + 13c0: 6c5c or r1, r7 + 13c2: 3940 cmpnei r1, 0 + 13c4: 0fc0 bf 0x1344 // 1344 <__muldf3+0x148> + 13c6: 3080 movi r0, 128 + 13c8: 3100 movi r1, 0 + 13ca: 6401 cmplt r0, r0 + 13cc: 6009 addc r0, r2 + 13ce: 604d addc r1, r3 + 13d0: 34ff movi r4, 255 + 13d2: 6d43 mov r5, r0 + 13d4: 6951 andn r5, r4 + 13d6: 6c97 mov r2, r5 + 13d8: 6cc7 mov r3, r1 + 13da: 07b5 br 0x1344 // 1344 <__muldf3+0x148> + 13dc: 1013 lrw r0, 0xa794 // 1428 <__muldf3+0x22c> + 13de: 07b8 br 0x134e // 134e <__muldf3+0x152> + 13e0: 1033 lrw r1, 0xfffffff // 142c <__muldf3+0x230> + 13e2: 64c4 cmphs r1, r3 + 13e4: 0fa9 bf 0x1336 // 1336 <__muldf3+0x13a> + 13e6: 2402 addi r4, 3 + 13e8: b822 st.w r1, (r14, 0x8) + 13ea: 4a1f lsri r0, r2, 31 + 13ec: 4321 lsli r1, r3, 1 + 13ee: 42a1 lsli r5, r2, 1 + 13f0: 6c04 or r0, r1 + 13f2: 3fdf btsti r7, 31 + 13f4: b880 st.w r4, (r14, 0x0) + 13f6: 6c97 mov r2, r5 + 13f8: 6cc3 mov r3, r0 + 13fa: 0c07 bf 0x1408 // 1408 <__muldf3+0x20c> + 13fc: 3001 movi r0, 1 + 13fe: 3100 movi r1, 0 + 1400: 6c08 or r0, r2 + 1402: 6c4c or r1, r3 + 1404: 6c83 mov r2, r0 + 1406: 6cc7 mov r3, r1 + 1408: 4721 lsli r1, r7, 1 + 140a: 4e1f lsri r0, r6, 31 + 140c: 6c04 or r0, r1 + 140e: 9822 ld.w r1, (r14, 0x8) + 1410: 46a1 lsli r5, r6, 1 + 1412: 64c4 cmphs r1, r3 + 1414: 6d97 mov r6, r5 + 1416: 6dc3 mov r7, r0 + 1418: 2c00 subi r4, 1 + 141a: 0be8 bt 0x13ea // 13ea <__muldf3+0x1ee> + 141c: 9820 ld.w r1, (r14, 0x0) + 141e: b838 st.w r1, (r14, 0x60) + 1420: 078b br 0x1336 // 1336 <__muldf3+0x13a> + 1422: 0000 bkpt + 1424: 1fffffff .long 0x1fffffff + 1428: 0000a794 .long 0x0000a794 + 142c: 0fffffff .long 0x0fffffff + +00001430 <__divdf3>: + 1430: 14d4 push r4-r7, r15 + 1432: 1432 subi r14, r14, 72 + 1434: b804 st.w r0, (r14, 0x10) + 1436: b825 st.w r1, (r14, 0x14) + 1438: 1804 addi r0, r14, 16 + 143a: 1908 addi r1, r14, 32 + 143c: b867 st.w r3, (r14, 0x1c) + 143e: b846 st.w r2, (r14, 0x18) + 1440: e0000358 bsr 0x1af0 // 1af0 <__unpack_d> + 1444: 190d addi r1, r14, 52 + 1446: 1806 addi r0, r14, 24 + 1448: e0000354 bsr 0x1af0 // 1af0 <__unpack_d> + 144c: 9868 ld.w r3, (r14, 0x20) + 144e: 3b01 cmphsi r3, 2 + 1450: 0c66 bf 0x151c // 151c <__divdf3+0xec> + 1452: 982d ld.w r1, (r14, 0x34) + 1454: 3901 cmphsi r1, 2 + 1456: 0c92 bf 0x157a // 157a <__divdf3+0x14a> + 1458: 9849 ld.w r2, (r14, 0x24) + 145a: 980e ld.w r0, (r14, 0x38) + 145c: 6c81 xor r2, r0 + 145e: 3b44 cmpnei r3, 4 + 1460: b849 st.w r2, (r14, 0x24) + 1462: 0c62 bf 0x1526 // 1526 <__divdf3+0xf6> + 1464: 3b42 cmpnei r3, 2 + 1466: 0c60 bf 0x1526 // 1526 <__divdf3+0xf6> + 1468: 3944 cmpnei r1, 4 + 146a: 0c62 bf 0x152e // 152e <__divdf3+0xfe> + 146c: 3942 cmpnei r1, 2 + 146e: 0c82 bf 0x1572 // 1572 <__divdf3+0x142> + 1470: 982a ld.w r1, (r14, 0x28) + 1472: 986f ld.w r3, (r14, 0x3c) + 1474: 604e subu r1, r3 + 1476: 9890 ld.w r4, (r14, 0x40) + 1478: 98b1 ld.w r5, (r14, 0x44) + 147a: 984b ld.w r2, (r14, 0x2c) + 147c: 986c ld.w r3, (r14, 0x30) + 147e: 654c cmphs r3, r5 + 1480: b82a st.w r1, (r14, 0x28) + 1482: 6d93 mov r6, r4 + 1484: 6dd7 mov r7, r5 + 1486: 0c05 bf 0x1490 // 1490 <__divdf3+0x60> + 1488: 64d6 cmpne r5, r3 + 148a: 080b bt 0x14a0 // 14a0 <__divdf3+0x70> + 148c: 6508 cmphs r2, r4 + 148e: 0809 bt 0x14a0 // 14a0 <__divdf3+0x70> + 1490: 4a9f lsri r4, r2, 31 + 1492: 4301 lsli r0, r3, 1 + 1494: 42a1 lsli r5, r2, 1 + 1496: 6d00 or r4, r0 + 1498: 2900 subi r1, 1 + 149a: 6c97 mov r2, r5 + 149c: 6cd3 mov r3, r4 + 149e: b82a st.w r1, (r14, 0x28) + 14a0: 3000 movi r0, 0 + 14a2: 3100 movi r1, 0 + 14a4: b802 st.w r0, (r14, 0x8) + 14a6: b823 st.w r1, (r14, 0xc) + 14a8: 3180 movi r1, 128 + 14aa: 343d movi r4, 61 + 14ac: 3000 movi r0, 0 + 14ae: 4135 lsli r1, r1, 21 + 14b0: b8c0 st.w r6, (r14, 0x0) + 14b2: b8e1 st.w r7, (r14, 0x4) + 14b4: 98a0 ld.w r5, (r14, 0x0) + 14b6: 98c1 ld.w r6, (r14, 0x4) + 14b8: 658c cmphs r3, r6 + 14ba: 0c10 bf 0x14da // 14da <__divdf3+0xaa> + 14bc: 64da cmpne r6, r3 + 14be: 0803 bt 0x14c4 // 14c4 <__divdf3+0x94> + 14c0: 6548 cmphs r2, r5 + 14c2: 0c0c bf 0x14da // 14da <__divdf3+0xaa> + 14c4: 98a2 ld.w r5, (r14, 0x8) + 14c6: 98c3 ld.w r6, (r14, 0xc) + 14c8: 6d40 or r5, r0 + 14ca: 6d84 or r6, r1 + 14cc: b8a2 st.w r5, (r14, 0x8) + 14ce: b8c3 st.w r6, (r14, 0xc) + 14d0: 98a0 ld.w r5, (r14, 0x0) + 14d2: 98c1 ld.w r6, (r14, 0x4) + 14d4: 6488 cmphs r2, r2 + 14d6: 6097 subc r2, r5 + 14d8: 60db subc r3, r6 + 14da: 41bf lsli r5, r1, 31 + 14dc: 48e1 lsri r7, r0, 1 + 14de: 6d97 mov r6, r5 + 14e0: 49a1 lsri r5, r1, 1 + 14e2: 6d9c or r6, r7 + 14e4: 6c57 mov r1, r5 + 14e6: 4abf lsri r5, r2, 31 + 14e8: 6c1b mov r0, r6 + 14ea: 2c00 subi r4, 1 + 14ec: 6d97 mov r6, r5 + 14ee: 43a1 lsli r5, r3, 1 + 14f0: 6d94 or r6, r5 + 14f2: 4261 lsli r3, r2, 1 + 14f4: 3c40 cmpnei r4, 0 + 14f6: 6dcf mov r7, r3 + 14f8: 6c8f mov r2, r3 + 14fa: 6cdb mov r3, r6 + 14fc: 0bdc bt 0x14b4 // 14b4 <__divdf3+0x84> + 14fe: 30ff movi r0, 255 + 1500: 3100 movi r1, 0 + 1502: 9882 ld.w r4, (r14, 0x8) + 1504: 98a3 ld.w r5, (r14, 0xc) + 1506: 6900 and r4, r0 + 1508: 6944 and r5, r1 + 150a: 6c13 mov r0, r4 + 150c: 6c57 mov r1, r5 + 150e: 3480 movi r4, 128 + 1510: 6502 cmpne r0, r4 + 1512: 0c15 bf 0x153c // 153c <__divdf3+0x10c> + 1514: 9862 ld.w r3, (r14, 0x8) + 1516: 9883 ld.w r4, (r14, 0xc) + 1518: b86b st.w r3, (r14, 0x2c) + 151a: b88c st.w r4, (r14, 0x30) + 151c: 1808 addi r0, r14, 32 + 151e: e000021b bsr 0x1954 // 1954 <__pack_d> + 1522: 1412 addi r14, r14, 72 + 1524: 1494 pop r4-r7, r15 + 1526: 644e cmpne r3, r1 + 1528: 0bfa bt 0x151c // 151c <__divdf3+0xec> + 152a: 1016 lrw r0, 0xa794 // 1580 <__divdf3+0x150> + 152c: 07f9 br 0x151e // 151e <__divdf3+0xee> + 152e: 3300 movi r3, 0 + 1530: 3400 movi r4, 0 + 1532: b86b st.w r3, (r14, 0x2c) + 1534: b88c st.w r4, (r14, 0x30) + 1536: b86a st.w r3, (r14, 0x28) + 1538: 1808 addi r0, r14, 32 + 153a: 07f2 br 0x151e // 151e <__divdf3+0xee> + 153c: 3940 cmpnei r1, 0 + 153e: 0beb bt 0x1514 // 1514 <__divdf3+0xe4> + 1540: 3180 movi r1, 128 + 1542: 4121 lsli r1, r1, 1 + 1544: 9882 ld.w r4, (r14, 0x8) + 1546: 98a3 ld.w r5, (r14, 0xc) + 1548: 6850 and r1, r4 + 154a: 3940 cmpnei r1, 0 + 154c: 0be4 bt 0x1514 // 1514 <__divdf3+0xe4> + 154e: 6c98 or r2, r6 + 1550: 3a40 cmpnei r2, 0 + 1552: 0fe1 bf 0x1514 // 1514 <__divdf3+0xe4> + 1554: 3280 movi r2, 128 + 1556: 3300 movi r3, 0 + 1558: 6c13 mov r0, r4 + 155a: 6c57 mov r1, r5 + 155c: 6401 cmplt r0, r0 + 155e: 6009 addc r0, r2 + 1560: 604d addc r1, r3 + 1562: 6c83 mov r2, r0 + 1564: 6cc7 mov r3, r1 + 1566: 6c0b mov r0, r2 + 1568: 31ff movi r1, 255 + 156a: 6805 andn r0, r1 + 156c: b802 st.w r0, (r14, 0x8) + 156e: b863 st.w r3, (r14, 0xc) + 1570: 07d2 br 0x1514 // 1514 <__divdf3+0xe4> + 1572: 3304 movi r3, 4 + 1574: b868 st.w r3, (r14, 0x20) + 1576: 1808 addi r0, r14, 32 + 1578: 07d3 br 0x151e // 151e <__divdf3+0xee> + 157a: 180d addi r0, r14, 52 + 157c: 07d1 br 0x151e // 151e <__divdf3+0xee> + 157e: 0000 bkpt + 1580: 0000a794 .long 0x0000a794 + +00001584 <__gtdf2>: + 1584: 14d0 push r15 + 1586: 142e subi r14, r14, 56 + 1588: b800 st.w r0, (r14, 0x0) + 158a: b821 st.w r1, (r14, 0x4) + 158c: 6c3b mov r0, r14 + 158e: 1904 addi r1, r14, 16 + 1590: b863 st.w r3, (r14, 0xc) + 1592: b842 st.w r2, (r14, 0x8) + 1594: e00002ae bsr 0x1af0 // 1af0 <__unpack_d> + 1598: 1909 addi r1, r14, 36 + 159a: 1802 addi r0, r14, 8 + 159c: e00002aa bsr 0x1af0 // 1af0 <__unpack_d> + 15a0: 9864 ld.w r3, (r14, 0x10) + 15a2: 3b01 cmphsi r3, 2 + 15a4: 0c0a bf 0x15b8 // 15b8 <__gtdf2+0x34> + 15a6: 9869 ld.w r3, (r14, 0x24) + 15a8: 3b01 cmphsi r3, 2 + 15aa: 0c07 bf 0x15b8 // 15b8 <__gtdf2+0x34> + 15ac: 1909 addi r1, r14, 36 + 15ae: 1804 addi r0, r14, 16 + 15b0: e0000302 bsr 0x1bb4 // 1bb4 <__fpcmp_parts_d> + 15b4: 140e addi r14, r14, 56 + 15b6: 1490 pop r15 + 15b8: 3000 movi r0, 0 + 15ba: 2800 subi r0, 1 + 15bc: 140e addi r14, r14, 56 + 15be: 1490 pop r15 + +000015c0 <__gedf2>: + 15c0: 14d0 push r15 + 15c2: 142e subi r14, r14, 56 + 15c4: b800 st.w r0, (r14, 0x0) + 15c6: b821 st.w r1, (r14, 0x4) + 15c8: 6c3b mov r0, r14 + 15ca: 1904 addi r1, r14, 16 + 15cc: b863 st.w r3, (r14, 0xc) + 15ce: b842 st.w r2, (r14, 0x8) + 15d0: e0000290 bsr 0x1af0 // 1af0 <__unpack_d> + 15d4: 1909 addi r1, r14, 36 + 15d6: 1802 addi r0, r14, 8 + 15d8: e000028c bsr 0x1af0 // 1af0 <__unpack_d> + 15dc: 9864 ld.w r3, (r14, 0x10) + 15de: 3b01 cmphsi r3, 2 + 15e0: 0c0a bf 0x15f4 // 15f4 <__gedf2+0x34> + 15e2: 9869 ld.w r3, (r14, 0x24) + 15e4: 3b01 cmphsi r3, 2 + 15e6: 0c07 bf 0x15f4 // 15f4 <__gedf2+0x34> + 15e8: 1909 addi r1, r14, 36 + 15ea: 1804 addi r0, r14, 16 + 15ec: e00002e4 bsr 0x1bb4 // 1bb4 <__fpcmp_parts_d> + 15f0: 140e addi r14, r14, 56 + 15f2: 1490 pop r15 + 15f4: 3000 movi r0, 0 + 15f6: 2800 subi r0, 1 + 15f8: 140e addi r14, r14, 56 + 15fa: 1490 pop r15 + +000015fc <__ledf2>: + 15fc: 14d0 push r15 + 15fe: 142e subi r14, r14, 56 + 1600: b800 st.w r0, (r14, 0x0) + 1602: b821 st.w r1, (r14, 0x4) + 1604: 6c3b mov r0, r14 + 1606: 1904 addi r1, r14, 16 + 1608: b863 st.w r3, (r14, 0xc) + 160a: b842 st.w r2, (r14, 0x8) + 160c: e0000272 bsr 0x1af0 // 1af0 <__unpack_d> + 1610: 1909 addi r1, r14, 36 + 1612: 1802 addi r0, r14, 8 + 1614: e000026e bsr 0x1af0 // 1af0 <__unpack_d> + 1618: 9864 ld.w r3, (r14, 0x10) + 161a: 3b01 cmphsi r3, 2 + 161c: 0c0a bf 0x1630 // 1630 <__ledf2+0x34> + 161e: 9869 ld.w r3, (r14, 0x24) + 1620: 3b01 cmphsi r3, 2 + 1622: 0c07 bf 0x1630 // 1630 <__ledf2+0x34> + 1624: 1909 addi r1, r14, 36 + 1626: 1804 addi r0, r14, 16 + 1628: e00002c6 bsr 0x1bb4 // 1bb4 <__fpcmp_parts_d> + 162c: 140e addi r14, r14, 56 + 162e: 1490 pop r15 + 1630: 3001 movi r0, 1 + 1632: 140e addi r14, r14, 56 + 1634: 1490 pop r15 + ... + +00001638 <__floatsidf>: + 1638: 14d1 push r4, r15 + 163a: 1425 subi r14, r14, 20 + 163c: 3303 movi r3, 3 + 163e: b860 st.w r3, (r14, 0x0) + 1640: 3840 cmpnei r0, 0 + 1642: 487f lsri r3, r0, 31 + 1644: b861 st.w r3, (r14, 0x4) + 1646: 0808 bt 0x1656 // 1656 <__floatsidf+0x1e> + 1648: 3302 movi r3, 2 + 164a: b860 st.w r3, (r14, 0x0) + 164c: 6c3b mov r0, r14 + 164e: e0000183 bsr 0x1954 // 1954 <__pack_d> + 1652: 1405 addi r14, r14, 20 + 1654: 1491 pop r4, r15 + 1656: 38df btsti r0, 31 + 1658: 0812 bt 0x167c // 167c <__floatsidf+0x44> + 165a: 6d03 mov r4, r0 + 165c: 6c13 mov r0, r4 + 165e: e00000bd bsr 0x17d8 // 17d8 <__clzsi2> + 1662: 321d movi r2, 29 + 1664: 6080 addu r2, r0 + 1666: 2802 subi r0, 3 + 1668: 38df btsti r0, 31 + 166a: 0810 bt 0x168a // 168a <__floatsidf+0x52> + 166c: 7100 lsl r4, r0 + 166e: 3300 movi r3, 0 + 1670: b884 st.w r4, (r14, 0x10) + 1672: b863 st.w r3, (r14, 0xc) + 1674: 333c movi r3, 60 + 1676: 60ca subu r3, r2 + 1678: b862 st.w r3, (r14, 0x8) + 167a: 07e9 br 0x164c // 164c <__floatsidf+0x14> + 167c: 3380 movi r3, 128 + 167e: 4378 lsli r3, r3, 24 + 1680: 64c2 cmpne r0, r3 + 1682: 0c0d bf 0x169c // 169c <__floatsidf+0x64> + 1684: 3400 movi r4, 0 + 1686: 6102 subu r4, r0 + 1688: 07ea br 0x165c // 165c <__floatsidf+0x24> + 168a: 311f movi r1, 31 + 168c: 4c61 lsri r3, r4, 1 + 168e: 604a subu r1, r2 + 1690: 6c13 mov r0, r4 + 1692: 70c5 lsr r3, r1 + 1694: 7008 lsl r0, r2 + 1696: b864 st.w r3, (r14, 0x10) + 1698: b803 st.w r0, (r14, 0xc) + 169a: 07ed br 0x1674 // 1674 <__floatsidf+0x3c> + 169c: 3000 movi r0, 0 + 169e: 1022 lrw r1, 0xc1e00000 // 16a4 <__floatsidf+0x6c> + 16a0: 07d9 br 0x1652 // 1652 <__floatsidf+0x1a> + 16a2: 0000 bkpt + 16a4: c1e00000 .long 0xc1e00000 + +000016a8 <__fixdfsi>: + 16a8: 14d0 push r15 + 16aa: 1427 subi r14, r14, 28 + 16ac: b800 st.w r0, (r14, 0x0) + 16ae: b821 st.w r1, (r14, 0x4) + 16b0: 6c3b mov r0, r14 + 16b2: 1902 addi r1, r14, 8 + 16b4: e000021e bsr 0x1af0 // 1af0 <__unpack_d> + 16b8: 9862 ld.w r3, (r14, 0x8) + 16ba: 3b02 cmphsi r3, 3 + 16bc: 0c20 bf 0x16fc // 16fc <__fixdfsi+0x54> + 16be: 3b44 cmpnei r3, 4 + 16c0: 0c16 bf 0x16ec // 16ec <__fixdfsi+0x44> + 16c2: 9864 ld.w r3, (r14, 0x10) + 16c4: 3bdf btsti r3, 31 + 16c6: 081b bt 0x16fc // 16fc <__fixdfsi+0x54> + 16c8: 3b3e cmplti r3, 31 + 16ca: 0c11 bf 0x16ec // 16ec <__fixdfsi+0x44> + 16cc: 323c movi r2, 60 + 16ce: 5a6d subu r3, r2, r3 + 16d0: 3200 movi r2, 0 + 16d2: 2a1f subi r2, 32 + 16d4: 608c addu r2, r3 + 16d6: 3adf btsti r2, 31 + 16d8: 0815 bt 0x1702 // 1702 <__fixdfsi+0x5a> + 16da: 9806 ld.w r0, (r14, 0x18) + 16dc: 7009 lsr r0, r2 + 16de: 9863 ld.w r3, (r14, 0xc) + 16e0: 3b40 cmpnei r3, 0 + 16e2: 0c0b bf 0x16f8 // 16f8 <__fixdfsi+0x50> + 16e4: 3300 movi r3, 0 + 16e6: 5b01 subu r0, r3, r0 + 16e8: 1407 addi r14, r14, 28 + 16ea: 1490 pop r15 + 16ec: 9863 ld.w r3, (r14, 0xc) + 16ee: 3b40 cmpnei r3, 0 + 16f0: 3000 movi r0, 0 + 16f2: 6001 addc r0, r0 + 16f4: 1068 lrw r3, 0x7fffffff // 1714 <__fixdfsi+0x6c> + 16f6: 600c addu r0, r3 + 16f8: 1407 addi r14, r14, 28 + 16fa: 1490 pop r15 + 16fc: 3000 movi r0, 0 + 16fe: 1407 addi r14, r14, 28 + 1700: 1490 pop r15 + 1702: 9846 ld.w r2, (r14, 0x18) + 1704: 311f movi r1, 31 + 1706: 4241 lsli r2, r2, 1 + 1708: 604e subu r1, r3 + 170a: 9805 ld.w r0, (r14, 0x14) + 170c: 7084 lsl r2, r1 + 170e: 700d lsr r0, r3 + 1710: 6c08 or r0, r2 + 1712: 07e6 br 0x16de // 16de <__fixdfsi+0x36> + 1714: 7fffffff .long 0x7fffffff + +00001718 <__make_dp>: + 1718: 1421 subi r14, r14, 4 + 171a: 14d1 push r4, r15 + 171c: 1425 subi r14, r14, 20 + 171e: b867 st.w r3, (r14, 0x1c) + 1720: 9867 ld.w r3, (r14, 0x1c) + 1722: 9888 ld.w r4, (r14, 0x20) + 1724: b800 st.w r0, (r14, 0x0) + 1726: 6c3b mov r0, r14 + 1728: b821 st.w r1, (r14, 0x4) + 172a: b842 st.w r2, (r14, 0x8) + 172c: b863 st.w r3, (r14, 0xc) + 172e: b884 st.w r4, (r14, 0x10) + 1730: e0000112 bsr 0x1954 // 1954 <__pack_d> + 1734: 1405 addi r14, r14, 20 + 1736: d9ee2001 ld.w r15, (r14, 0x4) + 173a: 9880 ld.w r4, (r14, 0x0) + 173c: 1403 addi r14, r14, 12 + 173e: 783c jmp r15 + +00001740 <__floatunsidf>: + 1740: 14d2 push r4-r5, r15 + 1742: 1425 subi r14, r14, 20 + 1744: 3840 cmpnei r0, 0 + 1746: 3500 movi r5, 0 + 1748: 6d03 mov r4, r0 + 174a: b8a1 st.w r5, (r14, 0x4) + 174c: 0c15 bf 0x1776 // 1776 <__floatunsidf+0x36> + 174e: 3303 movi r3, 3 + 1750: b860 st.w r3, (r14, 0x0) + 1752: e0000043 bsr 0x17d8 // 17d8 <__clzsi2> + 1756: 321d movi r2, 29 + 1758: 6080 addu r2, r0 + 175a: 2802 subi r0, 3 + 175c: 38df btsti r0, 31 + 175e: 0813 bt 0x1784 // 1784 <__floatunsidf+0x44> + 1760: 7100 lsl r4, r0 + 1762: b884 st.w r4, (r14, 0x10) + 1764: b8a3 st.w r5, (r14, 0xc) + 1766: 333c movi r3, 60 + 1768: 60ca subu r3, r2 + 176a: 6c3b mov r0, r14 + 176c: b862 st.w r3, (r14, 0x8) + 176e: e00000f3 bsr 0x1954 // 1954 <__pack_d> + 1772: 1405 addi r14, r14, 20 + 1774: 1492 pop r4-r5, r15 + 1776: 3302 movi r3, 2 + 1778: 6c3b mov r0, r14 + 177a: b860 st.w r3, (r14, 0x0) + 177c: e00000ec bsr 0x1954 // 1954 <__pack_d> + 1780: 1405 addi r14, r14, 20 + 1782: 1492 pop r4-r5, r15 + 1784: 311f movi r1, 31 + 1786: 4c61 lsri r3, r4, 1 + 1788: 604a subu r1, r2 + 178a: 70c5 lsr r3, r1 + 178c: 7108 lsl r4, r2 + 178e: b864 st.w r3, (r14, 0x10) + 1790: b883 st.w r4, (r14, 0xc) + 1792: 07ea br 0x1766 // 1766 <__floatunsidf+0x26> + +00001794 <__muldi3>: + 1794: 14c4 push r4-r7 + 1796: 1421 subi r14, r14, 4 + 1798: 7501 zexth r4, r0 + 179a: 48b0 lsri r5, r0, 16 + 179c: 75c9 zexth r7, r2 + 179e: 6d83 mov r6, r0 + 17a0: b820 st.w r1, (r14, 0x0) + 17a2: 6c13 mov r0, r4 + 17a4: 4a30 lsri r1, r2, 16 + 17a6: 7c1c mult r0, r7 + 17a8: 7d04 mult r4, r1 + 17aa: 7dd4 mult r7, r5 + 17ac: 611c addu r4, r7 + 17ae: 7d44 mult r5, r1 + 17b0: 4830 lsri r1, r0, 16 + 17b2: 6104 addu r4, r1 + 17b4: 65d0 cmphs r4, r7 + 17b6: 0804 bt 0x17be // 17be <__muldi3+0x2a> + 17b8: 3180 movi r1, 128 + 17ba: 4129 lsli r1, r1, 9 + 17bc: 6144 addu r5, r1 + 17be: 4c30 lsri r1, r4, 16 + 17c0: 7cd8 mult r3, r6 + 17c2: 6144 addu r5, r1 + 17c4: 6c4f mov r1, r3 + 17c6: 9860 ld.w r3, (r14, 0x0) + 17c8: 7cc8 mult r3, r2 + 17ca: 4490 lsli r4, r4, 16 + 17cc: 604c addu r1, r3 + 17ce: 7401 zexth r0, r0 + 17d0: 6010 addu r0, r4 + 17d2: 6054 addu r1, r5 + 17d4: 1401 addi r14, r14, 4 + 17d6: 1484 pop r4-r7 + +000017d8 <__clzsi2>: + 17d8: 106d lrw r3, 0xffff // 180c <__clzsi2+0x34> + 17da: 640c cmphs r3, r0 + 17dc: 0c07 bf 0x17ea // 17ea <__clzsi2+0x12> + 17de: 33ff movi r3, 255 + 17e0: 640c cmphs r3, r0 + 17e2: 0c0f bf 0x1800 // 1800 <__clzsi2+0x28> + 17e4: 3320 movi r3, 32 + 17e6: 3200 movi r2, 0 + 17e8: 0406 br 0x17f4 // 17f4 <__clzsi2+0x1c> + 17ea: 106a lrw r3, 0xffffff // 1810 <__clzsi2+0x38> + 17ec: 640c cmphs r3, r0 + 17ee: 080c bt 0x1806 // 1806 <__clzsi2+0x2e> + 17f0: 3308 movi r3, 8 + 17f2: 3218 movi r2, 24 + 17f4: 7009 lsr r0, r2 + 17f6: 1048 lrw r2, 0xa7a8 // 1814 <__clzsi2+0x3c> + 17f8: 6008 addu r0, r2 + 17fa: 8040 ld.b r2, (r0, 0x0) + 17fc: 5b09 subu r0, r3, r2 + 17fe: 783c jmp r15 + 1800: 3318 movi r3, 24 + 1802: 3208 movi r2, 8 + 1804: 07f8 br 0x17f4 // 17f4 <__clzsi2+0x1c> + 1806: 3310 movi r3, 16 + 1808: 3210 movi r2, 16 + 180a: 07f5 br 0x17f4 // 17f4 <__clzsi2+0x1c> + 180c: 0000ffff .long 0x0000ffff + 1810: 00ffffff .long 0x00ffffff + 1814: 0000a7a8 .long 0x0000a7a8 + +00001818 <__pack_f>: + 1818: 14c2 push r4-r5 + 181a: 9040 ld.w r2, (r0, 0x0) + 181c: 3a01 cmphsi r2, 2 + 181e: 9063 ld.w r3, (r0, 0xc) + 1820: 9021 ld.w r1, (r0, 0x4) + 1822: 0c27 bf 0x1870 // 1870 <__pack_f+0x58> + 1824: 3a44 cmpnei r2, 4 + 1826: 0c22 bf 0x186a // 186a <__pack_f+0x52> + 1828: 3a42 cmpnei r2, 2 + 182a: 0c1d bf 0x1864 // 1864 <__pack_f+0x4c> + 182c: 3b40 cmpnei r3, 0 + 182e: 0c1b bf 0x1864 // 1864 <__pack_f+0x4c> + 1830: 3400 movi r4, 0 + 1832: 9042 ld.w r2, (r0, 0x8) + 1834: 2c7d subi r4, 126 + 1836: 6509 cmplt r2, r4 + 1838: 082a bt 0x188c // 188c <__pack_f+0x74> + 183a: 347f movi r4, 127 + 183c: 6491 cmplt r4, r2 + 183e: 0816 bt 0x186a // 186a <__pack_f+0x52> + 1840: 690c and r4, r3 + 1842: 3540 movi r5, 64 + 1844: 6552 cmpne r4, r5 + 1846: 0c1a bf 0x187a // 187a <__pack_f+0x62> + 1848: 233e addi r3, 63 + 184a: 3bdf btsti r3, 31 + 184c: 081d bt 0x1886 // 1886 <__pack_f+0x6e> + 184e: 227e addi r2, 127 + 1850: 4302 lsli r0, r3, 2 + 1852: 4809 lsri r0, r0, 9 + 1854: 74c8 zextb r3, r2 + 1856: 4009 lsli r0, r0, 9 + 1858: 4377 lsli r3, r3, 23 + 185a: 4809 lsri r0, r0, 9 + 185c: 413f lsli r1, r1, 31 + 185e: 6c0c or r0, r3 + 1860: 6c04 or r0, r1 + 1862: 1482 pop r4-r5 + 1864: 3300 movi r3, 0 + 1866: 3000 movi r0, 0 + 1868: 07f7 br 0x1856 // 1856 <__pack_f+0x3e> + 186a: 33ff movi r3, 255 + 186c: 3000 movi r0, 0 + 186e: 07f4 br 0x1856 // 1856 <__pack_f+0x3e> + 1870: 4303 lsli r0, r3, 3 + 1872: 480a lsri r0, r0, 10 + 1874: 38b6 bseti r0, 22 + 1876: 33ff movi r3, 255 + 1878: 07ef br 0x1856 // 1856 <__pack_f+0x3e> + 187a: 3080 movi r0, 128 + 187c: 680c and r0, r3 + 187e: 3840 cmpnei r0, 0 + 1880: 0fe5 bf 0x184a // 184a <__pack_f+0x32> + 1882: 60d0 addu r3, r4 + 1884: 07e3 br 0x184a // 184a <__pack_f+0x32> + 1886: 4b61 lsri r3, r3, 1 + 1888: 227f addi r2, 128 + 188a: 07e3 br 0x1850 // 1850 <__pack_f+0x38> + 188c: 610a subu r4, r2 + 188e: 3c39 cmplti r4, 26 + 1890: 0fea bf 0x1864 // 1864 <__pack_f+0x4c> + 1892: 3201 movi r2, 1 + 1894: 7090 lsl r2, r4 + 1896: 2a00 subi r2, 1 + 1898: 6c0f mov r0, r3 + 189a: 68c8 and r3, r2 + 189c: 3b40 cmpnei r3, 0 + 189e: 3300 movi r3, 0 + 18a0: 7011 lsr r0, r4 + 18a2: 60cd addc r3, r3 + 18a4: 6cc0 or r3, r0 + 18a6: 307f movi r0, 127 + 18a8: 680c and r0, r3 + 18aa: 3240 movi r2, 64 + 18ac: 6482 cmpne r0, r2 + 18ae: 080d bt 0x18c8 // 18c8 <__pack_f+0xb0> + 18b0: 3280 movi r2, 128 + 18b2: 688c and r2, r3 + 18b4: 3a40 cmpnei r2, 0 + 18b6: 0c02 bf 0x18ba // 18ba <__pack_f+0xa2> + 18b8: 60c0 addu r3, r0 + 18ba: 1045 lrw r2, 0x3fffffff // 18cc <__pack_f+0xb4> + 18bc: 64c8 cmphs r2, r3 + 18be: 4302 lsli r0, r3, 2 + 18c0: 64c3 mvcv r3 + 18c2: 4809 lsri r0, r0, 9 + 18c4: 74cc zextb r3, r3 + 18c6: 07c8 br 0x1856 // 1856 <__pack_f+0x3e> + 18c8: 233e addi r3, 63 + 18ca: 07f8 br 0x18ba // 18ba <__pack_f+0xa2> + 18cc: 3fffffff .long 0x3fffffff + +000018d0 <__unpack_f>: + 18d0: 14c1 push r4 + 18d2: 8861 ld.h r3, (r0, 0x2) + 18d4: 4371 lsli r3, r3, 17 + 18d6: 9040 ld.w r2, (r0, 0x0) + 18d8: 4b78 lsri r3, r3, 24 + 18da: 8003 ld.b r0, (r0, 0x3) + 18dc: 4249 lsli r2, r2, 9 + 18de: 4807 lsri r0, r0, 7 + 18e0: 3b40 cmpnei r3, 0 + 18e2: 4a49 lsri r2, r2, 9 + 18e4: b101 st.w r0, (r1, 0x4) + 18e6: 0811 bt 0x1908 // 1908 <__unpack_f+0x38> + 18e8: 3a40 cmpnei r2, 0 + 18ea: 0c1a bf 0x191e // 191e <__unpack_f+0x4e> + 18ec: 3303 movi r3, 3 + 18ee: b160 st.w r3, (r1, 0x0) + 18f0: 3300 movi r3, 0 + 18f2: 4247 lsli r2, r2, 7 + 18f4: 2b7e subi r3, 127 + 18f6: 1096 lrw r4, 0x3fffffff // 194c <__unpack_f+0x7c> + 18f8: 4241 lsli r2, r2, 1 + 18fa: 6490 cmphs r4, r2 + 18fc: 6c0f mov r0, r3 + 18fe: 2b00 subi r3, 1 + 1900: 0bfc bt 0x18f8 // 18f8 <__unpack_f+0x28> + 1902: b102 st.w r0, (r1, 0x8) + 1904: b143 st.w r2, (r1, 0xc) + 1906: 1481 pop r4 + 1908: 30ff movi r0, 255 + 190a: 640e cmpne r3, r0 + 190c: 0c0c bf 0x1924 // 1924 <__unpack_f+0x54> + 190e: 2b7e subi r3, 127 + 1910: 4247 lsli r2, r2, 7 + 1912: b162 st.w r3, (r1, 0x8) + 1914: 3abe bseti r2, 30 + 1916: 3303 movi r3, 3 + 1918: b160 st.w r3, (r1, 0x0) + 191a: b143 st.w r2, (r1, 0xc) + 191c: 1481 pop r4 + 191e: 3302 movi r3, 2 + 1920: b160 st.w r3, (r1, 0x0) + 1922: 1481 pop r4 + 1924: 3a40 cmpnei r2, 0 + 1926: 0c0d bf 0x1940 // 1940 <__unpack_f+0x70> + 1928: 3380 movi r3, 128 + 192a: 436f lsli r3, r3, 15 + 192c: 68c8 and r3, r2 + 192e: 3b40 cmpnei r3, 0 + 1930: 0c0b bf 0x1946 // 1946 <__unpack_f+0x76> + 1932: 3301 movi r3, 1 + 1934: b160 st.w r3, (r1, 0x0) + 1936: 1067 lrw r3, 0x2000007f // 1950 <__unpack_f+0x80> + 1938: 4247 lsli r2, r2, 7 + 193a: 688d andn r2, r3 + 193c: b143 st.w r2, (r1, 0xc) + 193e: 1481 pop r4 + 1940: 3304 movi r3, 4 + 1942: b160 st.w r3, (r1, 0x0) + 1944: 1481 pop r4 + 1946: b160 st.w r3, (r1, 0x0) + 1948: 07f7 br 0x1936 // 1936 <__unpack_f+0x66> + 194a: 0000 bkpt + 194c: 3fffffff .long 0x3fffffff + 1950: 2000007f .long 0x2000007f + +00001954 <__pack_d>: + 1954: 14c4 push r4-r7 + 1956: 1422 subi r14, r14, 8 + 1958: 9060 ld.w r3, (r0, 0x0) + 195a: 3b01 cmphsi r3, 2 + 195c: 90c3 ld.w r6, (r0, 0xc) + 195e: 90e4 ld.w r7, (r0, 0x10) + 1960: 9021 ld.w r1, (r0, 0x4) + 1962: 0c46 bf 0x19ee // 19ee <__pack_d+0x9a> + 1964: 3b44 cmpnei r3, 4 + 1966: 0c40 bf 0x19e6 // 19e6 <__pack_d+0x92> + 1968: 3b42 cmpnei r3, 2 + 196a: 0c27 bf 0x19b8 // 19b8 <__pack_d+0x64> + 196c: 6cdb mov r3, r6 + 196e: 6cdc or r3, r7 + 1970: 3b40 cmpnei r3, 0 + 1972: 0c23 bf 0x19b8 // 19b8 <__pack_d+0x64> + 1974: 9062 ld.w r3, (r0, 0x8) + 1976: 125a lrw r2, 0xfffffc02 // 1adc <__pack_d+0x188> + 1978: 648d cmplt r3, r2 + 197a: 0855 bt 0x1a24 // 1a24 <__pack_d+0xd0> + 197c: 1259 lrw r2, 0x3ff // 1ae0 <__pack_d+0x18c> + 197e: 64c9 cmplt r2, r3 + 1980: 0833 bt 0x19e6 // 19e6 <__pack_d+0x92> + 1982: 34ff movi r4, 255 + 1984: 3500 movi r5, 0 + 1986: 6918 and r4, r6 + 1988: 695c and r5, r7 + 198a: 3280 movi r2, 128 + 198c: 6492 cmpne r4, r2 + 198e: 0c3f bf 0x1a0c // 1a0c <__pack_d+0xb8> + 1990: 347f movi r4, 127 + 1992: 3500 movi r5, 0 + 1994: 6599 cmplt r6, r6 + 1996: 6191 addc r6, r4 + 1998: 61d5 addc r7, r5 + 199a: 1253 lrw r2, 0x1fffffff // 1ae4 <__pack_d+0x190> + 199c: 65c8 cmphs r2, r7 + 199e: 0c1a bf 0x19d2 // 19d2 <__pack_d+0x7e> + 19a0: 1290 lrw r4, 0x3ff // 1ae0 <__pack_d+0x18c> + 19a2: 610c addu r4, r3 + 19a4: 4718 lsli r0, r7, 24 + 19a6: 4f68 lsri r3, r7, 8 + 19a8: 4e48 lsri r2, r6, 8 + 19aa: 6c80 or r2, r0 + 19ac: 430c lsli r0, r3, 12 + 19ae: 486c lsri r3, r0, 12 + 19b0: 120e lrw r0, 0x7ff // 1ae8 <__pack_d+0x194> + 19b2: 6d4b mov r5, r2 + 19b4: 6900 and r4, r0 + 19b6: 0404 br 0x19be // 19be <__pack_d+0x6a> + 19b8: 3400 movi r4, 0 + 19ba: 3200 movi r2, 0 + 19bc: 3300 movi r3, 0 + 19be: 430c lsli r0, r3, 12 + 19c0: 480c lsri r0, r0, 12 + 19c2: 4474 lsli r3, r4, 20 + 19c4: 419f lsli r4, r1, 31 + 19c6: 6c43 mov r1, r0 + 19c8: 6c4c or r1, r3 + 19ca: 6c50 or r1, r4 + 19cc: 6c0b mov r0, r2 + 19ce: 1402 addi r14, r14, 8 + 19d0: 1484 pop r4-r7 + 19d2: 479f lsli r4, r7, 31 + 19d4: 4e01 lsri r0, r6, 1 + 19d6: 6d00 or r4, r0 + 19d8: 6d93 mov r6, r4 + 19da: 3480 movi r4, 128 + 19dc: 4f41 lsri r2, r7, 1 + 19de: 4483 lsli r4, r4, 3 + 19e0: 6dcb mov r7, r2 + 19e2: 610c addu r4, r3 + 19e4: 07e0 br 0x19a4 // 19a4 <__pack_d+0x50> + 19e6: 1281 lrw r4, 0x7ff // 1ae8 <__pack_d+0x194> + 19e8: 3200 movi r2, 0 + 19ea: 3300 movi r3, 0 + 19ec: 07e9 br 0x19be // 19be <__pack_d+0x6a> + 19ee: 4e08 lsri r0, r6, 8 + 19f0: 4798 lsli r4, r7, 24 + 19f2: 6d00 or r4, r0 + 19f4: 3580 movi r5, 128 + 19f6: 4705 lsli r0, r7, 5 + 19f8: 6c93 mov r2, r4 + 19fa: 486d lsri r3, r0, 13 + 19fc: 3400 movi r4, 0 + 19fe: 45ac lsli r5, r5, 12 + 1a00: 6c90 or r2, r4 + 1a02: 6cd4 or r3, r5 + 1a04: 430c lsli r0, r3, 12 + 1a06: 486c lsri r3, r0, 12 + 1a08: 1198 lrw r4, 0x7ff // 1ae8 <__pack_d+0x194> + 1a0a: 07da br 0x19be // 19be <__pack_d+0x6a> + 1a0c: 3d40 cmpnei r5, 0 + 1a0e: 0bc1 bt 0x1990 // 1990 <__pack_d+0x3c> + 1a10: 4241 lsli r2, r2, 1 + 1a12: 6898 and r2, r6 + 1a14: 3a40 cmpnei r2, 0 + 1a16: 0fc2 bf 0x199a // 199a <__pack_d+0x46> + 1a18: 3480 movi r4, 128 + 1a1a: 3500 movi r5, 0 + 1a1c: 6599 cmplt r6, r6 + 1a1e: 6191 addc r6, r4 + 1a20: 61d5 addc r7, r5 + 1a22: 07bc br 0x199a // 199a <__pack_d+0x46> + 1a24: 5a6d subu r3, r2, r3 + 1a26: 3238 movi r2, 56 + 1a28: 64c9 cmplt r2, r3 + 1a2a: 0bc7 bt 0x19b8 // 19b8 <__pack_d+0x64> + 1a2c: 3200 movi r2, 0 + 1a2e: 2a1f subi r2, 32 + 1a30: 608c addu r2, r3 + 1a32: 3adf btsti r2, 31 + 1a34: 0848 bt 0x1ac4 // 1ac4 <__pack_d+0x170> + 1a36: 6c1f mov r0, r7 + 1a38: 7009 lsr r0, r2 + 1a3a: b800 st.w r0, (r14, 0x0) + 1a3c: 3000 movi r0, 0 + 1a3e: b801 st.w r0, (r14, 0x4) + 1a40: 3adf btsti r2, 31 + 1a42: 083c bt 0x1aba // 1aba <__pack_d+0x166> + 1a44: 3301 movi r3, 1 + 1a46: 70c8 lsl r3, r2 + 1a48: 6d4f mov r5, r3 + 1a4a: 3300 movi r3, 0 + 1a4c: 6d0f mov r4, r3 + 1a4e: 3200 movi r2, 0 + 1a50: 3300 movi r3, 0 + 1a52: 2a00 subi r2, 1 + 1a54: 2b00 subi r3, 1 + 1a56: 6511 cmplt r4, r4 + 1a58: 6109 addc r4, r2 + 1a5a: 614d addc r5, r3 + 1a5c: 6990 and r6, r4 + 1a5e: 69d4 and r7, r5 + 1a60: 6d9c or r6, r7 + 1a62: 3e40 cmpnei r6, 0 + 1a64: 3000 movi r0, 0 + 1a66: 6001 addc r0, r0 + 1a68: 6c83 mov r2, r0 + 1a6a: 3300 movi r3, 0 + 1a6c: 9880 ld.w r4, (r14, 0x0) + 1a6e: 98a1 ld.w r5, (r14, 0x4) + 1a70: 6d08 or r4, r2 + 1a72: 6d4c or r5, r3 + 1a74: 32ff movi r2, 255 + 1a76: 3300 movi r3, 0 + 1a78: 6890 and r2, r4 + 1a7a: 68d4 and r3, r5 + 1a7c: 3080 movi r0, 128 + 1a7e: 640a cmpne r2, r0 + 1a80: 081b bt 0x1ab6 // 1ab6 <__pack_d+0x162> + 1a82: 3b40 cmpnei r3, 0 + 1a84: 0819 bt 0x1ab6 // 1ab6 <__pack_d+0x162> + 1a86: 3380 movi r3, 128 + 1a88: 4361 lsli r3, r3, 1 + 1a8a: 68d0 and r3, r4 + 1a8c: 3b40 cmpnei r3, 0 + 1a8e: 0c06 bf 0x1a9a // 1a9a <__pack_d+0x146> + 1a90: 3280 movi r2, 128 + 1a92: 3300 movi r3, 0 + 1a94: 6511 cmplt r4, r4 + 1a96: 6109 addc r4, r2 + 1a98: 614d addc r5, r3 + 1a9a: 4518 lsli r0, r5, 24 + 1a9c: 4c48 lsri r2, r4, 8 + 1a9e: 4d68 lsri r3, r5, 8 + 1aa0: 1093 lrw r4, 0xfffffff // 1aec <__pack_d+0x198> + 1aa2: 6c80 or r2, r0 + 1aa4: 6550 cmphs r4, r5 + 1aa6: 430c lsli r0, r3, 12 + 1aa8: 486c lsri r3, r0, 12 + 1aaa: 3001 movi r0, 1 + 1aac: 0c02 bf 0x1ab0 // 1ab0 <__pack_d+0x15c> + 1aae: 3000 movi r0, 0 + 1ab0: 108e lrw r4, 0x7ff // 1ae8 <__pack_d+0x194> + 1ab2: 6900 and r4, r0 + 1ab4: 0785 br 0x19be // 19be <__pack_d+0x6a> + 1ab6: 327f movi r2, 127 + 1ab8: 07ed br 0x1a92 // 1a92 <__pack_d+0x13e> + 1aba: 3201 movi r2, 1 + 1abc: 708c lsl r2, r3 + 1abe: 3500 movi r5, 0 + 1ac0: 6d0b mov r4, r2 + 1ac2: 07c6 br 0x1a4e // 1a4e <__pack_d+0xfa> + 1ac4: 341f movi r4, 31 + 1ac6: 610e subu r4, r3 + 1ac8: 4701 lsli r0, r7, 1 + 1aca: 7010 lsl r0, r4 + 1acc: 6d1b mov r4, r6 + 1ace: 710d lsr r4, r3 + 1ad0: 6d00 or r4, r0 + 1ad2: 6c1f mov r0, r7 + 1ad4: 700d lsr r0, r3 + 1ad6: b880 st.w r4, (r14, 0x0) + 1ad8: b801 st.w r0, (r14, 0x4) + 1ada: 07b3 br 0x1a40 // 1a40 <__pack_d+0xec> + 1adc: fffffc02 .long 0xfffffc02 + 1ae0: 000003ff .long 0x000003ff + 1ae4: 1fffffff .long 0x1fffffff + 1ae8: 000007ff .long 0x000007ff + 1aec: 0fffffff .long 0x0fffffff + +00001af0 <__unpack_d>: + 1af0: 1423 subi r14, r14, 12 + 1af2: b880 st.w r4, (r14, 0x0) + 1af4: b8c1 st.w r6, (r14, 0x4) + 1af6: b8e2 st.w r7, (r14, 0x8) + 1af8: 8843 ld.h r2, (r0, 0x6) + 1afa: 4251 lsli r2, r2, 17 + 1afc: 9061 ld.w r3, (r0, 0x4) + 1afe: 9080 ld.w r4, (r0, 0x0) + 1b00: 4a55 lsri r2, r2, 21 + 1b02: 8007 ld.b r0, (r0, 0x7) + 1b04: 436c lsli r3, r3, 12 + 1b06: 4807 lsri r0, r0, 7 + 1b08: 3a40 cmpnei r2, 0 + 1b0a: 4b6c lsri r3, r3, 12 + 1b0c: b101 st.w r0, (r1, 0x4) + 1b0e: 0819 bt 0x1b40 // 1b40 <__unpack_d+0x50> + 1b10: 6c93 mov r2, r4 + 1b12: 6c8c or r2, r3 + 1b14: 3a40 cmpnei r2, 0 + 1b16: 0c2d bf 0x1b70 // 1b70 <__unpack_d+0x80> + 1b18: 4c58 lsri r2, r4, 24 + 1b1a: 4368 lsli r3, r3, 8 + 1b1c: 6cc8 or r3, r2 + 1b1e: 3203 movi r2, 3 + 1b20: 4408 lsli r0, r4, 8 + 1b22: b140 st.w r2, (r1, 0x0) + 1b24: 1181 lrw r4, 0xfffffc01 // 1ba8 <__unpack_d+0xb8> + 1b26: 11c2 lrw r6, 0xfffffff // 1bac <__unpack_d+0xbc> + 1b28: 485f lsri r2, r0, 31 + 1b2a: 4361 lsli r3, r3, 1 + 1b2c: 6cc8 or r3, r2 + 1b2e: 64d8 cmphs r6, r3 + 1b30: 6c93 mov r2, r4 + 1b32: 4001 lsli r0, r0, 1 + 1b34: 2c00 subi r4, 1 + 1b36: 0bf9 bt 0x1b28 // 1b28 <__unpack_d+0x38> + 1b38: b142 st.w r2, (r1, 0x8) + 1b3a: b103 st.w r0, (r1, 0xc) + 1b3c: b164 st.w r3, (r1, 0x10) + 1b3e: 0414 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1b40: 101c lrw r0, 0x7ff // 1bb0 <__unpack_d+0xc0> + 1b42: 640a cmpne r2, r0 + 1b44: 0c19 bf 0x1b76 // 1b76 <__unpack_d+0x86> + 1b46: 1019 lrw r0, 0xfffffc01 // 1ba8 <__unpack_d+0xb8> + 1b48: 6080 addu r2, r0 + 1b4a: b142 st.w r2, (r1, 0x8) + 1b4c: 3203 movi r2, 3 + 1b4e: 43e8 lsli r7, r3, 8 + 1b50: b140 st.w r2, (r1, 0x0) + 1b52: 3380 movi r3, 128 + 1b54: 4c58 lsri r2, r4, 24 + 1b56: 6dc8 or r7, r2 + 1b58: 44c8 lsli r6, r4, 8 + 1b5a: 3200 movi r2, 0 + 1b5c: 4375 lsli r3, r3, 21 + 1b5e: 6d88 or r6, r2 + 1b60: 6dcc or r7, r3 + 1b62: b1c3 st.w r6, (r1, 0xc) + 1b64: b1e4 st.w r7, (r1, 0x10) + 1b66: 98e2 ld.w r7, (r14, 0x8) + 1b68: 98c1 ld.w r6, (r14, 0x4) + 1b6a: 9880 ld.w r4, (r14, 0x0) + 1b6c: 1403 addi r14, r14, 12 + 1b6e: 783c jmp r15 + 1b70: 3302 movi r3, 2 + 1b72: b160 st.w r3, (r1, 0x0) + 1b74: 07f9 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1b76: 6c93 mov r2, r4 + 1b78: 6c8c or r2, r3 + 1b7a: 3a40 cmpnei r2, 0 + 1b7c: 0c10 bf 0x1b9c // 1b9c <__unpack_d+0xac> + 1b7e: 3280 movi r2, 128 + 1b80: 424c lsli r2, r2, 12 + 1b82: 688c and r2, r3 + 1b84: 3a40 cmpnei r2, 0 + 1b86: 0c0e bf 0x1ba2 // 1ba2 <__unpack_d+0xb2> + 1b88: 3201 movi r2, 1 + 1b8a: b140 st.w r2, (r1, 0x0) + 1b8c: 4c58 lsri r2, r4, 24 + 1b8e: 4368 lsli r3, r3, 8 + 1b90: 6cc8 or r3, r2 + 1b92: 4408 lsli r0, r4, 8 + 1b94: 3b9b bclri r3, 27 + 1b96: b103 st.w r0, (r1, 0xc) + 1b98: b164 st.w r3, (r1, 0x10) + 1b9a: 07e6 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1b9c: 3304 movi r3, 4 + 1b9e: b160 st.w r3, (r1, 0x0) + 1ba0: 07e3 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1ba2: b140 st.w r2, (r1, 0x0) + 1ba4: 07f4 br 0x1b8c // 1b8c <__unpack_d+0x9c> + 1ba6: 0000 bkpt + 1ba8: fffffc01 .long 0xfffffc01 + 1bac: 0fffffff .long 0x0fffffff + 1bb0: 000007ff .long 0x000007ff + +00001bb4 <__fpcmp_parts_d>: + 1bb4: 14c1 push r4 + 1bb6: 9060 ld.w r3, (r0, 0x0) + 1bb8: 3b01 cmphsi r3, 2 + 1bba: 0c12 bf 0x1bde // 1bde <__fpcmp_parts_d+0x2a> + 1bbc: 9140 ld.w r2, (r1, 0x0) + 1bbe: 3a01 cmphsi r2, 2 + 1bc0: 0c0f bf 0x1bde // 1bde <__fpcmp_parts_d+0x2a> + 1bc2: 3b44 cmpnei r3, 4 + 1bc4: 0c17 bf 0x1bf2 // 1bf2 <__fpcmp_parts_d+0x3e> + 1bc6: 3a44 cmpnei r2, 4 + 1bc8: 0c0f bf 0x1be6 // 1be6 <__fpcmp_parts_d+0x32> + 1bca: 3b42 cmpnei r3, 2 + 1bcc: 0c0b bf 0x1be2 // 1be2 <__fpcmp_parts_d+0x2e> + 1bce: 3a42 cmpnei r2, 2 + 1bd0: 0c13 bf 0x1bf6 // 1bf6 <__fpcmp_parts_d+0x42> + 1bd2: 9061 ld.w r3, (r0, 0x4) + 1bd4: 9141 ld.w r2, (r1, 0x4) + 1bd6: 648e cmpne r3, r2 + 1bd8: 0c14 bf 0x1c00 // 1c00 <__fpcmp_parts_d+0x4c> + 1bda: 3b40 cmpnei r3, 0 + 1bdc: 0808 bt 0x1bec // 1bec <__fpcmp_parts_d+0x38> + 1bde: 3001 movi r0, 1 + 1be0: 1481 pop r4 + 1be2: 3a42 cmpnei r2, 2 + 1be4: 0c28 bf 0x1c34 // 1c34 <__fpcmp_parts_d+0x80> + 1be6: 9161 ld.w r3, (r1, 0x4) + 1be8: 3b40 cmpnei r3, 0 + 1bea: 0bfa bt 0x1bde // 1bde <__fpcmp_parts_d+0x2a> + 1bec: 3000 movi r0, 0 + 1bee: 2800 subi r0, 1 + 1bf0: 1481 pop r4 + 1bf2: 3a44 cmpnei r2, 4 + 1bf4: 0c22 bf 0x1c38 // 1c38 <__fpcmp_parts_d+0x84> + 1bf6: 9061 ld.w r3, (r0, 0x4) + 1bf8: 3b40 cmpnei r3, 0 + 1bfa: 0bf9 bt 0x1bec // 1bec <__fpcmp_parts_d+0x38> + 1bfc: 3001 movi r0, 1 + 1bfe: 07f1 br 0x1be0 // 1be0 <__fpcmp_parts_d+0x2c> + 1c00: 9082 ld.w r4, (r0, 0x8) + 1c02: 9142 ld.w r2, (r1, 0x8) + 1c04: 6509 cmplt r2, r4 + 1c06: 0bea bt 0x1bda // 1bda <__fpcmp_parts_d+0x26> + 1c08: 6491 cmplt r4, r2 + 1c0a: 080d bt 0x1c24 // 1c24 <__fpcmp_parts_d+0x70> + 1c0c: 9044 ld.w r2, (r0, 0x10) + 1c0e: 9083 ld.w r4, (r0, 0xc) + 1c10: 9103 ld.w r0, (r1, 0xc) + 1c12: 9124 ld.w r1, (r1, 0x10) + 1c14: 6484 cmphs r1, r2 + 1c16: 0fe2 bf 0x1bda // 1bda <__fpcmp_parts_d+0x26> + 1c18: 644a cmpne r2, r1 + 1c1a: 0803 bt 0x1c20 // 1c20 <__fpcmp_parts_d+0x6c> + 1c1c: 6500 cmphs r0, r4 + 1c1e: 0fde bf 0x1bda // 1bda <__fpcmp_parts_d+0x26> + 1c20: 6448 cmphs r2, r1 + 1c22: 0805 bt 0x1c2c // 1c2c <__fpcmp_parts_d+0x78> + 1c24: 3b40 cmpnei r3, 0 + 1c26: 0fe3 bf 0x1bec // 1bec <__fpcmp_parts_d+0x38> + 1c28: 3001 movi r0, 1 + 1c2a: 07db br 0x1be0 // 1be0 <__fpcmp_parts_d+0x2c> + 1c2c: 6486 cmpne r1, r2 + 1c2e: 0803 bt 0x1c34 // 1c34 <__fpcmp_parts_d+0x80> + 1c30: 6410 cmphs r4, r0 + 1c32: 0ff9 bf 0x1c24 // 1c24 <__fpcmp_parts_d+0x70> + 1c34: 3000 movi r0, 0 + 1c36: 1481 pop r4 + 1c38: 9161 ld.w r3, (r1, 0x4) + 1c3a: 9041 ld.w r2, (r0, 0x4) + 1c3c: 5b09 subu r0, r3, r2 + 1c3e: 1481 pop r4 + +00001c40 <__memset_fast>: + 1c40: 14c3 push r4-r6 + 1c42: 7444 zextb r1, r1 + 1c44: 3a40 cmpnei r2, 0 + 1c46: 0c1f bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1c48: 6d43 mov r5, r0 + 1c4a: 6d03 mov r4, r0 + 1c4c: 3603 movi r6, 3 + 1c4e: 6918 and r4, r6 + 1c50: 3c40 cmpnei r4, 0 + 1c52: 0c1a bf 0x1c86 // 1c86 <__memset_fast+0x46> + 1c54: a520 st.b r1, (r5, 0x0) + 1c56: 2a00 subi r2, 1 + 1c58: 3a40 cmpnei r2, 0 + 1c5a: 0c15 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1c5c: 2500 addi r5, 1 + 1c5e: 6d17 mov r4, r5 + 1c60: 3603 movi r6, 3 + 1c62: 6918 and r4, r6 + 1c64: 3c40 cmpnei r4, 0 + 1c66: 0c10 bf 0x1c86 // 1c86 <__memset_fast+0x46> + 1c68: a520 st.b r1, (r5, 0x0) + 1c6a: 2a00 subi r2, 1 + 1c6c: 3a40 cmpnei r2, 0 + 1c6e: 0c0b bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1c70: 2500 addi r5, 1 + 1c72: 6d17 mov r4, r5 + 1c74: 3603 movi r6, 3 + 1c76: 6918 and r4, r6 + 1c78: 3c40 cmpnei r4, 0 + 1c7a: 0c06 bf 0x1c86 // 1c86 <__memset_fast+0x46> + 1c7c: a520 st.b r1, (r5, 0x0) + 1c7e: 2a00 subi r2, 1 + 1c80: 2500 addi r5, 1 + 1c82: 0402 br 0x1c86 // 1c86 <__memset_fast+0x46> + 1c84: 1483 pop r4-r6 + 1c86: 4168 lsli r3, r1, 8 + 1c88: 6c4c or r1, r3 + 1c8a: 4170 lsli r3, r1, 16 + 1c8c: 6c4c or r1, r3 + 1c8e: 3a2f cmplti r2, 16 + 1c90: 0809 bt 0x1ca2 // 1ca2 <__memset_fast+0x62> + 1c92: b520 st.w r1, (r5, 0x0) + 1c94: b521 st.w r1, (r5, 0x4) + 1c96: b522 st.w r1, (r5, 0x8) + 1c98: b523 st.w r1, (r5, 0xc) + 1c9a: 2a0f subi r2, 16 + 1c9c: 250f addi r5, 16 + 1c9e: 3a2f cmplti r2, 16 + 1ca0: 0ff9 bf 0x1c92 // 1c92 <__memset_fast+0x52> + 1ca2: 3a23 cmplti r2, 4 + 1ca4: 0806 bt 0x1cb0 // 1cb0 <__memset_fast+0x70> + 1ca6: 2a03 subi r2, 4 + 1ca8: b520 st.w r1, (r5, 0x0) + 1caa: 2503 addi r5, 4 + 1cac: 3a23 cmplti r2, 4 + 1cae: 0ffc bf 0x1ca6 // 1ca6 <__memset_fast+0x66> + 1cb0: 3a40 cmpnei r2, 0 + 1cb2: 0fe9 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1cb4: 2a00 subi r2, 1 + 1cb6: a520 st.b r1, (r5, 0x0) + 1cb8: 3a40 cmpnei r2, 0 + 1cba: 0fe5 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1cbc: 2a00 subi r2, 1 + 1cbe: a521 st.b r1, (r5, 0x1) + 1cc0: 3a40 cmpnei r2, 0 + 1cc2: 0fe1 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1cc4: a522 st.b r1, (r5, 0x2) + 1cc6: 1483 pop r4-r6 + +00001cc8 <__memcpy_fast>: + 1cc8: 14c3 push r4-r6 + 1cca: 6d83 mov r6, r0 + 1ccc: 6d07 mov r4, r1 + 1cce: 6d18 or r4, r6 + 1cd0: 3303 movi r3, 3 + 1cd2: 690c and r4, r3 + 1cd4: 3c40 cmpnei r4, 0 + 1cd6: 0c0b bf 0x1cec // 1cec <__memcpy_fast+0x24> + 1cd8: 3a40 cmpnei r2, 0 + 1cda: 0c08 bf 0x1cea // 1cea <__memcpy_fast+0x22> + 1cdc: 8160 ld.b r3, (r1, 0x0) + 1cde: 2100 addi r1, 1 + 1ce0: 2a00 subi r2, 1 + 1ce2: a660 st.b r3, (r6, 0x0) + 1ce4: 2600 addi r6, 1 + 1ce6: 3a40 cmpnei r2, 0 + 1ce8: 0bfa bt 0x1cdc // 1cdc <__memcpy_fast+0x14> + 1cea: 1483 pop r4-r6 + 1cec: 3a2f cmplti r2, 16 + 1cee: 080e bt 0x1d0a // 1d0a <__memcpy_fast+0x42> + 1cf0: 91a0 ld.w r5, (r1, 0x0) + 1cf2: 9161 ld.w r3, (r1, 0x4) + 1cf4: 9182 ld.w r4, (r1, 0x8) + 1cf6: b6a0 st.w r5, (r6, 0x0) + 1cf8: 91a3 ld.w r5, (r1, 0xc) + 1cfa: b661 st.w r3, (r6, 0x4) + 1cfc: b682 st.w r4, (r6, 0x8) + 1cfe: b6a3 st.w r5, (r6, 0xc) + 1d00: 2a0f subi r2, 16 + 1d02: 210f addi r1, 16 + 1d04: 260f addi r6, 16 + 1d06: 3a2f cmplti r2, 16 + 1d08: 0ff4 bf 0x1cf0 // 1cf0 <__memcpy_fast+0x28> + 1d0a: 3a23 cmplti r2, 4 + 1d0c: 0808 bt 0x1d1c // 1d1c <__memcpy_fast+0x54> + 1d0e: 9160 ld.w r3, (r1, 0x0) + 1d10: 2a03 subi r2, 4 + 1d12: 2103 addi r1, 4 + 1d14: b660 st.w r3, (r6, 0x0) + 1d16: 2603 addi r6, 4 + 1d18: 3a23 cmplti r2, 4 + 1d1a: 0ffa bf 0x1d0e // 1d0e <__memcpy_fast+0x46> + 1d1c: 3a40 cmpnei r2, 0 + 1d1e: 0fe6 bf 0x1cea // 1cea <__memcpy_fast+0x22> + 1d20: 8160 ld.b r3, (r1, 0x0) + 1d22: 2100 addi r1, 1 + 1d24: 2a00 subi r2, 1 + 1d26: a660 st.b r3, (r6, 0x0) + 1d28: 2600 addi r6, 1 + 1d2a: 07f9 br 0x1d1c // 1d1c <__memcpy_fast+0x54> + +00001d2c <__GI_strncmp>: + 1d2c: 14c1 push r4 + 1d2e: 6cc3 mov r3, r0 + 1d30: 6080 addu r2, r0 + 1d32: 040c br 0x1d4a // 1d4a <__GI_strncmp+0x1e> + 1d34: 8380 ld.b r4, (r3, 0x0) + 1d36: 8100 ld.b r0, (r1, 0x0) + 1d38: 6012 subu r0, r4 + 1d3a: 6c02 nor r0, r0 + 1d3c: 2000 addi r0, 1 + 1d3e: 3840 cmpnei r0, 0 + 1d40: 0808 bt 0x1d50 // 1d50 <__GI_strncmp+0x24> + 1d42: 3c40 cmpnei r4, 0 + 1d44: 0c06 bf 0x1d50 // 1d50 <__GI_strncmp+0x24> + 1d46: 2300 addi r3, 1 + 1d48: 2100 addi r1, 1 + 1d4a: 648c cmphs r3, r2 + 1d4c: 0ff4 bf 0x1d34 // 1d34 <__GI_strncmp+0x8> + 1d4e: 3000 movi r0, 0 + 1d50: 1481 pop r4 + +Disassembly of section .text.__main: + +00001d54 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1d54: 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 ) { + 1d56: 1009 lrw r0, 0x20000000 // 1d78 <__main+0x24> + 1d58: 1029 lrw r1, 0xad00 // 1d7c <__main+0x28> + 1d5a: 6442 cmpne r0, r1 + 1d5c: 0c05 bf 0x1d66 // 1d66 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1d5e: 1049 lrw r2, 0x200000b0 // 1d80 <__main+0x2c> + 1d60: 6082 subu r2, r0 + 1d62: e3ffffb3 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1d66: 1048 lrw r2, 0x20000c00 // 1d84 <__main+0x30> + 1d68: 1008 lrw r0, 0x200000b0 // 1d88 <__main+0x34> + 1d6a: 640a cmpne r2, r0 + 1d6c: 0c05 bf 0x1d76 // 1d76 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1d6e: 6082 subu r2, r0 + 1d70: 3100 movi r1, 0 + 1d72: e3ffff67 bsr 0x1c40 // 1c40 <__memset_fast> + } + + +} + 1d76: 1490 pop r15 + 1d78: 20000000 .long 0x20000000 + 1d7c: 0000ad00 .long 0x0000ad00 + 1d80: 200000b0 .long 0x200000b0 + 1d84: 20000c00 .long 0x20000c00 + 1d88: 200000b0 .long 0x200000b0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001d8c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1d8c: 3848 cmpnei r0, 8 + 1d8e: 080a bt 0x1da2 // 1da2 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1d90: 107a lrw r3, 0x2000004c // 1df8 + 1d92: 32ff movi r2, 255 + 1d94: 9320 ld.w r1, (r3, 0x0) + 1d96: 9160 ld.w r3, (r1, 0x0) + 1d98: 424c lsli r2, r2, 12 + 1d9a: 68c9 andn r3, r2 + 1d9c: 3bae bseti r3, 14 + 1d9e: 3bb2 bseti r3, 18 + 1da0: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1da2: 1077 lrw r3, 0x2000005c // 1dfc + 1da4: 9360 ld.w r3, (r3, 0x0) + 1da6: 9341 ld.w r2, (r3, 0x4) + 1da8: 6c80 or r2, r0 + 1daa: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1dac: 9343 ld.w r2, (r3, 0xc) + 1dae: 6880 and r2, r0 + 1db0: 3a40 cmpnei r2, 0 + 1db2: 0ffd bf 0x1dac // 1dac + switch(ENDIS_X) + 1db4: 3842 cmpnei r0, 2 + 1db6: 0807 bt 0x1dc4 // 1dc4 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1db8: 3102 movi r1, 2 + 1dba: 9344 ld.w r2, (r3, 0x10) + 1dbc: 6884 and r2, r1 + 1dbe: 3a40 cmpnei r2, 0 + 1dc0: 0ffd bf 0x1dba // 1dba + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1dc2: 783c jmp r15 + switch(ENDIS_X) + 1dc4: 3802 cmphsi r0, 3 + 1dc6: 0809 bt 0x1dd8 // 1dd8 + 1dc8: 3841 cmpnei r0, 1 + 1dca: 0bfc bt 0x1dc2 // 1dc2 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1dcc: 3101 movi r1, 1 + 1dce: 9344 ld.w r2, (r3, 0x10) + 1dd0: 6884 and r2, r1 + 1dd2: 3a40 cmpnei r2, 0 + 1dd4: 0ffd bf 0x1dce // 1dce + 1dd6: 07f6 br 0x1dc2 // 1dc2 + switch(ENDIS_X) + 1dd8: 3848 cmpnei r0, 8 + 1dda: 0807 bt 0x1de8 // 1de8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1ddc: 3108 movi r1, 8 + 1dde: 9344 ld.w r2, (r3, 0x10) + 1de0: 6884 and r2, r1 + 1de2: 3a40 cmpnei r2, 0 + 1de4: 0ffd bf 0x1dde // 1dde + 1de6: 07ee br 0x1dc2 // 1dc2 + switch(ENDIS_X) + 1de8: 3850 cmpnei r0, 16 + 1dea: 0bec bt 0x1dc2 // 1dc2 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1dec: 3110 movi r1, 16 + 1dee: 9344 ld.w r2, (r3, 0x10) + 1df0: 6884 and r2, r1 + 1df2: 3a40 cmpnei r2, 0 + 1df4: 0ffd bf 0x1dee // 1dee + 1df6: 07e6 br 0x1dc2 // 1dc2 + 1df8: 2000004c .long 0x2000004c + 1dfc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001e00 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1e00: 106c lrw r3, 0x2000005c // 1e30 + 1e02: 104d lrw r2, 0xffff // 1e34 + 1e04: 9360 ld.w r3, (r3, 0x0) + 1e06: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1e08: 104c lrw r2, 0xffffff // 1e38 + 1e0a: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1e0c: 104c lrw r2, 0xd22d0000 // 1e3c + 1e0e: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1e10: 104c lrw r2, 0x70ff3bff // 1e40 + 1e12: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1e14: 320a movi r2, 10 + 1e16: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1e18: 102b lrw r1, 0x70c // 1e44 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1e1a: 237f addi r3, 128 + 1e1c: 3200 movi r2, 0 + 1e1e: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1e20: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1e22: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1e24: 1029 lrw r1, 0x3fe // 1e48 + 1e26: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1e28: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1e2a: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1e2c: b35f st.w r2, (r3, 0x7c) +} + 1e2e: 783c jmp r15 + 1e30: 2000005c .long 0x2000005c + 1e34: 0000ffff .long 0x0000ffff + 1e38: 00ffffff .long 0x00ffffff + 1e3c: d22d0000 .long 0xd22d0000 + 1e40: 70ff3bff .long 0x70ff3bff + 1e44: 0000070c .long 0x0000070c + 1e48: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001e4c : +{ + 1e4c: 14d0 push r15 + if (NewState != DISABLE) + 1e4e: 3840 cmpnei r0, 0 + 1e50: 0c05 bf 0x1e5a // 1e5a + 1e52: 6c07 mov r0, r1 + 1e54: e3ffff9c bsr 0x1d8c // 1d8c +} + 1e58: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1e5a: 1068 lrw r3, 0x2000005c // 1e78 + 1e5c: 9360 ld.w r3, (r3, 0x0) + 1e5e: 9342 ld.w r2, (r3, 0x8) + 1e60: 6c84 or r2, r1 + 1e62: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1e64: 9343 ld.w r2, (r3, 0xc) + 1e66: 6884 and r2, r1 + 1e68: 3a40 cmpnei r2, 0 + 1e6a: 0bfd bt 0x1e64 // 1e64 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1e6c: 237f addi r3, 128 + 1e6e: 9301 ld.w r0, (r3, 0x4) + 1e70: 6c40 or r1, r0 + 1e72: b321 st.w r1, (r3, 0x4) +} + 1e74: 07f2 br 0x1e58 // 1e58 + 1e76: 0000 bkpt + 1e78: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001e7c : +//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 ) +{ + 1e7c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1e7e: 3b48 cmpnei r3, 8 + 1e80: 0828 bt 0x1ed0 // 1ed0 + { + IFC->CEDR=0X01; //CLKEN + 1e82: 109d lrw r4, 0x20000060 // 1ef4 + 1e84: 3501 movi r5, 1 + 1e86: 9480 ld.w r4, (r4, 0x0) + 1e88: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1e8a: 3504 movi r5, 4 + 1e8c: 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)) + 1e8e: 5b83 subi r4, r3, 1 + 1e90: 3c01 cmphsi r4, 2 + 1e92: 0c2b bf 0x1ee8 // 1ee8 + { + 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)) + 1e94: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1e96: 3c04 cmphsi r4, 5 + 1e98: 0c03 bf 0x1e9e // 1e9e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1e9a: 3b4b cmpnei r3, 11 + 1e9c: 0807 bt 0x1eaa // 1eaa + { + IFC->CEDR=0X01; //CLKEN + 1e9e: 1076 lrw r3, 0x20000060 // 1ef4 + 1ea0: 3401 movi r4, 1 + 1ea2: 9360 ld.w r3, (r3, 0x0) + 1ea4: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1ea6: 3400 movi r4, 0 + 1ea8: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1eaa: 1094 lrw r4, 0xd22d0000 // 1ef8 + 1eac: 6c10 or r0, r4 + 1eae: 1074 lrw r3, 0x2000005c // 1efc + 1eb0: 6c40 or r1, r0 + 1eb2: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1eb4: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1eb6: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1eb8: 4001 lsli r0, r0, 1 + 1eba: 9324 ld.w r1, (r3, 0x10) + 1ebc: 6840 and r1, r0 + 1ebe: 3940 cmpnei r1, 0 + 1ec0: 0ffd bf 0x1eba // 1eba + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1ec2: 1030 lrw r1, 0xc33c0000 // 1f00 + 1ec4: 6c48 or r1, r2 + 1ec6: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1ec8: 9328 ld.w r1, (r3, 0x20) + 1eca: 644a cmpne r2, r1 + 1ecc: 0bfe bt 0x1ec8 // 1ec8 +} + 1ece: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1ed0: 3b40 cmpnei r3, 0 + 1ed2: 0c03 bf 0x1ed8 // 1ed8 + 1ed4: 3b49 cmpnei r3, 9 + 1ed6: 0807 bt 0x1ee4 // 1ee4 + IFC->CEDR=0X01; //CLKEN + 1ed8: 1087 lrw r4, 0x20000060 // 1ef4 + 1eda: 3501 movi r5, 1 + 1edc: 9480 ld.w r4, (r4, 0x0) + 1ede: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1ee0: 3502 movi r5, 2 + 1ee2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1ee4: 3b4a cmpnei r3, 10 + 1ee6: 0bd4 bt 0x1e8e // 1e8e + IFC->CEDR=0X01; //CLKEN + 1ee8: 1083 lrw r4, 0x20000060 // 1ef4 + 1eea: 3501 movi r5, 1 + 1eec: 9480 ld.w r4, (r4, 0x0) + 1eee: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1ef0: b4a5 st.w r5, (r4, 0x14) + 1ef2: 07d1 br 0x1e94 // 1e94 + 1ef4: 20000060 .long 0x20000060 + 1ef8: d22d0000 .long 0xd22d0000 + 1efc: 2000005c .long 0x2000005c + 1f00: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001f04 : +//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) +{ + 1f04: 14d1 push r4, r15 + 1f06: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1f08: 3110 movi r1, 16 + 1f0a: 3000 movi r0, 0 + 1f0c: e3ffffa0 bsr 0x1e4c // 1e4c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1f10: 1066 lrw r3, 0x2000005c // 1f28 + 1f12: 9360 ld.w r3, (r3, 0x0) + 1f14: 9319 ld.w r0, (r3, 0x64) + 1f16: 3884 bclri r0, 4 + 1f18: 3885 bclri r0, 5 + 1f1a: 6c10 or r0, r4 + 1f1c: b319 st.w r0, (r3, 0x64) + 1f1e: 3010 movi r0, 16 + 1f20: e3ffff36 bsr 0x1d8c // 1d8c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1f24: 1491 pop r4, r15 + 1f26: 0000 bkpt + 1f28: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001f2c : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1f2c: 106c lrw r3, 0x2000005c // 1f5c + if(NewState != DISABLE) + 1f2e: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1f30: 9360 ld.w r3, (r3, 0x0) + 1f32: 237f addi r3, 128 + if(NewState != DISABLE) + 1f34: 0c0a bf 0x1f48 // 1f48 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1f36: 104b lrw r2, 0x78870000 // 1f60 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1f38: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1f3a: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1f3c: 4125 lsli r1, r1, 5 + 1f3e: 934d ld.w r2, (r3, 0x34) + 1f40: 6884 and r2, r1 + 1f42: 3a40 cmpnei r2, 0 + 1f44: 0ffd bf 0x1f3e // 1f3e + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1f46: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1f48: 1047 lrw r2, 0x788755aa // 1f64 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1f4a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1f4c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1f4e: 4125 lsli r1, r1, 5 + 1f50: 934d ld.w r2, (r3, 0x34) + 1f52: 6884 and r2, r1 + 1f54: 3a40 cmpnei r2, 0 + 1f56: 0bfd bt 0x1f50 // 1f50 + 1f58: 07f7 br 0x1f46 // 1f46 + 1f5a: 0000 bkpt + 1f5c: 2000005c .long 0x2000005c + 1f60: 78870000 .long 0x78870000 + 1f64: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001f68 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1f68: 1064 lrw r3, 0x2000005c // 1f78 + 1f6a: 32b4 movi r2, 180 + 1f6c: 9360 ld.w r3, (r3, 0x0) + 1f6e: 237f addi r3, 128 + 1f70: 4257 lsli r2, r2, 23 + 1f72: b34e st.w r2, (r3, 0x38) +} + 1f74: 783c jmp r15 + 1f76: 0000 bkpt + 1f78: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001f7c : +//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; + 1f7c: 1044 lrw r2, 0x87780000 // 1f8c + 1f7e: 1065 lrw r3, 0x2000005c // 1f90 + 1f80: 6c48 or r1, r2 + 1f82: 9360 ld.w r3, (r3, 0x0) + 1f84: 6c04 or r0, r1 + 1f86: 237f addi r3, 128 + 1f88: b30d st.w r0, (r3, 0x34) +} + 1f8a: 783c jmp r15 + 1f8c: 87780000 .long 0x87780000 + 1f90: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001f94 : +//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) +{ + 1f94: 14c3 push r4-r6 + 1f96: 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; + 1f98: 10c5 lrw r6, 0xb44b0000 // 1fac + 1f9a: 6d18 or r4, r6 + 1f9c: 6cd0 or r3, r4 + 1f9e: 6c8c or r2, r3 + 1fa0: 6c48 or r1, r2 + 1fa2: 10a4 lrw r5, 0x2000005c // 1fb0 + 1fa4: 6c04 or r0, r1 + 1fa6: 95a0 ld.w r5, (r5, 0x0) + 1fa8: b513 st.w r0, (r5, 0x4c) +} + 1faa: 1483 pop r4-r6 + 1fac: b44b0000 .long 0xb44b0000 + 1fb0: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001fb4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1fb4: 1066 lrw r3, 0x2000005c // 1fcc + 1fb6: 3180 movi r1, 128 + 1fb8: 9360 ld.w r3, (r3, 0x0) + 1fba: 3280 movi r2, 128 + 1fbc: 604c addu r1, r3 + 1fbe: 4244 lsli r2, r2, 4 + 1fc0: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1fc2: 935d ld.w r2, (r3, 0x74) + 1fc4: 3aab bseti r2, 11 + 1fc6: b35d st.w r2, (r3, 0x74) +} + 1fc8: 783c jmp r15 + 1fca: 0000 bkpt + 1fcc: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001fd0 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1fd0: 1066 lrw r3, 0x2000005c // 1fe8 + 1fd2: 3180 movi r1, 128 + 1fd4: 9360 ld.w r3, (r3, 0x0) + 1fd6: 3280 movi r2, 128 + 1fd8: 604c addu r1, r3 + 1fda: 4241 lsli r2, r2, 1 + 1fdc: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1fde: 935d ld.w r2, (r3, 0x74) + 1fe0: 3aa8 bseti r2, 8 + 1fe2: b35d st.w r2, (r3, 0x74) +} + 1fe4: 783c jmp r15 + 1fe6: 0000 bkpt + 1fe8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001fec : +//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) + 1fec: 3a40 cmpnei r2, 0 + 1fee: 0c04 bf 0x1ff6 // 1ff6 + 1ff0: 3a41 cmpnei r2, 1 + 1ff2: 0c0e bf 0x200e // 200e + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1ff4: 783c jmp r15 + 1ff6: 106d lrw r3, 0x2000005c // 2028 + if(NewState != DISABLE) + 1ff8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1ffa: 9360 ld.w r3, (r3, 0x0) + 1ffc: 237f addi r3, 128 + 1ffe: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 2000: 0c04 bf 0x2008 // 2008 + SYSCON->EXIRT |=EXIPIN; + 2002: 6c48 or r1, r2 + 2004: b325 st.w r1, (r3, 0x14) + 2006: 07f7 br 0x1ff4 // 1ff4 + SYSCON->EXIRT &=~EXIPIN; + 2008: 6885 andn r2, r1 + 200a: b345 st.w r2, (r3, 0x14) + 200c: 07f4 br 0x1ff4 // 1ff4 + 200e: 1067 lrw r3, 0x2000005c // 2028 + if(NewState != DISABLE) + 2010: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 2012: 9360 ld.w r3, (r3, 0x0) + 2014: 237f addi r3, 128 + 2016: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 2018: 0c04 bf 0x2020 // 2020 + SYSCON->EXIFT |=EXIPIN; + 201a: 6c48 or r1, r2 + 201c: b326 st.w r1, (r3, 0x18) + 201e: 07eb br 0x1ff4 // 1ff4 + SYSCON->EXIFT &=~EXIPIN; + 2020: 6885 andn r2, r1 + 2022: b346 st.w r2, (r3, 0x18) +} + 2024: 07e8 br 0x1ff4 // 1ff4 + 2026: 0000 bkpt + 2028: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +0000202c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 202c: 106b lrw r3, 0x2000005c // 2058 + 202e: 104c lrw r2, 0x3fff // 205c + 2030: 9360 ld.w r3, (r3, 0x0) + 2032: 237f addi r3, 128 + if(NewState != DISABLE) + 2034: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 2036: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 2038: 0c0c bf 0x2050 // 2050 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 203a: 9347 ld.w r2, (r3, 0x1c) + 203c: 6c84 or r2, r1 + 203e: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 2040: 9349 ld.w r2, (r3, 0x24) + 2042: 6884 and r2, r1 + 2044: 3a40 cmpnei r2, 0 + 2046: 0ffd bf 0x2040 // 2040 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 2048: 934b ld.w r2, (r3, 0x2c) + 204a: 6c48 or r1, r2 + 204c: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 204e: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 2050: 9348 ld.w r2, (r3, 0x20) + 2052: 6c48 or r1, r2 + 2054: b328 st.w r1, (r3, 0x20) +} + 2056: 07fc br 0x204e // 204e + 2058: 2000005c .long 0x2000005c + 205c: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00002060 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 2060: b02b st.w r1, (r0, 0x2c) +} + 2062: 783c jmp r15 + +Disassembly of section .text.EXI3_Int_Enable: + +00002064 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 2064: 3380 movi r3, 128 + 2066: 436f lsli r3, r3, 15 + 2068: 1042 lrw r2, 0xe000e100 // 2070 + 206a: b260 st.w r3, (r2, 0x0) +} + 206c: 783c jmp r15 + 206e: 0000 bkpt + 2070: e000e100 .long 0xe000e100 + +Disassembly of section .text.EXI4_Int_Enable: + +00002074 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 2074: 3380 movi r3, 128 + 2076: 4370 lsli r3, r3, 16 + 2078: 1042 lrw r2, 0xe000e100 // 2080 + 207a: b260 st.w r3, (r2, 0x0) +} + 207c: 783c jmp r15 + 207e: 0000 bkpt + 2080: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00002084 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 2084: 3202 movi r2, 2 + 2086: 1062 lrw r3, 0xe000e100 // 208c + 2088: b340 st.w r2, (r3, 0x0) +} + 208a: 783c jmp r15 + 208c: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00002090 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 2090: 3202 movi r2, 2 + 2092: 1062 lrw r3, 0xe000e180 // 2098 + 2094: b340 st.w r2, (r3, 0x0) +} + 2096: 783c jmp r15 + 2098: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +0000209c : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 209c: 1066 lrw r3, 0xe000e400 // 20b4 + 209e: 1047 lrw r2, 0xc0c0c0c0 // 20b8 + 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 + 20a0: 1027 lrw r1, 0xc0c000c0 // 20bc + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 20a2: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 20a4: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 20a6: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 20a8: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 20aa: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 20ac: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 20ae: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 20b0: b347 st.w r2, (r3, 0x1c) +} + 20b2: 783c jmp r15 + 20b4: e000e400 .long 0xe000e400 + 20b8: c0c0c0c0 .long 0xc0c0c0c0 + 20bc: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000020c0 : +//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) +{ + 20c0: 14c1 push r4 + 20c2: 4862 lsri r3, r0, 2 + 20c4: 4342 lsli r2, r3, 2 + 20c6: 106a lrw r3, 0x20000064 // 20ec + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 20c8: 3403 movi r4, 3 + 20ca: 9360 ld.w r3, (r3, 0x0) + 20cc: 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)); + 20de: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 20e2: 7040 lsl r1, r0 + 20e4: 6c48 or r1, r2 + 20e6: b320 st.w r1, (r3, 0x0) +} + 20e8: 1481 pop r4 + 20ea: 0000 bkpt + 20ec: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +000020f0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 20f0: 1075 lrw r3, 0x2000004c // 2144 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 20f2: 1036 lrw r1, 0x20000048 // 2148 + 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; + 20f4: 1016 lrw r0, 0xffff // 214c + GPIOA0->CONLR &= 0xFF000000; + 20f6: 9340 ld.w r2, (r3, 0x0) + 20f8: 9260 ld.w r3, (r2, 0x0) + 20fa: 4b78 lsri r3, r3, 24 + 20fc: 4378 lsli r3, r3, 24 + 20fe: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 2100: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 2102: 3300 movi r3, 0 + 2104: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 2106: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 2108: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 210a: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 210c: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 210e: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 2110: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 2112: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 2114: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 2116: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 2118: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 211a: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 211c: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 211e: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 2120: 303f movi r0, 63 + 2122: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 2124: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 2126: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 2128: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 212a: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 212c: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 212e: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 2130: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 2132: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 2134: 1047 lrw r2, 0x20000044 // 2150 + 2136: 9240 ld.w r2, (r2, 0x0) + 2138: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 213a: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 213c: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 213e: 330f movi r3, 15 + 2140: b263 st.w r3, (r2, 0xc) +} + 2142: 783c jmp r15 + 2144: 2000004c .long 0x2000004c + 2148: 20000048 .long 0x20000048 + 214c: 0000ffff .long 0x0000ffff + 2150: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00002154 : +//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) +{ + 2154: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 2156: 3907 cmphsi r1, 8 +{ + 2158: 6d03 mov r4, r0 + if(PinNum<8) + 215a: 0830 bt 0x21ba // 21ba + { + switch (PinNum) + 215c: 5903 subi r0, r1, 1 + 215e: 3806 cmphsi r0, 7 + 2160: 0827 bt 0x21ae // 21ae + 2162: e3fff5cd bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2166: 1004 .short 0x1004 + 2168: 1d1a1613 .long 0x1d1a1613 + 216c: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 216e: 3300 movi r3, 0 + 2170: 3104 movi r1, 4 + 2172: 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) + 2174: 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< + 218a: 07f5 br 0x2174 // 2174 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 218c: 310c movi r1, 12 + 218e: 1166 lrw r3, 0xffff0fff // 2224 + 2190: 07f2 br 0x2174 // 2174 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 2192: 3110 movi r1, 16 + 2194: 1165 lrw r3, 0xfff10000 // 2228 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 2196: 2b00 subi r3, 1 + 2198: 07ee br 0x2174 // 2174 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 219a: 3114 movi r1, 20 + 219c: 1164 lrw r3, 0xff100000 // 222c + 219e: 07fc br 0x2196 // 2196 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 21a0: 33f1 movi r3, 241 + 21a2: 3118 movi r1, 24 + 21a4: 4378 lsli r3, r3, 24 + 21a6: 07f8 br 0x2196 // 2196 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 21a8: 311c movi r1, 28 + 21aa: 1162 lrw r3, 0xfffffff // 2230 + 21ac: 07e4 br 0x2174 // 2174 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 21ae: 3300 movi r3, 0 + 21b0: 3100 movi r1, 0 + 21b2: 2b0f subi r3, 16 + 21b4: 07e0 br 0x2174 // 2174 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 21ba: 390f cmphsi r1, 16 + 21bc: 0be4 bt 0x2184 // 2184 + switch (PinNum) + 21be: 2908 subi r1, 9 + 21c0: 3906 cmphsi r1, 7 + 21c2: 6c07 mov r0, r1 + 21c4: 0827 bt 0x2212 // 2212 + 21c6: e3fff59b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 21ca: 1004 .short 0x1004 + 21cc: 1d1a1613 .long 0x1d1a1613 + 21d0: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 21d2: 3300 movi r3, 0 + 21d4: 3104 movi r1, 4 + 21d6: 2bf0 subi r3, 241 + if (Dir) + 21d8: 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; + 21ea: 3108 movi r1, 8 + 21ec: 106d lrw r3, 0xfffff0ff // 2220 + 21ee: 07f5 br 0x21d8 // 21d8 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 21f0: 310c movi r1, 12 + 21f2: 106d lrw r3, 0xffff0fff // 2224 + 21f4: 07f2 br 0x21d8 // 21d8 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 21f6: 3110 movi r1, 16 + 21f8: 106c lrw r3, 0xfff10000 // 2228 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 21fa: 2b00 subi r3, 1 + 21fc: 07ee br 0x21d8 // 21d8 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 21fe: 3114 movi r1, 20 + 2200: 106b lrw r3, 0xff100000 // 222c + 2202: 07fc br 0x21fa // 21fa + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 2204: 33f1 movi r3, 241 + 2206: 3118 movi r1, 24 + 2208: 4378 lsli r3, r3, 24 + 220a: 07f8 br 0x21fa // 21fa + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 220c: 311c movi r1, 28 + 220e: 1069 lrw r3, 0xfffffff // 2230 + 2210: 07e4 br 0x21d8 // 21d8 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 2212: 3300 movi r3, 0 + 2214: 3100 movi r1, 0 + 2216: 2b0f subi r3, 16 + 2218: 07e0 br 0x21d8 // 21d8 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 221e: 0000 bkpt + 2220: fffff0ff .long 0xfffff0ff + 2224: ffff0fff .long 0xffff0fff + 2228: fff10000 .long 0xfff10000 + 222c: ff100000 .long 0xff100000 + 2230: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00002234 : +//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)); + 2234: 4121 lsli r1, r1, 1 + 2236: 3203 movi r2, 3 + 2238: 9068 ld.w r3, (r0, 0x20) + 223a: 7084 lsl r2, r1 + 223c: 68c9 andn r3, r2 + 223e: 3201 movi r2, 1 + 2240: 7084 lsl r2, r1 + 2242: 6cc8 or r3, r2 + 2244: b068 st.w r3, (r0, 0x20) +} + 2246: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00002248 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 2248: 4121 lsli r1, r1, 1 + 224a: 3301 movi r3, 1 + 224c: 9049 ld.w r2, (r0, 0x24) + 224e: 70c4 lsl r3, r1 + 2250: 6cc8 or r3, r2 + 2252: b069 st.w r3, (r0, 0x24) +} + 2254: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00002258 : +//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) +{ + 2258: 14c1 push r4 + 225a: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 225c: 3a0f cmphsi r2, 16 + 225e: 084f bt 0x22fc // 22fc + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 2260: 6ccb mov r3, r2 + 2262: 3b83 bclri r3, 3 + 2264: 3b40 cmpnei r3, 0 + 2266: 0813 bt 0x228c // 228c + { + R_data_temp=0xfffffff0; + 2268: 2b0f subi r3, 16 + 226a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 226c: 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) + 226e: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 2270: dc6e0003 st.b r3, (r14, 0x3) + 2274: 1176 lrw r3, 0x20000044 // 234c + if(Selete_EXI_x<8) + 2276: 0c38 bf 0x22e6 // 22e6 + { + 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)) + 228c: 3b41 cmpnei r3, 1 + 228e: 0806 bt 0x229a // 229a + R_data_temp=0xffffff0f; + 2290: 3300 movi r3, 0 + 2292: 2bf0 subi r3, 241 + 2294: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 2296: 3304 movi r3, 4 + 2298: 07eb br 0x226e // 226e + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 229a: 3b42 cmpnei r3, 2 + 229c: 0805 bt 0x22a6 // 22a6 + R_data_temp=0xfffff0ff; + 229e: 116d lrw r3, 0xfffff0ff // 2350 + 22a0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 22a2: 3308 movi r3, 8 + 22a4: 07e5 br 0x226e // 226e + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 22a6: 3b43 cmpnei r3, 3 + 22a8: 0805 bt 0x22b2 // 22b2 + R_data_temp=0xffff0fff; + 22aa: 116b lrw r3, 0xffff0fff // 2354 + 22ac: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 22ae: 330c movi r3, 12 + 22b0: 07df br 0x226e // 226e + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 22b2: 3b44 cmpnei r3, 4 + 22b4: 0806 bt 0x22c0 // 22c0 + R_data_temp=0xfff0ffff; + 22b6: 1169 lrw r3, 0xfff10000 // 2358 + 22b8: 2b00 subi r3, 1 + 22ba: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 22bc: 3310 movi r3, 16 + 22be: 07d8 br 0x226e // 226e + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 22c0: 3b45 cmpnei r3, 5 + 22c2: 0806 bt 0x22ce // 22ce + R_data_temp=0xff0fffff; + 22c4: 1166 lrw r3, 0xff100000 // 235c + 22c6: 2b00 subi r3, 1 + 22c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 22ca: 3314 movi r3, 20 + 22cc: 07d1 br 0x226e // 226e + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 22ce: 3b46 cmpnei r3, 6 + 22d0: 0807 bt 0x22de // 22de + R_data_temp=0xf0ffffff; + 22d2: 33f1 movi r3, 241 + 22d4: 4378 lsli r3, r3, 24 + 22d6: 2b00 subi r3, 1 + 22d8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 22da: 3318 movi r3, 24 + 22dc: 07c9 br 0x226e // 226e + R_data_temp=0x0fffffff; + 22de: 1161 lrw r3, 0xfffffff // 2360 + 22e0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 22e2: 331c movi r3, 28 + 22e4: 07c5 br 0x226e // 226e + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 22f8: 1402 addi r14, r14, 8 + 22fa: 1481 pop r4 + else if(Selete_EXI_x<20) + 22fc: 3a13 cmphsi r2, 20 + 22fe: 0bfd bt 0x22f8 // 22f8 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 2300: 3840 cmpnei r0, 0 + 2302: 0814 bt 0x232a // 232a + 2304: 3300 movi r3, 0 + 2306: 2b0f subi r3, 16 + 2308: 60c8 addu r3, r2 + 230a: 3b01 cmphsi r3, 2 + 230c: 0bf6 bt 0x22f8 // 22f8 + if(Selete_EXI_x==16) + 230e: 3a50 cmpnei r2, 16 + 2310: 106f lrw r3, 0x20000044 // 234c + 2312: 0806 bt 0x231e // 231e + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2314: 9340 ld.w r2, (r3, 0x0) + 2316: 9262 ld.w r3, (r2, 0x8) + 2318: 6c4c or r1, r3 + 231a: b222 st.w r1, (r2, 0x8) + 231c: 07ee br 0x22f8 // 22f8 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 231e: 9360 ld.w r3, (r3, 0x0) + 2320: 9342 ld.w r2, (r3, 0x8) + 2322: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2324: 6c48 or r1, r2 + 2326: b322 st.w r1, (r3, 0x8) +} + 2328: 07e8 br 0x22f8 // 22f8 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 232a: 3842 cmpnei r0, 2 + 232c: 0be6 bt 0x22f8 // 22f8 + 232e: 3300 movi r3, 0 + 2330: 2b11 subi r3, 18 + 2332: 60c8 addu r3, r2 + 2334: 3b01 cmphsi r3, 2 + 2336: 0be1 bt 0x22f8 // 22f8 + 2338: 1065 lrw r3, 0x20000044 // 234c + if(Selete_EXI_x==18) + 233a: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 233c: 9360 ld.w r3, (r3, 0x0) + 233e: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 2340: 0803 bt 0x2346 // 2346 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2342: 4128 lsli r1, r1, 8 + 2344: 07f0 br 0x2324 // 2324 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2346: 412c lsli r1, r1, 12 + 2348: 07ee br 0x2324 // 2324 + 234a: 0000 bkpt + 234c: 20000044 .long 0x20000044 + 2350: fffff0ff .long 0xfffff0ff + 2354: ffff0fff .long 0xffff0fff + 2358: fff10000 .long 0xfff10000 + 235c: ff100000 .long 0xff100000 + 2360: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00002364 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2364: 14d0 push r15 + switch (EXI_IO) + 2366: 380f cmphsi r0, 16 + 2368: 0812 bt 0x238c // 238c + 236a: 117d lrw r3, 0x2000004c // 245c + 236c: e3fff4c8 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2370: 1d150f08 .long 0x1d150f08 + 2374: 39322b24 .long 0x39322b24 + 2378: 544c463f .long 0x544c463f + 237c: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2380: 9340 ld.w r2, (r3, 0x0) + 2382: 9260 ld.w r3, (r2, 0x0) + 2384: 310f movi r1, 15 + 2386: 68c5 andn r3, r1 + 2388: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 238a: 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; + } +} + 238c: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 238e: 9340 ld.w r2, (r3, 0x0) + 2390: 9260 ld.w r3, (r2, 0x0) + 2392: 31f0 movi r1, 240 + 2394: 68c5 andn r3, r1 + 2396: 3ba4 bseti r3, 4 + 2398: 07f9 br 0x238a // 238a + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 239a: 9320 ld.w r1, (r3, 0x0) + 239c: 32f0 movi r2, 240 + 239e: 9160 ld.w r3, (r1, 0x0) + 23a0: 4244 lsli r2, r2, 4 + 23a2: 68c9 andn r3, r2 + 23a4: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 23a6: b160 st.w r3, (r1, 0x0) + 23a8: 07f2 br 0x238c // 238c + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 23aa: 9320 ld.w r1, (r3, 0x0) + 23ac: 32f0 movi r2, 240 + 23ae: 9160 ld.w r3, (r1, 0x0) + 23b0: 4248 lsli r2, r2, 8 + 23b2: 68c9 andn r3, r2 + 23b4: 3bac bseti r3, 12 + 23b6: 07f8 br 0x23a6 // 23a6 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 23b8: 9320 ld.w r1, (r3, 0x0) + 23ba: 32f0 movi r2, 240 + 23bc: 9160 ld.w r3, (r1, 0x0) + 23be: 424c lsli r2, r2, 12 + 23c0: 68c9 andn r3, r2 + 23c2: 3bb0 bseti r3, 16 + 23c4: 07f1 br 0x23a6 // 23a6 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 23c6: 9320 ld.w r1, (r3, 0x0) + 23c8: 32f0 movi r2, 240 + 23ca: 9160 ld.w r3, (r1, 0x0) + 23cc: 4250 lsli r2, r2, 16 + 23ce: 68c9 andn r3, r2 + 23d0: 3bb4 bseti r3, 20 + 23d2: 07ea br 0x23a6 // 23a6 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 23d4: 9320 ld.w r1, (r3, 0x0) + 23d6: 32f0 movi r2, 240 + 23d8: 9160 ld.w r3, (r1, 0x0) + 23da: 4254 lsli r2, r2, 20 + 23dc: 68c9 andn r3, r2 + 23de: 3bb8 bseti r3, 24 + 23e0: 07e3 br 0x23a6 // 23a6 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 23e2: 9340 ld.w r2, (r3, 0x0) + 23e4: 9260 ld.w r3, (r2, 0x0) + 23e6: 4364 lsli r3, r3, 4 + 23e8: 4b64 lsri r3, r3, 4 + 23ea: 3bbc bseti r3, 28 + 23ec: 07cf br 0x238a // 238a + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 23ee: 9340 ld.w r2, (r3, 0x0) + 23f0: 9261 ld.w r3, (r2, 0x4) + 23f2: 310f movi r1, 15 + 23f4: 68c5 andn r3, r1 + 23f6: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 23f8: b261 st.w r3, (r2, 0x4) +} + 23fa: 07c9 br 0x238c // 238c + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 23fc: 9340 ld.w r2, (r3, 0x0) + 23fe: 9261 ld.w r3, (r2, 0x4) + 2400: 31f0 movi r1, 240 + 2402: 68c5 andn r3, r1 + 2404: 3ba4 bseti r3, 4 + 2406: 07f9 br 0x23f8 // 23f8 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 2408: 9320 ld.w r1, (r3, 0x0) + 240a: 32f0 movi r2, 240 + 240c: 9161 ld.w r3, (r1, 0x4) + 240e: 4244 lsli r2, r2, 4 + 2410: 68c9 andn r3, r2 + 2412: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2414: b161 st.w r3, (r1, 0x4) + 2416: 07bb br 0x238c // 238c + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 2418: 9320 ld.w r1, (r3, 0x0) + 241a: 32f0 movi r2, 240 + 241c: 9161 ld.w r3, (r1, 0x4) + 241e: 4248 lsli r2, r2, 8 + 2420: 68c9 andn r3, r2 + 2422: 3bac bseti r3, 12 + 2424: 07f8 br 0x2414 // 2414 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 2426: 9320 ld.w r1, (r3, 0x0) + 2428: 32f0 movi r2, 240 + 242a: 9161 ld.w r3, (r1, 0x4) + 242c: 424c lsli r2, r2, 12 + 242e: 68c9 andn r3, r2 + 2430: 3bb0 bseti r3, 16 + 2432: 07f1 br 0x2414 // 2414 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 2434: 9320 ld.w r1, (r3, 0x0) + 2436: 32f0 movi r2, 240 + 2438: 9161 ld.w r3, (r1, 0x4) + 243a: 4250 lsli r2, r2, 16 + 243c: 68c9 andn r3, r2 + 243e: 3bb4 bseti r3, 20 + 2440: 07ea br 0x2414 // 2414 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2442: 9320 ld.w r1, (r3, 0x0) + 2444: 32f0 movi r2, 240 + 2446: 9161 ld.w r3, (r1, 0x4) + 2448: 4254 lsli r2, r2, 20 + 244a: 68c9 andn r3, r2 + 244c: 3bb8 bseti r3, 24 + 244e: 07e3 br 0x2414 // 2414 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2450: 9340 ld.w r2, (r3, 0x0) + 2452: 9261 ld.w r3, (r2, 0x4) + 2454: 4364 lsli r3, r3, 4 + 2456: 4b64 lsri r3, r3, 4 + 2458: 3bbc bseti r3, 28 + 245a: 07cf br 0x23f8 // 23f8 + 245c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIOB0_EXI_Init: + +00002460 : +void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2460: 14d0 push r15 + switch (EXI_IO) + 2462: 3805 cmphsi r0, 6 + 2464: 080d bt 0x247e // 247e + 2466: 1079 lrw r3, 0x20000048 // 24c8 + 2468: e3fff44a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 246c: 18100a03 .long 0x18100a03 + 2470: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2472: 9340 ld.w r2, (r3, 0x0) + 2474: 9260 ld.w r3, (r2, 0x0) + 2476: 310f movi r1, 15 + 2478: 68c5 andn r3, r1 + 247a: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 247c: b260 st.w r3, (r2, 0x0) + 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; + } +} + 247e: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2480: 9340 ld.w r2, (r3, 0x0) + 2482: 9260 ld.w r3, (r2, 0x0) + 2484: 31f0 movi r1, 240 + 2486: 68c5 andn r3, r1 + 2488: 3ba4 bseti r3, 4 + 248a: 07f9 br 0x247c // 247c + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 248c: 9320 ld.w r1, (r3, 0x0) + 248e: 32f0 movi r2, 240 + 2490: 9160 ld.w r3, (r1, 0x0) + 2492: 4244 lsli r2, r2, 4 + 2494: 68c9 andn r3, r2 + 2496: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2498: b160 st.w r3, (r1, 0x0) +} + 249a: 07f2 br 0x247e // 247e + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 249c: 9320 ld.w r1, (r3, 0x0) + 249e: 32f0 movi r2, 240 + 24a0: 9160 ld.w r3, (r1, 0x0) + 24a2: 4248 lsli r2, r2, 8 + 24a4: 68c9 andn r3, r2 + 24a6: 3bac bseti r3, 12 + 24a8: 07f8 br 0x2498 // 2498 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 24aa: 9320 ld.w r1, (r3, 0x0) + 24ac: 32f0 movi r2, 240 + 24ae: 9160 ld.w r3, (r1, 0x0) + 24b0: 424c lsli r2, r2, 12 + 24b2: 68c9 andn r3, r2 + 24b4: 3bb0 bseti r3, 16 + 24b6: 07f1 br 0x2498 // 2498 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 24b8: 9320 ld.w r1, (r3, 0x0) + 24ba: 32f0 movi r2, 240 + 24bc: 9160 ld.w r3, (r1, 0x0) + 24be: 4250 lsli r2, r2, 16 + 24c0: 68c9 andn r3, r2 + 24c2: 3bb4 bseti r3, 20 + 24c4: 07ea br 0x2498 // 2498 + 24c6: 0000 bkpt + 24c8: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +000024cc : +//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; + 24dc: 9045 ld.w r2, (r0, 0x14) + 24de: 3301 movi r3, 1 + 24e0: 7085 lsr r2, r1 + 24e2: 688c and r2, r3 + { + if (dat==1) + 24e4: 3a40 cmpnei r2, 0 + 24e6: 70c4 lsl r3, r1 + 24e8: 0c03 bf 0x24ee // 24ee + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000024f2 : +/*************************************************************/ +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); + 2504: 1064 lrw r3, 0x20000014 // 2514 + 2506: 9340 ld.w r2, (r3, 0x0) + 2508: 9261 ld.w r3, (r2, 0x4) + 250a: 3bac bseti r3, 12 + 250c: 3bae bseti r3, 14 + 250e: b261 st.w r3, (r2, 0x4) +} + 2510: 783c jmp r15 + 2512: 0000 bkpt + 2514: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002518 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2518: 1063 lrw r3, 0x20000010 // 2524 + 251a: 9360 ld.w r3, (r3, 0x0) + 251c: 9340 ld.w r2, (r3, 0x0) + 251e: 6c08 or r0, r2 + 2520: b300 st.w r0, (r3, 0x0) +} + 2522: 783c jmp r15 + 2524: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002528 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2528: 3300 movi r3, 0 + 252a: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 252c: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 252e: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2530: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2532: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2534: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2536: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2538: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 253a: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 253c: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 253e: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 2540: b06d st.w r3, (r0, 0x34) +} + 2542: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002544 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2544: 9060 ld.w r3, (r0, 0x0) + 2546: 3ba0 bseti r3, 0 + 2548: b060 st.w r3, (r0, 0x0) +} + 254a: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +0000254c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 254c: 9060 ld.w r3, (r0, 0x0) + 254e: 3bac bseti r3, 12 + 2550: 3bae bseti r3, 14 + 2552: b060 st.w r3, (r0, 0x0) +} + 2554: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002556 : +//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) +{ + 2556: 14c3 push r4-r6 + 2558: 98a4 ld.w r5, (r14, 0x10) + 255a: 6d97 mov r6, r5 + 255c: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 255e: 6d18 or r4, r6 + 2560: 6cd0 or r3, r4 + 2562: 90a1 ld.w r5, (r0, 0x4) + 2564: 6c4c or r1, r3 + 2566: 6c54 or r1, r5 + 2568: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 256a: b042 st.w r2, (r0, 0x8) +} + 256c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000256e : +//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) +{ + 256e: 14c4 push r4-r7 + 2570: 1421 subi r14, r14, 4 + 2572: 9885 ld.w r4, (r14, 0x14) + 2574: 6dd3 mov r7, r4 + 2576: 9886 ld.w r4, (r14, 0x18) + 2578: b880 st.w r4, (r14, 0x0) + 257a: 9887 ld.w r4, (r14, 0x1c) + 257c: 6d93 mov r6, r4 + 257e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 2580: 6d58 or r5, r6 + 2582: 98c0 ld.w r6, (r14, 0x0) + 2584: 6d58 or r5, r6 + 2586: 6d5c or r5, r7 + 2588: 6cd4 or r3, r5 + 258a: 6c8c or r2, r3 + 258c: 9081 ld.w r4, (r0, 0x4) + 258e: 6c48 or r1, r2 + 2590: 6d04 or r4, r1 + 2592: 6d9f mov r6, r7 + 2594: b081 st.w r4, (r0, 0x4) +} + 2596: 1401 addi r14, r14, 4 + 2598: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000259a : +//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; + 259a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 259c: b044 st.w r2, (r0, 0x10) +} + 259e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +000025a0 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 25a0: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 25a2: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 25a4: 0c04 bf 0x25ac // 25ac + BTx->IMCR |= BT_IMSCR_X; + 25a6: 6c8c or r2, r3 + 25a8: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 25aa: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 25ac: 68c9 andn r3, r2 + 25ae: b06b st.w r3, (r0, 0x2c) +} + 25b0: 07fd br 0x25aa // 25aa + +Disassembly of section .text.BT1_INT_ENABLE: + +000025b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 25b4: 3380 movi r3, 128 + 25b6: 4376 lsli r3, r3, 22 + 25b8: 1042 lrw r2, 0xe000e100 // 25c0 + 25ba: b260 st.w r3, (r2, 0x0) +} + 25bc: 783c jmp r15 + 25be: 0000 bkpt + 25c0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +000025c4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 25c4: 1067 lrw r3, 0x2000002c // 25e0 + 25c6: 3200 movi r2, 0 + 25c8: 9360 ld.w r3, (r3, 0x0) + 25ca: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 25cc: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 25ce: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 25d0: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 25d2: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 25d4: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 25d6: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 25d8: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 25da: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 25dc: b34b st.w r2, (r3, 0x2c) +} + 25de: 783c jmp r15 + 25e0: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +000025e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 25e4: 3840 cmpnei r0, 0 + 25e6: 080a bt 0x25fa // 25fa + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 25e8: 1075 lrw r3, 0x2000004c // 263c + 25ea: 32f0 movi r2, 240 + 25ec: 9320 ld.w r1, (r3, 0x0) + 25ee: 9160 ld.w r3, (r1, 0x0) + 25f0: 4244 lsli r2, r2, 4 + 25f2: 68c9 andn r3, r2 + 25f4: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 25f6: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 25f8: 783c jmp r15 + if(IOGx==SIO_PA03) + 25fa: 3841 cmpnei r0, 1 + 25fc: 0809 bt 0x260e // 260e + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 25fe: 1070 lrw r3, 0x2000004c // 263c + 2600: 32f0 movi r2, 240 + 2602: 9320 ld.w r1, (r3, 0x0) + 2604: 9160 ld.w r3, (r1, 0x0) + 2606: 4248 lsli r2, r2, 8 + 2608: 68c9 andn r3, r2 + 260a: 3baf bseti r3, 15 + 260c: 07f5 br 0x25f6 // 25f6 + if(IOGx==SIO_PA012) + 260e: 3842 cmpnei r0, 2 + 2610: 080a bt 0x2624 // 2624 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 2612: 106b lrw r3, 0x2000004c // 263c + 2614: 32f0 movi r2, 240 + 2616: 9320 ld.w r1, (r3, 0x0) + 2618: 9161 ld.w r3, (r1, 0x4) + 261a: 424c lsli r2, r2, 12 + 261c: 68c9 andn r3, r2 + 261e: 3bb3 bseti r3, 19 + 2620: b161 st.w r3, (r1, 0x4) + 2622: 07eb br 0x25f8 // 25f8 + if(IOGx==SIO_PB01) + 2624: 3843 cmpnei r0, 3 + 2626: 0be9 bt 0x25f8 // 25f8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 2628: 1066 lrw r3, 0x20000048 // 2640 + 262a: 31f0 movi r1, 240 + 262c: 9340 ld.w r2, (r3, 0x0) + 262e: 9260 ld.w r3, (r2, 0x0) + 2630: 68c5 andn r3, r1 + 2632: 3170 movi r1, 112 + 2634: 6cc4 or r3, r1 + 2636: b260 st.w r3, (r2, 0x0) +} + 2638: 07e0 br 0x25f8 // 25f8 + 263a: 0000 bkpt + 263c: 2000004c .long 0x2000004c + 2640: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +00002644 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 2644: 4130 lsli r1, r1, 16 + 2646: 1063 lrw r3, 0x2000002c // 2650 + 2648: 6c04 or r0, r1 + 264a: 9360 ld.w r3, (r3, 0x0) + 264c: b300 st.w r0, (r3, 0x0) + +} + 264e: 783c jmp r15 + 2650: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +00002654 : +//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) +{ + 2654: 14c4 push r4-r7 + 2656: 1423 subi r14, r14, 12 + 2658: 9889 ld.w r4, (r14, 0x24) + 265a: b881 st.w r4, (r14, 0x4) + 265c: 988a ld.w r4, (r14, 0x28) + 265e: b882 st.w r4, (r14, 0x8) + 2660: 1c08 addi r4, r14, 32 + 2662: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2664: 4368 lsli r3, r3, 8 +{ + 2666: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2668: 6cc0 or r3, r0 +{ + 266a: 1c0b addi r4, r14, 44 + 266c: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 266e: 6cc4 or r3, r1 +{ + 2670: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2672: 4244 lsli r2, r2, 4 + 2674: 10eb lrw r7, 0x2000002c // 26a0 + 2676: 6cc8 or r3, r2 + 2678: 97e0 ld.w r7, (r7, 0x0) +{ + 267a: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 267c: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 267e: 4498 lsli r4, r4, 24 + 2680: 9861 ld.w r3, (r14, 0x4) + 2682: 6d0c or r4, r3 + 2684: 9862 ld.w r3, (r14, 0x8) + 2686: 6d0c or r4, r3 +{ + 2688: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 268c: 9860 ld.w r3, (r14, 0x0) + 268e: 46d0 lsli r6, r6, 16 + 2690: 6d90 or r6, r4 + 2692: 45a2 lsli r5, r5, 2 + 2694: 4385 lsli r4, r3, 5 + 2696: 6d50 or r5, r4 + 2698: 6d58 or r5, r6 + 269a: b7a2 st.w r5, (r7, 0x8) +} + 269c: 1403 addi r14, r14, 12 + 269e: 1484 pop r4-r7 + 26a0: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +000026a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 26a4: 1065 lrw r3, 0x20000040 // 26b8 + 26a6: 3200 movi r2, 0 + 26a8: 9360 ld.w r3, (r3, 0x0) + 26aa: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 26ac: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 26ae: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 26b0: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 26b2: b344 st.w r2, (r3, 0x10) +} + 26b4: 783c jmp r15 + 26b6: 0000 bkpt + 26b8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000026bc : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 26bc: 1065 lrw r3, 0x2000003c // 26d0 + 26be: 3200 movi r2, 0 + 26c0: 9360 ld.w r3, (r3, 0x0) + 26c2: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 26c4: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 26c6: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 26c8: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 26ca: b344 st.w r2, (r3, 0x10) +} + 26cc: 783c jmp r15 + 26ce: 0000 bkpt + 26d0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000026d4 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 26d4: 1065 lrw r3, 0x20000038 // 26e8 + 26d6: 3200 movi r2, 0 + 26d8: 9360 ld.w r3, (r3, 0x0) + 26da: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 26dc: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 26de: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 26e0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 26e2: b344 st.w r2, (r3, 0x10) +} + 26e4: 783c jmp r15 + 26e6: 0000 bkpt + 26e8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000026ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 26ec: 1065 lrw r3, 0x20000040 // 2700 + 26ee: 320f movi r2, 15 + 26f0: 9360 ld.w r3, (r3, 0x0) + 26f2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 26f4: 3380 movi r3, 128 + 26f6: 4366 lsli r3, r3, 6 + 26f8: 1043 lrw r2, 0xe000e100 // 2704 + 26fa: b260 st.w r3, (r2, 0x0) +} + 26fc: 783c jmp r15 + 26fe: 0000 bkpt + 2700: 20000040 .long 0x20000040 + 2704: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002708 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2708: 1065 lrw r3, 0x20000038 // 271c + 270a: 320f movi r2, 15 + 270c: 9360 ld.w r3, (r3, 0x0) + 270e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2710: 3380 movi r3, 128 + 2712: 4368 lsli r3, r3, 8 + 2714: 1043 lrw r2, 0xe000e100 // 2720 + 2716: b260 st.w r3, (r2, 0x0) +} + 2718: 783c jmp r15 + 271a: 0000 bkpt + 271c: 20000038 .long 0x20000038 + 2720: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002724 : +//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) + 2724: 3840 cmpnei r0, 0 + 2726: 0821 bt 0x2768 // 2768 + { + if(UART_IO_G==0) + 2728: 3940 cmpnei r1, 0 + 272a: 080a bt 0x273e // 273e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 272c: 1177 lrw r3, 0x2000004c // 2808 + 272e: 31ff movi r1, 255 + 2730: 9340 ld.w r2, (r3, 0x0) + 2732: 9260 ld.w r3, (r2, 0x0) + 2734: 68c5 andn r3, r1 + 2736: 3ba2 bseti r3, 2 + 2738: 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 + 273a: b260 st.w r3, (r2, 0x0) + 273c: 0415 br 0x2766 // 2766 + else if(UART_IO_G==1) + 273e: 3941 cmpnei r1, 1 + 2740: 0813 bt 0x2766 // 2766 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2742: 1172 lrw r3, 0x2000004c // 2808 + 2744: 31f0 movi r1, 240 + 2746: 9340 ld.w r2, (r3, 0x0) + 2748: 9260 ld.w r3, (r2, 0x0) + 274a: 4130 lsli r1, r1, 16 + 274c: 68c5 andn r3, r1 + 274e: 31e0 movi r1, 224 + 2750: 412f lsli r1, r1, 15 + 2752: 6cc4 or r3, r1 + 2754: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2756: 31f0 movi r1, 240 + 2758: 9261 ld.w r3, (r2, 0x4) + 275a: 412c lsli r1, r1, 12 + 275c: 68c5 andn r3, r1 + 275e: 31e0 movi r1, 224 + 2760: 412b lsli r1, r1, 11 + 2762: 6cc4 or r3, r1 + 2764: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2766: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2768: 3841 cmpnei r0, 1 + 276a: 082d bt 0x27c4 // 27c4 + if(UART_IO_G==0) + 276c: 3940 cmpnei r1, 0 + 276e: 0814 bt 0x2796 // 2796 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2770: 1167 lrw r3, 0x20000048 // 280c + 2772: 310f movi r1, 15 + 2774: 9340 ld.w r2, (r3, 0x0) + 2776: 9260 ld.w r3, (r2, 0x0) + 2778: 68c5 andn r3, r1 + 277a: 3107 movi r1, 7 + 277c: 6cc4 or r3, r1 + 277e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2780: 32f0 movi r2, 240 + 2782: 1162 lrw r3, 0x2000004c // 2808 + 2784: 4250 lsli r2, r2, 16 + 2786: 9320 ld.w r1, (r3, 0x0) + 2788: 9161 ld.w r3, (r1, 0x4) + 278a: 68c9 andn r3, r2 + 278c: 32e0 movi r2, 224 + 278e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2790: 6cc8 or r3, r2 + 2792: b161 st.w r3, (r1, 0x4) + 2794: 07e9 br 0x2766 // 2766 + else if(UART_IO_G==1) + 2796: 3941 cmpnei r1, 1 + 2798: 080c bt 0x27b0 // 27b0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 279a: 107c lrw r3, 0x2000004c // 2808 + 279c: 32ff movi r2, 255 + 279e: 9320 ld.w r1, (r3, 0x0) + 27a0: 424c lsli r2, r2, 12 + 27a2: 9160 ld.w r3, (r1, 0x0) + 27a4: 68c9 andn r3, r2 + 27a6: 32ee movi r2, 238 + 27a8: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 27aa: 6cc8 or r3, r2 + 27ac: b160 st.w r3, (r1, 0x0) +} + 27ae: 07dc br 0x2766 // 2766 + else if(UART_IO_G==2) + 27b0: 3942 cmpnei r1, 2 + 27b2: 0bda bt 0x2766 // 2766 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 27b4: 1075 lrw r3, 0x2000004c // 2808 + 27b6: 32ee movi r2, 238 + 27b8: 9320 ld.w r1, (r3, 0x0) + 27ba: 9161 ld.w r3, (r1, 0x4) + 27bc: 4368 lsli r3, r3, 8 + 27be: 4b68 lsri r3, r3, 8 + 27c0: 4257 lsli r2, r2, 23 + 27c2: 07e7 br 0x2790 // 2790 + if (IO_UART_NUM==IO_UART2) + 27c4: 3842 cmpnei r0, 2 + 27c6: 0bd0 bt 0x2766 // 2766 + if(UART_IO_G==0) + 27c8: 3940 cmpnei r1, 0 + 27ca: 0809 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 27cc: 106f lrw r3, 0x2000004c // 2808 + 27ce: 31ff movi r1, 255 + 27d0: 9340 ld.w r2, (r3, 0x0) + 27d2: 9260 ld.w r3, (r2, 0x0) + 27d4: 68c5 andn r3, r1 + 27d6: 3177 movi r1, 119 + 27d8: 6cc4 or r3, r1 + 27da: 07b0 br 0x273a // 273a + else if(UART_IO_G==1) + 27dc: 3941 cmpnei r1, 1 + 27de: 0809 bt 0x27f0 // 27f0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 27e0: 106a lrw r3, 0x2000004c // 2808 + 27e2: 32ee movi r2, 238 + 27e4: 9320 ld.w r1, (r3, 0x0) + 27e6: 9160 ld.w r3, (r1, 0x0) + 27e8: 4368 lsli r3, r3, 8 + 27ea: 4b68 lsri r3, r3, 8 + 27ec: 4257 lsli r2, r2, 23 + 27ee: 07de br 0x27aa // 27aa + else if(UART_IO_G==2) + 27f0: 3942 cmpnei r1, 2 + 27f2: 0bba bt 0x2766 // 2766 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 27f4: 1066 lrw r3, 0x20000048 // 280c + 27f6: 32ff movi r2, 255 + 27f8: 9320 ld.w r1, (r3, 0x0) + 27fa: 4250 lsli r2, r2, 16 + 27fc: 9160 ld.w r3, (r1, 0x0) + 27fe: 68c9 andn r3, r2 + 2800: 32cc movi r2, 204 + 2802: 424f lsli r2, r2, 15 + 2804: 07d3 br 0x27aa // 27aa + 2806: 0000 bkpt + 2808: 2000004c .long 0x2000004c + 280c: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +00002810 : +//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); + 2810: 1063 lrw r3, 0x80003 // 281c + 2812: 6c8c or r2, r3 + 2814: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2816: b024 st.w r1, (r0, 0x10) +} + 2818: 783c jmp r15 + 281a: 0000 bkpt + 281c: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002820 : +//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); + 2820: 1063 lrw r3, 0x8000f // 282c + 2822: 6c8c or r2, r3 + 2824: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2826: b024 st.w r1, (r0, 0x10) +} + 2828: 783c jmp r15 + 282a: 0000 bkpt + 282c: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002830 : +//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) +{ + 2830: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2832: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2834: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2836: 5b85 subu r4, r3, r1 + 2838: 6490 cmphs r4, r2 + 283a: 0c02 bf 0x283e // 283e + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 283c: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 283e: 8380 ld.b r4, (r3, 0x0) + 2840: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 2842: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2844: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2846: 3c40 cmpnei r4, 0 + 2848: 0bfd bt 0x2842 // 2842 + 284a: 2300 addi r3, 1 + 284c: 07f5 br 0x2836 // 2836 + +Disassembly of section .text.EPT_Stop: + +00002850 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2850: 1068 lrw r3, 0x20000020 // 2870 + 2852: 3280 movi r2, 128 + 2854: 9360 ld.w r3, (r3, 0x0) + 2856: 608c addu r2, r3 + 2858: 1027 lrw r1, 0xa55ac73a // 2874 + 285a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 285c: 9341 ld.w r2, (r3, 0x4) + 285e: 31fe movi r1, 254 + 2860: 6884 and r2, r1 + 2862: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2864: 3101 movi r1, 1 + 2866: 9341 ld.w r2, (r3, 0x4) + 2868: 6884 and r2, r1 + 286a: 3a40 cmpnei r2, 0 + 286c: 0bfd bt 0x2866 // 2866 +} + 286e: 783c jmp r15 + 2870: 20000020 .long 0x20000020 + 2874: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002878 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2878: 1078 lrw r3, 0x20000050 // 28d8 + 287a: 3200 movi r2, 0 + 287c: 9360 ld.w r3, (r3, 0x0) + 287e: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2880: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 2882: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 2884: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 2886: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2888: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 288a: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 288c: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 288e: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2890: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 2892: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 2894: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 2896: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2898: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 289a: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 289c: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 289e: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 28a0: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 28a2: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 28a4: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 28a6: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 28a8: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 28aa: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 28ac: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 28ae: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 28b0: 23ff addi r3, 256 + 28b2: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 28b4: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 28b6: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 28b8: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 28ba: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 28bc: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 28be: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 28c0: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 28c2: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 28c4: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 28c6: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 28c8: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 28ca: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 28cc: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 28ce: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 28d0: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 28d2: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 28d4: b351 st.w r2, (r3, 0x44) +} + 28d6: 783c jmp r15 + 28d8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +000028dc : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 28dc: 1063 lrw r3, 0x20000050 // 28e8 + 28de: 9340 ld.w r2, (r3, 0x0) + 28e0: 9264 ld.w r3, (r2, 0x10) + 28e2: 6c0c or r0, r3 + 28e4: b204 st.w r0, (r2, 0x10) +} + 28e6: 783c jmp r15 + 28e8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +000028ec : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 28ec: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 28ee: 3002 movi r0, 2 + 28f0: e3fffff6 bsr 0x28dc // 28dc + while(!(ADC0->SR &ADC12_ADCENS)); + 28f4: 1065 lrw r3, 0x20000050 // 2908 + 28f6: 3280 movi r2, 128 + 28f8: 9320 ld.w r1, (r3, 0x0) + 28fa: 4241 lsli r2, r2, 1 + 28fc: 9168 ld.w r3, (r1, 0x20) + 28fe: 68c8 and r3, r2 + 2900: 3b40 cmpnei r3, 0 + 2902: 0ffd bf 0x28fc // 28fc + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2904: 1490 pop r15 + 2906: 0000 bkpt + 2908: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +0000290c : + if (NewState != DISABLE) + 290c: 3940 cmpnei r1, 0 + 290e: 106a lrw r3, 0x20000050 // 2934 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2910: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 2912: 0c09 bf 0x2924 // 2924 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2914: 9260 ld.w r3, (r2, 0x0) + 2916: 6cc0 or r3, r0 + 2918: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 291a: 9262 ld.w r3, (r2, 0x8) + 291c: 68c0 and r3, r0 + 291e: 3b40 cmpnei r3, 0 + 2920: 0ffd bf 0x291a // 291a +} + 2922: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2924: 9261 ld.w r3, (r2, 0x4) + 2926: 6cc0 or r3, r0 + 2928: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 292a: 9262 ld.w r3, (r2, 0x8) + 292c: 68c0 and r3, r0 + 292e: 3b40 cmpnei r3, 0 + 2930: 0bfd bt 0x292a // 292a + 2932: 07f8 br 0x2922 // 2922 + 2934: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00002938 : +{ + 2938: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 293a: 3001 movi r0, 1 + 293c: e3ffffd0 bsr 0x28dc // 28dc +} + 2940: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00002944 : +{ + 2944: 14d0 push r15 + if (NewState != DISABLE) + 2946: 3840 cmpnei r0, 0 + 2948: 0c04 bf 0x2950 // 2950 + 294a: e3ffffd1 bsr 0x28ec // 28ec +} + 294e: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 2950: 3004 movi r0, 4 + 2952: e3ffffc5 bsr 0x28dc // 28dc + while(ADC0->SR&ADC12_ADCENS); + 2956: 1065 lrw r3, 0x20000050 // 2968 + 2958: 3280 movi r2, 128 + 295a: 9320 ld.w r1, (r3, 0x0) + 295c: 4241 lsli r2, r2, 1 + 295e: 9168 ld.w r3, (r1, 0x20) + 2960: 68c8 and r3, r2 + 2962: 3b40 cmpnei r3, 0 + 2964: 0bfd bt 0x295e // 295e + 2966: 07f4 br 0x294e // 294e + 2968: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +0000296c : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 296c: 1064 lrw r3, 0x20000050 // 297c + 296e: 3202 movi r2, 2 + 2970: 9320 ld.w r1, (r3, 0x0) + 2972: 9168 ld.w r3, (r1, 0x20) + 2974: 68c8 and r3, r2 + 2976: 3b40 cmpnei r3, 0 + 2978: 0ffd bf 0x2972 // 2972 +} + 297a: 783c jmp r15 + 297c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002980 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2980: 200f addi r0, 16 + 2982: 1065 lrw r3, 0x20000050 // 2994 + 2984: 3201 movi r2, 1 + 2986: 9320 ld.w r1, (r3, 0x0) + 2988: 7080 lsl r2, r0 + 298a: 9168 ld.w r3, (r1, 0x20) + 298c: 68c8 and r3, r2 + 298e: 3b40 cmpnei r3, 0 + 2990: 0ffd bf 0x298a // 298a +} + 2992: 783c jmp r15 + 2994: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002998 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2998: 203f addi r0, 64 + 299a: 1064 lrw r3, 0x20000050 // 29a8 + 299c: 4002 lsli r0, r0, 2 + 299e: 9360 ld.w r3, (r3, 0x0) + 29a0: 600c addu r0, r3 + 29a2: 9000 ld.w r0, (r0, 0x0) + 29a4: 7401 zexth r0, r0 +} + 29a6: 783c jmp r15 + 29a8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +000029ac : + //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 ) +{ + 29ac: 14d4 push r4-r7, r15 + 29ae: 1422 subi r14, r14, 8 + 29b0: 1c08 addi r4, r14, 32 + 29b2: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29b4: 2d00 subi r5, 1 +{ + 29b6: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29b8: 10db lrw r6, 0x20000050 // 2a24 +{ + 29ba: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29be: 45aa lsli r5, r5, 10 + 29c0: 9680 ld.w r4, (r6, 0x0) + 29c2: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 29c4: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29c6: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 29c8: 081c bt 0x2a00 // 2a00 + { + ADC0->MR&=~CONTCV; //one short mode + 29ca: 9425 ld.w r1, (r4, 0x14) + 29cc: 4121 lsli r1, r1, 1 + 29ce: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 29d0: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 29d2: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 29d4: 4002 lsli r0, r0, 2 + 29d6: 9428 ld.w r1, (r4, 0x20) + 29d8: 6840 and r1, r0 + 29da: 3940 cmpnei r1, 0 + 29dc: 0bfd bt 0x29d6 // 29d6 + 29de: b861 st.w r3, (r14, 0x4) + 29e0: b840 st.w r2, (r14, 0x0) + 29e2: e3ffff85 bsr 0x28ec // 28ec + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 29e6: 3f40 cmpnei r7, 0 + 29e8: 9840 ld.w r2, (r14, 0x0) + 29ea: 9861 ld.w r3, (r14, 0x4) + 29ec: 0c16 bf 0x2a18 // 2a18 + { + ADC0->CR|=ADC12_10BITor12BIT; + 29ee: 9600 ld.w r0, (r6, 0x0) + 29f0: 9024 ld.w r1, (r0, 0x10) + 29f2: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 29f4: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 29f6: 9620 ld.w r1, (r6, 0x0) + 29f8: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 29fa: b166 st.w r3, (r1, 0x18) +} + 29fc: 1402 addi r14, r14, 8 + 29fe: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2a00: 3941 cmpnei r1, 1 + 2a02: 0bee bt 0x29de // 29de + ADC0->MR|=CONTCV; //Continuous mode + 2a04: 9425 ld.w r1, (r4, 0x14) + 2a06: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 2a08: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 2a0a: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 2a0c: 4002 lsli r0, r0, 2 + 2a0e: 9428 ld.w r1, (r4, 0x20) + 2a10: 6840 and r1, r0 + 2a12: 3940 cmpnei r1, 0 + 2a14: 0ffd bf 0x2a0e // 2a0e + 2a16: 07e4 br 0x29de // 29de + ADC0->CR&=~ADC12_10BITor12BIT; + 2a18: 9600 ld.w r0, (r6, 0x0) + 2a1a: 9024 ld.w r1, (r0, 0x10) + 2a1c: 4121 lsli r1, r1, 1 + 2a1e: 4921 lsri r1, r1, 1 + 2a20: 07ea br 0x29f4 // 29f4 + 2a22: 0000 bkpt + 2a24: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00002a28 : +//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) + 2a28: 3840 cmpnei r0, 0 + 2a2a: 0808 bt 0x2a3a // 2a3a + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 2a2c: 127c lrw r3, 0x20000050 // 2b9c + 2a2e: 123d lrw r1, 0x103c0 // 2ba0 + 2a30: 9340 ld.w r2, (r3, 0x0) + 2a32: 9264 ld.w r3, (r2, 0x10) + 2a34: 68c5 andn r3, r1 + 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); + 2a36: b264 st.w r3, (r2, 0x10) + } +} + 2a38: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 2a3a: 3841 cmpnei r0, 1 + 2a3c: 0810 bt 0x2a5c // 2a5c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2a3e: 127a lrw r3, 0x2000004c // 2ba4 + 2a40: 32f0 movi r2, 240 + 2a42: 9320 ld.w r1, (r3, 0x0) + 2a44: 9160 ld.w r3, (r1, 0x0) + 2a46: 4244 lsli r2, r2, 4 + 2a48: 68c9 andn r3, r2 + 2a4a: 3bab bseti r3, 11 + 2a4c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 2a4e: 1235 lrw r1, 0x103c0 // 2ba0 + 2a50: 1273 lrw r3, 0x20000050 // 2b9c + 2a52: 9340 ld.w r2, (r3, 0x0) + 2a54: 9264 ld.w r3, (r2, 0x10) + 2a56: 68c5 andn r3, r1 + 2a58: 3ba6 bseti r3, 6 + 2a5a: 07ee br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 2a5c: 3842 cmpnei r0, 2 + 2a5e: 0811 bt 0x2a80 // 2a80 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2a60: 1271 lrw r3, 0x2000004c // 2ba4 + 2a62: 32f0 movi r2, 240 + 2a64: 9320 ld.w r1, (r3, 0x0) + 2a66: 9160 ld.w r3, (r1, 0x0) + 2a68: 4244 lsli r2, r2, 4 + 2a6a: 68c9 andn r3, r2 + 2a6c: 3bab bseti r3, 11 + 2a6e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2a70: 122e lrw r1, 0x30103c0 // 2ba8 + 2a72: 126b lrw r3, 0x20000050 // 2b9c + 2a74: 9340 ld.w r2, (r3, 0x0) + 2a76: 9264 ld.w r3, (r2, 0x10) + 2a78: 68c5 andn r3, r1 + 2a7a: 3ba7 bseti r3, 7 + 2a7c: 3bb8 bseti r3, 24 + 2a7e: 07dc br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2a80: 3843 cmpnei r0, 3 + 2a82: 0811 bt 0x2aa4 // 2aa4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2a84: 1268 lrw r3, 0x2000004c // 2ba4 + 2a86: 32f0 movi r2, 240 + 2a88: 9320 ld.w r1, (r3, 0x0) + 2a8a: 9160 ld.w r3, (r1, 0x0) + 2a8c: 4244 lsli r2, r2, 4 + 2a8e: 68c9 andn r3, r2 + 2a90: 3bab bseti r3, 11 + 2a92: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 2a94: 1225 lrw r1, 0x30103c0 // 2ba8 + 2a96: 1262 lrw r3, 0x20000050 // 2b9c + 2a98: 9340 ld.w r2, (r3, 0x0) + 2a9a: 9264 ld.w r3, (r2, 0x10) + 2a9c: 68c5 andn r3, r1 + 2a9e: 1224 lrw r1, 0x30000c0 // 2bac + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2aa0: 6cc4 or r3, r1 + 2aa2: 07ca br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 2aa4: 3845 cmpnei r0, 5 + 2aa6: 0809 bt 0x2ab8 // 2ab8 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2aa8: 117d lrw r3, 0x20000050 // 2b9c + 2aaa: 1222 lrw r1, 0x503c0 // 2bb0 + 2aac: 9340 ld.w r2, (r3, 0x0) + 2aae: 9264 ld.w r3, (r2, 0x10) + 2ab0: 68c5 andn r3, r1 + 2ab2: 3ba8 bseti r3, 8 + 2ab4: 3bb2 bseti r3, 18 + 2ab6: 07c0 br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2ab8: 3846 cmpnei r0, 6 + 2aba: 0812 bt 0x2ade // 2ade + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2abc: 117a lrw r3, 0x2000004c // 2ba4 + 2abe: 32f0 movi r2, 240 + 2ac0: 9320 ld.w r1, (r3, 0x0) + 2ac2: 9160 ld.w r3, (r1, 0x0) + 2ac4: 4248 lsli r2, r2, 8 + 2ac6: 68c9 andn r3, r2 + 2ac8: 32b0 movi r2, 176 + 2aca: 4248 lsli r2, r2, 8 + 2acc: 6cc8 or r3, r2 + 2ace: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2ad0: 1134 lrw r1, 0x103c0 // 2ba0 + 2ad2: 1173 lrw r3, 0x20000050 // 2b9c + 2ad4: 9340 ld.w r2, (r3, 0x0) + 2ad6: 9264 ld.w r3, (r2, 0x10) + 2ad8: 68c5 andn r3, r1 + 2ada: 3ba9 bseti r3, 9 + 2adc: 07ad br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2ade: 3847 cmpnei r0, 7 + 2ae0: 0819 bt 0x2b12 // 2b12 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2ae2: 1171 lrw r3, 0x2000004c // 2ba4 + 2ae4: 31f0 movi r1, 240 + 2ae6: 9340 ld.w r2, (r3, 0x0) + 2ae8: 9260 ld.w r3, (r2, 0x0) + 2aea: 4128 lsli r1, r1, 8 + 2aec: 68c5 andn r3, r1 + 2aee: 31b0 movi r1, 176 + 2af0: 4128 lsli r1, r1, 8 + 2af2: 6cc4 or r3, r1 + 2af4: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2af6: 31f0 movi r1, 240 + 2af8: 9260 ld.w r3, (r2, 0x0) + 2afa: 4124 lsli r1, r1, 4 + 2afc: 68c5 andn r3, r1 + 2afe: 3bab bseti r3, 11 + 2b00: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 2b02: 1128 lrw r1, 0x103c0 // 2ba0 + 2b04: 1166 lrw r3, 0x20000050 // 2b9c + 2b06: 9340 ld.w r2, (r3, 0x0) + 2b08: 9264 ld.w r3, (r2, 0x10) + 2b0a: 68c5 andn r3, r1 + 2b0c: 3ba6 bseti r3, 6 + 2b0e: 3ba9 bseti r3, 9 + 2b10: 0793 br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 2b12: 3848 cmpnei r0, 8 + 2b14: 0818 bt 0x2b44 // 2b44 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2b16: 1164 lrw r3, 0x2000004c // 2ba4 + 2b18: 31f0 movi r1, 240 + 2b1a: 9340 ld.w r2, (r3, 0x0) + 2b1c: 9260 ld.w r3, (r2, 0x0) + 2b1e: 4128 lsli r1, r1, 8 + 2b20: 68c5 andn r3, r1 + 2b22: 31b0 movi r1, 176 + 2b24: 4128 lsli r1, r1, 8 + 2b26: 6cc4 or r3, r1 + 2b28: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2b2a: 31f0 movi r1, 240 + 2b2c: 9260 ld.w r3, (r2, 0x0) + 2b2e: 4124 lsli r1, r1, 4 + 2b30: 68c5 andn r3, r1 + 2b32: 3bab bseti r3, 11 + 2b34: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 2b36: 103d lrw r1, 0x30103c0 // 2ba8 + 2b38: 1079 lrw r3, 0x20000050 // 2b9c + 2b3a: 9340 ld.w r2, (r3, 0x0) + 2b3c: 9264 ld.w r3, (r2, 0x10) + 2b3e: 68c5 andn r3, r1 + 2b40: 103d lrw r1, 0x1000280 // 2bb4 + 2b42: 07af br 0x2aa0 // 2aa0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 2b44: 3849 cmpnei r0, 9 + 2b46: 0818 bt 0x2b76 // 2b76 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2b48: 1077 lrw r3, 0x2000004c // 2ba4 + 2b4a: 31f0 movi r1, 240 + 2b4c: 9340 ld.w r2, (r3, 0x0) + 2b4e: 9260 ld.w r3, (r2, 0x0) + 2b50: 4128 lsli r1, r1, 8 + 2b52: 68c5 andn r3, r1 + 2b54: 31b0 movi r1, 176 + 2b56: 4128 lsli r1, r1, 8 + 2b58: 6cc4 or r3, r1 + 2b5a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2b5c: 31f0 movi r1, 240 + 2b5e: 9260 ld.w r3, (r2, 0x0) + 2b60: 4124 lsli r1, r1, 4 + 2b62: 68c5 andn r3, r1 + 2b64: 3bab bseti r3, 11 + 2b66: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2b68: 1030 lrw r1, 0x30103c0 // 2ba8 + 2b6a: 106d lrw r3, 0x20000050 // 2b9c + 2b6c: 9340 ld.w r2, (r3, 0x0) + 2b6e: 9264 ld.w r3, (r2, 0x10) + 2b70: 68c5 andn r3, r1 + 2b72: 1032 lrw r1, 0x30002c0 // 2bb8 + 2b74: 0796 br 0x2aa0 // 2aa0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 2b76: 384b cmpnei r0, 11 + 2b78: 0b60 bt 0x2a38 // 2a38 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2b7a: 106b lrw r3, 0x2000004c // 2ba4 + 2b7c: 32f0 movi r2, 240 + 2b7e: 9320 ld.w r1, (r3, 0x0) + 2b80: 9160 ld.w r3, (r1, 0x0) + 2b82: 4248 lsli r2, r2, 8 + 2b84: 68c9 andn r3, r2 + 2b86: 32b0 movi r2, 176 + 2b88: 4248 lsli r2, r2, 8 + 2b8a: 6cc8 or r3, r2 + 2b8c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2b8e: 1029 lrw r1, 0x503c0 // 2bb0 + 2b90: 1063 lrw r3, 0x20000050 // 2b9c + 2b92: 9340 ld.w r2, (r3, 0x0) + 2b94: 9264 ld.w r3, (r2, 0x10) + 2b96: 68c5 andn r3, r1 + 2b98: 1029 lrw r1, 0x40300 // 2bbc + 2b9a: 0783 br 0x2aa0 // 2aa0 + 2b9c: 20000050 .long 0x20000050 + 2ba0: 000103c0 .long 0x000103c0 + 2ba4: 2000004c .long 0x2000004c + 2ba8: 030103c0 .long 0x030103c0 + 2bac: 030000c0 .long 0x030000c0 + 2bb0: 000503c0 .long 0x000503c0 + 2bb4: 01000280 .long 0x01000280 + 2bb8: 030002c0 .long 0x030002c0 + 2bbc: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002bc0 : +//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) +{ + 2bc0: 14d4 push r4-r7, r15 + 2bc2: 1421 subi r14, r14, 4 + 2bc4: b840 st.w r2, (r14, 0x0) + 2bc6: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2bc8: 125b lrw r2, 0x20000050 // 2d34 + 2bca: 92c0 ld.w r6, (r2, 0x0) + 2bcc: 3200 movi r2, 0 + 2bce: 4202 lsli r0, r2, 2 + 2bd0: 6018 addu r0, r6 + 2bd2: 908c ld.w r4, (r0, 0x30) + 2bd4: 2200 addi r2, 1 + 2bd6: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2bd8: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2bda: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2bdc: 0bf9 bt 0x2bce // 2bce + } + switch(ADC12_ADCINX) + 2bde: 3d0f cmphsi r5, 16 + 2be0: 0825 bt 0x2c2a // 2c2a + 2be2: 6c17 mov r0, r5 + 2be4: 1255 lrw r2, 0x2000004c // 2d38 + 2be6: 1296 lrw r4, 0x20000048 // 2d3c + 2be8: e3fff08a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2bec: 322c1408 .long 0x322c1408 + 2bf0: 4d474039 .long 0x4d474039 + 2bf4: 756d6559 .long 0x756d6559 + 2bf8: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2bfc: 9240 ld.w r2, (r2, 0x0) + 2bfe: 9200 ld.w r0, (r2, 0x0) + 2c00: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2c02: 9201 ld.w r0, (r2, 0x4) + 2c04: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 2c06: 9400 ld.w r0, (r4, 0x0) + 2c08: 9040 ld.w r2, (r0, 0x0) + 2c0a: 34f0 movi r4, 240 + 2c0c: 6891 andn r2, r4 + 2c0e: 3aa4 bseti r2, 4 + 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; + 2c10: b040 st.w r2, (r0, 0x0) + break; + 2c12: 040c br 0x2c2a // 2c2a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2c14: 9200 ld.w r0, (r2, 0x0) + 2c16: 9040 ld.w r2, (r0, 0x0) + 2c18: 370f movi r7, 15 + 2c1a: 689d andn r2, r7 + 2c1c: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2c1e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2c20: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2c22: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2c24: 9440 ld.w r2, (r4, 0x0) + 2c26: 9200 ld.w r0, (r2, 0x0) + 2c28: b200 st.w r0, (r2, 0x0) + 2c2a: 4362 lsli r3, r3, 2 + 2c2c: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 2c2e: 966c ld.w r3, (r6, 0x30) + 2c30: 3300 movi r3, 0 + 2c32: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2c34: 9860 ld.w r3, (r14, 0x0) + 2c36: 6c4c or r1, r3 + 2c38: 964c ld.w r2, (r6, 0x30) + 2c3a: 6d44 or r5, r1 + 2c3c: 6d48 or r5, r2 + 2c3e: b6ac st.w r5, (r6, 0x30) +} + 2c40: 1401 addi r14, r14, 4 + 2c42: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 2c44: 9200 ld.w r0, (r2, 0x0) + 2c46: 9040 ld.w r2, (r0, 0x0) + 2c48: 37f0 movi r7, 240 + 2c4a: 689d andn r2, r7 + 2c4c: 3aa4 bseti r2, 4 + 2c4e: 07e8 br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 2c50: 9200 ld.w r0, (r2, 0x0) + 2c52: 37f0 movi r7, 240 + 2c54: 9040 ld.w r2, (r0, 0x0) + 2c56: 47e8 lsli r7, r7, 8 + 2c58: 689d andn r2, r7 + 2c5a: 3aac bseti r2, 12 + 2c5c: 07e1 br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 2c5e: 9200 ld.w r0, (r2, 0x0) + 2c60: 37f0 movi r7, 240 + 2c62: 9040 ld.w r2, (r0, 0x0) + 2c64: 47f0 lsli r7, r7, 16 + 2c66: 689d andn r2, r7 + 2c68: 3ab4 bseti r2, 20 + 2c6a: 07da br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2c6c: 9200 ld.w r0, (r2, 0x0) + 2c6e: 37f0 movi r7, 240 + 2c70: 9040 ld.w r2, (r0, 0x0) + 2c72: 47f4 lsli r7, r7, 20 + 2c74: 689d andn r2, r7 + 2c76: 3ab8 bseti r2, 24 + 2c78: 07d3 br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2c7a: 9200 ld.w r0, (r2, 0x0) + 2c7c: 9040 ld.w r2, (r0, 0x0) + 2c7e: 4244 lsli r2, r2, 4 + 2c80: 4a44 lsri r2, r2, 4 + 2c82: 3abc bseti r2, 28 + 2c84: 07cd br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 2c86: 9240 ld.w r2, (r2, 0x0) + 2c88: 9200 ld.w r0, (r2, 0x0) + 2c8a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2c8c: 9201 ld.w r0, (r2, 0x4) + 2c8e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2c90: 9400 ld.w r0, (r4, 0x0) + 2c92: 34f0 movi r4, 240 + 2c94: 9040 ld.w r2, (r0, 0x0) + 2c96: 4484 lsli r4, r4, 4 + 2c98: 6891 andn r2, r4 + 2c9a: 3aa8 bseti r2, 8 + 2c9c: 07ba br 0x2c10 // 2c10 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2c9e: 9240 ld.w r2, (r2, 0x0) + 2ca0: 9200 ld.w r0, (r2, 0x0) + 2ca2: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2ca4: 9201 ld.w r0, (r2, 0x4) + 2ca6: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2ca8: 9400 ld.w r0, (r4, 0x0) + 2caa: 34f0 movi r4, 240 + 2cac: 9040 ld.w r2, (r0, 0x0) + 2cae: 4488 lsli r4, r4, 8 + 2cb0: 6891 andn r2, r4 + 2cb2: 3aac bseti r2, 12 + 2cb4: 07ae br 0x2c10 // 2c10 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 2cb6: 9200 ld.w r0, (r2, 0x0) + 2cb8: 9040 ld.w r2, (r0, 0x0) + 2cba: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2cbc: 9041 ld.w r2, (r0, 0x4) + 2cbe: 370f movi r7, 15 + 2cc0: 689d andn r2, r7 + 2cc2: 3aa0 bseti r2, 0 + 2cc4: 07af br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2cc6: 9200 ld.w r0, (r2, 0x0) + 2cc8: 9040 ld.w r2, (r0, 0x0) + 2cca: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2ccc: 9041 ld.w r2, (r0, 0x4) + 2cce: 37f0 movi r7, 240 + 2cd0: 689d andn r2, r7 + 2cd2: 3aa4 bseti r2, 4 + 2cd4: 07a7 br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2cd6: 9200 ld.w r0, (r2, 0x0) + 2cd8: 9040 ld.w r2, (r0, 0x0) + 2cda: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2cdc: 37f0 movi r7, 240 + 2cde: 9041 ld.w r2, (r0, 0x4) + 2ce0: 47e4 lsli r7, r7, 4 + 2ce2: 689d andn r2, r7 + 2ce4: 3aa8 bseti r2, 8 + 2ce6: 079e br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2ce8: 9200 ld.w r0, (r2, 0x0) + 2cea: 9040 ld.w r2, (r0, 0x0) + 2cec: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2cee: 37f0 movi r7, 240 + 2cf0: 9041 ld.w r2, (r0, 0x4) + 2cf2: 47e8 lsli r7, r7, 8 + 2cf4: 689d andn r2, r7 + 2cf6: 3aac bseti r2, 12 + 2cf8: 0795 br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2cfa: 9200 ld.w r0, (r2, 0x0) + 2cfc: 9040 ld.w r2, (r0, 0x0) + 2cfe: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2d00: 37f0 movi r7, 240 + 2d02: 9041 ld.w r2, (r0, 0x4) + 2d04: 47ec lsli r7, r7, 12 + 2d06: 689d andn r2, r7 + 2d08: 3ab0 bseti r2, 16 + 2d0a: 078c br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 2d0c: 9200 ld.w r0, (r2, 0x0) + 2d0e: 9040 ld.w r2, (r0, 0x0) + 2d10: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2d12: 37f0 movi r7, 240 + 2d14: 9041 ld.w r2, (r0, 0x4) + 2d16: 47f0 lsli r7, r7, 16 + 2d18: 689d andn r2, r7 + 2d1a: 3ab4 bseti r2, 20 + 2d1c: 0783 br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 2d1e: 9240 ld.w r2, (r2, 0x0) + 2d20: 9200 ld.w r0, (r2, 0x0) + 2d22: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2d24: 9201 ld.w r0, (r2, 0x4) + 2d26: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2d28: 9400 ld.w r0, (r4, 0x0) + 2d2a: 9040 ld.w r2, (r0, 0x0) + 2d2c: 340f movi r4, 15 + 2d2e: 6891 andn r2, r4 + 2d30: 3aa0 bseti r2, 0 + 2d32: 076f br 0x2c10 // 2c10 + 2d34: 20000050 .long 0x20000050 + 2d38: 2000004c .long 0x2000004c + 2d3c: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002d40 : + 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) +{ + 2d40: 14c4 push r4-r7 + 2d42: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2d44: 1165 lrw r3, 0x20000060 // 2dd8 + 2d46: 1186 lrw r4, 0x5a5a5a5a // 2ddc + 2d48: 9360 ld.w r3, (r3, 0x0) + 2d4a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2d4c: 3407 movi r4, 7 + 2d4e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2d50: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2d52: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2d54: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2d56: 9384 ld.w r4, (r3, 0x10) + 2d58: 3c40 cmpnei r4, 0 + 2d5a: 0bfe bt 0x2d56 // 2d56 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2d5c: 2102 addi r1, 3 + 2d5e: 4922 lsri r1, r1, 2 + 2d60: 4122 lsli r1, r1, 2 + 2d62: 6048 addu r1, r2 + 2d64: b820 st.w r1, (r14, 0x0) + 2d66: 5829 subu r1, r0, r2 + 2d68: b821 st.w r1, (r14, 0x4) + 2d6a: 9820 ld.w r1, (r14, 0x0) + 2d6c: 644a cmpne r2, r1 + 2d6e: 0826 bt 0x2dba // 2dba + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2d70: 3106 movi r1, 6 + SetUserKey; + 2d72: 105b lrw r2, 0x5a5a5a5a // 2ddc + 2d74: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2d76: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2d78: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2d7a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2d7c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2d7e: 9324 ld.w r1, (r3, 0x10) + 2d80: 3940 cmpnei r1, 0 + 2d82: 0bfe bt 0x2d7e // 2d7e + //Perform pre-programming 4 + SetUserKey; + 2d84: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2d86: 3201 movi r2, 1 + 2d88: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2d8a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2d8c: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2d8e: 934a ld.w r2, (r3, 0x28) + 2d90: 3a44 cmpnei r2, 4 + 2d92: 0bfe bt 0x2d8e // 2d8e + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2d94: 3102 movi r1, 2 + SetUserKey; + 2d96: 1052 lrw r2, 0x5a5a5a5a // 2ddc + 2d98: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2d9a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2d9c: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2d9e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2da0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2da2: 932a ld.w r1, (r3, 0x28) + 2da4: 3941 cmpnei r1, 1 + 2da6: 0bfe bt 0x2da2 // 2da2 + //Write page cache data to flash memory 6 + SetUserKey; + 2da8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2daa: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2dac: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2dae: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2db0: 934a ld.w r2, (r3, 0x28) + 2db2: 3a42 cmpnei r2, 2 + 2db4: 0bfe bt 0x2db0 // 2db0 +} + 2db6: 1402 addi r14, r14, 8 + 2db8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2dba: 82e0 ld.b r7, (r2, 0x0) + 2dbc: 8281 ld.b r4, (r2, 0x1) + 2dbe: 4488 lsli r4, r4, 8 + 2dc0: 8222 ld.b r1, (r2, 0x2) + 2dc2: 611c addu r4, r7 + 2dc4: 82a3 ld.b r5, (r2, 0x3) + 2dc6: 4130 lsli r1, r1, 16 + 2dc8: 98c1 ld.w r6, (r14, 0x4) + 2dca: 6050 addu r1, r4 + 2dcc: 45b8 lsli r5, r5, 24 + 2dce: 6188 addu r6, r2 + 2dd0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2dd2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2dd4: 2203 addi r2, 4 + 2dd6: 07ca br 0x2d6a // 2d6a + 2dd8: 20000060 .long 0x20000060 + 2ddc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002de0 : +//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) +{ + 2de0: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2dec: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2dee: 3b40 cmpnei r3, 0 + 2df0: 0c06 bf 0x2dfc // 2dfc + 2df2: 6d0f mov r4, r3 + 2df4: 6914 and r4, r5 + 2df6: 3c40 cmpnei r4, 0 + 2df8: 0802 bt 0x2dfc // 2dfc + RdStartAdd +=4; + 2dfa: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2dfc: 6d0f mov r4, r3 + 2dfe: 6914 and r4, r5 + 2e00: 6100 addu r4, r0 + 2e02: 8480 ld.b r4, (r4, 0x0) + 2e04: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002e0c : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2e0c: 33f8 movi r3, 248 + 2e0e: 4366 lsli r3, r3, 6 + 2e10: 115b lrw r2, 0x20000268 // 2efc + 2e12: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2e14: 3246 movi r2, 70 + 2e16: 117b lrw r3, 0x2000026e // 2f00 + 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 + 2e18: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2e1a: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2e1c: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2e1e: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2e20: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2e22: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2e24: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2e26: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2e28: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2e2a: 1157 lrw r2, 0x200004d4 // 2f04 + 2e2c: 8a22 ld.h r1, (r2, 0x4) + 2e2e: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2e30: 8a23 ld.h r1, (r2, 0x6) + 2e32: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2e34: 8a24 ld.h r1, (r2, 0x8) + 2e36: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2e38: 8a25 ld.h r1, (r2, 0xa) + 2e3a: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2e3c: 8a26 ld.h r1, (r2, 0xc) + 2e3e: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2e40: 3146 movi r1, 70 + 2e42: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2e44: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2e46: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2e48: 3128 movi r1, 40 + 2e4a: 1170 lrw r3, 0x20000292 // 2f08 + 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 + 2e4c: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2e4e: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2e50: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2e52: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2e54: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2e56: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2e58: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2e5a: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2e5c: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2e5e: 8a27 ld.h r1, (r2, 0xe) + 2e60: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2e62: 8a28 ld.h r1, (r2, 0x10) + 2e64: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2e66: 8a29 ld.h r1, (r2, 0x12) + 2e68: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2e6a: 8a2a ld.h r1, (r2, 0x14) + 2e6c: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2e6e: 8a2b ld.h r1, (r2, 0x16) + 2e70: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2e72: 3128 movi r1, 40 + 2e74: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2e76: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2e78: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2e7a: 8220 ld.b r1, (r2, 0x0) + 2e7c: 1164 lrw r3, 0x20000238 // 2f0c + 2e7e: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2e80: 8221 ld.b r1, (r2, 0x1) + 2e82: 1164 lrw r3, 0x20000240 // 2f10 + 2e84: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2e86: 3101 movi r1, 1 + 2e88: 1163 lrw r3, 0x20000241 // 2f14 + 2e8a: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2e8c: 3100 movi r1, 0 + 2e8e: 1163 lrw r3, 0x20000264 // 2f18 + 2e90: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2e92: 3106 movi r1, 6 + 2e94: 1162 lrw r3, 0x2000026c // 2f1c + 2e96: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2e98: 8223 ld.b r1, (r2, 0x3) + 2e9a: 1162 lrw r3, 0x20000265 // 2f20 + 2e9c: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2e9e: 9246 ld.w r2, (r2, 0x18) + 2ea0: 1161 lrw r3, 0x2000023c // 2f24 + 2ea2: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2ea4: 1141 lrw r2, 0xea5f // 2f28 + 2ea6: 1162 lrw r3, 0x200002b8 // 2f2c + 2ea8: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2eaa: 3200 movi r2, 0 + 2eac: 1161 lrw r3, 0x20000239 // 2f30 + 2eae: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2eb0: 3202 movi r2, 2 + 2eb2: 1161 lrw r3, 0x2000023a // 2f34 + 2eb4: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2eb6: 3232 movi r2, 50 + 2eb8: 1160 lrw r3, 0x20000290 // 2f38 + 2eba: a340 st.b r2, (r3, 0x0) +/**************************************************** +//TK special parameter define +*****************************************************/ + TK_PSEL_MODE=TK_PSEL_AVDD; //tk power sel:TK_PSEL_FVR/TK_PSEL_AVDD when select TK_PSEL_FVR PA0.2(TCH3) need a 104 cap + 2ebc: 3201 movi r2, 1 + 2ebe: 1160 lrw r3, 0x200002bc // 2f3c + 2ec0: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2ec2: 1160 lrw r3, 0x200002b6 // 2f40 + 2ec4: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3_6V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2ec6: 3203 movi r2, 3 + 2ec8: 107f lrw r3, 0x200002b4 // 2f44 + 2eca: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2ecc: 3204 movi r2, 4 + 2ece: 107f lrw r3, 0x20000242 // 2f48 + 2ed0: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2ed2: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2ed4: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2ed6: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2ed8: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2eda: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2edc: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2ede: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2ee0: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + 2ee2: 3206 movi r2, 6 + 2ee4: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + 2ee6: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + 2ee8: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + 2eea: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2eec: 3207 movi r2, 7 + 2eee: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2ef0: 3204 movi r2, 4 + 2ef2: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2ef4: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2ef6: ab50 st.h r2, (r3, 0x20) + 2ef8: 783c jmp r15 + 2efa: 0000 bkpt + 2efc: 20000268 .long 0x20000268 + 2f00: 2000026e .long 0x2000026e + 2f04: 200004d4 .long 0x200004d4 + 2f08: 20000292 .long 0x20000292 + 2f0c: 20000238 .long 0x20000238 + 2f10: 20000240 .long 0x20000240 + 2f14: 20000241 .long 0x20000241 + 2f18: 20000264 .long 0x20000264 + 2f1c: 2000026c .long 0x2000026c + 2f20: 20000265 .long 0x20000265 + 2f24: 2000023c .long 0x2000023c + 2f28: 0000ea5f .long 0x0000ea5f + 2f2c: 200002b8 .long 0x200002b8 + 2f30: 20000239 .long 0x20000239 + 2f34: 2000023a .long 0x2000023a + 2f38: 20000290 .long 0x20000290 + 2f3c: 200002bc .long 0x200002bc + 2f40: 200002b6 .long 0x200002b6 + 2f44: 200002b4 .long 0x200002b4 + 2f48: 20000242 .long 0x20000242 + +Disassembly of section .text.CORET_DeInit: + +00002f4c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2f4c: 1065 lrw r3, 0x20000064 // 2f60 + 2f4e: 3204 movi r2, 4 + 2f50: 9360 ld.w r3, (r3, 0x0) + 2f52: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2f54: 3200 movi r2, 0 + 2f56: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2f58: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2f5a: b347 st.w r2, (r3, 0x1c) +} + 2f5c: 783c jmp r15 + 2f5e: 0000 bkpt + 2f60: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002f64 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2f64: 1064 lrw r3, 0x20000064 // 2f74 + 2f66: 3200 movi r2, 0 + 2f68: 9360 ld.w r3, (r3, 0x0) + 2f6a: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2f6c: 3201 movi r2, 1 + 2f6e: 1063 lrw r3, 0xe000e100 // 2f78 + 2f70: b340 st.w r2, (r3, 0x0) +} + 2f72: 783c jmp r15 + 2f74: 20000064 .long 0x20000064 + 2f78: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002f7c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2f7c: 1063 lrw r3, 0x20000064 // 2f88 + 2f7e: 9340 ld.w r2, (r3, 0x0) + 2f80: 9264 ld.w r3, (r2, 0x10) + 2f82: 3ba0 bseti r3, 0 + 2f84: b264 st.w r3, (r2, 0x10) +} + 2f86: 783c jmp r15 + 2f88: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002f8c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2f8c: 1063 lrw r3, 0x20000064 // 2f98 + 2f8e: 9340 ld.w r2, (r3, 0x0) + 2f90: 9264 ld.w r3, (r2, 0x10) + 2f92: 3b82 bclri r3, 2 + 2f94: b264 st.w r3, (r2, 0x10) +} + 2f96: 783c jmp r15 + 2f98: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002f9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2f9c: 1063 lrw r3, 0x20000064 // 2fa8 + 2f9e: 9340 ld.w r2, (r3, 0x0) + 2fa0: 9264 ld.w r3, (r2, 0x10) + 2fa2: 3ba1 bseti r3, 1 + 2fa4: b264 st.w r3, (r2, 0x10) +} + 2fa6: 783c jmp r15 + 2fa8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002fac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2fac: 1063 lrw r3, 0x20000064 // 2fb8 + 2fae: 3200 movi r2, 0 + 2fb0: 9360 ld.w r3, (r3, 0x0) + 2fb2: b346 st.w r2, (r3, 0x18) +} + 2fb4: 783c jmp r15 + 2fb6: 0000 bkpt + 2fb8: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002fbc
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2fbc: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2fbe: e00000f9 bsr 0x31b0 // 31b0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2fc2: 1072 lrw r3, 0x20000524 // 3008 + 2fc4: 8340 ld.b r2, (r3, 0x0) + 2fc6: 1032 lrw r1, 0xa8a8 // 300c + 2fc8: 3000 movi r0, 0 + 2fca: e000089f bsr 0x4108 // 4108 + + TemCtrl_Init(); + 2fce: e0001ded bsr 0x6ba8 // 6ba8 + DisPlay_Init(); + 2fd2: e000230d bsr 0x75ec // 75ec + Debug_Init(); + 2fd6: e000258f bsr 0x7af4 // 7af4 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2fda: e3fff7c7 bsr 0x1f68 // 1f68 + + UART2_TASK(); + 2fde: e000070b bsr 0x3df4 // 3df4 + + Touch_Key_Task(); + 2fe2: e0000adb bsr 0x4598 // 4598 + + TemCtrl_Pro(); + 2fe6: e0001f99 bsr 0x6f18 // 6f18 + + DisPlay_Task(); + 2fea: e0002311 bsr 0x760c // 760c + + BUS485Send_Task(); + 2fee: e0000825 bsr 0x4038 // 4038 + + HT1621_Refresh_Task(); + 2ff2: e0001c55 bsr 0x689c // 689c + + ADC_Sample_Task(); + 2ff6: e000115b bsr 0x52ac // 52ac + + Debug_Task(); + 2ffa: e00025f1 bsr 0x7bdc // 7bdc + + RLY_Direct_Control(); + 2ffe: e000268b bsr 0x7d14 // 7d14 + + Tm1812_Task(); + 3002: e0001693 bsr 0x5d28 // 5d28 + 3006: 07ea br 0x2fda // 2fda + 3008: 20000524 .long 0x20000524 + 300c: 0000a8a8 .long 0x0000a8a8 + +Disassembly of section .text.delay_nms: + +00003010 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 3010: 14d0 push r15 + 3012: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 3014: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 3016: 3300 movi r3, 0 + j = 50* t; + 3018: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 301a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 301c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 301e: b860 st.w r3, (r14, 0x0) + 3020: 9840 ld.w r2, (r14, 0x0) + 3022: 9861 ld.w r3, (r14, 0x4) + 3024: 64c8 cmphs r2, r3 + 3026: 0c03 bf 0x302c // 302c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 3028: 1403 addi r14, r14, 12 + 302a: 1490 pop r15 + k++; + 302c: 9862 ld.w r3, (r14, 0x8) + 302e: 2300 addi r3, 1 + 3030: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 3032: e3fff79b bsr 0x1f68 // 1f68 + for ( i = 0; i < j; i++ ) + 3036: 9860 ld.w r3, (r14, 0x0) + 3038: 2300 addi r3, 1 + 303a: 07f2 br 0x301e // 301e + +Disassembly of section .text.delay_nus: + +0000303c : +void delay_nus(unsigned int t) +{ + 303c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 303e: 3300 movi r3, 0 + 3040: b862 st.w r3, (r14, 0x8) + j = 1* t; + 3042: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 3044: b860 st.w r3, (r14, 0x0) + 3046: 9840 ld.w r2, (r14, 0x0) + 3048: 9861 ld.w r3, (r14, 0x4) + 304a: 64c8 cmphs r2, r3 + 304c: 0c03 bf 0x3052 // 3052 + { + k++; + } +} + 304e: 1403 addi r14, r14, 12 + 3050: 783c jmp r15 + k++; + 3052: 9862 ld.w r3, (r14, 0x8) + 3054: 2300 addi r3, 1 + 3056: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 3058: 9860 ld.w r3, (r14, 0x0) + 305a: 2300 addi r3, 1 + 305c: 07f4 br 0x3044 // 3044 + +Disassembly of section .text.GPIO_CONFIG: + +00003060 : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 3060: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 3062: 1181 lrw r4, 0x2000004c // 30e4 + 3064: 310e movi r1, 14 + 3066: 9400 ld.w r0, (r4, 0x0) + 3068: e3fff8e6 bsr 0x2234 // 2234 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 306c: 320e movi r2, 14 + 306e: 310e movi r1, 14 + 3070: 3000 movi r0, 0 + 3072: e3fff8f3 bsr 0x2258 // 2258 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 3076: 300e movi r0, 14 + 3078: e3fff976 bsr 0x2364 // 2364 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 307c: 3180 movi r1, 128 + 307e: 3200 movi r2, 0 + 3080: 4127 lsli r1, r1, 7 + 3082: 3001 movi r0, 1 + 3084: e3fff7b4 bsr 0x1fec // 1fec + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 3088: 3180 movi r1, 128 + 308a: 4127 lsli r1, r1, 7 + 308c: 3001 movi r0, 1 + 308e: e3fff7cf bsr 0x202c // 202c + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 3092: 3180 movi r1, 128 + 3094: 9400 ld.w r0, (r4, 0x0) + 3096: 4127 lsli r1, r1, 7 + 3098: e3fff7e4 bsr 0x2060 // 2060 +// GPIO_Init(GPIOA0,14,Output); +// GPIO_Write_Low(GPIOA0,14); +//// GPIO_Write_High(GPIOA0,14); + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 309c: 1093 lrw r4, 0x20000048 // 30e8 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 309e: e3fff7eb bsr 0x2074 // 2074 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 30a2: 9400 ld.w r0, (r4, 0x0) + 30a4: 3105 movi r1, 5 + 30a6: e3fff8c7 bsr 0x2234 // 2234 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 30aa: 3205 movi r2, 5 + 30ac: 3105 movi r1, 5 + 30ae: 3002 movi r0, 2 + 30b0: e3fff8d4 bsr 0x2258 // 2258 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 30b4: 3005 movi r0, 5 + 30b6: e3fff9d5 bsr 0x2460 // 2460 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 30ba: 3201 movi r2, 1 + 30bc: 3120 movi r1, 32 + 30be: 3001 movi r0, 1 + 30c0: e3fff796 bsr 0x1fec // 1fec + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 30c4: 3200 movi r2, 0 + 30c6: 3120 movi r1, 32 + 30c8: 3001 movi r0, 1 + 30ca: e3fff791 bsr 0x1fec // 1fec + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 30ce: 3120 movi r1, 32 + 30d0: 3001 movi r0, 1 + 30d2: e3fff7ad bsr 0x202c // 202c + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 30d6: 9400 ld.w r0, (r4, 0x0) + 30d8: 3120 movi r1, 32 + 30da: e3fff7c3 bsr 0x2060 // 2060 + EXI3_Int_Enable(); + 30de: e3fff7c3 bsr 0x2064 // 2064 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 30e2: 1491 pop r4, r15 + 30e4: 2000004c .long 0x2000004c + 30e8: 20000048 .long 0x20000048 + +Disassembly of section .text.BT_CONFIG: + +000030ec : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 30ec: 14d2 push r4-r5, r15 + 30ee: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 30f0: 1095 lrw r4, 0x20000008 // 3144 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 30f2: 3500 movi r5, 0 + BT_DeInit(BT1); + 30f4: 9400 ld.w r0, (r4, 0x0) + 30f6: e3fffa19 bsr 0x2528 // 2528 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 30fa: 9400 ld.w r0, (r4, 0x0) + 30fc: b8a1 st.w r5, (r14, 0x4) + 30fe: b8a0 st.w r5, (r14, 0x0) + 3100: 3308 movi r3, 8 + 3102: 3200 movi r2, 0 + 3104: 3101 movi r1, 1 + 3106: e3fffa28 bsr 0x2556 // 2556 + 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); + 310a: 3380 movi r3, 128 + 310c: 4363 lsli r3, r3, 3 + 310e: b861 st.w r3, (r14, 0x4) + 3110: 9400 ld.w r0, (r4, 0x0) + 3112: 3300 movi r3, 0 + 3114: b8a3 st.w r5, (r14, 0xc) + 3116: b8a2 st.w r5, (r14, 0x8) + 3118: b8a0 st.w r5, (r14, 0x0) + 311a: 3200 movi r2, 0 + 311c: 3180 movi r1, 128 + 311e: e3fffa28 bsr 0x256e // 256e + BT_Period_CMP_Write(BT1,4780,1); + 3122: 3201 movi r2, 1 + 3124: 1029 lrw r1, 0x12ac // 3148 + 3126: 9400 ld.w r0, (r4, 0x0) + 3128: e3fffa39 bsr 0x259a // 259a + BT_Start(BT1); + 312c: 9400 ld.w r0, (r4, 0x0) + 312e: e3fffa0b bsr 0x2544 // 2544 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 3132: 9400 ld.w r0, (r4, 0x0) + 3134: 3202 movi r2, 2 + 3136: 3101 movi r1, 1 + 3138: e3fffa34 bsr 0x25a0 // 25a0 + BT1_INT_ENABLE(); + 313c: e3fffa3c bsr 0x25b4 // 25b4 + +} + 3140: 1404 addi r14, r14, 16 + 3142: 1492 pop r4-r5, r15 + 3144: 20000008 .long 0x20000008 + 3148: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +0000314c : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 314c: 14d0 push r15 + 314e: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 3150: e3fff658 bsr 0x1e00 // 1e00 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 3154: 3101 movi r1, 1 + 3156: 3001 movi r0, 1 + 3158: e3fff67a bsr 0x1e4c // 1e4c + //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 + 315c: 3000 movi r0, 0 + 315e: e3fff6d3 bsr 0x1f04 // 1f04 + 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 + 3162: 3180 movi r1, 128 + 3164: 3308 movi r3, 8 + 3166: 3200 movi r2, 0 + 3168: 4121 lsli r1, r1, 1 + 316a: 3002 movi r0, 2 + 316c: e3fff688 bsr 0x1e7c // 1e7c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 3170: 30c0 movi r0, 192 + 3172: 3118 movi r1, 24 + 3174: 4002 lsli r0, r0, 2 + 3176: e3fff703 bsr 0x1f7c // 1f7c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 317a: 3001 movi r0, 1 + 317c: e3fff6d8 bsr 0x1f2c // 1f2c + SYSCON_IWDCNT_Reload(); //reload WDT + 3180: e3fff6f4 bsr 0x1f68 // 1f68 + IWDT_Int_Enable(); + 3184: e3fff726 bsr 0x1fd0 // 1fd0 + //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 + 3188: 3340 movi r3, 64 + 318a: b860 st.w r3, (r14, 0x0) + 318c: 31c0 movi r1, 192 + 318e: 3380 movi r3, 128 + 3190: 4364 lsli r3, r3, 4 + 3192: 3200 movi r2, 0 + 3194: 4123 lsli r1, r1, 3 + 3196: 3000 movi r0, 0 + 3198: e3fff6fe bsr 0x1f94 // 1f94 + LVD_Int_Enable(); + 319c: e3fff70c bsr 0x1fb4 // 1fb4 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 31a0: e3fff772 bsr 0x2084 // 2084 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 31a4: 3000 movi r0, 0 + 31a6: e00037db bsr 0xa15c // a15c + +} + 31aa: 1401 addi r14, r14, 4 + 31ac: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000031b0 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 31b0: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 31b2: 1162 lrw r3, 0x2000005c // 3238 + Sys_RSR = 0x00000000; + 31b4: 1142 lrw r2, 0x200000b4 // 323c + 31b6: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 31b8: 9360 ld.w r3, (r3, 0x0) + 31ba: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 31bc: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 31be: 600c addu r0, r3 + 31c0: 9004 ld.w r0, (r0, 0x10) + 31c2: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 31c4: 105f lrw r2, 0x200000b0 // 3240 + 31c6: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 31c8: 3180 movi r1, 128 + 31ca: 4121 lsli r1, r1, 1 + 31cc: 604c addu r1, r3 + 31ce: 9120 ld.w r1, (r1, 0x0) + 31d0: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 31d2: 105d lrw r2, 0xfffffff // 3244 + 31d4: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 31d6: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 31d8: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 31da: 934c ld.w r2, (r3, 0x30) + 31dc: 6884 and r2, r1 + 31de: 3a40 cmpnei r2, 0 + 31e0: 0ffd bf 0x31da // 31da +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 31e2: e3ffffb5 bsr 0x314c // 314c + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 31e6: e000055b bsr 0x3c9c // 3c9c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 31ea: e3fff759 bsr 0x209c // 209c + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 31ee: 3101 movi r1, 1 + 31f0: 300f movi r0, 15 + 31f2: e3fff767 bsr 0x20c0 // 20c0 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 31f6: 3102 movi r1, 2 + 31f8: 3019 movi r0, 25 + 31fa: e3fff763 bsr 0x20c0 // 20c0 + + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 31fe: 3101 movi r1, 1 + 3200: 3016 movi r0, 22 + 3202: e3fff75f bsr 0x20c0 // 20c0 + + Set_INT_Priority(EXI4_IRQ, 1); //过零信号外部IO中断 + 3206: 3101 movi r1, 1 + 3208: 3017 movi r0, 23 + 320a: e3fff75b bsr 0x20c0 // 20c0 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 320e: e3fff771 bsr 0x20f0 // 20f0 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 3212: e000252b bsr 0x7c68 // 7c68 + + BT_CONFIG(); //BT initial + 3216: e3ffff6b bsr 0x30ec // 30ec + + GPIO_CONFIG(); + 321a: e3ffff23 bsr 0x3060 // 3060 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 321e: 102b lrw r1, 0x83ac // 3248 + 3220: 3002 movi r0, 2 + 3222: e0000543 bsr 0x3ca8 // 3ca8 + + HT1621_Init(); //显示驱动初始化 + 3226: e000169d bsr 0x5f60 // 5f60 + + TM1812_LED_Init(); + 322a: e0001629 bsr 0x5e7c // 5e7c + + ADC_Init(); + 322e: e0000f55 bsr 0x50d8 // 50d8 + + Touch_Key_Init(); + 3232: e0000773 bsr 0x4118 // 4118 +} + 3236: 1490 pop r15 + 3238: 2000005c .long 0x2000005c + 323c: 200000b4 .long 0x200000b4 + 3240: 200000b0 .long 0x200000b0 + 3244: 0fffffff .long 0x0fffffff + 3248: 000083ac .long 0x000083ac + +Disassembly of section .text.SYSCONIntHandler: + +0000324c : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 324c: 1460 nie + 324e: 1462 ipush + // ISR content ... + nop; + 3250: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3252: 117a lrw r3, 0x2000005c // 3338 + 3254: 3280 movi r2, 128 + 3256: 9360 ld.w r3, (r3, 0x0) + 3258: 60c8 addu r3, r2 + 325a: 9323 ld.w r1, (r3, 0xc) + 325c: 3001 movi r0, 1 + 325e: 6840 and r1, r0 + 3260: 3940 cmpnei r1, 0 + 3262: 0c04 bf 0x326a // 326a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3264: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3266: 1463 ipop + 3268: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 326a: 9323 ld.w r1, (r3, 0xc) + 326c: 3002 movi r0, 2 + 326e: 6840 and r1, r0 + 3270: 3940 cmpnei r1, 0 + 3272: 0bf9 bt 0x3264 // 3264 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3274: 9323 ld.w r1, (r3, 0xc) + 3276: 3008 movi r0, 8 + 3278: 6840 and r1, r0 + 327a: 3940 cmpnei r1, 0 + 327c: 0bf4 bt 0x3264 // 3264 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 327e: 9323 ld.w r1, (r3, 0xc) + 3280: 3010 movi r0, 16 + 3282: 6840 and r1, r0 + 3284: 3940 cmpnei r1, 0 + 3286: 0bef bt 0x3264 // 3264 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3288: 9323 ld.w r1, (r3, 0xc) + 328a: 6848 and r1, r2 + 328c: 3940 cmpnei r1, 0 + 328e: 0c03 bf 0x3294 // 3294 + SYSCON->ICR = CMD_ERR_ST; + 3290: b341 st.w r2, (r3, 0x4) +} + 3292: 07ea br 0x3266 // 3266 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3294: 3280 movi r2, 128 + 3296: 9323 ld.w r1, (r3, 0xc) + 3298: 4241 lsli r2, r2, 1 + 329a: 6848 and r1, r2 + 329c: 3940 cmpnei r1, 0 + 329e: 0bf9 bt 0x3290 // 3290 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 32a0: 3280 movi r2, 128 + 32a2: 9323 ld.w r1, (r3, 0xc) + 32a4: 4242 lsli r2, r2, 2 + 32a6: 6848 and r1, r2 + 32a8: 3940 cmpnei r1, 0 + 32aa: 0bf3 bt 0x3290 // 3290 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 32ac: 3280 movi r2, 128 + 32ae: 9323 ld.w r1, (r3, 0xc) + 32b0: 4243 lsli r2, r2, 3 + 32b2: 6848 and r1, r2 + 32b4: 3940 cmpnei r1, 0 + 32b6: 0bed bt 0x3290 // 3290 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 32b8: 3280 movi r2, 128 + 32ba: 9323 ld.w r1, (r3, 0xc) + 32bc: 4244 lsli r2, r2, 4 + 32be: 6848 and r1, r2 + 32c0: 3940 cmpnei r1, 0 + 32c2: 0c03 bf 0x32c8 // 32c8 + nop; + 32c4: 6c03 mov r0, r0 + 32c6: 07e5 br 0x3290 // 3290 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 32c8: 3280 movi r2, 128 + 32ca: 9323 ld.w r1, (r3, 0xc) + 32cc: 4245 lsli r2, r2, 5 + 32ce: 6848 and r1, r2 + 32d0: 3940 cmpnei r1, 0 + 32d2: 0bdf bt 0x3290 // 3290 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 32d4: 3280 movi r2, 128 + 32d6: 9323 ld.w r1, (r3, 0xc) + 32d8: 4246 lsli r2, r2, 6 + 32da: 6848 and r1, r2 + 32dc: 3940 cmpnei r1, 0 + 32de: 0bd9 bt 0x3290 // 3290 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 32e0: 3280 movi r2, 128 + 32e2: 9323 ld.w r1, (r3, 0xc) + 32e4: 4247 lsli r2, r2, 7 + 32e6: 6848 and r1, r2 + 32e8: 3940 cmpnei r1, 0 + 32ea: 0bd3 bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 32ec: 3280 movi r2, 128 + 32ee: 9323 ld.w r1, (r3, 0xc) + 32f0: 424b lsli r2, r2, 11 + 32f2: 6848 and r1, r2 + 32f4: 3940 cmpnei r1, 0 + 32f6: 0bcd bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 32f8: 3280 movi r2, 128 + 32fa: 9323 ld.w r1, (r3, 0xc) + 32fc: 424c lsli r2, r2, 12 + 32fe: 6848 and r1, r2 + 3300: 3940 cmpnei r1, 0 + 3302: 0bc7 bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3304: 3280 movi r2, 128 + 3306: 9323 ld.w r1, (r3, 0xc) + 3308: 424d lsli r2, r2, 13 + 330a: 6848 and r1, r2 + 330c: 3940 cmpnei r1, 0 + 330e: 0bc1 bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3310: 3280 movi r2, 128 + 3312: 9323 ld.w r1, (r3, 0xc) + 3314: 424e lsli r2, r2, 14 + 3316: 6848 and r1, r2 + 3318: 3940 cmpnei r1, 0 + 331a: 0bbb bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 331c: 3280 movi r2, 128 + 331e: 9323 ld.w r1, (r3, 0xc) + 3320: 424f lsli r2, r2, 15 + 3322: 6848 and r1, r2 + 3324: 3940 cmpnei r1, 0 + 3326: 0bb5 bt 0x3290 // 3290 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3328: 3280 movi r2, 128 + 332a: 9323 ld.w r1, (r3, 0xc) + 332c: 4256 lsli r2, r2, 22 + 332e: 6848 and r1, r2 + 3330: 3940 cmpnei r1, 0 + 3332: 0baf bt 0x3290 // 3290 + 3334: 0799 br 0x3266 // 3266 + 3336: 0000 bkpt + 3338: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +0000333c : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 333c: 1460 nie + 333e: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3340: 1078 lrw r3, 0x20000060 // 33a0 + 3342: 3101 movi r1, 1 + 3344: 9360 ld.w r3, (r3, 0x0) + 3346: 934b ld.w r2, (r3, 0x2c) + 3348: 6884 and r2, r1 + 334a: 3a40 cmpnei r2, 0 + 334c: 0c04 bf 0x3354 // 3354 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 334e: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3350: 1463 ipop + 3352: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3354: 934b ld.w r2, (r3, 0x2c) + 3356: 3102 movi r1, 2 + 3358: 6884 and r2, r1 + 335a: 3a40 cmpnei r2, 0 + 335c: 0bf9 bt 0x334e // 334e + else if(IFC->MISR&PEP_END_INT) + 335e: 934b ld.w r2, (r3, 0x2c) + 3360: 3104 movi r1, 4 + 3362: 6884 and r2, r1 + 3364: 3a40 cmpnei r2, 0 + 3366: 0bf4 bt 0x334e // 334e + else if(IFC->MISR&PROT_ERR_INT) + 3368: 3280 movi r2, 128 + 336a: 932b ld.w r1, (r3, 0x2c) + 336c: 4245 lsli r2, r2, 5 + 336e: 6848 and r1, r2 + 3370: 3940 cmpnei r1, 0 + 3372: 0c03 bf 0x3378 // 3378 + IFC->ICR=OVW_ERR_INT; + 3374: b34c st.w r2, (r3, 0x30) +} + 3376: 07ed br 0x3350 // 3350 + else if(IFC->MISR&UDEF_ERR_INT) + 3378: 3280 movi r2, 128 + 337a: 932b ld.w r1, (r3, 0x2c) + 337c: 4246 lsli r2, r2, 6 + 337e: 6848 and r1, r2 + 3380: 3940 cmpnei r1, 0 + 3382: 0bf9 bt 0x3374 // 3374 + else if(IFC->MISR&ADDR_ERR_INT) + 3384: 3280 movi r2, 128 + 3386: 932b ld.w r1, (r3, 0x2c) + 3388: 4247 lsli r2, r2, 7 + 338a: 6848 and r1, r2 + 338c: 3940 cmpnei r1, 0 + 338e: 0bf3 bt 0x3374 // 3374 + else if(IFC->MISR&OVW_ERR_INT) + 3390: 3280 movi r2, 128 + 3392: 932b ld.w r1, (r3, 0x2c) + 3394: 4248 lsli r2, r2, 8 + 3396: 6848 and r1, r2 + 3398: 3940 cmpnei r1, 0 + 339a: 0bed bt 0x3374 // 3374 + 339c: 07da br 0x3350 // 3350 + 339e: 0000 bkpt + 33a0: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +000033a4 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 33a4: 1460 nie + 33a6: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 33a8: 1078 lrw r3, 0x20000050 // 3408 + 33aa: 3101 movi r1, 1 + 33ac: 9360 ld.w r3, (r3, 0x0) + 33ae: 9348 ld.w r2, (r3, 0x20) + 33b0: 6884 and r2, r1 + 33b2: 3a40 cmpnei r2, 0 + 33b4: 0c04 bf 0x33bc // 33bc + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 33b6: 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; + } +} + 33b8: 1463 ipop + 33ba: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 33bc: 9348 ld.w r2, (r3, 0x20) + 33be: 3102 movi r1, 2 + 33c0: 6884 and r2, r1 + 33c2: 3a40 cmpnei r2, 0 + 33c4: 0bf9 bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 33c6: 9348 ld.w r2, (r3, 0x20) + 33c8: 3104 movi r1, 4 + 33ca: 6884 and r2, r1 + 33cc: 3a40 cmpnei r2, 0 + 33ce: 0bf4 bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 33d0: 9348 ld.w r2, (r3, 0x20) + 33d2: 3110 movi r1, 16 + 33d4: 6884 and r2, r1 + 33d6: 3a40 cmpnei r2, 0 + 33d8: 0bef bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 33da: 9348 ld.w r2, (r3, 0x20) + 33dc: 3120 movi r1, 32 + 33de: 6884 and r2, r1 + 33e0: 3a40 cmpnei r2, 0 + 33e2: 0bea bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 33e4: 9348 ld.w r2, (r3, 0x20) + 33e6: 3140 movi r1, 64 + 33e8: 6884 and r2, r1 + 33ea: 3a40 cmpnei r2, 0 + 33ec: 0be5 bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 33ee: 9348 ld.w r2, (r3, 0x20) + 33f0: 3180 movi r1, 128 + 33f2: 6884 and r2, r1 + 33f4: 3a40 cmpnei r2, 0 + 33f6: 0be0 bt 0x33b6 // 33b6 + 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 + 33f8: 3280 movi r2, 128 + 33fa: 9328 ld.w r1, (r3, 0x20) + 33fc: 4249 lsli r2, r2, 9 + 33fe: 6848 and r1, r2 + 3400: 3940 cmpnei r1, 0 + 3402: 0fdb bf 0x33b8 // 33b8 + ADC0->CSR = ADC12_SEQ_END0; + 3404: b347 st.w r2, (r3, 0x1c) +} + 3406: 07d9 br 0x33b8 // 33b8 + 3408: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +0000340c : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 340c: 1460 nie + 340e: 1462 ipush + 3410: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3412: 1387 lrw r4, 0x20000020 // 35ac + 3414: 3280 movi r2, 128 + 3416: 9460 ld.w r3, (r4, 0x0) + 3418: 60c8 addu r3, r2 + 341a: 9335 ld.w r1, (r3, 0x54) + 341c: 3001 movi r0, 1 + 341e: 6840 and r1, r0 + 3420: 3940 cmpnei r1, 0 + 3422: 0c03 bf 0x3428 // 3428 + 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; + 3424: b317 st.w r0, (r3, 0x5c) + 3426: 0424 br 0x346e // 346e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3428: 9335 ld.w r1, (r3, 0x54) + 342a: 3002 movi r0, 2 + 342c: 6840 and r1, r0 + 342e: 3940 cmpnei r1, 0 + 3430: 0bfa bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3432: 9335 ld.w r1, (r3, 0x54) + 3434: 3004 movi r0, 4 + 3436: 6840 and r1, r0 + 3438: 3940 cmpnei r1, 0 + 343a: 0bf5 bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 343c: 9335 ld.w r1, (r3, 0x54) + 343e: 3008 movi r0, 8 + 3440: 6840 and r1, r0 + 3442: 3940 cmpnei r1, 0 + 3444: 0bf0 bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3446: 9335 ld.w r1, (r3, 0x54) + 3448: 3010 movi r0, 16 + 344a: 6840 and r1, r0 + 344c: 3940 cmpnei r1, 0 + 344e: 0c1f bf 0x348c // 348c + EPT0->ICR=EPT_CAP_LD0; + 3450: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3452: 3200 movi r2, 0 + 3454: 3101 movi r1, 1 + 3456: 3000 movi r0, 0 + 3458: e3fff5ca bsr 0x1fec // 1fec + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 345c: 3201 movi r2, 1 + 345e: 3101 movi r1, 1 + 3460: 3001 movi r0, 1 + 3462: e3fff5c5 bsr 0x1fec // 1fec + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3466: 9460 ld.w r3, (r4, 0x0) + 3468: 934b ld.w r2, (r3, 0x2c) + 346a: 1272 lrw r3, 0x200002c4 // 35b0 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 346c: 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 + 346e: 9460 ld.w r3, (r4, 0x0) + 3470: 3280 movi r2, 128 + 3472: 60c8 addu r3, r2 + 3474: 932b ld.w r1, (r3, 0x2c) + 3476: 3001 movi r0, 1 + 3478: 6840 and r1, r0 + 347a: 3940 cmpnei r1, 0 + 347c: 0c61 bf 0x353e // 353e + { + 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; + 347e: 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; + } +} + 3480: d9ee2001 ld.w r15, (r14, 0x4) + 3484: 9880 ld.w r4, (r14, 0x0) + 3486: 1402 addi r14, r14, 8 + 3488: 1463 ipop + 348a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 348c: 9335 ld.w r1, (r3, 0x54) + 348e: 3020 movi r0, 32 + 3490: 6840 and r1, r0 + 3492: 3940 cmpnei r1, 0 + 3494: 0c10 bf 0x34b4 // 34b4 + EPT0->ICR=EPT_CAP_LD1; + 3496: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3498: 3200 movi r2, 0 + 349a: 3101 movi r1, 1 + 349c: 3001 movi r0, 1 + 349e: e3fff5a7 bsr 0x1fec // 1fec + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 34a2: 3201 movi r2, 1 + 34a4: 3101 movi r1, 1 + 34a6: 3000 movi r0, 0 + 34a8: e3fff5a2 bsr 0x1fec // 1fec + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 34ac: 9460 ld.w r3, (r4, 0x0) + 34ae: 934c ld.w r2, (r3, 0x30) + 34b0: 1261 lrw r3, 0x200002c0 // 35b4 + 34b2: 07dd br 0x346c // 346c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 34b4: 9335 ld.w r1, (r3, 0x54) + 34b6: 3040 movi r0, 64 + 34b8: 6840 and r1, r0 + 34ba: 3940 cmpnei r1, 0 + 34bc: 0bb4 bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 34be: 9335 ld.w r1, (r3, 0x54) + 34c0: 6848 and r1, r2 + 34c2: 3940 cmpnei r1, 0 + 34c4: 0c03 bf 0x34ca // 34ca + EPT0->ICR=EPT_CDD; + 34c6: b357 st.w r2, (r3, 0x5c) + 34c8: 07d3 br 0x346e // 346e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 34ca: 3280 movi r2, 128 + 34cc: 9335 ld.w r1, (r3, 0x54) + 34ce: 4241 lsli r2, r2, 1 + 34d0: 6848 and r1, r2 + 34d2: 3940 cmpnei r1, 0 + 34d4: 0bf9 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 34d6: 3280 movi r2, 128 + 34d8: 9335 ld.w r1, (r3, 0x54) + 34da: 4242 lsli r2, r2, 2 + 34dc: 6848 and r1, r2 + 34de: 3940 cmpnei r1, 0 + 34e0: 0bf3 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 34e2: 3280 movi r2, 128 + 34e4: 9335 ld.w r1, (r3, 0x54) + 34e6: 4243 lsli r2, r2, 3 + 34e8: 6848 and r1, r2 + 34ea: 3940 cmpnei r1, 0 + 34ec: 0bed bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 34ee: 3280 movi r2, 128 + 34f0: 9335 ld.w r1, (r3, 0x54) + 34f2: 4244 lsli r2, r2, 4 + 34f4: 6848 and r1, r2 + 34f6: 3940 cmpnei r1, 0 + 34f8: 0be7 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 34fa: 3280 movi r2, 128 + 34fc: 9335 ld.w r1, (r3, 0x54) + 34fe: 4245 lsli r2, r2, 5 + 3500: 6848 and r1, r2 + 3502: 3940 cmpnei r1, 0 + 3504: 0be1 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3506: 3280 movi r2, 128 + 3508: 9335 ld.w r1, (r3, 0x54) + 350a: 4246 lsli r2, r2, 6 + 350c: 6848 and r1, r2 + 350e: 3940 cmpnei r1, 0 + 3510: 0bdb bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3512: 3280 movi r2, 128 + 3514: 9335 ld.w r1, (r3, 0x54) + 3516: 4247 lsli r2, r2, 7 + 3518: 6848 and r1, r2 + 351a: 3940 cmpnei r1, 0 + 351c: 0bd5 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 351e: 3280 movi r2, 128 + 3520: 9335 ld.w r1, (r3, 0x54) + 3522: 4248 lsli r2, r2, 8 + 3524: 6848 and r1, r2 + 3526: 3940 cmpnei r1, 0 + 3528: 0bcf bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 352a: 3280 movi r2, 128 + 352c: 9335 ld.w r1, (r3, 0x54) + 352e: 4249 lsli r2, r2, 9 + 3530: 6848 and r1, r2 + 3532: 3940 cmpnei r1, 0 + 3534: 0f9d bf 0x346e // 346e + EPT0->ICR=EPT_PEND; + 3536: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3538: e3fff98c bsr 0x2850 // 2850 + 353c: 0799 br 0x346e // 346e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 353e: 932b ld.w r1, (r3, 0x2c) + 3540: 3002 movi r0, 2 + 3542: 6840 and r1, r0 + 3544: 3940 cmpnei r1, 0 + 3546: 0b9c bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3548: 932b ld.w r1, (r3, 0x2c) + 354a: 3004 movi r0, 4 + 354c: 6840 and r1, r0 + 354e: 3940 cmpnei r1, 0 + 3550: 0b97 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3552: 932b ld.w r1, (r3, 0x2c) + 3554: 3008 movi r0, 8 + 3556: 6840 and r1, r0 + 3558: 3940 cmpnei r1, 0 + 355a: 0b92 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 355c: 932b ld.w r1, (r3, 0x2c) + 355e: 3010 movi r0, 16 + 3560: 6840 and r1, r0 + 3562: 3940 cmpnei r1, 0 + 3564: 0b8d bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3566: 932b ld.w r1, (r3, 0x2c) + 3568: 3020 movi r0, 32 + 356a: 6840 and r1, r0 + 356c: 3940 cmpnei r1, 0 + 356e: 0b88 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3570: 932b ld.w r1, (r3, 0x2c) + 3572: 3040 movi r0, 64 + 3574: 6840 and r1, r0 + 3576: 3940 cmpnei r1, 0 + 3578: 0b83 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 357a: 932b ld.w r1, (r3, 0x2c) + 357c: 6848 and r1, r2 + 357e: 3940 cmpnei r1, 0 + 3580: 0c03 bf 0x3586 // 3586 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3582: b34d st.w r2, (r3, 0x34) +} + 3584: 077e br 0x3480 // 3480 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3586: 3280 movi r2, 128 + 3588: 932b ld.w r1, (r3, 0x2c) + 358a: 4241 lsli r2, r2, 1 + 358c: 6848 and r1, r2 + 358e: 3940 cmpnei r1, 0 + 3590: 0bf9 bt 0x3582 // 3582 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3592: 3280 movi r2, 128 + 3594: 932b ld.w r1, (r3, 0x2c) + 3596: 4242 lsli r2, r2, 2 + 3598: 6848 and r1, r2 + 359a: 3940 cmpnei r1, 0 + 359c: 0bf3 bt 0x3582 // 3582 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 359e: 3280 movi r2, 128 + 35a0: 932b ld.w r1, (r3, 0x2c) + 35a2: 4243 lsli r2, r2, 3 + 35a4: 6848 and r1, r2 + 35a6: 3940 cmpnei r1, 0 + 35a8: 0bed bt 0x3582 // 3582 + 35aa: 076b br 0x3480 // 3480 + 35ac: 20000020 .long 0x20000020 + 35b0: 200002c4 .long 0x200002c4 + 35b4: 200002c0 .long 0x200002c0 + +Disassembly of section .text.WWDTHandler: + +000035b8 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 35b8: 1460 nie + 35ba: 1462 ipush + 35bc: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 35be: 10ab lrw r5, 0x20000010 // 35e8 + 35c0: 3401 movi r4, 1 + 35c2: 9560 ld.w r3, (r5, 0x0) + 35c4: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 35c6: 30ff movi r0, 255 + 35c8: e3fff7a8 bsr 0x2518 // 2518 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 35cc: 9540 ld.w r2, (r5, 0x0) + 35ce: 9263 ld.w r3, (r2, 0xc) + 35d0: 68d0 and r3, r4 + 35d2: 3b40 cmpnei r3, 0 + 35d4: 0c02 bf 0x35d8 // 35d8 + { + WWDT->ICR = WWDT_EVI; + 35d6: b285 st.w r4, (r2, 0x14) + } +} + 35d8: d9ee2002 ld.w r15, (r14, 0x8) + 35dc: 98a1 ld.w r5, (r14, 0x4) + 35de: 9880 ld.w r4, (r14, 0x0) + 35e0: 1403 addi r14, r14, 12 + 35e2: 1463 ipop + 35e4: 1461 nir + 35e6: 0000 bkpt + 35e8: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000035ec : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 35ec: 1460 nie + 35ee: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 35f0: 107e lrw r3, 0x20000024 // 3668 + 35f2: 3101 movi r1, 1 + 35f4: 9360 ld.w r3, (r3, 0x0) + 35f6: 237f addi r3, 128 + 35f8: 9355 ld.w r2, (r3, 0x54) + 35fa: 6884 and r2, r1 + 35fc: 3a40 cmpnei r2, 0 + 35fe: 0c04 bf 0x3606 // 3606 + { + 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; + 3600: 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; + } +} + 3602: 1463 ipop + 3604: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3606: 9355 ld.w r2, (r3, 0x54) + 3608: 3102 movi r1, 2 + 360a: 6884 and r2, r1 + 360c: 3a40 cmpnei r2, 0 + 360e: 0bf9 bt 0x3600 // 3600 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3610: 9355 ld.w r2, (r3, 0x54) + 3612: 3110 movi r1, 16 + 3614: 6884 and r2, r1 + 3616: 3a40 cmpnei r2, 0 + 3618: 0bf4 bt 0x3600 // 3600 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 361a: 9355 ld.w r2, (r3, 0x54) + 361c: 3120 movi r1, 32 + 361e: 6884 and r2, r1 + 3620: 3a40 cmpnei r2, 0 + 3622: 0bef bt 0x3600 // 3600 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3624: 3280 movi r2, 128 + 3626: 9335 ld.w r1, (r3, 0x54) + 3628: 4241 lsli r2, r2, 1 + 362a: 6848 and r1, r2 + 362c: 3940 cmpnei r1, 0 + 362e: 0c03 bf 0x3634 // 3634 + GPT0->ICR = GPT_INT_PEND; + 3630: b357 st.w r2, (r3, 0x5c) +} + 3632: 07e8 br 0x3602 // 3602 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3634: 3280 movi r2, 128 + 3636: 9335 ld.w r1, (r3, 0x54) + 3638: 4242 lsli r2, r2, 2 + 363a: 6848 and r1, r2 + 363c: 3940 cmpnei r1, 0 + 363e: 0bf9 bt 0x3630 // 3630 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3640: 3280 movi r2, 128 + 3642: 9335 ld.w r1, (r3, 0x54) + 3644: 4243 lsli r2, r2, 3 + 3646: 6848 and r1, r2 + 3648: 3940 cmpnei r1, 0 + 364a: 0bf3 bt 0x3630 // 3630 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 364c: 3280 movi r2, 128 + 364e: 9335 ld.w r1, (r3, 0x54) + 3650: 4244 lsli r2, r2, 4 + 3652: 6848 and r1, r2 + 3654: 3940 cmpnei r1, 0 + 3656: 0bed bt 0x3630 // 3630 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3658: 3280 movi r2, 128 + 365a: 9335 ld.w r1, (r3, 0x54) + 365c: 4249 lsli r2, r2, 9 + 365e: 6848 and r1, r2 + 3660: 3940 cmpnei r1, 0 + 3662: 0be7 bt 0x3630 // 3630 + 3664: 07cf br 0x3602 // 3602 + 3666: 0000 bkpt + 3668: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +0000366c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 366c: 1460 nie + 366e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3670: 1079 lrw r3, 0x20000018 // 36d4 + 3672: 3101 movi r1, 1 + 3674: 9360 ld.w r3, (r3, 0x0) + 3676: 934a ld.w r2, (r3, 0x28) + 3678: 6884 and r2, r1 + 367a: 3a40 cmpnei r2, 0 + 367c: 0c14 bf 0x36a4 // 36a4 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 367e: 1057 lrw r2, 0xca53 // 36d8 + RTC->ICR=ALRA_INT; + 3680: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3682: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3684: 9342 ld.w r2, (r3, 0x8) + 3686: 6c84 or r2, r1 + 3688: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 368a: 3280 movi r2, 128 + 368c: 424d lsli r2, r2, 13 + 368e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3690: 3102 movi r1, 2 + 3692: 9342 ld.w r2, (r3, 0x8) + 3694: 6884 and r2, r1 + 3696: 3a40 cmpnei r2, 0 + 3698: 0bfd bt 0x3692 // 3692 + RTC->CR &= ~0x1; + 369a: 9342 ld.w r2, (r3, 0x8) + 369c: 3a80 bclri r2, 0 + 369e: 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; + } +} + 36a0: 1463 ipop + 36a2: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 36a4: 934a ld.w r2, (r3, 0x28) + 36a6: 3102 movi r1, 2 + 36a8: 6884 and r2, r1 + 36aa: 3a40 cmpnei r2, 0 + 36ac: 0c03 bf 0x36b2 // 36b2 + RTC->ICR=RTC_TRGEV1_INT; + 36ae: b32b st.w r1, (r3, 0x2c) +} + 36b0: 07f8 br 0x36a0 // 36a0 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 36b2: 934a ld.w r2, (r3, 0x28) + 36b4: 3104 movi r1, 4 + 36b6: 6884 and r2, r1 + 36b8: 3a40 cmpnei r2, 0 + 36ba: 0bfa bt 0x36ae // 36ae + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 36bc: 934a ld.w r2, (r3, 0x28) + 36be: 3108 movi r1, 8 + 36c0: 6884 and r2, r1 + 36c2: 3a40 cmpnei r2, 0 + 36c4: 0bf5 bt 0x36ae // 36ae + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 36c6: 934a ld.w r2, (r3, 0x28) + 36c8: 3110 movi r1, 16 + 36ca: 6884 and r2, r1 + 36cc: 3a40 cmpnei r2, 0 + 36ce: 0bf0 bt 0x36ae // 36ae + 36d0: 07e8 br 0x36a0 // 36a0 + 36d2: 0000 bkpt + 36d4: 20000018 .long 0x20000018 + 36d8: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000036dc : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 36dc: 1460 nie + 36de: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 36e0: 106d lrw r3, 0x20000040 // 3714 + 36e2: 3102 movi r1, 2 + 36e4: 9360 ld.w r3, (r3, 0x0) + 36e6: 9343 ld.w r2, (r3, 0xc) + 36e8: 6884 and r2, r1 + 36ea: 3a40 cmpnei r2, 0 + 36ec: 0c03 bf 0x36f2 // 36f2 + { + 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; + 36ee: b323 st.w r1, (r3, 0xc) + } +} + 36f0: 0410 br 0x3710 // 3710 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 36f2: 9343 ld.w r2, (r3, 0xc) + 36f4: 3101 movi r1, 1 + 36f6: 6884 and r2, r1 + 36f8: 3a40 cmpnei r2, 0 + 36fa: 0bfa bt 0x36ee // 36ee + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 36fc: 9343 ld.w r2, (r3, 0xc) + 36fe: 3108 movi r1, 8 + 3700: 6884 and r2, r1 + 3702: 3a40 cmpnei r2, 0 + 3704: 0bf5 bt 0x36ee // 36ee + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3706: 9343 ld.w r2, (r3, 0xc) + 3708: 3104 movi r1, 4 + 370a: 6884 and r2, r1 + 370c: 3a40 cmpnei r2, 0 + 370e: 0bf0 bt 0x36ee // 36ee +} + 3710: 1463 ipop + 3712: 1461 nir + 3714: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003718 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3718: 1460 nie + 371a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 371c: 106d lrw r3, 0x2000003c // 3750 + 371e: 3102 movi r1, 2 + 3720: 9360 ld.w r3, (r3, 0x0) + 3722: 9343 ld.w r2, (r3, 0xc) + 3724: 6884 and r2, r1 + 3726: 3a40 cmpnei r2, 0 + 3728: 0c03 bf 0x372e // 372e + { + 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; + 372a: b323 st.w r1, (r3, 0xc) + } +} + 372c: 0410 br 0x374c // 374c + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 372e: 9343 ld.w r2, (r3, 0xc) + 3730: 3101 movi r1, 1 + 3732: 6884 and r2, r1 + 3734: 3a40 cmpnei r2, 0 + 3736: 0bfa bt 0x372a // 372a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3738: 9343 ld.w r2, (r3, 0xc) + 373a: 3108 movi r1, 8 + 373c: 6884 and r2, r1 + 373e: 3a40 cmpnei r2, 0 + 3740: 0bf5 bt 0x372a // 372a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3742: 9343 ld.w r2, (r3, 0xc) + 3744: 3104 movi r1, 4 + 3746: 6884 and r2, r1 + 3748: 3a40 cmpnei r2, 0 + 374a: 0bf0 bt 0x372a // 372a +} + 374c: 1463 ipop + 374e: 1461 nir + 3750: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003754 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3754: 1460 nie + 3756: 1462 ipush + 3758: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 375a: 107f lrw r3, 0x20000038 // 37d4 + 375c: 3102 movi r1, 2 + 375e: 9360 ld.w r3, (r3, 0x0) + 3760: 9343 ld.w r2, (r3, 0xc) + 3762: 6884 and r2, r1 + 3764: 3a40 cmpnei r2, 0 + 3766: 0c0b bf 0x377c // 377c + { + UART2->ISR=UART_RX_INT_S; + 3768: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 376a: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 376c: 7400 zextb r0, r0 + 376e: e0000321 bsr 0x3db0 // 3db0 + RS485_Comm_End ++; + } + + } + +} + 3772: d9ee2000 ld.w r15, (r14, 0x0) + 3776: 1401 addi r14, r14, 4 + 3778: 1463 ipop + 377a: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 377c: 9323 ld.w r1, (r3, 0xc) + 377e: 3201 movi r2, 1 + 3780: 6848 and r1, r2 + 3782: 3940 cmpnei r1, 0 + 3784: 0c0d bf 0x379e // 379e + UART2->ISR=UART_TX_INT_S; + 3786: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3788: 1074 lrw r3, 0x2000012c // 37d8 + 378a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 378c: 1074 lrw r3, 0x20000130 // 37dc + 378e: 9360 ld.w r3, (r3, 0x0) + 3790: 3b41 cmpnei r3, 1 + 3792: 0bf0 bt 0x3772 // 3772 + RS485_Comm_Start ++; + 3794: 1053 lrw r2, 0x20000134 // 37e0 + RS485_Comm_End ++; + 3796: 9260 ld.w r3, (r2, 0x0) + 3798: 2300 addi r3, 1 + 379a: b260 st.w r3, (r2, 0x0) +} + 379c: 07eb br 0x3772 // 3772 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 379e: 9343 ld.w r2, (r3, 0xc) + 37a0: 3108 movi r1, 8 + 37a2: 6884 and r2, r1 + 37a4: 3a40 cmpnei r2, 0 + 37a6: 0c03 bf 0x37ac // 37ac + UART2->ISR=UART_TX_IOV_S; + 37a8: b323 st.w r1, (r3, 0xc) + 37aa: 07e4 br 0x3772 // 3772 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 37ac: 9343 ld.w r2, (r3, 0xc) + 37ae: 3104 movi r1, 4 + 37b0: 6884 and r2, r1 + 37b2: 3a40 cmpnei r2, 0 + 37b4: 0bfa bt 0x37a8 // 37a8 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 37b6: 3180 movi r1, 128 + 37b8: 9303 ld.w r0, (r3, 0xc) + 37ba: 412c lsli r1, r1, 12 + 37bc: 6804 and r0, r1 + 37be: 3840 cmpnei r0, 0 + 37c0: 0fd9 bf 0x3772 // 3772 + UART2->ISR=UART_TX_DONE_S; + 37c2: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 37c4: 1065 lrw r3, 0x2000012c // 37d8 + 37c6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 37c8: 1065 lrw r3, 0x20000130 // 37dc + 37ca: 9360 ld.w r3, (r3, 0x0) + 37cc: 3b41 cmpnei r3, 1 + 37ce: 0bd2 bt 0x3772 // 3772 + RS485_Comm_End ++; + 37d0: 1045 lrw r2, 0x20000138 // 37e4 + 37d2: 07e2 br 0x3796 // 3796 + 37d4: 20000038 .long 0x20000038 + 37d8: 2000012c .long 0x2000012c + 37dc: 20000130 .long 0x20000130 + 37e0: 20000134 .long 0x20000134 + 37e4: 20000138 .long 0x20000138 + +Disassembly of section .text.SPI0IntHandler: + +000037e8 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 37e8: 1460 nie + 37ea: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 37ec: 1178 lrw r3, 0x20000034 // 38cc + 37ee: 3101 movi r1, 1 + 37f0: 9360 ld.w r3, (r3, 0x0) + 37f2: 9347 ld.w r2, (r3, 0x1c) + 37f4: 6884 and r2, r1 + 37f6: 3a40 cmpnei r2, 0 + 37f8: 0c03 bf 0x37fe // 37fe + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 37fa: b328 st.w r1, (r3, 0x20) + } + +} + 37fc: 0407 br 0x380a // 380a + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 37fe: 9347 ld.w r2, (r3, 0x1c) + 3800: 3002 movi r0, 2 + 3802: 6880 and r2, r0 + 3804: 3a40 cmpnei r2, 0 + 3806: 0c04 bf 0x380e // 380e + SPI0->ICR = SPI_RTIM; + 3808: b308 st.w r0, (r3, 0x20) +} + 380a: 1463 ipop + 380c: 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 + 380e: 9347 ld.w r2, (r3, 0x1c) + 3810: 3004 movi r0, 4 + 3812: 6880 and r2, r0 + 3814: 3a40 cmpnei r2, 0 + 3816: 0c55 bf 0x38c0 // 38c0 + SPI0->ICR = SPI_RXIM; + 3818: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 381a: 9302 ld.w r0, (r3, 0x8) + 381c: 32aa movi r2, 170 + 381e: 6482 cmpne r0, r2 + 3820: 083e bt 0x389c // 389c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3822: 3102 movi r1, 2 + 3824: 9343 ld.w r2, (r3, 0xc) + 3826: 6884 and r2, r1 + 3828: 3a40 cmpnei r2, 0 + 382a: 0ffd bf 0x3824 // 3824 + SPI0->DR = 0x11; + 382c: 3211 movi r2, 17 + 382e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3830: 3110 movi r1, 16 + 3832: 9343 ld.w r2, (r3, 0xc) + 3834: 6884 and r2, r1 + 3836: 3a40 cmpnei r2, 0 + 3838: 0bfd bt 0x3832 // 3832 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 383a: 3102 movi r1, 2 + 383c: 9343 ld.w r2, (r3, 0xc) + 383e: 6884 and r2, r1 + 3840: 3a40 cmpnei r2, 0 + 3842: 0ffd bf 0x383c // 383c + SPI0->DR = 0x12; + 3844: 3212 movi r2, 18 + 3846: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3848: 3110 movi r1, 16 + 384a: 9343 ld.w r2, (r3, 0xc) + 384c: 6884 and r2, r1 + 384e: 3a40 cmpnei r2, 0 + 3850: 0bfd bt 0x384a // 384a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3852: 3102 movi r1, 2 + 3854: 9343 ld.w r2, (r3, 0xc) + 3856: 6884 and r2, r1 + 3858: 3a40 cmpnei r2, 0 + 385a: 0ffd bf 0x3854 // 3854 + SPI0->DR = 0x13; + 385c: 3213 movi r2, 19 + 385e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3860: 3110 movi r1, 16 + 3862: 9343 ld.w r2, (r3, 0xc) + 3864: 6884 and r2, r1 + 3866: 3a40 cmpnei r2, 0 + 3868: 0bfd bt 0x3862 // 3862 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 386a: 3102 movi r1, 2 + 386c: 9343 ld.w r2, (r3, 0xc) + 386e: 6884 and r2, r1 + 3870: 3a40 cmpnei r2, 0 + 3872: 0ffd bf 0x386c // 386c + SPI0->DR = 0x14; + 3874: 3214 movi r2, 20 + 3876: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3878: 3110 movi r1, 16 + 387a: 9343 ld.w r2, (r3, 0xc) + 387c: 6884 and r2, r1 + 387e: 3a40 cmpnei r2, 0 + 3880: 0bfd bt 0x387a // 387a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3882: 3102 movi r1, 2 + 3884: 9343 ld.w r2, (r3, 0xc) + 3886: 6884 and r2, r1 + 3888: 3a40 cmpnei r2, 0 + 388a: 0ffd bf 0x3884 // 3884 + SPI0->DR = 0x15; + 388c: 3215 movi r2, 21 + 388e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3890: 3110 movi r1, 16 + 3892: 9343 ld.w r2, (r3, 0xc) + 3894: 6884 and r2, r1 + 3896: 3a40 cmpnei r2, 0 + 3898: 0bfd bt 0x3892 // 3892 + 389a: 07b8 br 0x380a // 380a + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 389c: 9343 ld.w r2, (r3, 0xc) + 389e: 6884 and r2, r1 + 38a0: 3a40 cmpnei r2, 0 + 38a2: 0bb4 bt 0x380a // 380a + SPI0->DR=0x0; //FIFO=0 + 38a4: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 38a6: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 38a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38ac: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38ae: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38b0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38b2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38b4: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 38b6: 9343 ld.w r2, (r3, 0xc) + 38b8: 6884 and r2, r1 + 38ba: 3a40 cmpnei r2, 0 + 38bc: 0bfd bt 0x38b6 // 38b6 + 38be: 07a6 br 0x380a // 380a + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 38c0: 9347 ld.w r2, (r3, 0x1c) + 38c2: 3108 movi r1, 8 + 38c4: 6884 and r2, r1 + 38c6: 3a40 cmpnei r2, 0 + 38c8: 0b99 bt 0x37fa // 37fa + 38ca: 07a0 br 0x380a // 380a + 38cc: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000038d0 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 38d0: 1460 nie + 38d2: 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) + 38d4: 1073 lrw r3, 0x2000002c // 3920 + 38d6: 3104 movi r1, 4 + 38d8: 9360 ld.w r3, (r3, 0x0) + 38da: 9349 ld.w r2, (r3, 0x24) + 38dc: 6884 and r2, r1 + 38de: 3a40 cmpnei r2, 0 + 38e0: 0c02 bf 0x38e4 // 38e4 + { + SIO0->ICR=0X04; + 38e2: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 38e4: 9349 ld.w r2, (r3, 0x24) + 38e6: 3101 movi r1, 1 + 38e8: 6884 and r2, r1 + 38ea: 3a40 cmpnei r2, 0 + 38ec: 0c02 bf 0x38f0 // 38f0 + { + SIO0->ICR=0X01; + 38ee: 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 + 38f0: 9349 ld.w r2, (r3, 0x24) + 38f2: 3102 movi r1, 2 + 38f4: 6884 and r2, r1 + 38f6: 3a40 cmpnei r2, 0 + 38f8: 0c03 bf 0x38fe // 38fe + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 38fa: b32b st.w r1, (r3, 0x2c) + } +} + 38fc: 0410 br 0x391c // 391c + else if(SIO0->MISR&0X08) //RXBUFFULL + 38fe: 9349 ld.w r2, (r3, 0x24) + 3900: 3108 movi r1, 8 + 3902: 6884 and r2, r1 + 3904: 3a40 cmpnei r2, 0 + 3906: 0bfa bt 0x38fa // 38fa + else if(SIO0->MISR&0X010) //BREAK + 3908: 9349 ld.w r2, (r3, 0x24) + 390a: 3110 movi r1, 16 + 390c: 6884 and r2, r1 + 390e: 3a40 cmpnei r2, 0 + 3910: 0bf5 bt 0x38fa // 38fa + else if(SIO0->MISR&0X020) //TIMEOUT + 3912: 9349 ld.w r2, (r3, 0x24) + 3914: 3120 movi r1, 32 + 3916: 6884 and r2, r1 + 3918: 3a40 cmpnei r2, 0 + 391a: 0bf0 bt 0x38fa // 38fa +} + 391c: 1463 ipop + 391e: 1461 nir + 3920: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003924 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3924: 1460 nie + 3926: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3928: 106a lrw r3, 0x2000005c // 3950 + 392a: 3101 movi r1, 1 + 392c: 9360 ld.w r3, (r3, 0x0) + 392e: 237f addi r3, 128 + 3930: 934c ld.w r2, (r3, 0x30) + 3932: 6884 and r2, r1 + 3934: 3a40 cmpnei r2, 0 + 3936: 0c04 bf 0x393e // 393e + { + SYSCON->EXICR = EXI_PIN0; + 3938: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 393a: 1463 ipop + 393c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 393e: 3280 movi r2, 128 + 3940: 932c ld.w r1, (r3, 0x30) + 3942: 4249 lsli r2, r2, 9 + 3944: 6848 and r1, r2 + 3946: 3940 cmpnei r1, 0 + 3948: 0ff9 bf 0x393a // 393a + SYSCON->EXICR = EXI_PIN16; + 394a: b34b st.w r2, (r3, 0x2c) +} + 394c: 07f7 br 0x393a // 393a + 394e: 0000 bkpt + 3950: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00003954 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 3954: 1460 nie + 3956: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 3958: 106a lrw r3, 0x2000005c // 3980 + 395a: 3102 movi r1, 2 + 395c: 9360 ld.w r3, (r3, 0x0) + 395e: 237f addi r3, 128 + 3960: 934c ld.w r2, (r3, 0x30) + 3962: 6884 and r2, r1 + 3964: 3a40 cmpnei r2, 0 + 3966: 0c04 bf 0x396e // 396e + { + SYSCON->EXICR = EXI_PIN1; + 3968: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 396a: 1463 ipop + 396c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 396e: 3280 movi r2, 128 + 3970: 932c ld.w r1, (r3, 0x30) + 3972: 424a lsli r2, r2, 10 + 3974: 6848 and r1, r2 + 3976: 3940 cmpnei r1, 0 + 3978: 0ff9 bf 0x396a // 396a + SYSCON->EXICR = EXI_PIN17; + 397a: b34b st.w r2, (r3, 0x2c) +} + 397c: 07f7 br 0x396a // 396a + 397e: 0000 bkpt + 3980: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00003984 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 3984: 1460 nie + 3986: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 3988: 1070 lrw r3, 0x2000005c // 39c8 + 398a: 3104 movi r1, 4 + 398c: 9360 ld.w r3, (r3, 0x0) + 398e: 237f addi r3, 128 + 3990: 934c ld.w r2, (r3, 0x30) + 3992: 6884 and r2, r1 + 3994: 3a40 cmpnei r2, 0 + 3996: 0c04 bf 0x399e // 399e + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3998: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 399a: 1463 ipop + 399c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 399e: 934c ld.w r2, (r3, 0x30) + 39a0: 3108 movi r1, 8 + 39a2: 6884 and r2, r1 + 39a4: 3a40 cmpnei r2, 0 + 39a6: 0bf9 bt 0x3998 // 3998 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 39a8: 3280 movi r2, 128 + 39aa: 932c ld.w r1, (r3, 0x30) + 39ac: 424b lsli r2, r2, 11 + 39ae: 6848 and r1, r2 + 39b0: 3940 cmpnei r1, 0 + 39b2: 0c03 bf 0x39b8 // 39b8 + SYSCON->EXICR = EXI_PIN19; + 39b4: b34b st.w r2, (r3, 0x2c) +} + 39b6: 07f2 br 0x399a // 399a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 39b8: 3280 movi r2, 128 + 39ba: 932c ld.w r1, (r3, 0x30) + 39bc: 424c lsli r2, r2, 12 + 39be: 6848 and r1, r2 + 39c0: 3940 cmpnei r1, 0 + 39c2: 0bf9 bt 0x39b4 // 39b4 + 39c4: 07eb br 0x399a // 399a + 39c6: 0000 bkpt + 39c8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000039cc : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 39cc: 1460 nie + 39ce: 1462 ipush + 39d0: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 39d2: 1079 lrw r3, 0x2000005c // 3a34 + 39d4: 3280 movi r2, 128 + 39d6: 9360 ld.w r3, (r3, 0x0) + 39d8: 60c8 addu r3, r2 + 39da: 932c ld.w r1, (r3, 0x30) + 39dc: 3010 movi r0, 16 + 39de: 6840 and r1, r0 + 39e0: 3940 cmpnei r1, 0 + 39e2: 0c03 bf 0x39e8 // 39e8 + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 39e4: b30b st.w r0, (r3, 0x2c) + 39e6: 0409 br 0x39f8 // 39f8 + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 39e8: 932c ld.w r1, (r3, 0x30) + 39ea: 3020 movi r0, 32 + 39ec: 6840 and r1, r0 + 39ee: 3940 cmpnei r1, 0 + 39f0: 0c09 bf 0x3a02 // 3a02 + SYSCON->EXICR = EXI_PIN5; + 39f2: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 39f4: e000035c bsr 0x40ac // 40ac + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 39f8: d9ee2000 ld.w r15, (r14, 0x0) + 39fc: 1401 addi r14, r14, 4 + 39fe: 1463 ipop + 3a00: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3a02: 932c ld.w r1, (r3, 0x30) + 3a04: 3040 movi r0, 64 + 3a06: 6840 and r1, r0 + 3a08: 3940 cmpnei r1, 0 + 3a0a: 0bed bt 0x39e4 // 39e4 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 3a0c: 932c ld.w r1, (r3, 0x30) + 3a0e: 6848 and r1, r2 + 3a10: 3940 cmpnei r1, 0 + 3a12: 0c03 bf 0x3a18 // 3a18 + SYSCON->EXICR = EXI_PIN9; + 3a14: b34b st.w r2, (r3, 0x2c) +} + 3a16: 07f1 br 0x39f8 // 39f8 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3a18: 3280 movi r2, 128 + 3a1a: 932c ld.w r1, (r3, 0x30) + 3a1c: 4241 lsli r2, r2, 1 + 3a1e: 6848 and r1, r2 + 3a20: 3940 cmpnei r1, 0 + 3a22: 0bf9 bt 0x3a14 // 3a14 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3a24: 3280 movi r2, 128 + 3a26: 932c ld.w r1, (r3, 0x30) + 3a28: 4242 lsli r2, r2, 2 + 3a2a: 6848 and r1, r2 + 3a2c: 3940 cmpnei r1, 0 + 3a2e: 0bf3 bt 0x3a14 // 3a14 + 3a30: 07e4 br 0x39f8 // 39f8 + 3a32: 0000 bkpt + 3a34: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003a38 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3a38: 1460 nie + 3a3a: 1462 ipush + 3a3c: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 3a3e: 107d lrw r3, 0x2000005c // 3ab0 + 3a40: 3280 movi r2, 128 + 3a42: 9360 ld.w r3, (r3, 0x0) + 3a44: 237f addi r3, 128 + 3a46: 932c ld.w r1, (r3, 0x30) + 3a48: 4243 lsli r2, r2, 3 + 3a4a: 6848 and r1, r2 + 3a4c: 3940 cmpnei r1, 0 + 3a4e: 0c03 bf 0x3a54 // 3a54 + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 3a50: b34b st.w r2, (r3, 0x2c) + } +} + 3a52: 0422 br 0x3a96 // 3a96 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 3a54: 3280 movi r2, 128 + 3a56: 932c ld.w r1, (r3, 0x30) + 3a58: 4244 lsli r2, r2, 4 + 3a5a: 6848 and r1, r2 + 3a5c: 3940 cmpnei r1, 0 + 3a5e: 0bf9 bt 0x3a50 // 3a50 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 3a60: 3280 movi r2, 128 + 3a62: 932c ld.w r1, (r3, 0x30) + 3a64: 4245 lsli r2, r2, 5 + 3a66: 6848 and r1, r2 + 3a68: 3940 cmpnei r1, 0 + 3a6a: 0bf3 bt 0x3a50 // 3a50 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 3a6c: 3280 movi r2, 128 + 3a6e: 932c ld.w r1, (r3, 0x30) + 3a70: 4246 lsli r2, r2, 6 + 3a72: 6848 and r1, r2 + 3a74: 3940 cmpnei r1, 0 + 3a76: 0bed bt 0x3a50 // 3a50 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3a78: 3280 movi r2, 128 + 3a7a: 932c ld.w r1, (r3, 0x30) + 3a7c: 4247 lsli r2, r2, 7 + 3a7e: 6848 and r1, r2 + 3a80: 3940 cmpnei r1, 0 + 3a82: 0c0f bf 0x3aa0 // 3aa0 + SYSCON->EXICR = EXI_PIN14; + 3a84: b34b st.w r2, (r3, 0x2c) + if(c_rly.rly_zCnt < 8){ + 3a86: 104c lrw r2, 0x20000878 // 3ab4 + 3a88: 8261 ld.b r3, (r2, 0x1) + 3a8a: 3b07 cmphsi r3, 8 + 3a8c: 0803 bt 0x3a92 // 3a92 + c_rly.rly_zCnt++; + 3a8e: 2300 addi r3, 1 + 3a90: a261 st.b r3, (r2, 0x1) + RLY_Zero_Control(); //继电器控制 + 3a92: e00021a5 bsr 0x7ddc // 7ddc +} + 3a96: d9ee2000 ld.w r15, (r14, 0x0) + 3a9a: 1401 addi r14, r14, 4 + 3a9c: 1463 ipop + 3a9e: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 3aa0: 3280 movi r2, 128 + 3aa2: 932c ld.w r1, (r3, 0x30) + 3aa4: 4248 lsli r2, r2, 8 + 3aa6: 6848 and r1, r2 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0bd3 bt 0x3a50 // 3a50 + 3aac: 07f5 br 0x3a96 // 3a96 + 3aae: 0000 bkpt + 3ab0: 2000005c .long 0x2000005c + 3ab4: 20000878 .long 0x20000878 + +Disassembly of section .text.LPTIntHandler: + +00003ab8 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3ab8: 1460 nie + 3aba: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 3abc: 106b lrw r3, 0x20000014 // 3ae8 + 3abe: 3101 movi r1, 1 + 3ac0: 9360 ld.w r3, (r3, 0x0) + 3ac2: 934e ld.w r2, (r3, 0x38) + 3ac4: 6884 and r2, r1 + 3ac6: 3a40 cmpnei r2, 0 + 3ac8: 0c03 bf 0x3ace // 3ace + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 3aca: b330 st.w r1, (r3, 0x40) + } +} + 3acc: 040b br 0x3ae2 // 3ae2 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 3ace: 934e ld.w r2, (r3, 0x38) + 3ad0: 3102 movi r1, 2 + 3ad2: 6884 and r2, r1 + 3ad4: 3a40 cmpnei r2, 0 + 3ad6: 0bfa bt 0x3aca // 3aca + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3ad8: 934e ld.w r2, (r3, 0x38) + 3ada: 3104 movi r1, 4 + 3adc: 6884 and r2, r1 + 3ade: 3a40 cmpnei r2, 0 + 3ae0: 0bf5 bt 0x3aca // 3aca +} + 3ae2: 1463 ipop + 3ae4: 1461 nir + 3ae6: 0000 bkpt + 3ae8: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00003aec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 3aec: 1460 nie + 3aee: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3af0: 1071 lrw r3, 0x2000000c // 3b34 + 3af2: 3101 movi r1, 1 + 3af4: 9360 ld.w r3, (r3, 0x0) + 3af6: 934c ld.w r2, (r3, 0x30) + 3af8: 6884 and r2, r1 + 3afa: 3a40 cmpnei r2, 0 + 3afc: 0c0a bf 0x3b10 // 3b10 + { + BT0->ICR = BT_PEND; + 3afe: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3b00: 9341 ld.w r2, (r3, 0x4) + 3b02: 3a86 bclri r2, 6 + 3b04: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3b06: 9340 ld.w r2, (r3, 0x0) + 3b08: 3200 movi r2, 0 + 3b0a: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 3b0c: 1463 ipop + 3b0e: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3b10: 934c ld.w r2, (r3, 0x30) + 3b12: 3102 movi r1, 2 + 3b14: 6884 and r2, r1 + 3b16: 3a40 cmpnei r2, 0 + 3b18: 0c03 bf 0x3b1e // 3b1e + BT0->ICR = BT_EVTRG; + 3b1a: b32d st.w r1, (r3, 0x34) +} + 3b1c: 07f8 br 0x3b0c // 3b0c + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 3b1e: 934c ld.w r2, (r3, 0x30) + 3b20: 3104 movi r1, 4 + 3b22: 6884 and r2, r1 + 3b24: 3a40 cmpnei r2, 0 + 3b26: 0bfa bt 0x3b1a // 3b1a + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3b28: 934c ld.w r2, (r3, 0x30) + 3b2a: 3108 movi r1, 8 + 3b2c: 6884 and r2, r1 + 3b2e: 3a40 cmpnei r2, 0 + 3b30: 0bf5 bt 0x3b1a // 3b1a + 3b32: 07ed br 0x3b0c // 3b0c + 3b34: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003b38 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3b38: 1460 nie + 3b3a: 1462 ipush + 3b3c: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 3b3e: 1079 lrw r3, 0x20000008 // 3ba0 + 3b40: 3101 movi r1, 1 + 3b42: 9360 ld.w r3, (r3, 0x0) + 3b44: 934c ld.w r2, (r3, 0x30) + 3b46: 6884 and r2, r1 + 3b48: 3a40 cmpnei r2, 0 + 3b4a: 0c03 bf 0x3b50 // 3b50 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 3b4c: b32d st.w r1, (r3, 0x34) + } +} + 3b4e: 0418 br 0x3b7e // 3b7e + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 3b50: 934c ld.w r2, (r3, 0x30) + 3b52: 3102 movi r1, 2 + 3b54: 6884 and r2, r1 + 3b56: 3a40 cmpnei r2, 0 + 3b58: 0c18 bf 0x3b88 // 3b88 + BT1->ICR = BT_CMP; + 3b5a: b32d st.w r1, (r3, 0x34) + NUM++; + 3b5c: 1072 lrw r3, 0x200000b8 // 3ba4 + 3b5e: 8340 ld.b r2, (r3, 0x0) + 3b60: 2200 addi r2, 1 + 3b62: 7488 zextb r2, r2 + SysTick_100us++; + 3b64: 9321 ld.w r1, (r3, 0x4) + 3b66: 2100 addi r1, 1 + if(NUM >= 10){ + 3b68: 3a09 cmphsi r2, 10 + NUM++; + 3b6a: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 3b6c: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 3b6e: 0c08 bf 0x3b7e // 3b7e + NUM = 0; + 3b70: 3200 movi r2, 0 + 3b72: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3b74: 9342 ld.w r2, (r3, 0x8) + 3b76: 2200 addi r2, 1 + 3b78: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 3b7a: e0000279 bsr 0x406c // 406c +} + 3b7e: d9ee2000 ld.w r15, (r14, 0x0) + 3b82: 1401 addi r14, r14, 4 + 3b84: 1463 ipop + 3b86: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3b88: 934c ld.w r2, (r3, 0x30) + 3b8a: 3104 movi r1, 4 + 3b8c: 6884 and r2, r1 + 3b8e: 3a40 cmpnei r2, 0 + 3b90: 0bde bt 0x3b4c // 3b4c + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 3b92: 934c ld.w r2, (r3, 0x30) + 3b94: 3108 movi r1, 8 + 3b96: 6884 and r2, r1 + 3b98: 3a40 cmpnei r2, 0 + 3b9a: 0bd9 bt 0x3b4c // 3b4c + 3b9c: 07f1 br 0x3b7e // 3b7e + 3b9e: 0000 bkpt + 3ba0: 20000008 .long 0x20000008 + 3ba4: 200000b8 .long 0x200000b8 + +Disassembly of section .text.PriviledgeVioHandler: + +00003ba8 : + 3ba8: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003baa : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3baa: 1460 nie + 3bac: 1462 ipush + // ISR content ... + +} + 3bae: 1463 ipop + 3bb0: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00003bb2 : + 3bb2: 1460 nie + 3bb4: 1462 ipush + 3bb6: 1463 ipop + 3bb8: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00003bba : + 3bba: 1460 nie + 3bbc: 1462 ipush + 3bbe: 1463 ipop + 3bc0: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00003bc2 : + 3bc2: 1460 nie + 3bc4: 1462 ipush + 3bc6: 1463 ipop + 3bc8: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00003bca : + 3bca: 1460 nie + 3bcc: 1462 ipush + 3bce: 1463 ipop + 3bd0: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003bd2 : + 3bd2: 1460 nie + 3bd4: 1462 ipush + 3bd6: 1463 ipop + 3bd8: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00003bda : + 3bda: 1460 nie + 3bdc: 1462 ipush + 3bde: 1463 ipop + 3be0: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003be2 : + 3be2: 1460 nie + 3be4: 1462 ipush + 3be6: 1463 ipop + 3be8: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00003bea : + 3bea: 1460 nie + 3bec: 1462 ipush + 3bee: 1463 ipop + 3bf0: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003bf2 : + 3bf2: 1460 nie + 3bf4: 1462 ipush + 3bf6: 1463 ipop + 3bf8: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00003bfa : + 3bfa: 1460 nie + 3bfc: 1462 ipush + 3bfe: 1463 ipop + 3c00: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003c02 : + 3c02: 1460 nie + 3c04: 1462 ipush + 3c06: 1463 ipop + 3c08: 1461 nir + +Disassembly of section .text.__divsi3: + +00003c0c <__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) +{ + 3c0c: 14c1 push r4 + int PSR; + __asm volatile( + 3c0e: c0006023 mfcr r3, cr<0, 0> + 3c12: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3c16: 1046 lrw r2, 0x20000000 // 3c2c <__divsi3+0x20> + 3c18: 3400 movi r4, 0 + 3c1a: 9240 ld.w r2, (r2, 0x0) + 3c1c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c1e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c20: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c22: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c24: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3c28: 9202 ld.w r0, (r2, 0x8) +} + 3c2a: 1481 pop r4 + 3c2c: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003c30 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3c30: 14c1 push r4 + int PSR; + __asm volatile( + 3c32: c0006023 mfcr r3, cr<0, 0> + 3c36: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3c3a: 1046 lrw r2, 0x20000000 // 3c50 <__udivsi3+0x20> + 3c3c: 3401 movi r4, 1 + 3c3e: 9240 ld.w r2, (r2, 0x0) + 3c40: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c42: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c44: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c46: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c48: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3c4c: 9202 ld.w r0, (r2, 0x8) +} + 3c4e: 1481 pop r4 + 3c50: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00003c54 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 3c54: 14c1 push r4 + int PSR; + __asm volatile( + 3c56: c0006023 mfcr r3, cr<0, 0> + 3c5a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3c5e: 1046 lrw r2, 0x20000000 // 3c74 <__modsi3+0x20> + 3c60: 3400 movi r4, 0 + 3c62: 9240 ld.w r2, (r2, 0x0) + 3c64: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c66: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c68: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c6a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c6c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3c70: 9203 ld.w r0, (r2, 0xc) +} + 3c72: 1481 pop r4 + 3c74: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003c78 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3c78: 14c1 push r4 + int PSR; + __asm volatile( + 3c7a: c0006023 mfcr r3, cr<0, 0> + 3c7e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3c82: 1046 lrw r2, 0x20000000 // 3c98 <__umodsi3+0x20> + 3c84: 3401 movi r4, 1 + 3c86: 9240 ld.w r2, (r2, 0x0) + 3c88: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c8a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c8c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c8e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c90: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3c94: 9203 ld.w r0, (r2, 0xc) +} + 3c96: 1481 pop r4 + 3c98: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003c9c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3c9c: c1807420 psrset ee, ie +} + 3ca0: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +00003ca2 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 3ca2: c0807020 psrclr ie +} + 3ca6: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003ca8 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3ca8: 14d2 push r4-r5, r15 + switch(uart_id){ + 3caa: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3cac: 6d07 mov r4, r1 + switch(uart_id){ + 3cae: 0c1e bf 0x3cea // 3cea + 3cb0: 3840 cmpnei r0, 0 + 3cb2: 0c04 bf 0x3cba // 3cba + 3cb4: 3842 cmpnei r0, 2 + 3cb6: 0c37 bf 0x3d24 // 3d24 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 3cb8: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 3cba: e3fff4f5 bsr 0x26a4 // 26a4 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 3cbe: 3100 movi r1, 0 + 3cc0: 3000 movi r0, 0 + 3cc2: e3fff531 bsr 0x2724 // 2724 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3cc6: 116f lrw r3, 0x20000040 // 3d80 + 3cc8: 3200 movi r2, 0 + 3cca: 9300 ld.w r0, (r3, 0x0) + 3ccc: 112e lrw r1, 0x1388 // 3d84 + 3cce: e3fff5a9 bsr 0x2820 // 2820 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 3cd2: 11ae lrw r5, 0x200002f0 // 3d88 + UART0_Int_Enable(); + 3cd4: e3fff50c bsr 0x26ec // 26ec + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 3cd8: 3274 movi r2, 116 + 3cda: 3100 movi r1, 0 + 3cdc: 6c17 mov r0, r5 + 3cde: e3ffefb1 bsr 0x1c40 // 1c40 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 3ce2: 3303 movi r3, 3 + 3ce4: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 3ce6: b59c st.w r4, (r5, 0x70) + break; + 3ce8: 07e8 br 0x3cb8 // 3cb8 + UART1_DeInit(); //clear all UART Register + 3cea: e3fff4e9 bsr 0x26bc // 26bc + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3cee: 3102 movi r1, 2 + 3cf0: 3001 movi r0, 1 + 3cf2: e3fff519 bsr 0x2724 // 2724 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 3cf6: 11a6 lrw r5, 0x2000003c // 3d8c + 3cf8: 31d0 movi r1, 208 + 3cfa: 3200 movi r2, 0 + 3cfc: 4121 lsli r1, r1, 1 + 3cfe: 9500 ld.w r0, (r5, 0x0) + 3d00: e3fff588 bsr 0x2810 // 2810 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3d04: 31d0 movi r1, 208 + 3d06: 9500 ld.w r0, (r5, 0x0) + 3d08: 3200 movi r2, 0 + 3d0a: 4121 lsli r1, r1, 1 + 3d0c: e3fff58a bsr 0x2820 // 2820 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3d10: 3274 movi r2, 116 + 3d12: 3100 movi r1, 0 + 3d14: 101f lrw r0, 0x20000364 // 3d90 + 3d16: e3ffef95 bsr 0x1c40 // 1c40 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 3d1a: 107f lrw r3, 0x20000370 // 3d94 + 3d1c: 3203 movi r2, 3 + 3d1e: b357 st.w r2, (r3, 0x5c) + g_uart[UART_1].processing_cf = prt_cf; + 3d20: b399 st.w r4, (r3, 0x64) + break; + 3d22: 07cb br 0x3cb8 // 3cb8 + UART2_DeInit(); //clear all UART Register + 3d24: e3fff4d8 bsr 0x26d4 // 26d4 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3d28: 3102 movi r1, 2 + 3d2a: 3002 movi r0, 2 + 3d2c: e3fff4fc bsr 0x2724 // 2724 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3d30: 107a lrw r3, 0x20000038 // 3d98 + 3d32: 3200 movi r2, 0 + 3d34: 9300 ld.w r0, (r3, 0x0) + 3d36: 1034 lrw r1, 0x1388 // 3d84 + 3d38: e3fff574 bsr 0x2820 // 2820 + UART2_Int_Enable(); + 3d3c: e3fff4e6 bsr 0x2708 // 2708 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3d40: 3274 movi r2, 116 + 3d42: 3100 movi r1, 0 + 3d44: 1016 lrw r0, 0x200003d8 // 3d9c + 3d46: e3ffef7d bsr 0x1c40 // 1c40 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 3d4a: 3288 movi r2, 136 + 3d4c: 3100 movi r1, 0 + 3d4e: 1015 lrw r0, 0x2000044c // 3da0 + 3d50: e3ffef78 bsr 0x1c40 // 1c40 <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3d54: 1074 lrw r3, 0x200004ac // 3da4 + 3d56: 3201 movi r2, 1 + 3d58: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3d5a: 1074 lrw r3, 0x200003f0 // 3da8 + g_uart[UART_2].processing_cf = prt_cf; + 3d5c: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3d5e: 3203 movi r2, 3 + GPIO_Init(GPIOB0,3,Output); + 3d60: 1093 lrw r4, 0x20000048 // 3dac + 3d62: 3103 movi r1, 3 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3d64: b354 st.w r2, (r3, 0x50) + GPIO_Init(GPIOB0,3,Output); + 3d66: 9400 ld.w r0, (r4, 0x0) + 3d68: 3200 movi r2, 0 + 3d6a: e3fff1f5 bsr 0x2154 // 2154 + GPIO_DriveStrength_EN(GPIOB0,3); + 3d6e: 9400 ld.w r0, (r4, 0x0) + 3d70: 3103 movi r1, 3 + 3d72: e3fff26b bsr 0x2248 // 2248 + GPIO_Write_Low(GPIOB0,3); + 3d76: 9400 ld.w r0, (r4, 0x0) + 3d78: 3103 movi r1, 3 + 3d7a: e3fff3ad bsr 0x24d4 // 24d4 +} + 3d7e: 079d br 0x3cb8 // 3cb8 + 3d80: 20000040 .long 0x20000040 + 3d84: 00001388 .long 0x00001388 + 3d88: 200002f0 .long 0x200002f0 + 3d8c: 2000003c .long 0x2000003c + 3d90: 20000364 .long 0x20000364 + 3d94: 20000370 .long 0x20000370 + 3d98: 20000038 .long 0x20000038 + 3d9c: 200003d8 .long 0x200003d8 + 3da0: 2000044c .long 0x2000044c + 3da4: 200004ac .long 0x200004ac + 3da8: 200003f0 .long 0x200003f0 + 3dac: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003db0 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3db0: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 3db2: 104e lrw r2, 0x2000043e // 3de8 + 3db4: 8a20 ld.h r1, (r2, 0x0) + 3db6: 3362 movi r3, 98 + 3db8: 644d cmplt r3, r1 + 3dba: 0c03 bf 0x3dc0 // 3dc0 + 3dbc: 3300 movi r3, 0 + 3dbe: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3dc0: 8a60 ld.h r3, (r2, 0x0) + 3dc2: 102b lrw r1, 0x200002f0 // 3dec + 3dc4: 5b82 addi r4, r3, 1 + 3dc6: 60c4 addu r3, r1 + 3dc8: 23e7 addi r3, 232 + 3dca: a300 st.b r0, (r3, 0x0) + 3dcc: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3dce: 1069 lrw r3, 0x200000c0 // 3df0 + 3dd0: 9340 ld.w r2, (r3, 0x0) + 3dd2: 3380 movi r3, 128 + 3dd4: 4361 lsli r3, r3, 1 + 3dd6: 60c4 addu r3, r1 + 3dd8: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 3dda: 33a6 movi r3, 166 + 3ddc: 4361 lsli r3, r3, 1 + 3dde: 604c addu r1, r3 + 3de0: 3301 movi r3, 1 + 3de2: a160 st.b r3, (r1, 0x0) +} + 3de4: 1481 pop r4 + 3de6: 0000 bkpt + 3de8: 2000043e .long 0x2000043e + 3dec: 200002f0 .long 0x200002f0 + 3df0: 200000c0 .long 0x200000c0 + +Disassembly of section .text.UART2_TASK: + +00003df4 : + + +void UART2_TASK(void){ + 3df4: 14d4 push r4-r7, r15 + 3df6: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3df8: 10dc lrw r6, 0x2000043c // 3e68 + 3dfa: 8660 ld.b r3, (r6, 0x0) + 3dfc: 3b41 cmpnei r3, 1 + 3dfe: 082d bt 0x3e58 // 3e58 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3e00: 10bb lrw r5, 0x200003f0 // 3e6c + 3e02: 109c lrw r4, 0x200000c0 // 3e70 + 3e04: 9460 ld.w r3, (r4, 0x0) + 3e06: 9555 ld.w r2, (r5, 0x54) + 3e08: 60ca subu r3, r2 + 3e0a: 9554 ld.w r2, (r5, 0x50) + 3e0c: 64c8 cmphs r2, r3 + 3e0e: 0825 bt 0x3e58 // 3e58 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 3e10: e3fff140 bsr 0x2090 // 2090 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3e14: 9460 ld.w r3, (r4, 0x0) + 3e16: b575 st.w r3, (r5, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3e18: 8e61 ld.h r3, (r6, 0x2) + 3e1a: 6c8f mov r2, r3 + 3e1c: 1036 lrw r1, 0x200003d8 // 3e74 + 3e1e: 1017 lrw r0, 0x200000c4 // 3e78 + DealLen = g_uart[UART_2].RecvLen; + 3e20: 1097 lrw r4, 0x20000104 // 3e7c + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3e22: b860 st.w r3, (r14, 0x0) + 3e24: e3ffef52 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3e28: 9860 ld.w r3, (r14, 0x0) + 3e2a: ac72 st.h r3, (r4, 0x24) + g_uart[UART_2].RecvLen = 0; + 3e2c: 3300 movi r3, 0 + 3e2e: ae61 st.h r3, (r6, 0x2) + g_uart[UART_2].Receiving = 0; + 3e30: a660 st.b r3, (r6, 0x0) + SYSCON_Int_Enable(); + 3e32: e3fff129 bsr 0x2084 // 2084 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3e36: 9576 ld.w r3, (r5, 0x58) + 3e38: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3e3a: 5ee6 addi r7, r6, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 3e3c: 0810 bt 0x3e5c // 3e5c + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + } + + if(rev != 0x00){ + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 3e3e: 8c32 ld.h r1, (r4, 0x24) + 3e40: 100e lrw r0, 0x200000c4 // 3e78 + 3e42: e00005c9 bsr 0x49d4 // 49d4 + } + + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(DealBuffer,DealLen); + 3e46: 8c32 ld.h r1, (r4, 0x24) + 3e48: 100c lrw r0, 0x200000c4 // 3e78 + 3e4a: e00015eb bsr 0x6a20 // 6a20 + } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3e4e: 3264 movi r2, 100 + 3e50: 3100 movi r1, 0 + 3e52: 100a lrw r0, 0x200000c4 // 3e78 + 3e54: e3ffeef6 bsr 0x1c40 // 1c40 <__memset_fast> + } + } +} + 3e58: 1401 addi r14, r14, 4 + 3e5a: 1494 pop r4-r7, r15 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 3e5c: 8c32 ld.h r1, (r4, 0x24) + 3e5e: 1007 lrw r0, 0x200000c4 // 3e78 + 3e60: 7bcd jsr r3 + if(rev != 0x00){ + 3e62: 3840 cmpnei r0, 0 + 3e64: 0ff5 bf 0x3e4e // 3e4e + 3e66: 07ec br 0x3e3e // 3e3e + 3e68: 2000043c .long 0x2000043c + 3e6c: 200003f0 .long 0x200003f0 + 3e70: 200000c0 .long 0x200000c0 + 3e74: 200003d8 .long 0x200003d8 + 3e78: 200000c4 .long 0x200000c4 + 3e7c: 20000104 .long 0x20000104 + +Disassembly of section .text.BUS485_Send: + +00003e80 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3e80: 14d4 push r4-r7, r15 + 3e82: 1423 subi r14, r14, 12 + 3e84: b802 st.w r0, (r14, 0x8) + 3e86: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3e88: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3e8a: 1189 lrw r4, 0x200000c4 // 3f2c + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 3e8c: 11c9 lrw r6, 0x20000048 // 3f30 + while(RS485_Comming == 0x01){ + 3e8e: 947a ld.w r3, (r4, 0x68) + 3e90: 3b41 cmpnei r3, 1 + 3e92: 0c3e bf 0x3f0e // 3f0e + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 3e94: 1168 lrw r3, 0x200004ac // 3f34 + 3e96: 83c4 ld.b r6, (r3, 0x4) + 3e98: 3e40 cmpnei r6, 0 + 3e9a: b861 st.w r3, (r14, 0x4) + 3e9c: 0845 bt 0x3f26 // 3f26 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 3e9e: 11e5 lrw r7, 0x20000048 // 3f30 + CK_CPU_DisAllNormalIrq(); + 3ea0: e3ffff01 bsr 0x3ca2 // 3ca2 + GPIO_Write_High(GPIOB0,3); + 3ea4: 3103 movi r1, 3 + 3ea6: 9700 ld.w r0, (r7, 0x0) + 3ea8: e3fff312 bsr 0x24cc // 24cc + + RS485_Comm_Flag = 0x01; + 3eac: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3eae: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3eb0: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3eb2: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 3eb4: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3eb6: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 3eb8: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 3eba: e3fffef1 bsr 0x3c9c // 3c9c + + UARTTransmit(UART2,buff,len); + 3ebe: 105f lrw r2, 0x20000038 // 3f38 + 3ec0: 9200 ld.w r0, (r2, 0x0) + 3ec2: 9822 ld.w r1, (r14, 0x8) + 3ec4: 9840 ld.w r2, (r14, 0x0) + 3ec6: e3fff4b5 bsr 0x2830 // 2830 + do{ + delay_nus(100); + 3eca: 3064 movi r0, 100 + 3ecc: e3fff8b8 bsr 0x303c // 303c + delay_cnt ++; + 3ed0: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3ed2: 3363 movi r3, 99 + 3ed4: 654c cmphs r3, r5 + 3ed6: 0c08 bf 0x3ee6 // 3ee6 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3ed8: 947c ld.w r3, (r4, 0x70) + 3eda: 9840 ld.w r2, (r14, 0x0) + 3edc: 648d cmplt r3, r2 + 3ede: 0bf6 bt 0x3eca // 3eca + 3ee0: 947d ld.w r3, (r4, 0x74) + 3ee2: 648d cmplt r3, r2 + 3ee4: 0bf3 bt 0x3eca // 3eca + + + CK_CPU_DisAllNormalIrq(); + 3ee6: e3fffede bsr 0x3ca2 // 3ca2 + + GPIO_Write_Low(GPIOB0,3); + 3eea: 9700 ld.w r0, (r7, 0x0) + 3eec: 3103 movi r1, 3 + 3eee: e3fff2f3 bsr 0x24d4 // 24d4 + RS485_Comm_Flag = 0x00; + 3ef2: 3300 movi r3, 0 + 3ef4: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 3ef6: 1072 lrw r3, 0x200000c0 // 3f3c + 3ef8: 9340 ld.w r2, (r3, 0x0) + 3efa: 1072 lrw r3, 0x2000044c // 3f40 + 3efc: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 3efe: 9861 ld.w r3, (r14, 0x4) + 3f00: 3200 movi r2, 0 + 3f02: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 3f04: e3fffecc bsr 0x3c9c // 3c9c + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 3f08: 6c1b mov r0, r6 + 3f0a: 1403 addi r14, r14, 12 + 3f0c: 1494 pop r4-r7, r15 + delay_nus(100); + 3f0e: 3064 movi r0, 100 + 3f10: e3fff896 bsr 0x303c // 303c + delay_cnt ++; + 3f14: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3f16: 3364 movi r3, 100 + 3f18: 64d6 cmpne r5, r3 + 3f1a: 0fbd bf 0x3e94 // 3e94 + GPIO_Reverse(GPIOB0,3); + 3f1c: 3103 movi r1, 3 + 3f1e: 9600 ld.w r0, (r6, 0x0) + 3f20: e3fff2de bsr 0x24dc // 24dc + 3f24: 07b5 br 0x3e8e // 3e8e + return UART_BUSBUSY; //发送失败 + 3f26: 3601 movi r6, 1 + 3f28: 07f0 br 0x3f08 // 3f08 + 3f2a: 0000 bkpt + 3f2c: 200000c4 .long 0x200000c4 + 3f30: 20000048 .long 0x20000048 + 3f34: 200004ac .long 0x200004ac + 3f38: 20000038 .long 0x20000038 + 3f3c: 200000c0 .long 0x200000c0 + 3f40: 2000044c .long 0x2000044c + +Disassembly of section .text.MultSend_Task: + +00003f44 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3f44: 14d4 push r4-r7, r15 + 3f46: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3f48: 5963 subi r3, r1, 1 + 3f4a: 74cd zexth r3, r3 + 3f4c: 3463 movi r4, 99 + 3f4e: 64d0 cmphs r4, r3 +{ + 3f50: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3f52: 0c29 bf 0x3fa4 // 3fa4 + + if(DatSd == 0x01) + 3f54: 3a41 cmpnei r2, 1 + 3f56: 0c04 bf 0x3f5e // 3f5e + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3f58: 3001 movi r0, 1 +} + 3f5a: 1401 addi r14, r14, 4 + 3f5c: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 3f5e: 1075 lrw r3, 0x2000044c // 3fb0 + 3f60: 3760 movi r7, 96 + 3f62: 61cc addu r7, r3 + 3f64: 87c8 ld.b r6, (r7, 0x8) + 3f66: 874a ld.b r2, (r7, 0xa) + 3f68: 6498 cmphs r6, r2 + 3f6a: 081f bt 0x3fa8 // 3fa8 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 3f6c: 3480 movi r4, 128 + 3f6e: 10b2 lrw r5, 0x200000c0 // 3fb4 + 3f70: 610c addu r4, r3 + 3f72: 9401 ld.w r0, (r4, 0x4) + 3f74: 9540 ld.w r2, (r5, 0x0) + 3f76: 6082 subu r2, r0 + 3f78: 931e ld.w r0, (r3, 0x78) + 3f7a: 6408 cmphs r2, r0 + 3f7c: 0818 bt 0x3fac // 3fac + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 3f7e: 3e40 cmpnei r6, 0 + 3f80: 0c07 bf 0x3f8e // 3f8e + 3f82: 9540 ld.w r2, (r5, 0x0) + 3f84: 94c0 ld.w r6, (r4, 0x0) + 3f86: 609a subu r2, r6 + 3f88: 937d ld.w r3, (r3, 0x74) + 3f8a: 64c8 cmphs r2, r3 + 3f8c: 0fe6 bf 0x3f58 // 3f58 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 3f8e: 9800 ld.w r0, (r14, 0x0) + 3f90: e3ffff78 bsr 0x3e80 // 3e80 + 3f94: 3840 cmpnei r0, 0 + 3f96: 0be1 bt 0x3f58 // 3f58 + m_send.ASend_Tick = SysTick_1ms; + 3f98: 9560 ld.w r3, (r5, 0x0) + 3f9a: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 3f9c: 8768 ld.b r3, (r7, 0x8) + 3f9e: 2300 addi r3, 1 + 3fa0: a768 st.b r3, (r7, 0x8) + 3fa2: 07dc br 0x3f5a // 3f5a + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3fa4: 3004 movi r0, 4 + 3fa6: 07da br 0x3f5a // 3f5a + return RETRY_END;//没有重发次数 + 3fa8: 3003 movi r0, 3 + 3faa: 07d8 br 0x3f5a // 3f5a + return DATA_END;//数据有效期结束 + 3fac: 3002 movi r0, 2 + 3fae: 07d6 br 0x3f5a // 3f5a + 3fb0: 2000044c .long 0x2000044c + 3fb4: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Set_GroupSend: + +00003fb8 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3fb8: 14d4 push r4-r7, r15 + 3fba: 1422 subi r14, r14, 8 + 3fbc: 6d8b mov r6, r2 + 3fbe: 9847 ld.w r2, (r14, 0x1c) + 3fc0: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3fc2: 5943 subi r2, r1, 1 +{ + 3fc4: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3fc6: 7489 zexth r2, r2 + 3fc8: 3163 movi r1, 99 + 3fca: 6484 cmphs r1, r2 +{ + 3fcc: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3fce: 0c20 bf 0x400e // 400e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3fd0: 1091 lrw r4, 0x2000044c // 4014 + 3fd2: 3264 movi r2, 100 + 3fd4: 3100 movi r1, 0 + 3fd6: 6c13 mov r0, r4 + 3fd8: b861 st.w r3, (r14, 0x4) + 3fda: e3ffee33 bsr 0x1c40 // 1c40 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 3fde: 6c97 mov r2, r5 + 3fe0: 6c13 mov r0, r4 + 3fe2: 6c5f mov r1, r7 + 3fe4: e3ffee72 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + m_send.SendLen = sled; + 3fe8: 3240 movi r2, 64 + 3fea: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 3fec: 9861 ld.w r3, (r14, 0x4) + 3fee: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 3ff0: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 3ff2: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3ff4: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 3ff6: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3ff8: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 3ffa: 3201 movi r2, 1 + 3ffc: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 3ffe: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 4000: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 4002: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 4004: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 4006: 247f addi r4, 128 + 4008: 1064 lrw r3, 0x200000c0 // 4018 + 400a: 9360 ld.w r3, (r3, 0x0) + 400c: b461 st.w r3, (r4, 0x4) +} + 400e: 1402 addi r14, r14, 8 + 4010: 1494 pop r4-r7, r15 + 4012: 0000 bkpt + 4014: 2000044c .long 0x2000044c + 4018: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Clear_SendFlag: + +0000401c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 401c: 1063 lrw r3, 0x200004ac // 4028 + 401e: 3200 movi r2, 0 + 4020: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 4022: a347 st.b r2, (r3, 0x7) +} + 4024: 783c jmp r15 + 4026: 0000 bkpt + 4028: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485_Jump_Boot: + +0000402c : +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 402c: 1062 lrw r3, 0x200004ac // 4034 + 402e: a30c st.b r0, (r3, 0xc) +} + 4030: 783c jmp r15 + 4032: 0000 bkpt + 4034: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485Send_Task: + +00004038 : + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 4038: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 403a: 108a lrw r4, 0x200004ac // 4060 + 403c: 8469 ld.b r3, (r4, 0x9) + 403e: 3b41 cmpnei r3, 1 + 4040: 080e bt 0x405c // 405c + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 4042: 1069 lrw r3, 0x2000048c // 4064 + 4044: 8b37 ld.h r1, (r3, 0x2e) + 4046: 3201 movi r2, 1 + 4048: 1008 lrw r0, 0x2000044c // 4068 + 404a: e3ffff7d bsr 0x3f44 // 3f44 + 404e: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 4050: 2801 subi r0, 2 + 4052: 7400 zextb r0, r0 + 4054: 3801 cmphsi r0, 2 + 4056: 0803 bt 0x405c // 405c + { + Dbg_Println(DBG_BIT_SYS_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 4058: 3300 movi r3, 0 + 405a: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 405c: 1491 pop r4, r15 + 405e: 0000 bkpt + 4060: 200004ac .long 0x200004ac + 4064: 2000048c .long 0x2000048c + 4068: 2000044c .long 0x2000044c + +Disassembly of section .text.BusIdle_Task: + +0000406c : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 406c: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 406e: 10ae lrw r5, 0x2000044c // 40a4 + 4070: 3460 movi r4, 96 + 4072: 6114 addu r4, r5 + 4074: 8464 ld.b r3, (r4, 0x4) + 4076: 3b40 cmpnei r3, 0 + 4078: 0c15 bf 0x40a2 // 40a2 + 407a: 8466 ld.b r3, (r4, 0x6) + 407c: 3b41 cmpnei r3, 1 + 407e: 0c12 bf 0x40a2 // 40a2 + { + CK_CPU_DisAllNormalIrq(); + 4080: e3fffe11 bsr 0x3ca2 // 3ca2 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 4084: 8465 ld.b r3, (r4, 0x5) + 4086: 3b41 cmpnei r3, 1 + 4088: 080b bt 0x409e // 409e + 408a: 1068 lrw r3, 0x200000c0 // 40a8 + 408c: 9340 ld.w r2, (r3, 0x0) + 408e: 957f ld.w r3, (r5, 0x7c) + 4090: 608e subu r2, r3 + 4092: 957c ld.w r3, (r5, 0x70) + 4094: 2305 addi r3, 6 + 4096: 64c8 cmphs r2, r3 + 4098: 0c03 bf 0x409e // 409e + { + m_send.BusState_Flag = UART_BUSIDLE; + 409a: 3300 movi r3, 0 + 409c: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 409e: e3fffdff bsr 0x3c9c // 3c9c + } +} + 40a2: 1492 pop r4-r5, r15 + 40a4: 2000044c .long 0x2000044c + 40a8: 200000c0 .long 0x200000c0 + +Disassembly of section .text.BusBusy_Task: + +000040ac : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 40ac: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 40ae: 1094 lrw r4, 0x2000044c // 40fc + 40b0: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 40b2: e3fffdf8 bsr 0x3ca2 // 3ca2 + m_send.BusState_Flag = UART_BUSBUSY; + 40b6: 6150 addu r5, r4 + 40b8: 3301 movi r3, 1 + 40ba: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 40bc: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 40be: 1071 lrw r3, 0x200000c0 // 4100 + 40c0: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 40c2: 9300 ld.w r0, (r3, 0x0) + 40c4: 3380 movi r3, 128 + 40c6: 60d0 addu r3, r4 + 40c8: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 40ca: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 40cc: 600e subu r0, r3 + 40ce: e3fffdd5 bsr 0x3c78 // 3c78 <__umodsi3> + 40d2: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 40d4: 3105 movi r1, 5 + 40d6: 108c lrw r4, 0x20000048 // 4104 + 40d8: 9400 ld.w r0, (r4, 0x0) + 40da: e3fff20c bsr 0x24f2 // 24f2 + 40de: 3841 cmpnei r0, 1 + 40e0: 0806 bt 0x40ec // 40ec + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 40e2: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 40e4: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 40e6: e3fffddb bsr 0x3c9c // 3c9c +} + 40ea: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 40ec: 9400 ld.w r0, (r4, 0x0) + 40ee: 3105 movi r1, 5 + 40f0: e3fff201 bsr 0x24f2 // 24f2 + 40f4: 3840 cmpnei r0, 0 + 40f6: 0bf8 bt 0x40e6 // 40e6 + m_send.HighBit_Flag = 0x00; //低电平 + 40f8: 3300 movi r3, 0 + 40fa: 07f5 br 0x40e4 // 40e4 + 40fc: 2000044c .long 0x2000044c + 4100: 200000c0 .long 0x200000c0 + 4104: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +00004108 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 4108: 1423 subi r14, r14, 12 + 410a: b862 st.w r3, (r14, 0x8) + 410c: b841 st.w r2, (r14, 0x4) + 410e: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 4110: 1403 addi r14, r14, 12 + 4112: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00004114 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 4114: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00004118 : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 4118: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 411a: 3234 movi r2, 52 + 411c: 3100 movi r1, 0 + 411e: 1014 lrw r0, 0x200004f0 // 416c + 4120: e3ffed90 bsr 0x1c40 // 1c40 <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 4124: 321c movi r2, 28 + 4126: 3100 movi r1, 0 + 4128: 1012 lrw r0, 0x200004d4 // 4170 + 412a: e3ffed8b bsr 0x1c40 // 1c40 <__memset_fast> + + //EEPROM_Init(); //按键库初始化前先读取参数 + Boot_Function_Init(); + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 412e: 1092 lrw r4, 0x20000524 // 4174 + Boot_Function_Init(); + 4130: e00013fe bsr 0x692c // 692c + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 4134: 8405 ld.b r0, (r4, 0x5) + 4136: 102f lrw r1, 0x200004d4 // 4170 + 4138: e00005ae bsr 0x4c94 // 4c94 + if(rev == 0x00){ + 413c: 3840 cmpnei r0, 0 + 413e: 080e bt 0x415a // 415a + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4140: 8405 ld.b r0, (r4, 0x5) + 4142: 102c lrw r1, 0x200004d4 // 4170 + 4144: e00005fe bsr 0x4d40 // 4d40 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 4148: 100a lrw r0, 0x200004d4 // 4170 + 414a: e00006a3 bsr 0x4e90 // 4e90 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 414e: e0002f7f bsr 0xa04c // a04c + + base_update_f = 0x01; //触摸状态强制更新 + 4152: 106a lrw r3, 0x200009cd // 4178 + 4154: 3201 movi r2, 1 + 4156: a340 st.b r2, (r3, 0x0) + +} + 4158: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 415a: 1029 lrw r1, 0xa8b6 // 417c + 415c: 3000 movi r0, 0 + 415e: e3ffffd5 bsr 0x4108 // 4108 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4162: 8405 ld.b r0, (r4, 0x5) + 4164: 1023 lrw r1, 0x200004d4 // 4170 + 4166: e000065d bsr 0x4e20 // 4e20 + 416a: 07ef br 0x4148 // 4148 + 416c: 200004f0 .long 0x200004f0 + 4170: 200004d4 .long 0x200004d4 + 4174: 20000524 .long 0x20000524 + 4178: 200009cd .long 0x200009cd + 417c: 0000a8b6 .long 0x0000a8b6 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00004180 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 4180: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 4182: 3804 cmphsi r0, 5 + 4184: 0818 bt 0x41b4 // 41b4 + 4186: 106d lrw r3, 0x200004f0 // 41b8 + 4188: e3ffe5ba bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 418c: 0e0b0803 .long 0x0e0b0803 + 4190: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 4192: 930a ld.w r0, (r3, 0x28) + 4194: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 4196: 3301 movi r3, 1 + U8_T state = 0; + 4198: 680c and r0, r3 +// } + break; + } + + return state; +} + 419a: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 419c: 930a ld.w r0, (r3, 0x28) + 419e: 480a lsri r0, r0, 10 + 41a0: 07fb br 0x4196 // 4196 + if(g_key.key_state & 0x0800){ + 41a2: 930a ld.w r0, (r3, 0x28) + 41a4: 480b lsri r0, r0, 11 + 41a6: 07f8 br 0x4196 // 4196 + if(g_key.key_state & 0x1000){ + 41a8: 930a ld.w r0, (r3, 0x28) + 41aa: 480c lsri r0, r0, 12 + 41ac: 07f5 br 0x4196 // 4196 + if(g_key.key_state & 0x2000){ + 41ae: 930a ld.w r0, (r3, 0x28) + 41b0: 480d lsri r0, r0, 13 + 41b2: 07f2 br 0x4196 // 4196 + U8_T state = 0; + 41b4: 3000 movi r0, 0 + 41b6: 07f2 br 0x419a // 419a + 41b8: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_RS485_Printf_3: + +000041bc : +void TouchKey_RS485_Printf_3(void){ + 41bc: 14d4 push r4-r7, r15 + 41be: 143b subi r14, r14, 108 + send_buff[send_len++] = 0x0D; + 41c0: 1c02 addi r4, r14, 8 + 41c2: 330d movi r3, 13 + 41c4: a460 st.b r3, (r4, 0x0) + send_buff[send_len++] = 0x0A; + 41c6: 330a movi r3, 10 + 41c8: a461 st.b r3, (r4, 0x1) + 41ca: 3600 movi r6, 0 + U16_T trigger_state = 0x00;//触发状态 + 41cc: 3500 movi r5, 0 + if(Get_TouchKey_CH_State(i) == 0x01) + 41ce: 7418 zextb r0, r6 + 41d0: e3ffffd8 bsr 0x4180 // 4180 + 41d4: 3841 cmpnei r0, 1 + 41d6: 0804 bt 0x41de // 41de + trigger_state = (trigger_state | (0x01< + send_buff[send_len++] = trigger_state>>8; + 41e4: 3300 movi r3, 0 + 41e6: a462 st.b r3, (r4, 0x2) + send_buff[send_len++] = trigger_state&0xff; + 41e8: a4a3 st.b r5, (r4, 0x3) + i=MCU_Touch_CH[0]; + 41ea: 0277 lrw r3, 0x20000068 // 4488 + 41ec: 5b42 addi r2, r3, 1 + send_buff[send_len++] = sampling_data0[i]>>8; + 41ee: 8361 ld.b r3, (r3, 0x1) + 41f0: 4361 lsli r3, r3, 1 + 41f2: 02b8 lrw r5, 0x20000bda // 448c + 41f4: 5d2c addu r1, r5, r3 + i=MCU_Touch_CH[0]; + 41f6: b841 st.w r2, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]>>8; + 41f8: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 41fa: 0219 lrw r0, 0x20000888 // 4490 + send_buff[send_len++] = sampling_data0[i]>>8; + 41fc: 4a48 lsri r2, r2, 8 + 41fe: a444 st.b r2, (r4, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4200: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4202: 582c addu r1, r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4204: a445 st.b r2, (r4, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 4206: 8940 ld.h r2, (r1, 0x0) + 4208: 4a48 lsri r2, r2, 8 + 420a: a446 st.b r2, (r4, 0x6) + send_buff[send_len++] = baseline_data0[i]&0xff; + 420c: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 420e: 023d lrw r1, 0x20000b92 // 4494 + 4210: 604c addu r1, r3 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4212: a447 st.b r2, (r4, 0x7) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4214: 8940 ld.h r2, (r1, 0x0) + 4216: 4a48 lsri r2, r2, 8 + 4218: a448 st.b r2, (r4, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 421a: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 421c: 0320 lrw r1, 0x20000970 // 4498 + 421e: 604c addu r1, r3 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4220: a449 st.b r2, (r4, 0x9) + send_buff[send_len++] = sampling_data1[i]>>8; + 4222: 8940 ld.h r2, (r1, 0x0) + 4224: 4a48 lsri r2, r2, 8 + 4226: a44a st.b r2, (r4, 0xa) + send_buff[send_len++] = sampling_data1[i]&0xff; + 4228: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 422a: 0322 lrw r1, 0x20000a32 // 449c + 422c: 604c addu r1, r3 + send_buff[send_len++] = sampling_data1[i]&0xff; + 422e: a44b st.b r2, (r4, 0xb) + send_buff[send_len++] = baseline_data1[i]>>8; + 4230: 8940 ld.h r2, (r1, 0x0) + 4232: 4a48 lsri r2, r2, 8 + 4234: a44c st.b r2, (r4, 0xc) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4236: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4238: 0325 lrw r1, 0x200008f0 // 44a0 + 423a: 604c addu r1, r3 + send_buff[send_len++] = baseline_data1[i]&0xff; + 423c: a44d st.b r2, (r4, 0xd) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 423e: 8940 ld.h r2, (r1, 0x0) + 4240: 4a48 lsri r2, r2, 8 + 4242: a44e st.b r2, (r4, 0xe) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4244: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 4246: 0327 lrw r1, 0x20000a66 // 44a4 + 4248: 604c addu r1, r3 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 424a: a44f st.b r2, (r4, 0xf) + send_buff[send_len++] = sampling_data2[i]>>8; + 424c: 8940 ld.h r2, (r1, 0x0) + 424e: 4a48 lsri r2, r2, 8 + 4250: a450 st.b r2, (r4, 0x10) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4252: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 4254: 032a lrw r1, 0x20000b48 // 44a8 + 4256: 604c addu r1, r3 + send_buff[send_len++] = sampling_data2[i]&0xff; + 4258: a451 st.b r2, (r4, 0x11) + send_buff[send_len++] = baseline_data2[i]>>8; + 425a: 8940 ld.h r2, (r1, 0x0) + 425c: 4a48 lsri r2, r2, 8 + 425e: a452 st.b r2, (r4, 0x12) + send_buff[send_len++] = baseline_data2[i]&0xff; + 4260: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4262: 032c lrw r1, 0x200008c4 // 44ac + 4264: 60c4 addu r3, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 4266: a453 st.b r2, (r4, 0x13) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4268: 8b40 ld.h r2, (r3, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 426a: 8b60 ld.h r3, (r3, 0x0) + 426c: a475 st.b r3, (r4, 0x15) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 426e: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 4270: 9861 ld.w r3, (r14, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4272: a454 st.b r2, (r4, 0x14) + send_buff[send_len++] = sampling_data0[i]>>8; + 4274: 8341 ld.b r2, (r3, 0x1) + 4276: 4241 lsli r2, r2, 1 + 4278: 5dc8 addu r6, r5, r2 + 427a: 8e60 ld.h r3, (r6, 0x0) + 427c: 4b68 lsri r3, r3, 8 + 427e: a476 st.b r3, (r4, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4280: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4282: 58c8 addu r6, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4284: a477 st.b r3, (r4, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 4286: 8e60 ld.h r3, (r6, 0x0) + 4288: 4b68 lsri r3, r3, 8 + 428a: a478 st.b r3, (r4, 0x18) + send_buff[send_len++] = baseline_data0[i]&0xff; + 428c: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 428e: 03dd lrw r6, 0x20000b92 // 4494 + 4290: 6188 addu r6, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4292: a479 st.b r3, (r4, 0x19) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4294: 8e60 ld.h r3, (r6, 0x0) + 4296: 4b68 lsri r3, r3, 8 + 4298: a47a st.b r3, (r4, 0x1a) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 429a: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 429c: 13df lrw r6, 0x20000970 // 4498 + 429e: 6188 addu r6, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 42a0: a47b st.b r3, (r4, 0x1b) + send_buff[send_len++] = sampling_data1[i]>>8; + 42a2: 8e60 ld.h r3, (r6, 0x0) + 42a4: 4b68 lsri r3, r3, 8 + 42a6: a47c st.b r3, (r4, 0x1c) + send_buff[send_len++] = sampling_data1[i]&0xff; + 42a8: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 42aa: 13dd lrw r6, 0x20000a32 // 449c + 42ac: 6188 addu r6, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 42ae: a47d st.b r3, (r4, 0x1d) + send_buff[send_len++] = baseline_data1[i]>>8; + 42b0: 8e60 ld.h r3, (r6, 0x0) + 42b2: 4b68 lsri r3, r3, 8 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 42b4: 13fb lrw r7, 0x200008f0 // 44a0 + 42b6: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]>>8; + 42b8: a47e st.b r3, (r4, 0x1e) + send_buff[send_len++] = baseline_data1[i]&0xff; + 42ba: 8e60 ld.h r3, (r6, 0x0) + 42bc: a47f st.b r3, (r4, 0x1f) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 42be: 8fc0 ld.h r6, (r7, 0x0) + 42c0: 3320 movi r3, 32 + 42c2: 60d0 addu r3, r4 + 42c4: 4ec8 lsri r6, r6, 8 + 42c6: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 42c8: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 42ca: 13f7 lrw r7, 0x20000a66 // 44a4 + 42cc: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 42ce: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = sampling_data2[i]>>8; + 42d0: 8fc0 ld.h r6, (r7, 0x0) + 42d2: 4ec8 lsri r6, r6, 8 + 42d4: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = sampling_data2[i]&0xff; + 42d6: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 42d8: 13f4 lrw r7, 0x20000b48 // 44a8 + 42da: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 42dc: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = baseline_data2[i]>>8; + 42de: 8fc0 ld.h r6, (r7, 0x0) + 42e0: 4ec8 lsri r6, r6, 8 + 42e2: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 42e4: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 42e6: 8fc0 ld.h r6, (r7, 0x0) + 42e8: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 42ea: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 42ec: 8a40 ld.h r2, (r2, 0x0) + 42ee: a347 st.b r2, (r3, 0x7) + send_buff[send_len++] = sampling_data0[i]>>8; + 42f0: 9841 ld.w r2, (r14, 0x4) + 42f2: 8242 ld.b r2, (r2, 0x2) + 42f4: 4241 lsli r2, r2, 1 + 42f6: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 42f8: 4ec8 lsri r6, r6, 8 + 42fa: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data0[i]>>8; + 42fc: 8fc0 ld.h r6, (r7, 0x0) + 42fe: 4ec8 lsri r6, r6, 8 + 4300: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4302: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4304: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4306: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = baseline_data0[i]>>8; + 4308: 8fc0 ld.h r6, (r7, 0x0) + 430a: 4ec8 lsri r6, r6, 8 + 430c: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = baseline_data0[i]&0xff; + 430e: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4310: 13e1 lrw r7, 0x20000b92 // 4494 + 4312: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4314: a3cb st.b r6, (r3, 0xb) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4316: 8fc0 ld.h r6, (r7, 0x0) + 4318: 4ec8 lsri r6, r6, 8 + 431a: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 431c: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 431e: 12ff lrw r7, 0x20000970 // 4498 + 4320: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4322: a3cd st.b r6, (r3, 0xd) + send_buff[send_len++] = sampling_data1[i]>>8; + 4324: 8fc0 ld.h r6, (r7, 0x0) + 4326: 4ec8 lsri r6, r6, 8 + 4328: a3ce st.b r6, (r3, 0xe) + send_buff[send_len++] = sampling_data1[i]&0xff; + 432a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 432c: 12fc lrw r7, 0x20000a32 // 449c + 432e: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 4330: a3cf st.b r6, (r3, 0xf) + send_buff[send_len++] = baseline_data1[i]>>8; + 4332: 8fc0 ld.h r6, (r7, 0x0) + 4334: 4ec8 lsri r6, r6, 8 + 4336: a3d0 st.b r6, (r3, 0x10) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4338: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 433a: 12fa lrw r7, 0x200008f0 // 44a0 + 433c: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 433e: a3d1 st.b r6, (r3, 0x11) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4340: 8fc0 ld.h r6, (r7, 0x0) + 4342: 4ec8 lsri r6, r6, 8 + 4344: a3d2 st.b r6, (r3, 0x12) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4346: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 4348: 12f7 lrw r7, 0x20000a66 // 44a4 + 434a: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 434c: a3d3 st.b r6, (r3, 0x13) + send_buff[send_len++] = sampling_data2[i]>>8; + 434e: 8fc0 ld.h r6, (r7, 0x0) + 4350: 4ec8 lsri r6, r6, 8 + 4352: a3d4 st.b r6, (r3, 0x14) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4354: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 4356: 12f5 lrw r7, 0x20000b48 // 44a8 + 4358: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 435a: a3d5 st.b r6, (r3, 0x15) + send_buff[send_len++] = baseline_data2[i]>>8; + 435c: 8fc0 ld.h r6, (r7, 0x0) + 435e: 4ec8 lsri r6, r6, 8 + 4360: a3d6 st.b r6, (r3, 0x16) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4362: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 4364: 8fc0 ld.h r6, (r7, 0x0) + 4366: a3d7 st.b r6, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4368: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 436a: 8a40 ld.h r2, (r2, 0x0) + 436c: a359 st.b r2, (r3, 0x19) + send_buff[send_len++] = sampling_data0[i]>>8; + 436e: 9841 ld.w r2, (r14, 0x4) + 4370: 8243 ld.b r2, (r2, 0x3) + 4372: 4241 lsli r2, r2, 1 + 4374: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4376: 4ec8 lsri r6, r6, 8 + 4378: a3d8 st.b r6, (r3, 0x18) + send_buff[send_len++] = sampling_data0[i]>>8; + 437a: 8fc0 ld.h r6, (r7, 0x0) + 437c: 4ec8 lsri r6, r6, 8 + 437e: a3da st.b r6, (r3, 0x1a) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4380: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4382: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4384: a3db st.b r6, (r3, 0x1b) + send_buff[send_len++] = baseline_data0[i]>>8; + 4386: 8fc0 ld.h r6, (r7, 0x0) + 4388: 4ec8 lsri r6, r6, 8 + 438a: a3dc st.b r6, (r3, 0x1c) + send_buff[send_len++] = baseline_data0[i]&0xff; + 438c: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 438e: 12e2 lrw r7, 0x20000b92 // 4494 + 4390: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4392: a3dd st.b r6, (r3, 0x1d) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4394: 8fc0 ld.h r6, (r7, 0x0) + 4396: 4ec8 lsri r6, r6, 8 + 4398: a3de st.b r6, (r3, 0x1e) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 439a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 439c: 11ff lrw r7, 0x20000970 // 4498 + 439e: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 43a0: a3df st.b r6, (r3, 0x1f) + send_buff[send_len++] = sampling_data1[i]>>8; + 43a2: 8fc0 ld.h r6, (r7, 0x0) + 43a4: 3340 movi r3, 64 + 43a6: 60d0 addu r3, r4 + 43a8: 4ec8 lsri r6, r6, 8 + 43aa: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = sampling_data1[i]&0xff; + 43ac: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 43ae: 11fc lrw r7, 0x20000a32 // 449c + 43b0: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 43b2: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = baseline_data1[i]>>8; + 43b4: 8fc0 ld.h r6, (r7, 0x0) + 43b6: 4ec8 lsri r6, r6, 8 + 43b8: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = baseline_data1[i]&0xff; + 43ba: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 43bc: 11f9 lrw r7, 0x200008f0 // 44a0 + 43be: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 43c0: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 43c2: 8fc0 ld.h r6, (r7, 0x0) + 43c4: 4ec8 lsri r6, r6, 8 + 43c6: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 43c8: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 43ca: 11f7 lrw r7, 0x20000a66 // 44a4 + 43cc: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 43ce: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = sampling_data2[i]>>8; + 43d0: 8fc0 ld.h r6, (r7, 0x0) + 43d2: 4ec8 lsri r6, r6, 8 + 43d4: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data2[i]&0xff; + 43d6: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 43d8: 11f4 lrw r7, 0x20000b48 // 44a8 + 43da: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 43dc: a3c7 st.b r6, (r3, 0x7) + send_buff[send_len++] = baseline_data2[i]>>8; + 43de: 8fc0 ld.h r6, (r7, 0x0) + 43e0: 4ec8 lsri r6, r6, 8 + 43e2: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 43e4: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 43e6: 8fc0 ld.h r6, (r7, 0x0) + 43e8: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 43ea: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 43ec: 8a40 ld.h r2, (r2, 0x0) + 43ee: a34b st.b r2, (r3, 0xb) + send_buff[send_len++] = sampling_data0[i]>>8; + 43f0: 9841 ld.w r2, (r14, 0x4) + 43f2: 8244 ld.b r2, (r2, 0x4) + 43f4: 4241 lsli r2, r2, 1 + 43f6: 6148 addu r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 43f8: 4ec8 lsri r6, r6, 8 + 43fa: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = sampling_data0[i]>>8; + 43fc: 8dc0 ld.h r6, (r5, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 43fe: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data0[i]>>8; + 4400: 4ec8 lsri r6, r6, 8 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4402: 8da0 ld.h r5, (r5, 0x0) + send_buff[send_len++] = sampling_data0[i]>>8; + 4404: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4406: a3ad st.b r5, (r3, 0xd) + send_buff[send_len++] = baseline_data0[i]>>8; + 4408: 88a0 ld.h r5, (r0, 0x0) + 440a: 4da8 lsri r5, r5, 8 + 440c: a3ae st.b r5, (r3, 0xe) + send_buff[send_len++] = baseline_data0[i]&0xff; + 440e: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4410: 11a1 lrw r5, 0x20000b92 // 4494 + 4412: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4414: a30f st.b r0, (r3, 0xf) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4416: 8d00 ld.h r0, (r5, 0x0) + 4418: 4808 lsri r0, r0, 8 + 441a: a310 st.b r0, (r3, 0x10) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 441c: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 441e: 10bf lrw r5, 0x20000970 // 4498 + 4420: 6148 addu r5, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4422: a311 st.b r0, (r3, 0x11) + send_buff[send_len++] = sampling_data1[i]>>8; + 4424: 8d00 ld.h r0, (r5, 0x0) + 4426: 4808 lsri r0, r0, 8 + 4428: a312 st.b r0, (r3, 0x12) + send_buff[send_len++] = sampling_data1[i]&0xff; + 442a: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 442c: 10bc lrw r5, 0x20000a32 // 449c + 442e: 6148 addu r5, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 4430: a313 st.b r0, (r3, 0x13) + send_buff[send_len++] = baseline_data1[i]>>8; + 4432: 8d00 ld.h r0, (r5, 0x0) + 4434: 4808 lsri r0, r0, 8 + 4436: a314 st.b r0, (r3, 0x14) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4438: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 443a: 10ba lrw r5, 0x200008f0 // 44a0 + 443c: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 443e: a315 st.b r0, (r3, 0x15) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4440: 8d00 ld.h r0, (r5, 0x0) + 4442: 4808 lsri r0, r0, 8 + 4444: a316 st.b r0, (r3, 0x16) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4446: 8d00 ld.h r0, (r5, 0x0) + 4448: a317 st.b r0, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 444a: 6048 addu r1, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 444c: 1016 lrw r0, 0x20000a66 // 44a4 + 444e: 6008 addu r0, r2 + 4450: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4452: 8800 ld.h r0, (r0, 0x0) + 4454: a319 st.b r0, (r3, 0x19) + send_buff[send_len++] = sampling_data2[i]>>8; + 4456: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = baseline_data2[i]>>8; + 4458: 1014 lrw r0, 0x20000b48 // 44a8 + 445a: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 445c: a3b8 st.b r5, (r3, 0x18) + send_buff[send_len++] = baseline_data2[i]>>8; + 445e: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data2[i]&0xff; + 4460: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4462: 8940 ld.h r2, (r1, 0x0) + 4464: 4a48 lsri r2, r2, 8 + 4466: a35c st.b r2, (r3, 0x1c) + send_buff[send_len++] = baseline_data2[i]>>8; + 4468: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 446a: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 446c: a3ba st.b r5, (r3, 0x1a) + send_buff[send_len++] = baseline_data2[i]&0xff; + 446e: a31b st.b r0, (r3, 0x1b) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 4470: a35d st.b r2, (r3, 0x1d) + Set_GroupSend(send_buff,send_len,1,BUSSend_ValidTime3,20); //组包 + 4472: 3314 movi r3, 20 + 4474: b860 st.w r3, (r14, 0x0) + 4476: 3396 movi r3, 150 + 4478: 4361 lsli r3, r3, 1 + 447a: 3201 movi r2, 1 + 447c: 315e movi r1, 94 + 447e: 6c13 mov r0, r4 + 4480: e3fffd9c bsr 0x3fb8 // 3fb8 +} + 4484: 141b addi r14, r14, 108 + 4486: 1494 pop r4-r7, r15 + 4488: 20000068 .long 0x20000068 + 448c: 20000bda .long 0x20000bda + 4490: 20000888 .long 0x20000888 + 4494: 20000b92 .long 0x20000b92 + 4498: 20000970 .long 0x20000970 + 449c: 20000a32 .long 0x20000a32 + 44a0: 200008f0 .long 0x200008f0 + 44a4: 20000a66 .long 0x20000a66 + 44a8: 20000b48 .long 0x20000b48 + 44ac: 200008c4 .long 0x200008c4 + +Disassembly of section .text.Touch_Key_Event_Handling: + +000044b0 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 44b0: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 44b2: 118a lrw r4, 0x200004f0 // 4558 + 44b4: 8465 ld.b r3, (r4, 0x5) + 44b6: 3b42 cmpnei r3, 2 + 44b8: 081c bt 0x44f0 // 44f0 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 44ba: 3300 movi r3, 0 + 44bc: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 44be: 8466 ld.b r3, (r4, 0x6) + 44c0: 3b42 cmpnei r3, 2 + 44c2: 0820 bt 0x4502 // 4502 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 44c4: 3300 movi r3, 0 + 44c6: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 44c8: 8467 ld.b r3, (r4, 0x7) + 44ca: 3b42 cmpnei r3, 2 + 44cc: 0824 bt 0x4514 // 4514 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 44ce: 3300 movi r3, 0 + 44d0: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 44d2: e000172b bsr 0x7328 // 7328 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 44d6: 8468 ld.b r3, (r4, 0x8) + 44d8: 3b42 cmpnei r3, 2 + 44da: 0829 bt 0x452c // 452c + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 44dc: 3300 movi r3, 0 + 44de: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 44e0: e00017dc bsr 0x7498 // 7498 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 44e4: 8469 ld.b r3, (r4, 0x9) + 44e6: 3b42 cmpnei r3, 2 + 44e8: 082e bt 0x4544 // 4544 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 44ea: 3300 movi r3, 0 + 44ec: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 44ee: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 44f0: 3b44 cmpnei r3, 4 + 44f2: 0fe4 bf 0x44ba // 44ba + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 44f4: 3b41 cmpnei r3, 1 + 44f6: 0be4 bt 0x44be // 44be + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 44f8: 3300 movi r3, 0 + 44fa: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 44fc: e00015ca bsr 0x7090 // 7090 + 4500: 07df br 0x44be // 44be + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4502: 3b44 cmpnei r3, 4 + 4504: 0fe0 bf 0x44c4 // 44c4 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 4506: 3b41 cmpnei r3, 1 + 4508: 0be0 bt 0x44c8 // 44c8 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 450a: 3300 movi r3, 0 + 450c: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 450e: e0001627 bsr 0x715c // 715c + 4512: 07db br 0x44c8 // 44c8 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4514: 3b44 cmpnei r3, 4 + 4516: 0804 bt 0x451e // 451e + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4518: 3300 movi r3, 0 + 451a: a467 st.b r3, (r4, 0x7) + 451c: 07dd br 0x44d6 // 44d6 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 451e: 3b41 cmpnei r3, 1 + 4520: 0bdb bt 0x44d6 // 44d6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4522: 3300 movi r3, 0 + 4524: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 4526: e0001681 bsr 0x7228 // 7228 + 452a: 07d6 br 0x44d6 // 44d6 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 452c: 3b44 cmpnei r3, 4 + 452e: 0804 bt 0x4536 // 4536 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 4530: 3300 movi r3, 0 + 4532: a468 st.b r3, (r4, 0x8) + 4534: 07d8 br 0x44e4 // 44e4 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 4536: 3b41 cmpnei r3, 1 + 4538: 0bd6 bt 0x44e4 // 44e4 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 453a: 3300 movi r3, 0 + 453c: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 453e: e000172d bsr 0x7398 // 7398 + 4542: 07d1 br 0x44e4 // 44e4 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4544: 3b44 cmpnei r3, 4 + 4546: 0fd2 bf 0x44ea // 44ea + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 4548: 3b41 cmpnei r3, 1 + 454a: 0bd2 bt 0x44ee // 44ee + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 454c: 3300 movi r3, 0 + 454e: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 4550: e00017dc bsr 0x7508 // 7508 +} + 4554: 07cd br 0x44ee // 44ee + 4556: 0000 bkpt + 4558: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +0000455c : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 455c: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 455e: 106c lrw r3, 0x20000868 // 458c + 4560: 8340 ld.b r2, (r3, 0x0) + 4562: 3a41 cmpnei r2, 1 + 4564: 0c04 bf 0x456c // 456c + 4566: 8362 ld.b r3, (r3, 0x2) + 4568: 3b45 cmpnei r3, 5 + 456a: 0c10 bf 0x458a // 458a + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 456c: 1069 lrw r3, 0x200004f0 // 4590 + 456e: 835b ld.b r2, (r3, 0x1b) + 4570: 3a41 cmpnei r2, 1 + 4572: 080c bt 0x458a // 458a + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 4574: 1028 lrw r1, 0x200000c0 // 4594 + 4576: 9140 ld.w r2, (r1, 0x0) + 4578: 930c ld.w r0, (r3, 0x30) + 457a: 6082 subu r2, r0 + 457c: 3095 movi r0, 149 + 457e: 6480 cmphs r0, r2 + 4580: 0805 bt 0x458a // 458a + g_key.key_dug_tick = SysTick_1ms; + 4582: 9140 ld.w r2, (r1, 0x0) + 4584: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + //TouchKey_RS485_Printf(); + //TouchKey_RS485_Printf_2(); + TouchKey_RS485_Printf_3(); + 4586: e3fffe1b bsr 0x41bc // 41bc + + } + } +} + 458a: 1490 pop r15 + 458c: 20000868 .long 0x20000868 + 4590: 200004f0 .long 0x200004f0 + 4594: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Touch_Key_Task: + +00004598 : +void Touch_Key_Task(void){ + 4598: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 459a: 113b lrw r1, 0x200000c0 // 4684 + 459c: 117b lrw r3, 0x200004f0 // 4688 + 459e: 9140 ld.w r2, (r1, 0x0) + 45a0: 930b ld.w r0, (r3, 0x2c) + 45a2: 6082 subu r2, r0 + 45a4: 3a04 cmphsi r2, 5 + 45a6: 0806 bt 0x45b2 // 45b2 + break; + } + } + } + + Touch_Key_Event_Handling(); + 45a8: e3ffff84 bsr 0x44b0 // 44b0 + + TouchKey_Set_Interface_Task(); + 45ac: e3ffffd8 bsr 0x455c // 455c + +} + 45b0: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 45b2: 9140 ld.w r2, (r1, 0x0) + 45b4: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 45b6: 1136 lrw r1, 0x20000a28 // 468c + 45b8: 9140 ld.w r2, (r1, 0x0) + 45ba: 3a40 cmpnei r2, 0 + 45bc: 0c02 bf 0x45c0 // 45c0 + g_key.key_state = Key_Map; + 45be: 9140 ld.w r2, (r1, 0x0) + 45c0: 11d2 lrw r6, 0x200004f0 // 4688 +void Touch_Key_Task(void){ + 45c2: 6d5b mov r5, r6 + g_key.key_state = Key_Map; + 45c4: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 45c6: 3400 movi r4, 0 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 45c8: 11f2 lrw r7, 0x200005e0 // 4690 + switch (g_key.KEY_STA[i]) { + 45ca: 8640 ld.b r2, (r6, 0x0) + 45cc: 3a41 cmpnei r2, 1 + 45ce: 0c2e bf 0x462a // 462a + 45d0: 3a40 cmpnei r2, 0 + 45d2: 0c0a bf 0x45e6 // 45e6 + 45d4: 3a42 cmpnei r2, 2 + 45d6: 0c48 bf 0x4666 // 4666 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 45d8: 2400 addi r4, 1 + 45da: 7510 zextb r4, r4 + 45dc: 3c45 cmpnei r4, 5 + 45de: 2600 addi r6, 1 + 45e0: 2501 addi r5, 2 + 45e2: 0bf4 bt 0x45ca // 45ca + 45e4: 07e2 br 0x45a8 // 45a8 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 45e6: 6c13 mov r0, r4 + 45e8: e3fffdcc bsr 0x4180 // 4180 + 45ec: 3841 cmpnei r0, 1 + 45ee: 0819 bt 0x4620 // 4620 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 45f0: 8654 ld.b r2, (r6, 0x14) + 45f2: 3a01 cmphsi r2, 2 + 45f4: 0804 bt 0x45fc // 45fc + g_key.delayCnt[i]++; + 45f6: 2200 addi r2, 1 + 45f8: a654 st.b r2, (r6, 0x14) + 45fa: 07ef br 0x45d8 // 45d8 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 45fc: 8745 ld.b r2, (r7, 0x5) + 45fe: 3a41 cmpnei r2, 1 + 4600: 0c03 bf 0x4606 // 4606 + 4602: 3c44 cmpnei r4, 4 + 4604: 0804 bt 0x460c // 460c + Controlled_Buzzer(0x01); + 4606: 3001 movi r0, 1 + 4608: e0001020 bsr 0x6648 // 6648 + Contol_Switch_ClickAction(i,Control_ON); + 460c: 3101 movi r1, 1 + 460e: 6c13 mov r0, r4 + 4610: e0000a72 bsr 0x5af4 // 5af4 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 4614: 3301 movi r3, 1 + 4616: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 4618: 3300 movi r3, 0 + 461a: ad6e st.h r3, (r5, 0x1c) + g_key.delayCnt[i] = 0; + 461c: a674 st.b r3, (r6, 0x14) + 461e: 07dd br 0x45d8 // 45d8 + g_key.delayCnt[i] = 0; + 4620: 3300 movi r3, 0 + 4622: a674 st.b r3, (r6, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 4624: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 4626: a665 st.b r3, (r6, 0x5) + 4628: 07d8 br 0x45d8 // 45d8 + g_key.key_time[i]++; + 462a: 8d4e ld.h r2, (r5, 0x1c) + 462c: 2200 addi r2, 1 + 462e: 7489 zexth r2, r2 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 4630: 1079 lrw r3, 0x257 // 4694 + 4632: 648c cmphs r3, r2 + g_key.key_time[i]++; + 4634: ad4e st.h r2, (r5, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 4636: 0c10 bf 0x4656 // 4656 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 4638: 6c13 mov r0, r4 + 463a: e3fffda3 bsr 0x4180 // 4180 + 463e: 3840 cmpnei r0, 0 + 4640: 0bcc bt 0x45d8 // 45d8 + Contol_Switch_ClickAction(i,Control_OFF); + 4642: 3102 movi r1, 2 + 4644: 6c13 mov r0, r4 + 4646: e0000a57 bsr 0x5af4 // 5af4 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 464a: 3301 movi r3, 1 + 464c: a665 st.b r3, (r6, 0x5) + g_key.key_time[i] = 0; + 464e: 3300 movi r3, 0 + 4650: ad6e st.h r3, (r5, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 4652: a660 st.b r3, (r6, 0x0) + 4654: 07c2 br 0x45d8 // 45d8 + g_key.KEY_STA[i] = KEY_STA_S2; + 4656: 3302 movi r3, 2 + 4658: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 465a: 3300 movi r3, 0 + 465c: ad6e st.h r3, (r5, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 465e: 3303 movi r3, 3 + 4660: a66f st.b r3, (r6, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 4662: 3302 movi r3, 2 + 4664: 07e1 br 0x4626 // 4626 + g_key.key_longPress[i] = KEY_VAL_NOT; + 4666: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 4668: 6c13 mov r0, r4 + g_key.key_longPress[i] = KEY_VAL_NOT; + 466a: a66f st.b r3, (r6, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 466c: e3fffd8a bsr 0x4180 // 4180 + 4670: 3840 cmpnei r0, 0 + 4672: 0bb3 bt 0x45d8 // 45d8 + Contol_Switch_ClickAction(i,Control_OFF); + 4674: 3102 movi r1, 2 + 4676: 6c13 mov r0, r4 + 4678: e0000a3e bsr 0x5af4 // 5af4 + g_key.KEY_STA[i] = KEY_STA_S0; + 467c: 3300 movi r3, 0 + 467e: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 4680: 3304 movi r3, 4 + 4682: 07d2 br 0x4626 // 4626 + 4684: 200000c0 .long 0x200000c0 + 4688: 200004f0 .long 0x200004f0 + 468c: 20000a28 .long 0x20000a28 + 4690: 200005e0 .long 0x200005e0 + 4694: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00004698 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 4698: 6040 addu r1, r0 + U8_T data_sum = 0; + 469a: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 46a0: 6cce nor r3, r3 + 46a2: 740c zextb r0, r3 +} + 46a4: 783c jmp r15 + data_sum += data[i]; + 46a6: 8040 ld.b r2, (r0, 0x0) + 46a8: 60c8 addu r3, r2 + 46aa: 74cc zextb r3, r3 + 46ac: 2000 addi r0, 1 + 46ae: 07f7 br 0x469c // 469c + +Disassembly of section .text.TouchKey_Comm_Reply: + +000046b0 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 46b0: 14d2 push r4-r5, r15 + 46b2: 1430 subi r14, r14, 64 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 46b4: 5992 addi r4, r1, 5 + 46b6: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 46b8: 3331 movi r3, 49 + 46ba: 650c cmphs r3, r4 + 46bc: 0803 bt 0x46c2 // 46c2 + para_len = 44; + 46be: 312c movi r1, 44 + reply_len = 50; + 46c0: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 46c2: 3300 movi r3, 0 + 46c4: 2b50 subi r3, 81 + 46c6: dc6e0004 st.b r3, (r14, 0x4) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 46ca: dc8e0006 st.b r4, (r14, 0x6) + send_data[1] = g_eeprom.dev_addr; + 46ce: 1074 lrw r3, 0x20000524 // 471c + 46d0: 8360 ld.b r3, (r3, 0x0) + 46d2: dc6e0005 st.b r3, (r14, 0x5) + send_data[3] = 0x00; + 46d6: 3300 movi r3, 0 + 46d8: dc6e0007 st.b r3, (r14, 0x7) + + for(i=0;i + } + send_data[i+4] = 0xFA; + 46e4: 60c8 addu r3, r2 + 46e6: 3200 movi r2, 0 + 46e8: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 46ea: 6c53 mov r1, r4 + 46ec: 1801 addi r0, r14, 4 + send_data[i+4] = 0xFA; + 46ee: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 46f0: e3ffffd4 bsr 0x4698 // 4698 + +// if (detect_inf.control_model == 0x00){ +// MCU485_SendData(send_data,reply_len); + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 46f4: 3314 movi r3, 20 + 46f6: b860 st.w r3, (r14, 0x0) + 46f8: 3396 movi r3, 150 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 46fa: dc0e0007 st.b r0, (r14, 0x7) + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 46fe: 4361 lsli r3, r3, 1 + 4700: 1801 addi r0, r14, 4 + 4702: 3201 movi r2, 1 + 4704: 6c53 mov r1, r4 + 4706: e3fffc59 bsr 0x3fb8 // 3fb8 +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 470a: 1410 addi r14, r14, 64 + 470c: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 470e: 58ac addu r5, r0, r3 + 4710: 608c addu r2, r3 + 4712: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 471c: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00004720 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 4720: 14d4 push r4-r7, r15 + 4722: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 4724: 80a0 ld.b r5, (r0, 0x0) + 4726: 5dc3 subi r6, r5, 1 + 4728: 7598 zextb r6, r6 + 472a: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 472c: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 472e: 0834 bt 0x4796 // 4796 + 4730: 1125 lrw r1, 0x200004d4 // 47c4 + 4732: 350b movi r5, 11 + 4734: 5862 addi r3, r0, 1 + 4736: 6140 addu r5, r0 + 4738: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 4756: 8479 ld.b r3, (r4, 0x19) + 4758: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 475a: 847a ld.b r3, (r4, 0x1a) + 475c: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 475e: 847b ld.b r3, (r4, 0x1b) + 4760: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 4762: 847c ld.b r3, (r4, 0x1c) + 4764: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4766: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 4768: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 476a: 1037 lrw r1, 0x200004d4 // 47c4 + touch_para.longpress_time = para[29]; + 476c: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 476e: e00002e9 bsr 0x4d40 // 4d40 + + if(rev == 0x00){ + 4772: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4774: 6d43 mov r5, r0 + if(rev == 0x00){ + 4776: 0805 bt 0x4780 // 4780 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 4778: 1033 lrw r1, 0x200004d4 // 47c4 + 477a: 6c1b mov r0, r6 + 477c: e0000256 bsr 0x4c28 // 4c28 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4780: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4782: 3102 movi r1, 2 + 4784: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 4786: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 478a: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 478e: e3ffff91 bsr 0x46b0 // 46b0 +} + 4792: 1401 addi r14, r14, 4 + 4794: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 4796: 3d40 cmpnei r5, 0 + 4798: 0c03 bf 0x479e // 479e + rev = 0x01; + 479a: 3501 movi r5, 1 + 479c: 07f2 br 0x4780 // 4780 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 479e: 8061 ld.b r3, (r0, 0x1) + 47a0: 104a lrw r2, 0xa3e0 // 47c8 + 47a2: 102b lrw r1, 0xa8e3 // 47cc + 47a4: 3000 movi r0, 0 + 47a6: e3fffcb1 bsr 0x4108 // 4108 + if( (para[1] > 0) && (para[1] <= 3) ){ + 47aa: 8461 ld.b r3, (r4, 0x1) + 47ac: 2b00 subi r3, 1 + 47ae: 74cc zextb r3, r3 + 47b0: 3b02 cmphsi r3, 3 + 47b2: 0bf4 bt 0x479a // 479a + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 47b4: 1047 lrw r2, 0x20000868 // 47d0 + g_eeprom.key_sens_level = para[1] - 1; + 47b6: 1008 lrw r0, 0x20000524 // 47d4 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 47b8: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 47ba: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 47bc: e00001be bsr 0x4b38 // 4b38 + 47c0: 07e0 br 0x4780 // 4780 + 47c2: 0000 bkpt + 47c4: 200004d4 .long 0x200004d4 + 47c8: 0000a3e0 .long 0x0000a3e0 + 47cc: 0000a8e3 .long 0x0000a8e3 + 47d0: 20000868 .long 0x20000868 + 47d4: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +000047d8 : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 47d8: 14d3 push r4-r6, r15 + 47da: 142d subi r14, r14, 52 + 47dc: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 47de: 3232 movi r2, 50 + 47e0: 3100 movi r1, 0 + 47e2: 6c3b mov r0, r14 + 47e4: e3ffea2e bsr 0x1c40 // 1c40 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 47e8: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 47ea: 3302 movi r3, 2 + if(para[0] == 0x00){ + 47ec: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 47ee: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 47f2: 0837 bt 0x4860 // 4860 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 47f4: 11d5 lrw r6, 0x20000524 // 48c8 + 47f6: 8605 ld.b r0, (r6, 0x5) + 47f8: 1135 lrw r1, 0x200004d4 // 48cc + 47fa: e000024d bsr 0x4c94 // 4c94 + if(rev != 0x00){ + 47fe: 3840 cmpnei r0, 0 + 4800: 11b3 lrw r5, 0x200004d4 // 48cc + 4802: 0c05 bf 0x480c // 480c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4804: 8605 ld.b r0, (r6, 0x5) + 4806: 6c57 mov r1, r5 + 4808: e000030c bsr 0x4e20 // 4e20 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 480c: 8665 ld.b r3, (r6, 0x5) + 480e: 2300 addi r3, 1 + 4810: dc6e0001 st.b r3, (r14, 0x1) + 4814: 6cfb mov r3, r14 + 4816: 114e lrw r2, 0x200004d4 // 48cc + + for(i=0;i> 8; + 481e: 4928 lsri r1, r1, 8 + 4820: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 482a: 4928 lsri r1, r1, 8 + 482c: a32f st.b r1, (r3, 0xf) + 482e: 2201 addi r2, 2 + 4830: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 4834: 8560 ld.b r3, (r5, 0x0) + 4836: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 483a: 8561 ld.b r3, (r5, 0x1) + 483c: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4840: 8562 ld.b r3, (r5, 0x2) + 4842: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 4846: 8563 ld.b r3, (r5, 0x3) + 4848: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 484c: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 484e: dc6e001e st.b r3, (r14, 0x1e) + 4852: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4854: 7445 zexth r1, r1 + 4856: 6c3b mov r0, r14 + 4858: e3ffff2c bsr 0x46b0 // 46b0 +} + 485c: 140d addi r14, r14, 52 + 485e: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 4860: 3c03 cmphsi r4, 4 + 4862: 0831 bt 0x48c4 // 48c4 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 4864: 2c00 subi r4, 1 + 4866: 7410 zextb r0, r4 + 4868: 1039 lrw r1, 0x200004d4 // 48cc + 486a: e0000215 bsr 0x4c94 // 4c94 + if(rev != 0x00){ + 486e: 3840 cmpnei r0, 0 + 4870: 1097 lrw r4, 0x200004d4 // 48cc + 4872: 0c07 bf 0x4880 // 4880 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 4874: 8500 ld.b r0, (r5, 0x0) + 4876: 2800 subi r0, 1 + 4878: 7400 zextb r0, r0 + 487a: 6c53 mov r1, r4 + 487c: e00002d2 bsr 0x4e20 // 4e20 + reply_buff[reply_len++] = para[0]; + 4880: 8560 ld.b r3, (r5, 0x0) + 4882: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 488a: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 488c: 8902 ld.h r0, (r1, 0x4) + 488e: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 4892: 4808 lsri r0, r0, 8 + 4894: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 489e: 4808 lsri r0, r0, 8 + 48a0: a30f st.b r0, (r3, 0xf) + 48a2: 2101 addi r1, 2 + 48a4: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 48a8: 8460 ld.b r3, (r4, 0x0) + 48aa: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 48ae: 8461 ld.b r3, (r4, 0x1) + 48b0: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 48b4: 8462 ld.b r3, (r4, 0x2) + 48b6: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 48ba: 8463 ld.b r3, (r4, 0x3) + 48bc: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 48c0: 8478 ld.b r3, (r4, 0x18) + 48c2: 07c6 br 0x484e // 484e + reply_buff[reply_len++] = 0x00; + 48c4: 3102 movi r1, 2 + 48c6: 07c7 br 0x4854 // 4854 + 48c8: 20000524 .long 0x20000524 + 48cc: 200004d4 .long 0x200004d4 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +000048d0 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 48d0: 14d0 push r15 + 48d2: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 48d4: 8060 ld.b r3, (r0, 0x0) + 48d6: 3b41 cmpnei r3, 1 + 48d8: 0810 bt 0x48f8 // 48f8 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 48da: 106b lrw r3, 0x200004f0 // 4904 + 48dc: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 48de: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 48e0: 3303 movi r3, 3 + 48e2: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 48e6: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 48e8: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 48ea: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 48ec: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 48f0: e3fffee0 bsr 0x46b0 // 46b0 +} + 48f4: 1401 addi r14, r14, 4 + 48f6: 1490 pop r15 + }else if(para[0] == 0x02){ + 48f8: 3b42 cmpnei r3, 2 + 48fa: 0bf3 bt 0x48e0 // 48e0 + g_key.key_dug_printf = 0x00; + 48fc: 1062 lrw r3, 0x200004f0 // 4904 + 48fe: 3200 movi r2, 0 + 4900: 07ef br 0x48de // 48de + 4902: 0000 bkpt + 4904: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004908 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4908: 14d0 push r15 + 490a: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 490c: 1149 lrw r2, 0x20000bda // 49b0 + reply_buff[reply_len++] = 0x04; //CMD + 490e: 3304 movi r3, 4 + 4910: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4914: 8a69 ld.h r3, (r2, 0x12) + 4916: 4b68 lsri r3, r3, 8 + 4918: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 491c: 8a69 ld.h r3, (r2, 0x12) + 491e: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4922: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4924: 1164 lrw r3, 0x20000888 // 49b4 + 4926: 8b29 ld.h r1, (r3, 0x12) + 4928: 4928 lsri r1, r1, 8 + 492a: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 492e: 8b29 ld.h r1, (r3, 0x12) + 4930: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4934: 8a2a ld.h r1, (r2, 0x14) + 4936: 4928 lsri r1, r1, 8 + 4938: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 493c: 8a2a ld.h r1, (r2, 0x14) + 493e: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4942: 8b2a ld.h r1, (r3, 0x14) + 4944: 4928 lsri r1, r1, 8 + 4946: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 494a: 8b2a ld.h r1, (r3, 0x14) + 494c: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4950: 8a2b ld.h r1, (r2, 0x16) + 4952: 4928 lsri r1, r1, 8 + 4954: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4958: 8a2b ld.h r1, (r2, 0x16) + 495a: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 495e: 8b2b ld.h r1, (r3, 0x16) + 4960: 4928 lsri r1, r1, 8 + 4962: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4966: 8b2b ld.h r1, (r3, 0x16) + 4968: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 496c: 8a2c ld.h r1, (r2, 0x18) + 496e: 4928 lsri r1, r1, 8 + 4970: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4974: 8a2c ld.h r1, (r2, 0x18) + 4976: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 497a: 8b2c ld.h r1, (r3, 0x18) + 497c: 4928 lsri r1, r1, 8 + 497e: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4982: 8b2c ld.h r1, (r3, 0x18) + 4984: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4988: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 498a: 8a4d ld.h r2, (r2, 0x1a) + 498c: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4990: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4992: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4994: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4998: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 499a: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 499c: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 499e: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 49a2: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 49a6: e3fffe85 bsr 0x46b0 // 46b0 +} + 49aa: 140d addi r14, r14, 52 + 49ac: 1490 pop r15 + 49ae: 0000 bkpt + 49b0: 20000bda .long 0x20000bda + 49b4: 20000888 .long 0x20000888 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +000049b8 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 49b8: 14d0 push r15 + 49ba: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 49bc: 3305 movi r3, 5 + 49be: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 49c2: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 49c4: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 49c6: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 49c8: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 49cc: e3fffe72 bsr 0x46b0 // 46b0 + 49d0: 0400 br 0x49d0 // 49d0 + +Disassembly of section .text.TouchKey_Comm_Processing: + +000049d4 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 49d4: 14d2 push r4-r5, r15 + 49d6: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 49d8: 8060 ld.b r3, (r0, 0x0) + 49da: 32af movi r2, 175 + 49dc: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 49de: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 49e0: 0c09 bf 0x49f2 // 49f2 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 49e2: 3000 movi r0, 0 + 49e4: 114b lrw r2, 0xa3fc // 4a90 + 49e6: 112c lrw r1, 0xa8f3 // 4a94 + 49e8: e3fffb90 bsr 0x4108 // 4108 + return 0x01; + 49ec: 3001 movi r0, 1 + break; + } + + + return 0; +} + 49ee: 1401 addi r14, r14, 4 + 49f0: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 49f2: 114a lrw r2, 0x20000524 // 4a98 + 49f4: 8061 ld.b r3, (r0, 0x1) + 49f6: 8240 ld.b r2, (r2, 0x0) + 49f8: 64ca cmpne r2, r3 + 49fa: 0c08 bf 0x4a0a // 4a0a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 49fc: 3000 movi r0, 0 + 49fe: 1145 lrw r2, 0xa3fc // 4a90 + 4a00: 1127 lrw r1, 0xa905 // 4a9c + 4a02: e3fffb83 bsr 0x4108 // 4108 + return 0x02; + 4a06: 3002 movi r0, 2 + 4a08: 07f3 br 0x49ee // 49ee + if(data[2] != len){ + 4a0a: 8062 ld.b r3, (r0, 0x2) + 4a0c: 750d zexth r4, r3 + 4a0e: 6452 cmpne r4, r1 + 4a10: 0c09 bf 0x4a22 // 4a22 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 4a12: b820 st.w r1, (r14, 0x0) + 4a14: 105f lrw r2, 0xa3fc // 4a90 + 4a16: 1123 lrw r1, 0xa916 // 4aa0 + 4a18: 3000 movi r0, 0 + 4a1a: e3fffb77 bsr 0x4108 // 4108 + return 0x03; + 4a1e: 3003 movi r0, 3 + 4a20: 07e7 br 0x49ee // 49ee + if(data[len-1] != 0xFA){ + 4a22: 60c0 addu r3, r0 + 4a24: 2b00 subi r3, 1 + 4a26: 8360 ld.b r3, (r3, 0x0) + 4a28: 32fa movi r2, 250 + 4a2a: 648e cmpne r3, r2 + 4a2c: 0c07 bf 0x4a3a // 4a3a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 4a2e: 1059 lrw r2, 0xa3fc // 4a90 + 4a30: 103d lrw r1, 0xa929 // 4aa4 + 4a32: 3000 movi r0, 0 + 4a34: e3fffb6a bsr 0x4108 // 4108 + 4a38: 07f3 br 0x4a1e // 4a1e + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 4a3a: 5c23 subi r1, r4, 1 + 4a3c: 7445 zexth r1, r1 + 4a3e: e3fffe2d bsr 0x4698 // 4698 + 4a42: 3840 cmpnei r0, 0 + 4a44: 0806 bt 0x4a50 // 4a50 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 4a46: 1053 lrw r2, 0xa3fc // 4a90 + 4a48: 1038 lrw r1, 0xa939 // 4aa8 + 4a4a: e3fffb5f bsr 0x4108 // 4108 + 4a4e: 07e8 br 0x4a1e // 4a1e + switch(data[4]){ + 4a50: 8504 ld.b r0, (r5, 0x4) + 4a52: 2800 subi r0, 1 + 4a54: 3804 cmphsi r0, 5 + 4a56: 080c bt 0x4a6e // 4a6e + 4a58: 5c37 subi r1, r4, 6 + 4a5a: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4a5c: 7445 zexth r1, r1 + switch(data[4]){ + 4a5e: e3ffe14f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4a62: 0803 .short 0x0803 + 4a64: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 4a68: 6c17 mov r0, r5 + 4a6a: e3fffe5b bsr 0x4720 // 4720 + return 0; + 4a6e: 3000 movi r0, 0 + 4a70: 07bf br 0x49ee // 49ee + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 4a72: 6c17 mov r0, r5 + 4a74: e3fffeb2 bsr 0x47d8 // 47d8 + 4a78: 07fb br 0x4a6e // 4a6e + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4a7a: 6c17 mov r0, r5 + 4a7c: e3ffff2a bsr 0x48d0 // 48d0 + 4a80: 07f7 br 0x4a6e // 4a6e + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 4a82: 6c17 mov r0, r5 + 4a84: e3ffff42 bsr 0x4908 // 4908 + 4a88: 07f3 br 0x4a6e // 4a6e + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4a8a: 6c17 mov r0, r5 + 4a8c: e3ffff96 bsr 0x49b8 // 49b8 + 4a90: 0000a3fc .long 0x0000a3fc + 4a94: 0000a8f3 .long 0x0000a8f3 + 4a98: 20000524 .long 0x20000524 + 4a9c: 0000a905 .long 0x0000a905 + 4aa0: 0000a916 .long 0x0000a916 + 4aa4: 0000a929 .long 0x0000a929 + 4aa8: 0000a939 .long 0x0000a939 + +Disassembly of section .text.EEPROM_CheckSum: + +00004aac : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4aac: 6cc3 mov r3, r0 + 4aae: 6040 addu r1, r0 + U8_T data_sum = 0; + 4ab0: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4ab6: 783c jmp r15 + data_sum += data[i]; + 4ab8: 8340 ld.b r2, (r3, 0x0) + 4aba: 6008 addu r0, r2 + 4abc: 7400 zextb r0, r0 + 4abe: 2300 addi r3, 1 + 4ac0: 07f9 br 0x4ab2 // 4ab2 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004ac4 : + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4ac4: 14d1 push r4, r15 + 4ac6: 143b subi r14, r14, 108 + 4ac8: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 4aca: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4acc: 3264 movi r2, 100 + 4ace: 3100 movi r1, 0 + 4ad0: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4ad2: b860 st.w r3, (r14, 0x0) + 4ad4: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4ad8: e3ffe8b4 bsr 0x1c40 // 1c40 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4adc: 6cbb mov r2, r14 + 4ade: 3104 movi r1, 4 + 4ae0: 1014 lrw r0, 0x10000100 // 4b30 + 4ae2: e3fff17f bsr 0x2de0 // 2de0 + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 4ae6: d84e0000 ld.b r2, (r14, 0x0) + 4aea: 33a6 movi r3, 166 + 4aec: 64ca cmpne r2, r3 + 4aee: 0c04 bf 0x4af6 // 4af6 + return 0x00; + } + } + } + + return 0x01; + 4af0: 3001 movi r0, 1 +} + 4af2: 141b addi r14, r14, 108 + 4af4: 1491 pop r4, r15 + read_len |= read_info[1]; + 4af6: d82e0002 ld.b r1, (r14, 0x2) + 4afa: d86e0001 ld.b r3, (r14, 0x1) + 4afe: 4128 lsli r1, r1, 8 + 4b00: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 4b02: 3364 movi r3, 100 + 4b04: 644c cmphs r3, r1 + 4b06: 0ff5 bf 0x4af0 // 4af0 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4b08: 1a02 addi r2, r14, 8 + 4b0a: 100b lrw r0, 0x10000104 // 4b34 + 4b0c: e3fff16a bsr 0x2de0 // 2de0 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 4b10: 3108 movi r1, 8 + 4b12: 1802 addi r0, r14, 8 + 4b14: e3ffffcc bsr 0x4aac // 4aac + 4b18: d86e0003 ld.b r3, (r14, 0x3) + 4b1c: 640e cmpne r3, r0 + 4b1e: 0be9 bt 0x4af0 // 4af0 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 4b20: 3208 movi r2, 8 + 4b22: 1902 addi r1, r14, 8 + 4b24: 6c13 mov r0, r4 + 4b26: e3ffe8d1 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + return 0x00; + 4b2a: 3000 movi r0, 0 + 4b2c: 07e3 br 0x4af2 // 4af2 + 4b2e: 0000 bkpt + 4b30: 10000100 .long 0x10000100 + 4b34: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00004b38 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 4b38: 14d0 push r15 + 4b3a: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 4b3c: 3300 movi r3, 0 + 4b3e: 2b59 subi r3, 90 + 4b40: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4b44: 3308 movi r3, 8 + 4b46: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4b4a: 3300 movi r3, 0 + 4b4c: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4b50: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 4b52: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4b54: 3208 movi r2, 8 + 4b56: 6c0f mov r0, r3 + 4b58: e3ffe8b8 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4b5c: 3108 movi r1, 8 + 4b5e: e3ffffa7 bsr 0x4aac // 4aac + 4b62: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 4b66: 6cbb mov r2, r14 + 4b68: 310c movi r1, 12 + 4b6a: 1004 lrw r0, 0x10000100 // 4b78 + 4b6c: e3fff0ea bsr 0x2d40 // 2d40 + + return 0; +} + 4b70: 3000 movi r0, 0 + 4b72: 141b addi r14, r14, 108 + 4b74: 1490 pop r15 + 4b76: 0000 bkpt + 4b78: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004b7c : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4b7c: 14d1 push r4, r15 + 4b7e: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 4b80: 8062 ld.b r3, (r0, 0x2) + 4b82: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4b84: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4b86: 0c03 bf 0x4b8c // 4b8c + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4b88: 3309 movi r3, 9 + 4b8a: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4b8c: 8442 ld.b r2, (r4, 0x2) + 4b8e: 103d lrw r1, 0xa948 // 4c00 + 4b90: 3000 movi r0, 0 + 4b92: e3fffabb bsr 0x4108 // 4108 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4b96: 8463 ld.b r3, (r4, 0x3) + 4b98: 3b02 cmphsi r3, 3 + 4b9a: 0c03 bf 0x4ba0 // 4ba0 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4b9c: 3300 movi r3, 0 + 4b9e: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 4ba0: 8464 ld.b r3, (r4, 0x4) + 4ba2: 3b01 cmphsi r3, 2 + 4ba4: 0c03 bf 0x4baa // 4baa + { + info->backlight_en = 0x00; + 4ba6: 3300 movi r3, 0 + 4ba8: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 4baa: 8461 ld.b r3, (r4, 0x1) + 4bac: 3b02 cmphsi r3, 3 + 4bae: 0c03 bf 0x4bb4 // 4bb4 + { + info->pipe_flag = 0x00; + 4bb0: 3300 movi r3, 0 + 4bb2: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4bb4: 8460 ld.b r3, (r4, 0x0) + 4bb6: 2b00 subi r3, 1 + 4bb8: 74cc zextb r3, r3 + 4bba: 32fd movi r2, 253 + 4bbc: 64c8 cmphs r2, r3 + 4bbe: 0803 bt 0x4bc4 // 4bc4 + { + info->dev_addr = 0x01; + 4bc0: 3301 movi r3, 1 + 4bc2: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4bc4: 8465 ld.b r3, (r4, 0x5) + 4bc6: 3b02 cmphsi r3, 3 + 4bc8: 0c03 bf 0x4bce // 4bce + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4bca: 3301 movi r3, 1 + 4bcc: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 4bce: 8466 ld.b r3, (r4, 0x6) + 4bd0: 3b02 cmphsi r3, 3 + 4bd2: 0c03 bf 0x4bd8 // 4bd8 + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 4bd4: 3300 movi r3, 0 + 4bd6: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 4bd8: 8467 ld.b r3, (r4, 0x7) + 4bda: 3b02 cmphsi r3, 3 + 4bdc: 0c03 bf 0x4be2 // 4be2 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 4bde: 3301 movi r3, 1 + 4be0: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 4be2: 8427 ld.b r1, (r4, 0x7) + 4be4: b822 st.w r1, (r14, 0x8) + 4be6: 8420 ld.b r1, (r4, 0x0) + 4be8: b821 st.w r1, (r14, 0x4) + 4bea: 8425 ld.b r1, (r4, 0x5) + 4bec: b820 st.w r1, (r14, 0x0) + 4bee: 8464 ld.b r3, (r4, 0x4) + 4bf0: 8443 ld.b r2, (r4, 0x3) + 4bf2: 1025 lrw r1, 0xa95f // 4c04 + 4bf4: 3000 movi r0, 0 + 4bf6: e3fffa89 bsr 0x4108 // 4108 + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 4bfa: 3000 movi r0, 0 + 4bfc: 1403 addi r14, r14, 12 + 4bfe: 1491 pop r4, r15 + 4c00: 0000a948 .long 0x0000a948 + 4c04: 0000a95f .long 0x0000a95f + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004c08 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4c08: 3301 movi r3, 1 + 4c0a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 4c0c: 3300 movi r3, 0 + 4c0e: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4c10: 3309 movi r3, 9 + 4c12: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4c14: 3300 movi r3, 0 + 4c16: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 4c18: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 4c1a: 3301 movi r3, 1 + 4c1c: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 4c1e: 3300 movi r3, 0 + 4c20: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 4c22: 3301 movi r3, 1 + 4c24: a067 st.b r3, (r0, 0x7) + +} + 4c26: 783c jmp r15 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004c28 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c28: 14d2 push r4-r5, r15 + 4c2a: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4c2c: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c2e: 6d47 mov r5, r1 + switch(level){ + 4c30: 0c07 bf 0x4c3e // 4c3e + 4c32: 3840 cmpnei r0, 0 + 4c34: 0c27 bf 0x4c82 // 4c82 + 4c36: 3842 cmpnei r0, 2 + 4c38: 0c23 bf 0x4c7e // 4c7e + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4c3a: 3001 movi r0, 1 + 4c3c: 041f br 0x4c7a // 4c7a + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4c3e: 1093 lrw r4, 0x10000280 // 4c88 + break; + } + + memset(save_para,0,sizeof(save_para)); + 4c40: 323c movi r2, 60 + 4c42: 3100 movi r1, 0 + 4c44: 6c3b mov r0, r14 + 4c46: e3ffe7fd bsr 0x1c40 // 1c40 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_APP_SVAE_FLAG; + 4c4a: 3300 movi r3, 0 + 4c4c: 2b59 subi r3, 90 + 4c4e: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 4c52: 331c movi r3, 28 + 4c54: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4c58: 1b01 addi r3, r14, 4 + 4c5a: 321c movi r2, 28 + 4c5c: 6c0f mov r0, r3 + 4c5e: 6c57 mov r1, r5 + 4c60: e3ffe834 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4c64: 311c movi r1, 28 + 4c66: e3ffff23 bsr 0x4aac // 4aac + 4c6a: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4c6e: 6cbb mov r2, r14 + 4c70: 6c13 mov r0, r4 + 4c72: 3120 movi r1, 32 + 4c74: e3fff066 bsr 0x2d40 // 2d40 + + return 0; + 4c78: 3000 movi r0, 0 +} + 4c7a: 140f addi r14, r14, 60 + 4c7c: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4c7e: 1084 lrw r4, 0x10000300 // 4c8c + break; + 4c80: 07e0 br 0x4c40 // 4c40 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4c82: 1084 lrw r4, 0x10000200 // 4c90 + 4c84: 07de br 0x4c40 // 4c40 + 4c86: 0000 bkpt + 4c88: 10000280 .long 0x10000280 + 4c8c: 10000300 .long 0x10000300 + 4c90: 10000200 .long 0x10000200 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004c94 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c94: 14d2 push r4-r5, r15 + 4c96: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4c98: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c9a: 6d07 mov r4, r1 + switch(level){ + 4c9c: 0c3a bf 0x4d10 // 4d10 + 4c9e: 3840 cmpnei r0, 0 + 4ca0: 0c05 bf 0x4caa // 4caa + 4ca2: 3842 cmpnei r0, 2 + 4ca4: 0c34 bf 0x4d0c // 4d0c + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4ca6: 3001 movi r0, 1 + 4ca8: 0430 br 0x4d08 // 4d08 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4caa: 11a1 lrw r5, 0x10000200 // 4d2c + memset(read_info,0,sizeof(read_info)); + 4cac: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4cae: 3234 movi r2, 52 + 4cb0: 3100 movi r1, 0 + 4cb2: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4cb4: b860 st.w r3, (r14, 0x0) + 4cb6: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4cba: e3ffe7c3 bsr 0x1c40 // 1c40 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4cbe: 6cbb mov r2, r14 + 4cc0: 3104 movi r1, 4 + 4cc2: 6c17 mov r0, r5 + 4cc4: e3fff08e bsr 0x2de0 // 2de0 + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 4cc8: d84e0000 ld.b r2, (r14, 0x0) + 4ccc: 33a6 movi r3, 166 + 4cce: 64ca cmpne r2, r3 + 4cd0: 0827 bt 0x4d1e // 4d1e + read_len |= read_info[1]; + 4cd2: d84e0002 ld.b r2, (r14, 0x2) + 4cd6: d86e0001 ld.b r3, (r14, 0x1) + 4cda: 4248 lsli r2, r2, 8 + 4cdc: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4cde: 3a5c cmpnei r2, 28 + 4ce0: 081a bt 0x4d14 // 4d14 + temp_addr += EEPROM_Offset_Data; + 4ce2: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 4ce4: 1a02 addi r2, r14, 8 + 4ce6: 311c movi r1, 28 + 4ce8: e3fff07c bsr 0x2de0 // 2de0 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 4cec: 311c movi r1, 28 + 4cee: 1802 addi r0, r14, 8 + 4cf0: e3fffede bsr 0x4aac // 4aac + 4cf4: d86e0003 ld.b r3, (r14, 0x3) + 4cf8: 640e cmpne r3, r0 + 4cfa: 0bd6 bt 0x4ca6 // 4ca6 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 4cfc: 321c movi r2, 28 + 4cfe: 1902 addi r1, r14, 8 + 4d00: 6c13 mov r0, r4 + 4d02: e3ffe7e3 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + return 0x00; + 4d06: 3000 movi r0, 0 +} + 4d08: 140f addi r14, r14, 60 + 4d0a: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4d0c: 10a9 lrw r5, 0x10000300 // 4d30 + break; + 4d0e: 07cf br 0x4cac // 4cac + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4d10: 10a9 lrw r5, 0x10000280 // 4d34 + 4d12: 07cd br 0x4cac // 4cac + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 4d14: 1029 lrw r1, 0xa9b9 // 4d38 + 4d16: 3000 movi r0, 0 + 4d18: e3fff9f8 bsr 0x4108 // 4108 + 4d1c: 07c5 br 0x4ca6 // 4ca6 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 4d1e: 3304 movi r3, 4 + 4d20: 6cbb mov r2, r14 + 4d22: 1027 lrw r1, 0xa9db // 4d3c + 4d24: 3000 movi r0, 0 + 4d26: e3fff9f7 bsr 0x4114 // 4114 + 4d2a: 07be br 0x4ca6 // 4ca6 + 4d2c: 10000200 .long 0x10000200 + 4d30: 10000300 .long 0x10000300 + 4d34: 10000280 .long 0x10000280 + 4d38: 0000a9b9 .long 0x0000a9b9 + 4d3c: 0000a9db .long 0x0000a9db + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00004d40 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4d40: 14c4 push r4-r7 + 4d42: 1421 subi r14, r14, 4 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 4d44: 8163 ld.b r3, (r1, 0x3) + 4d46: 2b00 subi r3, 1 + 4d48: 74cc zextb r3, r3 + 4d4a: 3263 movi r2, 99 + 4d4c: 64c8 cmphs r2, r3 + 4d4e: 084e bt 0x4dea // 4dea + para->base_speed = 20; //默认参数 - 20 + 4d50: 3314 movi r3, 20 + 4d52: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 4d54: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4d56: 8140 ld.b r2, (r1, 0x0) + 4d58: 2a00 subi r2, 1 + 4d5a: 7488 zextb r2, r2 + 4d5c: 3a09 cmphsi r2, 10 + 4d5e: 0c04 bf 0x4d66 // 4d66 + para->press_debounce = 3; //默认参数 - 6 + 4d60: 3303 movi r3, 3 + 4d62: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 4d64: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4d66: 8141 ld.b r2, (r1, 0x1) + 4d68: 2a00 subi r2, 1 + 4d6a: 7488 zextb r2, r2 + 4d6c: 3a09 cmphsi r2, 10 + 4d6e: 0c04 bf 0x4d76 // 4d76 + para->release_debounce = 3; //默认参数 - 5 + 4d70: 3303 movi r3, 3 + 4d72: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 4d74: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4d76: 8142 ld.b r2, (r1, 0x2) + 4d78: 2a00 subi r2, 1 + 4d7a: 7488 zextb r2, r2 + 4d7c: 3463 movi r4, 99 + 4d7e: 6490 cmphs r4, r2 + 4d80: 0804 bt 0x4d88 // 4d88 + para->multiTimes_filt = 40; //默认参数 - 40 + 4d82: 3328 movi r3, 40 + 4d84: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4d86: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4d88: 9146 ld.w r2, (r1, 0x18) + 4d8a: 2a00 subi r2, 1 + 4d8c: 3a1f cmphsi r2, 32 + 4d8e: 0c04 bf 0x4d96 // 4d96 + para->longpress_time = 16; //默认参数 - 16 + 4d90: 3310 movi r3, 16 + 4d92: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 4d94: 3301 movi r3, 1 + if (i == 0){ + para->senprd[i] = 200; //默认参数 - 250 + }else if (i == 1){ + para->senprd[i] = 265; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 270; //默认参数 - 320 + 4d96: 3587 movi r5, 135 + 4d98: 45a1 lsli r5, r5, 1 + 4d9a: 598e addi r4, r1, 4 + rev = 0x01; + 4d9c: 3200 movi r2, 0 + }else if (i == 3){ + para->senprd[i] = 265; //默认参数 - 320 + 4d9e: 11e0 lrw r7, 0x109 // 4e1c + para->senprd[i] = 270; //默认参数 - 320 + 4da0: dcae1001 st.h r5, (r14, 0x2) + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4da4: 8ca0 ld.h r5, (r4, 0x0) + 4da6: 2d09 subi r5, 10 + 4da8: 7555 zexth r5, r5 + 4daa: 10dc lrw r6, 0x3de // 4e18 + 4dac: 6558 cmphs r6, r5 + 4dae: 0806 bt 0x4dba // 4dba + if (i == 0){ + 4db0: 3a40 cmpnei r2, 0 + 4db2: 081e bt 0x4dee // 4dee + para->senprd[i] = 200; //默认参数 - 250 + 4db4: 33c8 movi r3, 200 + 4db6: a962 st.h r3, (r1, 0x4) + para->senprd[i] = 250; //默认参数 - 280 + }else { + para->senprd[i] = 250; //默认参数 - 280 + } + + rev = 0x01; + 4db8: 3301 movi r3, 1 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4dba: 8ca5 ld.h r5, (r4, 0xa) + 4dbc: 2d13 subi r5, 20 + 4dbe: 36f5 movi r6, 245 + 4dc0: 7555 zexth r5, r5 + 4dc2: 46c2 lsli r6, r6, 2 + 4dc4: 6558 cmphs r6, r5 + 4dc6: 080a bt 0x4dda // 4dda + + switch(level){ + 4dc8: 3841 cmpnei r0, 1 + 4dca: 0c25 bf 0x4e14 // 4e14 + 4dcc: 3840 cmpnei r0, 0 + 4dce: 0c21 bf 0x4e10 // 4e10 + 4dd0: 3842 cmpnei r0, 2 + 4dd2: 0821 bt 0x4e14 // 4e14 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 80 + 4dd4: 3350 movi r3, 80 + break; + case 0x00: + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + break; + default: + para->triggerlevel[i] = 100; + 4dd6: ac65 st.h r3, (r4, 0xa) + break; + } + + rev = 0x01; + 4dd8: 3301 movi r3, 1 + for(i=0;i + } + } + + return rev; +} + 4de4: 6c0f mov r0, r3 + 4de6: 1401 addi r14, r14, 4 + 4de8: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 4dea: 3300 movi r3, 0 + 4dec: 07b5 br 0x4d56 // 4d56 + }else if (i == 1){ + 4dee: 3a41 cmpnei r2, 1 + 4df0: 0803 bt 0x4df6 // 4df6 + para->senprd[i] = 265; //默认参数 - 320 + 4df2: a9e3 st.h r7, (r1, 0x6) + 4df4: 07e2 br 0x4db8 // 4db8 + }else if (i == 2){ + 4df6: 3a42 cmpnei r2, 2 + 4df8: 0805 bt 0x4e02 // 4e02 + para->senprd[i] = 270; //默认参数 - 320 + 4dfa: d86e1001 ld.h r3, (r14, 0x2) + 4dfe: a964 st.h r3, (r1, 0x8) + 4e00: 07dc br 0x4db8 // 4db8 + }else if (i == 3){ + 4e02: 3a43 cmpnei r2, 3 + 4e04: 0803 bt 0x4e0a // 4e0a + para->senprd[i] = 265; //默认参数 - 320 + 4e06: a9e5 st.h r7, (r1, 0xa) + 4e08: 07d8 br 0x4db8 // 4db8 + para->senprd[i] = 250; //默认参数 - 280 + 4e0a: 33fa movi r3, 250 + 4e0c: a966 st.h r3, (r1, 0xc) + 4e0e: 07d5 br 0x4db8 // 4db8 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + 4e10: 3378 movi r3, 120 + 4e12: 07e2 br 0x4dd6 // 4dd6 + para->triggerlevel[i] = 100; + 4e14: 3364 movi r3, 100 + 4e16: 07e0 br 0x4dd6 // 4dd6 + 4e18: 000003de .long 0x000003de + 4e1c: 00000109 .long 0x00000109 + +Disassembly of section .text.EEPROM_Default_TouchPara: + +00004e20 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4e20: 14c3 push r4-r6 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 4e22: 3314 movi r3, 20 + 4e24: a163 st.b r3, (r1, 0x3) + para->press_debounce = 3; //默认参数 - 6 + 4e26: 3303 movi r3, 3 + 4e28: a160 st.b r3, (r1, 0x0) + para->release_debounce = 3; //默认参数 - 5 + 4e2a: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 4e2c: 3328 movi r3, 40 + 4e2e: a162 st.b r3, (r1, 0x2) + 4e30: 320e movi r2, 14 + para->longpress_time = 16; //默认参数 - 8 + 4e32: 3310 movi r3, 16 + if (i == 0){ + para->senprd[i] = 200; //默认参数 - 250 + }else if (i == 1){ + para->senprd[i] = 265; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 270; //默认参数 - 320 + 4e34: 3487 movi r4, 135 + para->longpress_time = 16; //默认参数 - 8 + 4e36: b166 st.w r3, (r1, 0x18) + 4e38: 6084 addu r2, r1 + for(i=0;isenprd[i] = 265; //默认参数 - 320 + 4e3c: 10b4 lrw r5, 0x109 // 4e8c + para->senprd[i] = 270; //默认参数 - 320 + 4e3e: 4481 lsli r4, r4, 1 + if (i == 0){ + 4e40: 3b40 cmpnei r3, 0 + 4e42: 0811 bt 0x4e64 // 4e64 + para->senprd[i] = 200; //默认参数 - 250 + 4e44: 36c8 movi r6, 200 + 4e46: a9c2 st.h r6, (r1, 0x4) +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 4e48: 3841 cmpnei r0, 1 + 4e4a: 0c1e bf 0x4e86 // 4e86 + 4e4c: 3840 cmpnei r0, 0 + 4e4e: 0c1a bf 0x4e82 // 4e82 + 4e50: 3842 cmpnei r0, 2 + 4e52: 081a bt 0x4e86 // 4e86 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 80 + 4e54: 3650 movi r6, 80 + for(i=0;itriggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + break; + default: + para->triggerlevel[i] = 100; + 4e5c: aac0 st.h r6, (r2, 0x0) + 4e5e: 2201 addi r2, 2 + for(i=0;i + break; + } + + } +} + 4e62: 1483 pop r4-r6 + }else if (i == 1){ + 4e64: 3b41 cmpnei r3, 1 + 4e66: 0803 bt 0x4e6c // 4e6c + para->senprd[i] = 265; //默认参数 - 320 + 4e68: a9a3 st.h r5, (r1, 0x6) + 4e6a: 07ef br 0x4e48 // 4e48 + }else if (i == 2){ + 4e6c: 3b42 cmpnei r3, 2 + 4e6e: 0803 bt 0x4e74 // 4e74 + para->senprd[i] = 270; //默认参数 - 320 + 4e70: a984 st.h r4, (r1, 0x8) + 4e72: 07eb br 0x4e48 // 4e48 + }else if (i == 3){ + 4e74: 3b43 cmpnei r3, 3 + 4e76: 0803 bt 0x4e7c // 4e7c + para->senprd[i] = 265; //默认参数 - 320 + 4e78: a9a5 st.h r5, (r1, 0xa) + 4e7a: 07e7 br 0x4e48 // 4e48 + para->senprd[i] = 250; //默认参数 - 280 + 4e7c: 36fa movi r6, 250 + 4e7e: a9c6 st.h r6, (r1, 0xc) + 4e80: 07e4 br 0x4e48 // 4e48 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + 4e82: 3678 movi r6, 120 + 4e84: 07e9 br 0x4e56 // 4e56 + para->triggerlevel[i] = 100; + 4e86: 3664 movi r6, 100 + 4e88: 07e7 br 0x4e56 // 4e56 + 4e8a: 0000 .short 0x0000 + 4e8c: 00000109 .long 0x00000109 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004e90 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4e90: 14d4 push r4-r7, r15 + 4e92: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4e94: 8043 ld.b r2, (r0, 0x3) + 4e96: 1038 lrw r1, 0xa9f9 // 4ef4 + 4e98: 3000 movi r0, 0 + 4e9a: e3fff937 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 4e9e: 8440 ld.b r2, (r4, 0x0) + 4ea0: 1036 lrw r1, 0xaa11 // 4ef8 + 4ea2: 3000 movi r0, 0 + 4ea4: e3fff932 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4ea8: 8441 ld.b r2, (r4, 0x1) + 4eaa: 1035 lrw r1, 0xaa2d // 4efc + 4eac: 3000 movi r0, 0 + 4eae: e3fff92d bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4eb2: 8442 ld.b r2, (r4, 0x2) + 4eb4: 1033 lrw r1, 0xaa4b // 4f00 + 4eb6: 3000 movi r0, 0 + 4eb8: e3fff928 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4ebc: 9446 ld.w r2, (r4, 0x18) + 4ebe: 3000 movi r0, 0 + 4ec0: 1031 lrw r1, 0xaa68 // 4f04 + 4ec2: e3fff923 bsr 0x4108 // 4108 + 4ec6: 2403 addi r4, 4 + 4ec8: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 4eca: 10f0 lrw r7, 0xaa84 // 4f08 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4ecc: 10d0 lrw r6, 0xaa9d // 4f0c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4ece: e3ffe84d bsr 0x1f68 // 1f68 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4ed2: 8c60 ld.h r3, (r4, 0x0) + 4ed4: 6c97 mov r2, r5 + 4ed6: 6c5f mov r1, r7 + 4ed8: 3000 movi r0, 0 + 4eda: e3fff917 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4ede: 8c65 ld.h r3, (r4, 0xa) + 4ee0: 6c97 mov r2, r5 + 4ee2: 6c5b mov r1, r6 + 4ee4: 3000 movi r0, 0 + 4ee6: 2500 addi r5, 1 + 4ee8: e3fff910 bsr 0x4108 // 4108 + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 4ef2: 1494 pop r4-r7, r15 + 4ef4: 0000a9f9 .long 0x0000a9f9 + 4ef8: 0000aa11 .long 0x0000aa11 + 4efc: 0000aa2d .long 0x0000aa2d + 4f00: 0000aa4b .long 0x0000aa4b + 4f04: 0000aa68 .long 0x0000aa68 + 4f08: 0000aa84 .long 0x0000aa84 + 4f0c: 0000aa9d .long 0x0000aa9d + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +00004f10 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4f10: 14d1 push r4, r15 + 4f12: 1432 subi r14, r14, 72 + 4f14: 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)); + 4f16: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4f18: 3240 movi r2, 64 + 4f1a: 3100 movi r1, 0 + 4f1c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4f1e: b860 st.w r3, (r14, 0x0) + 4f20: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4f24: e3ffe68e bsr 0x1c40 // 1c40 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 4f28: 3080 movi r0, 128 + 4f2a: 6cbb mov r2, r14 + 4f2c: 3104 movi r1, 4 + 4f2e: 4015 lsli r0, r0, 21 + 4f30: e3ffef58 bsr 0x2de0 // 2de0 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4f34: d84e0000 ld.b r2, (r14, 0x0) + 4f38: 33ae movi r3, 174 + 4f3a: 64ca cmpne r2, r3 + 4f3c: 0c04 bf 0x4f44 // 4f44 + return 0x00; + } + } + } + + return 0x01; + 4f3e: 3001 movi r0, 1 +} + 4f40: 1412 addi r14, r14, 72 + 4f42: 1491 pop r4, r15 + read_len |= read_info[1]; + 4f44: d82e0002 ld.b r1, (r14, 0x2) + 4f48: d86e0001 ld.b r3, (r14, 0x1) + 4f4c: 4128 lsli r1, r1, 8 + 4f4e: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 4f50: 3340 movi r3, 64 + 4f52: 644c cmphs r3, r1 + 4f54: 0ff5 bf 0x4f3e // 4f3e + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4f56: 1a02 addi r2, r14, 8 + 4f58: 1009 lrw r0, 0x10000004 // 4f7c + 4f5a: e3ffef43 bsr 0x2de0 // 2de0 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 4f5e: 3125 movi r1, 37 + 4f60: 1802 addi r0, r14, 8 + 4f62: e3fffda5 bsr 0x4aac // 4aac + 4f66: d86e0003 ld.b r3, (r14, 0x3) + 4f6a: 640e cmpne r3, r0 + 4f6c: 0be9 bt 0x4f3e // 4f3e + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 4f6e: 3225 movi r2, 37 + 4f70: 1902 addi r1, r14, 8 + 4f72: 6c13 mov r0, r4 + 4f74: e3ffe6aa bsr 0x1cc8 // 1cc8 <__memcpy_fast> + return 0x00; + 4f78: 3000 movi r0, 0 + 4f7a: 07e3 br 0x4f40 // 4f40 + 4f7c: 10000004 .long 0x10000004 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00004f80 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4f80: 14d0 push r15 + 4f82: 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; + 4f84: 3300 movi r3, 0 + 4f86: 2b51 subi r3, 82 + 4f88: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4f8c: 3325 movi r3, 37 + 4f8e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4f92: 3300 movi r3, 0 + 4f94: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4f98: 1b01 addi r3, r14, 4 +{ + 4f9a: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4f9c: 3225 movi r2, 37 + 4f9e: 6c0f mov r0, r3 + 4fa0: e3ffe694 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4fa4: 3125 movi r1, 37 + 4fa6: e3fffd83 bsr 0x4aac // 4aac + 4faa: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 4fae: 3080 movi r0, 128 + 4fb0: 4015 lsli r0, r0, 21 + 4fb2: 6cbb mov r2, r14 + 4fb4: 3129 movi r1, 41 + 4fb6: e3ffeec5 bsr 0x2d40 // 2d40 + + return 0; +} + 4fba: 3000 movi r0, 0 + 4fbc: 1412 addi r14, r14, 72 + 4fbe: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00004fc0 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4fc0: 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 = 0x01; + 4fc2: 3301 movi r3, 1 + 4fc4: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 4fc6: 3307 movi r3, 7 + 4fc8: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 4fca: 3304 movi r3, 4 + 4fcc: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4fce: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 4fd0: 3310 movi r3, 16 + 4fd2: a064 st.b r3, (r0, 0x4) +{ + 4fd4: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4fd6: 3220 movi r2, 32 + 4fd8: 3100 movi r1, 0 + 4fda: 6c17 mov r0, r5 + 4fdc: e3ffe632 bsr 0x1c40 // 1c40 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 4fe0: 3210 movi r2, 16 + 4fe2: 1025 lrw r1, 0xaabc // 4ff4 + 4fe4: 6c17 mov r0, r5 + 4fe6: e3ffe671 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 4fea: 6c13 mov r0, r4 + 4fec: e3ffffca bsr 0x4f80 // 4f80 +#endif +} + 4ff0: 1492 pop r4-r5, r15 + 4ff2: 0000 bkpt + 4ff4: 0000aabc .long 0x0000aabc + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +00004ff8 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4ff8: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 4ffa: 8063 ld.b r3, (r0, 0x3) + 4ffc: 3b44 cmpnei r3, 4 +{ + 4ffe: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 5000: 0c21 bf 0x5042 // 5042 + { + info->dev_app_ver = Project_FW_Version; + 5002: 3304 movi r3, 4 + 5004: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 5006: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 5008: 8461 ld.b r3, (r4, 0x1) + 500a: 3b47 cmpnei r3, 7 + 500c: 0c04 bf 0x5014 // 5014 + { + info->dev_type = Project_Type; + 500e: 3307 movi r3, 7 + 5010: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 5012: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 5014: 8464 ld.b r3, (r4, 0x4) + 5016: 3b50 cmpnei r3, 16 + 5018: 0c04 bf 0x5020 // 5020 + { + info->dev_name_len = sizeof(Peoject_Name); + 501a: 3310 movi r3, 16 + 501c: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 501e: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 5020: 5cd2 addi r6, r4, 5 + 5022: 3210 movi r2, 16 + 5024: 102a lrw r1, 0xaabc // 504c + 5026: 6c1b mov r0, r6 + 5028: e3ffe682 bsr 0x1d2c // 1d2c <__GI_strncmp> + 502c: 3840 cmpnei r0, 0 + 502e: 0c0c bf 0x5046 // 5046 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 5030: 8444 ld.b r2, (r4, 0x4) + 5032: 1027 lrw r1, 0xaabc // 504c + 5034: 6c1b mov r0, r6 + 5036: e3ffe649 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 503a: 6c13 mov r0, r4 + 503c: e3ffffa2 bsr 0x4f80 // 4f80 + } +#endif +} + 5040: 0405 br 0x504a // 504a + U8_T save_flag = 0; + 5042: 3500 movi r5, 0 + 5044: 07e2 br 0x5008 // 5008 + if(save_flag == 0x01) + 5046: 3d41 cmpnei r5, 1 + 5048: 0ff9 bf 0x503a // 503a +} + 504a: 1493 pop r4-r6, r15 + 504c: 0000aabc .long 0x0000aabc + +Disassembly of section .text.EEPROM_Init: + +00005050 : +void EEPROM_Init(void){ + 5050: 14d3 push r4-r6, r15 + EnIFCClk; //使能 IFC 时钟 + 5052: 107e lrw r3, 0x20000060 // 50c8 + 5054: 3201 movi r2, 1 + 5056: 9360 ld.w r3, (r3, 0x0) + 5058: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 505a: 9345 ld.w r2, (r3, 0x14) + 505c: 3aa1 bseti r2, 1 + 505e: 3ab0 bseti r2, 16 + 5060: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 5062: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 5064: 109a lrw r4, 0x20000524 // 50cc + delay_nms(10); + 5066: e3ffefd5 bsr 0x3010 // 3010 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 506a: 3208 movi r2, 8 + 506c: 3100 movi r1, 0 + 506e: 6c13 mov r0, r4 + 5070: e3ffe5e8 bsr 0x1c40 // 1c40 <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 5074: 6c13 mov r0, r4 + 5076: e3fffd27 bsr 0x4ac4 // 4ac4 + if(rev == 0x00){ + 507a: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 507c: 6c13 mov r0, r4 + if(rev == 0x00){ + 507e: 0816 bt 0x50aa // 50aa + EEPROM_Validate_ParaInfo(&g_eeprom); + 5080: e3fffd7e bsr 0x4b7c // 4b7c + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 5084: 10b3 lrw r5, 0x2000052c // 50d0 + 5086: 6c17 mov r0, r5 + 5088: e3ffff44 bsr 0x4f10 // 4f10 + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 508c: 8460 ld.b r3, (r4, 0x0) + 508e: 8540 ld.b r2, (r5, 0x0) + 5090: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 5092: 6d83 mov r6, r0 + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 5094: 0c05 bf 0x509e // 509e + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 5096: 6c17 mov r0, r5 + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 5098: a560 st.b r3, (r5, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 509a: e3ffff73 bsr 0x4f80 // 4f80 + if(rev == 0x00){ + 509e: 3e40 cmpnei r6, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 50a0: 100c lrw r0, 0x2000052c // 50d0 + if(rev == 0x00){ + 50a2: 080f bt 0x50c0 // 50c0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 50a4: e3ffffaa bsr 0x4ff8 // 4ff8 +} + 50a8: 1493 pop r4-r6, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 50aa: e3fffdaf bsr 0x4c08 // 4c08 + EEPROM_WriteParaInfo(&g_eeprom); + 50ae: 6c13 mov r0, r4 + 50b0: e3fffd44 bsr 0x4b38 // 4b38 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 50b4: 8441 ld.b r2, (r4, 0x1) + 50b6: 1028 lrw r1, 0xaacc // 50d4 + 50b8: 3000 movi r0, 0 + 50ba: e3fff827 bsr 0x4108 // 4108 + 50be: 07e3 br 0x5084 // 5084 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 50c0: e3ffff80 bsr 0x4fc0 // 4fc0 +} + 50c4: 07f2 br 0x50a8 // 50a8 + 50c6: 0000 bkpt + 50c8: 20000060 .long 0x20000060 + 50cc: 20000524 .long 0x20000524 + 50d0: 2000052c .long 0x2000052c + 50d4: 0000aacc .long 0x0000aacc + +Disassembly of section .text.ADC_Init: + +000050d8 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 50d8: 14d0 push r15 + 50da: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 50dc: e3ffebce bsr 0x2878 // 2878 + ADC12_Software_Reset(); //ADC软件复位 + 50e0: e3ffec2c bsr 0x2938 // 2938 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 50e4: 3101 movi r1, 1 + 50e6: 3002 movi r0, 2 + 50e8: e3ffec12 bsr 0x290c // 290c + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 50ec: 3301 movi r3, 1 + 50ee: b861 st.w r3, (r14, 0x4) + 50f0: 3302 movi r3, 2 + 50f2: b860 st.w r3, (r14, 0x0) + 50f4: 3200 movi r2, 0 + 50f6: 3306 movi r3, 6 + 50f8: 3101 movi r1, 1 + 50fa: 3001 movi r0, 1 + 50fc: e3ffec58 bsr 0x29ac // 29ac + +// ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS);//如果设置内部参考电压源需要把初始化放在触摸初始化前面,否则触摸会出现错误 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_VDD_VREFN_VSS); + 5100: 3000 movi r0, 0 + 5102: e3ffec93 bsr 0x2a28 // 2a28 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGEN,0); + 5106: 3280 movi r2, 128 + 5108: 3300 movi r3, 0 + 510a: 4245 lsli r2, r2, 5 + 510c: 3100 movi r1, 0 + 510e: 300f movi r0, 15 + 5110: e3ffed58 bsr 0x2bc0 // 2bc0 + + ADC12_CMD(ENABLE); + 5114: 3001 movi r0, 1 + 5116: e3ffec17 bsr 0x2944 // 2944 + + ADC12_ready_wait(); + 511a: e3ffec29 bsr 0x296c // 296c + + ADC12_Control(ADC12_START); + 511e: 3008 movi r0, 8 + 5120: e3ffebde bsr 0x28dc // 28dc + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 5124: 3250 movi r2, 80 + 5126: 3100 movi r1, 0 + 5128: 1003 lrw r0, 0x20000554 // 5134 + 512a: e3ffe58b bsr 0x1c40 // 1c40 <__memset_fast> +} + 512e: 1402 addi r14, r14, 8 + 5130: 1490 pop r15 + 5132: 0000 bkpt + 5134: 20000554 .long 0x20000554 + +Disassembly of section .text.Thermistor_Array_Transform: + +00005138 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 5138: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 513a: 1070 lrw r3, 0x79bd // 5178 + 513c: 640c cmphs r3, r0 +{ + 513e: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 5140: 0c16 bf 0x516c // 516c + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 5142: 33a1 movi r3, 161 + 5144: 4365 lsli r3, r3, 5 + 5146: 640c cmphs r3, r0 + 5148: 0814 bt 0x5170 // 5170 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 514e: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 5152: 8a60 ld.h r3, (r2, 0x0) + 5154: 644c cmphs r3, r1 + 5156: 0c04 bf 0x515e // 515e + 5158: 8a61 ld.h r3, (r2, 0x2) + 515a: 644c cmphs r3, r1 + 515c: 0c07 bf 0x516a // 516a + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 5168: 30fa movi r0, 250 +} + 516a: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 516c: 3000 movi r0, 0 + 516e: 07fe br 0x516a // 516a + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 5170: 30c8 movi r0, 200 + 5172: 4001 lsli r0, r0, 1 + 5174: 07fb br 0x516a // 516a + 5176: 0000 bkpt + 5178: 000079bd .long 0x000079bd + 517c: 0000a416 .long 0x0000a416 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00005180 : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 5180: 14d4 push r4-r7, r15 + for(U16_T i=0;i + 5184: 8cc4 ld.h r6, (r4, 0x8) + 5186: 3000 movi r0, 0 + U16_T temp_max = 0,temp_min = 0; + 5188: 3200 movi r2, 0 + 518a: 3100 movi r1, 0 + uint32_t temp_val = 0; + 518c: 3300 movi r3, 0 + temp_val += g_adc.dataBuff[i]; + 518e: 40a1 lsli r5, r0, 1 + 5190: 10fc lrw r7, 0x20000554 // 5200 + 5192: 615c addu r5, r7 + 5194: 8da4 ld.h r5, (r5, 0x8) + if(i == 0){ + 5196: 3840 cmpnei r0, 0 + temp_val += g_adc.dataBuff[i]; + 5198: 60d4 addu r3, r5 + if(i == 0){ + 519a: 0803 bt 0x51a0 // 51a0 + temp_min = g_adc.dataBuff[0]; + 519c: 6c9b mov r2, r6 + temp_max = g_adc.dataBuff[0]; + 519e: 6c5b mov r1, r6 + 51a0: 6544 cmphs r1, r5 + 51a2: 6dc7 mov r7, r1 + 51a4: 0802 bt 0x51a8 // 51a8 + 51a6: 6dd7 mov r7, r5 + 51a8: 6494 cmphs r5, r2 + 51aa: 745d zexth r1, r7 + 51ac: 6dcb mov r7, r2 + 51ae: 0802 bt 0x51b2 // 51b2 + 51b0: 6dd7 mov r7, r5 + 51b2: 2000 addi r0, 1 + for(U16_T i=0;i + } + + } + +// g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + g_adc.avg_val = ((temp_val-temp_max-temp_min) / (ADC_DATABUFF_Size-2)); + 51ba: 60c6 subu r3, r1 + 51bc: 60ca subu r3, r2 + 51be: 4b63 lsri r3, r3, 3 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51c0: 1051 lrw r2, 0x1388 // 5204 + g_adc.avg_val = ((temp_val-temp_max-temp_min) / (ADC_DATABUFF_Size-2)); + 51c2: ac62 st.h r3, (r4, 0x4) + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51c4: 74cd zexth r3, r3 + 51c6: 7cc8 mult r3, r2 + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 51c8: 8c4e ld.h r2, (r4, 0x1c) + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51ca: 536c asri r3, r3, 12 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 51cc: 3a13 cmphsi r2, 20 + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51ce: ac63 st.h r3, (r4, 0x6) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 51d0: 0c05 bf 0x51da // 51da + g_adc.temp_index = 0; + 51d2: 3200 movi r2, 0 + 51d4: ac4e st.h r2, (r4, 0x1c) + g_adc.gather_full = 1; + 51d6: 3201 movi r2, 1 + 51d8: a441 st.b r2, (r4, 0x1) + + } + + temp_val = ((g_adc.voltage * 10000)/(3300 - g_adc.voltage)); + + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 51da: 8cae ld.h r5, (r4, 0x1c) + 51dc: 74cd zexth r3, r3 + 51de: 5d42 addi r2, r5, 1 + temp_val = ((g_adc.voltage * 10000)/(3300 - g_adc.voltage)); + 51e0: 100a lrw r0, 0x2710 // 5208 + 51e2: 102b lrw r1, 0xce4 // 520c + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 51e4: ac4e st.h r2, (r4, 0x1c) + temp_val = ((g_adc.voltage * 10000)/(3300 - g_adc.voltage)); + 51e6: 7c0c mult r0, r3 + 51e8: 604e subu r1, r3 + 51ea: e3fff511 bsr 0x3c0c // 3c0c <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 51ee: 250f addi r5, 16 + 51f0: 45a1 lsli r5, r5, 1 + 51f2: 7401 zexth r0, r0 + 51f4: e3ffffa2 bsr 0x5138 // 5138 + 51f8: 6114 addu r4, r5 + 51fa: ac00 st.h r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d temp_val:%d voltage:%d avg_val:%d",Thermistor_Array_Transform(temp_val),temp_val,g_adc.voltage,g_adc.avg_val); +} + 51fc: 1494 pop r4-r7, r15 + 51fe: 0000 bkpt + 5200: 20000554 .long 0x20000554 + 5204: 00001388 .long 0x00001388 + 5208: 00002710 .long 0x00002710 + 520c: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.Get_Temp_Val: + +00005210 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 5210: 1062 lrw r3, 0x20000554 // 5218 + 5212: 8b0f ld.h r0, (r3, 0x1e) +} + 5214: 783c jmp r15 + 5216: 0000 bkpt + 5218: 20000554 .long 0x20000554 + +Disassembly of section .text.Gather_Temp: + +0000521c : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 521c: 14d2 push r4-r5, r15 + 521e: 1421 subi r14, r14, 4 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 200) + 5220: 105f lrw r2, 0x200000c0 // 529c + 5222: 1180 lrw r4, 0x20000554 // 52a0 + 5224: 9260 ld.w r3, (r2, 0x0) + 5226: 9433 ld.w r1, (r4, 0x4c) + 5228: 60c6 subu r3, r1 + 522a: 31c7 movi r1, 199 + 522c: 64c4 cmphs r1, r3 + 522e: 080e bt 0x524a // 524a + { + g_adc.gather_tick = SysTick_1ms; + 5230: 9260 ld.w r3, (r2, 0x0) + 5232: b473 st.w r3, (r4, 0x4c) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 5234: 8461 ld.b r3, (r4, 0x1) + 5236: 3b41 cmpnei r3, 1 + 5238: 0c0b bf 0x524e // 524e + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + // g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 523a: 8c2e ld.h r1, (r4, 0x1c) + 523c: 3300 movi r3, 0 + 523e: 3500 movi r5, 0 + temp_val += g_adc.tempBuff[i]; + 5240: 3010 movi r0, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 5242: 644c cmphs r3, r1 + 5244: 0c24 bf 0x528c // 528c + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 5246: 3940 cmpnei r1, 0 + 5248: 080e bt 0x5264 // 5264 + } + g_adc.temp_val = temp_val / temp_size; + + Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 524a: 1401 addi r14, r14, 4 + 524c: 1492 pop r4-r5, r15 + 524e: 6c93 mov r2, r4 + if(g_adc.gather_full == 1){ + 5250: 3500 movi r5, 0 + 5252: 3300 movi r3, 0 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 5254: 2300 addi r3, 1 + 5256: 74cc zextb r3, r3 + temp_val += g_adc.tempBuff[i]; + 5258: 8a30 ld.h r1, (r2, 0x20) + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 525a: 3b54 cmpnei r3, 20 + temp_val += g_adc.tempBuff[i]; + 525c: 6144 addu r5, r1 + 525e: 2201 addi r2, 2 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 5260: 0bfa bt 0x5254 // 5254 + temp_size = Temp_DataBuff_Size; + 5262: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 5264: 6c17 mov r0, r5 + 5266: e3fff4e5 bsr 0x3c30 // 3c30 <__udivsi3> + 526a: 7401 zexth r0, r0 + 526c: ac0f st.h r0, (r4, 0x1e) + Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + 526e: e3ffddf9 bsr 0xe60 // e60 <__floatunsisf> + 5272: 102d lrw r1, 0x41200000 // 52a4 + 5274: e3ffdd86 bsr 0xd80 // d80 <__divsf3> + 5278: e3ffdde2 bsr 0xe3c // e3c <__extendsfdf2> + 527c: 6cc3 mov r3, r0 + 527e: b820 st.w r1, (r14, 0x0) + 5280: 6c97 mov r2, r5 + 5282: 102a lrw r1, 0xaae5 // 52a8 + 5284: 3002 movi r0, 2 + 5286: e3fff741 bsr 0x4108 // 4108 + 528a: 07e0 br 0x524a // 524a + temp_val += g_adc.tempBuff[i]; + 528c: 5b40 addu r2, r3, r0 + 528e: 4241 lsli r2, r2, 1 + 5290: 6090 addu r2, r4 + 5292: 8a40 ld.h r2, (r2, 0x0) + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 5294: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 5296: 6148 addu r5, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 5298: 74cc zextb r3, r3 + 529a: 07d4 br 0x5242 // 5242 + 529c: 200000c0 .long 0x200000c0 + 52a0: 20000554 .long 0x20000554 + 52a4: 41200000 .long 0x41200000 + 52a8: 0000aae5 .long 0x0000aae5 + +Disassembly of section .text.ADC_Sample_Task: + +000052ac : +void ADC_Sample_Task(void){ + 52ac: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 52ae: 10d9 lrw r6, 0x200000c0 // 5310 + 52b0: 1099 lrw r4, 0x20000554 // 5314 + 52b2: 9660 ld.w r3, (r6, 0x0) + 52b4: 9452 ld.w r2, (r4, 0x48) + 52b6: 60ca subu r3, r2 + 52b8: 3b0a cmphsi r3, 11 + 52ba: 0c14 bf 0x52e2 // 52e2 + g_adc.sample_tick = SysTick_1ms; + 52bc: 9660 ld.w r3, (r6, 0x0) + ADC12_SEQEND_wait(0); + 52be: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 52c0: b472 st.w r3, (r4, 0x48) + ADC12_SEQEND_wait(0); + 52c2: e3ffeb5f bsr 0x2980 // 2980 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52c6: 3000 movi r0, 0 + 52c8: 8ca1 ld.h r5, (r4, 0x2) + 52ca: e3ffeb67 bsr 0x2998 // 2998 + g_adc.index++; + 52ce: 8c61 ld.h r3, (r4, 0x2) + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52d0: 2503 addi r5, 4 + g_adc.index++; + 52d2: 2300 addi r3, 1 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52d4: 45a1 lsli r5, r5, 1 + g_adc.index++; + 52d6: 74cd zexth r3, r3 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52d8: 6150 addu r5, r4 + if (g_adc.index >= ADC_DATABUFF_Size) { + 52da: 3b09 cmphsi r3, 10 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52dc: ad00 st.h r0, (r5, 0x0) + if (g_adc.index >= ADC_DATABUFF_Size) { + 52de: 0813 bt 0x5304 // 5304 + g_adc.index++; + 52e0: ac61 st.h r3, (r4, 0x2) + if (g_adc.full_flag == 0x01) { + 52e2: 8460 ld.b r3, (r4, 0x0) + 52e4: 3b41 cmpnei r3, 1 + 52e6: 080c bt 0x52fe // 52fe + if (SysTick_1ms - adc_tick >= 100) { + 52e8: 104c lrw r2, 0x2000013c // 5318 + 52ea: 9220 ld.w r1, (r2, 0x0) + 52ec: 9660 ld.w r3, (r6, 0x0) + 52ee: 60c6 subu r3, r1 + 52f0: 3163 movi r1, 99 + 52f2: 64c4 cmphs r1, r3 + 52f4: 0805 bt 0x52fe // 52fe + adc_tick = SysTick_1ms; + 52f6: 9660 ld.w r3, (r6, 0x0) + 52f8: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 52fa: e3ffff43 bsr 0x5180 // 5180 + Gather_Temp(); + 52fe: e3ffff8f bsr 0x521c // 521c +} + 5302: 1493 pop r4-r6, r15 + g_adc.index = 0; + 5304: 3300 movi r3, 0 + 5306: ac61 st.h r3, (r4, 0x2) + g_adc.full_flag = 1; + 5308: 3301 movi r3, 1 + 530a: a460 st.b r3, (r4, 0x0) + 530c: 07eb br 0x52e2 // 52e2 + 530e: 0000 bkpt + 5310: 200000c0 .long 0x200000c0 + 5314: 20000554 .long 0x20000554 + 5318: 2000013c .long 0x2000013c + +Disassembly of section .text.Contol_Switch_Light: + +0000531c : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 531c: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 531e: 3805 cmphsi r0, 6 +{ + 5320: 6d47 mov r5, r1 + switch(ch) + 5322: 0818 bt 0x5352 // 5352 + 5324: 009b lrw r4, 0x200005a4 // 56b4 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 5326: 3941 cmpnei r1, 1 + switch(ch) + 5328: e3ffdd02 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 532c: 00330006 .long 0x00330006 + 5330: 008d0060 .long 0x008d0060 + 5334: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 5338: 0814 bt 0x5360 // 5360 + if(g_switch.feedback_light_selection == 0x01){ + 533a: 8462 ld.b r3, (r4, 0x2) + 533c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 533e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5340: 080a bt 0x5354 // 5354 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5342: 300b movi r0, 11 + 5344: e0000532 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5348: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 534a: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 534c: e000052e bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH1] = state; + 5350: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 5352: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5354: 3006 movi r0, 6 + 5356: e0000529 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 535a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 535c: 300b movi r0, 11 + 535e: 07f7 br 0x534c // 534c + }else if(state == Control_OFF){ + 5360: 3942 cmpnei r1, 2 + 5362: 0bf7 bt 0x5350 // 5350 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5364: 016a lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5366: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5368: 9360 ld.w r3, (r3, 0x0) + 536a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 536c: 8462 ld.b r3, (r4, 0x2) + 536e: 3b41 cmpnei r3, 1 + 5370: 0809 bt 0x5382 // 5382 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5372: 300b movi r0, 11 + 5374: e000051a bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5378: 846a ld.b r3, (r4, 0xa) + 537a: 3b41 cmpnei r3, 1 + 537c: 0bea bt 0x5350 // 5350 + 537e: 3101 movi r1, 1 + 5380: 07e5 br 0x534a // 534a + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5382: 3006 movi r0, 6 + 5384: e0000512 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 5388: 846a ld.b r3, (r4, 0xa) + 538a: 3b41 cmpnei r3, 1 + 538c: 0be2 bt 0x5350 // 5350 + 538e: 3101 movi r1, 1 + 5390: 07e6 br 0x535c // 535c + if(state == Control_ON){ + 5392: 0814 bt 0x53ba // 53ba + if(g_switch.feedback_light_selection == 0x01){ + 5394: 8462 ld.b r3, (r4, 0x2) + 5396: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5398: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 539a: 080a bt 0x53ae // 53ae + TM1812_Control_CH_State(TPK2_White,Control_ON); + 539c: 300c movi r0, 12 + 539e: e0000505 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 53a2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 53a4: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 53a6: e0000501 bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH2] = state; + 53aa: a4a6 st.b r5, (r4, 0x6) + break; + 53ac: 07d3 br 0x5352 // 5352 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 53ae: 3007 movi r0, 7 + 53b0: e00004fc bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53b4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 53b6: 300c movi r0, 12 + 53b8: 07f7 br 0x53a6 // 53a6 + }else if(state == Control_OFF){ + 53ba: 3942 cmpnei r1, 2 + 53bc: 0bf7 bt 0x53aa // 53aa + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53be: 0260 lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53c0: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53c2: 9360 ld.w r3, (r3, 0x0) + 53c4: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 53c6: 8462 ld.b r3, (r4, 0x2) + 53c8: 3b41 cmpnei r3, 1 + 53ca: 0809 bt 0x53dc // 53dc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53cc: 300c movi r0, 12 + 53ce: e00004ed bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 53d2: 846a ld.b r3, (r4, 0xa) + 53d4: 3b41 cmpnei r3, 1 + 53d6: 0bea bt 0x53aa // 53aa + 53d8: 3101 movi r1, 1 + 53da: 07e5 br 0x53a4 // 53a4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 53dc: 3007 movi r0, 7 + 53de: e00004e5 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 53e2: 846a ld.b r3, (r4, 0xa) + 53e4: 3b41 cmpnei r3, 1 + 53e6: 0be2 bt 0x53aa // 53aa + 53e8: 3101 movi r1, 1 + 53ea: 07e6 br 0x53b6 // 53b6 + if(state == Control_ON){ + 53ec: 0814 bt 0x5414 // 5414 + if(g_switch.feedback_light_selection == 0x01){ + 53ee: 8462 ld.b r3, (r4, 0x2) + 53f0: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 53f2: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 53f4: 080a bt 0x5408 // 5408 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 53f6: 300d movi r0, 13 + 53f8: e00004d8 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 53fc: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 53fe: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5400: e00004d4 bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH3] = state; + 5404: a4a7 st.b r5, (r4, 0x7) + break; + 5406: 07a6 br 0x5352 // 5352 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5408: 3008 movi r0, 8 + 540a: e00004cf bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 540e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5410: 300d movi r0, 13 + 5412: 07f7 br 0x5400 // 5400 + }else if(state == Control_OFF){ + 5414: 3942 cmpnei r1, 2 + 5416: 0bf7 bt 0x5404 // 5404 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5418: 0277 lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 541a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 541c: 9360 ld.w r3, (r3, 0x0) + 541e: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5420: 8462 ld.b r3, (r4, 0x2) + 5422: 3b41 cmpnei r3, 1 + 5424: 0809 bt 0x5436 // 5436 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5426: 300d movi r0, 13 + 5428: e00004c0 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 542c: 846a ld.b r3, (r4, 0xa) + 542e: 3b41 cmpnei r3, 1 + 5430: 0bea bt 0x5404 // 5404 + 5432: 3101 movi r1, 1 + 5434: 07e5 br 0x53fe // 53fe + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5436: 3008 movi r0, 8 + 5438: e00004b8 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 543c: 846a ld.b r3, (r4, 0xa) + 543e: 3b41 cmpnei r3, 1 + 5440: 0be2 bt 0x5404 // 5404 + 5442: 3101 movi r1, 1 + 5444: 07e6 br 0x5410 // 5410 + if(state == Control_ON){ + 5446: 0814 bt 0x546e // 546e + if(g_switch.feedback_light_selection == 0x01){ + 5448: 8462 ld.b r3, (r4, 0x2) + 544a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 544c: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 544e: 080a bt 0x5462 // 5462 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5450: 300e movi r0, 14 + 5452: e00004ab bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5456: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5458: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 545a: e00004a7 bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH4] = state; + 545e: a4a8 st.b r5, (r4, 0x8) + break; + 5460: 0779 br 0x5352 // 5352 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5462: 3009 movi r0, 9 + 5464: e00004a2 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5468: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 546a: 300e movi r0, 14 + 546c: 07f7 br 0x545a // 545a + }else if(state == Control_OFF){ + 546e: 3942 cmpnei r1, 2 + 5470: 0bf7 bt 0x545e // 545e + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5472: 036d lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5474: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5476: 9360 ld.w r3, (r3, 0x0) + 5478: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 547a: 8462 ld.b r3, (r4, 0x2) + 547c: 3b41 cmpnei r3, 1 + 547e: 0809 bt 0x5490 // 5490 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5480: 300e movi r0, 14 + 5482: e0000493 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5486: 846a ld.b r3, (r4, 0xa) + 5488: 3b41 cmpnei r3, 1 + 548a: 0bea bt 0x545e // 545e + 548c: 3101 movi r1, 1 + 548e: 07e5 br 0x5458 // 5458 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5490: 3009 movi r0, 9 + 5492: e000048b bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 5496: 846a ld.b r3, (r4, 0xa) + 5498: 3b41 cmpnei r3, 1 + 549a: 0be2 bt 0x545e // 545e + 549c: 3101 movi r1, 1 + 549e: 07e6 br 0x546a // 546a + if(state == Control_ON){ + 54a0: 0814 bt 0x54c8 // 54c8 + if(g_switch.feedback_light_selection == 0x01){ + 54a2: 8462 ld.b r3, (r4, 0x2) + 54a4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 54a6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 54a8: 080a bt 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_White,Control_ON); + 54aa: 300f movi r0, 15 + 54ac: e000047e bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 54b0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 54b2: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 54b4: e000047a bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH5] = state; + 54b8: a4a9 st.b r5, (r4, 0x9) + break; + 54ba: 074c br 0x5352 // 5352 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 54bc: 300a movi r0, 10 + 54be: e0000475 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 54c2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 54c4: 300f movi r0, 15 + 54c6: 07f7 br 0x54b4 // 54b4 + }else if(state == Control_OFF){ + 54c8: 3942 cmpnei r1, 2 + 54ca: 0bf7 bt 0x54b8 // 54b8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54cc: 137b lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 54ce: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54d0: 9360 ld.w r3, (r3, 0x0) + 54d2: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 54d4: 8462 ld.b r3, (r4, 0x2) + 54d6: 3b41 cmpnei r3, 1 + 54d8: 0809 bt 0x54ea // 54ea + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 54da: 300f movi r0, 15 + 54dc: e0000466 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 54e0: 846a ld.b r3, (r4, 0xa) + 54e2: 3b41 cmpnei r3, 1 + 54e4: 0bea bt 0x54b8 // 54b8 + 54e6: 3101 movi r1, 1 + 54e8: 07e5 br 0x54b2 // 54b2 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 54ea: 300a movi r0, 10 + 54ec: e000045e bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 54f0: 846a ld.b r3, (r4, 0xa) + 54f2: 3b41 cmpnei r3, 1 + 54f4: 0be2 bt 0x54b8 // 54b8 + 54f6: 3101 movi r1, 1 + 54f8: 07e6 br 0x54c4 // 54c4 + if(state == Control_ON){ + 54fa: 08b1 bt 0x565c // 565c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54fc: 136f lrw r3, 0x200000c0 // 56b8 + 54fe: 9360 ld.w r3, (r3, 0x0) + 5500: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5502: 8462 ld.b r3, (r4, 0x2) + 5504: 3b41 cmpnei r3, 1 + 5506: 8465 ld.b r3, (r4, 0x5) + 5508: 0857 bt 0x55b6 // 55b6 + if(g_switch.light_state[T_CH1] != Control_ON) { + 550a: 3b41 cmpnei r3, 1 + 550c: 0c33 bf 0x5572 // 5572 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 550e: 3101 movi r1, 1 + 5510: 3006 movi r0, 6 + 5512: e000044b bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5516: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5518: 300b movi r0, 11 + 551a: e0000447 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH2] != Control_ON) { + 551e: 8466 ld.b r3, (r4, 0x6) + 5520: 3b41 cmpnei r3, 1 + 5522: 0c2e bf 0x557e // 557e + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 5524: 3101 movi r1, 1 + 5526: 3007 movi r0, 7 + 5528: e0000440 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 552c: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 552e: 300c movi r0, 12 + 5530: e000043c bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH3] != Control_ON) { + 5534: 8467 ld.b r3, (r4, 0x7) + 5536: 3b41 cmpnei r3, 1 + 5538: 0c29 bf 0x558a // 558a + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 553a: 3101 movi r1, 1 + 553c: 3008 movi r0, 8 + 553e: e0000435 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5542: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 5544: 300d movi r0, 13 + 5546: e0000431 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH4] != Control_ON) { + 554a: 8468 ld.b r3, (r4, 0x8) + 554c: 3b41 cmpnei r3, 1 + 554e: 0c24 bf 0x5596 // 5596 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5550: 3101 movi r1, 1 + 5552: 3009 movi r0, 9 + 5554: e000042a bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5558: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 555a: 300e movi r0, 14 + 555c: e0000426 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5560: 8469 ld.b r3, (r4, 0x9) + 5562: 3b41 cmpnei r3, 1 + 5564: 0c1f bf 0x55a2 // 55a2 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 5566: 3101 movi r1, 1 + 5568: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 556a: e000041f bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 556e: 3102 movi r1, 2 + 5570: 041e br 0x55ac // 55ac + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5572: 3102 movi r1, 2 + 5574: 3006 movi r0, 6 + 5576: e0000419 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 557a: 3101 movi r1, 1 + 557c: 07ce br 0x5518 // 5518 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 557e: 3102 movi r1, 2 + 5580: 3007 movi r0, 7 + 5582: e0000413 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5586: 3101 movi r1, 1 + 5588: 07d3 br 0x552e // 552e + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 558a: 3102 movi r1, 2 + 558c: 3008 movi r0, 8 + 558e: e000040d bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 5592: 3101 movi r1, 1 + 5594: 07d8 br 0x5544 // 5544 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5596: 3102 movi r1, 2 + 5598: 3009 movi r0, 9 + 559a: e0000407 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 559e: 3101 movi r1, 1 + 55a0: 07dd br 0x555a // 555a + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 55a2: 3102 movi r1, 2 + 55a4: 300a movi r0, 10 + 55a6: e0000401 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 55aa: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 55ac: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 55ae: e00003fd bsr 0x5da8 // 5da8 + g_switch.light_state[T_Backlight] = state; + 55b2: a4aa st.b r5, (r4, 0xa) +} + 55b4: 06cf br 0x5352 // 5352 + if(g_switch.light_state[T_CH1] != Control_ON) { + 55b6: 3b41 cmpnei r3, 1 + 55b8: 0c33 bf 0x561e // 561e + TM1812_Control_CH_State(TPK1_White,Control_ON); + 55ba: 3101 movi r1, 1 + 55bc: 300b movi r0, 11 + 55be: e00003f5 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 55c2: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 55c4: 3006 movi r0, 6 + 55c6: e00003f1 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH2] != Control_ON) { + 55ca: 8466 ld.b r3, (r4, 0x6) + 55cc: 3b41 cmpnei r3, 1 + 55ce: 0c2e bf 0x562a // 562a + TM1812_Control_CH_State(TPK2_White,Control_ON); + 55d0: 3101 movi r1, 1 + 55d2: 300c movi r0, 12 + 55d4: e00003ea bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 55d8: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 55da: 3007 movi r0, 7 + 55dc: e00003e6 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH3] != Control_ON) { + 55e0: 8467 ld.b r3, (r4, 0x7) + 55e2: 3b41 cmpnei r3, 1 + 55e4: 0c29 bf 0x5636 // 5636 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 55e6: 3101 movi r1, 1 + 55e8: 300d movi r0, 13 + 55ea: e00003df bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 55ee: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 55f0: 3008 movi r0, 8 + 55f2: e00003db bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH4] != Control_ON) { + 55f6: 8468 ld.b r3, (r4, 0x8) + 55f8: 3b41 cmpnei r3, 1 + 55fa: 0c24 bf 0x5642 // 5642 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 55fc: 3101 movi r1, 1 + 55fe: 300e movi r0, 14 + 5600: e00003d4 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5604: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5606: 3009 movi r0, 9 + 5608: e00003d0 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH5] != Control_ON) { + 560c: 8469 ld.b r3, (r4, 0x9) + 560e: 3b41 cmpnei r3, 1 + 5610: 0c1f bf 0x564e // 564e + TM1812_Control_CH_State(TPK5_White,Control_ON); + 5612: 3101 movi r1, 1 + 5614: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5616: e00003c9 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 561a: 3102 movi r1, 2 + 561c: 041e br 0x5658 // 5658 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 561e: 3102 movi r1, 2 + 5620: 300b movi r0, 11 + 5622: e00003c3 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5626: 3101 movi r1, 1 + 5628: 07ce br 0x55c4 // 55c4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 562a: 3102 movi r1, 2 + 562c: 300c movi r0, 12 + 562e: e00003bd bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 5632: 3101 movi r1, 1 + 5634: 07d3 br 0x55da // 55da + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5636: 3102 movi r1, 2 + 5638: 300d movi r0, 13 + 563a: e00003b7 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 563e: 3101 movi r1, 1 + 5640: 07d8 br 0x55f0 // 55f0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5642: 3102 movi r1, 2 + 5644: 300e movi r0, 14 + 5646: e00003b1 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 564a: 3101 movi r1, 1 + 564c: 07dd br 0x5606 // 5606 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 564e: 3102 movi r1, 2 + 5650: 300f movi r0, 15 + 5652: e00003ab bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 5656: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 5658: 300a movi r0, 10 + 565a: 07aa br 0x55ae // 55ae + }else if(state == Control_OFF){ + 565c: 3942 cmpnei r1, 2 + 565e: 0baa bt 0x55b2 // 55b2 + if(g_switch.feedback_light_selection == 0x01){ + 5660: 8462 ld.b r3, (r4, 0x2) + 5662: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5664: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 5666: 082b bt 0x56bc // 56bc + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5668: 3006 movi r0, 6 + 566a: e000039f bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 566e: 3102 movi r1, 2 + 5670: 3007 movi r0, 7 + 5672: e000039b bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5676: 3102 movi r1, 2 + 5678: 3008 movi r0, 8 + 567a: e0000397 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 567e: 3102 movi r1, 2 + 5680: 3009 movi r0, 9 + 5682: e0000393 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 5686: 3102 movi r1, 2 + 5688: 300a movi r0, 10 + 568a: e000038f bsr 0x5da8 // 5da8 + if(g_switch.autoOff_light_flag == 0x01){ + 568e: 8461 ld.b r3, (r4, 0x1) + 5690: 3b41 cmpnei r3, 1 + 5692: 0b90 bt 0x55b2 // 55b2 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5694: 3102 movi r1, 2 + 5696: 300b movi r0, 11 + 5698: e0000388 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 569c: 3102 movi r1, 2 + 569e: 300c movi r0, 12 + 56a0: e0000384 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 56a4: 3102 movi r1, 2 + 56a6: 300d movi r0, 13 + 56a8: e0000380 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 56ac: 3102 movi r1, 2 + 56ae: 300e movi r0, 14 + 56b0: 075d br 0x556a // 556a + 56b2: 0000 bkpt + 56b4: 200005a4 .long 0x200005a4 + 56b8: 200000c0 .long 0x200000c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 56bc: 300b movi r0, 11 + 56be: e0000375 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 56c2: 3102 movi r1, 2 + 56c4: 300c movi r0, 12 + 56c6: e0000371 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 56ca: 3102 movi r1, 2 + 56cc: 300d movi r0, 13 + 56ce: e000036d bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 56d2: 3102 movi r1, 2 + 56d4: 300e movi r0, 14 + 56d6: e0000369 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 56da: 3102 movi r1, 2 + 56dc: 300f movi r0, 15 + 56de: e0000365 bsr 0x5da8 // 5da8 + if(g_switch.autoOff_light_flag == 0x01){ + 56e2: 8461 ld.b r3, (r4, 0x1) + 56e4: 3b41 cmpnei r3, 1 + 56e6: 0b66 bt 0x55b2 // 55b2 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 56e8: 3102 movi r1, 2 + 56ea: 3006 movi r0, 6 + 56ec: e000035e bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 56f0: 3102 movi r1, 2 + 56f2: 3007 movi r0, 7 + 56f4: e000035a bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 56f8: 3102 movi r1, 2 + 56fa: 3008 movi r0, 8 + 56fc: e0000356 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5700: 3102 movi r1, 2 + 5702: 3009 movi r0, 9 + 5704: 0789 br 0x5616 // 5616 + +Disassembly of section .text.Contol_Switch_Light_2: + +00005708 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 5708: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 570a: 3805 cmphsi r0, 6 +{ + 570c: 6d47 mov r5, r1 + switch(ch) + 570e: 0818 bt 0x573e // 573e + 5710: 009b lrw r4, 0x200005a4 // 5aa0 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 5712: 3941 cmpnei r1, 1 + switch(ch) + 5714: e3ffdb0c bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5718: 00330006 .long 0x00330006 + 571c: 008d0060 .long 0x008d0060 + 5720: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 5724: 0814 bt 0x574c // 574c + if(g_switch.feedback_light_selection == 0x01){ + 5726: 8462 ld.b r3, (r4, 0x2) + 5728: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 572a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 572c: 080a bt 0x5740 // 5740 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 572e: 300b movi r0, 11 + 5730: e0000374 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5734: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5736: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5738: e0000370 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH1] = state; + 573c: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 573e: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5740: 3006 movi r0, 6 + 5742: e000036b bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5746: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5748: 300b movi r0, 11 + 574a: 07f7 br 0x5738 // 5738 + }else if(state == Control_OFF){ + 574c: 3942 cmpnei r1, 2 + 574e: 0bf7 bt 0x573c // 573c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5750: 016a lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5752: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5754: 9360 ld.w r3, (r3, 0x0) + 5756: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5758: 8462 ld.b r3, (r4, 0x2) + 575a: 3b41 cmpnei r3, 1 + 575c: 0809 bt 0x576e // 576e + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 575e: 300b movi r0, 11 + 5760: e000035c bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5764: 846a ld.b r3, (r4, 0xa) + 5766: 3b41 cmpnei r3, 1 + 5768: 0bea bt 0x573c // 573c + 576a: 3101 movi r1, 1 + 576c: 07e5 br 0x5736 // 5736 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 576e: 3006 movi r0, 6 + 5770: e0000354 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5774: 846a ld.b r3, (r4, 0xa) + 5776: 3b41 cmpnei r3, 1 + 5778: 0be2 bt 0x573c // 573c + 577a: 3101 movi r1, 1 + 577c: 07e6 br 0x5748 // 5748 + if(state == Control_ON){ + 577e: 0814 bt 0x57a6 // 57a6 + if(g_switch.feedback_light_selection == 0x01){ + 5780: 8462 ld.b r3, (r4, 0x2) + 5782: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5784: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5786: 080a bt 0x579a // 579a + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5788: 300c movi r0, 12 + 578a: e0000347 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 578e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5790: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5792: e0000343 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH2] = state; + 5796: a4a6 st.b r5, (r4, 0x6) + break; + 5798: 07d3 br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 579a: 3007 movi r0, 7 + 579c: e000033e bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57a0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 57a2: 300c movi r0, 12 + 57a4: 07f7 br 0x5792 // 5792 + }else if(state == Control_OFF){ + 57a6: 3942 cmpnei r1, 2 + 57a8: 0bf7 bt 0x5796 // 5796 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 57aa: 0260 lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57ac: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 57ae: 9360 ld.w r3, (r3, 0x0) + 57b0: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 57b2: 8462 ld.b r3, (r4, 0x2) + 57b4: 3b41 cmpnei r3, 1 + 57b6: 0809 bt 0x57c8 // 57c8 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57b8: 300c movi r0, 12 + 57ba: e000032f bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 57be: 846a ld.b r3, (r4, 0xa) + 57c0: 3b41 cmpnei r3, 1 + 57c2: 0bea bt 0x5796 // 5796 + 57c4: 3101 movi r1, 1 + 57c6: 07e5 br 0x5790 // 5790 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 57c8: 3007 movi r0, 7 + 57ca: e0000327 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 57ce: 846a ld.b r3, (r4, 0xa) + 57d0: 3b41 cmpnei r3, 1 + 57d2: 0be2 bt 0x5796 // 5796 + 57d4: 3101 movi r1, 1 + 57d6: 07e6 br 0x57a2 // 57a2 + if(state == Control_ON){ + 57d8: 0814 bt 0x5800 // 5800 + if(g_switch.feedback_light_selection == 0x01){ + 57da: 8462 ld.b r3, (r4, 0x2) + 57dc: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57de: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 57e0: 080a bt 0x57f4 // 57f4 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57e2: 300d movi r0, 13 + 57e4: e000031a bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 57e8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 57ea: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57ec: e0000316 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH3] = state; + 57f0: a4a7 st.b r5, (r4, 0x7) + break; + 57f2: 07a6 br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 57f4: 3008 movi r0, 8 + 57f6: e0000311 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 57fa: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57fc: 300d movi r0, 13 + 57fe: 07f7 br 0x57ec // 57ec + }else if(state == Control_OFF){ + 5800: 3942 cmpnei r1, 2 + 5802: 0bf7 bt 0x57f0 // 57f0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5804: 0277 lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5806: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5808: 9360 ld.w r3, (r3, 0x0) + 580a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 580c: 8462 ld.b r3, (r4, 0x2) + 580e: 3b41 cmpnei r3, 1 + 5810: 0809 bt 0x5822 // 5822 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5812: 300d movi r0, 13 + 5814: e0000302 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5818: 846a ld.b r3, (r4, 0xa) + 581a: 3b41 cmpnei r3, 1 + 581c: 0bea bt 0x57f0 // 57f0 + 581e: 3101 movi r1, 1 + 5820: 07e5 br 0x57ea // 57ea + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5822: 3008 movi r0, 8 + 5824: e00002fa bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5828: 846a ld.b r3, (r4, 0xa) + 582a: 3b41 cmpnei r3, 1 + 582c: 0be2 bt 0x57f0 // 57f0 + 582e: 3101 movi r1, 1 + 5830: 07e6 br 0x57fc // 57fc + if(state == Control_ON){ + 5832: 0814 bt 0x585a // 585a + if(g_switch.feedback_light_selection == 0x01){ + 5834: 8462 ld.b r3, (r4, 0x2) + 5836: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5838: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 583a: 080a bt 0x584e // 584e + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 583c: 300e movi r0, 14 + 583e: e00002ed bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5842: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5844: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5846: e00002e9 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH4] = state; + 584a: a4a8 st.b r5, (r4, 0x8) + break; + 584c: 0779 br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 584e: 3009 movi r0, 9 + 5850: e00002e4 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5854: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5856: 300e movi r0, 14 + 5858: 07f7 br 0x5846 // 5846 + }else if(state == Control_OFF){ + 585a: 3942 cmpnei r1, 2 + 585c: 0bf7 bt 0x584a // 584a + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 585e: 036d lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5860: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5862: 9360 ld.w r3, (r3, 0x0) + 5864: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5866: 8462 ld.b r3, (r4, 0x2) + 5868: 3b41 cmpnei r3, 1 + 586a: 0809 bt 0x587c // 587c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 586c: 300e movi r0, 14 + 586e: e00002d5 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5872: 846a ld.b r3, (r4, 0xa) + 5874: 3b41 cmpnei r3, 1 + 5876: 0bea bt 0x584a // 584a + 5878: 3101 movi r1, 1 + 587a: 07e5 br 0x5844 // 5844 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 587c: 3009 movi r0, 9 + 587e: e00002cd bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5882: 846a ld.b r3, (r4, 0xa) + 5884: 3b41 cmpnei r3, 1 + 5886: 0be2 bt 0x584a // 584a + 5888: 3101 movi r1, 1 + 588a: 07e6 br 0x5856 // 5856 + if(state == Control_ON){ + 588c: 0814 bt 0x58b4 // 58b4 + if(g_switch.feedback_light_selection == 0x01){ + 588e: 8462 ld.b r3, (r4, 0x2) + 5890: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5892: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5894: 080a bt 0x58a8 // 58a8 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5896: 300f movi r0, 15 + 5898: e00002c0 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 589c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 589e: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 58a0: e00002bc bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH5] = state; + 58a4: a4a9 st.b r5, (r4, 0x9) + break; + 58a6: 074c br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 58a8: 300a movi r0, 10 + 58aa: e00002b7 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 58ae: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 58b0: 300f movi r0, 15 + 58b2: 07f7 br 0x58a0 // 58a0 + }else if(state == Control_OFF){ + 58b4: 3942 cmpnei r1, 2 + 58b6: 0bf7 bt 0x58a4 // 58a4 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 58b8: 137b lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 58ba: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 58bc: 9360 ld.w r3, (r3, 0x0) + 58be: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 58c0: 8462 ld.b r3, (r4, 0x2) + 58c2: 3b41 cmpnei r3, 1 + 58c4: 0809 bt 0x58d6 // 58d6 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 58c6: 300f movi r0, 15 + 58c8: e00002a8 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 58cc: 846a ld.b r3, (r4, 0xa) + 58ce: 3b41 cmpnei r3, 1 + 58d0: 0bea bt 0x58a4 // 58a4 + 58d2: 3101 movi r1, 1 + 58d4: 07e5 br 0x589e // 589e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 58d6: 300a movi r0, 10 + 58d8: e00002a0 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 58dc: 846a ld.b r3, (r4, 0xa) + 58de: 3b41 cmpnei r3, 1 + 58e0: 0be2 bt 0x58a4 // 58a4 + 58e2: 3101 movi r1, 1 + 58e4: 07e6 br 0x58b0 // 58b0 + if(state == Control_ON){ + 58e6: 08b1 bt 0x5a48 // 5a48 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 58e8: 136f lrw r3, 0x200000c0 // 5aa4 + 58ea: 9360 ld.w r3, (r3, 0x0) + 58ec: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 58ee: 8462 ld.b r3, (r4, 0x2) + 58f0: 3b41 cmpnei r3, 1 + 58f2: 8465 ld.b r3, (r4, 0x5) + 58f4: 0857 bt 0x59a2 // 59a2 + if(g_switch.light_state[T_CH1] != Control_ON) { + 58f6: 3b41 cmpnei r3, 1 + 58f8: 0c33 bf 0x595e // 595e + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 58fa: 3101 movi r1, 1 + 58fc: 3006 movi r0, 6 + 58fe: e000028d bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5902: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5904: 300b movi r0, 11 + 5906: e0000289 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH2] != Control_ON) { + 590a: 8466 ld.b r3, (r4, 0x6) + 590c: 3b41 cmpnei r3, 1 + 590e: 0c2e bf 0x596a // 596a + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5910: 3101 movi r1, 1 + 5912: 3007 movi r0, 7 + 5914: e0000282 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5918: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 591a: 300c movi r0, 12 + 591c: e000027e bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH3] != Control_ON) { + 5920: 8467 ld.b r3, (r4, 0x7) + 5922: 3b41 cmpnei r3, 1 + 5924: 0c29 bf 0x5976 // 5976 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5926: 3101 movi r1, 1 + 5928: 3008 movi r0, 8 + 592a: e0000277 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 592e: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5930: 300d movi r0, 13 + 5932: e0000273 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH4] != Control_ON) { + 5936: 8468 ld.b r3, (r4, 0x8) + 5938: 3b41 cmpnei r3, 1 + 593a: 0c24 bf 0x5982 // 5982 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 593c: 3101 movi r1, 1 + 593e: 3009 movi r0, 9 + 5940: e000026c bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5944: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5946: 300e movi r0, 14 + 5948: e0000268 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH5] != Control_ON) { + 594c: 8469 ld.b r3, (r4, 0x9) + 594e: 3b41 cmpnei r3, 1 + 5950: 0c1f bf 0x598e // 598e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5952: 3101 movi r1, 1 + 5954: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5956: e0000261 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 595a: 3102 movi r1, 2 + 595c: 041e br 0x5998 // 5998 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 595e: 3102 movi r1, 2 + 5960: 3006 movi r0, 6 + 5962: e000025b bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5966: 3101 movi r1, 1 + 5968: 07ce br 0x5904 // 5904 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 596a: 3102 movi r1, 2 + 596c: 3007 movi r0, 7 + 596e: e0000255 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5972: 3101 movi r1, 1 + 5974: 07d3 br 0x591a // 591a + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5976: 3102 movi r1, 2 + 5978: 3008 movi r0, 8 + 597a: e000024f bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 597e: 3101 movi r1, 1 + 5980: 07d8 br 0x5930 // 5930 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5982: 3102 movi r1, 2 + 5984: 3009 movi r0, 9 + 5986: e0000249 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 598a: 3101 movi r1, 1 + 598c: 07dd br 0x5946 // 5946 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 598e: 3102 movi r1, 2 + 5990: 300a movi r0, 10 + 5992: e0000243 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5996: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5998: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 599a: e000023f bsr 0x5e18 // 5e18 + g_switch.light_state[T_Backlight] = state; + 599e: a4aa st.b r5, (r4, 0xa) +} + 59a0: 06cf br 0x573e // 573e + if(g_switch.light_state[T_CH1] != Control_ON) { + 59a2: 3b41 cmpnei r3, 1 + 59a4: 0c33 bf 0x5a0a // 5a0a + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 59a6: 3101 movi r1, 1 + 59a8: 300b movi r0, 11 + 59aa: e0000237 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 59ae: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 59b0: 3006 movi r0, 6 + 59b2: e0000233 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH2] != Control_ON) { + 59b6: 8466 ld.b r3, (r4, 0x6) + 59b8: 3b41 cmpnei r3, 1 + 59ba: 0c2e bf 0x5a16 // 5a16 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 59bc: 3101 movi r1, 1 + 59be: 300c movi r0, 12 + 59c0: e000022c bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 59c4: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 59c6: 3007 movi r0, 7 + 59c8: e0000228 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH3] != Control_ON) { + 59cc: 8467 ld.b r3, (r4, 0x7) + 59ce: 3b41 cmpnei r3, 1 + 59d0: 0c29 bf 0x5a22 // 5a22 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 59d2: 3101 movi r1, 1 + 59d4: 300d movi r0, 13 + 59d6: e0000221 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 59da: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 59dc: 3008 movi r0, 8 + 59de: e000021d bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH4] != Control_ON) { + 59e2: 8468 ld.b r3, (r4, 0x8) + 59e4: 3b41 cmpnei r3, 1 + 59e6: 0c24 bf 0x5a2e // 5a2e + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 59e8: 3101 movi r1, 1 + 59ea: 300e movi r0, 14 + 59ec: e0000216 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 59f0: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 59f2: 3009 movi r0, 9 + 59f4: e0000212 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH5] != Control_ON) { + 59f8: 8469 ld.b r3, (r4, 0x9) + 59fa: 3b41 cmpnei r3, 1 + 59fc: 0c1f bf 0x5a3a // 5a3a + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 59fe: 3101 movi r1, 1 + 5a00: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5a02: e000020b bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5a06: 3102 movi r1, 2 + 5a08: 041e br 0x5a44 // 5a44 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5a0a: 3102 movi r1, 2 + 5a0c: 300b movi r0, 11 + 5a0e: e0000205 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5a12: 3101 movi r1, 1 + 5a14: 07ce br 0x59b0 // 59b0 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5a16: 3102 movi r1, 2 + 5a18: 300c movi r0, 12 + 5a1a: e00001ff bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5a1e: 3101 movi r1, 1 + 5a20: 07d3 br 0x59c6 // 59c6 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5a22: 3102 movi r1, 2 + 5a24: 300d movi r0, 13 + 5a26: e00001f9 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5a2a: 3101 movi r1, 1 + 5a2c: 07d8 br 0x59dc // 59dc + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5a2e: 3102 movi r1, 2 + 5a30: 300e movi r0, 14 + 5a32: e00001f3 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5a36: 3101 movi r1, 1 + 5a38: 07dd br 0x59f2 // 59f2 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5a3a: 3102 movi r1, 2 + 5a3c: 300f movi r0, 15 + 5a3e: e00001ed bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5a42: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5a44: 300a movi r0, 10 + 5a46: 07aa br 0x599a // 599a + }else if(state == Control_OFF){ + 5a48: 3942 cmpnei r1, 2 + 5a4a: 0baa bt 0x599e // 599e + if(g_switch.feedback_light_selection == 0x01){ + 5a4c: 8462 ld.b r3, (r4, 0x2) + 5a4e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5a50: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 5a52: 082b bt 0x5aa8 // 5aa8 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5a54: 3006 movi r0, 6 + 5a56: e00001e1 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5a5a: 3102 movi r1, 2 + 5a5c: 3007 movi r0, 7 + 5a5e: e00001dd bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5a62: 3102 movi r1, 2 + 5a64: 3008 movi r0, 8 + 5a66: e00001d9 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5a6a: 3102 movi r1, 2 + 5a6c: 3009 movi r0, 9 + 5a6e: e00001d5 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5a72: 3102 movi r1, 2 + 5a74: 300a movi r0, 10 + 5a76: e00001d1 bsr 0x5e18 // 5e18 + if(g_switch.autoOff_light_flag == 0x01){ + 5a7a: 8461 ld.b r3, (r4, 0x1) + 5a7c: 3b41 cmpnei r3, 1 + 5a7e: 0b90 bt 0x599e // 599e + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5a80: 3102 movi r1, 2 + 5a82: 300b movi r0, 11 + 5a84: e00001ca bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5a88: 3102 movi r1, 2 + 5a8a: 300c movi r0, 12 + 5a8c: e00001c6 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5a90: 3102 movi r1, 2 + 5a92: 300d movi r0, 13 + 5a94: e00001c2 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5a98: 3102 movi r1, 2 + 5a9a: 300e movi r0, 14 + 5a9c: 075d br 0x5956 // 5956 + 5a9e: 0000 bkpt + 5aa0: 200005a4 .long 0x200005a4 + 5aa4: 200000c0 .long 0x200000c0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5aa8: 300b movi r0, 11 + 5aaa: e00001b7 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5aae: 3102 movi r1, 2 + 5ab0: 300c movi r0, 12 + 5ab2: e00001b3 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5ab6: 3102 movi r1, 2 + 5ab8: 300d movi r0, 13 + 5aba: e00001af bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5abe: 3102 movi r1, 2 + 5ac0: 300e movi r0, 14 + 5ac2: e00001ab bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5ac6: 3102 movi r1, 2 + 5ac8: 300f movi r0, 15 + 5aca: e00001a7 bsr 0x5e18 // 5e18 + if(g_switch.autoOff_light_flag == 0x01){ + 5ace: 8461 ld.b r3, (r4, 0x1) + 5ad0: 3b41 cmpnei r3, 1 + 5ad2: 0b66 bt 0x599e // 599e + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5ad4: 3102 movi r1, 2 + 5ad6: 3006 movi r0, 6 + 5ad8: e00001a0 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5adc: 3102 movi r1, 2 + 5ade: 3007 movi r0, 7 + 5ae0: e000019c bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5ae4: 3102 movi r1, 2 + 5ae6: 3008 movi r0, 8 + 5ae8: e0000198 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5aec: 3102 movi r1, 2 + 5aee: 3009 movi r0, 9 + 5af0: 0789 br 0x5a02 // 5a02 + +Disassembly of section .text.Contol_Switch_ClickAction: + +00005af4 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 5af4: 14d0 push r15 + switch(ch) + 5af6: 3804 cmphsi r0, 5 + 5af8: 0809 bt 0x5b0a // 5b0a + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 5afa: 1068 lrw r3, 0x200005a4 // 5b18 + 5afc: 836a ld.b r3, (r3, 0xa) + 5afe: 3b41 cmpnei r3, 1 + 5b00: 0806 bt 0x5b0c // 5b0c + if(state == Control_ON ){ + 5b02: 3941 cmpnei r1, 1 + 5b04: 0804 bt 0x5b0c // 5b0c + Contol_Switch_Light_2(ch,Control_ON); + 5b06: e3fffe01 bsr 0x5708 // 5708 + break; + default: + + break; + } +} + 5b0a: 1490 pop r15 + if(state == Control_OFF ){ + 5b0c: 3942 cmpnei r1, 2 + 5b0e: 0bfe bt 0x5b0a // 5b0a + Contol_Switch_Light(ch,Control_OFF); + 5b10: e3fffc06 bsr 0x531c // 531c +} + 5b14: 07fb br 0x5b0a // 5b0a + 5b16: 0000 bkpt + 5b18: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Get_TM1812_State_Change: + +00005b1c : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 5b1c: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 5b1e: 106f lrw r3, 0x200001a0 // 5b58 + 5b20: 8318 ld.b r0, (r3, 0x18) + 5b22: 3841 cmpnei r0, 1 + 5b24: 0c19 bf 0x5b56 // 5b56 + 5b26: 104e lrw r2, 0x20000140 // 5b5c + 5b28: 3018 movi r0, 24 + 5b2a: 3300 movi r3, 0 + for(i=0;i + rev++; + 5b36: 2300 addi r3, 1 + 5b38: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 5b3a: 5a84 addu r4, r2, r1 + 5b3c: 8480 ld.b r4, (r4, 0x0) + 5b3e: 3c41 cmpnei r4, 1 + 5b40: 0803 bt 0x5b46 // 5b46 + rev++; + 5b42: 2300 addi r3, 1 + 5b44: 74cc zextb r3, r3 + 5b46: 2800 subi r0, 1 + 5b48: 7400 zextb r0, r0 + for(i=0;i + } + } + + if(rev != 0x00) return 0x01; + 5b50: 3b40 cmpnei r3, 0 + 5b52: 6001 addc r0, r0 + return 0x01; //立即控制 + 5b54: 7400 zextb r0, r0 + return 0x00; +} + 5b56: 1482 pop r4-r5 + 5b58: 200001a0 .long 0x200001a0 + 5b5c: 20000140 .long 0x20000140 + +Disassembly of section .text.TimeCall_SIO_Send: + +00005b60 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 5b60: 14d4 push r4-r7, r15 + 5b62: 1421 subi r14, r14, 4 + 5b64: 1264 lrw r3, 0x20000140 // 5c74 + 5b66: 3188 movi r1, 136 + 5b68: 3260 movi r2, 96 + 5b6a: 604c addu r1, r3 + 5b6c: 608c addu r2, r3 + 5b6e: 3718 movi r7, 24 + 5b70: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 5b7e: 3448 movi r4, 72 + 5b80: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 5b82: 84a0 ld.b r5, (r4, 0x0) + 5b84: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 5b86: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 5b88: 083a bt 0x5bfc // 5bfc + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 5b8a: 35ff movi r5, 255 + 5b8c: 6542 cmpne r0, r5 + 5b8e: 0c34 bf 0x5bf6 // 5bf6 + //递增 + tm1812_param.gradient_cnt[i]++; + 5b90: 8280 ld.b r4, (r2, 0x0) + 5b92: 2400 addi r4, 1 + 5b94: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5b96: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 5b98: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5b9a: 0c05 bf 0x5ba4 // 5ba4 + tm1812_param.curr_data[i]++; + 5b9c: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 5b9e: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 5ba0: 3000 movi r0, 0 + 5ba2: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 5ba4: 3000 movi r0, 0 + 5ba6: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 5ba8: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 5baa: 3480 movi r4, 128 + 5bac: 6914 and r4, r5 + 5bae: 3c40 cmpnei r4, 0 + 5bb0: 9180 ld.w r4, (r1, 0x0) + 5bb2: 0c44 bf 0x5c3a // 5c3a + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 5bb4: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5bb6: 7180 lsl r6, r0 + 5bb8: 2001 addi r0, 2 + 5bba: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 5bbc: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5bbe: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 5bc0: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 5bc2: 0bf4 bt 0x5baa // 5baa + 5bc4: 5f03 subi r0, r7, 1 + 5bc6: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 5bd2: e3fff068 bsr 0x3ca2 // 3ca2 + + for(K=0;K + 5bda: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5bdc: 3022 movi r0, 34 + 5bde: 1148 lrw r2, 0x2000002c // 5c7c + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5be0: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5be2: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5be4: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 5bee: e3fff057 bsr 0x3c9c // 3c9c + +} + 5bf2: 1401 addi r14, r14, 4 + 5bf4: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 5bf6: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 5bf8: a400 st.b r0, (r4, 0x0) + 5bfa: 07d5 br 0x5ba4 // 5ba4 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 5bfc: 3840 cmpnei r0, 0 + 5bfe: 0c09 bf 0x5c10 // 5c10 + tm1812_param.gradient_cnt[i]++; + 5c00: 8280 ld.b r4, (r2, 0x0) + 5c02: 2400 addi r4, 1 + 5c04: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5c06: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 5c08: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5c0a: 0fcd bf 0x5ba4 // 5ba4 + tm1812_param.curr_data[i]--; + 5c0c: 2800 subi r0, 1 + 5c0e: 07c8 br 0x5b9e // 5b9e + tm1812_param.gradient_dir[i] = 0x01; + 5c10: 3001 movi r0, 1 + 5c12: 07f3 br 0x5bf8 // 5bf8 + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 5c14: 7400 zextb r0, r0 + 5c16: 8380 ld.b r4, (r3, 0x0) + 5c18: 6500 cmphs r0, r4 + 5c1a: 0807 bt 0x5c28 // 5c28 + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 5c1c: 5ca1 subu r5, r4, r0 + 5c1e: 3d24 cmplti r5, 5 + 5c20: 080b bt 0x5c36 // 5c36 + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 5c22: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5c24: a318 st.b r0, (r3, 0x18) + 5c26: 07bf br 0x5ba4 // 5ba4 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 5c28: 6410 cmphs r4, r0 + 5c2a: 0bbd bt 0x5ba4 // 5ba4 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 5c2c: 58b1 subu r5, r0, r4 + 5c2e: 3d24 cmplti r5, 5 + 5c30: 0803 bt 0x5c36 // 5c36 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5c32: 2803 subi r0, 4 + 5c34: 07f8 br 0x5c24 // 5c24 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 5c36: a398 st.b r4, (r3, 0x18) + 5c38: 07b6 br 0x5ba4 // 5ba4 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5c3a: 3602 movi r6, 2 + 5c3c: 07bd br 0x5bb6 // 5bb6 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5c3e: 8328 ld.b r1, (r3, 0x8) + 5c40: 6040 addu r1, r0 + 5c42: 4122 lsli r1, r1, 2 + 5c44: 98c0 ld.w r6, (r14, 0x0) + 5c46: 6058 addu r1, r6 + 5c48: 9120 ld.w r1, (r1, 0x0) + 5c4a: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5c4c: 9228 ld.w r1, (r2, 0x20) + 5c4e: 6850 and r1, r4 + 5c50: 3940 cmpnei r1, 0 + 5c52: 0ffd bf 0x5c4c // 5c4c + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5c54: 922b ld.w r1, (r2, 0x2c) + 5c56: 3982 bclri r1, 2 + 5c58: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5c5a: 9228 ld.w r1, (r2, 0x20) + 5c5c: 6854 and r1, r5 + 5c5e: 3940 cmpnei r1, 0 + 5c60: 0ffd bf 0x5c5a // 5c5a + SIO0->ICR &= ~SIO_TXDNE; + 5c62: 922b ld.w r1, (r2, 0x2c) + 5c64: 3980 bclri r1, 0 + 5c66: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 5c72: 0000 bkpt + 5c74: 20000140 .long 0x20000140 + 5c78: 20000220 .long 0x20000220 + 5c7c: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +00005c80 : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 5c80: 14d4 push r4-r7, r15 + 5c82: 1421 subi r14, r14, 4 + 5c84: 1105 lrw r0, 0x20000140 // 5d18 + 5c86: 1166 lrw r3, 0x200001c8 // 5d1c + 5c88: 3218 movi r2, 24 + 5c8a: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 5c9e: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5ca0: 7184 lsl r6, r1 + 5ca2: 2101 addi r1, 2 + 5ca4: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 5ca6: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5ca8: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 5caa: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 5cac: 0bf4 bt 0x5c94 // 5c94 + 5cae: 2a00 subi r2, 1 + 5cb0: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 5cba: e3ffeff4 bsr 0x3ca2 // 3ca2 + + for(K2=0;K2 + 5cc2: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5cc4: 3022 movi r0, 34 + 5cc6: 1058 lrw r2, 0x2000002c // 5d24 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5cc8: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5cca: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5ccc: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 5cd6: e3ffefe3 bsr 0x3c9c // 3c9c + +} + 5cda: 1401 addi r14, r14, 4 + 5cdc: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5cde: 3602 movi r6, 2 + 5ce0: 07e0 br 0x5ca0 // 5ca0 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5ce2: 8329 ld.b r1, (r3, 0x9) + 5ce4: 6040 addu r1, r0 + 5ce6: 4122 lsli r1, r1, 2 + 5ce8: 98c0 ld.w r6, (r14, 0x0) + 5cea: 6058 addu r1, r6 + 5cec: 9120 ld.w r1, (r1, 0x0) + 5cee: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5cf0: 9228 ld.w r1, (r2, 0x20) + 5cf2: 6850 and r1, r4 + 5cf4: 3940 cmpnei r1, 0 + 5cf6: 0ffd bf 0x5cf0 // 5cf0 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5cf8: 922b ld.w r1, (r2, 0x2c) + 5cfa: 3982 bclri r1, 2 + 5cfc: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5cfe: 9228 ld.w r1, (r2, 0x20) + 5d00: 6854 and r1, r5 + 5d02: 3940 cmpnei r1, 0 + 5d04: 0ffd bf 0x5cfe // 5cfe + SIO0->ICR &= ~SIO_TXDNE; + 5d06: 922b ld.w r1, (r2, 0x2c) + 5d08: 3980 bclri r1, 0 + 5d0a: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 5d16: 0000 bkpt + 5d18: 20000140 .long 0x20000140 + 5d1c: 200001c8 .long 0x200001c8 + 5d20: 20000220 .long 0x20000220 + 5d24: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +00005d28 : + + +void Tm1812_Task(void) { + 5d28: 14d0 push r15 + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 5d2a: e3fffef9 bsr 0x5b1c // 5b1c + 5d2e: 3841 cmpnei r0, 1 + 5d30: 1070 lrw r3, 0x200001c0 // 5d70 + 5d32: 0812 bt 0x5d56 // 5d56 + if(SysTick_100us - StateChange_Tick >= 20){ + 5d34: 1030 lrw r1, 0x200000bc // 5d74 + 5d36: 9140 ld.w r2, (r1, 0x0) + 5d38: 931b ld.w r0, (r3, 0x6c) + 5d3a: 6082 subu r2, r0 + 5d3c: 3a13 cmphsi r2, 20 + 5d3e: 0c0b bf 0x5d54 // 5d54 + StateChange_Tick = SysTick_100us; + 5d40: 9140 ld.w r2, (r1, 0x0) + 5d42: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5d44: 104d lrw r2, 0x200000c0 // 5d78 + 5d46: 9240 ld.w r2, (r2, 0x0) + 5d48: b341 st.w r2, (r3, 0x4) + tm1812_param.change_flag = 0x00; + 5d4a: 106d lrw r3, 0x200001a0 // 5d7c + 5d4c: 3200 movi r2, 0 + 5d4e: a358 st.b r2, (r3, 0x18) + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + + TimeCall_SIO_Send(); + 5d50: e3ffff08 bsr 0x5b60 // 5b60 + } + } + +} + 5d54: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 5d56: 1029 lrw r1, 0x200000c0 // 5d78 + 5d58: 9140 ld.w r2, (r1, 0x0) + 5d5a: 9301 ld.w r0, (r3, 0x4) + 5d5c: 6082 subu r2, r0 + 5d5e: 1009 lrw r0, 0x7cf // 5d80 + 5d60: 6480 cmphs r0, r2 + 5d62: 0bf9 bt 0x5d54 // 5d54 + StateChange_Tick = SysTick_100us; + 5d64: 1044 lrw r2, 0x200000bc // 5d74 + 5d66: 9240 ld.w r2, (r2, 0x0) + 5d68: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5d6a: 9140 ld.w r2, (r1, 0x0) + 5d6c: b341 st.w r2, (r3, 0x4) + 5d6e: 07f1 br 0x5d50 // 5d50 + 5d70: 200001c0 .long 0x200001c0 + 5d74: 200000bc .long 0x200000bc + 5d78: 200000c0 .long 0x200000c0 + 5d7c: 200001a0 .long 0x200001a0 + 5d80: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00005d84 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 5d84: 3817 cmphsi r0, 24 + 5d86: 080c bt 0x5d9e // 5d9e + return; + } + + tm1812_param.data[select] = data; + 5d88: 1066 lrw r3, 0x20000140 // 5da0 + 5d8a: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 5d8c: 3260 movi r2, 96 + 5d8e: 608c addu r2, r3 + tm1812_param.data[select] = data; + 5d90: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 5d92: 3101 movi r1, 1 + 5d94: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5d96: 237f addi r3, 128 + 5d98: 1043 lrw r2, 0x200000c0 // 5da4 + 5d9a: 9240 ld.w r2, (r2, 0x0) + 5d9c: b340 st.w r2, (r3, 0x0) +} + 5d9e: 783c jmp r15 + 5da0: 20000140 .long 0x20000140 + 5da4: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_Control_CH_State: + +00005da8 : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 5da8: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5daa: 3817 cmphsi r0, 24 + 5dac: 082a bt 0x5e00 // 5e00 + return 0x01; + } + + switch(state){ + 5dae: 3942 cmpnei r1, 2 + 5db0: 0c12 bf 0x5dd4 // 5dd4 + 5db2: 3943 cmpnei r1, 3 + 5db4: 0c14 bf 0x5ddc // 5ddc + 5db6: 3941 cmpnei r1, 1 + 5db8: 0806 bt 0x5dc4 // 5dc4 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 5dba: 1073 lrw r3, 0x20000140 // 5e04 + 5dbc: 600c addu r0, r3 + 5dbe: 3300 movi r3, 0 + 5dc0: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 5dc2: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5dc4: 1071 lrw r3, 0x200001a0 // 5e08 + 5dc6: 3201 movi r2, 1 + 5dc8: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 5dca: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 5dcc: 1050 lrw r2, 0x200000c0 // 5e0c + 5dce: 9240 ld.w r2, (r2, 0x0) + 5dd0: b348 st.w r2, (r3, 0x20) +} + 5dd2: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 5dd4: 106c lrw r3, 0x20000140 // 5e04 + 5dd6: 600c addu r0, r3 + 5dd8: 3300 movi r3, 0 + 5dda: 07f4 br 0x5dc2 // 5dc2 + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 5ddc: 106a lrw r3, 0x20000140 // 5e04 + 5dde: 600c addu r0, r3 + 5de0: 8020 ld.b r1, (r0, 0x0) + 5de2: 32ff movi r2, 255 + 5de4: 3300 movi r3, 0 + 5de6: 6486 cmpne r1, r2 + 5de8: 2b00 subi r3, 1 + 5dea: 0c07 bf 0x5df8 // 5df8 + tm1812_param.data[ch] = TM1812_CH_ON; + 5dec: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 5dee: 1029 lrw r1, 0xab06 // 5e10 + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5df0: 3000 movi r0, 0 + 5df2: e3fff18b bsr 0x4108 // 4108 + 5df6: 07e7 br 0x5dc4 // 5dc4 + tm1812_param.data[ch] = TM1812_CH_OFF; + 5df8: 3300 movi r3, 0 + 5dfa: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5dfc: 1026 lrw r1, 0xab0e // 5e14 + 5dfe: 07f9 br 0x5df0 // 5df0 + return 0x01; + 5e00: 3001 movi r0, 1 + 5e02: 07e8 br 0x5dd2 // 5dd2 + 5e04: 20000140 .long 0x20000140 + 5e08: 200001a0 .long 0x200001a0 + 5e0c: 200000c0 .long 0x200000c0 + 5e10: 0000ab06 .long 0x0000ab06 + 5e14: 0000ab0e .long 0x0000ab0e + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +00005e18 : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 5e18: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5e1a: 3817 cmphsi r0, 24 + 5e1c: 0827 bt 0x5e6a // 5e6a + return 0x01; + } + + switch(state){ + 5e1e: 3942 cmpnei r1, 2 + 5e20: 0c13 bf 0x5e46 // 5e46 + 5e22: 3943 cmpnei r1, 3 + 5e24: 0c15 bf 0x5e4e // 5e4e + 5e26: 3941 cmpnei r1, 1 + 5e28: 0807 bt 0x5e36 // 5e36 + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 5e2a: 1072 lrw r3, 0x20000140 // 5e70 + 5e2c: 600c addu r0, r3 + 5e2e: 3300 movi r3, 0 + 5e30: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5e32: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5e34: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5e36: 1070 lrw r3, 0x200001a0 // 5e74 + 5e38: 3201 movi r2, 1 + 5e3a: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5e3c: 3000 movi r0, 0 + 5e3e: 104f lrw r2, 0x200000c0 // 5e78 + 5e40: 9240 ld.w r2, (r2, 0x0) + 5e42: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5e44: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5e46: 106b lrw r3, 0x20000140 // 5e70 + 5e48: 600c addu r0, r3 + 5e4a: 3300 movi r3, 0 + 5e4c: 07f3 br 0x5e32 // 5e32 + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 5e4e: 1069 lrw r3, 0x20000140 // 5e70 + 5e50: 600c addu r0, r3 + 5e52: 3218 movi r2, 24 + 5e54: 6080 addu r2, r0 + 5e56: 8280 ld.b r4, (r2, 0x0) + 5e58: 31ff movi r1, 255 + 5e5a: 3300 movi r3, 0 + 5e5c: 6452 cmpne r4, r1 + 5e5e: 2b00 subi r3, 1 + 5e60: 0c03 bf 0x5e66 // 5e66 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5e62: a260 st.b r3, (r2, 0x0) + 5e64: 07e8 br 0x5e34 // 5e34 + 5e66: 3300 movi r3, 0 + 5e68: 07fd br 0x5e62 // 5e62 + return 0x01; + 5e6a: 3001 movi r0, 1 + 5e6c: 07ec br 0x5e44 // 5e44 + 5e6e: 0000 bkpt + 5e70: 20000140 .long 0x20000140 + 5e74: 200001a0 .long 0x200001a0 + 5e78: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_LED_Init: + +00005e7c : +void TM1812_LED_Init(void){ + 5e7c: 14d0 push r15 + 5e7e: 1426 subi r14, r14, 24 + SIO_DeInit(); + 5e80: e3ffe3a2 bsr 0x25c4 // 25c4 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 5e84: 3001 movi r0, 1 + 5e86: e3ffe3af bsr 0x25e4 // 25e4 + SIO_TX_Init(SIOCLK_EN,9); // + 5e8a: 3109 movi r1, 9 + 5e8c: 3001 movi r0, 1 + 5e8e: e3ffe3db bsr 0x2644 // 2644 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 5e92: 3303 movi r3, 3 + 5e94: b865 st.w r3, (r14, 0x14) + 5e96: 330f movi r3, 15 + 5e98: b864 st.w r3, (r14, 0x10) + 5e9a: 33a0 movi r3, 160 + 5e9c: 4366 lsli r3, r3, 6 + 5e9e: b863 st.w r3, (r14, 0xc) + 5ea0: 33a0 movi r3, 160 + 5ea2: 4363 lsli r3, r3, 3 + 5ea4: b862 st.w r3, (r14, 0x8) + 5ea6: 3300 movi r3, 0 + 5ea8: b861 st.w r3, (r14, 0x4) + 5eaa: b860 st.w r3, (r14, 0x0) + 5eac: 3207 movi r2, 7 + 5eae: 3317 movi r3, 23 + 5eb0: 3100 movi r1, 0 + 5eb2: 3002 movi r0, 2 + 5eb4: e3ffe3d0 bsr 0x2654 // 2654 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 5eb8: 32e8 movi r2, 232 + 5eba: 3100 movi r1, 0 + 5ebc: 100a lrw r0, 0x20000140 // 5ee4 + 5ebe: e3ffdec1 bsr 0x1c40 // 1c40 <__memset_fast> + RLY1_HOT_CLOSE; + 5ec2: 3101 movi r1, 1 + 5ec4: 3012 movi r0, 18 + 5ec6: e3ffffa9 bsr 0x5e18 // 5e18 + RLY2_COLD_CLOSE; + 5eca: 3101 movi r1, 1 + 5ecc: 3013 movi r0, 19 + 5ece: e3ffffa5 bsr 0x5e18 // 5e18 + RLY_CTRL_EN; //继电器使能 + 5ed2: 3101 movi r1, 1 + 5ed4: 3017 movi r0, 23 + 5ed6: e3ffffa1 bsr 0x5e18 // 5e18 + TimeCall_SIO_Send2(); + 5eda: e3fffed3 bsr 0x5c80 // 5c80 +} + 5ede: 1406 addi r14, r14, 24 + 5ee0: 1490 pop r15 + 5ee2: 0000 bkpt + 5ee4: 20000140 .long 0x20000140 + +Disassembly of section .text.HT1621_WR_Data: + +00005ee8 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 5ee8: 14d4 push r4-r7, r15 + 5eea: 6d43 mov r5, r0 + 5eec: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 5ef6: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 5ef8: 3101 movi r1, 1 + 5efa: 9600 ld.w r0, (r6, 0x0) + 5efc: e3ffe2ec bsr 0x24d4 // 24d4 + nop; + 5f00: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 5f02: 74d6 sextb r3, r5 + 5f04: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 5f06: 3104 movi r1, 4 + 5f08: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 5f0a: 0c0d bf 0x5f24 // 5f24 + HT1621_DATA_HIGH; + 5f0c: e3ffe2e0 bsr 0x24cc // 24cc + nop; + 5f10: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 5f12: 3101 movi r1, 1 + 5f14: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 5f16: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 5f1e: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 5f24: e3ffe2d8 bsr 0x24d4 // 24d4 + 5f28: 07f4 br 0x5f10 // 5f10 + 5f2a: 0000 bkpt + 5f2c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +00005f30 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 5f30: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5f32: 108b lrw r4, 0x2000004c // 5f5c +{ + 5f34: 6d43 mov r5, r0 + HT1621_CS_LOW; + 5f36: 310f movi r1, 15 + 5f38: 9400 ld.w r0, (r4, 0x0) + 5f3a: e3ffe2cd bsr 0x24d4 // 24d4 + nop; + 5f3e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 5f40: 3104 movi r1, 4 + 5f42: 3080 movi r0, 128 + 5f44: e3ffffd2 bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(cmd,8); + 5f48: 6c17 mov r0, r5 + 5f4a: 3108 movi r1, 8 + 5f4c: e3ffffce bsr 0x5ee8 // 5ee8 + HT1621_CS_HIGH; + 5f50: 9400 ld.w r0, (r4, 0x0) + 5f52: 310f movi r1, 15 + 5f54: e3ffe2bc bsr 0x24cc // 24cc + nop; + 5f58: 6c03 mov r0, r0 +} + 5f5a: 1492 pop r4-r5, r15 + 5f5c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005f60 : +void HT1621_Init(void){ + 5f60: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 5f62: 118b lrw r4, 0x2000004c // 600c + memset(&HT1621,0,sizeof(HT1621_t)); + 5f64: 3240 movi r2, 64 + 5f66: 3100 movi r1, 0 + 5f68: 110a lrw r0, 0x200005c0 // 6010 + 5f6a: e3ffde6b bsr 0x1c40 // 1c40 <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 5f6e: 9400 ld.w r0, (r4, 0x0) + 5f70: 3200 movi r2, 0 + 5f72: 3100 movi r1, 0 + 5f74: e3ffe0f0 bsr 0x2154 // 2154 + GPIO_Init(GPIOA0,1,Output); + 5f78: 9400 ld.w r0, (r4, 0x0) + 5f7a: 3200 movi r2, 0 + 5f7c: 3101 movi r1, 1 + 5f7e: e3ffe0eb bsr 0x2154 // 2154 + GPIO_Init(GPIOA0,15,Output); + 5f82: 9400 ld.w r0, (r4, 0x0) + 5f84: 3200 movi r2, 0 + 5f86: 310f movi r1, 15 + 5f88: e3ffe0e6 bsr 0x2154 // 2154 + GPIO_Init(GPIOA0,4,Output); + 5f8c: 3200 movi r2, 0 + 5f8e: 9400 ld.w r0, (r4, 0x0) + 5f90: 3104 movi r1, 4 + 5f92: e3ffe0e1 bsr 0x2154 // 2154 + GPIO_DriveStrength_EN(GPIOA0,0); + 5f96: 9400 ld.w r0, (r4, 0x0) + 5f98: 3100 movi r1, 0 + 5f9a: e3ffe157 bsr 0x2248 // 2248 + GPIO_DriveStrength_EN(GPIOA0,1); + 5f9e: 9400 ld.w r0, (r4, 0x0) + 5fa0: 3101 movi r1, 1 + 5fa2: e3ffe153 bsr 0x2248 // 2248 + GPIO_DriveStrength_EN(GPIOA0,15); + 5fa6: 9400 ld.w r0, (r4, 0x0) + 5fa8: 310f movi r1, 15 + 5faa: e3ffe14f bsr 0x2248 // 2248 + GPIO_DriveStrength_EN(GPIOA0,4); + 5fae: 9400 ld.w r0, (r4, 0x0) + 5fb0: 3104 movi r1, 4 + 5fb2: e3ffe14b bsr 0x2248 // 2248 + HT1621_CS_LOW; + 5fb6: 9400 ld.w r0, (r4, 0x0) + 5fb8: 310f movi r1, 15 + 5fba: e3ffe28d bsr 0x24d4 // 24d4 + HT1621_WR_LOW; + 5fbe: 9400 ld.w r0, (r4, 0x0) + 5fc0: 3101 movi r1, 1 + 5fc2: e3ffe289 bsr 0x24d4 // 24d4 + HT1621_RD_LOW; + 5fc6: 9400 ld.w r0, (r4, 0x0) + 5fc8: 3100 movi r1, 0 + 5fca: e3ffe285 bsr 0x24d4 // 24d4 + HT1621_DATA_LOW; + 5fce: 3104 movi r1, 4 + 5fd0: 9400 ld.w r0, (r4, 0x0) + 5fd2: e3ffe281 bsr 0x24d4 // 24d4 + HT1621_WR_CMD(HT1621_BIAS); + 5fd6: 3052 movi r0, 82 + 5fd8: e3ffffac bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_RC256); + 5fdc: 3030 movi r0, 48 + 5fde: e3ffffa9 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_SYSDIS); + 5fe2: 3000 movi r0, 0 + 5fe4: e3ffffa6 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_WDTDIS); + 5fe8: 300a movi r0, 10 + 5fea: e3ffffa3 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_SYSEN); + 5fee: 3002 movi r0, 2 + 5ff0: e3ffffa0 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_LCDON); + 5ff4: 3006 movi r0, 6 + 5ff6: e3ffff9d bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_BIOFF); + 5ffa: 3010 movi r0, 16 + 5ffc: e3ffff9a bsr 0x5f30 // 5f30 + HT1621_CS_HIGH; + 6000: 9400 ld.w r0, (r4, 0x0) + 6002: 310f movi r1, 15 + 6004: e3ffe264 bsr 0x24cc // 24cc +} + 6008: 1491 pop r4, r15 + 600a: 0000 bkpt + 600c: 2000004c .long 0x2000004c + 6010: 200005c0 .long 0x200005c0 + +Disassembly of section .text.HT1621_Clear: + +00006014 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 6014: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 6016: 3214 movi r2, 20 + 6018: 3100 movi r1, 0 + + HT1621_CS_LOW; + 601a: 10b1 lrw r5, 0x2000004c // 605c + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 601c: 1011 lrw r0, 0x200005cc // 6060 + 601e: e3ffde11 bsr 0x1c40 // 1c40 <__memset_fast> + HT1621_CS_LOW; + 6022: 310f movi r1, 15 + 6024: 9500 ld.w r0, (r5, 0x0) + 6026: e3ffe257 bsr 0x24d4 // 24d4 + nop; + 602a: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 602c: 3103 movi r1, 3 + 602e: 30a0 movi r0, 160 + 6030: e3ffff5c bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(0,6); + 6034: 3106 movi r1, 6 + 6036: 3000 movi r0, 0 + 6038: e3ffff58 bsr 0x5ee8 // 5ee8 + 603c: 3414 movi r4, 20 + 603e: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 604e: 9500 ld.w r0, (r5, 0x0) + 6050: 310f movi r1, 15 + 6052: e3ffe23d bsr 0x24cc // 24cc + nop; + 6056: 6c03 mov r0, r0 +} + 6058: 1492 pop r4-r5, r15 + 605a: 0000 bkpt + 605c: 2000004c .long 0x2000004c + 6060: 200005cc .long 0x200005cc + +Disassembly of section .text.HT1621_ALLON: + +00006064 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 6064: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 6066: 10af lrw r5, 0x2000004c // 60a0 + 6068: 310f movi r1, 15 + 606a: 9500 ld.w r0, (r5, 0x0) + 606c: e3ffe234 bsr 0x24d4 // 24d4 + nop; + 6070: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 6072: 3103 movi r1, 3 + 6074: 30a0 movi r0, 160 + 6076: e3ffff39 bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(0,6); + 607a: 3106 movi r1, 6 + 607c: 3000 movi r0, 0 + 607e: e3ffff35 bsr 0x5ee8 // 5ee8 + 6082: 3414 movi r4, 20 + 6084: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 6094: 9500 ld.w r0, (r5, 0x0) + 6096: 310f movi r1, 15 + 6098: e3ffe21a bsr 0x24cc // 24cc + nop; + 609c: 6c03 mov r0, r0 +} + 609e: 1492 pop r4-r5, r15 + 60a0: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +000060a4 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 60a4: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 60a6: 1091 lrw r4, 0x2000004c // 60e8 + 60a8: 310f movi r1, 15 + 60aa: 9400 ld.w r0, (r4, 0x0) + 60ac: e3ffe214 bsr 0x24d4 // 24d4 + nop; + 60b0: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 60b2: 3103 movi r1, 3 + 60b4: 30a0 movi r0, 160 + 60b6: e3ffff19 bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(0,6); + 60ba: 3106 movi r1, 6 + 60bc: 3000 movi r0, 0 + 60be: e3ffff15 bsr 0x5ee8 // 5ee8 + 60c2: 3500 movi r5, 0 + for(U8_T i=0;i + 60c6: 60d4 addu r3, r5 + 60c8: 830c ld.b r0, (r3, 0xc) + 60ca: 4004 lsli r0, r0, 4 + 60cc: 7400 zextb r0, r0 + 60ce: 3104 movi r1, 4 + 60d0: 2500 addi r5, 1 + 60d2: e3ffff0b bsr 0x5ee8 // 5ee8 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 60da: 9400 ld.w r0, (r4, 0x0) + 60dc: 310f movi r1, 15 + 60de: e3ffe1f7 bsr 0x24cc // 24cc + nop; + 60e2: 6c03 mov r0, r0 +} + 60e4: 1492 pop r4-r5, r15 + 60e6: 0000 bkpt + 60e8: 2000004c .long 0x2000004c + 60ec: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temperature_Display: + +000060f0 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 60f0: 14d4 push r4-r7, r15 + 60f2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 60f4: 1170 lrw r3, 0x20000868 // 61b4 + 60f6: 8368 ld.b r3, (r3, 0x8) + 60f8: 3b40 cmpnei r3, 0 +{ + 60fa: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 60fc: b861 st.w r3, (r14, 0x4) + 60fe: 0845 bt 0x6188 // 6188 + tmp_Integer = tmp/10; + 6100: 310a movi r1, 10 + 6102: e3ffed97 bsr 0x3c30 // 3c30 <__udivsi3> + 6106: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 6108: 310a movi r1, 10 + 610a: 6c13 mov r0, r4 + 610c: e3ffedb6 bsr 0x3c78 // 3c78 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 6110: 118a lrw r4, 0x200005c0 // 61b8 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 6112: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 6114: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 6116: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 6118: 8476 ld.b r3, (r4, 0x16) + 611a: 68d4 and r3, r5 + 611c: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 611e: 8474 ld.b r3, (r4, 0x14) + 6120: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 6122: 310a movi r1, 10 + 6124: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 6126: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 6128: e3ffed84 bsr 0x3c30 // 3c30 <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 612c: 11e4 lrw r7, 0xa74a // 61bc + 612e: 7400 zextb r0, r0 + 6130: 601c addu r0, r7 + 6132: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 6134: 8458 ld.b r2, (r4, 0x18) + 6136: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 6138: 6c07 mov r0, r1 + 613a: 350f movi r5, 15 + 613c: 6814 and r0, r5 + 613e: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 6140: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 6142: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 6144: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 6146: 6c1b mov r0, r6 + 6148: 310a movi r1, 10 + 614a: e3ffed97 bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 614e: 7400 zextb r0, r0 + 6150: 601c addu r0, r7 + 6152: 8040 ld.b r2, (r0, 0x0) + 6154: 6c4b mov r1, r2 + 6156: 6854 and r1, r5 + 6158: 9862 ld.w r3, (r14, 0x8) + 615a: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 615c: 9860 ld.w r3, (r14, 0x0) + 615e: 61cc addu r7, r3 + 6160: 8760 ld.b r3, (r7, 0x0) + 6162: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 6164: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 6166: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 6168: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 616a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 616c: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 616e: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 6170: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 6172: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 6174: 6d48 or r5, r2 + 6176: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 6178: 081a bt 0x61ac // 61ac + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 617a: 3ba1 bseti r3, 1 + 617c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 617e: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 6180: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 6182: a4b4 st.b r5, (r4, 0x14) +} + 6184: 1404 addi r14, r14, 16 + 6186: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 6188: 3012 movi r0, 18 + 618a: 7c10 mult r0, r4 + 618c: 310a movi r1, 10 + 618e: 34a0 movi r4, 160 + 6190: e3ffed3e bsr 0x3c0c // 3c0c <__divsi3> + 6194: 4481 lsli r4, r4, 1 + 6196: 6100 addu r4, r0 + 6198: 310a movi r1, 10 + 619a: 6c13 mov r0, r4 + 619c: e3ffed38 bsr 0x3c0c // 3c0c <__divsi3> + 61a0: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 61a2: 310a movi r1, 10 + 61a4: 6c13 mov r0, r4 + 61a6: e3ffed57 bsr 0x3c54 // 3c54 <__modsi3> + 61aa: 07b3 br 0x6110 // 6110 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 61ac: 3ba2 bseti r3, 2 + 61ae: 3ba3 bseti r3, 3 + 61b0: 07e7 br 0x617e // 617e + 61b2: 0000 bkpt + 61b4: 20000868 .long 0x20000868 + 61b8: 200005c0 .long 0x200005c0 + 61bc: 0000a74a .long 0x0000a74a + +Disassembly of section .text.Local_Temperature_Display: + +000061c0 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 61c0: 14d4 push r4-r7, r15 + 61c2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 61c4: 1170 lrw r3, 0x20000868 // 6284 + 61c6: 8368 ld.b r3, (r3, 0x8) + 61c8: 3b40 cmpnei r3, 0 +{ + 61ca: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 61cc: b861 st.w r3, (r14, 0x4) + 61ce: 0845 bt 0x6258 // 6258 + tmp_Integer = tmp/10; + 61d0: 310a movi r1, 10 + 61d2: e3ffed2f bsr 0x3c30 // 3c30 <__udivsi3> + 61d6: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 61d8: 310a movi r1, 10 + 61da: 6c13 mov r0, r4 + 61dc: e3ffed4e bsr 0x3c78 // 3c78 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 61e0: 118a lrw r4, 0x200005c0 // 6288 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 61e2: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 61e4: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 61e6: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 61e8: 847d ld.b r3, (r4, 0x1d) + 61ea: 68d4 and r3, r5 + 61ec: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 61ee: 847b ld.b r3, (r4, 0x1b) + 61f0: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 61f2: 310a movi r1, 10 + 61f4: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 61f6: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 61f8: e3ffed1c bsr 0x3c30 // 3c30 <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 61fc: 11e4 lrw r7, 0xa74a // 628c + 61fe: 7400 zextb r0, r0 + 6200: 601c addu r0, r7 + 6202: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 6204: 845f ld.b r2, (r4, 0x1f) + 6206: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6208: 6c07 mov r0, r1 + 620a: 350f movi r5, 15 + 620c: 6814 and r0, r5 + 620e: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 6210: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6212: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 6214: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 6216: 6c1b mov r0, r6 + 6218: 310a movi r1, 10 + 621a: e3ffed2f bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 621e: 7400 zextb r0, r0 + 6220: 601c addu r0, r7 + 6222: 8040 ld.b r2, (r0, 0x0) + 6224: 6c4b mov r1, r2 + 6226: 6854 and r1, r5 + 6228: 9862 ld.w r3, (r14, 0x8) + 622a: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 622c: 9860 ld.w r3, (r14, 0x0) + 622e: 61cc addu r7, r3 + 6230: 8760 ld.b r3, (r7, 0x0) + 6232: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6234: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 6236: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6238: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 623a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 623c: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 623e: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6240: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 6242: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6244: 6d48 or r5, r2 + 6246: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 6248: 081a bt 0x627c // 627c + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 624a: 3ba1 bseti r3, 1 + 624c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 624e: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 6250: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 6252: a4bb st.b r5, (r4, 0x1b) +} + 6254: 1404 addi r14, r14, 16 + 6256: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 6258: 3012 movi r0, 18 + 625a: 7c10 mult r0, r4 + 625c: 310a movi r1, 10 + 625e: 34a0 movi r4, 160 + 6260: e3ffecd6 bsr 0x3c0c // 3c0c <__divsi3> + 6264: 4481 lsli r4, r4, 1 + 6266: 6100 addu r4, r0 + 6268: 310a movi r1, 10 + 626a: 6c13 mov r0, r4 + 626c: e3ffecd0 bsr 0x3c0c // 3c0c <__divsi3> + 6270: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 6272: 310a movi r1, 10 + 6274: 6c13 mov r0, r4 + 6276: e3ffecef bsr 0x3c54 // 3c54 <__modsi3> + 627a: 07b3 br 0x61e0 // 61e0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 627c: 3ba2 bseti r3, 2 + 627e: 3ba3 bseti r3, 3 + 6280: 07e7 br 0x624e // 624e + 6282: 0000 bkpt + 6284: 20000868 .long 0x20000868 + 6288: 200005c0 .long 0x200005c0 + 628c: 0000a74a .long 0x0000a74a + +Disassembly of section .text.Control_Mode: + +00006290 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 6290: 14d1 push r4, r15 + switch(mode){ + 6292: 3806 cmphsi r0, 7 + 6294: 0823 bt 0x62da // 62da + 6296: e3ffd54b bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 629a: 0007 .short 0x0007 + 629c: 005a0020 .long 0x005a0020 + 62a0: 009a0020 .long 0x009a0020 + 62a4: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 62a8: 0376 lrw r3, 0x20000868 // 64cc + 62aa: 8349 ld.b r2, (r3, 0x9) + 62ac: 3a40 cmpnei r2, 0 + 62ae: 0376 lrw r3, 0x200005c0 // 64d0 + 62b0: 0816 bt 0x62dc // 62dc + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 62b2: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 62b4: 830e ld.b r0, (r3, 0xe) + 62b6: 6811 andn r0, r4 + 62b8: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 62ba: 830f ld.b r0, (r3, 0xf) + 62bc: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 62be: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 62c0: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 62c2: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 62c4: 3982 bclri r1, 2 + 62c6: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 62c8: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 62ca: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 62cc: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 62ce: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 62d0: 39a2 bseti r1, 2 + 62d2: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 62d4: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 62d6: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 62d8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 62da: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 62dc: 3a41 cmpnei r2, 1 + 62de: 0812 bt 0x6302 // 6302 + HT1621.show_cache[1] &= ~0x07; + 62e0: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 62e2: 830e ld.b r0, (r3, 0xe) + 62e4: 6811 andn r0, r4 + 62e6: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 62e8: 830f ld.b r0, (r3, 0xf) + 62ea: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 62ec: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 62ee: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 62f0: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 62f2: 3982 bclri r1, 2 + 62f4: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 62f6: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 62f8: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 62fa: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 62fc: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 62fe: 39a2 bseti r1, 2 + 6300: 07ea br 0x62d4 // 62d4 + else if(Debug_Inf.Language_Selection == 0x02) + 6302: 3a42 cmpnei r2, 2 + 6304: 0812 bt 0x6328 // 6328 + HT1621.show_cache[1] &= ~0x07; + 6306: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 6308: 830e ld.b r0, (r3, 0xe) + 630a: 6811 andn r0, r4 + 630c: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 630e: 830f ld.b r0, (r3, 0xf) + 6310: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 6312: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 6314: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6316: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 6318: 3982 bclri r1, 2 + 631a: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 631c: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 631e: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 6320: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 6322: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 6324: 39a3 bseti r1, 3 + 6326: 07d7 br 0x62d4 // 62d4 + HT1621.show_cache[0] &= ~0x0C; + 6328: 136a lrw r3, 0x200005c0 // 64d0 + 632a: 834c ld.b r2, (r3, 0xc) + 632c: 3a82 bclri r2, 2 + 632e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6330: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 6332: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6334: 834d ld.b r2, (r3, 0xd) + 6336: 6885 andn r2, r1 + 6338: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 633a: 834e ld.b r2, (r3, 0xe) + 633c: 6885 andn r2, r1 + 633e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6340: 834f ld.b r2, (r3, 0xf) + 6342: 6885 andn r2, r1 + 6344: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6346: 8351 ld.b r2, (r3, 0x11) + 6348: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 634a: a351 st.b r2, (r3, 0x11) +} + 634c: 07c7 br 0x62da // 62da + if(Debug_Inf.Language_Selection == 0x00) + 634e: 1360 lrw r3, 0x20000868 // 64cc + 6350: 8349 ld.b r2, (r3, 0x9) + 6352: 3a40 cmpnei r2, 0 + 6354: 127f lrw r3, 0x200005c0 // 64d0 + 6356: 0816 bt 0x6382 // 6382 + HT1621.show_cache[1] &= ~0x07; + 6358: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 635a: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 635c: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 635e: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 6360: 3a82 bclri r2, 2 + 6362: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6364: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 6366: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6368: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 636a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 636c: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 636e: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 6370: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 6372: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 6374: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 6376: 39a1 bseti r1, 1 + 6378: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 637a: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 637c: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 637e: a34e st.b r2, (r3, 0xe) + 6380: 07ad br 0x62da // 62da + else if(Debug_Inf.Language_Selection == 0x01) + 6382: 3a41 cmpnei r2, 1 + 6384: 0812 bt 0x63a8 // 63a8 + HT1621.show_cache[1] &= ~0x07; + 6386: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 6388: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 638a: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 638c: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 638e: 3a82 bclri r2, 2 + 6390: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6392: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 6394: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6396: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 6398: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 639a: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 639c: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 639e: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 63a0: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 63a2: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 63a4: 39a1 bseti r1, 1 + 63a6: 07ea br 0x637a // 637a + else if(Debug_Inf.Language_Selection == 0x02) + 63a8: 3a42 cmpnei r2, 2 + 63aa: 0bbf bt 0x6328 // 6328 + HT1621.show_cache[1] &= ~0x07; + 63ac: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 63ae: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 63b0: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 63b2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 63b4: 3a82 bclri r2, 2 + 63b6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 63b8: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 63ba: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 63bc: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 63be: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 63c0: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 63c2: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 63c4: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 63c6: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 63c8: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 63ca: 39a2 bseti r1, 2 + 63cc: 07d7 br 0x637a // 637a + if(Debug_Inf.Language_Selection == 0x00) + 63ce: 1260 lrw r3, 0x20000868 // 64cc + 63d0: 8349 ld.b r2, (r3, 0x9) + 63d2: 3a40 cmpnei r2, 0 + 63d4: 117f lrw r3, 0x200005c0 // 64d0 + 63d6: 0816 bt 0x6402 // 6402 + HT1621.show_cache[0] &= ~0x0C; + 63d8: 834c ld.b r2, (r3, 0xc) + 63da: 3a82 bclri r2, 2 + 63dc: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 63de: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 63e0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 63e2: 834d ld.b r2, (r3, 0xd) + 63e4: 6881 andn r2, r0 + 63e6: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 63e8: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 63ea: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 63ec: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 63ee: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 63f0: 8311 ld.b r0, (r3, 0x11) + 63f2: 3880 bclri r0, 0 + 63f4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 63f6: 39a1 bseti r1, 1 + 63f8: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 63fa: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 63fc: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 63fe: a34f st.b r2, (r3, 0xf) + 6400: 076d br 0x62da // 62da + else if(Debug_Inf.Language_Selection == 0x01) + 6402: 3a41 cmpnei r2, 1 + 6404: 0812 bt 0x6428 // 6428 + HT1621.show_cache[0] &= ~0x0C; + 6406: 834c ld.b r2, (r3, 0xc) + 6408: 3a82 bclri r2, 2 + 640a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 640c: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 640e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6410: 834d ld.b r2, (r3, 0xd) + 6412: 6881 andn r2, r0 + 6414: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6416: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6418: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 641a: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 641c: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 641e: 8311 ld.b r0, (r3, 0x11) + 6420: 3880 bclri r0, 0 + 6422: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 6424: 39a1 bseti r1, 1 + 6426: 07ea br 0x63fa // 63fa + else if(Debug_Inf.Language_Selection == 0x02) + 6428: 3a42 cmpnei r2, 2 + 642a: 0b7f bt 0x6328 // 6328 + HT1621.show_cache[0] &= ~0x0C; + 642c: 834c ld.b r2, (r3, 0xc) + 642e: 3a82 bclri r2, 2 + 6430: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6432: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6434: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6436: 834d ld.b r2, (r3, 0xd) + 6438: 6881 andn r2, r0 + 643a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 643c: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 643e: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 6440: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 6442: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 6444: 8311 ld.b r0, (r3, 0x11) + 6446: 3880 bclri r0, 0 + 6448: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 644a: 39a2 bseti r1, 2 + 644c: 07d7 br 0x63fa // 63fa + if(Debug_Inf.Language_Selection == 0x00) + 644e: 1160 lrw r3, 0x20000868 // 64cc + 6450: 8349 ld.b r2, (r3, 0x9) + 6452: 3a40 cmpnei r2, 0 + 6454: 107f lrw r3, 0x200005c0 // 64d0 + 6456: 0815 bt 0x6480 // 6480 + HT1621.show_cache[0] &= ~0x0C; + 6458: 834c ld.b r2, (r3, 0xc) + 645a: 3a82 bclri r2, 2 + 645c: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 645e: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6460: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6462: 834d ld.b r2, (r3, 0xd) + 6464: 6881 andn r2, r0 + 6466: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6468: 834e ld.b r2, (r3, 0xe) + 646a: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 646c: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 646e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6470: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 6472: 8351 ld.b r2, (r3, 0x11) + 6474: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 6476: 39a1 bseti r1, 1 + 6478: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 647a: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 647c: 3aa0 bseti r2, 0 + 647e: 0766 br 0x634a // 634a + else if(Debug_Inf.Language_Selection == 0x01) + 6480: 3a41 cmpnei r2, 1 + 6482: 0812 bt 0x64a6 // 64a6 + HT1621.show_cache[0] &= ~0x0C; + 6484: 834c ld.b r2, (r3, 0xc) + 6486: 3a82 bclri r2, 2 + 6488: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 648a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 648c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 648e: 834d ld.b r2, (r3, 0xd) + 6490: 6881 andn r2, r0 + 6492: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6494: 834e ld.b r2, (r3, 0xe) + 6496: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 6498: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 649a: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 649c: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 649e: 8351 ld.b r2, (r3, 0x11) + 64a0: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 64a2: 39a1 bseti r1, 1 + 64a4: 07eb br 0x647a // 647a + else if(Debug_Inf.Language_Selection == 0x02) + 64a6: 3a42 cmpnei r2, 2 + 64a8: 0b40 bt 0x6328 // 6328 + HT1621.show_cache[0] &= ~0x0C; + 64aa: 834c ld.b r2, (r3, 0xc) + 64ac: 3a82 bclri r2, 2 + 64ae: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 64b0: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 64b2: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 64b4: 834d ld.b r2, (r3, 0xd) + 64b6: 6881 andn r2, r0 + 64b8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 64ba: 834e ld.b r2, (r3, 0xe) + 64bc: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 64be: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 64c0: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 64c2: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 64c4: 8351 ld.b r2, (r3, 0x11) + 64c6: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 64c8: 39a2 bseti r1, 2 + 64ca: 07d8 br 0x647a // 647a + 64cc: 20000868 .long 0x20000868 + 64d0: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_wind_velocity: + +000064d4 : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 64d4: 14d2 push r4-r5, r15 + switch(velocity) + 64d6: 3804 cmphsi r0, 5 + 64d8: 0815 bt 0x6502 // 6502 + 64da: 1172 lrw r3, 0x200005c0 // 65a0 + 64dc: e3ffd410 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 64e0: 33201203 .long 0x33201203 + 64e4: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 64e6: 8351 ld.b r2, (r3, 0x11) + 64e8: 310e movi r1, 14 + 64ea: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 64ec: 300f movi r0, 15 + 64ee: 8330 ld.b r1, (r3, 0x10) + 64f0: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 64f2: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 64f4: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 64f6: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 64f8: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 64fa: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 64fc: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 64fe: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 6500: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 6502: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 6504: 310e movi r1, 14 + 6506: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6508: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 650a: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 650c: 8330 ld.b r1, (r3, 0x10) + 650e: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 6510: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 6512: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 6514: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 6516: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6518: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 651a: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 651c: 3aa3 bseti r2, 3 + 651e: 07f1 br 0x6500 // 6500 + HT1621.show_cache[5] &= ~0x0E; + 6520: 310e movi r1, 14 + 6522: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6524: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 6526: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 6528: 8330 ld.b r1, (r3, 0x10) + 652a: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 652c: 300e movi r0, 14 + 652e: 07f2 br 0x6512 // 6512 + HT1621.show_cache[4] &= ~0x0F; + 6530: 8350 ld.b r2, (r3, 0x10) + 6532: 310f movi r1, 15 + 6534: 6885 andn r2, r1 + 6536: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 6538: 310e movi r1, 14 + 653a: 8351 ld.b r2, (r3, 0x11) + 653c: 6885 andn r2, r1 + 653e: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 6540: 834f ld.b r2, (r3, 0xf) + 6542: 3a83 bclri r2, 3 + 6544: 07de br 0x6500 // 6500 + HT1621.show_cache[4] &= ~0x0F; + 6546: 8330 ld.b r1, (r3, 0x10) + 6548: 320f movi r2, 15 + 654a: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 654c: 300e movi r0, 14 + 654e: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6550: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 6552: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 6554: 3408 movi r4, 8 + 6556: 6c17 mov r0, r5 + 6558: 6c10 or r0, r4 + 655a: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 655c: 6c07 mov r0, r1 + 655e: 38a0 bseti r0, 0 + 6560: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 6562: 8303 ld.b r0, (r3, 0x3) + 6564: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 6566: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 6568: 0804 bt 0x6570 // 6570 + HT1621.show_cache[3] &= ~0x08; + 656a: 3d83 bclri r5, 3 + 656c: a3af st.b r5, (r3, 0xf) + 656e: 07ca br 0x6502 // 6502 + }else if(HT1621.wind_velocity == 0) //低风速 + 6570: 3840 cmpnei r0, 0 + 6572: 0807 bt 0x6580 // 6580 + HT1621.show_cache[4] |= 0x08; + 6574: 39a0 bseti r1, 0 + 6576: 39a3 bseti r1, 3 + 6578: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 657a: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 657c: a351 st.b r2, (r3, 0x11) +} + 657e: 07c2 br 0x6502 // 6502 + }else if(HT1621.wind_velocity == 1) //中风速 + 6580: 3841 cmpnei r0, 1 + 6582: 0807 bt 0x6590 // 6590 + HT1621.show_cache[4] |= 0x0C; + 6584: 300d movi r0, 13 + 6586: 6c40 or r1, r0 + 6588: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 658a: 3aa2 bseti r2, 2 + 658c: 3aa3 bseti r2, 3 + 658e: 07f7 br 0x657c // 657c + }else if(HT1621.wind_velocity == 2) //高风速 + 6590: 3842 cmpnei r0, 2 + 6592: 0bb8 bt 0x6502 // 6502 + HT1621.show_cache[4] |= 0x0E; + 6594: 300f movi r0, 15 + 6596: 6c40 or r1, r0 + 6598: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 659a: 310e movi r1, 14 + 659c: 6c84 or r2, r1 + 659e: 07ef br 0x657c // 657c + 65a0: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_Prompt_Text: + +000065a4 : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 65a4: 14c4 push r4-r7 + 65a6: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 65a8: 1167 lrw r3, 0x200005c0 // 6644 + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 65aa: 83d6 ld.b r6, (r3, 0x16) + 65ac: 3e80 bclri r6, 0 + 65ae: 7598 zextb r6, r6 + 65b0: b8c0 st.w r6, (r14, 0x0) + 65b2: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 65b6: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 65b8: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65ba: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65bc: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 65be: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 65c0: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65c2: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 65c4: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65c6: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65c8: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 65ca: 3a80 bclri r2, 0 + 65cc: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 65ce: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65d0: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 65d2: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65d4: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65d6: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 65d8: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 65da: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65dc: 7598 zextb r6, r6 + + if(state == 0x00) + 65de: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 65e0: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65e2: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65e4: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 65e6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 65e8: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65ea: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 65ec: 0814 bt 0x6614 // 6614 + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 65ee: 3008 movi r0, 8 + 65f0: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 65f2: 3aa0 bseti r2, 0 + 65f4: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 65f6: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 65f8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 65fa: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 65fc: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 65fe: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 6600: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 6602: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6604: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 6606: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6608: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 660a: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 660c: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 660e: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 6610: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 6612: 040b br 0x6628 // 6628 + else if(state == 0x01){ + 6614: 3841 cmpnei r0, 1 + 6616: 080b bt 0x662c // 662c + HT1621.show_cache[0] |= 0x01; //模式 + 6618: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 661a: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 661c: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 661e: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 6620: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 6622: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 6624: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6626: a33f st.b r1, (r3, 0x1f) +} + 6628: 1401 addi r14, r14, 4 + 662a: 1484 pop r4-r7 + }else if(state == 0x02){ + 662c: 3842 cmpnei r0, 2 + 662e: 0bfd bt 0x6628 // 6628 + HT1621.show_cache[0] |= 0x02; //模式 + 6630: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6632: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 6634: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 6636: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 6638: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 663a: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 663c: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 663e: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 6640: 6d84 or r6, r1 + 6642: 07e7 br 0x6610 // 6610 + 6644: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Controlled_Buzzer: + +00006648 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 6648: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 664a: 3841 cmpnei r0, 1 + 664c: 0c0a bf 0x6660 // 6660 + 664e: 3840 cmpnei r0, 0 + 6650: 0c04 bf 0x6658 // 6658 + 6652: 3842 cmpnei r0, 2 + 6654: 0c12 bf 0x6678 // 6678 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 6656: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 6658: 3010 movi r0, 16 + 665a: e3fffc6b bsr 0x5f30 // 5f30 + break; + 665e: 07fc br 0x6656 // 6656 + HT1621_WR_CMD(HT1621_BLON); + 6660: 3012 movi r0, 18 + 6662: e3fffc67 bsr 0x5f30 // 5f30 + HT1621.buz_control = 0x01; + 6666: 1069 lrw r3, 0x200005c0 // 6688 + 6668: 3220 movi r2, 32 + 666a: 608c addu r2, r3 + 666c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 666e: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 6670: 1047 lrw r2, 0x200000c0 // 668c + 6672: 9240 ld.w r2, (r2, 0x0) + 6674: b34e st.w r2, (r3, 0x38) +} + 6676: 07f0 br 0x6656 // 6656 + HT1621_WR_CMD(HT1621_BLON); + 6678: 3012 movi r0, 18 + 667a: e3fffc5b bsr 0x5f30 // 5f30 + HT1621.buz_control = 0x02; + 667e: 1063 lrw r3, 0x200005c0 // 6688 + 6680: 3220 movi r2, 32 + 6682: 608c addu r2, r3 + 6684: 3102 movi r1, 2 + 6686: 07f4 br 0x666e // 666e + 6688: 200005c0 .long 0x200005c0 + 668c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00006690 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 6690: 14d0 push r15 + switch (state) { + 6692: 3840 cmpnei r0, 0 + 6694: 0c04 bf 0x669c // 669c + 6696: 3841 cmpnei r0, 1 + 6698: 0c16 bf 0x66c4 // 66c4 + + } + break; + + } +} + 669a: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 669c: 1172 lrw r3, 0x200001a0 // 6764 + 669e: 8359 ld.b r2, (r3, 0x19) + 66a0: 3a41 cmpnei r2, 1 + 66a2: 0bfc bt 0x669a // 669a + tm1812_param.LCD_blaklingt_flag = 0x00; + 66a4: 3200 movi r2, 0 + 66a6: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66a8: 3100 movi r1, 0 + 66aa: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66ac: e3fffb6c bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 66b0: 3100 movi r1, 0 + 66b2: 3001 movi r0, 1 + 66b4: e3fffb68 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 66b8: 3100 movi r1, 0 + 66ba: 3002 movi r0, 2 + 66bc: e3fffb64 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 66c0: 3100 movi r1, 0 + 66c2: 0437 br 0x6730 // 6730 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 66c4: 1128 lrw r1, 0x200001a0 // 6764 + 66c6: 8179 ld.b r3, (r1, 0x19) + 66c8: 3b40 cmpnei r3, 0 + 66ca: 0be8 bt 0x669a // 669a + tm1812_param.LCD_blaklingt_flag = 0x01; + 66cc: 3301 movi r3, 1 + 66ce: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66d0: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 66d2: 1166 lrw r3, 0x2000083c // 6768 + 66d4: 8362 ld.b r3, (r3, 0x2) + 66d6: 4379 lsli r3, r3, 25 + 66d8: 4b7d lsri r3, r3, 29 + 66da: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 66dc: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 66de: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66e0: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 66e2: 0c1c bf 0x671a // 671a + 66e4: 3a44 cmpnei r2, 4 + 66e6: 0c2a bf 0x673a // 673a + 66e8: 3a40 cmpnei r2, 0 + 66ea: 0be1 bt 0x66ac // 66ac + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66ec: e3fffb4c bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 66f0: 31ff movi r1, 255 + 66f2: 3001 movi r0, 1 + 66f4: e3fffb48 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 66f8: 3100 movi r1, 0 + 66fa: 3002 movi r0, 2 + 66fc: e3fffb44 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6700: 3100 movi r1, 0 + 6702: 3003 movi r0, 3 + 6704: e3fffb40 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6708: 3100 movi r1, 0 + 670a: 3004 movi r0, 4 + 670c: e3fffb3c bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 6710: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 6712: 3005 movi r0, 5 + 6714: e3fffb38 bsr 0x5d84 // 5d84 +} + 6718: 07c1 br 0x669a // 669a + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 671a: e3fffb35 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 671e: 31ff movi r1, 255 + 6720: 3001 movi r0, 1 + 6722: e3fffb31 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6726: 3100 movi r1, 0 + 6728: 3002 movi r0, 2 + 672a: e3fffb2d bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 672e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6730: 3003 movi r0, 3 + 6732: e3fffb29 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6736: 3100 movi r1, 0 + 6738: 0410 br 0x6758 // 6758 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 673a: e3fffb25 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 673e: 31ff movi r1, 255 + 6740: 3001 movi r0, 1 + 6742: e3fffb21 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6746: 3100 movi r1, 0 + 6748: 3002 movi r0, 2 + 674a: e3fffb1d bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 674e: 3100 movi r1, 0 + 6750: 3003 movi r0, 3 + 6752: e3fffb19 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 6756: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6758: 3004 movi r0, 4 + 675a: e3fffb15 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 675e: 3100 movi r1, 0 + 6760: 07d9 br 0x6712 // 6712 + 6762: 0000 bkpt + 6764: 200001a0 .long 0x200001a0 + 6768: 2000083c .long 0x2000083c + +Disassembly of section .text.Controlled_Key_Backlight: + +0000676c : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 676c: 14d0 push r15 + switch(state){ + 676e: 3840 cmpnei r0, 0 + 6770: 0c04 bf 0x6778 // 6778 + 6772: 3841 cmpnei r0, 1 + 6774: 0c0b bf 0x678a // 678a + + } + + break; + } +} + 6776: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 6778: 1068 lrw r3, 0x200005a4 // 6798 + 677a: 836a ld.b r3, (r3, 0xa) + 677c: 3b42 cmpnei r3, 2 + 677e: 0ffc bf 0x6776 // 6776 + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 6780: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 6782: 3005 movi r0, 5 + 6784: e3fff7c2 bsr 0x5708 // 5708 +} + 6788: 07f7 br 0x6776 // 6776 + if(g_switch.light_state[T_Backlight] != Control_ON) + 678a: 1064 lrw r3, 0x200005a4 // 6798 + 678c: 836a ld.b r3, (r3, 0xa) + 678e: 3b41 cmpnei r3, 1 + 6790: 0ff3 bf 0x6776 // 6776 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 6792: 3101 movi r1, 1 + 6794: 07f7 br 0x6782 // 6782 + 6796: 0000 bkpt + 6798: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Set_Device_ADDR: + +0000679c : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 679c: 14d4 push r4-r7, r15 + 679e: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67a0: 11c4 lrw r6, 0xa74a // 6830 + 67a2: 6018 addu r0, r6 + 67a4: 1184 lrw r4, 0x200005c0 // 6834 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 67a6: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67a8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 67aa: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67ac: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 67ae: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67b0: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 67b2: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67b4: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 67b6: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67b8: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 67ba: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 67bc: 843b ld.b r1, (r4, 0x1b) + 67be: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67c0: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 67c2: 845d ld.b r2, (r4, 0x1d) + 67c4: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 67c6: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 67c8: 6c1f mov r0, r7 + 67ca: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 67cc: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 67ce: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 67d0: e3ffea30 bsr 0x3c30 // 3c30 <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 67d4: 7400 zextb r0, r0 + 67d6: 6018 addu r0, r6 + 67d8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 67da: 9861 ld.w r3, (r14, 0x4) + 67dc: 841f ld.b r0, (r4, 0x1f) + 67de: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 67e0: 6c07 mov r0, r1 + 67e2: 6814 and r0, r5 + 67e4: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 67e6: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 67e8: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 67ea: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 67ec: 6c1f mov r0, r7 + 67ee: 310a movi r1, 10 + 67f0: e3ffea20 bsr 0x3c30 // 3c30 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 67f4: 7400 zextb r0, r0 + 67f6: 310a movi r1, 10 + 67f8: e3ffea40 bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 67fc: 7400 zextb r0, r0 + 67fe: 6018 addu r0, r6 + 6800: 8060 ld.b r3, (r0, 0x0) + 6802: 6c4f mov r1, r3 + 6804: 6854 and r1, r5 + 6806: 9842 ld.w r2, (r14, 0x8) + 6808: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 680a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 680c: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 680e: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 6810: 310a movi r1, 10 + 6812: 6c1f mov r0, r7 + 6814: e3ffea32 bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6818: 7400 zextb r0, r0 + 681a: 6180 addu r6, r0 + 681c: 8660 ld.b r3, (r6, 0x0) + 681e: 694c and r5, r3 + 6820: 9840 ld.w r2, (r14, 0x0) + 6822: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6824: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6826: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6828: a47a st.b r3, (r4, 0x1a) +} + 682a: 1403 addi r14, r14, 12 + 682c: 1494 pop r4-r7, r15 + 682e: 0000 bkpt + 6830: 0000a74a .long 0x0000a74a + 6834: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temp_Difference: + +00006838 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6838: 1057 lrw r2, 0x200005c0 // 6894 + HT1621.show_cache[10] &= 0x01; + 683a: 3101 movi r1, 1 + 683c: 8276 ld.b r3, (r2, 0x16) + 683e: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6840: 3ba1 bseti r3, 1 + 6842: 3ba2 bseti r3, 2 + 6844: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 6846: 330d movi r3, 13 + 6848: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 684a: 827f ld.b r3, (r2, 0x1f) + 684c: 68c4 and r3, r1 + 684e: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 6850: 3300 movi r3, 0 + 6852: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 6854: 827d ld.b r3, (r2, 0x1d) + 6856: 68c4 and r3, r1 + 6858: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 685a: 3300 movi r3, 0 + 685c: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 685e: 827b ld.b r3, (r2, 0x1b) + 6860: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 6862: 3300 movi r3, 0 + 6864: 2b08 subi r3, 9 + 6866: 60c0 addu r3, r0 + 6868: 74cc zextb r3, r3 + 686a: 3b09 cmphsi r3, 10 + 686c: 0c08 bf 0x687c // 687c + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 686e: 3808 cmphsi r0, 9 + 6870: 0810 bt 0x6890 // 6890 + tmp_quantile = 9 - diff; + 6872: 3309 movi r3, 9 + 6874: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 6876: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 6878: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 687a: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 687c: 1007 lrw r0, 0xa74a // 6898 + 687e: 60c0 addu r3, r0 + 6880: 8360 ld.b r3, (r3, 0x0) + 6882: 4b04 lsri r0, r3, 4 + 6884: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6886: 300f movi r0, 15 + 6888: 68c0 and r3, r0 + 688a: 6c4c or r1, r3 + 688c: a23b st.b r1, (r2, 0x1b) +} + 688e: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 6890: 3300 movi r3, 0 + 6892: 07f5 br 0x687c // 687c + 6894: 200005c0 .long 0x200005c0 + 6898: 0000a74a .long 0x0000a74a + +Disassembly of section .text.HT1621_Refresh_Task: + +0000689c : + + +void HT1621_Refresh_Task(void){ + 689c: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 689e: 109e lrw r4, 0x200000c0 // 6914 + 68a0: 10be lrw r5, 0x200005c0 // 6918 + 68a2: 9460 ld.w r3, (r4, 0x0) + 68a4: 954c ld.w r2, (r5, 0x30) + 68a6: 60ca subu r3, r2 + 68a8: 105d lrw r2, 0x1f3 // 691c + 68aa: 64c8 cmphs r2, r3 + 68ac: 0806 bt 0x68b8 // 68b8 + HT1621.Refresh_timing = HT1621_Refresh_time; + 68ae: 33fa movi r3, 250 + 68b0: 4361 lsli r3, r3, 1 + 68b2: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 68b4: e3fffbf8 bsr 0x60a4 // 60a4 +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 68b8: 107a lrw r3, 0x200005e0 // 6920 + 68ba: 8344 ld.b r2, (r3, 0x4) + 68bc: 3a41 cmpnei r2, 1 + 68be: 0824 bt 0x6906 // 6906 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 68c0: 952e ld.w r1, (r5, 0x38) + 68c2: 9440 ld.w r2, (r4, 0x0) + 68c4: 6086 subu r2, r1 + 68c6: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 68c8: 6484 cmphs r1, r2 + 68ca: 0808 bt 0x68da // 68da + HT1621.buz_tick = SysTick_1ms; + 68cc: 9440 ld.w r2, (r4, 0x0) + 68ce: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 68d0: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 68d2: 3200 movi r2, 0 + 68d4: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 68d6: e3fffb2d bsr 0x5f30 // 5f30 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 68da: 1053 lrw r2, 0x2000083c // 6924 + 68dc: 8202 ld.b r0, (r2, 0x2) + 68de: 1033 lrw r1, 0x200001a0 // 6928 + 68e0: 4079 lsli r3, r0, 25 + 68e2: 81ba ld.b r5, (r1, 0x1a) + 68e4: 4b7d lsri r3, r3, 29 + 68e6: 64d6 cmpne r5, r3 + 68e8: 0c0e bf 0x6904 // 6904 + TempCtrl.BackLightTick = SysTick_1ms; + 68ea: 9460 ld.w r3, (r4, 0x0) + 68ec: 4b88 lsri r4, r3, 8 + 68ee: a270 st.b r3, (r2, 0x10) + 68f0: a291 st.b r4, (r2, 0x11) + 68f2: 4b90 lsri r4, r3, 16 + 68f4: 4b78 lsri r3, r3, 24 + 68f6: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 68f8: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 68fa: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 68fc: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 68fe: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6900: e3fffec8 bsr 0x6690 // 6690 + } + +} + 6904: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 6906: 3a42 cmpnei r2, 2 + 6908: 0be9 bt 0x68da // 68da + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 690a: 952e ld.w r1, (r5, 0x38) + 690c: 9440 ld.w r2, (r4, 0x0) + 690e: 6086 subu r2, r1 + 6910: 1023 lrw r1, 0x1f3 // 691c + 6912: 07db br 0x68c8 // 68c8 + 6914: 200000c0 .long 0x200000c0 + 6918: 200005c0 .long 0x200005c0 + 691c: 000001f3 .long 0x000001f3 + 6920: 200005e0 .long 0x200005e0 + 6924: 2000083c .long 0x2000083c + 6928: 200001a0 .long 0x200001a0 + +Disassembly of section .text.Boot_Function_Init: + +0000692c : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 692c: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 692e: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 6930: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 6932: 4241 lsli r2, r2, 1 + 6934: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 6936: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 6938: 1010 lrw r0, 0x20000600 // 6978 + 693a: e3ffd983 bsr 0x1c40 // 1c40 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 693e: 6c97 mov r2, r5 + 6940: 3100 movi r1, 0 + 6942: 100f lrw r0, 0x2000073c // 697c + 6944: e3ffd97e bsr 0x1c40 // 1c40 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 6948: 33fa movi r3, 250 + 694a: 4362 lsli r3, r3, 2 + 694c: 108d lrw r4, 0x20000700 // 6980 + 694e: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 6950: e3fff380 bsr 0x5050 // 5050 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 6954: 106c lrw r3, 0x2000005c // 6984 + 6956: 9360 ld.w r3, (r3, 0x0) + 6958: 23ff addi r3, 256 + 695a: 9363 ld.w r3, (r3, 0xc) + 695c: 74cd zexth r3, r3 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 695e: 654e cmpne r3, r5 + 6960: 0804 bt 0x6968 // 6968 + { + g_boot.bootTimeout = 5000; + 6962: 106a lrw r3, 0x1388 // 6988 +#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; + 6964: b46d st.w r3, (r4, 0x34) +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 6966: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 6968: 3b41 cmpnei r3, 1 + g_boot.bootTimeout = 500; + 696a: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 696c: 0803 bt 0x6972 // 6972 + g_boot.bootTimeout = 500; + 696e: 4361 lsli r3, r3, 1 + 6970: 07fa br 0x6964 // 6964 + g_boot.bootTimeout = 2000; + 6972: 4363 lsli r3, r3, 3 + 6974: 07f8 br 0x6964 // 6964 + 6976: 0000 bkpt + 6978: 20000600 .long 0x20000600 + 697c: 2000073c .long 0x2000073c + 6980: 20000700 .long 0x20000700 + 6984: 2000005c .long 0x2000005c + 6988: 00001388 .long 0x00001388 + +Disassembly of section .text.Boot_Comm_CheckSum: + +0000698c : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 698c: 14c1 push r4 + U8_T sum = 0; + 698e: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 6990: 1047 lrw r2, 0xffff // 69ac + 6992: 2900 subi r1, 1 + 6994: 7445 zexth r1, r1 + 6996: 6486 cmpne r1, r2 + 6998: 0804 bt 0x69a0 // 69a0 + { + sum += buffer[i]; + i++; + } + return (~sum); + 699a: 6cce nor r3, r3 + 699c: 740c zextb r0, r3 +} + 699e: 1481 pop r4 + sum += buffer[i]; + 69a0: 8080 ld.b r4, (r0, 0x0) + 69a2: 60d0 addu r3, r4 + 69a4: 74cc zextb r3, r3 + 69a6: 2000 addi r0, 1 + 69a8: 07f5 br 0x6992 // 6992 + 69aa: 0000 bkpt + 69ac: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +000069b0 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 69b0: 14d4 push r4-r7, r15 + 69b2: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69b4: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 69b6: 1074 lrw r3, 0x2000052c // 6a04 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69b8: 47e1 lsli r7, r7, 1 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 69ba: 8340 ld.b r2, (r3, 0x0) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69bc: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 69be: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69c0: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 69c2: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69c4: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 69c6: 1071 lrw r3, 0x20000600 // 6a08 + 69c8: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69ca: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 69cc: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 69ce: 8062 ld.b r3, (r0, 0x2) + 69d0: 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; + 69d2: 4d68 lsri r3, r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 69d4: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 69d6: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 69d8: 8041 ld.b r2, (r0, 0x1) + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 69da: 3300 movi r3, 0 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 69dc: 58ce addi r6, r0, 4 +{ + 69de: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 69e0: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 69e2: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 69e4: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 69e6: 6c57 mov r1, r5 + 69e8: 6c1b mov r0, r6 + 69ea: e3ffffd1 bsr 0x698c // 698c + 69ee: a40a st.b r0, (r4, 0xa) +#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); + 69f0: 3264 movi r2, 100 + 69f2: 8f79 ld.h r3, (r7, 0x32) + 69f4: 6c57 mov r1, r5 + 69f6: b840 st.w r2, (r14, 0x0) + 69f8: 6c1b mov r0, r6 + 69fa: 3201 movi r2, 1 + 69fc: e3ffeade bsr 0x3fb8 // 3fb8 + + //ack_uart->ackLen = 0x00; +} + 6a00: 1401 addi r14, r14, 4 + 6a02: 1494 pop r4-r7, r15 + 6a04: 2000052c .long 0x2000052c + 6a08: 20000600 .long 0x20000600 + +Disassembly of section .text.Boot_Time_Refresh: + +00006a0c : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + 6a0c: 1063 lrw r3, 0x200000c0 // 6a18 + 6a0e: 9340 ld.w r2, (r3, 0x0) + 6a10: 1063 lrw r3, 0x20000700 // 6a1c + 6a12: b34e st.w r2, (r3, 0x38) +} + 6a14: 783c jmp r15 + 6a16: 0000 bkpt + 6a18: 200000c0 .long 0x200000c0 + 6a1c: 20000700 .long 0x20000700 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +00006a20 : +{ + 6a20: 14d4 push r4-r7, r15 + 6a22: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + 6a24: 8065 ld.b r3, (r0, 0x5) + 6a26: 8044 ld.b r2, (r0, 0x4) + 6a28: 4368 lsli r3, r3, 8 + 6a2a: 6cc8 or r3, r2 + if(len != data_len) { + 6a2c: 644e cmpne r3, r1 +{ + 6a2e: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + 6a30: b860 st.w r3, (r14, 0x0) + if(len != data_len) { + 6a32: 08aa bt 0x6b86 // 6b86 + if(Boot_Comm_CheckSum(data,len) != 0) { + 6a34: 6c4f mov r1, r3 + 6a36: e3ffffab bsr 0x698c // 698c + 6a3a: 3840 cmpnei r0, 0 + 6a3c: 6cc3 mov r3, r0 + 6a3e: 08a6 bt 0x6b8a // 6b8a + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 6a40: 8541 ld.b r2, (r5, 0x1) + 6a42: 744a sextb r1, r2 + 6a44: 39df btsti r1, 31 + 6a46: 1295 lrw r4, 0x20000600 // 6b98 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6a48: 8401 ld.b r0, (r4, 0x1) + 6a4a: 310f movi r1, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 6a4c: 0c2d bf 0x6aa6 // 6aa6 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6a4e: 6884 and r2, r1 + 6a50: 6482 cmpne r0, r2 + 6a52: 60cd addc r3, r3 + deal_flag = 0x00; + 6a54: 740c zextb r0, r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 6a56: 3700 movi r7, 0 + group_flag = 0x01; + 6a58: 3301 movi r3, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + 6a5a: 12d1 lrw r6, 0x2000052c // 6b9c + 6a5c: 8542 ld.b r2, (r5, 0x2) + 6a5e: 8621 ld.b r1, (r6, 0x1) + 6a60: 6486 cmpne r1, r2 + 6a62: 0c04 bf 0x6a6a // 6a6a + 6a64: 31ff movi r1, 255 + 6a66: 644a cmpne r2, r1 + 6a68: 0893 bt 0x6b8e // 6b8e + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + 6a6a: 8543 ld.b r2, (r5, 0x3) + 6a6c: 8620 ld.b r1, (r6, 0x0) + 6a6e: 6486 cmpne r1, r2 + 6a70: 0c04 bf 0x6a78 // 6a78 + 6a72: 31ff movi r1, 255 + 6a74: 644a cmpne r2, r1 + 6a76: 088e bt 0x6b92 // 6b92 + 6a78: b862 st.w r3, (r14, 0x8) + 6a7a: b801 st.w r0, (r14, 0x4) + Boot_Time_Refresh(); + 6a7c: e3ffffc8 bsr 0x6a0c // 6a0c + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + 6a80: 8560 ld.b r3, (r5, 0x0) + 6a82: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + 6a84: 8541 ld.b r2, (r5, 0x1) + 6a86: 310f movi r1, 15 + 6a88: 6884 and r2, r1 + 6a8a: a441 st.b r2, (r4, 0x1) + switch(g_boot.cmd){ + 6a8c: 31c0 movi r1, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 6a8e: 8547 ld.b r2, (r5, 0x7) + switch(g_boot.cmd){ + 6a90: 644a cmpne r2, r1 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 6a92: a442 st.b r2, (r4, 0x2) + switch(g_boot.cmd){ + 6a94: 9801 ld.w r0, (r14, 0x4) + 6a96: 9862 ld.w r3, (r14, 0x8) + 6a98: 0c1a bf 0x6acc // 6acc + 6a9a: 31c1 movi r1, 193 + 6a9c: 644a cmpne r2, r1 + 6a9e: 0c62 bf 0x6b62 // 6b62 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 6aa0: 3201 movi r2, 1 + 6aa2: a44c st.b r2, (r4, 0xc) + 6aa4: 046a br 0x6b78 // 6b78 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6aa6: 6848 and r1, r2 + 6aa8: 6442 cmpne r0, r1 + 6aaa: 080c bt 0x6ac2 // 6ac2 + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + 6aac: 3140 movi r1, 64 + 6aae: 6884 and r2, r1 + 6ab0: 3a40 cmpnei r2, 0 + 6ab2: 0c0b bf 0x6ac8 // 6ac8 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + 6ab4: 8527 ld.b r1, (r5, 0x7) + 6ab6: 844b ld.b r2, (r4, 0xb) + 6ab8: 6486 cmpne r1, r2 + 6aba: 65c3 mvcv r7 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 6abc: 75dc zextb r7, r7 + 6abe: 3000 movi r0, 0 + 6ac0: 07cd br 0x6a5a // 6a5a + reply_flag = 0x01; + 6ac2: 3701 movi r7, 1 + deal_flag = 0x01; + 6ac4: 3001 movi r0, 1 + 6ac6: 07ca br 0x6a5a // 6a5a + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 6ac8: 3700 movi r7, 0 + 6aca: 07fa br 0x6abe // 6abe + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + 6acc: 3841 cmpnei r0, 1 + 6ace: 0819 bt 0x6b00 // 6b00 + 6ad0: 9840 ld.w r2, (r14, 0x0) + 6ad2: 3a0b cmphsi r2, 12 + 6ad4: 0c16 bf 0x6b00 // 6b00 + temp_data |= data[BCOMM_FMT_PARAM]; + 6ad6: 8529 ld.b r1, (r5, 0x9) + 6ad8: 8548 ld.b r2, (r5, 0x8) + 6ada: 4128 lsli r1, r1, 8 + 6adc: 6c48 or r1, r2 + if(temp_data != g_boot.bootTimeout){ + 6ade: 1151 lrw r2, 0x20000700 // 6ba0 + 6ae0: 920d ld.w r0, (r2, 0x34) + 6ae2: 6406 cmpne r1, r0 + 6ae4: 0c09 bf 0x6af6 // 6af6 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 6ae6: 3909 cmphsi r1, 10 + 6ae8: 0c3b bf 0x6b5e // 6b5e + 6aea: b22d st.w r1, (r2, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + 6aec: 30fa movi r0, 250 + 6aee: 922d ld.w r1, (r2, 0x34) + 6af0: 4002 lsli r0, r0, 2 + 6af2: 7c40 mult r1, r0 + 6af4: b22d st.w r1, (r2, 0x34) + 6af6: 852b ld.b r1, (r5, 0xb) + 6af8: 850a ld.b r0, (r5, 0xa) + 6afa: 4128 lsli r1, r1, 8 + 6afc: 6c40 or r1, r0 + g_boot.ackValidity = temp_data; + 6afe: aa39 st.h r1, (r2, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + 6b00: 3f41 cmpnei r7, 1 + 6b02: 082c bt 0x6b5a // 6b5a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + 6b04: 3202 movi r2, 2 + 6b06: a44c st.b r2, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + 6b08: 8642 ld.b r2, (r6, 0x2) + 6b0a: a44d st.b r2, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + 6b0c: 8643 ld.b r2, (r6, 0x3) + 6b0e: a44e st.b r2, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + 6b10: 3203 movi r2, 3 + 6b12: a44f st.b r2, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + 6b14: 1144 lrw r2, 0x2000005c // 6ba4 + 6b16: 9240 ld.w r2, (r2, 0x0) + 6b18: 227f addi r2, 128 + 6b1a: 9239 ld.w r1, (r2, 0x64) + 6b1c: a430 st.b r1, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + 6b1e: 923a ld.w r1, (r2, 0x68) + 6b20: a431 st.b r1, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + 6b22: 925b ld.w r2, (r2, 0x6c) + 6b24: a452 st.b r2, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + 6b26: 8624 ld.b r1, (r6, 0x4) + 6b28: 3220 movi r2, 32 + 6b2a: 6448 cmphs r2, r1 + 6b2c: 0802 bt 0x6b30 // 6b30 + 6b2e: a644 st.b r2, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + 6b30: 8644 ld.b r2, (r6, 0x4) + 6b32: a453 st.b r2, (r4, 0x13) + 6b34: 3220 movi r2, 32 + 6b36: 101a lrw r0, 0x2000052c // 6b9c + 6b38: 1038 lrw r1, 0x20000600 // 6b98 + 6b3a: 2a00 subi r2, 1 + 6b3c: 7488 zextb r2, r2 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + 6b3e: 8085 ld.b r4, (r0, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + 6b4a: 1056 lrw r2, 0x20000700 // 6ba0 + 6b4c: 3128 movi r1, 40 + 6b4e: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 6b50: 3b40 cmpnei r3, 0 + 6b52: 0804 bt 0x6b5a // 6b5a + Boot_Comm_FillReplyPack(&g_boot); + 6b54: 1011 lrw r0, 0x20000600 // 6b98 + 6b56: e3ffff2d bsr 0x69b0 // 69b0 +} + 6b5a: 1403 addi r14, r14, 12 + 6b5c: 1494 pop r4-r7, r15 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 6b5e: 310a movi r1, 10 + 6b60: 07c5 br 0x6aea // 6aea + if(deal_flag != 0x01) break; //不处理直接退出 + 6b62: 3841 cmpnei r0, 1 + 6b64: 080d bt 0x6b7e // 6b7e + if(data[BCOMM_FMT_PARAM] == 0x01){ + 6b66: 8548 ld.b r2, (r5, 0x8) + 6b68: 3a41 cmpnei r2, 1 + 6b6a: 0b9b bt 0x6aa0 // 6aa0 + 6b6c: b860 st.w r3, (r14, 0x0) + BUS485_Jump_Boot(0x01); + 6b6e: e3ffea5f bsr 0x402c // 402c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + 6b72: 3300 movi r3, 0 + 6b74: a46c st.b r3, (r4, 0xc) + 6b76: 9860 ld.w r3, (r14, 0x0) + g_boot.ackLen = 1; + 6b78: 104a lrw r2, 0x20000700 // 6ba0 + 6b7a: 3101 movi r1, 1 + 6b7c: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 6b7e: 3b40 cmpnei r3, 0 + 6b80: 0bed bt 0x6b5a // 6b5a + 6b82: 3f41 cmpnei r7, 1 + 6b84: 07e7 br 0x6b52 // 6b52 + return 0x01; + 6b86: 3001 movi r0, 1 + 6b88: 07e9 br 0x6b5a // 6b5a + return 0x02; + 6b8a: 3002 movi r0, 2 + 6b8c: 07e7 br 0x6b5a // 6b5a + return 0x03; + 6b8e: 3003 movi r0, 3 + 6b90: 07e5 br 0x6b5a // 6b5a + return 0x04; + 6b92: 3004 movi r0, 4 + 6b94: 07e3 br 0x6b5a // 6b5a + 6b96: 0000 bkpt + 6b98: 20000600 .long 0x20000600 + 6b9c: 2000052c .long 0x2000052c + 6ba0: 20000700 .long 0x20000700 + 6ba4: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Init: + +00006ba8 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 6ba8: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 6baa: 1298 lrw r4, 0x2000083c // 6d08 + 6bac: 3229 movi r2, 41 + 6bae: 3100 movi r1, 0 + 6bb0: 6c13 mov r0, r4 + 6bb2: e3ffd847 bsr 0x1c40 // 1c40 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 6bb6: 1276 lrw r3, 0x200000b4 // 6d0c + 6bb8: 9360 ld.w r3, (r3, 0x0) + 6bba: 3b80 bclri r3, 0 + 6bbc: 3b40 cmpnei r3, 0 + 6bbe: 0c9e bf 0x6cfa // 6cfa + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 6bc0: 1234 lrw r1, 0xab17 // 6d10 + 6bc2: 3000 movi r0, 0 + 6bc4: e3ffeaa2 bsr 0x4108 // 4108 + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 6bc8: 1273 lrw r3, 0x200000b0 // 6d14 + 6bca: 30ff movi r0, 255 + 6bcc: 9320 ld.w r1, (r3, 0x0) + 6bce: 6840 and r1, r0 + 6bd0: 3940 cmpnei r1, 0 + 6bd2: 0c05 bf 0x6bdc // 6bdc + 6bd4: 9340 ld.w r2, (r3, 0x0) + 6bd6: 6880 and r2, r0 + 6bd8: 3a41 cmpnei r2, 1 + 6bda: 0883 bt 0x6ce0 // 6ce0 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 6bdc: 9340 ld.w r2, (r3, 0x0) + 6bde: 4227 lsli r1, r2, 7 + 6be0: 307f movi r0, 127 + 6be2: 8442 ld.b r2, (r4, 0x2) + 6be4: 6880 and r2, r0 + 6be6: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6be8: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 6bea: 9340 ld.w r2, (r3, 0x0) + 6bec: 4a48 lsri r2, r2, 8 + 6bee: 30ff movi r0, 255 + 6bf0: 6880 and r2, r0 + 6bf2: 3a40 cmpnei r2, 0 + 6bf4: 0c10 bf 0x6c14 // 6c14 + 6bf6: 9340 ld.w r2, (r3, 0x0) + 6bf8: 4a48 lsri r2, r2, 8 + 6bfa: 6880 and r2, r0 + 6bfc: 3a42 cmpnei r2, 2 + 6bfe: 0c0b bf 0x6c14 // 6c14 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 6c00: 9320 ld.w r1, (r3, 0x0) + 6c02: 4928 lsri r1, r1, 8 + 6c04: 6840 and r1, r0 + 6c06: 3944 cmpnei r1, 4 + 6c08: 0c06 bf 0x6c14 // 6c14 + 6c0a: 9340 ld.w r2, (r3, 0x0) + 6c0c: 4a48 lsri r2, r2, 8 + 6c0e: 6880 and r2, r0 + 6c10: 3a46 cmpnei r2, 6 + 6c12: 086b bt 0x6ce8 // 6ce8 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 6c14: 9340 ld.w r2, (r3, 0x0) + 6c16: 3107 movi r1, 7 + 6c18: 4a48 lsri r2, r2, 8 + 6c1a: 6884 and r2, r1 + 6c1c: 3070 movi r0, 112 + 6c1e: 8422 ld.b r1, (r4, 0x2) + 6c20: 4244 lsli r2, r2, 4 + 6c22: 6841 andn r1, r0 + 6c24: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6c26: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 6c28: 9340 ld.w r2, (r3, 0x0) + 6c2a: 4a50 lsri r2, r2, 16 + 6c2c: 30ff movi r0, 255 + 6c2e: 6880 and r2, r0 + 6c30: 3a40 cmpnei r2, 0 + 6c32: 0c10 bf 0x6c52 // 6c52 + 6c34: 9340 ld.w r2, (r3, 0x0) + 6c36: 4a50 lsri r2, r2, 16 + 6c38: 6880 and r2, r0 + 6c3a: 3a41 cmpnei r2, 1 + 6c3c: 0c0b bf 0x6c52 // 6c52 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 6c3e: 9320 ld.w r1, (r3, 0x0) + 6c40: 4930 lsri r1, r1, 16 + 6c42: 6840 and r1, r0 + 6c44: 3942 cmpnei r1, 2 + 6c46: 0c06 bf 0x6c52 // 6c52 + 6c48: 9340 ld.w r2, (r3, 0x0) + 6c4a: 4a50 lsri r2, r2, 16 + 6c4c: 6880 and r2, r0 + 6c4e: 3a43 cmpnei r2, 3 + 6c50: 0850 bt 0x6cf0 // 6cf0 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 6c52: 9340 ld.w r2, (r3, 0x0) + 6c54: 3107 movi r1, 7 + 6c56: 4a50 lsri r2, r2, 16 + 6c58: 6884 and r2, r1 + 6c5a: 300e movi r0, 14 + 6c5c: 8422 ld.b r1, (r4, 0x2) + 6c5e: 4241 lsli r2, r2, 1 + 6c60: 6841 andn r1, r0 + 6c62: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 6c64: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 6c66: 9340 ld.w r2, (r3, 0x0) + 6c68: 4a58 lsri r2, r2, 24 + 6c6a: 3a0f cmphsi r2, 16 + 6c6c: 0c4c bf 0x6d04 // 6d04 + 6c6e: 3284 movi r2, 132 + 6c70: 4256 lsli r2, r2, 22 + 6c72: 9320 ld.w r1, (r3, 0x0) + 6c74: 2a00 subi r2, 1 + 6c76: 6448 cmphs r2, r1 + 6c78: 0c46 bf 0x6d04 // 6d04 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 6c7a: 9360 ld.w r3, (r3, 0x0) + 6c7c: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 6c7e: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6c80: e3fff2c8 bsr 0x5210 // 5210 + 6c84: 1165 lrw r3, 0x20000524 // 6d18 + 6c86: 8362 ld.b r3, (r3, 0x2) + 6c88: 320a movi r2, 10 + 6c8a: 7cc8 mult r3, r2 + 6c8c: 2b54 subi r3, 85 + 6c8e: 600c addu r0, r3 + 6c90: 7401 zexth r0, r0 + 6c92: 4868 lsri r3, r0, 8 + 6c94: a469 st.b r3, (r4, 0x9) + 6c96: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6c98: 310a movi r1, 10 + 6c9a: e3ffe7cb bsr 0x3c30 // 3c30 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 6c9e: 3301 movi r3, 1 + 6ca0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 6ca2: 3300 movi r3, 0 + 6ca4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 6ca6: 3200 movi r2, 0 + 6ca8: 107d lrw r3, 0x2000005c // 6d1c + 6caa: 9360 ld.w r3, (r3, 0x0) + 6cac: 23ff addi r3, 256 + 6cae: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6cb0: 8442 ld.b r2, (r4, 0x2) + 6cb2: 4239 lsli r1, r2, 25 + 6cb4: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6cb6: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6cb8: 4128 lsli r1, r1, 8 + 6cba: 9300 ld.w r0, (r3, 0x0) + 6cbc: 6c40 or r1, r0 + 6cbe: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6cc0: 423c lsli r1, r2, 28 + 6cc2: 493d lsri r1, r1, 29 + 6cc4: 9300 ld.w r0, (r3, 0x0) + 6cc6: 4130 lsli r1, r1, 16 + 6cc8: 6c40 or r1, r0 + 6cca: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6ccc: 8421 ld.b r1, (r4, 0x1) + 6cce: 9300 ld.w r0, (r3, 0x0) + 6cd0: 4138 lsli r1, r1, 24 + 6cd2: 6c40 or r1, r0 + 6cd4: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 6cd6: 9320 ld.w r1, (r3, 0x0) + 6cd8: 4a47 lsri r2, r2, 7 + 6cda: 6c84 or r2, r1 + 6cdc: b340 st.w r2, (r3, 0x0) +} + 6cde: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6ce0: 8442 ld.b r2, (r4, 0x2) + 6ce2: 317f movi r1, 127 + 6ce4: 6884 and r2, r1 + 6ce6: 0781 br 0x6be8 // 6be8 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6ce8: 8442 ld.b r2, (r4, 0x2) + 6cea: 3170 movi r1, 112 + 6cec: 6885 andn r2, r1 + 6cee: 079c br 0x6c26 // 6c26 + TempCtrl.TemState_Now.fan = FAN_MID; + 6cf0: 8442 ld.b r2, (r4, 0x2) + 6cf2: 310e movi r1, 14 + 6cf4: 6885 andn r2, r1 + 6cf6: 3aa1 bseti r2, 1 + 6cf8: 07b6 br 0x6c64 // 6c64 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 6cfa: 8462 ld.b r3, (r4, 0x2) + 6cfc: 320e movi r2, 14 + 6cfe: 68c9 andn r3, r2 + 6d00: 3ba1 bseti r3, 1 + 6d02: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 6d04: 3318 movi r3, 24 + 6d06: 07bc br 0x6c7e // 6c7e + 6d08: 2000083c .long 0x2000083c + 6d0c: 200000b4 .long 0x200000b4 + 6d10: 0000ab17 .long 0x0000ab17 + 6d14: 200000b0 .long 0x200000b0 + 6d18: 20000524 .long 0x20000524 + 6d1c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00006d20 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 6d20: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6d22: 1031 lrw r1, 0x2000083c // 6d64 + 6d24: 8162 ld.b r3, (r1, 0x2) + 6d26: 748e sextb r2, r3 + 6d28: 3adf btsti r2, 31 + 6d2a: 0c14 bf 0x6d52 // 6d52 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 6d2c: 4359 lsli r2, r3, 25 + 6d2e: 4a5d lsri r2, r2, 29 + 6d30: 3a42 cmpnei r2, 2 + 6d32: 0c11 bf 0x6d54 // 6d54 + 6d34: 3a44 cmpnei r2, 4 + 6d36: 0c13 bf 0x6d5c // 6d5c + 6d38: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6d3a: 3270 movi r2, 112 + 6d3c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 6d3e: 0802 bt 0x6d42 // 6d42 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6d40: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6d42: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 6d44: 8142 ld.b r2, (r1, 0x2) + 6d46: 4259 lsli r2, r2, 25 + 6d48: 4a5d lsri r2, r2, 29 + 6d4a: 1028 lrw r1, 0xab30 // 6d68 + 6d4c: 3000 movi r0, 0 + 6d4e: e3ffe9dd bsr 0x4108 // 4108 +} + 6d52: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 6d54: 3270 movi r2, 112 + 6d56: 68c9 andn r3, r2 + 6d58: 3ba6 bseti r3, 6 + 6d5a: 07f4 br 0x6d42 // 6d42 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6d5c: 3270 movi r2, 112 + 6d5e: 68c9 andn r3, r2 + 6d60: 07f1 br 0x6d42 // 6d42 + 6d62: 0000 bkpt + 6d64: 2000083c .long 0x2000083c + 6d68: 0000ab30 .long 0x0000ab30 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00006d6c : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 6d6c: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6d6e: 1071 lrw r3, 0x2000083c // 6db0 + 6d70: 8342 ld.b r2, (r3, 0x2) + 6d72: 744a sextb r1, r2 + 6d74: 39df btsti r1, 31 + 6d76: 0c15 bf 0x6da0 // 6da0 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6d78: 421c lsli r0, r2, 28 + 6d7a: 481d lsri r0, r0, 29 + 6d7c: 3803 cmphsi r0, 4 + 6d7e: 0814 bt 0x6da6 // 6da6 + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + 6d80: 8342 ld.b r2, (r3, 0x2) + 6d82: 310e movi r1, 14 + 6d84: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 6d86: e3ffcfbb bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6d8a: 0c02 .short 0x0c02 + 6d8c: 0310 .short 0x0310 + TempCtrl.TemState_Now.fan = FAN_MID; + 6d8e: 3aa1 bseti r2, 1 + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6d90: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 6d92: 8342 ld.b r2, (r3, 0x2) + 6d94: 425c lsli r2, r2, 28 + 6d96: 4a5d lsri r2, r2, 29 + 6d98: 1027 lrw r1, 0xab39 // 6db4 + 6d9a: 3000 movi r0, 0 + 6d9c: e3ffe9b6 bsr 0x4108 // 4108 +} + 6da0: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 6da2: 3aa2 bseti r2, 2 + 6da4: 07f6 br 0x6d90 // 6d90 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6da6: 310e movi r1, 14 + 6da8: 6885 andn r2, r1 + 6daa: 3aa1 bseti r2, 1 + 6dac: 3aa2 bseti r2, 2 + 6dae: 07f1 br 0x6d90 // 6d90 + 6db0: 2000083c .long 0x2000083c + 6db4: 0000ab39 .long 0x0000ab39 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00006db8 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 6db8: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6dba: 106a lrw r3, 0x2000083c // 6de0 + 6dbc: 8342 ld.b r2, (r3, 0x2) + 6dbe: 748a sextb r2, r2 + 6dc0: 3adf btsti r2, 31 + 6dc2: 0c0b bf 0x6dd8 // 6dd8 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6dc4: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 6dc6: 3a10 cmphsi r2, 17 + 6dc8: 0c09 bf 0x6dda // 6dda + { + TemSet--; //超过最低温度,就减 + 6dca: 2a00 subi r2, 1 + 6dcc: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6dce: 1026 lrw r1, 0xab40 // 6de4 + 6dd0: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 6dd2: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6dd4: e3ffe99a bsr 0x4108 // 4108 +} + 6dd8: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 6dda: 3210 movi r2, 16 + 6ddc: 07f9 br 0x6dce // 6dce + 6dde: 0000 bkpt + 6de0: 2000083c .long 0x2000083c + 6de4: 0000ab40 .long 0x0000ab40 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00006de8 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 6de8: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6dea: 106a lrw r3, 0x2000083c // 6e10 + 6dec: 8342 ld.b r2, (r3, 0x2) + 6dee: 748a sextb r2, r2 + 6df0: 3adf btsti r2, 31 + 6df2: 0c0b bf 0x6e08 // 6e08 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6df4: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 6df6: 3a1f cmphsi r2, 32 + 6df8: 0809 bt 0x6e0a // 6e0a + { + TemSet++; + 6dfa: 2200 addi r2, 1 + 6dfc: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6dfe: 1026 lrw r1, 0xab49 // 6e14 + 6e00: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 6e02: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6e04: e3ffe982 bsr 0x4108 // 4108 +} + 6e08: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 6e0a: 3220 movi r2, 32 + 6e0c: 07f9 br 0x6dfe // 6dfe + 6e0e: 0000 bkpt + 6e10: 2000083c .long 0x2000083c + 6e14: 0000ab49 .long 0x0000ab49 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00006e18 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 6e18: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 6e1a: 104b lrw r2, 0x2000083c // 6e44 + 6e1c: 8262 ld.b r3, (r2, 0x2) + 6e1e: 4b27 lsri r1, r3, 7 + 6e20: 3940 cmpnei r1, 0 + 6e22: 0c0d bf 0x6e3c // 6e3c + 6e24: 3941 cmpnei r1, 1 + 6e26: 080b bt 0x6e3c // 6e3c + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6e28: 317f movi r1, 127 + 6e2a: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6e2c: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 6e2e: 8242 ld.b r2, (r2, 0x2) + 6e30: 4a47 lsri r2, r2, 7 + 6e32: 1026 lrw r1, 0xab49 // 6e48 + 6e34: 3000 movi r0, 0 + 6e36: e3ffe969 bsr 0x4108 // 4108 +} + 6e3a: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6e3c: 3100 movi r1, 0 + 6e3e: 297f subi r1, 128 + 6e40: 6cc4 or r3, r1 + 6e42: 07f5 br 0x6e2c // 6e2c + 6e44: 2000083c .long 0x2000083c + 6e48: 0000ab49 .long 0x0000ab49 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00006e4c : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 6e4c: 14d1 push r4, r15 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 6e4e: 1130 lrw r1, 0x2000083c // 6f0c + 6e50: 8100 ld.b r0, (r1, 0x0) + 6e52: 3840 cmpnei r0, 0 + 6e54: 0802 bt 0x6e58 // 6e58 + 6e56: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 6e58: 8141 ld.b r2, (r1, 0x1) + 6e5a: 3a40 cmpnei r2, 0 + 6e5c: 0802 bt 0x6e60 // 6e60 + 6e5e: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 6e60: 8162 ld.b r3, (r1, 0x2) + 6e62: 4b87 lsri r4, r3, 7 + 6e64: 3c40 cmpnei r4, 0 + 6e66: 0c0f bf 0x6e84 // 6e84 + 6e68: 3c41 cmpnei r4, 1 + 6e6a: 0850 bt 0x6f0a // 6f0a + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 6e6c: 4399 lsli r4, r3, 25 + 6e6e: 4c9d lsri r4, r4, 29 + 6e70: 3c42 cmpnei r4, 2 + 6e72: 0c26 bf 0x6ebe // 6ebe + 6e74: 3c44 cmpnei r4, 4 + 6e76: 0c36 bf 0x6ee2 // 6ee2 + 6e78: 3c40 cmpnei r4, 0 + 6e7a: 0848 bt 0x6f0a // 6f0a + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6e7c: 5a83 subi r4, r2, 1 + 6e7e: 6501 cmplt r0, r4 + 6e80: 0c05 bf 0x6e8a // 6e8a + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6e82: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6e84: 3b80 bclri r3, 0 + 6e86: a162 st.b r3, (r1, 0x2) + 6e88: 0419 br 0x6eba // 6eba + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6e8a: 2200 addi r2, 1 + 6e8c: 6409 cmplt r2, r0 + 6e8e: 0c3e bf 0x6f0a // 6f0a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6e90: 3ba0 bseti r3, 0 + 6e92: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6e94: 107f lrw r3, 0x20000524 // 6f10 + 6e96: 8361 ld.b r3, (r3, 0x1) + 6e98: 3b41 cmpnei r3, 1 + 6e9a: 080a bt 0x6eae // 6eae + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6e9c: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6e9e: 3000 movi r0, 0 + 6ea0: e0000730 bsr 0x7d00 // 7d00 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 6ea4: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6ea6: 3001 movi r0, 1 + 6ea8: e000072c bsr 0x7d00 // 7d00 + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 6eac: 042f br 0x6f0a // 6f0a + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 6eae: 3b40 cmpnei r3, 0 + 6eb0: 0803 bt 0x6eb6 // 6eb6 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6eb2: 3101 movi r1, 1 + 6eb4: 07f5 br 0x6e9e // 6e9e + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 6eb6: 3b42 cmpnei r3, 2 + 6eb8: 0829 bt 0x6f0a // 6f0a + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6eba: 3102 movi r1, 2 + 6ebc: 040e br 0x6ed8 // 6ed8 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6ebe: 5a82 addi r4, r2, 1 + 6ec0: 6411 cmplt r4, r0 + 6ec2: 0be0 bt 0x6e82 // 6e82 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6ec4: 2a00 subi r2, 1 + 6ec6: 6481 cmplt r0, r2 + 6ec8: 0c21 bf 0x6f0a // 6f0a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6eca: 3ba0 bseti r3, 0 + 6ecc: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6ece: 1071 lrw r3, 0x20000524 // 6f10 + 6ed0: 8361 ld.b r3, (r3, 0x1) + 6ed2: 3b41 cmpnei r3, 1 + 6ed4: 0bed bt 0x6eae // 6eae + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6ed6: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6ed8: 3000 movi r0, 0 + 6eda: e0000713 bsr 0x7d00 // 7d00 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6ede: 3102 movi r1, 2 + 6ee0: 07e3 br 0x6ea6 // 6ea6 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6ee2: 3b80 bclri r3, 0 + 6ee4: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6ee6: 3000 movi r0, 0 + 6ee8: 3102 movi r1, 2 + 6eea: e000070b bsr 0x7d00 // 7d00 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6eee: 3102 movi r1, 2 + 6ef0: 3001 movi r0, 1 + 6ef2: e0000707 bsr 0x7d00 // 7d00 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6ef6: 1067 lrw r3, 0x20000524 // 6f10 + 6ef8: 8361 ld.b r3, (r3, 0x1) + 6efa: 3b42 cmpnei r3, 2 + 6efc: 0807 bt 0x6f0a // 6f0a + Relay_Stop(); + 6efe: e00006f3 bsr 0x7ce4 // 7ce4 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 6f02: 1025 lrw r1, 0xab57 // 6f14 + 6f04: 3000 movi r0, 0 + 6f06: e3ffe901 bsr 0x4108 // 4108 +} + 6f0a: 1491 pop r4, r15 + 6f0c: 2000083c .long 0x2000083c + 6f10: 20000524 .long 0x20000524 + 6f14: 0000ab57 .long 0x0000ab57 + +Disassembly of section .text.TemCtrl_Pro: + +00006f18 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 6f18: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 6f1a: 1218 lrw r0, 0x200000c0 // 7078 + 6f1c: 1238 lrw r1, 0x20000230 // 707c + 6f1e: 9040 ld.w r2, (r0, 0x0) + 6f20: 9160 ld.w r3, (r1, 0x0) + 6f22: 608e subu r2, r3 + 6f24: 33fa movi r3, 250 + 6f26: 4362 lsli r3, r3, 2 + 6f28: 648c cmphs r3, r2 + 6f2a: 083b bt 0x6fa0 // 6fa0 + { + tick = SysTick_1ms; + 6f2c: 9060 ld.w r3, (r0, 0x0) + 6f2e: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6f30: 360a movi r6, 10 + 6f32: 12b4 lrw r5, 0x20000524 // 7080 + 6f34: e3fff16e bsr 0x5210 // 5210 + 6f38: 8542 ld.b r2, (r5, 0x2) + 6f3a: 7c98 mult r2, r6 + 6f3c: 2a54 subi r2, 85 + 6f3e: 6080 addu r2, r0 + 6f40: 7589 zexth r6, r2 + 6f42: 1291 lrw r4, 0x2000083c // 7084 + 6f44: 7498 zextb r2, r6 + 6f46: 4e68 lsri r3, r6, 8 + 6f48: a448 st.b r2, (r4, 0x8) + 6f4a: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 6f4c: a44c st.b r2, (r4, 0xc) + 6f4e: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6f50: 310a movi r1, 10 + 6f52: 6c1b mov r0, r6 + 6f54: e3ffe66e bsr 0x3c30 // 3c30 <__udivsi3> + 6f58: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6f5a: 6c9b mov r2, r6 + 6f5c: 122b lrw r1, 0xab60 // 7088 + 6f5e: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6f60: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6f62: e3ffe8d3 bsr 0x4108 // 4108 + + Tem_Valve_Ctrl(); + 6f66: e3ffff73 bsr 0x6e4c // 6e4c + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 6f6a: 8442 ld.b r2, (r4, 0x2) + 6f6c: 74c8 zextb r3, r2 + 6f6e: 3171 movi r1, 113 + 6f70: 6c0f mov r0, r3 + 6f72: 6805 andn r0, r1 + 6f74: 3186 movi r1, 134 + 6f76: 6442 cmpne r0, r1 + 6f78: 083d bt 0x6ff2 // 6ff2 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6f7a: 3270 movi r2, 112 + 6f7c: 68c8 and r3, r2 + 6f7e: 3b40 cmpnei r3, 0 + 6f80: 0827 bt 0x6fce // 6fce + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 6f82: 8461 ld.b r3, (r4, 0x1) + 6f84: 8440 ld.b r2, (r4, 0x0) + 6f86: 5b27 subi r1, r3, 2 + 6f88: 6449 cmplt r2, r1 + 6f8a: 0c0c bf 0x6fa2 // 6fa2 + { + Relay_Stop(); //低风速 + 6f8c: e00006ac bsr 0x7ce4 // 7ce4 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 6f90: 117f lrw r3, 0x200005c0 // 708c + 6f92: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6f94: 8402 ld.b r0, (r4, 0x2) + 6f96: 401c lsli r0, r0, 28 + 6f98: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 6f9a: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6f9c: e3fffa9c bsr 0x64d4 // 64d4 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 6fa0: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6fa2: 5b23 subi r1, r3, 1 + 6fa4: 644a cmpne r2, r1 + 6fa6: 0804 bt 0x6fae // 6fae + Relay_Low(); //低风速 + 6fa8: e0000690 bsr 0x7cc8 // 7cc8 + 6fac: 07f2 br 0x6f90 // 6f90 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6fae: 5b22 addi r1, r3, 1 + 6fb0: 644a cmpne r2, r1 + 6fb2: 0806 bt 0x6fbe // 6fbe + Relay_Mid(); //中风速 + 6fb4: e000067c bsr 0x7cac // 7cac + HT1621.wind_velocity = 1; + 6fb8: 1175 lrw r3, 0x200005c0 // 708c + 6fba: 3201 movi r2, 1 + 6fbc: 07ec br 0x6f94 // 6f94 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6fbe: 2301 addi r3, 2 + 6fc0: 648d cmplt r3, r2 + 6fc2: 0fef bf 0x6fa0 // 6fa0 + Relay_High(); //高风速 + 6fc4: e0000666 bsr 0x7c90 // 7c90 + HT1621.wind_velocity = 2; + 6fc8: 1171 lrw r3, 0x200005c0 // 708c + 6fca: 3202 movi r2, 2 + 6fcc: 07e4 br 0x6f94 // 6f94 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 6fce: 3220 movi r2, 32 + 6fd0: 648e cmpne r3, r2 + 6fd2: 0be7 bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6fd4: 8461 ld.b r3, (r4, 0x1) + 6fd6: 8440 ld.b r2, (r4, 0x0) + 6fd8: 5b27 subi r1, r3, 2 + 6fda: 6449 cmplt r2, r1 + 6fdc: 0bf4 bt 0x6fc4 // 6fc4 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6fde: 5b23 subi r1, r3, 1 + 6fe0: 644a cmpne r2, r1 + 6fe2: 0fe9 bf 0x6fb4 // 6fb4 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6fe4: 5b22 addi r1, r3, 1 + 6fe6: 644a cmpne r2, r1 + 6fe8: 0fe0 bf 0x6fa8 // 6fa8 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 6fea: 2301 addi r3, 2 + 6fec: 648d cmplt r3, r2 + 6fee: 0fd9 bf 0x6fa0 // 6fa0 + 6ff0: 07ce br 0x6f8c // 6f8c + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 6ff2: 8521 ld.b r1, (r5, 0x1) + 6ff4: 3942 cmpnei r1, 2 + 6ff6: 744e sextb r1, r3 + 6ff8: 083a bt 0x706c // 706c + 6ffa: 39df btsti r1, 31 + 6ffc: 0c38 bf 0x706c // 706c + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 6ffe: 310e movi r1, 14 + 7000: 684c and r1, r3 + 7002: 3946 cmpnei r1, 6 + 7004: 0fce bf 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 7006: 3170 movi r1, 112 + 7008: 68c4 and r3, r1 + 700a: 3b40 cmpnei r3, 0 + 700c: 0819 bt 0x703e // 703e + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 700e: 8461 ld.b r3, (r4, 0x1) + 7010: 8420 ld.b r1, (r4, 0x0) + 7012: 5b07 subi r0, r3, 2 + 7014: 6405 cmplt r1, r0 + 7016: 0bbb bt 0x6f8c // 6f8c + switch(TempCtrl.TemState_Now.fan) + 7018: 425c lsli r2, r2, 28 + 701a: 4a5d lsri r2, r2, 29 + 701c: 3a41 cmpnei r2, 1 + 701e: 0c0c bf 0x7036 // 7036 + 7020: 3a40 cmpnei r2, 0 + 7022: 0c06 bf 0x702e // 702e + 7024: 3a42 cmpnei r2, 2 + 7026: 0bbd bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 7028: 2301 addi r3, 2 + 702a: 644d cmplt r3, r1 + 702c: 07cb br 0x6fc2 // 6fc2 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 702e: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 7030: 64c6 cmpne r1, r3 + 7032: 0bb7 bt 0x6fa0 // 6fa0 + 7034: 07ba br 0x6fa8 // 6fa8 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 7036: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 7038: 64c6 cmpne r1, r3 + 703a: 0bb3 bt 0x6fa0 // 6fa0 + 703c: 07bc br 0x6fb4 // 6fb4 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 703e: 3120 movi r1, 32 + 7040: 644e cmpne r3, r1 + 7042: 0baf bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 7044: 8461 ld.b r3, (r4, 0x1) + 7046: 8420 ld.b r1, (r4, 0x0) + 7048: 5b06 addi r0, r3, 2 + 704a: 6441 cmplt r0, r1 + 704c: 0ba0 bt 0x6f8c // 6f8c + switch(TempCtrl.TemState_Now.fan) + 704e: 425c lsli r2, r2, 28 + 7050: 4a5d lsri r2, r2, 29 + 7052: 3a41 cmpnei r2, 1 + 7054: 0c0a bf 0x7068 // 7068 + 7056: 3a40 cmpnei r2, 0 + 7058: 0c06 bf 0x7064 // 7064 + 705a: 3a42 cmpnei r2, 2 + 705c: 0ba2 bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 705e: 2b01 subi r3, 2 + 7060: 64c5 cmplt r1, r3 + 7062: 07b0 br 0x6fc2 // 6fc2 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 7064: 2300 addi r3, 1 + 7066: 07e5 br 0x7030 // 7030 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 7068: 2b00 subi r3, 1 + 706a: 07e7 br 0x7038 // 7038 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 706c: 39df btsti r1, 31 + 706e: 0b99 bt 0x6fa0 // 6fa0 + Relay_Stop(); //风速停 + 7070: e000063a bsr 0x7ce4 // 7ce4 + 7074: 0796 br 0x6fa0 // 6fa0 + 7076: 0000 bkpt + 7078: 200000c0 .long 0x200000c0 + 707c: 20000230 .long 0x20000230 + 7080: 20000524 .long 0x20000524 + 7084: 2000083c .long 0x2000083c + 7088: 0000ab60 .long 0x0000ab60 + 708c: 200005c0 .long 0x200005c0 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00007090 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 7090: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 7092: 112e lrw r1, 0xab88 // 7148 + 7094: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7096: 118e lrw r4, 0x20000868 // 714c + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 7098: e3ffe838 bsr 0x4108 // 4108 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 709c: 8460 ld.b r3, (r4, 0x0) + 709e: 3b41 cmpnei r3, 1 + 70a0: 11ac lrw r5, 0x200000c0 // 7150 + 70a2: 0836 bt 0x710e // 710e + { + Debug_Inf.Tick = SysTick_1ms; + 70a4: 9560 ld.w r3, (r5, 0x0) + 70a6: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page < PAGE8ID) + 70a8: 8462 ld.b r3, (r4, 0x2) + 70aa: 3b07 cmphsi r3, 8 + 70ac: 0803 bt 0x70b2 // 70b2 + { + Debug_Inf.Page++; + 70ae: 2300 addi r3, 1 + 70b0: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 70b2: e3fff7b1 bsr 0x6014 // 6014 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 70b6: 8462 ld.b r3, (r4, 0x2) + 70b8: 3b42 cmpnei r3, 2 + 70ba: 0805 bt 0x70c4 // 70c4 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 70bc: 8405 ld.b r0, (r4, 0x5) + 70be: e3fffbbd bsr 0x6838 // 6838 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 70c2: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 70c4: 3b41 cmpnei r3, 1 + 70c6: 0806 bt 0x70d2 // 70d2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 70c8: 8424 ld.b r1, (r4, 0x4) + 70ca: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 70cc: e3fffb68 bsr 0x679c // 679c + 70d0: 07f9 br 0x70c2 // 70c2 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 70d2: 3b43 cmpnei r3, 3 + 70d4: 0804 bt 0x70dc // 70dc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 70d6: 8426 ld.b r1, (r4, 0x6) + 70d8: 3003 movi r0, 3 + 70da: 07f9 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 70dc: 3b44 cmpnei r3, 4 + 70de: 0804 bt 0x70e6 // 70e6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 70e0: 8427 ld.b r1, (r4, 0x7) + 70e2: 3004 movi r0, 4 + 70e4: 07f4 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 70e6: 3b45 cmpnei r3, 5 + 70e8: 0804 bt 0x70f0 // 70f0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 70ea: 8423 ld.b r1, (r4, 0x3) + 70ec: 3005 movi r0, 5 + 70ee: 07ef br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 70f0: 3b46 cmpnei r3, 6 + 70f2: 0804 bt 0x70fa // 70fa + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 70f4: 8428 ld.b r1, (r4, 0x8) + 70f6: 3006 movi r0, 6 + 70f8: 07ea br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 70fa: 3b47 cmpnei r3, 7 + 70fc: 0804 bt 0x7104 // 7104 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 70fe: 8429 ld.b r1, (r4, 0x9) + 7100: 3007 movi r0, 7 + 7102: 07e5 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 7104: 3b48 cmpnei r3, 8 + 7106: 0bde bt 0x70c2 // 70c2 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7108: 3104 movi r1, 4 + 710a: 3008 movi r0, 8 + 710c: 07e0 br 0x70cc // 70cc + if(TempCtrl.CardState == CARDIN) //插卡状态 + 710e: 1092 lrw r4, 0x2000083c // 7154 + 7110: 8478 ld.b r3, (r4, 0x18) + 7112: 3b41 cmpnei r3, 1 + 7114: 0811 bt 0x7136 // 7136 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7116: 8462 ld.b r3, (r4, 0x2) + 7118: 74ce sextb r3, r3 + 711a: 3bdf btsti r3, 31 + 711c: 0c0d bf 0x7136 // 7136 + TemCtrl_Model_Set(); //模式切换 + 711e: e3fffe01 bsr 0x6d20 // 6d20 + if(g_eeprom.backlight_en == 0x01) + 7122: 106e lrw r3, 0x20000524 // 7158 + 7124: 8364 ld.b r3, (r3, 0x4) + 7126: 3b41 cmpnei r3, 1 + 7128: 0807 bt 0x7136 // 7136 + Controlled_LCD_Backlight(0x01); + 712a: 3001 movi r0, 1 + 712c: e3fffab2 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 7130: 3001 movi r0, 1 + 7132: e3fffb1d bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7136: 9560 ld.w r3, (r5, 0x0) + 7138: 4b48 lsri r2, r3, 8 + 713a: a470 st.b r3, (r4, 0x10) + 713c: a451 st.b r2, (r4, 0x11) + 713e: 4b50 lsri r2, r3, 16 + 7140: 4b78 lsri r3, r3, 24 + 7142: a452 st.b r2, (r4, 0x12) + 7144: a473 st.b r3, (r4, 0x13) +} + 7146: 07be br 0x70c2 // 70c2 + 7148: 0000ab88 .long 0x0000ab88 + 714c: 20000868 .long 0x20000868 + 7150: 200000c0 .long 0x200000c0 + 7154: 2000083c .long 0x2000083c + 7158: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +0000715c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 715c: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 715e: 112e lrw r1, 0xab9d // 7214 + 7160: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7162: 118e lrw r4, 0x20000868 // 7218 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 7164: e3ffe7d2 bsr 0x4108 // 4108 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7168: 8460 ld.b r3, (r4, 0x0) + 716a: 3b41 cmpnei r3, 1 + 716c: 11ac lrw r5, 0x200000c0 // 721c + 716e: 0836 bt 0x71da // 71da + { + Debug_Inf.Tick = SysTick_1ms; + 7170: 9560 ld.w r3, (r5, 0x0) + 7172: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page > PAGE1ID) + 7174: 8462 ld.b r3, (r4, 0x2) + 7176: 3b01 cmphsi r3, 2 + 7178: 0c03 bf 0x717e // 717e + { + Debug_Inf.Page--; + 717a: 2b00 subi r3, 1 + 717c: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 717e: e3fff74b bsr 0x6014 // 6014 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 7182: 8462 ld.b r3, (r4, 0x2) + 7184: 3b42 cmpnei r3, 2 + 7186: 0805 bt 0x7190 // 7190 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 7188: 8405 ld.b r0, (r4, 0x5) + 718a: e3fffb57 bsr 0x6838 // 6838 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 718e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 7190: 3b41 cmpnei r3, 1 + 7192: 0806 bt 0x719e // 719e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 7194: 8424 ld.b r1, (r4, 0x4) + 7196: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7198: e3fffb02 bsr 0x679c // 679c + 719c: 07f9 br 0x718e // 718e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 719e: 3b43 cmpnei r3, 3 + 71a0: 0804 bt 0x71a8 // 71a8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 71a2: 8426 ld.b r1, (r4, 0x6) + 71a4: 3003 movi r0, 3 + 71a6: 07f9 br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 71a8: 3b44 cmpnei r3, 4 + 71aa: 0804 bt 0x71b2 // 71b2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 71ac: 8427 ld.b r1, (r4, 0x7) + 71ae: 3004 movi r0, 4 + 71b0: 07f4 br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 71b2: 3b45 cmpnei r3, 5 + 71b4: 0804 bt 0x71bc // 71bc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 71b6: 8423 ld.b r1, (r4, 0x3) + 71b8: 3005 movi r0, 5 + 71ba: 07ef br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 71bc: 3b46 cmpnei r3, 6 + 71be: 0804 bt 0x71c6 // 71c6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 71c0: 8428 ld.b r1, (r4, 0x8) + 71c2: 3006 movi r0, 6 + 71c4: 07ea br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 71c6: 3b47 cmpnei r3, 7 + 71c8: 0804 bt 0x71d0 // 71d0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 71ca: 8429 ld.b r1, (r4, 0x9) + 71cc: 3007 movi r0, 7 + 71ce: 07e5 br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 71d0: 3b48 cmpnei r3, 8 + 71d2: 0bde bt 0x718e // 718e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 71d4: 3104 movi r1, 4 + 71d6: 3008 movi r0, 8 + 71d8: 07e0 br 0x7198 // 7198 + if(TempCtrl.CardState == CARDIN) + 71da: 1092 lrw r4, 0x2000083c // 7220 + 71dc: 8478 ld.b r3, (r4, 0x18) + 71de: 3b41 cmpnei r3, 1 + 71e0: 0811 bt 0x7202 // 7202 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 71e2: 8462 ld.b r3, (r4, 0x2) + 71e4: 74ce sextb r3, r3 + 71e6: 3bdf btsti r3, 31 + 71e8: 0c0d bf 0x7202 // 7202 + TemCtrl_Fan_Set(); //风速切换 + 71ea: e3fffdc1 bsr 0x6d6c // 6d6c + if(g_eeprom.backlight_en == 0x01) + 71ee: 106e lrw r3, 0x20000524 // 7224 + 71f0: 8364 ld.b r3, (r3, 0x4) + 71f2: 3b41 cmpnei r3, 1 + 71f4: 0807 bt 0x7202 // 7202 + Controlled_LCD_Backlight(0x01); + 71f6: 3001 movi r0, 1 + 71f8: e3fffa4c bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 71fc: 3001 movi r0, 1 + 71fe: e3fffab7 bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7202: 9560 ld.w r3, (r5, 0x0) + 7204: 4b48 lsri r2, r3, 8 + 7206: a470 st.b r3, (r4, 0x10) + 7208: a451 st.b r2, (r4, 0x11) + 720a: 4b50 lsri r2, r3, 16 + 720c: 4b78 lsri r3, r3, 24 + 720e: a452 st.b r2, (r4, 0x12) + 7210: a473 st.b r3, (r4, 0x13) +} + 7212: 07be br 0x718e // 718e + 7214: 0000ab9d .long 0x0000ab9d + 7218: 20000868 .long 0x20000868 + 721c: 200000c0 .long 0x200000c0 + 7220: 2000083c .long 0x2000083c + 7224: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00007228 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 7228: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 722a: 113b lrw r1, 0xabb0 // 7314 + 722c: 3000 movi r0, 0 + 722e: e3ffe76d bsr 0x4108 // 4108 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7232: 117a lrw r3, 0x20000868 // 7318 + 7234: 8340 ld.b r2, (r3, 0x0) + 7236: 3a41 cmpnei r2, 1 + 7238: 11b9 lrw r5, 0x200000c0 // 731c + 723a: 0850 bt 0x72da // 72da + { + Debug_Inf.Tick = SysTick_1ms; + 723c: 9540 ld.w r2, (r5, 0x0) + 723e: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 7240: 8342 ld.b r2, (r3, 0x2) + 7242: 3a41 cmpnei r2, 1 + 7244: 080b bt 0x725a // 725a + 7246: 8324 ld.b r1, (r3, 0x4) + 7248: 3901 cmphsi r1, 2 + 724a: 0812 bt 0x726e // 726e + { + Debug_Inf.PipeFlag ++; + 724c: 2100 addi r1, 1 + 724e: 7444 zextb r1, r1 + 7250: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 7252: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7254: e3fffaa4 bsr 0x679c // 679c + 7258: 040b br 0x726e // 726e + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 725a: 3a42 cmpnei r2, 2 + 725c: 080a bt 0x7270 // 7270 + 725e: 8305 ld.b r0, (r3, 0x5) + 7260: 3811 cmphsi r0, 18 + 7262: 0806 bt 0x726e // 726e + Debug_Inf.TempDiff++; + 7264: 2000 addi r0, 1 + 7266: 7400 zextb r0, r0 + 7268: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 726a: e3fffae7 bsr 0x6838 // 6838 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 726e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 7270: 3a43 cmpnei r2, 3 + 7272: 0806 bt 0x727e // 727e + Debug_Inf.BackLight_En = 0x01; + 7274: 3201 movi r2, 1 + 7276: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 7278: 3101 movi r1, 1 + 727a: 3003 movi r0, 3 + 727c: 07ec br 0x7254 // 7254 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 727e: 3a44 cmpnei r2, 4 + 7280: 0809 bt 0x7292 // 7292 + 7282: 8327 ld.b r1, (r3, 0x7) + 7284: 3901 cmphsi r1, 2 + 7286: 0bf4 bt 0x726e // 726e + Debug_Inf.KSens_Level++; + 7288: 2100 addi r1, 1 + 728a: 7444 zextb r1, r1 + 728c: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 728e: 3004 movi r0, 4 + 7290: 07e2 br 0x7254 // 7254 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 7292: 3a45 cmpnei r2, 5 + 7294: 080a bt 0x72a8 // 72a8 + 7296: 8323 ld.b r1, (r3, 0x3) + 7298: 32ff movi r2, 255 + 729a: 6486 cmpne r1, r2 + 729c: 0fe9 bf 0x726e // 726e + Debug_Inf.DevAddr++; //刷新地址 + 729e: 2100 addi r1, 1 + 72a0: 7444 zextb r1, r1 + 72a2: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 72a4: 3005 movi r0, 5 + 72a6: 07d7 br 0x7254 // 7254 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 72a8: 3a46 cmpnei r2, 6 + 72aa: 0809 bt 0x72bc // 72bc + 72ac: 8348 ld.b r2, (r3, 0x8) + 72ae: 3a40 cmpnei r2, 0 + 72b0: 0bdf bt 0x726e // 726e + Debug_Inf.TempDisplay++; + 72b2: 3201 movi r2, 1 + 72b4: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 72b6: 3101 movi r1, 1 + 72b8: 3006 movi r0, 6 + 72ba: 07cd br 0x7254 // 7254 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 72bc: 3a47 cmpnei r2, 7 + 72be: 0809 bt 0x72d0 // 72d0 + 72c0: 8329 ld.b r1, (r3, 0x9) + 72c2: 3901 cmphsi r1, 2 + 72c4: 0bd5 bt 0x726e // 726e + Debug_Inf.Language_Selection++; + 72c6: 2100 addi r1, 1 + 72c8: 7444 zextb r1, r1 + 72ca: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 72cc: 3007 movi r0, 7 + 72ce: 07c3 br 0x7254 // 7254 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 72d0: 3a48 cmpnei r2, 8 + 72d2: 0bce bt 0x726e // 726e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 72d4: 3104 movi r1, 4 + 72d6: 3008 movi r0, 8 + 72d8: 07be br 0x7254 // 7254 + if(TempCtrl.CardState == CARDIN) + 72da: 1092 lrw r4, 0x2000083c // 7320 + 72dc: 8478 ld.b r3, (r4, 0x18) + 72de: 3b41 cmpnei r3, 1 + 72e0: 0811 bt 0x7302 // 7302 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 72e2: 8462 ld.b r3, (r4, 0x2) + 72e4: 74ce sextb r3, r3 + 72e6: 3bdf btsti r3, 31 + 72e8: 0c0d bf 0x7302 // 7302 + TemCtrl_Temperature_Add(); //设置温度+ + 72ea: e3fffd7f bsr 0x6de8 // 6de8 + if(g_eeprom.backlight_en == 0x01) + 72ee: 106e lrw r3, 0x20000524 // 7324 + 72f0: 8364 ld.b r3, (r3, 0x4) + 72f2: 3b41 cmpnei r3, 1 + 72f4: 0807 bt 0x7302 // 7302 + Controlled_LCD_Backlight(0x01); + 72f6: 3001 movi r0, 1 + 72f8: e3fff9cc bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 72fc: 3001 movi r0, 1 + 72fe: e3fffa37 bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7302: 9560 ld.w r3, (r5, 0x0) + 7304: 4b48 lsri r2, r3, 8 + 7306: a470 st.b r3, (r4, 0x10) + 7308: a451 st.b r2, (r4, 0x11) + 730a: 4b50 lsri r2, r3, 16 + 730c: 4b78 lsri r3, r3, 24 + 730e: a452 st.b r2, (r4, 0x12) + 7310: a473 st.b r3, (r4, 0x13) +} + 7312: 07ae br 0x726e // 726e + 7314: 0000abb0 .long 0x0000abb0 + 7318: 20000868 .long 0x20000868 + 731c: 200000c0 .long 0x200000c0 + 7320: 2000083c .long 0x2000083c + 7324: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00007328 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 7328: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 732a: 1097 lrw r4, 0x20000868 // 7384 + 732c: 8460 ld.b r3, (r4, 0x0) + 732e: 3b40 cmpnei r3, 0 + 7330: 0829 bt 0x7382 // 7382 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 7332: 8461 ld.b r3, (r4, 0x1) + 7334: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 7336: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 7338: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 733a: 0824 bt 0x7382 // 7382 + 733c: 1073 lrw r3, 0x2000083c // 7388 + 733e: 8362 ld.b r3, (r3, 0x2) + 7340: 74ce sextb r3, r3 + 7342: 3bdf btsti r3, 31 + 7344: 081f bt 0x7382 // 7382 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 7346: 1032 lrw r1, 0xabc7 // 738c + 7348: 3000 movi r0, 0 + 734a: e3ffe6df bsr 0x4108 // 4108 + Debug_Inf.Tick = SysTick_1ms; + 734e: 1071 lrw r3, 0x200000c0 // 7390 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 7350: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 7352: 9360 ld.w r3, (r3, 0x0) + 7354: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 7356: 3300 movi r3, 0 + 7358: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 735a: 3301 movi r3, 1 + 735c: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 735e: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x01; + 7360: 106d lrw r3, 0x200005e0 // 7394 + 7362: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 7364: e3fff658 bsr 0x6014 // 6014 + Controlled_LCD_Backlight(0x01); + 7368: 3001 movi r0, 1 + 736a: e3fff993 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 736e: 3001 movi r0, 1 + 7370: e3fff9fe bsr 0x676c // 676c + Controlled_Buzzer(0x01); + 7374: 3001 movi r0, 1 + 7376: e3fff969 bsr 0x6648 // 6648 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 737a: 8424 ld.b r1, (r4, 0x4) + 737c: 3001 movi r0, 1 + 737e: e3fffa0f bsr 0x679c // 679c + + } + } + +} + 7382: 1491 pop r4, r15 + 7384: 20000868 .long 0x20000868 + 7388: 2000083c .long 0x2000083c + 738c: 0000abc7 .long 0x0000abc7 + 7390: 200000c0 .long 0x200000c0 + 7394: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00007398 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 7398: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 739a: 113b lrw r1, 0xabd0 // 7484 + 739c: 3000 movi r0, 0 + 739e: e3ffe6b5 bsr 0x4108 // 4108 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 73a2: 117a lrw r3, 0x20000868 // 7488 + 73a4: 8340 ld.b r2, (r3, 0x0) + 73a6: 3a41 cmpnei r2, 1 + 73a8: 11b9 lrw r5, 0x200000c0 // 748c + 73aa: 084f bt 0x7448 // 7448 + { + Debug_Inf.Tick = SysTick_1ms; + 73ac: 9540 ld.w r2, (r5, 0x0) + 73ae: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 73b0: 8342 ld.b r2, (r3, 0x2) + 73b2: 3a41 cmpnei r2, 1 + 73b4: 080b bt 0x73ca // 73ca + 73b6: 8324 ld.b r1, (r3, 0x4) + 73b8: 3940 cmpnei r1, 0 + 73ba: 0c12 bf 0x73de // 73de + { + Debug_Inf.PipeFlag --; + 73bc: 2900 subi r1, 1 + 73be: 7444 zextb r1, r1 + 73c0: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 73c2: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 73c4: e3fff9ec bsr 0x679c // 679c + 73c8: 040b br 0x73de // 73de + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 73ca: 3a42 cmpnei r2, 2 + 73cc: 080a bt 0x73e0 // 73e0 + 73ce: 8305 ld.b r0, (r3, 0x5) + 73d0: 3840 cmpnei r0, 0 + 73d2: 0c06 bf 0x73de // 73de + Debug_Inf.TempDiff--; + 73d4: 2800 subi r0, 1 + 73d6: 7400 zextb r0, r0 + 73d8: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 73da: e3fffa2f bsr 0x6838 // 6838 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 73de: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 73e0: 3a43 cmpnei r2, 3 + 73e2: 0806 bt 0x73ee // 73ee + Debug_Inf.BackLight_En = 0x00; + 73e4: 3200 movi r2, 0 + 73e6: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 73e8: 3100 movi r1, 0 + 73ea: 3003 movi r0, 3 + 73ec: 07ec br 0x73c4 // 73c4 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 73ee: 3a44 cmpnei r2, 4 + 73f0: 0809 bt 0x7402 // 7402 + 73f2: 8327 ld.b r1, (r3, 0x7) + 73f4: 3940 cmpnei r1, 0 + 73f6: 0ff4 bf 0x73de // 73de + Debug_Inf.KSens_Level--; + 73f8: 2900 subi r1, 1 + 73fa: 7444 zextb r1, r1 + 73fc: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 73fe: 3004 movi r0, 4 + 7400: 07e2 br 0x73c4 // 73c4 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 7402: 3a45 cmpnei r2, 5 + 7404: 0809 bt 0x7416 // 7416 + 7406: 8323 ld.b r1, (r3, 0x3) + 7408: 3940 cmpnei r1, 0 + 740a: 0fea bf 0x73de // 73de + Debug_Inf.DevAddr--; //刷新地址 + 740c: 2900 subi r1, 1 + 740e: 7444 zextb r1, r1 + 7410: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 7412: 3005 movi r0, 5 + 7414: 07d8 br 0x73c4 // 73c4 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 7416: 3a46 cmpnei r2, 6 + 7418: 0809 bt 0x742a // 742a + 741a: 8328 ld.b r1, (r3, 0x8) + 741c: 3940 cmpnei r1, 0 + 741e: 0fe0 bf 0x73de // 73de + Debug_Inf.TempDisplay--; + 7420: 2900 subi r1, 1 + 7422: 7444 zextb r1, r1 + 7424: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 7426: 3006 movi r0, 6 + 7428: 07ce br 0x73c4 // 73c4 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 742a: 3a47 cmpnei r2, 7 + 742c: 0809 bt 0x743e // 743e + 742e: 8329 ld.b r1, (r3, 0x9) + 7430: 3940 cmpnei r1, 0 + 7432: 0fd6 bf 0x73de // 73de + Debug_Inf.Language_Selection--; + 7434: 2900 subi r1, 1 + 7436: 7444 zextb r1, r1 + 7438: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 743a: 3007 movi r0, 7 + 743c: 07c4 br 0x73c4 // 73c4 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 743e: 3a48 cmpnei r2, 8 + 7440: 0bcf bt 0x73de // 73de + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7442: 3104 movi r1, 4 + 7444: 3008 movi r0, 8 + 7446: 07bf br 0x73c4 // 73c4 + if(TempCtrl.CardState == CARDIN) + 7448: 1092 lrw r4, 0x2000083c // 7490 + 744a: 8478 ld.b r3, (r4, 0x18) + 744c: 3b41 cmpnei r3, 1 + 744e: 0811 bt 0x7470 // 7470 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7450: 8462 ld.b r3, (r4, 0x2) + 7452: 74ce sextb r3, r3 + 7454: 3bdf btsti r3, 31 + 7456: 0c0d bf 0x7470 // 7470 + TemCtrl_Temperature_Dec(); //设置温度- + 7458: e3fffcb0 bsr 0x6db8 // 6db8 + if(g_eeprom.backlight_en == 0x01) + 745c: 106e lrw r3, 0x20000524 // 7494 + 745e: 8364 ld.b r3, (r3, 0x4) + 7460: 3b41 cmpnei r3, 1 + 7462: 0807 bt 0x7470 // 7470 + Controlled_LCD_Backlight(0x01); + 7464: 3001 movi r0, 1 + 7466: e3fff915 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 746a: 3001 movi r0, 1 + 746c: e3fff980 bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7470: 9560 ld.w r3, (r5, 0x0) + 7472: 4b48 lsri r2, r3, 8 + 7474: a470 st.b r3, (r4, 0x10) + 7476: a451 st.b r2, (r4, 0x11) + 7478: 4b50 lsri r2, r3, 16 + 747a: 4b78 lsri r3, r3, 24 + 747c: a452 st.b r2, (r4, 0x12) + 747e: a473 st.b r3, (r4, 0x13) +} + 7480: 07af br 0x73de // 73de + 7482: 0000 bkpt + 7484: 0000abd0 .long 0x0000abd0 + 7488: 20000868 .long 0x20000868 + 748c: 200000c0 .long 0x200000c0 + 7490: 2000083c .long 0x2000083c + 7494: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY4_Long_Press: + +00007498 : + +void KEY4_Long_Press(void) +{ + 7498: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 749a: 1097 lrw r4, 0x20000868 // 74f4 + 749c: 8460 ld.b r3, (r4, 0x0) + 749e: 3b40 cmpnei r3, 0 + 74a0: 0829 bt 0x74f2 // 74f2 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 74a2: 8461 ld.b r3, (r4, 0x1) + 74a4: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 74a6: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 74a8: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 74aa: 0824 bt 0x74f2 // 74f2 + 74ac: 1073 lrw r3, 0x2000083c // 74f8 + 74ae: 8362 ld.b r3, (r3, 0x2) + 74b0: 74ce sextb r3, r3 + 74b2: 3bdf btsti r3, 31 + 74b4: 081f bt 0x74f2 // 74f2 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 74b6: 1032 lrw r1, 0xabc7 // 74fc + 74b8: 3000 movi r0, 0 + 74ba: e3ffe627 bsr 0x4108 // 4108 + Debug_Inf.Tick = SysTick_1ms; + 74be: 1071 lrw r3, 0x200000c0 // 7500 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 74c0: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 74c2: 9360 ld.w r3, (r3, 0x0) + 74c4: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 74c6: 3300 movi r3, 0 + 74c8: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 74ca: 3301 movi r3, 1 + 74cc: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 74ce: a462 st.b r3, (r4, 0x2) + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 74d0: 3001 movi r0, 1 + HT1621.buz_ctrl_flag = 0x01; + 74d2: 106d lrw r3, 0x200005e0 // 7504 + 74d4: a345 st.b r2, (r3, 0x5) + Controlled_LCD_Backlight(0x01); + 74d6: e3fff8dd bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 74da: 3001 movi r0, 1 + 74dc: e3fff948 bsr 0x676c // 676c + HT1621_Clear(); + 74e0: e3fff59a bsr 0x6014 // 6014 + Controlled_Buzzer(0x01); + 74e4: 3001 movi r0, 1 + 74e6: e3fff8b1 bsr 0x6648 // 6648 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 74ea: 8424 ld.b r1, (r4, 0x4) + 74ec: 3001 movi r0, 1 + 74ee: e3fff957 bsr 0x679c // 679c + + } + } +} + 74f2: 1491 pop r4, r15 + 74f4: 20000868 .long 0x20000868 + 74f8: 2000083c .long 0x2000083c + 74fc: 0000abc7 .long 0x0000abc7 + 7500: 200000c0 .long 0x200000c0 + 7504: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00007508 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 7508: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 750a: 103e lrw r1, 0xabe7 // 7580 + 750c: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 750e: 109e lrw r4, 0x20000868 // 7584 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 7510: e3ffe5fc bsr 0x4108 // 4108 + if(Debug_Inf.State == 0x00) //正常模式 + 7514: 8460 ld.b r3, (r4, 0x0) + 7516: 3b40 cmpnei r3, 0 + 7518: 081b bt 0x754e // 754e + { + if(TempCtrl.CardState == CARDIN) + 751a: 109c lrw r4, 0x2000083c // 7588 + 751c: 8478 ld.b r3, (r4, 0x18) + 751e: 3b41 cmpnei r3, 1 + 7520: 080d bt 0x753a // 753a + { + TemCtrl_OnOff_Set(); + 7522: e3fffc7b bsr 0x6e18 // 6e18 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 7526: 107a lrw r3, 0x200000c0 // 758c + 7528: 9360 ld.w r3, (r3, 0x0) + 752a: 4b48 lsri r2, r3, 8 + 752c: a470 st.b r3, (r4, 0x10) + 752e: a451 st.b r2, (r4, 0x11) + 7530: 4b50 lsri r2, r3, 16 + 7532: 4b78 lsri r3, r3, 24 + 7534: a452 st.b r2, (r4, 0x12) + 7536: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 7538: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 753a: 3001 movi r0, 1 + 753c: e000002e bsr 0x7598 // 7598 + Controlled_LCD_Backlight(1); + 7540: 3001 movi r0, 1 + 7542: e3fff8a7 bsr 0x6690 // 6690 + Controlled_Key_Backlight(1); + 7546: 3001 movi r0, 1 + 7548: e3fff912 bsr 0x676c // 676c + 754c: 07ed br 0x7526 // 7526 + else if(Debug_Inf.State == 0x01) //设置模式 + 754e: 3b41 cmpnei r3, 1 + 7550: 0bf4 bt 0x7538 // 7538 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 7552: 1030 lrw r1, 0xabfc // 7590 + 7554: 3000 movi r0, 0 + 7556: e3ffe5d9 bsr 0x4108 // 4108 + Debug_Inf.State = 0x00; + 755a: 3300 movi r3, 0 + 755c: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 755e: 3301 movi r3, 1 + HT1621.buz_ctrl_flag = 0x00; + 7560: 3200 movi r2, 0 + Debug_Inf.Page = 0x01; + 7562: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 7564: 106c lrw r3, 0x200005e0 // 7594 + 7566: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 7568: e3fff556 bsr 0x6014 // 6014 + Controlled_LCD_Backlight(0x00); + 756c: 3000 movi r0, 0 + 756e: e3fff891 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7572: 3000 movi r0, 0 + 7574: e3fff8fc bsr 0x676c // 676c + Dev_SaveData(); + 7578: e00002dc bsr 0x7b30 // 7b30 +} + 757c: 07de br 0x7538 // 7538 + 757e: 0000 bkpt + 7580: 0000abe7 .long 0x0000abe7 + 7584: 20000868 .long 0x20000868 + 7588: 2000083c .long 0x2000083c + 758c: 200000c0 .long 0x200000c0 + 7590: 0000abfc .long 0x0000abfc + 7594: 200005e0 .long 0x200005e0 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00007598 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 7598: 14d1 push r4, r15 + if(state == TEMP_ON) + 759a: 3841 cmpnei r0, 1 + 759c: 0821 bt 0x75de // 75de + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 759e: 1072 lrw r3, 0x20000868 // 75e4 + 75a0: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 75a2: 1092 lrw r4, 0x2000083c // 75e8 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 75a4: e3fff800 bsr 0x65a4 // 65a4 + Control_Mode(TempCtrl.TemState_Now.mode); + 75a8: 8402 ld.b r0, (r4, 0x2) + 75aa: 4019 lsli r0, r0, 25 + 75ac: 481d lsri r0, r0, 29 + 75ae: e3fff671 bsr 0x6290 // 6290 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 75b2: 8402 ld.b r0, (r4, 0x2) + 75b4: 401c lsli r0, r0, 28 + 75b6: 481d lsri r0, r0, 29 + 75b8: e3fff78e bsr 0x64d4 // 64d4 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 75bc: 8401 ld.b r0, (r4, 0x1) + 75be: 3840 cmpnei r0, 0 + 75c0: 0c0c bf 0x75d8 // 75d8 + 75c2: 330a movi r3, 10 + 75c4: 7c0c mult r0, r3 + 75c6: e3fff595 bsr 0x60f0 // 60f0 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 75ca: 8400 ld.b r0, (r4, 0x0) + 75cc: 330a movi r3, 10 + 75ce: 7c0c mult r0, r3 + 75d0: 7401 zexth r0, r0 + 75d2: e3fff5f7 bsr 0x61c0 // 61c0 + } + else + { + HT1621_Clear(); + } +} + 75d6: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 75d8: 30a0 movi r0, 160 + 75da: 4001 lsli r0, r0, 1 + 75dc: 07f5 br 0x75c6 // 75c6 + HT1621_Clear(); + 75de: e3fff51b bsr 0x6014 // 6014 +} + 75e2: 07fa br 0x75d6 // 75d6 + 75e4: 20000868 .long 0x20000868 + 75e8: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Init: + +000075ec : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 75ec: 14d0 push r15 + HT1621_ALLON(); + 75ee: e3fff53b bsr 0x6064 // 6064 + + delay_nms(5000); + 75f2: 1005 lrw r0, 0x1388 // 7604 + 75f4: e3ffdd0e bsr 0x3010 // 3010 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 75f8: 1064 lrw r3, 0x2000083c // 7608 + 75fa: 8302 ld.b r0, (r3, 0x2) + 75fc: 4807 lsri r0, r0, 7 + 75fe: e3ffffcd bsr 0x7598 // 7598 + +} + 7602: 1490 pop r15 + 7604: 00001388 .long 0x00001388 + 7608: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Task: + +0000760c : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 760c: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 760e: 0168 lrw r3, 0x20000868 // 7968 + 7610: 8360 ld.b r3, (r3, 0x0) + 7612: 3b40 cmpnei r3, 0 + 7614: 0c03 bf 0x761a // 761a + 7616: e8000253 br 0x7abc // 7abc + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 761a: 018a lrw r4, 0x2000083c // 796c + 761c: 8451 ld.b r2, (r4, 0x11) + 761e: 8470 ld.b r3, (r4, 0x10) + 7620: 4248 lsli r2, r2, 8 + 7622: 6c8c or r2, r3 + 7624: 8472 ld.b r3, (r4, 0x12) + 7626: 4370 lsli r3, r3, 16 + 7628: 6c8c or r2, r3 + 762a: 8473 ld.b r3, (r4, 0x13) + 762c: 01ae lrw r5, 0x200000c0 // 7970 + 762e: 4378 lsli r3, r3, 24 + 7630: 6cc8 or r3, r2 + 7632: 9520 ld.w r1, (r5, 0x0) + 7634: 604e subu r1, r3 + 7636: 014f lrw r2, 0xbb8 // 7974 + 7638: 6448 cmphs r2, r1 + 763a: 08b7 bt 0x77a8 // 77a8 + 763c: 8458 ld.b r2, (r4, 0x18) + 763e: 3a40 cmpnei r2, 0 + 7640: 08b4 bt 0x77a8 // 77a8 + { + TempCtrl.BackLightTick = SysTick_1ms; + 7642: 9560 ld.w r3, (r5, 0x0) + 7644: 4b48 lsri r2, r3, 8 + 7646: a470 st.b r3, (r4, 0x10) + 7648: a451 st.b r2, (r4, 0x11) + 764a: 4b50 lsri r2, r3, 16 + 764c: 4b78 lsri r3, r3, 24 + 764e: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 7650: 3300 movi r3, 0 + 7652: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 7654: 8462 ld.b r3, (r4, 0x2) + 7656: 74ce sextb r3, r3 + 7658: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 765a: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 765c: 0803 bt 0x7662 // 7662 + { + HT1621_Clear(); + 765e: e3fff4db bsr 0x6014 // 6014 + } + //关背光 + Controlled_LCD_Backlight(0); + 7662: 3000 movi r0, 0 + 7664: e3fff816 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7668: 3000 movi r0, 0 + 766a: e3fff881 bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 766e: 013c lrw r1, 0xac06 // 7978 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 7670: 3000 movi r0, 0 + 7672: e3ffe54b bsr 0x4108 // 4108 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 7676: 8455 ld.b r2, (r4, 0x15) + 7678: 8474 ld.b r3, (r4, 0x14) + 767a: 4248 lsli r2, r2, 8 + 767c: 6c8c or r2, r3 + 767e: 8476 ld.b r3, (r4, 0x16) + 7680: 4370 lsli r3, r3, 16 + 7682: 6c8c or r2, r3 + 7684: 8477 ld.b r3, (r4, 0x17) + 7686: 4378 lsli r3, r3, 24 + 7688: 6cc8 or r3, r2 + 768a: 9520 ld.w r1, (r5, 0x0) + 768c: 604e subu r1, r3 + 768e: 33fa movi r3, 250 + 7690: 4362 lsli r3, r3, 2 + 7692: 644c cmphs r3, r1 + 7694: 081b bt 0x76ca // 76ca + { + TempCtrl.SceneNoTick = SysTick_1ms; + 7696: 9560 ld.w r3, (r5, 0x0) + 7698: 4b48 lsri r2, r3, 8 + 769a: a474 st.b r3, (r4, 0x14) + 769c: a455 st.b r2, (r4, 0x15) + 769e: 4b50 lsri r2, r3, 16 + 76a0: 4b78 lsri r3, r3, 24 + 76a2: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 76a4: 847b ld.b r3, (r4, 0x1b) + 76a6: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 76a8: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 76aa: 08a7 bt 0x77f8 // 77f8 + 76ac: 847c ld.b r3, (r4, 0x1c) + 76ae: 3b41 cmpnei r3, 1 + 76b0: 08a4 bt 0x77f8 // 77f8 + { + TempCtrl.SceneFlag = 0x00; + 76b2: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 76b4: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 76b6: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 76b8: e3fff7ec bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 76bc: 3000 movi r0, 0 + 76be: e3fff857 bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 76c2: 0230 lrw r1, 0xac28 // 797c + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 76c4: 3000 movi r0, 0 + 76c6: e3ffe521 bsr 0x4108 // 4108 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 76ca: 02f1 lrw r7, 0x20000524 // 7980 + 76cc: 8764 ld.b r3, (r7, 0x4) + 76ce: 3b41 cmpnei r3, 1 + 76d0: 081e bt 0x770c // 770c + 76d2: 8451 ld.b r2, (r4, 0x11) + 76d4: 8470 ld.b r3, (r4, 0x10) + 76d6: 4248 lsli r2, r2, 8 + 76d8: 6c8c or r2, r3 + 76da: 8472 ld.b r3, (r4, 0x12) + 76dc: 4370 lsli r3, r3, 16 + 76de: 6c8c or r2, r3 + 76e0: 8473 ld.b r3, (r4, 0x13) + 76e2: 4378 lsli r3, r3, 24 + 76e4: 6cc8 or r3, r2 + 76e6: 9520 ld.w r1, (r5, 0x0) + 76e8: 604e subu r1, r3 + 76ea: 0278 lrw r3, 0x1388 // 7984 + 76ec: 644c cmphs r3, r1 + 76ee: 080f bt 0x770c // 770c + { + TempCtrl.BackLightTick = SysTick_1ms; + 76f0: 9560 ld.w r3, (r5, 0x0) + 76f2: 4b48 lsri r2, r3, 8 + 76f4: a470 st.b r3, (r4, 0x10) + 76f6: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 76f8: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 76fa: 4b50 lsri r2, r3, 16 + 76fc: 4b78 lsri r3, r3, 24 + 76fe: a452 st.b r2, (r4, 0x12) + 7700: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 7702: e3fff7c7 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7706: 3000 movi r0, 0 + 7708: e3fff832 bsr 0x676c // 676c + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 770c: 8402 ld.b r0, (r4, 0x2) + 770e: 74c2 sextb r3, r0 + 7710: 3bdf btsti r3, 31 + 7712: 03c1 lrw r6, 0x2000085c // 7988 + 7714: 0d4a bf 0x79a8 // 79a8 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 7716: 8466 ld.b r3, (r4, 0x6) + 7718: 4019 lsli r0, r0, 25 + 771a: 4359 lsli r2, r3, 25 + 771c: 481d lsri r0, r0, 29 + 771e: 4a5d lsri r2, r2, 29 + 7720: 640a cmpne r2, r0 + 7722: 0c21 bf 0x7764 // 7764 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 7724: 3170 movi r1, 112 + 7726: 4044 lsli r2, r0, 4 + 7728: 68c5 andn r3, r1 + 772a: 6cc8 or r3, r2 + 772c: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 772e: e3fff5b1 bsr 0x6290 // 6290 + + SYSCON->UREG0 &= 0xFFFF00FF; + 7732: 0368 lrw r3, 0x2000005c // 798c + 7734: 31ff movi r1, 255 + 7736: 9340 ld.w r2, (r3, 0x0) + 7738: 22ff addi r2, 256 + 773a: 9260 ld.w r3, (r2, 0x0) + 773c: 4128 lsli r1, r1, 8 + 773e: 68c5 andn r3, r1 + 7740: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 7742: 8462 ld.b r3, (r4, 0x2) + 7744: 4379 lsli r3, r3, 25 + 7746: 4b7d lsri r3, r3, 29 + 7748: 9220 ld.w r1, (r2, 0x0) + 774a: 4368 lsli r3, r3, 8 + 774c: 6cc4 or r3, r1 + 774e: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7750: 3301 movi r3, 1 + 7752: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7754: 9560 ld.w r3, (r5, 0x0) + 7756: 4b28 lsri r1, r3, 8 + 7758: a665 st.b r3, (r6, 0x5) + 775a: a626 st.b r1, (r6, 0x6) + 775c: 4b30 lsri r1, r3, 16 + 775e: 4b78 lsri r3, r3, 24 + 7760: a627 st.b r1, (r6, 0x7) + 7762: a668 st.b r3, (r6, 0x8) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 7764: 8402 ld.b r0, (r4, 0x2) + 7766: 8466 ld.b r3, (r4, 0x6) + 7768: 401c lsli r0, r0, 28 + 776a: 437c lsli r3, r3, 28 + 776c: 4b7d lsri r3, r3, 29 + 776e: 481d lsri r0, r0, 29 + 7770: 640e cmpne r3, r0 + 7772: 0377 lrw r3, 0x20000234 // 7990 + 7774: 0804 bt 0x777c // 777c + 7776: 8340 ld.b r2, (r3, 0x0) + 7778: 3a41 cmpnei r2, 1 + 777a: 087b bt 0x7870 // 7870 + { + OpenDisPlay_Flag = 0x00; + 777c: 3200 movi r2, 0 + 777e: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 7780: 8466 ld.b r3, (r4, 0x6) + 7782: 310e movi r1, 14 + 7784: 4041 lsli r2, r0, 1 + 7786: 68c5 andn r3, r1 + 7788: 6cc8 or r3, r2 + 778a: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 778c: e3fff6a4 bsr 0x64d4 // 64d4 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 7790: 3270 movi r2, 112 + 7792: 8462 ld.b r3, (r4, 0x2) + 7794: 68c8 and r3, r2 + 7796: 3240 movi r2, 64 + 7798: 648e cmpne r3, r2 + 779a: 0843 bt 0x7820 // 7820 + 779c: 8761 ld.b r3, (r7, 0x1) + 779e: 3b42 cmpnei r3, 2 + 77a0: 0840 bt 0x7820 // 7820 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 77a2: e00002a1 bsr 0x7ce4 // 7ce4 + break; + 77a6: 044b br 0x783c // 783c + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 77a8: 9540 ld.w r2, (r5, 0x0) + 77aa: 608e subu r2, r3 + 77ac: 33fa movi r3, 250 + 77ae: 4363 lsli r3, r3, 3 + 77b0: 648c cmphs r3, r2 + 77b2: 0b62 bt 0x7676 // 7676 + 77b4: 8478 ld.b r3, (r4, 0x18) + 77b6: 3b41 cmpnei r3, 1 + 77b8: 0b5f bt 0x7676 // 7676 + 77ba: 8479 ld.b r3, (r4, 0x19) + 77bc: 3b41 cmpnei r3, 1 + 77be: 0b5c bt 0x7676 // 7676 + TempCtrl.BackLightTick = SysTick_1ms; + 77c0: 9560 ld.w r3, (r5, 0x0) + 77c2: 4b48 lsri r2, r3, 8 + 77c4: a470 st.b r3, (r4, 0x10) + 77c6: a451 st.b r2, (r4, 0x11) + 77c8: 4b50 lsri r2, r3, 16 + 77ca: 4b78 lsri r3, r3, 24 + 77cc: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 77ce: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 77d0: 3300 movi r3, 0 + 77d2: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 77d4: 74c2 sextb r3, r0 + 77d6: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 77d8: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 77da: 0f4e bf 0x7676 // 7676 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 77dc: 4807 lsri r0, r0, 7 + 77de: e3fffedd bsr 0x7598 // 7598 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 77e2: 847b ld.b r3, (r4, 0x1b) + 77e4: 3b44 cmpnei r3, 4 + 77e6: 0f48 bf 0x7676 // 7676 + Controlled_LCD_Backlight(1); + 77e8: 3001 movi r0, 1 + 77ea: e3fff753 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 77ee: 3001 movi r0, 1 + 77f0: e3fff7be bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 77f4: 1328 lrw r1, 0xac18 // 7994 + 77f6: 073d br 0x7670 // 7670 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 77f8: 8462 ld.b r3, (r4, 0x2) + 77fa: 74ce sextb r3, r3 + 77fc: 3bdf btsti r3, 31 + 77fe: 0f66 bf 0x76ca // 76ca + 7800: 8478 ld.b r3, (r4, 0x18) + 7802: 3b41 cmpnei r3, 1 + 7804: 0b63 bt 0x76ca // 76ca + 7806: 847c ld.b r3, (r4, 0x1c) + 7808: 3b41 cmpnei r3, 1 + 780a: 0b60 bt 0x76ca // 76ca + TempCtrl.SceneFlag = 0x00; + 780c: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 780e: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 7810: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 7812: e3fff73f bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 7816: 3001 movi r0, 1 + 7818: e3fff7aa bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 781c: 123f lrw r1, 0xac38 // 7998 + 781e: 0753 br 0x76c4 // 76c4 + switch(TempCtrl.TemState_Now.fan) + 7820: 8402 ld.b r0, (r4, 0x2) + 7822: 401c lsli r0, r0, 28 + 7824: 481d lsri r0, r0, 29 + 7826: 3804 cmphsi r0, 5 + 7828: 080a bt 0x783c // 783c + 782a: e3ffca73 bsr 0xd10 // d10 <___gnu_csky_case_shi> + 782e: 0005 .short 0x0005 + 7830: 014b0148 .long 0x014b0148 + 7834: ffba0007 .long 0xffba0007 + Relay_Low(); + 7838: e0000248 bsr 0x7cc8 // 7cc8 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 783c: 1274 lrw r3, 0x2000005c // 798c + 783e: 31ff movi r1, 255 + 7840: 9340 ld.w r2, (r3, 0x0) + 7842: 22ff addi r2, 256 + 7844: 9260 ld.w r3, (r2, 0x0) + 7846: 4130 lsli r1, r1, 16 + 7848: 68c5 andn r3, r1 + 784a: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 784c: 8462 ld.b r3, (r4, 0x2) + 784e: 437c lsli r3, r3, 28 + 7850: 4b7d lsri r3, r3, 29 + 7852: 9220 ld.w r1, (r2, 0x0) + 7854: 4370 lsli r3, r3, 16 + 7856: 6cc4 or r3, r1 + 7858: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 785a: 3301 movi r3, 1 + 785c: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 785e: 9560 ld.w r3, (r5, 0x0) + 7860: 124f lrw r2, 0x20000861 // 799c + 7862: 4b28 lsri r1, r3, 8 + 7864: a260 st.b r3, (r2, 0x0) + 7866: a221 st.b r1, (r2, 0x1) + 7868: 4b30 lsri r1, r3, 16 + 786a: 4b78 lsri r3, r3, 24 + 786c: a222 st.b r1, (r2, 0x2) + 786e: a263 st.b r3, (r2, 0x3) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 7870: 8401 ld.b r0, (r4, 0x1) + 7872: 8465 ld.b r3, (r4, 0x5) + 7874: 640e cmpne r3, r0 + 7876: 0c1f bf 0x78b4 // 78b4 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 7878: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 787a: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 787c: 0927 bt 0x7aca // 7aca + { + Set_Temperature_Display(320); + 787e: 30a0 movi r0, 160 + 7880: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 7882: e3fff437 bsr 0x60f0 // 60f0 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 7886: 1262 lrw r3, 0x2000005c // 798c + 7888: 9360 ld.w r3, (r3, 0x0) + 788a: 23ff addi r3, 256 + 788c: 9340 ld.w r2, (r3, 0x0) + 788e: 4248 lsli r2, r2, 8 + 7890: 4a48 lsri r2, r2, 8 + 7892: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 7894: 8441 ld.b r2, (r4, 0x1) + 7896: 9320 ld.w r1, (r3, 0x0) + 7898: 4258 lsli r2, r2, 24 + 789a: 6c84 or r2, r1 + 789c: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 789e: 3301 movi r3, 1 + 78a0: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 78a2: 9560 ld.w r3, (r5, 0x0) + 78a4: 115e lrw r2, 0x20000861 // 799c + 78a6: 4b28 lsri r1, r3, 8 + 78a8: a260 st.b r3, (r2, 0x0) + 78aa: a221 st.b r1, (r2, 0x1) + 78ac: 4b30 lsri r1, r3, 16 + 78ae: 4b78 lsri r3, r3, 24 + 78b0: a222 st.b r1, (r2, 0x2) + 78b2: a263 st.b r3, (r2, 0x3) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 78b4: 8409 ld.b r0, (r4, 0x9) + 78b6: 8468 ld.b r3, (r4, 0x8) + 78b8: 4008 lsli r0, r0, 8 + 78ba: 6c0c or r0, r3 + 78bc: 846b ld.b r3, (r4, 0xb) + 78be: 844a ld.b r2, (r4, 0xa) + 78c0: 4368 lsli r3, r3, 8 + 78c2: 6cc8 or r3, r2 + 78c4: 640e cmpne r3, r0 + 78c6: 0c12 bf 0x78ea // 78ea + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 78c8: 4868 lsri r3, r0, 8 + 78ca: a46b st.b r3, (r4, 0xb) + 78cc: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 78ce: e3fff479 bsr 0x61c0 // 61c0 + + SYSCON->UREG0 &= 0x00FFFFFF; + 78d2: 116f lrw r3, 0x2000005c // 798c + 78d4: 9360 ld.w r3, (r3, 0x0) + 78d6: 23ff addi r3, 256 + 78d8: 9340 ld.w r2, (r3, 0x0) + 78da: 4248 lsli r2, r2, 8 + 78dc: 4a48 lsri r2, r2, 8 + 78de: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 78e0: 8441 ld.b r2, (r4, 0x1) + 78e2: 9320 ld.w r1, (r3, 0x0) + 78e4: 4258 lsli r2, r2, 24 + 78e6: 6c84 or r2, r1 + 78e8: b340 st.w r2, (r3, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 78ea: 844f ld.b r2, (r4, 0xf) + 78ec: 846e ld.b r3, (r4, 0xe) + 78ee: 4248 lsli r2, r2, 8 + 78f0: 6c8c or r2, r3 + 78f2: 846d ld.b r3, (r4, 0xd) + 78f4: 842c ld.b r1, (r4, 0xc) + 78f6: 4368 lsli r3, r3, 8 + 78f8: 6cc4 or r3, r1 + 78fa: 648c cmphs r3, r2 + 78fc: 0804 bt 0x7904 // 7904 + 78fe: 5a2d subu r1, r2, r3 + 7900: 392a cmplti r1, 11 + 7902: 0c06 bf 0x790e // 790e + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 7904: 64c8 cmphs r2, r3 + 7906: 0812 bt 0x792a // 792a + 7908: 5b49 subu r2, r3, r2 + 790a: 3a2a cmplti r2, 11 + 790c: 080f bt 0x792a // 792a + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 790e: 9540 ld.w r2, (r5, 0x0) + 7910: 1124 lrw r1, 0x2000085d // 79a0 + 7912: 4a08 lsri r0, r2, 8 + 7914: a140 st.b r2, (r1, 0x0) + 7916: a101 st.b r0, (r1, 0x1) + 7918: 4a10 lsri r0, r2, 16 + 791a: 4a58 lsri r2, r2, 24 + 791c: a143 st.b r2, (r1, 0x3) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 791e: 4b48 lsri r2, r3, 8 + 7920: a44f st.b r2, (r4, 0xf) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 7922: 3201 movi r2, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7924: a102 st.b r0, (r1, 0x2) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7926: a46e st.b r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 7928: a640 st.b r2, (r6, 0x0) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 792a: 8602 ld.b r0, (r6, 0x2) + 792c: 8641 ld.b r2, (r6, 0x1) + 792e: 4008 lsli r0, r0, 8 + 7930: 6c08 or r0, r2 + 7932: 8643 ld.b r2, (r6, 0x3) + 7934: 4250 lsli r2, r2, 16 + 7936: 6c08 or r0, r2 + 7938: 8644 ld.b r2, (r6, 0x4) + 793a: 4258 lsli r2, r2, 24 + 793c: 6c80 or r2, r0 + 793e: 9520 ld.w r1, (r5, 0x0) + 7940: 604a subu r1, r2 + 7942: 1059 lrw r2, 0x752f // 79a4 + 7944: 6448 cmphs r2, r1 + 7946: 0831 bt 0x79a8 // 79a8 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 7948: 9540 ld.w r2, (r5, 0x0) + 794a: 1036 lrw r1, 0x2000085d // 79a0 + 794c: 4a08 lsri r0, r2, 8 + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 794e: a46e st.b r3, (r4, 0xe) + 7950: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7952: a140 st.b r2, (r1, 0x0) + 7954: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7956: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7958: 4a10 lsri r0, r2, 16 + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 795a: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 795c: 4a58 lsri r2, r2, 24 + 795e: a102 st.b r0, (r1, 0x2) + 7960: a143 st.b r2, (r1, 0x3) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 7962: a660 st.b r3, (r6, 0x0) + 7964: 0422 br 0x79a8 // 79a8 + 7966: 0000 bkpt + 7968: 20000868 .long 0x20000868 + 796c: 2000083c .long 0x2000083c + 7970: 200000c0 .long 0x200000c0 + 7974: 00000bb8 .long 0x00000bb8 + 7978: 0000ac06 .long 0x0000ac06 + 797c: 0000ac28 .long 0x0000ac28 + 7980: 20000524 .long 0x20000524 + 7984: 00001388 .long 0x00001388 + 7988: 2000085c .long 0x2000085c + 798c: 2000005c .long 0x2000005c + 7990: 20000234 .long 0x20000234 + 7994: 0000ac18 .long 0x0000ac18 + 7998: 0000ac38 .long 0x0000ac38 + 799c: 20000861 .long 0x20000861 + 79a0: 2000085d .long 0x2000085d + 79a4: 0000752f .long 0x0000752f + + } + } + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 79a8: 8462 ld.b r3, (r4, 0x2) + 79aa: 8446 ld.b r2, (r4, 0x6) + 79ac: 4b07 lsri r0, r3, 7 + 79ae: 4a47 lsri r2, r2, 7 + 79b0: 640a cmpne r2, r0 + 79b2: 0c31 bf 0x7a14 // 7a14 + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ + 79b4: 74ce sextb r3, r3 + 79b6: 3bdf btsti r3, 31 + 79b8: 1267 lrw r3, 0x200005e0 // 7ad4 + 79ba: 0c8b bf 0x7ad0 // 7ad0 + OpenDisPlay_Flag = 1; //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 79bc: 1247 lrw r2, 0x20000234 // 7ad8 + 79be: 3101 movi r1, 1 + 79c0: a220 st.b r1, (r2, 0x0) + HT1621.buz_ctrl_flag = 0x01; + 79c2: 3201 movi r2, 1 + }else{ + HT1621.buz_ctrl_flag = 0x00; + 79c4: a345 st.b r2, (r3, 0x5) + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 79c6: 317f movi r1, 127 + 79c8: 8466 ld.b r3, (r4, 0x6) + 79ca: 4047 lsli r2, r0, 7 + 79cc: 68c4 and r3, r1 + 79ce: 6cc8 or r3, r2 + 79d0: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 79d2: e3fff65f bsr 0x6690 // 6690 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 79d6: 8402 ld.b r0, (r4, 0x2) + 79d8: 4807 lsri r0, r0, 7 + 79da: e3fff6c9 bsr 0x676c // 676c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 79de: 8402 ld.b r0, (r4, 0x2) + 79e0: 4807 lsri r0, r0, 7 + 79e2: e3fffddb bsr 0x7598 // 7598 + + + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 79e6: 117e lrw r3, 0x2000005c // 7adc + 79e8: 31ff movi r1, 255 + 79ea: 9340 ld.w r2, (r3, 0x0) + 79ec: 22ff addi r2, 256 + 79ee: 9260 ld.w r3, (r2, 0x0) + 79f0: 68c5 andn r3, r1 + 79f2: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 79f4: 8462 ld.b r3, (r4, 0x2) + 79f6: 9220 ld.w r1, (r2, 0x0) + 79f8: 4b67 lsri r3, r3, 7 + 79fa: 6cc4 or r3, r1 + 79fc: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 79fe: 3301 movi r3, 1 + 7a00: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a02: 9560 ld.w r3, (r5, 0x0) + 7a04: 1157 lrw r2, 0x20000861 // 7ae0 + 7a06: 4b28 lsri r1, r3, 8 + 7a08: a260 st.b r3, (r2, 0x0) + 7a0a: a221 st.b r1, (r2, 0x1) + 7a0c: 4b30 lsri r1, r3, 16 + 7a0e: 4b78 lsri r3, r3, 24 + 7a10: a222 st.b r1, (r2, 0x2) + 7a12: a263 st.b r3, (r2, 0x3) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 7a14: 8660 ld.b r3, (r6, 0x0) + 7a16: 3b41 cmpnei r3, 1 + 7a18: 082b bt 0x7a6e // 7a6e + 7a1a: 8646 ld.b r2, (r6, 0x6) + 7a1c: 8665 ld.b r3, (r6, 0x5) + 7a1e: 4248 lsli r2, r2, 8 + 7a20: 6c8c or r2, r3 + 7a22: 8667 ld.b r3, (r6, 0x7) + 7a24: 4370 lsli r3, r3, 16 + 7a26: 6c8c or r2, r3 + 7a28: 8668 ld.b r3, (r6, 0x8) + 7a2a: 4378 lsli r3, r3, 24 + 7a2c: 6cc8 or r3, r2 + 7a2e: 9520 ld.w r1, (r5, 0x0) + 7a30: 604e subu r1, r3 + 7a32: 116d lrw r3, 0x3e7 // 7ae4 + 7a34: 644c cmphs r3, r1 + 7a36: 081c bt 0x7a6e // 7a6e + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a38: 9560 ld.w r3, (r5, 0x0) + 7a3a: 114a lrw r2, 0x20000861 // 7ae0 + 7a3c: 4b28 lsri r1, r3, 8 + 7a3e: a260 st.b r3, (r2, 0x0) + 7a40: a221 st.b r1, (r2, 0x1) + 7a42: 4b30 lsri r1, r3, 16 + 7a44: 4b78 lsri r3, r3, 24 + 7a46: a263 st.b r3, (r2, 0x3) + TempCtrl.TempChange_Flag = 0x00; + 7a48: 3300 movi r3, 0 + 7a4a: a660 st.b r3, (r6, 0x0) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a4c: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a4e: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a50: 1146 lrw r2, 0x2000085d // 7ae8 + 7a52: 4b28 lsri r1, r3, 8 + 7a54: a260 st.b r3, (r2, 0x0) + 7a56: a221 st.b r1, (r2, 0x1) + 7a58: 4b30 lsri r1, r3, 16 + 7a5a: 4b78 lsri r3, r3, 24 + 7a5c: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7a5e: 8767 ld.b r3, (r7, 0x7) + 7a60: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a62: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7a64: 0805 bt 0x7a6e // 7a6e + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 7a66: 30fa movi r0, 250 + 7a68: 4002 lsli r0, r0, 2 + 7a6a: e0000255 bsr 0x7f14 // 7f14 + } + + } + + // 状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 7a6e: 8646 ld.b r2, (r6, 0x6) + 7a70: 8665 ld.b r3, (r6, 0x5) + 7a72: 4248 lsli r2, r2, 8 + 7a74: 6c8c or r2, r3 + 7a76: 8667 ld.b r3, (r6, 0x7) + 7a78: 4370 lsli r3, r3, 16 + 7a7a: 6c8c or r2, r3 + 7a7c: 8668 ld.b r3, (r6, 0x8) + 7a7e: 4378 lsli r3, r3, 24 + 7a80: 6cc8 or r3, r2 + 7a82: 9520 ld.w r1, (r5, 0x0) + 7a84: 604e subu r1, r3 + 7a86: 107a lrw r3, 0x493df // 7aec + 7a88: 644c cmphs r3, r1 + 7a8a: 0819 bt 0x7abc // 7abc + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a8c: 9560 ld.w r3, (r5, 0x0) + 7a8e: 1055 lrw r2, 0x20000861 // 7ae0 + 7a90: 4b28 lsri r1, r3, 8 + 7a92: a260 st.b r3, (r2, 0x0) + 7a94: a221 st.b r1, (r2, 0x1) + 7a96: 4b30 lsri r1, r3, 16 + 7a98: 4b78 lsri r3, r3, 24 + 7a9a: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a9c: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a9e: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7aa0: 1052 lrw r2, 0x2000085d // 7ae8 + 7aa2: 4b28 lsri r1, r3, 8 + 7aa4: a260 st.b r3, (r2, 0x0) + 7aa6: a221 st.b r1, (r2, 0x1) + 7aa8: 4b30 lsri r1, r3, 16 + 7aaa: 4b78 lsri r3, r3, 24 + 7aac: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7aae: 8767 ld.b r3, (r7, 0x7) + 7ab0: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7ab2: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7ab4: 0804 bt 0x7abc // 7abc + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 7ab6: 100f lrw r0, 0xea60 // 7af0 + 7ab8: e000022e bsr 0x7f14 // 7f14 + } + } + } +} + 7abc: 1494 pop r4-r7, r15 + Relay_Mid(); + 7abe: e00000f7 bsr 0x7cac // 7cac + break; + 7ac2: 06bd br 0x783c // 783c + Relay_High(); + 7ac4: e00000e6 bsr 0x7c90 // 7c90 + break; + 7ac8: 06ba br 0x783c // 783c + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 7aca: 330a movi r3, 10 + 7acc: 7c0c mult r0, r3 + 7ace: 06da br 0x7882 // 7882 + HT1621.buz_ctrl_flag = 0x00; + 7ad0: 3200 movi r2, 0 + 7ad2: 0779 br 0x79c4 // 79c4 + 7ad4: 200005e0 .long 0x200005e0 + 7ad8: 20000234 .long 0x20000234 + 7adc: 2000005c .long 0x2000005c + 7ae0: 20000861 .long 0x20000861 + 7ae4: 000003e7 .long 0x000003e7 + 7ae8: 2000085d .long 0x2000085d + 7aec: 000493df .long 0x000493df + 7af0: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Debug_Init: + +00007af4 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 7af4: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 7af6: 108d lrw r4, 0x20000868 // 7b28 + 7af8: 3210 movi r2, 16 + 7afa: 3100 movi r1, 0 + 7afc: 6c13 mov r0, r4 + 7afe: e3ffd0a1 bsr 0x1c40 // 1c40 <__memset_fast> + Debug_Inf.Page = 0x01; + 7b02: 3301 movi r3, 1 + 7b04: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 7b06: 106a lrw r3, 0x20000524 // 7b2c + 7b08: 8340 ld.b r2, (r3, 0x0) + 7b0a: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 7b0c: 8341 ld.b r2, (r3, 0x1) + 7b0e: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 7b10: 8342 ld.b r2, (r3, 0x2) + 7b12: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 7b14: 8344 ld.b r2, (r3, 0x4) + 7b16: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 7b18: 8345 ld.b r2, (r3, 0x5) + 7b1a: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7b1c: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 7b1e: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7b20: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 7b22: a469 st.b r3, (r4, 0x9) + + +} + 7b24: 1491 pop r4, r15 + 7b26: 0000 bkpt + 7b28: 20000868 .long 0x20000868 + 7b2c: 20000524 .long 0x20000524 + +Disassembly of section .text.Dev_SaveData: + +00007b30 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 7b30: 14d1 push r4, r15 + 7b32: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 7b34: 1165 lrw r3, 0x20000868 // 7bc8 + 7b36: 1186 lrw r4, 0x20000524 // 7bcc + 7b38: 8343 ld.b r2, (r3, 0x3) + 7b3a: 8420 ld.b r1, (r4, 0x0) + 7b3c: 6486 cmpne r1, r2 + 7b3e: 0819 bt 0x7b70 // 7b70 + 7b40: 8304 ld.b r0, (r3, 0x4) + 7b42: 8421 ld.b r1, (r4, 0x1) + 7b44: 6442 cmpne r0, r1 + 7b46: 0815 bt 0x7b70 // 7b70 + 7b48: 8305 ld.b r0, (r3, 0x5) + 7b4a: 8422 ld.b r1, (r4, 0x2) + 7b4c: 6442 cmpne r0, r1 + 7b4e: 0811 bt 0x7b70 // 7b70 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 7b50: 8306 ld.b r0, (r3, 0x6) + 7b52: 8424 ld.b r1, (r4, 0x4) + 7b54: 6442 cmpne r0, r1 + 7b56: 080d bt 0x7b70 // 7b70 + 7b58: 8307 ld.b r0, (r3, 0x7) + 7b5a: 8425 ld.b r1, (r4, 0x5) + 7b5c: 6442 cmpne r0, r1 + 7b5e: 0809 bt 0x7b70 // 7b70 + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 7b60: 8308 ld.b r0, (r3, 0x8) + 7b62: 8423 ld.b r1, (r4, 0x3) + 7b64: 6442 cmpne r0, r1 + 7b66: 0805 bt 0x7b70 // 7b70 + 7b68: 8309 ld.b r0, (r3, 0x9) + 7b6a: 8426 ld.b r1, (r4, 0x6) + 7b6c: 6442 cmpne r0, r1 + 7b6e: 0c2b bf 0x7bc4 // 7bc4 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 7b70: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 7b72: 8344 ld.b r2, (r3, 0x4) + 7b74: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 7b76: 8345 ld.b r2, (r3, 0x5) + 7b78: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 7b7a: 8346 ld.b r2, (r3, 0x6) + 7b7c: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 7b7e: 8347 ld.b r2, (r3, 0x7) + 7b80: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7b82: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 7b84: 1012 lrw r0, 0x20000524 // 7bcc + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7b86: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7b88: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7b8a: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 7b8c: e3ffe7d6 bsr 0x4b38 // 4b38 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 7b90: 8425 ld.b r1, (r4, 0x5) + 7b92: b822 st.w r1, (r14, 0x8) + 7b94: 8424 ld.b r1, (r4, 0x4) + 7b96: b821 st.w r1, (r14, 0x4) + 7b98: 8422 ld.b r1, (r4, 0x2) + 7b9a: 8461 ld.b r3, (r4, 0x1) + 7b9c: 8440 ld.b r2, (r4, 0x0) + 7b9e: b820 st.w r1, (r14, 0x0) + 7ba0: 3000 movi r0, 0 + 7ba2: 102c lrw r1, 0xac4b // 7bd0 + 7ba4: e3ffe2b2 bsr 0x4108 // 4108 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 7ba8: 8466 ld.b r3, (r4, 0x6) + 7baa: 8443 ld.b r2, (r4, 0x3) + 7bac: 3000 movi r0, 0 + 7bae: 102a lrw r1, 0xac97 // 7bd4 + 7bb0: e3ffe2ac bsr 0x4108 // 4108 + g_eeprom.temp_select,g_eeprom.langue_select); + + //boot + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 7bb4: 1009 lrw r0, 0x2000052c // 7bd8 + 7bb6: 8460 ld.b r3, (r4, 0x0) + 7bb8: 8040 ld.b r2, (r0, 0x0) + 7bba: 64ca cmpne r2, r3 + 7bbc: 0c04 bf 0x7bc4 // 7bc4 + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 7bbe: a060 st.b r3, (r0, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 7bc0: e3ffe9e0 bsr 0x4f80 // 4f80 + } + + } +} + 7bc4: 1403 addi r14, r14, 12 + 7bc6: 1491 pop r4, r15 + 7bc8: 20000868 .long 0x20000868 + 7bcc: 20000524 .long 0x20000524 + 7bd0: 0000ac4b .long 0x0000ac4b + 7bd4: 0000ac97 .long 0x0000ac97 + 7bd8: 2000052c .long 0x2000052c + +Disassembly of section .text.Debug_Task: + +00007bdc : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 7bdc: 14d0 push r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 7bde: 1074 lrw r3, 0x20000868 // 7c2c + 7be0: 8340 ld.b r2, (r3, 0x0) + 7be2: 3a41 cmpnei r2, 1 + 7be4: 0822 bt 0x7c28 // 7c28 + 7be6: 1033 lrw r1, 0x200000c0 // 7c30 + 7be8: 9140 ld.w r2, (r1, 0x0) + 7bea: 9303 ld.w r0, (r3, 0xc) + 7bec: 6082 subu r2, r0 + 7bee: 1012 lrw r0, 0x2710 // 7c34 + 7bf0: 6480 cmphs r0, r2 + 7bf2: 081b bt 0x7c28 // 7c28 + 7bf4: 8342 ld.b r2, (r3, 0x2) + 7bf6: 3a48 cmpnei r2, 8 + 7bf8: 0c18 bf 0x7c28 // 7c28 + { + Debug_Inf.Tick = SysTick_1ms; + 7bfa: 9140 ld.w r2, (r1, 0x0) + 7bfc: b343 st.w r2, (r3, 0xc) + Debug_Inf.State = 0x00; + 7bfe: 3200 movi r2, 0 + 7c00: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 7c02: 3201 movi r2, 1 + 7c04: a342 st.b r2, (r3, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 7c06: 106d lrw r3, 0x200005e0 // 7c38 + 7c08: 3200 movi r2, 0 + 7c0a: a345 st.b r2, (r3, 0x5) + + Dev_SaveData(); + 7c0c: e3ffff92 bsr 0x7b30 // 7b30 + + HT1621_Clear(); + 7c10: e3fff202 bsr 0x6014 // 6014 + //关背光 + Controlled_LCD_Backlight(0x00); + 7c14: 3000 movi r0, 0 + 7c16: e3fff53d bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7c1a: 3000 movi r0, 0 + 7c1c: e3fff5a8 bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 7c20: 1027 lrw r1, 0xacc7 // 7c3c + 7c22: 3000 movi r0, 0 + 7c24: e3ffe272 bsr 0x4108 // 4108 + } + 7c28: 1490 pop r15 + 7c2a: 0000 bkpt + 7c2c: 20000868 .long 0x20000868 + 7c30: 200000c0 .long 0x200000c0 + 7c34: 00002710 .long 0x00002710 + 7c38: 200005e0 .long 0x200005e0 + 7c3c: 0000acc7 .long 0x0000acc7 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00007c40 : + * @brief 产生继电器控制动作检测 + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7c40: 14d3 push r4-r6, r15 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + if(rly_id >= RLY_MAX) return; + + if(c_rly.rly_state[rly_id] != state) + 7c42: 10a9 lrw r5, 0x20000878 // 7c64 + 7c44: 5d80 addu r4, r5, r0 + 7c46: 8463 ld.b r3, (r4, 0x3) + 7c48: 644e cmpne r3, r1 +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7c4a: 6d87 mov r6, r1 + if(c_rly.rly_state[rly_id] != state) + 7c4c: 0c0b bf 0x7c62 // 7c62 + { + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7c4e: e3ffe02a bsr 0x3ca2 // 3ca2 + c_rly.rly_state[rly_id] = state; + if(c_rly.rly_zero == UNZEROCROSSING){ + 7c52: 8560 ld.b r3, (r5, 0x0) + c_rly.rly_control = 0x02; + 7c54: 3b40 cmpnei r3, 0 + 7c56: 64c3 mvcv r3 + 7c58: 2300 addi r3, 1 + c_rly.rly_state[rly_id] = state; + 7c5a: a4c3 st.b r6, (r4, 0x3) + c_rly.rly_control = 0x02; + 7c5c: a562 st.b r3, (r5, 0x2) + }else{ + c_rly.rly_control = 0x01; + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7c5e: e3ffe01f bsr 0x3c9c // 3c9c + } +} + 7c62: 1493 pop r4-r6, r15 + 7c64: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_Init: + +00007c68 : +{ + 7c68: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 7c6a: 1088 lrw r4, 0x200005a4 // 7c88 + 7c6c: 321c movi r2, 28 + 7c6e: 3100 movi r1, 0 + 7c70: 6c13 mov r0, r4 + 7c72: e3ffcfe7 bsr 0x1c40 // 1c40 <__memset_fast> + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 7c76: 320c movi r2, 12 + 7c78: 3100 movi r1, 0 + 7c7a: 1005 lrw r0, 0x20000878 // 7c8c + 7c7c: e3ffcfe2 bsr 0x1c40 // 1c40 <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 7c80: 3301 movi r3, 1 + 7c82: a462 st.b r3, (r4, 0x2) +} + 7c84: 1491 pop r4, r15 + 7c86: 0000 bkpt + 7c88: 200005a4 .long 0x200005a4 + 7c8c: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_High: + +00007c90 : +{ + 7c90: 14d0 push r15 + 7c92: 3101 movi r1, 1 + 7c94: 3002 movi r0, 2 + 7c96: e3ffffd5 bsr 0x7c40 // 7c40 + 7c9a: 3102 movi r1, 2 + 7c9c: 3003 movi r0, 3 + 7c9e: e3ffffd1 bsr 0x7c40 // 7c40 + 7ca2: 3102 movi r1, 2 + 7ca4: 3004 movi r0, 4 + 7ca6: e3ffffcd bsr 0x7c40 // 7c40 +} + 7caa: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +00007cac : +{ + 7cac: 14d0 push r15 + 7cae: 3102 movi r1, 2 + 7cb0: 3002 movi r0, 2 + 7cb2: e3ffffc7 bsr 0x7c40 // 7c40 + 7cb6: 3101 movi r1, 1 + 7cb8: 3003 movi r0, 3 + 7cba: e3ffffc3 bsr 0x7c40 // 7c40 + 7cbe: 3102 movi r1, 2 + 7cc0: 3004 movi r0, 4 + 7cc2: e3ffffbf bsr 0x7c40 // 7c40 +} + 7cc6: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +00007cc8 : +{ + 7cc8: 14d0 push r15 + 7cca: 3102 movi r1, 2 + 7ccc: 3002 movi r0, 2 + 7cce: e3ffffb9 bsr 0x7c40 // 7c40 + 7cd2: 3102 movi r1, 2 + 7cd4: 3003 movi r0, 3 + 7cd6: e3ffffb5 bsr 0x7c40 // 7c40 + 7cda: 3101 movi r1, 1 + 7cdc: 3004 movi r0, 4 + 7cde: e3ffffb1 bsr 0x7c40 // 7c40 +} + 7ce2: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +00007ce4 : +{ + 7ce4: 14d0 push r15 + 7ce6: 3102 movi r1, 2 + 7ce8: 3002 movi r0, 2 + 7cea: e3ffffab bsr 0x7c40 // 7c40 + 7cee: 3102 movi r1, 2 + 7cf0: 3003 movi r0, 3 + 7cf2: e3ffffa7 bsr 0x7c40 // 7c40 + 7cf6: 3102 movi r1, 2 + 7cf8: 3004 movi r0, 4 + 7cfa: e3ffffa3 bsr 0x7c40 // 7c40 +} + 7cfe: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00007d00 : +{ + 7d00: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + 7d02: 5963 subi r3, r1, 1 + 7d04: 74cc zextb r3, r3 + 7d06: 3b01 cmphsi r3, 2 + 7d08: 0805 bt 0x7d12 // 7d12 + if(rly_id >= RLY_MAX) return; + 7d0a: 3804 cmphsi r0, 5 + 7d0c: 0803 bt 0x7d12 // 7d12 + 7d0e: e3ffff99 bsr 0x7c40 // 7c40 +} + 7d12: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +00007d14 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + 7d14: 14d2 push r4-r5, r15 + if(SysTick_1ms - c_rly.ZCrossing_tick >= 50)// 50ms + 7d16: 1150 lrw r2, 0x200000c0 // 7dd4 + 7d18: 1190 lrw r4, 0x20000878 // 7dd8 + 7d1a: 9260 ld.w r3, (r2, 0x0) + 7d1c: 9422 ld.w r1, (r4, 0x8) + 7d1e: 60c6 subu r3, r1 + 7d20: 3131 movi r1, 49 + 7d22: 64c4 cmphs r1, r3 + 7d24: 0810 bt 0x7d44 // 7d44 + { + c_rly.ZCrossing_tick = SysTick_1ms; + 7d26: 9260 ld.w r3, (r2, 0x0) + 7d28: b462 st.w r3, (r4, 0x8) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7d2a: e3ffdfbc bsr 0x3ca2 // 3ca2 + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5) ){ //有过零信号 + 7d2e: 8461 ld.b r3, (r4, 0x1) + 7d30: 2b01 subi r3, 2 + 7d32: 74cc zextb r3, r3 + 7d34: 3b03 cmphsi r3, 4 + 7d36: 0812 bt 0x7d5a // 7d5a + c_rly.rly_zero = ZEROCROSSING; + 7d38: 3301 movi r3, 1 + 7d3a: a460 st.b r3, (r4, 0x0) + c_rly.rly_zCnt = 0; + 7d3c: 3300 movi r3, 0 + }else { //无过零信号 + c_rly.rly_zero = UNZEROCROSSING; + c_rly.rly_zCnt = 0; + 7d3e: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7d40: e3ffdfae bsr 0x3c9c // 3c9c + } + + if(c_rly.rly_control != 0x02) return; + 7d44: 8462 ld.b r3, (r4, 0x2) + 7d46: 3b42 cmpnei r3, 2 + 7d48: 0819 bt 0x7d7a // 7d7a + 7d4a: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 7d4c: 5d03 subi r0, r5, 1 + 7d4e: 3803 cmphsi r0, 4 + 7d50: 0808 bt 0x7d60 // 7d60 + 7d52: e3ffc7d5 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7d56: 2117 .short 0x2117 + 7d58: 352b .short 0x352b + c_rly.rly_zero = UNZEROCROSSING; + 7d5a: 3300 movi r3, 0 + 7d5c: a460 st.b r3, (r4, 0x0) + 7d5e: 07f0 br 0x7d3e // 7d3e + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7d60: 8463 ld.b r3, (r4, 0x3) + 7d62: 3b41 cmpnei r3, 1 + 7d64: 080c bt 0x7d7c // 7d7c + RLY1_HOT_OPEN; + 7d66: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7d68: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7d6a: e3fff057 bsr 0x5e18 // 5e18 + for (U8_T i = 0; i < RLY_MAX; i++) { + 7d6e: 2500 addi r5, 1 + 7d70: 7554 zextb r5, r5 + 7d72: 3d45 cmpnei r5, 5 + 7d74: 0bec bt 0x7d4c // 7d4c + } + break; + } + } + + c_rly.rly_control = 0x00; + 7d76: 3300 movi r3, 0 + 7d78: a462 st.b r3, (r4, 0x2) +} + 7d7a: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7d7c: 3b42 cmpnei r3, 2 + 7d7e: 0bf8 bt 0x7d6e // 7d6e + RLY1_HOT_CLOSE; + 7d80: 3101 movi r1, 1 + 7d82: 07f3 br 0x7d68 // 7d68 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7d84: 8464 ld.b r3, (r4, 0x4) + 7d86: 3b41 cmpnei r3, 1 + 7d88: 0804 bt 0x7d90 // 7d90 + RLY2_COLD_OPEN; + 7d8a: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7d8c: 3013 movi r0, 19 + 7d8e: 07ee br 0x7d6a // 7d6a + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7d90: 3b42 cmpnei r3, 2 + 7d92: 0bee bt 0x7d6e // 7d6e + RLY2_COLD_CLOSE; + 7d94: 3101 movi r1, 1 + 7d96: 07fb br 0x7d8c // 7d8c + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7d98: 8465 ld.b r3, (r4, 0x5) + 7d9a: 3b41 cmpnei r3, 1 + 7d9c: 0804 bt 0x7da4 // 7da4 + RLY3_HIGH_OPEN; + 7d9e: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7da0: 3014 movi r0, 20 + 7da2: 07e4 br 0x7d6a // 7d6a + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 7da4: 3b42 cmpnei r3, 2 + 7da6: 0be4 bt 0x7d6e // 7d6e + RLY3_HIGH_CLOSE; + 7da8: 3101 movi r1, 1 + 7daa: 07fb br 0x7da0 // 7da0 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7dac: 8466 ld.b r3, (r4, 0x6) + 7dae: 3b41 cmpnei r3, 1 + 7db0: 0804 bt 0x7db8 // 7db8 + RLY4_MID_OPEN; + 7db2: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7db4: 3015 movi r0, 21 + 7db6: 07da br 0x7d6a // 7d6a + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7db8: 3b42 cmpnei r3, 2 + 7dba: 0bda bt 0x7d6e // 7d6e + RLY4_MID_CLOSE; + 7dbc: 3101 movi r1, 1 + 7dbe: 07fb br 0x7db4 // 7db4 + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 7dc0: 8467 ld.b r3, (r4, 0x7) + 7dc2: 3b41 cmpnei r3, 1 + 7dc4: 0804 bt 0x7dcc // 7dcc + RLY5_LOW_OPEN; + 7dc6: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7dc8: 3016 movi r0, 22 + 7dca: 07d0 br 0x7d6a // 7d6a + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7dcc: 3b42 cmpnei r3, 2 + 7dce: 0bd0 bt 0x7d6e // 7d6e + RLY5_LOW_CLOSE; + 7dd0: 3101 movi r1, 1 + 7dd2: 07fb br 0x7dc8 // 7dc8 + 7dd4: 200000c0 .long 0x200000c0 + 7dd8: 20000878 .long 0x20000878 + +Disassembly of section .text.RLY_Zero_Control: + +00007ddc : + * @brief 有过零信号控制继电器,在中断中调用 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + 7ddc: 14d2 push r4-r5, r15 + if(c_rly.rly_control != 0x01) return; + 7dde: 1185 lrw r4, 0x20000878 // 7e70 + 7de0: 8462 ld.b r3, (r4, 0x2) + 7de2: 3b41 cmpnei r3, 1 + 7de4: 0818 bt 0x7e14 // 7e14 + 7de6: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 7de8: 5d03 subi r0, r5, 1 + 7dea: 3803 cmphsi r0, 4 + 7dec: 0805 bt 0x7df6 // 7df6 + 7dee: e3ffc787 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7df2: 2016 .short 0x2016 + 7df4: 342a .short 0x342a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7df6: 8463 ld.b r3, (r4, 0x3) + 7df8: 3b41 cmpnei r3, 1 + 7dfa: 080e bt 0x7e16 // 7e16 + RLY1_HOT_OPEN; + 7dfc: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7dfe: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7e00: e3fff00c bsr 0x5e18 // 5e18 + for (U8_T i = 0; i < RLY_MAX; i++) { + 7e04: 2500 addi r5, 1 + 7e06: 7554 zextb r5, r5 + 7e08: 3d45 cmpnei r5, 5 + 7e0a: 0bef bt 0x7de8 // 7de8 + break; + } + + } + + TimeCall_SIO_Send2(); + 7e0c: e3ffef3a bsr 0x5c80 // 5c80 + + c_rly.rly_control = 0x00; + 7e10: 3300 movi r3, 0 + 7e12: a462 st.b r3, (r4, 0x2) + 7e14: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7e16: 3b42 cmpnei r3, 2 + 7e18: 0bf6 bt 0x7e04 // 7e04 + RLY1_HOT_CLOSE; + 7e1a: 3101 movi r1, 1 + 7e1c: 07f1 br 0x7dfe // 7dfe + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7e1e: 8464 ld.b r3, (r4, 0x4) + 7e20: 3b41 cmpnei r3, 1 + 7e22: 0804 bt 0x7e2a // 7e2a + RLY2_COLD_OPEN; + 7e24: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7e26: 3013 movi r0, 19 + 7e28: 07ec br 0x7e00 // 7e00 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7e2a: 3b42 cmpnei r3, 2 + 7e2c: 0bec bt 0x7e04 // 7e04 + RLY2_COLD_CLOSE; + 7e2e: 3101 movi r1, 1 + 7e30: 07fb br 0x7e26 // 7e26 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7e32: 8465 ld.b r3, (r4, 0x5) + 7e34: 3b41 cmpnei r3, 1 + 7e36: 0804 bt 0x7e3e // 7e3e + RLY3_HIGH_OPEN; + 7e38: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7e3a: 3014 movi r0, 20 + 7e3c: 07e2 br 0x7e00 // 7e00 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 7e3e: 3b42 cmpnei r3, 2 + 7e40: 0be2 bt 0x7e04 // 7e04 + RLY3_HIGH_CLOSE; + 7e42: 3101 movi r1, 1 + 7e44: 07fb br 0x7e3a // 7e3a + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7e46: 8466 ld.b r3, (r4, 0x6) + 7e48: 3b41 cmpnei r3, 1 + 7e4a: 0804 bt 0x7e52 // 7e52 + RLY4_MID_OPEN; + 7e4c: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7e4e: 3015 movi r0, 21 + 7e50: 07d8 br 0x7e00 // 7e00 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7e52: 3b42 cmpnei r3, 2 + 7e54: 0bd8 bt 0x7e04 // 7e04 + RLY4_MID_CLOSE; + 7e56: 3101 movi r1, 1 + 7e58: 07fb br 0x7e4e // 7e4e + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 7e5a: 8467 ld.b r3, (r4, 0x7) + 7e5c: 3b41 cmpnei r3, 1 + 7e5e: 0804 bt 0x7e66 // 7e66 + RLY5_LOW_OPEN; + 7e60: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7e62: 3016 movi r0, 22 + 7e64: 07ce br 0x7e00 // 7e00 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7e66: 3b42 cmpnei r3, 2 + 7e68: 0bce bt 0x7e04 // 7e04 + RLY5_LOW_CLOSE; + 7e6a: 3101 movi r1, 1 + 7e6c: 07fb br 0x7e62 // 7e62 + 7e6e: 0000 bkpt + 7e70: 20000878 .long 0x20000878 + +Disassembly of section .text.NetCRC16_Check: + +00007e74 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + 7e74: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7e76: 3902 cmphsi r1, 3 + 7e78: 0c1f bf 0x7eb6 // 7eb6 + U16_T alen = len-2; //CRC16??????? + 7e7a: 2901 subi r1, 2 + 7e7c: 7445 zexth r1, r1 + 7e7e: 6d43 mov r5, r0 + 7e80: 3200 movi r2, 0 + 7e82: 106e lrw r3, 0xffff // 7eb8 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 7e8c: 6d8f mov r6, r3 + 7e8e: 699c and r6, r7 + 7e90: 3e40 cmpnei r6, 0 + 7e92: 4b61 lsri r3, r3, 1 + 7e94: 0c04 bf 0x7e9c // 7e9c + 7e96: 10ca lrw r6, 0xffffa001 // 7ebc + 7e98: 6cd9 xor r3, r6 + 7e9a: 74cd zexth r3, r3 + 7e9c: 2c00 subi r4, 1 + 7e9e: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 7ea0: 3c40 cmpnei r4, 0 + 7ea2: 0bf5 bt 0x7e8c // 7e8c + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 7eae: 6040 addu r1, r0 + 7eb0: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 7eb2: 4b68 lsri r3, r3, 8 + 7eb4: a161 st.b r3, (r1, 0x1) +} + 7eb6: 1484 pop r4-r7 + 7eb8: 0000ffff .long 0x0000ffff + 7ebc: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00007ec0 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 7ec0: 14c3 push r4-r6 + 7ec2: 6cc3 mov r3, r0 + 7ec4: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 7ec6: 10ac lrw r5, 0xffffa001 // 7ef4 + xda = 0xFFFF ; + 7ec8: 100c lrw r0, 0xffff // 7ef8 + for (i = 0; i < len; i++) + 7eca: 644e cmpne r3, r1 + 7ecc: 0802 bt 0x7ed0 // 7ed0 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 7ece: 1483 pop r4-r6 + xda ^= aStr[i] ; + 7ed0: 8340 ld.b r2, (r3, 0x0) + 7ed2: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 7ed4: 3601 movi r6, 1 + xda ^= aStr[i] ; + 7ed6: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 7ed8: 6d03 mov r4, r0 + 7eda: 6918 and r4, r6 + 7edc: 3c40 cmpnei r4, 0 + 7ede: 4801 lsri r0, r0, 1 + 7ee0: 0c03 bf 0x7ee6 // 7ee6 + 7ee2: 6c15 xor r0, r5 + 7ee4: 7401 zexth r0, r0 + 7ee6: 2a00 subi r2, 1 + 7ee8: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 7eea: 3a40 cmpnei r2, 0 + 7eec: 0bf6 bt 0x7ed8 // 7ed8 + 7eee: 2300 addi r3, 1 + 7ef0: 07ed br 0x7eca // 7eca + 7ef2: 0000 bkpt + 7ef4: ffffa001 .long 0xffffa001 + 7ef8: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00007efc : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 7efc: 6cc3 mov r3, r0 + 7efe: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 7f00: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 7f02: 644e cmpne r3, r1 + 7f04: 0802 bt 0x7f08 // 7f08 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7f06: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7f08: 8340 ld.b r2, (r3, 0x0) + 7f0a: 6008 addu r0, r2 + 7f0c: 7400 zextb r0, r0 + 7f0e: 2300 addi r3, 1 + 7f10: 07f9 br 0x7f02 // 7f02 + +Disassembly of section .text.Rs485_ASend: + +00007f14 : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 7f14: 14d1 push r4, r15 + 7f16: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7f18: 117f lrw r3, 0x20000524 // 8014 + 7f1a: 8347 ld.b r2, (r3, 0x7) + 7f1c: 3a42 cmpnei r2, 2 +{ + 7f1e: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7f20: 0870 bt 0x8000 // 8000 + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7f22: 3255 movi r2, 85 + 7f24: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + 7f28: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + 7f2c: 3200 movi r2, 0 + 7f2e: 2a11 subi r2, 18 + 7f30: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + 7f34: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + 7f36: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + 7f38: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7f3c: 3203 movi r2, 3 + 7f3e: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 7f42: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7f46: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7f48: 1154 lrw r2, 0x2000083c // 8018 + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7f4a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7f4e: 8262 ld.b r3, (r2, 0x2) + 7f50: 4b27 lsri r1, r3, 7 + 7f52: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 7f56: 3100 movi r1, 0 + 7f58: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 7f5c: 3170 movi r1, 112 + 7f5e: 68c4 and r3, r1 + 7f60: 3b40 cmpnei r3, 0 + 7f62: 081a bt 0x7f96 // 7f96 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 7f64: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7f66: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7f6a: 8261 ld.b r3, (r2, 0x1) + 7f6c: 3b40 cmpnei r3, 0 + 7f6e: 0802 bt 0x7f72 // 7f72 + 7f70: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f72: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7f74: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f78: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7f7a: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f7c: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7f7e: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f82: 3304 movi r3, 4 + 7f84: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + 7f86: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f88: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 7f8c: 0842 bt 0x8010 // 8010 + 7f8e: e3ffc6b7 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7f92: 390c .short 0x390c + 7f94: 3d3b .short 0x3d3b + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 7f96: 3120 movi r1, 32 + 7f98: 644e cmpne r3, r1 + 7f9a: 0803 bt 0x7fa0 // 7fa0 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 7f9c: 3302 movi r3, 2 + 7f9e: 07e4 br 0x7f66 // 7f66 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 7fa0: 3140 movi r1, 64 + 7fa2: 644e cmpne r3, r1 + 7fa4: 0be3 bt 0x7f6a // 7f6a + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7fa6: 3303 movi r3, 3 + 7fa8: 07df br 0x7f66 // 7f66 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 7faa: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fac: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + 7fae: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fb2: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 7fb4: 3300 movi r3, 0 + 7fb6: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 7fba: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fbe: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 7fc0: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 7fc4: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 7fc8: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7fcc: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fce: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7fd0: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fd2: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7fd6: 0802 bt 0x7fda // 7fda + 7fd8: 3320 movi r3, 32 + 7fda: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 7fde: 3300 movi r3, 0 + 7fe0: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7fe4: 1b01 addi r3, r14, 4 + 7fe6: 5b0a addi r0, r3, 3 + 7fe8: 3115 movi r1, 21 + 7fea: e3ffff45 bsr 0x7e74 // 7e74 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 7fee: 3396 movi r3, 150 + 7ff0: 4361 lsli r3, r3, 1 + 7ff2: b860 st.w r3, (r14, 0x0) + 7ff4: 3201 movi r2, 1 + 7ff6: 6cd3 mov r3, r4 + 7ff8: 3118 movi r1, 24 + 7ffa: 1801 addi r0, r14, 4 + 7ffc: e3ffdfde bsr 0x3fb8 // 3fb8 + +} + 8000: 1407 addi r14, r14, 28 + 8002: 1491 pop r4, r15 + SendData[13] = 0x02; + 8004: 3302 movi r3, 2 + 8006: 07d3 br 0x7fac // 7fac + SendData[13] = 0x01; + 8008: 3301 movi r3, 1 + 800a: 07d1 br 0x7fac // 7fac + SendData[13] = 0x00; // + 800c: 3300 movi r3, 0 + 800e: 07cf br 0x7fac // 7fac + SendData[13] = 0x04; // + 8010: 3304 movi r3, 4 + 8012: 07cd br 0x7fac // 7fac + 8014: 20000524 .long 0x20000524 + 8018: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCycleSend: + +0000801c : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 801c: 14d0 push r15 + 801e: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 8020: 3355 movi r3, 85 + 8022: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 8026: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 802a: 3300 movi r3, 0 + 802c: 2b11 subi r3, 18 + 802e: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 8032: 3315 movi r3, 21 + 8034: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 8038: 3303 movi r3, 3 + 803a: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 803e: 1177 lrw r3, 0x20000524 // 8118 + 8040: 8360 ld.b r3, (r3, 0x0) + 8042: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 8046: 3300 movi r3, 0 + 8048: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 804c: 1174 lrw r3, 0x2000083c // 811c + 804e: 8342 ld.b r2, (r3, 0x2) + 8050: 4a27 lsri r1, r2, 7 + 8052: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 8056: 3100 movi r1, 0 + 8058: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 805c: 3170 movi r1, 112 + 805e: 6884 and r2, r1 + 8060: 3a40 cmpnei r2, 0 + 8062: 081a bt 0x8096 // 8096 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 8064: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 8066: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 806a: 8341 ld.b r2, (r3, 0x1) + 806c: 3a40 cmpnei r2, 0 + 806e: 0802 bt 0x8072 // 8072 + 8070: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8072: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 8074: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8078: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 807a: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 807c: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 807e: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8082: 3204 movi r2, 4 + 8084: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + 8086: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8088: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 808c: 0843 bt 0x8112 // 8112 + 808e: e3ffc637 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8092: 3a0c .short 0x3a0c + 8094: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 8096: 3120 movi r1, 32 + 8098: 644a cmpne r2, r1 + 809a: 0803 bt 0x80a0 // 80a0 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 809c: 3202 movi r2, 2 + 809e: 07e4 br 0x8066 // 8066 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 80a0: 3140 movi r1, 64 + 80a2: 644a cmpne r2, r1 + 80a4: 0be3 bt 0x806a // 806a + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 80a6: 3203 movi r2, 3 + 80a8: 07df br 0x8066 // 8066 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 80aa: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + 80ac: dc4e0011 st.b r2, (r14, 0x11) + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 80b0: 3200 movi r2, 0 + 80b2: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 80b6: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 80ba: 8342 ld.b r2, (r3, 0x2) + 80bc: 425f lsli r2, r2, 31 + 80be: 4a5f lsri r2, r2, 31 + 80c0: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 80c2: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 80c4: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 80c8: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 80ca: 3200 movi r2, 0 + 80cc: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 80d0: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 80d4: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 80d8: 0802 bt 0x80dc // 80dc + 80da: 3320 movi r3, 32 + 80dc: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 80e0: 3300 movi r3, 0 + 80e2: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 80e6: 1b01 addi r3, r14, 4 + 80e8: 5b0a addi r0, r3, 3 + 80ea: 3115 movi r1, 21 + 80ec: e3fffec4 bsr 0x7e74 // 7e74 + + //MCU485_SendData(SendData, 24); + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 80f0: 3314 movi r3, 20 + 80f2: b860 st.w r3, (r14, 0x0) + 80f4: 3396 movi r3, 150 + 80f6: 4361 lsli r3, r3, 1 + 80f8: 3201 movi r2, 1 + 80fa: 3118 movi r1, 24 + 80fc: 1801 addi r0, r14, 4 + 80fe: e3ffdf5d bsr 0x3fb8 // 3fb8 + +} + 8102: 1407 addi r14, r14, 28 + 8104: 1490 pop r15 + SendData[13] = 0x02; + 8106: 3202 movi r2, 2 + 8108: 07d2 br 0x80ac // 80ac + SendData[13] = 0x01; + 810a: 3201 movi r2, 1 + 810c: 07d0 br 0x80ac // 80ac + SendData[13] = 0x00; // + 810e: 3200 movi r2, 0 + 8110: 07ce br 0x80ac // 80ac + SendData[13] = 0x04; // + 8112: 3204 movi r2, 4 + 8114: 07cc br 0x80ac // 80ac + 8116: 0000 bkpt + 8118: 20000524 .long 0x20000524 + 811c: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCtrlSend: + +00008120 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 8120: 14d0 push r15 + 8122: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 8124: 3355 movi r3, 85 + 8126: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 812a: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 812e: 3300 movi r3, 0 + 8130: 2b11 subi r3, 18 + 8132: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 8136: 3307 movi r3, 7 + 8138: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 813c: 3303 movi r3, 3 + 813e: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 8142: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 8144: 106d lrw r3, 0x20000524 // 8178 + 8146: 8360 ld.b r3, (r3, 0x0) + 8148: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 814c: 8066 ld.b r3, (r0, 0x6) + 814e: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 8152: 8067 ld.b r3, (r0, 0x7) + 8154: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 8158: 1b01 addi r3, r14, 4 + 815a: 5b0a addi r0, r3, 3 + 815c: e3fffe8c bsr 0x7e74 // 7e74 + +// MCU485_SendData(SendData, 10); + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 8160: 3314 movi r3, 20 + 8162: b860 st.w r3, (r14, 0x0) + 8164: 3396 movi r3, 150 + 8166: 4361 lsli r3, r3, 1 + 8168: 3201 movi r2, 1 + 816a: 310a movi r1, 10 + 816c: 1801 addi r0, r14, 4 + 816e: e3ffdf25 bsr 0x3fb8 // 3fb8 + +} + 8172: 1404 addi r14, r14, 16 + 8174: 1490 pop r15 + 8176: 0000 bkpt + 8178: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485AskReadSend: + +0000817c : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 817c: 14d0 push r15 + 817e: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 8180: 3355 movi r3, 85 + 8182: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 8186: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 818a: 3300 movi r3, 0 + 818c: 2b11 subi r3, 18 + 818e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 8192: 3309 movi r3, 9 + 8194: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 8198: 3303 movi r3, 3 + 819a: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 819e: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 81a0: 1070 lrw r3, 0x20000524 // 81e0 + 81a2: 8340 ld.b r2, (r3, 0x0) + 81a4: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 81a8: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + 81aa: 8046 ld.b r2, (r0, 0x6) + 81ac: dc4e000a st.b r2, (r14, 0xa) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 81b0: dc6e000d st.b r3, (r14, 0xd) + SendData[7] = Project_FW_Version; + 81b4: 3204 movi r2, 4 + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 81b6: 1b01 addi r3, r14, 4 + SendData[7] = Project_FW_Version; + 81b8: dc4e000b st.b r2, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 81bc: 5b0a addi r0, r3, 3 + SendData[8] = Project_HW_Version; + 81be: 3202 movi r2, 2 + 81c0: dc4e000c st.b r2, (r14, 0xc) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 81c4: e3fffe58 bsr 0x7e74 // 7e74 + +// MCU485_SendData(SendData, 12); + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 81c8: 3314 movi r3, 20 + 81ca: b860 st.w r3, (r14, 0x0) + 81cc: 3396 movi r3, 150 + 81ce: 4361 lsli r3, r3, 1 + 81d0: 3201 movi r2, 1 + 81d2: 310c movi r1, 12 + 81d4: 1801 addi r0, r14, 4 + 81d6: e3ffdef1 bsr 0x3fb8 // 3fb8 +} + 81da: 1404 addi r14, r14, 16 + 81dc: 1490 pop r15 + 81de: 0000 bkpt + 81e0: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485_DevPort_ACK: + +000081e4 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 81e4: 14d0 push r15 + 81e6: 1421 subi r14, r14, 4 + +// MCU485_SendData(Recdata, Lens); + + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 81e8: 3314 movi r3, 20 + 81ea: b860 st.w r3, (r14, 0x0) + 81ec: 3396 movi r3, 150 + 81ee: 7445 zexth r1, r1 + 81f0: 4361 lsli r3, r3, 1 + 81f2: 3201 movi r2, 1 + 81f4: e3ffdee2 bsr 0x3fb8 // 3fb8 +} + 81f8: 1401 addi r14, r14, 4 + 81fa: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +000081fc : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 81fc: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 81fe: 3300 movi r3, 0 + 8200: 2b08 subi r3, 9 + 8202: 60c4 addu r3, r1 + 8204: 74cd zexth r3, r3 + 8206: 3b01 cmphsi r3, 2 +{ + 8208: 6d03 mov r4, r0 + 820a: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 820c: 08c8 bt 0x839c // 839c + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 820e: 8060 ld.b r3, (r0, 0x0) + 8210: 3255 movi r2, 85 + 8212: 648e cmpne r3, r2 + 8214: 08c0 bt 0x8394 // 8394 + 8216: 8041 ld.b r2, (r0, 0x1) + 8218: 64ca cmpne r2, r3 + 821a: 08bd bt 0x8394 // 8394 + 821c: 8042 ld.b r2, (r0, 0x2) + 821e: 33ee movi r3, 238 + 8220: 64ca cmpne r2, r3 + 8222: 08b9 bt 0x8394 // 8394 + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + 8224: 8023 ld.b r1, (r0, 0x3) + 8226: 596a addi r3, r1, 3 + 8228: 654e cmpne r3, r5 + 822a: 08b7 bt 0x8398 // 8398 + 822c: 8004 ld.b r0, (r0, 0x4) + 822e: 3843 cmpnei r0, 3 + 8230: 08b4 bt 0x8398 // 8398 + 8232: 12dc lrw r6, 0x20000524 // 83a0 + 8234: 8640 ld.b r2, (r6, 0x0) + 8236: 8465 ld.b r3, (r4, 0x5) + 8238: 64ca cmpne r2, r3 + 823a: 08ae bt 0x8396 // 8396 + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 823c: 2901 subi r1, 2 + 823e: 7445 zexth r1, r1 + 8240: 5c0a addi r0, r4, 3 + 8242: e3fffe3f bsr 0x7ec0 // 7ec0 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 8246: 5c54 addu r2, r4, r5 + 8248: 5a63 subi r3, r2, 1 + 824a: 8360 ld.b r3, (r3, 0x0) + 824c: 2a01 subi r2, 2 + 824e: 4368 lsli r3, r3, 8 + 8250: 8240 ld.b r2, (r2, 0x0) + 8252: 60c8 addu r3, r2 + 8254: 64c2 cmpne r0, r3 + 8256: 08a3 bt 0x839c // 839c + { + switch(RecData[6]) + 8258: 8406 ld.b r0, (r4, 0x6) + 825a: 2800 subi r0, 1 + 825c: 3811 cmphsi r0, 18 + 825e: 0811 bt 0x8280 // 8280 + 8260: e3ffc54e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8264: 1e1e1e1e .long 0x1e1e1e1e + 8268: 0e0e0e0e .long 0x0e0e0e0e + 826c: 0e0e090e .long 0x0e0e090e + 8270: 220e0e0e .long 0x220e0e0e + 8274: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 8276: 8667 ld.b r3, (r6, 0x7) + 8278: 3b42 cmpnei r3, 2 + 827a: 080c bt 0x8292 // 8292 + { + Clear_SendFlag(); + 827c: e3ffded0 bsr 0x401c // 401c + } + + } + break; + } + switch(RecData[6]) + 8280: 8406 ld.b r0, (r4, 0x6) + 8282: 2800 subi r0, 1 + 8284: 3803 cmphsi r0, 4 + 8286: 0808 bt 0x8296 // 8296 + 8288: 8467 ld.b r3, (r4, 0x7) + 828a: e3ffc539 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 828e: 4836 .short 0x4836 + 8290: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + 8292: 3b41 cmpnei r3, 1 + 8294: 0c03 bf 0x829a // 829a + break; + } + break; + } + + return ret; + 8296: 3000 movi r0, 0 + 8298: 047f br 0x8396 // 8396 + Rs485AskCycleSend(); + 829a: e3fffec1 bsr 0x801c // 801c + 829e: 07f1 br 0x8280 // 8280 + Rs485AskCtrlSend(RecData); + 82a0: 6c13 mov r0, r4 + 82a2: e3ffff3f bsr 0x8120 // 8120 + 82a6: 07ed br 0x8280 // 8280 + Rs485AskReadSend(RecData); //版本号查询 + 82a8: 6c13 mov r0, r4 + 82aa: e3ffff69 bsr 0x817c // 817c + 82ae: 07e9 br 0x8280 // 8280 + Rs485AskCtrlSend(RecData); + 82b0: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 82b2: 11bd lrw r5, 0x2000083c // 83a4 + Rs485AskCtrlSend(RecData); + 82b4: e3ffff36 bsr 0x8120 // 8120 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 82b8: 855a ld.b r2, (r5, 0x1a) + 82ba: 113c lrw r1, 0xacd2 // 83a8 + 82bc: 3000 movi r0, 0 + 82be: e3ffdf25 bsr 0x4108 // 4108 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 82c2: 8467 ld.b r3, (r4, 0x7) + 82c4: 855a ld.b r2, (r5, 0x1a) + 82c6: 64ca cmpne r2, r3 + 82c8: 0fdc bf 0x8280 // 8280 + if(TempCtrl.CardEn == 0x00) + 82ca: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 82cc: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 82ce: 0bd9 bt 0x8280 // 8280 + TempCtrl.CardState = 0x01; + 82d0: 3301 movi r3, 1 + 82d2: a578 st.b r3, (r5, 0x18) + 82d4: 07d6 br 0x8280 // 8280 + if(RecData[7] != g_eeprom.dev_port) + 82d6: 8467 ld.b r3, (r4, 0x7) + 82d8: 8647 ld.b r2, (r6, 0x7) + 82da: 64ca cmpne r2, r3 + 82dc: 0fdd bf 0x8296 // 8296 + EEPROM_WriteParaInfo(&g_eeprom); + 82de: 1111 lrw r0, 0x20000524 // 83a0 + g_eeprom.dev_port = RecData[7]; + 82e0: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 82e2: e3ffe42b bsr 0x4b38 // 4b38 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 82e6: 110f lrw r0, 0x20000524 // 83a0 + 82e8: e3ffe3ee bsr 0x4ac4 // 4ac4 + if(rev_val == 0x00){ + 82ec: 3840 cmpnei r0, 0 + 82ee: 0bc9 bt 0x8280 // 8280 + Rs485_DevPort_ACK(RecData,Len); + 82f0: 7454 zextb r1, r5 + 82f2: 6c13 mov r0, r4 + 82f4: e3ffff78 bsr 0x81e4 // 81e4 + 82f8: 07c4 br 0x8280 // 8280 + switch(RecData[7]) + 82fa: 74cc zextb r3, r3 + 82fc: 3b40 cmpnei r3, 0 + 82fe: 0c0a bf 0x8312 // 8312 + 8300: 3b41 cmpnei r3, 1 + 8302: 0bca bt 0x8296 // 8296 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 8304: 1128 lrw r1, 0x2000083c // 83a4 + 8306: 3200 movi r2, 0 + 8308: 8162 ld.b r3, (r1, 0x2) + 830a: 2a7f subi r2, 128 + 830c: 6cc8 or r3, r2 + 830e: a162 st.b r3, (r1, 0x2) + 8310: 07c3 br 0x8296 // 8296 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 8312: 1145 lrw r2, 0x2000083c // 83a4 + 8314: 8262 ld.b r3, (r2, 0x2) + 8316: 317f movi r1, 127 + 8318: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 831a: a262 st.b r3, (r2, 0x2) + 831c: 07bd br 0x8296 // 8296 + switch(RecData[7]) // + 831e: 74cc zextb r3, r3 + 8320: 3b42 cmpnei r3, 2 + 8322: 0c0a bf 0x8336 // 8336 + 8324: 3b43 cmpnei r3, 3 + 8326: 0c0e bf 0x8342 // 8342 + 8328: 3b41 cmpnei r3, 1 + 832a: 0bb6 bt 0x8296 // 8296 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 832c: 105e lrw r2, 0x2000083c // 83a4 + 832e: 8262 ld.b r3, (r2, 0x2) + 8330: 3170 movi r1, 112 + 8332: 68c5 andn r3, r1 + 8334: 07f3 br 0x831a // 831a + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 8336: 105c lrw r2, 0x2000083c // 83a4 + 8338: 8262 ld.b r3, (r2, 0x2) + 833a: 3170 movi r1, 112 + 833c: 68c5 andn r3, r1 + 833e: 3ba5 bseti r3, 5 + 8340: 07ed br 0x831a // 831a + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 8342: 1059 lrw r2, 0x2000083c // 83a4 + 8344: 8262 ld.b r3, (r2, 0x2) + 8346: 3170 movi r1, 112 + 8348: 68c5 andn r3, r1 + 834a: 3ba6 bseti r3, 6 + 834c: 07e7 br 0x831a // 831a + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 834e: 3200 movi r2, 0 + 8350: 74cc zextb r3, r3 + 8352: 2a0f subi r2, 16 + 8354: 608c addu r2, r3 + 8356: 7488 zextb r2, r2 + 8358: 3a0f cmphsi r2, 16 + 835a: 0804 bt 0x8362 // 8362 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 835c: 1052 lrw r2, 0x2000083c // 83a4 + 835e: a261 st.b r3, (r2, 0x1) + 8360: 079b br 0x8296 // 8296 + }else if(RecData[7] == TEM_MAX_SET){ + 8362: 3220 movi r2, 32 + 8364: 648e cmpne r3, r2 + 8366: 0b98 bt 0x8296 // 8296 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 8368: 106f lrw r3, 0x2000083c // 83a4 + 836a: a341 st.b r2, (r3, 0x1) + 836c: 0795 br 0x8296 // 8296 + switch(RecData[7]) //风速 + 836e: 740c zextb r0, r3 + 8370: 106d lrw r3, 0x2000083c // 83a4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8372: 8342 ld.b r2, (r3, 0x2) + 8374: 310e movi r1, 14 + switch(RecData[7]) //风速 + 8376: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8378: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 837a: 0807 bt 0x8388 // 8388 + 837c: e3ffc4c0 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8380: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + 8384: 3aa1 bseti r2, 1 + 8386: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8388: a342 st.b r2, (r3, 0x2) + 838a: 0786 br 0x8296 // 8296 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 838c: 3aa2 bseti r2, 2 + 838e: 07fd br 0x8388 // 8388 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 8390: 3aa1 bseti r2, 1 + 8392: 07fb br 0x8388 // 8388 + return 0x02; + 8394: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 8396: 1493 pop r4-r6, r15 + return 0x03; + 8398: 3003 movi r0, 3 + 839a: 07fe br 0x8396 // 8396 + return 0x01; + 839c: 3001 movi r0, 1 + 839e: 07fc br 0x8396 // 8396 + 83a0: 20000524 .long 0x20000524 + 83a4: 2000083c .long 0x2000083c + 83a8: 0000acd2 .long 0x0000acd2 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000083ac : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 83ac: 14d2 push r4-r5, r15 + 83ae: 6d43 mov r5, r0 + 83b0: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 83b2: e3ffff25 bsr 0x81fc // 81fc + 83b6: 3840 cmpnei r0, 0 + 83b8: 0803 bt 0x83be // 83be + { + return ret = 1; + } + } + + return ret; + 83ba: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 83bc: 0404 br 0x83c4 // 83c4 + if (Len < 5){ //长度校验 + 83be: 3c04 cmphsi r4, 5 + 83c0: 0803 bt 0x83c6 // 83c6 + return ret = 1; + 83c2: 3001 movi r0, 1 + 83c4: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 83c6: 8540 ld.b r2, (r5, 0x0) + 83c8: 33ff movi r3, 255 + 83ca: 64ca cmpne r2, r3 + 83cc: 0c04 bf 0x83d4 // 83d4 + 83ce: 8561 ld.b r3, (r5, 0x1) + 83d0: 3b48 cmpnei r3, 8 + 83d2: 0bf8 bt 0x83c2 // 83c2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 83d4: 1125 lrw r1, 0xace1 // 8468 + 83d6: 3000 movi r0, 0 + 83d8: e3ffde98 bsr 0x4108 // 4108 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 83dc: 3c45 cmpnei r4, 5 + 83de: 0814 bt 0x8406 // 8406 + 83e0: 3104 movi r1, 4 + 83e2: 6c17 mov r0, r5 + 83e4: e3fffd8c bsr 0x7efc // 7efc + 83e8: 8564 ld.b r3, (r5, 0x4) + 83ea: 640e cmpne r3, r0 + 83ec: 0beb bt 0x83c2 // 83c2 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 83ee: 1160 lrw r3, 0x2000083c // 846c + 83f0: 8542 ld.b r2, (r5, 0x2) + 83f2: 8338 ld.b r1, (r3, 0x18) + 83f4: 6486 cmpne r1, r2 + 83f6: 0fe2 bf 0x83ba // 83ba + 83f8: 833a ld.b r1, (r3, 0x1a) + 83fa: 3941 cmpnei r1, 1 + 83fc: 0bdf bt 0x83ba // 83ba + TempCtrl.CardState = RecData[2]; + 83fe: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 8400: 3201 movi r2, 1 + 8402: a359 st.b r2, (r3, 0x19) + 8404: 07db br 0x83ba // 83ba + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 8406: 3c09 cmphsi r4, 10 + 8408: 0fdd bf 0x83c2 // 83c2 + 840a: 5c27 subi r1, r4, 2 + 840c: 7445 zexth r1, r1 + 840e: 6114 addu r4, r5 + 8410: 6c17 mov r0, r5 + 8412: e3fffd57 bsr 0x7ec0 // 7ec0 + 8416: 5c63 subi r3, r4, 1 + 8418: 8360 ld.b r3, (r3, 0x0) + 841a: 2c01 subi r4, 2 + 841c: 4368 lsli r3, r3, 8 + 841e: 8440 ld.b r2, (r4, 0x0) + 8420: 60c8 addu r3, r2 + 8422: 64c2 cmpne r0, r3 + 8424: 0bcf bt 0x83c2 // 83c2 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 8426: 1072 lrw r3, 0x2000083c // 846c + 8428: 8543 ld.b r2, (r5, 0x3) + 842a: 8338 ld.b r1, (r3, 0x18) + 842c: 6486 cmpne r1, r2 + 842e: 0c07 bf 0x843c // 843c + 8430: 833a ld.b r1, (r3, 0x1a) + 8432: 3941 cmpnei r1, 1 + 8434: 0804 bt 0x843c // 843c + TempCtrl.CardState = RecData[3]; + 8436: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 8438: 3201 movi r2, 1 + 843a: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 843c: 8547 ld.b r2, (r5, 0x7) + 843e: 833b ld.b r1, (r3, 0x1b) + 8440: 6486 cmpne r1, r2 + 8442: 0c0d bf 0x845c // 845c + TempCtrl.SceneNo = RecData[7]; + 8444: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 8446: 104b lrw r2, 0x200000c0 // 8470 + 8448: 9240 ld.w r2, (r2, 0x0) + 844a: 4a28 lsri r1, r2, 8 + 844c: a354 st.b r2, (r3, 0x14) + 844e: a335 st.b r1, (r3, 0x15) + 8450: 4a30 lsri r1, r2, 16 + 8452: 4a58 lsri r2, r2, 24 + 8454: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 8456: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 8458: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 845a: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 845c: 835b ld.b r2, (r3, 0x1b) + 845e: 1026 lrw r1, 0xacf3 // 8474 + 8460: 3000 movi r0, 0 + 8462: e3ffde53 bsr 0x4108 // 4108 + 8466: 07aa br 0x83ba // 83ba + 8468: 0000ace1 .long 0x0000ace1 + 846c: 2000083c .long 0x2000083c + 8470: 200000c0 .long 0x200000c0 + 8474: 0000acf3 .long 0x0000acf3 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00008478 : + 8478: 1063 lrw r3, 0x20000058 // 8484 + 847a: 9340 ld.w r2, (r3, 0x0) + 847c: 926b ld.w r3, (r2, 0x2c) + 847e: 6c0c or r0, r3 + 8480: b20b st.w r0, (r2, 0x2c) + 8482: 783c jmp r15 + 8484: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00008488 : + 8488: 14c1 push r4 + 848a: 1069 lrw r3, 0x20000058 // 84ac + 848c: 3840 cmpnei r0, 0 + 848e: 9380 ld.w r4, (r3, 0x0) + 8490: 9400 ld.w r0, (r4, 0x0) + 8492: 0c0b bf 0x84a8 // 84a8 + 8494: 38a0 bseti r0, 0 + 8496: b400 st.w r0, (r4, 0x0) + 8498: 9360 ld.w r3, (r3, 0x0) + 849a: 4248 lsli r2, r2, 8 + 849c: 4122 lsli r1, r1, 2 + 849e: 9300 ld.w r0, (r3, 0x0) + 84a0: 6c48 or r1, r2 + 84a2: 6c40 or r1, r0 + 84a4: b320 st.w r1, (r3, 0x0) + 84a6: 1481 pop r4 + 84a8: 3880 bclri r0, 0 + 84aa: 07f6 br 0x8496 // 8496 + 84ac: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +000084b0 : + 84b0: 14c4 push r4-r7 + 84b2: 1429 subi r14, r14, 36 + 84b4: b840 st.w r2, (r14, 0x0) + 84b6: 984d ld.w r2, (r14, 0x34) + 84b8: b841 st.w r2, (r14, 0x4) + 84ba: 984e ld.w r2, (r14, 0x38) + 84bc: b842 st.w r2, (r14, 0x8) + 84be: 984f ld.w r2, (r14, 0x3c) + 84c0: b843 st.w r2, (r14, 0xc) + 84c2: 9850 ld.w r2, (r14, 0x40) + 84c4: 9895 ld.w r4, (r14, 0x54) + 84c6: b844 st.w r2, (r14, 0x10) + 84c8: 9853 ld.w r2, (r14, 0x4c) + 84ca: b845 st.w r2, (r14, 0x14) + 84cc: b887 st.w r4, (r14, 0x1c) + 84ce: 9854 ld.w r2, (r14, 0x50) + 84d0: 1c11 addi r4, r14, 68 + 84d2: b846 st.w r2, (r14, 0x18) + 84d4: 8c80 ld.h r4, (r4, 0x0) + 84d6: 1a15 addi r2, r14, 84 + 84d8: 1d12 addi r5, r14, 72 + 84da: 8244 ld.b r2, (r2, 0x4) + 84dc: 3c40 cmpnei r4, 0 + 84de: 8dc0 ld.h r6, (r5, 0x0) + 84e0: b848 st.w r2, (r14, 0x20) + 84e2: 0813 bt 0x8508 // 8508 + 84e4: 105f lrw r2, 0x2000004c // 8560 + 84e6: 35f0 movi r5, 240 + 84e8: 92e0 ld.w r7, (r2, 0x0) + 84ea: 9740 ld.w r2, (r7, 0x0) + 84ec: 45a4 lsli r5, r5, 4 + 84ee: 6895 andn r2, r5 + 84f0: 3aab bseti r2, 11 + 84f2: b740 st.w r2, (r7, 0x0) + 84f4: 3502 movi r5, 2 + 84f6: 105c lrw r2, 0x20000050 // 8564 + 84f8: 3e41 cmpnei r6, 1 + 84fa: 9240 ld.w r2, (r2, 0x0) + 84fc: b2a0 st.w r5, (r2, 0x0) + 84fe: 0828 bt 0x854e // 854e + 8500: 92a4 ld.w r5, (r2, 0x10) + 8502: 3db8 bseti r5, 24 + 8504: 3db9 bseti r5, 25 + 8506: b2a4 st.w r5, (r2, 0x10) + 8508: 1058 lrw r2, 0x20000058 // 8568 + 850a: 448d lsli r4, r4, 13 + 850c: 92a0 ld.w r5, (r2, 0x0) + 850e: 9541 ld.w r2, (r5, 0x4) + 8510: 3200 movi r2, 0 + 8512: b541 st.w r2, (r5, 0x4) + 8514: 9541 ld.w r2, (r5, 0x4) + 8516: 98c7 ld.w r6, (r14, 0x1c) + 8518: 6c98 or r2, r6 + 851a: 98c6 ld.w r6, (r14, 0x18) + 851c: 6c98 or r2, r6 + 851e: 98c5 ld.w r6, (r14, 0x14) + 8520: 6c98 or r2, r6 + 8522: 98c8 ld.w r6, (r14, 0x20) + 8524: 46d8 lsli r6, r6, 24 + 8526: 6c98 or r2, r6 + 8528: 98c4 ld.w r6, (r14, 0x10) + 852a: 6c98 or r2, r6 + 852c: 98c3 ld.w r6, (r14, 0xc) + 852e: 6c98 or r2, r6 + 8530: 98c2 ld.w r6, (r14, 0x8) + 8532: 6c98 or r2, r6 + 8534: 98c1 ld.w r6, (r14, 0x4) + 8536: 6c98 or r2, r6 + 8538: 6c48 or r1, r2 + 853a: 9840 ld.w r2, (r14, 0x0) + 853c: 6c04 or r0, r1 + 853e: 4242 lsli r2, r2, 2 + 8540: 6c08 or r0, r2 + 8542: 6d00 or r4, r0 + 8544: 4367 lsli r3, r3, 7 + 8546: 6cd0 or r3, r4 + 8548: b561 st.w r3, (r5, 0x4) + 854a: 1409 addi r14, r14, 36 + 854c: 1484 pop r4-r7 + 854e: 3e40 cmpnei r6, 0 + 8550: 0bdc bt 0x8508 // 8508 + 8552: 9264 ld.w r3, (r2, 0x10) + 8554: 3b98 bclri r3, 24 + 8556: 3b99 bclri r3, 25 + 8558: 3bb8 bseti r3, 24 + 855a: b264 st.w r3, (r2, 0x10) + 855c: 3300 movi r3, 0 + 855e: 07d5 br 0x8508 // 8508 + 8560: 2000004c .long 0x2000004c + 8564: 20000050 .long 0x20000050 + 8568: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_io_enable: + +0000856c : + 856c: 14d4 push r4-r7, r15 + 856e: 1422 subi r14, r14, 8 + 8570: 1269 lrw r3, 0x2000004c // 8694 + 8572: 31f0 movi r1, 240 + 8574: 9360 ld.w r3, (r3, 0x0) + 8576: 9340 ld.w r2, (r3, 0x0) + 8578: 4130 lsli r1, r1, 16 + 857a: 6885 andn r2, r1 + 857c: 3ab4 bseti r2, 20 + 857e: 3ab7 bseti r2, 23 + 8580: b340 st.w r2, (r3, 0x0) + 8582: 35f0 movi r5, 240 + 8584: 1245 lrw r2, 0x20000268 // 8698 + 8586: 36f0 movi r6, 240 + 8588: 9240 ld.w r2, (r2, 0x0) + 858a: b841 st.w r2, (r14, 0x4) + 858c: 3400 movi r4, 0 + 858e: 1244 lrw r2, 0x20000048 // 869c + 8590: 45ac lsli r5, r5, 12 + 8592: 9240 ld.w r2, (r2, 0x0) + 8594: b820 st.w r1, (r14, 0x0) + 8596: 46c8 lsli r6, r6, 8 + 8598: 3701 movi r7, 1 + 859a: 71d0 lsl r7, r4 + 859c: 9821 ld.w r1, (r14, 0x4) + 859e: 69c4 and r7, r1 + 85a0: 3f40 cmpnei r7, 0 + 85a2: 7410 zextb r0, r4 + 85a4: 0c1b bf 0x85da // 85da + 85a6: 2800 subi r0, 1 + 85a8: 380f cmphsi r0, 16 + 85aa: 080b bt 0x85c0 // 85c0 + 85ac: e3ffc3a8 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 85b0: 27201a0f .long 0x27201a0f + 85b4: 3d38312c .long 0x3d38312c + 85b8: 56514a44 .long 0x56514a44 + 85bc: 6c67615b .long 0x6c67615b + 85c0: 9200 ld.w r0, (r2, 0x0) + 85c2: 37f0 movi r7, 240 + 85c4: 681d andn r0, r7 + 85c6: 38a4 bseti r0, 4 + 85c8: 38a7 bseti r0, 7 + 85ca: b200 st.w r0, (r2, 0x0) + 85cc: 0407 br 0x85da // 85da + 85ce: 9300 ld.w r0, (r3, 0x0) + 85d0: 370f movi r7, 15 + 85d2: 681d andn r0, r7 + 85d4: 38a0 bseti r0, 0 + 85d6: 38a3 bseti r0, 3 + 85d8: b300 st.w r0, (r3, 0x0) + 85da: 2400 addi r4, 1 + 85dc: 3c51 cmpnei r4, 17 + 85de: 0bdd bt 0x8598 // 8598 + 85e0: 1402 addi r14, r14, 8 + 85e2: 1494 pop r4-r7, r15 + 85e4: 9300 ld.w r0, (r3, 0x0) + 85e6: 37f0 movi r7, 240 + 85e8: 681d andn r0, r7 + 85ea: 38a4 bseti r0, 4 + 85ec: 38a7 bseti r0, 7 + 85ee: 07f5 br 0x85d8 // 85d8 + 85f0: 37f0 movi r7, 240 + 85f2: 9300 ld.w r0, (r3, 0x0) + 85f4: 47e4 lsli r7, r7, 4 + 85f6: 681d andn r0, r7 + 85f8: 38a8 bseti r0, 8 + 85fa: 38ab bseti r0, 11 + 85fc: 07ee br 0x85d8 // 85d8 + 85fe: 9300 ld.w r0, (r3, 0x0) + 8600: 6819 andn r0, r6 + 8602: 38ac bseti r0, 12 + 8604: 38af bseti r0, 15 + 8606: 07e9 br 0x85d8 // 85d8 + 8608: 9300 ld.w r0, (r3, 0x0) + 860a: 6815 andn r0, r5 + 860c: 38b0 bseti r0, 16 + 860e: 38b3 bseti r0, 19 + 8610: 07e4 br 0x85d8 // 85d8 + 8612: 37f0 movi r7, 240 + 8614: 9200 ld.w r0, (r2, 0x0) + 8616: 47e4 lsli r7, r7, 4 + 8618: 681d andn r0, r7 + 861a: 38a8 bseti r0, 8 + 861c: 38ab bseti r0, 11 + 861e: 07d6 br 0x85ca // 85ca + 8620: 9200 ld.w r0, (r2, 0x0) + 8622: 6819 andn r0, r6 + 8624: 38ac bseti r0, 12 + 8626: 38af bseti r0, 15 + 8628: 07d1 br 0x85ca // 85ca + 862a: 9301 ld.w r0, (r3, 0x4) + 862c: 370f movi r7, 15 + 862e: 681d andn r0, r7 + 8630: 38a0 bseti r0, 0 + 8632: 38a3 bseti r0, 3 + 8634: b301 st.w r0, (r3, 0x4) + 8636: 07d2 br 0x85da // 85da + 8638: 9301 ld.w r0, (r3, 0x4) + 863a: 37f0 movi r7, 240 + 863c: 681d andn r0, r7 + 863e: 38a4 bseti r0, 4 + 8640: 38a7 bseti r0, 7 + 8642: 07f9 br 0x8634 // 8634 + 8644: 37f0 movi r7, 240 + 8646: 9301 ld.w r0, (r3, 0x4) + 8648: 47e4 lsli r7, r7, 4 + 864a: 681d andn r0, r7 + 864c: 38a8 bseti r0, 8 + 864e: 38ab bseti r0, 11 + 8650: 07f2 br 0x8634 // 8634 + 8652: 9301 ld.w r0, (r3, 0x4) + 8654: 6819 andn r0, r6 + 8656: 38ac bseti r0, 12 + 8658: 38af bseti r0, 15 + 865a: 07ed br 0x8634 // 8634 + 865c: 9301 ld.w r0, (r3, 0x4) + 865e: 6815 andn r0, r5 + 8660: 38b0 bseti r0, 16 + 8662: 38b3 bseti r0, 19 + 8664: 07e8 br 0x8634 // 8634 + 8666: 9301 ld.w r0, (r3, 0x4) + 8668: 9820 ld.w r1, (r14, 0x0) + 866a: 6805 andn r0, r1 + 866c: 38b4 bseti r0, 20 + 866e: 38b7 bseti r0, 23 + 8670: 07e2 br 0x8634 // 8634 + 8672: 9200 ld.w r0, (r2, 0x0) + 8674: 370f movi r7, 15 + 8676: 681d andn r0, r7 + 8678: 38a0 bseti r0, 0 + 867a: 38a3 bseti r0, 3 + 867c: 07a7 br 0x85ca // 85ca + 867e: 9200 ld.w r0, (r2, 0x0) + 8680: 6815 andn r0, r5 + 8682: 38b0 bseti r0, 16 + 8684: 38b3 bseti r0, 19 + 8686: 07a2 br 0x85ca // 85ca + 8688: 9200 ld.w r0, (r2, 0x0) + 868a: 9820 ld.w r1, (r14, 0x0) + 868c: 6805 andn r0, r1 + 868e: 38b4 bseti r0, 20 + 8690: 38b7 bseti r0, 23 + 8692: 079c br 0x85ca // 85ca + 8694: 2000004c .long 0x2000004c + 8698: 20000268 .long 0x20000268 + 869c: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Single_Longpress_prg: + +000086a0 : + 86a0: 14c2 push r4-r5 + 86a2: 117d lrw r3, 0x20000a28 // 8794 + 86a4: 115d lrw r2, 0x20000994 // 8798 + 86a6: 9360 ld.w r3, (r3, 0x0) + 86a8: 3b40 cmpnei r3, 0 + 86aa: 0840 bt 0x872a // 872a + 86ac: 113c lrw r1, 0x20000070 // 879c + 86ae: 8962 ld.h r3, (r1, 0x4) + 86b0: 74cd zexth r3, r3 + 86b2: 3b40 cmpnei r3, 0 + 86b4: 0c3b bf 0x872a // 872a + 86b6: 117b lrw r3, 0x20000928 // 87a0 + 86b8: 9360 ld.w r3, (r3, 0x0) + 86ba: 3b40 cmpnei r3, 0 + 86bc: 117a lrw r3, 0x20000ade // 87a4 + 86be: 0c0e bf 0x86da // 86da + 86c0: 8300 ld.b r0, (r3, 0x0) + 86c2: 2000 addi r0, 1 + 86c4: 7400 zextb r0, r0 + 86c6: a300 st.b r0, (r3, 0x0) + 86c8: 8380 ld.b r4, (r3, 0x0) + 86ca: 8902 ld.h r0, (r1, 0x4) + 86cc: 7401 zexth r0, r0 + 86ce: 3564 movi r5, 100 + 86d0: 7c14 mult r0, r5 + 86d2: 6501 cmplt r0, r4 + 86d4: 0c05 bf 0x86de // 86de + 86d6: 3001 movi r0, 1 + 86d8: a200 st.b r0, (r2, 0x0) + 86da: 3000 movi r0, 0 + 86dc: a300 st.b r0, (r3, 0x0) + 86de: 1113 lrw r0, 0x200008bc // 87a8 + 86e0: 9000 ld.w r0, (r0, 0x0) + 86e2: 3840 cmpnei r0, 0 + 86e4: 0c0e bf 0x8700 // 8700 + 86e6: 8301 ld.b r0, (r3, 0x1) + 86e8: 2000 addi r0, 1 + 86ea: 7400 zextb r0, r0 + 86ec: a301 st.b r0, (r3, 0x1) + 86ee: 8381 ld.b r4, (r3, 0x1) + 86f0: 8902 ld.h r0, (r1, 0x4) + 86f2: 7401 zexth r0, r0 + 86f4: 3564 movi r5, 100 + 86f6: 7c14 mult r0, r5 + 86f8: 6501 cmplt r0, r4 + 86fa: 0c05 bf 0x8704 // 8704 + 86fc: 3001 movi r0, 1 + 86fe: a201 st.b r0, (r2, 0x1) + 8700: 3000 movi r0, 0 + 8702: a301 st.b r0, (r3, 0x1) + 8704: 110a lrw r0, 0x200009a0 // 87ac + 8706: 9000 ld.w r0, (r0, 0x0) + 8708: 3840 cmpnei r0, 0 + 870a: 0c0e bf 0x8726 // 8726 + 870c: 8302 ld.b r0, (r3, 0x2) + 870e: 2000 addi r0, 1 + 8710: 7400 zextb r0, r0 + 8712: a302 st.b r0, (r3, 0x2) + 8714: 8302 ld.b r0, (r3, 0x2) + 8716: 8922 ld.h r1, (r1, 0x4) + 8718: 7445 zexth r1, r1 + 871a: 3464 movi r4, 100 + 871c: 7c50 mult r1, r4 + 871e: 6405 cmplt r1, r0 + 8720: 0c05 bf 0x872a // 872a + 8722: 3101 movi r1, 1 + 8724: a222 st.b r1, (r2, 0x2) + 8726: 3100 movi r1, 0 + 8728: a322 st.b r1, (r3, 0x2) + 872a: 8260 ld.b r3, (r2, 0x0) + 872c: 3b41 cmpnei r3, 1 + 872e: 080f bt 0x874c // 874c + 8730: 3300 movi r3, 0 + 8732: 11a0 lrw r5, 0x20000bda // 87b0 + 8734: 1180 lrw r4, 0x20000888 // 87b4 + 8736: 4321 lsli r1, r3, 1 + 8738: 5d04 addu r0, r5, r1 + 873a: 8800 ld.h r0, (r0, 0x0) + 873c: 2300 addi r3, 1 + 873e: 7401 zexth r0, r0 + 8740: 6050 addu r1, r4 + 8742: 3b51 cmpnei r3, 17 + 8744: a900 st.h r0, (r1, 0x0) + 8746: 0bf8 bt 0x8736 // 8736 + 8748: 3300 movi r3, 0 + 874a: a260 st.b r3, (r2, 0x0) + 874c: 8261 ld.b r3, (r2, 0x1) + 874e: 3b41 cmpnei r3, 1 + 8750: 080f bt 0x876e // 876e + 8752: 3300 movi r3, 0 + 8754: 10b9 lrw r5, 0x20000970 // 87b8 + 8756: 109a lrw r4, 0x20000a32 // 87bc + 8758: 4321 lsli r1, r3, 1 + 875a: 5d04 addu r0, r5, r1 + 875c: 8800 ld.h r0, (r0, 0x0) + 875e: 2300 addi r3, 1 + 8760: 7401 zexth r0, r0 + 8762: 6050 addu r1, r4 + 8764: 3b51 cmpnei r3, 17 + 8766: a900 st.h r0, (r1, 0x0) + 8768: 0bf8 bt 0x8758 // 8758 + 876a: 3300 movi r3, 0 + 876c: a261 st.b r3, (r2, 0x1) + 876e: 8262 ld.b r3, (r2, 0x2) + 8770: 3b41 cmpnei r3, 1 + 8772: 080f bt 0x8790 // 8790 + 8774: 3300 movi r3, 0 + 8776: 10b3 lrw r5, 0x20000a66 // 87c0 + 8778: 1093 lrw r4, 0x20000b48 // 87c4 + 877a: 4321 lsli r1, r3, 1 + 877c: 5d04 addu r0, r5, r1 + 877e: 8800 ld.h r0, (r0, 0x0) + 8780: 2300 addi r3, 1 + 8782: 7401 zexth r0, r0 + 8784: 6050 addu r1, r4 + 8786: 3b51 cmpnei r3, 17 + 8788: a900 st.h r0, (r1, 0x0) + 878a: 0bf8 bt 0x877a // 877a + 878c: 3300 movi r3, 0 + 878e: a262 st.b r3, (r2, 0x2) + 8790: 1482 pop r4-r5 + 8792: 0000 bkpt + 8794: 20000a28 .long 0x20000a28 + 8798: 20000994 .long 0x20000994 + 879c: 20000070 .long 0x20000070 + 87a0: 20000928 .long 0x20000928 + 87a4: 20000ade .long 0x20000ade + 87a8: 200008bc .long 0x200008bc + 87ac: 200009a0 .long 0x200009a0 + 87b0: 20000bda .long 0x20000bda + 87b4: 20000888 .long 0x20000888 + 87b8: 20000970 .long 0x20000970 + 87bc: 20000a32 .long 0x20000a32 + 87c0: 20000a66 .long 0x20000a66 + 87c4: 20000b48 .long 0x20000b48 + +Disassembly of section .text.TK_Sampling_prog: + +000087c8 : + 87c8: 14c4 push r4-r7 + 87ca: 1423 subi r14, r14, 12 + 87cc: 1169 lrw r3, 0x20000054 // 8870 + 87ce: 114a lrw r2, 0x20000b45 // 8874 + 87d0: 6d0b mov r4, r2 + 87d2: 9320 ld.w r1, (r3, 0x0) + 87d4: b840 st.w r2, (r14, 0x0) + 87d6: 3300 movi r3, 0 + 87d8: 11a8 lrw r5, 0x20000bda // 8878 + 87da: 9840 ld.w r2, (r14, 0x0) + 87dc: 8240 ld.b r2, (r2, 0x0) + 87de: 3a41 cmpnei r2, 1 + 87e0: 0808 bt 0x87f0 // 87f0 + 87e2: 4342 lsli r2, r3, 2 + 87e4: 6084 addu r2, r1 + 87e6: 9200 ld.w r0, (r2, 0x0) + 87e8: 4341 lsli r2, r3, 1 + 87ea: 7401 zexth r0, r0 + 87ec: 6094 addu r2, r5 + 87ee: aa00 st.h r0, (r2, 0x0) + 87f0: 8440 ld.b r2, (r4, 0x0) + 87f2: 3a42 cmpnei r2, 2 + 87f4: 0809 bt 0x8806 // 8806 + 87f6: 4342 lsli r2, r3, 2 + 87f8: 6084 addu r2, r1 + 87fa: 9200 ld.w r0, (r2, 0x0) + 87fc: 4341 lsli r2, r3, 1 + 87fe: 11c0 lrw r6, 0x20000970 // 887c + 8800: 7401 zexth r0, r0 + 8802: 6098 addu r2, r6 + 8804: aa00 st.h r0, (r2, 0x0) + 8806: 8440 ld.b r2, (r4, 0x0) + 8808: 3a40 cmpnei r2, 0 + 880a: 0809 bt 0x881c // 881c + 880c: 4342 lsli r2, r3, 2 + 880e: 6084 addu r2, r1 + 8810: 9200 ld.w r0, (r2, 0x0) + 8812: 4341 lsli r2, r3, 1 + 8814: 10db lrw r6, 0x20000a66 // 8880 + 8816: 7401 zexth r0, r0 + 8818: 6098 addu r2, r6 + 881a: aa00 st.h r0, (r2, 0x0) + 881c: 10da lrw r6, 0x200009cd // 8884 + 881e: 8640 ld.b r2, (r6, 0x0) + 8820: 3a41 cmpnei r2, 1 + 8822: 0821 bt 0x8864 // 8864 + 8824: 1079 lrw r3, 0x20000888 // 8888 + 8826: 3200 movi r2, 0 + 8828: b861 st.w r3, (r14, 0x4) + 882a: 1075 lrw r3, 0x20000970 // 887c + 882c: b862 st.w r3, (r14, 0x8) + 882e: 4261 lsli r3, r2, 1 + 8830: 5d0c addu r0, r5, r3 + 8832: 8800 ld.h r0, (r0, 0x0) + 8834: 98e1 ld.w r7, (r14, 0x4) + 8836: 61cc addu r7, r3 + 8838: 7401 zexth r0, r0 + 883a: af00 st.h r0, (r7, 0x0) + 883c: 9802 ld.w r0, (r14, 0x8) + 883e: 600c addu r0, r3 + 8840: 8800 ld.h r0, (r0, 0x0) + 8842: 10f3 lrw r7, 0x20000a32 // 888c + 8844: 61cc addu r7, r3 + 8846: 7401 zexth r0, r0 + 8848: af00 st.h r0, (r7, 0x0) + 884a: 2200 addi r2, 1 + 884c: 100d lrw r0, 0x20000a66 // 8880 + 884e: 600c addu r0, r3 + 8850: 8800 ld.h r0, (r0, 0x0) + 8852: 10f0 lrw r7, 0x20000b48 // 8890 + 8854: 7401 zexth r0, r0 + 8856: 60dc addu r3, r7 + 8858: 3a51 cmpnei r2, 17 + 885a: ab00 st.h r0, (r3, 0x0) + 885c: 0be9 bt 0x882e // 882e + 885e: 3300 movi r3, 0 + 8860: a660 st.b r3, (r6, 0x0) + 8862: 3311 movi r3, 17 + 8864: 2300 addi r3, 1 + 8866: 74cc zextb r3, r3 + 8868: 3b10 cmphsi r3, 17 + 886a: 0fb8 bf 0x87da // 87da + 886c: 1403 addi r14, r14, 12 + 886e: 1484 pop r4-r7 + 8870: 20000054 .long 0x20000054 + 8874: 20000b45 .long 0x20000b45 + 8878: 20000bda .long 0x20000bda + 887c: 20000970 .long 0x20000970 + 8880: 20000a66 .long 0x20000a66 + 8884: 200009cd .long 0x200009cd + 8888: 20000888 .long 0x20000888 + 888c: 20000a32 .long 0x20000a32 + 8890: 20000b48 .long 0x20000b48 + +Disassembly of section .text.get_key_number: + +00008894 : + 8894: 14c2 push r4-r5 + 8896: 3200 movi r2, 0 + 8898: 3000 movi r0, 0 + 889a: 1088 lrw r4, 0x20000a28 // 88b8 + 889c: 3501 movi r5, 1 + 889e: 3120 movi r1, 32 + 88a0: 9460 ld.w r3, (r4, 0x0) + 88a2: 70c9 lsr r3, r2 + 88a4: 68d4 and r3, r5 + 88a6: 3b40 cmpnei r3, 0 + 88a8: 0c02 bf 0x88ac // 88ac + 88aa: 2000 addi r0, 1 + 88ac: 2200 addi r2, 1 + 88ae: 644a cmpne r2, r1 + 88b0: 0bf8 bt 0x88a0 // 88a0 + 88b2: 7400 zextb r0, r0 + 88b4: 1482 pop r4-r5 + 88b6: 0000 bkpt + 88b8: 20000a28 .long 0x20000a28 + +Disassembly of section .text.get_key_number0: + +000088bc : + 88bc: 14c2 push r4-r5 + 88be: 3200 movi r2, 0 + 88c0: 3000 movi r0, 0 + 88c2: 1088 lrw r4, 0x20000928 // 88e0 + 88c4: 3501 movi r5, 1 + 88c6: 3120 movi r1, 32 + 88c8: 9460 ld.w r3, (r4, 0x0) + 88ca: 70c9 lsr r3, r2 + 88cc: 68d4 and r3, r5 + 88ce: 3b40 cmpnei r3, 0 + 88d0: 0c02 bf 0x88d4 // 88d4 + 88d2: 2000 addi r0, 1 + 88d4: 2200 addi r2, 1 + 88d6: 644a cmpne r2, r1 + 88d8: 0bf8 bt 0x88c8 // 88c8 + 88da: 7400 zextb r0, r0 + 88dc: 1482 pop r4-r5 + 88de: 0000 bkpt + 88e0: 20000928 .long 0x20000928 + +Disassembly of section .text.get_key_number1: + +000088e4 : + 88e4: 14c2 push r4-r5 + 88e6: 3200 movi r2, 0 + 88e8: 3000 movi r0, 0 + 88ea: 1088 lrw r4, 0x200008bc // 8908 + 88ec: 3501 movi r5, 1 + 88ee: 3120 movi r1, 32 + 88f0: 9460 ld.w r3, (r4, 0x0) + 88f2: 70c9 lsr r3, r2 + 88f4: 68d4 and r3, r5 + 88f6: 3b40 cmpnei r3, 0 + 88f8: 0c02 bf 0x88fc // 88fc + 88fa: 2000 addi r0, 1 + 88fc: 2200 addi r2, 1 + 88fe: 644a cmpne r2, r1 + 8900: 0bf8 bt 0x88f0 // 88f0 + 8902: 7400 zextb r0, r0 + 8904: 1482 pop r4-r5 + 8906: 0000 bkpt + 8908: 200008bc .long 0x200008bc + +Disassembly of section .text.get_key_number2: + +0000890c : + 890c: 14c2 push r4-r5 + 890e: 3200 movi r2, 0 + 8910: 3000 movi r0, 0 + 8912: 1088 lrw r4, 0x200009a0 // 8930 + 8914: 3501 movi r5, 1 + 8916: 3120 movi r1, 32 + 8918: 9460 ld.w r3, (r4, 0x0) + 891a: 70c9 lsr r3, r2 + 891c: 68d4 and r3, r5 + 891e: 3b40 cmpnei r3, 0 + 8920: 0c02 bf 0x8924 // 8924 + 8922: 2000 addi r0, 1 + 8924: 2200 addi r2, 1 + 8926: 644a cmpne r2, r1 + 8928: 0bf8 bt 0x8918 // 8918 + 892a: 7400 zextb r0, r0 + 892c: 1482 pop r4-r5 + 892e: 0000 bkpt + 8930: 200009a0 .long 0x200009a0 + +Disassembly of section .text.TK_Baseline_prog: + +00008934 : + 8934: 14c4 push r4-r7 + 8936: 142a subi r14, r14, 40 + 8938: 1264 lrw r3, 0x2000099c // 8a48 + 893a: 1245 lrw r2, 0x20000b45 // 8a4c + 893c: 6c0b mov r0, r2 + 893e: 9360 ld.w r3, (r3, 0x0) + 8940: b865 st.w r3, (r14, 0x14) + 8942: 1264 lrw r3, 0x2000096c // 8a50 + 8944: 9360 ld.w r3, (r3, 0x0) + 8946: b864 st.w r3, (r14, 0x10) + 8948: 1263 lrw r3, 0x20000bfc // 8a54 + 894a: 9360 ld.w r3, (r3, 0x0) + 894c: b863 st.w r3, (r14, 0xc) + 894e: 1263 lrw r3, 0x20000058 // 8a58 + 8950: 9360 ld.w r3, (r3, 0x0) + 8952: b866 st.w r3, (r14, 0x18) + 8954: 1262 lrw r3, 0x20000054 // 8a5c + 8956: 9360 ld.w r3, (r3, 0x0) + 8958: b860 st.w r3, (r14, 0x0) + 895a: 3306 movi r3, 6 + 895c: b861 st.w r3, (r14, 0x4) + 895e: 1261 lrw r3, 0x20000070 // 8a60 + 8960: b862 st.w r3, (r14, 0x8) + 8962: 3103 movi r1, 3 + 8964: 8260 ld.b r3, (r2, 0x0) + 8966: 74cc zextb r3, r3 + 8968: 3b41 cmpnei r3, 1 + 896a: 0c66 bf 0x8a36 // 8a36 + 896c: 3b40 cmpnei r3, 0 + 896e: 0c5c bf 0x8a26 // 8a26 + 8970: 3b42 cmpnei r3, 2 + 8972: 0c65 bf 0x8a3c // 8a3c + 8974: 3301 movi r3, 1 + 8976: 9886 ld.w r4, (r14, 0x18) + 8978: b462 st.w r3, (r4, 0x8) + 897a: 9862 ld.w r3, (r14, 0x8) + 897c: 3400 movi r4, 0 + 897e: a380 st.b r4, (r3, 0x0) + 8980: 9862 ld.w r3, (r14, 0x8) + 8982: 8360 ld.b r3, (r3, 0x0) + 8984: 3b40 cmpnei r3, 0 + 8986: 0ffd bf 0x8980 // 8980 + 8988: 6c03 mov r0, r0 + 898a: 1197 lrw r4, 0x20000888 // 8a64 + 898c: 3300 movi r3, 0 + 898e: b887 st.w r4, (r14, 0x1c) + 8990: 1196 lrw r4, 0x20000bda // 8a68 + 8992: b888 st.w r4, (r14, 0x20) + 8994: 1196 lrw r4, 0x20000a32 // 8a6c + 8996: b889 st.w r4, (r14, 0x24) + 8998: 8080 ld.b r4, (r0, 0x0) + 899a: 3c41 cmpnei r4, 1 + 899c: 080f bt 0x89ba // 89ba + 899e: 9880 ld.w r4, (r14, 0x0) + 89a0: 43a2 lsli r5, r3, 2 + 89a2: 6150 addu r5, r4 + 89a4: 95c0 ld.w r6, (r5, 0x0) + 89a6: 4381 lsli r4, r3, 1 + 89a8: 98e7 ld.w r7, (r14, 0x1c) + 89aa: 7599 zexth r6, r6 + 89ac: 61d0 addu r7, r4 + 89ae: afc0 st.h r6, (r7, 0x0) + 89b0: 95a0 ld.w r5, (r5, 0x0) + 89b2: 98c8 ld.w r6, (r14, 0x20) + 89b4: 7555 zexth r5, r5 + 89b6: 6118 addu r4, r6 + 89b8: aca0 st.h r5, (r4, 0x0) + 89ba: 8080 ld.b r4, (r0, 0x0) + 89bc: 3c42 cmpnei r4, 2 + 89be: 080f bt 0x89dc // 89dc + 89c0: 9880 ld.w r4, (r14, 0x0) + 89c2: 43a2 lsli r5, r3, 2 + 89c4: 6150 addu r5, r4 + 89c6: 95c0 ld.w r6, (r5, 0x0) + 89c8: 4381 lsli r4, r3, 1 + 89ca: 98e9 ld.w r7, (r14, 0x24) + 89cc: 7599 zexth r6, r6 + 89ce: 61d0 addu r7, r4 + 89d0: afc0 st.h r6, (r7, 0x0) + 89d2: 95a0 ld.w r5, (r5, 0x0) + 89d4: 7555 zexth r5, r5 + 89d6: 11c7 lrw r6, 0x20000970 // 8a70 + 89d8: 6118 addu r4, r6 + 89da: aca0 st.h r5, (r4, 0x0) + 89dc: 8080 ld.b r4, (r0, 0x0) + 89de: 3c40 cmpnei r4, 0 + 89e0: 080f bt 0x89fe // 89fe + 89e2: 9880 ld.w r4, (r14, 0x0) + 89e4: 43a2 lsli r5, r3, 2 + 89e6: 6150 addu r5, r4 + 89e8: 95c0 ld.w r6, (r5, 0x0) + 89ea: 4381 lsli r4, r3, 1 + 89ec: 11e2 lrw r7, 0x20000b48 // 8a74 + 89ee: 7599 zexth r6, r6 + 89f0: 61d0 addu r7, r4 + 89f2: afc0 st.h r6, (r7, 0x0) + 89f4: 95a0 ld.w r5, (r5, 0x0) + 89f6: 7555 zexth r5, r5 + 89f8: 11c0 lrw r6, 0x20000a66 // 8a78 + 89fa: 6118 addu r4, r6 + 89fc: aca0 st.h r5, (r4, 0x0) + 89fe: 2300 addi r3, 1 + 8a00: 3b51 cmpnei r3, 17 + 8a02: 0bcb bt 0x8998 // 8998 + 8a04: 2900 subi r1, 1 + 8a06: 7444 zextb r1, r1 + 8a08: 3940 cmpnei r1, 0 + 8a0a: 0bad bt 0x8964 // 8964 + 8a0c: 9861 ld.w r3, (r14, 0x4) + 8a0e: 2b00 subi r3, 1 + 8a10: 74cc zextb r3, r3 + 8a12: 3b40 cmpnei r3, 0 + 8a14: b861 st.w r3, (r14, 0x4) + 8a16: 0ba6 bt 0x8962 // 8962 + 8a18: 1079 lrw r3, 0x20000934 // 8a7c + 8a1a: 3201 movi r2, 1 + 8a1c: a340 st.b r2, (r3, 0x0) + 8a1e: 3300 movi r3, 0 + 8a20: a060 st.b r3, (r0, 0x0) + 8a22: 140a addi r14, r14, 40 + 8a24: 1484 pop r4-r7 + 8a26: 1077 lrw r3, 0x40011200 // 8a80 + 8a28: 9883 ld.w r4, (r14, 0xc) + 8a2a: b390 st.w r4, (r3, 0x40) + 8a2c: 8260 ld.b r3, (r2, 0x0) + 8a2e: 2300 addi r3, 1 + 8a30: 74cc zextb r3, r3 + 8a32: a260 st.b r3, (r2, 0x0) + 8a34: 07a0 br 0x8974 // 8974 + 8a36: 1073 lrw r3, 0x40011200 // 8a80 + 8a38: 9884 ld.w r4, (r14, 0x10) + 8a3a: 07f8 br 0x8a2a // 8a2a + 8a3c: 1071 lrw r3, 0x40011200 // 8a80 + 8a3e: 9885 ld.w r4, (r14, 0x14) + 8a40: b390 st.w r4, (r3, 0x40) + 8a42: 3300 movi r3, 0 + 8a44: 07f7 br 0x8a32 // 8a32 + 8a46: 0000 bkpt + 8a48: 2000099c .long 0x2000099c + 8a4c: 20000b45 .long 0x20000b45 + 8a50: 2000096c .long 0x2000096c + 8a54: 20000bfc .long 0x20000bfc + 8a58: 20000058 .long 0x20000058 + 8a5c: 20000054 .long 0x20000054 + 8a60: 20000070 .long 0x20000070 + 8a64: 20000888 .long 0x20000888 + 8a68: 20000bda .long 0x20000bda + 8a6c: 20000a32 .long 0x20000a32 + 8a70: 20000970 .long 0x20000970 + 8a74: 20000b48 .long 0x20000b48 + 8a78: 20000a66 .long 0x20000a66 + 8a7c: 20000934 .long 0x20000934 + 8a80: 40011200 .long 0x40011200 + +Disassembly of section .text.TK_Baseline_prog2: + +00008a84 : + 8a84: 14c4 push r4-r7 + 8a86: 142a subi r14, r14, 40 + 8a88: 1262 lrw r3, 0x20000934 // 8b90 + 8a8a: 3200 movi r2, 0 + 8a8c: a340 st.b r2, (r3, 0x0) + 8a8e: b866 st.w r3, (r14, 0x18) + 8a90: 3103 movi r1, 3 + 8a92: 1241 lrw r2, 0x2000099c // 8b94 + 8a94: 1261 lrw r3, 0x20000070 // 8b98 + 8a96: 9240 ld.w r2, (r2, 0x0) + 8a98: b844 st.w r2, (r14, 0x10) + 8a9a: b861 st.w r3, (r14, 0x4) + 8a9c: 1240 lrw r2, 0x2000096c // 8b9c + 8a9e: 9240 ld.w r2, (r2, 0x0) + 8aa0: b843 st.w r2, (r14, 0xc) + 8aa2: 1240 lrw r2, 0x20000bfc // 8ba0 + 8aa4: 9240 ld.w r2, (r2, 0x0) + 8aa6: b842 st.w r2, (r14, 0x8) + 8aa8: 115f lrw r2, 0x20000058 // 8ba4 + 8aaa: 9240 ld.w r2, (r2, 0x0) + 8aac: b845 st.w r2, (r14, 0x14) + 8aae: 115f lrw r2, 0x20000054 // 8ba8 + 8ab0: 9240 ld.w r2, (r2, 0x0) + 8ab2: b840 st.w r2, (r14, 0x0) + 8ab4: 115e lrw r2, 0x20000b45 // 8bac + 8ab6: 6c0b mov r0, r2 + 8ab8: 8260 ld.b r3, (r2, 0x0) + 8aba: 74cc zextb r3, r3 + 8abc: 3b41 cmpnei r3, 1 + 8abe: 0c60 bf 0x8b7e // 8b7e + 8ac0: 3b40 cmpnei r3, 0 + 8ac2: 0c56 bf 0x8b6e // 8b6e + 8ac4: 3b42 cmpnei r3, 2 + 8ac6: 0c5f bf 0x8b84 // 8b84 + 8ac8: 3301 movi r3, 1 + 8aca: 9885 ld.w r4, (r14, 0x14) + 8acc: b462 st.w r3, (r4, 0x8) + 8ace: 9861 ld.w r3, (r14, 0x4) + 8ad0: 3400 movi r4, 0 + 8ad2: a380 st.b r4, (r3, 0x0) + 8ad4: 9861 ld.w r3, (r14, 0x4) + 8ad6: 8360 ld.b r3, (r3, 0x0) + 8ad8: 3b40 cmpnei r3, 0 + 8ada: 0ffd bf 0x8ad4 // 8ad4 + 8adc: 6c03 mov r0, r0 + 8ade: 1195 lrw r4, 0x20000888 // 8bb0 + 8ae0: 3300 movi r3, 0 + 8ae2: b887 st.w r4, (r14, 0x1c) + 8ae4: 1194 lrw r4, 0x20000bda // 8bb4 + 8ae6: b888 st.w r4, (r14, 0x20) + 8ae8: 1194 lrw r4, 0x20000a32 // 8bb8 + 8aea: b889 st.w r4, (r14, 0x24) + 8aec: 8080 ld.b r4, (r0, 0x0) + 8aee: 3c41 cmpnei r4, 1 + 8af0: 080f bt 0x8b0e // 8b0e + 8af2: 9880 ld.w r4, (r14, 0x0) + 8af4: 43a2 lsli r5, r3, 2 + 8af6: 6150 addu r5, r4 + 8af8: 95c0 ld.w r6, (r5, 0x0) + 8afa: 4381 lsli r4, r3, 1 + 8afc: 98e7 ld.w r7, (r14, 0x1c) + 8afe: 7599 zexth r6, r6 + 8b00: 61d0 addu r7, r4 + 8b02: afc0 st.h r6, (r7, 0x0) + 8b04: 95a0 ld.w r5, (r5, 0x0) + 8b06: 98c8 ld.w r6, (r14, 0x20) + 8b08: 7555 zexth r5, r5 + 8b0a: 6118 addu r4, r6 + 8b0c: aca0 st.h r5, (r4, 0x0) + 8b0e: 8080 ld.b r4, (r0, 0x0) + 8b10: 3c42 cmpnei r4, 2 + 8b12: 080f bt 0x8b30 // 8b30 + 8b14: 9880 ld.w r4, (r14, 0x0) + 8b16: 43a2 lsli r5, r3, 2 + 8b18: 6150 addu r5, r4 + 8b1a: 95c0 ld.w r6, (r5, 0x0) + 8b1c: 4381 lsli r4, r3, 1 + 8b1e: 98e9 ld.w r7, (r14, 0x24) + 8b20: 7599 zexth r6, r6 + 8b22: 61d0 addu r7, r4 + 8b24: afc0 st.h r6, (r7, 0x0) + 8b26: 95a0 ld.w r5, (r5, 0x0) + 8b28: 7555 zexth r5, r5 + 8b2a: 11c5 lrw r6, 0x20000970 // 8bbc + 8b2c: 6118 addu r4, r6 + 8b2e: aca0 st.h r5, (r4, 0x0) + 8b30: 8080 ld.b r4, (r0, 0x0) + 8b32: 3c40 cmpnei r4, 0 + 8b34: 080f bt 0x8b52 // 8b52 + 8b36: 9880 ld.w r4, (r14, 0x0) + 8b38: 43a2 lsli r5, r3, 2 + 8b3a: 6150 addu r5, r4 + 8b3c: 95c0 ld.w r6, (r5, 0x0) + 8b3e: 4381 lsli r4, r3, 1 + 8b40: 11e0 lrw r7, 0x20000b48 // 8bc0 + 8b42: 7599 zexth r6, r6 + 8b44: 61d0 addu r7, r4 + 8b46: afc0 st.h r6, (r7, 0x0) + 8b48: 95a0 ld.w r5, (r5, 0x0) + 8b4a: 7555 zexth r5, r5 + 8b4c: 10de lrw r6, 0x20000a66 // 8bc4 + 8b4e: 6118 addu r4, r6 + 8b50: aca0 st.h r5, (r4, 0x0) + 8b52: 2300 addi r3, 1 + 8b54: 3b51 cmpnei r3, 17 + 8b56: 0bcb bt 0x8aec // 8aec + 8b58: 2900 subi r1, 1 + 8b5a: 7444 zextb r1, r1 + 8b5c: 3940 cmpnei r1, 0 + 8b5e: 0bad bt 0x8ab8 // 8ab8 + 8b60: 9866 ld.w r3, (r14, 0x18) + 8b62: 3201 movi r2, 1 + 8b64: a340 st.b r2, (r3, 0x0) + 8b66: 3300 movi r3, 0 + 8b68: a060 st.b r3, (r0, 0x0) + 8b6a: 140a addi r14, r14, 40 + 8b6c: 1484 pop r4-r7 + 8b6e: 1077 lrw r3, 0x40011200 // 8bc8 + 8b70: 9882 ld.w r4, (r14, 0x8) + 8b72: b390 st.w r4, (r3, 0x40) + 8b74: 8260 ld.b r3, (r2, 0x0) + 8b76: 2300 addi r3, 1 + 8b78: 74cc zextb r3, r3 + 8b7a: a260 st.b r3, (r2, 0x0) + 8b7c: 07a6 br 0x8ac8 // 8ac8 + 8b7e: 1073 lrw r3, 0x40011200 // 8bc8 + 8b80: 9883 ld.w r4, (r14, 0xc) + 8b82: 07f8 br 0x8b72 // 8b72 + 8b84: 1071 lrw r3, 0x40011200 // 8bc8 + 8b86: 9884 ld.w r4, (r14, 0x10) + 8b88: b390 st.w r4, (r3, 0x40) + 8b8a: 3300 movi r3, 0 + 8b8c: 07f7 br 0x8b7a // 8b7a + 8b8e: 0000 bkpt + 8b90: 20000934 .long 0x20000934 + 8b94: 2000099c .long 0x2000099c + 8b98: 20000070 .long 0x20000070 + 8b9c: 2000096c .long 0x2000096c + 8ba0: 20000bfc .long 0x20000bfc + 8ba4: 20000058 .long 0x20000058 + 8ba8: 20000054 .long 0x20000054 + 8bac: 20000b45 .long 0x20000b45 + 8bb0: 20000888 .long 0x20000888 + 8bb4: 20000bda .long 0x20000bda + 8bb8: 20000a32 .long 0x20000a32 + 8bbc: 20000970 .long 0x20000970 + 8bc0: 20000b48 .long 0x20000b48 + 8bc4: 20000a66 .long 0x20000a66 + 8bc8: 40011200 .long 0x40011200 + +Disassembly of section .text.tk_poweron_data_fineturn: + +00008bcc : + 8bcc: 14d4 push r4-r7, r15 + 8bce: 1433 subi r14, r14, 76 + 8bd0: 117e lrw r3, 0x20000070 // 8cc8 + 8bd2: 8366 ld.b r3, (r3, 0x6) + 8bd4: 3b41 cmpnei r3, 1 + 8bd6: 0877 bt 0x8cc4 // 8cc4 + 8bd8: 117d lrw r3, 0x20000bda // 8ccc + 8bda: b860 st.w r3, (r14, 0x0) + 8bdc: 3300 movi r3, 0 + 8bde: 301e movi r0, 30 + 8be0: 4321 lsli r1, r3, 1 + 8be2: 1a02 addi r2, r14, 8 + 8be4: 6048 addu r1, r2 + 8be6: 115b lrw r2, 0x2000026e // 8cd0 + 8be8: 608c addu r2, r3 + 8bea: 8a40 ld.h r2, (r2, 0x0) + 8bec: 4245 lsli r2, r2, 5 + 8bee: 6080 addu r2, r0 + 8bf0: b140 st.w r2, (r1, 0x0) + 8bf2: 2301 addi r3, 2 + 8bf4: 3222 movi r2, 34 + 8bf6: 648e cmpne r3, r2 + 8bf8: 0bf4 bt 0x8be0 // 8be0 + 8bfa: 1197 lrw r4, 0x20000242 // 8cd4 + 8bfc: 3200 movi r2, 0 + 8bfe: 3000 movi r0, 0 + 8c00: b881 st.w r4, (r14, 0x4) + 8c02: 11d6 lrw r6, 0x20000970 // 8cd8 + 8c04: 4261 lsli r3, r2, 1 + 8c06: 98a0 ld.w r5, (r14, 0x0) + 8c08: 614c addu r5, r3 + 8c0a: 8d20 ld.h r1, (r5, 0x0) + 8c0c: 7445 zexth r1, r1 + 8c0e: 3940 cmpnei r1, 0 + 8c10: 0c36 bf 0x8c7c // 8c7c + 8c12: 5e2c addu r1, r6, r3 + 8c14: 8920 ld.h r1, (r1, 0x0) + 8c16: 7445 zexth r1, r1 + 8c18: 3940 cmpnei r1, 0 + 8c1a: 0c31 bf 0x8c7c // 8c7c + 8c1c: 1130 lrw r1, 0x20000a66 // 8cdc + 8c1e: 60c4 addu r3, r1 + 8c20: 8b60 ld.h r3, (r3, 0x0) + 8c22: 74cd zexth r3, r3 + 8c24: 3b40 cmpnei r3, 0 + 8c26: 0c2b bf 0x8c7c // 8c7c + 8c28: 8d60 ld.h r3, (r5, 0x0) + 8c2a: 1f02 addi r7, r14, 8 + 8c2c: 42a2 lsli r5, r2, 2 + 8c2e: 615c addu r5, r7 + 8c30: 74cd zexth r3, r3 + 8c32: 95a0 ld.w r5, (r5, 0x0) + 8c34: 60d6 subu r3, r5 + 8c36: 3bdf btsti r3, 31 + 8c38: 0c03 bf 0x8c3e // 8c3e + 8c3a: 3700 movi r7, 0 + 8c3c: 5f6d subu r3, r7, r3 + 8c3e: 3b24 cmplti r3, 5 + 8c40: 0817 bt 0x8c6e // 8c6e + 8c42: 4261 lsli r3, r2, 1 + 8c44: 60d8 addu r3, r6 + 8c46: 8b60 ld.h r3, (r3, 0x0) + 8c48: 74cd zexth r3, r3 + 8c4a: 60d6 subu r3, r5 + 8c4c: 3bdf btsti r3, 31 + 8c4e: 0c03 bf 0x8c54 // 8c54 + 8c50: 3700 movi r7, 0 + 8c52: 5f6d subu r3, r7, r3 + 8c54: 3b24 cmplti r3, 5 + 8c56: 080c bt 0x8c6e // 8c6e + 8c58: 4261 lsli r3, r2, 1 + 8c5a: 604c addu r1, r3 + 8c5c: 8960 ld.h r3, (r1, 0x0) + 8c5e: 74cd zexth r3, r3 + 8c60: 60d6 subu r3, r5 + 8c62: 3bdf btsti r3, 31 + 8c64: 0c03 bf 0x8c6a // 8c6a + 8c66: 3100 movi r1, 0 + 8c68: 596d subu r3, r1, r3 + 8c6a: 3b24 cmplti r3, 5 + 8c6c: 0c08 bf 0x8c7c // 8c7c + 8c6e: 8c60 ld.h r3, (r4, 0x0) + 8c70: 3b06 cmphsi r3, 7 + 8c72: 0805 bt 0x8c7c // 8c7c + 8c74: 2300 addi r3, 1 + 8c76: 2000 addi r0, 1 + 8c78: ac60 st.h r3, (r4, 0x0) + 8c7a: 7400 zextb r0, r0 + 8c7c: 2200 addi r2, 1 + 8c7e: 3a51 cmpnei r2, 17 + 8c80: 2401 addi r4, 2 + 8c82: 0bc1 bt 0x8c04 // 8c04 + 8c84: 3840 cmpnei r0, 0 + 8c86: 0c1f bf 0x8cc4 // 8cc4 + 8c88: 1076 lrw r3, 0x20000058 // 8ce0 + 8c8a: 3200 movi r2, 0 + 8c8c: 9360 ld.w r3, (r3, 0x0) + 8c8e: b342 st.w r2, (r3, 0x8) + 8c90: 10b5 lrw r5, 0x20000b34 // 8ce4 + 8c92: 1076 lrw r3, 0x20000054 // 8ce8 + 8c94: 1016 lrw r0, 0x20000ae4 // 8cec + 8c96: 9380 ld.w r4, (r3, 0x0) + 8c98: 3300 movi r3, 0 + 8c9a: 8040 ld.b r2, (r0, 0x0) + 8c9c: 648c cmphs r3, r2 + 8c9e: 0c04 bf 0x8ca6 // 8ca6 + 8ca0: e3fffef2 bsr 0x8a84 // 8a84 + 8ca4: 079c br 0x8bdc // 8bdc + 8ca6: 5d4c addu r2, r5, r3 + 8ca8: 8240 ld.b r2, (r2, 0x0) + 8caa: 4241 lsli r2, r2, 1 + 8cac: 98e1 ld.w r7, (r14, 0x4) + 8cae: 4322 lsli r1, r3, 2 + 8cb0: 609c addu r2, r7 + 8cb2: 6050 addu r1, r4 + 8cb4: 8a40 ld.h r2, (r2, 0x0) + 8cb6: 91d2 ld.w r6, (r1, 0x48) + 8cb8: 4254 lsli r2, r2, 20 + 8cba: 6c98 or r2, r6 + 8cbc: 2300 addi r3, 1 + 8cbe: b152 st.w r2, (r1, 0x48) + 8cc0: 74cc zextb r3, r3 + 8cc2: 07ec br 0x8c9a // 8c9a + 8cc4: 1413 addi r14, r14, 76 + 8cc6: 1494 pop r4-r7, r15 + 8cc8: 20000070 .long 0x20000070 + 8ccc: 20000bda .long 0x20000bda + 8cd0: 2000026e .long 0x2000026e + 8cd4: 20000242 .long 0x20000242 + 8cd8: 20000970 .long 0x20000970 + 8cdc: 20000a66 .long 0x20000a66 + 8ce0: 20000058 .long 0x20000058 + 8ce4: 20000b34 .long 0x20000b34 + 8ce8: 20000054 .long 0x20000054 + 8cec: 20000ae4 .long 0x20000ae4 + +Disassembly of section .text.TK_Scan_Start: + +00008cf0 : + 8cf0: 1073 lrw r3, 0x20000070 // 8d3c + 8cf2: 1054 lrw r2, 0x20000b45 // 8d40 + 8cf4: 8302 ld.b r0, (r3, 0x2) + 8cf6: 8220 ld.b r1, (r2, 0x0) + 8cf8: 6442 cmpne r0, r1 + 8cfa: 0c16 bf 0x8d26 // 8d26 + 8cfc: 8220 ld.b r1, (r2, 0x0) + 8cfe: 7444 zextb r1, r1 + 8d00: 3941 cmpnei r1, 1 + 8d02: 0c18 bf 0x8d32 // 8d32 + 8d04: 3940 cmpnei r1, 0 + 8d06: 0c11 bf 0x8d28 // 8d28 + 8d08: 3942 cmpnei r1, 2 + 8d0a: 0c16 bf 0x8d36 // 8d36 + 8d0c: 8240 ld.b r2, (r2, 0x0) + 8d0e: 7488 zextb r2, r2 + 8d10: a342 st.b r2, (r3, 0x2) + 8d12: 8341 ld.b r2, (r3, 0x1) + 8d14: 7488 zextb r2, r2 + 8d16: 3a41 cmpnei r2, 1 + 8d18: 0807 bt 0x8d26 // 8d26 + 8d1a: 102b lrw r1, 0x20000058 // 8d44 + 8d1c: 9120 ld.w r1, (r1, 0x0) + 8d1e: b142 st.w r2, (r1, 0x8) + 8d20: 3200 movi r2, 0 + 8d22: a340 st.b r2, (r3, 0x0) + 8d24: a341 st.b r2, (r3, 0x1) + 8d26: 783c jmp r15 + 8d28: 1028 lrw r1, 0x20000bfc // 8d48 + 8d2a: 9100 ld.w r0, (r1, 0x0) + 8d2c: 1028 lrw r1, 0x40011200 // 8d4c + 8d2e: b110 st.w r0, (r1, 0x40) + 8d30: 07ee br 0x8d0c // 8d0c + 8d32: 1028 lrw r1, 0x2000096c // 8d50 + 8d34: 07fb br 0x8d2a // 8d2a + 8d36: 1028 lrw r1, 0x2000099c // 8d54 + 8d38: 07f9 br 0x8d2a // 8d2a + 8d3a: 0000 bkpt + 8d3c: 20000070 .long 0x20000070 + 8d40: 20000b45 .long 0x20000b45 + 8d44: 20000058 .long 0x20000058 + 8d48: 20000bfc .long 0x20000bfc + 8d4c: 40011200 .long 0x40011200 + 8d50: 2000096c .long 0x2000096c + 8d54: 2000099c .long 0x2000099c + +Disassembly of section .text.TK_Keymap_prog: + +00008d58 : + 8d58: 14d4 push r4-r7, r15 + 8d5a: 142a subi r14, r14, 40 + 8d5c: 0171 lrw r3, 0x20000264 // 9094 + 8d5e: 8360 ld.b r3, (r3, 0x0) + 8d60: b860 st.w r3, (r14, 0x0) + 8d62: 3400 movi r4, 0 + 8d64: 0172 lrw r3, 0x20000238 // 9098 + 8d66: 8360 ld.b r3, (r3, 0x0) + 8d68: b863 st.w r3, (r14, 0xc) + 8d6a: 0172 lrw r3, 0x20000241 // 909c + 8d6c: 83a0 ld.b r5, (r3, 0x0) + 8d6e: 0172 lrw r3, 0x20000240 // 90a0 + 8d70: 8360 ld.b r3, (r3, 0x0) + 8d72: b866 st.w r3, (r14, 0x18) + 8d74: 0173 lrw r3, 0x20000bda // 90a4 + 8d76: b868 st.w r3, (r14, 0x20) + 8d78: 0173 lrw r3, 0x20000948 // 90a8 + 8d7a: b864 st.w r3, (r14, 0x10) + 8d7c: b869 st.w r3, (r14, 0x24) + 8d7e: 4461 lsli r3, r4, 1 + 8d80: 9848 ld.w r2, (r14, 0x20) + 8d82: 608c addu r2, r3 + 8d84: 0135 lrw r1, 0x20000888 // 90ac + 8d86: 604c addu r1, r3 + 8d88: 8a40 ld.h r2, (r2, 0x0) + 8d8a: 8920 ld.h r1, (r1, 0x0) + 8d8c: 6086 subu r2, r1 + 8d8e: 9829 ld.w r1, (r14, 0x24) + 8d90: 604c addu r1, r3 + 8d92: 748b sexth r2, r2 + 8d94: a940 st.h r2, (r1, 0x0) + 8d96: 0118 lrw r0, 0x20000a32 // 90b0 + 8d98: 0158 lrw r2, 0x20000970 // 90b4 + 8d9a: 608c addu r2, r3 + 8d9c: 600c addu r0, r3 + 8d9e: 8a40 ld.h r2, (r2, 0x0) + 8da0: 8800 ld.h r0, (r0, 0x0) + 8da2: 6082 subu r2, r0 + 8da4: 01da lrw r6, 0x20000a88 // 90b8 + 8da6: 5e0c addu r0, r6, r3 + 8da8: 748b sexth r2, r2 + 8daa: a840 st.h r2, (r0, 0x0) + 8dac: b8c1 st.w r6, (r14, 0x4) + 8dae: 015b lrw r2, 0x20000a66 // 90bc + 8db0: 011b lrw r0, 0x20000b48 // 90c0 + 8db2: 608c addu r2, r3 + 8db4: 600c addu r0, r3 + 8db6: 8a40 ld.h r2, (r2, 0x0) + 8db8: 8800 ld.h r0, (r0, 0x0) + 8dba: 6082 subu r2, r0 + 8dbc: 011d lrw r0, 0x20000bb4 // 90c4 + 8dbe: 748b sexth r2, r2 + 8dc0: 58ec addu r7, r0, r3 + 8dc2: af40 st.h r2, (r7, 0x0) + 8dc4: 8940 ld.h r2, (r1, 0x0) + 8dc6: 748b sexth r2, r2 + 8dc8: 3adf btsti r2, 31 + 8dca: 015f lrw r2, 0x20000b92 // 90c8 + 8dcc: 60c8 addu r3, r2 + 8dce: b802 st.w r0, (r14, 0x8) + 8dd0: 0c49 bf 0x8e62 // 8e62 + 8dd2: 3200 movi r2, 0 + 8dd4: ab40 st.h r2, (r3, 0x0) + 8dd6: 9821 ld.w r1, (r14, 0x4) + 8dd8: 4461 lsli r3, r4, 1 + 8dda: 604c addu r1, r3 + 8ddc: 8940 ld.h r2, (r1, 0x0) + 8dde: 748b sexth r2, r2 + 8de0: 3adf btsti r2, 31 + 8de2: 0244 lrw r2, 0x200008f0 // 90cc + 8de4: 60c8 addu r3, r2 + 8de6: 0c41 bf 0x8e68 // 8e68 + 8de8: 3200 movi r2, 0 + 8dea: ab40 st.h r2, (r3, 0x0) + 8dec: 9822 ld.w r1, (r14, 0x8) + 8dee: 4461 lsli r3, r4, 1 + 8df0: 604c addu r1, r3 + 8df2: 8940 ld.h r2, (r1, 0x0) + 8df4: 748b sexth r2, r2 + 8df6: 3adf btsti r2, 31 + 8df8: 0249 lrw r2, 0x200008c4 // 90d0 + 8dfa: 60c8 addu r3, r2 + 8dfc: 0c39 bf 0x8e6e // 8e6e + 8dfe: 3200 movi r2, 0 + 8e00: ab40 st.h r2, (r3, 0x0) + 8e02: 9860 ld.w r3, (r14, 0x0) + 8e04: 3b03 cmphsi r3, 4 + 8e06: 4421 lsli r1, r4, 1 + 8e08: 0cb5 bf 0x8f72 // 8f72 + 8e0a: 9864 ld.w r3, (r14, 0x10) + 8e0c: 60c4 addu r3, r1 + 8e0e: 024d lrw r2, 0x20000292 // 90d4 + 8e10: 6048 addu r1, r2 + 8e12: 8b00 ld.h r0, (r3, 0x0) + 8e14: 8940 ld.h r2, (r1, 0x0) + 8e16: 7403 sexth r0, r0 + 8e18: 6409 cmplt r2, r0 + 8e1a: 9820 ld.w r1, (r14, 0x0) + 8e1c: 7c84 mult r2, r1 + 8e1e: 0c9b bf 0x8f54 // 8f54 + 8e20: 8b20 ld.h r1, (r3, 0x0) + 8e22: 7447 sexth r1, r1 + 8e24: 6485 cmplt r1, r2 + 8e26: 0c97 bf 0x8f54 // 8f54 + 8e28: 0233 lrw r1, 0x20000935 // 90d8 + 8e2a: 6050 addu r1, r4 + 8e2c: 8140 ld.b r2, (r1, 0x0) + 8e2e: 2200 addi r2, 1 + 8e30: 7488 zextb r2, r2 + 8e32: a140 st.b r2, (r1, 0x0) + 8e34: 3000 movi r0, 0 + 8e36: 0255 lrw r2, 0x20000914 // 90dc + 8e38: 6090 addu r2, r4 + 8e3a: a200 st.b r0, (r2, 0x0) + 8e3c: 0256 lrw r2, 0x20000a54 // 90e0 + 8e3e: 6090 addu r2, r4 + 8e40: a200 st.b r0, (r2, 0x0) + 8e42: 0256 lrw r2, 0x20000aec // 90e4 + 8e44: 6090 addu r2, r4 + 8e46: a200 st.b r0, (r2, 0x0) + 8e48: 8140 ld.b r2, (r1, 0x0) + 8e4a: 9803 ld.w r0, (r14, 0xc) + 8e4c: 6480 cmphs r0, r2 + 8e4e: 081d bt 0x8e88 // 8e88 + 8e50: 3d40 cmpnei r5, 0 + 8e52: 0811 bt 0x8e74 // 8e74 + 8e54: 025a lrw r2, 0x20000928 // 90e8 + 8e56: 9260 ld.w r3, (r2, 0x0) + 8e58: 3b40 cmpnei r3, 0 + 8e5a: 0815 bt 0x8e84 // 8e84 + 8e5c: 9200 ld.w r0, (r2, 0x0) + 8e5e: 3301 movi r3, 1 + 8e60: 040f br 0x8e7e // 8e7e + 8e62: 8940 ld.h r2, (r1, 0x0) + 8e64: 7489 zexth r2, r2 + 8e66: 07b7 br 0x8dd4 // 8dd4 + 8e68: 8940 ld.h r2, (r1, 0x0) + 8e6a: 7489 zexth r2, r2 + 8e6c: 07bf br 0x8dea // 8dea + 8e6e: 8940 ld.h r2, (r1, 0x0) + 8e70: 7489 zexth r2, r2 + 8e72: 07c7 br 0x8e00 // 8e00 + 8e74: 3d41 cmpnei r5, 1 + 8e76: 085c bt 0x8f2e // 8f2e + 8e78: 0343 lrw r2, 0x20000928 // 90e8 + 8e7a: 6cd7 mov r3, r5 + 8e7c: 9200 ld.w r0, (r2, 0x0) + 8e7e: 70d0 lsl r3, r4 + 8e80: 6cc0 or r3, r0 + 8e82: b260 st.w r3, (r2, 0x0) + 8e84: 3300 movi r3, 0 + 8e86: a160 st.b r3, (r1, 0x0) + 8e88: 4461 lsli r3, r4, 1 + 8e8a: 9844 ld.w r2, (r14, 0x10) + 8e8c: 608c addu r2, r3 + 8e8e: 8ac0 ld.h r6, (r2, 0x0) + 8e90: 034e lrw r2, 0x20000292 // 90d4 + 8e92: 60c8 addu r3, r2 + 8e94: 8be0 ld.h r7, (r3, 0x0) + 8e96: 4702 lsli r0, r7, 2 + 8e98: 3105 movi r1, 5 + 8e9a: e3ffd6b9 bsr 0x3c0c // 3c0c <__divsi3> + 8e9e: 759b sexth r6, r6 + 8ea0: 6419 cmplt r6, r0 + 8ea2: b805 st.w r0, (r14, 0x14) + 8ea4: 0c18 bf 0x8ed4 // 8ed4 + 8ea6: 0351 lrw r2, 0x20000914 // 90dc + 8ea8: 6090 addu r2, r4 + 8eaa: 8260 ld.b r3, (r2, 0x0) + 8eac: 2300 addi r3, 1 + 8eae: 74cc zextb r3, r3 + 8eb0: a260 st.b r3, (r2, 0x0) + 8eb2: 3100 movi r1, 0 + 8eb4: 0376 lrw r3, 0x20000935 // 90d8 + 8eb6: 60d0 addu r3, r4 + 8eb8: a320 st.b r1, (r3, 0x0) + 8eba: 8260 ld.b r3, (r2, 0x0) + 8ebc: 9826 ld.w r1, (r14, 0x18) + 8ebe: 64c4 cmphs r1, r3 + 8ec0: 080a bt 0x8ed4 // 8ed4 + 8ec2: 3300 movi r3, 0 + 8ec4: 0336 lrw r1, 0x20000928 // 90e8 + 8ec6: 2b01 subi r3, 2 + 8ec8: 9100 ld.w r0, (r1, 0x0) + 8eca: 70d3 rotl r3, r4 + 8ecc: 68c0 and r3, r0 + 8ece: b160 st.w r3, (r1, 0x0) + 8ed0: 3300 movi r3, 0 + 8ed2: a260 st.b r3, (r2, 0x0) + 8ed4: 9860 ld.w r3, (r14, 0x0) + 8ed6: 9841 ld.w r2, (r14, 0x4) + 8ed8: 3b03 cmphsi r3, 4 + 8eda: 4461 lsli r3, r4, 1 + 8edc: 60c8 addu r3, r2 + 8ede: 8b40 ld.h r2, (r3, 0x0) + 8ee0: 748b sexth r2, r2 + 8ee2: 0d4d bf 0x917c // 917c + 8ee4: 649d cmplt r7, r2 + 8ee6: 0d3a bf 0x915a // 915a + 8ee8: 8b40 ld.h r2, (r3, 0x0) + 8eea: 9820 ld.w r1, (r14, 0x0) + 8eec: 748b sexth r2, r2 + 8eee: 7c5c mult r1, r7 + 8ef0: 6449 cmplt r2, r1 + 8ef2: 0d34 bf 0x915a // 915a + 8ef4: 133e lrw r1, 0x20000b08 // 90ec + 8ef6: 6050 addu r1, r4 + 8ef8: 8140 ld.b r2, (r1, 0x0) + 8efa: 2200 addi r2, 1 + 8efc: 7488 zextb r2, r2 + 8efe: a140 st.b r2, (r1, 0x0) + 8f00: 3000 movi r0, 0 + 8f02: 135c lrw r2, 0x200009a4 // 90f0 + 8f04: 6090 addu r2, r4 + 8f06: a200 st.b r0, (r2, 0x0) + 8f08: 135b lrw r2, 0x200009ce // 90f4 + 8f0a: 6090 addu r2, r4 + 8f0c: a200 st.b r0, (r2, 0x0) + 8f0e: 135b lrw r2, 0x20000acc // 90f8 + 8f10: 6090 addu r2, r4 + 8f12: a200 st.b r0, (r2, 0x0) + 8f14: 8140 ld.b r2, (r1, 0x0) + 8f16: 9803 ld.w r0, (r14, 0xc) + 8f18: 6480 cmphs r0, r2 + 8f1a: 087d bt 0x9014 // 9014 + 8f1c: 3d40 cmpnei r5, 0 + 8f1e: 0871 bt 0x9000 // 9000 + 8f20: 1357 lrw r2, 0x200008bc // 90fc + 8f22: 9260 ld.w r3, (r2, 0x0) + 8f24: 3b40 cmpnei r3, 0 + 8f26: 0875 bt 0x9010 // 9010 + 8f28: 9200 ld.w r0, (r2, 0x0) + 8f2a: 3301 movi r3, 1 + 8f2c: 046f br 0x900a // 900a + 8f2e: 3d42 cmpnei r5, 2 + 8f30: 0c03 bf 0x8f36 // 8f36 + 8f32: e8000201 br 0x9334 // 9334 + 8f36: 13d3 lrw r6, 0x20000ae2 // 9100 + 8f38: 8b00 ld.h r0, (r3, 0x0) + 8f3a: 8e40 ld.h r2, (r6, 0x0) + 8f3c: 7489 zexth r2, r2 + 8f3e: 7403 sexth r0, r0 + 8f40: 2209 addi r2, 10 + 8f42: 6409 cmplt r2, r0 + 8f44: 0fa0 bf 0x8e84 // 8e84 + 8f46: 8b60 ld.h r3, (r3, 0x0) + 8f48: 74cd zexth r3, r3 + 8f4a: ae60 st.h r3, (r6, 0x0) + 8f4c: 3300 movi r3, 0 + 8f4e: 1347 lrw r2, 0x20000928 // 90e8 + 8f50: b260 st.w r3, (r2, 0x0) + 8f52: 0785 br 0x8e5c // 8e5c + 8f54: 4461 lsli r3, r4, 1 + 8f56: 9824 ld.w r1, (r14, 0x10) + 8f58: 60c4 addu r3, r1 + 8f5a: 8b60 ld.h r3, (r3, 0x0) + 8f5c: 74cf sexth r3, r3 + 8f5e: 64c9 cmplt r2, r3 + 8f60: 0f94 bf 0x8e88 // 8e88 + 8f62: 3300 movi r3, 0 + 8f64: 1341 lrw r2, 0x20000928 // 90e8 + 8f66: 2b01 subi r3, 2 + 8f68: 9220 ld.w r1, (r2, 0x0) + 8f6a: 70d3 rotl r3, r4 + 8f6c: 68c4 and r3, r1 + 8f6e: b260 st.w r3, (r2, 0x0) + 8f70: 078c br 0x8e88 // 8e88 + 8f72: 9844 ld.w r2, (r14, 0x10) + 8f74: 6084 addu r2, r1 + 8f76: 1218 lrw r0, 0x20000292 // 90d4 + 8f78: 8a60 ld.h r3, (r2, 0x0) + 8f7a: 6040 addu r1, r0 + 8f7c: 74cf sexth r3, r3 + 8f7e: 8920 ld.h r1, (r1, 0x0) + 8f80: 64c5 cmplt r1, r3 + 8f82: 0f83 bf 0x8e88 // 8e88 + 8f84: 1360 lrw r3, 0x20000946 // 9104 + 8f86: 8360 ld.b r3, (r3, 0x0) + 8f88: 74cc zextb r3, r3 + 8f8a: 3b40 cmpnei r3, 0 + 8f8c: 0b7e bt 0x8e88 // 8e88 + 8f8e: 1213 lrw r0, 0x20000935 // 90d8 + 8f90: 6010 addu r0, r4 + 8f92: 8020 ld.b r1, (r0, 0x0) + 8f94: 2100 addi r1, 1 + 8f96: 7444 zextb r1, r1 + 8f98: a020 st.b r1, (r0, 0x0) + 8f9a: 3600 movi r6, 0 + 8f9c: 1230 lrw r1, 0x20000914 // 90dc + 8f9e: 6050 addu r1, r4 + 8fa0: a1c0 st.b r6, (r1, 0x0) + 8fa2: 1230 lrw r1, 0x20000a54 // 90e0 + 8fa4: 6050 addu r1, r4 + 8fa6: a1c0 st.b r6, (r1, 0x0) + 8fa8: 122f lrw r1, 0x20000aec // 90e4 + 8faa: 6050 addu r1, r4 + 8fac: a1c0 st.b r6, (r1, 0x0) + 8fae: 8020 ld.b r1, (r0, 0x0) + 8fb0: 98c3 ld.w r6, (r14, 0xc) + 8fb2: 6458 cmphs r6, r1 + 8fb4: 0b6a bt 0x8e88 // 8e88 + 8fb6: 3d40 cmpnei r5, 0 + 8fb8: 0808 bt 0x8fc8 // 8fc8 + 8fba: 124c lrw r2, 0x20000928 // 90e8 + 8fbc: 9260 ld.w r3, (r2, 0x0) + 8fbe: 3b40 cmpnei r3, 0 + 8fc0: 080c bt 0x8fd8 // 8fd8 + 8fc2: 9220 ld.w r1, (r2, 0x0) + 8fc4: 3301 movi r3, 1 + 8fc6: 0406 br 0x8fd2 // 8fd2 + 8fc8: 3d41 cmpnei r5, 1 + 8fca: 080a bt 0x8fde // 8fde + 8fcc: 1247 lrw r2, 0x20000928 // 90e8 + 8fce: 6cd7 mov r3, r5 + 8fd0: 9220 ld.w r1, (r2, 0x0) + 8fd2: 70d0 lsl r3, r4 + 8fd4: 6cc4 or r3, r1 + 8fd6: b260 st.w r3, (r2, 0x0) + 8fd8: 3300 movi r3, 0 + 8fda: a060 st.b r3, (r0, 0x0) + 8fdc: 0756 br 0x8e88 // 8e88 + 8fde: 3d42 cmpnei r5, 2 + 8fe0: 0c02 bf 0x8fe4 // 8fe4 + 8fe2: 05dc br 0x939a // 939a + 8fe4: 12e7 lrw r7, 0x20000ae2 // 9100 + 8fe6: 8ac0 ld.h r6, (r2, 0x0) + 8fe8: 8f20 ld.h r1, (r7, 0x0) + 8fea: 7445 zexth r1, r1 + 8fec: 759b sexth r6, r6 + 8fee: 2109 addi r1, 10 + 8ff0: 6585 cmplt r1, r6 + 8ff2: 0ff3 bf 0x8fd8 // 8fd8 + 8ff4: 8a40 ld.h r2, (r2, 0x0) + 8ff6: 7489 zexth r2, r2 + 8ff8: af40 st.h r2, (r7, 0x0) + 8ffa: 115c lrw r2, 0x20000928 // 90e8 + 8ffc: b260 st.w r3, (r2, 0x0) + 8ffe: 07e2 br 0x8fc2 // 8fc2 + 9000: 3d41 cmpnei r5, 1 + 9002: 089b bt 0x9138 // 9138 + 9004: 115e lrw r2, 0x200008bc // 90fc + 9006: 6cd7 mov r3, r5 + 9008: 9200 ld.w r0, (r2, 0x0) + 900a: 70d0 lsl r3, r4 + 900c: 6cc0 or r3, r0 + 900e: b260 st.w r3, (r2, 0x0) + 9010: 3300 movi r3, 0 + 9012: a160 st.b r3, (r1, 0x0) + 9014: 4461 lsli r3, r4, 1 + 9016: 9841 ld.w r2, (r14, 0x4) + 9018: 608c addu r2, r3 + 901a: 8a60 ld.h r3, (r2, 0x0) + 901c: 74cf sexth r3, r3 + 901e: 9845 ld.w r2, (r14, 0x14) + 9020: 648d cmplt r3, r2 + 9022: 0c18 bf 0x9052 // 9052 + 9024: 1153 lrw r2, 0x200009a4 // 90f0 + 9026: 6090 addu r2, r4 + 9028: 8260 ld.b r3, (r2, 0x0) + 902a: 2300 addi r3, 1 + 902c: 74cc zextb r3, r3 + 902e: a260 st.b r3, (r2, 0x0) + 9030: 3100 movi r1, 0 + 9032: 116f lrw r3, 0x20000b08 // 90ec + 9034: 60d0 addu r3, r4 + 9036: a320 st.b r1, (r3, 0x0) + 9038: 8260 ld.b r3, (r2, 0x0) + 903a: 9826 ld.w r1, (r14, 0x18) + 903c: 64c4 cmphs r1, r3 + 903e: 080a bt 0x9052 // 9052 + 9040: 3300 movi r3, 0 + 9042: 112f lrw r1, 0x200008bc // 90fc + 9044: 2b01 subi r3, 2 + 9046: 9100 ld.w r0, (r1, 0x0) + 9048: 70d3 rotl r3, r4 + 904a: 68c0 and r3, r0 + 904c: b160 st.w r3, (r1, 0x0) + 904e: 3300 movi r3, 0 + 9050: a260 st.b r3, (r2, 0x0) + 9052: 9860 ld.w r3, (r14, 0x0) + 9054: 9842 ld.w r2, (r14, 0x8) + 9056: 3b03 cmphsi r3, 4 + 9058: 4461 lsli r3, r4, 1 + 905a: 60c8 addu r3, r2 + 905c: 8b40 ld.h r2, (r3, 0x0) + 905e: 748b sexth r2, r2 + 9060: 0d26 bf 0x92ac // 92ac + 9062: 9820 ld.w r1, (r14, 0x0) + 9064: 649d cmplt r7, r2 + 9066: 7c5c mult r1, r7 + 9068: 0d13 bf 0x928e // 928e + 906a: 8b40 ld.h r2, (r3, 0x0) + 906c: 748b sexth r2, r2 + 906e: 6449 cmplt r2, r1 + 9070: 0d0f bf 0x928e // 928e + 9072: 1126 lrw r1, 0x20000ab0 // 9108 + 9074: 6050 addu r1, r4 + 9076: 8140 ld.b r2, (r1, 0x0) + 9078: 2200 addi r2, 1 + 907a: 7488 zextb r2, r2 + 907c: a140 st.b r2, (r1, 0x0) + 907e: 3000 movi r0, 0 + 9080: 1143 lrw r2, 0x20000b1e // 910c + 9082: 6090 addu r2, r4 + 9084: a200 st.b r0, (r2, 0x0) + 9086: 1143 lrw r2, 0x200008aa // 9110 + 9088: 6090 addu r2, r4 + 908a: a200 st.b r0, (r2, 0x0) + 908c: 1142 lrw r2, 0x200009bc // 9114 + 908e: 6090 addu r2, r4 + 9090: a200 st.b r0, (r2, 0x0) + 9092: 0443 br 0x9118 // 9118 + 9094: 20000264 .long 0x20000264 + 9098: 20000238 .long 0x20000238 + 909c: 20000241 .long 0x20000241 + 90a0: 20000240 .long 0x20000240 + 90a4: 20000bda .long 0x20000bda + 90a8: 20000948 .long 0x20000948 + 90ac: 20000888 .long 0x20000888 + 90b0: 20000a32 .long 0x20000a32 + 90b4: 20000970 .long 0x20000970 + 90b8: 20000a88 .long 0x20000a88 + 90bc: 20000a66 .long 0x20000a66 + 90c0: 20000b48 .long 0x20000b48 + 90c4: 20000bb4 .long 0x20000bb4 + 90c8: 20000b92 .long 0x20000b92 + 90cc: 200008f0 .long 0x200008f0 + 90d0: 200008c4 .long 0x200008c4 + 90d4: 20000292 .long 0x20000292 + 90d8: 20000935 .long 0x20000935 + 90dc: 20000914 .long 0x20000914 + 90e0: 20000a54 .long 0x20000a54 + 90e4: 20000aec .long 0x20000aec + 90e8: 20000928 .long 0x20000928 + 90ec: 20000b08 .long 0x20000b08 + 90f0: 200009a4 .long 0x200009a4 + 90f4: 200009ce .long 0x200009ce + 90f8: 20000acc .long 0x20000acc + 90fc: 200008bc .long 0x200008bc + 9100: 20000ae2 .long 0x20000ae2 + 9104: 20000946 .long 0x20000946 + 9108: 20000ab0 .long 0x20000ab0 + 910c: 20000b1e .long 0x20000b1e + 9110: 200008aa .long 0x200008aa + 9114: 200009bc .long 0x200009bc + 9118: 8140 ld.b r2, (r1, 0x0) + 911a: 9803 ld.w r0, (r14, 0xc) + 911c: 6480 cmphs r0, r2 + 911e: 0881 bt 0x9220 // 9220 + 9120: 3d40 cmpnei r5, 0 + 9122: 0874 bt 0x920a // 920a + 9124: 014b lrw r2, 0x200009a0 // 9474 + 9126: 9260 ld.w r3, (r2, 0x0) + 9128: 3b40 cmpnei r3, 0 + 912a: 0879 bt 0x921c // 921c + 912c: 3301 movi r3, 1 + 912e: 9200 ld.w r0, (r2, 0x0) + 9130: 70d0 lsl r3, r4 + 9132: 6cc0 or r3, r0 + 9134: b260 st.w r3, (r2, 0x0) + 9136: 0473 br 0x921c // 921c + 9138: 3d42 cmpnei r5, 2 + 913a: 0960 bt 0x93fa // 93fa + 913c: 01d0 lrw r6, 0x20000bd8 // 9478 + 913e: 8b00 ld.h r0, (r3, 0x0) + 9140: 8e40 ld.h r2, (r6, 0x0) + 9142: 7489 zexth r2, r2 + 9144: 7403 sexth r0, r0 + 9146: 2209 addi r2, 10 + 9148: 6409 cmplt r2, r0 + 914a: 0f63 bf 0x9010 // 9010 + 914c: 8b60 ld.h r3, (r3, 0x0) + 914e: 74cd zexth r3, r3 + 9150: ae60 st.h r3, (r6, 0x0) + 9152: 3300 movi r3, 0 + 9154: 0155 lrw r2, 0x200008bc // 947c + 9156: b260 st.w r3, (r2, 0x0) + 9158: 06e8 br 0x8f28 // 8f28 + 915a: 9841 ld.w r2, (r14, 0x4) + 915c: 4461 lsli r3, r4, 1 + 915e: 60c8 addu r3, r2 + 9160: 8b60 ld.h r3, (r3, 0x0) + 9162: 9840 ld.w r2, (r14, 0x0) + 9164: 74cf sexth r3, r3 + 9166: 7c9c mult r2, r7 + 9168: 64c9 cmplt r2, r3 + 916a: 0f55 bf 0x9014 // 9014 + 916c: 3300 movi r3, 0 + 916e: 015b lrw r2, 0x200008bc // 947c + 9170: 2b01 subi r3, 2 + 9172: 9220 ld.w r1, (r2, 0x0) + 9174: 70d3 rotl r3, r4 + 9176: 68c4 and r3, r1 + 9178: b260 st.w r3, (r2, 0x0) + 917a: 074d br 0x9014 // 9014 + 917c: 649d cmplt r7, r2 + 917e: 0f4b bf 0x9014 // 9014 + 9180: 015f lrw r2, 0x20000946 // 9480 + 9182: 8240 ld.b r2, (r2, 0x0) + 9184: 7488 zextb r2, r2 + 9186: 3a40 cmpnei r2, 0 + 9188: b847 st.w r2, (r14, 0x1c) + 918a: 0b45 bt 0x9014 // 9014 + 918c: 0201 lrw r0, 0x20000b08 // 9484 + 918e: 6010 addu r0, r4 + 9190: 8020 ld.b r1, (r0, 0x0) + 9192: 2100 addi r1, 1 + 9194: 7444 zextb r1, r1 + 9196: a020 st.b r1, (r0, 0x0) + 9198: 3600 movi r6, 0 + 919a: 0223 lrw r1, 0x200009a4 // 9488 + 919c: 6050 addu r1, r4 + 919e: a1c0 st.b r6, (r1, 0x0) + 91a0: 0224 lrw r1, 0x200009ce // 948c + 91a2: 6050 addu r1, r4 + 91a4: a1c0 st.b r6, (r1, 0x0) + 91a6: 0224 lrw r1, 0x20000acc // 9490 + 91a8: 6050 addu r1, r4 + 91aa: a1c0 st.b r6, (r1, 0x0) + 91ac: 8020 ld.b r1, (r0, 0x0) + 91ae: 98c3 ld.w r6, (r14, 0xc) + 91b0: 6458 cmphs r6, r1 + 91b2: 0b31 bt 0x9014 // 9014 + 91b4: 3d40 cmpnei r5, 0 + 91b6: 0808 bt 0x91c6 // 91c6 + 91b8: 024e lrw r2, 0x200008bc // 947c + 91ba: 9260 ld.w r3, (r2, 0x0) + 91bc: 3b40 cmpnei r3, 0 + 91be: 0823 bt 0x9204 // 9204 + 91c0: 9220 ld.w r1, (r2, 0x0) + 91c2: 3301 movi r3, 1 + 91c4: 0406 br 0x91d0 // 91d0 + 91c6: 3d41 cmpnei r5, 1 + 91c8: 0808 bt 0x91d8 // 91d8 + 91ca: 0252 lrw r2, 0x200008bc // 947c + 91cc: 6cd7 mov r3, r5 + 91ce: 9220 ld.w r1, (r2, 0x0) + 91d0: 70d0 lsl r3, r4 + 91d2: 6cc4 or r3, r1 + 91d4: b260 st.w r3, (r2, 0x0) + 91d6: 0417 br 0x9204 // 9204 + 91d8: 3d42 cmpnei r5, 2 + 91da: 0942 bt 0x945e // 945e + 91dc: 8bc0 ld.h r6, (r3, 0x0) + 91de: 745b sexth r1, r6 + 91e0: 02d9 lrw r6, 0x20000bd8 // 9478 + 91e2: 6c87 mov r2, r1 + 91e4: 8e20 ld.h r1, (r6, 0x0) + 91e6: 7445 zexth r1, r1 + 91e8: 2109 addi r1, 10 + 91ea: 6485 cmplt r1, r2 + 91ec: 0c0c bf 0x9204 // 9204 + 91ee: 8b60 ld.h r3, (r3, 0x0) + 91f0: 74cd zexth r3, r3 + 91f2: ae60 st.h r3, (r6, 0x0) + 91f4: 9867 ld.w r3, (r14, 0x1c) + 91f6: 023d lrw r1, 0x200008bc // 947c + 91f8: b160 st.w r3, (r1, 0x0) + 91fa: 3301 movi r3, 1 + 91fc: 9140 ld.w r2, (r1, 0x0) + 91fe: 70d0 lsl r3, r4 + 9200: 6cc8 or r3, r2 + 9202: b160 st.w r3, (r1, 0x0) + 9204: 3300 movi r3, 0 + 9206: a060 st.b r3, (r0, 0x0) + 9208: 0706 br 0x9014 // 9014 + 920a: 3d41 cmpnei r5, 1 + 920c: 0830 bt 0x926c // 926c + 920e: 0345 lrw r2, 0x200009a0 // 9474 + 9210: 6cd7 mov r3, r5 + 9212: 9200 ld.w r0, (r2, 0x0) + 9214: 70d0 lsl r3, r4 + 9216: 6cc0 or r3, r0 + 9218: b260 st.w r3, (r2, 0x0) + 921a: 6c03 mov r0, r0 + 921c: 3300 movi r3, 0 + 921e: a160 st.b r3, (r1, 0x0) + 9220: 4461 lsli r3, r4, 1 + 9222: 9842 ld.w r2, (r14, 0x8) + 9224: 608c addu r2, r3 + 9226: 8a60 ld.h r3, (r2, 0x0) + 9228: 74cf sexth r3, r3 + 922a: 9845 ld.w r2, (r14, 0x14) + 922c: 648d cmplt r3, r2 + 922e: 0c18 bf 0x925e // 925e + 9230: 0346 lrw r2, 0x20000b1e // 9494 + 9232: 6090 addu r2, r4 + 9234: 8260 ld.b r3, (r2, 0x0) + 9236: 2300 addi r3, 1 + 9238: 74cc zextb r3, r3 + 923a: a260 st.b r3, (r2, 0x0) + 923c: 3100 movi r1, 0 + 923e: 0368 lrw r3, 0x20000ab0 // 9498 + 9240: 60d0 addu r3, r4 + 9242: a320 st.b r1, (r3, 0x0) + 9244: 8260 ld.b r3, (r2, 0x0) + 9246: 9826 ld.w r1, (r14, 0x18) + 9248: 64c4 cmphs r1, r3 + 924a: 080a bt 0x925e // 925e + 924c: 3300 movi r3, 0 + 924e: 0335 lrw r1, 0x200009a0 // 9474 + 9250: 2b01 subi r3, 2 + 9252: 9100 ld.w r0, (r1, 0x0) + 9254: 70d3 rotl r3, r4 + 9256: 68c0 and r3, r0 + 9258: b160 st.w r3, (r1, 0x0) + 925a: 3300 movi r3, 0 + 925c: a260 st.b r3, (r2, 0x0) + 925e: 2400 addi r4, 1 + 9260: 3c51 cmpnei r4, 17 + 9262: 0c03 bf 0x9268 // 9268 + 9264: e800fd8d br 0x8d7e // 8d7e + 9268: 140a addi r14, r14, 40 + 926a: 1494 pop r4-r7, r15 + 926c: 3d42 cmpnei r5, 2 + 926e: 0948 bt 0x94fe // 94fe + 9270: 03d4 lrw r6, 0x2000096a // 949c + 9272: 8b00 ld.h r0, (r3, 0x0) + 9274: 8e40 ld.h r2, (r6, 0x0) + 9276: 7489 zexth r2, r2 + 9278: 7403 sexth r0, r0 + 927a: 2209 addi r2, 10 + 927c: 6409 cmplt r2, r0 + 927e: 0fcf bf 0x921c // 921c + 9280: 8b60 ld.h r3, (r3, 0x0) + 9282: 74cd zexth r3, r3 + 9284: ae60 st.h r3, (r6, 0x0) + 9286: 3300 movi r3, 0 + 9288: 135b lrw r2, 0x200009a0 // 9474 + 928a: b260 st.w r3, (r2, 0x0) + 928c: 0750 br 0x912c // 912c + 928e: 4461 lsli r3, r4, 1 + 9290: 9842 ld.w r2, (r14, 0x8) + 9292: 60c8 addu r3, r2 + 9294: 8b60 ld.h r3, (r3, 0x0) + 9296: 74cf sexth r3, r3 + 9298: 64c5 cmplt r1, r3 + 929a: 0fc3 bf 0x9220 // 9220 + 929c: 3300 movi r3, 0 + 929e: 1356 lrw r2, 0x200009a0 // 9474 + 92a0: 2b01 subi r3, 2 + 92a2: 9220 ld.w r1, (r2, 0x0) + 92a4: 70d3 rotl r3, r4 + 92a6: 68c4 and r3, r1 + 92a8: b260 st.w r3, (r2, 0x0) + 92aa: 07bb br 0x9220 // 9220 + 92ac: 649d cmplt r7, r2 + 92ae: 0fb9 bf 0x9220 // 9220 + 92b0: 1354 lrw r2, 0x20000946 // 9480 + 92b2: 8240 ld.b r2, (r2, 0x0) + 92b4: 7488 zextb r2, r2 + 92b6: 3a40 cmpnei r2, 0 + 92b8: 0bb4 bt 0x9220 // 9220 + 92ba: 1318 lrw r0, 0x20000ab0 // 9498 + 92bc: 6010 addu r0, r4 + 92be: 8020 ld.b r1, (r0, 0x0) + 92c0: 2100 addi r1, 1 + 92c2: 7444 zextb r1, r1 + 92c4: a020 st.b r1, (r0, 0x0) + 92c6: 3600 movi r6, 0 + 92c8: 1333 lrw r1, 0x20000b1e // 9494 + 92ca: 6050 addu r1, r4 + 92cc: a1c0 st.b r6, (r1, 0x0) + 92ce: 1335 lrw r1, 0x200008aa // 94a0 + 92d0: 6050 addu r1, r4 + 92d2: a1c0 st.b r6, (r1, 0x0) + 92d4: 1334 lrw r1, 0x200009bc // 94a4 + 92d6: 6050 addu r1, r4 + 92d8: a1c0 st.b r6, (r1, 0x0) + 92da: 8020 ld.b r1, (r0, 0x0) + 92dc: 98c3 ld.w r6, (r14, 0xc) + 92de: 6458 cmphs r6, r1 + 92e0: 0ba0 bt 0x9220 // 9220 + 92e2: 3d40 cmpnei r5, 0 + 92e4: 0808 bt 0x92f4 // 92f4 + 92e6: 1344 lrw r2, 0x200009a0 // 9474 + 92e8: 9260 ld.w r3, (r2, 0x0) + 92ea: 3b40 cmpnei r3, 0 + 92ec: 0821 bt 0x932e // 932e + 92ee: 9220 ld.w r1, (r2, 0x0) + 92f0: 3301 movi r3, 1 + 92f2: 0406 br 0x92fe // 92fe + 92f4: 3d41 cmpnei r5, 1 + 92f6: 0808 bt 0x9306 // 9306 + 92f8: 125f lrw r2, 0x200009a0 // 9474 + 92fa: 6cd7 mov r3, r5 + 92fc: 9220 ld.w r1, (r2, 0x0) + 92fe: 70d0 lsl r3, r4 + 9300: 6cc4 or r3, r1 + 9302: b260 st.w r3, (r2, 0x0) + 9304: 0415 br 0x932e // 932e + 9306: 3d42 cmpnei r5, 2 + 9308: 092a bt 0x955c // 955c + 930a: 13e5 lrw r7, 0x2000096a // 949c + 930c: 8bc0 ld.h r6, (r3, 0x0) + 930e: 8f20 ld.h r1, (r7, 0x0) + 9310: 7445 zexth r1, r1 + 9312: 759b sexth r6, r6 + 9314: 2109 addi r1, 10 + 9316: 6585 cmplt r1, r6 + 9318: 0c0b bf 0x932e // 932e + 931a: 8b60 ld.h r3, (r3, 0x0) + 931c: 1236 lrw r1, 0x200009a0 // 9474 + 931e: 74cd zexth r3, r3 + 9320: af60 st.h r3, (r7, 0x0) + 9322: b140 st.w r2, (r1, 0x0) + 9324: 3301 movi r3, 1 + 9326: 9140 ld.w r2, (r1, 0x0) + 9328: 70d0 lsl r3, r4 + 932a: 6cc8 or r3, r2 + 932c: b160 st.w r3, (r1, 0x0) + 932e: 3300 movi r3, 0 + 9330: a060 st.b r3, (r0, 0x0) + 9332: 0777 br 0x9220 // 9220 + 9334: 3d43 cmpnei r5, 3 + 9336: 0c03 bf 0x933c // 933c + 9338: e800fda6 br 0x8e84 // 8e84 + 933c: 125b lrw r2, 0x20000ae2 // 94a8 + 933e: 8bc0 ld.h r6, (r3, 0x0) + 9340: 8a00 ld.h r0, (r2, 0x0) + 9342: 7401 zexth r0, r0 + 9344: 759b sexth r6, r6 + 9346: 2009 addi r0, 10 + 9348: 6581 cmplt r0, r6 + 934a: 0c0c bf 0x9362 // 9362 + 934c: 8b60 ld.h r3, (r3, 0x0) + 934e: 74cd zexth r3, r3 + 9350: aa60 st.h r3, (r2, 0x0) + 9352: 3300 movi r3, 0 + 9354: 1216 lrw r0, 0x20000928 // 94ac + 9356: b060 st.w r3, (r0, 0x0) + 9358: 3301 movi r3, 1 + 935a: 90c0 ld.w r6, (r0, 0x0) + 935c: 70d0 lsl r3, r4 + 935e: 6cd8 or r3, r6 + 9360: b060 st.w r3, (r0, 0x0) + 9362: 9804 ld.w r0, (r14, 0x10) + 9364: 4461 lsli r3, r4, 1 + 9366: 60c0 addu r3, r0 + 9368: 8b00 ld.h r0, (r3, 0x0) + 936a: 8a40 ld.h r2, (r2, 0x0) + 936c: 7489 zexth r2, r2 + 936e: 7403 sexth r0, r0 + 9370: 2a04 subi r2, 5 + 9372: 6481 cmplt r0, r2 + 9374: 0803 bt 0x937a // 937a + 9376: e800fd87 br 0x8e84 // 8e84 + 937a: 12ce lrw r6, 0x200008ec // 94b0 + 937c: 8b00 ld.h r0, (r3, 0x0) + 937e: 8e40 ld.h r2, (r6, 0x0) + 9380: 7489 zexth r2, r2 + 9382: 7403 sexth r0, r0 + 9384: 2204 addi r2, 5 + 9386: 6409 cmplt r2, r0 + 9388: 0803 bt 0x938e // 938e + 938a: e800fd7d br 0x8e84 // 8e84 + 938e: 8b60 ld.h r3, (r3, 0x0) + 9390: 74cd zexth r3, r3 + 9392: ae60 st.h r3, (r6, 0x0) + 9394: 1246 lrw r2, 0x20000928 // 94ac + 9396: e800fd63 br 0x8e5c // 8e5c + 939a: 3d43 cmpnei r5, 3 + 939c: 0c02 bf 0x93a0 // 93a0 + 939e: 061d br 0x8fd8 // 8fd8 + 93a0: 12c2 lrw r6, 0x20000ae2 // 94a8 + 93a2: 8ae0 ld.h r7, (r2, 0x0) + 93a4: 8e20 ld.h r1, (r6, 0x0) + 93a6: 7445 zexth r1, r1 + 93a8: 75df sexth r7, r7 + 93aa: 2109 addi r1, 10 + 93ac: 65c5 cmplt r1, r7 + 93ae: 0c0b bf 0x93c4 // 93c4 + 93b0: 8a40 ld.h r2, (r2, 0x0) + 93b2: 7489 zexth r2, r2 + 93b4: ae40 st.h r2, (r6, 0x0) + 93b6: 115e lrw r2, 0x20000928 // 94ac + 93b8: b260 st.w r3, (r2, 0x0) + 93ba: 3301 movi r3, 1 + 93bc: 9220 ld.w r1, (r2, 0x0) + 93be: 70d0 lsl r3, r4 + 93c0: 6cc4 or r3, r1 + 93c2: b260 st.w r3, (r2, 0x0) + 93c4: 9844 ld.w r2, (r14, 0x10) + 93c6: 4461 lsli r3, r4, 1 + 93c8: 60c8 addu r3, r2 + 93ca: 8b40 ld.h r2, (r3, 0x0) + 93cc: 8e20 ld.h r1, (r6, 0x0) + 93ce: 7445 zexth r1, r1 + 93d0: 748b sexth r2, r2 + 93d2: 2904 subi r1, 5 + 93d4: 6449 cmplt r2, r1 + 93d6: 0802 bt 0x93da // 93da + 93d8: 0600 br 0x8fd8 // 8fd8 + 93da: 11d6 lrw r6, 0x200008ec // 94b0 + 93dc: 8b20 ld.h r1, (r3, 0x0) + 93de: 8e40 ld.h r2, (r6, 0x0) + 93e0: 7489 zexth r2, r2 + 93e2: 7447 sexth r1, r1 + 93e4: 2204 addi r2, 5 + 93e6: 6449 cmplt r2, r1 + 93e8: 0803 bt 0x93ee // 93ee + 93ea: e800fdf7 br 0x8fd8 // 8fd8 + 93ee: 8b60 ld.h r3, (r3, 0x0) + 93f0: 74cd zexth r3, r3 + 93f2: ae60 st.h r3, (r6, 0x0) + 93f4: 114e lrw r2, 0x20000928 // 94ac + 93f6: e800fde6 br 0x8fc2 // 8fc2 + 93fa: 3d43 cmpnei r5, 3 + 93fc: 0c02 bf 0x9400 // 9400 + 93fe: 0609 br 0x9010 // 9010 + 9400: 105e lrw r2, 0x20000bd8 // 9478 + 9402: 8bc0 ld.h r6, (r3, 0x0) + 9404: 8a00 ld.h r0, (r2, 0x0) + 9406: 7401 zexth r0, r0 + 9408: 759b sexth r6, r6 + 940a: 2009 addi r0, 10 + 940c: 6581 cmplt r0, r6 + 940e: 0c0c bf 0x9426 // 9426 + 9410: 8b60 ld.h r3, (r3, 0x0) + 9412: 74cd zexth r3, r3 + 9414: aa60 st.h r3, (r2, 0x0) + 9416: 3300 movi r3, 0 + 9418: 1019 lrw r0, 0x200008bc // 947c + 941a: b060 st.w r3, (r0, 0x0) + 941c: 3301 movi r3, 1 + 941e: 90c0 ld.w r6, (r0, 0x0) + 9420: 70d0 lsl r3, r4 + 9422: 6cd8 or r3, r6 + 9424: b060 st.w r3, (r0, 0x0) + 9426: 9801 ld.w r0, (r14, 0x4) + 9428: 4461 lsli r3, r4, 1 + 942a: 60c0 addu r3, r0 + 942c: 8b00 ld.h r0, (r3, 0x0) + 942e: 8a40 ld.h r2, (r2, 0x0) + 9430: 7489 zexth r2, r2 + 9432: 7403 sexth r0, r0 + 9434: 2a04 subi r2, 5 + 9436: 6481 cmplt r0, r2 + 9438: 0803 bt 0x943e // 943e + 943a: e800fdeb br 0x9010 // 9010 + 943e: 10de lrw r6, 0x20000aea // 94b4 + 9440: 8b00 ld.h r0, (r3, 0x0) + 9442: 8e40 ld.h r2, (r6, 0x0) + 9444: 7489 zexth r2, r2 + 9446: 7403 sexth r0, r0 + 9448: 2204 addi r2, 5 + 944a: 6409 cmplt r2, r0 + 944c: 0803 bt 0x9452 // 9452 + 944e: e800fde1 br 0x9010 // 9010 + 9452: 8b60 ld.h r3, (r3, 0x0) + 9454: 74cd zexth r3, r3 + 9456: ae60 st.h r3, (r6, 0x0) + 9458: 1049 lrw r2, 0x200008bc // 947c + 945a: e800fd67 br 0x8f28 // 8f28 + 945e: 3d43 cmpnei r5, 3 + 9460: 0ad2 bt 0x9204 // 9204 + 9462: 8b20 ld.h r1, (r3, 0x0) + 9464: 10c5 lrw r6, 0x20000bd8 // 9478 + 9466: 7487 sexth r2, r1 + 9468: 8e20 ld.h r1, (r6, 0x0) + 946a: 7445 zexth r1, r1 + 946c: 2109 addi r1, 10 + 946e: 6485 cmplt r1, r2 + 9470: 0c2f bf 0x94ce // 94ce + 9472: 0423 br 0x94b8 // 94b8 + 9474: 200009a0 .long 0x200009a0 + 9478: 20000bd8 .long 0x20000bd8 + 947c: 200008bc .long 0x200008bc + 9480: 20000946 .long 0x20000946 + 9484: 20000b08 .long 0x20000b08 + 9488: 200009a4 .long 0x200009a4 + 948c: 200009ce .long 0x200009ce + 9490: 20000acc .long 0x20000acc + 9494: 20000b1e .long 0x20000b1e + 9498: 20000ab0 .long 0x20000ab0 + 949c: 2000096a .long 0x2000096a + 94a0: 200008aa .long 0x200008aa + 94a4: 200009bc .long 0x200009bc + 94a8: 20000ae2 .long 0x20000ae2 + 94ac: 20000928 .long 0x20000928 + 94b0: 200008ec .long 0x200008ec + 94b4: 20000aea .long 0x20000aea + 94b8: 8b60 ld.h r3, (r3, 0x0) + 94ba: 74cd zexth r3, r3 + 94bc: ae60 st.h r3, (r6, 0x0) + 94be: 9867 ld.w r3, (r14, 0x1c) + 94c0: 113d lrw r1, 0x200008bc // 95b4 + 94c2: b160 st.w r3, (r1, 0x0) + 94c4: 3301 movi r3, 1 + 94c6: 9140 ld.w r2, (r1, 0x0) + 94c8: 70d0 lsl r3, r4 + 94ca: 6cc8 or r3, r2 + 94cc: b160 st.w r3, (r1, 0x0) + 94ce: 9841 ld.w r2, (r14, 0x4) + 94d0: 4461 lsli r3, r4, 1 + 94d2: 60c8 addu r3, r2 + 94d4: 8b40 ld.h r2, (r3, 0x0) + 94d6: 8e20 ld.h r1, (r6, 0x0) + 94d8: 7445 zexth r1, r1 + 94da: 748b sexth r2, r2 + 94dc: 2904 subi r1, 5 + 94de: 6449 cmplt r2, r1 + 94e0: 0e92 bf 0x9204 // 9204 + 94e2: 11d6 lrw r6, 0x20000aea // 95b8 + 94e4: 8b20 ld.h r1, (r3, 0x0) + 94e6: 8e40 ld.h r2, (r6, 0x0) + 94e8: 7489 zexth r2, r2 + 94ea: 7447 sexth r1, r1 + 94ec: 2204 addi r2, 5 + 94ee: 6449 cmplt r2, r1 + 94f0: 0802 bt 0x94f4 // 94f4 + 94f2: 0689 br 0x9204 // 9204 + 94f4: 8b60 ld.h r3, (r3, 0x0) + 94f6: 74cd zexth r3, r3 + 94f8: ae60 st.h r3, (r6, 0x0) + 94fa: 114f lrw r2, 0x200008bc // 95b4 + 94fc: 0662 br 0x91c0 // 91c0 + 94fe: 3d43 cmpnei r5, 3 + 9500: 0a8e bt 0x921c // 921c + 9502: 114f lrw r2, 0x2000096a // 95bc + 9504: 8bc0 ld.h r6, (r3, 0x0) + 9506: 8a00 ld.h r0, (r2, 0x0) + 9508: 7401 zexth r0, r0 + 950a: 759b sexth r6, r6 + 950c: 2009 addi r0, 10 + 950e: 6581 cmplt r0, r6 + 9510: 0c0c bf 0x9528 // 9528 + 9512: 8b60 ld.h r3, (r3, 0x0) + 9514: 74cd zexth r3, r3 + 9516: aa60 st.h r3, (r2, 0x0) + 9518: 3300 movi r3, 0 + 951a: 110a lrw r0, 0x200009a0 // 95c0 + 951c: b060 st.w r3, (r0, 0x0) + 951e: 3301 movi r3, 1 + 9520: 90c0 ld.w r6, (r0, 0x0) + 9522: 70d0 lsl r3, r4 + 9524: 6cd8 or r3, r6 + 9526: b060 st.w r3, (r0, 0x0) + 9528: 9802 ld.w r0, (r14, 0x8) + 952a: 4461 lsli r3, r4, 1 + 952c: 60c0 addu r3, r0 + 952e: 8b00 ld.h r0, (r3, 0x0) + 9530: 8a40 ld.h r2, (r2, 0x0) + 9532: 7489 zexth r2, r2 + 9534: 7403 sexth r0, r0 + 9536: 2a04 subi r2, 5 + 9538: 6481 cmplt r0, r2 + 953a: 0802 bt 0x953e // 953e + 953c: 0670 br 0x921c // 921c + 953e: 11c2 lrw r6, 0x20000a30 // 95c4 + 9540: 8b00 ld.h r0, (r3, 0x0) + 9542: 8e40 ld.h r2, (r6, 0x0) + 9544: 7489 zexth r2, r2 + 9546: 7403 sexth r0, r0 + 9548: 2204 addi r2, 5 + 954a: 6409 cmplt r2, r0 + 954c: 0802 bt 0x9550 // 9550 + 954e: 0667 br 0x921c // 921c + 9550: 8b60 ld.h r3, (r3, 0x0) + 9552: 74cd zexth r3, r3 + 9554: ae60 st.h r3, (r6, 0x0) + 9556: 105b lrw r2, 0x200009a0 // 95c0 + 9558: e800fdea br 0x912c // 912c + 955c: 3d43 cmpnei r5, 3 + 955e: 0ae8 bt 0x932e // 932e + 9560: 10d7 lrw r6, 0x2000096a // 95bc + 9562: 8be0 ld.h r7, (r3, 0x0) + 9564: 8e20 ld.h r1, (r6, 0x0) + 9566: 7445 zexth r1, r1 + 9568: 75df sexth r7, r7 + 956a: 2109 addi r1, 10 + 956c: 65c5 cmplt r1, r7 + 956e: 0c0b bf 0x9584 // 9584 + 9570: 8b60 ld.h r3, (r3, 0x0) + 9572: 1034 lrw r1, 0x200009a0 // 95c0 + 9574: 74cd zexth r3, r3 + 9576: ae60 st.h r3, (r6, 0x0) + 9578: b140 st.w r2, (r1, 0x0) + 957a: 3301 movi r3, 1 + 957c: 9140 ld.w r2, (r1, 0x0) + 957e: 70d0 lsl r3, r4 + 9580: 6cc8 or r3, r2 + 9582: b160 st.w r3, (r1, 0x0) + 9584: 9842 ld.w r2, (r14, 0x8) + 9586: 4461 lsli r3, r4, 1 + 9588: 60c8 addu r3, r2 + 958a: 8b40 ld.h r2, (r3, 0x0) + 958c: 8e20 ld.h r1, (r6, 0x0) + 958e: 7445 zexth r1, r1 + 9590: 748b sexth r2, r2 + 9592: 2904 subi r1, 5 + 9594: 6449 cmplt r2, r1 + 9596: 0ecc bf 0x932e // 932e + 9598: 10cb lrw r6, 0x20000a30 // 95c4 + 959a: 8b20 ld.h r1, (r3, 0x0) + 959c: 8e40 ld.h r2, (r6, 0x0) + 959e: 7489 zexth r2, r2 + 95a0: 7447 sexth r1, r1 + 95a2: 2204 addi r2, 5 + 95a4: 6449 cmplt r2, r1 + 95a6: 0ec4 bf 0x932e // 932e + 95a8: 8b60 ld.h r3, (r3, 0x0) + 95aa: 74cd zexth r3, r3 + 95ac: ae60 st.h r3, (r6, 0x0) + 95ae: 1045 lrw r2, 0x200009a0 // 95c0 + 95b0: 069f br 0x92ee // 92ee + 95b2: 0000 bkpt + 95b4: 200008bc .long 0x200008bc + 95b8: 20000aea .long 0x20000aea + 95bc: 2000096a .long 0x2000096a + 95c0: 200009a0 .long 0x200009a0 + 95c4: 20000a30 .long 0x20000a30 + +Disassembly of section .text.TK_overflow_predict: + +000095c8 : + 95c8: 14d4 push r4-r7, r15 + 95ca: 1422 subi r14, r14, 8 + 95cc: 113c lrw r1, 0x20000070 // 96bc + 95ce: 8167 ld.b r3, (r1, 0x7) + 95d0: 3b41 cmpnei r3, 1 + 95d2: 0823 bt 0x9618 // 9618 + 95d4: 115b lrw r2, 0x20000aaa // 96c0 + 95d6: 8260 ld.b r3, (r2, 0x0) + 95d8: 2300 addi r3, 1 + 95da: 74cc zextb r3, r3 + 95dc: a260 st.b r3, (r2, 0x0) + 95de: 8260 ld.b r3, (r2, 0x0) + 95e0: 1119 lrw r0, 0x20000265 // 96c4 + 95e2: 8000 ld.b r0, (r0, 0x0) + 95e4: 64c0 cmphs r0, r3 + 95e6: 0819 bt 0x9618 // 9618 + 95e8: 3300 movi r3, 0 + 95ea: a260 st.b r3, (r2, 0x0) + 95ec: 11b7 lrw r5, 0x200009b5 // 96c8 + 95ee: 8560 ld.b r3, (r5, 0x0) + 95f0: 3b40 cmpnei r3, 0 + 95f2: 0c15 bf 0x961c // 961c + 95f4: 8560 ld.b r3, (r5, 0x0) + 95f6: 3b41 cmpnei r3, 1 + 95f8: 0810 bt 0x9618 // 9618 + 95fa: 3300 movi r3, 0 + 95fc: a560 st.b r3, (r5, 0x0) + 95fe: 3200 movi r2, 0 + 9600: 1173 lrw r3, 0x20000058 // 96cc + 9602: 1114 lrw r0, 0x20000ae4 // 96d0 + 9604: 11b4 lrw r5, 0x20000b34 // 96d4 + 9606: 11d5 lrw r6, 0x20000242 // 96d8 + 9608: 9360 ld.w r3, (r3, 0x0) + 960a: b342 st.w r2, (r3, 0x8) + 960c: 1174 lrw r3, 0x20000054 // 96dc + 960e: 9380 ld.w r4, (r3, 0x0) + 9610: 3300 movi r3, 0 + 9612: 8040 ld.b r2, (r0, 0x0) + 9614: 648c cmphs r3, r2 + 9616: 0c44 bf 0x969e // 969e + 9618: 1402 addi r14, r14, 8 + 961a: 1494 pop r4-r7, r15 + 961c: 597e addi r3, r1, 8 + 961e: 3600 movi r6, 0 + 9620: 11f0 lrw r7, 0x20000268 // 96e0 + 9622: b860 st.w r3, (r14, 0x0) + 9624: 9760 ld.w r3, (r7, 0x0) + 9626: 70d9 lsr r3, r6 + 9628: 3201 movi r2, 1 + 962a: 68c8 and r3, r2 + 962c: 3b40 cmpnei r3, 0 + 962e: 0c34 bf 0x9696 // 9696 + 9630: 4681 lsli r4, r6, 1 + 9632: 9860 ld.w r3, (r14, 0x0) + 9634: 60d0 addu r3, r4 + 9636: 8b00 ld.h r0, (r3, 0x0) + 9638: e3ffc084 bsr 0x1740 // 1740 <__floatunsidf> + 963c: 6cc7 mov r3, r1 + 963e: 3180 movi r1, 128 + 9640: 6c83 mov r2, r0 + 9642: 4137 lsli r1, r1, 23 + 9644: 3000 movi r0, 0 + 9646: e3ffb5b7 bsr 0x1b4 // 1b4 <__GI_pow> + 964a: 1167 lrw r3, 0x2000026e // 96e4 + 964c: 60d0 addu r3, r4 + 964e: 8b60 ld.h r3, (r3, 0x0) + 9650: 4364 lsli r3, r3, 4 + 9652: 230e addi r3, 15 + 9654: b861 st.w r3, (r14, 0x4) + 9656: e3ffbb79 bsr 0xd48 // d48 <__fixunsdfsi> + 965a: 9861 ld.w r3, (r14, 0x4) + 965c: 7cc0 mult r3, r0 + 965e: 1143 lrw r2, 0x20000b6a // 96e8 + 9660: 740d zexth r0, r3 + 9662: 6090 addu r2, r4 + 9664: 1162 lrw r3, 0x20000bda // 96ec + 9666: 60d0 addu r3, r4 + 9668: aa00 st.h r0, (r2, 0x0) + 966a: 8b60 ld.h r3, (r3, 0x0) + 966c: 8a00 ld.h r0, (r2, 0x0) + 966e: 7401 zexth r0, r0 + 9670: 325f movi r2, 95 + 9672: 74cd zexth r3, r3 + 9674: 7c08 mult r0, r2 + 9676: 3164 movi r1, 100 + 9678: b861 st.w r3, (r14, 0x4) + 967a: e3ffd2c9 bsr 0x3c0c // 3c0c <__divsi3> + 967e: 9861 ld.w r3, (r14, 0x4) + 9680: 64c1 cmplt r0, r3 + 9682: 0c0a bf 0x9696 // 9696 + 9684: 1075 lrw r3, 0x20000242 // 96d8 + 9686: 610c addu r4, r3 + 9688: 8c60 ld.h r3, (r4, 0x0) + 968a: 3b06 cmphsi r3, 7 + 968c: 0805 bt 0x9696 // 9696 + 968e: 2300 addi r3, 1 + 9690: ac60 st.h r3, (r4, 0x0) + 9692: 3301 movi r3, 1 + 9694: a560 st.b r3, (r5, 0x0) + 9696: 2600 addi r6, 1 + 9698: 3e51 cmpnei r6, 17 + 969a: 0bc5 bt 0x9624 // 9624 + 969c: 07ac br 0x95f4 // 95f4 + 969e: 5d4c addu r2, r5, r3 + 96a0: 8240 ld.b r2, (r2, 0x0) + 96a2: 4241 lsli r2, r2, 1 + 96a4: 4322 lsli r1, r3, 2 + 96a6: 6098 addu r2, r6 + 96a8: 6050 addu r1, r4 + 96aa: 8a40 ld.h r2, (r2, 0x0) + 96ac: 91f2 ld.w r7, (r1, 0x48) + 96ae: 4254 lsli r2, r2, 20 + 96b0: 6c9c or r2, r7 + 96b2: 2300 addi r3, 1 + 96b4: b152 st.w r2, (r1, 0x48) + 96b6: 74cc zextb r3, r3 + 96b8: 07ad br 0x9612 // 9612 + 96ba: 0000 bkpt + 96bc: 20000070 .long 0x20000070 + 96c0: 20000aaa .long 0x20000aaa + 96c4: 20000265 .long 0x20000265 + 96c8: 200009b5 .long 0x200009b5 + 96cc: 20000058 .long 0x20000058 + 96d0: 20000ae4 .long 0x20000ae4 + 96d4: 20000b34 .long 0x20000b34 + 96d8: 20000242 .long 0x20000242 + 96dc: 20000054 .long 0x20000054 + 96e0: 20000268 .long 0x20000268 + 96e4: 2000026e .long 0x2000026e + 96e8: 20000b6a .long 0x20000b6a + 96ec: 20000bda .long 0x20000bda + +Disassembly of section .text.TK_Baseline_tracking: + +000096f0 : + 96f0: 14d4 push r4-r7, r15 + 96f2: 1421 subi r14, r14, 4 + 96f4: 014a lrw r2, 0x20000a26 // 9a48 + 96f6: 8260 ld.b r3, (r2, 0x0) + 96f8: 2300 addi r3, 1 + 96fa: 74cc zextb r3, r3 + 96fc: a260 st.b r3, (r2, 0x0) + 96fe: 8260 ld.b r3, (r2, 0x0) + 9700: 012c lrw r1, 0x20000265 // 9a4c + 9702: 8120 ld.b r1, (r1, 0x0) + 9704: 644c cmphs r3, r1 + 9706: 0803 bt 0x970c // 970c + 9708: e800020f br 0x9b26 // 9b26 + 970c: 3300 movi r3, 0 + 970e: a260 st.b r3, (r2, 0x0) + 9710: 016f lrw r3, 0x20000928 // 9a50 + 9712: 9360 ld.w r3, (r3, 0x0) + 9714: 3b40 cmpnei r3, 0 + 9716: 0c03 bf 0x971c // 971c + 9718: e8000209 br 0x9b2a // 9b2a + 971c: 0171 lrw r3, 0x20000948 // 9a54 + 971e: 0150 lrw r2, 0x20000292 // 9a58 + 9720: 3100 movi r1, 0 + 9722: b860 st.w r3, (r14, 0x0) + 9724: 6d0f mov r4, r3 + 9726: 0111 lrw r0, 0x20000888 // 9a5c + 9728: 4161 lsli r3, r1, 1 + 972a: 98a0 ld.w r5, (r14, 0x0) + 972c: 614c addu r5, r3 + 972e: 8da0 ld.h r5, (r5, 0x0) + 9730: 7557 sexth r5, r5 + 9732: 3ddf btsti r5, 31 + 9734: 0c1c bf 0x976c // 976c + 9736: 01d4 lrw r6, 0x20000bda // 9a60 + 9738: 58ac addu r5, r0, r3 + 973a: 618c addu r6, r3 + 973c: 8da0 ld.h r5, (r5, 0x0) + 973e: 8ec0 ld.h r6, (r6, 0x0) + 9740: 7599 zexth r6, r6 + 9742: 7555 zexth r5, r5 + 9744: 615a subu r5, r6 + 9746: 8ac0 ld.h r6, (r2, 0x0) + 9748: 6595 cmplt r5, r6 + 974a: 0811 bt 0x976c // 976c + 974c: 01b9 lrw r5, 0x20000aec // 9a64 + 974e: 6144 addu r5, r1 + 9750: 85c0 ld.b r6, (r5, 0x0) + 9752: 2600 addi r6, 1 + 9754: 7598 zextb r6, r6 + 9756: a5c0 st.b r6, (r5, 0x0) + 9758: 01db lrw r6, 0x20000090 // 9a68 + 975a: 85e0 ld.b r7, (r5, 0x0) + 975c: 86ca ld.b r6, (r6, 0xa) + 975e: 65d8 cmphs r6, r7 + 9760: 0806 bt 0x976c // 976c + 9762: 01dc lrw r6, 0x20000994 // 9a6c + 9764: 3701 movi r7, 1 + 9766: a6e0 st.b r7, (r6, 0x0) + 9768: 3600 movi r6, 0 + 976a: a5c0 st.b r6, (r5, 0x0) + 976c: 5cac addu r5, r4, r3 + 976e: 8da0 ld.h r5, (r5, 0x0) + 9770: 7557 sexth r5, r5 + 9772: 3d20 cmplti r5, 1 + 9774: 081d bt 0x97ae // 97ae + 9776: 02a4 lrw r5, 0x20000bda // 9a60 + 9778: 614c addu r5, r3 + 977a: 58cc addu r6, r0, r3 + 977c: 8da0 ld.h r5, (r5, 0x0) + 977e: 8ec0 ld.h r6, (r6, 0x0) + 9780: 7599 zexth r6, r6 + 9782: 7555 zexth r5, r5 + 9784: 615a subu r5, r6 + 9786: 8ac0 ld.h r6, (r2, 0x0) + 9788: 46c2 lsli r6, r6, 2 + 978a: 6595 cmplt r5, r6 + 978c: 0811 bt 0x97ae // 97ae + 978e: 02a6 lrw r5, 0x20000a54 // 9a70 + 9790: 6144 addu r5, r1 + 9792: 85c0 ld.b r6, (r5, 0x0) + 9794: 2600 addi r6, 1 + 9796: 7598 zextb r6, r6 + 9798: a5c0 st.b r6, (r5, 0x0) + 979a: 02cb lrw r6, 0x20000090 // 9a68 + 979c: 85e0 ld.b r7, (r5, 0x0) + 979e: 86cb ld.b r6, (r6, 0xb) + 97a0: 65d8 cmphs r6, r7 + 97a2: 0806 bt 0x97ae // 97ae + 97a4: 02cd lrw r6, 0x20000994 // 9a6c + 97a6: 3701 movi r7, 1 + 97a8: a6e0 st.b r7, (r6, 0x0) + 97aa: 3600 movi r6, 0 + 97ac: a5c0 st.b r6, (r5, 0x0) + 97ae: 5cac addu r5, r4, r3 + 97b0: 8da0 ld.h r5, (r5, 0x0) + 97b2: 7557 sexth r5, r5 + 97b4: 3ddf btsti r5, 31 + 97b6: 0c10 bf 0x97d6 // 97d6 + 97b8: 02f5 lrw r7, 0x20000bda // 9a60 + 97ba: 58cc addu r6, r0, r3 + 97bc: 61cc addu r7, r3 + 97be: 8ea0 ld.h r5, (r6, 0x0) + 97c0: 8fe0 ld.h r7, (r7, 0x0) + 97c2: 75dd zexth r7, r7 + 97c4: 7555 zexth r5, r5 + 97c6: 615e subu r5, r7 + 97c8: 8ae0 ld.h r7, (r2, 0x0) + 97ca: 65d5 cmplt r5, r7 + 97cc: 0c05 bf 0x97d6 // 97d6 + 97ce: 8ea0 ld.h r5, (r6, 0x0) + 97d0: 2d00 subi r5, 1 + 97d2: 7555 zexth r5, r5 + 97d4: aea0 st.h r5, (r6, 0x0) + 97d6: 5cac addu r5, r4, r3 + 97d8: 8da0 ld.h r5, (r5, 0x0) + 97da: 7557 sexth r5, r5 + 97dc: 3ddf btsti r5, 31 + 97de: 0c11 bf 0x9800 // 9800 + 97e0: 02ff lrw r7, 0x20000bda // 9a60 + 97e2: 58cc addu r6, r0, r3 + 97e4: 61cc addu r7, r3 + 97e6: 8ea0 ld.h r5, (r6, 0x0) + 97e8: 8fe0 ld.h r7, (r7, 0x0) + 97ea: 75dd zexth r7, r7 + 97ec: 7555 zexth r5, r5 + 97ee: 615e subu r5, r7 + 97f0: 8ae0 ld.h r7, (r2, 0x0) + 97f2: 4fe1 lsri r7, r7, 1 + 97f4: 65d5 cmplt r5, r7 + 97f6: 0805 bt 0x9800 // 9800 + 97f8: 8ea0 ld.h r5, (r6, 0x0) + 97fa: 2d01 subi r5, 2 + 97fc: 7555 zexth r5, r5 + 97fe: aea0 st.h r5, (r6, 0x0) + 9800: 5ccc addu r6, r4, r3 + 9802: 8ea0 ld.h r5, (r6, 0x0) + 9804: 7557 sexth r5, r5 + 9806: 3d20 cmplti r5, 1 + 9808: 080c bt 0x9820 // 9820 + 980a: 8ec0 ld.h r6, (r6, 0x0) + 980c: 8aa0 ld.h r5, (r2, 0x0) + 980e: 759b sexth r6, r6 + 9810: 4da1 lsri r5, r5, 1 + 9812: 6559 cmplt r6, r5 + 9814: 0c06 bf 0x9820 // 9820 + 9816: 58cc addu r6, r0, r3 + 9818: 8ea0 ld.h r5, (r6, 0x0) + 981a: 2500 addi r5, 1 + 981c: 7555 zexth r5, r5 + 981e: aea0 st.h r5, (r6, 0x0) + 9820: 5ccc addu r6, r4, r3 + 9822: 8ea0 ld.h r5, (r6, 0x0) + 9824: 7557 sexth r5, r5 + 9826: 3d20 cmplti r5, 1 + 9828: 0810 bt 0x9848 // 9848 + 982a: 8ee0 ld.h r7, (r6, 0x0) + 982c: 75df sexth r7, r7 + 982e: 8aa0 ld.h r5, (r2, 0x0) + 9830: 655d cmplt r7, r5 + 9832: 0c0b bf 0x9848 // 9848 + 9834: 8ec0 ld.h r6, (r6, 0x0) + 9836: 759b sexth r6, r6 + 9838: 4da1 lsri r5, r5, 1 + 983a: 6559 cmplt r6, r5 + 983c: 0806 bt 0x9848 // 9848 + 983e: 60c0 addu r3, r0 + 9840: 8ba0 ld.h r5, (r3, 0x0) + 9842: 2501 addi r5, 2 + 9844: 7555 zexth r5, r5 + 9846: aba0 st.h r5, (r3, 0x0) + 9848: 2100 addi r1, 1 + 984a: 3951 cmpnei r1, 17 + 984c: 2201 addi r2, 2 + 984e: 0b6d bt 0x9728 // 9728 + 9850: 0376 lrw r3, 0x200008bc // 9a74 + 9852: 9360 ld.w r3, (r3, 0x0) + 9854: 3b40 cmpnei r3, 0 + 9856: 0980 bt 0x9b56 // 9b56 + 9858: 0377 lrw r3, 0x20000a88 // 9a78 + 985a: 035f lrw r2, 0x20000292 // 9a58 + 985c: 3100 movi r1, 0 + 985e: b860 st.w r3, (r14, 0x0) + 9860: 6d0f mov r4, r3 + 9862: 0318 lrw r0, 0x20000a32 // 9a7c + 9864: 4161 lsli r3, r1, 1 + 9866: 98a0 ld.w r5, (r14, 0x0) + 9868: 614c addu r5, r3 + 986a: 8da0 ld.h r5, (r5, 0x0) + 986c: 7557 sexth r5, r5 + 986e: 3ddf btsti r5, 31 + 9870: 0c1c bf 0x98a8 // 98a8 + 9872: 03db lrw r6, 0x20000970 // 9a80 + 9874: 58ac addu r5, r0, r3 + 9876: 618c addu r6, r3 + 9878: 8da0 ld.h r5, (r5, 0x0) + 987a: 8ec0 ld.h r6, (r6, 0x0) + 987c: 7599 zexth r6, r6 + 987e: 7555 zexth r5, r5 + 9880: 615a subu r5, r6 + 9882: 8ac0 ld.h r6, (r2, 0x0) + 9884: 6595 cmplt r5, r6 + 9886: 0811 bt 0x98a8 // 98a8 + 9888: 13bf lrw r5, 0x20000acc // 9a84 + 988a: 6144 addu r5, r1 + 988c: 85c0 ld.b r6, (r5, 0x0) + 988e: 2600 addi r6, 1 + 9890: 7598 zextb r6, r6 + 9892: a5c0 st.b r6, (r5, 0x0) + 9894: 13d5 lrw r6, 0x20000090 // 9a68 + 9896: 85e0 ld.b r7, (r5, 0x0) + 9898: 86ca ld.b r6, (r6, 0xa) + 989a: 65d8 cmphs r6, r7 + 989c: 0806 bt 0x98a8 // 98a8 + 989e: 13d4 lrw r6, 0x20000994 // 9a6c + 98a0: 3701 movi r7, 1 + 98a2: a6e1 st.b r7, (r6, 0x1) + 98a4: 3600 movi r6, 0 + 98a6: a5c0 st.b r6, (r5, 0x0) + 98a8: 5cac addu r5, r4, r3 + 98aa: 8da0 ld.h r5, (r5, 0x0) + 98ac: 7557 sexth r5, r5 + 98ae: 3d20 cmplti r5, 1 + 98b0: 081d bt 0x98ea // 98ea + 98b2: 13b4 lrw r5, 0x20000970 // 9a80 + 98b4: 614c addu r5, r3 + 98b6: 58cc addu r6, r0, r3 + 98b8: 8da0 ld.h r5, (r5, 0x0) + 98ba: 8ec0 ld.h r6, (r6, 0x0) + 98bc: 7599 zexth r6, r6 + 98be: 7555 zexth r5, r5 + 98c0: 615a subu r5, r6 + 98c2: 8ac0 ld.h r6, (r2, 0x0) + 98c4: 46c2 lsli r6, r6, 2 + 98c6: 6595 cmplt r5, r6 + 98c8: 0811 bt 0x98ea // 98ea + 98ca: 13b0 lrw r5, 0x200009ce // 9a88 + 98cc: 6144 addu r5, r1 + 98ce: 85c0 ld.b r6, (r5, 0x0) + 98d0: 2600 addi r6, 1 + 98d2: 7598 zextb r6, r6 + 98d4: a5c0 st.b r6, (r5, 0x0) + 98d6: 13c5 lrw r6, 0x20000090 // 9a68 + 98d8: 85e0 ld.b r7, (r5, 0x0) + 98da: 86cb ld.b r6, (r6, 0xb) + 98dc: 65d8 cmphs r6, r7 + 98de: 0806 bt 0x98ea // 98ea + 98e0: 13c3 lrw r6, 0x20000994 // 9a6c + 98e2: 3701 movi r7, 1 + 98e4: a6e1 st.b r7, (r6, 0x1) + 98e6: 3600 movi r6, 0 + 98e8: a5c0 st.b r6, (r5, 0x0) + 98ea: 5cac addu r5, r4, r3 + 98ec: 8da0 ld.h r5, (r5, 0x0) + 98ee: 7557 sexth r5, r5 + 98f0: 3ddf btsti r5, 31 + 98f2: 0c10 bf 0x9912 // 9912 + 98f4: 13e3 lrw r7, 0x20000970 // 9a80 + 98f6: 58cc addu r6, r0, r3 + 98f8: 61cc addu r7, r3 + 98fa: 8ea0 ld.h r5, (r6, 0x0) + 98fc: 8fe0 ld.h r7, (r7, 0x0) + 98fe: 75dd zexth r7, r7 + 9900: 7555 zexth r5, r5 + 9902: 615e subu r5, r7 + 9904: 8ae0 ld.h r7, (r2, 0x0) + 9906: 65d5 cmplt r5, r7 + 9908: 0c05 bf 0x9912 // 9912 + 990a: 8ea0 ld.h r5, (r6, 0x0) + 990c: 2d00 subi r5, 1 + 990e: 7555 zexth r5, r5 + 9910: aea0 st.h r5, (r6, 0x0) + 9912: 5cac addu r5, r4, r3 + 9914: 8da0 ld.h r5, (r5, 0x0) + 9916: 7557 sexth r5, r5 + 9918: 3ddf btsti r5, 31 + 991a: 0c11 bf 0x993c // 993c + 991c: 12f9 lrw r7, 0x20000970 // 9a80 + 991e: 58cc addu r6, r0, r3 + 9920: 61cc addu r7, r3 + 9922: 8ea0 ld.h r5, (r6, 0x0) + 9924: 8fe0 ld.h r7, (r7, 0x0) + 9926: 75dd zexth r7, r7 + 9928: 7555 zexth r5, r5 + 992a: 615e subu r5, r7 + 992c: 8ae0 ld.h r7, (r2, 0x0) + 992e: 4fe1 lsri r7, r7, 1 + 9930: 65d5 cmplt r5, r7 + 9932: 0805 bt 0x993c // 993c + 9934: 8ea0 ld.h r5, (r6, 0x0) + 9936: 2d01 subi r5, 2 + 9938: 7555 zexth r5, r5 + 993a: aea0 st.h r5, (r6, 0x0) + 993c: 5ccc addu r6, r4, r3 + 993e: 8ea0 ld.h r5, (r6, 0x0) + 9940: 7557 sexth r5, r5 + 9942: 3d20 cmplti r5, 1 + 9944: 080c bt 0x995c // 995c + 9946: 8ec0 ld.h r6, (r6, 0x0) + 9948: 8aa0 ld.h r5, (r2, 0x0) + 994a: 759b sexth r6, r6 + 994c: 4da1 lsri r5, r5, 1 + 994e: 6559 cmplt r6, r5 + 9950: 0c06 bf 0x995c // 995c + 9952: 58cc addu r6, r0, r3 + 9954: 8ea0 ld.h r5, (r6, 0x0) + 9956: 2500 addi r5, 1 + 9958: 7555 zexth r5, r5 + 995a: aea0 st.h r5, (r6, 0x0) + 995c: 5ccc addu r6, r4, r3 + 995e: 8ea0 ld.h r5, (r6, 0x0) + 9960: 7557 sexth r5, r5 + 9962: 3d20 cmplti r5, 1 + 9964: 0810 bt 0x9984 // 9984 + 9966: 8ee0 ld.h r7, (r6, 0x0) + 9968: 75df sexth r7, r7 + 996a: 8aa0 ld.h r5, (r2, 0x0) + 996c: 655d cmplt r7, r5 + 996e: 0c0b bf 0x9984 // 9984 + 9970: 8ec0 ld.h r6, (r6, 0x0) + 9972: 759b sexth r6, r6 + 9974: 4da1 lsri r5, r5, 1 + 9976: 6559 cmplt r6, r5 + 9978: 0806 bt 0x9984 // 9984 + 997a: 60c0 addu r3, r0 + 997c: 8ba0 ld.h r5, (r3, 0x0) + 997e: 2501 addi r5, 2 + 9980: 7555 zexth r5, r5 + 9982: aba0 st.h r5, (r3, 0x0) + 9984: 2100 addi r1, 1 + 9986: 3951 cmpnei r1, 17 + 9988: 2201 addi r2, 2 + 998a: 0b6d bt 0x9864 // 9864 + 998c: 1260 lrw r3, 0x200009a0 // 9a8c + 998e: 9360 ld.w r3, (r3, 0x0) + 9990: 3b40 cmpnei r3, 0 + 9992: 08f8 bt 0x9b82 // 9b82 + 9994: 117f lrw r3, 0x20000bb4 // 9a90 + 9996: 1151 lrw r2, 0x20000292 // 9a58 + 9998: 3100 movi r1, 0 + 999a: b860 st.w r3, (r14, 0x0) + 999c: 6d0f mov r4, r3 + 999e: 111e lrw r0, 0x20000b48 // 9a94 + 99a0: 4161 lsli r3, r1, 1 + 99a2: 98a0 ld.w r5, (r14, 0x0) + 99a4: 614c addu r5, r3 + 99a6: 8da0 ld.h r5, (r5, 0x0) + 99a8: 7557 sexth r5, r5 + 99aa: 3ddf btsti r5, 31 + 99ac: 0c1c bf 0x99e4 // 99e4 + 99ae: 11db lrw r6, 0x20000a66 // 9a98 + 99b0: 58ac addu r5, r0, r3 + 99b2: 618c addu r6, r3 + 99b4: 8da0 ld.h r5, (r5, 0x0) + 99b6: 8ec0 ld.h r6, (r6, 0x0) + 99b8: 7599 zexth r6, r6 + 99ba: 7555 zexth r5, r5 + 99bc: 615a subu r5, r6 + 99be: 8ac0 ld.h r6, (r2, 0x0) + 99c0: 6595 cmplt r5, r6 + 99c2: 0811 bt 0x99e4 // 99e4 + 99c4: 11b6 lrw r5, 0x200009bc // 9a9c + 99c6: 6144 addu r5, r1 + 99c8: 85c0 ld.b r6, (r5, 0x0) + 99ca: 2600 addi r6, 1 + 99cc: 7598 zextb r6, r6 + 99ce: a5c0 st.b r6, (r5, 0x0) + 99d0: 11c6 lrw r6, 0x20000090 // 9a68 + 99d2: 85e0 ld.b r7, (r5, 0x0) + 99d4: 86ca ld.b r6, (r6, 0xa) + 99d6: 65d8 cmphs r6, r7 + 99d8: 0806 bt 0x99e4 // 99e4 + 99da: 11c5 lrw r6, 0x20000994 // 9a6c + 99dc: 3701 movi r7, 1 + 99de: a6e2 st.b r7, (r6, 0x2) + 99e0: 3600 movi r6, 0 + 99e2: a5c0 st.b r6, (r5, 0x0) + 99e4: 5cac addu r5, r4, r3 + 99e6: 8da0 ld.h r5, (r5, 0x0) + 99e8: 7557 sexth r5, r5 + 99ea: 3d20 cmplti r5, 1 + 99ec: 081d bt 0x9a26 // 9a26 + 99ee: 11ab lrw r5, 0x20000a66 // 9a98 + 99f0: 614c addu r5, r3 + 99f2: 58cc addu r6, r0, r3 + 99f4: 8da0 ld.h r5, (r5, 0x0) + 99f6: 8ec0 ld.h r6, (r6, 0x0) + 99f8: 7599 zexth r6, r6 + 99fa: 7555 zexth r5, r5 + 99fc: 615a subu r5, r6 + 99fe: 8ac0 ld.h r6, (r2, 0x0) + 9a00: 46c2 lsli r6, r6, 2 + 9a02: 6595 cmplt r5, r6 + 9a04: 0811 bt 0x9a26 // 9a26 + 9a06: 11a7 lrw r5, 0x200008aa // 9aa0 + 9a08: 6144 addu r5, r1 + 9a0a: 85c0 ld.b r6, (r5, 0x0) + 9a0c: 2600 addi r6, 1 + 9a0e: 7598 zextb r6, r6 + 9a10: a5c0 st.b r6, (r5, 0x0) + 9a12: 10d6 lrw r6, 0x20000090 // 9a68 + 9a14: 85e0 ld.b r7, (r5, 0x0) + 9a16: 86cb ld.b r6, (r6, 0xb) + 9a18: 65d8 cmphs r6, r7 + 9a1a: 0806 bt 0x9a26 // 9a26 + 9a1c: 10d4 lrw r6, 0x20000994 // 9a6c + 9a1e: 3701 movi r7, 1 + 9a20: a6e2 st.b r7, (r6, 0x2) + 9a22: 3600 movi r6, 0 + 9a24: a5c0 st.b r6, (r5, 0x0) + 9a26: 5cac addu r5, r4, r3 + 9a28: 8da0 ld.h r5, (r5, 0x0) + 9a2a: 7557 sexth r5, r5 + 9a2c: 3ddf btsti r5, 31 + 9a2e: 0c3f bf 0x9aac // 9aac + 9a30: 10fa lrw r7, 0x20000a66 // 9a98 + 9a32: 58cc addu r6, r0, r3 + 9a34: 61cc addu r7, r3 + 9a36: 8ea0 ld.h r5, (r6, 0x0) + 9a38: 8fe0 ld.h r7, (r7, 0x0) + 9a3a: 75dd zexth r7, r7 + 9a3c: 7555 zexth r5, r5 + 9a3e: 615e subu r5, r7 + 9a40: 8ae0 ld.h r7, (r2, 0x0) + 9a42: 65d5 cmplt r5, r7 + 9a44: 0c34 bf 0x9aac // 9aac + 9a46: 042f br 0x9aa4 // 9aa4 + 9a48: 20000a26 .long 0x20000a26 + 9a4c: 20000265 .long 0x20000265 + 9a50: 20000928 .long 0x20000928 + 9a54: 20000948 .long 0x20000948 + 9a58: 20000292 .long 0x20000292 + 9a5c: 20000888 .long 0x20000888 + 9a60: 20000bda .long 0x20000bda + 9a64: 20000aec .long 0x20000aec + 9a68: 20000090 .long 0x20000090 + 9a6c: 20000994 .long 0x20000994 + 9a70: 20000a54 .long 0x20000a54 + 9a74: 200008bc .long 0x200008bc + 9a78: 20000a88 .long 0x20000a88 + 9a7c: 20000a32 .long 0x20000a32 + 9a80: 20000970 .long 0x20000970 + 9a84: 20000acc .long 0x20000acc + 9a88: 200009ce .long 0x200009ce + 9a8c: 200009a0 .long 0x200009a0 + 9a90: 20000bb4 .long 0x20000bb4 + 9a94: 20000b48 .long 0x20000b48 + 9a98: 20000a66 .long 0x20000a66 + 9a9c: 200009bc .long 0x200009bc + 9aa0: 200008aa .long 0x200008aa + 9aa4: 8ea0 ld.h r5, (r6, 0x0) + 9aa6: 2d00 subi r5, 1 + 9aa8: 7555 zexth r5, r5 + 9aaa: aea0 st.h r5, (r6, 0x0) + 9aac: 5cac addu r5, r4, r3 + 9aae: 8da0 ld.h r5, (r5, 0x0) + 9ab0: 7557 sexth r5, r5 + 9ab2: 3ddf btsti r5, 31 + 9ab4: 0c11 bf 0x9ad6 // 9ad6 + 9ab6: 11ff lrw r7, 0x20000a66 // 9bb0 + 9ab8: 58cc addu r6, r0, r3 + 9aba: 61cc addu r7, r3 + 9abc: 8ea0 ld.h r5, (r6, 0x0) + 9abe: 8fe0 ld.h r7, (r7, 0x0) + 9ac0: 75dd zexth r7, r7 + 9ac2: 7555 zexth r5, r5 + 9ac4: 615e subu r5, r7 + 9ac6: 8ae0 ld.h r7, (r2, 0x0) + 9ac8: 4fe1 lsri r7, r7, 1 + 9aca: 65d5 cmplt r5, r7 + 9acc: 0805 bt 0x9ad6 // 9ad6 + 9ace: 8ea0 ld.h r5, (r6, 0x0) + 9ad0: 2d01 subi r5, 2 + 9ad2: 7555 zexth r5, r5 + 9ad4: aea0 st.h r5, (r6, 0x0) + 9ad6: 5ccc addu r6, r4, r3 + 9ad8: 8ea0 ld.h r5, (r6, 0x0) + 9ada: 7557 sexth r5, r5 + 9adc: 3d20 cmplti r5, 1 + 9ade: 080c bt 0x9af6 // 9af6 + 9ae0: 8ec0 ld.h r6, (r6, 0x0) + 9ae2: 8aa0 ld.h r5, (r2, 0x0) + 9ae4: 759b sexth r6, r6 + 9ae6: 4da1 lsri r5, r5, 1 + 9ae8: 6559 cmplt r6, r5 + 9aea: 0c06 bf 0x9af6 // 9af6 + 9aec: 58cc addu r6, r0, r3 + 9aee: 8ea0 ld.h r5, (r6, 0x0) + 9af0: 2500 addi r5, 1 + 9af2: 7555 zexth r5, r5 + 9af4: aea0 st.h r5, (r6, 0x0) + 9af6: 5ccc addu r6, r4, r3 + 9af8: 8ea0 ld.h r5, (r6, 0x0) + 9afa: 7557 sexth r5, r5 + 9afc: 3d20 cmplti r5, 1 + 9afe: 0810 bt 0x9b1e // 9b1e + 9b00: 8ee0 ld.h r7, (r6, 0x0) + 9b02: 75df sexth r7, r7 + 9b04: 8aa0 ld.h r5, (r2, 0x0) + 9b06: 655d cmplt r7, r5 + 9b08: 0c0b bf 0x9b1e // 9b1e + 9b0a: 8ec0 ld.h r6, (r6, 0x0) + 9b0c: 759b sexth r6, r6 + 9b0e: 4da1 lsri r5, r5, 1 + 9b10: 6559 cmplt r6, r5 + 9b12: 0806 bt 0x9b1e // 9b1e + 9b14: 60c0 addu r3, r0 + 9b16: 8ba0 ld.h r5, (r3, 0x0) + 9b18: 2501 addi r5, 2 + 9b1a: 7555 zexth r5, r5 + 9b1c: aba0 st.h r5, (r3, 0x0) + 9b1e: 2100 addi r1, 1 + 9b20: 3951 cmpnei r1, 17 + 9b22: 2201 addi r2, 2 + 9b24: 0b3e bt 0x99a0 // 99a0 + 9b26: 1401 addi r14, r14, 4 + 9b28: 1494 pop r4-r7, r15 + 9b2a: e3fff6c9 bsr 0x88bc // 88bc + 9b2e: 1162 lrw r3, 0x20000090 // 9bb4 + 9b30: 836c ld.b r3, (r3, 0xc) + 9b32: 64c0 cmphs r0, r3 + 9b34: 1141 lrw r2, 0x200008c0 // 9bb8 + 9b36: 0c0e bf 0x9b52 // 9b52 + 9b38: 8260 ld.b r3, (r2, 0x0) + 9b3a: 74cc zextb r3, r3 + 9b3c: 3b01 cmphsi r3, 2 + 9b3e: 0c05 bf 0x9b48 // 9b48 + 9b40: 107f lrw r3, 0x20000994 // 9bbc + 9b42: 3201 movi r2, 1 + 9b44: a340 st.b r2, (r3, 0x0) + 9b46: 0685 br 0x9850 // 9850 + 9b48: 8260 ld.b r3, (r2, 0x0) + 9b4a: 2300 addi r3, 1 + 9b4c: 74cc zextb r3, r3 + 9b4e: a260 st.b r3, (r2, 0x0) + 9b50: 0680 br 0x9850 // 9850 + 9b52: 3300 movi r3, 0 + 9b54: 07fd br 0x9b4e // 9b4e + 9b56: e3fff6c7 bsr 0x88e4 // 88e4 + 9b5a: 1077 lrw r3, 0x20000090 // 9bb4 + 9b5c: 836c ld.b r3, (r3, 0xc) + 9b5e: 64c0 cmphs r0, r3 + 9b60: 1056 lrw r2, 0x200008c0 // 9bb8 + 9b62: 0c0e bf 0x9b7e // 9b7e + 9b64: 8261 ld.b r3, (r2, 0x1) + 9b66: 74cc zextb r3, r3 + 9b68: 3b01 cmphsi r3, 2 + 9b6a: 0c05 bf 0x9b74 // 9b74 + 9b6c: 1074 lrw r3, 0x20000994 // 9bbc + 9b6e: 3201 movi r2, 1 + 9b70: a341 st.b r2, (r3, 0x1) + 9b72: 070d br 0x998c // 998c + 9b74: 8261 ld.b r3, (r2, 0x1) + 9b76: 2300 addi r3, 1 + 9b78: 74cc zextb r3, r3 + 9b7a: a261 st.b r3, (r2, 0x1) + 9b7c: 0708 br 0x998c // 998c + 9b7e: 3300 movi r3, 0 + 9b80: 07fd br 0x9b7a // 9b7a + 9b82: e3fff6c5 bsr 0x890c // 890c + 9b86: 106c lrw r3, 0x20000090 // 9bb4 + 9b88: 836c ld.b r3, (r3, 0xc) + 9b8a: 64c0 cmphs r0, r3 + 9b8c: 104b lrw r2, 0x200008c0 // 9bb8 + 9b8e: 0c0e bf 0x9baa // 9baa + 9b90: 8262 ld.b r3, (r2, 0x2) + 9b92: 74cc zextb r3, r3 + 9b94: 3b01 cmphsi r3, 2 + 9b96: 0c05 bf 0x9ba0 // 9ba0 + 9b98: 1069 lrw r3, 0x20000994 // 9bbc + 9b9a: 3201 movi r2, 1 + 9b9c: a342 st.b r2, (r3, 0x2) + 9b9e: 07c4 br 0x9b26 // 9b26 + 9ba0: 8262 ld.b r3, (r2, 0x2) + 9ba2: 2300 addi r3, 1 + 9ba4: 74cc zextb r3, r3 + 9ba6: a262 st.b r3, (r2, 0x2) + 9ba8: 07bf br 0x9b26 // 9b26 + 9baa: 3300 movi r3, 0 + 9bac: 07fd br 0x9ba6 // 9ba6 + 9bae: 0000 bkpt + 9bb0: 20000a66 .long 0x20000a66 + 9bb4: 20000090 .long 0x20000090 + 9bb8: 200008c0 .long 0x200008c0 + 9bbc: 20000994 .long 0x20000994 + +Disassembly of section .text.TK_result_prog: + +00009bc0 : + 9bc0: 14d4 push r4-r7, r15 + 9bc2: 1424 subi r14, r14, 16 + 9bc4: 111f lrw r0, 0x20000928 // 9cc0 + 9bc6: 1220 lrw r1, 0x200008bc // 9cc4 + 9bc8: 1240 lrw r2, 0x200009a0 // 9cc8 + 9bca: b821 st.w r1, (r14, 0x4) + 9bcc: 9060 ld.w r3, (r0, 0x0) + 9bce: 91a0 ld.w r5, (r1, 0x0) + 9bd0: 6cd4 or r3, r5 + 9bd2: 9280 ld.w r4, (r2, 0x0) + 9bd4: 6cd0 or r3, r4 + 9bd6: 3b40 cmpnei r3, 0 + 9bd8: b800 st.w r0, (r14, 0x0) + 9bda: b842 st.w r2, (r14, 0x8) + 9bdc: 119c lrw r4, 0x20000a28 // 9ccc + 9bde: 0c67 bf 0x9cac // 9cac + 9be0: 111c lrw r0, 0x20000b00 // 9cd0 + 9be2: 3500 movi r5, 0 + 9be4: 117c lrw r3, 0x20000ac8 // 9cd4 + 9be6: b803 st.w r0, (r14, 0xc) + 9be8: 3201 movi r2, 1 + 9bea: 7094 lsl r2, r5 + 9bec: b040 st.w r2, (r0, 0x0) + 9bee: 9840 ld.w r2, (r14, 0x0) + 9bf0: 9240 ld.w r2, (r2, 0x0) + 9bf2: 9020 ld.w r1, (r0, 0x0) + 9bf4: 6884 and r2, r1 + 9bf6: b340 st.w r2, (r3, 0x0) + 9bf8: 9841 ld.w r2, (r14, 0x4) + 9bfa: 9240 ld.w r2, (r2, 0x0) + 9bfc: 9020 ld.w r1, (r0, 0x0) + 9bfe: 6848 and r1, r2 + 9c00: 1156 lrw r2, 0x20000b8c // 9cd8 + 9c02: b220 st.w r1, (r2, 0x0) + 9c04: 9822 ld.w r1, (r14, 0x8) + 9c06: 9120 ld.w r1, (r1, 0x0) + 9c08: 90c0 ld.w r6, (r0, 0x0) + 9c0a: 6984 and r6, r1 + 9c0c: 1134 lrw r1, 0x20000a2c // 9cdc + 9c0e: b1c0 st.w r6, (r1, 0x0) + 9c10: 93e0 ld.w r7, (r3, 0x0) + 9c12: 92c0 ld.w r6, (r2, 0x0) + 9c14: 659e cmpne r7, r6 + 9c16: 0807 bt 0x9c24 // 9c24 + 9c18: 92e0 ld.w r7, (r2, 0x0) + 9c1a: 91c0 ld.w r6, (r1, 0x0) + 9c1c: 659e cmpne r7, r6 + 9c1e: 0803 bt 0x9c24 // 9c24 + 9c20: 9340 ld.w r2, (r3, 0x0) + 9c22: 040c br 0x9c3a // 9c3a + 9c24: 92c0 ld.w r6, (r2, 0x0) + 9c26: 3e40 cmpnei r6, 0 + 9c28: 0c29 bf 0x9c7a // 9c7a + 9c2a: 91c0 ld.w r6, (r1, 0x0) + 9c2c: 3e40 cmpnei r6, 0 + 9c2e: 0c26 bf 0x9c7a // 9c7a + 9c30: 92e0 ld.w r7, (r2, 0x0) + 9c32: 91c0 ld.w r6, (r1, 0x0) + 9c34: 659e cmpne r7, r6 + 9c36: 0822 bt 0x9c7a // 9c7a + 9c38: 9240 ld.w r2, (r2, 0x0) + 9c3a: 9420 ld.w r1, (r4, 0x0) + 9c3c: 6c84 or r2, r1 + 9c3e: 2500 addi r5, 1 + 9c40: 3d51 cmpnei r5, 17 + 9c42: b440 st.w r2, (r4, 0x0) + 9c44: 0bd2 bt 0x9be8 // 9be8 + 9c46: 9460 ld.w r3, (r4, 0x0) + 9c48: 3b40 cmpnei r3, 0 + 9c4a: 1146 lrw r2, 0x20000b30 // 9ce0 + 9c4c: 0c32 bf 0x9cb0 // 9cb0 + 9c4e: 9420 ld.w r1, (r4, 0x0) + 9c50: 9260 ld.w r3, (r2, 0x0) + 9c52: 64c6 cmpne r1, r3 + 9c54: 0c06 bf 0x9c60 // 9c60 + 9c56: 9460 ld.w r3, (r4, 0x0) + 9c58: b260 st.w r3, (r2, 0x0) + 9c5a: 3200 movi r2, 0 + 9c5c: 1162 lrw r3, 0x20000946 // 9ce4 + 9c5e: a340 st.b r2, (r3, 0x0) + 9c60: e3fff61a bsr 0x8894 // 8894 + 9c64: 1161 lrw r3, 0x2000026c // 9ce8 + 9c66: 8360 ld.b r3, (r3, 0x0) + 9c68: 640c cmphs r3, r0 + 9c6a: 0806 bt 0x9c76 // 9c76 + 9c6c: 3300 movi r3, 0 + 9c6e: b460 st.w r3, (r4, 0x0) + 9c70: 3201 movi r2, 1 + 9c72: 107d lrw r3, 0x20000946 // 9ce4 + 9c74: a340 st.b r2, (r3, 0x0) + 9c76: 1404 addi r14, r14, 16 + 9c78: 1494 pop r4-r7, r15 + 9c7a: 93c0 ld.w r6, (r3, 0x0) + 9c7c: 3e40 cmpnei r6, 0 + 9c7e: 0c08 bf 0x9c8e // 9c8e + 9c80: 92c0 ld.w r6, (r2, 0x0) + 9c82: 3e40 cmpnei r6, 0 + 9c84: 0c05 bf 0x9c8e // 9c8e + 9c86: 93c0 ld.w r6, (r3, 0x0) + 9c88: 9240 ld.w r2, (r2, 0x0) + 9c8a: 649a cmpne r6, r2 + 9c8c: 0fca bf 0x9c20 // 9c20 + 9c8e: 9340 ld.w r2, (r3, 0x0) + 9c90: 3a40 cmpnei r2, 0 + 9c92: 0c08 bf 0x9ca2 // 9ca2 + 9c94: 9140 ld.w r2, (r1, 0x0) + 9c96: 3a40 cmpnei r2, 0 + 9c98: 0c05 bf 0x9ca2 // 9ca2 + 9c9a: 9340 ld.w r2, (r3, 0x0) + 9c9c: 9120 ld.w r1, (r1, 0x0) + 9c9e: 644a cmpne r2, r1 + 9ca0: 0fc0 bf 0x9c20 // 9c20 + 9ca2: 9843 ld.w r2, (r14, 0xc) + 9ca4: 9220 ld.w r1, (r2, 0x0) + 9ca6: 9440 ld.w r2, (r4, 0x0) + 9ca8: 6885 andn r2, r1 + 9caa: 07ca br 0x9c3e // 9c3e + 9cac: b460 st.w r3, (r4, 0x0) + 9cae: 07cc br 0x9c46 // 9c46 + 9cb0: b260 st.w r3, (r2, 0x0) + 9cb2: 3100 movi r1, 0 + 9cb4: 104c lrw r2, 0x20000946 // 9ce4 + 9cb6: a220 st.b r1, (r2, 0x0) + 9cb8: 104d lrw r2, 0x20000a20 // 9cec + 9cba: b260 st.w r3, (r2, 0x0) + 9cbc: 07dd br 0x9c76 // 9c76 + 9cbe: 0000 bkpt + 9cc0: 20000928 .long 0x20000928 + 9cc4: 200008bc .long 0x200008bc + 9cc8: 200009a0 .long 0x200009a0 + 9ccc: 20000a28 .long 0x20000a28 + 9cd0: 20000b00 .long 0x20000b00 + 9cd4: 20000ac8 .long 0x20000ac8 + 9cd8: 20000b8c .long 0x20000b8c + 9cdc: 20000a2c .long 0x20000a2c + 9ce0: 20000b30 .long 0x20000b30 + 9ce4: 20000946 .long 0x20000946 + 9ce8: 2000026c .long 0x2000026c + 9cec: 20000a20 .long 0x20000a20 + +Disassembly of section .text.get_key_seq: + +00009cf0 : + 9cf0: 14c4 push r4-r7 + 9cf2: 106c lrw r3, 0x20000268 // 9d20 + 9cf4: 3200 movi r2, 0 + 9cf6: 9380 ld.w r4, (r3, 0x0) + 9cf8: 3000 movi r0, 0 + 9cfa: 3300 movi r3, 0 + 9cfc: 3501 movi r5, 1 + 9cfe: 10ca lrw r6, 0x20000b34 // 9d24 + 9d00: 6c53 mov r1, r4 + 9d02: 704d lsr r1, r3 + 9d04: 6854 and r1, r5 + 9d06: 3940 cmpnei r1, 0 + 9d08: 75cc zextb r7, r3 + 9d0a: 0c06 bf 0x9d16 // 9d16 + 9d0c: 5e28 addu r1, r6, r2 + 9d0e: 2200 addi r2, 1 + 9d10: 2000 addi r0, 1 + 9d12: a1e0 st.b r7, (r1, 0x0) + 9d14: 7488 zextb r2, r2 + 9d16: 2300 addi r3, 1 + 9d18: 3b51 cmpnei r3, 17 + 9d1a: 0bf3 bt 0x9d00 // 9d00 + 9d1c: 7400 zextb r0, r0 + 9d1e: 1484 pop r4-r7 + 9d20: 20000268 .long 0x20000268 + 9d24: 20000b34 .long 0x20000b34 + +Disassembly of section .text.CORET_CONFIG: + +00009d28 : + 9d28: 14d0 push r15 + 9d2a: e3ffc911 bsr 0x2f4c // 2f4c + 9d2e: 3180 movi r1, 128 + 9d30: 4124 lsli r1, r1, 4 + 9d32: 3001 movi r0, 1 + 9d34: e3ffc08c bsr 0x1e4c // 1e4c + 9d38: 1068 lrw r3, 0x20000064 // 9d58 + 9d3a: 1049 lrw r2, 0x200002b8 // 9d5c + 9d3c: 9360 ld.w r3, (r3, 0x0) + 9d3e: 9240 ld.w r2, (r2, 0x0) + 9d40: b345 st.w r2, (r3, 0x14) + 9d42: e3ffc935 bsr 0x2fac // 2fac + 9d46: e3ffc923 bsr 0x2f8c // 2f8c + 9d4a: e3ffc929 bsr 0x2f9c // 2f9c + 9d4e: e3ffc917 bsr 0x2f7c // 2f7c + 9d52: e3ffc909 bsr 0x2f64 // 2f64 + 9d56: 1490 pop r15 + 9d58: 20000064 .long 0x20000064 + 9d5c: 200002b8 .long 0x200002b8 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00009d60 : + 9d60: 1066 lrw r3, 0x20000054 // 9d78 + 9d62: 3100 movi r1, 0 + 9d64: 9300 ld.w r0, (r3, 0x0) + 9d66: 3300 movi r3, 0 + 9d68: 4342 lsli r2, r3, 2 + 9d6a: 2300 addi r3, 1 + 9d6c: 6080 addu r2, r0 + 9d6e: 3b51 cmpnei r3, 17 + 9d70: b220 st.w r1, (r2, 0x0) + 9d72: b232 st.w r1, (r2, 0x48) + 9d74: 0bfa bt 0x9d68 // 9d68 + 9d76: 783c jmp r15 + 9d78: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_freq_para_init: + +00009d7c : + 9d7c: 14d1 push r4, r15 + 9d7e: 107e lrw r3, 0x20000239 // 9df4 + 9d80: 8360 ld.b r3, (r3, 0x0) + 9d82: 3b40 cmpnei r3, 0 + 9d84: 080c bt 0x9d9c // 9d9c + 9d86: 107d lrw r3, 0x20000070 // 9df8 + 9d88: 105d lrw r2, 0x20000bfc // 9dfc + 9d8a: 932c ld.w r1, (r3, 0x30) + 9d8c: b220 st.w r1, (r2, 0x0) + 9d8e: 932d ld.w r1, (r3, 0x34) + 9d90: 105c lrw r2, 0x2000096c // 9e00 + 9d92: b220 st.w r1, (r2, 0x0) + 9d94: 934e ld.w r2, (r3, 0x38) + 9d96: 107c lrw r3, 0x2000099c // 9e04 + 9d98: b340 st.w r2, (r3, 0x0) + 9d9a: 1491 pop r4, r15 + 9d9c: 3b41 cmpnei r3, 1 + 9d9e: 0bfe bt 0x9d9a // 9d9a + 9da0: 1076 lrw r3, 0x20000070 // 9df8 + 9da2: 1057 lrw r2, 0x20000bfc // 9dfc + 9da4: 932d ld.w r1, (r3, 0x34) + 9da6: b220 st.w r1, (r2, 0x0) + 9da8: 932d ld.w r1, (r3, 0x34) + 9daa: 1056 lrw r2, 0x2000096c // 9e00 + 9dac: b220 st.w r1, (r2, 0x0) + 9dae: 934d ld.w r2, (r3, 0x34) + 9db0: 3105 movi r1, 5 + 9db2: 1075 lrw r3, 0x2000099c // 9e04 + 9db4: b340 st.w r2, (r3, 0x0) + 9db6: 1075 lrw r3, 0x20000058 // 9e08 + 9db8: 9380 ld.w r4, (r3, 0x0) + 9dba: 1075 lrw r3, 0x20000290 // 9e0c + 9dbc: 8300 ld.b r0, (r3, 0x0) + 9dbe: e3ffcf39 bsr 0x3c30 // 3c30 <__udivsi3> + 9dc2: 7400 zextb r0, r0 + 9dc4: 1073 lrw r3, 0x2000023a // 9e10 + 9dc6: b408 st.w r0, (r4, 0x20) + 9dc8: 8300 ld.b r0, (r3, 0x0) + 9dca: 3804 cmphsi r0, 5 + 9dcc: 1072 lrw r3, 0x20000a24 // 9e14 + 9dce: 0810 bt 0x9dee // 9dee + 9dd0: e3ffb796 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 9dd4: 090d0703 .long 0x090d0703 + 9dd8: 000b .short 0x000b + 9dda: 3296 movi r2, 150 + 9ddc: 4242 lsli r2, r2, 2 + 9dde: ab40 st.h r2, (r3, 0x0) + 9de0: 07dd br 0x9d9a // 9d9a + 9de2: 104e lrw r2, 0x5dc // 9e18 + 9de4: 07fd br 0x9dde // 9dde + 9de6: 104e lrw r2, 0x1194 // 9e1c + 9de8: 07fb br 0x9dde // 9dde + 9dea: 104e lrw r2, 0x1770 // 9e20 + 9dec: 07f9 br 0x9dde // 9dde + 9dee: 104e lrw r2, 0xbb8 // 9e24 + 9df0: 07f7 br 0x9dde // 9dde + 9df2: 0000 bkpt + 9df4: 20000239 .long 0x20000239 + 9df8: 20000070 .long 0x20000070 + 9dfc: 20000bfc .long 0x20000bfc + 9e00: 2000096c .long 0x2000096c + 9e04: 2000099c .long 0x2000099c + 9e08: 20000058 .long 0x20000058 + 9e0c: 20000290 .long 0x20000290 + 9e10: 2000023a .long 0x2000023a + 9e14: 20000a24 .long 0x20000a24 + 9e18: 000005dc .long 0x000005dc + 9e1c: 00001194 .long 0x00001194 + 9e20: 00001770 .long 0x00001770 + 9e24: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.tk_reserved_init: + +00009e28 : + 9e28: 1065 lrw r3, 0x2000005c // 9e3c + 9e2a: 1046 lrw r2, 0xa67a6cc7 // 9e40 + 9e2c: 9360 ld.w r3, (r3, 0x0) + 9e2e: b356 st.w r2, (r3, 0x58) + 9e30: 1045 lrw r2, 0x21f1f04 // 9e44 + 9e32: b355 st.w r2, (r3, 0x54) + 9e34: 1045 lrw r2, 0x69966996 // 9e48 + 9e36: 1066 lrw r3, 0x40011180 // 9e4c + 9e38: b35f st.w r2, (r3, 0x7c) + 9e3a: 783c jmp r15 + 9e3c: 2000005c .long 0x2000005c + 9e40: a67a6cc7 .long 0xa67a6cc7 + 9e44: 021f1f04 .long 0x021f1f04 + 9e48: 69966996 .long 0x69966996 + 9e4c: 40011180 .long 0x40011180 + +Disassembly of section .text.TKEYIntHandler: + +00009e50 : + 9e50: 1460 nie + 9e52: 1462 ipush + 9e54: 14d1 push r4, r15 + 9e56: 1183 lrw r4, 0x20000070 // 9ee0 + 9e58: 8460 ld.b r3, (r4, 0x0) + 9e5a: 3b40 cmpnei r3, 0 + 9e5c: 0815 bt 0x9e86 // 9e86 + 9e5e: 3301 movi r3, 1 + 9e60: a460 st.b r3, (r4, 0x0) + 9e62: 1161 lrw r3, 0x20000934 // 9ee4 + 9e64: 8360 ld.b r3, (r3, 0x0) + 9e66: 3b41 cmpnei r3, 1 + 9e68: 080f bt 0x9e86 // 9e86 + 9e6a: 1140 lrw r2, 0x20000b45 // 9ee8 + 9e6c: 8260 ld.b r3, (r2, 0x0) + 9e6e: 2300 addi r3, 1 + 9e70: 74cc zextb r3, r3 + 9e72: a260 st.b r3, (r2, 0x0) + 9e74: 8260 ld.b r3, (r2, 0x0) + 9e76: 3b43 cmpnei r3, 3 + 9e78: 0803 bt 0x9e7e // 9e7e + 9e7a: 3300 movi r3, 0 + 9e7c: a260 st.b r3, (r2, 0x0) + 9e7e: e3fff4a5 bsr 0x87c8 // 87c8 + 9e82: 3301 movi r3, 1 + 9e84: a461 st.b r3, (r4, 0x1) + 9e86: 107a lrw r3, 0x20000058 // 9eec + 9e88: 3101 movi r1, 1 + 9e8a: 9360 ld.w r3, (r3, 0x0) + 9e8c: 934a ld.w r2, (r3, 0x28) + 9e8e: 6884 and r2, r1 + 9e90: 3a40 cmpnei r2, 0 + 9e92: 0c02 bf 0x9e96 // 9e96 + 9e94: b32c st.w r1, (r3, 0x30) + 9e96: 934a ld.w r2, (r3, 0x28) + 9e98: 3102 movi r1, 2 + 9e9a: 6884 and r2, r1 + 9e9c: 3a40 cmpnei r2, 0 + 9e9e: 0c02 bf 0x9ea2 // 9ea2 + 9ea0: b32c st.w r1, (r3, 0x30) + 9ea2: 934a ld.w r2, (r3, 0x28) + 9ea4: 3104 movi r1, 4 + 9ea6: 6884 and r2, r1 + 9ea8: 3a40 cmpnei r2, 0 + 9eaa: 0c02 bf 0x9eae // 9eae + 9eac: b32c st.w r1, (r3, 0x30) + 9eae: 934a ld.w r2, (r3, 0x28) + 9eb0: 3108 movi r1, 8 + 9eb2: 6884 and r2, r1 + 9eb4: 3a40 cmpnei r2, 0 + 9eb6: 0c02 bf 0x9eba // 9eba + 9eb8: b32c st.w r1, (r3, 0x30) + 9eba: 934a ld.w r2, (r3, 0x28) + 9ebc: 3110 movi r1, 16 + 9ebe: 6884 and r2, r1 + 9ec0: 3a40 cmpnei r2, 0 + 9ec2: 0c02 bf 0x9ec6 // 9ec6 + 9ec4: b32c st.w r1, (r3, 0x30) + 9ec6: 934a ld.w r2, (r3, 0x28) + 9ec8: 3120 movi r1, 32 + 9eca: 6884 and r2, r1 + 9ecc: 3a40 cmpnei r2, 0 + 9ece: 0c02 bf 0x9ed2 // 9ed2 + 9ed0: b32c st.w r1, (r3, 0x30) + 9ed2: d9ee2001 ld.w r15, (r14, 0x4) + 9ed6: 9880 ld.w r4, (r14, 0x0) + 9ed8: 1402 addi r14, r14, 8 + 9eda: 1463 ipop + 9edc: 1461 nir + 9ede: 0000 bkpt + 9ee0: 20000070 .long 0x20000070 + 9ee4: 20000934 .long 0x20000934 + 9ee8: 20000b45 .long 0x20000b45 + 9eec: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +00009ef0 : + 9ef0: 1460 nie + 9ef2: 1462 ipush + 9ef4: 14d3 push r4-r6, r15 + 9ef6: 1269 lrw r3, 0x20000064 // a018 + 9ef8: 3400 movi r4, 0 + 9efa: 9360 ld.w r3, (r3, 0x0) + 9efc: b386 st.w r4, (r3, 0x18) + 9efe: 1268 lrw r3, 0x20000934 // a01c + 9f00: 8360 ld.b r3, (r3, 0x0) + 9f02: 3b41 cmpnei r3, 1 + 9f04: 0840 bt 0x9f84 // 9f84 + 9f06: e3fff6f5 bsr 0x8cf0 // 8cf0 + 9f0a: e3fff727 bsr 0x8d58 // 8d58 + 9f0e: e3fffb5d bsr 0x95c8 // 95c8 + 9f12: e3fffbef bsr 0x96f0 // 96f0 + 9f16: e3fff3c5 bsr 0x86a0 // 86a0 + 9f1a: e3fffe53 bsr 0x9bc0 // 9bc0 + 9f1e: 1261 lrw r3, 0x20000a28 // a020 + 9f20: 9360 ld.w r3, (r3, 0x0) + 9f22: 3b40 cmpnei r3, 0 + 9f24: 0c12 bf 0x9f48 // 9f48 + 9f26: 1260 lrw r3, 0x2000023c // a024 + 9f28: 9340 ld.w r2, (r3, 0x0) + 9f2a: 3a40 cmpnei r2, 0 + 9f2c: 0c0e bf 0x9f48 // 9f48 + 9f2e: 117f lrw r3, 0x20000a20 // a028 + 9f30: 3064 movi r0, 100 + 9f32: 9320 ld.w r1, (r3, 0x0) + 9f34: 2100 addi r1, 1 + 9f36: b320 st.w r1, (r3, 0x0) + 9f38: 9320 ld.w r1, (r3, 0x0) + 9f3a: 7c80 mult r2, r0 + 9f3c: 6448 cmphs r2, r1 + 9f3e: 0805 bt 0x9f48 // 9f48 + 9f40: 115b lrw r2, 0x200009cd // a02c + 9f42: 3101 movi r1, 1 + 9f44: a220 st.b r1, (r2, 0x0) + 9f46: b380 st.w r4, (r3, 0x0) + 9f48: 117a lrw r3, 0x20000235 // a030 + 9f4a: 8340 ld.b r2, (r3, 0x0) + 9f4c: 3a41 cmpnei r2, 1 + 9f4e: 0823 bt 0x9f94 // 9f94 + 9f50: 1139 lrw r1, 0x20000928 // a034 + 9f52: 115a lrw r2, 0x200008bc // a038 + 9f54: 9100 ld.w r0, (r1, 0x0) + 9f56: 9260 ld.w r3, (r2, 0x0) + 9f58: 64c2 cmpne r0, r3 + 9f5a: 1179 lrw r3, 0x20000ac4 // a03c + 9f5c: 080a bt 0x9f70 // 9f70 + 9f5e: 9280 ld.w r4, (r2, 0x0) + 9f60: 1158 lrw r2, 0x200009a0 // a040 + 9f62: 9200 ld.w r0, (r2, 0x0) + 9f64: 6412 cmpne r4, r0 + 9f66: 0805 bt 0x9f70 // 9f70 + 9f68: 9120 ld.w r1, (r1, 0x0) + 9f6a: 9240 ld.w r2, (r2, 0x0) + 9f6c: 6486 cmpne r1, r2 + 9f6e: 0c09 bf 0x9f80 // 9f80 + 9f70: 9340 ld.w r2, (r3, 0x0) + 9f72: 2200 addi r2, 1 + 9f74: b340 st.w r2, (r3, 0x0) + 9f76: 1154 lrw r2, 0x20000090 // a044 + 9f78: 823c ld.b r1, (r2, 0x1c) + 9f7a: 9340 ld.w r2, (r3, 0x0) + 9f7c: 6484 cmphs r1, r2 + 9f7e: 0803 bt 0x9f84 // 9f84 + 9f80: 3200 movi r2, 0 + 9f82: b340 st.w r2, (r3, 0x0) + 9f84: d9ee2003 ld.w r15, (r14, 0xc) + 9f88: 98c2 ld.w r6, (r14, 0x8) + 9f8a: 98a1 ld.w r5, (r14, 0x4) + 9f8c: 9880 ld.w r4, (r14, 0x0) + 9f8e: 1404 addi r14, r14, 16 + 9f90: 1463 ipop + 9f92: 1461 nir + 9f94: 83a0 ld.b r5, (r3, 0x0) + 9f96: 7554 zextb r5, r5 + 9f98: 3d40 cmpnei r5, 0 + 9f9a: 0bf5 bt 0x9f84 // 9f84 + 9f9c: 1166 lrw r3, 0x20000928 // a034 + 9f9e: 1147 lrw r2, 0x200008bc // a038 + 9fa0: 9300 ld.w r0, (r3, 0x0) + 9fa2: 9220 ld.w r1, (r2, 0x0) + 9fa4: 6442 cmpne r0, r1 + 9fa6: 1127 lrw r1, 0x200009a0 // a040 + 9fa8: 1105 lrw r0, 0x20000ac4 // a03c + 9faa: 0c33 bf 0xa010 // a010 + 9fac: 92c0 ld.w r6, (r2, 0x0) + 9fae: 9180 ld.w r4, (r1, 0x0) + 9fb0: 651a cmpne r6, r4 + 9fb2: 0c2f bf 0xa010 // a010 + 9fb4: 93c0 ld.w r6, (r3, 0x0) + 9fb6: 9180 ld.w r4, (r1, 0x0) + 9fb8: 651a cmpne r6, r4 + 9fba: 0c2b bf 0xa010 // a010 + 9fbc: 9080 ld.w r4, (r0, 0x0) + 9fbe: 2400 addi r4, 1 + 9fc0: b080 st.w r4, (r0, 0x0) + 9fc2: 1181 lrw r4, 0x20000090 // a044 + 9fc4: 84dc ld.b r6, (r4, 0x1c) + 9fc6: 9080 ld.w r4, (r0, 0x0) + 9fc8: 6518 cmphs r6, r4 + 9fca: 0802 bt 0x9fce // 9fce + 9fcc: b0a0 st.w r5, (r0, 0x0) + 9fce: 9380 ld.w r4, (r3, 0x0) + 9fd0: 9200 ld.w r0, (r2, 0x0) + 9fd2: 6412 cmpne r4, r0 + 9fd4: 101d lrw r0, 0x20000b04 // a048 + 9fd6: 0c04 bf 0x9fde // 9fde + 9fd8: 9180 ld.w r4, (r1, 0x0) + 9fda: 3c40 cmpnei r4, 0 + 9fdc: 0c0f bf 0x9ffa // 9ffa + 9fde: 93a0 ld.w r5, (r3, 0x0) + 9fe0: 9180 ld.w r4, (r1, 0x0) + 9fe2: 6516 cmpne r5, r4 + 9fe4: 0c04 bf 0x9fec // 9fec + 9fe6: 9280 ld.w r4, (r2, 0x0) + 9fe8: 3c40 cmpnei r4, 0 + 9fea: 0c08 bf 0x9ffa // 9ffa + 9fec: 9120 ld.w r1, (r1, 0x0) + 9fee: 9240 ld.w r2, (r2, 0x0) + 9ff0: 6486 cmpne r1, r2 + 9ff2: 0c0c bf 0xa00a // a00a + 9ff4: 9360 ld.w r3, (r3, 0x0) + 9ff6: 3b40 cmpnei r3, 0 + 9ff8: 0809 bt 0xa00a // a00a + 9ffa: 9060 ld.w r3, (r0, 0x0) + 9ffc: 2300 addi r3, 1 + 9ffe: b060 st.w r3, (r0, 0x0) + a000: 1071 lrw r3, 0x20000090 // a044 + a002: 835c ld.b r2, (r3, 0x1c) + a004: 9060 ld.w r3, (r0, 0x0) + a006: 64c8 cmphs r2, r3 + a008: 0bbe bt 0x9f84 // 9f84 + a00a: 3300 movi r3, 0 + a00c: b060 st.w r3, (r0, 0x0) + a00e: 07bb br 0x9f84 // 9f84 + a010: 3400 movi r4, 0 + a012: b080 st.w r4, (r0, 0x0) + a014: 07dd br 0x9fce // 9fce + a016: 0000 bkpt + a018: 20000064 .long 0x20000064 + a01c: 20000934 .long 0x20000934 + a020: 20000a28 .long 0x20000a28 + a024: 2000023c .long 0x2000023c + a028: 20000a20 .long 0x20000a20 + a02c: 200009cd .long 0x200009cd + a030: 20000235 .long 0x20000235 + a034: 20000928 .long 0x20000928 + a038: 200008bc .long 0x200008bc + a03c: 20000ac4 .long 0x20000ac4 + a040: 200009a0 .long 0x200009a0 + a044: 20000090 .long 0x20000090 + a048: 20000b04 .long 0x20000b04 + +Disassembly of section .text.tk_init: + +0000a04c : + a04c: 14d4 push r4-r7, r15 + a04e: 142c subi r14, r14, 48 + a050: e3fffeec bsr 0x9e28 // 9e28 + a054: e3ffc6dc bsr 0x2e0c // 2e0c + a058: e3fffe92 bsr 0x9d7c // 9d7c + a05c: e3fff288 bsr 0x856c // 856c + a060: 3200 movi r2, 0 + a062: 3100 movi r1, 0 + a064: 3001 movi r0, 1 + a066: e3fff211 bsr 0x8488 // 8488 + a06a: e3fffe7b bsr 0x9d60 // 9d60 + a06e: e3fffe41 bsr 0x9cf0 // 9cf0 + a072: 1191 lrw r4, 0x20000ae4 // a134 + a074: 3101 movi r1, 1 + a076: a400 st.b r0, (r4, 0x0) + a078: 8440 ld.b r2, (r4, 0x0) + a07a: 1170 lrw r3, 0x200002b4 // a138 + a07c: 8b60 ld.h r3, (r3, 0x0) + a07e: b829 st.w r1, (r14, 0x24) + a080: 3180 movi r1, 128 + a082: 412d lsli r1, r1, 13 + a084: b828 st.w r1, (r14, 0x20) + a086: 3180 movi r1, 128 + a088: 4129 lsli r1, r1, 9 + a08a: b827 st.w r1, (r14, 0x1c) + a08c: 3100 movi r1, 0 + a08e: b826 st.w r1, (r14, 0x18) + a090: 2a00 subi r2, 1 + a092: 110b lrw r0, 0x200002b6 // a13c + a094: 8800 ld.h r0, (r0, 0x0) + a096: b805 st.w r0, (r14, 0x14) + a098: 7488 zextb r2, r2 + a09a: 110a lrw r0, 0x200002bc // a140 + a09c: 8800 ld.h r0, (r0, 0x0) + a09e: b804 st.w r0, (r14, 0x10) + a0a0: 3080 movi r0, 128 + a0a2: 4005 lsli r0, r0, 5 + a0a4: b803 st.w r0, (r14, 0xc) + a0a6: 3080 movi r0, 128 + a0a8: 4004 lsli r0, r0, 4 + a0aa: b802 st.w r0, (r14, 0x8) + a0ac: b821 st.w r1, (r14, 0x4) + a0ae: b820 st.w r1, (r14, 0x0) + a0b0: 3001 movi r0, 1 + a0b2: 3102 movi r1, 2 + a0b4: e3fff1fe bsr 0x84b0 // 84b0 + a0b8: 3002 movi r0, 2 + a0ba: e3fff1df bsr 0x8478 // 8478 + a0be: 3020 movi r0, 32 + a0c0: e3fff1dc bsr 0x8478 // 8478 + a0c4: 3380 movi r3, 128 + a0c6: 4372 lsli r3, r3, 18 + a0c8: 105f lrw r2, 0xe000e100 // a144 + a0ca: b260 st.w r3, (r2, 0x0) + a0cc: b270 st.w r3, (r2, 0x40) + a0ce: 10ff lrw r7, 0x20000078 // a148 + a0d0: 107f lrw r3, 0x20000054 // a14c + a0d2: 11a0 lrw r5, 0x20000b34 // a150 + a0d4: 11c0 lrw r6, 0x2000026e // a154 + a0d6: 9360 ld.w r3, (r3, 0x0) + a0d8: b86a st.w r3, (r14, 0x28) + a0da: b88b st.w r4, (r14, 0x2c) + a0dc: 3300 movi r3, 0 + a0de: 984b ld.w r2, (r14, 0x2c) + a0e0: 8240 ld.b r2, (r2, 0x0) + a0e2: 648c cmphs r3, r2 + a0e4: 0c09 bf 0xa0f6 // a0f6 + a0e6: e3fffe21 bsr 0x9d28 // 9d28 + a0ea: e3fff425 bsr 0x8934 // 8934 + a0ee: e3fff56f bsr 0x8bcc // 8bcc + a0f2: 140c addi r14, r14, 48 + a0f4: 1494 pop r4-r7, r15 + a0f6: 5d0c addu r0, r5, r3 + a0f8: 8020 ld.b r1, (r0, 0x0) + a0fa: 8040 ld.b r2, (r0, 0x0) + a0fc: 8080 ld.b r4, (r0, 0x0) + a0fe: 8000 ld.b r0, (r0, 0x0) + a100: 4001 lsli r0, r0, 1 + a102: 6018 addu r0, r6 + a104: 4121 lsli r1, r1, 1 + a106: 8800 ld.h r0, (r0, 0x0) + a108: 605c addu r1, r7 + a10a: 448f lsli r4, r4, 15 + a10c: 6d00 or r4, r0 + a10e: 4241 lsli r2, r2, 1 + a110: 8900 ld.h r0, (r1, 0x0) + a112: 1032 lrw r1, 0x20000242 // a158 + a114: 6084 addu r2, r1 + a116: 4018 lsli r0, r0, 24 + a118: 6c10 or r0, r4 + a11a: 8a80 ld.h r4, (r2, 0x0) + a11c: 3212 movi r2, 18 + a11e: 608c addu r2, r3 + a120: 4494 lsli r4, r4, 20 + a122: 4242 lsli r2, r2, 2 + a124: 982a ld.w r1, (r14, 0x28) + a126: 6c10 or r0, r4 + a128: 6084 addu r2, r1 + a12a: 2300 addi r3, 1 + a12c: b200 st.w r0, (r2, 0x0) + a12e: 74cc zextb r3, r3 + a130: 07d7 br 0xa0de // a0de + a132: 0000 bkpt + a134: 20000ae4 .long 0x20000ae4 + a138: 200002b4 .long 0x200002b4 + a13c: 200002b6 .long 0x200002b6 + a140: 200002bc .long 0x200002bc + a144: e000e100 .long 0xe000e100 + a148: 20000078 .long 0x20000078 + a14c: 20000054 .long 0x20000054 + a150: 20000b34 .long 0x20000b34 + a154: 2000026e .long 0x2000026e + a158: 20000242 .long 0x20000242 + +Disassembly of section .text.std_clk_calib: + +0000a15c : + a15c: 14d4 push r4-r7, r15 + a15e: 142d subi r14, r14, 52 + a160: 3201 movi r2, 1 + a162: 03ce lrw r6, 0x2000005c // a3a4 + a164: 6cc3 mov r3, r0 + a166: dc4e000a st.b r2, (r14, 0xa) + a16a: 9640 ld.w r2, (r6, 0x0) + a16c: 9247 ld.w r2, (r2, 0x1c) + a16e: 7488 zextb r2, r2 + a170: dc4e0009 st.b r2, (r14, 0x9) + a174: d84e0009 ld.b r2, (r14, 0x9) + a178: 3a40 cmpnei r2, 0 + a17a: 0c08 bf 0xa18a // a18a + a17c: d84e0009 ld.b r2, (r14, 0x9) + a180: 3a42 cmpnei r2, 2 + a182: 0c04 bf 0xa18a // a18a + a184: 3000 movi r0, 0 + a186: 140d addi r14, r14, 52 + a188: 1494 pop r4-r7, r15 + a18a: 0397 lrw r4, 0x2000000c // a3a8 + a18c: 3209 movi r2, 9 + a18e: 9400 ld.w r0, (r4, 0x0) + a190: 3b40 cmpnei r3, 0 + a192: b041 st.w r2, (r0, 0x4) + a194: 0857 bt 0xa242 // a242 + a196: 3307 movi r3, 7 + a198: dc6e000b st.b r3, (r14, 0xb) + a19c: 037b lrw r3, 0x2dc6c00 // a3ac + a19e: b863 st.w r3, (r14, 0xc) + a1a0: 3380 movi r3, 128 + a1a2: 4362 lsli r3, r3, 2 + a1a4: b867 st.w r3, (r14, 0x1c) + a1a6: d86e000b ld.b r3, (r14, 0xb) + a1aa: 74cc zextb r3, r3 + a1ac: b062 st.w r3, (r0, 0x8) + a1ae: 037e lrw r3, 0xffff // a3b0 + a1b0: b063 st.w r3, (r0, 0xc) + a1b2: 3201 movi r2, 1 + a1b4: 3101 movi r1, 1 + a1b6: 03bf lrw r5, 0x20000014 // a3b4 + a1b8: e3ffc1f4 bsr 0x25a0 // 25a0 + a1bc: 95e0 ld.w r7, (r5, 0x0) + a1be: 137f lrw r3, 0xbe9c0005 // a3b8 + a1c0: b760 st.w r3, (r7, 0x0) + a1c2: 135f lrw r2, 0x30010 // a3bc + a1c4: 3300 movi r3, 0 + a1c6: b762 st.w r3, (r7, 0x8) + a1c8: b743 st.w r2, (r7, 0xc) + a1ca: 32d8 movi r2, 216 + a1cc: b745 st.w r2, (r7, 0x14) + a1ce: 974f ld.w r2, (r7, 0x3c) + a1d0: 3aa2 bseti r2, 2 + a1d2: b74f st.w r2, (r7, 0x3c) + a1d4: 9803 ld.w r0, (r14, 0xc) + a1d6: d82e000b ld.b r1, (r14, 0xb) + a1da: 327d movi r2, 125 + a1dc: 2100 addi r1, 1 + a1de: 7c48 mult r1, r2 + a1e0: b861 st.w r3, (r14, 0x4) + a1e2: e3ffcd27 bsr 0x3c30 // 3c30 <__udivsi3> + a1e6: b804 st.w r0, (r14, 0x10) + a1e8: 32fa movi r2, 250 + a1ea: 9824 ld.w r1, (r14, 0x10) + a1ec: 4242 lsli r2, r2, 2 + a1ee: 6448 cmphs r2, r1 + a1f0: 0bca bt 0xa184 // a184 + a1f2: 9844 ld.w r2, (r14, 0x10) + a1f4: 3178 movi r1, 120 + a1f6: 9804 ld.w r0, (r14, 0x10) + a1f8: b840 st.w r2, (r14, 0x0) + a1fa: e3ffcd1b bsr 0x3c30 // 3c30 <__udivsi3> + a1fe: 9840 ld.w r2, (r14, 0x0) + a200: 6082 subu r2, r0 + a202: b845 st.w r2, (r14, 0x14) + a204: 9804 ld.w r0, (r14, 0x10) + a206: 3178 movi r1, 120 + a208: 9844 ld.w r2, (r14, 0x10) + a20a: b840 st.w r2, (r14, 0x0) + a20c: e3ffcd12 bsr 0x3c30 // 3c30 <__udivsi3> + a210: 9840 ld.w r2, (r14, 0x0) + a212: 6008 addu r0, r2 + a214: b806 st.w r0, (r14, 0x18) + a216: c0807020 psrclr ie + a21a: 9640 ld.w r2, (r6, 0x0) + a21c: 9254 ld.w r2, (r2, 0x50) + a21e: b848 st.w r2, (r14, 0x20) + a220: 9861 ld.w r3, (r14, 0x4) + a222: 9440 ld.w r2, (r4, 0x0) + a224: b260 st.w r3, (r2, 0x0) + a226: b761 st.w r3, (r7, 0x4) + a228: d86e000a ld.b r3, (r14, 0xa) + a22c: 3b40 cmpnei r3, 0 + a22e: 083e bt 0xa2aa // a2aa + a230: e3ffc16a bsr 0x2504 // 2504 + a234: 9400 ld.w r0, (r4, 0x0) + a236: e3ffc18b bsr 0x254c // 254c + a23a: c1807420 psrset ee, ie + a23e: 3001 movi r0, 1 + a240: 07a3 br 0xa186 // a186 + a242: 3b41 cmpnei r3, 1 + a244: 0806 bt 0xa250 // a250 + a246: 3303 movi r3, 3 + a248: dc6e000b st.b r3, (r14, 0xb) + a24c: 127d lrw r3, 0x16e3600 // a3c0 + a24e: 07a8 br 0xa19e // a19e + a250: 3b42 cmpnei r3, 2 + a252: 0806 bt 0xa25e // a25e + a254: 3301 movi r3, 1 + a256: dc6e000b st.b r3, (r14, 0xb) + a25a: 127b lrw r3, 0xb71b00 // a3c4 + a25c: 07a1 br 0xa19e // a19e + a25e: 3b43 cmpnei r3, 3 + a260: 0806 bt 0xa26c // a26c + a262: 3300 movi r3, 0 + a264: dc6e000b st.b r3, (r14, 0xb) + a268: 1278 lrw r3, 0x5b8d80 // a3c8 + a26a: 079a br 0xa19e // a19e + a26c: 3b44 cmpnei r3, 4 + a26e: 0809 bt 0xa280 // a280 + a270: 3300 movi r3, 0 + a272: dc6e000b st.b r3, (r14, 0xb) + a276: 1276 lrw r3, 0x54c720 // a3cc + a278: b863 st.w r3, (r14, 0xc) + a27a: 3380 movi r3, 128 + a27c: 4369 lsli r3, r3, 9 + a27e: 0793 br 0xa1a4 // a1a4 + a280: 3b45 cmpnei r3, 5 + a282: 0806 bt 0xa28e // a28e + a284: 3300 movi r3, 0 + a286: dc6e000b st.b r3, (r14, 0xb) + a28a: 1272 lrw r3, 0x3ffed0 // a3d0 + a28c: 07f6 br 0xa278 // a278 + a28e: 3b46 cmpnei r3, 6 + a290: 0806 bt 0xa29c // a29c + a292: 3300 movi r3, 0 + a294: dc6e000b st.b r3, (r14, 0xb) + a298: 126f lrw r3, 0x1fff68 // a3d4 + a29a: 07ef br 0xa278 // a278 + a29c: 3b47 cmpnei r3, 7 + a29e: 0b84 bt 0xa1a6 // a1a6 + a2a0: 3300 movi r3, 0 + a2a2: dc6e000b st.b r3, (r14, 0xb) + a2a6: 126d lrw r3, 0x1ffb8 // a3d8 + a2a8: 07e8 br 0xa278 // a278 + a2aa: 9560 ld.w r3, (r5, 0x0) + a2ac: 3101 movi r1, 1 + a2ae: 9440 ld.w r2, (r4, 0x0) + a2b0: b321 st.w r1, (r3, 0x4) + a2b2: b220 st.w r1, (r2, 0x0) + a2b4: 3100 movi r1, 0 + a2b6: b327 st.w r1, (r3, 0x1c) + a2b8: 3004 movi r0, 4 + a2ba: b225 st.w r1, (r2, 0x14) + a2bc: 932e ld.w r1, (r3, 0x38) + a2be: 6840 and r1, r0 + a2c0: 3940 cmpnei r1, 0 + a2c2: 0ffd bf 0xa2bc // a2bc + a2c4: 9225 ld.w r1, (r2, 0x14) + a2c6: b82a st.w r1, (r14, 0x28) + a2c8: 3100 movi r1, 0 + a2ca: b310 st.w r0, (r3, 0x40) + a2cc: b327 st.w r1, (r3, 0x1c) + a2ce: 3004 movi r0, 4 + a2d0: b225 st.w r1, (r2, 0x14) + a2d2: 932e ld.w r1, (r3, 0x38) + a2d4: 6840 and r1, r0 + a2d6: 3940 cmpnei r1, 0 + a2d8: 0ffd bf 0xa2d2 // a2d2 + a2da: 9225 ld.w r1, (r2, 0x14) + a2dc: b82b st.w r1, (r14, 0x2c) + a2de: 3100 movi r1, 0 + a2e0: b310 st.w r0, (r3, 0x40) + a2e2: b327 st.w r1, (r3, 0x1c) + a2e4: 3004 movi r0, 4 + a2e6: b225 st.w r1, (r2, 0x14) + a2e8: 932e ld.w r1, (r3, 0x38) + a2ea: 6840 and r1, r0 + a2ec: 3940 cmpnei r1, 0 + a2ee: 0ffd bf 0xa2e8 // a2e8 + a2f0: 9225 ld.w r1, (r2, 0x14) + a2f2: b82c st.w r1, (r14, 0x30) + a2f4: b310 st.w r0, (r3, 0x40) + a2f6: 982b ld.w r1, (r14, 0x2c) + a2f8: 980c ld.w r0, (r14, 0x30) + a2fa: 6040 addu r1, r0 + a2fc: b829 st.w r1, (r14, 0x24) + a2fe: 9829 ld.w r1, (r14, 0x24) + a300: 4921 lsri r1, r1, 1 + a302: b829 st.w r1, (r14, 0x24) + a304: 3100 movi r1, 0 + a306: b321 st.w r1, (r3, 0x4) + a308: b220 st.w r1, (r2, 0x0) + a30a: b327 st.w r1, (r3, 0x1c) + a30c: b225 st.w r1, (r2, 0x14) + a30e: d86e0009 ld.b r3, (r14, 0x9) + a312: 3b42 cmpnei r3, 2 + a314: 9849 ld.w r2, (r14, 0x24) + a316: 082c bt 0xa36e // a36e + a318: 1171 lrw r3, 0x7ff // a3dc + a31a: 648c cmphs r3, r2 + a31c: 0c03 bf 0xa322 // a322 + a31e: 3300 movi r3, 0 + a320: 040f br 0xa33e // a33e + a322: 9849 ld.w r2, (r14, 0x24) + a324: 9866 ld.w r3, (r14, 0x18) + a326: 648c cmphs r3, r2 + a328: 080e bt 0xa344 // a344 + a32a: 9868 ld.w r3, (r14, 0x20) + a32c: 9847 ld.w r2, (r14, 0x1c) + a32e: 60ca subu r3, r2 + a330: b868 st.w r3, (r14, 0x20) + a332: 32fe movi r2, 254 + a334: 9868 ld.w r3, (r14, 0x20) + a336: 4248 lsli r2, r2, 8 + a338: 68c8 and r3, r2 + a33a: 3b40 cmpnei r3, 0 + a33c: 0812 bt 0xa360 // a360 + a33e: dc6e000a st.b r3, (r14, 0xa) + a342: 0721 br 0xa184 // a184 + a344: 9849 ld.w r2, (r14, 0x24) + a346: 9865 ld.w r3, (r14, 0x14) + a348: 64c8 cmphs r2, r3 + a34a: 0829 bt 0xa39c // a39c + a34c: 9868 ld.w r3, (r14, 0x20) + a34e: 9847 ld.w r2, (r14, 0x1c) + a350: 60c8 addu r3, r2 + a352: b868 st.w r3, (r14, 0x20) + a354: 33fe movi r3, 254 + a356: 9848 ld.w r2, (r14, 0x20) + a358: 4368 lsli r3, r3, 8 + a35a: 688c and r2, r3 + a35c: 64ca cmpne r2, r3 + a35e: 0fe0 bf 0xa31e // a31e + a360: 9660 ld.w r3, (r6, 0x0) + a362: 9848 ld.w r2, (r14, 0x20) + a364: b354 st.w r2, (r3, 0x50) + a366: 3001 movi r0, 1 + a368: e3ffc654 bsr 0x3010 // 3010 + a36c: 075e br 0xa228 // a228 + a36e: 9866 ld.w r3, (r14, 0x18) + a370: 648c cmphs r3, r2 + a372: 0809 bt 0xa384 // a384 + a374: 9868 ld.w r3, (r14, 0x20) + a376: 9847 ld.w r2, (r14, 0x1c) + a378: 60ca subu r3, r2 + a37a: b868 st.w r3, (r14, 0x20) + a37c: 32ff movi r2, 255 + a37e: 9868 ld.w r3, (r14, 0x20) + a380: 4250 lsli r2, r2, 16 + a382: 07db br 0xa338 // a338 + a384: 9849 ld.w r2, (r14, 0x24) + a386: 9865 ld.w r3, (r14, 0x14) + a388: 64c8 cmphs r2, r3 + a38a: 0809 bt 0xa39c // a39c + a38c: 9868 ld.w r3, (r14, 0x20) + a38e: 9847 ld.w r2, (r14, 0x1c) + a390: 60c8 addu r3, r2 + a392: b868 st.w r3, (r14, 0x20) + a394: 33ff movi r3, 255 + a396: 9848 ld.w r2, (r14, 0x20) + a398: 4370 lsli r3, r3, 16 + a39a: 07e0 br 0xa35a // a35a + a39c: 3300 movi r3, 0 + a39e: dc6e000a st.b r3, (r14, 0xa) + a3a2: 07e2 br 0xa366 // a366 + a3a4: 2000005c .long 0x2000005c + a3a8: 2000000c .long 0x2000000c + a3ac: 02dc6c00 .long 0x02dc6c00 + a3b0: 0000ffff .long 0x0000ffff + a3b4: 20000014 .long 0x20000014 + a3b8: be9c0005 .long 0xbe9c0005 + a3bc: 00030010 .long 0x00030010 + a3c0: 016e3600 .long 0x016e3600 + a3c4: 00b71b00 .long 0x00b71b00 + a3c8: 005b8d80 .long 0x005b8d80 + a3cc: 0054c720 .long 0x0054c720 + a3d0: 003ffed0 .long 0x003ffed0 + a3d4: 001fff68 .long 0x001fff68 + a3d8: 0001ffb8 .long 0x0001ffb8 + a3dc: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_202505161010.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_202505161010.map new file mode 100644 index 0000000..3dd87a5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V04_202505161010.map @@ -0,0 +1,3495 @@ +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: 571080 (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: 291 + Section header string table index: 288 + +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 001d52 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001d54 002d54 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001d8c 002d8c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001e00 002e00 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001e4c 002e4c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001e7c 002e7c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001f04 002f04 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001f2c 002f2c 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001f68 002f68 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001f7c 002f7c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001f94 002f94 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001fb4 002fb4 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001fd0 002fd0 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001fec 002fec 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 0000202c 00302c 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00002060 003060 000004 00 AX 0 0 2 + [17] .text.EXI3_Int_En PROGBITS 00002064 003064 000010 00 AX 0 0 4 + [18] .text.EXI4_Int_En PROGBITS 00002074 003074 000010 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00002084 003084 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Int_ PROGBITS 00002090 003090 00000c 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 0000209c 00309c 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000020c0 0030c0 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 000020f0 0030f0 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 00002154 003154 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 00002234 003234 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00002248 003248 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00002258 003258 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 00002364 003364 0000fc 00 AX 0 0 4 + [29] .text.GPIOB0_EXI_ PROGBITS 00002460 003460 00006c 00 AX 0 0 4 + [30] .text.GPIO_Write_ PROGBITS 000024cc 0034cc 000008 00 AX 0 0 2 + [31] .text.GPIO_Write_ PROGBITS 000024d4 0034d4 000008 00 AX 0 0 2 + [32] .text.GPIO_Revers PROGBITS 000024dc 0034dc 000016 00 AX 0 0 2 + [33] .text.GPIO_Read_S PROGBITS 000024f2 0034f2 000010 00 AX 0 0 2 + [34] .text.LPT_Soft_Re PROGBITS 00002504 003504 000014 00 AX 0 0 4 + [35] .text.WWDT_CNT_Lo PROGBITS 00002518 003518 000010 00 AX 0 0 4 + [36] .text.BT_DeInit PROGBITS 00002528 003528 00001c 00 AX 0 0 2 + [37] .text.BT_Start PROGBITS 00002544 003544 000008 00 AX 0 0 2 + [38] .text.BT_Soft_Res PROGBITS 0000254c 00354c 00000a 00 AX 0 0 2 + [39] .text.BT_Configur PROGBITS 00002556 003556 000018 00 AX 0 0 2 + [40] .text.BT_ControlS PROGBITS 0000256e 00356e 00002c 00 AX 0 0 2 + [41] .text.BT_Period_C PROGBITS 0000259a 00359a 000006 00 AX 0 0 2 + [42] .text.BT_ConfigIn PROGBITS 000025a0 0035a0 000012 00 AX 0 0 2 + [43] .text.BT1_INT_ENA PROGBITS 000025b4 0035b4 000010 00 AX 0 0 4 + [44] .text.SIO_DeInit PROGBITS 000025c4 0035c4 000020 00 AX 0 0 4 + [45] .text.SIO_IO_Init PROGBITS 000025e4 0035e4 000060 00 AX 0 0 4 + [46] .text.SIO_TX_Init PROGBITS 00002644 003644 000010 00 AX 0 0 4 + [47] .text.SIO_TX_Conf PROGBITS 00002654 003654 000050 00 AX 0 0 4 + [48] .text.UART0_DeIni PROGBITS 000026a4 0036a4 000018 00 AX 0 0 4 + [49] .text.UART1_DeIni PROGBITS 000026bc 0036bc 000018 00 AX 0 0 4 + [50] .text.UART2_DeIni PROGBITS 000026d4 0036d4 000018 00 AX 0 0 4 + [51] .text.UART0_Int_E PROGBITS 000026ec 0036ec 00001c 00 AX 0 0 4 + [52] .text.UART2_Int_E PROGBITS 00002708 003708 00001c 00 AX 0 0 4 + [53] .text.UART_IO_Ini PROGBITS 00002724 003724 0000ec 00 AX 0 0 4 + [54] .text.UARTInit PROGBITS 00002810 003810 000010 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 00002820 003820 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 00002830 003830 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 00002850 003850 000028 00 AX 0 0 4 + [58] .text.ADC12_RESET PROGBITS 00002878 003878 000064 00 AX 0 0 4 + [59] .text.ADC12_Contr PROGBITS 000028dc 0038dc 000010 00 AX 0 0 4 + [60] .text.ADC12_CMD.p PROGBITS 000028ec 0038ec 000020 00 AX 0 0 4 + [61] .text.ADC12_CLK_C PROGBITS 0000290c 00390c 00002c 00 AX 0 0 4 + [62] .text.ADC12_Softw PROGBITS 00002938 003938 00000a 00 AX 0 0 2 + [63] .text.ADC12_CMD PROGBITS 00002944 003944 000028 00 AX 0 0 4 + [64] .text.ADC12_ready PROGBITS 0000296c 00396c 000014 00 AX 0 0 4 + [65] .text.ADC12_SEQEN PROGBITS 00002980 003980 000018 00 AX 0 0 4 + [66] .text.ADC12_DATA_ PROGBITS 00002998 003998 000014 00 AX 0 0 4 + [67] .text.ADC12_Confi PROGBITS 000029ac 0039ac 00007c 00 AX 0 0 4 + [68] .text.ADC12_Confi PROGBITS 00002a28 003a28 000198 00 AX 0 0 4 + [69] .text.ADC12_Conve PROGBITS 00002bc0 003bc0 000180 00 AX 0 0 4 + [70] .text.Page_Progra PROGBITS 00002d40 003d40 0000a0 00 AX 0 0 4 + [71] .text.ReadDataArr PROGBITS 00002de0 003de0 00002a 00 AX 0 0 2 + [72] .text.tk_paramete PROGBITS 00002e0c 003e0c 000140 00 AX 0 0 4 + [73] .text.CORET_DeIni PROGBITS 00002f4c 003f4c 000018 00 AX 0 0 4 + [74] .text.CORET_Int_E PROGBITS 00002f64 003f64 000018 00 AX 0 0 4 + [75] .text.CORET_start PROGBITS 00002f7c 003f7c 000010 00 AX 0 0 4 + [76] .text.CORET_CLKSO PROGBITS 00002f8c 003f8c 000010 00 AX 0 0 4 + [77] .text.CORET_TICKI PROGBITS 00002f9c 003f9c 000010 00 AX 0 0 4 + [78] .text.CORET_reloa PROGBITS 00002fac 003fac 000010 00 AX 0 0 4 + [79] .text.startup.mai PROGBITS 00002fbc 003fbc 000054 00 AX 0 0 4 + [80] .text.delay_nms PROGBITS 00003010 004010 00002c 00 AX 0 0 2 + [81] .text.delay_nus PROGBITS 0000303c 00403c 000022 00 AX 0 0 2 + [82] .text.GPIO_CONFIG PROGBITS 00003060 004060 00008c 00 AX 0 0 4 + [83] .text.BT_CONFIG PROGBITS 000030ec 0040ec 000060 00 AX 0 0 4 + [84] .text.SYSCON_CONF PROGBITS 0000314c 00414c 000062 00 AX 0 0 2 + [85] .text.APT32F102_i PROGBITS 000031b0 0041b0 00009c 00 AX 0 0 4 + [86] .text.SYSCONIntHa PROGBITS 0000324c 00424c 0000f0 00 AX 0 0 4 + [87] .text.IFCIntHandl PROGBITS 0000333c 00433c 000068 00 AX 0 0 4 + [88] .text.ADCIntHandl PROGBITS 000033a4 0043a4 000068 00 AX 0 0 4 + [89] .text.EPT0IntHand PROGBITS 0000340c 00440c 0001ac 00 AX 0 0 4 + [90] .text.WWDTHandler PROGBITS 000035b8 0045b8 000034 00 AX 0 0 4 + [91] .text.GPT0IntHand PROGBITS 000035ec 0045ec 000080 00 AX 0 0 4 + [92] .text.RTCIntHandl PROGBITS 0000366c 00466c 000070 00 AX 0 0 4 + [93] .text.UART0IntHan PROGBITS 000036dc 0046dc 00003c 00 AX 0 0 4 + [94] .text.UART1IntHan PROGBITS 00003718 004718 00003c 00 AX 0 0 4 + [95] .text.UART2IntHan PROGBITS 00003754 004754 000094 00 AX 0 0 4 + [96] .text.SPI0IntHand PROGBITS 000037e8 0047e8 0000e8 00 AX 0 0 4 + [97] .text.SIO0IntHand PROGBITS 000038d0 0048d0 000054 00 AX 0 0 4 + [98] .text.EXI0IntHand PROGBITS 00003924 004924 000030 00 AX 0 0 4 + [99] .text.EXI1IntHand PROGBITS 00003954 004954 000030 00 AX 0 0 4 + [100] .text.EXI2to3IntH PROGBITS 00003984 004984 000048 00 AX 0 0 4 + [101] .text.EXI4to9IntH PROGBITS 000039cc 0049cc 00006c 00 AX 0 0 4 + [102] .text.EXI10to15In PROGBITS 00003a38 004a38 000080 00 AX 0 0 4 + [103] .text.LPTIntHandl PROGBITS 00003ab8 004ab8 000034 00 AX 0 0 4 + [104] .text.BT0IntHandl PROGBITS 00003aec 004aec 00004c 00 AX 0 0 4 + [105] .text.BT1IntHandl PROGBITS 00003b38 004b38 000070 00 AX 0 0 4 + [106] .text.PriviledgeV PROGBITS 00003ba8 004ba8 000002 00 AX 0 0 2 + [107] .text.PendTrapHan PROGBITS 00003baa 004baa 000008 00 AX 0 0 2 + [108] .text.Trap3Handle PROGBITS 00003bb2 004bb2 000008 00 AX 0 0 2 + [109] .text.Trap2Handle PROGBITS 00003bba 004bba 000008 00 AX 0 0 2 + [110] .text.Trap1Handle PROGBITS 00003bc2 004bc2 000008 00 AX 0 0 2 + [111] .text.Trap0Handle PROGBITS 00003bca 004bca 000008 00 AX 0 0 2 + [112] .text.UnrecExecpH PROGBITS 00003bd2 004bd2 000008 00 AX 0 0 2 + [113] .text.BreakPointH PROGBITS 00003bda 004bda 000008 00 AX 0 0 2 + [114] .text.AccessErrHa PROGBITS 00003be2 004be2 000008 00 AX 0 0 2 + [115] .text.IllegalInst PROGBITS 00003bea 004bea 000008 00 AX 0 0 2 + [116] .text.MisalignedH PROGBITS 00003bf2 004bf2 000008 00 AX 0 0 2 + [117] .text.CNTAIntHand PROGBITS 00003bfa 004bfa 000008 00 AX 0 0 2 + [118] .text.I2CIntHandl PROGBITS 00003c02 004c02 000008 00 AX 0 0 2 + [119] .text.__divsi3 PROGBITS 00003c0c 004c0c 000024 00 AX 0 0 4 + [120] .text.__udivsi3 PROGBITS 00003c30 004c30 000024 00 AX 0 0 4 + [121] .text.__modsi3 PROGBITS 00003c54 004c54 000024 00 AX 0 0 4 + [122] .text.__umodsi3 PROGBITS 00003c78 004c78 000024 00 AX 0 0 4 + [123] .text.CK_CPU_EnAl PROGBITS 00003c9c 004c9c 000006 00 AX 0 0 2 + [124] .text.CK_CPU_DisA PROGBITS 00003ca2 004ca2 000006 00 AX 0 0 2 + [125] .text.UARTx_Init PROGBITS 00003ca8 004ca8 000108 00 AX 0 0 4 + [126] .text.UART2_RecvI PROGBITS 00003db0 004db0 000044 00 AX 0 0 4 + [127] .text.UART2_TASK PROGBITS 00003df4 004df4 00008c 00 AX 0 0 4 + [128] .text.BUS485_Send PROGBITS 00003e80 004e80 0000c4 00 AX 0 0 4 + [129] .text.MultSend_Ta PROGBITS 00003f44 004f44 000074 00 AX 0 0 4 + [130] .text.Set_GroupSe PROGBITS 00003fb8 004fb8 000064 00 AX 0 0 4 + [131] .text.Clear_SendF PROGBITS 0000401c 00501c 000010 00 AX 0 0 4 + [132] .text.BUS485_Jump PROGBITS 0000402c 00502c 00000c 00 AX 0 0 4 + [133] .text.BUS485Send_ PROGBITS 00004038 005038 000034 00 AX 0 0 4 + [134] .text.BusIdle_Tas PROGBITS 0000406c 00506c 000040 00 AX 0 0 4 + [135] .text.BusBusy_Tas PROGBITS 000040ac 0050ac 00005c 00 AX 0 0 4 + [136] .text.Dbg_Println PROGBITS 00004108 005108 00000c 00 AX 0 0 2 + [137] .text.Dbg_Print_B PROGBITS 00004114 005114 000002 00 AX 0 0 2 + [138] .text.Touch_Key_I PROGBITS 00004118 005118 000068 00 AX 0 0 4 + [139] .text.Get_TouchKe PROGBITS 00004180 005180 00003c 00 AX 0 0 4 + [140] .text.TouchKey_RS PROGBITS 000041bc 0051bc 0002f4 00 AX 0 0 4 + [141] .text.Touch_Key_E PROGBITS 000044b0 0054b0 0000ac 00 AX 0 0 4 + [142] .text.TouchKey_Se PROGBITS 0000455c 00555c 00003c 00 AX 0 0 4 + [143] .text.Touch_Key_T PROGBITS 00004598 005598 000100 00 AX 0 0 4 + [144] .text.TouchKey_Ch PROGBITS 00004698 005698 000018 00 AX 0 0 2 + [145] .text.TouchKey_Co PROGBITS 000046b0 0056b0 000070 00 AX 0 0 4 + [146] .text.TouchKey_Se PROGBITS 00004720 005720 0000b8 00 AX 0 0 4 + [147] .text.TouchKey_Re PROGBITS 000047d8 0057d8 0000f8 00 AX 0 0 4 + [148] .text.TouchKey_Du PROGBITS 000048d0 0058d0 000038 00 AX 0 0 4 + [149] .text.TouchKey_Re PROGBITS 00004908 005908 0000b0 00 AX 0 0 4 + [150] .text.TouchKey_Re PROGBITS 000049b8 0059b8 00001a 00 AX 0 0 2 + [151] .text.TouchKey_Co PROGBITS 000049d4 0059d4 0000d8 00 AX 0 0 4 + [152] .text.EEPROM_Chec PROGBITS 00004aac 005aac 000016 00 AX 0 0 2 + [153] .text.EEPROM_Read PROGBITS 00004ac4 005ac4 000074 00 AX 0 0 4 + [154] .text.EEPROM_Writ PROGBITS 00004b38 005b38 000044 00 AX 0 0 4 + [155] .text.EEPROM_Vali PROGBITS 00004b7c 005b7c 00008c 00 AX 0 0 4 + [156] .text.EEPROM_Defa PROGBITS 00004c08 005c08 000020 00 AX 0 0 2 + [157] .text.EEPROM_Writ PROGBITS 00004c28 005c28 00006c 00 AX 0 0 4 + [158] .text.EEPROM_Read PROGBITS 00004c94 005c94 0000ac 00 AX 0 0 4 + [159] .text.EEPROM_Vali PROGBITS 00004d40 005d40 0000e0 00 AX 0 0 4 + [160] .text.EEPROM_Defa PROGBITS 00004e20 005e20 000070 00 AX 0 0 4 + [161] .text.EEPROM_Touc PROGBITS 00004e90 005e90 000080 00 AX 0 0 4 + [162] .text.EEPROM_Read PROGBITS 00004f10 005f10 000070 00 AX 0 0 4 + [163] .text.EEPROM_Writ PROGBITS 00004f80 005f80 000040 00 AX 0 0 2 + [164] .text.EEPROM_Defa PROGBITS 00004fc0 005fc0 000038 00 AX 0 0 4 + [165] .text.EEPROM_Vali PROGBITS 00004ff8 005ff8 000058 00 AX 0 0 4 + [166] .text.EEPROM_Init PROGBITS 00005050 006050 000088 00 AX 0 0 4 + [167] .text.ADC_Init PROGBITS 000050d8 0060d8 000060 00 AX 0 0 4 + [168] .text.Thermistor_ PROGBITS 00005138 006138 000048 00 AX 0 0 4 + [169] .text.Calculate_A PROGBITS 00005180 006180 000090 00 AX 0 0 4 + [170] .text.Get_Temp_Va PROGBITS 00005210 006210 00000c 00 AX 0 0 4 + [171] .text.Gather_Temp PROGBITS 0000521c 00621c 000090 00 AX 0 0 4 + [172] .text.ADC_Sample_ PROGBITS 000052ac 0062ac 000070 00 AX 0 0 4 + [173] .text.Contol_Swit PROGBITS 0000531c 00631c 0003ea 00 AX 0 0 4 + [174] .text.Contol_Swit PROGBITS 00005708 006708 0003ea 00 AX 0 0 4 + [175] .text.Contol_Swit PROGBITS 00005af4 006af4 000028 00 AX 0 0 4 + [176] .text.Get_TM1812_ PROGBITS 00005b1c 006b1c 000044 00 AX 0 0 4 + [177] .text.TimeCall_SI PROGBITS 00005b60 006b60 000120 00 AX 0 0 4 + [178] .text.TimeCall_SI PROGBITS 00005c80 006c80 0000a8 00 AX 0 0 4 + [179] .text.Tm1812_Task PROGBITS 00005d28 006d28 00005c 00 AX 0 0 4 + [180] .text.Tm1812_Ch_I PROGBITS 00005d84 006d84 000024 00 AX 0 0 4 + [181] .text.TM1812_Cont PROGBITS 00005da8 006da8 000070 00 AX 0 0 4 + [182] .text.TM1812_Cont PROGBITS 00005e18 006e18 000064 00 AX 0 0 4 + [183] .text.TM1812_LED_ PROGBITS 00005e7c 006e7c 00006c 00 AX 0 0 4 + [184] .text.HT1621_WR_D PROGBITS 00005ee8 006ee8 000048 00 AX 0 0 4 + [185] .text.HT1621_WR_C PROGBITS 00005f30 006f30 000030 00 AX 0 0 4 + [186] .text.HT1621_Init PROGBITS 00005f60 006f60 0000b4 00 AX 0 0 4 + [187] .text.HT1621_Clea PROGBITS 00006014 007014 000050 00 AX 0 0 4 + [188] .text.HT1621_ALLO PROGBITS 00006064 007064 000040 00 AX 0 0 4 + [189] .text.HT1621_Refr PROGBITS 000060a4 0070a4 00004c 00 AX 0 0 4 + [190] .text.Set_Tempera PROGBITS 000060f0 0070f0 0000d0 00 AX 0 0 4 + [191] .text.Local_Tempe PROGBITS 000061c0 0071c0 0000d0 00 AX 0 0 4 + [192] .text.Control_Mod PROGBITS 00006290 007290 000244 00 AX 0 0 4 + [193] .text.Control_win PROGBITS 000064d4 0074d4 0000d0 00 AX 0 0 4 + [194] .text.Control_Pro PROGBITS 000065a4 0075a4 0000a4 00 AX 0 0 4 + [195] .text.Controlled_ PROGBITS 00006648 007648 000048 00 AX 0 0 4 + [196] .text.Controlled_ PROGBITS 00006690 007690 0000dc 00 AX 0 0 4 + [197] .text.Controlled_ PROGBITS 0000676c 00776c 000030 00 AX 0 0 4 + [198] .text.Set_Device_ PROGBITS 0000679c 00779c 00009c 00 AX 0 0 4 + [199] .text.Set_Temp_Di PROGBITS 00006838 007838 000064 00 AX 0 0 4 + [200] .text.HT1621_Refr PROGBITS 0000689c 00789c 000090 00 AX 0 0 4 + [201] .text.Boot_Functi PROGBITS 0000692c 00792c 000060 00 AX 0 0 4 + [202] .text.Boot_Comm_C PROGBITS 0000698c 00798c 000024 00 AX 0 0 4 + [203] .text.Boot_Comm_F PROGBITS 000069b0 0079b0 00005c 00 AX 0 0 4 + [204] .text.Boot_Time_R PROGBITS 00006a0c 007a0c 000014 00 AX 0 0 4 + [205] .text.Boot_Comm_U PROGBITS 00006a20 007a20 000188 00 AX 0 0 4 + [206] .text.TemCtrl_Ini PROGBITS 00006ba8 007ba8 000178 00 AX 0 0 4 + [207] .text.TemCtrl_Mod PROGBITS 00006d20 007d20 00004c 00 AX 0 0 4 + [208] .text.TemCtrl_Fan PROGBITS 00006d6c 007d6c 00004c 00 AX 0 0 4 + [209] .text.TemCtrl_Tem PROGBITS 00006db8 007db8 000030 00 AX 0 0 4 + [210] .text.TemCtrl_Tem PROGBITS 00006de8 007de8 000030 00 AX 0 0 4 + [211] .text.TemCtrl_OnO PROGBITS 00006e18 007e18 000034 00 AX 0 0 4 + [212] .text.Tem_Valve_C PROGBITS 00006e4c 007e4c 0000cc 00 AX 0 0 4 + [213] .text.TemCtrl_Pro PROGBITS 00006f18 007f18 000178 00 AX 0 0 4 + [214] .text.KEY1_Model_ PROGBITS 00007090 008090 0000cc 00 AX 0 0 4 + [215] .text.KEY2_Fan_Pr PROGBITS 0000715c 00815c 0000cc 00 AX 0 0 4 + [216] .text.KEY3_TempAd PROGBITS 00007228 008228 000100 00 AX 0 0 4 + [217] .text.KEY3_Long_P PROGBITS 00007328 008328 000070 00 AX 0 0 4 + [218] .text.KEY4_TempDe PROGBITS 00007398 008398 000100 00 AX 0 0 4 + [219] .text.KEY4_Long_P PROGBITS 00007498 008498 000070 00 AX 0 0 4 + [220] .text.KEY5_OnOff_ PROGBITS 00007508 008508 000090 00 AX 0 0 4 + [221] .text.TempCtrl_On PROGBITS 00007598 008598 000054 00 AX 0 0 4 + [222] .text.DisPlay_Ini PROGBITS 000075ec 0085ec 000020 00 AX 0 0 4 + [223] .text.DisPlay_Tas PROGBITS 0000760c 00860c 0004e8 00 AX 0 0 4 + [224] .text.Debug_Init PROGBITS 00007af4 008af4 00003c 00 AX 0 0 4 + [225] .text.Dev_SaveDat PROGBITS 00007b30 008b30 0000ac 00 AX 0 0 4 + [226] .text.Debug_Task PROGBITS 00007bdc 008bdc 000064 00 AX 0 0 4 + [227] .text.BLV_RLY_Ctr PROGBITS 00007c40 008c40 000028 00 AX 0 0 4 + [228] .text.Relay_Init PROGBITS 00007c68 008c68 000028 00 AX 0 0 4 + [229] .text.Relay_High PROGBITS 00007c90 008c90 00001c 00 AX 0 0 2 + [230] .text.Relay_Mid PROGBITS 00007cac 008cac 00001c 00 AX 0 0 2 + [231] .text.Relay_Low PROGBITS 00007cc8 008cc8 00001c 00 AX 0 0 2 + [232] .text.Relay_Stop PROGBITS 00007ce4 008ce4 00001c 00 AX 0 0 2 + [233] .text.BLV_RLY_Ctr PROGBITS 00007d00 008d00 000014 00 AX 0 0 2 + [234] .text.RLY_Direct_ PROGBITS 00007d14 008d14 0000c8 00 AX 0 0 4 + [235] .text.RLY_Zero_Co PROGBITS 00007ddc 008ddc 000098 00 AX 0 0 4 + [236] .text.NetCRC16_Ch PROGBITS 00007e74 008e74 00004c 00 AX 0 0 4 + [237] .text.GetCRC16 PROGBITS 00007ec0 008ec0 00003c 00 AX 0 0 4 + [238] .text.SOR_CRC PROGBITS 00007efc 008efc 000016 00 AX 0 0 2 + [239] .text.Rs485_ASend PROGBITS 00007f14 008f14 000108 00 AX 0 0 4 + [240] .text.Rs485AskCyc PROGBITS 0000801c 00901c 000104 00 AX 0 0 4 + [241] .text.Rs485AskCtr PROGBITS 00008120 009120 00005c 00 AX 0 0 4 + [242] .text.Rs485AskRea PROGBITS 0000817c 00917c 000068 00 AX 0 0 4 + [243] .text.Rs485_DevPo PROGBITS 000081e4 0091e4 000018 00 AX 0 0 2 + [244] .text.Temp_Rec_An PROGBITS 000081fc 0091fc 0001b0 00 AX 0 0 4 + [245] .text.Tem_Rs485_R PROGBITS 000083ac 0093ac 0000cc 00 AX 0 0 4 + [246] .text.TK_ConfigIn PROGBITS 00008478 009478 000010 00 AX 0 0 4 + [247] .text.tk_clk_conf PROGBITS 00008488 009488 000028 00 AX 0 0 4 + [248] .text.TK_con0_con PROGBITS 000084b0 0094b0 0000bc 00 AX 0 0 4 + [249] .text.tk_io_enabl PROGBITS 0000856c 00956c 000134 00 AX 0 0 4 + [250] .text.TK_Single_L PROGBITS 000086a0 0096a0 000128 00 AX 0 0 4 + [251] .text.TK_Sampling PROGBITS 000087c8 0097c8 0000cc 00 AX 0 0 4 + [252] .text.get_key_num PROGBITS 00008894 009894 000028 00 AX 0 0 4 + [253] .text.get_key_num PROGBITS 000088bc 0098bc 000028 00 AX 0 0 4 + [254] .text.get_key_num PROGBITS 000088e4 0098e4 000028 00 AX 0 0 4 + [255] .text.get_key_num PROGBITS 0000890c 00990c 000028 00 AX 0 0 4 + [256] .text.TK_Baseline PROGBITS 00008934 009934 000150 00 AX 0 0 4 + [257] .text.TK_Baseline PROGBITS 00008a84 009a84 000148 00 AX 0 0 4 + [258] .text.tk_poweron_ PROGBITS 00008bcc 009bcc 000124 00 AX 0 0 4 + [259] .text.TK_Scan_Sta PROGBITS 00008cf0 009cf0 000068 00 AX 0 0 4 + [260] .text.TK_Keymap_p PROGBITS 00008d58 009d58 000870 00 AX 0 0 4 + [261] .text.TK_overflow PROGBITS 000095c8 00a5c8 000128 00 AX 0 0 4 + [262] .text.TK_Baseline PROGBITS 000096f0 00a6f0 0004d0 00 AX 0 0 4 + [263] .text.TK_result_p PROGBITS 00009bc0 00abc0 000130 00 AX 0 0 4 + [264] .text.get_key_seq PROGBITS 00009cf0 00acf0 000038 00 AX 0 0 4 + [265] .text.CORET_CONFI PROGBITS 00009d28 00ad28 000038 00 AX 0 0 4 + [266] .text.tk_chxval_s PROGBITS 00009d60 00ad60 00001c 00 AX 0 0 4 + [267] .text.tk_freq_par PROGBITS 00009d7c 00ad7c 0000ac 00 AX 0 0 4 + [268] .text.tk_reserved PROGBITS 00009e28 00ae28 000028 00 AX 0 0 4 + [269] .text.TKEYIntHand PROGBITS 00009e50 00ae50 0000a0 00 AX 0 0 4 + [270] .text.CORETHandle PROGBITS 00009ef0 00aef0 00015c 00 AX 0 0 4 + [271] .text.tk_init PROGBITS 0000a04c 00b04c 000110 00 AX 0 0 4 + [272] .text.std_clk_cal PROGBITS 0000a15c 00b15c 000284 00 AX 0 0 4 + [273] .RomCode PROGBITS 0000a3e0 00c0b0 000000 00 W 0 0 1 + [274] .rodata PROGBITS 0000a3e0 00b3e0 000920 00 A 0 0 4 + [275] .data PROGBITS 20000000 00c000 0000b0 00 WA 0 0 4 + [276] .bss NOBITS 200000b0 00c0b0 000b50 00 WA 0 0 4 + [277] .csky.attributes CSKY_ATTRIBUTES 00000000 00c0b0 000022 00 0 0 1 + [278] .comment PROGBITS 00000000 00c0d2 000042 01 MS 0 0 1 + [279] .csky_stack_size PROGBITS 00000000 00c120 000c0c 00 0 0 16 + [280] .debug_line PROGBITS 00000000 00cd2c 0071f0 00 0 0 1 + [281] .debug_info PROGBITS 00000000 013f1c 054462 00 0 0 1 + [282] .debug_abbrev PROGBITS 00000000 06837e 0049f6 00 0 0 1 + [283] .debug_aranges PROGBITS 00000000 06cd78 001228 00 0 0 8 + [284] .debug_ranges PROGBITS 00000000 06dfa0 001238 00 0 0 1 + [285] .debug_str PROGBITS 00000000 06f1d8 00a61e 01 MS 0 0 1 + [286] .debug_frame PROGBITS 00000000 0797f8 002ca4 00 0 0 4 + [287] .debug_loc PROGBITS 00000000 07c49c 0047f7 00 0 0 1 + [288] .shstrtab STRTAB 00000000 089d4a 00197d 00 0 0 1 + [289] .symtab SYMTAB 00000000 080c94 006ea0 10 290 1274 4 + [290] .strtab STRTAB 00000000 087b34 002216 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 0x0ad00 0x0ad00 R E 0x1000 + LOAD 0x00c000 0x20000000 0x0000ad00 0x000b0 0x00c00 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.EXI3_Int_Enable .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.Get_TouchKey_CH_State .text.TouchKey_RS485_Printf_3 .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.tk_io_enable .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Baseline_prog .text.TK_Baseline_prog2 .text.tk_poweron_data_fineturn .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_freq_para_init .text.tk_reserved_init .text.TKEYIntHandler .text.CORETHandler .text.tk_init .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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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/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.UART2_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/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI3_Int_Enable) for EXI3_Int_Enable + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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/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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) for GPIOB0_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) 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_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) 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_adc.o(.text.Gather_Temp) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + 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/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_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) 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/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) 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/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.EXI4to9IntHandler) refers to Obj/SYSTEM_uart.o(.text.BusBusy_Task) for BusBusy_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) for TouchKey_RS485_Printf_3 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + 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/USRCTRL_debug_unit.o(.text.Dev_SaveData) 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_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/SYSTEM_touch_key.o(.text.Touch_Key_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.UART2_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) for tk_io_enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog) for TK_Baseline_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog2) for TK_Baseline_prog2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) for tk_poweron_data_fineturn + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) for tk_freq_para_init + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) for tk_init + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_f_1_18.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/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to _usi_to_sf.o(.text) for __floatunsisf + 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 + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + FWlib_apt32f102_tkey_f_1_18.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 + _usi_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 + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _usi_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.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 + _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 + _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.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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) 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/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2909 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_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_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_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), (3103 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), (3420 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), (3165 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), (8028 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_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 .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), (3536 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), (3652 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), (4852 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (64 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (68 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_RS485_Printf_2(Obj/SYSTEM_touch_key.o), (596 bytes). + Removing .text.TouchKey_RS485_Printf(Obj/SYSTEM_touch_key.o), (260 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 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), (264 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (123 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_f_1_18.o), (0 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.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(_usi_to_sf.o), (0 bytes). + Removing .bss(_usi_to_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 .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(_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). + +614 unused seciton(s) (total 138930 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_f_1_18.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 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_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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* + _div_sf.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* + _make_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* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _si_to_df.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* + _usi_to_sf.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 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00000e38 0 .text + $d 0x00000e3c 0 .text + $t 0x00000e3c 0 .text + $d 0x00000e60 0 .text + $t 0x00000e60 0 .text + _fpadd_parts 0x00000ec0 F 724 .text + $d 0x00000ec0 0 .text + $t 0x00000ec0 0 .text + $d 0x00001188 0 .text + $t 0x00001194 0 .text + $d 0x000011fc 0 .text + $t 0x000011fc 0 .text + $d 0x00001424 0 .text + $d 0x00001430 0 .text + $t 0x00001430 0 .text + $d 0x00001580 0 .text + $d 0x00001584 0 .text + $t 0x00001584 0 .text + $d 0x000015c0 0 .text + $t 0x000015c0 0 .text + $d 0x000015fc 0 .text + $t 0x000015fc 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x000016a4 0 .text + $d 0x000016a8 0 .text + $t 0x000016a8 0 .text + $d 0x00001714 0 .text + $d 0x00001718 0 .text + $t 0x00001718 0 .text + $d 0x00001740 0 .text + $t 0x00001740 0 .text + $d 0x00001794 0 .text + $t 0x00001794 0 .text + $d 0x000017d8 0 .text + $t 0x000017d8 0 .text + $d 0x0000180c 0 .text + $d 0x00001818 0 .text + $t 0x00001818 0 .text + $d 0x000018cc 0 .text + $d 0x000018d0 0 .text + $t 0x000018d0 0 .text + $d 0x0000194c 0 .text + $d 0x00001954 0 .text + $t 0x00001954 0 .text + $d 0x00001adc 0 .text + $d 0x00001af0 0 .text + $t 0x00001af0 0 .text + $d 0x00001ba8 0 .text + $d 0x00001bb4 0 .text + $t 0x00001bb4 0 .text + $d 0x00001c40 0 .text + $t 0x00001c40 0 .text + $d 0x00001cc8 0 .text + $t 0x00001cc8 0 .text + $d 0x00001d2c 0 .text + $t 0x00001d2c 0 .text + $d 0x00001d54 0 .text.__main + $t 0x00001d54 0 .text.__main + $d 0x00001d78 0 .text.__main + SYSCON_General_CMD.part.0 0x00001d8c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001d8c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001d8c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001df8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001e00 0 .text.SYSCON_RST_VALUE + $t 0x00001e00 0 .text.SYSCON_RST_VALUE + $d 0x00001e30 0 .text.SYSCON_RST_VALUE + $d 0x00001e4c 0 .text.SYSCON_General_CMD + $t 0x00001e4c 0 .text.SYSCON_General_CMD + $d 0x00001e78 0 .text.SYSCON_General_CMD + $d 0x00001e7c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001e7c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001ef4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001f04 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001f04 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001f28 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001f2c 0 .text.SYSCON_WDT_CMD + $t 0x00001f2c 0 .text.SYSCON_WDT_CMD + $d 0x00001f5c 0 .text.SYSCON_WDT_CMD + $d 0x00001f68 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001f68 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001f78 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001f7c 0 .text.SYSCON_IWDCNT_Config + $t 0x00001f7c 0 .text.SYSCON_IWDCNT_Config + $d 0x00001f8c 0 .text.SYSCON_IWDCNT_Config + $d 0x00001f94 0 .text.SYSCON_LVD_Config + $t 0x00001f94 0 .text.SYSCON_LVD_Config + $d 0x00001fac 0 .text.SYSCON_LVD_Config + $d 0x00001fb4 0 .text.LVD_Int_Enable + $t 0x00001fb4 0 .text.LVD_Int_Enable + $d 0x00001fcc 0 .text.LVD_Int_Enable + $d 0x00001fd0 0 .text.IWDT_Int_Enable + $t 0x00001fd0 0 .text.IWDT_Int_Enable + $d 0x00001fe8 0 .text.IWDT_Int_Enable + $d 0x00001fec 0 .text.EXTI_trigger_CMD + $t 0x00001fec 0 .text.EXTI_trigger_CMD + $d 0x00002028 0 .text.EXTI_trigger_CMD + $d 0x0000202c 0 .text.EXTI_interrupt_CMD + $t 0x0000202c 0 .text.EXTI_interrupt_CMD + $d 0x00002058 0 .text.EXTI_interrupt_CMD + $d 0x00002060 0 .text.GPIO_EXTI_interrupt + $t 0x00002060 0 .text.GPIO_EXTI_interrupt + $d 0x00002064 0 .text.EXI3_Int_Enable + $t 0x00002064 0 .text.EXI3_Int_Enable + $d 0x00002070 0 .text.EXI3_Int_Enable + $d 0x00002074 0 .text.EXI4_Int_Enable + $t 0x00002074 0 .text.EXI4_Int_Enable + $d 0x00002080 0 .text.EXI4_Int_Enable + $d 0x00002084 0 .text.SYSCON_Int_Enable + $t 0x00002084 0 .text.SYSCON_Int_Enable + $d 0x0000208c 0 .text.SYSCON_Int_Enable + $d 0x00002090 0 .text.SYSCON_Int_Disable + $t 0x00002090 0 .text.SYSCON_Int_Disable + $d 0x00002098 0 .text.SYSCON_Int_Disable + $d 0x0000209c 0 .text.SYSCON_INT_Priority + $t 0x0000209c 0 .text.SYSCON_INT_Priority + $d 0x000020b4 0 .text.SYSCON_INT_Priority + $d 0x000020c0 0 .text.Set_INT_Priority + $t 0x000020c0 0 .text.Set_INT_Priority + $d 0x000020ec 0 .text.Set_INT_Priority + $d 0x000020f0 0 .text.GPIO_DeInit + $t 0x000020f0 0 .text.GPIO_DeInit + $d 0x00002144 0 .text.GPIO_DeInit + $d 0x00002154 0 .text.GPIO_Init + $t 0x00002154 0 .text.GPIO_Init + $d 0x00002166 0 .text.GPIO_Init + $t 0x0000216e 0 .text.GPIO_Init + $d 0x000021ca 0 .text.GPIO_Init + $t 0x000021d2 0 .text.GPIO_Init + $d 0x00002220 0 .text.GPIO_Init + $d 0x00002234 0 .text.GPIO_PullHigh_Init + $t 0x00002234 0 .text.GPIO_PullHigh_Init + $d 0x00002248 0 .text.GPIO_DriveStrength_EN + $t 0x00002248 0 .text.GPIO_DriveStrength_EN + $d 0x00002258 0 .text.GPIO_IntGroup_Set + $t 0x00002258 0 .text.GPIO_IntGroup_Set + $d 0x0000234c 0 .text.GPIO_IntGroup_Set + $d 0x00002364 0 .text.GPIOA0_EXI_Init + $t 0x00002364 0 .text.GPIOA0_EXI_Init + $d 0x00002370 0 .text.GPIOA0_EXI_Init + $t 0x00002380 0 .text.GPIOA0_EXI_Init + $d 0x0000245c 0 .text.GPIOA0_EXI_Init + $d 0x00002460 0 .text.GPIOB0_EXI_Init + $t 0x00002460 0 .text.GPIOB0_EXI_Init + $d 0x0000246c 0 .text.GPIOB0_EXI_Init + $t 0x00002472 0 .text.GPIOB0_EXI_Init + $d 0x000024c8 0 .text.GPIOB0_EXI_Init + $d 0x000024cc 0 .text.GPIO_Write_High + $t 0x000024cc 0 .text.GPIO_Write_High + $d 0x000024d4 0 .text.GPIO_Write_Low + $t 0x000024d4 0 .text.GPIO_Write_Low + $d 0x000024dc 0 .text.GPIO_Reverse + $t 0x000024dc 0 .text.GPIO_Reverse + $d 0x000024f2 0 .text.GPIO_Read_Status + $t 0x000024f2 0 .text.GPIO_Read_Status + $d 0x00002504 0 .text.LPT_Soft_Reset + $t 0x00002504 0 .text.LPT_Soft_Reset + $d 0x00002514 0 .text.LPT_Soft_Reset + $d 0x00002518 0 .text.WWDT_CNT_Load + $t 0x00002518 0 .text.WWDT_CNT_Load + $d 0x00002524 0 .text.WWDT_CNT_Load + $d 0x00002528 0 .text.BT_DeInit + $t 0x00002528 0 .text.BT_DeInit + $d 0x00002544 0 .text.BT_Start + $t 0x00002544 0 .text.BT_Start + $d 0x0000254c 0 .text.BT_Soft_Reset + $t 0x0000254c 0 .text.BT_Soft_Reset + $d 0x00002556 0 .text.BT_Configure + $t 0x00002556 0 .text.BT_Configure + $d 0x0000256e 0 .text.BT_ControlSet_Configure + $t 0x0000256e 0 .text.BT_ControlSet_Configure + $d 0x0000259a 0 .text.BT_Period_CMP_Write + $t 0x0000259a 0 .text.BT_Period_CMP_Write + $d 0x000025a0 0 .text.BT_ConfigInterrupt_CMD + $t 0x000025a0 0 .text.BT_ConfigInterrupt_CMD + $d 0x000025b4 0 .text.BT1_INT_ENABLE + $t 0x000025b4 0 .text.BT1_INT_ENABLE + $d 0x000025c0 0 .text.BT1_INT_ENABLE + $d 0x000025c4 0 .text.SIO_DeInit + $t 0x000025c4 0 .text.SIO_DeInit + $d 0x000025e0 0 .text.SIO_DeInit + $d 0x000025e4 0 .text.SIO_IO_Init + $t 0x000025e4 0 .text.SIO_IO_Init + $d 0x0000263c 0 .text.SIO_IO_Init + $d 0x00002644 0 .text.SIO_TX_Init + $t 0x00002644 0 .text.SIO_TX_Init + $d 0x00002650 0 .text.SIO_TX_Init + $d 0x00002654 0 .text.SIO_TX_Configure + $t 0x00002654 0 .text.SIO_TX_Configure + $d 0x000026a0 0 .text.SIO_TX_Configure + $d 0x000026a4 0 .text.UART0_DeInit + $t 0x000026a4 0 .text.UART0_DeInit + $d 0x000026b8 0 .text.UART0_DeInit + $d 0x000026bc 0 .text.UART1_DeInit + $t 0x000026bc 0 .text.UART1_DeInit + $d 0x000026d0 0 .text.UART1_DeInit + $d 0x000026d4 0 .text.UART2_DeInit + $t 0x000026d4 0 .text.UART2_DeInit + $d 0x000026e8 0 .text.UART2_DeInit + $d 0x000026ec 0 .text.UART0_Int_Enable + $t 0x000026ec 0 .text.UART0_Int_Enable + $d 0x00002700 0 .text.UART0_Int_Enable + $d 0x00002708 0 .text.UART2_Int_Enable + $t 0x00002708 0 .text.UART2_Int_Enable + $d 0x0000271c 0 .text.UART2_Int_Enable + $d 0x00002724 0 .text.UART_IO_Init + $t 0x00002724 0 .text.UART_IO_Init + $d 0x00002808 0 .text.UART_IO_Init + $d 0x00002810 0 .text.UARTInit + $t 0x00002810 0 .text.UARTInit + $d 0x0000281c 0 .text.UARTInit + $d 0x00002820 0 .text.UARTInitRxTxIntEn + $t 0x00002820 0 .text.UARTInitRxTxIntEn + $d 0x0000282c 0 .text.UARTInitRxTxIntEn + $d 0x00002830 0 .text.UARTTransmit + $t 0x00002830 0 .text.UARTTransmit + $d 0x00002850 0 .text.EPT_Stop + $t 0x00002850 0 .text.EPT_Stop + $d 0x00002870 0 .text.EPT_Stop + $d 0x00002878 0 .text.ADC12_RESET_VALUE + $t 0x00002878 0 .text.ADC12_RESET_VALUE + $d 0x000028d8 0 .text.ADC12_RESET_VALUE + $d 0x000028dc 0 .text.ADC12_Control + $t 0x000028dc 0 .text.ADC12_Control + $d 0x000028e8 0 .text.ADC12_Control + ADC12_CMD.part.0 0x000028ec F 32 .text.ADC12_CMD.part.0 + $d 0x000028ec 0 .text.ADC12_CMD.part.0 + $t 0x000028ec 0 .text.ADC12_CMD.part.0 + $d 0x00002908 0 .text.ADC12_CMD.part.0 + $d 0x0000290c 0 .text.ADC12_CLK_CMD + $t 0x0000290c 0 .text.ADC12_CLK_CMD + $d 0x00002934 0 .text.ADC12_CLK_CMD + $d 0x00002938 0 .text.ADC12_Software_Reset + $t 0x00002938 0 .text.ADC12_Software_Reset + $d 0x00002944 0 .text.ADC12_CMD + $t 0x00002944 0 .text.ADC12_CMD + $d 0x00002968 0 .text.ADC12_CMD + $d 0x0000296c 0 .text.ADC12_ready_wait + $t 0x0000296c 0 .text.ADC12_ready_wait + $d 0x0000297c 0 .text.ADC12_ready_wait + $d 0x00002980 0 .text.ADC12_SEQEND_wait + $t 0x00002980 0 .text.ADC12_SEQEND_wait + $d 0x00002994 0 .text.ADC12_SEQEND_wait + $d 0x00002998 0 .text.ADC12_DATA_OUPUT + $t 0x00002998 0 .text.ADC12_DATA_OUPUT + $d 0x000029a8 0 .text.ADC12_DATA_OUPUT + $d 0x000029ac 0 .text.ADC12_Configure_Mode + $t 0x000029ac 0 .text.ADC12_Configure_Mode + $d 0x00002a24 0 .text.ADC12_Configure_Mode + $d 0x00002a28 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00002a28 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002b9c 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002bc0 0 .text.ADC12_ConversionChannel_Config + $t 0x00002bc0 0 .text.ADC12_ConversionChannel_Config + $d 0x00002bec 0 .text.ADC12_ConversionChannel_Config + $t 0x00002bfc 0 .text.ADC12_ConversionChannel_Config + $d 0x00002d34 0 .text.ADC12_ConversionChannel_Config + $d 0x00002d40 0 .text.Page_ProgramData + $t 0x00002d40 0 .text.Page_ProgramData + $d 0x00002dd8 0 .text.Page_ProgramData + $d 0x00002de0 0 .text.ReadDataArry_U8 + $t 0x00002de0 0 .text.ReadDataArry_U8 + $d 0x00002e0c 0 .text.tk_parameter_init + $t 0x00002e0c 0 .text.tk_parameter_init + $d 0x00002efc 0 .text.tk_parameter_init + $d 0x00002f4c 0 .text.CORET_DeInit + $t 0x00002f4c 0 .text.CORET_DeInit + $d 0x00002f60 0 .text.CORET_DeInit + $d 0x00002f64 0 .text.CORET_Int_Enable + $t 0x00002f64 0 .text.CORET_Int_Enable + $d 0x00002f74 0 .text.CORET_Int_Enable + $d 0x00002f7c 0 .text.CORET_start + $t 0x00002f7c 0 .text.CORET_start + $d 0x00002f88 0 .text.CORET_start + $d 0x00002f8c 0 .text.CORET_CLKSOURCE_EX + $t 0x00002f8c 0 .text.CORET_CLKSOURCE_EX + $d 0x00002f98 0 .text.CORET_CLKSOURCE_EX + $d 0x00002f9c 0 .text.CORET_TICKINT_Enable + $t 0x00002f9c 0 .text.CORET_TICKINT_Enable + $d 0x00002fa8 0 .text.CORET_TICKINT_Enable + $d 0x00002fac 0 .text.CORET_reload + $t 0x00002fac 0 .text.CORET_reload + $d 0x00002fb8 0 .text.CORET_reload + $d 0x00002fbc 0 .text.startup.main + $t 0x00002fbc 0 .text.startup.main + $d 0x00003008 0 .text.startup.main + $d 0x00003010 0 .text.delay_nms + $t 0x00003010 0 .text.delay_nms + $d 0x0000303c 0 .text.delay_nus + $t 0x0000303c 0 .text.delay_nus + $d 0x00003060 0 .text.GPIO_CONFIG + $t 0x00003060 0 .text.GPIO_CONFIG + $d 0x000030e4 0 .text.GPIO_CONFIG + $d 0x000030ec 0 .text.BT_CONFIG + $t 0x000030ec 0 .text.BT_CONFIG + $d 0x00003144 0 .text.BT_CONFIG + $d 0x0000314c 0 .text.SYSCON_CONFIG + $t 0x0000314c 0 .text.SYSCON_CONFIG + $d 0x000031b0 0 .text.APT32F102_init + $t 0x000031b0 0 .text.APT32F102_init + $d 0x00003238 0 .text.APT32F102_init + $d 0x0000324c 0 .text.SYSCONIntHandler + $t 0x0000324c 0 .text.SYSCONIntHandler + $d 0x00003338 0 .text.SYSCONIntHandler + $d 0x0000333c 0 .text.IFCIntHandler + $t 0x0000333c 0 .text.IFCIntHandler + $d 0x000033a0 0 .text.IFCIntHandler + $d 0x000033a4 0 .text.ADCIntHandler + $t 0x000033a4 0 .text.ADCIntHandler + $d 0x00003408 0 .text.ADCIntHandler + $d 0x0000340c 0 .text.EPT0IntHandler + $t 0x0000340c 0 .text.EPT0IntHandler + $d 0x000035ac 0 .text.EPT0IntHandler + $d 0x000035b8 0 .text.WWDTHandler + $t 0x000035b8 0 .text.WWDTHandler + $d 0x000035e8 0 .text.WWDTHandler + $d 0x000035ec 0 .text.GPT0IntHandler + $t 0x000035ec 0 .text.GPT0IntHandler + $d 0x00003668 0 .text.GPT0IntHandler + $d 0x0000366c 0 .text.RTCIntHandler + $t 0x0000366c 0 .text.RTCIntHandler + $d 0x000036d4 0 .text.RTCIntHandler + $d 0x000036dc 0 .text.UART0IntHandler + $t 0x000036dc 0 .text.UART0IntHandler + $d 0x00003714 0 .text.UART0IntHandler + $d 0x00003718 0 .text.UART1IntHandler + $t 0x00003718 0 .text.UART1IntHandler + $d 0x00003750 0 .text.UART1IntHandler + $d 0x00003754 0 .text.UART2IntHandler + $t 0x00003754 0 .text.UART2IntHandler + $d 0x000037d4 0 .text.UART2IntHandler + $d 0x000037e8 0 .text.SPI0IntHandler + $t 0x000037e8 0 .text.SPI0IntHandler + $d 0x000038cc 0 .text.SPI0IntHandler + $d 0x000038d0 0 .text.SIO0IntHandler + $t 0x000038d0 0 .text.SIO0IntHandler + $d 0x00003920 0 .text.SIO0IntHandler + $d 0x00003924 0 .text.EXI0IntHandler + $t 0x00003924 0 .text.EXI0IntHandler + $d 0x00003950 0 .text.EXI0IntHandler + $d 0x00003954 0 .text.EXI1IntHandler + $t 0x00003954 0 .text.EXI1IntHandler + $d 0x00003980 0 .text.EXI1IntHandler + $d 0x00003984 0 .text.EXI2to3IntHandler + $t 0x00003984 0 .text.EXI2to3IntHandler + $d 0x000039c8 0 .text.EXI2to3IntHandler + $d 0x000039cc 0 .text.EXI4to9IntHandler + $t 0x000039cc 0 .text.EXI4to9IntHandler + $d 0x00003a34 0 .text.EXI4to9IntHandler + $d 0x00003a38 0 .text.EXI10to15IntHandler + $t 0x00003a38 0 .text.EXI10to15IntHandler + $d 0x00003ab0 0 .text.EXI10to15IntHandler + $d 0x00003ab8 0 .text.LPTIntHandler + $t 0x00003ab8 0 .text.LPTIntHandler + $d 0x00003ae8 0 .text.LPTIntHandler + $d 0x00003aec 0 .text.BT0IntHandler + $t 0x00003aec 0 .text.BT0IntHandler + $d 0x00003b34 0 .text.BT0IntHandler + $d 0x00003b38 0 .text.BT1IntHandler + $t 0x00003b38 0 .text.BT1IntHandler + $d 0x00003ba0 0 .text.BT1IntHandler + $d 0x00003ba8 0 .text.PriviledgeVioHandler + $t 0x00003ba8 0 .text.PriviledgeVioHandler + $d 0x00003baa 0 .text.PendTrapHandler + $t 0x00003baa 0 .text.PendTrapHandler + $d 0x00003bb2 0 .text.Trap3Handler + $t 0x00003bb2 0 .text.Trap3Handler + $d 0x00003bba 0 .text.Trap2Handler + $t 0x00003bba 0 .text.Trap2Handler + $d 0x00003bc2 0 .text.Trap1Handler + $t 0x00003bc2 0 .text.Trap1Handler + $d 0x00003bca 0 .text.Trap0Handler + $t 0x00003bca 0 .text.Trap0Handler + $d 0x00003bd2 0 .text.UnrecExecpHandler + $t 0x00003bd2 0 .text.UnrecExecpHandler + $d 0x00003bda 0 .text.BreakPointHandler + $t 0x00003bda 0 .text.BreakPointHandler + $d 0x00003be2 0 .text.AccessErrHandler + $t 0x00003be2 0 .text.AccessErrHandler + $d 0x00003bea 0 .text.IllegalInstrHandler + $t 0x00003bea 0 .text.IllegalInstrHandler + $d 0x00003bf2 0 .text.MisalignedHandler + $t 0x00003bf2 0 .text.MisalignedHandler + $d 0x00003bfa 0 .text.CNTAIntHandler + $t 0x00003bfa 0 .text.CNTAIntHandler + $d 0x00003c02 0 .text.I2CIntHandler + $t 0x00003c02 0 .text.I2CIntHandler + $d 0x00003c0c 0 .text.__divsi3 + $t 0x00003c0c 0 .text.__divsi3 + $d 0x00003c2c 0 .text.__divsi3 + $d 0x00003c30 0 .text.__udivsi3 + $t 0x00003c30 0 .text.__udivsi3 + $d 0x00003c50 0 .text.__udivsi3 + $d 0x00003c54 0 .text.__modsi3 + $t 0x00003c54 0 .text.__modsi3 + $d 0x00003c74 0 .text.__modsi3 + $d 0x00003c78 0 .text.__umodsi3 + $t 0x00003c78 0 .text.__umodsi3 + $d 0x00003c98 0 .text.__umodsi3 + $d 0x00003c9c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003c9c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00003ca2 0 .text.CK_CPU_DisAllNormalIrq + $t 0x00003ca2 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00003ca8 0 .text.UARTx_Init + $t 0x00003ca8 0 .text.UARTx_Init + $d 0x00003d80 0 .text.UARTx_Init + $d 0x00003db0 0 .text.UART2_RecvINT_Processing + $t 0x00003db0 0 .text.UART2_RecvINT_Processing + $d 0x00003de8 0 .text.UART2_RecvINT_Processing + $d 0x00003df4 0 .text.UART2_TASK + $t 0x00003df4 0 .text.UART2_TASK + $d 0x00003e68 0 .text.UART2_TASK + $d 0x00003e80 0 .text.BUS485_Send + $t 0x00003e80 0 .text.BUS485_Send + $d 0x00003f2c 0 .text.BUS485_Send + $d 0x00003f44 0 .text.MultSend_Task + $t 0x00003f44 0 .text.MultSend_Task + $d 0x00003fb0 0 .text.MultSend_Task + $d 0x00003fb8 0 .text.Set_GroupSend + $t 0x00003fb8 0 .text.Set_GroupSend + $d 0x00004014 0 .text.Set_GroupSend + $d 0x0000401c 0 .text.Clear_SendFlag + $t 0x0000401c 0 .text.Clear_SendFlag + $d 0x00004028 0 .text.Clear_SendFlag + $d 0x0000402c 0 .text.BUS485_Jump_Boot + $t 0x0000402c 0 .text.BUS485_Jump_Boot + $d 0x00004034 0 .text.BUS485_Jump_Boot + $d 0x00004038 0 .text.BUS485Send_Task + $t 0x00004038 0 .text.BUS485Send_Task + $d 0x00004060 0 .text.BUS485Send_Task + $d 0x0000406c 0 .text.BusIdle_Task + $t 0x0000406c 0 .text.BusIdle_Task + $d 0x000040a4 0 .text.BusIdle_Task + $d 0x000040ac 0 .text.BusBusy_Task + $t 0x000040ac 0 .text.BusBusy_Task + $d 0x000040fc 0 .text.BusBusy_Task + $d 0x00004108 0 .text.Dbg_Println + $t 0x00004108 0 .text.Dbg_Println + $d 0x00004114 0 .text.Dbg_Print_Buff + $t 0x00004114 0 .text.Dbg_Print_Buff + $d 0x00004118 0 .text.Touch_Key_Init + $t 0x00004118 0 .text.Touch_Key_Init + $d 0x0000416c 0 .text.Touch_Key_Init + $d 0x00004180 0 .text.Get_TouchKey_CH_State + $t 0x00004180 0 .text.Get_TouchKey_CH_State + $d 0x0000418c 0 .text.Get_TouchKey_CH_State + $t 0x00004192 0 .text.Get_TouchKey_CH_State + $d 0x000041b8 0 .text.Get_TouchKey_CH_State + $d 0x000041bc 0 .text.TouchKey_RS485_Printf_3 + $t 0x000041bc 0 .text.TouchKey_RS485_Printf_3 + $d 0x00004488 0 .text.TouchKey_RS485_Printf_3 + $d 0x000044b0 0 .text.Touch_Key_Event_Handling + $t 0x000044b0 0 .text.Touch_Key_Event_Handling + $d 0x00004558 0 .text.Touch_Key_Event_Handling + $d 0x0000455c 0 .text.TouchKey_Set_Interface_Task + $t 0x0000455c 0 .text.TouchKey_Set_Interface_Task + $d 0x0000458c 0 .text.TouchKey_Set_Interface_Task + $d 0x00004598 0 .text.Touch_Key_Task + $t 0x00004598 0 .text.Touch_Key_Task + $d 0x00004684 0 .text.Touch_Key_Task + $d 0x00004698 0 .text.TouchKey_CheckSum + $t 0x00004698 0 .text.TouchKey_CheckSum + $d 0x000046b0 0 .text.TouchKey_Comm_Reply + $t 0x000046b0 0 .text.TouchKey_Comm_Reply + $d 0x0000471c 0 .text.TouchKey_Comm_Reply + $d 0x00004720 0 .text.TouchKey_SetPara_Processing + $t 0x00004720 0 .text.TouchKey_SetPara_Processing + $d 0x000047c4 0 .text.TouchKey_SetPara_Processing + $d 0x000047d8 0 .text.TouchKey_ReadPara_Processing + $t 0x000047d8 0 .text.TouchKey_ReadPara_Processing + $d 0x000048c8 0 .text.TouchKey_ReadPara_Processing + $d 0x000048d0 0 .text.TouchKey_DugPrintf_Processing + $t 0x000048d0 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004904 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004908 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004908 0 .text.TouchKey_ReadEnve_Processing + $d 0x000049b0 0 .text.TouchKey_ReadEnve_Processing + $d 0x000049b8 0 .text.TouchKey_ResetDevice_Processing + $t 0x000049b8 0 .text.TouchKey_ResetDevice_Processing + $d 0x000049d4 0 .text.TouchKey_Comm_Processing + $t 0x000049d4 0 .text.TouchKey_Comm_Processing + $d 0x00004a62 0 .text.TouchKey_Comm_Processing + $t 0x00004a68 0 .text.TouchKey_Comm_Processing + $d 0x00004a90 0 .text.TouchKey_Comm_Processing + $d 0x00004aac 0 .text.EEPROM_CheckSum + $t 0x00004aac 0 .text.EEPROM_CheckSum + $d 0x00004ac4 0 .text.EEPROM_ReadParaInfo + $t 0x00004ac4 0 .text.EEPROM_ReadParaInfo + $d 0x00004b30 0 .text.EEPROM_ReadParaInfo + $d 0x00004b38 0 .text.EEPROM_WriteParaInfo + $t 0x00004b38 0 .text.EEPROM_WriteParaInfo + $d 0x00004b78 0 .text.EEPROM_WriteParaInfo + $d 0x00004b7c 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004b7c 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004c00 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004c08 0 .text.EEPROM_Default_ParaInfo + $t 0x00004c08 0 .text.EEPROM_Default_ParaInfo + $d 0x00004c28 0 .text.EEPROM_WriteTouchPara + $t 0x00004c28 0 .text.EEPROM_WriteTouchPara + $d 0x00004c88 0 .text.EEPROM_WriteTouchPara + $d 0x00004c94 0 .text.EEPROM_ReadTouchPara + $t 0x00004c94 0 .text.EEPROM_ReadTouchPara + $d 0x00004d2c 0 .text.EEPROM_ReadTouchPara + $d 0x00004d40 0 .text.EEPROM_Validate_TouchPara + $t 0x00004d40 0 .text.EEPROM_Validate_TouchPara + $d 0x00004e18 0 .text.EEPROM_Validate_TouchPara + $d 0x00004e20 0 .text.EEPROM_Default_TouchPara + $t 0x00004e20 0 .text.EEPROM_Default_TouchPara + $d 0x00004e8a 0 .text.EEPROM_Default_TouchPara + $d 0x00004e90 0 .text.EEPROM_TouchPara_Printf + $t 0x00004e90 0 .text.EEPROM_TouchPara_Printf + $d 0x00004ef4 0 .text.EEPROM_TouchPara_Printf + $d 0x00004f10 0 .text.EEPROM_ReadMCUDevInfo + $t 0x00004f10 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004f7c 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004f80 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00004f80 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00004fc0 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00004fc0 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00004ff4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00004ff8 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x00004ff8 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x0000504c 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00005050 0 .text.EEPROM_Init + $t 0x00005050 0 .text.EEPROM_Init + $d 0x000050c8 0 .text.EEPROM_Init + $d 0x000050d8 0 .text.ADC_Init + $t 0x000050d8 0 .text.ADC_Init + $d 0x00005134 0 .text.ADC_Init + $d 0x00005138 0 .text.Thermistor_Array_Transform + $t 0x00005138 0 .text.Thermistor_Array_Transform + $d 0x00005178 0 .text.Thermistor_Array_Transform + $d 0x00005180 0 .text.Calculate_ADC_Sample_Average + $t 0x00005180 0 .text.Calculate_ADC_Sample_Average + $d 0x00005200 0 .text.Calculate_ADC_Sample_Average + $d 0x00005210 0 .text.Get_Temp_Val + $t 0x00005210 0 .text.Get_Temp_Val + $d 0x00005218 0 .text.Get_Temp_Val + $d 0x0000521c 0 .text.Gather_Temp + $t 0x0000521c 0 .text.Gather_Temp + $d 0x0000529c 0 .text.Gather_Temp + $d 0x000052ac 0 .text.ADC_Sample_Task + $t 0x000052ac 0 .text.ADC_Sample_Task + $d 0x00005310 0 .text.ADC_Sample_Task + $d 0x0000531c 0 .text.Contol_Switch_Light + $t 0x0000531c 0 .text.Contol_Switch_Light + $d 0x0000532c 0 .text.Contol_Switch_Light + $t 0x00005338 0 .text.Contol_Switch_Light + $d 0x000056b4 0 .text.Contol_Switch_Light + $t 0x000056bc 0 .text.Contol_Switch_Light + $d 0x00005708 0 .text.Contol_Switch_Light_2 + $t 0x00005708 0 .text.Contol_Switch_Light_2 + $d 0x00005718 0 .text.Contol_Switch_Light_2 + $t 0x00005724 0 .text.Contol_Switch_Light_2 + $d 0x00005aa0 0 .text.Contol_Switch_Light_2 + $t 0x00005aa8 0 .text.Contol_Switch_Light_2 + $d 0x00005af4 0 .text.Contol_Switch_ClickAction + $t 0x00005af4 0 .text.Contol_Switch_ClickAction + $d 0x00005b18 0 .text.Contol_Switch_ClickAction + $d 0x00005b1c 0 .text.Get_TM1812_State_Change + $t 0x00005b1c 0 .text.Get_TM1812_State_Change + $d 0x00005b58 0 .text.Get_TM1812_State_Change + $d 0x00005b60 0 .text.TimeCall_SIO_Send + $t 0x00005b60 0 .text.TimeCall_SIO_Send + $d 0x00005c74 0 .text.TimeCall_SIO_Send + $d 0x00005c80 0 .text.TimeCall_SIO_Send2 + $t 0x00005c80 0 .text.TimeCall_SIO_Send2 + $d 0x00005d18 0 .text.TimeCall_SIO_Send2 + $d 0x00005d28 0 .text.Tm1812_Task + $t 0x00005d28 0 .text.Tm1812_Task + $d 0x00005d70 0 .text.Tm1812_Task + $d 0x00005d84 0 .text.Tm1812_Ch_Insert_Data + $t 0x00005d84 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005da0 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005da8 0 .text.TM1812_Control_CH_State + $t 0x00005da8 0 .text.TM1812_Control_CH_State + $d 0x00005e04 0 .text.TM1812_Control_CH_State + $d 0x00005e18 0 .text.TM1812_Control_CH_CurrState + $t 0x00005e18 0 .text.TM1812_Control_CH_CurrState + $d 0x00005e70 0 .text.TM1812_Control_CH_CurrState + $d 0x00005e7c 0 .text.TM1812_LED_Init + $t 0x00005e7c 0 .text.TM1812_LED_Init + $d 0x00005ee4 0 .text.TM1812_LED_Init + $d 0x00005ee8 0 .text.HT1621_WR_Data + $t 0x00005ee8 0 .text.HT1621_WR_Data + $d 0x00005f2c 0 .text.HT1621_WR_Data + $d 0x00005f30 0 .text.HT1621_WR_CMD + $t 0x00005f30 0 .text.HT1621_WR_CMD + $d 0x00005f5c 0 .text.HT1621_WR_CMD + $d 0x00005f60 0 .text.HT1621_Init + $t 0x00005f60 0 .text.HT1621_Init + $d 0x0000600c 0 .text.HT1621_Init + $d 0x00006014 0 .text.HT1621_Clear + $t 0x00006014 0 .text.HT1621_Clear + $d 0x0000605c 0 .text.HT1621_Clear + $d 0x00006064 0 .text.HT1621_ALLON + $t 0x00006064 0 .text.HT1621_ALLON + $d 0x000060a0 0 .text.HT1621_ALLON + $d 0x000060a4 0 .text.HT1621_Refresh_Data + $t 0x000060a4 0 .text.HT1621_Refresh_Data + $d 0x000060e8 0 .text.HT1621_Refresh_Data + $d 0x000060f0 0 .text.Set_Temperature_Display + $t 0x000060f0 0 .text.Set_Temperature_Display + $d 0x000061b4 0 .text.Set_Temperature_Display + $d 0x000061c0 0 .text.Local_Temperature_Display + $t 0x000061c0 0 .text.Local_Temperature_Display + $d 0x00006284 0 .text.Local_Temperature_Display + $d 0x00006290 0 .text.Control_Mode + $t 0x00006290 0 .text.Control_Mode + $d 0x0000629a 0 .text.Control_Mode + $t 0x000062a8 0 .text.Control_Mode + $d 0x000064cc 0 .text.Control_Mode + $d 0x000064d4 0 .text.Control_wind_velocity + $t 0x000064d4 0 .text.Control_wind_velocity + $d 0x000064e0 0 .text.Control_wind_velocity + $t 0x000064e6 0 .text.Control_wind_velocity + $d 0x000065a0 0 .text.Control_wind_velocity + $d 0x000065a4 0 .text.Control_Prompt_Text + $t 0x000065a4 0 .text.Control_Prompt_Text + $d 0x00006644 0 .text.Control_Prompt_Text + $d 0x00006648 0 .text.Controlled_Buzzer + $t 0x00006648 0 .text.Controlled_Buzzer + $d 0x00006688 0 .text.Controlled_Buzzer + $d 0x00006690 0 .text.Controlled_LCD_Backlight + $t 0x00006690 0 .text.Controlled_LCD_Backlight + $d 0x00006764 0 .text.Controlled_LCD_Backlight + $d 0x0000676c 0 .text.Controlled_Key_Backlight + $t 0x0000676c 0 .text.Controlled_Key_Backlight + $d 0x00006798 0 .text.Controlled_Key_Backlight + $d 0x0000679c 0 .text.Set_Device_ADDR + $t 0x0000679c 0 .text.Set_Device_ADDR + $d 0x00006830 0 .text.Set_Device_ADDR + $d 0x00006838 0 .text.Set_Temp_Difference + $t 0x00006838 0 .text.Set_Temp_Difference + $d 0x00006894 0 .text.Set_Temp_Difference + $d 0x0000689c 0 .text.HT1621_Refresh_Task + $t 0x0000689c 0 .text.HT1621_Refresh_Task + $d 0x00006914 0 .text.HT1621_Refresh_Task + $d 0x0000692c 0 .text.Boot_Function_Init + $t 0x0000692c 0 .text.Boot_Function_Init + $d 0x00006978 0 .text.Boot_Function_Init + $d 0x0000698c 0 .text.Boot_Comm_CheckSum + $t 0x0000698c 0 .text.Boot_Comm_CheckSum + $d 0x000069ac 0 .text.Boot_Comm_CheckSum + $d 0x000069b0 0 .text.Boot_Comm_FillReplyPack + $t 0x000069b0 0 .text.Boot_Comm_FillReplyPack + $d 0x00006a04 0 .text.Boot_Comm_FillReplyPack + $d 0x00006a0c 0 .text.Boot_Time_Refresh + $t 0x00006a0c 0 .text.Boot_Time_Refresh + $d 0x00006a18 0 .text.Boot_Time_Refresh + $d 0x00006a20 0 .text.Boot_Comm_UpgradeProcess + $t 0x00006a20 0 .text.Boot_Comm_UpgradeProcess + $d 0x00006b98 0 .text.Boot_Comm_UpgradeProcess + $d 0x00006ba8 0 .text.TemCtrl_Init + $t 0x00006ba8 0 .text.TemCtrl_Init + $d 0x00006d08 0 .text.TemCtrl_Init + $d 0x00006d20 0 .text.TemCtrl_Model_Set + $t 0x00006d20 0 .text.TemCtrl_Model_Set + $d 0x00006d64 0 .text.TemCtrl_Model_Set + $d 0x00006d6c 0 .text.TemCtrl_Fan_Set + $t 0x00006d6c 0 .text.TemCtrl_Fan_Set + $d 0x00006d8a 0 .text.TemCtrl_Fan_Set + $t 0x00006d8e 0 .text.TemCtrl_Fan_Set + $d 0x00006db0 0 .text.TemCtrl_Fan_Set + $d 0x00006db8 0 .text.TemCtrl_Temperature_Dec + $t 0x00006db8 0 .text.TemCtrl_Temperature_Dec + $d 0x00006de0 0 .text.TemCtrl_Temperature_Dec + $d 0x00006de8 0 .text.TemCtrl_Temperature_Add + $t 0x00006de8 0 .text.TemCtrl_Temperature_Add + $d 0x00006e10 0 .text.TemCtrl_Temperature_Add + $d 0x00006e18 0 .text.TemCtrl_OnOff_Set + $t 0x00006e18 0 .text.TemCtrl_OnOff_Set + $d 0x00006e44 0 .text.TemCtrl_OnOff_Set + $d 0x00006e4c 0 .text.Tem_Valve_Ctrl + $t 0x00006e4c 0 .text.Tem_Valve_Ctrl + $d 0x00006f0c 0 .text.Tem_Valve_Ctrl + $d 0x00006f18 0 .text.TemCtrl_Pro + $t 0x00006f18 0 .text.TemCtrl_Pro + $d 0x00007078 0 .text.TemCtrl_Pro + $d 0x00007090 0 .text.KEY1_Model_Press_Fun + $t 0x00007090 0 .text.KEY1_Model_Press_Fun + $d 0x00007148 0 .text.KEY1_Model_Press_Fun + $d 0x0000715c 0 .text.KEY2_Fan_Press_Fun + $t 0x0000715c 0 .text.KEY2_Fan_Press_Fun + $d 0x00007214 0 .text.KEY2_Fan_Press_Fun + $d 0x00007228 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00007228 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00007314 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00007328 0 .text.KEY3_Long_Press_Fun + $t 0x00007328 0 .text.KEY3_Long_Press_Fun + $d 0x00007384 0 .text.KEY3_Long_Press_Fun + $d 0x00007398 0 .text.KEY4_TempDec_Press_Fun + $t 0x00007398 0 .text.KEY4_TempDec_Press_Fun + $d 0x00007484 0 .text.KEY4_TempDec_Press_Fun + $d 0x00007498 0 .text.KEY4_Long_Press + $t 0x00007498 0 .text.KEY4_Long_Press + $d 0x000074f4 0 .text.KEY4_Long_Press + $d 0x00007508 0 .text.KEY5_OnOff_Press_Fun + $t 0x00007508 0 .text.KEY5_OnOff_Press_Fun + $d 0x00007580 0 .text.KEY5_OnOff_Press_Fun + $d 0x00007598 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00007598 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000075e4 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000075ec 0 .text.DisPlay_Init + $t 0x000075ec 0 .text.DisPlay_Init + $d 0x00007604 0 .text.DisPlay_Init + $d 0x0000760c 0 .text.DisPlay_Task + $t 0x0000760c 0 .text.DisPlay_Task + $d 0x0000782e 0 .text.DisPlay_Task + $t 0x00007838 0 .text.DisPlay_Task + $d 0x00007968 0 .text.DisPlay_Task + $t 0x000079a8 0 .text.DisPlay_Task + $d 0x00007ad4 0 .text.DisPlay_Task + $d 0x00007af4 0 .text.Debug_Init + $t 0x00007af4 0 .text.Debug_Init + $d 0x00007b28 0 .text.Debug_Init + $d 0x00007b30 0 .text.Dev_SaveData + $t 0x00007b30 0 .text.Dev_SaveData + $d 0x00007bc8 0 .text.Dev_SaveData + $d 0x00007bdc 0 .text.Debug_Task + $t 0x00007bdc 0 .text.Debug_Task + $d 0x00007c2c 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x00007c40 F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007c40 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00007c40 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007c64 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007c68 0 .text.Relay_Init + $t 0x00007c68 0 .text.Relay_Init + $d 0x00007c88 0 .text.Relay_Init + $d 0x00007c90 0 .text.Relay_High + $t 0x00007c90 0 .text.Relay_High + $d 0x00007cac 0 .text.Relay_Mid + $t 0x00007cac 0 .text.Relay_Mid + $d 0x00007cc8 0 .text.Relay_Low + $t 0x00007cc8 0 .text.Relay_Low + $d 0x00007ce4 0 .text.Relay_Stop + $t 0x00007ce4 0 .text.Relay_Stop + $d 0x00007d00 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00007d00 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x00007d14 0 .text.RLY_Direct_Control + $t 0x00007d14 0 .text.RLY_Direct_Control + $d 0x00007d56 0 .text.RLY_Direct_Control + $t 0x00007d5a 0 .text.RLY_Direct_Control + $d 0x00007dd4 0 .text.RLY_Direct_Control + $d 0x00007ddc 0 .text.RLY_Zero_Control + $t 0x00007ddc 0 .text.RLY_Zero_Control + $d 0x00007df2 0 .text.RLY_Zero_Control + $t 0x00007df6 0 .text.RLY_Zero_Control + $d 0x00007e70 0 .text.RLY_Zero_Control + $d 0x00007e74 0 .text.NetCRC16_Check + $t 0x00007e74 0 .text.NetCRC16_Check + $d 0x00007eb8 0 .text.NetCRC16_Check + $d 0x00007ec0 0 .text.GetCRC16 + $t 0x00007ec0 0 .text.GetCRC16 + $d 0x00007ef4 0 .text.GetCRC16 + $d 0x00007efc 0 .text.SOR_CRC + $t 0x00007efc 0 .text.SOR_CRC + $d 0x00007f14 0 .text.Rs485_ASend + $t 0x00007f14 0 .text.Rs485_ASend + $d 0x00007f92 0 .text.Rs485_ASend + $t 0x00007f96 0 .text.Rs485_ASend + $d 0x00008014 0 .text.Rs485_ASend + $d 0x0000801c 0 .text.Rs485AskCycleSend + $t 0x0000801c 0 .text.Rs485AskCycleSend + $d 0x00008092 0 .text.Rs485AskCycleSend + $t 0x00008096 0 .text.Rs485AskCycleSend + $d 0x00008118 0 .text.Rs485AskCycleSend + $d 0x00008120 0 .text.Rs485AskCtrlSend + $t 0x00008120 0 .text.Rs485AskCtrlSend + $d 0x00008178 0 .text.Rs485AskCtrlSend + $d 0x0000817c 0 .text.Rs485AskReadSend + $t 0x0000817c 0 .text.Rs485AskReadSend + $d 0x000081e0 0 .text.Rs485AskReadSend + $d 0x000081e4 0 .text.Rs485_DevPort_ACK + $t 0x000081e4 0 .text.Rs485_DevPort_ACK + $d 0x000081fc 0 .text.Temp_Rec_Analysis + $t 0x000081fc 0 .text.Temp_Rec_Analysis + $d 0x00008264 0 .text.Temp_Rec_Analysis + $t 0x00008276 0 .text.Temp_Rec_Analysis + $d 0x0000828e 0 .text.Temp_Rec_Analysis + $t 0x00008292 0 .text.Temp_Rec_Analysis + $d 0x00008380 0 .text.Temp_Rec_Analysis + $t 0x00008384 0 .text.Temp_Rec_Analysis + $d 0x000083a0 0 .text.Temp_Rec_Analysis + $d 0x000083ac 0 .text.Tem_Rs485_Rec_Pro + $t 0x000083ac 0 .text.Tem_Rs485_Rec_Pro + $d 0x00008468 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x00008478 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008478 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00008478 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008484 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008488 0 .text.tk_clk_config + $t 0x00008488 0 .text.tk_clk_config + $d 0x000084ac 0 .text.tk_clk_config + $d 0x000084b0 0 .text.TK_con0_config + $t 0x000084b0 0 .text.TK_con0_config + $d 0x00008560 0 .text.TK_con0_config + $d 0x0000856c 0 .text.tk_io_enable + $t 0x0000856c 0 .text.tk_io_enable + $d 0x000085b0 0 .text.tk_io_enable + $t 0x000085c0 0 .text.tk_io_enable + $d 0x00008694 0 .text.tk_io_enable + $d 0x000086a0 0 .text.TK_Single_Longpress_prg + $t 0x000086a0 0 .text.TK_Single_Longpress_prg + $d 0x00008794 0 .text.TK_Single_Longpress_prg + $d 0x000087c8 0 .text.TK_Sampling_prog + $t 0x000087c8 0 .text.TK_Sampling_prog + $d 0x00008870 0 .text.TK_Sampling_prog + $d 0x00008894 0 .text.get_key_number + $t 0x00008894 0 .text.get_key_number + $d 0x000088b8 0 .text.get_key_number + $d 0x000088bc 0 .text.get_key_number0 + $t 0x000088bc 0 .text.get_key_number0 + $d 0x000088e0 0 .text.get_key_number0 + $d 0x000088e4 0 .text.get_key_number1 + $t 0x000088e4 0 .text.get_key_number1 + $d 0x00008908 0 .text.get_key_number1 + $d 0x0000890c 0 .text.get_key_number2 + $t 0x0000890c 0 .text.get_key_number2 + $d 0x00008930 0 .text.get_key_number2 + $d 0x00008934 0 .text.TK_Baseline_prog + $t 0x00008934 0 .text.TK_Baseline_prog + $d 0x00008a48 0 .text.TK_Baseline_prog + $d 0x00008a84 0 .text.TK_Baseline_prog2 + $t 0x00008a84 0 .text.TK_Baseline_prog2 + $d 0x00008b90 0 .text.TK_Baseline_prog2 + $d 0x00008bcc 0 .text.tk_poweron_data_fineturn + $t 0x00008bcc 0 .text.tk_poweron_data_fineturn + $d 0x00008cc8 0 .text.tk_poweron_data_fineturn + $d 0x00008cf0 0 .text.TK_Scan_Start + $t 0x00008cf0 0 .text.TK_Scan_Start + $d 0x00008d3c 0 .text.TK_Scan_Start + $d 0x00008d58 0 .text.TK_Keymap_prog + $t 0x00008d58 0 .text.TK_Keymap_prog + $d 0x00009094 0 .text.TK_Keymap_prog + $t 0x00009118 0 .text.TK_Keymap_prog + $d 0x00009474 0 .text.TK_Keymap_prog + $t 0x000094b8 0 .text.TK_Keymap_prog + $d 0x000095b4 0 .text.TK_Keymap_prog + $d 0x000095c8 0 .text.TK_overflow_predict + $t 0x000095c8 0 .text.TK_overflow_predict + $d 0x000096bc 0 .text.TK_overflow_predict + $d 0x000096f0 0 .text.TK_Baseline_tracking + $t 0x000096f0 0 .text.TK_Baseline_tracking + $d 0x00009a48 0 .text.TK_Baseline_tracking + $t 0x00009aa4 0 .text.TK_Baseline_tracking + $d 0x00009bb0 0 .text.TK_Baseline_tracking + $d 0x00009bc0 0 .text.TK_result_prog + $t 0x00009bc0 0 .text.TK_result_prog + $d 0x00009cc0 0 .text.TK_result_prog + $d 0x00009cf0 0 .text.get_key_seq + $t 0x00009cf0 0 .text.get_key_seq + $d 0x00009d20 0 .text.get_key_seq + $d 0x00009d28 0 .text.CORET_CONFIG + $t 0x00009d28 0 .text.CORET_CONFIG + $d 0x00009d58 0 .text.CORET_CONFIG + $d 0x00009d60 0 .text.tk_chxval_seqxcon_clr + $t 0x00009d60 0 .text.tk_chxval_seqxcon_clr + $d 0x00009d78 0 .text.tk_chxval_seqxcon_clr + $d 0x00009d7c 0 .text.tk_freq_para_init + $t 0x00009d7c 0 .text.tk_freq_para_init + $d 0x00009dd4 0 .text.tk_freq_para_init + $t 0x00009dda 0 .text.tk_freq_para_init + $d 0x00009df4 0 .text.tk_freq_para_init + $d 0x00009e28 0 .text.tk_reserved_init + $t 0x00009e28 0 .text.tk_reserved_init + $d 0x00009e3c 0 .text.tk_reserved_init + $d 0x00009e50 0 .text.TKEYIntHandler + $t 0x00009e50 0 .text.TKEYIntHandler + $d 0x00009ee0 0 .text.TKEYIntHandler + $d 0x00009ef0 0 .text.CORETHandler + $t 0x00009ef0 0 .text.CORETHandler + $d 0x0000a018 0 .text.CORETHandler + $d 0x0000a04c 0 .text.tk_init + $t 0x0000a04c 0 .text.tk_init + $d 0x0000a134 0 .text.tk_init + $d 0x0000a15c 0 .text.std_clk_calib + $t 0x0000a15c 0 .text.std_clk_calib + $d 0x0000a3a4 0 .text.std_clk_calib + __func__.6533 0x0000a3e0 O 28 .rodata + __func__.6571 0x0000a3fc O 25 .rodata + bp 0x0000a754 O 16 .rodata + dp_l 0x0000a764 O 16 .rodata + dp_h 0x0000a774 O 16 .rodata + NUM.6526 0x200000b8 O 1 .bss + adc_tick.6438 0x2000013c O 4 .bss + StateChange_Tick.6526 0x2000022c O 4 .bss + tick.6465 0x20000230 O 4 .bss + OpenDisPlay_Flag 0x20000234 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __divsf3 0x00000d80 F 188 .text + __extendsfdf2 0x00000e3c F 36 .text + __floatunsisf 0x00000e60 F 96 .text + __adddf3 0x00001194 F 46 .text + __subdf3 0x000011c4 F 54 .text + __muldf3 0x000011fc F 564 .text + __divdf3 0x00001430 F 340 .text + __gtdf2 0x00001584 F 60 .text + __gedf2 0x000015c0 F 60 .text + __ledf2 0x000015fc F 58 .text + __floatsidf 0x00001638 F 112 .text + __fixdfsi 0x000016a8 F 112 .text + __make_dp 0x00001718 F 40 .text + __floatunsidf 0x00001740 F 84 .text + __muldi3 0x00001794 F 68 .text + __clzsi2 0x000017d8 F 64 .text + __pack_f 0x00001818 F 184 .text + __unpack_f 0x000018d0 F 132 .text + __pack_d 0x00001954 F 412 .text + __unpack_d 0x00001af0 F 196 .text + __fpcmp_parts_d 0x00001bb4 F 140 .text + __memset_fast 0x00001c40 w F 136 .text + memset 0x00001c40 w F 136 .text + __memcpy_fast 0x00001cc8 w F 100 .text + memcpy 0x00001cc8 w F 100 .text + __GI_strncmp 0x00001d2c F 38 .text + strncmp 0x00001d2c w F 38 .text + __main 0x00001d54 F 56 .text.__main + SYSCON_RST_VALUE 0x00001e00 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001e4c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001e7c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001f04 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001f2c F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001f68 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001f7c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001f94 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001fb4 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001fd0 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001fec F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x0000202c F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00002060 F 4 .text.GPIO_EXTI_interrupt + EXI3_Int_Enable 0x00002064 F 16 .text.EXI3_Int_Enable + EXI4_Int_Enable 0x00002074 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00002084 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00002090 F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x0000209c F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000020c0 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x000020f0 F 100 .text.GPIO_DeInit + GPIO_Init 0x00002154 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00002234 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00002248 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00002258 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00002364 F 252 .text.GPIOA0_EXI_Init + GPIOB0_EXI_Init 0x00002460 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x000024cc F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000024d4 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000024dc F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000024f2 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00002504 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002518 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002528 F 28 .text.BT_DeInit + BT_Start 0x00002544 F 8 .text.BT_Start + BT_Soft_Reset 0x0000254c F 10 .text.BT_Soft_Reset + BT_Configure 0x00002556 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000256e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000259a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x000025a0 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x000025b4 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x000025c4 F 32 .text.SIO_DeInit + SIO_IO_Init 0x000025e4 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x00002644 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x00002654 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x000026a4 F 24 .text.UART0_DeInit + UART1_DeInit 0x000026bc F 24 .text.UART1_DeInit + UART2_DeInit 0x000026d4 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000026ec F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00002708 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002724 F 236 .text.UART_IO_Init + UARTInit 0x00002810 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00002820 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002830 F 30 .text.UARTTransmit + EPT_Stop 0x00002850 F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x00002878 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x000028dc F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x0000290c F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00002938 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00002944 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x0000296c F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002980 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002998 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x000029ac F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00002a28 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002bc0 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002d40 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002de0 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002e0c F 320 .text.tk_parameter_init + CORET_DeInit 0x00002f4c F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002f64 F 24 .text.CORET_Int_Enable + CORET_start 0x00002f7c F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002f8c F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002f9c F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002fac F 16 .text.CORET_reload + main 0x00002fbc F 84 .text.startup.main + delay_nms 0x00003010 F 44 .text.delay_nms + delay_nus 0x0000303c F 34 .text.delay_nus + GPIO_CONFIG 0x00003060 F 140 .text.GPIO_CONFIG + BT_CONFIG 0x000030ec F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x0000314c F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000031b0 F 156 .text.APT32F102_init + SYSCONIntHandler 0x0000324c F 240 .text.SYSCONIntHandler + IFCIntHandler 0x0000333c F 104 .text.IFCIntHandler + ADCIntHandler 0x000033a4 F 104 .text.ADCIntHandler + EPT0IntHandler 0x0000340c F 428 .text.EPT0IntHandler + WWDTHandler 0x000035b8 F 52 .text.WWDTHandler + GPT0IntHandler 0x000035ec F 128 .text.GPT0IntHandler + RTCIntHandler 0x0000366c F 112 .text.RTCIntHandler + UART0IntHandler 0x000036dc F 60 .text.UART0IntHandler + UART1IntHandler 0x00003718 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003754 F 148 .text.UART2IntHandler + SPI0IntHandler 0x000037e8 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000038d0 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003924 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00003954 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00003984 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000039cc F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003a38 F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x00003ab8 F 52 .text.LPTIntHandler + BT0IntHandler 0x00003aec F 76 .text.BT0IntHandler + BT1IntHandler 0x00003b38 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00003ba8 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003baa F 8 .text.PendTrapHandler + Trap3Handler 0x00003bb2 F 8 .text.Trap3Handler + Trap2Handler 0x00003bba F 8 .text.Trap2Handler + Trap1Handler 0x00003bc2 F 8 .text.Trap1Handler + Trap0Handler 0x00003bca F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003bd2 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00003bda F 8 .text.BreakPointHandler + AccessErrHandler 0x00003be2 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00003bea F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003bf2 F 8 .text.MisalignedHandler + CNTAIntHandler 0x00003bfa F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003c02 F 8 .text.I2CIntHandler + __divsi3 0x00003c0c F 36 .text.__divsi3 + __udivsi3 0x00003c30 F 36 .text.__udivsi3 + __modsi3 0x00003c54 F 36 .text.__modsi3 + __umodsi3 0x00003c78 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003c9c F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x00003ca2 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00003ca8 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003db0 F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003df4 F 140 .text.UART2_TASK + BUS485_Send 0x00003e80 F 196 .text.BUS485_Send + MultSend_Task 0x00003f44 F 116 .text.MultSend_Task + Set_GroupSend 0x00003fb8 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000401c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000402c F 12 .text.BUS485_Jump_Boot + BUS485Send_Task 0x00004038 F 52 .text.BUS485Send_Task + BusIdle_Task 0x0000406c F 64 .text.BusIdle_Task + BusBusy_Task 0x000040ac F 92 .text.BusBusy_Task + Dbg_Println 0x00004108 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00004114 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00004118 F 104 .text.Touch_Key_Init + Get_TouchKey_CH_State 0x00004180 F 60 .text.Get_TouchKey_CH_State + TouchKey_RS485_Printf_3 0x000041bc F 756 .text.TouchKey_RS485_Printf_3 + Touch_Key_Event_Handling 0x000044b0 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x0000455c F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00004598 F 256 .text.Touch_Key_Task + TouchKey_CheckSum 0x00004698 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x000046b0 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00004720 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x000047d8 F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x000048d0 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004908 F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x000049b8 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x000049d4 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004aac F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004ac4 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00004b38 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004b7c F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004c08 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_WriteTouchPara 0x00004c28 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004c94 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00004d40 F 220 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x00004e20 F 106 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004e90 F 128 .text.EEPROM_TouchPara_Printf + EEPROM_ReadMCUDevInfo 0x00004f10 F 112 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00004f80 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00004fc0 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x00004ff8 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00005050 F 136 .text.EEPROM_Init + ADC_Init 0x000050d8 F 96 .text.ADC_Init + Thermistor_Array_Transform 0x00005138 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00005180 F 144 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x00005210 F 12 .text.Get_Temp_Val + Gather_Temp 0x0000521c F 144 .text.Gather_Temp + ADC_Sample_Task 0x000052ac F 112 .text.ADC_Sample_Task + Contol_Switch_Light 0x0000531c F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00005708 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x00005af4 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00005b1c F 68 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00005b60 F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x00005c80 F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x00005d28 F 92 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00005d84 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x00005da8 F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x00005e18 F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00005e7c F 108 .text.TM1812_LED_Init + HT1621_WR_Data 0x00005ee8 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x00005f30 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005f60 F 180 .text.HT1621_Init + HT1621_Clear 0x00006014 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00006064 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x000060a4 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x000060f0 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x000061c0 F 208 .text.Local_Temperature_Display + Control_Mode 0x00006290 F 580 .text.Control_Mode + Control_wind_velocity 0x000064d4 F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x000065a4 F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00006648 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00006690 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x0000676c F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x0000679c F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00006838 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x0000689c F 144 .text.HT1621_Refresh_Task + Boot_Function_Init 0x0000692c F 96 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x0000698c F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x000069b0 F 92 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x00006a0c F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x00006a20 F 392 .text.Boot_Comm_UpgradeProcess + TemCtrl_Init 0x00006ba8 F 376 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00006d20 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00006d6c F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00006db8 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00006de8 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00006e18 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00006e4c F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00006f18 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00007090 F 204 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x0000715c F 204 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00007228 F 256 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00007328 F 112 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00007398 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00007498 F 112 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00007508 F 144 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00007598 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x000075ec F 32 .text.DisPlay_Init + DisPlay_Task 0x0000760c F 1256 .text.DisPlay_Task + Debug_Init 0x00007af4 F 60 .text.Debug_Init + Dev_SaveData 0x00007b30 F 172 .text.Dev_SaveData + Debug_Task 0x00007bdc F 100 .text.Debug_Task + Relay_Init 0x00007c68 F 40 .text.Relay_Init + Relay_High 0x00007c90 F 28 .text.Relay_High + Relay_Mid 0x00007cac F 28 .text.Relay_Mid + Relay_Low 0x00007cc8 F 28 .text.Relay_Low + Relay_Stop 0x00007ce4 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x00007d00 F 20 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x00007d14 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x00007ddc F 152 .text.RLY_Zero_Control + NetCRC16_Check 0x00007e74 F 76 .text.NetCRC16_Check + GetCRC16 0x00007ec0 F 60 .text.GetCRC16 + SOR_CRC 0x00007efc F 22 .text.SOR_CRC + Rs485_ASend 0x00007f14 F 264 .text.Rs485_ASend + Rs485AskCycleSend 0x0000801c F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00008120 F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x0000817c F 104 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x000081e4 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x000081fc F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000083ac F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x00008488 F 40 .text.tk_clk_config + TK_con0_config 0x000084b0 F 188 .text.TK_con0_config + tk_io_enable 0x0000856c F 308 .text.tk_io_enable + TK_Single_Longpress_prg 0x000086a0 F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x000087c8 F 204 .text.TK_Sampling_prog + get_key_number 0x00008894 F 40 .text.get_key_number + get_key_number0 0x000088bc F 40 .text.get_key_number0 + get_key_number1 0x000088e4 F 40 .text.get_key_number1 + get_key_number2 0x0000890c F 40 .text.get_key_number2 + TK_Baseline_prog 0x00008934 F 336 .text.TK_Baseline_prog + TK_Baseline_prog2 0x00008a84 F 328 .text.TK_Baseline_prog2 + tk_poweron_data_fineturn 0x00008bcc F 292 .text.tk_poweron_data_fineturn + TK_Scan_Start 0x00008cf0 F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x00008d58 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x000095c8 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x000096f0 F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x00009bc0 F 304 .text.TK_result_prog + get_key_seq 0x00009cf0 F 56 .text.get_key_seq + CORET_CONFIG 0x00009d28 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00009d60 F 28 .text.tk_chxval_seqxcon_clr + tk_freq_para_init 0x00009d7c F 156 .text.tk_freq_para_init + tk_reserved_init 0x00009e28 F 40 .text.tk_reserved_init + TKEYIntHandler 0x00009e50 F 160 .text.TKEYIntHandler + CORETHandler 0x00009ef0 F 348 .text.CORETHandler + tk_init 0x0000a04c F 272 .text.tk_init + std_clk_calib 0x0000a15c F 644 .text.std_clk_calib + R_Array 0x0000a416 O 820 .rodata + Diaital 0x0000a74a O 10 .rodata + __thenan_sf 0x0000a784 O 16 .rodata + __thenan_df 0x0000a794 O 20 .rodata + __clz_tab 0x0000a7a8 O 256 .rodata + _end_rodata 0x0000ad00 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 + Printf_Ch 0x20000068 O 1 .data + MCU_Touch_CH 0x20000069 O 5 .data + s_tkey 0x20000070 O 1 .data + samp_setover_f 0x20000071 O 1 .data + scan_step_temp 0x20000072 O 1 .data + SigleTK_longpress_time 0x20000074 O 2 .data + tk_dataturn_en 0x20000076 O 1 .data + tk_overflow_en 0x20000077 O 1 .data + tk_div 0x20000078 O 34 .data + neg_build_bounce 0x2000009a O 1 .data + pos_build_bounce 0x2000009b O 1 .data + Valid_SingleKey_Num 0x2000009c O 1 .data + tk_scan_para0 0x200000a0 O 4 .data + tk_scan_para1 0x200000a4 O 4 .data + tk_scan_para2 0x200000a8 O 4 .data + TkeyRebaseTime 0x200000ac O 1 .data + _end_data 0x200000b0 0 .data + Sav_Temp 0x200000b0 O 4 .bss + _bss_start 0x200000b0 0 .bss + Sys_RSR 0x200000b4 O 4 .bss + SysTick_100us 0x200000bc O 4 .bss + SysTick_1ms 0x200000c0 O 4 .bss + DealBuffer 0x200000c4 O 100 .bss + DealLen 0x20000128 O 2 .bss + RS485_Comming 0x2000012c O 4 .bss + RS485_Comm_Flag 0x20000130 O 4 .bss + RS485_Comm_Start 0x20000134 O 4 .bss + RS485_Comm_End 0x20000138 O 4 .bss + tm1812_param 0x20000140 O 232 .bss + K 0x20000228 O 1 .bss + K2 0x20000229 O 1 .bss + keymap_strict_mode 0x20000235 O 1 .bss + Press_debounce_data 0x20000238 O 1 .bss + TK_Lowpower_mode 0x20000239 O 1 .bss + TK_Lowpower_level 0x2000023a O 1 .bss + TK_longpress_time 0x2000023c O 4 .bss + Release_debounce_data 0x20000240 O 1 .bss + Key_mode 0x20000241 O 1 .bss + TK_icon 0x20000242 O 34 .bss + MultiTimes_Filter 0x20000264 O 1 .bss + Base_Speed 0x20000265 O 1 .bss + TK_IO_ENABLE 0x20000268 O 4 .bss + Valid_Key_Num 0x2000026c O 1 .bss + TK_senprd 0x2000026e O 34 .bss + TK_Wakeup_level 0x20000290 O 1 .bss + TK_Triggerlevel 0x20000292 O 34 .bss + TK_EC_LEVEL 0x200002b4 O 2 .bss + TK_FVR_LEVEL 0x200002b6 O 2 .bss + TK_BaseCnt 0x200002b8 O 4 .bss + TK_PSEL_MODE 0x200002bc O 2 .bss + R_CMPB_BUF 0x200002c0 O 4 .bss + R_CMPA_BUF 0x200002c4 O 4 .bss + R_SIORX_buf 0x200002c8 O 40 .bss + g_uart 0x200002f0 O 348 .bss + m_send 0x2000044c O 136 .bss + touch_para 0x200004d4 O 28 .bss + g_key 0x200004f0 O 52 .bss + g_eeprom 0x20000524 O 8 .bss + g_mcu_dev 0x2000052c O 37 .bss + g_adc 0x20000554 O 80 .bss + g_switch 0x200005a4 O 28 .bss + HT1621 0x200005c0 O 64 .bss + g_boot 0x20000600 O 316 .bss + g_app_feature 0x2000073c O 256 .bss + TempCtrl 0x2000083c O 41 .bss + Debug_Inf 0x20000868 O 16 .bss + c_rly 0x20000878 O 12 .bss + Tk_press_time_cnt4 0x20000884 O 4 .bss + baseline_data0 0x20000888 O 34 .bss + TK_Postive_build2 0x200008aa O 17 .bss + Key_Map1 0x200008bc O 4 .bss + Valid_Key_Num_CNT 0x200008c0 O 3 .bss + offset_data2_abs 0x200008c4 O 34 .bss + time_cnt0 0x200008e8 O 4 .bss + offset0_max_tempB 0x200008ec O 2 .bss + scan_f 0x200008ee O 1 .bss + offset_data1_abs 0x200008f0 O 34 .bss + TK_Slider1_Value 0x20000912 O 1 .bss + TK_Wheel_Value 0x20000913 O 1 .bss + Release_debounce0 0x20000914 O 17 .bss + Key_Map0 0x20000928 O 4 .bss + Tk_press_time_cnt2 0x2000092c O 4 .bss + TK_Slider0_Seq 0x20000930 O 4 .bss + bsae_over_f 0x20000934 O 1 .bss + Press_debounce0 0x20000935 O 17 .bss + Valid_key_f 0x20000946 O 1 .bss + offset_data0 0x20000948 O 34 .bss + offset2_max_tempA 0x2000096a O 2 .bss + TK_Scan_Freq1 0x2000096c O 4 .bss + sampling_data1 0x20000970 O 34 .bss + TK_Slider1_Level 0x20000992 O 1 .bss + TK_Slider1_Function 0x20000993 O 1 .bss + base_update_fs 0x20000994 O 3 .bss + TK_Slider0_Function 0x20000997 O 1 .bss + Tk_press_time_cnt3 0x20000998 O 4 .bss + TK_Scan_Freq2 0x2000099c O 4 .bss + Key_Map2 0x200009a0 O 4 .bss + Release_debounce1 0x200009a4 O 17 .bss + tk_overflow_f 0x200009b5 O 1 .bss + time_cnt2 0x200009b8 O 4 .bss + TK_Negtive_build2 0x200009bc O 17 .bss + base_update_f 0x200009cd O 1 .bss + TK_Postive_build1 0x200009ce O 17 .bss + offset_max_data 0x200009e0 O 64 .bss + time_cnt 0x20000a20 O 4 .bss + lpt_scan_pend_cnt 0x20000a24 O 2 .bss + TK_track_cnt 0x20000a26 O 1 .bss + Key_Map 0x20000a28 O 4 .bss + Key_Map2_temp 0x20000a2c O 4 .bss + offset2_max_tempB 0x20000a30 O 2 .bss + baseline_data1 0x20000a32 O 34 .bss + TK_Postive_build0 0x20000a54 O 17 .bss + sampling_data2 0x20000a66 O 34 .bss + offset_data1 0x20000a88 O 34 .bss + TK_ovrdect_cnt 0x20000aaa O 1 .bss + TK_Slider0_Level 0x20000aab O 1 .bss + time_cnt1 0x20000aac O 4 .bss + Press_debounce2 0x20000ab0 O 17 .bss + Tk_press_time_cnt0 0x20000ac4 O 4 .bss + Key_Map0_temp 0x20000ac8 O 4 .bss + TK_Negtive_build1 0x20000acc O 17 .bss + coret_spread_step 0x20000add O 1 .bss + time_cnts 0x20000ade O 3 .bss + offset0_max_tempA 0x20000ae2 O 2 .bss + tk_num 0x20000ae4 O 1 .bss + TK_Slider1_Seq 0x20000ae5 O 4 .bss + offset1_max_tempB 0x20000aea O 2 .bss + TK_Negtive_build0 0x20000aec O 17 .bss + R_Debounce_temp2 0x20000b00 O 4 .bss + Tk_press_time_cnt1 0x20000b04 O 4 .bss + Press_debounce1 0x20000b08 O 17 .bss + TK_Wheel_Seq 0x20000b19 O 4 .bss + TK_Slider0_Value 0x20000b1d O 1 .bss + Release_debounce2 0x20000b1e O 17 .bss + r_Key_Map_Temp 0x20000b30 O 4 .bss + tk_seque 0x20000b34 O 17 .bss + scan_step 0x20000b45 O 1 .bss + TK_Wheel_Level 0x20000b46 O 1 .bss + baseline_data2 0x20000b48 O 34 .bss + tk_sampling_max 0x20000b6a O 34 .bss + Key_Map1_temp 0x20000b8c O 4 .bss + coret_spread_cnt 0x20000b90 O 2 .bss + offset_data0_abs 0x20000b92 O 34 .bss + offset_data2 0x20000bb4 O 34 .bss + TK_Wheel_Function 0x20000bd6 O 1 .bss + offset1_max_tempA 0x20000bd8 O 2 .bss + sampling_data0 0x20000bda O 34 .bss + TK_Scan_Freq0 0x20000bfc O 4 .bss + _ebss 0x20000c00 0 .bss + _end 0x20000c00 0 .bss + end 0x20000c00 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: 0x0000ad00, 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 1296 .text pow.o + 0x00000b5e 0x00000006 Code RO 1304 .text fabs.o + 0x00000b64 0x00000020 Code RO 1310 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1317 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1328 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1333 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1338 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1343 .text _fixunsdfsi.o + 0x00000d80 0x000000bc Code RO 1350 .text _div_sf.o + 0x00000e3c 0x00000024 Code RO 1357 .text _sf_to_df.o + 0x00000e60 0x00000060 Code RO 1371 .text _usi_to_sf.o + 0x00000ec0 0x0000033a Code RO 1378 .text _addsub_df.o + 0x000011fa 0x00000002 PAD + 0x000011fc 0x00000234 Code RO 1385 .text _mul_df.o + 0x00001430 0x00000154 Code RO 1392 .text _div_df.o + 0x00001584 0x0000003c Code RO 1399 .text _gt_df.o + 0x000015c0 0x0000003c Code RO 1406 .text _ge_df.o + 0x000015fc 0x0000003a Code RO 1413 .text _le_df.o + 0x00001636 0x00000002 PAD + 0x00001638 0x00000070 Code RO 1420 .text _si_to_df.o + 0x000016a8 0x00000070 Code RO 1427 .text _df_to_si.o + 0x00001718 0x00000028 Code RO 1434 .text _make_df.o + 0x00001740 0x00000054 Code RO 1448 .text _usi_to_df.o + 0x00001794 0x00000044 Code RO 1455 .text _muldi3.o + 0x000017d8 0x00000040 Code RO 1462 .text _clzsi2.o + 0x00001818 0x000000b8 Code RO 1468 .text _pack_sf.o + 0x000018d0 0x00000084 Code RO 1475 .text _unpack_sf.o + 0x00001954 0x0000019c Code RO 1482 .text _pack_df.o + 0x00001af0 0x000000c4 Code RO 1489 .text _unpack_df.o + 0x00001bb4 0x0000008c Code RO 1496 .text _fpcmp_parts_df.o + 0x00001c40 0x00000088 Code RO 1517 .text memset_fast.o + 0x00001cc8 0x00000064 Code RO 1522 .text memcpy_fast.o + 0x00001d2c 0x00000026 Code RO 1528 .text strncmp.o + 0x00001d54 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001d8c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001e00 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001e4c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001e7c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001f04 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001f2c 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001f68 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001f7c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001f94 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001fb4 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001fd0 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001fec 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000202c 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00002060 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00002064 0x00000010 Code RO 89 .text.EXI3_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00002074 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00002084 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00002090 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x0000209c 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000020c0 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000020f0 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00002154 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00002234 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00002248 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00002258 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002364 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00002460 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000024cc 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000024d4 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000024dc 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000024f2 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00002504 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002518 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002528 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002544 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x0000254c 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002556 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000256e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000259a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x000025a0 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x000025b4 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x000025c4 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x000025e4 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x00002644 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x00002654 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x000026a4 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000026bc 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000026d4 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000026ec 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002708 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002724 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002810 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00002820 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002830 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002850 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002878 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x000028dc 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x000028ec 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x0000290c 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00002938 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00002944 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x0000296c 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002980 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002998 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x000029ac 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00002a28 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002bc0 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002d40 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002de0 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002e0c 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002f4c 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002f64 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002f7c 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002f8c 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002f9c 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002fac 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002fbc 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00003010 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x0000303c 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00003060 0x0000008c Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x000030ec 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x0000314c 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000031b0 0x0000009c Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x0000324c 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x0000333c 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000033a4 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x0000340c 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000035b8 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000035ec 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x0000366c 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000036dc 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003718 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003754 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000037e8 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000038d0 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003924 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00003954 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00003984 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000039cc 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003a38 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003ab8 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00003aec 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003b38 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003ba8 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003baa 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00003bb2 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00003bba 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00003bc2 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00003bca 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003bd2 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00003bda 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003be2 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00003bea 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003bf2 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00003bfa 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003c02 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003c0c 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003c30 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003c54 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00003c78 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003c9c 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003ca2 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003ca8 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003db0 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003df4 0x0000008c Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003e80 0x000000c4 Code RO 843 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003f44 0x00000074 Code RO 844 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003fb8 0x00000064 Code RO 845 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000401c 0x00000010 Code RO 846 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000402c 0x0000000c Code RO 847 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00004038 0x00000034 Code RO 848 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x0000406c 0x00000040 Code RO 850 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000040ac 0x0000005c Code RO 851 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00004108 0x0000000c Code RO 853 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004114 0x00000002 Code RO 854 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00004118 0x00000068 Code RO 871 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00004180 0x0000003c Code RO 876 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x000041bc 0x000002f4 Code RO 877 .text.TouchKey_RS485_Printf_3 Obj/SYSTEM_touch_key.o + 0x000044b0 0x000000ac Code RO 879 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x0000455c 0x0000003c Code RO 880 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00004598 0x00000100 Code RO 881 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00004698 0x00000018 Code RO 882 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x000046b0 0x00000070 Code RO 883 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00004720 0x000000b8 Code RO 884 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x000047d8 0x000000f8 Code RO 885 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x000048d0 0x00000038 Code RO 886 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004908 0x000000b0 Code RO 887 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x000049b8 0x0000001a Code RO 888 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x000049d4 0x000000d8 Code RO 889 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004aac 0x00000016 Code RO 908 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004ac4 0x00000074 Code RO 909 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00004b38 0x00000044 Code RO 910 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004b7c 0x0000008c Code RO 912 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004c08 0x00000020 Code RO 913 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004c28 0x0000006c Code RO 914 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004c94 0x000000ac Code RO 915 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00004d40 0x000000e0 Code RO 916 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x00004e20 0x00000070 Code RO 917 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004e90 0x00000080 Code RO 918 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004f10 0x00000070 Code RO 919 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004f80 0x00000040 Code RO 920 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004fc0 0x00000038 Code RO 921 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004ff8 0x00000058 Code RO 922 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00005050 0x00000088 Code RO 923 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000050d8 0x00000060 Code RO 941 .text.ADC_Init Obj/SYSTEM_adc.o + 0x00005138 0x00000048 Code RO 942 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00005180 0x00000090 Code RO 943 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x00005210 0x0000000c Code RO 944 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x0000521c 0x00000090 Code RO 945 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x000052ac 0x00000070 Code RO 946 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x0000531c 0x000003ea Code RO 965 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00005708 0x000003ea Code RO 966 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x00005af4 0x00000028 Code RO 967 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00005b1c 0x00000044 Code RO 989 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00005b60 0x00000120 Code RO 991 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x00005c80 0x000000a8 Code RO 992 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x00005d28 0x0000005c Code RO 993 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00005d84 0x00000024 Code RO 994 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x00005da8 0x00000070 Code RO 995 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x00005e18 0x00000064 Code RO 996 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00005e7c 0x0000006c Code RO 997 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x00005ee8 0x00000048 Code RO 1014 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x00005f30 0x00000030 Code RO 1015 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005f60 0x000000b4 Code RO 1016 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00006014 0x00000050 Code RO 1020 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00006064 0x00000040 Code RO 1021 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x000060a4 0x0000004c Code RO 1022 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x000060f0 0x000000d0 Code RO 1023 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x000061c0 0x000000d0 Code RO 1024 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00006290 0x00000244 Code RO 1025 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x000064d4 0x000000d0 Code RO 1026 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x000065a4 0x000000a4 Code RO 1027 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00006648 0x00000048 Code RO 1028 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00006690 0x000000dc Code RO 1029 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x0000676c 0x00000030 Code RO 1030 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x0000679c 0x0000009c Code RO 1031 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00006838 0x00000064 Code RO 1032 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x0000689c 0x00000090 Code RO 1033 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x0000692c 0x00000060 Code RO 1053 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x0000698c 0x00000024 Code RO 1054 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x000069b0 0x0000005c Code RO 1056 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x00006a0c 0x00000014 Code RO 1060 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x00006a20 0x00000188 Code RO 1061 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x00006ba8 0x00000178 Code RO 1081 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00006d20 0x0000004c Code RO 1082 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006d6c 0x0000004c Code RO 1083 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006db8 0x00000030 Code RO 1084 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00006de8 0x00000030 Code RO 1085 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00006e18 0x00000034 Code RO 1086 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006e4c 0x000000cc Code RO 1087 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x00006f18 0x00000178 Code RO 1088 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00007090 0x000000cc Code RO 1106 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000715c 0x000000cc Code RO 1107 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007228 0x00000100 Code RO 1108 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007328 0x00000070 Code RO 1109 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007398 0x00000100 Code RO 1110 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007498 0x00000070 Code RO 1111 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00007508 0x00000090 Code RO 1112 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007598 0x00000054 Code RO 1128 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x000075ec 0x00000020 Code RO 1129 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x0000760c 0x000004e8 Code RO 1130 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00007af4 0x0000003c Code RO 1147 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00007b30 0x000000ac Code RO 1148 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00007bdc 0x00000064 Code RO 1149 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00007c40 0x00000028 Code RO 1166 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x00007c68 0x00000028 Code RO 1167 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00007c90 0x0000001c Code RO 1168 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00007cac 0x0000001c Code RO 1169 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x00007cc8 0x0000001c Code RO 1170 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00007ce4 0x0000001c Code RO 1171 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007d00 0x00000014 Code RO 1172 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x00007d14 0x000000c8 Code RO 1173 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x00007ddc 0x00000098 Code RO 1174 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x00007e74 0x0000004c Code RO 1191 .text.NetCRC16_Check Obj/USRCTRL_uart_protocol.o + 0x00007ec0 0x0000003c Code RO 1192 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00007efc 0x00000016 Code RO 1193 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00007f14 0x00000108 Code RO 1194 .text.Rs485_ASend Obj/USRCTRL_uart_protocol.o + 0x0000801c 0x00000104 Code RO 1195 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00008120 0x0000005c Code RO 1196 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x0000817c 0x00000068 Code RO 1197 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x000081e4 0x00000018 Code RO 1198 .text.Rs485_DevPort_ACK Obj/USRCTRL_uart_protocol.o + 0x000081fc 0x000001b0 Code RO 1199 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x000083ac 0x000000cc Code RO 1200 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x00008478 0x00000010 Code RO 1226 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_f_1_18.o + 0x00008488 0x00000028 Code RO 1229 .text.tk_clk_config FWlib_apt32f102_tkey_f_1_18.o + 0x000084b0 0x000000bc Code RO 1230 .text.TK_con0_config FWlib_apt32f102_tkey_f_1_18.o + 0x0000856c 0x00000134 Code RO 1233 .text.tk_io_enable FWlib_apt32f102_tkey_f_1_18.o + 0x000086a0 0x00000128 Code RO 1234 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x000087c8 0x000000cc Code RO 1235 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008894 0x00000028 Code RO 1239 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x000088bc 0x00000028 Code RO 1240 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000088e4 0x00000028 Code RO 1241 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x0000890c 0x00000028 Code RO 1242 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x00008934 0x00000150 Code RO 1243 .text.TK_Baseline_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008a84 0x00000148 Code RO 1244 .text.TK_Baseline_prog2 FWlib_apt32f102_tkey_f_1_18.o + 0x00008bcc 0x00000124 Code RO 1245 .text.tk_poweron_data_fineturn FWlib_apt32f102_tkey_f_1_18.o + 0x00008cf0 0x00000068 Code RO 1246 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x00008d58 0x00000870 Code RO 1247 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000095c8 0x00000128 Code RO 1248 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x000096f0 0x000004d0 Code RO 1249 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x00009bc0 0x00000130 Code RO 1250 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00009cf0 0x00000038 Code RO 1251 .text.get_key_seq FWlib_apt32f102_tkey_f_1_18.o + 0x00009d28 0x00000038 Code RO 1252 .text.CORET_CONFIG FWlib_apt32f102_tkey_f_1_18.o + 0x00009d60 0x0000001c Code RO 1253 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_f_1_18.o + 0x00009d7c 0x000000ac Code RO 1254 .text.tk_freq_para_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009e28 0x00000028 Code RO 1255 .text.tk_reserved_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009e50 0x000000a0 Code RO 1256 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00009ef0 0x0000015c Code RO 1257 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x0000a04c 0x00000110 Code RO 1258 .text.tk_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000a15c 0x00000284 Code RO 1276 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000a3e0 0x00000035 Data RO 890 .rodata Obj/SYSTEM_touch_key.o + 0x0000a415 0x00000001 PAD + 0x0000a416 0x00000334 Data RO 947 .rodata Obj/SYSTEM_adc.o + 0x0000a74a 0x0000000a Data RO 1035 .rodata Obj/SYSTEM_ht1621.o + 0x0000a754 0x00000030 Data RO 1299 .rodata pow.o + 0x0000a784 0x00000010 Data RO 1367 .rodata _thenan_sf.o + 0x0000a794 0x00000014 Data RO 1444 .rodata _thenan_df.o + 0x0000a7a8 0x00000100 Data RO 1506 .rodata _clz.o + 0x0000a8a8 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x0000a8b6 0x00000092 Data RO 891 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000a948 0x0000019d Data RO 924 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000aae5 0x00000021 Data RO 948 .rodata.str1.1 Obj/SYSTEM_adc.o + 0x0000ab06 0x00000011 Data RO 998 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x0000ab17 0x00000071 Data RO 1089 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000ab88 0x0000007e Data RO 1113 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000ac06 0x00000045 Data RO 1131 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x0000ac4b 0x00000087 Data RO 1150 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x0000acd2 0x0000002c Data RO 1201 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x0000acfe 0x00000002 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000c00, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000006 Data RW 869 .data Obj/SYSTEM_touch_key.o + 0x2000006e 0x00000002 PAD + 0x20000070 0x0000003d Data RW 1224 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000ad 0x00000003 PAD + 0x200000b0 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b8 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000c4 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x2000013c 0x00000004 Zero RW 940 .bss Obj/SYSTEM_adc.o + 0x20000140 0x000000f0 Zero RW 983 .bss Obj/SYSTEM_tm1812.o + 0x20000230 0x00000004 Zero RW 1080 .bss Obj/USRCTRL_tempctrl_unit.o + 0x20000234 0x00000001 Zero RW 1127 .bss Obj/USRCTRL_display_logic.o + 0x20000235 0x00000001 Zero RW 1225 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000236 0x00000002 PAD + 0x20000238 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002be 0x00000002 PAD + 0x200002c0 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002f0 0x000001e4 Zero RW 867 COMMON Obj/SYSTEM_uart.o + 0x200004d4 0x00000050 Zero RW 904 COMMON Obj/SYSTEM_touch_key.o + 0x20000524 0x0000002d Zero RW 937 COMMON Obj/SYSTEM_eeprom.o + 0x20000551 0x00000003 PAD + 0x20000554 0x00000050 Zero RW 961 COMMON Obj/SYSTEM_adc.o + 0x200005a4 0x0000001c Zero RW 980 COMMON Obj/SYSTEM_switch_fun.o + 0x200005c0 0x00000040 Zero RW 1049 COMMON Obj/SYSTEM_ht1621.o + 0x20000600 0x0000023c Zero RW 1077 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000083c 0x00000029 Zero RW 1102 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x20000865 0x00000003 PAD + 0x20000868 0x00000010 Zero RW 1162 COMMON Obj/USRCTRL_debug_unit.o + 0x20000878 0x0000000c Zero RW 1187 COMMON Obj/USRCTRL_myrelay.o + 0x20000884 0x0000037c Zero RW 1272 COMMON FWlib_apt32f102_tkey_f_1_18.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 284 Obj/arch_crt0.o + 56 0 0 0 818 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 868 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 1040 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9303 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 14219 Obj/main.o + 568 0 0 0 16809 Obj/mcu_initial.o + 2494 0 0 60 16278 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1134 0 0 604 16630 Obj/SYSTEM_uart.o + 2450 199 6 80 18204 Obj/SYSTEM_touch_key.o + 1578 413 0 45 16271 Obj/SYSTEM_eeprom.o + 580 853 0 84 14434 Obj/SYSTEM_adc.o + 2044 0 0 28 14597 Obj/SYSTEM_switch_fun.o + 972 17 0 240 15606 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17914 Obj/SYSTEM_ht1621.o + 636 0 0 572 17884 Obj/SYSTEM_Bootload_fun.o + 1256 113 0 45 13347 Obj/USRCTRL_tempctrl_unit.o + 1288 126 0 0 12898 Obj/USRCTRL_key_logic.o + 1372 69 0 1 12635 Obj/USRCTRL_display_logic.o + 332 135 0 16 12357 Obj/USRCTRL_debug_unit.o + 564 0 0 12 13878 Obj/USRCTRL_myrelay.o + 1538 44 0 0 14843 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 26810 1993 110 1993 446244 Object Totals + 6 3 5 10 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 7396 0 61 893 20058 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 7396 0 61 893 20058 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.o + 56 0 0 0 0 _fixunsdfsi.o + 188 0 0 0 0 _div_sf.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 96 0 0 0 0 _usi_to_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 + 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 + 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 + ------------------------------------------------------------ + 3902 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 + + 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 + 41920 2336 176 2896 474977 Grand Totals + 41920 2336 176 2896 474977 Elf Image Totals + 41920 2336 176 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 44256 ( 43.22kB) +Total RW Size (RW Data + ZI Data) 3072 ( 3.00kB) +Total ROM Size (Code + RO Data + RW Data) 44432 ( 43.39kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V05_202505211650.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V05_202505211650.asm new file mode 100644 index 0000000..cbd1b01 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V05_202505211650.asm @@ -0,0 +1,27636 @@ + +.//Obj/T1_TC_34650_V05_202505211650.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : + 0: 0000010c .long 0x0000010c + 4: 00003bf2 .long 0x00003bf2 + 8: 00003be2 .long 0x00003be2 + c: 00000184 .long 0x00000184 + 10: 00003bea .long 0x00003bea + 14: 00003ba8 .long 0x00003ba8 + 18: 00000184 .long 0x00000184 + 1c: 00003bda .long 0x00003bda + 20: 00003bd2 .long 0x00003bd2 + 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: 00003bca .long 0x00003bca + 44: 00003bc2 .long 0x00003bc2 + 48: 00003bba .long 0x00003bba + 4c: 00003bb2 .long 0x00003bb2 + 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: 00003baa .long 0x00003baa + 80: 00009ef0 .long 0x00009ef0 + 84: 0000324c .long 0x0000324c + 88: 0000333c .long 0x0000333c + 8c: 000033a4 .long 0x000033a4 + 90: 0000340c .long 0x0000340c + 94: 00000184 .long 0x00000184 + 98: 000035b8 .long 0x000035b8 + 9c: 00003924 .long 0x00003924 + a0: 00003954 .long 0x00003954 + a4: 000035ec .long 0x000035ec + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + b0: 0000366c .long 0x0000366c + b4: 000036dc .long 0x000036dc + b8: 00003718 .long 0x00003718 + bc: 00003754 .long 0x00003754 + c0: 00000184 .long 0x00000184 + c4: 00003c02 .long 0x00003c02 + c8: 00000184 .long 0x00000184 + cc: 000037e8 .long 0x000037e8 + d0: 000038d0 .long 0x000038d0 + d4: 00003984 .long 0x00003984 + d8: 000039cc .long 0x000039cc + dc: 00003a38 .long 0x00003a38 + e0: 00003bfa .long 0x00003bfa + e4: 00009e50 .long 0x00009e50 + e8: 00003ab8 .long 0x00003ab8 + ec: 00000184 .long 0x00000184 + f0: 00003aec .long 0x00003aec + f4: 00003b38 .long 0x00003b38 + 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, 0x1d54 // 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, 0x2fbc // 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: 00001d54 .long 0x00001d54 + 198: 00000160 .long 0x00000160 + 19c: 00002fbc .long 0x00002fbc + 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: e00007cf bsr 0x1194 // 1194 <__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: e00007b5 bsr 0x11c4 // 11c4 <__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: e00008ca bsr 0x1430 // 1430 <__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: e000078c bsr 0x11fc // 11fc <__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: e0000880 bsr 0x1430 // 1430 <__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: e000073b bsr 0x11c4 // 11c4 <__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: e0000706 bsr 0x11c4 // 11c4 <__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: e000071c bsr 0x11fc // 11fc <__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: e0000714 bsr 0x11fc // 11fc <__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: e000070c bsr 0x11fc // 11fc <__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: e00006ea bsr 0x11c4 // 11c4 <__subdf3> + 3f4: 6c97 mov r2, r5 + 3f6: 6cd3 mov r3, r4 + 3f8: e0000702 bsr 0x11fc // 11fc <__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: e00006e0 bsr 0x11c4 // 11c4 <__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: e00006f4 bsr 0x11fc // 11fc <__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: e00006ee bsr 0x11fc // 11fc <__muldf3> + 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408> + 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0> + 428: e00006ea bsr 0x11fc // 11fc <__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: e00006c8 bsr 0x11c4 // 11c4 <__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: e00006a8 bsr 0x1194 // 1194 <__adddf3> + 448: 6c9f mov r2, r7 + 44a: 6cdb mov r3, r6 + 44c: 3000 movi r0, 0 + 44e: b823 st.w r1, (r14, 0xc) + 450: e00006ba bsr 0x11c4 // 11c4 <__subdf3> + 454: 6c83 mov r2, r0 + 456: 6cc7 mov r3, r1 + 458: 6c17 mov r0, r5 + 45a: 6c53 mov r1, r4 + 45c: e00006b4 bsr 0x11c4 // 11c4 <__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: e00006a3 bsr 0x11c4 // 11c4 <__subdf3> + 482: 9863 ld.w r3, (r14, 0xc) + 484: 3200 movi r2, 0 + 486: e00006bb bsr 0x11fc // 11fc <__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: e00006b3 bsr 0x11fc // 11fc <__muldf3> + 49a: 6c83 mov r2, r0 + 49c: 6cc7 mov r3, r1 + 49e: 6c1f mov r0, r7 + 4a0: 6c5b mov r1, r6 + 4a2: e0000679 bsr 0x1194 // 1194 <__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: e00006a5 bsr 0x11fc // 11fc <__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: e0000667 bsr 0x1194 // 1194 <__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: e0000687 bsr 0x11fc // 11fc <__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: e000067c bsr 0x11fc // 11fc <__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, 0xa754 // 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: e000063a bsr 0x11c4 // 11c4 <__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: e000061a bsr 0x1194 // 1194 <__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: e0000762 bsr 0x1430 // 1430 <__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: 0000a754 .long 0x0000a754 + 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: e000060a bsr 0x11fc // 11fc <__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: e00005fb bsr 0x11fc // 11fc <__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: e00005d9 bsr 0x11c4 // 11c4 <__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: e00005d1 bsr 0x11c4 // 11c4 <__subdf3> + 626: 6c83 mov r2, r0 + 628: 6cc7 mov r3, r1 + 62a: 6c13 mov r0, r4 + 62c: 6c5f mov r1, r7 + 62e: e00005cb bsr 0x11c4 // 11c4 <__subdf3> + 632: 6cdb mov r3, r6 + 634: 3200 movi r2, 0 + 636: e00005e3 bsr 0x11fc // 11fc <__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: e00005c1 bsr 0x11c4 // 11c4 <__subdf3> + 646: 984b ld.w r2, (r14, 0x2c) + 648: 986c ld.w r3, (r14, 0x30) + 64a: e00005d9 bsr 0x11fc // 11fc <__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: e00005d1 bsr 0x11fc // 11fc <__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: e00005c9 bsr 0x11fc // 11fc <__muldf3> + 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc> + 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900> + 676: e000058f bsr 0x1194 // 1194 <__adddf3> + 67a: 6c97 mov r2, r5 + 67c: 6cd3 mov r3, r4 + 67e: e00005bf bsr 0x11fc // 11fc <__muldf3> + 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904> + 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908> + 68a: e0000585 bsr 0x1194 // 1194 <__adddf3> + 68e: 6c97 mov r2, r5 + 690: 6cd3 mov r3, r4 + 692: e00005b5 bsr 0x11fc // 11fc <__muldf3> + 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c> + 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910> + 69e: e000057b bsr 0x1194 // 1194 <__adddf3> + 6a2: 6c97 mov r2, r5 + 6a4: 6cd3 mov r3, r4 + 6a6: e00005ab bsr 0x11fc // 11fc <__muldf3> + 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914> + 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918> + 6b2: e0000571 bsr 0x1194 // 1194 <__adddf3> + 6b6: 6c97 mov r2, r5 + 6b8: 6cd3 mov r3, r4 + 6ba: e00005a1 bsr 0x11fc // 11fc <__muldf3> + 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c> + 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920> + 6c6: e0000567 bsr 0x1194 // 1194 <__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: e0000593 bsr 0x11fc // 11fc <__muldf3> + 6da: 6c83 mov r2, r0 + 6dc: 6cc7 mov r3, r1 + 6de: 6c1f mov r0, r7 + 6e0: 9829 ld.w r1, (r14, 0x24) + 6e2: e000058d bsr 0x11fc // 11fc <__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: e0000551 bsr 0x1194 // 1194 <__adddf3> + 6f6: 9845 ld.w r2, (r14, 0x14) + 6f8: 9866 ld.w r3, (r14, 0x18) + 6fa: e0000581 bsr 0x11fc // 11fc <__muldf3> + 6fe: 6c97 mov r2, r5 + 700: 6cd3 mov r3, r4 + 702: e0000549 bsr 0x1194 // 1194 <__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: e0000575 bsr 0x11fc // 11fc <__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: e000053b bsr 0x1194 // 1194 <__adddf3> + 722: 6c97 mov r2, r5 + 724: 9869 ld.w r3, (r14, 0x24) + 726: e0000537 bsr 0x1194 // 1194 <__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: e0000564 bsr 0x11fc // 11fc <__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: e0000540 bsr 0x11c4 // 11c4 <__subdf3> + 748: 6c9f mov r2, r7 + 74a: 986a ld.w r3, (r14, 0x28) + 74c: e000053c bsr 0x11c4 // 11c4 <__subdf3> + 750: 6c83 mov r2, r0 + 752: 6cc7 mov r3, r1 + 754: 6c17 mov r0, r5 + 756: 9829 ld.w r1, (r14, 0x24) + 758: e0000536 bsr 0x11c4 // 11c4 <__subdf3> + 75c: 9843 ld.w r2, (r14, 0xc) + 75e: 6cdb mov r3, r6 + 760: e000054e bsr 0x11fc // 11fc <__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: e0000546 bsr 0x11fc // 11fc <__muldf3> + 774: 6c83 mov r2, r0 + 776: 6cc7 mov r3, r1 + 778: 6c1b mov r0, r6 + 77a: 6c57 mov r1, r5 + 77c: e000050c bsr 0x1194 // 1194 <__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: e0000504 bsr 0x1194 // 1194 <__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: e0000531 bsr 0x11fc // 11fc <__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: e000050d bsr 0x11c4 // 11c4 <__subdf3> + 7ae: 6c83 mov r2, r0 + 7b0: 6cc7 mov r3, r1 + 7b2: 6c1f mov r0, r7 + 7b4: 6c5b mov r1, r6 + 7b6: e0000507 bsr 0x11c4 // 11c4 <__subdf3> + 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c> + 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928> + 7be: e000051f bsr 0x11fc // 11fc <__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: e0000517 bsr 0x11fc // 11fc <__muldf3> + 7d2: 6c83 mov r2, r0 + 7d4: 6cc7 mov r3, r1 + 7d6: 6c1f mov r0, r7 + 7d8: 6c57 mov r1, r5 + 7da: e00004dd bsr 0x1194 // 1194 <__adddf3> + 7de: 01db lrw r6, 0xa754 // 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: e00004d6 bsr 0x1194 // 1194 <__adddf3> + 7ec: b809 st.w r0, (r14, 0x24) + 7ee: 9804 ld.w r0, (r14, 0x10) + 7f0: b82a st.w r1, (r14, 0x28) + 7f2: e0000723 bsr 0x1638 // 1638 <__floatsidf> + 7f6: 6d83 mov r6, r0 + 7f8: 0202 lrw r0, 0xa754 // 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: e00004c3 bsr 0x1194 // 1194 <__adddf3> + 812: 6c93 mov r2, r4 + 814: 6cdf mov r3, r7 + 816: e00004bf bsr 0x1194 // 1194 <__adddf3> + 81a: 6c9b mov r2, r6 + 81c: 6cd7 mov r3, r5 + 81e: e00004bb bsr 0x1194 // 1194 <__adddf3> + 822: 6c9b mov r2, r6 + 824: 6cd7 mov r3, r5 + 826: 3000 movi r0, 0 + 828: b823 st.w r1, (r14, 0xc) + 82a: e00004cd bsr 0x11c4 // 11c4 <__subdf3> + 82e: 6c93 mov r2, r4 + 830: 6cdf mov r3, r7 + 832: e00004c9 bsr 0x11c4 // 11c4 <__subdf3> + 836: 9845 ld.w r2, (r14, 0x14) + 838: 9866 ld.w r3, (r14, 0x18) + 83a: e00004c5 bsr 0x11c4 // 11c4 <__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: e000049c bsr 0x1194 // 1194 <__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: e00004ac bsr 0x11c4 // 11c4 <__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: e0000686 bsr 0x1584 // 1584 <__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: e000047c bsr 0x11c4 // 11c4 <__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: e000045c bsr 0x1194 // 1194 <__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: e000048a bsr 0x11fc // 11fc <__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: e0000466 bsr 0x11c4 // 11c4 <__subdf3> + 8fc: 6c83 mov r2, r0 + 8fe: 6cc7 mov r3, r1 + 900: 6c1f mov r0, r7 + 902: 6c5b mov r1, r6 + 904: e0000460 bsr 0x11c4 // 11c4 <__subdf3> + 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c> + 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960> + 90c: e0000478 bsr 0x11fc // 11fc <__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: e0000470 bsr 0x11fc // 11fc <__muldf3> + 920: 6c83 mov r2, r0 + 922: 6cc7 mov r3, r1 + 924: 6c1f mov r0, r7 + 926: 6c5b mov r1, r6 + 928: e0000436 bsr 0x1194 // 1194 <__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: e000042e bsr 0x1194 // 1194 <__adddf3> + 93c: 9842 ld.w r2, (r14, 0x8) + 93e: 6cd7 mov r3, r5 + 940: 6dc3 mov r7, r0 + 942: 6d87 mov r6, r1 + 944: e0000440 bsr 0x11c4 // 11c4 <__subdf3> + 948: 6c83 mov r2, r0 + 94a: 6cc7 mov r3, r1 + 94c: 9803 ld.w r0, (r14, 0xc) + 94e: 6c53 mov r1, r4 + 950: e000043a bsr 0x11c4 // 11c4 <__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: e000044e bsr 0x11fc // 11fc <__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: e0000448 bsr 0x11fc // 11fc <__muldf3> + 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974> + 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978> + 974: e0000428 bsr 0x11c4 // 11c4 <__subdf3> + 978: 6c97 mov r2, r5 + 97a: 6cd3 mov r3, r4 + 97c: e0000440 bsr 0x11fc // 11fc <__muldf3> + 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c> + 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980> + 984: e0000408 bsr 0x1194 // 1194 <__adddf3> + 988: 6c97 mov r2, r5 + 98a: 6cd3 mov r3, r4 + 98c: e0000438 bsr 0x11fc // 11fc <__muldf3> + 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984> + 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988> + 994: e0000418 bsr 0x11c4 // 11c4 <__subdf3> + 998: 6c97 mov r2, r5 + 99a: 6cd3 mov r3, r4 + 99c: e0000430 bsr 0x11fc // 11fc <__muldf3> + 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c> + 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990> + 9a4: e00003f8 bsr 0x1194 // 1194 <__adddf3> + 9a8: 6c97 mov r2, r5 + 9aa: 6cd3 mov r3, r4 + 9ac: e0000428 bsr 0x11fc // 11fc <__muldf3> + 9b0: 6c83 mov r2, r0 + 9b2: 6cc7 mov r3, r1 + 9b4: 6c1f mov r0, r7 + 9b6: 6c5b mov r1, r6 + 9b8: e0000406 bsr 0x11c4 // 11c4 <__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: e000041a bsr 0x11fc // 11fc <__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: e00003f5 bsr 0x11c4 // 11c4 <__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: e0000525 bsr 0x1430 // 1430 <__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: e0000403 bsr 0x11fc // 11fc <__muldf3> + 9fa: 9842 ld.w r2, (r14, 0x8) + 9fc: 9863 ld.w r3, (r14, 0xc) + 9fe: e00003cb bsr 0x1194 // 1194 <__adddf3> + a02: 6c83 mov r2, r0 + a04: 6cc7 mov r3, r1 + a06: 6c17 mov r0, r5 + a08: 6c53 mov r1, r4 + a0a: e00003dd bsr 0x11c4 // 11c4 <__subdf3> + a0e: 6c9f mov r2, r7 + a10: 6cdb mov r3, r6 + a12: e00003d9 bsr 0x11c4 // 11c4 <__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: e00003d3 bsr 0x11c4 // 11c4 <__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: e00003d1 bsr 0x11fc // 11fc <__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: e00003ab bsr 0x11c4 // 11c4 <__subdf3> + a72: 6c83 mov r2, r0 + a74: 6cc7 mov r3, r1 + a76: 6c1f mov r0, r7 + a78: 6c5b mov r1, r6 + a7a: e00005c1 bsr 0x15fc // 15fc <__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: 0000a754 .long 0x0000a754 + 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: e000032f bsr 0x11fc // 11fc <__muldf3> + ba2: 6c83 mov r2, r0 + ba4: 6cc7 mov r3, r1 + ba6: 6c17 mov r0, r5 + ba8: 6c53 mov r1, r4 + baa: e00002f5 bsr 0x1194 // 1194 <__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: e00002f8 bsr 0x11c4 // 11c4 <__subdf3> + bd8: 6c83 mov r2, r0 + bda: 6cc7 mov r3, r1 + bdc: e000042a bsr 0x1430 // 1430 <__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 <___gnu_csky_case_shi>: + d10: 1422 subi r14, r14, 8 + d12: b801 st.w r0, (r14, 0x4) + d14: b820 st.w r1, (r14, 0x0) + d16: 6c7f mov r1, r15 + d18: 4001 lsli r0, r0, 1 + d1a: 6040 addu r1, r0 + d1c: 8920 ld.h r1, (r1, 0x0) + d1e: 7447 sexth r1, r1 + d20: 4121 lsli r1, r1, 1 + d22: 63c4 addu r15, r1 + d24: 9801 ld.w r0, (r14, 0x4) + d26: 9820 ld.w r1, (r14, 0x0) + d28: 1402 addi r14, r14, 8 + d2a: 783c jmp r15 + +00000d2c <___gnu_csky_case_uhi>: + d2c: 1422 subi r14, r14, 8 + d2e: b801 st.w r0, (r14, 0x4) + d30: b820 st.w r1, (r14, 0x0) + d32: 6c7f mov r1, r15 + d34: 4001 lsli r0, r0, 1 + d36: 6040 addu r1, r0 + d38: 8920 ld.h r1, (r1, 0x0) + d3a: 4121 lsli r1, r1, 1 + d3c: 63c4 addu r15, r1 + d3e: 9801 ld.w r0, (r14, 0x4) + d40: 9820 ld.w r1, (r14, 0x0) + d42: 1402 addi r14, r14, 8 + d44: 783c jmp r15 + ... + +00000d48 <__fixunsdfsi>: + d48: 14d2 push r4-r5, r15 + d4a: 3200 movi r2, 0 + d4c: 106c lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d4e: 6d43 mov r5, r0 + d50: 6d07 mov r4, r1 + d52: e0000437 bsr 0x15c0 // 15c0 <__gedf2> + d56: 38df btsti r0, 31 + d58: 0c06 bf 0xd64 // d64 <__fixunsdfsi+0x1c> + d5a: 6c17 mov r0, r5 + d5c: 6c53 mov r1, r4 + d5e: e00004a5 bsr 0x16a8 // 16a8 <__fixdfsi> + d62: 1492 pop r4-r5, r15 + d64: 3200 movi r2, 0 + d66: 1066 lrw r3, 0x41e00000 // d7c <__fixunsdfsi+0x34> + d68: 6c17 mov r0, r5 + d6a: 6c53 mov r1, r4 + d6c: e000022c bsr 0x11c4 // 11c4 <__subdf3> + d70: e000049c bsr 0x16a8 // 16a8 <__fixdfsi> + d74: 3380 movi r3, 128 + d76: 4378 lsli r3, r3, 24 + d78: 600c addu r0, r3 + d7a: 1492 pop r4-r5, r15 + d7c: 41e00000 .long 0x41e00000 + +00000d80 <__divsf3>: + d80: 14d1 push r4, r15 + d82: 142a subi r14, r14, 40 + d84: b800 st.w r0, (r14, 0x0) + d86: b821 st.w r1, (r14, 0x4) + d88: 6c3b mov r0, r14 + d8a: 1902 addi r1, r14, 8 + d8c: e00005a2 bsr 0x18d0 // 18d0 <__unpack_f> + d90: 1906 addi r1, r14, 24 + d92: 1801 addi r0, r14, 4 + d94: e000059e bsr 0x18d0 // 18d0 <__unpack_f> + d98: 9862 ld.w r3, (r14, 0x8) + d9a: 3b01 cmphsi r3, 2 + d9c: 0c2c bf 0xdf4 // df4 <__divsf3+0x74> + d9e: 9826 ld.w r1, (r14, 0x18) + da0: 3901 cmphsi r1, 2 + da2: 0c48 bf 0xe32 // e32 <__divsf3+0xb2> + da4: 9843 ld.w r2, (r14, 0xc) + da6: 9807 ld.w r0, (r14, 0x1c) + da8: 6c81 xor r2, r0 + daa: 3b44 cmpnei r3, 4 + dac: b843 st.w r2, (r14, 0xc) + dae: 0c28 bf 0xdfe // dfe <__divsf3+0x7e> + db0: 3b42 cmpnei r3, 2 + db2: 0c26 bf 0xdfe // dfe <__divsf3+0x7e> + db4: 3944 cmpnei r1, 4 + db6: 0c2c bf 0xe0e // e0e <__divsf3+0x8e> + db8: 3942 cmpnei r1, 2 + dba: 0c38 bf 0xe2a // e2a <__divsf3+0xaa> + dbc: 9844 ld.w r2, (r14, 0x10) + dbe: 9868 ld.w r3, (r14, 0x20) + dc0: 608e subu r2, r3 + dc2: 9809 ld.w r0, (r14, 0x24) + dc4: 9865 ld.w r3, (r14, 0x14) + dc6: 640c cmphs r3, r0 + dc8: b844 st.w r2, (r14, 0x10) + dca: 0c1e bf 0xe06 // e06 <__divsf3+0x86> + dcc: 3180 movi r1, 128 + dce: 321f movi r2, 31 + dd0: 3400 movi r4, 0 + dd2: 4137 lsli r1, r1, 23 + dd4: 640c cmphs r3, r0 + dd6: 0c03 bf 0xddc // ddc <__divsf3+0x5c> + dd8: 6d04 or r4, r1 + dda: 60c2 subu r3, r0 + ddc: 2a00 subi r2, 1 + dde: 3a40 cmpnei r2, 0 + de0: 4921 lsri r1, r1, 1 + de2: 4361 lsli r3, r3, 1 + de4: 0bf8 bt 0xdd4 // dd4 <__divsf3+0x54> + de6: 317f movi r1, 127 + de8: 6c93 mov r2, r4 + dea: 6884 and r2, r1 + dec: 3040 movi r0, 64 + dee: 640a cmpne r2, r0 + df0: 0c14 bf 0xe18 // e18 <__divsf3+0x98> + df2: b885 st.w r4, (r14, 0x14) + df4: 1802 addi r0, r14, 8 + df6: e0000511 bsr 0x1818 // 1818 <__pack_f> + dfa: 140a addi r14, r14, 40 + dfc: 1491 pop r4, r15 + dfe: 644e cmpne r3, r1 + e00: 0bfa bt 0xdf4 // df4 <__divsf3+0x74> + e02: 100e lrw r0, 0xa784 // e38 <__divsf3+0xb8> + e04: 07f9 br 0xdf6 // df6 <__divsf3+0x76> + e06: 2a00 subi r2, 1 + e08: 4361 lsli r3, r3, 1 + e0a: b844 st.w r2, (r14, 0x10) + e0c: 07e0 br 0xdcc // dcc <__divsf3+0x4c> + e0e: 3300 movi r3, 0 + e10: b865 st.w r3, (r14, 0x14) + e12: b864 st.w r3, (r14, 0x10) + e14: 1802 addi r0, r14, 8 + e16: 07f0 br 0xdf6 // df6 <__divsf3+0x76> + e18: 3080 movi r0, 128 + e1a: 6810 and r0, r4 + e1c: 3840 cmpnei r0, 0 + e1e: 0bea bt 0xdf2 // df2 <__divsf3+0x72> + e20: 3b40 cmpnei r3, 0 + e22: 0fe8 bf 0xdf2 // df2 <__divsf3+0x72> + e24: 6108 addu r4, r2 + e26: 6905 andn r4, r1 + e28: 07e5 br 0xdf2 // df2 <__divsf3+0x72> + e2a: 3304 movi r3, 4 + e2c: b862 st.w r3, (r14, 0x8) + e2e: 1802 addi r0, r14, 8 + e30: 07e3 br 0xdf6 // df6 <__divsf3+0x76> + e32: 1806 addi r0, r14, 24 + e34: 07e1 br 0xdf6 // df6 <__divsf3+0x76> + e36: 0000 bkpt + e38: 0000a784 .long 0x0000a784 + +00000e3c <__extendsfdf2>: + e3c: 14d1 push r4, r15 + e3e: 1426 subi r14, r14, 24 + e40: b801 st.w r0, (r14, 0x4) + e42: 1902 addi r1, r14, 8 + e44: 1801 addi r0, r14, 4 + e46: e0000545 bsr 0x18d0 // 18d0 <__unpack_f> + e4a: 9865 ld.w r3, (r14, 0x14) + e4c: 4b82 lsri r4, r3, 2 + e4e: 9844 ld.w r2, (r14, 0x10) + e50: 437e lsli r3, r3, 30 + e52: 9823 ld.w r1, (r14, 0xc) + e54: 9802 ld.w r0, (r14, 0x8) + e56: b880 st.w r4, (r14, 0x0) + e58: e0000460 bsr 0x1718 // 1718 <__make_dp> + e5c: 1406 addi r14, r14, 24 + e5e: 1491 pop r4, r15 + +00000e60 <__floatunsisf>: + e60: 14d2 push r4-r5, r15 + e62: 1424 subi r14, r14, 16 + e64: 3840 cmpnei r0, 0 + e66: 3300 movi r3, 0 + e68: 6d03 mov r4, r0 + e6a: b861 st.w r3, (r14, 0x4) + e6c: 0c15 bf 0xe96 // e96 <__floatunsisf+0x36> + e6e: 3303 movi r3, 3 + e70: 351e movi r5, 30 + e72: b860 st.w r3, (r14, 0x0) + e74: b8a2 st.w r5, (r14, 0x8) + e76: e00004b1 bsr 0x17d8 // 17d8 <__clzsi2> + e7a: 3840 cmpnei r0, 0 + e7c: 5863 subi r3, r0, 1 + e7e: 0c13 bf 0xea4 // ea4 <__floatunsisf+0x44> + e80: 3b40 cmpnei r3, 0 + e82: 0c1d bf 0xebc // ebc <__floatunsisf+0x5c> + e84: 710c lsl r4, r3 + e86: 614e subu r5, r3 + e88: b883 st.w r4, (r14, 0xc) + e8a: b8a2 st.w r5, (r14, 0x8) + e8c: 6c3b mov r0, r14 + e8e: e00004c5 bsr 0x1818 // 1818 <__pack_f> + e92: 1404 addi r14, r14, 16 + e94: 1492 pop r4-r5, r15 + e96: 3302 movi r3, 2 + e98: 6c3b mov r0, r14 + e9a: b860 st.w r3, (r14, 0x0) + e9c: e00004be bsr 0x1818 // 1818 <__pack_f> + ea0: 1404 addi r14, r14, 16 + ea2: 1492 pop r4-r5, r15 + ea4: 3301 movi r3, 1 + ea6: 68d0 and r3, r4 + ea8: 4c81 lsri r4, r4, 1 + eaa: 6d0c or r4, r3 + eac: 6c3b mov r0, r14 + eae: 331f movi r3, 31 + eb0: b883 st.w r4, (r14, 0xc) + eb2: b862 st.w r3, (r14, 0x8) + eb4: e00004b2 bsr 0x1818 // 1818 <__pack_f> + eb8: 1404 addi r14, r14, 16 + eba: 1492 pop r4-r5, r15 + ebc: b883 st.w r4, (r14, 0xc) + ebe: 07e7 br 0xe8c // e8c <__floatunsisf+0x2c> + +00000ec0 <_fpadd_parts>: + ec0: 14c4 push r4-r7 + ec2: 142a subi r14, r14, 40 + ec4: 9060 ld.w r3, (r0, 0x0) + ec6: 3b01 cmphsi r3, 2 + ec8: 6dcb mov r7, r2 + eca: 0c67 bf 0xf98 // f98 <_fpadd_parts+0xd8> + ecc: 9140 ld.w r2, (r1, 0x0) + ece: 3a01 cmphsi r2, 2 + ed0: 0c66 bf 0xf9c // f9c <_fpadd_parts+0xdc> + ed2: 3b44 cmpnei r3, 4 + ed4: 0cde bf 0x1090 // 1090 <_fpadd_parts+0x1d0> + ed6: 3a44 cmpnei r2, 4 + ed8: 0c62 bf 0xf9c // f9c <_fpadd_parts+0xdc> + eda: 3a42 cmpnei r2, 2 + edc: 0cb7 bf 0x104a // 104a <_fpadd_parts+0x18a> + ede: 3b42 cmpnei r3, 2 + ee0: 0c5e bf 0xf9c // f9c <_fpadd_parts+0xdc> + ee2: 9043 ld.w r2, (r0, 0xc) + ee4: 9064 ld.w r3, (r0, 0x10) + ee6: 9082 ld.w r4, (r0, 0x8) + ee8: 91a2 ld.w r5, (r1, 0x8) + eea: b842 st.w r2, (r14, 0x8) + eec: b863 st.w r3, (r14, 0xc) + eee: 9143 ld.w r2, (r1, 0xc) + ef0: 9164 ld.w r3, (r1, 0x10) + ef2: b840 st.w r2, (r14, 0x0) + ef4: b861 st.w r3, (r14, 0x4) + ef6: 5c75 subu r3, r4, r5 + ef8: 3bdf btsti r3, 31 + efa: 6c8f mov r2, r3 + efc: 08d2 bt 0x10a0 // 10a0 <_fpadd_parts+0x1e0> + efe: 363f movi r6, 63 + f00: 6499 cmplt r6, r2 + f02: 0c50 bf 0xfa2 // fa2 <_fpadd_parts+0xe2> + f04: 6515 cmplt r5, r4 + f06: 0cbf bf 0x1084 // 1084 <_fpadd_parts+0x1c4> + f08: 3200 movi r2, 0 + f0a: 3300 movi r3, 0 + f0c: b840 st.w r2, (r14, 0x0) + f0e: b861 st.w r3, (r14, 0x4) + f10: 9061 ld.w r3, (r0, 0x4) + f12: 9141 ld.w r2, (r1, 0x4) + f14: 648e cmpne r3, r2 + f16: 0c78 bf 0x1006 // 1006 <_fpadd_parts+0x146> + f18: 3b40 cmpnei r3, 0 + f1a: 0cad bf 0x1074 // 1074 <_fpadd_parts+0x1b4> + f1c: 9800 ld.w r0, (r14, 0x0) + f1e: 9821 ld.w r1, (r14, 0x4) + f20: 9842 ld.w r2, (r14, 0x8) + f22: 9863 ld.w r3, (r14, 0xc) + f24: 6400 cmphs r0, r0 + f26: 600b subc r0, r2 + f28: 604f subc r1, r3 + f2a: 39df btsti r1, 31 + f2c: 08bd bt 0x10a6 // 10a6 <_fpadd_parts+0x1e6> + f2e: 3300 movi r3, 0 + f30: b761 st.w r3, (r7, 0x4) + f32: b782 st.w r4, (r7, 0x8) + f34: 6c83 mov r2, r0 + f36: 6cc7 mov r3, r1 + f38: b703 st.w r0, (r7, 0xc) + f3a: b724 st.w r1, (r7, 0x10) + f3c: 3000 movi r0, 0 + f3e: 3100 movi r1, 0 + f40: 2800 subi r0, 1 + f42: 2900 subi r1, 1 + f44: 6401 cmplt r0, r0 + f46: 6009 addc r0, r2 + f48: 604d addc r1, r3 + f4a: 038f lrw r4, 0xfffffff // 1188 <_fpadd_parts+0x2c8> + f4c: 6450 cmphs r4, r1 + f4e: 0c67 bf 0x101c // 101c <_fpadd_parts+0x15c> + f50: 6506 cmpne r1, r4 + f52: 0cfd bf 0x114c // 114c <_fpadd_parts+0x28c> + f54: 3000 movi r0, 0 + f56: 9722 ld.w r1, (r7, 0x8) + f58: 2801 subi r0, 2 + f5a: 2900 subi r1, 1 + f5c: 03d4 lrw r6, 0xfffffff // 1188 <_fpadd_parts+0x2c8> + f5e: b802 st.w r0, (r14, 0x8) + f60: b8e0 st.w r7, (r14, 0x0) + f62: 0403 br 0xf68 // f68 <_fpadd_parts+0xa8> + f64: 6596 cmpne r5, r6 + f66: 0c83 bf 0x106c // 106c <_fpadd_parts+0x1ac> + f68: 4301 lsli r0, r3, 1 + f6a: 4a9f lsri r4, r2, 31 + f6c: 6d00 or r4, r0 + f6e: 42a1 lsli r5, r2, 1 + f70: 6c97 mov r2, r5 + f72: 6cd3 mov r3, r4 + f74: 3500 movi r5, 0 + f76: 3400 movi r4, 0 + f78: 2c00 subi r4, 1 + f7a: 2d00 subi r5, 1 + f7c: 6511 cmplt r4, r4 + f7e: 6109 addc r4, r2 + f80: 614d addc r5, r3 + f82: 6558 cmphs r6, r5 + f84: 6c07 mov r0, r1 + f86: 2900 subi r1, 1 + f88: 0bee bt 0xf64 // f64 <_fpadd_parts+0xa4> + f8a: 98e0 ld.w r7, (r14, 0x0) + f8c: b743 st.w r2, (r7, 0xc) + f8e: b764 st.w r3, (r7, 0x10) + f90: 3303 movi r3, 3 + f92: b702 st.w r0, (r7, 0x8) + f94: b760 st.w r3, (r7, 0x0) + f96: 6c1f mov r0, r7 + f98: 140a addi r14, r14, 40 + f9a: 1484 pop r4-r7 + f9c: 6c07 mov r0, r1 + f9e: 140a addi r14, r14, 40 + fa0: 1484 pop r4-r7 + fa2: 3b20 cmplti r3, 1 + fa4: 088c bt 0x10bc // 10bc <_fpadd_parts+0x1fc> + fa6: 3300 movi r3, 0 + fa8: 2b1f subi r3, 32 + faa: 60c8 addu r3, r2 + fac: 3bdf btsti r3, 31 + fae: b866 st.w r3, (r14, 0x18) + fb0: 08bb bt 0x1126 // 1126 <_fpadd_parts+0x266> + fb2: 98a1 ld.w r5, (r14, 0x4) + fb4: 714d lsr r5, r3 + fb6: b8a4 st.w r5, (r14, 0x10) + fb8: 3500 movi r5, 0 + fba: b8a5 st.w r5, (r14, 0x14) + fbc: 9866 ld.w r3, (r14, 0x18) + fbe: 3bdf btsti r3, 31 + fc0: 3500 movi r5, 0 + fc2: 3600 movi r6, 0 + fc4: 08ad bt 0x111e // 111e <_fpadd_parts+0x25e> + fc6: 3201 movi r2, 1 + fc8: 708c lsl r2, r3 + fca: 6d8b mov r6, r2 + fcc: 3200 movi r2, 0 + fce: 3300 movi r3, 0 + fd0: 2a00 subi r2, 1 + fd2: 2b00 subi r3, 1 + fd4: 6489 cmplt r2, r2 + fd6: 6095 addc r2, r5 + fd8: 60d9 addc r3, r6 + fda: 98a0 ld.w r5, (r14, 0x0) + fdc: 98c1 ld.w r6, (r14, 0x4) + fde: 6948 and r5, r2 + fe0: 698c and r6, r3 + fe2: 6c97 mov r2, r5 + fe4: 6cdb mov r3, r6 + fe6: 6c8c or r2, r3 + fe8: 3a40 cmpnei r2, 0 + fea: 3500 movi r5, 0 + fec: 6155 addc r5, r5 + fee: 6c97 mov r2, r5 + ff0: 3300 movi r3, 0 + ff2: 98a4 ld.w r5, (r14, 0x10) + ff4: 98c5 ld.w r6, (r14, 0x14) + ff6: 6d48 or r5, r2 + ff8: 6d8c or r6, r3 + ffa: 9061 ld.w r3, (r0, 0x4) + ffc: 9141 ld.w r2, (r1, 0x4) + ffe: 648e cmpne r3, r2 + 1000: b8a0 st.w r5, (r14, 0x0) + 1002: b8c1 st.w r6, (r14, 0x4) + 1004: 0b8a bt 0xf18 // f18 <_fpadd_parts+0x58> + 1006: b761 st.w r3, (r7, 0x4) + 1008: 9800 ld.w r0, (r14, 0x0) + 100a: 9821 ld.w r1, (r14, 0x4) + 100c: 9842 ld.w r2, (r14, 0x8) + 100e: 9863 ld.w r3, (r14, 0xc) + 1010: 6489 cmplt r2, r2 + 1012: 6081 addc r2, r0 + 1014: 60c5 addc r3, r1 + 1016: b782 st.w r4, (r7, 0x8) + 1018: b743 st.w r2, (r7, 0xc) + 101a: b764 st.w r3, (r7, 0x10) + 101c: 3103 movi r1, 3 + 101e: b720 st.w r1, (r7, 0x0) + 1020: 123b lrw r1, 0x1fffffff // 118c <_fpadd_parts+0x2cc> + 1022: 64c4 cmphs r1, r3 + 1024: 0810 bt 0x1044 // 1044 <_fpadd_parts+0x184> + 1026: 439f lsli r4, r3, 31 + 1028: 4a01 lsri r0, r2, 1 + 102a: 6c10 or r0, r4 + 102c: 3500 movi r5, 0 + 102e: 3401 movi r4, 1 + 1030: 4b21 lsri r1, r3, 1 + 1032: 6890 and r2, r4 + 1034: 68d4 and r3, r5 + 1036: 6c80 or r2, r0 + 1038: 6cc4 or r3, r1 + 103a: b743 st.w r2, (r7, 0xc) + 103c: b764 st.w r3, (r7, 0x10) + 103e: 9762 ld.w r3, (r7, 0x8) + 1040: 2300 addi r3, 1 + 1042: b762 st.w r3, (r7, 0x8) + 1044: 6c1f mov r0, r7 + 1046: 140a addi r14, r14, 40 + 1048: 1484 pop r4-r7 + 104a: 3b42 cmpnei r3, 2 + 104c: 0ba6 bt 0xf98 // f98 <_fpadd_parts+0xd8> + 104e: b760 st.w r3, (r7, 0x0) + 1050: 9061 ld.w r3, (r0, 0x4) + 1052: b761 st.w r3, (r7, 0x4) + 1054: 9062 ld.w r3, (r0, 0x8) + 1056: b762 st.w r3, (r7, 0x8) + 1058: 9063 ld.w r3, (r0, 0xc) + 105a: b763 st.w r3, (r7, 0xc) + 105c: 9064 ld.w r3, (r0, 0x10) + 105e: 9141 ld.w r2, (r1, 0x4) + 1060: b764 st.w r3, (r7, 0x10) + 1062: 9061 ld.w r3, (r0, 0x4) + 1064: 68c8 and r3, r2 + 1066: b761 st.w r3, (r7, 0x4) + 1068: 6c1f mov r0, r7 + 106a: 0797 br 0xf98 // f98 <_fpadd_parts+0xd8> + 106c: 98e2 ld.w r7, (r14, 0x8) + 106e: 651c cmphs r7, r4 + 1070: 0b7c bt 0xf68 // f68 <_fpadd_parts+0xa8> + 1072: 078c br 0xf8a // f8a <_fpadd_parts+0xca> + 1074: 9802 ld.w r0, (r14, 0x8) + 1076: 9823 ld.w r1, (r14, 0xc) + 1078: 9840 ld.w r2, (r14, 0x0) + 107a: 9861 ld.w r3, (r14, 0x4) + 107c: 6400 cmphs r0, r0 + 107e: 600b subc r0, r2 + 1080: 604f subc r1, r3 + 1082: 0754 br 0xf2a // f2a <_fpadd_parts+0x6a> + 1084: 3200 movi r2, 0 + 1086: 3300 movi r3, 0 + 1088: 6d17 mov r4, r5 + 108a: b842 st.w r2, (r14, 0x8) + 108c: b863 st.w r3, (r14, 0xc) + 108e: 0741 br 0xf10 // f10 <_fpadd_parts+0x50> + 1090: 3a44 cmpnei r2, 4 + 1092: 0b83 bt 0xf98 // f98 <_fpadd_parts+0xd8> + 1094: 9041 ld.w r2, (r0, 0x4) + 1096: 9161 ld.w r3, (r1, 0x4) + 1098: 64ca cmpne r2, r3 + 109a: 0f7f bf 0xf98 // f98 <_fpadd_parts+0xd8> + 109c: 111d lrw r0, 0xa794 // 1190 <_fpadd_parts+0x2d0> + 109e: 077d br 0xf98 // f98 <_fpadd_parts+0xd8> + 10a0: 3200 movi r2, 0 + 10a2: 608e subu r2, r3 + 10a4: 072d br 0xefe // efe <_fpadd_parts+0x3e> + 10a6: 3301 movi r3, 1 + 10a8: b761 st.w r3, (r7, 0x4) + 10aa: 3200 movi r2, 0 + 10ac: 3300 movi r3, 0 + 10ae: 6488 cmphs r2, r2 + 10b0: 6083 subc r2, r0 + 10b2: 60c7 subc r3, r1 + 10b4: b782 st.w r4, (r7, 0x8) + 10b6: b743 st.w r2, (r7, 0xc) + 10b8: b764 st.w r3, (r7, 0x10) + 10ba: 0741 br 0xf3c // f3c <_fpadd_parts+0x7c> + 10bc: 3b40 cmpnei r3, 0 + 10be: 0f29 bf 0xf10 // f10 <_fpadd_parts+0x50> + 10c0: 3300 movi r3, 0 + 10c2: 2b1f subi r3, 32 + 10c4: 60c8 addu r3, r2 + 10c6: 3bdf btsti r3, 31 + 10c8: 6108 addu r4, r2 + 10ca: b866 st.w r3, (r14, 0x18) + 10cc: 0849 bt 0x115e // 115e <_fpadd_parts+0x29e> + 10ce: 9863 ld.w r3, (r14, 0xc) + 10d0: 98a6 ld.w r5, (r14, 0x18) + 10d2: 70d5 lsr r3, r5 + 10d4: b864 st.w r3, (r14, 0x10) + 10d6: 3300 movi r3, 0 + 10d8: b865 st.w r3, (r14, 0x14) + 10da: 9866 ld.w r3, (r14, 0x18) + 10dc: 3bdf btsti r3, 31 + 10de: 3500 movi r5, 0 + 10e0: 3600 movi r6, 0 + 10e2: 083a bt 0x1156 // 1156 <_fpadd_parts+0x296> + 10e4: 3201 movi r2, 1 + 10e6: 708c lsl r2, r3 + 10e8: 6d8b mov r6, r2 + 10ea: 3200 movi r2, 0 + 10ec: 3300 movi r3, 0 + 10ee: 2a00 subi r2, 1 + 10f0: 2b00 subi r3, 1 + 10f2: 6489 cmplt r2, r2 + 10f4: 6095 addc r2, r5 + 10f6: 60d9 addc r3, r6 + 10f8: 98a2 ld.w r5, (r14, 0x8) + 10fa: 98c3 ld.w r6, (r14, 0xc) + 10fc: 6948 and r5, r2 + 10fe: 698c and r6, r3 + 1100: 6c97 mov r2, r5 + 1102: 6cdb mov r3, r6 + 1104: 6c8c or r2, r3 + 1106: 3a40 cmpnei r2, 0 + 1108: 3500 movi r5, 0 + 110a: 6155 addc r5, r5 + 110c: 6c97 mov r2, r5 + 110e: 3300 movi r3, 0 + 1110: 98a4 ld.w r5, (r14, 0x10) + 1112: 98c5 ld.w r6, (r14, 0x14) + 1114: 6d48 or r5, r2 + 1116: 6d8c or r6, r3 + 1118: b8a2 st.w r5, (r14, 0x8) + 111a: b8c3 st.w r6, (r14, 0xc) + 111c: 06fa br 0xf10 // f10 <_fpadd_parts+0x50> + 111e: 3301 movi r3, 1 + 1120: 70c8 lsl r3, r2 + 1122: 6d4f mov r5, r3 + 1124: 0754 br 0xfcc // fcc <_fpadd_parts+0x10c> + 1126: 9861 ld.w r3, (r14, 0x4) + 1128: 361f movi r6, 31 + 112a: 43a1 lsli r5, r3, 1 + 112c: 618a subu r6, r2 + 112e: 7158 lsl r5, r6 + 1130: b8a9 st.w r5, (r14, 0x24) + 1132: 98a0 ld.w r5, (r14, 0x0) + 1134: 98c1 ld.w r6, (r14, 0x4) + 1136: b8a7 st.w r5, (r14, 0x1c) + 1138: b8c8 st.w r6, (r14, 0x20) + 113a: 9867 ld.w r3, (r14, 0x1c) + 113c: 70c9 lsr r3, r2 + 113e: 98a9 ld.w r5, (r14, 0x24) + 1140: 6cd4 or r3, r5 + 1142: b864 st.w r3, (r14, 0x10) + 1144: 9868 ld.w r3, (r14, 0x20) + 1146: 70c9 lsr r3, r2 + 1148: b865 st.w r3, (r14, 0x14) + 114a: 0739 br 0xfbc // fbc <_fpadd_parts+0xfc> + 114c: 3100 movi r1, 0 + 114e: 2901 subi r1, 2 + 1150: 6404 cmphs r1, r0 + 1152: 0b01 bt 0xf54 // f54 <_fpadd_parts+0x94> + 1154: 0764 br 0x101c // 101c <_fpadd_parts+0x15c> + 1156: 3301 movi r3, 1 + 1158: 70c8 lsl r3, r2 + 115a: 6d4f mov r5, r3 + 115c: 07c7 br 0x10ea // 10ea <_fpadd_parts+0x22a> + 115e: 9863 ld.w r3, (r14, 0xc) + 1160: 43c1 lsli r6, r3, 1 + 1162: 351f movi r5, 31 + 1164: 5d69 subu r3, r5, r2 + 1166: 6d5b mov r5, r6 + 1168: 714c lsl r5, r3 + 116a: b8a9 st.w r5, (r14, 0x24) + 116c: 98a2 ld.w r5, (r14, 0x8) + 116e: 98c3 ld.w r6, (r14, 0xc) + 1170: b8a7 st.w r5, (r14, 0x1c) + 1172: b8c8 st.w r6, (r14, 0x20) + 1174: 9867 ld.w r3, (r14, 0x1c) + 1176: 70c9 lsr r3, r2 + 1178: 98a9 ld.w r5, (r14, 0x24) + 117a: 6cd4 or r3, r5 + 117c: b864 st.w r3, (r14, 0x10) + 117e: 9868 ld.w r3, (r14, 0x20) + 1180: 70c9 lsr r3, r2 + 1182: b865 st.w r3, (r14, 0x14) + 1184: 07ab br 0x10da // 10da <_fpadd_parts+0x21a> + 1186: 0000 bkpt + 1188: 0fffffff .long 0x0fffffff + 118c: 1fffffff .long 0x1fffffff + 1190: 0000a794 .long 0x0000a794 + +00001194 <__adddf3>: + 1194: 14d0 push r15 + 1196: 1433 subi r14, r14, 76 + 1198: b800 st.w r0, (r14, 0x0) + 119a: b821 st.w r1, (r14, 0x4) + 119c: 6c3b mov r0, r14 + 119e: 1904 addi r1, r14, 16 + 11a0: b863 st.w r3, (r14, 0xc) + 11a2: b842 st.w r2, (r14, 0x8) + 11a4: e00004a6 bsr 0x1af0 // 1af0 <__unpack_d> + 11a8: 1909 addi r1, r14, 36 + 11aa: 1802 addi r0, r14, 8 + 11ac: e00004a2 bsr 0x1af0 // 1af0 <__unpack_d> + 11b0: 1a0e addi r2, r14, 56 + 11b2: 1909 addi r1, r14, 36 + 11b4: 1804 addi r0, r14, 16 + 11b6: e3fffe85 bsr 0xec0 // ec0 <_fpadd_parts> + 11ba: e00003cd bsr 0x1954 // 1954 <__pack_d> + 11be: 1413 addi r14, r14, 76 + 11c0: 1490 pop r15 + ... + +000011c4 <__subdf3>: + 11c4: 14d0 push r15 + 11c6: 1433 subi r14, r14, 76 + 11c8: b800 st.w r0, (r14, 0x0) + 11ca: b821 st.w r1, (r14, 0x4) + 11cc: 6c3b mov r0, r14 + 11ce: 1904 addi r1, r14, 16 + 11d0: b842 st.w r2, (r14, 0x8) + 11d2: b863 st.w r3, (r14, 0xc) + 11d4: e000048e bsr 0x1af0 // 1af0 <__unpack_d> + 11d8: 1909 addi r1, r14, 36 + 11da: 1802 addi r0, r14, 8 + 11dc: e000048a bsr 0x1af0 // 1af0 <__unpack_d> + 11e0: 986a ld.w r3, (r14, 0x28) + 11e2: 3201 movi r2, 1 + 11e4: 6cc9 xor r3, r2 + 11e6: 1909 addi r1, r14, 36 + 11e8: 1a0e addi r2, r14, 56 + 11ea: 1804 addi r0, r14, 16 + 11ec: b86a st.w r3, (r14, 0x28) + 11ee: e3fffe69 bsr 0xec0 // ec0 <_fpadd_parts> + 11f2: e00003b1 bsr 0x1954 // 1954 <__pack_d> + 11f6: 1413 addi r14, r14, 76 + 11f8: 1490 pop r15 + ... + +000011fc <__muldf3>: + 11fc: 14d4 push r4-r7, r15 + 11fe: 143b subi r14, r14, 108 + 1200: b808 st.w r0, (r14, 0x20) + 1202: b829 st.w r1, (r14, 0x24) + 1204: 1808 addi r0, r14, 32 + 1206: 190c addi r1, r14, 48 + 1208: b86b st.w r3, (r14, 0x2c) + 120a: b84a st.w r2, (r14, 0x28) + 120c: e0000472 bsr 0x1af0 // 1af0 <__unpack_d> + 1210: 1911 addi r1, r14, 68 + 1212: 180a addi r0, r14, 40 + 1214: e000046e bsr 0x1af0 // 1af0 <__unpack_d> + 1218: 986c ld.w r3, (r14, 0x30) + 121a: 3b01 cmphsi r3, 2 + 121c: 0cac bf 0x1374 // 1374 <__muldf3+0x178> + 121e: 9851 ld.w r2, (r14, 0x44) + 1220: 3a01 cmphsi r2, 2 + 1222: 0c9c bf 0x135a // 135a <__muldf3+0x15e> + 1224: 3b44 cmpnei r3, 4 + 1226: 0ca5 bf 0x1370 // 1370 <__muldf3+0x174> + 1228: 3a44 cmpnei r2, 4 + 122a: 0c96 bf 0x1356 // 1356 <__muldf3+0x15a> + 122c: 3b42 cmpnei r3, 2 + 122e: 0ca3 bf 0x1374 // 1374 <__muldf3+0x178> + 1230: 3a42 cmpnei r2, 2 + 1232: 0c94 bf 0x135a // 135a <__muldf3+0x15e> + 1234: 98ef ld.w r7, (r14, 0x3c) + 1236: 98b4 ld.w r5, (r14, 0x50) + 1238: 9875 ld.w r3, (r14, 0x54) + 123a: 6d8f mov r6, r3 + 123c: 6c9f mov r2, r7 + 123e: 3300 movi r3, 0 + 1240: 6c17 mov r0, r5 + 1242: 3100 movi r1, 0 + 1244: e00002a8 bsr 0x1794 // 1794 <__muldi3> + 1248: b804 st.w r0, (r14, 0x10) + 124a: b825 st.w r1, (r14, 0x14) + 124c: 6c9f mov r2, r7 + 124e: 3300 movi r3, 0 + 1250: 6c1b mov r0, r6 + 1252: 3100 movi r1, 0 + 1254: 9890 ld.w r4, (r14, 0x40) + 1256: b8c2 st.w r6, (r14, 0x8) + 1258: e000029e bsr 0x1794 // 1794 <__muldi3> + 125c: 6d83 mov r6, r0 + 125e: 6dc7 mov r7, r1 + 1260: 9842 ld.w r2, (r14, 0x8) + 1262: 3300 movi r3, 0 + 1264: 6c13 mov r0, r4 + 1266: 3100 movi r1, 0 + 1268: e0000296 bsr 0x1794 // 1794 <__muldi3> + 126c: b806 st.w r0, (r14, 0x18) + 126e: b827 st.w r1, (r14, 0x1c) + 1270: 6c97 mov r2, r5 + 1272: 3300 movi r3, 0 + 1274: 6c13 mov r0, r4 + 1276: 3100 movi r1, 0 + 1278: e000028e bsr 0x1794 // 1794 <__muldi3> + 127c: 6401 cmplt r0, r0 + 127e: 6019 addc r0, r6 + 1280: 605d addc r1, r7 + 1282: 65c4 cmphs r1, r7 + 1284: 0c91 bf 0x13a6 // 13a6 <__muldf3+0x1aa> + 1286: 645e cmpne r7, r1 + 1288: 0c8d bf 0x13a2 // 13a2 <__muldf3+0x1a6> + 128a: 3300 movi r3, 0 + 128c: 3400 movi r4, 0 + 128e: b862 st.w r3, (r14, 0x8) + 1290: b883 st.w r4, (r14, 0xc) + 1292: 9884 ld.w r4, (r14, 0x10) + 1294: 98a5 ld.w r5, (r14, 0x14) + 1296: 3600 movi r6, 0 + 1298: 6dc3 mov r7, r0 + 129a: 6c93 mov r2, r4 + 129c: 6cd7 mov r3, r5 + 129e: 6489 cmplt r2, r2 + 12a0: 6099 addc r2, r6 + 12a2: 60dd addc r3, r7 + 12a4: 6d8b mov r6, r2 + 12a6: 6dcf mov r7, r3 + 12a8: 6c93 mov r2, r4 + 12aa: 6cd7 mov r3, r5 + 12ac: 64dc cmphs r7, r3 + 12ae: 0c70 bf 0x138e // 138e <__muldf3+0x192> + 12b0: 65ce cmpne r3, r7 + 12b2: 0c6c bf 0x138a // 138a <__muldf3+0x18e> + 12b4: 6c87 mov r2, r1 + 12b6: 3300 movi r3, 0 + 12b8: 9806 ld.w r0, (r14, 0x18) + 12ba: 9827 ld.w r1, (r14, 0x1c) + 12bc: 6401 cmplt r0, r0 + 12be: 6009 addc r0, r2 + 12c0: 604d addc r1, r3 + 12c2: 6c83 mov r2, r0 + 12c4: 6cc7 mov r3, r1 + 12c6: 9802 ld.w r0, (r14, 0x8) + 12c8: 9823 ld.w r1, (r14, 0xc) + 12ca: 6401 cmplt r0, r0 + 12cc: 6009 addc r0, r2 + 12ce: 604d addc r1, r3 + 12d0: 6c83 mov r2, r0 + 12d2: 6cc7 mov r3, r1 + 12d4: 988e ld.w r4, (r14, 0x38) + 12d6: 9833 ld.w r1, (r14, 0x4c) + 12d8: 6104 addu r4, r1 + 12da: 5c2e addi r1, r4, 4 + 12dc: b838 st.w r1, (r14, 0x60) + 12de: 980d ld.w r0, (r14, 0x34) + 12e0: 9832 ld.w r1, (r14, 0x48) + 12e2: 6442 cmpne r0, r1 + 12e4: 12b0 lrw r5, 0x1fffffff // 1424 <__muldf3+0x228> + 12e6: 3100 movi r1, 0 + 12e8: 6045 addc r1, r1 + 12ea: 64d4 cmphs r5, r3 + 12ec: b837 st.w r1, (r14, 0x5c) + 12ee: 0879 bt 0x13e0 // 13e0 <__muldf3+0x1e4> + 12f0: 2404 addi r4, 5 + 12f2: b8a4 st.w r5, (r14, 0x10) + 12f4: 3001 movi r0, 1 + 12f6: 3100 movi r1, 0 + 12f8: 6808 and r0, r2 + 12fa: 684c and r1, r3 + 12fc: 6c04 or r0, r1 + 12fe: 3840 cmpnei r0, 0 + 1300: b882 st.w r4, (r14, 0x8) + 1302: 0c0e bf 0x131e // 131e <__muldf3+0x122> + 1304: 473f lsli r1, r7, 31 + 1306: 4e01 lsri r0, r6, 1 + 1308: 6c04 or r0, r1 + 130a: 4f21 lsri r1, r7, 1 + 130c: b800 st.w r0, (r14, 0x0) + 130e: b821 st.w r1, (r14, 0x4) + 1310: 3180 movi r1, 128 + 1312: 98c0 ld.w r6, (r14, 0x0) + 1314: 98e1 ld.w r7, (r14, 0x4) + 1316: 3000 movi r0, 0 + 1318: 4138 lsli r1, r1, 24 + 131a: 6d80 or r6, r0 + 131c: 6dc4 or r7, r1 + 131e: 4b21 lsri r1, r3, 1 + 1320: 43bf lsli r5, r3, 31 + 1322: 4a01 lsri r0, r2, 1 + 1324: 6cc7 mov r3, r1 + 1326: 9824 ld.w r1, (r14, 0x10) + 1328: 6d40 or r5, r0 + 132a: 64c4 cmphs r1, r3 + 132c: 6c97 mov r2, r5 + 132e: 2400 addi r4, 1 + 1330: 0fe2 bf 0x12f4 // 12f4 <__muldf3+0xf8> + 1332: 9822 ld.w r1, (r14, 0x8) + 1334: b838 st.w r1, (r14, 0x60) + 1336: 30ff movi r0, 255 + 1338: 3100 movi r1, 0 + 133a: 6808 and r0, r2 + 133c: 684c and r1, r3 + 133e: 3480 movi r4, 128 + 1340: 6502 cmpne r0, r4 + 1342: 0c37 bf 0x13b0 // 13b0 <__muldf3+0x1b4> + 1344: b859 st.w r2, (r14, 0x64) + 1346: b87a st.w r3, (r14, 0x68) + 1348: 3303 movi r3, 3 + 134a: b876 st.w r3, (r14, 0x58) + 134c: 1816 addi r0, r14, 88 + 134e: e0000303 bsr 0x1954 // 1954 <__pack_d> + 1352: 141b addi r14, r14, 108 + 1354: 1494 pop r4-r7, r15 + 1356: 3b42 cmpnei r3, 2 + 1358: 0c42 bf 0x13dc // 13dc <__muldf3+0x1e0> + 135a: 9872 ld.w r3, (r14, 0x48) + 135c: 984d ld.w r2, (r14, 0x34) + 135e: 64ca cmpne r2, r3 + 1360: 3300 movi r3, 0 + 1362: 60cd addc r3, r3 + 1364: 1811 addi r0, r14, 68 + 1366: b872 st.w r3, (r14, 0x48) + 1368: e00002f6 bsr 0x1954 // 1954 <__pack_d> + 136c: 141b addi r14, r14, 108 + 136e: 1494 pop r4-r7, r15 + 1370: 3a42 cmpnei r2, 2 + 1372: 0c35 bf 0x13dc // 13dc <__muldf3+0x1e0> + 1374: 984d ld.w r2, (r14, 0x34) + 1376: 9872 ld.w r3, (r14, 0x48) + 1378: 64ca cmpne r2, r3 + 137a: 3300 movi r3, 0 + 137c: 60cd addc r3, r3 + 137e: 180c addi r0, r14, 48 + 1380: b86d st.w r3, (r14, 0x34) + 1382: e00002e9 bsr 0x1954 // 1954 <__pack_d> + 1386: 141b addi r14, r14, 108 + 1388: 1494 pop r4-r7, r15 + 138a: 6498 cmphs r6, r2 + 138c: 0b94 bt 0x12b4 // 12b4 <__muldf3+0xb8> + 138e: 9882 ld.w r4, (r14, 0x8) + 1390: 98a3 ld.w r5, (r14, 0xc) + 1392: 3201 movi r2, 1 + 1394: 3300 movi r3, 0 + 1396: 6511 cmplt r4, r4 + 1398: 6109 addc r4, r2 + 139a: 614d addc r5, r3 + 139c: b882 st.w r4, (r14, 0x8) + 139e: b8a3 st.w r5, (r14, 0xc) + 13a0: 078a br 0x12b4 // 12b4 <__muldf3+0xb8> + 13a2: 6580 cmphs r0, r6 + 13a4: 0b73 bt 0x128a // 128a <__muldf3+0x8e> + 13a6: 3300 movi r3, 0 + 13a8: 3401 movi r4, 1 + 13aa: b862 st.w r3, (r14, 0x8) + 13ac: b883 st.w r4, (r14, 0xc) + 13ae: 0772 br 0x1292 // 1292 <__muldf3+0x96> + 13b0: 3940 cmpnei r1, 0 + 13b2: 0bc9 bt 0x1344 // 1344 <__muldf3+0x148> + 13b4: 3180 movi r1, 128 + 13b6: 4121 lsli r1, r1, 1 + 13b8: 6848 and r1, r2 + 13ba: 3940 cmpnei r1, 0 + 13bc: 0bc4 bt 0x1344 // 1344 <__muldf3+0x148> + 13be: 6c5b mov r1, r6 + 13c0: 6c5c or r1, r7 + 13c2: 3940 cmpnei r1, 0 + 13c4: 0fc0 bf 0x1344 // 1344 <__muldf3+0x148> + 13c6: 3080 movi r0, 128 + 13c8: 3100 movi r1, 0 + 13ca: 6401 cmplt r0, r0 + 13cc: 6009 addc r0, r2 + 13ce: 604d addc r1, r3 + 13d0: 34ff movi r4, 255 + 13d2: 6d43 mov r5, r0 + 13d4: 6951 andn r5, r4 + 13d6: 6c97 mov r2, r5 + 13d8: 6cc7 mov r3, r1 + 13da: 07b5 br 0x1344 // 1344 <__muldf3+0x148> + 13dc: 1013 lrw r0, 0xa794 // 1428 <__muldf3+0x22c> + 13de: 07b8 br 0x134e // 134e <__muldf3+0x152> + 13e0: 1033 lrw r1, 0xfffffff // 142c <__muldf3+0x230> + 13e2: 64c4 cmphs r1, r3 + 13e4: 0fa9 bf 0x1336 // 1336 <__muldf3+0x13a> + 13e6: 2402 addi r4, 3 + 13e8: b822 st.w r1, (r14, 0x8) + 13ea: 4a1f lsri r0, r2, 31 + 13ec: 4321 lsli r1, r3, 1 + 13ee: 42a1 lsli r5, r2, 1 + 13f0: 6c04 or r0, r1 + 13f2: 3fdf btsti r7, 31 + 13f4: b880 st.w r4, (r14, 0x0) + 13f6: 6c97 mov r2, r5 + 13f8: 6cc3 mov r3, r0 + 13fa: 0c07 bf 0x1408 // 1408 <__muldf3+0x20c> + 13fc: 3001 movi r0, 1 + 13fe: 3100 movi r1, 0 + 1400: 6c08 or r0, r2 + 1402: 6c4c or r1, r3 + 1404: 6c83 mov r2, r0 + 1406: 6cc7 mov r3, r1 + 1408: 4721 lsli r1, r7, 1 + 140a: 4e1f lsri r0, r6, 31 + 140c: 6c04 or r0, r1 + 140e: 9822 ld.w r1, (r14, 0x8) + 1410: 46a1 lsli r5, r6, 1 + 1412: 64c4 cmphs r1, r3 + 1414: 6d97 mov r6, r5 + 1416: 6dc3 mov r7, r0 + 1418: 2c00 subi r4, 1 + 141a: 0be8 bt 0x13ea // 13ea <__muldf3+0x1ee> + 141c: 9820 ld.w r1, (r14, 0x0) + 141e: b838 st.w r1, (r14, 0x60) + 1420: 078b br 0x1336 // 1336 <__muldf3+0x13a> + 1422: 0000 bkpt + 1424: 1fffffff .long 0x1fffffff + 1428: 0000a794 .long 0x0000a794 + 142c: 0fffffff .long 0x0fffffff + +00001430 <__divdf3>: + 1430: 14d4 push r4-r7, r15 + 1432: 1432 subi r14, r14, 72 + 1434: b804 st.w r0, (r14, 0x10) + 1436: b825 st.w r1, (r14, 0x14) + 1438: 1804 addi r0, r14, 16 + 143a: 1908 addi r1, r14, 32 + 143c: b867 st.w r3, (r14, 0x1c) + 143e: b846 st.w r2, (r14, 0x18) + 1440: e0000358 bsr 0x1af0 // 1af0 <__unpack_d> + 1444: 190d addi r1, r14, 52 + 1446: 1806 addi r0, r14, 24 + 1448: e0000354 bsr 0x1af0 // 1af0 <__unpack_d> + 144c: 9868 ld.w r3, (r14, 0x20) + 144e: 3b01 cmphsi r3, 2 + 1450: 0c66 bf 0x151c // 151c <__divdf3+0xec> + 1452: 982d ld.w r1, (r14, 0x34) + 1454: 3901 cmphsi r1, 2 + 1456: 0c92 bf 0x157a // 157a <__divdf3+0x14a> + 1458: 9849 ld.w r2, (r14, 0x24) + 145a: 980e ld.w r0, (r14, 0x38) + 145c: 6c81 xor r2, r0 + 145e: 3b44 cmpnei r3, 4 + 1460: b849 st.w r2, (r14, 0x24) + 1462: 0c62 bf 0x1526 // 1526 <__divdf3+0xf6> + 1464: 3b42 cmpnei r3, 2 + 1466: 0c60 bf 0x1526 // 1526 <__divdf3+0xf6> + 1468: 3944 cmpnei r1, 4 + 146a: 0c62 bf 0x152e // 152e <__divdf3+0xfe> + 146c: 3942 cmpnei r1, 2 + 146e: 0c82 bf 0x1572 // 1572 <__divdf3+0x142> + 1470: 982a ld.w r1, (r14, 0x28) + 1472: 986f ld.w r3, (r14, 0x3c) + 1474: 604e subu r1, r3 + 1476: 9890 ld.w r4, (r14, 0x40) + 1478: 98b1 ld.w r5, (r14, 0x44) + 147a: 984b ld.w r2, (r14, 0x2c) + 147c: 986c ld.w r3, (r14, 0x30) + 147e: 654c cmphs r3, r5 + 1480: b82a st.w r1, (r14, 0x28) + 1482: 6d93 mov r6, r4 + 1484: 6dd7 mov r7, r5 + 1486: 0c05 bf 0x1490 // 1490 <__divdf3+0x60> + 1488: 64d6 cmpne r5, r3 + 148a: 080b bt 0x14a0 // 14a0 <__divdf3+0x70> + 148c: 6508 cmphs r2, r4 + 148e: 0809 bt 0x14a0 // 14a0 <__divdf3+0x70> + 1490: 4a9f lsri r4, r2, 31 + 1492: 4301 lsli r0, r3, 1 + 1494: 42a1 lsli r5, r2, 1 + 1496: 6d00 or r4, r0 + 1498: 2900 subi r1, 1 + 149a: 6c97 mov r2, r5 + 149c: 6cd3 mov r3, r4 + 149e: b82a st.w r1, (r14, 0x28) + 14a0: 3000 movi r0, 0 + 14a2: 3100 movi r1, 0 + 14a4: b802 st.w r0, (r14, 0x8) + 14a6: b823 st.w r1, (r14, 0xc) + 14a8: 3180 movi r1, 128 + 14aa: 343d movi r4, 61 + 14ac: 3000 movi r0, 0 + 14ae: 4135 lsli r1, r1, 21 + 14b0: b8c0 st.w r6, (r14, 0x0) + 14b2: b8e1 st.w r7, (r14, 0x4) + 14b4: 98a0 ld.w r5, (r14, 0x0) + 14b6: 98c1 ld.w r6, (r14, 0x4) + 14b8: 658c cmphs r3, r6 + 14ba: 0c10 bf 0x14da // 14da <__divdf3+0xaa> + 14bc: 64da cmpne r6, r3 + 14be: 0803 bt 0x14c4 // 14c4 <__divdf3+0x94> + 14c0: 6548 cmphs r2, r5 + 14c2: 0c0c bf 0x14da // 14da <__divdf3+0xaa> + 14c4: 98a2 ld.w r5, (r14, 0x8) + 14c6: 98c3 ld.w r6, (r14, 0xc) + 14c8: 6d40 or r5, r0 + 14ca: 6d84 or r6, r1 + 14cc: b8a2 st.w r5, (r14, 0x8) + 14ce: b8c3 st.w r6, (r14, 0xc) + 14d0: 98a0 ld.w r5, (r14, 0x0) + 14d2: 98c1 ld.w r6, (r14, 0x4) + 14d4: 6488 cmphs r2, r2 + 14d6: 6097 subc r2, r5 + 14d8: 60db subc r3, r6 + 14da: 41bf lsli r5, r1, 31 + 14dc: 48e1 lsri r7, r0, 1 + 14de: 6d97 mov r6, r5 + 14e0: 49a1 lsri r5, r1, 1 + 14e2: 6d9c or r6, r7 + 14e4: 6c57 mov r1, r5 + 14e6: 4abf lsri r5, r2, 31 + 14e8: 6c1b mov r0, r6 + 14ea: 2c00 subi r4, 1 + 14ec: 6d97 mov r6, r5 + 14ee: 43a1 lsli r5, r3, 1 + 14f0: 6d94 or r6, r5 + 14f2: 4261 lsli r3, r2, 1 + 14f4: 3c40 cmpnei r4, 0 + 14f6: 6dcf mov r7, r3 + 14f8: 6c8f mov r2, r3 + 14fa: 6cdb mov r3, r6 + 14fc: 0bdc bt 0x14b4 // 14b4 <__divdf3+0x84> + 14fe: 30ff movi r0, 255 + 1500: 3100 movi r1, 0 + 1502: 9882 ld.w r4, (r14, 0x8) + 1504: 98a3 ld.w r5, (r14, 0xc) + 1506: 6900 and r4, r0 + 1508: 6944 and r5, r1 + 150a: 6c13 mov r0, r4 + 150c: 6c57 mov r1, r5 + 150e: 3480 movi r4, 128 + 1510: 6502 cmpne r0, r4 + 1512: 0c15 bf 0x153c // 153c <__divdf3+0x10c> + 1514: 9862 ld.w r3, (r14, 0x8) + 1516: 9883 ld.w r4, (r14, 0xc) + 1518: b86b st.w r3, (r14, 0x2c) + 151a: b88c st.w r4, (r14, 0x30) + 151c: 1808 addi r0, r14, 32 + 151e: e000021b bsr 0x1954 // 1954 <__pack_d> + 1522: 1412 addi r14, r14, 72 + 1524: 1494 pop r4-r7, r15 + 1526: 644e cmpne r3, r1 + 1528: 0bfa bt 0x151c // 151c <__divdf3+0xec> + 152a: 1016 lrw r0, 0xa794 // 1580 <__divdf3+0x150> + 152c: 07f9 br 0x151e // 151e <__divdf3+0xee> + 152e: 3300 movi r3, 0 + 1530: 3400 movi r4, 0 + 1532: b86b st.w r3, (r14, 0x2c) + 1534: b88c st.w r4, (r14, 0x30) + 1536: b86a st.w r3, (r14, 0x28) + 1538: 1808 addi r0, r14, 32 + 153a: 07f2 br 0x151e // 151e <__divdf3+0xee> + 153c: 3940 cmpnei r1, 0 + 153e: 0beb bt 0x1514 // 1514 <__divdf3+0xe4> + 1540: 3180 movi r1, 128 + 1542: 4121 lsli r1, r1, 1 + 1544: 9882 ld.w r4, (r14, 0x8) + 1546: 98a3 ld.w r5, (r14, 0xc) + 1548: 6850 and r1, r4 + 154a: 3940 cmpnei r1, 0 + 154c: 0be4 bt 0x1514 // 1514 <__divdf3+0xe4> + 154e: 6c98 or r2, r6 + 1550: 3a40 cmpnei r2, 0 + 1552: 0fe1 bf 0x1514 // 1514 <__divdf3+0xe4> + 1554: 3280 movi r2, 128 + 1556: 3300 movi r3, 0 + 1558: 6c13 mov r0, r4 + 155a: 6c57 mov r1, r5 + 155c: 6401 cmplt r0, r0 + 155e: 6009 addc r0, r2 + 1560: 604d addc r1, r3 + 1562: 6c83 mov r2, r0 + 1564: 6cc7 mov r3, r1 + 1566: 6c0b mov r0, r2 + 1568: 31ff movi r1, 255 + 156a: 6805 andn r0, r1 + 156c: b802 st.w r0, (r14, 0x8) + 156e: b863 st.w r3, (r14, 0xc) + 1570: 07d2 br 0x1514 // 1514 <__divdf3+0xe4> + 1572: 3304 movi r3, 4 + 1574: b868 st.w r3, (r14, 0x20) + 1576: 1808 addi r0, r14, 32 + 1578: 07d3 br 0x151e // 151e <__divdf3+0xee> + 157a: 180d addi r0, r14, 52 + 157c: 07d1 br 0x151e // 151e <__divdf3+0xee> + 157e: 0000 bkpt + 1580: 0000a794 .long 0x0000a794 + +00001584 <__gtdf2>: + 1584: 14d0 push r15 + 1586: 142e subi r14, r14, 56 + 1588: b800 st.w r0, (r14, 0x0) + 158a: b821 st.w r1, (r14, 0x4) + 158c: 6c3b mov r0, r14 + 158e: 1904 addi r1, r14, 16 + 1590: b863 st.w r3, (r14, 0xc) + 1592: b842 st.w r2, (r14, 0x8) + 1594: e00002ae bsr 0x1af0 // 1af0 <__unpack_d> + 1598: 1909 addi r1, r14, 36 + 159a: 1802 addi r0, r14, 8 + 159c: e00002aa bsr 0x1af0 // 1af0 <__unpack_d> + 15a0: 9864 ld.w r3, (r14, 0x10) + 15a2: 3b01 cmphsi r3, 2 + 15a4: 0c0a bf 0x15b8 // 15b8 <__gtdf2+0x34> + 15a6: 9869 ld.w r3, (r14, 0x24) + 15a8: 3b01 cmphsi r3, 2 + 15aa: 0c07 bf 0x15b8 // 15b8 <__gtdf2+0x34> + 15ac: 1909 addi r1, r14, 36 + 15ae: 1804 addi r0, r14, 16 + 15b0: e0000302 bsr 0x1bb4 // 1bb4 <__fpcmp_parts_d> + 15b4: 140e addi r14, r14, 56 + 15b6: 1490 pop r15 + 15b8: 3000 movi r0, 0 + 15ba: 2800 subi r0, 1 + 15bc: 140e addi r14, r14, 56 + 15be: 1490 pop r15 + +000015c0 <__gedf2>: + 15c0: 14d0 push r15 + 15c2: 142e subi r14, r14, 56 + 15c4: b800 st.w r0, (r14, 0x0) + 15c6: b821 st.w r1, (r14, 0x4) + 15c8: 6c3b mov r0, r14 + 15ca: 1904 addi r1, r14, 16 + 15cc: b863 st.w r3, (r14, 0xc) + 15ce: b842 st.w r2, (r14, 0x8) + 15d0: e0000290 bsr 0x1af0 // 1af0 <__unpack_d> + 15d4: 1909 addi r1, r14, 36 + 15d6: 1802 addi r0, r14, 8 + 15d8: e000028c bsr 0x1af0 // 1af0 <__unpack_d> + 15dc: 9864 ld.w r3, (r14, 0x10) + 15de: 3b01 cmphsi r3, 2 + 15e0: 0c0a bf 0x15f4 // 15f4 <__gedf2+0x34> + 15e2: 9869 ld.w r3, (r14, 0x24) + 15e4: 3b01 cmphsi r3, 2 + 15e6: 0c07 bf 0x15f4 // 15f4 <__gedf2+0x34> + 15e8: 1909 addi r1, r14, 36 + 15ea: 1804 addi r0, r14, 16 + 15ec: e00002e4 bsr 0x1bb4 // 1bb4 <__fpcmp_parts_d> + 15f0: 140e addi r14, r14, 56 + 15f2: 1490 pop r15 + 15f4: 3000 movi r0, 0 + 15f6: 2800 subi r0, 1 + 15f8: 140e addi r14, r14, 56 + 15fa: 1490 pop r15 + +000015fc <__ledf2>: + 15fc: 14d0 push r15 + 15fe: 142e subi r14, r14, 56 + 1600: b800 st.w r0, (r14, 0x0) + 1602: b821 st.w r1, (r14, 0x4) + 1604: 6c3b mov r0, r14 + 1606: 1904 addi r1, r14, 16 + 1608: b863 st.w r3, (r14, 0xc) + 160a: b842 st.w r2, (r14, 0x8) + 160c: e0000272 bsr 0x1af0 // 1af0 <__unpack_d> + 1610: 1909 addi r1, r14, 36 + 1612: 1802 addi r0, r14, 8 + 1614: e000026e bsr 0x1af0 // 1af0 <__unpack_d> + 1618: 9864 ld.w r3, (r14, 0x10) + 161a: 3b01 cmphsi r3, 2 + 161c: 0c0a bf 0x1630 // 1630 <__ledf2+0x34> + 161e: 9869 ld.w r3, (r14, 0x24) + 1620: 3b01 cmphsi r3, 2 + 1622: 0c07 bf 0x1630 // 1630 <__ledf2+0x34> + 1624: 1909 addi r1, r14, 36 + 1626: 1804 addi r0, r14, 16 + 1628: e00002c6 bsr 0x1bb4 // 1bb4 <__fpcmp_parts_d> + 162c: 140e addi r14, r14, 56 + 162e: 1490 pop r15 + 1630: 3001 movi r0, 1 + 1632: 140e addi r14, r14, 56 + 1634: 1490 pop r15 + ... + +00001638 <__floatsidf>: + 1638: 14d1 push r4, r15 + 163a: 1425 subi r14, r14, 20 + 163c: 3303 movi r3, 3 + 163e: b860 st.w r3, (r14, 0x0) + 1640: 3840 cmpnei r0, 0 + 1642: 487f lsri r3, r0, 31 + 1644: b861 st.w r3, (r14, 0x4) + 1646: 0808 bt 0x1656 // 1656 <__floatsidf+0x1e> + 1648: 3302 movi r3, 2 + 164a: b860 st.w r3, (r14, 0x0) + 164c: 6c3b mov r0, r14 + 164e: e0000183 bsr 0x1954 // 1954 <__pack_d> + 1652: 1405 addi r14, r14, 20 + 1654: 1491 pop r4, r15 + 1656: 38df btsti r0, 31 + 1658: 0812 bt 0x167c // 167c <__floatsidf+0x44> + 165a: 6d03 mov r4, r0 + 165c: 6c13 mov r0, r4 + 165e: e00000bd bsr 0x17d8 // 17d8 <__clzsi2> + 1662: 321d movi r2, 29 + 1664: 6080 addu r2, r0 + 1666: 2802 subi r0, 3 + 1668: 38df btsti r0, 31 + 166a: 0810 bt 0x168a // 168a <__floatsidf+0x52> + 166c: 7100 lsl r4, r0 + 166e: 3300 movi r3, 0 + 1670: b884 st.w r4, (r14, 0x10) + 1672: b863 st.w r3, (r14, 0xc) + 1674: 333c movi r3, 60 + 1676: 60ca subu r3, r2 + 1678: b862 st.w r3, (r14, 0x8) + 167a: 07e9 br 0x164c // 164c <__floatsidf+0x14> + 167c: 3380 movi r3, 128 + 167e: 4378 lsli r3, r3, 24 + 1680: 64c2 cmpne r0, r3 + 1682: 0c0d bf 0x169c // 169c <__floatsidf+0x64> + 1684: 3400 movi r4, 0 + 1686: 6102 subu r4, r0 + 1688: 07ea br 0x165c // 165c <__floatsidf+0x24> + 168a: 311f movi r1, 31 + 168c: 4c61 lsri r3, r4, 1 + 168e: 604a subu r1, r2 + 1690: 6c13 mov r0, r4 + 1692: 70c5 lsr r3, r1 + 1694: 7008 lsl r0, r2 + 1696: b864 st.w r3, (r14, 0x10) + 1698: b803 st.w r0, (r14, 0xc) + 169a: 07ed br 0x1674 // 1674 <__floatsidf+0x3c> + 169c: 3000 movi r0, 0 + 169e: 1022 lrw r1, 0xc1e00000 // 16a4 <__floatsidf+0x6c> + 16a0: 07d9 br 0x1652 // 1652 <__floatsidf+0x1a> + 16a2: 0000 bkpt + 16a4: c1e00000 .long 0xc1e00000 + +000016a8 <__fixdfsi>: + 16a8: 14d0 push r15 + 16aa: 1427 subi r14, r14, 28 + 16ac: b800 st.w r0, (r14, 0x0) + 16ae: b821 st.w r1, (r14, 0x4) + 16b0: 6c3b mov r0, r14 + 16b2: 1902 addi r1, r14, 8 + 16b4: e000021e bsr 0x1af0 // 1af0 <__unpack_d> + 16b8: 9862 ld.w r3, (r14, 0x8) + 16ba: 3b02 cmphsi r3, 3 + 16bc: 0c20 bf 0x16fc // 16fc <__fixdfsi+0x54> + 16be: 3b44 cmpnei r3, 4 + 16c0: 0c16 bf 0x16ec // 16ec <__fixdfsi+0x44> + 16c2: 9864 ld.w r3, (r14, 0x10) + 16c4: 3bdf btsti r3, 31 + 16c6: 081b bt 0x16fc // 16fc <__fixdfsi+0x54> + 16c8: 3b3e cmplti r3, 31 + 16ca: 0c11 bf 0x16ec // 16ec <__fixdfsi+0x44> + 16cc: 323c movi r2, 60 + 16ce: 5a6d subu r3, r2, r3 + 16d0: 3200 movi r2, 0 + 16d2: 2a1f subi r2, 32 + 16d4: 608c addu r2, r3 + 16d6: 3adf btsti r2, 31 + 16d8: 0815 bt 0x1702 // 1702 <__fixdfsi+0x5a> + 16da: 9806 ld.w r0, (r14, 0x18) + 16dc: 7009 lsr r0, r2 + 16de: 9863 ld.w r3, (r14, 0xc) + 16e0: 3b40 cmpnei r3, 0 + 16e2: 0c0b bf 0x16f8 // 16f8 <__fixdfsi+0x50> + 16e4: 3300 movi r3, 0 + 16e6: 5b01 subu r0, r3, r0 + 16e8: 1407 addi r14, r14, 28 + 16ea: 1490 pop r15 + 16ec: 9863 ld.w r3, (r14, 0xc) + 16ee: 3b40 cmpnei r3, 0 + 16f0: 3000 movi r0, 0 + 16f2: 6001 addc r0, r0 + 16f4: 1068 lrw r3, 0x7fffffff // 1714 <__fixdfsi+0x6c> + 16f6: 600c addu r0, r3 + 16f8: 1407 addi r14, r14, 28 + 16fa: 1490 pop r15 + 16fc: 3000 movi r0, 0 + 16fe: 1407 addi r14, r14, 28 + 1700: 1490 pop r15 + 1702: 9846 ld.w r2, (r14, 0x18) + 1704: 311f movi r1, 31 + 1706: 4241 lsli r2, r2, 1 + 1708: 604e subu r1, r3 + 170a: 9805 ld.w r0, (r14, 0x14) + 170c: 7084 lsl r2, r1 + 170e: 700d lsr r0, r3 + 1710: 6c08 or r0, r2 + 1712: 07e6 br 0x16de // 16de <__fixdfsi+0x36> + 1714: 7fffffff .long 0x7fffffff + +00001718 <__make_dp>: + 1718: 1421 subi r14, r14, 4 + 171a: 14d1 push r4, r15 + 171c: 1425 subi r14, r14, 20 + 171e: b867 st.w r3, (r14, 0x1c) + 1720: 9867 ld.w r3, (r14, 0x1c) + 1722: 9888 ld.w r4, (r14, 0x20) + 1724: b800 st.w r0, (r14, 0x0) + 1726: 6c3b mov r0, r14 + 1728: b821 st.w r1, (r14, 0x4) + 172a: b842 st.w r2, (r14, 0x8) + 172c: b863 st.w r3, (r14, 0xc) + 172e: b884 st.w r4, (r14, 0x10) + 1730: e0000112 bsr 0x1954 // 1954 <__pack_d> + 1734: 1405 addi r14, r14, 20 + 1736: d9ee2001 ld.w r15, (r14, 0x4) + 173a: 9880 ld.w r4, (r14, 0x0) + 173c: 1403 addi r14, r14, 12 + 173e: 783c jmp r15 + +00001740 <__floatunsidf>: + 1740: 14d2 push r4-r5, r15 + 1742: 1425 subi r14, r14, 20 + 1744: 3840 cmpnei r0, 0 + 1746: 3500 movi r5, 0 + 1748: 6d03 mov r4, r0 + 174a: b8a1 st.w r5, (r14, 0x4) + 174c: 0c15 bf 0x1776 // 1776 <__floatunsidf+0x36> + 174e: 3303 movi r3, 3 + 1750: b860 st.w r3, (r14, 0x0) + 1752: e0000043 bsr 0x17d8 // 17d8 <__clzsi2> + 1756: 321d movi r2, 29 + 1758: 6080 addu r2, r0 + 175a: 2802 subi r0, 3 + 175c: 38df btsti r0, 31 + 175e: 0813 bt 0x1784 // 1784 <__floatunsidf+0x44> + 1760: 7100 lsl r4, r0 + 1762: b884 st.w r4, (r14, 0x10) + 1764: b8a3 st.w r5, (r14, 0xc) + 1766: 333c movi r3, 60 + 1768: 60ca subu r3, r2 + 176a: 6c3b mov r0, r14 + 176c: b862 st.w r3, (r14, 0x8) + 176e: e00000f3 bsr 0x1954 // 1954 <__pack_d> + 1772: 1405 addi r14, r14, 20 + 1774: 1492 pop r4-r5, r15 + 1776: 3302 movi r3, 2 + 1778: 6c3b mov r0, r14 + 177a: b860 st.w r3, (r14, 0x0) + 177c: e00000ec bsr 0x1954 // 1954 <__pack_d> + 1780: 1405 addi r14, r14, 20 + 1782: 1492 pop r4-r5, r15 + 1784: 311f movi r1, 31 + 1786: 4c61 lsri r3, r4, 1 + 1788: 604a subu r1, r2 + 178a: 70c5 lsr r3, r1 + 178c: 7108 lsl r4, r2 + 178e: b864 st.w r3, (r14, 0x10) + 1790: b883 st.w r4, (r14, 0xc) + 1792: 07ea br 0x1766 // 1766 <__floatunsidf+0x26> + +00001794 <__muldi3>: + 1794: 14c4 push r4-r7 + 1796: 1421 subi r14, r14, 4 + 1798: 7501 zexth r4, r0 + 179a: 48b0 lsri r5, r0, 16 + 179c: 75c9 zexth r7, r2 + 179e: 6d83 mov r6, r0 + 17a0: b820 st.w r1, (r14, 0x0) + 17a2: 6c13 mov r0, r4 + 17a4: 4a30 lsri r1, r2, 16 + 17a6: 7c1c mult r0, r7 + 17a8: 7d04 mult r4, r1 + 17aa: 7dd4 mult r7, r5 + 17ac: 611c addu r4, r7 + 17ae: 7d44 mult r5, r1 + 17b0: 4830 lsri r1, r0, 16 + 17b2: 6104 addu r4, r1 + 17b4: 65d0 cmphs r4, r7 + 17b6: 0804 bt 0x17be // 17be <__muldi3+0x2a> + 17b8: 3180 movi r1, 128 + 17ba: 4129 lsli r1, r1, 9 + 17bc: 6144 addu r5, r1 + 17be: 4c30 lsri r1, r4, 16 + 17c0: 7cd8 mult r3, r6 + 17c2: 6144 addu r5, r1 + 17c4: 6c4f mov r1, r3 + 17c6: 9860 ld.w r3, (r14, 0x0) + 17c8: 7cc8 mult r3, r2 + 17ca: 4490 lsli r4, r4, 16 + 17cc: 604c addu r1, r3 + 17ce: 7401 zexth r0, r0 + 17d0: 6010 addu r0, r4 + 17d2: 6054 addu r1, r5 + 17d4: 1401 addi r14, r14, 4 + 17d6: 1484 pop r4-r7 + +000017d8 <__clzsi2>: + 17d8: 106d lrw r3, 0xffff // 180c <__clzsi2+0x34> + 17da: 640c cmphs r3, r0 + 17dc: 0c07 bf 0x17ea // 17ea <__clzsi2+0x12> + 17de: 33ff movi r3, 255 + 17e0: 640c cmphs r3, r0 + 17e2: 0c0f bf 0x1800 // 1800 <__clzsi2+0x28> + 17e4: 3320 movi r3, 32 + 17e6: 3200 movi r2, 0 + 17e8: 0406 br 0x17f4 // 17f4 <__clzsi2+0x1c> + 17ea: 106a lrw r3, 0xffffff // 1810 <__clzsi2+0x38> + 17ec: 640c cmphs r3, r0 + 17ee: 080c bt 0x1806 // 1806 <__clzsi2+0x2e> + 17f0: 3308 movi r3, 8 + 17f2: 3218 movi r2, 24 + 17f4: 7009 lsr r0, r2 + 17f6: 1048 lrw r2, 0xa7a8 // 1814 <__clzsi2+0x3c> + 17f8: 6008 addu r0, r2 + 17fa: 8040 ld.b r2, (r0, 0x0) + 17fc: 5b09 subu r0, r3, r2 + 17fe: 783c jmp r15 + 1800: 3318 movi r3, 24 + 1802: 3208 movi r2, 8 + 1804: 07f8 br 0x17f4 // 17f4 <__clzsi2+0x1c> + 1806: 3310 movi r3, 16 + 1808: 3210 movi r2, 16 + 180a: 07f5 br 0x17f4 // 17f4 <__clzsi2+0x1c> + 180c: 0000ffff .long 0x0000ffff + 1810: 00ffffff .long 0x00ffffff + 1814: 0000a7a8 .long 0x0000a7a8 + +00001818 <__pack_f>: + 1818: 14c2 push r4-r5 + 181a: 9040 ld.w r2, (r0, 0x0) + 181c: 3a01 cmphsi r2, 2 + 181e: 9063 ld.w r3, (r0, 0xc) + 1820: 9021 ld.w r1, (r0, 0x4) + 1822: 0c27 bf 0x1870 // 1870 <__pack_f+0x58> + 1824: 3a44 cmpnei r2, 4 + 1826: 0c22 bf 0x186a // 186a <__pack_f+0x52> + 1828: 3a42 cmpnei r2, 2 + 182a: 0c1d bf 0x1864 // 1864 <__pack_f+0x4c> + 182c: 3b40 cmpnei r3, 0 + 182e: 0c1b bf 0x1864 // 1864 <__pack_f+0x4c> + 1830: 3400 movi r4, 0 + 1832: 9042 ld.w r2, (r0, 0x8) + 1834: 2c7d subi r4, 126 + 1836: 6509 cmplt r2, r4 + 1838: 082a bt 0x188c // 188c <__pack_f+0x74> + 183a: 347f movi r4, 127 + 183c: 6491 cmplt r4, r2 + 183e: 0816 bt 0x186a // 186a <__pack_f+0x52> + 1840: 690c and r4, r3 + 1842: 3540 movi r5, 64 + 1844: 6552 cmpne r4, r5 + 1846: 0c1a bf 0x187a // 187a <__pack_f+0x62> + 1848: 233e addi r3, 63 + 184a: 3bdf btsti r3, 31 + 184c: 081d bt 0x1886 // 1886 <__pack_f+0x6e> + 184e: 227e addi r2, 127 + 1850: 4302 lsli r0, r3, 2 + 1852: 4809 lsri r0, r0, 9 + 1854: 74c8 zextb r3, r2 + 1856: 4009 lsli r0, r0, 9 + 1858: 4377 lsli r3, r3, 23 + 185a: 4809 lsri r0, r0, 9 + 185c: 413f lsli r1, r1, 31 + 185e: 6c0c or r0, r3 + 1860: 6c04 or r0, r1 + 1862: 1482 pop r4-r5 + 1864: 3300 movi r3, 0 + 1866: 3000 movi r0, 0 + 1868: 07f7 br 0x1856 // 1856 <__pack_f+0x3e> + 186a: 33ff movi r3, 255 + 186c: 3000 movi r0, 0 + 186e: 07f4 br 0x1856 // 1856 <__pack_f+0x3e> + 1870: 4303 lsli r0, r3, 3 + 1872: 480a lsri r0, r0, 10 + 1874: 38b6 bseti r0, 22 + 1876: 33ff movi r3, 255 + 1878: 07ef br 0x1856 // 1856 <__pack_f+0x3e> + 187a: 3080 movi r0, 128 + 187c: 680c and r0, r3 + 187e: 3840 cmpnei r0, 0 + 1880: 0fe5 bf 0x184a // 184a <__pack_f+0x32> + 1882: 60d0 addu r3, r4 + 1884: 07e3 br 0x184a // 184a <__pack_f+0x32> + 1886: 4b61 lsri r3, r3, 1 + 1888: 227f addi r2, 128 + 188a: 07e3 br 0x1850 // 1850 <__pack_f+0x38> + 188c: 610a subu r4, r2 + 188e: 3c39 cmplti r4, 26 + 1890: 0fea bf 0x1864 // 1864 <__pack_f+0x4c> + 1892: 3201 movi r2, 1 + 1894: 7090 lsl r2, r4 + 1896: 2a00 subi r2, 1 + 1898: 6c0f mov r0, r3 + 189a: 68c8 and r3, r2 + 189c: 3b40 cmpnei r3, 0 + 189e: 3300 movi r3, 0 + 18a0: 7011 lsr r0, r4 + 18a2: 60cd addc r3, r3 + 18a4: 6cc0 or r3, r0 + 18a6: 307f movi r0, 127 + 18a8: 680c and r0, r3 + 18aa: 3240 movi r2, 64 + 18ac: 6482 cmpne r0, r2 + 18ae: 080d bt 0x18c8 // 18c8 <__pack_f+0xb0> + 18b0: 3280 movi r2, 128 + 18b2: 688c and r2, r3 + 18b4: 3a40 cmpnei r2, 0 + 18b6: 0c02 bf 0x18ba // 18ba <__pack_f+0xa2> + 18b8: 60c0 addu r3, r0 + 18ba: 1045 lrw r2, 0x3fffffff // 18cc <__pack_f+0xb4> + 18bc: 64c8 cmphs r2, r3 + 18be: 4302 lsli r0, r3, 2 + 18c0: 64c3 mvcv r3 + 18c2: 4809 lsri r0, r0, 9 + 18c4: 74cc zextb r3, r3 + 18c6: 07c8 br 0x1856 // 1856 <__pack_f+0x3e> + 18c8: 233e addi r3, 63 + 18ca: 07f8 br 0x18ba // 18ba <__pack_f+0xa2> + 18cc: 3fffffff .long 0x3fffffff + +000018d0 <__unpack_f>: + 18d0: 14c1 push r4 + 18d2: 8861 ld.h r3, (r0, 0x2) + 18d4: 4371 lsli r3, r3, 17 + 18d6: 9040 ld.w r2, (r0, 0x0) + 18d8: 4b78 lsri r3, r3, 24 + 18da: 8003 ld.b r0, (r0, 0x3) + 18dc: 4249 lsli r2, r2, 9 + 18de: 4807 lsri r0, r0, 7 + 18e0: 3b40 cmpnei r3, 0 + 18e2: 4a49 lsri r2, r2, 9 + 18e4: b101 st.w r0, (r1, 0x4) + 18e6: 0811 bt 0x1908 // 1908 <__unpack_f+0x38> + 18e8: 3a40 cmpnei r2, 0 + 18ea: 0c1a bf 0x191e // 191e <__unpack_f+0x4e> + 18ec: 3303 movi r3, 3 + 18ee: b160 st.w r3, (r1, 0x0) + 18f0: 3300 movi r3, 0 + 18f2: 4247 lsli r2, r2, 7 + 18f4: 2b7e subi r3, 127 + 18f6: 1096 lrw r4, 0x3fffffff // 194c <__unpack_f+0x7c> + 18f8: 4241 lsli r2, r2, 1 + 18fa: 6490 cmphs r4, r2 + 18fc: 6c0f mov r0, r3 + 18fe: 2b00 subi r3, 1 + 1900: 0bfc bt 0x18f8 // 18f8 <__unpack_f+0x28> + 1902: b102 st.w r0, (r1, 0x8) + 1904: b143 st.w r2, (r1, 0xc) + 1906: 1481 pop r4 + 1908: 30ff movi r0, 255 + 190a: 640e cmpne r3, r0 + 190c: 0c0c bf 0x1924 // 1924 <__unpack_f+0x54> + 190e: 2b7e subi r3, 127 + 1910: 4247 lsli r2, r2, 7 + 1912: b162 st.w r3, (r1, 0x8) + 1914: 3abe bseti r2, 30 + 1916: 3303 movi r3, 3 + 1918: b160 st.w r3, (r1, 0x0) + 191a: b143 st.w r2, (r1, 0xc) + 191c: 1481 pop r4 + 191e: 3302 movi r3, 2 + 1920: b160 st.w r3, (r1, 0x0) + 1922: 1481 pop r4 + 1924: 3a40 cmpnei r2, 0 + 1926: 0c0d bf 0x1940 // 1940 <__unpack_f+0x70> + 1928: 3380 movi r3, 128 + 192a: 436f lsli r3, r3, 15 + 192c: 68c8 and r3, r2 + 192e: 3b40 cmpnei r3, 0 + 1930: 0c0b bf 0x1946 // 1946 <__unpack_f+0x76> + 1932: 3301 movi r3, 1 + 1934: b160 st.w r3, (r1, 0x0) + 1936: 1067 lrw r3, 0x2000007f // 1950 <__unpack_f+0x80> + 1938: 4247 lsli r2, r2, 7 + 193a: 688d andn r2, r3 + 193c: b143 st.w r2, (r1, 0xc) + 193e: 1481 pop r4 + 1940: 3304 movi r3, 4 + 1942: b160 st.w r3, (r1, 0x0) + 1944: 1481 pop r4 + 1946: b160 st.w r3, (r1, 0x0) + 1948: 07f7 br 0x1936 // 1936 <__unpack_f+0x66> + 194a: 0000 bkpt + 194c: 3fffffff .long 0x3fffffff + 1950: 2000007f .long 0x2000007f + +00001954 <__pack_d>: + 1954: 14c4 push r4-r7 + 1956: 1422 subi r14, r14, 8 + 1958: 9060 ld.w r3, (r0, 0x0) + 195a: 3b01 cmphsi r3, 2 + 195c: 90c3 ld.w r6, (r0, 0xc) + 195e: 90e4 ld.w r7, (r0, 0x10) + 1960: 9021 ld.w r1, (r0, 0x4) + 1962: 0c46 bf 0x19ee // 19ee <__pack_d+0x9a> + 1964: 3b44 cmpnei r3, 4 + 1966: 0c40 bf 0x19e6 // 19e6 <__pack_d+0x92> + 1968: 3b42 cmpnei r3, 2 + 196a: 0c27 bf 0x19b8 // 19b8 <__pack_d+0x64> + 196c: 6cdb mov r3, r6 + 196e: 6cdc or r3, r7 + 1970: 3b40 cmpnei r3, 0 + 1972: 0c23 bf 0x19b8 // 19b8 <__pack_d+0x64> + 1974: 9062 ld.w r3, (r0, 0x8) + 1976: 125a lrw r2, 0xfffffc02 // 1adc <__pack_d+0x188> + 1978: 648d cmplt r3, r2 + 197a: 0855 bt 0x1a24 // 1a24 <__pack_d+0xd0> + 197c: 1259 lrw r2, 0x3ff // 1ae0 <__pack_d+0x18c> + 197e: 64c9 cmplt r2, r3 + 1980: 0833 bt 0x19e6 // 19e6 <__pack_d+0x92> + 1982: 34ff movi r4, 255 + 1984: 3500 movi r5, 0 + 1986: 6918 and r4, r6 + 1988: 695c and r5, r7 + 198a: 3280 movi r2, 128 + 198c: 6492 cmpne r4, r2 + 198e: 0c3f bf 0x1a0c // 1a0c <__pack_d+0xb8> + 1990: 347f movi r4, 127 + 1992: 3500 movi r5, 0 + 1994: 6599 cmplt r6, r6 + 1996: 6191 addc r6, r4 + 1998: 61d5 addc r7, r5 + 199a: 1253 lrw r2, 0x1fffffff // 1ae4 <__pack_d+0x190> + 199c: 65c8 cmphs r2, r7 + 199e: 0c1a bf 0x19d2 // 19d2 <__pack_d+0x7e> + 19a0: 1290 lrw r4, 0x3ff // 1ae0 <__pack_d+0x18c> + 19a2: 610c addu r4, r3 + 19a4: 4718 lsli r0, r7, 24 + 19a6: 4f68 lsri r3, r7, 8 + 19a8: 4e48 lsri r2, r6, 8 + 19aa: 6c80 or r2, r0 + 19ac: 430c lsli r0, r3, 12 + 19ae: 486c lsri r3, r0, 12 + 19b0: 120e lrw r0, 0x7ff // 1ae8 <__pack_d+0x194> + 19b2: 6d4b mov r5, r2 + 19b4: 6900 and r4, r0 + 19b6: 0404 br 0x19be // 19be <__pack_d+0x6a> + 19b8: 3400 movi r4, 0 + 19ba: 3200 movi r2, 0 + 19bc: 3300 movi r3, 0 + 19be: 430c lsli r0, r3, 12 + 19c0: 480c lsri r0, r0, 12 + 19c2: 4474 lsli r3, r4, 20 + 19c4: 419f lsli r4, r1, 31 + 19c6: 6c43 mov r1, r0 + 19c8: 6c4c or r1, r3 + 19ca: 6c50 or r1, r4 + 19cc: 6c0b mov r0, r2 + 19ce: 1402 addi r14, r14, 8 + 19d0: 1484 pop r4-r7 + 19d2: 479f lsli r4, r7, 31 + 19d4: 4e01 lsri r0, r6, 1 + 19d6: 6d00 or r4, r0 + 19d8: 6d93 mov r6, r4 + 19da: 3480 movi r4, 128 + 19dc: 4f41 lsri r2, r7, 1 + 19de: 4483 lsli r4, r4, 3 + 19e0: 6dcb mov r7, r2 + 19e2: 610c addu r4, r3 + 19e4: 07e0 br 0x19a4 // 19a4 <__pack_d+0x50> + 19e6: 1281 lrw r4, 0x7ff // 1ae8 <__pack_d+0x194> + 19e8: 3200 movi r2, 0 + 19ea: 3300 movi r3, 0 + 19ec: 07e9 br 0x19be // 19be <__pack_d+0x6a> + 19ee: 4e08 lsri r0, r6, 8 + 19f0: 4798 lsli r4, r7, 24 + 19f2: 6d00 or r4, r0 + 19f4: 3580 movi r5, 128 + 19f6: 4705 lsli r0, r7, 5 + 19f8: 6c93 mov r2, r4 + 19fa: 486d lsri r3, r0, 13 + 19fc: 3400 movi r4, 0 + 19fe: 45ac lsli r5, r5, 12 + 1a00: 6c90 or r2, r4 + 1a02: 6cd4 or r3, r5 + 1a04: 430c lsli r0, r3, 12 + 1a06: 486c lsri r3, r0, 12 + 1a08: 1198 lrw r4, 0x7ff // 1ae8 <__pack_d+0x194> + 1a0a: 07da br 0x19be // 19be <__pack_d+0x6a> + 1a0c: 3d40 cmpnei r5, 0 + 1a0e: 0bc1 bt 0x1990 // 1990 <__pack_d+0x3c> + 1a10: 4241 lsli r2, r2, 1 + 1a12: 6898 and r2, r6 + 1a14: 3a40 cmpnei r2, 0 + 1a16: 0fc2 bf 0x199a // 199a <__pack_d+0x46> + 1a18: 3480 movi r4, 128 + 1a1a: 3500 movi r5, 0 + 1a1c: 6599 cmplt r6, r6 + 1a1e: 6191 addc r6, r4 + 1a20: 61d5 addc r7, r5 + 1a22: 07bc br 0x199a // 199a <__pack_d+0x46> + 1a24: 5a6d subu r3, r2, r3 + 1a26: 3238 movi r2, 56 + 1a28: 64c9 cmplt r2, r3 + 1a2a: 0bc7 bt 0x19b8 // 19b8 <__pack_d+0x64> + 1a2c: 3200 movi r2, 0 + 1a2e: 2a1f subi r2, 32 + 1a30: 608c addu r2, r3 + 1a32: 3adf btsti r2, 31 + 1a34: 0848 bt 0x1ac4 // 1ac4 <__pack_d+0x170> + 1a36: 6c1f mov r0, r7 + 1a38: 7009 lsr r0, r2 + 1a3a: b800 st.w r0, (r14, 0x0) + 1a3c: 3000 movi r0, 0 + 1a3e: b801 st.w r0, (r14, 0x4) + 1a40: 3adf btsti r2, 31 + 1a42: 083c bt 0x1aba // 1aba <__pack_d+0x166> + 1a44: 3301 movi r3, 1 + 1a46: 70c8 lsl r3, r2 + 1a48: 6d4f mov r5, r3 + 1a4a: 3300 movi r3, 0 + 1a4c: 6d0f mov r4, r3 + 1a4e: 3200 movi r2, 0 + 1a50: 3300 movi r3, 0 + 1a52: 2a00 subi r2, 1 + 1a54: 2b00 subi r3, 1 + 1a56: 6511 cmplt r4, r4 + 1a58: 6109 addc r4, r2 + 1a5a: 614d addc r5, r3 + 1a5c: 6990 and r6, r4 + 1a5e: 69d4 and r7, r5 + 1a60: 6d9c or r6, r7 + 1a62: 3e40 cmpnei r6, 0 + 1a64: 3000 movi r0, 0 + 1a66: 6001 addc r0, r0 + 1a68: 6c83 mov r2, r0 + 1a6a: 3300 movi r3, 0 + 1a6c: 9880 ld.w r4, (r14, 0x0) + 1a6e: 98a1 ld.w r5, (r14, 0x4) + 1a70: 6d08 or r4, r2 + 1a72: 6d4c or r5, r3 + 1a74: 32ff movi r2, 255 + 1a76: 3300 movi r3, 0 + 1a78: 6890 and r2, r4 + 1a7a: 68d4 and r3, r5 + 1a7c: 3080 movi r0, 128 + 1a7e: 640a cmpne r2, r0 + 1a80: 081b bt 0x1ab6 // 1ab6 <__pack_d+0x162> + 1a82: 3b40 cmpnei r3, 0 + 1a84: 0819 bt 0x1ab6 // 1ab6 <__pack_d+0x162> + 1a86: 3380 movi r3, 128 + 1a88: 4361 lsli r3, r3, 1 + 1a8a: 68d0 and r3, r4 + 1a8c: 3b40 cmpnei r3, 0 + 1a8e: 0c06 bf 0x1a9a // 1a9a <__pack_d+0x146> + 1a90: 3280 movi r2, 128 + 1a92: 3300 movi r3, 0 + 1a94: 6511 cmplt r4, r4 + 1a96: 6109 addc r4, r2 + 1a98: 614d addc r5, r3 + 1a9a: 4518 lsli r0, r5, 24 + 1a9c: 4c48 lsri r2, r4, 8 + 1a9e: 4d68 lsri r3, r5, 8 + 1aa0: 1093 lrw r4, 0xfffffff // 1aec <__pack_d+0x198> + 1aa2: 6c80 or r2, r0 + 1aa4: 6550 cmphs r4, r5 + 1aa6: 430c lsli r0, r3, 12 + 1aa8: 486c lsri r3, r0, 12 + 1aaa: 3001 movi r0, 1 + 1aac: 0c02 bf 0x1ab0 // 1ab0 <__pack_d+0x15c> + 1aae: 3000 movi r0, 0 + 1ab0: 108e lrw r4, 0x7ff // 1ae8 <__pack_d+0x194> + 1ab2: 6900 and r4, r0 + 1ab4: 0785 br 0x19be // 19be <__pack_d+0x6a> + 1ab6: 327f movi r2, 127 + 1ab8: 07ed br 0x1a92 // 1a92 <__pack_d+0x13e> + 1aba: 3201 movi r2, 1 + 1abc: 708c lsl r2, r3 + 1abe: 3500 movi r5, 0 + 1ac0: 6d0b mov r4, r2 + 1ac2: 07c6 br 0x1a4e // 1a4e <__pack_d+0xfa> + 1ac4: 341f movi r4, 31 + 1ac6: 610e subu r4, r3 + 1ac8: 4701 lsli r0, r7, 1 + 1aca: 7010 lsl r0, r4 + 1acc: 6d1b mov r4, r6 + 1ace: 710d lsr r4, r3 + 1ad0: 6d00 or r4, r0 + 1ad2: 6c1f mov r0, r7 + 1ad4: 700d lsr r0, r3 + 1ad6: b880 st.w r4, (r14, 0x0) + 1ad8: b801 st.w r0, (r14, 0x4) + 1ada: 07b3 br 0x1a40 // 1a40 <__pack_d+0xec> + 1adc: fffffc02 .long 0xfffffc02 + 1ae0: 000003ff .long 0x000003ff + 1ae4: 1fffffff .long 0x1fffffff + 1ae8: 000007ff .long 0x000007ff + 1aec: 0fffffff .long 0x0fffffff + +00001af0 <__unpack_d>: + 1af0: 1423 subi r14, r14, 12 + 1af2: b880 st.w r4, (r14, 0x0) + 1af4: b8c1 st.w r6, (r14, 0x4) + 1af6: b8e2 st.w r7, (r14, 0x8) + 1af8: 8843 ld.h r2, (r0, 0x6) + 1afa: 4251 lsli r2, r2, 17 + 1afc: 9061 ld.w r3, (r0, 0x4) + 1afe: 9080 ld.w r4, (r0, 0x0) + 1b00: 4a55 lsri r2, r2, 21 + 1b02: 8007 ld.b r0, (r0, 0x7) + 1b04: 436c lsli r3, r3, 12 + 1b06: 4807 lsri r0, r0, 7 + 1b08: 3a40 cmpnei r2, 0 + 1b0a: 4b6c lsri r3, r3, 12 + 1b0c: b101 st.w r0, (r1, 0x4) + 1b0e: 0819 bt 0x1b40 // 1b40 <__unpack_d+0x50> + 1b10: 6c93 mov r2, r4 + 1b12: 6c8c or r2, r3 + 1b14: 3a40 cmpnei r2, 0 + 1b16: 0c2d bf 0x1b70 // 1b70 <__unpack_d+0x80> + 1b18: 4c58 lsri r2, r4, 24 + 1b1a: 4368 lsli r3, r3, 8 + 1b1c: 6cc8 or r3, r2 + 1b1e: 3203 movi r2, 3 + 1b20: 4408 lsli r0, r4, 8 + 1b22: b140 st.w r2, (r1, 0x0) + 1b24: 1181 lrw r4, 0xfffffc01 // 1ba8 <__unpack_d+0xb8> + 1b26: 11c2 lrw r6, 0xfffffff // 1bac <__unpack_d+0xbc> + 1b28: 485f lsri r2, r0, 31 + 1b2a: 4361 lsli r3, r3, 1 + 1b2c: 6cc8 or r3, r2 + 1b2e: 64d8 cmphs r6, r3 + 1b30: 6c93 mov r2, r4 + 1b32: 4001 lsli r0, r0, 1 + 1b34: 2c00 subi r4, 1 + 1b36: 0bf9 bt 0x1b28 // 1b28 <__unpack_d+0x38> + 1b38: b142 st.w r2, (r1, 0x8) + 1b3a: b103 st.w r0, (r1, 0xc) + 1b3c: b164 st.w r3, (r1, 0x10) + 1b3e: 0414 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1b40: 101c lrw r0, 0x7ff // 1bb0 <__unpack_d+0xc0> + 1b42: 640a cmpne r2, r0 + 1b44: 0c19 bf 0x1b76 // 1b76 <__unpack_d+0x86> + 1b46: 1019 lrw r0, 0xfffffc01 // 1ba8 <__unpack_d+0xb8> + 1b48: 6080 addu r2, r0 + 1b4a: b142 st.w r2, (r1, 0x8) + 1b4c: 3203 movi r2, 3 + 1b4e: 43e8 lsli r7, r3, 8 + 1b50: b140 st.w r2, (r1, 0x0) + 1b52: 3380 movi r3, 128 + 1b54: 4c58 lsri r2, r4, 24 + 1b56: 6dc8 or r7, r2 + 1b58: 44c8 lsli r6, r4, 8 + 1b5a: 3200 movi r2, 0 + 1b5c: 4375 lsli r3, r3, 21 + 1b5e: 6d88 or r6, r2 + 1b60: 6dcc or r7, r3 + 1b62: b1c3 st.w r6, (r1, 0xc) + 1b64: b1e4 st.w r7, (r1, 0x10) + 1b66: 98e2 ld.w r7, (r14, 0x8) + 1b68: 98c1 ld.w r6, (r14, 0x4) + 1b6a: 9880 ld.w r4, (r14, 0x0) + 1b6c: 1403 addi r14, r14, 12 + 1b6e: 783c jmp r15 + 1b70: 3302 movi r3, 2 + 1b72: b160 st.w r3, (r1, 0x0) + 1b74: 07f9 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1b76: 6c93 mov r2, r4 + 1b78: 6c8c or r2, r3 + 1b7a: 3a40 cmpnei r2, 0 + 1b7c: 0c10 bf 0x1b9c // 1b9c <__unpack_d+0xac> + 1b7e: 3280 movi r2, 128 + 1b80: 424c lsli r2, r2, 12 + 1b82: 688c and r2, r3 + 1b84: 3a40 cmpnei r2, 0 + 1b86: 0c0e bf 0x1ba2 // 1ba2 <__unpack_d+0xb2> + 1b88: 3201 movi r2, 1 + 1b8a: b140 st.w r2, (r1, 0x0) + 1b8c: 4c58 lsri r2, r4, 24 + 1b8e: 4368 lsli r3, r3, 8 + 1b90: 6cc8 or r3, r2 + 1b92: 4408 lsli r0, r4, 8 + 1b94: 3b9b bclri r3, 27 + 1b96: b103 st.w r0, (r1, 0xc) + 1b98: b164 st.w r3, (r1, 0x10) + 1b9a: 07e6 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1b9c: 3304 movi r3, 4 + 1b9e: b160 st.w r3, (r1, 0x0) + 1ba0: 07e3 br 0x1b66 // 1b66 <__unpack_d+0x76> + 1ba2: b140 st.w r2, (r1, 0x0) + 1ba4: 07f4 br 0x1b8c // 1b8c <__unpack_d+0x9c> + 1ba6: 0000 bkpt + 1ba8: fffffc01 .long 0xfffffc01 + 1bac: 0fffffff .long 0x0fffffff + 1bb0: 000007ff .long 0x000007ff + +00001bb4 <__fpcmp_parts_d>: + 1bb4: 14c1 push r4 + 1bb6: 9060 ld.w r3, (r0, 0x0) + 1bb8: 3b01 cmphsi r3, 2 + 1bba: 0c12 bf 0x1bde // 1bde <__fpcmp_parts_d+0x2a> + 1bbc: 9140 ld.w r2, (r1, 0x0) + 1bbe: 3a01 cmphsi r2, 2 + 1bc0: 0c0f bf 0x1bde // 1bde <__fpcmp_parts_d+0x2a> + 1bc2: 3b44 cmpnei r3, 4 + 1bc4: 0c17 bf 0x1bf2 // 1bf2 <__fpcmp_parts_d+0x3e> + 1bc6: 3a44 cmpnei r2, 4 + 1bc8: 0c0f bf 0x1be6 // 1be6 <__fpcmp_parts_d+0x32> + 1bca: 3b42 cmpnei r3, 2 + 1bcc: 0c0b bf 0x1be2 // 1be2 <__fpcmp_parts_d+0x2e> + 1bce: 3a42 cmpnei r2, 2 + 1bd0: 0c13 bf 0x1bf6 // 1bf6 <__fpcmp_parts_d+0x42> + 1bd2: 9061 ld.w r3, (r0, 0x4) + 1bd4: 9141 ld.w r2, (r1, 0x4) + 1bd6: 648e cmpne r3, r2 + 1bd8: 0c14 bf 0x1c00 // 1c00 <__fpcmp_parts_d+0x4c> + 1bda: 3b40 cmpnei r3, 0 + 1bdc: 0808 bt 0x1bec // 1bec <__fpcmp_parts_d+0x38> + 1bde: 3001 movi r0, 1 + 1be0: 1481 pop r4 + 1be2: 3a42 cmpnei r2, 2 + 1be4: 0c28 bf 0x1c34 // 1c34 <__fpcmp_parts_d+0x80> + 1be6: 9161 ld.w r3, (r1, 0x4) + 1be8: 3b40 cmpnei r3, 0 + 1bea: 0bfa bt 0x1bde // 1bde <__fpcmp_parts_d+0x2a> + 1bec: 3000 movi r0, 0 + 1bee: 2800 subi r0, 1 + 1bf0: 1481 pop r4 + 1bf2: 3a44 cmpnei r2, 4 + 1bf4: 0c22 bf 0x1c38 // 1c38 <__fpcmp_parts_d+0x84> + 1bf6: 9061 ld.w r3, (r0, 0x4) + 1bf8: 3b40 cmpnei r3, 0 + 1bfa: 0bf9 bt 0x1bec // 1bec <__fpcmp_parts_d+0x38> + 1bfc: 3001 movi r0, 1 + 1bfe: 07f1 br 0x1be0 // 1be0 <__fpcmp_parts_d+0x2c> + 1c00: 9082 ld.w r4, (r0, 0x8) + 1c02: 9142 ld.w r2, (r1, 0x8) + 1c04: 6509 cmplt r2, r4 + 1c06: 0bea bt 0x1bda // 1bda <__fpcmp_parts_d+0x26> + 1c08: 6491 cmplt r4, r2 + 1c0a: 080d bt 0x1c24 // 1c24 <__fpcmp_parts_d+0x70> + 1c0c: 9044 ld.w r2, (r0, 0x10) + 1c0e: 9083 ld.w r4, (r0, 0xc) + 1c10: 9103 ld.w r0, (r1, 0xc) + 1c12: 9124 ld.w r1, (r1, 0x10) + 1c14: 6484 cmphs r1, r2 + 1c16: 0fe2 bf 0x1bda // 1bda <__fpcmp_parts_d+0x26> + 1c18: 644a cmpne r2, r1 + 1c1a: 0803 bt 0x1c20 // 1c20 <__fpcmp_parts_d+0x6c> + 1c1c: 6500 cmphs r0, r4 + 1c1e: 0fde bf 0x1bda // 1bda <__fpcmp_parts_d+0x26> + 1c20: 6448 cmphs r2, r1 + 1c22: 0805 bt 0x1c2c // 1c2c <__fpcmp_parts_d+0x78> + 1c24: 3b40 cmpnei r3, 0 + 1c26: 0fe3 bf 0x1bec // 1bec <__fpcmp_parts_d+0x38> + 1c28: 3001 movi r0, 1 + 1c2a: 07db br 0x1be0 // 1be0 <__fpcmp_parts_d+0x2c> + 1c2c: 6486 cmpne r1, r2 + 1c2e: 0803 bt 0x1c34 // 1c34 <__fpcmp_parts_d+0x80> + 1c30: 6410 cmphs r4, r0 + 1c32: 0ff9 bf 0x1c24 // 1c24 <__fpcmp_parts_d+0x70> + 1c34: 3000 movi r0, 0 + 1c36: 1481 pop r4 + 1c38: 9161 ld.w r3, (r1, 0x4) + 1c3a: 9041 ld.w r2, (r0, 0x4) + 1c3c: 5b09 subu r0, r3, r2 + 1c3e: 1481 pop r4 + +00001c40 <__memset_fast>: + 1c40: 14c3 push r4-r6 + 1c42: 7444 zextb r1, r1 + 1c44: 3a40 cmpnei r2, 0 + 1c46: 0c1f bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1c48: 6d43 mov r5, r0 + 1c4a: 6d03 mov r4, r0 + 1c4c: 3603 movi r6, 3 + 1c4e: 6918 and r4, r6 + 1c50: 3c40 cmpnei r4, 0 + 1c52: 0c1a bf 0x1c86 // 1c86 <__memset_fast+0x46> + 1c54: a520 st.b r1, (r5, 0x0) + 1c56: 2a00 subi r2, 1 + 1c58: 3a40 cmpnei r2, 0 + 1c5a: 0c15 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1c5c: 2500 addi r5, 1 + 1c5e: 6d17 mov r4, r5 + 1c60: 3603 movi r6, 3 + 1c62: 6918 and r4, r6 + 1c64: 3c40 cmpnei r4, 0 + 1c66: 0c10 bf 0x1c86 // 1c86 <__memset_fast+0x46> + 1c68: a520 st.b r1, (r5, 0x0) + 1c6a: 2a00 subi r2, 1 + 1c6c: 3a40 cmpnei r2, 0 + 1c6e: 0c0b bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1c70: 2500 addi r5, 1 + 1c72: 6d17 mov r4, r5 + 1c74: 3603 movi r6, 3 + 1c76: 6918 and r4, r6 + 1c78: 3c40 cmpnei r4, 0 + 1c7a: 0c06 bf 0x1c86 // 1c86 <__memset_fast+0x46> + 1c7c: a520 st.b r1, (r5, 0x0) + 1c7e: 2a00 subi r2, 1 + 1c80: 2500 addi r5, 1 + 1c82: 0402 br 0x1c86 // 1c86 <__memset_fast+0x46> + 1c84: 1483 pop r4-r6 + 1c86: 4168 lsli r3, r1, 8 + 1c88: 6c4c or r1, r3 + 1c8a: 4170 lsli r3, r1, 16 + 1c8c: 6c4c or r1, r3 + 1c8e: 3a2f cmplti r2, 16 + 1c90: 0809 bt 0x1ca2 // 1ca2 <__memset_fast+0x62> + 1c92: b520 st.w r1, (r5, 0x0) + 1c94: b521 st.w r1, (r5, 0x4) + 1c96: b522 st.w r1, (r5, 0x8) + 1c98: b523 st.w r1, (r5, 0xc) + 1c9a: 2a0f subi r2, 16 + 1c9c: 250f addi r5, 16 + 1c9e: 3a2f cmplti r2, 16 + 1ca0: 0ff9 bf 0x1c92 // 1c92 <__memset_fast+0x52> + 1ca2: 3a23 cmplti r2, 4 + 1ca4: 0806 bt 0x1cb0 // 1cb0 <__memset_fast+0x70> + 1ca6: 2a03 subi r2, 4 + 1ca8: b520 st.w r1, (r5, 0x0) + 1caa: 2503 addi r5, 4 + 1cac: 3a23 cmplti r2, 4 + 1cae: 0ffc bf 0x1ca6 // 1ca6 <__memset_fast+0x66> + 1cb0: 3a40 cmpnei r2, 0 + 1cb2: 0fe9 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1cb4: 2a00 subi r2, 1 + 1cb6: a520 st.b r1, (r5, 0x0) + 1cb8: 3a40 cmpnei r2, 0 + 1cba: 0fe5 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1cbc: 2a00 subi r2, 1 + 1cbe: a521 st.b r1, (r5, 0x1) + 1cc0: 3a40 cmpnei r2, 0 + 1cc2: 0fe1 bf 0x1c84 // 1c84 <__memset_fast+0x44> + 1cc4: a522 st.b r1, (r5, 0x2) + 1cc6: 1483 pop r4-r6 + +00001cc8 <__memcpy_fast>: + 1cc8: 14c3 push r4-r6 + 1cca: 6d83 mov r6, r0 + 1ccc: 6d07 mov r4, r1 + 1cce: 6d18 or r4, r6 + 1cd0: 3303 movi r3, 3 + 1cd2: 690c and r4, r3 + 1cd4: 3c40 cmpnei r4, 0 + 1cd6: 0c0b bf 0x1cec // 1cec <__memcpy_fast+0x24> + 1cd8: 3a40 cmpnei r2, 0 + 1cda: 0c08 bf 0x1cea // 1cea <__memcpy_fast+0x22> + 1cdc: 8160 ld.b r3, (r1, 0x0) + 1cde: 2100 addi r1, 1 + 1ce0: 2a00 subi r2, 1 + 1ce2: a660 st.b r3, (r6, 0x0) + 1ce4: 2600 addi r6, 1 + 1ce6: 3a40 cmpnei r2, 0 + 1ce8: 0bfa bt 0x1cdc // 1cdc <__memcpy_fast+0x14> + 1cea: 1483 pop r4-r6 + 1cec: 3a2f cmplti r2, 16 + 1cee: 080e bt 0x1d0a // 1d0a <__memcpy_fast+0x42> + 1cf0: 91a0 ld.w r5, (r1, 0x0) + 1cf2: 9161 ld.w r3, (r1, 0x4) + 1cf4: 9182 ld.w r4, (r1, 0x8) + 1cf6: b6a0 st.w r5, (r6, 0x0) + 1cf8: 91a3 ld.w r5, (r1, 0xc) + 1cfa: b661 st.w r3, (r6, 0x4) + 1cfc: b682 st.w r4, (r6, 0x8) + 1cfe: b6a3 st.w r5, (r6, 0xc) + 1d00: 2a0f subi r2, 16 + 1d02: 210f addi r1, 16 + 1d04: 260f addi r6, 16 + 1d06: 3a2f cmplti r2, 16 + 1d08: 0ff4 bf 0x1cf0 // 1cf0 <__memcpy_fast+0x28> + 1d0a: 3a23 cmplti r2, 4 + 1d0c: 0808 bt 0x1d1c // 1d1c <__memcpy_fast+0x54> + 1d0e: 9160 ld.w r3, (r1, 0x0) + 1d10: 2a03 subi r2, 4 + 1d12: 2103 addi r1, 4 + 1d14: b660 st.w r3, (r6, 0x0) + 1d16: 2603 addi r6, 4 + 1d18: 3a23 cmplti r2, 4 + 1d1a: 0ffa bf 0x1d0e // 1d0e <__memcpy_fast+0x46> + 1d1c: 3a40 cmpnei r2, 0 + 1d1e: 0fe6 bf 0x1cea // 1cea <__memcpy_fast+0x22> + 1d20: 8160 ld.b r3, (r1, 0x0) + 1d22: 2100 addi r1, 1 + 1d24: 2a00 subi r2, 1 + 1d26: a660 st.b r3, (r6, 0x0) + 1d28: 2600 addi r6, 1 + 1d2a: 07f9 br 0x1d1c // 1d1c <__memcpy_fast+0x54> + +00001d2c <__GI_strncmp>: + 1d2c: 14c1 push r4 + 1d2e: 6cc3 mov r3, r0 + 1d30: 6080 addu r2, r0 + 1d32: 040c br 0x1d4a // 1d4a <__GI_strncmp+0x1e> + 1d34: 8380 ld.b r4, (r3, 0x0) + 1d36: 8100 ld.b r0, (r1, 0x0) + 1d38: 6012 subu r0, r4 + 1d3a: 6c02 nor r0, r0 + 1d3c: 2000 addi r0, 1 + 1d3e: 3840 cmpnei r0, 0 + 1d40: 0808 bt 0x1d50 // 1d50 <__GI_strncmp+0x24> + 1d42: 3c40 cmpnei r4, 0 + 1d44: 0c06 bf 0x1d50 // 1d50 <__GI_strncmp+0x24> + 1d46: 2300 addi r3, 1 + 1d48: 2100 addi r1, 1 + 1d4a: 648c cmphs r3, r2 + 1d4c: 0ff4 bf 0x1d34 // 1d34 <__GI_strncmp+0x8> + 1d4e: 3000 movi r0, 0 + 1d50: 1481 pop r4 + +Disassembly of section .text.__main: + +00001d54 <__main>: +extern char _bss_start[]; +extern char _ebss[]; + + +void __main( void ) +{ + 1d54: 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 ) { + 1d56: 1009 lrw r0, 0x20000000 // 1d78 <__main+0x24> + 1d58: 1029 lrw r1, 0xad00 // 1d7c <__main+0x28> + 1d5a: 6442 cmpne r0, r1 + 1d5c: 0c05 bf 0x1d66 // 1d66 <__main+0x12> +// __memcpy_fast( dst, src, (_end_data - _start_data)); + memcpy( dst, src, (_end_data - _start_data)); + 1d5e: 1049 lrw r2, 0x200000b0 // 1d80 <__main+0x2c> + 1d60: 6082 subu r2, r0 + 1d62: e3ffffb3 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + } + + /* zero the bss + */ + if( _ebss - _bss_start ) { + 1d66: 1048 lrw r2, 0x20000c00 // 1d84 <__main+0x30> + 1d68: 1008 lrw r0, 0x200000b0 // 1d88 <__main+0x34> + 1d6a: 640a cmpne r2, r0 + 1d6c: 0c05 bf 0x1d76 // 1d76 <__main+0x22> +// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start )); + memset( _bss_start, 0x00, ( _ebss - _bss_start )); + 1d6e: 6082 subu r2, r0 + 1d70: 3100 movi r1, 0 + 1d72: e3ffff67 bsr 0x1c40 // 1c40 <__memset_fast> + } + + +} + 1d76: 1490 pop r15 + 1d78: 20000000 .long 0x20000000 + 1d7c: 0000ad00 .long 0x0000ad00 + 1d80: 200000b0 .long 0x200000b0 + 1d84: 20000c00 .long 0x20000c00 + 1d88: 200000b0 .long 0x200000b0 + +Disassembly of section .text.SYSCON_General_CMD.part.0: + +00001d8c : +/*************************************************************/ +void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X ) +{ + if (NewState != DISABLE) + { + if(ENDIS_X==ENDIS_EMOSC) + 1d8c: 3848 cmpnei r0, 8 + 1d8e: 080a bt 0x1da2 // 1da2 + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN + 1d90: 107a lrw r3, 0x2000004c // 1df8 + 1d92: 32ff movi r2, 255 + 1d94: 9320 ld.w r1, (r3, 0x0) + 1d96: 9160 ld.w r3, (r1, 0x0) + 1d98: 424c lsli r2, r2, 12 + 1d9a: 68c9 andn r3, r2 + 1d9c: 3bae bseti r3, 14 + 1d9e: 3bb2 bseti r3, 18 + 1da0: b160 st.w r3, (r1, 0x0) + SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control + 1da2: 1077 lrw r3, 0x2000005c // 1dfc + 1da4: 9360 ld.w r3, (r3, 0x0) + 1da6: 9341 ld.w r2, (r3, 0x4) + 1da8: 6c80 or r2, r0 + 1daa: b341 st.w r2, (r3, 0x4) + while(!(SYSCON->GCSR&ENDIS_X)); //check Enable? + 1dac: 9343 ld.w r2, (r3, 0xc) + 1dae: 6880 and r2, r0 + 1db0: 3a40 cmpnei r2, 0 + 1db2: 0ffd bf 0x1dac // 1dac + switch(ENDIS_X) + 1db4: 3842 cmpnei r0, 2 + 1db6: 0807 bt 0x1dc4 // 1dc4 + { + case ENDIS_IMOSC: + while (!(SYSCON->CKST & ENDIS_IMOSC)); + 1db8: 3102 movi r1, 2 + 1dba: 9344 ld.w r2, (r3, 0x10) + 1dbc: 6884 and r2, r1 + 1dbe: 3a40 cmpnei r2, 0 + 1dc0: 0ffd bf 0x1dba // 1dba + { + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + while(SYSCON->GCSR&ENDIS_X); //check Disable? + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + } +} + 1dc2: 783c jmp r15 + switch(ENDIS_X) + 1dc4: 3802 cmphsi r0, 3 + 1dc6: 0809 bt 0x1dd8 // 1dd8 + 1dc8: 3841 cmpnei r0, 1 + 1dca: 0bfc bt 0x1dc2 // 1dc2 + while (!(SYSCON->CKST & ENDIS_ISOSC)); + 1dcc: 3101 movi r1, 1 + 1dce: 9344 ld.w r2, (r3, 0x10) + 1dd0: 6884 and r2, r1 + 1dd2: 3a40 cmpnei r2, 0 + 1dd4: 0ffd bf 0x1dce // 1dce + 1dd6: 07f6 br 0x1dc2 // 1dc2 + switch(ENDIS_X) + 1dd8: 3848 cmpnei r0, 8 + 1dda: 0807 bt 0x1de8 // 1de8 + while (!(SYSCON->CKST & ENDIS_EMOSC)); + 1ddc: 3108 movi r1, 8 + 1dde: 9344 ld.w r2, (r3, 0x10) + 1de0: 6884 and r2, r1 + 1de2: 3a40 cmpnei r2, 0 + 1de4: 0ffd bf 0x1dde // 1dde + 1de6: 07ee br 0x1dc2 // 1dc2 + switch(ENDIS_X) + 1de8: 3850 cmpnei r0, 16 + 1dea: 0bec bt 0x1dc2 // 1dc2 + while (!(SYSCON->CKST & ENDIS_HFOSC)); + 1dec: 3110 movi r1, 16 + 1dee: 9344 ld.w r2, (r3, 0x10) + 1df0: 6884 and r2, r1 + 1df2: 3a40 cmpnei r2, 0 + 1df4: 0ffd bf 0x1dee // 1dee + 1df6: 07e6 br 0x1dc2 // 1dc2 + 1df8: 2000004c .long 0x2000004c + 1dfc: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_RST_VALUE: + +00001e00 : + SYSCON->RAMCHK=SYSCON_RAMCHK_RST; + 1e00: 106c lrw r3, 0x2000005c // 1e30 + 1e02: 104d lrw r2, 0xffff // 1e34 + 1e04: 9360 ld.w r3, (r3, 0x0) + 1e06: b345 st.w r2, (r3, 0x14) + SYSCON->EFLCHK=SYSCON_EFLCHK_RST; + 1e08: 104c lrw r2, 0xffffff // 1e38 + 1e0a: b346 st.w r2, (r3, 0x18) + SYSCON->SCLKCR=SYSCON_SCLKCR_RST; + 1e0c: 104c lrw r2, 0xd22d0000 // 1e3c + 1e0e: b347 st.w r2, (r3, 0x1c) + SYSCON->OSTR=SYSCON_OSTR_RST; + 1e10: 104c lrw r2, 0x70ff3bff // 1e40 + 1e12: b350 st.w r2, (r3, 0x40) + SYSCON->LVDCR=SYSCON_LVDCR_RST; + 1e14: 320a movi r2, 10 + 1e16: b353 st.w r2, (r3, 0x4c) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1e18: 102b lrw r1, 0x70c // 1e44 + SYSCON->EXIRT=SYSCON_EXIRT_RST; + 1e1a: 237f addi r3, 128 + 1e1c: 3200 movi r2, 0 + 1e1e: b345 st.w r2, (r3, 0x14) + SYSCON->EXIFT=SYSCON_EXIFT_RST; + 1e20: b346 st.w r2, (r3, 0x18) + SYSCON->IWDCR=SYSCON_IWDCR_RST; + 1e22: b32d st.w r1, (r3, 0x34) + SYSCON->IWDCNT=SYSCON_IWDCNT_RST; + 1e24: 1029 lrw r1, 0x3fe // 1e48 + 1e26: b32e st.w r1, (r3, 0x38) + SYSCON->EVTRG=SYSCON_EVTRG_RST; + 1e28: b35d st.w r2, (r3, 0x74) + SYSCON->EVPS=SYSCON_EVPS_RST; + 1e2a: b35e st.w r2, (r3, 0x78) + SYSCON->EVSWF=SYSCON_EVSWF_RST; + 1e2c: b35f st.w r2, (r3, 0x7c) +} + 1e2e: 783c jmp r15 + 1e30: 2000005c .long 0x2000005c + 1e34: 0000ffff .long 0x0000ffff + 1e38: 00ffffff .long 0x00ffffff + 1e3c: d22d0000 .long 0xd22d0000 + 1e40: 70ff3bff .long 0x70ff3bff + 1e44: 0000070c .long 0x0000070c + 1e48: 000003fe .long 0x000003fe + +Disassembly of section .text.SYSCON_General_CMD: + +00001e4c : +{ + 1e4c: 14d0 push r15 + if (NewState != DISABLE) + 1e4e: 3840 cmpnei r0, 0 + 1e50: 0c05 bf 0x1e5a // 1e5a + 1e52: 6c07 mov r0, r1 + 1e54: e3ffff9c bsr 0x1d8c // 1d8c +} + 1e58: 1490 pop r15 + SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control + 1e5a: 1068 lrw r3, 0x2000005c // 1e78 + 1e5c: 9360 ld.w r3, (r3, 0x0) + 1e5e: 9342 ld.w r2, (r3, 0x8) + 1e60: 6c84 or r2, r1 + 1e62: b342 st.w r2, (r3, 0x8) + while(SYSCON->GCSR&ENDIS_X); //check Disable? + 1e64: 9343 ld.w r2, (r3, 0xc) + 1e66: 6884 and r2, r1 + 1e68: 3a40 cmpnei r2, 0 + 1e6a: 0bfd bt 0x1e64 // 1e64 + SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit + 1e6c: 237f addi r3, 128 + 1e6e: 9301 ld.w r0, (r3, 0x4) + 1e70: 6c40 or r1, r0 + 1e72: b321 st.w r1, (r3, 0x4) +} + 1e74: 07f2 br 0x1e58 // 1e58 + 1e76: 0000 bkpt + 1e78: 2000005c .long 0x2000005c + +Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config: + +00001e7c : +//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 ) +{ + 1e7c: 14c2 push r4-r5 + if(SystemClk_data_x==HFOSC_48M) + 1e7e: 3b48 cmpnei r3, 8 + 1e80: 0828 bt 0x1ed0 // 1ed0 + { + IFC->CEDR=0X01; //CLKEN + 1e82: 109d lrw r4, 0x20000060 // 1ef4 + 1e84: 3501 movi r5, 1 + 1e86: 9480 ld.w r4, (r4, 0x0) + 1e88: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X04|(0X00<<16); //High speed mode + 1e8a: 3504 movi r5, 4 + 1e8c: 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)) + 1e8e: 5b83 subi r4, r3, 1 + 1e90: 3c01 cmphsi r4, 2 + 1e92: 0c2b bf 0x1ee8 // 1ee8 + { + 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)) + 1e94: 5b8b subi r4, r3, 3 + if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K) + 1e96: 3c04 cmphsi r4, 5 + 1e98: 0c03 bf 0x1e9e // 1e9e + ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M)) + 1e9a: 3b4b cmpnei r3, 11 + 1e9c: 0807 bt 0x1eaa // 1eaa + { + IFC->CEDR=0X01; //CLKEN + 1e9e: 1076 lrw r3, 0x20000060 // 1ef4 + 1ea0: 3401 movi r4, 1 + 1ea2: 9360 ld.w r3, (r3, 0x0) + 1ea4: b381 st.w r4, (r3, 0x4) + IFC->MR=0X00|(0X00<<16); //Low speed mode + 1ea6: 3400 movi r4, 0 + 1ea8: b385 st.w r4, (r3, 0x14) + } + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1eaa: 1094 lrw r4, 0xd22d0000 // 1ef8 + 1eac: 6c10 or r0, r4 + 1eae: 1074 lrw r3, 0x2000005c // 1efc + 1eb0: 6c40 or r1, r0 + 1eb2: 9360 ld.w r3, (r3, 0x0) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1eb4: 3080 movi r0, 128 + SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X; + 1eb6: b327 st.w r1, (r3, 0x1c) + while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable + 1eb8: 4001 lsli r0, r0, 1 + 1eba: 9324 ld.w r1, (r3, 0x10) + 1ebc: 6840 and r1, r0 + 1ebe: 3940 cmpnei r1, 0 + 1ec0: 0ffd bf 0x1eba // 1eba + SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16 + 1ec2: 1030 lrw r1, 0xc33c0000 // 1f00 + 1ec4: 6c48 or r1, r2 + 1ec6: b328 st.w r1, (r3, 0x20) + while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV + 1ec8: 9328 ld.w r1, (r3, 0x20) + 1eca: 644a cmpne r2, r1 + 1ecc: 0bfe bt 0x1ec8 // 1ec8 +} + 1ece: 1482 pop r4-r5 + if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M)) + 1ed0: 3b40 cmpnei r3, 0 + 1ed2: 0c03 bf 0x1ed8 // 1ed8 + 1ed4: 3b49 cmpnei r3, 9 + 1ed6: 0807 bt 0x1ee4 // 1ee4 + IFC->CEDR=0X01; //CLKEN + 1ed8: 1087 lrw r4, 0x20000060 // 1ef4 + 1eda: 3501 movi r5, 1 + 1edc: 9480 ld.w r4, (r4, 0x0) + 1ede: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X02|(0X00<<16); //Medium speed mode + 1ee0: 3502 movi r5, 2 + 1ee2: b4a5 st.w r5, (r4, 0x14) + if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M)) + 1ee4: 3b4a cmpnei r3, 10 + 1ee6: 0bd4 bt 0x1e8e // 1e8e + IFC->CEDR=0X01; //CLKEN + 1ee8: 1083 lrw r4, 0x20000060 // 1ef4 + 1eea: 3501 movi r5, 1 + 1eec: 9480 ld.w r4, (r4, 0x0) + 1eee: b4a1 st.w r5, (r4, 0x4) + IFC->MR=0X01|(0X00<<16); //Low speed mode + 1ef0: b4a5 st.w r5, (r4, 0x14) + 1ef2: 07d1 br 0x1e94 // 1e94 + 1ef4: 20000060 .long 0x20000060 + 1ef8: d22d0000 .long 0xd22d0000 + 1efc: 2000005c .long 0x2000005c + 1f00: c33c0000 .long 0xc33c0000 + +Disassembly of section .text.SYSCON_HFOSC_SELECTE: + +00001f04 : +//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) +{ + 1f04: 14d1 push r4, r15 + 1f06: 6d03 mov r4, r0 + SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC + 1f08: 3110 movi r1, 16 + 1f0a: 3000 movi r0, 0 + 1f0c: e3ffffa0 bsr 0x1e4c // 1e4c + SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X; + 1f10: 1066 lrw r3, 0x2000005c // 1f28 + 1f12: 9360 ld.w r3, (r3, 0x0) + 1f14: 9319 ld.w r0, (r3, 0x64) + 1f16: 3884 bclri r0, 4 + 1f18: 3885 bclri r0, 5 + 1f1a: 6c10 or r0, r4 + 1f1c: b319 st.w r0, (r3, 0x64) + 1f1e: 3010 movi r0, 16 + 1f20: e3ffff36 bsr 0x1d8c // 1d8c + SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC +} + 1f24: 1491 pop r4, r15 + 1f26: 0000 bkpt + 1f28: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_WDT_CMD: + +00001f2c : +//EntryParameter:,NewState +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_WDT_CMD(FunctionalStatus NewState) +{ + 1f2c: 106c lrw r3, 0x2000005c // 1f5c + if(NewState != DISABLE) + 1f2e: 3840 cmpnei r0, 0 + { + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1f30: 9360 ld.w r3, (r3, 0x0) + 1f32: 237f addi r3, 128 + if(NewState != DISABLE) + 1f34: 0c0a bf 0x1f48 // 1f48 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1f36: 104b lrw r2, 0x78870000 // 1f60 + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1f38: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT; + 1f3a: b34f st.w r2, (r3, 0x3c) + while(!(SYSCON->IWDCR&Check_IWDT_BUSY)); + 1f3c: 4125 lsli r1, r1, 5 + 1f3e: 934d ld.w r2, (r3, 0x34) + 1f40: 6884 and r2, r1 + 1f42: 3a40 cmpnei r2, 0 + 1f44: 0ffd bf 0x1f3e // 1f3e + else + { + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + while(SYSCON->IWDCR&Check_IWDT_BUSY); + } +} + 1f46: 783c jmp r15 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1f48: 1047 lrw r2, 0x788755aa // 1f64 + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1f4a: 3180 movi r1, 128 + SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT; + 1f4c: b34f st.w r2, (r3, 0x3c) + while(SYSCON->IWDCR&Check_IWDT_BUSY); + 1f4e: 4125 lsli r1, r1, 5 + 1f50: 934d ld.w r2, (r3, 0x34) + 1f52: 6884 and r2, r1 + 1f54: 3a40 cmpnei r2, 0 + 1f56: 0bfd bt 0x1f50 // 1f50 + 1f58: 07f7 br 0x1f46 // 1f46 + 1f5a: 0000 bkpt + 1f5c: 2000005c .long 0x2000005c + 1f60: 78870000 .long 0x78870000 + 1f64: 788755aa .long 0x788755aa + +Disassembly of section .text.SYSCON_IWDCNT_Reload: + +00001f68 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void SYSCON_IWDCNT_Reload(void) +{ + SYSCON->IWDCNT=CLR_IWDT; + 1f68: 1064 lrw r3, 0x2000005c // 1f78 + 1f6a: 32b4 movi r2, 180 + 1f6c: 9360 ld.w r3, (r3, 0x0) + 1f6e: 237f addi r3, 128 + 1f70: 4257 lsli r2, r2, 23 + 1f72: b34e st.w r2, (r3, 0x38) +} + 1f74: 783c jmp r15 + 1f76: 0000 bkpt + 1f78: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_IWDCNT_Config: + +00001f7c : +//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; + 1f7c: 1044 lrw r2, 0x87780000 // 1f8c + 1f7e: 1065 lrw r3, 0x2000005c // 1f90 + 1f80: 6c48 or r1, r2 + 1f82: 9360 ld.w r3, (r3, 0x0) + 1f84: 6c04 or r0, r1 + 1f86: 237f addi r3, 128 + 1f88: b30d st.w r0, (r3, 0x34) +} + 1f8a: 783c jmp r15 + 1f8c: 87780000 .long 0x87780000 + 1f90: 2000005c .long 0x2000005c + +Disassembly of section .text.SYSCON_LVD_Config: + +00001f94 : +//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) +{ + 1f94: 14c3 push r4-r6 + 1f96: 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; + 1f98: 10c5 lrw r6, 0xb44b0000 // 1fac + 1f9a: 6d18 or r4, r6 + 1f9c: 6cd0 or r3, r4 + 1f9e: 6c8c or r2, r3 + 1fa0: 6c48 or r1, r2 + 1fa2: 10a4 lrw r5, 0x2000005c // 1fb0 + 1fa4: 6c04 or r0, r1 + 1fa6: 95a0 ld.w r5, (r5, 0x0) + 1fa8: b513 st.w r0, (r5, 0x4c) +} + 1faa: 1483 pop r4-r6 + 1fac: b44b0000 .long 0xb44b0000 + 1fb0: 2000005c .long 0x2000005c + +Disassembly of section .text.LVD_Int_Enable: + +00001fb4 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void LVD_Int_Enable(void) +{ + SYSCON->ICR = LVD_INT_ST; //clear LVD INT status + 1fb4: 1066 lrw r3, 0x2000005c // 1fcc + 1fb6: 3180 movi r1, 128 + 1fb8: 9360 ld.w r3, (r3, 0x0) + 1fba: 3280 movi r2, 128 + 1fbc: 604c addu r1, r3 + 1fbe: 4244 lsli r2, r2, 4 + 1fc0: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= LVD_INT_ST; + 1fc2: 935d ld.w r2, (r3, 0x74) + 1fc4: 3aab bseti r2, 11 + 1fc6: b35d st.w r2, (r3, 0x74) +} + 1fc8: 783c jmp r15 + 1fca: 0000 bkpt + 1fcc: 2000005c .long 0x2000005c + +Disassembly of section .text.IWDT_Int_Enable: + +00001fd0 : +//EntryParameter:NONE +//ReturnValue: NONE +/*************************************************************/ +void IWDT_Int_Enable(void) +{ + SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status + 1fd0: 1066 lrw r3, 0x2000005c // 1fe8 + 1fd2: 3180 movi r1, 128 + 1fd4: 9360 ld.w r3, (r3, 0x0) + 1fd6: 3280 movi r2, 128 + 1fd8: 604c addu r1, r3 + 1fda: 4241 lsli r2, r2, 1 + 1fdc: b141 st.w r2, (r1, 0x4) + SYSCON->IMER |= IWDT_INT_ST; + 1fde: 935d ld.w r2, (r3, 0x74) + 1fe0: 3aa8 bseti r2, 8 + 1fe2: b35d st.w r2, (r3, 0x74) +} + 1fe4: 783c jmp r15 + 1fe6: 0000 bkpt + 1fe8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_trigger_CMD: + +00001fec : +//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) + 1fec: 3a40 cmpnei r2, 0 + 1fee: 0c04 bf 0x1ff6 // 1ff6 + 1ff0: 3a41 cmpnei r2, 1 + 1ff2: 0c0e bf 0x200e // 200e + { + SYSCON->EXIFT &=~EXIPIN; + } + break; + } +} + 1ff4: 783c jmp r15 + 1ff6: 106d lrw r3, 0x2000005c // 2028 + if(NewState != DISABLE) + 1ff8: 3840 cmpnei r0, 0 + SYSCON->EXIRT |=EXIPIN; + 1ffa: 9360 ld.w r3, (r3, 0x0) + 1ffc: 237f addi r3, 128 + 1ffe: 9345 ld.w r2, (r3, 0x14) + if(NewState != DISABLE) + 2000: 0c04 bf 0x2008 // 2008 + SYSCON->EXIRT |=EXIPIN; + 2002: 6c48 or r1, r2 + 2004: b325 st.w r1, (r3, 0x14) + 2006: 07f7 br 0x1ff4 // 1ff4 + SYSCON->EXIRT &=~EXIPIN; + 2008: 6885 andn r2, r1 + 200a: b345 st.w r2, (r3, 0x14) + 200c: 07f4 br 0x1ff4 // 1ff4 + 200e: 1067 lrw r3, 0x2000005c // 2028 + if(NewState != DISABLE) + 2010: 3840 cmpnei r0, 0 + SYSCON->EXIFT |=EXIPIN; + 2012: 9360 ld.w r3, (r3, 0x0) + 2014: 237f addi r3, 128 + 2016: 9346 ld.w r2, (r3, 0x18) + if(NewState != DISABLE) + 2018: 0c04 bf 0x2020 // 2020 + SYSCON->EXIFT |=EXIPIN; + 201a: 6c48 or r1, r2 + 201c: b326 st.w r1, (r3, 0x18) + 201e: 07eb br 0x1ff4 // 1ff4 + SYSCON->EXIFT &=~EXIPIN; + 2020: 6885 andn r2, r1 + 2022: b346 st.w r2, (r3, 0x18) +} + 2024: 07e8 br 0x1ff4 // 1ff4 + 2026: 0000 bkpt + 2028: 2000005c .long 0x2000005c + +Disassembly of section .text.EXTI_interrupt_CMD: + +0000202c : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN) +{ + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 202c: 106b lrw r3, 0x2000005c // 2058 + 202e: 104c lrw r2, 0x3fff // 205c + 2030: 9360 ld.w r3, (r3, 0x0) + 2032: 237f addi r3, 128 + if(NewState != DISABLE) + 2034: 3840 cmpnei r0, 0 + SYSCON->EXICR = 0X3FFF; //Claer EXI INT status + 2036: b34b st.w r2, (r3, 0x2c) + if(NewState != DISABLE) + 2038: 0c0c bf 0x2050 // 2050 + { + SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable + 203a: 9347 ld.w r2, (r3, 0x1c) + 203c: 6c84 or r2, r1 + 203e: b347 st.w r2, (r3, 0x1c) + while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not + 2040: 9349 ld.w r2, (r3, 0x24) + 2042: 6884 and r2, r1 + 2044: 3a40 cmpnei r2, 0 + 2046: 0ffd bf 0x2040 // 2040 + SYSCON->EXICR |=EXIPIN; // Clear EXI status bit + 2048: 934b ld.w r2, (r3, 0x2c) + 204a: 6c48 or r1, r2 + 204c: b32b st.w r1, (r3, 0x2c) + } + else + { + SYSCON->EXIDR|=EXIPIN; + } +} + 204e: 783c jmp r15 + SYSCON->EXIDR|=EXIPIN; + 2050: 9348 ld.w r2, (r3, 0x20) + 2052: 6c48 or r1, r2 + 2054: b328 st.w r1, (r3, 0x20) +} + 2056: 07fc br 0x204e // 204e + 2058: 2000005c .long 0x2000005c + 205c: 00003fff .long 0x00003fff + +Disassembly of section .text.GPIO_EXTI_interrupt: + +00002060 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE) +{ + GPIOX->IECR=GPIO_IECR_VALUE; + 2060: b02b st.w r1, (r0, 0x2c) +} + 2062: 783c jmp r15 + +Disassembly of section .text.EXI3_Int_Enable: + +00002064 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 2064: 3380 movi r3, 128 + 2066: 436f lsli r3, r3, 15 + 2068: 1042 lrw r2, 0xe000e100 // 2070 + 206a: b260 st.w r3, (r2, 0x0) +} + 206c: 783c jmp r15 + 206e: 0000 bkpt + 2070: e000e100 .long 0xe000e100 + +Disassembly of section .text.EXI4_Int_Enable: + +00002074 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI4_INT); + 2074: 3380 movi r3, 128 + 2076: 4370 lsli r3, r3, 16 + 2078: 1042 lrw r2, 0xe000e100 // 2080 + 207a: b260 st.w r3, (r2, 0x0) +} + 207c: 783c jmp r15 + 207e: 0000 bkpt + 2080: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Enable: + +00002084 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Enable(void) +{ + INTC_ISER_WRITE(SYSCON_INT); + 2084: 3202 movi r2, 2 + 2086: 1062 lrw r3, 0xe000e100 // 208c + 2088: b340 st.w r2, (r3, 0x0) +} + 208a: 783c jmp r15 + 208c: e000e100 .long 0xe000e100 + +Disassembly of section .text.SYSCON_Int_Disable: + +00002090 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_Int_Disable(void) +{ + INTC_ICER_WRITE(SYSCON_INT); + 2090: 3202 movi r2, 2 + 2092: 1062 lrw r3, 0xe000e180 // 2098 + 2094: b340 st.w r2, (r3, 0x0) +} + 2096: 783c jmp r15 + 2098: e000e180 .long 0xe000e180 + +Disassembly of section .text.SYSCON_INT_Priority: + +0000209c : +//80:Priority 2 +//C0:Priority 3 lowest +/*************************************************************/ +void SYSCON_INT_Priority(void) +{ + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 209c: 1066 lrw r3, 0xe000e400 // 20b4 + 209e: 1047 lrw r2, 0xc0c0c0c0 // 20b8 + 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 + 20a0: 1027 lrw r1, 0xc0c000c0 // 20bc + INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit + 20a2: b340 st.w r2, (r3, 0x0) + INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7 + 20a4: b341 st.w r2, (r3, 0x4) + INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11 + 20a6: b342 st.w r2, (r3, 0x8) + INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15 + 20a8: b343 st.w r2, (r3, 0xc) + INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19 + 20aa: b344 st.w r2, (r3, 0x10) + INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23 + 20ac: b345 st.w r2, (r3, 0x14) + INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27 + 20ae: b326 st.w r1, (r3, 0x18) + INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31 + 20b0: b347 st.w r2, (r3, 0x1c) +} + 20b2: 783c jmp r15 + 20b4: e000e400 .long 0xe000e400 + 20b8: c0c0c0c0 .long 0xc0c0c0c0 + 20bc: c0c000c0 .long 0xc0c000c0 + +Disassembly of section .text.Set_INT_Priority: + +000020c0 : +//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) +{ + 20c0: 14c1 push r4 + 20c2: 4862 lsri r3, r0, 2 + 20c4: 4342 lsli r2, r3, 2 + 20c6: 106a lrw r3, 0x20000064 // 20ec + U8_T i_temp,j_temp; + U32_T k_temp; + i_temp=(int_name%4)*8; + 20c8: 3403 movi r4, 3 + 20ca: 9360 ld.w r3, (r3, 0x0) + 20cc: 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)); + 20de: 4126 lsli r1, r1, 6 + k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp)); + 20e2: 7040 lsl r1, r0 + 20e4: 6c48 or r1, r2 + 20e6: b320 st.w r1, (r3, 0x0) +} + 20e8: 1481 pop r4 + 20ea: 0000 bkpt + 20ec: 20000064 .long 0x20000064 + +Disassembly of section .text.GPIO_DeInit: + +000020f0 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 20f0: 1075 lrw r3, 0x2000004c // 2144 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 20f2: 1036 lrw r1, 0x20000048 // 2148 + 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; + 20f4: 1016 lrw r0, 0xffff // 214c + GPIOA0->CONLR &= 0xFF000000; + 20f6: 9340 ld.w r2, (r3, 0x0) + 20f8: 9260 ld.w r3, (r2, 0x0) + 20fa: 4b78 lsri r3, r3, 24 + 20fc: 4378 lsli r3, r3, 24 + 20fe: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 2100: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 2102: 3300 movi r3, 0 + 2104: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 2106: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 2108: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 210a: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 210c: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 210e: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 2110: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 2112: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 2114: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 2116: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 2118: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 211a: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 211c: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 211e: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 2120: 303f movi r0, 63 + 2122: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 2124: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 2126: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 2128: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 212a: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 212c: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 212e: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 2130: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 2132: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 2134: 1047 lrw r2, 0x20000044 // 2150 + 2136: 9240 ld.w r2, (r2, 0x0) + 2138: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 213a: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 213c: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 213e: 330f movi r3, 15 + 2140: b263 st.w r3, (r2, 0xc) +} + 2142: 783c jmp r15 + 2144: 2000004c .long 0x2000004c + 2148: 20000048 .long 0x20000048 + 214c: 0000ffff .long 0x0000ffff + 2150: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00002154 : +//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) +{ + 2154: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 2156: 3907 cmphsi r1, 8 +{ + 2158: 6d03 mov r4, r0 + if(PinNum<8) + 215a: 0830 bt 0x21ba // 21ba + { + switch (PinNum) + 215c: 5903 subi r0, r1, 1 + 215e: 3806 cmphsi r0, 7 + 2160: 0827 bt 0x21ae // 21ae + 2162: e3fff5cd bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2166: 1004 .short 0x1004 + 2168: 1d1a1613 .long 0x1d1a1613 + 216c: 0021 .short 0x0021 + { + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 216e: 3300 movi r3, 0 + 2170: 3104 movi r1, 4 + 2172: 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) + 2174: 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< + 218a: 07f5 br 0x2174 // 2174 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 218c: 310c movi r1, 12 + 218e: 1166 lrw r3, 0xffff0fff // 2224 + 2190: 07f2 br 0x2174 // 2174 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 2192: 3110 movi r1, 16 + 2194: 1165 lrw r3, 0xfff10000 // 2228 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 2196: 2b00 subi r3, 1 + 2198: 07ee br 0x2174 // 2174 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 219a: 3114 movi r1, 20 + 219c: 1164 lrw r3, 0xff100000 // 222c + 219e: 07fc br 0x2196 // 2196 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 21a0: 33f1 movi r3, 241 + 21a2: 3118 movi r1, 24 + 21a4: 4378 lsli r3, r3, 24 + 21a6: 07f8 br 0x2196 // 2196 + case 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 21a8: 311c movi r1, 28 + 21aa: 1162 lrw r3, 0xfffffff // 2230 + 21ac: 07e4 br 0x2174 // 2174 + case 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + 21ae: 3300 movi r3, 0 + 21b0: 3100 movi r1, 0 + 21b2: 2b0f subi r3, 16 + 21b4: 07e0 br 0x2174 // 2174 + (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 21ba: 390f cmphsi r1, 16 + 21bc: 0be4 bt 0x2184 // 2184 + switch (PinNum) + 21be: 2908 subi r1, 9 + 21c0: 3906 cmphsi r1, 7 + 21c2: 6c07 mov r0, r1 + 21c4: 0827 bt 0x2212 // 2212 + 21c6: e3fff59b bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 21ca: 1004 .short 0x1004 + 21cc: 1d1a1613 .long 0x1d1a1613 + 21d0: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 21d2: 3300 movi r3, 0 + 21d4: 3104 movi r1, 4 + 21d6: 2bf0 subi r3, 241 + if (Dir) + 21d8: 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; + 21ea: 3108 movi r1, 8 + 21ec: 106d lrw r3, 0xfffff0ff // 2220 + 21ee: 07f5 br 0x21d8 // 21d8 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 21f0: 310c movi r1, 12 + 21f2: 106d lrw r3, 0xffff0fff // 2224 + 21f4: 07f2 br 0x21d8 // 21d8 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 21f6: 3110 movi r1, 16 + 21f8: 106c lrw r3, 0xfff10000 // 2228 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 21fa: 2b00 subi r3, 1 + 21fc: 07ee br 0x21d8 // 21d8 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 21fe: 3114 movi r1, 20 + 2200: 106b lrw r3, 0xff100000 // 222c + 2202: 07fc br 0x21fa // 21fa + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 2204: 33f1 movi r3, 241 + 2206: 3118 movi r1, 24 + 2208: 4378 lsli r3, r3, 24 + 220a: 07f8 br 0x21fa // 21fa + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 220c: 311c movi r1, 28 + 220e: 1069 lrw r3, 0xfffffff // 2230 + 2210: 07e4 br 0x21d8 // 21d8 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 2212: 3300 movi r3, 0 + 2214: 3100 movi r1, 0 + 2216: 2b0f subi r3, 16 + 2218: 07e0 br 0x21d8 // 21d8 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 221e: 0000 bkpt + 2220: fffff0ff .long 0xfffff0ff + 2224: ffff0fff .long 0xffff0fff + 2228: fff10000 .long 0xfff10000 + 222c: ff100000 .long 0xff100000 + 2230: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00002234 : +//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)); + 2234: 4121 lsli r1, r1, 1 + 2236: 3203 movi r2, 3 + 2238: 9068 ld.w r3, (r0, 0x20) + 223a: 7084 lsl r2, r1 + 223c: 68c9 andn r3, r2 + 223e: 3201 movi r2, 1 + 2240: 7084 lsl r2, r1 + 2242: 6cc8 or r3, r2 + 2244: b068 st.w r3, (r0, 0x20) +} + 2246: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00002248 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 2248: 4121 lsli r1, r1, 1 + 224a: 3301 movi r3, 1 + 224c: 9049 ld.w r2, (r0, 0x24) + 224e: 70c4 lsl r3, r1 + 2250: 6cc8 or r3, r2 + 2252: b069 st.w r3, (r0, 0x24) +} + 2254: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00002258 : +//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) +{ + 2258: 14c1 push r4 + 225a: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 225c: 3a0f cmphsi r2, 16 + 225e: 084f bt 0x22fc // 22fc + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 2260: 6ccb mov r3, r2 + 2262: 3b83 bclri r3, 3 + 2264: 3b40 cmpnei r3, 0 + 2266: 0813 bt 0x228c // 228c + { + R_data_temp=0xfffffff0; + 2268: 2b0f subi r3, 16 + 226a: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 226c: 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) + 226e: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 2270: dc6e0003 st.b r3, (r14, 0x3) + 2274: 1176 lrw r3, 0x20000044 // 234c + if(Selete_EXI_x<8) + 2276: 0c38 bf 0x22e6 // 22e6 + { + 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)) + 228c: 3b41 cmpnei r3, 1 + 228e: 0806 bt 0x229a // 229a + R_data_temp=0xffffff0f; + 2290: 3300 movi r3, 0 + 2292: 2bf0 subi r3, 241 + 2294: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 2296: 3304 movi r3, 4 + 2298: 07eb br 0x226e // 226e + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 229a: 3b42 cmpnei r3, 2 + 229c: 0805 bt 0x22a6 // 22a6 + R_data_temp=0xfffff0ff; + 229e: 116d lrw r3, 0xfffff0ff // 2350 + 22a0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 22a2: 3308 movi r3, 8 + 22a4: 07e5 br 0x226e // 226e + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 22a6: 3b43 cmpnei r3, 3 + 22a8: 0805 bt 0x22b2 // 22b2 + R_data_temp=0xffff0fff; + 22aa: 116b lrw r3, 0xffff0fff // 2354 + 22ac: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 22ae: 330c movi r3, 12 + 22b0: 07df br 0x226e // 226e + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 22b2: 3b44 cmpnei r3, 4 + 22b4: 0806 bt 0x22c0 // 22c0 + R_data_temp=0xfff0ffff; + 22b6: 1169 lrw r3, 0xfff10000 // 2358 + 22b8: 2b00 subi r3, 1 + 22ba: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 22bc: 3310 movi r3, 16 + 22be: 07d8 br 0x226e // 226e + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 22c0: 3b45 cmpnei r3, 5 + 22c2: 0806 bt 0x22ce // 22ce + R_data_temp=0xff0fffff; + 22c4: 1166 lrw r3, 0xff100000 // 235c + 22c6: 2b00 subi r3, 1 + 22c8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 22ca: 3314 movi r3, 20 + 22cc: 07d1 br 0x226e // 226e + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 22ce: 3b46 cmpnei r3, 6 + 22d0: 0807 bt 0x22de // 22de + R_data_temp=0xf0ffffff; + 22d2: 33f1 movi r3, 241 + 22d4: 4378 lsli r3, r3, 24 + 22d6: 2b00 subi r3, 1 + 22d8: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 22da: 3318 movi r3, 24 + 22dc: 07c9 br 0x226e // 226e + R_data_temp=0x0fffffff; + 22de: 1161 lrw r3, 0xfffffff // 2360 + 22e0: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 22e2: 331c movi r3, 28 + 22e4: 07c5 br 0x226e // 226e + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 22f8: 1402 addi r14, r14, 8 + 22fa: 1481 pop r4 + else if(Selete_EXI_x<20) + 22fc: 3a13 cmphsi r2, 20 + 22fe: 0bfd bt 0x22f8 // 22f8 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 2300: 3840 cmpnei r0, 0 + 2302: 0814 bt 0x232a // 232a + 2304: 3300 movi r3, 0 + 2306: 2b0f subi r3, 16 + 2308: 60c8 addu r3, r2 + 230a: 3b01 cmphsi r3, 2 + 230c: 0bf6 bt 0x22f8 // 22f8 + if(Selete_EXI_x==16) + 230e: 3a50 cmpnei r2, 16 + 2310: 106f lrw r3, 0x20000044 // 234c + 2312: 0806 bt 0x231e // 231e + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2314: 9340 ld.w r2, (r3, 0x0) + 2316: 9262 ld.w r3, (r2, 0x8) + 2318: 6c4c or r1, r3 + 231a: b222 st.w r1, (r2, 0x8) + 231c: 07ee br 0x22f8 // 22f8 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 231e: 9360 ld.w r3, (r3, 0x0) + 2320: 9342 ld.w r2, (r3, 0x8) + 2322: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2324: 6c48 or r1, r2 + 2326: b322 st.w r1, (r3, 0x8) +} + 2328: 07e8 br 0x22f8 // 22f8 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 232a: 3842 cmpnei r0, 2 + 232c: 0be6 bt 0x22f8 // 22f8 + 232e: 3300 movi r3, 0 + 2330: 2b11 subi r3, 18 + 2332: 60c8 addu r3, r2 + 2334: 3b01 cmphsi r3, 2 + 2336: 0be1 bt 0x22f8 // 22f8 + 2338: 1065 lrw r3, 0x20000044 // 234c + if(Selete_EXI_x==18) + 233a: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 233c: 9360 ld.w r3, (r3, 0x0) + 233e: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 2340: 0803 bt 0x2346 // 2346 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2342: 4128 lsli r1, r1, 8 + 2344: 07f0 br 0x2324 // 2324 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2346: 412c lsli r1, r1, 12 + 2348: 07ee br 0x2324 // 2324 + 234a: 0000 bkpt + 234c: 20000044 .long 0x20000044 + 2350: fffff0ff .long 0xfffff0ff + 2354: ffff0fff .long 0xffff0fff + 2358: fff10000 .long 0xfff10000 + 235c: ff100000 .long 0xff100000 + 2360: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOA0_EXI_Init: + +00002364 : +//IO EXI SET +//EntryParameter:EXI_IO(EXI0~EXI13) +//ReturnValue:NONE +/*************************************************************/ +void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2364: 14d0 push r15 + switch (EXI_IO) + 2366: 380f cmphsi r0, 16 + 2368: 0812 bt 0x238c // 238c + 236a: 117d lrw r3, 0x2000004c // 245c + 236c: e3fff4c8 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2370: 1d150f08 .long 0x1d150f08 + 2374: 39322b24 .long 0x39322b24 + 2378: 544c463f .long 0x544c463f + 237c: 7069625b .long 0x7069625b + { + case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2380: 9340 ld.w r2, (r3, 0x0) + 2382: 9260 ld.w r3, (r2, 0x0) + 2384: 310f movi r1, 15 + 2386: 68c5 andn r3, r1 + 2388: 3ba0 bseti r3, 0 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 238a: 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; + } +} + 238c: 1490 pop r15 + case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 238e: 9340 ld.w r2, (r3, 0x0) + 2390: 9260 ld.w r3, (r2, 0x0) + 2392: 31f0 movi r1, 240 + 2394: 68c5 andn r3, r1 + 2396: 3ba4 bseti r3, 4 + 2398: 07f9 br 0x238a // 238a + case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 239a: 9320 ld.w r1, (r3, 0x0) + 239c: 32f0 movi r2, 240 + 239e: 9160 ld.w r3, (r1, 0x0) + 23a0: 4244 lsli r2, r2, 4 + 23a2: 68c9 andn r3, r2 + 23a4: 3ba8 bseti r3, 8 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 23a6: b160 st.w r3, (r1, 0x0) + 23a8: 07f2 br 0x238c // 238c + case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 23aa: 9320 ld.w r1, (r3, 0x0) + 23ac: 32f0 movi r2, 240 + 23ae: 9160 ld.w r3, (r1, 0x0) + 23b0: 4248 lsli r2, r2, 8 + 23b2: 68c9 andn r3, r2 + 23b4: 3bac bseti r3, 12 + 23b6: 07f8 br 0x23a6 // 23a6 + case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 23b8: 9320 ld.w r1, (r3, 0x0) + 23ba: 32f0 movi r2, 240 + 23bc: 9160 ld.w r3, (r1, 0x0) + 23be: 424c lsli r2, r2, 12 + 23c0: 68c9 andn r3, r2 + 23c2: 3bb0 bseti r3, 16 + 23c4: 07f1 br 0x23a6 // 23a6 + case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 23c6: 9320 ld.w r1, (r3, 0x0) + 23c8: 32f0 movi r2, 240 + 23ca: 9160 ld.w r3, (r1, 0x0) + 23cc: 4250 lsli r2, r2, 16 + 23ce: 68c9 andn r3, r2 + 23d0: 3bb4 bseti r3, 20 + 23d2: 07ea br 0x23a6 // 23a6 + case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break; + 23d4: 9320 ld.w r1, (r3, 0x0) + 23d6: 32f0 movi r2, 240 + 23d8: 9160 ld.w r3, (r1, 0x0) + 23da: 4254 lsli r2, r2, 20 + 23dc: 68c9 andn r3, r2 + 23de: 3bb8 bseti r3, 24 + 23e0: 07e3 br 0x23a6 // 23a6 + case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break; + 23e2: 9340 ld.w r2, (r3, 0x0) + 23e4: 9260 ld.w r3, (r2, 0x0) + 23e6: 4364 lsli r3, r3, 4 + 23e8: 4b64 lsri r3, r3, 4 + 23ea: 3bbc bseti r3, 28 + 23ec: 07cf br 0x238a // 238a + case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break; + 23ee: 9340 ld.w r2, (r3, 0x0) + 23f0: 9261 ld.w r3, (r2, 0x4) + 23f2: 310f movi r1, 15 + 23f4: 68c5 andn r3, r1 + 23f6: 3ba0 bseti r3, 0 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 23f8: b261 st.w r3, (r2, 0x4) +} + 23fa: 07c9 br 0x238c // 238c + case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break; + 23fc: 9340 ld.w r2, (r3, 0x0) + 23fe: 9261 ld.w r3, (r2, 0x4) + 2400: 31f0 movi r1, 240 + 2402: 68c5 andn r3, r1 + 2404: 3ba4 bseti r3, 4 + 2406: 07f9 br 0x23f8 // 23f8 + case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break; + 2408: 9320 ld.w r1, (r3, 0x0) + 240a: 32f0 movi r2, 240 + 240c: 9161 ld.w r3, (r1, 0x4) + 240e: 4244 lsli r2, r2, 4 + 2410: 68c9 andn r3, r2 + 2412: 3ba8 bseti r3, 8 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2414: b161 st.w r3, (r1, 0x4) + 2416: 07bb br 0x238c // 238c + case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break; + 2418: 9320 ld.w r1, (r3, 0x0) + 241a: 32f0 movi r2, 240 + 241c: 9161 ld.w r3, (r1, 0x4) + 241e: 4248 lsli r2, r2, 8 + 2420: 68c9 andn r3, r2 + 2422: 3bac bseti r3, 12 + 2424: 07f8 br 0x2414 // 2414 + case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break; + 2426: 9320 ld.w r1, (r3, 0x0) + 2428: 32f0 movi r2, 240 + 242a: 9161 ld.w r3, (r1, 0x4) + 242c: 424c lsli r2, r2, 12 + 242e: 68c9 andn r3, r2 + 2430: 3bb0 bseti r3, 16 + 2432: 07f1 br 0x2414 // 2414 + case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break; + 2434: 9320 ld.w r1, (r3, 0x0) + 2436: 32f0 movi r2, 240 + 2438: 9161 ld.w r3, (r1, 0x4) + 243a: 4250 lsli r2, r2, 16 + 243c: 68c9 andn r3, r2 + 243e: 3bb4 bseti r3, 20 + 2440: 07ea br 0x2414 // 2414 + case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break; + 2442: 9320 ld.w r1, (r3, 0x0) + 2444: 32f0 movi r2, 240 + 2446: 9161 ld.w r3, (r1, 0x4) + 2448: 4254 lsli r2, r2, 20 + 244a: 68c9 andn r3, r2 + 244c: 3bb8 bseti r3, 24 + 244e: 07e3 br 0x2414 // 2414 + case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break; + 2450: 9340 ld.w r2, (r3, 0x0) + 2452: 9261 ld.w r3, (r2, 0x4) + 2454: 4364 lsli r3, r3, 4 + 2456: 4b64 lsri r3, r3, 4 + 2458: 3bbc bseti r3, 28 + 245a: 07cf br 0x23f8 // 23f8 + 245c: 2000004c .long 0x2000004c + +Disassembly of section .text.GPIOB0_EXI_Init: + +00002460 : +void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO) +{ + 2460: 14d0 push r15 + switch (EXI_IO) + 2462: 3805 cmphsi r0, 6 + 2464: 080d bt 0x247e // 247e + 2466: 1079 lrw r3, 0x20000048 // 24c8 + 2468: e3fff44a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 246c: 18100a03 .long 0x18100a03 + 2470: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2472: 9340 ld.w r2, (r3, 0x0) + 2474: 9260 ld.w r3, (r2, 0x0) + 2476: 310f movi r1, 15 + 2478: 68c5 andn r3, r1 + 247a: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 247c: b260 st.w r3, (r2, 0x0) + 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; + } +} + 247e: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2480: 9340 ld.w r2, (r3, 0x0) + 2482: 9260 ld.w r3, (r2, 0x0) + 2484: 31f0 movi r1, 240 + 2486: 68c5 andn r3, r1 + 2488: 3ba4 bseti r3, 4 + 248a: 07f9 br 0x247c // 247c + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 248c: 9320 ld.w r1, (r3, 0x0) + 248e: 32f0 movi r2, 240 + 2490: 9160 ld.w r3, (r1, 0x0) + 2492: 4244 lsli r2, r2, 4 + 2494: 68c9 andn r3, r2 + 2496: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2498: b160 st.w r3, (r1, 0x0) +} + 249a: 07f2 br 0x247e // 247e + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 249c: 9320 ld.w r1, (r3, 0x0) + 249e: 32f0 movi r2, 240 + 24a0: 9160 ld.w r3, (r1, 0x0) + 24a2: 4248 lsli r2, r2, 8 + 24a4: 68c9 andn r3, r2 + 24a6: 3bac bseti r3, 12 + 24a8: 07f8 br 0x2498 // 2498 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 24aa: 9320 ld.w r1, (r3, 0x0) + 24ac: 32f0 movi r2, 240 + 24ae: 9160 ld.w r3, (r1, 0x0) + 24b0: 424c lsli r2, r2, 12 + 24b2: 68c9 andn r3, r2 + 24b4: 3bb0 bseti r3, 16 + 24b6: 07f1 br 0x2498 // 2498 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 24b8: 9320 ld.w r1, (r3, 0x0) + 24ba: 32f0 movi r2, 240 + 24bc: 9160 ld.w r3, (r1, 0x0) + 24be: 4250 lsli r2, r2, 16 + 24c0: 68c9 andn r3, r2 + 24c2: 3bb4 bseti r3, 20 + 24c4: 07ea br 0x2498 // 2498 + 24c6: 0000 bkpt + 24c8: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +000024cc : +//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; + 24dc: 9045 ld.w r2, (r0, 0x14) + 24de: 3301 movi r3, 1 + 24e0: 7085 lsr r2, r1 + 24e2: 688c and r2, r3 + { + if (dat==1) + 24e4: 3a40 cmpnei r2, 0 + 24e6: 70c4 lsl r3, r1 + 24e8: 0c03 bf 0x24ee // 24ee + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000024f2 : +/*************************************************************/ +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); + 2504: 1064 lrw r3, 0x20000014 // 2514 + 2506: 9340 ld.w r2, (r3, 0x0) + 2508: 9261 ld.w r3, (r2, 0x4) + 250a: 3bac bseti r3, 12 + 250c: 3bae bseti r3, 14 + 250e: b261 st.w r3, (r2, 0x4) +} + 2510: 783c jmp r15 + 2512: 0000 bkpt + 2514: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002518 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2518: 1063 lrw r3, 0x20000010 // 2524 + 251a: 9360 ld.w r3, (r3, 0x0) + 251c: 9340 ld.w r2, (r3, 0x0) + 251e: 6c08 or r0, r2 + 2520: b300 st.w r0, (r3, 0x0) +} + 2522: 783c jmp r15 + 2524: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002528 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2528: 3300 movi r3, 0 + 252a: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 252c: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 252e: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2530: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2532: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2534: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2536: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2538: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 253a: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 253c: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 253e: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 2540: b06d st.w r3, (r0, 0x34) +} + 2542: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002544 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2544: 9060 ld.w r3, (r0, 0x0) + 2546: 3ba0 bseti r3, 0 + 2548: b060 st.w r3, (r0, 0x0) +} + 254a: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +0000254c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 254c: 9060 ld.w r3, (r0, 0x0) + 254e: 3bac bseti r3, 12 + 2550: 3bae bseti r3, 14 + 2552: b060 st.w r3, (r0, 0x0) +} + 2554: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002556 : +//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) +{ + 2556: 14c3 push r4-r6 + 2558: 98a4 ld.w r5, (r14, 0x10) + 255a: 6d97 mov r6, r5 + 255c: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 255e: 6d18 or r4, r6 + 2560: 6cd0 or r3, r4 + 2562: 90a1 ld.w r5, (r0, 0x4) + 2564: 6c4c or r1, r3 + 2566: 6c54 or r1, r5 + 2568: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 256a: b042 st.w r2, (r0, 0x8) +} + 256c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000256e : +//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) +{ + 256e: 14c4 push r4-r7 + 2570: 1421 subi r14, r14, 4 + 2572: 9885 ld.w r4, (r14, 0x14) + 2574: 6dd3 mov r7, r4 + 2576: 9886 ld.w r4, (r14, 0x18) + 2578: b880 st.w r4, (r14, 0x0) + 257a: 9887 ld.w r4, (r14, 0x1c) + 257c: 6d93 mov r6, r4 + 257e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 2580: 6d58 or r5, r6 + 2582: 98c0 ld.w r6, (r14, 0x0) + 2584: 6d58 or r5, r6 + 2586: 6d5c or r5, r7 + 2588: 6cd4 or r3, r5 + 258a: 6c8c or r2, r3 + 258c: 9081 ld.w r4, (r0, 0x4) + 258e: 6c48 or r1, r2 + 2590: 6d04 or r4, r1 + 2592: 6d9f mov r6, r7 + 2594: b081 st.w r4, (r0, 0x4) +} + 2596: 1401 addi r14, r14, 4 + 2598: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000259a : +//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; + 259a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 259c: b044 st.w r2, (r0, 0x10) +} + 259e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +000025a0 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 25a0: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 25a2: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 25a4: 0c04 bf 0x25ac // 25ac + BTx->IMCR |= BT_IMSCR_X; + 25a6: 6c8c or r2, r3 + 25a8: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 25aa: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 25ac: 68c9 andn r3, r2 + 25ae: b06b st.w r3, (r0, 0x2c) +} + 25b0: 07fd br 0x25aa // 25aa + +Disassembly of section .text.BT1_INT_ENABLE: + +000025b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 25b4: 3380 movi r3, 128 + 25b6: 4376 lsli r3, r3, 22 + 25b8: 1042 lrw r2, 0xe000e100 // 25c0 + 25ba: b260 st.w r3, (r2, 0x0) +} + 25bc: 783c jmp r15 + 25be: 0000 bkpt + 25c0: e000e100 .long 0xe000e100 + +Disassembly of section .text.SIO_DeInit: + +000025c4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_DeInit(void) +{ + SIO0->CR = SIO_RESET_VALUE; + 25c4: 1067 lrw r3, 0x2000002c // 25e0 + 25c6: 3200 movi r2, 0 + 25c8: 9360 ld.w r3, (r3, 0x0) + 25ca: b340 st.w r2, (r3, 0x0) + SIO0->TXCR0 = SIO_RESET_VALUE; + 25cc: b341 st.w r2, (r3, 0x4) + SIO0->TXCR1 = SIO_RESET_VALUE; + 25ce: b342 st.w r2, (r3, 0x8) + //SIO0->TXBUF = SIO_RESET_VALUE; + SIO0->RXCR0 = SIO_RESET_VALUE; + 25d0: b344 st.w r2, (r3, 0x10) + SIO0->RXCR1 = SIO_RESET_VALUE; + 25d2: b345 st.w r2, (r3, 0x14) + SIO0->RXCR1 = SIO_RESET_VALUE; + 25d4: b345 st.w r2, (r3, 0x14) + //SIO0->RXBUF = SIO_RESET_VALUE; + SIO0->RISR = SIO_RESET_VALUE; + 25d6: b348 st.w r2, (r3, 0x20) + SIO0->MISR = SIO_RESET_VALUE; + 25d8: b349 st.w r2, (r3, 0x24) + SIO0->IMCR = SIO_RESET_VALUE; + 25da: b34a st.w r2, (r3, 0x28) + SIO0->ICR = SIO_RESET_VALUE; + 25dc: b34b st.w r2, (r3, 0x2c) +} + 25de: 783c jmp r15 + 25e0: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_IO_Init: + +000025e4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_IO_Init(SIO_IOG_TypeDef IOGx) +{ + if(IOGx==SIO_PA02) + 25e4: 3840 cmpnei r0, 0 + 25e6: 080a bt 0x25fa // 25fa + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400; + 25e8: 1075 lrw r3, 0x2000004c // 263c + 25ea: 32f0 movi r2, 240 + 25ec: 9320 ld.w r1, (r3, 0x0) + 25ee: 9160 ld.w r3, (r1, 0x0) + 25f0: 4244 lsli r2, r2, 4 + 25f2: 68c9 andn r3, r2 + 25f4: 3baa bseti r3, 10 + } + if(IOGx==SIO_PA03) + { + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 25f6: b160 st.w r3, (r1, 0x0) + } + if(IOGx==SIO_PB01) + { + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + } +} + 25f8: 783c jmp r15 + if(IOGx==SIO_PA03) + 25fa: 3841 cmpnei r0, 1 + 25fc: 0809 bt 0x260e // 260e + GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000; + 25fe: 1070 lrw r3, 0x2000004c // 263c + 2600: 32f0 movi r2, 240 + 2602: 9320 ld.w r1, (r3, 0x0) + 2604: 9160 ld.w r3, (r1, 0x0) + 2606: 4248 lsli r2, r2, 8 + 2608: 68c9 andn r3, r2 + 260a: 3baf bseti r3, 15 + 260c: 07f5 br 0x25f6 // 25f6 + if(IOGx==SIO_PA012) + 260e: 3842 cmpnei r0, 2 + 2610: 080a bt 0x2624 // 2624 + GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000; + 2612: 106b lrw r3, 0x2000004c // 263c + 2614: 32f0 movi r2, 240 + 2616: 9320 ld.w r1, (r3, 0x0) + 2618: 9161 ld.w r3, (r1, 0x4) + 261a: 424c lsli r2, r2, 12 + 261c: 68c9 andn r3, r2 + 261e: 3bb3 bseti r3, 19 + 2620: b161 st.w r3, (r1, 0x4) + 2622: 07eb br 0x25f8 // 25f8 + if(IOGx==SIO_PB01) + 2624: 3843 cmpnei r0, 3 + 2626: 0be9 bt 0x25f8 // 25f8 + GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070; + 2628: 1066 lrw r3, 0x20000048 // 2640 + 262a: 31f0 movi r1, 240 + 262c: 9340 ld.w r2, (r3, 0x0) + 262e: 9260 ld.w r3, (r2, 0x0) + 2630: 68c5 andn r3, r1 + 2632: 3170 movi r1, 112 + 2634: 6cc4 or r3, r1 + 2636: b260 st.w r3, (r2, 0x0) +} + 2638: 07e0 br 0x25f8 // 25f8 + 263a: 0000 bkpt + 263c: 2000004c .long 0x2000004c + 2640: 20000048 .long 0x20000048 + +Disassembly of section .text.SIO_TX_Init: + +00002644 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX) +{ + SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8); + 2644: 4130 lsli r1, r1, 16 + 2646: 1063 lrw r3, 0x2000002c // 2650 + 2648: 6c04 or r0, r1 + 264a: 9360 ld.w r3, (r3, 0x0) + 264c: b300 st.w r0, (r3, 0x0) + +} + 264e: 783c jmp r15 + 2650: 2000002c .long 0x2000002c + +Disassembly of section .text.SIO_TX_Configure: + +00002654 : +//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) +{ + 2654: 14c4 push r4-r7 + 2656: 1423 subi r14, r14, 12 + 2658: 9889 ld.w r4, (r14, 0x24) + 265a: b881 st.w r4, (r14, 0x4) + 265c: 988a ld.w r4, (r14, 0x28) + 265e: b882 st.w r4, (r14, 0x8) + 2660: 1c08 addi r4, r14, 32 + 2662: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2664: 4368 lsli r3, r3, 8 +{ + 2666: b880 st.w r4, (r14, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2668: 6cc0 or r3, r0 +{ + 266a: 1c0b addi r4, r14, 44 + 266c: 84c0 ld.b r6, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 266e: 6cc4 or r3, r1 +{ + 2670: 1c0c addi r4, r14, 48 + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 2672: 4244 lsli r2, r2, 4 + 2674: 10eb lrw r7, 0x2000002c // 26a0 + 2676: 6cc8 or r3, r2 + 2678: 97e0 ld.w r7, (r7, 0x0) +{ + 267a: 8480 ld.b r4, (r4, 0x0) + SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8); + 267c: b761 st.w r3, (r7, 0x4) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 267e: 4498 lsli r4, r4, 24 + 2680: 9861 ld.w r3, (r14, 0x4) + 2682: 6d0c or r4, r3 + 2684: 9862 ld.w r3, (r14, 0x8) + 2686: 6d0c or r4, r3 +{ + 2688: d8ae001c ld.b r5, (r14, 0x1c) + SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24); + 268c: 9860 ld.w r3, (r14, 0x0) + 268e: 46d0 lsli r6, r6, 16 + 2690: 6d90 or r6, r4 + 2692: 45a2 lsli r5, r5, 2 + 2694: 4385 lsli r4, r3, 5 + 2696: 6d50 or r5, r4 + 2698: 6d58 or r5, r6 + 269a: b7a2 st.w r5, (r7, 0x8) +} + 269c: 1403 addi r14, r14, 12 + 269e: 1484 pop r4-r7 + 26a0: 2000002c .long 0x2000002c + +Disassembly of section .text.UART0_DeInit: + +000026a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 26a4: 1065 lrw r3, 0x20000040 // 26b8 + 26a6: 3200 movi r2, 0 + 26a8: 9360 ld.w r3, (r3, 0x0) + 26aa: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 26ac: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 26ae: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 26b0: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 26b2: b344 st.w r2, (r3, 0x10) +} + 26b4: 783c jmp r15 + 26b6: 0000 bkpt + 26b8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000026bc : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 26bc: 1065 lrw r3, 0x2000003c // 26d0 + 26be: 3200 movi r2, 0 + 26c0: 9360 ld.w r3, (r3, 0x0) + 26c2: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 26c4: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 26c6: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 26c8: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 26ca: b344 st.w r2, (r3, 0x10) +} + 26cc: 783c jmp r15 + 26ce: 0000 bkpt + 26d0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000026d4 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 26d4: 1065 lrw r3, 0x20000038 // 26e8 + 26d6: 3200 movi r2, 0 + 26d8: 9360 ld.w r3, (r3, 0x0) + 26da: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 26dc: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 26de: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 26e0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 26e2: b344 st.w r2, (r3, 0x10) +} + 26e4: 783c jmp r15 + 26e6: 0000 bkpt + 26e8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000026ec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 26ec: 1065 lrw r3, 0x20000040 // 2700 + 26ee: 320f movi r2, 15 + 26f0: 9360 ld.w r3, (r3, 0x0) + 26f2: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 26f4: 3380 movi r3, 128 + 26f6: 4366 lsli r3, r3, 6 + 26f8: 1043 lrw r2, 0xe000e100 // 2704 + 26fa: b260 st.w r3, (r2, 0x0) +} + 26fc: 783c jmp r15 + 26fe: 0000 bkpt + 2700: 20000040 .long 0x20000040 + 2704: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002708 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2708: 1065 lrw r3, 0x20000038 // 271c + 270a: 320f movi r2, 15 + 270c: 9360 ld.w r3, (r3, 0x0) + 270e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2710: 3380 movi r3, 128 + 2712: 4368 lsli r3, r3, 8 + 2714: 1043 lrw r2, 0xe000e100 // 2720 + 2716: b260 st.w r3, (r2, 0x0) +} + 2718: 783c jmp r15 + 271a: 0000 bkpt + 271c: 20000038 .long 0x20000038 + 2720: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002724 : +//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) + 2724: 3840 cmpnei r0, 0 + 2726: 0821 bt 0x2768 // 2768 + { + if(UART_IO_G==0) + 2728: 3940 cmpnei r1, 0 + 272a: 080a bt 0x273e // 273e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 272c: 1177 lrw r3, 0x2000004c // 2808 + 272e: 31ff movi r1, 255 + 2730: 9340 ld.w r2, (r3, 0x0) + 2732: 9260 ld.w r3, (r2, 0x0) + 2734: 68c5 andn r3, r1 + 2736: 3ba2 bseti r3, 2 + 2738: 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 + 273a: b260 st.w r3, (r2, 0x0) + 273c: 0415 br 0x2766 // 2766 + else if(UART_IO_G==1) + 273e: 3941 cmpnei r1, 1 + 2740: 0813 bt 0x2766 // 2766 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2742: 1172 lrw r3, 0x2000004c // 2808 + 2744: 31f0 movi r1, 240 + 2746: 9340 ld.w r2, (r3, 0x0) + 2748: 9260 ld.w r3, (r2, 0x0) + 274a: 4130 lsli r1, r1, 16 + 274c: 68c5 andn r3, r1 + 274e: 31e0 movi r1, 224 + 2750: 412f lsli r1, r1, 15 + 2752: 6cc4 or r3, r1 + 2754: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2756: 31f0 movi r1, 240 + 2758: 9261 ld.w r3, (r2, 0x4) + 275a: 412c lsli r1, r1, 12 + 275c: 68c5 andn r3, r1 + 275e: 31e0 movi r1, 224 + 2760: 412b lsli r1, r1, 11 + 2762: 6cc4 or r3, r1 + 2764: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2766: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2768: 3841 cmpnei r0, 1 + 276a: 082d bt 0x27c4 // 27c4 + if(UART_IO_G==0) + 276c: 3940 cmpnei r1, 0 + 276e: 0814 bt 0x2796 // 2796 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2770: 1167 lrw r3, 0x20000048 // 280c + 2772: 310f movi r1, 15 + 2774: 9340 ld.w r2, (r3, 0x0) + 2776: 9260 ld.w r3, (r2, 0x0) + 2778: 68c5 andn r3, r1 + 277a: 3107 movi r1, 7 + 277c: 6cc4 or r3, r1 + 277e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2780: 32f0 movi r2, 240 + 2782: 1162 lrw r3, 0x2000004c // 2808 + 2784: 4250 lsli r2, r2, 16 + 2786: 9320 ld.w r1, (r3, 0x0) + 2788: 9161 ld.w r3, (r1, 0x4) + 278a: 68c9 andn r3, r2 + 278c: 32e0 movi r2, 224 + 278e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 2790: 6cc8 or r3, r2 + 2792: b161 st.w r3, (r1, 0x4) + 2794: 07e9 br 0x2766 // 2766 + else if(UART_IO_G==1) + 2796: 3941 cmpnei r1, 1 + 2798: 080c bt 0x27b0 // 27b0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 279a: 107c lrw r3, 0x2000004c // 2808 + 279c: 32ff movi r2, 255 + 279e: 9320 ld.w r1, (r3, 0x0) + 27a0: 424c lsli r2, r2, 12 + 27a2: 9160 ld.w r3, (r1, 0x0) + 27a4: 68c9 andn r3, r2 + 27a6: 32ee movi r2, 238 + 27a8: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 27aa: 6cc8 or r3, r2 + 27ac: b160 st.w r3, (r1, 0x0) +} + 27ae: 07dc br 0x2766 // 2766 + else if(UART_IO_G==2) + 27b0: 3942 cmpnei r1, 2 + 27b2: 0bda bt 0x2766 // 2766 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 27b4: 1075 lrw r3, 0x2000004c // 2808 + 27b6: 32ee movi r2, 238 + 27b8: 9320 ld.w r1, (r3, 0x0) + 27ba: 9161 ld.w r3, (r1, 0x4) + 27bc: 4368 lsli r3, r3, 8 + 27be: 4b68 lsri r3, r3, 8 + 27c0: 4257 lsli r2, r2, 23 + 27c2: 07e7 br 0x2790 // 2790 + if (IO_UART_NUM==IO_UART2) + 27c4: 3842 cmpnei r0, 2 + 27c6: 0bd0 bt 0x2766 // 2766 + if(UART_IO_G==0) + 27c8: 3940 cmpnei r1, 0 + 27ca: 0809 bt 0x27dc // 27dc + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 27cc: 106f lrw r3, 0x2000004c // 2808 + 27ce: 31ff movi r1, 255 + 27d0: 9340 ld.w r2, (r3, 0x0) + 27d2: 9260 ld.w r3, (r2, 0x0) + 27d4: 68c5 andn r3, r1 + 27d6: 3177 movi r1, 119 + 27d8: 6cc4 or r3, r1 + 27da: 07b0 br 0x273a // 273a + else if(UART_IO_G==1) + 27dc: 3941 cmpnei r1, 1 + 27de: 0809 bt 0x27f0 // 27f0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 27e0: 106a lrw r3, 0x2000004c // 2808 + 27e2: 32ee movi r2, 238 + 27e4: 9320 ld.w r1, (r3, 0x0) + 27e6: 9160 ld.w r3, (r1, 0x0) + 27e8: 4368 lsli r3, r3, 8 + 27ea: 4b68 lsri r3, r3, 8 + 27ec: 4257 lsli r2, r2, 23 + 27ee: 07de br 0x27aa // 27aa + else if(UART_IO_G==2) + 27f0: 3942 cmpnei r1, 2 + 27f2: 0bba bt 0x2766 // 2766 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 27f4: 1066 lrw r3, 0x20000048 // 280c + 27f6: 32ff movi r2, 255 + 27f8: 9320 ld.w r1, (r3, 0x0) + 27fa: 4250 lsli r2, r2, 16 + 27fc: 9160 ld.w r3, (r1, 0x0) + 27fe: 68c9 andn r3, r2 + 2800: 32cc movi r2, 204 + 2802: 424f lsli r2, r2, 15 + 2804: 07d3 br 0x27aa // 27aa + 2806: 0000 bkpt + 2808: 2000004c .long 0x2000004c + 280c: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInit: + +00002810 : +//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); + 2810: 1063 lrw r3, 0x80003 // 281c + 2812: 6c8c or r2, r3 + 2814: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2816: b024 st.w r1, (r0, 0x10) +} + 2818: 783c jmp r15 + 281a: 0000 bkpt + 281c: 00080003 .long 0x00080003 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002820 : +//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); + 2820: 1063 lrw r3, 0x8000f // 282c + 2822: 6c8c or r2, r3 + 2824: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2826: b024 st.w r1, (r0, 0x10) +} + 2828: 783c jmp r15 + 282a: 0000 bkpt + 282c: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002830 : +//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) +{ + 2830: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2832: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2834: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2836: 5b85 subu r4, r3, r1 + 2838: 6490 cmphs r4, r2 + 283a: 0c02 bf 0x283e // 283e + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 283c: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 283e: 8380 ld.b r4, (r3, 0x0) + 2840: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 2842: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2844: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2846: 3c40 cmpnei r4, 0 + 2848: 0bfd bt 0x2842 // 2842 + 284a: 2300 addi r3, 1 + 284c: 07f5 br 0x2836 // 2836 + +Disassembly of section .text.EPT_Stop: + +00002850 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2850: 1068 lrw r3, 0x20000020 // 2870 + 2852: 3280 movi r2, 128 + 2854: 9360 ld.w r3, (r3, 0x0) + 2856: 608c addu r2, r3 + 2858: 1027 lrw r1, 0xa55ac73a // 2874 + 285a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 285c: 9341 ld.w r2, (r3, 0x4) + 285e: 31fe movi r1, 254 + 2860: 6884 and r2, r1 + 2862: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2864: 3101 movi r1, 1 + 2866: 9341 ld.w r2, (r3, 0x4) + 2868: 6884 and r2, r1 + 286a: 3a40 cmpnei r2, 0 + 286c: 0bfd bt 0x2866 // 2866 +} + 286e: 783c jmp r15 + 2870: 20000020 .long 0x20000020 + 2874: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.ADC12_RESET_VALUE: + +00002878 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_RESET_VALUE(void) +{ + ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */ + 2878: 1078 lrw r3, 0x20000050 // 28d8 + 287a: 3200 movi r2, 0 + 287c: 9360 ld.w r3, (r3, 0x0) + 287e: b340 st.w r2, (r3, 0x0) + ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */ + 2880: b341 st.w r2, (r3, 0x4) + ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */ + 2882: b342 st.w r2, (r3, 0x8) + //ADC0->CR = ADC_CR_RST; /**< CR reset value */ + ADC0->MR = ADC_MR_RST; /**< MR reset value */ + 2884: b345 st.w r2, (r3, 0x14) + ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */ + 2886: b347 st.w r2, (r3, 0x1c) + ADC0->SR = ADC_SR_RST; /**< SR reset value */ + 2888: b348 st.w r2, (r3, 0x20) + ADC0->IER = ADC_IER_RST; /**< IER reset value */ + 288a: b349 st.w r2, (r3, 0x24) + ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */ + 288c: b34a st.w r2, (r3, 0x28) + ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */ + 288e: b34b st.w r2, (r3, 0x2c) + ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */ + 2890: b34c st.w r2, (r3, 0x30) + ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */ + 2892: b34d st.w r2, (r3, 0x34) + ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */ + 2894: b34e st.w r2, (r3, 0x38) + ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */ + 2896: b34f st.w r2, (r3, 0x3c) + ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */ + 2898: b350 st.w r2, (r3, 0x40) + ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */ + 289a: b351 st.w r2, (r3, 0x44) + ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */ + 289c: b352 st.w r2, (r3, 0x48) + ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */ + 289e: b353 st.w r2, (r3, 0x4c) + ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */ + 28a0: b354 st.w r2, (r3, 0x50) + ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */ + 28a2: b355 st.w r2, (r3, 0x54) + ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */ + 28a4: b356 st.w r2, (r3, 0x58) + ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */ + 28a6: b357 st.w r2, (r3, 0x5c) + ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */ + 28a8: b358 st.w r2, (r3, 0x60) + ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */ + 28aa: b359 st.w r2, (r3, 0x64) + ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */ + 28ac: b35a st.w r2, (r3, 0x68) + ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */ + 28ae: b35b st.w r2, (r3, 0x6c) + ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */ + 28b0: 23ff addi r3, 256 + 28b2: b340 st.w r2, (r3, 0x0) + ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */ + 28b4: b341 st.w r2, (r3, 0x4) + ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */ + 28b6: b342 st.w r2, (r3, 0x8) + ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */ + 28b8: b343 st.w r2, (r3, 0xc) + ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */ + 28ba: b344 st.w r2, (r3, 0x10) + ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */ + 28bc: b345 st.w r2, (r3, 0x14) + ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */ + 28be: b346 st.w r2, (r3, 0x18) + ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */ + 28c0: b347 st.w r2, (r3, 0x1c) + ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */ + 28c2: b348 st.w r2, (r3, 0x20) + ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */ + 28c4: b349 st.w r2, (r3, 0x24) + ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */ + 28c6: b34a st.w r2, (r3, 0x28) + ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */ + 28c8: b34b st.w r2, (r3, 0x2c) + ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */ + 28ca: b34c st.w r2, (r3, 0x30) + ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */ + 28cc: b34d st.w r2, (r3, 0x34) + ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */ + 28ce: b34e st.w r2, (r3, 0x38) + ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */ + 28d0: b34f st.w r2, (r3, 0x3c) + ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */ + 28d2: b350 st.w r2, (r3, 0x40) + ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */ + 28d4: b351 st.w r2, (r3, 0x44) +} + 28d6: 783c jmp r15 + 28d8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Control: + +000028dc : +//ReturnValue:NONE +/*************************************************************/ + //control:ADC enable/disable ,start/stop,swrst +void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x ) +{ + ADC0->CR |= ADC12_Control_x; // + 28dc: 1063 lrw r3, 0x20000050 // 28e8 + 28de: 9340 ld.w r2, (r3, 0x0) + 28e0: 9264 ld.w r3, (r2, 0x10) + 28e2: 6c0c or r0, r3 + 28e4: b204 st.w r0, (r2, 0x10) +} + 28e6: 783c jmp r15 + 28e8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CMD.part.0: + +000028ec : +//ADC12 ENABLE +//EntryParameter:NewState +//NewState:ENABLE , DISABLE +//ReturnValue:NONE +/*************************************************************/ +void ADC12_CMD(FunctionalStatus NewState) + 28ec: 14d0 push r15 +{ + if (NewState != DISABLE) + { + ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE + 28ee: 3002 movi r0, 2 + 28f0: e3fffff6 bsr 0x28dc // 28dc + while(!(ADC0->SR &ADC12_ADCENS)); + 28f4: 1065 lrw r3, 0x20000050 // 2908 + 28f6: 3280 movi r2, 128 + 28f8: 9320 ld.w r1, (r3, 0x0) + 28fa: 4241 lsli r2, r2, 1 + 28fc: 9168 ld.w r3, (r1, 0x20) + 28fe: 68c8 and r3, r2 + 2900: 3b40 cmpnei r3, 0 + 2902: 0ffd bf 0x28fc // 28fc + else + { + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + while(ADC0->SR&ADC12_ADCENS); + } +} + 2904: 1490 pop r15 + 2906: 0000 bkpt + 2908: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_CLK_CMD: + +0000290c : + if (NewState != DISABLE) + 290c: 3940 cmpnei r1, 0 + 290e: 106a lrw r3, 0x20000050 // 2934 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2910: 9340 ld.w r2, (r3, 0x0) + if (NewState != DISABLE) + 2912: 0c09 bf 0x2924 // 2924 + ADC0->ECR |= ADC_CLK_CMD; //ENABLE + 2914: 9260 ld.w r3, (r2, 0x0) + 2916: 6cc0 or r3, r0 + 2918: b260 st.w r3, (r2, 0x0) + while(!(ADC0->PMSR&ADC_CLK_CMD)); + 291a: 9262 ld.w r3, (r2, 0x8) + 291c: 68c0 and r3, r0 + 291e: 3b40 cmpnei r3, 0 + 2920: 0ffd bf 0x291a // 291a +} + 2922: 783c jmp r15 + ADC0->DCR |= ADC_CLK_CMD; //DISABLE + 2924: 9261 ld.w r3, (r2, 0x4) + 2926: 6cc0 or r3, r0 + 2928: b261 st.w r3, (r2, 0x4) + while(ADC0->PMSR&ADC_CLK_CMD); + 292a: 9262 ld.w r3, (r2, 0x8) + 292c: 68c0 and r3, r0 + 292e: 3b40 cmpnei r3, 0 + 2930: 0bfd bt 0x292a // 292a + 2932: 07f8 br 0x2922 // 2922 + 2934: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Software_Reset: + +00002938 : +{ + 2938: 14d0 push r15 + ADC12_Control(ADC12_SWRST); + 293a: 3001 movi r0, 1 + 293c: e3ffffd0 bsr 0x28dc // 28dc +} + 2940: 1490 pop r15 + +Disassembly of section .text.ADC12_CMD: + +00002944 : +{ + 2944: 14d0 push r15 + if (NewState != DISABLE) + 2946: 3840 cmpnei r0, 0 + 2948: 0c04 bf 0x2950 // 2950 + 294a: e3ffffd1 bsr 0x28ec // 28ec +} + 294e: 1490 pop r15 + ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE + 2950: 3004 movi r0, 4 + 2952: e3ffffc5 bsr 0x28dc // 28dc + while(ADC0->SR&ADC12_ADCENS); + 2956: 1065 lrw r3, 0x20000050 // 2968 + 2958: 3280 movi r2, 128 + 295a: 9320 ld.w r1, (r3, 0x0) + 295c: 4241 lsli r2, r2, 1 + 295e: 9168 ld.w r3, (r1, 0x20) + 2960: 68c8 and r3, r2 + 2962: 3b40 cmpnei r3, 0 + 2964: 0bfd bt 0x295e // 295e + 2966: 07f4 br 0x294e // 294e + 2968: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_ready_wait: + +0000296c : +//EntryParameter:NONE +//ReturnValue:ADC12 READ FLAG +/*************************************************************/ +void ADC12_ready_wait(void) +{ + while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready + 296c: 1064 lrw r3, 0x20000050 // 297c + 296e: 3202 movi r2, 2 + 2970: 9320 ld.w r1, (r3, 0x0) + 2972: 9168 ld.w r3, (r1, 0x20) + 2974: 68c8 and r3, r2 + 2976: 3b40 cmpnei r3, 0 + 2978: 0ffd bf 0x2972 // 2972 +} + 297a: 783c jmp r15 + 297c: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_SEQEND_wait: + +00002980 : +//EntryParameter:NONE +//ReturnValue:ADC12 EOC +/*************************************************************/ +void ADC12_SEQEND_wait(U8_T val) +{ + while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait + 2980: 200f addi r0, 16 + 2982: 1065 lrw r3, 0x20000050 // 2994 + 2984: 3201 movi r2, 1 + 2986: 9320 ld.w r1, (r3, 0x0) + 2988: 7080 lsl r2, r0 + 298a: 9168 ld.w r3, (r1, 0x20) + 298c: 68c8 and r3, r2 + 298e: 3b40 cmpnei r3, 0 + 2990: 0ffd bf 0x298a // 298a +} + 2992: 783c jmp r15 + 2994: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_DATA_OUPUT: + +00002998 : +//EntryParameter:NONE +//ReturnValue:ADC12 DR +/*************************************************************/ +U16_T ADC12_DATA_OUPUT(U16_T Data_index ) +{ + return(ADC0->DR[Data_index]); + 2998: 203f addi r0, 64 + 299a: 1064 lrw r3, 0x20000050 // 29a8 + 299c: 4002 lsli r0, r0, 2 + 299e: 9360 ld.w r3, (r3, 0x0) + 29a0: 600c addu r0, r3 + 29a2: 9000 ld.w r0, (r0, 0x0) + 29a4: 7401 zexth r0, r0 +} + 29a6: 783c jmp r15 + 29a8: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_Mode: + +000029ac : + //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 ) +{ + 29ac: 14d4 push r4-r7, r15 + 29ae: 1422 subi r14, r14, 8 + 29b0: 1c08 addi r4, r14, 32 + 29b2: 84a0 ld.b r5, (r4, 0x0) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29b4: 2d00 subi r5, 1 +{ + 29b6: 6dc3 mov r7, r0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29b8: 10db lrw r6, 0x20000050 // 2a24 +{ + 29ba: d80e001c ld.b r0, (r14, 0x1c) + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29be: 45aa lsli r5, r5, 10 + 29c0: 9680 ld.w r4, (r6, 0x0) + 29c2: 6d40 or r5, r0 + if(ADC12_ConverMode==One_shot_mode) + 29c4: 3940 cmpnei r1, 0 + ADC0->MR=ADC12_DIV|((NumConver-1)<<10); + 29c6: b4a5 st.w r5, (r4, 0x14) + if(ADC12_ConverMode==One_shot_mode) + 29c8: 081c bt 0x2a00 // 2a00 + { + ADC0->MR&=~CONTCV; //one short mode + 29ca: 9425 ld.w r1, (r4, 0x14) + 29cc: 4121 lsli r1, r1, 1 + 29ce: 4921 lsri r1, r1, 1 + while(ADC0->SR&ADC12_CTCVS); + 29d0: 3080 movi r0, 128 + ADC0->MR&=~CONTCV; //one short mode + 29d2: b425 st.w r1, (r4, 0x14) + while(ADC0->SR&ADC12_CTCVS); + 29d4: 4002 lsli r0, r0, 2 + 29d6: 9428 ld.w r1, (r4, 0x20) + 29d8: 6840 and r1, r0 + 29da: 3940 cmpnei r1, 0 + 29dc: 0bfd bt 0x29d6 // 29d6 + 29de: b861 st.w r3, (r14, 0x4) + 29e0: b840 st.w r2, (r14, 0x0) + 29e2: e3ffff85 bsr 0x28ec // 28ec + { + ADC0->MR|=CONTCV; //Continuous mode + while(!(ADC0->SR&ADC12_CTCVS)); + } + ADC12_CMD(ENABLE); //ADC0 enable + if(ADC12_BIT_SELECTED) + 29e6: 3f40 cmpnei r7, 0 + 29e8: 9840 ld.w r2, (r14, 0x0) + 29ea: 9861 ld.w r3, (r14, 0x4) + 29ec: 0c16 bf 0x2a18 // 2a18 + { + ADC0->CR|=ADC12_10BITor12BIT; + 29ee: 9600 ld.w r0, (r6, 0x0) + 29f0: 9024 ld.w r1, (r0, 0x10) + 29f2: 39bf bseti r1, 31 + } + else + { + ADC0->CR&=~ADC12_10BITor12BIT; + 29f4: b024 st.w r1, (r0, 0x10) + } + //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS; + ADC0->PRI=ADC12_PRI; + 29f6: 9620 ld.w r1, (r6, 0x0) + 29f8: b15c st.w r2, (r1, 0x70) + ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles + 29fa: b166 st.w r3, (r1, 0x18) +} + 29fc: 1402 addi r14, r14, 8 + 29fe: 1494 pop r4-r7, r15 + else if(ADC12_ConverMode==Continuous_mode) + 2a00: 3941 cmpnei r1, 1 + 2a02: 0bee bt 0x29de // 29de + ADC0->MR|=CONTCV; //Continuous mode + 2a04: 9425 ld.w r1, (r4, 0x14) + 2a06: 39bf bseti r1, 31 + while(!(ADC0->SR&ADC12_CTCVS)); + 2a08: 3080 movi r0, 128 + ADC0->MR|=CONTCV; //Continuous mode + 2a0a: b425 st.w r1, (r4, 0x14) + while(!(ADC0->SR&ADC12_CTCVS)); + 2a0c: 4002 lsli r0, r0, 2 + 2a0e: 9428 ld.w r1, (r4, 0x20) + 2a10: 6840 and r1, r0 + 2a12: 3940 cmpnei r1, 0 + 2a14: 0ffd bf 0x2a0e // 2a0e + 2a16: 07e4 br 0x29de // 29de + ADC0->CR&=~ADC12_10BITor12BIT; + 2a18: 9600 ld.w r0, (r6, 0x0) + 2a1a: 9024 ld.w r1, (r0, 0x10) + 2a1c: 4121 lsli r1, r1, 1 + 2a1e: 4921 lsri r1, r1, 1 + 2a20: 07ea br 0x29f4 // 29f4 + 2a22: 0000 bkpt + 2a24: 20000050 .long 0x20000050 + +Disassembly of section .text.ADC12_Configure_VREF_Selecte: + +00002a28 : +//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) + 2a28: 3840 cmpnei r0, 0 + 2a2a: 0808 bt 0x2a3a // 2a3a + { + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6); + 2a2c: 127c lrw r3, 0x20000050 // 2b9c + 2a2e: 123d lrw r1, 0x103c0 // 2ba0 + 2a30: 9340 ld.w r2, (r3, 0x0) + 2a32: 9264 ld.w r3, (r2, 0x10) + 2a34: 68c5 andn r3, r1 + 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); + 2a36: b264 st.w r3, (r2, 0x10) + } +} + 2a38: 783c jmp r15 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS) + 2a3a: 3841 cmpnei r0, 1 + 2a3c: 0810 bt 0x2a5c // 2a5c + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2a3e: 127a lrw r3, 0x2000004c // 2ba4 + 2a40: 32f0 movi r2, 240 + 2a42: 9320 ld.w r1, (r3, 0x0) + 2a44: 9160 ld.w r3, (r1, 0x0) + 2a46: 4244 lsli r2, r2, 4 + 2a48: 68c9 andn r3, r2 + 2a4a: 3bab bseti r3, 11 + 2a4c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6); + 2a4e: 1235 lrw r1, 0x103c0 // 2ba0 + 2a50: 1273 lrw r3, 0x20000050 // 2b9c + 2a52: 9340 ld.w r2, (r3, 0x0) + 2a54: 9264 ld.w r3, (r2, 0x10) + 2a56: 68c5 andn r3, r1 + 2a58: 3ba6 bseti r3, 6 + 2a5a: 07ee br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS) + 2a5c: 3842 cmpnei r0, 2 + 2a5e: 0811 bt 0x2a80 // 2a80 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2a60: 1271 lrw r3, 0x2000004c // 2ba4 + 2a62: 32f0 movi r2, 240 + 2a64: 9320 ld.w r1, (r3, 0x0) + 2a66: 9160 ld.w r3, (r1, 0x0) + 2a68: 4244 lsli r2, r2, 4 + 2a6a: 68c9 andn r3, r2 + 2a6c: 3bab bseti r3, 11 + 2a6e: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25); + 2a70: 122e lrw r1, 0x30103c0 // 2ba8 + 2a72: 126b lrw r3, 0x20000050 // 2b9c + 2a74: 9340 ld.w r2, (r3, 0x0) + 2a76: 9264 ld.w r3, (r2, 0x10) + 2a78: 68c5 andn r3, r1 + 2a7a: 3ba7 bseti r3, 7 + 2a7c: 3bb8 bseti r3, 24 + 2a7e: 07dc br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS) + 2a80: 3843 cmpnei r0, 3 + 2a82: 0811 bt 0x2aa4 // 2aa4 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2a84: 1268 lrw r3, 0x2000004c // 2ba4 + 2a86: 32f0 movi r2, 240 + 2a88: 9320 ld.w r1, (r3, 0x0) + 2a8a: 9160 ld.w r3, (r1, 0x0) + 2a8c: 4244 lsli r2, r2, 4 + 2a8e: 68c9 andn r3, r2 + 2a90: 3bab bseti r3, 11 + 2a92: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25); + 2a94: 1225 lrw r1, 0x30103c0 // 2ba8 + 2a96: 1262 lrw r3, 0x20000050 // 2b9c + 2a98: 9340 ld.w r2, (r3, 0x0) + 2a9a: 9264 ld.w r3, (r2, 0x10) + 2a9c: 68c5 andn r3, r1 + 2a9e: 1224 lrw r1, 0x30000c0 // 2bac + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2aa0: 6cc4 or r3, r1 + 2aa2: 07ca br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS) + 2aa4: 3845 cmpnei r0, 5 + 2aa6: 0809 bt 0x2ab8 // 2ab8 + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17); + 2aa8: 117d lrw r3, 0x20000050 // 2b9c + 2aaa: 1222 lrw r1, 0x503c0 // 2bb0 + 2aac: 9340 ld.w r2, (r3, 0x0) + 2aae: 9264 ld.w r3, (r2, 0x10) + 2ab0: 68c5 andn r3, r1 + 2ab2: 3ba8 bseti r3, 8 + 2ab4: 3bb2 bseti r3, 18 + 2ab6: 07c0 br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT) + 2ab8: 3846 cmpnei r0, 6 + 2aba: 0812 bt 0x2ade // 2ade + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2abc: 117a lrw r3, 0x2000004c // 2ba4 + 2abe: 32f0 movi r2, 240 + 2ac0: 9320 ld.w r1, (r3, 0x0) + 2ac2: 9160 ld.w r3, (r1, 0x0) + 2ac4: 4248 lsli r2, r2, 8 + 2ac6: 68c9 andn r3, r2 + 2ac8: 32b0 movi r2, 176 + 2aca: 4248 lsli r2, r2, 8 + 2acc: 6cc8 or r3, r2 + 2ace: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6); + 2ad0: 1134 lrw r1, 0x103c0 // 2ba0 + 2ad2: 1173 lrw r3, 0x20000050 // 2b9c + 2ad4: 9340 ld.w r2, (r3, 0x0) + 2ad6: 9264 ld.w r3, (r2, 0x10) + 2ad8: 68c5 andn r3, r1 + 2ada: 3ba9 bseti r3, 9 + 2adc: 07ad br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT) + 2ade: 3847 cmpnei r0, 7 + 2ae0: 0819 bt 0x2b12 // 2b12 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2ae2: 1171 lrw r3, 0x2000004c // 2ba4 + 2ae4: 31f0 movi r1, 240 + 2ae6: 9340 ld.w r2, (r3, 0x0) + 2ae8: 9260 ld.w r3, (r2, 0x0) + 2aea: 4128 lsli r1, r1, 8 + 2aec: 68c5 andn r3, r1 + 2aee: 31b0 movi r1, 176 + 2af0: 4128 lsli r1, r1, 8 + 2af2: 6cc4 or r3, r1 + 2af4: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2af6: 31f0 movi r1, 240 + 2af8: 9260 ld.w r3, (r2, 0x0) + 2afa: 4124 lsli r1, r1, 4 + 2afc: 68c5 andn r3, r1 + 2afe: 3bab bseti r3, 11 + 2b00: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6); + 2b02: 1128 lrw r1, 0x103c0 // 2ba0 + 2b04: 1166 lrw r3, 0x20000050 // 2b9c + 2b06: 9340 ld.w r2, (r3, 0x0) + 2b08: 9264 ld.w r3, (r2, 0x10) + 2b0a: 68c5 andn r3, r1 + 2b0c: 3ba6 bseti r3, 6 + 2b0e: 3ba9 bseti r3, 9 + 2b10: 0793 br 0x2a36 // 2a36 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT) + 2b12: 3848 cmpnei r0, 8 + 2b14: 0818 bt 0x2b44 // 2b44 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2b16: 1164 lrw r3, 0x2000004c // 2ba4 + 2b18: 31f0 movi r1, 240 + 2b1a: 9340 ld.w r2, (r3, 0x0) + 2b1c: 9260 ld.w r3, (r2, 0x0) + 2b1e: 4128 lsli r1, r1, 8 + 2b20: 68c5 andn r3, r1 + 2b22: 31b0 movi r1, 176 + 2b24: 4128 lsli r1, r1, 8 + 2b26: 6cc4 or r3, r1 + 2b28: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2b2a: 31f0 movi r1, 240 + 2b2c: 9260 ld.w r3, (r2, 0x0) + 2b2e: 4124 lsli r1, r1, 4 + 2b30: 68c5 andn r3, r1 + 2b32: 3bab bseti r3, 11 + 2b34: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25); + 2b36: 103d lrw r1, 0x30103c0 // 2ba8 + 2b38: 1079 lrw r3, 0x20000050 // 2b9c + 2b3a: 9340 ld.w r2, (r3, 0x0) + 2b3c: 9264 ld.w r3, (r2, 0x10) + 2b3e: 68c5 andn r3, r1 + 2b40: 103d lrw r1, 0x1000280 // 2bb4 + 2b42: 07af br 0x2aa0 // 2aa0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT) + 2b44: 3849 cmpnei r0, 9 + 2b46: 0818 bt 0x2b76 // 2b76 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2b48: 1077 lrw r3, 0x2000004c // 2ba4 + 2b4a: 31f0 movi r1, 240 + 2b4c: 9340 ld.w r2, (r3, 0x0) + 2b4e: 9260 ld.w r3, (r2, 0x0) + 2b50: 4128 lsli r1, r1, 8 + 2b52: 68c5 andn r3, r1 + 2b54: 31b0 movi r1, 176 + 2b56: 4128 lsli r1, r1, 8 + 2b58: 6cc4 or r3, r1 + 2b5a: b260 st.w r3, (r2, 0x0) + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800; + 2b5c: 31f0 movi r1, 240 + 2b5e: 9260 ld.w r3, (r2, 0x0) + 2b60: 4124 lsli r1, r1, 4 + 2b62: 68c5 andn r3, r1 + 2b64: 3bab bseti r3, 11 + 2b66: b260 st.w r3, (r2, 0x0) + ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25); + 2b68: 1030 lrw r1, 0x30103c0 // 2ba8 + 2b6a: 106d lrw r3, 0x20000050 // 2b9c + 2b6c: 9340 ld.w r2, (r3, 0x0) + 2b6e: 9264 ld.w r3, (r2, 0x10) + 2b70: 68c5 andn r3, r1 + 2b72: 1032 lrw r1, 0x30002c0 // 2bb8 + 2b74: 0796 br 0x2aa0 // 2aa0 + else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT) + 2b76: 384b cmpnei r0, 11 + 2b78: 0b60 bt 0x2a38 // 2a38 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000; + 2b7a: 106b lrw r3, 0x2000004c // 2ba4 + 2b7c: 32f0 movi r2, 240 + 2b7e: 9320 ld.w r1, (r3, 0x0) + 2b80: 9160 ld.w r3, (r1, 0x0) + 2b82: 4248 lsli r2, r2, 8 + 2b84: 68c9 andn r3, r2 + 2b86: 32b0 movi r2, 176 + 2b88: 4248 lsli r2, r2, 8 + 2b8a: 6cc8 or r3, r2 + 2b8c: b160 st.w r3, (r1, 0x0) + ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17); + 2b8e: 1029 lrw r1, 0x503c0 // 2bb0 + 2b90: 1063 lrw r3, 0x20000050 // 2b9c + 2b92: 9340 ld.w r2, (r3, 0x0) + 2b94: 9264 ld.w r3, (r2, 0x10) + 2b96: 68c5 andn r3, r1 + 2b98: 1029 lrw r1, 0x40300 // 2bbc + 2b9a: 0783 br 0x2aa0 // 2aa0 + 2b9c: 20000050 .long 0x20000050 + 2ba0: 000103c0 .long 0x000103c0 + 2ba4: 2000004c .long 0x2000004c + 2ba8: 030103c0 .long 0x030103c0 + 2bac: 030000c0 .long 0x030000c0 + 2bb0: 000503c0 .long 0x000503c0 + 2bb4: 01000280 .long 0x01000280 + 2bb8: 030002c0 .long 0x030002c0 + 2bbc: 00040300 .long 0x00040300 + +Disassembly of section .text.ADC12_ConversionChannel_Config: + +00002bc0 : +//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) +{ + 2bc0: 14d4 push r4-r7, r15 + 2bc2: 1421 subi r14, r14, 4 + 2bc4: b840 st.w r2, (r14, 0x0) + 2bc6: 6d43 mov r5, r0 + U8_T i; + for(i=0;i<15;i++) + { + ADC0->SEQ[i] &=~(0x01<<7); + 2bc8: 125b lrw r2, 0x20000050 // 2d34 + 2bca: 92c0 ld.w r6, (r2, 0x0) + 2bcc: 3200 movi r2, 0 + 2bce: 4202 lsli r0, r2, 2 + 2bd0: 6018 addu r0, r6 + 2bd2: 908c ld.w r4, (r0, 0x30) + 2bd4: 2200 addi r2, 1 + 2bd6: 3c87 bclri r4, 7 + for(i=0;i<15;i++) + 2bd8: 3a4f cmpnei r2, 15 + ADC0->SEQ[i] &=~(0x01<<7); + 2bda: b08c st.w r4, (r0, 0x30) + for(i=0;i<15;i++) + 2bdc: 0bf9 bt 0x2bce // 2bce + } + switch(ADC12_ADCINX) + 2bde: 3d0f cmphsi r5, 16 + 2be0: 0825 bt 0x2c2a // 2c2a + 2be2: 6c17 mov r0, r5 + 2be4: 1255 lrw r2, 0x2000004c // 2d38 + 2be6: 1296 lrw r4, 0x20000048 // 2d3c + 2be8: e3fff08a bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 2bec: 322c1408 .long 0x322c1408 + 2bf0: 4d474039 .long 0x4d474039 + 2bf4: 756d6559 .long 0x756d6559 + 2bf8: 9990877e .long 0x9990877e + { + case 0: + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1 + 2bfc: 9240 ld.w r2, (r2, 0x0) + 2bfe: 9200 ld.w r0, (r2, 0x0) + 2c00: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2c02: 9201 ld.w r0, (r2, 0x4) + 2c04: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010; + 2c06: 9400 ld.w r0, (r4, 0x0) + 2c08: 9040 ld.w r2, (r0, 0x0) + 2c0a: 34f0 movi r4, 240 + 2c0c: 6891 andn r2, r4 + 2c0e: 3aa4 bseti r2, 4 + 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; + 2c10: b040 st.w r2, (r0, 0x0) + break; + 2c12: 040c br 0x2c2a // 2c2a + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0 + 2c14: 9200 ld.w r0, (r2, 0x0) + 2c16: 9040 ld.w r2, (r0, 0x0) + 2c18: 370f movi r7, 15 + 2c1a: 689d andn r2, r7 + 2c1c: 3aa0 bseti r2, 0 + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2c1e: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2c20: 9041 ld.w r2, (r0, 0x4) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2c22: b041 st.w r2, (r0, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000; + 2c24: 9440 ld.w r2, (r4, 0x0) + 2c26: 9200 ld.w r0, (r2, 0x0) + 2c28: b200 st.w r0, (r2, 0x0) + 2c2a: 4362 lsli r3, r3, 2 + 2c2c: 618c addu r6, r3 + //case 27: break; + case 0x1Cul: break; + case 0x1Dul: break; + case 0x1Eul: break; + } + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0; + 2c2e: 966c ld.w r3, (r6, 0x30) + 2c30: 3300 movi r3, 0 + 2c32: b66c st.w r3, (r6, 0x30) + ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set; + 2c34: 9860 ld.w r3, (r14, 0x0) + 2c36: 6c4c or r1, r3 + 2c38: 964c ld.w r2, (r6, 0x30) + 2c3a: 6d44 or r5, r1 + 2c3c: 6d48 or r5, r2 + 2c3e: b6ac st.w r5, (r6, 0x30) +} + 2c40: 1401 addi r14, r14, 4 + 2c42: 1494 pop r4-r7, r15 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1 + 2c44: 9200 ld.w r0, (r2, 0x0) + 2c46: 9040 ld.w r2, (r0, 0x0) + 2c48: 37f0 movi r7, 240 + 2c4a: 689d andn r2, r7 + 2c4c: 3aa4 bseti r2, 4 + 2c4e: 07e8 br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3 + 2c50: 9200 ld.w r0, (r2, 0x0) + 2c52: 37f0 movi r7, 240 + 2c54: 9040 ld.w r2, (r0, 0x0) + 2c56: 47e8 lsli r7, r7, 8 + 2c58: 689d andn r2, r7 + 2c5a: 3aac bseti r2, 12 + 2c5c: 07e1 br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5 + 2c5e: 9200 ld.w r0, (r2, 0x0) + 2c60: 37f0 movi r7, 240 + 2c62: 9040 ld.w r2, (r0, 0x0) + 2c64: 47f0 lsli r7, r7, 16 + 2c66: 689d andn r2, r7 + 2c68: 3ab4 bseti r2, 20 + 2c6a: 07da br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6 + 2c6c: 9200 ld.w r0, (r2, 0x0) + 2c6e: 37f0 movi r7, 240 + 2c70: 9040 ld.w r2, (r0, 0x0) + 2c72: 47f4 lsli r7, r7, 20 + 2c74: 689d andn r2, r7 + 2c76: 3ab8 bseti r2, 24 + 2c78: 07d3 br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7 + 2c7a: 9200 ld.w r0, (r2, 0x0) + 2c7c: 9040 ld.w r2, (r0, 0x0) + 2c7e: 4244 lsli r2, r2, 4 + 2c80: 4a44 lsri r2, r2, 4 + 2c82: 3abc bseti r2, 28 + 2c84: 07cd br 0x2c1e // 2c1e + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2 + 2c86: 9240 ld.w r2, (r2, 0x0) + 2c88: 9200 ld.w r0, (r2, 0x0) + 2c8a: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2c8c: 9201 ld.w r0, (r2, 0x4) + 2c8e: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100; + 2c90: 9400 ld.w r0, (r4, 0x0) + 2c92: 34f0 movi r4, 240 + 2c94: 9040 ld.w r2, (r0, 0x0) + 2c96: 4484 lsli r4, r4, 4 + 2c98: 6891 andn r2, r4 + 2c9a: 3aa8 bseti r2, 8 + 2c9c: 07ba br 0x2c10 // 2c10 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3 + 2c9e: 9240 ld.w r2, (r2, 0x0) + 2ca0: 9200 ld.w r0, (r2, 0x0) + 2ca2: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2ca4: 9201 ld.w r0, (r2, 0x4) + 2ca6: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000; + 2ca8: 9400 ld.w r0, (r4, 0x0) + 2caa: 34f0 movi r4, 240 + 2cac: 9040 ld.w r2, (r0, 0x0) + 2cae: 4488 lsli r4, r4, 8 + 2cb0: 6891 andn r2, r4 + 2cb2: 3aac bseti r2, 12 + 2cb4: 07ae br 0x2c10 // 2c10 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8 + 2cb6: 9200 ld.w r0, (r2, 0x0) + 2cb8: 9040 ld.w r2, (r0, 0x0) + 2cba: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001; + 2cbc: 9041 ld.w r2, (r0, 0x4) + 2cbe: 370f movi r7, 15 + 2cc0: 689d andn r2, r7 + 2cc2: 3aa0 bseti r2, 0 + 2cc4: 07af br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9 + 2cc6: 9200 ld.w r0, (r2, 0x0) + 2cc8: 9040 ld.w r2, (r0, 0x0) + 2cca: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010; + 2ccc: 9041 ld.w r2, (r0, 0x4) + 2cce: 37f0 movi r7, 240 + 2cd0: 689d andn r2, r7 + 2cd2: 3aa4 bseti r2, 4 + 2cd4: 07a7 br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10 + 2cd6: 9200 ld.w r0, (r2, 0x0) + 2cd8: 9040 ld.w r2, (r0, 0x0) + 2cda: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100; + 2cdc: 37f0 movi r7, 240 + 2cde: 9041 ld.w r2, (r0, 0x4) + 2ce0: 47e4 lsli r7, r7, 4 + 2ce2: 689d andn r2, r7 + 2ce4: 3aa8 bseti r2, 8 + 2ce6: 079e br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11 + 2ce8: 9200 ld.w r0, (r2, 0x0) + 2cea: 9040 ld.w r2, (r0, 0x0) + 2cec: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000; + 2cee: 37f0 movi r7, 240 + 2cf0: 9041 ld.w r2, (r0, 0x4) + 2cf2: 47e8 lsli r7, r7, 8 + 2cf4: 689d andn r2, r7 + 2cf6: 3aac bseti r2, 12 + 2cf8: 0795 br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12 + 2cfa: 9200 ld.w r0, (r2, 0x0) + 2cfc: 9040 ld.w r2, (r0, 0x0) + 2cfe: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000; + 2d00: 37f0 movi r7, 240 + 2d02: 9041 ld.w r2, (r0, 0x4) + 2d04: 47ec lsli r7, r7, 12 + 2d06: 689d andn r2, r7 + 2d08: 3ab0 bseti r2, 16 + 2d0a: 078c br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13 + 2d0c: 9200 ld.w r0, (r2, 0x0) + 2d0e: 9040 ld.w r2, (r0, 0x0) + 2d10: b040 st.w r2, (r0, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000; + 2d12: 37f0 movi r7, 240 + 2d14: 9041 ld.w r2, (r0, 0x4) + 2d16: 47f0 lsli r7, r7, 16 + 2d18: 689d andn r2, r7 + 2d1a: 3ab4 bseti r2, 20 + 2d1c: 0783 br 0x2c22 // 2c22 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0 + 2d1e: 9240 ld.w r2, (r2, 0x0) + 2d20: 9200 ld.w r0, (r2, 0x0) + 2d22: b200 st.w r0, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000; + 2d24: 9201 ld.w r0, (r2, 0x4) + 2d26: b201 st.w r0, (r2, 0x4) + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001; + 2d28: 9400 ld.w r0, (r4, 0x0) + 2d2a: 9040 ld.w r2, (r0, 0x0) + 2d2c: 340f movi r4, 15 + 2d2e: 6891 andn r2, r4 + 2d30: 3aa0 bseti r2, 0 + 2d32: 076f br 0x2c10 // 2c10 + 2d34: 20000050 .long 0x20000050 + 2d38: 2000004c .long 0x2000004c + 2d3c: 20000048 .long 0x20000048 + +Disassembly of section .text.Page_ProgramData: + +00002d40 : + 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) +{ + 2d40: 14c4 push r4-r7 + 2d42: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 2d44: 1165 lrw r3, 0x20000060 // 2dd8 + 2d46: 1186 lrw r4, 0x5a5a5a5a // 2ddc + 2d48: 9360 ld.w r3, (r3, 0x0) + 2d4a: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2d4c: 3407 movi r4, 7 + 2d4e: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2d50: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 2d52: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2d54: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2d56: 9384 ld.w r4, (r3, 0x10) + 2d58: 3c40 cmpnei r4, 0 + 2d5a: 0bfe bt 0x2d56 // 2d56 + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2d5c: 2102 addi r1, 3 + 2d5e: 4922 lsri r1, r1, 2 + 2d60: 4122 lsli r1, r1, 2 + 2d62: 6048 addu r1, r2 + 2d64: b820 st.w r1, (r14, 0x0) + 2d66: 5829 subu r1, r0, r2 + 2d68: b821 st.w r1, (r14, 0x4) + 2d6a: 9820 ld.w r1, (r14, 0x0) + 2d6c: 644a cmpne r2, r1 + 2d6e: 0826 bt 0x2dba // 2dba + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 2d70: 3106 movi r1, 6 + SetUserKey; + 2d72: 105b lrw r2, 0x5a5a5a5a // 2ddc + 2d74: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 2d76: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2d78: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 2d7a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2d7c: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 2d7e: 9324 ld.w r1, (r3, 0x10) + 2d80: 3940 cmpnei r1, 0 + 2d82: 0bfe bt 0x2d7e // 2d7e + //Perform pre-programming 4 + SetUserKey; + 2d84: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2d86: 3201 movi r2, 1 + 2d88: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2d8a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2d8c: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 2d8e: 934a ld.w r2, (r3, 0x28) + 2d90: 3a44 cmpnei r2, 4 + 2d92: 0bfe bt 0x2d8e // 2d8e + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 2d94: 3102 movi r1, 2 + SetUserKey; + 2d96: 1052 lrw r2, 0x5a5a5a5a // 2ddc + 2d98: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 2d9a: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 2d9c: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 2d9e: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2da0: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 2da2: 932a ld.w r1, (r3, 0x28) + 2da4: 3941 cmpnei r1, 1 + 2da6: 0bfe bt 0x2da2 // 2da2 + //Write page cache data to flash memory 6 + SetUserKey; + 2da8: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 2daa: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 2dac: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 2dae: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 2db0: 934a ld.w r2, (r3, 0x28) + 2db2: 3a42 cmpnei r2, 2 + 2db4: 0bfe bt 0x2db0 // 2db0 +} + 2db6: 1402 addi r14, r14, 8 + 2db8: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 2dba: 82e0 ld.b r7, (r2, 0x0) + 2dbc: 8281 ld.b r4, (r2, 0x1) + 2dbe: 4488 lsli r4, r4, 8 + 2dc0: 8222 ld.b r1, (r2, 0x2) + 2dc2: 611c addu r4, r7 + 2dc4: 82a3 ld.b r5, (r2, 0x3) + 2dc6: 4130 lsli r1, r1, 16 + 2dc8: 98c1 ld.w r6, (r14, 0x4) + 2dca: 6050 addu r1, r4 + 2dcc: 45b8 lsli r5, r5, 24 + 2dce: 6188 addu r6, r2 + 2dd0: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 2dd2: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 2dd4: 2203 addi r2, 4 + 2dd6: 07ca br 0x2d6a // 2d6a + 2dd8: 20000060 .long 0x20000060 + 2ddc: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002de0 : +//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) +{ + 2de0: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2dec: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2dee: 3b40 cmpnei r3, 0 + 2df0: 0c06 bf 0x2dfc // 2dfc + 2df2: 6d0f mov r4, r3 + 2df4: 6914 and r4, r5 + 2df6: 3c40 cmpnei r4, 0 + 2df8: 0802 bt 0x2dfc // 2dfc + RdStartAdd +=4; + 2dfa: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2dfc: 6d0f mov r4, r3 + 2dfe: 6914 and r4, r5 + 2e00: 6100 addu r4, r0 + 2e02: 8480 ld.b r4, (r4, 0x0) + 2e04: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.tk_parameter_init: + +00002e0c : +{ +/**************************************************** +//TK parameter define +*****************************************************/ +// TK_IO_ENABLE=0x3E00; + TK_IO_ENABLE = TCH_EN(9)| TCH_EN(10)| TCH_EN(11)| TCH_EN(12) | TCH_EN(13); + 2e0c: 33f8 movi r3, 248 + 2e0e: 4366 lsli r3, r3, 6 + 2e10: 115b lrw r2, 0x20000268 // 2efc + 2e12: b260 st.w r3, (r2, 0x0) +// TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + + + + + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2e14: 3246 movi r2, 70 + 2e16: 117b lrw r3, 0x2000026e // 2f00 + 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 + 2e18: ab48 st.h r2, (r3, 0x10) + TK_senprd[0]=70; //TCH0 scan period = TCH0 sens + 2e1a: ab40 st.h r2, (r3, 0x0) + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + 2e1c: ab41 st.h r2, (r3, 0x2) + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 2e1e: ab42 st.h r2, (r3, 0x4) + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + 2e20: ab43 st.h r2, (r3, 0x6) + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 2e22: ab44 st.h r2, (r3, 0x8) + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + 2e24: ab45 st.h r2, (r3, 0xa) + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 2e26: ab46 st.h r2, (r3, 0xc) + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + 2e28: ab47 st.h r2, (r3, 0xe) + TK_senprd[9]=touch_para.senprd[0]; //TCH9 scan period = TCH9 sens + 2e2a: 1157 lrw r2, 0x200004d4 // 2f04 + 2e2c: 8a22 ld.h r1, (r2, 0x4) + 2e2e: ab29 st.h r1, (r3, 0x12) + TK_senprd[10]=touch_para.senprd[1]; //TCH10 scan period = TCH10 sens + 2e30: 8a23 ld.h r1, (r2, 0x6) + 2e32: ab2a st.h r1, (r3, 0x14) + TK_senprd[11]=touch_para.senprd[2]; //TCH11 scan period = TCH11 sens + 2e34: 8a24 ld.h r1, (r2, 0x8) + 2e36: ab2b st.h r1, (r3, 0x16) + TK_senprd[12]=touch_para.senprd[3]; //TCH12 scan period = TCH12 sens + 2e38: 8a25 ld.h r1, (r2, 0xa) + 2e3a: ab2c st.h r1, (r3, 0x18) + TK_senprd[13]=touch_para.senprd[4]; //TCH13 scan period = TCH13 sens + 2e3c: 8a26 ld.h r1, (r2, 0xc) + 2e3e: ab2d st.h r1, (r3, 0x1a) + TK_senprd[14]=70; //TCH14 scan period = TCH14 sens + 2e40: 3146 movi r1, 70 + 2e42: ab2e st.h r1, (r3, 0x1c) + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 2e44: ab2f st.h r1, (r3, 0x1e) + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 2e46: ab30 st.h r1, (r3, 0x20) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2e48: 3128 movi r1, 40 + 2e4a: 1170 lrw r3, 0x20000292 // 2f08 + 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 + 2e4c: ab28 st.h r1, (r3, 0x10) + TK_Triggerlevel[0]=40; //TCH0 TK_Trigger level + 2e4e: ab20 st.h r1, (r3, 0x0) + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 2e50: ab21 st.h r1, (r3, 0x2) + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 2e52: ab22 st.h r1, (r3, 0x4) + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + 2e54: ab23 st.h r1, (r3, 0x6) + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 2e56: ab24 st.h r1, (r3, 0x8) + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + 2e58: ab25 st.h r1, (r3, 0xa) + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 2e5a: ab26 st.h r1, (r3, 0xc) + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + 2e5c: ab27 st.h r1, (r3, 0xe) + TK_Triggerlevel[9]=touch_para.triggerlevel[0]; //TCH9 TK_Trigger level + 2e5e: 8a27 ld.h r1, (r2, 0xe) + 2e60: ab29 st.h r1, (r3, 0x12) + TK_Triggerlevel[10]=touch_para.triggerlevel[1]; //TCH10 TK_Trigger level + 2e62: 8a28 ld.h r1, (r2, 0x10) + 2e64: ab2a st.h r1, (r3, 0x14) + TK_Triggerlevel[11]=touch_para.triggerlevel[2]; //TCH11 TK_Trigger level + 2e66: 8a29 ld.h r1, (r2, 0x12) + 2e68: ab2b st.h r1, (r3, 0x16) + TK_Triggerlevel[12]=touch_para.triggerlevel[3]; //TCH12 TK_Trigger level + 2e6a: 8a2a ld.h r1, (r2, 0x14) + 2e6c: ab2c st.h r1, (r3, 0x18) + TK_Triggerlevel[13]=touch_para.triggerlevel[4]; //TCH13 TK_Trigger level + 2e6e: 8a2b ld.h r1, (r2, 0x16) + 2e70: ab2d st.h r1, (r3, 0x1a) + TK_Triggerlevel[14]=40; //TCH14 TK_Trigger level + 2e72: 3128 movi r1, 40 + 2e74: ab2e st.h r1, (r3, 0x1c) + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 2e76: ab2f st.h r1, (r3, 0x1e) + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 2e78: ab30 st.h r1, (r3, 0x20) + Press_debounce_data=touch_para.press_debounce; //Press debounce 1~10 + 2e7a: 8220 ld.b r1, (r2, 0x0) + 2e7c: 1164 lrw r3, 0x20000238 // 2f0c + 2e7e: a320 st.b r1, (r3, 0x0) + Release_debounce_data=touch_para.release_debounce;//Release debounce 1~10 + 2e80: 8221 ld.b r1, (r2, 0x1) + 2e82: 1164 lrw r3, 0x20000240 // 2f10 + 2e84: a320 st.b r1, (r3, 0x0) + Key_mode=1; //Key mode 0=single key 1=multi key + 2e86: 3101 movi r1, 1 + 2e88: 1163 lrw r3, 0x20000241 // 2f14 + 2e8a: a320 st.b r1, (r3, 0x0) +// MultiTimes_Filter=touch_para.multiTimes_filt; //MultiTimes Filter,>4 ENABLE <4 DISABLE + MultiTimes_Filter=0; + 2e8c: 3100 movi r1, 0 + 2e8e: 1163 lrw r3, 0x20000264 // 2f18 + 2e90: a320 st.b r1, (r3, 0x0) + Valid_Key_Num=6; //Valid Key number when touched + 2e92: 3106 movi r1, 6 + 2e94: 1162 lrw r3, 0x2000026c // 2f1c + 2e96: a320 st.b r1, (r3, 0x0) + Base_Speed=touch_para.base_speed; //baseline update speed + 2e98: 8223 ld.b r1, (r2, 0x3) + 2e9a: 1162 lrw r3, 0x20000265 // 2f20 + 2e9c: a320 st.b r1, (r3, 0x0) + TK_longpress_time=touch_para.longpress_time; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 2e9e: 9246 ld.w r2, (r2, 0x18) + 2ea0: 1161 lrw r3, 0x2000023c // 2f24 + 2ea2: b340 st.w r2, (r3, 0x0) + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 2ea4: 1141 lrw r2, 0xea5f // 2f28 + 2ea6: 1162 lrw r3, 0x200002b8 // 2f2c + 2ea8: b340 st.w r2, (r3, 0x0) + + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 2eaa: 3200 movi r2, 0 + 2eac: 1161 lrw r3, 0x20000239 // 2f30 + 2eae: a340 st.b r2, (r3, 0x0) + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 2eb0: 3202 movi r2, 2 + 2eb2: 1161 lrw r3, 0x2000023a // 2f34 + 2eb4: a340 st.b r2, (r3, 0x0) + TK_Wakeup_level=50; //touch key Trigger level in sleep + 2eb6: 3232 movi r2, 50 + 2eb8: 1160 lrw r3, 0x20000290 // 2f38 + 2eba: a340 st.b r2, (r3, 0x0) +/**************************************************** +//TK special parameter define +*****************************************************/ + TK_PSEL_MODE=TK_PSEL_AVDD; //tk power sel:TK_PSEL_FVR/TK_PSEL_AVDD when select TK_PSEL_FVR PA0.2(TCH3) need a 104 cap + 2ebc: 3201 movi r2, 1 + 2ebe: 1160 lrw r3, 0x200002bc // 2f3c + 2ec0: ab40 st.h r2, (r3, 0x0) + TK_FVR_LEVEL=TK_FVR_4096V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + 2ec2: 1160 lrw r3, 0x200002b6 // 2f40 + 2ec4: ab40 st.h r2, (r3, 0x0) + TK_EC_LEVEL=TK_EC_3_6V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + 2ec6: 3203 movi r2, 3 + 2ec8: 107f lrw r3, 0x200002b4 // 2f44 + 2eca: ab40 st.h r2, (r3, 0x0) + TK_icon[0]=4; //TCH0 TK Scan icon range 0~7 + 2ecc: 3204 movi r2, 4 + 2ece: 107f lrw r3, 0x20000242 // 2f48 + 2ed0: ab40 st.h r2, (r3, 0x0) + TK_icon[1]=4; //TCH1 TK Scan icon range 0~7 + 2ed2: ab41 st.h r2, (r3, 0x2) + TK_icon[2]=4; //TCH2 TK Scan icon range 0~7 + 2ed4: ab42 st.h r2, (r3, 0x4) + TK_icon[3]=4; //TCH3 TK Scan icon range 0~7 + 2ed6: ab43 st.h r2, (r3, 0x6) + TK_icon[4]=4; //TCH4 TK Scan icon range 0~7 + 2ed8: ab44 st.h r2, (r3, 0x8) + TK_icon[5]=4; //TCH5 TK Scan icon range 0~7 + 2eda: ab45 st.h r2, (r3, 0xa) + TK_icon[6]=4; //TCH6 TK Scan icon range 0~7 + 2edc: ab46 st.h r2, (r3, 0xc) + TK_icon[7]=4; //TCH7 TK Scan icon range 0~7 + 2ede: ab47 st.h r2, (r3, 0xe) + TK_icon[8]=4; //TCH8 TK Scan icon range 0~7 + 2ee0: ab48 st.h r2, (r3, 0x10) + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + 2ee2: 3206 movi r2, 6 + 2ee4: ab49 st.h r2, (r3, 0x12) + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + 2ee6: ab4a st.h r2, (r3, 0x14) + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + 2ee8: ab4b st.h r2, (r3, 0x16) + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + 2eea: ab4c st.h r2, (r3, 0x18) + TK_icon[13]=7; //TCH13 TK Scan icon range 0~7 + 2eec: 3207 movi r2, 7 + 2eee: ab4d st.h r2, (r3, 0x1a) + TK_icon[14]=4; //TCH14 TK Scan icon range 0~7 + 2ef0: 3204 movi r2, 4 + 2ef2: ab4e st.h r2, (r3, 0x1c) + TK_icon[15]=4; //TCH15 TK Scan icon range 0~7 + 2ef4: ab4f st.h r2, (r3, 0x1e) + TK_icon[16]=4; //TCH16 TK Scan icon range 0~7 + 2ef6: ab50 st.h r2, (r3, 0x20) + 2ef8: 783c jmp r15 + 2efa: 0000 bkpt + 2efc: 20000268 .long 0x20000268 + 2f00: 2000026e .long 0x2000026e + 2f04: 200004d4 .long 0x200004d4 + 2f08: 20000292 .long 0x20000292 + 2f0c: 20000238 .long 0x20000238 + 2f10: 20000240 .long 0x20000240 + 2f14: 20000241 .long 0x20000241 + 2f18: 20000264 .long 0x20000264 + 2f1c: 2000026c .long 0x2000026c + 2f20: 20000265 .long 0x20000265 + 2f24: 2000023c .long 0x2000023c + 2f28: 0000ea5f .long 0x0000ea5f + 2f2c: 200002b8 .long 0x200002b8 + 2f30: 20000239 .long 0x20000239 + 2f34: 2000023a .long 0x2000023a + 2f38: 20000290 .long 0x20000290 + 2f3c: 200002bc .long 0x200002bc + 2f40: 200002b6 .long 0x200002b6 + 2f44: 200002b4 .long 0x200002b4 + 2f48: 20000242 .long 0x20000242 + +Disassembly of section .text.CORET_DeInit: + +00002f4c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_DeInit(void) +{ + CK801->CORET_CSR=CORET_CSR_RST; + 2f4c: 1065 lrw r3, 0x20000064 // 2f60 + 2f4e: 3204 movi r2, 4 + 2f50: 9360 ld.w r3, (r3, 0x0) + 2f52: b344 st.w r2, (r3, 0x10) + CK801->CORET_RVR=CORET_RVR_RST; + 2f54: 3200 movi r2, 0 + 2f56: b345 st.w r2, (r3, 0x14) + CK801->CORET_CVR=CORET_CVR_RST; + 2f58: b346 st.w r2, (r3, 0x18) + CK801->CORET_CALIB=CORET_CALIB_RST; + 2f5a: b347 st.w r2, (r3, 0x1c) +} + 2f5c: 783c jmp r15 + 2f5e: 0000 bkpt + 2f60: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_Int_Enable: + +00002f64 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_Int_Enable(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2f64: 1064 lrw r3, 0x20000064 // 2f74 + 2f66: 3200 movi r2, 0 + 2f68: 9360 ld.w r3, (r3, 0x0) + 2f6a: b346 st.w r2, (r3, 0x18) + INTC_ISER_WRITE(CORET_INT); + 2f6c: 3201 movi r2, 1 + 2f6e: 1063 lrw r3, 0xe000e100 // 2f78 + 2f70: b340 st.w r2, (r3, 0x0) +} + 2f72: 783c jmp r15 + 2f74: 20000064 .long 0x20000064 + 2f78: e000e100 .long 0xe000e100 + +Disassembly of section .text.CORET_start: + +00002f7c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_start(void) +{ + CK801->CORET_CSR|=0x01; + 2f7c: 1063 lrw r3, 0x20000064 // 2f88 + 2f7e: 9340 ld.w r2, (r3, 0x0) + 2f80: 9264 ld.w r3, (r2, 0x10) + 2f82: 3ba0 bseti r3, 0 + 2f84: b264 st.w r3, (r2, 0x10) +} + 2f86: 783c jmp r15 + 2f88: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_CLKSOURCE_EX: + +00002f8c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_CLKSOURCE_EX(void) +{ + CK801->CORET_CSR&=0Xfffffffb; + 2f8c: 1063 lrw r3, 0x20000064 // 2f98 + 2f8e: 9340 ld.w r2, (r3, 0x0) + 2f90: 9264 ld.w r3, (r2, 0x10) + 2f92: 3b82 bclri r3, 2 + 2f94: b264 st.w r3, (r2, 0x10) +} + 2f96: 783c jmp r15 + 2f98: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_TICKINT_Enable: + +00002f9c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_TICKINT_Enable(void) +{ + CK801->CORET_CSR|=0x02; + 2f9c: 1063 lrw r3, 0x20000064 // 2fa8 + 2f9e: 9340 ld.w r2, (r3, 0x0) + 2fa0: 9264 ld.w r3, (r2, 0x10) + 2fa2: 3ba1 bseti r3, 1 + 2fa4: b264 st.w r3, (r2, 0x10) +} + 2fa6: 783c jmp r15 + 2fa8: 20000064 .long 0x20000064 + +Disassembly of section .text.CORET_reload: + +00002fac : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void CORET_reload(void) +{ + CK801->CORET_CVR = 0x0; // Clear counter and flag + 2fac: 1063 lrw r3, 0x20000064 // 2fb8 + 2fae: 3200 movi r2, 0 + 2fb0: 9360 ld.w r3, (r3, 0x0) + 2fb2: b346 st.w r2, (r3, 0x18) +} + 2fb4: 783c jmp r15 + 2fb6: 0000 bkpt + 2fb8: 20000064 .long 0x20000064 + +Disassembly of section .text.startup.main: + +00002fbc
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2fbc: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2fbe: e00000f9 bsr 0x31b0 // 31b0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 2fc2: 1072 lrw r3, 0x20000524 // 3008 + 2fc4: 8340 ld.b r2, (r3, 0x0) + 2fc6: 1032 lrw r1, 0xa8a8 // 300c + 2fc8: 3000 movi r0, 0 + 2fca: e000089f bsr 0x4108 // 4108 + + TemCtrl_Init(); + 2fce: e0001ded bsr 0x6ba8 // 6ba8 + DisPlay_Init(); + 2fd2: e000230d bsr 0x75ec // 75ec + Debug_Init(); + 2fd6: e000258f bsr 0x7af4 // 7af4 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2fda: e3fff7c7 bsr 0x1f68 // 1f68 + + UART2_TASK(); + 2fde: e000070b bsr 0x3df4 // 3df4 + + Touch_Key_Task(); + 2fe2: e0000adb bsr 0x4598 // 4598 + + TemCtrl_Pro(); + 2fe6: e0001f99 bsr 0x6f18 // 6f18 + + DisPlay_Task(); + 2fea: e0002311 bsr 0x760c // 760c + + BUS485Send_Task(); + 2fee: e0000825 bsr 0x4038 // 4038 + + HT1621_Refresh_Task(); + 2ff2: e0001c55 bsr 0x689c // 689c + + ADC_Sample_Task(); + 2ff6: e000115b bsr 0x52ac // 52ac + + Debug_Task(); + 2ffa: e00025f1 bsr 0x7bdc // 7bdc + + RLY_Direct_Control(); + 2ffe: e000268b bsr 0x7d14 // 7d14 + + Tm1812_Task(); + 3002: e0001693 bsr 0x5d28 // 5d28 + 3006: 07ea br 0x2fda // 2fda + 3008: 20000524 .long 0x20000524 + 300c: 0000a8a8 .long 0x0000a8a8 + +Disassembly of section .text.delay_nms: + +00003010 : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 3010: 14d0 push r15 + 3012: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 3014: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 3016: 3300 movi r3, 0 + j = 50* t; + 3018: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 301a: b862 st.w r3, (r14, 0x8) + j = 50* t; + 301c: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 301e: b860 st.w r3, (r14, 0x0) + 3020: 9840 ld.w r2, (r14, 0x0) + 3022: 9861 ld.w r3, (r14, 0x4) + 3024: 64c8 cmphs r2, r3 + 3026: 0c03 bf 0x302c // 302c + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 3028: 1403 addi r14, r14, 12 + 302a: 1490 pop r15 + k++; + 302c: 9862 ld.w r3, (r14, 0x8) + 302e: 2300 addi r3, 1 + 3030: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 3032: e3fff79b bsr 0x1f68 // 1f68 + for ( i = 0; i < j; i++ ) + 3036: 9860 ld.w r3, (r14, 0x0) + 3038: 2300 addi r3, 1 + 303a: 07f2 br 0x301e // 301e + +Disassembly of section .text.delay_nus: + +0000303c : +void delay_nus(unsigned int t) +{ + 303c: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 303e: 3300 movi r3, 0 + 3040: b862 st.w r3, (r14, 0x8) + j = 1* t; + 3042: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 3044: b860 st.w r3, (r14, 0x0) + 3046: 9840 ld.w r2, (r14, 0x0) + 3048: 9861 ld.w r3, (r14, 0x4) + 304a: 64c8 cmphs r2, r3 + 304c: 0c03 bf 0x3052 // 3052 + { + k++; + } +} + 304e: 1403 addi r14, r14, 12 + 3050: 783c jmp r15 + k++; + 3052: 9862 ld.w r3, (r14, 0x8) + 3054: 2300 addi r3, 1 + 3056: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 3058: 9860 ld.w r3, (r14, 0x0) + 305a: 2300 addi r3, 1 + 305c: 07f4 br 0x3044 // 3044 + +Disassembly of section .text.GPIO_CONFIG: + +00003060 : +//GPIO Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_CONFIG(void) +{ + 3060: 14d1 push r4, r15 + //外部中断初始化,过零信号触发 + GPIO_PullHigh_Init(GPIOA0,14); //PA0.14 + 3062: 1181 lrw r4, 0x2000004c // 30e4 + 3064: 310e movi r1, 14 + 3066: 9400 ld.w r0, (r4, 0x0) + 3068: e3fff8e6 bsr 0x2234 // 2234 + + GPIO_IntGroup_Set(PA0,14,Selete_EXI_PIN14); //EXI0 set PB0.2 + 306c: 320e movi r2, 14 + 306e: 310e movi r1, 14 + 3070: 3000 movi r0, 0 + 3072: e3fff8f3 bsr 0x2258 // 2258 + GPIOA0_EXI_Init(EXI14); //PB0.2 as input + 3076: 300e movi r0, 14 + 3078: e3fff976 bsr 0x2364 // 2364 +// EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN14,_EXIRT); + 307c: 3180 movi r1, 128 + 307e: 3200 movi r2, 0 + 3080: 4127 lsli r1, r1, 7 + 3082: 3001 movi r0, 1 + 3084: e3fff7b4 bsr 0x1fec // 1fec + EXTI_interrupt_CMD(ENABLE,EXI_PIN14); //enable EXI + 3088: 3180 movi r1, 128 + 308a: 4127 lsli r1, r1, 7 + 308c: 3001 movi r0, 1 + 308e: e3fff7cf bsr 0x202c // 202c + GPIO_EXTI_interrupt(GPIOA0,0b0100000000000000); //enable GPIOB02 as EXI + 3092: 3180 movi r1, 128 + 3094: 9400 ld.w r0, (r4, 0x0) + 3096: 4127 lsli r1, r1, 7 + 3098: e3fff7e4 bsr 0x2060 // 2060 +// GPIO_Init(GPIOA0,14,Output); +// GPIO_Write_Low(GPIOA0,14); +//// GPIO_Write_High(GPIOA0,14); + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 309c: 1093 lrw r4, 0x20000048 // 30e8 + EXI4_Int_Enable(); //EXI2~EXI3 INT Vector + 309e: e3fff7eb bsr 0x2074 // 2074 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 30a2: 9400 ld.w r0, (r4, 0x0) + 30a4: 3105 movi r1, 5 + 30a6: e3fff8c7 bsr 0x2234 // 2234 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 30aa: 3205 movi r2, 5 + 30ac: 3105 movi r1, 5 + 30ae: 3002 movi r0, 2 + 30b0: e3fff8d4 bsr 0x2258 // 2258 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 30b4: 3005 movi r0, 5 + 30b6: e3fff9d5 bsr 0x2460 // 2460 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 30ba: 3201 movi r2, 1 + 30bc: 3120 movi r1, 32 + 30be: 3001 movi r0, 1 + 30c0: e3fff796 bsr 0x1fec // 1fec + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 30c4: 3200 movi r2, 0 + 30c6: 3120 movi r1, 32 + 30c8: 3001 movi r0, 1 + 30ca: e3fff791 bsr 0x1fec // 1fec + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 30ce: 3120 movi r1, 32 + 30d0: 3001 movi r0, 1 + 30d2: e3fff7ad bsr 0x202c // 202c + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 30d6: 9400 ld.w r0, (r4, 0x0) + 30d8: 3120 movi r1, 32 + 30da: e3fff7c3 bsr 0x2060 // 2060 + EXI3_Int_Enable(); + 30de: e3fff7c3 bsr 0x2064 // 2064 +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + 30e2: 1491 pop r4, r15 + 30e4: 2000004c .long 0x2000004c + 30e8: 20000048 .long 0x20000048 + +Disassembly of section .text.BT_CONFIG: + +000030ec : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 30ec: 14d2 push r4-r5, r15 + 30ee: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 30f0: 1095 lrw r4, 0x20000008 // 3144 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 30f2: 3500 movi r5, 0 + BT_DeInit(BT1); + 30f4: 9400 ld.w r0, (r4, 0x0) + 30f6: e3fffa19 bsr 0x2528 // 2528 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 30fa: 9400 ld.w r0, (r4, 0x0) + 30fc: b8a1 st.w r5, (r14, 0x4) + 30fe: b8a0 st.w r5, (r14, 0x0) + 3100: 3308 movi r3, 8 + 3102: 3200 movi r2, 0 + 3104: 3101 movi r1, 1 + 3106: e3fffa28 bsr 0x2556 // 2556 + 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); + 310a: 3380 movi r3, 128 + 310c: 4363 lsli r3, r3, 3 + 310e: b861 st.w r3, (r14, 0x4) + 3110: 9400 ld.w r0, (r4, 0x0) + 3112: 3300 movi r3, 0 + 3114: b8a3 st.w r5, (r14, 0xc) + 3116: b8a2 st.w r5, (r14, 0x8) + 3118: b8a0 st.w r5, (r14, 0x0) + 311a: 3200 movi r2, 0 + 311c: 3180 movi r1, 128 + 311e: e3fffa28 bsr 0x256e // 256e + BT_Period_CMP_Write(BT1,4780,1); + 3122: 3201 movi r2, 1 + 3124: 1029 lrw r1, 0x12ac // 3148 + 3126: 9400 ld.w r0, (r4, 0x0) + 3128: e3fffa39 bsr 0x259a // 259a + BT_Start(BT1); + 312c: 9400 ld.w r0, (r4, 0x0) + 312e: e3fffa0b bsr 0x2544 // 2544 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 3132: 9400 ld.w r0, (r4, 0x0) + 3134: 3202 movi r2, 2 + 3136: 3101 movi r1, 1 + 3138: e3fffa34 bsr 0x25a0 // 25a0 + BT1_INT_ENABLE(); + 313c: e3fffa3c bsr 0x25b4 // 25b4 + +} + 3140: 1404 addi r14, r14, 16 + 3142: 1492 pop r4-r5, r15 + 3144: 20000008 .long 0x20000008 + 3148: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +0000314c : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 314c: 14d0 push r15 + 314e: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 3150: e3fff658 bsr 0x1e00 // 1e00 + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 3154: 3101 movi r1, 1 + 3156: 3001 movi r0, 1 + 3158: e3fff67a bsr 0x1e4c // 1e4c + //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 + 315c: 3000 movi r0, 0 + 315e: e3fff6d3 bsr 0x1f04 // 1f04 + 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 + 3162: 3180 movi r1, 128 + 3164: 3308 movi r3, 8 + 3166: 3200 movi r2, 0 + 3168: 4121 lsli r1, r1, 1 + 316a: 3002 movi r0, 2 + 316c: e3fff688 bsr 0x1e7c // 1e7c +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 3170: 30c0 movi r0, 192 + 3172: 3118 movi r1, 24 + 3174: 4002 lsli r0, r0, 2 + 3176: e3fff703 bsr 0x1f7c // 1f7c + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 317a: 3001 movi r0, 1 + 317c: e3fff6d8 bsr 0x1f2c // 1f2c + SYSCON_IWDCNT_Reload(); //reload WDT + 3180: e3fff6f4 bsr 0x1f68 // 1f68 + IWDT_Int_Enable(); + 3184: e3fff726 bsr 0x1fd0 // 1fd0 + //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 + 3188: 3340 movi r3, 64 + 318a: b860 st.w r3, (r14, 0x0) + 318c: 31c0 movi r1, 192 + 318e: 3380 movi r3, 128 + 3190: 4364 lsli r3, r3, 4 + 3192: 3200 movi r2, 0 + 3194: 4123 lsli r1, r1, 3 + 3196: 3000 movi r0, 0 + 3198: e3fff6fe bsr 0x1f94 // 1f94 + LVD_Int_Enable(); + 319c: e3fff70c bsr 0x1fb4 // 1fb4 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 31a0: e3fff772 bsr 0x2084 // 2084 + //SYSCON_WakeUp_Enable(); //Enable WDT wakeup INT +//------------------------------------------------------------/ +//OSC CLOCK Calibration +//------------------------------------------------------------/ + std_clk_calib(CLK_HFOSC_48M); //Select the same clock source as the system + 31a4: 3000 movi r0, 0 + 31a6: e00037db bsr 0xa15c // a15c + +} + 31aa: 1401 addi r14, r14, 4 + 31ac: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +000031b0 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 31b0: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 31b2: 1162 lrw r3, 0x2000005c // 3238 + Sys_RSR = 0x00000000; + 31b4: 1142 lrw r2, 0x200000b4 // 323c + 31b6: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 31b8: 9360 ld.w r3, (r3, 0x0) + 31ba: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 31bc: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 31be: 600c addu r0, r3 + 31c0: 9004 ld.w r0, (r0, 0x10) + 31c2: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 31c4: 105f lrw r2, 0x200000b0 // 3240 + 31c6: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 31c8: 3180 movi r1, 128 + 31ca: 4121 lsli r1, r1, 1 + 31cc: 604c addu r1, r3 + 31ce: 9120 ld.w r1, (r1, 0x0) + 31d0: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 31d2: 105d lrw r2, 0xfffffff // 3244 + 31d4: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 31d6: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 31d8: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 31da: 934c ld.w r2, (r3, 0x30) + 31dc: 6884 and r2, r1 + 31de: 3a40 cmpnei r2, 0 + 31e0: 0ffd bf 0x31da // 31da +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 31e2: e3ffffb5 bsr 0x314c // 314c + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 31e6: e000055b bsr 0x3c9c // 3c9c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 31ea: e3fff759 bsr 0x209c // 209c + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 31ee: 3101 movi r1, 1 + 31f0: 300f movi r0, 15 + 31f2: e3fff767 bsr 0x20c0 // 20c0 + + Set_INT_Priority(TKEY_IRQ,2); //触摸中断优先级 + 31f6: 3102 movi r1, 2 + 31f8: 3019 movi r0, 25 + 31fa: e3fff763 bsr 0x20c0 // 20c0 + + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 31fe: 3101 movi r1, 1 + 3200: 3016 movi r0, 22 + 3202: e3fff75f bsr 0x20c0 // 20c0 + + Set_INT_Priority(EXI4_IRQ, 1); //过零信号外部IO中断 + 3206: 3101 movi r1, 1 + 3208: 3017 movi r0, 23 + 320a: e3fff75b bsr 0x20c0 // 20c0 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 320e: e3fff771 bsr 0x20f0 // 20f0 +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + Relay_Init(); + 3212: e000252b bsr 0x7c68 // 7c68 + + BT_CONFIG(); //BT initial + 3216: e3ffff6b bsr 0x30ec // 30ec + + GPIO_CONFIG(); + 321a: e3ffff23 bsr 0x3060 // 3060 + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 321e: 102b lrw r1, 0x83ac // 3248 + 3220: 3002 movi r0, 2 + 3222: e0000543 bsr 0x3ca8 // 3ca8 + + HT1621_Init(); //显示驱动初始化 + 3226: e000169d bsr 0x5f60 // 5f60 + + TM1812_LED_Init(); + 322a: e0001629 bsr 0x5e7c // 5e7c + + ADC_Init(); + 322e: e0000f55 bsr 0x50d8 // 50d8 + + Touch_Key_Init(); + 3232: e0000773 bsr 0x4118 // 4118 +} + 3236: 1490 pop r15 + 3238: 2000005c .long 0x2000005c + 323c: 200000b4 .long 0x200000b4 + 3240: 200000b0 .long 0x200000b0 + 3244: 0fffffff .long 0x0fffffff + 3248: 000083ac .long 0x000083ac + +Disassembly of section .text.SYSCONIntHandler: + +0000324c : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 324c: 1460 nie + 324e: 1462 ipush + // ISR content ... + nop; + 3250: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 3252: 117a lrw r3, 0x2000005c // 3338 + 3254: 3280 movi r2, 128 + 3256: 9360 ld.w r3, (r3, 0x0) + 3258: 60c8 addu r3, r2 + 325a: 9323 ld.w r1, (r3, 0xc) + 325c: 3001 movi r0, 1 + 325e: 6840 and r1, r0 + 3260: 3940 cmpnei r1, 0 + 3262: 0c04 bf 0x326a // 326a + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 3264: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 3266: 1463 ipop + 3268: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 326a: 9323 ld.w r1, (r3, 0xc) + 326c: 3002 movi r0, 2 + 326e: 6840 and r1, r0 + 3270: 3940 cmpnei r1, 0 + 3272: 0bf9 bt 0x3264 // 3264 + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 3274: 9323 ld.w r1, (r3, 0xc) + 3276: 3008 movi r0, 8 + 3278: 6840 and r1, r0 + 327a: 3940 cmpnei r1, 0 + 327c: 0bf4 bt 0x3264 // 3264 + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 327e: 9323 ld.w r1, (r3, 0xc) + 3280: 3010 movi r0, 16 + 3282: 6840 and r1, r0 + 3284: 3940 cmpnei r1, 0 + 3286: 0bef bt 0x3264 // 3264 + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 3288: 9323 ld.w r1, (r3, 0xc) + 328a: 6848 and r1, r2 + 328c: 3940 cmpnei r1, 0 + 328e: 0c03 bf 0x3294 // 3294 + SYSCON->ICR = CMD_ERR_ST; + 3290: b341 st.w r2, (r3, 0x4) +} + 3292: 07ea br 0x3266 // 3266 + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 3294: 3280 movi r2, 128 + 3296: 9323 ld.w r1, (r3, 0xc) + 3298: 4241 lsli r2, r2, 1 + 329a: 6848 and r1, r2 + 329c: 3940 cmpnei r1, 0 + 329e: 0bf9 bt 0x3290 // 3290 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 32a0: 3280 movi r2, 128 + 32a2: 9323 ld.w r1, (r3, 0xc) + 32a4: 4242 lsli r2, r2, 2 + 32a6: 6848 and r1, r2 + 32a8: 3940 cmpnei r1, 0 + 32aa: 0bf3 bt 0x3290 // 3290 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 32ac: 3280 movi r2, 128 + 32ae: 9323 ld.w r1, (r3, 0xc) + 32b0: 4243 lsli r2, r2, 3 + 32b2: 6848 and r1, r2 + 32b4: 3940 cmpnei r1, 0 + 32b6: 0bed bt 0x3290 // 3290 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 32b8: 3280 movi r2, 128 + 32ba: 9323 ld.w r1, (r3, 0xc) + 32bc: 4244 lsli r2, r2, 4 + 32be: 6848 and r1, r2 + 32c0: 3940 cmpnei r1, 0 + 32c2: 0c03 bf 0x32c8 // 32c8 + nop; + 32c4: 6c03 mov r0, r0 + 32c6: 07e5 br 0x3290 // 3290 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 32c8: 3280 movi r2, 128 + 32ca: 9323 ld.w r1, (r3, 0xc) + 32cc: 4245 lsli r2, r2, 5 + 32ce: 6848 and r1, r2 + 32d0: 3940 cmpnei r1, 0 + 32d2: 0bdf bt 0x3290 // 3290 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 32d4: 3280 movi r2, 128 + 32d6: 9323 ld.w r1, (r3, 0xc) + 32d8: 4246 lsli r2, r2, 6 + 32da: 6848 and r1, r2 + 32dc: 3940 cmpnei r1, 0 + 32de: 0bd9 bt 0x3290 // 3290 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 32e0: 3280 movi r2, 128 + 32e2: 9323 ld.w r1, (r3, 0xc) + 32e4: 4247 lsli r2, r2, 7 + 32e6: 6848 and r1, r2 + 32e8: 3940 cmpnei r1, 0 + 32ea: 0bd3 bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 32ec: 3280 movi r2, 128 + 32ee: 9323 ld.w r1, (r3, 0xc) + 32f0: 424b lsli r2, r2, 11 + 32f2: 6848 and r1, r2 + 32f4: 3940 cmpnei r1, 0 + 32f6: 0bcd bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 32f8: 3280 movi r2, 128 + 32fa: 9323 ld.w r1, (r3, 0xc) + 32fc: 424c lsli r2, r2, 12 + 32fe: 6848 and r1, r2 + 3300: 3940 cmpnei r1, 0 + 3302: 0bc7 bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 3304: 3280 movi r2, 128 + 3306: 9323 ld.w r1, (r3, 0xc) + 3308: 424d lsli r2, r2, 13 + 330a: 6848 and r1, r2 + 330c: 3940 cmpnei r1, 0 + 330e: 0bc1 bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 3310: 3280 movi r2, 128 + 3312: 9323 ld.w r1, (r3, 0xc) + 3314: 424e lsli r2, r2, 14 + 3316: 6848 and r1, r2 + 3318: 3940 cmpnei r1, 0 + 331a: 0bbb bt 0x3290 // 3290 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 331c: 3280 movi r2, 128 + 331e: 9323 ld.w r1, (r3, 0xc) + 3320: 424f lsli r2, r2, 15 + 3322: 6848 and r1, r2 + 3324: 3940 cmpnei r1, 0 + 3326: 0bb5 bt 0x3290 // 3290 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 3328: 3280 movi r2, 128 + 332a: 9323 ld.w r1, (r3, 0xc) + 332c: 4256 lsli r2, r2, 22 + 332e: 6848 and r1, r2 + 3330: 3940 cmpnei r1, 0 + 3332: 0baf bt 0x3290 // 3290 + 3334: 0799 br 0x3266 // 3266 + 3336: 0000 bkpt + 3338: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +0000333c : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 333c: 1460 nie + 333e: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 3340: 1078 lrw r3, 0x20000060 // 33a0 + 3342: 3101 movi r1, 1 + 3344: 9360 ld.w r3, (r3, 0x0) + 3346: 934b ld.w r2, (r3, 0x2c) + 3348: 6884 and r2, r1 + 334a: 3a40 cmpnei r2, 0 + 334c: 0c04 bf 0x3354 // 3354 + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 334e: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 3350: 1463 ipop + 3352: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 3354: 934b ld.w r2, (r3, 0x2c) + 3356: 3102 movi r1, 2 + 3358: 6884 and r2, r1 + 335a: 3a40 cmpnei r2, 0 + 335c: 0bf9 bt 0x334e // 334e + else if(IFC->MISR&PEP_END_INT) + 335e: 934b ld.w r2, (r3, 0x2c) + 3360: 3104 movi r1, 4 + 3362: 6884 and r2, r1 + 3364: 3a40 cmpnei r2, 0 + 3366: 0bf4 bt 0x334e // 334e + else if(IFC->MISR&PROT_ERR_INT) + 3368: 3280 movi r2, 128 + 336a: 932b ld.w r1, (r3, 0x2c) + 336c: 4245 lsli r2, r2, 5 + 336e: 6848 and r1, r2 + 3370: 3940 cmpnei r1, 0 + 3372: 0c03 bf 0x3378 // 3378 + IFC->ICR=OVW_ERR_INT; + 3374: b34c st.w r2, (r3, 0x30) +} + 3376: 07ed br 0x3350 // 3350 + else if(IFC->MISR&UDEF_ERR_INT) + 3378: 3280 movi r2, 128 + 337a: 932b ld.w r1, (r3, 0x2c) + 337c: 4246 lsli r2, r2, 6 + 337e: 6848 and r1, r2 + 3380: 3940 cmpnei r1, 0 + 3382: 0bf9 bt 0x3374 // 3374 + else if(IFC->MISR&ADDR_ERR_INT) + 3384: 3280 movi r2, 128 + 3386: 932b ld.w r1, (r3, 0x2c) + 3388: 4247 lsli r2, r2, 7 + 338a: 6848 and r1, r2 + 338c: 3940 cmpnei r1, 0 + 338e: 0bf3 bt 0x3374 // 3374 + else if(IFC->MISR&OVW_ERR_INT) + 3390: 3280 movi r2, 128 + 3392: 932b ld.w r1, (r3, 0x2c) + 3394: 4248 lsli r2, r2, 8 + 3396: 6848 and r1, r2 + 3398: 3940 cmpnei r1, 0 + 339a: 0bed bt 0x3374 // 3374 + 339c: 07da br 0x3350 // 3350 + 339e: 0000 bkpt + 33a0: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +000033a4 : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 33a4: 1460 nie + 33a6: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 33a8: 1078 lrw r3, 0x20000050 // 3408 + 33aa: 3101 movi r1, 1 + 33ac: 9360 ld.w r3, (r3, 0x0) + 33ae: 9348 ld.w r2, (r3, 0x20) + 33b0: 6884 and r2, r1 + 33b2: 3a40 cmpnei r2, 0 + 33b4: 0c04 bf 0x33bc // 33bc + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 33b6: 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; + } +} + 33b8: 1463 ipop + 33ba: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 33bc: 9348 ld.w r2, (r3, 0x20) + 33be: 3102 movi r1, 2 + 33c0: 6884 and r2, r1 + 33c2: 3a40 cmpnei r2, 0 + 33c4: 0bf9 bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 33c6: 9348 ld.w r2, (r3, 0x20) + 33c8: 3104 movi r1, 4 + 33ca: 6884 and r2, r1 + 33cc: 3a40 cmpnei r2, 0 + 33ce: 0bf4 bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 33d0: 9348 ld.w r2, (r3, 0x20) + 33d2: 3110 movi r1, 16 + 33d4: 6884 and r2, r1 + 33d6: 3a40 cmpnei r2, 0 + 33d8: 0bef bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 33da: 9348 ld.w r2, (r3, 0x20) + 33dc: 3120 movi r1, 32 + 33de: 6884 and r2, r1 + 33e0: 3a40 cmpnei r2, 0 + 33e2: 0bea bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 33e4: 9348 ld.w r2, (r3, 0x20) + 33e6: 3140 movi r1, 64 + 33e8: 6884 and r2, r1 + 33ea: 3a40 cmpnei r2, 0 + 33ec: 0be5 bt 0x33b6 // 33b6 + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 33ee: 9348 ld.w r2, (r3, 0x20) + 33f0: 3180 movi r1, 128 + 33f2: 6884 and r2, r1 + 33f4: 3a40 cmpnei r2, 0 + 33f6: 0be0 bt 0x33b6 // 33b6 + 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 + 33f8: 3280 movi r2, 128 + 33fa: 9328 ld.w r1, (r3, 0x20) + 33fc: 4249 lsli r2, r2, 9 + 33fe: 6848 and r1, r2 + 3400: 3940 cmpnei r1, 0 + 3402: 0fdb bf 0x33b8 // 33b8 + ADC0->CSR = ADC12_SEQ_END0; + 3404: b347 st.w r2, (r3, 0x1c) +} + 3406: 07d9 br 0x33b8 // 33b8 + 3408: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +0000340c : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 340c: 1460 nie + 340e: 1462 ipush + 3410: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 3412: 1387 lrw r4, 0x20000020 // 35ac + 3414: 3280 movi r2, 128 + 3416: 9460 ld.w r3, (r4, 0x0) + 3418: 60c8 addu r3, r2 + 341a: 9335 ld.w r1, (r3, 0x54) + 341c: 3001 movi r0, 1 + 341e: 6840 and r1, r0 + 3420: 3940 cmpnei r1, 0 + 3422: 0c03 bf 0x3428 // 3428 + 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; + 3424: b317 st.w r0, (r3, 0x5c) + 3426: 0424 br 0x346e // 346e + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 3428: 9335 ld.w r1, (r3, 0x54) + 342a: 3002 movi r0, 2 + 342c: 6840 and r1, r0 + 342e: 3940 cmpnei r1, 0 + 3430: 0bfa bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 3432: 9335 ld.w r1, (r3, 0x54) + 3434: 3004 movi r0, 4 + 3436: 6840 and r1, r0 + 3438: 3940 cmpnei r1, 0 + 343a: 0bf5 bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 343c: 9335 ld.w r1, (r3, 0x54) + 343e: 3008 movi r0, 8 + 3440: 6840 and r1, r0 + 3442: 3940 cmpnei r1, 0 + 3444: 0bf0 bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 3446: 9335 ld.w r1, (r3, 0x54) + 3448: 3010 movi r0, 16 + 344a: 6840 and r1, r0 + 344c: 3940 cmpnei r1, 0 + 344e: 0c1f bf 0x348c // 348c + EPT0->ICR=EPT_CAP_LD0; + 3450: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 3452: 3200 movi r2, 0 + 3454: 3101 movi r1, 1 + 3456: 3000 movi r0, 0 + 3458: e3fff5ca bsr 0x1fec // 1fec + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 345c: 3201 movi r2, 1 + 345e: 3101 movi r1, 1 + 3460: 3001 movi r0, 1 + 3462: e3fff5c5 bsr 0x1fec // 1fec + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 3466: 9460 ld.w r3, (r4, 0x0) + 3468: 934b ld.w r2, (r3, 0x2c) + 346a: 1272 lrw r3, 0x200002c4 // 35b0 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 346c: 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 + 346e: 9460 ld.w r3, (r4, 0x0) + 3470: 3280 movi r2, 128 + 3472: 60c8 addu r3, r2 + 3474: 932b ld.w r1, (r3, 0x2c) + 3476: 3001 movi r0, 1 + 3478: 6840 and r1, r0 + 347a: 3940 cmpnei r1, 0 + 347c: 0c61 bf 0x353e // 353e + { + 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; + 347e: 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; + } +} + 3480: d9ee2001 ld.w r15, (r14, 0x4) + 3484: 9880 ld.w r4, (r14, 0x0) + 3486: 1402 addi r14, r14, 8 + 3488: 1463 ipop + 348a: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 348c: 9335 ld.w r1, (r3, 0x54) + 348e: 3020 movi r0, 32 + 3490: 6840 and r1, r0 + 3492: 3940 cmpnei r1, 0 + 3494: 0c10 bf 0x34b4 // 34b4 + EPT0->ICR=EPT_CAP_LD1; + 3496: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 3498: 3200 movi r2, 0 + 349a: 3101 movi r1, 1 + 349c: 3001 movi r0, 1 + 349e: e3fff5a7 bsr 0x1fec // 1fec + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 34a2: 3201 movi r2, 1 + 34a4: 3101 movi r1, 1 + 34a6: 3000 movi r0, 0 + 34a8: e3fff5a2 bsr 0x1fec // 1fec + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 34ac: 9460 ld.w r3, (r4, 0x0) + 34ae: 934c ld.w r2, (r3, 0x30) + 34b0: 1261 lrw r3, 0x200002c0 // 35b4 + 34b2: 07dd br 0x346c // 346c + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 34b4: 9335 ld.w r1, (r3, 0x54) + 34b6: 3040 movi r0, 64 + 34b8: 6840 and r1, r0 + 34ba: 3940 cmpnei r1, 0 + 34bc: 0bb4 bt 0x3424 // 3424 + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 34be: 9335 ld.w r1, (r3, 0x54) + 34c0: 6848 and r1, r2 + 34c2: 3940 cmpnei r1, 0 + 34c4: 0c03 bf 0x34ca // 34ca + EPT0->ICR=EPT_CDD; + 34c6: b357 st.w r2, (r3, 0x5c) + 34c8: 07d3 br 0x346e // 346e + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 34ca: 3280 movi r2, 128 + 34cc: 9335 ld.w r1, (r3, 0x54) + 34ce: 4241 lsli r2, r2, 1 + 34d0: 6848 and r1, r2 + 34d2: 3940 cmpnei r1, 0 + 34d4: 0bf9 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 34d6: 3280 movi r2, 128 + 34d8: 9335 ld.w r1, (r3, 0x54) + 34da: 4242 lsli r2, r2, 2 + 34dc: 6848 and r1, r2 + 34de: 3940 cmpnei r1, 0 + 34e0: 0bf3 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 34e2: 3280 movi r2, 128 + 34e4: 9335 ld.w r1, (r3, 0x54) + 34e6: 4243 lsli r2, r2, 3 + 34e8: 6848 and r1, r2 + 34ea: 3940 cmpnei r1, 0 + 34ec: 0bed bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 34ee: 3280 movi r2, 128 + 34f0: 9335 ld.w r1, (r3, 0x54) + 34f2: 4244 lsli r2, r2, 4 + 34f4: 6848 and r1, r2 + 34f6: 3940 cmpnei r1, 0 + 34f8: 0be7 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 34fa: 3280 movi r2, 128 + 34fc: 9335 ld.w r1, (r3, 0x54) + 34fe: 4245 lsli r2, r2, 5 + 3500: 6848 and r1, r2 + 3502: 3940 cmpnei r1, 0 + 3504: 0be1 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 3506: 3280 movi r2, 128 + 3508: 9335 ld.w r1, (r3, 0x54) + 350a: 4246 lsli r2, r2, 6 + 350c: 6848 and r1, r2 + 350e: 3940 cmpnei r1, 0 + 3510: 0bdb bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 3512: 3280 movi r2, 128 + 3514: 9335 ld.w r1, (r3, 0x54) + 3516: 4247 lsli r2, r2, 7 + 3518: 6848 and r1, r2 + 351a: 3940 cmpnei r1, 0 + 351c: 0bd5 bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 351e: 3280 movi r2, 128 + 3520: 9335 ld.w r1, (r3, 0x54) + 3522: 4248 lsli r2, r2, 8 + 3524: 6848 and r1, r2 + 3526: 3940 cmpnei r1, 0 + 3528: 0bcf bt 0x34c6 // 34c6 + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 352a: 3280 movi r2, 128 + 352c: 9335 ld.w r1, (r3, 0x54) + 352e: 4249 lsli r2, r2, 9 + 3530: 6848 and r1, r2 + 3532: 3940 cmpnei r1, 0 + 3534: 0f9d bf 0x346e // 346e + EPT0->ICR=EPT_PEND; + 3536: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 3538: e3fff98c bsr 0x2850 // 2850 + 353c: 0799 br 0x346e // 346e + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 353e: 932b ld.w r1, (r3, 0x2c) + 3540: 3002 movi r0, 2 + 3542: 6840 and r1, r0 + 3544: 3940 cmpnei r1, 0 + 3546: 0b9c bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 3548: 932b ld.w r1, (r3, 0x2c) + 354a: 3004 movi r0, 4 + 354c: 6840 and r1, r0 + 354e: 3940 cmpnei r1, 0 + 3550: 0b97 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 3552: 932b ld.w r1, (r3, 0x2c) + 3554: 3008 movi r0, 8 + 3556: 6840 and r1, r0 + 3558: 3940 cmpnei r1, 0 + 355a: 0b92 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 355c: 932b ld.w r1, (r3, 0x2c) + 355e: 3010 movi r0, 16 + 3560: 6840 and r1, r0 + 3562: 3940 cmpnei r1, 0 + 3564: 0b8d bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 3566: 932b ld.w r1, (r3, 0x2c) + 3568: 3020 movi r0, 32 + 356a: 6840 and r1, r0 + 356c: 3940 cmpnei r1, 0 + 356e: 0b88 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 3570: 932b ld.w r1, (r3, 0x2c) + 3572: 3040 movi r0, 64 + 3574: 6840 and r1, r0 + 3576: 3940 cmpnei r1, 0 + 3578: 0b83 bt 0x347e // 347e + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 357a: 932b ld.w r1, (r3, 0x2c) + 357c: 6848 and r1, r2 + 357e: 3940 cmpnei r1, 0 + 3580: 0c03 bf 0x3586 // 3586 + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 3582: b34d st.w r2, (r3, 0x34) +} + 3584: 077e br 0x3480 // 3480 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 3586: 3280 movi r2, 128 + 3588: 932b ld.w r1, (r3, 0x2c) + 358a: 4241 lsli r2, r2, 1 + 358c: 6848 and r1, r2 + 358e: 3940 cmpnei r1, 0 + 3590: 0bf9 bt 0x3582 // 3582 + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 3592: 3280 movi r2, 128 + 3594: 932b ld.w r1, (r3, 0x2c) + 3596: 4242 lsli r2, r2, 2 + 3598: 6848 and r1, r2 + 359a: 3940 cmpnei r1, 0 + 359c: 0bf3 bt 0x3582 // 3582 + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 359e: 3280 movi r2, 128 + 35a0: 932b ld.w r1, (r3, 0x2c) + 35a2: 4243 lsli r2, r2, 3 + 35a4: 6848 and r1, r2 + 35a6: 3940 cmpnei r1, 0 + 35a8: 0bed bt 0x3582 // 3582 + 35aa: 076b br 0x3480 // 3480 + 35ac: 20000020 .long 0x20000020 + 35b0: 200002c4 .long 0x200002c4 + 35b4: 200002c0 .long 0x200002c0 + +Disassembly of section .text.WWDTHandler: + +000035b8 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 35b8: 1460 nie + 35ba: 1462 ipush + 35bc: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 35be: 10ab lrw r5, 0x20000010 // 35e8 + 35c0: 3401 movi r4, 1 + 35c2: 9560 ld.w r3, (r5, 0x0) + 35c4: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 35c6: 30ff movi r0, 255 + 35c8: e3fff7a8 bsr 0x2518 // 2518 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 35cc: 9540 ld.w r2, (r5, 0x0) + 35ce: 9263 ld.w r3, (r2, 0xc) + 35d0: 68d0 and r3, r4 + 35d2: 3b40 cmpnei r3, 0 + 35d4: 0c02 bf 0x35d8 // 35d8 + { + WWDT->ICR = WWDT_EVI; + 35d6: b285 st.w r4, (r2, 0x14) + } +} + 35d8: d9ee2002 ld.w r15, (r14, 0x8) + 35dc: 98a1 ld.w r5, (r14, 0x4) + 35de: 9880 ld.w r4, (r14, 0x0) + 35e0: 1403 addi r14, r14, 12 + 35e2: 1463 ipop + 35e4: 1461 nir + 35e6: 0000 bkpt + 35e8: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000035ec : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 35ec: 1460 nie + 35ee: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 35f0: 107e lrw r3, 0x20000024 // 3668 + 35f2: 3101 movi r1, 1 + 35f4: 9360 ld.w r3, (r3, 0x0) + 35f6: 237f addi r3, 128 + 35f8: 9355 ld.w r2, (r3, 0x54) + 35fa: 6884 and r2, r1 + 35fc: 3a40 cmpnei r2, 0 + 35fe: 0c04 bf 0x3606 // 3606 + { + 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; + 3600: 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; + } +} + 3602: 1463 ipop + 3604: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 3606: 9355 ld.w r2, (r3, 0x54) + 3608: 3102 movi r1, 2 + 360a: 6884 and r2, r1 + 360c: 3a40 cmpnei r2, 0 + 360e: 0bf9 bt 0x3600 // 3600 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 3610: 9355 ld.w r2, (r3, 0x54) + 3612: 3110 movi r1, 16 + 3614: 6884 and r2, r1 + 3616: 3a40 cmpnei r2, 0 + 3618: 0bf4 bt 0x3600 // 3600 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 361a: 9355 ld.w r2, (r3, 0x54) + 361c: 3120 movi r1, 32 + 361e: 6884 and r2, r1 + 3620: 3a40 cmpnei r2, 0 + 3622: 0bef bt 0x3600 // 3600 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 3624: 3280 movi r2, 128 + 3626: 9335 ld.w r1, (r3, 0x54) + 3628: 4241 lsli r2, r2, 1 + 362a: 6848 and r1, r2 + 362c: 3940 cmpnei r1, 0 + 362e: 0c03 bf 0x3634 // 3634 + GPT0->ICR = GPT_INT_PEND; + 3630: b357 st.w r2, (r3, 0x5c) +} + 3632: 07e8 br 0x3602 // 3602 + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 3634: 3280 movi r2, 128 + 3636: 9335 ld.w r1, (r3, 0x54) + 3638: 4242 lsli r2, r2, 2 + 363a: 6848 and r1, r2 + 363c: 3940 cmpnei r1, 0 + 363e: 0bf9 bt 0x3630 // 3630 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 3640: 3280 movi r2, 128 + 3642: 9335 ld.w r1, (r3, 0x54) + 3644: 4243 lsli r2, r2, 3 + 3646: 6848 and r1, r2 + 3648: 3940 cmpnei r1, 0 + 364a: 0bf3 bt 0x3630 // 3630 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 364c: 3280 movi r2, 128 + 364e: 9335 ld.w r1, (r3, 0x54) + 3650: 4244 lsli r2, r2, 4 + 3652: 6848 and r1, r2 + 3654: 3940 cmpnei r1, 0 + 3656: 0bed bt 0x3630 // 3630 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 3658: 3280 movi r2, 128 + 365a: 9335 ld.w r1, (r3, 0x54) + 365c: 4249 lsli r2, r2, 9 + 365e: 6848 and r1, r2 + 3660: 3940 cmpnei r1, 0 + 3662: 0be7 bt 0x3630 // 3630 + 3664: 07cf br 0x3602 // 3602 + 3666: 0000 bkpt + 3668: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +0000366c : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 366c: 1460 nie + 366e: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 3670: 1079 lrw r3, 0x20000018 // 36d4 + 3672: 3101 movi r1, 1 + 3674: 9360 ld.w r3, (r3, 0x0) + 3676: 934a ld.w r2, (r3, 0x28) + 3678: 6884 and r2, r1 + 367a: 3a40 cmpnei r2, 0 + 367c: 0c14 bf 0x36a4 // 36a4 + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 367e: 1057 lrw r2, 0xca53 // 36d8 + RTC->ICR=ALRA_INT; + 3680: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 3682: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 3684: 9342 ld.w r2, (r3, 0x8) + 3686: 6c84 or r2, r1 + 3688: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 368a: 3280 movi r2, 128 + 368c: 424d lsli r2, r2, 13 + 368e: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 3690: 3102 movi r1, 2 + 3692: 9342 ld.w r2, (r3, 0x8) + 3694: 6884 and r2, r1 + 3696: 3a40 cmpnei r2, 0 + 3698: 0bfd bt 0x3692 // 3692 + RTC->CR &= ~0x1; + 369a: 9342 ld.w r2, (r3, 0x8) + 369c: 3a80 bclri r2, 0 + 369e: 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; + } +} + 36a0: 1463 ipop + 36a2: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 36a4: 934a ld.w r2, (r3, 0x28) + 36a6: 3102 movi r1, 2 + 36a8: 6884 and r2, r1 + 36aa: 3a40 cmpnei r2, 0 + 36ac: 0c03 bf 0x36b2 // 36b2 + RTC->ICR=RTC_TRGEV1_INT; + 36ae: b32b st.w r1, (r3, 0x2c) +} + 36b0: 07f8 br 0x36a0 // 36a0 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 36b2: 934a ld.w r2, (r3, 0x28) + 36b4: 3104 movi r1, 4 + 36b6: 6884 and r2, r1 + 36b8: 3a40 cmpnei r2, 0 + 36ba: 0bfa bt 0x36ae // 36ae + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 36bc: 934a ld.w r2, (r3, 0x28) + 36be: 3108 movi r1, 8 + 36c0: 6884 and r2, r1 + 36c2: 3a40 cmpnei r2, 0 + 36c4: 0bf5 bt 0x36ae // 36ae + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 36c6: 934a ld.w r2, (r3, 0x28) + 36c8: 3110 movi r1, 16 + 36ca: 6884 and r2, r1 + 36cc: 3a40 cmpnei r2, 0 + 36ce: 0bf0 bt 0x36ae // 36ae + 36d0: 07e8 br 0x36a0 // 36a0 + 36d2: 0000 bkpt + 36d4: 20000018 .long 0x20000018 + 36d8: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +000036dc : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 36dc: 1460 nie + 36de: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 36e0: 106d lrw r3, 0x20000040 // 3714 + 36e2: 3102 movi r1, 2 + 36e4: 9360 ld.w r3, (r3, 0x0) + 36e6: 9343 ld.w r2, (r3, 0xc) + 36e8: 6884 and r2, r1 + 36ea: 3a40 cmpnei r2, 0 + 36ec: 0c03 bf 0x36f2 // 36f2 + { + 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; + 36ee: b323 st.w r1, (r3, 0xc) + } +} + 36f0: 0410 br 0x3710 // 3710 + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 36f2: 9343 ld.w r2, (r3, 0xc) + 36f4: 3101 movi r1, 1 + 36f6: 6884 and r2, r1 + 36f8: 3a40 cmpnei r2, 0 + 36fa: 0bfa bt 0x36ee // 36ee + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 36fc: 9343 ld.w r2, (r3, 0xc) + 36fe: 3108 movi r1, 8 + 3700: 6884 and r2, r1 + 3702: 3a40 cmpnei r2, 0 + 3704: 0bf5 bt 0x36ee // 36ee + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3706: 9343 ld.w r2, (r3, 0xc) + 3708: 3104 movi r1, 4 + 370a: 6884 and r2, r1 + 370c: 3a40 cmpnei r2, 0 + 370e: 0bf0 bt 0x36ee // 36ee +} + 3710: 1463 ipop + 3712: 1461 nir + 3714: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00003718 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 3718: 1460 nie + 371a: 1462 ipush + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 371c: 106d lrw r3, 0x2000003c // 3750 + 371e: 3102 movi r1, 2 + 3720: 9360 ld.w r3, (r3, 0x0) + 3722: 9343 ld.w r2, (r3, 0xc) + 3724: 6884 and r2, r1 + 3726: 3a40 cmpnei r2, 0 + 3728: 0c03 bf 0x372e // 372e + { + 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; + 372a: b323 st.w r1, (r3, 0xc) + } +} + 372c: 0410 br 0x374c // 374c + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 372e: 9343 ld.w r2, (r3, 0xc) + 3730: 3101 movi r1, 1 + 3732: 6884 and r2, r1 + 3734: 3a40 cmpnei r2, 0 + 3736: 0bfa bt 0x372a // 372a + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 3738: 9343 ld.w r2, (r3, 0xc) + 373a: 3108 movi r1, 8 + 373c: 6884 and r2, r1 + 373e: 3a40 cmpnei r2, 0 + 3740: 0bf5 bt 0x372a // 372a + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 3742: 9343 ld.w r2, (r3, 0xc) + 3744: 3104 movi r1, 4 + 3746: 6884 and r2, r1 + 3748: 3a40 cmpnei r2, 0 + 374a: 0bf0 bt 0x372a // 372a +} + 374c: 1463 ipop + 374e: 1461 nir + 3750: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2IntHandler: + +00003754 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 3754: 1460 nie + 3756: 1462 ipush + 3758: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 375a: 107f lrw r3, 0x20000038 // 37d4 + 375c: 3102 movi r1, 2 + 375e: 9360 ld.w r3, (r3, 0x0) + 3760: 9343 ld.w r2, (r3, 0xc) + 3762: 6884 and r2, r1 + 3764: 3a40 cmpnei r2, 0 + 3766: 0c0b bf 0x377c // 377c + { + UART2->ISR=UART_RX_INT_S; + 3768: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 376a: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 376c: 7400 zextb r0, r0 + 376e: e0000321 bsr 0x3db0 // 3db0 + RS485_Comm_End ++; + } + + } + +} + 3772: d9ee2000 ld.w r15, (r14, 0x0) + 3776: 1401 addi r14, r14, 4 + 3778: 1463 ipop + 377a: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 377c: 9323 ld.w r1, (r3, 0xc) + 377e: 3201 movi r2, 1 + 3780: 6848 and r1, r2 + 3782: 3940 cmpnei r1, 0 + 3784: 0c0d bf 0x379e // 379e + UART2->ISR=UART_TX_INT_S; + 3786: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 3788: 1074 lrw r3, 0x2000012c // 37d8 + 378a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 378c: 1074 lrw r3, 0x20000130 // 37dc + 378e: 9360 ld.w r3, (r3, 0x0) + 3790: 3b41 cmpnei r3, 1 + 3792: 0bf0 bt 0x3772 // 3772 + RS485_Comm_Start ++; + 3794: 1053 lrw r2, 0x20000134 // 37e0 + RS485_Comm_End ++; + 3796: 9260 ld.w r3, (r2, 0x0) + 3798: 2300 addi r3, 1 + 379a: b260 st.w r3, (r2, 0x0) +} + 379c: 07eb br 0x3772 // 3772 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 379e: 9343 ld.w r2, (r3, 0xc) + 37a0: 3108 movi r1, 8 + 37a2: 6884 and r2, r1 + 37a4: 3a40 cmpnei r2, 0 + 37a6: 0c03 bf 0x37ac // 37ac + UART2->ISR=UART_TX_IOV_S; + 37a8: b323 st.w r1, (r3, 0xc) + 37aa: 07e4 br 0x3772 // 3772 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 37ac: 9343 ld.w r2, (r3, 0xc) + 37ae: 3104 movi r1, 4 + 37b0: 6884 and r2, r1 + 37b2: 3a40 cmpnei r2, 0 + 37b4: 0bfa bt 0x37a8 // 37a8 + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 37b6: 3180 movi r1, 128 + 37b8: 9303 ld.w r0, (r3, 0xc) + 37ba: 412c lsli r1, r1, 12 + 37bc: 6804 and r0, r1 + 37be: 3840 cmpnei r0, 0 + 37c0: 0fd9 bf 0x3772 // 3772 + UART2->ISR=UART_TX_DONE_S; + 37c2: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 37c4: 1065 lrw r3, 0x2000012c // 37d8 + 37c6: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 37c8: 1065 lrw r3, 0x20000130 // 37dc + 37ca: 9360 ld.w r3, (r3, 0x0) + 37cc: 3b41 cmpnei r3, 1 + 37ce: 0bd2 bt 0x3772 // 3772 + RS485_Comm_End ++; + 37d0: 1045 lrw r2, 0x20000138 // 37e4 + 37d2: 07e2 br 0x3796 // 3796 + 37d4: 20000038 .long 0x20000038 + 37d8: 2000012c .long 0x2000012c + 37dc: 20000130 .long 0x20000130 + 37e0: 20000134 .long 0x20000134 + 37e4: 20000138 .long 0x20000138 + +Disassembly of section .text.SPI0IntHandler: + +000037e8 : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 37e8: 1460 nie + 37ea: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 37ec: 1178 lrw r3, 0x20000034 // 38cc + 37ee: 3101 movi r1, 1 + 37f0: 9360 ld.w r3, (r3, 0x0) + 37f2: 9347 ld.w r2, (r3, 0x1c) + 37f4: 6884 and r2, r1 + 37f6: 3a40 cmpnei r2, 0 + 37f8: 0c03 bf 0x37fe // 37fe + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 37fa: b328 st.w r1, (r3, 0x20) + } + +} + 37fc: 0407 br 0x380a // 380a + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 37fe: 9347 ld.w r2, (r3, 0x1c) + 3800: 3002 movi r0, 2 + 3802: 6880 and r2, r0 + 3804: 3a40 cmpnei r2, 0 + 3806: 0c04 bf 0x380e // 380e + SPI0->ICR = SPI_RTIM; + 3808: b308 st.w r0, (r3, 0x20) +} + 380a: 1463 ipop + 380c: 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 + 380e: 9347 ld.w r2, (r3, 0x1c) + 3810: 3004 movi r0, 4 + 3812: 6880 and r2, r0 + 3814: 3a40 cmpnei r2, 0 + 3816: 0c55 bf 0x38c0 // 38c0 + SPI0->ICR = SPI_RXIM; + 3818: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 381a: 9302 ld.w r0, (r3, 0x8) + 381c: 32aa movi r2, 170 + 381e: 6482 cmpne r0, r2 + 3820: 083e bt 0x389c // 389c + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3822: 3102 movi r1, 2 + 3824: 9343 ld.w r2, (r3, 0xc) + 3826: 6884 and r2, r1 + 3828: 3a40 cmpnei r2, 0 + 382a: 0ffd bf 0x3824 // 3824 + SPI0->DR = 0x11; + 382c: 3211 movi r2, 17 + 382e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3830: 3110 movi r1, 16 + 3832: 9343 ld.w r2, (r3, 0xc) + 3834: 6884 and r2, r1 + 3836: 3a40 cmpnei r2, 0 + 3838: 0bfd bt 0x3832 // 3832 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 383a: 3102 movi r1, 2 + 383c: 9343 ld.w r2, (r3, 0xc) + 383e: 6884 and r2, r1 + 3840: 3a40 cmpnei r2, 0 + 3842: 0ffd bf 0x383c // 383c + SPI0->DR = 0x12; + 3844: 3212 movi r2, 18 + 3846: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3848: 3110 movi r1, 16 + 384a: 9343 ld.w r2, (r3, 0xc) + 384c: 6884 and r2, r1 + 384e: 3a40 cmpnei r2, 0 + 3850: 0bfd bt 0x384a // 384a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3852: 3102 movi r1, 2 + 3854: 9343 ld.w r2, (r3, 0xc) + 3856: 6884 and r2, r1 + 3858: 3a40 cmpnei r2, 0 + 385a: 0ffd bf 0x3854 // 3854 + SPI0->DR = 0x13; + 385c: 3213 movi r2, 19 + 385e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3860: 3110 movi r1, 16 + 3862: 9343 ld.w r2, (r3, 0xc) + 3864: 6884 and r2, r1 + 3866: 3a40 cmpnei r2, 0 + 3868: 0bfd bt 0x3862 // 3862 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 386a: 3102 movi r1, 2 + 386c: 9343 ld.w r2, (r3, 0xc) + 386e: 6884 and r2, r1 + 3870: 3a40 cmpnei r2, 0 + 3872: 0ffd bf 0x386c // 386c + SPI0->DR = 0x14; + 3874: 3214 movi r2, 20 + 3876: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3878: 3110 movi r1, 16 + 387a: 9343 ld.w r2, (r3, 0xc) + 387c: 6884 and r2, r1 + 387e: 3a40 cmpnei r2, 0 + 3880: 0bfd bt 0x387a // 387a + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 3882: 3102 movi r1, 2 + 3884: 9343 ld.w r2, (r3, 0xc) + 3886: 6884 and r2, r1 + 3888: 3a40 cmpnei r2, 0 + 388a: 0ffd bf 0x3884 // 3884 + SPI0->DR = 0x15; + 388c: 3215 movi r2, 21 + 388e: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 3890: 3110 movi r1, 16 + 3892: 9343 ld.w r2, (r3, 0xc) + 3894: 6884 and r2, r1 + 3896: 3a40 cmpnei r2, 0 + 3898: 0bfd bt 0x3892 // 3892 + 389a: 07b8 br 0x380a // 380a + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 389c: 9343 ld.w r2, (r3, 0xc) + 389e: 6884 and r2, r1 + 38a0: 3a40 cmpnei r2, 0 + 38a2: 0bb4 bt 0x380a // 380a + SPI0->DR=0x0; //FIFO=0 + 38a4: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 38a6: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 38a8: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38aa: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38ac: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38ae: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38b0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38b2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 38b4: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 38b6: 9343 ld.w r2, (r3, 0xc) + 38b8: 6884 and r2, r1 + 38ba: 3a40 cmpnei r2, 0 + 38bc: 0bfd bt 0x38b6 // 38b6 + 38be: 07a6 br 0x380a // 380a + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 38c0: 9347 ld.w r2, (r3, 0x1c) + 38c2: 3108 movi r1, 8 + 38c4: 6884 and r2, r1 + 38c6: 3a40 cmpnei r2, 0 + 38c8: 0b99 bt 0x37fa // 37fa + 38ca: 07a0 br 0x380a // 380a + 38cc: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +000038d0 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 38d0: 1460 nie + 38d2: 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) + 38d4: 1073 lrw r3, 0x2000002c // 3920 + 38d6: 3104 movi r1, 4 + 38d8: 9360 ld.w r3, (r3, 0x0) + 38da: 9349 ld.w r2, (r3, 0x24) + 38dc: 6884 and r2, r1 + 38de: 3a40 cmpnei r2, 0 + 38e0: 0c02 bf 0x38e4 // 38e4 + { + SIO0->ICR=0X04; + 38e2: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 38e4: 9349 ld.w r2, (r3, 0x24) + 38e6: 3101 movi r1, 1 + 38e8: 6884 and r2, r1 + 38ea: 3a40 cmpnei r2, 0 + 38ec: 0c02 bf 0x38f0 // 38f0 + { + SIO0->ICR=0X01; + 38ee: 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 + 38f0: 9349 ld.w r2, (r3, 0x24) + 38f2: 3102 movi r1, 2 + 38f4: 6884 and r2, r1 + 38f6: 3a40 cmpnei r2, 0 + 38f8: 0c03 bf 0x38fe // 38fe + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 38fa: b32b st.w r1, (r3, 0x2c) + } +} + 38fc: 0410 br 0x391c // 391c + else if(SIO0->MISR&0X08) //RXBUFFULL + 38fe: 9349 ld.w r2, (r3, 0x24) + 3900: 3108 movi r1, 8 + 3902: 6884 and r2, r1 + 3904: 3a40 cmpnei r2, 0 + 3906: 0bfa bt 0x38fa // 38fa + else if(SIO0->MISR&0X010) //BREAK + 3908: 9349 ld.w r2, (r3, 0x24) + 390a: 3110 movi r1, 16 + 390c: 6884 and r2, r1 + 390e: 3a40 cmpnei r2, 0 + 3910: 0bf5 bt 0x38fa // 38fa + else if(SIO0->MISR&0X020) //TIMEOUT + 3912: 9349 ld.w r2, (r3, 0x24) + 3914: 3120 movi r1, 32 + 3916: 6884 and r2, r1 + 3918: 3a40 cmpnei r2, 0 + 391a: 0bf0 bt 0x38fa // 38fa +} + 391c: 1463 ipop + 391e: 1461 nir + 3920: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00003924 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 3924: 1460 nie + 3926: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 3928: 106a lrw r3, 0x2000005c // 3950 + 392a: 3101 movi r1, 1 + 392c: 9360 ld.w r3, (r3, 0x0) + 392e: 237f addi r3, 128 + 3930: 934c ld.w r2, (r3, 0x30) + 3932: 6884 and r2, r1 + 3934: 3a40 cmpnei r2, 0 + 3936: 0c04 bf 0x393e // 393e + { + SYSCON->EXICR = EXI_PIN0; + 3938: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 393a: 1463 ipop + 393c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 393e: 3280 movi r2, 128 + 3940: 932c ld.w r1, (r3, 0x30) + 3942: 4249 lsli r2, r2, 9 + 3944: 6848 and r1, r2 + 3946: 3940 cmpnei r1, 0 + 3948: 0ff9 bf 0x393a // 393a + SYSCON->EXICR = EXI_PIN16; + 394a: b34b st.w r2, (r3, 0x2c) +} + 394c: 07f7 br 0x393a // 393a + 394e: 0000 bkpt + 3950: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00003954 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 3954: 1460 nie + 3956: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 3958: 106a lrw r3, 0x2000005c // 3980 + 395a: 3102 movi r1, 2 + 395c: 9360 ld.w r3, (r3, 0x0) + 395e: 237f addi r3, 128 + 3960: 934c ld.w r2, (r3, 0x30) + 3962: 6884 and r2, r1 + 3964: 3a40 cmpnei r2, 0 + 3966: 0c04 bf 0x396e // 396e + { + SYSCON->EXICR = EXI_PIN1; + 3968: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 396a: 1463 ipop + 396c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 396e: 3280 movi r2, 128 + 3970: 932c ld.w r1, (r3, 0x30) + 3972: 424a lsli r2, r2, 10 + 3974: 6848 and r1, r2 + 3976: 3940 cmpnei r1, 0 + 3978: 0ff9 bf 0x396a // 396a + SYSCON->EXICR = EXI_PIN17; + 397a: b34b st.w r2, (r3, 0x2c) +} + 397c: 07f7 br 0x396a // 396a + 397e: 0000 bkpt + 3980: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00003984 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 3984: 1460 nie + 3986: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 3988: 1070 lrw r3, 0x2000005c // 39c8 + 398a: 3104 movi r1, 4 + 398c: 9360 ld.w r3, (r3, 0x0) + 398e: 237f addi r3, 128 + 3990: 934c ld.w r2, (r3, 0x30) + 3992: 6884 and r2, r1 + 3994: 3a40 cmpnei r2, 0 + 3996: 0c04 bf 0x399e // 399e + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 3998: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 399a: 1463 ipop + 399c: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 399e: 934c ld.w r2, (r3, 0x30) + 39a0: 3108 movi r1, 8 + 39a2: 6884 and r2, r1 + 39a4: 3a40 cmpnei r2, 0 + 39a6: 0bf9 bt 0x3998 // 3998 + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 39a8: 3280 movi r2, 128 + 39aa: 932c ld.w r1, (r3, 0x30) + 39ac: 424b lsli r2, r2, 11 + 39ae: 6848 and r1, r2 + 39b0: 3940 cmpnei r1, 0 + 39b2: 0c03 bf 0x39b8 // 39b8 + SYSCON->EXICR = EXI_PIN19; + 39b4: b34b st.w r2, (r3, 0x2c) +} + 39b6: 07f2 br 0x399a // 399a + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 39b8: 3280 movi r2, 128 + 39ba: 932c ld.w r1, (r3, 0x30) + 39bc: 424c lsli r2, r2, 12 + 39be: 6848 and r1, r2 + 39c0: 3940 cmpnei r1, 0 + 39c2: 0bf9 bt 0x39b4 // 39b4 + 39c4: 07eb br 0x399a // 399a + 39c6: 0000 bkpt + 39c8: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +000039cc : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 39cc: 1460 nie + 39ce: 1462 ipush + 39d0: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 39d2: 1079 lrw r3, 0x2000005c // 3a34 + 39d4: 3280 movi r2, 128 + 39d6: 9360 ld.w r3, (r3, 0x0) + 39d8: 60c8 addu r3, r2 + 39da: 932c ld.w r1, (r3, 0x30) + 39dc: 3010 movi r0, 16 + 39de: 6840 and r1, r0 + 39e0: 3940 cmpnei r1, 0 + 39e2: 0c03 bf 0x39e8 // 39e8 + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 39e4: b30b st.w r0, (r3, 0x2c) + 39e6: 0409 br 0x39f8 // 39f8 + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 39e8: 932c ld.w r1, (r3, 0x30) + 39ea: 3020 movi r0, 32 + 39ec: 6840 and r1, r0 + 39ee: 3940 cmpnei r1, 0 + 39f0: 0c09 bf 0x3a02 // 3a02 + SYSCON->EXICR = EXI_PIN5; + 39f2: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 39f4: e000035c bsr 0x40ac // 40ac + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 39f8: d9ee2000 ld.w r15, (r14, 0x0) + 39fc: 1401 addi r14, r14, 4 + 39fe: 1463 ipop + 3a00: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 3a02: 932c ld.w r1, (r3, 0x30) + 3a04: 3040 movi r0, 64 + 3a06: 6840 and r1, r0 + 3a08: 3940 cmpnei r1, 0 + 3a0a: 0bed bt 0x39e4 // 39e4 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 3a0c: 932c ld.w r1, (r3, 0x30) + 3a0e: 6848 and r1, r2 + 3a10: 3940 cmpnei r1, 0 + 3a12: 0c03 bf 0x3a18 // 3a18 + SYSCON->EXICR = EXI_PIN9; + 3a14: b34b st.w r2, (r3, 0x2c) +} + 3a16: 07f1 br 0x39f8 // 39f8 + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 3a18: 3280 movi r2, 128 + 3a1a: 932c ld.w r1, (r3, 0x30) + 3a1c: 4241 lsli r2, r2, 1 + 3a1e: 6848 and r1, r2 + 3a20: 3940 cmpnei r1, 0 + 3a22: 0bf9 bt 0x3a14 // 3a14 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 3a24: 3280 movi r2, 128 + 3a26: 932c ld.w r1, (r3, 0x30) + 3a28: 4242 lsli r2, r2, 2 + 3a2a: 6848 and r1, r2 + 3a2c: 3940 cmpnei r1, 0 + 3a2e: 0bf3 bt 0x3a14 // 3a14 + 3a30: 07e4 br 0x39f8 // 39f8 + 3a32: 0000 bkpt + 3a34: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00003a38 : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 3a38: 1460 nie + 3a3a: 1462 ipush + 3a3c: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 3a3e: 107d lrw r3, 0x2000005c // 3ab0 + 3a40: 3280 movi r2, 128 + 3a42: 9360 ld.w r3, (r3, 0x0) + 3a44: 237f addi r3, 128 + 3a46: 932c ld.w r1, (r3, 0x30) + 3a48: 4243 lsli r2, r2, 3 + 3a4a: 6848 and r1, r2 + 3a4c: 3940 cmpnei r1, 0 + 3a4e: 0c03 bf 0x3a54 // 3a54 + + RLY_Zero_Control(); //继电器控制 + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 3a50: b34b st.w r2, (r3, 0x2c) + } +} + 3a52: 0422 br 0x3a96 // 3a96 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 3a54: 3280 movi r2, 128 + 3a56: 932c ld.w r1, (r3, 0x30) + 3a58: 4244 lsli r2, r2, 4 + 3a5a: 6848 and r1, r2 + 3a5c: 3940 cmpnei r1, 0 + 3a5e: 0bf9 bt 0x3a50 // 3a50 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 3a60: 3280 movi r2, 128 + 3a62: 932c ld.w r1, (r3, 0x30) + 3a64: 4245 lsli r2, r2, 5 + 3a66: 6848 and r1, r2 + 3a68: 3940 cmpnei r1, 0 + 3a6a: 0bf3 bt 0x3a50 // 3a50 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 3a6c: 3280 movi r2, 128 + 3a6e: 932c ld.w r1, (r3, 0x30) + 3a70: 4246 lsli r2, r2, 6 + 3a72: 6848 and r1, r2 + 3a74: 3940 cmpnei r1, 0 + 3a76: 0bed bt 0x3a50 // 3a50 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 3a78: 3280 movi r2, 128 + 3a7a: 932c ld.w r1, (r3, 0x30) + 3a7c: 4247 lsli r2, r2, 7 + 3a7e: 6848 and r1, r2 + 3a80: 3940 cmpnei r1, 0 + 3a82: 0c0f bf 0x3aa0 // 3aa0 + SYSCON->EXICR = EXI_PIN14; + 3a84: b34b st.w r2, (r3, 0x2c) + if(c_rly.rly_zCnt < 8){ + 3a86: 104c lrw r2, 0x20000878 // 3ab4 + 3a88: 8261 ld.b r3, (r2, 0x1) + 3a8a: 3b07 cmphsi r3, 8 + 3a8c: 0803 bt 0x3a92 // 3a92 + c_rly.rly_zCnt++; + 3a8e: 2300 addi r3, 1 + 3a90: a261 st.b r3, (r2, 0x1) + RLY_Zero_Control(); //继电器控制 + 3a92: e00021a5 bsr 0x7ddc // 7ddc +} + 3a96: d9ee2000 ld.w r15, (r14, 0x0) + 3a9a: 1401 addi r14, r14, 4 + 3a9c: 1463 ipop + 3a9e: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 3aa0: 3280 movi r2, 128 + 3aa2: 932c ld.w r1, (r3, 0x30) + 3aa4: 4248 lsli r2, r2, 8 + 3aa6: 6848 and r1, r2 + 3aa8: 3940 cmpnei r1, 0 + 3aaa: 0bd3 bt 0x3a50 // 3a50 + 3aac: 07f5 br 0x3a96 // 3a96 + 3aae: 0000 bkpt + 3ab0: 2000005c .long 0x2000005c + 3ab4: 20000878 .long 0x20000878 + +Disassembly of section .text.LPTIntHandler: + +00003ab8 : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 3ab8: 1460 nie + 3aba: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 3abc: 106b lrw r3, 0x20000014 // 3ae8 + 3abe: 3101 movi r1, 1 + 3ac0: 9360 ld.w r3, (r3, 0x0) + 3ac2: 934e ld.w r2, (r3, 0x38) + 3ac4: 6884 and r2, r1 + 3ac6: 3a40 cmpnei r2, 0 + 3ac8: 0c03 bf 0x3ace // 3ace + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 3aca: b330 st.w r1, (r3, 0x40) + } +} + 3acc: 040b br 0x3ae2 // 3ae2 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 3ace: 934e ld.w r2, (r3, 0x38) + 3ad0: 3102 movi r1, 2 + 3ad2: 6884 and r2, r1 + 3ad4: 3a40 cmpnei r2, 0 + 3ad6: 0bfa bt 0x3aca // 3aca + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 3ad8: 934e ld.w r2, (r3, 0x38) + 3ada: 3104 movi r1, 4 + 3adc: 6884 and r2, r1 + 3ade: 3a40 cmpnei r2, 0 + 3ae0: 0bf5 bt 0x3aca // 3aca +} + 3ae2: 1463 ipop + 3ae4: 1461 nir + 3ae6: 0000 bkpt + 3ae8: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00003aec : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 3aec: 1460 nie + 3aee: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 3af0: 1071 lrw r3, 0x2000000c // 3b34 + 3af2: 3101 movi r1, 1 + 3af4: 9360 ld.w r3, (r3, 0x0) + 3af6: 934c ld.w r2, (r3, 0x30) + 3af8: 6884 and r2, r1 + 3afa: 3a40 cmpnei r2, 0 + 3afc: 0c0a bf 0x3b10 // 3b10 + { + BT0->ICR = BT_PEND; + 3afe: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 3b00: 9341 ld.w r2, (r3, 0x4) + 3b02: 3a86 bclri r2, 6 + 3b04: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 3b06: 9340 ld.w r2, (r3, 0x0) + 3b08: 3200 movi r2, 0 + 3b0a: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 3b0c: 1463 ipop + 3b0e: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 3b10: 934c ld.w r2, (r3, 0x30) + 3b12: 3102 movi r1, 2 + 3b14: 6884 and r2, r1 + 3b16: 3a40 cmpnei r2, 0 + 3b18: 0c03 bf 0x3b1e // 3b1e + BT0->ICR = BT_EVTRG; + 3b1a: b32d st.w r1, (r3, 0x34) +} + 3b1c: 07f8 br 0x3b0c // 3b0c + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 3b1e: 934c ld.w r2, (r3, 0x30) + 3b20: 3104 movi r1, 4 + 3b22: 6884 and r2, r1 + 3b24: 3a40 cmpnei r2, 0 + 3b26: 0bfa bt 0x3b1a // 3b1a + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 3b28: 934c ld.w r2, (r3, 0x30) + 3b2a: 3108 movi r1, 8 + 3b2c: 6884 and r2, r1 + 3b2e: 3a40 cmpnei r2, 0 + 3b30: 0bf5 bt 0x3b1a // 3b1a + 3b32: 07ed br 0x3b0c // 3b0c + 3b34: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00003b38 : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 3b38: 1460 nie + 3b3a: 1462 ipush + 3b3c: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 3b3e: 1079 lrw r3, 0x20000008 // 3ba0 + 3b40: 3101 movi r1, 1 + 3b42: 9360 ld.w r3, (r3, 0x0) + 3b44: 934c ld.w r2, (r3, 0x30) + 3b46: 6884 and r2, r1 + 3b48: 3a40 cmpnei r2, 0 + 3b4a: 0c03 bf 0x3b50 // 3b50 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 3b4c: b32d st.w r1, (r3, 0x34) + } +} + 3b4e: 0418 br 0x3b7e // 3b7e + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 3b50: 934c ld.w r2, (r3, 0x30) + 3b52: 3102 movi r1, 2 + 3b54: 6884 and r2, r1 + 3b56: 3a40 cmpnei r2, 0 + 3b58: 0c18 bf 0x3b88 // 3b88 + BT1->ICR = BT_CMP; + 3b5a: b32d st.w r1, (r3, 0x34) + NUM++; + 3b5c: 1072 lrw r3, 0x200000b8 // 3ba4 + 3b5e: 8340 ld.b r2, (r3, 0x0) + 3b60: 2200 addi r2, 1 + 3b62: 7488 zextb r2, r2 + SysTick_100us++; + 3b64: 9321 ld.w r1, (r3, 0x4) + 3b66: 2100 addi r1, 1 + if(NUM >= 10){ + 3b68: 3a09 cmphsi r2, 10 + NUM++; + 3b6a: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 3b6c: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 3b6e: 0c08 bf 0x3b7e // 3b7e + NUM = 0; + 3b70: 3200 movi r2, 0 + 3b72: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 3b74: 9342 ld.w r2, (r3, 0x8) + 3b76: 2200 addi r2, 1 + 3b78: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 3b7a: e0000279 bsr 0x406c // 406c +} + 3b7e: d9ee2000 ld.w r15, (r14, 0x0) + 3b82: 1401 addi r14, r14, 4 + 3b84: 1463 ipop + 3b86: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 3b88: 934c ld.w r2, (r3, 0x30) + 3b8a: 3104 movi r1, 4 + 3b8c: 6884 and r2, r1 + 3b8e: 3a40 cmpnei r2, 0 + 3b90: 0bde bt 0x3b4c // 3b4c + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 3b92: 934c ld.w r2, (r3, 0x30) + 3b94: 3108 movi r1, 8 + 3b96: 6884 and r2, r1 + 3b98: 3a40 cmpnei r2, 0 + 3b9a: 0bd9 bt 0x3b4c // 3b4c + 3b9c: 07f1 br 0x3b7e // 3b7e + 3b9e: 0000 bkpt + 3ba0: 20000008 .long 0x20000008 + 3ba4: 200000b8 .long 0x200000b8 + +Disassembly of section .text.PriviledgeVioHandler: + +00003ba8 : + 3ba8: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00003baa : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 3baa: 1460 nie + 3bac: 1462 ipush + // ISR content ... + +} + 3bae: 1463 ipop + 3bb0: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00003bb2 : + 3bb2: 1460 nie + 3bb4: 1462 ipush + 3bb6: 1463 ipop + 3bb8: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00003bba : + 3bba: 1460 nie + 3bbc: 1462 ipush + 3bbe: 1463 ipop + 3bc0: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00003bc2 : + 3bc2: 1460 nie + 3bc4: 1462 ipush + 3bc6: 1463 ipop + 3bc8: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00003bca : + 3bca: 1460 nie + 3bcc: 1462 ipush + 3bce: 1463 ipop + 3bd0: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003bd2 : + 3bd2: 1460 nie + 3bd4: 1462 ipush + 3bd6: 1463 ipop + 3bd8: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00003bda : + 3bda: 1460 nie + 3bdc: 1462 ipush + 3bde: 1463 ipop + 3be0: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003be2 : + 3be2: 1460 nie + 3be4: 1462 ipush + 3be6: 1463 ipop + 3be8: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +00003bea : + 3bea: 1460 nie + 3bec: 1462 ipush + 3bee: 1463 ipop + 3bf0: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003bf2 : + 3bf2: 1460 nie + 3bf4: 1462 ipush + 3bf6: 1463 ipop + 3bf8: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +00003bfa : + 3bfa: 1460 nie + 3bfc: 1462 ipush + 3bfe: 1463 ipop + 3c00: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003c02 : + 3c02: 1460 nie + 3c04: 1462 ipush + 3c06: 1463 ipop + 3c08: 1461 nir + +Disassembly of section .text.__divsi3: + +00003c0c <__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) +{ + 3c0c: 14c1 push r4 + int PSR; + __asm volatile( + 3c0e: c0006023 mfcr r3, cr<0, 0> + 3c12: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3c16: 1046 lrw r2, 0x20000000 // 3c2c <__divsi3+0x20> + 3c18: 3400 movi r4, 0 + 3c1a: 9240 ld.w r2, (r2, 0x0) + 3c1c: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c1e: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c20: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c22: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c24: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3c28: 9202 ld.w r0, (r2, 0x8) +} + 3c2a: 1481 pop r4 + 3c2c: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003c30 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3c30: 14c1 push r4 + int PSR; + __asm volatile( + 3c32: c0006023 mfcr r3, cr<0, 0> + 3c36: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3c3a: 1046 lrw r2, 0x20000000 // 3c50 <__udivsi3+0x20> + 3c3c: 3401 movi r4, 1 + 3c3e: 9240 ld.w r2, (r2, 0x0) + 3c40: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c42: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c44: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c46: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c48: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3c4c: 9202 ld.w r0, (r2, 0x8) +} + 3c4e: 1481 pop r4 + 3c50: 20000000 .long 0x20000000 + +Disassembly of section .text.__modsi3: + +00003c54 <__modsi3>: + +int __modsi3 ( int a, int b) +{ + 3c54: 14c1 push r4 + int PSR; + __asm volatile( + 3c56: c0006023 mfcr r3, cr<0, 0> + 3c5a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 3c5e: 1046 lrw r2, 0x20000000 // 3c74 <__modsi3+0x20> + 3c60: 3400 movi r4, 0 + 3c62: 9240 ld.w r2, (r2, 0x0) + 3c64: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c66: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c68: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c6a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c6c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3c70: 9203 ld.w r0, (r2, 0xc) +} + 3c72: 1481 pop r4 + 3c74: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003c78 <__umodsi3>: + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3c78: 14c1 push r4 + int PSR; + __asm volatile( + 3c7a: c0006023 mfcr r3, cr<0, 0> + 3c7e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3c82: 1046 lrw r2, 0x20000000 // 3c98 <__umodsi3+0x20> + 3c84: 3401 movi r4, 1 + 3c86: 9240 ld.w r2, (r2, 0x0) + 3c88: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3c8a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3c8c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3c8e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3c90: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3c94: 9203 ld.w r0, (r2, 0xc) +} + 3c96: 1481 pop r4 + 3c98: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +00003c9c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 3c9c: c1807420 psrset ee, ie +} + 3ca0: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +00003ca2 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 3ca2: c0807020 psrclr ie +} + 3ca6: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +00003ca8 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3ca8: 14d2 push r4-r5, r15 + switch(uart_id){ + 3caa: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 3cac: 6d07 mov r4, r1 + switch(uart_id){ + 3cae: 0c1e bf 0x3cea // 3cea + 3cb0: 3840 cmpnei r0, 0 + 3cb2: 0c04 bf 0x3cba // 3cba + 3cb4: 3842 cmpnei r0, 2 + 3cb6: 0c37 bf 0x3d24 // 3d24 + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + + break; + } +} + 3cb8: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 3cba: e3fff4f5 bsr 0x26a4 // 26a4 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 3cbe: 3100 movi r1, 0 + 3cc0: 3000 movi r0, 0 + 3cc2: e3fff531 bsr 0x2724 // 2724 + UARTInitRxTxIntEn(UART0,5000,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 3cc6: 116f lrw r3, 0x20000040 // 3d80 + 3cc8: 3200 movi r2, 0 + 3cca: 9300 ld.w r0, (r3, 0x0) + 3ccc: 112e lrw r1, 0x1388 // 3d84 + 3cce: e3fff5a9 bsr 0x2820 // 2820 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 3cd2: 11ae lrw r5, 0x200002f0 // 3d88 + UART0_Int_Enable(); + 3cd4: e3fff50c bsr 0x26ec // 26ec + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 3cd8: 3274 movi r2, 116 + 3cda: 3100 movi r1, 0 + 3cdc: 6c17 mov r0, r5 + 3cde: e3ffefb1 bsr 0x1c40 // 1c40 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_9600_TimeOut; + 3ce2: 3303 movi r3, 3 + 3ce4: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 3ce6: b59c st.w r4, (r5, 0x70) + break; + 3ce8: 07e8 br 0x3cb8 // 3cb8 + UART1_DeInit(); //clear all UART Register + 3cea: e3fff4e9 bsr 0x26bc // 26bc + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 3cee: 3102 movi r1, 2 + 3cf0: 3001 movi r0, 1 + 3cf2: e3fff519 bsr 0x2724 // 2724 + UARTInit(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 + 3cf6: 11a6 lrw r5, 0x2000003c // 3d8c + 3cf8: 31d0 movi r1, 208 + 3cfa: 3200 movi r2, 0 + 3cfc: 4121 lsli r1, r1, 1 + 3cfe: 9500 ld.w r0, (r5, 0x0) + 3d00: e3fff588 bsr 0x2810 // 2810 + UARTInitRxTxIntEn(UART1,416,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3d04: 31d0 movi r1, 208 + 3d06: 9500 ld.w r0, (r5, 0x0) + 3d08: 3200 movi r2, 0 + 3d0a: 4121 lsli r1, r1, 1 + 3d0c: e3fff58a bsr 0x2820 // 2820 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3d10: 3274 movi r2, 116 + 3d12: 3100 movi r1, 0 + 3d14: 101f lrw r0, 0x20000364 // 3d90 + 3d16: e3ffef95 bsr 0x1c40 // 1c40 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_115200_TimeOut; + 3d1a: 107f lrw r3, 0x20000370 // 3d94 + 3d1c: 3203 movi r2, 3 + 3d1e: b357 st.w r2, (r3, 0x5c) + g_uart[UART_1].processing_cf = prt_cf; + 3d20: b399 st.w r4, (r3, 0x64) + break; + 3d22: 07cb br 0x3cb8 // 3cb8 + UART2_DeInit(); //clear all UART Register + 3d24: e3fff4d8 bsr 0x26d4 // 26d4 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 3d28: 3102 movi r1, 2 + 3d2a: 3002 movi r0, 2 + 3d2c: e3fff4fc bsr 0x2724 // 2724 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3d30: 107a lrw r3, 0x20000038 // 3d98 + 3d32: 3200 movi r2, 0 + 3d34: 9300 ld.w r0, (r3, 0x0) + 3d36: 1034 lrw r1, 0x1388 // 3d84 + 3d38: e3fff574 bsr 0x2820 // 2820 + UART2_Int_Enable(); + 3d3c: e3fff4e6 bsr 0x2708 // 2708 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3d40: 3274 movi r2, 116 + 3d42: 3100 movi r1, 0 + 3d44: 1016 lrw r0, 0x200003d8 // 3d9c + 3d46: e3ffef7d bsr 0x1c40 // 1c40 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 3d4a: 3288 movi r2, 136 + 3d4c: 3100 movi r1, 0 + 3d4e: 1015 lrw r0, 0x2000044c // 3da0 + 3d50: e3ffef78 bsr 0x1c40 // 1c40 <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3d54: 1074 lrw r3, 0x200004ac // 3da4 + 3d56: 3201 movi r2, 1 + 3d58: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3d5a: 1074 lrw r3, 0x200003f0 // 3da8 + g_uart[UART_2].processing_cf = prt_cf; + 3d5c: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3d5e: 3203 movi r2, 3 + GPIO_Init(GPIOB0,3,Output); + 3d60: 1093 lrw r4, 0x20000048 // 3dac + 3d62: 3103 movi r1, 3 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3d64: b354 st.w r2, (r3, 0x50) + GPIO_Init(GPIOB0,3,Output); + 3d66: 9400 ld.w r0, (r4, 0x0) + 3d68: 3200 movi r2, 0 + 3d6a: e3fff1f5 bsr 0x2154 // 2154 + GPIO_DriveStrength_EN(GPIOB0,3); + 3d6e: 9400 ld.w r0, (r4, 0x0) + 3d70: 3103 movi r1, 3 + 3d72: e3fff26b bsr 0x2248 // 2248 + GPIO_Write_Low(GPIOB0,3); + 3d76: 9400 ld.w r0, (r4, 0x0) + 3d78: 3103 movi r1, 3 + 3d7a: e3fff3ad bsr 0x24d4 // 24d4 +} + 3d7e: 079d br 0x3cb8 // 3cb8 + 3d80: 20000040 .long 0x20000040 + 3d84: 00001388 .long 0x00001388 + 3d88: 200002f0 .long 0x200002f0 + 3d8c: 2000003c .long 0x2000003c + 3d90: 20000364 .long 0x20000364 + 3d94: 20000370 .long 0x20000370 + 3d98: 20000038 .long 0x20000038 + 3d9c: 200003d8 .long 0x200003d8 + 3da0: 2000044c .long 0x2000044c + 3da4: 200004ac .long 0x200004ac + 3da8: 200003f0 .long 0x200003f0 + 3dac: 20000048 .long 0x20000048 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003db0 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3db0: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 3db2: 104e lrw r2, 0x2000043e // 3de8 + 3db4: 8a20 ld.h r1, (r2, 0x0) + 3db6: 3362 movi r3, 98 + 3db8: 644d cmplt r3, r1 + 3dba: 0c03 bf 0x3dc0 // 3dc0 + 3dbc: 3300 movi r3, 0 + 3dbe: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3dc0: 8a60 ld.h r3, (r2, 0x0) + 3dc2: 102b lrw r1, 0x200002f0 // 3dec + 3dc4: 5b82 addi r4, r3, 1 + 3dc6: 60c4 addu r3, r1 + 3dc8: 23e7 addi r3, 232 + 3dca: a300 st.b r0, (r3, 0x0) + 3dcc: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3dce: 1069 lrw r3, 0x200000c0 // 3df0 + 3dd0: 9340 ld.w r2, (r3, 0x0) + 3dd2: 3380 movi r3, 128 + 3dd4: 4361 lsli r3, r3, 1 + 3dd6: 60c4 addu r3, r1 + 3dd8: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 3dda: 33a6 movi r3, 166 + 3ddc: 4361 lsli r3, r3, 1 + 3dde: 604c addu r1, r3 + 3de0: 3301 movi r3, 1 + 3de2: a160 st.b r3, (r1, 0x0) +} + 3de4: 1481 pop r4 + 3de6: 0000 bkpt + 3de8: 2000043e .long 0x2000043e + 3dec: 200002f0 .long 0x200002f0 + 3df0: 200000c0 .long 0x200000c0 + +Disassembly of section .text.UART2_TASK: + +00003df4 : + + +void UART2_TASK(void){ + 3df4: 14d4 push r4-r7, r15 + 3df6: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3df8: 10dc lrw r6, 0x2000043c // 3e68 + 3dfa: 8660 ld.b r3, (r6, 0x0) + 3dfc: 3b41 cmpnei r3, 1 + 3dfe: 082d bt 0x3e58 // 3e58 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 3e00: 10bb lrw r5, 0x200003f0 // 3e6c + 3e02: 109c lrw r4, 0x200000c0 // 3e70 + 3e04: 9460 ld.w r3, (r4, 0x0) + 3e06: 9555 ld.w r2, (r5, 0x54) + 3e08: 60ca subu r3, r2 + 3e0a: 9554 ld.w r2, (r5, 0x50) + 3e0c: 64c8 cmphs r2, r3 + 3e0e: 0825 bt 0x3e58 // 3e58 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 3e10: e3fff140 bsr 0x2090 // 2090 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3e14: 9460 ld.w r3, (r4, 0x0) + 3e16: b575 st.w r3, (r5, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3e18: 8e61 ld.h r3, (r6, 0x2) + 3e1a: 6c8f mov r2, r3 + 3e1c: 1036 lrw r1, 0x200003d8 // 3e74 + 3e1e: 1017 lrw r0, 0x200000c4 // 3e78 + DealLen = g_uart[UART_2].RecvLen; + 3e20: 1097 lrw r4, 0x20000104 // 3e7c + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3e22: b860 st.w r3, (r14, 0x0) + 3e24: e3ffef52 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3e28: 9860 ld.w r3, (r14, 0x0) + 3e2a: ac72 st.h r3, (r4, 0x24) + g_uart[UART_2].RecvLen = 0; + 3e2c: 3300 movi r3, 0 + 3e2e: ae61 st.h r3, (r6, 0x2) + g_uart[UART_2].Receiving = 0; + 3e30: a660 st.b r3, (r6, 0x0) + SYSCON_Int_Enable(); + 3e32: e3fff129 bsr 0x2084 // 2084 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3e36: 9576 ld.w r3, (r5, 0x58) + 3e38: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3e3a: 5ee6 addi r7, r6, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 3e3c: 0810 bt 0x3e5c // 3e5c + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + } + + if(rev != 0x00){ + /*设置本机触摸参数 - 通讯协议*/ + TouchKey_Comm_Processing(DealBuffer,DealLen); + 3e3e: 8c32 ld.h r1, (r4, 0x24) + 3e40: 100e lrw r0, 0x200000c4 // 3e78 + 3e42: e00005c9 bsr 0x49d4 // 49d4 + } + + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(DealBuffer,DealLen); + 3e46: 8c32 ld.h r1, (r4, 0x24) + 3e48: 100c lrw r0, 0x200000c4 // 3e78 + 3e4a: e00015eb bsr 0x6a20 // 6a20 + } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3e4e: 3264 movi r2, 100 + 3e50: 3100 movi r1, 0 + 3e52: 100a lrw r0, 0x200000c4 // 3e78 + 3e54: e3ffeef6 bsr 0x1c40 // 1c40 <__memset_fast> + } + } +} + 3e58: 1401 addi r14, r14, 4 + 3e5a: 1494 pop r4-r7, r15 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 3e5c: 8c32 ld.h r1, (r4, 0x24) + 3e5e: 1007 lrw r0, 0x200000c4 // 3e78 + 3e60: 7bcd jsr r3 + if(rev != 0x00){ + 3e62: 3840 cmpnei r0, 0 + 3e64: 0ff5 bf 0x3e4e // 3e4e + 3e66: 07ec br 0x3e3e // 3e3e + 3e68: 2000043c .long 0x2000043c + 3e6c: 200003f0 .long 0x200003f0 + 3e70: 200000c0 .long 0x200000c0 + 3e74: 200003d8 .long 0x200003d8 + 3e78: 200000c4 .long 0x200000c4 + 3e7c: 20000104 .long 0x20000104 + +Disassembly of section .text.BUS485_Send: + +00003e80 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3e80: 14d4 push r4-r7, r15 + 3e82: 1423 subi r14, r14, 12 + 3e84: b802 st.w r0, (r14, 0x8) + 3e86: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3e88: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3e8a: 1189 lrw r4, 0x200000c4 // 3f2c + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 3e8c: 11c9 lrw r6, 0x20000048 // 3f30 + while(RS485_Comming == 0x01){ + 3e8e: 947a ld.w r3, (r4, 0x68) + 3e90: 3b41 cmpnei r3, 1 + 3e92: 0c3e bf 0x3f0e // 3f0e + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 3e94: 1168 lrw r3, 0x200004ac // 3f34 + 3e96: 83c4 ld.b r6, (r3, 0x4) + 3e98: 3e40 cmpnei r6, 0 + 3e9a: b861 st.w r3, (r14, 0x4) + 3e9c: 0845 bt 0x3f26 // 3f26 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 3e9e: 11e5 lrw r7, 0x20000048 // 3f30 + CK_CPU_DisAllNormalIrq(); + 3ea0: e3ffff01 bsr 0x3ca2 // 3ca2 + GPIO_Write_High(GPIOB0,3); + 3ea4: 3103 movi r1, 3 + 3ea6: 9700 ld.w r0, (r7, 0x0) + 3ea8: e3fff312 bsr 0x24cc // 24cc + + RS485_Comm_Flag = 0x01; + 3eac: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3eae: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3eb0: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3eb2: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 3eb4: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3eb6: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 3eb8: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 3eba: e3fffef1 bsr 0x3c9c // 3c9c + + UARTTransmit(UART2,buff,len); + 3ebe: 105f lrw r2, 0x20000038 // 3f38 + 3ec0: 9200 ld.w r0, (r2, 0x0) + 3ec2: 9822 ld.w r1, (r14, 0x8) + 3ec4: 9840 ld.w r2, (r14, 0x0) + 3ec6: e3fff4b5 bsr 0x2830 // 2830 + do{ + delay_nus(100); + 3eca: 3064 movi r0, 100 + 3ecc: e3fff8b8 bsr 0x303c // 303c + delay_cnt ++; + 3ed0: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3ed2: 3363 movi r3, 99 + 3ed4: 654c cmphs r3, r5 + 3ed6: 0c08 bf 0x3ee6 // 3ee6 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3ed8: 947c ld.w r3, (r4, 0x70) + 3eda: 9840 ld.w r2, (r14, 0x0) + 3edc: 648d cmplt r3, r2 + 3ede: 0bf6 bt 0x3eca // 3eca + 3ee0: 947d ld.w r3, (r4, 0x74) + 3ee2: 648d cmplt r3, r2 + 3ee4: 0bf3 bt 0x3eca // 3eca + + + CK_CPU_DisAllNormalIrq(); + 3ee6: e3fffede bsr 0x3ca2 // 3ca2 + + GPIO_Write_Low(GPIOB0,3); + 3eea: 9700 ld.w r0, (r7, 0x0) + 3eec: 3103 movi r1, 3 + 3eee: e3fff2f3 bsr 0x24d4 // 24d4 + RS485_Comm_Flag = 0x00; + 3ef2: 3300 movi r3, 0 + 3ef4: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 3ef6: 1072 lrw r3, 0x200000c0 // 3f3c + 3ef8: 9340 ld.w r2, (r3, 0x0) + 3efa: 1072 lrw r3, 0x2000044c // 3f40 + 3efc: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 3efe: 9861 ld.w r3, (r14, 0x4) + 3f00: 3200 movi r2, 0 + 3f02: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 3f04: e3fffecc bsr 0x3c9c // 3c9c + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 3f08: 6c1b mov r0, r6 + 3f0a: 1403 addi r14, r14, 12 + 3f0c: 1494 pop r4-r7, r15 + delay_nus(100); + 3f0e: 3064 movi r0, 100 + 3f10: e3fff896 bsr 0x303c // 303c + delay_cnt ++; + 3f14: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 3f16: 3364 movi r3, 100 + 3f18: 64d6 cmpne r5, r3 + 3f1a: 0fbd bf 0x3e94 // 3e94 + GPIO_Reverse(GPIOB0,3); + 3f1c: 3103 movi r1, 3 + 3f1e: 9600 ld.w r0, (r6, 0x0) + 3f20: e3fff2de bsr 0x24dc // 24dc + 3f24: 07b5 br 0x3e8e // 3e8e + return UART_BUSBUSY; //发送失败 + 3f26: 3601 movi r6, 1 + 3f28: 07f0 br 0x3f08 // 3f08 + 3f2a: 0000 bkpt + 3f2c: 200000c4 .long 0x200000c4 + 3f30: 20000048 .long 0x20000048 + 3f34: 200004ac .long 0x200004ac + 3f38: 20000038 .long 0x20000038 + 3f3c: 200000c0 .long 0x200000c0 + 3f40: 2000044c .long 0x2000044c + +Disassembly of section .text.MultSend_Task: + +00003f44 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3f44: 14d4 push r4-r7, r15 + 3f46: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3f48: 5963 subi r3, r1, 1 + 3f4a: 74cd zexth r3, r3 + 3f4c: 3463 movi r4, 99 + 3f4e: 64d0 cmphs r4, r3 +{ + 3f50: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3f52: 0c29 bf 0x3fa4 // 3fa4 + + if(DatSd == 0x01) + 3f54: 3a41 cmpnei r2, 1 + 3f56: 0c04 bf 0x3f5e // 3f5e + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3f58: 3001 movi r0, 1 +} + 3f5a: 1401 addi r14, r14, 4 + 3f5c: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 3f5e: 1075 lrw r3, 0x2000044c // 3fb0 + 3f60: 3760 movi r7, 96 + 3f62: 61cc addu r7, r3 + 3f64: 87c8 ld.b r6, (r7, 0x8) + 3f66: 874a ld.b r2, (r7, 0xa) + 3f68: 6498 cmphs r6, r2 + 3f6a: 081f bt 0x3fa8 // 3fa8 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 3f6c: 3480 movi r4, 128 + 3f6e: 10b2 lrw r5, 0x200000c0 // 3fb4 + 3f70: 610c addu r4, r3 + 3f72: 9401 ld.w r0, (r4, 0x4) + 3f74: 9540 ld.w r2, (r5, 0x0) + 3f76: 6082 subu r2, r0 + 3f78: 931e ld.w r0, (r3, 0x78) + 3f7a: 6408 cmphs r2, r0 + 3f7c: 0818 bt 0x3fac // 3fac + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 3f7e: 3e40 cmpnei r6, 0 + 3f80: 0c07 bf 0x3f8e // 3f8e + 3f82: 9540 ld.w r2, (r5, 0x0) + 3f84: 94c0 ld.w r6, (r4, 0x0) + 3f86: 609a subu r2, r6 + 3f88: 937d ld.w r3, (r3, 0x74) + 3f8a: 64c8 cmphs r2, r3 + 3f8c: 0fe6 bf 0x3f58 // 3f58 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 3f8e: 9800 ld.w r0, (r14, 0x0) + 3f90: e3ffff78 bsr 0x3e80 // 3e80 + 3f94: 3840 cmpnei r0, 0 + 3f96: 0be1 bt 0x3f58 // 3f58 + m_send.ASend_Tick = SysTick_1ms; + 3f98: 9560 ld.w r3, (r5, 0x0) + 3f9a: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 3f9c: 8768 ld.b r3, (r7, 0x8) + 3f9e: 2300 addi r3, 1 + 3fa0: a768 st.b r3, (r7, 0x8) + 3fa2: 07dc br 0x3f5a // 3f5a + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3fa4: 3004 movi r0, 4 + 3fa6: 07da br 0x3f5a // 3f5a + return RETRY_END;//没有重发次数 + 3fa8: 3003 movi r0, 3 + 3faa: 07d8 br 0x3f5a // 3f5a + return DATA_END;//数据有效期结束 + 3fac: 3002 movi r0, 2 + 3fae: 07d6 br 0x3f5a // 3f5a + 3fb0: 2000044c .long 0x2000044c + 3fb4: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Set_GroupSend: + +00003fb8 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3fb8: 14d4 push r4-r7, r15 + 3fba: 1422 subi r14, r14, 8 + 3fbc: 6d8b mov r6, r2 + 3fbe: 9847 ld.w r2, (r14, 0x1c) + 3fc0: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3fc2: 5943 subi r2, r1, 1 +{ + 3fc4: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3fc6: 7489 zexth r2, r2 + 3fc8: 3163 movi r1, 99 + 3fca: 6484 cmphs r1, r2 +{ + 3fcc: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3fce: 0c20 bf 0x400e // 400e + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3fd0: 1091 lrw r4, 0x2000044c // 4014 + 3fd2: 3264 movi r2, 100 + 3fd4: 3100 movi r1, 0 + 3fd6: 6c13 mov r0, r4 + 3fd8: b861 st.w r3, (r14, 0x4) + 3fda: e3ffee33 bsr 0x1c40 // 1c40 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 3fde: 6c97 mov r2, r5 + 3fe0: 6c13 mov r0, r4 + 3fe2: 6c5f mov r1, r7 + 3fe4: e3ffee72 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + m_send.SendLen = sled; + 3fe8: 3240 movi r2, 64 + 3fea: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 3fec: 9861 ld.w r3, (r14, 0x4) + 3fee: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 3ff0: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 3ff2: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3ff4: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 3ff6: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 3ff8: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 3ffa: 3201 movi r2, 1 + 3ffc: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 3ffe: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 4000: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 4002: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 4004: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 4006: 247f addi r4, 128 + 4008: 1064 lrw r3, 0x200000c0 // 4018 + 400a: 9360 ld.w r3, (r3, 0x0) + 400c: b461 st.w r3, (r4, 0x4) +} + 400e: 1402 addi r14, r14, 8 + 4010: 1494 pop r4-r7, r15 + 4012: 0000 bkpt + 4014: 2000044c .long 0x2000044c + 4018: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Clear_SendFlag: + +0000401c : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 401c: 1063 lrw r3, 0x200004ac // 4028 + 401e: 3200 movi r2, 0 + 4020: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 4022: a347 st.b r2, (r3, 0x7) +} + 4024: 783c jmp r15 + 4026: 0000 bkpt + 4028: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485_Jump_Boot: + +0000402c : +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 402c: 1062 lrw r3, 0x200004ac // 4034 + 402e: a30c st.b r0, (r3, 0xc) +} + 4030: 783c jmp r15 + 4032: 0000 bkpt + 4034: 200004ac .long 0x200004ac + +Disassembly of section .text.BUS485Send_Task: + +00004038 : + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 4038: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 403a: 108a lrw r4, 0x200004ac // 4060 + 403c: 8469 ld.b r3, (r4, 0x9) + 403e: 3b41 cmpnei r3, 1 + 4040: 080e bt 0x405c // 405c + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 4042: 1069 lrw r3, 0x2000048c // 4064 + 4044: 8b37 ld.h r1, (r3, 0x2e) + 4046: 3201 movi r2, 1 + 4048: 1008 lrw r0, 0x2000044c // 4068 + 404a: e3ffff7d bsr 0x3f44 // 3f44 + 404e: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 4050: 2801 subi r0, 2 + 4052: 7400 zextb r0, r0 + 4054: 3801 cmphsi r0, 2 + 4056: 0803 bt 0x405c // 405c + { + Dbg_Println(DBG_BIT_SYS_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 4058: 3300 movi r3, 0 + 405a: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 405c: 1491 pop r4, r15 + 405e: 0000 bkpt + 4060: 200004ac .long 0x200004ac + 4064: 2000048c .long 0x2000048c + 4068: 2000044c .long 0x2000044c + +Disassembly of section .text.BusIdle_Task: + +0000406c : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 406c: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 406e: 10ae lrw r5, 0x2000044c // 40a4 + 4070: 3460 movi r4, 96 + 4072: 6114 addu r4, r5 + 4074: 8464 ld.b r3, (r4, 0x4) + 4076: 3b40 cmpnei r3, 0 + 4078: 0c15 bf 0x40a2 // 40a2 + 407a: 8466 ld.b r3, (r4, 0x6) + 407c: 3b41 cmpnei r3, 1 + 407e: 0c12 bf 0x40a2 // 40a2 + { + CK_CPU_DisAllNormalIrq(); + 4080: e3fffe11 bsr 0x3ca2 // 3ca2 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 4084: 8465 ld.b r3, (r4, 0x5) + 4086: 3b41 cmpnei r3, 1 + 4088: 080b bt 0x409e // 409e + 408a: 1068 lrw r3, 0x200000c0 // 40a8 + 408c: 9340 ld.w r2, (r3, 0x0) + 408e: 957f ld.w r3, (r5, 0x7c) + 4090: 608e subu r2, r3 + 4092: 957c ld.w r3, (r5, 0x70) + 4094: 2305 addi r3, 6 + 4096: 64c8 cmphs r2, r3 + 4098: 0c03 bf 0x409e // 409e + { + m_send.BusState_Flag = UART_BUSIDLE; + 409a: 3300 movi r3, 0 + 409c: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 409e: e3fffdff bsr 0x3c9c // 3c9c + } +} + 40a2: 1492 pop r4-r5, r15 + 40a4: 2000044c .long 0x2000044c + 40a8: 200000c0 .long 0x200000c0 + +Disassembly of section .text.BusBusy_Task: + +000040ac : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 40ac: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 40ae: 1094 lrw r4, 0x2000044c // 40fc + 40b0: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 40b2: e3fffdf8 bsr 0x3ca2 // 3ca2 + m_send.BusState_Flag = UART_BUSBUSY; + 40b6: 6150 addu r5, r4 + 40b8: 3301 movi r3, 1 + 40ba: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 40bc: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 40be: 1071 lrw r3, 0x200000c0 // 4100 + 40c0: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 40c2: 9300 ld.w r0, (r3, 0x0) + 40c4: 3380 movi r3, 128 + 40c6: 60d0 addu r3, r4 + 40c8: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 40ca: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 40cc: 600e subu r0, r3 + 40ce: e3fffdd5 bsr 0x3c78 // 3c78 <__umodsi3> + 40d2: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 40d4: 3105 movi r1, 5 + 40d6: 108c lrw r4, 0x20000048 // 4104 + 40d8: 9400 ld.w r0, (r4, 0x0) + 40da: e3fff20c bsr 0x24f2 // 24f2 + 40de: 3841 cmpnei r0, 1 + 40e0: 0806 bt 0x40ec // 40ec + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 40e2: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 40e4: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 40e6: e3fffddb bsr 0x3c9c // 3c9c +} + 40ea: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 40ec: 9400 ld.w r0, (r4, 0x0) + 40ee: 3105 movi r1, 5 + 40f0: e3fff201 bsr 0x24f2 // 24f2 + 40f4: 3840 cmpnei r0, 0 + 40f6: 0bf8 bt 0x40e6 // 40e6 + m_send.HighBit_Flag = 0x00; //低电平 + 40f8: 3300 movi r3, 0 + 40fa: 07f5 br 0x40e4 // 40e4 + 40fc: 2000044c .long 0x2000044c + 4100: 200000c0 .long 0x200000c0 + 4104: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +00004108 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 4108: 1423 subi r14, r14, 12 + 410a: b862 st.w r3, (r14, 0x8) + 410c: b841 st.w r2, (r14, 0x4) + 410e: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 4110: 1403 addi r14, r14, 12 + 4112: 783c jmp r15 + +Disassembly of section .text.Dbg_Print_Buff: + +00004114 : + + DBG_Printf("\r\n",2); + } + +#endif +} + 4114: 783c jmp r15 + +Disassembly of section .text.Touch_Key_Init: + +00004118 : + +TOUCHKEY_INFO_T g_key; + +TOUCHKEY_PARA touch_para; //触摸参数 + +void Touch_Key_Init(void){ + 4118: 14d1 push r4, r15 + U8_T rev = 0; + memset(&g_key,0,sizeof(TOUCHKEY_INFO_T)); + 411a: 3234 movi r2, 52 + 411c: 3100 movi r1, 0 + 411e: 1014 lrw r0, 0x200004f0 // 416c + 4120: e3ffed90 bsr 0x1c40 // 1c40 <__memset_fast> +// memset(&touch_state,0,sizeof(TOUCH_STATUS_T)); + memset(&touch_para,0,sizeof(TOUCHKEY_PARA)); + 4124: 321c movi r2, 28 + 4126: 3100 movi r1, 0 + 4128: 1012 lrw r0, 0x200004d4 // 4170 + 412a: e3ffed8b bsr 0x1c40 // 1c40 <__memset_fast> + + //EEPROM_Init(); //按键库初始化前先读取参数 + Boot_Function_Init(); + + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 412e: 1092 lrw r4, 0x20000524 // 4174 + Boot_Function_Init(); + 4130: e00013fe bsr 0x692c // 692c + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 4134: 8405 ld.b r0, (r4, 0x5) + 4136: 102f lrw r1, 0x200004d4 // 4170 + 4138: e00005ae bsr 0x4c94 // 4c94 + if(rev == 0x00){ + 413c: 3840 cmpnei r0, 0 + 413e: 080e bt 0x415a // 415a + EEPROM_Validate_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4140: 8405 ld.b r0, (r4, 0x5) + 4142: 102c lrw r1, 0x200004d4 // 4170 + 4144: e00005fe bsr 0x4d40 // 4d40 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); +// EEPROM_WriteTouchPara(g_eeprom.key_sens_level,&touch_para); + } + + EEPROM_TouchPara_Printf(&touch_para); + 4148: 100a lrw r0, 0x200004d4 // 4170 + 414a: e00006a3 bsr 0x4e90 // 4e90 + +// tk_scan_para0=0x70008; +// tk_overflow_en =0; + tk_init(); //触摸库初始化 + 414e: e0002f7f bsr 0xa04c // a04c + + base_update_f = 0x01; //触摸状态强制更新 + 4152: 106a lrw r3, 0x200009cd // 4178 + 4154: 3201 movi r2, 1 + 4156: a340 st.b r2, (r3, 0x0) + +} + 4158: 1491 pop r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"Default TouchPara"); + 415a: 1029 lrw r1, 0xa8b6 // 417c + 415c: 3000 movi r0, 0 + 415e: e3ffffd5 bsr 0x4108 // 4108 + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4162: 8405 ld.b r0, (r4, 0x5) + 4164: 1023 lrw r1, 0x200004d4 // 4170 + 4166: e000065d bsr 0x4e20 // 4e20 + 416a: 07ef br 0x4148 // 4148 + 416c: 200004f0 .long 0x200004f0 + 4170: 200004d4 .long 0x200004d4 + 4174: 20000524 .long 0x20000524 + 4178: 200009cd .long 0x200009cd + 417c: 0000a8b6 .long 0x0000a8b6 + +Disassembly of section .text.Get_TouchKey_CH_State: + +00004180 : +// +// MCU485_SendData(temp_buff,temp_send_len); +} + + +U8_T Get_TouchKey_CH_State(U8_T ch){ + 4180: 14d0 push r15 + U8_T state = 0; + + switch(ch){ + 4182: 3804 cmphsi r0, 5 + 4184: 0818 bt 0x41b4 // 41b4 + 4186: 106d lrw r3, 0x200004f0 // 41b8 + 4188: e3ffe5ba bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 418c: 0e0b0803 .long 0x0e0b0803 + 4190: 0011 .short 0x0011 + case TKE_CH1: + if(g_key.key_state & 0x0200){ + 4192: 930a ld.w r0, (r3, 0x28) + 4194: 4809 lsri r0, r0, 9 +// if(g_tk_filt[TKE_CH4].triggle_state == 0x01){ +// state = 0x01; +// } + break; + case TKE_CH5: + if(g_key.key_state & 0x2000){ + 4196: 3301 movi r3, 1 + U8_T state = 0; + 4198: 680c and r0, r3 +// } + break; + } + + return state; +} + 419a: 1490 pop r15 + if(g_key.key_state & 0x0400){ + 419c: 930a ld.w r0, (r3, 0x28) + 419e: 480a lsri r0, r0, 10 + 41a0: 07fb br 0x4196 // 4196 + if(g_key.key_state & 0x0800){ + 41a2: 930a ld.w r0, (r3, 0x28) + 41a4: 480b lsri r0, r0, 11 + 41a6: 07f8 br 0x4196 // 4196 + if(g_key.key_state & 0x1000){ + 41a8: 930a ld.w r0, (r3, 0x28) + 41aa: 480c lsri r0, r0, 12 + 41ac: 07f5 br 0x4196 // 4196 + if(g_key.key_state & 0x2000){ + 41ae: 930a ld.w r0, (r3, 0x28) + 41b0: 480d lsri r0, r0, 13 + 41b2: 07f2 br 0x4196 // 4196 + U8_T state = 0; + 41b4: 3000 movi r0, 0 + 41b6: 07f2 br 0x419a // 419a + 41b8: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_RS485_Printf_3: + +000041bc : +void TouchKey_RS485_Printf_3(void){ + 41bc: 14d4 push r4-r7, r15 + 41be: 143b subi r14, r14, 108 + send_buff[send_len++] = 0x0D; + 41c0: 1c02 addi r4, r14, 8 + 41c2: 330d movi r3, 13 + 41c4: a460 st.b r3, (r4, 0x0) + send_buff[send_len++] = 0x0A; + 41c6: 330a movi r3, 10 + 41c8: a461 st.b r3, (r4, 0x1) + 41ca: 3600 movi r6, 0 + U16_T trigger_state = 0x00;//触发状态 + 41cc: 3500 movi r5, 0 + if(Get_TouchKey_CH_State(i) == 0x01) + 41ce: 7418 zextb r0, r6 + 41d0: e3ffffd8 bsr 0x4180 // 4180 + 41d4: 3841 cmpnei r0, 1 + 41d6: 0804 bt 0x41de // 41de + trigger_state = (trigger_state | (0x01< + send_buff[send_len++] = trigger_state>>8; + 41e4: 3300 movi r3, 0 + 41e6: a462 st.b r3, (r4, 0x2) + send_buff[send_len++] = trigger_state&0xff; + 41e8: a4a3 st.b r5, (r4, 0x3) + i=MCU_Touch_CH[0]; + 41ea: 0277 lrw r3, 0x20000068 // 4488 + 41ec: 5b42 addi r2, r3, 1 + send_buff[send_len++] = sampling_data0[i]>>8; + 41ee: 8361 ld.b r3, (r3, 0x1) + 41f0: 4361 lsli r3, r3, 1 + 41f2: 02b8 lrw r5, 0x20000bda // 448c + 41f4: 5d2c addu r1, r5, r3 + i=MCU_Touch_CH[0]; + 41f6: b841 st.w r2, (r14, 0x4) + send_buff[send_len++] = sampling_data0[i]>>8; + 41f8: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 41fa: 0219 lrw r0, 0x20000888 // 4490 + send_buff[send_len++] = sampling_data0[i]>>8; + 41fc: 4a48 lsri r2, r2, 8 + 41fe: a444 st.b r2, (r4, 0x4) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4200: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4202: 582c addu r1, r0, r3 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4204: a445 st.b r2, (r4, 0x5) + send_buff[send_len++] = baseline_data0[i]>>8; + 4206: 8940 ld.h r2, (r1, 0x0) + 4208: 4a48 lsri r2, r2, 8 + 420a: a446 st.b r2, (r4, 0x6) + send_buff[send_len++] = baseline_data0[i]&0xff; + 420c: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 420e: 023d lrw r1, 0x20000b92 // 4494 + 4210: 604c addu r1, r3 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4212: a447 st.b r2, (r4, 0x7) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4214: 8940 ld.h r2, (r1, 0x0) + 4216: 4a48 lsri r2, r2, 8 + 4218: a448 st.b r2, (r4, 0x8) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 421a: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 421c: 0320 lrw r1, 0x20000970 // 4498 + 421e: 604c addu r1, r3 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4220: a449 st.b r2, (r4, 0x9) + send_buff[send_len++] = sampling_data1[i]>>8; + 4222: 8940 ld.h r2, (r1, 0x0) + 4224: 4a48 lsri r2, r2, 8 + 4226: a44a st.b r2, (r4, 0xa) + send_buff[send_len++] = sampling_data1[i]&0xff; + 4228: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 422a: 0322 lrw r1, 0x20000a32 // 449c + 422c: 604c addu r1, r3 + send_buff[send_len++] = sampling_data1[i]&0xff; + 422e: a44b st.b r2, (r4, 0xb) + send_buff[send_len++] = baseline_data1[i]>>8; + 4230: 8940 ld.h r2, (r1, 0x0) + 4232: 4a48 lsri r2, r2, 8 + 4234: a44c st.b r2, (r4, 0xc) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4236: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4238: 0325 lrw r1, 0x200008f0 // 44a0 + 423a: 604c addu r1, r3 + send_buff[send_len++] = baseline_data1[i]&0xff; + 423c: a44d st.b r2, (r4, 0xd) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 423e: 8940 ld.h r2, (r1, 0x0) + 4240: 4a48 lsri r2, r2, 8 + 4242: a44e st.b r2, (r4, 0xe) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4244: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 4246: 0327 lrw r1, 0x20000a66 // 44a4 + 4248: 604c addu r1, r3 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 424a: a44f st.b r2, (r4, 0xf) + send_buff[send_len++] = sampling_data2[i]>>8; + 424c: 8940 ld.h r2, (r1, 0x0) + 424e: 4a48 lsri r2, r2, 8 + 4250: a450 st.b r2, (r4, 0x10) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4252: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 4254: 032a lrw r1, 0x20000b48 // 44a8 + 4256: 604c addu r1, r3 + send_buff[send_len++] = sampling_data2[i]&0xff; + 4258: a451 st.b r2, (r4, 0x11) + send_buff[send_len++] = baseline_data2[i]>>8; + 425a: 8940 ld.h r2, (r1, 0x0) + 425c: 4a48 lsri r2, r2, 8 + 425e: a452 st.b r2, (r4, 0x12) + send_buff[send_len++] = baseline_data2[i]&0xff; + 4260: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4262: 032c lrw r1, 0x200008c4 // 44ac + 4264: 60c4 addu r3, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 4266: a453 st.b r2, (r4, 0x13) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4268: 8b40 ld.h r2, (r3, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 426a: 8b60 ld.h r3, (r3, 0x0) + 426c: a475 st.b r3, (r4, 0x15) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 426e: 4a48 lsri r2, r2, 8 + send_buff[send_len++] = sampling_data0[i]>>8; + 4270: 9861 ld.w r3, (r14, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4272: a454 st.b r2, (r4, 0x14) + send_buff[send_len++] = sampling_data0[i]>>8; + 4274: 8341 ld.b r2, (r3, 0x1) + 4276: 4241 lsli r2, r2, 1 + 4278: 5dc8 addu r6, r5, r2 + 427a: 8e60 ld.h r3, (r6, 0x0) + 427c: 4b68 lsri r3, r3, 8 + 427e: a476 st.b r3, (r4, 0x16) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4280: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4282: 58c8 addu r6, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4284: a477 st.b r3, (r4, 0x17) + send_buff[send_len++] = baseline_data0[i]>>8; + 4286: 8e60 ld.h r3, (r6, 0x0) + 4288: 4b68 lsri r3, r3, 8 + 428a: a478 st.b r3, (r4, 0x18) + send_buff[send_len++] = baseline_data0[i]&0xff; + 428c: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 428e: 03dd lrw r6, 0x20000b92 // 4494 + 4290: 6188 addu r6, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4292: a479 st.b r3, (r4, 0x19) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4294: 8e60 ld.h r3, (r6, 0x0) + 4296: 4b68 lsri r3, r3, 8 + 4298: a47a st.b r3, (r4, 0x1a) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 429a: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 429c: 13df lrw r6, 0x20000970 // 4498 + 429e: 6188 addu r6, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 42a0: a47b st.b r3, (r4, 0x1b) + send_buff[send_len++] = sampling_data1[i]>>8; + 42a2: 8e60 ld.h r3, (r6, 0x0) + 42a4: 4b68 lsri r3, r3, 8 + 42a6: a47c st.b r3, (r4, 0x1c) + send_buff[send_len++] = sampling_data1[i]&0xff; + 42a8: 8e60 ld.h r3, (r6, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 42aa: 13dd lrw r6, 0x20000a32 // 449c + 42ac: 6188 addu r6, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 42ae: a47d st.b r3, (r4, 0x1d) + send_buff[send_len++] = baseline_data1[i]>>8; + 42b0: 8e60 ld.h r3, (r6, 0x0) + 42b2: 4b68 lsri r3, r3, 8 + send_buff[send_len++] = offset_data1_abs[i]>>8; + 42b4: 13fb lrw r7, 0x200008f0 // 44a0 + 42b6: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]>>8; + 42b8: a47e st.b r3, (r4, 0x1e) + send_buff[send_len++] = baseline_data1[i]&0xff; + 42ba: 8e60 ld.h r3, (r6, 0x0) + 42bc: a47f st.b r3, (r4, 0x1f) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 42be: 8fc0 ld.h r6, (r7, 0x0) + 42c0: 3320 movi r3, 32 + 42c2: 60d0 addu r3, r4 + 42c4: 4ec8 lsri r6, r6, 8 + 42c6: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 42c8: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 42ca: 13f7 lrw r7, 0x20000a66 // 44a4 + 42cc: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 42ce: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = sampling_data2[i]>>8; + 42d0: 8fc0 ld.h r6, (r7, 0x0) + 42d2: 4ec8 lsri r6, r6, 8 + 42d4: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = sampling_data2[i]&0xff; + 42d6: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 42d8: 13f4 lrw r7, 0x20000b48 // 44a8 + 42da: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 42dc: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = baseline_data2[i]>>8; + 42de: 8fc0 ld.h r6, (r7, 0x0) + 42e0: 4ec8 lsri r6, r6, 8 + 42e2: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 42e4: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 42e6: 8fc0 ld.h r6, (r7, 0x0) + 42e8: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 42ea: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 42ec: 8a40 ld.h r2, (r2, 0x0) + 42ee: a347 st.b r2, (r3, 0x7) + send_buff[send_len++] = sampling_data0[i]>>8; + 42f0: 9841 ld.w r2, (r14, 0x4) + 42f2: 8242 ld.b r2, (r2, 0x2) + 42f4: 4241 lsli r2, r2, 1 + 42f6: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 42f8: 4ec8 lsri r6, r6, 8 + 42fa: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data0[i]>>8; + 42fc: 8fc0 ld.h r6, (r7, 0x0) + 42fe: 4ec8 lsri r6, r6, 8 + 4300: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4302: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4304: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4306: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = baseline_data0[i]>>8; + 4308: 8fc0 ld.h r6, (r7, 0x0) + 430a: 4ec8 lsri r6, r6, 8 + 430c: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = baseline_data0[i]&0xff; + 430e: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4310: 13e1 lrw r7, 0x20000b92 // 4494 + 4312: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4314: a3cb st.b r6, (r3, 0xb) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4316: 8fc0 ld.h r6, (r7, 0x0) + 4318: 4ec8 lsri r6, r6, 8 + 431a: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 431c: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 431e: 12ff lrw r7, 0x20000970 // 4498 + 4320: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4322: a3cd st.b r6, (r3, 0xd) + send_buff[send_len++] = sampling_data1[i]>>8; + 4324: 8fc0 ld.h r6, (r7, 0x0) + 4326: 4ec8 lsri r6, r6, 8 + 4328: a3ce st.b r6, (r3, 0xe) + send_buff[send_len++] = sampling_data1[i]&0xff; + 432a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 432c: 12fc lrw r7, 0x20000a32 // 449c + 432e: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 4330: a3cf st.b r6, (r3, 0xf) + send_buff[send_len++] = baseline_data1[i]>>8; + 4332: 8fc0 ld.h r6, (r7, 0x0) + 4334: 4ec8 lsri r6, r6, 8 + 4336: a3d0 st.b r6, (r3, 0x10) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4338: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 433a: 12fa lrw r7, 0x200008f0 // 44a0 + 433c: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 433e: a3d1 st.b r6, (r3, 0x11) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4340: 8fc0 ld.h r6, (r7, 0x0) + 4342: 4ec8 lsri r6, r6, 8 + 4344: a3d2 st.b r6, (r3, 0x12) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4346: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 4348: 12f7 lrw r7, 0x20000a66 // 44a4 + 434a: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 434c: a3d3 st.b r6, (r3, 0x13) + send_buff[send_len++] = sampling_data2[i]>>8; + 434e: 8fc0 ld.h r6, (r7, 0x0) + 4350: 4ec8 lsri r6, r6, 8 + 4352: a3d4 st.b r6, (r3, 0x14) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4354: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 4356: 12f5 lrw r7, 0x20000b48 // 44a8 + 4358: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 435a: a3d5 st.b r6, (r3, 0x15) + send_buff[send_len++] = baseline_data2[i]>>8; + 435c: 8fc0 ld.h r6, (r7, 0x0) + 435e: 4ec8 lsri r6, r6, 8 + 4360: a3d6 st.b r6, (r3, 0x16) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4362: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 4364: 8fc0 ld.h r6, (r7, 0x0) + 4366: a3d7 st.b r6, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4368: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 436a: 8a40 ld.h r2, (r2, 0x0) + 436c: a359 st.b r2, (r3, 0x19) + send_buff[send_len++] = sampling_data0[i]>>8; + 436e: 9841 ld.w r2, (r14, 0x4) + 4370: 8243 ld.b r2, (r2, 0x3) + 4372: 4241 lsli r2, r2, 1 + 4374: 5de8 addu r7, r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4376: 4ec8 lsri r6, r6, 8 + 4378: a3d8 st.b r6, (r3, 0x18) + send_buff[send_len++] = sampling_data0[i]>>8; + 437a: 8fc0 ld.h r6, (r7, 0x0) + 437c: 4ec8 lsri r6, r6, 8 + 437e: a3da st.b r6, (r3, 0x1a) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4380: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 4382: 58e8 addu r7, r0, r2 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4384: a3db st.b r6, (r3, 0x1b) + send_buff[send_len++] = baseline_data0[i]>>8; + 4386: 8fc0 ld.h r6, (r7, 0x0) + 4388: 4ec8 lsri r6, r6, 8 + 438a: a3dc st.b r6, (r3, 0x1c) + send_buff[send_len++] = baseline_data0[i]&0xff; + 438c: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 438e: 12e2 lrw r7, 0x20000b92 // 4494 + 4390: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4392: a3dd st.b r6, (r3, 0x1d) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4394: 8fc0 ld.h r6, (r7, 0x0) + 4396: 4ec8 lsri r6, r6, 8 + 4398: a3de st.b r6, (r3, 0x1e) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 439a: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 439c: 11ff lrw r7, 0x20000970 // 4498 + 439e: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 43a0: a3df st.b r6, (r3, 0x1f) + send_buff[send_len++] = sampling_data1[i]>>8; + 43a2: 8fc0 ld.h r6, (r7, 0x0) + 43a4: 3340 movi r3, 64 + 43a6: 60d0 addu r3, r4 + 43a8: 4ec8 lsri r6, r6, 8 + 43aa: a3c0 st.b r6, (r3, 0x0) + send_buff[send_len++] = sampling_data1[i]&0xff; + 43ac: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 43ae: 11fc lrw r7, 0x20000a32 // 449c + 43b0: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 43b2: a3c1 st.b r6, (r3, 0x1) + send_buff[send_len++] = baseline_data1[i]>>8; + 43b4: 8fc0 ld.h r6, (r7, 0x0) + 43b6: 4ec8 lsri r6, r6, 8 + 43b8: a3c2 st.b r6, (r3, 0x2) + send_buff[send_len++] = baseline_data1[i]&0xff; + 43ba: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 43bc: 11f9 lrw r7, 0x200008f0 // 44a0 + 43be: 61c8 addu r7, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 43c0: a3c3 st.b r6, (r3, 0x3) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 43c2: 8fc0 ld.h r6, (r7, 0x0) + 43c4: 4ec8 lsri r6, r6, 8 + 43c6: a3c4 st.b r6, (r3, 0x4) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 43c8: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = sampling_data2[i]>>8; + 43ca: 11f7 lrw r7, 0x20000a66 // 44a4 + 43cc: 61c8 addu r7, r2 + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 43ce: a3c5 st.b r6, (r3, 0x5) + send_buff[send_len++] = sampling_data2[i]>>8; + 43d0: 8fc0 ld.h r6, (r7, 0x0) + 43d2: 4ec8 lsri r6, r6, 8 + 43d4: a3c6 st.b r6, (r3, 0x6) + send_buff[send_len++] = sampling_data2[i]&0xff; + 43d6: 8fc0 ld.h r6, (r7, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 43d8: 11f4 lrw r7, 0x20000b48 // 44a8 + 43da: 61c8 addu r7, r2 + send_buff[send_len++] = sampling_data2[i]&0xff; + 43dc: a3c7 st.b r6, (r3, 0x7) + send_buff[send_len++] = baseline_data2[i]>>8; + 43de: 8fc0 ld.h r6, (r7, 0x0) + 43e0: 4ec8 lsri r6, r6, 8 + 43e2: a3c8 st.b r6, (r3, 0x8) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 43e4: 6084 addu r2, r1 + send_buff[send_len++] = baseline_data2[i]&0xff; + 43e6: 8fc0 ld.h r6, (r7, 0x0) + 43e8: a3c9 st.b r6, (r3, 0x9) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 43ea: 8ac0 ld.h r6, (r2, 0x0) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 43ec: 8a40 ld.h r2, (r2, 0x0) + 43ee: a34b st.b r2, (r3, 0xb) + send_buff[send_len++] = sampling_data0[i]>>8; + 43f0: 9841 ld.w r2, (r14, 0x4) + 43f2: 8244 ld.b r2, (r2, 0x4) + 43f4: 4241 lsli r2, r2, 1 + 43f6: 6148 addu r5, r2 + send_buff[send_len++] = offset_data2_abs[i]>>8; + 43f8: 4ec8 lsri r6, r6, 8 + 43fa: a3ca st.b r6, (r3, 0xa) + send_buff[send_len++] = sampling_data0[i]>>8; + 43fc: 8dc0 ld.h r6, (r5, 0x0) + send_buff[send_len++] = baseline_data0[i]>>8; + 43fe: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data0[i]>>8; + 4400: 4ec8 lsri r6, r6, 8 + send_buff[send_len++] = sampling_data0[i]&0xff; + 4402: 8da0 ld.h r5, (r5, 0x0) + send_buff[send_len++] = sampling_data0[i]>>8; + 4404: a3cc st.b r6, (r3, 0xc) + send_buff[send_len++] = sampling_data0[i]&0xff; + 4406: a3ad st.b r5, (r3, 0xd) + send_buff[send_len++] = baseline_data0[i]>>8; + 4408: 88a0 ld.h r5, (r0, 0x0) + 440a: 4da8 lsri r5, r5, 8 + 440c: a3ae st.b r5, (r3, 0xe) + send_buff[send_len++] = baseline_data0[i]&0xff; + 440e: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4410: 11a1 lrw r5, 0x20000b92 // 4494 + 4412: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data0[i]&0xff; + 4414: a30f st.b r0, (r3, 0xf) + send_buff[send_len++] = offset_data0_abs[i]>>8; + 4416: 8d00 ld.h r0, (r5, 0x0) + 4418: 4808 lsri r0, r0, 8 + 441a: a310 st.b r0, (r3, 0x10) + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 441c: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = sampling_data1[i]>>8; + 441e: 10bf lrw r5, 0x20000970 // 4498 + 4420: 6148 addu r5, r2 + send_buff[send_len++] = offset_data0_abs[i]&0xff; + 4422: a311 st.b r0, (r3, 0x11) + send_buff[send_len++] = sampling_data1[i]>>8; + 4424: 8d00 ld.h r0, (r5, 0x0) + 4426: 4808 lsri r0, r0, 8 + 4428: a312 st.b r0, (r3, 0x12) + send_buff[send_len++] = sampling_data1[i]&0xff; + 442a: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = baseline_data1[i]>>8; + 442c: 10bc lrw r5, 0x20000a32 // 449c + 442e: 6148 addu r5, r2 + send_buff[send_len++] = sampling_data1[i]&0xff; + 4430: a313 st.b r0, (r3, 0x13) + send_buff[send_len++] = baseline_data1[i]>>8; + 4432: 8d00 ld.h r0, (r5, 0x0) + 4434: 4808 lsri r0, r0, 8 + 4436: a314 st.b r0, (r3, 0x14) + send_buff[send_len++] = baseline_data1[i]&0xff; + 4438: 8d00 ld.h r0, (r5, 0x0) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 443a: 10ba lrw r5, 0x200008f0 // 44a0 + 443c: 6148 addu r5, r2 + send_buff[send_len++] = baseline_data1[i]&0xff; + 443e: a315 st.b r0, (r3, 0x15) + send_buff[send_len++] = offset_data1_abs[i]>>8; + 4440: 8d00 ld.h r0, (r5, 0x0) + 4442: 4808 lsri r0, r0, 8 + 4444: a316 st.b r0, (r3, 0x16) + send_buff[send_len++] = offset_data1_abs[i]&0xff; + 4446: 8d00 ld.h r0, (r5, 0x0) + 4448: a317 st.b r0, (r3, 0x17) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 444a: 6048 addu r1, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 444c: 1016 lrw r0, 0x20000a66 // 44a4 + 444e: 6008 addu r0, r2 + 4450: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = sampling_data2[i]&0xff; + 4452: 8800 ld.h r0, (r0, 0x0) + 4454: a319 st.b r0, (r3, 0x19) + send_buff[send_len++] = sampling_data2[i]>>8; + 4456: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = baseline_data2[i]>>8; + 4458: 1014 lrw r0, 0x20000b48 // 44a8 + 445a: 6008 addu r0, r2 + send_buff[send_len++] = sampling_data2[i]>>8; + 445c: a3b8 st.b r5, (r3, 0x18) + send_buff[send_len++] = baseline_data2[i]>>8; + 445e: 88a0 ld.h r5, (r0, 0x0) + send_buff[send_len++] = baseline_data2[i]&0xff; + 4460: 8800 ld.h r0, (r0, 0x0) + send_buff[send_len++] = offset_data2_abs[i]>>8; + 4462: 8940 ld.h r2, (r1, 0x0) + 4464: 4a48 lsri r2, r2, 8 + 4466: a35c st.b r2, (r3, 0x1c) + send_buff[send_len++] = baseline_data2[i]>>8; + 4468: 4da8 lsri r5, r5, 8 + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 446a: 8940 ld.h r2, (r1, 0x0) + send_buff[send_len++] = baseline_data2[i]>>8; + 446c: a3ba st.b r5, (r3, 0x1a) + send_buff[send_len++] = baseline_data2[i]&0xff; + 446e: a31b st.b r0, (r3, 0x1b) + send_buff[send_len++] = offset_data2_abs[i]&0xff; + 4470: a35d st.b r2, (r3, 0x1d) + Set_GroupSend(send_buff,send_len,1,BUSSend_ValidTime3,20); //组包 + 4472: 3314 movi r3, 20 + 4474: b860 st.w r3, (r14, 0x0) + 4476: 3396 movi r3, 150 + 4478: 4361 lsli r3, r3, 1 + 447a: 3201 movi r2, 1 + 447c: 315e movi r1, 94 + 447e: 6c13 mov r0, r4 + 4480: e3fffd9c bsr 0x3fb8 // 3fb8 +} + 4484: 141b addi r14, r14, 108 + 4486: 1494 pop r4-r7, r15 + 4488: 20000068 .long 0x20000068 + 448c: 20000bda .long 0x20000bda + 4490: 20000888 .long 0x20000888 + 4494: 20000b92 .long 0x20000b92 + 4498: 20000970 .long 0x20000970 + 449c: 20000a32 .long 0x20000a32 + 44a0: 200008f0 .long 0x200008f0 + 44a4: 20000a66 .long 0x20000a66 + 44a8: 20000b48 .long 0x20000b48 + 44ac: 200008c4 .long 0x200008c4 + +Disassembly of section .text.Touch_Key_Event_Handling: + +000044b0 : + + +} + +/*按键数据处理函数*/ +void Touch_Key_Event_Handling(void){ + 44b0: 14d1 push r4, r15 + /*按键相关处理*/ + if (g_key.key_val[TKE_CH1] == KEY_VAL_CONT_LONG_PRESS) { + 44b2: 118a lrw r4, 0x200004f0 // 4558 + 44b4: 8465 ld.b r3, (r4, 0x5) + 44b6: 3b42 cmpnei r3, 2 + 44b8: 081c bt 0x44f0 // 44f0 + //长按按下 + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 44ba: 3300 movi r3, 0 + 44bc: a465 st.b r3, (r4, 0x5) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH1 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH2] == KEY_VAL_CONT_LONG_PRESS) { + 44be: 8466 ld.b r3, (r4, 0x6) + 44c0: 3b42 cmpnei r3, 2 + 44c2: 0820 bt 0x4502 // 4502 + //长按按下 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 44c4: 3300 movi r3, 0 + 44c6: a466 st.b r3, (r4, 0x6) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH2 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH3] == KEY_VAL_CONT_LONG_PRESS) { + 44c8: 8467 ld.b r3, (r4, 0x7) + 44ca: 3b42 cmpnei r3, 2 + 44cc: 0824 bt 0x4514 // 4514 + //长按按下 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 44ce: 3300 movi r3, 0 + 44d0: a467 st.b r3, (r4, 0x7) + + KEY3_Long_Press_Fun(); + 44d2: e000172b bsr 0x7328 // 7328 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH3 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH4] == KEY_VAL_CONT_LONG_PRESS) { + 44d6: 8468 ld.b r3, (r4, 0x8) + 44d8: 3b42 cmpnei r3, 2 + 44da: 0829 bt 0x452c // 452c + //长按按下 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 44dc: 3300 movi r3, 0 + 44de: a468 st.b r3, (r4, 0x8) + + KEY4_Long_Press(); + 44e0: e00017dc bsr 0x7498 // 7498 + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH4 Press\r\n"); + #endif + } + + if (g_key.key_val[TKE_CH5] == KEY_VAL_CONT_LONG_PRESS) { + 44e4: 8469 ld.b r3, (r4, 0x9) + 44e6: 3b42 cmpnei r3, 2 + 44e8: 082e bt 0x4544 // 4544 + //长按按下 + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 44ea: 3300 movi r3, 0 + 44ec: a469 st.b r3, (r4, 0x9) + #if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"TKE_CH5 Press\r\n"); + #endif + } + +} + 44ee: 1491 pop r4, r15 + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_LONG_PRESS_LOOSEN) { + 44f0: 3b44 cmpnei r3, 4 + 44f2: 0fe4 bf 0x44ba // 44ba + } else if (g_key.key_val[TKE_CH1] == KEY_VAL_SHORT_PRESS) { + 44f4: 3b41 cmpnei r3, 1 + 44f6: 0be4 bt 0x44be // 44be + g_key.key_val[TKE_CH1] = KEY_VAL_NOT; + 44f8: 3300 movi r3, 0 + 44fa: a465 st.b r3, (r4, 0x5) + KEY1_Model_Press_Fun(); + 44fc: e00015ca bsr 0x7090 // 7090 + 4500: 07df br 0x44be // 44be + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4502: 3b44 cmpnei r3, 4 + 4504: 0fe0 bf 0x44c4 // 44c4 + } else if (g_key.key_val[TKE_CH2] == KEY_VAL_SHORT_PRESS) { + 4506: 3b41 cmpnei r3, 1 + 4508: 0be0 bt 0x44c8 // 44c8 + g_key.key_val[TKE_CH2] = KEY_VAL_NOT; + 450a: 3300 movi r3, 0 + 450c: a466 st.b r3, (r4, 0x6) + KEY2_Fan_Press_Fun(); + 450e: e0001627 bsr 0x715c // 715c + 4512: 07db br 0x44c8 // 44c8 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4514: 3b44 cmpnei r3, 4 + 4516: 0804 bt 0x451e // 451e + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4518: 3300 movi r3, 0 + 451a: a467 st.b r3, (r4, 0x7) + 451c: 07dd br 0x44d6 // 44d6 + } else if (g_key.key_val[TKE_CH3] == KEY_VAL_SHORT_PRESS) { + 451e: 3b41 cmpnei r3, 1 + 4520: 0bdb bt 0x44d6 // 44d6 + g_key.key_val[TKE_CH3] = KEY_VAL_NOT; + 4522: 3300 movi r3, 0 + 4524: a467 st.b r3, (r4, 0x7) + KEY3_TempAdd_Press_Fun(); + 4526: e0001681 bsr 0x7228 // 7228 + 452a: 07d6 br 0x44d6 // 44d6 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_LONG_PRESS_LOOSEN) { + 452c: 3b44 cmpnei r3, 4 + 452e: 0804 bt 0x4536 // 4536 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 4530: 3300 movi r3, 0 + 4532: a468 st.b r3, (r4, 0x8) + 4534: 07d8 br 0x44e4 // 44e4 + } else if (g_key.key_val[TKE_CH4] == KEY_VAL_SHORT_PRESS) { + 4536: 3b41 cmpnei r3, 1 + 4538: 0bd6 bt 0x44e4 // 44e4 + g_key.key_val[TKE_CH4] = KEY_VAL_NOT; + 453a: 3300 movi r3, 0 + 453c: a468 st.b r3, (r4, 0x8) + KEY4_TempDec_Press_Fun(); + 453e: e000172d bsr 0x7398 // 7398 + 4542: 07d1 br 0x44e4 // 44e4 + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_LONG_PRESS_LOOSEN) { + 4544: 3b44 cmpnei r3, 4 + 4546: 0fd2 bf 0x44ea // 44ea + } else if (g_key.key_val[TKE_CH5] == KEY_VAL_SHORT_PRESS) { + 4548: 3b41 cmpnei r3, 1 + 454a: 0bd2 bt 0x44ee // 44ee + g_key.key_val[TKE_CH5] = KEY_VAL_NOT; + 454c: 3300 movi r3, 0 + 454e: a469 st.b r3, (r4, 0x9) + KEY5_OnOff_Press_Fun(); + 4550: e00017dc bsr 0x7508 // 7508 +} + 4554: 07cd br 0x44ee // 44ee + 4556: 0000 bkpt + 4558: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_Set_Interface_Task: + +0000455c : + + +/*设置触摸任务*/ +void TouchKey_Set_Interface_Task(void){ + 455c: 14d0 push r15 + + if((Debug_Inf.State != 0x01) && (Debug_Inf.Page == PAGE5ID)) + 455e: 106c lrw r3, 0x20000868 // 458c + 4560: 8340 ld.b r2, (r3, 0x0) + 4562: 3a41 cmpnei r2, 1 + 4564: 0c04 bf 0x456c // 456c + 4566: 8362 ld.b r3, (r3, 0x2) + 4568: 3b45 cmpnei r3, 5 + 456a: 0c10 bf 0x458a // 458a + { + return ; + } + + if(g_key.key_dug_printf == 0x01){ + 456c: 1069 lrw r3, 0x200004f0 // 4590 + 456e: 835b ld.b r2, (r3, 0x1b) + 4570: 3a41 cmpnei r2, 1 + 4572: 080c bt 0x458a // 458a + if(SysTick_1ms - g_key.key_dug_tick >= 150){ + 4574: 1028 lrw r1, 0x200000c0 // 4594 + 4576: 9140 ld.w r2, (r1, 0x0) + 4578: 930c ld.w r0, (r3, 0x30) + 457a: 6082 subu r2, r0 + 457c: 3095 movi r0, 149 + 457e: 6480 cmphs r0, r2 + 4580: 0805 bt 0x458a // 458a + g_key.key_dug_tick = SysTick_1ms; + 4582: 9140 ld.w r2, (r1, 0x0) + 4584: b34c st.w r2, (r3, 0x30) + + /*打印触摸按键数值*/ + //Touch_Key_FilterPrint(); + //TouchKey_RS485_Printf(); + //TouchKey_RS485_Printf_2(); + TouchKey_RS485_Printf_3(); + 4586: e3fffe1b bsr 0x41bc // 41bc + + } + } +} + 458a: 1490 pop r15 + 458c: 20000868 .long 0x20000868 + 4590: 200004f0 .long 0x200004f0 + 4594: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Touch_Key_Task: + +00004598 : +void Touch_Key_Task(void){ + 4598: 14d4 push r4-r7, r15 + + /*按键扫描*/ + if(SysTick_1ms - g_key.scan_tick >= 5){ + 459a: 113b lrw r1, 0x200000c0 // 4684 + 459c: 117b lrw r3, 0x200004f0 // 4688 + 459e: 9140 ld.w r2, (r1, 0x0) + 45a0: 930b ld.w r0, (r3, 0x2c) + 45a2: 6082 subu r2, r0 + 45a4: 3a04 cmphsi r2, 5 + 45a6: 0806 bt 0x45b2 // 45b2 + break; + } + } + } + + Touch_Key_Event_Handling(); + 45a8: e3ffff84 bsr 0x44b0 // 44b0 + + TouchKey_Set_Interface_Task(); + 45ac: e3ffffd8 bsr 0x455c // 455c + +} + 45b0: 1494 pop r4-r7, r15 + g_key.scan_tick = SysTick_1ms; + 45b2: 9140 ld.w r2, (r1, 0x0) + 45b4: b34b st.w r2, (r3, 0x2c) + if(Key_Map != 0x00){ + 45b6: 1136 lrw r1, 0x20000a28 // 468c + 45b8: 9140 ld.w r2, (r1, 0x0) + 45ba: 3a40 cmpnei r2, 0 + 45bc: 0c02 bf 0x45c0 // 45c0 + g_key.key_state = Key_Map; + 45be: 9140 ld.w r2, (r1, 0x0) + 45c0: 11d2 lrw r6, 0x200004f0 // 4688 +void Touch_Key_Task(void){ + 45c2: 6d5b mov r5, r6 + g_key.key_state = Key_Map; + 45c4: b34a st.w r2, (r3, 0x28) +void Touch_Key_Task(void){ + 45c6: 3400 movi r4, 0 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 45c8: 11f2 lrw r7, 0x200005e0 // 4690 + switch (g_key.KEY_STA[i]) { + 45ca: 8640 ld.b r2, (r6, 0x0) + 45cc: 3a41 cmpnei r2, 1 + 45ce: 0c2e bf 0x462a // 462a + 45d0: 3a40 cmpnei r2, 0 + 45d2: 0c0a bf 0x45e6 // 45e6 + 45d4: 3a42 cmpnei r2, 2 + 45d6: 0c48 bf 0x4666 // 4666 + for (uint8_t i = 0; i < TKE_CH_MAX; i++) { + 45d8: 2400 addi r4, 1 + 45da: 7510 zextb r4, r4 + 45dc: 3c45 cmpnei r4, 5 + 45de: 2600 addi r6, 1 + 45e0: 2501 addi r5, 2 + 45e2: 0bf4 bt 0x45ca // 45ca + 45e4: 07e2 br 0x45a8 // 45a8 + if (Get_TouchKey_CH_State(i) == KEY_PRESS) { + 45e6: 6c13 mov r0, r4 + 45e8: e3fffdcc bsr 0x4180 // 4180 + 45ec: 3841 cmpnei r0, 1 + 45ee: 0819 bt 0x4620 // 4620 + if (g_key.delayCnt[i] < KEY_DELAY_COUNT) { + 45f0: 8654 ld.b r2, (r6, 0x14) + 45f2: 3a01 cmphsi r2, 2 + 45f4: 0804 bt 0x45fc // 45fc + g_key.delayCnt[i]++; + 45f6: 2200 addi r2, 1 + 45f8: a654 st.b r2, (r6, 0x14) + 45fa: 07ef br 0x45d8 // 45d8 + if((HT1621.buz_ctrl_flag == 0x01)||(i == TKE_CH5))//开机键必定有蜂鸣响 + 45fc: 8745 ld.b r2, (r7, 0x5) + 45fe: 3a41 cmpnei r2, 1 + 4600: 0c03 bf 0x4606 // 4606 + 4602: 3c44 cmpnei r4, 4 + 4604: 0804 bt 0x460c // 460c + Controlled_Buzzer(0x01); + 4606: 3001 movi r0, 1 + 4608: e0001020 bsr 0x6648 // 6648 + Contol_Switch_ClickAction(i,Control_ON); + 460c: 3101 movi r1, 1 + 460e: 6c13 mov r0, r4 + 4610: e0000a72 bsr 0x5af4 // 5af4 + g_key.KEY_STA[i] = KEY_STA_S1; //消抖后 + 4614: 3301 movi r3, 1 + 4616: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 4618: 3300 movi r3, 0 + 461a: ad6e st.h r3, (r5, 0x1c) + g_key.delayCnt[i] = 0; + 461c: a674 st.b r3, (r6, 0x14) + 461e: 07dd br 0x45d8 // 45d8 + g_key.delayCnt[i] = 0; + 4620: 3300 movi r3, 0 + 4622: a674 st.b r3, (r6, 0x14) + g_key.KEY_STA[i] = KEY_STA_S0; + 4624: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 4626: a665 st.b r3, (r6, 0x5) + 4628: 07d8 br 0x45d8 // 45d8 + g_key.key_time[i]++; + 462a: 8d4e ld.h r2, (r5, 0x1c) + 462c: 2200 addi r2, 1 + 462e: 7489 zexth r2, r2 + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 4630: 1079 lrw r3, 0x257 // 4694 + 4632: 648c cmphs r3, r2 + g_key.key_time[i]++; + 4634: ad4e st.h r2, (r5, 0x1c) + if (g_key.key_time[i] < KEY_DELAY_COUNT_LONG) { + 4636: 0c10 bf 0x4656 // 4656 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) //松开 + 4638: 6c13 mov r0, r4 + 463a: e3fffda3 bsr 0x4180 // 4180 + 463e: 3840 cmpnei r0, 0 + 4640: 0bcc bt 0x45d8 // 45d8 + Contol_Switch_ClickAction(i,Control_OFF); + 4642: 3102 movi r1, 2 + 4644: 6c13 mov r0, r4 + 4646: e0000a57 bsr 0x5af4 // 5af4 + g_key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开 + 464a: 3301 movi r3, 1 + 464c: a665 st.b r3, (r6, 0x5) + g_key.key_time[i] = 0; + 464e: 3300 movi r3, 0 + 4650: ad6e st.h r3, (r5, 0x1c) + g_key.KEY_STA[i] = KEY_STA_S0; + 4652: a660 st.b r3, (r6, 0x0) + 4654: 07c2 br 0x45d8 // 45d8 + g_key.KEY_STA[i] = KEY_STA_S2; + 4656: 3302 movi r3, 2 + 4658: a660 st.b r3, (r6, 0x0) + g_key.key_time[i] = 0; + 465a: 3300 movi r3, 0 + 465c: ad6e st.h r3, (r5, 0x1c) + g_key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //长按单击按下 + 465e: 3303 movi r3, 3 + 4660: a66f st.b r3, (r6, 0xf) + g_key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下 + 4662: 3302 movi r3, 2 + 4664: 07e1 br 0x4626 // 4626 + g_key.key_longPress[i] = KEY_VAL_NOT; + 4666: 3300 movi r3, 0 + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 4668: 6c13 mov r0, r4 + g_key.key_longPress[i] = KEY_VAL_NOT; + 466a: a66f st.b r3, (r6, 0xf) + if (Get_TouchKey_CH_State(i) == KEY_LOOSEN) { + 466c: e3fffd8a bsr 0x4180 // 4180 + 4670: 3840 cmpnei r0, 0 + 4672: 0bb3 bt 0x45d8 // 45d8 + Contol_Switch_ClickAction(i,Control_OFF); + 4674: 3102 movi r1, 2 + 4676: 6c13 mov r0, r4 + 4678: e0000a3e bsr 0x5af4 // 5af4 + g_key.KEY_STA[i] = KEY_STA_S0; + 467c: 3300 movi r3, 0 + 467e: a660 st.b r3, (r6, 0x0) + g_key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //长按松开 + 4680: 3304 movi r3, 4 + 4682: 07d2 br 0x4626 // 4626 + 4684: 200000c0 .long 0x200000c0 + 4688: 200004f0 .long 0x200004f0 + 468c: 20000a28 .long 0x20000a28 + 4690: 200005e0 .long 0x200005e0 + 4694: 00000257 .long 0x00000257 + +Disassembly of section .text.TouchKey_CheckSum: + +00004698 : + + +U8_T TouchKey_CheckSum(U8_T *data,U16_T len) +{ + 4698: 6040 addu r1, r0 + U8_T data_sum = 0; + 469a: 3300 movi r3, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return ~data_sum; + 46a0: 6cce nor r3, r3 + 46a2: 740c zextb r0, r3 +} + 46a4: 783c jmp r15 + data_sum += data[i]; + 46a6: 8040 ld.b r2, (r0, 0x0) + 46a8: 60c8 addu r3, r2 + 46aa: 74cc zextb r3, r3 + 46ac: 2000 addi r0, 1 + 46ae: 07f7 br 0x469c // 469c + +Disassembly of section .text.TouchKey_Comm_Reply: + +000046b0 : +U8_T TouchKey_Comm_Reply(U8_T *para,U16_T len){ + 46b0: 14d2 push r4-r5, r15 + 46b2: 1430 subi r14, r14, 64 + + U8_T temp_num = 0,temp_office = 0,i=0; + U8_T send_data[60]; + U16_T reply_len = len + 5,para_len = len; + 46b4: 5992 addi r4, r1, 5 + 46b6: 7511 zexth r4, r4 + + if(reply_len >= 50) { + 46b8: 3331 movi r3, 49 + 46ba: 650c cmphs r3, r4 + 46bc: 0803 bt 0x46c2 // 46c2 + para_len = 44; + 46be: 312c movi r1, 44 + reply_len = 50; + 46c0: 3432 movi r4, 50 + } + + send_data[0] = 0xAF; + 46c2: 3300 movi r3, 0 + 46c4: 2b50 subi r3, 81 + 46c6: dc6e0004 st.b r3, (r14, 0x4) + send_data[1] = g_eeprom.dev_addr; + send_data[2] = reply_len; + 46ca: dc8e0006 st.b r4, (r14, 0x6) + send_data[1] = g_eeprom.dev_addr; + 46ce: 1074 lrw r3, 0x20000524 // 471c + 46d0: 8360 ld.b r3, (r3, 0x0) + 46d2: dc6e0005 st.b r3, (r14, 0x5) + send_data[3] = 0x00; + 46d6: 3300 movi r3, 0 + 46d8: dc6e0007 st.b r3, (r14, 0x7) + + for(i=0;i + } + send_data[i+4] = 0xFA; + 46e4: 60c8 addu r3, r2 + 46e6: 3200 movi r2, 0 + 46e8: 2a05 subi r2, 6 + + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 46ea: 6c53 mov r1, r4 + 46ec: 1801 addi r0, r14, 4 + send_data[i+4] = 0xFA; + 46ee: a344 st.b r2, (r3, 0x4) + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 46f0: e3ffffd4 bsr 0x4698 // 4698 + +// if (detect_inf.control_model == 0x00){ +// MCU485_SendData(send_data,reply_len); + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 46f4: 3314 movi r3, 20 + 46f6: b860 st.w r3, (r14, 0x0) + 46f8: 3396 movi r3, 150 + send_data[3] = TouchKey_CheckSum(send_data,reply_len); + 46fa: dc0e0007 st.b r0, (r14, 0x7) + Set_GroupSend(send_data,reply_len,1,BUSSend_ValidTime3,20); //组包 + 46fe: 4361 lsli r3, r3, 1 + 4700: 1801 addi r0, r14, 4 + 4702: 3201 movi r2, 1 + 4704: 6c53 mov r1, r4 + 4706: e3fffc59 bsr 0x3fb8 // 3fb8 +// }else { +// UARTTransmit(UART2,send_data,reply_len); +// } +} + 470a: 1410 addi r14, r14, 64 + 470c: 1492 pop r4-r5, r15 + send_data[i+4] = para[i]; + 470e: 58ac addu r5, r0, r3 + 4710: 608c addu r2, r3 + 4712: 85a0 ld.b r5, (r5, 0x0) + for(i=0;i + 471c: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_SetPara_Processing: + +00004720 : +/*设置触摸按键参数处理*/ +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 4720: 14d4 push r4-r7, r15 + 4722: 1421 subi r14, r14, 4 + U8_T i = 0,rev = 0,level = 0; + U16_T temp_val = 0; + U8_T reply_buff[4] ; + + if( (para[0] > 0) && (para[0] <= 3) ){ + 4724: 80a0 ld.b r5, (r0, 0x0) + 4726: 5dc3 subi r6, r5, 1 + 4728: 7598 zextb r6, r6 + 472a: 3e02 cmphsi r6, 3 +U8_T TouchKey_SetPara_Processing(U8_T *para,U16_T len){ + 472c: 6d03 mov r4, r0 + if( (para[0] > 0) && (para[0] <= 3) ){ + 472e: 0834 bt 0x4796 // 4796 + 4730: 1125 lrw r1, 0x200004d4 // 47c4 + 4732: 350b movi r5, 11 + 4734: 5862 addi r3, r0, 1 + 4736: 6140 addu r5, r0 + 4738: 6c87 mov r2, r1 + level = para[0]-1; + for(i=0;i + } + + touch_para.press_debounce = para[25]; + 4756: 8479 ld.b r3, (r4, 0x19) + 4758: a260 st.b r3, (r2, 0x0) + touch_para.release_debounce = para[26]; + 475a: 847a ld.b r3, (r4, 0x1a) + 475c: a261 st.b r3, (r2, 0x1) + touch_para.multiTimes_filt = para[27]; + 475e: 847b ld.b r3, (r4, 0x1b) + 4760: a262 st.b r3, (r2, 0x2) + touch_para.base_speed = para[28]; + 4762: 847c ld.b r3, (r4, 0x1c) + 4764: a263 st.b r3, (r2, 0x3) + touch_para.longpress_time = para[29]; + + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4766: 6c1b mov r0, r6 + touch_para.longpress_time = para[29]; + 4768: 847d ld.b r3, (r4, 0x1d) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 476a: 1037 lrw r1, 0x200004d4 // 47c4 + touch_para.longpress_time = para[29]; + 476c: b266 st.w r3, (r2, 0x18) + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 476e: e00002e9 bsr 0x4d40 // 4d40 + + if(rev == 0x00){ + 4772: 3840 cmpnei r0, 0 + rev = EEPROM_Validate_TouchPara(level,&touch_para); + 4774: 6d43 mov r5, r0 + if(rev == 0x00){ + 4776: 0805 bt 0x4780 // 4780 + /*保存参数*/ + EEPROM_WriteTouchPara(level,&touch_para); + 4778: 1033 lrw r1, 0x200004d4 // 47c4 + 477a: 6c1b mov r0, r6 + 477c: e0000256 bsr 0x4c28 // 4c28 + rev = 0x01; + } + + + //回复数据 + reply_buff[0] = 0x01; //CMD + 4780: 3301 movi r3, 1 + reply_buff[1] = rev; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 4782: 3102 movi r1, 2 + 4784: 6c3b mov r0, r14 + reply_buff[0] = 0x01; //CMD + 4786: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = rev; //结果 + 478a: dcae0001 st.b r5, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 478e: e3ffff91 bsr 0x46b0 // 46b0 +} + 4792: 1401 addi r14, r14, 4 + 4794: 1494 pop r4-r7, r15 + }else if(para[0] == 0x00){ + 4796: 3d40 cmpnei r5, 0 + 4798: 0c03 bf 0x479e // 479e + rev = 0x01; + 479a: 3501 movi r5, 1 + 479c: 07f2 br 0x4780 // 4780 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Set Level %d",__func__,para[1]); + 479e: 8061 ld.b r3, (r0, 0x1) + 47a0: 104a lrw r2, 0xa3e0 // 47c8 + 47a2: 102b lrw r1, 0xa8e3 // 47cc + 47a4: 3000 movi r0, 0 + 47a6: e3fffcb1 bsr 0x4108 // 4108 + if( (para[1] > 0) && (para[1] <= 3) ){ + 47aa: 8461 ld.b r3, (r4, 0x1) + 47ac: 2b00 subi r3, 1 + 47ae: 74cc zextb r3, r3 + 47b0: 3b02 cmphsi r3, 3 + 47b2: 0bf4 bt 0x479a // 479a + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 47b4: 1047 lrw r2, 0x20000868 // 47d0 + g_eeprom.key_sens_level = para[1] - 1; + 47b6: 1008 lrw r0, 0x20000524 // 47d4 + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 47b8: a267 st.b r3, (r2, 0x7) + g_eeprom.key_sens_level = para[1] - 1; + 47ba: a065 st.b r3, (r0, 0x5) + EEPROM_WriteParaInfo(&g_eeprom); + 47bc: e00001be bsr 0x4b38 // 4b38 + 47c0: 07e0 br 0x4780 // 4780 + 47c2: 0000 bkpt + 47c4: 200004d4 .long 0x200004d4 + 47c8: 0000a3e0 .long 0x0000a3e0 + 47cc: 0000a8e3 .long 0x0000a8e3 + 47d0: 20000868 .long 0x20000868 + 47d4: 20000524 .long 0x20000524 + +Disassembly of section .text.TouchKey_ReadPara_Processing: + +000047d8 : +/*读取触摸按键参数处理*/ +U8_T TouchKey_ReadPara_Processing(U8_T *para,U16_T len){ + 47d8: 14d3 push r4-r6, r15 + 47da: 142d subi r14, r14, 52 + 47dc: 6d43 mov r5, r0 + + U8_T reply_buff[50]; + U8_T reply_len = 0x00, i=0,rev = 0x00; + + memset(reply_buff,0,sizeof(reply_buff)); + 47de: 3232 movi r2, 50 + 47e0: 3100 movi r1, 0 + 47e2: 6c3b mov r0, r14 + 47e4: e3ffea2e bsr 0x1c40 // 1c40 <__memset_fast> + + reply_buff[reply_len++] = 0x02; + + if(para[0] == 0x00){ + 47e8: 8580 ld.b r4, (r5, 0x0) + reply_buff[reply_len++] = 0x02; + 47ea: 3302 movi r3, 2 + if(para[0] == 0x00){ + 47ec: 3c40 cmpnei r4, 0 + reply_buff[reply_len++] = 0x02; + 47ee: dc6e0000 st.b r3, (r14, 0x0) + if(para[0] == 0x00){ + 47f2: 0837 bt 0x4860 // 4860 + + //注意:此处是为查询数据服务,实际数据只在上电时生效 修改时间:2025/01/13 + rev = EEPROM_ReadTouchPara(g_eeprom.key_sens_level,&touch_para); + 47f4: 11d5 lrw r6, 0x20000524 // 48c8 + 47f6: 8605 ld.b r0, (r6, 0x5) + 47f8: 1135 lrw r1, 0x200004d4 // 48cc + 47fa: e000024d bsr 0x4c94 // 4c94 + if(rev != 0x00){ + 47fe: 3840 cmpnei r0, 0 + 4800: 11b3 lrw r5, 0x200004d4 // 48cc + 4802: 0c05 bf 0x480c // 480c + EEPROM_Default_TouchPara(g_eeprom.key_sens_level,&touch_para); + 4804: 8605 ld.b r0, (r6, 0x5) + 4806: 6c57 mov r1, r5 + 4808: e000030c bsr 0x4e20 // 4e20 + } + + reply_buff[reply_len++] = g_eeprom.key_sens_level + 1; + 480c: 8665 ld.b r3, (r6, 0x5) + 480e: 2300 addi r3, 1 + 4810: dc6e0001 st.b r3, (r14, 0x1) + 4814: 6cfb mov r3, r14 + 4816: 114e lrw r2, 0x200004d4 // 48cc + + for(i=0;i> 8; + 481e: 4928 lsri r1, r1, 8 + 4820: a323 st.b r1, (r3, 0x3) + for(i=0;i> 8; + 482a: 4928 lsri r1, r1, 8 + 482c: a32f st.b r1, (r3, 0xf) + 482e: 2201 addi r2, 2 + 4830: 2301 addi r3, 2 + for(i=0;i + } + + reply_len += 24; + + reply_buff[reply_len++] = touch_para.press_debounce; + 4834: 8560 ld.b r3, (r5, 0x0) + 4836: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 483a: 8561 ld.b r3, (r5, 0x1) + 483c: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 4840: 8562 ld.b r3, (r5, 0x2) + 4842: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 4846: 8563 ld.b r3, (r5, 0x3) + 4848: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 484c: 8578 ld.b r3, (r5, 0x18) + + reply_buff[reply_len++] = touch_para.press_debounce; + reply_buff[reply_len++] = touch_para.release_debounce; + reply_buff[reply_len++] = touch_para.multiTimes_filt; + reply_buff[reply_len++] = touch_para.base_speed; + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 484e: dc6e001e st.b r3, (r14, 0x1e) + 4852: 311f movi r1, 31 + /*参数错误*/ + reply_buff[reply_len++] = 0x00; + } + + //回复数据 + TouchKey_Comm_Reply(reply_buff,reply_len); + 4854: 7445 zexth r1, r1 + 4856: 6c3b mov r0, r14 + 4858: e3ffff2c bsr 0x46b0 // 46b0 +} + 485c: 140d addi r14, r14, 52 + 485e: 1493 pop r4-r6, r15 + }else if(para[0] <= 3){ + 4860: 3c03 cmphsi r4, 4 + 4862: 0831 bt 0x48c4 // 48c4 + rev = EEPROM_ReadTouchPara(para[0]-1,&touch_para); + 4864: 2c00 subi r4, 1 + 4866: 7410 zextb r0, r4 + 4868: 1039 lrw r1, 0x200004d4 // 48cc + 486a: e0000215 bsr 0x4c94 // 4c94 + if(rev != 0x00){ + 486e: 3840 cmpnei r0, 0 + 4870: 1097 lrw r4, 0x200004d4 // 48cc + 4872: 0c07 bf 0x4880 // 4880 + EEPROM_Default_TouchPara(para[0]-1,&touch_para); + 4874: 8500 ld.b r0, (r5, 0x0) + 4876: 2800 subi r0, 1 + 4878: 7400 zextb r0, r0 + 487a: 6c53 mov r1, r4 + 487c: e00002d2 bsr 0x4e20 // 4e20 + reply_buff[reply_len++] = para[0]; + 4880: 8560 ld.b r3, (r5, 0x0) + 4882: dc6e0001 st.b r3, (r14, 0x1) + for(i=0;i + 488a: 6cfb mov r3, r14 + reply_buff[reply_len+i*2] = touch_para.senprd[i]; + 488c: 8902 ld.h r0, (r1, 0x4) + 488e: a302 st.b r0, (r3, 0x2) + for(i=0;i> 8; + 4892: 4808 lsri r0, r0, 8 + 4894: a303 st.b r0, (r3, 0x3) + for(i=0;i> 8; + 489e: 4808 lsri r0, r0, 8 + 48a0: a30f st.b r0, (r3, 0xf) + 48a2: 2101 addi r1, 2 + 48a4: 2301 addi r3, 2 + for(i=0;i + reply_buff[reply_len++] = touch_para.press_debounce; + 48a8: 8460 ld.b r3, (r4, 0x0) + 48aa: dc6e001a st.b r3, (r14, 0x1a) + reply_buff[reply_len++] = touch_para.release_debounce; + 48ae: 8461 ld.b r3, (r4, 0x1) + 48b0: dc6e001b st.b r3, (r14, 0x1b) + reply_buff[reply_len++] = touch_para.multiTimes_filt; + 48b4: 8462 ld.b r3, (r4, 0x2) + 48b6: dc6e001c st.b r3, (r14, 0x1c) + reply_buff[reply_len++] = touch_para.base_speed; + 48ba: 8463 ld.b r3, (r4, 0x3) + 48bc: dc6e001d st.b r3, (r14, 0x1d) + reply_buff[reply_len++] = touch_para.longpress_time & 0xFF; + 48c0: 8478 ld.b r3, (r4, 0x18) + 48c2: 07c6 br 0x484e // 484e + reply_buff[reply_len++] = 0x00; + 48c4: 3102 movi r1, 2 + 48c6: 07c7 br 0x4854 // 4854 + 48c8: 20000524 .long 0x20000524 + 48cc: 200004d4 .long 0x200004d4 + +Disassembly of section .text.TouchKey_DugPrintf_Processing: + +000048d0 : +//开启/关闭触摸打印值 +void TouchKey_DugPrintf_Processing(U8_T *para,U16_T len){ + 48d0: 14d0 push r15 + 48d2: 1421 subi r14, r14, 4 + U8_T reply_buff[4]; + + if(para[0] == 0x01){ + 48d4: 8060 ld.b r3, (r0, 0x0) + 48d6: 3b41 cmpnei r3, 1 + 48d8: 0810 bt 0x48f8 // 48f8 + /*开启调试信息*/ + + g_key.key_dug_printf = 0x01; + 48da: 106b lrw r3, 0x200004f0 // 4904 + 48dc: 3201 movi r2, 1 + + }else if(para[0] == 0x02){ + /*关闭调试信息*/ + g_key.key_dug_printf = 0x00; + 48de: a35b st.b r2, (r3, 0x1b) + } + + //回复数据 + reply_buff[0] = 0x03; //CMD + 48e0: 3303 movi r3, 3 + 48e2: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[1] = 0x00; //结果 + + TouchKey_Comm_Reply(reply_buff,0x02); + 48e6: 3102 movi r1, 2 + reply_buff[1] = 0x00; //结果 + 48e8: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,0x02); + 48ea: 6c3b mov r0, r14 + reply_buff[1] = 0x00; //结果 + 48ec: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,0x02); + 48f0: e3fffee0 bsr 0x46b0 // 46b0 +} + 48f4: 1401 addi r14, r14, 4 + 48f6: 1490 pop r15 + }else if(para[0] == 0x02){ + 48f8: 3b42 cmpnei r3, 2 + 48fa: 0bf3 bt 0x48e0 // 48e0 + g_key.key_dug_printf = 0x00; + 48fc: 1062 lrw r3, 0x200004f0 // 4904 + 48fe: 3200 movi r2, 0 + 4900: 07ef br 0x48de // 48de + 4902: 0000 bkpt + 4904: 200004f0 .long 0x200004f0 + +Disassembly of section .text.TouchKey_ReadEnve_Processing: + +00004908 : +/*读取触摸环境值*/ +void TouchKey_ReadEnve_Processing(U8_T *para,U16_T len){ + 4908: 14d0 push r15 + 490a: 142d subi r14, r14, 52 + + //回复数据 + reply_buff[reply_len++] = 0x04; //CMD + + i=9; + reply_buff[reply_len++] = sampling_data0[i]>>8; + 490c: 1149 lrw r2, 0x20000bda // 49b0 + reply_buff[reply_len++] = 0x04; //CMD + 490e: 3304 movi r3, 4 + 4910: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4914: 8a69 ld.h r3, (r2, 0x12) + 4916: 4b68 lsri r3, r3, 8 + 4918: dc6e0001 st.b r3, (r14, 0x1) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 491c: 8a69 ld.h r3, (r2, 0x12) + 491e: dc6e0002 st.b r3, (r14, 0x2) +// reply_buff[reply_len++] = sampling_data0[i]>>8; +// reply_buff[reply_len++] = sampling_data0[i]&0xff; +// reply_buff[reply_len++] = baseline_data0[i]>>8; +// reply_buff[reply_len++] = baseline_data0[i]&0xff; + + TouchKey_Comm_Reply(reply_buff,reply_len); + 4922: 6c3b mov r0, r14 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4924: 1164 lrw r3, 0x20000888 // 49b4 + 4926: 8b29 ld.h r1, (r3, 0x12) + 4928: 4928 lsri r1, r1, 8 + 492a: dc2e0003 st.b r1, (r14, 0x3) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 492e: 8b29 ld.h r1, (r3, 0x12) + 4930: dc2e0004 st.b r1, (r14, 0x4) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4934: 8a2a ld.h r1, (r2, 0x14) + 4936: 4928 lsri r1, r1, 8 + 4938: dc2e0005 st.b r1, (r14, 0x5) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 493c: 8a2a ld.h r1, (r2, 0x14) + 493e: dc2e0006 st.b r1, (r14, 0x6) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4942: 8b2a ld.h r1, (r3, 0x14) + 4944: 4928 lsri r1, r1, 8 + 4946: dc2e0007 st.b r1, (r14, 0x7) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 494a: 8b2a ld.h r1, (r3, 0x14) + 494c: dc2e0008 st.b r1, (r14, 0x8) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4950: 8a2b ld.h r1, (r2, 0x16) + 4952: 4928 lsri r1, r1, 8 + 4954: dc2e0009 st.b r1, (r14, 0x9) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4958: 8a2b ld.h r1, (r2, 0x16) + 495a: dc2e000a st.b r1, (r14, 0xa) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 495e: 8b2b ld.h r1, (r3, 0x16) + 4960: 4928 lsri r1, r1, 8 + 4962: dc2e000b st.b r1, (r14, 0xb) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4966: 8b2b ld.h r1, (r3, 0x16) + 4968: dc2e000c st.b r1, (r14, 0xc) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 496c: 8a2c ld.h r1, (r2, 0x18) + 496e: 4928 lsri r1, r1, 8 + 4970: dc2e000d st.b r1, (r14, 0xd) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 4974: 8a2c ld.h r1, (r2, 0x18) + 4976: dc2e000e st.b r1, (r14, 0xe) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 497a: 8b2c ld.h r1, (r3, 0x18) + 497c: 4928 lsri r1, r1, 8 + 497e: dc2e000f st.b r1, (r14, 0xf) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 4982: 8b2c ld.h r1, (r3, 0x18) + 4984: dc2e0010 st.b r1, (r14, 0x10) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4988: 8a2d ld.h r1, (r2, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]&0xff; + 498a: 8a4d ld.h r2, (r2, 0x1a) + 498c: dc4e0012 st.b r2, (r14, 0x12) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4990: 4928 lsri r1, r1, 8 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4992: 8b4d ld.h r2, (r3, 0x1a) + reply_buff[reply_len++] = sampling_data0[i]>>8; + 4994: dc2e0011 st.b r1, (r14, 0x11) + reply_buff[reply_len++] = baseline_data0[i]>>8; + 4998: 4a48 lsri r2, r2, 8 + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 499a: 8b6d ld.h r3, (r3, 0x1a) + TouchKey_Comm_Reply(reply_buff,reply_len); + 499c: 3115 movi r1, 21 + reply_buff[reply_len++] = baseline_data0[i]>>8; + 499e: dc4e0013 st.b r2, (r14, 0x13) + reply_buff[reply_len++] = baseline_data0[i]&0xff; + 49a2: dc6e0014 st.b r3, (r14, 0x14) + TouchKey_Comm_Reply(reply_buff,reply_len); + 49a6: e3fffe85 bsr 0x46b0 // 46b0 +} + 49aa: 140d addi r14, r14, 52 + 49ac: 1490 pop r15 + 49ae: 0000 bkpt + 49b0: 20000bda .long 0x20000bda + 49b4: 20000888 .long 0x20000888 + +Disassembly of section .text.TouchKey_ResetDevice_Processing: + +000049b8 : +void TouchKey_ResetDevice_Processing(U8_T *para,U16_T len){ + 49b8: 14d0 push r15 + 49ba: 142d subi r14, r14, 52 + U8_T reply_buff[50]; + U8_T reply_len = 0; + + //回复数据 + reply_buff[reply_len++] = 0x05; //CMD + 49bc: 3305 movi r3, 5 + 49be: dc6e0000 st.b r3, (r14, 0x0) + reply_buff[reply_len++] = 0x00; // + + TouchKey_Comm_Reply(reply_buff,reply_len); + 49c2: 3102 movi r1, 2 + reply_buff[reply_len++] = 0x00; // + 49c4: 3300 movi r3, 0 + TouchKey_Comm_Reply(reply_buff,reply_len); + 49c6: 6c3b mov r0, r14 + reply_buff[reply_len++] = 0x00; // + 49c8: dc6e0001 st.b r3, (r14, 0x1) + TouchKey_Comm_Reply(reply_buff,reply_len); + 49cc: e3fffe72 bsr 0x46b0 // 46b0 + 49d0: 0400 br 0x49d0 // 49d0 + +Disassembly of section .text.TouchKey_Comm_Processing: + +000049d4 : + * CMD:0x01 - 设置触摸灵敏度挡位参数 + * CMD:0x02 - 读取触摸灵敏度挡位参数 + * CMD:0x03 - 启动触摸调试模式 + * CMD:0x04 - 读取触摸按键环境值 + * */ +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 49d4: 14d2 push r4-r5, r15 + 49d6: 1421 subi r14, r14, 4 + /*校验数据头*/ + if(data[0] != 0xAF){ + 49d8: 8060 ld.b r3, (r0, 0x0) + 49da: 32af movi r2, 175 + 49dc: 648e cmpne r3, r2 +U8_T TouchKey_Comm_Processing(U8_T *data,U16_T len){ + 49de: 6d43 mov r5, r0 + if(data[0] != 0xAF){ + 49e0: 0c09 bf 0x49f2 // 49f2 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Heard Error:%d",__func__,data[0]); + 49e2: 3000 movi r0, 0 + 49e4: 114b lrw r2, 0xa3fc // 4a90 + 49e6: 112c lrw r1, 0xa8f3 // 4a94 + 49e8: e3fffb90 bsr 0x4108 // 4108 + return 0x01; + 49ec: 3001 movi r0, 1 + break; + } + + + return 0; +} + 49ee: 1401 addi r14, r14, 4 + 49f0: 1492 pop r4-r5, r15 + if(data[1] != g_eeprom.dev_addr){ + 49f2: 114a lrw r2, 0x20000524 // 4a98 + 49f4: 8061 ld.b r3, (r0, 0x1) + 49f6: 8240 ld.b r2, (r2, 0x0) + 49f8: 64ca cmpne r2, r3 + 49fa: 0c08 bf 0x4a0a // 4a0a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Addr Error %d",__func__,data[1]); + 49fc: 3000 movi r0, 0 + 49fe: 1145 lrw r2, 0xa3fc // 4a90 + 4a00: 1127 lrw r1, 0xa905 // 4a9c + 4a02: e3fffb83 bsr 0x4108 // 4108 + return 0x02; + 4a06: 3002 movi r0, 2 + 4a08: 07f3 br 0x49ee // 49ee + if(data[2] != len){ + 4a0a: 8062 ld.b r3, (r0, 0x2) + 4a0c: 750d zexth r4, r3 + 4a0e: 6452 cmpne r4, r1 + 4a10: 0c09 bf 0x4a22 // 4a22 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Len Error %d-%d",__func__,data[2],len); + 4a12: b820 st.w r1, (r14, 0x0) + 4a14: 105f lrw r2, 0xa3fc // 4a90 + 4a16: 1123 lrw r1, 0xa916 // 4aa0 + 4a18: 3000 movi r0, 0 + 4a1a: e3fffb77 bsr 0x4108 // 4108 + return 0x03; + 4a1e: 3003 movi r0, 3 + 4a20: 07e7 br 0x49ee // 49ee + if(data[len-1] != 0xFA){ + 4a22: 60c0 addu r3, r0 + 4a24: 2b00 subi r3, 1 + 4a26: 8360 ld.b r3, (r3, 0x0) + 4a28: 32fa movi r2, 250 + 4a2a: 648e cmpne r3, r2 + 4a2c: 0c07 bf 0x4a3a // 4a3a + Dbg_Println(DBG_BIT_SYS_STATUS,"%s End Error %d",__func__,data[len-1]); + 4a2e: 1059 lrw r2, 0xa3fc // 4a90 + 4a30: 103d lrw r1, 0xa929 // 4aa4 + 4a32: 3000 movi r0, 0 + 4a34: e3fffb6a bsr 0x4108 // 4108 + 4a38: 07f3 br 0x4a1e // 4a1e + if(TouchKey_CheckSum(data,(len - 1)) == 0x00){ + 4a3a: 5c23 subi r1, r4, 1 + 4a3c: 7445 zexth r1, r1 + 4a3e: e3fffe2d bsr 0x4698 // 4698 + 4a42: 3840 cmpnei r0, 0 + 4a44: 0806 bt 0x4a50 // 4a50 + Dbg_Println(DBG_BIT_SYS_STATUS,"%s Check Error",__func__); + 4a46: 1053 lrw r2, 0xa3fc // 4a90 + 4a48: 1038 lrw r1, 0xa939 // 4aa8 + 4a4a: e3fffb5f bsr 0x4108 // 4108 + 4a4e: 07e8 br 0x4a1e // 4a1e + switch(data[4]){ + 4a50: 8504 ld.b r0, (r5, 0x4) + 4a52: 2800 subi r0, 1 + 4a54: 3804 cmphsi r0, 5 + 4a56: 080c bt 0x4a6e // 4a6e + 4a58: 5c37 subi r1, r4, 6 + 4a5a: 2504 addi r5, 5 + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4a5c: 7445 zexth r1, r1 + switch(data[4]){ + 4a5e: e3ffe14f bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4a62: 0803 .short 0x0803 + 4a64: 0014100c .long 0x0014100c + TouchKey_SetPara_Processing(&data[5],(len - 6)); + 4a68: 6c17 mov r0, r5 + 4a6a: e3fffe5b bsr 0x4720 // 4720 + return 0; + 4a6e: 3000 movi r0, 0 + 4a70: 07bf br 0x49ee // 49ee + TouchKey_ReadPara_Processing(&data[5],(len - 6)); + 4a72: 6c17 mov r0, r5 + 4a74: e3fffeb2 bsr 0x47d8 // 47d8 + 4a78: 07fb br 0x4a6e // 4a6e + TouchKey_DugPrintf_Processing(&data[5],(len - 6)); + 4a7a: 6c17 mov r0, r5 + 4a7c: e3ffff2a bsr 0x48d0 // 48d0 + 4a80: 07f7 br 0x4a6e // 4a6e + TouchKey_ReadEnve_Processing(&data[5],(len - 6)); + 4a82: 6c17 mov r0, r5 + 4a84: e3ffff42 bsr 0x4908 // 4908 + 4a88: 07f3 br 0x4a6e // 4a6e + TouchKey_ResetDevice_Processing(&data[5],(len - 6)); + 4a8a: 6c17 mov r0, r5 + 4a8c: e3ffff96 bsr 0x49b8 // 49b8 + 4a90: 0000a3fc .long 0x0000a3fc + 4a94: 0000a8f3 .long 0x0000a8f3 + 4a98: 20000524 .long 0x20000524 + 4a9c: 0000a905 .long 0x0000a905 + 4aa0: 0000a916 .long 0x0000a916 + 4aa4: 0000a929 .long 0x0000a929 + 4aa8: 0000a939 .long 0x0000a939 + +Disassembly of section .text.EEPROM_CheckSum: + +00004aac : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 4aac: 6cc3 mov r3, r0 + 4aae: 6040 addu r1, r0 + U8_T data_sum = 0; + 4ab0: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 4ab6: 783c jmp r15 + data_sum += data[i]; + 4ab8: 8340 ld.b r2, (r3, 0x0) + 4aba: 6008 addu r0, r2 + 4abc: 7400 zextb r0, r0 + 4abe: 2300 addi r3, 1 + 4ac0: 07f9 br 0x4ab2 // 4ab2 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +00004ac4 : + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 4ac4: 14d1 push r4, r15 + 4ac6: 143b subi r14, r14, 108 + 4ac8: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 4aca: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4acc: 3264 movi r2, 100 + 4ace: 3100 movi r1, 0 + 4ad0: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4ad2: b860 st.w r3, (r14, 0x0) + 4ad4: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4ad8: e3ffe8b4 bsr 0x1c40 // 1c40 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 4adc: 6cbb mov r2, r14 + 4ade: 3104 movi r1, 4 + 4ae0: 1014 lrw r0, 0x10000100 // 4b30 + 4ae2: e3fff17f bsr 0x2de0 // 2de0 + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 4ae6: d84e0000 ld.b r2, (r14, 0x0) + 4aea: 33a6 movi r3, 166 + 4aec: 64ca cmpne r2, r3 + 4aee: 0c04 bf 0x4af6 // 4af6 + return 0x00; + } + } + } + + return 0x01; + 4af0: 3001 movi r0, 1 +} + 4af2: 141b addi r14, r14, 108 + 4af4: 1491 pop r4, r15 + read_len |= read_info[1]; + 4af6: d82e0002 ld.b r1, (r14, 0x2) + 4afa: d86e0001 ld.b r3, (r14, 0x1) + 4afe: 4128 lsli r1, r1, 8 + 4b00: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 4b02: 3364 movi r3, 100 + 4b04: 644c cmphs r3, r1 + 4b06: 0ff5 bf 0x4af0 // 4af0 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4b08: 1a02 addi r2, r14, 8 + 4b0a: 100b lrw r0, 0x10000104 // 4b34 + 4b0c: e3fff16a bsr 0x2de0 // 2de0 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 4b10: 3108 movi r1, 8 + 4b12: 1802 addi r0, r14, 8 + 4b14: e3ffffcc bsr 0x4aac // 4aac + 4b18: d86e0003 ld.b r3, (r14, 0x3) + 4b1c: 640e cmpne r3, r0 + 4b1e: 0be9 bt 0x4af0 // 4af0 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 4b20: 3208 movi r2, 8 + 4b22: 1902 addi r1, r14, 8 + 4b24: 6c13 mov r0, r4 + 4b26: e3ffe8d1 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + return 0x00; + 4b2a: 3000 movi r0, 0 + 4b2c: 07e3 br 0x4af2 // 4af2 + 4b2e: 0000 bkpt + 4b30: 10000100 .long 0x10000100 + 4b34: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00004b38 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 4b38: 14d0 push r15 + 4b3a: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 4b3c: 3300 movi r3, 0 + 4b3e: 2b59 subi r3, 90 + 4b40: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4b44: 3308 movi r3, 8 + 4b46: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4b4a: 3300 movi r3, 0 + 4b4c: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4b50: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 4b52: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4b54: 3208 movi r2, 8 + 4b56: 6c0f mov r0, r3 + 4b58: e3ffe8b8 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4b5c: 3108 movi r1, 8 + 4b5e: e3ffffa7 bsr 0x4aac // 4aac + 4b62: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 4b66: 6cbb mov r2, r14 + 4b68: 310c movi r1, 12 + 4b6a: 1004 lrw r0, 0x10000100 // 4b78 + 4b6c: e3fff0ea bsr 0x2d40 // 2d40 + + return 0; +} + 4b70: 3000 movi r0, 0 + 4b72: 141b addi r14, r14, 108 + 4b74: 1490 pop r15 + 4b76: 0000 bkpt + 4b78: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +00004b7c : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4b7c: 14d1 push r4, r15 + 4b7e: 1423 subi r14, r14, 12 + U8_T i=0; + + //以下为本地参数 + + //温差 + if(info->temp_diff > 18 ){ + 4b80: 8062 ld.b r3, (r0, 0x2) + 4b82: 3b12 cmphsi r3, 19 +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 4b84: 6d03 mov r4, r0 + if(info->temp_diff > 18 ){ + 4b86: 0c03 bf 0x4b8c // 4b8c + info->temp_diff = EEPROM_TempDifference_Default; //默认 + 4b88: 3309 movi r3, 9 + 4b8a: a062 st.b r3, (r0, 0x2) + } + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); + 4b8c: 8442 ld.b r2, (r4, 0x2) + 4b8e: 103d lrw r1, 0xa948 // 4c00 + 4b90: 3000 movi r0, 0 + 4b92: e3fffabb bsr 0x4108 // 4108 + + //温度显示单位 + if(info->temp_select > 0x02 ){ + 4b96: 8463 ld.b r3, (r4, 0x3) + 4b98: 3b02 cmphsi r3, 3 + 4b9a: 0c03 bf 0x4ba0 // 4ba0 + info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A + 4b9c: 3300 movi r3, 0 + 4b9e: a463 st.b r3, (r4, 0x3) + } + + + if(info->backlight_en >= 0x02) + 4ba0: 8464 ld.b r3, (r4, 0x4) + 4ba2: 3b01 cmphsi r3, 2 + 4ba4: 0c03 bf 0x4baa // 4baa + { + info->backlight_en = 0x00; + 4ba6: 3300 movi r3, 0 + 4ba8: a464 st.b r3, (r4, 0x4) + } + + if(info->pipe_flag > 0x02) + 4baa: 8461 ld.b r3, (r4, 0x1) + 4bac: 3b02 cmphsi r3, 3 + 4bae: 0c03 bf 0x4bb4 // 4bb4 + { + info->pipe_flag = 0x00; + 4bb0: 3300 movi r3, 0 + 4bb2: a461 st.b r3, (r4, 0x1) + } + + if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) + 4bb4: 8460 ld.b r3, (r4, 0x0) + 4bb6: 2b00 subi r3, 1 + 4bb8: 74cc zextb r3, r3 + 4bba: 32fd movi r2, 253 + 4bbc: 64c8 cmphs r2, r3 + 4bbe: 0803 bt 0x4bc4 // 4bc4 + { + info->dev_addr = 0x01; + 4bc0: 3301 movi r3, 1 + 4bc2: a460 st.b r3, (r4, 0x0) + } + + //按键灵敏度 + if(info->key_sens_level > 2) + 4bc4: 8465 ld.b r3, (r4, 0x5) + 4bc6: 3b02 cmphsi r3, 3 + 4bc8: 0c03 bf 0x4bce // 4bce + { + info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 + 4bca: 3301 movi r3, 1 + 4bcc: a465 st.b r3, (r4, 0x5) + } + + //显示语言 + if(info->langue_select > 2) + 4bce: 8466 ld.b r3, (r4, 0x6) + 4bd0: 3b02 cmphsi r3, 3 + 4bd2: 0c03 bf 0x4bd8 // 4bd8 + { + info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 + 4bd4: 3300 movi r3, 0 + 4bd6: a466 st.b r3, (r4, 0x6) + } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 4bd8: 8467 ld.b r3, (r4, 0x7) + 4bda: 3b02 cmphsi r3, 3 + 4bdc: 0c03 bf 0x4be2 // 4be2 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 4bde: 3301 movi r3, 1 + 4be0: a467 st.b r3, (r4, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 4be2: 8427 ld.b r1, (r4, 0x7) + 4be4: b822 st.w r1, (r14, 0x8) + 4be6: 8420 ld.b r1, (r4, 0x0) + 4be8: b821 st.w r1, (r14, 0x4) + 4bea: 8425 ld.b r1, (r4, 0x5) + 4bec: b820 st.w r1, (r14, 0x0) + 4bee: 8464 ld.b r3, (r4, 0x4) + 4bf0: 8443 ld.b r2, (r4, 0x3) + 4bf2: 1025 lrw r1, 0xa95f // 4c04 + 4bf4: 3000 movi r0, 0 + 4bf6: e3fffa89 bsr 0x4108 // 4108 + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 4bfa: 3000 movi r0, 0 + 4bfc: 1403 addi r14, r14, 12 + 4bfe: 1491 pop r4, r15 + 4c00: 0000a948 .long 0x0000a948 + 4c04: 0000a95f .long 0x0000a95f + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +00004c08 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 4c08: 3301 movi r3, 1 + 4c0a: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 4c0c: 3300 movi r3, 0 + 4c0e: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 4c10: 3309 movi r3, 9 + 4c12: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 4c14: 3300 movi r3, 0 + 4c16: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 4c18: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 4c1a: 3301 movi r3, 1 + 4c1c: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 4c1e: 3300 movi r3, 0 + 4c20: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 4c22: 3301 movi r3, 1 + 4c24: a067 st.b r3, (r0, 0x7) + +} + 4c26: 783c jmp r15 + +Disassembly of section .text.EEPROM_WriteTouchPara: + +00004c28 : +* Description : 保存触摸参数 +* Para : +* level :参数等级 +* para :保存参数 +*******************************************************************************/ +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c28: 14d2 push r4-r5, r15 + 4c2a: 142f subi r14, r14, 60 + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + U8_T save_para[EEPROM_PARA_Size+10]; + UINT16 save_len = sizeof(TOUCHKEY_PARA); + + switch(level){ + 4c2c: 3841 cmpnei r0, 1 +U8_T EEPROM_WriteTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c2e: 6d47 mov r5, r1 + switch(level){ + 4c30: 0c07 bf 0x4c3e // 4c3e + 4c32: 3840 cmpnei r0, 0 + 4c34: 0c27 bf 0x4c82 // 4c82 + 4c36: 3842 cmpnei r0, 2 + 4c38: 0c23 bf 0x4c7e // 4c7e + break; + case 0x02: + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + break; + default: + return 0x01; //不在范围内,不保存 + 4c3a: 3001 movi r0, 1 + 4c3c: 041f br 0x4c7a // 4c7a + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4c3e: 1093 lrw r4, 0x10000280 // 4c88 + break; + } + + memset(save_para,0,sizeof(save_para)); + 4c40: 323c movi r2, 60 + 4c42: 3100 movi r1, 0 + 4c44: 6c3b mov r0, r14 + 4c46: e3ffe7fd bsr 0x1c40 // 1c40 <__memset_fast> + + if(save_len >= EEPROM_PARA_Size) save_len = EEPROM_PARA_Size; + + save_para[0] = EEPROM_APP_SVAE_FLAG; + 4c4a: 3300 movi r3, 0 + 4c4c: 2b59 subi r3, 90 + 4c4e: dc6e0000 st.b r3, (r14, 0x0) + save_para[1] = save_len & 0xFF; + 4c52: 331c movi r3, 28 + 4c54: dc6e0001 st.b r3, (r14, 0x1) + save_para[2] = (save_len >> 8) & 0xFF; + save_para[3] = 0x00; + + //保存的参数 + memcpy(&save_para[4],(uint8_t *)para,save_len); + 4c58: 1b01 addi r3, r14, 4 + 4c5a: 321c movi r2, 28 + 4c5c: 6c0f mov r0, r3 + 4c5e: 6c57 mov r1, r5 + 4c60: e3ffe834 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + save_para[3] = EEPROM_CheckSum(&save_para[4],save_len); + 4c64: 311c movi r1, 28 + 4c66: e3ffff23 bsr 0x4aac // 4aac + 4c6a: dc0e0003 st.b r0, (r14, 0x3) + + save_len += 4; + Page_ProgramData(temp_addr,save_len,save_para); + 4c6e: 6cbb mov r2, r14 + 4c70: 6c13 mov r0, r4 + 4c72: 3120 movi r1, 32 + 4c74: e3fff066 bsr 0x2d40 // 2d40 + + return 0; + 4c78: 3000 movi r0, 0 +} + 4c7a: 140f addi r14, r14, 60 + 4c7c: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4c7e: 1084 lrw r4, 0x10000300 // 4c8c + break; + 4c80: 07e0 br 0x4c40 // 4c40 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4c82: 1084 lrw r4, 0x10000200 // 4c90 + 4c84: 07de br 0x4c40 // 4c40 + 4c86: 0000 bkpt + 4c88: 10000280 .long 0x10000280 + 4c8c: 10000300 .long 0x10000300 + 4c90: 10000200 .long 0x10000200 + +Disassembly of section .text.EEPROM_ReadTouchPara: + +00004c94 : +* Description : 读取触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c94: 14d2 push r4-r5, r15 + 4c96: 142f subi r14, r14, 60 + U8_T read_info[6]; + U8_T para_data[EEPROM_PARA_Size+2]; + U16_T read_len = 0; + U32_T temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + + switch(level){ + 4c98: 3841 cmpnei r0, 1 +U8_T EEPROM_ReadTouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4c9a: 6d07 mov r4, r1 + switch(level){ + 4c9c: 0c3a bf 0x4d10 // 4d10 + 4c9e: 3840 cmpnei r0, 0 + 4ca0: 0c05 bf 0x4caa // 4caa + 4ca2: 3842 cmpnei r0, 2 + 4ca4: 0c34 bf 0x4d0c // 4d0c + } + }else{ + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + } + + return 0x01; + 4ca6: 3001 movi r0, 1 + 4ca8: 0430 br 0x4d08 // 4d08 + temp_addr = EEPROM_TOUCHPARA1_SaveAddr; + 4caa: 11a1 lrw r5, 0x10000200 // 4d2c + memset(read_info,0,sizeof(read_info)); + 4cac: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4cae: 3234 movi r2, 52 + 4cb0: 3100 movi r1, 0 + 4cb2: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4cb4: b860 st.w r3, (r14, 0x0) + 4cb6: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4cba: e3ffe7c3 bsr 0x1c40 // 1c40 <__memset_fast> + ReadDataArry_U8(temp_addr,4,read_info); + 4cbe: 6cbb mov r2, r14 + 4cc0: 3104 movi r1, 4 + 4cc2: 6c17 mov r0, r5 + 4cc4: e3fff08e bsr 0x2de0 // 2de0 + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 4cc8: d84e0000 ld.b r2, (r14, 0x0) + 4ccc: 33a6 movi r3, 166 + 4cce: 64ca cmpne r2, r3 + 4cd0: 0827 bt 0x4d1e // 4d1e + read_len |= read_info[1]; + 4cd2: d84e0002 ld.b r2, (r14, 0x2) + 4cd6: d86e0001 ld.b r3, (r14, 0x1) + 4cda: 4248 lsli r2, r2, 8 + 4cdc: 6c8c or r2, r3 + if((read_len <= EEPROM_PARA_Size) && (read_len == sizeof(TOUCHKEY_PARA))){ + 4cde: 3a5c cmpnei r2, 28 + 4ce0: 081a bt 0x4d14 // 4d14 + temp_addr += EEPROM_Offset_Data; + 4ce2: 5d0e addi r0, r5, 4 + ReadDataArry_U8(temp_addr,read_len,para_data); + 4ce4: 1a02 addi r2, r14, 8 + 4ce6: 311c movi r1, 28 + 4ce8: e3fff07c bsr 0x2de0 // 2de0 + if(EEPROM_CheckSum(para_data,sizeof(TOUCHKEY_PARA)) == read_info[3]){ + 4cec: 311c movi r1, 28 + 4cee: 1802 addi r0, r14, 8 + 4cf0: e3fffede bsr 0x4aac // 4aac + 4cf4: d86e0003 ld.b r3, (r14, 0x3) + 4cf8: 640e cmpne r3, r0 + 4cfa: 0bd6 bt 0x4ca6 // 4ca6 + memcpy((uint8_t *)para,para_data,sizeof(TOUCHKEY_PARA)); + 4cfc: 321c movi r2, 28 + 4cfe: 1902 addi r1, r14, 8 + 4d00: 6c13 mov r0, r4 + 4d02: e3ffe7e3 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + return 0x00; + 4d06: 3000 movi r0, 0 +} + 4d08: 140f addi r14, r14, 60 + 4d0a: 1492 pop r4-r5, r15 + temp_addr = EEPROM_TOUCHPARA3_SaveAddr; + 4d0c: 10a9 lrw r5, 0x10000300 // 4d30 + break; + 4d0e: 07cf br 0x4cac // 4cac + temp_addr = EEPROM_TOUCHPARA2_SaveAddr; + 4d10: 10a9 lrw r5, 0x10000280 // 4d34 + 4d12: 07cd br 0x4cac // 4cac + Dbg_Println(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara LEN Error:%d",read_len); + 4d14: 1029 lrw r1, 0xa9b9 // 4d38 + 4d16: 3000 movi r0, 0 + 4d18: e3fff9f8 bsr 0x4108 // 4108 + 4d1c: 07c5 br 0x4ca6 // 4ca6 + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"EEPROM_ReadTouchPara Flag Err",read_info,4); + 4d1e: 3304 movi r3, 4 + 4d20: 6cbb mov r2, r14 + 4d22: 1027 lrw r1, 0xa9db // 4d3c + 4d24: 3000 movi r0, 0 + 4d26: e3fff9f7 bsr 0x4114 // 4114 + 4d2a: 07be br 0x4ca6 // 4ca6 + 4d2c: 10000200 .long 0x10000200 + 4d30: 10000300 .long 0x10000300 + 4d34: 10000280 .long 0x10000280 + 4d38: 0000a9b9 .long 0x0000a9b9 + 4d3c: 0000a9db .long 0x0000a9db + +Disassembly of section .text.EEPROM_Validate_TouchPara: + +00004d40 : +* Description : 校验触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +U8_T EEPROM_Validate_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4d40: 14c4 push r4-r7 + 4d42: 1421 subi r14, r14, 4 + U8_T i=0,rev = 0; + + /*Baseline 更新速度 1~100*/ + if( (para->base_speed < 1) || (para->base_speed > 100) ){ + 4d44: 8163 ld.b r3, (r1, 0x3) + 4d46: 2b00 subi r3, 1 + 4d48: 74cc zextb r3, r3 + 4d4a: 3263 movi r2, 99 + 4d4c: 64c8 cmphs r2, r3 + 4d4e: 084e bt 0x4dea // 4dea + para->base_speed = 20; //默认参数 - 20 + 4d50: 3314 movi r3, 20 + 4d52: a163 st.b r3, (r1, 0x3) + rev = 0x01; + 4d54: 3301 movi r3, 1 + } + + /*press_debounce 触发消抖次数 1~10*/ + if((para->press_debounce < 1) || (para->press_debounce > 10) ){ + 4d56: 8140 ld.b r2, (r1, 0x0) + 4d58: 2a00 subi r2, 1 + 4d5a: 7488 zextb r2, r2 + 4d5c: 3a09 cmphsi r2, 10 + 4d5e: 0c04 bf 0x4d66 // 4d66 + para->press_debounce = 3; //默认参数 - 6 + 4d60: 3303 movi r3, 3 + 4d62: a160 st.b r3, (r1, 0x0) + rev = 0x01; + 4d64: 3301 movi r3, 1 + } + + /*release_debounce 释放消抖次数 1~10*/ + if((para->release_debounce < 1) || (para->release_debounce > 10) ){ + 4d66: 8141 ld.b r2, (r1, 0x1) + 4d68: 2a00 subi r2, 1 + 4d6a: 7488 zextb r2, r2 + 4d6c: 3a09 cmphsi r2, 10 + 4d6e: 0c04 bf 0x4d76 // 4d76 + para->release_debounce = 3; //默认参数 - 5 + 4d70: 3303 movi r3, 3 + 4d72: a161 st.b r3, (r1, 0x1) + rev = 0x01; + 4d74: 3301 movi r3, 1 + } + + /*multiTimes_filt 释放消抖次数 1~100*/ + if((para->multiTimes_filt < 1) || (para->multiTimes_filt > 100) ){ + 4d76: 8142 ld.b r2, (r1, 0x2) + 4d78: 2a00 subi r2, 1 + 4d7a: 7488 zextb r2, r2 + 4d7c: 3463 movi r4, 99 + 4d7e: 6490 cmphs r4, r2 + 4d80: 0804 bt 0x4d88 // 4d88 + para->multiTimes_filt = 40; //默认参数 - 40 + 4d82: 3328 movi r3, 40 + 4d84: a162 st.b r3, (r1, 0x2) + rev = 0x01; + 4d86: 3301 movi r3, 1 + } + + /*longpress_time 按键长按强制更新时间设置 1~32*/ + if((para->longpress_time < 1) || (para->longpress_time > 32) ){ + 4d88: 9146 ld.w r2, (r1, 0x18) + 4d8a: 2a00 subi r2, 1 + 4d8c: 3a1f cmphsi r2, 32 + 4d8e: 0c04 bf 0x4d96 // 4d96 + para->longpress_time = 16; //默认参数 - 16 + 4d90: 3310 movi r3, 16 + 4d92: b166 st.w r3, (r1, 0x18) + rev = 0x01; + 4d94: 3301 movi r3, 1 + if (i == 0){ + para->senprd[i] = 200; //默认参数 - 250 + }else if (i == 1){ + para->senprd[i] = 265; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 270; //默认参数 - 320 + 4d96: 3587 movi r5, 135 + 4d98: 45a1 lsli r5, r5, 1 + 4d9a: 598e addi r4, r1, 4 + rev = 0x01; + 4d9c: 3200 movi r2, 0 + }else if (i == 3){ + para->senprd[i] = 265; //默认参数 - 320 + 4d9e: 11e0 lrw r7, 0x109 // 4e1c + para->senprd[i] = 270; //默认参数 - 320 + 4da0: dcae1001 st.h r5, (r14, 0x2) + if((para->senprd[i] < 10) || (para->senprd[i] > 1000) ){ + 4da4: 8ca0 ld.h r5, (r4, 0x0) + 4da6: 2d09 subi r5, 10 + 4da8: 7555 zexth r5, r5 + 4daa: 10dc lrw r6, 0x3de // 4e18 + 4dac: 6558 cmphs r6, r5 + 4dae: 0806 bt 0x4dba // 4dba + if (i == 0){ + 4db0: 3a40 cmpnei r2, 0 + 4db2: 081e bt 0x4dee // 4dee + para->senprd[i] = 200; //默认参数 - 250 + 4db4: 33c8 movi r3, 200 + 4db6: a962 st.h r3, (r1, 0x4) + para->senprd[i] = 250; //默认参数 - 280 + }else { + para->senprd[i] = 250; //默认参数 - 280 + } + + rev = 0x01; + 4db8: 3301 movi r3, 1 +// +// Dbg_Println(DBG_BIT_SYS_STATUS,"%s releaselevel %d:%d",__func__,i,para->releaselevel[i]); +// } + + /*triggerlevel 触摸触发阈值 20~200*/ + if((para->triggerlevel[i] < 20) || (para->triggerlevel[i] > 1000) ){ + 4dba: 8ca5 ld.h r5, (r4, 0xa) + 4dbc: 2d13 subi r5, 20 + 4dbe: 36f5 movi r6, 245 + 4dc0: 7555 zexth r5, r5 + 4dc2: 46c2 lsli r6, r6, 2 + 4dc4: 6558 cmphs r6, r5 + 4dc6: 080a bt 0x4dda // 4dda + + switch(level){ + 4dc8: 3841 cmpnei r0, 1 + 4dca: 0c25 bf 0x4e14 // 4e14 + 4dcc: 3840 cmpnei r0, 0 + 4dce: 0c21 bf 0x4e10 // 4e10 + 4dd0: 3842 cmpnei r0, 2 + 4dd2: 0821 bt 0x4e14 // 4e14 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 80 + 4dd4: 3350 movi r3, 80 + break; + case 0x00: + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + break; + default: + para->triggerlevel[i] = 100; + 4dd6: ac65 st.h r3, (r4, 0xa) + break; + } + + rev = 0x01; + 4dd8: 3301 movi r3, 1 + for(i=0;i + } + } + + return rev; +} + 4de4: 6c0f mov r0, r3 + 4de6: 1401 addi r14, r14, 4 + 4de8: 1484 pop r4-r7 + U8_T i=0,rev = 0; + 4dea: 3300 movi r3, 0 + 4dec: 07b5 br 0x4d56 // 4d56 + }else if (i == 1){ + 4dee: 3a41 cmpnei r2, 1 + 4df0: 0803 bt 0x4df6 // 4df6 + para->senprd[i] = 265; //默认参数 - 320 + 4df2: a9e3 st.h r7, (r1, 0x6) + 4df4: 07e2 br 0x4db8 // 4db8 + }else if (i == 2){ + 4df6: 3a42 cmpnei r2, 2 + 4df8: 0805 bt 0x4e02 // 4e02 + para->senprd[i] = 270; //默认参数 - 320 + 4dfa: d86e1001 ld.h r3, (r14, 0x2) + 4dfe: a964 st.h r3, (r1, 0x8) + 4e00: 07dc br 0x4db8 // 4db8 + }else if (i == 3){ + 4e02: 3a43 cmpnei r2, 3 + 4e04: 0803 bt 0x4e0a // 4e0a + para->senprd[i] = 265; //默认参数 - 320 + 4e06: a9e5 st.h r7, (r1, 0xa) + 4e08: 07d8 br 0x4db8 // 4db8 + para->senprd[i] = 250; //默认参数 - 280 + 4e0a: 33fa movi r3, 250 + 4e0c: a966 st.h r3, (r1, 0xc) + 4e0e: 07d5 br 0x4db8 // 4db8 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + 4e10: 3378 movi r3, 120 + 4e12: 07e2 br 0x4dd6 // 4dd6 + para->triggerlevel[i] = 100; + 4e14: 3364 movi r3, 100 + 4e16: 07e0 br 0x4dd6 // 4dd6 + 4e18: 000003de .long 0x000003de + 4e1c: 00000109 .long 0x00000109 + +Disassembly of section .text.EEPROM_Default_TouchPara: + +00004e20 : +* Description : 设置默认触摸参数 +* Para : +* level :参数等级 +* para :读取参数 +*******************************************************************************/ +void EEPROM_Default_TouchPara(U8_T level,TOUCHKEY_PARA *para){ + 4e20: 14c3 push r4-r6 + U8_T i=0; + + para->base_speed = 20; //默认参数 - 20 + 4e22: 3314 movi r3, 20 + 4e24: a163 st.b r3, (r1, 0x3) + para->press_debounce = 3; //默认参数 - 6 + 4e26: 3303 movi r3, 3 + 4e28: a160 st.b r3, (r1, 0x0) + para->release_debounce = 3; //默认参数 - 5 + 4e2a: a161 st.b r3, (r1, 0x1) + para->multiTimes_filt = 40; //默认参数 - 40 + 4e2c: 3328 movi r3, 40 + 4e2e: a162 st.b r3, (r1, 0x2) + 4e30: 320e movi r2, 14 + para->longpress_time = 16; //默认参数 - 8 + 4e32: 3310 movi r3, 16 + if (i == 0){ + para->senprd[i] = 200; //默认参数 - 250 + }else if (i == 1){ + para->senprd[i] = 265; //默认参数 - 320 + }else if (i == 2){ + para->senprd[i] = 270; //默认参数 - 320 + 4e34: 3487 movi r4, 135 + para->longpress_time = 16; //默认参数 - 8 + 4e36: b166 st.w r3, (r1, 0x18) + 4e38: 6084 addu r2, r1 + for(i=0;isenprd[i] = 265; //默认参数 - 320 + 4e3c: 10b4 lrw r5, 0x109 // 4e8c + para->senprd[i] = 270; //默认参数 - 320 + 4e3e: 4481 lsli r4, r4, 1 + if (i == 0){ + 4e40: 3b40 cmpnei r3, 0 + 4e42: 0811 bt 0x4e64 // 4e64 + para->senprd[i] = 200; //默认参数 - 250 + 4e44: 36c8 movi r6, 200 + 4e46: a9c2 st.h r6, (r1, 0x4) +// para->updatevalue[i] = 20; //默认参数 - 20 +// para->disupdatevalue[i] = 30; //默认参数 - 30 +// para->releaselevel[i] = 50; //默认参数 - 50 + + /*triggerlevel 触摸触发阈值 20~200*/ + switch(level){ + 4e48: 3841 cmpnei r0, 1 + 4e4a: 0c1e bf 0x4e86 // 4e86 + 4e4c: 3840 cmpnei r0, 0 + 4e4e: 0c1a bf 0x4e82 // 4e82 + 4e50: 3842 cmpnei r0, 2 + 4e52: 081a bt 0x4e86 // 4e86 + case 0x02: + para->triggerlevel[i] = 80; //高灵敏度 默认参数 - 80 + 4e54: 3650 movi r6, 80 + for(i=0;itriggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + break; + default: + para->triggerlevel[i] = 100; + 4e5c: aac0 st.h r6, (r2, 0x0) + 4e5e: 2201 addi r2, 2 + for(i=0;i + break; + } + + } +} + 4e62: 1483 pop r4-r6 + }else if (i == 1){ + 4e64: 3b41 cmpnei r3, 1 + 4e66: 0803 bt 0x4e6c // 4e6c + para->senprd[i] = 265; //默认参数 - 320 + 4e68: a9a3 st.h r5, (r1, 0x6) + 4e6a: 07ef br 0x4e48 // 4e48 + }else if (i == 2){ + 4e6c: 3b42 cmpnei r3, 2 + 4e6e: 0803 bt 0x4e74 // 4e74 + para->senprd[i] = 270; //默认参数 - 320 + 4e70: a984 st.h r4, (r1, 0x8) + 4e72: 07eb br 0x4e48 // 4e48 + }else if (i == 3){ + 4e74: 3b43 cmpnei r3, 3 + 4e76: 0803 bt 0x4e7c // 4e7c + para->senprd[i] = 265; //默认参数 - 320 + 4e78: a9a5 st.h r5, (r1, 0xa) + 4e7a: 07e7 br 0x4e48 // 4e48 + para->senprd[i] = 250; //默认参数 - 280 + 4e7c: 36fa movi r6, 250 + 4e7e: a9c6 st.h r6, (r1, 0xc) + 4e80: 07e4 br 0x4e48 // 4e48 + para->triggerlevel[i] = 120; //低灵敏度 默认参数 - 120 + 4e82: 3678 movi r6, 120 + 4e84: 07e9 br 0x4e56 // 4e56 + para->triggerlevel[i] = 100; + 4e86: 3664 movi r6, 100 + 4e88: 07e7 br 0x4e56 // 4e56 + 4e8a: 0000 .short 0x0000 + 4e8c: 00000109 .long 0x00000109 + +Disassembly of section .text.EEPROM_TouchPara_Printf: + +00004e90 : +* Function Name : EEPROM_TouchPara_Printf +* Description : 打印触摸参数 +* Para : +* para :参数 +*******************************************************************************/ +void EEPROM_TouchPara_Printf(TOUCHKEY_PARA *para){ + 4e90: 14d4 push r4-r7, r15 + 4e92: 6d03 mov r4, r0 + U8_T i=0; + + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara base_speed:%d",para->base_speed); + 4e94: 8043 ld.b r2, (r0, 0x3) + 4e96: 1038 lrw r1, 0xa9f9 // 4ef4 + 4e98: 3000 movi r0, 0 + 4e9a: e3fff937 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara press_debounce:%d",para->press_debounce); + 4e9e: 8440 ld.b r2, (r4, 0x0) + 4ea0: 1036 lrw r1, 0xaa11 // 4ef8 + 4ea2: 3000 movi r0, 0 + 4ea4: e3fff932 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara release_debounce:%d",para->release_debounce); + 4ea8: 8441 ld.b r2, (r4, 0x1) + 4eaa: 1035 lrw r1, 0xaa2d // 4efc + 4eac: 3000 movi r0, 0 + 4eae: e3fff92d bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara multiTimes_filt:%d",para->multiTimes_filt); + 4eb2: 8442 ld.b r2, (r4, 0x2) + 4eb4: 1033 lrw r1, 0xaa4b // 4f00 + 4eb6: 3000 movi r0, 0 + 4eb8: e3fff928 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara longpress_time:%d",para->longpress_time); + 4ebc: 9446 ld.w r2, (r4, 0x18) + 4ebe: 3000 movi r0, 0 + 4ec0: 1031 lrw r1, 0xaa68 // 4f04 + 4ec2: e3fff923 bsr 0x4108 // 4108 + 4ec6: 2403 addi r4, 4 + 4ec8: 3500 movi r5, 0 + + for(i=0;isenprd[i]); + 4eca: 10f0 lrw r7, 0xaa84 // 4f08 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4ecc: 10d0 lrw r6, 0xaa9d // 4f0c + SYSCON_IWDCNT_Reload(); //IWDT Clear + 4ece: e3ffe84d bsr 0x1f68 // 1f68 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara senprd CH%d:%d",i,para->senprd[i]); + 4ed2: 8c60 ld.h r3, (r4, 0x0) + 4ed4: 6c97 mov r2, r5 + 4ed6: 6c5f mov r1, r7 + 4ed8: 3000 movi r0, 0 + 4eda: e3fff917 bsr 0x4108 // 4108 + Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara triggerlevel CH%d:%d",i,para->triggerlevel[i]); + 4ede: 8c65 ld.h r3, (r4, 0xa) + 4ee0: 6c97 mov r2, r5 + 4ee2: 6c5b mov r1, r6 + 4ee4: 3000 movi r0, 0 + 4ee6: 2500 addi r5, 1 + 4ee8: e3fff910 bsr 0x4108 // 4108 + for(i=0;i +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara updatevalue CH%d:%d%%",i,para->updatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara disupdatevalue CH%d:%d%%",i,para->disupdatevalue[i]); +// Dbg_Println(DBG_BIT_SYS_STATUS,"TouchPara releaselevel CH%d:%d%%",i,para->releaselevel[i]); + } + +} + 4ef2: 1494 pop r4-r7, r15 + 4ef4: 0000a9f9 .long 0x0000a9f9 + 4ef8: 0000aa11 .long 0x0000aa11 + 4efc: 0000aa2d .long 0x0000aa2d + 4f00: 0000aa4b .long 0x0000aa4b + 4f04: 0000aa68 .long 0x0000aa68 + 4f08: 0000aa84 .long 0x0000aa84 + 4f0c: 0000aa9d .long 0x0000aa9d + +Disassembly of section .text.EEPROM_ReadMCUDevInfo: + +00004f10 : +/******************************************************************************* +* Function Name : EEPROM_ReadMCUDevInfo +* Description : 从EEPROM中读取设备信息 +*******************************************************************************/ +U8_T EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4f10: 14d1 push r4, r15 + 4f12: 1432 subi r14, r14, 72 + 4f14: 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)); + 4f16: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 4f18: 3240 movi r2, 64 + 4f1a: 3100 movi r1, 0 + 4f1c: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 4f1e: b860 st.w r3, (r14, 0x0) + 4f20: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 4f24: e3ffe68e bsr 0x1c40 // 1c40 <__memset_fast> + + ReadDataArry_U8(EEPROM_MCUDevInfo_Address,4,read_info); + 4f28: 3080 movi r0, 128 + 4f2a: 6cbb mov r2, r14 + 4f2c: 3104 movi r1, 4 + 4f2e: 4015 lsli r0, r0, 21 + 4f30: e3ffef58 bsr 0x2de0 // 2de0 + + if(read_info[0] == EEPROM_SVAE_FLAG){ + 4f34: d84e0000 ld.b r2, (r14, 0x0) + 4f38: 33ae movi r3, 174 + 4f3a: 64ca cmpne r2, r3 + 4f3c: 0c04 bf 0x4f44 // 4f44 + return 0x00; + } + } + } + + return 0x01; + 4f3e: 3001 movi r0, 1 +} + 4f40: 1412 addi r14, r14, 72 + 4f42: 1491 pop r4, r15 + read_len |= read_info[1]; + 4f44: d82e0002 ld.b r1, (r14, 0x2) + 4f48: d86e0001 ld.b r3, (r14, 0x1) + 4f4c: 4128 lsli r1, r1, 8 + 4f4e: 6c4c or r1, r3 + if(read_len <= EEPROM_DATA_Size_Max){ + 4f50: 3340 movi r3, 64 + 4f52: 644c cmphs r3, r1 + 4f54: 0ff5 bf 0x4f3e // 4f3e + ReadDataArry_U8(EEPROM_MCUDevInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 4f56: 1a02 addi r2, r14, 8 + 4f58: 1009 lrw r0, 0x10000004 // 4f7c + 4f5a: e3ffef43 bsr 0x2de0 // 2de0 + if(EEPROM_CheckSum(para_data,sizeof(E_MCU_DEV_INFO)) == read_info[3]){ + 4f5e: 3125 movi r1, 37 + 4f60: 1802 addi r0, r14, 8 + 4f62: e3fffda5 bsr 0x4aac // 4aac + 4f66: d86e0003 ld.b r3, (r14, 0x3) + 4f6a: 640e cmpne r3, r0 + 4f6c: 0be9 bt 0x4f3e // 4f3e + memcpy((uint8_t *)info,para_data,sizeof(E_MCU_DEV_INFO)); + 4f6e: 3225 movi r2, 37 + 4f70: 1902 addi r1, r14, 8 + 4f72: 6c13 mov r0, r4 + 4f74: e3ffe6aa bsr 0x1cc8 // 1cc8 <__memcpy_fast> + return 0x00; + 4f78: 3000 movi r0, 0 + 4f7a: 07e3 br 0x4f40 // 4f40 + 4f7c: 10000004 .long 0x10000004 + +Disassembly of section .text.EEPROM_WriteMCUDevInfo: + +00004f80 : +/******************************************************************************* +* Function Name : EEPROM_WriteMCUDevInfo +* Description : 将设备信息写入到EEPROM中 +*******************************************************************************/ +U8_T EEPROM_WriteMCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4f80: 14d0 push r15 + 4f82: 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; + 4f84: 3300 movi r3, 0 + 4f86: 2b51 subi r3, 82 + 4f88: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 4f8c: 3325 movi r3, 37 + 4f8e: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 4f92: 3300 movi r3, 0 + 4f94: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4f98: 1b01 addi r3, r14, 4 +{ + 4f9a: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 4f9c: 3225 movi r2, 37 + 4f9e: 6c0f mov r0, r3 + 4fa0: e3ffe694 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 4fa4: 3125 movi r1, 37 + 4fa6: e3fffd83 bsr 0x4aac // 4aac + 4faa: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_MCUDevInfo_Address,save_len,save_data); + 4fae: 3080 movi r0, 128 + 4fb0: 4015 lsli r0, r0, 21 + 4fb2: 6cbb mov r2, r14 + 4fb4: 3129 movi r1, 41 + 4fb6: e3ffeec5 bsr 0x2d40 // 2d40 + + return 0; +} + 4fba: 3000 movi r0, 0 + 4fbc: 1412 addi r14, r14, 72 + 4fbe: 1490 pop r15 + +Disassembly of section .text.EEPROM_Default_MCUDevInfo: + +00004fc0 : +/******************************************************************************* +* Function Name : EEPROM_Default_MCUDevInfo +* Description : EEPROM中参数恢复默认值,且将默认参数保存至EEPROM中 +*******************************************************************************/ +void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4fc0: 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 = 0x01; + 4fc2: 3301 movi r3, 1 + 4fc4: a060 st.b r3, (r0, 0x0) + info->dev_type = Project_Type; + 4fc6: 3307 movi r3, 7 + 4fc8: a061 st.b r3, (r0, 0x1) + info->dev_app_ver = Project_FW_Version; + 4fca: 3305 movi r3, 5 + 4fcc: a063 st.b r3, (r0, 0x3) + info->dev_name_len = sizeof(Peoject_Name); + + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4fce: 58b2 addi r5, r0, 5 + info->dev_name_len = sizeof(Peoject_Name); + 4fd0: 3310 movi r3, 16 + 4fd2: a064 st.b r3, (r0, 0x4) +{ + 4fd4: 6d03 mov r4, r0 + memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size); + 4fd6: 3220 movi r2, 32 + 4fd8: 3100 movi r1, 0 + 4fda: 6c17 mov r0, r5 + 4fdc: e3ffe632 bsr 0x1c40 // 1c40 <__memset_fast> + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 4fe0: 3210 movi r2, 16 + 4fe2: 1025 lrw r1, 0xaabc // 4ff4 + 4fe4: 6c17 mov r0, r5 + 4fe6: e3ffe671 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + + EEPROM_WriteMCUDevInfo(info); + 4fea: 6c13 mov r0, r4 + 4fec: e3ffffca bsr 0x4f80 // 4f80 +#endif +} + 4ff0: 1492 pop r4-r5, r15 + 4ff2: 0000 bkpt + 4ff4: 0000aabc .long 0x0000aabc + +Disassembly of section .text.EEPROM_Validate_MCUDevInfo: + +00004ff8 : +* Description : 校验从EEPROM 中读取的参数是否正确,如果不正确的话,便将当前正确的参数写入 + APP区域中,判断APP参数与EEPROM中记录的是否一致 + Boot区域中,判断Boot参数与EEPROM中记录的是否一致 +*******************************************************************************/ +void EEPROM_Validate_MCUDevInfo(E_MCU_DEV_INFO *info) +{ + 4ff8: 14d3 push r4-r6, r15 + } +#elif (Project_Area == 0x02) + /*APP 区域*/ + U8_T save_flag = 0; + + if(info->dev_app_ver != Project_FW_Version) + 4ffa: 8063 ld.b r3, (r0, 0x3) + 4ffc: 3b45 cmpnei r3, 5 +{ + 4ffe: 6d03 mov r4, r0 + if(info->dev_app_ver != Project_FW_Version) + 5000: 0c21 bf 0x5042 // 5042 + { + info->dev_app_ver = Project_FW_Version; + 5002: 3305 movi r3, 5 + 5004: a063 st.b r3, (r0, 0x3) + save_flag = 0x01; + 5006: 3501 movi r5, 1 + } + + if(info->dev_type != Project_Type) + 5008: 8461 ld.b r3, (r4, 0x1) + 500a: 3b47 cmpnei r3, 7 + 500c: 0c04 bf 0x5014 // 5014 + { + info->dev_type = Project_Type; + 500e: 3307 movi r3, 7 + 5010: a461 st.b r3, (r4, 0x1) + save_flag = 0x01; + 5012: 3501 movi r5, 1 + } + + if(info->dev_name_len != sizeof(Peoject_Name)) + 5014: 8464 ld.b r3, (r4, 0x4) + 5016: 3b50 cmpnei r3, 16 + 5018: 0c04 bf 0x5020 // 5020 + { + info->dev_name_len = sizeof(Peoject_Name); + 501a: 3310 movi r3, 16 + 501c: a464 st.b r3, (r4, 0x4) + save_flag = 0x01; + 501e: 3501 movi r5, 1 + } + + if(strncmp((char *)info->dev_name,(char *)Peoject_Name,sizeof(Peoject_Name))) + 5020: 5cd2 addi r6, r4, 5 + 5022: 3210 movi r2, 16 + 5024: 102a lrw r1, 0xaabc // 504c + 5026: 6c1b mov r0, r6 + 5028: e3ffe682 bsr 0x1d2c // 1d2c <__GI_strncmp> + 502c: 3840 cmpnei r0, 0 + 502e: 0c0c bf 0x5046 // 5046 + { + memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len); + 5030: 8444 ld.b r2, (r4, 0x4) + 5032: 1027 lrw r1, 0xaabc // 504c + 5034: 6c1b mov r0, r6 + 5036: e3ffe649 bsr 0x1cc8 // 1cc8 <__memcpy_fast> + save_flag = 0x01; + } + + if(save_flag == 0x01) + { + EEPROM_WriteMCUDevInfo(info); + 503a: 6c13 mov r0, r4 + 503c: e3ffffa2 bsr 0x4f80 // 4f80 + } +#endif +} + 5040: 0405 br 0x504a // 504a + U8_T save_flag = 0; + 5042: 3500 movi r5, 0 + 5044: 07e2 br 0x5008 // 5008 + if(save_flag == 0x01) + 5046: 3d41 cmpnei r5, 1 + 5048: 0ff9 bf 0x503a // 503a +} + 504a: 1493 pop r4-r6, r15 + 504c: 0000aabc .long 0x0000aabc + +Disassembly of section .text.EEPROM_Init: + +00005050 : +void EEPROM_Init(void){ + 5050: 14d3 push r4-r6, r15 + EnIFCClk; //使能 IFC 时钟 + 5052: 107e lrw r3, 0x20000060 // 50c8 + 5054: 3201 movi r2, 1 + 5056: 9360 ld.w r3, (r3, 0x0) + 5058: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 505a: 9345 ld.w r2, (r3, 0x14) + 505c: 3aa1 bseti r2, 1 + 505e: 3ab0 bseti r2, 16 + 5060: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 5062: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 5064: 109a lrw r4, 0x20000524 // 50cc + delay_nms(10); + 5066: e3ffefd5 bsr 0x3010 // 3010 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 506a: 3208 movi r2, 8 + 506c: 3100 movi r1, 0 + 506e: 6c13 mov r0, r4 + 5070: e3ffe5e8 bsr 0x1c40 // 1c40 <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 5074: 6c13 mov r0, r4 + 5076: e3fffd27 bsr 0x4ac4 // 4ac4 + if(rev == 0x00){ + 507a: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 507c: 6c13 mov r0, r4 + if(rev == 0x00){ + 507e: 0816 bt 0x50aa // 50aa + EEPROM_Validate_ParaInfo(&g_eeprom); + 5080: e3fffd7e bsr 0x4b7c // 4b7c + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 5084: 10b3 lrw r5, 0x2000052c // 50d0 + 5086: 6c17 mov r0, r5 + 5088: e3ffff44 bsr 0x4f10 // 4f10 + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 508c: 8460 ld.b r3, (r4, 0x0) + 508e: 8540 ld.b r2, (r5, 0x0) + 5090: 64ca cmpne r2, r3 + rev = EEPROM_ReadMCUDevInfo(&g_mcu_dev); + 5092: 6d83 mov r6, r0 + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 5094: 0c05 bf 0x509e // 509e + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 5096: 6c17 mov r0, r5 + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 5098: a560 st.b r3, (r5, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 509a: e3ffff73 bsr 0x4f80 // 4f80 + if(rev == 0x00){ + 509e: 3e40 cmpnei r6, 0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 50a0: 100c lrw r0, 0x2000052c // 50d0 + if(rev == 0x00){ + 50a2: 080f bt 0x50c0 // 50c0 + EEPROM_Validate_MCUDevInfo(&g_mcu_dev); + 50a4: e3ffffaa bsr 0x4ff8 // 4ff8 +} + 50a8: 1493 pop r4-r6, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 50aa: e3fffdaf bsr 0x4c08 // 4c08 + EEPROM_WriteParaInfo(&g_eeprom); + 50ae: 6c13 mov r0, r4 + 50b0: e3fffd44 bsr 0x4b38 // 4b38 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 50b4: 8441 ld.b r2, (r4, 0x1) + 50b6: 1028 lrw r1, 0xaacc // 50d4 + 50b8: 3000 movi r0, 0 + 50ba: e3fff827 bsr 0x4108 // 4108 + 50be: 07e3 br 0x5084 // 5084 + EEPROM_Default_MCUDevInfo(&g_mcu_dev); + 50c0: e3ffff80 bsr 0x4fc0 // 4fc0 +} + 50c4: 07f2 br 0x50a8 // 50a8 + 50c6: 0000 bkpt + 50c8: 20000060 .long 0x20000060 + 50cc: 20000524 .long 0x20000524 + 50d0: 2000052c .long 0x2000052c + 50d4: 0000aacc .long 0x0000aacc + +Disassembly of section .text.ADC_Init: + +000050d8 : +#include "includes.h" + +ADC_INFO_G g_adc; + +void ADC_Init(void){ + 50d8: 14d0 push r15 + 50da: 1422 subi r14, r14, 8 + ADC12_RESET_VALUE(); //ADC所有寄存器复位 + 50dc: e3ffebce bsr 0x2878 // 2878 + ADC12_Software_Reset(); //ADC软件复位 + 50e0: e3ffec2c bsr 0x2938 // 2938 + ADC12_CLK_CMD(ADC_CLK_CR,ENABLE); //使能ADC CLK + 50e4: 3101 movi r1, 1 + 50e6: 3002 movi r0, 2 + 50e8: e3ffec12 bsr 0x290c // 290c + + ADC12_Configure_Mode(ADC12_12BIT,Continuous_mode,0,6,2,1); + 50ec: 3301 movi r3, 1 + 50ee: b861 st.w r3, (r14, 0x4) + 50f0: 3302 movi r3, 2 + 50f2: b860 st.w r3, (r14, 0x0) + 50f4: 3200 movi r2, 0 + 50f6: 3306 movi r3, 6 + 50f8: 3101 movi r1, 1 + 50fa: 3001 movi r0, 1 + 50fc: e3ffec58 bsr 0x29ac // 29ac + +// ADC12_Configure_VREF_Selecte(ADC12_VREFP_FVR4096_VREFN_VSS);//如果设置内部参考电压源需要把初始化放在触摸初始化前面,否则触摸会出现错误 + + ADC12_Configure_VREF_Selecte(ADC12_VREFP_VDD_VREFN_VSS); + 5100: 3000 movi r0, 0 + 5102: e3ffec93 bsr 0x2a28 // 2a28 + + ADC12_ConversionChannel_Config(ADC12_ADCIN15,ADC12_CV_RepeatNum1,ADC12_AVGEN,0); + 5106: 3280 movi r2, 128 + 5108: 3300 movi r3, 0 + 510a: 4245 lsli r2, r2, 5 + 510c: 3100 movi r1, 0 + 510e: 300f movi r0, 15 + 5110: e3ffed58 bsr 0x2bc0 // 2bc0 + + ADC12_CMD(ENABLE); + 5114: 3001 movi r0, 1 + 5116: e3ffec17 bsr 0x2944 // 2944 + + ADC12_ready_wait(); + 511a: e3ffec29 bsr 0x296c // 296c + + ADC12_Control(ADC12_START); + 511e: 3008 movi r0, 8 + 5120: e3ffebde bsr 0x28dc // 28dc + + memset(&g_adc,0,sizeof(ADC_INFO_G)); + 5124: 3250 movi r2, 80 + 5126: 3100 movi r1, 0 + 5128: 1003 lrw r0, 0x20000554 // 5134 + 512a: e3ffe58b bsr 0x1c40 // 1c40 <__memset_fast> +} + 512e: 1402 addi r14, r14, 8 + 5130: 1490 pop r15 + 5132: 0000 bkpt + 5134: 20000554 .long 0x20000554 + +Disassembly of section .text.Thermistor_Array_Transform: + +00005138 : + 5389 ,5365 ,5341 ,5317 ,5293 ,5269 ,5245 ,5222 ,5198 ,5175 , + 5152 ,5129 ,5106 ,5083 ,5060 ,5037 ,5014 ,4992 ,4970 ,4947 , +}; + +U16_T Thermistor_Array_Transform(U16_T r_value) +{ + 5138: 14c1 push r4 + U16_T i=0; + + if(r_value >= R_Array[0]) return 0; + 513a: 1070 lrw r3, 0x79bd // 5178 + 513c: 640c cmphs r3, r0 +{ + 513e: 6c43 mov r1, r0 + if(r_value >= R_Array[0]) return 0; + 5140: 0c16 bf 0x516c // 516c + + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 5142: 33a1 movi r3, 161 + 5144: 4365 lsli r3, r3, 5 + 5146: 640c cmphs r3, r0 + 5148: 0814 bt 0x5170 // 5170 + + for(i=0;i + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 514e: 3000 movi r0, 0 + for(i=0;i R_Array[i+1])){ + 5152: 8a60 ld.h r3, (r2, 0x0) + 5154: 644c cmphs r3, r1 + 5156: 0c04 bf 0x515e // 515e + 5158: 8a61 ld.h r3, (r2, 0x2) + 515a: 644c cmphs r3, r1 + 515c: 0c07 bf 0x516a // 516a + for(i=0;i + return i; + } + } + + return 250; //意外情况 - 返回25.0度 + 5168: 30fa movi r0, 250 +} + 516a: 1481 pop r4 + if(r_value >= R_Array[0]) return 0; + 516c: 3000 movi r0, 0 + 516e: 07fe br 0x516a // 516a + if(r_value <= R_Array[Thermistor_Array_Size]) return Thermistor_Array_Size; + 5170: 30c8 movi r0, 200 + 5172: 4001 lsli r0, r0, 1 + 5174: 07fb br 0x516a // 516a + 5176: 0000 bkpt + 5178: 000079bd .long 0x000079bd + 517c: 0000a416 .long 0x0000a416 + +Disassembly of section .text.Calculate_ADC_Sample_Average: + +00005180 : + * @brief ADC采集电压换算温度,存入温度采集数组。 + * @param + * @retval + * */ +void Calculate_ADC_Sample_Average(void) +{ + 5180: 14d4 push r4-r7, r15 + for(U16_T i=0;i + 5184: 8cc4 ld.h r6, (r4, 0x8) + 5186: 3000 movi r0, 0 + U16_T temp_max = 0,temp_min = 0; + 5188: 3200 movi r2, 0 + 518a: 3100 movi r1, 0 + uint32_t temp_val = 0; + 518c: 3300 movi r3, 0 + temp_val += g_adc.dataBuff[i]; + 518e: 40a1 lsli r5, r0, 1 + 5190: 10fc lrw r7, 0x20000554 // 5200 + 5192: 615c addu r5, r7 + 5194: 8da4 ld.h r5, (r5, 0x8) + if(i == 0){ + 5196: 3840 cmpnei r0, 0 + temp_val += g_adc.dataBuff[i]; + 5198: 60d4 addu r3, r5 + if(i == 0){ + 519a: 0803 bt 0x51a0 // 51a0 + temp_min = g_adc.dataBuff[0]; + 519c: 6c9b mov r2, r6 + temp_max = g_adc.dataBuff[0]; + 519e: 6c5b mov r1, r6 + 51a0: 6544 cmphs r1, r5 + 51a2: 6dc7 mov r7, r1 + 51a4: 0802 bt 0x51a8 // 51a8 + 51a6: 6dd7 mov r7, r5 + 51a8: 6494 cmphs r5, r2 + 51aa: 745d zexth r1, r7 + 51ac: 6dcb mov r7, r2 + 51ae: 0802 bt 0x51b2 // 51b2 + 51b0: 6dd7 mov r7, r5 + 51b2: 2000 addi r0, 1 + for(U16_T i=0;i + } + + } + +// g_adc.avg_val = temp_val / ADC_DATABUFF_Size; + g_adc.avg_val = ((temp_val-temp_max-temp_min) / (ADC_DATABUFF_Size-2)); + 51ba: 60c6 subu r3, r1 + 51bc: 60ca subu r3, r2 + 51be: 4b63 lsri r3, r3, 3 + +// Dbg_Println(DBG_BIT_SYS_STATUS,"ADC sum_val:%d avg_val:%d",temp_val,g_adc.avg_val); //,g_adc.RoughCalib_Value + +// temp_val = g_adc.avg_val; + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51c0: 1051 lrw r2, 0x1388 // 5204 + g_adc.avg_val = ((temp_val-temp_max-temp_min) / (ADC_DATABUFF_Size-2)); + 51c2: ac62 st.h r3, (r4, 0x4) + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51c4: 74cd zexth r3, r3 + 51c6: 7cc8 mult r3, r2 + + + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 51c8: 8c4e ld.h r2, (r4, 0x1c) + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51ca: 536c asri r3, r3, 12 + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 51cc: 3a13 cmphsi r2, 20 + g_adc.voltage = g_adc.avg_val*5000/4096 ; + 51ce: ac63 st.h r3, (r4, 0x6) + if(g_adc.temp_index >= Temp_DataBuff_Size){ + 51d0: 0c05 bf 0x51da // 51da + g_adc.temp_index = 0; + 51d2: 3200 movi r2, 0 + 51d4: ac4e st.h r2, (r4, 0x1c) + g_adc.gather_full = 1; + 51d6: 3201 movi r2, 1 + 51d8: a441 st.b r2, (r4, 0x1) + + } + + temp_val = ((g_adc.voltage * 10000)/(3300 - g_adc.voltage)); + + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 51da: 8cae ld.h r5, (r4, 0x1c) + 51dc: 74cd zexth r3, r3 + 51de: 5d42 addi r2, r5, 1 + temp_val = ((g_adc.voltage * 10000)/(3300 - g_adc.voltage)); + 51e0: 100a lrw r0, 0x2710 // 5208 + 51e2: 102b lrw r1, 0xce4 // 520c + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 51e4: ac4e st.h r2, (r4, 0x1c) + temp_val = ((g_adc.voltage * 10000)/(3300 - g_adc.voltage)); + 51e6: 7c0c mult r0, r3 + 51e8: 604e subu r1, r3 + 51ea: e3fff511 bsr 0x3c0c // 3c0c <__divsi3> + g_adc.tempBuff[g_adc.temp_index++] = Thermistor_Array_Transform(temp_val); + 51ee: 250f addi r5, 16 + 51f0: 45a1 lsli r5, r5, 1 + 51f2: 7401 zexth r0, r0 + 51f4: e3ffffa2 bsr 0x5138 // 5138 + 51f8: 6114 addu r4, r5 + 51fa: ac00 st.h r0, (r4, 0x0) + +// Dbg_Println(DBG_BIT_Debug_STATUS,"Conv Temp:%d temp_val:%d voltage:%d avg_val:%d",Thermistor_Array_Transform(temp_val),temp_val,g_adc.voltage,g_adc.avg_val); +} + 51fc: 1494 pop r4-r7, r15 + 51fe: 0000 bkpt + 5200: 20000554 .long 0x20000554 + 5204: 00001388 .long 0x00001388 + 5208: 00002710 .long 0x00002710 + 520c: 00000ce4 .long 0x00000ce4 + +Disassembly of section .text.Get_Temp_Val: + +00005210 : + } + Gather_Temp(); +} + +U16_T Get_Temp_Val(void){ + return g_adc.temp_val; + 5210: 1062 lrw r3, 0x20000554 // 5218 + 5212: 8b0f ld.h r0, (r3, 0x1e) +} + 5214: 783c jmp r15 + 5216: 0000 bkpt + 5218: 20000554 .long 0x20000554 + +Disassembly of section .text.Gather_Temp: + +0000521c : + * @brief 每隔1000ms取一次温度采集数组中的平均温度。 + * @param + * @retval + * */ +void Gather_Temp(void) +{ + 521c: 14d2 push r4-r5, r15 + 521e: 1421 subi r14, r14, 4 + uint32_t temp_val = 0; + U16_T temp_size = 0; + + if(SysTick_1ms - g_adc.gather_tick >= 200) + 5220: 105f lrw r2, 0x200000c0 // 529c + 5222: 1180 lrw r4, 0x20000554 // 52a0 + 5224: 9260 ld.w r3, (r2, 0x0) + 5226: 9433 ld.w r1, (r4, 0x4c) + 5228: 60c6 subu r3, r1 + 522a: 31c7 movi r1, 199 + 522c: 64c4 cmphs r1, r3 + 522e: 080e bt 0x524a // 524a + { + g_adc.gather_tick = SysTick_1ms; + 5230: 9260 ld.w r3, (r2, 0x0) + 5232: b473 st.w r3, (r4, 0x4c) + //Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp full %d ",g_adc.gather_full); + + if(g_adc.gather_full == 1){ + 5234: 8461 ld.b r3, (r4, 0x1) + 5236: 3b41 cmpnei r3, 1 + 5238: 0c0b bf 0x524e // 524e + temp_val += g_adc.tempBuff[i]; + } + temp_size = Temp_DataBuff_Size; + // g_adc.gather_full = 0; + }else { //未满 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 523a: 8c2e ld.h r1, (r4, 0x1c) + 523c: 3300 movi r3, 0 + 523e: 3500 movi r5, 0 + temp_val += g_adc.tempBuff[i]; + 5240: 3010 movi r0, 16 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 5242: 644c cmphs r3, r1 + 5244: 0c24 bf 0x528c // 528c + } + temp_size = g_adc.temp_index; + } + + if(temp_size == 0){ + 5246: 3940 cmpnei r1, 0 + 5248: 080e bt 0x5264 // 5264 + } + g_adc.temp_val = temp_val / temp_size; + + Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + } +} + 524a: 1401 addi r14, r14, 4 + 524c: 1492 pop r4-r5, r15 + 524e: 6c93 mov r2, r4 + if(g_adc.gather_full == 1){ + 5250: 3500 movi r5, 0 + 5252: 3300 movi r3, 0 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 5254: 2300 addi r3, 1 + 5256: 74cc zextb r3, r3 + temp_val += g_adc.tempBuff[i]; + 5258: 8a30 ld.h r1, (r2, 0x20) + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 525a: 3b54 cmpnei r3, 20 + temp_val += g_adc.tempBuff[i]; + 525c: 6144 addu r5, r1 + 525e: 2201 addi r2, 2 + for(U8_T i = 0;i < Temp_DataBuff_Size;i++){ + 5260: 0bfa bt 0x5254 // 5254 + temp_size = Temp_DataBuff_Size; + 5262: 3114 movi r1, 20 + g_adc.temp_val = temp_val / temp_size; + 5264: 6c17 mov r0, r5 + 5266: e3fff4e5 bsr 0x3c30 // 3c30 <__udivsi3> + 526a: 7401 zexth r0, r0 + 526c: ac0f st.h r0, (r4, 0x1e) + Dbg_Println(DBG_BIT_Debug_STATUS,"------Gather_Temp %d Temp:%.1f ",temp_val,(float)g_adc.temp_val/10); + 526e: e3ffddf9 bsr 0xe60 // e60 <__floatunsisf> + 5272: 102d lrw r1, 0x41200000 // 52a4 + 5274: e3ffdd86 bsr 0xd80 // d80 <__divsf3> + 5278: e3ffdde2 bsr 0xe3c // e3c <__extendsfdf2> + 527c: 6cc3 mov r3, r0 + 527e: b820 st.w r1, (r14, 0x0) + 5280: 6c97 mov r2, r5 + 5282: 102a lrw r1, 0xaae5 // 52a8 + 5284: 3002 movi r0, 2 + 5286: e3fff741 bsr 0x4108 // 4108 + 528a: 07e0 br 0x524a // 524a + temp_val += g_adc.tempBuff[i]; + 528c: 5b40 addu r2, r3, r0 + 528e: 4241 lsli r2, r2, 1 + 5290: 6090 addu r2, r4 + 5292: 8a40 ld.h r2, (r2, 0x0) + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 5294: 2300 addi r3, 1 + temp_val += g_adc.tempBuff[i]; + 5296: 6148 addu r5, r2 + for(U8_T i = 0;i < g_adc.temp_index;i++){ + 5298: 74cc zextb r3, r3 + 529a: 07d4 br 0x5242 // 5242 + 529c: 200000c0 .long 0x200000c0 + 52a0: 20000554 .long 0x20000554 + 52a4: 41200000 .long 0x41200000 + 52a8: 0000aae5 .long 0x0000aae5 + +Disassembly of section .text.ADC_Sample_Task: + +000052ac : +void ADC_Sample_Task(void){ + 52ac: 14d3 push r4-r6, r15 + if (SysTick_1ms - g_adc.sample_tick > 10) { + 52ae: 10d9 lrw r6, 0x200000c0 // 5310 + 52b0: 1099 lrw r4, 0x20000554 // 5314 + 52b2: 9660 ld.w r3, (r6, 0x0) + 52b4: 9452 ld.w r2, (r4, 0x48) + 52b6: 60ca subu r3, r2 + 52b8: 3b0a cmphsi r3, 11 + 52ba: 0c14 bf 0x52e2 // 52e2 + g_adc.sample_tick = SysTick_1ms; + 52bc: 9660 ld.w r3, (r6, 0x0) + ADC12_SEQEND_wait(0); + 52be: 3000 movi r0, 0 + g_adc.sample_tick = SysTick_1ms; + 52c0: b472 st.w r3, (r4, 0x48) + ADC12_SEQEND_wait(0); + 52c2: e3ffeb5f bsr 0x2980 // 2980 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52c6: 3000 movi r0, 0 + 52c8: 8ca1 ld.h r5, (r4, 0x2) + 52ca: e3ffeb67 bsr 0x2998 // 2998 + g_adc.index++; + 52ce: 8c61 ld.h r3, (r4, 0x2) + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52d0: 2503 addi r5, 4 + g_adc.index++; + 52d2: 2300 addi r3, 1 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52d4: 45a1 lsli r5, r5, 1 + g_adc.index++; + 52d6: 74cd zexth r3, r3 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52d8: 6150 addu r5, r4 + if (g_adc.index >= ADC_DATABUFF_Size) { + 52da: 3b09 cmphsi r3, 10 + g_adc.dataBuff[g_adc.index] = ADC12_DATA_OUPUT(0); + 52dc: ad00 st.h r0, (r5, 0x0) + if (g_adc.index >= ADC_DATABUFF_Size) { + 52de: 0813 bt 0x5304 // 5304 + g_adc.index++; + 52e0: ac61 st.h r3, (r4, 0x2) + if (g_adc.full_flag == 0x01) { + 52e2: 8460 ld.b r3, (r4, 0x0) + 52e4: 3b41 cmpnei r3, 1 + 52e6: 080c bt 0x52fe // 52fe + if (SysTick_1ms - adc_tick >= 100) { + 52e8: 104c lrw r2, 0x2000013c // 5318 + 52ea: 9220 ld.w r1, (r2, 0x0) + 52ec: 9660 ld.w r3, (r6, 0x0) + 52ee: 60c6 subu r3, r1 + 52f0: 3163 movi r1, 99 + 52f2: 64c4 cmphs r1, r3 + 52f4: 0805 bt 0x52fe // 52fe + adc_tick = SysTick_1ms; + 52f6: 9660 ld.w r3, (r6, 0x0) + 52f8: b260 st.w r3, (r2, 0x0) + Calculate_ADC_Sample_Average(); + 52fa: e3ffff43 bsr 0x5180 // 5180 + Gather_Temp(); + 52fe: e3ffff8f bsr 0x521c // 521c +} + 5302: 1493 pop r4-r6, r15 + g_adc.index = 0; + 5304: 3300 movi r3, 0 + 5306: ac61 st.h r3, (r4, 0x2) + g_adc.full_flag = 1; + 5308: 3301 movi r3, 1 + 530a: a460 st.b r3, (r4, 0x0) + 530c: 07eb br 0x52e2 // 52e2 + 530e: 0000 bkpt + 5310: 200000c0 .long 0x200000c0 + 5314: 20000554 .long 0x20000554 + 5318: 2000013c .long 0x2000013c + +Disassembly of section .text.Contol_Switch_Light: + +0000531c : + * @param ch: 通道选择 + * @param state: 控制状态 0x01:开,0x02:关 + * @retval None + */ +void Contol_Switch_Light(uint8_t ch,uint8_t state) +{ + 531c: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 531e: 3805 cmphsi r0, 6 +{ + 5320: 6d47 mov r5, r1 + switch(ch) + 5322: 0818 bt 0x5352 // 5352 + 5324: 009b lrw r4, 0x200005a4 // 56b4 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 5326: 3941 cmpnei r1, 1 + switch(ch) + 5328: e3ffdd02 bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 532c: 00330006 .long 0x00330006 + 5330: 008d0060 .long 0x008d0060 + 5334: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 5338: 0814 bt 0x5360 // 5360 + if(g_switch.feedback_light_selection == 0x01){ + 533a: 8462 ld.b r3, (r4, 0x2) + 533c: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 533e: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5340: 080a bt 0x5354 // 5354 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5342: 300b movi r0, 11 + 5344: e0000532 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5348: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 534a: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 534c: e000052e bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH1] = state; + 5350: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 5352: 1492 pop r4-r5, r15 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5354: 3006 movi r0, 6 + 5356: e0000529 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 535a: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 535c: 300b movi r0, 11 + 535e: 07f7 br 0x534c // 534c + }else if(state == Control_OFF){ + 5360: 3942 cmpnei r1, 2 + 5362: 0bf7 bt 0x5350 // 5350 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5364: 016a lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5366: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5368: 9360 ld.w r3, (r3, 0x0) + 536a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 536c: 8462 ld.b r3, (r4, 0x2) + 536e: 3b41 cmpnei r3, 1 + 5370: 0809 bt 0x5382 // 5382 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5372: 300b movi r0, 11 + 5374: e000051a bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5378: 846a ld.b r3, (r4, 0xa) + 537a: 3b41 cmpnei r3, 1 + 537c: 0bea bt 0x5350 // 5350 + 537e: 3101 movi r1, 1 + 5380: 07e5 br 0x534a // 534a + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5382: 3006 movi r0, 6 + 5384: e0000512 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK1_White,Control_ON); + 5388: 846a ld.b r3, (r4, 0xa) + 538a: 3b41 cmpnei r3, 1 + 538c: 0be2 bt 0x5350 // 5350 + 538e: 3101 movi r1, 1 + 5390: 07e6 br 0x535c // 535c + if(state == Control_ON){ + 5392: 0814 bt 0x53ba // 53ba + if(g_switch.feedback_light_selection == 0x01){ + 5394: 8462 ld.b r3, (r4, 0x2) + 5396: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5398: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 539a: 080a bt 0x53ae // 53ae + TM1812_Control_CH_State(TPK2_White,Control_ON); + 539c: 300c movi r0, 12 + 539e: e0000505 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 53a2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 53a4: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 53a6: e0000501 bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH2] = state; + 53aa: a4a6 st.b r5, (r4, 0x6) + break; + 53ac: 07d3 br 0x5352 // 5352 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 53ae: 3007 movi r0, 7 + 53b0: e00004fc bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53b4: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 53b6: 300c movi r0, 12 + 53b8: 07f7 br 0x53a6 // 53a6 + }else if(state == Control_OFF){ + 53ba: 3942 cmpnei r1, 2 + 53bc: 0bf7 bt 0x53aa // 53aa + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53be: 0260 lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53c0: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 53c2: 9360 ld.w r3, (r3, 0x0) + 53c4: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 53c6: 8462 ld.b r3, (r4, 0x2) + 53c8: 3b41 cmpnei r3, 1 + 53ca: 0809 bt 0x53dc // 53dc + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 53cc: 300c movi r0, 12 + 53ce: e00004ed bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 53d2: 846a ld.b r3, (r4, 0xa) + 53d4: 3b41 cmpnei r3, 1 + 53d6: 0bea bt 0x53aa // 53aa + 53d8: 3101 movi r1, 1 + 53da: 07e5 br 0x53a4 // 53a4 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 53dc: 3007 movi r0, 7 + 53de: e00004e5 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK2_White,Control_ON); + 53e2: 846a ld.b r3, (r4, 0xa) + 53e4: 3b41 cmpnei r3, 1 + 53e6: 0be2 bt 0x53aa // 53aa + 53e8: 3101 movi r1, 1 + 53ea: 07e6 br 0x53b6 // 53b6 + if(state == Control_ON){ + 53ec: 0814 bt 0x5414 // 5414 + if(g_switch.feedback_light_selection == 0x01){ + 53ee: 8462 ld.b r3, (r4, 0x2) + 53f0: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 53f2: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 53f4: 080a bt 0x5408 // 5408 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 53f6: 300d movi r0, 13 + 53f8: e00004d8 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 53fc: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 53fe: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5400: e00004d4 bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH3] = state; + 5404: a4a7 st.b r5, (r4, 0x7) + break; + 5406: 07a6 br 0x5352 // 5352 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 5408: 3008 movi r0, 8 + 540a: e00004cf bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 540e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 5410: 300d movi r0, 13 + 5412: 07f7 br 0x5400 // 5400 + }else if(state == Control_OFF){ + 5414: 3942 cmpnei r1, 2 + 5416: 0bf7 bt 0x5404 // 5404 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5418: 0277 lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 541a: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 541c: 9360 ld.w r3, (r3, 0x0) + 541e: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5420: 8462 ld.b r3, (r4, 0x2) + 5422: 3b41 cmpnei r3, 1 + 5424: 0809 bt 0x5436 // 5436 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5426: 300d movi r0, 13 + 5428: e00004c0 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 542c: 846a ld.b r3, (r4, 0xa) + 542e: 3b41 cmpnei r3, 1 + 5430: 0bea bt 0x5404 // 5404 + 5432: 3101 movi r1, 1 + 5434: 07e5 br 0x53fe // 53fe + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5436: 3008 movi r0, 8 + 5438: e00004b8 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK3_White,Control_ON); + 543c: 846a ld.b r3, (r4, 0xa) + 543e: 3b41 cmpnei r3, 1 + 5440: 0be2 bt 0x5404 // 5404 + 5442: 3101 movi r1, 1 + 5444: 07e6 br 0x5410 // 5410 + if(state == Control_ON){ + 5446: 0814 bt 0x546e // 546e + if(g_switch.feedback_light_selection == 0x01){ + 5448: 8462 ld.b r3, (r4, 0x2) + 544a: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 544c: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 544e: 080a bt 0x5462 // 5462 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 5450: 300e movi r0, 14 + 5452: e00004ab bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5456: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5458: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 545a: e00004a7 bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH4] = state; + 545e: a4a8 st.b r5, (r4, 0x8) + break; + 5460: 0779 br 0x5352 // 5352 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5462: 3009 movi r0, 9 + 5464: e00004a2 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5468: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 546a: 300e movi r0, 14 + 546c: 07f7 br 0x545a // 545a + }else if(state == Control_OFF){ + 546e: 3942 cmpnei r1, 2 + 5470: 0bf7 bt 0x545e // 545e + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5472: 036d lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5474: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5476: 9360 ld.w r3, (r3, 0x0) + 5478: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 547a: 8462 ld.b r3, (r4, 0x2) + 547c: 3b41 cmpnei r3, 1 + 547e: 0809 bt 0x5490 // 5490 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5480: 300e movi r0, 14 + 5482: e0000493 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5486: 846a ld.b r3, (r4, 0xa) + 5488: 3b41 cmpnei r3, 1 + 548a: 0bea bt 0x545e // 545e + 548c: 3101 movi r1, 1 + 548e: 07e5 br 0x5458 // 5458 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5490: 3009 movi r0, 9 + 5492: e000048b bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK4_White,Control_ON); + 5496: 846a ld.b r3, (r4, 0xa) + 5498: 3b41 cmpnei r3, 1 + 549a: 0be2 bt 0x545e // 545e + 549c: 3101 movi r1, 1 + 549e: 07e6 br 0x546a // 546a + if(state == Control_ON){ + 54a0: 0814 bt 0x54c8 // 54c8 + if(g_switch.feedback_light_selection == 0x01){ + 54a2: 8462 ld.b r3, (r4, 0x2) + 54a4: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 54a6: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 54a8: 080a bt 0x54bc // 54bc + TM1812_Control_CH_State(TPK5_White,Control_ON); + 54aa: 300f movi r0, 15 + 54ac: e000047e bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 54b0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 54b2: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 54b4: e000047a bsr 0x5da8 // 5da8 + g_switch.light_state[T_CH5] = state; + 54b8: a4a9 st.b r5, (r4, 0x9) + break; + 54ba: 074c br 0x5352 // 5352 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 54bc: 300a movi r0, 10 + 54be: e0000475 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 54c2: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 54c4: 300f movi r0, 15 + 54c6: 07f7 br 0x54b4 // 54b4 + }else if(state == Control_OFF){ + 54c8: 3942 cmpnei r1, 2 + 54ca: 0bf7 bt 0x54b8 // 54b8 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54cc: 137b lrw r3, 0x200000c0 // 56b8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 54ce: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54d0: 9360 ld.w r3, (r3, 0x0) + 54d2: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 54d4: 8462 ld.b r3, (r4, 0x2) + 54d6: 3b41 cmpnei r3, 1 + 54d8: 0809 bt 0x54ea // 54ea + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 54da: 300f movi r0, 15 + 54dc: e0000466 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 54e0: 846a ld.b r3, (r4, 0xa) + 54e2: 3b41 cmpnei r3, 1 + 54e4: 0bea bt 0x54b8 // 54b8 + 54e6: 3101 movi r1, 1 + 54e8: 07e5 br 0x54b2 // 54b2 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 54ea: 300a movi r0, 10 + 54ec: e000045e bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_State(TPK5_White,Control_ON); + 54f0: 846a ld.b r3, (r4, 0xa) + 54f2: 3b41 cmpnei r3, 1 + 54f4: 0be2 bt 0x54b8 // 54b8 + 54f6: 3101 movi r1, 1 + 54f8: 07e6 br 0x54c4 // 54c4 + if(state == Control_ON){ + 54fa: 08b1 bt 0x565c // 565c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 54fc: 136f lrw r3, 0x200000c0 // 56b8 + 54fe: 9360 ld.w r3, (r3, 0x0) + 5500: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5502: 8462 ld.b r3, (r4, 0x2) + 5504: 3b41 cmpnei r3, 1 + 5506: 8465 ld.b r3, (r4, 0x5) + 5508: 0857 bt 0x55b6 // 55b6 + if(g_switch.light_state[T_CH1] != Control_ON) { + 550a: 3b41 cmpnei r3, 1 + 550c: 0c33 bf 0x5572 // 5572 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 550e: 3101 movi r1, 1 + 5510: 3006 movi r0, 6 + 5512: e000044b bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5516: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 5518: 300b movi r0, 11 + 551a: e0000447 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH2] != Control_ON) { + 551e: 8466 ld.b r3, (r4, 0x6) + 5520: 3b41 cmpnei r3, 1 + 5522: 0c2e bf 0x557e // 557e + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 5524: 3101 movi r1, 1 + 5526: 3007 movi r0, 7 + 5528: e0000440 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 552c: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 552e: 300c movi r0, 12 + 5530: e000043c bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH3] != Control_ON) { + 5534: 8467 ld.b r3, (r4, 0x7) + 5536: 3b41 cmpnei r3, 1 + 5538: 0c29 bf 0x558a // 558a + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 553a: 3101 movi r1, 1 + 553c: 3008 movi r0, 8 + 553e: e0000435 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5542: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 5544: 300d movi r0, 13 + 5546: e0000431 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH4] != Control_ON) { + 554a: 8468 ld.b r3, (r4, 0x8) + 554c: 3b41 cmpnei r3, 1 + 554e: 0c24 bf 0x5596 // 5596 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5550: 3101 movi r1, 1 + 5552: 3009 movi r0, 9 + 5554: e000042a bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5558: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 555a: 300e movi r0, 14 + 555c: e0000426 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH5] != Control_ON) { + 5560: 8469 ld.b r3, (r4, 0x9) + 5562: 3b41 cmpnei r3, 1 + 5564: 0c1f bf 0x55a2 // 55a2 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 5566: 3101 movi r1, 1 + 5568: 300a movi r0, 10 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 556a: e000041f bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 556e: 3102 movi r1, 2 + 5570: 041e br 0x55ac // 55ac + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5572: 3102 movi r1, 2 + 5574: 3006 movi r0, 6 + 5576: e0000419 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_White,Control_ON); + 557a: 3101 movi r1, 1 + 557c: 07ce br 0x5518 // 5518 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 557e: 3102 movi r1, 2 + 5580: 3007 movi r0, 7 + 5582: e0000413 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_ON); + 5586: 3101 movi r1, 1 + 5588: 07d3 br 0x552e // 552e + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 558a: 3102 movi r1, 2 + 558c: 3008 movi r0, 8 + 558e: e000040d bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 5592: 3101 movi r1, 1 + 5594: 07d8 br 0x5544 // 5544 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5596: 3102 movi r1, 2 + 5598: 3009 movi r0, 9 + 559a: e0000407 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 559e: 3101 movi r1, 1 + 55a0: 07dd br 0x555a // 555a + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 55a2: 3102 movi r1, 2 + 55a4: 300a movi r0, 10 + 55a6: e0000401 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_ON); + 55aa: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 55ac: 300f movi r0, 15 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 55ae: e00003fd bsr 0x5da8 // 5da8 + g_switch.light_state[T_Backlight] = state; + 55b2: a4aa st.b r5, (r4, 0xa) +} + 55b4: 06cf br 0x5352 // 5352 + if(g_switch.light_state[T_CH1] != Control_ON) { + 55b6: 3b41 cmpnei r3, 1 + 55b8: 0c33 bf 0x561e // 561e + TM1812_Control_CH_State(TPK1_White,Control_ON); + 55ba: 3101 movi r1, 1 + 55bc: 300b movi r0, 11 + 55be: e00003f5 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 55c2: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 55c4: 3006 movi r0, 6 + 55c6: e00003f1 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH2] != Control_ON) { + 55ca: 8466 ld.b r3, (r4, 0x6) + 55cc: 3b41 cmpnei r3, 1 + 55ce: 0c2e bf 0x562a // 562a + TM1812_Control_CH_State(TPK2_White,Control_ON); + 55d0: 3101 movi r1, 1 + 55d2: 300c movi r0, 12 + 55d4: e00003ea bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 55d8: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 55da: 3007 movi r0, 7 + 55dc: e00003e6 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH3] != Control_ON) { + 55e0: 8467 ld.b r3, (r4, 0x7) + 55e2: 3b41 cmpnei r3, 1 + 55e4: 0c29 bf 0x5636 // 5636 + TM1812_Control_CH_State(TPK3_White,Control_ON); + 55e6: 3101 movi r1, 1 + 55e8: 300d movi r0, 13 + 55ea: e00003df bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 55ee: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 55f0: 3008 movi r0, 8 + 55f2: e00003db bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH4] != Control_ON) { + 55f6: 8468 ld.b r3, (r4, 0x8) + 55f8: 3b41 cmpnei r3, 1 + 55fa: 0c24 bf 0x5642 // 5642 + TM1812_Control_CH_State(TPK4_White,Control_ON); + 55fc: 3101 movi r1, 1 + 55fe: 300e movi r0, 14 + 5600: e00003d4 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5604: 3102 movi r1, 2 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 5606: 3009 movi r0, 9 + 5608: e00003d0 bsr 0x5da8 // 5da8 + if(g_switch.light_state[T_CH5] != Control_ON) { + 560c: 8469 ld.b r3, (r4, 0x9) + 560e: 3b41 cmpnei r3, 1 + 5610: 0c1f bf 0x564e // 564e + TM1812_Control_CH_State(TPK5_White,Control_ON); + 5612: 3101 movi r1, 1 + 5614: 300f movi r0, 15 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5616: e00003c9 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 561a: 3102 movi r1, 2 + 561c: 041e br 0x5658 // 5658 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 561e: 3102 movi r1, 2 + 5620: 300b movi r0, 11 + 5622: e00003c3 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK1_Amber,Control_ON); + 5626: 3101 movi r1, 1 + 5628: 07ce br 0x55c4 // 55c4 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 562a: 3102 movi r1, 2 + 562c: 300c movi r0, 12 + 562e: e00003bd bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_ON); + 5632: 3101 movi r1, 1 + 5634: 07d3 br 0x55da // 55da + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 5636: 3102 movi r1, 2 + 5638: 300d movi r0, 13 + 563a: e00003b7 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_ON); + 563e: 3101 movi r1, 1 + 5640: 07d8 br 0x55f0 // 55f0 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 5642: 3102 movi r1, 2 + 5644: 300e movi r0, 14 + 5646: e00003b1 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_ON); + 564a: 3101 movi r1, 1 + 564c: 07dd br 0x5606 // 5606 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 564e: 3102 movi r1, 2 + 5650: 300f movi r0, 15 + 5652: e00003ab bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_ON); + 5656: 3101 movi r1, 1 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 5658: 300a movi r0, 10 + 565a: 07aa br 0x55ae // 55ae + }else if(state == Control_OFF){ + 565c: 3942 cmpnei r1, 2 + 565e: 0baa bt 0x55b2 // 55b2 + if(g_switch.feedback_light_selection == 0x01){ + 5660: 8462 ld.b r3, (r4, 0x2) + 5662: 3b41 cmpnei r3, 1 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5664: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 5666: 082b bt 0x56bc // 56bc + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 5668: 3006 movi r0, 6 + 566a: e000039f bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 566e: 3102 movi r1, 2 + 5670: 3007 movi r0, 7 + 5672: e000039b bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 5676: 3102 movi r1, 2 + 5678: 3008 movi r0, 8 + 567a: e0000397 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 567e: 3102 movi r1, 2 + 5680: 3009 movi r0, 9 + 5682: e0000393 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_Amber,Control_OFF); + 5686: 3102 movi r1, 2 + 5688: 300a movi r0, 10 + 568a: e000038f bsr 0x5da8 // 5da8 + if(g_switch.autoOff_light_flag == 0x01){ + 568e: 8461 ld.b r3, (r4, 0x1) + 5690: 3b41 cmpnei r3, 1 + 5692: 0b90 bt 0x55b2 // 55b2 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 5694: 3102 movi r1, 2 + 5696: 300b movi r0, 11 + 5698: e0000388 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 569c: 3102 movi r1, 2 + 569e: 300c movi r0, 12 + 56a0: e0000384 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 56a4: 3102 movi r1, 2 + 56a6: 300d movi r0, 13 + 56a8: e0000380 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 56ac: 3102 movi r1, 2 + 56ae: 300e movi r0, 14 + 56b0: 075d br 0x556a // 556a + 56b2: 0000 bkpt + 56b4: 200005a4 .long 0x200005a4 + 56b8: 200000c0 .long 0x200000c0 + TM1812_Control_CH_State(TPK1_White,Control_OFF); + 56bc: 300b movi r0, 11 + 56be: e0000375 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_White,Control_OFF); + 56c2: 3102 movi r1, 2 + 56c4: 300c movi r0, 12 + 56c6: e0000371 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_White,Control_OFF); + 56ca: 3102 movi r1, 2 + 56cc: 300d movi r0, 13 + 56ce: e000036d bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_White,Control_OFF); + 56d2: 3102 movi r1, 2 + 56d4: 300e movi r0, 14 + 56d6: e0000369 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK5_White,Control_OFF); + 56da: 3102 movi r1, 2 + 56dc: 300f movi r0, 15 + 56de: e0000365 bsr 0x5da8 // 5da8 + if(g_switch.autoOff_light_flag == 0x01){ + 56e2: 8461 ld.b r3, (r4, 0x1) + 56e4: 3b41 cmpnei r3, 1 + 56e6: 0b66 bt 0x55b2 // 55b2 + TM1812_Control_CH_State(TPK1_Amber,Control_OFF); + 56e8: 3102 movi r1, 2 + 56ea: 3006 movi r0, 6 + 56ec: e000035e bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK2_Amber,Control_OFF); + 56f0: 3102 movi r1, 2 + 56f2: 3007 movi r0, 7 + 56f4: e000035a bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK3_Amber,Control_OFF); + 56f8: 3102 movi r1, 2 + 56fa: 3008 movi r0, 8 + 56fc: e0000356 bsr 0x5da8 // 5da8 + TM1812_Control_CH_State(TPK4_Amber,Control_OFF); + 5700: 3102 movi r1, 2 + 5702: 3009 movi r0, 9 + 5704: 0789 br 0x5616 // 5616 + +Disassembly of section .text.Contol_Switch_Light_2: + +00005708 : +/*不帶渐变效果控製*/ +void Contol_Switch_Light_2(uint8_t ch,uint8_t state) +{ + 5708: 14d2 push r4-r5, r15 + //Dbg_Println(DBG_BIT_SYS_STATUS,"%s ch:%d state:%d",__func__,ch,state); + switch(ch) + 570a: 3805 cmphsi r0, 6 +{ + 570c: 6d47 mov r5, r1 + switch(ch) + 570e: 0818 bt 0x573e // 573e + 5710: 009b lrw r4, 0x200005a4 // 5aa0 + } + g_switch.light_state[T_CH5] = state; + break; + + case T_Backlight: //背光 + if(state == Control_ON){ + 5712: 3941 cmpnei r1, 1 + switch(ch) + 5714: e3ffdb0c bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 5718: 00330006 .long 0x00330006 + 571c: 008d0060 .long 0x008d0060 + 5720: 00e700ba .long 0x00e700ba + if(state == Control_ON){ + 5724: 0814 bt 0x574c // 574c + if(g_switch.feedback_light_selection == 0x01){ + 5726: 8462 ld.b r3, (r4, 0x2) + 5728: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 572a: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 572c: 080a bt 0x5740 // 5740 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 572e: 300b movi r0, 11 + 5730: e0000374 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5734: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5736: 3006 movi r0, 6 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5738: e0000370 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH1] = state; + 573c: a4a5 st.b r5, (r4, 0x5) + } + + g_switch.light_state[T_Backlight] = state; + break; + } +} + 573e: 1492 pop r4-r5, r15 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5740: 3006 movi r0, 6 + 5742: e000036b bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5746: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5748: 300b movi r0, 11 + 574a: 07f7 br 0x5738 // 5738 + }else if(state == Control_OFF){ + 574c: 3942 cmpnei r1, 2 + 574e: 0bf7 bt 0x573c // 573c + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5750: 016a lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5752: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5754: 9360 ld.w r3, (r3, 0x0) + 5756: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5758: 8462 ld.b r3, (r4, 0x2) + 575a: 3b41 cmpnei r3, 1 + 575c: 0809 bt 0x576e // 576e + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 575e: 300b movi r0, 11 + 5760: e000035c bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5764: 846a ld.b r3, (r4, 0xa) + 5766: 3b41 cmpnei r3, 1 + 5768: 0bea bt 0x573c // 573c + 576a: 3101 movi r1, 1 + 576c: 07e5 br 0x5736 // 5736 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 576e: 3006 movi r0, 6 + 5770: e0000354 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5774: 846a ld.b r3, (r4, 0xa) + 5776: 3b41 cmpnei r3, 1 + 5778: 0be2 bt 0x573c // 573c + 577a: 3101 movi r1, 1 + 577c: 07e6 br 0x5748 // 5748 + if(state == Control_ON){ + 577e: 0814 bt 0x57a6 // 57a6 + if(g_switch.feedback_light_selection == 0x01){ + 5780: 8462 ld.b r3, (r4, 0x2) + 5782: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5784: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5786: 080a bt 0x579a // 579a + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5788: 300c movi r0, 12 + 578a: e0000347 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 578e: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5790: 3007 movi r0, 7 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5792: e0000343 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH2] = state; + 5796: a4a6 st.b r5, (r4, 0x6) + break; + 5798: 07d3 br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 579a: 3007 movi r0, 7 + 579c: e000033e bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57a0: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 57a2: 300c movi r0, 12 + 57a4: 07f7 br 0x5792 // 5792 + }else if(state == Control_OFF){ + 57a6: 3942 cmpnei r1, 2 + 57a8: 0bf7 bt 0x5796 // 5796 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 57aa: 0260 lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57ac: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 57ae: 9360 ld.w r3, (r3, 0x0) + 57b0: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 57b2: 8462 ld.b r3, (r4, 0x2) + 57b4: 3b41 cmpnei r3, 1 + 57b6: 0809 bt 0x57c8 // 57c8 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 57b8: 300c movi r0, 12 + 57ba: e000032f bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 57be: 846a ld.b r3, (r4, 0xa) + 57c0: 3b41 cmpnei r3, 1 + 57c2: 0bea bt 0x5796 // 5796 + 57c4: 3101 movi r1, 1 + 57c6: 07e5 br 0x5790 // 5790 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 57c8: 3007 movi r0, 7 + 57ca: e0000327 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 57ce: 846a ld.b r3, (r4, 0xa) + 57d0: 3b41 cmpnei r3, 1 + 57d2: 0be2 bt 0x5796 // 5796 + 57d4: 3101 movi r1, 1 + 57d6: 07e6 br 0x57a2 // 57a2 + if(state == Control_ON){ + 57d8: 0814 bt 0x5800 // 5800 + if(g_switch.feedback_light_selection == 0x01){ + 57da: 8462 ld.b r3, (r4, 0x2) + 57dc: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57de: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 57e0: 080a bt 0x57f4 // 57f4 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57e2: 300d movi r0, 13 + 57e4: e000031a bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 57e8: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 57ea: 3008 movi r0, 8 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57ec: e0000316 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH3] = state; + 57f0: a4a7 st.b r5, (r4, 0x7) + break; + 57f2: 07a6 br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 57f4: 3008 movi r0, 8 + 57f6: e0000311 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 57fa: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 57fc: 300d movi r0, 13 + 57fe: 07f7 br 0x57ec // 57ec + }else if(state == Control_OFF){ + 5800: 3942 cmpnei r1, 2 + 5802: 0bf7 bt 0x57f0 // 57f0 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5804: 0277 lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5806: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5808: 9360 ld.w r3, (r3, 0x0) + 580a: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 580c: 8462 ld.b r3, (r4, 0x2) + 580e: 3b41 cmpnei r3, 1 + 5810: 0809 bt 0x5822 // 5822 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5812: 300d movi r0, 13 + 5814: e0000302 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5818: 846a ld.b r3, (r4, 0xa) + 581a: 3b41 cmpnei r3, 1 + 581c: 0bea bt 0x57f0 // 57f0 + 581e: 3101 movi r1, 1 + 5820: 07e5 br 0x57ea // 57ea + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5822: 3008 movi r0, 8 + 5824: e00002fa bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5828: 846a ld.b r3, (r4, 0xa) + 582a: 3b41 cmpnei r3, 1 + 582c: 0be2 bt 0x57f0 // 57f0 + 582e: 3101 movi r1, 1 + 5830: 07e6 br 0x57fc // 57fc + if(state == Control_ON){ + 5832: 0814 bt 0x585a // 585a + if(g_switch.feedback_light_selection == 0x01){ + 5834: 8462 ld.b r3, (r4, 0x2) + 5836: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5838: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 583a: 080a bt 0x584e // 584e + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 583c: 300e movi r0, 14 + 583e: e00002ed bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5842: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5844: 3009 movi r0, 9 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5846: e00002e9 bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH4] = state; + 584a: a4a8 st.b r5, (r4, 0x8) + break; + 584c: 0779 br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 584e: 3009 movi r0, 9 + 5850: e00002e4 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5854: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5856: 300e movi r0, 14 + 5858: 07f7 br 0x5846 // 5846 + }else if(state == Control_OFF){ + 585a: 3942 cmpnei r1, 2 + 585c: 0bf7 bt 0x584a // 584a + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 585e: 036d lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5860: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 5862: 9360 ld.w r3, (r3, 0x0) + 5864: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 5866: 8462 ld.b r3, (r4, 0x2) + 5868: 3b41 cmpnei r3, 1 + 586a: 0809 bt 0x587c // 587c + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 586c: 300e movi r0, 14 + 586e: e00002d5 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5872: 846a ld.b r3, (r4, 0xa) + 5874: 3b41 cmpnei r3, 1 + 5876: 0bea bt 0x584a // 584a + 5878: 3101 movi r1, 1 + 587a: 07e5 br 0x5844 // 5844 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 587c: 3009 movi r0, 9 + 587e: e00002cd bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5882: 846a ld.b r3, (r4, 0xa) + 5884: 3b41 cmpnei r3, 1 + 5886: 0be2 bt 0x584a // 584a + 5888: 3101 movi r1, 1 + 588a: 07e6 br 0x5856 // 5856 + if(state == Control_ON){ + 588c: 0814 bt 0x58b4 // 58b4 + if(g_switch.feedback_light_selection == 0x01){ + 588e: 8462 ld.b r3, (r4, 0x2) + 5890: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5892: 3101 movi r1, 1 + if(g_switch.feedback_light_selection == 0x01){ + 5894: 080a bt 0x58a8 // 58a8 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5896: 300f movi r0, 15 + 5898: e00002c0 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 589c: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 589e: 300a movi r0, 10 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 58a0: e00002bc bsr 0x5e18 // 5e18 + g_switch.light_state[T_CH5] = state; + 58a4: a4a9 st.b r5, (r4, 0x9) + break; + 58a6: 074c br 0x573e // 573e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 58a8: 300a movi r0, 10 + 58aa: e00002b7 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 58ae: 3102 movi r1, 2 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 58b0: 300f movi r0, 15 + 58b2: 07f7 br 0x58a0 // 58a0 + }else if(state == Control_OFF){ + 58b4: 3942 cmpnei r1, 2 + 58b6: 0bf7 bt 0x58a4 // 58a4 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 58b8: 137b lrw r3, 0x200000c0 // 5aa4 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 58ba: 3102 movi r1, 2 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 58bc: 9360 ld.w r3, (r3, 0x0) + 58be: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 58c0: 8462 ld.b r3, (r4, 0x2) + 58c2: 3b41 cmpnei r3, 1 + 58c4: 0809 bt 0x58d6 // 58d6 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 58c6: 300f movi r0, 15 + 58c8: e00002a8 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 58cc: 846a ld.b r3, (r4, 0xa) + 58ce: 3b41 cmpnei r3, 1 + 58d0: 0bea bt 0x58a4 // 58a4 + 58d2: 3101 movi r1, 1 + 58d4: 07e5 br 0x589e // 589e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 58d6: 300a movi r0, 10 + 58d8: e00002a0 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_Backlight] == 0x01) TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 58dc: 846a ld.b r3, (r4, 0xa) + 58de: 3b41 cmpnei r3, 1 + 58e0: 0be2 bt 0x58a4 // 58a4 + 58e2: 3101 movi r1, 1 + 58e4: 07e6 br 0x58b0 // 58b0 + if(state == Control_ON){ + 58e6: 08b1 bt 0x5a48 // 5a48 + g_switch.autooff_tick = SysTick_1ms; //更新自动关闭背光灯时间 + 58e8: 136f lrw r3, 0x200000c0 // 5aa4 + 58ea: 9360 ld.w r3, (r3, 0x0) + 58ec: b465 st.w r3, (r4, 0x14) + if(g_switch.feedback_light_selection == 0x01){ + 58ee: 8462 ld.b r3, (r4, 0x2) + 58f0: 3b41 cmpnei r3, 1 + 58f2: 8465 ld.b r3, (r4, 0x5) + 58f4: 0857 bt 0x59a2 // 59a2 + if(g_switch.light_state[T_CH1] != Control_ON) { + 58f6: 3b41 cmpnei r3, 1 + 58f8: 0c33 bf 0x595e // 595e + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 58fa: 3101 movi r1, 1 + 58fc: 3006 movi r0, 6 + 58fe: e000028d bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5902: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5904: 300b movi r0, 11 + 5906: e0000289 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH2] != Control_ON) { + 590a: 8466 ld.b r3, (r4, 0x6) + 590c: 3b41 cmpnei r3, 1 + 590e: 0c2e bf 0x596a // 596a + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5910: 3101 movi r1, 1 + 5912: 3007 movi r0, 7 + 5914: e0000282 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5918: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 591a: 300c movi r0, 12 + 591c: e000027e bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH3] != Control_ON) { + 5920: 8467 ld.b r3, (r4, 0x7) + 5922: 3b41 cmpnei r3, 1 + 5924: 0c29 bf 0x5976 // 5976 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5926: 3101 movi r1, 1 + 5928: 3008 movi r0, 8 + 592a: e0000277 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 592e: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 5930: 300d movi r0, 13 + 5932: e0000273 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH4] != Control_ON) { + 5936: 8468 ld.b r3, (r4, 0x8) + 5938: 3b41 cmpnei r3, 1 + 593a: 0c24 bf 0x5982 // 5982 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 593c: 3101 movi r1, 1 + 593e: 3009 movi r0, 9 + 5940: e000026c bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5944: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 5946: 300e movi r0, 14 + 5948: e0000268 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH5] != Control_ON) { + 594c: 8469 ld.b r3, (r4, 0x9) + 594e: 3b41 cmpnei r3, 1 + 5950: 0c1f bf 0x598e // 598e + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5952: 3101 movi r1, 1 + 5954: 300a movi r0, 10 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5956: e0000261 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 595a: 3102 movi r1, 2 + 595c: 041e br 0x5998 // 5998 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 595e: 3102 movi r1, 2 + 5960: 3006 movi r0, 6 + 5962: e000025b bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 5966: 3101 movi r1, 1 + 5968: 07ce br 0x5904 // 5904 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 596a: 3102 movi r1, 2 + 596c: 3007 movi r0, 7 + 596e: e0000255 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 5972: 3101 movi r1, 1 + 5974: 07d3 br 0x591a // 591a + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5976: 3102 movi r1, 2 + 5978: 3008 movi r0, 8 + 597a: e000024f bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 597e: 3101 movi r1, 1 + 5980: 07d8 br 0x5930 // 5930 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5982: 3102 movi r1, 2 + 5984: 3009 movi r0, 9 + 5986: e0000249 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 598a: 3101 movi r1, 1 + 598c: 07dd br 0x5946 // 5946 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 598e: 3102 movi r1, 2 + 5990: 300a movi r0, 10 + 5992: e0000243 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 5996: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5998: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 599a: e000023f bsr 0x5e18 // 5e18 + g_switch.light_state[T_Backlight] = state; + 599e: a4aa st.b r5, (r4, 0xa) +} + 59a0: 06cf br 0x573e // 573e + if(g_switch.light_state[T_CH1] != Control_ON) { + 59a2: 3b41 cmpnei r3, 1 + 59a4: 0c33 bf 0x5a0a // 5a0a + TM1812_Control_CH_CurrState(TPK1_White,Control_ON); + 59a6: 3101 movi r1, 1 + 59a8: 300b movi r0, 11 + 59aa: e0000237 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 59ae: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 59b0: 3006 movi r0, 6 + 59b2: e0000233 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH2] != Control_ON) { + 59b6: 8466 ld.b r3, (r4, 0x6) + 59b8: 3b41 cmpnei r3, 1 + 59ba: 0c2e bf 0x5a16 // 5a16 + TM1812_Control_CH_CurrState(TPK2_White,Control_ON); + 59bc: 3101 movi r1, 1 + 59be: 300c movi r0, 12 + 59c0: e000022c bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 59c4: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 59c6: 3007 movi r0, 7 + 59c8: e0000228 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH3] != Control_ON) { + 59cc: 8467 ld.b r3, (r4, 0x7) + 59ce: 3b41 cmpnei r3, 1 + 59d0: 0c29 bf 0x5a22 // 5a22 + TM1812_Control_CH_CurrState(TPK3_White,Control_ON); + 59d2: 3101 movi r1, 1 + 59d4: 300d movi r0, 13 + 59d6: e0000221 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 59da: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 59dc: 3008 movi r0, 8 + 59de: e000021d bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH4] != Control_ON) { + 59e2: 8468 ld.b r3, (r4, 0x8) + 59e4: 3b41 cmpnei r3, 1 + 59e6: 0c24 bf 0x5a2e // 5a2e + TM1812_Control_CH_CurrState(TPK4_White,Control_ON); + 59e8: 3101 movi r1, 1 + 59ea: 300e movi r0, 14 + 59ec: e0000216 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 59f0: 3102 movi r1, 2 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 59f2: 3009 movi r0, 9 + 59f4: e0000212 bsr 0x5e18 // 5e18 + if(g_switch.light_state[T_CH5] != Control_ON) { + 59f8: 8469 ld.b r3, (r4, 0x9) + 59fa: 3b41 cmpnei r3, 1 + 59fc: 0c1f bf 0x5a3a // 5a3a + TM1812_Control_CH_CurrState(TPK5_White,Control_ON); + 59fe: 3101 movi r1, 1 + 5a00: 300f movi r0, 15 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5a02: e000020b bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5a06: 3102 movi r1, 2 + 5a08: 041e br 0x5a44 // 5a44 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5a0a: 3102 movi r1, 2 + 5a0c: 300b movi r0, 11 + 5a0e: e0000205 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_ON); + 5a12: 3101 movi r1, 1 + 5a14: 07ce br 0x59b0 // 59b0 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5a16: 3102 movi r1, 2 + 5a18: 300c movi r0, 12 + 5a1a: e00001ff bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_ON); + 5a1e: 3101 movi r1, 1 + 5a20: 07d3 br 0x59c6 // 59c6 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5a22: 3102 movi r1, 2 + 5a24: 300d movi r0, 13 + 5a26: e00001f9 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_ON); + 5a2a: 3101 movi r1, 1 + 5a2c: 07d8 br 0x59dc // 59dc + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5a2e: 3102 movi r1, 2 + 5a30: 300e movi r0, 14 + 5a32: e00001f3 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_ON); + 5a36: 3101 movi r1, 1 + 5a38: 07dd br 0x59f2 // 59f2 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5a3a: 3102 movi r1, 2 + 5a3c: 300f movi r0, 15 + 5a3e: e00001ed bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_ON); + 5a42: 3101 movi r1, 1 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5a44: 300a movi r0, 10 + 5a46: 07aa br 0x599a // 599a + }else if(state == Control_OFF){ + 5a48: 3942 cmpnei r1, 2 + 5a4a: 0baa bt 0x599e // 599e + if(g_switch.feedback_light_selection == 0x01){ + 5a4c: 8462 ld.b r3, (r4, 0x2) + 5a4e: 3b41 cmpnei r3, 1 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5a50: 3102 movi r1, 2 + if(g_switch.feedback_light_selection == 0x01){ + 5a52: 082b bt 0x5aa8 // 5aa8 + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5a54: 3006 movi r0, 6 + 5a56: e00001e1 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5a5a: 3102 movi r1, 2 + 5a5c: 3007 movi r0, 7 + 5a5e: e00001dd bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5a62: 3102 movi r1, 2 + 5a64: 3008 movi r0, 8 + 5a66: e00001d9 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5a6a: 3102 movi r1, 2 + 5a6c: 3009 movi r0, 9 + 5a6e: e00001d5 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_Amber,Control_OFF); + 5a72: 3102 movi r1, 2 + 5a74: 300a movi r0, 10 + 5a76: e00001d1 bsr 0x5e18 // 5e18 + if(g_switch.autoOff_light_flag == 0x01){ + 5a7a: 8461 ld.b r3, (r4, 0x1) + 5a7c: 3b41 cmpnei r3, 1 + 5a7e: 0b90 bt 0x599e // 599e + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5a80: 3102 movi r1, 2 + 5a82: 300b movi r0, 11 + 5a84: e00001ca bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5a88: 3102 movi r1, 2 + 5a8a: 300c movi r0, 12 + 5a8c: e00001c6 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5a90: 3102 movi r1, 2 + 5a92: 300d movi r0, 13 + 5a94: e00001c2 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5a98: 3102 movi r1, 2 + 5a9a: 300e movi r0, 14 + 5a9c: 075d br 0x5956 // 5956 + 5a9e: 0000 bkpt + 5aa0: 200005a4 .long 0x200005a4 + 5aa4: 200000c0 .long 0x200000c0 + TM1812_Control_CH_CurrState(TPK1_White,Control_OFF); + 5aa8: 300b movi r0, 11 + 5aaa: e00001b7 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_White,Control_OFF); + 5aae: 3102 movi r1, 2 + 5ab0: 300c movi r0, 12 + 5ab2: e00001b3 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_White,Control_OFF); + 5ab6: 3102 movi r1, 2 + 5ab8: 300d movi r0, 13 + 5aba: e00001af bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_White,Control_OFF); + 5abe: 3102 movi r1, 2 + 5ac0: 300e movi r0, 14 + 5ac2: e00001ab bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK5_White,Control_OFF); + 5ac6: 3102 movi r1, 2 + 5ac8: 300f movi r0, 15 + 5aca: e00001a7 bsr 0x5e18 // 5e18 + if(g_switch.autoOff_light_flag == 0x01){ + 5ace: 8461 ld.b r3, (r4, 0x1) + 5ad0: 3b41 cmpnei r3, 1 + 5ad2: 0b66 bt 0x599e // 599e + TM1812_Control_CH_CurrState(TPK1_Amber,Control_OFF); + 5ad4: 3102 movi r1, 2 + 5ad6: 3006 movi r0, 6 + 5ad8: e00001a0 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK2_Amber,Control_OFF); + 5adc: 3102 movi r1, 2 + 5ade: 3007 movi r0, 7 + 5ae0: e000019c bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK3_Amber,Control_OFF); + 5ae4: 3102 movi r1, 2 + 5ae6: 3008 movi r0, 8 + 5ae8: e0000198 bsr 0x5e18 // 5e18 + TM1812_Control_CH_CurrState(TPK4_Amber,Control_OFF); + 5aec: 3102 movi r1, 2 + 5aee: 3009 movi r0, 9 + 5af0: 0789 br 0x5a02 // 5a02 + +Disassembly of section .text.Contol_Switch_ClickAction: + +00005af4 : + +void Contol_Switch_ClickAction(uint8_t ch,uint8_t state) +{ + 5af4: 14d0 push r15 + switch(ch) + 5af6: 3804 cmphsi r0, 5 + 5af8: 0809 bt 0x5b0a // 5b0a + case T_CH1: + case T_CH2: + case T_CH3: + case T_CH4: + case T_CH5: + if(g_switch.light_state[T_Backlight] == Control_ON){ + 5afa: 1068 lrw r3, 0x200005a4 // 5b18 + 5afc: 836a ld.b r3, (r3, 0xa) + 5afe: 3b41 cmpnei r3, 1 + 5b00: 0806 bt 0x5b0c // 5b0c + if(state == Control_ON ){ + 5b02: 3941 cmpnei r1, 1 + 5b04: 0804 bt 0x5b0c // 5b0c + Contol_Switch_Light_2(ch,Control_ON); + 5b06: e3fffe01 bsr 0x5708 // 5708 + break; + default: + + break; + } +} + 5b0a: 1490 pop r15 + if(state == Control_OFF ){ + 5b0c: 3942 cmpnei r1, 2 + 5b0e: 0bfe bt 0x5b0a // 5b0a + Contol_Switch_Light(ch,Control_OFF); + 5b10: e3fffc06 bsr 0x531c // 531c +} + 5b14: 07fb br 0x5b0a // 5b0a + 5b16: 0000 bkpt + 5b18: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Get_TM1812_State_Change: + +00005b1c : + + //TM1812 数据映射 + SIO_TXBUF_Send2(); +} + +U8_T Get_TM1812_State_Change(void){ + 5b1c: 14c2 push r4-r5 + + U8_T i=0,rev = 0; + if(tm1812_param.change_flag == 0x01) { + 5b1e: 106f lrw r3, 0x200001a0 // 5b58 + 5b20: 8318 ld.b r0, (r3, 0x18) + 5b22: 3841 cmpnei r0, 1 + 5b24: 0c19 bf 0x5b56 // 5b56 + 5b26: 104e lrw r2, 0x20000140 // 5b5c + 5b28: 3018 movi r0, 24 + 5b2a: 3300 movi r3, 0 + for(i=0;i + rev++; + 5b36: 2300 addi r3, 1 + 5b38: 74cc zextb r3, r3 + if(tm1812_param.gradient_flag[i] == 0x01) { + 5b3a: 5a84 addu r4, r2, r1 + 5b3c: 8480 ld.b r4, (r4, 0x0) + 5b3e: 3c41 cmpnei r4, 1 + 5b40: 0803 bt 0x5b46 // 5b46 + rev++; + 5b42: 2300 addi r3, 1 + 5b44: 74cc zextb r3, r3 + 5b46: 2800 subi r0, 1 + 5b48: 7400 zextb r0, r0 + for(i=0;i + } + } + + if(rev != 0x00) return 0x01; + 5b50: 3b40 cmpnei r3, 0 + 5b52: 6001 addc r0, r0 + return 0x01; //立即控制 + 5b54: 7400 zextb r0, r0 + return 0x00; +} + 5b56: 1482 pop r4-r5 + 5b58: 200001a0 .long 0x200001a0 + 5b5c: 20000140 .long 0x20000140 + +Disassembly of section .text.TimeCall_SIO_Send: + +00005b60 : + } +} + +/*定时器 — 2ms 调用*/ +volatile U8_T K=0; +void TimeCall_SIO_Send(void){ + 5b60: 14d4 push r4-r7, r15 + 5b62: 1421 subi r14, r14, 4 + 5b64: 1264 lrw r3, 0x20000140 // 5c74 + 5b66: 3188 movi r1, 136 + 5b68: 3260 movi r2, 96 + 5b6a: 604c addu r1, r3 + 5b6c: 608c addu r2, r3 + 5b6e: 3718 movi r7, 24 + 5b70: b860 st.w r3, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + 5b7e: 3448 movi r4, 72 + 5b80: 610c addu r4, r3 + { + if(tm1812_param.gradient_dir[i] == 0x01){ + 5b82: 84a0 ld.b r5, (r4, 0x0) + 5b84: 3d41 cmpnei r5, 1 + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 5b86: 7400 zextb r0, r0 + if(tm1812_param.gradient_dir[i] == 0x01){ + 5b88: 083a bt 0x5bfc // 5bfc + if(tm1812_param.curr_data[i] < TM1812_CH_ON){ + 5b8a: 35ff movi r5, 255 + 5b8c: 6542 cmpne r0, r5 + 5b8e: 0c34 bf 0x5bf6 // 5bf6 + //递增 + tm1812_param.gradient_cnt[i]++; + 5b90: 8280 ld.b r4, (r2, 0x0) + 5b92: 2400 addi r4, 1 + 5b94: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5b96: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 5b98: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5b9a: 0c05 bf 0x5ba4 // 5ba4 + tm1812_param.curr_data[i]++; + 5b9c: 2000 addi r0, 1 + //递减 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + + tm1812_param.gradient_cnt[i]++; + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + tm1812_param.curr_data[i]--; + 5b9e: a318 st.b r0, (r3, 0x18) + tm1812_param.gradient_cnt[i] = 0x00; + 5ba0: 3000 movi r0, 0 + 5ba2: a200 st.b r0, (r2, 0x0) + tm1812_param.curr_data[i] = tm1812_param.data[i]; + } + } + } + + tm1812_param.write_buff[i] = 0x00; + 5ba4: 3000 movi r0, 0 + 5ba6: b100 st.w r0, (r1, 0x0) + val = tm1812_param.curr_data[i]; + 5ba8: 83b8 ld.b r5, (r3, 0x18) + for(j=0;j<8;j++){ + if(val & 0x80){ + 5baa: 3480 movi r4, 128 + 5bac: 6914 and r4, r5 + 5bae: 3c40 cmpnei r4, 0 + 5bb0: 9180 ld.w r4, (r1, 0x0) + 5bb2: 0c44 bf 0x5c3a // 5c3a + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 5bb4: 3603 movi r6, 3 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5bb6: 7180 lsl r6, r0 + 5bb8: 2001 addi r0, 2 + 5bba: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 5bbc: 3850 cmpnei r0, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5bbe: b180 st.w r4, (r1, 0x0) + } + val <<= 0x01; + 5bc0: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 5bc2: 0bf4 bt 0x5baa // 5baa + 5bc4: 5f03 subi r0, r7, 1 + 5bc6: 75c0 zextb r7, r0 + for(i=0;i + +// SIO0->TXBUF = tm1812_param.write_buff[0]; +// tm1812_param.write_cnt=0x01; +// INTC_ISER_WRITE(SIO_INT); + + CK_CPU_DisAllNormalIrq(); //开启中断 + 5bd2: e3fff068 bsr 0x3ca2 // 3ca2 + + for(K=0;K + 5bda: a348 st.b r2, (r3, 0x8) + { + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5bdc: 3022 movi r0, 34 + 5bde: 1148 lrw r2, 0x2000002c // 5c7c + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5be0: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5be2: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5be4: 3501 movi r5, 1 + for(K=0;K + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 5bee: e3fff057 bsr 0x3c9c // 3c9c + +} + 5bf2: 1401 addi r14, r14, 4 + 5bf4: 1494 pop r4-r7, r15 + tm1812_param.gradient_dir[i] = 0x00; + 5bf6: 3000 movi r0, 0 + tm1812_param.gradient_dir[i] = 0x01; + 5bf8: a400 st.b r0, (r4, 0x0) + 5bfa: 07d5 br 0x5ba4 // 5ba4 + if(tm1812_param.curr_data[i] > TM1812_CH_OFF){ + 5bfc: 3840 cmpnei r0, 0 + 5bfe: 0c09 bf 0x5c10 // 5c10 + tm1812_param.gradient_cnt[i]++; + 5c00: 8280 ld.b r4, (r2, 0x0) + 5c02: 2400 addi r4, 1 + 5c04: 7510 zextb r4, r4 + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5c06: 3c40 cmpnei r4, 0 + tm1812_param.gradient_cnt[i]++; + 5c08: a280 st.b r4, (r2, 0x0) + if(tm1812_param.gradient_cnt[i] >= TM1812_CH_GradientTime){ + 5c0a: 0fcd bf 0x5ba4 // 5ba4 + tm1812_param.curr_data[i]--; + 5c0c: 2800 subi r0, 1 + 5c0e: 07c8 br 0x5b9e // 5b9e + tm1812_param.gradient_dir[i] = 0x01; + 5c10: 3001 movi r0, 1 + 5c12: 07f3 br 0x5bf8 // 5bf8 + if(tm1812_param.curr_data[i] < tm1812_param.data[i]){ + 5c14: 7400 zextb r0, r0 + 5c16: 8380 ld.b r4, (r3, 0x0) + 5c18: 6500 cmphs r0, r4 + 5c1a: 0807 bt 0x5c28 // 5c28 + if(tm1812_param.data[i] - tm1812_param.curr_data[i] > TM1812_CH_Transform){ + 5c1c: 5ca1 subu r5, r4, r0 + 5c1e: 3d24 cmplti r5, 5 + 5c20: 080b bt 0x5c36 // 5c36 + tm1812_param.curr_data[i] += TM1812_CH_Transform; + 5c22: 2003 addi r0, 4 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5c24: a318 st.b r0, (r3, 0x18) + 5c26: 07bf br 0x5ba4 // 5ba4 + }else if( tm1812_param.curr_data[i] > tm1812_param.data[i]){ + 5c28: 6410 cmphs r4, r0 + 5c2a: 0bbd bt 0x5ba4 // 5ba4 + if(tm1812_param.curr_data[i] - tm1812_param.data[i] > TM1812_CH_Transform){ + 5c2c: 58b1 subu r5, r0, r4 + 5c2e: 3d24 cmplti r5, 5 + 5c30: 0803 bt 0x5c36 // 5c36 + tm1812_param.curr_data[i] -= TM1812_CH_Transform; + 5c32: 2803 subi r0, 4 + 5c34: 07f8 br 0x5c24 // 5c24 + tm1812_param.curr_data[i] = tm1812_param.data[i]; + 5c36: a398 st.b r4, (r3, 0x18) + 5c38: 07b6 br 0x5ba4 // 5ba4 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5c3a: 3602 movi r6, 2 + 5c3c: 07bd br 0x5bb6 // 5bb6 + SIO0->TXBUF = tm1812_param.write_buff[K]; + 5c3e: 8328 ld.b r1, (r3, 0x8) + 5c40: 6040 addu r1, r0 + 5c42: 4122 lsli r1, r1, 2 + 5c44: 98c0 ld.w r6, (r14, 0x0) + 5c46: 6058 addu r1, r6 + 5c48: 9120 ld.w r1, (r1, 0x0) + 5c4a: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5c4c: 9228 ld.w r1, (r2, 0x20) + 5c4e: 6850 and r1, r4 + 5c50: 3940 cmpnei r1, 0 + 5c52: 0ffd bf 0x5c4c // 5c4c + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5c54: 922b ld.w r1, (r2, 0x2c) + 5c56: 3982 bclri r1, 2 + 5c58: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5c5a: 9228 ld.w r1, (r2, 0x20) + 5c5c: 6854 and r1, r5 + 5c5e: 3940 cmpnei r1, 0 + 5c60: 0ffd bf 0x5c5a // 5c5a + SIO0->ICR &= ~SIO_TXDNE; + 5c62: 922b ld.w r1, (r2, 0x2c) + 5c64: 3980 bclri r1, 0 + 5c66: b22b st.w r1, (r2, 0x2c) + for(K=0;K + 5c72: 0000 bkpt + 5c74: 20000140 .long 0x20000140 + 5c78: 20000220 .long 0x20000220 + 5c7c: 2000002c .long 0x2000002c + +Disassembly of section .text.TimeCall_SIO_Send2: + +00005c80 : + +volatile U8_T K2=0; +void TimeCall_SIO_Send2(void){ + 5c80: 14d4 push r4-r7, r15 + 5c82: 1421 subi r14, r14, 4 + 5c84: 1105 lrw r0, 0x20000140 // 5d18 + 5c86: 1166 lrw r3, 0x200001c8 // 5d1c + 5c88: 3218 movi r2, 24 + 5c8a: b800 st.w r0, (r14, 0x0) + + U8_T i=0,j=0; + U32_T val = 0; + for(i=0;i + tm1812_param.write_buff[i] |= TX_DH << (j*2); + 5c9e: 6d9f mov r6, r7 + }else{ + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5ca0: 7184 lsl r6, r1 + 5ca2: 2101 addi r1, 2 + 5ca4: 6d18 or r4, r6 + for(j=0;j<8;j++){ + 5ca6: 3950 cmpnei r1, 16 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5ca8: b380 st.w r4, (r3, 0x0) + } + val <<= 0x01; + 5caa: 45a1 lsli r5, r5, 1 + for(j=0;j<8;j++){ + 5cac: 0bf4 bt 0x5c94 // 5c94 + 5cae: 2a00 subi r2, 1 + 5cb0: 7488 zextb r2, r2 + for(i=0;i + } + } + + CK_CPU_DisAllNormalIrq(); //开启中断 + 5cba: e3ffeff4 bsr 0x3ca2 // 3ca2 + + for(K2=0;K2 + 5cc2: a349 st.b r2, (r3, 0x9) + { + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5cc4: 3022 movi r0, 34 + 5cc6: 1058 lrw r2, 0x2000002c // 5d24 + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5cc8: 3404 movi r4, 4 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5cca: 9240 ld.w r2, (r2, 0x0) + SIO0->ICR &= ~SIO_TXBUFEMPT; + while(!(SIO0->RISR & SIO_TXDNE)); + 5ccc: 3501 movi r5, 1 + for(K2=0;K2 + SIO0->ICR &= ~SIO_TXDNE; + } + + CK_CPU_EnAllNormalIrq(); + 5cd6: e3ffefe3 bsr 0x3c9c // 3c9c + +} + 5cda: 1401 addi r14, r14, 4 + 5cdc: 1494 pop r4-r7, r15 + tm1812_param.write_buff[i] |= TX_DL << (j*2); + 5cde: 3602 movi r6, 2 + 5ce0: 07e0 br 0x5ca0 // 5ca0 + SIO0->TXBUF = tm1812_param.write_buff[K2]; + 5ce2: 8329 ld.b r1, (r3, 0x9) + 5ce4: 6040 addu r1, r0 + 5ce6: 4122 lsli r1, r1, 2 + 5ce8: 98c0 ld.w r6, (r14, 0x0) + 5cea: 6058 addu r1, r6 + 5cec: 9120 ld.w r1, (r1, 0x0) + 5cee: b223 st.w r1, (r2, 0xc) + while(!(SIO0->RISR & SIO_TXBUFEMPT)); + 5cf0: 9228 ld.w r1, (r2, 0x20) + 5cf2: 6850 and r1, r4 + 5cf4: 3940 cmpnei r1, 0 + 5cf6: 0ffd bf 0x5cf0 // 5cf0 + SIO0->ICR &= ~SIO_TXBUFEMPT; + 5cf8: 922b ld.w r1, (r2, 0x2c) + 5cfa: 3982 bclri r1, 2 + 5cfc: b22b st.w r1, (r2, 0x2c) + while(!(SIO0->RISR & SIO_TXDNE)); + 5cfe: 9228 ld.w r1, (r2, 0x20) + 5d00: 6854 and r1, r5 + 5d02: 3940 cmpnei r1, 0 + 5d04: 0ffd bf 0x5cfe // 5cfe + SIO0->ICR &= ~SIO_TXDNE; + 5d06: 922b ld.w r1, (r2, 0x2c) + 5d08: 3980 bclri r1, 0 + 5d0a: b22b st.w r1, (r2, 0x2c) + for(K2=0;K2 + 5d16: 0000 bkpt + 5d18: 20000140 .long 0x20000140 + 5d1c: 200001c8 .long 0x200001c8 + 5d20: 20000220 .long 0x20000220 + 5d24: 2000002c .long 0x2000002c + +Disassembly of section .text.Tm1812_Task: + +00005d28 : + + +void Tm1812_Task(void) { + 5d28: 14d0 push r15 + + static U32_T StateChange_Tick = 0; + + if(Get_TM1812_State_Change() == 0x01){ + 5d2a: e3fffef9 bsr 0x5b1c // 5b1c + 5d2e: 3841 cmpnei r0, 1 + 5d30: 1070 lrw r3, 0x200001c0 // 5d70 + 5d32: 0812 bt 0x5d56 // 5d56 + if(SysTick_100us - StateChange_Tick >= 20){ + 5d34: 1030 lrw r1, 0x200000bc // 5d74 + 5d36: 9140 ld.w r2, (r1, 0x0) + 5d38: 931b ld.w r0, (r3, 0x6c) + 5d3a: 6082 subu r2, r0 + 5d3c: 3a13 cmphsi r2, 20 + 5d3e: 0c0b bf 0x5d54 // 5d54 + StateChange_Tick = SysTick_100us; + 5d40: 9140 ld.w r2, (r1, 0x0) + 5d42: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5d44: 104d lrw r2, 0x200000c0 // 5d78 + 5d46: 9240 ld.w r2, (r2, 0x0) + 5d48: b341 st.w r2, (r3, 0x4) + tm1812_param.change_flag = 0x00; + 5d4a: 106d lrw r3, 0x200001a0 // 5d7c + 5d4c: 3200 movi r2, 0 + 5d4e: a358 st.b r2, (r3, 0x18) + /*定期更新一下背光状态*/ + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + StateChange_Tick = SysTick_100us; + tm1812_param.regular_tick = SysTick_1ms; + + TimeCall_SIO_Send(); + 5d50: e3ffff08 bsr 0x5b60 // 5b60 + } + } + +} + 5d54: 1490 pop r15 + if(SysTick_1ms - tm1812_param.regular_tick >= 2000){ + 5d56: 1029 lrw r1, 0x200000c0 // 5d78 + 5d58: 9140 ld.w r2, (r1, 0x0) + 5d5a: 9301 ld.w r0, (r3, 0x4) + 5d5c: 6082 subu r2, r0 + 5d5e: 1009 lrw r0, 0x7cf // 5d80 + 5d60: 6480 cmphs r0, r2 + 5d62: 0bf9 bt 0x5d54 // 5d54 + StateChange_Tick = SysTick_100us; + 5d64: 1044 lrw r2, 0x200000bc // 5d74 + 5d66: 9240 ld.w r2, (r2, 0x0) + 5d68: b35b st.w r2, (r3, 0x6c) + tm1812_param.regular_tick = SysTick_1ms; + 5d6a: 9140 ld.w r2, (r1, 0x0) + 5d6c: b341 st.w r2, (r3, 0x4) + 5d6e: 07f1 br 0x5d50 // 5d50 + 5d70: 200001c0 .long 0x200001c0 + 5d74: 200000bc .long 0x200000bc + 5d78: 200000c0 .long 0x200000c0 + 5d7c: 200001a0 .long 0x200001a0 + 5d80: 000007cf .long 0x000007cf + +Disassembly of section .text.Tm1812_Ch_Insert_Data: + +00005d84 : + + +void Tm1812_Ch_Insert_Data(U8_T select,U8_T data) { + if(select>=CH_Num_Max) { //防止出错输入通道 + 5d84: 3817 cmphsi r0, 24 + 5d86: 080c bt 0x5d9e // 5d9e + return; + } + + tm1812_param.data[select] = data; + 5d88: 1066 lrw r3, 0x20000140 // 5da0 + 5d8a: 600c addu r0, r3 + tm1812_param.change_flag = 0x01; + 5d8c: 3260 movi r2, 96 + 5d8e: 608c addu r2, r3 + tm1812_param.data[select] = data; + 5d90: a020 st.b r1, (r0, 0x0) + tm1812_param.change_flag = 0x01; + 5d92: 3101 movi r1, 1 + 5d94: a238 st.b r1, (r2, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5d96: 237f addi r3, 128 + 5d98: 1043 lrw r2, 0x200000c0 // 5da4 + 5d9a: 9240 ld.w r2, (r2, 0x0) + 5d9c: b340 st.w r2, (r3, 0x0) +} + 5d9e: 783c jmp r15 + 5da0: 20000140 .long 0x20000140 + 5da4: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_Control_CH_State: + +00005da8 : + +U8_T TM1812_Control_CH_State(U8_T ch,U8_T state) +{ + 5da8: 14d0 push r15 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5daa: 3817 cmphsi r0, 24 + 5dac: 082a bt 0x5e00 // 5e00 + return 0x01; + } + + switch(state){ + 5dae: 3942 cmpnei r1, 2 + 5db0: 0c12 bf 0x5dd4 // 5dd4 + 5db2: 3943 cmpnei r1, 3 + 5db4: 0c14 bf 0x5ddc // 5ddc + 5db6: 3941 cmpnei r1, 1 + 5db8: 0806 bt 0x5dc4 // 5dc4 + case 0x01: + tm1812_param.data[ch] = TM1812_CH_ON; + 5dba: 1073 lrw r3, 0x20000140 // 5e04 + 5dbc: 600c addu r0, r3 + 5dbe: 3300 movi r3, 0 + 5dc0: 2b00 subi r3, 1 + break; + case 0x02: + tm1812_param.data[ch] = TM1812_CH_OFF; + 5dc2: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5dc4: 1071 lrw r3, 0x200001a0 // 5e08 + 5dc6: 3201 movi r2, 1 + 5dc8: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + + return 0; + 5dca: 3000 movi r0, 0 + tm1812_param.write_data_tick = SysTick_1ms; + 5dcc: 1050 lrw r2, 0x200000c0 // 5e0c + 5dce: 9240 ld.w r2, (r2, 0x0) + 5dd0: b348 st.w r2, (r3, 0x20) +} + 5dd2: 1490 pop r15 + tm1812_param.data[ch] = TM1812_CH_OFF; + 5dd4: 106c lrw r3, 0x20000140 // 5e04 + 5dd6: 600c addu r0, r3 + 5dd8: 3300 movi r3, 0 + 5dda: 07f4 br 0x5dc2 // 5dc2 + if(tm1812_param.data[ch] != TM1812_CH_ON){ + 5ddc: 106a lrw r3, 0x20000140 // 5e04 + 5dde: 600c addu r0, r3 + 5de0: 8020 ld.b r1, (r0, 0x0) + 5de2: 32ff movi r2, 255 + 5de4: 3300 movi r3, 0 + 5de6: 6486 cmpne r1, r2 + 5de8: 2b00 subi r3, 1 + 5dea: 0c07 bf 0x5df8 // 5df8 + tm1812_param.data[ch] = TM1812_CH_ON; + 5dec: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + 5dee: 1029 lrw r1, 0xab06 // 5e10 + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5df0: 3000 movi r0, 0 + 5df2: e3fff18b bsr 0x4108 // 4108 + 5df6: 07e7 br 0x5dc4 // 5dc4 + tm1812_param.data[ch] = TM1812_CH_OFF; + 5df8: 3300 movi r3, 0 + 5dfa: a060 st.b r3, (r0, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + 5dfc: 1026 lrw r1, 0xab0e // 5e14 + 5dfe: 07f9 br 0x5df0 // 5df0 + return 0x01; + 5e00: 3001 movi r0, 1 + 5e02: 07e8 br 0x5dd2 // 5dd2 + 5e04: 20000140 .long 0x20000140 + 5e08: 200001a0 .long 0x200001a0 + 5e0c: 200000c0 .long 0x200000c0 + 5e10: 0000ab06 .long 0x0000ab06 + 5e14: 0000ab0e .long 0x0000ab0e + +Disassembly of section .text.TM1812_Control_CH_CurrState: + +00005e18 : + +/*不帶渐变效果控製*/ +U8_T TM1812_Control_CH_CurrState(U8_T ch,U8_T state) +{ + 5e18: 14c1 push r4 + if(ch>=CH_Num_Max) { //防止出错输入通道 + 5e1a: 3817 cmphsi r0, 24 + 5e1c: 0827 bt 0x5e6a // 5e6a + return 0x01; + } + + switch(state){ + 5e1e: 3942 cmpnei r1, 2 + 5e20: 0c13 bf 0x5e46 // 5e46 + 5e22: 3943 cmpnei r1, 3 + 5e24: 0c15 bf 0x5e4e // 5e4e + 5e26: 3941 cmpnei r1, 1 + 5e28: 0807 bt 0x5e36 // 5e36 + case 0x01: + tm1812_param.curr_data[ch] = TM1812_CH_ON; + 5e2a: 1072 lrw r3, 0x20000140 // 5e70 + 5e2c: 600c addu r0, r3 + 5e2e: 3300 movi r3, 0 + 5e30: 2b00 subi r3, 1 + tm1812_param.data[ch] = TM1812_CH_ON; + break; + case 0x02: + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5e32: a078 st.b r3, (r0, 0x18) + tm1812_param.curr_data[ch] = TM1812_CH_ON; + tm1812_param.data[ch] = TM1812_CH_ON; + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_ON !"); + }else { + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + tm1812_param.data[ch] = TM1812_CH_OFF; + 5e34: a060 st.b r3, (r0, 0x0) + //Dbg_Println(DBG_BIT_SYS_STATUS,"CH_OFF !"); + } + break; + } + + tm1812_param.change_flag = 0x01; + 5e36: 1070 lrw r3, 0x200001a0 // 5e74 + 5e38: 3201 movi r2, 1 + 5e3a: a358 st.b r2, (r3, 0x18) + tm1812_param.write_data_tick = SysTick_1ms; + 5e3c: 3000 movi r0, 0 + 5e3e: 104f lrw r2, 0x200000c0 // 5e78 + 5e40: 9240 ld.w r2, (r2, 0x0) + 5e42: b348 st.w r2, (r3, 0x20) + + return 0; +} + 5e44: 1481 pop r4 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5e46: 106b lrw r3, 0x20000140 // 5e70 + 5e48: 600c addu r0, r3 + 5e4a: 3300 movi r3, 0 + 5e4c: 07f3 br 0x5e32 // 5e32 + if(tm1812_param.curr_data[ch] != TM1812_CH_ON){ + 5e4e: 1069 lrw r3, 0x20000140 // 5e70 + 5e50: 600c addu r0, r3 + 5e52: 3218 movi r2, 24 + 5e54: 6080 addu r2, r0 + 5e56: 8280 ld.b r4, (r2, 0x0) + 5e58: 31ff movi r1, 255 + 5e5a: 3300 movi r3, 0 + 5e5c: 6452 cmpne r4, r1 + 5e5e: 2b00 subi r3, 1 + 5e60: 0c03 bf 0x5e66 // 5e66 + tm1812_param.curr_data[ch] = TM1812_CH_OFF; + 5e62: a260 st.b r3, (r2, 0x0) + 5e64: 07e8 br 0x5e34 // 5e34 + 5e66: 3300 movi r3, 0 + 5e68: 07fd br 0x5e62 // 5e62 + return 0x01; + 5e6a: 3001 movi r0, 1 + 5e6c: 07ec br 0x5e44 // 5e44 + 5e6e: 0000 bkpt + 5e70: 20000140 .long 0x20000140 + 5e74: 200001a0 .long 0x200001a0 + 5e78: 200000c0 .long 0x200000c0 + +Disassembly of section .text.TM1812_LED_Init: + +00005e7c : +void TM1812_LED_Init(void){ + 5e7c: 14d0 push r15 + 5e7e: 1426 subi r14, r14, 24 + SIO_DeInit(); + 5e80: e3ffe3a2 bsr 0x25c4 // 25c4 + SIO_IO_Init(SIO_PA03); //配置IO为SIO模式 + 5e84: 3001 movi r0, 1 + 5e86: e3ffe3af bsr 0x25e4 // 25e4 + SIO_TX_Init(SIOCLK_EN,9); // + 5e8a: 3109 movi r1, 9 + 5e8c: 3001 movi r0, 1 + 5e8e: e3ffe3db bsr 0x2644 // 2644 + SIO_TX_Configure(SIO_IDLE_LOW,SIO_TX_LSB,7,23,0,0,SIO_OBH_6BIT,SIO_OBL_6BIT,0x0F,0x03); + 5e92: 3303 movi r3, 3 + 5e94: b865 st.w r3, (r14, 0x14) + 5e96: 330f movi r3, 15 + 5e98: b864 st.w r3, (r14, 0x10) + 5e9a: 33a0 movi r3, 160 + 5e9c: 4366 lsli r3, r3, 6 + 5e9e: b863 st.w r3, (r14, 0xc) + 5ea0: 33a0 movi r3, 160 + 5ea2: 4363 lsli r3, r3, 3 + 5ea4: b862 st.w r3, (r14, 0x8) + 5ea6: 3300 movi r3, 0 + 5ea8: b861 st.w r3, (r14, 0x4) + 5eaa: b860 st.w r3, (r14, 0x0) + 5eac: 3207 movi r2, 7 + 5eae: 3317 movi r3, 23 + 5eb0: 3100 movi r1, 0 + 5eb2: 3002 movi r0, 2 + 5eb4: e3ffe3d0 bsr 0x2654 // 2654 + memset(&tm1812_param,0,sizeof(TM1812_Param)); + 5eb8: 32e8 movi r2, 232 + 5eba: 3100 movi r1, 0 + 5ebc: 100a lrw r0, 0x20000140 // 5ee4 + 5ebe: e3ffdec1 bsr 0x1c40 // 1c40 <__memset_fast> + RLY1_HOT_CLOSE; + 5ec2: 3101 movi r1, 1 + 5ec4: 3012 movi r0, 18 + 5ec6: e3ffffa9 bsr 0x5e18 // 5e18 + RLY2_COLD_CLOSE; + 5eca: 3101 movi r1, 1 + 5ecc: 3013 movi r0, 19 + 5ece: e3ffffa5 bsr 0x5e18 // 5e18 + RLY_CTRL_EN; //继电器使能 + 5ed2: 3101 movi r1, 1 + 5ed4: 3017 movi r0, 23 + 5ed6: e3ffffa1 bsr 0x5e18 // 5e18 + TimeCall_SIO_Send2(); + 5eda: e3fffed3 bsr 0x5c80 // 5c80 +} + 5ede: 1406 addi r14, r14, 24 + 5ee0: 1490 pop r15 + 5ee2: 0000 bkpt + 5ee4: 20000140 .long 0x20000140 + +Disassembly of section .text.HT1621_WR_Data: + +00005ee8 : +*函数功能:HT1621写数据 +*参数说明:data -> 需要发送的数据 +* cnt -> 发送的数据位数 +*/ +void HT1621_WR_Data(U8_T data,U8_T cnt) +{ + 5ee8: 14d4 push r4-r7, r15 + 5eea: 6d43 mov r5, r0 + 5eec: 6dc7 mov r7, r1 + U8_T i=0; + for(i=0;i + for(i=0;i + nop; + HT1621_WR_HIGH; + + data<<=1; + } +} + 5ef6: 1494 pop r4-r7, r15 + HT1621_WR_LOW; + 5ef8: 3101 movi r1, 1 + 5efa: 9600 ld.w r0, (r6, 0x0) + 5efc: e3ffe2ec bsr 0x24d4 // 24d4 + nop; + 5f00: 6c03 mov r0, r0 + if((data&0x80) != 0x00) { + 5f02: 74d6 sextb r3, r5 + 5f04: 3bdf btsti r3, 31 + HT1621_DATA_HIGH; + 5f06: 3104 movi r1, 4 + 5f08: 9600 ld.w r0, (r6, 0x0) + if((data&0x80) != 0x00) { + 5f0a: 0c0d bf 0x5f24 // 5f24 + HT1621_DATA_HIGH; + 5f0c: e3ffe2e0 bsr 0x24cc // 24cc + nop; + 5f10: 6c03 mov r0, r0 + HT1621_WR_HIGH; + 5f12: 3101 movi r1, 1 + 5f14: 9600 ld.w r0, (r6, 0x0) + data<<=1; + 5f16: 45a1 lsli r5, r5, 1 + for(i=0;i + data<<=1; + 5f1e: 7554 zextb r5, r5 + for(i=0;i + HT1621_DATA_LOW; + 5f24: e3ffe2d8 bsr 0x24d4 // 24d4 + 5f28: 07f4 br 0x5f10 // 5f10 + 5f2a: 0000 bkpt + 5f2c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_WR_CMD: + +00005f30 : +/* +*函数功能:HT1621命令写入函数 +*参数说明:cmd -> 写入命令数据 +*/ +void HT1621_WR_CMD(U8_T cmd) +{ + 5f30: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 5f32: 108b lrw r4, 0x2000004c // 5f5c +{ + 5f34: 6d43 mov r5, r0 + HT1621_CS_LOW; + 5f36: 310f movi r1, 15 + 5f38: 9400 ld.w r0, (r4, 0x0) + 5f3a: e3ffe2cd bsr 0x24d4 // 24d4 + nop; + 5f3e: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_CMD_Flag,4); + 5f40: 3104 movi r1, 4 + 5f42: 3080 movi r0, 128 + 5f44: e3ffffd2 bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(cmd,8); + 5f48: 6c17 mov r0, r5 + 5f4a: 3108 movi r1, 8 + 5f4c: e3ffffce bsr 0x5ee8 // 5ee8 + HT1621_CS_HIGH; + 5f50: 9400 ld.w r0, (r4, 0x0) + 5f52: 310f movi r1, 15 + 5f54: e3ffe2bc bsr 0x24cc // 24cc + nop; + 5f58: 6c03 mov r0, r0 +} + 5f5a: 1492 pop r4-r5, r15 + 5f5c: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Init: + +00005f60 : +void HT1621_Init(void){ + 5f60: 14d1 push r4, r15 + GPIO_Init(GPIOA0,0,Output); + 5f62: 118b lrw r4, 0x2000004c // 600c + memset(&HT1621,0,sizeof(HT1621_t)); + 5f64: 3240 movi r2, 64 + 5f66: 3100 movi r1, 0 + 5f68: 110a lrw r0, 0x200005c0 // 6010 + 5f6a: e3ffde6b bsr 0x1c40 // 1c40 <__memset_fast> + GPIO_Init(GPIOA0,0,Output); + 5f6e: 9400 ld.w r0, (r4, 0x0) + 5f70: 3200 movi r2, 0 + 5f72: 3100 movi r1, 0 + 5f74: e3ffe0f0 bsr 0x2154 // 2154 + GPIO_Init(GPIOA0,1,Output); + 5f78: 9400 ld.w r0, (r4, 0x0) + 5f7a: 3200 movi r2, 0 + 5f7c: 3101 movi r1, 1 + 5f7e: e3ffe0eb bsr 0x2154 // 2154 + GPIO_Init(GPIOA0,15,Output); + 5f82: 9400 ld.w r0, (r4, 0x0) + 5f84: 3200 movi r2, 0 + 5f86: 310f movi r1, 15 + 5f88: e3ffe0e6 bsr 0x2154 // 2154 + GPIO_Init(GPIOA0,4,Output); + 5f8c: 3200 movi r2, 0 + 5f8e: 9400 ld.w r0, (r4, 0x0) + 5f90: 3104 movi r1, 4 + 5f92: e3ffe0e1 bsr 0x2154 // 2154 + GPIO_DriveStrength_EN(GPIOA0,0); + 5f96: 9400 ld.w r0, (r4, 0x0) + 5f98: 3100 movi r1, 0 + 5f9a: e3ffe157 bsr 0x2248 // 2248 + GPIO_DriveStrength_EN(GPIOA0,1); + 5f9e: 9400 ld.w r0, (r4, 0x0) + 5fa0: 3101 movi r1, 1 + 5fa2: e3ffe153 bsr 0x2248 // 2248 + GPIO_DriveStrength_EN(GPIOA0,15); + 5fa6: 9400 ld.w r0, (r4, 0x0) + 5fa8: 310f movi r1, 15 + 5faa: e3ffe14f bsr 0x2248 // 2248 + GPIO_DriveStrength_EN(GPIOA0,4); + 5fae: 9400 ld.w r0, (r4, 0x0) + 5fb0: 3104 movi r1, 4 + 5fb2: e3ffe14b bsr 0x2248 // 2248 + HT1621_CS_LOW; + 5fb6: 9400 ld.w r0, (r4, 0x0) + 5fb8: 310f movi r1, 15 + 5fba: e3ffe28d bsr 0x24d4 // 24d4 + HT1621_WR_LOW; + 5fbe: 9400 ld.w r0, (r4, 0x0) + 5fc0: 3101 movi r1, 1 + 5fc2: e3ffe289 bsr 0x24d4 // 24d4 + HT1621_RD_LOW; + 5fc6: 9400 ld.w r0, (r4, 0x0) + 5fc8: 3100 movi r1, 0 + 5fca: e3ffe285 bsr 0x24d4 // 24d4 + HT1621_DATA_LOW; + 5fce: 3104 movi r1, 4 + 5fd0: 9400 ld.w r0, (r4, 0x0) + 5fd2: e3ffe281 bsr 0x24d4 // 24d4 + HT1621_WR_CMD(HT1621_BIAS); + 5fd6: 3052 movi r0, 82 + 5fd8: e3ffffac bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_RC256); + 5fdc: 3030 movi r0, 48 + 5fde: e3ffffa9 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_SYSDIS); + 5fe2: 3000 movi r0, 0 + 5fe4: e3ffffa6 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_WDTDIS); + 5fe8: 300a movi r0, 10 + 5fea: e3ffffa3 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_SYSEN); + 5fee: 3002 movi r0, 2 + 5ff0: e3ffffa0 bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_LCDON); + 5ff4: 3006 movi r0, 6 + 5ff6: e3ffff9d bsr 0x5f30 // 5f30 + HT1621_WR_CMD(HT1621_BIOFF); + 5ffa: 3010 movi r0, 16 + 5ffc: e3ffff9a bsr 0x5f30 // 5f30 + HT1621_CS_HIGH; + 6000: 9400 ld.w r0, (r4, 0x0) + 6002: 310f movi r1, 15 + 6004: e3ffe264 bsr 0x24cc // 24cc +} + 6008: 1491 pop r4, r15 + 600a: 0000 bkpt + 600c: 2000004c .long 0x2000004c + 6010: 200005c0 .long 0x200005c0 + +Disassembly of section .text.HT1621_Clear: + +00006014 : +} +/* +*函数功能:HT1621 清屏函数 +*/ +void HT1621_Clear(void) +{ + 6014: 14d2 push r4-r5, r15 + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 6016: 3214 movi r2, 20 + 6018: 3100 movi r1, 0 + + HT1621_CS_LOW; + 601a: 10b1 lrw r5, 0x2000004c // 605c + memset((U8_T *)HT1621.show_cache, 0, HT1621_BUFFLEN); + 601c: 1011 lrw r0, 0x200005cc // 6060 + 601e: e3ffde11 bsr 0x1c40 // 1c40 <__memset_fast> + HT1621_CS_LOW; + 6022: 310f movi r1, 15 + 6024: 9500 ld.w r0, (r5, 0x0) + 6026: e3ffe257 bsr 0x24d4 // 24d4 + nop; + 602a: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 602c: 3103 movi r1, 3 + 602e: 30a0 movi r0, 160 + 6030: e3ffff5c bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(0,6); + 6034: 3106 movi r1, 6 + 6036: 3000 movi r0, 0 + 6038: e3ffff58 bsr 0x5ee8 // 5ee8 + 603c: 3414 movi r4, 20 + 603e: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 604e: 9500 ld.w r0, (r5, 0x0) + 6050: 310f movi r1, 15 + 6052: e3ffe23d bsr 0x24cc // 24cc + nop; + 6056: 6c03 mov r0, r0 +} + 6058: 1492 pop r4-r5, r15 + 605a: 0000 bkpt + 605c: 2000004c .long 0x2000004c + 6060: 200005cc .long 0x200005cc + +Disassembly of section .text.HT1621_ALLON: + +00006064 : + +/* +*函数功能:HT1621 全显函数 +*/ +void HT1621_ALLON(void) +{ + 6064: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 6066: 10af lrw r5, 0x2000004c // 60a0 + 6068: 310f movi r1, 15 + 606a: 9500 ld.w r0, (r5, 0x0) + 606c: e3ffe234 bsr 0x24d4 // 24d4 + nop; + 6070: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 6072: 3103 movi r1, 3 + 6074: 30a0 movi r0, 160 + 6076: e3ffff39 bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(0,6); + 607a: 3106 movi r1, 6 + 607c: 3000 movi r0, 0 + 607e: e3ffff35 bsr 0x5ee8 // 5ee8 + 6082: 3414 movi r4, 20 + 6084: 2c00 subi r4, 1 + for(U8_T i=0;i + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 6094: 9500 ld.w r0, (r5, 0x0) + 6096: 310f movi r1, 15 + 6098: e3ffe21a bsr 0x24cc // 24cc + nop; + 609c: 6c03 mov r0, r0 +} + 609e: 1492 pop r4-r5, r15 + 60a0: 2000004c .long 0x2000004c + +Disassembly of section .text.HT1621_Refresh_Data: + +000060a4 : + +/* +*函数功能:HT1621 刷屏函数 +*/ +void HT1621_Refresh_Data(void){ + 60a4: 14d2 push r4-r5, r15 + HT1621_CS_LOW; + 60a6: 1091 lrw r4, 0x2000004c // 60e8 + 60a8: 310f movi r1, 15 + 60aa: 9400 ld.w r0, (r4, 0x0) + 60ac: e3ffe214 bsr 0x24d4 // 24d4 + nop; + 60b0: 6c03 mov r0, r0 + HT1621_WR_Data(HT1621_WRITE_Flag,3); + 60b2: 3103 movi r1, 3 + 60b4: 30a0 movi r0, 160 + 60b6: e3ffff19 bsr 0x5ee8 // 5ee8 + HT1621_WR_Data(0,6); + 60ba: 3106 movi r1, 6 + 60bc: 3000 movi r0, 0 + 60be: e3ffff15 bsr 0x5ee8 // 5ee8 + 60c2: 3500 movi r5, 0 + for(U8_T i=0;i + 60c6: 60d4 addu r3, r5 + 60c8: 830c ld.b r0, (r3, 0xc) + 60ca: 4004 lsli r0, r0, 4 + 60cc: 7400 zextb r0, r0 + 60ce: 3104 movi r1, 4 + 60d0: 2500 addi r5, 1 + 60d2: e3ffff0b bsr 0x5ee8 // 5ee8 + for(U8_T i=0;i + } + + HT1621_CS_HIGH; + 60da: 9400 ld.w r0, (r4, 0x0) + 60dc: 310f movi r1, 15 + 60de: e3ffe1f7 bsr 0x24cc // 24cc + nop; + 60e2: 6c03 mov r0, r0 +} + 60e4: 1492 pop r4-r5, r15 + 60e6: 0000 bkpt + 60e8: 2000004c .long 0x2000004c + 60ec: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temperature_Display: + +000060f0 : +*函数功能:设置温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Set_Temperature_Display(U16_T tmp) +{ + 60f0: 14d4 push r4-r7, r15 + 60f2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 60f4: 1170 lrw r3, 0x20000868 // 61b4 + 60f6: 8368 ld.b r3, (r3, 0x8) + 60f8: 3b40 cmpnei r3, 0 +{ + 60fa: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 60fc: b861 st.w r3, (r14, 0x4) + 60fe: 0845 bt 0x6188 // 6188 + tmp_Integer = tmp/10; + 6100: 310a movi r1, 10 + 6102: e3ffed97 bsr 0x3c30 // 3c30 <__udivsi3> + 6106: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 6108: 310a movi r1, 10 + 610a: 6c13 mov r0, r4 + 610c: e3ffedb6 bsr 0x3c78 // 3c78 <__umodsi3> + tmp_L = tmp_Integer%10; + //清楚原数字 + + HT1621.show_cache[12] &= 0x01; + HT1621.show_cache[11] = 0x00; + HT1621.show_cache[10] &= 0x01; + 6110: 118a lrw r4, 0x200005c0 // 61b8 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 6112: 74c0 zextb r3, r0 + HT1621.show_cache[10] &= 0x01; + 6114: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 6116: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[10] &= 0x01; + 6118: 8476 ld.b r3, (r4, 0x16) + 611a: 68d4 and r3, r5 + 611c: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[9] = 0x00; + HT1621.show_cache[8] &= 0x01; + 611e: 8474 ld.b r3, (r4, 0x14) + 6120: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 6122: 310a movi r1, 10 + 6124: 6c1b mov r0, r6 + HT1621.show_cache[8] &= 0x01; + 6126: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 6128: e3ffed84 bsr 0x3c30 // 3c30 <__udivsi3> + HT1621.show_cache[7] = 0x00; + + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 612c: 11e4 lrw r7, 0xa74a // 61bc + 612e: 7400 zextb r0, r0 + 6130: 601c addu r0, r7 + 6132: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[12] &= 0x01; + 6134: 8458 ld.b r2, (r4, 0x18) + 6136: 6894 and r2, r5 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 6138: 6c07 mov r0, r1 + 613a: 350f movi r5, 15 + 613c: 6814 and r0, r5 + 613e: 6c80 or r2, r0 + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 6140: 4924 lsri r1, r1, 4 + HT1621.show_cache[12] |= Diaital[tmp_H]&0x0F; + 6142: a458 st.b r2, (r4, 0x18) + HT1621.show_cache[11] |= Diaital[tmp_H] >> 4; + 6144: a437 st.b r1, (r4, 0x17) + tmp_L = tmp_Integer%10; + 6146: 6c1b mov r0, r6 + 6148: 310a movi r1, 10 + 614a: e3ffed97 bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 614e: 7400 zextb r0, r0 + 6150: 601c addu r0, r7 + 6152: 8040 ld.b r2, (r0, 0x0) + 6154: 6c4b mov r1, r2 + 6156: 6854 and r1, r5 + 6158: 9862 ld.w r3, (r14, 0x8) + 615a: 6c4c or r1, r3 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 615c: 9860 ld.w r3, (r14, 0x0) + 615e: 61cc addu r7, r3 + 6160: 8760 ld.b r3, (r7, 0x0) + 6162: 694c and r5, r3 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 6164: 4b64 lsri r3, r3, 4 + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 6166: 4a44 lsri r2, r2, 4 + HT1621.show_cache[7] |= Diaital[tmp_quantile] >> 4; + 6168: a473 st.b r3, (r4, 0x13) + + + if(Debug_Inf.TempDisplay == 0x00){ + 616a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[9] |= Diaital[tmp_L] >> 4; + 616c: a455 st.b r2, (r4, 0x15) + if(Debug_Inf.TempDisplay == 0x00){ + 616e: 3b40 cmpnei r3, 0 + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 6170: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[10] |= Diaital[tmp_L]&0x0F; + 6172: a436 st.b r1, (r4, 0x16) + HT1621.show_cache[8] |= Diaital[tmp_quantile]&0x0F; + 6174: 6d48 or r5, r2 + 6176: 8472 ld.b r3, (r4, 0x12) + if(Debug_Inf.TempDisplay == 0x00){ + 6178: 081a bt 0x61ac // 61ac + HT1621.show_cache[6] |= 0x0A;//显示“℃” + 617a: 3ba1 bseti r3, 1 + 617c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[6] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[8] |= 0x01; + 617e: 3da0 bseti r5, 0 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 6180: a472 st.b r3, (r4, 0x12) + HT1621.show_cache[8] |= 0x01; + 6182: a4b4 st.b r5, (r4, 0x14) +} + 6184: 1404 addi r14, r14, 16 + 6186: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 6188: 3012 movi r0, 18 + 618a: 7c10 mult r0, r4 + 618c: 310a movi r1, 10 + 618e: 34a0 movi r4, 160 + 6190: e3ffed3e bsr 0x3c0c // 3c0c <__divsi3> + 6194: 4481 lsli r4, r4, 1 + 6196: 6100 addu r4, r0 + 6198: 310a movi r1, 10 + 619a: 6c13 mov r0, r4 + 619c: e3ffed38 bsr 0x3c0c // 3c0c <__divsi3> + 61a0: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 61a2: 310a movi r1, 10 + 61a4: 6c13 mov r0, r4 + 61a6: e3ffed57 bsr 0x3c54 // 3c54 <__modsi3> + 61aa: 07b3 br 0x6110 // 6110 + HT1621.show_cache[6] |= 0x0C;//显示“℉” + 61ac: 3ba2 bseti r3, 2 + 61ae: 3ba3 bseti r3, 3 + 61b0: 07e7 br 0x617e // 617e + 61b2: 0000 bkpt + 61b4: 20000868 .long 0x20000868 + 61b8: 200005c0 .long 0x200005c0 + 61bc: 0000a74a .long 0x0000a74a + +Disassembly of section .text.Local_Temperature_Display: + +000061c0 : +*函数功能:本地温度℃显示 +*参数说明:因为需要显示小数点后一位,所以参数需要扩大10 +*说 明:可显示小数点, +*/ +void Local_Temperature_Display(U16_T tmp) +{ + 61c0: 14d4 push r4-r7, r15 + 61c2: 1424 subi r14, r14, 16 + U8_T tmp_Integer = 0; + U8_T tmp_quantile = 0; + U8_T tmp_H = 0; + U8_T tmp_L = 0; + + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 61c4: 1170 lrw r3, 0x20000868 // 6284 + 61c6: 8368 ld.b r3, (r3, 0x8) + 61c8: 3b40 cmpnei r3, 0 +{ + 61ca: 6d03 mov r4, r0 + if(Debug_Inf.TempDisplay == 0x00){//摄氏度 + 61cc: b861 st.w r3, (r14, 0x4) + 61ce: 0845 bt 0x6258 // 6258 + tmp_Integer = tmp/10; + 61d0: 310a movi r1, 10 + 61d2: e3ffed2f bsr 0x3c30 // 3c30 <__udivsi3> + 61d6: 7580 zextb r6, r0 + tmp_quantile = tmp%10; + 61d8: 310a movi r1, 10 + 61da: 6c13 mov r0, r4 + 61dc: e3ffed4e bsr 0x3c78 // 3c78 <__umodsi3> + tmp_L = tmp_Integer%10; + //清除原数字 + + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + 61e0: 118a lrw r4, 0x200005c0 // 6288 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 61e2: 74c0 zextb r3, r0 + HT1621.show_cache[17] &= 0x01; + 61e4: 3501 movi r5, 1 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 61e6: b860 st.w r3, (r14, 0x0) + HT1621.show_cache[17] &= 0x01; + 61e8: 847d ld.b r3, (r4, 0x1d) + 61ea: 68d4 and r3, r5 + 61ec: b862 st.w r3, (r14, 0x8) + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 61ee: 847b ld.b r3, (r4, 0x1b) + 61f0: 68d4 and r3, r5 + tmp_H = tmp_Integer/10; + 61f2: 310a movi r1, 10 + 61f4: 6c1b mov r0, r6 + HT1621.show_cache[15] &= 0x01; + 61f6: b863 st.w r3, (r14, 0xc) + tmp_H = tmp_Integer/10; + 61f8: e3ffed1c bsr 0x3c30 // 3c30 <__udivsi3> + HT1621.show_cache[14] = 0x00; + + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 61fc: 11e4 lrw r7, 0xa74a // 628c + 61fe: 7400 zextb r0, r0 + 6200: 601c addu r0, r7 + 6202: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 6204: 845f ld.b r2, (r4, 0x1f) + 6206: 6894 and r2, r5 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6208: 6c07 mov r0, r1 + 620a: 350f movi r5, 15 + 620c: 6814 and r0, r5 + 620e: 6c80 or r2, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 6210: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 6212: a45f st.b r2, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 6214: a43e st.b r1, (r4, 0x1e) + tmp_L = tmp_Integer%10; + 6216: 6c1b mov r0, r6 + 6218: 310a movi r1, 10 + 621a: e3ffed2f bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 621e: 7400 zextb r0, r0 + 6220: 601c addu r0, r7 + 6222: 8040 ld.b r2, (r0, 0x0) + 6224: 6c4b mov r1, r2 + 6226: 6854 and r1, r5 + 6228: 9862 ld.w r3, (r14, 0x8) + 622a: 6c4c or r1, r3 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 622c: 9860 ld.w r3, (r14, 0x0) + 622e: 61cc addu r7, r3 + 6230: 8760 ld.b r3, (r7, 0x0) + 6232: 694c and r5, r3 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6234: 4b64 lsri r3, r3, 4 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 6236: 4a44 lsri r2, r2, 4 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6238: a47a st.b r3, (r4, 0x1a) + + + if(Debug_Inf.TempDisplay == 0x00){ + 623a: 9861 ld.w r3, (r14, 0x4) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 623c: a45c st.b r2, (r4, 0x1c) + if(Debug_Inf.TempDisplay == 0x00){ + 623e: 3b40 cmpnei r3, 0 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6240: 9843 ld.w r2, (r14, 0xc) + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 6242: a43d st.b r1, (r4, 0x1d) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6244: 6d48 or r5, r2 + 6246: 8479 ld.b r3, (r4, 0x19) + if(Debug_Inf.TempDisplay == 0x00){ + 6248: 081a bt 0x627c // 627c + HT1621.show_cache[13] |= 0x0A;//显示“℃” + 624a: 3ba1 bseti r3, 1 + 624c: 3ba3 bseti r3, 3 + }else { + HT1621.show_cache[13] |= 0x0C;//显示“℉” + } + + //显示小数点 + HT1621.show_cache[15] |= 0x01; + 624e: 3da0 bseti r5, 0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 6250: a479 st.b r3, (r4, 0x19) + HT1621.show_cache[15] |= 0x01; + 6252: a4bb st.b r5, (r4, 0x1b) +} + 6254: 1404 addi r14, r14, 16 + 6256: 1494 pop r4-r7, r15 + tmp_Integer = ((tmp*18)/10 + 320)/10; + 6258: 3012 movi r0, 18 + 625a: 7c10 mult r0, r4 + 625c: 310a movi r1, 10 + 625e: 34a0 movi r4, 160 + 6260: e3ffecd6 bsr 0x3c0c // 3c0c <__divsi3> + 6264: 4481 lsli r4, r4, 1 + 6266: 6100 addu r4, r0 + 6268: 310a movi r1, 10 + 626a: 6c13 mov r0, r4 + 626c: e3ffecd0 bsr 0x3c0c // 3c0c <__divsi3> + 6270: 7580 zextb r6, r0 + tmp_quantile = ((tmp*18)/10 + 320)%10; + 6272: 310a movi r1, 10 + 6274: 6c13 mov r0, r4 + 6276: e3ffecef bsr 0x3c54 // 3c54 <__modsi3> + 627a: 07b3 br 0x61e0 // 61e0 + HT1621.show_cache[13] |= 0x0C;//显示“℉” + 627c: 3ba2 bseti r3, 2 + 627e: 3ba3 bseti r3, 3 + 6280: 07e7 br 0x624e // 624e + 6282: 0000 bkpt + 6284: 20000868 .long 0x20000868 + 6288: 200005c0 .long 0x200005c0 + 628c: 0000a74a .long 0x0000a74a + +Disassembly of section .text.Control_Mode: + +00006290 : +*参数功能:mode : 0 -> 制冷模式; +* 1 -> 制热模式; +* 2 -> 送风模式; +* 4 -> 自动; +*/ +void Control_Mode(U8_T mode){ + 6290: 14d1 push r4, r15 + switch(mode){ + 6292: 3806 cmphsi r0, 7 + 6294: 0823 bt 0x62da // 62da + 6296: e3ffd54b bsr 0xd2c // d2c <___gnu_csky_case_uhi> + 629a: 0007 .short 0x0007 + 629c: 005a0020 .long 0x005a0020 + 62a0: 009a0020 .long 0x009a0020 + 62a4: 00da0020 .long 0x00da0020 + case MODEL_COLD: + if(Debug_Inf.Language_Selection == 0x00) + 62a8: 0376 lrw r3, 0x20000868 // 64cc + 62aa: 8349 ld.b r2, (r3, 0x9) + 62ac: 3a40 cmpnei r2, 0 + 62ae: 0376 lrw r3, 0x200005c0 // 64d0 + 62b0: 0816 bt 0x62dc // 62dc + { + HT1621.show_cache[0] &= ~0x0C; + HT1621.show_cache[1] &= ~0x07; + 62b2: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 62b4: 830e ld.b r0, (r3, 0xe) + 62b6: 6811 andn r0, r4 + 62b8: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 62ba: 830f ld.b r0, (r3, 0xf) + 62bc: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 62be: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 62c0: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 62c2: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 62c4: 3982 bclri r1, 2 + 62c6: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 62c8: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 62ca: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 62cc: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 62ce: a311 st.b r0, (r3, 0x11) + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[0] |= 0x08; + 62d0: 39a2 bseti r1, 2 + 62d2: 39a3 bseti r1, 3 + HT1621.show_cache[2] &= ~0x07; + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + + HT1621.show_cache[0] |= 0x04; + HT1621.show_cache[1] |= 0x01; + 62d4: 3aa0 bseti r2, 0 + HT1621.show_cache[0] |= 0x04; + 62d6: a32c st.b r1, (r3, 0xc) + HT1621.show_cache[1] |= 0x01; + 62d8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + HT1621.show_cache[5] &= ~0x01; + } + break; + } +} + 62da: 1491 pop r4, r15 + else if(Debug_Inf.Language_Selection == 0x01) + 62dc: 3a41 cmpnei r2, 1 + 62de: 0812 bt 0x6302 // 6302 + HT1621.show_cache[1] &= ~0x07; + 62e0: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 62e2: 830e ld.b r0, (r3, 0xe) + 62e4: 6811 andn r0, r4 + 62e6: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 62e8: 830f ld.b r0, (r3, 0xf) + 62ea: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 62ec: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 62ee: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 62f0: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 62f2: 3982 bclri r1, 2 + 62f4: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 62f6: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 62f8: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 62fa: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 62fc: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x04; + 62fe: 39a2 bseti r1, 2 + 6300: 07ea br 0x62d4 // 62d4 + else if(Debug_Inf.Language_Selection == 0x02) + 6302: 3a42 cmpnei r2, 2 + 6304: 0812 bt 0x6328 // 6328 + HT1621.show_cache[1] &= ~0x07; + 6306: 3407 movi r4, 7 + HT1621.show_cache[2] &= ~0x07; + 6308: 830e ld.b r0, (r3, 0xe) + 630a: 6811 andn r0, r4 + 630c: a30e st.b r0, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 630e: 830f ld.b r0, (r3, 0xf) + 6310: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 6312: 832c ld.b r1, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 6314: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6316: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 6318: 3982 bclri r1, 2 + 631a: 3983 bclri r1, 3 + HT1621.show_cache[1] &= ~0x07; + 631c: 834d ld.b r2, (r3, 0xd) + HT1621.show_cache[5] &= ~0x01; + 631e: 3880 bclri r0, 0 + HT1621.show_cache[1] &= ~0x07; + 6320: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 6322: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[0] |= 0x08; + 6324: 39a3 bseti r1, 3 + 6326: 07d7 br 0x62d4 // 62d4 + HT1621.show_cache[0] &= ~0x0C; + 6328: 136a lrw r3, 0x200005c0 // 64d0 + 632a: 834c ld.b r2, (r3, 0xc) + 632c: 3a82 bclri r2, 2 + 632e: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6330: 3107 movi r1, 7 + HT1621.show_cache[0] &= ~0x0C; + 6332: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6334: 834d ld.b r2, (r3, 0xd) + 6336: 6885 andn r2, r1 + 6338: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 633a: 834e ld.b r2, (r3, 0xe) + 633c: 6885 andn r2, r1 + 633e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6340: 834f ld.b r2, (r3, 0xf) + 6342: 6885 andn r2, r1 + 6344: a34f st.b r2, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6346: 8351 ld.b r2, (r3, 0x11) + 6348: 3a80 bclri r2, 0 + HT1621.show_cache[5] |= 0x01; + 634a: a351 st.b r2, (r3, 0x11) +} + 634c: 07c7 br 0x62da // 62da + if(Debug_Inf.Language_Selection == 0x00) + 634e: 1360 lrw r3, 0x20000868 // 64cc + 6350: 8349 ld.b r2, (r3, 0x9) + 6352: 3a40 cmpnei r2, 0 + 6354: 127f lrw r3, 0x200005c0 // 64d0 + 6356: 0816 bt 0x6382 // 6382 + HT1621.show_cache[1] &= ~0x07; + 6358: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 635a: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 635c: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 635e: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 6360: 3a82 bclri r2, 2 + 6362: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6364: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 6366: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6368: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 636a: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 636c: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 636e: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 6370: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 6372: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 6374: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 6376: 39a1 bseti r1, 1 + 6378: 39a2 bseti r1, 2 + HT1621.show_cache[2] |= 0x01; + 637a: 3aa0 bseti r2, 0 + HT1621.show_cache[1] |= 0x04; + 637c: a32d st.b r1, (r3, 0xd) + HT1621.show_cache[2] |= 0x01; + 637e: a34e st.b r2, (r3, 0xe) + 6380: 07ad br 0x62da // 62da + else if(Debug_Inf.Language_Selection == 0x01) + 6382: 3a41 cmpnei r2, 1 + 6384: 0812 bt 0x63a8 // 63a8 + HT1621.show_cache[1] &= ~0x07; + 6386: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 6388: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 638a: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 638c: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 638e: 3a82 bclri r2, 2 + 6390: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6392: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 6394: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 6396: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 6398: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 639a: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 639c: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 639e: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 63a0: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 63a2: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x02; + 63a4: 39a1 bseti r1, 1 + 63a6: 07ea br 0x637a // 637a + else if(Debug_Inf.Language_Selection == 0x02) + 63a8: 3a42 cmpnei r2, 2 + 63aa: 0bbf bt 0x6328 // 6328 + HT1621.show_cache[1] &= ~0x07; + 63ac: 3407 movi r4, 7 + HT1621.show_cache[3] &= ~0x07; + 63ae: 830f ld.b r0, (r3, 0xf) + HT1621.show_cache[0] &= ~0x0C; + 63b0: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[3] &= ~0x07; + 63b2: 6811 andn r0, r4 + HT1621.show_cache[0] &= ~0x0C; + 63b4: 3a82 bclri r2, 2 + 63b6: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 63b8: 832d ld.b r1, (r3, 0xd) + HT1621.show_cache[3] &= ~0x07; + 63ba: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[5] &= ~0x01; + 63bc: 8311 ld.b r0, (r3, 0x11) + HT1621.show_cache[0] &= ~0x0C; + 63be: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 63c0: 6851 andn r1, r4 + HT1621.show_cache[2] &= ~0x07; + 63c2: 834e ld.b r2, (r3, 0xe) + HT1621.show_cache[5] &= ~0x01; + 63c4: 3880 bclri r0, 0 + HT1621.show_cache[2] &= ~0x07; + 63c6: 6891 andn r2, r4 + HT1621.show_cache[5] &= ~0x01; + 63c8: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[1] |= 0x04; + 63ca: 39a2 bseti r1, 2 + 63cc: 07d7 br 0x637a // 637a + if(Debug_Inf.Language_Selection == 0x00) + 63ce: 1260 lrw r3, 0x20000868 // 64cc + 63d0: 8349 ld.b r2, (r3, 0x9) + 63d2: 3a40 cmpnei r2, 0 + 63d4: 117f lrw r3, 0x200005c0 // 64d0 + 63d6: 0816 bt 0x6402 // 6402 + HT1621.show_cache[0] &= ~0x0C; + 63d8: 834c ld.b r2, (r3, 0xc) + 63da: 3a82 bclri r2, 2 + 63dc: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 63de: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 63e0: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 63e2: 834d ld.b r2, (r3, 0xd) + 63e4: 6881 andn r2, r0 + 63e6: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 63e8: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 63ea: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 63ec: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 63ee: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 63f0: 8311 ld.b r0, (r3, 0x11) + 63f2: 3880 bclri r0, 0 + 63f4: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 63f6: 39a1 bseti r1, 1 + 63f8: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x01; + 63fa: 3aa0 bseti r2, 0 + HT1621.show_cache[2] |= 0x04; + 63fc: a32e st.b r1, (r3, 0xe) + HT1621.show_cache[3] |= 0x01; + 63fe: a34f st.b r2, (r3, 0xf) + 6400: 076d br 0x62da // 62da + else if(Debug_Inf.Language_Selection == 0x01) + 6402: 3a41 cmpnei r2, 1 + 6404: 0812 bt 0x6428 // 6428 + HT1621.show_cache[0] &= ~0x0C; + 6406: 834c ld.b r2, (r3, 0xc) + 6408: 3a82 bclri r2, 2 + 640a: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 640c: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 640e: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6410: 834d ld.b r2, (r3, 0xd) + 6412: 6881 andn r2, r0 + 6414: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6416: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6418: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 641a: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 641c: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 641e: 8311 ld.b r0, (r3, 0x11) + 6420: 3880 bclri r0, 0 + 6422: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x02; + 6424: 39a1 bseti r1, 1 + 6426: 07ea br 0x63fa // 63fa + else if(Debug_Inf.Language_Selection == 0x02) + 6428: 3a42 cmpnei r2, 2 + 642a: 0b7f bt 0x6328 // 6328 + HT1621.show_cache[0] &= ~0x0C; + 642c: 834c ld.b r2, (r3, 0xc) + 642e: 3a82 bclri r2, 2 + 6430: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 6432: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6434: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6436: 834d ld.b r2, (r3, 0xd) + 6438: 6881 andn r2, r0 + 643a: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 643c: 832e ld.b r1, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 643e: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 6440: 6841 andn r1, r0 + HT1621.show_cache[3] &= ~0x07; + 6442: 6881 andn r2, r0 + HT1621.show_cache[5] &= ~0x01; + 6444: 8311 ld.b r0, (r3, 0x11) + 6446: 3880 bclri r0, 0 + 6448: a311 st.b r0, (r3, 0x11) + HT1621.show_cache[2] |= 0x04; + 644a: 39a2 bseti r1, 2 + 644c: 07d7 br 0x63fa // 63fa + if(Debug_Inf.Language_Selection == 0x00) + 644e: 1160 lrw r3, 0x20000868 // 64cc + 6450: 8349 ld.b r2, (r3, 0x9) + 6452: 3a40 cmpnei r2, 0 + 6454: 107f lrw r3, 0x200005c0 // 64d0 + 6456: 0815 bt 0x6480 // 6480 + HT1621.show_cache[0] &= ~0x0C; + 6458: 834c ld.b r2, (r3, 0xc) + 645a: 3a82 bclri r2, 2 + 645c: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 645e: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 6460: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 6462: 834d ld.b r2, (r3, 0xd) + 6464: 6881 andn r2, r0 + 6466: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6468: 834e ld.b r2, (r3, 0xe) + 646a: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 646c: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 646e: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 6470: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 6472: 8351 ld.b r2, (r3, 0x11) + 6474: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 6476: 39a1 bseti r1, 1 + 6478: 39a2 bseti r1, 2 + HT1621.show_cache[3] |= 0x04; + 647a: a32f st.b r1, (r3, 0xf) + HT1621.show_cache[5] |= 0x01; + 647c: 3aa0 bseti r2, 0 + 647e: 0766 br 0x634a // 634a + else if(Debug_Inf.Language_Selection == 0x01) + 6480: 3a41 cmpnei r2, 1 + 6482: 0812 bt 0x64a6 // 64a6 + HT1621.show_cache[0] &= ~0x0C; + 6484: 834c ld.b r2, (r3, 0xc) + 6486: 3a82 bclri r2, 2 + 6488: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 648a: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 648c: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 648e: 834d ld.b r2, (r3, 0xd) + 6490: 6881 andn r2, r0 + 6492: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 6494: 834e ld.b r2, (r3, 0xe) + 6496: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 6498: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 649a: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 649c: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 649e: 8351 ld.b r2, (r3, 0x11) + 64a0: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x02; + 64a2: 39a1 bseti r1, 1 + 64a4: 07eb br 0x647a // 647a + else if(Debug_Inf.Language_Selection == 0x02) + 64a6: 3a42 cmpnei r2, 2 + 64a8: 0b40 bt 0x6328 // 6328 + HT1621.show_cache[0] &= ~0x0C; + 64aa: 834c ld.b r2, (r3, 0xc) + 64ac: 3a82 bclri r2, 2 + 64ae: 3a83 bclri r2, 3 + HT1621.show_cache[1] &= ~0x07; + 64b0: 3007 movi r0, 7 + HT1621.show_cache[0] &= ~0x0C; + 64b2: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x07; + 64b4: 834d ld.b r2, (r3, 0xd) + 64b6: 6881 andn r2, r0 + 64b8: a34d st.b r2, (r3, 0xd) + HT1621.show_cache[2] &= ~0x07; + 64ba: 834e ld.b r2, (r3, 0xe) + 64bc: 6881 andn r2, r0 + HT1621.show_cache[3] &= ~0x07; + 64be: 832f ld.b r1, (r3, 0xf) + HT1621.show_cache[2] &= ~0x07; + 64c0: a34e st.b r2, (r3, 0xe) + HT1621.show_cache[3] &= ~0x07; + 64c2: 6841 andn r1, r0 + HT1621.show_cache[5] &= ~0x01; + 64c4: 8351 ld.b r2, (r3, 0x11) + 64c6: 3a80 bclri r2, 0 + HT1621.show_cache[3] |= 0x04; + 64c8: 39a2 bseti r1, 2 + 64ca: 07d8 br 0x647a // 647a + 64cc: 20000868 .long 0x20000868 + 64d0: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_wind_velocity: + +000064d4 : +* 3 -> 风速停 +* 4 -> 自动风速 +* +*/ +void Control_wind_velocity(U8_T velocity) +{ + 64d4: 14d2 push r4-r5, r15 + switch(velocity) + 64d6: 3804 cmphsi r0, 5 + 64d8: 0815 bt 0x6502 // 6502 + 64da: 1172 lrw r3, 0x200005c0 // 65a0 + 64dc: e3ffd410 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 64e0: 33201203 .long 0x33201203 + 64e4: 0028 .short 0x0028 + { + case FAN_LOW: //低风速 + HT1621.show_cache[4] &= ~0x0F; + HT1621.show_cache[5] &= ~0x0E; + 64e6: 8351 ld.b r2, (r3, 0x11) + 64e8: 310e movi r1, 14 + 64ea: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 64ec: 300f movi r0, 15 + 64ee: 8330 ld.b r1, (r3, 0x10) + 64f0: 6841 andn r1, r0 + + HT1621.show_cache[4] |= 0x08; + 64f2: 3008 movi r0, 8 + HT1621.show_cache[5] |= 0x08; + 64f4: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x08; + 64f6: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x08; + 64f8: a351 st.b r2, (r3, 0x11) + + HT1621.show_cache[3] |= 0x08; + 64fa: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x08; + 64fc: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 64fe: 6c80 or r2, r0 + HT1621.show_cache[5] &= ~0x0E; + + HT1621.show_cache[4] |= 0x0C; + HT1621.show_cache[5] |= 0x0C; + + HT1621.show_cache[3] |= 0x08; + 6500: a34f st.b r2, (r3, 0xf) + } + break; + default: + break; + } +} + 6502: 1492 pop r4-r5, r15 + HT1621.show_cache[5] &= ~0x0E; + 6504: 310e movi r1, 14 + 6506: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6508: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 650a: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 650c: 8330 ld.b r1, (r3, 0x10) + 650e: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0C; + 6510: 300c movi r0, 12 + HT1621.show_cache[5] |= 0x0C; + 6512: 6c80 or r2, r0 + HT1621.show_cache[4] |= 0x0C; + 6514: 6c40 or r1, r0 + HT1621.show_cache[5] |= 0x0C; + 6516: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6518: 834f ld.b r2, (r3, 0xf) + HT1621.show_cache[4] |= 0x0C; + 651a: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[3] |= 0x08; + 651c: 3aa3 bseti r2, 3 + 651e: 07f1 br 0x6500 // 6500 + HT1621.show_cache[5] &= ~0x0E; + 6520: 310e movi r1, 14 + 6522: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[4] &= ~0x0F; + 6524: 300f movi r0, 15 + HT1621.show_cache[5] &= ~0x0E; + 6526: 6885 andn r2, r1 + HT1621.show_cache[4] &= ~0x0F; + 6528: 8330 ld.b r1, (r3, 0x10) + 652a: 6841 andn r1, r0 + HT1621.show_cache[4] |= 0x0E; + 652c: 300e movi r0, 14 + 652e: 07f2 br 0x6512 // 6512 + HT1621.show_cache[4] &= ~0x0F; + 6530: 8350 ld.b r2, (r3, 0x10) + 6532: 310f movi r1, 15 + 6534: 6885 andn r2, r1 + 6536: a350 st.b r2, (r3, 0x10) + HT1621.show_cache[5] &= ~0x0E; + 6538: 310e movi r1, 14 + 653a: 8351 ld.b r2, (r3, 0x11) + 653c: 6885 andn r2, r1 + 653e: a351 st.b r2, (r3, 0x11) + HT1621.show_cache[3] &= ~0x08; + 6540: 834f ld.b r2, (r3, 0xf) + 6542: 3a83 bclri r2, 3 + 6544: 07de br 0x6500 // 6500 + HT1621.show_cache[4] &= ~0x0F; + 6546: 8330 ld.b r1, (r3, 0x10) + 6548: 320f movi r2, 15 + 654a: 6849 andn r1, r2 + HT1621.show_cache[5] &= ~0x0E; + 654c: 300e movi r0, 14 + 654e: 8351 ld.b r2, (r3, 0x11) + HT1621.show_cache[3] |= 0x08; + 6550: 83af ld.b r5, (r3, 0xf) + HT1621.show_cache[5] &= ~0x0E; + 6552: 6881 andn r2, r0 + HT1621.show_cache[3] |= 0x08; + 6554: 3408 movi r4, 8 + 6556: 6c17 mov r0, r5 + 6558: 6c10 or r0, r4 + 655a: a30f st.b r0, (r3, 0xf) + HT1621.show_cache[4] |= 0x01; + 655c: 6c07 mov r0, r1 + 655e: 38a0 bseti r0, 0 + 6560: a310 st.b r0, (r3, 0x10) + if(HT1621.wind_velocity == 3) //关风扇 + 6562: 8303 ld.b r0, (r3, 0x3) + 6564: 3843 cmpnei r0, 3 + HT1621.show_cache[5] &= ~0x0E; + 6566: a351 st.b r2, (r3, 0x11) + if(HT1621.wind_velocity == 3) //关风扇 + 6568: 0804 bt 0x6570 // 6570 + HT1621.show_cache[3] &= ~0x08; + 656a: 3d83 bclri r5, 3 + 656c: a3af st.b r5, (r3, 0xf) + 656e: 07ca br 0x6502 // 6502 + }else if(HT1621.wind_velocity == 0) //低风速 + 6570: 3840 cmpnei r0, 0 + 6572: 0807 bt 0x6580 // 6580 + HT1621.show_cache[4] |= 0x08; + 6574: 39a0 bseti r1, 0 + 6576: 39a3 bseti r1, 3 + 6578: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x08; + 657a: 6c90 or r2, r4 + HT1621.show_cache[5] |= 0x0E; + 657c: a351 st.b r2, (r3, 0x11) +} + 657e: 07c2 br 0x6502 // 6502 + }else if(HT1621.wind_velocity == 1) //中风速 + 6580: 3841 cmpnei r0, 1 + 6582: 0807 bt 0x6590 // 6590 + HT1621.show_cache[4] |= 0x0C; + 6584: 300d movi r0, 13 + 6586: 6c40 or r1, r0 + 6588: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0C; + 658a: 3aa2 bseti r2, 2 + 658c: 3aa3 bseti r2, 3 + 658e: 07f7 br 0x657c // 657c + }else if(HT1621.wind_velocity == 2) //高风速 + 6590: 3842 cmpnei r0, 2 + 6592: 0bb8 bt 0x6502 // 6502 + HT1621.show_cache[4] |= 0x0E; + 6594: 300f movi r0, 15 + 6596: 6c40 or r1, r0 + 6598: a330 st.b r1, (r3, 0x10) + HT1621.show_cache[5] |= 0x0E; + 659a: 310e movi r1, 14 + 659c: 6c84 or r2, r1 + 659e: 07ef br 0x657c // 657c + 65a0: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Control_Prompt_Text: + +000065a4 : +*参数功能:state : 0 -> 开,中英混合 +* 1 -> 开,中文提示 +* 2 -> 开,英语提示 +* 3 ->关 +*/ +void Control_Prompt_Text(U8_T state){ + 65a4: 14c4 push r4-r7 + 65a6: 1421 subi r14, r14, 4 + //中文消除 + HT1621.show_cache[0] &= ~0x01; //模式 + 65a8: 1167 lrw r3, 0x200005c0 // 6644 + HT1621.show_cache[12] &= ~0x01; //设置温度 + HT1621.show_cache[19] &= ~0x01; //室内温度 + //英语消除 + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + 65aa: 83d6 ld.b r6, (r3, 0x16) + 65ac: 3e80 bclri r6, 0 + 65ae: 7598 zextb r6, r6 + 65b0: b8c0 st.w r6, (r14, 0x0) + 65b2: d8ce0000 ld.b r6, (r14, 0x0) + HT1621.show_cache[0] &= ~0x01; //模式 + 65b6: 834c ld.b r2, (r3, 0xc) + HT1621.show_cache[1] &= ~0x08; //风速 + 65b8: 83ad ld.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65ba: 8398 ld.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65bc: 833f ld.b r1, (r3, 0x1f) + HT1621.show_cache[2] &= ~0x08; //风速 + 65be: 83ee ld.b r7, (r3, 0xe) + HT1621.show_cache[10] &= ~0x01; //设置温度 + 65c0: a3d6 st.b r6, (r3, 0x16) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65c2: 83dd ld.b r6, (r3, 0x1d) + HT1621.show_cache[1] &= ~0x08; //风速 + 65c4: 3d83 bclri r5, 3 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65c6: 3c80 bclri r4, 0 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65c8: 3980 bclri r1, 0 + HT1621.show_cache[0] &= ~0x02; //模式 + 65ca: 3a80 bclri r2, 0 + 65cc: 3a81 bclri r2, 1 + HT1621.show_cache[2] &= ~0x08; //风速 + 65ce: 3f83 bclri r7, 3 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65d0: 3e80 bclri r6, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 65d2: 7554 zextb r5, r5 + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65d4: 7510 zextb r4, r4 + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65d6: 7444 zextb r1, r1 + HT1621.show_cache[0] &= ~0x02; //模式 + 65d8: 7488 zextb r2, r2 + HT1621.show_cache[2] &= ~0x08; //风速 + 65da: 75dc zextb r7, r7 + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65dc: 7598 zextb r6, r6 + + if(state == 0x00) + 65de: 3840 cmpnei r0, 0 + HT1621.show_cache[1] &= ~0x08; //风速 + 65e0: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] &= ~0x01; //设置温度 + 65e2: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] &= ~0x01; //室内温度 + 65e4: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[0] &= ~0x02; //模式 + 65e6: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[2] &= ~0x08; //风速 + 65e8: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[17] &= ~0x01; //室内温度 + 65ea: a3dd st.b r6, (r3, 0x1d) + if(state == 0x00) + 65ec: 0814 bt 0x6614 // 6614 + { + //中文 + HT1621.show_cache[0] |= 0x01; //模式 + HT1621.show_cache[1] |= 0x08; //风速 + 65ee: 3008 movi r0, 8 + 65f0: 6d40 or r5, r0 + HT1621.show_cache[12] |= 0x01; //设置温度 + HT1621.show_cache[19] |= 0x01; //室内温度 + //英文 + HT1621.show_cache[0] |= 0x02; //模式 + 65f2: 3aa0 bseti r2, 0 + 65f4: 3aa1 bseti r2, 1 + HT1621.show_cache[1] |= 0x08; //风速 + 65f6: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[0] |= 0x02; //模式 + 65f8: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[12] |= 0x01; //设置温度 + 65fa: 3501 movi r5, 1 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + 65fc: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[12] |= 0x01; //设置温度 + 65fe: 6d14 or r4, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + 6600: 6c54 or r1, r5 + HT1621.show_cache[2] |= 0x08; //风速 + 6602: 6dc0 or r7, r0 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6604: 6c94 or r2, r5 + HT1621.show_cache[12] |= 0x01; //设置温度 + 6606: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6608: a33f st.b r1, (r3, 0x1f) + HT1621.show_cache[2] |= 0x08; //风速 + 660a: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 660c: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 660e: 6d94 or r6, r5 + HT1621.show_cache[19] |= 0x01; //室内温度 + }else if(state == 0x02){ + HT1621.show_cache[0] |= 0x02; //模式 + HT1621.show_cache[2] |= 0x08; //风速 + HT1621.show_cache[10] |= 0x01; //设置温度 + HT1621.show_cache[17] |= 0x01; //室内温度 + 6610: a3dd st.b r6, (r3, 0x1d) + HT1621.show_cache[0] &= ~0x02; //模式 + HT1621.show_cache[2] &= ~0x08; //风速 + HT1621.show_cache[10] &= ~0x01; //设置温度 + HT1621.show_cache[17] &= ~0x01; //室内温度 + } +} + 6612: 040b br 0x6628 // 6628 + else if(state == 0x01){ + 6614: 3841 cmpnei r0, 1 + 6616: 080b bt 0x662c // 662c + HT1621.show_cache[0] |= 0x01; //模式 + 6618: 6c80 or r2, r0 + HT1621.show_cache[1] |= 0x08; //风速 + 661a: 3da3 bseti r5, 3 + HT1621.show_cache[12] |= 0x01; //设置温度 + 661c: 6d00 or r4, r0 + HT1621.show_cache[19] |= 0x01; //室内温度 + 661e: 6c40 or r1, r0 + HT1621.show_cache[0] |= 0x01; //模式 + 6620: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[1] |= 0x08; //风速 + 6622: a3ad st.b r5, (r3, 0xd) + HT1621.show_cache[12] |= 0x01; //设置温度 + 6624: a398 st.b r4, (r3, 0x18) + HT1621.show_cache[19] |= 0x01; //室内温度 + 6626: a33f st.b r1, (r3, 0x1f) +} + 6628: 1401 addi r14, r14, 4 + 662a: 1484 pop r4-r7 + }else if(state == 0x02){ + 662c: 3842 cmpnei r0, 2 + 662e: 0bfd bt 0x6628 // 6628 + HT1621.show_cache[0] |= 0x02; //模式 + 6630: 3aa1 bseti r2, 1 + HT1621.show_cache[10] |= 0x01; //设置温度 + 6632: 3101 movi r1, 1 + HT1621.show_cache[0] |= 0x02; //模式 + 6634: a34c st.b r2, (r3, 0xc) + HT1621.show_cache[10] |= 0x01; //设置温度 + 6636: 9840 ld.w r2, (r14, 0x0) + HT1621.show_cache[2] |= 0x08; //风速 + 6638: 3fa3 bseti r7, 3 + HT1621.show_cache[10] |= 0x01; //设置温度 + 663a: 6c84 or r2, r1 + HT1621.show_cache[2] |= 0x08; //风速 + 663c: a3ee st.b r7, (r3, 0xe) + HT1621.show_cache[10] |= 0x01; //设置温度 + 663e: a356 st.b r2, (r3, 0x16) + HT1621.show_cache[17] |= 0x01; //室内温度 + 6640: 6d84 or r6, r1 + 6642: 07e7 br 0x6610 // 6610 + 6644: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Controlled_Buzzer: + +00006648 : + +/* +*函数功能:控制蜂鸣器 +*参数功能:state : 控制状态 0x00:关,0x01:开 100ms,0x02:开 500ms +*/ +void Controlled_Buzzer(U8_T state) { + 6648: 14d0 push r15 + + //Dbg_Println(DBG_BIT_SYS_STATUS, "Controlled_Buzzer %d",g_switch.local_buz_flag); + switch (state) { + 664a: 3841 cmpnei r0, 1 + 664c: 0c0a bf 0x6660 // 6660 + 664e: 3840 cmpnei r0, 0 + 6650: 0c04 bf 0x6658 // 6658 + 6652: 3842 cmpnei r0, 2 + 6654: 0c12 bf 0x6678 // 6678 + HT1621_WR_CMD(HT1621_BLON); + HT1621.buz_control = 0x02; + HT1621.buz_tick = SysTick_1ms; + break; + } +} + 6656: 1490 pop r15 + HT1621_WR_CMD(HT1621_BIOFF); + 6658: 3010 movi r0, 16 + 665a: e3fffc6b bsr 0x5f30 // 5f30 + break; + 665e: 07fc br 0x6656 // 6656 + HT1621_WR_CMD(HT1621_BLON); + 6660: 3012 movi r0, 18 + 6662: e3fffc67 bsr 0x5f30 // 5f30 + HT1621.buz_control = 0x01; + 6666: 1069 lrw r3, 0x200005c0 // 6688 + 6668: 3220 movi r2, 32 + 666a: 608c addu r2, r3 + 666c: 3101 movi r1, 1 + HT1621.buz_control = 0x02; + 666e: a224 st.b r1, (r2, 0x4) + HT1621.buz_tick = SysTick_1ms; + 6670: 1047 lrw r2, 0x200000c0 // 668c + 6672: 9240 ld.w r2, (r2, 0x0) + 6674: b34e st.w r2, (r3, 0x38) +} + 6676: 07f0 br 0x6656 // 6656 + HT1621_WR_CMD(HT1621_BLON); + 6678: 3012 movi r0, 18 + 667a: e3fffc5b bsr 0x5f30 // 5f30 + HT1621.buz_control = 0x02; + 667e: 1063 lrw r3, 0x200005c0 // 6688 + 6680: 3220 movi r2, 32 + 6682: 608c addu r2, r3 + 6684: 3102 movi r1, 2 + 6686: 07f4 br 0x666e // 666e + 6688: 200005c0 .long 0x200005c0 + 668c: 200000c0 .long 0x200000c0 + +Disassembly of section .text.Controlled_LCD_Backlight: + +00006690 : + +/* +*函数功能:控制LCD 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开,蓝开(制冷);红开(制热);白开(通风) +*/ +void Controlled_LCD_Backlight(U8_T state){ + 6690: 14d0 push r15 + switch (state) { + 6692: 3840 cmpnei r0, 0 + 6694: 0c04 bf 0x669c // 669c + 6696: 3841 cmpnei r0, 1 + 6698: 0c16 bf 0x66c4 // 66c4 + + } + break; + + } +} + 669a: 1490 pop r15 + if(tm1812_param.LCD_blaklingt_flag == 0x01) + 669c: 1172 lrw r3, 0x200001a0 // 6764 + 669e: 8359 ld.b r2, (r3, 0x19) + 66a0: 3a41 cmpnei r2, 1 + 66a2: 0bfc bt 0x669a // 669a + tm1812_param.LCD_blaklingt_flag = 0x00; + 66a4: 3200 movi r2, 0 + 66a6: a359 st.b r2, (r3, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66a8: 3100 movi r1, 0 + 66aa: 3000 movi r0, 0 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66ac: e3fffb6c bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,0); + 66b0: 3100 movi r1, 0 + 66b2: 3001 movi r0, 1 + 66b4: e3fffb68 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 66b8: 3100 movi r1, 0 + 66ba: 3002 movi r0, 2 + 66bc: e3fffb64 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 66c0: 3100 movi r1, 0 + 66c2: 0437 br 0x6730 // 6730 + if(tm1812_param.LCD_blaklingt_flag == 0x00) + 66c4: 1128 lrw r1, 0x200001a0 // 6764 + 66c6: 8179 ld.b r3, (r1, 0x19) + 66c8: 3b40 cmpnei r3, 0 + 66ca: 0be8 bt 0x669a // 669a + tm1812_param.LCD_blaklingt_flag = 0x01; + 66cc: 3301 movi r3, 1 + 66ce: a179 st.b r3, (r1, 0x19) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66d0: 3000 movi r0, 0 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 66d2: 1166 lrw r3, 0x2000083c // 6768 + 66d4: 8362 ld.b r3, (r3, 0x2) + 66d6: 4379 lsli r3, r3, 25 + 66d8: 4b7d lsri r3, r3, 29 + 66da: 748c zextb r2, r3 + switch(TempCtrl.TemState_Now.mode) + 66dc: 3a42 cmpnei r2, 2 + tm1812_param.LCD_blacklingt_mode = TempCtrl.TemState_Now.mode; + 66de: a17a st.b r3, (r1, 0x1a) + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66e0: 3100 movi r1, 0 + switch(TempCtrl.TemState_Now.mode) + 66e2: 0c1c bf 0x671a // 671a + 66e4: 3a44 cmpnei r2, 4 + 66e6: 0c2a bf 0x673a // 673a + 66e8: 3a40 cmpnei r2, 0 + 66ea: 0be1 bt 0x66ac // 66ac + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 66ec: e3fffb4c bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 66f0: 31ff movi r1, 255 + 66f2: 3001 movi r0, 1 + 66f4: e3fffb48 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 66f8: 3100 movi r1, 0 + 66fa: 3002 movi r0, 2 + 66fc: e3fffb44 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6700: 3100 movi r1, 0 + 6702: 3003 movi r0, 3 + 6704: e3fffb40 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6708: 3100 movi r1, 0 + 670a: 3004 movi r0, 4 + 670c: e3fffb3c bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B2,255); + 6710: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 6712: 3005 movi r0, 5 + 6714: e3fffb38 bsr 0x5d84 // 5d84 +} + 6718: 07c1 br 0x669a // 669a + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 671a: e3fffb35 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 671e: 31ff movi r1, 255 + 6720: 3001 movi r0, 1 + 6722: e3fffb31 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6726: 3100 movi r1, 0 + 6728: 3002 movi r0, 2 + 672a: e3fffb2d bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,255); + 672e: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 6730: 3003 movi r0, 3 + 6732: e3fffb29 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6736: 3100 movi r1, 0 + 6738: 0410 br 0x6758 // 6758 + Tm1812_Ch_Insert_Data(LCM_BK_R1,0); + 673a: e3fffb25 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W1,255); + 673e: 31ff movi r1, 255 + 6740: 3001 movi r0, 1 + 6742: e3fffb21 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B1,0); + 6746: 3100 movi r1, 0 + 6748: 3002 movi r0, 2 + 674a: e3fffb1d bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_R2,0); + 674e: 3100 movi r1, 0 + 6750: 3003 movi r0, 3 + 6752: e3fffb19 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_W2,255); + 6756: 31ff movi r1, 255 + Tm1812_Ch_Insert_Data(LCM_BK_W2,0); + 6758: 3004 movi r0, 4 + 675a: e3fffb15 bsr 0x5d84 // 5d84 + Tm1812_Ch_Insert_Data(LCM_BK_B2,0); + 675e: 3100 movi r1, 0 + 6760: 07d9 br 0x6712 // 6712 + 6762: 0000 bkpt + 6764: 200001a0 .long 0x200001a0 + 6768: 2000083c .long 0x2000083c + +Disassembly of section .text.Controlled_Key_Backlight: + +0000676c : +/* +*函数功能:控制按键 背光 +*参数功能:state : 控制状态 0x00:关,0x01:开 +*/ + +void Controlled_Key_Backlight(U8_T state){ + 676c: 14d0 push r15 + switch(state){ + 676e: 3840 cmpnei r0, 0 + 6770: 0c04 bf 0x6778 // 6778 + 6772: 3841 cmpnei r0, 1 + 6774: 0c0b bf 0x678a // 678a + + } + + break; + } +} + 6776: 1490 pop r15 + if(g_switch.light_state[T_Backlight] != Control_OFF) + 6778: 1068 lrw r3, 0x200005a4 // 6798 + 677a: 836a ld.b r3, (r3, 0xa) + 677c: 3b42 cmpnei r3, 2 + 677e: 0ffc bf 0x6776 // 6776 + Contol_Switch_Light_2(T_Backlight,Control_OFF); + 6780: 3102 movi r1, 2 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 6782: 3005 movi r0, 5 + 6784: e3fff7c2 bsr 0x5708 // 5708 +} + 6788: 07f7 br 0x6776 // 6776 + if(g_switch.light_state[T_Backlight] != Control_ON) + 678a: 1064 lrw r3, 0x200005a4 // 6798 + 678c: 836a ld.b r3, (r3, 0xa) + 678e: 3b41 cmpnei r3, 1 + 6790: 0ff3 bf 0x6776 // 6776 + Contol_Switch_Light_2(T_Backlight,Control_ON); + 6792: 3101 movi r1, 1 + 6794: 07f7 br 0x6782 // 6782 + 6796: 0000 bkpt + 6798: 200005a4 .long 0x200005a4 + +Disassembly of section .text.Set_Device_ADDR: + +0000679c : + +/* +*函数功能:管理界面 - 显示设置本机设备地址 +*参数功能:addr : 0~255 +*/ +void Set_Device_ADDR(U8_T page, U8_T addr){ + 679c: 14d4 push r4-r7, r15 + 679e: 1423 subi r14, r14, 12 + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67a0: 11c4 lrw r6, 0xa74a // 6830 + 67a2: 6018 addu r0, r6 + 67a4: 1184 lrw r4, 0x200005c0 // 6834 +void Set_Device_ADDR(U8_T page, U8_T addr){ + 67a6: 6dc7 mov r7, r1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67a8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[10] &= 0x01; + 67aa: 3301 movi r3, 1 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67ac: 350f movi r5, 15 + HT1621.show_cache[10] &= 0x01; + 67ae: 8456 ld.b r2, (r4, 0x16) + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67b0: 6c07 mov r0, r1 + HT1621.show_cache[10] &= 0x01; + 67b2: 688c and r2, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67b4: 6814 and r0, r5 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 67b6: 4924 lsri r1, r1, 4 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67b8: 6c80 or r2, r0 + HT1621.show_cache[9] |= Diaital[page] >> 4; + 67ba: a435 st.b r1, (r4, 0x15) + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + HT1621.show_cache[18] = 0x00; + HT1621.show_cache[17] &= 0x01; + HT1621.show_cache[16] = 0x00; + HT1621.show_cache[15] &= 0x01; + 67bc: 843b ld.b r1, (r4, 0x1b) + 67be: 684c and r1, r3 + HT1621.show_cache[10] |= Diaital[page]&0x0F; + 67c0: a456 st.b r2, (r4, 0x16) + HT1621.show_cache[17] &= 0x01; + 67c2: 845d ld.b r2, (r4, 0x1d) + 67c4: 688c and r2, r3 + HT1621.show_cache[15] &= 0x01; + 67c6: b820 st.w r1, (r14, 0x0) + U8_T tmp_H = tmp_Integer/10; + 67c8: 6c1f mov r0, r7 + 67ca: 3164 movi r1, 100 + HT1621.show_cache[17] &= 0x01; + 67cc: b842 st.w r2, (r14, 0x8) + HT1621.show_cache[15] &= 0x01; + 67ce: b861 st.w r3, (r14, 0x4) + U8_T tmp_H = tmp_Integer/10; + 67d0: e3ffea30 bsr 0x3c30 // 3c30 <__udivsi3> + HT1621.show_cache[14] = 0x00; + //显示 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 67d4: 7400 zextb r0, r0 + 67d6: 6018 addu r0, r6 + 67d8: 8020 ld.b r1, (r0, 0x0) + HT1621.show_cache[19] &= 0x01; + 67da: 9861 ld.w r3, (r14, 0x4) + 67dc: 841f ld.b r0, (r4, 0x1f) + 67de: 68c0 and r3, r0 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 67e0: 6c07 mov r0, r1 + 67e2: 6814 and r0, r5 + 67e4: 6cc0 or r3, r0 + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 67e6: 4924 lsri r1, r1, 4 + HT1621.show_cache[19] |= Diaital[tmp_H]&0x0F; + 67e8: a47f st.b r3, (r4, 0x1f) + HT1621.show_cache[18] |= Diaital[tmp_H] >> 4; + 67ea: a43e st.b r1, (r4, 0x1e) + U8_T tmp_Integer = addr/10; + 67ec: 6c1f mov r0, r7 + 67ee: 310a movi r1, 10 + 67f0: e3ffea20 bsr 0x3c30 // 3c30 <__udivsi3> + U8_T tmp_L = tmp_Integer%10; + 67f4: 7400 zextb r0, r0 + 67f6: 310a movi r1, 10 + 67f8: e3ffea40 bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 67fc: 7400 zextb r0, r0 + 67fe: 6018 addu r0, r6 + 6800: 8060 ld.b r3, (r0, 0x0) + 6802: 6c4f mov r1, r3 + 6804: 6854 and r1, r5 + 6806: 9842 ld.w r2, (r14, 0x8) + 6808: 6c84 or r2, r1 + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 680a: 4b64 lsri r3, r3, 4 + HT1621.show_cache[17] |= Diaital[tmp_L]&0x0F; + 680c: a45d st.b r2, (r4, 0x1d) + HT1621.show_cache[16] |= Diaital[tmp_L] >> 4; + 680e: a47c st.b r3, (r4, 0x1c) + U8_T tmp_quantile = addr%10; + 6810: 310a movi r1, 10 + 6812: 6c1f mov r0, r7 + 6814: e3ffea32 bsr 0x3c78 // 3c78 <__umodsi3> + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6818: 7400 zextb r0, r0 + 681a: 6180 addu r6, r0 + 681c: 8660 ld.b r3, (r6, 0x0) + 681e: 694c and r5, r3 + 6820: 9840 ld.w r2, (r14, 0x0) + 6822: 6d48 or r5, r2 + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6824: 4b64 lsri r3, r3, 4 + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6826: a4bb st.b r5, (r4, 0x1b) + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 6828: a47a st.b r3, (r4, 0x1a) +} + 682a: 1403 addi r14, r14, 12 + 682c: 1494 pop r4-r7, r15 + 682e: 0000 bkpt + 6830: 0000a74a .long 0x0000a74a + 6834: 200005c0 .long 0x200005c0 + +Disassembly of section .text.Set_Temp_Difference: + +00006838 : + + //显示1 + HT1621.show_cache[10] &= 0x01; + HT1621.show_cache[9] = 0x00; + + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6838: 1057 lrw r2, 0x200005c0 // 6894 + HT1621.show_cache[10] &= 0x01; + 683a: 3101 movi r1, 1 + 683c: 8276 ld.b r3, (r2, 0x16) + 683e: 68c4 and r3, r1 + HT1621.show_cache[10] |= Diaital[2]&0x0F; + 6840: 3ba1 bseti r3, 1 + 6842: 3ba2 bseti r3, 2 + 6844: a276 st.b r3, (r2, 0x16) + HT1621.show_cache[9] |= Diaital[2] >> 4; + 6846: 330d movi r3, 13 + 6848: a275 st.b r3, (r2, 0x15) + + //清楚原数字 + HT1621.show_cache[19] &= 0x01; + 684a: 827f ld.b r3, (r2, 0x1f) + 684c: 68c4 and r3, r1 + 684e: a27f st.b r3, (r2, 0x1f) + HT1621.show_cache[18] = 0x00; + 6850: 3300 movi r3, 0 + 6852: a27e st.b r3, (r2, 0x1e) + HT1621.show_cache[17] &= 0x01; + 6854: 827d ld.b r3, (r2, 0x1d) + 6856: 68c4 and r3, r1 + 6858: a27d st.b r3, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + 685a: 3300 movi r3, 0 + 685c: a27c st.b r3, (r2, 0x1c) + HT1621.show_cache[15] &= 0x01; + 685e: 827b ld.b r3, (r2, 0x1b) + 6860: 684c and r1, r3 + HT1621.show_cache[14] = 0x00; + + //显示设置地址 + if((diff >= 0x09) && (diff <= 18) ){ + 6862: 3300 movi r3, 0 + 6864: 2b08 subi r3, 9 + 6866: 60c0 addu r3, r0 + 6868: 74cc zextb r3, r3 + 686a: 3b09 cmphsi r3, 10 + 686c: 0c08 bf 0x687c // 687c + tmp_quantile = diff - 9; + }else if(diff < 0x09){ + 686e: 3808 cmphsi r0, 9 + 6870: 0810 bt 0x6890 // 6890 + tmp_quantile = 9 - diff; + 6872: 3309 movi r3, 9 + 6874: 60c2 subu r3, r0 + + //显示负号 + HT1621.show_cache[17] = 0x04; + 6876: 3004 movi r0, 4 + tmp_quantile = 9 - diff; + 6878: 74cc zextb r3, r3 + HT1621.show_cache[17] = 0x04; + 687a: a21d st.b r0, (r2, 0x1d) + HT1621.show_cache[16] = 0x00; + } + + HT1621.show_cache[14] |= Diaital[tmp_quantile] >> 4; + 687c: 1007 lrw r0, 0xa74a // 6898 + 687e: 60c0 addu r3, r0 + 6880: 8360 ld.b r3, (r3, 0x0) + 6882: 4b04 lsri r0, r3, 4 + 6884: a21a st.b r0, (r2, 0x1a) + HT1621.show_cache[15] |= Diaital[tmp_quantile]&0x0F; + 6886: 300f movi r0, 15 + 6888: 68c0 and r3, r0 + 688a: 6c4c or r1, r3 + 688c: a23b st.b r1, (r2, 0x1b) +} + 688e: 783c jmp r15 + U8_T tmp_quantile = 0x00; + 6890: 3300 movi r3, 0 + 6892: 07f5 br 0x687c // 687c + 6894: 200005c0 .long 0x200005c0 + 6898: 0000a74a .long 0x0000a74a + +Disassembly of section .text.HT1621_Refresh_Task: + +0000689c : + + +void HT1621_Refresh_Task(void){ + 689c: 14d2 push r4-r5, r15 + + if(SysTick_1ms - HT1621.Refresh_timing >= HT1621_Refresh_time){ + 689e: 109e lrw r4, 0x200000c0 // 6914 + 68a0: 10be lrw r5, 0x200005c0 // 6918 + 68a2: 9460 ld.w r3, (r4, 0x0) + 68a4: 954c ld.w r2, (r5, 0x30) + 68a6: 60ca subu r3, r2 + 68a8: 105d lrw r2, 0x1f3 // 691c + 68aa: 64c8 cmphs r2, r3 + 68ac: 0806 bt 0x68b8 // 68b8 + HT1621.Refresh_timing = HT1621_Refresh_time; + 68ae: 33fa movi r3, 250 + 68b0: 4361 lsli r3, r3, 1 + 68b2: b56c st.w r3, (r5, 0x30) + + HT1621_Refresh_Data(); + 68b4: e3fffbf8 bsr 0x60a4 // 60a4 +// HT1621_ReadData(); + } + + //控制蜂鸣器 + if(HT1621.buz_control == 0x01){ + 68b8: 107a lrw r3, 0x200005e0 // 6920 + 68ba: 8344 ld.b r2, (r3, 0x4) + 68bc: 3a41 cmpnei r2, 1 + 68be: 0824 bt 0x6906 // 6906 + if(SysTick_1ms - HT1621.buz_tick >= 100){ + 68c0: 952e ld.w r1, (r5, 0x38) + 68c2: 9440 ld.w r2, (r4, 0x0) + 68c4: 6086 subu r2, r1 + 68c6: 3163 movi r1, 99 + HT1621.buz_control = 0x00; + + Controlled_Buzzer(0x00); + } + }else if(HT1621.buz_control == 0x02){ + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 68c8: 6484 cmphs r1, r2 + 68ca: 0808 bt 0x68da // 68da + HT1621.buz_tick = SysTick_1ms; + 68cc: 9440 ld.w r2, (r4, 0x0) + 68ce: b54e st.w r2, (r5, 0x38) + HT1621_WR_CMD(HT1621_BIOFF); + 68d0: 3010 movi r0, 16 + HT1621.buz_control = 0x00; + 68d2: 3200 movi r2, 0 + 68d4: a344 st.b r2, (r3, 0x4) + HT1621_WR_CMD(HT1621_BIOFF); + 68d6: e3fffb2d bsr 0x5f30 // 5f30 + Controlled_Buzzer(0x00); + } + } + + //刷新LCD背光 + if(tm1812_param.LCD_blacklingt_mode != TempCtrl.TemState_Now.mode){ + 68da: 1053 lrw r2, 0x2000083c // 6924 + 68dc: 8202 ld.b r0, (r2, 0x2) + 68de: 1033 lrw r1, 0x200001a0 // 6928 + 68e0: 4079 lsli r3, r0, 25 + 68e2: 81ba ld.b r5, (r1, 0x1a) + 68e4: 4b7d lsri r3, r3, 29 + 68e6: 64d6 cmpne r5, r3 + 68e8: 0c0e bf 0x6904 // 6904 + TempCtrl.BackLightTick = SysTick_1ms; + 68ea: 9460 ld.w r3, (r4, 0x0) + 68ec: 4b88 lsri r4, r3, 8 + 68ee: a270 st.b r3, (r2, 0x10) + 68f0: a291 st.b r4, (r2, 0x11) + 68f2: 4b90 lsri r4, r3, 16 + 68f4: 4b78 lsri r3, r3, 24 + 68f6: a273 st.b r3, (r2, 0x13) + tm1812_param.LCD_blaklingt_flag = 0x00; + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 68f8: 4807 lsri r0, r0, 7 + tm1812_param.LCD_blaklingt_flag = 0x00; + 68fa: 3300 movi r3, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 68fc: a292 st.b r4, (r2, 0x12) + tm1812_param.LCD_blaklingt_flag = 0x00; + 68fe: a179 st.b r3, (r1, 0x19) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 6900: e3fffec8 bsr 0x6690 // 6690 + } + +} + 6904: 1492 pop r4-r5, r15 + }else if(HT1621.buz_control == 0x02){ + 6906: 3a42 cmpnei r2, 2 + 6908: 0be9 bt 0x68da // 68da + if(SysTick_1ms - HT1621.buz_tick >= 500){ + 690a: 952e ld.w r1, (r5, 0x38) + 690c: 9440 ld.w r2, (r4, 0x0) + 690e: 6086 subu r2, r1 + 6910: 1023 lrw r1, 0x1f3 // 691c + 6912: 07db br 0x68c8 // 68c8 + 6914: 200000c0 .long 0x200000c0 + 6918: 200005c0 .long 0x200005c0 + 691c: 000001f3 .long 0x000001f3 + 6920: 200005e0 .long 0x200005e0 + 6924: 2000083c .long 0x2000083c + 6928: 200001a0 .long 0x200001a0 + +Disassembly of section .text.Boot_Function_Init: + +0000692c : + +BOOT_INFO_T g_boot; +APP_FEATURE_INFO_T g_app_feature; + +void Boot_Function_Init(void) +{ + 692c: 14d2 push r4-r5, r15 + U8_T app_ready = 0; + + U16_T sys_reset_sta = 0; + + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 692e: 329e movi r2, 158 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 6930: 3580 movi r5, 128 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 6932: 4241 lsli r2, r2, 1 + 6934: 3100 movi r1, 0 + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 6936: 45a1 lsli r5, r5, 1 + memset(&g_boot,0,sizeof(BOOT_INFO_T)); + 6938: 1010 lrw r0, 0x20000600 // 6978 + 693a: e3ffd983 bsr 0x1c40 // 1c40 <__memset_fast> + memset(&g_app_feature,0,sizeof(APP_FEATURE_INFO_T)); + 693e: 6c97 mov r2, r5 + 6940: 3100 movi r1, 0 + 6942: 100f lrw r0, 0x2000073c // 697c + 6944: e3ffd97e bsr 0x1c40 // 1c40 <__memset_fast> + + g_boot.ackValidity = 1000; //数据默认有效期为1000ms + 6948: 33fa movi r3, 250 + 694a: 4362 lsli r3, r3, 2 + 694c: 108d lrw r4, 0x20000700 // 6980 + 694e: ac79 st.h r3, (r4, 0x32) + + EEPROM_Init(); + 6950: e3fff380 bsr 0x5050 // 5050 +// Dbg_Println(DBG_BIT_SYS_STATUS,"APP Feature Fail!"); +// +// } +//#endif + + sys_reset_sta = SYSCON->UREG3; + 6954: 106c lrw r3, 0x2000005c // 6984 + 6956: 9360 ld.w r3, (r3, 0x0) + 6958: 23ff addi r3, 256 + 695a: 9363 ld.w r3, (r3, 0xc) + 695c: 74cd zexth r3, r3 + + if(sys_reset_sta == 0x100) //软件复位 -- 升级开始复位源 + 695e: 654e cmpne r3, r5 + 6960: 0804 bt 0x6968 // 6968 + { + g_boot.bootTimeout = 5000; + 6962: 106a lrw r3, 0x1388 // 6988 +#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; + 6964: b46d st.w r3, (r4, 0x34) +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS,"Boot other reset 0x%x",sys_reset_sta); +#endif + } + +} + 6966: 1492 pop r4-r5, r15 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 6968: 3b41 cmpnei r3, 1 + g_boot.bootTimeout = 500; + 696a: 33fa movi r3, 250 + }else if(sys_reset_sta == 0x01) //上电复位RPOR + 696c: 0803 bt 0x6972 // 6972 + g_boot.bootTimeout = 500; + 696e: 4361 lsli r3, r3, 1 + 6970: 07fa br 0x6964 // 6964 + g_boot.bootTimeout = 2000; + 6972: 4363 lsli r3, r3, 3 + 6974: 07f8 br 0x6964 // 6964 + 6976: 0000 bkpt + 6978: 20000600 .long 0x20000600 + 697c: 2000073c .long 0x2000073c + 6980: 20000700 .long 0x20000700 + 6984: 2000005c .long 0x2000005c + 6988: 00001388 .long 0x00001388 + +Disassembly of section .text.Boot_Comm_CheckSum: + +0000698c : + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 698c: 14c1 push r4 + U8_T sum = 0; + 698e: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 6990: 1047 lrw r2, 0xffff // 69ac + 6992: 2900 subi r1, 1 + 6994: 7445 zexth r1, r1 + 6996: 6486 cmpne r1, r2 + 6998: 0804 bt 0x69a0 // 69a0 + { + sum += buffer[i]; + i++; + } + return (~sum); + 699a: 6cce nor r3, r3 + 699c: 740c zextb r0, r3 +} + 699e: 1481 pop r4 + sum += buffer[i]; + 69a0: 8080 ld.b r4, (r0, 0x0) + 69a2: 60d0 addu r3, r4 + 69a4: 74cc zextb r3, r3 + 69a6: 2000 addi r0, 1 + 69a8: 07f5 br 0x6992 // 6992 + 69aa: 0000 bkpt + 69ac: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +000069b0 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 69b0: 14d4 push r4-r7, r15 + 69b2: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69b4: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 69b6: 1074 lrw r3, 0x2000052c // 6a04 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69b8: 47e1 lsli r7, r7, 1 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 69ba: 8340 ld.b r2, (r3, 0x0) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69bc: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 69be: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69c0: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 69c2: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69c4: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 69c6: 1071 lrw r3, 0x20000600 // 6a08 + 69c8: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 69ca: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 69cc: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 69ce: 8062 ld.b r3, (r0, 0x2) + 69d0: 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; + 69d2: 4d68 lsri r3, r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 69d4: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 69d6: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 69d8: 8041 ld.b r2, (r0, 0x1) + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 69da: 3300 movi r3, 0 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 69dc: 58ce addi r6, r0, 4 +{ + 69de: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 69e0: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 69e2: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 69e4: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 69e6: 6c57 mov r1, r5 + 69e8: 6c1b mov r0, r6 + 69ea: e3ffffd1 bsr 0x698c // 698c + 69ee: a40a st.b r0, (r4, 0xa) +#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); + 69f0: 3264 movi r2, 100 + 69f2: 8f79 ld.h r3, (r7, 0x32) + 69f4: 6c57 mov r1, r5 + 69f6: b840 st.w r2, (r14, 0x0) + 69f8: 6c1b mov r0, r6 + 69fa: 3201 movi r2, 1 + 69fc: e3ffeade bsr 0x3fb8 // 3fb8 + + //ack_uart->ackLen = 0x00; +} + 6a00: 1401 addi r14, r14, 4 + 6a02: 1494 pop r4-r7, r15 + 6a04: 2000052c .long 0x2000052c + 6a08: 20000600 .long 0x20000600 + +Disassembly of section .text.Boot_Time_Refresh: + +00006a0c : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + 6a0c: 1063 lrw r3, 0x200000c0 // 6a18 + 6a0e: 9340 ld.w r2, (r3, 0x0) + 6a10: 1063 lrw r3, 0x20000700 // 6a1c + 6a12: b34e st.w r2, (r3, 0x38) +} + 6a14: 783c jmp r15 + 6a16: 0000 bkpt + 6a18: 200000c0 .long 0x200000c0 + 6a1c: 20000700 .long 0x20000700 + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +00006a20 : +{ + 6a20: 14d4 push r4-r7, r15 + 6a22: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + 6a24: 8065 ld.b r3, (r0, 0x5) + 6a26: 8044 ld.b r2, (r0, 0x4) + 6a28: 4368 lsli r3, r3, 8 + 6a2a: 6cc8 or r3, r2 + if(len != data_len) { + 6a2c: 644e cmpne r3, r1 +{ + 6a2e: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + 6a30: b860 st.w r3, (r14, 0x0) + if(len != data_len) { + 6a32: 08aa bt 0x6b86 // 6b86 + if(Boot_Comm_CheckSum(data,len) != 0) { + 6a34: 6c4f mov r1, r3 + 6a36: e3ffffab bsr 0x698c // 698c + 6a3a: 3840 cmpnei r0, 0 + 6a3c: 6cc3 mov r3, r0 + 6a3e: 08a6 bt 0x6b8a // 6b8a + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 6a40: 8541 ld.b r2, (r5, 0x1) + 6a42: 744a sextb r1, r2 + 6a44: 39df btsti r1, 31 + 6a46: 1295 lrw r4, 0x20000600 // 6b98 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6a48: 8401 ld.b r0, (r4, 0x1) + 6a4a: 310f movi r1, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 6a4c: 0c2d bf 0x6aa6 // 6aa6 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6a4e: 6884 and r2, r1 + 6a50: 6482 cmpne r0, r2 + 6a52: 60cd addc r3, r3 + deal_flag = 0x00; + 6a54: 740c zextb r0, r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 6a56: 3700 movi r7, 0 + group_flag = 0x01; + 6a58: 3301 movi r3, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + 6a5a: 12d1 lrw r6, 0x2000052c // 6b9c + 6a5c: 8542 ld.b r2, (r5, 0x2) + 6a5e: 8621 ld.b r1, (r6, 0x1) + 6a60: 6486 cmpne r1, r2 + 6a62: 0c04 bf 0x6a6a // 6a6a + 6a64: 31ff movi r1, 255 + 6a66: 644a cmpne r2, r1 + 6a68: 0893 bt 0x6b8e // 6b8e + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + 6a6a: 8543 ld.b r2, (r5, 0x3) + 6a6c: 8620 ld.b r1, (r6, 0x0) + 6a6e: 6486 cmpne r1, r2 + 6a70: 0c04 bf 0x6a78 // 6a78 + 6a72: 31ff movi r1, 255 + 6a74: 644a cmpne r2, r1 + 6a76: 088e bt 0x6b92 // 6b92 + 6a78: b862 st.w r3, (r14, 0x8) + 6a7a: b801 st.w r0, (r14, 0x4) + Boot_Time_Refresh(); + 6a7c: e3ffffc8 bsr 0x6a0c // 6a0c + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + 6a80: 8560 ld.b r3, (r5, 0x0) + 6a82: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + 6a84: 8541 ld.b r2, (r5, 0x1) + 6a86: 310f movi r1, 15 + 6a88: 6884 and r2, r1 + 6a8a: a441 st.b r2, (r4, 0x1) + switch(g_boot.cmd){ + 6a8c: 31c0 movi r1, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 6a8e: 8547 ld.b r2, (r5, 0x7) + switch(g_boot.cmd){ + 6a90: 644a cmpne r2, r1 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 6a92: a442 st.b r2, (r4, 0x2) + switch(g_boot.cmd){ + 6a94: 9801 ld.w r0, (r14, 0x4) + 6a96: 9862 ld.w r3, (r14, 0x8) + 6a98: 0c1a bf 0x6acc // 6acc + 6a9a: 31c1 movi r1, 193 + 6a9c: 644a cmpne r2, r1 + 6a9e: 0c62 bf 0x6b62 // 6b62 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 6aa0: 3201 movi r2, 1 + 6aa2: a44c st.b r2, (r4, 0xc) + 6aa4: 046a br 0x6b78 // 6b78 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 6aa6: 6848 and r1, r2 + 6aa8: 6442 cmpne r0, r1 + 6aaa: 080c bt 0x6ac2 // 6ac2 + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + 6aac: 3140 movi r1, 64 + 6aae: 6884 and r2, r1 + 6ab0: 3a40 cmpnei r2, 0 + 6ab2: 0c0b bf 0x6ac8 // 6ac8 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + 6ab4: 8527 ld.b r1, (r5, 0x7) + 6ab6: 844b ld.b r2, (r4, 0xb) + 6ab8: 6486 cmpne r1, r2 + 6aba: 65c3 mvcv r7 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 6abc: 75dc zextb r7, r7 + 6abe: 3000 movi r0, 0 + 6ac0: 07cd br 0x6a5a // 6a5a + reply_flag = 0x01; + 6ac2: 3701 movi r7, 1 + deal_flag = 0x01; + 6ac4: 3001 movi r0, 1 + 6ac6: 07ca br 0x6a5a // 6a5a + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 6ac8: 3700 movi r7, 0 + 6aca: 07fa br 0x6abe // 6abe + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + 6acc: 3841 cmpnei r0, 1 + 6ace: 0819 bt 0x6b00 // 6b00 + 6ad0: 9840 ld.w r2, (r14, 0x0) + 6ad2: 3a0b cmphsi r2, 12 + 6ad4: 0c16 bf 0x6b00 // 6b00 + temp_data |= data[BCOMM_FMT_PARAM]; + 6ad6: 8529 ld.b r1, (r5, 0x9) + 6ad8: 8548 ld.b r2, (r5, 0x8) + 6ada: 4128 lsli r1, r1, 8 + 6adc: 6c48 or r1, r2 + if(temp_data != g_boot.bootTimeout){ + 6ade: 1151 lrw r2, 0x20000700 // 6ba0 + 6ae0: 920d ld.w r0, (r2, 0x34) + 6ae2: 6406 cmpne r1, r0 + 6ae4: 0c09 bf 0x6af6 // 6af6 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 6ae6: 3909 cmphsi r1, 10 + 6ae8: 0c3b bf 0x6b5e // 6b5e + 6aea: b22d st.w r1, (r2, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + 6aec: 30fa movi r0, 250 + 6aee: 922d ld.w r1, (r2, 0x34) + 6af0: 4002 lsli r0, r0, 2 + 6af2: 7c40 mult r1, r0 + 6af4: b22d st.w r1, (r2, 0x34) + 6af6: 852b ld.b r1, (r5, 0xb) + 6af8: 850a ld.b r0, (r5, 0xa) + 6afa: 4128 lsli r1, r1, 8 + 6afc: 6c40 or r1, r0 + g_boot.ackValidity = temp_data; + 6afe: aa39 st.h r1, (r2, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + 6b00: 3f41 cmpnei r7, 1 + 6b02: 082c bt 0x6b5a // 6b5a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + 6b04: 3202 movi r2, 2 + 6b06: a44c st.b r2, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + 6b08: 8642 ld.b r2, (r6, 0x2) + 6b0a: a44d st.b r2, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + 6b0c: 8643 ld.b r2, (r6, 0x3) + 6b0e: a44e st.b r2, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + 6b10: 3203 movi r2, 3 + 6b12: a44f st.b r2, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + 6b14: 1144 lrw r2, 0x2000005c // 6ba4 + 6b16: 9240 ld.w r2, (r2, 0x0) + 6b18: 227f addi r2, 128 + 6b1a: 9239 ld.w r1, (r2, 0x64) + 6b1c: a430 st.b r1, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + 6b1e: 923a ld.w r1, (r2, 0x68) + 6b20: a431 st.b r1, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + 6b22: 925b ld.w r2, (r2, 0x6c) + 6b24: a452 st.b r2, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + 6b26: 8624 ld.b r1, (r6, 0x4) + 6b28: 3220 movi r2, 32 + 6b2a: 6448 cmphs r2, r1 + 6b2c: 0802 bt 0x6b30 // 6b30 + 6b2e: a644 st.b r2, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + 6b30: 8644 ld.b r2, (r6, 0x4) + 6b32: a453 st.b r2, (r4, 0x13) + 6b34: 3220 movi r2, 32 + 6b36: 101a lrw r0, 0x2000052c // 6b9c + 6b38: 1038 lrw r1, 0x20000600 // 6b98 + 6b3a: 2a00 subi r2, 1 + 6b3c: 7488 zextb r2, r2 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + 6b3e: 8085 ld.b r4, (r0, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + 6b4a: 1056 lrw r2, 0x20000700 // 6ba0 + 6b4c: 3128 movi r1, 40 + 6b4e: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 6b50: 3b40 cmpnei r3, 0 + 6b52: 0804 bt 0x6b5a // 6b5a + Boot_Comm_FillReplyPack(&g_boot); + 6b54: 1011 lrw r0, 0x20000600 // 6b98 + 6b56: e3ffff2d bsr 0x69b0 // 69b0 +} + 6b5a: 1403 addi r14, r14, 12 + 6b5c: 1494 pop r4-r7, r15 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 6b5e: 310a movi r1, 10 + 6b60: 07c5 br 0x6aea // 6aea + if(deal_flag != 0x01) break; //不处理直接退出 + 6b62: 3841 cmpnei r0, 1 + 6b64: 080d bt 0x6b7e // 6b7e + if(data[BCOMM_FMT_PARAM] == 0x01){ + 6b66: 8548 ld.b r2, (r5, 0x8) + 6b68: 3a41 cmpnei r2, 1 + 6b6a: 0b9b bt 0x6aa0 // 6aa0 + 6b6c: b860 st.w r3, (r14, 0x0) + BUS485_Jump_Boot(0x01); + 6b6e: e3ffea5f bsr 0x402c // 402c + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + 6b72: 3300 movi r3, 0 + 6b74: a46c st.b r3, (r4, 0xc) + 6b76: 9860 ld.w r3, (r14, 0x0) + g_boot.ackLen = 1; + 6b78: 104a lrw r2, 0x20000700 // 6ba0 + 6b7a: 3101 movi r1, 1 + 6b7c: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 6b7e: 3b40 cmpnei r3, 0 + 6b80: 0bed bt 0x6b5a // 6b5a + 6b82: 3f41 cmpnei r7, 1 + 6b84: 07e7 br 0x6b52 // 6b52 + return 0x01; + 6b86: 3001 movi r0, 1 + 6b88: 07e9 br 0x6b5a // 6b5a + return 0x02; + 6b8a: 3002 movi r0, 2 + 6b8c: 07e7 br 0x6b5a // 6b5a + return 0x03; + 6b8e: 3003 movi r0, 3 + 6b90: 07e5 br 0x6b5a // 6b5a + return 0x04; + 6b92: 3004 movi r0, 4 + 6b94: 07e3 br 0x6b5a // 6b5a + 6b96: 0000 bkpt + 6b98: 20000600 .long 0x20000600 + 6b9c: 2000052c .long 0x2000052c + 6ba0: 20000700 .long 0x20000700 + 6ba4: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Init: + +00006ba8 : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 6ba8: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 6baa: 1298 lrw r4, 0x2000083c // 6d08 + 6bac: 3229 movi r2, 41 + 6bae: 3100 movi r1, 0 + 6bb0: 6c13 mov r0, r4 + 6bb2: e3ffd847 bsr 0x1c40 // 1c40 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 6bb6: 1276 lrw r3, 0x200000b4 // 6d0c + 6bb8: 9360 ld.w r3, (r3, 0x0) + 6bba: 3b80 bclri r3, 0 + 6bbc: 3b40 cmpnei r3, 0 + 6bbe: 0c9e bf 0x6cfa // 6cfa + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 6bc0: 1234 lrw r1, 0xab17 // 6d10 + 6bc2: 3000 movi r0, 0 + 6bc4: e3ffeaa2 bsr 0x4108 // 4108 + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 6bc8: 1273 lrw r3, 0x200000b0 // 6d14 + 6bca: 30ff movi r0, 255 + 6bcc: 9320 ld.w r1, (r3, 0x0) + 6bce: 6840 and r1, r0 + 6bd0: 3940 cmpnei r1, 0 + 6bd2: 0c05 bf 0x6bdc // 6bdc + 6bd4: 9340 ld.w r2, (r3, 0x0) + 6bd6: 6880 and r2, r0 + 6bd8: 3a41 cmpnei r2, 1 + 6bda: 0883 bt 0x6ce0 // 6ce0 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 6bdc: 9340 ld.w r2, (r3, 0x0) + 6bde: 4227 lsli r1, r2, 7 + 6be0: 307f movi r0, 127 + 6be2: 8442 ld.b r2, (r4, 0x2) + 6be4: 6880 and r2, r0 + 6be6: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6be8: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 6bea: 9340 ld.w r2, (r3, 0x0) + 6bec: 4a48 lsri r2, r2, 8 + 6bee: 30ff movi r0, 255 + 6bf0: 6880 and r2, r0 + 6bf2: 3a40 cmpnei r2, 0 + 6bf4: 0c10 bf 0x6c14 // 6c14 + 6bf6: 9340 ld.w r2, (r3, 0x0) + 6bf8: 4a48 lsri r2, r2, 8 + 6bfa: 6880 and r2, r0 + 6bfc: 3a42 cmpnei r2, 2 + 6bfe: 0c0b bf 0x6c14 // 6c14 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 6c00: 9320 ld.w r1, (r3, 0x0) + 6c02: 4928 lsri r1, r1, 8 + 6c04: 6840 and r1, r0 + 6c06: 3944 cmpnei r1, 4 + 6c08: 0c06 bf 0x6c14 // 6c14 + 6c0a: 9340 ld.w r2, (r3, 0x0) + 6c0c: 4a48 lsri r2, r2, 8 + 6c0e: 6880 and r2, r0 + 6c10: 3a46 cmpnei r2, 6 + 6c12: 086b bt 0x6ce8 // 6ce8 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 6c14: 9340 ld.w r2, (r3, 0x0) + 6c16: 3107 movi r1, 7 + 6c18: 4a48 lsri r2, r2, 8 + 6c1a: 6884 and r2, r1 + 6c1c: 3070 movi r0, 112 + 6c1e: 8422 ld.b r1, (r4, 0x2) + 6c20: 4244 lsli r2, r2, 4 + 6c22: 6841 andn r1, r0 + 6c24: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6c26: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 6c28: 9340 ld.w r2, (r3, 0x0) + 6c2a: 4a50 lsri r2, r2, 16 + 6c2c: 30ff movi r0, 255 + 6c2e: 6880 and r2, r0 + 6c30: 3a40 cmpnei r2, 0 + 6c32: 0c10 bf 0x6c52 // 6c52 + 6c34: 9340 ld.w r2, (r3, 0x0) + 6c36: 4a50 lsri r2, r2, 16 + 6c38: 6880 and r2, r0 + 6c3a: 3a41 cmpnei r2, 1 + 6c3c: 0c0b bf 0x6c52 // 6c52 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 6c3e: 9320 ld.w r1, (r3, 0x0) + 6c40: 4930 lsri r1, r1, 16 + 6c42: 6840 and r1, r0 + 6c44: 3942 cmpnei r1, 2 + 6c46: 0c06 bf 0x6c52 // 6c52 + 6c48: 9340 ld.w r2, (r3, 0x0) + 6c4a: 4a50 lsri r2, r2, 16 + 6c4c: 6880 and r2, r0 + 6c4e: 3a43 cmpnei r2, 3 + 6c50: 0850 bt 0x6cf0 // 6cf0 + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 6c52: 9340 ld.w r2, (r3, 0x0) + 6c54: 3107 movi r1, 7 + 6c56: 4a50 lsri r2, r2, 16 + 6c58: 6884 and r2, r1 + 6c5a: 300e movi r0, 14 + 6c5c: 8422 ld.b r1, (r4, 0x2) + 6c5e: 4241 lsli r2, r2, 1 + 6c60: 6841 andn r1, r0 + 6c62: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 6c64: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 6c66: 9340 ld.w r2, (r3, 0x0) + 6c68: 4a58 lsri r2, r2, 24 + 6c6a: 3a0f cmphsi r2, 16 + 6c6c: 0c4c bf 0x6d04 // 6d04 + 6c6e: 3284 movi r2, 132 + 6c70: 4256 lsli r2, r2, 22 + 6c72: 9320 ld.w r1, (r3, 0x0) + 6c74: 2a00 subi r2, 1 + 6c76: 6448 cmphs r2, r1 + 6c78: 0c46 bf 0x6d04 // 6d04 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 6c7a: 9360 ld.w r3, (r3, 0x0) + 6c7c: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 6c7e: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6c80: e3fff2c8 bsr 0x5210 // 5210 + 6c84: 1165 lrw r3, 0x20000524 // 6d18 + 6c86: 8362 ld.b r3, (r3, 0x2) + 6c88: 320a movi r2, 10 + 6c8a: 7cc8 mult r3, r2 + 6c8c: 2b54 subi r3, 85 + 6c8e: 600c addu r0, r3 + 6c90: 7401 zexth r0, r0 + 6c92: 4868 lsri r3, r0, 8 + 6c94: a469 st.b r3, (r4, 0x9) + 6c96: a408 st.b r0, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6c98: 310a movi r1, 10 + 6c9a: e3ffe7cb bsr 0x3c30 // 3c30 <__udivsi3> + TempCtrl.CardState = 0x01; //默认插卡 + 6c9e: 3301 movi r3, 1 + 6ca0: a478 st.b r3, (r4, 0x18) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 6ca2: 3300 movi r3, 0 + 6ca4: a47a st.b r3, (r4, 0x1a) + SYSCON->UREG0 = 0x00000000; + 6ca6: 3200 movi r2, 0 + 6ca8: 107d lrw r3, 0x2000005c // 6d1c + 6caa: 9360 ld.w r3, (r3, 0x0) + 6cac: 23ff addi r3, 256 + 6cae: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6cb0: 8442 ld.b r2, (r4, 0x2) + 6cb2: 4239 lsli r1, r2, 25 + 6cb4: 493d lsri r1, r1, 29 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6cb6: a400 st.b r0, (r4, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 6cb8: 4128 lsli r1, r1, 8 + 6cba: 9300 ld.w r0, (r3, 0x0) + 6cbc: 6c40 or r1, r0 + 6cbe: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 6cc0: 423c lsli r1, r2, 28 + 6cc2: 493d lsri r1, r1, 29 + 6cc4: 9300 ld.w r0, (r3, 0x0) + 6cc6: 4130 lsli r1, r1, 16 + 6cc8: 6c40 or r1, r0 + 6cca: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 6ccc: 8421 ld.b r1, (r4, 0x1) + 6cce: 9300 ld.w r0, (r3, 0x0) + 6cd0: 4138 lsli r1, r1, 24 + 6cd2: 6c40 or r1, r0 + 6cd4: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 6cd6: 9320 ld.w r1, (r3, 0x0) + 6cd8: 4a47 lsri r2, r2, 7 + 6cda: 6c84 or r2, r1 + 6cdc: b340 st.w r2, (r3, 0x0) +} + 6cde: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 6ce0: 8442 ld.b r2, (r4, 0x2) + 6ce2: 317f movi r1, 127 + 6ce4: 6884 and r2, r1 + 6ce6: 0781 br 0x6be8 // 6be8 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 6ce8: 8442 ld.b r2, (r4, 0x2) + 6cea: 3170 movi r1, 112 + 6cec: 6885 andn r2, r1 + 6cee: 079c br 0x6c26 // 6c26 + TempCtrl.TemState_Now.fan = FAN_MID; + 6cf0: 8442 ld.b r2, (r4, 0x2) + 6cf2: 310e movi r1, 14 + 6cf4: 6885 andn r2, r1 + 6cf6: 3aa1 bseti r2, 1 + 6cf8: 07b6 br 0x6c64 // 6c64 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 6cfa: 8462 ld.b r3, (r4, 0x2) + 6cfc: 320e movi r2, 14 + 6cfe: 68c9 andn r3, r2 + 6d00: 3ba1 bseti r3, 1 + 6d02: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 6d04: 3318 movi r3, 24 + 6d06: 07bc br 0x6c7e // 6c7e + 6d08: 2000083c .long 0x2000083c + 6d0c: 200000b4 .long 0x200000b4 + 6d10: 0000ab17 .long 0x0000ab17 + 6d14: 200000b0 .long 0x200000b0 + 6d18: 20000524 .long 0x20000524 + 6d1c: 2000005c .long 0x2000005c + +Disassembly of section .text.TemCtrl_Model_Set: + +00006d20 : + * 函数功能:模式控制 + * + * +*/ +void TemCtrl_Model_Set(void) +{ + 6d20: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6d22: 1031 lrw r1, 0x2000083c // 6d64 + 6d24: 8162 ld.b r3, (r1, 0x2) + 6d26: 748e sextb r2, r3 + 6d28: 3adf btsti r2, 31 + 6d2a: 0c14 bf 0x6d52 // 6d52 + { + return ; + } + switch(TempCtrl.TemState_Now.mode) + 6d2c: 4359 lsli r2, r3, 25 + 6d2e: 4a5d lsri r2, r2, 29 + 6d30: 3a42 cmpnei r2, 2 + 6d32: 0c11 bf 0x6d54 // 6d54 + 6d34: 3a44 cmpnei r2, 4 + 6d36: 0c13 bf 0x6d5c // 6d5c + 6d38: 3a40 cmpnei r2, 0 + { + case MODEL_COLD: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6d3a: 3270 movi r2, 112 + 6d3c: 68c9 andn r3, r2 + switch(TempCtrl.TemState_Now.mode) + 6d3e: 0802 bt 0x6d42 // 6d42 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 6d40: 3ba5 bseti r3, 5 + break; + case MODEL_WIND: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + default: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6d42: a162 st.b r3, (r1, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Model:%d",TempCtrl.TemState_Now.mode); + 6d44: 8142 ld.b r2, (r1, 0x2) + 6d46: 4259 lsli r2, r2, 25 + 6d48: 4a5d lsri r2, r2, 29 + 6d4a: 1028 lrw r1, 0xab30 // 6d68 + 6d4c: 3000 movi r0, 0 + 6d4e: e3ffe9dd bsr 0x4108 // 4108 +} + 6d52: 1490 pop r15 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 6d54: 3270 movi r2, 112 + 6d56: 68c9 andn r3, r2 + 6d58: 3ba6 bseti r3, 6 + 6d5a: 07f4 br 0x6d42 // 6d42 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 6d5c: 3270 movi r2, 112 + 6d5e: 68c9 andn r3, r2 + 6d60: 07f1 br 0x6d42 // 6d42 + 6d62: 0000 bkpt + 6d64: 2000083c .long 0x2000083c + 6d68: 0000ab30 .long 0x0000ab30 + +Disassembly of section .text.TemCtrl_Fan_Set: + +00006d6c : + * 函数功能:风速控制 + * + * +*/ +void TemCtrl_Fan_Set(void) +{ + 6d6c: 14d0 push r15 + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6d6e: 1071 lrw r3, 0x2000083c // 6db0 + 6d70: 8342 ld.b r2, (r3, 0x2) + 6d72: 744a sextb r1, r2 + 6d74: 39df btsti r1, 31 + 6d76: 0c15 bf 0x6da0 // 6da0 + { + return ; + } + switch(TempCtrl.TemState_Now.fan) //风速 + 6d78: 421c lsli r0, r2, 28 + 6d7a: 481d lsri r0, r0, 29 + 6d7c: 3803 cmphsi r0, 4 + 6d7e: 0814 bt 0x6da6 // 6da6 + break; + case FAN_HIGH: + TempCtrl.TemState_Now.fan = FAN_AUTO; + break; + case FAN_AUTO: + TempCtrl.TemState_Now.fan = FAN_LOW; + 6d80: 8342 ld.b r2, (r3, 0x2) + 6d82: 310e movi r1, 14 + 6d84: 6885 andn r2, r1 + switch(TempCtrl.TemState_Now.fan) //风速 + 6d86: e3ffcfbb bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 6d8a: 0c02 .short 0x0c02 + 6d8c: 0310 .short 0x0310 + TempCtrl.TemState_Now.fan = FAN_MID; + 6d8e: 3aa1 bseti r2, 1 + break; + default: + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6d90: a342 st.b r2, (r3, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Fan:%d",TempCtrl.TemState_Now.fan); + 6d92: 8342 ld.b r2, (r3, 0x2) + 6d94: 425c lsli r2, r2, 28 + 6d96: 4a5d lsri r2, r2, 29 + 6d98: 1027 lrw r1, 0xab39 // 6db4 + 6d9a: 3000 movi r0, 0 + 6d9c: e3ffe9b6 bsr 0x4108 // 4108 +} + 6da0: 1490 pop r15 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 6da2: 3aa2 bseti r2, 2 + 6da4: 07f6 br 0x6d90 // 6d90 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 6da6: 310e movi r1, 14 + 6da8: 6885 andn r2, r1 + 6daa: 3aa1 bseti r2, 1 + 6dac: 3aa2 bseti r2, 2 + 6dae: 07f1 br 0x6d90 // 6d90 + 6db0: 2000083c .long 0x2000083c + 6db4: 0000ab39 .long 0x0000ab39 + +Disassembly of section .text.TemCtrl_Temperature_Dec: + +00006db8 : + * 函数功能:设置温度减 + * + * +*/ +void TemCtrl_Temperature_Dec(void) +{ + 6db8: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6dba: 106a lrw r3, 0x2000083c // 6de0 + 6dbc: 8342 ld.b r2, (r3, 0x2) + 6dbe: 748a sextb r2, r2 + 6dc0: 3adf btsti r2, 31 + 6dc2: 0c0b bf 0x6dd8 // 6dd8 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6dc4: 8341 ld.b r2, (r3, 0x1) + + if(TemSet > TEM_MIN_SET) //大于最低温度 + 6dc6: 3a10 cmphsi r2, 17 + 6dc8: 0c09 bf 0x6dda // 6dda + { + TemSet--; //超过最低温度,就减 + 6dca: 2a00 subi r2, 1 + 6dcc: 7488 zextb r2, r2 + TemSet = TEM_MIN_SET; //减到最低就不减了 + } + + TempCtrl.TemState_Now.set_t = TemSet; + + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6dce: 1026 lrw r1, 0xab40 // 6de4 + 6dd0: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; + 6dd2: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"set_t:%d",TempCtrl.TemState_Now.set_t); + 6dd4: e3ffe99a bsr 0x4108 // 4108 +} + 6dd8: 1490 pop r15 + TemSet = TEM_MIN_SET; //减到最低就不减了 + 6dda: 3210 movi r2, 16 + 6ddc: 07f9 br 0x6dce // 6dce + 6dde: 0000 bkpt + 6de0: 2000083c .long 0x2000083c + 6de4: 0000ab40 .long 0x0000ab40 + +Disassembly of section .text.TemCtrl_Temperature_Add: + +00006de8 : + * 函数功能:设置温度加 + * + * +*/ +void TemCtrl_Temperature_Add(void) +{ + 6de8: 14d0 push r15 + U8_T TemSet; //设置温度 + + if(TEMP_OFF == TempCtrl.TemState_Now.on_off) + 6dea: 106a lrw r3, 0x2000083c // 6e10 + 6dec: 8342 ld.b r2, (r3, 0x2) + 6dee: 748a sextb r2, r2 + 6df0: 3adf btsti r2, 31 + 6df2: 0c0b bf 0x6e08 // 6e08 + { + return ; + } +// TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + TemSet = TempCtrl.TemState_Now.set_t; + 6df4: 8341 ld.b r2, (r3, 0x1) + + if(TemSet < TEM_MAX_SET) //小于最高温度 设置温度为0 即是32度 + 6df6: 3a1f cmphsi r2, 32 + 6df8: 0809 bt 0x6e0a // 6e0a + { + TemSet++; + 6dfa: 2200 addi r2, 1 + 6dfc: 7488 zextb r2, r2 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + } + + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6dfe: 1026 lrw r1, 0xab49 // 6e14 + 6e00: 3000 movi r0, 0 + TempCtrl.TemState_Now.set_t = TemSet; //室内温度 + 6e02: a341 st.b r2, (r3, 0x1) + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.set_t); + 6e04: e3ffe982 bsr 0x4108 // 4108 +} + 6e08: 1490 pop r15 + TemSet = TEM_MAX_SET; //加到最高温度就不加了 赋值32即是0 + 6e0a: 3220 movi r2, 32 + 6e0c: 07f9 br 0x6dfe // 6dfe + 6e0e: 0000 bkpt + 6e10: 2000083c .long 0x2000083c + 6e14: 0000ab49 .long 0x0000ab49 + +Disassembly of section .text.TemCtrl_OnOff_Set: + +00006e18 : + * 函数功能:开关机控制 + * + * +*/ +void TemCtrl_OnOff_Set(void) +{ + 6e18: 14d0 push r15 + switch(TempCtrl.TemState_Now.on_off) + 6e1a: 104b lrw r2, 0x2000083c // 6e44 + 6e1c: 8262 ld.b r3, (r2, 0x2) + 6e1e: 4b27 lsri r1, r3, 7 + 6e20: 3940 cmpnei r1, 0 + 6e22: 0c0d bf 0x6e3c // 6e3c + 6e24: 3941 cmpnei r1, 1 + 6e26: 080b bt 0x6e3c // 6e3c + { + case TEMP_ON: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 6e28: 317f movi r1, 127 + 6e2a: 68c4 and r3, r1 + break; + case TEMP_OFF: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6e2c: a262 st.b r3, (r2, 0x2) + break; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Set Temp_1:%d",TempCtrl.TemState_Now.on_off); + 6e2e: 8242 ld.b r2, (r2, 0x2) + 6e30: 4a47 lsri r2, r2, 7 + 6e32: 1026 lrw r1, 0xab49 // 6e48 + 6e34: 3000 movi r0, 0 + 6e36: e3ffe969 bsr 0x4108 // 4108 +} + 6e3a: 1490 pop r15 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 6e3c: 3100 movi r1, 0 + 6e3e: 297f subi r1, 128 + 6e40: 6cc4 or r3, r1 + 6e42: 07f5 br 0x6e2c // 6e2c + 6e44: 2000083c .long 0x2000083c + 6e48: 0000ab49 .long 0x0000ab49 + +Disassembly of section .text.Tem_Valve_Ctrl: + +00006e4c : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 6e4c: 14d1 push r4, r15 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 6e4e: 1130 lrw r1, 0x2000083c // 6f0c + 6e50: 8100 ld.b r0, (r1, 0x0) + 6e52: 3840 cmpnei r0, 0 + 6e54: 0802 bt 0x6e58 // 6e58 + 6e56: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 6e58: 8141 ld.b r2, (r1, 0x1) + 6e5a: 3a40 cmpnei r2, 0 + 6e5c: 0802 bt 0x6e60 // 6e60 + 6e5e: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 6e60: 8162 ld.b r3, (r1, 0x2) + 6e62: 4b87 lsri r4, r3, 7 + 6e64: 3c40 cmpnei r4, 0 + 6e66: 0c0f bf 0x6e84 // 6e84 + 6e68: 3c41 cmpnei r4, 1 + 6e6a: 0850 bt 0x6f0a // 6f0a + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 6e6c: 4399 lsli r4, r3, 25 + 6e6e: 4c9d lsri r4, r4, 29 + 6e70: 3c42 cmpnei r4, 2 + 6e72: 0c26 bf 0x6ebe // 6ebe + 6e74: 3c44 cmpnei r4, 4 + 6e76: 0c36 bf 0x6ee2 // 6ee2 + 6e78: 3c40 cmpnei r4, 0 + 6e7a: 0848 bt 0x6f0a // 6f0a + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6e7c: 5a83 subi r4, r2, 1 + 6e7e: 6501 cmplt r0, r4 + 6e80: 0c05 bf 0x6e8a // 6e8a + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6e82: 8162 ld.b r3, (r1, 0x2) + + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6e84: 3b80 bclri r3, 0 + 6e86: a162 st.b r3, (r1, 0x2) + 6e88: 0419 br 0x6eba // 6eba + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6e8a: 2200 addi r2, 1 + 6e8c: 6409 cmplt r2, r0 + 6e8e: 0c3e bf 0x6f0a // 6f0a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6e90: 3ba0 bseti r3, 0 + 6e92: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6e94: 107f lrw r3, 0x20000524 // 6f10 + 6e96: 8361 ld.b r3, (r3, 0x1) + 6e98: 3b41 cmpnei r3, 1 + 6e9a: 080a bt 0x6eae // 6eae + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6e9c: 3102 movi r1, 2 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6e9e: 3000 movi r0, 0 + 6ea0: e0000730 bsr 0x7d00 // 7d00 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_ON); + 6ea4: 3101 movi r1, 1 +// RLY1_HOT_CLOSE; +// RLY2_COLD_CLOSE; + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6ea6: 3001 movi r0, 1 + 6ea8: e000072c bsr 0x7d00 // 7d00 + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 6eac: 042f br 0x6f0a // 6f0a + else if(g_eeprom.pipe_flag == 0x00) //冷热阀不分离 + 6eae: 3b40 cmpnei r3, 0 + 6eb0: 0803 bt 0x6eb6 // 6eb6 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6eb2: 3101 movi r1, 1 + 6eb4: 07f5 br 0x6e9e // 6e9e + }else if (g_eeprom.pipe_flag == 0x02) { //无阀 + 6eb6: 3b42 cmpnei r3, 2 + 6eb8: 0829 bt 0x6f0a // 6f0a + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6eba: 3102 movi r1, 2 + 6ebc: 040e br 0x6ed8 // 6ed8 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 6ebe: 5a82 addi r4, r2, 1 + 6ec0: 6411 cmplt r4, r0 + 6ec2: 0be0 bt 0x6e82 // 6e82 + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 6ec4: 2a00 subi r2, 1 + 6ec6: 6481 cmplt r0, r2 + 6ec8: 0c21 bf 0x6f0a // 6f0a + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 6eca: 3ba0 bseti r3, 0 + 6ecc: a162 st.b r3, (r1, 0x2) + if(g_eeprom.pipe_flag == 0x01) //冷热阀分离 + 6ece: 1071 lrw r3, 0x20000524 // 6f10 + 6ed0: 8361 ld.b r3, (r3, 0x1) + 6ed2: 3b41 cmpnei r3, 1 + 6ed4: 0bed bt 0x6eae // 6eae + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_ON); + 6ed6: 3101 movi r1, 1 + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6ed8: 3000 movi r0, 0 + 6eda: e0000713 bsr 0x7d00 // 7d00 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6ede: 3102 movi r1, 2 + 6ee0: 07e3 br 0x6ea6 // 6ea6 + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 6ee2: 3b80 bclri r3, 0 + 6ee4: a162 st.b r3, (r1, 0x2) + BLV_RLY_Ctrl_Purpose(HOT_RLY,Control_OFF); + 6ee6: 3000 movi r0, 0 + 6ee8: 3102 movi r1, 2 + 6eea: e000070b bsr 0x7d00 // 7d00 + BLV_RLY_Ctrl_Purpose(COOL_RLY,Control_OFF); + 6eee: 3102 movi r1, 2 + 6ef0: 3001 movi r0, 1 + 6ef2: e0000707 bsr 0x7d00 // 7d00 + if(g_eeprom.pipe_flag == 0x02) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 6ef6: 1067 lrw r3, 0x20000524 // 6f10 + 6ef8: 8361 ld.b r3, (r3, 0x1) + 6efa: 3b42 cmpnei r3, 2 + 6efc: 0807 bt 0x6f0a // 6f0a + Relay_Stop(); + 6efe: e00006f3 bsr 0x7ce4 // 7ce4 + Dbg_Println(DBG_BIT_SYS_STATUS," no pipe"); + 6f02: 1025 lrw r1, 0xab57 // 6f14 + 6f04: 3000 movi r0, 0 + 6f06: e3ffe901 bsr 0x4108 // 4108 +} + 6f0a: 1491 pop r4, r15 + 6f0c: 2000083c .long 0x2000083c + 6f10: 20000524 .long 0x20000524 + 6f14: 0000ab57 .long 0x0000ab57 + +Disassembly of section .text.TemCtrl_Pro: + +00006f18 : + * 函数功能:温控轮询任务 + * + * +*/ +void TemCtrl_Pro(void) +{ + 6f18: 14d3 push r4-r6, r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 6f1a: 1218 lrw r0, 0x200000c0 // 7078 + 6f1c: 1238 lrw r1, 0x20000230 // 707c + 6f1e: 9040 ld.w r2, (r0, 0x0) + 6f20: 9160 ld.w r3, (r1, 0x0) + 6f22: 608e subu r2, r3 + 6f24: 33fa movi r3, 250 + 6f26: 4362 lsli r3, r3, 2 + 6f28: 648c cmphs r3, r2 + 6f2a: 083b bt 0x6fa0 // 6fa0 + { + tick = SysTick_1ms; + 6f2c: 9060 ld.w r3, (r0, 0x0) + 6f2e: b160 st.w r3, (r1, 0x0) + TempCtrl.IndoorTem = TEMPTIMENOWMATH;//Get_Temp_Val() + g_eeprom.temp_diff*10 - EEPROM_TempDifference_Default*10; + 6f30: 360a movi r6, 10 + 6f32: 12b4 lrw r5, 0x20000524 // 7080 + 6f34: e3fff16e bsr 0x5210 // 5210 + 6f38: 8542 ld.b r2, (r5, 0x2) + 6f3a: 7c98 mult r2, r6 + 6f3c: 2a54 subi r2, 85 + 6f3e: 6080 addu r2, r0 + 6f40: 7589 zexth r6, r2 + 6f42: 1291 lrw r4, 0x2000083c // 7084 + 6f44: 7498 zextb r2, r6 + 6f46: 4e68 lsri r3, r6, 8 + 6f48: a448 st.b r2, (r4, 0x8) + 6f4a: a469 st.b r3, (r4, 0x9) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 6f4c: a44c st.b r2, (r4, 0xc) + 6f4e: a46d st.b r3, (r4, 0xd) + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6f50: 310a movi r1, 10 + 6f52: 6c1b mov r0, r6 + 6f54: e3ffe66e bsr 0x3c30 // 3c30 <__udivsi3> + 6f58: 74c0 zextb r3, r0 + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6f5a: 6c9b mov r2, r6 + 6f5c: 122b lrw r1, 0xab60 // 7088 + 6f5e: 3000 movi r0, 0 + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 6f60: a460 st.b r3, (r4, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 6f62: e3ffe8d3 bsr 0x4108 // 4108 + + Tem_Valve_Ctrl(); + 6f66: e3ffff73 bsr 0x6e4c // 6e4c + + if(TempCtrl.TemState_Now.fan == FAN_AUTO && TempCtrl.TemState_Now.on_off == TEMP_ON) //自动风继电器逻辑 + 6f6a: 8442 ld.b r2, (r4, 0x2) + 6f6c: 74c8 zextb r3, r2 + 6f6e: 3171 movi r1, 113 + 6f70: 6c0f mov r0, r3 + 6f72: 6805 andn r0, r1 + 6f74: 3186 movi r1, 134 + 6f76: 6442 cmpne r0, r1 + 6f78: 083d bt 0x6ff2 // 6ff2 + { + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 6f7a: 3270 movi r2, 112 + 6f7c: 68c8 and r3, r2 + 6f7e: 3b40 cmpnei r3, 0 + 6f80: 0827 bt 0x6fce // 6fce + { + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) //2025-02-26, + 6f82: 8461 ld.b r3, (r4, 0x1) + 6f84: 8440 ld.b r2, (r4, 0x0) + 6f86: 5b27 subi r1, r3, 2 + 6f88: 6449 cmplt r2, r1 + 6f8a: 0c0c bf 0x6fa2 // 6fa2 + { + Relay_Stop(); //低风速 + 6f8c: e00006ac bsr 0x7ce4 // 7ce4 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + } + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + { + Relay_Low(); //低风速 + HT1621.wind_velocity = 0; + 6f90: 117f lrw r3, 0x200005c0 // 708c + 6f92: 3200 movi r2, 0 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6f94: 8402 ld.b r0, (r4, 0x2) + 6f96: 401c lsli r0, r0, 28 + 6f98: 481d lsri r0, r0, 29 + HT1621.wind_velocity = 0; + 6f9a: a343 st.b r2, (r3, 0x3) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 6f9c: e3fffa9c bsr 0x64d4 // 64d4 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + { + Relay_Stop(); //风速停 + } + } + 6fa0: 1493 pop r4-r6, r15 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6fa2: 5b23 subi r1, r3, 1 + 6fa4: 644a cmpne r2, r1 + 6fa6: 0804 bt 0x6fae // 6fae + Relay_Low(); //低风速 + 6fa8: e0000690 bsr 0x7cc8 // 7cc8 + 6fac: 07f2 br 0x6f90 // 6f90 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6fae: 5b22 addi r1, r3, 1 + 6fb0: 644a cmpne r2, r1 + 6fb2: 0806 bt 0x6fbe // 6fbe + Relay_Mid(); //中风速 + 6fb4: e000067c bsr 0x7cac // 7cac + HT1621.wind_velocity = 1; + 6fb8: 1175 lrw r3, 0x200005c0 // 708c + 6fba: 3201 movi r2, 1 + 6fbc: 07ec br 0x6f94 // 6f94 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 6fbe: 2301 addi r3, 2 + 6fc0: 648d cmplt r3, r2 + 6fc2: 0fef bf 0x6fa0 // 6fa0 + Relay_High(); //高风速 + 6fc4: e0000666 bsr 0x7c90 // 7c90 + HT1621.wind_velocity = 2; + 6fc8: 1171 lrw r3, 0x200005c0 // 708c + 6fca: 3202 movi r2, 2 + 6fcc: 07e4 br 0x6f94 // 6f94 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 6fce: 3220 movi r2, 32 + 6fd0: 648e cmpne r3, r2 + 6fd2: 0be7 bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 6fd4: 8461 ld.b r3, (r4, 0x1) + 6fd6: 8440 ld.b r2, (r4, 0x0) + 6fd8: 5b27 subi r1, r3, 2 + 6fda: 6449 cmplt r2, r1 + 6fdc: 0bf4 bt 0x6fc4 // 6fc4 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 6fde: 5b23 subi r1, r3, 1 + 6fe0: 644a cmpne r2, r1 + 6fe2: 0fe9 bf 0x6fb4 // 6fb4 + else if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 6fe4: 5b22 addi r1, r3, 1 + 6fe6: 644a cmpne r2, r1 + 6fe8: 0fe0 bf 0x6fa8 // 6fa8 + else if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3)//2025-02-26, + 6fea: 2301 addi r3, 2 + 6fec: 648d cmplt r3, r2 + 6fee: 0fd9 bf 0x6fa0 // 6fa0 + 6ff0: 07ce br 0x6f8c // 6f8c + }else if (g_eeprom.pipe_flag == 0x02 && TempCtrl.TemState_Now.on_off == TEMP_ON) { + 6ff2: 8521 ld.b r1, (r5, 0x1) + 6ff4: 3942 cmpnei r1, 2 + 6ff6: 744e sextb r1, r3 + 6ff8: 083a bt 0x706c // 706c + 6ffa: 39df btsti r1, 31 + 6ffc: 0c38 bf 0x706c // 706c + if (TempCtrl.TemState_Now.fan != FAN_AUTO) { //无阀 制冷/制热 非自动风模式 风机控制逻辑 + 6ffe: 310e movi r1, 14 + 7000: 684c and r1, r3 + 7002: 3946 cmpnei r1, 6 + 7004: 0fce bf 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.mode == MODEL_COLD) + 7006: 3170 movi r1, 112 + 7008: 68c4 and r3, r1 + 700a: 3b40 cmpnei r3, 0 + 700c: 0819 bt 0x703e // 703e + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 700e: 8461 ld.b r3, (r4, 0x1) + 7010: 8420 ld.b r1, (r4, 0x0) + 7012: 5b07 subi r0, r3, 2 + 7014: 6405 cmplt r1, r0 + 7016: 0bbb bt 0x6f8c // 6f8c + switch(TempCtrl.TemState_Now.fan) + 7018: 425c lsli r2, r2, 28 + 701a: 4a5d lsri r2, r2, 29 + 701c: 3a41 cmpnei r2, 1 + 701e: 0c0c bf 0x7036 // 7036 + 7020: 3a40 cmpnei r2, 0 + 7022: 0c06 bf 0x702e // 702e + 7024: 3a42 cmpnei r2, 2 + 7026: 0bbd bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 7028: 2301 addi r3, 2 + 702a: 644d cmplt r3, r1 + 702c: 07cb br 0x6fc2 // 6fc2 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 702e: 2b00 subi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 7030: 64c6 cmpne r1, r3 + 7032: 0bb7 bt 0x6fa0 // 6fa0 + 7034: 07ba br 0x6fa8 // 6fa8 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 7036: 2300 addi r3, 1 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 7038: 64c6 cmpne r1, r3 + 703a: 0bb3 bt 0x6fa0 // 6fa0 + 703c: 07bc br 0x6fb4 // 6fb4 + else if(TempCtrl.TemState_Now.mode == MODEL_HOT) + 703e: 3120 movi r1, 32 + 7040: 644e cmpne r3, r1 + 7042: 0baf bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t >= TempCtrl.TemState_Now.set_t + 3) + 7044: 8461 ld.b r3, (r4, 0x1) + 7046: 8420 ld.b r1, (r4, 0x0) + 7048: 5b06 addi r0, r3, 2 + 704a: 6441 cmplt r0, r1 + 704c: 0ba0 bt 0x6f8c // 6f8c + switch(TempCtrl.TemState_Now.fan) + 704e: 425c lsli r2, r2, 28 + 7050: 4a5d lsri r2, r2, 29 + 7052: 3a41 cmpnei r2, 1 + 7054: 0c0a bf 0x7068 // 7068 + 7056: 3a40 cmpnei r2, 0 + 7058: 0c06 bf 0x7064 // 7064 + 705a: 3a42 cmpnei r2, 2 + 705c: 0ba2 bt 0x6fa0 // 6fa0 + if(TempCtrl.TemState_Now.indoor_t <= TempCtrl.TemState_Now.set_t - 3) + 705e: 2b01 subi r3, 2 + 7060: 64c5 cmplt r1, r3 + 7062: 07b0 br 0x6fc2 // 6fc2 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t + 1) + 7064: 2300 addi r3, 1 + 7066: 07e5 br 0x7030 // 7030 + if(TempCtrl.TemState_Now.indoor_t == TempCtrl.TemState_Now.set_t - 1) + 7068: 2b00 subi r3, 1 + 706a: 07e7 br 0x7038 // 7038 + else if(TempCtrl.TemState_Now.on_off == TEMP_OFF) + 706c: 39df btsti r1, 31 + 706e: 0b99 bt 0x6fa0 // 6fa0 + Relay_Stop(); //风速停 + 7070: e000063a bsr 0x7ce4 // 7ce4 + 7074: 0796 br 0x6fa0 // 6fa0 + 7076: 0000 bkpt + 7078: 200000c0 .long 0x200000c0 + 707c: 20000230 .long 0x20000230 + 7080: 20000524 .long 0x20000524 + 7084: 2000083c .long 0x2000083c + 7088: 0000ab60 .long 0x0000ab60 + 708c: 200005c0 .long 0x200005c0 + +Disassembly of section .text.KEY1_Model_Press_Fun: + +00007090 : +#include "includes.h" + +extern volatile U32_T SysTick_1ms; + +void KEY1_Model_Press_Fun(void) +{ + 7090: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 7092: 112e lrw r1, 0xab88 // 7148 + 7094: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7096: 118e lrw r4, 0x20000868 // 714c + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY1_Model_Press_Fun"); + 7098: e3ffe838 bsr 0x4108 // 4108 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 709c: 8460 ld.b r3, (r4, 0x0) + 709e: 3b41 cmpnei r3, 1 + 70a0: 11ac lrw r5, 0x200000c0 // 7150 + 70a2: 0836 bt 0x710e // 710e + { + Debug_Inf.Tick = SysTick_1ms; + 70a4: 9560 ld.w r3, (r5, 0x0) + 70a6: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page < PAGE8ID) + 70a8: 8462 ld.b r3, (r4, 0x2) + 70aa: 3b07 cmphsi r3, 8 + 70ac: 0803 bt 0x70b2 // 70b2 + { + Debug_Inf.Page++; + 70ae: 2300 addi r3, 1 + 70b0: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 70b2: e3fff7b1 bsr 0x6014 // 6014 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 70b6: 8462 ld.b r3, (r4, 0x2) + 70b8: 3b42 cmpnei r3, 2 + 70ba: 0805 bt 0x70c4 // 70c4 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 70bc: 8405 ld.b r0, (r4, 0x5) + 70be: e3fffbbd bsr 0x6838 // 6838 + } + } + } + TempCtrl.BackLightTick = SysTick_1ms; + } +} + 70c2: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 70c4: 3b41 cmpnei r3, 1 + 70c6: 0806 bt 0x70d2 // 70d2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 70c8: 8424 ld.b r1, (r4, 0x4) + 70ca: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 70cc: e3fffb68 bsr 0x679c // 679c + 70d0: 07f9 br 0x70c2 // 70c2 + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 70d2: 3b43 cmpnei r3, 3 + 70d4: 0804 bt 0x70dc // 70dc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 70d6: 8426 ld.b r1, (r4, 0x6) + 70d8: 3003 movi r0, 3 + 70da: 07f9 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 70dc: 3b44 cmpnei r3, 4 + 70de: 0804 bt 0x70e6 // 70e6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 70e0: 8427 ld.b r1, (r4, 0x7) + 70e2: 3004 movi r0, 4 + 70e4: 07f4 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 70e6: 3b45 cmpnei r3, 5 + 70e8: 0804 bt 0x70f0 // 70f0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 70ea: 8423 ld.b r1, (r4, 0x3) + 70ec: 3005 movi r0, 5 + 70ee: 07ef br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 70f0: 3b46 cmpnei r3, 6 + 70f2: 0804 bt 0x70fa // 70fa + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 70f4: 8428 ld.b r1, (r4, 0x8) + 70f6: 3006 movi r0, 6 + 70f8: 07ea br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 70fa: 3b47 cmpnei r3, 7 + 70fc: 0804 bt 0x7104 // 7104 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 70fe: 8429 ld.b r1, (r4, 0x9) + 7100: 3007 movi r0, 7 + 7102: 07e5 br 0x70cc // 70cc + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 7104: 3b48 cmpnei r3, 8 + 7106: 0bde bt 0x70c2 // 70c2 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7108: 3105 movi r1, 5 + 710a: 3008 movi r0, 8 + 710c: 07e0 br 0x70cc // 70cc + if(TempCtrl.CardState == CARDIN) //插卡状态 + 710e: 1092 lrw r4, 0x2000083c // 7154 + 7110: 8478 ld.b r3, (r4, 0x18) + 7112: 3b41 cmpnei r3, 1 + 7114: 0811 bt 0x7136 // 7136 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7116: 8462 ld.b r3, (r4, 0x2) + 7118: 74ce sextb r3, r3 + 711a: 3bdf btsti r3, 31 + 711c: 0c0d bf 0x7136 // 7136 + TemCtrl_Model_Set(); //模式切换 + 711e: e3fffe01 bsr 0x6d20 // 6d20 + if(g_eeprom.backlight_en == 0x01) + 7122: 106e lrw r3, 0x20000524 // 7158 + 7124: 8364 ld.b r3, (r3, 0x4) + 7126: 3b41 cmpnei r3, 1 + 7128: 0807 bt 0x7136 // 7136 + Controlled_LCD_Backlight(0x01); + 712a: 3001 movi r0, 1 + 712c: e3fffab2 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 7130: 3001 movi r0, 1 + 7132: e3fffb1d bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7136: 9560 ld.w r3, (r5, 0x0) + 7138: 4b48 lsri r2, r3, 8 + 713a: a470 st.b r3, (r4, 0x10) + 713c: a451 st.b r2, (r4, 0x11) + 713e: 4b50 lsri r2, r3, 16 + 7140: 4b78 lsri r3, r3, 24 + 7142: a452 st.b r2, (r4, 0x12) + 7144: a473 st.b r3, (r4, 0x13) +} + 7146: 07be br 0x70c2 // 70c2 + 7148: 0000ab88 .long 0x0000ab88 + 714c: 20000868 .long 0x20000868 + 7150: 200000c0 .long 0x200000c0 + 7154: 2000083c .long 0x2000083c + 7158: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY2_Fan_Press_Fun: + +0000715c : + + + + +void KEY2_Fan_Press_Fun(void) +{ + 715c: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 715e: 112e lrw r1, 0xab9d // 7214 + 7160: 3000 movi r0, 0 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7162: 118e lrw r4, 0x20000868 // 7218 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY2_Fan_Press_Fun"); + 7164: e3ffe7d2 bsr 0x4108 // 4108 + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7168: 8460 ld.b r3, (r4, 0x0) + 716a: 3b41 cmpnei r3, 1 + 716c: 11ac lrw r5, 0x200000c0 // 721c + 716e: 0836 bt 0x71da // 71da + { + Debug_Inf.Tick = SysTick_1ms; + 7170: 9560 ld.w r3, (r5, 0x0) + 7172: b463 st.w r3, (r4, 0xc) + if(Debug_Inf.Page > PAGE1ID) + 7174: 8462 ld.b r3, (r4, 0x2) + 7176: 3b01 cmphsi r3, 2 + 7178: 0c03 bf 0x717e // 717e + { + Debug_Inf.Page--; + 717a: 2b00 subi r3, 1 + 717c: a462 st.b r3, (r4, 0x2) + } + HT1621_Clear(); + 717e: e3fff74b bsr 0x6014 // 6014 + if(Debug_Inf.Page == PAGE2ID) //设置模式下:页面2 温差 + 7182: 8462 ld.b r3, (r4, 0x2) + 7184: 3b42 cmpnei r3, 2 + 7186: 0805 bt 0x7190 // 7190 + { + Set_Temp_Difference(Debug_Inf.TempDiff); + 7188: 8405 ld.b r0, (r4, 0x5) + 718a: e3fffb57 bsr 0x6838 // 6838 + TempCtrl.BackLightTick = SysTick_1ms; + + } + + +} + 718e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == PAGE1ID) //设置模式下:页面1 温控管制 + 7190: 3b41 cmpnei r3, 1 + 7192: 0806 bt 0x719e // 719e + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 7194: 8424 ld.b r1, (r4, 0x4) + 7196: 3001 movi r0, 1 + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7198: e3fffb02 bsr 0x679c // 679c + 719c: 07f9 br 0x718e // 718e + else if(Debug_Inf.Page == PAGE3ID) //设置模式下:页面3 背光延时关 + 719e: 3b43 cmpnei r3, 3 + 71a0: 0804 bt 0x71a8 // 71a8 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 71a2: 8426 ld.b r1, (r4, 0x6) + 71a4: 3003 movi r0, 3 + 71a6: 07f9 br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE4ID) //设置模式下:页面4 按键灵敏度 + 71a8: 3b44 cmpnei r3, 4 + 71aa: 0804 bt 0x71b2 // 71b2 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 71ac: 8427 ld.b r1, (r4, 0x7) + 71ae: 3004 movi r0, 4 + 71b0: 07f4 br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE5ID) //设置模式下:页面5 设置地址 + 71b2: 3b45 cmpnei r3, 5 + 71b4: 0804 bt 0x71bc // 71bc + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 71b6: 8423 ld.b r1, (r4, 0x3) + 71b8: 3005 movi r0, 5 + 71ba: 07ef br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE6ID) //设置模式下:页面6 设置温度显示单位 + 71bc: 3b46 cmpnei r3, 6 + 71be: 0804 bt 0x71c6 // 71c6 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 71c0: 8428 ld.b r1, (r4, 0x8) + 71c2: 3006 movi r0, 6 + 71c4: 07ea br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE7ID) //设置模式下:页面7 设置LCD屏幕文本显示 + 71c6: 3b47 cmpnei r3, 7 + 71c8: 0804 bt 0x71d0 // 71d0 + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 71ca: 8429 ld.b r1, (r4, 0x9) + 71cc: 3007 movi r0, 7 + 71ce: 07e5 br 0x7198 // 7198 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 查询软件版本号功能 + 71d0: 3b48 cmpnei r3, 8 + 71d2: 0bde bt 0x718e // 718e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 71d4: 3105 movi r1, 5 + 71d6: 3008 movi r0, 8 + 71d8: 07e0 br 0x7198 // 7198 + if(TempCtrl.CardState == CARDIN) + 71da: 1092 lrw r4, 0x2000083c // 7220 + 71dc: 8478 ld.b r3, (r4, 0x18) + 71de: 3b41 cmpnei r3, 1 + 71e0: 0811 bt 0x7202 // 7202 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 71e2: 8462 ld.b r3, (r4, 0x2) + 71e4: 74ce sextb r3, r3 + 71e6: 3bdf btsti r3, 31 + 71e8: 0c0d bf 0x7202 // 7202 + TemCtrl_Fan_Set(); //风速切换 + 71ea: e3fffdc1 bsr 0x6d6c // 6d6c + if(g_eeprom.backlight_en == 0x01) + 71ee: 106e lrw r3, 0x20000524 // 7224 + 71f0: 8364 ld.b r3, (r3, 0x4) + 71f2: 3b41 cmpnei r3, 1 + 71f4: 0807 bt 0x7202 // 7202 + Controlled_LCD_Backlight(0x01); + 71f6: 3001 movi r0, 1 + 71f8: e3fffa4c bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 71fc: 3001 movi r0, 1 + 71fe: e3fffab7 bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7202: 9560 ld.w r3, (r5, 0x0) + 7204: 4b48 lsri r2, r3, 8 + 7206: a470 st.b r3, (r4, 0x10) + 7208: a451 st.b r2, (r4, 0x11) + 720a: 4b50 lsri r2, r3, 16 + 720c: 4b78 lsri r3, r3, 24 + 720e: a452 st.b r2, (r4, 0x12) + 7210: a473 st.b r3, (r4, 0x13) +} + 7212: 07be br 0x718e // 718e + 7214: 0000ab9d .long 0x0000ab9d + 7218: 20000868 .long 0x20000868 + 721c: 200000c0 .long 0x200000c0 + 7220: 2000083c .long 0x2000083c + 7224: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_TempAdd_Press_Fun: + +00007228 : + + +void KEY3_TempAdd_Press_Fun(void) +{ + 7228: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY3_TempAdd_Press_Fun"); + 722a: 113b lrw r1, 0xabb0 // 7314 + 722c: 3000 movi r0, 0 + 722e: e3ffe76d bsr 0x4108 // 4108 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 7232: 117a lrw r3, 0x20000868 // 7318 + 7234: 8340 ld.b r2, (r3, 0x0) + 7236: 3a41 cmpnei r2, 1 + 7238: 11b9 lrw r5, 0x200000c0 // 731c + 723a: 0850 bt 0x72da // 72da + { + Debug_Inf.Tick = SysTick_1ms; + 723c: 9540 ld.w r2, (r5, 0x0) + 723e: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag < 2)) //设置模式下:页面1 温控管制 + 7240: 8342 ld.b r2, (r3, 0x2) + 7242: 3a41 cmpnei r2, 1 + 7244: 080b bt 0x725a // 725a + 7246: 8324 ld.b r1, (r3, 0x4) + 7248: 3901 cmphsi r1, 2 + 724a: 0812 bt 0x726e // 726e + { + Debug_Inf.PipeFlag ++; + 724c: 2100 addi r1, 1 + 724e: 7444 zextb r1, r1 + 7250: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 7252: 3001 movi r0, 1 + Debug_Inf.Language_Selection++; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7254: e3fffaa4 bsr 0x679c // 679c + 7258: 040b br 0x726e // 726e + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff < 18)) //设置模式下:页面2 温差 + 725a: 3a42 cmpnei r2, 2 + 725c: 080a bt 0x7270 // 7270 + 725e: 8305 ld.b r0, (r3, 0x5) + 7260: 3811 cmphsi r0, 18 + 7262: 0806 bt 0x726e // 726e + Debug_Inf.TempDiff++; + 7264: 2000 addi r0, 1 + 7266: 7400 zextb r0, r0 + 7268: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 726a: e3fffae7 bsr 0x6838 // 6838 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 726e: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 7270: 3a43 cmpnei r2, 3 + 7272: 0806 bt 0x727e // 727e + Debug_Inf.BackLight_En = 0x01; + 7274: 3201 movi r2, 1 + 7276: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 7278: 3101 movi r1, 1 + 727a: 3003 movi r0, 3 + 727c: 07ec br 0x7254 // 7254 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level <= 1) //设置模式下:页面4 按键灵敏度 + 727e: 3a44 cmpnei r2, 4 + 7280: 0809 bt 0x7292 // 7292 + 7282: 8327 ld.b r1, (r3, 0x7) + 7284: 3901 cmphsi r1, 2 + 7286: 0bf4 bt 0x726e // 726e + Debug_Inf.KSens_Level++; + 7288: 2100 addi r1, 1 + 728a: 7444 zextb r1, r1 + 728c: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 728e: 3004 movi r0, 4 + 7290: 07e2 br 0x7254 // 7254 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr < 0xff) //设置模式下:页面5 设置地址 + 7292: 3a45 cmpnei r2, 5 + 7294: 080a bt 0x72a8 // 72a8 + 7296: 8323 ld.b r1, (r3, 0x3) + 7298: 32ff movi r2, 255 + 729a: 6486 cmpne r1, r2 + 729c: 0fe9 bf 0x726e // 726e + Debug_Inf.DevAddr++; //刷新地址 + 729e: 2100 addi r1, 1 + 72a0: 7444 zextb r1, r1 + 72a2: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 72a4: 3005 movi r0, 5 + 72a6: 07d7 br 0x7254 // 7254 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay <1) //设置模式下:页面6 温度单位选择 + 72a8: 3a46 cmpnei r2, 6 + 72aa: 0809 bt 0x72bc // 72bc + 72ac: 8348 ld.b r2, (r3, 0x8) + 72ae: 3a40 cmpnei r2, 0 + 72b0: 0bdf bt 0x726e // 726e + Debug_Inf.TempDisplay++; + 72b2: 3201 movi r2, 1 + 72b4: a348 st.b r2, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 72b6: 3101 movi r1, 1 + 72b8: 3006 movi r0, 6 + 72ba: 07cd br 0x7254 // 7254 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection < 2) //设置模式下:页面7 界面语言选择 + 72bc: 3a47 cmpnei r2, 7 + 72be: 0809 bt 0x72d0 // 72d0 + 72c0: 8329 ld.b r1, (r3, 0x9) + 72c2: 3901 cmphsi r1, 2 + 72c4: 0bd5 bt 0x726e // 726e + Debug_Inf.Language_Selection++; + 72c6: 2100 addi r1, 1 + 72c8: 7444 zextb r1, r1 + 72ca: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 72cc: 3007 movi r0, 7 + 72ce: 07c3 br 0x7254 // 7254 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 72d0: 3a48 cmpnei r2, 8 + 72d2: 0bce bt 0x726e // 726e + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 72d4: 3105 movi r1, 5 + 72d6: 3008 movi r0, 8 + 72d8: 07be br 0x7254 // 7254 + if(TempCtrl.CardState == CARDIN) + 72da: 1092 lrw r4, 0x2000083c // 7320 + 72dc: 8478 ld.b r3, (r4, 0x18) + 72de: 3b41 cmpnei r3, 1 + 72e0: 0811 bt 0x7302 // 7302 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 72e2: 8462 ld.b r3, (r4, 0x2) + 72e4: 74ce sextb r3, r3 + 72e6: 3bdf btsti r3, 31 + 72e8: 0c0d bf 0x7302 // 7302 + TemCtrl_Temperature_Add(); //设置温度+ + 72ea: e3fffd7f bsr 0x6de8 // 6de8 + if(g_eeprom.backlight_en == 0x01) + 72ee: 106e lrw r3, 0x20000524 // 7324 + 72f0: 8364 ld.b r3, (r3, 0x4) + 72f2: 3b41 cmpnei r3, 1 + 72f4: 0807 bt 0x7302 // 7302 + Controlled_LCD_Backlight(0x01); + 72f6: 3001 movi r0, 1 + 72f8: e3fff9cc bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 72fc: 3001 movi r0, 1 + 72fe: e3fffa37 bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7302: 9560 ld.w r3, (r5, 0x0) + 7304: 4b48 lsri r2, r3, 8 + 7306: a470 st.b r3, (r4, 0x10) + 7308: a451 st.b r2, (r4, 0x11) + 730a: 4b50 lsri r2, r3, 16 + 730c: 4b78 lsri r3, r3, 24 + 730e: a452 st.b r2, (r4, 0x12) + 7310: a473 st.b r3, (r4, 0x13) +} + 7312: 07ae br 0x726e // 726e + 7314: 0000abb0 .long 0x0000abb0 + 7318: 20000868 .long 0x20000868 + 731c: 200000c0 .long 0x200000c0 + 7320: 2000083c .long 0x2000083c + 7324: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY3_Long_Press_Fun: + +00007328 : + +///按键3和按键4 同时长按进入设置功能 +void KEY3_Long_Press_Fun(void) +{ + 7328: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 732a: 1097 lrw r4, 0x20000868 // 7384 + 732c: 8460 ld.b r3, (r4, 0x0) + 732e: 3b40 cmpnei r3, 0 + 7330: 0829 bt 0x7382 // 7382 + { + Debug_Inf.Press_Flag |= (0x01<<0); + 7332: 8461 ld.b r3, (r4, 0x1) + 7334: 3ba0 bseti r3, 0 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 7336: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<0); + 7338: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 733a: 0824 bt 0x7382 // 7382 + 733c: 1073 lrw r3, 0x2000083c // 7388 + 733e: 8362 ld.b r3, (r3, 0x2) + 7340: 74ce sextb r3, r3 + 7342: 3bdf btsti r3, 31 + 7344: 081f bt 0x7382 // 7382 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 7346: 1032 lrw r1, 0xabc7 // 738c + 7348: 3000 movi r0, 0 + 734a: e3ffe6df bsr 0x4108 // 4108 + Debug_Inf.Tick = SysTick_1ms; + 734e: 1071 lrw r3, 0x200000c0 // 7390 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 7350: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 7352: 9360 ld.w r3, (r3, 0x0) + 7354: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 7356: 3300 movi r3, 0 + 7358: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 735a: 3301 movi r3, 1 + 735c: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 735e: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x01; + 7360: 106d lrw r3, 0x200005e0 // 7394 + 7362: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 7364: e3fff658 bsr 0x6014 // 6014 + Controlled_LCD_Backlight(0x01); + 7368: 3001 movi r0, 1 + 736a: e3fff993 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 736e: 3001 movi r0, 1 + 7370: e3fff9fe bsr 0x676c // 676c + Controlled_Buzzer(0x01); + 7374: 3001 movi r0, 1 + 7376: e3fff969 bsr 0x6648 // 6648 + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 737a: 8424 ld.b r1, (r4, 0x4) + 737c: 3001 movi r0, 1 + 737e: e3fffa0f bsr 0x679c // 679c + + } + } + +} + 7382: 1491 pop r4, r15 + 7384: 20000868 .long 0x20000868 + 7388: 2000083c .long 0x2000083c + 738c: 0000abc7 .long 0x0000abc7 + 7390: 200000c0 .long 0x200000c0 + 7394: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY4_TempDec_Press_Fun: + +00007398 : + + +void KEY4_TempDec_Press_Fun(void) +{ + 7398: 14d2 push r4-r5, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY4_TempDec_Press_Fun"); + 739a: 113b lrw r1, 0xabd0 // 7484 + 739c: 3000 movi r0, 0 + 739e: e3ffe6b5 bsr 0x4108 // 4108 + + if(Debug_Inf.State == 0x01) //设置模式下功能 + 73a2: 117a lrw r3, 0x20000868 // 7488 + 73a4: 8340 ld.b r2, (r3, 0x0) + 73a6: 3a41 cmpnei r2, 1 + 73a8: 11b9 lrw r5, 0x200000c0 // 748c + 73aa: 084f bt 0x7448 // 7448 + { + Debug_Inf.Tick = SysTick_1ms; + 73ac: 9540 ld.w r2, (r5, 0x0) + 73ae: b343 st.w r2, (r3, 0xc) + if((Debug_Inf.Page == 0x01) && (Debug_Inf.PipeFlag >0)) //设置模式下:页面1 温控管制 + 73b0: 8342 ld.b r2, (r3, 0x2) + 73b2: 3a41 cmpnei r2, 1 + 73b4: 080b bt 0x73ca // 73ca + 73b6: 8324 ld.b r1, (r3, 0x4) + 73b8: 3940 cmpnei r1, 0 + 73ba: 0c12 bf 0x73de // 73de + { + Debug_Inf.PipeFlag --; + 73bc: 2900 subi r1, 1 + 73be: 7444 zextb r1, r1 + 73c0: a324 st.b r1, (r3, 0x4) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.PipeFlag); + 73c2: 3001 movi r0, 1 + Debug_Inf.Language_Selection--; + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + } + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + { + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 73c4: e3fff9ec bsr 0x679c // 679c + 73c8: 040b br 0x73de // 73de + else if((Debug_Inf.Page == 0x02) && (Debug_Inf.TempDiff > 0)) //设置模式下:页面2 温差 + 73ca: 3a42 cmpnei r2, 2 + 73cc: 080a bt 0x73e0 // 73e0 + 73ce: 8305 ld.b r0, (r3, 0x5) + 73d0: 3840 cmpnei r0, 0 + 73d2: 0c06 bf 0x73de // 73de + Debug_Inf.TempDiff--; + 73d4: 2800 subi r0, 1 + 73d6: 7400 zextb r0, r0 + 73d8: a305 st.b r0, (r3, 0x5) + Set_Temp_Difference(Debug_Inf.TempDiff); + 73da: e3fffa2f bsr 0x6838 // 6838 + } + TempCtrl.BackLightTick = SysTick_1ms; + + } + +} + 73de: 1492 pop r4-r5, r15 + else if(Debug_Inf.Page == 0x03) //设置模式下:页面3 背光延时关 + 73e0: 3a43 cmpnei r2, 3 + 73e2: 0806 bt 0x73ee // 73ee + Debug_Inf.BackLight_En = 0x00; + 73e4: 3200 movi r2, 0 + 73e6: a346 st.b r2, (r3, 0x6) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.BackLight_En); + 73e8: 3100 movi r1, 0 + 73ea: 3003 movi r0, 3 + 73ec: 07ec br 0x73c4 // 73c4 + else if(Debug_Inf.Page == 0x04 && Debug_Inf.KSens_Level > 0) //设置模式下:页面4 按键灵敏度 + 73ee: 3a44 cmpnei r2, 4 + 73f0: 0809 bt 0x7402 // 7402 + 73f2: 8327 ld.b r1, (r3, 0x7) + 73f4: 3940 cmpnei r1, 0 + 73f6: 0ff4 bf 0x73de // 73de + Debug_Inf.KSens_Level--; + 73f8: 2900 subi r1, 1 + 73fa: 7444 zextb r1, r1 + 73fc: a327 st.b r1, (r3, 0x7) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.KSens_Level); + 73fe: 3004 movi r0, 4 + 7400: 07e2 br 0x73c4 // 73c4 + else if(Debug_Inf.Page == 0x05 && Debug_Inf.DevAddr > 0) //设置模式下:页面5 设置地址 + 7402: 3a45 cmpnei r2, 5 + 7404: 0809 bt 0x7416 // 7416 + 7406: 8323 ld.b r1, (r3, 0x3) + 7408: 3940 cmpnei r1, 0 + 740a: 0fea bf 0x73de // 73de + Debug_Inf.DevAddr--; //刷新地址 + 740c: 2900 subi r1, 1 + 740e: 7444 zextb r1, r1 + 7410: a323 st.b r1, (r3, 0x3) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.DevAddr); + 7412: 3005 movi r0, 5 + 7414: 07d8 br 0x73c4 // 73c4 + else if(Debug_Inf.Page == PAGE6ID && Debug_Inf.TempDisplay > 0) //设置模式下:页面6 温度单位选择 + 7416: 3a46 cmpnei r2, 6 + 7418: 0809 bt 0x742a // 742a + 741a: 8328 ld.b r1, (r3, 0x8) + 741c: 3940 cmpnei r1, 0 + 741e: 0fe0 bf 0x73de // 73de + Debug_Inf.TempDisplay--; + 7420: 2900 subi r1, 1 + 7422: 7444 zextb r1, r1 + 7424: a328 st.b r1, (r3, 0x8) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.TempDisplay); + 7426: 3006 movi r0, 6 + 7428: 07ce br 0x73c4 // 73c4 + else if(Debug_Inf.Page == PAGE7ID && Debug_Inf.Language_Selection > 0) //设置模式下:页面7 界面语言选择 + 742a: 3a47 cmpnei r2, 7 + 742c: 0809 bt 0x743e // 743e + 742e: 8329 ld.b r1, (r3, 0x9) + 7430: 3940 cmpnei r1, 0 + 7432: 0fd6 bf 0x73de // 73de + Debug_Inf.Language_Selection--; + 7434: 2900 subi r1, 1 + 7436: 7444 zextb r1, r1 + 7438: a329 st.b r1, (r3, 0x9) + Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Language_Selection); + 743a: 3007 movi r0, 7 + 743c: 07c4 br 0x73c4 // 73c4 + else if(Debug_Inf.Page == PAGE8ID) //设置模式下:页面8 软件版本号 + 743e: 3a48 cmpnei r2, 8 + 7440: 0bcf bt 0x73de // 73de + Set_Device_ADDR(Debug_Inf.Page,Project_FW_Version); + 7442: 3105 movi r1, 5 + 7444: 3008 movi r0, 8 + 7446: 07bf br 0x73c4 // 73c4 + if(TempCtrl.CardState == CARDIN) + 7448: 1092 lrw r4, 0x2000083c // 7490 + 744a: 8478 ld.b r3, (r4, 0x18) + 744c: 3b41 cmpnei r3, 1 + 744e: 0811 bt 0x7470 // 7470 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 7450: 8462 ld.b r3, (r4, 0x2) + 7452: 74ce sextb r3, r3 + 7454: 3bdf btsti r3, 31 + 7456: 0c0d bf 0x7470 // 7470 + TemCtrl_Temperature_Dec(); //设置温度- + 7458: e3fffcb0 bsr 0x6db8 // 6db8 + if(g_eeprom.backlight_en == 0x01) + 745c: 106e lrw r3, 0x20000524 // 7494 + 745e: 8364 ld.b r3, (r3, 0x4) + 7460: 3b41 cmpnei r3, 1 + 7462: 0807 bt 0x7470 // 7470 + Controlled_LCD_Backlight(0x01); + 7464: 3001 movi r0, 1 + 7466: e3fff915 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 746a: 3001 movi r0, 1 + 746c: e3fff980 bsr 0x676c // 676c + TempCtrl.BackLightTick = SysTick_1ms; + 7470: 9560 ld.w r3, (r5, 0x0) + 7472: 4b48 lsri r2, r3, 8 + 7474: a470 st.b r3, (r4, 0x10) + 7476: a451 st.b r2, (r4, 0x11) + 7478: 4b50 lsri r2, r3, 16 + 747a: 4b78 lsri r3, r3, 24 + 747c: a452 st.b r2, (r4, 0x12) + 747e: a473 st.b r3, (r4, 0x13) +} + 7480: 07af br 0x73de // 73de + 7482: 0000 bkpt + 7484: 0000abd0 .long 0x0000abd0 + 7488: 20000868 .long 0x20000868 + 748c: 200000c0 .long 0x200000c0 + 7490: 2000083c .long 0x2000083c + 7494: 20000524 .long 0x20000524 + +Disassembly of section .text.KEY4_Long_Press: + +00007498 : + +void KEY4_Long_Press(void) +{ + 7498: 14d1 push r4, r15 + if(Debug_Inf.State == 0x00) + 749a: 1097 lrw r4, 0x20000868 // 74f4 + 749c: 8460 ld.b r3, (r4, 0x0) + 749e: 3b40 cmpnei r3, 0 + 74a0: 0829 bt 0x74f2 // 74f2 + { + Debug_Inf.Press_Flag |= (0x01<<1); + 74a2: 8461 ld.b r3, (r4, 0x1) + 74a4: 3ba1 bseti r3, 1 + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 74a6: 3b43 cmpnei r3, 3 + Debug_Inf.Press_Flag |= (0x01<<1); + 74a8: a461 st.b r3, (r4, 0x1) + if(Debug_Inf.Press_Flag == 0x03 && TempCtrl.TemState_Now.on_off == TEMP_OFF) + 74aa: 0824 bt 0x74f2 // 74f2 + 74ac: 1073 lrw r3, 0x2000083c // 74f8 + 74ae: 8362 ld.b r3, (r3, 0x2) + 74b0: 74ce sextb r3, r3 + 74b2: 3bdf btsti r3, 31 + 74b4: 081f bt 0x74f2 // 74f2 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_In"); + 74b6: 1032 lrw r1, 0xabc7 // 74fc + 74b8: 3000 movi r0, 0 + 74ba: e3ffe627 bsr 0x4108 // 4108 + Debug_Inf.Tick = SysTick_1ms; + 74be: 1071 lrw r3, 0x200000c0 // 7500 + Debug_Inf.Press_Flag = 0x00; + //进入Debug模式 + Debug_Inf.State = 0x01; + Debug_Inf.Page = 0x01; + //Debug_Inf.Renetwork = 0; + HT1621.buz_ctrl_flag = 0x01; + 74c0: 3201 movi r2, 1 + Debug_Inf.Tick = SysTick_1ms; + 74c2: 9360 ld.w r3, (r3, 0x0) + 74c4: b463 st.w r3, (r4, 0xc) + Debug_Inf.Press_Flag = 0x00; + 74c6: 3300 movi r3, 0 + 74c8: a461 st.b r3, (r4, 0x1) + Debug_Inf.State = 0x01; + 74ca: 3301 movi r3, 1 + 74cc: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 74ce: a462 st.b r3, (r4, 0x2) + //Set_Device_ADDR(Debug_Inf.Page,Debug_Inf.Renetwork); + Controlled_LCD_Backlight(0x01); + 74d0: 3001 movi r0, 1 + HT1621.buz_ctrl_flag = 0x01; + 74d2: 106d lrw r3, 0x200005e0 // 7504 + 74d4: a345 st.b r2, (r3, 0x5) + Controlled_LCD_Backlight(0x01); + 74d6: e3fff8dd bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 74da: 3001 movi r0, 1 + 74dc: e3fff948 bsr 0x676c // 676c + HT1621_Clear(); + 74e0: e3fff59a bsr 0x6014 // 6014 + Controlled_Buzzer(0x01); + 74e4: 3001 movi r0, 1 + 74e6: e3fff8b1 bsr 0x6648 // 6648 + + //刷新页面 + Set_Device_ADDR(0x01,Debug_Inf.PipeFlag); + 74ea: 8424 ld.b r1, (r4, 0x4) + 74ec: 3001 movi r0, 1 + 74ee: e3fff957 bsr 0x679c // 679c + + } + } +} + 74f2: 1491 pop r4, r15 + 74f4: 20000868 .long 0x20000868 + 74f8: 2000083c .long 0x2000083c + 74fc: 0000abc7 .long 0x0000abc7 + 7500: 200000c0 .long 0x200000c0 + 7504: 200005e0 .long 0x200005e0 + +Disassembly of section .text.KEY5_OnOff_Press_Fun: + +00007508 : + + +void KEY5_OnOff_Press_Fun(void) +{ + 7508: 14d1 push r4, r15 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 750a: 103e lrw r1, 0xabe7 // 7580 + 750c: 3000 movi r0, 0 + if(Debug_Inf.State == 0x00) //正常模式 + 750e: 109e lrw r4, 0x20000868 // 7584 + Dbg_Println(DBG_BIT_SYS_STATUS,"KEY5_OnOff_Press_Fun"); + 7510: e3ffe5fc bsr 0x4108 // 4108 + if(Debug_Inf.State == 0x00) //正常模式 + 7514: 8460 ld.b r3, (r4, 0x0) + 7516: 3b40 cmpnei r3, 0 + 7518: 081b bt 0x754e // 754e + { + if(TempCtrl.CardState == CARDIN) + 751a: 109c lrw r4, 0x2000083c // 7588 + 751c: 8478 ld.b r3, (r4, 0x18) + 751e: 3b41 cmpnei r3, 1 + 7520: 080d bt 0x753a // 753a + { + TemCtrl_OnOff_Set(); + 7522: e3fffc7b bsr 0x6e18 // 6e18 + { + TempCtrl_OnOff_DisPlay(1); + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(1); + } + TempCtrl.BackLightTick = SysTick_1ms; + 7526: 107a lrw r3, 0x200000c0 // 758c + 7528: 9360 ld.w r3, (r3, 0x0) + 752a: 4b48 lsri r2, r3, 8 + 752c: a470 st.b r3, (r4, 0x10) + 752e: a451 st.b r2, (r4, 0x11) + 7530: 4b50 lsri r2, r3, 16 + 7532: 4b78 lsri r3, r3, 24 + 7534: a452 st.b r2, (r4, 0x12) + 7536: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0x00); + Controlled_Key_Backlight(0x00); + //保存参数 + Dev_SaveData(); + } +} + 7538: 1491 pop r4, r15 + TempCtrl_OnOff_DisPlay(1); + 753a: 3001 movi r0, 1 + 753c: e000002e bsr 0x7598 // 7598 + Controlled_LCD_Backlight(1); + 7540: 3001 movi r0, 1 + 7542: e3fff8a7 bsr 0x6690 // 6690 + Controlled_Key_Backlight(1); + 7546: 3001 movi r0, 1 + 7548: e3fff912 bsr 0x676c // 676c + 754c: 07ed br 0x7526 // 7526 + else if(Debug_Inf.State == 0x01) //设置模式 + 754e: 3b41 cmpnei r3, 1 + 7550: 0bf4 bt 0x7538 // 7538 + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug_Out"); + 7552: 1030 lrw r1, 0xabfc // 7590 + 7554: 3000 movi r0, 0 + 7556: e3ffe5d9 bsr 0x4108 // 4108 + Debug_Inf.State = 0x00; + 755a: 3300 movi r3, 0 + 755c: a460 st.b r3, (r4, 0x0) + Debug_Inf.Page = 0x01; + 755e: 3301 movi r3, 1 + HT1621.buz_ctrl_flag = 0x00; + 7560: 3200 movi r2, 0 + Debug_Inf.Page = 0x01; + 7562: a462 st.b r3, (r4, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 7564: 106c lrw r3, 0x200005e0 // 7594 + 7566: a345 st.b r2, (r3, 0x5) + HT1621_Clear(); + 7568: e3fff556 bsr 0x6014 // 6014 + Controlled_LCD_Backlight(0x00); + 756c: 3000 movi r0, 0 + 756e: e3fff891 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7572: 3000 movi r0, 0 + 7574: e3fff8fc bsr 0x676c // 676c + Dev_SaveData(); + 7578: e00002dc bsr 0x7b30 // 7b30 +} + 757c: 07de br 0x7538 // 7538 + 757e: 0000 bkpt + 7580: 0000abe7 .long 0x0000abe7 + 7584: 20000868 .long 0x20000868 + 7588: 2000083c .long 0x2000083c + 758c: 200000c0 .long 0x200000c0 + 7590: 0000abfc .long 0x0000abfc + 7594: 200005e0 .long 0x200005e0 + +Disassembly of section .text.TempCtrl_OnOff_DisPlay: + +00007598 : + * 函数功能:开/关机显示 + * + * +*/ +void TempCtrl_OnOff_DisPlay(U8_T state) +{ + 7598: 14d1 push r4, r15 + if(state == TEMP_ON) + 759a: 3841 cmpnei r0, 1 + 759c: 0821 bt 0x75de // 75de + { + Control_Prompt_Text(Debug_Inf.Language_Selection); + 759e: 1072 lrw r3, 0x20000868 // 75e4 + 75a0: 8309 ld.b r0, (r3, 0x9) + Control_Mode(TempCtrl.TemState_Now.mode); + 75a2: 1092 lrw r4, 0x2000083c // 75e8 + Control_Prompt_Text(Debug_Inf.Language_Selection); + 75a4: e3fff800 bsr 0x65a4 // 65a4 + Control_Mode(TempCtrl.TemState_Now.mode); + 75a8: 8402 ld.b r0, (r4, 0x2) + 75aa: 4019 lsli r0, r0, 25 + 75ac: 481d lsri r0, r0, 29 + 75ae: e3fff671 bsr 0x6290 // 6290 + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 75b2: 8402 ld.b r0, (r4, 0x2) + 75b4: 401c lsli r0, r0, 28 + 75b6: 481d lsri r0, r0, 29 + 75b8: e3fff78e bsr 0x64d4 // 64d4 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 75bc: 8401 ld.b r0, (r4, 0x1) + 75be: 3840 cmpnei r0, 0 + 75c0: 0c0c bf 0x75d8 // 75d8 + 75c2: 330a movi r3, 10 + 75c4: 7c0c mult r0, r3 + 75c6: e3fff595 bsr 0x60f0 // 60f0 + Local_Temperature_Display(TempCtrl.TemState_Now.indoor_t*10); + 75ca: 8400 ld.b r0, (r4, 0x0) + 75cc: 330a movi r3, 10 + 75ce: 7c0c mult r0, r3 + 75d0: 7401 zexth r0, r0 + 75d2: e3fff5f7 bsr 0x61c0 // 61c0 + } + else + { + HT1621_Clear(); + } +} + 75d6: 1491 pop r4, r15 + Set_Temperature_Display(TEMTEMPCONVER(TempCtrl.TemState_Now.set_t)*10); + 75d8: 30a0 movi r0, 160 + 75da: 4001 lsli r0, r0, 1 + 75dc: 07f5 br 0x75c6 // 75c6 + HT1621_Clear(); + 75de: e3fff51b bsr 0x6014 // 6014 +} + 75e2: 07fa br 0x75d6 // 75d6 + 75e4: 20000868 .long 0x20000868 + 75e8: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Init: + +000075ec : + * 函数功能:显示初始化 + * + * +*/ +void DisPlay_Init(void) +{ + 75ec: 14d0 push r15 + HT1621_ALLON(); + 75ee: e3fff53b bsr 0x6064 // 6064 + + delay_nms(5000); + 75f2: 1005 lrw r0, 0x1388 // 7604 + 75f4: e3ffdd0e bsr 0x3010 // 3010 + + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 75f8: 1064 lrw r3, 0x2000083c // 7608 + 75fa: 8302 ld.b r0, (r3, 0x2) + 75fc: 4807 lsri r0, r0, 7 + 75fe: e3ffffcd bsr 0x7598 // 7598 + +} + 7602: 1490 pop r15 + 7604: 00001388 .long 0x00001388 + 7608: 2000083c .long 0x2000083c + +Disassembly of section .text.DisPlay_Task: + +0000760c : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 760c: 14d4 push r4-r7, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 760e: 0168 lrw r3, 0x20000868 // 7968 + 7610: 8360 ld.b r3, (r3, 0x0) + 7612: 3b40 cmpnei r3, 0 + 7614: 0c03 bf 0x761a // 761a + 7616: e8000253 br 0x7abc // 7abc + { + ///1、根据插卡状态处理显示和背光状态 + if((SysTick_1ms - TempCtrl.BackLightTick > 3000) && (TempCtrl.CardState == CARDOUT)) //拔卡关背光 + 761a: 018a lrw r4, 0x2000083c // 796c + 761c: 8451 ld.b r2, (r4, 0x11) + 761e: 8470 ld.b r3, (r4, 0x10) + 7620: 4248 lsli r2, r2, 8 + 7622: 6c8c or r2, r3 + 7624: 8472 ld.b r3, (r4, 0x12) + 7626: 4370 lsli r3, r3, 16 + 7628: 6c8c or r2, r3 + 762a: 8473 ld.b r3, (r4, 0x13) + 762c: 01ae lrw r5, 0x200000c0 // 7970 + 762e: 4378 lsli r3, r3, 24 + 7630: 6cc8 or r3, r2 + 7632: 9520 ld.w r1, (r5, 0x0) + 7634: 604e subu r1, r3 + 7636: 014f lrw r2, 0xbb8 // 7974 + 7638: 6448 cmphs r2, r1 + 763a: 08b7 bt 0x77a8 // 77a8 + 763c: 8458 ld.b r2, (r4, 0x18) + 763e: 3a40 cmpnei r2, 0 + 7640: 08b4 bt 0x77a8 // 77a8 + { + TempCtrl.BackLightTick = SysTick_1ms; + 7642: 9560 ld.w r3, (r5, 0x0) + 7644: 4b48 lsri r2, r3, 8 + 7646: a470 st.b r3, (r4, 0x10) + 7648: a451 st.b r2, (r4, 0x11) + 764a: 4b50 lsri r2, r3, 16 + 764c: 4b78 lsri r3, r3, 24 + 764e: a473 st.b r3, (r4, 0x13) + TempCtrl.CardFlag = 0x00; + 7650: 3300 movi r3, 0 + 7652: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 7654: 8462 ld.b r3, (r4, 0x2) + 7656: 74ce sextb r3, r3 + 7658: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 765a: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_OFF) //开机状态下不清屏,只关背光 + 765c: 0803 bt 0x7662 // 7662 + { + HT1621_Clear(); + 765e: e3fff4db bsr 0x6014 // 6014 + } + //关背光 + Controlled_LCD_Backlight(0); + 7662: 3000 movi r0, 0 + 7664: e3fff816 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7668: 3000 movi r0, 0 + 766a: e3fff881 bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDOUT off light"); + 766e: 013c lrw r1, 0xac06 // 7978 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + { + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 7670: 3000 movi r0, 0 + 7672: e3ffe54b bsr 0x4108 // 4108 + } + } + } + + ///2、根据场景是否为睡眠模式处理背光状态 + if(SysTick_1ms - TempCtrl.SceneNoTick > 1000) + 7676: 8455 ld.b r2, (r4, 0x15) + 7678: 8474 ld.b r3, (r4, 0x14) + 767a: 4248 lsli r2, r2, 8 + 767c: 6c8c or r2, r3 + 767e: 8476 ld.b r3, (r4, 0x16) + 7680: 4370 lsli r3, r3, 16 + 7682: 6c8c or r2, r3 + 7684: 8477 ld.b r3, (r4, 0x17) + 7686: 4378 lsli r3, r3, 24 + 7688: 6cc8 or r3, r2 + 768a: 9520 ld.w r1, (r5, 0x0) + 768c: 604e subu r1, r3 + 768e: 33fa movi r3, 250 + 7690: 4362 lsli r3, r3, 2 + 7692: 644c cmphs r3, r1 + 7694: 081b bt 0x76ca // 76ca + { + TempCtrl.SceneNoTick = SysTick_1ms; + 7696: 9560 ld.w r3, (r5, 0x0) + 7698: 4b48 lsri r2, r3, 8 + 769a: a474 st.b r3, (r4, 0x14) + 769c: a455 st.b r2, (r4, 0x15) + 769e: 4b50 lsri r2, r3, 16 + 76a0: 4b78 lsri r3, r3, 24 + 76a2: a477 st.b r3, (r4, 0x17) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 76a4: 847b ld.b r3, (r4, 0x1b) + 76a6: 3b44 cmpnei r3, 4 + TempCtrl.SceneNoTick = SysTick_1ms; + 76a8: a456 st.b r2, (r4, 0x16) + if(TempCtrl.SceneNo == 0x04 && TempCtrl.SceneFlag == 0x01) //睡眠模式关背光 + 76aa: 08a7 bt 0x77f8 // 77f8 + 76ac: 847c ld.b r3, (r4, 0x1c) + 76ae: 3b41 cmpnei r3, 1 + 76b0: 08a4 bt 0x77f8 // 77f8 + { + TempCtrl.SceneFlag = 0x00; + 76b2: 3300 movi r3, 0 + //关背光 + Controlled_LCD_Backlight(0); + 76b4: 3000 movi r0, 0 + TempCtrl.SceneFlag = 0x00; + 76b6: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(0); + 76b8: e3fff7ec bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 76bc: 3000 movi r0, 0 + 76be: e3fff857 bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"sleep off light"); + 76c2: 0230 lrw r1, 0xac28 // 797c + { + TempCtrl.SceneFlag = 0x00; + //开背光 + Controlled_LCD_Backlight(1); + Controlled_Key_Backlight(0x01); + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 76c4: 3000 movi r0, 0 + 76c6: e3ffe521 bsr 0x4108 // 4108 + } + } + } + + ///3、根据背光延时关功能是否开启处理背光 + if(g_eeprom.backlight_en == 0x01 && (SysTick_1ms - TempCtrl.BackLightTick > 5000)) + 76ca: 02f1 lrw r7, 0x20000524 // 7980 + 76cc: 8764 ld.b r3, (r7, 0x4) + 76ce: 3b41 cmpnei r3, 1 + 76d0: 081e bt 0x770c // 770c + 76d2: 8451 ld.b r2, (r4, 0x11) + 76d4: 8470 ld.b r3, (r4, 0x10) + 76d6: 4248 lsli r2, r2, 8 + 76d8: 6c8c or r2, r3 + 76da: 8472 ld.b r3, (r4, 0x12) + 76dc: 4370 lsli r3, r3, 16 + 76de: 6c8c or r2, r3 + 76e0: 8473 ld.b r3, (r4, 0x13) + 76e2: 4378 lsli r3, r3, 24 + 76e4: 6cc8 or r3, r2 + 76e6: 9520 ld.w r1, (r5, 0x0) + 76e8: 604e subu r1, r3 + 76ea: 0278 lrw r3, 0x1388 // 7984 + 76ec: 644c cmphs r3, r1 + 76ee: 080f bt 0x770c // 770c + { + TempCtrl.BackLightTick = SysTick_1ms; + 76f0: 9560 ld.w r3, (r5, 0x0) + 76f2: 4b48 lsri r2, r3, 8 + 76f4: a470 st.b r3, (r4, 0x10) + 76f6: a451 st.b r2, (r4, 0x11) + Controlled_LCD_Backlight(0); + 76f8: 3000 movi r0, 0 + TempCtrl.BackLightTick = SysTick_1ms; + 76fa: 4b50 lsri r2, r3, 16 + 76fc: 4b78 lsri r3, r3, 24 + 76fe: a452 st.b r2, (r4, 0x12) + 7700: a473 st.b r3, (r4, 0x13) + Controlled_LCD_Backlight(0); + 7702: e3fff7c7 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7706: 3000 movi r0, 0 + 7708: e3fff832 bsr 0x676c // 676c + } + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 770c: 8402 ld.b r0, (r4, 0x2) + 770e: 74c2 sextb r3, r0 + 7710: 3bdf btsti r3, 31 + 7712: 03c1 lrw r6, 0x2000085c // 7988 + 7714: 0d4a bf 0x79a8 // 79a8 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 7716: 8466 ld.b r3, (r4, 0x6) + 7718: 4019 lsli r0, r0, 25 + 771a: 4359 lsli r2, r3, 25 + 771c: 481d lsri r0, r0, 29 + 771e: 4a5d lsri r2, r2, 29 + 7720: 640a cmpne r2, r0 + 7722: 0c21 bf 0x7764 // 7764 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 7724: 3170 movi r1, 112 + 7726: 4044 lsli r2, r0, 4 + 7728: 68c5 andn r3, r1 + 772a: 6cc8 or r3, r2 + 772c: a466 st.b r3, (r4, 0x6) + Control_Mode(TempCtrl.TemState_Now.mode); + 772e: e3fff5b1 bsr 0x6290 // 6290 + + SYSCON->UREG0 &= 0xFFFF00FF; + 7732: 0368 lrw r3, 0x2000005c // 798c + 7734: 31ff movi r1, 255 + 7736: 9340 ld.w r2, (r3, 0x0) + 7738: 22ff addi r2, 256 + 773a: 9260 ld.w r3, (r2, 0x0) + 773c: 4128 lsli r1, r1, 8 + 773e: 68c5 andn r3, r1 + 7740: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 7742: 8462 ld.b r3, (r4, 0x2) + 7744: 4379 lsli r3, r3, 25 + 7746: 4b7d lsri r3, r3, 29 + 7748: 9220 ld.w r1, (r2, 0x0) + 774a: 4368 lsli r3, r3, 8 + 774c: 6cc4 or r3, r1 + 774e: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 7750: 3301 movi r3, 1 + 7752: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7754: 9560 ld.w r3, (r5, 0x0) + 7756: 4b28 lsri r1, r3, 8 + 7758: a665 st.b r3, (r6, 0x5) + 775a: a626 st.b r1, (r6, 0x6) + 775c: 4b30 lsri r1, r3, 16 + 775e: 4b78 lsri r3, r3, 24 + 7760: a627 st.b r1, (r6, 0x7) + 7762: a668 st.b r3, (r6, 0x8) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 7764: 8402 ld.b r0, (r4, 0x2) + 7766: 8466 ld.b r3, (r4, 0x6) + 7768: 401c lsli r0, r0, 28 + 776a: 437c lsli r3, r3, 28 + 776c: 4b7d lsri r3, r3, 29 + 776e: 481d lsri r0, r0, 29 + 7770: 640e cmpne r3, r0 + 7772: 0377 lrw r3, 0x20000234 // 7990 + 7774: 0804 bt 0x777c // 777c + 7776: 8340 ld.b r2, (r3, 0x0) + 7778: 3a41 cmpnei r2, 1 + 777a: 087b bt 0x7870 // 7870 + { + OpenDisPlay_Flag = 0x00; + 777c: 3200 movi r2, 0 + 777e: a340 st.b r2, (r3, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 7780: 8466 ld.b r3, (r4, 0x6) + 7782: 310e movi r1, 14 + 7784: 4041 lsli r2, r0, 1 + 7786: 68c5 andn r3, r1 + 7788: 6cc8 or r3, r2 + 778a: a466 st.b r3, (r4, 0x6) + Control_wind_velocity(TempCtrl.TemState_Now.fan); + 778c: e3fff6a4 bsr 0x64d4 // 64d4 + if((TempCtrl.TemState_Now.mode == MODEL_WIND)&&(g_eeprom.pipe_flag == 0x02)) //水机无阀 送风模式下风机都不开 2024-11-14 wpd + 7790: 3270 movi r2, 112 + 7792: 8462 ld.b r3, (r4, 0x2) + 7794: 68c8 and r3, r2 + 7796: 3240 movi r2, 64 + 7798: 648e cmpne r3, r2 + 779a: 0843 bt 0x7820 // 7820 + 779c: 8761 ld.b r3, (r7, 0x1) + 779e: 3b42 cmpnei r3, 2 + 77a0: 0840 bt 0x7820 // 7820 + break; + case FAN_HIGH: + Relay_High(); + break; + case FAN_STOP: + Relay_Stop(); + 77a2: e00002a1 bsr 0x7ce4 // 7ce4 + break; + 77a6: 044b br 0x783c // 783c + else if((SysTick_1ms - TempCtrl.BackLightTick > 2000) && (TempCtrl.CardState == CARDIN) && (TempCtrl.CardFlag == 0x01)) //处于开机,插卡恢复页面 + 77a8: 9540 ld.w r2, (r5, 0x0) + 77aa: 608e subu r2, r3 + 77ac: 33fa movi r3, 250 + 77ae: 4363 lsli r3, r3, 3 + 77b0: 648c cmphs r3, r2 + 77b2: 0b62 bt 0x7676 // 7676 + 77b4: 8478 ld.b r3, (r4, 0x18) + 77b6: 3b41 cmpnei r3, 1 + 77b8: 0b5f bt 0x7676 // 7676 + 77ba: 8479 ld.b r3, (r4, 0x19) + 77bc: 3b41 cmpnei r3, 1 + 77be: 0b5c bt 0x7676 // 7676 + TempCtrl.BackLightTick = SysTick_1ms; + 77c0: 9560 ld.w r3, (r5, 0x0) + 77c2: 4b48 lsri r2, r3, 8 + 77c4: a470 st.b r3, (r4, 0x10) + 77c6: a451 st.b r2, (r4, 0x11) + 77c8: 4b50 lsri r2, r3, 16 + 77ca: 4b78 lsri r3, r3, 24 + 77cc: a473 st.b r3, (r4, 0x13) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 77ce: 8402 ld.b r0, (r4, 0x2) + TempCtrl.CardFlag = 0x00; + 77d0: 3300 movi r3, 0 + 77d2: a479 st.b r3, (r4, 0x19) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 77d4: 74c2 sextb r3, r0 + 77d6: 3bdf btsti r3, 31 + TempCtrl.BackLightTick = SysTick_1ms; + 77d8: a452 st.b r2, (r4, 0x12) + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 77da: 0f4e bf 0x7676 // 7676 + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 77dc: 4807 lsri r0, r0, 7 + 77de: e3fffedd bsr 0x7598 // 7598 + if(TempCtrl.SceneNo != 0x04) //不是处于睡眠模式,开背光 + 77e2: 847b ld.b r3, (r4, 0x1b) + 77e4: 3b44 cmpnei r3, 4 + 77e6: 0f48 bf 0x7676 // 7676 + Controlled_LCD_Backlight(1); + 77e8: 3001 movi r0, 1 + 77ea: e3fff753 bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 77ee: 3001 movi r0, 1 + 77f0: e3fff7be bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"CARDIn on light"); + 77f4: 1328 lrw r1, 0xac18 // 7994 + 77f6: 073d br 0x7670 // 7670 + if((TempCtrl.TemState_Now.on_off == TEMP_ON) && (TempCtrl.CardState == CARDIN) && (TempCtrl.SceneFlag == 0x01)) + 77f8: 8462 ld.b r3, (r4, 0x2) + 77fa: 74ce sextb r3, r3 + 77fc: 3bdf btsti r3, 31 + 77fe: 0f66 bf 0x76ca // 76ca + 7800: 8478 ld.b r3, (r4, 0x18) + 7802: 3b41 cmpnei r3, 1 + 7804: 0b63 bt 0x76ca // 76ca + 7806: 847c ld.b r3, (r4, 0x1c) + 7808: 3b41 cmpnei r3, 1 + 780a: 0b60 bt 0x76ca // 76ca + TempCtrl.SceneFlag = 0x00; + 780c: 3300 movi r3, 0 + Controlled_LCD_Backlight(1); + 780e: 3001 movi r0, 1 + TempCtrl.SceneFlag = 0x00; + 7810: a47c st.b r3, (r4, 0x1c) + Controlled_LCD_Backlight(1); + 7812: e3fff73f bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x01); + 7816: 3001 movi r0, 1 + 7818: e3fff7aa bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"Not sleep on light"); + 781c: 123f lrw r1, 0xac38 // 7998 + 781e: 0753 br 0x76c4 // 76c4 + switch(TempCtrl.TemState_Now.fan) + 7820: 8402 ld.b r0, (r4, 0x2) + 7822: 401c lsli r0, r0, 28 + 7824: 481d lsri r0, r0, 29 + 7826: 3804 cmphsi r0, 5 + 7828: 080a bt 0x783c // 783c + 782a: e3ffca73 bsr 0xd10 // d10 <___gnu_csky_case_shi> + 782e: 0005 .short 0x0005 + 7830: 014b0148 .long 0x014b0148 + 7834: ffba0007 .long 0xffba0007 + Relay_Low(); + 7838: e0000248 bsr 0x7cc8 // 7cc8 + default: + break; + } + } + + SYSCON->UREG0 &= 0xFF00FFFF; + 783c: 1274 lrw r3, 0x2000005c // 798c + 783e: 31ff movi r1, 255 + 7840: 9340 ld.w r2, (r3, 0x0) + 7842: 22ff addi r2, 256 + 7844: 9260 ld.w r3, (r2, 0x0) + 7846: 4130 lsli r1, r1, 16 + 7848: 68c5 andn r3, r1 + 784a: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 784c: 8462 ld.b r3, (r4, 0x2) + 784e: 437c lsli r3, r3, 28 + 7850: 4b7d lsri r3, r3, 29 + 7852: 9220 ld.w r1, (r2, 0x0) + 7854: 4370 lsli r3, r3, 16 + 7856: 6cc4 or r3, r1 + 7858: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 785a: 3301 movi r3, 1 + 785c: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 785e: 9560 ld.w r3, (r5, 0x0) + 7860: 124f lrw r2, 0x20000861 // 799c + 7862: 4b28 lsri r1, r3, 8 + 7864: a260 st.b r3, (r2, 0x0) + 7866: a221 st.b r1, (r2, 0x1) + 7868: 4b30 lsri r1, r3, 16 + 786a: 4b78 lsri r3, r3, 24 + 786c: a222 st.b r1, (r2, 0x2) + 786e: a263 st.b r3, (r2, 0x3) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 7870: 8401 ld.b r0, (r4, 0x1) + 7872: 8465 ld.b r3, (r4, 0x5) + 7874: 640e cmpne r3, r0 + 7876: 0c1f bf 0x78b4 // 78b4 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + if(TempCtrl.TemState_Now.set_t==0x00) + 7878: 3840 cmpnei r0, 0 + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 787a: a405 st.b r0, (r4, 0x5) + if(TempCtrl.TemState_Now.set_t==0x00) + 787c: 0927 bt 0x7aca // 7aca + { + Set_Temperature_Display(320); + 787e: 30a0 movi r0, 160 + 7880: 4001 lsli r0, r0, 1 + } + else + { + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 7882: e3fff437 bsr 0x60f0 // 60f0 + } + + SYSCON->UREG0 &= 0x00FFFFFF; + 7886: 1262 lrw r3, 0x2000005c // 798c + 7888: 9360 ld.w r3, (r3, 0x0) + 788a: 23ff addi r3, 256 + 788c: 9340 ld.w r2, (r3, 0x0) + 788e: 4248 lsli r2, r2, 8 + 7890: 4a48 lsri r2, r2, 8 + 7892: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 7894: 8441 ld.b r2, (r4, 0x1) + 7896: 9320 ld.w r1, (r3, 0x0) + 7898: 4258 lsli r2, r2, 24 + 789a: 6c84 or r2, r1 + 789c: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 789e: 3301 movi r3, 1 + 78a0: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 78a2: 9560 ld.w r3, (r5, 0x0) + 78a4: 115e lrw r2, 0x20000861 // 799c + 78a6: 4b28 lsri r1, r3, 8 + 78a8: a260 st.b r3, (r2, 0x0) + 78aa: a221 st.b r1, (r2, 0x1) + 78ac: 4b30 lsri r1, r3, 16 + 78ae: 4b78 lsri r3, r3, 24 + 78b0: a222 st.b r1, (r2, 0x2) + 78b2: a263 st.b r3, (r2, 0x3) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 78b4: 8409 ld.b r0, (r4, 0x9) + 78b6: 8468 ld.b r3, (r4, 0x8) + 78b8: 4008 lsli r0, r0, 8 + 78ba: 6c0c or r0, r3 + 78bc: 846b ld.b r3, (r4, 0xb) + 78be: 844a ld.b r2, (r4, 0xa) + 78c0: 4368 lsli r3, r3, 8 + 78c2: 6cc8 or r3, r2 + 78c4: 640e cmpne r3, r0 + 78c6: 0c12 bf 0x78ea // 78ea + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 78c8: 4868 lsri r3, r0, 8 + 78ca: a46b st.b r3, (r4, 0xb) + 78cc: a40a st.b r0, (r4, 0xa) + + Local_Temperature_Display(TempCtrl.IndoorTem); + 78ce: e3fff479 bsr 0x61c0 // 61c0 + + SYSCON->UREG0 &= 0x00FFFFFF; + 78d2: 116f lrw r3, 0x2000005c // 798c + 78d4: 9360 ld.w r3, (r3, 0x0) + 78d6: 23ff addi r3, 256 + 78d8: 9340 ld.w r2, (r3, 0x0) + 78da: 4248 lsli r2, r2, 8 + 78dc: 4a48 lsri r2, r2, 8 + 78de: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 78e0: 8441 ld.b r2, (r4, 0x1) + 78e2: 9320 ld.w r1, (r3, 0x0) + 78e4: 4258 lsli r2, r2, 24 + 78e6: 6c84 or r2, r1 + 78e8: b340 st.w r2, (r3, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 78ea: 844f ld.b r2, (r4, 0xf) + 78ec: 846e ld.b r3, (r4, 0xe) + 78ee: 4248 lsli r2, r2, 8 + 78f0: 6c8c or r2, r3 + 78f2: 846d ld.b r3, (r4, 0xd) + 78f4: 842c ld.b r1, (r4, 0xc) + 78f6: 4368 lsli r3, r3, 8 + 78f8: 6cc4 or r3, r1 + 78fa: 648c cmphs r3, r2 + 78fc: 0804 bt 0x7904 // 7904 + 78fe: 5a2d subu r1, r2, r3 + 7900: 392a cmplti r1, 11 + 7902: 0c06 bf 0x790e // 790e + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 7904: 64c8 cmphs r2, r3 + 7906: 0812 bt 0x792a // 792a + 7908: 5b49 subu r2, r3, r2 + 790a: 3a2a cmplti r2, 11 + 790c: 080f bt 0x792a // 792a + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 790e: 9540 ld.w r2, (r5, 0x0) + 7910: 1124 lrw r1, 0x2000085d // 79a0 + 7912: 4a08 lsri r0, r2, 8 + 7914: a140 st.b r2, (r1, 0x0) + 7916: a101 st.b r0, (r1, 0x1) + 7918: 4a10 lsri r0, r2, 16 + 791a: 4a58 lsri r2, r2, 24 + 791c: a143 st.b r2, (r1, 0x3) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 791e: 4b48 lsri r2, r3, 8 + 7920: a44f st.b r2, (r4, 0xf) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 7922: 3201 movi r2, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7924: a102 st.b r0, (r1, 0x2) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7926: a46e st.b r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 7928: a640 st.b r2, (r6, 0x0) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 792a: 8602 ld.b r0, (r6, 0x2) + 792c: 8641 ld.b r2, (r6, 0x1) + 792e: 4008 lsli r0, r0, 8 + 7930: 6c08 or r0, r2 + 7932: 8643 ld.b r2, (r6, 0x3) + 7934: 4250 lsli r2, r2, 16 + 7936: 6c08 or r0, r2 + 7938: 8644 ld.b r2, (r6, 0x4) + 793a: 4258 lsli r2, r2, 24 + 793c: 6c80 or r2, r0 + 793e: 9520 ld.w r1, (r5, 0x0) + 7940: 604a subu r1, r2 + 7942: 1059 lrw r2, 0x752f // 79a4 + 7944: 6448 cmphs r2, r1 + 7946: 0831 bt 0x79a8 // 79a8 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 7948: 9540 ld.w r2, (r5, 0x0) + 794a: 1036 lrw r1, 0x2000085d // 79a0 + 794c: 4a08 lsri r0, r2, 8 + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 794e: a46e st.b r3, (r4, 0xe) + 7950: 4b68 lsri r3, r3, 8 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7952: a140 st.b r2, (r1, 0x0) + 7954: a101 st.b r0, (r1, 0x1) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 7956: a46f st.b r3, (r4, 0xf) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7958: 4a10 lsri r0, r2, 16 + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 795a: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 795c: 4a58 lsri r2, r2, 24 + 795e: a102 st.b r0, (r1, 0x2) + 7960: a143 st.b r2, (r1, 0x3) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 7962: a660 st.b r3, (r6, 0x0) + 7964: 0422 br 0x79a8 // 79a8 + 7966: 0000 bkpt + 7968: 20000868 .long 0x20000868 + 796c: 2000083c .long 0x2000083c + 7970: 200000c0 .long 0x200000c0 + 7974: 00000bb8 .long 0x00000bb8 + 7978: 0000ac06 .long 0x0000ac06 + 797c: 0000ac28 .long 0x0000ac28 + 7980: 20000524 .long 0x20000524 + 7984: 00001388 .long 0x00001388 + 7988: 2000085c .long 0x2000085c + 798c: 2000005c .long 0x2000005c + 7990: 20000234 .long 0x20000234 + 7994: 0000ac18 .long 0x0000ac18 + 7998: 0000ac38 .long 0x0000ac38 + 799c: 20000861 .long 0x20000861 + 79a0: 2000085d .long 0x2000085d + 79a4: 0000752f .long 0x0000752f + + } + } + + + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 79a8: 8462 ld.b r3, (r4, 0x2) + 79aa: 8446 ld.b r2, (r4, 0x6) + 79ac: 4b07 lsri r0, r3, 7 + 79ae: 4a47 lsri r2, r2, 7 + 79b0: 640a cmpne r2, r0 + 79b2: 0c31 bf 0x7a14 // 7a14 + { + if (TempCtrl.TemState_Now.on_off == TEMP_ON){ + 79b4: 74ce sextb r3, r3 + 79b6: 3bdf btsti r3, 31 + 79b8: 1267 lrw r3, 0x200005e0 // 7ad4 + 79ba: 0c8b bf 0x7ad0 // 7ad0 + OpenDisPlay_Flag = 1; //目前这个标志给刷新风速用,目的是开启时进入风速刷新,从而开启风速阀 + 79bc: 1247 lrw r2, 0x20000234 // 7ad8 + 79be: 3101 movi r1, 1 + 79c0: a220 st.b r1, (r2, 0x0) + HT1621.buz_ctrl_flag = 0x01; + 79c2: 3201 movi r2, 1 + }else{ + HT1621.buz_ctrl_flag = 0x00; + 79c4: a345 st.b r2, (r3, 0x5) + } + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 79c6: 317f movi r1, 127 + 79c8: 8466 ld.b r3, (r4, 0x6) + 79ca: 4047 lsli r2, r0, 7 + 79cc: 68c4 and r3, r1 + 79ce: 6cc8 or r3, r2 + 79d0: a466 st.b r3, (r4, 0x6) + Controlled_LCD_Backlight(TempCtrl.TemState_Now.on_off); + 79d2: e3fff65f bsr 0x6690 // 6690 + Controlled_Key_Backlight(TempCtrl.TemState_Now.on_off); + 79d6: 8402 ld.b r0, (r4, 0x2) + 79d8: 4807 lsri r0, r0, 7 + 79da: e3fff6c9 bsr 0x676c // 676c + TempCtrl_OnOff_DisPlay(TempCtrl.TemState_Now.on_off); + 79de: 8402 ld.b r0, (r4, 0x2) + 79e0: 4807 lsri r0, r0, 7 + 79e2: e3fffddb bsr 0x7598 // 7598 + + + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 79e6: 117e lrw r3, 0x2000005c // 7adc + 79e8: 31ff movi r1, 255 + 79ea: 9340 ld.w r2, (r3, 0x0) + 79ec: 22ff addi r2, 256 + 79ee: 9260 ld.w r3, (r2, 0x0) + 79f0: 68c5 andn r3, r1 + 79f2: b260 st.w r3, (r2, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 79f4: 8462 ld.b r3, (r4, 0x2) + 79f6: 9220 ld.w r1, (r2, 0x0) + 79f8: 4b67 lsri r3, r3, 7 + 79fa: 6cc4 or r3, r1 + 79fc: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 79fe: 3301 movi r3, 1 + 7a00: a660 st.b r3, (r6, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a02: 9560 ld.w r3, (r5, 0x0) + 7a04: 1157 lrw r2, 0x20000861 // 7ae0 + 7a06: 4b28 lsri r1, r3, 8 + 7a08: a260 st.b r3, (r2, 0x0) + 7a0a: a221 st.b r1, (r2, 0x1) + 7a0c: 4b30 lsri r1, r3, 16 + 7a0e: 4b78 lsri r3, r3, 24 + 7a10: a222 st.b r1, (r2, 0x2) + 7a12: a263 st.b r3, (r2, 0x3) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 7a14: 8660 ld.b r3, (r6, 0x0) + 7a16: 3b41 cmpnei r3, 1 + 7a18: 082b bt 0x7a6e // 7a6e + 7a1a: 8646 ld.b r2, (r6, 0x6) + 7a1c: 8665 ld.b r3, (r6, 0x5) + 7a1e: 4248 lsli r2, r2, 8 + 7a20: 6c8c or r2, r3 + 7a22: 8667 ld.b r3, (r6, 0x7) + 7a24: 4370 lsli r3, r3, 16 + 7a26: 6c8c or r2, r3 + 7a28: 8668 ld.b r3, (r6, 0x8) + 7a2a: 4378 lsli r3, r3, 24 + 7a2c: 6cc8 or r3, r2 + 7a2e: 9520 ld.w r1, (r5, 0x0) + 7a30: 604e subu r1, r3 + 7a32: 116d lrw r3, 0x3e7 // 7ae4 + 7a34: 644c cmphs r3, r1 + 7a36: 081c bt 0x7a6e // 7a6e + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a38: 9560 ld.w r3, (r5, 0x0) + 7a3a: 114a lrw r2, 0x20000861 // 7ae0 + 7a3c: 4b28 lsri r1, r3, 8 + 7a3e: a260 st.b r3, (r2, 0x0) + 7a40: a221 st.b r1, (r2, 0x1) + 7a42: 4b30 lsri r1, r3, 16 + 7a44: 4b78 lsri r3, r3, 24 + 7a46: a263 st.b r3, (r2, 0x3) + TempCtrl.TempChange_Flag = 0x00; + 7a48: 3300 movi r3, 0 + 7a4a: a660 st.b r3, (r6, 0x0) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a4c: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a4e: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a50: 1146 lrw r2, 0x2000085d // 7ae8 + 7a52: 4b28 lsri r1, r3, 8 + 7a54: a260 st.b r3, (r2, 0x0) + 7a56: a221 st.b r1, (r2, 0x1) + 7a58: 4b30 lsri r1, r3, 16 + 7a5a: 4b78 lsri r3, r3, 24 + 7a5c: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7a5e: 8767 ld.b r3, (r7, 0x7) + 7a60: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a62: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7a64: 0805 bt 0x7a6e // 7a6e + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 7a66: 30fa movi r0, 250 + 7a68: 4002 lsli r0, r0, 2 + 7a6a: e0000255 bsr 0x7f14 // 7f14 + } + + } + + // 状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 7a6e: 8646 ld.b r2, (r6, 0x6) + 7a70: 8665 ld.b r3, (r6, 0x5) + 7a72: 4248 lsli r2, r2, 8 + 7a74: 6c8c or r2, r3 + 7a76: 8667 ld.b r3, (r6, 0x7) + 7a78: 4370 lsli r3, r3, 16 + 7a7a: 6c8c or r2, r3 + 7a7c: 8668 ld.b r3, (r6, 0x8) + 7a7e: 4378 lsli r3, r3, 24 + 7a80: 6cc8 or r3, r2 + 7a82: 9520 ld.w r1, (r5, 0x0) + 7a84: 604e subu r1, r3 + 7a86: 107a lrw r3, 0x493df // 7aec + 7a88: 644c cmphs r3, r1 + 7a8a: 0819 bt 0x7abc // 7abc + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a8c: 9560 ld.w r3, (r5, 0x0) + 7a8e: 1055 lrw r2, 0x20000861 // 7ae0 + 7a90: 4b28 lsri r1, r3, 8 + 7a92: a260 st.b r3, (r2, 0x0) + 7a94: a221 st.b r1, (r2, 0x1) + 7a96: 4b30 lsri r1, r3, 16 + 7a98: 4b78 lsri r3, r3, 24 + 7a9a: a263 st.b r3, (r2, 0x3) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7a9c: 9560 ld.w r3, (r5, 0x0) + TempCtrl.TempChange_Tick = SysTick_1ms; + 7a9e: a222 st.b r1, (r2, 0x2) + TempCtrl.Temp_SendTick = SysTick_1ms; + 7aa0: 1052 lrw r2, 0x2000085d // 7ae8 + 7aa2: 4b28 lsri r1, r3, 8 + 7aa4: a260 st.b r3, (r2, 0x0) + 7aa6: a221 st.b r1, (r2, 0x1) + 7aa8: 4b30 lsri r1, r3, 16 + 7aaa: 4b78 lsri r3, r3, 24 + 7aac: a263 st.b r3, (r2, 0x3) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7aae: 8767 ld.b r3, (r7, 0x7) + 7ab0: 3b42 cmpnei r3, 2 + TempCtrl.Temp_SendTick = SysTick_1ms; + 7ab2: a222 st.b r1, (r2, 0x2) + if(g_eeprom.dev_port == ACTIVE_PORT) { + 7ab4: 0804 bt 0x7abc // 7abc + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 7ab6: 100f lrw r0, 0xea60 // 7af0 + 7ab8: e000022e bsr 0x7f14 // 7f14 + } + } + } +} + 7abc: 1494 pop r4-r7, r15 + Relay_Mid(); + 7abe: e00000f7 bsr 0x7cac // 7cac + break; + 7ac2: 06bd br 0x783c // 783c + Relay_High(); + 7ac4: e00000e6 bsr 0x7c90 // 7c90 + break; + 7ac8: 06ba br 0x783c // 783c + Set_Temperature_Display(TempCtrl.TemState_Now.set_t*10); + 7aca: 330a movi r3, 10 + 7acc: 7c0c mult r0, r3 + 7ace: 06da br 0x7882 // 7882 + HT1621.buz_ctrl_flag = 0x00; + 7ad0: 3200 movi r2, 0 + 7ad2: 0779 br 0x79c4 // 79c4 + 7ad4: 200005e0 .long 0x200005e0 + 7ad8: 20000234 .long 0x20000234 + 7adc: 2000005c .long 0x2000005c + 7ae0: 20000861 .long 0x20000861 + 7ae4: 000003e7 .long 0x000003e7 + 7ae8: 2000085d .long 0x2000085d + 7aec: 000493df .long 0x000493df + 7af0: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Debug_Init: + +00007af4 : + * 函数功能:设置模式参数初始化 + * + * +*/ +void Debug_Init(void) +{ + 7af4: 14d1 push r4, r15 + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 7af6: 108d lrw r4, 0x20000868 // 7b28 + 7af8: 3210 movi r2, 16 + 7afa: 3100 movi r1, 0 + 7afc: 6c13 mov r0, r4 + 7afe: e3ffd0a1 bsr 0x1c40 // 1c40 <__memset_fast> + Debug_Inf.Page = 0x01; + 7b02: 3301 movi r3, 1 + 7b04: a462 st.b r3, (r4, 0x2) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 7b06: 106a lrw r3, 0x20000524 // 7b2c + 7b08: 8340 ld.b r2, (r3, 0x0) + 7b0a: a443 st.b r2, (r4, 0x3) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 7b0c: 8341 ld.b r2, (r3, 0x1) + 7b0e: a444 st.b r2, (r4, 0x4) + + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 7b10: 8342 ld.b r2, (r3, 0x2) + 7b12: a445 st.b r2, (r4, 0x5) + Debug_Inf.BackLight_En = g_eeprom.backlight_en; + 7b14: 8344 ld.b r2, (r3, 0x4) + 7b16: a446 st.b r2, (r4, 0x6) + Debug_Inf.KSens_Level = g_eeprom.key_sens_level; + 7b18: 8345 ld.b r2, (r3, 0x5) + 7b1a: a447 st.b r2, (r4, 0x7) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7b1c: 8343 ld.b r2, (r3, 0x3) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 7b1e: 8366 ld.b r3, (r3, 0x6) + Debug_Inf.TempDisplay = g_eeprom.temp_select; + 7b20: a448 st.b r2, (r4, 0x8) + Debug_Inf.Language_Selection = g_eeprom.langue_select; + 7b22: a469 st.b r3, (r4, 0x9) + + +} + 7b24: 1491 pop r4, r15 + 7b26: 0000 bkpt + 7b28: 20000868 .long 0x20000868 + 7b2c: 20000524 .long 0x20000524 + +Disassembly of section .text.Dev_SaveData: + +00007b30 : + * 函数功能:设置模式下参数保存 + * + * +*/ +void Dev_SaveData(void) +{ + 7b30: 14d1 push r4, r15 + 7b32: 1423 subi r14, r14, 12 + if((Debug_Inf.DevAddr != g_eeprom.dev_addr)|| Debug_Inf.PipeFlag != g_eeprom.pipe_flag || Debug_Inf.TempDiff != g_eeprom.temp_diff \ + 7b34: 1165 lrw r3, 0x20000868 // 7bc8 + 7b36: 1186 lrw r4, 0x20000524 // 7bcc + 7b38: 8343 ld.b r2, (r3, 0x3) + 7b3a: 8420 ld.b r1, (r4, 0x0) + 7b3c: 6486 cmpne r1, r2 + 7b3e: 0819 bt 0x7b70 // 7b70 + 7b40: 8304 ld.b r0, (r3, 0x4) + 7b42: 8421 ld.b r1, (r4, 0x1) + 7b44: 6442 cmpne r0, r1 + 7b46: 0815 bt 0x7b70 // 7b70 + 7b48: 8305 ld.b r0, (r3, 0x5) + 7b4a: 8422 ld.b r1, (r4, 0x2) + 7b4c: 6442 cmpne r0, r1 + 7b4e: 0811 bt 0x7b70 // 7b70 + || Debug_Inf.BackLight_En != g_eeprom.backlight_en || Debug_Inf.KSens_Level != g_eeprom.key_sens_level\ + 7b50: 8306 ld.b r0, (r3, 0x6) + 7b52: 8424 ld.b r1, (r4, 0x4) + 7b54: 6442 cmpne r0, r1 + 7b56: 080d bt 0x7b70 // 7b70 + 7b58: 8307 ld.b r0, (r3, 0x7) + 7b5a: 8425 ld.b r1, (r4, 0x5) + 7b5c: 6442 cmpne r0, r1 + 7b5e: 0809 bt 0x7b70 // 7b70 + || Debug_Inf.TempDisplay != g_eeprom.temp_select || Debug_Inf.Language_Selection != g_eeprom.langue_select) + 7b60: 8308 ld.b r0, (r3, 0x8) + 7b62: 8423 ld.b r1, (r4, 0x3) + 7b64: 6442 cmpne r0, r1 + 7b66: 0805 bt 0x7b70 // 7b70 + 7b68: 8309 ld.b r0, (r3, 0x9) + 7b6a: 8426 ld.b r1, (r4, 0x6) + 7b6c: 6442 cmpne r0, r1 + 7b6e: 0c2b bf 0x7bc4 // 7bc4 + { + g_eeprom.dev_addr = Debug_Inf.DevAddr; + 7b70: a440 st.b r2, (r4, 0x0) + g_eeprom.pipe_flag = Debug_Inf.PipeFlag; + 7b72: 8344 ld.b r2, (r3, 0x4) + 7b74: a441 st.b r2, (r4, 0x1) + g_eeprom.temp_diff = Debug_Inf.TempDiff; + 7b76: 8345 ld.b r2, (r3, 0x5) + 7b78: a442 st.b r2, (r4, 0x2) + g_eeprom.backlight_en = Debug_Inf.BackLight_En; + 7b7a: 8346 ld.b r2, (r3, 0x6) + 7b7c: a444 st.b r2, (r4, 0x4) + g_eeprom.key_sens_level = Debug_Inf.KSens_Level; + 7b7e: 8347 ld.b r2, (r3, 0x7) + 7b80: a445 st.b r2, (r4, 0x5) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7b82: 8348 ld.b r2, (r3, 0x8) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + + EEPROM_WriteParaInfo(&g_eeprom); + 7b84: 1012 lrw r0, 0x20000524 // 7bcc + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7b86: 8369 ld.b r3, (r3, 0x9) + g_eeprom.temp_select = Debug_Inf.TempDisplay; + 7b88: a443 st.b r2, (r4, 0x3) + g_eeprom.langue_select = Debug_Inf.Language_Selection; + 7b8a: a466 st.b r3, (r4, 0x6) + EEPROM_WriteParaInfo(&g_eeprom); + 7b8c: e3ffe7d6 bsr 0x4b38 // 4b38 + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, addr:%d pipe:%d diff:%d backlight_en:%d key_sens_level:%d",\ + 7b90: 8425 ld.b r1, (r4, 0x5) + 7b92: b822 st.w r1, (r14, 0x8) + 7b94: 8424 ld.b r1, (r4, 0x4) + 7b96: b821 st.w r1, (r14, 0x4) + 7b98: 8422 ld.b r1, (r4, 0x2) + 7b9a: 8461 ld.b r3, (r4, 0x1) + 7b9c: 8440 ld.b r2, (r4, 0x0) + 7b9e: b820 st.w r1, (r14, 0x0) + 7ba0: 3000 movi r0, 0 + 7ba2: 102c lrw r1, 0xac4b // 7bd0 + 7ba4: e3ffe2b2 bsr 0x4108 // 4108 + g_eeprom.dev_addr,g_eeprom.pipe_flag,g_eeprom.temp_diff,g_eeprom.backlight_en,g_eeprom.key_sens_level); + Dbg_Println(DBG_BIT_SYS_STATUS,"Dev_SaveData, temp_select:%d langue_select:%d ",\ + 7ba8: 8466 ld.b r3, (r4, 0x6) + 7baa: 8443 ld.b r2, (r4, 0x3) + 7bac: 3000 movi r0, 0 + 7bae: 102a lrw r1, 0xac97 // 7bd4 + 7bb0: e3ffe2ac bsr 0x4108 // 4108 + g_eeprom.temp_select,g_eeprom.langue_select); + + //boot + if(g_eeprom.dev_addr != g_mcu_dev.dev_addr){ + 7bb4: 1009 lrw r0, 0x2000052c // 7bd8 + 7bb6: 8460 ld.b r3, (r4, 0x0) + 7bb8: 8040 ld.b r2, (r0, 0x0) + 7bba: 64ca cmpne r2, r3 + 7bbc: 0c04 bf 0x7bc4 // 7bc4 + g_mcu_dev.dev_addr = g_eeprom.dev_addr; + 7bbe: a060 st.b r3, (r0, 0x0) + EEPROM_WriteMCUDevInfo(&g_mcu_dev); + 7bc0: e3ffe9e0 bsr 0x4f80 // 4f80 + } + + } +} + 7bc4: 1403 addi r14, r14, 12 + 7bc6: 1491 pop r4, r15 + 7bc8: 20000868 .long 0x20000868 + 7bcc: 20000524 .long 0x20000524 + 7bd0: 0000ac4b .long 0x0000ac4b + 7bd4: 0000ac97 .long 0x0000ac97 + 7bd8: 2000052c .long 0x2000052c + +Disassembly of section .text.Debug_Task: + +00007bdc : + * 函数功能:设置模式轮询任务 + * + * +*/ +void Debug_Task(void) +{ + 7bdc: 14d0 push r15 + if((Debug_Inf.State == 0x01) && (SysTick_1ms - Debug_Inf.Tick) > 10000 && (Debug_Inf.Page != PAGE8ID)) //设置模式 + 7bde: 1074 lrw r3, 0x20000868 // 7c2c + 7be0: 8340 ld.b r2, (r3, 0x0) + 7be2: 3a41 cmpnei r2, 1 + 7be4: 0822 bt 0x7c28 // 7c28 + 7be6: 1033 lrw r1, 0x200000c0 // 7c30 + 7be8: 9140 ld.w r2, (r1, 0x0) + 7bea: 9303 ld.w r0, (r3, 0xc) + 7bec: 6082 subu r2, r0 + 7bee: 1012 lrw r0, 0x2710 // 7c34 + 7bf0: 6480 cmphs r0, r2 + 7bf2: 081b bt 0x7c28 // 7c28 + 7bf4: 8342 ld.b r2, (r3, 0x2) + 7bf6: 3a48 cmpnei r2, 8 + 7bf8: 0c18 bf 0x7c28 // 7c28 + { + Debug_Inf.Tick = SysTick_1ms; + 7bfa: 9140 ld.w r2, (r1, 0x0) + 7bfc: b343 st.w r2, (r3, 0xc) + Debug_Inf.State = 0x00; + 7bfe: 3200 movi r2, 0 + 7c00: a340 st.b r2, (r3, 0x0) + Debug_Inf.Page = 0x01; + 7c02: 3201 movi r2, 1 + 7c04: a342 st.b r2, (r3, 0x2) + HT1621.buz_ctrl_flag = 0x00; + 7c06: 106d lrw r3, 0x200005e0 // 7c38 + 7c08: 3200 movi r2, 0 + 7c0a: a345 st.b r2, (r3, 0x5) + + Dev_SaveData(); + 7c0c: e3ffff92 bsr 0x7b30 // 7b30 + + HT1621_Clear(); + 7c10: e3fff202 bsr 0x6014 // 6014 + //关背光 + Controlled_LCD_Backlight(0x00); + 7c14: 3000 movi r0, 0 + 7c16: e3fff53d bsr 0x6690 // 6690 + Controlled_Key_Backlight(0x00); + 7c1a: 3000 movi r0, 0 + 7c1c: e3fff5a8 bsr 0x676c // 676c + Dbg_Println(DBG_BIT_SYS_STATUS,"Debug Out!"); + 7c20: 1027 lrw r1, 0xacc7 // 7c3c + 7c22: 3000 movi r0, 0 + 7c24: e3ffe272 bsr 0x4108 // 4108 + } + 7c28: 1490 pop r15 + 7c2a: 0000 bkpt + 7c2c: 20000868 .long 0x20000868 + 7c30: 200000c0 .long 0x200000c0 + 7c34: 00002710 .long 0x00002710 + 7c38: 200005e0 .long 0x200005e0 + 7c3c: 0000acc7 .long 0x0000acc7 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose.part.0: + +00007c40 : + * @brief 产生继电器控制动作检测 + * @param rly_id:继电器id + * @param state:继电器要改变的状态 + * @retval None + * */ +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7c40: 14d3 push r4-r6, r15 + //c_rly.rly_zero + + if( !((state == Control_ON)||(state == Control_OFF))) return; + if(rly_id >= RLY_MAX) return; + + if(c_rly.rly_state[rly_id] != state) + 7c42: 10a9 lrw r5, 0x20000878 // 7c64 + 7c44: 5d80 addu r4, r5, r0 + 7c46: 8463 ld.b r3, (r4, 0x3) + 7c48: 644e cmpne r3, r1 +void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state) + 7c4a: 6d87 mov r6, r1 + if(c_rly.rly_state[rly_id] != state) + 7c4c: 0c0b bf 0x7c62 // 7c62 + { + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7c4e: e3ffe02a bsr 0x3ca2 // 3ca2 + c_rly.rly_state[rly_id] = state; + if(c_rly.rly_zero == UNZEROCROSSING){ + 7c52: 8560 ld.b r3, (r5, 0x0) + c_rly.rly_control = 0x02; + 7c54: 3b40 cmpnei r3, 0 + 7c56: 64c3 mvcv r3 + 7c58: 2300 addi r3, 1 + c_rly.rly_state[rly_id] = state; + 7c5a: a4c3 st.b r6, (r4, 0x3) + c_rly.rly_control = 0x02; + 7c5c: a562 st.b r3, (r5, 0x2) + }else{ + c_rly.rly_control = 0x01; + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7c5e: e3ffe01f bsr 0x3c9c // 3c9c + } +} + 7c62: 1493 pop r4-r6, r15 + 7c64: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_Init: + +00007c68 : +{ + 7c68: 14d1 push r4, r15 + memset(&g_switch,0,sizeof(FUN_SWITCH_INFO)); + 7c6a: 1088 lrw r4, 0x200005a4 // 7c88 + 7c6c: 321c movi r2, 28 + 7c6e: 3100 movi r1, 0 + 7c70: 6c13 mov r0, r4 + 7c72: e3ffcfe7 bsr 0x1c40 // 1c40 <__memset_fast> + memset(&c_rly,0, sizeof(ZERO_CTRL_RLY)); + 7c76: 320c movi r2, 12 + 7c78: 3100 movi r1, 0 + 7c7a: 1005 lrw r0, 0x20000878 // 7c8c + 7c7c: e3ffcfe2 bsr 0x1c40 // 1c40 <__memset_fast> + g_switch.feedback_light_selection = 0x01; + 7c80: 3301 movi r3, 1 + 7c82: a462 st.b r3, (r4, 0x2) +} + 7c84: 1491 pop r4, r15 + 7c86: 0000 bkpt + 7c88: 200005a4 .long 0x200005a4 + 7c8c: 20000878 .long 0x20000878 + +Disassembly of section .text.Relay_High: + +00007c90 : +{ + 7c90: 14d0 push r15 + 7c92: 3101 movi r1, 1 + 7c94: 3002 movi r0, 2 + 7c96: e3ffffd5 bsr 0x7c40 // 7c40 + 7c9a: 3102 movi r1, 2 + 7c9c: 3003 movi r0, 3 + 7c9e: e3ffffd1 bsr 0x7c40 // 7c40 + 7ca2: 3102 movi r1, 2 + 7ca4: 3004 movi r0, 4 + 7ca6: e3ffffcd bsr 0x7c40 // 7c40 +} + 7caa: 1490 pop r15 + +Disassembly of section .text.Relay_Mid: + +00007cac : +{ + 7cac: 14d0 push r15 + 7cae: 3102 movi r1, 2 + 7cb0: 3002 movi r0, 2 + 7cb2: e3ffffc7 bsr 0x7c40 // 7c40 + 7cb6: 3101 movi r1, 1 + 7cb8: 3003 movi r0, 3 + 7cba: e3ffffc3 bsr 0x7c40 // 7c40 + 7cbe: 3102 movi r1, 2 + 7cc0: 3004 movi r0, 4 + 7cc2: e3ffffbf bsr 0x7c40 // 7c40 +} + 7cc6: 1490 pop r15 + +Disassembly of section .text.Relay_Low: + +00007cc8 : +{ + 7cc8: 14d0 push r15 + 7cca: 3102 movi r1, 2 + 7ccc: 3002 movi r0, 2 + 7cce: e3ffffb9 bsr 0x7c40 // 7c40 + 7cd2: 3102 movi r1, 2 + 7cd4: 3003 movi r0, 3 + 7cd6: e3ffffb5 bsr 0x7c40 // 7c40 + 7cda: 3101 movi r1, 1 + 7cdc: 3004 movi r0, 4 + 7cde: e3ffffb1 bsr 0x7c40 // 7c40 +} + 7ce2: 1490 pop r15 + +Disassembly of section .text.Relay_Stop: + +00007ce4 : +{ + 7ce4: 14d0 push r15 + 7ce6: 3102 movi r1, 2 + 7ce8: 3002 movi r0, 2 + 7cea: e3ffffab bsr 0x7c40 // 7c40 + 7cee: 3102 movi r1, 2 + 7cf0: 3003 movi r0, 3 + 7cf2: e3ffffa7 bsr 0x7c40 // 7c40 + 7cf6: 3102 movi r1, 2 + 7cf8: 3004 movi r0, 4 + 7cfa: e3ffffa3 bsr 0x7c40 // 7c40 +} + 7cfe: 1490 pop r15 + +Disassembly of section .text.BLV_RLY_Ctrl_Purpose: + +00007d00 : +{ + 7d00: 14d0 push r15 + if( !((state == Control_ON)||(state == Control_OFF))) return; + 7d02: 5963 subi r3, r1, 1 + 7d04: 74cc zextb r3, r3 + 7d06: 3b01 cmphsi r3, 2 + 7d08: 0805 bt 0x7d12 // 7d12 + if(rly_id >= RLY_MAX) return; + 7d0a: 3804 cmphsi r0, 5 + 7d0c: 0803 bt 0x7d12 // 7d12 + 7d0e: e3ffff99 bsr 0x7c40 // 7c40 +} + 7d12: 1490 pop r15 + +Disassembly of section .text.RLY_Direct_Control: + +00007d14 : +/******************************************************************** + * @brief 有无过零信号检测,以及无过零信号时直接控制继电器功能 + * @retval None + * */ +void RLY_Direct_Control(void) +{ + 7d14: 14d2 push r4-r5, r15 + if(SysTick_1ms - c_rly.ZCrossing_tick >= 50)// 50ms + 7d16: 1150 lrw r2, 0x200000c0 // 7dd4 + 7d18: 1190 lrw r4, 0x20000878 // 7dd8 + 7d1a: 9260 ld.w r3, (r2, 0x0) + 7d1c: 9422 ld.w r1, (r4, 0x8) + 7d1e: 60c6 subu r3, r1 + 7d20: 3131 movi r1, 49 + 7d22: 64c4 cmphs r1, r3 + 7d24: 0810 bt 0x7d44 // 7d44 + { + c_rly.ZCrossing_tick = SysTick_1ms; + 7d26: 9260 ld.w r3, (r2, 0x0) + 7d28: b462 st.w r3, (r4, 0x8) + + CK_CPU_DisAllNormalIrq(); //关闭全局中断 + 7d2a: e3ffdfbc bsr 0x3ca2 // 3ca2 + if( (c_rly.rly_zCnt >= 2)&&(c_rly.rly_zCnt <= 5) ){ //有过零信号 + 7d2e: 8461 ld.b r3, (r4, 0x1) + 7d30: 2b01 subi r3, 2 + 7d32: 74cc zextb r3, r3 + 7d34: 3b03 cmphsi r3, 4 + 7d36: 0812 bt 0x7d5a // 7d5a + c_rly.rly_zero = ZEROCROSSING; + 7d38: 3301 movi r3, 1 + 7d3a: a460 st.b r3, (r4, 0x0) + c_rly.rly_zCnt = 0; + 7d3c: 3300 movi r3, 0 + }else { //无过零信号 + c_rly.rly_zero = UNZEROCROSSING; + c_rly.rly_zCnt = 0; + 7d3e: a461 st.b r3, (r4, 0x1) + } + CK_CPU_EnAllNormalIrq(); //打开全局中断 + 7d40: e3ffdfae bsr 0x3c9c // 3c9c + } + + if(c_rly.rly_control != 0x02) return; + 7d44: 8462 ld.b r3, (r4, 0x2) + 7d46: 3b42 cmpnei r3, 2 + 7d48: 0819 bt 0x7d7a // 7d7a + 7d4a: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 7d4c: 5d03 subi r0, r5, 1 + 7d4e: 3803 cmphsi r0, 4 + 7d50: 0808 bt 0x7d60 // 7d60 + 7d52: e3ffc7d5 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7d56: 2117 .short 0x2117 + 7d58: 352b .short 0x352b + c_rly.rly_zero = UNZEROCROSSING; + 7d5a: 3300 movi r3, 0 + 7d5c: a460 st.b r3, (r4, 0x0) + 7d5e: 07f0 br 0x7d3e // 7d3e + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7d60: 8463 ld.b r3, (r4, 0x3) + 7d62: 3b41 cmpnei r3, 1 + 7d64: 080c bt 0x7d7c // 7d7c + RLY1_HOT_OPEN; + 7d66: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7d68: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7d6a: e3fff057 bsr 0x5e18 // 5e18 + for (U8_T i = 0; i < RLY_MAX; i++) { + 7d6e: 2500 addi r5, 1 + 7d70: 7554 zextb r5, r5 + 7d72: 3d45 cmpnei r5, 5 + 7d74: 0bec bt 0x7d4c // 7d4c + } + break; + } + } + + c_rly.rly_control = 0x00; + 7d76: 3300 movi r3, 0 + 7d78: a462 st.b r3, (r4, 0x2) +} + 7d7a: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7d7c: 3b42 cmpnei r3, 2 + 7d7e: 0bf8 bt 0x7d6e // 7d6e + RLY1_HOT_CLOSE; + 7d80: 3101 movi r1, 1 + 7d82: 07f3 br 0x7d68 // 7d68 + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7d84: 8464 ld.b r3, (r4, 0x4) + 7d86: 3b41 cmpnei r3, 1 + 7d88: 0804 bt 0x7d90 // 7d90 + RLY2_COLD_OPEN; + 7d8a: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7d8c: 3013 movi r0, 19 + 7d8e: 07ee br 0x7d6a // 7d6a + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7d90: 3b42 cmpnei r3, 2 + 7d92: 0bee bt 0x7d6e // 7d6e + RLY2_COLD_CLOSE; + 7d94: 3101 movi r1, 1 + 7d96: 07fb br 0x7d8c // 7d8c + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7d98: 8465 ld.b r3, (r4, 0x5) + 7d9a: 3b41 cmpnei r3, 1 + 7d9c: 0804 bt 0x7da4 // 7da4 + RLY3_HIGH_OPEN; + 7d9e: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7da0: 3014 movi r0, 20 + 7da2: 07e4 br 0x7d6a // 7d6a + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 7da4: 3b42 cmpnei r3, 2 + 7da6: 0be4 bt 0x7d6e // 7d6e + RLY3_HIGH_CLOSE; + 7da8: 3101 movi r1, 1 + 7daa: 07fb br 0x7da0 // 7da0 + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7dac: 8466 ld.b r3, (r4, 0x6) + 7dae: 3b41 cmpnei r3, 1 + 7db0: 0804 bt 0x7db8 // 7db8 + RLY4_MID_OPEN; + 7db2: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7db4: 3015 movi r0, 21 + 7db6: 07da br 0x7d6a // 7d6a + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7db8: 3b42 cmpnei r3, 2 + 7dba: 0bda bt 0x7d6e // 7d6e + RLY4_MID_CLOSE; + 7dbc: 3101 movi r1, 1 + 7dbe: 07fb br 0x7db4 // 7db4 + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 7dc0: 8467 ld.b r3, (r4, 0x7) + 7dc2: 3b41 cmpnei r3, 1 + 7dc4: 0804 bt 0x7dcc // 7dcc + RLY5_LOW_OPEN; + 7dc6: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7dc8: 3016 movi r0, 22 + 7dca: 07d0 br 0x7d6a // 7d6a + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7dcc: 3b42 cmpnei r3, 2 + 7dce: 0bd0 bt 0x7d6e // 7d6e + RLY5_LOW_CLOSE; + 7dd0: 3101 movi r1, 1 + 7dd2: 07fb br 0x7dc8 // 7dc8 + 7dd4: 200000c0 .long 0x200000c0 + 7dd8: 20000878 .long 0x20000878 + +Disassembly of section .text.RLY_Zero_Control: + +00007ddc : + * @brief 有过零信号控制继电器,在中断中调用 + * + * @retval None + * */ +void RLY_Zero_Control(void) +{ + 7ddc: 14d2 push r4-r5, r15 + if(c_rly.rly_control != 0x01) return; + 7dde: 1185 lrw r4, 0x20000878 // 7e70 + 7de0: 8462 ld.b r3, (r4, 0x2) + 7de2: 3b41 cmpnei r3, 1 + 7de4: 0818 bt 0x7e14 // 7e14 + 7de6: 3500 movi r5, 0 + + for (U8_T i = 0; i < RLY_MAX; i++) { + switch (i) { + 7de8: 5d03 subi r0, r5, 1 + 7dea: 3803 cmphsi r0, 4 + 7dec: 0805 bt 0x7df6 // 7df6 + 7dee: e3ffc787 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7df2: 2016 .short 0x2016 + 7df4: 342a .short 0x342a + case HOT_RLY: + if (c_rly.rly_state[HOT_RLY] == Control_ON) { + 7df6: 8463 ld.b r3, (r4, 0x3) + 7df8: 3b41 cmpnei r3, 1 + 7dfa: 080e bt 0x7e16 // 7e16 + RLY1_HOT_OPEN; + 7dfc: 3102 movi r1, 2 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + RLY1_HOT_CLOSE; + 7dfe: 3012 movi r0, 18 + break; + case LOW_RLY: + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + RLY5_LOW_OPEN; + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + RLY5_LOW_CLOSE; + 7e00: e3fff00c bsr 0x5e18 // 5e18 + for (U8_T i = 0; i < RLY_MAX; i++) { + 7e04: 2500 addi r5, 1 + 7e06: 7554 zextb r5, r5 + 7e08: 3d45 cmpnei r5, 5 + 7e0a: 0bef bt 0x7de8 // 7de8 + break; + } + + } + + TimeCall_SIO_Send2(); + 7e0c: e3ffef3a bsr 0x5c80 // 5c80 + + c_rly.rly_control = 0x00; + 7e10: 3300 movi r3, 0 + 7e12: a462 st.b r3, (r4, 0x2) + 7e14: 1492 pop r4-r5, r15 + }else if (c_rly.rly_state[HOT_RLY] == Control_OFF) { + 7e16: 3b42 cmpnei r3, 2 + 7e18: 0bf6 bt 0x7e04 // 7e04 + RLY1_HOT_CLOSE; + 7e1a: 3101 movi r1, 1 + 7e1c: 07f1 br 0x7dfe // 7dfe + if (c_rly.rly_state[COOL_RLY] == Control_ON) { + 7e1e: 8464 ld.b r3, (r4, 0x4) + 7e20: 3b41 cmpnei r3, 1 + 7e22: 0804 bt 0x7e2a // 7e2a + RLY2_COLD_OPEN; + 7e24: 3102 movi r1, 2 + RLY2_COLD_CLOSE; + 7e26: 3013 movi r0, 19 + 7e28: 07ec br 0x7e00 // 7e00 + }else if (c_rly.rly_state[COOL_RLY] == Control_OFF) { + 7e2a: 3b42 cmpnei r3, 2 + 7e2c: 0bec bt 0x7e04 // 7e04 + RLY2_COLD_CLOSE; + 7e2e: 3101 movi r1, 1 + 7e30: 07fb br 0x7e26 // 7e26 + if (c_rly.rly_state[HIGH_RLY] == Control_ON) { + 7e32: 8465 ld.b r3, (r4, 0x5) + 7e34: 3b41 cmpnei r3, 1 + 7e36: 0804 bt 0x7e3e // 7e3e + RLY3_HIGH_OPEN; + 7e38: 3102 movi r1, 2 + RLY3_HIGH_CLOSE; + 7e3a: 3014 movi r0, 20 + 7e3c: 07e2 br 0x7e00 // 7e00 + }else if (c_rly.rly_state[HIGH_RLY] == Control_OFF) { + 7e3e: 3b42 cmpnei r3, 2 + 7e40: 0be2 bt 0x7e04 // 7e04 + RLY3_HIGH_CLOSE; + 7e42: 3101 movi r1, 1 + 7e44: 07fb br 0x7e3a // 7e3a + if (c_rly.rly_state[MAD_RLY] == Control_ON) { + 7e46: 8466 ld.b r3, (r4, 0x6) + 7e48: 3b41 cmpnei r3, 1 + 7e4a: 0804 bt 0x7e52 // 7e52 + RLY4_MID_OPEN; + 7e4c: 3102 movi r1, 2 + RLY4_MID_CLOSE; + 7e4e: 3015 movi r0, 21 + 7e50: 07d8 br 0x7e00 // 7e00 + }else if (c_rly.rly_state[MAD_RLY] == Control_OFF) { + 7e52: 3b42 cmpnei r3, 2 + 7e54: 0bd8 bt 0x7e04 // 7e04 + RLY4_MID_CLOSE; + 7e56: 3101 movi r1, 1 + 7e58: 07fb br 0x7e4e // 7e4e + if (c_rly.rly_state[LOW_RLY] == Control_ON) { + 7e5a: 8467 ld.b r3, (r4, 0x7) + 7e5c: 3b41 cmpnei r3, 1 + 7e5e: 0804 bt 0x7e66 // 7e66 + RLY5_LOW_OPEN; + 7e60: 3102 movi r1, 2 + RLY5_LOW_CLOSE; + 7e62: 3016 movi r0, 22 + 7e64: 07ce br 0x7e00 // 7e00 + }else if (c_rly.rly_state[LOW_RLY] == Control_OFF) { + 7e66: 3b42 cmpnei r3, 2 + 7e68: 0bce bt 0x7e04 // 7e04 + RLY5_LOW_CLOSE; + 7e6a: 3101 movi r1, 1 + 7e6c: 07fb br 0x7e62 // 7e62 + 7e6e: 0000 bkpt + 7e70: 20000878 .long 0x20000878 + +Disassembly of section .text.NetCRC16_Check: + +00007e74 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + 7e74: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 7e76: 3902 cmphsi r1, 3 + 7e78: 0c1f bf 0x7eb6 // 7eb6 + U16_T alen = len-2; //CRC16??????? + 7e7a: 2901 subi r1, 2 + 7e7c: 7445 zexth r1, r1 + 7e7e: 6d43 mov r5, r0 + 7e80: 3200 movi r2, 0 + 7e82: 106e lrw r3, 0xffff // 7eb8 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 7e8c: 6d8f mov r6, r3 + 7e8e: 699c and r6, r7 + 7e90: 3e40 cmpnei r6, 0 + 7e92: 4b61 lsri r3, r3, 1 + 7e94: 0c04 bf 0x7e9c // 7e9c + 7e96: 10ca lrw r6, 0xffffa001 // 7ebc + 7e98: 6cd9 xor r3, r6 + 7e9a: 74cd zexth r3, r3 + 7e9c: 2c00 subi r4, 1 + 7e9e: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 7ea0: 3c40 cmpnei r4, 0 + 7ea2: 0bf5 bt 0x7e8c // 7e8c + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 7eae: 6040 addu r1, r0 + 7eb0: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 7eb2: 4b68 lsri r3, r3, 8 + 7eb4: a161 st.b r3, (r1, 0x1) +} + 7eb6: 1484 pop r4-r7 + 7eb8: 0000ffff .long 0x0000ffff + 7ebc: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00007ec0 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 7ec0: 14c3 push r4-r6 + 7ec2: 6cc3 mov r3, r0 + 7ec4: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 7ec6: 10ac lrw r5, 0xffffa001 // 7ef4 + xda = 0xFFFF ; + 7ec8: 100c lrw r0, 0xffff // 7ef8 + for (i = 0; i < len; i++) + 7eca: 644e cmpne r3, r1 + 7ecc: 0802 bt 0x7ed0 // 7ed0 + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"GetCRC16:%04X",xda); + + return xda; +} + 7ece: 1483 pop r4-r6 + xda ^= aStr[i] ; + 7ed0: 8340 ld.b r2, (r3, 0x0) + 7ed2: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 7ed4: 3601 movi r6, 1 + xda ^= aStr[i] ; + 7ed6: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 7ed8: 6d03 mov r4, r0 + 7eda: 6918 and r4, r6 + 7edc: 3c40 cmpnei r4, 0 + 7ede: 4801 lsri r0, r0, 1 + 7ee0: 0c03 bf 0x7ee6 // 7ee6 + 7ee2: 6c15 xor r0, r5 + 7ee4: 7401 zexth r0, r0 + 7ee6: 2a00 subi r2, 1 + 7ee8: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 7eea: 3a40 cmpnei r2, 0 + 7eec: 0bf6 bt 0x7ed8 // 7ed8 + 7eee: 2300 addi r3, 1 + 7ef0: 07ed br 0x7eca // 7eca + 7ef2: 0000 bkpt + 7ef4: ffffa001 .long 0xffffa001 + 7ef8: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00007efc : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 7efc: 6cc3 mov r3, r0 + 7efe: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 7f00: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 7f02: 644e cmpne r3, r1 + 7f04: 0802 bt 0x7f08 // 7f08 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 7f06: 783c jmp r15 + sor_data = sor_data+Data[i]; + 7f08: 8340 ld.b r2, (r3, 0x0) + 7f0a: 6008 addu r0, r2 + 7f0c: 7400 zextb r0, r0 + 7f0e: 2300 addi r3, 1 + 7f10: 07f9 br 0x7f02 // 7f02 + +Disassembly of section .text.Rs485_ASend: + +00007f14 : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 7f14: 14d1 push r4, r15 + 7f16: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7f18: 117f lrw r3, 0x20000524 // 8014 + 7f1a: 8347 ld.b r2, (r3, 0x7) + 7f1c: 3a42 cmpnei r2, 2 +{ + 7f1e: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 7f20: 0870 bt 0x8000 // 8000 + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 7f22: 3255 movi r2, 85 + 7f24: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + 7f28: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + 7f2c: 3200 movi r2, 0 + 7f2e: 2a11 subi r2, 18 + 7f30: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + 7f34: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + 7f36: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + 7f38: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + 7f3c: 3203 movi r2, 3 + 7f3e: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 7f42: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7f46: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7f48: 1154 lrw r2, 0x2000083c // 8018 + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 7f4a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 7f4e: 8262 ld.b r3, (r2, 0x2) + 7f50: 4b27 lsri r1, r3, 7 + 7f52: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 7f56: 3100 movi r1, 0 + 7f58: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 7f5c: 3170 movi r1, 112 + 7f5e: 68c4 and r3, r1 + 7f60: 3b40 cmpnei r3, 0 + 7f62: 081a bt 0x7f96 // 7f96 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 7f64: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7f66: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7f6a: 8261 ld.b r3, (r2, 0x1) + 7f6c: 3b40 cmpnei r3, 0 + 7f6e: 0802 bt 0x7f72 // 7f72 + 7f70: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f72: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 7f74: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f78: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7f7a: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f7c: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 7f7e: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f82: 3304 movi r3, 4 + 7f84: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + 7f86: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 7f88: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 7f8c: 0842 bt 0x8010 // 8010 + 7f8e: e3ffc6b7 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 7f92: 390c .short 0x390c + 7f94: 3d3b .short 0x3d3b + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 7f96: 3120 movi r1, 32 + 7f98: 644e cmpne r3, r1 + 7f9a: 0803 bt 0x7fa0 // 7fa0 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 7f9c: 3302 movi r3, 2 + 7f9e: 07e4 br 0x7f66 // 7f66 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 7fa0: 3140 movi r1, 64 + 7fa2: 644e cmpne r3, r1 + 7fa4: 0be3 bt 0x7f6a // 7f6a + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 7fa6: 3303 movi r3, 3 + 7fa8: 07df br 0x7f66 // 7f66 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 7faa: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fac: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + 7fae: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fb2: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 7fb4: 3300 movi r3, 0 + 7fb6: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 7fba: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fbe: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 7fc0: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 7fc4: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 7fc8: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7fcc: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fce: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7fd0: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 7fd2: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 7fd6: 0802 bt 0x7fda // 7fda + 7fd8: 3320 movi r3, 32 + 7fda: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 7fde: 3300 movi r3, 0 + 7fe0: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 7fe4: 1b01 addi r3, r14, 4 + 7fe6: 5b0a addi r0, r3, 3 + 7fe8: 3115 movi r1, 21 + 7fea: e3ffff45 bsr 0x7e74 // 7e74 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 7fee: 3396 movi r3, 150 + 7ff0: 4361 lsli r3, r3, 1 + 7ff2: b860 st.w r3, (r14, 0x0) + 7ff4: 3201 movi r2, 1 + 7ff6: 6cd3 mov r3, r4 + 7ff8: 3118 movi r1, 24 + 7ffa: 1801 addi r0, r14, 4 + 7ffc: e3ffdfde bsr 0x3fb8 // 3fb8 + +} + 8000: 1407 addi r14, r14, 28 + 8002: 1491 pop r4, r15 + SendData[13] = 0x02; + 8004: 3302 movi r3, 2 + 8006: 07d3 br 0x7fac // 7fac + SendData[13] = 0x01; + 8008: 3301 movi r3, 1 + 800a: 07d1 br 0x7fac // 7fac + SendData[13] = 0x00; // + 800c: 3300 movi r3, 0 + 800e: 07cf br 0x7fac // 7fac + SendData[13] = 0x04; // + 8010: 3304 movi r3, 4 + 8012: 07cd br 0x7fac // 7fac + 8014: 20000524 .long 0x20000524 + 8018: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCycleSend: + +0000801c : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 801c: 14d0 push r15 + 801e: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 8020: 3355 movi r3, 85 + 8022: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 8026: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 802a: 3300 movi r3, 0 + 802c: 2b11 subi r3, 18 + 802e: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 8032: 3315 movi r3, 21 + 8034: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 8038: 3303 movi r3, 3 + 803a: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 803e: 1177 lrw r3, 0x20000524 // 8118 + 8040: 8360 ld.b r3, (r3, 0x0) + 8042: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 8046: 3300 movi r3, 0 + 8048: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 804c: 1174 lrw r3, 0x2000083c // 811c + 804e: 8342 ld.b r2, (r3, 0x2) + 8050: 4a27 lsri r1, r2, 7 + 8052: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 8056: 3100 movi r1, 0 + 8058: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 805c: 3170 movi r1, 112 + 805e: 6884 and r2, r1 + 8060: 3a40 cmpnei r2, 0 + 8062: 081a bt 0x8096 // 8096 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 8064: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 8066: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 806a: 8341 ld.b r2, (r3, 0x1) + 806c: 3a40 cmpnei r2, 0 + 806e: 0802 bt 0x8072 // 8072 + 8070: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8072: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 8074: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8078: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 807a: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 807c: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 807e: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8082: 3204 movi r2, 4 + 8084: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + 8086: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 8088: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 808c: 0843 bt 0x8112 // 8112 + 808e: e3ffc637 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8092: 3a0c .short 0x3a0c + 8094: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 8096: 3120 movi r1, 32 + 8098: 644a cmpne r2, r1 + 809a: 0803 bt 0x80a0 // 80a0 + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 809c: 3202 movi r2, 2 + 809e: 07e4 br 0x8066 // 8066 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 80a0: 3140 movi r1, 64 + 80a2: 644a cmpne r2, r1 + 80a4: 0be3 bt 0x806a // 806a + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 80a6: 3203 movi r2, 3 + 80a8: 07df br 0x8066 // 8066 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 80aa: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + 80ac: dc4e0011 st.b r2, (r14, 0x11) + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 80b0: 3200 movi r2, 0 + 80b2: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 80b6: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 80ba: 8342 ld.b r2, (r3, 0x2) + 80bc: 425f lsli r2, r2, 31 + 80be: 4a5f lsri r2, r2, 31 + 80c0: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 80c2: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 80c4: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 80c8: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 80ca: 3200 movi r2, 0 + 80cc: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 80d0: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 80d4: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 80d8: 0802 bt 0x80dc // 80dc + 80da: 3320 movi r3, 32 + 80dc: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 80e0: 3300 movi r3, 0 + 80e2: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 80e6: 1b01 addi r3, r14, 4 + 80e8: 5b0a addi r0, r3, 3 + 80ea: 3115 movi r1, 21 + 80ec: e3fffec4 bsr 0x7e74 // 7e74 + + //MCU485_SendData(SendData, 24); + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 80f0: 3314 movi r3, 20 + 80f2: b860 st.w r3, (r14, 0x0) + 80f4: 3396 movi r3, 150 + 80f6: 4361 lsli r3, r3, 1 + 80f8: 3201 movi r2, 1 + 80fa: 3118 movi r1, 24 + 80fc: 1801 addi r0, r14, 4 + 80fe: e3ffdf5d bsr 0x3fb8 // 3fb8 + +} + 8102: 1407 addi r14, r14, 28 + 8104: 1490 pop r15 + SendData[13] = 0x02; + 8106: 3202 movi r2, 2 + 8108: 07d2 br 0x80ac // 80ac + SendData[13] = 0x01; + 810a: 3201 movi r2, 1 + 810c: 07d0 br 0x80ac // 80ac + SendData[13] = 0x00; // + 810e: 3200 movi r2, 0 + 8110: 07ce br 0x80ac // 80ac + SendData[13] = 0x04; // + 8112: 3204 movi r2, 4 + 8114: 07cc br 0x80ac // 80ac + 8116: 0000 bkpt + 8118: 20000524 .long 0x20000524 + 811c: 2000083c .long 0x2000083c + +Disassembly of section .text.Rs485AskCtrlSend: + +00008120 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 8120: 14d0 push r15 + 8122: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 8124: 3355 movi r3, 85 + 8126: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 812a: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 812e: 3300 movi r3, 0 + 8130: 2b11 subi r3, 18 + 8132: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 8136: 3307 movi r3, 7 + 8138: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 813c: 3303 movi r3, 3 + 813e: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 8142: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 8144: 106d lrw r3, 0x20000524 // 8178 + 8146: 8360 ld.b r3, (r3, 0x0) + 8148: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 814c: 8066 ld.b r3, (r0, 0x6) + 814e: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 8152: 8067 ld.b r3, (r0, 0x7) + 8154: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 8158: 1b01 addi r3, r14, 4 + 815a: 5b0a addi r0, r3, 3 + 815c: e3fffe8c bsr 0x7e74 // 7e74 + +// MCU485_SendData(SendData, 10); + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 8160: 3314 movi r3, 20 + 8162: b860 st.w r3, (r14, 0x0) + 8164: 3396 movi r3, 150 + 8166: 4361 lsli r3, r3, 1 + 8168: 3201 movi r2, 1 + 816a: 310a movi r1, 10 + 816c: 1801 addi r0, r14, 4 + 816e: e3ffdf25 bsr 0x3fb8 // 3fb8 + +} + 8172: 1404 addi r14, r14, 16 + 8174: 1490 pop r15 + 8176: 0000 bkpt + 8178: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485AskReadSend: + +0000817c : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 817c: 14d0 push r15 + 817e: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 8180: 3355 movi r3, 85 + 8182: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 8186: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 818a: 3300 movi r3, 0 + 818c: 2b11 subi r3, 18 + 818e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 8192: 3309 movi r3, 9 + 8194: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 8198: 3303 movi r3, 3 + 819a: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 819e: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 81a0: 1070 lrw r3, 0x20000524 // 81e0 + 81a2: 8340 ld.b r2, (r3, 0x0) + 81a4: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 81a8: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + 81aa: 8046 ld.b r2, (r0, 0x6) + 81ac: dc4e000a st.b r2, (r14, 0xa) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 81b0: dc6e000d st.b r3, (r14, 0xd) + SendData[7] = Project_FW_Version; + 81b4: 3205 movi r2, 5 + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 81b6: 1b01 addi r3, r14, 4 + SendData[7] = Project_FW_Version; + 81b8: dc4e000b st.b r2, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 81bc: 5b0a addi r0, r3, 3 + SendData[8] = Project_HW_Version; + 81be: 3202 movi r2, 2 + 81c0: dc4e000c st.b r2, (r14, 0xc) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 81c4: e3fffe58 bsr 0x7e74 // 7e74 + +// MCU485_SendData(SendData, 12); + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 81c8: 3314 movi r3, 20 + 81ca: b860 st.w r3, (r14, 0x0) + 81cc: 3396 movi r3, 150 + 81ce: 4361 lsli r3, r3, 1 + 81d0: 3201 movi r2, 1 + 81d2: 310c movi r1, 12 + 81d4: 1801 addi r0, r14, 4 + 81d6: e3ffdef1 bsr 0x3fb8 // 3fb8 +} + 81da: 1404 addi r14, r14, 16 + 81dc: 1490 pop r15 + 81de: 0000 bkpt + 81e0: 20000524 .long 0x20000524 + +Disassembly of section .text.Rs485_DevPort_ACK: + +000081e4 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 81e4: 14d0 push r15 + 81e6: 1421 subi r14, r14, 4 + +// MCU485_SendData(Recdata, Lens); + + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 81e8: 3314 movi r3, 20 + 81ea: b860 st.w r3, (r14, 0x0) + 81ec: 3396 movi r3, 150 + 81ee: 7445 zexth r1, r1 + 81f0: 4361 lsli r3, r3, 1 + 81f2: 3201 movi r2, 1 + 81f4: e3ffdee2 bsr 0x3fb8 // 3fb8 +} + 81f8: 1401 addi r14, r14, 4 + 81fa: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +000081fc : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 81fc: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 81fe: 3300 movi r3, 0 + 8200: 2b08 subi r3, 9 + 8202: 60c4 addu r3, r1 + 8204: 74cd zexth r3, r3 + 8206: 3b01 cmphsi r3, 2 +{ + 8208: 6d03 mov r4, r0 + 820a: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 820c: 08c8 bt 0x839c // 839c + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 820e: 8060 ld.b r3, (r0, 0x0) + 8210: 3255 movi r2, 85 + 8212: 648e cmpne r3, r2 + 8214: 08c0 bt 0x8394 // 8394 + 8216: 8041 ld.b r2, (r0, 0x1) + 8218: 64ca cmpne r2, r3 + 821a: 08bd bt 0x8394 // 8394 + 821c: 8042 ld.b r2, (r0, 0x2) + 821e: 33ee movi r3, 238 + 8220: 64ca cmpne r2, r3 + 8222: 08b9 bt 0x8394 // 8394 + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + 8224: 8023 ld.b r1, (r0, 0x3) + 8226: 596a addi r3, r1, 3 + 8228: 654e cmpne r3, r5 + 822a: 08b7 bt 0x8398 // 8398 + 822c: 8004 ld.b r0, (r0, 0x4) + 822e: 3843 cmpnei r0, 3 + 8230: 08b4 bt 0x8398 // 8398 + 8232: 12dc lrw r6, 0x20000524 // 83a0 + 8234: 8640 ld.b r2, (r6, 0x0) + 8236: 8465 ld.b r3, (r4, 0x5) + 8238: 64ca cmpne r2, r3 + 823a: 08ae bt 0x8396 // 8396 + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 823c: 2901 subi r1, 2 + 823e: 7445 zexth r1, r1 + 8240: 5c0a addi r0, r4, 3 + 8242: e3fffe3f bsr 0x7ec0 // 7ec0 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 8246: 5c54 addu r2, r4, r5 + 8248: 5a63 subi r3, r2, 1 + 824a: 8360 ld.b r3, (r3, 0x0) + 824c: 2a01 subi r2, 2 + 824e: 4368 lsli r3, r3, 8 + 8250: 8240 ld.b r2, (r2, 0x0) + 8252: 60c8 addu r3, r2 + 8254: 64c2 cmpne r0, r3 + 8256: 08a3 bt 0x839c // 839c + { + switch(RecData[6]) + 8258: 8406 ld.b r0, (r4, 0x6) + 825a: 2800 subi r0, 1 + 825c: 3811 cmphsi r0, 18 + 825e: 0811 bt 0x8280 // 8280 + 8260: e3ffc54e bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8264: 1e1e1e1e .long 0x1e1e1e1e + 8268: 0e0e0e0e .long 0x0e0e0e0e + 826c: 0e0e090e .long 0x0e0e090e + 8270: 220e0e0e .long 0x220e0e0e + 8274: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 8276: 8667 ld.b r3, (r6, 0x7) + 8278: 3b42 cmpnei r3, 2 + 827a: 080c bt 0x8292 // 8292 + { + Clear_SendFlag(); + 827c: e3ffded0 bsr 0x401c // 401c + } + + } + break; + } + switch(RecData[6]) + 8280: 8406 ld.b r0, (r4, 0x6) + 8282: 2800 subi r0, 1 + 8284: 3803 cmphsi r0, 4 + 8286: 0808 bt 0x8296 // 8296 + 8288: 8467 ld.b r3, (r4, 0x7) + 828a: e3ffc539 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 828e: 4836 .short 0x4836 + 8290: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + 8292: 3b41 cmpnei r3, 1 + 8294: 0c03 bf 0x829a // 829a + break; + } + break; + } + + return ret; + 8296: 3000 movi r0, 0 + 8298: 047f br 0x8396 // 8396 + Rs485AskCycleSend(); + 829a: e3fffec1 bsr 0x801c // 801c + 829e: 07f1 br 0x8280 // 8280 + Rs485AskCtrlSend(RecData); + 82a0: 6c13 mov r0, r4 + 82a2: e3ffff3f bsr 0x8120 // 8120 + 82a6: 07ed br 0x8280 // 8280 + Rs485AskReadSend(RecData); //版本号查询 + 82a8: 6c13 mov r0, r4 + 82aa: e3ffff69 bsr 0x817c // 817c + 82ae: 07e9 br 0x8280 // 8280 + Rs485AskCtrlSend(RecData); + 82b0: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 82b2: 11bd lrw r5, 0x2000083c // 83a4 + Rs485AskCtrlSend(RecData); + 82b4: e3ffff36 bsr 0x8120 // 8120 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 82b8: 855a ld.b r2, (r5, 0x1a) + 82ba: 113c lrw r1, 0xacd2 // 83a8 + 82bc: 3000 movi r0, 0 + 82be: e3ffdf25 bsr 0x4108 // 4108 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 82c2: 8467 ld.b r3, (r4, 0x7) + 82c4: 855a ld.b r2, (r5, 0x1a) + 82c6: 64ca cmpne r2, r3 + 82c8: 0fdc bf 0x8280 // 8280 + if(TempCtrl.CardEn == 0x00) + 82ca: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 82cc: a57a st.b r3, (r5, 0x1a) + if(TempCtrl.CardEn == 0x00) + 82ce: 0bd9 bt 0x8280 // 8280 + TempCtrl.CardState = 0x01; + 82d0: 3301 movi r3, 1 + 82d2: a578 st.b r3, (r5, 0x18) + 82d4: 07d6 br 0x8280 // 8280 + if(RecData[7] != g_eeprom.dev_port) + 82d6: 8467 ld.b r3, (r4, 0x7) + 82d8: 8647 ld.b r2, (r6, 0x7) + 82da: 64ca cmpne r2, r3 + 82dc: 0fdd bf 0x8296 // 8296 + EEPROM_WriteParaInfo(&g_eeprom); + 82de: 1111 lrw r0, 0x20000524 // 83a0 + g_eeprom.dev_port = RecData[7]; + 82e0: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 82e2: e3ffe42b bsr 0x4b38 // 4b38 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 82e6: 110f lrw r0, 0x20000524 // 83a0 + 82e8: e3ffe3ee bsr 0x4ac4 // 4ac4 + if(rev_val == 0x00){ + 82ec: 3840 cmpnei r0, 0 + 82ee: 0bc9 bt 0x8280 // 8280 + Rs485_DevPort_ACK(RecData,Len); + 82f0: 7454 zextb r1, r5 + 82f2: 6c13 mov r0, r4 + 82f4: e3ffff78 bsr 0x81e4 // 81e4 + 82f8: 07c4 br 0x8280 // 8280 + switch(RecData[7]) + 82fa: 74cc zextb r3, r3 + 82fc: 3b40 cmpnei r3, 0 + 82fe: 0c0a bf 0x8312 // 8312 + 8300: 3b41 cmpnei r3, 1 + 8302: 0bca bt 0x8296 // 8296 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 8304: 1128 lrw r1, 0x2000083c // 83a4 + 8306: 3200 movi r2, 0 + 8308: 8162 ld.b r3, (r1, 0x2) + 830a: 2a7f subi r2, 128 + 830c: 6cc8 or r3, r2 + 830e: a162 st.b r3, (r1, 0x2) + 8310: 07c3 br 0x8296 // 8296 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 8312: 1145 lrw r2, 0x2000083c // 83a4 + 8314: 8262 ld.b r3, (r2, 0x2) + 8316: 317f movi r1, 127 + 8318: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 831a: a262 st.b r3, (r2, 0x2) + 831c: 07bd br 0x8296 // 8296 + switch(RecData[7]) // + 831e: 74cc zextb r3, r3 + 8320: 3b42 cmpnei r3, 2 + 8322: 0c0a bf 0x8336 // 8336 + 8324: 3b43 cmpnei r3, 3 + 8326: 0c0e bf 0x8342 // 8342 + 8328: 3b41 cmpnei r3, 1 + 832a: 0bb6 bt 0x8296 // 8296 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 832c: 105e lrw r2, 0x2000083c // 83a4 + 832e: 8262 ld.b r3, (r2, 0x2) + 8330: 3170 movi r1, 112 + 8332: 68c5 andn r3, r1 + 8334: 07f3 br 0x831a // 831a + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 8336: 105c lrw r2, 0x2000083c // 83a4 + 8338: 8262 ld.b r3, (r2, 0x2) + 833a: 3170 movi r1, 112 + 833c: 68c5 andn r3, r1 + 833e: 3ba5 bseti r3, 5 + 8340: 07ed br 0x831a // 831a + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 8342: 1059 lrw r2, 0x2000083c // 83a4 + 8344: 8262 ld.b r3, (r2, 0x2) + 8346: 3170 movi r1, 112 + 8348: 68c5 andn r3, r1 + 834a: 3ba6 bseti r3, 6 + 834c: 07e7 br 0x831a // 831a + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 834e: 3200 movi r2, 0 + 8350: 74cc zextb r3, r3 + 8352: 2a0f subi r2, 16 + 8354: 608c addu r2, r3 + 8356: 7488 zextb r2, r2 + 8358: 3a0f cmphsi r2, 16 + 835a: 0804 bt 0x8362 // 8362 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 835c: 1052 lrw r2, 0x2000083c // 83a4 + 835e: a261 st.b r3, (r2, 0x1) + 8360: 079b br 0x8296 // 8296 + }else if(RecData[7] == TEM_MAX_SET){ + 8362: 3220 movi r2, 32 + 8364: 648e cmpne r3, r2 + 8366: 0b98 bt 0x8296 // 8296 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 8368: 106f lrw r3, 0x2000083c // 83a4 + 836a: a341 st.b r2, (r3, 0x1) + 836c: 0795 br 0x8296 // 8296 + switch(RecData[7]) //风速 + 836e: 740c zextb r0, r3 + 8370: 106d lrw r3, 0x2000083c // 83a4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8372: 8342 ld.b r2, (r3, 0x2) + 8374: 310e movi r1, 14 + switch(RecData[7]) //风速 + 8376: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8378: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 837a: 0807 bt 0x8388 // 8388 + 837c: e3ffc4c0 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 8380: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + 8384: 3aa1 bseti r2, 1 + 8386: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 8388: a342 st.b r2, (r3, 0x2) + 838a: 0786 br 0x8296 // 8296 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 838c: 3aa2 bseti r2, 2 + 838e: 07fd br 0x8388 // 8388 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 8390: 3aa1 bseti r2, 1 + 8392: 07fb br 0x8388 // 8388 + return 0x02; + 8394: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 8396: 1493 pop r4-r6, r15 + return 0x03; + 8398: 3003 movi r0, 3 + 839a: 07fe br 0x8396 // 8396 + return 0x01; + 839c: 3001 movi r0, 1 + 839e: 07fc br 0x8396 // 8396 + 83a0: 20000524 .long 0x20000524 + 83a4: 2000083c .long 0x2000083c + 83a8: 0000acd2 .long 0x0000acd2 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000083ac : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 83ac: 14d2 push r4-r5, r15 + 83ae: 6d43 mov r5, r0 + 83b0: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 83b2: e3ffff25 bsr 0x81fc // 81fc + 83b6: 3840 cmpnei r0, 0 + 83b8: 0803 bt 0x83be // 83be + { + return ret = 1; + } + } + + return ret; + 83ba: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 83bc: 0404 br 0x83c4 // 83c4 + if (Len < 5){ //长度校验 + 83be: 3c04 cmphsi r4, 5 + 83c0: 0803 bt 0x83c6 // 83c6 + return ret = 1; + 83c2: 3001 movi r0, 1 + 83c4: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 83c6: 8540 ld.b r2, (r5, 0x0) + 83c8: 33ff movi r3, 255 + 83ca: 64ca cmpne r2, r3 + 83cc: 0c04 bf 0x83d4 // 83d4 + 83ce: 8561 ld.b r3, (r5, 0x1) + 83d0: 3b48 cmpnei r3, 8 + 83d2: 0bf8 bt 0x83c2 // 83c2 + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 83d4: 1125 lrw r1, 0xace1 // 8468 + 83d6: 3000 movi r0, 0 + 83d8: e3ffde98 bsr 0x4108 // 4108 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 83dc: 3c45 cmpnei r4, 5 + 83de: 0814 bt 0x8406 // 8406 + 83e0: 3104 movi r1, 4 + 83e2: 6c17 mov r0, r5 + 83e4: e3fffd8c bsr 0x7efc // 7efc + 83e8: 8564 ld.b r3, (r5, 0x4) + 83ea: 640e cmpne r3, r0 + 83ec: 0beb bt 0x83c2 // 83c2 + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 83ee: 1160 lrw r3, 0x2000083c // 846c + 83f0: 8542 ld.b r2, (r5, 0x2) + 83f2: 8338 ld.b r1, (r3, 0x18) + 83f4: 6486 cmpne r1, r2 + 83f6: 0fe2 bf 0x83ba // 83ba + 83f8: 833a ld.b r1, (r3, 0x1a) + 83fa: 3941 cmpnei r1, 1 + 83fc: 0bdf bt 0x83ba // 83ba + TempCtrl.CardState = RecData[2]; + 83fe: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 8400: 3201 movi r2, 1 + 8402: a359 st.b r2, (r3, 0x19) + 8404: 07db br 0x83ba // 83ba + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 8406: 3c09 cmphsi r4, 10 + 8408: 0fdd bf 0x83c2 // 83c2 + 840a: 5c27 subi r1, r4, 2 + 840c: 7445 zexth r1, r1 + 840e: 6114 addu r4, r5 + 8410: 6c17 mov r0, r5 + 8412: e3fffd57 bsr 0x7ec0 // 7ec0 + 8416: 5c63 subi r3, r4, 1 + 8418: 8360 ld.b r3, (r3, 0x0) + 841a: 2c01 subi r4, 2 + 841c: 4368 lsli r3, r3, 8 + 841e: 8440 ld.b r2, (r4, 0x0) + 8420: 60c8 addu r3, r2 + 8422: 64c2 cmpne r0, r3 + 8424: 0bcf bt 0x83c2 // 83c2 + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 8426: 1072 lrw r3, 0x2000083c // 846c + 8428: 8543 ld.b r2, (r5, 0x3) + 842a: 8338 ld.b r1, (r3, 0x18) + 842c: 6486 cmpne r1, r2 + 842e: 0c07 bf 0x843c // 843c + 8430: 833a ld.b r1, (r3, 0x1a) + 8432: 3941 cmpnei r1, 1 + 8434: 0804 bt 0x843c // 843c + TempCtrl.CardState = RecData[3]; + 8436: a358 st.b r2, (r3, 0x18) + TempCtrl.CardFlag = 0x01; + 8438: 3201 movi r2, 1 + 843a: a359 st.b r2, (r3, 0x19) + if(TempCtrl.SceneNo != RecData[7]) + 843c: 8547 ld.b r2, (r5, 0x7) + 843e: 833b ld.b r1, (r3, 0x1b) + 8440: 6486 cmpne r1, r2 + 8442: 0c0d bf 0x845c // 845c + TempCtrl.SceneNo = RecData[7]; + 8444: a35b st.b r2, (r3, 0x1b) + TempCtrl.SceneNoTick = SysTick_1ms; + 8446: 104b lrw r2, 0x200000c0 // 8470 + 8448: 9240 ld.w r2, (r2, 0x0) + 844a: 4a28 lsri r1, r2, 8 + 844c: a354 st.b r2, (r3, 0x14) + 844e: a335 st.b r1, (r3, 0x15) + 8450: 4a30 lsri r1, r2, 16 + 8452: 4a58 lsri r2, r2, 24 + 8454: a357 st.b r2, (r3, 0x17) + TempCtrl.SceneFlag = 0x01; + 8456: 3201 movi r2, 1 + TempCtrl.SceneNoTick = SysTick_1ms; + 8458: a336 st.b r1, (r3, 0x16) + TempCtrl.SceneFlag = 0x01; + 845a: a35c st.b r2, (r3, 0x1c) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 845c: 835b ld.b r2, (r3, 0x1b) + 845e: 1026 lrw r1, 0xacf3 // 8474 + 8460: 3000 movi r0, 0 + 8462: e3ffde53 bsr 0x4108 // 4108 + 8466: 07aa br 0x83ba // 83ba + 8468: 0000ace1 .long 0x0000ace1 + 846c: 2000083c .long 0x2000083c + 8470: 200000c0 .long 0x200000c0 + 8474: 0000acf3 .long 0x0000acf3 + +Disassembly of section .text.TK_ConfigInterrupt_CMD.part.0: + +00008478 : + 8478: 1063 lrw r3, 0x20000058 // 8484 + 847a: 9340 ld.w r2, (r3, 0x0) + 847c: 926b ld.w r3, (r2, 0x2c) + 847e: 6c0c or r0, r3 + 8480: b20b st.w r0, (r2, 0x2c) + 8482: 783c jmp r15 + 8484: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_clk_config: + +00008488 : + 8488: 14c1 push r4 + 848a: 1069 lrw r3, 0x20000058 // 84ac + 848c: 3840 cmpnei r0, 0 + 848e: 9380 ld.w r4, (r3, 0x0) + 8490: 9400 ld.w r0, (r4, 0x0) + 8492: 0c0b bf 0x84a8 // 84a8 + 8494: 38a0 bseti r0, 0 + 8496: b400 st.w r0, (r4, 0x0) + 8498: 9360 ld.w r3, (r3, 0x0) + 849a: 4248 lsli r2, r2, 8 + 849c: 4122 lsli r1, r1, 2 + 849e: 9300 ld.w r0, (r3, 0x0) + 84a0: 6c48 or r1, r2 + 84a2: 6c40 or r1, r0 + 84a4: b320 st.w r1, (r3, 0x0) + 84a6: 1481 pop r4 + 84a8: 3880 bclri r0, 0 + 84aa: 07f6 br 0x8496 // 8496 + 84ac: 20000058 .long 0x20000058 + +Disassembly of section .text.TK_con0_config: + +000084b0 : + 84b0: 14c4 push r4-r7 + 84b2: 1429 subi r14, r14, 36 + 84b4: b840 st.w r2, (r14, 0x0) + 84b6: 984d ld.w r2, (r14, 0x34) + 84b8: b841 st.w r2, (r14, 0x4) + 84ba: 984e ld.w r2, (r14, 0x38) + 84bc: b842 st.w r2, (r14, 0x8) + 84be: 984f ld.w r2, (r14, 0x3c) + 84c0: b843 st.w r2, (r14, 0xc) + 84c2: 9850 ld.w r2, (r14, 0x40) + 84c4: 9895 ld.w r4, (r14, 0x54) + 84c6: b844 st.w r2, (r14, 0x10) + 84c8: 9853 ld.w r2, (r14, 0x4c) + 84ca: b845 st.w r2, (r14, 0x14) + 84cc: b887 st.w r4, (r14, 0x1c) + 84ce: 9854 ld.w r2, (r14, 0x50) + 84d0: 1c11 addi r4, r14, 68 + 84d2: b846 st.w r2, (r14, 0x18) + 84d4: 8c80 ld.h r4, (r4, 0x0) + 84d6: 1a15 addi r2, r14, 84 + 84d8: 1d12 addi r5, r14, 72 + 84da: 8244 ld.b r2, (r2, 0x4) + 84dc: 3c40 cmpnei r4, 0 + 84de: 8dc0 ld.h r6, (r5, 0x0) + 84e0: b848 st.w r2, (r14, 0x20) + 84e2: 0813 bt 0x8508 // 8508 + 84e4: 105f lrw r2, 0x2000004c // 8560 + 84e6: 35f0 movi r5, 240 + 84e8: 92e0 ld.w r7, (r2, 0x0) + 84ea: 9740 ld.w r2, (r7, 0x0) + 84ec: 45a4 lsli r5, r5, 4 + 84ee: 6895 andn r2, r5 + 84f0: 3aab bseti r2, 11 + 84f2: b740 st.w r2, (r7, 0x0) + 84f4: 3502 movi r5, 2 + 84f6: 105c lrw r2, 0x20000050 // 8564 + 84f8: 3e41 cmpnei r6, 1 + 84fa: 9240 ld.w r2, (r2, 0x0) + 84fc: b2a0 st.w r5, (r2, 0x0) + 84fe: 0828 bt 0x854e // 854e + 8500: 92a4 ld.w r5, (r2, 0x10) + 8502: 3db8 bseti r5, 24 + 8504: 3db9 bseti r5, 25 + 8506: b2a4 st.w r5, (r2, 0x10) + 8508: 1058 lrw r2, 0x20000058 // 8568 + 850a: 448d lsli r4, r4, 13 + 850c: 92a0 ld.w r5, (r2, 0x0) + 850e: 9541 ld.w r2, (r5, 0x4) + 8510: 3200 movi r2, 0 + 8512: b541 st.w r2, (r5, 0x4) + 8514: 9541 ld.w r2, (r5, 0x4) + 8516: 98c7 ld.w r6, (r14, 0x1c) + 8518: 6c98 or r2, r6 + 851a: 98c6 ld.w r6, (r14, 0x18) + 851c: 6c98 or r2, r6 + 851e: 98c5 ld.w r6, (r14, 0x14) + 8520: 6c98 or r2, r6 + 8522: 98c8 ld.w r6, (r14, 0x20) + 8524: 46d8 lsli r6, r6, 24 + 8526: 6c98 or r2, r6 + 8528: 98c4 ld.w r6, (r14, 0x10) + 852a: 6c98 or r2, r6 + 852c: 98c3 ld.w r6, (r14, 0xc) + 852e: 6c98 or r2, r6 + 8530: 98c2 ld.w r6, (r14, 0x8) + 8532: 6c98 or r2, r6 + 8534: 98c1 ld.w r6, (r14, 0x4) + 8536: 6c98 or r2, r6 + 8538: 6c48 or r1, r2 + 853a: 9840 ld.w r2, (r14, 0x0) + 853c: 6c04 or r0, r1 + 853e: 4242 lsli r2, r2, 2 + 8540: 6c08 or r0, r2 + 8542: 6d00 or r4, r0 + 8544: 4367 lsli r3, r3, 7 + 8546: 6cd0 or r3, r4 + 8548: b561 st.w r3, (r5, 0x4) + 854a: 1409 addi r14, r14, 36 + 854c: 1484 pop r4-r7 + 854e: 3e40 cmpnei r6, 0 + 8550: 0bdc bt 0x8508 // 8508 + 8552: 9264 ld.w r3, (r2, 0x10) + 8554: 3b98 bclri r3, 24 + 8556: 3b99 bclri r3, 25 + 8558: 3bb8 bseti r3, 24 + 855a: b264 st.w r3, (r2, 0x10) + 855c: 3300 movi r3, 0 + 855e: 07d5 br 0x8508 // 8508 + 8560: 2000004c .long 0x2000004c + 8564: 20000050 .long 0x20000050 + 8568: 20000058 .long 0x20000058 + +Disassembly of section .text.tk_io_enable: + +0000856c : + 856c: 14d4 push r4-r7, r15 + 856e: 1422 subi r14, r14, 8 + 8570: 1269 lrw r3, 0x2000004c // 8694 + 8572: 31f0 movi r1, 240 + 8574: 9360 ld.w r3, (r3, 0x0) + 8576: 9340 ld.w r2, (r3, 0x0) + 8578: 4130 lsli r1, r1, 16 + 857a: 6885 andn r2, r1 + 857c: 3ab4 bseti r2, 20 + 857e: 3ab7 bseti r2, 23 + 8580: b340 st.w r2, (r3, 0x0) + 8582: 35f0 movi r5, 240 + 8584: 1245 lrw r2, 0x20000268 // 8698 + 8586: 36f0 movi r6, 240 + 8588: 9240 ld.w r2, (r2, 0x0) + 858a: b841 st.w r2, (r14, 0x4) + 858c: 3400 movi r4, 0 + 858e: 1244 lrw r2, 0x20000048 // 869c + 8590: 45ac lsli r5, r5, 12 + 8592: 9240 ld.w r2, (r2, 0x0) + 8594: b820 st.w r1, (r14, 0x0) + 8596: 46c8 lsli r6, r6, 8 + 8598: 3701 movi r7, 1 + 859a: 71d0 lsl r7, r4 + 859c: 9821 ld.w r1, (r14, 0x4) + 859e: 69c4 and r7, r1 + 85a0: 3f40 cmpnei r7, 0 + 85a2: 7410 zextb r0, r4 + 85a4: 0c1b bf 0x85da // 85da + 85a6: 2800 subi r0, 1 + 85a8: 380f cmphsi r0, 16 + 85aa: 080b bt 0x85c0 // 85c0 + 85ac: e3ffc3a8 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 85b0: 27201a0f .long 0x27201a0f + 85b4: 3d38312c .long 0x3d38312c + 85b8: 56514a44 .long 0x56514a44 + 85bc: 6c67615b .long 0x6c67615b + 85c0: 9200 ld.w r0, (r2, 0x0) + 85c2: 37f0 movi r7, 240 + 85c4: 681d andn r0, r7 + 85c6: 38a4 bseti r0, 4 + 85c8: 38a7 bseti r0, 7 + 85ca: b200 st.w r0, (r2, 0x0) + 85cc: 0407 br 0x85da // 85da + 85ce: 9300 ld.w r0, (r3, 0x0) + 85d0: 370f movi r7, 15 + 85d2: 681d andn r0, r7 + 85d4: 38a0 bseti r0, 0 + 85d6: 38a3 bseti r0, 3 + 85d8: b300 st.w r0, (r3, 0x0) + 85da: 2400 addi r4, 1 + 85dc: 3c51 cmpnei r4, 17 + 85de: 0bdd bt 0x8598 // 8598 + 85e0: 1402 addi r14, r14, 8 + 85e2: 1494 pop r4-r7, r15 + 85e4: 9300 ld.w r0, (r3, 0x0) + 85e6: 37f0 movi r7, 240 + 85e8: 681d andn r0, r7 + 85ea: 38a4 bseti r0, 4 + 85ec: 38a7 bseti r0, 7 + 85ee: 07f5 br 0x85d8 // 85d8 + 85f0: 37f0 movi r7, 240 + 85f2: 9300 ld.w r0, (r3, 0x0) + 85f4: 47e4 lsli r7, r7, 4 + 85f6: 681d andn r0, r7 + 85f8: 38a8 bseti r0, 8 + 85fa: 38ab bseti r0, 11 + 85fc: 07ee br 0x85d8 // 85d8 + 85fe: 9300 ld.w r0, (r3, 0x0) + 8600: 6819 andn r0, r6 + 8602: 38ac bseti r0, 12 + 8604: 38af bseti r0, 15 + 8606: 07e9 br 0x85d8 // 85d8 + 8608: 9300 ld.w r0, (r3, 0x0) + 860a: 6815 andn r0, r5 + 860c: 38b0 bseti r0, 16 + 860e: 38b3 bseti r0, 19 + 8610: 07e4 br 0x85d8 // 85d8 + 8612: 37f0 movi r7, 240 + 8614: 9200 ld.w r0, (r2, 0x0) + 8616: 47e4 lsli r7, r7, 4 + 8618: 681d andn r0, r7 + 861a: 38a8 bseti r0, 8 + 861c: 38ab bseti r0, 11 + 861e: 07d6 br 0x85ca // 85ca + 8620: 9200 ld.w r0, (r2, 0x0) + 8622: 6819 andn r0, r6 + 8624: 38ac bseti r0, 12 + 8626: 38af bseti r0, 15 + 8628: 07d1 br 0x85ca // 85ca + 862a: 9301 ld.w r0, (r3, 0x4) + 862c: 370f movi r7, 15 + 862e: 681d andn r0, r7 + 8630: 38a0 bseti r0, 0 + 8632: 38a3 bseti r0, 3 + 8634: b301 st.w r0, (r3, 0x4) + 8636: 07d2 br 0x85da // 85da + 8638: 9301 ld.w r0, (r3, 0x4) + 863a: 37f0 movi r7, 240 + 863c: 681d andn r0, r7 + 863e: 38a4 bseti r0, 4 + 8640: 38a7 bseti r0, 7 + 8642: 07f9 br 0x8634 // 8634 + 8644: 37f0 movi r7, 240 + 8646: 9301 ld.w r0, (r3, 0x4) + 8648: 47e4 lsli r7, r7, 4 + 864a: 681d andn r0, r7 + 864c: 38a8 bseti r0, 8 + 864e: 38ab bseti r0, 11 + 8650: 07f2 br 0x8634 // 8634 + 8652: 9301 ld.w r0, (r3, 0x4) + 8654: 6819 andn r0, r6 + 8656: 38ac bseti r0, 12 + 8658: 38af bseti r0, 15 + 865a: 07ed br 0x8634 // 8634 + 865c: 9301 ld.w r0, (r3, 0x4) + 865e: 6815 andn r0, r5 + 8660: 38b0 bseti r0, 16 + 8662: 38b3 bseti r0, 19 + 8664: 07e8 br 0x8634 // 8634 + 8666: 9301 ld.w r0, (r3, 0x4) + 8668: 9820 ld.w r1, (r14, 0x0) + 866a: 6805 andn r0, r1 + 866c: 38b4 bseti r0, 20 + 866e: 38b7 bseti r0, 23 + 8670: 07e2 br 0x8634 // 8634 + 8672: 9200 ld.w r0, (r2, 0x0) + 8674: 370f movi r7, 15 + 8676: 681d andn r0, r7 + 8678: 38a0 bseti r0, 0 + 867a: 38a3 bseti r0, 3 + 867c: 07a7 br 0x85ca // 85ca + 867e: 9200 ld.w r0, (r2, 0x0) + 8680: 6815 andn r0, r5 + 8682: 38b0 bseti r0, 16 + 8684: 38b3 bseti r0, 19 + 8686: 07a2 br 0x85ca // 85ca + 8688: 9200 ld.w r0, (r2, 0x0) + 868a: 9820 ld.w r1, (r14, 0x0) + 868c: 6805 andn r0, r1 + 868e: 38b4 bseti r0, 20 + 8690: 38b7 bseti r0, 23 + 8692: 079c br 0x85ca // 85ca + 8694: 2000004c .long 0x2000004c + 8698: 20000268 .long 0x20000268 + 869c: 20000048 .long 0x20000048 + +Disassembly of section .text.TK_Single_Longpress_prg: + +000086a0 : + 86a0: 14c2 push r4-r5 + 86a2: 117d lrw r3, 0x20000a28 // 8794 + 86a4: 115d lrw r2, 0x20000994 // 8798 + 86a6: 9360 ld.w r3, (r3, 0x0) + 86a8: 3b40 cmpnei r3, 0 + 86aa: 0840 bt 0x872a // 872a + 86ac: 113c lrw r1, 0x20000070 // 879c + 86ae: 8962 ld.h r3, (r1, 0x4) + 86b0: 74cd zexth r3, r3 + 86b2: 3b40 cmpnei r3, 0 + 86b4: 0c3b bf 0x872a // 872a + 86b6: 117b lrw r3, 0x20000928 // 87a0 + 86b8: 9360 ld.w r3, (r3, 0x0) + 86ba: 3b40 cmpnei r3, 0 + 86bc: 117a lrw r3, 0x20000ade // 87a4 + 86be: 0c0e bf 0x86da // 86da + 86c0: 8300 ld.b r0, (r3, 0x0) + 86c2: 2000 addi r0, 1 + 86c4: 7400 zextb r0, r0 + 86c6: a300 st.b r0, (r3, 0x0) + 86c8: 8380 ld.b r4, (r3, 0x0) + 86ca: 8902 ld.h r0, (r1, 0x4) + 86cc: 7401 zexth r0, r0 + 86ce: 3564 movi r5, 100 + 86d0: 7c14 mult r0, r5 + 86d2: 6501 cmplt r0, r4 + 86d4: 0c05 bf 0x86de // 86de + 86d6: 3001 movi r0, 1 + 86d8: a200 st.b r0, (r2, 0x0) + 86da: 3000 movi r0, 0 + 86dc: a300 st.b r0, (r3, 0x0) + 86de: 1113 lrw r0, 0x200008bc // 87a8 + 86e0: 9000 ld.w r0, (r0, 0x0) + 86e2: 3840 cmpnei r0, 0 + 86e4: 0c0e bf 0x8700 // 8700 + 86e6: 8301 ld.b r0, (r3, 0x1) + 86e8: 2000 addi r0, 1 + 86ea: 7400 zextb r0, r0 + 86ec: a301 st.b r0, (r3, 0x1) + 86ee: 8381 ld.b r4, (r3, 0x1) + 86f0: 8902 ld.h r0, (r1, 0x4) + 86f2: 7401 zexth r0, r0 + 86f4: 3564 movi r5, 100 + 86f6: 7c14 mult r0, r5 + 86f8: 6501 cmplt r0, r4 + 86fa: 0c05 bf 0x8704 // 8704 + 86fc: 3001 movi r0, 1 + 86fe: a201 st.b r0, (r2, 0x1) + 8700: 3000 movi r0, 0 + 8702: a301 st.b r0, (r3, 0x1) + 8704: 110a lrw r0, 0x200009a0 // 87ac + 8706: 9000 ld.w r0, (r0, 0x0) + 8708: 3840 cmpnei r0, 0 + 870a: 0c0e bf 0x8726 // 8726 + 870c: 8302 ld.b r0, (r3, 0x2) + 870e: 2000 addi r0, 1 + 8710: 7400 zextb r0, r0 + 8712: a302 st.b r0, (r3, 0x2) + 8714: 8302 ld.b r0, (r3, 0x2) + 8716: 8922 ld.h r1, (r1, 0x4) + 8718: 7445 zexth r1, r1 + 871a: 3464 movi r4, 100 + 871c: 7c50 mult r1, r4 + 871e: 6405 cmplt r1, r0 + 8720: 0c05 bf 0x872a // 872a + 8722: 3101 movi r1, 1 + 8724: a222 st.b r1, (r2, 0x2) + 8726: 3100 movi r1, 0 + 8728: a322 st.b r1, (r3, 0x2) + 872a: 8260 ld.b r3, (r2, 0x0) + 872c: 3b41 cmpnei r3, 1 + 872e: 080f bt 0x874c // 874c + 8730: 3300 movi r3, 0 + 8732: 11a0 lrw r5, 0x20000bda // 87b0 + 8734: 1180 lrw r4, 0x20000888 // 87b4 + 8736: 4321 lsli r1, r3, 1 + 8738: 5d04 addu r0, r5, r1 + 873a: 8800 ld.h r0, (r0, 0x0) + 873c: 2300 addi r3, 1 + 873e: 7401 zexth r0, r0 + 8740: 6050 addu r1, r4 + 8742: 3b51 cmpnei r3, 17 + 8744: a900 st.h r0, (r1, 0x0) + 8746: 0bf8 bt 0x8736 // 8736 + 8748: 3300 movi r3, 0 + 874a: a260 st.b r3, (r2, 0x0) + 874c: 8261 ld.b r3, (r2, 0x1) + 874e: 3b41 cmpnei r3, 1 + 8750: 080f bt 0x876e // 876e + 8752: 3300 movi r3, 0 + 8754: 10b9 lrw r5, 0x20000970 // 87b8 + 8756: 109a lrw r4, 0x20000a32 // 87bc + 8758: 4321 lsli r1, r3, 1 + 875a: 5d04 addu r0, r5, r1 + 875c: 8800 ld.h r0, (r0, 0x0) + 875e: 2300 addi r3, 1 + 8760: 7401 zexth r0, r0 + 8762: 6050 addu r1, r4 + 8764: 3b51 cmpnei r3, 17 + 8766: a900 st.h r0, (r1, 0x0) + 8768: 0bf8 bt 0x8758 // 8758 + 876a: 3300 movi r3, 0 + 876c: a261 st.b r3, (r2, 0x1) + 876e: 8262 ld.b r3, (r2, 0x2) + 8770: 3b41 cmpnei r3, 1 + 8772: 080f bt 0x8790 // 8790 + 8774: 3300 movi r3, 0 + 8776: 10b3 lrw r5, 0x20000a66 // 87c0 + 8778: 1093 lrw r4, 0x20000b48 // 87c4 + 877a: 4321 lsli r1, r3, 1 + 877c: 5d04 addu r0, r5, r1 + 877e: 8800 ld.h r0, (r0, 0x0) + 8780: 2300 addi r3, 1 + 8782: 7401 zexth r0, r0 + 8784: 6050 addu r1, r4 + 8786: 3b51 cmpnei r3, 17 + 8788: a900 st.h r0, (r1, 0x0) + 878a: 0bf8 bt 0x877a // 877a + 878c: 3300 movi r3, 0 + 878e: a262 st.b r3, (r2, 0x2) + 8790: 1482 pop r4-r5 + 8792: 0000 bkpt + 8794: 20000a28 .long 0x20000a28 + 8798: 20000994 .long 0x20000994 + 879c: 20000070 .long 0x20000070 + 87a0: 20000928 .long 0x20000928 + 87a4: 20000ade .long 0x20000ade + 87a8: 200008bc .long 0x200008bc + 87ac: 200009a0 .long 0x200009a0 + 87b0: 20000bda .long 0x20000bda + 87b4: 20000888 .long 0x20000888 + 87b8: 20000970 .long 0x20000970 + 87bc: 20000a32 .long 0x20000a32 + 87c0: 20000a66 .long 0x20000a66 + 87c4: 20000b48 .long 0x20000b48 + +Disassembly of section .text.TK_Sampling_prog: + +000087c8 : + 87c8: 14c4 push r4-r7 + 87ca: 1423 subi r14, r14, 12 + 87cc: 1169 lrw r3, 0x20000054 // 8870 + 87ce: 114a lrw r2, 0x20000b45 // 8874 + 87d0: 6d0b mov r4, r2 + 87d2: 9320 ld.w r1, (r3, 0x0) + 87d4: b840 st.w r2, (r14, 0x0) + 87d6: 3300 movi r3, 0 + 87d8: 11a8 lrw r5, 0x20000bda // 8878 + 87da: 9840 ld.w r2, (r14, 0x0) + 87dc: 8240 ld.b r2, (r2, 0x0) + 87de: 3a41 cmpnei r2, 1 + 87e0: 0808 bt 0x87f0 // 87f0 + 87e2: 4342 lsli r2, r3, 2 + 87e4: 6084 addu r2, r1 + 87e6: 9200 ld.w r0, (r2, 0x0) + 87e8: 4341 lsli r2, r3, 1 + 87ea: 7401 zexth r0, r0 + 87ec: 6094 addu r2, r5 + 87ee: aa00 st.h r0, (r2, 0x0) + 87f0: 8440 ld.b r2, (r4, 0x0) + 87f2: 3a42 cmpnei r2, 2 + 87f4: 0809 bt 0x8806 // 8806 + 87f6: 4342 lsli r2, r3, 2 + 87f8: 6084 addu r2, r1 + 87fa: 9200 ld.w r0, (r2, 0x0) + 87fc: 4341 lsli r2, r3, 1 + 87fe: 11c0 lrw r6, 0x20000970 // 887c + 8800: 7401 zexth r0, r0 + 8802: 6098 addu r2, r6 + 8804: aa00 st.h r0, (r2, 0x0) + 8806: 8440 ld.b r2, (r4, 0x0) + 8808: 3a40 cmpnei r2, 0 + 880a: 0809 bt 0x881c // 881c + 880c: 4342 lsli r2, r3, 2 + 880e: 6084 addu r2, r1 + 8810: 9200 ld.w r0, (r2, 0x0) + 8812: 4341 lsli r2, r3, 1 + 8814: 10db lrw r6, 0x20000a66 // 8880 + 8816: 7401 zexth r0, r0 + 8818: 6098 addu r2, r6 + 881a: aa00 st.h r0, (r2, 0x0) + 881c: 10da lrw r6, 0x200009cd // 8884 + 881e: 8640 ld.b r2, (r6, 0x0) + 8820: 3a41 cmpnei r2, 1 + 8822: 0821 bt 0x8864 // 8864 + 8824: 1079 lrw r3, 0x20000888 // 8888 + 8826: 3200 movi r2, 0 + 8828: b861 st.w r3, (r14, 0x4) + 882a: 1075 lrw r3, 0x20000970 // 887c + 882c: b862 st.w r3, (r14, 0x8) + 882e: 4261 lsli r3, r2, 1 + 8830: 5d0c addu r0, r5, r3 + 8832: 8800 ld.h r0, (r0, 0x0) + 8834: 98e1 ld.w r7, (r14, 0x4) + 8836: 61cc addu r7, r3 + 8838: 7401 zexth r0, r0 + 883a: af00 st.h r0, (r7, 0x0) + 883c: 9802 ld.w r0, (r14, 0x8) + 883e: 600c addu r0, r3 + 8840: 8800 ld.h r0, (r0, 0x0) + 8842: 10f3 lrw r7, 0x20000a32 // 888c + 8844: 61cc addu r7, r3 + 8846: 7401 zexth r0, r0 + 8848: af00 st.h r0, (r7, 0x0) + 884a: 2200 addi r2, 1 + 884c: 100d lrw r0, 0x20000a66 // 8880 + 884e: 600c addu r0, r3 + 8850: 8800 ld.h r0, (r0, 0x0) + 8852: 10f0 lrw r7, 0x20000b48 // 8890 + 8854: 7401 zexth r0, r0 + 8856: 60dc addu r3, r7 + 8858: 3a51 cmpnei r2, 17 + 885a: ab00 st.h r0, (r3, 0x0) + 885c: 0be9 bt 0x882e // 882e + 885e: 3300 movi r3, 0 + 8860: a660 st.b r3, (r6, 0x0) + 8862: 3311 movi r3, 17 + 8864: 2300 addi r3, 1 + 8866: 74cc zextb r3, r3 + 8868: 3b10 cmphsi r3, 17 + 886a: 0fb8 bf 0x87da // 87da + 886c: 1403 addi r14, r14, 12 + 886e: 1484 pop r4-r7 + 8870: 20000054 .long 0x20000054 + 8874: 20000b45 .long 0x20000b45 + 8878: 20000bda .long 0x20000bda + 887c: 20000970 .long 0x20000970 + 8880: 20000a66 .long 0x20000a66 + 8884: 200009cd .long 0x200009cd + 8888: 20000888 .long 0x20000888 + 888c: 20000a32 .long 0x20000a32 + 8890: 20000b48 .long 0x20000b48 + +Disassembly of section .text.get_key_number: + +00008894 : + 8894: 14c2 push r4-r5 + 8896: 3200 movi r2, 0 + 8898: 3000 movi r0, 0 + 889a: 1088 lrw r4, 0x20000a28 // 88b8 + 889c: 3501 movi r5, 1 + 889e: 3120 movi r1, 32 + 88a0: 9460 ld.w r3, (r4, 0x0) + 88a2: 70c9 lsr r3, r2 + 88a4: 68d4 and r3, r5 + 88a6: 3b40 cmpnei r3, 0 + 88a8: 0c02 bf 0x88ac // 88ac + 88aa: 2000 addi r0, 1 + 88ac: 2200 addi r2, 1 + 88ae: 644a cmpne r2, r1 + 88b0: 0bf8 bt 0x88a0 // 88a0 + 88b2: 7400 zextb r0, r0 + 88b4: 1482 pop r4-r5 + 88b6: 0000 bkpt + 88b8: 20000a28 .long 0x20000a28 + +Disassembly of section .text.get_key_number0: + +000088bc : + 88bc: 14c2 push r4-r5 + 88be: 3200 movi r2, 0 + 88c0: 3000 movi r0, 0 + 88c2: 1088 lrw r4, 0x20000928 // 88e0 + 88c4: 3501 movi r5, 1 + 88c6: 3120 movi r1, 32 + 88c8: 9460 ld.w r3, (r4, 0x0) + 88ca: 70c9 lsr r3, r2 + 88cc: 68d4 and r3, r5 + 88ce: 3b40 cmpnei r3, 0 + 88d0: 0c02 bf 0x88d4 // 88d4 + 88d2: 2000 addi r0, 1 + 88d4: 2200 addi r2, 1 + 88d6: 644a cmpne r2, r1 + 88d8: 0bf8 bt 0x88c8 // 88c8 + 88da: 7400 zextb r0, r0 + 88dc: 1482 pop r4-r5 + 88de: 0000 bkpt + 88e0: 20000928 .long 0x20000928 + +Disassembly of section .text.get_key_number1: + +000088e4 : + 88e4: 14c2 push r4-r5 + 88e6: 3200 movi r2, 0 + 88e8: 3000 movi r0, 0 + 88ea: 1088 lrw r4, 0x200008bc // 8908 + 88ec: 3501 movi r5, 1 + 88ee: 3120 movi r1, 32 + 88f0: 9460 ld.w r3, (r4, 0x0) + 88f2: 70c9 lsr r3, r2 + 88f4: 68d4 and r3, r5 + 88f6: 3b40 cmpnei r3, 0 + 88f8: 0c02 bf 0x88fc // 88fc + 88fa: 2000 addi r0, 1 + 88fc: 2200 addi r2, 1 + 88fe: 644a cmpne r2, r1 + 8900: 0bf8 bt 0x88f0 // 88f0 + 8902: 7400 zextb r0, r0 + 8904: 1482 pop r4-r5 + 8906: 0000 bkpt + 8908: 200008bc .long 0x200008bc + +Disassembly of section .text.get_key_number2: + +0000890c : + 890c: 14c2 push r4-r5 + 890e: 3200 movi r2, 0 + 8910: 3000 movi r0, 0 + 8912: 1088 lrw r4, 0x200009a0 // 8930 + 8914: 3501 movi r5, 1 + 8916: 3120 movi r1, 32 + 8918: 9460 ld.w r3, (r4, 0x0) + 891a: 70c9 lsr r3, r2 + 891c: 68d4 and r3, r5 + 891e: 3b40 cmpnei r3, 0 + 8920: 0c02 bf 0x8924 // 8924 + 8922: 2000 addi r0, 1 + 8924: 2200 addi r2, 1 + 8926: 644a cmpne r2, r1 + 8928: 0bf8 bt 0x8918 // 8918 + 892a: 7400 zextb r0, r0 + 892c: 1482 pop r4-r5 + 892e: 0000 bkpt + 8930: 200009a0 .long 0x200009a0 + +Disassembly of section .text.TK_Baseline_prog: + +00008934 : + 8934: 14c4 push r4-r7 + 8936: 142a subi r14, r14, 40 + 8938: 1264 lrw r3, 0x2000099c // 8a48 + 893a: 1245 lrw r2, 0x20000b45 // 8a4c + 893c: 6c0b mov r0, r2 + 893e: 9360 ld.w r3, (r3, 0x0) + 8940: b865 st.w r3, (r14, 0x14) + 8942: 1264 lrw r3, 0x2000096c // 8a50 + 8944: 9360 ld.w r3, (r3, 0x0) + 8946: b864 st.w r3, (r14, 0x10) + 8948: 1263 lrw r3, 0x20000bfc // 8a54 + 894a: 9360 ld.w r3, (r3, 0x0) + 894c: b863 st.w r3, (r14, 0xc) + 894e: 1263 lrw r3, 0x20000058 // 8a58 + 8950: 9360 ld.w r3, (r3, 0x0) + 8952: b866 st.w r3, (r14, 0x18) + 8954: 1262 lrw r3, 0x20000054 // 8a5c + 8956: 9360 ld.w r3, (r3, 0x0) + 8958: b860 st.w r3, (r14, 0x0) + 895a: 3306 movi r3, 6 + 895c: b861 st.w r3, (r14, 0x4) + 895e: 1261 lrw r3, 0x20000070 // 8a60 + 8960: b862 st.w r3, (r14, 0x8) + 8962: 3103 movi r1, 3 + 8964: 8260 ld.b r3, (r2, 0x0) + 8966: 74cc zextb r3, r3 + 8968: 3b41 cmpnei r3, 1 + 896a: 0c66 bf 0x8a36 // 8a36 + 896c: 3b40 cmpnei r3, 0 + 896e: 0c5c bf 0x8a26 // 8a26 + 8970: 3b42 cmpnei r3, 2 + 8972: 0c65 bf 0x8a3c // 8a3c + 8974: 3301 movi r3, 1 + 8976: 9886 ld.w r4, (r14, 0x18) + 8978: b462 st.w r3, (r4, 0x8) + 897a: 9862 ld.w r3, (r14, 0x8) + 897c: 3400 movi r4, 0 + 897e: a380 st.b r4, (r3, 0x0) + 8980: 9862 ld.w r3, (r14, 0x8) + 8982: 8360 ld.b r3, (r3, 0x0) + 8984: 3b40 cmpnei r3, 0 + 8986: 0ffd bf 0x8980 // 8980 + 8988: 6c03 mov r0, r0 + 898a: 1197 lrw r4, 0x20000888 // 8a64 + 898c: 3300 movi r3, 0 + 898e: b887 st.w r4, (r14, 0x1c) + 8990: 1196 lrw r4, 0x20000bda // 8a68 + 8992: b888 st.w r4, (r14, 0x20) + 8994: 1196 lrw r4, 0x20000a32 // 8a6c + 8996: b889 st.w r4, (r14, 0x24) + 8998: 8080 ld.b r4, (r0, 0x0) + 899a: 3c41 cmpnei r4, 1 + 899c: 080f bt 0x89ba // 89ba + 899e: 9880 ld.w r4, (r14, 0x0) + 89a0: 43a2 lsli r5, r3, 2 + 89a2: 6150 addu r5, r4 + 89a4: 95c0 ld.w r6, (r5, 0x0) + 89a6: 4381 lsli r4, r3, 1 + 89a8: 98e7 ld.w r7, (r14, 0x1c) + 89aa: 7599 zexth r6, r6 + 89ac: 61d0 addu r7, r4 + 89ae: afc0 st.h r6, (r7, 0x0) + 89b0: 95a0 ld.w r5, (r5, 0x0) + 89b2: 98c8 ld.w r6, (r14, 0x20) + 89b4: 7555 zexth r5, r5 + 89b6: 6118 addu r4, r6 + 89b8: aca0 st.h r5, (r4, 0x0) + 89ba: 8080 ld.b r4, (r0, 0x0) + 89bc: 3c42 cmpnei r4, 2 + 89be: 080f bt 0x89dc // 89dc + 89c0: 9880 ld.w r4, (r14, 0x0) + 89c2: 43a2 lsli r5, r3, 2 + 89c4: 6150 addu r5, r4 + 89c6: 95c0 ld.w r6, (r5, 0x0) + 89c8: 4381 lsli r4, r3, 1 + 89ca: 98e9 ld.w r7, (r14, 0x24) + 89cc: 7599 zexth r6, r6 + 89ce: 61d0 addu r7, r4 + 89d0: afc0 st.h r6, (r7, 0x0) + 89d2: 95a0 ld.w r5, (r5, 0x0) + 89d4: 7555 zexth r5, r5 + 89d6: 11c7 lrw r6, 0x20000970 // 8a70 + 89d8: 6118 addu r4, r6 + 89da: aca0 st.h r5, (r4, 0x0) + 89dc: 8080 ld.b r4, (r0, 0x0) + 89de: 3c40 cmpnei r4, 0 + 89e0: 080f bt 0x89fe // 89fe + 89e2: 9880 ld.w r4, (r14, 0x0) + 89e4: 43a2 lsli r5, r3, 2 + 89e6: 6150 addu r5, r4 + 89e8: 95c0 ld.w r6, (r5, 0x0) + 89ea: 4381 lsli r4, r3, 1 + 89ec: 11e2 lrw r7, 0x20000b48 // 8a74 + 89ee: 7599 zexth r6, r6 + 89f0: 61d0 addu r7, r4 + 89f2: afc0 st.h r6, (r7, 0x0) + 89f4: 95a0 ld.w r5, (r5, 0x0) + 89f6: 7555 zexth r5, r5 + 89f8: 11c0 lrw r6, 0x20000a66 // 8a78 + 89fa: 6118 addu r4, r6 + 89fc: aca0 st.h r5, (r4, 0x0) + 89fe: 2300 addi r3, 1 + 8a00: 3b51 cmpnei r3, 17 + 8a02: 0bcb bt 0x8998 // 8998 + 8a04: 2900 subi r1, 1 + 8a06: 7444 zextb r1, r1 + 8a08: 3940 cmpnei r1, 0 + 8a0a: 0bad bt 0x8964 // 8964 + 8a0c: 9861 ld.w r3, (r14, 0x4) + 8a0e: 2b00 subi r3, 1 + 8a10: 74cc zextb r3, r3 + 8a12: 3b40 cmpnei r3, 0 + 8a14: b861 st.w r3, (r14, 0x4) + 8a16: 0ba6 bt 0x8962 // 8962 + 8a18: 1079 lrw r3, 0x20000934 // 8a7c + 8a1a: 3201 movi r2, 1 + 8a1c: a340 st.b r2, (r3, 0x0) + 8a1e: 3300 movi r3, 0 + 8a20: a060 st.b r3, (r0, 0x0) + 8a22: 140a addi r14, r14, 40 + 8a24: 1484 pop r4-r7 + 8a26: 1077 lrw r3, 0x40011200 // 8a80 + 8a28: 9883 ld.w r4, (r14, 0xc) + 8a2a: b390 st.w r4, (r3, 0x40) + 8a2c: 8260 ld.b r3, (r2, 0x0) + 8a2e: 2300 addi r3, 1 + 8a30: 74cc zextb r3, r3 + 8a32: a260 st.b r3, (r2, 0x0) + 8a34: 07a0 br 0x8974 // 8974 + 8a36: 1073 lrw r3, 0x40011200 // 8a80 + 8a38: 9884 ld.w r4, (r14, 0x10) + 8a3a: 07f8 br 0x8a2a // 8a2a + 8a3c: 1071 lrw r3, 0x40011200 // 8a80 + 8a3e: 9885 ld.w r4, (r14, 0x14) + 8a40: b390 st.w r4, (r3, 0x40) + 8a42: 3300 movi r3, 0 + 8a44: 07f7 br 0x8a32 // 8a32 + 8a46: 0000 bkpt + 8a48: 2000099c .long 0x2000099c + 8a4c: 20000b45 .long 0x20000b45 + 8a50: 2000096c .long 0x2000096c + 8a54: 20000bfc .long 0x20000bfc + 8a58: 20000058 .long 0x20000058 + 8a5c: 20000054 .long 0x20000054 + 8a60: 20000070 .long 0x20000070 + 8a64: 20000888 .long 0x20000888 + 8a68: 20000bda .long 0x20000bda + 8a6c: 20000a32 .long 0x20000a32 + 8a70: 20000970 .long 0x20000970 + 8a74: 20000b48 .long 0x20000b48 + 8a78: 20000a66 .long 0x20000a66 + 8a7c: 20000934 .long 0x20000934 + 8a80: 40011200 .long 0x40011200 + +Disassembly of section .text.TK_Baseline_prog2: + +00008a84 : + 8a84: 14c4 push r4-r7 + 8a86: 142a subi r14, r14, 40 + 8a88: 1262 lrw r3, 0x20000934 // 8b90 + 8a8a: 3200 movi r2, 0 + 8a8c: a340 st.b r2, (r3, 0x0) + 8a8e: b866 st.w r3, (r14, 0x18) + 8a90: 3103 movi r1, 3 + 8a92: 1241 lrw r2, 0x2000099c // 8b94 + 8a94: 1261 lrw r3, 0x20000070 // 8b98 + 8a96: 9240 ld.w r2, (r2, 0x0) + 8a98: b844 st.w r2, (r14, 0x10) + 8a9a: b861 st.w r3, (r14, 0x4) + 8a9c: 1240 lrw r2, 0x2000096c // 8b9c + 8a9e: 9240 ld.w r2, (r2, 0x0) + 8aa0: b843 st.w r2, (r14, 0xc) + 8aa2: 1240 lrw r2, 0x20000bfc // 8ba0 + 8aa4: 9240 ld.w r2, (r2, 0x0) + 8aa6: b842 st.w r2, (r14, 0x8) + 8aa8: 115f lrw r2, 0x20000058 // 8ba4 + 8aaa: 9240 ld.w r2, (r2, 0x0) + 8aac: b845 st.w r2, (r14, 0x14) + 8aae: 115f lrw r2, 0x20000054 // 8ba8 + 8ab0: 9240 ld.w r2, (r2, 0x0) + 8ab2: b840 st.w r2, (r14, 0x0) + 8ab4: 115e lrw r2, 0x20000b45 // 8bac + 8ab6: 6c0b mov r0, r2 + 8ab8: 8260 ld.b r3, (r2, 0x0) + 8aba: 74cc zextb r3, r3 + 8abc: 3b41 cmpnei r3, 1 + 8abe: 0c60 bf 0x8b7e // 8b7e + 8ac0: 3b40 cmpnei r3, 0 + 8ac2: 0c56 bf 0x8b6e // 8b6e + 8ac4: 3b42 cmpnei r3, 2 + 8ac6: 0c5f bf 0x8b84 // 8b84 + 8ac8: 3301 movi r3, 1 + 8aca: 9885 ld.w r4, (r14, 0x14) + 8acc: b462 st.w r3, (r4, 0x8) + 8ace: 9861 ld.w r3, (r14, 0x4) + 8ad0: 3400 movi r4, 0 + 8ad2: a380 st.b r4, (r3, 0x0) + 8ad4: 9861 ld.w r3, (r14, 0x4) + 8ad6: 8360 ld.b r3, (r3, 0x0) + 8ad8: 3b40 cmpnei r3, 0 + 8ada: 0ffd bf 0x8ad4 // 8ad4 + 8adc: 6c03 mov r0, r0 + 8ade: 1195 lrw r4, 0x20000888 // 8bb0 + 8ae0: 3300 movi r3, 0 + 8ae2: b887 st.w r4, (r14, 0x1c) + 8ae4: 1194 lrw r4, 0x20000bda // 8bb4 + 8ae6: b888 st.w r4, (r14, 0x20) + 8ae8: 1194 lrw r4, 0x20000a32 // 8bb8 + 8aea: b889 st.w r4, (r14, 0x24) + 8aec: 8080 ld.b r4, (r0, 0x0) + 8aee: 3c41 cmpnei r4, 1 + 8af0: 080f bt 0x8b0e // 8b0e + 8af2: 9880 ld.w r4, (r14, 0x0) + 8af4: 43a2 lsli r5, r3, 2 + 8af6: 6150 addu r5, r4 + 8af8: 95c0 ld.w r6, (r5, 0x0) + 8afa: 4381 lsli r4, r3, 1 + 8afc: 98e7 ld.w r7, (r14, 0x1c) + 8afe: 7599 zexth r6, r6 + 8b00: 61d0 addu r7, r4 + 8b02: afc0 st.h r6, (r7, 0x0) + 8b04: 95a0 ld.w r5, (r5, 0x0) + 8b06: 98c8 ld.w r6, (r14, 0x20) + 8b08: 7555 zexth r5, r5 + 8b0a: 6118 addu r4, r6 + 8b0c: aca0 st.h r5, (r4, 0x0) + 8b0e: 8080 ld.b r4, (r0, 0x0) + 8b10: 3c42 cmpnei r4, 2 + 8b12: 080f bt 0x8b30 // 8b30 + 8b14: 9880 ld.w r4, (r14, 0x0) + 8b16: 43a2 lsli r5, r3, 2 + 8b18: 6150 addu r5, r4 + 8b1a: 95c0 ld.w r6, (r5, 0x0) + 8b1c: 4381 lsli r4, r3, 1 + 8b1e: 98e9 ld.w r7, (r14, 0x24) + 8b20: 7599 zexth r6, r6 + 8b22: 61d0 addu r7, r4 + 8b24: afc0 st.h r6, (r7, 0x0) + 8b26: 95a0 ld.w r5, (r5, 0x0) + 8b28: 7555 zexth r5, r5 + 8b2a: 11c5 lrw r6, 0x20000970 // 8bbc + 8b2c: 6118 addu r4, r6 + 8b2e: aca0 st.h r5, (r4, 0x0) + 8b30: 8080 ld.b r4, (r0, 0x0) + 8b32: 3c40 cmpnei r4, 0 + 8b34: 080f bt 0x8b52 // 8b52 + 8b36: 9880 ld.w r4, (r14, 0x0) + 8b38: 43a2 lsli r5, r3, 2 + 8b3a: 6150 addu r5, r4 + 8b3c: 95c0 ld.w r6, (r5, 0x0) + 8b3e: 4381 lsli r4, r3, 1 + 8b40: 11e0 lrw r7, 0x20000b48 // 8bc0 + 8b42: 7599 zexth r6, r6 + 8b44: 61d0 addu r7, r4 + 8b46: afc0 st.h r6, (r7, 0x0) + 8b48: 95a0 ld.w r5, (r5, 0x0) + 8b4a: 7555 zexth r5, r5 + 8b4c: 10de lrw r6, 0x20000a66 // 8bc4 + 8b4e: 6118 addu r4, r6 + 8b50: aca0 st.h r5, (r4, 0x0) + 8b52: 2300 addi r3, 1 + 8b54: 3b51 cmpnei r3, 17 + 8b56: 0bcb bt 0x8aec // 8aec + 8b58: 2900 subi r1, 1 + 8b5a: 7444 zextb r1, r1 + 8b5c: 3940 cmpnei r1, 0 + 8b5e: 0bad bt 0x8ab8 // 8ab8 + 8b60: 9866 ld.w r3, (r14, 0x18) + 8b62: 3201 movi r2, 1 + 8b64: a340 st.b r2, (r3, 0x0) + 8b66: 3300 movi r3, 0 + 8b68: a060 st.b r3, (r0, 0x0) + 8b6a: 140a addi r14, r14, 40 + 8b6c: 1484 pop r4-r7 + 8b6e: 1077 lrw r3, 0x40011200 // 8bc8 + 8b70: 9882 ld.w r4, (r14, 0x8) + 8b72: b390 st.w r4, (r3, 0x40) + 8b74: 8260 ld.b r3, (r2, 0x0) + 8b76: 2300 addi r3, 1 + 8b78: 74cc zextb r3, r3 + 8b7a: a260 st.b r3, (r2, 0x0) + 8b7c: 07a6 br 0x8ac8 // 8ac8 + 8b7e: 1073 lrw r3, 0x40011200 // 8bc8 + 8b80: 9883 ld.w r4, (r14, 0xc) + 8b82: 07f8 br 0x8b72 // 8b72 + 8b84: 1071 lrw r3, 0x40011200 // 8bc8 + 8b86: 9884 ld.w r4, (r14, 0x10) + 8b88: b390 st.w r4, (r3, 0x40) + 8b8a: 3300 movi r3, 0 + 8b8c: 07f7 br 0x8b7a // 8b7a + 8b8e: 0000 bkpt + 8b90: 20000934 .long 0x20000934 + 8b94: 2000099c .long 0x2000099c + 8b98: 20000070 .long 0x20000070 + 8b9c: 2000096c .long 0x2000096c + 8ba0: 20000bfc .long 0x20000bfc + 8ba4: 20000058 .long 0x20000058 + 8ba8: 20000054 .long 0x20000054 + 8bac: 20000b45 .long 0x20000b45 + 8bb0: 20000888 .long 0x20000888 + 8bb4: 20000bda .long 0x20000bda + 8bb8: 20000a32 .long 0x20000a32 + 8bbc: 20000970 .long 0x20000970 + 8bc0: 20000b48 .long 0x20000b48 + 8bc4: 20000a66 .long 0x20000a66 + 8bc8: 40011200 .long 0x40011200 + +Disassembly of section .text.tk_poweron_data_fineturn: + +00008bcc : + 8bcc: 14d4 push r4-r7, r15 + 8bce: 1433 subi r14, r14, 76 + 8bd0: 117e lrw r3, 0x20000070 // 8cc8 + 8bd2: 8366 ld.b r3, (r3, 0x6) + 8bd4: 3b41 cmpnei r3, 1 + 8bd6: 0877 bt 0x8cc4 // 8cc4 + 8bd8: 117d lrw r3, 0x20000bda // 8ccc + 8bda: b860 st.w r3, (r14, 0x0) + 8bdc: 3300 movi r3, 0 + 8bde: 301e movi r0, 30 + 8be0: 4321 lsli r1, r3, 1 + 8be2: 1a02 addi r2, r14, 8 + 8be4: 6048 addu r1, r2 + 8be6: 115b lrw r2, 0x2000026e // 8cd0 + 8be8: 608c addu r2, r3 + 8bea: 8a40 ld.h r2, (r2, 0x0) + 8bec: 4245 lsli r2, r2, 5 + 8bee: 6080 addu r2, r0 + 8bf0: b140 st.w r2, (r1, 0x0) + 8bf2: 2301 addi r3, 2 + 8bf4: 3222 movi r2, 34 + 8bf6: 648e cmpne r3, r2 + 8bf8: 0bf4 bt 0x8be0 // 8be0 + 8bfa: 1197 lrw r4, 0x20000242 // 8cd4 + 8bfc: 3200 movi r2, 0 + 8bfe: 3000 movi r0, 0 + 8c00: b881 st.w r4, (r14, 0x4) + 8c02: 11d6 lrw r6, 0x20000970 // 8cd8 + 8c04: 4261 lsli r3, r2, 1 + 8c06: 98a0 ld.w r5, (r14, 0x0) + 8c08: 614c addu r5, r3 + 8c0a: 8d20 ld.h r1, (r5, 0x0) + 8c0c: 7445 zexth r1, r1 + 8c0e: 3940 cmpnei r1, 0 + 8c10: 0c36 bf 0x8c7c // 8c7c + 8c12: 5e2c addu r1, r6, r3 + 8c14: 8920 ld.h r1, (r1, 0x0) + 8c16: 7445 zexth r1, r1 + 8c18: 3940 cmpnei r1, 0 + 8c1a: 0c31 bf 0x8c7c // 8c7c + 8c1c: 1130 lrw r1, 0x20000a66 // 8cdc + 8c1e: 60c4 addu r3, r1 + 8c20: 8b60 ld.h r3, (r3, 0x0) + 8c22: 74cd zexth r3, r3 + 8c24: 3b40 cmpnei r3, 0 + 8c26: 0c2b bf 0x8c7c // 8c7c + 8c28: 8d60 ld.h r3, (r5, 0x0) + 8c2a: 1f02 addi r7, r14, 8 + 8c2c: 42a2 lsli r5, r2, 2 + 8c2e: 615c addu r5, r7 + 8c30: 74cd zexth r3, r3 + 8c32: 95a0 ld.w r5, (r5, 0x0) + 8c34: 60d6 subu r3, r5 + 8c36: 3bdf btsti r3, 31 + 8c38: 0c03 bf 0x8c3e // 8c3e + 8c3a: 3700 movi r7, 0 + 8c3c: 5f6d subu r3, r7, r3 + 8c3e: 3b24 cmplti r3, 5 + 8c40: 0817 bt 0x8c6e // 8c6e + 8c42: 4261 lsli r3, r2, 1 + 8c44: 60d8 addu r3, r6 + 8c46: 8b60 ld.h r3, (r3, 0x0) + 8c48: 74cd zexth r3, r3 + 8c4a: 60d6 subu r3, r5 + 8c4c: 3bdf btsti r3, 31 + 8c4e: 0c03 bf 0x8c54 // 8c54 + 8c50: 3700 movi r7, 0 + 8c52: 5f6d subu r3, r7, r3 + 8c54: 3b24 cmplti r3, 5 + 8c56: 080c bt 0x8c6e // 8c6e + 8c58: 4261 lsli r3, r2, 1 + 8c5a: 604c addu r1, r3 + 8c5c: 8960 ld.h r3, (r1, 0x0) + 8c5e: 74cd zexth r3, r3 + 8c60: 60d6 subu r3, r5 + 8c62: 3bdf btsti r3, 31 + 8c64: 0c03 bf 0x8c6a // 8c6a + 8c66: 3100 movi r1, 0 + 8c68: 596d subu r3, r1, r3 + 8c6a: 3b24 cmplti r3, 5 + 8c6c: 0c08 bf 0x8c7c // 8c7c + 8c6e: 8c60 ld.h r3, (r4, 0x0) + 8c70: 3b06 cmphsi r3, 7 + 8c72: 0805 bt 0x8c7c // 8c7c + 8c74: 2300 addi r3, 1 + 8c76: 2000 addi r0, 1 + 8c78: ac60 st.h r3, (r4, 0x0) + 8c7a: 7400 zextb r0, r0 + 8c7c: 2200 addi r2, 1 + 8c7e: 3a51 cmpnei r2, 17 + 8c80: 2401 addi r4, 2 + 8c82: 0bc1 bt 0x8c04 // 8c04 + 8c84: 3840 cmpnei r0, 0 + 8c86: 0c1f bf 0x8cc4 // 8cc4 + 8c88: 1076 lrw r3, 0x20000058 // 8ce0 + 8c8a: 3200 movi r2, 0 + 8c8c: 9360 ld.w r3, (r3, 0x0) + 8c8e: b342 st.w r2, (r3, 0x8) + 8c90: 10b5 lrw r5, 0x20000b34 // 8ce4 + 8c92: 1076 lrw r3, 0x20000054 // 8ce8 + 8c94: 1016 lrw r0, 0x20000ae4 // 8cec + 8c96: 9380 ld.w r4, (r3, 0x0) + 8c98: 3300 movi r3, 0 + 8c9a: 8040 ld.b r2, (r0, 0x0) + 8c9c: 648c cmphs r3, r2 + 8c9e: 0c04 bf 0x8ca6 // 8ca6 + 8ca0: e3fffef2 bsr 0x8a84 // 8a84 + 8ca4: 079c br 0x8bdc // 8bdc + 8ca6: 5d4c addu r2, r5, r3 + 8ca8: 8240 ld.b r2, (r2, 0x0) + 8caa: 4241 lsli r2, r2, 1 + 8cac: 98e1 ld.w r7, (r14, 0x4) + 8cae: 4322 lsli r1, r3, 2 + 8cb0: 609c addu r2, r7 + 8cb2: 6050 addu r1, r4 + 8cb4: 8a40 ld.h r2, (r2, 0x0) + 8cb6: 91d2 ld.w r6, (r1, 0x48) + 8cb8: 4254 lsli r2, r2, 20 + 8cba: 6c98 or r2, r6 + 8cbc: 2300 addi r3, 1 + 8cbe: b152 st.w r2, (r1, 0x48) + 8cc0: 74cc zextb r3, r3 + 8cc2: 07ec br 0x8c9a // 8c9a + 8cc4: 1413 addi r14, r14, 76 + 8cc6: 1494 pop r4-r7, r15 + 8cc8: 20000070 .long 0x20000070 + 8ccc: 20000bda .long 0x20000bda + 8cd0: 2000026e .long 0x2000026e + 8cd4: 20000242 .long 0x20000242 + 8cd8: 20000970 .long 0x20000970 + 8cdc: 20000a66 .long 0x20000a66 + 8ce0: 20000058 .long 0x20000058 + 8ce4: 20000b34 .long 0x20000b34 + 8ce8: 20000054 .long 0x20000054 + 8cec: 20000ae4 .long 0x20000ae4 + +Disassembly of section .text.TK_Scan_Start: + +00008cf0 : + 8cf0: 1073 lrw r3, 0x20000070 // 8d3c + 8cf2: 1054 lrw r2, 0x20000b45 // 8d40 + 8cf4: 8302 ld.b r0, (r3, 0x2) + 8cf6: 8220 ld.b r1, (r2, 0x0) + 8cf8: 6442 cmpne r0, r1 + 8cfa: 0c16 bf 0x8d26 // 8d26 + 8cfc: 8220 ld.b r1, (r2, 0x0) + 8cfe: 7444 zextb r1, r1 + 8d00: 3941 cmpnei r1, 1 + 8d02: 0c18 bf 0x8d32 // 8d32 + 8d04: 3940 cmpnei r1, 0 + 8d06: 0c11 bf 0x8d28 // 8d28 + 8d08: 3942 cmpnei r1, 2 + 8d0a: 0c16 bf 0x8d36 // 8d36 + 8d0c: 8240 ld.b r2, (r2, 0x0) + 8d0e: 7488 zextb r2, r2 + 8d10: a342 st.b r2, (r3, 0x2) + 8d12: 8341 ld.b r2, (r3, 0x1) + 8d14: 7488 zextb r2, r2 + 8d16: 3a41 cmpnei r2, 1 + 8d18: 0807 bt 0x8d26 // 8d26 + 8d1a: 102b lrw r1, 0x20000058 // 8d44 + 8d1c: 9120 ld.w r1, (r1, 0x0) + 8d1e: b142 st.w r2, (r1, 0x8) + 8d20: 3200 movi r2, 0 + 8d22: a340 st.b r2, (r3, 0x0) + 8d24: a341 st.b r2, (r3, 0x1) + 8d26: 783c jmp r15 + 8d28: 1028 lrw r1, 0x20000bfc // 8d48 + 8d2a: 9100 ld.w r0, (r1, 0x0) + 8d2c: 1028 lrw r1, 0x40011200 // 8d4c + 8d2e: b110 st.w r0, (r1, 0x40) + 8d30: 07ee br 0x8d0c // 8d0c + 8d32: 1028 lrw r1, 0x2000096c // 8d50 + 8d34: 07fb br 0x8d2a // 8d2a + 8d36: 1028 lrw r1, 0x2000099c // 8d54 + 8d38: 07f9 br 0x8d2a // 8d2a + 8d3a: 0000 bkpt + 8d3c: 20000070 .long 0x20000070 + 8d40: 20000b45 .long 0x20000b45 + 8d44: 20000058 .long 0x20000058 + 8d48: 20000bfc .long 0x20000bfc + 8d4c: 40011200 .long 0x40011200 + 8d50: 2000096c .long 0x2000096c + 8d54: 2000099c .long 0x2000099c + +Disassembly of section .text.TK_Keymap_prog: + +00008d58 : + 8d58: 14d4 push r4-r7, r15 + 8d5a: 142a subi r14, r14, 40 + 8d5c: 0171 lrw r3, 0x20000264 // 9094 + 8d5e: 8360 ld.b r3, (r3, 0x0) + 8d60: b860 st.w r3, (r14, 0x0) + 8d62: 3400 movi r4, 0 + 8d64: 0172 lrw r3, 0x20000238 // 9098 + 8d66: 8360 ld.b r3, (r3, 0x0) + 8d68: b863 st.w r3, (r14, 0xc) + 8d6a: 0172 lrw r3, 0x20000241 // 909c + 8d6c: 83a0 ld.b r5, (r3, 0x0) + 8d6e: 0172 lrw r3, 0x20000240 // 90a0 + 8d70: 8360 ld.b r3, (r3, 0x0) + 8d72: b866 st.w r3, (r14, 0x18) + 8d74: 0173 lrw r3, 0x20000bda // 90a4 + 8d76: b868 st.w r3, (r14, 0x20) + 8d78: 0173 lrw r3, 0x20000948 // 90a8 + 8d7a: b864 st.w r3, (r14, 0x10) + 8d7c: b869 st.w r3, (r14, 0x24) + 8d7e: 4461 lsli r3, r4, 1 + 8d80: 9848 ld.w r2, (r14, 0x20) + 8d82: 608c addu r2, r3 + 8d84: 0135 lrw r1, 0x20000888 // 90ac + 8d86: 604c addu r1, r3 + 8d88: 8a40 ld.h r2, (r2, 0x0) + 8d8a: 8920 ld.h r1, (r1, 0x0) + 8d8c: 6086 subu r2, r1 + 8d8e: 9829 ld.w r1, (r14, 0x24) + 8d90: 604c addu r1, r3 + 8d92: 748b sexth r2, r2 + 8d94: a940 st.h r2, (r1, 0x0) + 8d96: 0118 lrw r0, 0x20000a32 // 90b0 + 8d98: 0158 lrw r2, 0x20000970 // 90b4 + 8d9a: 608c addu r2, r3 + 8d9c: 600c addu r0, r3 + 8d9e: 8a40 ld.h r2, (r2, 0x0) + 8da0: 8800 ld.h r0, (r0, 0x0) + 8da2: 6082 subu r2, r0 + 8da4: 01da lrw r6, 0x20000a88 // 90b8 + 8da6: 5e0c addu r0, r6, r3 + 8da8: 748b sexth r2, r2 + 8daa: a840 st.h r2, (r0, 0x0) + 8dac: b8c1 st.w r6, (r14, 0x4) + 8dae: 015b lrw r2, 0x20000a66 // 90bc + 8db0: 011b lrw r0, 0x20000b48 // 90c0 + 8db2: 608c addu r2, r3 + 8db4: 600c addu r0, r3 + 8db6: 8a40 ld.h r2, (r2, 0x0) + 8db8: 8800 ld.h r0, (r0, 0x0) + 8dba: 6082 subu r2, r0 + 8dbc: 011d lrw r0, 0x20000bb4 // 90c4 + 8dbe: 748b sexth r2, r2 + 8dc0: 58ec addu r7, r0, r3 + 8dc2: af40 st.h r2, (r7, 0x0) + 8dc4: 8940 ld.h r2, (r1, 0x0) + 8dc6: 748b sexth r2, r2 + 8dc8: 3adf btsti r2, 31 + 8dca: 015f lrw r2, 0x20000b92 // 90c8 + 8dcc: 60c8 addu r3, r2 + 8dce: b802 st.w r0, (r14, 0x8) + 8dd0: 0c49 bf 0x8e62 // 8e62 + 8dd2: 3200 movi r2, 0 + 8dd4: ab40 st.h r2, (r3, 0x0) + 8dd6: 9821 ld.w r1, (r14, 0x4) + 8dd8: 4461 lsli r3, r4, 1 + 8dda: 604c addu r1, r3 + 8ddc: 8940 ld.h r2, (r1, 0x0) + 8dde: 748b sexth r2, r2 + 8de0: 3adf btsti r2, 31 + 8de2: 0244 lrw r2, 0x200008f0 // 90cc + 8de4: 60c8 addu r3, r2 + 8de6: 0c41 bf 0x8e68 // 8e68 + 8de8: 3200 movi r2, 0 + 8dea: ab40 st.h r2, (r3, 0x0) + 8dec: 9822 ld.w r1, (r14, 0x8) + 8dee: 4461 lsli r3, r4, 1 + 8df0: 604c addu r1, r3 + 8df2: 8940 ld.h r2, (r1, 0x0) + 8df4: 748b sexth r2, r2 + 8df6: 3adf btsti r2, 31 + 8df8: 0249 lrw r2, 0x200008c4 // 90d0 + 8dfa: 60c8 addu r3, r2 + 8dfc: 0c39 bf 0x8e6e // 8e6e + 8dfe: 3200 movi r2, 0 + 8e00: ab40 st.h r2, (r3, 0x0) + 8e02: 9860 ld.w r3, (r14, 0x0) + 8e04: 3b03 cmphsi r3, 4 + 8e06: 4421 lsli r1, r4, 1 + 8e08: 0cb5 bf 0x8f72 // 8f72 + 8e0a: 9864 ld.w r3, (r14, 0x10) + 8e0c: 60c4 addu r3, r1 + 8e0e: 024d lrw r2, 0x20000292 // 90d4 + 8e10: 6048 addu r1, r2 + 8e12: 8b00 ld.h r0, (r3, 0x0) + 8e14: 8940 ld.h r2, (r1, 0x0) + 8e16: 7403 sexth r0, r0 + 8e18: 6409 cmplt r2, r0 + 8e1a: 9820 ld.w r1, (r14, 0x0) + 8e1c: 7c84 mult r2, r1 + 8e1e: 0c9b bf 0x8f54 // 8f54 + 8e20: 8b20 ld.h r1, (r3, 0x0) + 8e22: 7447 sexth r1, r1 + 8e24: 6485 cmplt r1, r2 + 8e26: 0c97 bf 0x8f54 // 8f54 + 8e28: 0233 lrw r1, 0x20000935 // 90d8 + 8e2a: 6050 addu r1, r4 + 8e2c: 8140 ld.b r2, (r1, 0x0) + 8e2e: 2200 addi r2, 1 + 8e30: 7488 zextb r2, r2 + 8e32: a140 st.b r2, (r1, 0x0) + 8e34: 3000 movi r0, 0 + 8e36: 0255 lrw r2, 0x20000914 // 90dc + 8e38: 6090 addu r2, r4 + 8e3a: a200 st.b r0, (r2, 0x0) + 8e3c: 0256 lrw r2, 0x20000a54 // 90e0 + 8e3e: 6090 addu r2, r4 + 8e40: a200 st.b r0, (r2, 0x0) + 8e42: 0256 lrw r2, 0x20000aec // 90e4 + 8e44: 6090 addu r2, r4 + 8e46: a200 st.b r0, (r2, 0x0) + 8e48: 8140 ld.b r2, (r1, 0x0) + 8e4a: 9803 ld.w r0, (r14, 0xc) + 8e4c: 6480 cmphs r0, r2 + 8e4e: 081d bt 0x8e88 // 8e88 + 8e50: 3d40 cmpnei r5, 0 + 8e52: 0811 bt 0x8e74 // 8e74 + 8e54: 025a lrw r2, 0x20000928 // 90e8 + 8e56: 9260 ld.w r3, (r2, 0x0) + 8e58: 3b40 cmpnei r3, 0 + 8e5a: 0815 bt 0x8e84 // 8e84 + 8e5c: 9200 ld.w r0, (r2, 0x0) + 8e5e: 3301 movi r3, 1 + 8e60: 040f br 0x8e7e // 8e7e + 8e62: 8940 ld.h r2, (r1, 0x0) + 8e64: 7489 zexth r2, r2 + 8e66: 07b7 br 0x8dd4 // 8dd4 + 8e68: 8940 ld.h r2, (r1, 0x0) + 8e6a: 7489 zexth r2, r2 + 8e6c: 07bf br 0x8dea // 8dea + 8e6e: 8940 ld.h r2, (r1, 0x0) + 8e70: 7489 zexth r2, r2 + 8e72: 07c7 br 0x8e00 // 8e00 + 8e74: 3d41 cmpnei r5, 1 + 8e76: 085c bt 0x8f2e // 8f2e + 8e78: 0343 lrw r2, 0x20000928 // 90e8 + 8e7a: 6cd7 mov r3, r5 + 8e7c: 9200 ld.w r0, (r2, 0x0) + 8e7e: 70d0 lsl r3, r4 + 8e80: 6cc0 or r3, r0 + 8e82: b260 st.w r3, (r2, 0x0) + 8e84: 3300 movi r3, 0 + 8e86: a160 st.b r3, (r1, 0x0) + 8e88: 4461 lsli r3, r4, 1 + 8e8a: 9844 ld.w r2, (r14, 0x10) + 8e8c: 608c addu r2, r3 + 8e8e: 8ac0 ld.h r6, (r2, 0x0) + 8e90: 034e lrw r2, 0x20000292 // 90d4 + 8e92: 60c8 addu r3, r2 + 8e94: 8be0 ld.h r7, (r3, 0x0) + 8e96: 4702 lsli r0, r7, 2 + 8e98: 3105 movi r1, 5 + 8e9a: e3ffd6b9 bsr 0x3c0c // 3c0c <__divsi3> + 8e9e: 759b sexth r6, r6 + 8ea0: 6419 cmplt r6, r0 + 8ea2: b805 st.w r0, (r14, 0x14) + 8ea4: 0c18 bf 0x8ed4 // 8ed4 + 8ea6: 0351 lrw r2, 0x20000914 // 90dc + 8ea8: 6090 addu r2, r4 + 8eaa: 8260 ld.b r3, (r2, 0x0) + 8eac: 2300 addi r3, 1 + 8eae: 74cc zextb r3, r3 + 8eb0: a260 st.b r3, (r2, 0x0) + 8eb2: 3100 movi r1, 0 + 8eb4: 0376 lrw r3, 0x20000935 // 90d8 + 8eb6: 60d0 addu r3, r4 + 8eb8: a320 st.b r1, (r3, 0x0) + 8eba: 8260 ld.b r3, (r2, 0x0) + 8ebc: 9826 ld.w r1, (r14, 0x18) + 8ebe: 64c4 cmphs r1, r3 + 8ec0: 080a bt 0x8ed4 // 8ed4 + 8ec2: 3300 movi r3, 0 + 8ec4: 0336 lrw r1, 0x20000928 // 90e8 + 8ec6: 2b01 subi r3, 2 + 8ec8: 9100 ld.w r0, (r1, 0x0) + 8eca: 70d3 rotl r3, r4 + 8ecc: 68c0 and r3, r0 + 8ece: b160 st.w r3, (r1, 0x0) + 8ed0: 3300 movi r3, 0 + 8ed2: a260 st.b r3, (r2, 0x0) + 8ed4: 9860 ld.w r3, (r14, 0x0) + 8ed6: 9841 ld.w r2, (r14, 0x4) + 8ed8: 3b03 cmphsi r3, 4 + 8eda: 4461 lsli r3, r4, 1 + 8edc: 60c8 addu r3, r2 + 8ede: 8b40 ld.h r2, (r3, 0x0) + 8ee0: 748b sexth r2, r2 + 8ee2: 0d4d bf 0x917c // 917c + 8ee4: 649d cmplt r7, r2 + 8ee6: 0d3a bf 0x915a // 915a + 8ee8: 8b40 ld.h r2, (r3, 0x0) + 8eea: 9820 ld.w r1, (r14, 0x0) + 8eec: 748b sexth r2, r2 + 8eee: 7c5c mult r1, r7 + 8ef0: 6449 cmplt r2, r1 + 8ef2: 0d34 bf 0x915a // 915a + 8ef4: 133e lrw r1, 0x20000b08 // 90ec + 8ef6: 6050 addu r1, r4 + 8ef8: 8140 ld.b r2, (r1, 0x0) + 8efa: 2200 addi r2, 1 + 8efc: 7488 zextb r2, r2 + 8efe: a140 st.b r2, (r1, 0x0) + 8f00: 3000 movi r0, 0 + 8f02: 135c lrw r2, 0x200009a4 // 90f0 + 8f04: 6090 addu r2, r4 + 8f06: a200 st.b r0, (r2, 0x0) + 8f08: 135b lrw r2, 0x200009ce // 90f4 + 8f0a: 6090 addu r2, r4 + 8f0c: a200 st.b r0, (r2, 0x0) + 8f0e: 135b lrw r2, 0x20000acc // 90f8 + 8f10: 6090 addu r2, r4 + 8f12: a200 st.b r0, (r2, 0x0) + 8f14: 8140 ld.b r2, (r1, 0x0) + 8f16: 9803 ld.w r0, (r14, 0xc) + 8f18: 6480 cmphs r0, r2 + 8f1a: 087d bt 0x9014 // 9014 + 8f1c: 3d40 cmpnei r5, 0 + 8f1e: 0871 bt 0x9000 // 9000 + 8f20: 1357 lrw r2, 0x200008bc // 90fc + 8f22: 9260 ld.w r3, (r2, 0x0) + 8f24: 3b40 cmpnei r3, 0 + 8f26: 0875 bt 0x9010 // 9010 + 8f28: 9200 ld.w r0, (r2, 0x0) + 8f2a: 3301 movi r3, 1 + 8f2c: 046f br 0x900a // 900a + 8f2e: 3d42 cmpnei r5, 2 + 8f30: 0c03 bf 0x8f36 // 8f36 + 8f32: e8000201 br 0x9334 // 9334 + 8f36: 13d3 lrw r6, 0x20000ae2 // 9100 + 8f38: 8b00 ld.h r0, (r3, 0x0) + 8f3a: 8e40 ld.h r2, (r6, 0x0) + 8f3c: 7489 zexth r2, r2 + 8f3e: 7403 sexth r0, r0 + 8f40: 2209 addi r2, 10 + 8f42: 6409 cmplt r2, r0 + 8f44: 0fa0 bf 0x8e84 // 8e84 + 8f46: 8b60 ld.h r3, (r3, 0x0) + 8f48: 74cd zexth r3, r3 + 8f4a: ae60 st.h r3, (r6, 0x0) + 8f4c: 3300 movi r3, 0 + 8f4e: 1347 lrw r2, 0x20000928 // 90e8 + 8f50: b260 st.w r3, (r2, 0x0) + 8f52: 0785 br 0x8e5c // 8e5c + 8f54: 4461 lsli r3, r4, 1 + 8f56: 9824 ld.w r1, (r14, 0x10) + 8f58: 60c4 addu r3, r1 + 8f5a: 8b60 ld.h r3, (r3, 0x0) + 8f5c: 74cf sexth r3, r3 + 8f5e: 64c9 cmplt r2, r3 + 8f60: 0f94 bf 0x8e88 // 8e88 + 8f62: 3300 movi r3, 0 + 8f64: 1341 lrw r2, 0x20000928 // 90e8 + 8f66: 2b01 subi r3, 2 + 8f68: 9220 ld.w r1, (r2, 0x0) + 8f6a: 70d3 rotl r3, r4 + 8f6c: 68c4 and r3, r1 + 8f6e: b260 st.w r3, (r2, 0x0) + 8f70: 078c br 0x8e88 // 8e88 + 8f72: 9844 ld.w r2, (r14, 0x10) + 8f74: 6084 addu r2, r1 + 8f76: 1218 lrw r0, 0x20000292 // 90d4 + 8f78: 8a60 ld.h r3, (r2, 0x0) + 8f7a: 6040 addu r1, r0 + 8f7c: 74cf sexth r3, r3 + 8f7e: 8920 ld.h r1, (r1, 0x0) + 8f80: 64c5 cmplt r1, r3 + 8f82: 0f83 bf 0x8e88 // 8e88 + 8f84: 1360 lrw r3, 0x20000946 // 9104 + 8f86: 8360 ld.b r3, (r3, 0x0) + 8f88: 74cc zextb r3, r3 + 8f8a: 3b40 cmpnei r3, 0 + 8f8c: 0b7e bt 0x8e88 // 8e88 + 8f8e: 1213 lrw r0, 0x20000935 // 90d8 + 8f90: 6010 addu r0, r4 + 8f92: 8020 ld.b r1, (r0, 0x0) + 8f94: 2100 addi r1, 1 + 8f96: 7444 zextb r1, r1 + 8f98: a020 st.b r1, (r0, 0x0) + 8f9a: 3600 movi r6, 0 + 8f9c: 1230 lrw r1, 0x20000914 // 90dc + 8f9e: 6050 addu r1, r4 + 8fa0: a1c0 st.b r6, (r1, 0x0) + 8fa2: 1230 lrw r1, 0x20000a54 // 90e0 + 8fa4: 6050 addu r1, r4 + 8fa6: a1c0 st.b r6, (r1, 0x0) + 8fa8: 122f lrw r1, 0x20000aec // 90e4 + 8faa: 6050 addu r1, r4 + 8fac: a1c0 st.b r6, (r1, 0x0) + 8fae: 8020 ld.b r1, (r0, 0x0) + 8fb0: 98c3 ld.w r6, (r14, 0xc) + 8fb2: 6458 cmphs r6, r1 + 8fb4: 0b6a bt 0x8e88 // 8e88 + 8fb6: 3d40 cmpnei r5, 0 + 8fb8: 0808 bt 0x8fc8 // 8fc8 + 8fba: 124c lrw r2, 0x20000928 // 90e8 + 8fbc: 9260 ld.w r3, (r2, 0x0) + 8fbe: 3b40 cmpnei r3, 0 + 8fc0: 080c bt 0x8fd8 // 8fd8 + 8fc2: 9220 ld.w r1, (r2, 0x0) + 8fc4: 3301 movi r3, 1 + 8fc6: 0406 br 0x8fd2 // 8fd2 + 8fc8: 3d41 cmpnei r5, 1 + 8fca: 080a bt 0x8fde // 8fde + 8fcc: 1247 lrw r2, 0x20000928 // 90e8 + 8fce: 6cd7 mov r3, r5 + 8fd0: 9220 ld.w r1, (r2, 0x0) + 8fd2: 70d0 lsl r3, r4 + 8fd4: 6cc4 or r3, r1 + 8fd6: b260 st.w r3, (r2, 0x0) + 8fd8: 3300 movi r3, 0 + 8fda: a060 st.b r3, (r0, 0x0) + 8fdc: 0756 br 0x8e88 // 8e88 + 8fde: 3d42 cmpnei r5, 2 + 8fe0: 0c02 bf 0x8fe4 // 8fe4 + 8fe2: 05dc br 0x939a // 939a + 8fe4: 12e7 lrw r7, 0x20000ae2 // 9100 + 8fe6: 8ac0 ld.h r6, (r2, 0x0) + 8fe8: 8f20 ld.h r1, (r7, 0x0) + 8fea: 7445 zexth r1, r1 + 8fec: 759b sexth r6, r6 + 8fee: 2109 addi r1, 10 + 8ff0: 6585 cmplt r1, r6 + 8ff2: 0ff3 bf 0x8fd8 // 8fd8 + 8ff4: 8a40 ld.h r2, (r2, 0x0) + 8ff6: 7489 zexth r2, r2 + 8ff8: af40 st.h r2, (r7, 0x0) + 8ffa: 115c lrw r2, 0x20000928 // 90e8 + 8ffc: b260 st.w r3, (r2, 0x0) + 8ffe: 07e2 br 0x8fc2 // 8fc2 + 9000: 3d41 cmpnei r5, 1 + 9002: 089b bt 0x9138 // 9138 + 9004: 115e lrw r2, 0x200008bc // 90fc + 9006: 6cd7 mov r3, r5 + 9008: 9200 ld.w r0, (r2, 0x0) + 900a: 70d0 lsl r3, r4 + 900c: 6cc0 or r3, r0 + 900e: b260 st.w r3, (r2, 0x0) + 9010: 3300 movi r3, 0 + 9012: a160 st.b r3, (r1, 0x0) + 9014: 4461 lsli r3, r4, 1 + 9016: 9841 ld.w r2, (r14, 0x4) + 9018: 608c addu r2, r3 + 901a: 8a60 ld.h r3, (r2, 0x0) + 901c: 74cf sexth r3, r3 + 901e: 9845 ld.w r2, (r14, 0x14) + 9020: 648d cmplt r3, r2 + 9022: 0c18 bf 0x9052 // 9052 + 9024: 1153 lrw r2, 0x200009a4 // 90f0 + 9026: 6090 addu r2, r4 + 9028: 8260 ld.b r3, (r2, 0x0) + 902a: 2300 addi r3, 1 + 902c: 74cc zextb r3, r3 + 902e: a260 st.b r3, (r2, 0x0) + 9030: 3100 movi r1, 0 + 9032: 116f lrw r3, 0x20000b08 // 90ec + 9034: 60d0 addu r3, r4 + 9036: a320 st.b r1, (r3, 0x0) + 9038: 8260 ld.b r3, (r2, 0x0) + 903a: 9826 ld.w r1, (r14, 0x18) + 903c: 64c4 cmphs r1, r3 + 903e: 080a bt 0x9052 // 9052 + 9040: 3300 movi r3, 0 + 9042: 112f lrw r1, 0x200008bc // 90fc + 9044: 2b01 subi r3, 2 + 9046: 9100 ld.w r0, (r1, 0x0) + 9048: 70d3 rotl r3, r4 + 904a: 68c0 and r3, r0 + 904c: b160 st.w r3, (r1, 0x0) + 904e: 3300 movi r3, 0 + 9050: a260 st.b r3, (r2, 0x0) + 9052: 9860 ld.w r3, (r14, 0x0) + 9054: 9842 ld.w r2, (r14, 0x8) + 9056: 3b03 cmphsi r3, 4 + 9058: 4461 lsli r3, r4, 1 + 905a: 60c8 addu r3, r2 + 905c: 8b40 ld.h r2, (r3, 0x0) + 905e: 748b sexth r2, r2 + 9060: 0d26 bf 0x92ac // 92ac + 9062: 9820 ld.w r1, (r14, 0x0) + 9064: 649d cmplt r7, r2 + 9066: 7c5c mult r1, r7 + 9068: 0d13 bf 0x928e // 928e + 906a: 8b40 ld.h r2, (r3, 0x0) + 906c: 748b sexth r2, r2 + 906e: 6449 cmplt r2, r1 + 9070: 0d0f bf 0x928e // 928e + 9072: 1126 lrw r1, 0x20000ab0 // 9108 + 9074: 6050 addu r1, r4 + 9076: 8140 ld.b r2, (r1, 0x0) + 9078: 2200 addi r2, 1 + 907a: 7488 zextb r2, r2 + 907c: a140 st.b r2, (r1, 0x0) + 907e: 3000 movi r0, 0 + 9080: 1143 lrw r2, 0x20000b1e // 910c + 9082: 6090 addu r2, r4 + 9084: a200 st.b r0, (r2, 0x0) + 9086: 1143 lrw r2, 0x200008aa // 9110 + 9088: 6090 addu r2, r4 + 908a: a200 st.b r0, (r2, 0x0) + 908c: 1142 lrw r2, 0x200009bc // 9114 + 908e: 6090 addu r2, r4 + 9090: a200 st.b r0, (r2, 0x0) + 9092: 0443 br 0x9118 // 9118 + 9094: 20000264 .long 0x20000264 + 9098: 20000238 .long 0x20000238 + 909c: 20000241 .long 0x20000241 + 90a0: 20000240 .long 0x20000240 + 90a4: 20000bda .long 0x20000bda + 90a8: 20000948 .long 0x20000948 + 90ac: 20000888 .long 0x20000888 + 90b0: 20000a32 .long 0x20000a32 + 90b4: 20000970 .long 0x20000970 + 90b8: 20000a88 .long 0x20000a88 + 90bc: 20000a66 .long 0x20000a66 + 90c0: 20000b48 .long 0x20000b48 + 90c4: 20000bb4 .long 0x20000bb4 + 90c8: 20000b92 .long 0x20000b92 + 90cc: 200008f0 .long 0x200008f0 + 90d0: 200008c4 .long 0x200008c4 + 90d4: 20000292 .long 0x20000292 + 90d8: 20000935 .long 0x20000935 + 90dc: 20000914 .long 0x20000914 + 90e0: 20000a54 .long 0x20000a54 + 90e4: 20000aec .long 0x20000aec + 90e8: 20000928 .long 0x20000928 + 90ec: 20000b08 .long 0x20000b08 + 90f0: 200009a4 .long 0x200009a4 + 90f4: 200009ce .long 0x200009ce + 90f8: 20000acc .long 0x20000acc + 90fc: 200008bc .long 0x200008bc + 9100: 20000ae2 .long 0x20000ae2 + 9104: 20000946 .long 0x20000946 + 9108: 20000ab0 .long 0x20000ab0 + 910c: 20000b1e .long 0x20000b1e + 9110: 200008aa .long 0x200008aa + 9114: 200009bc .long 0x200009bc + 9118: 8140 ld.b r2, (r1, 0x0) + 911a: 9803 ld.w r0, (r14, 0xc) + 911c: 6480 cmphs r0, r2 + 911e: 0881 bt 0x9220 // 9220 + 9120: 3d40 cmpnei r5, 0 + 9122: 0874 bt 0x920a // 920a + 9124: 014b lrw r2, 0x200009a0 // 9474 + 9126: 9260 ld.w r3, (r2, 0x0) + 9128: 3b40 cmpnei r3, 0 + 912a: 0879 bt 0x921c // 921c + 912c: 3301 movi r3, 1 + 912e: 9200 ld.w r0, (r2, 0x0) + 9130: 70d0 lsl r3, r4 + 9132: 6cc0 or r3, r0 + 9134: b260 st.w r3, (r2, 0x0) + 9136: 0473 br 0x921c // 921c + 9138: 3d42 cmpnei r5, 2 + 913a: 0960 bt 0x93fa // 93fa + 913c: 01d0 lrw r6, 0x20000bd8 // 9478 + 913e: 8b00 ld.h r0, (r3, 0x0) + 9140: 8e40 ld.h r2, (r6, 0x0) + 9142: 7489 zexth r2, r2 + 9144: 7403 sexth r0, r0 + 9146: 2209 addi r2, 10 + 9148: 6409 cmplt r2, r0 + 914a: 0f63 bf 0x9010 // 9010 + 914c: 8b60 ld.h r3, (r3, 0x0) + 914e: 74cd zexth r3, r3 + 9150: ae60 st.h r3, (r6, 0x0) + 9152: 3300 movi r3, 0 + 9154: 0155 lrw r2, 0x200008bc // 947c + 9156: b260 st.w r3, (r2, 0x0) + 9158: 06e8 br 0x8f28 // 8f28 + 915a: 9841 ld.w r2, (r14, 0x4) + 915c: 4461 lsli r3, r4, 1 + 915e: 60c8 addu r3, r2 + 9160: 8b60 ld.h r3, (r3, 0x0) + 9162: 9840 ld.w r2, (r14, 0x0) + 9164: 74cf sexth r3, r3 + 9166: 7c9c mult r2, r7 + 9168: 64c9 cmplt r2, r3 + 916a: 0f55 bf 0x9014 // 9014 + 916c: 3300 movi r3, 0 + 916e: 015b lrw r2, 0x200008bc // 947c + 9170: 2b01 subi r3, 2 + 9172: 9220 ld.w r1, (r2, 0x0) + 9174: 70d3 rotl r3, r4 + 9176: 68c4 and r3, r1 + 9178: b260 st.w r3, (r2, 0x0) + 917a: 074d br 0x9014 // 9014 + 917c: 649d cmplt r7, r2 + 917e: 0f4b bf 0x9014 // 9014 + 9180: 015f lrw r2, 0x20000946 // 9480 + 9182: 8240 ld.b r2, (r2, 0x0) + 9184: 7488 zextb r2, r2 + 9186: 3a40 cmpnei r2, 0 + 9188: b847 st.w r2, (r14, 0x1c) + 918a: 0b45 bt 0x9014 // 9014 + 918c: 0201 lrw r0, 0x20000b08 // 9484 + 918e: 6010 addu r0, r4 + 9190: 8020 ld.b r1, (r0, 0x0) + 9192: 2100 addi r1, 1 + 9194: 7444 zextb r1, r1 + 9196: a020 st.b r1, (r0, 0x0) + 9198: 3600 movi r6, 0 + 919a: 0223 lrw r1, 0x200009a4 // 9488 + 919c: 6050 addu r1, r4 + 919e: a1c0 st.b r6, (r1, 0x0) + 91a0: 0224 lrw r1, 0x200009ce // 948c + 91a2: 6050 addu r1, r4 + 91a4: a1c0 st.b r6, (r1, 0x0) + 91a6: 0224 lrw r1, 0x20000acc // 9490 + 91a8: 6050 addu r1, r4 + 91aa: a1c0 st.b r6, (r1, 0x0) + 91ac: 8020 ld.b r1, (r0, 0x0) + 91ae: 98c3 ld.w r6, (r14, 0xc) + 91b0: 6458 cmphs r6, r1 + 91b2: 0b31 bt 0x9014 // 9014 + 91b4: 3d40 cmpnei r5, 0 + 91b6: 0808 bt 0x91c6 // 91c6 + 91b8: 024e lrw r2, 0x200008bc // 947c + 91ba: 9260 ld.w r3, (r2, 0x0) + 91bc: 3b40 cmpnei r3, 0 + 91be: 0823 bt 0x9204 // 9204 + 91c0: 9220 ld.w r1, (r2, 0x0) + 91c2: 3301 movi r3, 1 + 91c4: 0406 br 0x91d0 // 91d0 + 91c6: 3d41 cmpnei r5, 1 + 91c8: 0808 bt 0x91d8 // 91d8 + 91ca: 0252 lrw r2, 0x200008bc // 947c + 91cc: 6cd7 mov r3, r5 + 91ce: 9220 ld.w r1, (r2, 0x0) + 91d0: 70d0 lsl r3, r4 + 91d2: 6cc4 or r3, r1 + 91d4: b260 st.w r3, (r2, 0x0) + 91d6: 0417 br 0x9204 // 9204 + 91d8: 3d42 cmpnei r5, 2 + 91da: 0942 bt 0x945e // 945e + 91dc: 8bc0 ld.h r6, (r3, 0x0) + 91de: 745b sexth r1, r6 + 91e0: 02d9 lrw r6, 0x20000bd8 // 9478 + 91e2: 6c87 mov r2, r1 + 91e4: 8e20 ld.h r1, (r6, 0x0) + 91e6: 7445 zexth r1, r1 + 91e8: 2109 addi r1, 10 + 91ea: 6485 cmplt r1, r2 + 91ec: 0c0c bf 0x9204 // 9204 + 91ee: 8b60 ld.h r3, (r3, 0x0) + 91f0: 74cd zexth r3, r3 + 91f2: ae60 st.h r3, (r6, 0x0) + 91f4: 9867 ld.w r3, (r14, 0x1c) + 91f6: 023d lrw r1, 0x200008bc // 947c + 91f8: b160 st.w r3, (r1, 0x0) + 91fa: 3301 movi r3, 1 + 91fc: 9140 ld.w r2, (r1, 0x0) + 91fe: 70d0 lsl r3, r4 + 9200: 6cc8 or r3, r2 + 9202: b160 st.w r3, (r1, 0x0) + 9204: 3300 movi r3, 0 + 9206: a060 st.b r3, (r0, 0x0) + 9208: 0706 br 0x9014 // 9014 + 920a: 3d41 cmpnei r5, 1 + 920c: 0830 bt 0x926c // 926c + 920e: 0345 lrw r2, 0x200009a0 // 9474 + 9210: 6cd7 mov r3, r5 + 9212: 9200 ld.w r0, (r2, 0x0) + 9214: 70d0 lsl r3, r4 + 9216: 6cc0 or r3, r0 + 9218: b260 st.w r3, (r2, 0x0) + 921a: 6c03 mov r0, r0 + 921c: 3300 movi r3, 0 + 921e: a160 st.b r3, (r1, 0x0) + 9220: 4461 lsli r3, r4, 1 + 9222: 9842 ld.w r2, (r14, 0x8) + 9224: 608c addu r2, r3 + 9226: 8a60 ld.h r3, (r2, 0x0) + 9228: 74cf sexth r3, r3 + 922a: 9845 ld.w r2, (r14, 0x14) + 922c: 648d cmplt r3, r2 + 922e: 0c18 bf 0x925e // 925e + 9230: 0346 lrw r2, 0x20000b1e // 9494 + 9232: 6090 addu r2, r4 + 9234: 8260 ld.b r3, (r2, 0x0) + 9236: 2300 addi r3, 1 + 9238: 74cc zextb r3, r3 + 923a: a260 st.b r3, (r2, 0x0) + 923c: 3100 movi r1, 0 + 923e: 0368 lrw r3, 0x20000ab0 // 9498 + 9240: 60d0 addu r3, r4 + 9242: a320 st.b r1, (r3, 0x0) + 9244: 8260 ld.b r3, (r2, 0x0) + 9246: 9826 ld.w r1, (r14, 0x18) + 9248: 64c4 cmphs r1, r3 + 924a: 080a bt 0x925e // 925e + 924c: 3300 movi r3, 0 + 924e: 0335 lrw r1, 0x200009a0 // 9474 + 9250: 2b01 subi r3, 2 + 9252: 9100 ld.w r0, (r1, 0x0) + 9254: 70d3 rotl r3, r4 + 9256: 68c0 and r3, r0 + 9258: b160 st.w r3, (r1, 0x0) + 925a: 3300 movi r3, 0 + 925c: a260 st.b r3, (r2, 0x0) + 925e: 2400 addi r4, 1 + 9260: 3c51 cmpnei r4, 17 + 9262: 0c03 bf 0x9268 // 9268 + 9264: e800fd8d br 0x8d7e // 8d7e + 9268: 140a addi r14, r14, 40 + 926a: 1494 pop r4-r7, r15 + 926c: 3d42 cmpnei r5, 2 + 926e: 0948 bt 0x94fe // 94fe + 9270: 03d4 lrw r6, 0x2000096a // 949c + 9272: 8b00 ld.h r0, (r3, 0x0) + 9274: 8e40 ld.h r2, (r6, 0x0) + 9276: 7489 zexth r2, r2 + 9278: 7403 sexth r0, r0 + 927a: 2209 addi r2, 10 + 927c: 6409 cmplt r2, r0 + 927e: 0fcf bf 0x921c // 921c + 9280: 8b60 ld.h r3, (r3, 0x0) + 9282: 74cd zexth r3, r3 + 9284: ae60 st.h r3, (r6, 0x0) + 9286: 3300 movi r3, 0 + 9288: 135b lrw r2, 0x200009a0 // 9474 + 928a: b260 st.w r3, (r2, 0x0) + 928c: 0750 br 0x912c // 912c + 928e: 4461 lsli r3, r4, 1 + 9290: 9842 ld.w r2, (r14, 0x8) + 9292: 60c8 addu r3, r2 + 9294: 8b60 ld.h r3, (r3, 0x0) + 9296: 74cf sexth r3, r3 + 9298: 64c5 cmplt r1, r3 + 929a: 0fc3 bf 0x9220 // 9220 + 929c: 3300 movi r3, 0 + 929e: 1356 lrw r2, 0x200009a0 // 9474 + 92a0: 2b01 subi r3, 2 + 92a2: 9220 ld.w r1, (r2, 0x0) + 92a4: 70d3 rotl r3, r4 + 92a6: 68c4 and r3, r1 + 92a8: b260 st.w r3, (r2, 0x0) + 92aa: 07bb br 0x9220 // 9220 + 92ac: 649d cmplt r7, r2 + 92ae: 0fb9 bf 0x9220 // 9220 + 92b0: 1354 lrw r2, 0x20000946 // 9480 + 92b2: 8240 ld.b r2, (r2, 0x0) + 92b4: 7488 zextb r2, r2 + 92b6: 3a40 cmpnei r2, 0 + 92b8: 0bb4 bt 0x9220 // 9220 + 92ba: 1318 lrw r0, 0x20000ab0 // 9498 + 92bc: 6010 addu r0, r4 + 92be: 8020 ld.b r1, (r0, 0x0) + 92c0: 2100 addi r1, 1 + 92c2: 7444 zextb r1, r1 + 92c4: a020 st.b r1, (r0, 0x0) + 92c6: 3600 movi r6, 0 + 92c8: 1333 lrw r1, 0x20000b1e // 9494 + 92ca: 6050 addu r1, r4 + 92cc: a1c0 st.b r6, (r1, 0x0) + 92ce: 1335 lrw r1, 0x200008aa // 94a0 + 92d0: 6050 addu r1, r4 + 92d2: a1c0 st.b r6, (r1, 0x0) + 92d4: 1334 lrw r1, 0x200009bc // 94a4 + 92d6: 6050 addu r1, r4 + 92d8: a1c0 st.b r6, (r1, 0x0) + 92da: 8020 ld.b r1, (r0, 0x0) + 92dc: 98c3 ld.w r6, (r14, 0xc) + 92de: 6458 cmphs r6, r1 + 92e0: 0ba0 bt 0x9220 // 9220 + 92e2: 3d40 cmpnei r5, 0 + 92e4: 0808 bt 0x92f4 // 92f4 + 92e6: 1344 lrw r2, 0x200009a0 // 9474 + 92e8: 9260 ld.w r3, (r2, 0x0) + 92ea: 3b40 cmpnei r3, 0 + 92ec: 0821 bt 0x932e // 932e + 92ee: 9220 ld.w r1, (r2, 0x0) + 92f0: 3301 movi r3, 1 + 92f2: 0406 br 0x92fe // 92fe + 92f4: 3d41 cmpnei r5, 1 + 92f6: 0808 bt 0x9306 // 9306 + 92f8: 125f lrw r2, 0x200009a0 // 9474 + 92fa: 6cd7 mov r3, r5 + 92fc: 9220 ld.w r1, (r2, 0x0) + 92fe: 70d0 lsl r3, r4 + 9300: 6cc4 or r3, r1 + 9302: b260 st.w r3, (r2, 0x0) + 9304: 0415 br 0x932e // 932e + 9306: 3d42 cmpnei r5, 2 + 9308: 092a bt 0x955c // 955c + 930a: 13e5 lrw r7, 0x2000096a // 949c + 930c: 8bc0 ld.h r6, (r3, 0x0) + 930e: 8f20 ld.h r1, (r7, 0x0) + 9310: 7445 zexth r1, r1 + 9312: 759b sexth r6, r6 + 9314: 2109 addi r1, 10 + 9316: 6585 cmplt r1, r6 + 9318: 0c0b bf 0x932e // 932e + 931a: 8b60 ld.h r3, (r3, 0x0) + 931c: 1236 lrw r1, 0x200009a0 // 9474 + 931e: 74cd zexth r3, r3 + 9320: af60 st.h r3, (r7, 0x0) + 9322: b140 st.w r2, (r1, 0x0) + 9324: 3301 movi r3, 1 + 9326: 9140 ld.w r2, (r1, 0x0) + 9328: 70d0 lsl r3, r4 + 932a: 6cc8 or r3, r2 + 932c: b160 st.w r3, (r1, 0x0) + 932e: 3300 movi r3, 0 + 9330: a060 st.b r3, (r0, 0x0) + 9332: 0777 br 0x9220 // 9220 + 9334: 3d43 cmpnei r5, 3 + 9336: 0c03 bf 0x933c // 933c + 9338: e800fda6 br 0x8e84 // 8e84 + 933c: 125b lrw r2, 0x20000ae2 // 94a8 + 933e: 8bc0 ld.h r6, (r3, 0x0) + 9340: 8a00 ld.h r0, (r2, 0x0) + 9342: 7401 zexth r0, r0 + 9344: 759b sexth r6, r6 + 9346: 2009 addi r0, 10 + 9348: 6581 cmplt r0, r6 + 934a: 0c0c bf 0x9362 // 9362 + 934c: 8b60 ld.h r3, (r3, 0x0) + 934e: 74cd zexth r3, r3 + 9350: aa60 st.h r3, (r2, 0x0) + 9352: 3300 movi r3, 0 + 9354: 1216 lrw r0, 0x20000928 // 94ac + 9356: b060 st.w r3, (r0, 0x0) + 9358: 3301 movi r3, 1 + 935a: 90c0 ld.w r6, (r0, 0x0) + 935c: 70d0 lsl r3, r4 + 935e: 6cd8 or r3, r6 + 9360: b060 st.w r3, (r0, 0x0) + 9362: 9804 ld.w r0, (r14, 0x10) + 9364: 4461 lsli r3, r4, 1 + 9366: 60c0 addu r3, r0 + 9368: 8b00 ld.h r0, (r3, 0x0) + 936a: 8a40 ld.h r2, (r2, 0x0) + 936c: 7489 zexth r2, r2 + 936e: 7403 sexth r0, r0 + 9370: 2a04 subi r2, 5 + 9372: 6481 cmplt r0, r2 + 9374: 0803 bt 0x937a // 937a + 9376: e800fd87 br 0x8e84 // 8e84 + 937a: 12ce lrw r6, 0x200008ec // 94b0 + 937c: 8b00 ld.h r0, (r3, 0x0) + 937e: 8e40 ld.h r2, (r6, 0x0) + 9380: 7489 zexth r2, r2 + 9382: 7403 sexth r0, r0 + 9384: 2204 addi r2, 5 + 9386: 6409 cmplt r2, r0 + 9388: 0803 bt 0x938e // 938e + 938a: e800fd7d br 0x8e84 // 8e84 + 938e: 8b60 ld.h r3, (r3, 0x0) + 9390: 74cd zexth r3, r3 + 9392: ae60 st.h r3, (r6, 0x0) + 9394: 1246 lrw r2, 0x20000928 // 94ac + 9396: e800fd63 br 0x8e5c // 8e5c + 939a: 3d43 cmpnei r5, 3 + 939c: 0c02 bf 0x93a0 // 93a0 + 939e: 061d br 0x8fd8 // 8fd8 + 93a0: 12c2 lrw r6, 0x20000ae2 // 94a8 + 93a2: 8ae0 ld.h r7, (r2, 0x0) + 93a4: 8e20 ld.h r1, (r6, 0x0) + 93a6: 7445 zexth r1, r1 + 93a8: 75df sexth r7, r7 + 93aa: 2109 addi r1, 10 + 93ac: 65c5 cmplt r1, r7 + 93ae: 0c0b bf 0x93c4 // 93c4 + 93b0: 8a40 ld.h r2, (r2, 0x0) + 93b2: 7489 zexth r2, r2 + 93b4: ae40 st.h r2, (r6, 0x0) + 93b6: 115e lrw r2, 0x20000928 // 94ac + 93b8: b260 st.w r3, (r2, 0x0) + 93ba: 3301 movi r3, 1 + 93bc: 9220 ld.w r1, (r2, 0x0) + 93be: 70d0 lsl r3, r4 + 93c0: 6cc4 or r3, r1 + 93c2: b260 st.w r3, (r2, 0x0) + 93c4: 9844 ld.w r2, (r14, 0x10) + 93c6: 4461 lsli r3, r4, 1 + 93c8: 60c8 addu r3, r2 + 93ca: 8b40 ld.h r2, (r3, 0x0) + 93cc: 8e20 ld.h r1, (r6, 0x0) + 93ce: 7445 zexth r1, r1 + 93d0: 748b sexth r2, r2 + 93d2: 2904 subi r1, 5 + 93d4: 6449 cmplt r2, r1 + 93d6: 0802 bt 0x93da // 93da + 93d8: 0600 br 0x8fd8 // 8fd8 + 93da: 11d6 lrw r6, 0x200008ec // 94b0 + 93dc: 8b20 ld.h r1, (r3, 0x0) + 93de: 8e40 ld.h r2, (r6, 0x0) + 93e0: 7489 zexth r2, r2 + 93e2: 7447 sexth r1, r1 + 93e4: 2204 addi r2, 5 + 93e6: 6449 cmplt r2, r1 + 93e8: 0803 bt 0x93ee // 93ee + 93ea: e800fdf7 br 0x8fd8 // 8fd8 + 93ee: 8b60 ld.h r3, (r3, 0x0) + 93f0: 74cd zexth r3, r3 + 93f2: ae60 st.h r3, (r6, 0x0) + 93f4: 114e lrw r2, 0x20000928 // 94ac + 93f6: e800fde6 br 0x8fc2 // 8fc2 + 93fa: 3d43 cmpnei r5, 3 + 93fc: 0c02 bf 0x9400 // 9400 + 93fe: 0609 br 0x9010 // 9010 + 9400: 105e lrw r2, 0x20000bd8 // 9478 + 9402: 8bc0 ld.h r6, (r3, 0x0) + 9404: 8a00 ld.h r0, (r2, 0x0) + 9406: 7401 zexth r0, r0 + 9408: 759b sexth r6, r6 + 940a: 2009 addi r0, 10 + 940c: 6581 cmplt r0, r6 + 940e: 0c0c bf 0x9426 // 9426 + 9410: 8b60 ld.h r3, (r3, 0x0) + 9412: 74cd zexth r3, r3 + 9414: aa60 st.h r3, (r2, 0x0) + 9416: 3300 movi r3, 0 + 9418: 1019 lrw r0, 0x200008bc // 947c + 941a: b060 st.w r3, (r0, 0x0) + 941c: 3301 movi r3, 1 + 941e: 90c0 ld.w r6, (r0, 0x0) + 9420: 70d0 lsl r3, r4 + 9422: 6cd8 or r3, r6 + 9424: b060 st.w r3, (r0, 0x0) + 9426: 9801 ld.w r0, (r14, 0x4) + 9428: 4461 lsli r3, r4, 1 + 942a: 60c0 addu r3, r0 + 942c: 8b00 ld.h r0, (r3, 0x0) + 942e: 8a40 ld.h r2, (r2, 0x0) + 9430: 7489 zexth r2, r2 + 9432: 7403 sexth r0, r0 + 9434: 2a04 subi r2, 5 + 9436: 6481 cmplt r0, r2 + 9438: 0803 bt 0x943e // 943e + 943a: e800fdeb br 0x9010 // 9010 + 943e: 10de lrw r6, 0x20000aea // 94b4 + 9440: 8b00 ld.h r0, (r3, 0x0) + 9442: 8e40 ld.h r2, (r6, 0x0) + 9444: 7489 zexth r2, r2 + 9446: 7403 sexth r0, r0 + 9448: 2204 addi r2, 5 + 944a: 6409 cmplt r2, r0 + 944c: 0803 bt 0x9452 // 9452 + 944e: e800fde1 br 0x9010 // 9010 + 9452: 8b60 ld.h r3, (r3, 0x0) + 9454: 74cd zexth r3, r3 + 9456: ae60 st.h r3, (r6, 0x0) + 9458: 1049 lrw r2, 0x200008bc // 947c + 945a: e800fd67 br 0x8f28 // 8f28 + 945e: 3d43 cmpnei r5, 3 + 9460: 0ad2 bt 0x9204 // 9204 + 9462: 8b20 ld.h r1, (r3, 0x0) + 9464: 10c5 lrw r6, 0x20000bd8 // 9478 + 9466: 7487 sexth r2, r1 + 9468: 8e20 ld.h r1, (r6, 0x0) + 946a: 7445 zexth r1, r1 + 946c: 2109 addi r1, 10 + 946e: 6485 cmplt r1, r2 + 9470: 0c2f bf 0x94ce // 94ce + 9472: 0423 br 0x94b8 // 94b8 + 9474: 200009a0 .long 0x200009a0 + 9478: 20000bd8 .long 0x20000bd8 + 947c: 200008bc .long 0x200008bc + 9480: 20000946 .long 0x20000946 + 9484: 20000b08 .long 0x20000b08 + 9488: 200009a4 .long 0x200009a4 + 948c: 200009ce .long 0x200009ce + 9490: 20000acc .long 0x20000acc + 9494: 20000b1e .long 0x20000b1e + 9498: 20000ab0 .long 0x20000ab0 + 949c: 2000096a .long 0x2000096a + 94a0: 200008aa .long 0x200008aa + 94a4: 200009bc .long 0x200009bc + 94a8: 20000ae2 .long 0x20000ae2 + 94ac: 20000928 .long 0x20000928 + 94b0: 200008ec .long 0x200008ec + 94b4: 20000aea .long 0x20000aea + 94b8: 8b60 ld.h r3, (r3, 0x0) + 94ba: 74cd zexth r3, r3 + 94bc: ae60 st.h r3, (r6, 0x0) + 94be: 9867 ld.w r3, (r14, 0x1c) + 94c0: 113d lrw r1, 0x200008bc // 95b4 + 94c2: b160 st.w r3, (r1, 0x0) + 94c4: 3301 movi r3, 1 + 94c6: 9140 ld.w r2, (r1, 0x0) + 94c8: 70d0 lsl r3, r4 + 94ca: 6cc8 or r3, r2 + 94cc: b160 st.w r3, (r1, 0x0) + 94ce: 9841 ld.w r2, (r14, 0x4) + 94d0: 4461 lsli r3, r4, 1 + 94d2: 60c8 addu r3, r2 + 94d4: 8b40 ld.h r2, (r3, 0x0) + 94d6: 8e20 ld.h r1, (r6, 0x0) + 94d8: 7445 zexth r1, r1 + 94da: 748b sexth r2, r2 + 94dc: 2904 subi r1, 5 + 94de: 6449 cmplt r2, r1 + 94e0: 0e92 bf 0x9204 // 9204 + 94e2: 11d6 lrw r6, 0x20000aea // 95b8 + 94e4: 8b20 ld.h r1, (r3, 0x0) + 94e6: 8e40 ld.h r2, (r6, 0x0) + 94e8: 7489 zexth r2, r2 + 94ea: 7447 sexth r1, r1 + 94ec: 2204 addi r2, 5 + 94ee: 6449 cmplt r2, r1 + 94f0: 0802 bt 0x94f4 // 94f4 + 94f2: 0689 br 0x9204 // 9204 + 94f4: 8b60 ld.h r3, (r3, 0x0) + 94f6: 74cd zexth r3, r3 + 94f8: ae60 st.h r3, (r6, 0x0) + 94fa: 114f lrw r2, 0x200008bc // 95b4 + 94fc: 0662 br 0x91c0 // 91c0 + 94fe: 3d43 cmpnei r5, 3 + 9500: 0a8e bt 0x921c // 921c + 9502: 114f lrw r2, 0x2000096a // 95bc + 9504: 8bc0 ld.h r6, (r3, 0x0) + 9506: 8a00 ld.h r0, (r2, 0x0) + 9508: 7401 zexth r0, r0 + 950a: 759b sexth r6, r6 + 950c: 2009 addi r0, 10 + 950e: 6581 cmplt r0, r6 + 9510: 0c0c bf 0x9528 // 9528 + 9512: 8b60 ld.h r3, (r3, 0x0) + 9514: 74cd zexth r3, r3 + 9516: aa60 st.h r3, (r2, 0x0) + 9518: 3300 movi r3, 0 + 951a: 110a lrw r0, 0x200009a0 // 95c0 + 951c: b060 st.w r3, (r0, 0x0) + 951e: 3301 movi r3, 1 + 9520: 90c0 ld.w r6, (r0, 0x0) + 9522: 70d0 lsl r3, r4 + 9524: 6cd8 or r3, r6 + 9526: b060 st.w r3, (r0, 0x0) + 9528: 9802 ld.w r0, (r14, 0x8) + 952a: 4461 lsli r3, r4, 1 + 952c: 60c0 addu r3, r0 + 952e: 8b00 ld.h r0, (r3, 0x0) + 9530: 8a40 ld.h r2, (r2, 0x0) + 9532: 7489 zexth r2, r2 + 9534: 7403 sexth r0, r0 + 9536: 2a04 subi r2, 5 + 9538: 6481 cmplt r0, r2 + 953a: 0802 bt 0x953e // 953e + 953c: 0670 br 0x921c // 921c + 953e: 11c2 lrw r6, 0x20000a30 // 95c4 + 9540: 8b00 ld.h r0, (r3, 0x0) + 9542: 8e40 ld.h r2, (r6, 0x0) + 9544: 7489 zexth r2, r2 + 9546: 7403 sexth r0, r0 + 9548: 2204 addi r2, 5 + 954a: 6409 cmplt r2, r0 + 954c: 0802 bt 0x9550 // 9550 + 954e: 0667 br 0x921c // 921c + 9550: 8b60 ld.h r3, (r3, 0x0) + 9552: 74cd zexth r3, r3 + 9554: ae60 st.h r3, (r6, 0x0) + 9556: 105b lrw r2, 0x200009a0 // 95c0 + 9558: e800fdea br 0x912c // 912c + 955c: 3d43 cmpnei r5, 3 + 955e: 0ae8 bt 0x932e // 932e + 9560: 10d7 lrw r6, 0x2000096a // 95bc + 9562: 8be0 ld.h r7, (r3, 0x0) + 9564: 8e20 ld.h r1, (r6, 0x0) + 9566: 7445 zexth r1, r1 + 9568: 75df sexth r7, r7 + 956a: 2109 addi r1, 10 + 956c: 65c5 cmplt r1, r7 + 956e: 0c0b bf 0x9584 // 9584 + 9570: 8b60 ld.h r3, (r3, 0x0) + 9572: 1034 lrw r1, 0x200009a0 // 95c0 + 9574: 74cd zexth r3, r3 + 9576: ae60 st.h r3, (r6, 0x0) + 9578: b140 st.w r2, (r1, 0x0) + 957a: 3301 movi r3, 1 + 957c: 9140 ld.w r2, (r1, 0x0) + 957e: 70d0 lsl r3, r4 + 9580: 6cc8 or r3, r2 + 9582: b160 st.w r3, (r1, 0x0) + 9584: 9842 ld.w r2, (r14, 0x8) + 9586: 4461 lsli r3, r4, 1 + 9588: 60c8 addu r3, r2 + 958a: 8b40 ld.h r2, (r3, 0x0) + 958c: 8e20 ld.h r1, (r6, 0x0) + 958e: 7445 zexth r1, r1 + 9590: 748b sexth r2, r2 + 9592: 2904 subi r1, 5 + 9594: 6449 cmplt r2, r1 + 9596: 0ecc bf 0x932e // 932e + 9598: 10cb lrw r6, 0x20000a30 // 95c4 + 959a: 8b20 ld.h r1, (r3, 0x0) + 959c: 8e40 ld.h r2, (r6, 0x0) + 959e: 7489 zexth r2, r2 + 95a0: 7447 sexth r1, r1 + 95a2: 2204 addi r2, 5 + 95a4: 6449 cmplt r2, r1 + 95a6: 0ec4 bf 0x932e // 932e + 95a8: 8b60 ld.h r3, (r3, 0x0) + 95aa: 74cd zexth r3, r3 + 95ac: ae60 st.h r3, (r6, 0x0) + 95ae: 1045 lrw r2, 0x200009a0 // 95c0 + 95b0: 069f br 0x92ee // 92ee + 95b2: 0000 bkpt + 95b4: 200008bc .long 0x200008bc + 95b8: 20000aea .long 0x20000aea + 95bc: 2000096a .long 0x2000096a + 95c0: 200009a0 .long 0x200009a0 + 95c4: 20000a30 .long 0x20000a30 + +Disassembly of section .text.TK_overflow_predict: + +000095c8 : + 95c8: 14d4 push r4-r7, r15 + 95ca: 1422 subi r14, r14, 8 + 95cc: 113c lrw r1, 0x20000070 // 96bc + 95ce: 8167 ld.b r3, (r1, 0x7) + 95d0: 3b41 cmpnei r3, 1 + 95d2: 0823 bt 0x9618 // 9618 + 95d4: 115b lrw r2, 0x20000aaa // 96c0 + 95d6: 8260 ld.b r3, (r2, 0x0) + 95d8: 2300 addi r3, 1 + 95da: 74cc zextb r3, r3 + 95dc: a260 st.b r3, (r2, 0x0) + 95de: 8260 ld.b r3, (r2, 0x0) + 95e0: 1119 lrw r0, 0x20000265 // 96c4 + 95e2: 8000 ld.b r0, (r0, 0x0) + 95e4: 64c0 cmphs r0, r3 + 95e6: 0819 bt 0x9618 // 9618 + 95e8: 3300 movi r3, 0 + 95ea: a260 st.b r3, (r2, 0x0) + 95ec: 11b7 lrw r5, 0x200009b5 // 96c8 + 95ee: 8560 ld.b r3, (r5, 0x0) + 95f0: 3b40 cmpnei r3, 0 + 95f2: 0c15 bf 0x961c // 961c + 95f4: 8560 ld.b r3, (r5, 0x0) + 95f6: 3b41 cmpnei r3, 1 + 95f8: 0810 bt 0x9618 // 9618 + 95fa: 3300 movi r3, 0 + 95fc: a560 st.b r3, (r5, 0x0) + 95fe: 3200 movi r2, 0 + 9600: 1173 lrw r3, 0x20000058 // 96cc + 9602: 1114 lrw r0, 0x20000ae4 // 96d0 + 9604: 11b4 lrw r5, 0x20000b34 // 96d4 + 9606: 11d5 lrw r6, 0x20000242 // 96d8 + 9608: 9360 ld.w r3, (r3, 0x0) + 960a: b342 st.w r2, (r3, 0x8) + 960c: 1174 lrw r3, 0x20000054 // 96dc + 960e: 9380 ld.w r4, (r3, 0x0) + 9610: 3300 movi r3, 0 + 9612: 8040 ld.b r2, (r0, 0x0) + 9614: 648c cmphs r3, r2 + 9616: 0c44 bf 0x969e // 969e + 9618: 1402 addi r14, r14, 8 + 961a: 1494 pop r4-r7, r15 + 961c: 597e addi r3, r1, 8 + 961e: 3600 movi r6, 0 + 9620: 11f0 lrw r7, 0x20000268 // 96e0 + 9622: b860 st.w r3, (r14, 0x0) + 9624: 9760 ld.w r3, (r7, 0x0) + 9626: 70d9 lsr r3, r6 + 9628: 3201 movi r2, 1 + 962a: 68c8 and r3, r2 + 962c: 3b40 cmpnei r3, 0 + 962e: 0c34 bf 0x9696 // 9696 + 9630: 4681 lsli r4, r6, 1 + 9632: 9860 ld.w r3, (r14, 0x0) + 9634: 60d0 addu r3, r4 + 9636: 8b00 ld.h r0, (r3, 0x0) + 9638: e3ffc084 bsr 0x1740 // 1740 <__floatunsidf> + 963c: 6cc7 mov r3, r1 + 963e: 3180 movi r1, 128 + 9640: 6c83 mov r2, r0 + 9642: 4137 lsli r1, r1, 23 + 9644: 3000 movi r0, 0 + 9646: e3ffb5b7 bsr 0x1b4 // 1b4 <__GI_pow> + 964a: 1167 lrw r3, 0x2000026e // 96e4 + 964c: 60d0 addu r3, r4 + 964e: 8b60 ld.h r3, (r3, 0x0) + 9650: 4364 lsli r3, r3, 4 + 9652: 230e addi r3, 15 + 9654: b861 st.w r3, (r14, 0x4) + 9656: e3ffbb79 bsr 0xd48 // d48 <__fixunsdfsi> + 965a: 9861 ld.w r3, (r14, 0x4) + 965c: 7cc0 mult r3, r0 + 965e: 1143 lrw r2, 0x20000b6a // 96e8 + 9660: 740d zexth r0, r3 + 9662: 6090 addu r2, r4 + 9664: 1162 lrw r3, 0x20000bda // 96ec + 9666: 60d0 addu r3, r4 + 9668: aa00 st.h r0, (r2, 0x0) + 966a: 8b60 ld.h r3, (r3, 0x0) + 966c: 8a00 ld.h r0, (r2, 0x0) + 966e: 7401 zexth r0, r0 + 9670: 325f movi r2, 95 + 9672: 74cd zexth r3, r3 + 9674: 7c08 mult r0, r2 + 9676: 3164 movi r1, 100 + 9678: b861 st.w r3, (r14, 0x4) + 967a: e3ffd2c9 bsr 0x3c0c // 3c0c <__divsi3> + 967e: 9861 ld.w r3, (r14, 0x4) + 9680: 64c1 cmplt r0, r3 + 9682: 0c0a bf 0x9696 // 9696 + 9684: 1075 lrw r3, 0x20000242 // 96d8 + 9686: 610c addu r4, r3 + 9688: 8c60 ld.h r3, (r4, 0x0) + 968a: 3b06 cmphsi r3, 7 + 968c: 0805 bt 0x9696 // 9696 + 968e: 2300 addi r3, 1 + 9690: ac60 st.h r3, (r4, 0x0) + 9692: 3301 movi r3, 1 + 9694: a560 st.b r3, (r5, 0x0) + 9696: 2600 addi r6, 1 + 9698: 3e51 cmpnei r6, 17 + 969a: 0bc5 bt 0x9624 // 9624 + 969c: 07ac br 0x95f4 // 95f4 + 969e: 5d4c addu r2, r5, r3 + 96a0: 8240 ld.b r2, (r2, 0x0) + 96a2: 4241 lsli r2, r2, 1 + 96a4: 4322 lsli r1, r3, 2 + 96a6: 6098 addu r2, r6 + 96a8: 6050 addu r1, r4 + 96aa: 8a40 ld.h r2, (r2, 0x0) + 96ac: 91f2 ld.w r7, (r1, 0x48) + 96ae: 4254 lsli r2, r2, 20 + 96b0: 6c9c or r2, r7 + 96b2: 2300 addi r3, 1 + 96b4: b152 st.w r2, (r1, 0x48) + 96b6: 74cc zextb r3, r3 + 96b8: 07ad br 0x9612 // 9612 + 96ba: 0000 bkpt + 96bc: 20000070 .long 0x20000070 + 96c0: 20000aaa .long 0x20000aaa + 96c4: 20000265 .long 0x20000265 + 96c8: 200009b5 .long 0x200009b5 + 96cc: 20000058 .long 0x20000058 + 96d0: 20000ae4 .long 0x20000ae4 + 96d4: 20000b34 .long 0x20000b34 + 96d8: 20000242 .long 0x20000242 + 96dc: 20000054 .long 0x20000054 + 96e0: 20000268 .long 0x20000268 + 96e4: 2000026e .long 0x2000026e + 96e8: 20000b6a .long 0x20000b6a + 96ec: 20000bda .long 0x20000bda + +Disassembly of section .text.TK_Baseline_tracking: + +000096f0 : + 96f0: 14d4 push r4-r7, r15 + 96f2: 1421 subi r14, r14, 4 + 96f4: 014a lrw r2, 0x20000a26 // 9a48 + 96f6: 8260 ld.b r3, (r2, 0x0) + 96f8: 2300 addi r3, 1 + 96fa: 74cc zextb r3, r3 + 96fc: a260 st.b r3, (r2, 0x0) + 96fe: 8260 ld.b r3, (r2, 0x0) + 9700: 012c lrw r1, 0x20000265 // 9a4c + 9702: 8120 ld.b r1, (r1, 0x0) + 9704: 644c cmphs r3, r1 + 9706: 0803 bt 0x970c // 970c + 9708: e800020f br 0x9b26 // 9b26 + 970c: 3300 movi r3, 0 + 970e: a260 st.b r3, (r2, 0x0) + 9710: 016f lrw r3, 0x20000928 // 9a50 + 9712: 9360 ld.w r3, (r3, 0x0) + 9714: 3b40 cmpnei r3, 0 + 9716: 0c03 bf 0x971c // 971c + 9718: e8000209 br 0x9b2a // 9b2a + 971c: 0171 lrw r3, 0x20000948 // 9a54 + 971e: 0150 lrw r2, 0x20000292 // 9a58 + 9720: 3100 movi r1, 0 + 9722: b860 st.w r3, (r14, 0x0) + 9724: 6d0f mov r4, r3 + 9726: 0111 lrw r0, 0x20000888 // 9a5c + 9728: 4161 lsli r3, r1, 1 + 972a: 98a0 ld.w r5, (r14, 0x0) + 972c: 614c addu r5, r3 + 972e: 8da0 ld.h r5, (r5, 0x0) + 9730: 7557 sexth r5, r5 + 9732: 3ddf btsti r5, 31 + 9734: 0c1c bf 0x976c // 976c + 9736: 01d4 lrw r6, 0x20000bda // 9a60 + 9738: 58ac addu r5, r0, r3 + 973a: 618c addu r6, r3 + 973c: 8da0 ld.h r5, (r5, 0x0) + 973e: 8ec0 ld.h r6, (r6, 0x0) + 9740: 7599 zexth r6, r6 + 9742: 7555 zexth r5, r5 + 9744: 615a subu r5, r6 + 9746: 8ac0 ld.h r6, (r2, 0x0) + 9748: 6595 cmplt r5, r6 + 974a: 0811 bt 0x976c // 976c + 974c: 01b9 lrw r5, 0x20000aec // 9a64 + 974e: 6144 addu r5, r1 + 9750: 85c0 ld.b r6, (r5, 0x0) + 9752: 2600 addi r6, 1 + 9754: 7598 zextb r6, r6 + 9756: a5c0 st.b r6, (r5, 0x0) + 9758: 01db lrw r6, 0x20000090 // 9a68 + 975a: 85e0 ld.b r7, (r5, 0x0) + 975c: 86ca ld.b r6, (r6, 0xa) + 975e: 65d8 cmphs r6, r7 + 9760: 0806 bt 0x976c // 976c + 9762: 01dc lrw r6, 0x20000994 // 9a6c + 9764: 3701 movi r7, 1 + 9766: a6e0 st.b r7, (r6, 0x0) + 9768: 3600 movi r6, 0 + 976a: a5c0 st.b r6, (r5, 0x0) + 976c: 5cac addu r5, r4, r3 + 976e: 8da0 ld.h r5, (r5, 0x0) + 9770: 7557 sexth r5, r5 + 9772: 3d20 cmplti r5, 1 + 9774: 081d bt 0x97ae // 97ae + 9776: 02a4 lrw r5, 0x20000bda // 9a60 + 9778: 614c addu r5, r3 + 977a: 58cc addu r6, r0, r3 + 977c: 8da0 ld.h r5, (r5, 0x0) + 977e: 8ec0 ld.h r6, (r6, 0x0) + 9780: 7599 zexth r6, r6 + 9782: 7555 zexth r5, r5 + 9784: 615a subu r5, r6 + 9786: 8ac0 ld.h r6, (r2, 0x0) + 9788: 46c2 lsli r6, r6, 2 + 978a: 6595 cmplt r5, r6 + 978c: 0811 bt 0x97ae // 97ae + 978e: 02a6 lrw r5, 0x20000a54 // 9a70 + 9790: 6144 addu r5, r1 + 9792: 85c0 ld.b r6, (r5, 0x0) + 9794: 2600 addi r6, 1 + 9796: 7598 zextb r6, r6 + 9798: a5c0 st.b r6, (r5, 0x0) + 979a: 02cb lrw r6, 0x20000090 // 9a68 + 979c: 85e0 ld.b r7, (r5, 0x0) + 979e: 86cb ld.b r6, (r6, 0xb) + 97a0: 65d8 cmphs r6, r7 + 97a2: 0806 bt 0x97ae // 97ae + 97a4: 02cd lrw r6, 0x20000994 // 9a6c + 97a6: 3701 movi r7, 1 + 97a8: a6e0 st.b r7, (r6, 0x0) + 97aa: 3600 movi r6, 0 + 97ac: a5c0 st.b r6, (r5, 0x0) + 97ae: 5cac addu r5, r4, r3 + 97b0: 8da0 ld.h r5, (r5, 0x0) + 97b2: 7557 sexth r5, r5 + 97b4: 3ddf btsti r5, 31 + 97b6: 0c10 bf 0x97d6 // 97d6 + 97b8: 02f5 lrw r7, 0x20000bda // 9a60 + 97ba: 58cc addu r6, r0, r3 + 97bc: 61cc addu r7, r3 + 97be: 8ea0 ld.h r5, (r6, 0x0) + 97c0: 8fe0 ld.h r7, (r7, 0x0) + 97c2: 75dd zexth r7, r7 + 97c4: 7555 zexth r5, r5 + 97c6: 615e subu r5, r7 + 97c8: 8ae0 ld.h r7, (r2, 0x0) + 97ca: 65d5 cmplt r5, r7 + 97cc: 0c05 bf 0x97d6 // 97d6 + 97ce: 8ea0 ld.h r5, (r6, 0x0) + 97d0: 2d00 subi r5, 1 + 97d2: 7555 zexth r5, r5 + 97d4: aea0 st.h r5, (r6, 0x0) + 97d6: 5cac addu r5, r4, r3 + 97d8: 8da0 ld.h r5, (r5, 0x0) + 97da: 7557 sexth r5, r5 + 97dc: 3ddf btsti r5, 31 + 97de: 0c11 bf 0x9800 // 9800 + 97e0: 02ff lrw r7, 0x20000bda // 9a60 + 97e2: 58cc addu r6, r0, r3 + 97e4: 61cc addu r7, r3 + 97e6: 8ea0 ld.h r5, (r6, 0x0) + 97e8: 8fe0 ld.h r7, (r7, 0x0) + 97ea: 75dd zexth r7, r7 + 97ec: 7555 zexth r5, r5 + 97ee: 615e subu r5, r7 + 97f0: 8ae0 ld.h r7, (r2, 0x0) + 97f2: 4fe1 lsri r7, r7, 1 + 97f4: 65d5 cmplt r5, r7 + 97f6: 0805 bt 0x9800 // 9800 + 97f8: 8ea0 ld.h r5, (r6, 0x0) + 97fa: 2d01 subi r5, 2 + 97fc: 7555 zexth r5, r5 + 97fe: aea0 st.h r5, (r6, 0x0) + 9800: 5ccc addu r6, r4, r3 + 9802: 8ea0 ld.h r5, (r6, 0x0) + 9804: 7557 sexth r5, r5 + 9806: 3d20 cmplti r5, 1 + 9808: 080c bt 0x9820 // 9820 + 980a: 8ec0 ld.h r6, (r6, 0x0) + 980c: 8aa0 ld.h r5, (r2, 0x0) + 980e: 759b sexth r6, r6 + 9810: 4da1 lsri r5, r5, 1 + 9812: 6559 cmplt r6, r5 + 9814: 0c06 bf 0x9820 // 9820 + 9816: 58cc addu r6, r0, r3 + 9818: 8ea0 ld.h r5, (r6, 0x0) + 981a: 2500 addi r5, 1 + 981c: 7555 zexth r5, r5 + 981e: aea0 st.h r5, (r6, 0x0) + 9820: 5ccc addu r6, r4, r3 + 9822: 8ea0 ld.h r5, (r6, 0x0) + 9824: 7557 sexth r5, r5 + 9826: 3d20 cmplti r5, 1 + 9828: 0810 bt 0x9848 // 9848 + 982a: 8ee0 ld.h r7, (r6, 0x0) + 982c: 75df sexth r7, r7 + 982e: 8aa0 ld.h r5, (r2, 0x0) + 9830: 655d cmplt r7, r5 + 9832: 0c0b bf 0x9848 // 9848 + 9834: 8ec0 ld.h r6, (r6, 0x0) + 9836: 759b sexth r6, r6 + 9838: 4da1 lsri r5, r5, 1 + 983a: 6559 cmplt r6, r5 + 983c: 0806 bt 0x9848 // 9848 + 983e: 60c0 addu r3, r0 + 9840: 8ba0 ld.h r5, (r3, 0x0) + 9842: 2501 addi r5, 2 + 9844: 7555 zexth r5, r5 + 9846: aba0 st.h r5, (r3, 0x0) + 9848: 2100 addi r1, 1 + 984a: 3951 cmpnei r1, 17 + 984c: 2201 addi r2, 2 + 984e: 0b6d bt 0x9728 // 9728 + 9850: 0376 lrw r3, 0x200008bc // 9a74 + 9852: 9360 ld.w r3, (r3, 0x0) + 9854: 3b40 cmpnei r3, 0 + 9856: 0980 bt 0x9b56 // 9b56 + 9858: 0377 lrw r3, 0x20000a88 // 9a78 + 985a: 035f lrw r2, 0x20000292 // 9a58 + 985c: 3100 movi r1, 0 + 985e: b860 st.w r3, (r14, 0x0) + 9860: 6d0f mov r4, r3 + 9862: 0318 lrw r0, 0x20000a32 // 9a7c + 9864: 4161 lsli r3, r1, 1 + 9866: 98a0 ld.w r5, (r14, 0x0) + 9868: 614c addu r5, r3 + 986a: 8da0 ld.h r5, (r5, 0x0) + 986c: 7557 sexth r5, r5 + 986e: 3ddf btsti r5, 31 + 9870: 0c1c bf 0x98a8 // 98a8 + 9872: 03db lrw r6, 0x20000970 // 9a80 + 9874: 58ac addu r5, r0, r3 + 9876: 618c addu r6, r3 + 9878: 8da0 ld.h r5, (r5, 0x0) + 987a: 8ec0 ld.h r6, (r6, 0x0) + 987c: 7599 zexth r6, r6 + 987e: 7555 zexth r5, r5 + 9880: 615a subu r5, r6 + 9882: 8ac0 ld.h r6, (r2, 0x0) + 9884: 6595 cmplt r5, r6 + 9886: 0811 bt 0x98a8 // 98a8 + 9888: 13bf lrw r5, 0x20000acc // 9a84 + 988a: 6144 addu r5, r1 + 988c: 85c0 ld.b r6, (r5, 0x0) + 988e: 2600 addi r6, 1 + 9890: 7598 zextb r6, r6 + 9892: a5c0 st.b r6, (r5, 0x0) + 9894: 13d5 lrw r6, 0x20000090 // 9a68 + 9896: 85e0 ld.b r7, (r5, 0x0) + 9898: 86ca ld.b r6, (r6, 0xa) + 989a: 65d8 cmphs r6, r7 + 989c: 0806 bt 0x98a8 // 98a8 + 989e: 13d4 lrw r6, 0x20000994 // 9a6c + 98a0: 3701 movi r7, 1 + 98a2: a6e1 st.b r7, (r6, 0x1) + 98a4: 3600 movi r6, 0 + 98a6: a5c0 st.b r6, (r5, 0x0) + 98a8: 5cac addu r5, r4, r3 + 98aa: 8da0 ld.h r5, (r5, 0x0) + 98ac: 7557 sexth r5, r5 + 98ae: 3d20 cmplti r5, 1 + 98b0: 081d bt 0x98ea // 98ea + 98b2: 13b4 lrw r5, 0x20000970 // 9a80 + 98b4: 614c addu r5, r3 + 98b6: 58cc addu r6, r0, r3 + 98b8: 8da0 ld.h r5, (r5, 0x0) + 98ba: 8ec0 ld.h r6, (r6, 0x0) + 98bc: 7599 zexth r6, r6 + 98be: 7555 zexth r5, r5 + 98c0: 615a subu r5, r6 + 98c2: 8ac0 ld.h r6, (r2, 0x0) + 98c4: 46c2 lsli r6, r6, 2 + 98c6: 6595 cmplt r5, r6 + 98c8: 0811 bt 0x98ea // 98ea + 98ca: 13b0 lrw r5, 0x200009ce // 9a88 + 98cc: 6144 addu r5, r1 + 98ce: 85c0 ld.b r6, (r5, 0x0) + 98d0: 2600 addi r6, 1 + 98d2: 7598 zextb r6, r6 + 98d4: a5c0 st.b r6, (r5, 0x0) + 98d6: 13c5 lrw r6, 0x20000090 // 9a68 + 98d8: 85e0 ld.b r7, (r5, 0x0) + 98da: 86cb ld.b r6, (r6, 0xb) + 98dc: 65d8 cmphs r6, r7 + 98de: 0806 bt 0x98ea // 98ea + 98e0: 13c3 lrw r6, 0x20000994 // 9a6c + 98e2: 3701 movi r7, 1 + 98e4: a6e1 st.b r7, (r6, 0x1) + 98e6: 3600 movi r6, 0 + 98e8: a5c0 st.b r6, (r5, 0x0) + 98ea: 5cac addu r5, r4, r3 + 98ec: 8da0 ld.h r5, (r5, 0x0) + 98ee: 7557 sexth r5, r5 + 98f0: 3ddf btsti r5, 31 + 98f2: 0c10 bf 0x9912 // 9912 + 98f4: 13e3 lrw r7, 0x20000970 // 9a80 + 98f6: 58cc addu r6, r0, r3 + 98f8: 61cc addu r7, r3 + 98fa: 8ea0 ld.h r5, (r6, 0x0) + 98fc: 8fe0 ld.h r7, (r7, 0x0) + 98fe: 75dd zexth r7, r7 + 9900: 7555 zexth r5, r5 + 9902: 615e subu r5, r7 + 9904: 8ae0 ld.h r7, (r2, 0x0) + 9906: 65d5 cmplt r5, r7 + 9908: 0c05 bf 0x9912 // 9912 + 990a: 8ea0 ld.h r5, (r6, 0x0) + 990c: 2d00 subi r5, 1 + 990e: 7555 zexth r5, r5 + 9910: aea0 st.h r5, (r6, 0x0) + 9912: 5cac addu r5, r4, r3 + 9914: 8da0 ld.h r5, (r5, 0x0) + 9916: 7557 sexth r5, r5 + 9918: 3ddf btsti r5, 31 + 991a: 0c11 bf 0x993c // 993c + 991c: 12f9 lrw r7, 0x20000970 // 9a80 + 991e: 58cc addu r6, r0, r3 + 9920: 61cc addu r7, r3 + 9922: 8ea0 ld.h r5, (r6, 0x0) + 9924: 8fe0 ld.h r7, (r7, 0x0) + 9926: 75dd zexth r7, r7 + 9928: 7555 zexth r5, r5 + 992a: 615e subu r5, r7 + 992c: 8ae0 ld.h r7, (r2, 0x0) + 992e: 4fe1 lsri r7, r7, 1 + 9930: 65d5 cmplt r5, r7 + 9932: 0805 bt 0x993c // 993c + 9934: 8ea0 ld.h r5, (r6, 0x0) + 9936: 2d01 subi r5, 2 + 9938: 7555 zexth r5, r5 + 993a: aea0 st.h r5, (r6, 0x0) + 993c: 5ccc addu r6, r4, r3 + 993e: 8ea0 ld.h r5, (r6, 0x0) + 9940: 7557 sexth r5, r5 + 9942: 3d20 cmplti r5, 1 + 9944: 080c bt 0x995c // 995c + 9946: 8ec0 ld.h r6, (r6, 0x0) + 9948: 8aa0 ld.h r5, (r2, 0x0) + 994a: 759b sexth r6, r6 + 994c: 4da1 lsri r5, r5, 1 + 994e: 6559 cmplt r6, r5 + 9950: 0c06 bf 0x995c // 995c + 9952: 58cc addu r6, r0, r3 + 9954: 8ea0 ld.h r5, (r6, 0x0) + 9956: 2500 addi r5, 1 + 9958: 7555 zexth r5, r5 + 995a: aea0 st.h r5, (r6, 0x0) + 995c: 5ccc addu r6, r4, r3 + 995e: 8ea0 ld.h r5, (r6, 0x0) + 9960: 7557 sexth r5, r5 + 9962: 3d20 cmplti r5, 1 + 9964: 0810 bt 0x9984 // 9984 + 9966: 8ee0 ld.h r7, (r6, 0x0) + 9968: 75df sexth r7, r7 + 996a: 8aa0 ld.h r5, (r2, 0x0) + 996c: 655d cmplt r7, r5 + 996e: 0c0b bf 0x9984 // 9984 + 9970: 8ec0 ld.h r6, (r6, 0x0) + 9972: 759b sexth r6, r6 + 9974: 4da1 lsri r5, r5, 1 + 9976: 6559 cmplt r6, r5 + 9978: 0806 bt 0x9984 // 9984 + 997a: 60c0 addu r3, r0 + 997c: 8ba0 ld.h r5, (r3, 0x0) + 997e: 2501 addi r5, 2 + 9980: 7555 zexth r5, r5 + 9982: aba0 st.h r5, (r3, 0x0) + 9984: 2100 addi r1, 1 + 9986: 3951 cmpnei r1, 17 + 9988: 2201 addi r2, 2 + 998a: 0b6d bt 0x9864 // 9864 + 998c: 1260 lrw r3, 0x200009a0 // 9a8c + 998e: 9360 ld.w r3, (r3, 0x0) + 9990: 3b40 cmpnei r3, 0 + 9992: 08f8 bt 0x9b82 // 9b82 + 9994: 117f lrw r3, 0x20000bb4 // 9a90 + 9996: 1151 lrw r2, 0x20000292 // 9a58 + 9998: 3100 movi r1, 0 + 999a: b860 st.w r3, (r14, 0x0) + 999c: 6d0f mov r4, r3 + 999e: 111e lrw r0, 0x20000b48 // 9a94 + 99a0: 4161 lsli r3, r1, 1 + 99a2: 98a0 ld.w r5, (r14, 0x0) + 99a4: 614c addu r5, r3 + 99a6: 8da0 ld.h r5, (r5, 0x0) + 99a8: 7557 sexth r5, r5 + 99aa: 3ddf btsti r5, 31 + 99ac: 0c1c bf 0x99e4 // 99e4 + 99ae: 11db lrw r6, 0x20000a66 // 9a98 + 99b0: 58ac addu r5, r0, r3 + 99b2: 618c addu r6, r3 + 99b4: 8da0 ld.h r5, (r5, 0x0) + 99b6: 8ec0 ld.h r6, (r6, 0x0) + 99b8: 7599 zexth r6, r6 + 99ba: 7555 zexth r5, r5 + 99bc: 615a subu r5, r6 + 99be: 8ac0 ld.h r6, (r2, 0x0) + 99c0: 6595 cmplt r5, r6 + 99c2: 0811 bt 0x99e4 // 99e4 + 99c4: 11b6 lrw r5, 0x200009bc // 9a9c + 99c6: 6144 addu r5, r1 + 99c8: 85c0 ld.b r6, (r5, 0x0) + 99ca: 2600 addi r6, 1 + 99cc: 7598 zextb r6, r6 + 99ce: a5c0 st.b r6, (r5, 0x0) + 99d0: 11c6 lrw r6, 0x20000090 // 9a68 + 99d2: 85e0 ld.b r7, (r5, 0x0) + 99d4: 86ca ld.b r6, (r6, 0xa) + 99d6: 65d8 cmphs r6, r7 + 99d8: 0806 bt 0x99e4 // 99e4 + 99da: 11c5 lrw r6, 0x20000994 // 9a6c + 99dc: 3701 movi r7, 1 + 99de: a6e2 st.b r7, (r6, 0x2) + 99e0: 3600 movi r6, 0 + 99e2: a5c0 st.b r6, (r5, 0x0) + 99e4: 5cac addu r5, r4, r3 + 99e6: 8da0 ld.h r5, (r5, 0x0) + 99e8: 7557 sexth r5, r5 + 99ea: 3d20 cmplti r5, 1 + 99ec: 081d bt 0x9a26 // 9a26 + 99ee: 11ab lrw r5, 0x20000a66 // 9a98 + 99f0: 614c addu r5, r3 + 99f2: 58cc addu r6, r0, r3 + 99f4: 8da0 ld.h r5, (r5, 0x0) + 99f6: 8ec0 ld.h r6, (r6, 0x0) + 99f8: 7599 zexth r6, r6 + 99fa: 7555 zexth r5, r5 + 99fc: 615a subu r5, r6 + 99fe: 8ac0 ld.h r6, (r2, 0x0) + 9a00: 46c2 lsli r6, r6, 2 + 9a02: 6595 cmplt r5, r6 + 9a04: 0811 bt 0x9a26 // 9a26 + 9a06: 11a7 lrw r5, 0x200008aa // 9aa0 + 9a08: 6144 addu r5, r1 + 9a0a: 85c0 ld.b r6, (r5, 0x0) + 9a0c: 2600 addi r6, 1 + 9a0e: 7598 zextb r6, r6 + 9a10: a5c0 st.b r6, (r5, 0x0) + 9a12: 10d6 lrw r6, 0x20000090 // 9a68 + 9a14: 85e0 ld.b r7, (r5, 0x0) + 9a16: 86cb ld.b r6, (r6, 0xb) + 9a18: 65d8 cmphs r6, r7 + 9a1a: 0806 bt 0x9a26 // 9a26 + 9a1c: 10d4 lrw r6, 0x20000994 // 9a6c + 9a1e: 3701 movi r7, 1 + 9a20: a6e2 st.b r7, (r6, 0x2) + 9a22: 3600 movi r6, 0 + 9a24: a5c0 st.b r6, (r5, 0x0) + 9a26: 5cac addu r5, r4, r3 + 9a28: 8da0 ld.h r5, (r5, 0x0) + 9a2a: 7557 sexth r5, r5 + 9a2c: 3ddf btsti r5, 31 + 9a2e: 0c3f bf 0x9aac // 9aac + 9a30: 10fa lrw r7, 0x20000a66 // 9a98 + 9a32: 58cc addu r6, r0, r3 + 9a34: 61cc addu r7, r3 + 9a36: 8ea0 ld.h r5, (r6, 0x0) + 9a38: 8fe0 ld.h r7, (r7, 0x0) + 9a3a: 75dd zexth r7, r7 + 9a3c: 7555 zexth r5, r5 + 9a3e: 615e subu r5, r7 + 9a40: 8ae0 ld.h r7, (r2, 0x0) + 9a42: 65d5 cmplt r5, r7 + 9a44: 0c34 bf 0x9aac // 9aac + 9a46: 042f br 0x9aa4 // 9aa4 + 9a48: 20000a26 .long 0x20000a26 + 9a4c: 20000265 .long 0x20000265 + 9a50: 20000928 .long 0x20000928 + 9a54: 20000948 .long 0x20000948 + 9a58: 20000292 .long 0x20000292 + 9a5c: 20000888 .long 0x20000888 + 9a60: 20000bda .long 0x20000bda + 9a64: 20000aec .long 0x20000aec + 9a68: 20000090 .long 0x20000090 + 9a6c: 20000994 .long 0x20000994 + 9a70: 20000a54 .long 0x20000a54 + 9a74: 200008bc .long 0x200008bc + 9a78: 20000a88 .long 0x20000a88 + 9a7c: 20000a32 .long 0x20000a32 + 9a80: 20000970 .long 0x20000970 + 9a84: 20000acc .long 0x20000acc + 9a88: 200009ce .long 0x200009ce + 9a8c: 200009a0 .long 0x200009a0 + 9a90: 20000bb4 .long 0x20000bb4 + 9a94: 20000b48 .long 0x20000b48 + 9a98: 20000a66 .long 0x20000a66 + 9a9c: 200009bc .long 0x200009bc + 9aa0: 200008aa .long 0x200008aa + 9aa4: 8ea0 ld.h r5, (r6, 0x0) + 9aa6: 2d00 subi r5, 1 + 9aa8: 7555 zexth r5, r5 + 9aaa: aea0 st.h r5, (r6, 0x0) + 9aac: 5cac addu r5, r4, r3 + 9aae: 8da0 ld.h r5, (r5, 0x0) + 9ab0: 7557 sexth r5, r5 + 9ab2: 3ddf btsti r5, 31 + 9ab4: 0c11 bf 0x9ad6 // 9ad6 + 9ab6: 11ff lrw r7, 0x20000a66 // 9bb0 + 9ab8: 58cc addu r6, r0, r3 + 9aba: 61cc addu r7, r3 + 9abc: 8ea0 ld.h r5, (r6, 0x0) + 9abe: 8fe0 ld.h r7, (r7, 0x0) + 9ac0: 75dd zexth r7, r7 + 9ac2: 7555 zexth r5, r5 + 9ac4: 615e subu r5, r7 + 9ac6: 8ae0 ld.h r7, (r2, 0x0) + 9ac8: 4fe1 lsri r7, r7, 1 + 9aca: 65d5 cmplt r5, r7 + 9acc: 0805 bt 0x9ad6 // 9ad6 + 9ace: 8ea0 ld.h r5, (r6, 0x0) + 9ad0: 2d01 subi r5, 2 + 9ad2: 7555 zexth r5, r5 + 9ad4: aea0 st.h r5, (r6, 0x0) + 9ad6: 5ccc addu r6, r4, r3 + 9ad8: 8ea0 ld.h r5, (r6, 0x0) + 9ada: 7557 sexth r5, r5 + 9adc: 3d20 cmplti r5, 1 + 9ade: 080c bt 0x9af6 // 9af6 + 9ae0: 8ec0 ld.h r6, (r6, 0x0) + 9ae2: 8aa0 ld.h r5, (r2, 0x0) + 9ae4: 759b sexth r6, r6 + 9ae6: 4da1 lsri r5, r5, 1 + 9ae8: 6559 cmplt r6, r5 + 9aea: 0c06 bf 0x9af6 // 9af6 + 9aec: 58cc addu r6, r0, r3 + 9aee: 8ea0 ld.h r5, (r6, 0x0) + 9af0: 2500 addi r5, 1 + 9af2: 7555 zexth r5, r5 + 9af4: aea0 st.h r5, (r6, 0x0) + 9af6: 5ccc addu r6, r4, r3 + 9af8: 8ea0 ld.h r5, (r6, 0x0) + 9afa: 7557 sexth r5, r5 + 9afc: 3d20 cmplti r5, 1 + 9afe: 0810 bt 0x9b1e // 9b1e + 9b00: 8ee0 ld.h r7, (r6, 0x0) + 9b02: 75df sexth r7, r7 + 9b04: 8aa0 ld.h r5, (r2, 0x0) + 9b06: 655d cmplt r7, r5 + 9b08: 0c0b bf 0x9b1e // 9b1e + 9b0a: 8ec0 ld.h r6, (r6, 0x0) + 9b0c: 759b sexth r6, r6 + 9b0e: 4da1 lsri r5, r5, 1 + 9b10: 6559 cmplt r6, r5 + 9b12: 0806 bt 0x9b1e // 9b1e + 9b14: 60c0 addu r3, r0 + 9b16: 8ba0 ld.h r5, (r3, 0x0) + 9b18: 2501 addi r5, 2 + 9b1a: 7555 zexth r5, r5 + 9b1c: aba0 st.h r5, (r3, 0x0) + 9b1e: 2100 addi r1, 1 + 9b20: 3951 cmpnei r1, 17 + 9b22: 2201 addi r2, 2 + 9b24: 0b3e bt 0x99a0 // 99a0 + 9b26: 1401 addi r14, r14, 4 + 9b28: 1494 pop r4-r7, r15 + 9b2a: e3fff6c9 bsr 0x88bc // 88bc + 9b2e: 1162 lrw r3, 0x20000090 // 9bb4 + 9b30: 836c ld.b r3, (r3, 0xc) + 9b32: 64c0 cmphs r0, r3 + 9b34: 1141 lrw r2, 0x200008c0 // 9bb8 + 9b36: 0c0e bf 0x9b52 // 9b52 + 9b38: 8260 ld.b r3, (r2, 0x0) + 9b3a: 74cc zextb r3, r3 + 9b3c: 3b01 cmphsi r3, 2 + 9b3e: 0c05 bf 0x9b48 // 9b48 + 9b40: 107f lrw r3, 0x20000994 // 9bbc + 9b42: 3201 movi r2, 1 + 9b44: a340 st.b r2, (r3, 0x0) + 9b46: 0685 br 0x9850 // 9850 + 9b48: 8260 ld.b r3, (r2, 0x0) + 9b4a: 2300 addi r3, 1 + 9b4c: 74cc zextb r3, r3 + 9b4e: a260 st.b r3, (r2, 0x0) + 9b50: 0680 br 0x9850 // 9850 + 9b52: 3300 movi r3, 0 + 9b54: 07fd br 0x9b4e // 9b4e + 9b56: e3fff6c7 bsr 0x88e4 // 88e4 + 9b5a: 1077 lrw r3, 0x20000090 // 9bb4 + 9b5c: 836c ld.b r3, (r3, 0xc) + 9b5e: 64c0 cmphs r0, r3 + 9b60: 1056 lrw r2, 0x200008c0 // 9bb8 + 9b62: 0c0e bf 0x9b7e // 9b7e + 9b64: 8261 ld.b r3, (r2, 0x1) + 9b66: 74cc zextb r3, r3 + 9b68: 3b01 cmphsi r3, 2 + 9b6a: 0c05 bf 0x9b74 // 9b74 + 9b6c: 1074 lrw r3, 0x20000994 // 9bbc + 9b6e: 3201 movi r2, 1 + 9b70: a341 st.b r2, (r3, 0x1) + 9b72: 070d br 0x998c // 998c + 9b74: 8261 ld.b r3, (r2, 0x1) + 9b76: 2300 addi r3, 1 + 9b78: 74cc zextb r3, r3 + 9b7a: a261 st.b r3, (r2, 0x1) + 9b7c: 0708 br 0x998c // 998c + 9b7e: 3300 movi r3, 0 + 9b80: 07fd br 0x9b7a // 9b7a + 9b82: e3fff6c5 bsr 0x890c // 890c + 9b86: 106c lrw r3, 0x20000090 // 9bb4 + 9b88: 836c ld.b r3, (r3, 0xc) + 9b8a: 64c0 cmphs r0, r3 + 9b8c: 104b lrw r2, 0x200008c0 // 9bb8 + 9b8e: 0c0e bf 0x9baa // 9baa + 9b90: 8262 ld.b r3, (r2, 0x2) + 9b92: 74cc zextb r3, r3 + 9b94: 3b01 cmphsi r3, 2 + 9b96: 0c05 bf 0x9ba0 // 9ba0 + 9b98: 1069 lrw r3, 0x20000994 // 9bbc + 9b9a: 3201 movi r2, 1 + 9b9c: a342 st.b r2, (r3, 0x2) + 9b9e: 07c4 br 0x9b26 // 9b26 + 9ba0: 8262 ld.b r3, (r2, 0x2) + 9ba2: 2300 addi r3, 1 + 9ba4: 74cc zextb r3, r3 + 9ba6: a262 st.b r3, (r2, 0x2) + 9ba8: 07bf br 0x9b26 // 9b26 + 9baa: 3300 movi r3, 0 + 9bac: 07fd br 0x9ba6 // 9ba6 + 9bae: 0000 bkpt + 9bb0: 20000a66 .long 0x20000a66 + 9bb4: 20000090 .long 0x20000090 + 9bb8: 200008c0 .long 0x200008c0 + 9bbc: 20000994 .long 0x20000994 + +Disassembly of section .text.TK_result_prog: + +00009bc0 : + 9bc0: 14d4 push r4-r7, r15 + 9bc2: 1424 subi r14, r14, 16 + 9bc4: 111f lrw r0, 0x20000928 // 9cc0 + 9bc6: 1220 lrw r1, 0x200008bc // 9cc4 + 9bc8: 1240 lrw r2, 0x200009a0 // 9cc8 + 9bca: b821 st.w r1, (r14, 0x4) + 9bcc: 9060 ld.w r3, (r0, 0x0) + 9bce: 91a0 ld.w r5, (r1, 0x0) + 9bd0: 6cd4 or r3, r5 + 9bd2: 9280 ld.w r4, (r2, 0x0) + 9bd4: 6cd0 or r3, r4 + 9bd6: 3b40 cmpnei r3, 0 + 9bd8: b800 st.w r0, (r14, 0x0) + 9bda: b842 st.w r2, (r14, 0x8) + 9bdc: 119c lrw r4, 0x20000a28 // 9ccc + 9bde: 0c67 bf 0x9cac // 9cac + 9be0: 111c lrw r0, 0x20000b00 // 9cd0 + 9be2: 3500 movi r5, 0 + 9be4: 117c lrw r3, 0x20000ac8 // 9cd4 + 9be6: b803 st.w r0, (r14, 0xc) + 9be8: 3201 movi r2, 1 + 9bea: 7094 lsl r2, r5 + 9bec: b040 st.w r2, (r0, 0x0) + 9bee: 9840 ld.w r2, (r14, 0x0) + 9bf0: 9240 ld.w r2, (r2, 0x0) + 9bf2: 9020 ld.w r1, (r0, 0x0) + 9bf4: 6884 and r2, r1 + 9bf6: b340 st.w r2, (r3, 0x0) + 9bf8: 9841 ld.w r2, (r14, 0x4) + 9bfa: 9240 ld.w r2, (r2, 0x0) + 9bfc: 9020 ld.w r1, (r0, 0x0) + 9bfe: 6848 and r1, r2 + 9c00: 1156 lrw r2, 0x20000b8c // 9cd8 + 9c02: b220 st.w r1, (r2, 0x0) + 9c04: 9822 ld.w r1, (r14, 0x8) + 9c06: 9120 ld.w r1, (r1, 0x0) + 9c08: 90c0 ld.w r6, (r0, 0x0) + 9c0a: 6984 and r6, r1 + 9c0c: 1134 lrw r1, 0x20000a2c // 9cdc + 9c0e: b1c0 st.w r6, (r1, 0x0) + 9c10: 93e0 ld.w r7, (r3, 0x0) + 9c12: 92c0 ld.w r6, (r2, 0x0) + 9c14: 659e cmpne r7, r6 + 9c16: 0807 bt 0x9c24 // 9c24 + 9c18: 92e0 ld.w r7, (r2, 0x0) + 9c1a: 91c0 ld.w r6, (r1, 0x0) + 9c1c: 659e cmpne r7, r6 + 9c1e: 0803 bt 0x9c24 // 9c24 + 9c20: 9340 ld.w r2, (r3, 0x0) + 9c22: 040c br 0x9c3a // 9c3a + 9c24: 92c0 ld.w r6, (r2, 0x0) + 9c26: 3e40 cmpnei r6, 0 + 9c28: 0c29 bf 0x9c7a // 9c7a + 9c2a: 91c0 ld.w r6, (r1, 0x0) + 9c2c: 3e40 cmpnei r6, 0 + 9c2e: 0c26 bf 0x9c7a // 9c7a + 9c30: 92e0 ld.w r7, (r2, 0x0) + 9c32: 91c0 ld.w r6, (r1, 0x0) + 9c34: 659e cmpne r7, r6 + 9c36: 0822 bt 0x9c7a // 9c7a + 9c38: 9240 ld.w r2, (r2, 0x0) + 9c3a: 9420 ld.w r1, (r4, 0x0) + 9c3c: 6c84 or r2, r1 + 9c3e: 2500 addi r5, 1 + 9c40: 3d51 cmpnei r5, 17 + 9c42: b440 st.w r2, (r4, 0x0) + 9c44: 0bd2 bt 0x9be8 // 9be8 + 9c46: 9460 ld.w r3, (r4, 0x0) + 9c48: 3b40 cmpnei r3, 0 + 9c4a: 1146 lrw r2, 0x20000b30 // 9ce0 + 9c4c: 0c32 bf 0x9cb0 // 9cb0 + 9c4e: 9420 ld.w r1, (r4, 0x0) + 9c50: 9260 ld.w r3, (r2, 0x0) + 9c52: 64c6 cmpne r1, r3 + 9c54: 0c06 bf 0x9c60 // 9c60 + 9c56: 9460 ld.w r3, (r4, 0x0) + 9c58: b260 st.w r3, (r2, 0x0) + 9c5a: 3200 movi r2, 0 + 9c5c: 1162 lrw r3, 0x20000946 // 9ce4 + 9c5e: a340 st.b r2, (r3, 0x0) + 9c60: e3fff61a bsr 0x8894 // 8894 + 9c64: 1161 lrw r3, 0x2000026c // 9ce8 + 9c66: 8360 ld.b r3, (r3, 0x0) + 9c68: 640c cmphs r3, r0 + 9c6a: 0806 bt 0x9c76 // 9c76 + 9c6c: 3300 movi r3, 0 + 9c6e: b460 st.w r3, (r4, 0x0) + 9c70: 3201 movi r2, 1 + 9c72: 107d lrw r3, 0x20000946 // 9ce4 + 9c74: a340 st.b r2, (r3, 0x0) + 9c76: 1404 addi r14, r14, 16 + 9c78: 1494 pop r4-r7, r15 + 9c7a: 93c0 ld.w r6, (r3, 0x0) + 9c7c: 3e40 cmpnei r6, 0 + 9c7e: 0c08 bf 0x9c8e // 9c8e + 9c80: 92c0 ld.w r6, (r2, 0x0) + 9c82: 3e40 cmpnei r6, 0 + 9c84: 0c05 bf 0x9c8e // 9c8e + 9c86: 93c0 ld.w r6, (r3, 0x0) + 9c88: 9240 ld.w r2, (r2, 0x0) + 9c8a: 649a cmpne r6, r2 + 9c8c: 0fca bf 0x9c20 // 9c20 + 9c8e: 9340 ld.w r2, (r3, 0x0) + 9c90: 3a40 cmpnei r2, 0 + 9c92: 0c08 bf 0x9ca2 // 9ca2 + 9c94: 9140 ld.w r2, (r1, 0x0) + 9c96: 3a40 cmpnei r2, 0 + 9c98: 0c05 bf 0x9ca2 // 9ca2 + 9c9a: 9340 ld.w r2, (r3, 0x0) + 9c9c: 9120 ld.w r1, (r1, 0x0) + 9c9e: 644a cmpne r2, r1 + 9ca0: 0fc0 bf 0x9c20 // 9c20 + 9ca2: 9843 ld.w r2, (r14, 0xc) + 9ca4: 9220 ld.w r1, (r2, 0x0) + 9ca6: 9440 ld.w r2, (r4, 0x0) + 9ca8: 6885 andn r2, r1 + 9caa: 07ca br 0x9c3e // 9c3e + 9cac: b460 st.w r3, (r4, 0x0) + 9cae: 07cc br 0x9c46 // 9c46 + 9cb0: b260 st.w r3, (r2, 0x0) + 9cb2: 3100 movi r1, 0 + 9cb4: 104c lrw r2, 0x20000946 // 9ce4 + 9cb6: a220 st.b r1, (r2, 0x0) + 9cb8: 104d lrw r2, 0x20000a20 // 9cec + 9cba: b260 st.w r3, (r2, 0x0) + 9cbc: 07dd br 0x9c76 // 9c76 + 9cbe: 0000 bkpt + 9cc0: 20000928 .long 0x20000928 + 9cc4: 200008bc .long 0x200008bc + 9cc8: 200009a0 .long 0x200009a0 + 9ccc: 20000a28 .long 0x20000a28 + 9cd0: 20000b00 .long 0x20000b00 + 9cd4: 20000ac8 .long 0x20000ac8 + 9cd8: 20000b8c .long 0x20000b8c + 9cdc: 20000a2c .long 0x20000a2c + 9ce0: 20000b30 .long 0x20000b30 + 9ce4: 20000946 .long 0x20000946 + 9ce8: 2000026c .long 0x2000026c + 9cec: 20000a20 .long 0x20000a20 + +Disassembly of section .text.get_key_seq: + +00009cf0 : + 9cf0: 14c4 push r4-r7 + 9cf2: 106c lrw r3, 0x20000268 // 9d20 + 9cf4: 3200 movi r2, 0 + 9cf6: 9380 ld.w r4, (r3, 0x0) + 9cf8: 3000 movi r0, 0 + 9cfa: 3300 movi r3, 0 + 9cfc: 3501 movi r5, 1 + 9cfe: 10ca lrw r6, 0x20000b34 // 9d24 + 9d00: 6c53 mov r1, r4 + 9d02: 704d lsr r1, r3 + 9d04: 6854 and r1, r5 + 9d06: 3940 cmpnei r1, 0 + 9d08: 75cc zextb r7, r3 + 9d0a: 0c06 bf 0x9d16 // 9d16 + 9d0c: 5e28 addu r1, r6, r2 + 9d0e: 2200 addi r2, 1 + 9d10: 2000 addi r0, 1 + 9d12: a1e0 st.b r7, (r1, 0x0) + 9d14: 7488 zextb r2, r2 + 9d16: 2300 addi r3, 1 + 9d18: 3b51 cmpnei r3, 17 + 9d1a: 0bf3 bt 0x9d00 // 9d00 + 9d1c: 7400 zextb r0, r0 + 9d1e: 1484 pop r4-r7 + 9d20: 20000268 .long 0x20000268 + 9d24: 20000b34 .long 0x20000b34 + +Disassembly of section .text.CORET_CONFIG: + +00009d28 : + 9d28: 14d0 push r15 + 9d2a: e3ffc911 bsr 0x2f4c // 2f4c + 9d2e: 3180 movi r1, 128 + 9d30: 4124 lsli r1, r1, 4 + 9d32: 3001 movi r0, 1 + 9d34: e3ffc08c bsr 0x1e4c // 1e4c + 9d38: 1068 lrw r3, 0x20000064 // 9d58 + 9d3a: 1049 lrw r2, 0x200002b8 // 9d5c + 9d3c: 9360 ld.w r3, (r3, 0x0) + 9d3e: 9240 ld.w r2, (r2, 0x0) + 9d40: b345 st.w r2, (r3, 0x14) + 9d42: e3ffc935 bsr 0x2fac // 2fac + 9d46: e3ffc923 bsr 0x2f8c // 2f8c + 9d4a: e3ffc929 bsr 0x2f9c // 2f9c + 9d4e: e3ffc917 bsr 0x2f7c // 2f7c + 9d52: e3ffc909 bsr 0x2f64 // 2f64 + 9d56: 1490 pop r15 + 9d58: 20000064 .long 0x20000064 + 9d5c: 200002b8 .long 0x200002b8 + +Disassembly of section .text.tk_chxval_seqxcon_clr: + +00009d60 : + 9d60: 1066 lrw r3, 0x20000054 // 9d78 + 9d62: 3100 movi r1, 0 + 9d64: 9300 ld.w r0, (r3, 0x0) + 9d66: 3300 movi r3, 0 + 9d68: 4342 lsli r2, r3, 2 + 9d6a: 2300 addi r3, 1 + 9d6c: 6080 addu r2, r0 + 9d6e: 3b51 cmpnei r3, 17 + 9d70: b220 st.w r1, (r2, 0x0) + 9d72: b232 st.w r1, (r2, 0x48) + 9d74: 0bfa bt 0x9d68 // 9d68 + 9d76: 783c jmp r15 + 9d78: 20000054 .long 0x20000054 + +Disassembly of section .text.tk_freq_para_init: + +00009d7c : + 9d7c: 14d1 push r4, r15 + 9d7e: 107e lrw r3, 0x20000239 // 9df4 + 9d80: 8360 ld.b r3, (r3, 0x0) + 9d82: 3b40 cmpnei r3, 0 + 9d84: 080c bt 0x9d9c // 9d9c + 9d86: 107d lrw r3, 0x20000070 // 9df8 + 9d88: 105d lrw r2, 0x20000bfc // 9dfc + 9d8a: 932c ld.w r1, (r3, 0x30) + 9d8c: b220 st.w r1, (r2, 0x0) + 9d8e: 932d ld.w r1, (r3, 0x34) + 9d90: 105c lrw r2, 0x2000096c // 9e00 + 9d92: b220 st.w r1, (r2, 0x0) + 9d94: 934e ld.w r2, (r3, 0x38) + 9d96: 107c lrw r3, 0x2000099c // 9e04 + 9d98: b340 st.w r2, (r3, 0x0) + 9d9a: 1491 pop r4, r15 + 9d9c: 3b41 cmpnei r3, 1 + 9d9e: 0bfe bt 0x9d9a // 9d9a + 9da0: 1076 lrw r3, 0x20000070 // 9df8 + 9da2: 1057 lrw r2, 0x20000bfc // 9dfc + 9da4: 932d ld.w r1, (r3, 0x34) + 9da6: b220 st.w r1, (r2, 0x0) + 9da8: 932d ld.w r1, (r3, 0x34) + 9daa: 1056 lrw r2, 0x2000096c // 9e00 + 9dac: b220 st.w r1, (r2, 0x0) + 9dae: 934d ld.w r2, (r3, 0x34) + 9db0: 3105 movi r1, 5 + 9db2: 1075 lrw r3, 0x2000099c // 9e04 + 9db4: b340 st.w r2, (r3, 0x0) + 9db6: 1075 lrw r3, 0x20000058 // 9e08 + 9db8: 9380 ld.w r4, (r3, 0x0) + 9dba: 1075 lrw r3, 0x20000290 // 9e0c + 9dbc: 8300 ld.b r0, (r3, 0x0) + 9dbe: e3ffcf39 bsr 0x3c30 // 3c30 <__udivsi3> + 9dc2: 7400 zextb r0, r0 + 9dc4: 1073 lrw r3, 0x2000023a // 9e10 + 9dc6: b408 st.w r0, (r4, 0x20) + 9dc8: 8300 ld.b r0, (r3, 0x0) + 9dca: 3804 cmphsi r0, 5 + 9dcc: 1072 lrw r3, 0x20000a24 // 9e14 + 9dce: 0810 bt 0x9dee // 9dee + 9dd0: e3ffb796 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 9dd4: 090d0703 .long 0x090d0703 + 9dd8: 000b .short 0x000b + 9dda: 3296 movi r2, 150 + 9ddc: 4242 lsli r2, r2, 2 + 9dde: ab40 st.h r2, (r3, 0x0) + 9de0: 07dd br 0x9d9a // 9d9a + 9de2: 104e lrw r2, 0x5dc // 9e18 + 9de4: 07fd br 0x9dde // 9dde + 9de6: 104e lrw r2, 0x1194 // 9e1c + 9de8: 07fb br 0x9dde // 9dde + 9dea: 104e lrw r2, 0x1770 // 9e20 + 9dec: 07f9 br 0x9dde // 9dde + 9dee: 104e lrw r2, 0xbb8 // 9e24 + 9df0: 07f7 br 0x9dde // 9dde + 9df2: 0000 bkpt + 9df4: 20000239 .long 0x20000239 + 9df8: 20000070 .long 0x20000070 + 9dfc: 20000bfc .long 0x20000bfc + 9e00: 2000096c .long 0x2000096c + 9e04: 2000099c .long 0x2000099c + 9e08: 20000058 .long 0x20000058 + 9e0c: 20000290 .long 0x20000290 + 9e10: 2000023a .long 0x2000023a + 9e14: 20000a24 .long 0x20000a24 + 9e18: 000005dc .long 0x000005dc + 9e1c: 00001194 .long 0x00001194 + 9e20: 00001770 .long 0x00001770 + 9e24: 00000bb8 .long 0x00000bb8 + +Disassembly of section .text.tk_reserved_init: + +00009e28 : + 9e28: 1065 lrw r3, 0x2000005c // 9e3c + 9e2a: 1046 lrw r2, 0xa67a6cc7 // 9e40 + 9e2c: 9360 ld.w r3, (r3, 0x0) + 9e2e: b356 st.w r2, (r3, 0x58) + 9e30: 1045 lrw r2, 0x21f1f04 // 9e44 + 9e32: b355 st.w r2, (r3, 0x54) + 9e34: 1045 lrw r2, 0x69966996 // 9e48 + 9e36: 1066 lrw r3, 0x40011180 // 9e4c + 9e38: b35f st.w r2, (r3, 0x7c) + 9e3a: 783c jmp r15 + 9e3c: 2000005c .long 0x2000005c + 9e40: a67a6cc7 .long 0xa67a6cc7 + 9e44: 021f1f04 .long 0x021f1f04 + 9e48: 69966996 .long 0x69966996 + 9e4c: 40011180 .long 0x40011180 + +Disassembly of section .text.TKEYIntHandler: + +00009e50 : + 9e50: 1460 nie + 9e52: 1462 ipush + 9e54: 14d1 push r4, r15 + 9e56: 1183 lrw r4, 0x20000070 // 9ee0 + 9e58: 8460 ld.b r3, (r4, 0x0) + 9e5a: 3b40 cmpnei r3, 0 + 9e5c: 0815 bt 0x9e86 // 9e86 + 9e5e: 3301 movi r3, 1 + 9e60: a460 st.b r3, (r4, 0x0) + 9e62: 1161 lrw r3, 0x20000934 // 9ee4 + 9e64: 8360 ld.b r3, (r3, 0x0) + 9e66: 3b41 cmpnei r3, 1 + 9e68: 080f bt 0x9e86 // 9e86 + 9e6a: 1140 lrw r2, 0x20000b45 // 9ee8 + 9e6c: 8260 ld.b r3, (r2, 0x0) + 9e6e: 2300 addi r3, 1 + 9e70: 74cc zextb r3, r3 + 9e72: a260 st.b r3, (r2, 0x0) + 9e74: 8260 ld.b r3, (r2, 0x0) + 9e76: 3b43 cmpnei r3, 3 + 9e78: 0803 bt 0x9e7e // 9e7e + 9e7a: 3300 movi r3, 0 + 9e7c: a260 st.b r3, (r2, 0x0) + 9e7e: e3fff4a5 bsr 0x87c8 // 87c8 + 9e82: 3301 movi r3, 1 + 9e84: a461 st.b r3, (r4, 0x1) + 9e86: 107a lrw r3, 0x20000058 // 9eec + 9e88: 3101 movi r1, 1 + 9e8a: 9360 ld.w r3, (r3, 0x0) + 9e8c: 934a ld.w r2, (r3, 0x28) + 9e8e: 6884 and r2, r1 + 9e90: 3a40 cmpnei r2, 0 + 9e92: 0c02 bf 0x9e96 // 9e96 + 9e94: b32c st.w r1, (r3, 0x30) + 9e96: 934a ld.w r2, (r3, 0x28) + 9e98: 3102 movi r1, 2 + 9e9a: 6884 and r2, r1 + 9e9c: 3a40 cmpnei r2, 0 + 9e9e: 0c02 bf 0x9ea2 // 9ea2 + 9ea0: b32c st.w r1, (r3, 0x30) + 9ea2: 934a ld.w r2, (r3, 0x28) + 9ea4: 3104 movi r1, 4 + 9ea6: 6884 and r2, r1 + 9ea8: 3a40 cmpnei r2, 0 + 9eaa: 0c02 bf 0x9eae // 9eae + 9eac: b32c st.w r1, (r3, 0x30) + 9eae: 934a ld.w r2, (r3, 0x28) + 9eb0: 3108 movi r1, 8 + 9eb2: 6884 and r2, r1 + 9eb4: 3a40 cmpnei r2, 0 + 9eb6: 0c02 bf 0x9eba // 9eba + 9eb8: b32c st.w r1, (r3, 0x30) + 9eba: 934a ld.w r2, (r3, 0x28) + 9ebc: 3110 movi r1, 16 + 9ebe: 6884 and r2, r1 + 9ec0: 3a40 cmpnei r2, 0 + 9ec2: 0c02 bf 0x9ec6 // 9ec6 + 9ec4: b32c st.w r1, (r3, 0x30) + 9ec6: 934a ld.w r2, (r3, 0x28) + 9ec8: 3120 movi r1, 32 + 9eca: 6884 and r2, r1 + 9ecc: 3a40 cmpnei r2, 0 + 9ece: 0c02 bf 0x9ed2 // 9ed2 + 9ed0: b32c st.w r1, (r3, 0x30) + 9ed2: d9ee2001 ld.w r15, (r14, 0x4) + 9ed6: 9880 ld.w r4, (r14, 0x0) + 9ed8: 1402 addi r14, r14, 8 + 9eda: 1463 ipop + 9edc: 1461 nir + 9ede: 0000 bkpt + 9ee0: 20000070 .long 0x20000070 + 9ee4: 20000934 .long 0x20000934 + 9ee8: 20000b45 .long 0x20000b45 + 9eec: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +00009ef0 : + 9ef0: 1460 nie + 9ef2: 1462 ipush + 9ef4: 14d3 push r4-r6, r15 + 9ef6: 1269 lrw r3, 0x20000064 // a018 + 9ef8: 3400 movi r4, 0 + 9efa: 9360 ld.w r3, (r3, 0x0) + 9efc: b386 st.w r4, (r3, 0x18) + 9efe: 1268 lrw r3, 0x20000934 // a01c + 9f00: 8360 ld.b r3, (r3, 0x0) + 9f02: 3b41 cmpnei r3, 1 + 9f04: 0840 bt 0x9f84 // 9f84 + 9f06: e3fff6f5 bsr 0x8cf0 // 8cf0 + 9f0a: e3fff727 bsr 0x8d58 // 8d58 + 9f0e: e3fffb5d bsr 0x95c8 // 95c8 + 9f12: e3fffbef bsr 0x96f0 // 96f0 + 9f16: e3fff3c5 bsr 0x86a0 // 86a0 + 9f1a: e3fffe53 bsr 0x9bc0 // 9bc0 + 9f1e: 1261 lrw r3, 0x20000a28 // a020 + 9f20: 9360 ld.w r3, (r3, 0x0) + 9f22: 3b40 cmpnei r3, 0 + 9f24: 0c12 bf 0x9f48 // 9f48 + 9f26: 1260 lrw r3, 0x2000023c // a024 + 9f28: 9340 ld.w r2, (r3, 0x0) + 9f2a: 3a40 cmpnei r2, 0 + 9f2c: 0c0e bf 0x9f48 // 9f48 + 9f2e: 117f lrw r3, 0x20000a20 // a028 + 9f30: 3064 movi r0, 100 + 9f32: 9320 ld.w r1, (r3, 0x0) + 9f34: 2100 addi r1, 1 + 9f36: b320 st.w r1, (r3, 0x0) + 9f38: 9320 ld.w r1, (r3, 0x0) + 9f3a: 7c80 mult r2, r0 + 9f3c: 6448 cmphs r2, r1 + 9f3e: 0805 bt 0x9f48 // 9f48 + 9f40: 115b lrw r2, 0x200009cd // a02c + 9f42: 3101 movi r1, 1 + 9f44: a220 st.b r1, (r2, 0x0) + 9f46: b380 st.w r4, (r3, 0x0) + 9f48: 117a lrw r3, 0x20000235 // a030 + 9f4a: 8340 ld.b r2, (r3, 0x0) + 9f4c: 3a41 cmpnei r2, 1 + 9f4e: 0823 bt 0x9f94 // 9f94 + 9f50: 1139 lrw r1, 0x20000928 // a034 + 9f52: 115a lrw r2, 0x200008bc // a038 + 9f54: 9100 ld.w r0, (r1, 0x0) + 9f56: 9260 ld.w r3, (r2, 0x0) + 9f58: 64c2 cmpne r0, r3 + 9f5a: 1179 lrw r3, 0x20000ac4 // a03c + 9f5c: 080a bt 0x9f70 // 9f70 + 9f5e: 9280 ld.w r4, (r2, 0x0) + 9f60: 1158 lrw r2, 0x200009a0 // a040 + 9f62: 9200 ld.w r0, (r2, 0x0) + 9f64: 6412 cmpne r4, r0 + 9f66: 0805 bt 0x9f70 // 9f70 + 9f68: 9120 ld.w r1, (r1, 0x0) + 9f6a: 9240 ld.w r2, (r2, 0x0) + 9f6c: 6486 cmpne r1, r2 + 9f6e: 0c09 bf 0x9f80 // 9f80 + 9f70: 9340 ld.w r2, (r3, 0x0) + 9f72: 2200 addi r2, 1 + 9f74: b340 st.w r2, (r3, 0x0) + 9f76: 1154 lrw r2, 0x20000090 // a044 + 9f78: 823c ld.b r1, (r2, 0x1c) + 9f7a: 9340 ld.w r2, (r3, 0x0) + 9f7c: 6484 cmphs r1, r2 + 9f7e: 0803 bt 0x9f84 // 9f84 + 9f80: 3200 movi r2, 0 + 9f82: b340 st.w r2, (r3, 0x0) + 9f84: d9ee2003 ld.w r15, (r14, 0xc) + 9f88: 98c2 ld.w r6, (r14, 0x8) + 9f8a: 98a1 ld.w r5, (r14, 0x4) + 9f8c: 9880 ld.w r4, (r14, 0x0) + 9f8e: 1404 addi r14, r14, 16 + 9f90: 1463 ipop + 9f92: 1461 nir + 9f94: 83a0 ld.b r5, (r3, 0x0) + 9f96: 7554 zextb r5, r5 + 9f98: 3d40 cmpnei r5, 0 + 9f9a: 0bf5 bt 0x9f84 // 9f84 + 9f9c: 1166 lrw r3, 0x20000928 // a034 + 9f9e: 1147 lrw r2, 0x200008bc // a038 + 9fa0: 9300 ld.w r0, (r3, 0x0) + 9fa2: 9220 ld.w r1, (r2, 0x0) + 9fa4: 6442 cmpne r0, r1 + 9fa6: 1127 lrw r1, 0x200009a0 // a040 + 9fa8: 1105 lrw r0, 0x20000ac4 // a03c + 9faa: 0c33 bf 0xa010 // a010 + 9fac: 92c0 ld.w r6, (r2, 0x0) + 9fae: 9180 ld.w r4, (r1, 0x0) + 9fb0: 651a cmpne r6, r4 + 9fb2: 0c2f bf 0xa010 // a010 + 9fb4: 93c0 ld.w r6, (r3, 0x0) + 9fb6: 9180 ld.w r4, (r1, 0x0) + 9fb8: 651a cmpne r6, r4 + 9fba: 0c2b bf 0xa010 // a010 + 9fbc: 9080 ld.w r4, (r0, 0x0) + 9fbe: 2400 addi r4, 1 + 9fc0: b080 st.w r4, (r0, 0x0) + 9fc2: 1181 lrw r4, 0x20000090 // a044 + 9fc4: 84dc ld.b r6, (r4, 0x1c) + 9fc6: 9080 ld.w r4, (r0, 0x0) + 9fc8: 6518 cmphs r6, r4 + 9fca: 0802 bt 0x9fce // 9fce + 9fcc: b0a0 st.w r5, (r0, 0x0) + 9fce: 9380 ld.w r4, (r3, 0x0) + 9fd0: 9200 ld.w r0, (r2, 0x0) + 9fd2: 6412 cmpne r4, r0 + 9fd4: 101d lrw r0, 0x20000b04 // a048 + 9fd6: 0c04 bf 0x9fde // 9fde + 9fd8: 9180 ld.w r4, (r1, 0x0) + 9fda: 3c40 cmpnei r4, 0 + 9fdc: 0c0f bf 0x9ffa // 9ffa + 9fde: 93a0 ld.w r5, (r3, 0x0) + 9fe0: 9180 ld.w r4, (r1, 0x0) + 9fe2: 6516 cmpne r5, r4 + 9fe4: 0c04 bf 0x9fec // 9fec + 9fe6: 9280 ld.w r4, (r2, 0x0) + 9fe8: 3c40 cmpnei r4, 0 + 9fea: 0c08 bf 0x9ffa // 9ffa + 9fec: 9120 ld.w r1, (r1, 0x0) + 9fee: 9240 ld.w r2, (r2, 0x0) + 9ff0: 6486 cmpne r1, r2 + 9ff2: 0c0c bf 0xa00a // a00a + 9ff4: 9360 ld.w r3, (r3, 0x0) + 9ff6: 3b40 cmpnei r3, 0 + 9ff8: 0809 bt 0xa00a // a00a + 9ffa: 9060 ld.w r3, (r0, 0x0) + 9ffc: 2300 addi r3, 1 + 9ffe: b060 st.w r3, (r0, 0x0) + a000: 1071 lrw r3, 0x20000090 // a044 + a002: 835c ld.b r2, (r3, 0x1c) + a004: 9060 ld.w r3, (r0, 0x0) + a006: 64c8 cmphs r2, r3 + a008: 0bbe bt 0x9f84 // 9f84 + a00a: 3300 movi r3, 0 + a00c: b060 st.w r3, (r0, 0x0) + a00e: 07bb br 0x9f84 // 9f84 + a010: 3400 movi r4, 0 + a012: b080 st.w r4, (r0, 0x0) + a014: 07dd br 0x9fce // 9fce + a016: 0000 bkpt + a018: 20000064 .long 0x20000064 + a01c: 20000934 .long 0x20000934 + a020: 20000a28 .long 0x20000a28 + a024: 2000023c .long 0x2000023c + a028: 20000a20 .long 0x20000a20 + a02c: 200009cd .long 0x200009cd + a030: 20000235 .long 0x20000235 + a034: 20000928 .long 0x20000928 + a038: 200008bc .long 0x200008bc + a03c: 20000ac4 .long 0x20000ac4 + a040: 200009a0 .long 0x200009a0 + a044: 20000090 .long 0x20000090 + a048: 20000b04 .long 0x20000b04 + +Disassembly of section .text.tk_init: + +0000a04c : + a04c: 14d4 push r4-r7, r15 + a04e: 142c subi r14, r14, 48 + a050: e3fffeec bsr 0x9e28 // 9e28 + a054: e3ffc6dc bsr 0x2e0c // 2e0c + a058: e3fffe92 bsr 0x9d7c // 9d7c + a05c: e3fff288 bsr 0x856c // 856c + a060: 3200 movi r2, 0 + a062: 3100 movi r1, 0 + a064: 3001 movi r0, 1 + a066: e3fff211 bsr 0x8488 // 8488 + a06a: e3fffe7b bsr 0x9d60 // 9d60 + a06e: e3fffe41 bsr 0x9cf0 // 9cf0 + a072: 1191 lrw r4, 0x20000ae4 // a134 + a074: 3101 movi r1, 1 + a076: a400 st.b r0, (r4, 0x0) + a078: 8440 ld.b r2, (r4, 0x0) + a07a: 1170 lrw r3, 0x200002b4 // a138 + a07c: 8b60 ld.h r3, (r3, 0x0) + a07e: b829 st.w r1, (r14, 0x24) + a080: 3180 movi r1, 128 + a082: 412d lsli r1, r1, 13 + a084: b828 st.w r1, (r14, 0x20) + a086: 3180 movi r1, 128 + a088: 4129 lsli r1, r1, 9 + a08a: b827 st.w r1, (r14, 0x1c) + a08c: 3100 movi r1, 0 + a08e: b826 st.w r1, (r14, 0x18) + a090: 2a00 subi r2, 1 + a092: 110b lrw r0, 0x200002b6 // a13c + a094: 8800 ld.h r0, (r0, 0x0) + a096: b805 st.w r0, (r14, 0x14) + a098: 7488 zextb r2, r2 + a09a: 110a lrw r0, 0x200002bc // a140 + a09c: 8800 ld.h r0, (r0, 0x0) + a09e: b804 st.w r0, (r14, 0x10) + a0a0: 3080 movi r0, 128 + a0a2: 4005 lsli r0, r0, 5 + a0a4: b803 st.w r0, (r14, 0xc) + a0a6: 3080 movi r0, 128 + a0a8: 4004 lsli r0, r0, 4 + a0aa: b802 st.w r0, (r14, 0x8) + a0ac: b821 st.w r1, (r14, 0x4) + a0ae: b820 st.w r1, (r14, 0x0) + a0b0: 3001 movi r0, 1 + a0b2: 3102 movi r1, 2 + a0b4: e3fff1fe bsr 0x84b0 // 84b0 + a0b8: 3002 movi r0, 2 + a0ba: e3fff1df bsr 0x8478 // 8478 + a0be: 3020 movi r0, 32 + a0c0: e3fff1dc bsr 0x8478 // 8478 + a0c4: 3380 movi r3, 128 + a0c6: 4372 lsli r3, r3, 18 + a0c8: 105f lrw r2, 0xe000e100 // a144 + a0ca: b260 st.w r3, (r2, 0x0) + a0cc: b270 st.w r3, (r2, 0x40) + a0ce: 10ff lrw r7, 0x20000078 // a148 + a0d0: 107f lrw r3, 0x20000054 // a14c + a0d2: 11a0 lrw r5, 0x20000b34 // a150 + a0d4: 11c0 lrw r6, 0x2000026e // a154 + a0d6: 9360 ld.w r3, (r3, 0x0) + a0d8: b86a st.w r3, (r14, 0x28) + a0da: b88b st.w r4, (r14, 0x2c) + a0dc: 3300 movi r3, 0 + a0de: 984b ld.w r2, (r14, 0x2c) + a0e0: 8240 ld.b r2, (r2, 0x0) + a0e2: 648c cmphs r3, r2 + a0e4: 0c09 bf 0xa0f6 // a0f6 + a0e6: e3fffe21 bsr 0x9d28 // 9d28 + a0ea: e3fff425 bsr 0x8934 // 8934 + a0ee: e3fff56f bsr 0x8bcc // 8bcc + a0f2: 140c addi r14, r14, 48 + a0f4: 1494 pop r4-r7, r15 + a0f6: 5d0c addu r0, r5, r3 + a0f8: 8020 ld.b r1, (r0, 0x0) + a0fa: 8040 ld.b r2, (r0, 0x0) + a0fc: 8080 ld.b r4, (r0, 0x0) + a0fe: 8000 ld.b r0, (r0, 0x0) + a100: 4001 lsli r0, r0, 1 + a102: 6018 addu r0, r6 + a104: 4121 lsli r1, r1, 1 + a106: 8800 ld.h r0, (r0, 0x0) + a108: 605c addu r1, r7 + a10a: 448f lsli r4, r4, 15 + a10c: 6d00 or r4, r0 + a10e: 4241 lsli r2, r2, 1 + a110: 8900 ld.h r0, (r1, 0x0) + a112: 1032 lrw r1, 0x20000242 // a158 + a114: 6084 addu r2, r1 + a116: 4018 lsli r0, r0, 24 + a118: 6c10 or r0, r4 + a11a: 8a80 ld.h r4, (r2, 0x0) + a11c: 3212 movi r2, 18 + a11e: 608c addu r2, r3 + a120: 4494 lsli r4, r4, 20 + a122: 4242 lsli r2, r2, 2 + a124: 982a ld.w r1, (r14, 0x28) + a126: 6c10 or r0, r4 + a128: 6084 addu r2, r1 + a12a: 2300 addi r3, 1 + a12c: b200 st.w r0, (r2, 0x0) + a12e: 74cc zextb r3, r3 + a130: 07d7 br 0xa0de // a0de + a132: 0000 bkpt + a134: 20000ae4 .long 0x20000ae4 + a138: 200002b4 .long 0x200002b4 + a13c: 200002b6 .long 0x200002b6 + a140: 200002bc .long 0x200002bc + a144: e000e100 .long 0xe000e100 + a148: 20000078 .long 0x20000078 + a14c: 20000054 .long 0x20000054 + a150: 20000b34 .long 0x20000b34 + a154: 2000026e .long 0x2000026e + a158: 20000242 .long 0x20000242 + +Disassembly of section .text.std_clk_calib: + +0000a15c : + a15c: 14d4 push r4-r7, r15 + a15e: 142d subi r14, r14, 52 + a160: 3201 movi r2, 1 + a162: 03ce lrw r6, 0x2000005c // a3a4 + a164: 6cc3 mov r3, r0 + a166: dc4e000a st.b r2, (r14, 0xa) + a16a: 9640 ld.w r2, (r6, 0x0) + a16c: 9247 ld.w r2, (r2, 0x1c) + a16e: 7488 zextb r2, r2 + a170: dc4e0009 st.b r2, (r14, 0x9) + a174: d84e0009 ld.b r2, (r14, 0x9) + a178: 3a40 cmpnei r2, 0 + a17a: 0c08 bf 0xa18a // a18a + a17c: d84e0009 ld.b r2, (r14, 0x9) + a180: 3a42 cmpnei r2, 2 + a182: 0c04 bf 0xa18a // a18a + a184: 3000 movi r0, 0 + a186: 140d addi r14, r14, 52 + a188: 1494 pop r4-r7, r15 + a18a: 0397 lrw r4, 0x2000000c // a3a8 + a18c: 3209 movi r2, 9 + a18e: 9400 ld.w r0, (r4, 0x0) + a190: 3b40 cmpnei r3, 0 + a192: b041 st.w r2, (r0, 0x4) + a194: 0857 bt 0xa242 // a242 + a196: 3307 movi r3, 7 + a198: dc6e000b st.b r3, (r14, 0xb) + a19c: 037b lrw r3, 0x2dc6c00 // a3ac + a19e: b863 st.w r3, (r14, 0xc) + a1a0: 3380 movi r3, 128 + a1a2: 4362 lsli r3, r3, 2 + a1a4: b867 st.w r3, (r14, 0x1c) + a1a6: d86e000b ld.b r3, (r14, 0xb) + a1aa: 74cc zextb r3, r3 + a1ac: b062 st.w r3, (r0, 0x8) + a1ae: 037e lrw r3, 0xffff // a3b0 + a1b0: b063 st.w r3, (r0, 0xc) + a1b2: 3201 movi r2, 1 + a1b4: 3101 movi r1, 1 + a1b6: 03bf lrw r5, 0x20000014 // a3b4 + a1b8: e3ffc1f4 bsr 0x25a0 // 25a0 + a1bc: 95e0 ld.w r7, (r5, 0x0) + a1be: 137f lrw r3, 0xbe9c0005 // a3b8 + a1c0: b760 st.w r3, (r7, 0x0) + a1c2: 135f lrw r2, 0x30010 // a3bc + a1c4: 3300 movi r3, 0 + a1c6: b762 st.w r3, (r7, 0x8) + a1c8: b743 st.w r2, (r7, 0xc) + a1ca: 32d8 movi r2, 216 + a1cc: b745 st.w r2, (r7, 0x14) + a1ce: 974f ld.w r2, (r7, 0x3c) + a1d0: 3aa2 bseti r2, 2 + a1d2: b74f st.w r2, (r7, 0x3c) + a1d4: 9803 ld.w r0, (r14, 0xc) + a1d6: d82e000b ld.b r1, (r14, 0xb) + a1da: 327d movi r2, 125 + a1dc: 2100 addi r1, 1 + a1de: 7c48 mult r1, r2 + a1e0: b861 st.w r3, (r14, 0x4) + a1e2: e3ffcd27 bsr 0x3c30 // 3c30 <__udivsi3> + a1e6: b804 st.w r0, (r14, 0x10) + a1e8: 32fa movi r2, 250 + a1ea: 9824 ld.w r1, (r14, 0x10) + a1ec: 4242 lsli r2, r2, 2 + a1ee: 6448 cmphs r2, r1 + a1f0: 0bca bt 0xa184 // a184 + a1f2: 9844 ld.w r2, (r14, 0x10) + a1f4: 3178 movi r1, 120 + a1f6: 9804 ld.w r0, (r14, 0x10) + a1f8: b840 st.w r2, (r14, 0x0) + a1fa: e3ffcd1b bsr 0x3c30 // 3c30 <__udivsi3> + a1fe: 9840 ld.w r2, (r14, 0x0) + a200: 6082 subu r2, r0 + a202: b845 st.w r2, (r14, 0x14) + a204: 9804 ld.w r0, (r14, 0x10) + a206: 3178 movi r1, 120 + a208: 9844 ld.w r2, (r14, 0x10) + a20a: b840 st.w r2, (r14, 0x0) + a20c: e3ffcd12 bsr 0x3c30 // 3c30 <__udivsi3> + a210: 9840 ld.w r2, (r14, 0x0) + a212: 6008 addu r0, r2 + a214: b806 st.w r0, (r14, 0x18) + a216: c0807020 psrclr ie + a21a: 9640 ld.w r2, (r6, 0x0) + a21c: 9254 ld.w r2, (r2, 0x50) + a21e: b848 st.w r2, (r14, 0x20) + a220: 9861 ld.w r3, (r14, 0x4) + a222: 9440 ld.w r2, (r4, 0x0) + a224: b260 st.w r3, (r2, 0x0) + a226: b761 st.w r3, (r7, 0x4) + a228: d86e000a ld.b r3, (r14, 0xa) + a22c: 3b40 cmpnei r3, 0 + a22e: 083e bt 0xa2aa // a2aa + a230: e3ffc16a bsr 0x2504 // 2504 + a234: 9400 ld.w r0, (r4, 0x0) + a236: e3ffc18b bsr 0x254c // 254c + a23a: c1807420 psrset ee, ie + a23e: 3001 movi r0, 1 + a240: 07a3 br 0xa186 // a186 + a242: 3b41 cmpnei r3, 1 + a244: 0806 bt 0xa250 // a250 + a246: 3303 movi r3, 3 + a248: dc6e000b st.b r3, (r14, 0xb) + a24c: 127d lrw r3, 0x16e3600 // a3c0 + a24e: 07a8 br 0xa19e // a19e + a250: 3b42 cmpnei r3, 2 + a252: 0806 bt 0xa25e // a25e + a254: 3301 movi r3, 1 + a256: dc6e000b st.b r3, (r14, 0xb) + a25a: 127b lrw r3, 0xb71b00 // a3c4 + a25c: 07a1 br 0xa19e // a19e + a25e: 3b43 cmpnei r3, 3 + a260: 0806 bt 0xa26c // a26c + a262: 3300 movi r3, 0 + a264: dc6e000b st.b r3, (r14, 0xb) + a268: 1278 lrw r3, 0x5b8d80 // a3c8 + a26a: 079a br 0xa19e // a19e + a26c: 3b44 cmpnei r3, 4 + a26e: 0809 bt 0xa280 // a280 + a270: 3300 movi r3, 0 + a272: dc6e000b st.b r3, (r14, 0xb) + a276: 1276 lrw r3, 0x54c720 // a3cc + a278: b863 st.w r3, (r14, 0xc) + a27a: 3380 movi r3, 128 + a27c: 4369 lsli r3, r3, 9 + a27e: 0793 br 0xa1a4 // a1a4 + a280: 3b45 cmpnei r3, 5 + a282: 0806 bt 0xa28e // a28e + a284: 3300 movi r3, 0 + a286: dc6e000b st.b r3, (r14, 0xb) + a28a: 1272 lrw r3, 0x3ffed0 // a3d0 + a28c: 07f6 br 0xa278 // a278 + a28e: 3b46 cmpnei r3, 6 + a290: 0806 bt 0xa29c // a29c + a292: 3300 movi r3, 0 + a294: dc6e000b st.b r3, (r14, 0xb) + a298: 126f lrw r3, 0x1fff68 // a3d4 + a29a: 07ef br 0xa278 // a278 + a29c: 3b47 cmpnei r3, 7 + a29e: 0b84 bt 0xa1a6 // a1a6 + a2a0: 3300 movi r3, 0 + a2a2: dc6e000b st.b r3, (r14, 0xb) + a2a6: 126d lrw r3, 0x1ffb8 // a3d8 + a2a8: 07e8 br 0xa278 // a278 + a2aa: 9560 ld.w r3, (r5, 0x0) + a2ac: 3101 movi r1, 1 + a2ae: 9440 ld.w r2, (r4, 0x0) + a2b0: b321 st.w r1, (r3, 0x4) + a2b2: b220 st.w r1, (r2, 0x0) + a2b4: 3100 movi r1, 0 + a2b6: b327 st.w r1, (r3, 0x1c) + a2b8: 3004 movi r0, 4 + a2ba: b225 st.w r1, (r2, 0x14) + a2bc: 932e ld.w r1, (r3, 0x38) + a2be: 6840 and r1, r0 + a2c0: 3940 cmpnei r1, 0 + a2c2: 0ffd bf 0xa2bc // a2bc + a2c4: 9225 ld.w r1, (r2, 0x14) + a2c6: b82a st.w r1, (r14, 0x28) + a2c8: 3100 movi r1, 0 + a2ca: b310 st.w r0, (r3, 0x40) + a2cc: b327 st.w r1, (r3, 0x1c) + a2ce: 3004 movi r0, 4 + a2d0: b225 st.w r1, (r2, 0x14) + a2d2: 932e ld.w r1, (r3, 0x38) + a2d4: 6840 and r1, r0 + a2d6: 3940 cmpnei r1, 0 + a2d8: 0ffd bf 0xa2d2 // a2d2 + a2da: 9225 ld.w r1, (r2, 0x14) + a2dc: b82b st.w r1, (r14, 0x2c) + a2de: 3100 movi r1, 0 + a2e0: b310 st.w r0, (r3, 0x40) + a2e2: b327 st.w r1, (r3, 0x1c) + a2e4: 3004 movi r0, 4 + a2e6: b225 st.w r1, (r2, 0x14) + a2e8: 932e ld.w r1, (r3, 0x38) + a2ea: 6840 and r1, r0 + a2ec: 3940 cmpnei r1, 0 + a2ee: 0ffd bf 0xa2e8 // a2e8 + a2f0: 9225 ld.w r1, (r2, 0x14) + a2f2: b82c st.w r1, (r14, 0x30) + a2f4: b310 st.w r0, (r3, 0x40) + a2f6: 982b ld.w r1, (r14, 0x2c) + a2f8: 980c ld.w r0, (r14, 0x30) + a2fa: 6040 addu r1, r0 + a2fc: b829 st.w r1, (r14, 0x24) + a2fe: 9829 ld.w r1, (r14, 0x24) + a300: 4921 lsri r1, r1, 1 + a302: b829 st.w r1, (r14, 0x24) + a304: 3100 movi r1, 0 + a306: b321 st.w r1, (r3, 0x4) + a308: b220 st.w r1, (r2, 0x0) + a30a: b327 st.w r1, (r3, 0x1c) + a30c: b225 st.w r1, (r2, 0x14) + a30e: d86e0009 ld.b r3, (r14, 0x9) + a312: 3b42 cmpnei r3, 2 + a314: 9849 ld.w r2, (r14, 0x24) + a316: 082c bt 0xa36e // a36e + a318: 1171 lrw r3, 0x7ff // a3dc + a31a: 648c cmphs r3, r2 + a31c: 0c03 bf 0xa322 // a322 + a31e: 3300 movi r3, 0 + a320: 040f br 0xa33e // a33e + a322: 9849 ld.w r2, (r14, 0x24) + a324: 9866 ld.w r3, (r14, 0x18) + a326: 648c cmphs r3, r2 + a328: 080e bt 0xa344 // a344 + a32a: 9868 ld.w r3, (r14, 0x20) + a32c: 9847 ld.w r2, (r14, 0x1c) + a32e: 60ca subu r3, r2 + a330: b868 st.w r3, (r14, 0x20) + a332: 32fe movi r2, 254 + a334: 9868 ld.w r3, (r14, 0x20) + a336: 4248 lsli r2, r2, 8 + a338: 68c8 and r3, r2 + a33a: 3b40 cmpnei r3, 0 + a33c: 0812 bt 0xa360 // a360 + a33e: dc6e000a st.b r3, (r14, 0xa) + a342: 0721 br 0xa184 // a184 + a344: 9849 ld.w r2, (r14, 0x24) + a346: 9865 ld.w r3, (r14, 0x14) + a348: 64c8 cmphs r2, r3 + a34a: 0829 bt 0xa39c // a39c + a34c: 9868 ld.w r3, (r14, 0x20) + a34e: 9847 ld.w r2, (r14, 0x1c) + a350: 60c8 addu r3, r2 + a352: b868 st.w r3, (r14, 0x20) + a354: 33fe movi r3, 254 + a356: 9848 ld.w r2, (r14, 0x20) + a358: 4368 lsli r3, r3, 8 + a35a: 688c and r2, r3 + a35c: 64ca cmpne r2, r3 + a35e: 0fe0 bf 0xa31e // a31e + a360: 9660 ld.w r3, (r6, 0x0) + a362: 9848 ld.w r2, (r14, 0x20) + a364: b354 st.w r2, (r3, 0x50) + a366: 3001 movi r0, 1 + a368: e3ffc654 bsr 0x3010 // 3010 + a36c: 075e br 0xa228 // a228 + a36e: 9866 ld.w r3, (r14, 0x18) + a370: 648c cmphs r3, r2 + a372: 0809 bt 0xa384 // a384 + a374: 9868 ld.w r3, (r14, 0x20) + a376: 9847 ld.w r2, (r14, 0x1c) + a378: 60ca subu r3, r2 + a37a: b868 st.w r3, (r14, 0x20) + a37c: 32ff movi r2, 255 + a37e: 9868 ld.w r3, (r14, 0x20) + a380: 4250 lsli r2, r2, 16 + a382: 07db br 0xa338 // a338 + a384: 9849 ld.w r2, (r14, 0x24) + a386: 9865 ld.w r3, (r14, 0x14) + a388: 64c8 cmphs r2, r3 + a38a: 0809 bt 0xa39c // a39c + a38c: 9868 ld.w r3, (r14, 0x20) + a38e: 9847 ld.w r2, (r14, 0x1c) + a390: 60c8 addu r3, r2 + a392: b868 st.w r3, (r14, 0x20) + a394: 33ff movi r3, 255 + a396: 9848 ld.w r2, (r14, 0x20) + a398: 4370 lsli r3, r3, 16 + a39a: 07e0 br 0xa35a // a35a + a39c: 3300 movi r3, 0 + a39e: dc6e000a st.b r3, (r14, 0xa) + a3a2: 07e2 br 0xa366 // a366 + a3a4: 2000005c .long 0x2000005c + a3a8: 2000000c .long 0x2000000c + a3ac: 02dc6c00 .long 0x02dc6c00 + a3b0: 0000ffff .long 0x0000ffff + a3b4: 20000014 .long 0x20000014 + a3b8: be9c0005 .long 0xbe9c0005 + a3bc: 00030010 .long 0x00030010 + a3c0: 016e3600 .long 0x016e3600 + a3c4: 00b71b00 .long 0x00b71b00 + a3c8: 005b8d80 .long 0x005b8d80 + a3cc: 0054c720 .long 0x0054c720 + a3d0: 003ffed0 .long 0x003ffed0 + a3d4: 001fff68 .long 0x001fff68 + a3d8: 0001ffb8 .long 0x0001ffb8 + a3dc: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V05_202505211650.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V05_202505211650.map new file mode 100644 index 0000000..fce1720 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V05_202505211650.map @@ -0,0 +1,3495 @@ +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: 571080 (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: 291 + Section header string table index: 288 + +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 001d52 00 AX 0 0 1024 + [ 2] .text.__main PROGBITS 00001d54 002d54 000038 00 AX 0 0 4 + [ 3] .text.SYSCON_Gene PROGBITS 00001d8c 002d8c 000074 00 AX 0 0 4 + [ 4] .text.SYSCON_RST_ PROGBITS 00001e00 002e00 00004c 00 AX 0 0 4 + [ 5] .text.SYSCON_Gene PROGBITS 00001e4c 002e4c 000030 00 AX 0 0 4 + [ 6] .text.SystemCLK_H PROGBITS 00001e7c 002e7c 000088 00 AX 0 0 4 + [ 7] .text.SYSCON_HFOS PROGBITS 00001f04 002f04 000028 00 AX 0 0 4 + [ 8] .text.SYSCON_WDT_ PROGBITS 00001f2c 002f2c 00003c 00 AX 0 0 4 + [ 9] .text.SYSCON_IWDC PROGBITS 00001f68 002f68 000014 00 AX 0 0 4 + [10] .text.SYSCON_IWDC PROGBITS 00001f7c 002f7c 000018 00 AX 0 0 4 + [11] .text.SYSCON_LVD_ PROGBITS 00001f94 002f94 000020 00 AX 0 0 4 + [12] .text.LVD_Int_Ena PROGBITS 00001fb4 002fb4 00001c 00 AX 0 0 4 + [13] .text.IWDT_Int_En PROGBITS 00001fd0 002fd0 00001c 00 AX 0 0 4 + [14] .text.EXTI_trigge PROGBITS 00001fec 002fec 000040 00 AX 0 0 4 + [15] .text.EXTI_interr PROGBITS 0000202c 00302c 000034 00 AX 0 0 4 + [16] .text.GPIO_EXTI_i PROGBITS 00002060 003060 000004 00 AX 0 0 2 + [17] .text.EXI3_Int_En PROGBITS 00002064 003064 000010 00 AX 0 0 4 + [18] .text.EXI4_Int_En PROGBITS 00002074 003074 000010 00 AX 0 0 4 + [19] .text.SYSCON_Int_ PROGBITS 00002084 003084 00000c 00 AX 0 0 4 + [20] .text.SYSCON_Int_ PROGBITS 00002090 003090 00000c 00 AX 0 0 4 + [21] .text.SYSCON_INT_ PROGBITS 0000209c 00309c 000024 00 AX 0 0 4 + [22] .text.Set_INT_Pri PROGBITS 000020c0 0030c0 000030 00 AX 0 0 4 + [23] .text.GPIO_DeInit PROGBITS 000020f0 0030f0 000064 00 AX 0 0 4 + [24] .text.GPIO_Init PROGBITS 00002154 003154 0000e0 00 AX 0 0 4 + [25] .text.GPIO_PullHi PROGBITS 00002234 003234 000014 00 AX 0 0 2 + [26] .text.GPIO_DriveS PROGBITS 00002248 003248 00000e 00 AX 0 0 2 + [27] .text.GPIO_IntGro PROGBITS 00002258 003258 00010c 00 AX 0 0 4 + [28] .text.GPIOA0_EXI_ PROGBITS 00002364 003364 0000fc 00 AX 0 0 4 + [29] .text.GPIOB0_EXI_ PROGBITS 00002460 003460 00006c 00 AX 0 0 4 + [30] .text.GPIO_Write_ PROGBITS 000024cc 0034cc 000008 00 AX 0 0 2 + [31] .text.GPIO_Write_ PROGBITS 000024d4 0034d4 000008 00 AX 0 0 2 + [32] .text.GPIO_Revers PROGBITS 000024dc 0034dc 000016 00 AX 0 0 2 + [33] .text.GPIO_Read_S PROGBITS 000024f2 0034f2 000010 00 AX 0 0 2 + [34] .text.LPT_Soft_Re PROGBITS 00002504 003504 000014 00 AX 0 0 4 + [35] .text.WWDT_CNT_Lo PROGBITS 00002518 003518 000010 00 AX 0 0 4 + [36] .text.BT_DeInit PROGBITS 00002528 003528 00001c 00 AX 0 0 2 + [37] .text.BT_Start PROGBITS 00002544 003544 000008 00 AX 0 0 2 + [38] .text.BT_Soft_Res PROGBITS 0000254c 00354c 00000a 00 AX 0 0 2 + [39] .text.BT_Configur PROGBITS 00002556 003556 000018 00 AX 0 0 2 + [40] .text.BT_ControlS PROGBITS 0000256e 00356e 00002c 00 AX 0 0 2 + [41] .text.BT_Period_C PROGBITS 0000259a 00359a 000006 00 AX 0 0 2 + [42] .text.BT_ConfigIn PROGBITS 000025a0 0035a0 000012 00 AX 0 0 2 + [43] .text.BT1_INT_ENA PROGBITS 000025b4 0035b4 000010 00 AX 0 0 4 + [44] .text.SIO_DeInit PROGBITS 000025c4 0035c4 000020 00 AX 0 0 4 + [45] .text.SIO_IO_Init PROGBITS 000025e4 0035e4 000060 00 AX 0 0 4 + [46] .text.SIO_TX_Init PROGBITS 00002644 003644 000010 00 AX 0 0 4 + [47] .text.SIO_TX_Conf PROGBITS 00002654 003654 000050 00 AX 0 0 4 + [48] .text.UART0_DeIni PROGBITS 000026a4 0036a4 000018 00 AX 0 0 4 + [49] .text.UART1_DeIni PROGBITS 000026bc 0036bc 000018 00 AX 0 0 4 + [50] .text.UART2_DeIni PROGBITS 000026d4 0036d4 000018 00 AX 0 0 4 + [51] .text.UART0_Int_E PROGBITS 000026ec 0036ec 00001c 00 AX 0 0 4 + [52] .text.UART2_Int_E PROGBITS 00002708 003708 00001c 00 AX 0 0 4 + [53] .text.UART_IO_Ini PROGBITS 00002724 003724 0000ec 00 AX 0 0 4 + [54] .text.UARTInit PROGBITS 00002810 003810 000010 00 AX 0 0 4 + [55] .text.UARTInitRxT PROGBITS 00002820 003820 000010 00 AX 0 0 4 + [56] .text.UARTTransmi PROGBITS 00002830 003830 00001e 00 AX 0 0 2 + [57] .text.EPT_Stop PROGBITS 00002850 003850 000028 00 AX 0 0 4 + [58] .text.ADC12_RESET PROGBITS 00002878 003878 000064 00 AX 0 0 4 + [59] .text.ADC12_Contr PROGBITS 000028dc 0038dc 000010 00 AX 0 0 4 + [60] .text.ADC12_CMD.p PROGBITS 000028ec 0038ec 000020 00 AX 0 0 4 + [61] .text.ADC12_CLK_C PROGBITS 0000290c 00390c 00002c 00 AX 0 0 4 + [62] .text.ADC12_Softw PROGBITS 00002938 003938 00000a 00 AX 0 0 2 + [63] .text.ADC12_CMD PROGBITS 00002944 003944 000028 00 AX 0 0 4 + [64] .text.ADC12_ready PROGBITS 0000296c 00396c 000014 00 AX 0 0 4 + [65] .text.ADC12_SEQEN PROGBITS 00002980 003980 000018 00 AX 0 0 4 + [66] .text.ADC12_DATA_ PROGBITS 00002998 003998 000014 00 AX 0 0 4 + [67] .text.ADC12_Confi PROGBITS 000029ac 0039ac 00007c 00 AX 0 0 4 + [68] .text.ADC12_Confi PROGBITS 00002a28 003a28 000198 00 AX 0 0 4 + [69] .text.ADC12_Conve PROGBITS 00002bc0 003bc0 000180 00 AX 0 0 4 + [70] .text.Page_Progra PROGBITS 00002d40 003d40 0000a0 00 AX 0 0 4 + [71] .text.ReadDataArr PROGBITS 00002de0 003de0 00002a 00 AX 0 0 2 + [72] .text.tk_paramete PROGBITS 00002e0c 003e0c 000140 00 AX 0 0 4 + [73] .text.CORET_DeIni PROGBITS 00002f4c 003f4c 000018 00 AX 0 0 4 + [74] .text.CORET_Int_E PROGBITS 00002f64 003f64 000018 00 AX 0 0 4 + [75] .text.CORET_start PROGBITS 00002f7c 003f7c 000010 00 AX 0 0 4 + [76] .text.CORET_CLKSO PROGBITS 00002f8c 003f8c 000010 00 AX 0 0 4 + [77] .text.CORET_TICKI PROGBITS 00002f9c 003f9c 000010 00 AX 0 0 4 + [78] .text.CORET_reloa PROGBITS 00002fac 003fac 000010 00 AX 0 0 4 + [79] .text.startup.mai PROGBITS 00002fbc 003fbc 000054 00 AX 0 0 4 + [80] .text.delay_nms PROGBITS 00003010 004010 00002c 00 AX 0 0 2 + [81] .text.delay_nus PROGBITS 0000303c 00403c 000022 00 AX 0 0 2 + [82] .text.GPIO_CONFIG PROGBITS 00003060 004060 00008c 00 AX 0 0 4 + [83] .text.BT_CONFIG PROGBITS 000030ec 0040ec 000060 00 AX 0 0 4 + [84] .text.SYSCON_CONF PROGBITS 0000314c 00414c 000062 00 AX 0 0 2 + [85] .text.APT32F102_i PROGBITS 000031b0 0041b0 00009c 00 AX 0 0 4 + [86] .text.SYSCONIntHa PROGBITS 0000324c 00424c 0000f0 00 AX 0 0 4 + [87] .text.IFCIntHandl PROGBITS 0000333c 00433c 000068 00 AX 0 0 4 + [88] .text.ADCIntHandl PROGBITS 000033a4 0043a4 000068 00 AX 0 0 4 + [89] .text.EPT0IntHand PROGBITS 0000340c 00440c 0001ac 00 AX 0 0 4 + [90] .text.WWDTHandler PROGBITS 000035b8 0045b8 000034 00 AX 0 0 4 + [91] .text.GPT0IntHand PROGBITS 000035ec 0045ec 000080 00 AX 0 0 4 + [92] .text.RTCIntHandl PROGBITS 0000366c 00466c 000070 00 AX 0 0 4 + [93] .text.UART0IntHan PROGBITS 000036dc 0046dc 00003c 00 AX 0 0 4 + [94] .text.UART1IntHan PROGBITS 00003718 004718 00003c 00 AX 0 0 4 + [95] .text.UART2IntHan PROGBITS 00003754 004754 000094 00 AX 0 0 4 + [96] .text.SPI0IntHand PROGBITS 000037e8 0047e8 0000e8 00 AX 0 0 4 + [97] .text.SIO0IntHand PROGBITS 000038d0 0048d0 000054 00 AX 0 0 4 + [98] .text.EXI0IntHand PROGBITS 00003924 004924 000030 00 AX 0 0 4 + [99] .text.EXI1IntHand PROGBITS 00003954 004954 000030 00 AX 0 0 4 + [100] .text.EXI2to3IntH PROGBITS 00003984 004984 000048 00 AX 0 0 4 + [101] .text.EXI4to9IntH PROGBITS 000039cc 0049cc 00006c 00 AX 0 0 4 + [102] .text.EXI10to15In PROGBITS 00003a38 004a38 000080 00 AX 0 0 4 + [103] .text.LPTIntHandl PROGBITS 00003ab8 004ab8 000034 00 AX 0 0 4 + [104] .text.BT0IntHandl PROGBITS 00003aec 004aec 00004c 00 AX 0 0 4 + [105] .text.BT1IntHandl PROGBITS 00003b38 004b38 000070 00 AX 0 0 4 + [106] .text.PriviledgeV PROGBITS 00003ba8 004ba8 000002 00 AX 0 0 2 + [107] .text.PendTrapHan PROGBITS 00003baa 004baa 000008 00 AX 0 0 2 + [108] .text.Trap3Handle PROGBITS 00003bb2 004bb2 000008 00 AX 0 0 2 + [109] .text.Trap2Handle PROGBITS 00003bba 004bba 000008 00 AX 0 0 2 + [110] .text.Trap1Handle PROGBITS 00003bc2 004bc2 000008 00 AX 0 0 2 + [111] .text.Trap0Handle PROGBITS 00003bca 004bca 000008 00 AX 0 0 2 + [112] .text.UnrecExecpH PROGBITS 00003bd2 004bd2 000008 00 AX 0 0 2 + [113] .text.BreakPointH PROGBITS 00003bda 004bda 000008 00 AX 0 0 2 + [114] .text.AccessErrHa PROGBITS 00003be2 004be2 000008 00 AX 0 0 2 + [115] .text.IllegalInst PROGBITS 00003bea 004bea 000008 00 AX 0 0 2 + [116] .text.MisalignedH PROGBITS 00003bf2 004bf2 000008 00 AX 0 0 2 + [117] .text.CNTAIntHand PROGBITS 00003bfa 004bfa 000008 00 AX 0 0 2 + [118] .text.I2CIntHandl PROGBITS 00003c02 004c02 000008 00 AX 0 0 2 + [119] .text.__divsi3 PROGBITS 00003c0c 004c0c 000024 00 AX 0 0 4 + [120] .text.__udivsi3 PROGBITS 00003c30 004c30 000024 00 AX 0 0 4 + [121] .text.__modsi3 PROGBITS 00003c54 004c54 000024 00 AX 0 0 4 + [122] .text.__umodsi3 PROGBITS 00003c78 004c78 000024 00 AX 0 0 4 + [123] .text.CK_CPU_EnAl PROGBITS 00003c9c 004c9c 000006 00 AX 0 0 2 + [124] .text.CK_CPU_DisA PROGBITS 00003ca2 004ca2 000006 00 AX 0 0 2 + [125] .text.UARTx_Init PROGBITS 00003ca8 004ca8 000108 00 AX 0 0 4 + [126] .text.UART2_RecvI PROGBITS 00003db0 004db0 000044 00 AX 0 0 4 + [127] .text.UART2_TASK PROGBITS 00003df4 004df4 00008c 00 AX 0 0 4 + [128] .text.BUS485_Send PROGBITS 00003e80 004e80 0000c4 00 AX 0 0 4 + [129] .text.MultSend_Ta PROGBITS 00003f44 004f44 000074 00 AX 0 0 4 + [130] .text.Set_GroupSe PROGBITS 00003fb8 004fb8 000064 00 AX 0 0 4 + [131] .text.Clear_SendF PROGBITS 0000401c 00501c 000010 00 AX 0 0 4 + [132] .text.BUS485_Jump PROGBITS 0000402c 00502c 00000c 00 AX 0 0 4 + [133] .text.BUS485Send_ PROGBITS 00004038 005038 000034 00 AX 0 0 4 + [134] .text.BusIdle_Tas PROGBITS 0000406c 00506c 000040 00 AX 0 0 4 + [135] .text.BusBusy_Tas PROGBITS 000040ac 0050ac 00005c 00 AX 0 0 4 + [136] .text.Dbg_Println PROGBITS 00004108 005108 00000c 00 AX 0 0 2 + [137] .text.Dbg_Print_B PROGBITS 00004114 005114 000002 00 AX 0 0 2 + [138] .text.Touch_Key_I PROGBITS 00004118 005118 000068 00 AX 0 0 4 + [139] .text.Get_TouchKe PROGBITS 00004180 005180 00003c 00 AX 0 0 4 + [140] .text.TouchKey_RS PROGBITS 000041bc 0051bc 0002f4 00 AX 0 0 4 + [141] .text.Touch_Key_E PROGBITS 000044b0 0054b0 0000ac 00 AX 0 0 4 + [142] .text.TouchKey_Se PROGBITS 0000455c 00555c 00003c 00 AX 0 0 4 + [143] .text.Touch_Key_T PROGBITS 00004598 005598 000100 00 AX 0 0 4 + [144] .text.TouchKey_Ch PROGBITS 00004698 005698 000018 00 AX 0 0 2 + [145] .text.TouchKey_Co PROGBITS 000046b0 0056b0 000070 00 AX 0 0 4 + [146] .text.TouchKey_Se PROGBITS 00004720 005720 0000b8 00 AX 0 0 4 + [147] .text.TouchKey_Re PROGBITS 000047d8 0057d8 0000f8 00 AX 0 0 4 + [148] .text.TouchKey_Du PROGBITS 000048d0 0058d0 000038 00 AX 0 0 4 + [149] .text.TouchKey_Re PROGBITS 00004908 005908 0000b0 00 AX 0 0 4 + [150] .text.TouchKey_Re PROGBITS 000049b8 0059b8 00001a 00 AX 0 0 2 + [151] .text.TouchKey_Co PROGBITS 000049d4 0059d4 0000d8 00 AX 0 0 4 + [152] .text.EEPROM_Chec PROGBITS 00004aac 005aac 000016 00 AX 0 0 2 + [153] .text.EEPROM_Read PROGBITS 00004ac4 005ac4 000074 00 AX 0 0 4 + [154] .text.EEPROM_Writ PROGBITS 00004b38 005b38 000044 00 AX 0 0 4 + [155] .text.EEPROM_Vali PROGBITS 00004b7c 005b7c 00008c 00 AX 0 0 4 + [156] .text.EEPROM_Defa PROGBITS 00004c08 005c08 000020 00 AX 0 0 2 + [157] .text.EEPROM_Writ PROGBITS 00004c28 005c28 00006c 00 AX 0 0 4 + [158] .text.EEPROM_Read PROGBITS 00004c94 005c94 0000ac 00 AX 0 0 4 + [159] .text.EEPROM_Vali PROGBITS 00004d40 005d40 0000e0 00 AX 0 0 4 + [160] .text.EEPROM_Defa PROGBITS 00004e20 005e20 000070 00 AX 0 0 4 + [161] .text.EEPROM_Touc PROGBITS 00004e90 005e90 000080 00 AX 0 0 4 + [162] .text.EEPROM_Read PROGBITS 00004f10 005f10 000070 00 AX 0 0 4 + [163] .text.EEPROM_Writ PROGBITS 00004f80 005f80 000040 00 AX 0 0 2 + [164] .text.EEPROM_Defa PROGBITS 00004fc0 005fc0 000038 00 AX 0 0 4 + [165] .text.EEPROM_Vali PROGBITS 00004ff8 005ff8 000058 00 AX 0 0 4 + [166] .text.EEPROM_Init PROGBITS 00005050 006050 000088 00 AX 0 0 4 + [167] .text.ADC_Init PROGBITS 000050d8 0060d8 000060 00 AX 0 0 4 + [168] .text.Thermistor_ PROGBITS 00005138 006138 000048 00 AX 0 0 4 + [169] .text.Calculate_A PROGBITS 00005180 006180 000090 00 AX 0 0 4 + [170] .text.Get_Temp_Va PROGBITS 00005210 006210 00000c 00 AX 0 0 4 + [171] .text.Gather_Temp PROGBITS 0000521c 00621c 000090 00 AX 0 0 4 + [172] .text.ADC_Sample_ PROGBITS 000052ac 0062ac 000070 00 AX 0 0 4 + [173] .text.Contol_Swit PROGBITS 0000531c 00631c 0003ea 00 AX 0 0 4 + [174] .text.Contol_Swit PROGBITS 00005708 006708 0003ea 00 AX 0 0 4 + [175] .text.Contol_Swit PROGBITS 00005af4 006af4 000028 00 AX 0 0 4 + [176] .text.Get_TM1812_ PROGBITS 00005b1c 006b1c 000044 00 AX 0 0 4 + [177] .text.TimeCall_SI PROGBITS 00005b60 006b60 000120 00 AX 0 0 4 + [178] .text.TimeCall_SI PROGBITS 00005c80 006c80 0000a8 00 AX 0 0 4 + [179] .text.Tm1812_Task PROGBITS 00005d28 006d28 00005c 00 AX 0 0 4 + [180] .text.Tm1812_Ch_I PROGBITS 00005d84 006d84 000024 00 AX 0 0 4 + [181] .text.TM1812_Cont PROGBITS 00005da8 006da8 000070 00 AX 0 0 4 + [182] .text.TM1812_Cont PROGBITS 00005e18 006e18 000064 00 AX 0 0 4 + [183] .text.TM1812_LED_ PROGBITS 00005e7c 006e7c 00006c 00 AX 0 0 4 + [184] .text.HT1621_WR_D PROGBITS 00005ee8 006ee8 000048 00 AX 0 0 4 + [185] .text.HT1621_WR_C PROGBITS 00005f30 006f30 000030 00 AX 0 0 4 + [186] .text.HT1621_Init PROGBITS 00005f60 006f60 0000b4 00 AX 0 0 4 + [187] .text.HT1621_Clea PROGBITS 00006014 007014 000050 00 AX 0 0 4 + [188] .text.HT1621_ALLO PROGBITS 00006064 007064 000040 00 AX 0 0 4 + [189] .text.HT1621_Refr PROGBITS 000060a4 0070a4 00004c 00 AX 0 0 4 + [190] .text.Set_Tempera PROGBITS 000060f0 0070f0 0000d0 00 AX 0 0 4 + [191] .text.Local_Tempe PROGBITS 000061c0 0071c0 0000d0 00 AX 0 0 4 + [192] .text.Control_Mod PROGBITS 00006290 007290 000244 00 AX 0 0 4 + [193] .text.Control_win PROGBITS 000064d4 0074d4 0000d0 00 AX 0 0 4 + [194] .text.Control_Pro PROGBITS 000065a4 0075a4 0000a4 00 AX 0 0 4 + [195] .text.Controlled_ PROGBITS 00006648 007648 000048 00 AX 0 0 4 + [196] .text.Controlled_ PROGBITS 00006690 007690 0000dc 00 AX 0 0 4 + [197] .text.Controlled_ PROGBITS 0000676c 00776c 000030 00 AX 0 0 4 + [198] .text.Set_Device_ PROGBITS 0000679c 00779c 00009c 00 AX 0 0 4 + [199] .text.Set_Temp_Di PROGBITS 00006838 007838 000064 00 AX 0 0 4 + [200] .text.HT1621_Refr PROGBITS 0000689c 00789c 000090 00 AX 0 0 4 + [201] .text.Boot_Functi PROGBITS 0000692c 00792c 000060 00 AX 0 0 4 + [202] .text.Boot_Comm_C PROGBITS 0000698c 00798c 000024 00 AX 0 0 4 + [203] .text.Boot_Comm_F PROGBITS 000069b0 0079b0 00005c 00 AX 0 0 4 + [204] .text.Boot_Time_R PROGBITS 00006a0c 007a0c 000014 00 AX 0 0 4 + [205] .text.Boot_Comm_U PROGBITS 00006a20 007a20 000188 00 AX 0 0 4 + [206] .text.TemCtrl_Ini PROGBITS 00006ba8 007ba8 000178 00 AX 0 0 4 + [207] .text.TemCtrl_Mod PROGBITS 00006d20 007d20 00004c 00 AX 0 0 4 + [208] .text.TemCtrl_Fan PROGBITS 00006d6c 007d6c 00004c 00 AX 0 0 4 + [209] .text.TemCtrl_Tem PROGBITS 00006db8 007db8 000030 00 AX 0 0 4 + [210] .text.TemCtrl_Tem PROGBITS 00006de8 007de8 000030 00 AX 0 0 4 + [211] .text.TemCtrl_OnO PROGBITS 00006e18 007e18 000034 00 AX 0 0 4 + [212] .text.Tem_Valve_C PROGBITS 00006e4c 007e4c 0000cc 00 AX 0 0 4 + [213] .text.TemCtrl_Pro PROGBITS 00006f18 007f18 000178 00 AX 0 0 4 + [214] .text.KEY1_Model_ PROGBITS 00007090 008090 0000cc 00 AX 0 0 4 + [215] .text.KEY2_Fan_Pr PROGBITS 0000715c 00815c 0000cc 00 AX 0 0 4 + [216] .text.KEY3_TempAd PROGBITS 00007228 008228 000100 00 AX 0 0 4 + [217] .text.KEY3_Long_P PROGBITS 00007328 008328 000070 00 AX 0 0 4 + [218] .text.KEY4_TempDe PROGBITS 00007398 008398 000100 00 AX 0 0 4 + [219] .text.KEY4_Long_P PROGBITS 00007498 008498 000070 00 AX 0 0 4 + [220] .text.KEY5_OnOff_ PROGBITS 00007508 008508 000090 00 AX 0 0 4 + [221] .text.TempCtrl_On PROGBITS 00007598 008598 000054 00 AX 0 0 4 + [222] .text.DisPlay_Ini PROGBITS 000075ec 0085ec 000020 00 AX 0 0 4 + [223] .text.DisPlay_Tas PROGBITS 0000760c 00860c 0004e8 00 AX 0 0 4 + [224] .text.Debug_Init PROGBITS 00007af4 008af4 00003c 00 AX 0 0 4 + [225] .text.Dev_SaveDat PROGBITS 00007b30 008b30 0000ac 00 AX 0 0 4 + [226] .text.Debug_Task PROGBITS 00007bdc 008bdc 000064 00 AX 0 0 4 + [227] .text.BLV_RLY_Ctr PROGBITS 00007c40 008c40 000028 00 AX 0 0 4 + [228] .text.Relay_Init PROGBITS 00007c68 008c68 000028 00 AX 0 0 4 + [229] .text.Relay_High PROGBITS 00007c90 008c90 00001c 00 AX 0 0 2 + [230] .text.Relay_Mid PROGBITS 00007cac 008cac 00001c 00 AX 0 0 2 + [231] .text.Relay_Low PROGBITS 00007cc8 008cc8 00001c 00 AX 0 0 2 + [232] .text.Relay_Stop PROGBITS 00007ce4 008ce4 00001c 00 AX 0 0 2 + [233] .text.BLV_RLY_Ctr PROGBITS 00007d00 008d00 000014 00 AX 0 0 2 + [234] .text.RLY_Direct_ PROGBITS 00007d14 008d14 0000c8 00 AX 0 0 4 + [235] .text.RLY_Zero_Co PROGBITS 00007ddc 008ddc 000098 00 AX 0 0 4 + [236] .text.NetCRC16_Ch PROGBITS 00007e74 008e74 00004c 00 AX 0 0 4 + [237] .text.GetCRC16 PROGBITS 00007ec0 008ec0 00003c 00 AX 0 0 4 + [238] .text.SOR_CRC PROGBITS 00007efc 008efc 000016 00 AX 0 0 2 + [239] .text.Rs485_ASend PROGBITS 00007f14 008f14 000108 00 AX 0 0 4 + [240] .text.Rs485AskCyc PROGBITS 0000801c 00901c 000104 00 AX 0 0 4 + [241] .text.Rs485AskCtr PROGBITS 00008120 009120 00005c 00 AX 0 0 4 + [242] .text.Rs485AskRea PROGBITS 0000817c 00917c 000068 00 AX 0 0 4 + [243] .text.Rs485_DevPo PROGBITS 000081e4 0091e4 000018 00 AX 0 0 2 + [244] .text.Temp_Rec_An PROGBITS 000081fc 0091fc 0001b0 00 AX 0 0 4 + [245] .text.Tem_Rs485_R PROGBITS 000083ac 0093ac 0000cc 00 AX 0 0 4 + [246] .text.TK_ConfigIn PROGBITS 00008478 009478 000010 00 AX 0 0 4 + [247] .text.tk_clk_conf PROGBITS 00008488 009488 000028 00 AX 0 0 4 + [248] .text.TK_con0_con PROGBITS 000084b0 0094b0 0000bc 00 AX 0 0 4 + [249] .text.tk_io_enabl PROGBITS 0000856c 00956c 000134 00 AX 0 0 4 + [250] .text.TK_Single_L PROGBITS 000086a0 0096a0 000128 00 AX 0 0 4 + [251] .text.TK_Sampling PROGBITS 000087c8 0097c8 0000cc 00 AX 0 0 4 + [252] .text.get_key_num PROGBITS 00008894 009894 000028 00 AX 0 0 4 + [253] .text.get_key_num PROGBITS 000088bc 0098bc 000028 00 AX 0 0 4 + [254] .text.get_key_num PROGBITS 000088e4 0098e4 000028 00 AX 0 0 4 + [255] .text.get_key_num PROGBITS 0000890c 00990c 000028 00 AX 0 0 4 + [256] .text.TK_Baseline PROGBITS 00008934 009934 000150 00 AX 0 0 4 + [257] .text.TK_Baseline PROGBITS 00008a84 009a84 000148 00 AX 0 0 4 + [258] .text.tk_poweron_ PROGBITS 00008bcc 009bcc 000124 00 AX 0 0 4 + [259] .text.TK_Scan_Sta PROGBITS 00008cf0 009cf0 000068 00 AX 0 0 4 + [260] .text.TK_Keymap_p PROGBITS 00008d58 009d58 000870 00 AX 0 0 4 + [261] .text.TK_overflow PROGBITS 000095c8 00a5c8 000128 00 AX 0 0 4 + [262] .text.TK_Baseline PROGBITS 000096f0 00a6f0 0004d0 00 AX 0 0 4 + [263] .text.TK_result_p PROGBITS 00009bc0 00abc0 000130 00 AX 0 0 4 + [264] .text.get_key_seq PROGBITS 00009cf0 00acf0 000038 00 AX 0 0 4 + [265] .text.CORET_CONFI PROGBITS 00009d28 00ad28 000038 00 AX 0 0 4 + [266] .text.tk_chxval_s PROGBITS 00009d60 00ad60 00001c 00 AX 0 0 4 + [267] .text.tk_freq_par PROGBITS 00009d7c 00ad7c 0000ac 00 AX 0 0 4 + [268] .text.tk_reserved PROGBITS 00009e28 00ae28 000028 00 AX 0 0 4 + [269] .text.TKEYIntHand PROGBITS 00009e50 00ae50 0000a0 00 AX 0 0 4 + [270] .text.CORETHandle PROGBITS 00009ef0 00aef0 00015c 00 AX 0 0 4 + [271] .text.tk_init PROGBITS 0000a04c 00b04c 000110 00 AX 0 0 4 + [272] .text.std_clk_cal PROGBITS 0000a15c 00b15c 000284 00 AX 0 0 4 + [273] .RomCode PROGBITS 0000a3e0 00c0b0 000000 00 W 0 0 1 + [274] .rodata PROGBITS 0000a3e0 00b3e0 000920 00 A 0 0 4 + [275] .data PROGBITS 20000000 00c000 0000b0 00 WA 0 0 4 + [276] .bss NOBITS 200000b0 00c0b0 000b50 00 WA 0 0 4 + [277] .csky.attributes CSKY_ATTRIBUTES 00000000 00c0b0 000022 00 0 0 1 + [278] .comment PROGBITS 00000000 00c0d2 000042 01 MS 0 0 1 + [279] .csky_stack_size PROGBITS 00000000 00c120 000c0c 00 0 0 16 + [280] .debug_line PROGBITS 00000000 00cd2c 0071f0 00 0 0 1 + [281] .debug_info PROGBITS 00000000 013f1c 054462 00 0 0 1 + [282] .debug_abbrev PROGBITS 00000000 06837e 0049f6 00 0 0 1 + [283] .debug_aranges PROGBITS 00000000 06cd78 001228 00 0 0 8 + [284] .debug_ranges PROGBITS 00000000 06dfa0 001238 00 0 0 1 + [285] .debug_str PROGBITS 00000000 06f1d8 00a61e 01 MS 0 0 1 + [286] .debug_frame PROGBITS 00000000 0797f8 002ca4 00 0 0 4 + [287] .debug_loc PROGBITS 00000000 07c49c 0047f7 00 0 0 1 + [288] .shstrtab STRTAB 00000000 089d4a 00197d 00 0 0 1 + [289] .symtab SYMTAB 00000000 080c94 006ea0 10 290 1274 4 + [290] .strtab STRTAB 00000000 087b34 002216 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 0x0ad00 0x0ad00 R E 0x1000 + LOAD 0x00c000 0x20000000 0x0000ad00 0x000b0 0x00c00 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.EXI3_Int_Enable .text.EXI4_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.SIO_DeInit .text.SIO_IO_Init .text.SIO_TX_Init .text.SIO_TX_Configure .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.ADC12_RESET_VALUE .text.ADC12_Control .text.ADC12_CMD.part.0 .text.ADC12_CLK_CMD .text.ADC12_Software_Reset .text.ADC12_CMD .text.ADC12_ready_wait .text.ADC12_SEQEND_wait .text.ADC12_DATA_OUPUT .text.ADC12_Configure_Mode .text.ADC12_Configure_VREF_Selecte .text.ADC12_ConversionChannel_Config .text.Page_ProgramData .text.ReadDataArry_U8 .text.tk_parameter_init .text.CORET_DeInit .text.CORET_Int_Enable .text.CORET_start .text.CORET_CLKSOURCE_EX .text.CORET_TICKINT_Enable .text.CORET_reload .text.startup.main .text.delay_nms .text.delay_nus .text.GPIO_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.CK_CPU_DisAllNormalIrq .text.UARTx_Init .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.Dbg_Print_Buff .text.Touch_Key_Init .text.Get_TouchKey_CH_State .text.TouchKey_RS485_Printf_3 .text.Touch_Key_Event_Handling .text.TouchKey_Set_Interface_Task .text.Touch_Key_Task .text.TouchKey_CheckSum .text.TouchKey_Comm_Reply .text.TouchKey_SetPara_Processing .text.TouchKey_ReadPara_Processing .text.TouchKey_DugPrintf_Processing .text.TouchKey_ReadEnve_Processing .text.TouchKey_ResetDevice_Processing .text.TouchKey_Comm_Processing .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_WriteTouchPara .text.EEPROM_ReadTouchPara .text.EEPROM_Validate_TouchPara .text.EEPROM_Default_TouchPara .text.EEPROM_TouchPara_Printf .text.EEPROM_ReadMCUDevInfo .text.EEPROM_WriteMCUDevInfo .text.EEPROM_Default_MCUDevInfo .text.EEPROM_Validate_MCUDevInfo .text.EEPROM_Init .text.ADC_Init .text.Thermistor_Array_Transform .text.Calculate_ADC_Sample_Average .text.Get_Temp_Val .text.Gather_Temp .text.ADC_Sample_Task .text.Contol_Switch_Light .text.Contol_Switch_Light_2 .text.Contol_Switch_ClickAction .text.Get_TM1812_State_Change .text.TimeCall_SIO_Send .text.TimeCall_SIO_Send2 .text.Tm1812_Task .text.Tm1812_Ch_Insert_Data .text.TM1812_Control_CH_State .text.TM1812_Control_CH_CurrState .text.TM1812_LED_Init .text.HT1621_WR_Data .text.HT1621_WR_CMD .text.HT1621_Init .text.HT1621_Clear .text.HT1621_ALLON .text.HT1621_Refresh_Data .text.Set_Temperature_Display .text.Local_Temperature_Display .text.Control_Mode .text.Control_wind_velocity .text.Control_Prompt_Text .text.Controlled_Buzzer .text.Controlled_LCD_Backlight .text.Controlled_Key_Backlight .text.Set_Device_ADDR .text.Set_Temp_Difference .text.HT1621_Refresh_Task .text.Boot_Function_Init .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.TemCtrl_Init .text.TemCtrl_Model_Set .text.TemCtrl_Fan_Set .text.TemCtrl_Temperature_Dec .text.TemCtrl_Temperature_Add .text.TemCtrl_OnOff_Set .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.KEY1_Model_Press_Fun .text.KEY2_Fan_Press_Fun .text.KEY3_TempAdd_Press_Fun .text.KEY3_Long_Press_Fun .text.KEY4_TempDec_Press_Fun .text.KEY4_Long_Press .text.KEY5_OnOff_Press_Fun .text.TempCtrl_OnOff_DisPlay .text.DisPlay_Init .text.DisPlay_Task .text.Debug_Init .text.Dev_SaveData .text.Debug_Task .text.BLV_RLY_Ctrl_Purpose.part.0 .text.Relay_Init .text.Relay_High .text.Relay_Mid .text.Relay_Low .text.Relay_Stop .text.BLV_RLY_Ctrl_Purpose .text.RLY_Direct_Control .text.RLY_Zero_Control .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_ConfigInterrupt_CMD.part.0 .text.tk_clk_config .text.TK_con0_config .text.tk_io_enable .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Baseline_prog .text.TK_Baseline_prog2 .text.tk_poweron_data_fineturn .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.get_key_seq .text.CORET_CONFIG .text.tk_chxval_seqxcon_clr .text.tk_freq_para_init .text.tk_reserved_init .text.TKEYIntHandler .text.CORETHandler .text.tk_init .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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_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_TouchPara_Printf) 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_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_trigger_CMD) for EXTI_trigger_CMD + 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/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.UART2_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/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXTI_interrupt_CMD) for EXTI_interrupt_CMD + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.GPIO_EXTI_interrupt) for GPIO_EXTI_interrupt + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_syscon.o(.text.EXI3_Int_Enable) for EXI3_Int_Enable + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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.BUS485_Send) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_Low) for GPIO_Write_Low + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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/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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Init) for GPIO_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) 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_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_DriveStrength_EN) for GPIO_DriveStrength_EN + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_IntGroup_Set) for GPIO_IntGroup_Set + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOA0_EXI_Init) for GPIOA0_EXI_Init + Obj/mcu_initial.o(.text.GPIO_CONFIG) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) for GPIOB0_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_ht1621.o(.text.HT1621_WR_Data) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/FWlib_apt32f102_gpio.o(.text.GPIO_Write_High) for GPIO_Write_High + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) 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_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_DeInit) for SIO_DeInit + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_IO_Init) for SIO_IO_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Init) for SIO_TX_Init + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/FWlib_apt32f102_sio.o(.text.SIO_TX_Configure) for SIO_TX_Configure + 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.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_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_RESET_VALUE) for ADC12_RESET_VALUE + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD.part.0) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Control) for ADC12_Control + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CLK_CMD) for ADC12_CLK_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Software_Reset) for ADC12_Software_Reset + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_CMD) for ADC12_CMD + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ready_wait) for ADC12_ready_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_SEQEND_wait) for ADC12_SEQEND_wait + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_DATA_OUPUT) for ADC12_DATA_OUPUT + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_Mode) for ADC12_Configure_Mode + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_Configure_VREF_Selecte) for ADC12_Configure_VREF_Selecte + Obj/SYSTEM_adc.o(.text.ADC_Init) refers to Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) for ADC12_ConversionChannel_Config + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) 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_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to Obj/FWlib_apt32f102_tkey_parameter.o(.text.tk_parameter_init) for tk_parameter_init + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_DeInit) for CORET_DeInit + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_Int_Enable) for CORET_Int_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_start) for CORET_start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_CLKSOURCE_EX) for CORET_CLKSOURCE_EX + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_TICKINT_Enable) for CORET_TICKINT_Enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) refers to Obj/FWlib_apt32f102_coret.o(.text.CORET_reload) for CORET_reload + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + Obj/USRCTRL_display_logic.o(.text.DisPlay_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.GPIO_CONFIG) for GPIO_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 + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/drivers_apt32f102.o(.text.__udivsi3) for __udivsi3 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) 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 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__modsi3) for __modsi3 + Obj/SYSTEM_uart.o(.text.BusBusy_Task) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) refers to Obj/drivers_apt32f102.o(.text.__umodsi3) for __umodsi3 + Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) 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_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_EnAllNormalIrq) for CK_CPU_EnAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose.part.0) refers to Obj/drivers_apt32f102_ck801.o(.text.CK_CPU_DisAllNormalIrq) for CK_CPU_DisAllNormalIrq + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) 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.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.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_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) 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/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) 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/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.EXI4to9IntHandler) 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_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) 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_adc.o(.text.Gather_Temp) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) refers to Obj/SYSTEM_uart.o(.text.Dbg_Print_Buff) for Dbg_Print_Buff + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) for Touch_Key_Init + Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) for Get_TouchKey_CH_State + Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_RS485_Printf_3) for TouchKey_RS485_Printf_3 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) for Touch_Key_Event_Handling + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Set_Interface_Task) for TouchKey_Set_Interface_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) for Touch_Key_Task + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_CheckSum) for TouchKey_CheckSum + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Reply) for TouchKey_Comm_Reply + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) for TouchKey_SetPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) for TouchKey_ReadPara_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_DugPrintf_Processing) for TouchKey_DugPrintf_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadEnve_Processing) for TouchKey_ReadEnve_Processing + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_ResetDevice_Processing) for TouchKey_ResetDevice_Processing + Obj/SYSTEM_uart.o(.text.UART2_TASK) refers to Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) for TouchKey_Comm_Processing + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) for EEPROM_WriteTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) for EEPROM_ReadTouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_SetPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_TouchPara) for EEPROM_Validate_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_TouchPara) for EEPROM_Default_TouchPara + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_TouchPara_Printf) for EEPROM_TouchPara_Printf + 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/USRCTRL_debug_unit.o(.text.Dev_SaveData) 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_adc.o(.text.ADC_Init) for ADC_Init + Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) refers to Obj/SYSTEM_adc.o(.text.Thermistor_Array_Transform) for Thermistor_Array_Transform + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Calculate_ADC_Sample_Average) for Calculate_ADC_Sample_Average + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_adc.o(.text.Get_Temp_Val) for Get_Temp_Val + Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) refers to Obj/SYSTEM_adc.o(.text.Gather_Temp) for Gather_Temp + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_adc.o(.text.ADC_Sample_Task) for ADC_Sample_Task + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) for Contol_Switch_Light + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) for Contol_Switch_Light_2 + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_ClickAction) for Contol_Switch_ClickAction + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.Get_TM1812_State_Change) for Get_TM1812_State_Change + Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send) for TimeCall_SIO_Send + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TimeCall_SIO_Send2) for TimeCall_SIO_Send2 + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Task) for Tm1812_Task + Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) refers to Obj/SYSTEM_tm1812.o(.text.Tm1812_Ch_Insert_Data) for Tm1812_Ch_Insert_Data + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_State) for TM1812_Control_CH_State + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_Control_CH_CurrState) for TM1812_Control_CH_CurrState + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) for TM1812_LED_Init + Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_Data) for HT1621_WR_Data + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_WR_CMD) for HT1621_WR_CMD + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Init) for HT1621_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) for HT1621_Clear + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_ALLON) for HT1621_ALLON + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Data) for HT1621_Refresh_Data + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temperature_Display) for Set_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Local_Temperature_Display) for Local_Temperature_Display + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_Mode) for Control_Mode + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) for Control_wind_velocity + Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) refers to Obj/SYSTEM_ht1621.o(.text.Control_Prompt_Text) for Control_Prompt_Text + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Buzzer) for Controlled_Buzzer + Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_LCD_Backlight) for Controlled_LCD_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/SYSTEM_ht1621.o(.text.Controlled_Key_Backlight) for Controlled_Key_Backlight + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) refers to Obj/SYSTEM_ht1621.o(.text.Set_Device_ADDR) for Set_Device_ADDR + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/SYSTEM_ht1621.o(.text.Set_Temp_Difference) for Set_Temp_Difference + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_ht1621.o(.text.HT1621_Refresh_Task) for HT1621_Refresh_Task + Obj/SYSTEM_touch_key.o(.text.Touch_Key_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.UART2_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Model_Set) for TemCtrl_Model_Set + Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) for TemCtrl_Fan_Set + Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Dec) for TemCtrl_Temperature_Dec + Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Temperature_Add) for TemCtrl_Temperature_Add + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_OnOff_Set) for TemCtrl_OnOff_Set + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY1_Model_Press_Fun) for KEY1_Model_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY2_Fan_Press_Fun) for KEY2_Fan_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_TempAdd_Press_Fun) for KEY3_TempAdd_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY3_Long_Press_Fun) for KEY3_Long_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_TempDec_Press_Fun) for KEY4_TempDec_Press_Fun + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY4_Long_Press) for KEY4_Long_Press + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Event_Handling) refers to Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) for KEY5_OnOff_Press_Fun + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_display_logic.o(.text.TempCtrl_OnOff_DisPlay) for TempCtrl_OnOff_DisPlay + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Init) for DisPlay_Init + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Init) for Debug_Init + Obj/USRCTRL_key_logic.o(.text.KEY5_OnOff_Press_Fun) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/USRCTRL_debug_unit.o(.text.Debug_Task) refers to Obj/USRCTRL_debug_unit.o(.text.Dev_SaveData) for Dev_SaveData + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_debug_unit.o(.text.Debug_Task) for Debug_Task + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Init) for Relay_Init + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_High) for Relay_High + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Mid) for Relay_Mid + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Low) for Relay_Low + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_myrelay.o(.text.Relay_Stop) for Relay_Stop + Obj/USRCTRL_tempctrl_unit.o(.text.Tem_Valve_Ctrl) refers to Obj/USRCTRL_myrelay.o(.text.BLV_RLY_Ctrl_Purpose) for BLV_RLY_Ctrl_Purpose + Obj/main.o(.text.startup.main) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) for RLY_Direct_Control + Obj/mcu_interrupt.o(.text.EXI10to15IntHandler) refers to Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) for RLY_Zero_Control + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/USRCTRL_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/USRCTRL_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/USRCTRL_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_clk_config) for tk_clk_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_con0_config) for TK_con0_config + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) for tk_io_enable + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog) for TK_Baseline_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_prog2) for TK_Baseline_prog2 + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_poweron_data_fineturn) for tk_poweron_data_fineturn + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) for TK_result_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_seq) for get_key_seq + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.CORET_CONFIG) for CORET_CONFIG + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_chxval_seqxcon_clr) for tk_chxval_seqxcon_clr + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) for tk_freq_para_init + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_reserved_init) for tk_reserved_init + Obj/SYSTEM_touch_key.o(.text.Touch_Key_Init) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.tk_init) for tk_init + Obj/mcu_initial.o(.text.SYSCON_CONFIG) refers to FWlib_apt32f102_clkcalib.o(.text.std_clk_calib) for std_clk_calib + FWlib_apt32f102_tkey_f_1_18.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/FWlib_apt32f102_gpio.o(.text.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/FWlib_apt32f102_adc.o(.text.ADC12_ConversionChannel_Config) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.Get_TouchKey_CH_State) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_touch_key.o(.text.TouchKey_Comm_Processing) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_ht1621.o(.text.Control_wind_velocity) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Fan_Set) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Direct_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_myrelay.o(.text.RLY_Zero_Control) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_io_enable) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.o(.text.tk_freq_para_init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/USRCTRL_display_logic.o(.text.DisPlay_Task) refers to _csky_case_shi.o(.text) for ___gnu_csky_case_shi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_switch_fun.o(.text.Contol_Switch_Light_2) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + Obj/SYSTEM_ht1621.o(.text.Control_Mode) refers to _csky_case_uhi.o(.text) for ___gnu_csky_case_uhi + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) refers to _fixunsdfsi.o(.text) for __fixunsdfsi + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to _div_sf.o(.text) for __divsf3 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to _sf_to_df.o(.text) for __extendsfdf2 + Obj/SYSTEM_adc.o(.text.Gather_Temp) refers to _usi_to_sf.o(.text) for __floatunsisf + 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 + _sf_to_df.o(.text) refers to _make_df.o(.text) for __make_dp + FWlib_apt32f102_tkey_f_1_18.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 + _usi_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 + _div_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _usi_to_sf.o(.text) refers to _pack_sf.o(.text) for __pack_f + _div_sf.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 + _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 + _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.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_touch_key.o(.text.Touch_Key_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_touch_key.o(.text.TouchKey_ReadPara_Processing) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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_adc.o(.text.ADC_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tm1812.o(.text.TM1812_LED_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Init) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_ht1621.o(.text.HT1621_Clear) 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/USRCTRL_tempctrl_unit.o(.text.TemCtrl_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_debug_unit.o(.text.Debug_Init) refers to memset_fast.o(.text) for memset + Obj/USRCTRL_myrelay.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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteTouchPara) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadTouchPara) 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), (2909 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_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_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_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), (3103 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), (3420 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), (3165 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), (8028 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_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 .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), (3536 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), (3652 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), (4852 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_ConfigInterrupt_CMD(Obj/FWlib_apt32f102_adc.o), (32 bytes). + Removing .text.ADC12_Read_IntEnStatus(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_EOC_wait(Obj/FWlib_apt32f102_adc.o), (20 bytes). + Removing .text.ADC12_CompareFunction_set(Obj/FWlib_apt32f102_adc.o), (32 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 .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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 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_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_stop(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_CLKSOURCE_IN(Obj/FWlib_apt32f102_coret.o), (16 bytes). + Removing .text.CORET_TICKINT_Disable(Obj/FWlib_apt32f102_coret.o), (16 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.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (4 bytes). + Removing .text.UART0_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART0_TASK(Obj/SYSTEM_uart.o), (64 bytes). + Removing .text.UART1_RecvINT_Processing(Obj/SYSTEM_uart.o), (56 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (68 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .bss(Obj/SYSTEM_touch_key.o), (0 bytes). + Removing .text.Touch_Key_PrintScan(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_RS485_Printf_2(Obj/SYSTEM_touch_key.o), (596 bytes). + Removing .text.TouchKey_RS485_Printf(Obj/SYSTEM_touch_key.o), (260 bytes). + Removing .text.Touch_Key_FilterPrint(Obj/SYSTEM_touch_key.o), (2 bytes). + Removing .text.TouchKey_Error_Scan(Obj/SYSTEM_touch_key.o), (84 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_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text(Obj/SYSTEM_adc.o), (0 bytes). + Removing .data(Obj/SYSTEM_adc.o), (0 bytes). + Removing .text(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .data(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .bss(Obj/SYSTEM_switch_fun.o), (0 bytes). + Removing .text(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .data(Obj/SYSTEM_tm1812.o), (0 bytes). + Removing .text.TM1812_Write_Byte(Obj/SYSTEM_tm1812.o), (64 bytes). + Removing .text.TM1812_Data_Mapping_SIO(Obj/SYSTEM_tm1812.o), (80 bytes). + Removing .text.SIO_TXBUF_Send(Obj/SYSTEM_tm1812.o), (60 bytes). + Removing .text.SIO_TXBUF_Send2(Obj/SYSTEM_tm1812.o), (52 bytes). + Removing .text.TM1812_Refresh_Data(Obj/SYSTEM_tm1812.o), (12 bytes). + Removing .text.TM1812_Gradient_ControlCH(Obj/SYSTEM_tm1812.o), (32 bytes). + Removing .text(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .data(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .bss(Obj/SYSTEM_ht1621.o), (0 bytes). + Removing .text.HT1621_Write_One_Data(Obj/SYSTEM_ht1621.o), (64 bytes). + Removing .text.HT1621_Write_Data(Obj/SYSTEM_ht1621.o), (76 bytes). + Removing .text.HT1621_ReadData(Obj/SYSTEM_ht1621.o), (216 bytes). + Removing .text.Read_LCD_SetTemp(Obj/SYSTEM_ht1621.o), (136 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_ht1621.o), (29 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), (264 bytes). + Removing .text(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .bss(Obj/USRCTRL_key_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .data(Obj/USRCTRL_display_logic.o), (0 bytes). + Removing .text(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .data(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .bss(Obj/USRCTRL_debug_unit.o), (0 bytes). + Removing .text(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .data(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .bss(Obj/USRCTRL_myrelay.o), (0 bytes). + Removing .text(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .data(Obj/USRCTRL_uart_protocol.o), (0 bytes). + Removing .bss(Obj/USRCTRL_uart_protocol.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), (123 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_f_1_18.o), (0 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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_shi.o), (0 bytes). + Removing .bss(_csky_case_shi.o), (0 bytes). + Removing .data(_csky_case_uhi.o), (0 bytes). + Removing .bss(_csky_case_uhi.o), (0 bytes). + Removing .data(_fixunsdfsi.o), (0 bytes). + Removing .bss(_fixunsdfsi.o), (0 bytes). + Removing .data(_div_sf.o), (0 bytes). + Removing .bss(_div_sf.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(_usi_to_sf.o), (0 bytes). + Removing .bss(_usi_to_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 .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(_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). + +614 unused seciton(s) (total 138930 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_f_1_18.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_adc.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_bt.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_coret.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_sio.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_syscon.o 0x00000000 df 0 *ABS* + Obj/FWlib_apt32f102_tkey_parameter.o0x00000000 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_adc.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_ht1621.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_switch_fun.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tm1812.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_touch_key.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_debug_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_display_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_key_logic.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_myrelay.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/USRCTRL_uart_protocol.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_shi.o 0x00000000 df 0 *ABS* + _csky_case_uhi.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* + _div_sf.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* + _make_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* + _pack_sf.o 0x00000000 df 0 *ABS* + _sf_to_df.o 0x00000000 df 0 *ABS* + _si_to_df.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* + _usi_to_sf.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 0x00000d10 0 .text + $t 0x00000d10 0 .text + $d 0x00000d2c 0 .text + $t 0x00000d2c 0 .text + $d 0x00000d48 0 .text + $t 0x00000d48 0 .text + $d 0x00000d7c 0 .text + $d 0x00000d80 0 .text + $t 0x00000d80 0 .text + $d 0x00000e38 0 .text + $d 0x00000e3c 0 .text + $t 0x00000e3c 0 .text + $d 0x00000e60 0 .text + $t 0x00000e60 0 .text + _fpadd_parts 0x00000ec0 F 724 .text + $d 0x00000ec0 0 .text + $t 0x00000ec0 0 .text + $d 0x00001188 0 .text + $t 0x00001194 0 .text + $d 0x000011fc 0 .text + $t 0x000011fc 0 .text + $d 0x00001424 0 .text + $d 0x00001430 0 .text + $t 0x00001430 0 .text + $d 0x00001580 0 .text + $d 0x00001584 0 .text + $t 0x00001584 0 .text + $d 0x000015c0 0 .text + $t 0x000015c0 0 .text + $d 0x000015fc 0 .text + $t 0x000015fc 0 .text + $d 0x00001638 0 .text + $t 0x00001638 0 .text + $d 0x000016a4 0 .text + $d 0x000016a8 0 .text + $t 0x000016a8 0 .text + $d 0x00001714 0 .text + $d 0x00001718 0 .text + $t 0x00001718 0 .text + $d 0x00001740 0 .text + $t 0x00001740 0 .text + $d 0x00001794 0 .text + $t 0x00001794 0 .text + $d 0x000017d8 0 .text + $t 0x000017d8 0 .text + $d 0x0000180c 0 .text + $d 0x00001818 0 .text + $t 0x00001818 0 .text + $d 0x000018cc 0 .text + $d 0x000018d0 0 .text + $t 0x000018d0 0 .text + $d 0x0000194c 0 .text + $d 0x00001954 0 .text + $t 0x00001954 0 .text + $d 0x00001adc 0 .text + $d 0x00001af0 0 .text + $t 0x00001af0 0 .text + $d 0x00001ba8 0 .text + $d 0x00001bb4 0 .text + $t 0x00001bb4 0 .text + $d 0x00001c40 0 .text + $t 0x00001c40 0 .text + $d 0x00001cc8 0 .text + $t 0x00001cc8 0 .text + $d 0x00001d2c 0 .text + $t 0x00001d2c 0 .text + $d 0x00001d54 0 .text.__main + $t 0x00001d54 0 .text.__main + $d 0x00001d78 0 .text.__main + SYSCON_General_CMD.part.0 0x00001d8c F 116 .text.SYSCON_General_CMD.part.0 + $d 0x00001d8c 0 .text.SYSCON_General_CMD.part.0 + $t 0x00001d8c 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001df8 0 .text.SYSCON_General_CMD.part.0 + $d 0x00001e00 0 .text.SYSCON_RST_VALUE + $t 0x00001e00 0 .text.SYSCON_RST_VALUE + $d 0x00001e30 0 .text.SYSCON_RST_VALUE + $d 0x00001e4c 0 .text.SYSCON_General_CMD + $t 0x00001e4c 0 .text.SYSCON_General_CMD + $d 0x00001e78 0 .text.SYSCON_General_CMD + $d 0x00001e7c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $t 0x00001e7c 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001ef4 0 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + $d 0x00001f04 0 .text.SYSCON_HFOSC_SELECTE + $t 0x00001f04 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001f28 0 .text.SYSCON_HFOSC_SELECTE + $d 0x00001f2c 0 .text.SYSCON_WDT_CMD + $t 0x00001f2c 0 .text.SYSCON_WDT_CMD + $d 0x00001f5c 0 .text.SYSCON_WDT_CMD + $d 0x00001f68 0 .text.SYSCON_IWDCNT_Reload + $t 0x00001f68 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001f78 0 .text.SYSCON_IWDCNT_Reload + $d 0x00001f7c 0 .text.SYSCON_IWDCNT_Config + $t 0x00001f7c 0 .text.SYSCON_IWDCNT_Config + $d 0x00001f8c 0 .text.SYSCON_IWDCNT_Config + $d 0x00001f94 0 .text.SYSCON_LVD_Config + $t 0x00001f94 0 .text.SYSCON_LVD_Config + $d 0x00001fac 0 .text.SYSCON_LVD_Config + $d 0x00001fb4 0 .text.LVD_Int_Enable + $t 0x00001fb4 0 .text.LVD_Int_Enable + $d 0x00001fcc 0 .text.LVD_Int_Enable + $d 0x00001fd0 0 .text.IWDT_Int_Enable + $t 0x00001fd0 0 .text.IWDT_Int_Enable + $d 0x00001fe8 0 .text.IWDT_Int_Enable + $d 0x00001fec 0 .text.EXTI_trigger_CMD + $t 0x00001fec 0 .text.EXTI_trigger_CMD + $d 0x00002028 0 .text.EXTI_trigger_CMD + $d 0x0000202c 0 .text.EXTI_interrupt_CMD + $t 0x0000202c 0 .text.EXTI_interrupt_CMD + $d 0x00002058 0 .text.EXTI_interrupt_CMD + $d 0x00002060 0 .text.GPIO_EXTI_interrupt + $t 0x00002060 0 .text.GPIO_EXTI_interrupt + $d 0x00002064 0 .text.EXI3_Int_Enable + $t 0x00002064 0 .text.EXI3_Int_Enable + $d 0x00002070 0 .text.EXI3_Int_Enable + $d 0x00002074 0 .text.EXI4_Int_Enable + $t 0x00002074 0 .text.EXI4_Int_Enable + $d 0x00002080 0 .text.EXI4_Int_Enable + $d 0x00002084 0 .text.SYSCON_Int_Enable + $t 0x00002084 0 .text.SYSCON_Int_Enable + $d 0x0000208c 0 .text.SYSCON_Int_Enable + $d 0x00002090 0 .text.SYSCON_Int_Disable + $t 0x00002090 0 .text.SYSCON_Int_Disable + $d 0x00002098 0 .text.SYSCON_Int_Disable + $d 0x0000209c 0 .text.SYSCON_INT_Priority + $t 0x0000209c 0 .text.SYSCON_INT_Priority + $d 0x000020b4 0 .text.SYSCON_INT_Priority + $d 0x000020c0 0 .text.Set_INT_Priority + $t 0x000020c0 0 .text.Set_INT_Priority + $d 0x000020ec 0 .text.Set_INT_Priority + $d 0x000020f0 0 .text.GPIO_DeInit + $t 0x000020f0 0 .text.GPIO_DeInit + $d 0x00002144 0 .text.GPIO_DeInit + $d 0x00002154 0 .text.GPIO_Init + $t 0x00002154 0 .text.GPIO_Init + $d 0x00002166 0 .text.GPIO_Init + $t 0x0000216e 0 .text.GPIO_Init + $d 0x000021ca 0 .text.GPIO_Init + $t 0x000021d2 0 .text.GPIO_Init + $d 0x00002220 0 .text.GPIO_Init + $d 0x00002234 0 .text.GPIO_PullHigh_Init + $t 0x00002234 0 .text.GPIO_PullHigh_Init + $d 0x00002248 0 .text.GPIO_DriveStrength_EN + $t 0x00002248 0 .text.GPIO_DriveStrength_EN + $d 0x00002258 0 .text.GPIO_IntGroup_Set + $t 0x00002258 0 .text.GPIO_IntGroup_Set + $d 0x0000234c 0 .text.GPIO_IntGroup_Set + $d 0x00002364 0 .text.GPIOA0_EXI_Init + $t 0x00002364 0 .text.GPIOA0_EXI_Init + $d 0x00002370 0 .text.GPIOA0_EXI_Init + $t 0x00002380 0 .text.GPIOA0_EXI_Init + $d 0x0000245c 0 .text.GPIOA0_EXI_Init + $d 0x00002460 0 .text.GPIOB0_EXI_Init + $t 0x00002460 0 .text.GPIOB0_EXI_Init + $d 0x0000246c 0 .text.GPIOB0_EXI_Init + $t 0x00002472 0 .text.GPIOB0_EXI_Init + $d 0x000024c8 0 .text.GPIOB0_EXI_Init + $d 0x000024cc 0 .text.GPIO_Write_High + $t 0x000024cc 0 .text.GPIO_Write_High + $d 0x000024d4 0 .text.GPIO_Write_Low + $t 0x000024d4 0 .text.GPIO_Write_Low + $d 0x000024dc 0 .text.GPIO_Reverse + $t 0x000024dc 0 .text.GPIO_Reverse + $d 0x000024f2 0 .text.GPIO_Read_Status + $t 0x000024f2 0 .text.GPIO_Read_Status + $d 0x00002504 0 .text.LPT_Soft_Reset + $t 0x00002504 0 .text.LPT_Soft_Reset + $d 0x00002514 0 .text.LPT_Soft_Reset + $d 0x00002518 0 .text.WWDT_CNT_Load + $t 0x00002518 0 .text.WWDT_CNT_Load + $d 0x00002524 0 .text.WWDT_CNT_Load + $d 0x00002528 0 .text.BT_DeInit + $t 0x00002528 0 .text.BT_DeInit + $d 0x00002544 0 .text.BT_Start + $t 0x00002544 0 .text.BT_Start + $d 0x0000254c 0 .text.BT_Soft_Reset + $t 0x0000254c 0 .text.BT_Soft_Reset + $d 0x00002556 0 .text.BT_Configure + $t 0x00002556 0 .text.BT_Configure + $d 0x0000256e 0 .text.BT_ControlSet_Configure + $t 0x0000256e 0 .text.BT_ControlSet_Configure + $d 0x0000259a 0 .text.BT_Period_CMP_Write + $t 0x0000259a 0 .text.BT_Period_CMP_Write + $d 0x000025a0 0 .text.BT_ConfigInterrupt_CMD + $t 0x000025a0 0 .text.BT_ConfigInterrupt_CMD + $d 0x000025b4 0 .text.BT1_INT_ENABLE + $t 0x000025b4 0 .text.BT1_INT_ENABLE + $d 0x000025c0 0 .text.BT1_INT_ENABLE + $d 0x000025c4 0 .text.SIO_DeInit + $t 0x000025c4 0 .text.SIO_DeInit + $d 0x000025e0 0 .text.SIO_DeInit + $d 0x000025e4 0 .text.SIO_IO_Init + $t 0x000025e4 0 .text.SIO_IO_Init + $d 0x0000263c 0 .text.SIO_IO_Init + $d 0x00002644 0 .text.SIO_TX_Init + $t 0x00002644 0 .text.SIO_TX_Init + $d 0x00002650 0 .text.SIO_TX_Init + $d 0x00002654 0 .text.SIO_TX_Configure + $t 0x00002654 0 .text.SIO_TX_Configure + $d 0x000026a0 0 .text.SIO_TX_Configure + $d 0x000026a4 0 .text.UART0_DeInit + $t 0x000026a4 0 .text.UART0_DeInit + $d 0x000026b8 0 .text.UART0_DeInit + $d 0x000026bc 0 .text.UART1_DeInit + $t 0x000026bc 0 .text.UART1_DeInit + $d 0x000026d0 0 .text.UART1_DeInit + $d 0x000026d4 0 .text.UART2_DeInit + $t 0x000026d4 0 .text.UART2_DeInit + $d 0x000026e8 0 .text.UART2_DeInit + $d 0x000026ec 0 .text.UART0_Int_Enable + $t 0x000026ec 0 .text.UART0_Int_Enable + $d 0x00002700 0 .text.UART0_Int_Enable + $d 0x00002708 0 .text.UART2_Int_Enable + $t 0x00002708 0 .text.UART2_Int_Enable + $d 0x0000271c 0 .text.UART2_Int_Enable + $d 0x00002724 0 .text.UART_IO_Init + $t 0x00002724 0 .text.UART_IO_Init + $d 0x00002808 0 .text.UART_IO_Init + $d 0x00002810 0 .text.UARTInit + $t 0x00002810 0 .text.UARTInit + $d 0x0000281c 0 .text.UARTInit + $d 0x00002820 0 .text.UARTInitRxTxIntEn + $t 0x00002820 0 .text.UARTInitRxTxIntEn + $d 0x0000282c 0 .text.UARTInitRxTxIntEn + $d 0x00002830 0 .text.UARTTransmit + $t 0x00002830 0 .text.UARTTransmit + $d 0x00002850 0 .text.EPT_Stop + $t 0x00002850 0 .text.EPT_Stop + $d 0x00002870 0 .text.EPT_Stop + $d 0x00002878 0 .text.ADC12_RESET_VALUE + $t 0x00002878 0 .text.ADC12_RESET_VALUE + $d 0x000028d8 0 .text.ADC12_RESET_VALUE + $d 0x000028dc 0 .text.ADC12_Control + $t 0x000028dc 0 .text.ADC12_Control + $d 0x000028e8 0 .text.ADC12_Control + ADC12_CMD.part.0 0x000028ec F 32 .text.ADC12_CMD.part.0 + $d 0x000028ec 0 .text.ADC12_CMD.part.0 + $t 0x000028ec 0 .text.ADC12_CMD.part.0 + $d 0x00002908 0 .text.ADC12_CMD.part.0 + $d 0x0000290c 0 .text.ADC12_CLK_CMD + $t 0x0000290c 0 .text.ADC12_CLK_CMD + $d 0x00002934 0 .text.ADC12_CLK_CMD + $d 0x00002938 0 .text.ADC12_Software_Reset + $t 0x00002938 0 .text.ADC12_Software_Reset + $d 0x00002944 0 .text.ADC12_CMD + $t 0x00002944 0 .text.ADC12_CMD + $d 0x00002968 0 .text.ADC12_CMD + $d 0x0000296c 0 .text.ADC12_ready_wait + $t 0x0000296c 0 .text.ADC12_ready_wait + $d 0x0000297c 0 .text.ADC12_ready_wait + $d 0x00002980 0 .text.ADC12_SEQEND_wait + $t 0x00002980 0 .text.ADC12_SEQEND_wait + $d 0x00002994 0 .text.ADC12_SEQEND_wait + $d 0x00002998 0 .text.ADC12_DATA_OUPUT + $t 0x00002998 0 .text.ADC12_DATA_OUPUT + $d 0x000029a8 0 .text.ADC12_DATA_OUPUT + $d 0x000029ac 0 .text.ADC12_Configure_Mode + $t 0x000029ac 0 .text.ADC12_Configure_Mode + $d 0x00002a24 0 .text.ADC12_Configure_Mode + $d 0x00002a28 0 .text.ADC12_Configure_VREF_Selecte + $t 0x00002a28 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002b9c 0 .text.ADC12_Configure_VREF_Selecte + $d 0x00002bc0 0 .text.ADC12_ConversionChannel_Config + $t 0x00002bc0 0 .text.ADC12_ConversionChannel_Config + $d 0x00002bec 0 .text.ADC12_ConversionChannel_Config + $t 0x00002bfc 0 .text.ADC12_ConversionChannel_Config + $d 0x00002d34 0 .text.ADC12_ConversionChannel_Config + $d 0x00002d40 0 .text.Page_ProgramData + $t 0x00002d40 0 .text.Page_ProgramData + $d 0x00002dd8 0 .text.Page_ProgramData + $d 0x00002de0 0 .text.ReadDataArry_U8 + $t 0x00002de0 0 .text.ReadDataArry_U8 + $d 0x00002e0c 0 .text.tk_parameter_init + $t 0x00002e0c 0 .text.tk_parameter_init + $d 0x00002efc 0 .text.tk_parameter_init + $d 0x00002f4c 0 .text.CORET_DeInit + $t 0x00002f4c 0 .text.CORET_DeInit + $d 0x00002f60 0 .text.CORET_DeInit + $d 0x00002f64 0 .text.CORET_Int_Enable + $t 0x00002f64 0 .text.CORET_Int_Enable + $d 0x00002f74 0 .text.CORET_Int_Enable + $d 0x00002f7c 0 .text.CORET_start + $t 0x00002f7c 0 .text.CORET_start + $d 0x00002f88 0 .text.CORET_start + $d 0x00002f8c 0 .text.CORET_CLKSOURCE_EX + $t 0x00002f8c 0 .text.CORET_CLKSOURCE_EX + $d 0x00002f98 0 .text.CORET_CLKSOURCE_EX + $d 0x00002f9c 0 .text.CORET_TICKINT_Enable + $t 0x00002f9c 0 .text.CORET_TICKINT_Enable + $d 0x00002fa8 0 .text.CORET_TICKINT_Enable + $d 0x00002fac 0 .text.CORET_reload + $t 0x00002fac 0 .text.CORET_reload + $d 0x00002fb8 0 .text.CORET_reload + $d 0x00002fbc 0 .text.startup.main + $t 0x00002fbc 0 .text.startup.main + $d 0x00003008 0 .text.startup.main + $d 0x00003010 0 .text.delay_nms + $t 0x00003010 0 .text.delay_nms + $d 0x0000303c 0 .text.delay_nus + $t 0x0000303c 0 .text.delay_nus + $d 0x00003060 0 .text.GPIO_CONFIG + $t 0x00003060 0 .text.GPIO_CONFIG + $d 0x000030e4 0 .text.GPIO_CONFIG + $d 0x000030ec 0 .text.BT_CONFIG + $t 0x000030ec 0 .text.BT_CONFIG + $d 0x00003144 0 .text.BT_CONFIG + $d 0x0000314c 0 .text.SYSCON_CONFIG + $t 0x0000314c 0 .text.SYSCON_CONFIG + $d 0x000031b0 0 .text.APT32F102_init + $t 0x000031b0 0 .text.APT32F102_init + $d 0x00003238 0 .text.APT32F102_init + $d 0x0000324c 0 .text.SYSCONIntHandler + $t 0x0000324c 0 .text.SYSCONIntHandler + $d 0x00003338 0 .text.SYSCONIntHandler + $d 0x0000333c 0 .text.IFCIntHandler + $t 0x0000333c 0 .text.IFCIntHandler + $d 0x000033a0 0 .text.IFCIntHandler + $d 0x000033a4 0 .text.ADCIntHandler + $t 0x000033a4 0 .text.ADCIntHandler + $d 0x00003408 0 .text.ADCIntHandler + $d 0x0000340c 0 .text.EPT0IntHandler + $t 0x0000340c 0 .text.EPT0IntHandler + $d 0x000035ac 0 .text.EPT0IntHandler + $d 0x000035b8 0 .text.WWDTHandler + $t 0x000035b8 0 .text.WWDTHandler + $d 0x000035e8 0 .text.WWDTHandler + $d 0x000035ec 0 .text.GPT0IntHandler + $t 0x000035ec 0 .text.GPT0IntHandler + $d 0x00003668 0 .text.GPT0IntHandler + $d 0x0000366c 0 .text.RTCIntHandler + $t 0x0000366c 0 .text.RTCIntHandler + $d 0x000036d4 0 .text.RTCIntHandler + $d 0x000036dc 0 .text.UART0IntHandler + $t 0x000036dc 0 .text.UART0IntHandler + $d 0x00003714 0 .text.UART0IntHandler + $d 0x00003718 0 .text.UART1IntHandler + $t 0x00003718 0 .text.UART1IntHandler + $d 0x00003750 0 .text.UART1IntHandler + $d 0x00003754 0 .text.UART2IntHandler + $t 0x00003754 0 .text.UART2IntHandler + $d 0x000037d4 0 .text.UART2IntHandler + $d 0x000037e8 0 .text.SPI0IntHandler + $t 0x000037e8 0 .text.SPI0IntHandler + $d 0x000038cc 0 .text.SPI0IntHandler + $d 0x000038d0 0 .text.SIO0IntHandler + $t 0x000038d0 0 .text.SIO0IntHandler + $d 0x00003920 0 .text.SIO0IntHandler + $d 0x00003924 0 .text.EXI0IntHandler + $t 0x00003924 0 .text.EXI0IntHandler + $d 0x00003950 0 .text.EXI0IntHandler + $d 0x00003954 0 .text.EXI1IntHandler + $t 0x00003954 0 .text.EXI1IntHandler + $d 0x00003980 0 .text.EXI1IntHandler + $d 0x00003984 0 .text.EXI2to3IntHandler + $t 0x00003984 0 .text.EXI2to3IntHandler + $d 0x000039c8 0 .text.EXI2to3IntHandler + $d 0x000039cc 0 .text.EXI4to9IntHandler + $t 0x000039cc 0 .text.EXI4to9IntHandler + $d 0x00003a34 0 .text.EXI4to9IntHandler + $d 0x00003a38 0 .text.EXI10to15IntHandler + $t 0x00003a38 0 .text.EXI10to15IntHandler + $d 0x00003ab0 0 .text.EXI10to15IntHandler + $d 0x00003ab8 0 .text.LPTIntHandler + $t 0x00003ab8 0 .text.LPTIntHandler + $d 0x00003ae8 0 .text.LPTIntHandler + $d 0x00003aec 0 .text.BT0IntHandler + $t 0x00003aec 0 .text.BT0IntHandler + $d 0x00003b34 0 .text.BT0IntHandler + $d 0x00003b38 0 .text.BT1IntHandler + $t 0x00003b38 0 .text.BT1IntHandler + $d 0x00003ba0 0 .text.BT1IntHandler + $d 0x00003ba8 0 .text.PriviledgeVioHandler + $t 0x00003ba8 0 .text.PriviledgeVioHandler + $d 0x00003baa 0 .text.PendTrapHandler + $t 0x00003baa 0 .text.PendTrapHandler + $d 0x00003bb2 0 .text.Trap3Handler + $t 0x00003bb2 0 .text.Trap3Handler + $d 0x00003bba 0 .text.Trap2Handler + $t 0x00003bba 0 .text.Trap2Handler + $d 0x00003bc2 0 .text.Trap1Handler + $t 0x00003bc2 0 .text.Trap1Handler + $d 0x00003bca 0 .text.Trap0Handler + $t 0x00003bca 0 .text.Trap0Handler + $d 0x00003bd2 0 .text.UnrecExecpHandler + $t 0x00003bd2 0 .text.UnrecExecpHandler + $d 0x00003bda 0 .text.BreakPointHandler + $t 0x00003bda 0 .text.BreakPointHandler + $d 0x00003be2 0 .text.AccessErrHandler + $t 0x00003be2 0 .text.AccessErrHandler + $d 0x00003bea 0 .text.IllegalInstrHandler + $t 0x00003bea 0 .text.IllegalInstrHandler + $d 0x00003bf2 0 .text.MisalignedHandler + $t 0x00003bf2 0 .text.MisalignedHandler + $d 0x00003bfa 0 .text.CNTAIntHandler + $t 0x00003bfa 0 .text.CNTAIntHandler + $d 0x00003c02 0 .text.I2CIntHandler + $t 0x00003c02 0 .text.I2CIntHandler + $d 0x00003c0c 0 .text.__divsi3 + $t 0x00003c0c 0 .text.__divsi3 + $d 0x00003c2c 0 .text.__divsi3 + $d 0x00003c30 0 .text.__udivsi3 + $t 0x00003c30 0 .text.__udivsi3 + $d 0x00003c50 0 .text.__udivsi3 + $d 0x00003c54 0 .text.__modsi3 + $t 0x00003c54 0 .text.__modsi3 + $d 0x00003c74 0 .text.__modsi3 + $d 0x00003c78 0 .text.__umodsi3 + $t 0x00003c78 0 .text.__umodsi3 + $d 0x00003c98 0 .text.__umodsi3 + $d 0x00003c9c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x00003c9c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x00003ca2 0 .text.CK_CPU_DisAllNormalIrq + $t 0x00003ca2 0 .text.CK_CPU_DisAllNormalIrq + $d 0x00003ca8 0 .text.UARTx_Init + $t 0x00003ca8 0 .text.UARTx_Init + $d 0x00003d80 0 .text.UARTx_Init + $d 0x00003db0 0 .text.UART2_RecvINT_Processing + $t 0x00003db0 0 .text.UART2_RecvINT_Processing + $d 0x00003de8 0 .text.UART2_RecvINT_Processing + $d 0x00003df4 0 .text.UART2_TASK + $t 0x00003df4 0 .text.UART2_TASK + $d 0x00003e68 0 .text.UART2_TASK + $d 0x00003e80 0 .text.BUS485_Send + $t 0x00003e80 0 .text.BUS485_Send + $d 0x00003f2c 0 .text.BUS485_Send + $d 0x00003f44 0 .text.MultSend_Task + $t 0x00003f44 0 .text.MultSend_Task + $d 0x00003fb0 0 .text.MultSend_Task + $d 0x00003fb8 0 .text.Set_GroupSend + $t 0x00003fb8 0 .text.Set_GroupSend + $d 0x00004014 0 .text.Set_GroupSend + $d 0x0000401c 0 .text.Clear_SendFlag + $t 0x0000401c 0 .text.Clear_SendFlag + $d 0x00004028 0 .text.Clear_SendFlag + $d 0x0000402c 0 .text.BUS485_Jump_Boot + $t 0x0000402c 0 .text.BUS485_Jump_Boot + $d 0x00004034 0 .text.BUS485_Jump_Boot + $d 0x00004038 0 .text.BUS485Send_Task + $t 0x00004038 0 .text.BUS485Send_Task + $d 0x00004060 0 .text.BUS485Send_Task + $d 0x0000406c 0 .text.BusIdle_Task + $t 0x0000406c 0 .text.BusIdle_Task + $d 0x000040a4 0 .text.BusIdle_Task + $d 0x000040ac 0 .text.BusBusy_Task + $t 0x000040ac 0 .text.BusBusy_Task + $d 0x000040fc 0 .text.BusBusy_Task + $d 0x00004108 0 .text.Dbg_Println + $t 0x00004108 0 .text.Dbg_Println + $d 0x00004114 0 .text.Dbg_Print_Buff + $t 0x00004114 0 .text.Dbg_Print_Buff + $d 0x00004118 0 .text.Touch_Key_Init + $t 0x00004118 0 .text.Touch_Key_Init + $d 0x0000416c 0 .text.Touch_Key_Init + $d 0x00004180 0 .text.Get_TouchKey_CH_State + $t 0x00004180 0 .text.Get_TouchKey_CH_State + $d 0x0000418c 0 .text.Get_TouchKey_CH_State + $t 0x00004192 0 .text.Get_TouchKey_CH_State + $d 0x000041b8 0 .text.Get_TouchKey_CH_State + $d 0x000041bc 0 .text.TouchKey_RS485_Printf_3 + $t 0x000041bc 0 .text.TouchKey_RS485_Printf_3 + $d 0x00004488 0 .text.TouchKey_RS485_Printf_3 + $d 0x000044b0 0 .text.Touch_Key_Event_Handling + $t 0x000044b0 0 .text.Touch_Key_Event_Handling + $d 0x00004558 0 .text.Touch_Key_Event_Handling + $d 0x0000455c 0 .text.TouchKey_Set_Interface_Task + $t 0x0000455c 0 .text.TouchKey_Set_Interface_Task + $d 0x0000458c 0 .text.TouchKey_Set_Interface_Task + $d 0x00004598 0 .text.Touch_Key_Task + $t 0x00004598 0 .text.Touch_Key_Task + $d 0x00004684 0 .text.Touch_Key_Task + $d 0x00004698 0 .text.TouchKey_CheckSum + $t 0x00004698 0 .text.TouchKey_CheckSum + $d 0x000046b0 0 .text.TouchKey_Comm_Reply + $t 0x000046b0 0 .text.TouchKey_Comm_Reply + $d 0x0000471c 0 .text.TouchKey_Comm_Reply + $d 0x00004720 0 .text.TouchKey_SetPara_Processing + $t 0x00004720 0 .text.TouchKey_SetPara_Processing + $d 0x000047c4 0 .text.TouchKey_SetPara_Processing + $d 0x000047d8 0 .text.TouchKey_ReadPara_Processing + $t 0x000047d8 0 .text.TouchKey_ReadPara_Processing + $d 0x000048c8 0 .text.TouchKey_ReadPara_Processing + $d 0x000048d0 0 .text.TouchKey_DugPrintf_Processing + $t 0x000048d0 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004904 0 .text.TouchKey_DugPrintf_Processing + $d 0x00004908 0 .text.TouchKey_ReadEnve_Processing + $t 0x00004908 0 .text.TouchKey_ReadEnve_Processing + $d 0x000049b0 0 .text.TouchKey_ReadEnve_Processing + $d 0x000049b8 0 .text.TouchKey_ResetDevice_Processing + $t 0x000049b8 0 .text.TouchKey_ResetDevice_Processing + $d 0x000049d4 0 .text.TouchKey_Comm_Processing + $t 0x000049d4 0 .text.TouchKey_Comm_Processing + $d 0x00004a62 0 .text.TouchKey_Comm_Processing + $t 0x00004a68 0 .text.TouchKey_Comm_Processing + $d 0x00004a90 0 .text.TouchKey_Comm_Processing + $d 0x00004aac 0 .text.EEPROM_CheckSum + $t 0x00004aac 0 .text.EEPROM_CheckSum + $d 0x00004ac4 0 .text.EEPROM_ReadParaInfo + $t 0x00004ac4 0 .text.EEPROM_ReadParaInfo + $d 0x00004b30 0 .text.EEPROM_ReadParaInfo + $d 0x00004b38 0 .text.EEPROM_WriteParaInfo + $t 0x00004b38 0 .text.EEPROM_WriteParaInfo + $d 0x00004b78 0 .text.EEPROM_WriteParaInfo + $d 0x00004b7c 0 .text.EEPROM_Validate_ParaInfo + $t 0x00004b7c 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004c00 0 .text.EEPROM_Validate_ParaInfo + $d 0x00004c08 0 .text.EEPROM_Default_ParaInfo + $t 0x00004c08 0 .text.EEPROM_Default_ParaInfo + $d 0x00004c28 0 .text.EEPROM_WriteTouchPara + $t 0x00004c28 0 .text.EEPROM_WriteTouchPara + $d 0x00004c88 0 .text.EEPROM_WriteTouchPara + $d 0x00004c94 0 .text.EEPROM_ReadTouchPara + $t 0x00004c94 0 .text.EEPROM_ReadTouchPara + $d 0x00004d2c 0 .text.EEPROM_ReadTouchPara + $d 0x00004d40 0 .text.EEPROM_Validate_TouchPara + $t 0x00004d40 0 .text.EEPROM_Validate_TouchPara + $d 0x00004e18 0 .text.EEPROM_Validate_TouchPara + $d 0x00004e20 0 .text.EEPROM_Default_TouchPara + $t 0x00004e20 0 .text.EEPROM_Default_TouchPara + $d 0x00004e8a 0 .text.EEPROM_Default_TouchPara + $d 0x00004e90 0 .text.EEPROM_TouchPara_Printf + $t 0x00004e90 0 .text.EEPROM_TouchPara_Printf + $d 0x00004ef4 0 .text.EEPROM_TouchPara_Printf + $d 0x00004f10 0 .text.EEPROM_ReadMCUDevInfo + $t 0x00004f10 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004f7c 0 .text.EEPROM_ReadMCUDevInfo + $d 0x00004f80 0 .text.EEPROM_WriteMCUDevInfo + $t 0x00004f80 0 .text.EEPROM_WriteMCUDevInfo + $d 0x00004fc0 0 .text.EEPROM_Default_MCUDevInfo + $t 0x00004fc0 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00004ff4 0 .text.EEPROM_Default_MCUDevInfo + $d 0x00004ff8 0 .text.EEPROM_Validate_MCUDevInfo + $t 0x00004ff8 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x0000504c 0 .text.EEPROM_Validate_MCUDevInfo + $d 0x00005050 0 .text.EEPROM_Init + $t 0x00005050 0 .text.EEPROM_Init + $d 0x000050c8 0 .text.EEPROM_Init + $d 0x000050d8 0 .text.ADC_Init + $t 0x000050d8 0 .text.ADC_Init + $d 0x00005134 0 .text.ADC_Init + $d 0x00005138 0 .text.Thermistor_Array_Transform + $t 0x00005138 0 .text.Thermistor_Array_Transform + $d 0x00005178 0 .text.Thermistor_Array_Transform + $d 0x00005180 0 .text.Calculate_ADC_Sample_Average + $t 0x00005180 0 .text.Calculate_ADC_Sample_Average + $d 0x00005200 0 .text.Calculate_ADC_Sample_Average + $d 0x00005210 0 .text.Get_Temp_Val + $t 0x00005210 0 .text.Get_Temp_Val + $d 0x00005218 0 .text.Get_Temp_Val + $d 0x0000521c 0 .text.Gather_Temp + $t 0x0000521c 0 .text.Gather_Temp + $d 0x0000529c 0 .text.Gather_Temp + $d 0x000052ac 0 .text.ADC_Sample_Task + $t 0x000052ac 0 .text.ADC_Sample_Task + $d 0x00005310 0 .text.ADC_Sample_Task + $d 0x0000531c 0 .text.Contol_Switch_Light + $t 0x0000531c 0 .text.Contol_Switch_Light + $d 0x0000532c 0 .text.Contol_Switch_Light + $t 0x00005338 0 .text.Contol_Switch_Light + $d 0x000056b4 0 .text.Contol_Switch_Light + $t 0x000056bc 0 .text.Contol_Switch_Light + $d 0x00005708 0 .text.Contol_Switch_Light_2 + $t 0x00005708 0 .text.Contol_Switch_Light_2 + $d 0x00005718 0 .text.Contol_Switch_Light_2 + $t 0x00005724 0 .text.Contol_Switch_Light_2 + $d 0x00005aa0 0 .text.Contol_Switch_Light_2 + $t 0x00005aa8 0 .text.Contol_Switch_Light_2 + $d 0x00005af4 0 .text.Contol_Switch_ClickAction + $t 0x00005af4 0 .text.Contol_Switch_ClickAction + $d 0x00005b18 0 .text.Contol_Switch_ClickAction + $d 0x00005b1c 0 .text.Get_TM1812_State_Change + $t 0x00005b1c 0 .text.Get_TM1812_State_Change + $d 0x00005b58 0 .text.Get_TM1812_State_Change + $d 0x00005b60 0 .text.TimeCall_SIO_Send + $t 0x00005b60 0 .text.TimeCall_SIO_Send + $d 0x00005c74 0 .text.TimeCall_SIO_Send + $d 0x00005c80 0 .text.TimeCall_SIO_Send2 + $t 0x00005c80 0 .text.TimeCall_SIO_Send2 + $d 0x00005d18 0 .text.TimeCall_SIO_Send2 + $d 0x00005d28 0 .text.Tm1812_Task + $t 0x00005d28 0 .text.Tm1812_Task + $d 0x00005d70 0 .text.Tm1812_Task + $d 0x00005d84 0 .text.Tm1812_Ch_Insert_Data + $t 0x00005d84 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005da0 0 .text.Tm1812_Ch_Insert_Data + $d 0x00005da8 0 .text.TM1812_Control_CH_State + $t 0x00005da8 0 .text.TM1812_Control_CH_State + $d 0x00005e04 0 .text.TM1812_Control_CH_State + $d 0x00005e18 0 .text.TM1812_Control_CH_CurrState + $t 0x00005e18 0 .text.TM1812_Control_CH_CurrState + $d 0x00005e70 0 .text.TM1812_Control_CH_CurrState + $d 0x00005e7c 0 .text.TM1812_LED_Init + $t 0x00005e7c 0 .text.TM1812_LED_Init + $d 0x00005ee4 0 .text.TM1812_LED_Init + $d 0x00005ee8 0 .text.HT1621_WR_Data + $t 0x00005ee8 0 .text.HT1621_WR_Data + $d 0x00005f2c 0 .text.HT1621_WR_Data + $d 0x00005f30 0 .text.HT1621_WR_CMD + $t 0x00005f30 0 .text.HT1621_WR_CMD + $d 0x00005f5c 0 .text.HT1621_WR_CMD + $d 0x00005f60 0 .text.HT1621_Init + $t 0x00005f60 0 .text.HT1621_Init + $d 0x0000600c 0 .text.HT1621_Init + $d 0x00006014 0 .text.HT1621_Clear + $t 0x00006014 0 .text.HT1621_Clear + $d 0x0000605c 0 .text.HT1621_Clear + $d 0x00006064 0 .text.HT1621_ALLON + $t 0x00006064 0 .text.HT1621_ALLON + $d 0x000060a0 0 .text.HT1621_ALLON + $d 0x000060a4 0 .text.HT1621_Refresh_Data + $t 0x000060a4 0 .text.HT1621_Refresh_Data + $d 0x000060e8 0 .text.HT1621_Refresh_Data + $d 0x000060f0 0 .text.Set_Temperature_Display + $t 0x000060f0 0 .text.Set_Temperature_Display + $d 0x000061b4 0 .text.Set_Temperature_Display + $d 0x000061c0 0 .text.Local_Temperature_Display + $t 0x000061c0 0 .text.Local_Temperature_Display + $d 0x00006284 0 .text.Local_Temperature_Display + $d 0x00006290 0 .text.Control_Mode + $t 0x00006290 0 .text.Control_Mode + $d 0x0000629a 0 .text.Control_Mode + $t 0x000062a8 0 .text.Control_Mode + $d 0x000064cc 0 .text.Control_Mode + $d 0x000064d4 0 .text.Control_wind_velocity + $t 0x000064d4 0 .text.Control_wind_velocity + $d 0x000064e0 0 .text.Control_wind_velocity + $t 0x000064e6 0 .text.Control_wind_velocity + $d 0x000065a0 0 .text.Control_wind_velocity + $d 0x000065a4 0 .text.Control_Prompt_Text + $t 0x000065a4 0 .text.Control_Prompt_Text + $d 0x00006644 0 .text.Control_Prompt_Text + $d 0x00006648 0 .text.Controlled_Buzzer + $t 0x00006648 0 .text.Controlled_Buzzer + $d 0x00006688 0 .text.Controlled_Buzzer + $d 0x00006690 0 .text.Controlled_LCD_Backlight + $t 0x00006690 0 .text.Controlled_LCD_Backlight + $d 0x00006764 0 .text.Controlled_LCD_Backlight + $d 0x0000676c 0 .text.Controlled_Key_Backlight + $t 0x0000676c 0 .text.Controlled_Key_Backlight + $d 0x00006798 0 .text.Controlled_Key_Backlight + $d 0x0000679c 0 .text.Set_Device_ADDR + $t 0x0000679c 0 .text.Set_Device_ADDR + $d 0x00006830 0 .text.Set_Device_ADDR + $d 0x00006838 0 .text.Set_Temp_Difference + $t 0x00006838 0 .text.Set_Temp_Difference + $d 0x00006894 0 .text.Set_Temp_Difference + $d 0x0000689c 0 .text.HT1621_Refresh_Task + $t 0x0000689c 0 .text.HT1621_Refresh_Task + $d 0x00006914 0 .text.HT1621_Refresh_Task + $d 0x0000692c 0 .text.Boot_Function_Init + $t 0x0000692c 0 .text.Boot_Function_Init + $d 0x00006978 0 .text.Boot_Function_Init + $d 0x0000698c 0 .text.Boot_Comm_CheckSum + $t 0x0000698c 0 .text.Boot_Comm_CheckSum + $d 0x000069ac 0 .text.Boot_Comm_CheckSum + $d 0x000069b0 0 .text.Boot_Comm_FillReplyPack + $t 0x000069b0 0 .text.Boot_Comm_FillReplyPack + $d 0x00006a04 0 .text.Boot_Comm_FillReplyPack + $d 0x00006a0c 0 .text.Boot_Time_Refresh + $t 0x00006a0c 0 .text.Boot_Time_Refresh + $d 0x00006a18 0 .text.Boot_Time_Refresh + $d 0x00006a20 0 .text.Boot_Comm_UpgradeProcess + $t 0x00006a20 0 .text.Boot_Comm_UpgradeProcess + $d 0x00006b98 0 .text.Boot_Comm_UpgradeProcess + $d 0x00006ba8 0 .text.TemCtrl_Init + $t 0x00006ba8 0 .text.TemCtrl_Init + $d 0x00006d08 0 .text.TemCtrl_Init + $d 0x00006d20 0 .text.TemCtrl_Model_Set + $t 0x00006d20 0 .text.TemCtrl_Model_Set + $d 0x00006d64 0 .text.TemCtrl_Model_Set + $d 0x00006d6c 0 .text.TemCtrl_Fan_Set + $t 0x00006d6c 0 .text.TemCtrl_Fan_Set + $d 0x00006d8a 0 .text.TemCtrl_Fan_Set + $t 0x00006d8e 0 .text.TemCtrl_Fan_Set + $d 0x00006db0 0 .text.TemCtrl_Fan_Set + $d 0x00006db8 0 .text.TemCtrl_Temperature_Dec + $t 0x00006db8 0 .text.TemCtrl_Temperature_Dec + $d 0x00006de0 0 .text.TemCtrl_Temperature_Dec + $d 0x00006de8 0 .text.TemCtrl_Temperature_Add + $t 0x00006de8 0 .text.TemCtrl_Temperature_Add + $d 0x00006e10 0 .text.TemCtrl_Temperature_Add + $d 0x00006e18 0 .text.TemCtrl_OnOff_Set + $t 0x00006e18 0 .text.TemCtrl_OnOff_Set + $d 0x00006e44 0 .text.TemCtrl_OnOff_Set + $d 0x00006e4c 0 .text.Tem_Valve_Ctrl + $t 0x00006e4c 0 .text.Tem_Valve_Ctrl + $d 0x00006f0c 0 .text.Tem_Valve_Ctrl + $d 0x00006f18 0 .text.TemCtrl_Pro + $t 0x00006f18 0 .text.TemCtrl_Pro + $d 0x00007078 0 .text.TemCtrl_Pro + $d 0x00007090 0 .text.KEY1_Model_Press_Fun + $t 0x00007090 0 .text.KEY1_Model_Press_Fun + $d 0x00007148 0 .text.KEY1_Model_Press_Fun + $d 0x0000715c 0 .text.KEY2_Fan_Press_Fun + $t 0x0000715c 0 .text.KEY2_Fan_Press_Fun + $d 0x00007214 0 .text.KEY2_Fan_Press_Fun + $d 0x00007228 0 .text.KEY3_TempAdd_Press_Fun + $t 0x00007228 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00007314 0 .text.KEY3_TempAdd_Press_Fun + $d 0x00007328 0 .text.KEY3_Long_Press_Fun + $t 0x00007328 0 .text.KEY3_Long_Press_Fun + $d 0x00007384 0 .text.KEY3_Long_Press_Fun + $d 0x00007398 0 .text.KEY4_TempDec_Press_Fun + $t 0x00007398 0 .text.KEY4_TempDec_Press_Fun + $d 0x00007484 0 .text.KEY4_TempDec_Press_Fun + $d 0x00007498 0 .text.KEY4_Long_Press + $t 0x00007498 0 .text.KEY4_Long_Press + $d 0x000074f4 0 .text.KEY4_Long_Press + $d 0x00007508 0 .text.KEY5_OnOff_Press_Fun + $t 0x00007508 0 .text.KEY5_OnOff_Press_Fun + $d 0x00007580 0 .text.KEY5_OnOff_Press_Fun + $d 0x00007598 0 .text.TempCtrl_OnOff_DisPlay + $t 0x00007598 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000075e4 0 .text.TempCtrl_OnOff_DisPlay + $d 0x000075ec 0 .text.DisPlay_Init + $t 0x000075ec 0 .text.DisPlay_Init + $d 0x00007604 0 .text.DisPlay_Init + $d 0x0000760c 0 .text.DisPlay_Task + $t 0x0000760c 0 .text.DisPlay_Task + $d 0x0000782e 0 .text.DisPlay_Task + $t 0x00007838 0 .text.DisPlay_Task + $d 0x00007968 0 .text.DisPlay_Task + $t 0x000079a8 0 .text.DisPlay_Task + $d 0x00007ad4 0 .text.DisPlay_Task + $d 0x00007af4 0 .text.Debug_Init + $t 0x00007af4 0 .text.Debug_Init + $d 0x00007b28 0 .text.Debug_Init + $d 0x00007b30 0 .text.Dev_SaveData + $t 0x00007b30 0 .text.Dev_SaveData + $d 0x00007bc8 0 .text.Dev_SaveData + $d 0x00007bdc 0 .text.Debug_Task + $t 0x00007bdc 0 .text.Debug_Task + $d 0x00007c2c 0 .text.Debug_Task + BLV_RLY_Ctrl_Purpose.part.0 0x00007c40 F 40 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007c40 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $t 0x00007c40 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007c64 0 .text.BLV_RLY_Ctrl_Purpose.part.0 + $d 0x00007c68 0 .text.Relay_Init + $t 0x00007c68 0 .text.Relay_Init + $d 0x00007c88 0 .text.Relay_Init + $d 0x00007c90 0 .text.Relay_High + $t 0x00007c90 0 .text.Relay_High + $d 0x00007cac 0 .text.Relay_Mid + $t 0x00007cac 0 .text.Relay_Mid + $d 0x00007cc8 0 .text.Relay_Low + $t 0x00007cc8 0 .text.Relay_Low + $d 0x00007ce4 0 .text.Relay_Stop + $t 0x00007ce4 0 .text.Relay_Stop + $d 0x00007d00 0 .text.BLV_RLY_Ctrl_Purpose + $t 0x00007d00 0 .text.BLV_RLY_Ctrl_Purpose + $d 0x00007d14 0 .text.RLY_Direct_Control + $t 0x00007d14 0 .text.RLY_Direct_Control + $d 0x00007d56 0 .text.RLY_Direct_Control + $t 0x00007d5a 0 .text.RLY_Direct_Control + $d 0x00007dd4 0 .text.RLY_Direct_Control + $d 0x00007ddc 0 .text.RLY_Zero_Control + $t 0x00007ddc 0 .text.RLY_Zero_Control + $d 0x00007df2 0 .text.RLY_Zero_Control + $t 0x00007df6 0 .text.RLY_Zero_Control + $d 0x00007e70 0 .text.RLY_Zero_Control + $d 0x00007e74 0 .text.NetCRC16_Check + $t 0x00007e74 0 .text.NetCRC16_Check + $d 0x00007eb8 0 .text.NetCRC16_Check + $d 0x00007ec0 0 .text.GetCRC16 + $t 0x00007ec0 0 .text.GetCRC16 + $d 0x00007ef4 0 .text.GetCRC16 + $d 0x00007efc 0 .text.SOR_CRC + $t 0x00007efc 0 .text.SOR_CRC + $d 0x00007f14 0 .text.Rs485_ASend + $t 0x00007f14 0 .text.Rs485_ASend + $d 0x00007f92 0 .text.Rs485_ASend + $t 0x00007f96 0 .text.Rs485_ASend + $d 0x00008014 0 .text.Rs485_ASend + $d 0x0000801c 0 .text.Rs485AskCycleSend + $t 0x0000801c 0 .text.Rs485AskCycleSend + $d 0x00008092 0 .text.Rs485AskCycleSend + $t 0x00008096 0 .text.Rs485AskCycleSend + $d 0x00008118 0 .text.Rs485AskCycleSend + $d 0x00008120 0 .text.Rs485AskCtrlSend + $t 0x00008120 0 .text.Rs485AskCtrlSend + $d 0x00008178 0 .text.Rs485AskCtrlSend + $d 0x0000817c 0 .text.Rs485AskReadSend + $t 0x0000817c 0 .text.Rs485AskReadSend + $d 0x000081e0 0 .text.Rs485AskReadSend + $d 0x000081e4 0 .text.Rs485_DevPort_ACK + $t 0x000081e4 0 .text.Rs485_DevPort_ACK + $d 0x000081fc 0 .text.Temp_Rec_Analysis + $t 0x000081fc 0 .text.Temp_Rec_Analysis + $d 0x00008264 0 .text.Temp_Rec_Analysis + $t 0x00008276 0 .text.Temp_Rec_Analysis + $d 0x0000828e 0 .text.Temp_Rec_Analysis + $t 0x00008292 0 .text.Temp_Rec_Analysis + $d 0x00008380 0 .text.Temp_Rec_Analysis + $t 0x00008384 0 .text.Temp_Rec_Analysis + $d 0x000083a0 0 .text.Temp_Rec_Analysis + $d 0x000083ac 0 .text.Tem_Rs485_Rec_Pro + $t 0x000083ac 0 .text.Tem_Rs485_Rec_Pro + $d 0x00008468 0 .text.Tem_Rs485_Rec_Pro + TK_ConfigInterrupt_CMD.part.0 0x00008478 F 16 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008478 0 .text.TK_ConfigInterrupt_CMD.part.0 + $t 0x00008478 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008484 0 .text.TK_ConfigInterrupt_CMD.part.0 + $d 0x00008488 0 .text.tk_clk_config + $t 0x00008488 0 .text.tk_clk_config + $d 0x000084ac 0 .text.tk_clk_config + $d 0x000084b0 0 .text.TK_con0_config + $t 0x000084b0 0 .text.TK_con0_config + $d 0x00008560 0 .text.TK_con0_config + $d 0x0000856c 0 .text.tk_io_enable + $t 0x0000856c 0 .text.tk_io_enable + $d 0x000085b0 0 .text.tk_io_enable + $t 0x000085c0 0 .text.tk_io_enable + $d 0x00008694 0 .text.tk_io_enable + $d 0x000086a0 0 .text.TK_Single_Longpress_prg + $t 0x000086a0 0 .text.TK_Single_Longpress_prg + $d 0x00008794 0 .text.TK_Single_Longpress_prg + $d 0x000087c8 0 .text.TK_Sampling_prog + $t 0x000087c8 0 .text.TK_Sampling_prog + $d 0x00008870 0 .text.TK_Sampling_prog + $d 0x00008894 0 .text.get_key_number + $t 0x00008894 0 .text.get_key_number + $d 0x000088b8 0 .text.get_key_number + $d 0x000088bc 0 .text.get_key_number0 + $t 0x000088bc 0 .text.get_key_number0 + $d 0x000088e0 0 .text.get_key_number0 + $d 0x000088e4 0 .text.get_key_number1 + $t 0x000088e4 0 .text.get_key_number1 + $d 0x00008908 0 .text.get_key_number1 + $d 0x0000890c 0 .text.get_key_number2 + $t 0x0000890c 0 .text.get_key_number2 + $d 0x00008930 0 .text.get_key_number2 + $d 0x00008934 0 .text.TK_Baseline_prog + $t 0x00008934 0 .text.TK_Baseline_prog + $d 0x00008a48 0 .text.TK_Baseline_prog + $d 0x00008a84 0 .text.TK_Baseline_prog2 + $t 0x00008a84 0 .text.TK_Baseline_prog2 + $d 0x00008b90 0 .text.TK_Baseline_prog2 + $d 0x00008bcc 0 .text.tk_poweron_data_fineturn + $t 0x00008bcc 0 .text.tk_poweron_data_fineturn + $d 0x00008cc8 0 .text.tk_poweron_data_fineturn + $d 0x00008cf0 0 .text.TK_Scan_Start + $t 0x00008cf0 0 .text.TK_Scan_Start + $d 0x00008d3c 0 .text.TK_Scan_Start + $d 0x00008d58 0 .text.TK_Keymap_prog + $t 0x00008d58 0 .text.TK_Keymap_prog + $d 0x00009094 0 .text.TK_Keymap_prog + $t 0x00009118 0 .text.TK_Keymap_prog + $d 0x00009474 0 .text.TK_Keymap_prog + $t 0x000094b8 0 .text.TK_Keymap_prog + $d 0x000095b4 0 .text.TK_Keymap_prog + $d 0x000095c8 0 .text.TK_overflow_predict + $t 0x000095c8 0 .text.TK_overflow_predict + $d 0x000096bc 0 .text.TK_overflow_predict + $d 0x000096f0 0 .text.TK_Baseline_tracking + $t 0x000096f0 0 .text.TK_Baseline_tracking + $d 0x00009a48 0 .text.TK_Baseline_tracking + $t 0x00009aa4 0 .text.TK_Baseline_tracking + $d 0x00009bb0 0 .text.TK_Baseline_tracking + $d 0x00009bc0 0 .text.TK_result_prog + $t 0x00009bc0 0 .text.TK_result_prog + $d 0x00009cc0 0 .text.TK_result_prog + $d 0x00009cf0 0 .text.get_key_seq + $t 0x00009cf0 0 .text.get_key_seq + $d 0x00009d20 0 .text.get_key_seq + $d 0x00009d28 0 .text.CORET_CONFIG + $t 0x00009d28 0 .text.CORET_CONFIG + $d 0x00009d58 0 .text.CORET_CONFIG + $d 0x00009d60 0 .text.tk_chxval_seqxcon_clr + $t 0x00009d60 0 .text.tk_chxval_seqxcon_clr + $d 0x00009d78 0 .text.tk_chxval_seqxcon_clr + $d 0x00009d7c 0 .text.tk_freq_para_init + $t 0x00009d7c 0 .text.tk_freq_para_init + $d 0x00009dd4 0 .text.tk_freq_para_init + $t 0x00009dda 0 .text.tk_freq_para_init + $d 0x00009df4 0 .text.tk_freq_para_init + $d 0x00009e28 0 .text.tk_reserved_init + $t 0x00009e28 0 .text.tk_reserved_init + $d 0x00009e3c 0 .text.tk_reserved_init + $d 0x00009e50 0 .text.TKEYIntHandler + $t 0x00009e50 0 .text.TKEYIntHandler + $d 0x00009ee0 0 .text.TKEYIntHandler + $d 0x00009ef0 0 .text.CORETHandler + $t 0x00009ef0 0 .text.CORETHandler + $d 0x0000a018 0 .text.CORETHandler + $d 0x0000a04c 0 .text.tk_init + $t 0x0000a04c 0 .text.tk_init + $d 0x0000a134 0 .text.tk_init + $d 0x0000a15c 0 .text.std_clk_calib + $t 0x0000a15c 0 .text.std_clk_calib + $d 0x0000a3a4 0 .text.std_clk_calib + __func__.6533 0x0000a3e0 O 28 .rodata + __func__.6571 0x0000a3fc O 25 .rodata + bp 0x0000a754 O 16 .rodata + dp_l 0x0000a764 O 16 .rodata + dp_h 0x0000a774 O 16 .rodata + NUM.6526 0x200000b8 O 1 .bss + adc_tick.6438 0x2000013c O 4 .bss + StateChange_Tick.6526 0x2000022c O 4 .bss + tick.6465 0x20000230 O 4 .bss + OpenDisPlay_Flag 0x20000234 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 + ___gnu_csky_case_shi 0x00000d10 F 28 .text + ___gnu_csky_case_uhi 0x00000d2c F 26 .text + __fixunsdfsi 0x00000d48 F 56 .text + __divsf3 0x00000d80 F 188 .text + __extendsfdf2 0x00000e3c F 36 .text + __floatunsisf 0x00000e60 F 96 .text + __adddf3 0x00001194 F 46 .text + __subdf3 0x000011c4 F 54 .text + __muldf3 0x000011fc F 564 .text + __divdf3 0x00001430 F 340 .text + __gtdf2 0x00001584 F 60 .text + __gedf2 0x000015c0 F 60 .text + __ledf2 0x000015fc F 58 .text + __floatsidf 0x00001638 F 112 .text + __fixdfsi 0x000016a8 F 112 .text + __make_dp 0x00001718 F 40 .text + __floatunsidf 0x00001740 F 84 .text + __muldi3 0x00001794 F 68 .text + __clzsi2 0x000017d8 F 64 .text + __pack_f 0x00001818 F 184 .text + __unpack_f 0x000018d0 F 132 .text + __pack_d 0x00001954 F 412 .text + __unpack_d 0x00001af0 F 196 .text + __fpcmp_parts_d 0x00001bb4 F 140 .text + __memset_fast 0x00001c40 w F 136 .text + memset 0x00001c40 w F 136 .text + __memcpy_fast 0x00001cc8 w F 100 .text + memcpy 0x00001cc8 w F 100 .text + __GI_strncmp 0x00001d2c F 38 .text + strncmp 0x00001d2c w F 38 .text + __main 0x00001d54 F 56 .text.__main + SYSCON_RST_VALUE 0x00001e00 F 76 .text.SYSCON_RST_VALUE + SYSCON_General_CMD 0x00001e4c F 48 .text.SYSCON_General_CMD + SystemCLK_HCLKDIV_PCLKDIV_Config 0x00001e7c F 136 .text.SystemCLK_HCLKDIV_PCLKDIV_Config + SYSCON_HFOSC_SELECTE 0x00001f04 F 40 .text.SYSCON_HFOSC_SELECTE + SYSCON_WDT_CMD 0x00001f2c F 60 .text.SYSCON_WDT_CMD + SYSCON_IWDCNT_Reload 0x00001f68 F 20 .text.SYSCON_IWDCNT_Reload + SYSCON_IWDCNT_Config 0x00001f7c F 24 .text.SYSCON_IWDCNT_Config + SYSCON_LVD_Config 0x00001f94 F 32 .text.SYSCON_LVD_Config + LVD_Int_Enable 0x00001fb4 F 28 .text.LVD_Int_Enable + IWDT_Int_Enable 0x00001fd0 F 28 .text.IWDT_Int_Enable + EXTI_trigger_CMD 0x00001fec F 64 .text.EXTI_trigger_CMD + EXTI_interrupt_CMD 0x0000202c F 52 .text.EXTI_interrupt_CMD + GPIO_EXTI_interrupt 0x00002060 F 4 .text.GPIO_EXTI_interrupt + EXI3_Int_Enable 0x00002064 F 16 .text.EXI3_Int_Enable + EXI4_Int_Enable 0x00002074 F 16 .text.EXI4_Int_Enable + SYSCON_Int_Enable 0x00002084 F 12 .text.SYSCON_Int_Enable + SYSCON_Int_Disable 0x00002090 F 12 .text.SYSCON_Int_Disable + SYSCON_INT_Priority 0x0000209c F 36 .text.SYSCON_INT_Priority + Set_INT_Priority 0x000020c0 F 48 .text.Set_INT_Priority + GPIO_DeInit 0x000020f0 F 100 .text.GPIO_DeInit + GPIO_Init 0x00002154 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00002234 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00002248 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00002258 F 268 .text.GPIO_IntGroup_Set + GPIOA0_EXI_Init 0x00002364 F 252 .text.GPIOA0_EXI_Init + GPIOB0_EXI_Init 0x00002460 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x000024cc F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000024d4 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000024dc F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000024f2 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x00002504 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002518 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002528 F 28 .text.BT_DeInit + BT_Start 0x00002544 F 8 .text.BT_Start + BT_Soft_Reset 0x0000254c F 10 .text.BT_Soft_Reset + BT_Configure 0x00002556 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000256e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000259a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x000025a0 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x000025b4 F 16 .text.BT1_INT_ENABLE + SIO_DeInit 0x000025c4 F 32 .text.SIO_DeInit + SIO_IO_Init 0x000025e4 F 96 .text.SIO_IO_Init + SIO_TX_Init 0x00002644 F 16 .text.SIO_TX_Init + SIO_TX_Configure 0x00002654 F 80 .text.SIO_TX_Configure + UART0_DeInit 0x000026a4 F 24 .text.UART0_DeInit + UART1_DeInit 0x000026bc F 24 .text.UART1_DeInit + UART2_DeInit 0x000026d4 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000026ec F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00002708 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002724 F 236 .text.UART_IO_Init + UARTInit 0x00002810 F 16 .text.UARTInit + UARTInitRxTxIntEn 0x00002820 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002830 F 30 .text.UARTTransmit + EPT_Stop 0x00002850 F 40 .text.EPT_Stop + ADC12_RESET_VALUE 0x00002878 F 100 .text.ADC12_RESET_VALUE + ADC12_Control 0x000028dc F 16 .text.ADC12_Control + ADC12_CLK_CMD 0x0000290c F 44 .text.ADC12_CLK_CMD + ADC12_Software_Reset 0x00002938 F 10 .text.ADC12_Software_Reset + ADC12_CMD 0x00002944 F 40 .text.ADC12_CMD + ADC12_ready_wait 0x0000296c F 20 .text.ADC12_ready_wait + ADC12_SEQEND_wait 0x00002980 F 24 .text.ADC12_SEQEND_wait + ADC12_DATA_OUPUT 0x00002998 F 20 .text.ADC12_DATA_OUPUT + ADC12_Configure_Mode 0x000029ac F 124 .text.ADC12_Configure_Mode + ADC12_Configure_VREF_Selecte 0x00002a28 F 408 .text.ADC12_Configure_VREF_Selecte + ADC12_ConversionChannel_Config 0x00002bc0 F 384 .text.ADC12_ConversionChannel_Config + Page_ProgramData 0x00002d40 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002de0 F 42 .text.ReadDataArry_U8 + tk_parameter_init 0x00002e0c F 320 .text.tk_parameter_init + CORET_DeInit 0x00002f4c F 24 .text.CORET_DeInit + CORET_Int_Enable 0x00002f64 F 24 .text.CORET_Int_Enable + CORET_start 0x00002f7c F 16 .text.CORET_start + CORET_CLKSOURCE_EX 0x00002f8c F 16 .text.CORET_CLKSOURCE_EX + CORET_TICKINT_Enable 0x00002f9c F 16 .text.CORET_TICKINT_Enable + CORET_reload 0x00002fac F 16 .text.CORET_reload + main 0x00002fbc F 84 .text.startup.main + delay_nms 0x00003010 F 44 .text.delay_nms + delay_nus 0x0000303c F 34 .text.delay_nus + GPIO_CONFIG 0x00003060 F 140 .text.GPIO_CONFIG + BT_CONFIG 0x000030ec F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x0000314c F 98 .text.SYSCON_CONFIG + APT32F102_init 0x000031b0 F 156 .text.APT32F102_init + SYSCONIntHandler 0x0000324c F 240 .text.SYSCONIntHandler + IFCIntHandler 0x0000333c F 104 .text.IFCIntHandler + ADCIntHandler 0x000033a4 F 104 .text.ADCIntHandler + EPT0IntHandler 0x0000340c F 428 .text.EPT0IntHandler + WWDTHandler 0x000035b8 F 52 .text.WWDTHandler + GPT0IntHandler 0x000035ec F 128 .text.GPT0IntHandler + RTCIntHandler 0x0000366c F 112 .text.RTCIntHandler + UART0IntHandler 0x000036dc F 60 .text.UART0IntHandler + UART1IntHandler 0x00003718 F 60 .text.UART1IntHandler + UART2IntHandler 0x00003754 F 148 .text.UART2IntHandler + SPI0IntHandler 0x000037e8 F 232 .text.SPI0IntHandler + SIO0IntHandler 0x000038d0 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00003924 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00003954 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00003984 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x000039cc F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00003a38 F 128 .text.EXI10to15IntHandler + LPTIntHandler 0x00003ab8 F 52 .text.LPTIntHandler + BT0IntHandler 0x00003aec F 76 .text.BT0IntHandler + BT1IntHandler 0x00003b38 F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00003ba8 F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00003baa F 8 .text.PendTrapHandler + Trap3Handler 0x00003bb2 F 8 .text.Trap3Handler + Trap2Handler 0x00003bba F 8 .text.Trap2Handler + Trap1Handler 0x00003bc2 F 8 .text.Trap1Handler + Trap0Handler 0x00003bca F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003bd2 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00003bda F 8 .text.BreakPointHandler + AccessErrHandler 0x00003be2 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x00003bea F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003bf2 F 8 .text.MisalignedHandler + CNTAIntHandler 0x00003bfa F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003c02 F 8 .text.I2CIntHandler + __divsi3 0x00003c0c F 36 .text.__divsi3 + __udivsi3 0x00003c30 F 36 .text.__udivsi3 + __modsi3 0x00003c54 F 36 .text.__modsi3 + __umodsi3 0x00003c78 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x00003c9c F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x00003ca2 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x00003ca8 F 264 .text.UARTx_Init + UART2_RecvINT_Processing 0x00003db0 F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003df4 F 140 .text.UART2_TASK + BUS485_Send 0x00003e80 F 196 .text.BUS485_Send + MultSend_Task 0x00003f44 F 116 .text.MultSend_Task + Set_GroupSend 0x00003fb8 F 100 .text.Set_GroupSend + Clear_SendFlag 0x0000401c F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x0000402c F 12 .text.BUS485_Jump_Boot + BUS485Send_Task 0x00004038 F 52 .text.BUS485Send_Task + BusIdle_Task 0x0000406c F 64 .text.BusIdle_Task + BusBusy_Task 0x000040ac F 92 .text.BusBusy_Task + Dbg_Println 0x00004108 F 12 .text.Dbg_Println + Dbg_Print_Buff 0x00004114 F 2 .text.Dbg_Print_Buff + Touch_Key_Init 0x00004118 F 104 .text.Touch_Key_Init + Get_TouchKey_CH_State 0x00004180 F 60 .text.Get_TouchKey_CH_State + TouchKey_RS485_Printf_3 0x000041bc F 756 .text.TouchKey_RS485_Printf_3 + Touch_Key_Event_Handling 0x000044b0 F 172 .text.Touch_Key_Event_Handling + TouchKey_Set_Interface_Task 0x0000455c F 60 .text.TouchKey_Set_Interface_Task + Touch_Key_Task 0x00004598 F 256 .text.Touch_Key_Task + TouchKey_CheckSum 0x00004698 F 24 .text.TouchKey_CheckSum + TouchKey_Comm_Reply 0x000046b0 F 112 .text.TouchKey_Comm_Reply + TouchKey_SetPara_Processing 0x00004720 F 184 .text.TouchKey_SetPara_Processing + TouchKey_ReadPara_Processing 0x000047d8 F 248 .text.TouchKey_ReadPara_Processing + TouchKey_DugPrintf_Processing 0x000048d0 F 56 .text.TouchKey_DugPrintf_Processing + TouchKey_ReadEnve_Processing 0x00004908 F 176 .text.TouchKey_ReadEnve_Processing + TouchKey_ResetDevice_Processing 0x000049b8 F 26 .text.TouchKey_ResetDevice_Processing + TouchKey_Comm_Processing 0x000049d4 F 216 .text.TouchKey_Comm_Processing + EEPROM_CheckSum 0x00004aac F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x00004ac4 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00004b38 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x00004b7c F 140 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x00004c08 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_WriteTouchPara 0x00004c28 F 108 .text.EEPROM_WriteTouchPara + EEPROM_ReadTouchPara 0x00004c94 F 172 .text.EEPROM_ReadTouchPara + EEPROM_Validate_TouchPara 0x00004d40 F 220 .text.EEPROM_Validate_TouchPara + EEPROM_Default_TouchPara 0x00004e20 F 106 .text.EEPROM_Default_TouchPara + EEPROM_TouchPara_Printf 0x00004e90 F 128 .text.EEPROM_TouchPara_Printf + EEPROM_ReadMCUDevInfo 0x00004f10 F 112 .text.EEPROM_ReadMCUDevInfo + EEPROM_WriteMCUDevInfo 0x00004f80 F 64 .text.EEPROM_WriteMCUDevInfo + EEPROM_Default_MCUDevInfo 0x00004fc0 F 56 .text.EEPROM_Default_MCUDevInfo + EEPROM_Validate_MCUDevInfo 0x00004ff8 F 88 .text.EEPROM_Validate_MCUDevInfo + EEPROM_Init 0x00005050 F 136 .text.EEPROM_Init + ADC_Init 0x000050d8 F 96 .text.ADC_Init + Thermistor_Array_Transform 0x00005138 F 72 .text.Thermistor_Array_Transform + Calculate_ADC_Sample_Average 0x00005180 F 144 .text.Calculate_ADC_Sample_Average + Get_Temp_Val 0x00005210 F 12 .text.Get_Temp_Val + Gather_Temp 0x0000521c F 144 .text.Gather_Temp + ADC_Sample_Task 0x000052ac F 112 .text.ADC_Sample_Task + Contol_Switch_Light 0x0000531c F 1002 .text.Contol_Switch_Light + Contol_Switch_Light_2 0x00005708 F 1002 .text.Contol_Switch_Light_2 + Contol_Switch_ClickAction 0x00005af4 F 40 .text.Contol_Switch_ClickAction + Get_TM1812_State_Change 0x00005b1c F 68 .text.Get_TM1812_State_Change + TimeCall_SIO_Send 0x00005b60 F 288 .text.TimeCall_SIO_Send + TimeCall_SIO_Send2 0x00005c80 F 168 .text.TimeCall_SIO_Send2 + Tm1812_Task 0x00005d28 F 92 .text.Tm1812_Task + Tm1812_Ch_Insert_Data 0x00005d84 F 36 .text.Tm1812_Ch_Insert_Data + TM1812_Control_CH_State 0x00005da8 F 112 .text.TM1812_Control_CH_State + TM1812_Control_CH_CurrState 0x00005e18 F 100 .text.TM1812_Control_CH_CurrState + TM1812_LED_Init 0x00005e7c F 108 .text.TM1812_LED_Init + HT1621_WR_Data 0x00005ee8 F 72 .text.HT1621_WR_Data + HT1621_WR_CMD 0x00005f30 F 48 .text.HT1621_WR_CMD + HT1621_Init 0x00005f60 F 180 .text.HT1621_Init + HT1621_Clear 0x00006014 F 80 .text.HT1621_Clear + HT1621_ALLON 0x00006064 F 64 .text.HT1621_ALLON + HT1621_Refresh_Data 0x000060a4 F 76 .text.HT1621_Refresh_Data + Set_Temperature_Display 0x000060f0 F 208 .text.Set_Temperature_Display + Local_Temperature_Display 0x000061c0 F 208 .text.Local_Temperature_Display + Control_Mode 0x00006290 F 580 .text.Control_Mode + Control_wind_velocity 0x000064d4 F 208 .text.Control_wind_velocity + Control_Prompt_Text 0x000065a4 F 164 .text.Control_Prompt_Text + Controlled_Buzzer 0x00006648 F 72 .text.Controlled_Buzzer + Controlled_LCD_Backlight 0x00006690 F 220 .text.Controlled_LCD_Backlight + Controlled_Key_Backlight 0x0000676c F 48 .text.Controlled_Key_Backlight + Set_Device_ADDR 0x0000679c F 156 .text.Set_Device_ADDR + Set_Temp_Difference 0x00006838 F 100 .text.Set_Temp_Difference + HT1621_Refresh_Task 0x0000689c F 144 .text.HT1621_Refresh_Task + Boot_Function_Init 0x0000692c F 96 .text.Boot_Function_Init + Boot_Comm_CheckSum 0x0000698c F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x000069b0 F 92 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x00006a0c F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x00006a20 F 392 .text.Boot_Comm_UpgradeProcess + TemCtrl_Init 0x00006ba8 F 376 .text.TemCtrl_Init + TemCtrl_Model_Set 0x00006d20 F 76 .text.TemCtrl_Model_Set + TemCtrl_Fan_Set 0x00006d6c F 76 .text.TemCtrl_Fan_Set + TemCtrl_Temperature_Dec 0x00006db8 F 48 .text.TemCtrl_Temperature_Dec + TemCtrl_Temperature_Add 0x00006de8 F 48 .text.TemCtrl_Temperature_Add + TemCtrl_OnOff_Set 0x00006e18 F 52 .text.TemCtrl_OnOff_Set + Tem_Valve_Ctrl 0x00006e4c F 204 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00006f18 F 376 .text.TemCtrl_Pro + KEY1_Model_Press_Fun 0x00007090 F 204 .text.KEY1_Model_Press_Fun + KEY2_Fan_Press_Fun 0x0000715c F 204 .text.KEY2_Fan_Press_Fun + KEY3_TempAdd_Press_Fun 0x00007228 F 256 .text.KEY3_TempAdd_Press_Fun + KEY3_Long_Press_Fun 0x00007328 F 112 .text.KEY3_Long_Press_Fun + KEY4_TempDec_Press_Fun 0x00007398 F 256 .text.KEY4_TempDec_Press_Fun + KEY4_Long_Press 0x00007498 F 112 .text.KEY4_Long_Press + KEY5_OnOff_Press_Fun 0x00007508 F 144 .text.KEY5_OnOff_Press_Fun + TempCtrl_OnOff_DisPlay 0x00007598 F 84 .text.TempCtrl_OnOff_DisPlay + DisPlay_Init 0x000075ec F 32 .text.DisPlay_Init + DisPlay_Task 0x0000760c F 1256 .text.DisPlay_Task + Debug_Init 0x00007af4 F 60 .text.Debug_Init + Dev_SaveData 0x00007b30 F 172 .text.Dev_SaveData + Debug_Task 0x00007bdc F 100 .text.Debug_Task + Relay_Init 0x00007c68 F 40 .text.Relay_Init + Relay_High 0x00007c90 F 28 .text.Relay_High + Relay_Mid 0x00007cac F 28 .text.Relay_Mid + Relay_Low 0x00007cc8 F 28 .text.Relay_Low + Relay_Stop 0x00007ce4 F 28 .text.Relay_Stop + BLV_RLY_Ctrl_Purpose 0x00007d00 F 20 .text.BLV_RLY_Ctrl_Purpose + RLY_Direct_Control 0x00007d14 F 200 .text.RLY_Direct_Control + RLY_Zero_Control 0x00007ddc F 152 .text.RLY_Zero_Control + NetCRC16_Check 0x00007e74 F 76 .text.NetCRC16_Check + GetCRC16 0x00007ec0 F 60 .text.GetCRC16 + SOR_CRC 0x00007efc F 22 .text.SOR_CRC + Rs485_ASend 0x00007f14 F 264 .text.Rs485_ASend + Rs485AskCycleSend 0x0000801c F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00008120 F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x0000817c F 104 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x000081e4 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x000081fc F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000083ac F 204 .text.Tem_Rs485_Rec_Pro + tk_clk_config 0x00008488 F 40 .text.tk_clk_config + TK_con0_config 0x000084b0 F 188 .text.TK_con0_config + tk_io_enable 0x0000856c F 308 .text.tk_io_enable + TK_Single_Longpress_prg 0x000086a0 F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x000087c8 F 204 .text.TK_Sampling_prog + get_key_number 0x00008894 F 40 .text.get_key_number + get_key_number0 0x000088bc F 40 .text.get_key_number0 + get_key_number1 0x000088e4 F 40 .text.get_key_number1 + get_key_number2 0x0000890c F 40 .text.get_key_number2 + TK_Baseline_prog 0x00008934 F 336 .text.TK_Baseline_prog + TK_Baseline_prog2 0x00008a84 F 328 .text.TK_Baseline_prog2 + tk_poweron_data_fineturn 0x00008bcc F 292 .text.tk_poweron_data_fineturn + TK_Scan_Start 0x00008cf0 F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x00008d58 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x000095c8 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x000096f0 F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x00009bc0 F 304 .text.TK_result_prog + get_key_seq 0x00009cf0 F 56 .text.get_key_seq + CORET_CONFIG 0x00009d28 F 56 .text.CORET_CONFIG + tk_chxval_seqxcon_clr 0x00009d60 F 28 .text.tk_chxval_seqxcon_clr + tk_freq_para_init 0x00009d7c F 156 .text.tk_freq_para_init + tk_reserved_init 0x00009e28 F 40 .text.tk_reserved_init + TKEYIntHandler 0x00009e50 F 160 .text.TKEYIntHandler + CORETHandler 0x00009ef0 F 348 .text.CORETHandler + tk_init 0x0000a04c F 272 .text.tk_init + std_clk_calib 0x0000a15c F 644 .text.std_clk_calib + R_Array 0x0000a416 O 820 .rodata + Diaital 0x0000a74a O 10 .rodata + __thenan_sf 0x0000a784 O 16 .rodata + __thenan_df 0x0000a794 O 20 .rodata + __clz_tab 0x0000a7a8 O 256 .rodata + _end_rodata 0x0000ad00 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 + Printf_Ch 0x20000068 O 1 .data + MCU_Touch_CH 0x20000069 O 5 .data + s_tkey 0x20000070 O 1 .data + samp_setover_f 0x20000071 O 1 .data + scan_step_temp 0x20000072 O 1 .data + SigleTK_longpress_time 0x20000074 O 2 .data + tk_dataturn_en 0x20000076 O 1 .data + tk_overflow_en 0x20000077 O 1 .data + tk_div 0x20000078 O 34 .data + neg_build_bounce 0x2000009a O 1 .data + pos_build_bounce 0x2000009b O 1 .data + Valid_SingleKey_Num 0x2000009c O 1 .data + tk_scan_para0 0x200000a0 O 4 .data + tk_scan_para1 0x200000a4 O 4 .data + tk_scan_para2 0x200000a8 O 4 .data + TkeyRebaseTime 0x200000ac O 1 .data + _end_data 0x200000b0 0 .data + Sav_Temp 0x200000b0 O 4 .bss + _bss_start 0x200000b0 0 .bss + Sys_RSR 0x200000b4 O 4 .bss + SysTick_100us 0x200000bc O 4 .bss + SysTick_1ms 0x200000c0 O 4 .bss + DealBuffer 0x200000c4 O 100 .bss + DealLen 0x20000128 O 2 .bss + RS485_Comming 0x2000012c O 4 .bss + RS485_Comm_Flag 0x20000130 O 4 .bss + RS485_Comm_Start 0x20000134 O 4 .bss + RS485_Comm_End 0x20000138 O 4 .bss + tm1812_param 0x20000140 O 232 .bss + K 0x20000228 O 1 .bss + K2 0x20000229 O 1 .bss + keymap_strict_mode 0x20000235 O 1 .bss + Press_debounce_data 0x20000238 O 1 .bss + TK_Lowpower_mode 0x20000239 O 1 .bss + TK_Lowpower_level 0x2000023a O 1 .bss + TK_longpress_time 0x2000023c O 4 .bss + Release_debounce_data 0x20000240 O 1 .bss + Key_mode 0x20000241 O 1 .bss + TK_icon 0x20000242 O 34 .bss + MultiTimes_Filter 0x20000264 O 1 .bss + Base_Speed 0x20000265 O 1 .bss + TK_IO_ENABLE 0x20000268 O 4 .bss + Valid_Key_Num 0x2000026c O 1 .bss + TK_senprd 0x2000026e O 34 .bss + TK_Wakeup_level 0x20000290 O 1 .bss + TK_Triggerlevel 0x20000292 O 34 .bss + TK_EC_LEVEL 0x200002b4 O 2 .bss + TK_FVR_LEVEL 0x200002b6 O 2 .bss + TK_BaseCnt 0x200002b8 O 4 .bss + TK_PSEL_MODE 0x200002bc O 2 .bss + R_CMPB_BUF 0x200002c0 O 4 .bss + R_CMPA_BUF 0x200002c4 O 4 .bss + R_SIORX_buf 0x200002c8 O 40 .bss + g_uart 0x200002f0 O 348 .bss + m_send 0x2000044c O 136 .bss + touch_para 0x200004d4 O 28 .bss + g_key 0x200004f0 O 52 .bss + g_eeprom 0x20000524 O 8 .bss + g_mcu_dev 0x2000052c O 37 .bss + g_adc 0x20000554 O 80 .bss + g_switch 0x200005a4 O 28 .bss + HT1621 0x200005c0 O 64 .bss + g_boot 0x20000600 O 316 .bss + g_app_feature 0x2000073c O 256 .bss + TempCtrl 0x2000083c O 41 .bss + Debug_Inf 0x20000868 O 16 .bss + c_rly 0x20000878 O 12 .bss + Tk_press_time_cnt4 0x20000884 O 4 .bss + baseline_data0 0x20000888 O 34 .bss + TK_Postive_build2 0x200008aa O 17 .bss + Key_Map1 0x200008bc O 4 .bss + Valid_Key_Num_CNT 0x200008c0 O 3 .bss + offset_data2_abs 0x200008c4 O 34 .bss + time_cnt0 0x200008e8 O 4 .bss + offset0_max_tempB 0x200008ec O 2 .bss + scan_f 0x200008ee O 1 .bss + offset_data1_abs 0x200008f0 O 34 .bss + TK_Slider1_Value 0x20000912 O 1 .bss + TK_Wheel_Value 0x20000913 O 1 .bss + Release_debounce0 0x20000914 O 17 .bss + Key_Map0 0x20000928 O 4 .bss + Tk_press_time_cnt2 0x2000092c O 4 .bss + TK_Slider0_Seq 0x20000930 O 4 .bss + bsae_over_f 0x20000934 O 1 .bss + Press_debounce0 0x20000935 O 17 .bss + Valid_key_f 0x20000946 O 1 .bss + offset_data0 0x20000948 O 34 .bss + offset2_max_tempA 0x2000096a O 2 .bss + TK_Scan_Freq1 0x2000096c O 4 .bss + sampling_data1 0x20000970 O 34 .bss + TK_Slider1_Level 0x20000992 O 1 .bss + TK_Slider1_Function 0x20000993 O 1 .bss + base_update_fs 0x20000994 O 3 .bss + TK_Slider0_Function 0x20000997 O 1 .bss + Tk_press_time_cnt3 0x20000998 O 4 .bss + TK_Scan_Freq2 0x2000099c O 4 .bss + Key_Map2 0x200009a0 O 4 .bss + Release_debounce1 0x200009a4 O 17 .bss + tk_overflow_f 0x200009b5 O 1 .bss + time_cnt2 0x200009b8 O 4 .bss + TK_Negtive_build2 0x200009bc O 17 .bss + base_update_f 0x200009cd O 1 .bss + TK_Postive_build1 0x200009ce O 17 .bss + offset_max_data 0x200009e0 O 64 .bss + time_cnt 0x20000a20 O 4 .bss + lpt_scan_pend_cnt 0x20000a24 O 2 .bss + TK_track_cnt 0x20000a26 O 1 .bss + Key_Map 0x20000a28 O 4 .bss + Key_Map2_temp 0x20000a2c O 4 .bss + offset2_max_tempB 0x20000a30 O 2 .bss + baseline_data1 0x20000a32 O 34 .bss + TK_Postive_build0 0x20000a54 O 17 .bss + sampling_data2 0x20000a66 O 34 .bss + offset_data1 0x20000a88 O 34 .bss + TK_ovrdect_cnt 0x20000aaa O 1 .bss + TK_Slider0_Level 0x20000aab O 1 .bss + time_cnt1 0x20000aac O 4 .bss + Press_debounce2 0x20000ab0 O 17 .bss + Tk_press_time_cnt0 0x20000ac4 O 4 .bss + Key_Map0_temp 0x20000ac8 O 4 .bss + TK_Negtive_build1 0x20000acc O 17 .bss + coret_spread_step 0x20000add O 1 .bss + time_cnts 0x20000ade O 3 .bss + offset0_max_tempA 0x20000ae2 O 2 .bss + tk_num 0x20000ae4 O 1 .bss + TK_Slider1_Seq 0x20000ae5 O 4 .bss + offset1_max_tempB 0x20000aea O 2 .bss + TK_Negtive_build0 0x20000aec O 17 .bss + R_Debounce_temp2 0x20000b00 O 4 .bss + Tk_press_time_cnt1 0x20000b04 O 4 .bss + Press_debounce1 0x20000b08 O 17 .bss + TK_Wheel_Seq 0x20000b19 O 4 .bss + TK_Slider0_Value 0x20000b1d O 1 .bss + Release_debounce2 0x20000b1e O 17 .bss + r_Key_Map_Temp 0x20000b30 O 4 .bss + tk_seque 0x20000b34 O 17 .bss + scan_step 0x20000b45 O 1 .bss + TK_Wheel_Level 0x20000b46 O 1 .bss + baseline_data2 0x20000b48 O 34 .bss + tk_sampling_max 0x20000b6a O 34 .bss + Key_Map1_temp 0x20000b8c O 4 .bss + coret_spread_cnt 0x20000b90 O 2 .bss + offset_data0_abs 0x20000b92 O 34 .bss + offset_data2 0x20000bb4 O 34 .bss + TK_Wheel_Function 0x20000bd6 O 1 .bss + offset1_max_tempA 0x20000bd8 O 2 .bss + sampling_data0 0x20000bda O 34 .bss + TK_Scan_Freq0 0x20000bfc O 4 .bss + _ebss 0x20000c00 0 .bss + _end 0x20000c00 0 .bss + end 0x20000c00 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: 0x0000ad00, 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 1296 .text pow.o + 0x00000b5e 0x00000006 Code RO 1304 .text fabs.o + 0x00000b64 0x00000020 Code RO 1310 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1317 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1328 .text _csky_case_uqi.o + 0x00000d10 0x0000001c Code RO 1333 .text _csky_case_shi.o + 0x00000d2c 0x0000001a Code RO 1338 .text _csky_case_uhi.o + 0x00000d46 0x00000002 PAD + 0x00000d48 0x00000038 Code RO 1343 .text _fixunsdfsi.o + 0x00000d80 0x000000bc Code RO 1350 .text _div_sf.o + 0x00000e3c 0x00000024 Code RO 1357 .text _sf_to_df.o + 0x00000e60 0x00000060 Code RO 1371 .text _usi_to_sf.o + 0x00000ec0 0x0000033a Code RO 1378 .text _addsub_df.o + 0x000011fa 0x00000002 PAD + 0x000011fc 0x00000234 Code RO 1385 .text _mul_df.o + 0x00001430 0x00000154 Code RO 1392 .text _div_df.o + 0x00001584 0x0000003c Code RO 1399 .text _gt_df.o + 0x000015c0 0x0000003c Code RO 1406 .text _ge_df.o + 0x000015fc 0x0000003a Code RO 1413 .text _le_df.o + 0x00001636 0x00000002 PAD + 0x00001638 0x00000070 Code RO 1420 .text _si_to_df.o + 0x000016a8 0x00000070 Code RO 1427 .text _df_to_si.o + 0x00001718 0x00000028 Code RO 1434 .text _make_df.o + 0x00001740 0x00000054 Code RO 1448 .text _usi_to_df.o + 0x00001794 0x00000044 Code RO 1455 .text _muldi3.o + 0x000017d8 0x00000040 Code RO 1462 .text _clzsi2.o + 0x00001818 0x000000b8 Code RO 1468 .text _pack_sf.o + 0x000018d0 0x00000084 Code RO 1475 .text _unpack_sf.o + 0x00001954 0x0000019c Code RO 1482 .text _pack_df.o + 0x00001af0 0x000000c4 Code RO 1489 .text _unpack_df.o + 0x00001bb4 0x0000008c Code RO 1496 .text _fpcmp_parts_df.o + 0x00001c40 0x00000088 Code RO 1517 .text memset_fast.o + 0x00001cc8 0x00000064 Code RO 1522 .text memcpy_fast.o + 0x00001d2c 0x00000026 Code RO 1528 .text strncmp.o + 0x00001d54 0x00000038 Code RO 28 .text.__main Obj/arch_mem_init.o + 0x00001d8c 0x00000074 Code RO 61 .text.SYSCON_General_CMD.part.0 Obj/FWlib_apt32f102_syscon.o + 0x00001e00 0x0000004c Code RO 62 .text.SYSCON_RST_VALUE Obj/FWlib_apt32f102_syscon.o + 0x00001e4c 0x00000030 Code RO 64 .text.SYSCON_General_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001e7c 0x00000088 Code RO 65 .text.SystemCLK_HCLKDIV_PCLKDIV_Config Obj/FWlib_apt32f102_syscon.o + 0x00001f04 0x00000028 Code RO 68 .text.SYSCON_HFOSC_SELECTE Obj/FWlib_apt32f102_syscon.o + 0x00001f2c 0x0000003c Code RO 69 .text.SYSCON_WDT_CMD Obj/FWlib_apt32f102_syscon.o + 0x00001f68 0x00000014 Code RO 70 .text.SYSCON_IWDCNT_Reload Obj/FWlib_apt32f102_syscon.o + 0x00001f7c 0x00000018 Code RO 71 .text.SYSCON_IWDCNT_Config Obj/FWlib_apt32f102_syscon.o + 0x00001f94 0x00000020 Code RO 72 .text.SYSCON_LVD_Config Obj/FWlib_apt32f102_syscon.o + 0x00001fb4 0x0000001c Code RO 73 .text.LVD_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001fd0 0x0000001c Code RO 75 .text.IWDT_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00001fec 0x00000040 Code RO 78 .text.EXTI_trigger_CMD Obj/FWlib_apt32f102_syscon.o + 0x0000202c 0x00000034 Code RO 79 .text.EXTI_interrupt_CMD Obj/FWlib_apt32f102_syscon.o + 0x00002060 0x00000004 Code RO 80 .text.GPIO_EXTI_interrupt Obj/FWlib_apt32f102_syscon.o + 0x00002064 0x00000010 Code RO 89 .text.EXI3_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00002074 0x00000010 Code RO 91 .text.EXI4_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00002084 0x0000000c Code RO 103 .text.SYSCON_Int_Enable Obj/FWlib_apt32f102_syscon.o + 0x00002090 0x0000000c Code RO 104 .text.SYSCON_Int_Disable Obj/FWlib_apt32f102_syscon.o + 0x0000209c 0x00000024 Code RO 112 .text.SYSCON_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000020c0 0x00000030 Code RO 113 .text.Set_INT_Priority Obj/FWlib_apt32f102_syscon.o + 0x000020f0 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00002154 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00002234 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00002248 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00002258 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002364 0x000000fc Code RO 144 .text.GPIOA0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x00002460 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000024cc 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000024d4 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000024dc 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000024f2 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x00002504 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002518 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002528 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002544 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x0000254c 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002556 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000256e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000259a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x000025a0 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x000025b4 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x000025c4 0x00000020 Code RO 383 .text.SIO_DeInit Obj/FWlib_apt32f102_sio.o + 0x000025e4 0x00000060 Code RO 384 .text.SIO_IO_Init Obj/FWlib_apt32f102_sio.o + 0x00002644 0x00000010 Code RO 385 .text.SIO_TX_Init Obj/FWlib_apt32f102_sio.o + 0x00002654 0x00000050 Code RO 386 .text.SIO_TX_Configure Obj/FWlib_apt32f102_sio.o + 0x000026a4 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000026bc 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000026d4 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000026ec 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002708 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002724 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002810 0x00000010 Code RO 451 .text.UARTInit Obj/FWlib_apt32f102_uart.o + 0x00002820 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002830 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002850 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002878 0x00000064 Code RO 604 .text.ADC12_RESET_VALUE Obj/FWlib_apt32f102_adc.o + 0x000028dc 0x00000010 Code RO 605 .text.ADC12_Control Obj/FWlib_apt32f102_adc.o + 0x000028ec 0x00000020 Code RO 606 .text.ADC12_CMD.part.0 Obj/FWlib_apt32f102_adc.o + 0x0000290c 0x0000002c Code RO 609 .text.ADC12_CLK_CMD Obj/FWlib_apt32f102_adc.o + 0x00002938 0x0000000a Code RO 610 .text.ADC12_Software_Reset Obj/FWlib_apt32f102_adc.o + 0x00002944 0x00000028 Code RO 611 .text.ADC12_CMD Obj/FWlib_apt32f102_adc.o + 0x0000296c 0x00000014 Code RO 612 .text.ADC12_ready_wait Obj/FWlib_apt32f102_adc.o + 0x00002980 0x00000018 Code RO 614 .text.ADC12_SEQEND_wait Obj/FWlib_apt32f102_adc.o + 0x00002998 0x00000014 Code RO 615 .text.ADC12_DATA_OUPUT Obj/FWlib_apt32f102_adc.o + 0x000029ac 0x0000007c Code RO 616 .text.ADC12_Configure_Mode Obj/FWlib_apt32f102_adc.o + 0x00002a28 0x00000198 Code RO 617 .text.ADC12_Configure_VREF_Selecte Obj/FWlib_apt32f102_adc.o + 0x00002bc0 0x00000180 Code RO 619 .text.ADC12_ConversionChannel_Config Obj/FWlib_apt32f102_adc.o + 0x00002d40 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002de0 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002e0c 0x00000140 Code RO 665 .text.tk_parameter_init Obj/FWlib_apt32f102_tkey_parameter.o + 0x00002f4c 0x00000018 Code RO 680 .text.CORET_DeInit Obj/FWlib_apt32f102_coret.o + 0x00002f64 0x00000018 Code RO 681 .text.CORET_Int_Enable Obj/FWlib_apt32f102_coret.o + 0x00002f7c 0x00000010 Code RO 685 .text.CORET_start Obj/FWlib_apt32f102_coret.o + 0x00002f8c 0x00000010 Code RO 687 .text.CORET_CLKSOURCE_EX Obj/FWlib_apt32f102_coret.o + 0x00002f9c 0x00000010 Code RO 689 .text.CORET_TICKINT_Enable Obj/FWlib_apt32f102_coret.o + 0x00002fac 0x00000010 Code RO 691 .text.CORET_reload Obj/FWlib_apt32f102_coret.o + 0x00002fbc 0x00000054 Code RO 705 .text.startup.main Obj/main.o + 0x00003010 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x0000303c 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x00003060 0x0000008c Code RO 723 .text.GPIO_CONFIG Obj/mcu_initial.o + 0x000030ec 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x0000314c 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x000031b0 0x0000009c Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x0000324c 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x0000333c 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x000033a4 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x0000340c 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x000035b8 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000035ec 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x0000366c 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x000036dc 0x0000003c Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00003718 0x0000003c Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00003754 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x000037e8 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x000038d0 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00003924 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00003954 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00003984 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x000039cc 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00003a38 0x00000080 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00003ab8 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00003aec 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00003b38 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00003ba8 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00003baa 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00003bb2 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00003bba 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00003bc2 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00003bca 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003bd2 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00003bda 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003be2 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x00003bea 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003bf2 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x00003bfa 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003c02 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003c0c 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003c30 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003c54 0x00000024 Code RO 800 .text.__modsi3 Obj/drivers_apt32f102.o + 0x00003c78 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x00003c9c 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003ca2 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x00003ca8 0x00000108 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003db0 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003df4 0x0000008c Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003e80 0x000000c4 Code RO 843 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003f44 0x00000074 Code RO 844 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003fb8 0x00000064 Code RO 845 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x0000401c 0x00000010 Code RO 846 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x0000402c 0x0000000c Code RO 847 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x00004038 0x00000034 Code RO 848 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x0000406c 0x00000040 Code RO 850 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x000040ac 0x0000005c Code RO 851 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x00004108 0x0000000c Code RO 853 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x00004114 0x00000002 Code RO 854 .text.Dbg_Print_Buff Obj/SYSTEM_uart.o + 0x00004118 0x00000068 Code RO 871 .text.Touch_Key_Init Obj/SYSTEM_touch_key.o + 0x00004180 0x0000003c Code RO 876 .text.Get_TouchKey_CH_State Obj/SYSTEM_touch_key.o + 0x000041bc 0x000002f4 Code RO 877 .text.TouchKey_RS485_Printf_3 Obj/SYSTEM_touch_key.o + 0x000044b0 0x000000ac Code RO 879 .text.Touch_Key_Event_Handling Obj/SYSTEM_touch_key.o + 0x0000455c 0x0000003c Code RO 880 .text.TouchKey_Set_Interface_Task Obj/SYSTEM_touch_key.o + 0x00004598 0x00000100 Code RO 881 .text.Touch_Key_Task Obj/SYSTEM_touch_key.o + 0x00004698 0x00000018 Code RO 882 .text.TouchKey_CheckSum Obj/SYSTEM_touch_key.o + 0x000046b0 0x00000070 Code RO 883 .text.TouchKey_Comm_Reply Obj/SYSTEM_touch_key.o + 0x00004720 0x000000b8 Code RO 884 .text.TouchKey_SetPara_Processing Obj/SYSTEM_touch_key.o + 0x000047d8 0x000000f8 Code RO 885 .text.TouchKey_ReadPara_Processing Obj/SYSTEM_touch_key.o + 0x000048d0 0x00000038 Code RO 886 .text.TouchKey_DugPrintf_Processing Obj/SYSTEM_touch_key.o + 0x00004908 0x000000b0 Code RO 887 .text.TouchKey_ReadEnve_Processing Obj/SYSTEM_touch_key.o + 0x000049b8 0x0000001a Code RO 888 .text.TouchKey_ResetDevice_Processing Obj/SYSTEM_touch_key.o + 0x000049d4 0x000000d8 Code RO 889 .text.TouchKey_Comm_Processing Obj/SYSTEM_touch_key.o + 0x00004aac 0x00000016 Code RO 908 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x00004ac4 0x00000074 Code RO 909 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00004b38 0x00000044 Code RO 910 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x00004b7c 0x0000008c Code RO 912 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004c08 0x00000020 Code RO 913 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x00004c28 0x0000006c Code RO 914 .text.EEPROM_WriteTouchPara Obj/SYSTEM_eeprom.o + 0x00004c94 0x000000ac Code RO 915 .text.EEPROM_ReadTouchPara Obj/SYSTEM_eeprom.o + 0x00004d40 0x000000e0 Code RO 916 .text.EEPROM_Validate_TouchPara Obj/SYSTEM_eeprom.o + 0x00004e20 0x00000070 Code RO 917 .text.EEPROM_Default_TouchPara Obj/SYSTEM_eeprom.o + 0x00004e90 0x00000080 Code RO 918 .text.EEPROM_TouchPara_Printf Obj/SYSTEM_eeprom.o + 0x00004f10 0x00000070 Code RO 919 .text.EEPROM_ReadMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004f80 0x00000040 Code RO 920 .text.EEPROM_WriteMCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004fc0 0x00000038 Code RO 921 .text.EEPROM_Default_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00004ff8 0x00000058 Code RO 922 .text.EEPROM_Validate_MCUDevInfo Obj/SYSTEM_eeprom.o + 0x00005050 0x00000088 Code RO 923 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x000050d8 0x00000060 Code RO 941 .text.ADC_Init Obj/SYSTEM_adc.o + 0x00005138 0x00000048 Code RO 942 .text.Thermistor_Array_Transform Obj/SYSTEM_adc.o + 0x00005180 0x00000090 Code RO 943 .text.Calculate_ADC_Sample_Average Obj/SYSTEM_adc.o + 0x00005210 0x0000000c Code RO 944 .text.Get_Temp_Val Obj/SYSTEM_adc.o + 0x0000521c 0x00000090 Code RO 945 .text.Gather_Temp Obj/SYSTEM_adc.o + 0x000052ac 0x00000070 Code RO 946 .text.ADC_Sample_Task Obj/SYSTEM_adc.o + 0x0000531c 0x000003ea Code RO 965 .text.Contol_Switch_Light Obj/SYSTEM_switch_fun.o + 0x00005708 0x000003ea Code RO 966 .text.Contol_Switch_Light_2 Obj/SYSTEM_switch_fun.o + 0x00005af4 0x00000028 Code RO 967 .text.Contol_Switch_ClickAction Obj/SYSTEM_switch_fun.o + 0x00005b1c 0x00000044 Code RO 989 .text.Get_TM1812_State_Change Obj/SYSTEM_tm1812.o + 0x00005b60 0x00000120 Code RO 991 .text.TimeCall_SIO_Send Obj/SYSTEM_tm1812.o + 0x00005c80 0x000000a8 Code RO 992 .text.TimeCall_SIO_Send2 Obj/SYSTEM_tm1812.o + 0x00005d28 0x0000005c Code RO 993 .text.Tm1812_Task Obj/SYSTEM_tm1812.o + 0x00005d84 0x00000024 Code RO 994 .text.Tm1812_Ch_Insert_Data Obj/SYSTEM_tm1812.o + 0x00005da8 0x00000070 Code RO 995 .text.TM1812_Control_CH_State Obj/SYSTEM_tm1812.o + 0x00005e18 0x00000064 Code RO 996 .text.TM1812_Control_CH_CurrState Obj/SYSTEM_tm1812.o + 0x00005e7c 0x0000006c Code RO 997 .text.TM1812_LED_Init Obj/SYSTEM_tm1812.o + 0x00005ee8 0x00000048 Code RO 1014 .text.HT1621_WR_Data Obj/SYSTEM_ht1621.o + 0x00005f30 0x00000030 Code RO 1015 .text.HT1621_WR_CMD Obj/SYSTEM_ht1621.o + 0x00005f60 0x000000b4 Code RO 1016 .text.HT1621_Init Obj/SYSTEM_ht1621.o + 0x00006014 0x00000050 Code RO 1020 .text.HT1621_Clear Obj/SYSTEM_ht1621.o + 0x00006064 0x00000040 Code RO 1021 .text.HT1621_ALLON Obj/SYSTEM_ht1621.o + 0x000060a4 0x0000004c Code RO 1022 .text.HT1621_Refresh_Data Obj/SYSTEM_ht1621.o + 0x000060f0 0x000000d0 Code RO 1023 .text.Set_Temperature_Display Obj/SYSTEM_ht1621.o + 0x000061c0 0x000000d0 Code RO 1024 .text.Local_Temperature_Display Obj/SYSTEM_ht1621.o + 0x00006290 0x00000244 Code RO 1025 .text.Control_Mode Obj/SYSTEM_ht1621.o + 0x000064d4 0x000000d0 Code RO 1026 .text.Control_wind_velocity Obj/SYSTEM_ht1621.o + 0x000065a4 0x000000a4 Code RO 1027 .text.Control_Prompt_Text Obj/SYSTEM_ht1621.o + 0x00006648 0x00000048 Code RO 1028 .text.Controlled_Buzzer Obj/SYSTEM_ht1621.o + 0x00006690 0x000000dc Code RO 1029 .text.Controlled_LCD_Backlight Obj/SYSTEM_ht1621.o + 0x0000676c 0x00000030 Code RO 1030 .text.Controlled_Key_Backlight Obj/SYSTEM_ht1621.o + 0x0000679c 0x0000009c Code RO 1031 .text.Set_Device_ADDR Obj/SYSTEM_ht1621.o + 0x00006838 0x00000064 Code RO 1032 .text.Set_Temp_Difference Obj/SYSTEM_ht1621.o + 0x0000689c 0x00000090 Code RO 1033 .text.HT1621_Refresh_Task Obj/SYSTEM_ht1621.o + 0x0000692c 0x00000060 Code RO 1053 .text.Boot_Function_Init Obj/SYSTEM_Bootload_fun.o + 0x0000698c 0x00000024 Code RO 1054 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x000069b0 0x0000005c Code RO 1056 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x00006a0c 0x00000014 Code RO 1060 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x00006a20 0x00000188 Code RO 1061 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x00006ba8 0x00000178 Code RO 1081 .text.TemCtrl_Init Obj/USRCTRL_tempctrl_unit.o + 0x00006d20 0x0000004c Code RO 1082 .text.TemCtrl_Model_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006d6c 0x0000004c Code RO 1083 .text.TemCtrl_Fan_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006db8 0x00000030 Code RO 1084 .text.TemCtrl_Temperature_Dec Obj/USRCTRL_tempctrl_unit.o + 0x00006de8 0x00000030 Code RO 1085 .text.TemCtrl_Temperature_Add Obj/USRCTRL_tempctrl_unit.o + 0x00006e18 0x00000034 Code RO 1086 .text.TemCtrl_OnOff_Set Obj/USRCTRL_tempctrl_unit.o + 0x00006e4c 0x000000cc Code RO 1087 .text.Tem_Valve_Ctrl Obj/USRCTRL_tempctrl_unit.o + 0x00006f18 0x00000178 Code RO 1088 .text.TemCtrl_Pro Obj/USRCTRL_tempctrl_unit.o + 0x00007090 0x000000cc Code RO 1106 .text.KEY1_Model_Press_Fun Obj/USRCTRL_key_logic.o + 0x0000715c 0x000000cc Code RO 1107 .text.KEY2_Fan_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007228 0x00000100 Code RO 1108 .text.KEY3_TempAdd_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007328 0x00000070 Code RO 1109 .text.KEY3_Long_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007398 0x00000100 Code RO 1110 .text.KEY4_TempDec_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007498 0x00000070 Code RO 1111 .text.KEY4_Long_Press Obj/USRCTRL_key_logic.o + 0x00007508 0x00000090 Code RO 1112 .text.KEY5_OnOff_Press_Fun Obj/USRCTRL_key_logic.o + 0x00007598 0x00000054 Code RO 1128 .text.TempCtrl_OnOff_DisPlay Obj/USRCTRL_display_logic.o + 0x000075ec 0x00000020 Code RO 1129 .text.DisPlay_Init Obj/USRCTRL_display_logic.o + 0x0000760c 0x000004e8 Code RO 1130 .text.DisPlay_Task Obj/USRCTRL_display_logic.o + 0x00007af4 0x0000003c Code RO 1147 .text.Debug_Init Obj/USRCTRL_debug_unit.o + 0x00007b30 0x000000ac Code RO 1148 .text.Dev_SaveData Obj/USRCTRL_debug_unit.o + 0x00007bdc 0x00000064 Code RO 1149 .text.Debug_Task Obj/USRCTRL_debug_unit.o + 0x00007c40 0x00000028 Code RO 1166 .text.BLV_RLY_Ctrl_Purpose.part.0 Obj/USRCTRL_myrelay.o + 0x00007c68 0x00000028 Code RO 1167 .text.Relay_Init Obj/USRCTRL_myrelay.o + 0x00007c90 0x0000001c Code RO 1168 .text.Relay_High Obj/USRCTRL_myrelay.o + 0x00007cac 0x0000001c Code RO 1169 .text.Relay_Mid Obj/USRCTRL_myrelay.o + 0x00007cc8 0x0000001c Code RO 1170 .text.Relay_Low Obj/USRCTRL_myrelay.o + 0x00007ce4 0x0000001c Code RO 1171 .text.Relay_Stop Obj/USRCTRL_myrelay.o + 0x00007d00 0x00000014 Code RO 1172 .text.BLV_RLY_Ctrl_Purpose Obj/USRCTRL_myrelay.o + 0x00007d14 0x000000c8 Code RO 1173 .text.RLY_Direct_Control Obj/USRCTRL_myrelay.o + 0x00007ddc 0x00000098 Code RO 1174 .text.RLY_Zero_Control Obj/USRCTRL_myrelay.o + 0x00007e74 0x0000004c Code RO 1191 .text.NetCRC16_Check Obj/USRCTRL_uart_protocol.o + 0x00007ec0 0x0000003c Code RO 1192 .text.GetCRC16 Obj/USRCTRL_uart_protocol.o + 0x00007efc 0x00000016 Code RO 1193 .text.SOR_CRC Obj/USRCTRL_uart_protocol.o + 0x00007f14 0x00000108 Code RO 1194 .text.Rs485_ASend Obj/USRCTRL_uart_protocol.o + 0x0000801c 0x00000104 Code RO 1195 .text.Rs485AskCycleSend Obj/USRCTRL_uart_protocol.o + 0x00008120 0x0000005c Code RO 1196 .text.Rs485AskCtrlSend Obj/USRCTRL_uart_protocol.o + 0x0000817c 0x00000068 Code RO 1197 .text.Rs485AskReadSend Obj/USRCTRL_uart_protocol.o + 0x000081e4 0x00000018 Code RO 1198 .text.Rs485_DevPort_ACK Obj/USRCTRL_uart_protocol.o + 0x000081fc 0x000001b0 Code RO 1199 .text.Temp_Rec_Analysis Obj/USRCTRL_uart_protocol.o + 0x000083ac 0x000000cc Code RO 1200 .text.Tem_Rs485_Rec_Pro Obj/USRCTRL_uart_protocol.o + 0x00008478 0x00000010 Code RO 1226 .text.TK_ConfigInterrupt_CMD.part.0 FWlib_apt32f102_tkey_f_1_18.o + 0x00008488 0x00000028 Code RO 1229 .text.tk_clk_config FWlib_apt32f102_tkey_f_1_18.o + 0x000084b0 0x000000bc Code RO 1230 .text.TK_con0_config FWlib_apt32f102_tkey_f_1_18.o + 0x0000856c 0x00000134 Code RO 1233 .text.tk_io_enable FWlib_apt32f102_tkey_f_1_18.o + 0x000086a0 0x00000128 Code RO 1234 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x000087c8 0x000000cc Code RO 1235 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008894 0x00000028 Code RO 1239 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x000088bc 0x00000028 Code RO 1240 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000088e4 0x00000028 Code RO 1241 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x0000890c 0x00000028 Code RO 1242 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x00008934 0x00000150 Code RO 1243 .text.TK_Baseline_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00008a84 0x00000148 Code RO 1244 .text.TK_Baseline_prog2 FWlib_apt32f102_tkey_f_1_18.o + 0x00008bcc 0x00000124 Code RO 1245 .text.tk_poweron_data_fineturn FWlib_apt32f102_tkey_f_1_18.o + 0x00008cf0 0x00000068 Code RO 1246 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x00008d58 0x00000870 Code RO 1247 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000095c8 0x00000128 Code RO 1248 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x000096f0 0x000004d0 Code RO 1249 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x00009bc0 0x00000130 Code RO 1250 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00009cf0 0x00000038 Code RO 1251 .text.get_key_seq FWlib_apt32f102_tkey_f_1_18.o + 0x00009d28 0x00000038 Code RO 1252 .text.CORET_CONFIG FWlib_apt32f102_tkey_f_1_18.o + 0x00009d60 0x0000001c Code RO 1253 .text.tk_chxval_seqxcon_clr FWlib_apt32f102_tkey_f_1_18.o + 0x00009d7c 0x000000ac Code RO 1254 .text.tk_freq_para_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009e28 0x00000028 Code RO 1255 .text.tk_reserved_init FWlib_apt32f102_tkey_f_1_18.o + 0x00009e50 0x000000a0 Code RO 1256 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00009ef0 0x0000015c Code RO 1257 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x0000a04c 0x00000110 Code RO 1258 .text.tk_init FWlib_apt32f102_tkey_f_1_18.o + 0x0000a15c 0x00000284 Code RO 1276 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x0000a3e0 0x00000035 Data RO 890 .rodata Obj/SYSTEM_touch_key.o + 0x0000a415 0x00000001 PAD + 0x0000a416 0x00000334 Data RO 947 .rodata Obj/SYSTEM_adc.o + 0x0000a74a 0x0000000a Data RO 1035 .rodata Obj/SYSTEM_ht1621.o + 0x0000a754 0x00000030 Data RO 1299 .rodata pow.o + 0x0000a784 0x00000010 Data RO 1367 .rodata _thenan_sf.o + 0x0000a794 0x00000014 Data RO 1444 .rodata _thenan_df.o + 0x0000a7a8 0x00000100 Data RO 1506 .rodata _clz.o + 0x0000a8a8 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x0000a8b6 0x00000092 Data RO 891 .rodata.str1.1 Obj/SYSTEM_touch_key.o + 0x0000a948 0x0000019d Data RO 924 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x0000aae5 0x00000021 Data RO 948 .rodata.str1.1 Obj/SYSTEM_adc.o + 0x0000ab06 0x00000011 Data RO 998 .rodata.str1.1 Obj/SYSTEM_tm1812.o + 0x0000ab17 0x00000071 Data RO 1089 .rodata.str1.1 Obj/USRCTRL_tempctrl_unit.o + 0x0000ab88 0x0000007e Data RO 1113 .rodata.str1.1 Obj/USRCTRL_key_logic.o + 0x0000ac06 0x00000045 Data RO 1131 .rodata.str1.1 Obj/USRCTRL_display_logic.o + 0x0000ac4b 0x00000087 Data RO 1150 .rodata.str1.1 Obj/USRCTRL_debug_unit.o + 0x0000acd2 0x0000002c Data RO 1201 .rodata.str1.1 Obj/USRCTRL_uart_protocol.o + 0x0000acfe 0x00000002 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000c00, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x00000006 Data RW 869 .data Obj/SYSTEM_touch_key.o + 0x2000006e 0x00000002 PAD + 0x20000070 0x0000003d Data RW 1224 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000ad 0x00000003 PAD + 0x200000b0 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b8 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000c4 0x00000078 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x2000013c 0x00000004 Zero RW 940 .bss Obj/SYSTEM_adc.o + 0x20000140 0x000000f0 Zero RW 983 .bss Obj/SYSTEM_tm1812.o + 0x20000230 0x00000004 Zero RW 1080 .bss Obj/USRCTRL_tempctrl_unit.o + 0x20000234 0x00000001 Zero RW 1127 .bss Obj/USRCTRL_display_logic.o + 0x20000235 0x00000001 Zero RW 1225 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000236 0x00000002 PAD + 0x20000238 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200002be 0x00000002 PAD + 0x200002c0 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x200002f0 0x000001e4 Zero RW 867 COMMON Obj/SYSTEM_uart.o + 0x200004d4 0x00000050 Zero RW 904 COMMON Obj/SYSTEM_touch_key.o + 0x20000524 0x0000002d Zero RW 937 COMMON Obj/SYSTEM_eeprom.o + 0x20000551 0x00000003 PAD + 0x20000554 0x00000050 Zero RW 961 COMMON Obj/SYSTEM_adc.o + 0x200005a4 0x0000001c Zero RW 980 COMMON Obj/SYSTEM_switch_fun.o + 0x200005c0 0x00000040 Zero RW 1049 COMMON Obj/SYSTEM_ht1621.o + 0x20000600 0x0000023c Zero RW 1077 COMMON Obj/SYSTEM_Bootload_fun.o + 0x2000083c 0x00000029 Zero RW 1102 COMMON Obj/USRCTRL_tempctrl_unit.o + 0x20000865 0x00000003 PAD + 0x20000868 0x00000010 Zero RW 1162 COMMON Obj/USRCTRL_debug_unit.o + 0x20000878 0x0000000c Zero RW 1187 COMMON Obj/USRCTRL_myrelay.o + 0x20000884 0x0000037c Zero RW 1272 COMMON FWlib_apt32f102_tkey_f_1_18.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 284 Obj/arch_crt0.o + 56 0 0 0 818 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 868 0 0 0 21133 Obj/FWlib_apt32f102_syscon.o + 1040 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 + 224 0 0 0 13403 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 28182 Obj/FWlib_apt32f102_ept.o + 0 0 0 0 0 Obj/FWlib_apt32f102_rtc.o + 1222 0 0 0 13987 Obj/FWlib_apt32f102_adc.o + 202 0 0 0 16689 Obj/FWlib_apt32f102_ifc.o + 320 0 0 134 9303 Obj/FWlib_apt32f102_tkey_parameter.o + 112 0 0 0 8412 Obj/FWlib_apt32f102_coret.o + 84 14 0 8 14219 Obj/main.o + 568 0 0 0 16809 Obj/mcu_initial.o + 2494 0 0 60 16278 Obj/mcu_interrupt.o + 144 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1134 0 0 604 16630 Obj/SYSTEM_uart.o + 2450 199 6 80 18204 Obj/SYSTEM_touch_key.o + 1578 413 0 45 16271 Obj/SYSTEM_eeprom.o + 580 853 0 84 14434 Obj/SYSTEM_adc.o + 2044 0 0 28 14597 Obj/SYSTEM_switch_fun.o + 972 17 0 240 15606 Obj/SYSTEM_tm1812.o + 2628 10 0 64 17914 Obj/SYSTEM_ht1621.o + 636 0 0 572 17884 Obj/SYSTEM_Bootload_fun.o + 1256 113 0 45 13347 Obj/USRCTRL_tempctrl_unit.o + 1288 126 0 0 12898 Obj/USRCTRL_key_logic.o + 1372 69 0 1 12635 Obj/USRCTRL_display_logic.o + 332 135 0 16 12357 Obj/USRCTRL_debug_unit.o + 564 0 0 12 13878 Obj/USRCTRL_myrelay.o + 1538 44 0 0 14843 Obj/USRCTRL_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 26810 1993 110 1993 446244 Object Totals + 6 3 5 10 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 7396 0 61 893 20058 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 7396 0 61 893 20058 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 + 28 0 0 0 0 _csky_case_shi.o + 26 0 0 0 0 _csky_case_uhi.o + 56 0 0 0 0 _fixunsdfsi.o + 188 0 0 0 0 _div_sf.o + 36 0 0 0 0 _sf_to_df.o + 0 16 0 0 0 _thenan_sf.o + 96 0 0 0 0 _usi_to_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 + 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 + 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 + ------------------------------------------------------------ + 3902 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 + + 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 + 41920 2336 176 2896 474977 Grand Totals + 41920 2336 176 2896 474977 Elf Image Totals + 41920 2336 176 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 44256 ( 43.22kB) +Total RW Size (RW Data + ZI Data) 3072 ( 3.00kB) +Total ROM Size (Code + RO Data + RW Data) 44432 ( 43.39kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V06_20250815.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V06_20250815.asm new file mode 100644 index 0000000..f0a7d1e --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V06_20250815.asm @@ -0,0 +1,14192 @@ + +.//Obj/T1_TC_34650_V06_20250815.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : +void tk_parameter_init(void) +{ +/**************************************************** +//TK parameter define +*****************************************************/ + TK_IO_ENABLE=0x4F01; //TK IO ENABLE Bit16-->Bit0;0=DISABLE 1=ENABLE + 0: 0000010c .long 0x0000010c + 4: 00003016 .long 0x00003016 + + TK_senprd[0]=180; //TCH0 scan period = TCH0 sens + 8: 00003006 .long 0x00003006 + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + c: 00000184 .long 0x00000184 + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 10: 0000300e .long 0x0000300e + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 14: 00002fcc .long 0x00002fcc + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 18: 00000184 .long 0x00000184 + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + TK_senprd[8]=180; //TCH8 scan period = TCH8 sens + 1c: 00002ffe .long 0x00002ffe + TK_senprd[9]=180; //TCH9 scan period = TCH9 sens + 20: 00002ff6 .long 0x00002ff6 + TK_senprd[10]=70; //TCH10 scan period = TCH10 sens + 24: 00000184 .long 0x00000184 + TK_senprd[11]=70; //TCH11 scan period = TCH11 sens + TK_senprd[12]=180; //TCH12 scan period = TCH12 sens + 28: 00000184 .long 0x00000184 + TK_senprd[13]=180; //TCH13 scan period = TCH13 sens + 2c: 00000184 .long 0x00000184 + TK_senprd[14]=180; //TCH14 scan period = TCH14 sens + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 30: 00000184 .long 0x00000184 + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 34: 00000184 .long 0x00000184 + TK_Triggerlevel[0]=100; //TCH0 TK_Trigger level + 38: 00000184 .long 0x00000184 + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 3c: 00000184 .long 0x00000184 + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 40: 00002fee .long 0x00002fee + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 44: 00002fe6 .long 0x00002fe6 + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 48: 00002fde .long 0x00002fde + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + TK_Triggerlevel[8]=100; //TCH8 TK_Trigger level + 4c: 00002fd6 .long 0x00002fd6 + TK_Triggerlevel[9]=100; //TCH9 TK_Trigger level + 50: 00000184 .long 0x00000184 + TK_Triggerlevel[10]=40; //TCH10 TK_Trigger level + 54: 00000184 .long 0x00000184 + TK_Triggerlevel[11]=40; //TCH11 TK_Trigger level + TK_Triggerlevel[12]=100; //TCH12 TK_Trigger level + 58: 00000184 .long 0x00000184 + TK_Triggerlevel[13]=100; //TCH13 TK_Trigger level + 5c: 00000184 .long 0x00000184 + TK_Triggerlevel[14]=100; //TCH14 TK_Trigger level + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 60: 00000184 .long 0x00000184 + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 64: 00000184 .long 0x00000184 + Press_debounce_data=6; //Press debounce 1~10 + 68: 00000184 .long 0x00000184 + Release_debounce_data=5; //Release debounce 1~10 + 6c: 00000184 .long 0x00000184 + 70: 00000184 .long 0x00000184 + Key_mode=1; //Key mode 0=single key 1=multi key + 74: 00000184 .long 0x00000184 + MultiTimes_Filter=40; //MultiTimes Filter,>4 ENABLE <4 DISABLE + 78: 00000184 .long 0x00000184 + 7c: 00002fce .long 0x00002fce + Valid_Key_Num=6; //Valid Key number when touched + 80: 000055cc .long 0x000055cc + Base_Speed=20; //baseline update speed + 84: 00002614 .long 0x00002614 + 88: 00002704 .long 0x00002704 + TK_longpress_time=8; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 8c: 0000276c .long 0x0000276c + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 90: 000027d4 .long 0x000027d4 + 94: 00000184 .long 0x00000184 + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 98: 00002980 .long 0x00002980 + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 9c: 00002d68 .long 0x00002d68 + a0: 00002d98 .long 0x00002d98 + TK_Wakeup_level=50; //touch key Trigger level in sleep + a4: 000029b4 .long 0x000029b4 +/**************************************************** +//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 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + b0: 00002a34 .long 0x00002a34 + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + b4: 00002aa4 .long 0x00002aa4 + TK_icon[0]=6; //TCH0 TK Scan icon range 0~7 + b8: 00002b04 .long 0x00002b04 + bc: 00002b98 .long 0x00002b98 + TK_icon[1]=6; //TCH1 TK Scan icon range 0~7 + TK_icon[2]=6; //TCH2 TK Scan icon range 0~7 + c0: 00000184 .long 0x00000184 + TK_icon[3]=6; //TCH3 TK Scan icon range 0~7 + TK_icon[4]=6; //TCH4 TK Scan icon range 0~7 + c4: 00003026 .long 0x00003026 + TK_icon[5]=6; //TCH5 TK Scan icon range 0~7 + TK_icon[6]=6; //TCH6 TK Scan icon range 0~7 + c8: 00000184 .long 0x00000184 + TK_icon[7]=6; //TCH7 TK Scan icon range 0~7 + TK_icon[8]=6; //TCH8 TK Scan icon range 0~7 + cc: 00002c2c .long 0x00002c2c + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + d0: 00002d14 .long 0x00002d14 + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + d4: 00002dc8 .long 0x00002dc8 + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + TK_icon[14]=6; //TCH14 TK Scan icon range 0~7 + d8: 00002e10 .long 0x00002e10 + TK_icon[15]=6; //TCH15 TK Scan icon range 0~7 + TK_icon[16]=6; //TCH16 TK Scan icon range 0~7 + dc: 00002e7c .long 0x00002e7c + e0: 0000301e .long 0x0000301e + e4: 0000552c .long 0x0000552c + e8: 00002edc .long 0x00002edc + ec: 00000184 .long 0x00000184 + f0: 00002f10 .long 0x00002f10 + f4: 00002f5c .long 0x00002f5c + 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, 0x2444 // 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: 00002444 .long 0x00002444 + 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, 0x59ac // 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: 000059ac .long 0x000059ac + 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, 0x59ac // 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, 0x59ac // 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: 000059ac .long 0x000059ac + 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, 0x59dc // 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: 000059dc .long 0x000059dc + +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, 0x59dc // 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: 000059dc .long 0x000059dc + 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, 0x59dc // 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: 000059dc .long 0x000059dc + +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, 0x59f0 // 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: 000059f0 .long 0x000059f0 + +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, 0x5b6c // 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, 0x200000a8 // 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, 0x20000a00 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a8 // 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: 00005b6c .long 0x00005b6c + 1a7c: 200000a8 .long 0x200000a8 + 1a80: 20000a00 .long 0x20000a00 + 1a84: 200000a8 .long 0x200000a8 + +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.EXI3_Int_Enable: + +00001d60 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 1d60: 3380 movi r3, 128 + 1d62: 436f lsli r3, r3, 15 + 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_DeInit: + +00001ddc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 1ddc: 1075 lrw r3, 0x2000004c // 1e30 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1dde: 1036 lrw r1, 0x20000048 // 1e34 + 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; + 1de0: 1016 lrw r0, 0xffff // 1e38 + GPIOA0->CONLR &= 0xFF000000; + 1de2: 9340 ld.w r2, (r3, 0x0) + 1de4: 9260 ld.w r3, (r2, 0x0) + 1de6: 4b78 lsri r3, r3, 24 + 1de8: 4378 lsli r3, r3, 24 + 1dea: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1dec: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 1dee: 3300 movi r3, 0 + 1df0: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1df2: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 1df4: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 1df6: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 1df8: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 1dfa: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 1dfc: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 1dfe: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 1e00: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 1e02: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 1e04: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 1e06: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 1e08: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 1e0a: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 1e0c: 303f movi r0, 63 + 1e0e: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 1e10: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 1e12: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 1e14: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 1e16: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 1e18: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 1e1a: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 1e1c: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 1e1e: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 1e20: 1047 lrw r2, 0x20000044 // 1e3c + 1e22: 9240 ld.w r2, (r2, 0x0) + 1e24: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 1e26: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 1e28: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 1e2a: 330f movi r3, 15 + 1e2c: b263 st.w r3, (r2, 0xc) +} + 1e2e: 783c jmp r15 + 1e30: 2000004c .long 0x2000004c + 1e34: 20000048 .long 0x20000048 + 1e38: 0000ffff .long 0x0000ffff + 1e3c: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00001e40 : +//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) +{ + 1e40: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e42: 3907 cmphsi r1, 8 +{ + 1e44: 6d03 mov r4, r0 + if(PinNum<8) + 1e46: 0830 bt 0x1ea6 // 1ea6 + { + switch (PinNum) + 1e48: 5903 subi r0, r1, 1 + 1e4a: 3806 cmphsi r0, 7 + 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 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e5a: 3300 movi r3, 0 + 1e5c: 3104 movi r1, 4 + 1e5e: 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) + 1e60: 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< + 1e76: 07f5 br 0x1e60 // 1e60 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e78: 310c movi r1, 12 + 1e7a: 1166 lrw r3, 0xffff0fff // 1f10 + 1e7c: 07f2 br 0x1e60 // 1e60 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e7e: 3110 movi r1, 16 + 1e80: 1165 lrw r3, 0xfff10000 // 1f14 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e82: 2b00 subi r3, 1 + 1e84: 07ee br 0x1e60 // 1e60 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e86: 3114 movi r1, 20 + 1e88: 1164 lrw r3, 0xff100000 // 1f18 + 1e8a: 07fc br 0x1e82 // 1e82 + case 6: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 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e94: 311c movi r1, 28 + 1e96: 1162 lrw r3, 0xfffffff // 1f1c + 1e98: 07e4 br 0x1e60 // 1e60 + case 0: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)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1ea6: 390f cmphsi r1, 16 + 1ea8: 0be4 bt 0x1e70 // 1e70 + switch (PinNum) + 1eaa: 2908 subi r1, 9 + 1eac: 3906 cmphsi r1, 7 + 1eae: 6c07 mov r0, r1 + 1eb0: 0827 bt 0x1efe // 1efe + 1eb2: e3fff725 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1eb6: 1004 .short 0x1004 + 1eb8: 1d1a1613 .long 0x1d1a1613 + 1ebc: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1ebe: 3300 movi r3, 0 + 1ec0: 3104 movi r1, 4 + 1ec2: 2bf0 subi r3, 241 + if (Dir) + 1ec4: 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; + 1ed6: 3108 movi r1, 8 + 1ed8: 106d lrw r3, 0xfffff0ff // 1f0c + 1eda: 07f5 br 0x1ec4 // 1ec4 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1edc: 310c movi r1, 12 + 1ede: 106d lrw r3, 0xffff0fff // 1f10 + 1ee0: 07f2 br 0x1ec4 // 1ec4 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ee2: 3110 movi r1, 16 + 1ee4: 106c lrw r3, 0xfff10000 // 1f14 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ee6: 2b00 subi r3, 1 + 1ee8: 07ee br 0x1ec4 // 1ec4 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1eea: 3114 movi r1, 20 + 1eec: 106b lrw r3, 0xff100000 // 1f18 + 1eee: 07fc br 0x1ee6 // 1ee6 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ef0: 33f1 movi r3, 241 + 1ef2: 3118 movi r1, 24 + 1ef4: 4378 lsli r3, r3, 24 + 1ef6: 07f8 br 0x1ee6 // 1ee6 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1ef8: 311c movi r1, 28 + 1efa: 1069 lrw r3, 0xfffffff // 1f1c + 1efc: 07e4 br 0x1ec4 // 1ec4 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1efe: 3300 movi r3, 0 + 1f00: 3100 movi r1, 0 + 1f02: 2b0f subi r3, 16 + 1f04: 07e0 br 0x1ec4 // 1ec4 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1f0a: 0000 bkpt + 1f0c: fffff0ff .long 0xfffff0ff + 1f10: ffff0fff .long 0xffff0fff + 1f14: fff10000 .long 0xfff10000 + 1f18: ff100000 .long 0xff100000 + 1f1c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f20 : +//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)); + 1f20: 4121 lsli r1, r1, 1 + 1f22: 3203 movi r2, 3 + 1f24: 9068 ld.w r3, (r0, 0x20) + 1f26: 7084 lsl r2, r1 + 1f28: 68c9 andn r3, r2 + 1f2a: 3201 movi r2, 1 + 1f2c: 7084 lsl r2, r1 + 1f2e: 6cc8 or r3, r2 + 1f30: b068 st.w r3, (r0, 0x20) +} + 1f32: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f34 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f34: 4121 lsli r1, r1, 1 + 1f36: 3301 movi r3, 1 + 1f38: 9049 ld.w r2, (r0, 0x24) + 1f3a: 70c4 lsl r3, r1 + 1f3c: 6cc8 or r3, r2 + 1f3e: b069 st.w r3, (r0, 0x24) +} + 1f40: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f44 : +//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) +{ + 1f44: 14c1 push r4 + 1f46: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f48: 3a0f cmphsi r2, 16 + 1f4a: 084f bt 0x1fe8 // 1fe8 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f4c: 6ccb mov r3, r2 + 1f4e: 3b83 bclri r3, 3 + 1f50: 3b40 cmpnei r3, 0 + 1f52: 0813 bt 0x1f78 // 1f78 + { + R_data_temp=0xfffffff0; + 1f54: 2b0f subi r3, 16 + 1f56: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f58: 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) + 1f5a: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f5c: dc6e0003 st.b r3, (r14, 0x3) + 1f60: 1176 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x<8) + 1f62: 0c38 bf 0x1fd2 // 1fd2 + { + 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)) + 1f78: 3b41 cmpnei r3, 1 + 1f7a: 0806 bt 0x1f86 // 1f86 + R_data_temp=0xffffff0f; + 1f7c: 3300 movi r3, 0 + 1f7e: 2bf0 subi r3, 241 + 1f80: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f82: 3304 movi r3, 4 + 1f84: 07eb br 0x1f5a // 1f5a + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f86: 3b42 cmpnei r3, 2 + 1f88: 0805 bt 0x1f92 // 1f92 + R_data_temp=0xfffff0ff; + 1f8a: 116d lrw r3, 0xfffff0ff // 203c + 1f8c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f8e: 3308 movi r3, 8 + 1f90: 07e5 br 0x1f5a // 1f5a + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f92: 3b43 cmpnei r3, 3 + 1f94: 0805 bt 0x1f9e // 1f9e + R_data_temp=0xffff0fff; + 1f96: 116b lrw r3, 0xffff0fff // 2040 + 1f98: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f9a: 330c movi r3, 12 + 1f9c: 07df br 0x1f5a // 1f5a + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f9e: 3b44 cmpnei r3, 4 + 1fa0: 0806 bt 0x1fac // 1fac + R_data_temp=0xfff0ffff; + 1fa2: 1169 lrw r3, 0xfff10000 // 2044 + 1fa4: 2b00 subi r3, 1 + 1fa6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1fa8: 3310 movi r3, 16 + 1faa: 07d8 br 0x1f5a // 1f5a + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1fac: 3b45 cmpnei r3, 5 + 1fae: 0806 bt 0x1fba // 1fba + R_data_temp=0xff0fffff; + 1fb0: 1166 lrw r3, 0xff100000 // 2048 + 1fb2: 2b00 subi r3, 1 + 1fb4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1fb6: 3314 movi r3, 20 + 1fb8: 07d1 br 0x1f5a // 1f5a + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1fba: 3b46 cmpnei r3, 6 + 1fbc: 0807 bt 0x1fca // 1fca + R_data_temp=0xf0ffffff; + 1fbe: 33f1 movi r3, 241 + 1fc0: 4378 lsli r3, r3, 24 + 1fc2: 2b00 subi r3, 1 + 1fc4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1fc6: 3318 movi r3, 24 + 1fc8: 07c9 br 0x1f5a // 1f5a + R_data_temp=0x0fffffff; + 1fca: 1161 lrw r3, 0xfffffff // 204c + 1fcc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1fce: 331c movi r3, 28 + 1fd0: 07c5 br 0x1f5a // 1f5a + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fe4: 1402 addi r14, r14, 8 + 1fe6: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fe8: 3a13 cmphsi r2, 20 + 1fea: 0bfd bt 0x1fe4 // 1fe4 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fec: 3840 cmpnei r0, 0 + 1fee: 0814 bt 0x2016 // 2016 + 1ff0: 3300 movi r3, 0 + 1ff2: 2b0f subi r3, 16 + 1ff4: 60c8 addu r3, r2 + 1ff6: 3b01 cmphsi r3, 2 + 1ff8: 0bf6 bt 0x1fe4 // 1fe4 + if(Selete_EXI_x==16) + 1ffa: 3a50 cmpnei r2, 16 + 1ffc: 106f lrw r3, 0x20000044 // 2038 + 1ffe: 0806 bt 0x200a // 200a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2000: 9340 ld.w r2, (r3, 0x0) + 2002: 9262 ld.w r3, (r2, 0x8) + 2004: 6c4c or r1, r3 + 2006: b222 st.w r1, (r2, 0x8) + 2008: 07ee br 0x1fe4 // 1fe4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 200a: 9360 ld.w r3, (r3, 0x0) + 200c: 9342 ld.w r2, (r3, 0x8) + 200e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2010: 6c48 or r1, r2 + 2012: b322 st.w r1, (r3, 0x8) +} + 2014: 07e8 br 0x1fe4 // 1fe4 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 2016: 3842 cmpnei r0, 2 + 2018: 0be6 bt 0x1fe4 // 1fe4 + 201a: 3300 movi r3, 0 + 201c: 2b11 subi r3, 18 + 201e: 60c8 addu r3, r2 + 2020: 3b01 cmphsi r3, 2 + 2022: 0be1 bt 0x1fe4 // 1fe4 + 2024: 1065 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x==18) + 2026: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2028: 9360 ld.w r3, (r3, 0x0) + 202a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 202c: 0803 bt 0x2032 // 2032 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 202e: 4128 lsli r1, r1, 8 + 2030: 07f0 br 0x2010 // 2010 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2032: 412c lsli r1, r1, 12 + 2034: 07ee br 0x2010 // 2010 + 2036: 0000 bkpt + 2038: 20000044 .long 0x20000044 + 203c: fffff0ff .long 0xfffff0ff + 2040: ffff0fff .long 0xffff0fff + 2044: fff10000 .long 0xfff10000 + 2048: ff100000 .long 0xff100000 + 204c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOB0_EXI_Init: + +00002050 : + 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) +{ + 2050: 14d0 push r15 + switch (EXI_IO) + 2052: 3805 cmphsi r0, 6 + 2054: 080d bt 0x206e // 206e + 2056: 1079 lrw r3, 0x20000048 // 20b8 + 2058: e3fff652 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 205c: 18100a03 .long 0x18100a03 + 2060: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2062: 9340 ld.w r2, (r3, 0x0) + 2064: 9260 ld.w r3, (r2, 0x0) + 2066: 310f movi r1, 15 + 2068: 68c5 andn r3, r1 + 206a: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 206c: b260 st.w r3, (r2, 0x0) + 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; + } +} + 206e: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2070: 9340 ld.w r2, (r3, 0x0) + 2072: 9260 ld.w r3, (r2, 0x0) + 2074: 31f0 movi r1, 240 + 2076: 68c5 andn r3, r1 + 2078: 3ba4 bseti r3, 4 + 207a: 07f9 br 0x206c // 206c + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 207c: 9320 ld.w r1, (r3, 0x0) + 207e: 32f0 movi r2, 240 + 2080: 9160 ld.w r3, (r1, 0x0) + 2082: 4244 lsli r2, r2, 4 + 2084: 68c9 andn r3, r2 + 2086: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2088: b160 st.w r3, (r1, 0x0) +} + 208a: 07f2 br 0x206e // 206e + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 208c: 9320 ld.w r1, (r3, 0x0) + 208e: 32f0 movi r2, 240 + 2090: 9160 ld.w r3, (r1, 0x0) + 2092: 4248 lsli r2, r2, 8 + 2094: 68c9 andn r3, r2 + 2096: 3bac bseti r3, 12 + 2098: 07f8 br 0x2088 // 2088 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 209a: 9320 ld.w r1, (r3, 0x0) + 209c: 32f0 movi r2, 240 + 209e: 9160 ld.w r3, (r1, 0x0) + 20a0: 424c lsli r2, r2, 12 + 20a2: 68c9 andn r3, r2 + 20a4: 3bb0 bseti r3, 16 + 20a6: 07f1 br 0x2088 // 2088 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 20a8: 9320 ld.w r1, (r3, 0x0) + 20aa: 32f0 movi r2, 240 + 20ac: 9160 ld.w r3, (r1, 0x0) + 20ae: 4250 lsli r2, r2, 16 + 20b0: 68c9 andn r3, r2 + 20b2: 3bb4 bseti r3, 20 + 20b4: 07ea br 0x2088 // 2088 + 20b6: 0000 bkpt + 20b8: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +000020bc : +//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; + 20cc: 9045 ld.w r2, (r0, 0x14) + 20ce: 3301 movi r3, 1 + 20d0: 7085 lsr r2, r1 + 20d2: 688c and r2, r3 + { + if (dat==1) + 20d4: 3a40 cmpnei r2, 0 + 20d6: 70c4 lsl r3, r1 + 20d8: 0c03 bf 0x20de // 20de + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000020e2 : +/*************************************************************/ +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); + 20f4: 1064 lrw r3, 0x20000014 // 2104 + 20f6: 9340 ld.w r2, (r3, 0x0) + 20f8: 9261 ld.w r3, (r2, 0x4) + 20fa: 3bac bseti r3, 12 + 20fc: 3bae bseti r3, 14 + 20fe: b261 st.w r3, (r2, 0x4) +} + 2100: 783c jmp r15 + 2102: 0000 bkpt + 2104: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002108 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2108: 1063 lrw r3, 0x20000010 // 2114 + 210a: 9360 ld.w r3, (r3, 0x0) + 210c: 9340 ld.w r2, (r3, 0x0) + 210e: 6c08 or r0, r2 + 2110: b300 st.w r0, (r3, 0x0) +} + 2112: 783c jmp r15 + 2114: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002118 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2118: 3300 movi r3, 0 + 211a: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 211c: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 211e: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2120: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2122: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2124: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2126: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2128: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 212a: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 212c: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 212e: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 2130: b06d st.w r3, (r0, 0x34) +} + 2132: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002134 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2134: 9060 ld.w r3, (r0, 0x0) + 2136: 3ba0 bseti r3, 0 + 2138: b060 st.w r3, (r0, 0x0) +} + 213a: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 213c: 9060 ld.w r3, (r0, 0x0) + 213e: 3bac bseti r3, 12 + 2140: 3bae bseti r3, 14 + 2142: b060 st.w r3, (r0, 0x0) +} + 2144: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002146 : +//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) +{ + 2146: 14c3 push r4-r6 + 2148: 98a4 ld.w r5, (r14, 0x10) + 214a: 6d97 mov r6, r5 + 214c: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 214e: 6d18 or r4, r6 + 2150: 6cd0 or r3, r4 + 2152: 90a1 ld.w r5, (r0, 0x4) + 2154: 6c4c or r1, r3 + 2156: 6c54 or r1, r5 + 2158: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 215a: b042 st.w r2, (r0, 0x8) +} + 215c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000215e : +//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) +{ + 215e: 14c4 push r4-r7 + 2160: 1421 subi r14, r14, 4 + 2162: 9885 ld.w r4, (r14, 0x14) + 2164: 6dd3 mov r7, r4 + 2166: 9886 ld.w r4, (r14, 0x18) + 2168: b880 st.w r4, (r14, 0x0) + 216a: 9887 ld.w r4, (r14, 0x1c) + 216c: 6d93 mov r6, r4 + 216e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 2170: 6d58 or r5, r6 + 2172: 98c0 ld.w r6, (r14, 0x0) + 2174: 6d58 or r5, r6 + 2176: 6d5c or r5, r7 + 2178: 6cd4 or r3, r5 + 217a: 6c8c or r2, r3 + 217c: 9081 ld.w r4, (r0, 0x4) + 217e: 6c48 or r1, r2 + 2180: 6d04 or r4, r1 + 2182: 6d9f mov r6, r7 + 2184: b081 st.w r4, (r0, 0x4) +} + 2186: 1401 addi r14, r14, 4 + 2188: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000218a : +//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; + 218a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 218c: b044 st.w r2, (r0, 0x10) +} + 218e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00002190 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 2190: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 2192: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2194: 0c04 bf 0x219c // 219c + BTx->IMCR |= BT_IMSCR_X; + 2196: 6c8c or r2, r3 + 2198: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 219a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 219c: 68c9 andn r3, r2 + 219e: b06b st.w r3, (r0, 0x2c) +} + 21a0: 07fd br 0x219a // 219a + +Disassembly of section .text.BT1_INT_ENABLE: + +000021a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 21a4: 3380 movi r3, 128 + 21a6: 4376 lsli r3, r3, 22 + 21a8: 1042 lrw r2, 0xe000e100 // 21b0 + 21aa: b260 st.w r3, (r2, 0x0) +} + 21ac: 783c jmp r15 + 21ae: 0000 bkpt + 21b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +000021b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 21b4: 1065 lrw r3, 0x20000040 // 21c8 + 21b6: 3200 movi r2, 0 + 21b8: 9360 ld.w r3, (r3, 0x0) + 21ba: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 21bc: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 21be: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 21c0: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 21c2: b344 st.w r2, (r3, 0x10) +} + 21c4: 783c jmp r15 + 21c6: 0000 bkpt + 21c8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000021cc : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 21cc: 1065 lrw r3, 0x2000003c // 21e0 + 21ce: 3200 movi r2, 0 + 21d0: 9360 ld.w r3, (r3, 0x0) + 21d2: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 21d4: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 21d6: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 21d8: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 21da: b344 st.w r2, (r3, 0x10) +} + 21dc: 783c jmp r15 + 21de: 0000 bkpt + 21e0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000021e4 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 21e4: 1065 lrw r3, 0x20000038 // 21f8 + 21e6: 3200 movi r2, 0 + 21e8: 9360 ld.w r3, (r3, 0x0) + 21ea: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 21ec: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 21ee: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 21f0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 21f2: b344 st.w r2, (r3, 0x10) +} + 21f4: 783c jmp r15 + 21f6: 0000 bkpt + 21f8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_Int_Enable: + +000021fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_Int_Enable(void) +{ + UART0->ISR=0x0F; //clear UART0 INT status + 21fc: 1065 lrw r3, 0x20000040 // 2210 + 21fe: 320f movi r2, 15 + 2200: 9360 ld.w r3, (r3, 0x0) + 2202: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2204: 3380 movi r3, 128 + 2206: 4366 lsli r3, r3, 6 + 2208: 1043 lrw r2, 0xe000e100 // 2214 + 220a: b260 st.w r3, (r2, 0x0) +} + 220c: 783c jmp r15 + 220e: 0000 bkpt + 2210: 20000040 .long 0x20000040 + 2214: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2218: 1065 lrw r3, 0x20000038 // 222c + 221a: 320f movi r2, 15 + 221c: 9360 ld.w r3, (r3, 0x0) + 221e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2220: 3380 movi r3, 128 + 2222: 4368 lsli r3, r3, 8 + 2224: 1043 lrw r2, 0xe000e100 // 2230 + 2226: b260 st.w r3, (r2, 0x0) +} + 2228: 783c jmp r15 + 222a: 0000 bkpt + 222c: 20000038 .long 0x20000038 + 2230: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002234 : +//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) + 2234: 3840 cmpnei r0, 0 + 2236: 0821 bt 0x2278 // 2278 + { + if(UART_IO_G==0) + 2238: 3940 cmpnei r1, 0 + 223a: 080a bt 0x224e // 224e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 223c: 1177 lrw r3, 0x2000004c // 2318 + 223e: 31ff movi r1, 255 + 2240: 9340 ld.w r2, (r3, 0x0) + 2242: 9260 ld.w r3, (r2, 0x0) + 2244: 68c5 andn r3, r1 + 2246: 3ba2 bseti r3, 2 + 2248: 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 + 224a: b260 st.w r3, (r2, 0x0) + 224c: 0415 br 0x2276 // 2276 + else if(UART_IO_G==1) + 224e: 3941 cmpnei r1, 1 + 2250: 0813 bt 0x2276 // 2276 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2252: 1172 lrw r3, 0x2000004c // 2318 + 2254: 31f0 movi r1, 240 + 2256: 9340 ld.w r2, (r3, 0x0) + 2258: 9260 ld.w r3, (r2, 0x0) + 225a: 4130 lsli r1, r1, 16 + 225c: 68c5 andn r3, r1 + 225e: 31e0 movi r1, 224 + 2260: 412f lsli r1, r1, 15 + 2262: 6cc4 or r3, r1 + 2264: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2266: 31f0 movi r1, 240 + 2268: 9261 ld.w r3, (r2, 0x4) + 226a: 412c lsli r1, r1, 12 + 226c: 68c5 andn r3, r1 + 226e: 31e0 movi r1, 224 + 2270: 412b lsli r1, r1, 11 + 2272: 6cc4 or r3, r1 + 2274: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2276: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2278: 3841 cmpnei r0, 1 + 227a: 082d bt 0x22d4 // 22d4 + if(UART_IO_G==0) + 227c: 3940 cmpnei r1, 0 + 227e: 0814 bt 0x22a6 // 22a6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2280: 1167 lrw r3, 0x20000048 // 231c + 2282: 310f movi r1, 15 + 2284: 9340 ld.w r2, (r3, 0x0) + 2286: 9260 ld.w r3, (r2, 0x0) + 2288: 68c5 andn r3, r1 + 228a: 3107 movi r1, 7 + 228c: 6cc4 or r3, r1 + 228e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2290: 32f0 movi r2, 240 + 2292: 1162 lrw r3, 0x2000004c // 2318 + 2294: 4250 lsli r2, r2, 16 + 2296: 9320 ld.w r1, (r3, 0x0) + 2298: 9161 ld.w r3, (r1, 0x4) + 229a: 68c9 andn r3, r2 + 229c: 32e0 movi r2, 224 + 229e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 22a0: 6cc8 or r3, r2 + 22a2: b161 st.w r3, (r1, 0x4) + 22a4: 07e9 br 0x2276 // 2276 + else if(UART_IO_G==1) + 22a6: 3941 cmpnei r1, 1 + 22a8: 080c bt 0x22c0 // 22c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 22aa: 107c lrw r3, 0x2000004c // 2318 + 22ac: 32ff movi r2, 255 + 22ae: 9320 ld.w r1, (r3, 0x0) + 22b0: 424c lsli r2, r2, 12 + 22b2: 9160 ld.w r3, (r1, 0x0) + 22b4: 68c9 andn r3, r2 + 22b6: 32ee movi r2, 238 + 22b8: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 22ba: 6cc8 or r3, r2 + 22bc: b160 st.w r3, (r1, 0x0) +} + 22be: 07dc br 0x2276 // 2276 + else if(UART_IO_G==2) + 22c0: 3942 cmpnei r1, 2 + 22c2: 0bda bt 0x2276 // 2276 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 22c4: 1075 lrw r3, 0x2000004c // 2318 + 22c6: 32ee movi r2, 238 + 22c8: 9320 ld.w r1, (r3, 0x0) + 22ca: 9161 ld.w r3, (r1, 0x4) + 22cc: 4368 lsli r3, r3, 8 + 22ce: 4b68 lsri r3, r3, 8 + 22d0: 4257 lsli r2, r2, 23 + 22d2: 07e7 br 0x22a0 // 22a0 + if (IO_UART_NUM==IO_UART2) + 22d4: 3842 cmpnei r0, 2 + 22d6: 0bd0 bt 0x2276 // 2276 + if(UART_IO_G==0) + 22d8: 3940 cmpnei r1, 0 + 22da: 0809 bt 0x22ec // 22ec + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 22dc: 106f lrw r3, 0x2000004c // 2318 + 22de: 31ff movi r1, 255 + 22e0: 9340 ld.w r2, (r3, 0x0) + 22e2: 9260 ld.w r3, (r2, 0x0) + 22e4: 68c5 andn r3, r1 + 22e6: 3177 movi r1, 119 + 22e8: 6cc4 or r3, r1 + 22ea: 07b0 br 0x224a // 224a + else if(UART_IO_G==1) + 22ec: 3941 cmpnei r1, 1 + 22ee: 0809 bt 0x2300 // 2300 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 22f0: 106a lrw r3, 0x2000004c // 2318 + 22f2: 32ee movi r2, 238 + 22f4: 9320 ld.w r1, (r3, 0x0) + 22f6: 9160 ld.w r3, (r1, 0x0) + 22f8: 4368 lsli r3, r3, 8 + 22fa: 4b68 lsri r3, r3, 8 + 22fc: 4257 lsli r2, r2, 23 + 22fe: 07de br 0x22ba // 22ba + else if(UART_IO_G==2) + 2300: 3942 cmpnei r1, 2 + 2302: 0bba bt 0x2276 // 2276 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2304: 1066 lrw r3, 0x20000048 // 231c + 2306: 32ff movi r2, 255 + 2308: 9320 ld.w r1, (r3, 0x0) + 230a: 4250 lsli r2, r2, 16 + 230c: 9160 ld.w r3, (r1, 0x0) + 230e: 68c9 andn r3, r2 + 2310: 32cc movi r2, 204 + 2312: 424f lsli r2, r2, 15 + 2314: 07d3 br 0x22ba // 22ba + 2316: 0000 bkpt + 2318: 2000004c .long 0x2000004c + 231c: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002320 : +//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); + 2320: 1063 lrw r3, 0x8000f // 232c + 2322: 6c8c or r2, r3 + 2324: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2326: b024 st.w r1, (r0, 0x10) +} + 2328: 783c jmp r15 + 232a: 0000 bkpt + 232c: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002330 : +//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) +{ + 2330: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2332: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2334: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2336: 5b85 subu r4, r3, r1 + 2338: 6490 cmphs r4, r2 + 233a: 0c02 bf 0x233e // 233e + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 233c: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 233e: 8380 ld.b r4, (r3, 0x0) + 2340: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 2342: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2344: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2346: 3c40 cmpnei r4, 0 + 2348: 0bfd bt 0x2342 // 2342 + 234a: 2300 addi r3, 1 + 234c: 07f5 br 0x2336 // 2336 + +Disassembly of section .text.EPT_Stop: + +00002350 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2350: 1068 lrw r3, 0x20000020 // 2370 + 2352: 3280 movi r2, 128 + 2354: 9360 ld.w r3, (r3, 0x0) + 2356: 608c addu r2, r3 + 2358: 1027 lrw r1, 0xa55ac73a // 2374 + 235a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 235c: 9341 ld.w r2, (r3, 0x4) + 235e: 31fe movi r1, 254 + 2360: 6884 and r2, r1 + 2362: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2364: 3101 movi r1, 1 + 2366: 9341 ld.w r2, (r3, 0x4) + 2368: 6884 and r2, r1 + 236a: 3a40 cmpnei r2, 0 + 236c: 0bfd bt 0x2366 // 2366 +} + 236e: 783c jmp r15 + 2370: 20000020 .long 0x20000020 + 2374: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00002378 : + 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) +{ + 2378: 14c4 push r4-r7 + 237a: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 237c: 1165 lrw r3, 0x20000060 // 2410 + 237e: 1186 lrw r4, 0x5a5a5a5a // 2414 + 2380: 9360 ld.w r3, (r3, 0x0) + 2382: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2384: 3407 movi r4, 7 + 2386: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2388: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 238a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 238c: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 238e: 9384 ld.w r4, (r3, 0x10) + 2390: 3c40 cmpnei r4, 0 + 2392: 0bfe bt 0x238e // 238e + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2394: 2102 addi r1, 3 + 2396: 4922 lsri r1, r1, 2 + 2398: 4122 lsli r1, r1, 2 + 239a: 6048 addu r1, r2 + 239c: b820 st.w r1, (r14, 0x0) + 239e: 5829 subu r1, r0, r2 + 23a0: b821 st.w r1, (r14, 0x4) + 23a2: 9820 ld.w r1, (r14, 0x0) + 23a4: 644a cmpne r2, r1 + 23a6: 0826 bt 0x23f2 // 23f2 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 23a8: 3106 movi r1, 6 + SetUserKey; + 23aa: 105b lrw r2, 0x5a5a5a5a // 2414 + 23ac: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 23ae: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 23b0: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 23b2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23b4: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 23b6: 9324 ld.w r1, (r3, 0x10) + 23b8: 3940 cmpnei r1, 0 + 23ba: 0bfe bt 0x23b6 // 23b6 + //Perform pre-programming 4 + SetUserKey; + 23bc: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 23be: 3201 movi r2, 1 + 23c0: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 23c2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23c4: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 23c6: 934a ld.w r2, (r3, 0x28) + 23c8: 3a44 cmpnei r2, 4 + 23ca: 0bfe bt 0x23c6 // 23c6 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 23cc: 3102 movi r1, 2 + SetUserKey; + 23ce: 1052 lrw r2, 0x5a5a5a5a // 2414 + 23d0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 23d2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 23d4: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 23d6: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23d8: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 23da: 932a ld.w r1, (r3, 0x28) + 23dc: 3941 cmpnei r1, 1 + 23de: 0bfe bt 0x23da // 23da + //Write page cache data to flash memory 6 + SetUserKey; + 23e0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 23e2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 23e4: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23e6: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 23e8: 934a ld.w r2, (r3, 0x28) + 23ea: 3a42 cmpnei r2, 2 + 23ec: 0bfe bt 0x23e8 // 23e8 +} + 23ee: 1402 addi r14, r14, 8 + 23f0: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 23f2: 82e0 ld.b r7, (r2, 0x0) + 23f4: 8281 ld.b r4, (r2, 0x1) + 23f6: 4488 lsli r4, r4, 8 + 23f8: 8222 ld.b r1, (r2, 0x2) + 23fa: 611c addu r4, r7 + 23fc: 82a3 ld.b r5, (r2, 0x3) + 23fe: 4130 lsli r1, r1, 16 + 2400: 98c1 ld.w r6, (r14, 0x4) + 2402: 6050 addu r1, r4 + 2404: 45b8 lsli r5, r5, 24 + 2406: 6188 addu r6, r2 + 2408: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 240a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 240c: 2203 addi r2, 4 + 240e: 07ca br 0x23a2 // 23a2 + 2410: 20000060 .long 0x20000060 + 2414: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002418 : +//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) +{ + 2418: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2424: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2426: 3b40 cmpnei r3, 0 + 2428: 0c06 bf 0x2434 // 2434 + 242a: 6d0f mov r4, r3 + 242c: 6914 and r4, r5 + 242e: 3c40 cmpnei r4, 0 + 2430: 0802 bt 0x2434 // 2434 + RdStartAdd +=4; + 2432: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2434: 6d0f mov r4, r3 + 2436: 6914 and r4, r5 + 2438: 6100 addu r4, r0 + 243a: 8480 ld.b r4, (r4, 0x0) + 243c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +00002444
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2444: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2446: e00000a5 bsr 0x2590 // 2590 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_eeprom.dev_addr); + 244a: 106b lrw r3, 0x200003ec // 2474 + 244c: 8340 ld.b r2, (r3, 0x0) + 244e: 102b lrw r1, 0x5af0 // 2478 + 2450: 3000 movi r0, 0 + 2452: e00008b7 bsr 0x35c0 // 35c0 + + TemCtrl_Init(); + 2456: e0000b23 bsr 0x3a9c // 3a9c + Debug_Init(); + 245a: e0000a2f bsr 0x38b8 // 38b8 + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 245e: e3fffc03 bsr 0x1c64 // 1c64 + + UART2_TASK(); + 2462: e0000729 bsr 0x32b4 // 32b4 + + TemCtrl_Pro(); + 2466: e0000bf9 bsr 0x3c58 // 3c58 + + DisPlay_Task(); + 246a: e0000a37 bsr 0x38d8 // 38d8 + + BUS485Send_Task(); + 246e: e0000841 bsr 0x34f0 // 34f0 + 2472: 07f6 br 0x245e // 245e + 2474: 200003ec .long 0x200003ec + 2478: 00005af0 .long 0x00005af0 + +Disassembly of section .text.delay_nms: + +0000247c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 247c: 14d0 push r15 + 247e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2480: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2482: 3300 movi r3, 0 + j = 50* t; + 2484: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2486: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2488: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 248a: b860 st.w r3, (r14, 0x0) + 248c: 9840 ld.w r2, (r14, 0x0) + 248e: 9861 ld.w r3, (r14, 0x4) + 2490: 64c8 cmphs r2, r3 + 2492: 0c03 bf 0x2498 // 2498 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2494: 1403 addi r14, r14, 12 + 2496: 1490 pop r15 + k++; + 2498: 9862 ld.w r3, (r14, 0x8) + 249a: 2300 addi r3, 1 + 249c: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 249e: e3fffbe3 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 24a2: 9860 ld.w r3, (r14, 0x0) + 24a4: 2300 addi r3, 1 + 24a6: 07f2 br 0x248a // 248a + +Disassembly of section .text.delay_nus: + +000024a8 : +void delay_nus(unsigned int t) +{ + 24a8: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 24aa: 3300 movi r3, 0 + 24ac: b862 st.w r3, (r14, 0x8) + j = 1* t; + 24ae: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 24b0: b860 st.w r3, (r14, 0x0) + 24b2: 9840 ld.w r2, (r14, 0x0) + 24b4: 9861 ld.w r3, (r14, 0x4) + 24b6: 64c8 cmphs r2, r3 + 24b8: 0c03 bf 0x24be // 24be + { + k++; + } +} + 24ba: 1403 addi r14, r14, 12 + 24bc: 783c jmp r15 + k++; + 24be: 9862 ld.w r3, (r14, 0x8) + 24c0: 2300 addi r3, 1 + 24c2: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 24c4: 9860 ld.w r3, (r14, 0x0) + 24c6: 2300 addi r3, 1 + 24c8: 07f4 br 0x24b0 // 24b0 + +Disassembly of section .text.BT_CONFIG: + +000024cc : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 24cc: 14d2 push r4-r5, r15 + 24ce: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 24d0: 1095 lrw r4, 0x20000008 // 2524 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24d2: 3500 movi r5, 0 + BT_DeInit(BT1); + 24d4: 9400 ld.w r0, (r4, 0x0) + 24d6: e3fffe21 bsr 0x2118 // 2118 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24da: 9400 ld.w r0, (r4, 0x0) + 24dc: b8a1 st.w r5, (r14, 0x4) + 24de: b8a0 st.w r5, (r14, 0x0) + 24e0: 3308 movi r3, 8 + 24e2: 3200 movi r2, 0 + 24e4: 3101 movi r1, 1 + 24e6: e3fffe30 bsr 0x2146 // 2146 + 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); + 24ea: 3380 movi r3, 128 + 24ec: 4363 lsli r3, r3, 3 + 24ee: b861 st.w r3, (r14, 0x4) + 24f0: 9400 ld.w r0, (r4, 0x0) + 24f2: 3300 movi r3, 0 + 24f4: b8a3 st.w r5, (r14, 0xc) + 24f6: b8a2 st.w r5, (r14, 0x8) + 24f8: b8a0 st.w r5, (r14, 0x0) + 24fa: 3200 movi r2, 0 + 24fc: 3180 movi r1, 128 + 24fe: e3fffe30 bsr 0x215e // 215e + BT_Period_CMP_Write(BT1,4780,1); + 2502: 3201 movi r2, 1 + 2504: 1029 lrw r1, 0x12ac // 2528 + 2506: 9400 ld.w r0, (r4, 0x0) + 2508: e3fffe41 bsr 0x218a // 218a + BT_Start(BT1); + 250c: 9400 ld.w r0, (r4, 0x0) + 250e: e3fffe13 bsr 0x2134 // 2134 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2512: 9400 ld.w r0, (r4, 0x0) + 2514: 3202 movi r2, 2 + 2516: 3101 movi r1, 1 + 2518: e3fffe3c bsr 0x2190 // 2190 + BT1_INT_ENABLE(); + 251c: e3fffe44 bsr 0x21a4 // 21a4 + +} + 2520: 1404 addi r14, r14, 16 + 2522: 1492 pop r4-r5, r15 + 2524: 20000008 .long 0x20000008 + 2528: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +0000252c : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 252c: 14d0 push r15 + 252e: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2530: e3fffae6 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2534: 3101 movi r1, 1 + 2536: 3001 movi r0, 1 + 2538: e3fffb08 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 + 253c: 3000 movi r0, 0 + 253e: e3fffb61 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 + 2542: 3180 movi r1, 128 + 2544: 3308 movi r3, 8 + 2546: 3200 movi r2, 0 + 2548: 4121 lsli r1, r1, 1 + 254a: 3002 movi r0, 2 + 254c: e3fffb16 bsr 0x1b78 // 1b78 +//------------ WDT FUNTION --------------------------------/ + SYSCON_IWDCNT_Config(IWDT_TIME_1S,IWDT_INTW_DIV_7); //WDT TIME 1s,WDT alarm interrupt time=1s-1s*1/8=0.875S + 2550: 30c0 movi r0, 192 + 2552: 3118 movi r1, 24 + 2554: 4002 lsli r0, r0, 2 + 2556: e3fffb91 bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 255a: 3001 movi r0, 1 + 255c: e3fffb66 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2560: e3fffb82 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2564: e3fffbb4 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 + 2568: 3340 movi r3, 64 + 256a: b860 st.w r3, (r14, 0x0) + 256c: 31c0 movi r1, 192 + 256e: 3380 movi r3, 128 + 2570: 4364 lsli r3, r3, 4 + 2572: 3200 movi r2, 0 + 2574: 4123 lsli r1, r1, 3 + 2576: 3000 movi r0, 0 + 2578: e3fffb8c bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 257c: e3fffb9a bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2580: e3fffbf8 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 + 2584: 3000 movi r0, 0 + 2586: e00018d1 bsr 0x5728 // 5728 + +} + 258a: 1401 addi r14, r14, 4 + 258c: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002590 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2590: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2592: 107c lrw r3, 0x2000005c // 2600 + Sys_RSR = 0x00000000; + 2594: 105c lrw r2, 0x200000ac // 2604 + 2596: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2598: 9360 ld.w r3, (r3, 0x0) + 259a: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 259c: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 259e: 600c addu r0, r3 + 25a0: 9004 ld.w r0, (r0, 0x10) + 25a2: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 25a4: 1059 lrw r2, 0x200000a8 // 2608 + 25a6: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 25a8: 3180 movi r1, 128 + 25aa: 4121 lsli r1, r1, 1 + 25ac: 604c addu r1, r3 + 25ae: 9120 ld.w r1, (r1, 0x0) + 25b0: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 25b2: 1057 lrw r2, 0xfffffff // 260c + 25b4: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 25b6: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 25b8: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 25ba: 934c ld.w r2, (r3, 0x30) + 25bc: 6884 and r2, r1 + 25be: 3a40 cmpnei r2, 0 + 25c0: 0ffd bf 0x25ba // 25ba +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 25c2: e3ffffb5 bsr 0x252c // 252c + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 25c6: e000056b bsr 0x309c // 309c + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 25ca: e3fffbdf bsr 0x1d88 // 1d88 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 25ce: 3101 movi r1, 1 + 25d0: 300f movi r0, 15 + 25d2: e3fffbed bsr 0x1dac // 1dac + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 25d6: 3101 movi r1, 1 + 25d8: 300e movi r0, 14 + 25da: e3fffbe9 bsr 0x1dac // 1dac + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 25de: 3101 movi r1, 1 + 25e0: 3016 movi r0, 22 + 25e2: e3fffbe5 bsr 0x1dac // 1dac + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 25e6: e3fffbfb bsr 0x1ddc // 1ddc +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + + BT_CONFIG(); //BT initial + 25ea: e3ffff71 bsr 0x24cc // 24cc + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 25ee: 1029 lrw r1, 0x41d8 // 2610 + 25f0: 3002 movi r0, 2 + 25f2: e000055b bsr 0x30a8 // 30a8 + UARTx_Init(UART_1,NULL); //通讯串口 + 25f6: 3100 movi r1, 0 + 25f8: 3001 movi r0, 1 + 25fa: e0000557 bsr 0x30a8 // 30a8 + +} + 25fe: 1490 pop r15 + 2600: 2000005c .long 0x2000005c + 2604: 200000ac .long 0x200000ac + 2608: 200000a8 .long 0x200000a8 + 260c: 0fffffff .long 0x0fffffff + 2610: 000041d8 .long 0x000041d8 + +Disassembly of section .text.SYSCONIntHandler: + +00002614 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2614: 1460 nie + 2616: 1462 ipush + // ISR content ... + nop; + 2618: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 261a: 117a lrw r3, 0x2000005c // 2700 + 261c: 3280 movi r2, 128 + 261e: 9360 ld.w r3, (r3, 0x0) + 2620: 60c8 addu r3, r2 + 2622: 9323 ld.w r1, (r3, 0xc) + 2624: 3001 movi r0, 1 + 2626: 6840 and r1, r0 + 2628: 3940 cmpnei r1, 0 + 262a: 0c04 bf 0x2632 // 2632 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 262c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 262e: 1463 ipop + 2630: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2632: 9323 ld.w r1, (r3, 0xc) + 2634: 3002 movi r0, 2 + 2636: 6840 and r1, r0 + 2638: 3940 cmpnei r1, 0 + 263a: 0bf9 bt 0x262c // 262c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 263c: 9323 ld.w r1, (r3, 0xc) + 263e: 3008 movi r0, 8 + 2640: 6840 and r1, r0 + 2642: 3940 cmpnei r1, 0 + 2644: 0bf4 bt 0x262c // 262c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2646: 9323 ld.w r1, (r3, 0xc) + 2648: 3010 movi r0, 16 + 264a: 6840 and r1, r0 + 264c: 3940 cmpnei r1, 0 + 264e: 0bef bt 0x262c // 262c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2650: 9323 ld.w r1, (r3, 0xc) + 2652: 6848 and r1, r2 + 2654: 3940 cmpnei r1, 0 + 2656: 0c03 bf 0x265c // 265c + SYSCON->ICR = CMD_ERR_ST; + 2658: b341 st.w r2, (r3, 0x4) +} + 265a: 07ea br 0x262e // 262e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 265c: 3280 movi r2, 128 + 265e: 9323 ld.w r1, (r3, 0xc) + 2660: 4241 lsli r2, r2, 1 + 2662: 6848 and r1, r2 + 2664: 3940 cmpnei r1, 0 + 2666: 0bf9 bt 0x2658 // 2658 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2668: 3280 movi r2, 128 + 266a: 9323 ld.w r1, (r3, 0xc) + 266c: 4242 lsli r2, r2, 2 + 266e: 6848 and r1, r2 + 2670: 3940 cmpnei r1, 0 + 2672: 0bf3 bt 0x2658 // 2658 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2674: 3280 movi r2, 128 + 2676: 9323 ld.w r1, (r3, 0xc) + 2678: 4243 lsli r2, r2, 3 + 267a: 6848 and r1, r2 + 267c: 3940 cmpnei r1, 0 + 267e: 0bed bt 0x2658 // 2658 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2680: 3280 movi r2, 128 + 2682: 9323 ld.w r1, (r3, 0xc) + 2684: 4244 lsli r2, r2, 4 + 2686: 6848 and r1, r2 + 2688: 3940 cmpnei r1, 0 + 268a: 0c03 bf 0x2690 // 2690 + nop; + 268c: 6c03 mov r0, r0 + 268e: 07e5 br 0x2658 // 2658 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 2690: 3280 movi r2, 128 + 2692: 9323 ld.w r1, (r3, 0xc) + 2694: 4245 lsli r2, r2, 5 + 2696: 6848 and r1, r2 + 2698: 3940 cmpnei r1, 0 + 269a: 0bdf bt 0x2658 // 2658 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 269c: 3280 movi r2, 128 + 269e: 9323 ld.w r1, (r3, 0xc) + 26a0: 4246 lsli r2, r2, 6 + 26a2: 6848 and r1, r2 + 26a4: 3940 cmpnei r1, 0 + 26a6: 0bd9 bt 0x2658 // 2658 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 26a8: 3280 movi r2, 128 + 26aa: 9323 ld.w r1, (r3, 0xc) + 26ac: 4247 lsli r2, r2, 7 + 26ae: 6848 and r1, r2 + 26b0: 3940 cmpnei r1, 0 + 26b2: 0bd3 bt 0x2658 // 2658 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 26b4: 3280 movi r2, 128 + 26b6: 9323 ld.w r1, (r3, 0xc) + 26b8: 424b lsli r2, r2, 11 + 26ba: 6848 and r1, r2 + 26bc: 3940 cmpnei r1, 0 + 26be: 0bcd bt 0x2658 // 2658 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 26c0: 3280 movi r2, 128 + 26c2: 9323 ld.w r1, (r3, 0xc) + 26c4: 424c lsli r2, r2, 12 + 26c6: 6848 and r1, r2 + 26c8: 3940 cmpnei r1, 0 + 26ca: 0bc7 bt 0x2658 // 2658 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 26cc: 3280 movi r2, 128 + 26ce: 9323 ld.w r1, (r3, 0xc) + 26d0: 424d lsli r2, r2, 13 + 26d2: 6848 and r1, r2 + 26d4: 3940 cmpnei r1, 0 + 26d6: 0bc1 bt 0x2658 // 2658 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 26d8: 3280 movi r2, 128 + 26da: 9323 ld.w r1, (r3, 0xc) + 26dc: 424e lsli r2, r2, 14 + 26de: 6848 and r1, r2 + 26e0: 3940 cmpnei r1, 0 + 26e2: 0bbb bt 0x2658 // 2658 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 26e4: 3280 movi r2, 128 + 26e6: 9323 ld.w r1, (r3, 0xc) + 26e8: 424f lsli r2, r2, 15 + 26ea: 6848 and r1, r2 + 26ec: 3940 cmpnei r1, 0 + 26ee: 0bb5 bt 0x2658 // 2658 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 26f0: 3280 movi r2, 128 + 26f2: 9323 ld.w r1, (r3, 0xc) + 26f4: 4256 lsli r2, r2, 22 + 26f6: 6848 and r1, r2 + 26f8: 3940 cmpnei r1, 0 + 26fa: 0baf bt 0x2658 // 2658 + 26fc: 0799 br 0x262e // 262e + 26fe: 0000 bkpt + 2700: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002704 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2704: 1460 nie + 2706: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2708: 1078 lrw r3, 0x20000060 // 2768 + 270a: 3101 movi r1, 1 + 270c: 9360 ld.w r3, (r3, 0x0) + 270e: 934b ld.w r2, (r3, 0x2c) + 2710: 6884 and r2, r1 + 2712: 3a40 cmpnei r2, 0 + 2714: 0c04 bf 0x271c // 271c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2716: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2718: 1463 ipop + 271a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 271c: 934b ld.w r2, (r3, 0x2c) + 271e: 3102 movi r1, 2 + 2720: 6884 and r2, r1 + 2722: 3a40 cmpnei r2, 0 + 2724: 0bf9 bt 0x2716 // 2716 + else if(IFC->MISR&PEP_END_INT) + 2726: 934b ld.w r2, (r3, 0x2c) + 2728: 3104 movi r1, 4 + 272a: 6884 and r2, r1 + 272c: 3a40 cmpnei r2, 0 + 272e: 0bf4 bt 0x2716 // 2716 + else if(IFC->MISR&PROT_ERR_INT) + 2730: 3280 movi r2, 128 + 2732: 932b ld.w r1, (r3, 0x2c) + 2734: 4245 lsli r2, r2, 5 + 2736: 6848 and r1, r2 + 2738: 3940 cmpnei r1, 0 + 273a: 0c03 bf 0x2740 // 2740 + IFC->ICR=OVW_ERR_INT; + 273c: b34c st.w r2, (r3, 0x30) +} + 273e: 07ed br 0x2718 // 2718 + else if(IFC->MISR&UDEF_ERR_INT) + 2740: 3280 movi r2, 128 + 2742: 932b ld.w r1, (r3, 0x2c) + 2744: 4246 lsli r2, r2, 6 + 2746: 6848 and r1, r2 + 2748: 3940 cmpnei r1, 0 + 274a: 0bf9 bt 0x273c // 273c + else if(IFC->MISR&ADDR_ERR_INT) + 274c: 3280 movi r2, 128 + 274e: 932b ld.w r1, (r3, 0x2c) + 2750: 4247 lsli r2, r2, 7 + 2752: 6848 and r1, r2 + 2754: 3940 cmpnei r1, 0 + 2756: 0bf3 bt 0x273c // 273c + else if(IFC->MISR&OVW_ERR_INT) + 2758: 3280 movi r2, 128 + 275a: 932b ld.w r1, (r3, 0x2c) + 275c: 4248 lsli r2, r2, 8 + 275e: 6848 and r1, r2 + 2760: 3940 cmpnei r1, 0 + 2762: 0bed bt 0x273c // 273c + 2764: 07da br 0x2718 // 2718 + 2766: 0000 bkpt + 2768: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +0000276c : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 276c: 1460 nie + 276e: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2770: 1078 lrw r3, 0x20000050 // 27d0 + 2772: 3101 movi r1, 1 + 2774: 9360 ld.w r3, (r3, 0x0) + 2776: 9348 ld.w r2, (r3, 0x20) + 2778: 6884 and r2, r1 + 277a: 3a40 cmpnei r2, 0 + 277c: 0c04 bf 0x2784 // 2784 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 277e: 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; + } +} + 2780: 1463 ipop + 2782: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2784: 9348 ld.w r2, (r3, 0x20) + 2786: 3102 movi r1, 2 + 2788: 6884 and r2, r1 + 278a: 3a40 cmpnei r2, 0 + 278c: 0bf9 bt 0x277e // 277e + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 278e: 9348 ld.w r2, (r3, 0x20) + 2790: 3104 movi r1, 4 + 2792: 6884 and r2, r1 + 2794: 3a40 cmpnei r2, 0 + 2796: 0bf4 bt 0x277e // 277e + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 2798: 9348 ld.w r2, (r3, 0x20) + 279a: 3110 movi r1, 16 + 279c: 6884 and r2, r1 + 279e: 3a40 cmpnei r2, 0 + 27a0: 0bef bt 0x277e // 277e + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 27a2: 9348 ld.w r2, (r3, 0x20) + 27a4: 3120 movi r1, 32 + 27a6: 6884 and r2, r1 + 27a8: 3a40 cmpnei r2, 0 + 27aa: 0bea bt 0x277e // 277e + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 27ac: 9348 ld.w r2, (r3, 0x20) + 27ae: 3140 movi r1, 64 + 27b0: 6884 and r2, r1 + 27b2: 3a40 cmpnei r2, 0 + 27b4: 0be5 bt 0x277e // 277e + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 27b6: 9348 ld.w r2, (r3, 0x20) + 27b8: 3180 movi r1, 128 + 27ba: 6884 and r2, r1 + 27bc: 3a40 cmpnei r2, 0 + 27be: 0be0 bt 0x277e // 277e + 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 + 27c0: 3280 movi r2, 128 + 27c2: 9328 ld.w r1, (r3, 0x20) + 27c4: 4249 lsli r2, r2, 9 + 27c6: 6848 and r1, r2 + 27c8: 3940 cmpnei r1, 0 + 27ca: 0fdb bf 0x2780 // 2780 + ADC0->CSR = ADC12_SEQ_END0; + 27cc: b347 st.w r2, (r3, 0x1c) +} + 27ce: 07d9 br 0x2780 // 2780 + 27d0: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +000027d4 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 27d4: 1460 nie + 27d6: 1462 ipush + 27d8: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 27da: 1387 lrw r4, 0x20000020 // 2974 + 27dc: 3280 movi r2, 128 + 27de: 9460 ld.w r3, (r4, 0x0) + 27e0: 60c8 addu r3, r2 + 27e2: 9335 ld.w r1, (r3, 0x54) + 27e4: 3001 movi r0, 1 + 27e6: 6840 and r1, r0 + 27e8: 3940 cmpnei r1, 0 + 27ea: 0c03 bf 0x27f0 // 27f0 + 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; + 27ec: b317 st.w r0, (r3, 0x5c) + 27ee: 0424 br 0x2836 // 2836 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 27f0: 9335 ld.w r1, (r3, 0x54) + 27f2: 3002 movi r0, 2 + 27f4: 6840 and r1, r0 + 27f6: 3940 cmpnei r1, 0 + 27f8: 0bfa bt 0x27ec // 27ec + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 27fa: 9335 ld.w r1, (r3, 0x54) + 27fc: 3004 movi r0, 4 + 27fe: 6840 and r1, r0 + 2800: 3940 cmpnei r1, 0 + 2802: 0bf5 bt 0x27ec // 27ec + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2804: 9335 ld.w r1, (r3, 0x54) + 2806: 3008 movi r0, 8 + 2808: 6840 and r1, r0 + 280a: 3940 cmpnei r1, 0 + 280c: 0bf0 bt 0x27ec // 27ec + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 280e: 9335 ld.w r1, (r3, 0x54) + 2810: 3010 movi r0, 16 + 2812: 6840 and r1, r0 + 2814: 3940 cmpnei r1, 0 + 2816: 0c1f bf 0x2854 // 2854 + EPT0->ICR=EPT_CAP_LD0; + 2818: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 281a: 3200 movi r2, 0 + 281c: 3101 movi r1, 1 + 281e: 3000 movi r0, 0 + 2820: e3fffa64 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2824: 3201 movi r2, 1 + 2826: 3101 movi r1, 1 + 2828: 3001 movi r0, 1 + 282a: e3fffa5f bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 282e: 9460 ld.w r3, (r4, 0x0) + 2830: 934b ld.w r2, (r3, 0x2c) + 2832: 1272 lrw r3, 0x200001dc // 2978 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2834: 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 + 2836: 9460 ld.w r3, (r4, 0x0) + 2838: 3280 movi r2, 128 + 283a: 60c8 addu r3, r2 + 283c: 932b ld.w r1, (r3, 0x2c) + 283e: 3001 movi r0, 1 + 2840: 6840 and r1, r0 + 2842: 3940 cmpnei r1, 0 + 2844: 0c61 bf 0x2906 // 2906 + { + 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; + 2846: 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; + } +} + 2848: d9ee2001 ld.w r15, (r14, 0x4) + 284c: 9880 ld.w r4, (r14, 0x0) + 284e: 1402 addi r14, r14, 8 + 2850: 1463 ipop + 2852: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 2854: 9335 ld.w r1, (r3, 0x54) + 2856: 3020 movi r0, 32 + 2858: 6840 and r1, r0 + 285a: 3940 cmpnei r1, 0 + 285c: 0c10 bf 0x287c // 287c + EPT0->ICR=EPT_CAP_LD1; + 285e: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 2860: 3200 movi r2, 0 + 2862: 3101 movi r1, 1 + 2864: 3001 movi r0, 1 + 2866: e3fffa41 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 286a: 3201 movi r2, 1 + 286c: 3101 movi r1, 1 + 286e: 3000 movi r0, 0 + 2870: e3fffa3c bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2874: 9460 ld.w r3, (r4, 0x0) + 2876: 934c ld.w r2, (r3, 0x30) + 2878: 1261 lrw r3, 0x200001d8 // 297c + 287a: 07dd br 0x2834 // 2834 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 287c: 9335 ld.w r1, (r3, 0x54) + 287e: 3040 movi r0, 64 + 2880: 6840 and r1, r0 + 2882: 3940 cmpnei r1, 0 + 2884: 0bb4 bt 0x27ec // 27ec + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 2886: 9335 ld.w r1, (r3, 0x54) + 2888: 6848 and r1, r2 + 288a: 3940 cmpnei r1, 0 + 288c: 0c03 bf 0x2892 // 2892 + EPT0->ICR=EPT_CDD; + 288e: b357 st.w r2, (r3, 0x5c) + 2890: 07d3 br 0x2836 // 2836 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 2892: 3280 movi r2, 128 + 2894: 9335 ld.w r1, (r3, 0x54) + 2896: 4241 lsli r2, r2, 1 + 2898: 6848 and r1, r2 + 289a: 3940 cmpnei r1, 0 + 289c: 0bf9 bt 0x288e // 288e + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 289e: 3280 movi r2, 128 + 28a0: 9335 ld.w r1, (r3, 0x54) + 28a2: 4242 lsli r2, r2, 2 + 28a4: 6848 and r1, r2 + 28a6: 3940 cmpnei r1, 0 + 28a8: 0bf3 bt 0x288e // 288e + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 28aa: 3280 movi r2, 128 + 28ac: 9335 ld.w r1, (r3, 0x54) + 28ae: 4243 lsli r2, r2, 3 + 28b0: 6848 and r1, r2 + 28b2: 3940 cmpnei r1, 0 + 28b4: 0bed bt 0x288e // 288e + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 28b6: 3280 movi r2, 128 + 28b8: 9335 ld.w r1, (r3, 0x54) + 28ba: 4244 lsli r2, r2, 4 + 28bc: 6848 and r1, r2 + 28be: 3940 cmpnei r1, 0 + 28c0: 0be7 bt 0x288e // 288e + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 28c2: 3280 movi r2, 128 + 28c4: 9335 ld.w r1, (r3, 0x54) + 28c6: 4245 lsli r2, r2, 5 + 28c8: 6848 and r1, r2 + 28ca: 3940 cmpnei r1, 0 + 28cc: 0be1 bt 0x288e // 288e + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 28ce: 3280 movi r2, 128 + 28d0: 9335 ld.w r1, (r3, 0x54) + 28d2: 4246 lsli r2, r2, 6 + 28d4: 6848 and r1, r2 + 28d6: 3940 cmpnei r1, 0 + 28d8: 0bdb bt 0x288e // 288e + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 28da: 3280 movi r2, 128 + 28dc: 9335 ld.w r1, (r3, 0x54) + 28de: 4247 lsli r2, r2, 7 + 28e0: 6848 and r1, r2 + 28e2: 3940 cmpnei r1, 0 + 28e4: 0bd5 bt 0x288e // 288e + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 28e6: 3280 movi r2, 128 + 28e8: 9335 ld.w r1, (r3, 0x54) + 28ea: 4248 lsli r2, r2, 8 + 28ec: 6848 and r1, r2 + 28ee: 3940 cmpnei r1, 0 + 28f0: 0bcf bt 0x288e // 288e + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 28f2: 3280 movi r2, 128 + 28f4: 9335 ld.w r1, (r3, 0x54) + 28f6: 4249 lsli r2, r2, 9 + 28f8: 6848 and r1, r2 + 28fa: 3940 cmpnei r1, 0 + 28fc: 0f9d bf 0x2836 // 2836 + EPT0->ICR=EPT_PEND; + 28fe: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2900: e3fffd28 bsr 0x2350 // 2350 + 2904: 0799 br 0x2836 // 2836 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2906: 932b ld.w r1, (r3, 0x2c) + 2908: 3002 movi r0, 2 + 290a: 6840 and r1, r0 + 290c: 3940 cmpnei r1, 0 + 290e: 0b9c bt 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2910: 932b ld.w r1, (r3, 0x2c) + 2912: 3004 movi r0, 4 + 2914: 6840 and r1, r0 + 2916: 3940 cmpnei r1, 0 + 2918: 0b97 bt 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 291a: 932b ld.w r1, (r3, 0x2c) + 291c: 3008 movi r0, 8 + 291e: 6840 and r1, r0 + 2920: 3940 cmpnei r1, 0 + 2922: 0b92 bt 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2924: 932b ld.w r1, (r3, 0x2c) + 2926: 3010 movi r0, 16 + 2928: 6840 and r1, r0 + 292a: 3940 cmpnei r1, 0 + 292c: 0b8d bt 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 292e: 932b ld.w r1, (r3, 0x2c) + 2930: 3020 movi r0, 32 + 2932: 6840 and r1, r0 + 2934: 3940 cmpnei r1, 0 + 2936: 0b88 bt 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 2938: 932b ld.w r1, (r3, 0x2c) + 293a: 3040 movi r0, 64 + 293c: 6840 and r1, r0 + 293e: 3940 cmpnei r1, 0 + 2940: 0b83 bt 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 2942: 932b ld.w r1, (r3, 0x2c) + 2944: 6848 and r1, r2 + 2946: 3940 cmpnei r1, 0 + 2948: 0c03 bf 0x294e // 294e + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 294a: b34d st.w r2, (r3, 0x34) +} + 294c: 077e br 0x2848 // 2848 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 294e: 3280 movi r2, 128 + 2950: 932b ld.w r1, (r3, 0x2c) + 2952: 4241 lsli r2, r2, 1 + 2954: 6848 and r1, r2 + 2956: 3940 cmpnei r1, 0 + 2958: 0bf9 bt 0x294a // 294a + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 295a: 3280 movi r2, 128 + 295c: 932b ld.w r1, (r3, 0x2c) + 295e: 4242 lsli r2, r2, 2 + 2960: 6848 and r1, r2 + 2962: 3940 cmpnei r1, 0 + 2964: 0bf3 bt 0x294a // 294a + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 2966: 3280 movi r2, 128 + 2968: 932b ld.w r1, (r3, 0x2c) + 296a: 4243 lsli r2, r2, 3 + 296c: 6848 and r1, r2 + 296e: 3940 cmpnei r1, 0 + 2970: 0bed bt 0x294a // 294a + 2972: 076b br 0x2848 // 2848 + 2974: 20000020 .long 0x20000020 + 2978: 200001dc .long 0x200001dc + 297c: 200001d8 .long 0x200001d8 + +Disassembly of section .text.WWDTHandler: + +00002980 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 2980: 1460 nie + 2982: 1462 ipush + 2984: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 2986: 10ab lrw r5, 0x20000010 // 29b0 + 2988: 3401 movi r4, 1 + 298a: 9560 ld.w r3, (r5, 0x0) + 298c: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 298e: 30ff movi r0, 255 + 2990: e3fffbbc bsr 0x2108 // 2108 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 2994: 9540 ld.w r2, (r5, 0x0) + 2996: 9263 ld.w r3, (r2, 0xc) + 2998: 68d0 and r3, r4 + 299a: 3b40 cmpnei r3, 0 + 299c: 0c02 bf 0x29a0 // 29a0 + { + WWDT->ICR = WWDT_EVI; + 299e: b285 st.w r4, (r2, 0x14) + } +} + 29a0: d9ee2002 ld.w r15, (r14, 0x8) + 29a4: 98a1 ld.w r5, (r14, 0x4) + 29a6: 9880 ld.w r4, (r14, 0x0) + 29a8: 1403 addi r14, r14, 12 + 29aa: 1463 ipop + 29ac: 1461 nir + 29ae: 0000 bkpt + 29b0: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000029b4 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 29b4: 1460 nie + 29b6: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 29b8: 107e lrw r3, 0x20000024 // 2a30 + 29ba: 3101 movi r1, 1 + 29bc: 9360 ld.w r3, (r3, 0x0) + 29be: 237f addi r3, 128 + 29c0: 9355 ld.w r2, (r3, 0x54) + 29c2: 6884 and r2, r1 + 29c4: 3a40 cmpnei r2, 0 + 29c6: 0c04 bf 0x29ce // 29ce + { + 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; + 29c8: 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; + } +} + 29ca: 1463 ipop + 29cc: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 29ce: 9355 ld.w r2, (r3, 0x54) + 29d0: 3102 movi r1, 2 + 29d2: 6884 and r2, r1 + 29d4: 3a40 cmpnei r2, 0 + 29d6: 0bf9 bt 0x29c8 // 29c8 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 29d8: 9355 ld.w r2, (r3, 0x54) + 29da: 3110 movi r1, 16 + 29dc: 6884 and r2, r1 + 29de: 3a40 cmpnei r2, 0 + 29e0: 0bf4 bt 0x29c8 // 29c8 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 29e2: 9355 ld.w r2, (r3, 0x54) + 29e4: 3120 movi r1, 32 + 29e6: 6884 and r2, r1 + 29e8: 3a40 cmpnei r2, 0 + 29ea: 0bef bt 0x29c8 // 29c8 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 29ec: 3280 movi r2, 128 + 29ee: 9335 ld.w r1, (r3, 0x54) + 29f0: 4241 lsli r2, r2, 1 + 29f2: 6848 and r1, r2 + 29f4: 3940 cmpnei r1, 0 + 29f6: 0c03 bf 0x29fc // 29fc + GPT0->ICR = GPT_INT_PEND; + 29f8: b357 st.w r2, (r3, 0x5c) +} + 29fa: 07e8 br 0x29ca // 29ca + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 29fc: 3280 movi r2, 128 + 29fe: 9335 ld.w r1, (r3, 0x54) + 2a00: 4242 lsli r2, r2, 2 + 2a02: 6848 and r1, r2 + 2a04: 3940 cmpnei r1, 0 + 2a06: 0bf9 bt 0x29f8 // 29f8 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2a08: 3280 movi r2, 128 + 2a0a: 9335 ld.w r1, (r3, 0x54) + 2a0c: 4243 lsli r2, r2, 3 + 2a0e: 6848 and r1, r2 + 2a10: 3940 cmpnei r1, 0 + 2a12: 0bf3 bt 0x29f8 // 29f8 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2a14: 3280 movi r2, 128 + 2a16: 9335 ld.w r1, (r3, 0x54) + 2a18: 4244 lsli r2, r2, 4 + 2a1a: 6848 and r1, r2 + 2a1c: 3940 cmpnei r1, 0 + 2a1e: 0bed bt 0x29f8 // 29f8 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2a20: 3280 movi r2, 128 + 2a22: 9335 ld.w r1, (r3, 0x54) + 2a24: 4249 lsli r2, r2, 9 + 2a26: 6848 and r1, r2 + 2a28: 3940 cmpnei r1, 0 + 2a2a: 0be7 bt 0x29f8 // 29f8 + 2a2c: 07cf br 0x29ca // 29ca + 2a2e: 0000 bkpt + 2a30: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00002a34 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 2a34: 1460 nie + 2a36: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 2a38: 1079 lrw r3, 0x20000018 // 2a9c + 2a3a: 3101 movi r1, 1 + 2a3c: 9360 ld.w r3, (r3, 0x0) + 2a3e: 934a ld.w r2, (r3, 0x28) + 2a40: 6884 and r2, r1 + 2a42: 3a40 cmpnei r2, 0 + 2a44: 0c14 bf 0x2a6c // 2a6c + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 2a46: 1057 lrw r2, 0xca53 // 2aa0 + RTC->ICR=ALRA_INT; + 2a48: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 2a4a: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 2a4c: 9342 ld.w r2, (r3, 0x8) + 2a4e: 6c84 or r2, r1 + 2a50: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 2a52: 3280 movi r2, 128 + 2a54: 424d lsli r2, r2, 13 + 2a56: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 2a58: 3102 movi r1, 2 + 2a5a: 9342 ld.w r2, (r3, 0x8) + 2a5c: 6884 and r2, r1 + 2a5e: 3a40 cmpnei r2, 0 + 2a60: 0bfd bt 0x2a5a // 2a5a + RTC->CR &= ~0x1; + 2a62: 9342 ld.w r2, (r3, 0x8) + 2a64: 3a80 bclri r2, 0 + 2a66: 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; + } +} + 2a68: 1463 ipop + 2a6a: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 2a6c: 934a ld.w r2, (r3, 0x28) + 2a6e: 3102 movi r1, 2 + 2a70: 6884 and r2, r1 + 2a72: 3a40 cmpnei r2, 0 + 2a74: 0c03 bf 0x2a7a // 2a7a + RTC->ICR=RTC_TRGEV1_INT; + 2a76: b32b st.w r1, (r3, 0x2c) +} + 2a78: 07f8 br 0x2a68 // 2a68 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 2a7a: 934a ld.w r2, (r3, 0x28) + 2a7c: 3104 movi r1, 4 + 2a7e: 6884 and r2, r1 + 2a80: 3a40 cmpnei r2, 0 + 2a82: 0bfa bt 0x2a76 // 2a76 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 2a84: 934a ld.w r2, (r3, 0x28) + 2a86: 3108 movi r1, 8 + 2a88: 6884 and r2, r1 + 2a8a: 3a40 cmpnei r2, 0 + 2a8c: 0bf5 bt 0x2a76 // 2a76 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 2a8e: 934a ld.w r2, (r3, 0x28) + 2a90: 3110 movi r1, 16 + 2a92: 6884 and r2, r1 + 2a94: 3a40 cmpnei r2, 0 + 2a96: 0bf0 bt 0x2a76 // 2a76 + 2a98: 07e8 br 0x2a68 // 2a68 + 2a9a: 0000 bkpt + 2a9c: 20000018 .long 0x20000018 + 2aa0: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002aa4 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2aa4: 1460 nie + 2aa6: 1462 ipush + 2aa8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2aaa: 1076 lrw r3, 0x20000040 // 2b00 + 2aac: 3102 movi r1, 2 + 2aae: 9360 ld.w r3, (r3, 0x0) + 2ab0: 9343 ld.w r2, (r3, 0xc) + 2ab2: 6884 and r2, r1 + 2ab4: 3a40 cmpnei r2, 0 + 2ab6: 0c0b bf 0x2acc // 2acc + { + UART0->ISR=UART_RX_INT_S; + 2ab8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 2aba: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 2abc: 7400 zextb r0, r0 + 2abe: e00003a1 bsr 0x3200 // 3200 + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } + +} + 2ac2: d9ee2000 ld.w r15, (r14, 0x0) + 2ac6: 1401 addi r14, r14, 4 + 2ac8: 1463 ipop + 2aca: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2acc: 9343 ld.w r2, (r3, 0xc) + 2ace: 3101 movi r1, 1 + 2ad0: 6884 and r2, r1 + 2ad2: 3a40 cmpnei r2, 0 + 2ad4: 0c03 bf 0x2ada // 2ada + UART0->ISR=UART_TX_IOV_S; + 2ad6: b323 st.w r1, (r3, 0xc) + 2ad8: 07f5 br 0x2ac2 // 2ac2 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2ada: 9343 ld.w r2, (r3, 0xc) + 2adc: 3108 movi r1, 8 + 2ade: 6884 and r2, r1 + 2ae0: 3a40 cmpnei r2, 0 + 2ae2: 0bfa bt 0x2ad6 // 2ad6 + else if ((UART0->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: 0bf5 bt 0x2ad6 // 2ad6 + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2aee: 3280 movi r2, 128 + 2af0: 9323 ld.w r1, (r3, 0xc) + 2af2: 424c lsli r2, r2, 12 + 2af4: 6848 and r1, r2 + 2af6: 3940 cmpnei r1, 0 + 2af8: 0fe5 bf 0x2ac2 // 2ac2 + UART0->ISR=UART_TX_DONE_S; + 2afa: b343 st.w r2, (r3, 0xc) +} + 2afc: 07e3 br 0x2ac2 // 2ac2 + 2afe: 0000 bkpt + 2b00: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002b04 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2b04: 1460 nie + 2b06: 1462 ipush + 2b08: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2b0a: 107f lrw r3, 0x2000003c // 2b84 + 2b0c: 3102 movi r1, 2 + 2b0e: 9360 ld.w r3, (r3, 0x0) + 2b10: 9343 ld.w r2, (r3, 0xc) + 2b12: 6884 and r2, r1 + 2b14: 3a40 cmpnei r2, 0 + 2b16: 0c0b bf 0x2b2c // 2b2c + { + UART1->ISR=UART_RX_INT_S; + 2b18: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 2b1a: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 2b1c: 7400 zextb r0, r0 + 2b1e: e000038d bsr 0x3238 // 3238 + if(RS485_Comm_Flag1 == 0x01){ + RS485_Comm_End1 ++; + } + + } +} + 2b22: d9ee2000 ld.w r15, (r14, 0x0) + 2b26: 1401 addi r14, r14, 4 + 2b28: 1463 ipop + 2b2a: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2b2c: 9323 ld.w r1, (r3, 0xc) + 2b2e: 3201 movi r2, 1 + 2b30: 6848 and r1, r2 + 2b32: 3940 cmpnei r1, 0 + 2b34: 0c0d bf 0x2b4e // 2b4e + UART1->ISR=UART_TX_INT_S; + 2b36: b343 st.w r2, (r3, 0xc) + RS485_Comming1 = 0x01; + 2b38: 1074 lrw r3, 0x20000134 // 2b88 + 2b3a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag1 == 0x01){ + 2b3c: 1074 lrw r3, 0x20000138 // 2b8c + 2b3e: 9360 ld.w r3, (r3, 0x0) + 2b40: 3b41 cmpnei r3, 1 + 2b42: 0bf0 bt 0x2b22 // 2b22 + RS485_Comm_Start1 ++; + 2b44: 1053 lrw r2, 0x2000013c // 2b90 + RS485_Comm_End1 ++; + 2b46: 9260 ld.w r3, (r2, 0x0) + 2b48: 2300 addi r3, 1 + 2b4a: b260 st.w r3, (r2, 0x0) +} + 2b4c: 07eb br 0x2b22 // 2b22 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2b4e: 9343 ld.w r2, (r3, 0xc) + 2b50: 3108 movi r1, 8 + 2b52: 6884 and r2, r1 + 2b54: 3a40 cmpnei r2, 0 + 2b56: 0c03 bf 0x2b5c // 2b5c + UART1->ISR=UART_TX_IOV_S; + 2b58: b323 st.w r1, (r3, 0xc) + 2b5a: 07e4 br 0x2b22 // 2b22 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2b5c: 9343 ld.w r2, (r3, 0xc) + 2b5e: 3104 movi r1, 4 + 2b60: 6884 and r2, r1 + 2b62: 3a40 cmpnei r2, 0 + 2b64: 0bfa bt 0x2b58 // 2b58 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2b66: 3180 movi r1, 128 + 2b68: 9303 ld.w r0, (r3, 0xc) + 2b6a: 412c lsli r1, r1, 12 + 2b6c: 6804 and r0, r1 + 2b6e: 3840 cmpnei r0, 0 + 2b70: 0fd9 bf 0x2b22 // 2b22 + UART1->ISR=UART_TX_DONE_S; + 2b72: b323 st.w r1, (r3, 0xc) + RS485_Comming1 = 0x00; + 2b74: 1065 lrw r3, 0x20000134 // 2b88 + 2b76: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag1 == 0x01){ + 2b78: 1065 lrw r3, 0x20000138 // 2b8c + 2b7a: 9360 ld.w r3, (r3, 0x0) + 2b7c: 3b41 cmpnei r3, 1 + 2b7e: 0bd2 bt 0x2b22 // 2b22 + RS485_Comm_End1 ++; + 2b80: 1045 lrw r2, 0x20000140 // 2b94 + 2b82: 07e2 br 0x2b46 // 2b46 + 2b84: 2000003c .long 0x2000003c + 2b88: 20000134 .long 0x20000134 + 2b8c: 20000138 .long 0x20000138 + 2b90: 2000013c .long 0x2000013c + 2b94: 20000140 .long 0x20000140 + +Disassembly of section .text.UART2IntHandler: + +00002b98 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2b98: 1460 nie + 2b9a: 1462 ipush + 2b9c: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2b9e: 107f lrw r3, 0x20000038 // 2c18 + 2ba0: 3102 movi r1, 2 + 2ba2: 9360 ld.w r3, (r3, 0x0) + 2ba4: 9343 ld.w r2, (r3, 0xc) + 2ba6: 6884 and r2, r1 + 2ba8: 3a40 cmpnei r2, 0 + 2baa: 0c0b bf 0x2bc0 // 2bc0 + { + UART2->ISR=UART_RX_INT_S; + 2bac: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 2bae: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 2bb0: 7400 zextb r0, r0 + 2bb2: e000035f bsr 0x3270 // 3270 + RS485_Comm_End ++; + } + + } + +} + 2bb6: d9ee2000 ld.w r15, (r14, 0x0) + 2bba: 1401 addi r14, r14, 4 + 2bbc: 1463 ipop + 2bbe: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2bc0: 9323 ld.w r1, (r3, 0xc) + 2bc2: 3201 movi r2, 1 + 2bc4: 6848 and r1, r2 + 2bc6: 3940 cmpnei r1, 0 + 2bc8: 0c0d bf 0x2be2 // 2be2 + UART2->ISR=UART_TX_INT_S; + 2bca: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2bcc: 1074 lrw r3, 0x20000124 // 2c1c + 2bce: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2bd0: 1074 lrw r3, 0x20000128 // 2c20 + 2bd2: 9360 ld.w r3, (r3, 0x0) + 2bd4: 3b41 cmpnei r3, 1 + 2bd6: 0bf0 bt 0x2bb6 // 2bb6 + RS485_Comm_Start ++; + 2bd8: 1053 lrw r2, 0x2000012c // 2c24 + RS485_Comm_End ++; + 2bda: 9260 ld.w r3, (r2, 0x0) + 2bdc: 2300 addi r3, 1 + 2bde: b260 st.w r3, (r2, 0x0) +} + 2be0: 07eb br 0x2bb6 // 2bb6 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2be2: 9343 ld.w r2, (r3, 0xc) + 2be4: 3108 movi r1, 8 + 2be6: 6884 and r2, r1 + 2be8: 3a40 cmpnei r2, 0 + 2bea: 0c03 bf 0x2bf0 // 2bf0 + UART2->ISR=UART_TX_IOV_S; + 2bec: b323 st.w r1, (r3, 0xc) + 2bee: 07e4 br 0x2bb6 // 2bb6 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2bf0: 9343 ld.w r2, (r3, 0xc) + 2bf2: 3104 movi r1, 4 + 2bf4: 6884 and r2, r1 + 2bf6: 3a40 cmpnei r2, 0 + 2bf8: 0bfa bt 0x2bec // 2bec + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2bfa: 3180 movi r1, 128 + 2bfc: 9303 ld.w r0, (r3, 0xc) + 2bfe: 412c lsli r1, r1, 12 + 2c00: 6804 and r0, r1 + 2c02: 3840 cmpnei r0, 0 + 2c04: 0fd9 bf 0x2bb6 // 2bb6 + UART2->ISR=UART_TX_DONE_S; + 2c06: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2c08: 1065 lrw r3, 0x20000124 // 2c1c + 2c0a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2c0c: 1065 lrw r3, 0x20000128 // 2c20 + 2c0e: 9360 ld.w r3, (r3, 0x0) + 2c10: 3b41 cmpnei r3, 1 + 2c12: 0bd2 bt 0x2bb6 // 2bb6 + RS485_Comm_End ++; + 2c14: 1045 lrw r2, 0x20000130 // 2c28 + 2c16: 07e2 br 0x2bda // 2bda + 2c18: 20000038 .long 0x20000038 + 2c1c: 20000124 .long 0x20000124 + 2c20: 20000128 .long 0x20000128 + 2c24: 2000012c .long 0x2000012c + 2c28: 20000130 .long 0x20000130 + +Disassembly of section .text.SPI0IntHandler: + +00002c2c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2c2c: 1460 nie + 2c2e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2c30: 1178 lrw r3, 0x20000034 // 2d10 + 2c32: 3101 movi r1, 1 + 2c34: 9360 ld.w r3, (r3, 0x0) + 2c36: 9347 ld.w r2, (r3, 0x1c) + 2c38: 6884 and r2, r1 + 2c3a: 3a40 cmpnei r2, 0 + 2c3c: 0c03 bf 0x2c42 // 2c42 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2c3e: b328 st.w r1, (r3, 0x20) + } + +} + 2c40: 0407 br 0x2c4e // 2c4e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2c42: 9347 ld.w r2, (r3, 0x1c) + 2c44: 3002 movi r0, 2 + 2c46: 6880 and r2, r0 + 2c48: 3a40 cmpnei r2, 0 + 2c4a: 0c04 bf 0x2c52 // 2c52 + SPI0->ICR = SPI_RTIM; + 2c4c: b308 st.w r0, (r3, 0x20) +} + 2c4e: 1463 ipop + 2c50: 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 + 2c52: 9347 ld.w r2, (r3, 0x1c) + 2c54: 3004 movi r0, 4 + 2c56: 6880 and r2, r0 + 2c58: 3a40 cmpnei r2, 0 + 2c5a: 0c55 bf 0x2d04 // 2d04 + SPI0->ICR = SPI_RXIM; + 2c5c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2c5e: 9302 ld.w r0, (r3, 0x8) + 2c60: 32aa movi r2, 170 + 2c62: 6482 cmpne r0, r2 + 2c64: 083e bt 0x2ce0 // 2ce0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c66: 3102 movi r1, 2 + 2c68: 9343 ld.w r2, (r3, 0xc) + 2c6a: 6884 and r2, r1 + 2c6c: 3a40 cmpnei r2, 0 + 2c6e: 0ffd bf 0x2c68 // 2c68 + SPI0->DR = 0x11; + 2c70: 3211 movi r2, 17 + 2c72: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c74: 3110 movi r1, 16 + 2c76: 9343 ld.w r2, (r3, 0xc) + 2c78: 6884 and r2, r1 + 2c7a: 3a40 cmpnei r2, 0 + 2c7c: 0bfd bt 0x2c76 // 2c76 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c7e: 3102 movi r1, 2 + 2c80: 9343 ld.w r2, (r3, 0xc) + 2c82: 6884 and r2, r1 + 2c84: 3a40 cmpnei r2, 0 + 2c86: 0ffd bf 0x2c80 // 2c80 + SPI0->DR = 0x12; + 2c88: 3212 movi r2, 18 + 2c8a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c8c: 3110 movi r1, 16 + 2c8e: 9343 ld.w r2, (r3, 0xc) + 2c90: 6884 and r2, r1 + 2c92: 3a40 cmpnei r2, 0 + 2c94: 0bfd bt 0x2c8e // 2c8e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c96: 3102 movi r1, 2 + 2c98: 9343 ld.w r2, (r3, 0xc) + 2c9a: 6884 and r2, r1 + 2c9c: 3a40 cmpnei r2, 0 + 2c9e: 0ffd bf 0x2c98 // 2c98 + SPI0->DR = 0x13; + 2ca0: 3213 movi r2, 19 + 2ca2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ca4: 3110 movi r1, 16 + 2ca6: 9343 ld.w r2, (r3, 0xc) + 2ca8: 6884 and r2, r1 + 2caa: 3a40 cmpnei r2, 0 + 2cac: 0bfd bt 0x2ca6 // 2ca6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2cae: 3102 movi r1, 2 + 2cb0: 9343 ld.w r2, (r3, 0xc) + 2cb2: 6884 and r2, r1 + 2cb4: 3a40 cmpnei r2, 0 + 2cb6: 0ffd bf 0x2cb0 // 2cb0 + SPI0->DR = 0x14; + 2cb8: 3214 movi r2, 20 + 2cba: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cbc: 3110 movi r1, 16 + 2cbe: 9343 ld.w r2, (r3, 0xc) + 2cc0: 6884 and r2, r1 + 2cc2: 3a40 cmpnei r2, 0 + 2cc4: 0bfd bt 0x2cbe // 2cbe + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2cc6: 3102 movi r1, 2 + 2cc8: 9343 ld.w r2, (r3, 0xc) + 2cca: 6884 and r2, r1 + 2ccc: 3a40 cmpnei r2, 0 + 2cce: 0ffd bf 0x2cc8 // 2cc8 + SPI0->DR = 0x15; + 2cd0: 3215 movi r2, 21 + 2cd2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cd4: 3110 movi r1, 16 + 2cd6: 9343 ld.w r2, (r3, 0xc) + 2cd8: 6884 and r2, r1 + 2cda: 3a40 cmpnei r2, 0 + 2cdc: 0bfd bt 0x2cd6 // 2cd6 + 2cde: 07b8 br 0x2c4e // 2c4e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2ce0: 9343 ld.w r2, (r3, 0xc) + 2ce2: 6884 and r2, r1 + 2ce4: 3a40 cmpnei r2, 0 + 2ce6: 0bb4 bt 0x2c4e // 2c4e + SPI0->DR=0x0; //FIFO=0 + 2ce8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cea: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2cec: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cee: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cf0: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cf2: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cf4: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cf6: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cf8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cfa: 9343 ld.w r2, (r3, 0xc) + 2cfc: 6884 and r2, r1 + 2cfe: 3a40 cmpnei r2, 0 + 2d00: 0bfd bt 0x2cfa // 2cfa + 2d02: 07a6 br 0x2c4e // 2c4e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2d04: 9347 ld.w r2, (r3, 0x1c) + 2d06: 3108 movi r1, 8 + 2d08: 6884 and r2, r1 + 2d0a: 3a40 cmpnei r2, 0 + 2d0c: 0b99 bt 0x2c3e // 2c3e + 2d0e: 07a0 br 0x2c4e // 2c4e + 2d10: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002d14 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2d14: 1460 nie + 2d16: 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) + 2d18: 1073 lrw r3, 0x2000002c // 2d64 + 2d1a: 3104 movi r1, 4 + 2d1c: 9360 ld.w r3, (r3, 0x0) + 2d1e: 9349 ld.w r2, (r3, 0x24) + 2d20: 6884 and r2, r1 + 2d22: 3a40 cmpnei r2, 0 + 2d24: 0c02 bf 0x2d28 // 2d28 + { + SIO0->ICR=0X04; + 2d26: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2d28: 9349 ld.w r2, (r3, 0x24) + 2d2a: 3101 movi r1, 1 + 2d2c: 6884 and r2, r1 + 2d2e: 3a40 cmpnei r2, 0 + 2d30: 0c02 bf 0x2d34 // 2d34 + { + SIO0->ICR=0X01; + 2d32: 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 + 2d34: 9349 ld.w r2, (r3, 0x24) + 2d36: 3102 movi r1, 2 + 2d38: 6884 and r2, r1 + 2d3a: 3a40 cmpnei r2, 0 + 2d3c: 0c03 bf 0x2d42 // 2d42 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2d3e: b32b st.w r1, (r3, 0x2c) + } +} + 2d40: 0410 br 0x2d60 // 2d60 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2d42: 9349 ld.w r2, (r3, 0x24) + 2d44: 3108 movi r1, 8 + 2d46: 6884 and r2, r1 + 2d48: 3a40 cmpnei r2, 0 + 2d4a: 0bfa bt 0x2d3e // 2d3e + else if(SIO0->MISR&0X010) //BREAK + 2d4c: 9349 ld.w r2, (r3, 0x24) + 2d4e: 3110 movi r1, 16 + 2d50: 6884 and r2, r1 + 2d52: 3a40 cmpnei r2, 0 + 2d54: 0bf5 bt 0x2d3e // 2d3e + else if(SIO0->MISR&0X020) //TIMEOUT + 2d56: 9349 ld.w r2, (r3, 0x24) + 2d58: 3120 movi r1, 32 + 2d5a: 6884 and r2, r1 + 2d5c: 3a40 cmpnei r2, 0 + 2d5e: 0bf0 bt 0x2d3e // 2d3e +} + 2d60: 1463 ipop + 2d62: 1461 nir + 2d64: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002d68 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2d68: 1460 nie + 2d6a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2d6c: 106a lrw r3, 0x2000005c // 2d94 + 2d6e: 3101 movi r1, 1 + 2d70: 9360 ld.w r3, (r3, 0x0) + 2d72: 237f addi r3, 128 + 2d74: 934c ld.w r2, (r3, 0x30) + 2d76: 6884 and r2, r1 + 2d78: 3a40 cmpnei r2, 0 + 2d7a: 0c04 bf 0x2d82 // 2d82 + { + SYSCON->EXICR = EXI_PIN0; + 2d7c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2d7e: 1463 ipop + 2d80: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2d82: 3280 movi r2, 128 + 2d84: 932c ld.w r1, (r3, 0x30) + 2d86: 4249 lsli r2, r2, 9 + 2d88: 6848 and r1, r2 + 2d8a: 3940 cmpnei r1, 0 + 2d8c: 0ff9 bf 0x2d7e // 2d7e + SYSCON->EXICR = EXI_PIN16; + 2d8e: b34b st.w r2, (r3, 0x2c) +} + 2d90: 07f7 br 0x2d7e // 2d7e + 2d92: 0000 bkpt + 2d94: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002d98 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2d98: 1460 nie + 2d9a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2d9c: 106a lrw r3, 0x2000005c // 2dc4 + 2d9e: 3102 movi r1, 2 + 2da0: 9360 ld.w r3, (r3, 0x0) + 2da2: 237f addi r3, 128 + 2da4: 934c ld.w r2, (r3, 0x30) + 2da6: 6884 and r2, r1 + 2da8: 3a40 cmpnei r2, 0 + 2daa: 0c04 bf 0x2db2 // 2db2 + { + SYSCON->EXICR = EXI_PIN1; + 2dac: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2dae: 1463 ipop + 2db0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2db2: 3280 movi r2, 128 + 2db4: 932c ld.w r1, (r3, 0x30) + 2db6: 424a lsli r2, r2, 10 + 2db8: 6848 and r1, r2 + 2dba: 3940 cmpnei r1, 0 + 2dbc: 0ff9 bf 0x2dae // 2dae + SYSCON->EXICR = EXI_PIN17; + 2dbe: b34b st.w r2, (r3, 0x2c) +} + 2dc0: 07f7 br 0x2dae // 2dae + 2dc2: 0000 bkpt + 2dc4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002dc8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2dc8: 1460 nie + 2dca: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2dcc: 1070 lrw r3, 0x2000005c // 2e0c + 2dce: 3104 movi r1, 4 + 2dd0: 9360 ld.w r3, (r3, 0x0) + 2dd2: 237f addi r3, 128 + 2dd4: 934c ld.w r2, (r3, 0x30) + 2dd6: 6884 and r2, r1 + 2dd8: 3a40 cmpnei r2, 0 + 2dda: 0c04 bf 0x2de2 // 2de2 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2ddc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2dde: 1463 ipop + 2de0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2de2: 934c ld.w r2, (r3, 0x30) + 2de4: 3108 movi r1, 8 + 2de6: 6884 and r2, r1 + 2de8: 3a40 cmpnei r2, 0 + 2dea: 0bf9 bt 0x2ddc // 2ddc + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2dec: 3280 movi r2, 128 + 2dee: 932c ld.w r1, (r3, 0x30) + 2df0: 424b lsli r2, r2, 11 + 2df2: 6848 and r1, r2 + 2df4: 3940 cmpnei r1, 0 + 2df6: 0c03 bf 0x2dfc // 2dfc + SYSCON->EXICR = EXI_PIN19; + 2df8: b34b st.w r2, (r3, 0x2c) +} + 2dfa: 07f2 br 0x2dde // 2dde + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2dfc: 3280 movi r2, 128 + 2dfe: 932c ld.w r1, (r3, 0x30) + 2e00: 424c lsli r2, r2, 12 + 2e02: 6848 and r1, r2 + 2e04: 3940 cmpnei r1, 0 + 2e06: 0bf9 bt 0x2df8 // 2df8 + 2e08: 07eb br 0x2dde // 2dde + 2e0a: 0000 bkpt + 2e0c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002e10 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2e10: 1460 nie + 2e12: 1462 ipush + 2e14: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2e16: 1079 lrw r3, 0x2000005c // 2e78 + 2e18: 3280 movi r2, 128 + 2e1a: 9360 ld.w r3, (r3, 0x0) + 2e1c: 60c8 addu r3, r2 + 2e1e: 932c ld.w r1, (r3, 0x30) + 2e20: 3010 movi r0, 16 + 2e22: 6840 and r1, r0 + 2e24: 3940 cmpnei r1, 0 + 2e26: 0c03 bf 0x2e2c // 2e2c + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 2e28: b30b st.w r0, (r3, 0x2c) + 2e2a: 0409 br 0x2e3c // 2e3c + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 2e2c: 932c ld.w r1, (r3, 0x30) + 2e2e: 3020 movi r0, 32 + 2e30: 6840 and r1, r0 + 2e32: 3940 cmpnei r1, 0 + 2e34: 0c09 bf 0x2e46 // 2e46 + SYSCON->EXICR = EXI_PIN5; + 2e36: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 2e38: e0000396 bsr 0x3564 // 3564 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 2e3c: d9ee2000 ld.w r15, (r14, 0x0) + 2e40: 1401 addi r14, r14, 4 + 2e42: 1463 ipop + 2e44: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 2e46: 932c ld.w r1, (r3, 0x30) + 2e48: 3040 movi r0, 64 + 2e4a: 6840 and r1, r0 + 2e4c: 3940 cmpnei r1, 0 + 2e4e: 0bed bt 0x2e28 // 2e28 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 2e50: 932c ld.w r1, (r3, 0x30) + 2e52: 6848 and r1, r2 + 2e54: 3940 cmpnei r1, 0 + 2e56: 0c03 bf 0x2e5c // 2e5c + SYSCON->EXICR = EXI_PIN9; + 2e58: b34b st.w r2, (r3, 0x2c) +} + 2e5a: 07f1 br 0x2e3c // 2e3c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 2e5c: 3280 movi r2, 128 + 2e5e: 932c ld.w r1, (r3, 0x30) + 2e60: 4241 lsli r2, r2, 1 + 2e62: 6848 and r1, r2 + 2e64: 3940 cmpnei r1, 0 + 2e66: 0bf9 bt 0x2e58 // 2e58 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 2e68: 3280 movi r2, 128 + 2e6a: 932c ld.w r1, (r3, 0x30) + 2e6c: 4242 lsli r2, r2, 2 + 2e6e: 6848 and r1, r2 + 2e70: 3940 cmpnei r1, 0 + 2e72: 0bf3 bt 0x2e58 // 2e58 + 2e74: 07e4 br 0x2e3c // 2e3c + 2e76: 0000 bkpt + 2e78: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002e7c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2e7c: 1460 nie + 2e7e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2e80: 1076 lrw r3, 0x2000005c // 2ed8 + 2e82: 3280 movi r2, 128 + 2e84: 9360 ld.w r3, (r3, 0x0) + 2e86: 237f addi r3, 128 + 2e88: 932c ld.w r1, (r3, 0x30) + 2e8a: 4243 lsli r2, r2, 3 + 2e8c: 6848 and r1, r2 + 2e8e: 3940 cmpnei r1, 0 + 2e90: 0c03 bf 0x2e96 // 2e96 + SYSCON->EXICR = EXI_PIN14; + + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 2e92: b34b st.w r2, (r3, 0x2c) + } +} + 2e94: 041f br 0x2ed2 // 2ed2 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2e96: 3280 movi r2, 128 + 2e98: 932c ld.w r1, (r3, 0x30) + 2e9a: 4244 lsli r2, r2, 4 + 2e9c: 6848 and r1, r2 + 2e9e: 3940 cmpnei r1, 0 + 2ea0: 0bf9 bt 0x2e92 // 2e92 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2ea2: 3280 movi r2, 128 + 2ea4: 932c ld.w r1, (r3, 0x30) + 2ea6: 4245 lsli r2, r2, 5 + 2ea8: 6848 and r1, r2 + 2eaa: 3940 cmpnei r1, 0 + 2eac: 0bf3 bt 0x2e92 // 2e92 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2eae: 3280 movi r2, 128 + 2eb0: 932c ld.w r1, (r3, 0x30) + 2eb2: 4246 lsli r2, r2, 6 + 2eb4: 6848 and r1, r2 + 2eb6: 3940 cmpnei r1, 0 + 2eb8: 0bed bt 0x2e92 // 2e92 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2eba: 3280 movi r2, 128 + 2ebc: 932c ld.w r1, (r3, 0x30) + 2ebe: 4247 lsli r2, r2, 7 + 2ec0: 6848 and r1, r2 + 2ec2: 3940 cmpnei r1, 0 + 2ec4: 0be7 bt 0x2e92 // 2e92 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2ec6: 3280 movi r2, 128 + 2ec8: 932c ld.w r1, (r3, 0x30) + 2eca: 4248 lsli r2, r2, 8 + 2ecc: 6848 and r1, r2 + 2ece: 3940 cmpnei r1, 0 + 2ed0: 0be1 bt 0x2e92 // 2e92 +} + 2ed2: 1463 ipop + 2ed4: 1461 nir + 2ed6: 0000 bkpt + 2ed8: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002edc : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2edc: 1460 nie + 2ede: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2ee0: 106b lrw r3, 0x20000014 // 2f0c + 2ee2: 3101 movi r1, 1 + 2ee4: 9360 ld.w r3, (r3, 0x0) + 2ee6: 934e ld.w r2, (r3, 0x38) + 2ee8: 6884 and r2, r1 + 2eea: 3a40 cmpnei r2, 0 + 2eec: 0c03 bf 0x2ef2 // 2ef2 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2eee: b330 st.w r1, (r3, 0x40) + } +} + 2ef0: 040b br 0x2f06 // 2f06 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2ef2: 934e ld.w r2, (r3, 0x38) + 2ef4: 3102 movi r1, 2 + 2ef6: 6884 and r2, r1 + 2ef8: 3a40 cmpnei r2, 0 + 2efa: 0bfa bt 0x2eee // 2eee + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2efc: 934e ld.w r2, (r3, 0x38) + 2efe: 3104 movi r1, 4 + 2f00: 6884 and r2, r1 + 2f02: 3a40 cmpnei r2, 0 + 2f04: 0bf5 bt 0x2eee // 2eee +} + 2f06: 1463 ipop + 2f08: 1461 nir + 2f0a: 0000 bkpt + 2f0c: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002f10 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2f10: 1460 nie + 2f12: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2f14: 1071 lrw r3, 0x2000000c // 2f58 + 2f16: 3101 movi r1, 1 + 2f18: 9360 ld.w r3, (r3, 0x0) + 2f1a: 934c ld.w r2, (r3, 0x30) + 2f1c: 6884 and r2, r1 + 2f1e: 3a40 cmpnei r2, 0 + 2f20: 0c0a bf 0x2f34 // 2f34 + { + BT0->ICR = BT_PEND; + 2f22: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2f24: 9341 ld.w r2, (r3, 0x4) + 2f26: 3a86 bclri r2, 6 + 2f28: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2f2a: 9340 ld.w r2, (r3, 0x0) + 2f2c: 3200 movi r2, 0 + 2f2e: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2f30: 1463 ipop + 2f32: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2f34: 934c ld.w r2, (r3, 0x30) + 2f36: 3102 movi r1, 2 + 2f38: 6884 and r2, r1 + 2f3a: 3a40 cmpnei r2, 0 + 2f3c: 0c03 bf 0x2f42 // 2f42 + BT0->ICR = BT_EVTRG; + 2f3e: b32d st.w r1, (r3, 0x34) +} + 2f40: 07f8 br 0x2f30 // 2f30 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2f42: 934c ld.w r2, (r3, 0x30) + 2f44: 3104 movi r1, 4 + 2f46: 6884 and r2, r1 + 2f48: 3a40 cmpnei r2, 0 + 2f4a: 0bfa bt 0x2f3e // 2f3e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2f4c: 934c ld.w r2, (r3, 0x30) + 2f4e: 3108 movi r1, 8 + 2f50: 6884 and r2, r1 + 2f52: 3a40 cmpnei r2, 0 + 2f54: 0bf5 bt 0x2f3e // 2f3e + 2f56: 07ed br 0x2f30 // 2f30 + 2f58: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002f5c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2f5c: 1460 nie + 2f5e: 1462 ipush + 2f60: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2f62: 1079 lrw r3, 0x20000008 // 2fc4 + 2f64: 3101 movi r1, 1 + 2f66: 9360 ld.w r3, (r3, 0x0) + 2f68: 934c ld.w r2, (r3, 0x30) + 2f6a: 6884 and r2, r1 + 2f6c: 3a40 cmpnei r2, 0 + 2f6e: 0c03 bf 0x2f74 // 2f74 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2f70: b32d st.w r1, (r3, 0x34) + } +} + 2f72: 0418 br 0x2fa2 // 2fa2 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2f74: 934c ld.w r2, (r3, 0x30) + 2f76: 3102 movi r1, 2 + 2f78: 6884 and r2, r1 + 2f7a: 3a40 cmpnei r2, 0 + 2f7c: 0c18 bf 0x2fac // 2fac + BT1->ICR = BT_CMP; + 2f7e: b32d st.w r1, (r3, 0x34) + NUM++; + 2f80: 1072 lrw r3, 0x200000b0 // 2fc8 + 2f82: 8340 ld.b r2, (r3, 0x0) + 2f84: 2200 addi r2, 1 + 2f86: 7488 zextb r2, r2 + SysTick_100us++; + 2f88: 9321 ld.w r1, (r3, 0x4) + 2f8a: 2100 addi r1, 1 + if(NUM >= 10){ + 2f8c: 3a09 cmphsi r2, 10 + NUM++; + 2f8e: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2f90: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2f92: 0c08 bf 0x2fa2 // 2fa2 + NUM = 0; + 2f94: 3200 movi r2, 0 + 2f96: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2f98: 9342 ld.w r2, (r3, 0x8) + 2f9a: 2200 addi r2, 1 + 2f9c: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 2f9e: e00002c3 bsr 0x3524 // 3524 +} + 2fa2: d9ee2000 ld.w r15, (r14, 0x0) + 2fa6: 1401 addi r14, r14, 4 + 2fa8: 1463 ipop + 2faa: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 2fac: 934c ld.w r2, (r3, 0x30) + 2fae: 3104 movi r1, 4 + 2fb0: 6884 and r2, r1 + 2fb2: 3a40 cmpnei r2, 0 + 2fb4: 0bde bt 0x2f70 // 2f70 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 2fb6: 934c ld.w r2, (r3, 0x30) + 2fb8: 3108 movi r1, 8 + 2fba: 6884 and r2, r1 + 2fbc: 3a40 cmpnei r2, 0 + 2fbe: 0bd9 bt 0x2f70 // 2f70 + 2fc0: 07f1 br 0x2fa2 // 2fa2 + 2fc2: 0000 bkpt + 2fc4: 20000008 .long 0x20000008 + 2fc8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00002fcc : + 2fcc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00002fce : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 2fce: 1460 nie + 2fd0: 1462 ipush + // ISR content ... + +} + 2fd2: 1463 ipop + 2fd4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00002fd6 : + 2fd6: 1460 nie + 2fd8: 1462 ipush + 2fda: 1463 ipop + 2fdc: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00002fde : + 2fde: 1460 nie + 2fe0: 1462 ipush + 2fe2: 1463 ipop + 2fe4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00002fe6 : + 2fe6: 1460 nie + 2fe8: 1462 ipush + 2fea: 1463 ipop + 2fec: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00002fee : + 2fee: 1460 nie + 2ff0: 1462 ipush + 2ff2: 1463 ipop + 2ff4: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00002ff6 : + 2ff6: 1460 nie + 2ff8: 1462 ipush + 2ffa: 1463 ipop + 2ffc: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +00002ffe : + 2ffe: 1460 nie + 3000: 1462 ipush + 3002: 1463 ipop + 3004: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003006 : + 3006: 1460 nie + 3008: 1462 ipush + 300a: 1463 ipop + 300c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000300e : + 300e: 1460 nie + 3010: 1462 ipush + 3012: 1463 ipop + 3014: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003016 : + 3016: 1460 nie + 3018: 1462 ipush + 301a: 1463 ipop + 301c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000301e : + 301e: 1460 nie + 3020: 1462 ipush + 3022: 1463 ipop + 3024: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003026 : + 3026: 1460 nie + 3028: 1462 ipush + 302a: 1463 ipop + 302c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003030 <__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) +{ + 3030: 14c1 push r4 + int PSR; + __asm volatile( + 3032: c0006023 mfcr r3, cr<0, 0> + 3036: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 303a: 1046 lrw r2, 0x20000000 // 3050 <__divsi3+0x20> + 303c: 3400 movi r4, 0 + 303e: 9240 ld.w r2, (r2, 0x0) + 3040: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3042: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3044: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3046: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3048: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 304c: 9202 ld.w r0, (r2, 0x8) +} + 304e: 1481 pop r4 + 3050: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003054 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3054: 14c1 push r4 + int PSR; + __asm volatile( + 3056: c0006023 mfcr r3, cr<0, 0> + 305a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 305e: 1046 lrw r2, 0x20000000 // 3074 <__udivsi3+0x20> + 3060: 3401 movi r4, 1 + 3062: 9240 ld.w r2, (r2, 0x0) + 3064: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3066: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3068: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 306a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 306c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3070: 9202 ld.w r0, (r2, 0x8) +} + 3072: 1481 pop r4 + 3074: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003078 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3078: 14c1 push r4 + int PSR; + __asm volatile( + 307a: c0006023 mfcr r3, cr<0, 0> + 307e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3082: 1046 lrw r2, 0x20000000 // 3098 <__umodsi3+0x20> + 3084: 3401 movi r4, 1 + 3086: 9240 ld.w r2, (r2, 0x0) + 3088: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 308a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 308c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 308e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3090: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 3094: 9203 ld.w r0, (r2, 0xc) +} + 3096: 1481 pop r4 + 3098: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +0000309c : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 309c: c1807420 psrset ee, ie +} + 30a0: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000030a2 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 30a2: c0807020 psrclr ie +} + 30a6: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000030a8 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 30a8: 14d2 push r4-r5, r15 + switch(uart_id){ + 30aa: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 30ac: 6d07 mov r4, r1 + switch(uart_id){ + 30ae: 0c1f bf 0x30ec // 30ec + 30b0: 3840 cmpnei r0, 0 + 30b2: 0c04 bf 0x30ba // 30ba + 30b4: 3842 cmpnei r0, 2 + 30b6: 0c3f bf 0x3134 // 3134 + GPIO_Init(GPIOB0,3,Output); + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + break; + } +} + 30b8: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 30ba: e3fff87d bsr 0x21b4 // 21b4 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 30be: 3100 movi r1, 0 + 30c0: 3000 movi r0, 0 + 30c2: e3fff8b9 bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 30c6: 1262 lrw r3, 0x20000040 // 31cc + 30c8: 31d0 movi r1, 208 + 30ca: 9300 ld.w r0, (r3, 0x0) + 30cc: 3200 movi r2, 0 + 30ce: 4121 lsli r1, r1, 1 + 30d0: e3fff928 bsr 0x2320 // 2320 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 30d4: 11bf lrw r5, 0x20000208 // 31d0 + UART0_Int_Enable(); + 30d6: e3fff893 bsr 0x21fc // 21fc + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 30da: 3274 movi r2, 116 + 30dc: 3100 movi r1, 0 + 30de: 6c17 mov r0, r5 + 30e0: e3fff442 bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_115200_TimeOut; + 30e4: 3303 movi r3, 3 + 30e6: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 30e8: b59c st.w r4, (r5, 0x70) + break; + 30ea: 07e7 br 0x30b8 // 30b8 + UART1_DeInit(); //clear all UART Register + 30ec: e3fff870 bsr 0x21cc // 21cc + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 30f0: 3102 movi r1, 2 + 30f2: 3001 movi r0, 1 + 30f4: e3fff8a0 bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 30f8: 1177 lrw r3, 0x2000003c // 31d4 + 30fa: 3200 movi r2, 0 + 30fc: 9300 ld.w r0, (r3, 0x0) + 30fe: 1137 lrw r1, 0x1388 // 31d8 + 3100: e3fff910 bsr 0x2320 // 2320 + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3104: 3274 movi r2, 116 + 3106: 3100 movi r1, 0 + 3108: 1115 lrw r0, 0x2000027c // 31dc + 310a: e3fff42d bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 310e: 1175 lrw r3, 0x20000288 // 31e0 + g_uart[UART_1].processing_cf = prt_cf; + 3110: b399 st.w r4, (r3, 0x64) + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 3112: 3203 movi r2, 3 + GPIO_Init(GPIOA0,13,Output); + 3114: 1194 lrw r4, 0x2000004c // 31e4 + 3116: 310d movi r1, 13 + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 3118: b357 st.w r2, (r3, 0x5c) + GPIO_Init(GPIOA0,13,Output); + 311a: 9400 ld.w r0, (r4, 0x0) + 311c: 3200 movi r2, 0 + 311e: e3fff691 bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOA0,13); + 3122: 310d movi r1, 13 + 3124: 9400 ld.w r0, (r4, 0x0) + 3126: e3fff707 bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOA0,13); + 312a: 9400 ld.w r0, (r4, 0x0) + 312c: 310d movi r1, 13 + GPIO_Write_Low(GPIOB0,3); + 312e: e3fff7cb bsr 0x20c4 // 20c4 +} + 3132: 07c3 br 0x30b8 // 30b8 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3134: 3274 movi r2, 116 + 3136: 3100 movi r1, 0 + 3138: 110c lrw r0, 0x200002f0 // 31e8 + 313a: e3fff415 bsr 0x1964 // 1964 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 313e: 3288 movi r2, 136 + 3140: 3100 movi r1, 0 + 3142: 110b lrw r0, 0x20000364 // 31ec + 3144: e3fff410 bsr 0x1964 // 1964 <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3148: 116a lrw r3, 0x200003c4 // 31f0 + 314a: 3201 movi r2, 1 + 314c: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 314e: 116a lrw r3, 0x20000308 // 31f4 + g_uart[UART_2].processing_cf = prt_cf; + 3150: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3152: 3203 movi r2, 3 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 3154: 1189 lrw r4, 0x20000048 // 31f8 + 3156: 3105 movi r1, 5 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3158: b354 st.w r2, (r3, 0x50) + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 315a: 9400 ld.w r0, (r4, 0x0) + 315c: e3fff6e2 bsr 0x1f20 // 1f20 + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 3160: 3205 movi r2, 5 + 3162: 3105 movi r1, 5 + 3164: 3002 movi r0, 2 + 3166: e3fff6ef bsr 0x1f44 // 1f44 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 316a: 3005 movi r0, 5 + 316c: e3fff772 bsr 0x2050 // 2050 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 3170: 3201 movi r2, 1 + 3172: 3120 movi r1, 32 + 3174: 3001 movi r0, 1 + 3176: e3fff5b9 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 317a: 3200 movi r2, 0 + 317c: 3120 movi r1, 32 + 317e: 3001 movi r0, 1 + 3180: e3fff5b4 bsr 0x1ce8 // 1ce8 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 3184: 3120 movi r1, 32 + 3186: 3001 movi r0, 1 + 3188: e3fff5d0 bsr 0x1d28 // 1d28 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 318c: 3120 movi r1, 32 + 318e: 9400 ld.w r0, (r4, 0x0) + 3190: e3fff5e6 bsr 0x1d5c // 1d5c + EXI3_Int_Enable(); + 3194: e3fff5e6 bsr 0x1d60 // 1d60 + UART2_DeInit(); //clear all UART Register + 3198: e3fff826 bsr 0x21e4 // 21e4 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 319c: 3102 movi r1, 2 + 319e: 3002 movi r0, 2 + 31a0: e3fff84a bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 31a4: 1076 lrw r3, 0x20000038 // 31fc + 31a6: 3200 movi r2, 0 + 31a8: 9300 ld.w r0, (r3, 0x0) + 31aa: 102c lrw r1, 0x1388 // 31d8 + 31ac: e3fff8ba bsr 0x2320 // 2320 + UART2_Int_Enable(); + 31b0: e3fff834 bsr 0x2218 // 2218 + GPIO_Init(GPIOB0,3,Output); + 31b4: 3200 movi r2, 0 + 31b6: 3103 movi r1, 3 + 31b8: 9400 ld.w r0, (r4, 0x0) + 31ba: e3fff643 bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOB0,3); + 31be: 3103 movi r1, 3 + 31c0: 9400 ld.w r0, (r4, 0x0) + 31c2: e3fff6b9 bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOB0,3); + 31c6: 9400 ld.w r0, (r4, 0x0) + 31c8: 3103 movi r1, 3 + 31ca: 07b2 br 0x312e // 312e + 31cc: 20000040 .long 0x20000040 + 31d0: 20000208 .long 0x20000208 + 31d4: 2000003c .long 0x2000003c + 31d8: 00001388 .long 0x00001388 + 31dc: 2000027c .long 0x2000027c + 31e0: 20000288 .long 0x20000288 + 31e4: 2000004c .long 0x2000004c + 31e8: 200002f0 .long 0x200002f0 + 31ec: 20000364 .long 0x20000364 + 31f0: 200003c4 .long 0x200003c4 + 31f4: 20000308 .long 0x20000308 + 31f8: 20000048 .long 0x20000048 + 31fc: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_RecvINT_Processing: + +00003200 : + +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + 3200: 14c1 push r4 + if((g_uart[UART_0].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + 3202: 106b lrw r3, 0x20000248 // 322c + 3204: 8b33 ld.h r1, (r3, 0x26) + 3206: 3262 movi r2, 98 + 3208: 6449 cmplt r2, r1 + 320a: 0c03 bf 0x3210 // 3210 + 320c: 3200 movi r2, 0 + 320e: ab53 st.h r2, (r3, 0x26) + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 3210: 8b33 ld.h r1, (r3, 0x26) + 3212: 5982 addi r4, r1, 1 + 3214: ab93 st.h r4, (r3, 0x26) + 3216: 1047 lrw r2, 0x20000208 // 3230 + + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 3218: 1067 lrw r3, 0x200000b8 // 3234 + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 321a: 6048 addu r1, r2 + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 321c: 9360 ld.w r3, (r3, 0x0) + 321e: b27b st.w r3, (r2, 0x6c) + g_uart[UART_0].Receiving = 0x01; + 3220: 225f addi r2, 96 + 3222: 3301 movi r3, 1 + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 3224: a100 st.b r0, (r1, 0x0) + g_uart[UART_0].Receiving = 0x01; + 3226: a264 st.b r3, (r2, 0x4) +} + 3228: 1481 pop r4 + 322a: 0000 bkpt + 322c: 20000248 .long 0x20000248 + 3230: 20000208 .long 0x20000208 + 3234: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART1_RecvINT_Processing: + +00003238 : + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + 3238: 14c1 push r4 + if((g_uart[UART_1].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_1].RecvLen = 0; + 323a: 106b lrw r3, 0x200002c8 // 3264 + 323c: 8b2d ld.h r1, (r3, 0x1a) + 323e: 3262 movi r2, 98 + 3240: 6449 cmplt r2, r1 + 3242: 0c03 bf 0x3248 // 3248 + 3244: 3200 movi r2, 0 + 3246: ab4d st.h r2, (r3, 0x1a) + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + 3248: 8b4d ld.h r2, (r3, 0x1a) + 324a: 1028 lrw r1, 0x20000208 // 3268 + 324c: 5a82 addi r4, r2, 1 + 324e: 6084 addu r2, r1 + 3250: 2273 addi r2, 116 + 3252: a200 st.b r0, (r2, 0x0) + + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 3254: 217f addi r1, 128 + 3256: 1046 lrw r2, 0x200000b8 // 326c + 3258: 9240 ld.w r2, (r2, 0x0) + 325a: b158 st.w r2, (r1, 0x60) + g_uart[UART_1].Receiving = 0x01; + 325c: 3201 movi r2, 1 + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + 325e: ab8d st.h r4, (r3, 0x1a) + g_uart[UART_1].Receiving = 0x01; + 3260: a358 st.b r2, (r3, 0x18) +} + 3262: 1481 pop r4 + 3264: 200002c8 .long 0x200002c8 + 3268: 20000208 .long 0x20000208 + 326c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_RecvINT_Processing: + +00003270 : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 3270: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 3272: 104e lrw r2, 0x20000356 // 32a8 + 3274: 8a20 ld.h r1, (r2, 0x0) + 3276: 3362 movi r3, 98 + 3278: 644d cmplt r3, r1 + 327a: 0c03 bf 0x3280 // 3280 + 327c: 3300 movi r3, 0 + 327e: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 3280: 8a60 ld.h r3, (r2, 0x0) + 3282: 102b lrw r1, 0x20000208 // 32ac + 3284: 5b82 addi r4, r3, 1 + 3286: 60c4 addu r3, r1 + 3288: 23e7 addi r3, 232 + 328a: a300 st.b r0, (r3, 0x0) + 328c: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 328e: 1069 lrw r3, 0x200000b8 // 32b0 + 3290: 9340 ld.w r2, (r3, 0x0) + 3292: 3380 movi r3, 128 + 3294: 4361 lsli r3, r3, 1 + 3296: 60c4 addu r3, r1 + 3298: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 329a: 33a6 movi r3, 166 + 329c: 4361 lsli r3, r3, 1 + 329e: 604c addu r1, r3 + 32a0: 3301 movi r3, 1 + 32a2: a160 st.b r3, (r1, 0x0) +} + 32a4: 1481 pop r4 + 32a6: 0000 bkpt + 32a8: 20000356 .long 0x20000356 + 32ac: 20000208 .long 0x20000208 + 32b0: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_TASK: + +000032b4 : + + +void UART2_TASK(void){ + 32b4: 14d4 push r4-r7, r15 + 32b6: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 32b8: 10da lrw r6, 0x20000354 // 3320 + 32ba: 8660 ld.b r3, (r6, 0x0) + 32bc: 3b41 cmpnei r3, 1 + 32be: 0829 bt 0x3310 // 3310 + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 32c0: 10b9 lrw r5, 0x20000308 // 3324 + 32c2: 109a lrw r4, 0x200000b8 // 3328 + 32c4: 9460 ld.w r3, (r4, 0x0) + 32c6: 9555 ld.w r2, (r5, 0x54) + 32c8: 60ca subu r3, r2 + 32ca: 9554 ld.w r2, (r5, 0x50) + 32cc: 64c8 cmphs r2, r3 + 32ce: 0821 bt 0x3310 // 3310 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 32d0: e3fff556 bsr 0x1d7c // 1d7c + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 32d4: 9460 ld.w r3, (r4, 0x0) + 32d6: b575 st.w r3, (r5, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 32d8: 8e61 ld.h r3, (r6, 0x2) + 32da: 6c8f mov r2, r3 + 32dc: 1034 lrw r1, 0x200002f0 // 332c + 32de: 1015 lrw r0, 0x200000bc // 3330 + DealLen = g_uart[UART_2].RecvLen; + 32e0: 1095 lrw r4, 0x200000fc // 3334 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 32e2: b860 st.w r3, (r14, 0x0) + 32e4: e3fff384 bsr 0x19ec // 19ec <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 32e8: 9860 ld.w r3, (r14, 0x0) + 32ea: ac72 st.h r3, (r4, 0x24) + g_uart[UART_2].RecvLen = 0; + 32ec: 3300 movi r3, 0 + 32ee: ae61 st.h r3, (r6, 0x2) + g_uart[UART_2].Receiving = 0; + 32f0: a660 st.b r3, (r6, 0x0) + SYSCON_Int_Enable(); + 32f2: e3fff53f bsr 0x1d70 // 1d70 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 32f6: 9576 ld.w r3, (r5, 0x58) + 32f8: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 32fa: 5ee6 addi r7, r6, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 32fc: 080c bt 0x3314 // 3314 + + + /*Boot处理函数 */ + if(rev != 0x00) + { + Boot_Comm_UpgradeProcess(DealBuffer,DealLen); + 32fe: 8c32 ld.h r1, (r4, 0x24) + 3300: 100c lrw r0, 0x200000bc // 3330 + 3302: e0000217 bsr 0x3730 // 3730 + } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3306: 3264 movi r2, 100 + 3308: 3100 movi r1, 0 + 330a: 100a lrw r0, 0x200000bc // 3330 + 330c: e3fff32c bsr 0x1964 // 1964 <__memset_fast> + } + } +} + 3310: 1401 addi r14, r14, 4 + 3312: 1494 pop r4-r7, r15 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 3314: 8c32 ld.h r1, (r4, 0x24) + 3316: 1007 lrw r0, 0x200000bc // 3330 + 3318: 7bcd jsr r3 + if(rev != 0x00) + 331a: 3840 cmpnei r0, 0 + 331c: 0ff5 bf 0x3306 // 3306 + 331e: 07f0 br 0x32fe // 32fe + 3320: 20000354 .long 0x20000354 + 3324: 20000308 .long 0x20000308 + 3328: 200000b8 .long 0x200000b8 + 332c: 200002f0 .long 0x200002f0 + 3330: 200000bc .long 0x200000bc + 3334: 200000fc .long 0x200000fc + +Disassembly of section .text.BUS485_Send: + +00003338 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3338: 14d4 push r4-r7, r15 + 333a: 1423 subi r14, r14, 12 + 333c: b802 st.w r0, (r14, 0x8) + 333e: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3340: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 3342: 1189 lrw r4, 0x200000bc // 33e4 + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 3344: 11c9 lrw r6, 0x20000048 // 33e8 + while(RS485_Comming == 0x01){ + 3346: 947a ld.w r3, (r4, 0x68) + 3348: 3b41 cmpnei r3, 1 + 334a: 0c3e bf 0x33c6 // 33c6 + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 334c: 1168 lrw r3, 0x200003c4 // 33ec + 334e: 83c4 ld.b r6, (r3, 0x4) + 3350: 3e40 cmpnei r6, 0 + 3352: b861 st.w r3, (r14, 0x4) + 3354: 0845 bt 0x33de // 33de + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 3356: 11e5 lrw r7, 0x20000048 // 33e8 + CK_CPU_DisAllNormalIrq(); + 3358: e3fffea5 bsr 0x30a2 // 30a2 + GPIO_Write_High(GPIOB0,3); + 335c: 3103 movi r1, 3 + 335e: 9700 ld.w r0, (r7, 0x0) + 3360: e3fff6ae bsr 0x20bc // 20bc + + RS485_Comm_Flag = 0x01; + 3364: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3366: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3368: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 336a: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 336c: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 336e: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 3370: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 3372: e3fffe95 bsr 0x309c // 309c + + UARTTransmit(UART2,buff,len); + 3376: 105f lrw r2, 0x20000038 // 33f0 + 3378: 9200 ld.w r0, (r2, 0x0) + 337a: 9822 ld.w r1, (r14, 0x8) + 337c: 9840 ld.w r2, (r14, 0x0) + 337e: e3fff7d9 bsr 0x2330 // 2330 + do{ + delay_nus(100); + 3382: 3064 movi r0, 100 + 3384: e3fff892 bsr 0x24a8 // 24a8 + delay_cnt ++; + 3388: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 338a: 3363 movi r3, 99 + 338c: 654c cmphs r3, r5 + 338e: 0c08 bf 0x339e // 339e + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 3390: 947c ld.w r3, (r4, 0x70) + 3392: 9840 ld.w r2, (r14, 0x0) + 3394: 648d cmplt r3, r2 + 3396: 0bf6 bt 0x3382 // 3382 + 3398: 947d ld.w r3, (r4, 0x74) + 339a: 648d cmplt r3, r2 + 339c: 0bf3 bt 0x3382 // 3382 + + + CK_CPU_DisAllNormalIrq(); + 339e: e3fffe82 bsr 0x30a2 // 30a2 + + GPIO_Write_Low(GPIOB0,3); + 33a2: 9700 ld.w r0, (r7, 0x0) + 33a4: 3103 movi r1, 3 + 33a6: e3fff68f bsr 0x20c4 // 20c4 + RS485_Comm_Flag = 0x00; + 33aa: 3300 movi r3, 0 + 33ac: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 33ae: 1072 lrw r3, 0x200000b8 // 33f4 + 33b0: 9340 ld.w r2, (r3, 0x0) + 33b2: 1072 lrw r3, 0x20000364 // 33f8 + 33b4: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 33b6: 9861 ld.w r3, (r14, 0x4) + 33b8: 3200 movi r2, 0 + 33ba: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 33bc: e3fffe70 bsr 0x309c // 309c + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 33c0: 6c1b mov r0, r6 + 33c2: 1403 addi r14, r14, 12 + 33c4: 1494 pop r4-r7, r15 + delay_nus(100); + 33c6: 3064 movi r0, 100 + 33c8: e3fff870 bsr 0x24a8 // 24a8 + delay_cnt ++; + 33cc: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 33ce: 3364 movi r3, 100 + 33d0: 64d6 cmpne r5, r3 + 33d2: 0fbd bf 0x334c // 334c + GPIO_Reverse(GPIOB0,3); + 33d4: 3103 movi r1, 3 + 33d6: 9600 ld.w r0, (r6, 0x0) + 33d8: e3fff67a bsr 0x20cc // 20cc + 33dc: 07b5 br 0x3346 // 3346 + return UART_BUSBUSY; //发送失败 + 33de: 3601 movi r6, 1 + 33e0: 07f0 br 0x33c0 // 33c0 + 33e2: 0000 bkpt + 33e4: 200000bc .long 0x200000bc + 33e8: 20000048 .long 0x20000048 + 33ec: 200003c4 .long 0x200003c4 + 33f0: 20000038 .long 0x20000038 + 33f4: 200000b8 .long 0x200000b8 + 33f8: 20000364 .long 0x20000364 + +Disassembly of section .text.MultSend_Task: + +000033fc : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 33fc: 14d4 push r4-r7, r15 + 33fe: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3400: 5963 subi r3, r1, 1 + 3402: 74cd zexth r3, r3 + 3404: 3463 movi r4, 99 + 3406: 64d0 cmphs r4, r3 +{ + 3408: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 340a: 0c29 bf 0x345c // 345c + + if(DatSd == 0x01) + 340c: 3a41 cmpnei r2, 1 + 340e: 0c04 bf 0x3416 // 3416 + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3410: 3001 movi r0, 1 +} + 3412: 1401 addi r14, r14, 4 + 3414: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 3416: 1075 lrw r3, 0x20000364 // 3468 + 3418: 3760 movi r7, 96 + 341a: 61cc addu r7, r3 + 341c: 87c8 ld.b r6, (r7, 0x8) + 341e: 874a ld.b r2, (r7, 0xa) + 3420: 6498 cmphs r6, r2 + 3422: 081f bt 0x3460 // 3460 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 3424: 3480 movi r4, 128 + 3426: 10b2 lrw r5, 0x200000b8 // 346c + 3428: 610c addu r4, r3 + 342a: 9401 ld.w r0, (r4, 0x4) + 342c: 9540 ld.w r2, (r5, 0x0) + 342e: 6082 subu r2, r0 + 3430: 931e ld.w r0, (r3, 0x78) + 3432: 6408 cmphs r2, r0 + 3434: 0818 bt 0x3464 // 3464 + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 3436: 3e40 cmpnei r6, 0 + 3438: 0c07 bf 0x3446 // 3446 + 343a: 9540 ld.w r2, (r5, 0x0) + 343c: 94c0 ld.w r6, (r4, 0x0) + 343e: 609a subu r2, r6 + 3440: 937d ld.w r3, (r3, 0x74) + 3442: 64c8 cmphs r2, r3 + 3444: 0fe6 bf 0x3410 // 3410 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 3446: 9800 ld.w r0, (r14, 0x0) + 3448: e3ffff78 bsr 0x3338 // 3338 + 344c: 3840 cmpnei r0, 0 + 344e: 0be1 bt 0x3410 // 3410 + m_send.ASend_Tick = SysTick_1ms; + 3450: 9560 ld.w r3, (r5, 0x0) + 3452: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 3454: 8768 ld.b r3, (r7, 0x8) + 3456: 2300 addi r3, 1 + 3458: a768 st.b r3, (r7, 0x8) + 345a: 07dc br 0x3412 // 3412 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 345c: 3004 movi r0, 4 + 345e: 07da br 0x3412 // 3412 + return RETRY_END;//没有重发次数 + 3460: 3003 movi r0, 3 + 3462: 07d8 br 0x3412 // 3412 + return DATA_END;//数据有效期结束 + 3464: 3002 movi r0, 2 + 3466: 07d6 br 0x3412 // 3412 + 3468: 20000364 .long 0x20000364 + 346c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Set_GroupSend: + +00003470 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3470: 14d4 push r4-r7, r15 + 3472: 1422 subi r14, r14, 8 + 3474: 6d8b mov r6, r2 + 3476: 9847 ld.w r2, (r14, 0x1c) + 3478: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 347a: 5943 subi r2, r1, 1 +{ + 347c: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 347e: 7489 zexth r2, r2 + 3480: 3163 movi r1, 99 + 3482: 6484 cmphs r1, r2 +{ + 3484: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3486: 0c20 bf 0x34c6 // 34c6 + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 3488: 1091 lrw r4, 0x20000364 // 34cc + 348a: 3264 movi r2, 100 + 348c: 3100 movi r1, 0 + 348e: 6c13 mov r0, r4 + 3490: b861 st.w r3, (r14, 0x4) + 3492: e3fff269 bsr 0x1964 // 1964 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 3496: 6c97 mov r2, r5 + 3498: 6c13 mov r0, r4 + 349a: 6c5f mov r1, r7 + 349c: e3fff2a8 bsr 0x19ec // 19ec <__memcpy_fast> + m_send.SendLen = sled; + 34a0: 3240 movi r2, 64 + 34a2: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 34a4: 9861 ld.w r3, (r14, 0x4) + 34a6: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 34a8: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 34aa: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 34ac: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 34ae: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 34b0: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 34b2: 3201 movi r2, 1 + 34b4: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 34b6: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 34b8: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 34ba: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 34bc: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 34be: 247f addi r4, 128 + 34c0: 1064 lrw r3, 0x200000b8 // 34d0 + 34c2: 9360 ld.w r3, (r3, 0x0) + 34c4: b461 st.w r3, (r4, 0x4) +} + 34c6: 1402 addi r14, r14, 8 + 34c8: 1494 pop r4-r7, r15 + 34ca: 0000 bkpt + 34cc: 20000364 .long 0x20000364 + 34d0: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Clear_SendFlag: + +000034d4 : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 34d4: 1063 lrw r3, 0x200003c4 // 34e0 + 34d6: 3200 movi r2, 0 + 34d8: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 34da: a347 st.b r2, (r3, 0x7) +} + 34dc: 783c jmp r15 + 34de: 0000 bkpt + 34e0: 200003c4 .long 0x200003c4 + +Disassembly of section .text.BUS485_Jump_Boot: + +000034e4 : +void BUS485_Jump_Boot(U8_T jump) +{ + m_send.Jump_Flag = jump; + 34e4: 1062 lrw r3, 0x200003c4 // 34ec + 34e6: a30c st.b r0, (r3, 0xc) +} + 34e8: 783c jmp r15 + 34ea: 0000 bkpt + 34ec: 200003c4 .long 0x200003c4 + +Disassembly of section .text.BUS485Send_Task: + +000034f0 : + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 34f0: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 34f2: 108a lrw r4, 0x200003c4 // 3518 + 34f4: 8469 ld.b r3, (r4, 0x9) + 34f6: 3b41 cmpnei r3, 1 + 34f8: 080e bt 0x3514 // 3514 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 34fa: 1069 lrw r3, 0x200003a4 // 351c + 34fc: 8b37 ld.h r1, (r3, 0x2e) + 34fe: 3201 movi r2, 1 + 3500: 1008 lrw r0, 0x20000364 // 3520 + 3502: e3ffff7d bsr 0x33fc // 33fc + 3506: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 3508: 2801 subi r0, 2 + 350a: 7400 zextb r0, r0 + 350c: 3801 cmphsi r0, 2 + 350e: 0803 bt 0x3514 // 3514 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 3510: 3300 movi r3, 0 + 3512: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 3514: 1491 pop r4, r15 + 3516: 0000 bkpt + 3518: 200003c4 .long 0x200003c4 + 351c: 200003a4 .long 0x200003a4 + 3520: 20000364 .long 0x20000364 + +Disassembly of section .text.BusIdle_Task: + +00003524 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 3524: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 3526: 10ae lrw r5, 0x20000364 // 355c + 3528: 3460 movi r4, 96 + 352a: 6114 addu r4, r5 + 352c: 8464 ld.b r3, (r4, 0x4) + 352e: 3b40 cmpnei r3, 0 + 3530: 0c15 bf 0x355a // 355a + 3532: 8466 ld.b r3, (r4, 0x6) + 3534: 3b41 cmpnei r3, 1 + 3536: 0c12 bf 0x355a // 355a + { + CK_CPU_DisAllNormalIrq(); + 3538: e3fffdb5 bsr 0x30a2 // 30a2 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 353c: 8465 ld.b r3, (r4, 0x5) + 353e: 3b41 cmpnei r3, 1 + 3540: 080b bt 0x3556 // 3556 + 3542: 1068 lrw r3, 0x200000b8 // 3560 + 3544: 9340 ld.w r2, (r3, 0x0) + 3546: 957f ld.w r3, (r5, 0x7c) + 3548: 608e subu r2, r3 + 354a: 957c ld.w r3, (r5, 0x70) + 354c: 2305 addi r3, 6 + 354e: 64c8 cmphs r2, r3 + 3550: 0c03 bf 0x3556 // 3556 + { + m_send.BusState_Flag = UART_BUSIDLE; + 3552: 3300 movi r3, 0 + 3554: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 3556: e3fffda3 bsr 0x309c // 309c + } +} + 355a: 1492 pop r4-r5, r15 + 355c: 20000364 .long 0x20000364 + 3560: 200000b8 .long 0x200000b8 + +Disassembly of section .text.BusBusy_Task: + +00003564 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 3564: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 3566: 1094 lrw r4, 0x20000364 // 35b4 + 3568: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 356a: e3fffd9c bsr 0x30a2 // 30a2 + m_send.BusState_Flag = UART_BUSBUSY; + 356e: 6150 addu r5, r4 + 3570: 3301 movi r3, 1 + 3572: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3574: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 3576: 1071 lrw r3, 0x200000b8 // 35b8 + 3578: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 357a: 9300 ld.w r0, (r3, 0x0) + 357c: 3380 movi r3, 128 + 357e: 60d0 addu r3, r4 + 3580: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 3582: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3584: 600e subu r0, r3 + 3586: e3fffd79 bsr 0x3078 // 3078 <__umodsi3> + 358a: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 358c: 3105 movi r1, 5 + 358e: 108c lrw r4, 0x20000048 // 35bc + 3590: 9400 ld.w r0, (r4, 0x0) + 3592: e3fff5a8 bsr 0x20e2 // 20e2 + 3596: 3841 cmpnei r0, 1 + 3598: 0806 bt 0x35a4 // 35a4 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 359a: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 359c: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 359e: e3fffd7f bsr 0x309c // 309c +} + 35a2: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 35a4: 9400 ld.w r0, (r4, 0x0) + 35a6: 3105 movi r1, 5 + 35a8: e3fff59d bsr 0x20e2 // 20e2 + 35ac: 3840 cmpnei r0, 0 + 35ae: 0bf8 bt 0x359e // 359e + m_send.HighBit_Flag = 0x00; //低电平 + 35b0: 3300 movi r3, 0 + 35b2: 07f5 br 0x359c // 359c + 35b4: 20000364 .long 0x20000364 + 35b8: 200000b8 .long 0x200000b8 + 35bc: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +000035c0 : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 35c0: 1423 subi r14, r14, 12 + 35c2: b862 st.w r3, (r14, 0x8) + 35c4: b841 st.w r2, (r14, 0x4) + 35c6: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 35c8: 1403 addi r14, r14, 12 + 35ca: 783c jmp r15 + +Disassembly of section .text.EEPROM_CheckSum: + +000035cc : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 35cc: 6cc3 mov r3, r0 + 35ce: 6040 addu r1, r0 + U8_T data_sum = 0; + 35d0: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 35d6: 783c jmp r15 + data_sum += data[i]; + 35d8: 8340 ld.b r2, (r3, 0x0) + 35da: 6008 addu r0, r2 + 35dc: 7400 zextb r0, r0 + 35de: 2300 addi r3, 1 + 35e0: 07f9 br 0x35d2 // 35d2 + +Disassembly of section .text.EEPROM_ReadParaInfo: + +000035e4 : + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 35e4: 14d1 push r4, r15 + 35e6: 143b subi r14, r14, 108 + 35e8: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 35ea: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 35ec: 3264 movi r2, 100 + 35ee: 3100 movi r1, 0 + 35f0: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 35f2: b860 st.w r3, (r14, 0x0) + 35f4: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 35f8: e3fff1b6 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 35fc: 6cbb mov r2, r14 + 35fe: 3104 movi r1, 4 + 3600: 1014 lrw r0, 0x10000100 // 3650 + 3602: e3fff70b bsr 0x2418 // 2418 + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 3606: d84e0000 ld.b r2, (r14, 0x0) + 360a: 33a6 movi r3, 166 + 360c: 64ca cmpne r2, r3 + 360e: 0c04 bf 0x3616 // 3616 + return 0x00; + } + } + } + + return 0x01; + 3610: 3001 movi r0, 1 +} + 3612: 141b addi r14, r14, 108 + 3614: 1491 pop r4, r15 + read_len |= read_info[1]; + 3616: d82e0002 ld.b r1, (r14, 0x2) + 361a: d86e0001 ld.b r3, (r14, 0x1) + 361e: 4128 lsli r1, r1, 8 + 3620: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 3622: 3364 movi r3, 100 + 3624: 644c cmphs r3, r1 + 3626: 0ff5 bf 0x3610 // 3610 + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 3628: 1a02 addi r2, r14, 8 + 362a: 100b lrw r0, 0x10000104 // 3654 + 362c: e3fff6f6 bsr 0x2418 // 2418 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 3630: 3108 movi r1, 8 + 3632: 1802 addi r0, r14, 8 + 3634: e3ffffcc bsr 0x35cc // 35cc + 3638: d86e0003 ld.b r3, (r14, 0x3) + 363c: 640e cmpne r3, r0 + 363e: 0be9 bt 0x3610 // 3610 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 3640: 3208 movi r2, 8 + 3642: 1902 addi r1, r14, 8 + 3644: 6c13 mov r0, r4 + 3646: e3fff1d3 bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 364a: 3000 movi r0, 0 + 364c: 07e3 br 0x3612 // 3612 + 364e: 0000 bkpt + 3650: 10000100 .long 0x10000100 + 3654: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00003658 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 3658: 14d0 push r15 + 365a: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 365c: 3300 movi r3, 0 + 365e: 2b59 subi r3, 90 + 3660: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 3664: 3308 movi r3, 8 + 3666: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 366a: 3300 movi r3, 0 + 366c: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 3670: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 3672: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 3674: 3208 movi r2, 8 + 3676: 6c0f mov r0, r3 + 3678: e3fff1ba bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 367c: 3108 movi r1, 8 + 367e: e3ffffa7 bsr 0x35cc // 35cc + 3682: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 3686: 6cbb mov r2, r14 + 3688: 310c movi r1, 12 + 368a: 1004 lrw r0, 0x10000100 // 3698 + 368c: e3fff676 bsr 0x2378 // 2378 + + return 0; +} + 3690: 3000 movi r0, 0 + 3692: 141b addi r14, r14, 108 + 3694: 1490 pop r15 + 3696: 0000 bkpt + 3698: 10000100 .long 0x10000100 + +Disassembly of section .text.Boot_Comm_CheckSum: + +0000369c : + } + +} + +U8_T Boot_Comm_CheckSum(U8_T * buffer, U16_T len) +{ + 369c: 14c1 push r4 + U8_T sum = 0; + 369e: 3300 movi r3, 0 + U16_T i=0; + + while(len--) + 36a0: 1047 lrw r2, 0xffff // 36bc + 36a2: 2900 subi r1, 1 + 36a4: 7445 zexth r1, r1 + 36a6: 6486 cmpne r1, r2 + 36a8: 0804 bt 0x36b0 // 36b0 + { + sum += buffer[i]; + i++; + } + return (~sum); + 36aa: 6cce nor r3, r3 + 36ac: 740c zextb r0, r3 +} + 36ae: 1481 pop r4 + sum += buffer[i]; + 36b0: 8080 ld.b r4, (r0, 0x0) + 36b2: 60d0 addu r3, r4 + 36b4: 74cc zextb r3, r3 + 36b6: 2000 addi r0, 1 + 36b8: 07f5 br 0x36a2 // 36a2 + 36ba: 0000 bkpt + 36bc: 0000ffff .long 0x0000ffff + +Disassembly of section .text.Boot_Comm_FillReplyPack: + +000036c0 : + } + return xda; +} + +void Boot_Comm_FillReplyPack(BOOT_INFO_T *ack_uart) +{ + 36c0: 14d4 push r4-r7, r15 + 36c2: 1421 subi r14, r14, 4 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 36c4: 3780 movi r7, 128 + + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 36c6: 1074 lrw r3, 0x200003f4 // 3714 + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 36c8: 47e1 lsli r7, r7, 1 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 36ca: 8340 ld.b r2, (r3, 0x0) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 36cc: 61c0 addu r7, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 36ce: 8361 ld.b r3, (r3, 0x1) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 36d0: 8fb8 ld.h r5, (r7, 0x30) + ack_uart->ackBuffer[BCOMM_FMT_TYPE] = g_mcu_dev.dev_type; + 36d2: a066 st.b r3, (r0, 0x6) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 36d4: 2507 addi r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 36d6: 1071 lrw r3, 0x2000041c // 3718 + 36d8: 8363 ld.b r3, (r3, 0x3) + U16_T data_len = ack_uart->ackLen + BCOMM_FMT_PARAM; + 36da: 7555 zexth r5, r5 + ack_uart->ackBuffer[BCOMM_FMT_RXAddr] = g_boot.pc_addr; + 36dc: a067 st.b r3, (r0, 0x7) + + ack_uart->ackBuffer[BCOMM_FMT_CMD] = ack_uart->cmd; + 36de: 8062 ld.b r3, (r0, 0x2) + 36e0: 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; + 36e2: 4d68 lsri r3, r5, 8 + ack_uart->ackBuffer[BCOMM_FMT_TXAddr] = g_mcu_dev.dev_addr; + 36e4: a044 st.b r2, (r0, 0x4) + ack_uart->ackBuffer[BCOMM_FMT_LEN_H] = (data_len >> 8) & 0xFF; + 36e6: a069 st.b r3, (r0, 0x9) + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 36e8: 8041 ld.b r2, (r0, 0x1) + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 36ea: 3300 movi r3, 0 + + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 36ec: 58ce addi r6, r0, 4 +{ + 36ee: 6d03 mov r4, r0 + ack_uart->ackBuffer[BCOMM_FMT_SN] = ack_uart->sn; + 36f0: a045 st.b r2, (r0, 0x5) + ack_uart->ackBuffer[BCOMM_FMT_LEN_L] = data_len & 0xFF; + 36f2: a0a8 st.b r5, (r0, 0x8) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = 0; + 36f4: a06a st.b r3, (r0, 0xa) + ack_uart->ackBuffer[BCOMM_FMT_CKS] = Boot_Comm_CheckSum(ack_uart->ackBuffer, data_len); + 36f6: 6c57 mov r1, r5 + 36f8: 6c1b mov r0, r6 + 36fa: e3ffffd1 bsr 0x369c // 369c + 36fe: a40a st.b r0, (r4, 0xa) +#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); + 3700: 3264 movi r2, 100 + 3702: 8f79 ld.h r3, (r7, 0x32) + 3704: 6c57 mov r1, r5 + 3706: b840 st.w r2, (r14, 0x0) + 3708: 6c1b mov r0, r6 + 370a: 3201 movi r2, 1 + 370c: e3fffeb2 bsr 0x3470 // 3470 + + //ack_uart->ackLen = 0x00; +} + 3710: 1401 addi r14, r14, 4 + 3712: 1494 pop r4-r7, r15 + 3714: 200003f4 .long 0x200003f4 + 3718: 2000041c .long 0x2000041c + +Disassembly of section .text.Boot_Time_Refresh: + +0000371c : + +} + +void Boot_Time_Refresh(void) +{ + g_boot.bootTick = SysTick_1ms; + 371c: 1063 lrw r3, 0x200000b8 // 3728 + 371e: 9340 ld.w r2, (r3, 0x0) + 3720: 1063 lrw r3, 0x2000051c // 372c + 3722: b34e st.w r2, (r3, 0x38) +} + 3724: 783c jmp r15 + 3726: 0000 bkpt + 3728: 200000b8 .long 0x200000b8 + 372c: 2000051c .long 0x2000051c + +Disassembly of section .text.Boot_Comm_UpgradeProcess: + +00003730 : +{ + 3730: 14d4 push r4-r7, r15 + 3732: 1423 subi r14, r14, 12 + data_len |= data[BCOMM_FMT_LEN_L]; + 3734: 8065 ld.b r3, (r0, 0x5) + 3736: 8044 ld.b r2, (r0, 0x4) + 3738: 4368 lsli r3, r3, 8 + 373a: 6cc8 or r3, r2 + if(len != data_len) { + 373c: 644e cmpne r3, r1 +{ + 373e: 6d43 mov r5, r0 + data_len |= data[BCOMM_FMT_LEN_L]; + 3740: b860 st.w r3, (r14, 0x0) + if(len != data_len) { + 3742: 08aa bt 0x3896 // 3896 + if(Boot_Comm_CheckSum(data,len) != 0) { + 3744: 6c4f mov r1, r3 + 3746: e3ffffab bsr 0x369c // 369c + 374a: 3840 cmpnei r0, 0 + 374c: 6cc3 mov r3, r0 + 374e: 08a6 bt 0x389a // 389a + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 3750: 8541 ld.b r2, (r5, 0x1) + 3752: 744a sextb r1, r2 + 3754: 39df btsti r1, 31 + 3756: 1295 lrw r4, 0x2000041c // 38a8 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 3758: 8401 ld.b r0, (r4, 0x1) + 375a: 310f movi r1, 15 + if( (data[BCOMM_FMT_SN] & 0x80) == 0x80){ + 375c: 0c2d bf 0x37b6 // 37b6 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 375e: 6884 and r2, r1 + 3760: 6482 cmpne r0, r2 + 3762: 60cd addc r3, r3 + deal_flag = 0x00; + 3764: 740c zextb r0, r3 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 3766: 3700 movi r7, 0 + group_flag = 0x01; + 3768: 3301 movi r3, 1 + if( (data[BCOMM_FMT_TYPE] != g_mcu_dev.dev_type) && (data[BCOMM_FMT_TYPE] != 0xFF) ){ + 376a: 12d1 lrw r6, 0x200003f4 // 38ac + 376c: 8542 ld.b r2, (r5, 0x2) + 376e: 8621 ld.b r1, (r6, 0x1) + 3770: 6486 cmpne r1, r2 + 3772: 0c04 bf 0x377a // 377a + 3774: 31ff movi r1, 255 + 3776: 644a cmpne r2, r1 + 3778: 0893 bt 0x389e // 389e + if( (data[BCOMM_FMT_RXAddr] != g_mcu_dev.dev_addr) && (data[BCOMM_FMT_RXAddr] != 0xFF) ){ + 377a: 8543 ld.b r2, (r5, 0x3) + 377c: 8620 ld.b r1, (r6, 0x0) + 377e: 6486 cmpne r1, r2 + 3780: 0c04 bf 0x3788 // 3788 + 3782: 31ff movi r1, 255 + 3784: 644a cmpne r2, r1 + 3786: 088e bt 0x38a2 // 38a2 + 3788: b862 st.w r3, (r14, 0x8) + 378a: b801 st.w r0, (r14, 0x4) + Boot_Time_Refresh(); + 378c: e3ffffc8 bsr 0x371c // 371c + g_boot.pc_addr = data[BCOMM_FMT_TXAddr]; + 3790: 8560 ld.b r3, (r5, 0x0) + 3792: a463 st.b r3, (r4, 0x3) + g_boot.sn = data[BCOMM_FMT_SN] & 0x0F; + 3794: 8541 ld.b r2, (r5, 0x1) + 3796: 310f movi r1, 15 + 3798: 6884 and r2, r1 + 379a: a441 st.b r2, (r4, 0x1) + switch(g_boot.cmd){ + 379c: 31c0 movi r1, 192 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 379e: 8547 ld.b r2, (r5, 0x7) + switch(g_boot.cmd){ + 37a0: 644a cmpne r2, r1 + g_boot.cmd = data[BCOMM_FMT_CMD]; + 37a2: a442 st.b r2, (r4, 0x2) + switch(g_boot.cmd){ + 37a4: 9801 ld.w r0, (r14, 0x4) + 37a6: 9862 ld.w r3, (r14, 0x8) + 37a8: 0c1a bf 0x37dc // 37dc + 37aa: 31c1 movi r1, 193 + 37ac: 644a cmpne r2, r1 + 37ae: 0c62 bf 0x3872 // 3872 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplyFAIL; + 37b0: 3201 movi r2, 1 + 37b2: a44c st.b r2, (r4, 0xc) + 37b4: 046a br 0x3888 // 3888 + if( (data[BCOMM_FMT_SN] & 0x0F) != g_boot.sn){ + 37b6: 6848 and r1, r2 + 37b8: 6442 cmpne r0, r1 + 37ba: 080c bt 0x37d2 // 37d2 + }else if( (data[BCOMM_FMT_SN] & 0x40) == 0x40 ){ + 37bc: 3140 movi r1, 64 + 37be: 6884 and r2, r1 + 37c0: 3a40 cmpnei r2, 0 + 37c2: 0c0b bf 0x37d8 // 37d8 + if(data[BCOMM_FMT_CMD] == g_boot.ackBuffer[BCOMM_FMT_CMD] ){ + 37c4: 8527 ld.b r1, (r5, 0x7) + 37c6: 844b ld.b r2, (r4, 0xb) + 37c8: 6486 cmpne r1, r2 + 37ca: 65c3 mvcv r7 + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 37cc: 75dc zextb r7, r7 + 37ce: 3000 movi r0, 0 + 37d0: 07cd br 0x376a // 376a + reply_flag = 0x01; + 37d2: 3701 movi r7, 1 + deal_flag = 0x01; + 37d4: 3001 movi r0, 1 + 37d6: 07ca br 0x376a // 376a + U8_T deal_flag = 0,group_flag = 0,reply_flag = 0,setinfo_flag = 0,crcResultFlag = 0; + 37d8: 3700 movi r7, 0 + 37da: 07fa br 0x37ce // 37ce + if( (deal_flag == 0x01) && (data_len >= (BCOMM_FMT_PARAM + 4) ) ){ + 37dc: 3841 cmpnei r0, 1 + 37de: 0819 bt 0x3810 // 3810 + 37e0: 9840 ld.w r2, (r14, 0x0) + 37e2: 3a0b cmphsi r2, 12 + 37e4: 0c16 bf 0x3810 // 3810 + temp_data |= data[BCOMM_FMT_PARAM]; + 37e6: 8529 ld.b r1, (r5, 0x9) + 37e8: 8548 ld.b r2, (r5, 0x8) + 37ea: 4128 lsli r1, r1, 8 + 37ec: 6c48 or r1, r2 + if(temp_data != g_boot.bootTimeout){ + 37ee: 1151 lrw r2, 0x2000051c // 38b0 + 37f0: 920d ld.w r0, (r2, 0x34) + 37f2: 6406 cmpne r1, r0 + 37f4: 0c09 bf 0x3806 // 3806 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 37f6: 3909 cmphsi r1, 10 + 37f8: 0c3b bf 0x386e // 386e + 37fa: b22d st.w r1, (r2, 0x34) + g_boot.bootTimeout = g_boot.bootTimeout * 1000; + 37fc: 30fa movi r0, 250 + 37fe: 922d ld.w r1, (r2, 0x34) + 3800: 4002 lsli r0, r0, 2 + 3802: 7c40 mult r1, r0 + 3804: b22d st.w r1, (r2, 0x34) + 3806: 852b ld.b r1, (r5, 0xb) + 3808: 850a ld.b r0, (r5, 0xa) + 380a: 4128 lsli r1, r1, 8 + 380c: 6c40 or r1, r0 + g_boot.ackValidity = temp_data; + 380e: aa39 st.h r1, (r2, 0x32) + if(reply_flag != 0x01) break; //不回复,直接退出 + 3810: 3f41 cmpnei r7, 1 + 3812: 082c bt 0x386a // 386a + g_boot.ackBuffer[BCOMM_FMT_PARAM] = Project_Area; //当前处于Bootload区域 0x01:Boot;0x02:APP + 3814: 3202 movi r2, 2 + 3816: a44c st.b r2, (r4, 0xc) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 1] = g_mcu_dev.dev_boot_ver; //Boot 软件版本号 + 3818: 8642 ld.b r2, (r6, 0x2) + 381a: a44d st.b r2, (r4, 0xd) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 2] = g_mcu_dev.dev_app_ver; //APP 软件版本号 + 381c: 8643 ld.b r2, (r6, 0x3) + 381e: a44e st.b r2, (r4, 0xe) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 3] = 0x03; //UUID 长度 MD203 UID 3Byte + 3820: 3203 movi r2, 3 + 3822: a44f st.b r2, (r4, 0xf) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 4] = SYSCON->UID0; + 3824: 1144 lrw r2, 0x2000005c // 38b4 + 3826: 9240 ld.w r2, (r2, 0x0) + 3828: 227f addi r2, 128 + 382a: 9239 ld.w r1, (r2, 0x64) + 382c: a430 st.b r1, (r4, 0x10) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 5] = SYSCON->UID1; + 382e: 923a ld.w r1, (r2, 0x68) + 3830: a431 st.b r1, (r4, 0x11) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 6] = SYSCON->UID2; + 3832: 925b ld.w r2, (r2, 0x6c) + 3834: a452 st.b r2, (r4, 0x12) + if(g_mcu_dev.dev_name_len > EEPROM_DEV_NAME_Size) g_mcu_dev.dev_name_len = EEPROM_DEV_NAME_Size; + 3836: 8624 ld.b r1, (r6, 0x4) + 3838: 3220 movi r2, 32 + 383a: 6448 cmphs r2, r1 + 383c: 0802 bt 0x3840 // 3840 + 383e: a644 st.b r2, (r6, 0x4) + g_boot.ackBuffer[BCOMM_FMT_PARAM + 7] = g_mcu_dev.dev_name_len; + 3840: 8644 ld.b r2, (r6, 0x4) + 3842: a453 st.b r2, (r4, 0x13) + 3844: 3220 movi r2, 32 + 3846: 101a lrw r0, 0x200003f4 // 38ac + 3848: 1038 lrw r1, 0x2000041c // 38a8 + 384a: 2a00 subi r2, 1 + 384c: 7488 zextb r2, r2 + g_boot.ackBuffer[BCOMM_FMT_PARAM + i + 8] = g_mcu_dev.dev_name[i]; + 384e: 8085 ld.b r4, (r0, 0x5) + for(U8_T i=0;i + g_boot.ackLen = 0x08 + EEPROM_DEV_NAME_Size; + 385a: 1056 lrw r2, 0x2000051c // 38b0 + 385c: 3128 movi r1, 40 + 385e: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 3860: 3b40 cmpnei r3, 0 + 3862: 0804 bt 0x386a // 386a + Boot_Comm_FillReplyPack(&g_boot); + 3864: 1011 lrw r0, 0x2000041c // 38a8 + 3866: e3ffff2d bsr 0x36c0 // 36c0 +} + 386a: 1403 addi r14, r14, 12 + 386c: 1494 pop r4-r7, r15 + if(g_boot.bootTimeout < 10) g_boot.bootTimeout = 10; + 386e: 310a movi r1, 10 + 3870: 07c5 br 0x37fa // 37fa + if(deal_flag != 0x01) break; //不处理直接退出 + 3872: 3841 cmpnei r0, 1 + 3874: 080d bt 0x388e // 388e + if(data[BCOMM_FMT_PARAM] == 0x01){ + 3876: 8548 ld.b r2, (r5, 0x8) + 3878: 3a41 cmpnei r2, 1 + 387a: 0b9b bt 0x37b0 // 37b0 + 387c: b860 st.w r3, (r14, 0x0) + BUS485_Jump_Boot(0x01); + 387e: e3fffe33 bsr 0x34e4 // 34e4 + g_boot.ackBuffer[BCOMM_FMT_PARAM] = BCOMM_CMD_ReplySUCC; + 3882: 3300 movi r3, 0 + 3884: a46c st.b r3, (r4, 0xc) + 3886: 9860 ld.w r3, (r14, 0x0) + g_boot.ackLen = 1; + 3888: 104a lrw r2, 0x2000051c // 38b0 + 388a: 3101 movi r1, 1 + 388c: aa38 st.h r1, (r2, 0x30) + if( (group_flag == 0x00) && (reply_flag == 0x01) ) + 388e: 3b40 cmpnei r3, 0 + 3890: 0bed bt 0x386a // 386a + 3892: 3f41 cmpnei r7, 1 + 3894: 07e7 br 0x3862 // 3862 + return 0x01; + 3896: 3001 movi r0, 1 + 3898: 07e9 br 0x386a // 386a + return 0x02; + 389a: 3002 movi r0, 2 + 389c: 07e7 br 0x386a // 386a + return 0x03; + 389e: 3003 movi r0, 3 + 38a0: 07e5 br 0x386a // 386a + return 0x04; + 38a2: 3004 movi r0, 4 + 38a4: 07e3 br 0x386a // 386a + 38a6: 0000 bkpt + 38a8: 2000041c .long 0x2000041c + 38ac: 200003f4 .long 0x200003f4 + 38b0: 2000051c .long 0x2000051c + 38b4: 2000005c .long 0x2000005c + +Disassembly of section .text.Debug_Init: + +000038b8 : + * + * +*/ +void Debug_Init(void) +{ + memset(&Debug_Inf,0x00,sizeof(DEBUG_UNIT)); + 38b8: 1066 lrw r3, 0x20000658 // 38d0 + 38ba: 3200 movi r2, 0 + 38bc: b340 st.w r2, (r3, 0x0) + 38be: b341 st.w r2, (r3, 0x4) + + Debug_Inf.DevAddr = g_eeprom.dev_addr; + 38c0: 1045 lrw r2, 0x200003ec // 38d4 + 38c2: 8220 ld.b r1, (r2, 0x0) + 38c4: a321 st.b r1, (r3, 0x1) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 38c6: 8221 ld.b r1, (r2, 0x1) + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 38c8: 8242 ld.b r2, (r2, 0x2) + Debug_Inf.PipeFlag = g_eeprom.pipe_flag; + 38ca: a322 st.b r1, (r3, 0x2) + Debug_Inf.TempDiff = g_eeprom.temp_diff; + 38cc: a343 st.b r2, (r3, 0x3) + +} + 38ce: 783c jmp r15 + 38d0: 20000658 .long 0x20000658 + 38d4: 200003ec .long 0x200003ec + +Disassembly of section .text.DisPlay_Task: + +000038d8 : + * + * +*/ +static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 +void DisPlay_Task(void) +{ + 38d8: 14d2 push r4-r5, r15 + if(Debug_Inf.State == 0x00) //正常模式 + 38da: 1367 lrw r3, 0x20000658 // 3a74 + 38dc: 8360 ld.b r3, (r3, 0x0) + 38de: 3b40 cmpnei r3, 0 + 38e0: 08c8 bt 0x3a70 // 3a70 + { + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 38e2: 1386 lrw r4, 0x20000660 // 3a78 + 38e4: 8462 ld.b r3, (r4, 0x2) + 38e6: 748e sextb r2, r3 + 38e8: 3adf btsti r2, 31 + 38ea: 13a5 lrw r5, 0x200000b8 // 3a7c + 38ec: 0c81 bf 0x39ee // 39ee + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 38ee: 8446 ld.b r2, (r4, 0x6) + 38f0: 4379 lsli r3, r3, 25 + 38f2: 4239 lsli r1, r2, 25 + 38f4: 4b7d lsri r3, r3, 29 + 38f6: 493d lsri r1, r1, 29 + 38f8: 64c6 cmpne r1, r3 + 38fa: 0c16 bf 0x3926 // 3926 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 38fc: 3070 movi r0, 112 + 38fe: 4324 lsli r1, r3, 4 + 3900: 6881 andn r2, r0 + 3902: 6c84 or r2, r1 + 3904: a446 st.b r2, (r4, 0x6) + + SYSCON->UREG0 &= 0xFFFF00FF; + 3906: 30ff movi r0, 255 + 3908: 125e lrw r2, 0x2000005c // 3a80 + 390a: 4008 lsli r0, r0, 8 + 390c: 9240 ld.w r2, (r2, 0x0) + 390e: 22ff addi r2, 256 + 3910: 9220 ld.w r1, (r2, 0x0) + 3912: 6841 andn r1, r0 + 3914: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 3916: 9220 ld.w r1, (r2, 0x0) + 3918: 4368 lsli r3, r3, 8 + 391a: 6cc4 or r3, r1 + 391c: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 391e: 3301 movi r3, 1 + 3920: a476 st.b r3, (r4, 0x16) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3922: 9560 ld.w r3, (r5, 0x0) + 3924: b468 st.w r3, (r4, 0x20) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 3926: 8462 ld.b r3, (r4, 0x2) + 3928: 8446 ld.b r2, (r4, 0x6) + 392a: 437c lsli r3, r3, 28 + 392c: 425c lsli r2, r2, 28 + 392e: 4a5d lsri r2, r2, 29 + 3930: 4b7d lsri r3, r3, 29 + 3932: 64ca cmpne r2, r3 + 3934: 1254 lrw r2, 0x20000144 // 3a84 + 3936: 0804 bt 0x393e // 393e + 3938: 8220 ld.b r1, (r2, 0x0) + 393a: 3941 cmpnei r1, 1 + 393c: 0819 bt 0x396e // 396e + { + OpenDisPlay_Flag = 0x00; + 393e: 3100 movi r1, 0 + 3940: a220 st.b r1, (r2, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 3942: 8446 ld.b r2, (r4, 0x6) + 3944: 300e movi r0, 14 + 3946: 4321 lsli r1, r3, 1 + 3948: 6881 andn r2, r0 + 394a: 6c84 or r2, r1 + 394c: a446 st.b r2, (r4, 0x6) + + + SYSCON->UREG0 &= 0xFF00FFFF; + 394e: 30ff movi r0, 255 + 3950: 124c lrw r2, 0x2000005c // 3a80 + 3952: 4010 lsli r0, r0, 16 + 3954: 9240 ld.w r2, (r2, 0x0) + 3956: 22ff addi r2, 256 + 3958: 9220 ld.w r1, (r2, 0x0) + 395a: 6841 andn r1, r0 + 395c: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 395e: 9220 ld.w r1, (r2, 0x0) + 3960: 4370 lsli r3, r3, 16 + 3962: 6cc4 or r3, r1 + 3964: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3966: 3301 movi r3, 1 + 3968: a476 st.b r3, (r4, 0x16) + TempCtrl.TempChange_Tick = SysTick_1ms; + 396a: 9560 ld.w r3, (r5, 0x0) + 396c: b468 st.w r3, (r4, 0x20) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 396e: 8461 ld.b r3, (r4, 0x1) + 3970: 8445 ld.b r2, (r4, 0x5) + 3972: 64ca cmpne r2, r3 + 3974: 0c11 bf 0x3996 // 3996 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + 3976: 1243 lrw r2, 0x2000005c // 3a80 + 3978: 9220 ld.w r1, (r2, 0x0) + 397a: 21ff addi r1, 256 + 397c: 9140 ld.w r2, (r1, 0x0) + 397e: 4248 lsli r2, r2, 8 + 3980: 4a48 lsri r2, r2, 8 + 3982: b140 st.w r2, (r1, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3984: 9100 ld.w r0, (r1, 0x0) + 3986: 4358 lsli r2, r3, 24 + 3988: 6c80 or r2, r0 + 398a: b140 st.w r2, (r1, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 398c: 3201 movi r2, 1 + 398e: a456 st.b r2, (r4, 0x16) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3990: 9540 ld.w r2, (r5, 0x0) + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 3992: a465 st.b r3, (r4, 0x5) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3994: b448 st.w r2, (r4, 0x20) + } + + + if(TempCtrl.IndoorTemLast != TempCtrl.IndoorTem) //刷新室内温度 + 3996: 8c44 ld.h r2, (r4, 0x8) + 3998: 8c25 ld.h r1, (r4, 0xa) + 399a: 6486 cmpne r1, r2 + 399c: 0c0d bf 0x39b6 // 39b6 + { + TempCtrl.IndoorTemLast = TempCtrl.IndoorTem; + 399e: ac45 st.h r2, (r4, 0xa) + + + SYSCON->UREG0 &= 0x00FFFFFF; + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 39a0: 4378 lsli r3, r3, 24 + SYSCON->UREG0 &= 0x00FFFFFF; + 39a2: 1158 lrw r2, 0x2000005c // 3a80 + 39a4: 9240 ld.w r2, (r2, 0x0) + 39a6: 22ff addi r2, 256 + 39a8: 9220 ld.w r1, (r2, 0x0) + 39aa: 4128 lsli r1, r1, 8 + 39ac: 4928 lsri r1, r1, 8 + 39ae: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 39b0: 9220 ld.w r1, (r2, 0x0) + 39b2: 6cc4 or r3, r1 + 39b4: b260 st.w r3, (r2, 0x0) + + } + + if(((TempCtrl.ReportTemLast > TempCtrl.ReportTem) && (TempCtrl.ReportTemLast - TempCtrl.ReportTem > 10)) \ + 39b6: 8c47 ld.h r2, (r4, 0xe) + 39b8: 8c66 ld.h r3, (r4, 0xc) + 39ba: 648c cmphs r3, r2 + 39bc: 0804 bt 0x39c4 // 39c4 + 39be: 5a2d subu r1, r2, r3 + 39c0: 392a cmplti r1, 11 + 39c2: 0c06 bf 0x39ce // 39ce + || ((TempCtrl.ReportTem > TempCtrl.ReportTemLast) && (TempCtrl.ReportTem - TempCtrl.ReportTemLast > 10))) + 39c4: 64c8 cmphs r2, r3 + 39c6: 0809 bt 0x39d8 // 39d8 + 39c8: 5b49 subu r2, r3, r2 + 39ca: 3a2a cmplti r2, 11 + 39cc: 0806 bt 0x39d8 // 39d8 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 39ce: 9540 ld.w r2, (r5, 0x0) + 39d0: b447 st.w r2, (r4, 0x1c) + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 39d2: 3201 movi r2, 1 + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 39d4: ac67 st.h r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2024-12-16,变化一度上报一次 + 39d6: a456 st.b r2, (r4, 0x16) + } + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000 ) + 39d8: 9427 ld.w r1, (r4, 0x1c) + 39da: 9540 ld.w r2, (r5, 0x0) + 39dc: 6086 subu r2, r1 + 39de: 112b lrw r1, 0x752f // 3a88 + 39e0: 6484 cmphs r1, r2 + 39e2: 0806 bt 0x39ee // 39ee + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 39e4: 9540 ld.w r2, (r5, 0x0) + + TempCtrl.ReportTemLast = TempCtrl.ReportTem; + 39e6: ac67 st.h r3, (r4, 0xe) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 39e8: 3301 movi r3, 1 + TempCtrl.Temp_SendTick = SysTick_1ms; + 39ea: b447 st.w r2, (r4, 0x1c) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 39ec: a476 st.b r3, (r4, 0x16) + + } + } + + //开机状态 + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 39ee: 8442 ld.b r2, (r4, 0x2) + 39f0: 8466 ld.b r3, (r4, 0x6) + 39f2: 4a47 lsri r2, r2, 7 + 39f4: 4b27 lsri r1, r3, 7 + 39f6: 6486 cmpne r1, r2 + 39f8: 0c14 bf 0x3a20 // 3a20 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 39fa: 307f movi r0, 127 + 39fc: 4227 lsli r1, r2, 7 + 39fe: 68c0 and r3, r0 + 3a00: 6cc4 or r3, r1 + 3a02: a466 st.b r3, (r4, 0x6) + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 3a04: 30ff movi r0, 255 + 3a06: 107f lrw r3, 0x2000005c // 3a80 + 3a08: 9360 ld.w r3, (r3, 0x0) + 3a0a: 23ff addi r3, 256 + 3a0c: 9320 ld.w r1, (r3, 0x0) + 3a0e: 6841 andn r1, r0 + 3a10: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 3a12: 9320 ld.w r1, (r3, 0x0) + 3a14: 6c84 or r2, r1 + 3a16: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3a18: 3301 movi r3, 1 + 3a1a: a476 st.b r3, (r4, 0x16) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a1c: 9560 ld.w r3, (r5, 0x0) + 3a1e: b468 st.w r3, (r4, 0x20) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 3a20: 8476 ld.b r3, (r4, 0x16) + 3a22: 3b41 cmpnei r3, 1 + 3a24: 0815 bt 0x3a4e // 3a4e + 3a26: 9448 ld.w r2, (r4, 0x20) + 3a28: 9560 ld.w r3, (r5, 0x0) + 3a2a: 60ca subu r3, r2 + 3a2c: 1058 lrw r2, 0x3e7 // 3a8c + 3a2e: 64c8 cmphs r2, r3 + 3a30: 080f bt 0x3a4e // 3a4e + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a32: 9560 ld.w r3, (r5, 0x0) + 3a34: b468 st.w r3, (r4, 0x20) + TempCtrl.TempChange_Flag = 0x00; + 3a36: 3300 movi r3, 0 + 3a38: a476 st.b r3, (r4, 0x16) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 3a3a: 9560 ld.w r3, (r5, 0x0) + 3a3c: b467 st.w r3, (r4, 0x1c) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 3a3e: 1075 lrw r3, 0x200003ec // 3a90 + 3a40: 8367 ld.b r3, (r3, 0x7) + 3a42: 3b42 cmpnei r3, 2 + 3a44: 0805 bt 0x3a4e // 3a4e + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 3a46: 30fa movi r0, 250 + 3a48: 4002 lsli r0, r0, 2 + 3a4a: e000017b bsr 0x3d40 // 3d40 + } + + + + //状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 3a4e: 9448 ld.w r2, (r4, 0x20) + 3a50: 9560 ld.w r3, (r5, 0x0) + 3a52: 60ca subu r3, r2 + 3a54: 1050 lrw r2, 0x493df // 3a94 + 3a56: 64c8 cmphs r2, r3 + 3a58: 080c bt 0x3a70 // 3a70 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a5a: 9560 ld.w r3, (r5, 0x0) + 3a5c: b468 st.w r3, (r4, 0x20) + TempCtrl.Temp_SendTick = SysTick_1ms; + 3a5e: 9560 ld.w r3, (r5, 0x0) + 3a60: b467 st.w r3, (r4, 0x1c) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 3a62: 106c lrw r3, 0x200003ec // 3a90 + 3a64: 8367 ld.b r3, (r3, 0x7) + 3a66: 3b42 cmpnei r3, 2 + 3a68: 0804 bt 0x3a70 // 3a70 + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 3a6a: 100c lrw r0, 0xea60 // 3a98 + 3a6c: e000016a bsr 0x3d40 // 3d40 + } + } + } +} + 3a70: 1492 pop r4-r5, r15 + 3a72: 0000 bkpt + 3a74: 20000658 .long 0x20000658 + 3a78: 20000660 .long 0x20000660 + 3a7c: 200000b8 .long 0x200000b8 + 3a80: 2000005c .long 0x2000005c + 3a84: 20000144 .long 0x20000144 + 3a88: 0000752f .long 0x0000752f + 3a8c: 000003e7 .long 0x000003e7 + 3a90: 200003ec .long 0x200003ec + 3a94: 000493df .long 0x000493df + 3a98: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.TemCtrl_Init: + +00003a9c : + * 函数功能:温控初始化 + * + * +*/ +void TemCtrl_Init(void) +{ + 3a9c: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 3a9e: 1292 lrw r4, 0x20000660 // 3be4 + 3aa0: 3224 movi r2, 36 + 3aa2: 3100 movi r1, 0 + 3aa4: 6c13 mov r0, r4 + 3aa6: e3ffef5f bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 3aaa: 1270 lrw r3, 0x200000ac // 3be8 + 3aac: 9360 ld.w r3, (r3, 0x0) + 3aae: 3b80 bclri r3, 0 + 3ab0: 3b40 cmpnei r3, 0 + 3ab2: 0c92 bf 0x3bd6 // 3bd6 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 3ab4: 122e lrw r1, 0x5afe // 3bec + 3ab6: 3000 movi r0, 0 + 3ab8: e3fffd84 bsr 0x35c0 // 35c0 + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 3abc: 126d lrw r3, 0x200000a8 // 3bf0 + 3abe: 30ff movi r0, 255 + 3ac0: 9320 ld.w r1, (r3, 0x0) + 3ac2: 6840 and r1, r0 + 3ac4: 3940 cmpnei r1, 0 + 3ac6: 0c05 bf 0x3ad0 // 3ad0 + 3ac8: 9340 ld.w r2, (r3, 0x0) + 3aca: 6880 and r2, r0 + 3acc: 3a41 cmpnei r2, 1 + 3ace: 0877 bt 0x3bbc // 3bbc + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 3ad0: 9340 ld.w r2, (r3, 0x0) + 3ad2: 4227 lsli r1, r2, 7 + 3ad4: 307f movi r0, 127 + 3ad6: 8442 ld.b r2, (r4, 0x2) + 3ad8: 6880 and r2, r0 + 3ada: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 3adc: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 3ade: 9340 ld.w r2, (r3, 0x0) + 3ae0: 4a48 lsri r2, r2, 8 + 3ae2: 30ff movi r0, 255 + 3ae4: 6880 and r2, r0 + 3ae6: 3a40 cmpnei r2, 0 + 3ae8: 0c10 bf 0x3b08 // 3b08 + 3aea: 9340 ld.w r2, (r3, 0x0) + 3aec: 4a48 lsri r2, r2, 8 + 3aee: 6880 and r2, r0 + 3af0: 3a42 cmpnei r2, 2 + 3af2: 0c0b bf 0x3b08 // 3b08 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 3af4: 9320 ld.w r1, (r3, 0x0) + 3af6: 4928 lsri r1, r1, 8 + 3af8: 6840 and r1, r0 + 3afa: 3944 cmpnei r1, 4 + 3afc: 0c06 bf 0x3b08 // 3b08 + 3afe: 9340 ld.w r2, (r3, 0x0) + 3b00: 4a48 lsri r2, r2, 8 + 3b02: 6880 and r2, r0 + 3b04: 3a46 cmpnei r2, 6 + 3b06: 085f bt 0x3bc4 // 3bc4 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 3b08: 9340 ld.w r2, (r3, 0x0) + 3b0a: 3107 movi r1, 7 + 3b0c: 4a48 lsri r2, r2, 8 + 3b0e: 6884 and r2, r1 + 3b10: 3070 movi r0, 112 + 3b12: 8422 ld.b r1, (r4, 0x2) + 3b14: 4244 lsli r2, r2, 4 + 3b16: 6841 andn r1, r0 + 3b18: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 3b1a: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 3b1c: 9340 ld.w r2, (r3, 0x0) + 3b1e: 4a50 lsri r2, r2, 16 + 3b20: 30ff movi r0, 255 + 3b22: 6880 and r2, r0 + 3b24: 3a40 cmpnei r2, 0 + 3b26: 0c10 bf 0x3b46 // 3b46 + 3b28: 9340 ld.w r2, (r3, 0x0) + 3b2a: 4a50 lsri r2, r2, 16 + 3b2c: 6880 and r2, r0 + 3b2e: 3a41 cmpnei r2, 1 + 3b30: 0c0b bf 0x3b46 // 3b46 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 3b32: 9320 ld.w r1, (r3, 0x0) + 3b34: 4930 lsri r1, r1, 16 + 3b36: 6840 and r1, r0 + 3b38: 3942 cmpnei r1, 2 + 3b3a: 0c06 bf 0x3b46 // 3b46 + 3b3c: 9340 ld.w r2, (r3, 0x0) + 3b3e: 4a50 lsri r2, r2, 16 + 3b40: 6880 and r2, r0 + 3b42: 3a43 cmpnei r2, 3 + 3b44: 0844 bt 0x3bcc // 3bcc + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 3b46: 9340 ld.w r2, (r3, 0x0) + 3b48: 3107 movi r1, 7 + 3b4a: 4a50 lsri r2, r2, 16 + 3b4c: 6884 and r2, r1 + 3b4e: 300e movi r0, 14 + 3b50: 8422 ld.b r1, (r4, 0x2) + 3b52: 4241 lsli r2, r2, 1 + 3b54: 6841 andn r1, r0 + 3b56: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 3b58: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 3b5a: 9340 ld.w r2, (r3, 0x0) + 3b5c: 4a58 lsri r2, r2, 24 + 3b5e: 3a0f cmphsi r2, 16 + 3b60: 0c40 bf 0x3be0 // 3be0 + 3b62: 3284 movi r2, 132 + 3b64: 4256 lsli r2, r2, 22 + 3b66: 9320 ld.w r1, (r3, 0x0) + 3b68: 2a00 subi r2, 1 + 3b6a: 6448 cmphs r2, r1 + 3b6c: 0c3a bf 0x3be0 // 3be0 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 3b6e: 9360 ld.w r3, (r3, 0x0) + 3b70: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 3b72: a461 st.b r3, (r4, 0x1) + } + TempCtrl.IndoorTem = 24; + 3b74: 3318 movi r3, 24 + 3b76: ac64 st.h r3, (r4, 0x8) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 3b78: 3302 movi r3, 2 + 3b7a: a460 st.b r3, (r4, 0x0) + TempCtrl.CardState = 0x01; //默认插卡 + 3b7c: 3301 movi r3, 1 + 3b7e: a470 st.b r3, (r4, 0x10) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 3b80: 3300 movi r3, 0 + 3b82: a472 st.b r3, (r4, 0x12) + + SYSCON->UREG0 = 0x00000000; + 3b84: 3200 movi r2, 0 + 3b86: 107c lrw r3, 0x2000005c // 3bf4 + 3b88: 9360 ld.w r3, (r3, 0x0) + 3b8a: 23ff addi r3, 256 + 3b8c: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 3b8e: 8442 ld.b r2, (r4, 0x2) + 3b90: 4239 lsli r1, r2, 25 + 3b92: 493d lsri r1, r1, 29 + 3b94: 9300 ld.w r0, (r3, 0x0) + 3b96: 4128 lsli r1, r1, 8 + 3b98: 6c40 or r1, r0 + 3b9a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 3b9c: 423c lsli r1, r2, 28 + 3b9e: 493d lsri r1, r1, 29 + 3ba0: 9300 ld.w r0, (r3, 0x0) + 3ba2: 4130 lsli r1, r1, 16 + 3ba4: 6c40 or r1, r0 + 3ba6: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3ba8: 8421 ld.b r1, (r4, 0x1) + 3baa: 9300 ld.w r0, (r3, 0x0) + 3bac: 4138 lsli r1, r1, 24 + 3bae: 6c40 or r1, r0 + 3bb0: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 3bb2: 9320 ld.w r1, (r3, 0x0) + 3bb4: 4a47 lsri r2, r2, 7 + 3bb6: 6c84 or r2, r1 + 3bb8: b340 st.w r2, (r3, 0x0) +} + 3bba: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 3bbc: 8442 ld.b r2, (r4, 0x2) + 3bbe: 317f movi r1, 127 + 3bc0: 6884 and r2, r1 + 3bc2: 078d br 0x3adc // 3adc + TempCtrl.TemState_Now.mode = MODEL_COLD; + 3bc4: 8442 ld.b r2, (r4, 0x2) + 3bc6: 3170 movi r1, 112 + 3bc8: 6885 andn r2, r1 + 3bca: 07a8 br 0x3b1a // 3b1a + TempCtrl.TemState_Now.fan = FAN_MID; + 3bcc: 8442 ld.b r2, (r4, 0x2) + 3bce: 310e movi r1, 14 + 3bd0: 6885 andn r2, r1 + 3bd2: 3aa1 bseti r2, 1 + 3bd4: 07c2 br 0x3b58 // 3b58 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 3bd6: 8462 ld.b r3, (r4, 0x2) + 3bd8: 320e movi r2, 14 + 3bda: 68c9 andn r3, r2 + 3bdc: 3ba1 bseti r3, 1 + 3bde: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 3be0: 3318 movi r3, 24 + 3be2: 07c8 br 0x3b72 // 3b72 + 3be4: 20000660 .long 0x20000660 + 3be8: 200000ac .long 0x200000ac + 3bec: 00005afe .long 0x00005afe + 3bf0: 200000a8 .long 0x200000a8 + 3bf4: 2000005c .long 0x2000005c + +Disassembly of section .text.Tem_Valve_Ctrl: + +00003bf8 : + * 函数功能:阀门控制 + * + * +*/ +void Tem_Valve_Ctrl(void) +{ + 3bf8: 14c1 push r4 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 3bfa: 1077 lrw r3, 0x20000660 // 3c54 + 3bfc: 8300 ld.b r0, (r3, 0x0) + 3bfe: 3840 cmpnei r0, 0 + 3c00: 0802 bt 0x3c04 // 3c04 + 3c02: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 3c04: 8341 ld.b r2, (r3, 0x1) + 3c06: 3a40 cmpnei r2, 0 + 3c08: 0802 bt 0x3c0c // 3c0c + 3c0a: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 3c0c: 8322 ld.b r1, (r3, 0x2) + 3c0e: 4987 lsri r4, r1, 7 + 3c10: 3c40 cmpnei r4, 0 + 3c12: 0c1e bf 0x3c4e // 3c4e + 3c14: 3c41 cmpnei r4, 1 + 3c16: 080f bt 0x3c34 // 3c34 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 3c18: 4199 lsli r4, r1, 25 + 3c1a: 4c9d lsri r4, r4, 29 + 3c1c: 3c42 cmpnei r4, 2 + 3c1e: 0c12 bf 0x3c42 // 3c42 + 3c20: 3c44 cmpnei r4, 4 + 3c22: 0c16 bf 0x3c4e // 3c4e + 3c24: 3c40 cmpnei r4, 0 + 3c26: 0807 bt 0x3c34 // 3c34 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 3c28: 5a23 subi r1, r2, 1 + 3c2a: 6441 cmplt r0, r1 + 3c2c: 0c05 bf 0x3c36 // 3c36 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 3c2e: 8342 ld.b r2, (r3, 0x2) + 3c30: 3a80 bclri r2, 0 + } + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 3c32: a342 st.b r2, (r3, 0x2) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 3c34: 1481 pop r4 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 3c36: 2200 addi r2, 1 + 3c38: 6409 cmplt r2, r0 + 3c3a: 0ffd bf 0x3c34 // 3c34 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 3c3c: 8342 ld.b r2, (r3, 0x2) + 3c3e: 3aa0 bseti r2, 0 + 3c40: 07f9 br 0x3c32 // 3c32 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 3c42: 5a22 addi r1, r2, 1 + 3c44: 6405 cmplt r1, r0 + 3c46: 0bf4 bt 0x3c2e // 3c2e + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 3c48: 2a00 subi r2, 1 + 3c4a: 6481 cmplt r0, r2 + 3c4c: 07f7 br 0x3c3a // 3c3a + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 3c4e: 3980 bclri r1, 0 + 3c50: a322 st.b r1, (r3, 0x2) +} + 3c52: 07f1 br 0x3c34 // 3c34 + 3c54: 20000660 .long 0x20000660 + +Disassembly of section .text.TemCtrl_Pro: + +00003c58 : + * 函数功能:温控轮询任务,获得温控器温度、阀门状态 + * + * +*/ +void TemCtrl_Pro(void) +{ + 3c58: 14d0 push r15 + static uint32_t tick = 0; + if(SysTick_1ms - tick > 1000) + 3c5a: 100e lrw r0, 0x200000b8 // 3c90 + 3c5c: 102e lrw r1, 0x20000148 // 3c94 + 3c5e: 9040 ld.w r2, (r0, 0x0) + 3c60: 9160 ld.w r3, (r1, 0x0) + 3c62: 608e subu r2, r3 + 3c64: 33fa movi r3, 250 + 3c66: 4362 lsli r3, r3, 2 + 3c68: 648c cmphs r3, r2 + 3c6a: 0811 bt 0x3c8c // 3c8c + { + tick = SysTick_1ms; + 3c6c: 9060 ld.w r3, (r0, 0x0) + TempCtrl.IndoorTem = 240; + 3c6e: 32f0 movi r2, 240 + tick = SysTick_1ms; + 3c70: b160 st.w r3, (r1, 0x0) + + TempCtrl.ReportTem = TempCtrl.IndoorTem; + + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 3c72: 3000 movi r0, 0 + TempCtrl.IndoorTem = 240; + 3c74: 1069 lrw r3, 0x20000660 // 3c98 + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 3c76: 102a lrw r1, 0x5b17 // 3c9c + TempCtrl.IndoorTem = 240; + 3c78: ab44 st.h r2, (r3, 0x8) + TempCtrl.ReportTem = TempCtrl.IndoorTem; + 3c7a: ab46 st.h r2, (r3, 0xc) + TempCtrl.TemState_Now.indoor_t = TempCtrl.IndoorTem/10; + 3c7c: 3218 movi r2, 24 + 3c7e: a340 st.b r2, (r3, 0x0) + Dbg_Println(DBG_BIT_SYS_STATUS,"IndoorTem:%d TemState_Now.indoor_t:%d ",TempCtrl.IndoorTem,TempCtrl.TemState_Now.indoor_t); + 3c80: 3318 movi r3, 24 + 3c82: 32f0 movi r2, 240 + 3c84: e3fffc9e bsr 0x35c0 // 35c0 + + Tem_Valve_Ctrl(); + 3c88: e3ffffb8 bsr 0x3bf8 // 3bf8 + + } + 3c8c: 1490 pop r15 + 3c8e: 0000 bkpt + 3c90: 200000b8 .long 0x200000b8 + 3c94: 20000148 .long 0x20000148 + 3c98: 20000660 .long 0x20000660 + 3c9c: 00005b17 .long 0x00005b17 + +Disassembly of section .text.NetCRC16_Check: + +00003ca0 : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + 3ca0: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 3ca2: 3902 cmphsi r1, 3 + 3ca4: 0c1f bf 0x3ce2 // 3ce2 + U16_T alen = len-2; //CRC16??????? + 3ca6: 2901 subi r1, 2 + 3ca8: 7445 zexth r1, r1 + 3caa: 6d43 mov r5, r0 + 3cac: 3200 movi r2, 0 + 3cae: 106e lrw r3, 0xffff // 3ce4 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 3cb8: 6d8f mov r6, r3 + 3cba: 699c and r6, r7 + 3cbc: 3e40 cmpnei r6, 0 + 3cbe: 4b61 lsri r3, r3, 1 + 3cc0: 0c04 bf 0x3cc8 // 3cc8 + 3cc2: 10ca lrw r6, 0xffffa001 // 3ce8 + 3cc4: 6cd9 xor r3, r6 + 3cc6: 74cd zexth r3, r3 + 3cc8: 2c00 subi r4, 1 + 3cca: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 3ccc: 3c40 cmpnei r4, 0 + 3cce: 0bf5 bt 0x3cb8 // 3cb8 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 3cda: 6040 addu r1, r0 + 3cdc: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 3cde: 4b68 lsri r3, r3, 8 + 3ce0: a161 st.b r3, (r1, 0x1) +} + 3ce2: 1484 pop r4-r7 + 3ce4: 0000ffff .long 0x0000ffff + 3ce8: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00003cec : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 3cec: 14c3 push r4-r6 + 3cee: 6cc3 mov r3, r0 + 3cf0: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 3cf2: 10ac lrw r5, 0xffffa001 // 3d20 + xda = 0xFFFF ; + 3cf4: 100c lrw r0, 0xffff // 3d24 + for (i = 0; i < len; i++) + 3cf6: 644e cmpne r3, r1 + 3cf8: 0802 bt 0x3cfc // 3cfc + } + } + + return xda; +} + 3cfa: 1483 pop r4-r6 + xda ^= aStr[i] ; + 3cfc: 8340 ld.b r2, (r3, 0x0) + 3cfe: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 3d00: 3601 movi r6, 1 + xda ^= aStr[i] ; + 3d02: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 3d04: 6d03 mov r4, r0 + 3d06: 6918 and r4, r6 + 3d08: 3c40 cmpnei r4, 0 + 3d0a: 4801 lsri r0, r0, 1 + 3d0c: 0c03 bf 0x3d12 // 3d12 + 3d0e: 6c15 xor r0, r5 + 3d10: 7401 zexth r0, r0 + 3d12: 2a00 subi r2, 1 + 3d14: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 3d16: 3a40 cmpnei r2, 0 + 3d18: 0bf6 bt 0x3d04 // 3d04 + 3d1a: 2300 addi r3, 1 + 3d1c: 07ed br 0x3cf6 // 3cf6 + 3d1e: 0000 bkpt + 3d20: ffffa001 .long 0xffffa001 + 3d24: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00003d28 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 3d28: 6cc3 mov r3, r0 + 3d2a: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 3d2c: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 3d2e: 644e cmpne r3, r1 + 3d30: 0802 bt 0x3d34 // 3d34 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 3d32: 783c jmp r15 + sor_data = sor_data+Data[i]; + 3d34: 8340 ld.b r2, (r3, 0x0) + 3d36: 6008 addu r0, r2 + 3d38: 7400 zextb r0, r0 + 3d3a: 2300 addi r3, 1 + 3d3c: 07f9 br 0x3d2e // 3d2e + +Disassembly of section .text.Rs485_ASend: + +00003d40 : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 3d40: 14d1 push r4, r15 + 3d42: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 3d44: 117f lrw r3, 0x200003ec // 3e40 + 3d46: 8347 ld.b r2, (r3, 0x7) + 3d48: 3a42 cmpnei r2, 2 +{ + 3d4a: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 3d4c: 0870 bt 0x3e2c // 3e2c + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 3d4e: 3255 movi r2, 85 + 3d50: dc4e0004 st.b r2, (r14, 0x4) + SendData[1] = 0x55; + 3d54: dc4e0005 st.b r2, (r14, 0x5) + SendData[2] = 0xee; + 3d58: 3200 movi r2, 0 + 3d5a: 2a11 subi r2, 18 + 3d5c: dc4e0006 st.b r2, (r14, 0x6) + SendData[3] = 0x15; + 3d60: 3215 movi r2, 21 + + SendData[4] = 0x03; //类型 + SendData[5] = g_eeprom.dev_addr; + 3d62: 8360 ld.b r3, (r3, 0x0) + SendData[3] = 0x15; + 3d64: dc4e0007 st.b r2, (r14, 0x7) + SendData[4] = 0x03; //类型 + 3d68: 3203 movi r2, 3 + 3d6a: dc4e0008 st.b r2, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 3d6e: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 3d72: 3300 movi r3, 0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3d74: 1154 lrw r2, 0x20000660 // 3e44 + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 3d76: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3d7a: 8262 ld.b r3, (r2, 0x2) + 3d7c: 4b27 lsri r1, r3, 7 + 3d7e: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 3d82: 3100 movi r1, 0 + 3d84: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 3d88: 3170 movi r1, 112 + 3d8a: 68c4 and r3, r1 + 3d8c: 3b40 cmpnei r3, 0 + 3d8e: 081a bt 0x3dc2 // 3dc2 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 3d90: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 3d92: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3d96: 8261 ld.b r3, (r2, 0x1) + 3d98: 3b40 cmpnei r3, 0 + 3d9a: 0802 bt 0x3d9e // 3d9e + 3d9c: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3d9e: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3da0: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3da4: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 3da6: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3da8: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 3daa: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3dae: 3304 movi r3, 4 + 3db0: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + 3db2: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3db4: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 3db8: 0842 bt 0x3e3c // 3e3c + 3dba: e3ffe7a1 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3dbe: 390c .short 0x390c + 3dc0: 3d3b .short 0x3d3b + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 3dc2: 3120 movi r1, 32 + 3dc4: 644e cmpne r3, r1 + 3dc6: 0803 bt 0x3dcc // 3dcc + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 3dc8: 3302 movi r3, 2 + 3dca: 07e4 br 0x3d92 // 3d92 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 3dcc: 3140 movi r1, 64 + 3dce: 644e cmpne r3, r1 + 3dd0: 0be3 bt 0x3d96 // 3d96 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 3dd2: 3303 movi r3, 3 + 3dd4: 07df br 0x3d92 // 3d92 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 3dd6: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3dd8: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + 3dda: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3dde: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 3de0: 3300 movi r3, 0 + 3de2: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 3de6: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3dea: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 3dec: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 3df0: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 3df4: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 3df8: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3dfa: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 3dfc: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3dfe: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 3e02: 0802 bt 0x3e06 // 3e06 + 3e04: 3320 movi r3, 32 + 3e06: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 3e0a: 3300 movi r3, 0 + 3e0c: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3e10: 1b01 addi r3, r14, 4 + 3e12: 5b0a addi r0, r3, 3 + 3e14: 3115 movi r1, 21 + 3e16: e3ffff45 bsr 0x3ca0 // 3ca0 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 3e1a: 3396 movi r3, 150 + 3e1c: 4361 lsli r3, r3, 1 + 3e1e: b860 st.w r3, (r14, 0x0) + 3e20: 3201 movi r2, 1 + 3e22: 6cd3 mov r3, r4 + 3e24: 3118 movi r1, 24 + 3e26: 1801 addi r0, r14, 4 + 3e28: e3fffb24 bsr 0x3470 // 3470 + +} + 3e2c: 1407 addi r14, r14, 28 + 3e2e: 1491 pop r4, r15 + SendData[13] = 0x02; + 3e30: 3302 movi r3, 2 + 3e32: 07d3 br 0x3dd8 // 3dd8 + SendData[13] = 0x01; + 3e34: 3301 movi r3, 1 + 3e36: 07d1 br 0x3dd8 // 3dd8 + SendData[13] = 0x00; // + 3e38: 3300 movi r3, 0 + 3e3a: 07cf br 0x3dd8 // 3dd8 + SendData[13] = 0x04; // + 3e3c: 3304 movi r3, 4 + 3e3e: 07cd br 0x3dd8 // 3dd8 + 3e40: 200003ec .long 0x200003ec + 3e44: 20000660 .long 0x20000660 + +Disassembly of section .text.Rs485AskCycleSend: + +00003e48 : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 3e48: 14d0 push r15 + 3e4a: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 3e4c: 3355 movi r3, 85 + 3e4e: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 3e52: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 3e56: 3300 movi r3, 0 + 3e58: 2b11 subi r3, 18 + 3e5a: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 3e5e: 3315 movi r3, 21 + 3e60: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 3e64: 3303 movi r3, 3 + 3e66: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + 3e6a: 1177 lrw r3, 0x200003ec // 3f44 + 3e6c: 8360 ld.b r3, (r3, 0x0) + 3e6e: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 3e72: 3300 movi r3, 0 + 3e74: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3e78: 1174 lrw r3, 0x20000660 // 3f48 + 3e7a: 8342 ld.b r2, (r3, 0x2) + 3e7c: 4a27 lsri r1, r2, 7 + 3e7e: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 3e82: 3100 movi r1, 0 + 3e84: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 3e88: 3170 movi r1, 112 + 3e8a: 6884 and r2, r1 + 3e8c: 3a40 cmpnei r2, 0 + 3e8e: 081a bt 0x3ec2 // 3ec2 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 3e90: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 3e92: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3e96: 8341 ld.b r2, (r3, 0x1) + 3e98: 3a40 cmpnei r2, 0 + 3e9a: 0802 bt 0x3e9e // 3e9e + 3e9c: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3e9e: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3ea0: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3ea4: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 3ea6: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3ea8: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 3eaa: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3eae: 3204 movi r2, 4 + 3eb0: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + 3eb2: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3eb4: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 3eb8: 0843 bt 0x3f3e // 3f3e + 3eba: e3ffe721 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 3ebe: 3a0c .short 0x3a0c + 3ec0: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 3ec2: 3120 movi r1, 32 + 3ec4: 644a cmpne r2, r1 + 3ec6: 0803 bt 0x3ecc // 3ecc + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 3ec8: 3202 movi r2, 2 + 3eca: 07e4 br 0x3e92 // 3e92 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 3ecc: 3140 movi r1, 64 + 3ece: 644a cmpne r2, r1 + 3ed0: 0be3 bt 0x3e96 // 3e96 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 3ed2: 3203 movi r2, 3 + 3ed4: 07df br 0x3e92 // 3e92 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 3ed6: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + 3ed8: dc4e0011 st.b r2, (r14, 0x11) + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 3edc: 3200 movi r2, 0 + 3ede: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 3ee2: dc4e0013 st.b r2, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3ee6: 8342 ld.b r2, (r3, 0x2) + 3ee8: 425f lsli r2, r2, 31 + 3eea: 4a5f lsri r2, r2, 31 + 3eec: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 3eee: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 3ef0: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 3ef4: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 3ef6: 3200 movi r2, 0 + 3ef8: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 3efc: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 3f00: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 3f04: 0802 bt 0x3f08 // 3f08 + 3f06: 3320 movi r3, 32 + 3f08: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 3f0c: 3300 movi r3, 0 + 3f0e: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3f12: 1b01 addi r3, r14, 4 + 3f14: 5b0a addi r0, r3, 3 + 3f16: 3115 movi r1, 21 + 3f18: e3fffec4 bsr 0x3ca0 // 3ca0 + + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 3f1c: 3314 movi r3, 20 + 3f1e: b860 st.w r3, (r14, 0x0) + 3f20: 3396 movi r3, 150 + 3f22: 4361 lsli r3, r3, 1 + 3f24: 3201 movi r2, 1 + 3f26: 3118 movi r1, 24 + 3f28: 1801 addi r0, r14, 4 + 3f2a: e3fffaa3 bsr 0x3470 // 3470 + +} + 3f2e: 1407 addi r14, r14, 28 + 3f30: 1490 pop r15 + SendData[13] = 0x02; + 3f32: 3202 movi r2, 2 + 3f34: 07d2 br 0x3ed8 // 3ed8 + SendData[13] = 0x01; + 3f36: 3201 movi r2, 1 + 3f38: 07d0 br 0x3ed8 // 3ed8 + SendData[13] = 0x00; // + 3f3a: 3200 movi r2, 0 + 3f3c: 07ce br 0x3ed8 // 3ed8 + SendData[13] = 0x04; // + 3f3e: 3204 movi r2, 4 + 3f40: 07cc br 0x3ed8 // 3ed8 + 3f42: 0000 bkpt + 3f44: 200003ec .long 0x200003ec + 3f48: 20000660 .long 0x20000660 + +Disassembly of section .text.Rs485AskCtrlSend: + +00003f4c : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 3f4c: 14d0 push r15 + 3f4e: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 3f50: 3355 movi r3, 85 + 3f52: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 3f56: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 3f5a: 3300 movi r3, 0 + 3f5c: 2b11 subi r3, 18 + 3f5e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 3f62: 3307 movi r3, 7 + 3f64: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 3f68: 3303 movi r3, 3 + 3f6a: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_eeprom.dev_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3f6e: 3107 movi r1, 7 + SendData[5] = g_eeprom.dev_addr; + 3f70: 106d lrw r3, 0x200003ec // 3fa4 + 3f72: 8360 ld.b r3, (r3, 0x0) + 3f74: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 3f78: 8066 ld.b r3, (r0, 0x6) + 3f7a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 3f7e: 8067 ld.b r3, (r0, 0x7) + 3f80: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3f84: 1b01 addi r3, r14, 4 + 3f86: 5b0a addi r0, r3, 3 + 3f88: e3fffe8c bsr 0x3ca0 // 3ca0 + + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 3f8c: 3314 movi r3, 20 + 3f8e: b860 st.w r3, (r14, 0x0) + 3f90: 3396 movi r3, 150 + 3f92: 4361 lsli r3, r3, 1 + 3f94: 3201 movi r2, 1 + 3f96: 310a movi r1, 10 + 3f98: 1801 addi r0, r14, 4 + 3f9a: e3fffa6b bsr 0x3470 // 3470 + +} + 3f9e: 1404 addi r14, r14, 16 + 3fa0: 1490 pop r15 + 3fa2: 0000 bkpt + 3fa4: 200003ec .long 0x200003ec + +Disassembly of section .text.Rs485AskReadSend: + +00003fa8 : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 3fa8: 14d0 push r15 + 3faa: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 3fac: 3355 movi r3, 85 + 3fae: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 3fb2: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 3fb6: 3300 movi r3, 0 + 3fb8: 2b11 subi r3, 18 + 3fba: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 3fbe: 3309 movi r3, 9 + 3fc0: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 3fc4: 3303 movi r3, 3 + 3fc6: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3fca: 3109 movi r1, 9 + SendData[5] = g_eeprom.dev_addr; + 3fcc: 1070 lrw r3, 0x200003ec // 400c + 3fce: 8340 ld.b r2, (r3, 0x0) + 3fd0: dc4e0009 st.b r2, (r14, 0x9) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 3fd4: 8367 ld.b r3, (r3, 0x7) + SendData[6] = Recdata[6]; + 3fd6: 8046 ld.b r2, (r0, 0x6) + 3fd8: dc4e000a st.b r2, (r14, 0xa) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 3fdc: dc6e000d st.b r3, (r14, 0xd) + SendData[7] = Project_FW_Version; + 3fe0: 3206 movi r2, 6 + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3fe2: 1b01 addi r3, r14, 4 + SendData[7] = Project_FW_Version; + 3fe4: dc4e000b st.b r2, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3fe8: 5b0a addi r0, r3, 3 + SendData[8] = Project_HW_Version; + 3fea: 3202 movi r2, 2 + 3fec: dc4e000c st.b r2, (r14, 0xc) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 3ff0: e3fffe58 bsr 0x3ca0 // 3ca0 + + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 3ff4: 3314 movi r3, 20 + 3ff6: b860 st.w r3, (r14, 0x0) + 3ff8: 3396 movi r3, 150 + 3ffa: 4361 lsli r3, r3, 1 + 3ffc: 3201 movi r2, 1 + 3ffe: 310c movi r1, 12 + 4000: 1801 addi r0, r14, 4 + 4002: e3fffa37 bsr 0x3470 // 3470 +} + 4006: 1404 addi r14, r14, 16 + 4008: 1490 pop r15 + 400a: 0000 bkpt + 400c: 200003ec .long 0x200003ec + +Disassembly of section .text.Rs485_DevPort_ACK: + +00004010 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 4010: 14d0 push r15 + 4012: 1421 subi r14, r14, 4 + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 4014: 3314 movi r3, 20 + 4016: b860 st.w r3, (r14, 0x0) + 4018: 3396 movi r3, 150 + 401a: 7445 zexth r1, r1 + 401c: 4361 lsli r3, r3, 1 + 401e: 3201 movi r2, 1 + 4020: e3fffa28 bsr 0x3470 // 3470 +} + 4024: 1401 addi r14, r14, 4 + 4026: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +00004028 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 4028: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 402a: 3300 movi r3, 0 + 402c: 2b08 subi r3, 9 + 402e: 60c4 addu r3, r1 + 4030: 74cd zexth r3, r3 + 4032: 3b01 cmphsi r3, 2 +{ + 4034: 6d03 mov r4, r0 + 4036: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 4038: 08c8 bt 0x41c8 // 41c8 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 403a: 8060 ld.b r3, (r0, 0x0) + 403c: 3255 movi r2, 85 + 403e: 648e cmpne r3, r2 + 4040: 08c0 bt 0x41c0 // 41c0 + 4042: 8041 ld.b r2, (r0, 0x1) + 4044: 64ca cmpne r2, r3 + 4046: 08bd bt 0x41c0 // 41c0 + 4048: 8042 ld.b r2, (r0, 0x2) + 404a: 33ee movi r3, 238 + 404c: 64ca cmpne r2, r3 + 404e: 08b9 bt 0x41c0 // 41c0 + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_eeprom.dev_addr != RecData[5]) ) + 4050: 8023 ld.b r1, (r0, 0x3) + 4052: 596a addi r3, r1, 3 + 4054: 654e cmpne r3, r5 + 4056: 08b7 bt 0x41c4 // 41c4 + 4058: 8004 ld.b r0, (r0, 0x4) + 405a: 3843 cmpnei r0, 3 + 405c: 08b4 bt 0x41c4 // 41c4 + 405e: 12dc lrw r6, 0x200003ec // 41cc + 4060: 8640 ld.b r2, (r6, 0x0) + 4062: 8465 ld.b r3, (r4, 0x5) + 4064: 64ca cmpne r2, r3 + 4066: 08ae bt 0x41c2 // 41c2 + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 4068: 2901 subi r1, 2 + 406a: 7445 zexth r1, r1 + 406c: 5c0a addi r0, r4, 3 + 406e: e3fffe3f bsr 0x3cec // 3cec + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 4072: 5c54 addu r2, r4, r5 + 4074: 5a63 subi r3, r2, 1 + 4076: 8360 ld.b r3, (r3, 0x0) + 4078: 2a01 subi r2, 2 + 407a: 4368 lsli r3, r3, 8 + 407c: 8240 ld.b r2, (r2, 0x0) + 407e: 60c8 addu r3, r2 + 4080: 64c2 cmpne r0, r3 + 4082: 08a3 bt 0x41c8 // 41c8 + { + switch(RecData[6]) + 4084: 8406 ld.b r0, (r4, 0x6) + 4086: 2800 subi r0, 1 + 4088: 3811 cmphsi r0, 18 + 408a: 0811 bt 0x40ac // 40ac + 408c: e3ffe638 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4090: 1e1e1e1e .long 0x1e1e1e1e + 4094: 0e0e0e0e .long 0x0e0e0e0e + 4098: 0e0e090e .long 0x0e0e090e + 409c: 220e0e0e .long 0x220e0e0e + 40a0: 3926 .short 0x3926 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 40a2: 8667 ld.b r3, (r6, 0x7) + 40a4: 3b42 cmpnei r3, 2 + 40a6: 080c bt 0x40be // 40be + { + Clear_SendFlag(); + 40a8: e3fffa16 bsr 0x34d4 // 34d4 + } + + } + break; + } + switch(RecData[6]) + 40ac: 8406 ld.b r0, (r4, 0x6) + 40ae: 2800 subi r0, 1 + 40b0: 3803 cmphsi r0, 4 + 40b2: 0808 bt 0x40c2 // 40c2 + 40b4: 8467 ld.b r3, (r4, 0x7) + 40b6: e3ffe623 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 40ba: 4836 .short 0x4836 + 40bc: 7060 .short 0x7060 + else if(g_eeprom.dev_port == POLLING_PORT) + 40be: 3b41 cmpnei r3, 1 + 40c0: 0c03 bf 0x40c6 // 40c6 + break; + } + break; + } + + return ret; + 40c2: 3000 movi r0, 0 + 40c4: 047f br 0x41c2 // 41c2 + Rs485AskCycleSend(); + 40c6: e3fffec1 bsr 0x3e48 // 3e48 + 40ca: 07f1 br 0x40ac // 40ac + Rs485AskCtrlSend(RecData); + 40cc: 6c13 mov r0, r4 + 40ce: e3ffff3f bsr 0x3f4c // 3f4c + 40d2: 07ed br 0x40ac // 40ac + Rs485AskReadSend(RecData); //版本号查询 + 40d4: 6c13 mov r0, r4 + 40d6: e3ffff69 bsr 0x3fa8 // 3fa8 + 40da: 07e9 br 0x40ac // 40ac + Rs485AskCtrlSend(RecData); + 40dc: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 40de: 11bd lrw r5, 0x20000660 // 41d0 + Rs485AskCtrlSend(RecData); + 40e0: e3ffff36 bsr 0x3f4c // 3f4c + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 40e4: 8552 ld.b r2, (r5, 0x12) + 40e6: 113c lrw r1, 0x5b3f // 41d4 + 40e8: 3000 movi r0, 0 + 40ea: e3fffa6b bsr 0x35c0 // 35c0 + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 40ee: 8467 ld.b r3, (r4, 0x7) + 40f0: 8552 ld.b r2, (r5, 0x12) + 40f2: 64ca cmpne r2, r3 + 40f4: 0fdc bf 0x40ac // 40ac + if(TempCtrl.CardEn == 0x00) + 40f6: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 40f8: a572 st.b r3, (r5, 0x12) + if(TempCtrl.CardEn == 0x00) + 40fa: 0bd9 bt 0x40ac // 40ac + TempCtrl.CardState = 0x01; + 40fc: 3301 movi r3, 1 + 40fe: a570 st.b r3, (r5, 0x10) + 4100: 07d6 br 0x40ac // 40ac + if(RecData[7] != g_eeprom.dev_port) + 4102: 8467 ld.b r3, (r4, 0x7) + 4104: 8647 ld.b r2, (r6, 0x7) + 4106: 64ca cmpne r2, r3 + 4108: 0fdd bf 0x40c2 // 40c2 + EEPROM_WriteParaInfo(&g_eeprom); + 410a: 1111 lrw r0, 0x200003ec // 41cc + g_eeprom.dev_port = RecData[7]; + 410c: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 410e: e3fffaa5 bsr 0x3658 // 3658 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 4112: 110f lrw r0, 0x200003ec // 41cc + 4114: e3fffa68 bsr 0x35e4 // 35e4 + if(rev_val == 0x00){ + 4118: 3840 cmpnei r0, 0 + 411a: 0bc9 bt 0x40ac // 40ac + Rs485_DevPort_ACK(RecData,Len); + 411c: 7454 zextb r1, r5 + 411e: 6c13 mov r0, r4 + 4120: e3ffff78 bsr 0x4010 // 4010 + 4124: 07c4 br 0x40ac // 40ac + switch(RecData[7]) + 4126: 74cc zextb r3, r3 + 4128: 3b40 cmpnei r3, 0 + 412a: 0c0a bf 0x413e // 413e + 412c: 3b41 cmpnei r3, 1 + 412e: 0bca bt 0x40c2 // 40c2 + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 4130: 1128 lrw r1, 0x20000660 // 41d0 + 4132: 3200 movi r2, 0 + 4134: 8162 ld.b r3, (r1, 0x2) + 4136: 2a7f subi r2, 128 + 4138: 6cc8 or r3, r2 + 413a: a162 st.b r3, (r1, 0x2) + 413c: 07c3 br 0x40c2 // 40c2 + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 413e: 1145 lrw r2, 0x20000660 // 41d0 + 4140: 8262 ld.b r3, (r2, 0x2) + 4142: 317f movi r1, 127 + 4144: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 4146: a262 st.b r3, (r2, 0x2) + 4148: 07bd br 0x40c2 // 40c2 + switch(RecData[7]) // + 414a: 74cc zextb r3, r3 + 414c: 3b42 cmpnei r3, 2 + 414e: 0c0a bf 0x4162 // 4162 + 4150: 3b43 cmpnei r3, 3 + 4152: 0c0e bf 0x416e // 416e + 4154: 3b41 cmpnei r3, 1 + 4156: 0bb6 bt 0x40c2 // 40c2 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 4158: 105e lrw r2, 0x20000660 // 41d0 + 415a: 8262 ld.b r3, (r2, 0x2) + 415c: 3170 movi r1, 112 + 415e: 68c5 andn r3, r1 + 4160: 07f3 br 0x4146 // 4146 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 4162: 105c lrw r2, 0x20000660 // 41d0 + 4164: 8262 ld.b r3, (r2, 0x2) + 4166: 3170 movi r1, 112 + 4168: 68c5 andn r3, r1 + 416a: 3ba5 bseti r3, 5 + 416c: 07ed br 0x4146 // 4146 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 416e: 1059 lrw r2, 0x20000660 // 41d0 + 4170: 8262 ld.b r3, (r2, 0x2) + 4172: 3170 movi r1, 112 + 4174: 68c5 andn r3, r1 + 4176: 3ba6 bseti r3, 6 + 4178: 07e7 br 0x4146 // 4146 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 417a: 3200 movi r2, 0 + 417c: 74cc zextb r3, r3 + 417e: 2a0f subi r2, 16 + 4180: 608c addu r2, r3 + 4182: 7488 zextb r2, r2 + 4184: 3a0f cmphsi r2, 16 + 4186: 0804 bt 0x418e // 418e + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 4188: 1052 lrw r2, 0x20000660 // 41d0 + 418a: a261 st.b r3, (r2, 0x1) + 418c: 079b br 0x40c2 // 40c2 + }else if(RecData[7] == TEM_MAX_SET){ + 418e: 3220 movi r2, 32 + 4190: 648e cmpne r3, r2 + 4192: 0b98 bt 0x40c2 // 40c2 + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 4194: 106f lrw r3, 0x20000660 // 41d0 + 4196: a341 st.b r2, (r3, 0x1) + 4198: 0795 br 0x40c2 // 40c2 + switch(RecData[7]) //风速 + 419a: 740c zextb r0, r3 + 419c: 106d lrw r3, 0x20000660 // 41d0 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 419e: 8342 ld.b r2, (r3, 0x2) + 41a0: 310e movi r1, 14 + switch(RecData[7]) //风速 + 41a2: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 41a4: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 41a6: 0807 bt 0x41b4 // 41b4 + 41a8: e3ffe5aa bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 41ac: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + 41b0: 3aa1 bseti r2, 1 + 41b2: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 41b4: a342 st.b r2, (r3, 0x2) + 41b6: 0786 br 0x40c2 // 40c2 + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 41b8: 3aa2 bseti r2, 2 + 41ba: 07fd br 0x41b4 // 41b4 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 41bc: 3aa1 bseti r2, 1 + 41be: 07fb br 0x41b4 // 41b4 + return 0x02; + 41c0: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 41c2: 1493 pop r4-r6, r15 + return 0x03; + 41c4: 3003 movi r0, 3 + 41c6: 07fe br 0x41c2 // 41c2 + return 0x01; + 41c8: 3001 movi r0, 1 + 41ca: 07fc br 0x41c2 // 41c2 + 41cc: 200003ec .long 0x200003ec + 41d0: 20000660 .long 0x20000660 + 41d4: 00005b3f .long 0x00005b3f + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +000041d8 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 41d8: 14d2 push r4-r5, r15 + 41da: 6d43 mov r5, r0 + 41dc: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 41de: e3ffff25 bsr 0x4028 // 4028 + 41e2: 3840 cmpnei r0, 0 + 41e4: 0803 bt 0x41ea // 41ea + { + return ret = 1; + } + } + + return ret; + 41e6: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 41e8: 0404 br 0x41f0 // 41f0 + if (Len < 5){ //长度校验 + 41ea: 3c04 cmphsi r4, 5 + 41ec: 0803 bt 0x41f2 // 41f2 + return ret = 1; + 41ee: 3001 movi r0, 1 + 41f0: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 41f2: 8540 ld.b r2, (r5, 0x0) + 41f4: 33ff movi r3, 255 + 41f6: 64ca cmpne r2, r3 + 41f8: 0c04 bf 0x4200 // 4200 + 41fa: 8561 ld.b r3, (r5, 0x1) + 41fc: 3b48 cmpnei r3, 8 + 41fe: 0bf8 bt 0x41ee // 41ee + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 4200: 1122 lrw r1, 0x5b4e // 4288 + 4202: 3000 movi r0, 0 + 4204: e3fff9de bsr 0x35c0 // 35c0 + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 4208: 3c45 cmpnei r4, 5 + 420a: 0814 bt 0x4232 // 4232 + 420c: 3104 movi r1, 4 + 420e: 6c17 mov r0, r5 + 4210: e3fffd8c bsr 0x3d28 // 3d28 + 4214: 8564 ld.b r3, (r5, 0x4) + 4216: 640e cmpne r3, r0 + 4218: 0beb bt 0x41ee // 41ee + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 421a: 107d lrw r3, 0x20000660 // 428c + 421c: 8542 ld.b r2, (r5, 0x2) + 421e: 8330 ld.b r1, (r3, 0x10) + 4220: 6486 cmpne r1, r2 + 4222: 0fe2 bf 0x41e6 // 41e6 + 4224: 8332 ld.b r1, (r3, 0x12) + 4226: 3941 cmpnei r1, 1 + 4228: 0bdf bt 0x41e6 // 41e6 + TempCtrl.CardState = RecData[2]; + 422a: a350 st.b r2, (r3, 0x10) + TempCtrl.CardFlag = 0x01; + 422c: 3201 movi r2, 1 + 422e: a351 st.b r2, (r3, 0x11) + 4230: 07db br 0x41e6 // 41e6 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 4232: 3c09 cmphsi r4, 10 + 4234: 0fdd bf 0x41ee // 41ee + 4236: 5c27 subi r1, r4, 2 + 4238: 7445 zexth r1, r1 + 423a: 6114 addu r4, r5 + 423c: 6c17 mov r0, r5 + 423e: e3fffd57 bsr 0x3cec // 3cec + 4242: 5c63 subi r3, r4, 1 + 4244: 8360 ld.b r3, (r3, 0x0) + 4246: 2c01 subi r4, 2 + 4248: 4368 lsli r3, r3, 8 + 424a: 8440 ld.b r2, (r4, 0x0) + 424c: 60c8 addu r3, r2 + 424e: 64c2 cmpne r0, r3 + 4250: 0bcf bt 0x41ee // 41ee + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 4252: 106f lrw r3, 0x20000660 // 428c + 4254: 8543 ld.b r2, (r5, 0x3) + 4256: 8330 ld.b r1, (r3, 0x10) + 4258: 6486 cmpne r1, r2 + 425a: 0c07 bf 0x4268 // 4268 + 425c: 8332 ld.b r1, (r3, 0x12) + 425e: 3941 cmpnei r1, 1 + 4260: 0804 bt 0x4268 // 4268 + TempCtrl.CardState = RecData[3]; + 4262: a350 st.b r2, (r3, 0x10) + TempCtrl.CardFlag = 0x01; + 4264: 3201 movi r2, 1 + 4266: a351 st.b r2, (r3, 0x11) + if(TempCtrl.SceneNo != RecData[7]) + 4268: 8547 ld.b r2, (r5, 0x7) + 426a: 8333 ld.b r1, (r3, 0x13) + 426c: 6486 cmpne r1, r2 + 426e: 0c07 bf 0x427c // 427c + TempCtrl.SceneNo = RecData[7]; + 4270: a353 st.b r2, (r3, 0x13) + TempCtrl.SceneNoTick = SysTick_1ms; + 4272: 1048 lrw r2, 0x200000b8 // 4290 + 4274: 9240 ld.w r2, (r2, 0x0) + 4276: b346 st.w r2, (r3, 0x18) + TempCtrl.SceneFlag = 0x01; + 4278: 3201 movi r2, 1 + 427a: a354 st.b r2, (r3, 0x14) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 427c: 8353 ld.b r2, (r3, 0x13) + 427e: 1026 lrw r1, 0x5b60 // 4294 + 4280: 3000 movi r0, 0 + 4282: e3fff99f bsr 0x35c0 // 35c0 + 4286: 07b0 br 0x41e6 // 41e6 + 4288: 00005b4e .long 0x00005b4e + 428c: 20000660 .long 0x20000660 + 4290: 200000b8 .long 0x200000b8 + 4294: 00005b60 .long 0x00005b60 + +Disassembly of section .text.TK_Single_Longpress_prg: + +00004298 : + 4298: 14c2 push r4-r5 + 429a: 117d lrw r3, 0x20000828 // 438c + 429c: 115d lrw r2, 0x20000794 // 4390 + 429e: 9360 ld.w r3, (r3, 0x0) + 42a0: 3b40 cmpnei r3, 0 + 42a2: 0840 bt 0x4322 // 4322 + 42a4: 113c lrw r1, 0x20000068 // 4394 + 42a6: 8962 ld.h r3, (r1, 0x4) + 42a8: 74cd zexth r3, r3 + 42aa: 3b40 cmpnei r3, 0 + 42ac: 0c3b bf 0x4322 // 4322 + 42ae: 117b lrw r3, 0x20000728 // 4398 + 42b0: 9360 ld.w r3, (r3, 0x0) + 42b2: 3b40 cmpnei r3, 0 + 42b4: 117a lrw r3, 0x200008de // 439c + 42b6: 0c0e bf 0x42d2 // 42d2 + 42b8: 8300 ld.b r0, (r3, 0x0) + 42ba: 2000 addi r0, 1 + 42bc: 7400 zextb r0, r0 + 42be: a300 st.b r0, (r3, 0x0) + 42c0: 8380 ld.b r4, (r3, 0x0) + 42c2: 8902 ld.h r0, (r1, 0x4) + 42c4: 7401 zexth r0, r0 + 42c6: 3564 movi r5, 100 + 42c8: 7c14 mult r0, r5 + 42ca: 6501 cmplt r0, r4 + 42cc: 0c05 bf 0x42d6 // 42d6 + 42ce: 3001 movi r0, 1 + 42d0: a200 st.b r0, (r2, 0x0) + 42d2: 3000 movi r0, 0 + 42d4: a300 st.b r0, (r3, 0x0) + 42d6: 1113 lrw r0, 0x200006bc // 43a0 + 42d8: 9000 ld.w r0, (r0, 0x0) + 42da: 3840 cmpnei r0, 0 + 42dc: 0c0e bf 0x42f8 // 42f8 + 42de: 8301 ld.b r0, (r3, 0x1) + 42e0: 2000 addi r0, 1 + 42e2: 7400 zextb r0, r0 + 42e4: a301 st.b r0, (r3, 0x1) + 42e6: 8381 ld.b r4, (r3, 0x1) + 42e8: 8902 ld.h r0, (r1, 0x4) + 42ea: 7401 zexth r0, r0 + 42ec: 3564 movi r5, 100 + 42ee: 7c14 mult r0, r5 + 42f0: 6501 cmplt r0, r4 + 42f2: 0c05 bf 0x42fc // 42fc + 42f4: 3001 movi r0, 1 + 42f6: a201 st.b r0, (r2, 0x1) + 42f8: 3000 movi r0, 0 + 42fa: a301 st.b r0, (r3, 0x1) + 42fc: 110a lrw r0, 0x200007a0 // 43a4 + 42fe: 9000 ld.w r0, (r0, 0x0) + 4300: 3840 cmpnei r0, 0 + 4302: 0c0e bf 0x431e // 431e + 4304: 8302 ld.b r0, (r3, 0x2) + 4306: 2000 addi r0, 1 + 4308: 7400 zextb r0, r0 + 430a: a302 st.b r0, (r3, 0x2) + 430c: 8302 ld.b r0, (r3, 0x2) + 430e: 8922 ld.h r1, (r1, 0x4) + 4310: 7445 zexth r1, r1 + 4312: 3464 movi r4, 100 + 4314: 7c50 mult r1, r4 + 4316: 6405 cmplt r1, r0 + 4318: 0c05 bf 0x4322 // 4322 + 431a: 3101 movi r1, 1 + 431c: a222 st.b r1, (r2, 0x2) + 431e: 3100 movi r1, 0 + 4320: a322 st.b r1, (r3, 0x2) + 4322: 8260 ld.b r3, (r2, 0x0) + 4324: 3b41 cmpnei r3, 1 + 4326: 080f bt 0x4344 // 4344 + 4328: 3300 movi r3, 0 + 432a: 11a0 lrw r5, 0x200009da // 43a8 + 432c: 1180 lrw r4, 0x20000688 // 43ac + 432e: 4321 lsli r1, r3, 1 + 4330: 5d04 addu r0, r5, r1 + 4332: 8800 ld.h r0, (r0, 0x0) + 4334: 2300 addi r3, 1 + 4336: 7401 zexth r0, r0 + 4338: 6050 addu r1, r4 + 433a: 3b51 cmpnei r3, 17 + 433c: a900 st.h r0, (r1, 0x0) + 433e: 0bf8 bt 0x432e // 432e + 4340: 3300 movi r3, 0 + 4342: a260 st.b r3, (r2, 0x0) + 4344: 8261 ld.b r3, (r2, 0x1) + 4346: 3b41 cmpnei r3, 1 + 4348: 080f bt 0x4366 // 4366 + 434a: 3300 movi r3, 0 + 434c: 10b9 lrw r5, 0x20000770 // 43b0 + 434e: 109a lrw r4, 0x20000832 // 43b4 + 4350: 4321 lsli r1, r3, 1 + 4352: 5d04 addu r0, r5, r1 + 4354: 8800 ld.h r0, (r0, 0x0) + 4356: 2300 addi r3, 1 + 4358: 7401 zexth r0, r0 + 435a: 6050 addu r1, r4 + 435c: 3b51 cmpnei r3, 17 + 435e: a900 st.h r0, (r1, 0x0) + 4360: 0bf8 bt 0x4350 // 4350 + 4362: 3300 movi r3, 0 + 4364: a261 st.b r3, (r2, 0x1) + 4366: 8262 ld.b r3, (r2, 0x2) + 4368: 3b41 cmpnei r3, 1 + 436a: 080f bt 0x4388 // 4388 + 436c: 3300 movi r3, 0 + 436e: 10b3 lrw r5, 0x20000866 // 43b8 + 4370: 1093 lrw r4, 0x20000948 // 43bc + 4372: 4321 lsli r1, r3, 1 + 4374: 5d04 addu r0, r5, r1 + 4376: 8800 ld.h r0, (r0, 0x0) + 4378: 2300 addi r3, 1 + 437a: 7401 zexth r0, r0 + 437c: 6050 addu r1, r4 + 437e: 3b51 cmpnei r3, 17 + 4380: a900 st.h r0, (r1, 0x0) + 4382: 0bf8 bt 0x4372 // 4372 + 4384: 3300 movi r3, 0 + 4386: a262 st.b r3, (r2, 0x2) + 4388: 1482 pop r4-r5 + 438a: 0000 bkpt + 438c: 20000828 .long 0x20000828 + 4390: 20000794 .long 0x20000794 + 4394: 20000068 .long 0x20000068 + 4398: 20000728 .long 0x20000728 + 439c: 200008de .long 0x200008de + 43a0: 200006bc .long 0x200006bc + 43a4: 200007a0 .long 0x200007a0 + 43a8: 200009da .long 0x200009da + 43ac: 20000688 .long 0x20000688 + 43b0: 20000770 .long 0x20000770 + 43b4: 20000832 .long 0x20000832 + 43b8: 20000866 .long 0x20000866 + 43bc: 20000948 .long 0x20000948 + +Disassembly of section .text.TK_Sampling_prog: + +000043c0 : + 43c0: 14c4 push r4-r7 + 43c2: 1423 subi r14, r14, 12 + 43c4: 1169 lrw r3, 0x20000054 // 4468 + 43c6: 114a lrw r2, 0x20000945 // 446c + 43c8: 6d0b mov r4, r2 + 43ca: 9320 ld.w r1, (r3, 0x0) + 43cc: b840 st.w r2, (r14, 0x0) + 43ce: 3300 movi r3, 0 + 43d0: 11a8 lrw r5, 0x200009da // 4470 + 43d2: 9840 ld.w r2, (r14, 0x0) + 43d4: 8240 ld.b r2, (r2, 0x0) + 43d6: 3a41 cmpnei r2, 1 + 43d8: 0808 bt 0x43e8 // 43e8 + 43da: 4342 lsli r2, r3, 2 + 43dc: 6084 addu r2, r1 + 43de: 9200 ld.w r0, (r2, 0x0) + 43e0: 4341 lsli r2, r3, 1 + 43e2: 7401 zexth r0, r0 + 43e4: 6094 addu r2, r5 + 43e6: aa00 st.h r0, (r2, 0x0) + 43e8: 8440 ld.b r2, (r4, 0x0) + 43ea: 3a42 cmpnei r2, 2 + 43ec: 0809 bt 0x43fe // 43fe + 43ee: 4342 lsli r2, r3, 2 + 43f0: 6084 addu r2, r1 + 43f2: 9200 ld.w r0, (r2, 0x0) + 43f4: 4341 lsli r2, r3, 1 + 43f6: 11c0 lrw r6, 0x20000770 // 4474 + 43f8: 7401 zexth r0, r0 + 43fa: 6098 addu r2, r6 + 43fc: aa00 st.h r0, (r2, 0x0) + 43fe: 8440 ld.b r2, (r4, 0x0) + 4400: 3a40 cmpnei r2, 0 + 4402: 0809 bt 0x4414 // 4414 + 4404: 4342 lsli r2, r3, 2 + 4406: 6084 addu r2, r1 + 4408: 9200 ld.w r0, (r2, 0x0) + 440a: 4341 lsli r2, r3, 1 + 440c: 10db lrw r6, 0x20000866 // 4478 + 440e: 7401 zexth r0, r0 + 4410: 6098 addu r2, r6 + 4412: aa00 st.h r0, (r2, 0x0) + 4414: 10da lrw r6, 0x200007cd // 447c + 4416: 8640 ld.b r2, (r6, 0x0) + 4418: 3a41 cmpnei r2, 1 + 441a: 0821 bt 0x445c // 445c + 441c: 1079 lrw r3, 0x20000688 // 4480 + 441e: 3200 movi r2, 0 + 4420: b861 st.w r3, (r14, 0x4) + 4422: 1075 lrw r3, 0x20000770 // 4474 + 4424: b862 st.w r3, (r14, 0x8) + 4426: 4261 lsli r3, r2, 1 + 4428: 5d0c addu r0, r5, r3 + 442a: 8800 ld.h r0, (r0, 0x0) + 442c: 98e1 ld.w r7, (r14, 0x4) + 442e: 61cc addu r7, r3 + 4430: 7401 zexth r0, r0 + 4432: af00 st.h r0, (r7, 0x0) + 4434: 9802 ld.w r0, (r14, 0x8) + 4436: 600c addu r0, r3 + 4438: 8800 ld.h r0, (r0, 0x0) + 443a: 10f3 lrw r7, 0x20000832 // 4484 + 443c: 61cc addu r7, r3 + 443e: 7401 zexth r0, r0 + 4440: af00 st.h r0, (r7, 0x0) + 4442: 2200 addi r2, 1 + 4444: 100d lrw r0, 0x20000866 // 4478 + 4446: 600c addu r0, r3 + 4448: 8800 ld.h r0, (r0, 0x0) + 444a: 10f0 lrw r7, 0x20000948 // 4488 + 444c: 7401 zexth r0, r0 + 444e: 60dc addu r3, r7 + 4450: 3a51 cmpnei r2, 17 + 4452: ab00 st.h r0, (r3, 0x0) + 4454: 0be9 bt 0x4426 // 4426 + 4456: 3300 movi r3, 0 + 4458: a660 st.b r3, (r6, 0x0) + 445a: 3311 movi r3, 17 + 445c: 2300 addi r3, 1 + 445e: 74cc zextb r3, r3 + 4460: 3b10 cmphsi r3, 17 + 4462: 0fb8 bf 0x43d2 // 43d2 + 4464: 1403 addi r14, r14, 12 + 4466: 1484 pop r4-r7 + 4468: 20000054 .long 0x20000054 + 446c: 20000945 .long 0x20000945 + 4470: 200009da .long 0x200009da + 4474: 20000770 .long 0x20000770 + 4478: 20000866 .long 0x20000866 + 447c: 200007cd .long 0x200007cd + 4480: 20000688 .long 0x20000688 + 4484: 20000832 .long 0x20000832 + 4488: 20000948 .long 0x20000948 + +Disassembly of section .text.get_key_number: + +0000448c : + 448c: 14c2 push r4-r5 + 448e: 3200 movi r2, 0 + 4490: 3000 movi r0, 0 + 4492: 1088 lrw r4, 0x20000828 // 44b0 + 4494: 3501 movi r5, 1 + 4496: 3120 movi r1, 32 + 4498: 9460 ld.w r3, (r4, 0x0) + 449a: 70c9 lsr r3, r2 + 449c: 68d4 and r3, r5 + 449e: 3b40 cmpnei r3, 0 + 44a0: 0c02 bf 0x44a4 // 44a4 + 44a2: 2000 addi r0, 1 + 44a4: 2200 addi r2, 1 + 44a6: 644a cmpne r2, r1 + 44a8: 0bf8 bt 0x4498 // 4498 + 44aa: 7400 zextb r0, r0 + 44ac: 1482 pop r4-r5 + 44ae: 0000 bkpt + 44b0: 20000828 .long 0x20000828 + +Disassembly of section .text.get_key_number0: + +000044b4 : + 44b4: 14c2 push r4-r5 + 44b6: 3200 movi r2, 0 + 44b8: 3000 movi r0, 0 + 44ba: 1088 lrw r4, 0x20000728 // 44d8 + 44bc: 3501 movi r5, 1 + 44be: 3120 movi r1, 32 + 44c0: 9460 ld.w r3, (r4, 0x0) + 44c2: 70c9 lsr r3, r2 + 44c4: 68d4 and r3, r5 + 44c6: 3b40 cmpnei r3, 0 + 44c8: 0c02 bf 0x44cc // 44cc + 44ca: 2000 addi r0, 1 + 44cc: 2200 addi r2, 1 + 44ce: 644a cmpne r2, r1 + 44d0: 0bf8 bt 0x44c0 // 44c0 + 44d2: 7400 zextb r0, r0 + 44d4: 1482 pop r4-r5 + 44d6: 0000 bkpt + 44d8: 20000728 .long 0x20000728 + +Disassembly of section .text.get_key_number1: + +000044dc : + 44dc: 14c2 push r4-r5 + 44de: 3200 movi r2, 0 + 44e0: 3000 movi r0, 0 + 44e2: 1088 lrw r4, 0x200006bc // 4500 + 44e4: 3501 movi r5, 1 + 44e6: 3120 movi r1, 32 + 44e8: 9460 ld.w r3, (r4, 0x0) + 44ea: 70c9 lsr r3, r2 + 44ec: 68d4 and r3, r5 + 44ee: 3b40 cmpnei r3, 0 + 44f0: 0c02 bf 0x44f4 // 44f4 + 44f2: 2000 addi r0, 1 + 44f4: 2200 addi r2, 1 + 44f6: 644a cmpne r2, r1 + 44f8: 0bf8 bt 0x44e8 // 44e8 + 44fa: 7400 zextb r0, r0 + 44fc: 1482 pop r4-r5 + 44fe: 0000 bkpt + 4500: 200006bc .long 0x200006bc + +Disassembly of section .text.get_key_number2: + +00004504 : + 4504: 14c2 push r4-r5 + 4506: 3200 movi r2, 0 + 4508: 3000 movi r0, 0 + 450a: 1088 lrw r4, 0x200007a0 // 4528 + 450c: 3501 movi r5, 1 + 450e: 3120 movi r1, 32 + 4510: 9460 ld.w r3, (r4, 0x0) + 4512: 70c9 lsr r3, r2 + 4514: 68d4 and r3, r5 + 4516: 3b40 cmpnei r3, 0 + 4518: 0c02 bf 0x451c // 451c + 451a: 2000 addi r0, 1 + 451c: 2200 addi r2, 1 + 451e: 644a cmpne r2, r1 + 4520: 0bf8 bt 0x4510 // 4510 + 4522: 7400 zextb r0, r0 + 4524: 1482 pop r4-r5 + 4526: 0000 bkpt + 4528: 200007a0 .long 0x200007a0 + +Disassembly of section .text.TK_Scan_Start: + +0000452c : + 452c: 1073 lrw r3, 0x20000068 // 4578 + 452e: 1054 lrw r2, 0x20000945 // 457c + 4530: 8302 ld.b r0, (r3, 0x2) + 4532: 8220 ld.b r1, (r2, 0x0) + 4534: 6442 cmpne r0, r1 + 4536: 0c16 bf 0x4562 // 4562 + 4538: 8220 ld.b r1, (r2, 0x0) + 453a: 7444 zextb r1, r1 + 453c: 3941 cmpnei r1, 1 + 453e: 0c18 bf 0x456e // 456e + 4540: 3940 cmpnei r1, 0 + 4542: 0c11 bf 0x4564 // 4564 + 4544: 3942 cmpnei r1, 2 + 4546: 0c16 bf 0x4572 // 4572 + 4548: 8240 ld.b r2, (r2, 0x0) + 454a: 7488 zextb r2, r2 + 454c: a342 st.b r2, (r3, 0x2) + 454e: 8341 ld.b r2, (r3, 0x1) + 4550: 7488 zextb r2, r2 + 4552: 3a41 cmpnei r2, 1 + 4554: 0807 bt 0x4562 // 4562 + 4556: 102b lrw r1, 0x20000058 // 4580 + 4558: 9120 ld.w r1, (r1, 0x0) + 455a: b142 st.w r2, (r1, 0x8) + 455c: 3200 movi r2, 0 + 455e: a340 st.b r2, (r3, 0x0) + 4560: a341 st.b r2, (r3, 0x1) + 4562: 783c jmp r15 + 4564: 1028 lrw r1, 0x200009fc // 4584 + 4566: 9100 ld.w r0, (r1, 0x0) + 4568: 1028 lrw r1, 0x40011200 // 4588 + 456a: b110 st.w r0, (r1, 0x40) + 456c: 07ee br 0x4548 // 4548 + 456e: 1028 lrw r1, 0x2000076c // 458c + 4570: 07fb br 0x4566 // 4566 + 4572: 1028 lrw r1, 0x2000079c // 4590 + 4574: 07f9 br 0x4566 // 4566 + 4576: 0000 bkpt + 4578: 20000068 .long 0x20000068 + 457c: 20000945 .long 0x20000945 + 4580: 20000058 .long 0x20000058 + 4584: 200009fc .long 0x200009fc + 4588: 40011200 .long 0x40011200 + 458c: 2000076c .long 0x2000076c + 4590: 2000079c .long 0x2000079c + +Disassembly of section .text.TK_Keymap_prog: + +00004594 : + 4594: 14d4 push r4-r7, r15 + 4596: 142a subi r14, r14, 40 + 4598: 0171 lrw r3, 0x2000017c // 48d0 + 459a: 8360 ld.b r3, (r3, 0x0) + 459c: b860 st.w r3, (r14, 0x0) + 459e: 3400 movi r4, 0 + 45a0: 0172 lrw r3, 0x20000150 // 48d4 + 45a2: 8360 ld.b r3, (r3, 0x0) + 45a4: b863 st.w r3, (r14, 0xc) + 45a6: 0172 lrw r3, 0x20000159 // 48d8 + 45a8: 83a0 ld.b r5, (r3, 0x0) + 45aa: 0172 lrw r3, 0x20000158 // 48dc + 45ac: 8360 ld.b r3, (r3, 0x0) + 45ae: b866 st.w r3, (r14, 0x18) + 45b0: 0173 lrw r3, 0x200009da // 48e0 + 45b2: b868 st.w r3, (r14, 0x20) + 45b4: 0173 lrw r3, 0x20000748 // 48e4 + 45b6: b864 st.w r3, (r14, 0x10) + 45b8: b869 st.w r3, (r14, 0x24) + 45ba: 4461 lsli r3, r4, 1 + 45bc: 9848 ld.w r2, (r14, 0x20) + 45be: 608c addu r2, r3 + 45c0: 0135 lrw r1, 0x20000688 // 48e8 + 45c2: 604c addu r1, r3 + 45c4: 8a40 ld.h r2, (r2, 0x0) + 45c6: 8920 ld.h r1, (r1, 0x0) + 45c8: 6086 subu r2, r1 + 45ca: 9829 ld.w r1, (r14, 0x24) + 45cc: 604c addu r1, r3 + 45ce: 748b sexth r2, r2 + 45d0: a940 st.h r2, (r1, 0x0) + 45d2: 0118 lrw r0, 0x20000832 // 48ec + 45d4: 0158 lrw r2, 0x20000770 // 48f0 + 45d6: 608c addu r2, r3 + 45d8: 600c addu r0, r3 + 45da: 8a40 ld.h r2, (r2, 0x0) + 45dc: 8800 ld.h r0, (r0, 0x0) + 45de: 6082 subu r2, r0 + 45e0: 01da lrw r6, 0x20000888 // 48f4 + 45e2: 5e0c addu r0, r6, r3 + 45e4: 748b sexth r2, r2 + 45e6: a840 st.h r2, (r0, 0x0) + 45e8: b8c1 st.w r6, (r14, 0x4) + 45ea: 015b lrw r2, 0x20000866 // 48f8 + 45ec: 011b lrw r0, 0x20000948 // 48fc + 45ee: 608c addu r2, r3 + 45f0: 600c addu r0, r3 + 45f2: 8a40 ld.h r2, (r2, 0x0) + 45f4: 8800 ld.h r0, (r0, 0x0) + 45f6: 6082 subu r2, r0 + 45f8: 011d lrw r0, 0x200009b4 // 4900 + 45fa: 748b sexth r2, r2 + 45fc: 58ec addu r7, r0, r3 + 45fe: af40 st.h r2, (r7, 0x0) + 4600: 8940 ld.h r2, (r1, 0x0) + 4602: 748b sexth r2, r2 + 4604: 3adf btsti r2, 31 + 4606: 015f lrw r2, 0x20000992 // 4904 + 4608: 60c8 addu r3, r2 + 460a: b802 st.w r0, (r14, 0x8) + 460c: 0c49 bf 0x469e // 469e + 460e: 3200 movi r2, 0 + 4610: ab40 st.h r2, (r3, 0x0) + 4612: 9821 ld.w r1, (r14, 0x4) + 4614: 4461 lsli r3, r4, 1 + 4616: 604c addu r1, r3 + 4618: 8940 ld.h r2, (r1, 0x0) + 461a: 748b sexth r2, r2 + 461c: 3adf btsti r2, 31 + 461e: 0244 lrw r2, 0x200006f0 // 4908 + 4620: 60c8 addu r3, r2 + 4622: 0c41 bf 0x46a4 // 46a4 + 4624: 3200 movi r2, 0 + 4626: ab40 st.h r2, (r3, 0x0) + 4628: 9822 ld.w r1, (r14, 0x8) + 462a: 4461 lsli r3, r4, 1 + 462c: 604c addu r1, r3 + 462e: 8940 ld.h r2, (r1, 0x0) + 4630: 748b sexth r2, r2 + 4632: 3adf btsti r2, 31 + 4634: 0249 lrw r2, 0x200006c4 // 490c + 4636: 60c8 addu r3, r2 + 4638: 0c39 bf 0x46aa // 46aa + 463a: 3200 movi r2, 0 + 463c: ab40 st.h r2, (r3, 0x0) + 463e: 9860 ld.w r3, (r14, 0x0) + 4640: 3b03 cmphsi r3, 4 + 4642: 4421 lsli r1, r4, 1 + 4644: 0cb5 bf 0x47ae // 47ae + 4646: 9864 ld.w r3, (r14, 0x10) + 4648: 60c4 addu r3, r1 + 464a: 024d lrw r2, 0x200001aa // 4910 + 464c: 6048 addu r1, r2 + 464e: 8b00 ld.h r0, (r3, 0x0) + 4650: 8940 ld.h r2, (r1, 0x0) + 4652: 7403 sexth r0, r0 + 4654: 6409 cmplt r2, r0 + 4656: 9820 ld.w r1, (r14, 0x0) + 4658: 7c84 mult r2, r1 + 465a: 0c9b bf 0x4790 // 4790 + 465c: 8b20 ld.h r1, (r3, 0x0) + 465e: 7447 sexth r1, r1 + 4660: 6485 cmplt r1, r2 + 4662: 0c97 bf 0x4790 // 4790 + 4664: 0233 lrw r1, 0x20000735 // 4914 + 4666: 6050 addu r1, r4 + 4668: 8140 ld.b r2, (r1, 0x0) + 466a: 2200 addi r2, 1 + 466c: 7488 zextb r2, r2 + 466e: a140 st.b r2, (r1, 0x0) + 4670: 3000 movi r0, 0 + 4672: 0255 lrw r2, 0x20000714 // 4918 + 4674: 6090 addu r2, r4 + 4676: a200 st.b r0, (r2, 0x0) + 4678: 0256 lrw r2, 0x20000854 // 491c + 467a: 6090 addu r2, r4 + 467c: a200 st.b r0, (r2, 0x0) + 467e: 0256 lrw r2, 0x200008ec // 4920 + 4680: 6090 addu r2, r4 + 4682: a200 st.b r0, (r2, 0x0) + 4684: 8140 ld.b r2, (r1, 0x0) + 4686: 9803 ld.w r0, (r14, 0xc) + 4688: 6480 cmphs r0, r2 + 468a: 081d bt 0x46c4 // 46c4 + 468c: 3d40 cmpnei r5, 0 + 468e: 0811 bt 0x46b0 // 46b0 + 4690: 025a lrw r2, 0x20000728 // 4924 + 4692: 9260 ld.w r3, (r2, 0x0) + 4694: 3b40 cmpnei r3, 0 + 4696: 0815 bt 0x46c0 // 46c0 + 4698: 9200 ld.w r0, (r2, 0x0) + 469a: 3301 movi r3, 1 + 469c: 040f br 0x46ba // 46ba + 469e: 8940 ld.h r2, (r1, 0x0) + 46a0: 7489 zexth r2, r2 + 46a2: 07b7 br 0x4610 // 4610 + 46a4: 8940 ld.h r2, (r1, 0x0) + 46a6: 7489 zexth r2, r2 + 46a8: 07bf br 0x4626 // 4626 + 46aa: 8940 ld.h r2, (r1, 0x0) + 46ac: 7489 zexth r2, r2 + 46ae: 07c7 br 0x463c // 463c + 46b0: 3d41 cmpnei r5, 1 + 46b2: 085c bt 0x476a // 476a + 46b4: 0343 lrw r2, 0x20000728 // 4924 + 46b6: 6cd7 mov r3, r5 + 46b8: 9200 ld.w r0, (r2, 0x0) + 46ba: 70d0 lsl r3, r4 + 46bc: 6cc0 or r3, r0 + 46be: b260 st.w r3, (r2, 0x0) + 46c0: 3300 movi r3, 0 + 46c2: a160 st.b r3, (r1, 0x0) + 46c4: 4461 lsli r3, r4, 1 + 46c6: 9844 ld.w r2, (r14, 0x10) + 46c8: 608c addu r2, r3 + 46ca: 8ac0 ld.h r6, (r2, 0x0) + 46cc: 034e lrw r2, 0x200001aa // 4910 + 46ce: 60c8 addu r3, r2 + 46d0: 8be0 ld.h r7, (r3, 0x0) + 46d2: 4702 lsli r0, r7, 2 + 46d4: 3105 movi r1, 5 + 46d6: e3fff4ad bsr 0x3030 // 3030 <__divsi3> + 46da: 759b sexth r6, r6 + 46dc: 6419 cmplt r6, r0 + 46de: b805 st.w r0, (r14, 0x14) + 46e0: 0c18 bf 0x4710 // 4710 + 46e2: 0351 lrw r2, 0x20000714 // 4918 + 46e4: 6090 addu r2, r4 + 46e6: 8260 ld.b r3, (r2, 0x0) + 46e8: 2300 addi r3, 1 + 46ea: 74cc zextb r3, r3 + 46ec: a260 st.b r3, (r2, 0x0) + 46ee: 3100 movi r1, 0 + 46f0: 0376 lrw r3, 0x20000735 // 4914 + 46f2: 60d0 addu r3, r4 + 46f4: a320 st.b r1, (r3, 0x0) + 46f6: 8260 ld.b r3, (r2, 0x0) + 46f8: 9826 ld.w r1, (r14, 0x18) + 46fa: 64c4 cmphs r1, r3 + 46fc: 080a bt 0x4710 // 4710 + 46fe: 3300 movi r3, 0 + 4700: 0336 lrw r1, 0x20000728 // 4924 + 4702: 2b01 subi r3, 2 + 4704: 9100 ld.w r0, (r1, 0x0) + 4706: 70d3 rotl r3, r4 + 4708: 68c0 and r3, r0 + 470a: b160 st.w r3, (r1, 0x0) + 470c: 3300 movi r3, 0 + 470e: a260 st.b r3, (r2, 0x0) + 4710: 9860 ld.w r3, (r14, 0x0) + 4712: 9841 ld.w r2, (r14, 0x4) + 4714: 3b03 cmphsi r3, 4 + 4716: 4461 lsli r3, r4, 1 + 4718: 60c8 addu r3, r2 + 471a: 8b40 ld.h r2, (r3, 0x0) + 471c: 748b sexth r2, r2 + 471e: 0d4d bf 0x49b8 // 49b8 + 4720: 649d cmplt r7, r2 + 4722: 0d3a bf 0x4996 // 4996 + 4724: 8b40 ld.h r2, (r3, 0x0) + 4726: 9820 ld.w r1, (r14, 0x0) + 4728: 748b sexth r2, r2 + 472a: 7c5c mult r1, r7 + 472c: 6449 cmplt r2, r1 + 472e: 0d34 bf 0x4996 // 4996 + 4730: 133e lrw r1, 0x20000908 // 4928 + 4732: 6050 addu r1, r4 + 4734: 8140 ld.b r2, (r1, 0x0) + 4736: 2200 addi r2, 1 + 4738: 7488 zextb r2, r2 + 473a: a140 st.b r2, (r1, 0x0) + 473c: 3000 movi r0, 0 + 473e: 135c lrw r2, 0x200007a4 // 492c + 4740: 6090 addu r2, r4 + 4742: a200 st.b r0, (r2, 0x0) + 4744: 135b lrw r2, 0x200007ce // 4930 + 4746: 6090 addu r2, r4 + 4748: a200 st.b r0, (r2, 0x0) + 474a: 135b lrw r2, 0x200008cc // 4934 + 474c: 6090 addu r2, r4 + 474e: a200 st.b r0, (r2, 0x0) + 4750: 8140 ld.b r2, (r1, 0x0) + 4752: 9803 ld.w r0, (r14, 0xc) + 4754: 6480 cmphs r0, r2 + 4756: 087d bt 0x4850 // 4850 + 4758: 3d40 cmpnei r5, 0 + 475a: 0871 bt 0x483c // 483c + 475c: 1357 lrw r2, 0x200006bc // 4938 + 475e: 9260 ld.w r3, (r2, 0x0) + 4760: 3b40 cmpnei r3, 0 + 4762: 0875 bt 0x484c // 484c + 4764: 9200 ld.w r0, (r2, 0x0) + 4766: 3301 movi r3, 1 + 4768: 046f br 0x4846 // 4846 + 476a: 3d42 cmpnei r5, 2 + 476c: 0c03 bf 0x4772 // 4772 + 476e: e8000201 br 0x4b70 // 4b70 + 4772: 13d3 lrw r6, 0x200008e2 // 493c + 4774: 8b00 ld.h r0, (r3, 0x0) + 4776: 8e40 ld.h r2, (r6, 0x0) + 4778: 7489 zexth r2, r2 + 477a: 7403 sexth r0, r0 + 477c: 2209 addi r2, 10 + 477e: 6409 cmplt r2, r0 + 4780: 0fa0 bf 0x46c0 // 46c0 + 4782: 8b60 ld.h r3, (r3, 0x0) + 4784: 74cd zexth r3, r3 + 4786: ae60 st.h r3, (r6, 0x0) + 4788: 3300 movi r3, 0 + 478a: 1347 lrw r2, 0x20000728 // 4924 + 478c: b260 st.w r3, (r2, 0x0) + 478e: 0785 br 0x4698 // 4698 + 4790: 4461 lsli r3, r4, 1 + 4792: 9824 ld.w r1, (r14, 0x10) + 4794: 60c4 addu r3, r1 + 4796: 8b60 ld.h r3, (r3, 0x0) + 4798: 74cf sexth r3, r3 + 479a: 64c9 cmplt r2, r3 + 479c: 0f94 bf 0x46c4 // 46c4 + 479e: 3300 movi r3, 0 + 47a0: 1341 lrw r2, 0x20000728 // 4924 + 47a2: 2b01 subi r3, 2 + 47a4: 9220 ld.w r1, (r2, 0x0) + 47a6: 70d3 rotl r3, r4 + 47a8: 68c4 and r3, r1 + 47aa: b260 st.w r3, (r2, 0x0) + 47ac: 078c br 0x46c4 // 46c4 + 47ae: 9844 ld.w r2, (r14, 0x10) + 47b0: 6084 addu r2, r1 + 47b2: 1218 lrw r0, 0x200001aa // 4910 + 47b4: 8a60 ld.h r3, (r2, 0x0) + 47b6: 6040 addu r1, r0 + 47b8: 74cf sexth r3, r3 + 47ba: 8920 ld.h r1, (r1, 0x0) + 47bc: 64c5 cmplt r1, r3 + 47be: 0f83 bf 0x46c4 // 46c4 + 47c0: 1360 lrw r3, 0x20000746 // 4940 + 47c2: 8360 ld.b r3, (r3, 0x0) + 47c4: 74cc zextb r3, r3 + 47c6: 3b40 cmpnei r3, 0 + 47c8: 0b7e bt 0x46c4 // 46c4 + 47ca: 1213 lrw r0, 0x20000735 // 4914 + 47cc: 6010 addu r0, r4 + 47ce: 8020 ld.b r1, (r0, 0x0) + 47d0: 2100 addi r1, 1 + 47d2: 7444 zextb r1, r1 + 47d4: a020 st.b r1, (r0, 0x0) + 47d6: 3600 movi r6, 0 + 47d8: 1230 lrw r1, 0x20000714 // 4918 + 47da: 6050 addu r1, r4 + 47dc: a1c0 st.b r6, (r1, 0x0) + 47de: 1230 lrw r1, 0x20000854 // 491c + 47e0: 6050 addu r1, r4 + 47e2: a1c0 st.b r6, (r1, 0x0) + 47e4: 122f lrw r1, 0x200008ec // 4920 + 47e6: 6050 addu r1, r4 + 47e8: a1c0 st.b r6, (r1, 0x0) + 47ea: 8020 ld.b r1, (r0, 0x0) + 47ec: 98c3 ld.w r6, (r14, 0xc) + 47ee: 6458 cmphs r6, r1 + 47f0: 0b6a bt 0x46c4 // 46c4 + 47f2: 3d40 cmpnei r5, 0 + 47f4: 0808 bt 0x4804 // 4804 + 47f6: 124c lrw r2, 0x20000728 // 4924 + 47f8: 9260 ld.w r3, (r2, 0x0) + 47fa: 3b40 cmpnei r3, 0 + 47fc: 080c bt 0x4814 // 4814 + 47fe: 9220 ld.w r1, (r2, 0x0) + 4800: 3301 movi r3, 1 + 4802: 0406 br 0x480e // 480e + 4804: 3d41 cmpnei r5, 1 + 4806: 080a bt 0x481a // 481a + 4808: 1247 lrw r2, 0x20000728 // 4924 + 480a: 6cd7 mov r3, r5 + 480c: 9220 ld.w r1, (r2, 0x0) + 480e: 70d0 lsl r3, r4 + 4810: 6cc4 or r3, r1 + 4812: b260 st.w r3, (r2, 0x0) + 4814: 3300 movi r3, 0 + 4816: a060 st.b r3, (r0, 0x0) + 4818: 0756 br 0x46c4 // 46c4 + 481a: 3d42 cmpnei r5, 2 + 481c: 0c02 bf 0x4820 // 4820 + 481e: 05dc br 0x4bd6 // 4bd6 + 4820: 12e7 lrw r7, 0x200008e2 // 493c + 4822: 8ac0 ld.h r6, (r2, 0x0) + 4824: 8f20 ld.h r1, (r7, 0x0) + 4826: 7445 zexth r1, r1 + 4828: 759b sexth r6, r6 + 482a: 2109 addi r1, 10 + 482c: 6585 cmplt r1, r6 + 482e: 0ff3 bf 0x4814 // 4814 + 4830: 8a40 ld.h r2, (r2, 0x0) + 4832: 7489 zexth r2, r2 + 4834: af40 st.h r2, (r7, 0x0) + 4836: 115c lrw r2, 0x20000728 // 4924 + 4838: b260 st.w r3, (r2, 0x0) + 483a: 07e2 br 0x47fe // 47fe + 483c: 3d41 cmpnei r5, 1 + 483e: 089b bt 0x4974 // 4974 + 4840: 115e lrw r2, 0x200006bc // 4938 + 4842: 6cd7 mov r3, r5 + 4844: 9200 ld.w r0, (r2, 0x0) + 4846: 70d0 lsl r3, r4 + 4848: 6cc0 or r3, r0 + 484a: b260 st.w r3, (r2, 0x0) + 484c: 3300 movi r3, 0 + 484e: a160 st.b r3, (r1, 0x0) + 4850: 4461 lsli r3, r4, 1 + 4852: 9841 ld.w r2, (r14, 0x4) + 4854: 608c addu r2, r3 + 4856: 8a60 ld.h r3, (r2, 0x0) + 4858: 74cf sexth r3, r3 + 485a: 9845 ld.w r2, (r14, 0x14) + 485c: 648d cmplt r3, r2 + 485e: 0c18 bf 0x488e // 488e + 4860: 1153 lrw r2, 0x200007a4 // 492c + 4862: 6090 addu r2, r4 + 4864: 8260 ld.b r3, (r2, 0x0) + 4866: 2300 addi r3, 1 + 4868: 74cc zextb r3, r3 + 486a: a260 st.b r3, (r2, 0x0) + 486c: 3100 movi r1, 0 + 486e: 116f lrw r3, 0x20000908 // 4928 + 4870: 60d0 addu r3, r4 + 4872: a320 st.b r1, (r3, 0x0) + 4874: 8260 ld.b r3, (r2, 0x0) + 4876: 9826 ld.w r1, (r14, 0x18) + 4878: 64c4 cmphs r1, r3 + 487a: 080a bt 0x488e // 488e + 487c: 3300 movi r3, 0 + 487e: 112f lrw r1, 0x200006bc // 4938 + 4880: 2b01 subi r3, 2 + 4882: 9100 ld.w r0, (r1, 0x0) + 4884: 70d3 rotl r3, r4 + 4886: 68c0 and r3, r0 + 4888: b160 st.w r3, (r1, 0x0) + 488a: 3300 movi r3, 0 + 488c: a260 st.b r3, (r2, 0x0) + 488e: 9860 ld.w r3, (r14, 0x0) + 4890: 9842 ld.w r2, (r14, 0x8) + 4892: 3b03 cmphsi r3, 4 + 4894: 4461 lsli r3, r4, 1 + 4896: 60c8 addu r3, r2 + 4898: 8b40 ld.h r2, (r3, 0x0) + 489a: 748b sexth r2, r2 + 489c: 0d26 bf 0x4ae8 // 4ae8 + 489e: 9820 ld.w r1, (r14, 0x0) + 48a0: 649d cmplt r7, r2 + 48a2: 7c5c mult r1, r7 + 48a4: 0d13 bf 0x4aca // 4aca + 48a6: 8b40 ld.h r2, (r3, 0x0) + 48a8: 748b sexth r2, r2 + 48aa: 6449 cmplt r2, r1 + 48ac: 0d0f bf 0x4aca // 4aca + 48ae: 1126 lrw r1, 0x200008b0 // 4944 + 48b0: 6050 addu r1, r4 + 48b2: 8140 ld.b r2, (r1, 0x0) + 48b4: 2200 addi r2, 1 + 48b6: 7488 zextb r2, r2 + 48b8: a140 st.b r2, (r1, 0x0) + 48ba: 3000 movi r0, 0 + 48bc: 1143 lrw r2, 0x2000091e // 4948 + 48be: 6090 addu r2, r4 + 48c0: a200 st.b r0, (r2, 0x0) + 48c2: 1143 lrw r2, 0x200006aa // 494c + 48c4: 6090 addu r2, r4 + 48c6: a200 st.b r0, (r2, 0x0) + 48c8: 1142 lrw r2, 0x200007bc // 4950 + 48ca: 6090 addu r2, r4 + 48cc: a200 st.b r0, (r2, 0x0) + 48ce: 0443 br 0x4954 // 4954 + 48d0: 2000017c .long 0x2000017c + 48d4: 20000150 .long 0x20000150 + 48d8: 20000159 .long 0x20000159 + 48dc: 20000158 .long 0x20000158 + 48e0: 200009da .long 0x200009da + 48e4: 20000748 .long 0x20000748 + 48e8: 20000688 .long 0x20000688 + 48ec: 20000832 .long 0x20000832 + 48f0: 20000770 .long 0x20000770 + 48f4: 20000888 .long 0x20000888 + 48f8: 20000866 .long 0x20000866 + 48fc: 20000948 .long 0x20000948 + 4900: 200009b4 .long 0x200009b4 + 4904: 20000992 .long 0x20000992 + 4908: 200006f0 .long 0x200006f0 + 490c: 200006c4 .long 0x200006c4 + 4910: 200001aa .long 0x200001aa + 4914: 20000735 .long 0x20000735 + 4918: 20000714 .long 0x20000714 + 491c: 20000854 .long 0x20000854 + 4920: 200008ec .long 0x200008ec + 4924: 20000728 .long 0x20000728 + 4928: 20000908 .long 0x20000908 + 492c: 200007a4 .long 0x200007a4 + 4930: 200007ce .long 0x200007ce + 4934: 200008cc .long 0x200008cc + 4938: 200006bc .long 0x200006bc + 493c: 200008e2 .long 0x200008e2 + 4940: 20000746 .long 0x20000746 + 4944: 200008b0 .long 0x200008b0 + 4948: 2000091e .long 0x2000091e + 494c: 200006aa .long 0x200006aa + 4950: 200007bc .long 0x200007bc + 4954: 8140 ld.b r2, (r1, 0x0) + 4956: 9803 ld.w r0, (r14, 0xc) + 4958: 6480 cmphs r0, r2 + 495a: 0881 bt 0x4a5c // 4a5c + 495c: 3d40 cmpnei r5, 0 + 495e: 0874 bt 0x4a46 // 4a46 + 4960: 014b lrw r2, 0x200007a0 // 4cb0 + 4962: 9260 ld.w r3, (r2, 0x0) + 4964: 3b40 cmpnei r3, 0 + 4966: 0879 bt 0x4a58 // 4a58 + 4968: 3301 movi r3, 1 + 496a: 9200 ld.w r0, (r2, 0x0) + 496c: 70d0 lsl r3, r4 + 496e: 6cc0 or r3, r0 + 4970: b260 st.w r3, (r2, 0x0) + 4972: 0473 br 0x4a58 // 4a58 + 4974: 3d42 cmpnei r5, 2 + 4976: 0960 bt 0x4c36 // 4c36 + 4978: 01d0 lrw r6, 0x200009d8 // 4cb4 + 497a: 8b00 ld.h r0, (r3, 0x0) + 497c: 8e40 ld.h r2, (r6, 0x0) + 497e: 7489 zexth r2, r2 + 4980: 7403 sexth r0, r0 + 4982: 2209 addi r2, 10 + 4984: 6409 cmplt r2, r0 + 4986: 0f63 bf 0x484c // 484c + 4988: 8b60 ld.h r3, (r3, 0x0) + 498a: 74cd zexth r3, r3 + 498c: ae60 st.h r3, (r6, 0x0) + 498e: 3300 movi r3, 0 + 4990: 0155 lrw r2, 0x200006bc // 4cb8 + 4992: b260 st.w r3, (r2, 0x0) + 4994: 06e8 br 0x4764 // 4764 + 4996: 9841 ld.w r2, (r14, 0x4) + 4998: 4461 lsli r3, r4, 1 + 499a: 60c8 addu r3, r2 + 499c: 8b60 ld.h r3, (r3, 0x0) + 499e: 9840 ld.w r2, (r14, 0x0) + 49a0: 74cf sexth r3, r3 + 49a2: 7c9c mult r2, r7 + 49a4: 64c9 cmplt r2, r3 + 49a6: 0f55 bf 0x4850 // 4850 + 49a8: 3300 movi r3, 0 + 49aa: 015b lrw r2, 0x200006bc // 4cb8 + 49ac: 2b01 subi r3, 2 + 49ae: 9220 ld.w r1, (r2, 0x0) + 49b0: 70d3 rotl r3, r4 + 49b2: 68c4 and r3, r1 + 49b4: b260 st.w r3, (r2, 0x0) + 49b6: 074d br 0x4850 // 4850 + 49b8: 649d cmplt r7, r2 + 49ba: 0f4b bf 0x4850 // 4850 + 49bc: 015f lrw r2, 0x20000746 // 4cbc + 49be: 8240 ld.b r2, (r2, 0x0) + 49c0: 7488 zextb r2, r2 + 49c2: 3a40 cmpnei r2, 0 + 49c4: b847 st.w r2, (r14, 0x1c) + 49c6: 0b45 bt 0x4850 // 4850 + 49c8: 0201 lrw r0, 0x20000908 // 4cc0 + 49ca: 6010 addu r0, r4 + 49cc: 8020 ld.b r1, (r0, 0x0) + 49ce: 2100 addi r1, 1 + 49d0: 7444 zextb r1, r1 + 49d2: a020 st.b r1, (r0, 0x0) + 49d4: 3600 movi r6, 0 + 49d6: 0223 lrw r1, 0x200007a4 // 4cc4 + 49d8: 6050 addu r1, r4 + 49da: a1c0 st.b r6, (r1, 0x0) + 49dc: 0224 lrw r1, 0x200007ce // 4cc8 + 49de: 6050 addu r1, r4 + 49e0: a1c0 st.b r6, (r1, 0x0) + 49e2: 0224 lrw r1, 0x200008cc // 4ccc + 49e4: 6050 addu r1, r4 + 49e6: a1c0 st.b r6, (r1, 0x0) + 49e8: 8020 ld.b r1, (r0, 0x0) + 49ea: 98c3 ld.w r6, (r14, 0xc) + 49ec: 6458 cmphs r6, r1 + 49ee: 0b31 bt 0x4850 // 4850 + 49f0: 3d40 cmpnei r5, 0 + 49f2: 0808 bt 0x4a02 // 4a02 + 49f4: 024e lrw r2, 0x200006bc // 4cb8 + 49f6: 9260 ld.w r3, (r2, 0x0) + 49f8: 3b40 cmpnei r3, 0 + 49fa: 0823 bt 0x4a40 // 4a40 + 49fc: 9220 ld.w r1, (r2, 0x0) + 49fe: 3301 movi r3, 1 + 4a00: 0406 br 0x4a0c // 4a0c + 4a02: 3d41 cmpnei r5, 1 + 4a04: 0808 bt 0x4a14 // 4a14 + 4a06: 0252 lrw r2, 0x200006bc // 4cb8 + 4a08: 6cd7 mov r3, r5 + 4a0a: 9220 ld.w r1, (r2, 0x0) + 4a0c: 70d0 lsl r3, r4 + 4a0e: 6cc4 or r3, r1 + 4a10: b260 st.w r3, (r2, 0x0) + 4a12: 0417 br 0x4a40 // 4a40 + 4a14: 3d42 cmpnei r5, 2 + 4a16: 0942 bt 0x4c9a // 4c9a + 4a18: 8bc0 ld.h r6, (r3, 0x0) + 4a1a: 745b sexth r1, r6 + 4a1c: 02d9 lrw r6, 0x200009d8 // 4cb4 + 4a1e: 6c87 mov r2, r1 + 4a20: 8e20 ld.h r1, (r6, 0x0) + 4a22: 7445 zexth r1, r1 + 4a24: 2109 addi r1, 10 + 4a26: 6485 cmplt r1, r2 + 4a28: 0c0c bf 0x4a40 // 4a40 + 4a2a: 8b60 ld.h r3, (r3, 0x0) + 4a2c: 74cd zexth r3, r3 + 4a2e: ae60 st.h r3, (r6, 0x0) + 4a30: 9867 ld.w r3, (r14, 0x1c) + 4a32: 023d lrw r1, 0x200006bc // 4cb8 + 4a34: b160 st.w r3, (r1, 0x0) + 4a36: 3301 movi r3, 1 + 4a38: 9140 ld.w r2, (r1, 0x0) + 4a3a: 70d0 lsl r3, r4 + 4a3c: 6cc8 or r3, r2 + 4a3e: b160 st.w r3, (r1, 0x0) + 4a40: 3300 movi r3, 0 + 4a42: a060 st.b r3, (r0, 0x0) + 4a44: 0706 br 0x4850 // 4850 + 4a46: 3d41 cmpnei r5, 1 + 4a48: 0830 bt 0x4aa8 // 4aa8 + 4a4a: 0345 lrw r2, 0x200007a0 // 4cb0 + 4a4c: 6cd7 mov r3, r5 + 4a4e: 9200 ld.w r0, (r2, 0x0) + 4a50: 70d0 lsl r3, r4 + 4a52: 6cc0 or r3, r0 + 4a54: b260 st.w r3, (r2, 0x0) + 4a56: 6c03 mov r0, r0 + 4a58: 3300 movi r3, 0 + 4a5a: a160 st.b r3, (r1, 0x0) + 4a5c: 4461 lsli r3, r4, 1 + 4a5e: 9842 ld.w r2, (r14, 0x8) + 4a60: 608c addu r2, r3 + 4a62: 8a60 ld.h r3, (r2, 0x0) + 4a64: 74cf sexth r3, r3 + 4a66: 9845 ld.w r2, (r14, 0x14) + 4a68: 648d cmplt r3, r2 + 4a6a: 0c18 bf 0x4a9a // 4a9a + 4a6c: 0346 lrw r2, 0x2000091e // 4cd0 + 4a6e: 6090 addu r2, r4 + 4a70: 8260 ld.b r3, (r2, 0x0) + 4a72: 2300 addi r3, 1 + 4a74: 74cc zextb r3, r3 + 4a76: a260 st.b r3, (r2, 0x0) + 4a78: 3100 movi r1, 0 + 4a7a: 0368 lrw r3, 0x200008b0 // 4cd4 + 4a7c: 60d0 addu r3, r4 + 4a7e: a320 st.b r1, (r3, 0x0) + 4a80: 8260 ld.b r3, (r2, 0x0) + 4a82: 9826 ld.w r1, (r14, 0x18) + 4a84: 64c4 cmphs r1, r3 + 4a86: 080a bt 0x4a9a // 4a9a + 4a88: 3300 movi r3, 0 + 4a8a: 0335 lrw r1, 0x200007a0 // 4cb0 + 4a8c: 2b01 subi r3, 2 + 4a8e: 9100 ld.w r0, (r1, 0x0) + 4a90: 70d3 rotl r3, r4 + 4a92: 68c0 and r3, r0 + 4a94: b160 st.w r3, (r1, 0x0) + 4a96: 3300 movi r3, 0 + 4a98: a260 st.b r3, (r2, 0x0) + 4a9a: 2400 addi r4, 1 + 4a9c: 3c51 cmpnei r4, 17 + 4a9e: 0c03 bf 0x4aa4 // 4aa4 + 4aa0: e800fd8d br 0x45ba // 45ba + 4aa4: 140a addi r14, r14, 40 + 4aa6: 1494 pop r4-r7, r15 + 4aa8: 3d42 cmpnei r5, 2 + 4aaa: 0948 bt 0x4d3a // 4d3a + 4aac: 03d4 lrw r6, 0x2000076a // 4cd8 + 4aae: 8b00 ld.h r0, (r3, 0x0) + 4ab0: 8e40 ld.h r2, (r6, 0x0) + 4ab2: 7489 zexth r2, r2 + 4ab4: 7403 sexth r0, r0 + 4ab6: 2209 addi r2, 10 + 4ab8: 6409 cmplt r2, r0 + 4aba: 0fcf bf 0x4a58 // 4a58 + 4abc: 8b60 ld.h r3, (r3, 0x0) + 4abe: 74cd zexth r3, r3 + 4ac0: ae60 st.h r3, (r6, 0x0) + 4ac2: 3300 movi r3, 0 + 4ac4: 135b lrw r2, 0x200007a0 // 4cb0 + 4ac6: b260 st.w r3, (r2, 0x0) + 4ac8: 0750 br 0x4968 // 4968 + 4aca: 4461 lsli r3, r4, 1 + 4acc: 9842 ld.w r2, (r14, 0x8) + 4ace: 60c8 addu r3, r2 + 4ad0: 8b60 ld.h r3, (r3, 0x0) + 4ad2: 74cf sexth r3, r3 + 4ad4: 64c5 cmplt r1, r3 + 4ad6: 0fc3 bf 0x4a5c // 4a5c + 4ad8: 3300 movi r3, 0 + 4ada: 1356 lrw r2, 0x200007a0 // 4cb0 + 4adc: 2b01 subi r3, 2 + 4ade: 9220 ld.w r1, (r2, 0x0) + 4ae0: 70d3 rotl r3, r4 + 4ae2: 68c4 and r3, r1 + 4ae4: b260 st.w r3, (r2, 0x0) + 4ae6: 07bb br 0x4a5c // 4a5c + 4ae8: 649d cmplt r7, r2 + 4aea: 0fb9 bf 0x4a5c // 4a5c + 4aec: 1354 lrw r2, 0x20000746 // 4cbc + 4aee: 8240 ld.b r2, (r2, 0x0) + 4af0: 7488 zextb r2, r2 + 4af2: 3a40 cmpnei r2, 0 + 4af4: 0bb4 bt 0x4a5c // 4a5c + 4af6: 1318 lrw r0, 0x200008b0 // 4cd4 + 4af8: 6010 addu r0, r4 + 4afa: 8020 ld.b r1, (r0, 0x0) + 4afc: 2100 addi r1, 1 + 4afe: 7444 zextb r1, r1 + 4b00: a020 st.b r1, (r0, 0x0) + 4b02: 3600 movi r6, 0 + 4b04: 1333 lrw r1, 0x2000091e // 4cd0 + 4b06: 6050 addu r1, r4 + 4b08: a1c0 st.b r6, (r1, 0x0) + 4b0a: 1335 lrw r1, 0x200006aa // 4cdc + 4b0c: 6050 addu r1, r4 + 4b0e: a1c0 st.b r6, (r1, 0x0) + 4b10: 1334 lrw r1, 0x200007bc // 4ce0 + 4b12: 6050 addu r1, r4 + 4b14: a1c0 st.b r6, (r1, 0x0) + 4b16: 8020 ld.b r1, (r0, 0x0) + 4b18: 98c3 ld.w r6, (r14, 0xc) + 4b1a: 6458 cmphs r6, r1 + 4b1c: 0ba0 bt 0x4a5c // 4a5c + 4b1e: 3d40 cmpnei r5, 0 + 4b20: 0808 bt 0x4b30 // 4b30 + 4b22: 1344 lrw r2, 0x200007a0 // 4cb0 + 4b24: 9260 ld.w r3, (r2, 0x0) + 4b26: 3b40 cmpnei r3, 0 + 4b28: 0821 bt 0x4b6a // 4b6a + 4b2a: 9220 ld.w r1, (r2, 0x0) + 4b2c: 3301 movi r3, 1 + 4b2e: 0406 br 0x4b3a // 4b3a + 4b30: 3d41 cmpnei r5, 1 + 4b32: 0808 bt 0x4b42 // 4b42 + 4b34: 125f lrw r2, 0x200007a0 // 4cb0 + 4b36: 6cd7 mov r3, r5 + 4b38: 9220 ld.w r1, (r2, 0x0) + 4b3a: 70d0 lsl r3, r4 + 4b3c: 6cc4 or r3, r1 + 4b3e: b260 st.w r3, (r2, 0x0) + 4b40: 0415 br 0x4b6a // 4b6a + 4b42: 3d42 cmpnei r5, 2 + 4b44: 092a bt 0x4d98 // 4d98 + 4b46: 13e5 lrw r7, 0x2000076a // 4cd8 + 4b48: 8bc0 ld.h r6, (r3, 0x0) + 4b4a: 8f20 ld.h r1, (r7, 0x0) + 4b4c: 7445 zexth r1, r1 + 4b4e: 759b sexth r6, r6 + 4b50: 2109 addi r1, 10 + 4b52: 6585 cmplt r1, r6 + 4b54: 0c0b bf 0x4b6a // 4b6a + 4b56: 8b60 ld.h r3, (r3, 0x0) + 4b58: 1236 lrw r1, 0x200007a0 // 4cb0 + 4b5a: 74cd zexth r3, r3 + 4b5c: af60 st.h r3, (r7, 0x0) + 4b5e: b140 st.w r2, (r1, 0x0) + 4b60: 3301 movi r3, 1 + 4b62: 9140 ld.w r2, (r1, 0x0) + 4b64: 70d0 lsl r3, r4 + 4b66: 6cc8 or r3, r2 + 4b68: b160 st.w r3, (r1, 0x0) + 4b6a: 3300 movi r3, 0 + 4b6c: a060 st.b r3, (r0, 0x0) + 4b6e: 0777 br 0x4a5c // 4a5c + 4b70: 3d43 cmpnei r5, 3 + 4b72: 0c03 bf 0x4b78 // 4b78 + 4b74: e800fda6 br 0x46c0 // 46c0 + 4b78: 125b lrw r2, 0x200008e2 // 4ce4 + 4b7a: 8bc0 ld.h r6, (r3, 0x0) + 4b7c: 8a00 ld.h r0, (r2, 0x0) + 4b7e: 7401 zexth r0, r0 + 4b80: 759b sexth r6, r6 + 4b82: 2009 addi r0, 10 + 4b84: 6581 cmplt r0, r6 + 4b86: 0c0c bf 0x4b9e // 4b9e + 4b88: 8b60 ld.h r3, (r3, 0x0) + 4b8a: 74cd zexth r3, r3 + 4b8c: aa60 st.h r3, (r2, 0x0) + 4b8e: 3300 movi r3, 0 + 4b90: 1216 lrw r0, 0x20000728 // 4ce8 + 4b92: b060 st.w r3, (r0, 0x0) + 4b94: 3301 movi r3, 1 + 4b96: 90c0 ld.w r6, (r0, 0x0) + 4b98: 70d0 lsl r3, r4 + 4b9a: 6cd8 or r3, r6 + 4b9c: b060 st.w r3, (r0, 0x0) + 4b9e: 9804 ld.w r0, (r14, 0x10) + 4ba0: 4461 lsli r3, r4, 1 + 4ba2: 60c0 addu r3, r0 + 4ba4: 8b00 ld.h r0, (r3, 0x0) + 4ba6: 8a40 ld.h r2, (r2, 0x0) + 4ba8: 7489 zexth r2, r2 + 4baa: 7403 sexth r0, r0 + 4bac: 2a04 subi r2, 5 + 4bae: 6481 cmplt r0, r2 + 4bb0: 0803 bt 0x4bb6 // 4bb6 + 4bb2: e800fd87 br 0x46c0 // 46c0 + 4bb6: 12ce lrw r6, 0x200006ec // 4cec + 4bb8: 8b00 ld.h r0, (r3, 0x0) + 4bba: 8e40 ld.h r2, (r6, 0x0) + 4bbc: 7489 zexth r2, r2 + 4bbe: 7403 sexth r0, r0 + 4bc0: 2204 addi r2, 5 + 4bc2: 6409 cmplt r2, r0 + 4bc4: 0803 bt 0x4bca // 4bca + 4bc6: e800fd7d br 0x46c0 // 46c0 + 4bca: 8b60 ld.h r3, (r3, 0x0) + 4bcc: 74cd zexth r3, r3 + 4bce: ae60 st.h r3, (r6, 0x0) + 4bd0: 1246 lrw r2, 0x20000728 // 4ce8 + 4bd2: e800fd63 br 0x4698 // 4698 + 4bd6: 3d43 cmpnei r5, 3 + 4bd8: 0c02 bf 0x4bdc // 4bdc + 4bda: 061d br 0x4814 // 4814 + 4bdc: 12c2 lrw r6, 0x200008e2 // 4ce4 + 4bde: 8ae0 ld.h r7, (r2, 0x0) + 4be0: 8e20 ld.h r1, (r6, 0x0) + 4be2: 7445 zexth r1, r1 + 4be4: 75df sexth r7, r7 + 4be6: 2109 addi r1, 10 + 4be8: 65c5 cmplt r1, r7 + 4bea: 0c0b bf 0x4c00 // 4c00 + 4bec: 8a40 ld.h r2, (r2, 0x0) + 4bee: 7489 zexth r2, r2 + 4bf0: ae40 st.h r2, (r6, 0x0) + 4bf2: 115e lrw r2, 0x20000728 // 4ce8 + 4bf4: b260 st.w r3, (r2, 0x0) + 4bf6: 3301 movi r3, 1 + 4bf8: 9220 ld.w r1, (r2, 0x0) + 4bfa: 70d0 lsl r3, r4 + 4bfc: 6cc4 or r3, r1 + 4bfe: b260 st.w r3, (r2, 0x0) + 4c00: 9844 ld.w r2, (r14, 0x10) + 4c02: 4461 lsli r3, r4, 1 + 4c04: 60c8 addu r3, r2 + 4c06: 8b40 ld.h r2, (r3, 0x0) + 4c08: 8e20 ld.h r1, (r6, 0x0) + 4c0a: 7445 zexth r1, r1 + 4c0c: 748b sexth r2, r2 + 4c0e: 2904 subi r1, 5 + 4c10: 6449 cmplt r2, r1 + 4c12: 0802 bt 0x4c16 // 4c16 + 4c14: 0600 br 0x4814 // 4814 + 4c16: 11d6 lrw r6, 0x200006ec // 4cec + 4c18: 8b20 ld.h r1, (r3, 0x0) + 4c1a: 8e40 ld.h r2, (r6, 0x0) + 4c1c: 7489 zexth r2, r2 + 4c1e: 7447 sexth r1, r1 + 4c20: 2204 addi r2, 5 + 4c22: 6449 cmplt r2, r1 + 4c24: 0803 bt 0x4c2a // 4c2a + 4c26: e800fdf7 br 0x4814 // 4814 + 4c2a: 8b60 ld.h r3, (r3, 0x0) + 4c2c: 74cd zexth r3, r3 + 4c2e: ae60 st.h r3, (r6, 0x0) + 4c30: 114e lrw r2, 0x20000728 // 4ce8 + 4c32: e800fde6 br 0x47fe // 47fe + 4c36: 3d43 cmpnei r5, 3 + 4c38: 0c02 bf 0x4c3c // 4c3c + 4c3a: 0609 br 0x484c // 484c + 4c3c: 105e lrw r2, 0x200009d8 // 4cb4 + 4c3e: 8bc0 ld.h r6, (r3, 0x0) + 4c40: 8a00 ld.h r0, (r2, 0x0) + 4c42: 7401 zexth r0, r0 + 4c44: 759b sexth r6, r6 + 4c46: 2009 addi r0, 10 + 4c48: 6581 cmplt r0, r6 + 4c4a: 0c0c bf 0x4c62 // 4c62 + 4c4c: 8b60 ld.h r3, (r3, 0x0) + 4c4e: 74cd zexth r3, r3 + 4c50: aa60 st.h r3, (r2, 0x0) + 4c52: 3300 movi r3, 0 + 4c54: 1019 lrw r0, 0x200006bc // 4cb8 + 4c56: b060 st.w r3, (r0, 0x0) + 4c58: 3301 movi r3, 1 + 4c5a: 90c0 ld.w r6, (r0, 0x0) + 4c5c: 70d0 lsl r3, r4 + 4c5e: 6cd8 or r3, r6 + 4c60: b060 st.w r3, (r0, 0x0) + 4c62: 9801 ld.w r0, (r14, 0x4) + 4c64: 4461 lsli r3, r4, 1 + 4c66: 60c0 addu r3, r0 + 4c68: 8b00 ld.h r0, (r3, 0x0) + 4c6a: 8a40 ld.h r2, (r2, 0x0) + 4c6c: 7489 zexth r2, r2 + 4c6e: 7403 sexth r0, r0 + 4c70: 2a04 subi r2, 5 + 4c72: 6481 cmplt r0, r2 + 4c74: 0803 bt 0x4c7a // 4c7a + 4c76: e800fdeb br 0x484c // 484c + 4c7a: 10de lrw r6, 0x200008ea // 4cf0 + 4c7c: 8b00 ld.h r0, (r3, 0x0) + 4c7e: 8e40 ld.h r2, (r6, 0x0) + 4c80: 7489 zexth r2, r2 + 4c82: 7403 sexth r0, r0 + 4c84: 2204 addi r2, 5 + 4c86: 6409 cmplt r2, r0 + 4c88: 0803 bt 0x4c8e // 4c8e + 4c8a: e800fde1 br 0x484c // 484c + 4c8e: 8b60 ld.h r3, (r3, 0x0) + 4c90: 74cd zexth r3, r3 + 4c92: ae60 st.h r3, (r6, 0x0) + 4c94: 1049 lrw r2, 0x200006bc // 4cb8 + 4c96: e800fd67 br 0x4764 // 4764 + 4c9a: 3d43 cmpnei r5, 3 + 4c9c: 0ad2 bt 0x4a40 // 4a40 + 4c9e: 8b20 ld.h r1, (r3, 0x0) + 4ca0: 10c5 lrw r6, 0x200009d8 // 4cb4 + 4ca2: 7487 sexth r2, r1 + 4ca4: 8e20 ld.h r1, (r6, 0x0) + 4ca6: 7445 zexth r1, r1 + 4ca8: 2109 addi r1, 10 + 4caa: 6485 cmplt r1, r2 + 4cac: 0c2f bf 0x4d0a // 4d0a + 4cae: 0423 br 0x4cf4 // 4cf4 + 4cb0: 200007a0 .long 0x200007a0 + 4cb4: 200009d8 .long 0x200009d8 + 4cb8: 200006bc .long 0x200006bc + 4cbc: 20000746 .long 0x20000746 + 4cc0: 20000908 .long 0x20000908 + 4cc4: 200007a4 .long 0x200007a4 + 4cc8: 200007ce .long 0x200007ce + 4ccc: 200008cc .long 0x200008cc + 4cd0: 2000091e .long 0x2000091e + 4cd4: 200008b0 .long 0x200008b0 + 4cd8: 2000076a .long 0x2000076a + 4cdc: 200006aa .long 0x200006aa + 4ce0: 200007bc .long 0x200007bc + 4ce4: 200008e2 .long 0x200008e2 + 4ce8: 20000728 .long 0x20000728 + 4cec: 200006ec .long 0x200006ec + 4cf0: 200008ea .long 0x200008ea + 4cf4: 8b60 ld.h r3, (r3, 0x0) + 4cf6: 74cd zexth r3, r3 + 4cf8: ae60 st.h r3, (r6, 0x0) + 4cfa: 9867 ld.w r3, (r14, 0x1c) + 4cfc: 113d lrw r1, 0x200006bc // 4df0 + 4cfe: b160 st.w r3, (r1, 0x0) + 4d00: 3301 movi r3, 1 + 4d02: 9140 ld.w r2, (r1, 0x0) + 4d04: 70d0 lsl r3, r4 + 4d06: 6cc8 or r3, r2 + 4d08: b160 st.w r3, (r1, 0x0) + 4d0a: 9841 ld.w r2, (r14, 0x4) + 4d0c: 4461 lsli r3, r4, 1 + 4d0e: 60c8 addu r3, r2 + 4d10: 8b40 ld.h r2, (r3, 0x0) + 4d12: 8e20 ld.h r1, (r6, 0x0) + 4d14: 7445 zexth r1, r1 + 4d16: 748b sexth r2, r2 + 4d18: 2904 subi r1, 5 + 4d1a: 6449 cmplt r2, r1 + 4d1c: 0e92 bf 0x4a40 // 4a40 + 4d1e: 11d6 lrw r6, 0x200008ea // 4df4 + 4d20: 8b20 ld.h r1, (r3, 0x0) + 4d22: 8e40 ld.h r2, (r6, 0x0) + 4d24: 7489 zexth r2, r2 + 4d26: 7447 sexth r1, r1 + 4d28: 2204 addi r2, 5 + 4d2a: 6449 cmplt r2, r1 + 4d2c: 0802 bt 0x4d30 // 4d30 + 4d2e: 0689 br 0x4a40 // 4a40 + 4d30: 8b60 ld.h r3, (r3, 0x0) + 4d32: 74cd zexth r3, r3 + 4d34: ae60 st.h r3, (r6, 0x0) + 4d36: 114f lrw r2, 0x200006bc // 4df0 + 4d38: 0662 br 0x49fc // 49fc + 4d3a: 3d43 cmpnei r5, 3 + 4d3c: 0a8e bt 0x4a58 // 4a58 + 4d3e: 114f lrw r2, 0x2000076a // 4df8 + 4d40: 8bc0 ld.h r6, (r3, 0x0) + 4d42: 8a00 ld.h r0, (r2, 0x0) + 4d44: 7401 zexth r0, r0 + 4d46: 759b sexth r6, r6 + 4d48: 2009 addi r0, 10 + 4d4a: 6581 cmplt r0, r6 + 4d4c: 0c0c bf 0x4d64 // 4d64 + 4d4e: 8b60 ld.h r3, (r3, 0x0) + 4d50: 74cd zexth r3, r3 + 4d52: aa60 st.h r3, (r2, 0x0) + 4d54: 3300 movi r3, 0 + 4d56: 110a lrw r0, 0x200007a0 // 4dfc + 4d58: b060 st.w r3, (r0, 0x0) + 4d5a: 3301 movi r3, 1 + 4d5c: 90c0 ld.w r6, (r0, 0x0) + 4d5e: 70d0 lsl r3, r4 + 4d60: 6cd8 or r3, r6 + 4d62: b060 st.w r3, (r0, 0x0) + 4d64: 9802 ld.w r0, (r14, 0x8) + 4d66: 4461 lsli r3, r4, 1 + 4d68: 60c0 addu r3, r0 + 4d6a: 8b00 ld.h r0, (r3, 0x0) + 4d6c: 8a40 ld.h r2, (r2, 0x0) + 4d6e: 7489 zexth r2, r2 + 4d70: 7403 sexth r0, r0 + 4d72: 2a04 subi r2, 5 + 4d74: 6481 cmplt r0, r2 + 4d76: 0802 bt 0x4d7a // 4d7a + 4d78: 0670 br 0x4a58 // 4a58 + 4d7a: 11c2 lrw r6, 0x20000830 // 4e00 + 4d7c: 8b00 ld.h r0, (r3, 0x0) + 4d7e: 8e40 ld.h r2, (r6, 0x0) + 4d80: 7489 zexth r2, r2 + 4d82: 7403 sexth r0, r0 + 4d84: 2204 addi r2, 5 + 4d86: 6409 cmplt r2, r0 + 4d88: 0802 bt 0x4d8c // 4d8c + 4d8a: 0667 br 0x4a58 // 4a58 + 4d8c: 8b60 ld.h r3, (r3, 0x0) + 4d8e: 74cd zexth r3, r3 + 4d90: ae60 st.h r3, (r6, 0x0) + 4d92: 105b lrw r2, 0x200007a0 // 4dfc + 4d94: e800fdea br 0x4968 // 4968 + 4d98: 3d43 cmpnei r5, 3 + 4d9a: 0ae8 bt 0x4b6a // 4b6a + 4d9c: 10d7 lrw r6, 0x2000076a // 4df8 + 4d9e: 8be0 ld.h r7, (r3, 0x0) + 4da0: 8e20 ld.h r1, (r6, 0x0) + 4da2: 7445 zexth r1, r1 + 4da4: 75df sexth r7, r7 + 4da6: 2109 addi r1, 10 + 4da8: 65c5 cmplt r1, r7 + 4daa: 0c0b bf 0x4dc0 // 4dc0 + 4dac: 8b60 ld.h r3, (r3, 0x0) + 4dae: 1034 lrw r1, 0x200007a0 // 4dfc + 4db0: 74cd zexth r3, r3 + 4db2: ae60 st.h r3, (r6, 0x0) + 4db4: b140 st.w r2, (r1, 0x0) + 4db6: 3301 movi r3, 1 + 4db8: 9140 ld.w r2, (r1, 0x0) + 4dba: 70d0 lsl r3, r4 + 4dbc: 6cc8 or r3, r2 + 4dbe: b160 st.w r3, (r1, 0x0) + 4dc0: 9842 ld.w r2, (r14, 0x8) + 4dc2: 4461 lsli r3, r4, 1 + 4dc4: 60c8 addu r3, r2 + 4dc6: 8b40 ld.h r2, (r3, 0x0) + 4dc8: 8e20 ld.h r1, (r6, 0x0) + 4dca: 7445 zexth r1, r1 + 4dcc: 748b sexth r2, r2 + 4dce: 2904 subi r1, 5 + 4dd0: 6449 cmplt r2, r1 + 4dd2: 0ecc bf 0x4b6a // 4b6a + 4dd4: 10cb lrw r6, 0x20000830 // 4e00 + 4dd6: 8b20 ld.h r1, (r3, 0x0) + 4dd8: 8e40 ld.h r2, (r6, 0x0) + 4dda: 7489 zexth r2, r2 + 4ddc: 7447 sexth r1, r1 + 4dde: 2204 addi r2, 5 + 4de0: 6449 cmplt r2, r1 + 4de2: 0ec4 bf 0x4b6a // 4b6a + 4de4: 8b60 ld.h r3, (r3, 0x0) + 4de6: 74cd zexth r3, r3 + 4de8: ae60 st.h r3, (r6, 0x0) + 4dea: 1045 lrw r2, 0x200007a0 // 4dfc + 4dec: 069f br 0x4b2a // 4b2a + 4dee: 0000 bkpt + 4df0: 200006bc .long 0x200006bc + 4df4: 200008ea .long 0x200008ea + 4df8: 2000076a .long 0x2000076a + 4dfc: 200007a0 .long 0x200007a0 + 4e00: 20000830 .long 0x20000830 + +Disassembly of section .text.TK_overflow_predict: + +00004e04 : + 4e04: 14d4 push r4-r7, r15 + 4e06: 1422 subi r14, r14, 8 + 4e08: 113c lrw r1, 0x20000068 // 4ef8 + 4e0a: 8167 ld.b r3, (r1, 0x7) + 4e0c: 3b41 cmpnei r3, 1 + 4e0e: 0823 bt 0x4e54 // 4e54 + 4e10: 115b lrw r2, 0x200008aa // 4efc + 4e12: 8260 ld.b r3, (r2, 0x0) + 4e14: 2300 addi r3, 1 + 4e16: 74cc zextb r3, r3 + 4e18: a260 st.b r3, (r2, 0x0) + 4e1a: 8260 ld.b r3, (r2, 0x0) + 4e1c: 1119 lrw r0, 0x2000017d // 4f00 + 4e1e: 8000 ld.b r0, (r0, 0x0) + 4e20: 64c0 cmphs r0, r3 + 4e22: 0819 bt 0x4e54 // 4e54 + 4e24: 3300 movi r3, 0 + 4e26: a260 st.b r3, (r2, 0x0) + 4e28: 11b7 lrw r5, 0x200007b5 // 4f04 + 4e2a: 8560 ld.b r3, (r5, 0x0) + 4e2c: 3b40 cmpnei r3, 0 + 4e2e: 0c15 bf 0x4e58 // 4e58 + 4e30: 8560 ld.b r3, (r5, 0x0) + 4e32: 3b41 cmpnei r3, 1 + 4e34: 0810 bt 0x4e54 // 4e54 + 4e36: 3300 movi r3, 0 + 4e38: a560 st.b r3, (r5, 0x0) + 4e3a: 3200 movi r2, 0 + 4e3c: 1173 lrw r3, 0x20000058 // 4f08 + 4e3e: 1114 lrw r0, 0x200008e4 // 4f0c + 4e40: 11b4 lrw r5, 0x20000934 // 4f10 + 4e42: 11d5 lrw r6, 0x2000015a // 4f14 + 4e44: 9360 ld.w r3, (r3, 0x0) + 4e46: b342 st.w r2, (r3, 0x8) + 4e48: 1174 lrw r3, 0x20000054 // 4f18 + 4e4a: 9380 ld.w r4, (r3, 0x0) + 4e4c: 3300 movi r3, 0 + 4e4e: 8040 ld.b r2, (r0, 0x0) + 4e50: 648c cmphs r3, r2 + 4e52: 0c44 bf 0x4eda // 4eda + 4e54: 1402 addi r14, r14, 8 + 4e56: 1494 pop r4-r7, r15 + 4e58: 597e addi r3, r1, 8 + 4e5a: 3600 movi r6, 0 + 4e5c: 11f0 lrw r7, 0x20000180 // 4f1c + 4e5e: b860 st.w r3, (r14, 0x0) + 4e60: 9760 ld.w r3, (r7, 0x0) + 4e62: 70d9 lsr r3, r6 + 4e64: 3201 movi r2, 1 + 4e66: 68c8 and r3, r2 + 4e68: 3b40 cmpnei r3, 0 + 4e6a: 0c34 bf 0x4ed2 // 4ed2 + 4e6c: 4681 lsli r4, r6, 1 + 4e6e: 9860 ld.w r3, (r14, 0x0) + 4e70: 60d0 addu r3, r4 + 4e72: 8b00 ld.h r0, (r3, 0x0) + 4e74: e3ffe396 bsr 0x15a0 // 15a0 <__floatunsidf> + 4e78: 6cc7 mov r3, r1 + 4e7a: 3180 movi r1, 128 + 4e7c: 6c83 mov r2, r0 + 4e7e: 4137 lsli r1, r1, 23 + 4e80: 3000 movi r0, 0 + 4e82: e3ffd999 bsr 0x1b4 // 1b4 <__GI_pow> + 4e86: 1167 lrw r3, 0x20000186 // 4f20 + 4e88: 60d0 addu r3, r4 + 4e8a: 8b60 ld.h r3, (r3, 0x0) + 4e8c: 4364 lsli r3, r3, 4 + 4e8e: 230e addi r3, 15 + 4e90: b861 st.w r3, (r14, 0x4) + 4e92: e3ffdf3f bsr 0xd10 // d10 <__fixunsdfsi> + 4e96: 9861 ld.w r3, (r14, 0x4) + 4e98: 7cc0 mult r3, r0 + 4e9a: 1143 lrw r2, 0x2000096a // 4f24 + 4e9c: 740d zexth r0, r3 + 4e9e: 6090 addu r2, r4 + 4ea0: 1162 lrw r3, 0x200009da // 4f28 + 4ea2: 60d0 addu r3, r4 + 4ea4: aa00 st.h r0, (r2, 0x0) + 4ea6: 8b60 ld.h r3, (r3, 0x0) + 4ea8: 8a00 ld.h r0, (r2, 0x0) + 4eaa: 7401 zexth r0, r0 + 4eac: 325f movi r2, 95 + 4eae: 74cd zexth r3, r3 + 4eb0: 7c08 mult r0, r2 + 4eb2: 3164 movi r1, 100 + 4eb4: b861 st.w r3, (r14, 0x4) + 4eb6: e3fff0bd bsr 0x3030 // 3030 <__divsi3> + 4eba: 9861 ld.w r3, (r14, 0x4) + 4ebc: 64c1 cmplt r0, r3 + 4ebe: 0c0a bf 0x4ed2 // 4ed2 + 4ec0: 1075 lrw r3, 0x2000015a // 4f14 + 4ec2: 610c addu r4, r3 + 4ec4: 8c60 ld.h r3, (r4, 0x0) + 4ec6: 3b06 cmphsi r3, 7 + 4ec8: 0805 bt 0x4ed2 // 4ed2 + 4eca: 2300 addi r3, 1 + 4ecc: ac60 st.h r3, (r4, 0x0) + 4ece: 3301 movi r3, 1 + 4ed0: a560 st.b r3, (r5, 0x0) + 4ed2: 2600 addi r6, 1 + 4ed4: 3e51 cmpnei r6, 17 + 4ed6: 0bc5 bt 0x4e60 // 4e60 + 4ed8: 07ac br 0x4e30 // 4e30 + 4eda: 5d4c addu r2, r5, r3 + 4edc: 8240 ld.b r2, (r2, 0x0) + 4ede: 4241 lsli r2, r2, 1 + 4ee0: 4322 lsli r1, r3, 2 + 4ee2: 6098 addu r2, r6 + 4ee4: 6050 addu r1, r4 + 4ee6: 8a40 ld.h r2, (r2, 0x0) + 4ee8: 91f2 ld.w r7, (r1, 0x48) + 4eea: 4254 lsli r2, r2, 20 + 4eec: 6c9c or r2, r7 + 4eee: 2300 addi r3, 1 + 4ef0: b152 st.w r2, (r1, 0x48) + 4ef2: 74cc zextb r3, r3 + 4ef4: 07ad br 0x4e4e // 4e4e + 4ef6: 0000 bkpt + 4ef8: 20000068 .long 0x20000068 + 4efc: 200008aa .long 0x200008aa + 4f00: 2000017d .long 0x2000017d + 4f04: 200007b5 .long 0x200007b5 + 4f08: 20000058 .long 0x20000058 + 4f0c: 200008e4 .long 0x200008e4 + 4f10: 20000934 .long 0x20000934 + 4f14: 2000015a .long 0x2000015a + 4f18: 20000054 .long 0x20000054 + 4f1c: 20000180 .long 0x20000180 + 4f20: 20000186 .long 0x20000186 + 4f24: 2000096a .long 0x2000096a + 4f28: 200009da .long 0x200009da + +Disassembly of section .text.TK_Baseline_tracking: + +00004f2c : + 4f2c: 14d4 push r4-r7, r15 + 4f2e: 1421 subi r14, r14, 4 + 4f30: 014a lrw r2, 0x20000826 // 5284 + 4f32: 8260 ld.b r3, (r2, 0x0) + 4f34: 2300 addi r3, 1 + 4f36: 74cc zextb r3, r3 + 4f38: a260 st.b r3, (r2, 0x0) + 4f3a: 8260 ld.b r3, (r2, 0x0) + 4f3c: 012c lrw r1, 0x2000017d // 5288 + 4f3e: 8120 ld.b r1, (r1, 0x0) + 4f40: 644c cmphs r3, r1 + 4f42: 0803 bt 0x4f48 // 4f48 + 4f44: e800020f br 0x5362 // 5362 + 4f48: 3300 movi r3, 0 + 4f4a: a260 st.b r3, (r2, 0x0) + 4f4c: 016f lrw r3, 0x20000728 // 528c + 4f4e: 9360 ld.w r3, (r3, 0x0) + 4f50: 3b40 cmpnei r3, 0 + 4f52: 0c03 bf 0x4f58 // 4f58 + 4f54: e8000209 br 0x5366 // 5366 + 4f58: 0171 lrw r3, 0x20000748 // 5290 + 4f5a: 0150 lrw r2, 0x200001aa // 5294 + 4f5c: 3100 movi r1, 0 + 4f5e: b860 st.w r3, (r14, 0x0) + 4f60: 6d0f mov r4, r3 + 4f62: 0111 lrw r0, 0x20000688 // 5298 + 4f64: 4161 lsli r3, r1, 1 + 4f66: 98a0 ld.w r5, (r14, 0x0) + 4f68: 614c addu r5, r3 + 4f6a: 8da0 ld.h r5, (r5, 0x0) + 4f6c: 7557 sexth r5, r5 + 4f6e: 3ddf btsti r5, 31 + 4f70: 0c1c bf 0x4fa8 // 4fa8 + 4f72: 01d4 lrw r6, 0x200009da // 529c + 4f74: 58ac addu r5, r0, r3 + 4f76: 618c addu r6, r3 + 4f78: 8da0 ld.h r5, (r5, 0x0) + 4f7a: 8ec0 ld.h r6, (r6, 0x0) + 4f7c: 7599 zexth r6, r6 + 4f7e: 7555 zexth r5, r5 + 4f80: 615a subu r5, r6 + 4f82: 8ac0 ld.h r6, (r2, 0x0) + 4f84: 6595 cmplt r5, r6 + 4f86: 0811 bt 0x4fa8 // 4fa8 + 4f88: 01b9 lrw r5, 0x200008ec // 52a0 + 4f8a: 6144 addu r5, r1 + 4f8c: 85c0 ld.b r6, (r5, 0x0) + 4f8e: 2600 addi r6, 1 + 4f90: 7598 zextb r6, r6 + 4f92: a5c0 st.b r6, (r5, 0x0) + 4f94: 01db lrw r6, 0x20000088 // 52a4 + 4f96: 85e0 ld.b r7, (r5, 0x0) + 4f98: 86ca ld.b r6, (r6, 0xa) + 4f9a: 65d8 cmphs r6, r7 + 4f9c: 0806 bt 0x4fa8 // 4fa8 + 4f9e: 01dc lrw r6, 0x20000794 // 52a8 + 4fa0: 3701 movi r7, 1 + 4fa2: a6e0 st.b r7, (r6, 0x0) + 4fa4: 3600 movi r6, 0 + 4fa6: a5c0 st.b r6, (r5, 0x0) + 4fa8: 5cac addu r5, r4, r3 + 4faa: 8da0 ld.h r5, (r5, 0x0) + 4fac: 7557 sexth r5, r5 + 4fae: 3d20 cmplti r5, 1 + 4fb0: 081d bt 0x4fea // 4fea + 4fb2: 02a4 lrw r5, 0x200009da // 529c + 4fb4: 614c addu r5, r3 + 4fb6: 58cc addu r6, r0, r3 + 4fb8: 8da0 ld.h r5, (r5, 0x0) + 4fba: 8ec0 ld.h r6, (r6, 0x0) + 4fbc: 7599 zexth r6, r6 + 4fbe: 7555 zexth r5, r5 + 4fc0: 615a subu r5, r6 + 4fc2: 8ac0 ld.h r6, (r2, 0x0) + 4fc4: 46c2 lsli r6, r6, 2 + 4fc6: 6595 cmplt r5, r6 + 4fc8: 0811 bt 0x4fea // 4fea + 4fca: 02a6 lrw r5, 0x20000854 // 52ac + 4fcc: 6144 addu r5, r1 + 4fce: 85c0 ld.b r6, (r5, 0x0) + 4fd0: 2600 addi r6, 1 + 4fd2: 7598 zextb r6, r6 + 4fd4: a5c0 st.b r6, (r5, 0x0) + 4fd6: 02cb lrw r6, 0x20000088 // 52a4 + 4fd8: 85e0 ld.b r7, (r5, 0x0) + 4fda: 86cb ld.b r6, (r6, 0xb) + 4fdc: 65d8 cmphs r6, r7 + 4fde: 0806 bt 0x4fea // 4fea + 4fe0: 02cd lrw r6, 0x20000794 // 52a8 + 4fe2: 3701 movi r7, 1 + 4fe4: a6e0 st.b r7, (r6, 0x0) + 4fe6: 3600 movi r6, 0 + 4fe8: a5c0 st.b r6, (r5, 0x0) + 4fea: 5cac addu r5, r4, r3 + 4fec: 8da0 ld.h r5, (r5, 0x0) + 4fee: 7557 sexth r5, r5 + 4ff0: 3ddf btsti r5, 31 + 4ff2: 0c10 bf 0x5012 // 5012 + 4ff4: 02f5 lrw r7, 0x200009da // 529c + 4ff6: 58cc addu r6, r0, r3 + 4ff8: 61cc addu r7, r3 + 4ffa: 8ea0 ld.h r5, (r6, 0x0) + 4ffc: 8fe0 ld.h r7, (r7, 0x0) + 4ffe: 75dd zexth r7, r7 + 5000: 7555 zexth r5, r5 + 5002: 615e subu r5, r7 + 5004: 8ae0 ld.h r7, (r2, 0x0) + 5006: 65d5 cmplt r5, r7 + 5008: 0c05 bf 0x5012 // 5012 + 500a: 8ea0 ld.h r5, (r6, 0x0) + 500c: 2d00 subi r5, 1 + 500e: 7555 zexth r5, r5 + 5010: aea0 st.h r5, (r6, 0x0) + 5012: 5cac addu r5, r4, r3 + 5014: 8da0 ld.h r5, (r5, 0x0) + 5016: 7557 sexth r5, r5 + 5018: 3ddf btsti r5, 31 + 501a: 0c11 bf 0x503c // 503c + 501c: 02ff lrw r7, 0x200009da // 529c + 501e: 58cc addu r6, r0, r3 + 5020: 61cc addu r7, r3 + 5022: 8ea0 ld.h r5, (r6, 0x0) + 5024: 8fe0 ld.h r7, (r7, 0x0) + 5026: 75dd zexth r7, r7 + 5028: 7555 zexth r5, r5 + 502a: 615e subu r5, r7 + 502c: 8ae0 ld.h r7, (r2, 0x0) + 502e: 4fe1 lsri r7, r7, 1 + 5030: 65d5 cmplt r5, r7 + 5032: 0805 bt 0x503c // 503c + 5034: 8ea0 ld.h r5, (r6, 0x0) + 5036: 2d01 subi r5, 2 + 5038: 7555 zexth r5, r5 + 503a: aea0 st.h r5, (r6, 0x0) + 503c: 5ccc addu r6, r4, r3 + 503e: 8ea0 ld.h r5, (r6, 0x0) + 5040: 7557 sexth r5, r5 + 5042: 3d20 cmplti r5, 1 + 5044: 080c bt 0x505c // 505c + 5046: 8ec0 ld.h r6, (r6, 0x0) + 5048: 8aa0 ld.h r5, (r2, 0x0) + 504a: 759b sexth r6, r6 + 504c: 4da1 lsri r5, r5, 1 + 504e: 6559 cmplt r6, r5 + 5050: 0c06 bf 0x505c // 505c + 5052: 58cc addu r6, r0, r3 + 5054: 8ea0 ld.h r5, (r6, 0x0) + 5056: 2500 addi r5, 1 + 5058: 7555 zexth r5, r5 + 505a: aea0 st.h r5, (r6, 0x0) + 505c: 5ccc addu r6, r4, r3 + 505e: 8ea0 ld.h r5, (r6, 0x0) + 5060: 7557 sexth r5, r5 + 5062: 3d20 cmplti r5, 1 + 5064: 0810 bt 0x5084 // 5084 + 5066: 8ee0 ld.h r7, (r6, 0x0) + 5068: 75df sexth r7, r7 + 506a: 8aa0 ld.h r5, (r2, 0x0) + 506c: 655d cmplt r7, r5 + 506e: 0c0b bf 0x5084 // 5084 + 5070: 8ec0 ld.h r6, (r6, 0x0) + 5072: 759b sexth r6, r6 + 5074: 4da1 lsri r5, r5, 1 + 5076: 6559 cmplt r6, r5 + 5078: 0806 bt 0x5084 // 5084 + 507a: 60c0 addu r3, r0 + 507c: 8ba0 ld.h r5, (r3, 0x0) + 507e: 2501 addi r5, 2 + 5080: 7555 zexth r5, r5 + 5082: aba0 st.h r5, (r3, 0x0) + 5084: 2100 addi r1, 1 + 5086: 3951 cmpnei r1, 17 + 5088: 2201 addi r2, 2 + 508a: 0b6d bt 0x4f64 // 4f64 + 508c: 0376 lrw r3, 0x200006bc // 52b0 + 508e: 9360 ld.w r3, (r3, 0x0) + 5090: 3b40 cmpnei r3, 0 + 5092: 0980 bt 0x5392 // 5392 + 5094: 0377 lrw r3, 0x20000888 // 52b4 + 5096: 035f lrw r2, 0x200001aa // 5294 + 5098: 3100 movi r1, 0 + 509a: b860 st.w r3, (r14, 0x0) + 509c: 6d0f mov r4, r3 + 509e: 0318 lrw r0, 0x20000832 // 52b8 + 50a0: 4161 lsli r3, r1, 1 + 50a2: 98a0 ld.w r5, (r14, 0x0) + 50a4: 614c addu r5, r3 + 50a6: 8da0 ld.h r5, (r5, 0x0) + 50a8: 7557 sexth r5, r5 + 50aa: 3ddf btsti r5, 31 + 50ac: 0c1c bf 0x50e4 // 50e4 + 50ae: 03db lrw r6, 0x20000770 // 52bc + 50b0: 58ac addu r5, r0, r3 + 50b2: 618c addu r6, r3 + 50b4: 8da0 ld.h r5, (r5, 0x0) + 50b6: 8ec0 ld.h r6, (r6, 0x0) + 50b8: 7599 zexth r6, r6 + 50ba: 7555 zexth r5, r5 + 50bc: 615a subu r5, r6 + 50be: 8ac0 ld.h r6, (r2, 0x0) + 50c0: 6595 cmplt r5, r6 + 50c2: 0811 bt 0x50e4 // 50e4 + 50c4: 13bf lrw r5, 0x200008cc // 52c0 + 50c6: 6144 addu r5, r1 + 50c8: 85c0 ld.b r6, (r5, 0x0) + 50ca: 2600 addi r6, 1 + 50cc: 7598 zextb r6, r6 + 50ce: a5c0 st.b r6, (r5, 0x0) + 50d0: 13d5 lrw r6, 0x20000088 // 52a4 + 50d2: 85e0 ld.b r7, (r5, 0x0) + 50d4: 86ca ld.b r6, (r6, 0xa) + 50d6: 65d8 cmphs r6, r7 + 50d8: 0806 bt 0x50e4 // 50e4 + 50da: 13d4 lrw r6, 0x20000794 // 52a8 + 50dc: 3701 movi r7, 1 + 50de: a6e1 st.b r7, (r6, 0x1) + 50e0: 3600 movi r6, 0 + 50e2: a5c0 st.b r6, (r5, 0x0) + 50e4: 5cac addu r5, r4, r3 + 50e6: 8da0 ld.h r5, (r5, 0x0) + 50e8: 7557 sexth r5, r5 + 50ea: 3d20 cmplti r5, 1 + 50ec: 081d bt 0x5126 // 5126 + 50ee: 13b4 lrw r5, 0x20000770 // 52bc + 50f0: 614c addu r5, r3 + 50f2: 58cc addu r6, r0, r3 + 50f4: 8da0 ld.h r5, (r5, 0x0) + 50f6: 8ec0 ld.h r6, (r6, 0x0) + 50f8: 7599 zexth r6, r6 + 50fa: 7555 zexth r5, r5 + 50fc: 615a subu r5, r6 + 50fe: 8ac0 ld.h r6, (r2, 0x0) + 5100: 46c2 lsli r6, r6, 2 + 5102: 6595 cmplt r5, r6 + 5104: 0811 bt 0x5126 // 5126 + 5106: 13b0 lrw r5, 0x200007ce // 52c4 + 5108: 6144 addu r5, r1 + 510a: 85c0 ld.b r6, (r5, 0x0) + 510c: 2600 addi r6, 1 + 510e: 7598 zextb r6, r6 + 5110: a5c0 st.b r6, (r5, 0x0) + 5112: 13c5 lrw r6, 0x20000088 // 52a4 + 5114: 85e0 ld.b r7, (r5, 0x0) + 5116: 86cb ld.b r6, (r6, 0xb) + 5118: 65d8 cmphs r6, r7 + 511a: 0806 bt 0x5126 // 5126 + 511c: 13c3 lrw r6, 0x20000794 // 52a8 + 511e: 3701 movi r7, 1 + 5120: a6e1 st.b r7, (r6, 0x1) + 5122: 3600 movi r6, 0 + 5124: a5c0 st.b r6, (r5, 0x0) + 5126: 5cac addu r5, r4, r3 + 5128: 8da0 ld.h r5, (r5, 0x0) + 512a: 7557 sexth r5, r5 + 512c: 3ddf btsti r5, 31 + 512e: 0c10 bf 0x514e // 514e + 5130: 13e3 lrw r7, 0x20000770 // 52bc + 5132: 58cc addu r6, r0, r3 + 5134: 61cc addu r7, r3 + 5136: 8ea0 ld.h r5, (r6, 0x0) + 5138: 8fe0 ld.h r7, (r7, 0x0) + 513a: 75dd zexth r7, r7 + 513c: 7555 zexth r5, r5 + 513e: 615e subu r5, r7 + 5140: 8ae0 ld.h r7, (r2, 0x0) + 5142: 65d5 cmplt r5, r7 + 5144: 0c05 bf 0x514e // 514e + 5146: 8ea0 ld.h r5, (r6, 0x0) + 5148: 2d00 subi r5, 1 + 514a: 7555 zexth r5, r5 + 514c: aea0 st.h r5, (r6, 0x0) + 514e: 5cac addu r5, r4, r3 + 5150: 8da0 ld.h r5, (r5, 0x0) + 5152: 7557 sexth r5, r5 + 5154: 3ddf btsti r5, 31 + 5156: 0c11 bf 0x5178 // 5178 + 5158: 12f9 lrw r7, 0x20000770 // 52bc + 515a: 58cc addu r6, r0, r3 + 515c: 61cc addu r7, r3 + 515e: 8ea0 ld.h r5, (r6, 0x0) + 5160: 8fe0 ld.h r7, (r7, 0x0) + 5162: 75dd zexth r7, r7 + 5164: 7555 zexth r5, r5 + 5166: 615e subu r5, r7 + 5168: 8ae0 ld.h r7, (r2, 0x0) + 516a: 4fe1 lsri r7, r7, 1 + 516c: 65d5 cmplt r5, r7 + 516e: 0805 bt 0x5178 // 5178 + 5170: 8ea0 ld.h r5, (r6, 0x0) + 5172: 2d01 subi r5, 2 + 5174: 7555 zexth r5, r5 + 5176: aea0 st.h r5, (r6, 0x0) + 5178: 5ccc addu r6, r4, r3 + 517a: 8ea0 ld.h r5, (r6, 0x0) + 517c: 7557 sexth r5, r5 + 517e: 3d20 cmplti r5, 1 + 5180: 080c bt 0x5198 // 5198 + 5182: 8ec0 ld.h r6, (r6, 0x0) + 5184: 8aa0 ld.h r5, (r2, 0x0) + 5186: 759b sexth r6, r6 + 5188: 4da1 lsri r5, r5, 1 + 518a: 6559 cmplt r6, r5 + 518c: 0c06 bf 0x5198 // 5198 + 518e: 58cc addu r6, r0, r3 + 5190: 8ea0 ld.h r5, (r6, 0x0) + 5192: 2500 addi r5, 1 + 5194: 7555 zexth r5, r5 + 5196: aea0 st.h r5, (r6, 0x0) + 5198: 5ccc addu r6, r4, r3 + 519a: 8ea0 ld.h r5, (r6, 0x0) + 519c: 7557 sexth r5, r5 + 519e: 3d20 cmplti r5, 1 + 51a0: 0810 bt 0x51c0 // 51c0 + 51a2: 8ee0 ld.h r7, (r6, 0x0) + 51a4: 75df sexth r7, r7 + 51a6: 8aa0 ld.h r5, (r2, 0x0) + 51a8: 655d cmplt r7, r5 + 51aa: 0c0b bf 0x51c0 // 51c0 + 51ac: 8ec0 ld.h r6, (r6, 0x0) + 51ae: 759b sexth r6, r6 + 51b0: 4da1 lsri r5, r5, 1 + 51b2: 6559 cmplt r6, r5 + 51b4: 0806 bt 0x51c0 // 51c0 + 51b6: 60c0 addu r3, r0 + 51b8: 8ba0 ld.h r5, (r3, 0x0) + 51ba: 2501 addi r5, 2 + 51bc: 7555 zexth r5, r5 + 51be: aba0 st.h r5, (r3, 0x0) + 51c0: 2100 addi r1, 1 + 51c2: 3951 cmpnei r1, 17 + 51c4: 2201 addi r2, 2 + 51c6: 0b6d bt 0x50a0 // 50a0 + 51c8: 1260 lrw r3, 0x200007a0 // 52c8 + 51ca: 9360 ld.w r3, (r3, 0x0) + 51cc: 3b40 cmpnei r3, 0 + 51ce: 08f8 bt 0x53be // 53be + 51d0: 117f lrw r3, 0x200009b4 // 52cc + 51d2: 1151 lrw r2, 0x200001aa // 5294 + 51d4: 3100 movi r1, 0 + 51d6: b860 st.w r3, (r14, 0x0) + 51d8: 6d0f mov r4, r3 + 51da: 111e lrw r0, 0x20000948 // 52d0 + 51dc: 4161 lsli r3, r1, 1 + 51de: 98a0 ld.w r5, (r14, 0x0) + 51e0: 614c addu r5, r3 + 51e2: 8da0 ld.h r5, (r5, 0x0) + 51e4: 7557 sexth r5, r5 + 51e6: 3ddf btsti r5, 31 + 51e8: 0c1c bf 0x5220 // 5220 + 51ea: 11db lrw r6, 0x20000866 // 52d4 + 51ec: 58ac addu r5, r0, r3 + 51ee: 618c addu r6, r3 + 51f0: 8da0 ld.h r5, (r5, 0x0) + 51f2: 8ec0 ld.h r6, (r6, 0x0) + 51f4: 7599 zexth r6, r6 + 51f6: 7555 zexth r5, r5 + 51f8: 615a subu r5, r6 + 51fa: 8ac0 ld.h r6, (r2, 0x0) + 51fc: 6595 cmplt r5, r6 + 51fe: 0811 bt 0x5220 // 5220 + 5200: 11b6 lrw r5, 0x200007bc // 52d8 + 5202: 6144 addu r5, r1 + 5204: 85c0 ld.b r6, (r5, 0x0) + 5206: 2600 addi r6, 1 + 5208: 7598 zextb r6, r6 + 520a: a5c0 st.b r6, (r5, 0x0) + 520c: 11c6 lrw r6, 0x20000088 // 52a4 + 520e: 85e0 ld.b r7, (r5, 0x0) + 5210: 86ca ld.b r6, (r6, 0xa) + 5212: 65d8 cmphs r6, r7 + 5214: 0806 bt 0x5220 // 5220 + 5216: 11c5 lrw r6, 0x20000794 // 52a8 + 5218: 3701 movi r7, 1 + 521a: a6e2 st.b r7, (r6, 0x2) + 521c: 3600 movi r6, 0 + 521e: a5c0 st.b r6, (r5, 0x0) + 5220: 5cac addu r5, r4, r3 + 5222: 8da0 ld.h r5, (r5, 0x0) + 5224: 7557 sexth r5, r5 + 5226: 3d20 cmplti r5, 1 + 5228: 081d bt 0x5262 // 5262 + 522a: 11ab lrw r5, 0x20000866 // 52d4 + 522c: 614c addu r5, r3 + 522e: 58cc addu r6, r0, r3 + 5230: 8da0 ld.h r5, (r5, 0x0) + 5232: 8ec0 ld.h r6, (r6, 0x0) + 5234: 7599 zexth r6, r6 + 5236: 7555 zexth r5, r5 + 5238: 615a subu r5, r6 + 523a: 8ac0 ld.h r6, (r2, 0x0) + 523c: 46c2 lsli r6, r6, 2 + 523e: 6595 cmplt r5, r6 + 5240: 0811 bt 0x5262 // 5262 + 5242: 11a7 lrw r5, 0x200006aa // 52dc + 5244: 6144 addu r5, r1 + 5246: 85c0 ld.b r6, (r5, 0x0) + 5248: 2600 addi r6, 1 + 524a: 7598 zextb r6, r6 + 524c: a5c0 st.b r6, (r5, 0x0) + 524e: 10d6 lrw r6, 0x20000088 // 52a4 + 5250: 85e0 ld.b r7, (r5, 0x0) + 5252: 86cb ld.b r6, (r6, 0xb) + 5254: 65d8 cmphs r6, r7 + 5256: 0806 bt 0x5262 // 5262 + 5258: 10d4 lrw r6, 0x20000794 // 52a8 + 525a: 3701 movi r7, 1 + 525c: a6e2 st.b r7, (r6, 0x2) + 525e: 3600 movi r6, 0 + 5260: a5c0 st.b r6, (r5, 0x0) + 5262: 5cac addu r5, r4, r3 + 5264: 8da0 ld.h r5, (r5, 0x0) + 5266: 7557 sexth r5, r5 + 5268: 3ddf btsti r5, 31 + 526a: 0c3f bf 0x52e8 // 52e8 + 526c: 10fa lrw r7, 0x20000866 // 52d4 + 526e: 58cc addu r6, r0, r3 + 5270: 61cc addu r7, r3 + 5272: 8ea0 ld.h r5, (r6, 0x0) + 5274: 8fe0 ld.h r7, (r7, 0x0) + 5276: 75dd zexth r7, r7 + 5278: 7555 zexth r5, r5 + 527a: 615e subu r5, r7 + 527c: 8ae0 ld.h r7, (r2, 0x0) + 527e: 65d5 cmplt r5, r7 + 5280: 0c34 bf 0x52e8 // 52e8 + 5282: 042f br 0x52e0 // 52e0 + 5284: 20000826 .long 0x20000826 + 5288: 2000017d .long 0x2000017d + 528c: 20000728 .long 0x20000728 + 5290: 20000748 .long 0x20000748 + 5294: 200001aa .long 0x200001aa + 5298: 20000688 .long 0x20000688 + 529c: 200009da .long 0x200009da + 52a0: 200008ec .long 0x200008ec + 52a4: 20000088 .long 0x20000088 + 52a8: 20000794 .long 0x20000794 + 52ac: 20000854 .long 0x20000854 + 52b0: 200006bc .long 0x200006bc + 52b4: 20000888 .long 0x20000888 + 52b8: 20000832 .long 0x20000832 + 52bc: 20000770 .long 0x20000770 + 52c0: 200008cc .long 0x200008cc + 52c4: 200007ce .long 0x200007ce + 52c8: 200007a0 .long 0x200007a0 + 52cc: 200009b4 .long 0x200009b4 + 52d0: 20000948 .long 0x20000948 + 52d4: 20000866 .long 0x20000866 + 52d8: 200007bc .long 0x200007bc + 52dc: 200006aa .long 0x200006aa + 52e0: 8ea0 ld.h r5, (r6, 0x0) + 52e2: 2d00 subi r5, 1 + 52e4: 7555 zexth r5, r5 + 52e6: aea0 st.h r5, (r6, 0x0) + 52e8: 5cac addu r5, r4, r3 + 52ea: 8da0 ld.h r5, (r5, 0x0) + 52ec: 7557 sexth r5, r5 + 52ee: 3ddf btsti r5, 31 + 52f0: 0c11 bf 0x5312 // 5312 + 52f2: 11ff lrw r7, 0x20000866 // 53ec + 52f4: 58cc addu r6, r0, r3 + 52f6: 61cc addu r7, r3 + 52f8: 8ea0 ld.h r5, (r6, 0x0) + 52fa: 8fe0 ld.h r7, (r7, 0x0) + 52fc: 75dd zexth r7, r7 + 52fe: 7555 zexth r5, r5 + 5300: 615e subu r5, r7 + 5302: 8ae0 ld.h r7, (r2, 0x0) + 5304: 4fe1 lsri r7, r7, 1 + 5306: 65d5 cmplt r5, r7 + 5308: 0805 bt 0x5312 // 5312 + 530a: 8ea0 ld.h r5, (r6, 0x0) + 530c: 2d01 subi r5, 2 + 530e: 7555 zexth r5, r5 + 5310: aea0 st.h r5, (r6, 0x0) + 5312: 5ccc addu r6, r4, r3 + 5314: 8ea0 ld.h r5, (r6, 0x0) + 5316: 7557 sexth r5, r5 + 5318: 3d20 cmplti r5, 1 + 531a: 080c bt 0x5332 // 5332 + 531c: 8ec0 ld.h r6, (r6, 0x0) + 531e: 8aa0 ld.h r5, (r2, 0x0) + 5320: 759b sexth r6, r6 + 5322: 4da1 lsri r5, r5, 1 + 5324: 6559 cmplt r6, r5 + 5326: 0c06 bf 0x5332 // 5332 + 5328: 58cc addu r6, r0, r3 + 532a: 8ea0 ld.h r5, (r6, 0x0) + 532c: 2500 addi r5, 1 + 532e: 7555 zexth r5, r5 + 5330: aea0 st.h r5, (r6, 0x0) + 5332: 5ccc addu r6, r4, r3 + 5334: 8ea0 ld.h r5, (r6, 0x0) + 5336: 7557 sexth r5, r5 + 5338: 3d20 cmplti r5, 1 + 533a: 0810 bt 0x535a // 535a + 533c: 8ee0 ld.h r7, (r6, 0x0) + 533e: 75df sexth r7, r7 + 5340: 8aa0 ld.h r5, (r2, 0x0) + 5342: 655d cmplt r7, r5 + 5344: 0c0b bf 0x535a // 535a + 5346: 8ec0 ld.h r6, (r6, 0x0) + 5348: 759b sexth r6, r6 + 534a: 4da1 lsri r5, r5, 1 + 534c: 6559 cmplt r6, r5 + 534e: 0806 bt 0x535a // 535a + 5350: 60c0 addu r3, r0 + 5352: 8ba0 ld.h r5, (r3, 0x0) + 5354: 2501 addi r5, 2 + 5356: 7555 zexth r5, r5 + 5358: aba0 st.h r5, (r3, 0x0) + 535a: 2100 addi r1, 1 + 535c: 3951 cmpnei r1, 17 + 535e: 2201 addi r2, 2 + 5360: 0b3e bt 0x51dc // 51dc + 5362: 1401 addi r14, r14, 4 + 5364: 1494 pop r4-r7, r15 + 5366: e3fff8a7 bsr 0x44b4 // 44b4 + 536a: 1162 lrw r3, 0x20000088 // 53f0 + 536c: 836c ld.b r3, (r3, 0xc) + 536e: 64c0 cmphs r0, r3 + 5370: 1141 lrw r2, 0x200006c0 // 53f4 + 5372: 0c0e bf 0x538e // 538e + 5374: 8260 ld.b r3, (r2, 0x0) + 5376: 74cc zextb r3, r3 + 5378: 3b01 cmphsi r3, 2 + 537a: 0c05 bf 0x5384 // 5384 + 537c: 107f lrw r3, 0x20000794 // 53f8 + 537e: 3201 movi r2, 1 + 5380: a340 st.b r2, (r3, 0x0) + 5382: 0685 br 0x508c // 508c + 5384: 8260 ld.b r3, (r2, 0x0) + 5386: 2300 addi r3, 1 + 5388: 74cc zextb r3, r3 + 538a: a260 st.b r3, (r2, 0x0) + 538c: 0680 br 0x508c // 508c + 538e: 3300 movi r3, 0 + 5390: 07fd br 0x538a // 538a + 5392: e3fff8a5 bsr 0x44dc // 44dc + 5396: 1077 lrw r3, 0x20000088 // 53f0 + 5398: 836c ld.b r3, (r3, 0xc) + 539a: 64c0 cmphs r0, r3 + 539c: 1056 lrw r2, 0x200006c0 // 53f4 + 539e: 0c0e bf 0x53ba // 53ba + 53a0: 8261 ld.b r3, (r2, 0x1) + 53a2: 74cc zextb r3, r3 + 53a4: 3b01 cmphsi r3, 2 + 53a6: 0c05 bf 0x53b0 // 53b0 + 53a8: 1074 lrw r3, 0x20000794 // 53f8 + 53aa: 3201 movi r2, 1 + 53ac: a341 st.b r2, (r3, 0x1) + 53ae: 070d br 0x51c8 // 51c8 + 53b0: 8261 ld.b r3, (r2, 0x1) + 53b2: 2300 addi r3, 1 + 53b4: 74cc zextb r3, r3 + 53b6: a261 st.b r3, (r2, 0x1) + 53b8: 0708 br 0x51c8 // 51c8 + 53ba: 3300 movi r3, 0 + 53bc: 07fd br 0x53b6 // 53b6 + 53be: e3fff8a3 bsr 0x4504 // 4504 + 53c2: 106c lrw r3, 0x20000088 // 53f0 + 53c4: 836c ld.b r3, (r3, 0xc) + 53c6: 64c0 cmphs r0, r3 + 53c8: 104b lrw r2, 0x200006c0 // 53f4 + 53ca: 0c0e bf 0x53e6 // 53e6 + 53cc: 8262 ld.b r3, (r2, 0x2) + 53ce: 74cc zextb r3, r3 + 53d0: 3b01 cmphsi r3, 2 + 53d2: 0c05 bf 0x53dc // 53dc + 53d4: 1069 lrw r3, 0x20000794 // 53f8 + 53d6: 3201 movi r2, 1 + 53d8: a342 st.b r2, (r3, 0x2) + 53da: 07c4 br 0x5362 // 5362 + 53dc: 8262 ld.b r3, (r2, 0x2) + 53de: 2300 addi r3, 1 + 53e0: 74cc zextb r3, r3 + 53e2: a262 st.b r3, (r2, 0x2) + 53e4: 07bf br 0x5362 // 5362 + 53e6: 3300 movi r3, 0 + 53e8: 07fd br 0x53e2 // 53e2 + 53ea: 0000 bkpt + 53ec: 20000866 .long 0x20000866 + 53f0: 20000088 .long 0x20000088 + 53f4: 200006c0 .long 0x200006c0 + 53f8: 20000794 .long 0x20000794 + +Disassembly of section .text.TK_result_prog: + +000053fc : + 53fc: 14d4 push r4-r7, r15 + 53fe: 1424 subi r14, r14, 16 + 5400: 111f lrw r0, 0x20000728 // 54fc + 5402: 1220 lrw r1, 0x200006bc // 5500 + 5404: 1240 lrw r2, 0x200007a0 // 5504 + 5406: b821 st.w r1, (r14, 0x4) + 5408: 9060 ld.w r3, (r0, 0x0) + 540a: 91a0 ld.w r5, (r1, 0x0) + 540c: 6cd4 or r3, r5 + 540e: 9280 ld.w r4, (r2, 0x0) + 5410: 6cd0 or r3, r4 + 5412: 3b40 cmpnei r3, 0 + 5414: b800 st.w r0, (r14, 0x0) + 5416: b842 st.w r2, (r14, 0x8) + 5418: 119c lrw r4, 0x20000828 // 5508 + 541a: 0c67 bf 0x54e8 // 54e8 + 541c: 111c lrw r0, 0x20000900 // 550c + 541e: 3500 movi r5, 0 + 5420: 117c lrw r3, 0x200008c8 // 5510 + 5422: b803 st.w r0, (r14, 0xc) + 5424: 3201 movi r2, 1 + 5426: 7094 lsl r2, r5 + 5428: b040 st.w r2, (r0, 0x0) + 542a: 9840 ld.w r2, (r14, 0x0) + 542c: 9240 ld.w r2, (r2, 0x0) + 542e: 9020 ld.w r1, (r0, 0x0) + 5430: 6884 and r2, r1 + 5432: b340 st.w r2, (r3, 0x0) + 5434: 9841 ld.w r2, (r14, 0x4) + 5436: 9240 ld.w r2, (r2, 0x0) + 5438: 9020 ld.w r1, (r0, 0x0) + 543a: 6848 and r1, r2 + 543c: 1156 lrw r2, 0x2000098c // 5514 + 543e: b220 st.w r1, (r2, 0x0) + 5440: 9822 ld.w r1, (r14, 0x8) + 5442: 9120 ld.w r1, (r1, 0x0) + 5444: 90c0 ld.w r6, (r0, 0x0) + 5446: 6984 and r6, r1 + 5448: 1134 lrw r1, 0x2000082c // 5518 + 544a: b1c0 st.w r6, (r1, 0x0) + 544c: 93e0 ld.w r7, (r3, 0x0) + 544e: 92c0 ld.w r6, (r2, 0x0) + 5450: 659e cmpne r7, r6 + 5452: 0807 bt 0x5460 // 5460 + 5454: 92e0 ld.w r7, (r2, 0x0) + 5456: 91c0 ld.w r6, (r1, 0x0) + 5458: 659e cmpne r7, r6 + 545a: 0803 bt 0x5460 // 5460 + 545c: 9340 ld.w r2, (r3, 0x0) + 545e: 040c br 0x5476 // 5476 + 5460: 92c0 ld.w r6, (r2, 0x0) + 5462: 3e40 cmpnei r6, 0 + 5464: 0c29 bf 0x54b6 // 54b6 + 5466: 91c0 ld.w r6, (r1, 0x0) + 5468: 3e40 cmpnei r6, 0 + 546a: 0c26 bf 0x54b6 // 54b6 + 546c: 92e0 ld.w r7, (r2, 0x0) + 546e: 91c0 ld.w r6, (r1, 0x0) + 5470: 659e cmpne r7, r6 + 5472: 0822 bt 0x54b6 // 54b6 + 5474: 9240 ld.w r2, (r2, 0x0) + 5476: 9420 ld.w r1, (r4, 0x0) + 5478: 6c84 or r2, r1 + 547a: 2500 addi r5, 1 + 547c: 3d51 cmpnei r5, 17 + 547e: b440 st.w r2, (r4, 0x0) + 5480: 0bd2 bt 0x5424 // 5424 + 5482: 9460 ld.w r3, (r4, 0x0) + 5484: 3b40 cmpnei r3, 0 + 5486: 1146 lrw r2, 0x20000930 // 551c + 5488: 0c32 bf 0x54ec // 54ec + 548a: 9420 ld.w r1, (r4, 0x0) + 548c: 9260 ld.w r3, (r2, 0x0) + 548e: 64c6 cmpne r1, r3 + 5490: 0c06 bf 0x549c // 549c + 5492: 9460 ld.w r3, (r4, 0x0) + 5494: b260 st.w r3, (r2, 0x0) + 5496: 3200 movi r2, 0 + 5498: 1162 lrw r3, 0x20000746 // 5520 + 549a: a340 st.b r2, (r3, 0x0) + 549c: e3fff7f8 bsr 0x448c // 448c + 54a0: 1161 lrw r3, 0x20000184 // 5524 + 54a2: 8360 ld.b r3, (r3, 0x0) + 54a4: 640c cmphs r3, r0 + 54a6: 0806 bt 0x54b2 // 54b2 + 54a8: 3300 movi r3, 0 + 54aa: b460 st.w r3, (r4, 0x0) + 54ac: 3201 movi r2, 1 + 54ae: 107d lrw r3, 0x20000746 // 5520 + 54b0: a340 st.b r2, (r3, 0x0) + 54b2: 1404 addi r14, r14, 16 + 54b4: 1494 pop r4-r7, r15 + 54b6: 93c0 ld.w r6, (r3, 0x0) + 54b8: 3e40 cmpnei r6, 0 + 54ba: 0c08 bf 0x54ca // 54ca + 54bc: 92c0 ld.w r6, (r2, 0x0) + 54be: 3e40 cmpnei r6, 0 + 54c0: 0c05 bf 0x54ca // 54ca + 54c2: 93c0 ld.w r6, (r3, 0x0) + 54c4: 9240 ld.w r2, (r2, 0x0) + 54c6: 649a cmpne r6, r2 + 54c8: 0fca bf 0x545c // 545c + 54ca: 9340 ld.w r2, (r3, 0x0) + 54cc: 3a40 cmpnei r2, 0 + 54ce: 0c08 bf 0x54de // 54de + 54d0: 9140 ld.w r2, (r1, 0x0) + 54d2: 3a40 cmpnei r2, 0 + 54d4: 0c05 bf 0x54de // 54de + 54d6: 9340 ld.w r2, (r3, 0x0) + 54d8: 9120 ld.w r1, (r1, 0x0) + 54da: 644a cmpne r2, r1 + 54dc: 0fc0 bf 0x545c // 545c + 54de: 9843 ld.w r2, (r14, 0xc) + 54e0: 9220 ld.w r1, (r2, 0x0) + 54e2: 9440 ld.w r2, (r4, 0x0) + 54e4: 6885 andn r2, r1 + 54e6: 07ca br 0x547a // 547a + 54e8: b460 st.w r3, (r4, 0x0) + 54ea: 07cc br 0x5482 // 5482 + 54ec: b260 st.w r3, (r2, 0x0) + 54ee: 3100 movi r1, 0 + 54f0: 104c lrw r2, 0x20000746 // 5520 + 54f2: a220 st.b r1, (r2, 0x0) + 54f4: 104d lrw r2, 0x20000820 // 5528 + 54f6: b260 st.w r3, (r2, 0x0) + 54f8: 07dd br 0x54b2 // 54b2 + 54fa: 0000 bkpt + 54fc: 20000728 .long 0x20000728 + 5500: 200006bc .long 0x200006bc + 5504: 200007a0 .long 0x200007a0 + 5508: 20000828 .long 0x20000828 + 550c: 20000900 .long 0x20000900 + 5510: 200008c8 .long 0x200008c8 + 5514: 2000098c .long 0x2000098c + 5518: 2000082c .long 0x2000082c + 551c: 20000930 .long 0x20000930 + 5520: 20000746 .long 0x20000746 + 5524: 20000184 .long 0x20000184 + 5528: 20000820 .long 0x20000820 + +Disassembly of section .text.TKEYIntHandler: + +0000552c : + 552c: 1460 nie + 552e: 1462 ipush + 5530: 14d1 push r4, r15 + 5532: 1183 lrw r4, 0x20000068 // 55bc + 5534: 8460 ld.b r3, (r4, 0x0) + 5536: 3b40 cmpnei r3, 0 + 5538: 0815 bt 0x5562 // 5562 + 553a: 3301 movi r3, 1 + 553c: a460 st.b r3, (r4, 0x0) + 553e: 1161 lrw r3, 0x20000734 // 55c0 + 5540: 8360 ld.b r3, (r3, 0x0) + 5542: 3b41 cmpnei r3, 1 + 5544: 080f bt 0x5562 // 5562 + 5546: 1140 lrw r2, 0x20000945 // 55c4 + 5548: 8260 ld.b r3, (r2, 0x0) + 554a: 2300 addi r3, 1 + 554c: 74cc zextb r3, r3 + 554e: a260 st.b r3, (r2, 0x0) + 5550: 8260 ld.b r3, (r2, 0x0) + 5552: 3b43 cmpnei r3, 3 + 5554: 0803 bt 0x555a // 555a + 5556: 3300 movi r3, 0 + 5558: a260 st.b r3, (r2, 0x0) + 555a: e3fff733 bsr 0x43c0 // 43c0 + 555e: 3301 movi r3, 1 + 5560: a461 st.b r3, (r4, 0x1) + 5562: 107a lrw r3, 0x20000058 // 55c8 + 5564: 3101 movi r1, 1 + 5566: 9360 ld.w r3, (r3, 0x0) + 5568: 934a ld.w r2, (r3, 0x28) + 556a: 6884 and r2, r1 + 556c: 3a40 cmpnei r2, 0 + 556e: 0c02 bf 0x5572 // 5572 + 5570: b32c st.w r1, (r3, 0x30) + 5572: 934a ld.w r2, (r3, 0x28) + 5574: 3102 movi r1, 2 + 5576: 6884 and r2, r1 + 5578: 3a40 cmpnei r2, 0 + 557a: 0c02 bf 0x557e // 557e + 557c: b32c st.w r1, (r3, 0x30) + 557e: 934a ld.w r2, (r3, 0x28) + 5580: 3104 movi r1, 4 + 5582: 6884 and r2, r1 + 5584: 3a40 cmpnei r2, 0 + 5586: 0c02 bf 0x558a // 558a + 5588: b32c st.w r1, (r3, 0x30) + 558a: 934a ld.w r2, (r3, 0x28) + 558c: 3108 movi r1, 8 + 558e: 6884 and r2, r1 + 5590: 3a40 cmpnei r2, 0 + 5592: 0c02 bf 0x5596 // 5596 + 5594: b32c st.w r1, (r3, 0x30) + 5596: 934a ld.w r2, (r3, 0x28) + 5598: 3110 movi r1, 16 + 559a: 6884 and r2, r1 + 559c: 3a40 cmpnei r2, 0 + 559e: 0c02 bf 0x55a2 // 55a2 + 55a0: b32c st.w r1, (r3, 0x30) + 55a2: 934a ld.w r2, (r3, 0x28) + 55a4: 3120 movi r1, 32 + 55a6: 6884 and r2, r1 + 55a8: 3a40 cmpnei r2, 0 + 55aa: 0c02 bf 0x55ae // 55ae + 55ac: b32c st.w r1, (r3, 0x30) + 55ae: d9ee2001 ld.w r15, (r14, 0x4) + 55b2: 9880 ld.w r4, (r14, 0x0) + 55b4: 1402 addi r14, r14, 8 + 55b6: 1463 ipop + 55b8: 1461 nir + 55ba: 0000 bkpt + 55bc: 20000068 .long 0x20000068 + 55c0: 20000734 .long 0x20000734 + 55c4: 20000945 .long 0x20000945 + 55c8: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +000055cc : + 55cc: 1460 nie + 55ce: 1462 ipush + 55d0: 14d3 push r4-r6, r15 + 55d2: 1269 lrw r3, 0x20000064 // 56f4 + 55d4: 3400 movi r4, 0 + 55d6: 9360 ld.w r3, (r3, 0x0) + 55d8: b386 st.w r4, (r3, 0x18) + 55da: 1268 lrw r3, 0x20000734 // 56f8 + 55dc: 8360 ld.b r3, (r3, 0x0) + 55de: 3b41 cmpnei r3, 1 + 55e0: 0840 bt 0x5660 // 5660 + 55e2: e3fff7a5 bsr 0x452c // 452c + 55e6: e3fff7d7 bsr 0x4594 // 4594 + 55ea: e3fffc0d bsr 0x4e04 // 4e04 + 55ee: e3fffc9f bsr 0x4f2c // 4f2c + 55f2: e3fff653 bsr 0x4298 // 4298 + 55f6: e3ffff03 bsr 0x53fc // 53fc + 55fa: 1261 lrw r3, 0x20000828 // 56fc + 55fc: 9360 ld.w r3, (r3, 0x0) + 55fe: 3b40 cmpnei r3, 0 + 5600: 0c12 bf 0x5624 // 5624 + 5602: 1260 lrw r3, 0x20000154 // 5700 + 5604: 9340 ld.w r2, (r3, 0x0) + 5606: 3a40 cmpnei r2, 0 + 5608: 0c0e bf 0x5624 // 5624 + 560a: 117f lrw r3, 0x20000820 // 5704 + 560c: 3064 movi r0, 100 + 560e: 9320 ld.w r1, (r3, 0x0) + 5610: 2100 addi r1, 1 + 5612: b320 st.w r1, (r3, 0x0) + 5614: 9320 ld.w r1, (r3, 0x0) + 5616: 7c80 mult r2, r0 + 5618: 6448 cmphs r2, r1 + 561a: 0805 bt 0x5624 // 5624 + 561c: 115b lrw r2, 0x200007cd // 5708 + 561e: 3101 movi r1, 1 + 5620: a220 st.b r1, (r2, 0x0) + 5622: b380 st.w r4, (r3, 0x0) + 5624: 117a lrw r3, 0x2000014c // 570c + 5626: 8340 ld.b r2, (r3, 0x0) + 5628: 3a41 cmpnei r2, 1 + 562a: 0823 bt 0x5670 // 5670 + 562c: 1139 lrw r1, 0x20000728 // 5710 + 562e: 115a lrw r2, 0x200006bc // 5714 + 5630: 9100 ld.w r0, (r1, 0x0) + 5632: 9260 ld.w r3, (r2, 0x0) + 5634: 64c2 cmpne r0, r3 + 5636: 1179 lrw r3, 0x200008c4 // 5718 + 5638: 080a bt 0x564c // 564c + 563a: 9280 ld.w r4, (r2, 0x0) + 563c: 1158 lrw r2, 0x200007a0 // 571c + 563e: 9200 ld.w r0, (r2, 0x0) + 5640: 6412 cmpne r4, r0 + 5642: 0805 bt 0x564c // 564c + 5644: 9120 ld.w r1, (r1, 0x0) + 5646: 9240 ld.w r2, (r2, 0x0) + 5648: 6486 cmpne r1, r2 + 564a: 0c09 bf 0x565c // 565c + 564c: 9340 ld.w r2, (r3, 0x0) + 564e: 2200 addi r2, 1 + 5650: b340 st.w r2, (r3, 0x0) + 5652: 1154 lrw r2, 0x20000088 // 5720 + 5654: 823c ld.b r1, (r2, 0x1c) + 5656: 9340 ld.w r2, (r3, 0x0) + 5658: 6484 cmphs r1, r2 + 565a: 0803 bt 0x5660 // 5660 + 565c: 3200 movi r2, 0 + 565e: b340 st.w r2, (r3, 0x0) + 5660: d9ee2003 ld.w r15, (r14, 0xc) + 5664: 98c2 ld.w r6, (r14, 0x8) + 5666: 98a1 ld.w r5, (r14, 0x4) + 5668: 9880 ld.w r4, (r14, 0x0) + 566a: 1404 addi r14, r14, 16 + 566c: 1463 ipop + 566e: 1461 nir + 5670: 83a0 ld.b r5, (r3, 0x0) + 5672: 7554 zextb r5, r5 + 5674: 3d40 cmpnei r5, 0 + 5676: 0bf5 bt 0x5660 // 5660 + 5678: 1166 lrw r3, 0x20000728 // 5710 + 567a: 1147 lrw r2, 0x200006bc // 5714 + 567c: 9300 ld.w r0, (r3, 0x0) + 567e: 9220 ld.w r1, (r2, 0x0) + 5680: 6442 cmpne r0, r1 + 5682: 1127 lrw r1, 0x200007a0 // 571c + 5684: 1105 lrw r0, 0x200008c4 // 5718 + 5686: 0c33 bf 0x56ec // 56ec + 5688: 92c0 ld.w r6, (r2, 0x0) + 568a: 9180 ld.w r4, (r1, 0x0) + 568c: 651a cmpne r6, r4 + 568e: 0c2f bf 0x56ec // 56ec + 5690: 93c0 ld.w r6, (r3, 0x0) + 5692: 9180 ld.w r4, (r1, 0x0) + 5694: 651a cmpne r6, r4 + 5696: 0c2b bf 0x56ec // 56ec + 5698: 9080 ld.w r4, (r0, 0x0) + 569a: 2400 addi r4, 1 + 569c: b080 st.w r4, (r0, 0x0) + 569e: 1181 lrw r4, 0x20000088 // 5720 + 56a0: 84dc ld.b r6, (r4, 0x1c) + 56a2: 9080 ld.w r4, (r0, 0x0) + 56a4: 6518 cmphs r6, r4 + 56a6: 0802 bt 0x56aa // 56aa + 56a8: b0a0 st.w r5, (r0, 0x0) + 56aa: 9380 ld.w r4, (r3, 0x0) + 56ac: 9200 ld.w r0, (r2, 0x0) + 56ae: 6412 cmpne r4, r0 + 56b0: 101d lrw r0, 0x20000904 // 5724 + 56b2: 0c04 bf 0x56ba // 56ba + 56b4: 9180 ld.w r4, (r1, 0x0) + 56b6: 3c40 cmpnei r4, 0 + 56b8: 0c0f bf 0x56d6 // 56d6 + 56ba: 93a0 ld.w r5, (r3, 0x0) + 56bc: 9180 ld.w r4, (r1, 0x0) + 56be: 6516 cmpne r5, r4 + 56c0: 0c04 bf 0x56c8 // 56c8 + 56c2: 9280 ld.w r4, (r2, 0x0) + 56c4: 3c40 cmpnei r4, 0 + 56c6: 0c08 bf 0x56d6 // 56d6 + 56c8: 9120 ld.w r1, (r1, 0x0) + 56ca: 9240 ld.w r2, (r2, 0x0) + 56cc: 6486 cmpne r1, r2 + 56ce: 0c0c bf 0x56e6 // 56e6 + 56d0: 9360 ld.w r3, (r3, 0x0) + 56d2: 3b40 cmpnei r3, 0 + 56d4: 0809 bt 0x56e6 // 56e6 + 56d6: 9060 ld.w r3, (r0, 0x0) + 56d8: 2300 addi r3, 1 + 56da: b060 st.w r3, (r0, 0x0) + 56dc: 1071 lrw r3, 0x20000088 // 5720 + 56de: 835c ld.b r2, (r3, 0x1c) + 56e0: 9060 ld.w r3, (r0, 0x0) + 56e2: 64c8 cmphs r2, r3 + 56e4: 0bbe bt 0x5660 // 5660 + 56e6: 3300 movi r3, 0 + 56e8: b060 st.w r3, (r0, 0x0) + 56ea: 07bb br 0x5660 // 5660 + 56ec: 3400 movi r4, 0 + 56ee: b080 st.w r4, (r0, 0x0) + 56f0: 07dd br 0x56aa // 56aa + 56f2: 0000 bkpt + 56f4: 20000064 .long 0x20000064 + 56f8: 20000734 .long 0x20000734 + 56fc: 20000828 .long 0x20000828 + 5700: 20000154 .long 0x20000154 + 5704: 20000820 .long 0x20000820 + 5708: 200007cd .long 0x200007cd + 570c: 2000014c .long 0x2000014c + 5710: 20000728 .long 0x20000728 + 5714: 200006bc .long 0x200006bc + 5718: 200008c4 .long 0x200008c4 + 571c: 200007a0 .long 0x200007a0 + 5720: 20000088 .long 0x20000088 + 5724: 20000904 .long 0x20000904 + +Disassembly of section .text.std_clk_calib: + +00005728 : + 5728: 14d4 push r4-r7, r15 + 572a: 142d subi r14, r14, 52 + 572c: 3201 movi r2, 1 + 572e: 03ce lrw r6, 0x2000005c // 5970 + 5730: 6cc3 mov r3, r0 + 5732: dc4e000a st.b r2, (r14, 0xa) + 5736: 9640 ld.w r2, (r6, 0x0) + 5738: 9247 ld.w r2, (r2, 0x1c) + 573a: 7488 zextb r2, r2 + 573c: dc4e0009 st.b r2, (r14, 0x9) + 5740: d84e0009 ld.b r2, (r14, 0x9) + 5744: 3a40 cmpnei r2, 0 + 5746: 0c08 bf 0x5756 // 5756 + 5748: d84e0009 ld.b r2, (r14, 0x9) + 574c: 3a42 cmpnei r2, 2 + 574e: 0c04 bf 0x5756 // 5756 + 5750: 3000 movi r0, 0 + 5752: 140d addi r14, r14, 52 + 5754: 1494 pop r4-r7, r15 + 5756: 0397 lrw r4, 0x2000000c // 5974 + 5758: 3209 movi r2, 9 + 575a: 9400 ld.w r0, (r4, 0x0) + 575c: 3b40 cmpnei r3, 0 + 575e: b041 st.w r2, (r0, 0x4) + 5760: 0857 bt 0x580e // 580e + 5762: 3307 movi r3, 7 + 5764: dc6e000b st.b r3, (r14, 0xb) + 5768: 037b lrw r3, 0x2dc6c00 // 5978 + 576a: b863 st.w r3, (r14, 0xc) + 576c: 3380 movi r3, 128 + 576e: 4362 lsli r3, r3, 2 + 5770: b867 st.w r3, (r14, 0x1c) + 5772: d86e000b ld.b r3, (r14, 0xb) + 5776: 74cc zextb r3, r3 + 5778: b062 st.w r3, (r0, 0x8) + 577a: 037e lrw r3, 0xffff // 597c + 577c: b063 st.w r3, (r0, 0xc) + 577e: 3201 movi r2, 1 + 5780: 3101 movi r1, 1 + 5782: 03bf lrw r5, 0x20000014 // 5980 + 5784: e3ffe506 bsr 0x2190 // 2190 + 5788: 95e0 ld.w r7, (r5, 0x0) + 578a: 137f lrw r3, 0xbe9c0005 // 5984 + 578c: b760 st.w r3, (r7, 0x0) + 578e: 135f lrw r2, 0x30010 // 5988 + 5790: 3300 movi r3, 0 + 5792: b762 st.w r3, (r7, 0x8) + 5794: b743 st.w r2, (r7, 0xc) + 5796: 32d8 movi r2, 216 + 5798: b745 st.w r2, (r7, 0x14) + 579a: 974f ld.w r2, (r7, 0x3c) + 579c: 3aa2 bseti r2, 2 + 579e: b74f st.w r2, (r7, 0x3c) + 57a0: 9803 ld.w r0, (r14, 0xc) + 57a2: d82e000b ld.b r1, (r14, 0xb) + 57a6: 327d movi r2, 125 + 57a8: 2100 addi r1, 1 + 57aa: 7c48 mult r1, r2 + 57ac: b861 st.w r3, (r14, 0x4) + 57ae: e3ffec53 bsr 0x3054 // 3054 <__udivsi3> + 57b2: b804 st.w r0, (r14, 0x10) + 57b4: 32fa movi r2, 250 + 57b6: 9824 ld.w r1, (r14, 0x10) + 57b8: 4242 lsli r2, r2, 2 + 57ba: 6448 cmphs r2, r1 + 57bc: 0bca bt 0x5750 // 5750 + 57be: 9844 ld.w r2, (r14, 0x10) + 57c0: 3178 movi r1, 120 + 57c2: 9804 ld.w r0, (r14, 0x10) + 57c4: b840 st.w r2, (r14, 0x0) + 57c6: e3ffec47 bsr 0x3054 // 3054 <__udivsi3> + 57ca: 9840 ld.w r2, (r14, 0x0) + 57cc: 6082 subu r2, r0 + 57ce: b845 st.w r2, (r14, 0x14) + 57d0: 9804 ld.w r0, (r14, 0x10) + 57d2: 3178 movi r1, 120 + 57d4: 9844 ld.w r2, (r14, 0x10) + 57d6: b840 st.w r2, (r14, 0x0) + 57d8: e3ffec3e bsr 0x3054 // 3054 <__udivsi3> + 57dc: 9840 ld.w r2, (r14, 0x0) + 57de: 6008 addu r0, r2 + 57e0: b806 st.w r0, (r14, 0x18) + 57e2: c0807020 psrclr ie + 57e6: 9640 ld.w r2, (r6, 0x0) + 57e8: 9254 ld.w r2, (r2, 0x50) + 57ea: b848 st.w r2, (r14, 0x20) + 57ec: 9861 ld.w r3, (r14, 0x4) + 57ee: 9440 ld.w r2, (r4, 0x0) + 57f0: b260 st.w r3, (r2, 0x0) + 57f2: b761 st.w r3, (r7, 0x4) + 57f4: d86e000a ld.b r3, (r14, 0xa) + 57f8: 3b40 cmpnei r3, 0 + 57fa: 083e bt 0x5876 // 5876 + 57fc: e3ffe47c bsr 0x20f4 // 20f4 + 5800: 9400 ld.w r0, (r4, 0x0) + 5802: e3ffe49d bsr 0x213c // 213c + 5806: c1807420 psrset ee, ie + 580a: 3001 movi r0, 1 + 580c: 07a3 br 0x5752 // 5752 + 580e: 3b41 cmpnei r3, 1 + 5810: 0806 bt 0x581c // 581c + 5812: 3303 movi r3, 3 + 5814: dc6e000b st.b r3, (r14, 0xb) + 5818: 127d lrw r3, 0x16e3600 // 598c + 581a: 07a8 br 0x576a // 576a + 581c: 3b42 cmpnei r3, 2 + 581e: 0806 bt 0x582a // 582a + 5820: 3301 movi r3, 1 + 5822: dc6e000b st.b r3, (r14, 0xb) + 5826: 127b lrw r3, 0xb71b00 // 5990 + 5828: 07a1 br 0x576a // 576a + 582a: 3b43 cmpnei r3, 3 + 582c: 0806 bt 0x5838 // 5838 + 582e: 3300 movi r3, 0 + 5830: dc6e000b st.b r3, (r14, 0xb) + 5834: 1278 lrw r3, 0x5b8d80 // 5994 + 5836: 079a br 0x576a // 576a + 5838: 3b44 cmpnei r3, 4 + 583a: 0809 bt 0x584c // 584c + 583c: 3300 movi r3, 0 + 583e: dc6e000b st.b r3, (r14, 0xb) + 5842: 1276 lrw r3, 0x54c720 // 5998 + 5844: b863 st.w r3, (r14, 0xc) + 5846: 3380 movi r3, 128 + 5848: 4369 lsli r3, r3, 9 + 584a: 0793 br 0x5770 // 5770 + 584c: 3b45 cmpnei r3, 5 + 584e: 0806 bt 0x585a // 585a + 5850: 3300 movi r3, 0 + 5852: dc6e000b st.b r3, (r14, 0xb) + 5856: 1272 lrw r3, 0x3ffed0 // 599c + 5858: 07f6 br 0x5844 // 5844 + 585a: 3b46 cmpnei r3, 6 + 585c: 0806 bt 0x5868 // 5868 + 585e: 3300 movi r3, 0 + 5860: dc6e000b st.b r3, (r14, 0xb) + 5864: 126f lrw r3, 0x1fff68 // 59a0 + 5866: 07ef br 0x5844 // 5844 + 5868: 3b47 cmpnei r3, 7 + 586a: 0b84 bt 0x5772 // 5772 + 586c: 3300 movi r3, 0 + 586e: dc6e000b st.b r3, (r14, 0xb) + 5872: 126d lrw r3, 0x1ffb8 // 59a4 + 5874: 07e8 br 0x5844 // 5844 + 5876: 9560 ld.w r3, (r5, 0x0) + 5878: 3101 movi r1, 1 + 587a: 9440 ld.w r2, (r4, 0x0) + 587c: b321 st.w r1, (r3, 0x4) + 587e: b220 st.w r1, (r2, 0x0) + 5880: 3100 movi r1, 0 + 5882: b327 st.w r1, (r3, 0x1c) + 5884: 3004 movi r0, 4 + 5886: b225 st.w r1, (r2, 0x14) + 5888: 932e ld.w r1, (r3, 0x38) + 588a: 6840 and r1, r0 + 588c: 3940 cmpnei r1, 0 + 588e: 0ffd bf 0x5888 // 5888 + 5890: 9225 ld.w r1, (r2, 0x14) + 5892: b82a st.w r1, (r14, 0x28) + 5894: 3100 movi r1, 0 + 5896: b310 st.w r0, (r3, 0x40) + 5898: b327 st.w r1, (r3, 0x1c) + 589a: 3004 movi r0, 4 + 589c: b225 st.w r1, (r2, 0x14) + 589e: 932e ld.w r1, (r3, 0x38) + 58a0: 6840 and r1, r0 + 58a2: 3940 cmpnei r1, 0 + 58a4: 0ffd bf 0x589e // 589e + 58a6: 9225 ld.w r1, (r2, 0x14) + 58a8: b82b st.w r1, (r14, 0x2c) + 58aa: 3100 movi r1, 0 + 58ac: b310 st.w r0, (r3, 0x40) + 58ae: b327 st.w r1, (r3, 0x1c) + 58b0: 3004 movi r0, 4 + 58b2: b225 st.w r1, (r2, 0x14) + 58b4: 932e ld.w r1, (r3, 0x38) + 58b6: 6840 and r1, r0 + 58b8: 3940 cmpnei r1, 0 + 58ba: 0ffd bf 0x58b4 // 58b4 + 58bc: 9225 ld.w r1, (r2, 0x14) + 58be: b82c st.w r1, (r14, 0x30) + 58c0: b310 st.w r0, (r3, 0x40) + 58c2: 982b ld.w r1, (r14, 0x2c) + 58c4: 980c ld.w r0, (r14, 0x30) + 58c6: 6040 addu r1, r0 + 58c8: b829 st.w r1, (r14, 0x24) + 58ca: 9829 ld.w r1, (r14, 0x24) + 58cc: 4921 lsri r1, r1, 1 + 58ce: b829 st.w r1, (r14, 0x24) + 58d0: 3100 movi r1, 0 + 58d2: b321 st.w r1, (r3, 0x4) + 58d4: b220 st.w r1, (r2, 0x0) + 58d6: b327 st.w r1, (r3, 0x1c) + 58d8: b225 st.w r1, (r2, 0x14) + 58da: d86e0009 ld.b r3, (r14, 0x9) + 58de: 3b42 cmpnei r3, 2 + 58e0: 9849 ld.w r2, (r14, 0x24) + 58e2: 082c bt 0x593a // 593a + 58e4: 1171 lrw r3, 0x7ff // 59a8 + 58e6: 648c cmphs r3, r2 + 58e8: 0c03 bf 0x58ee // 58ee + 58ea: 3300 movi r3, 0 + 58ec: 040f br 0x590a // 590a + 58ee: 9849 ld.w r2, (r14, 0x24) + 58f0: 9866 ld.w r3, (r14, 0x18) + 58f2: 648c cmphs r3, r2 + 58f4: 080e bt 0x5910 // 5910 + 58f6: 9868 ld.w r3, (r14, 0x20) + 58f8: 9847 ld.w r2, (r14, 0x1c) + 58fa: 60ca subu r3, r2 + 58fc: b868 st.w r3, (r14, 0x20) + 58fe: 32fe movi r2, 254 + 5900: 9868 ld.w r3, (r14, 0x20) + 5902: 4248 lsli r2, r2, 8 + 5904: 68c8 and r3, r2 + 5906: 3b40 cmpnei r3, 0 + 5908: 0812 bt 0x592c // 592c + 590a: dc6e000a st.b r3, (r14, 0xa) + 590e: 0721 br 0x5750 // 5750 + 5910: 9849 ld.w r2, (r14, 0x24) + 5912: 9865 ld.w r3, (r14, 0x14) + 5914: 64c8 cmphs r2, r3 + 5916: 0829 bt 0x5968 // 5968 + 5918: 9868 ld.w r3, (r14, 0x20) + 591a: 9847 ld.w r2, (r14, 0x1c) + 591c: 60c8 addu r3, r2 + 591e: b868 st.w r3, (r14, 0x20) + 5920: 33fe movi r3, 254 + 5922: 9848 ld.w r2, (r14, 0x20) + 5924: 4368 lsli r3, r3, 8 + 5926: 688c and r2, r3 + 5928: 64ca cmpne r2, r3 + 592a: 0fe0 bf 0x58ea // 58ea + 592c: 9660 ld.w r3, (r6, 0x0) + 592e: 9848 ld.w r2, (r14, 0x20) + 5930: b354 st.w r2, (r3, 0x50) + 5932: 3001 movi r0, 1 + 5934: e3ffe5a4 bsr 0x247c // 247c + 5938: 075e br 0x57f4 // 57f4 + 593a: 9866 ld.w r3, (r14, 0x18) + 593c: 648c cmphs r3, r2 + 593e: 0809 bt 0x5950 // 5950 + 5940: 9868 ld.w r3, (r14, 0x20) + 5942: 9847 ld.w r2, (r14, 0x1c) + 5944: 60ca subu r3, r2 + 5946: b868 st.w r3, (r14, 0x20) + 5948: 32ff movi r2, 255 + 594a: 9868 ld.w r3, (r14, 0x20) + 594c: 4250 lsli r2, r2, 16 + 594e: 07db br 0x5904 // 5904 + 5950: 9849 ld.w r2, (r14, 0x24) + 5952: 9865 ld.w r3, (r14, 0x14) + 5954: 64c8 cmphs r2, r3 + 5956: 0809 bt 0x5968 // 5968 + 5958: 9868 ld.w r3, (r14, 0x20) + 595a: 9847 ld.w r2, (r14, 0x1c) + 595c: 60c8 addu r3, r2 + 595e: b868 st.w r3, (r14, 0x20) + 5960: 33ff movi r3, 255 + 5962: 9848 ld.w r2, (r14, 0x20) + 5964: 4370 lsli r3, r3, 16 + 5966: 07e0 br 0x5926 // 5926 + 5968: 3300 movi r3, 0 + 596a: dc6e000a st.b r3, (r14, 0xa) + 596e: 07e2 br 0x5932 // 5932 + 5970: 2000005c .long 0x2000005c + 5974: 2000000c .long 0x2000000c + 5978: 02dc6c00 .long 0x02dc6c00 + 597c: 0000ffff .long 0x0000ffff + 5980: 20000014 .long 0x20000014 + 5984: be9c0005 .long 0xbe9c0005 + 5988: 00030010 .long 0x00030010 + 598c: 016e3600 .long 0x016e3600 + 5990: 00b71b00 .long 0x00b71b00 + 5994: 005b8d80 .long 0x005b8d80 + 5998: 0054c720 .long 0x0054c720 + 599c: 003ffed0 .long 0x003ffed0 + 59a0: 001fff68 .long 0x001fff68 + 59a4: 0001ffb8 .long 0x0001ffb8 + 59a8: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V06_20250815.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V06_20250815.map new file mode 100644 index 0000000..f31baf5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_V06_20250815.map @@ -0,0 +1,2311 @@ +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: 362392 (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: 165 + Section header string table index: 162 + +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.EXI3_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_DeInit PROGBITS 00001ddc 002ddc 000064 00 AX 0 0 4 + [23] .text.GPIO_Init PROGBITS 00001e40 002e40 0000e0 00 AX 0 0 4 + [24] .text.GPIO_PullHi PROGBITS 00001f20 002f20 000014 00 AX 0 0 2 + [25] .text.GPIO_DriveS PROGBITS 00001f34 002f34 00000e 00 AX 0 0 2 + [26] .text.GPIO_IntGro PROGBITS 00001f44 002f44 00010c 00 AX 0 0 4 + [27] .text.GPIOB0_EXI_ PROGBITS 00002050 003050 00006c 00 AX 0 0 4 + [28] .text.GPIO_Write_ PROGBITS 000020bc 0030bc 000008 00 AX 0 0 2 + [29] .text.GPIO_Write_ PROGBITS 000020c4 0030c4 000008 00 AX 0 0 2 + [30] .text.GPIO_Revers PROGBITS 000020cc 0030cc 000016 00 AX 0 0 2 + [31] .text.GPIO_Read_S PROGBITS 000020e2 0030e2 000010 00 AX 0 0 2 + [32] .text.LPT_Soft_Re PROGBITS 000020f4 0030f4 000014 00 AX 0 0 4 + [33] .text.WWDT_CNT_Lo PROGBITS 00002108 003108 000010 00 AX 0 0 4 + [34] .text.BT_DeInit PROGBITS 00002118 003118 00001c 00 AX 0 0 2 + [35] .text.BT_Start PROGBITS 00002134 003134 000008 00 AX 0 0 2 + [36] .text.BT_Soft_Res PROGBITS 0000213c 00313c 00000a 00 AX 0 0 2 + [37] .text.BT_Configur PROGBITS 00002146 003146 000018 00 AX 0 0 2 + [38] .text.BT_ControlS PROGBITS 0000215e 00315e 00002c 00 AX 0 0 2 + [39] .text.BT_Period_C PROGBITS 0000218a 00318a 000006 00 AX 0 0 2 + [40] .text.BT_ConfigIn PROGBITS 00002190 003190 000012 00 AX 0 0 2 + [41] .text.BT1_INT_ENA PROGBITS 000021a4 0031a4 000010 00 AX 0 0 4 + [42] .text.UART0_DeIni PROGBITS 000021b4 0031b4 000018 00 AX 0 0 4 + [43] .text.UART1_DeIni PROGBITS 000021cc 0031cc 000018 00 AX 0 0 4 + [44] .text.UART2_DeIni PROGBITS 000021e4 0031e4 000018 00 AX 0 0 4 + [45] .text.UART0_Int_E PROGBITS 000021fc 0031fc 00001c 00 AX 0 0 4 + [46] .text.UART2_Int_E PROGBITS 00002218 003218 00001c 00 AX 0 0 4 + [47] .text.UART_IO_Ini PROGBITS 00002234 003234 0000ec 00 AX 0 0 4 + [48] .text.UARTInitRxT PROGBITS 00002320 003320 000010 00 AX 0 0 4 + [49] .text.UARTTransmi PROGBITS 00002330 003330 00001e 00 AX 0 0 2 + [50] .text.EPT_Stop PROGBITS 00002350 003350 000028 00 AX 0 0 4 + [51] .text.Page_Progra PROGBITS 00002378 003378 0000a0 00 AX 0 0 4 + [52] .text.ReadDataArr PROGBITS 00002418 003418 00002a 00 AX 0 0 2 + [53] .text.startup.mai PROGBITS 00002444 003444 000038 00 AX 0 0 4 + [54] .text.delay_nms PROGBITS 0000247c 00347c 00002c 00 AX 0 0 2 + [55] .text.delay_nus PROGBITS 000024a8 0034a8 000022 00 AX 0 0 2 + [56] .text.BT_CONFIG PROGBITS 000024cc 0034cc 000060 00 AX 0 0 4 + [57] .text.SYSCON_CONF PROGBITS 0000252c 00352c 000062 00 AX 0 0 2 + [58] .text.APT32F102_i PROGBITS 00002590 003590 000084 00 AX 0 0 4 + [59] .text.SYSCONIntHa PROGBITS 00002614 003614 0000f0 00 AX 0 0 4 + [60] .text.IFCIntHandl PROGBITS 00002704 003704 000068 00 AX 0 0 4 + [61] .text.ADCIntHandl PROGBITS 0000276c 00376c 000068 00 AX 0 0 4 + [62] .text.EPT0IntHand PROGBITS 000027d4 0037d4 0001ac 00 AX 0 0 4 + [63] .text.WWDTHandler PROGBITS 00002980 003980 000034 00 AX 0 0 4 + [64] .text.GPT0IntHand PROGBITS 000029b4 0039b4 000080 00 AX 0 0 4 + [65] .text.RTCIntHandl PROGBITS 00002a34 003a34 000070 00 AX 0 0 4 + [66] .text.UART0IntHan PROGBITS 00002aa4 003aa4 000060 00 AX 0 0 4 + [67] .text.UART1IntHan PROGBITS 00002b04 003b04 000094 00 AX 0 0 4 + [68] .text.UART2IntHan PROGBITS 00002b98 003b98 000094 00 AX 0 0 4 + [69] .text.SPI0IntHand PROGBITS 00002c2c 003c2c 0000e8 00 AX 0 0 4 + [70] .text.SIO0IntHand PROGBITS 00002d14 003d14 000054 00 AX 0 0 4 + [71] .text.EXI0IntHand PROGBITS 00002d68 003d68 000030 00 AX 0 0 4 + [72] .text.EXI1IntHand PROGBITS 00002d98 003d98 000030 00 AX 0 0 4 + [73] .text.EXI2to3IntH PROGBITS 00002dc8 003dc8 000048 00 AX 0 0 4 + [74] .text.EXI4to9IntH PROGBITS 00002e10 003e10 00006c 00 AX 0 0 4 + [75] .text.EXI10to15In PROGBITS 00002e7c 003e7c 000060 00 AX 0 0 4 + [76] .text.LPTIntHandl PROGBITS 00002edc 003edc 000034 00 AX 0 0 4 + [77] .text.BT0IntHandl PROGBITS 00002f10 003f10 00004c 00 AX 0 0 4 + [78] .text.BT1IntHandl PROGBITS 00002f5c 003f5c 000070 00 AX 0 0 4 + [79] .text.PriviledgeV PROGBITS 00002fcc 003fcc 000002 00 AX 0 0 2 + [80] .text.PendTrapHan PROGBITS 00002fce 003fce 000008 00 AX 0 0 2 + [81] .text.Trap3Handle PROGBITS 00002fd6 003fd6 000008 00 AX 0 0 2 + [82] .text.Trap2Handle PROGBITS 00002fde 003fde 000008 00 AX 0 0 2 + [83] .text.Trap1Handle PROGBITS 00002fe6 003fe6 000008 00 AX 0 0 2 + [84] .text.Trap0Handle PROGBITS 00002fee 003fee 000008 00 AX 0 0 2 + [85] .text.UnrecExecpH PROGBITS 00002ff6 003ff6 000008 00 AX 0 0 2 + [86] .text.BreakPointH PROGBITS 00002ffe 003ffe 000008 00 AX 0 0 2 + [87] .text.AccessErrHa PROGBITS 00003006 004006 000008 00 AX 0 0 2 + [88] .text.IllegalInst PROGBITS 0000300e 00400e 000008 00 AX 0 0 2 + [89] .text.MisalignedH PROGBITS 00003016 004016 000008 00 AX 0 0 2 + [90] .text.CNTAIntHand PROGBITS 0000301e 00401e 000008 00 AX 0 0 2 + [91] .text.I2CIntHandl PROGBITS 00003026 004026 000008 00 AX 0 0 2 + [92] .text.__divsi3 PROGBITS 00003030 004030 000024 00 AX 0 0 4 + [93] .text.__udivsi3 PROGBITS 00003054 004054 000024 00 AX 0 0 4 + [94] .text.__umodsi3 PROGBITS 00003078 004078 000024 00 AX 0 0 4 + [95] .text.CK_CPU_EnAl PROGBITS 0000309c 00409c 000006 00 AX 0 0 2 + [96] .text.CK_CPU_DisA PROGBITS 000030a2 0040a2 000006 00 AX 0 0 2 + [97] .text.UARTx_Init PROGBITS 000030a8 0040a8 000158 00 AX 0 0 4 + [98] .text.UART0_RecvI PROGBITS 00003200 004200 000038 00 AX 0 0 4 + [99] .text.UART1_RecvI PROGBITS 00003238 004238 000038 00 AX 0 0 4 + [100] .text.UART2_RecvI PROGBITS 00003270 004270 000044 00 AX 0 0 4 + [101] .text.UART2_TASK PROGBITS 000032b4 0042b4 000084 00 AX 0 0 4 + [102] .text.BUS485_Send PROGBITS 00003338 004338 0000c4 00 AX 0 0 4 + [103] .text.MultSend_Ta PROGBITS 000033fc 0043fc 000074 00 AX 0 0 4 + [104] .text.Set_GroupSe PROGBITS 00003470 004470 000064 00 AX 0 0 4 + [105] .text.Clear_SendF PROGBITS 000034d4 0044d4 000010 00 AX 0 0 4 + [106] .text.BUS485_Jump PROGBITS 000034e4 0044e4 00000c 00 AX 0 0 4 + [107] .text.BUS485Send_ PROGBITS 000034f0 0044f0 000034 00 AX 0 0 4 + [108] .text.BusIdle_Tas PROGBITS 00003524 004524 000040 00 AX 0 0 4 + [109] .text.BusBusy_Tas PROGBITS 00003564 004564 00005c 00 AX 0 0 4 + [110] .text.Dbg_Println PROGBITS 000035c0 0045c0 00000c 00 AX 0 0 2 + [111] .text.EEPROM_Chec PROGBITS 000035cc 0045cc 000016 00 AX 0 0 2 + [112] .text.EEPROM_Read PROGBITS 000035e4 0045e4 000074 00 AX 0 0 4 + [113] .text.EEPROM_Writ PROGBITS 00003658 004658 000044 00 AX 0 0 4 + [114] .text.Boot_Comm_C PROGBITS 0000369c 00469c 000024 00 AX 0 0 4 + [115] .text.Boot_Comm_F PROGBITS 000036c0 0046c0 00005c 00 AX 0 0 4 + [116] .text.Boot_Time_R PROGBITS 0000371c 00471c 000014 00 AX 0 0 4 + [117] .text.Boot_Comm_U PROGBITS 00003730 004730 000188 00 AX 0 0 4 + [118] .text.Debug_Init PROGBITS 000038b8 0048b8 000020 00 AX 0 0 4 + [119] .text.DisPlay_Tas PROGBITS 000038d8 0048d8 0001c4 00 AX 0 0 4 + [120] .text.TemCtrl_Ini PROGBITS 00003a9c 004a9c 00015c 00 AX 0 0 4 + [121] .text.Tem_Valve_C PROGBITS 00003bf8 004bf8 000060 00 AX 0 0 4 + [122] .text.TemCtrl_Pro PROGBITS 00003c58 004c58 000048 00 AX 0 0 4 + [123] .text.NetCRC16_Ch PROGBITS 00003ca0 004ca0 00004c 00 AX 0 0 4 + [124] .text.GetCRC16 PROGBITS 00003cec 004cec 00003c 00 AX 0 0 4 + [125] .text.SOR_CRC PROGBITS 00003d28 004d28 000016 00 AX 0 0 2 + [126] .text.Rs485_ASend PROGBITS 00003d40 004d40 000108 00 AX 0 0 4 + [127] .text.Rs485AskCyc PROGBITS 00003e48 004e48 000104 00 AX 0 0 4 + [128] .text.Rs485AskCtr PROGBITS 00003f4c 004f4c 00005c 00 AX 0 0 4 + [129] .text.Rs485AskRea PROGBITS 00003fa8 004fa8 000068 00 AX 0 0 4 + [130] .text.Rs485_DevPo PROGBITS 00004010 005010 000018 00 AX 0 0 2 + [131] .text.Temp_Rec_An PROGBITS 00004028 005028 0001b0 00 AX 0 0 4 + [132] .text.Tem_Rs485_R PROGBITS 000041d8 0051d8 0000c0 00 AX 0 0 4 + [133] .text.TK_Single_L PROGBITS 00004298 005298 000128 00 AX 0 0 4 + [134] .text.TK_Sampling PROGBITS 000043c0 0053c0 0000cc 00 AX 0 0 4 + [135] .text.get_key_num PROGBITS 0000448c 00548c 000028 00 AX 0 0 4 + [136] .text.get_key_num PROGBITS 000044b4 0054b4 000028 00 AX 0 0 4 + [137] .text.get_key_num PROGBITS 000044dc 0054dc 000028 00 AX 0 0 4 + [138] .text.get_key_num PROGBITS 00004504 005504 000028 00 AX 0 0 4 + [139] .text.TK_Scan_Sta PROGBITS 0000452c 00552c 000068 00 AX 0 0 4 + [140] .text.TK_Keymap_p PROGBITS 00004594 005594 000870 00 AX 0 0 4 + [141] .text.TK_overflow PROGBITS 00004e04 005e04 000128 00 AX 0 0 4 + [142] .text.TK_Baseline PROGBITS 00004f2c 005f2c 0004d0 00 AX 0 0 4 + [143] .text.TK_result_p PROGBITS 000053fc 0063fc 000130 00 AX 0 0 4 + [144] .text.TKEYIntHand PROGBITS 0000552c 00652c 0000a0 00 AX 0 0 4 + [145] .text.CORETHandle PROGBITS 000055cc 0065cc 00015c 00 AX 0 0 4 + [146] .text.std_clk_cal PROGBITS 00005728 006728 000284 00 AX 0 0 4 + [147] .RomCode PROGBITS 000059ac 0070a8 000000 00 W 0 0 1 + [148] .rodata PROGBITS 000059ac 0069ac 0001c0 00 A 0 0 4 + [149] .data PROGBITS 20000000 007000 0000a8 00 WA 0 0 4 + [150] .bss NOBITS 200000a8 0070a8 000958 00 WA 0 0 4 + [151] .csky.attributes CSKY_ATTRIBUTES 00000000 0070a8 000022 00 0 0 1 + [152] .comment PROGBITS 00000000 0070ca 000042 01 MS 0 0 1 + [153] .csky_stack_size PROGBITS 00000000 007110 0008bc 00 0 0 16 + [154] .debug_line PROGBITS 00000000 0079cc 0043c5 00 0 0 1 + [155] .debug_info PROGBITS 00000000 00bd91 0346b6 00 0 0 1 + [156] .debug_abbrev PROGBITS 00000000 040447 002f56 00 0 0 1 + [157] .debug_aranges PROGBITS 00000000 0433a0 000d00 00 0 0 8 + [158] .debug_ranges PROGBITS 00000000 0440a0 000c10 00 0 0 1 + [159] .debug_str PROGBITS 00000000 044cb0 008d44 01 MS 0 0 1 + [160] .debug_frame PROGBITS 00000000 04d9f4 001eec 00 0 0 4 + [161] .debug_loc PROGBITS 00000000 04f8e0 00294f 00 0 0 1 + [162] .shstrtab STRTAB 00000000 057a52 000d46 00 0 0 1 + [163] .symtab SYMTAB 00000000 052230 0041d0 10 164 700 4 + [164] .strtab STRTAB 00000000 056400 001652 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 0x05b6c 0x05b6c R E 0x1000 + LOAD 0x007000 0x20000000 0x00005b6c 0x000a8 0x00a00 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.EXI3_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.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.UART0_RecvINT_Processing .text.UART1_RecvINT_Processing .text.UART2_RecvINT_Processing .text.UART2_TASK .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485_Jump_Boot .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.Boot_Comm_CheckSum .text.Boot_Comm_FillReplyPack .text.Boot_Time_Refresh .text.Boot_Comm_UpgradeProcess .text.Debug_Init .text.DisPlay_Task .text.TemCtrl_Init .text.Tem_Valve_Ctrl .text.TemCtrl_Pro .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.TKEYIntHandler .text.CORETHandler .text.std_clk_calib .rodata + 01 .data .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.EXI3_Int_Enable) for EXI3_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/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.UART2_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_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_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/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_uart.o(.text.UARTx_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.GPIOB0_EXI_Init) for GPIOB0_EXI_Init + 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.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_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + 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_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.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/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/main.o(.text.startup.main) refers to Obj/SYSTEM_uart.o(.text.UART2_TASK) for UART2_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_Bootload_fun.o(.text.Boot_Comm_FillReplyPack) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) 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/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.EXI4to9IntHandler) 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_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + 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.UART2_TASK) refers to Obj/SYSTEM_Bootload_fun.o(.text.Boot_Comm_UpgradeProcess) for Boot_Comm_UpgradeProcess + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_display_logic.o(.text.Debug_Init) for Debug_Init + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_display_logic.o(.text.DisPlay_Task) for DisPlay_Task + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/SYSTEM_display_logic.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_eeprom.o(.text.EEPROM_ReadParaInfo) refers to memset_fast.o(.text) for memset + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) 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), (2901 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_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_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_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.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 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), (3095 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), (3412 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), (3157 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), (8020 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), (4125 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), (3528 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.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), (3644 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), (4844 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), (4952 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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .text.tk_parameter_init(Obj/FWlib_apt32f102_tkey_parameter.o), (304 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), (2850 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.GPIO_CONFIG(Obj/mcu_initial.o), (76 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (64 bytes). + Removing .text.UART1_TASK(Obj/SYSTEM_uart.o), (108 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 bytes). + Removing .text.Controller485_SendData(Obj/SYSTEM_uart.o), (168 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_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 bytes). + Removing .text.EEPROM_Validate_ParaInfo(Obj/SYSTEM_eeprom.o), (140 bytes). + Removing .text.EEPROM_Default_ParaInfo(Obj/SYSTEM_eeprom.o), (32 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), (56 bytes). + Removing .text.EEPROM_Validate_MCUDevInfo(Obj/SYSTEM_eeprom.o), (88 bytes). + Removing .text.EEPROM_Init(Obj/SYSTEM_eeprom.o), (128 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_eeprom.o), (154 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_Function_Init(Obj/SYSTEM_Bootload_fun.o), (96 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), (264 bytes). + Removing .text(Obj/SYSTEM_display_logic.o), (0 bytes). + Removing .data(Obj/SYSTEM_display_logic.o), (0 bytes). + Removing .text.Dev_SaveData(Obj/SYSTEM_display_logic.o), (100 bytes). + Removing .rodata.str1.1(Obj/SYSTEM_display_logic.o), (40 bytes). + Removing .text(Obj/SYSTEM_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/SYSTEM_tempctrl_unit.o), (0 bytes). + Removing .text(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .bss(Obj/SYSTEM_uart_protocol.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), (115 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_f_1_18.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_f_1_18.o), (16 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_f_1_18.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.tk_io_enable(FWlib_apt32f102_tkey_f_1_18.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_f_1_18.o), (336 bytes). + Removing .text.TK_Baseline_prog2(FWlib_apt32f102_tkey_f_1_18.o), (328 bytes). + Removing .text.tk_poweron_data_fineturn(FWlib_apt32f102_tkey_f_1_18.o), (292 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_f_1_18.o), (56 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_f_1_18.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_f_1_18.o), (28 bytes). + Removing .text.tk_freq_para_init(FWlib_apt32f102_tkey_f_1_18.o), (172 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_f_1_18.o), (272 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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). + +641 unused seciton(s) (total 186681 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_f_1_18.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_display_logic.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart_protocol.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.EXI3_Int_Enable + $t 0x00001d60 0 .text.EXI3_Int_Enable + $d 0x00001d6c 0 .text.EXI3_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_DeInit + $t 0x00001ddc 0 .text.GPIO_DeInit + $d 0x00001e30 0 .text.GPIO_DeInit + $d 0x00001e40 0 .text.GPIO_Init + $t 0x00001e40 0 .text.GPIO_Init + $d 0x00001e52 0 .text.GPIO_Init + $t 0x00001e5a 0 .text.GPIO_Init + $d 0x00001eb6 0 .text.GPIO_Init + $t 0x00001ebe 0 .text.GPIO_Init + $d 0x00001f0c 0 .text.GPIO_Init + $d 0x00001f20 0 .text.GPIO_PullHigh_Init + $t 0x00001f20 0 .text.GPIO_PullHigh_Init + $d 0x00001f34 0 .text.GPIO_DriveStrength_EN + $t 0x00001f34 0 .text.GPIO_DriveStrength_EN + $d 0x00001f44 0 .text.GPIO_IntGroup_Set + $t 0x00001f44 0 .text.GPIO_IntGroup_Set + $d 0x00002038 0 .text.GPIO_IntGroup_Set + $d 0x00002050 0 .text.GPIOB0_EXI_Init + $t 0x00002050 0 .text.GPIOB0_EXI_Init + $d 0x0000205c 0 .text.GPIOB0_EXI_Init + $t 0x00002062 0 .text.GPIOB0_EXI_Init + $d 0x000020b8 0 .text.GPIOB0_EXI_Init + $d 0x000020bc 0 .text.GPIO_Write_High + $t 0x000020bc 0 .text.GPIO_Write_High + $d 0x000020c4 0 .text.GPIO_Write_Low + $t 0x000020c4 0 .text.GPIO_Write_Low + $d 0x000020cc 0 .text.GPIO_Reverse + $t 0x000020cc 0 .text.GPIO_Reverse + $d 0x000020e2 0 .text.GPIO_Read_Status + $t 0x000020e2 0 .text.GPIO_Read_Status + $d 0x000020f4 0 .text.LPT_Soft_Reset + $t 0x000020f4 0 .text.LPT_Soft_Reset + $d 0x00002104 0 .text.LPT_Soft_Reset + $d 0x00002108 0 .text.WWDT_CNT_Load + $t 0x00002108 0 .text.WWDT_CNT_Load + $d 0x00002114 0 .text.WWDT_CNT_Load + $d 0x00002118 0 .text.BT_DeInit + $t 0x00002118 0 .text.BT_DeInit + $d 0x00002134 0 .text.BT_Start + $t 0x00002134 0 .text.BT_Start + $d 0x0000213c 0 .text.BT_Soft_Reset + $t 0x0000213c 0 .text.BT_Soft_Reset + $d 0x00002146 0 .text.BT_Configure + $t 0x00002146 0 .text.BT_Configure + $d 0x0000215e 0 .text.BT_ControlSet_Configure + $t 0x0000215e 0 .text.BT_ControlSet_Configure + $d 0x0000218a 0 .text.BT_Period_CMP_Write + $t 0x0000218a 0 .text.BT_Period_CMP_Write + $d 0x00002190 0 .text.BT_ConfigInterrupt_CMD + $t 0x00002190 0 .text.BT_ConfigInterrupt_CMD + $d 0x000021a4 0 .text.BT1_INT_ENABLE + $t 0x000021a4 0 .text.BT1_INT_ENABLE + $d 0x000021b0 0 .text.BT1_INT_ENABLE + $d 0x000021b4 0 .text.UART0_DeInit + $t 0x000021b4 0 .text.UART0_DeInit + $d 0x000021c8 0 .text.UART0_DeInit + $d 0x000021cc 0 .text.UART1_DeInit + $t 0x000021cc 0 .text.UART1_DeInit + $d 0x000021e0 0 .text.UART1_DeInit + $d 0x000021e4 0 .text.UART2_DeInit + $t 0x000021e4 0 .text.UART2_DeInit + $d 0x000021f8 0 .text.UART2_DeInit + $d 0x000021fc 0 .text.UART0_Int_Enable + $t 0x000021fc 0 .text.UART0_Int_Enable + $d 0x00002210 0 .text.UART0_Int_Enable + $d 0x00002218 0 .text.UART2_Int_Enable + $t 0x00002218 0 .text.UART2_Int_Enable + $d 0x0000222c 0 .text.UART2_Int_Enable + $d 0x00002234 0 .text.UART_IO_Init + $t 0x00002234 0 .text.UART_IO_Init + $d 0x00002318 0 .text.UART_IO_Init + $d 0x00002320 0 .text.UARTInitRxTxIntEn + $t 0x00002320 0 .text.UARTInitRxTxIntEn + $d 0x0000232c 0 .text.UARTInitRxTxIntEn + $d 0x00002330 0 .text.UARTTransmit + $t 0x00002330 0 .text.UARTTransmit + $d 0x00002350 0 .text.EPT_Stop + $t 0x00002350 0 .text.EPT_Stop + $d 0x00002370 0 .text.EPT_Stop + $d 0x00002378 0 .text.Page_ProgramData + $t 0x00002378 0 .text.Page_ProgramData + $d 0x00002410 0 .text.Page_ProgramData + $d 0x00002418 0 .text.ReadDataArry_U8 + $t 0x00002418 0 .text.ReadDataArry_U8 + $d 0x00002444 0 .text.startup.main + $t 0x00002444 0 .text.startup.main + $d 0x00002474 0 .text.startup.main + $d 0x0000247c 0 .text.delay_nms + $t 0x0000247c 0 .text.delay_nms + $d 0x000024a8 0 .text.delay_nus + $t 0x000024a8 0 .text.delay_nus + $d 0x000024cc 0 .text.BT_CONFIG + $t 0x000024cc 0 .text.BT_CONFIG + $d 0x00002524 0 .text.BT_CONFIG + $d 0x0000252c 0 .text.SYSCON_CONFIG + $t 0x0000252c 0 .text.SYSCON_CONFIG + $d 0x00002590 0 .text.APT32F102_init + $t 0x00002590 0 .text.APT32F102_init + $d 0x00002600 0 .text.APT32F102_init + $d 0x00002614 0 .text.SYSCONIntHandler + $t 0x00002614 0 .text.SYSCONIntHandler + $d 0x00002700 0 .text.SYSCONIntHandler + $d 0x00002704 0 .text.IFCIntHandler + $t 0x00002704 0 .text.IFCIntHandler + $d 0x00002768 0 .text.IFCIntHandler + $d 0x0000276c 0 .text.ADCIntHandler + $t 0x0000276c 0 .text.ADCIntHandler + $d 0x000027d0 0 .text.ADCIntHandler + $d 0x000027d4 0 .text.EPT0IntHandler + $t 0x000027d4 0 .text.EPT0IntHandler + $d 0x00002974 0 .text.EPT0IntHandler + $d 0x00002980 0 .text.WWDTHandler + $t 0x00002980 0 .text.WWDTHandler + $d 0x000029b0 0 .text.WWDTHandler + $d 0x000029b4 0 .text.GPT0IntHandler + $t 0x000029b4 0 .text.GPT0IntHandler + $d 0x00002a30 0 .text.GPT0IntHandler + $d 0x00002a34 0 .text.RTCIntHandler + $t 0x00002a34 0 .text.RTCIntHandler + $d 0x00002a9c 0 .text.RTCIntHandler + $d 0x00002aa4 0 .text.UART0IntHandler + $t 0x00002aa4 0 .text.UART0IntHandler + $d 0x00002b00 0 .text.UART0IntHandler + $d 0x00002b04 0 .text.UART1IntHandler + $t 0x00002b04 0 .text.UART1IntHandler + $d 0x00002b84 0 .text.UART1IntHandler + $d 0x00002b98 0 .text.UART2IntHandler + $t 0x00002b98 0 .text.UART2IntHandler + $d 0x00002c18 0 .text.UART2IntHandler + $d 0x00002c2c 0 .text.SPI0IntHandler + $t 0x00002c2c 0 .text.SPI0IntHandler + $d 0x00002d10 0 .text.SPI0IntHandler + $d 0x00002d14 0 .text.SIO0IntHandler + $t 0x00002d14 0 .text.SIO0IntHandler + $d 0x00002d64 0 .text.SIO0IntHandler + $d 0x00002d68 0 .text.EXI0IntHandler + $t 0x00002d68 0 .text.EXI0IntHandler + $d 0x00002d94 0 .text.EXI0IntHandler + $d 0x00002d98 0 .text.EXI1IntHandler + $t 0x00002d98 0 .text.EXI1IntHandler + $d 0x00002dc4 0 .text.EXI1IntHandler + $d 0x00002dc8 0 .text.EXI2to3IntHandler + $t 0x00002dc8 0 .text.EXI2to3IntHandler + $d 0x00002e0c 0 .text.EXI2to3IntHandler + $d 0x00002e10 0 .text.EXI4to9IntHandler + $t 0x00002e10 0 .text.EXI4to9IntHandler + $d 0x00002e78 0 .text.EXI4to9IntHandler + $d 0x00002e7c 0 .text.EXI10to15IntHandler + $t 0x00002e7c 0 .text.EXI10to15IntHandler + $d 0x00002ed8 0 .text.EXI10to15IntHandler + $d 0x00002edc 0 .text.LPTIntHandler + $t 0x00002edc 0 .text.LPTIntHandler + $d 0x00002f0c 0 .text.LPTIntHandler + $d 0x00002f10 0 .text.BT0IntHandler + $t 0x00002f10 0 .text.BT0IntHandler + $d 0x00002f58 0 .text.BT0IntHandler + $d 0x00002f5c 0 .text.BT1IntHandler + $t 0x00002f5c 0 .text.BT1IntHandler + $d 0x00002fc4 0 .text.BT1IntHandler + $d 0x00002fcc 0 .text.PriviledgeVioHandler + $t 0x00002fcc 0 .text.PriviledgeVioHandler + $d 0x00002fce 0 .text.PendTrapHandler + $t 0x00002fce 0 .text.PendTrapHandler + $d 0x00002fd6 0 .text.Trap3Handler + $t 0x00002fd6 0 .text.Trap3Handler + $d 0x00002fde 0 .text.Trap2Handler + $t 0x00002fde 0 .text.Trap2Handler + $d 0x00002fe6 0 .text.Trap1Handler + $t 0x00002fe6 0 .text.Trap1Handler + $d 0x00002fee 0 .text.Trap0Handler + $t 0x00002fee 0 .text.Trap0Handler + $d 0x00002ff6 0 .text.UnrecExecpHandler + $t 0x00002ff6 0 .text.UnrecExecpHandler + $d 0x00002ffe 0 .text.BreakPointHandler + $t 0x00002ffe 0 .text.BreakPointHandler + $d 0x00003006 0 .text.AccessErrHandler + $t 0x00003006 0 .text.AccessErrHandler + $d 0x0000300e 0 .text.IllegalInstrHandler + $t 0x0000300e 0 .text.IllegalInstrHandler + $d 0x00003016 0 .text.MisalignedHandler + $t 0x00003016 0 .text.MisalignedHandler + $d 0x0000301e 0 .text.CNTAIntHandler + $t 0x0000301e 0 .text.CNTAIntHandler + $d 0x00003026 0 .text.I2CIntHandler + $t 0x00003026 0 .text.I2CIntHandler + $d 0x00003030 0 .text.__divsi3 + $t 0x00003030 0 .text.__divsi3 + $d 0x00003050 0 .text.__divsi3 + $d 0x00003054 0 .text.__udivsi3 + $t 0x00003054 0 .text.__udivsi3 + $d 0x00003074 0 .text.__udivsi3 + $d 0x00003078 0 .text.__umodsi3 + $t 0x00003078 0 .text.__umodsi3 + $d 0x00003098 0 .text.__umodsi3 + $d 0x0000309c 0 .text.CK_CPU_EnAllNormalIrq + $t 0x0000309c 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000030a2 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000030a2 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000030a8 0 .text.UARTx_Init + $t 0x000030a8 0 .text.UARTx_Init + $d 0x000031cc 0 .text.UARTx_Init + $d 0x00003200 0 .text.UART0_RecvINT_Processing + $t 0x00003200 0 .text.UART0_RecvINT_Processing + $d 0x0000322c 0 .text.UART0_RecvINT_Processing + $d 0x00003238 0 .text.UART1_RecvINT_Processing + $t 0x00003238 0 .text.UART1_RecvINT_Processing + $d 0x00003264 0 .text.UART1_RecvINT_Processing + $d 0x00003270 0 .text.UART2_RecvINT_Processing + $t 0x00003270 0 .text.UART2_RecvINT_Processing + $d 0x000032a8 0 .text.UART2_RecvINT_Processing + $d 0x000032b4 0 .text.UART2_TASK + $t 0x000032b4 0 .text.UART2_TASK + $d 0x00003320 0 .text.UART2_TASK + $d 0x00003338 0 .text.BUS485_Send + $t 0x00003338 0 .text.BUS485_Send + $d 0x000033e4 0 .text.BUS485_Send + $d 0x000033fc 0 .text.MultSend_Task + $t 0x000033fc 0 .text.MultSend_Task + $d 0x00003468 0 .text.MultSend_Task + $d 0x00003470 0 .text.Set_GroupSend + $t 0x00003470 0 .text.Set_GroupSend + $d 0x000034cc 0 .text.Set_GroupSend + $d 0x000034d4 0 .text.Clear_SendFlag + $t 0x000034d4 0 .text.Clear_SendFlag + $d 0x000034e0 0 .text.Clear_SendFlag + $d 0x000034e4 0 .text.BUS485_Jump_Boot + $t 0x000034e4 0 .text.BUS485_Jump_Boot + $d 0x000034ec 0 .text.BUS485_Jump_Boot + $d 0x000034f0 0 .text.BUS485Send_Task + $t 0x000034f0 0 .text.BUS485Send_Task + $d 0x00003518 0 .text.BUS485Send_Task + $d 0x00003524 0 .text.BusIdle_Task + $t 0x00003524 0 .text.BusIdle_Task + $d 0x0000355c 0 .text.BusIdle_Task + $d 0x00003564 0 .text.BusBusy_Task + $t 0x00003564 0 .text.BusBusy_Task + $d 0x000035b4 0 .text.BusBusy_Task + $d 0x000035c0 0 .text.Dbg_Println + $t 0x000035c0 0 .text.Dbg_Println + $d 0x000035cc 0 .text.EEPROM_CheckSum + $t 0x000035cc 0 .text.EEPROM_CheckSum + $d 0x000035e4 0 .text.EEPROM_ReadParaInfo + $t 0x000035e4 0 .text.EEPROM_ReadParaInfo + $d 0x00003650 0 .text.EEPROM_ReadParaInfo + $d 0x00003658 0 .text.EEPROM_WriteParaInfo + $t 0x00003658 0 .text.EEPROM_WriteParaInfo + $d 0x00003698 0 .text.EEPROM_WriteParaInfo + $d 0x0000369c 0 .text.Boot_Comm_CheckSum + $t 0x0000369c 0 .text.Boot_Comm_CheckSum + $d 0x000036bc 0 .text.Boot_Comm_CheckSum + $d 0x000036c0 0 .text.Boot_Comm_FillReplyPack + $t 0x000036c0 0 .text.Boot_Comm_FillReplyPack + $d 0x00003714 0 .text.Boot_Comm_FillReplyPack + $d 0x0000371c 0 .text.Boot_Time_Refresh + $t 0x0000371c 0 .text.Boot_Time_Refresh + $d 0x00003728 0 .text.Boot_Time_Refresh + $d 0x00003730 0 .text.Boot_Comm_UpgradeProcess + $t 0x00003730 0 .text.Boot_Comm_UpgradeProcess + $d 0x000038a8 0 .text.Boot_Comm_UpgradeProcess + $d 0x000038b8 0 .text.Debug_Init + $t 0x000038b8 0 .text.Debug_Init + $d 0x000038d0 0 .text.Debug_Init + $d 0x000038d8 0 .text.DisPlay_Task + $t 0x000038d8 0 .text.DisPlay_Task + $d 0x00003a74 0 .text.DisPlay_Task + $d 0x00003a9c 0 .text.TemCtrl_Init + $t 0x00003a9c 0 .text.TemCtrl_Init + $d 0x00003be4 0 .text.TemCtrl_Init + $d 0x00003bf8 0 .text.Tem_Valve_Ctrl + $t 0x00003bf8 0 .text.Tem_Valve_Ctrl + $d 0x00003c54 0 .text.Tem_Valve_Ctrl + $d 0x00003c58 0 .text.TemCtrl_Pro + $t 0x00003c58 0 .text.TemCtrl_Pro + $d 0x00003c90 0 .text.TemCtrl_Pro + $d 0x00003ca0 0 .text.NetCRC16_Check + $t 0x00003ca0 0 .text.NetCRC16_Check + $d 0x00003ce4 0 .text.NetCRC16_Check + $d 0x00003cec 0 .text.GetCRC16 + $t 0x00003cec 0 .text.GetCRC16 + $d 0x00003d20 0 .text.GetCRC16 + $d 0x00003d28 0 .text.SOR_CRC + $t 0x00003d28 0 .text.SOR_CRC + $d 0x00003d40 0 .text.Rs485_ASend + $t 0x00003d40 0 .text.Rs485_ASend + $d 0x00003dbe 0 .text.Rs485_ASend + $t 0x00003dc2 0 .text.Rs485_ASend + $d 0x00003e40 0 .text.Rs485_ASend + $d 0x00003e48 0 .text.Rs485AskCycleSend + $t 0x00003e48 0 .text.Rs485AskCycleSend + $d 0x00003ebe 0 .text.Rs485AskCycleSend + $t 0x00003ec2 0 .text.Rs485AskCycleSend + $d 0x00003f44 0 .text.Rs485AskCycleSend + $d 0x00003f4c 0 .text.Rs485AskCtrlSend + $t 0x00003f4c 0 .text.Rs485AskCtrlSend + $d 0x00003fa4 0 .text.Rs485AskCtrlSend + $d 0x00003fa8 0 .text.Rs485AskReadSend + $t 0x00003fa8 0 .text.Rs485AskReadSend + $d 0x0000400c 0 .text.Rs485AskReadSend + $d 0x00004010 0 .text.Rs485_DevPort_ACK + $t 0x00004010 0 .text.Rs485_DevPort_ACK + $d 0x00004028 0 .text.Temp_Rec_Analysis + $t 0x00004028 0 .text.Temp_Rec_Analysis + $d 0x00004090 0 .text.Temp_Rec_Analysis + $t 0x000040a2 0 .text.Temp_Rec_Analysis + $d 0x000040ba 0 .text.Temp_Rec_Analysis + $t 0x000040be 0 .text.Temp_Rec_Analysis + $d 0x000041ac 0 .text.Temp_Rec_Analysis + $t 0x000041b0 0 .text.Temp_Rec_Analysis + $d 0x000041cc 0 .text.Temp_Rec_Analysis + $d 0x000041d8 0 .text.Tem_Rs485_Rec_Pro + $t 0x000041d8 0 .text.Tem_Rs485_Rec_Pro + $d 0x00004288 0 .text.Tem_Rs485_Rec_Pro + $d 0x00004298 0 .text.TK_Single_Longpress_prg + $t 0x00004298 0 .text.TK_Single_Longpress_prg + $d 0x0000438c 0 .text.TK_Single_Longpress_prg + $d 0x000043c0 0 .text.TK_Sampling_prog + $t 0x000043c0 0 .text.TK_Sampling_prog + $d 0x00004468 0 .text.TK_Sampling_prog + $d 0x0000448c 0 .text.get_key_number + $t 0x0000448c 0 .text.get_key_number + $d 0x000044b0 0 .text.get_key_number + $d 0x000044b4 0 .text.get_key_number0 + $t 0x000044b4 0 .text.get_key_number0 + $d 0x000044d8 0 .text.get_key_number0 + $d 0x000044dc 0 .text.get_key_number1 + $t 0x000044dc 0 .text.get_key_number1 + $d 0x00004500 0 .text.get_key_number1 + $d 0x00004504 0 .text.get_key_number2 + $t 0x00004504 0 .text.get_key_number2 + $d 0x00004528 0 .text.get_key_number2 + $d 0x0000452c 0 .text.TK_Scan_Start + $t 0x0000452c 0 .text.TK_Scan_Start + $d 0x00004578 0 .text.TK_Scan_Start + $d 0x00004594 0 .text.TK_Keymap_prog + $t 0x00004594 0 .text.TK_Keymap_prog + $d 0x000048d0 0 .text.TK_Keymap_prog + $t 0x00004954 0 .text.TK_Keymap_prog + $d 0x00004cb0 0 .text.TK_Keymap_prog + $t 0x00004cf4 0 .text.TK_Keymap_prog + $d 0x00004df0 0 .text.TK_Keymap_prog + $d 0x00004e04 0 .text.TK_overflow_predict + $t 0x00004e04 0 .text.TK_overflow_predict + $d 0x00004ef8 0 .text.TK_overflow_predict + $d 0x00004f2c 0 .text.TK_Baseline_tracking + $t 0x00004f2c 0 .text.TK_Baseline_tracking + $d 0x00005284 0 .text.TK_Baseline_tracking + $t 0x000052e0 0 .text.TK_Baseline_tracking + $d 0x000053ec 0 .text.TK_Baseline_tracking + $d 0x000053fc 0 .text.TK_result_prog + $t 0x000053fc 0 .text.TK_result_prog + $d 0x000054fc 0 .text.TK_result_prog + $d 0x0000552c 0 .text.TKEYIntHandler + $t 0x0000552c 0 .text.TKEYIntHandler + $d 0x000055bc 0 .text.TKEYIntHandler + $d 0x000055cc 0 .text.CORETHandler + $t 0x000055cc 0 .text.CORETHandler + $d 0x000056f4 0 .text.CORETHandler + $d 0x00005728 0 .text.std_clk_calib + $t 0x00005728 0 .text.std_clk_calib + $d 0x00005970 0 .text.std_clk_calib + bp 0x000059ac O 16 .rodata + dp_l 0x000059bc O 16 .rodata + dp_h 0x000059cc O 16 .rodata + NUM.6178 0x200000b0 O 1 .bss + OpenDisPlay_Flag 0x20000144 O 1 .bss + tick.6085 0x20000148 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 + EXI3_Int_Enable 0x00001d60 F 16 .text.EXI3_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_DeInit 0x00001ddc F 100 .text.GPIO_DeInit + GPIO_Init 0x00001e40 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f20 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f34 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f44 F 268 .text.GPIO_IntGroup_Set + GPIOB0_EXI_Init 0x00002050 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x000020bc F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000020c4 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000020cc F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000020e2 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000020f4 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002108 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002118 F 28 .text.BT_DeInit + BT_Start 0x00002134 F 8 .text.BT_Start + BT_Soft_Reset 0x0000213c F 10 .text.BT_Soft_Reset + BT_Configure 0x00002146 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000215e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000218a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00002190 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x000021a4 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x000021b4 F 24 .text.UART0_DeInit + UART1_DeInit 0x000021cc F 24 .text.UART1_DeInit + UART2_DeInit 0x000021e4 F 24 .text.UART2_DeInit + UART0_Int_Enable 0x000021fc F 28 .text.UART0_Int_Enable + UART2_Int_Enable 0x00002218 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002234 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00002320 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002330 F 30 .text.UARTTransmit + EPT_Stop 0x00002350 F 40 .text.EPT_Stop + Page_ProgramData 0x00002378 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002418 F 42 .text.ReadDataArry_U8 + main 0x00002444 F 56 .text.startup.main + delay_nms 0x0000247c F 44 .text.delay_nms + delay_nus 0x000024a8 F 34 .text.delay_nus + BT_CONFIG 0x000024cc F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x0000252c F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002590 F 132 .text.APT32F102_init + SYSCONIntHandler 0x00002614 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002704 F 104 .text.IFCIntHandler + ADCIntHandler 0x0000276c F 104 .text.ADCIntHandler + EPT0IntHandler 0x000027d4 F 428 .text.EPT0IntHandler + WWDTHandler 0x00002980 F 52 .text.WWDTHandler + GPT0IntHandler 0x000029b4 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00002a34 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002aa4 F 96 .text.UART0IntHandler + UART1IntHandler 0x00002b04 F 148 .text.UART1IntHandler + UART2IntHandler 0x00002b98 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00002c2c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002d14 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002d68 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002d98 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002dc8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002e10 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002e7c F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00002edc F 52 .text.LPTIntHandler + BT0IntHandler 0x00002f10 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002f5c F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00002fcc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00002fce F 8 .text.PendTrapHandler + Trap3Handler 0x00002fd6 F 8 .text.Trap3Handler + Trap2Handler 0x00002fde F 8 .text.Trap2Handler + Trap1Handler 0x00002fe6 F 8 .text.Trap1Handler + Trap0Handler 0x00002fee F 8 .text.Trap0Handler + UnrecExecpHandler 0x00002ff6 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x00002ffe F 8 .text.BreakPointHandler + AccessErrHandler 0x00003006 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000300e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003016 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000301e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003026 F 8 .text.I2CIntHandler + __divsi3 0x00003030 F 36 .text.__divsi3 + __udivsi3 0x00003054 F 36 .text.__udivsi3 + __umodsi3 0x00003078 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x0000309c F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000030a2 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000030a8 F 344 .text.UARTx_Init + UART0_RecvINT_Processing 0x00003200 F 56 .text.UART0_RecvINT_Processing + UART1_RecvINT_Processing 0x00003238 F 56 .text.UART1_RecvINT_Processing + UART2_RecvINT_Processing 0x00003270 F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x000032b4 F 132 .text.UART2_TASK + BUS485_Send 0x00003338 F 196 .text.BUS485_Send + MultSend_Task 0x000033fc F 116 .text.MultSend_Task + Set_GroupSend 0x00003470 F 100 .text.Set_GroupSend + Clear_SendFlag 0x000034d4 F 16 .text.Clear_SendFlag + BUS485_Jump_Boot 0x000034e4 F 12 .text.BUS485_Jump_Boot + BUS485Send_Task 0x000034f0 F 52 .text.BUS485Send_Task + BusIdle_Task 0x00003524 F 64 .text.BusIdle_Task + BusBusy_Task 0x00003564 F 92 .text.BusBusy_Task + Dbg_Println 0x000035c0 F 12 .text.Dbg_Println + EEPROM_CheckSum 0x000035cc F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x000035e4 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00003658 F 68 .text.EEPROM_WriteParaInfo + Boot_Comm_CheckSum 0x0000369c F 36 .text.Boot_Comm_CheckSum + Boot_Comm_FillReplyPack 0x000036c0 F 92 .text.Boot_Comm_FillReplyPack + Boot_Time_Refresh 0x0000371c F 20 .text.Boot_Time_Refresh + Boot_Comm_UpgradeProcess 0x00003730 F 392 .text.Boot_Comm_UpgradeProcess + Debug_Init 0x000038b8 F 32 .text.Debug_Init + DisPlay_Task 0x000038d8 F 452 .text.DisPlay_Task + TemCtrl_Init 0x00003a9c F 348 .text.TemCtrl_Init + Tem_Valve_Ctrl 0x00003bf8 F 96 .text.Tem_Valve_Ctrl + TemCtrl_Pro 0x00003c58 F 72 .text.TemCtrl_Pro + NetCRC16_Check 0x00003ca0 F 76 .text.NetCRC16_Check + GetCRC16 0x00003cec F 60 .text.GetCRC16 + SOR_CRC 0x00003d28 F 22 .text.SOR_CRC + Rs485_ASend 0x00003d40 F 264 .text.Rs485_ASend + Rs485AskCycleSend 0x00003e48 F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x00003f4c F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x00003fa8 F 104 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x00004010 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x00004028 F 432 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x000041d8 F 192 .text.Tem_Rs485_Rec_Pro + TK_Single_Longpress_prg 0x00004298 F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x000043c0 F 204 .text.TK_Sampling_prog + get_key_number 0x0000448c F 40 .text.get_key_number + get_key_number0 0x000044b4 F 40 .text.get_key_number0 + get_key_number1 0x000044dc F 40 .text.get_key_number1 + get_key_number2 0x00004504 F 40 .text.get_key_number2 + TK_Scan_Start 0x0000452c F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x00004594 F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x00004e04 F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x00004f2c F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x000053fc F 304 .text.TK_result_prog + TKEYIntHandler 0x0000552c F 160 .text.TKEYIntHandler + CORETHandler 0x000055cc F 348 .text.CORETHandler + std_clk_calib 0x00005728 F 644 .text.std_clk_calib + __thenan_df 0x000059dc O 20 .rodata + __clz_tab 0x000059f0 O 256 .rodata + _end_rodata 0x00005b6c 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 1 .data + samp_setover_f 0x20000069 O 1 .data + scan_step_temp 0x2000006a O 1 .data + SigleTK_longpress_time 0x2000006c O 2 .data + tk_dataturn_en 0x2000006e O 1 .data + tk_overflow_en 0x2000006f O 1 .data + tk_div 0x20000070 O 34 .data + neg_build_bounce 0x20000092 O 1 .data + pos_build_bounce 0x20000093 O 1 .data + Valid_SingleKey_Num 0x20000094 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + tk_scan_para1 0x2000009c O 4 .data + tk_scan_para2 0x200000a0 O 4 .data + TkeyRebaseTime 0x200000a4 O 1 .data + _end_data 0x200000a8 0 .data + Sav_Temp 0x200000a8 O 4 .bss + _bss_start 0x200000a8 0 .bss + Sys_RSR 0x200000ac O 4 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + DealBuffer 0x200000bc O 100 .bss + DealLen 0x20000120 O 2 .bss + RS485_Comming 0x20000124 O 4 .bss + RS485_Comm_Flag 0x20000128 O 4 .bss + RS485_Comm_Start 0x2000012c O 4 .bss + RS485_Comm_End 0x20000130 O 4 .bss + RS485_Comming1 0x20000134 O 4 .bss + RS485_Comm_Flag1 0x20000138 O 4 .bss + RS485_Comm_Start1 0x2000013c O 4 .bss + RS485_Comm_End1 0x20000140 O 4 .bss + keymap_strict_mode 0x2000014c O 1 .bss + Press_debounce_data 0x20000150 O 1 .bss + TK_Lowpower_mode 0x20000151 O 1 .bss + TK_Lowpower_level 0x20000152 O 1 .bss + TK_longpress_time 0x20000154 O 4 .bss + Release_debounce_data 0x20000158 O 1 .bss + Key_mode 0x20000159 O 1 .bss + TK_icon 0x2000015a O 34 .bss + MultiTimes_Filter 0x2000017c O 1 .bss + Base_Speed 0x2000017d O 1 .bss + TK_IO_ENABLE 0x20000180 O 4 .bss + Valid_Key_Num 0x20000184 O 1 .bss + TK_senprd 0x20000186 O 34 .bss + TK_Wakeup_level 0x200001a8 O 1 .bss + TK_Triggerlevel 0x200001aa O 34 .bss + TK_EC_LEVEL 0x200001cc O 2 .bss + TK_FVR_LEVEL 0x200001ce O 2 .bss + TK_BaseCnt 0x200001d0 O 4 .bss + TK_PSEL_MODE 0x200001d4 O 2 .bss + R_CMPB_BUF 0x200001d8 O 4 .bss + R_CMPA_BUF 0x200001dc O 4 .bss + R_SIORX_buf 0x200001e0 O 40 .bss + g_uart 0x20000208 O 348 .bss + m_send 0x20000364 O 136 .bss + g_eeprom 0x200003ec O 8 .bss + g_mcu_dev 0x200003f4 O 37 .bss + g_boot 0x2000041c O 316 .bss + g_app_feature 0x20000558 O 256 .bss + Debug_Inf 0x20000658 O 8 .bss + TempCtrl 0x20000660 O 36 .bss + Tk_press_time_cnt4 0x20000684 O 4 .bss + baseline_data0 0x20000688 O 34 .bss + TK_Postive_build2 0x200006aa O 17 .bss + Key_Map1 0x200006bc O 4 .bss + Valid_Key_Num_CNT 0x200006c0 O 3 .bss + offset_data2_abs 0x200006c4 O 34 .bss + time_cnt0 0x200006e8 O 4 .bss + offset0_max_tempB 0x200006ec O 2 .bss + scan_f 0x200006ee O 1 .bss + offset_data1_abs 0x200006f0 O 34 .bss + TK_Slider1_Value 0x20000712 O 1 .bss + TK_Wheel_Value 0x20000713 O 1 .bss + Release_debounce0 0x20000714 O 17 .bss + Key_Map0 0x20000728 O 4 .bss + Tk_press_time_cnt2 0x2000072c O 4 .bss + TK_Slider0_Seq 0x20000730 O 4 .bss + bsae_over_f 0x20000734 O 1 .bss + Press_debounce0 0x20000735 O 17 .bss + Valid_key_f 0x20000746 O 1 .bss + offset_data0 0x20000748 O 34 .bss + offset2_max_tempA 0x2000076a O 2 .bss + TK_Scan_Freq1 0x2000076c O 4 .bss + sampling_data1 0x20000770 O 34 .bss + TK_Slider1_Level 0x20000792 O 1 .bss + TK_Slider1_Function 0x20000793 O 1 .bss + base_update_fs 0x20000794 O 3 .bss + TK_Slider0_Function 0x20000797 O 1 .bss + Tk_press_time_cnt3 0x20000798 O 4 .bss + TK_Scan_Freq2 0x2000079c O 4 .bss + Key_Map2 0x200007a0 O 4 .bss + Release_debounce1 0x200007a4 O 17 .bss + tk_overflow_f 0x200007b5 O 1 .bss + time_cnt2 0x200007b8 O 4 .bss + TK_Negtive_build2 0x200007bc O 17 .bss + base_update_f 0x200007cd O 1 .bss + TK_Postive_build1 0x200007ce O 17 .bss + offset_max_data 0x200007e0 O 64 .bss + time_cnt 0x20000820 O 4 .bss + lpt_scan_pend_cnt 0x20000824 O 2 .bss + TK_track_cnt 0x20000826 O 1 .bss + Key_Map 0x20000828 O 4 .bss + Key_Map2_temp 0x2000082c O 4 .bss + offset2_max_tempB 0x20000830 O 2 .bss + baseline_data1 0x20000832 O 34 .bss + TK_Postive_build0 0x20000854 O 17 .bss + sampling_data2 0x20000866 O 34 .bss + offset_data1 0x20000888 O 34 .bss + TK_ovrdect_cnt 0x200008aa O 1 .bss + TK_Slider0_Level 0x200008ab O 1 .bss + time_cnt1 0x200008ac O 4 .bss + Press_debounce2 0x200008b0 O 17 .bss + Tk_press_time_cnt0 0x200008c4 O 4 .bss + Key_Map0_temp 0x200008c8 O 4 .bss + TK_Negtive_build1 0x200008cc O 17 .bss + coret_spread_step 0x200008dd O 1 .bss + time_cnts 0x200008de O 3 .bss + offset0_max_tempA 0x200008e2 O 2 .bss + tk_num 0x200008e4 O 1 .bss + TK_Slider1_Seq 0x200008e5 O 4 .bss + offset1_max_tempB 0x200008ea O 2 .bss + TK_Negtive_build0 0x200008ec O 17 .bss + R_Debounce_temp2 0x20000900 O 4 .bss + Tk_press_time_cnt1 0x20000904 O 4 .bss + Press_debounce1 0x20000908 O 17 .bss + TK_Wheel_Seq 0x20000919 O 4 .bss + TK_Slider0_Value 0x2000091d O 1 .bss + Release_debounce2 0x2000091e O 17 .bss + r_Key_Map_Temp 0x20000930 O 4 .bss + tk_seque 0x20000934 O 17 .bss + scan_step 0x20000945 O 1 .bss + TK_Wheel_Level 0x20000946 O 1 .bss + baseline_data2 0x20000948 O 34 .bss + tk_sampling_max 0x2000096a O 34 .bss + Key_Map1_temp 0x2000098c O 4 .bss + coret_spread_cnt 0x20000990 O 2 .bss + offset_data0_abs 0x20000992 O 34 .bss + offset_data2 0x200009b4 O 34 .bss + TK_Wheel_Function 0x200009d6 O 1 .bss + offset1_max_tempA 0x200009d8 O 2 .bss + sampling_data0 0x200009da O 34 .bss + TK_Scan_Freq0 0x200009fc O 4 .bss + _ebss 0x20000a00 0 .bss + _end 0x20000a00 0 .bss + end 0x20000a00 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: 0x00005b6c, 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 1072 .text pow.o + 0x00000b5e 0x00000006 Code RO 1080 .text fabs.o + 0x00000b64 0x00000020 Code RO 1086 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1093 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1104 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1109 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1116 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1123 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1130 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1137 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1144 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1151 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1158 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1165 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1179 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1186 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1193 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1199 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1206 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1213 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1234 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1239 .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 89 .text.EXI3_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 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00001e40 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f20 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f34 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f44 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002050 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000020bc 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000020c4 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000020cc 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000020e2 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000020f4 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002108 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002118 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002134 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x0000213c 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002146 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000215e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000218a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00002190 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x000021a4 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x000021b4 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021cc 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021e4 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021fc 0x0000001c Code RO 438 .text.UART0_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002218 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002234 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002320 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002330 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002350 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002378 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002418 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002444 0x00000038 Code RO 705 .text.startup.main Obj/main.o + 0x0000247c 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x000024a8 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x000024cc 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x0000252c 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002590 0x00000084 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002614 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002704 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x0000276c 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x000027d4 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00002980 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000029b4 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00002a34 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002aa4 0x00000060 Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002b04 0x00000094 Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002b98 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002c2c 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002d14 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002d68 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002d98 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002dc8 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002e10 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002e7c 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002edc 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002f10 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002f5c 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00002fcc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00002fce 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00002fd6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00002fde 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00002fe6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00002fee 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00002ff6 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x00002ffe 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003006 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000300e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003016 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000301e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003026 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003030 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003054 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003078 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x0000309c 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000030a2 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000030a8 0x00000158 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003200 0x00000038 Code RO 835 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003238 0x00000038 Code RO 837 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003270 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x000032b4 0x00000084 Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x00003338 0x000000c4 Code RO 844 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x000033fc 0x00000074 Code RO 845 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003470 0x00000064 Code RO 846 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x000034d4 0x00000010 Code RO 847 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x000034e4 0x0000000c Code RO 848 .text.BUS485_Jump_Boot Obj/SYSTEM_uart.o + 0x000034f0 0x00000034 Code RO 849 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00003524 0x00000040 Code RO 851 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00003564 0x0000005c Code RO 852 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x000035c0 0x0000000c Code RO 854 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000035cc 0x00000016 Code RO 872 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x000035e4 0x00000074 Code RO 873 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00003658 0x00000044 Code RO 874 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x0000369c 0x00000024 Code RO 901 .text.Boot_Comm_CheckSum Obj/SYSTEM_Bootload_fun.o + 0x000036c0 0x0000005c Code RO 903 .text.Boot_Comm_FillReplyPack Obj/SYSTEM_Bootload_fun.o + 0x0000371c 0x00000014 Code RO 907 .text.Boot_Time_Refresh Obj/SYSTEM_Bootload_fun.o + 0x00003730 0x00000188 Code RO 908 .text.Boot_Comm_UpgradeProcess Obj/SYSTEM_Bootload_fun.o + 0x000038b8 0x00000020 Code RO 928 .text.Debug_Init Obj/SYSTEM_display_logic.o + 0x000038d8 0x000001c4 Code RO 930 .text.DisPlay_Task Obj/SYSTEM_display_logic.o + 0x00003a9c 0x0000015c Code RO 947 .text.TemCtrl_Init Obj/SYSTEM_tempctrl_unit.o + 0x00003bf8 0x00000060 Code RO 948 .text.Tem_Valve_Ctrl Obj/SYSTEM_tempctrl_unit.o + 0x00003c58 0x00000048 Code RO 949 .text.TemCtrl_Pro Obj/SYSTEM_tempctrl_unit.o + 0x00003ca0 0x0000004c Code RO 967 .text.NetCRC16_Check Obj/SYSTEM_uart_protocol.o + 0x00003cec 0x0000003c Code RO 968 .text.GetCRC16 Obj/SYSTEM_uart_protocol.o + 0x00003d28 0x00000016 Code RO 969 .text.SOR_CRC Obj/SYSTEM_uart_protocol.o + 0x00003d40 0x00000108 Code RO 970 .text.Rs485_ASend Obj/SYSTEM_uart_protocol.o + 0x00003e48 0x00000104 Code RO 971 .text.Rs485AskCycleSend Obj/SYSTEM_uart_protocol.o + 0x00003f4c 0x0000005c Code RO 972 .text.Rs485AskCtrlSend Obj/SYSTEM_uart_protocol.o + 0x00003fa8 0x00000068 Code RO 973 .text.Rs485AskReadSend Obj/SYSTEM_uart_protocol.o + 0x00004010 0x00000018 Code RO 974 .text.Rs485_DevPort_ACK Obj/SYSTEM_uart_protocol.o + 0x00004028 0x000001b0 Code RO 975 .text.Temp_Rec_Analysis Obj/SYSTEM_uart_protocol.o + 0x000041d8 0x000000c0 Code RO 976 .text.Tem_Rs485_Rec_Pro Obj/SYSTEM_uart_protocol.o + 0x00004298 0x00000128 Code RO 1010 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x000043c0 0x000000cc Code RO 1011 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000448c 0x00000028 Code RO 1015 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x000044b4 0x00000028 Code RO 1016 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000044dc 0x00000028 Code RO 1017 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x00004504 0x00000028 Code RO 1018 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x0000452c 0x00000068 Code RO 1022 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x00004594 0x00000870 Code RO 1023 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00004e04 0x00000128 Code RO 1024 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x00004f2c 0x000004d0 Code RO 1025 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x000053fc 0x00000130 Code RO 1026 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x0000552c 0x000000a0 Code RO 1032 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x000055cc 0x0000015c Code RO 1033 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00005728 0x00000284 Code RO 1052 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x000059ac 0x00000030 Data RO 1075 .rodata pow.o + 0x000059dc 0x00000014 Data RO 1175 .rodata _thenan_df.o + 0x000059f0 0x00000100 Data RO 1223 .rodata _clz.o + 0x00005af0 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00005afe 0x00000041 Data RO 950 .rodata.str1.1 Obj/SYSTEM_tempctrl_unit.o + 0x00005b3f 0x0000002c Data RO 977 .rodata.str1.1 Obj/SYSTEM_uart_protocol.o + 0x00005b6b 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x00000a00, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x0000003d Data RW 1000 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000a5 0x00000003 PAD + 0x200000a8 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000088 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x20000144 0x00000001 Zero RW 927 .bss Obj/SYSTEM_display_logic.o + 0x20000145 0x00000003 PAD + 0x20000148 0x00000004 Zero RW 946 .bss Obj/SYSTEM_tempctrl_unit.o + 0x2000014c 0x00000001 Zero RW 1001 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x2000014d 0x00000003 PAD + 0x20000150 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200001d6 0x00000002 PAD + 0x200001d8 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x20000208 0x000001e4 Zero RW 868 COMMON Obj/SYSTEM_uart.o + 0x200003ec 0x0000002d Zero RW 896 COMMON Obj/SYSTEM_eeprom.o + 0x20000419 0x00000003 PAD + 0x2000041c 0x0000023c Zero RW 924 COMMON Obj/SYSTEM_Bootload_fun.o + 0x20000658 0x00000008 Zero RW 943 COMMON Obj/SYSTEM_display_logic.o + 0x20000660 0x00000024 Zero RW 963 COMMON Obj/SYSTEM_tempctrl_unit.o + 0x20000684 0x0000037c Zero RW 1048 COMMON FWlib_apt32f102_tkey_f_1_18.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 276 Obj/arch_crt0.o + 56 0 0 0 810 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 852 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 788 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 + 410 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 134 8693 Obj/FWlib_apt32f102_tkey_parameter.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 56 14 0 8 11915 Obj/main.o + 404 0 0 0 16809 Obj/mcu_initial.o + 2586 0 0 60 15299 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1316 0 0 620 16214 Obj/SYSTEM_uart.o + 206 0 0 45 13126 Obj/SYSTEM_eeprom.o + 540 0 0 572 16521 Obj/SYSTEM_Bootload_fun.o + 484 0 0 9 10946 Obj/SYSTEM_display_logic.o + 516 65 0 40 11106 Obj/SYSTEM_tempctrl_unit.o + 1526 44 0 0 13549 Obj/SYSTEM_uart_protocol.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 10728 123 104 1488 276503 Object Totals + 4 1 3 11 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 5264 0 61 893 20070 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 5264 0 61 893 20070 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 + 22936 448 168 2392 305248 Grand Totals + 22936 448 168 2392 305248 Elf Image Totals + 22936 448 168 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 23384 ( 22.84kB) +Total RW Size (RW Data + ZI Data) 2560 ( 2.50kB) +Total ROM Size (Code + RO Data + RW Data) 23552 ( 23.00kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH.asm new file mode 100644 index 0000000..f1854c8 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH.asm @@ -0,0 +1,14894 @@ + +.//Obj/T1_TC_34650_ZH.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : +void tk_parameter_init(void) +{ +/**************************************************** +//TK parameter define +*****************************************************/ + TK_IO_ENABLE=0x4F01; //TK IO ENABLE Bit16-->Bit0;0=DISABLE 1=ENABLE + 0: 0000010c .long 0x0000010c + 4: 00003026 .long 0x00003026 + + TK_senprd[0]=180; //TCH0 scan period = TCH0 sens + 8: 00003016 .long 0x00003016 + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + c: 00000184 .long 0x00000184 + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 10: 0000301e .long 0x0000301e + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 14: 00002fdc .long 0x00002fdc + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 18: 00000184 .long 0x00000184 + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + TK_senprd[8]=180; //TCH8 scan period = TCH8 sens + 1c: 0000300e .long 0x0000300e + TK_senprd[9]=180; //TCH9 scan period = TCH9 sens + 20: 00003006 .long 0x00003006 + TK_senprd[10]=70; //TCH10 scan period = TCH10 sens + 24: 00000184 .long 0x00000184 + TK_senprd[11]=70; //TCH11 scan period = TCH11 sens + TK_senprd[12]=180; //TCH12 scan period = TCH12 sens + 28: 00000184 .long 0x00000184 + TK_senprd[13]=180; //TCH13 scan period = TCH13 sens + 2c: 00000184 .long 0x00000184 + TK_senprd[14]=180; //TCH14 scan period = TCH14 sens + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 30: 00000184 .long 0x00000184 + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 34: 00000184 .long 0x00000184 + TK_Triggerlevel[0]=100; //TCH0 TK_Trigger level + 38: 00000184 .long 0x00000184 + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 3c: 00000184 .long 0x00000184 + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 40: 00002ffe .long 0x00002ffe + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 44: 00002ff6 .long 0x00002ff6 + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 48: 00002fee .long 0x00002fee + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + TK_Triggerlevel[8]=100; //TCH8 TK_Trigger level + 4c: 00002fe6 .long 0x00002fe6 + TK_Triggerlevel[9]=100; //TCH9 TK_Trigger level + 50: 00000184 .long 0x00000184 + TK_Triggerlevel[10]=40; //TCH10 TK_Trigger level + 54: 00000184 .long 0x00000184 + TK_Triggerlevel[11]=40; //TCH11 TK_Trigger level + TK_Triggerlevel[12]=100; //TCH12 TK_Trigger level + 58: 00000184 .long 0x00000184 + TK_Triggerlevel[13]=100; //TCH13 TK_Trigger level + 5c: 00000184 .long 0x00000184 + TK_Triggerlevel[14]=100; //TCH14 TK_Trigger level + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 60: 00000184 .long 0x00000184 + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 64: 00000184 .long 0x00000184 + Press_debounce_data=6; //Press debounce 1~10 + 68: 00000184 .long 0x00000184 + Release_debounce_data=5; //Release debounce 1~10 + 6c: 00000184 .long 0x00000184 + 70: 00000184 .long 0x00000184 + Key_mode=1; //Key mode 0=single key 1=multi key + 74: 00000184 .long 0x00000184 + MultiTimes_Filter=40; //MultiTimes Filter,>4 ENABLE <4 DISABLE + 78: 00000184 .long 0x00000184 + 7c: 00002fde .long 0x00002fde + Valid_Key_Num=6; //Valid Key number when touched + 80: 00005994 .long 0x00005994 + Base_Speed=20; //baseline update speed + 84: 00002624 .long 0x00002624 + 88: 00002714 .long 0x00002714 + TK_longpress_time=8; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 8c: 0000277c .long 0x0000277c + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 90: 000027e4 .long 0x000027e4 + 94: 00000184 .long 0x00000184 + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 98: 00002990 .long 0x00002990 + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 9c: 00002d78 .long 0x00002d78 + a0: 00002da8 .long 0x00002da8 + TK_Wakeup_level=50; //touch key Trigger level in sleep + a4: 000029c4 .long 0x000029c4 +/**************************************************** +//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 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + b0: 00002a44 .long 0x00002a44 + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + b4: 00002ab4 .long 0x00002ab4 + TK_icon[0]=6; //TCH0 TK Scan icon range 0~7 + b8: 00002b14 .long 0x00002b14 + bc: 00002ba8 .long 0x00002ba8 + TK_icon[1]=6; //TCH1 TK Scan icon range 0~7 + TK_icon[2]=6; //TCH2 TK Scan icon range 0~7 + c0: 00000184 .long 0x00000184 + TK_icon[3]=6; //TCH3 TK Scan icon range 0~7 + TK_icon[4]=6; //TCH4 TK Scan icon range 0~7 + c4: 00003036 .long 0x00003036 + TK_icon[5]=6; //TCH5 TK Scan icon range 0~7 + TK_icon[6]=6; //TCH6 TK Scan icon range 0~7 + c8: 00000184 .long 0x00000184 + TK_icon[7]=6; //TCH7 TK Scan icon range 0~7 + TK_icon[8]=6; //TCH8 TK Scan icon range 0~7 + cc: 00002c3c .long 0x00002c3c + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + d0: 00002d24 .long 0x00002d24 + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + d4: 00002dd8 .long 0x00002dd8 + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + TK_icon[14]=6; //TCH14 TK Scan icon range 0~7 + d8: 00002e20 .long 0x00002e20 + TK_icon[15]=6; //TCH15 TK Scan icon range 0~7 + TK_icon[16]=6; //TCH16 TK Scan icon range 0~7 + dc: 00002e8c .long 0x00002e8c + e0: 0000302e .long 0x0000302e + e4: 000058f4 .long 0x000058f4 + e8: 00002eec .long 0x00002eec + ec: 00000184 .long 0x00000184 + f0: 00002f20 .long 0x00002f20 + f4: 00002f6c .long 0x00002f6c + 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, 0x2444 // 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: 00002444 .long 0x00002444 + 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, 0x5d74 // 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: 00005d74 .long 0x00005d74 + 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, 0x5d74 // 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, 0x5d74 // 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: 00005d74 .long 0x00005d74 + 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, 0x5da4 // 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: 00005da4 .long 0x00005da4 + +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, 0x5da4 // 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: 00005da4 .long 0x00005da4 + 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, 0x5da4 // 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: 00005da4 .long 0x00005da4 + +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, 0x5db8 // 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: 00005db8 .long 0x00005db8 + +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, 0x5fe4 // 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, 0x200000a8 // 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, 0x200007d4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a8 // 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: 00005fe4 .long 0x00005fe4 + 1a7c: 200000a8 .long 0x200000a8 + 1a80: 200007d4 .long 0x200007d4 + 1a84: 200000a8 .long 0x200000a8 + +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.EXI3_Int_Enable: + +00001d60 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 1d60: 3380 movi r3, 128 + 1d62: 436f lsli r3, r3, 15 + 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_DeInit: + +00001ddc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 1ddc: 1075 lrw r3, 0x2000004c // 1e30 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1dde: 1036 lrw r1, 0x20000048 // 1e34 + 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; + 1de0: 1016 lrw r0, 0xffff // 1e38 + GPIOA0->CONLR &= 0xFF000000; + 1de2: 9340 ld.w r2, (r3, 0x0) + 1de4: 9260 ld.w r3, (r2, 0x0) + 1de6: 4b78 lsri r3, r3, 24 + 1de8: 4378 lsli r3, r3, 24 + 1dea: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1dec: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 1dee: 3300 movi r3, 0 + 1df0: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1df2: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 1df4: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 1df6: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 1df8: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 1dfa: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 1dfc: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 1dfe: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 1e00: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 1e02: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 1e04: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 1e06: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 1e08: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 1e0a: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 1e0c: 303f movi r0, 63 + 1e0e: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 1e10: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 1e12: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 1e14: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 1e16: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 1e18: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 1e1a: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 1e1c: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 1e1e: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 1e20: 1047 lrw r2, 0x20000044 // 1e3c + 1e22: 9240 ld.w r2, (r2, 0x0) + 1e24: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 1e26: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 1e28: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 1e2a: 330f movi r3, 15 + 1e2c: b263 st.w r3, (r2, 0xc) +} + 1e2e: 783c jmp r15 + 1e30: 2000004c .long 0x2000004c + 1e34: 20000048 .long 0x20000048 + 1e38: 0000ffff .long 0x0000ffff + 1e3c: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00001e40 : +//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) +{ + 1e40: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e42: 3907 cmphsi r1, 8 +{ + 1e44: 6d03 mov r4, r0 + if(PinNum<8) + 1e46: 0830 bt 0x1ea6 // 1ea6 + { + switch (PinNum) + 1e48: 5903 subi r0, r1, 1 + 1e4a: 3806 cmphsi r0, 7 + 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 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e5a: 3300 movi r3, 0 + 1e5c: 3104 movi r1, 4 + 1e5e: 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) + 1e60: 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< + 1e76: 07f5 br 0x1e60 // 1e60 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e78: 310c movi r1, 12 + 1e7a: 1166 lrw r3, 0xffff0fff // 1f10 + 1e7c: 07f2 br 0x1e60 // 1e60 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e7e: 3110 movi r1, 16 + 1e80: 1165 lrw r3, 0xfff10000 // 1f14 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e82: 2b00 subi r3, 1 + 1e84: 07ee br 0x1e60 // 1e60 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e86: 3114 movi r1, 20 + 1e88: 1164 lrw r3, 0xff100000 // 1f18 + 1e8a: 07fc br 0x1e82 // 1e82 + case 6: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 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e94: 311c movi r1, 28 + 1e96: 1162 lrw r3, 0xfffffff // 1f1c + 1e98: 07e4 br 0x1e60 // 1e60 + case 0: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)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1ea6: 390f cmphsi r1, 16 + 1ea8: 0be4 bt 0x1e70 // 1e70 + switch (PinNum) + 1eaa: 2908 subi r1, 9 + 1eac: 3906 cmphsi r1, 7 + 1eae: 6c07 mov r0, r1 + 1eb0: 0827 bt 0x1efe // 1efe + 1eb2: e3fff725 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1eb6: 1004 .short 0x1004 + 1eb8: 1d1a1613 .long 0x1d1a1613 + 1ebc: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1ebe: 3300 movi r3, 0 + 1ec0: 3104 movi r1, 4 + 1ec2: 2bf0 subi r3, 241 + if (Dir) + 1ec4: 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; + 1ed6: 3108 movi r1, 8 + 1ed8: 106d lrw r3, 0xfffff0ff // 1f0c + 1eda: 07f5 br 0x1ec4 // 1ec4 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1edc: 310c movi r1, 12 + 1ede: 106d lrw r3, 0xffff0fff // 1f10 + 1ee0: 07f2 br 0x1ec4 // 1ec4 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ee2: 3110 movi r1, 16 + 1ee4: 106c lrw r3, 0xfff10000 // 1f14 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ee6: 2b00 subi r3, 1 + 1ee8: 07ee br 0x1ec4 // 1ec4 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1eea: 3114 movi r1, 20 + 1eec: 106b lrw r3, 0xff100000 // 1f18 + 1eee: 07fc br 0x1ee6 // 1ee6 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ef0: 33f1 movi r3, 241 + 1ef2: 3118 movi r1, 24 + 1ef4: 4378 lsli r3, r3, 24 + 1ef6: 07f8 br 0x1ee6 // 1ee6 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1ef8: 311c movi r1, 28 + 1efa: 1069 lrw r3, 0xfffffff // 1f1c + 1efc: 07e4 br 0x1ec4 // 1ec4 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1efe: 3300 movi r3, 0 + 1f00: 3100 movi r1, 0 + 1f02: 2b0f subi r3, 16 + 1f04: 07e0 br 0x1ec4 // 1ec4 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1f0a: 0000 bkpt + 1f0c: fffff0ff .long 0xfffff0ff + 1f10: ffff0fff .long 0xffff0fff + 1f14: fff10000 .long 0xfff10000 + 1f18: ff100000 .long 0xff100000 + 1f1c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f20 : +//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)); + 1f20: 4121 lsli r1, r1, 1 + 1f22: 3203 movi r2, 3 + 1f24: 9068 ld.w r3, (r0, 0x20) + 1f26: 7084 lsl r2, r1 + 1f28: 68c9 andn r3, r2 + 1f2a: 3201 movi r2, 1 + 1f2c: 7084 lsl r2, r1 + 1f2e: 6cc8 or r3, r2 + 1f30: b068 st.w r3, (r0, 0x20) +} + 1f32: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f34 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f34: 4121 lsli r1, r1, 1 + 1f36: 3301 movi r3, 1 + 1f38: 9049 ld.w r2, (r0, 0x24) + 1f3a: 70c4 lsl r3, r1 + 1f3c: 6cc8 or r3, r2 + 1f3e: b069 st.w r3, (r0, 0x24) +} + 1f40: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f44 : +//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) +{ + 1f44: 14c1 push r4 + 1f46: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f48: 3a0f cmphsi r2, 16 + 1f4a: 084f bt 0x1fe8 // 1fe8 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f4c: 6ccb mov r3, r2 + 1f4e: 3b83 bclri r3, 3 + 1f50: 3b40 cmpnei r3, 0 + 1f52: 0813 bt 0x1f78 // 1f78 + { + R_data_temp=0xfffffff0; + 1f54: 2b0f subi r3, 16 + 1f56: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f58: 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) + 1f5a: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f5c: dc6e0003 st.b r3, (r14, 0x3) + 1f60: 1176 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x<8) + 1f62: 0c38 bf 0x1fd2 // 1fd2 + { + 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)) + 1f78: 3b41 cmpnei r3, 1 + 1f7a: 0806 bt 0x1f86 // 1f86 + R_data_temp=0xffffff0f; + 1f7c: 3300 movi r3, 0 + 1f7e: 2bf0 subi r3, 241 + 1f80: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f82: 3304 movi r3, 4 + 1f84: 07eb br 0x1f5a // 1f5a + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f86: 3b42 cmpnei r3, 2 + 1f88: 0805 bt 0x1f92 // 1f92 + R_data_temp=0xfffff0ff; + 1f8a: 116d lrw r3, 0xfffff0ff // 203c + 1f8c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f8e: 3308 movi r3, 8 + 1f90: 07e5 br 0x1f5a // 1f5a + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f92: 3b43 cmpnei r3, 3 + 1f94: 0805 bt 0x1f9e // 1f9e + R_data_temp=0xffff0fff; + 1f96: 116b lrw r3, 0xffff0fff // 2040 + 1f98: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f9a: 330c movi r3, 12 + 1f9c: 07df br 0x1f5a // 1f5a + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f9e: 3b44 cmpnei r3, 4 + 1fa0: 0806 bt 0x1fac // 1fac + R_data_temp=0xfff0ffff; + 1fa2: 1169 lrw r3, 0xfff10000 // 2044 + 1fa4: 2b00 subi r3, 1 + 1fa6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1fa8: 3310 movi r3, 16 + 1faa: 07d8 br 0x1f5a // 1f5a + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1fac: 3b45 cmpnei r3, 5 + 1fae: 0806 bt 0x1fba // 1fba + R_data_temp=0xff0fffff; + 1fb0: 1166 lrw r3, 0xff100000 // 2048 + 1fb2: 2b00 subi r3, 1 + 1fb4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1fb6: 3314 movi r3, 20 + 1fb8: 07d1 br 0x1f5a // 1f5a + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1fba: 3b46 cmpnei r3, 6 + 1fbc: 0807 bt 0x1fca // 1fca + R_data_temp=0xf0ffffff; + 1fbe: 33f1 movi r3, 241 + 1fc0: 4378 lsli r3, r3, 24 + 1fc2: 2b00 subi r3, 1 + 1fc4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1fc6: 3318 movi r3, 24 + 1fc8: 07c9 br 0x1f5a // 1f5a + R_data_temp=0x0fffffff; + 1fca: 1161 lrw r3, 0xfffffff // 204c + 1fcc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1fce: 331c movi r3, 28 + 1fd0: 07c5 br 0x1f5a // 1f5a + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fe4: 1402 addi r14, r14, 8 + 1fe6: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fe8: 3a13 cmphsi r2, 20 + 1fea: 0bfd bt 0x1fe4 // 1fe4 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fec: 3840 cmpnei r0, 0 + 1fee: 0814 bt 0x2016 // 2016 + 1ff0: 3300 movi r3, 0 + 1ff2: 2b0f subi r3, 16 + 1ff4: 60c8 addu r3, r2 + 1ff6: 3b01 cmphsi r3, 2 + 1ff8: 0bf6 bt 0x1fe4 // 1fe4 + if(Selete_EXI_x==16) + 1ffa: 3a50 cmpnei r2, 16 + 1ffc: 106f lrw r3, 0x20000044 // 2038 + 1ffe: 0806 bt 0x200a // 200a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2000: 9340 ld.w r2, (r3, 0x0) + 2002: 9262 ld.w r3, (r2, 0x8) + 2004: 6c4c or r1, r3 + 2006: b222 st.w r1, (r2, 0x8) + 2008: 07ee br 0x1fe4 // 1fe4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 200a: 9360 ld.w r3, (r3, 0x0) + 200c: 9342 ld.w r2, (r3, 0x8) + 200e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2010: 6c48 or r1, r2 + 2012: b322 st.w r1, (r3, 0x8) +} + 2014: 07e8 br 0x1fe4 // 1fe4 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 2016: 3842 cmpnei r0, 2 + 2018: 0be6 bt 0x1fe4 // 1fe4 + 201a: 3300 movi r3, 0 + 201c: 2b11 subi r3, 18 + 201e: 60c8 addu r3, r2 + 2020: 3b01 cmphsi r3, 2 + 2022: 0be1 bt 0x1fe4 // 1fe4 + 2024: 1065 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x==18) + 2026: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2028: 9360 ld.w r3, (r3, 0x0) + 202a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 202c: 0803 bt 0x2032 // 2032 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 202e: 4128 lsli r1, r1, 8 + 2030: 07f0 br 0x2010 // 2010 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2032: 412c lsli r1, r1, 12 + 2034: 07ee br 0x2010 // 2010 + 2036: 0000 bkpt + 2038: 20000044 .long 0x20000044 + 203c: fffff0ff .long 0xfffff0ff + 2040: ffff0fff .long 0xffff0fff + 2044: fff10000 .long 0xfff10000 + 2048: ff100000 .long 0xff100000 + 204c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOB0_EXI_Init: + +00002050 : + 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) +{ + 2050: 14d0 push r15 + switch (EXI_IO) + 2052: 3805 cmphsi r0, 6 + 2054: 080d bt 0x206e // 206e + 2056: 1079 lrw r3, 0x20000048 // 20b8 + 2058: e3fff652 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 205c: 18100a03 .long 0x18100a03 + 2060: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2062: 9340 ld.w r2, (r3, 0x0) + 2064: 9260 ld.w r3, (r2, 0x0) + 2066: 310f movi r1, 15 + 2068: 68c5 andn r3, r1 + 206a: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 206c: b260 st.w r3, (r2, 0x0) + 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; + } +} + 206e: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2070: 9340 ld.w r2, (r3, 0x0) + 2072: 9260 ld.w r3, (r2, 0x0) + 2074: 31f0 movi r1, 240 + 2076: 68c5 andn r3, r1 + 2078: 3ba4 bseti r3, 4 + 207a: 07f9 br 0x206c // 206c + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 207c: 9320 ld.w r1, (r3, 0x0) + 207e: 32f0 movi r2, 240 + 2080: 9160 ld.w r3, (r1, 0x0) + 2082: 4244 lsli r2, r2, 4 + 2084: 68c9 andn r3, r2 + 2086: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2088: b160 st.w r3, (r1, 0x0) +} + 208a: 07f2 br 0x206e // 206e + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 208c: 9320 ld.w r1, (r3, 0x0) + 208e: 32f0 movi r2, 240 + 2090: 9160 ld.w r3, (r1, 0x0) + 2092: 4248 lsli r2, r2, 8 + 2094: 68c9 andn r3, r2 + 2096: 3bac bseti r3, 12 + 2098: 07f8 br 0x2088 // 2088 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 209a: 9320 ld.w r1, (r3, 0x0) + 209c: 32f0 movi r2, 240 + 209e: 9160 ld.w r3, (r1, 0x0) + 20a0: 424c lsli r2, r2, 12 + 20a2: 68c9 andn r3, r2 + 20a4: 3bb0 bseti r3, 16 + 20a6: 07f1 br 0x2088 // 2088 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 20a8: 9320 ld.w r1, (r3, 0x0) + 20aa: 32f0 movi r2, 240 + 20ac: 9160 ld.w r3, (r1, 0x0) + 20ae: 4250 lsli r2, r2, 16 + 20b0: 68c9 andn r3, r2 + 20b2: 3bb4 bseti r3, 20 + 20b4: 07ea br 0x2088 // 2088 + 20b6: 0000 bkpt + 20b8: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +000020bc : +//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; + 20cc: 9045 ld.w r2, (r0, 0x14) + 20ce: 3301 movi r3, 1 + 20d0: 7085 lsr r2, r1 + 20d2: 688c and r2, r3 + { + if (dat==1) + 20d4: 3a40 cmpnei r2, 0 + 20d6: 70c4 lsl r3, r1 + 20d8: 0c03 bf 0x20de // 20de + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000020e2 : +/*************************************************************/ +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); + 20f4: 1064 lrw r3, 0x20000014 // 2104 + 20f6: 9340 ld.w r2, (r3, 0x0) + 20f8: 9261 ld.w r3, (r2, 0x4) + 20fa: 3bac bseti r3, 12 + 20fc: 3bae bseti r3, 14 + 20fe: b261 st.w r3, (r2, 0x4) +} + 2100: 783c jmp r15 + 2102: 0000 bkpt + 2104: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002108 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2108: 1063 lrw r3, 0x20000010 // 2114 + 210a: 9360 ld.w r3, (r3, 0x0) + 210c: 9340 ld.w r2, (r3, 0x0) + 210e: 6c08 or r0, r2 + 2110: b300 st.w r0, (r3, 0x0) +} + 2112: 783c jmp r15 + 2114: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002118 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2118: 3300 movi r3, 0 + 211a: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 211c: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 211e: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2120: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2122: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2124: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2126: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2128: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 212a: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 212c: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 212e: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 2130: b06d st.w r3, (r0, 0x34) +} + 2132: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002134 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2134: 9060 ld.w r3, (r0, 0x0) + 2136: 3ba0 bseti r3, 0 + 2138: b060 st.w r3, (r0, 0x0) +} + 213a: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 213c: 9060 ld.w r3, (r0, 0x0) + 213e: 3bac bseti r3, 12 + 2140: 3bae bseti r3, 14 + 2142: b060 st.w r3, (r0, 0x0) +} + 2144: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002146 : +//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) +{ + 2146: 14c3 push r4-r6 + 2148: 98a4 ld.w r5, (r14, 0x10) + 214a: 6d97 mov r6, r5 + 214c: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 214e: 6d18 or r4, r6 + 2150: 6cd0 or r3, r4 + 2152: 90a1 ld.w r5, (r0, 0x4) + 2154: 6c4c or r1, r3 + 2156: 6c54 or r1, r5 + 2158: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 215a: b042 st.w r2, (r0, 0x8) +} + 215c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000215e : +//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) +{ + 215e: 14c4 push r4-r7 + 2160: 1421 subi r14, r14, 4 + 2162: 9885 ld.w r4, (r14, 0x14) + 2164: 6dd3 mov r7, r4 + 2166: 9886 ld.w r4, (r14, 0x18) + 2168: b880 st.w r4, (r14, 0x0) + 216a: 9887 ld.w r4, (r14, 0x1c) + 216c: 6d93 mov r6, r4 + 216e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 2170: 6d58 or r5, r6 + 2172: 98c0 ld.w r6, (r14, 0x0) + 2174: 6d58 or r5, r6 + 2176: 6d5c or r5, r7 + 2178: 6cd4 or r3, r5 + 217a: 6c8c or r2, r3 + 217c: 9081 ld.w r4, (r0, 0x4) + 217e: 6c48 or r1, r2 + 2180: 6d04 or r4, r1 + 2182: 6d9f mov r6, r7 + 2184: b081 st.w r4, (r0, 0x4) +} + 2186: 1401 addi r14, r14, 4 + 2188: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000218a : +//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; + 218a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 218c: b044 st.w r2, (r0, 0x10) +} + 218e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00002190 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 2190: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 2192: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2194: 0c04 bf 0x219c // 219c + BTx->IMCR |= BT_IMSCR_X; + 2196: 6c8c or r2, r3 + 2198: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 219a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 219c: 68c9 andn r3, r2 + 219e: b06b st.w r3, (r0, 0x2c) +} + 21a0: 07fd br 0x219a // 219a + +Disassembly of section .text.BT1_INT_ENABLE: + +000021a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 21a4: 3380 movi r3, 128 + 21a6: 4376 lsli r3, r3, 22 + 21a8: 1042 lrw r2, 0xe000e100 // 21b0 + 21aa: b260 st.w r3, (r2, 0x0) +} + 21ac: 783c jmp r15 + 21ae: 0000 bkpt + 21b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +000021b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 21b4: 1065 lrw r3, 0x20000040 // 21c8 + 21b6: 3200 movi r2, 0 + 21b8: 9360 ld.w r3, (r3, 0x0) + 21ba: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 21bc: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 21be: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 21c0: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 21c2: b344 st.w r2, (r3, 0x10) +} + 21c4: 783c jmp r15 + 21c6: 0000 bkpt + 21c8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000021cc : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 21cc: 1065 lrw r3, 0x2000003c // 21e0 + 21ce: 3200 movi r2, 0 + 21d0: 9360 ld.w r3, (r3, 0x0) + 21d2: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 21d4: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 21d6: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 21d8: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 21da: b344 st.w r2, (r3, 0x10) +} + 21dc: 783c jmp r15 + 21de: 0000 bkpt + 21e0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000021e4 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 21e4: 1065 lrw r3, 0x20000038 // 21f8 + 21e6: 3200 movi r2, 0 + 21e8: 9360 ld.w r3, (r3, 0x0) + 21ea: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 21ec: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 21ee: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 21f0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 21f2: b344 st.w r2, (r3, 0x10) +} + 21f4: 783c jmp r15 + 21f6: 0000 bkpt + 21f8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART1_Int_Enable: + +000021fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 21fc: 1065 lrw r3, 0x2000003c // 2210 + 21fe: 320f movi r2, 15 + 2200: 9360 ld.w r3, (r3, 0x0) + 2202: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2204: 3380 movi r3, 128 + 2206: 4367 lsli r3, r3, 7 + 2208: 1043 lrw r2, 0xe000e100 // 2214 + 220a: b260 st.w r3, (r2, 0x0) +} + 220c: 783c jmp r15 + 220e: 0000 bkpt + 2210: 2000003c .long 0x2000003c + 2214: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2218: 1065 lrw r3, 0x20000038 // 222c + 221a: 320f movi r2, 15 + 221c: 9360 ld.w r3, (r3, 0x0) + 221e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2220: 3380 movi r3, 128 + 2222: 4368 lsli r3, r3, 8 + 2224: 1043 lrw r2, 0xe000e100 // 2230 + 2226: b260 st.w r3, (r2, 0x0) +} + 2228: 783c jmp r15 + 222a: 0000 bkpt + 222c: 20000038 .long 0x20000038 + 2230: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002234 : +//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) + 2234: 3840 cmpnei r0, 0 + 2236: 0821 bt 0x2278 // 2278 + { + if(UART_IO_G==0) + 2238: 3940 cmpnei r1, 0 + 223a: 080a bt 0x224e // 224e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 223c: 1177 lrw r3, 0x2000004c // 2318 + 223e: 31ff movi r1, 255 + 2240: 9340 ld.w r2, (r3, 0x0) + 2242: 9260 ld.w r3, (r2, 0x0) + 2244: 68c5 andn r3, r1 + 2246: 3ba2 bseti r3, 2 + 2248: 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 + 224a: b260 st.w r3, (r2, 0x0) + 224c: 0415 br 0x2276 // 2276 + else if(UART_IO_G==1) + 224e: 3941 cmpnei r1, 1 + 2250: 0813 bt 0x2276 // 2276 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2252: 1172 lrw r3, 0x2000004c // 2318 + 2254: 31f0 movi r1, 240 + 2256: 9340 ld.w r2, (r3, 0x0) + 2258: 9260 ld.w r3, (r2, 0x0) + 225a: 4130 lsli r1, r1, 16 + 225c: 68c5 andn r3, r1 + 225e: 31e0 movi r1, 224 + 2260: 412f lsli r1, r1, 15 + 2262: 6cc4 or r3, r1 + 2264: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2266: 31f0 movi r1, 240 + 2268: 9261 ld.w r3, (r2, 0x4) + 226a: 412c lsli r1, r1, 12 + 226c: 68c5 andn r3, r1 + 226e: 31e0 movi r1, 224 + 2270: 412b lsli r1, r1, 11 + 2272: 6cc4 or r3, r1 + 2274: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2276: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2278: 3841 cmpnei r0, 1 + 227a: 082d bt 0x22d4 // 22d4 + if(UART_IO_G==0) + 227c: 3940 cmpnei r1, 0 + 227e: 0814 bt 0x22a6 // 22a6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2280: 1167 lrw r3, 0x20000048 // 231c + 2282: 310f movi r1, 15 + 2284: 9340 ld.w r2, (r3, 0x0) + 2286: 9260 ld.w r3, (r2, 0x0) + 2288: 68c5 andn r3, r1 + 228a: 3107 movi r1, 7 + 228c: 6cc4 or r3, r1 + 228e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2290: 32f0 movi r2, 240 + 2292: 1162 lrw r3, 0x2000004c // 2318 + 2294: 4250 lsli r2, r2, 16 + 2296: 9320 ld.w r1, (r3, 0x0) + 2298: 9161 ld.w r3, (r1, 0x4) + 229a: 68c9 andn r3, r2 + 229c: 32e0 movi r2, 224 + 229e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 22a0: 6cc8 or r3, r2 + 22a2: b161 st.w r3, (r1, 0x4) + 22a4: 07e9 br 0x2276 // 2276 + else if(UART_IO_G==1) + 22a6: 3941 cmpnei r1, 1 + 22a8: 080c bt 0x22c0 // 22c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 22aa: 107c lrw r3, 0x2000004c // 2318 + 22ac: 32ff movi r2, 255 + 22ae: 9320 ld.w r1, (r3, 0x0) + 22b0: 424c lsli r2, r2, 12 + 22b2: 9160 ld.w r3, (r1, 0x0) + 22b4: 68c9 andn r3, r2 + 22b6: 32ee movi r2, 238 + 22b8: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 22ba: 6cc8 or r3, r2 + 22bc: b160 st.w r3, (r1, 0x0) +} + 22be: 07dc br 0x2276 // 2276 + else if(UART_IO_G==2) + 22c0: 3942 cmpnei r1, 2 + 22c2: 0bda bt 0x2276 // 2276 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 22c4: 1075 lrw r3, 0x2000004c // 2318 + 22c6: 32ee movi r2, 238 + 22c8: 9320 ld.w r1, (r3, 0x0) + 22ca: 9161 ld.w r3, (r1, 0x4) + 22cc: 4368 lsli r3, r3, 8 + 22ce: 4b68 lsri r3, r3, 8 + 22d0: 4257 lsli r2, r2, 23 + 22d2: 07e7 br 0x22a0 // 22a0 + if (IO_UART_NUM==IO_UART2) + 22d4: 3842 cmpnei r0, 2 + 22d6: 0bd0 bt 0x2276 // 2276 + if(UART_IO_G==0) + 22d8: 3940 cmpnei r1, 0 + 22da: 0809 bt 0x22ec // 22ec + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 22dc: 106f lrw r3, 0x2000004c // 2318 + 22de: 31ff movi r1, 255 + 22e0: 9340 ld.w r2, (r3, 0x0) + 22e2: 9260 ld.w r3, (r2, 0x0) + 22e4: 68c5 andn r3, r1 + 22e6: 3177 movi r1, 119 + 22e8: 6cc4 or r3, r1 + 22ea: 07b0 br 0x224a // 224a + else if(UART_IO_G==1) + 22ec: 3941 cmpnei r1, 1 + 22ee: 0809 bt 0x2300 // 2300 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 22f0: 106a lrw r3, 0x2000004c // 2318 + 22f2: 32ee movi r2, 238 + 22f4: 9320 ld.w r1, (r3, 0x0) + 22f6: 9160 ld.w r3, (r1, 0x0) + 22f8: 4368 lsli r3, r3, 8 + 22fa: 4b68 lsri r3, r3, 8 + 22fc: 4257 lsli r2, r2, 23 + 22fe: 07de br 0x22ba // 22ba + else if(UART_IO_G==2) + 2300: 3942 cmpnei r1, 2 + 2302: 0bba bt 0x2276 // 2276 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2304: 1066 lrw r3, 0x20000048 // 231c + 2306: 32ff movi r2, 255 + 2308: 9320 ld.w r1, (r3, 0x0) + 230a: 4250 lsli r2, r2, 16 + 230c: 9160 ld.w r3, (r1, 0x0) + 230e: 68c9 andn r3, r2 + 2310: 32cc movi r2, 204 + 2312: 424f lsli r2, r2, 15 + 2314: 07d3 br 0x22ba // 22ba + 2316: 0000 bkpt + 2318: 2000004c .long 0x2000004c + 231c: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002320 : +//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); + 2320: 1063 lrw r3, 0x8000f // 232c + 2322: 6c8c or r2, r3 + 2324: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2326: b024 st.w r1, (r0, 0x10) +} + 2328: 783c jmp r15 + 232a: 0000 bkpt + 232c: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002330 : +//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) +{ + 2330: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2332: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2334: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2336: 5b85 subu r4, r3, r1 + 2338: 6490 cmphs r4, r2 + 233a: 0c02 bf 0x233e // 233e + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 233c: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 233e: 8380 ld.b r4, (r3, 0x0) + 2340: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 2342: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2344: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2346: 3c40 cmpnei r4, 0 + 2348: 0bfd bt 0x2342 // 2342 + 234a: 2300 addi r3, 1 + 234c: 07f5 br 0x2336 // 2336 + +Disassembly of section .text.EPT_Stop: + +00002350 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2350: 1068 lrw r3, 0x20000020 // 2370 + 2352: 3280 movi r2, 128 + 2354: 9360 ld.w r3, (r3, 0x0) + 2356: 608c addu r2, r3 + 2358: 1027 lrw r1, 0xa55ac73a // 2374 + 235a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 235c: 9341 ld.w r2, (r3, 0x4) + 235e: 31fe movi r1, 254 + 2360: 6884 and r2, r1 + 2362: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2364: 3101 movi r1, 1 + 2366: 9341 ld.w r2, (r3, 0x4) + 2368: 6884 and r2, r1 + 236a: 3a40 cmpnei r2, 0 + 236c: 0bfd bt 0x2366 // 2366 +} + 236e: 783c jmp r15 + 2370: 20000020 .long 0x20000020 + 2374: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00002378 : + 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) +{ + 2378: 14c4 push r4-r7 + 237a: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 237c: 1165 lrw r3, 0x20000060 // 2410 + 237e: 1186 lrw r4, 0x5a5a5a5a // 2414 + 2380: 9360 ld.w r3, (r3, 0x0) + 2382: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2384: 3407 movi r4, 7 + 2386: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2388: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 238a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 238c: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 238e: 9384 ld.w r4, (r3, 0x10) + 2390: 3c40 cmpnei r4, 0 + 2392: 0bfe bt 0x238e // 238e + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2394: 2102 addi r1, 3 + 2396: 4922 lsri r1, r1, 2 + 2398: 4122 lsli r1, r1, 2 + 239a: 6048 addu r1, r2 + 239c: b820 st.w r1, (r14, 0x0) + 239e: 5829 subu r1, r0, r2 + 23a0: b821 st.w r1, (r14, 0x4) + 23a2: 9820 ld.w r1, (r14, 0x0) + 23a4: 644a cmpne r2, r1 + 23a6: 0826 bt 0x23f2 // 23f2 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 23a8: 3106 movi r1, 6 + SetUserKey; + 23aa: 105b lrw r2, 0x5a5a5a5a // 2414 + 23ac: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 23ae: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 23b0: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 23b2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23b4: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 23b6: 9324 ld.w r1, (r3, 0x10) + 23b8: 3940 cmpnei r1, 0 + 23ba: 0bfe bt 0x23b6 // 23b6 + //Perform pre-programming 4 + SetUserKey; + 23bc: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 23be: 3201 movi r2, 1 + 23c0: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 23c2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23c4: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 23c6: 934a ld.w r2, (r3, 0x28) + 23c8: 3a44 cmpnei r2, 4 + 23ca: 0bfe bt 0x23c6 // 23c6 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 23cc: 3102 movi r1, 2 + SetUserKey; + 23ce: 1052 lrw r2, 0x5a5a5a5a // 2414 + 23d0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 23d2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 23d4: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 23d6: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23d8: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 23da: 932a ld.w r1, (r3, 0x28) + 23dc: 3941 cmpnei r1, 1 + 23de: 0bfe bt 0x23da // 23da + //Write page cache data to flash memory 6 + SetUserKey; + 23e0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 23e2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 23e4: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23e6: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 23e8: 934a ld.w r2, (r3, 0x28) + 23ea: 3a42 cmpnei r2, 2 + 23ec: 0bfe bt 0x23e8 // 23e8 +} + 23ee: 1402 addi r14, r14, 8 + 23f0: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 23f2: 82e0 ld.b r7, (r2, 0x0) + 23f4: 8281 ld.b r4, (r2, 0x1) + 23f6: 4488 lsli r4, r4, 8 + 23f8: 8222 ld.b r1, (r2, 0x2) + 23fa: 611c addu r4, r7 + 23fc: 82a3 ld.b r5, (r2, 0x3) + 23fe: 4130 lsli r1, r1, 16 + 2400: 98c1 ld.w r6, (r14, 0x4) + 2402: 6050 addu r1, r4 + 2404: 45b8 lsli r5, r5, 24 + 2406: 6188 addu r6, r2 + 2408: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 240a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 240c: 2203 addi r2, 4 + 240e: 07ca br 0x23a2 // 23a2 + 2410: 20000060 .long 0x20000060 + 2414: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002418 : +//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) +{ + 2418: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2424: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2426: 3b40 cmpnei r3, 0 + 2428: 0c06 bf 0x2434 // 2434 + 242a: 6d0f mov r4, r3 + 242c: 6914 and r4, r5 + 242e: 3c40 cmpnei r4, 0 + 2430: 0802 bt 0x2434 // 2434 + RdStartAdd +=4; + 2432: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2434: 6d0f mov r4, r3 + 2436: 6914 and r4, r5 + 2438: 6100 addu r4, r0 + 243a: 8480 ld.b r4, (r4, 0x0) + 243c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +00002444
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2444: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2446: e00000a5 bsr 0x2590 // 2590 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_Dip.DIP_addr); + 244a: 106b lrw r3, 0x20000448 // 2474 + 244c: 8346 ld.b r2, (r3, 0x6) + 244e: 102b lrw r1, 0x5eb8 // 2478 + 2450: 3000 movi r0, 0 + 2452: e000093d bsr 0x36cc // 36cc + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2456: e3fffc07 bsr 0x1c64 // 1c64 + + UART1_TASK(); + 245a: e0000713 bsr 0x3280 // 3280 + + UART2_TASK(); + 245e: e0000769 bsr 0x3330 // 3330 + + DIP_ScanTask(); + 2462: e00010b3 bsr 0x45c8 // 45c8 + + TemCtrl_Pro(); + 2466: e0000c0f bsr 0x3c84 // 3c84 + + DisPlay_Task(); + 246a: e0000acf bsr 0x3a08 // 3a08 + + BUS485Send_Task(); + 246e: e00008c7 bsr 0x35fc // 35fc + 2472: 07f2 br 0x2456 // 2456 + 2474: 20000448 .long 0x20000448 + 2478: 00005eb8 .long 0x00005eb8 + +Disassembly of section .text.delay_nms: + +0000247c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 247c: 14d0 push r15 + 247e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2480: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2482: 3300 movi r3, 0 + j = 50* t; + 2484: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2486: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2488: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 248a: b860 st.w r3, (r14, 0x0) + 248c: 9840 ld.w r2, (r14, 0x0) + 248e: 9861 ld.w r3, (r14, 0x4) + 2490: 64c8 cmphs r2, r3 + 2492: 0c03 bf 0x2498 // 2498 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2494: 1403 addi r14, r14, 12 + 2496: 1490 pop r15 + k++; + 2498: 9862 ld.w r3, (r14, 0x8) + 249a: 2300 addi r3, 1 + 249c: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 249e: e3fffbe3 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 24a2: 9860 ld.w r3, (r14, 0x0) + 24a4: 2300 addi r3, 1 + 24a6: 07f2 br 0x248a // 248a + +Disassembly of section .text.delay_nus: + +000024a8 : +void delay_nus(unsigned int t) +{ + 24a8: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 24aa: 3300 movi r3, 0 + 24ac: b862 st.w r3, (r14, 0x8) + j = 1* t; + 24ae: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 24b0: b860 st.w r3, (r14, 0x0) + 24b2: 9840 ld.w r2, (r14, 0x0) + 24b4: 9861 ld.w r3, (r14, 0x4) + 24b6: 64c8 cmphs r2, r3 + 24b8: 0c03 bf 0x24be // 24be + { + k++; + } +} + 24ba: 1403 addi r14, r14, 12 + 24bc: 783c jmp r15 + k++; + 24be: 9862 ld.w r3, (r14, 0x8) + 24c0: 2300 addi r3, 1 + 24c2: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 24c4: 9860 ld.w r3, (r14, 0x0) + 24c6: 2300 addi r3, 1 + 24c8: 07f4 br 0x24b0 // 24b0 + +Disassembly of section .text.BT_CONFIG: + +000024cc : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 24cc: 14d2 push r4-r5, r15 + 24ce: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 24d0: 1095 lrw r4, 0x20000008 // 2524 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24d2: 3500 movi r5, 0 + BT_DeInit(BT1); + 24d4: 9400 ld.w r0, (r4, 0x0) + 24d6: e3fffe21 bsr 0x2118 // 2118 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24da: 9400 ld.w r0, (r4, 0x0) + 24dc: b8a1 st.w r5, (r14, 0x4) + 24de: b8a0 st.w r5, (r14, 0x0) + 24e0: 3308 movi r3, 8 + 24e2: 3200 movi r2, 0 + 24e4: 3101 movi r1, 1 + 24e6: e3fffe30 bsr 0x2146 // 2146 + 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); + 24ea: 3380 movi r3, 128 + 24ec: 4363 lsli r3, r3, 3 + 24ee: b861 st.w r3, (r14, 0x4) + 24f0: 9400 ld.w r0, (r4, 0x0) + 24f2: 3300 movi r3, 0 + 24f4: b8a3 st.w r5, (r14, 0xc) + 24f6: b8a2 st.w r5, (r14, 0x8) + 24f8: b8a0 st.w r5, (r14, 0x0) + 24fa: 3200 movi r2, 0 + 24fc: 3180 movi r1, 128 + 24fe: e3fffe30 bsr 0x215e // 215e + BT_Period_CMP_Write(BT1,4780,1); + 2502: 3201 movi r2, 1 + 2504: 1029 lrw r1, 0x12ac // 2528 + 2506: 9400 ld.w r0, (r4, 0x0) + 2508: e3fffe41 bsr 0x218a // 218a + BT_Start(BT1); + 250c: 9400 ld.w r0, (r4, 0x0) + 250e: e3fffe13 bsr 0x2134 // 2134 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2512: 9400 ld.w r0, (r4, 0x0) + 2514: 3202 movi r2, 2 + 2516: 3101 movi r1, 1 + 2518: e3fffe3c bsr 0x2190 // 2190 + BT1_INT_ENABLE(); + 251c: e3fffe44 bsr 0x21a4 // 21a4 + +} + 2520: 1404 addi r14, r14, 16 + 2522: 1492 pop r4-r5, r15 + 2524: 20000008 .long 0x20000008 + 2528: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +0000252c : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 252c: 14d0 push r15 + 252e: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2530: e3fffae6 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2534: 3101 movi r1, 1 + 2536: 3001 movi r0, 1 + 2538: e3fffb08 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 + 253c: 3000 movi r0, 0 + 253e: e3fffb61 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 + 2542: 3180 movi r1, 128 + 2544: 3308 movi r3, 8 + 2546: 3200 movi r2, 0 + 2548: 4121 lsli r1, r1, 1 + 254a: 3002 movi r0, 2 + 254c: e3fffb16 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 + 2550: 3080 movi r0, 128 + 2552: 3118 movi r1, 24 + 2554: 4002 lsli r0, r0, 2 + 2556: e3fffb91 bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 255a: 3001 movi r0, 1 + 255c: e3fffb66 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2560: e3fffb82 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2564: e3fffbb4 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 + 2568: 3340 movi r3, 64 + 256a: b860 st.w r3, (r14, 0x0) + 256c: 31c0 movi r1, 192 + 256e: 3380 movi r3, 128 + 2570: 4364 lsli r3, r3, 4 + 2572: 3200 movi r2, 0 + 2574: 4123 lsli r1, r1, 3 + 2576: 3000 movi r0, 0 + 2578: e3fffb8c bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 257c: e3fffb9a bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2580: e3fffbf8 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 + 2584: 3000 movi r0, 0 + 2586: e0001ab5 bsr 0x5af0 // 5af0 + +} + 258a: 1401 addi r14, r14, 4 + 258c: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002590 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2590: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2592: 107f lrw r3, 0x2000005c // 260c + Sys_RSR = 0x00000000; + 2594: 105f lrw r2, 0x200000ac // 2610 + 2596: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2598: 9360 ld.w r3, (r3, 0x0) + 259a: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 259c: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 259e: 600c addu r0, r3 + 25a0: 9004 ld.w r0, (r0, 0x10) + 25a2: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 25a4: 105c lrw r2, 0x200000a8 // 2614 + 25a6: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 25a8: 3180 movi r1, 128 + 25aa: 4121 lsli r1, r1, 1 + 25ac: 604c addu r1, r3 + 25ae: 9120 ld.w r1, (r1, 0x0) + 25b0: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 25b2: 105a lrw r2, 0xfffffff // 2618 + 25b4: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 25b6: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 25b8: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 25ba: 934c ld.w r2, (r3, 0x30) + 25bc: 6884 and r2, r1 + 25be: 3a40 cmpnei r2, 0 + 25c0: 0ffd bf 0x25ba // 25ba +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 25c2: e3ffffb5 bsr 0x252c // 252c + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 25c6: e0000573 bsr 0x30ac // 30ac + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 25ca: e3fffbdf bsr 0x1d88 // 1d88 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 25ce: 3101 movi r1, 1 + 25d0: 300f movi r0, 15 + 25d2: e3fffbed bsr 0x1dac // 1dac + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 25d6: 3101 movi r1, 1 + 25d8: 300e movi r0, 14 + 25da: e3fffbe9 bsr 0x1dac // 1dac + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 25de: 3101 movi r1, 1 + 25e0: 3016 movi r0, 22 + 25e2: e3fffbe5 bsr 0x1dac // 1dac + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 25e6: e3fffbfb bsr 0x1ddc // 1ddc +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 25ea: e3ffff71 bsr 0x24cc // 24cc + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 25ee: 102c lrw r1, 0x4448 // 261c + 25f0: 3002 movi r0, 2 + 25f2: e0000563 bsr 0x30b8 // 30b8 + UARTx_Init(UART_1,Ctrller_RecData_Processing); //通讯串口 + 25f6: 102b lrw r1, 0x3e44 // 2620 + 25f8: 3001 movi r0, 1 + 25fa: e000055f bsr 0x30b8 // 30b8 + + EEPROM_Init(); + 25fe: e00008fd bsr 0x37f8 // 37f8 + + DIP_Switch_Init(); + 2602: e0000f9d bsr 0x453c // 453c + + TemCtrl_Init(); + 2606: e0000923 bsr 0x384c // 384c + +} + 260a: 1490 pop r15 + 260c: 2000005c .long 0x2000005c + 2610: 200000ac .long 0x200000ac + 2614: 200000a8 .long 0x200000a8 + 2618: 0fffffff .long 0x0fffffff + 261c: 00004448 .long 0x00004448 + 2620: 00003e44 .long 0x00003e44 + +Disassembly of section .text.SYSCONIntHandler: + +00002624 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2624: 1460 nie + 2626: 1462 ipush + // ISR content ... + nop; + 2628: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 262a: 117a lrw r3, 0x2000005c // 2710 + 262c: 3280 movi r2, 128 + 262e: 9360 ld.w r3, (r3, 0x0) + 2630: 60c8 addu r3, r2 + 2632: 9323 ld.w r1, (r3, 0xc) + 2634: 3001 movi r0, 1 + 2636: 6840 and r1, r0 + 2638: 3940 cmpnei r1, 0 + 263a: 0c04 bf 0x2642 // 2642 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 263c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 263e: 1463 ipop + 2640: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2642: 9323 ld.w r1, (r3, 0xc) + 2644: 3002 movi r0, 2 + 2646: 6840 and r1, r0 + 2648: 3940 cmpnei r1, 0 + 264a: 0bf9 bt 0x263c // 263c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 264c: 9323 ld.w r1, (r3, 0xc) + 264e: 3008 movi r0, 8 + 2650: 6840 and r1, r0 + 2652: 3940 cmpnei r1, 0 + 2654: 0bf4 bt 0x263c // 263c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2656: 9323 ld.w r1, (r3, 0xc) + 2658: 3010 movi r0, 16 + 265a: 6840 and r1, r0 + 265c: 3940 cmpnei r1, 0 + 265e: 0bef bt 0x263c // 263c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2660: 9323 ld.w r1, (r3, 0xc) + 2662: 6848 and r1, r2 + 2664: 3940 cmpnei r1, 0 + 2666: 0c03 bf 0x266c // 266c + SYSCON->ICR = CMD_ERR_ST; + 2668: b341 st.w r2, (r3, 0x4) +} + 266a: 07ea br 0x263e // 263e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 266c: 3280 movi r2, 128 + 266e: 9323 ld.w r1, (r3, 0xc) + 2670: 4241 lsli r2, r2, 1 + 2672: 6848 and r1, r2 + 2674: 3940 cmpnei r1, 0 + 2676: 0bf9 bt 0x2668 // 2668 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2678: 3280 movi r2, 128 + 267a: 9323 ld.w r1, (r3, 0xc) + 267c: 4242 lsli r2, r2, 2 + 267e: 6848 and r1, r2 + 2680: 3940 cmpnei r1, 0 + 2682: 0bf3 bt 0x2668 // 2668 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2684: 3280 movi r2, 128 + 2686: 9323 ld.w r1, (r3, 0xc) + 2688: 4243 lsli r2, r2, 3 + 268a: 6848 and r1, r2 + 268c: 3940 cmpnei r1, 0 + 268e: 0bed bt 0x2668 // 2668 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2690: 3280 movi r2, 128 + 2692: 9323 ld.w r1, (r3, 0xc) + 2694: 4244 lsli r2, r2, 4 + 2696: 6848 and r1, r2 + 2698: 3940 cmpnei r1, 0 + 269a: 0c03 bf 0x26a0 // 26a0 + nop; + 269c: 6c03 mov r0, r0 + 269e: 07e5 br 0x2668 // 2668 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 26a0: 3280 movi r2, 128 + 26a2: 9323 ld.w r1, (r3, 0xc) + 26a4: 4245 lsli r2, r2, 5 + 26a6: 6848 and r1, r2 + 26a8: 3940 cmpnei r1, 0 + 26aa: 0bdf bt 0x2668 // 2668 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 26ac: 3280 movi r2, 128 + 26ae: 9323 ld.w r1, (r3, 0xc) + 26b0: 4246 lsli r2, r2, 6 + 26b2: 6848 and r1, r2 + 26b4: 3940 cmpnei r1, 0 + 26b6: 0bd9 bt 0x2668 // 2668 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 26b8: 3280 movi r2, 128 + 26ba: 9323 ld.w r1, (r3, 0xc) + 26bc: 4247 lsli r2, r2, 7 + 26be: 6848 and r1, r2 + 26c0: 3940 cmpnei r1, 0 + 26c2: 0bd3 bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 26c4: 3280 movi r2, 128 + 26c6: 9323 ld.w r1, (r3, 0xc) + 26c8: 424b lsli r2, r2, 11 + 26ca: 6848 and r1, r2 + 26cc: 3940 cmpnei r1, 0 + 26ce: 0bcd bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 26d0: 3280 movi r2, 128 + 26d2: 9323 ld.w r1, (r3, 0xc) + 26d4: 424c lsli r2, r2, 12 + 26d6: 6848 and r1, r2 + 26d8: 3940 cmpnei r1, 0 + 26da: 0bc7 bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 26dc: 3280 movi r2, 128 + 26de: 9323 ld.w r1, (r3, 0xc) + 26e0: 424d lsli r2, r2, 13 + 26e2: 6848 and r1, r2 + 26e4: 3940 cmpnei r1, 0 + 26e6: 0bc1 bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 26e8: 3280 movi r2, 128 + 26ea: 9323 ld.w r1, (r3, 0xc) + 26ec: 424e lsli r2, r2, 14 + 26ee: 6848 and r1, r2 + 26f0: 3940 cmpnei r1, 0 + 26f2: 0bbb bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 26f4: 3280 movi r2, 128 + 26f6: 9323 ld.w r1, (r3, 0xc) + 26f8: 424f lsli r2, r2, 15 + 26fa: 6848 and r1, r2 + 26fc: 3940 cmpnei r1, 0 + 26fe: 0bb5 bt 0x2668 // 2668 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2700: 3280 movi r2, 128 + 2702: 9323 ld.w r1, (r3, 0xc) + 2704: 4256 lsli r2, r2, 22 + 2706: 6848 and r1, r2 + 2708: 3940 cmpnei r1, 0 + 270a: 0baf bt 0x2668 // 2668 + 270c: 0799 br 0x263e // 263e + 270e: 0000 bkpt + 2710: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002714 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2714: 1460 nie + 2716: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2718: 1078 lrw r3, 0x20000060 // 2778 + 271a: 3101 movi r1, 1 + 271c: 9360 ld.w r3, (r3, 0x0) + 271e: 934b ld.w r2, (r3, 0x2c) + 2720: 6884 and r2, r1 + 2722: 3a40 cmpnei r2, 0 + 2724: 0c04 bf 0x272c // 272c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2726: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2728: 1463 ipop + 272a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 272c: 934b ld.w r2, (r3, 0x2c) + 272e: 3102 movi r1, 2 + 2730: 6884 and r2, r1 + 2732: 3a40 cmpnei r2, 0 + 2734: 0bf9 bt 0x2726 // 2726 + else if(IFC->MISR&PEP_END_INT) + 2736: 934b ld.w r2, (r3, 0x2c) + 2738: 3104 movi r1, 4 + 273a: 6884 and r2, r1 + 273c: 3a40 cmpnei r2, 0 + 273e: 0bf4 bt 0x2726 // 2726 + else if(IFC->MISR&PROT_ERR_INT) + 2740: 3280 movi r2, 128 + 2742: 932b ld.w r1, (r3, 0x2c) + 2744: 4245 lsli r2, r2, 5 + 2746: 6848 and r1, r2 + 2748: 3940 cmpnei r1, 0 + 274a: 0c03 bf 0x2750 // 2750 + IFC->ICR=OVW_ERR_INT; + 274c: b34c st.w r2, (r3, 0x30) +} + 274e: 07ed br 0x2728 // 2728 + else if(IFC->MISR&UDEF_ERR_INT) + 2750: 3280 movi r2, 128 + 2752: 932b ld.w r1, (r3, 0x2c) + 2754: 4246 lsli r2, r2, 6 + 2756: 6848 and r1, r2 + 2758: 3940 cmpnei r1, 0 + 275a: 0bf9 bt 0x274c // 274c + else if(IFC->MISR&ADDR_ERR_INT) + 275c: 3280 movi r2, 128 + 275e: 932b ld.w r1, (r3, 0x2c) + 2760: 4247 lsli r2, r2, 7 + 2762: 6848 and r1, r2 + 2764: 3940 cmpnei r1, 0 + 2766: 0bf3 bt 0x274c // 274c + else if(IFC->MISR&OVW_ERR_INT) + 2768: 3280 movi r2, 128 + 276a: 932b ld.w r1, (r3, 0x2c) + 276c: 4248 lsli r2, r2, 8 + 276e: 6848 and r1, r2 + 2770: 3940 cmpnei r1, 0 + 2772: 0bed bt 0x274c // 274c + 2774: 07da br 0x2728 // 2728 + 2776: 0000 bkpt + 2778: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +0000277c : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 277c: 1460 nie + 277e: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2780: 1078 lrw r3, 0x20000050 // 27e0 + 2782: 3101 movi r1, 1 + 2784: 9360 ld.w r3, (r3, 0x0) + 2786: 9348 ld.w r2, (r3, 0x20) + 2788: 6884 and r2, r1 + 278a: 3a40 cmpnei r2, 0 + 278c: 0c04 bf 0x2794 // 2794 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 278e: 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; + } +} + 2790: 1463 ipop + 2792: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2794: 9348 ld.w r2, (r3, 0x20) + 2796: 3102 movi r1, 2 + 2798: 6884 and r2, r1 + 279a: 3a40 cmpnei r2, 0 + 279c: 0bf9 bt 0x278e // 278e + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 279e: 9348 ld.w r2, (r3, 0x20) + 27a0: 3104 movi r1, 4 + 27a2: 6884 and r2, r1 + 27a4: 3a40 cmpnei r2, 0 + 27a6: 0bf4 bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 27a8: 9348 ld.w r2, (r3, 0x20) + 27aa: 3110 movi r1, 16 + 27ac: 6884 and r2, r1 + 27ae: 3a40 cmpnei r2, 0 + 27b0: 0bef bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 27b2: 9348 ld.w r2, (r3, 0x20) + 27b4: 3120 movi r1, 32 + 27b6: 6884 and r2, r1 + 27b8: 3a40 cmpnei r2, 0 + 27ba: 0bea bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 27bc: 9348 ld.w r2, (r3, 0x20) + 27be: 3140 movi r1, 64 + 27c0: 6884 and r2, r1 + 27c2: 3a40 cmpnei r2, 0 + 27c4: 0be5 bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 27c6: 9348 ld.w r2, (r3, 0x20) + 27c8: 3180 movi r1, 128 + 27ca: 6884 and r2, r1 + 27cc: 3a40 cmpnei r2, 0 + 27ce: 0be0 bt 0x278e // 278e + 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 + 27d0: 3280 movi r2, 128 + 27d2: 9328 ld.w r1, (r3, 0x20) + 27d4: 4249 lsli r2, r2, 9 + 27d6: 6848 and r1, r2 + 27d8: 3940 cmpnei r1, 0 + 27da: 0fdb bf 0x2790 // 2790 + ADC0->CSR = ADC12_SEQ_END0; + 27dc: b347 st.w r2, (r3, 0x1c) +} + 27de: 07d9 br 0x2790 // 2790 + 27e0: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +000027e4 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 27e4: 1460 nie + 27e6: 1462 ipush + 27e8: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 27ea: 1387 lrw r4, 0x20000020 // 2984 + 27ec: 3280 movi r2, 128 + 27ee: 9460 ld.w r3, (r4, 0x0) + 27f0: 60c8 addu r3, r2 + 27f2: 9335 ld.w r1, (r3, 0x54) + 27f4: 3001 movi r0, 1 + 27f6: 6840 and r1, r0 + 27f8: 3940 cmpnei r1, 0 + 27fa: 0c03 bf 0x2800 // 2800 + 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; + 27fc: b317 st.w r0, (r3, 0x5c) + 27fe: 0424 br 0x2846 // 2846 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2800: 9335 ld.w r1, (r3, 0x54) + 2802: 3002 movi r0, 2 + 2804: 6840 and r1, r0 + 2806: 3940 cmpnei r1, 0 + 2808: 0bfa bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 280a: 9335 ld.w r1, (r3, 0x54) + 280c: 3004 movi r0, 4 + 280e: 6840 and r1, r0 + 2810: 3940 cmpnei r1, 0 + 2812: 0bf5 bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2814: 9335 ld.w r1, (r3, 0x54) + 2816: 3008 movi r0, 8 + 2818: 6840 and r1, r0 + 281a: 3940 cmpnei r1, 0 + 281c: 0bf0 bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 281e: 9335 ld.w r1, (r3, 0x54) + 2820: 3010 movi r0, 16 + 2822: 6840 and r1, r0 + 2824: 3940 cmpnei r1, 0 + 2826: 0c1f bf 0x2864 // 2864 + EPT0->ICR=EPT_CAP_LD0; + 2828: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 282a: 3200 movi r2, 0 + 282c: 3101 movi r1, 1 + 282e: 3000 movi r0, 0 + 2830: e3fffa5c bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2834: 3201 movi r2, 1 + 2836: 3101 movi r1, 1 + 2838: 3001 movi r0, 1 + 283a: e3fffa57 bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 283e: 9460 ld.w r3, (r4, 0x0) + 2840: 934b ld.w r2, (r3, 0x2c) + 2842: 1272 lrw r3, 0x200001e0 // 2988 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2844: 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 + 2846: 9460 ld.w r3, (r4, 0x0) + 2848: 3280 movi r2, 128 + 284a: 60c8 addu r3, r2 + 284c: 932b ld.w r1, (r3, 0x2c) + 284e: 3001 movi r0, 1 + 2850: 6840 and r1, r0 + 2852: 3940 cmpnei r1, 0 + 2854: 0c61 bf 0x2916 // 2916 + { + 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; + 2856: 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; + } +} + 2858: d9ee2001 ld.w r15, (r14, 0x4) + 285c: 9880 ld.w r4, (r14, 0x0) + 285e: 1402 addi r14, r14, 8 + 2860: 1463 ipop + 2862: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 2864: 9335 ld.w r1, (r3, 0x54) + 2866: 3020 movi r0, 32 + 2868: 6840 and r1, r0 + 286a: 3940 cmpnei r1, 0 + 286c: 0c10 bf 0x288c // 288c + EPT0->ICR=EPT_CAP_LD1; + 286e: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 2870: 3200 movi r2, 0 + 2872: 3101 movi r1, 1 + 2874: 3001 movi r0, 1 + 2876: e3fffa39 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 287a: 3201 movi r2, 1 + 287c: 3101 movi r1, 1 + 287e: 3000 movi r0, 0 + 2880: e3fffa34 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2884: 9460 ld.w r3, (r4, 0x0) + 2886: 934c ld.w r2, (r3, 0x30) + 2888: 1261 lrw r3, 0x200001dc // 298c + 288a: 07dd br 0x2844 // 2844 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 288c: 9335 ld.w r1, (r3, 0x54) + 288e: 3040 movi r0, 64 + 2890: 6840 and r1, r0 + 2892: 3940 cmpnei r1, 0 + 2894: 0bb4 bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 2896: 9335 ld.w r1, (r3, 0x54) + 2898: 6848 and r1, r2 + 289a: 3940 cmpnei r1, 0 + 289c: 0c03 bf 0x28a2 // 28a2 + EPT0->ICR=EPT_CDD; + 289e: b357 st.w r2, (r3, 0x5c) + 28a0: 07d3 br 0x2846 // 2846 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 28a2: 3280 movi r2, 128 + 28a4: 9335 ld.w r1, (r3, 0x54) + 28a6: 4241 lsli r2, r2, 1 + 28a8: 6848 and r1, r2 + 28aa: 3940 cmpnei r1, 0 + 28ac: 0bf9 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 28ae: 3280 movi r2, 128 + 28b0: 9335 ld.w r1, (r3, 0x54) + 28b2: 4242 lsli r2, r2, 2 + 28b4: 6848 and r1, r2 + 28b6: 3940 cmpnei r1, 0 + 28b8: 0bf3 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 28ba: 3280 movi r2, 128 + 28bc: 9335 ld.w r1, (r3, 0x54) + 28be: 4243 lsli r2, r2, 3 + 28c0: 6848 and r1, r2 + 28c2: 3940 cmpnei r1, 0 + 28c4: 0bed bt 0x289e // 289e + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 28c6: 3280 movi r2, 128 + 28c8: 9335 ld.w r1, (r3, 0x54) + 28ca: 4244 lsli r2, r2, 4 + 28cc: 6848 and r1, r2 + 28ce: 3940 cmpnei r1, 0 + 28d0: 0be7 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 28d2: 3280 movi r2, 128 + 28d4: 9335 ld.w r1, (r3, 0x54) + 28d6: 4245 lsli r2, r2, 5 + 28d8: 6848 and r1, r2 + 28da: 3940 cmpnei r1, 0 + 28dc: 0be1 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 28de: 3280 movi r2, 128 + 28e0: 9335 ld.w r1, (r3, 0x54) + 28e2: 4246 lsli r2, r2, 6 + 28e4: 6848 and r1, r2 + 28e6: 3940 cmpnei r1, 0 + 28e8: 0bdb bt 0x289e // 289e + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 28ea: 3280 movi r2, 128 + 28ec: 9335 ld.w r1, (r3, 0x54) + 28ee: 4247 lsli r2, r2, 7 + 28f0: 6848 and r1, r2 + 28f2: 3940 cmpnei r1, 0 + 28f4: 0bd5 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 28f6: 3280 movi r2, 128 + 28f8: 9335 ld.w r1, (r3, 0x54) + 28fa: 4248 lsli r2, r2, 8 + 28fc: 6848 and r1, r2 + 28fe: 3940 cmpnei r1, 0 + 2900: 0bcf bt 0x289e // 289e + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2902: 3280 movi r2, 128 + 2904: 9335 ld.w r1, (r3, 0x54) + 2906: 4249 lsli r2, r2, 9 + 2908: 6848 and r1, r2 + 290a: 3940 cmpnei r1, 0 + 290c: 0f9d bf 0x2846 // 2846 + EPT0->ICR=EPT_PEND; + 290e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2910: e3fffd20 bsr 0x2350 // 2350 + 2914: 0799 br 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2916: 932b ld.w r1, (r3, 0x2c) + 2918: 3002 movi r0, 2 + 291a: 6840 and r1, r0 + 291c: 3940 cmpnei r1, 0 + 291e: 0b9c bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2920: 932b ld.w r1, (r3, 0x2c) + 2922: 3004 movi r0, 4 + 2924: 6840 and r1, r0 + 2926: 3940 cmpnei r1, 0 + 2928: 0b97 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 292a: 932b ld.w r1, (r3, 0x2c) + 292c: 3008 movi r0, 8 + 292e: 6840 and r1, r0 + 2930: 3940 cmpnei r1, 0 + 2932: 0b92 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2934: 932b ld.w r1, (r3, 0x2c) + 2936: 3010 movi r0, 16 + 2938: 6840 and r1, r0 + 293a: 3940 cmpnei r1, 0 + 293c: 0b8d bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 293e: 932b ld.w r1, (r3, 0x2c) + 2940: 3020 movi r0, 32 + 2942: 6840 and r1, r0 + 2944: 3940 cmpnei r1, 0 + 2946: 0b88 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 2948: 932b ld.w r1, (r3, 0x2c) + 294a: 3040 movi r0, 64 + 294c: 6840 and r1, r0 + 294e: 3940 cmpnei r1, 0 + 2950: 0b83 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 2952: 932b ld.w r1, (r3, 0x2c) + 2954: 6848 and r1, r2 + 2956: 3940 cmpnei r1, 0 + 2958: 0c03 bf 0x295e // 295e + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 295a: b34d st.w r2, (r3, 0x34) +} + 295c: 077e br 0x2858 // 2858 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 295e: 3280 movi r2, 128 + 2960: 932b ld.w r1, (r3, 0x2c) + 2962: 4241 lsli r2, r2, 1 + 2964: 6848 and r1, r2 + 2966: 3940 cmpnei r1, 0 + 2968: 0bf9 bt 0x295a // 295a + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 296a: 3280 movi r2, 128 + 296c: 932b ld.w r1, (r3, 0x2c) + 296e: 4242 lsli r2, r2, 2 + 2970: 6848 and r1, r2 + 2972: 3940 cmpnei r1, 0 + 2974: 0bf3 bt 0x295a // 295a + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 2976: 3280 movi r2, 128 + 2978: 932b ld.w r1, (r3, 0x2c) + 297a: 4243 lsli r2, r2, 3 + 297c: 6848 and r1, r2 + 297e: 3940 cmpnei r1, 0 + 2980: 0bed bt 0x295a // 295a + 2982: 076b br 0x2858 // 2858 + 2984: 20000020 .long 0x20000020 + 2988: 200001e0 .long 0x200001e0 + 298c: 200001dc .long 0x200001dc + +Disassembly of section .text.WWDTHandler: + +00002990 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 2990: 1460 nie + 2992: 1462 ipush + 2994: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 2996: 10ab lrw r5, 0x20000010 // 29c0 + 2998: 3401 movi r4, 1 + 299a: 9560 ld.w r3, (r5, 0x0) + 299c: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 299e: 30ff movi r0, 255 + 29a0: e3fffbb4 bsr 0x2108 // 2108 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 29a4: 9540 ld.w r2, (r5, 0x0) + 29a6: 9263 ld.w r3, (r2, 0xc) + 29a8: 68d0 and r3, r4 + 29aa: 3b40 cmpnei r3, 0 + 29ac: 0c02 bf 0x29b0 // 29b0 + { + WWDT->ICR = WWDT_EVI; + 29ae: b285 st.w r4, (r2, 0x14) + } +} + 29b0: d9ee2002 ld.w r15, (r14, 0x8) + 29b4: 98a1 ld.w r5, (r14, 0x4) + 29b6: 9880 ld.w r4, (r14, 0x0) + 29b8: 1403 addi r14, r14, 12 + 29ba: 1463 ipop + 29bc: 1461 nir + 29be: 0000 bkpt + 29c0: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000029c4 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 29c4: 1460 nie + 29c6: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 29c8: 107e lrw r3, 0x20000024 // 2a40 + 29ca: 3101 movi r1, 1 + 29cc: 9360 ld.w r3, (r3, 0x0) + 29ce: 237f addi r3, 128 + 29d0: 9355 ld.w r2, (r3, 0x54) + 29d2: 6884 and r2, r1 + 29d4: 3a40 cmpnei r2, 0 + 29d6: 0c04 bf 0x29de // 29de + { + 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; + 29d8: 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; + } +} + 29da: 1463 ipop + 29dc: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 29de: 9355 ld.w r2, (r3, 0x54) + 29e0: 3102 movi r1, 2 + 29e2: 6884 and r2, r1 + 29e4: 3a40 cmpnei r2, 0 + 29e6: 0bf9 bt 0x29d8 // 29d8 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 29e8: 9355 ld.w r2, (r3, 0x54) + 29ea: 3110 movi r1, 16 + 29ec: 6884 and r2, r1 + 29ee: 3a40 cmpnei r2, 0 + 29f0: 0bf4 bt 0x29d8 // 29d8 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 29f2: 9355 ld.w r2, (r3, 0x54) + 29f4: 3120 movi r1, 32 + 29f6: 6884 and r2, r1 + 29f8: 3a40 cmpnei r2, 0 + 29fa: 0bef bt 0x29d8 // 29d8 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 29fc: 3280 movi r2, 128 + 29fe: 9335 ld.w r1, (r3, 0x54) + 2a00: 4241 lsli r2, r2, 1 + 2a02: 6848 and r1, r2 + 2a04: 3940 cmpnei r1, 0 + 2a06: 0c03 bf 0x2a0c // 2a0c + GPT0->ICR = GPT_INT_PEND; + 2a08: b357 st.w r2, (r3, 0x5c) +} + 2a0a: 07e8 br 0x29da // 29da + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 2a0c: 3280 movi r2, 128 + 2a0e: 9335 ld.w r1, (r3, 0x54) + 2a10: 4242 lsli r2, r2, 2 + 2a12: 6848 and r1, r2 + 2a14: 3940 cmpnei r1, 0 + 2a16: 0bf9 bt 0x2a08 // 2a08 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2a18: 3280 movi r2, 128 + 2a1a: 9335 ld.w r1, (r3, 0x54) + 2a1c: 4243 lsli r2, r2, 3 + 2a1e: 6848 and r1, r2 + 2a20: 3940 cmpnei r1, 0 + 2a22: 0bf3 bt 0x2a08 // 2a08 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2a24: 3280 movi r2, 128 + 2a26: 9335 ld.w r1, (r3, 0x54) + 2a28: 4244 lsli r2, r2, 4 + 2a2a: 6848 and r1, r2 + 2a2c: 3940 cmpnei r1, 0 + 2a2e: 0bed bt 0x2a08 // 2a08 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2a30: 3280 movi r2, 128 + 2a32: 9335 ld.w r1, (r3, 0x54) + 2a34: 4249 lsli r2, r2, 9 + 2a36: 6848 and r1, r2 + 2a38: 3940 cmpnei r1, 0 + 2a3a: 0be7 bt 0x2a08 // 2a08 + 2a3c: 07cf br 0x29da // 29da + 2a3e: 0000 bkpt + 2a40: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00002a44 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 2a44: 1460 nie + 2a46: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 2a48: 1079 lrw r3, 0x20000018 // 2aac + 2a4a: 3101 movi r1, 1 + 2a4c: 9360 ld.w r3, (r3, 0x0) + 2a4e: 934a ld.w r2, (r3, 0x28) + 2a50: 6884 and r2, r1 + 2a52: 3a40 cmpnei r2, 0 + 2a54: 0c14 bf 0x2a7c // 2a7c + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 2a56: 1057 lrw r2, 0xca53 // 2ab0 + RTC->ICR=ALRA_INT; + 2a58: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 2a5a: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 2a5c: 9342 ld.w r2, (r3, 0x8) + 2a5e: 6c84 or r2, r1 + 2a60: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 2a62: 3280 movi r2, 128 + 2a64: 424d lsli r2, r2, 13 + 2a66: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 2a68: 3102 movi r1, 2 + 2a6a: 9342 ld.w r2, (r3, 0x8) + 2a6c: 6884 and r2, r1 + 2a6e: 3a40 cmpnei r2, 0 + 2a70: 0bfd bt 0x2a6a // 2a6a + RTC->CR &= ~0x1; + 2a72: 9342 ld.w r2, (r3, 0x8) + 2a74: 3a80 bclri r2, 0 + 2a76: 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; + } +} + 2a78: 1463 ipop + 2a7a: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 2a7c: 934a ld.w r2, (r3, 0x28) + 2a7e: 3102 movi r1, 2 + 2a80: 6884 and r2, r1 + 2a82: 3a40 cmpnei r2, 0 + 2a84: 0c03 bf 0x2a8a // 2a8a + RTC->ICR=RTC_TRGEV1_INT; + 2a86: b32b st.w r1, (r3, 0x2c) +} + 2a88: 07f8 br 0x2a78 // 2a78 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 2a8a: 934a ld.w r2, (r3, 0x28) + 2a8c: 3104 movi r1, 4 + 2a8e: 6884 and r2, r1 + 2a90: 3a40 cmpnei r2, 0 + 2a92: 0bfa bt 0x2a86 // 2a86 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 2a94: 934a ld.w r2, (r3, 0x28) + 2a96: 3108 movi r1, 8 + 2a98: 6884 and r2, r1 + 2a9a: 3a40 cmpnei r2, 0 + 2a9c: 0bf5 bt 0x2a86 // 2a86 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 2a9e: 934a ld.w r2, (r3, 0x28) + 2aa0: 3110 movi r1, 16 + 2aa2: 6884 and r2, r1 + 2aa4: 3a40 cmpnei r2, 0 + 2aa6: 0bf0 bt 0x2a86 // 2a86 + 2aa8: 07e8 br 0x2a78 // 2a78 + 2aaa: 0000 bkpt + 2aac: 20000018 .long 0x20000018 + 2ab0: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002ab4 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2ab4: 1460 nie + 2ab6: 1462 ipush + 2ab8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2aba: 1076 lrw r3, 0x20000040 // 2b10 + 2abc: 3102 movi r1, 2 + 2abe: 9360 ld.w r3, (r3, 0x0) + 2ac0: 9343 ld.w r2, (r3, 0xc) + 2ac2: 6884 and r2, r1 + 2ac4: 3a40 cmpnei r2, 0 + 2ac6: 0c0b bf 0x2adc // 2adc + { + UART0->ISR=UART_RX_INT_S; + 2ac8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 2aca: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 2acc: 7400 zextb r0, r0 + 2ace: e00003a1 bsr 0x3210 // 3210 + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } + +} + 2ad2: d9ee2000 ld.w r15, (r14, 0x0) + 2ad6: 1401 addi r14, r14, 4 + 2ad8: 1463 ipop + 2ada: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2adc: 9343 ld.w r2, (r3, 0xc) + 2ade: 3101 movi r1, 1 + 2ae0: 6884 and r2, r1 + 2ae2: 3a40 cmpnei r2, 0 + 2ae4: 0c03 bf 0x2aea // 2aea + UART0->ISR=UART_TX_IOV_S; + 2ae6: b323 st.w r1, (r3, 0xc) + 2ae8: 07f5 br 0x2ad2 // 2ad2 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2aea: 9343 ld.w r2, (r3, 0xc) + 2aec: 3108 movi r1, 8 + 2aee: 6884 and r2, r1 + 2af0: 3a40 cmpnei r2, 0 + 2af2: 0bfa bt 0x2ae6 // 2ae6 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2af4: 9343 ld.w r2, (r3, 0xc) + 2af6: 3104 movi r1, 4 + 2af8: 6884 and r2, r1 + 2afa: 3a40 cmpnei r2, 0 + 2afc: 0bf5 bt 0x2ae6 // 2ae6 + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2afe: 3280 movi r2, 128 + 2b00: 9323 ld.w r1, (r3, 0xc) + 2b02: 424c lsli r2, r2, 12 + 2b04: 6848 and r1, r2 + 2b06: 3940 cmpnei r1, 0 + 2b08: 0fe5 bf 0x2ad2 // 2ad2 + UART0->ISR=UART_TX_DONE_S; + 2b0a: b343 st.w r2, (r3, 0xc) +} + 2b0c: 07e3 br 0x2ad2 // 2ad2 + 2b0e: 0000 bkpt + 2b10: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002b14 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2b14: 1460 nie + 2b16: 1462 ipush + 2b18: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2b1a: 107f lrw r3, 0x2000003c // 2b94 + 2b1c: 3102 movi r1, 2 + 2b1e: 9360 ld.w r3, (r3, 0x0) + 2b20: 9343 ld.w r2, (r3, 0xc) + 2b22: 6884 and r2, r1 + 2b24: 3a40 cmpnei r2, 0 + 2b26: 0c0b bf 0x2b3c // 2b3c + { + UART1->ISR=UART_RX_INT_S; + 2b28: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 2b2a: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 2b2c: 7400 zextb r0, r0 + 2b2e: e000038d bsr 0x3248 // 3248 + if(RS485_Comm_Flag1 == 0x01){ + RS485_Comm_End1 ++; + } + + } +} + 2b32: d9ee2000 ld.w r15, (r14, 0x0) + 2b36: 1401 addi r14, r14, 4 + 2b38: 1463 ipop + 2b3a: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2b3c: 9323 ld.w r1, (r3, 0xc) + 2b3e: 3201 movi r2, 1 + 2b40: 6848 and r1, r2 + 2b42: 3940 cmpnei r1, 0 + 2b44: 0c0d bf 0x2b5e // 2b5e + UART1->ISR=UART_TX_INT_S; + 2b46: b343 st.w r2, (r3, 0xc) + RS485_Comming1 = 0x01; + 2b48: 1074 lrw r3, 0x20000134 // 2b98 + 2b4a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag1 == 0x01){ + 2b4c: 1074 lrw r3, 0x20000138 // 2b9c + 2b4e: 9360 ld.w r3, (r3, 0x0) + 2b50: 3b41 cmpnei r3, 1 + 2b52: 0bf0 bt 0x2b32 // 2b32 + RS485_Comm_Start1 ++; + 2b54: 1053 lrw r2, 0x2000013c // 2ba0 + RS485_Comm_End1 ++; + 2b56: 9260 ld.w r3, (r2, 0x0) + 2b58: 2300 addi r3, 1 + 2b5a: b260 st.w r3, (r2, 0x0) +} + 2b5c: 07eb br 0x2b32 // 2b32 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2b5e: 9343 ld.w r2, (r3, 0xc) + 2b60: 3108 movi r1, 8 + 2b62: 6884 and r2, r1 + 2b64: 3a40 cmpnei r2, 0 + 2b66: 0c03 bf 0x2b6c // 2b6c + UART1->ISR=UART_TX_IOV_S; + 2b68: b323 st.w r1, (r3, 0xc) + 2b6a: 07e4 br 0x2b32 // 2b32 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2b6c: 9343 ld.w r2, (r3, 0xc) + 2b6e: 3104 movi r1, 4 + 2b70: 6884 and r2, r1 + 2b72: 3a40 cmpnei r2, 0 + 2b74: 0bfa bt 0x2b68 // 2b68 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2b76: 3180 movi r1, 128 + 2b78: 9303 ld.w r0, (r3, 0xc) + 2b7a: 412c lsli r1, r1, 12 + 2b7c: 6804 and r0, r1 + 2b7e: 3840 cmpnei r0, 0 + 2b80: 0fd9 bf 0x2b32 // 2b32 + UART1->ISR=UART_TX_DONE_S; + 2b82: b323 st.w r1, (r3, 0xc) + RS485_Comming1 = 0x00; + 2b84: 1065 lrw r3, 0x20000134 // 2b98 + 2b86: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag1 == 0x01){ + 2b88: 1065 lrw r3, 0x20000138 // 2b9c + 2b8a: 9360 ld.w r3, (r3, 0x0) + 2b8c: 3b41 cmpnei r3, 1 + 2b8e: 0bd2 bt 0x2b32 // 2b32 + RS485_Comm_End1 ++; + 2b90: 1045 lrw r2, 0x20000140 // 2ba4 + 2b92: 07e2 br 0x2b56 // 2b56 + 2b94: 2000003c .long 0x2000003c + 2b98: 20000134 .long 0x20000134 + 2b9c: 20000138 .long 0x20000138 + 2ba0: 2000013c .long 0x2000013c + 2ba4: 20000140 .long 0x20000140 + +Disassembly of section .text.UART2IntHandler: + +00002ba8 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2ba8: 1460 nie + 2baa: 1462 ipush + 2bac: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2bae: 107f lrw r3, 0x20000038 // 2c28 + 2bb0: 3102 movi r1, 2 + 2bb2: 9360 ld.w r3, (r3, 0x0) + 2bb4: 9343 ld.w r2, (r3, 0xc) + 2bb6: 6884 and r2, r1 + 2bb8: 3a40 cmpnei r2, 0 + 2bba: 0c0b bf 0x2bd0 // 2bd0 + { + UART2->ISR=UART_RX_INT_S; + 2bbc: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 2bbe: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 2bc0: 7400 zextb r0, r0 + 2bc2: e0000395 bsr 0x32ec // 32ec + RS485_Comm_End ++; + } + + } + +} + 2bc6: d9ee2000 ld.w r15, (r14, 0x0) + 2bca: 1401 addi r14, r14, 4 + 2bcc: 1463 ipop + 2bce: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2bd0: 9323 ld.w r1, (r3, 0xc) + 2bd2: 3201 movi r2, 1 + 2bd4: 6848 and r1, r2 + 2bd6: 3940 cmpnei r1, 0 + 2bd8: 0c0d bf 0x2bf2 // 2bf2 + UART2->ISR=UART_TX_INT_S; + 2bda: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2bdc: 1074 lrw r3, 0x20000124 // 2c2c + 2bde: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2be0: 1074 lrw r3, 0x20000128 // 2c30 + 2be2: 9360 ld.w r3, (r3, 0x0) + 2be4: 3b41 cmpnei r3, 1 + 2be6: 0bf0 bt 0x2bc6 // 2bc6 + RS485_Comm_Start ++; + 2be8: 1053 lrw r2, 0x2000012c // 2c34 + RS485_Comm_End ++; + 2bea: 9260 ld.w r3, (r2, 0x0) + 2bec: 2300 addi r3, 1 + 2bee: b260 st.w r3, (r2, 0x0) +} + 2bf0: 07eb br 0x2bc6 // 2bc6 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2bf2: 9343 ld.w r2, (r3, 0xc) + 2bf4: 3108 movi r1, 8 + 2bf6: 6884 and r2, r1 + 2bf8: 3a40 cmpnei r2, 0 + 2bfa: 0c03 bf 0x2c00 // 2c00 + UART2->ISR=UART_TX_IOV_S; + 2bfc: b323 st.w r1, (r3, 0xc) + 2bfe: 07e4 br 0x2bc6 // 2bc6 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2c00: 9343 ld.w r2, (r3, 0xc) + 2c02: 3104 movi r1, 4 + 2c04: 6884 and r2, r1 + 2c06: 3a40 cmpnei r2, 0 + 2c08: 0bfa bt 0x2bfc // 2bfc + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2c0a: 3180 movi r1, 128 + 2c0c: 9303 ld.w r0, (r3, 0xc) + 2c0e: 412c lsli r1, r1, 12 + 2c10: 6804 and r0, r1 + 2c12: 3840 cmpnei r0, 0 + 2c14: 0fd9 bf 0x2bc6 // 2bc6 + UART2->ISR=UART_TX_DONE_S; + 2c16: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2c18: 1065 lrw r3, 0x20000124 // 2c2c + 2c1a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2c1c: 1065 lrw r3, 0x20000128 // 2c30 + 2c1e: 9360 ld.w r3, (r3, 0x0) + 2c20: 3b41 cmpnei r3, 1 + 2c22: 0bd2 bt 0x2bc6 // 2bc6 + RS485_Comm_End ++; + 2c24: 1045 lrw r2, 0x20000130 // 2c38 + 2c26: 07e2 br 0x2bea // 2bea + 2c28: 20000038 .long 0x20000038 + 2c2c: 20000124 .long 0x20000124 + 2c30: 20000128 .long 0x20000128 + 2c34: 2000012c .long 0x2000012c + 2c38: 20000130 .long 0x20000130 + +Disassembly of section .text.SPI0IntHandler: + +00002c3c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2c3c: 1460 nie + 2c3e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2c40: 1178 lrw r3, 0x20000034 // 2d20 + 2c42: 3101 movi r1, 1 + 2c44: 9360 ld.w r3, (r3, 0x0) + 2c46: 9347 ld.w r2, (r3, 0x1c) + 2c48: 6884 and r2, r1 + 2c4a: 3a40 cmpnei r2, 0 + 2c4c: 0c03 bf 0x2c52 // 2c52 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2c4e: b328 st.w r1, (r3, 0x20) + } + +} + 2c50: 0407 br 0x2c5e // 2c5e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2c52: 9347 ld.w r2, (r3, 0x1c) + 2c54: 3002 movi r0, 2 + 2c56: 6880 and r2, r0 + 2c58: 3a40 cmpnei r2, 0 + 2c5a: 0c04 bf 0x2c62 // 2c62 + SPI0->ICR = SPI_RTIM; + 2c5c: b308 st.w r0, (r3, 0x20) +} + 2c5e: 1463 ipop + 2c60: 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 + 2c62: 9347 ld.w r2, (r3, 0x1c) + 2c64: 3004 movi r0, 4 + 2c66: 6880 and r2, r0 + 2c68: 3a40 cmpnei r2, 0 + 2c6a: 0c55 bf 0x2d14 // 2d14 + SPI0->ICR = SPI_RXIM; + 2c6c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2c6e: 9302 ld.w r0, (r3, 0x8) + 2c70: 32aa movi r2, 170 + 2c72: 6482 cmpne r0, r2 + 2c74: 083e bt 0x2cf0 // 2cf0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c76: 3102 movi r1, 2 + 2c78: 9343 ld.w r2, (r3, 0xc) + 2c7a: 6884 and r2, r1 + 2c7c: 3a40 cmpnei r2, 0 + 2c7e: 0ffd bf 0x2c78 // 2c78 + SPI0->DR = 0x11; + 2c80: 3211 movi r2, 17 + 2c82: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c84: 3110 movi r1, 16 + 2c86: 9343 ld.w r2, (r3, 0xc) + 2c88: 6884 and r2, r1 + 2c8a: 3a40 cmpnei r2, 0 + 2c8c: 0bfd bt 0x2c86 // 2c86 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c8e: 3102 movi r1, 2 + 2c90: 9343 ld.w r2, (r3, 0xc) + 2c92: 6884 and r2, r1 + 2c94: 3a40 cmpnei r2, 0 + 2c96: 0ffd bf 0x2c90 // 2c90 + SPI0->DR = 0x12; + 2c98: 3212 movi r2, 18 + 2c9a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c9c: 3110 movi r1, 16 + 2c9e: 9343 ld.w r2, (r3, 0xc) + 2ca0: 6884 and r2, r1 + 2ca2: 3a40 cmpnei r2, 0 + 2ca4: 0bfd bt 0x2c9e // 2c9e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2ca6: 3102 movi r1, 2 + 2ca8: 9343 ld.w r2, (r3, 0xc) + 2caa: 6884 and r2, r1 + 2cac: 3a40 cmpnei r2, 0 + 2cae: 0ffd bf 0x2ca8 // 2ca8 + SPI0->DR = 0x13; + 2cb0: 3213 movi r2, 19 + 2cb2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cb4: 3110 movi r1, 16 + 2cb6: 9343 ld.w r2, (r3, 0xc) + 2cb8: 6884 and r2, r1 + 2cba: 3a40 cmpnei r2, 0 + 2cbc: 0bfd bt 0x2cb6 // 2cb6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2cbe: 3102 movi r1, 2 + 2cc0: 9343 ld.w r2, (r3, 0xc) + 2cc2: 6884 and r2, r1 + 2cc4: 3a40 cmpnei r2, 0 + 2cc6: 0ffd bf 0x2cc0 // 2cc0 + SPI0->DR = 0x14; + 2cc8: 3214 movi r2, 20 + 2cca: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ccc: 3110 movi r1, 16 + 2cce: 9343 ld.w r2, (r3, 0xc) + 2cd0: 6884 and r2, r1 + 2cd2: 3a40 cmpnei r2, 0 + 2cd4: 0bfd bt 0x2cce // 2cce + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2cd6: 3102 movi r1, 2 + 2cd8: 9343 ld.w r2, (r3, 0xc) + 2cda: 6884 and r2, r1 + 2cdc: 3a40 cmpnei r2, 0 + 2cde: 0ffd bf 0x2cd8 // 2cd8 + SPI0->DR = 0x15; + 2ce0: 3215 movi r2, 21 + 2ce2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ce4: 3110 movi r1, 16 + 2ce6: 9343 ld.w r2, (r3, 0xc) + 2ce8: 6884 and r2, r1 + 2cea: 3a40 cmpnei r2, 0 + 2cec: 0bfd bt 0x2ce6 // 2ce6 + 2cee: 07b8 br 0x2c5e // 2c5e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2cf0: 9343 ld.w r2, (r3, 0xc) + 2cf2: 6884 and r2, r1 + 2cf4: 3a40 cmpnei r2, 0 + 2cf6: 0bb4 bt 0x2c5e // 2c5e + SPI0->DR=0x0; //FIFO=0 + 2cf8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cfa: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2cfc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cfe: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d00: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d02: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d04: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d06: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d08: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d0a: 9343 ld.w r2, (r3, 0xc) + 2d0c: 6884 and r2, r1 + 2d0e: 3a40 cmpnei r2, 0 + 2d10: 0bfd bt 0x2d0a // 2d0a + 2d12: 07a6 br 0x2c5e // 2c5e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2d14: 9347 ld.w r2, (r3, 0x1c) + 2d16: 3108 movi r1, 8 + 2d18: 6884 and r2, r1 + 2d1a: 3a40 cmpnei r2, 0 + 2d1c: 0b99 bt 0x2c4e // 2c4e + 2d1e: 07a0 br 0x2c5e // 2c5e + 2d20: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002d24 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2d24: 1460 nie + 2d26: 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) + 2d28: 1073 lrw r3, 0x2000002c // 2d74 + 2d2a: 3104 movi r1, 4 + 2d2c: 9360 ld.w r3, (r3, 0x0) + 2d2e: 9349 ld.w r2, (r3, 0x24) + 2d30: 6884 and r2, r1 + 2d32: 3a40 cmpnei r2, 0 + 2d34: 0c02 bf 0x2d38 // 2d38 + { + SIO0->ICR=0X04; + 2d36: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2d38: 9349 ld.w r2, (r3, 0x24) + 2d3a: 3101 movi r1, 1 + 2d3c: 6884 and r2, r1 + 2d3e: 3a40 cmpnei r2, 0 + 2d40: 0c02 bf 0x2d44 // 2d44 + { + SIO0->ICR=0X01; + 2d42: 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 + 2d44: 9349 ld.w r2, (r3, 0x24) + 2d46: 3102 movi r1, 2 + 2d48: 6884 and r2, r1 + 2d4a: 3a40 cmpnei r2, 0 + 2d4c: 0c03 bf 0x2d52 // 2d52 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2d4e: b32b st.w r1, (r3, 0x2c) + } +} + 2d50: 0410 br 0x2d70 // 2d70 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2d52: 9349 ld.w r2, (r3, 0x24) + 2d54: 3108 movi r1, 8 + 2d56: 6884 and r2, r1 + 2d58: 3a40 cmpnei r2, 0 + 2d5a: 0bfa bt 0x2d4e // 2d4e + else if(SIO0->MISR&0X010) //BREAK + 2d5c: 9349 ld.w r2, (r3, 0x24) + 2d5e: 3110 movi r1, 16 + 2d60: 6884 and r2, r1 + 2d62: 3a40 cmpnei r2, 0 + 2d64: 0bf5 bt 0x2d4e // 2d4e + else if(SIO0->MISR&0X020) //TIMEOUT + 2d66: 9349 ld.w r2, (r3, 0x24) + 2d68: 3120 movi r1, 32 + 2d6a: 6884 and r2, r1 + 2d6c: 3a40 cmpnei r2, 0 + 2d6e: 0bf0 bt 0x2d4e // 2d4e +} + 2d70: 1463 ipop + 2d72: 1461 nir + 2d74: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002d78 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2d78: 1460 nie + 2d7a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2d7c: 106a lrw r3, 0x2000005c // 2da4 + 2d7e: 3101 movi r1, 1 + 2d80: 9360 ld.w r3, (r3, 0x0) + 2d82: 237f addi r3, 128 + 2d84: 934c ld.w r2, (r3, 0x30) + 2d86: 6884 and r2, r1 + 2d88: 3a40 cmpnei r2, 0 + 2d8a: 0c04 bf 0x2d92 // 2d92 + { + SYSCON->EXICR = EXI_PIN0; + 2d8c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2d8e: 1463 ipop + 2d90: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2d92: 3280 movi r2, 128 + 2d94: 932c ld.w r1, (r3, 0x30) + 2d96: 4249 lsli r2, r2, 9 + 2d98: 6848 and r1, r2 + 2d9a: 3940 cmpnei r1, 0 + 2d9c: 0ff9 bf 0x2d8e // 2d8e + SYSCON->EXICR = EXI_PIN16; + 2d9e: b34b st.w r2, (r3, 0x2c) +} + 2da0: 07f7 br 0x2d8e // 2d8e + 2da2: 0000 bkpt + 2da4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002da8 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2da8: 1460 nie + 2daa: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2dac: 106a lrw r3, 0x2000005c // 2dd4 + 2dae: 3102 movi r1, 2 + 2db0: 9360 ld.w r3, (r3, 0x0) + 2db2: 237f addi r3, 128 + 2db4: 934c ld.w r2, (r3, 0x30) + 2db6: 6884 and r2, r1 + 2db8: 3a40 cmpnei r2, 0 + 2dba: 0c04 bf 0x2dc2 // 2dc2 + { + SYSCON->EXICR = EXI_PIN1; + 2dbc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2dbe: 1463 ipop + 2dc0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2dc2: 3280 movi r2, 128 + 2dc4: 932c ld.w r1, (r3, 0x30) + 2dc6: 424a lsli r2, r2, 10 + 2dc8: 6848 and r1, r2 + 2dca: 3940 cmpnei r1, 0 + 2dcc: 0ff9 bf 0x2dbe // 2dbe + SYSCON->EXICR = EXI_PIN17; + 2dce: b34b st.w r2, (r3, 0x2c) +} + 2dd0: 07f7 br 0x2dbe // 2dbe + 2dd2: 0000 bkpt + 2dd4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002dd8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2dd8: 1460 nie + 2dda: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2ddc: 1070 lrw r3, 0x2000005c // 2e1c + 2dde: 3104 movi r1, 4 + 2de0: 9360 ld.w r3, (r3, 0x0) + 2de2: 237f addi r3, 128 + 2de4: 934c ld.w r2, (r3, 0x30) + 2de6: 6884 and r2, r1 + 2de8: 3a40 cmpnei r2, 0 + 2dea: 0c04 bf 0x2df2 // 2df2 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2dec: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2dee: 1463 ipop + 2df0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2df2: 934c ld.w r2, (r3, 0x30) + 2df4: 3108 movi r1, 8 + 2df6: 6884 and r2, r1 + 2df8: 3a40 cmpnei r2, 0 + 2dfa: 0bf9 bt 0x2dec // 2dec + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2dfc: 3280 movi r2, 128 + 2dfe: 932c ld.w r1, (r3, 0x30) + 2e00: 424b lsli r2, r2, 11 + 2e02: 6848 and r1, r2 + 2e04: 3940 cmpnei r1, 0 + 2e06: 0c03 bf 0x2e0c // 2e0c + SYSCON->EXICR = EXI_PIN19; + 2e08: b34b st.w r2, (r3, 0x2c) +} + 2e0a: 07f2 br 0x2dee // 2dee + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2e0c: 3280 movi r2, 128 + 2e0e: 932c ld.w r1, (r3, 0x30) + 2e10: 424c lsli r2, r2, 12 + 2e12: 6848 and r1, r2 + 2e14: 3940 cmpnei r1, 0 + 2e16: 0bf9 bt 0x2e08 // 2e08 + 2e18: 07eb br 0x2dee // 2dee + 2e1a: 0000 bkpt + 2e1c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002e20 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2e20: 1460 nie + 2e22: 1462 ipush + 2e24: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2e26: 1079 lrw r3, 0x2000005c // 2e88 + 2e28: 3280 movi r2, 128 + 2e2a: 9360 ld.w r3, (r3, 0x0) + 2e2c: 60c8 addu r3, r2 + 2e2e: 932c ld.w r1, (r3, 0x30) + 2e30: 3010 movi r0, 16 + 2e32: 6840 and r1, r0 + 2e34: 3940 cmpnei r1, 0 + 2e36: 0c03 bf 0x2e3c // 2e3c + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 2e38: b30b st.w r0, (r3, 0x2c) + 2e3a: 0409 br 0x2e4c // 2e4c + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 2e3c: 932c ld.w r1, (r3, 0x30) + 2e3e: 3020 movi r0, 32 + 2e40: 6840 and r1, r0 + 2e42: 3940 cmpnei r1, 0 + 2e44: 0c09 bf 0x2e56 // 2e56 + SYSCON->EXICR = EXI_PIN5; + 2e46: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 2e48: e0000414 bsr 0x3670 // 3670 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 2e4c: d9ee2000 ld.w r15, (r14, 0x0) + 2e50: 1401 addi r14, r14, 4 + 2e52: 1463 ipop + 2e54: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 2e56: 932c ld.w r1, (r3, 0x30) + 2e58: 3040 movi r0, 64 + 2e5a: 6840 and r1, r0 + 2e5c: 3940 cmpnei r1, 0 + 2e5e: 0bed bt 0x2e38 // 2e38 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 2e60: 932c ld.w r1, (r3, 0x30) + 2e62: 6848 and r1, r2 + 2e64: 3940 cmpnei r1, 0 + 2e66: 0c03 bf 0x2e6c // 2e6c + SYSCON->EXICR = EXI_PIN9; + 2e68: b34b st.w r2, (r3, 0x2c) +} + 2e6a: 07f1 br 0x2e4c // 2e4c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 2e6c: 3280 movi r2, 128 + 2e6e: 932c ld.w r1, (r3, 0x30) + 2e70: 4241 lsli r2, r2, 1 + 2e72: 6848 and r1, r2 + 2e74: 3940 cmpnei r1, 0 + 2e76: 0bf9 bt 0x2e68 // 2e68 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 2e78: 3280 movi r2, 128 + 2e7a: 932c ld.w r1, (r3, 0x30) + 2e7c: 4242 lsli r2, r2, 2 + 2e7e: 6848 and r1, r2 + 2e80: 3940 cmpnei r1, 0 + 2e82: 0bf3 bt 0x2e68 // 2e68 + 2e84: 07e4 br 0x2e4c // 2e4c + 2e86: 0000 bkpt + 2e88: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002e8c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2e8c: 1460 nie + 2e8e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2e90: 1076 lrw r3, 0x2000005c // 2ee8 + 2e92: 3280 movi r2, 128 + 2e94: 9360 ld.w r3, (r3, 0x0) + 2e96: 237f addi r3, 128 + 2e98: 932c ld.w r1, (r3, 0x30) + 2e9a: 4243 lsli r2, r2, 3 + 2e9c: 6848 and r1, r2 + 2e9e: 3940 cmpnei r1, 0 + 2ea0: 0c03 bf 0x2ea6 // 2ea6 + SYSCON->EXICR = EXI_PIN14; + + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 2ea2: b34b st.w r2, (r3, 0x2c) + } +} + 2ea4: 041f br 0x2ee2 // 2ee2 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2ea6: 3280 movi r2, 128 + 2ea8: 932c ld.w r1, (r3, 0x30) + 2eaa: 4244 lsli r2, r2, 4 + 2eac: 6848 and r1, r2 + 2eae: 3940 cmpnei r1, 0 + 2eb0: 0bf9 bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2eb2: 3280 movi r2, 128 + 2eb4: 932c ld.w r1, (r3, 0x30) + 2eb6: 4245 lsli r2, r2, 5 + 2eb8: 6848 and r1, r2 + 2eba: 3940 cmpnei r1, 0 + 2ebc: 0bf3 bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2ebe: 3280 movi r2, 128 + 2ec0: 932c ld.w r1, (r3, 0x30) + 2ec2: 4246 lsli r2, r2, 6 + 2ec4: 6848 and r1, r2 + 2ec6: 3940 cmpnei r1, 0 + 2ec8: 0bed bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2eca: 3280 movi r2, 128 + 2ecc: 932c ld.w r1, (r3, 0x30) + 2ece: 4247 lsli r2, r2, 7 + 2ed0: 6848 and r1, r2 + 2ed2: 3940 cmpnei r1, 0 + 2ed4: 0be7 bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2ed6: 3280 movi r2, 128 + 2ed8: 932c ld.w r1, (r3, 0x30) + 2eda: 4248 lsli r2, r2, 8 + 2edc: 6848 and r1, r2 + 2ede: 3940 cmpnei r1, 0 + 2ee0: 0be1 bt 0x2ea2 // 2ea2 +} + 2ee2: 1463 ipop + 2ee4: 1461 nir + 2ee6: 0000 bkpt + 2ee8: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002eec : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2eec: 1460 nie + 2eee: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2ef0: 106b lrw r3, 0x20000014 // 2f1c + 2ef2: 3101 movi r1, 1 + 2ef4: 9360 ld.w r3, (r3, 0x0) + 2ef6: 934e ld.w r2, (r3, 0x38) + 2ef8: 6884 and r2, r1 + 2efa: 3a40 cmpnei r2, 0 + 2efc: 0c03 bf 0x2f02 // 2f02 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2efe: b330 st.w r1, (r3, 0x40) + } +} + 2f00: 040b br 0x2f16 // 2f16 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2f02: 934e ld.w r2, (r3, 0x38) + 2f04: 3102 movi r1, 2 + 2f06: 6884 and r2, r1 + 2f08: 3a40 cmpnei r2, 0 + 2f0a: 0bfa bt 0x2efe // 2efe + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2f0c: 934e ld.w r2, (r3, 0x38) + 2f0e: 3104 movi r1, 4 + 2f10: 6884 and r2, r1 + 2f12: 3a40 cmpnei r2, 0 + 2f14: 0bf5 bt 0x2efe // 2efe +} + 2f16: 1463 ipop + 2f18: 1461 nir + 2f1a: 0000 bkpt + 2f1c: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002f20 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2f20: 1460 nie + 2f22: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2f24: 1071 lrw r3, 0x2000000c // 2f68 + 2f26: 3101 movi r1, 1 + 2f28: 9360 ld.w r3, (r3, 0x0) + 2f2a: 934c ld.w r2, (r3, 0x30) + 2f2c: 6884 and r2, r1 + 2f2e: 3a40 cmpnei r2, 0 + 2f30: 0c0a bf 0x2f44 // 2f44 + { + BT0->ICR = BT_PEND; + 2f32: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2f34: 9341 ld.w r2, (r3, 0x4) + 2f36: 3a86 bclri r2, 6 + 2f38: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2f3a: 9340 ld.w r2, (r3, 0x0) + 2f3c: 3200 movi r2, 0 + 2f3e: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2f40: 1463 ipop + 2f42: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2f44: 934c ld.w r2, (r3, 0x30) + 2f46: 3102 movi r1, 2 + 2f48: 6884 and r2, r1 + 2f4a: 3a40 cmpnei r2, 0 + 2f4c: 0c03 bf 0x2f52 // 2f52 + BT0->ICR = BT_EVTRG; + 2f4e: b32d st.w r1, (r3, 0x34) +} + 2f50: 07f8 br 0x2f40 // 2f40 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2f52: 934c ld.w r2, (r3, 0x30) + 2f54: 3104 movi r1, 4 + 2f56: 6884 and r2, r1 + 2f58: 3a40 cmpnei r2, 0 + 2f5a: 0bfa bt 0x2f4e // 2f4e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2f5c: 934c ld.w r2, (r3, 0x30) + 2f5e: 3108 movi r1, 8 + 2f60: 6884 and r2, r1 + 2f62: 3a40 cmpnei r2, 0 + 2f64: 0bf5 bt 0x2f4e // 2f4e + 2f66: 07ed br 0x2f40 // 2f40 + 2f68: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002f6c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2f6c: 1460 nie + 2f6e: 1462 ipush + 2f70: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2f72: 1079 lrw r3, 0x20000008 // 2fd4 + 2f74: 3101 movi r1, 1 + 2f76: 9360 ld.w r3, (r3, 0x0) + 2f78: 934c ld.w r2, (r3, 0x30) + 2f7a: 6884 and r2, r1 + 2f7c: 3a40 cmpnei r2, 0 + 2f7e: 0c03 bf 0x2f84 // 2f84 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2f80: b32d st.w r1, (r3, 0x34) + } +} + 2f82: 0418 br 0x2fb2 // 2fb2 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2f84: 934c ld.w r2, (r3, 0x30) + 2f86: 3102 movi r1, 2 + 2f88: 6884 and r2, r1 + 2f8a: 3a40 cmpnei r2, 0 + 2f8c: 0c18 bf 0x2fbc // 2fbc + BT1->ICR = BT_CMP; + 2f8e: b32d st.w r1, (r3, 0x34) + NUM++; + 2f90: 1072 lrw r3, 0x200000b0 // 2fd8 + 2f92: 8340 ld.b r2, (r3, 0x0) + 2f94: 2200 addi r2, 1 + 2f96: 7488 zextb r2, r2 + SysTick_100us++; + 2f98: 9321 ld.w r1, (r3, 0x4) + 2f9a: 2100 addi r1, 1 + if(NUM >= 10){ + 2f9c: 3a09 cmphsi r2, 10 + NUM++; + 2f9e: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2fa0: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2fa2: 0c08 bf 0x2fb2 // 2fb2 + NUM = 0; + 2fa4: 3200 movi r2, 0 + 2fa6: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2fa8: 9342 ld.w r2, (r3, 0x8) + 2faa: 2200 addi r2, 1 + 2fac: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 2fae: e0000341 bsr 0x3630 // 3630 +} + 2fb2: d9ee2000 ld.w r15, (r14, 0x0) + 2fb6: 1401 addi r14, r14, 4 + 2fb8: 1463 ipop + 2fba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 2fbc: 934c ld.w r2, (r3, 0x30) + 2fbe: 3104 movi r1, 4 + 2fc0: 6884 and r2, r1 + 2fc2: 3a40 cmpnei r2, 0 + 2fc4: 0bde bt 0x2f80 // 2f80 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 2fc6: 934c ld.w r2, (r3, 0x30) + 2fc8: 3108 movi r1, 8 + 2fca: 6884 and r2, r1 + 2fcc: 3a40 cmpnei r2, 0 + 2fce: 0bd9 bt 0x2f80 // 2f80 + 2fd0: 07f1 br 0x2fb2 // 2fb2 + 2fd2: 0000 bkpt + 2fd4: 20000008 .long 0x20000008 + 2fd8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00002fdc : + 2fdc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00002fde : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 2fde: 1460 nie + 2fe0: 1462 ipush + // ISR content ... + +} + 2fe2: 1463 ipop + 2fe4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00002fe6 : + 2fe6: 1460 nie + 2fe8: 1462 ipush + 2fea: 1463 ipop + 2fec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00002fee : + 2fee: 1460 nie + 2ff0: 1462 ipush + 2ff2: 1463 ipop + 2ff4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00002ff6 : + 2ff6: 1460 nie + 2ff8: 1462 ipush + 2ffa: 1463 ipop + 2ffc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00002ffe : + 2ffe: 1460 nie + 3000: 1462 ipush + 3002: 1463 ipop + 3004: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003006 : + 3006: 1460 nie + 3008: 1462 ipush + 300a: 1463 ipop + 300c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000300e : + 300e: 1460 nie + 3010: 1462 ipush + 3012: 1463 ipop + 3014: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003016 : + 3016: 1460 nie + 3018: 1462 ipush + 301a: 1463 ipop + 301c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000301e : + 301e: 1460 nie + 3020: 1462 ipush + 3022: 1463 ipop + 3024: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003026 : + 3026: 1460 nie + 3028: 1462 ipush + 302a: 1463 ipop + 302c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000302e : + 302e: 1460 nie + 3030: 1462 ipush + 3032: 1463 ipop + 3034: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003036 : + 3036: 1460 nie + 3038: 1462 ipush + 303a: 1463 ipop + 303c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003040 <__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) +{ + 3040: 14c1 push r4 + int PSR; + __asm volatile( + 3042: c0006023 mfcr r3, cr<0, 0> + 3046: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 304a: 1046 lrw r2, 0x20000000 // 3060 <__divsi3+0x20> + 304c: 3400 movi r4, 0 + 304e: 9240 ld.w r2, (r2, 0x0) + 3050: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3052: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3054: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3056: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3058: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 305c: 9202 ld.w r0, (r2, 0x8) +} + 305e: 1481 pop r4 + 3060: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003064 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3064: 14c1 push r4 + int PSR; + __asm volatile( + 3066: c0006023 mfcr r3, cr<0, 0> + 306a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 306e: 1046 lrw r2, 0x20000000 // 3084 <__udivsi3+0x20> + 3070: 3401 movi r4, 1 + 3072: 9240 ld.w r2, (r2, 0x0) + 3074: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3076: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3078: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 307a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 307c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3080: 9202 ld.w r0, (r2, 0x8) +} + 3082: 1481 pop r4 + 3084: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003088 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3088: 14c1 push r4 + int PSR; + __asm volatile( + 308a: c0006023 mfcr r3, cr<0, 0> + 308e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3092: 1046 lrw r2, 0x20000000 // 30a8 <__umodsi3+0x20> + 3094: 3401 movi r4, 1 + 3096: 9240 ld.w r2, (r2, 0x0) + 3098: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 309a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 309c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 309e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 30a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 30a4: 9203 ld.w r0, (r2, 0xc) +} + 30a6: 1481 pop r4 + 30a8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000030ac : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 30ac: c1807420 psrset ee, ie +} + 30b0: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000030b2 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 30b2: c0807020 psrclr ie +} + 30b6: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000030b8 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 30b8: 14d2 push r4-r5, r15 + switch(uart_id){ + 30ba: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 30bc: 6d07 mov r4, r1 + switch(uart_id){ + 30be: 0c1d bf 0x30f8 // 30f8 + 30c0: 3840 cmpnei r0, 0 + 30c2: 0c04 bf 0x30ca // 30ca + 30c4: 3842 cmpnei r0, 2 + 30c6: 0c3f bf 0x3144 // 3144 + GPIO_Init(GPIOB0,3,Output); + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + break; + } +} + 30c8: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 30ca: e3fff875 bsr 0x21b4 // 21b4 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 30ce: 3100 movi r1, 0 + 30d0: 3000 movi r0, 0 + 30d2: e3fff8b1 bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 30d6: 1262 lrw r3, 0x20000040 // 31dc + 30d8: 31d0 movi r1, 208 + 30da: 9300 ld.w r0, (r3, 0x0) + 30dc: 3200 movi r2, 0 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 30de: 12a1 lrw r5, 0x2000020c // 31e0 + UARTInitRxTxIntEn(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 30e0: 4121 lsli r1, r1, 1 + 30e2: e3fff91f bsr 0x2320 // 2320 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 30e6: 3274 movi r2, 116 + 30e8: 3100 movi r1, 0 + 30ea: 6c17 mov r0, r5 + 30ec: e3fff43c bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_115200_TimeOut; + 30f0: 3303 movi r3, 3 + 30f2: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 30f4: b59c st.w r4, (r5, 0x70) + break; + 30f6: 07e9 br 0x30c8 // 30c8 + UART1_DeInit(); //clear all UART Register + 30f8: e3fff86a bsr 0x21cc // 21cc + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 30fc: 3102 movi r1, 2 + 30fe: 3001 movi r0, 1 + 3100: e3fff89a bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3104: 1178 lrw r3, 0x2000003c // 31e4 + 3106: 3200 movi r2, 0 + 3108: 9300 ld.w r0, (r3, 0x0) + 310a: 1138 lrw r1, 0x1388 // 31e8 + 310c: e3fff90a bsr 0x2320 // 2320 + UART1_Int_Enable(); + 3110: e3fff876 bsr 0x21fc // 21fc + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3114: 3274 movi r2, 116 + 3116: 3100 movi r1, 0 + 3118: 1115 lrw r0, 0x20000280 // 31ec + 311a: e3fff425 bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 311e: 1175 lrw r3, 0x2000028c // 31f0 + g_uart[UART_1].processing_cf = prt_cf; + 3120: b399 st.w r4, (r3, 0x64) + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 3122: 3203 movi r2, 3 + GPIO_Init(GPIOA0,13,Output); + 3124: 1194 lrw r4, 0x2000004c // 31f4 + 3126: 310d movi r1, 13 + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 3128: b357 st.w r2, (r3, 0x5c) + GPIO_Init(GPIOA0,13,Output); + 312a: 9400 ld.w r0, (r4, 0x0) + 312c: 3200 movi r2, 0 + 312e: e3fff689 bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOA0,13); + 3132: 310d movi r1, 13 + 3134: 9400 ld.w r0, (r4, 0x0) + 3136: e3fff6ff bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOA0,13); + 313a: 9400 ld.w r0, (r4, 0x0) + 313c: 310d movi r1, 13 + GPIO_Write_Low(GPIOB0,3); + 313e: e3fff7c3 bsr 0x20c4 // 20c4 +} + 3142: 07c3 br 0x30c8 // 30c8 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3144: 3274 movi r2, 116 + 3146: 3100 movi r1, 0 + 3148: 110c lrw r0, 0x200002f4 // 31f8 + 314a: e3fff40d bsr 0x1964 // 1964 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 314e: 3288 movi r2, 136 + 3150: 3100 movi r1, 0 + 3152: 110b lrw r0, 0x20000368 // 31fc + 3154: e3fff408 bsr 0x1964 // 1964 <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3158: 116a lrw r3, 0x200003c8 // 3200 + 315a: 3201 movi r2, 1 + 315c: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 315e: 116a lrw r3, 0x2000030c // 3204 + g_uart[UART_2].processing_cf = prt_cf; + 3160: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3162: 3203 movi r2, 3 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 3164: 1189 lrw r4, 0x20000048 // 3208 + 3166: 3105 movi r1, 5 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3168: b354 st.w r2, (r3, 0x50) + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 316a: 9400 ld.w r0, (r4, 0x0) + 316c: e3fff6da bsr 0x1f20 // 1f20 + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 3170: 3205 movi r2, 5 + 3172: 3105 movi r1, 5 + 3174: 3002 movi r0, 2 + 3176: e3fff6e7 bsr 0x1f44 // 1f44 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 317a: 3005 movi r0, 5 + 317c: e3fff76a bsr 0x2050 // 2050 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 3180: 3201 movi r2, 1 + 3182: 3120 movi r1, 32 + 3184: 3001 movi r0, 1 + 3186: e3fff5b1 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 318a: 3200 movi r2, 0 + 318c: 3120 movi r1, 32 + 318e: 3001 movi r0, 1 + 3190: e3fff5ac bsr 0x1ce8 // 1ce8 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 3194: 3120 movi r1, 32 + 3196: 3001 movi r0, 1 + 3198: e3fff5c8 bsr 0x1d28 // 1d28 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 319c: 3120 movi r1, 32 + 319e: 9400 ld.w r0, (r4, 0x0) + 31a0: e3fff5de bsr 0x1d5c // 1d5c + EXI3_Int_Enable(); + 31a4: e3fff5de bsr 0x1d60 // 1d60 + UART2_DeInit(); //clear all UART Register + 31a8: e3fff81e bsr 0x21e4 // 21e4 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 31ac: 3102 movi r1, 2 + 31ae: 3002 movi r0, 2 + 31b0: e3fff842 bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 31b4: 1076 lrw r3, 0x20000038 // 320c + 31b6: 3200 movi r2, 0 + 31b8: 9300 ld.w r0, (r3, 0x0) + 31ba: 102c lrw r1, 0x1388 // 31e8 + 31bc: e3fff8b2 bsr 0x2320 // 2320 + UART2_Int_Enable(); + 31c0: e3fff82c bsr 0x2218 // 2218 + GPIO_Init(GPIOB0,3,Output); + 31c4: 3200 movi r2, 0 + 31c6: 3103 movi r1, 3 + 31c8: 9400 ld.w r0, (r4, 0x0) + 31ca: e3fff63b bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOB0,3); + 31ce: 3103 movi r1, 3 + 31d0: 9400 ld.w r0, (r4, 0x0) + 31d2: e3fff6b1 bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOB0,3); + 31d6: 9400 ld.w r0, (r4, 0x0) + 31d8: 3103 movi r1, 3 + 31da: 07b2 br 0x313e // 313e + 31dc: 20000040 .long 0x20000040 + 31e0: 2000020c .long 0x2000020c + 31e4: 2000003c .long 0x2000003c + 31e8: 00001388 .long 0x00001388 + 31ec: 20000280 .long 0x20000280 + 31f0: 2000028c .long 0x2000028c + 31f4: 2000004c .long 0x2000004c + 31f8: 200002f4 .long 0x200002f4 + 31fc: 20000368 .long 0x20000368 + 3200: 200003c8 .long 0x200003c8 + 3204: 2000030c .long 0x2000030c + 3208: 20000048 .long 0x20000048 + 320c: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_RecvINT_Processing: + +00003210 : + +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + 3210: 14c1 push r4 + if((g_uart[UART_0].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + 3212: 106b lrw r3, 0x2000024c // 323c + 3214: 8b33 ld.h r1, (r3, 0x26) + 3216: 3262 movi r2, 98 + 3218: 6449 cmplt r2, r1 + 321a: 0c03 bf 0x3220 // 3220 + 321c: 3200 movi r2, 0 + 321e: ab53 st.h r2, (r3, 0x26) + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 3220: 8b33 ld.h r1, (r3, 0x26) + 3222: 5982 addi r4, r1, 1 + 3224: ab93 st.h r4, (r3, 0x26) + 3226: 1047 lrw r2, 0x2000020c // 3240 + + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 3228: 1067 lrw r3, 0x200000b8 // 3244 + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 322a: 6048 addu r1, r2 + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 322c: 9360 ld.w r3, (r3, 0x0) + 322e: b27b st.w r3, (r2, 0x6c) + g_uart[UART_0].Receiving = 0x01; + 3230: 225f addi r2, 96 + 3232: 3301 movi r3, 1 + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 3234: a100 st.b r0, (r1, 0x0) + g_uart[UART_0].Receiving = 0x01; + 3236: a264 st.b r3, (r2, 0x4) +} + 3238: 1481 pop r4 + 323a: 0000 bkpt + 323c: 2000024c .long 0x2000024c + 3240: 2000020c .long 0x2000020c + 3244: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART1_RecvINT_Processing: + +00003248 : + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + 3248: 14c1 push r4 + if((g_uart[UART_1].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_1].RecvLen = 0; + 324a: 106b lrw r3, 0x200002cc // 3274 + 324c: 8b2d ld.h r1, (r3, 0x1a) + 324e: 3262 movi r2, 98 + 3250: 6449 cmplt r2, r1 + 3252: 0c03 bf 0x3258 // 3258 + 3254: 3200 movi r2, 0 + 3256: ab4d st.h r2, (r3, 0x1a) + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + 3258: 8b4d ld.h r2, (r3, 0x1a) + 325a: 1028 lrw r1, 0x2000020c // 3278 + 325c: 5a82 addi r4, r2, 1 + 325e: 6084 addu r2, r1 + 3260: 2273 addi r2, 116 + 3262: a200 st.b r0, (r2, 0x0) + + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 3264: 217f addi r1, 128 + 3266: 1046 lrw r2, 0x200000b8 // 327c + 3268: 9240 ld.w r2, (r2, 0x0) + 326a: b158 st.w r2, (r1, 0x60) + g_uart[UART_1].Receiving = 0x01; + 326c: 3201 movi r2, 1 + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + 326e: ab8d st.h r4, (r3, 0x1a) + g_uart[UART_1].Receiving = 0x01; + 3270: a358 st.b r2, (r3, 0x18) +} + 3272: 1481 pop r4 + 3274: 200002cc .long 0x200002cc + 3278: 2000020c .long 0x2000020c + 327c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART1_TASK: + +00003280 : + + +void UART1_TASK(void){ + 3280: 14d4 push r4-r7, r15 + U8_T rev = 0xFF; + if(g_uart[UART_1].Receiving == 0x01){ + 3282: 10b5 lrw r5, 0x200002cc // 32d4 + 3284: 8578 ld.b r3, (r5, 0x18) + 3286: 3b41 cmpnei r3, 1 + 3288: 0825 bt 0x32d2 // 32d2 + if(SysTick_1ms - g_uart[UART_1].RecvIdleTiming > g_uart[UART_1].RecvTimeout){ + 328a: 1094 lrw r4, 0x2000028c // 32d8 + 328c: 10d4 lrw r6, 0x200000b8 // 32dc + 328e: 9660 ld.w r3, (r6, 0x0) + 3290: 9458 ld.w r2, (r4, 0x60) + 3292: 60ca subu r3, r2 + 3294: 9457 ld.w r2, (r4, 0x5c) + 3296: 64c8 cmphs r2, r3 + 3298: 081d bt 0x32d2 // 32d2 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 329a: e3fff571 bsr 0x1d7c // 1d7c + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + 329e: 8ded ld.h r7, (r5, 0x1a) + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 32a0: 9660 ld.w r3, (r6, 0x0) + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + 32a2: 6c9f mov r2, r7 + 32a4: 102f lrw r1, 0x20000280 // 32e0 + 32a6: 1010 lrw r0, 0x200000bc // 32e4 + DealLen = g_uart[UART_1].RecvLen; + 32a8: 10d0 lrw r6, 0x200000fc // 32e8 + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 32aa: b478 st.w r3, (r4, 0x60) + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + 32ac: e3fff3a0 bsr 0x19ec // 19ec <__memcpy_fast> + g_uart[UART_1].RecvLen = 0; + 32b0: 3300 movi r3, 0 + 32b2: ad6d st.h r3, (r5, 0x1a) + g_uart[UART_1].Receiving = 0; + 32b4: a578 st.b r3, (r5, 0x18) + DealLen = g_uart[UART_1].RecvLen; + 32b6: aef2 st.h r7, (r6, 0x24) + SYSCON_Int_Enable(); + 32b8: e3fff55c bsr 0x1d70 // 1d70 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_1].processing_cf != NULL){ + 32bc: 9479 ld.w r3, (r4, 0x64) + 32be: 3b40 cmpnei r3, 0 + 32c0: 0c04 bf 0x32c8 // 32c8 + rev = g_uart[UART_1].processing_cf(DealBuffer,DealLen); + 32c2: 8e32 ld.h r1, (r6, 0x24) + 32c4: 1008 lrw r0, 0x200000bc // 32e4 + 32c6: 7bcd jsr r3 + } + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 32c8: 3264 movi r2, 100 + 32ca: 3100 movi r1, 0 + 32cc: 1006 lrw r0, 0x200000bc // 32e4 + 32ce: e3fff34b bsr 0x1964 // 1964 <__memset_fast> + } + } +} + 32d2: 1494 pop r4-r7, r15 + 32d4: 200002cc .long 0x200002cc + 32d8: 2000028c .long 0x2000028c + 32dc: 200000b8 .long 0x200000b8 + 32e0: 20000280 .long 0x20000280 + 32e4: 200000bc .long 0x200000bc + 32e8: 200000fc .long 0x200000fc + +Disassembly of section .text.UART2_RecvINT_Processing: + +000032ec : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 32ec: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 32ee: 104e lrw r2, 0x2000035a // 3324 + 32f0: 8a20 ld.h r1, (r2, 0x0) + 32f2: 3362 movi r3, 98 + 32f4: 644d cmplt r3, r1 + 32f6: 0c03 bf 0x32fc // 32fc + 32f8: 3300 movi r3, 0 + 32fa: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 32fc: 8a60 ld.h r3, (r2, 0x0) + 32fe: 102b lrw r1, 0x2000020c // 3328 + 3300: 5b82 addi r4, r3, 1 + 3302: 60c4 addu r3, r1 + 3304: 23e7 addi r3, 232 + 3306: a300 st.b r0, (r3, 0x0) + 3308: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 330a: 1069 lrw r3, 0x200000b8 // 332c + 330c: 9340 ld.w r2, (r3, 0x0) + 330e: 3380 movi r3, 128 + 3310: 4361 lsli r3, r3, 1 + 3312: 60c4 addu r3, r1 + 3314: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 3316: 33a6 movi r3, 166 + 3318: 4361 lsli r3, r3, 1 + 331a: 604c addu r1, r3 + 331c: 3301 movi r3, 1 + 331e: a160 st.b r3, (r1, 0x0) +} + 3320: 1481 pop r4 + 3322: 0000 bkpt + 3324: 2000035a .long 0x2000035a + 3328: 2000020c .long 0x2000020c + 332c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_TASK: + +00003330 : + + +void UART2_TASK(void){ + 3330: 14d4 push r4-r7, r15 + 3332: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3334: 10b7 lrw r5, 0x20000358 // 3390 + 3336: 8560 ld.b r3, (r5, 0x0) + 3338: 3b41 cmpnei r3, 1 + 333a: 0828 bt 0x338a // 338a + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 333c: 1096 lrw r4, 0x2000030c // 3394 + 333e: 10d7 lrw r6, 0x200000b8 // 3398 + 3340: 9660 ld.w r3, (r6, 0x0) + 3342: 9455 ld.w r2, (r4, 0x54) + 3344: 60ca subu r3, r2 + 3346: 9454 ld.w r2, (r4, 0x50) + 3348: 64c8 cmphs r2, r3 + 334a: 0820 bt 0x338a // 338a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 334c: e3fff518 bsr 0x1d7c // 1d7c + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3350: 9660 ld.w r3, (r6, 0x0) + 3352: b475 st.w r3, (r4, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3354: 8d61 ld.h r3, (r5, 0x2) + 3356: 6c8f mov r2, r3 + 3358: 1031 lrw r1, 0x200002f4 // 339c + 335a: 1012 lrw r0, 0x200000bc // 33a0 + DealLen = g_uart[UART_2].RecvLen; + 335c: 10d2 lrw r6, 0x200000fc // 33a4 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 335e: b860 st.w r3, (r14, 0x0) + 3360: e3fff346 bsr 0x19ec // 19ec <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3364: 9860 ld.w r3, (r14, 0x0) + 3366: ae72 st.h r3, (r6, 0x24) + g_uart[UART_2].RecvLen = 0; + 3368: 3300 movi r3, 0 + 336a: ad61 st.h r3, (r5, 0x2) + g_uart[UART_2].Receiving = 0; + 336c: a560 st.b r3, (r5, 0x0) + SYSCON_Int_Enable(); + 336e: e3fff501 bsr 0x1d70 // 1d70 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3372: 9476 ld.w r3, (r4, 0x58) + 3374: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3376: 5de6 addi r7, r5, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 3378: 0c04 bf 0x3380 // 3380 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 337a: 8e32 ld.h r1, (r6, 0x24) + 337c: 1009 lrw r0, 0x200000bc // 33a0 + 337e: 7bcd jsr r3 +// { +// Boot_Comm_UpgradeProcess(DealBuffer,DealLen); +// } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3380: 3264 movi r2, 100 + 3382: 3100 movi r1, 0 + 3384: 1007 lrw r0, 0x200000bc // 33a0 + 3386: e3fff2ef bsr 0x1964 // 1964 <__memset_fast> + } + } +} + 338a: 1401 addi r14, r14, 4 + 338c: 1494 pop r4-r7, r15 + 338e: 0000 bkpt + 3390: 20000358 .long 0x20000358 + 3394: 2000030c .long 0x2000030c + 3398: 200000b8 .long 0x200000b8 + 339c: 200002f4 .long 0x200002f4 + 33a0: 200000bc .long 0x200000bc + 33a4: 200000fc .long 0x200000fc + +Disassembly of section .text.Controller485_SendData: + +000033a8 : + CK_CPU_EnAllNormalIrq(); +} + +//发送给设备端的485发送函数 +void Controller485_SendData(U8_T *buff,U16_T len) +{ + 33a8: 14d4 push r4-r7, r15 + 33aa: 1422 subi r14, r14, 8 + 33ac: b800 st.w r0, (r14, 0x0) + 33ae: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 33b0: 3400 movi r4, 0 + + //等待通讯发送完成 + while(RS485_Comming1 == 0x01){ + 33b2: 11a4 lrw r5, 0x200000bc // 3440 + 33b4: 11c4 lrw r6, 0x2000004c // 3444 + 33b6: 957e ld.w r3, (r5, 0x78) + 33b8: 3b41 cmpnei r3, 1 + 33ba: 0c36 bf 0x3426 // 3426 + } + + GPIO_Reverse(GPIOA0,13); + } + + delay_nus(500); + 33bc: 30fa movi r0, 250 + 33be: 4001 lsli r0, r0, 1 + 33c0: e3fff874 bsr 0x24a8 // 24a8 + + CK_CPU_DisAllNormalIrq(); + 33c4: e3fffe77 bsr 0x30b2 // 30b2 + GPIO_Write_High(GPIOA0,13); + 33c8: 310d movi r1, 13 + 33ca: 9600 ld.w r0, (r6, 0x0) + 33cc: e3fff678 bsr 0x20bc // 20bc + + RS485_Comm_Flag1 = 0x01; + 33d0: 3301 movi r3, 1 + 33d2: b57f st.w r3, (r5, 0x7c) + RS485_Comm_Start1 = 0x00; + 33d4: 3200 movi r2, 0 + 33d6: 107d lrw r3, 0x2000013c // 3448 + 33d8: b340 st.w r2, (r3, 0x0) + RS485_Comm_End1 = 0x00; + 33da: b861 st.w r3, (r14, 0x4) + 33dc: b341 st.w r2, (r3, 0x4) + CK_CPU_EnAllNormalIrq(); + 33de: e3fffe67 bsr 0x30ac // 30ac + + UARTTransmit(UART1,buff,len); + 33e2: 105b lrw r2, 0x2000003c // 344c + 33e4: 9200 ld.w r0, (r2, 0x0) + 33e6: 9820 ld.w r1, (r14, 0x0) + 33e8: 6c9f mov r2, r7 + 33ea: e3fff7a3 bsr 0x2330 // 2330 + 33ee: 9861 ld.w r3, (r14, 0x4) + + do{ + delay_nus(100); + 33f0: 3064 movi r0, 100 + 33f2: b860 st.w r3, (r14, 0x0) + + delay_cnt ++; + 33f4: 2400 addi r4, 1 + delay_nus(100); + 33f6: e3fff859 bsr 0x24a8 // 24a8 + if(delay_cnt >= 100){ + 33fa: 3263 movi r2, 99 + 33fc: 6508 cmphs r2, r4 + 33fe: 0c08 bf 0x340e // 340e + break; + } + + }while((RS485_Comm_Start1 < len) || (RS485_Comm_End1 < len)); //发送完成 + 3400: 9860 ld.w r3, (r14, 0x0) + 3402: 9340 ld.w r2, (r3, 0x0) + 3404: 65c9 cmplt r2, r7 + 3406: 0bf5 bt 0x33f0 // 33f0 + 3408: 9341 ld.w r2, (r3, 0x4) + 340a: 65c9 cmplt r2, r7 + 340c: 0bf2 bt 0x33f0 // 33f0 + + CK_CPU_DisAllNormalIrq(); + 340e: e3fffe52 bsr 0x30b2 // 30b2 + GPIO_Write_Low(GPIOA0,13); + 3412: 9600 ld.w r0, (r6, 0x0) + 3414: 310d movi r1, 13 + 3416: e3fff657 bsr 0x20c4 // 20c4 + + RS485_Comm_Flag1 = 0x00; + 341a: 3300 movi r3, 0 + 341c: b57f st.w r3, (r5, 0x7c) + CK_CPU_EnAllNormalIrq(); + 341e: e3fffe47 bsr 0x30ac // 30ac +} + 3422: 1402 addi r14, r14, 8 + 3424: 1494 pop r4-r7, r15 + delay_nus(100); + 3426: 3064 movi r0, 100 + 3428: e3fff840 bsr 0x24a8 // 24a8 + delay_cnt ++; + 342c: 2400 addi r4, 1 + if(delay_cnt >= 100){ + 342e: 3364 movi r3, 100 + 3430: 64d2 cmpne r4, r3 + 3432: 0fc5 bf 0x33bc // 33bc + GPIO_Reverse(GPIOA0,13); + 3434: 310d movi r1, 13 + 3436: 9600 ld.w r0, (r6, 0x0) + 3438: e3fff64a bsr 0x20cc // 20cc + 343c: 07bd br 0x33b6 // 33b6 + 343e: 0000 bkpt + 3440: 200000bc .long 0x200000bc + 3444: 2000004c .long 0x2000004c + 3448: 2000013c .long 0x2000013c + 344c: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00003450 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3450: 14d4 push r4-r7, r15 + 3452: 1423 subi r14, r14, 12 + 3454: b802 st.w r0, (r14, 0x8) + 3456: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3458: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 345a: 1189 lrw r4, 0x200000bc // 34fc + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 345c: 11c9 lrw r6, 0x20000048 // 3500 + while(RS485_Comming == 0x01){ + 345e: 947a ld.w r3, (r4, 0x68) + 3460: 3b41 cmpnei r3, 1 + 3462: 0c3e bf 0x34de // 34de + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 3464: 1168 lrw r3, 0x200003c8 // 3504 + 3466: 83c4 ld.b r6, (r3, 0x4) + 3468: 3e40 cmpnei r6, 0 + 346a: b861 st.w r3, (r14, 0x4) + 346c: 0845 bt 0x34f6 // 34f6 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 346e: 11e5 lrw r7, 0x20000048 // 3500 + CK_CPU_DisAllNormalIrq(); + 3470: e3fffe21 bsr 0x30b2 // 30b2 + GPIO_Write_High(GPIOB0,3); + 3474: 3103 movi r1, 3 + 3476: 9700 ld.w r0, (r7, 0x0) + 3478: e3fff622 bsr 0x20bc // 20bc + + RS485_Comm_Flag = 0x01; + 347c: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 347e: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3480: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3482: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 3484: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3486: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 3488: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 348a: e3fffe11 bsr 0x30ac // 30ac + + UARTTransmit(UART2,buff,len); + 348e: 105f lrw r2, 0x20000038 // 3508 + 3490: 9200 ld.w r0, (r2, 0x0) + 3492: 9822 ld.w r1, (r14, 0x8) + 3494: 9840 ld.w r2, (r14, 0x0) + 3496: e3fff74d bsr 0x2330 // 2330 + do{ + delay_nus(100); + 349a: 3064 movi r0, 100 + 349c: e3fff806 bsr 0x24a8 // 24a8 + delay_cnt ++; + 34a0: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 34a2: 3363 movi r3, 99 + 34a4: 654c cmphs r3, r5 + 34a6: 0c08 bf 0x34b6 // 34b6 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 34a8: 947c ld.w r3, (r4, 0x70) + 34aa: 9840 ld.w r2, (r14, 0x0) + 34ac: 648d cmplt r3, r2 + 34ae: 0bf6 bt 0x349a // 349a + 34b0: 947d ld.w r3, (r4, 0x74) + 34b2: 648d cmplt r3, r2 + 34b4: 0bf3 bt 0x349a // 349a + + + CK_CPU_DisAllNormalIrq(); + 34b6: e3fffdfe bsr 0x30b2 // 30b2 + + GPIO_Write_Low(GPIOB0,3); + 34ba: 9700 ld.w r0, (r7, 0x0) + 34bc: 3103 movi r1, 3 + 34be: e3fff603 bsr 0x20c4 // 20c4 + RS485_Comm_Flag = 0x00; + 34c2: 3300 movi r3, 0 + 34c4: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 34c6: 1072 lrw r3, 0x200000b8 // 350c + 34c8: 9340 ld.w r2, (r3, 0x0) + 34ca: 1072 lrw r3, 0x20000368 // 3510 + 34cc: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 34ce: 9861 ld.w r3, (r14, 0x4) + 34d0: 3200 movi r2, 0 + 34d2: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 34d4: e3fffdec bsr 0x30ac // 30ac + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 34d8: 6c1b mov r0, r6 + 34da: 1403 addi r14, r14, 12 + 34dc: 1494 pop r4-r7, r15 + delay_nus(100); + 34de: 3064 movi r0, 100 + 34e0: e3fff7e4 bsr 0x24a8 // 24a8 + delay_cnt ++; + 34e4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 34e6: 3364 movi r3, 100 + 34e8: 64d6 cmpne r5, r3 + 34ea: 0fbd bf 0x3464 // 3464 + GPIO_Reverse(GPIOB0,3); + 34ec: 3103 movi r1, 3 + 34ee: 9600 ld.w r0, (r6, 0x0) + 34f0: e3fff5ee bsr 0x20cc // 20cc + 34f4: 07b5 br 0x345e // 345e + return UART_BUSBUSY; //发送失败 + 34f6: 3601 movi r6, 1 + 34f8: 07f0 br 0x34d8 // 34d8 + 34fa: 0000 bkpt + 34fc: 200000bc .long 0x200000bc + 3500: 20000048 .long 0x20000048 + 3504: 200003c8 .long 0x200003c8 + 3508: 20000038 .long 0x20000038 + 350c: 200000b8 .long 0x200000b8 + 3510: 20000368 .long 0x20000368 + +Disassembly of section .text.MultSend_Task: + +00003514 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3514: 14d4 push r4-r7, r15 + 3516: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3518: 5963 subi r3, r1, 1 + 351a: 74cd zexth r3, r3 + 351c: 3463 movi r4, 99 + 351e: 64d0 cmphs r4, r3 +{ + 3520: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3522: 0c29 bf 0x3574 // 3574 + + if(DatSd == 0x01) + 3524: 3a41 cmpnei r2, 1 + 3526: 0c04 bf 0x352e // 352e + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3528: 3001 movi r0, 1 +} + 352a: 1401 addi r14, r14, 4 + 352c: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 352e: 1075 lrw r3, 0x20000368 // 3580 + 3530: 3760 movi r7, 96 + 3532: 61cc addu r7, r3 + 3534: 87c8 ld.b r6, (r7, 0x8) + 3536: 874a ld.b r2, (r7, 0xa) + 3538: 6498 cmphs r6, r2 + 353a: 081f bt 0x3578 // 3578 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 353c: 3480 movi r4, 128 + 353e: 10b2 lrw r5, 0x200000b8 // 3584 + 3540: 610c addu r4, r3 + 3542: 9401 ld.w r0, (r4, 0x4) + 3544: 9540 ld.w r2, (r5, 0x0) + 3546: 6082 subu r2, r0 + 3548: 931e ld.w r0, (r3, 0x78) + 354a: 6408 cmphs r2, r0 + 354c: 0818 bt 0x357c // 357c + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 354e: 3e40 cmpnei r6, 0 + 3550: 0c07 bf 0x355e // 355e + 3552: 9540 ld.w r2, (r5, 0x0) + 3554: 94c0 ld.w r6, (r4, 0x0) + 3556: 609a subu r2, r6 + 3558: 937d ld.w r3, (r3, 0x74) + 355a: 64c8 cmphs r2, r3 + 355c: 0fe6 bf 0x3528 // 3528 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 355e: 9800 ld.w r0, (r14, 0x0) + 3560: e3ffff78 bsr 0x3450 // 3450 + 3564: 3840 cmpnei r0, 0 + 3566: 0be1 bt 0x3528 // 3528 + m_send.ASend_Tick = SysTick_1ms; + 3568: 9560 ld.w r3, (r5, 0x0) + 356a: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 356c: 8768 ld.b r3, (r7, 0x8) + 356e: 2300 addi r3, 1 + 3570: a768 st.b r3, (r7, 0x8) + 3572: 07dc br 0x352a // 352a + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3574: 3004 movi r0, 4 + 3576: 07da br 0x352a // 352a + return RETRY_END;//没有重发次数 + 3578: 3003 movi r0, 3 + 357a: 07d8 br 0x352a // 352a + return DATA_END;//数据有效期结束 + 357c: 3002 movi r0, 2 + 357e: 07d6 br 0x352a // 352a + 3580: 20000368 .long 0x20000368 + 3584: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Set_GroupSend: + +00003588 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3588: 14d4 push r4-r7, r15 + 358a: 1422 subi r14, r14, 8 + 358c: 6d8b mov r6, r2 + 358e: 9847 ld.w r2, (r14, 0x1c) + 3590: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3592: 5943 subi r2, r1, 1 +{ + 3594: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3596: 7489 zexth r2, r2 + 3598: 3163 movi r1, 99 + 359a: 6484 cmphs r1, r2 +{ + 359c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 359e: 0c20 bf 0x35de // 35de + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 35a0: 1091 lrw r4, 0x20000368 // 35e4 + 35a2: 3264 movi r2, 100 + 35a4: 3100 movi r1, 0 + 35a6: 6c13 mov r0, r4 + 35a8: b861 st.w r3, (r14, 0x4) + 35aa: e3fff1dd bsr 0x1964 // 1964 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 35ae: 6c97 mov r2, r5 + 35b0: 6c13 mov r0, r4 + 35b2: 6c5f mov r1, r7 + 35b4: e3fff21c bsr 0x19ec // 19ec <__memcpy_fast> + m_send.SendLen = sled; + 35b8: 3240 movi r2, 64 + 35ba: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 35bc: 9861 ld.w r3, (r14, 0x4) + 35be: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 35c0: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 35c2: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 35c4: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 35c6: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 35c8: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 35ca: 3201 movi r2, 1 + 35cc: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 35ce: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 35d0: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 35d2: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 35d4: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 35d6: 247f addi r4, 128 + 35d8: 1064 lrw r3, 0x200000b8 // 35e8 + 35da: 9360 ld.w r3, (r3, 0x0) + 35dc: b461 st.w r3, (r4, 0x4) +} + 35de: 1402 addi r14, r14, 8 + 35e0: 1494 pop r4-r7, r15 + 35e2: 0000 bkpt + 35e4: 20000368 .long 0x20000368 + 35e8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Clear_SendFlag: + +000035ec : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 35ec: 1063 lrw r3, 0x200003c8 // 35f8 + 35ee: 3200 movi r2, 0 + 35f0: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 35f2: a347 st.b r2, (r3, 0x7) +} + 35f4: 783c jmp r15 + 35f6: 0000 bkpt + 35f8: 200003c8 .long 0x200003c8 + +Disassembly of section .text.BUS485Send_Task: + +000035fc : + m_send.Jump_Flag = jump; +} + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 35fc: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 35fe: 108a lrw r4, 0x200003c8 // 3624 + 3600: 8469 ld.b r3, (r4, 0x9) + 3602: 3b41 cmpnei r3, 1 + 3604: 080e bt 0x3620 // 3620 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 3606: 1069 lrw r3, 0x200003a8 // 3628 + 3608: 8b37 ld.h r1, (r3, 0x2e) + 360a: 3201 movi r2, 1 + 360c: 1008 lrw r0, 0x20000368 // 362c + 360e: e3ffff83 bsr 0x3514 // 3514 + 3612: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 3614: 2801 subi r0, 2 + 3616: 7400 zextb r0, r0 + 3618: 3801 cmphsi r0, 2 + 361a: 0803 bt 0x3620 // 3620 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 361c: 3300 movi r3, 0 + 361e: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 3620: 1491 pop r4, r15 + 3622: 0000 bkpt + 3624: 200003c8 .long 0x200003c8 + 3628: 200003a8 .long 0x200003a8 + 362c: 20000368 .long 0x20000368 + +Disassembly of section .text.BusIdle_Task: + +00003630 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 3630: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 3632: 10ae lrw r5, 0x20000368 // 3668 + 3634: 3460 movi r4, 96 + 3636: 6114 addu r4, r5 + 3638: 8464 ld.b r3, (r4, 0x4) + 363a: 3b40 cmpnei r3, 0 + 363c: 0c15 bf 0x3666 // 3666 + 363e: 8466 ld.b r3, (r4, 0x6) + 3640: 3b41 cmpnei r3, 1 + 3642: 0c12 bf 0x3666 // 3666 + { + CK_CPU_DisAllNormalIrq(); + 3644: e3fffd37 bsr 0x30b2 // 30b2 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 3648: 8465 ld.b r3, (r4, 0x5) + 364a: 3b41 cmpnei r3, 1 + 364c: 080b bt 0x3662 // 3662 + 364e: 1068 lrw r3, 0x200000b8 // 366c + 3650: 9340 ld.w r2, (r3, 0x0) + 3652: 957f ld.w r3, (r5, 0x7c) + 3654: 608e subu r2, r3 + 3656: 957c ld.w r3, (r5, 0x70) + 3658: 2305 addi r3, 6 + 365a: 64c8 cmphs r2, r3 + 365c: 0c03 bf 0x3662 // 3662 + { + m_send.BusState_Flag = UART_BUSIDLE; + 365e: 3300 movi r3, 0 + 3660: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 3662: e3fffd25 bsr 0x30ac // 30ac + } +} + 3666: 1492 pop r4-r5, r15 + 3668: 20000368 .long 0x20000368 + 366c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.BusBusy_Task: + +00003670 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 3670: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 3672: 1094 lrw r4, 0x20000368 // 36c0 + 3674: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 3676: e3fffd1e bsr 0x30b2 // 30b2 + m_send.BusState_Flag = UART_BUSBUSY; + 367a: 6150 addu r5, r4 + 367c: 3301 movi r3, 1 + 367e: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3680: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 3682: 1071 lrw r3, 0x200000b8 // 36c4 + 3684: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3686: 9300 ld.w r0, (r3, 0x0) + 3688: 3380 movi r3, 128 + 368a: 60d0 addu r3, r4 + 368c: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 368e: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3690: 600e subu r0, r3 + 3692: e3fffcfb bsr 0x3088 // 3088 <__umodsi3> + 3696: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 3698: 3105 movi r1, 5 + 369a: 108c lrw r4, 0x20000048 // 36c8 + 369c: 9400 ld.w r0, (r4, 0x0) + 369e: e3fff522 bsr 0x20e2 // 20e2 + 36a2: 3841 cmpnei r0, 1 + 36a4: 0806 bt 0x36b0 // 36b0 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 36a6: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 36a8: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 36aa: e3fffd01 bsr 0x30ac // 30ac +} + 36ae: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 36b0: 9400 ld.w r0, (r4, 0x0) + 36b2: 3105 movi r1, 5 + 36b4: e3fff517 bsr 0x20e2 // 20e2 + 36b8: 3840 cmpnei r0, 0 + 36ba: 0bf8 bt 0x36aa // 36aa + m_send.HighBit_Flag = 0x00; //低电平 + 36bc: 3300 movi r3, 0 + 36be: 07f5 br 0x36a8 // 36a8 + 36c0: 20000368 .long 0x20000368 + 36c4: 200000b8 .long 0x200000b8 + 36c8: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +000036cc : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 36cc: 1423 subi r14, r14, 12 + 36ce: b862 st.w r3, (r14, 0x8) + 36d0: b841 st.w r2, (r14, 0x4) + 36d2: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 36d4: 1403 addi r14, r14, 12 + 36d6: 783c jmp r15 + +Disassembly of section .text.EEPROM_CheckSum: + +000036d8 : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 36d8: 6cc3 mov r3, r0 + 36da: 6040 addu r1, r0 + U8_T data_sum = 0; + 36dc: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 36e2: 783c jmp r15 + data_sum += data[i]; + 36e4: 8340 ld.b r2, (r3, 0x0) + 36e6: 6008 addu r0, r2 + 36e8: 7400 zextb r0, r0 + 36ea: 2300 addi r3, 1 + 36ec: 07f9 br 0x36de // 36de + +Disassembly of section .text.EEPROM_ReadParaInfo: + +000036f0 : + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 36f0: 14d1 push r4, r15 + 36f2: 143b subi r14, r14, 108 + 36f4: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 36f6: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 36f8: 3264 movi r2, 100 + 36fa: 3100 movi r1, 0 + 36fc: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 36fe: b860 st.w r3, (r14, 0x0) + 3700: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 3704: e3fff130 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 3708: 6cbb mov r2, r14 + 370a: 3104 movi r1, 4 + 370c: 1014 lrw r0, 0x10000100 // 375c + 370e: e3fff685 bsr 0x2418 // 2418 + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 3712: d84e0000 ld.b r2, (r14, 0x0) + 3716: 33a6 movi r3, 166 + 3718: 64ca cmpne r2, r3 + 371a: 0c04 bf 0x3722 // 3722 + return 0x00; + } + } + } + + return 0x01; + 371c: 3001 movi r0, 1 +} + 371e: 141b addi r14, r14, 108 + 3720: 1491 pop r4, r15 + read_len |= read_info[1]; + 3722: d82e0002 ld.b r1, (r14, 0x2) + 3726: d86e0001 ld.b r3, (r14, 0x1) + 372a: 4128 lsli r1, r1, 8 + 372c: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 372e: 3364 movi r3, 100 + 3730: 644c cmphs r3, r1 + 3732: 0ff5 bf 0x371c // 371c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 3734: 1a02 addi r2, r14, 8 + 3736: 100b lrw r0, 0x10000104 // 3760 + 3738: e3fff670 bsr 0x2418 // 2418 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 373c: 3108 movi r1, 8 + 373e: 1802 addi r0, r14, 8 + 3740: e3ffffcc bsr 0x36d8 // 36d8 + 3744: d86e0003 ld.b r3, (r14, 0x3) + 3748: 640e cmpne r3, r0 + 374a: 0be9 bt 0x371c // 371c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 374c: 3208 movi r2, 8 + 374e: 1902 addi r1, r14, 8 + 3750: 6c13 mov r0, r4 + 3752: e3fff14d bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 3756: 3000 movi r0, 0 + 3758: 07e3 br 0x371e // 371e + 375a: 0000 bkpt + 375c: 10000100 .long 0x10000100 + 3760: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00003764 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 3764: 14d0 push r15 + 3766: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 3768: 3300 movi r3, 0 + 376a: 2b59 subi r3, 90 + 376c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 3770: 3308 movi r3, 8 + 3772: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 3776: 3300 movi r3, 0 + 3778: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 377c: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 377e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 3780: 3208 movi r2, 8 + 3782: 6c0f mov r0, r3 + 3784: e3fff134 bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 3788: 3108 movi r1, 8 + 378a: e3ffffa7 bsr 0x36d8 // 36d8 + 378e: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 3792: 6cbb mov r2, r14 + 3794: 310c movi r1, 12 + 3796: 1004 lrw r0, 0x10000100 // 37a4 + 3798: e3fff5f0 bsr 0x2378 // 2378 + + return 0; +} + 379c: 3000 movi r0, 0 + 379e: 141b addi r14, r14, 108 + 37a0: 1490 pop r15 + 37a2: 0000 bkpt + 37a4: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +000037a8 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 37a8: 14d0 push r15 + 37aa: 1423 subi r14, r14, 12 +// { +// info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 +// } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 37ac: 8067 ld.b r3, (r0, 0x7) + 37ae: 3b02 cmphsi r3, 3 + 37b0: 0c03 bf 0x37b6 // 37b6 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 37b2: 3301 movi r3, 1 + 37b4: a067 st.b r3, (r0, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 37b6: 8027 ld.b r1, (r0, 0x7) + 37b8: 8064 ld.b r3, (r0, 0x4) + 37ba: 8043 ld.b r2, (r0, 0x3) + 37bc: b822 st.w r1, (r14, 0x8) + 37be: 8020 ld.b r1, (r0, 0x0) + 37c0: b821 st.w r1, (r14, 0x4) + 37c2: 8025 ld.b r1, (r0, 0x5) + 37c4: b820 st.w r1, (r14, 0x0) + 37c6: 3000 movi r0, 0 + 37c8: 1023 lrw r1, 0x5ec6 // 37d4 + 37ca: e3ffff81 bsr 0x36cc // 36cc + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 37ce: 3000 movi r0, 0 + 37d0: 1403 addi r14, r14, 12 + 37d2: 1490 pop r15 + 37d4: 00005ec6 .long 0x00005ec6 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +000037d8 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 37d8: 3301 movi r3, 1 + 37da: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 37dc: 3300 movi r3, 0 + 37de: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 37e0: 3309 movi r3, 9 + 37e2: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 37e4: 3300 movi r3, 0 + 37e6: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 37e8: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 37ea: 3301 movi r3, 1 + 37ec: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 37ee: 3300 movi r3, 0 + 37f0: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 37f2: 3301 movi r3, 1 + 37f4: a067 st.b r3, (r0, 0x7) + +} + 37f6: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +000037f8 : +void EEPROM_Init(void){ + 37f8: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 37fa: 1072 lrw r3, 0x20000060 // 3840 + 37fc: 3201 movi r2, 1 + 37fe: 9360 ld.w r3, (r3, 0x0) + 3800: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 3802: 9345 ld.w r2, (r3, 0x14) + 3804: 3aa1 bseti r2, 1 + 3806: 3ab0 bseti r2, 16 + 3808: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 380a: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 380c: 108e lrw r4, 0x200003f0 // 3844 + delay_nms(10); + 380e: e3fff637 bsr 0x247c // 247c + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 3812: 3208 movi r2, 8 + 3814: 3100 movi r1, 0 + 3816: 6c13 mov r0, r4 + 3818: e3fff0a6 bsr 0x1964 // 1964 <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 381c: 6c13 mov r0, r4 + 381e: e3ffff69 bsr 0x36f0 // 36f0 + if(rev == 0x00){ + 3822: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 3824: 6c13 mov r0, r4 + if(rev == 0x00){ + 3826: 0804 bt 0x382e // 382e + EEPROM_Validate_ParaInfo(&g_eeprom); + 3828: e3ffffc0 bsr 0x37a8 // 37a8 +} + 382c: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 382e: e3ffffd5 bsr 0x37d8 // 37d8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 3832: 8441 ld.b r2, (r4, 0x1) + 3834: 1025 lrw r1, 0x5f20 // 3848 + 3836: 3000 movi r0, 0 + 3838: e3ffff4a bsr 0x36cc // 36cc +} + 383c: 07f8 br 0x382c // 382c + 383e: 0000 bkpt + 3840: 20000060 .long 0x20000060 + 3844: 200003f0 .long 0x200003f0 + 3848: 00005f20 .long 0x00005f20 + +Disassembly of section .text.TemCtrl_Init: + +0000384c : + * 函数功能:温控初始化 + * + * +*****************************************************************/ +void TemCtrl_Init(void) +{ + 384c: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 384e: 1292 lrw r4, 0x20000420 // 3994 + 3850: 3228 movi r2, 40 + 3852: 3100 movi r1, 0 + 3854: 6c13 mov r0, r4 + 3856: e3fff087 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 385a: 1270 lrw r3, 0x200000ac // 3998 + 385c: 9360 ld.w r3, (r3, 0x0) + 385e: 3b80 bclri r3, 0 + 3860: 3b40 cmpnei r3, 0 + 3862: 0c92 bf 0x3986 // 3986 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 3864: 122e lrw r1, 0x5f49 // 399c + 3866: 3000 movi r0, 0 + 3868: e3ffff32 bsr 0x36cc // 36cc + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 386c: 126d lrw r3, 0x200000a8 // 39a0 + 386e: 30ff movi r0, 255 + 3870: 9320 ld.w r1, (r3, 0x0) + 3872: 6840 and r1, r0 + 3874: 3940 cmpnei r1, 0 + 3876: 0c05 bf 0x3880 // 3880 + 3878: 9340 ld.w r2, (r3, 0x0) + 387a: 6880 and r2, r0 + 387c: 3a41 cmpnei r2, 1 + 387e: 0877 bt 0x396c // 396c + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 3880: 9340 ld.w r2, (r3, 0x0) + 3882: 4227 lsli r1, r2, 7 + 3884: 307f movi r0, 127 + 3886: 8442 ld.b r2, (r4, 0x2) + 3888: 6880 and r2, r0 + 388a: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 388c: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 388e: 9340 ld.w r2, (r3, 0x0) + 3890: 4a48 lsri r2, r2, 8 + 3892: 30ff movi r0, 255 + 3894: 6880 and r2, r0 + 3896: 3a40 cmpnei r2, 0 + 3898: 0c10 bf 0x38b8 // 38b8 + 389a: 9340 ld.w r2, (r3, 0x0) + 389c: 4a48 lsri r2, r2, 8 + 389e: 6880 and r2, r0 + 38a0: 3a42 cmpnei r2, 2 + 38a2: 0c0b bf 0x38b8 // 38b8 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 38a4: 9320 ld.w r1, (r3, 0x0) + 38a6: 4928 lsri r1, r1, 8 + 38a8: 6840 and r1, r0 + 38aa: 3944 cmpnei r1, 4 + 38ac: 0c06 bf 0x38b8 // 38b8 + 38ae: 9340 ld.w r2, (r3, 0x0) + 38b0: 4a48 lsri r2, r2, 8 + 38b2: 6880 and r2, r0 + 38b4: 3a46 cmpnei r2, 6 + 38b6: 085f bt 0x3974 // 3974 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 38b8: 9340 ld.w r2, (r3, 0x0) + 38ba: 3107 movi r1, 7 + 38bc: 4a48 lsri r2, r2, 8 + 38be: 6884 and r2, r1 + 38c0: 3070 movi r0, 112 + 38c2: 8422 ld.b r1, (r4, 0x2) + 38c4: 4244 lsli r2, r2, 4 + 38c6: 6841 andn r1, r0 + 38c8: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 38ca: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 38cc: 9340 ld.w r2, (r3, 0x0) + 38ce: 4a50 lsri r2, r2, 16 + 38d0: 30ff movi r0, 255 + 38d2: 6880 and r2, r0 + 38d4: 3a40 cmpnei r2, 0 + 38d6: 0c10 bf 0x38f6 // 38f6 + 38d8: 9340 ld.w r2, (r3, 0x0) + 38da: 4a50 lsri r2, r2, 16 + 38dc: 6880 and r2, r0 + 38de: 3a41 cmpnei r2, 1 + 38e0: 0c0b bf 0x38f6 // 38f6 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 38e2: 9320 ld.w r1, (r3, 0x0) + 38e4: 4930 lsri r1, r1, 16 + 38e6: 6840 and r1, r0 + 38e8: 3942 cmpnei r1, 2 + 38ea: 0c06 bf 0x38f6 // 38f6 + 38ec: 9340 ld.w r2, (r3, 0x0) + 38ee: 4a50 lsri r2, r2, 16 + 38f0: 6880 and r2, r0 + 38f2: 3a43 cmpnei r2, 3 + 38f4: 0844 bt 0x397c // 397c + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 38f6: 9340 ld.w r2, (r3, 0x0) + 38f8: 3107 movi r1, 7 + 38fa: 4a50 lsri r2, r2, 16 + 38fc: 6884 and r2, r1 + 38fe: 300e movi r0, 14 + 3900: 8422 ld.b r1, (r4, 0x2) + 3902: 4241 lsli r2, r2, 1 + 3904: 6841 andn r1, r0 + 3906: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 3908: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 390a: 9340 ld.w r2, (r3, 0x0) + 390c: 4a58 lsri r2, r2, 24 + 390e: 3a0f cmphsi r2, 16 + 3910: 0c40 bf 0x3990 // 3990 + 3912: 3284 movi r2, 132 + 3914: 4256 lsli r2, r2, 22 + 3916: 9320 ld.w r1, (r3, 0x0) + 3918: 2a00 subi r2, 1 + 391a: 6448 cmphs r2, r1 + 391c: 0c3a bf 0x3990 // 3990 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 391e: 9360 ld.w r3, (r3, 0x0) + 3920: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 3922: a461 st.b r3, (r4, 0x1) + } + + TempCtrl.TemState_Now.indoor_t = 24; + 3924: 3318 movi r3, 24 + 3926: a460 st.b r3, (r4, 0x0) + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3928: a464 st.b r3, (r4, 0x4) + TempCtrl.TemState_Ctrller.indoor_t = TempCtrl.TemState_Now.indoor_t; + 392a: a468 st.b r3, (r4, 0x8) + + TempCtrl.CardState = 0x01; //默认插卡 + 392c: 3301 movi r3, 1 + 392e: a46d st.b r3, (r4, 0xd) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 3930: 3300 movi r3, 0 + 3932: a46f st.b r3, (r4, 0xf) + + SYSCON->UREG0 = 0x00000000; + 3934: 3200 movi r2, 0 + 3936: 107c lrw r3, 0x2000005c // 39a4 + 3938: 9360 ld.w r3, (r3, 0x0) + 393a: 23ff addi r3, 256 + 393c: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 393e: 8442 ld.b r2, (r4, 0x2) + 3940: 4239 lsli r1, r2, 25 + 3942: 493d lsri r1, r1, 29 + 3944: 9300 ld.w r0, (r3, 0x0) + 3946: 4128 lsli r1, r1, 8 + 3948: 6c40 or r1, r0 + 394a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 394c: 423c lsli r1, r2, 28 + 394e: 493d lsri r1, r1, 29 + 3950: 9300 ld.w r0, (r3, 0x0) + 3952: 4130 lsli r1, r1, 16 + 3954: 6c40 or r1, r0 + 3956: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3958: 8421 ld.b r1, (r4, 0x1) + 395a: 9300 ld.w r0, (r3, 0x0) + 395c: 4138 lsli r1, r1, 24 + 395e: 6c40 or r1, r0 + 3960: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 3962: 9320 ld.w r1, (r3, 0x0) + 3964: 4a47 lsri r2, r2, 7 + 3966: 6c84 or r2, r1 + 3968: b340 st.w r2, (r3, 0x0) +} + 396a: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 396c: 8442 ld.b r2, (r4, 0x2) + 396e: 317f movi r1, 127 + 3970: 6884 and r2, r1 + 3972: 078d br 0x388c // 388c + TempCtrl.TemState_Now.mode = MODEL_COLD; + 3974: 8442 ld.b r2, (r4, 0x2) + 3976: 3170 movi r1, 112 + 3978: 6885 andn r2, r1 + 397a: 07a8 br 0x38ca // 38ca + TempCtrl.TemState_Now.fan = FAN_MID; + 397c: 8442 ld.b r2, (r4, 0x2) + 397e: 310e movi r1, 14 + 3980: 6885 andn r2, r1 + 3982: 3aa1 bseti r2, 1 + 3984: 07c2 br 0x3908 // 3908 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 3986: 8462 ld.b r3, (r4, 0x2) + 3988: 320e movi r2, 14 + 398a: 68c9 andn r3, r2 + 398c: 3ba1 bseti r3, 1 + 398e: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 3990: 3318 movi r3, 24 + 3992: 07c8 br 0x3922 // 3922 + 3994: 20000420 .long 0x20000420 + 3998: 200000ac .long 0x200000ac + 399c: 00005f49 .long 0x00005f49 + 39a0: 200000a8 .long 0x200000a8 + 39a4: 2000005c .long 0x2000005c + +Disassembly of section .text.Tem_Valve_Ctrl: + +000039a8 : + * 函数功能:阀门控制 + * + * +*****************************************************************/ +void Tem_Valve_Ctrl(void) +{ + 39a8: 14c1 push r4 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 39aa: 1077 lrw r3, 0x20000420 // 3a04 + 39ac: 8300 ld.b r0, (r3, 0x0) + 39ae: 3840 cmpnei r0, 0 + 39b0: 0802 bt 0x39b4 // 39b4 + 39b2: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 39b4: 8341 ld.b r2, (r3, 0x1) + 39b6: 3a40 cmpnei r2, 0 + 39b8: 0802 bt 0x39bc // 39bc + 39ba: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 39bc: 8322 ld.b r1, (r3, 0x2) + 39be: 4987 lsri r4, r1, 7 + 39c0: 3c40 cmpnei r4, 0 + 39c2: 0c1e bf 0x39fe // 39fe + 39c4: 3c41 cmpnei r4, 1 + 39c6: 080f bt 0x39e4 // 39e4 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 39c8: 4199 lsli r4, r1, 25 + 39ca: 4c9d lsri r4, r4, 29 + 39cc: 3c42 cmpnei r4, 2 + 39ce: 0c12 bf 0x39f2 // 39f2 + 39d0: 3c44 cmpnei r4, 4 + 39d2: 0c16 bf 0x39fe // 39fe + 39d4: 3c40 cmpnei r4, 0 + 39d6: 0807 bt 0x39e4 // 39e4 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 39d8: 5a23 subi r1, r2, 1 + 39da: 6441 cmplt r0, r1 + 39dc: 0c05 bf 0x39e6 // 39e6 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 39de: 8342 ld.b r2, (r3, 0x2) + 39e0: 3a80 bclri r2, 0 + } + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 39e2: a342 st.b r2, (r3, 0x2) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 39e4: 1481 pop r4 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 39e6: 2200 addi r2, 1 + 39e8: 6409 cmplt r2, r0 + 39ea: 0ffd bf 0x39e4 // 39e4 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 39ec: 8342 ld.b r2, (r3, 0x2) + 39ee: 3aa0 bseti r2, 0 + 39f0: 07f9 br 0x39e2 // 39e2 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 39f2: 5a22 addi r1, r2, 1 + 39f4: 6405 cmplt r1, r0 + 39f6: 0bf4 bt 0x39de // 39de + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 39f8: 2a00 subi r2, 1 + 39fa: 6481 cmplt r0, r2 + 39fc: 07f7 br 0x39ea // 39ea + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 39fe: 3980 bclri r1, 0 + 3a00: a322 st.b r1, (r3, 0x2) +} + 3a02: 07f1 br 0x39e4 // 39e4 + 3a04: 20000420 .long 0x20000420 + +Disassembly of section .text.DisPlay_Task: + +00003a08 : + * 函数功能:设置模式下参数保存,状态改变上报 + * + * +**********************************************************************************/ +void DisPlay_Task(void) +{ + 3a08: 14d2 push r4-r5, r15 + static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 + + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 3a0a: 129c lrw r4, 0x20000420 // 3b78 + 3a0c: 8462 ld.b r3, (r4, 0x2) + 3a0e: 748e sextb r2, r3 + 3a10: 3adf btsti r2, 31 + 3a12: 12bb lrw r5, 0x200000b8 // 3b7c + 3a14: 0c70 bf 0x3af4 // 3af4 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 3a16: 8446 ld.b r2, (r4, 0x6) + 3a18: 4379 lsli r3, r3, 25 + 3a1a: 4239 lsli r1, r2, 25 + 3a1c: 4b7d lsri r3, r3, 29 + 3a1e: 493d lsri r1, r1, 29 + 3a20: 64c6 cmpne r1, r3 + 3a22: 0c16 bf 0x3a4e // 3a4e + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 3a24: 3070 movi r0, 112 + 3a26: 4324 lsli r1, r3, 4 + 3a28: 6881 andn r2, r0 + 3a2a: 6c84 or r2, r1 + 3a2c: a446 st.b r2, (r4, 0x6) + + SYSCON->UREG0 &= 0xFFFF00FF; + 3a2e: 30ff movi r0, 255 + 3a30: 1254 lrw r2, 0x2000005c // 3b80 + 3a32: 4008 lsli r0, r0, 8 + 3a34: 9240 ld.w r2, (r2, 0x0) + 3a36: 22ff addi r2, 256 + 3a38: 9220 ld.w r1, (r2, 0x0) + 3a3a: 6841 andn r1, r0 + 3a3c: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 3a3e: 9220 ld.w r1, (r2, 0x0) + 3a40: 4368 lsli r3, r3, 8 + 3a42: 6cc4 or r3, r1 + 3a44: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3a46: 3301 movi r3, 1 + 3a48: a472 st.b r3, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a4a: 9560 ld.w r3, (r5, 0x0) + 3a4c: b468 st.w r3, (r4, 0x20) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 3a4e: 8462 ld.b r3, (r4, 0x2) + 3a50: 8446 ld.b r2, (r4, 0x6) + 3a52: 437c lsli r3, r3, 28 + 3a54: 425c lsli r2, r2, 28 + 3a56: 4a5d lsri r2, r2, 29 + 3a58: 4b7d lsri r3, r3, 29 + 3a5a: 64ca cmpne r2, r3 + 3a5c: 124a lrw r2, 0x20000144 // 3b84 + 3a5e: 0804 bt 0x3a66 // 3a66 + 3a60: 8220 ld.b r1, (r2, 0x0) + 3a62: 3941 cmpnei r1, 1 + 3a64: 0819 bt 0x3a96 // 3a96 + { + OpenDisPlay_Flag = 0x00; + 3a66: 3100 movi r1, 0 + 3a68: a220 st.b r1, (r2, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 3a6a: 8446 ld.b r2, (r4, 0x6) + 3a6c: 300e movi r0, 14 + 3a6e: 4321 lsli r1, r3, 1 + 3a70: 6881 andn r2, r0 + 3a72: 6c84 or r2, r1 + 3a74: a446 st.b r2, (r4, 0x6) + + + SYSCON->UREG0 &= 0xFF00FFFF; + 3a76: 30ff movi r0, 255 + 3a78: 1242 lrw r2, 0x2000005c // 3b80 + 3a7a: 4010 lsli r0, r0, 16 + 3a7c: 9240 ld.w r2, (r2, 0x0) + 3a7e: 22ff addi r2, 256 + 3a80: 9220 ld.w r1, (r2, 0x0) + 3a82: 6841 andn r1, r0 + 3a84: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 3a86: 9220 ld.w r1, (r2, 0x0) + 3a88: 4370 lsli r3, r3, 16 + 3a8a: 6cc4 or r3, r1 + 3a8c: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3a8e: 3301 movi r3, 1 + 3a90: a472 st.b r3, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a92: 9560 ld.w r3, (r5, 0x0) + 3a94: b468 st.w r3, (r4, 0x20) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 3a96: 8461 ld.b r3, (r4, 0x1) + 3a98: 8445 ld.b r2, (r4, 0x5) + 3a9a: 64ca cmpne r2, r3 + 3a9c: 0c11 bf 0x3abe // 3abe + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + 3a9e: 1159 lrw r2, 0x2000005c // 3b80 + 3aa0: 9220 ld.w r1, (r2, 0x0) + 3aa2: 21ff addi r1, 256 + 3aa4: 9140 ld.w r2, (r1, 0x0) + 3aa6: 4248 lsli r2, r2, 8 + 3aa8: 4a48 lsri r2, r2, 8 + 3aaa: b140 st.w r2, (r1, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3aac: 9100 ld.w r0, (r1, 0x0) + 3aae: 4358 lsli r2, r3, 24 + 3ab0: 6c80 or r2, r0 + 3ab2: b140 st.w r2, (r1, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3ab4: 3201 movi r2, 1 + 3ab6: a452 st.b r2, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3ab8: 9540 ld.w r2, (r5, 0x0) + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 3aba: a465 st.b r3, (r4, 0x5) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3abc: b448 st.w r2, (r4, 0x20) + } + + + if(TempCtrl.TemStateLast.indoor_t != TempCtrl.TemState_Now.indoor_t) //刷新室内温度 + 3abe: 8400 ld.b r0, (r4, 0x0) + 3ac0: 8444 ld.b r2, (r4, 0x4) + 3ac2: 640a cmpne r2, r0 + 3ac4: 0c0d bf 0x3ade // 3ade + { + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + 3ac6: 114f lrw r2, 0x2000005c // 3b80 + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3ac8: 4378 lsli r3, r3, 24 + SYSCON->UREG0 &= 0x00FFFFFF; + 3aca: 9240 ld.w r2, (r2, 0x0) + 3acc: 22ff addi r2, 256 + 3ace: 9220 ld.w r1, (r2, 0x0) + 3ad0: 4128 lsli r1, r1, 8 + 3ad2: 4928 lsri r1, r1, 8 + 3ad4: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3ad6: 9220 ld.w r1, (r2, 0x0) + 3ad8: 6cc4 or r3, r1 + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3ada: a404 st.b r0, (r4, 0x4) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3adc: b260 st.w r3, (r2, 0x0) + } + + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000) + 3ade: 9447 ld.w r2, (r4, 0x1c) + 3ae0: 9560 ld.w r3, (r5, 0x0) + 3ae2: 60ca subu r3, r2 + 3ae4: 1149 lrw r2, 0x752f // 3b88 + 3ae6: 64c8 cmphs r2, r3 + 3ae8: 0806 bt 0x3af4 // 3af4 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 3aea: 9560 ld.w r3, (r5, 0x0) + 3aec: b467 st.w r3, (r4, 0x1c) + + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 3aee: 3301 movi r3, 1 + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3af0: a404 st.b r0, (r4, 0x4) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 3af2: a472 st.b r3, (r4, 0x12) + + } + } + + //开机状态 + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 3af4: 8442 ld.b r2, (r4, 0x2) + 3af6: 8466 ld.b r3, (r4, 0x6) + 3af8: 4a47 lsri r2, r2, 7 + 3afa: 4b27 lsri r1, r3, 7 + 3afc: 6486 cmpne r1, r2 + 3afe: 0c14 bf 0x3b26 // 3b26 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 3b00: 307f movi r0, 127 + 3b02: 4227 lsli r1, r2, 7 + 3b04: 68c0 and r3, r0 + 3b06: 6cc4 or r3, r1 + 3b08: a466 st.b r3, (r4, 0x6) + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 3b0a: 30ff movi r0, 255 + 3b0c: 107d lrw r3, 0x2000005c // 3b80 + 3b0e: 9360 ld.w r3, (r3, 0x0) + 3b10: 23ff addi r3, 256 + 3b12: 9320 ld.w r1, (r3, 0x0) + 3b14: 6841 andn r1, r0 + 3b16: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 3b18: 9320 ld.w r1, (r3, 0x0) + 3b1a: 6c84 or r2, r1 + 3b1c: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3b1e: 3301 movi r3, 1 + 3b20: a472 st.b r3, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3b22: 9560 ld.w r3, (r5, 0x0) + 3b24: b468 st.w r3, (r4, 0x20) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 3b26: 8472 ld.b r3, (r4, 0x12) + 3b28: 3b41 cmpnei r3, 1 + 3b2a: 0815 bt 0x3b54 // 3b54 + 3b2c: 9448 ld.w r2, (r4, 0x20) + 3b2e: 9560 ld.w r3, (r5, 0x0) + 3b30: 60ca subu r3, r2 + 3b32: 1057 lrw r2, 0x3e7 // 3b8c + 3b34: 64c8 cmphs r2, r3 + 3b36: 080f bt 0x3b54 // 3b54 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 3b38: 9560 ld.w r3, (r5, 0x0) + 3b3a: b468 st.w r3, (r4, 0x20) + TempCtrl.TempChange_Flag = 0x00; + 3b3c: 3300 movi r3, 0 + 3b3e: a472 st.b r3, (r4, 0x12) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 3b40: 9560 ld.w r3, (r5, 0x0) + 3b42: b467 st.w r3, (r4, 0x1c) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 3b44: 1073 lrw r3, 0x200003f0 // 3b90 + 3b46: 8367 ld.b r3, (r3, 0x7) + 3b48: 3b42 cmpnei r3, 2 + 3b4a: 0805 bt 0x3b54 // 3b54 + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 3b4c: 30fa movi r0, 250 + 3b4e: 4002 lsli r0, r0, 2 + 3b50: e0000226 bsr 0x3f9c // 3f9c + + } + + + //状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 3b54: 9448 ld.w r2, (r4, 0x20) + 3b56: 9560 ld.w r3, (r5, 0x0) + 3b58: 60ca subu r3, r2 + 3b5a: 104f lrw r2, 0x493df // 3b94 + 3b5c: 64c8 cmphs r2, r3 + 3b5e: 080c bt 0x3b76 // 3b76 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 3b60: 9560 ld.w r3, (r5, 0x0) + 3b62: b468 st.w r3, (r4, 0x20) + TempCtrl.Temp_SendTick = SysTick_1ms; + 3b64: 9560 ld.w r3, (r5, 0x0) + 3b66: b467 st.w r3, (r4, 0x1c) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 3b68: 106a lrw r3, 0x200003f0 // 3b90 + 3b6a: 8367 ld.b r3, (r3, 0x7) + 3b6c: 3b42 cmpnei r3, 2 + 3b6e: 0804 bt 0x3b76 // 3b76 + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 3b70: 100a lrw r0, 0xea60 // 3b98 + 3b72: e0000215 bsr 0x3f9c // 3f9c + } + } + +} + 3b76: 1492 pop r4-r5, r15 + 3b78: 20000420 .long 0x20000420 + 3b7c: 200000b8 .long 0x200000b8 + 3b80: 2000005c .long 0x2000005c + 3b84: 20000144 .long 0x20000144 + 3b88: 0000752f .long 0x0000752f + 3b8c: 000003e7 .long 0x000003e7 + 3b90: 200003f0 .long 0x200003f0 + 3b94: 000493df .long 0x000493df + 3b98: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Ctrller_Query_AirState: + +00003b9c : + * 函数功能 : 查询空调状态 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Query_AirState(void) +{ + 3b9c: 14d0 push r15 + 3b9e: 1422 subi r14, r14, 8 + U8_T SdBuff[8]; + U16_T SdLen = 0x06; + + SdBuff[0] = 0xDD; + 3ba0: 3300 movi r3, 0 + 3ba2: 2b22 subi r3, 35 + 3ba4: dc6e0000 st.b r3, (r14, 0x0) + SdBuff[1] = 0x06; + 3ba8: 3306 movi r3, 6 + 3baa: dc6e0001 st.b r3, (r14, 0x1) + SdBuff[2] = 0xFF; + 3bae: 3300 movi r3, 0 + 3bb0: 2b00 subi r3, 1 + 3bb2: dc6e0002 st.b r3, (r14, 0x2) + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x02; //命令字 + + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + 3bb6: 3105 movi r1, 5 + SdBuff[3] = g_Dip.DIP_addr; + 3bb8: 1069 lrw r3, 0x20000448 // 3bdc + 3bba: 8366 ld.b r3, (r3, 0x6) + 3bbc: dc6e0003 st.b r3, (r14, 0x3) + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + 3bc0: 6c3b mov r0, r14 + SdBuff[4] = 0x02; //命令字 + 3bc2: 3302 movi r3, 2 + 3bc4: dc6e0004 st.b r3, (r14, 0x4) + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + 3bc8: e3fffd88 bsr 0x36d8 // 36d8 + 3bcc: dc0e0005 st.b r0, (r14, 0x5) + + Controller485_SendData(SdBuff,SdLen); + 3bd0: 3106 movi r1, 6 + 3bd2: 6c3b mov r0, r14 + 3bd4: e3fffbea bsr 0x33a8 // 33a8 +} + 3bd8: 1402 addi r14, r14, 8 + 3bda: 1490 pop r15 + 3bdc: 20000448 .long 0x20000448 + +Disassembly of section .text.Ctrller_Ctrl_AirState: + +00003be0 : + * 函数功能 : 控制空调状态 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Ctrl_AirState(void) +{ + 3be0: 14d0 push r15 + 3be2: 1423 subi r14, r14, 12 + U8_T SdBuff[12]; + U16_T SdLen = 0x0B; + + SdBuff[0] = 0xDD; + 3be4: 3300 movi r3, 0 + 3be6: 2b22 subi r3, 35 + 3be8: dc6e0000 st.b r3, (r14, 0x0) + SdBuff[1] = 0x0B; + 3bec: 330b movi r3, 11 + 3bee: dc6e0001 st.b r3, (r14, 0x1) + SdBuff[2] = 0xFF; + 3bf2: 3300 movi r3, 0 + 3bf4: 2b00 subi r3, 1 + 3bf6: dc6e0002 st.b r3, (r14, 0x2) + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x03; //命令字 + + SdBuff[5] = TempCtrl.TemState_Now.on_off; //开关机状态 + 3bfa: 1141 lrw r2, 0x20000420 // 3c7c + SdBuff[3] = g_Dip.DIP_addr; + 3bfc: 1161 lrw r3, 0x20000448 // 3c80 + 3bfe: 8366 ld.b r3, (r3, 0x6) + 3c00: dc6e0003 st.b r3, (r14, 0x3) + SdBuff[4] = 0x03; //命令字 + 3c04: 3303 movi r3, 3 + 3c06: dc6e0004 st.b r3, (r14, 0x4) + SdBuff[5] = TempCtrl.TemState_Now.on_off; //开关机状态 + 3c0a: 8262 ld.b r3, (r2, 0x2) + 3c0c: 4b27 lsri r1, r3, 7 + 3c0e: dc2e0005 st.b r1, (r14, 0x5) + + SdBuff[6] = TempCtrl.TemState_Now.set_t; //设定温度 + 3c12: 8221 ld.b r1, (r2, 0x1) + 3c14: dc2e0006 st.b r1, (r14, 0x6) + + if(TempCtrl.TemState_Now.mode == MODEL_COLD){ //空调工作模式, 0x01:制热, 0x02:制冷, 0x04:送风 + 3c18: 74cc zextb r3, r3 + 3c1a: 3170 movi r1, 112 + 3c1c: 684c and r1, r3 + 3c1e: 3940 cmpnei r1, 0 + 3c20: 081a bt 0x3c54 // 3c54 + SdBuff[7] = 0x02; + 3c22: 3102 movi r1, 2 + }else if(TempCtrl.TemState_Now.mode == MODEL_HOT){ + SdBuff[7] = 0x01; + }else if(TempCtrl.TemState_Now.mode == MODEL_WIND){ + SdBuff[7] = 0x04; + 3c24: dc2e0007 st.b r1, (r14, 0x7) + }else{ + SdBuff[7] = 0x02; + } + + if(TempCtrl.TemState_Now.fan == FAN_AUTO){ //空调风速, 0x00:自动, 0x01:低风速, 0x02:中风速, 0x03:高风速 + 3c28: 310e movi r1, 14 + 3c2a: 68c4 and r3, r1 + 3c2c: 3b46 cmpnei r3, 6 + 3c2e: 081d bt 0x3c68 // 3c68 + SdBuff[8] = 0x00; + 3c30: 3300 movi r3, 0 + }else if(TempCtrl.TemState_Now.fan == FAN_LOW){ + SdBuff[8] = 0x01; + }else if(TempCtrl.TemState_Now.fan == FAN_MID){ + SdBuff[8] = 0x02; + }else if(TempCtrl.TemState_Now.fan == FAN_HIGH){ + SdBuff[8] = 0x03; + 3c32: dc6e0008 st.b r3, (r14, 0x8) + SdBuff[8] = 0x00; + } + + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + 3c36: 310a movi r1, 10 + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + 3c38: 826c ld.b r3, (r2, 0xc) + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + 3c3a: 6c3b mov r0, r14 + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + 3c3c: dc6e0009 st.b r3, (r14, 0x9) + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + 3c40: e3fffd4c bsr 0x36d8 // 36d8 + 3c44: dc0e000a st.b r0, (r14, 0xa) + + Controller485_SendData(SdBuff,SdLen); + 3c48: 310b movi r1, 11 + 3c4a: 6c3b mov r0, r14 + 3c4c: e3fffbae bsr 0x33a8 // 33a8 +} + 3c50: 1403 addi r14, r14, 12 + 3c52: 1490 pop r15 + }else if(TempCtrl.TemState_Now.mode == MODEL_HOT){ + 3c54: 3020 movi r0, 32 + 3c56: 6406 cmpne r1, r0 + 3c58: 0803 bt 0x3c5e // 3c5e + SdBuff[7] = 0x01; + 3c5a: 3101 movi r1, 1 + 3c5c: 07e4 br 0x3c24 // 3c24 + }else if(TempCtrl.TemState_Now.mode == MODEL_WIND){ + 3c5e: 3040 movi r0, 64 + 3c60: 6406 cmpne r1, r0 + 3c62: 0be0 bt 0x3c22 // 3c22 + SdBuff[7] = 0x04; + 3c64: 3104 movi r1, 4 + 3c66: 07df br 0x3c24 // 3c24 + }else if(TempCtrl.TemState_Now.fan == FAN_LOW){ + 3c68: 3b40 cmpnei r3, 0 + 3c6a: 0803 bt 0x3c70 // 3c70 + SdBuff[8] = 0x01; + 3c6c: 3301 movi r3, 1 + 3c6e: 07e2 br 0x3c32 // 3c32 + }else if(TempCtrl.TemState_Now.fan == FAN_MID){ + 3c70: 3b42 cmpnei r3, 2 + 3c72: 0fe0 bf 0x3c32 // 3c32 + }else if(TempCtrl.TemState_Now.fan == FAN_HIGH){ + 3c74: 3b44 cmpnei r3, 4 + 3c76: 0bdd bt 0x3c30 // 3c30 + SdBuff[8] = 0x03; + 3c78: 3303 movi r3, 3 + 3c7a: 07dc br 0x3c32 // 3c32 + 3c7c: 20000420 .long 0x20000420 + 3c80: 20000448 .long 0x20000448 + +Disassembly of section .text.TemCtrl_Pro: + +00003c84 : +{ + 3c84: 14d2 push r4-r5, r15 + if(TempCtrl.TemState_Now.on_off != TempCtrl.TemState_Ctrller.on_off) + 3c86: 118e lrw r4, 0x20000420 // 3d3c + Tem_Valve_Ctrl(); + 3c88: e3fffe90 bsr 0x39a8 // 39a8 + if(TempCtrl.TemState_Now.on_off != TempCtrl.TemState_Ctrller.on_off) + 3c8c: 8442 ld.b r2, (r4, 0x2) + 3c8e: 846a ld.b r3, (r4, 0xa) + 3c90: 4a47 lsri r2, r2, 7 + 3c92: 4b27 lsri r1, r3, 7 + 3c94: 6486 cmpne r1, r2 + 3c96: 0c08 bf 0x3ca6 // 3ca6 + TempCtrl.TemState_Ctrller.on_off = TempCtrl.TemState_Now.on_off; + 3c98: 317f movi r1, 127 + 3c9a: 4247 lsli r2, r2, 7 + 3c9c: 68c4 and r3, r1 + 3c9e: 6cc8 or r3, r2 + 3ca0: a46a st.b r3, (r4, 0xa) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3ca2: 3301 movi r3, 1 + 3ca4: a474 st.b r3, (r4, 0x14) + if(TempCtrl.TemState_Now.set_t != TempCtrl.TemState_Ctrller.set_t) + 3ca6: 8461 ld.b r3, (r4, 0x1) + 3ca8: 8449 ld.b r2, (r4, 0x9) + 3caa: 64ca cmpne r2, r3 + 3cac: 0c04 bf 0x3cb4 // 3cb4 + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + 3cae: a469 st.b r3, (r4, 0x9) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3cb0: 3301 movi r3, 1 + 3cb2: a474 st.b r3, (r4, 0x14) + if(TempCtrl.TemState_Now.mode != TempCtrl.TemState_Ctrller.mode) + 3cb4: 8462 ld.b r3, (r4, 0x2) + 3cb6: 844a ld.b r2, (r4, 0xa) + 3cb8: 4379 lsli r3, r3, 25 + 3cba: 4239 lsli r1, r2, 25 + 3cbc: 4b7d lsri r3, r3, 29 + 3cbe: 493d lsri r1, r1, 29 + 3cc0: 64c6 cmpne r1, r3 + 3cc2: 0c08 bf 0x3cd2 // 3cd2 + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3cc4: 3170 movi r1, 112 + 3cc6: 4364 lsli r3, r3, 4 + 3cc8: 6885 andn r2, r1 + 3cca: 6cc8 or r3, r2 + 3ccc: a46a st.b r3, (r4, 0xa) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3cce: 3301 movi r3, 1 + 3cd0: a474 st.b r3, (r4, 0x14) + if(TempCtrl.TemState_Now.fan != TempCtrl.TemState_Ctrller.fan) + 3cd2: 8462 ld.b r3, (r4, 0x2) + 3cd4: 844a ld.b r2, (r4, 0xa) + 3cd6: 437c lsli r3, r3, 28 + 3cd8: 423c lsli r1, r2, 28 + 3cda: 4b7d lsri r3, r3, 29 + 3cdc: 493d lsri r1, r1, 29 + 3cde: 64c6 cmpne r1, r3 + 3ce0: 0c08 bf 0x3cf0 // 3cf0 + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + 3ce2: 310e movi r1, 14 + 3ce4: 4361 lsli r3, r3, 1 + 3ce6: 6885 andn r2, r1 + 3ce8: 6cc8 or r3, r2 + 3cea: a46a st.b r3, (r4, 0xa) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3cec: 3301 movi r3, 1 + 3cee: a474 st.b r3, (r4, 0x14) + if( (TempCtrl.TempCtrllerChange_Flag == 0x01)&&(SysTick_1ms - TemCtrl_tick >= 300) ) + 3cf0: 8474 ld.b r3, (r4, 0x14) + 3cf2: 3b41 cmpnei r3, 1 + 3cf4: 10b3 lrw r5, 0x200000b8 // 3d40 + 3cf6: 0813 bt 0x3d1c // 3d1c + 3cf8: 1053 lrw r2, 0x20000144 // 3d44 + 3cfa: 9221 ld.w r1, (r2, 0x4) + 3cfc: 9560 ld.w r3, (r5, 0x0) + 3cfe: 60c6 subu r3, r1 + 3d00: 1032 lrw r1, 0x12b // 3d48 + 3d02: 64c4 cmphs r1, r3 + 3d04: 080c bt 0x3d1c // 3d1c + TempCtrl.TemQuery_1S_tick = SysTick_1ms; + 3d06: 9560 ld.w r3, (r5, 0x0) + 3d08: b469 st.w r3, (r4, 0x24) + TemCtrl_tick = SysTick_1ms; + 3d0a: 9560 ld.w r3, (r5, 0x0) + 3d0c: b261 st.w r3, (r2, 0x4) + if(TempCtrl.TempCtrller_Cnt <= 0x03) + 3d0e: 8473 ld.b r3, (r4, 0x13) + 3d10: 3b03 cmphsi r3, 4 + 3d12: 0810 bt 0x3d32 // 3d32 + TempCtrl.TempCtrller_Cnt++; + 3d14: 2300 addi r3, 1 + 3d16: a473 st.b r3, (r4, 0x13) + Ctrller_Ctrl_AirState(); + 3d18: e3ffff64 bsr 0x3be0 // 3be0 + if(SysTick_1ms - TempCtrl.TemQuery_1S_tick >= 1000) + 3d1c: 9449 ld.w r2, (r4, 0x24) + 3d1e: 9560 ld.w r3, (r5, 0x0) + 3d20: 60ca subu r3, r2 + 3d22: 104b lrw r2, 0x3e7 // 3d4c + 3d24: 64c8 cmphs r2, r3 + 3d26: 0805 bt 0x3d30 // 3d30 + TempCtrl.TemQuery_1S_tick = SysTick_1ms; + 3d28: 9560 ld.w r3, (r5, 0x0) + 3d2a: b469 st.w r3, (r4, 0x24) + Ctrller_Query_AirState(); + 3d2c: e3ffff38 bsr 0x3b9c // 3b9c +} + 3d30: 1492 pop r4-r5, r15 + TempCtrl.TempCtrllerChange_Flag = 0x00; + 3d32: 3300 movi r3, 0 + 3d34: a474 st.b r3, (r4, 0x14) + TempCtrl.TempCtrller_Cnt = 0x00; + 3d36: a473 st.b r3, (r4, 0x13) + 3d38: 07f2 br 0x3d1c // 3d1c + 3d3a: 0000 bkpt + 3d3c: 20000420 .long 0x20000420 + 3d40: 200000b8 .long 0x200000b8 + 3d44: 20000144 .long 0x20000144 + 3d48: 0000012b .long 0x0000012b + 3d4c: 000003e7 .long 0x000003e7 + +Disassembly of section .text.Ctrller_AirState_Processing: + +00003d50 : + * RecData : 接收数据 + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_AirState_Processing(U8_T *RecData, U16_T Len) +{ + 3d50: 14c1 push r4 + if(Len < 13) return 0x01; + 3d52: 390c cmphsi r1, 13 + 3d54: 0c63 bf 0x3e1a // 3e1a + + //开关机状态, 0x00:关机, 0x01:开机 + if(RecData[5] <= 0x01){ + 3d56: 8045 ld.b r2, (r0, 0x5) + 3d58: 3a01 cmphsi r2, 2 + 3d5a: 1172 lrw r3, 0x20000420 // 3e20 + 3d5c: 0807 bt 0x3d6a // 3d6a + TempCtrl.TemState_Now.on_off = RecData[5]; + 3d5e: 4227 lsli r1, r2, 7 + 3d60: 347f movi r4, 127 + 3d62: 8342 ld.b r2, (r3, 0x2) + 3d64: 6890 and r2, r4 + 3d66: 6c84 or r2, r1 + 3d68: a342 st.b r2, (r3, 0x2) + } + + //空调的设定温度, 16~30 + if( (RecData[6] >= TEM_MIN_SET)&&(RecData[6] <= TEM_MAX_SET) ){ + 3d6a: 3200 movi r2, 0 + 3d6c: 8026 ld.b r1, (r0, 0x6) + 3d6e: 2a0f subi r2, 16 + 3d70: 6084 addu r2, r1 + 3d72: 7488 zextb r2, r2 + 3d74: 3a10 cmphsi r2, 17 + 3d76: 0802 bt 0x3d7a // 3d7a + TempCtrl.TemState_Now.set_t = RecData[6]; + 3d78: a321 st.b r1, (r3, 0x1) + } + + //空调的工作模式, 0x01:制热, 0x02:制冷, 0x04:送风, 0x08:除湿 + if(RecData[7] == 0x01){ + 3d7a: 8047 ld.b r2, (r0, 0x7) + 3d7c: 3a41 cmpnei r2, 1 + 3d7e: 0833 bt 0x3de4 // 3de4 + TempCtrl.TemState_Now.mode = MODEL_HOT; + 3d80: 8342 ld.b r2, (r3, 0x2) + 3d82: 3170 movi r1, 112 + 3d84: 6885 andn r2, r1 + 3d86: 3aa5 bseti r2, 5 + }else if(RecData[7] == 0x02){ + TempCtrl.TemState_Now.mode = MODEL_COLD; + }else if(RecData[7] == 0x04){ + TempCtrl.TemState_Now.mode = MODEL_WIND; + 3d88: a342 st.b r2, (r3, 0x2) + }else{ + TempCtrl.TemState_Now.mode = MODEL_COLD; + } + + //空调的风速, 0x00:自动, 0x01:低风速, 0x02:中风速, 0x03:高风速 + if(RecData[8] == 0x00){ + 3d8a: 8048 ld.b r2, (r0, 0x8) + 3d8c: 3a40 cmpnei r2, 0 + 3d8e: 0832 bt 0x3df2 // 3df2 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 3d90: 8342 ld.b r2, (r3, 0x2) + 3d92: 310e movi r1, 14 + 3d94: 6885 andn r2, r1 + 3d96: 3aa1 bseti r2, 1 + 3d98: 3aa2 bseti r2, 2 + }else if(RecData[8] == 0x01){ + TempCtrl.TemState_Now.fan = FAN_LOW; + }else if(RecData[8] == 0x02){ + TempCtrl.TemState_Now.fan = FAN_MID; + }else if(RecData[8] == 0x03){ + TempCtrl.TemState_Now.fan = FAN_HIGH; + 3d9a: a342 st.b r2, (r3, 0x2) + }else{ + TempCtrl.TemState_Now.fan = FAN_LOW; + } + + //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + TempCtrl.Temp_dirwind = RecData[9]; + 3d9c: 8049 ld.b r2, (r0, 0x9) + 3d9e: a34c st.b r2, (r3, 0xc) + + //室内温度, 0~40 + if(RecData[10] <= 40){ + 3da0: 804a ld.b r2, (r0, 0xa) + 3da2: 3128 movi r1, 40 + 3da4: 6484 cmphs r1, r2 + 3da6: 0c02 bf 0x3daa // 3daa + TempCtrl.TemState_Now.indoor_t = RecData[10]; + 3da8: a340 st.b r2, (r3, 0x0) + } + + //空调的故障码, + + + TempCtrl.TemState_Ctrller.on_off = TempCtrl.TemState_Now.on_off; + 3daa: 8342 ld.b r2, (r3, 0x2) + 3dac: 4a47 lsri r2, r2, 7 + 3dae: 4227 lsli r1, r2, 7 + 3db0: 307f movi r0, 127 + 3db2: 834a ld.b r2, (r3, 0xa) + 3db4: 6880 and r2, r0 + 3db6: 6c84 or r2, r1 + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3db8: 8302 ld.b r0, (r3, 0x2) + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + 3dba: 8321 ld.b r1, (r3, 0x1) + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3dbc: 3407 movi r4, 7 + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + 3dbe: a329 st.b r1, (r3, 0x9) + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3dc0: 4804 lsri r0, r0, 4 + 3dc2: 318f movi r1, 143 + 3dc4: 6884 and r2, r1 + 3dc6: 6810 and r0, r4 + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + 3dc8: 8322 ld.b r1, (r3, 0x2) + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3dca: 4004 lsli r0, r0, 4 + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + 3dcc: 4921 lsri r1, r1, 1 + 3dce: 6c80 or r2, r0 + 3dd0: 6850 and r1, r4 + 3dd2: 300e movi r0, 14 + 3dd4: 6881 andn r2, r0 + 3dd6: 4121 lsli r1, r1, 1 + 3dd8: 6c84 or r2, r1 + 3dda: a34a st.b r2, (r3, 0xa) + TempCtrl.TemState_Ctrller.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3ddc: 8340 ld.b r2, (r3, 0x0) + 3dde: a348 st.b r2, (r3, 0x8) + 3de0: 3000 movi r0, 0 + + return 0x00; +} + 3de2: 1481 pop r4 + }else if(RecData[7] == 0x02){ + 3de4: 3a44 cmpnei r2, 4 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 3de6: 3170 movi r1, 112 + 3de8: 8342 ld.b r2, (r3, 0x2) + 3dea: 6885 andn r2, r1 + }else if(RecData[7] == 0x02){ + 3dec: 0bce bt 0x3d88 // 3d88 + TempCtrl.TemState_Now.mode = MODEL_WIND; + 3dee: 3aa6 bseti r2, 6 + 3df0: 07cc br 0x3d88 // 3d88 + }else if(RecData[8] == 0x01){ + 3df2: 3a41 cmpnei r2, 1 + 3df4: 0805 bt 0x3dfe // 3dfe + TempCtrl.TemState_Now.fan = FAN_LOW; + 3df6: 8342 ld.b r2, (r3, 0x2) + 3df8: 310e movi r1, 14 + 3dfa: 6885 andn r2, r1 + 3dfc: 07cf br 0x3d9a // 3d9a + }else if(RecData[8] == 0x02){ + 3dfe: 3a42 cmpnei r2, 2 + 3e00: 0806 bt 0x3e0c // 3e0c + TempCtrl.TemState_Now.fan = FAN_MID; + 3e02: 8342 ld.b r2, (r3, 0x2) + 3e04: 310e movi r1, 14 + 3e06: 6885 andn r2, r1 + 3e08: 3aa1 bseti r2, 1 + 3e0a: 07c8 br 0x3d9a // 3d9a + }else if(RecData[8] == 0x03){ + 3e0c: 3a43 cmpnei r2, 3 + 3e0e: 0bf4 bt 0x3df6 // 3df6 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 3e10: 8342 ld.b r2, (r3, 0x2) + 3e12: 310e movi r1, 14 + 3e14: 6885 andn r2, r1 + 3e16: 3aa2 bseti r2, 2 + 3e18: 07c1 br 0x3d9a // 3d9a + if(Len < 13) return 0x01; + 3e1a: 3001 movi r0, 1 + 3e1c: 07e3 br 0x3de2 // 3de2 + 3e1e: 0000 bkpt + 3e20: 20000420 .long 0x20000420 + +Disassembly of section .text.Ctrller_CtrlAirState_Processing: + +00003e24 : + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_CtrlAirState_Processing(U8_T *RecData, U16_T Len) +{ + if(Len < 7) return 0x01; + 3e24: 3906 cmphsi r1, 7 + 3e26: 0c0a bf 0x3e3a // 3e3a + + if(RecData[5] == 0x00) //控制设定失败 + { + + } + else if(RecData[5] == 0x01) //控制设定成功 + 3e28: 8065 ld.b r3, (r0, 0x5) + 3e2a: 3b41 cmpnei r3, 1 + 3e2c: 0805 bt 0x3e36 // 3e36 + { + TempCtrl.TempCtrllerChange_Flag = 0x00; + 3e2e: 1065 lrw r3, 0x20000420 // 3e40 + 3e30: 3200 movi r2, 0 + 3e32: a354 st.b r2, (r3, 0x14) + TempCtrl.TempCtrller_Cnt = 0x00; + 3e34: a353 st.b r2, (r3, 0x13) + else if(RecData[5] == 0x01) //控制设定成功 + 3e36: 3000 movi r0, 0 + 3e38: 0402 br 0x3e3c // 3e3c + if(Len < 7) return 0x01; + 3e3a: 3001 movi r0, 1 + } + + return 0x00; +} + 3e3c: 783c jmp r15 + 3e3e: 0000 bkpt + 3e40: 20000420 .long 0x20000420 + +Disassembly of section .text.Ctrller_RecData_Processing: + +00003e44 : + * RecData : 接收数据缓冲区 + * Len : 接收数据长度 + * 函数输出 : 处理状态 +**********************************************************************************/ +U8_T Ctrller_RecData_Processing(U8_T *RecData, U16_T Len) +{ + 3e44: 14d4 push r4-r7, r15 + if( (Len < 6)||(RecData[1] != Len) ) + 3e46: 3905 cmphsi r1, 6 +{ + 3e48: 6d03 mov r4, r0 + 3e4a: 6c87 mov r2, r1 + if( (Len < 6)||(RecData[1] != Len) ) + 3e4c: 0c04 bf 0x3e54 // 3e54 + 3e4e: 80a1 ld.b r5, (r0, 0x1) + 3e50: 6456 cmpne r5, r1 + 3e52: 0c07 bf 0x3e60 // 3e60 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",Len); + 3e54: 3000 movi r0, 0 + 3e56: 1125 lrw r1, 0x5f62 // 3ee8 + 3e58: e3fffc3a bsr 0x36cc // 36cc + return 0x01; + 3e5c: 3001 movi r0, 1 + break; + } + + + return 0x00; +} + 3e5e: 1494 pop r4-r7, r15 + if(RecData[0] != 0xCC) + 3e60: 8040 ld.b r2, (r0, 0x0) + 3e62: 33cc movi r3, 204 + 3e64: 64ca cmpne r2, r3 + 3e66: 0c07 bf 0x3e74 // 3e74 + Dbg_Println(DBG_BIT_SYS_STATUS,"Head Err"); + 3e68: 3000 movi r0, 0 + 3e6a: 1121 lrw r1, 0x5f6d // 3eec + 3e6c: e3fffc30 bsr 0x36cc // 36cc + return 0x02; + 3e70: 3002 movi r0, 2 + 3e72: 07f6 br 0x3e5e // 3e5e + if( (RecData[2] != 0xFF)||(RecData[3] != g_Dip.DIP_addr) ) + 3e74: 8042 ld.b r2, (r0, 0x2) + 3e76: 33ff movi r3, 255 + 3e78: 64ca cmpne r2, r3 + 3e7a: 105e lrw r2, 0x20000448 // 3ef0 + 3e7c: 8063 ld.b r3, (r0, 0x3) + 3e7e: 0804 bt 0x3e86 // 3e86 + 3e80: 8226 ld.b r1, (r2, 0x6) + 3e82: 644e cmpne r3, r1 + 3e84: 0c09 bf 0x3e96 // 3e96 + Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Err:%d, %d",g_Dip.DIP_addr,RecData[3]); + 3e86: 3000 movi r0, 0 + 3e88: 74cc zextb r3, r3 + 3e8a: 8246 ld.b r2, (r2, 0x6) + 3e8c: 103a lrw r1, 0x5f76 // 3ef4 + 3e8e: e3fffc1f bsr 0x36cc // 36cc + return 0x03; + 3e92: 3003 movi r0, 3 + 3e94: 07e5 br 0x3e5e // 3e5e + if(RecData[Len-1] != EEPROM_CheckSum(RecData,(Len-1))) + 3e96: 5dc3 subi r6, r5, 1 + 3e98: 5874 addu r3, r0, r5 + 3e9a: 7599 zexth r6, r6 + 3e9c: 2b00 subi r3, 1 + 3e9e: 6c5b mov r1, r6 + 3ea0: 83e0 ld.b r7, (r3, 0x0) + 3ea2: e3fffc1b bsr 0x36d8 // 36d8 + 3ea6: 641e cmpne r7, r0 + 3ea8: 0c0e bf 0x3ec4 // 3ec4 + Dbg_Println(DBG_BIT_SYS_STATUS,"SumCRC Err:%d, %d",RecData[5],EEPROM_CheckSum(RecData,(Len-1))); + 3eaa: 6c5b mov r1, r6 + 3eac: 6c13 mov r0, r4 + 3eae: 84a5 ld.b r5, (r4, 0x5) + 3eb0: e3fffc14 bsr 0x36d8 // 36d8 + 3eb4: 6cc3 mov r3, r0 + 3eb6: 6c97 mov r2, r5 + 3eb8: 3000 movi r0, 0 + 3eba: 1030 lrw r1, 0x5f86 // 3ef8 + 3ebc: e3fffc08 bsr 0x36cc // 36cc + return 0x04; + 3ec0: 3004 movi r0, 4 + 3ec2: 07ce br 0x3e5e // 3e5e + switch(RecData[4]) + 3ec4: 8464 ld.b r3, (r4, 0x4) + 3ec6: 3b42 cmpnei r3, 2 + 3ec8: 0c05 bf 0x3ed2 // 3ed2 + 3eca: 3b43 cmpnei r3, 3 + 3ecc: 0c08 bf 0x3edc // 3edc + return 0x00; + 3ece: 3000 movi r0, 0 + 3ed0: 07c7 br 0x3e5e // 3e5e + Ctrller_AirState_Processing(RecData,Len); + 3ed2: 6c57 mov r1, r5 + 3ed4: 6c13 mov r0, r4 + 3ed6: e3ffff3d bsr 0x3d50 // 3d50 + 3eda: 07fa br 0x3ece // 3ece + Ctrller_CtrlAirState_Processing(RecData,Len); + 3edc: 6c57 mov r1, r5 + 3ede: 6c13 mov r0, r4 + 3ee0: e3ffffa2 bsr 0x3e24 // 3e24 + 3ee4: 07f5 br 0x3ece // 3ece + 3ee6: 0000 bkpt + 3ee8: 00005f62 .long 0x00005f62 + 3eec: 00005f6d .long 0x00005f6d + 3ef0: 20000448 .long 0x20000448 + 3ef4: 00005f76 .long 0x00005f76 + 3ef8: 00005f86 .long 0x00005f86 + +Disassembly of section .text.NetCRC16_Check: + +00003efc : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + 3efc: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 3efe: 3902 cmphsi r1, 3 + 3f00: 0c1f bf 0x3f3e // 3f3e + U16_T alen = len-2; //CRC16??????? + 3f02: 2901 subi r1, 2 + 3f04: 7445 zexth r1, r1 + 3f06: 6d43 mov r5, r0 + 3f08: 3200 movi r2, 0 + 3f0a: 106e lrw r3, 0xffff // 3f40 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 3f14: 6d8f mov r6, r3 + 3f16: 699c and r6, r7 + 3f18: 3e40 cmpnei r6, 0 + 3f1a: 4b61 lsri r3, r3, 1 + 3f1c: 0c04 bf 0x3f24 // 3f24 + 3f1e: 10ca lrw r6, 0xffffa001 // 3f44 + 3f20: 6cd9 xor r3, r6 + 3f22: 74cd zexth r3, r3 + 3f24: 2c00 subi r4, 1 + 3f26: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 3f28: 3c40 cmpnei r4, 0 + 3f2a: 0bf5 bt 0x3f14 // 3f14 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 3f36: 6040 addu r1, r0 + 3f38: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 3f3a: 4b68 lsri r3, r3, 8 + 3f3c: a161 st.b r3, (r1, 0x1) +} + 3f3e: 1484 pop r4-r7 + 3f40: 0000ffff .long 0x0000ffff + 3f44: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00003f48 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 3f48: 14c3 push r4-r6 + 3f4a: 6cc3 mov r3, r0 + 3f4c: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 3f4e: 10ac lrw r5, 0xffffa001 // 3f7c + xda = 0xFFFF ; + 3f50: 100c lrw r0, 0xffff // 3f80 + for (i = 0; i < len; i++) + 3f52: 644e cmpne r3, r1 + 3f54: 0802 bt 0x3f58 // 3f58 + } + } + + return xda; +} + 3f56: 1483 pop r4-r6 + xda ^= aStr[i] ; + 3f58: 8340 ld.b r2, (r3, 0x0) + 3f5a: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 3f5c: 3601 movi r6, 1 + xda ^= aStr[i] ; + 3f5e: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 3f60: 6d03 mov r4, r0 + 3f62: 6918 and r4, r6 + 3f64: 3c40 cmpnei r4, 0 + 3f66: 4801 lsri r0, r0, 1 + 3f68: 0c03 bf 0x3f6e // 3f6e + 3f6a: 6c15 xor r0, r5 + 3f6c: 7401 zexth r0, r0 + 3f6e: 2a00 subi r2, 1 + 3f70: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 3f72: 3a40 cmpnei r2, 0 + 3f74: 0bf6 bt 0x3f60 // 3f60 + 3f76: 2300 addi r3, 1 + 3f78: 07ed br 0x3f52 // 3f52 + 3f7a: 0000 bkpt + 3f7c: ffffa001 .long 0xffffa001 + 3f80: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00003f84 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 3f84: 6cc3 mov r3, r0 + 3f86: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 3f88: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 3f8a: 644e cmpne r3, r1 + 3f8c: 0802 bt 0x3f90 // 3f90 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 3f8e: 783c jmp r15 + sor_data = sor_data+Data[i]; + 3f90: 8340 ld.b r2, (r3, 0x0) + 3f92: 6008 addu r0, r2 + 3f94: 7400 zextb r0, r0 + 3f96: 2300 addi r3, 1 + 3f98: 07f9 br 0x3f8a // 3f8a + +Disassembly of section .text.Rs485_ASend: + +00003f9c : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 3f9c: 14d1 push r4, r15 + 3f9e: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 3fa0: 1260 lrw r3, 0x200003f0 // 40a0 + 3fa2: 8367 ld.b r3, (r3, 0x7) + 3fa4: 3b42 cmpnei r3, 2 +{ + 3fa6: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 3fa8: 0871 bt 0x408a // 408a + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 3faa: 3355 movi r3, 85 + 3fac: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 3fb0: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 3fb4: 3300 movi r3, 0 + 3fb6: 2b11 subi r3, 18 + 3fb8: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 3fbc: 3315 movi r3, 21 + 3fbe: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 3fc2: 3303 movi r3, 3 + 3fc4: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_Dip.DIP_addr; + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3fc8: 1157 lrw r2, 0x20000420 // 40a4 + SendData[5] = g_Dip.DIP_addr; + 3fca: 1178 lrw r3, 0x20000448 // 40a8 + 3fcc: 8366 ld.b r3, (r3, 0x6) + 3fce: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 3fd2: 3300 movi r3, 0 + 3fd4: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3fd8: 8262 ld.b r3, (r2, 0x2) + 3fda: 4b27 lsri r1, r3, 7 + 3fdc: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 3fe0: 3100 movi r1, 0 + 3fe2: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 3fe6: 3170 movi r1, 112 + 3fe8: 68c4 and r3, r1 + 3fea: 3b40 cmpnei r3, 0 + 3fec: 081a bt 0x4020 // 4020 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 3fee: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 3ff0: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3ff4: 8261 ld.b r3, (r2, 0x1) + 3ff6: 3b40 cmpnei r3, 0 + 3ff8: 0802 bt 0x3ffc // 3ffc + 3ffa: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3ffc: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3ffe: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4002: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 4004: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4006: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 4008: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 400c: 3304 movi r3, 4 + 400e: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + 4010: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4012: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 4016: 0842 bt 0x409a // 409a + 4018: e3ffe672 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 401c: 3d3b390c .long 0x3d3b390c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 4020: 3120 movi r1, 32 + 4022: 644e cmpne r3, r1 + 4024: 0803 bt 0x402a // 402a + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 4026: 3302 movi r3, 2 + 4028: 07e4 br 0x3ff0 // 3ff0 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 402a: 3140 movi r1, 64 + 402c: 644e cmpne r3, r1 + 402e: 0be3 bt 0x3ff4 // 3ff4 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 4030: 3303 movi r3, 3 + 4032: 07df br 0x3ff0 // 3ff0 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 4034: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4036: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + 4038: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 403c: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 403e: 3300 movi r3, 0 + 4040: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 4044: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4048: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 404a: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 404e: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 4052: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4056: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4058: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 405a: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 405c: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4060: 0802 bt 0x4064 // 4064 + 4062: 3320 movi r3, 32 + 4064: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 4068: 3300 movi r3, 0 + 406a: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 406e: 1b01 addi r3, r14, 4 + 4070: 5b0a addi r0, r3, 3 + 4072: 3115 movi r1, 21 + 4074: e3ffff44 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 4078: 3396 movi r3, 150 + 407a: 4361 lsli r3, r3, 1 + 407c: b860 st.w r3, (r14, 0x0) + 407e: 3201 movi r2, 1 + 4080: 6cd3 mov r3, r4 + 4082: 3118 movi r1, 24 + 4084: 1801 addi r0, r14, 4 + 4086: e3fffa81 bsr 0x3588 // 3588 + +} + 408a: 1407 addi r14, r14, 28 + 408c: 1491 pop r4, r15 + SendData[13] = 0x02; + 408e: 3302 movi r3, 2 + 4090: 07d3 br 0x4036 // 4036 + SendData[13] = 0x01; + 4092: 3301 movi r3, 1 + 4094: 07d1 br 0x4036 // 4036 + SendData[13] = 0x00; // + 4096: 3300 movi r3, 0 + 4098: 07cf br 0x4036 // 4036 + SendData[13] = 0x04; // + 409a: 3304 movi r3, 4 + 409c: 07cd br 0x4036 // 4036 + 409e: 0000 bkpt + 40a0: 200003f0 .long 0x200003f0 + 40a4: 20000420 .long 0x20000420 + 40a8: 20000448 .long 0x20000448 + +Disassembly of section .text.Rs485AskCycleSend: + +000040ac : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 40ac: 14d0 push r15 + 40ae: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 40b0: 3355 movi r3, 85 + 40b2: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 40b6: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 40ba: 3300 movi r3, 0 + 40bc: 2b11 subi r3, 18 + 40be: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 40c2: 3315 movi r3, 21 + 40c4: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 40c8: 3303 movi r3, 3 + 40ca: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_Dip.DIP_addr; + 40ce: 1177 lrw r3, 0x20000448 // 41a8 + 40d0: 8366 ld.b r3, (r3, 0x6) + 40d2: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 40d6: 3300 movi r3, 0 + 40d8: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 40dc: 1174 lrw r3, 0x20000420 // 41ac + 40de: 8342 ld.b r2, (r3, 0x2) + 40e0: 4a27 lsri r1, r2, 7 + 40e2: dc2e000b st.b r1, (r14, 0xb) + + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 40e6: 3100 movi r1, 0 + 40e8: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { //Func3 模式低字节 1制冷 2制热 3通风 + 40ec: 3170 movi r1, 112 + 40ee: 6884 and r2, r1 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 081a bt 0x4126 // 4126 + SendData[9] = 0x01; + 40f4: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; + 40f6: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 40fa: 8341 ld.b r2, (r3, 0x1) + 40fc: 3a40 cmpnei r2, 0 + 40fe: 0802 bt 0x4102 // 4102 + 4100: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4102: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 4104: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4108: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 410a: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 410c: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 410e: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4112: 3204 movi r2, 4 + 4114: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + 4116: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4118: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 411c: 0843 bt 0x41a2 // 41a2 + 411e: e3ffe5ef bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4122: 3a0c .short 0x3a0c + 4124: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 4126: 3120 movi r1, 32 + 4128: 644a cmpne r2, r1 + 412a: 0803 bt 0x4130 // 4130 + SendData[9] = 0x02; + 412c: 3202 movi r2, 2 + 412e: 07e4 br 0x40f6 // 40f6 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 4130: 3140 movi r1, 64 + 4132: 644a cmpne r2, r1 + 4134: 0be3 bt 0x40fa // 40fa + SendData[9] = 0x03; + 4136: 3203 movi r2, 3 + 4138: 07df br 0x40f6 // 40f6 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + 413a: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + 413c: dc4e0011 st.b r2, (r14, 0x11) + break; + } + + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 4140: 3200 movi r2, 0 + 4142: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 4146: dc4e0013 st.b r2, (r14, 0x13) + + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 414a: 8342 ld.b r2, (r3, 0x2) + 414c: 425f lsli r2, r2, 31 + 414e: 4a5f lsri r2, r2, 31 + 4150: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4152: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4154: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4158: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 415a: 3200 movi r2, 0 + 415c: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 4160: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 4164: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4168: 0802 bt 0x416c // 416c + 416a: 3320 movi r3, 32 + 416c: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 4170: 3300 movi r3, 0 + 4172: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 4176: 1b01 addi r3, r14, 4 + 4178: 5b0a addi r0, r3, 3 + 417a: 3115 movi r1, 21 + 417c: e3fffec0 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 4180: 3314 movi r3, 20 + 4182: b860 st.w r3, (r14, 0x0) + 4184: 3396 movi r3, 150 + 4186: 4361 lsli r3, r3, 1 + 4188: 3201 movi r2, 1 + 418a: 3118 movi r1, 24 + 418c: 1801 addi r0, r14, 4 + 418e: e3fff9fd bsr 0x3588 // 3588 + +} + 4192: 1407 addi r14, r14, 28 + 4194: 1490 pop r15 + SendData[13] = 0x02; + 4196: 3202 movi r2, 2 + 4198: 07d2 br 0x413c // 413c + SendData[13] = 0x01; + 419a: 3201 movi r2, 1 + 419c: 07d0 br 0x413c // 413c + SendData[13] = 0x00; // + 419e: 3200 movi r2, 0 + 41a0: 07ce br 0x413c // 413c + SendData[13] = 0x04; // + 41a2: 3204 movi r2, 4 + 41a4: 07cc br 0x413c // 413c + 41a6: 0000 bkpt + 41a8: 20000448 .long 0x20000448 + 41ac: 20000420 .long 0x20000420 + +Disassembly of section .text.Rs485AskCtrlSend: + +000041b0 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 41b0: 14d0 push r15 + 41b2: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 41b4: 3355 movi r3, 85 + 41b6: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 41ba: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 41be: 3300 movi r3, 0 + 41c0: 2b11 subi r3, 18 + 41c2: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 41c6: 3307 movi r3, 7 + 41c8: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 41cc: 3303 movi r3, 3 + 41ce: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_Dip.DIP_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 41d2: 3107 movi r1, 7 + SendData[5] = g_Dip.DIP_addr; + 41d4: 106d lrw r3, 0x20000448 // 4208 + 41d6: 8366 ld.b r3, (r3, 0x6) + 41d8: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 41dc: 8066 ld.b r3, (r0, 0x6) + 41de: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 41e2: 8067 ld.b r3, (r0, 0x7) + 41e4: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 41e8: 1b01 addi r3, r14, 4 + 41ea: 5b0a addi r0, r3, 3 + 41ec: e3fffe88 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 41f0: 3314 movi r3, 20 + 41f2: b860 st.w r3, (r14, 0x0) + 41f4: 3396 movi r3, 150 + 41f6: 4361 lsli r3, r3, 1 + 41f8: 3201 movi r2, 1 + 41fa: 310a movi r1, 10 + 41fc: 1801 addi r0, r14, 4 + 41fe: e3fff9c5 bsr 0x3588 // 3588 + +} + 4202: 1404 addi r14, r14, 16 + 4204: 1490 pop r15 + 4206: 0000 bkpt + 4208: 20000448 .long 0x20000448 + +Disassembly of section .text.Rs485AskReadSend: + +0000420c : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 420c: 14d0 push r15 + 420e: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 4210: 3355 movi r3, 85 + 4212: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 4216: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 421a: 3300 movi r3, 0 + 421c: 2b11 subi r3, 18 + 421e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 4222: 3309 movi r3, 9 + 4224: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 4228: 3303 movi r3, 3 + 422a: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 422e: 3109 movi r1, 9 + SendData[5] = g_Dip.DIP_addr; + 4230: 1070 lrw r3, 0x20000448 // 4270 + 4232: 8366 ld.b r3, (r3, 0x6) + 4234: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6]; + 4238: 8066 ld.b r3, (r0, 0x6) + 423a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Project_FW_Version; + 423e: 3306 movi r3, 6 + 4240: dc6e000b st.b r3, (r14, 0xb) + SendData[8] = Project_HW_Version; + 4244: 3302 movi r3, 2 + 4246: dc6e000c st.b r3, (r14, 0xc) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 424a: 106b lrw r3, 0x200003f0 // 4274 + 424c: 8367 ld.b r3, (r3, 0x7) + 424e: dc6e000d st.b r3, (r14, 0xd) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 4252: 1b01 addi r3, r14, 4 + 4254: 5b0a addi r0, r3, 3 + 4256: e3fffe53 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 425a: 3314 movi r3, 20 + 425c: b860 st.w r3, (r14, 0x0) + 425e: 3396 movi r3, 150 + 4260: 4361 lsli r3, r3, 1 + 4262: 3201 movi r2, 1 + 4264: 310c movi r1, 12 + 4266: 1801 addi r0, r14, 4 + 4268: e3fff990 bsr 0x3588 // 3588 +} + 426c: 1404 addi r14, r14, 16 + 426e: 1490 pop r15 + 4270: 20000448 .long 0x20000448 + 4274: 200003f0 .long 0x200003f0 + +Disassembly of section .text.Rs485_DevPort_ACK: + +00004278 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 4278: 14d0 push r15 + 427a: 1421 subi r14, r14, 4 + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 427c: 3314 movi r3, 20 + 427e: b860 st.w r3, (r14, 0x0) + 4280: 3396 movi r3, 150 + 4282: 7445 zexth r1, r1 + 4284: 4361 lsli r3, r3, 1 + 4286: 3201 movi r2, 1 + 4288: e3fff980 bsr 0x3588 // 3588 +} + 428c: 1401 addi r14, r14, 4 + 428e: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +00004290 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 4290: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 4292: 3300 movi r3, 0 + 4294: 2b08 subi r3, 9 + 4296: 60c4 addu r3, r1 + 4298: 74cd zexth r3, r3 + 429a: 3b01 cmphsi r3, 2 +{ + 429c: 6d03 mov r4, r0 + 429e: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 42a0: 08ca bt 0x4434 // 4434 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 42a2: 8060 ld.b r3, (r0, 0x0) + 42a4: 3255 movi r2, 85 + 42a6: 648e cmpne r3, r2 + 42a8: 08c2 bt 0x442c // 442c + 42aa: 8041 ld.b r2, (r0, 0x1) + 42ac: 64ca cmpne r2, r3 + 42ae: 08bf bt 0x442c // 442c + 42b0: 8042 ld.b r2, (r0, 0x2) + 42b2: 33ee movi r3, 238 + 42b4: 64ca cmpne r2, r3 + 42b6: 08bb bt 0x442c // 442c + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_Dip.DIP_addr != RecData[5]) ) + 42b8: 8023 ld.b r1, (r0, 0x3) + 42ba: 596a addi r3, r1, 3 + 42bc: 654e cmpne r3, r5 + 42be: 08b9 bt 0x4430 // 4430 + 42c0: 8004 ld.b r0, (r0, 0x4) + 42c2: 3843 cmpnei r0, 3 + 42c4: 08b6 bt 0x4430 // 4430 + 42c6: 127d lrw r3, 0x20000448 // 4438 + 42c8: 8346 ld.b r2, (r3, 0x6) + 42ca: 8465 ld.b r3, (r4, 0x5) + 42cc: 64ca cmpne r2, r3 + 42ce: 08b0 bt 0x442e // 442e + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 42d0: 2901 subi r1, 2 + 42d2: 7445 zexth r1, r1 + 42d4: 5c0a addi r0, r4, 3 + 42d6: e3fffe39 bsr 0x3f48 // 3f48 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 42da: 5c54 addu r2, r4, r5 + 42dc: 5a63 subi r3, r2, 1 + 42de: 8360 ld.b r3, (r3, 0x0) + 42e0: 2a01 subi r2, 2 + 42e2: 4368 lsli r3, r3, 8 + 42e4: 8240 ld.b r2, (r2, 0x0) + 42e6: 60c8 addu r3, r2 + 42e8: 64c2 cmpne r0, r3 + 42ea: 08a5 bt 0x4434 // 4434 + { + switch(RecData[6]) + 42ec: 8406 ld.b r0, (r4, 0x6) + 42ee: 2800 subi r0, 1 + 42f0: 3811 cmphsi r0, 18 + 42f2: 0812 bt 0x4316 // 4316 + 42f4: e3ffe504 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42f8: 1f1f1f1f .long 0x1f1f1f1f + 42fc: 0f0f0f0f .long 0x0f0f0f0f + 4300: 0f0f090f .long 0x0f0f090f + 4304: 230f0f0f .long 0x230f0f0f + 4308: 3a27 .short 0x3a27 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 430a: 126d lrw r3, 0x200003f0 // 443c + 430c: 8367 ld.b r3, (r3, 0x7) + 430e: 3b42 cmpnei r3, 2 + 4310: 080c bt 0x4328 // 4328 + { + Clear_SendFlag(); + 4312: e3fff96d bsr 0x35ec // 35ec + } + break; + } + + + switch(RecData[6]) + 4316: 8406 ld.b r0, (r4, 0x6) + 4318: 2800 subi r0, 1 + 431a: 3803 cmphsi r0, 4 + 431c: 0808 bt 0x432c // 432c + 431e: 8467 ld.b r3, (r4, 0x7) + 4320: e3ffe4ee bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4324: 71614937 .long 0x71614937 + else if(g_eeprom.dev_port == POLLING_PORT) + 4328: 3b41 cmpnei r3, 1 + 432a: 0c03 bf 0x4330 // 4330 + break; + } + break; + } + + return ret; + 432c: 3000 movi r0, 0 + 432e: 0480 br 0x442e // 442e + Rs485AskCycleSend(); + 4330: e3fffebe bsr 0x40ac // 40ac + 4334: 07f1 br 0x4316 // 4316 + Rs485AskCtrlSend(RecData); + 4336: 6c13 mov r0, r4 + 4338: e3ffff3c bsr 0x41b0 // 41b0 + 433c: 07ed br 0x4316 // 4316 + Rs485AskReadSend(RecData); //版本号查询 + 433e: 6c13 mov r0, r4 + 4340: e3ffff66 bsr 0x420c // 420c + 4344: 07e9 br 0x4316 // 4316 + Rs485AskCtrlSend(RecData); + 4346: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 4348: 11be lrw r5, 0x20000420 // 4440 + Rs485AskCtrlSend(RecData); + 434a: e3ffff33 bsr 0x41b0 // 41b0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 434e: 854f ld.b r2, (r5, 0xf) + 4350: 113d lrw r1, 0x5f98 // 4444 + 4352: 3000 movi r0, 0 + 4354: e3fff9bc bsr 0x36cc // 36cc + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 4358: 8467 ld.b r3, (r4, 0x7) + 435a: 854f ld.b r2, (r5, 0xf) + 435c: 64ca cmpne r2, r3 + 435e: 0fdc bf 0x4316 // 4316 + if(TempCtrl.CardEn == 0x00) + 4360: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 4362: a56f st.b r3, (r5, 0xf) + if(TempCtrl.CardEn == 0x00) + 4364: 0bd9 bt 0x4316 // 4316 + TempCtrl.CardState = 0x01; + 4366: 3301 movi r3, 1 + 4368: a56d st.b r3, (r5, 0xd) + 436a: 07d6 br 0x4316 // 4316 + if(RecData[7] != g_eeprom.dev_port) + 436c: 11d4 lrw r6, 0x200003f0 // 443c + 436e: 8467 ld.b r3, (r4, 0x7) + 4370: 8647 ld.b r2, (r6, 0x7) + 4372: 64ca cmpne r2, r3 + 4374: 0fdc bf 0x432c // 432c + EEPROM_WriteParaInfo(&g_eeprom); + 4376: 6c1b mov r0, r6 + g_eeprom.dev_port = RecData[7]; + 4378: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 437a: e3fff9f5 bsr 0x3764 // 3764 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 437e: 6c1b mov r0, r6 + 4380: e3fff9b8 bsr 0x36f0 // 36f0 + if(rev_val == 0x00){ + 4384: 3840 cmpnei r0, 0 + 4386: 0bc8 bt 0x4316 // 4316 + Rs485_DevPort_ACK(RecData,Len); + 4388: 7454 zextb r1, r5 + 438a: 6c13 mov r0, r4 + 438c: e3ffff76 bsr 0x4278 // 4278 + 4390: 07c3 br 0x4316 // 4316 + switch(RecData[7]) + 4392: 74cc zextb r3, r3 + 4394: 3b40 cmpnei r3, 0 + 4396: 0c0a bf 0x43aa // 43aa + 4398: 3b41 cmpnei r3, 1 + 439a: 0bc9 bt 0x432c // 432c + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 439c: 1129 lrw r1, 0x20000420 // 4440 + 439e: 3200 movi r2, 0 + 43a0: 8162 ld.b r3, (r1, 0x2) + 43a2: 2a7f subi r2, 128 + 43a4: 6cc8 or r3, r2 + 43a6: a162 st.b r3, (r1, 0x2) + 43a8: 07c2 br 0x432c // 432c + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 43aa: 1146 lrw r2, 0x20000420 // 4440 + 43ac: 8262 ld.b r3, (r2, 0x2) + 43ae: 317f movi r1, 127 + 43b0: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 43b2: a262 st.b r3, (r2, 0x2) + 43b4: 07bc br 0x432c // 432c + switch(RecData[7]) // + 43b6: 74cc zextb r3, r3 + 43b8: 3b42 cmpnei r3, 2 + 43ba: 0c0a bf 0x43ce // 43ce + 43bc: 3b43 cmpnei r3, 3 + 43be: 0c0e bf 0x43da // 43da + 43c0: 3b41 cmpnei r3, 1 + 43c2: 0bb5 bt 0x432c // 432c + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 43c4: 105f lrw r2, 0x20000420 // 4440 + 43c6: 8262 ld.b r3, (r2, 0x2) + 43c8: 3170 movi r1, 112 + 43ca: 68c5 andn r3, r1 + 43cc: 07f3 br 0x43b2 // 43b2 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 43ce: 105d lrw r2, 0x20000420 // 4440 + 43d0: 8262 ld.b r3, (r2, 0x2) + 43d2: 3170 movi r1, 112 + 43d4: 68c5 andn r3, r1 + 43d6: 3ba5 bseti r3, 5 + 43d8: 07ed br 0x43b2 // 43b2 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 43da: 105a lrw r2, 0x20000420 // 4440 + 43dc: 8262 ld.b r3, (r2, 0x2) + 43de: 3170 movi r1, 112 + 43e0: 68c5 andn r3, r1 + 43e2: 3ba6 bseti r3, 6 + 43e4: 07e7 br 0x43b2 // 43b2 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 43e6: 3200 movi r2, 0 + 43e8: 74cc zextb r3, r3 + 43ea: 2a0f subi r2, 16 + 43ec: 608c addu r2, r3 + 43ee: 7488 zextb r2, r2 + 43f0: 3a0f cmphsi r2, 16 + 43f2: 0804 bt 0x43fa // 43fa + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 43f4: 1053 lrw r2, 0x20000420 // 4440 + 43f6: a261 st.b r3, (r2, 0x1) + 43f8: 079a br 0x432c // 432c + }else if(RecData[7] == TEM_MAX_SET){ + 43fa: 3220 movi r2, 32 + 43fc: 648e cmpne r3, r2 + 43fe: 0b97 bt 0x432c // 432c + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 4400: 1070 lrw r3, 0x20000420 // 4440 + 4402: a341 st.b r2, (r3, 0x1) + 4404: 0794 br 0x432c // 432c + switch(RecData[7]) //风速 + 4406: 740c zextb r0, r3 + 4408: 106e lrw r3, 0x20000420 // 4440 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 440a: 8342 ld.b r2, (r3, 0x2) + 440c: 310e movi r1, 14 + switch(RecData[7]) //风速 + 440e: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 4410: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 4412: 0807 bt 0x4420 // 4420 + 4414: e3ffe474 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4418: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + 441c: 3aa1 bseti r2, 1 + 441e: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 4420: a342 st.b r2, (r3, 0x2) + 4422: 0785 br 0x432c // 432c + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 4424: 3aa2 bseti r2, 2 + 4426: 07fd br 0x4420 // 4420 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 4428: 3aa1 bseti r2, 1 + 442a: 07fb br 0x4420 // 4420 + return 0x02; + 442c: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 442e: 1493 pop r4-r6, r15 + return 0x03; + 4430: 3003 movi r0, 3 + 4432: 07fe br 0x442e // 442e + return 0x01; + 4434: 3001 movi r0, 1 + 4436: 07fc br 0x442e // 442e + 4438: 20000448 .long 0x20000448 + 443c: 200003f0 .long 0x200003f0 + 4440: 20000420 .long 0x20000420 + 4444: 00005f98 .long 0x00005f98 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00004448 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 4448: 14d2 push r4-r5, r15 + 444a: 6d43 mov r5, r0 + 444c: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 444e: e3ffff21 bsr 0x4290 // 4290 + 4452: 3840 cmpnei r0, 0 + 4454: 0803 bt 0x445a // 445a + { + return ret = 1; + } + } + + return ret; + 4456: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 4458: 0404 br 0x4460 // 4460 + if (Len < 5){ //长度校验 + 445a: 3c04 cmphsi r4, 5 + 445c: 0803 bt 0x4462 // 4462 + return ret = 1; + 445e: 3001 movi r0, 1 + 4460: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 4462: 8540 ld.b r2, (r5, 0x0) + 4464: 33ff movi r3, 255 + 4466: 64ca cmpne r2, r3 + 4468: 0c04 bf 0x4470 // 4470 + 446a: 8561 ld.b r3, (r5, 0x1) + 446c: 3b48 cmpnei r3, 8 + 446e: 0bf8 bt 0x445e // 445e + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 4470: 1122 lrw r1, 0x5fa7 // 44f8 + 4472: 3000 movi r0, 0 + 4474: e3fff92c bsr 0x36cc // 36cc + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 4478: 3c45 cmpnei r4, 5 + 447a: 0814 bt 0x44a2 // 44a2 + 447c: 3104 movi r1, 4 + 447e: 6c17 mov r0, r5 + 4480: e3fffd82 bsr 0x3f84 // 3f84 + 4484: 8564 ld.b r3, (r5, 0x4) + 4486: 640e cmpne r3, r0 + 4488: 0beb bt 0x445e // 445e + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 448a: 107d lrw r3, 0x20000420 // 44fc + 448c: 8542 ld.b r2, (r5, 0x2) + 448e: 832d ld.b r1, (r3, 0xd) + 4490: 6486 cmpne r1, r2 + 4492: 0fe2 bf 0x4456 // 4456 + 4494: 832f ld.b r1, (r3, 0xf) + 4496: 3941 cmpnei r1, 1 + 4498: 0bdf bt 0x4456 // 4456 + TempCtrl.CardState = RecData[2]; + 449a: a34d st.b r2, (r3, 0xd) + TempCtrl.CardFlag = 0x01; + 449c: 3201 movi r2, 1 + 449e: a34e st.b r2, (r3, 0xe) + 44a0: 07db br 0x4456 // 4456 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 44a2: 3c09 cmphsi r4, 10 + 44a4: 0fdd bf 0x445e // 445e + 44a6: 5c27 subi r1, r4, 2 + 44a8: 7445 zexth r1, r1 + 44aa: 6114 addu r4, r5 + 44ac: 6c17 mov r0, r5 + 44ae: e3fffd4d bsr 0x3f48 // 3f48 + 44b2: 5c63 subi r3, r4, 1 + 44b4: 8360 ld.b r3, (r3, 0x0) + 44b6: 2c01 subi r4, 2 + 44b8: 4368 lsli r3, r3, 8 + 44ba: 8440 ld.b r2, (r4, 0x0) + 44bc: 60c8 addu r3, r2 + 44be: 64c2 cmpne r0, r3 + 44c0: 0bcf bt 0x445e // 445e + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 44c2: 106f lrw r3, 0x20000420 // 44fc + 44c4: 8543 ld.b r2, (r5, 0x3) + 44c6: 832d ld.b r1, (r3, 0xd) + 44c8: 6486 cmpne r1, r2 + 44ca: 0c07 bf 0x44d8 // 44d8 + 44cc: 832f ld.b r1, (r3, 0xf) + 44ce: 3941 cmpnei r1, 1 + 44d0: 0804 bt 0x44d8 // 44d8 + TempCtrl.CardState = RecData[3]; + 44d2: a34d st.b r2, (r3, 0xd) + TempCtrl.CardFlag = 0x01; + 44d4: 3201 movi r2, 1 + 44d6: a34e st.b r2, (r3, 0xe) + if(TempCtrl.SceneNo != RecData[7]) + 44d8: 8547 ld.b r2, (r5, 0x7) + 44da: 8330 ld.b r1, (r3, 0x10) + 44dc: 6486 cmpne r1, r2 + 44de: 0c07 bf 0x44ec // 44ec + TempCtrl.SceneNo = RecData[7]; + 44e0: a350 st.b r2, (r3, 0x10) + TempCtrl.SceneNoTick = SysTick_1ms; + 44e2: 1048 lrw r2, 0x200000b8 // 4500 + 44e4: 9240 ld.w r2, (r2, 0x0) + 44e6: b346 st.w r2, (r3, 0x18) + TempCtrl.SceneFlag = 0x01; + 44e8: 3201 movi r2, 1 + 44ea: a351 st.b r2, (r3, 0x11) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 44ec: 8350 ld.b r2, (r3, 0x10) + 44ee: 1026 lrw r1, 0x5fb9 // 4504 + 44f0: 3000 movi r0, 0 + 44f2: e3fff8ed bsr 0x36cc // 36cc + 44f6: 07b0 br 0x4456 // 4456 + 44f8: 00005fa7 .long 0x00005fa7 + 44fc: 20000420 .long 0x20000420 + 4500: 200000b8 .long 0x200000b8 + 4504: 00005fb9 .long 0x00005fb9 + +Disassembly of section .text.DIP_GetSwitchState: + +00004508 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 4508: 14d0 push r15 + U8_T val = 0; + + switch (i) + 450a: 3841 cmpnei r0, 1 + 450c: 0c0d bf 0x4526 // 4526 + 450e: 3840 cmpnei r0, 0 + 4510: 0c05 bf 0x451a // 451a + 4512: 3842 cmpnei r0, 2 + 4514: 0c0d bf 0x452e // 452e + U8_T val = 0; + 4516: 3000 movi r0, 0 + 4518: 0406 br 0x4524 // 4524 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOB0,2); + 451a: 1068 lrw r3, 0x20000048 // 4538 + 451c: 3102 movi r1, 2 + 451e: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOB0,1); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOB0,0); + 4520: e3ffede1 bsr 0x20e2 // 20e2 + break; + } + return val; +} + 4524: 1490 pop r15 + val = GPIO_Read_Status(GPIOB0,1); + 4526: 1065 lrw r3, 0x20000048 // 4538 + 4528: 3101 movi r1, 1 + 452a: 9300 ld.w r0, (r3, 0x0) + 452c: 07fa br 0x4520 // 4520 + val = GPIO_Read_Status(GPIOB0,0); + 452e: 1063 lrw r3, 0x20000048 // 4538 + 4530: 3100 movi r1, 0 + 4532: 9300 ld.w r0, (r3, 0x0) + 4534: 07f6 br 0x4520 // 4520 + 4536: 0000 bkpt + 4538: 20000048 .long 0x20000048 + +Disassembly of section .text.DIP_Switch_Init: + +0000453c : +void DIP_Switch_Init(void){ + 453c: 14d2 push r4-r5, r15 + GPIO_Init(GPIOB0,0,Intput); + 453e: 1180 lrw r4, 0x20000048 // 45bc + 4540: 3201 movi r2, 1 + 4542: 9400 ld.w r0, (r4, 0x0) + 4544: 3100 movi r1, 0 + 4546: e3ffec7d bsr 0x1e40 // 1e40 + GPIO_Init(GPIOB0,1,Intput); + 454a: 9400 ld.w r0, (r4, 0x0) + 454c: 3201 movi r2, 1 + 454e: 3101 movi r1, 1 + 4550: e3ffec78 bsr 0x1e40 // 1e40 + GPIO_Init(GPIOB0,2,Intput); + 4554: 3201 movi r2, 1 + 4556: 9400 ld.w r0, (r4, 0x0) + 4558: 3102 movi r1, 2 + 455a: e3ffec73 bsr 0x1e40 // 1e40 + GPIO_PullHigh_Init(GPIOB0,0); + 455e: 9400 ld.w r0, (r4, 0x0) + 4560: 3100 movi r1, 0 + 4562: e3ffecdf bsr 0x1f20 // 1f20 + GPIO_PullHigh_Init(GPIOB0,1); + 4566: 9400 ld.w r0, (r4, 0x0) + 4568: 3101 movi r1, 1 + 456a: e3ffecdb bsr 0x1f20 // 1f20 + GPIO_PullHigh_Init(GPIOB0,2); + 456e: 9400 ld.w r0, (r4, 0x0) + 4570: 3102 movi r1, 2 + 4572: e3ffecd7 bsr 0x1f20 // 1f20 + memset(&g_Dip,0,sizeof(DIP_t)); + 4576: 3210 movi r2, 16 + 4578: 3100 movi r1, 0 + 457a: 1012 lrw r0, 0x20000448 // 45c0 + 457c: e3ffe9f4 bsr 0x1964 // 1964 <__memset_fast> + delay_nms(20); + 4580: 3014 movi r0, 20 + 4582: e3ffef7d bsr 0x247c // 247c + 4586: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 4588: 10ae lrw r5, 0x20000448 // 45c0 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 458a: 7410 zextb r0, r4 + 458c: e3ffffbe bsr 0x4508 // 4508 + 4590: 3840 cmpnei r0, 0 + 4592: 0807 bt 0x45a0 // 45a0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 4594: 3301 movi r3, 1 + 4596: 70d0 lsl r3, r4 + 4598: 6c8f mov r2, r3 + 459a: 9562 ld.w r3, (r5, 0x8) + 459c: 6cc8 or r3, r2 + 459e: b562 st.w r3, (r5, 0x8) + 45a0: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 45a2: 3c43 cmpnei r4, 3 + 45a4: 0bf3 bt 0x458a // 458a + g_Dip.DIP_last_val = g_Dip.DIP_val; + 45a6: 1067 lrw r3, 0x20000448 // 45c0 + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 45a8: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 45aa: 9342 ld.w r2, (r3, 0x8) + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 45ac: 6848 and r1, r2 + 45ae: a326 st.b r1, (r3, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); + 45b0: 3000 movi r0, 0 + 45b2: 1025 lrw r1, 0x5fc4 // 45c4 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 45b4: b343 st.w r2, (r3, 0xc) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); + 45b6: e3fff88b bsr 0x36cc // 36cc +} + 45ba: 1492 pop r4-r5, r15 + 45bc: 20000048 .long 0x20000048 + 45c0: 20000448 .long 0x20000448 + 45c4: 00005fc4 .long 0x00005fc4 + +Disassembly of section .text.DIP_ScanTask: + +000045c8 : + +void DIP_ScanTask(void) +{ + 45c8: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 45ca: 1122 lrw r1, 0x200000b8 // 4650 + 45cc: 1142 lrw r2, 0x2000014c // 4654 + 45ce: 11a3 lrw r5, 0x20000448 // 4658 + 45d0: 9200 ld.w r0, (r2, 0x0) + 45d2: 9160 ld.w r3, (r1, 0x0) + 45d4: 60c2 subu r3, r0 + 45d6: 3b14 cmphsi r3, 21 + 45d8: 0806 bt 0x45e4 // 45e4 + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 45da: 9542 ld.w r2, (r5, 0x8) + 45dc: 9563 ld.w r3, (r5, 0xc) + 45de: 64ca cmpne r2, r3 + 45e0: 082e bt 0x463c // 463c + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + } + +} + 45e2: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 45e4: 9160 ld.w r3, (r1, 0x0) + 45e6: b260 st.w r3, (r2, 0x0) + 45e8: 6d17 mov r4, r5 + 45ea: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 45ec: 7418 zextb r0, r6 + 45ee: e3ffff8d bsr 0x4508 // 4508 + 45f2: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 45f4: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 45f6: 0814 bt 0x461e // 461e + g_Dip.delayCnt_OFF[i] = 0; + 45f8: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 45fa: 8460 ld.b r3, (r4, 0x0) + 45fc: 3b04 cmphsi r3, 5 + 45fe: 0808 bt 0x460e // 460e + g_Dip.delayCnt_ON[i]++; + 4600: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 4602: a460 st.b r3, (r4, 0x0) + 4604: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 4606: 3e43 cmpnei r6, 3 + 4608: 2400 addi r4, 1 + 460a: 0bf1 bt 0x45ec // 45ec + 460c: 07e7 br 0x45da // 45da + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 460e: 3301 movi r3, 1 + 4610: 70d8 lsl r3, r6 + 4612: 6c8f mov r2, r3 + 4614: 9562 ld.w r3, (r5, 0x8) + 4616: 6cc8 or r3, r2 + 4618: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_ON[i] = 0; + 461a: 3300 movi r3, 0 + 461c: 07f3 br 0x4602 // 4602 + g_Dip.delayCnt_ON[i] = 0; + 461e: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 4620: 8463 ld.b r3, (r4, 0x3) + 4622: 3b04 cmphsi r3, 5 + 4624: 0804 bt 0x462c // 462c + g_Dip.delayCnt_OFF[i]++; + 4626: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 4628: a463 st.b r3, (r4, 0x3) + 462a: 07ed br 0x4604 // 4604 + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 462c: 3300 movi r3, 0 + 462e: 2b01 subi r3, 2 + 4630: 9542 ld.w r2, (r5, 0x8) + 4632: 70db rotl r3, r6 + 4634: 68c8 and r3, r2 + 4636: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_OFF[i] = 0; + 4638: 3300 movi r3, 0 + 463a: 07f7 br 0x4628 // 4628 + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 463c: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 463e: b543 st.w r2, (r5, 0xc) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + 4640: 3000 movi r0, 0 + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 4642: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + 4644: 1026 lrw r1, 0x5fd0 // 465c + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 4646: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + 4648: e3fff842 bsr 0x36cc // 36cc +} + 464c: 07cb br 0x45e2 // 45e2 + 464e: 0000 bkpt + 4650: 200000b8 .long 0x200000b8 + 4654: 2000014c .long 0x2000014c + 4658: 20000448 .long 0x20000448 + 465c: 00005fd0 .long 0x00005fd0 + +Disassembly of section .text.TK_Single_Longpress_prg: + +00004660 : + 4660: 14c2 push r4-r5 + 4662: 117d lrw r3, 0x200005fc // 4754 + 4664: 115d lrw r2, 0x20000568 // 4758 + 4666: 9360 ld.w r3, (r3, 0x0) + 4668: 3b40 cmpnei r3, 0 + 466a: 0840 bt 0x46ea // 46ea + 466c: 113c lrw r1, 0x20000068 // 475c + 466e: 8962 ld.h r3, (r1, 0x4) + 4670: 74cd zexth r3, r3 + 4672: 3b40 cmpnei r3, 0 + 4674: 0c3b bf 0x46ea // 46ea + 4676: 117b lrw r3, 0x200004fc // 4760 + 4678: 9360 ld.w r3, (r3, 0x0) + 467a: 3b40 cmpnei r3, 0 + 467c: 117a lrw r3, 0x200006b2 // 4764 + 467e: 0c0e bf 0x469a // 469a + 4680: 8300 ld.b r0, (r3, 0x0) + 4682: 2000 addi r0, 1 + 4684: 7400 zextb r0, r0 + 4686: a300 st.b r0, (r3, 0x0) + 4688: 8380 ld.b r4, (r3, 0x0) + 468a: 8902 ld.h r0, (r1, 0x4) + 468c: 7401 zexth r0, r0 + 468e: 3564 movi r5, 100 + 4690: 7c14 mult r0, r5 + 4692: 6501 cmplt r0, r4 + 4694: 0c05 bf 0x469e // 469e + 4696: 3001 movi r0, 1 + 4698: a200 st.b r0, (r2, 0x0) + 469a: 3000 movi r0, 0 + 469c: a300 st.b r0, (r3, 0x0) + 469e: 1113 lrw r0, 0x20000490 // 4768 + 46a0: 9000 ld.w r0, (r0, 0x0) + 46a2: 3840 cmpnei r0, 0 + 46a4: 0c0e bf 0x46c0 // 46c0 + 46a6: 8301 ld.b r0, (r3, 0x1) + 46a8: 2000 addi r0, 1 + 46aa: 7400 zextb r0, r0 + 46ac: a301 st.b r0, (r3, 0x1) + 46ae: 8381 ld.b r4, (r3, 0x1) + 46b0: 8902 ld.h r0, (r1, 0x4) + 46b2: 7401 zexth r0, r0 + 46b4: 3564 movi r5, 100 + 46b6: 7c14 mult r0, r5 + 46b8: 6501 cmplt r0, r4 + 46ba: 0c05 bf 0x46c4 // 46c4 + 46bc: 3001 movi r0, 1 + 46be: a201 st.b r0, (r2, 0x1) + 46c0: 3000 movi r0, 0 + 46c2: a301 st.b r0, (r3, 0x1) + 46c4: 110a lrw r0, 0x20000574 // 476c + 46c6: 9000 ld.w r0, (r0, 0x0) + 46c8: 3840 cmpnei r0, 0 + 46ca: 0c0e bf 0x46e6 // 46e6 + 46cc: 8302 ld.b r0, (r3, 0x2) + 46ce: 2000 addi r0, 1 + 46d0: 7400 zextb r0, r0 + 46d2: a302 st.b r0, (r3, 0x2) + 46d4: 8302 ld.b r0, (r3, 0x2) + 46d6: 8922 ld.h r1, (r1, 0x4) + 46d8: 7445 zexth r1, r1 + 46da: 3464 movi r4, 100 + 46dc: 7c50 mult r1, r4 + 46de: 6405 cmplt r1, r0 + 46e0: 0c05 bf 0x46ea // 46ea + 46e2: 3101 movi r1, 1 + 46e4: a222 st.b r1, (r2, 0x2) + 46e6: 3100 movi r1, 0 + 46e8: a322 st.b r1, (r3, 0x2) + 46ea: 8260 ld.b r3, (r2, 0x0) + 46ec: 3b41 cmpnei r3, 1 + 46ee: 080f bt 0x470c // 470c + 46f0: 3300 movi r3, 0 + 46f2: 11a0 lrw r5, 0x200007ae // 4770 + 46f4: 1180 lrw r4, 0x2000045c // 4774 + 46f6: 4321 lsli r1, r3, 1 + 46f8: 5d04 addu r0, r5, r1 + 46fa: 8800 ld.h r0, (r0, 0x0) + 46fc: 2300 addi r3, 1 + 46fe: 7401 zexth r0, r0 + 4700: 6050 addu r1, r4 + 4702: 3b51 cmpnei r3, 17 + 4704: a900 st.h r0, (r1, 0x0) + 4706: 0bf8 bt 0x46f6 // 46f6 + 4708: 3300 movi r3, 0 + 470a: a260 st.b r3, (r2, 0x0) + 470c: 8261 ld.b r3, (r2, 0x1) + 470e: 3b41 cmpnei r3, 1 + 4710: 080f bt 0x472e // 472e + 4712: 3300 movi r3, 0 + 4714: 10b9 lrw r5, 0x20000544 // 4778 + 4716: 109a lrw r4, 0x20000606 // 477c + 4718: 4321 lsli r1, r3, 1 + 471a: 5d04 addu r0, r5, r1 + 471c: 8800 ld.h r0, (r0, 0x0) + 471e: 2300 addi r3, 1 + 4720: 7401 zexth r0, r0 + 4722: 6050 addu r1, r4 + 4724: 3b51 cmpnei r3, 17 + 4726: a900 st.h r0, (r1, 0x0) + 4728: 0bf8 bt 0x4718 // 4718 + 472a: 3300 movi r3, 0 + 472c: a261 st.b r3, (r2, 0x1) + 472e: 8262 ld.b r3, (r2, 0x2) + 4730: 3b41 cmpnei r3, 1 + 4732: 080f bt 0x4750 // 4750 + 4734: 3300 movi r3, 0 + 4736: 10b3 lrw r5, 0x2000063a // 4780 + 4738: 1093 lrw r4, 0x2000071c // 4784 + 473a: 4321 lsli r1, r3, 1 + 473c: 5d04 addu r0, r5, r1 + 473e: 8800 ld.h r0, (r0, 0x0) + 4740: 2300 addi r3, 1 + 4742: 7401 zexth r0, r0 + 4744: 6050 addu r1, r4 + 4746: 3b51 cmpnei r3, 17 + 4748: a900 st.h r0, (r1, 0x0) + 474a: 0bf8 bt 0x473a // 473a + 474c: 3300 movi r3, 0 + 474e: a262 st.b r3, (r2, 0x2) + 4750: 1482 pop r4-r5 + 4752: 0000 bkpt + 4754: 200005fc .long 0x200005fc + 4758: 20000568 .long 0x20000568 + 475c: 20000068 .long 0x20000068 + 4760: 200004fc .long 0x200004fc + 4764: 200006b2 .long 0x200006b2 + 4768: 20000490 .long 0x20000490 + 476c: 20000574 .long 0x20000574 + 4770: 200007ae .long 0x200007ae + 4774: 2000045c .long 0x2000045c + 4778: 20000544 .long 0x20000544 + 477c: 20000606 .long 0x20000606 + 4780: 2000063a .long 0x2000063a + 4784: 2000071c .long 0x2000071c + +Disassembly of section .text.TK_Sampling_prog: + +00004788 : + 4788: 14c4 push r4-r7 + 478a: 1423 subi r14, r14, 12 + 478c: 1169 lrw r3, 0x20000054 // 4830 + 478e: 114a lrw r2, 0x20000719 // 4834 + 4790: 6d0b mov r4, r2 + 4792: 9320 ld.w r1, (r3, 0x0) + 4794: b840 st.w r2, (r14, 0x0) + 4796: 3300 movi r3, 0 + 4798: 11a8 lrw r5, 0x200007ae // 4838 + 479a: 9840 ld.w r2, (r14, 0x0) + 479c: 8240 ld.b r2, (r2, 0x0) + 479e: 3a41 cmpnei r2, 1 + 47a0: 0808 bt 0x47b0 // 47b0 + 47a2: 4342 lsli r2, r3, 2 + 47a4: 6084 addu r2, r1 + 47a6: 9200 ld.w r0, (r2, 0x0) + 47a8: 4341 lsli r2, r3, 1 + 47aa: 7401 zexth r0, r0 + 47ac: 6094 addu r2, r5 + 47ae: aa00 st.h r0, (r2, 0x0) + 47b0: 8440 ld.b r2, (r4, 0x0) + 47b2: 3a42 cmpnei r2, 2 + 47b4: 0809 bt 0x47c6 // 47c6 + 47b6: 4342 lsli r2, r3, 2 + 47b8: 6084 addu r2, r1 + 47ba: 9200 ld.w r0, (r2, 0x0) + 47bc: 4341 lsli r2, r3, 1 + 47be: 11c0 lrw r6, 0x20000544 // 483c + 47c0: 7401 zexth r0, r0 + 47c2: 6098 addu r2, r6 + 47c4: aa00 st.h r0, (r2, 0x0) + 47c6: 8440 ld.b r2, (r4, 0x0) + 47c8: 3a40 cmpnei r2, 0 + 47ca: 0809 bt 0x47dc // 47dc + 47cc: 4342 lsli r2, r3, 2 + 47ce: 6084 addu r2, r1 + 47d0: 9200 ld.w r0, (r2, 0x0) + 47d2: 4341 lsli r2, r3, 1 + 47d4: 10db lrw r6, 0x2000063a // 4840 + 47d6: 7401 zexth r0, r0 + 47d8: 6098 addu r2, r6 + 47da: aa00 st.h r0, (r2, 0x0) + 47dc: 10da lrw r6, 0x200005a1 // 4844 + 47de: 8640 ld.b r2, (r6, 0x0) + 47e0: 3a41 cmpnei r2, 1 + 47e2: 0821 bt 0x4824 // 4824 + 47e4: 1079 lrw r3, 0x2000045c // 4848 + 47e6: 3200 movi r2, 0 + 47e8: b861 st.w r3, (r14, 0x4) + 47ea: 1075 lrw r3, 0x20000544 // 483c + 47ec: b862 st.w r3, (r14, 0x8) + 47ee: 4261 lsli r3, r2, 1 + 47f0: 5d0c addu r0, r5, r3 + 47f2: 8800 ld.h r0, (r0, 0x0) + 47f4: 98e1 ld.w r7, (r14, 0x4) + 47f6: 61cc addu r7, r3 + 47f8: 7401 zexth r0, r0 + 47fa: af00 st.h r0, (r7, 0x0) + 47fc: 9802 ld.w r0, (r14, 0x8) + 47fe: 600c addu r0, r3 + 4800: 8800 ld.h r0, (r0, 0x0) + 4802: 10f3 lrw r7, 0x20000606 // 484c + 4804: 61cc addu r7, r3 + 4806: 7401 zexth r0, r0 + 4808: af00 st.h r0, (r7, 0x0) + 480a: 2200 addi r2, 1 + 480c: 100d lrw r0, 0x2000063a // 4840 + 480e: 600c addu r0, r3 + 4810: 8800 ld.h r0, (r0, 0x0) + 4812: 10f0 lrw r7, 0x2000071c // 4850 + 4814: 7401 zexth r0, r0 + 4816: 60dc addu r3, r7 + 4818: 3a51 cmpnei r2, 17 + 481a: ab00 st.h r0, (r3, 0x0) + 481c: 0be9 bt 0x47ee // 47ee + 481e: 3300 movi r3, 0 + 4820: a660 st.b r3, (r6, 0x0) + 4822: 3311 movi r3, 17 + 4824: 2300 addi r3, 1 + 4826: 74cc zextb r3, r3 + 4828: 3b10 cmphsi r3, 17 + 482a: 0fb8 bf 0x479a // 479a + 482c: 1403 addi r14, r14, 12 + 482e: 1484 pop r4-r7 + 4830: 20000054 .long 0x20000054 + 4834: 20000719 .long 0x20000719 + 4838: 200007ae .long 0x200007ae + 483c: 20000544 .long 0x20000544 + 4840: 2000063a .long 0x2000063a + 4844: 200005a1 .long 0x200005a1 + 4848: 2000045c .long 0x2000045c + 484c: 20000606 .long 0x20000606 + 4850: 2000071c .long 0x2000071c + +Disassembly of section .text.get_key_number: + +00004854 : + 4854: 14c2 push r4-r5 + 4856: 3200 movi r2, 0 + 4858: 3000 movi r0, 0 + 485a: 1088 lrw r4, 0x200005fc // 4878 + 485c: 3501 movi r5, 1 + 485e: 3120 movi r1, 32 + 4860: 9460 ld.w r3, (r4, 0x0) + 4862: 70c9 lsr r3, r2 + 4864: 68d4 and r3, r5 + 4866: 3b40 cmpnei r3, 0 + 4868: 0c02 bf 0x486c // 486c + 486a: 2000 addi r0, 1 + 486c: 2200 addi r2, 1 + 486e: 644a cmpne r2, r1 + 4870: 0bf8 bt 0x4860 // 4860 + 4872: 7400 zextb r0, r0 + 4874: 1482 pop r4-r5 + 4876: 0000 bkpt + 4878: 200005fc .long 0x200005fc + +Disassembly of section .text.get_key_number0: + +0000487c : + 487c: 14c2 push r4-r5 + 487e: 3200 movi r2, 0 + 4880: 3000 movi r0, 0 + 4882: 1088 lrw r4, 0x200004fc // 48a0 + 4884: 3501 movi r5, 1 + 4886: 3120 movi r1, 32 + 4888: 9460 ld.w r3, (r4, 0x0) + 488a: 70c9 lsr r3, r2 + 488c: 68d4 and r3, r5 + 488e: 3b40 cmpnei r3, 0 + 4890: 0c02 bf 0x4894 // 4894 + 4892: 2000 addi r0, 1 + 4894: 2200 addi r2, 1 + 4896: 644a cmpne r2, r1 + 4898: 0bf8 bt 0x4888 // 4888 + 489a: 7400 zextb r0, r0 + 489c: 1482 pop r4-r5 + 489e: 0000 bkpt + 48a0: 200004fc .long 0x200004fc + +Disassembly of section .text.get_key_number1: + +000048a4 : + 48a4: 14c2 push r4-r5 + 48a6: 3200 movi r2, 0 + 48a8: 3000 movi r0, 0 + 48aa: 1088 lrw r4, 0x20000490 // 48c8 + 48ac: 3501 movi r5, 1 + 48ae: 3120 movi r1, 32 + 48b0: 9460 ld.w r3, (r4, 0x0) + 48b2: 70c9 lsr r3, r2 + 48b4: 68d4 and r3, r5 + 48b6: 3b40 cmpnei r3, 0 + 48b8: 0c02 bf 0x48bc // 48bc + 48ba: 2000 addi r0, 1 + 48bc: 2200 addi r2, 1 + 48be: 644a cmpne r2, r1 + 48c0: 0bf8 bt 0x48b0 // 48b0 + 48c2: 7400 zextb r0, r0 + 48c4: 1482 pop r4-r5 + 48c6: 0000 bkpt + 48c8: 20000490 .long 0x20000490 + +Disassembly of section .text.get_key_number2: + +000048cc : + 48cc: 14c2 push r4-r5 + 48ce: 3200 movi r2, 0 + 48d0: 3000 movi r0, 0 + 48d2: 1088 lrw r4, 0x20000574 // 48f0 + 48d4: 3501 movi r5, 1 + 48d6: 3120 movi r1, 32 + 48d8: 9460 ld.w r3, (r4, 0x0) + 48da: 70c9 lsr r3, r2 + 48dc: 68d4 and r3, r5 + 48de: 3b40 cmpnei r3, 0 + 48e0: 0c02 bf 0x48e4 // 48e4 + 48e2: 2000 addi r0, 1 + 48e4: 2200 addi r2, 1 + 48e6: 644a cmpne r2, r1 + 48e8: 0bf8 bt 0x48d8 // 48d8 + 48ea: 7400 zextb r0, r0 + 48ec: 1482 pop r4-r5 + 48ee: 0000 bkpt + 48f0: 20000574 .long 0x20000574 + +Disassembly of section .text.TK_Scan_Start: + +000048f4 : + 48f4: 1073 lrw r3, 0x20000068 // 4940 + 48f6: 1054 lrw r2, 0x20000719 // 4944 + 48f8: 8302 ld.b r0, (r3, 0x2) + 48fa: 8220 ld.b r1, (r2, 0x0) + 48fc: 6442 cmpne r0, r1 + 48fe: 0c16 bf 0x492a // 492a + 4900: 8220 ld.b r1, (r2, 0x0) + 4902: 7444 zextb r1, r1 + 4904: 3941 cmpnei r1, 1 + 4906: 0c18 bf 0x4936 // 4936 + 4908: 3940 cmpnei r1, 0 + 490a: 0c11 bf 0x492c // 492c + 490c: 3942 cmpnei r1, 2 + 490e: 0c16 bf 0x493a // 493a + 4910: 8240 ld.b r2, (r2, 0x0) + 4912: 7488 zextb r2, r2 + 4914: a342 st.b r2, (r3, 0x2) + 4916: 8341 ld.b r2, (r3, 0x1) + 4918: 7488 zextb r2, r2 + 491a: 3a41 cmpnei r2, 1 + 491c: 0807 bt 0x492a // 492a + 491e: 102b lrw r1, 0x20000058 // 4948 + 4920: 9120 ld.w r1, (r1, 0x0) + 4922: b142 st.w r2, (r1, 0x8) + 4924: 3200 movi r2, 0 + 4926: a340 st.b r2, (r3, 0x0) + 4928: a341 st.b r2, (r3, 0x1) + 492a: 783c jmp r15 + 492c: 1028 lrw r1, 0x200007d0 // 494c + 492e: 9100 ld.w r0, (r1, 0x0) + 4930: 1028 lrw r1, 0x40011200 // 4950 + 4932: b110 st.w r0, (r1, 0x40) + 4934: 07ee br 0x4910 // 4910 + 4936: 1028 lrw r1, 0x20000540 // 4954 + 4938: 07fb br 0x492e // 492e + 493a: 1028 lrw r1, 0x20000570 // 4958 + 493c: 07f9 br 0x492e // 492e + 493e: 0000 bkpt + 4940: 20000068 .long 0x20000068 + 4944: 20000719 .long 0x20000719 + 4948: 20000058 .long 0x20000058 + 494c: 200007d0 .long 0x200007d0 + 4950: 40011200 .long 0x40011200 + 4954: 20000540 .long 0x20000540 + 4958: 20000570 .long 0x20000570 + +Disassembly of section .text.TK_Keymap_prog: + +0000495c : + 495c: 14d4 push r4-r7, r15 + 495e: 142a subi r14, r14, 40 + 4960: 0171 lrw r3, 0x20000180 // 4c98 + 4962: 8360 ld.b r3, (r3, 0x0) + 4964: b860 st.w r3, (r14, 0x0) + 4966: 3400 movi r4, 0 + 4968: 0172 lrw r3, 0x20000154 // 4c9c + 496a: 8360 ld.b r3, (r3, 0x0) + 496c: b863 st.w r3, (r14, 0xc) + 496e: 0172 lrw r3, 0x2000015d // 4ca0 + 4970: 83a0 ld.b r5, (r3, 0x0) + 4972: 0172 lrw r3, 0x2000015c // 4ca4 + 4974: 8360 ld.b r3, (r3, 0x0) + 4976: b866 st.w r3, (r14, 0x18) + 4978: 0173 lrw r3, 0x200007ae // 4ca8 + 497a: b868 st.w r3, (r14, 0x20) + 497c: 0173 lrw r3, 0x2000051c // 4cac + 497e: b864 st.w r3, (r14, 0x10) + 4980: b869 st.w r3, (r14, 0x24) + 4982: 4461 lsli r3, r4, 1 + 4984: 9848 ld.w r2, (r14, 0x20) + 4986: 608c addu r2, r3 + 4988: 0135 lrw r1, 0x2000045c // 4cb0 + 498a: 604c addu r1, r3 + 498c: 8a40 ld.h r2, (r2, 0x0) + 498e: 8920 ld.h r1, (r1, 0x0) + 4990: 6086 subu r2, r1 + 4992: 9829 ld.w r1, (r14, 0x24) + 4994: 604c addu r1, r3 + 4996: 748b sexth r2, r2 + 4998: a940 st.h r2, (r1, 0x0) + 499a: 0118 lrw r0, 0x20000606 // 4cb4 + 499c: 0158 lrw r2, 0x20000544 // 4cb8 + 499e: 608c addu r2, r3 + 49a0: 600c addu r0, r3 + 49a2: 8a40 ld.h r2, (r2, 0x0) + 49a4: 8800 ld.h r0, (r0, 0x0) + 49a6: 6082 subu r2, r0 + 49a8: 01da lrw r6, 0x2000065c // 4cbc + 49aa: 5e0c addu r0, r6, r3 + 49ac: 748b sexth r2, r2 + 49ae: a840 st.h r2, (r0, 0x0) + 49b0: b8c1 st.w r6, (r14, 0x4) + 49b2: 015b lrw r2, 0x2000063a // 4cc0 + 49b4: 011b lrw r0, 0x2000071c // 4cc4 + 49b6: 608c addu r2, r3 + 49b8: 600c addu r0, r3 + 49ba: 8a40 ld.h r2, (r2, 0x0) + 49bc: 8800 ld.h r0, (r0, 0x0) + 49be: 6082 subu r2, r0 + 49c0: 011d lrw r0, 0x20000788 // 4cc8 + 49c2: 748b sexth r2, r2 + 49c4: 58ec addu r7, r0, r3 + 49c6: af40 st.h r2, (r7, 0x0) + 49c8: 8940 ld.h r2, (r1, 0x0) + 49ca: 748b sexth r2, r2 + 49cc: 3adf btsti r2, 31 + 49ce: 015f lrw r2, 0x20000766 // 4ccc + 49d0: 60c8 addu r3, r2 + 49d2: b802 st.w r0, (r14, 0x8) + 49d4: 0c49 bf 0x4a66 // 4a66 + 49d6: 3200 movi r2, 0 + 49d8: ab40 st.h r2, (r3, 0x0) + 49da: 9821 ld.w r1, (r14, 0x4) + 49dc: 4461 lsli r3, r4, 1 + 49de: 604c addu r1, r3 + 49e0: 8940 ld.h r2, (r1, 0x0) + 49e2: 748b sexth r2, r2 + 49e4: 3adf btsti r2, 31 + 49e6: 0244 lrw r2, 0x200004c4 // 4cd0 + 49e8: 60c8 addu r3, r2 + 49ea: 0c41 bf 0x4a6c // 4a6c + 49ec: 3200 movi r2, 0 + 49ee: ab40 st.h r2, (r3, 0x0) + 49f0: 9822 ld.w r1, (r14, 0x8) + 49f2: 4461 lsli r3, r4, 1 + 49f4: 604c addu r1, r3 + 49f6: 8940 ld.h r2, (r1, 0x0) + 49f8: 748b sexth r2, r2 + 49fa: 3adf btsti r2, 31 + 49fc: 0249 lrw r2, 0x20000498 // 4cd4 + 49fe: 60c8 addu r3, r2 + 4a00: 0c39 bf 0x4a72 // 4a72 + 4a02: 3200 movi r2, 0 + 4a04: ab40 st.h r2, (r3, 0x0) + 4a06: 9860 ld.w r3, (r14, 0x0) + 4a08: 3b03 cmphsi r3, 4 + 4a0a: 4421 lsli r1, r4, 1 + 4a0c: 0cb5 bf 0x4b76 // 4b76 + 4a0e: 9864 ld.w r3, (r14, 0x10) + 4a10: 60c4 addu r3, r1 + 4a12: 024d lrw r2, 0x200001ae // 4cd8 + 4a14: 6048 addu r1, r2 + 4a16: 8b00 ld.h r0, (r3, 0x0) + 4a18: 8940 ld.h r2, (r1, 0x0) + 4a1a: 7403 sexth r0, r0 + 4a1c: 6409 cmplt r2, r0 + 4a1e: 9820 ld.w r1, (r14, 0x0) + 4a20: 7c84 mult r2, r1 + 4a22: 0c9b bf 0x4b58 // 4b58 + 4a24: 8b20 ld.h r1, (r3, 0x0) + 4a26: 7447 sexth r1, r1 + 4a28: 6485 cmplt r1, r2 + 4a2a: 0c97 bf 0x4b58 // 4b58 + 4a2c: 0233 lrw r1, 0x20000509 // 4cdc + 4a2e: 6050 addu r1, r4 + 4a30: 8140 ld.b r2, (r1, 0x0) + 4a32: 2200 addi r2, 1 + 4a34: 7488 zextb r2, r2 + 4a36: a140 st.b r2, (r1, 0x0) + 4a38: 3000 movi r0, 0 + 4a3a: 0255 lrw r2, 0x200004e8 // 4ce0 + 4a3c: 6090 addu r2, r4 + 4a3e: a200 st.b r0, (r2, 0x0) + 4a40: 0256 lrw r2, 0x20000628 // 4ce4 + 4a42: 6090 addu r2, r4 + 4a44: a200 st.b r0, (r2, 0x0) + 4a46: 0256 lrw r2, 0x200006c0 // 4ce8 + 4a48: 6090 addu r2, r4 + 4a4a: a200 st.b r0, (r2, 0x0) + 4a4c: 8140 ld.b r2, (r1, 0x0) + 4a4e: 9803 ld.w r0, (r14, 0xc) + 4a50: 6480 cmphs r0, r2 + 4a52: 081d bt 0x4a8c // 4a8c + 4a54: 3d40 cmpnei r5, 0 + 4a56: 0811 bt 0x4a78 // 4a78 + 4a58: 025a lrw r2, 0x200004fc // 4cec + 4a5a: 9260 ld.w r3, (r2, 0x0) + 4a5c: 3b40 cmpnei r3, 0 + 4a5e: 0815 bt 0x4a88 // 4a88 + 4a60: 9200 ld.w r0, (r2, 0x0) + 4a62: 3301 movi r3, 1 + 4a64: 040f br 0x4a82 // 4a82 + 4a66: 8940 ld.h r2, (r1, 0x0) + 4a68: 7489 zexth r2, r2 + 4a6a: 07b7 br 0x49d8 // 49d8 + 4a6c: 8940 ld.h r2, (r1, 0x0) + 4a6e: 7489 zexth r2, r2 + 4a70: 07bf br 0x49ee // 49ee + 4a72: 8940 ld.h r2, (r1, 0x0) + 4a74: 7489 zexth r2, r2 + 4a76: 07c7 br 0x4a04 // 4a04 + 4a78: 3d41 cmpnei r5, 1 + 4a7a: 085c bt 0x4b32 // 4b32 + 4a7c: 0343 lrw r2, 0x200004fc // 4cec + 4a7e: 6cd7 mov r3, r5 + 4a80: 9200 ld.w r0, (r2, 0x0) + 4a82: 70d0 lsl r3, r4 + 4a84: 6cc0 or r3, r0 + 4a86: b260 st.w r3, (r2, 0x0) + 4a88: 3300 movi r3, 0 + 4a8a: a160 st.b r3, (r1, 0x0) + 4a8c: 4461 lsli r3, r4, 1 + 4a8e: 9844 ld.w r2, (r14, 0x10) + 4a90: 608c addu r2, r3 + 4a92: 8ac0 ld.h r6, (r2, 0x0) + 4a94: 034e lrw r2, 0x200001ae // 4cd8 + 4a96: 60c8 addu r3, r2 + 4a98: 8be0 ld.h r7, (r3, 0x0) + 4a9a: 4702 lsli r0, r7, 2 + 4a9c: 3105 movi r1, 5 + 4a9e: e3fff2d1 bsr 0x3040 // 3040 <__divsi3> + 4aa2: 759b sexth r6, r6 + 4aa4: 6419 cmplt r6, r0 + 4aa6: b805 st.w r0, (r14, 0x14) + 4aa8: 0c18 bf 0x4ad8 // 4ad8 + 4aaa: 0351 lrw r2, 0x200004e8 // 4ce0 + 4aac: 6090 addu r2, r4 + 4aae: 8260 ld.b r3, (r2, 0x0) + 4ab0: 2300 addi r3, 1 + 4ab2: 74cc zextb r3, r3 + 4ab4: a260 st.b r3, (r2, 0x0) + 4ab6: 3100 movi r1, 0 + 4ab8: 0376 lrw r3, 0x20000509 // 4cdc + 4aba: 60d0 addu r3, r4 + 4abc: a320 st.b r1, (r3, 0x0) + 4abe: 8260 ld.b r3, (r2, 0x0) + 4ac0: 9826 ld.w r1, (r14, 0x18) + 4ac2: 64c4 cmphs r1, r3 + 4ac4: 080a bt 0x4ad8 // 4ad8 + 4ac6: 3300 movi r3, 0 + 4ac8: 0336 lrw r1, 0x200004fc // 4cec + 4aca: 2b01 subi r3, 2 + 4acc: 9100 ld.w r0, (r1, 0x0) + 4ace: 70d3 rotl r3, r4 + 4ad0: 68c0 and r3, r0 + 4ad2: b160 st.w r3, (r1, 0x0) + 4ad4: 3300 movi r3, 0 + 4ad6: a260 st.b r3, (r2, 0x0) + 4ad8: 9860 ld.w r3, (r14, 0x0) + 4ada: 9841 ld.w r2, (r14, 0x4) + 4adc: 3b03 cmphsi r3, 4 + 4ade: 4461 lsli r3, r4, 1 + 4ae0: 60c8 addu r3, r2 + 4ae2: 8b40 ld.h r2, (r3, 0x0) + 4ae4: 748b sexth r2, r2 + 4ae6: 0d4d bf 0x4d80 // 4d80 + 4ae8: 649d cmplt r7, r2 + 4aea: 0d3a bf 0x4d5e // 4d5e + 4aec: 8b40 ld.h r2, (r3, 0x0) + 4aee: 9820 ld.w r1, (r14, 0x0) + 4af0: 748b sexth r2, r2 + 4af2: 7c5c mult r1, r7 + 4af4: 6449 cmplt r2, r1 + 4af6: 0d34 bf 0x4d5e // 4d5e + 4af8: 133e lrw r1, 0x200006dc // 4cf0 + 4afa: 6050 addu r1, r4 + 4afc: 8140 ld.b r2, (r1, 0x0) + 4afe: 2200 addi r2, 1 + 4b00: 7488 zextb r2, r2 + 4b02: a140 st.b r2, (r1, 0x0) + 4b04: 3000 movi r0, 0 + 4b06: 135c lrw r2, 0x20000578 // 4cf4 + 4b08: 6090 addu r2, r4 + 4b0a: a200 st.b r0, (r2, 0x0) + 4b0c: 135b lrw r2, 0x200005a2 // 4cf8 + 4b0e: 6090 addu r2, r4 + 4b10: a200 st.b r0, (r2, 0x0) + 4b12: 135b lrw r2, 0x200006a0 // 4cfc + 4b14: 6090 addu r2, r4 + 4b16: a200 st.b r0, (r2, 0x0) + 4b18: 8140 ld.b r2, (r1, 0x0) + 4b1a: 9803 ld.w r0, (r14, 0xc) + 4b1c: 6480 cmphs r0, r2 + 4b1e: 087d bt 0x4c18 // 4c18 + 4b20: 3d40 cmpnei r5, 0 + 4b22: 0871 bt 0x4c04 // 4c04 + 4b24: 1357 lrw r2, 0x20000490 // 4d00 + 4b26: 9260 ld.w r3, (r2, 0x0) + 4b28: 3b40 cmpnei r3, 0 + 4b2a: 0875 bt 0x4c14 // 4c14 + 4b2c: 9200 ld.w r0, (r2, 0x0) + 4b2e: 3301 movi r3, 1 + 4b30: 046f br 0x4c0e // 4c0e + 4b32: 3d42 cmpnei r5, 2 + 4b34: 0c03 bf 0x4b3a // 4b3a + 4b36: e8000201 br 0x4f38 // 4f38 + 4b3a: 13d3 lrw r6, 0x200006b6 // 4d04 + 4b3c: 8b00 ld.h r0, (r3, 0x0) + 4b3e: 8e40 ld.h r2, (r6, 0x0) + 4b40: 7489 zexth r2, r2 + 4b42: 7403 sexth r0, r0 + 4b44: 2209 addi r2, 10 + 4b46: 6409 cmplt r2, r0 + 4b48: 0fa0 bf 0x4a88 // 4a88 + 4b4a: 8b60 ld.h r3, (r3, 0x0) + 4b4c: 74cd zexth r3, r3 + 4b4e: ae60 st.h r3, (r6, 0x0) + 4b50: 3300 movi r3, 0 + 4b52: 1347 lrw r2, 0x200004fc // 4cec + 4b54: b260 st.w r3, (r2, 0x0) + 4b56: 0785 br 0x4a60 // 4a60 + 4b58: 4461 lsli r3, r4, 1 + 4b5a: 9824 ld.w r1, (r14, 0x10) + 4b5c: 60c4 addu r3, r1 + 4b5e: 8b60 ld.h r3, (r3, 0x0) + 4b60: 74cf sexth r3, r3 + 4b62: 64c9 cmplt r2, r3 + 4b64: 0f94 bf 0x4a8c // 4a8c + 4b66: 3300 movi r3, 0 + 4b68: 1341 lrw r2, 0x200004fc // 4cec + 4b6a: 2b01 subi r3, 2 + 4b6c: 9220 ld.w r1, (r2, 0x0) + 4b6e: 70d3 rotl r3, r4 + 4b70: 68c4 and r3, r1 + 4b72: b260 st.w r3, (r2, 0x0) + 4b74: 078c br 0x4a8c // 4a8c + 4b76: 9844 ld.w r2, (r14, 0x10) + 4b78: 6084 addu r2, r1 + 4b7a: 1218 lrw r0, 0x200001ae // 4cd8 + 4b7c: 8a60 ld.h r3, (r2, 0x0) + 4b7e: 6040 addu r1, r0 + 4b80: 74cf sexth r3, r3 + 4b82: 8920 ld.h r1, (r1, 0x0) + 4b84: 64c5 cmplt r1, r3 + 4b86: 0f83 bf 0x4a8c // 4a8c + 4b88: 1360 lrw r3, 0x2000051a // 4d08 + 4b8a: 8360 ld.b r3, (r3, 0x0) + 4b8c: 74cc zextb r3, r3 + 4b8e: 3b40 cmpnei r3, 0 + 4b90: 0b7e bt 0x4a8c // 4a8c + 4b92: 1213 lrw r0, 0x20000509 // 4cdc + 4b94: 6010 addu r0, r4 + 4b96: 8020 ld.b r1, (r0, 0x0) + 4b98: 2100 addi r1, 1 + 4b9a: 7444 zextb r1, r1 + 4b9c: a020 st.b r1, (r0, 0x0) + 4b9e: 3600 movi r6, 0 + 4ba0: 1230 lrw r1, 0x200004e8 // 4ce0 + 4ba2: 6050 addu r1, r4 + 4ba4: a1c0 st.b r6, (r1, 0x0) + 4ba6: 1230 lrw r1, 0x20000628 // 4ce4 + 4ba8: 6050 addu r1, r4 + 4baa: a1c0 st.b r6, (r1, 0x0) + 4bac: 122f lrw r1, 0x200006c0 // 4ce8 + 4bae: 6050 addu r1, r4 + 4bb0: a1c0 st.b r6, (r1, 0x0) + 4bb2: 8020 ld.b r1, (r0, 0x0) + 4bb4: 98c3 ld.w r6, (r14, 0xc) + 4bb6: 6458 cmphs r6, r1 + 4bb8: 0b6a bt 0x4a8c // 4a8c + 4bba: 3d40 cmpnei r5, 0 + 4bbc: 0808 bt 0x4bcc // 4bcc + 4bbe: 124c lrw r2, 0x200004fc // 4cec + 4bc0: 9260 ld.w r3, (r2, 0x0) + 4bc2: 3b40 cmpnei r3, 0 + 4bc4: 080c bt 0x4bdc // 4bdc + 4bc6: 9220 ld.w r1, (r2, 0x0) + 4bc8: 3301 movi r3, 1 + 4bca: 0406 br 0x4bd6 // 4bd6 + 4bcc: 3d41 cmpnei r5, 1 + 4bce: 080a bt 0x4be2 // 4be2 + 4bd0: 1247 lrw r2, 0x200004fc // 4cec + 4bd2: 6cd7 mov r3, r5 + 4bd4: 9220 ld.w r1, (r2, 0x0) + 4bd6: 70d0 lsl r3, r4 + 4bd8: 6cc4 or r3, r1 + 4bda: b260 st.w r3, (r2, 0x0) + 4bdc: 3300 movi r3, 0 + 4bde: a060 st.b r3, (r0, 0x0) + 4be0: 0756 br 0x4a8c // 4a8c + 4be2: 3d42 cmpnei r5, 2 + 4be4: 0c02 bf 0x4be8 // 4be8 + 4be6: 05dc br 0x4f9e // 4f9e + 4be8: 12e7 lrw r7, 0x200006b6 // 4d04 + 4bea: 8ac0 ld.h r6, (r2, 0x0) + 4bec: 8f20 ld.h r1, (r7, 0x0) + 4bee: 7445 zexth r1, r1 + 4bf0: 759b sexth r6, r6 + 4bf2: 2109 addi r1, 10 + 4bf4: 6585 cmplt r1, r6 + 4bf6: 0ff3 bf 0x4bdc // 4bdc + 4bf8: 8a40 ld.h r2, (r2, 0x0) + 4bfa: 7489 zexth r2, r2 + 4bfc: af40 st.h r2, (r7, 0x0) + 4bfe: 115c lrw r2, 0x200004fc // 4cec + 4c00: b260 st.w r3, (r2, 0x0) + 4c02: 07e2 br 0x4bc6 // 4bc6 + 4c04: 3d41 cmpnei r5, 1 + 4c06: 089b bt 0x4d3c // 4d3c + 4c08: 115e lrw r2, 0x20000490 // 4d00 + 4c0a: 6cd7 mov r3, r5 + 4c0c: 9200 ld.w r0, (r2, 0x0) + 4c0e: 70d0 lsl r3, r4 + 4c10: 6cc0 or r3, r0 + 4c12: b260 st.w r3, (r2, 0x0) + 4c14: 3300 movi r3, 0 + 4c16: a160 st.b r3, (r1, 0x0) + 4c18: 4461 lsli r3, r4, 1 + 4c1a: 9841 ld.w r2, (r14, 0x4) + 4c1c: 608c addu r2, r3 + 4c1e: 8a60 ld.h r3, (r2, 0x0) + 4c20: 74cf sexth r3, r3 + 4c22: 9845 ld.w r2, (r14, 0x14) + 4c24: 648d cmplt r3, r2 + 4c26: 0c18 bf 0x4c56 // 4c56 + 4c28: 1153 lrw r2, 0x20000578 // 4cf4 + 4c2a: 6090 addu r2, r4 + 4c2c: 8260 ld.b r3, (r2, 0x0) + 4c2e: 2300 addi r3, 1 + 4c30: 74cc zextb r3, r3 + 4c32: a260 st.b r3, (r2, 0x0) + 4c34: 3100 movi r1, 0 + 4c36: 116f lrw r3, 0x200006dc // 4cf0 + 4c38: 60d0 addu r3, r4 + 4c3a: a320 st.b r1, (r3, 0x0) + 4c3c: 8260 ld.b r3, (r2, 0x0) + 4c3e: 9826 ld.w r1, (r14, 0x18) + 4c40: 64c4 cmphs r1, r3 + 4c42: 080a bt 0x4c56 // 4c56 + 4c44: 3300 movi r3, 0 + 4c46: 112f lrw r1, 0x20000490 // 4d00 + 4c48: 2b01 subi r3, 2 + 4c4a: 9100 ld.w r0, (r1, 0x0) + 4c4c: 70d3 rotl r3, r4 + 4c4e: 68c0 and r3, r0 + 4c50: b160 st.w r3, (r1, 0x0) + 4c52: 3300 movi r3, 0 + 4c54: a260 st.b r3, (r2, 0x0) + 4c56: 9860 ld.w r3, (r14, 0x0) + 4c58: 9842 ld.w r2, (r14, 0x8) + 4c5a: 3b03 cmphsi r3, 4 + 4c5c: 4461 lsli r3, r4, 1 + 4c5e: 60c8 addu r3, r2 + 4c60: 8b40 ld.h r2, (r3, 0x0) + 4c62: 748b sexth r2, r2 + 4c64: 0d26 bf 0x4eb0 // 4eb0 + 4c66: 9820 ld.w r1, (r14, 0x0) + 4c68: 649d cmplt r7, r2 + 4c6a: 7c5c mult r1, r7 + 4c6c: 0d13 bf 0x4e92 // 4e92 + 4c6e: 8b40 ld.h r2, (r3, 0x0) + 4c70: 748b sexth r2, r2 + 4c72: 6449 cmplt r2, r1 + 4c74: 0d0f bf 0x4e92 // 4e92 + 4c76: 1126 lrw r1, 0x20000684 // 4d0c + 4c78: 6050 addu r1, r4 + 4c7a: 8140 ld.b r2, (r1, 0x0) + 4c7c: 2200 addi r2, 1 + 4c7e: 7488 zextb r2, r2 + 4c80: a140 st.b r2, (r1, 0x0) + 4c82: 3000 movi r0, 0 + 4c84: 1143 lrw r2, 0x200006f2 // 4d10 + 4c86: 6090 addu r2, r4 + 4c88: a200 st.b r0, (r2, 0x0) + 4c8a: 1143 lrw r2, 0x2000047e // 4d14 + 4c8c: 6090 addu r2, r4 + 4c8e: a200 st.b r0, (r2, 0x0) + 4c90: 1142 lrw r2, 0x20000590 // 4d18 + 4c92: 6090 addu r2, r4 + 4c94: a200 st.b r0, (r2, 0x0) + 4c96: 0443 br 0x4d1c // 4d1c + 4c98: 20000180 .long 0x20000180 + 4c9c: 20000154 .long 0x20000154 + 4ca0: 2000015d .long 0x2000015d + 4ca4: 2000015c .long 0x2000015c + 4ca8: 200007ae .long 0x200007ae + 4cac: 2000051c .long 0x2000051c + 4cb0: 2000045c .long 0x2000045c + 4cb4: 20000606 .long 0x20000606 + 4cb8: 20000544 .long 0x20000544 + 4cbc: 2000065c .long 0x2000065c + 4cc0: 2000063a .long 0x2000063a + 4cc4: 2000071c .long 0x2000071c + 4cc8: 20000788 .long 0x20000788 + 4ccc: 20000766 .long 0x20000766 + 4cd0: 200004c4 .long 0x200004c4 + 4cd4: 20000498 .long 0x20000498 + 4cd8: 200001ae .long 0x200001ae + 4cdc: 20000509 .long 0x20000509 + 4ce0: 200004e8 .long 0x200004e8 + 4ce4: 20000628 .long 0x20000628 + 4ce8: 200006c0 .long 0x200006c0 + 4cec: 200004fc .long 0x200004fc + 4cf0: 200006dc .long 0x200006dc + 4cf4: 20000578 .long 0x20000578 + 4cf8: 200005a2 .long 0x200005a2 + 4cfc: 200006a0 .long 0x200006a0 + 4d00: 20000490 .long 0x20000490 + 4d04: 200006b6 .long 0x200006b6 + 4d08: 2000051a .long 0x2000051a + 4d0c: 20000684 .long 0x20000684 + 4d10: 200006f2 .long 0x200006f2 + 4d14: 2000047e .long 0x2000047e + 4d18: 20000590 .long 0x20000590 + 4d1c: 8140 ld.b r2, (r1, 0x0) + 4d1e: 9803 ld.w r0, (r14, 0xc) + 4d20: 6480 cmphs r0, r2 + 4d22: 0881 bt 0x4e24 // 4e24 + 4d24: 3d40 cmpnei r5, 0 + 4d26: 0874 bt 0x4e0e // 4e0e + 4d28: 014b lrw r2, 0x20000574 // 5078 + 4d2a: 9260 ld.w r3, (r2, 0x0) + 4d2c: 3b40 cmpnei r3, 0 + 4d2e: 0879 bt 0x4e20 // 4e20 + 4d30: 3301 movi r3, 1 + 4d32: 9200 ld.w r0, (r2, 0x0) + 4d34: 70d0 lsl r3, r4 + 4d36: 6cc0 or r3, r0 + 4d38: b260 st.w r3, (r2, 0x0) + 4d3a: 0473 br 0x4e20 // 4e20 + 4d3c: 3d42 cmpnei r5, 2 + 4d3e: 0960 bt 0x4ffe // 4ffe + 4d40: 01d0 lrw r6, 0x200007ac // 507c + 4d42: 8b00 ld.h r0, (r3, 0x0) + 4d44: 8e40 ld.h r2, (r6, 0x0) + 4d46: 7489 zexth r2, r2 + 4d48: 7403 sexth r0, r0 + 4d4a: 2209 addi r2, 10 + 4d4c: 6409 cmplt r2, r0 + 4d4e: 0f63 bf 0x4c14 // 4c14 + 4d50: 8b60 ld.h r3, (r3, 0x0) + 4d52: 74cd zexth r3, r3 + 4d54: ae60 st.h r3, (r6, 0x0) + 4d56: 3300 movi r3, 0 + 4d58: 0155 lrw r2, 0x20000490 // 5080 + 4d5a: b260 st.w r3, (r2, 0x0) + 4d5c: 06e8 br 0x4b2c // 4b2c + 4d5e: 9841 ld.w r2, (r14, 0x4) + 4d60: 4461 lsli r3, r4, 1 + 4d62: 60c8 addu r3, r2 + 4d64: 8b60 ld.h r3, (r3, 0x0) + 4d66: 9840 ld.w r2, (r14, 0x0) + 4d68: 74cf sexth r3, r3 + 4d6a: 7c9c mult r2, r7 + 4d6c: 64c9 cmplt r2, r3 + 4d6e: 0f55 bf 0x4c18 // 4c18 + 4d70: 3300 movi r3, 0 + 4d72: 015b lrw r2, 0x20000490 // 5080 + 4d74: 2b01 subi r3, 2 + 4d76: 9220 ld.w r1, (r2, 0x0) + 4d78: 70d3 rotl r3, r4 + 4d7a: 68c4 and r3, r1 + 4d7c: b260 st.w r3, (r2, 0x0) + 4d7e: 074d br 0x4c18 // 4c18 + 4d80: 649d cmplt r7, r2 + 4d82: 0f4b bf 0x4c18 // 4c18 + 4d84: 015f lrw r2, 0x2000051a // 5084 + 4d86: 8240 ld.b r2, (r2, 0x0) + 4d88: 7488 zextb r2, r2 + 4d8a: 3a40 cmpnei r2, 0 + 4d8c: b847 st.w r2, (r14, 0x1c) + 4d8e: 0b45 bt 0x4c18 // 4c18 + 4d90: 0201 lrw r0, 0x200006dc // 5088 + 4d92: 6010 addu r0, r4 + 4d94: 8020 ld.b r1, (r0, 0x0) + 4d96: 2100 addi r1, 1 + 4d98: 7444 zextb r1, r1 + 4d9a: a020 st.b r1, (r0, 0x0) + 4d9c: 3600 movi r6, 0 + 4d9e: 0223 lrw r1, 0x20000578 // 508c + 4da0: 6050 addu r1, r4 + 4da2: a1c0 st.b r6, (r1, 0x0) + 4da4: 0224 lrw r1, 0x200005a2 // 5090 + 4da6: 6050 addu r1, r4 + 4da8: a1c0 st.b r6, (r1, 0x0) + 4daa: 0224 lrw r1, 0x200006a0 // 5094 + 4dac: 6050 addu r1, r4 + 4dae: a1c0 st.b r6, (r1, 0x0) + 4db0: 8020 ld.b r1, (r0, 0x0) + 4db2: 98c3 ld.w r6, (r14, 0xc) + 4db4: 6458 cmphs r6, r1 + 4db6: 0b31 bt 0x4c18 // 4c18 + 4db8: 3d40 cmpnei r5, 0 + 4dba: 0808 bt 0x4dca // 4dca + 4dbc: 024e lrw r2, 0x20000490 // 5080 + 4dbe: 9260 ld.w r3, (r2, 0x0) + 4dc0: 3b40 cmpnei r3, 0 + 4dc2: 0823 bt 0x4e08 // 4e08 + 4dc4: 9220 ld.w r1, (r2, 0x0) + 4dc6: 3301 movi r3, 1 + 4dc8: 0406 br 0x4dd4 // 4dd4 + 4dca: 3d41 cmpnei r5, 1 + 4dcc: 0808 bt 0x4ddc // 4ddc + 4dce: 0252 lrw r2, 0x20000490 // 5080 + 4dd0: 6cd7 mov r3, r5 + 4dd2: 9220 ld.w r1, (r2, 0x0) + 4dd4: 70d0 lsl r3, r4 + 4dd6: 6cc4 or r3, r1 + 4dd8: b260 st.w r3, (r2, 0x0) + 4dda: 0417 br 0x4e08 // 4e08 + 4ddc: 3d42 cmpnei r5, 2 + 4dde: 0942 bt 0x5062 // 5062 + 4de0: 8bc0 ld.h r6, (r3, 0x0) + 4de2: 745b sexth r1, r6 + 4de4: 02d9 lrw r6, 0x200007ac // 507c + 4de6: 6c87 mov r2, r1 + 4de8: 8e20 ld.h r1, (r6, 0x0) + 4dea: 7445 zexth r1, r1 + 4dec: 2109 addi r1, 10 + 4dee: 6485 cmplt r1, r2 + 4df0: 0c0c bf 0x4e08 // 4e08 + 4df2: 8b60 ld.h r3, (r3, 0x0) + 4df4: 74cd zexth r3, r3 + 4df6: ae60 st.h r3, (r6, 0x0) + 4df8: 9867 ld.w r3, (r14, 0x1c) + 4dfa: 023d lrw r1, 0x20000490 // 5080 + 4dfc: b160 st.w r3, (r1, 0x0) + 4dfe: 3301 movi r3, 1 + 4e00: 9140 ld.w r2, (r1, 0x0) + 4e02: 70d0 lsl r3, r4 + 4e04: 6cc8 or r3, r2 + 4e06: b160 st.w r3, (r1, 0x0) + 4e08: 3300 movi r3, 0 + 4e0a: a060 st.b r3, (r0, 0x0) + 4e0c: 0706 br 0x4c18 // 4c18 + 4e0e: 3d41 cmpnei r5, 1 + 4e10: 0830 bt 0x4e70 // 4e70 + 4e12: 0345 lrw r2, 0x20000574 // 5078 + 4e14: 6cd7 mov r3, r5 + 4e16: 9200 ld.w r0, (r2, 0x0) + 4e18: 70d0 lsl r3, r4 + 4e1a: 6cc0 or r3, r0 + 4e1c: b260 st.w r3, (r2, 0x0) + 4e1e: 6c03 mov r0, r0 + 4e20: 3300 movi r3, 0 + 4e22: a160 st.b r3, (r1, 0x0) + 4e24: 4461 lsli r3, r4, 1 + 4e26: 9842 ld.w r2, (r14, 0x8) + 4e28: 608c addu r2, r3 + 4e2a: 8a60 ld.h r3, (r2, 0x0) + 4e2c: 74cf sexth r3, r3 + 4e2e: 9845 ld.w r2, (r14, 0x14) + 4e30: 648d cmplt r3, r2 + 4e32: 0c18 bf 0x4e62 // 4e62 + 4e34: 0346 lrw r2, 0x200006f2 // 5098 + 4e36: 6090 addu r2, r4 + 4e38: 8260 ld.b r3, (r2, 0x0) + 4e3a: 2300 addi r3, 1 + 4e3c: 74cc zextb r3, r3 + 4e3e: a260 st.b r3, (r2, 0x0) + 4e40: 3100 movi r1, 0 + 4e42: 0368 lrw r3, 0x20000684 // 509c + 4e44: 60d0 addu r3, r4 + 4e46: a320 st.b r1, (r3, 0x0) + 4e48: 8260 ld.b r3, (r2, 0x0) + 4e4a: 9826 ld.w r1, (r14, 0x18) + 4e4c: 64c4 cmphs r1, r3 + 4e4e: 080a bt 0x4e62 // 4e62 + 4e50: 3300 movi r3, 0 + 4e52: 0335 lrw r1, 0x20000574 // 5078 + 4e54: 2b01 subi r3, 2 + 4e56: 9100 ld.w r0, (r1, 0x0) + 4e58: 70d3 rotl r3, r4 + 4e5a: 68c0 and r3, r0 + 4e5c: b160 st.w r3, (r1, 0x0) + 4e5e: 3300 movi r3, 0 + 4e60: a260 st.b r3, (r2, 0x0) + 4e62: 2400 addi r4, 1 + 4e64: 3c51 cmpnei r4, 17 + 4e66: 0c03 bf 0x4e6c // 4e6c + 4e68: e800fd8d br 0x4982 // 4982 + 4e6c: 140a addi r14, r14, 40 + 4e6e: 1494 pop r4-r7, r15 + 4e70: 3d42 cmpnei r5, 2 + 4e72: 0948 bt 0x5102 // 5102 + 4e74: 03d4 lrw r6, 0x2000053e // 50a0 + 4e76: 8b00 ld.h r0, (r3, 0x0) + 4e78: 8e40 ld.h r2, (r6, 0x0) + 4e7a: 7489 zexth r2, r2 + 4e7c: 7403 sexth r0, r0 + 4e7e: 2209 addi r2, 10 + 4e80: 6409 cmplt r2, r0 + 4e82: 0fcf bf 0x4e20 // 4e20 + 4e84: 8b60 ld.h r3, (r3, 0x0) + 4e86: 74cd zexth r3, r3 + 4e88: ae60 st.h r3, (r6, 0x0) + 4e8a: 3300 movi r3, 0 + 4e8c: 135b lrw r2, 0x20000574 // 5078 + 4e8e: b260 st.w r3, (r2, 0x0) + 4e90: 0750 br 0x4d30 // 4d30 + 4e92: 4461 lsli r3, r4, 1 + 4e94: 9842 ld.w r2, (r14, 0x8) + 4e96: 60c8 addu r3, r2 + 4e98: 8b60 ld.h r3, (r3, 0x0) + 4e9a: 74cf sexth r3, r3 + 4e9c: 64c5 cmplt r1, r3 + 4e9e: 0fc3 bf 0x4e24 // 4e24 + 4ea0: 3300 movi r3, 0 + 4ea2: 1356 lrw r2, 0x20000574 // 5078 + 4ea4: 2b01 subi r3, 2 + 4ea6: 9220 ld.w r1, (r2, 0x0) + 4ea8: 70d3 rotl r3, r4 + 4eaa: 68c4 and r3, r1 + 4eac: b260 st.w r3, (r2, 0x0) + 4eae: 07bb br 0x4e24 // 4e24 + 4eb0: 649d cmplt r7, r2 + 4eb2: 0fb9 bf 0x4e24 // 4e24 + 4eb4: 1354 lrw r2, 0x2000051a // 5084 + 4eb6: 8240 ld.b r2, (r2, 0x0) + 4eb8: 7488 zextb r2, r2 + 4eba: 3a40 cmpnei r2, 0 + 4ebc: 0bb4 bt 0x4e24 // 4e24 + 4ebe: 1318 lrw r0, 0x20000684 // 509c + 4ec0: 6010 addu r0, r4 + 4ec2: 8020 ld.b r1, (r0, 0x0) + 4ec4: 2100 addi r1, 1 + 4ec6: 7444 zextb r1, r1 + 4ec8: a020 st.b r1, (r0, 0x0) + 4eca: 3600 movi r6, 0 + 4ecc: 1333 lrw r1, 0x200006f2 // 5098 + 4ece: 6050 addu r1, r4 + 4ed0: a1c0 st.b r6, (r1, 0x0) + 4ed2: 1335 lrw r1, 0x2000047e // 50a4 + 4ed4: 6050 addu r1, r4 + 4ed6: a1c0 st.b r6, (r1, 0x0) + 4ed8: 1334 lrw r1, 0x20000590 // 50a8 + 4eda: 6050 addu r1, r4 + 4edc: a1c0 st.b r6, (r1, 0x0) + 4ede: 8020 ld.b r1, (r0, 0x0) + 4ee0: 98c3 ld.w r6, (r14, 0xc) + 4ee2: 6458 cmphs r6, r1 + 4ee4: 0ba0 bt 0x4e24 // 4e24 + 4ee6: 3d40 cmpnei r5, 0 + 4ee8: 0808 bt 0x4ef8 // 4ef8 + 4eea: 1344 lrw r2, 0x20000574 // 5078 + 4eec: 9260 ld.w r3, (r2, 0x0) + 4eee: 3b40 cmpnei r3, 0 + 4ef0: 0821 bt 0x4f32 // 4f32 + 4ef2: 9220 ld.w r1, (r2, 0x0) + 4ef4: 3301 movi r3, 1 + 4ef6: 0406 br 0x4f02 // 4f02 + 4ef8: 3d41 cmpnei r5, 1 + 4efa: 0808 bt 0x4f0a // 4f0a + 4efc: 125f lrw r2, 0x20000574 // 5078 + 4efe: 6cd7 mov r3, r5 + 4f00: 9220 ld.w r1, (r2, 0x0) + 4f02: 70d0 lsl r3, r4 + 4f04: 6cc4 or r3, r1 + 4f06: b260 st.w r3, (r2, 0x0) + 4f08: 0415 br 0x4f32 // 4f32 + 4f0a: 3d42 cmpnei r5, 2 + 4f0c: 092a bt 0x5160 // 5160 + 4f0e: 13e5 lrw r7, 0x2000053e // 50a0 + 4f10: 8bc0 ld.h r6, (r3, 0x0) + 4f12: 8f20 ld.h r1, (r7, 0x0) + 4f14: 7445 zexth r1, r1 + 4f16: 759b sexth r6, r6 + 4f18: 2109 addi r1, 10 + 4f1a: 6585 cmplt r1, r6 + 4f1c: 0c0b bf 0x4f32 // 4f32 + 4f1e: 8b60 ld.h r3, (r3, 0x0) + 4f20: 1236 lrw r1, 0x20000574 // 5078 + 4f22: 74cd zexth r3, r3 + 4f24: af60 st.h r3, (r7, 0x0) + 4f26: b140 st.w r2, (r1, 0x0) + 4f28: 3301 movi r3, 1 + 4f2a: 9140 ld.w r2, (r1, 0x0) + 4f2c: 70d0 lsl r3, r4 + 4f2e: 6cc8 or r3, r2 + 4f30: b160 st.w r3, (r1, 0x0) + 4f32: 3300 movi r3, 0 + 4f34: a060 st.b r3, (r0, 0x0) + 4f36: 0777 br 0x4e24 // 4e24 + 4f38: 3d43 cmpnei r5, 3 + 4f3a: 0c03 bf 0x4f40 // 4f40 + 4f3c: e800fda6 br 0x4a88 // 4a88 + 4f40: 125b lrw r2, 0x200006b6 // 50ac + 4f42: 8bc0 ld.h r6, (r3, 0x0) + 4f44: 8a00 ld.h r0, (r2, 0x0) + 4f46: 7401 zexth r0, r0 + 4f48: 759b sexth r6, r6 + 4f4a: 2009 addi r0, 10 + 4f4c: 6581 cmplt r0, r6 + 4f4e: 0c0c bf 0x4f66 // 4f66 + 4f50: 8b60 ld.h r3, (r3, 0x0) + 4f52: 74cd zexth r3, r3 + 4f54: aa60 st.h r3, (r2, 0x0) + 4f56: 3300 movi r3, 0 + 4f58: 1216 lrw r0, 0x200004fc // 50b0 + 4f5a: b060 st.w r3, (r0, 0x0) + 4f5c: 3301 movi r3, 1 + 4f5e: 90c0 ld.w r6, (r0, 0x0) + 4f60: 70d0 lsl r3, r4 + 4f62: 6cd8 or r3, r6 + 4f64: b060 st.w r3, (r0, 0x0) + 4f66: 9804 ld.w r0, (r14, 0x10) + 4f68: 4461 lsli r3, r4, 1 + 4f6a: 60c0 addu r3, r0 + 4f6c: 8b00 ld.h r0, (r3, 0x0) + 4f6e: 8a40 ld.h r2, (r2, 0x0) + 4f70: 7489 zexth r2, r2 + 4f72: 7403 sexth r0, r0 + 4f74: 2a04 subi r2, 5 + 4f76: 6481 cmplt r0, r2 + 4f78: 0803 bt 0x4f7e // 4f7e + 4f7a: e800fd87 br 0x4a88 // 4a88 + 4f7e: 12ce lrw r6, 0x200004c0 // 50b4 + 4f80: 8b00 ld.h r0, (r3, 0x0) + 4f82: 8e40 ld.h r2, (r6, 0x0) + 4f84: 7489 zexth r2, r2 + 4f86: 7403 sexth r0, r0 + 4f88: 2204 addi r2, 5 + 4f8a: 6409 cmplt r2, r0 + 4f8c: 0803 bt 0x4f92 // 4f92 + 4f8e: e800fd7d br 0x4a88 // 4a88 + 4f92: 8b60 ld.h r3, (r3, 0x0) + 4f94: 74cd zexth r3, r3 + 4f96: ae60 st.h r3, (r6, 0x0) + 4f98: 1246 lrw r2, 0x200004fc // 50b0 + 4f9a: e800fd63 br 0x4a60 // 4a60 + 4f9e: 3d43 cmpnei r5, 3 + 4fa0: 0c02 bf 0x4fa4 // 4fa4 + 4fa2: 061d br 0x4bdc // 4bdc + 4fa4: 12c2 lrw r6, 0x200006b6 // 50ac + 4fa6: 8ae0 ld.h r7, (r2, 0x0) + 4fa8: 8e20 ld.h r1, (r6, 0x0) + 4faa: 7445 zexth r1, r1 + 4fac: 75df sexth r7, r7 + 4fae: 2109 addi r1, 10 + 4fb0: 65c5 cmplt r1, r7 + 4fb2: 0c0b bf 0x4fc8 // 4fc8 + 4fb4: 8a40 ld.h r2, (r2, 0x0) + 4fb6: 7489 zexth r2, r2 + 4fb8: ae40 st.h r2, (r6, 0x0) + 4fba: 115e lrw r2, 0x200004fc // 50b0 + 4fbc: b260 st.w r3, (r2, 0x0) + 4fbe: 3301 movi r3, 1 + 4fc0: 9220 ld.w r1, (r2, 0x0) + 4fc2: 70d0 lsl r3, r4 + 4fc4: 6cc4 or r3, r1 + 4fc6: b260 st.w r3, (r2, 0x0) + 4fc8: 9844 ld.w r2, (r14, 0x10) + 4fca: 4461 lsli r3, r4, 1 + 4fcc: 60c8 addu r3, r2 + 4fce: 8b40 ld.h r2, (r3, 0x0) + 4fd0: 8e20 ld.h r1, (r6, 0x0) + 4fd2: 7445 zexth r1, r1 + 4fd4: 748b sexth r2, r2 + 4fd6: 2904 subi r1, 5 + 4fd8: 6449 cmplt r2, r1 + 4fda: 0802 bt 0x4fde // 4fde + 4fdc: 0600 br 0x4bdc // 4bdc + 4fde: 11d6 lrw r6, 0x200004c0 // 50b4 + 4fe0: 8b20 ld.h r1, (r3, 0x0) + 4fe2: 8e40 ld.h r2, (r6, 0x0) + 4fe4: 7489 zexth r2, r2 + 4fe6: 7447 sexth r1, r1 + 4fe8: 2204 addi r2, 5 + 4fea: 6449 cmplt r2, r1 + 4fec: 0803 bt 0x4ff2 // 4ff2 + 4fee: e800fdf7 br 0x4bdc // 4bdc + 4ff2: 8b60 ld.h r3, (r3, 0x0) + 4ff4: 74cd zexth r3, r3 + 4ff6: ae60 st.h r3, (r6, 0x0) + 4ff8: 114e lrw r2, 0x200004fc // 50b0 + 4ffa: e800fde6 br 0x4bc6 // 4bc6 + 4ffe: 3d43 cmpnei r5, 3 + 5000: 0c02 bf 0x5004 // 5004 + 5002: 0609 br 0x4c14 // 4c14 + 5004: 105e lrw r2, 0x200007ac // 507c + 5006: 8bc0 ld.h r6, (r3, 0x0) + 5008: 8a00 ld.h r0, (r2, 0x0) + 500a: 7401 zexth r0, r0 + 500c: 759b sexth r6, r6 + 500e: 2009 addi r0, 10 + 5010: 6581 cmplt r0, r6 + 5012: 0c0c bf 0x502a // 502a + 5014: 8b60 ld.h r3, (r3, 0x0) + 5016: 74cd zexth r3, r3 + 5018: aa60 st.h r3, (r2, 0x0) + 501a: 3300 movi r3, 0 + 501c: 1019 lrw r0, 0x20000490 // 5080 + 501e: b060 st.w r3, (r0, 0x0) + 5020: 3301 movi r3, 1 + 5022: 90c0 ld.w r6, (r0, 0x0) + 5024: 70d0 lsl r3, r4 + 5026: 6cd8 or r3, r6 + 5028: b060 st.w r3, (r0, 0x0) + 502a: 9801 ld.w r0, (r14, 0x4) + 502c: 4461 lsli r3, r4, 1 + 502e: 60c0 addu r3, r0 + 5030: 8b00 ld.h r0, (r3, 0x0) + 5032: 8a40 ld.h r2, (r2, 0x0) + 5034: 7489 zexth r2, r2 + 5036: 7403 sexth r0, r0 + 5038: 2a04 subi r2, 5 + 503a: 6481 cmplt r0, r2 + 503c: 0803 bt 0x5042 // 5042 + 503e: e800fdeb br 0x4c14 // 4c14 + 5042: 10de lrw r6, 0x200006be // 50b8 + 5044: 8b00 ld.h r0, (r3, 0x0) + 5046: 8e40 ld.h r2, (r6, 0x0) + 5048: 7489 zexth r2, r2 + 504a: 7403 sexth r0, r0 + 504c: 2204 addi r2, 5 + 504e: 6409 cmplt r2, r0 + 5050: 0803 bt 0x5056 // 5056 + 5052: e800fde1 br 0x4c14 // 4c14 + 5056: 8b60 ld.h r3, (r3, 0x0) + 5058: 74cd zexth r3, r3 + 505a: ae60 st.h r3, (r6, 0x0) + 505c: 1049 lrw r2, 0x20000490 // 5080 + 505e: e800fd67 br 0x4b2c // 4b2c + 5062: 3d43 cmpnei r5, 3 + 5064: 0ad2 bt 0x4e08 // 4e08 + 5066: 8b20 ld.h r1, (r3, 0x0) + 5068: 10c5 lrw r6, 0x200007ac // 507c + 506a: 7487 sexth r2, r1 + 506c: 8e20 ld.h r1, (r6, 0x0) + 506e: 7445 zexth r1, r1 + 5070: 2109 addi r1, 10 + 5072: 6485 cmplt r1, r2 + 5074: 0c2f bf 0x50d2 // 50d2 + 5076: 0423 br 0x50bc // 50bc + 5078: 20000574 .long 0x20000574 + 507c: 200007ac .long 0x200007ac + 5080: 20000490 .long 0x20000490 + 5084: 2000051a .long 0x2000051a + 5088: 200006dc .long 0x200006dc + 508c: 20000578 .long 0x20000578 + 5090: 200005a2 .long 0x200005a2 + 5094: 200006a0 .long 0x200006a0 + 5098: 200006f2 .long 0x200006f2 + 509c: 20000684 .long 0x20000684 + 50a0: 2000053e .long 0x2000053e + 50a4: 2000047e .long 0x2000047e + 50a8: 20000590 .long 0x20000590 + 50ac: 200006b6 .long 0x200006b6 + 50b0: 200004fc .long 0x200004fc + 50b4: 200004c0 .long 0x200004c0 + 50b8: 200006be .long 0x200006be + 50bc: 8b60 ld.h r3, (r3, 0x0) + 50be: 74cd zexth r3, r3 + 50c0: ae60 st.h r3, (r6, 0x0) + 50c2: 9867 ld.w r3, (r14, 0x1c) + 50c4: 113d lrw r1, 0x20000490 // 51b8 + 50c6: b160 st.w r3, (r1, 0x0) + 50c8: 3301 movi r3, 1 + 50ca: 9140 ld.w r2, (r1, 0x0) + 50cc: 70d0 lsl r3, r4 + 50ce: 6cc8 or r3, r2 + 50d0: b160 st.w r3, (r1, 0x0) + 50d2: 9841 ld.w r2, (r14, 0x4) + 50d4: 4461 lsli r3, r4, 1 + 50d6: 60c8 addu r3, r2 + 50d8: 8b40 ld.h r2, (r3, 0x0) + 50da: 8e20 ld.h r1, (r6, 0x0) + 50dc: 7445 zexth r1, r1 + 50de: 748b sexth r2, r2 + 50e0: 2904 subi r1, 5 + 50e2: 6449 cmplt r2, r1 + 50e4: 0e92 bf 0x4e08 // 4e08 + 50e6: 11d6 lrw r6, 0x200006be // 51bc + 50e8: 8b20 ld.h r1, (r3, 0x0) + 50ea: 8e40 ld.h r2, (r6, 0x0) + 50ec: 7489 zexth r2, r2 + 50ee: 7447 sexth r1, r1 + 50f0: 2204 addi r2, 5 + 50f2: 6449 cmplt r2, r1 + 50f4: 0802 bt 0x50f8 // 50f8 + 50f6: 0689 br 0x4e08 // 4e08 + 50f8: 8b60 ld.h r3, (r3, 0x0) + 50fa: 74cd zexth r3, r3 + 50fc: ae60 st.h r3, (r6, 0x0) + 50fe: 114f lrw r2, 0x20000490 // 51b8 + 5100: 0662 br 0x4dc4 // 4dc4 + 5102: 3d43 cmpnei r5, 3 + 5104: 0a8e bt 0x4e20 // 4e20 + 5106: 114f lrw r2, 0x2000053e // 51c0 + 5108: 8bc0 ld.h r6, (r3, 0x0) + 510a: 8a00 ld.h r0, (r2, 0x0) + 510c: 7401 zexth r0, r0 + 510e: 759b sexth r6, r6 + 5110: 2009 addi r0, 10 + 5112: 6581 cmplt r0, r6 + 5114: 0c0c bf 0x512c // 512c + 5116: 8b60 ld.h r3, (r3, 0x0) + 5118: 74cd zexth r3, r3 + 511a: aa60 st.h r3, (r2, 0x0) + 511c: 3300 movi r3, 0 + 511e: 110a lrw r0, 0x20000574 // 51c4 + 5120: b060 st.w r3, (r0, 0x0) + 5122: 3301 movi r3, 1 + 5124: 90c0 ld.w r6, (r0, 0x0) + 5126: 70d0 lsl r3, r4 + 5128: 6cd8 or r3, r6 + 512a: b060 st.w r3, (r0, 0x0) + 512c: 9802 ld.w r0, (r14, 0x8) + 512e: 4461 lsli r3, r4, 1 + 5130: 60c0 addu r3, r0 + 5132: 8b00 ld.h r0, (r3, 0x0) + 5134: 8a40 ld.h r2, (r2, 0x0) + 5136: 7489 zexth r2, r2 + 5138: 7403 sexth r0, r0 + 513a: 2a04 subi r2, 5 + 513c: 6481 cmplt r0, r2 + 513e: 0802 bt 0x5142 // 5142 + 5140: 0670 br 0x4e20 // 4e20 + 5142: 11c2 lrw r6, 0x20000604 // 51c8 + 5144: 8b00 ld.h r0, (r3, 0x0) + 5146: 8e40 ld.h r2, (r6, 0x0) + 5148: 7489 zexth r2, r2 + 514a: 7403 sexth r0, r0 + 514c: 2204 addi r2, 5 + 514e: 6409 cmplt r2, r0 + 5150: 0802 bt 0x5154 // 5154 + 5152: 0667 br 0x4e20 // 4e20 + 5154: 8b60 ld.h r3, (r3, 0x0) + 5156: 74cd zexth r3, r3 + 5158: ae60 st.h r3, (r6, 0x0) + 515a: 105b lrw r2, 0x20000574 // 51c4 + 515c: e800fdea br 0x4d30 // 4d30 + 5160: 3d43 cmpnei r5, 3 + 5162: 0ae8 bt 0x4f32 // 4f32 + 5164: 10d7 lrw r6, 0x2000053e // 51c0 + 5166: 8be0 ld.h r7, (r3, 0x0) + 5168: 8e20 ld.h r1, (r6, 0x0) + 516a: 7445 zexth r1, r1 + 516c: 75df sexth r7, r7 + 516e: 2109 addi r1, 10 + 5170: 65c5 cmplt r1, r7 + 5172: 0c0b bf 0x5188 // 5188 + 5174: 8b60 ld.h r3, (r3, 0x0) + 5176: 1034 lrw r1, 0x20000574 // 51c4 + 5178: 74cd zexth r3, r3 + 517a: ae60 st.h r3, (r6, 0x0) + 517c: b140 st.w r2, (r1, 0x0) + 517e: 3301 movi r3, 1 + 5180: 9140 ld.w r2, (r1, 0x0) + 5182: 70d0 lsl r3, r4 + 5184: 6cc8 or r3, r2 + 5186: b160 st.w r3, (r1, 0x0) + 5188: 9842 ld.w r2, (r14, 0x8) + 518a: 4461 lsli r3, r4, 1 + 518c: 60c8 addu r3, r2 + 518e: 8b40 ld.h r2, (r3, 0x0) + 5190: 8e20 ld.h r1, (r6, 0x0) + 5192: 7445 zexth r1, r1 + 5194: 748b sexth r2, r2 + 5196: 2904 subi r1, 5 + 5198: 6449 cmplt r2, r1 + 519a: 0ecc bf 0x4f32 // 4f32 + 519c: 10cb lrw r6, 0x20000604 // 51c8 + 519e: 8b20 ld.h r1, (r3, 0x0) + 51a0: 8e40 ld.h r2, (r6, 0x0) + 51a2: 7489 zexth r2, r2 + 51a4: 7447 sexth r1, r1 + 51a6: 2204 addi r2, 5 + 51a8: 6449 cmplt r2, r1 + 51aa: 0ec4 bf 0x4f32 // 4f32 + 51ac: 8b60 ld.h r3, (r3, 0x0) + 51ae: 74cd zexth r3, r3 + 51b0: ae60 st.h r3, (r6, 0x0) + 51b2: 1045 lrw r2, 0x20000574 // 51c4 + 51b4: 069f br 0x4ef2 // 4ef2 + 51b6: 0000 bkpt + 51b8: 20000490 .long 0x20000490 + 51bc: 200006be .long 0x200006be + 51c0: 2000053e .long 0x2000053e + 51c4: 20000574 .long 0x20000574 + 51c8: 20000604 .long 0x20000604 + +Disassembly of section .text.TK_overflow_predict: + +000051cc : + 51cc: 14d4 push r4-r7, r15 + 51ce: 1422 subi r14, r14, 8 + 51d0: 113c lrw r1, 0x20000068 // 52c0 + 51d2: 8167 ld.b r3, (r1, 0x7) + 51d4: 3b41 cmpnei r3, 1 + 51d6: 0823 bt 0x521c // 521c + 51d8: 115b lrw r2, 0x2000067e // 52c4 + 51da: 8260 ld.b r3, (r2, 0x0) + 51dc: 2300 addi r3, 1 + 51de: 74cc zextb r3, r3 + 51e0: a260 st.b r3, (r2, 0x0) + 51e2: 8260 ld.b r3, (r2, 0x0) + 51e4: 1119 lrw r0, 0x20000181 // 52c8 + 51e6: 8000 ld.b r0, (r0, 0x0) + 51e8: 64c0 cmphs r0, r3 + 51ea: 0819 bt 0x521c // 521c + 51ec: 3300 movi r3, 0 + 51ee: a260 st.b r3, (r2, 0x0) + 51f0: 11b7 lrw r5, 0x20000589 // 52cc + 51f2: 8560 ld.b r3, (r5, 0x0) + 51f4: 3b40 cmpnei r3, 0 + 51f6: 0c15 bf 0x5220 // 5220 + 51f8: 8560 ld.b r3, (r5, 0x0) + 51fa: 3b41 cmpnei r3, 1 + 51fc: 0810 bt 0x521c // 521c + 51fe: 3300 movi r3, 0 + 5200: a560 st.b r3, (r5, 0x0) + 5202: 3200 movi r2, 0 + 5204: 1173 lrw r3, 0x20000058 // 52d0 + 5206: 1114 lrw r0, 0x200006b8 // 52d4 + 5208: 11b4 lrw r5, 0x20000708 // 52d8 + 520a: 11d5 lrw r6, 0x2000015e // 52dc + 520c: 9360 ld.w r3, (r3, 0x0) + 520e: b342 st.w r2, (r3, 0x8) + 5210: 1174 lrw r3, 0x20000054 // 52e0 + 5212: 9380 ld.w r4, (r3, 0x0) + 5214: 3300 movi r3, 0 + 5216: 8040 ld.b r2, (r0, 0x0) + 5218: 648c cmphs r3, r2 + 521a: 0c44 bf 0x52a2 // 52a2 + 521c: 1402 addi r14, r14, 8 + 521e: 1494 pop r4-r7, r15 + 5220: 597e addi r3, r1, 8 + 5222: 3600 movi r6, 0 + 5224: 11f0 lrw r7, 0x20000184 // 52e4 + 5226: b860 st.w r3, (r14, 0x0) + 5228: 9760 ld.w r3, (r7, 0x0) + 522a: 70d9 lsr r3, r6 + 522c: 3201 movi r2, 1 + 522e: 68c8 and r3, r2 + 5230: 3b40 cmpnei r3, 0 + 5232: 0c34 bf 0x529a // 529a + 5234: 4681 lsli r4, r6, 1 + 5236: 9860 ld.w r3, (r14, 0x0) + 5238: 60d0 addu r3, r4 + 523a: 8b00 ld.h r0, (r3, 0x0) + 523c: e3ffe1b2 bsr 0x15a0 // 15a0 <__floatunsidf> + 5240: 6cc7 mov r3, r1 + 5242: 3180 movi r1, 128 + 5244: 6c83 mov r2, r0 + 5246: 4137 lsli r1, r1, 23 + 5248: 3000 movi r0, 0 + 524a: e3ffd7b5 bsr 0x1b4 // 1b4 <__GI_pow> + 524e: 1167 lrw r3, 0x2000018a // 52e8 + 5250: 60d0 addu r3, r4 + 5252: 8b60 ld.h r3, (r3, 0x0) + 5254: 4364 lsli r3, r3, 4 + 5256: 230e addi r3, 15 + 5258: b861 st.w r3, (r14, 0x4) + 525a: e3ffdd5b bsr 0xd10 // d10 <__fixunsdfsi> + 525e: 9861 ld.w r3, (r14, 0x4) + 5260: 7cc0 mult r3, r0 + 5262: 1143 lrw r2, 0x2000073e // 52ec + 5264: 740d zexth r0, r3 + 5266: 6090 addu r2, r4 + 5268: 1162 lrw r3, 0x200007ae // 52f0 + 526a: 60d0 addu r3, r4 + 526c: aa00 st.h r0, (r2, 0x0) + 526e: 8b60 ld.h r3, (r3, 0x0) + 5270: 8a00 ld.h r0, (r2, 0x0) + 5272: 7401 zexth r0, r0 + 5274: 325f movi r2, 95 + 5276: 74cd zexth r3, r3 + 5278: 7c08 mult r0, r2 + 527a: 3164 movi r1, 100 + 527c: b861 st.w r3, (r14, 0x4) + 527e: e3ffeee1 bsr 0x3040 // 3040 <__divsi3> + 5282: 9861 ld.w r3, (r14, 0x4) + 5284: 64c1 cmplt r0, r3 + 5286: 0c0a bf 0x529a // 529a + 5288: 1075 lrw r3, 0x2000015e // 52dc + 528a: 610c addu r4, r3 + 528c: 8c60 ld.h r3, (r4, 0x0) + 528e: 3b06 cmphsi r3, 7 + 5290: 0805 bt 0x529a // 529a + 5292: 2300 addi r3, 1 + 5294: ac60 st.h r3, (r4, 0x0) + 5296: 3301 movi r3, 1 + 5298: a560 st.b r3, (r5, 0x0) + 529a: 2600 addi r6, 1 + 529c: 3e51 cmpnei r6, 17 + 529e: 0bc5 bt 0x5228 // 5228 + 52a0: 07ac br 0x51f8 // 51f8 + 52a2: 5d4c addu r2, r5, r3 + 52a4: 8240 ld.b r2, (r2, 0x0) + 52a6: 4241 lsli r2, r2, 1 + 52a8: 4322 lsli r1, r3, 2 + 52aa: 6098 addu r2, r6 + 52ac: 6050 addu r1, r4 + 52ae: 8a40 ld.h r2, (r2, 0x0) + 52b0: 91f2 ld.w r7, (r1, 0x48) + 52b2: 4254 lsli r2, r2, 20 + 52b4: 6c9c or r2, r7 + 52b6: 2300 addi r3, 1 + 52b8: b152 st.w r2, (r1, 0x48) + 52ba: 74cc zextb r3, r3 + 52bc: 07ad br 0x5216 // 5216 + 52be: 0000 bkpt + 52c0: 20000068 .long 0x20000068 + 52c4: 2000067e .long 0x2000067e + 52c8: 20000181 .long 0x20000181 + 52cc: 20000589 .long 0x20000589 + 52d0: 20000058 .long 0x20000058 + 52d4: 200006b8 .long 0x200006b8 + 52d8: 20000708 .long 0x20000708 + 52dc: 2000015e .long 0x2000015e + 52e0: 20000054 .long 0x20000054 + 52e4: 20000184 .long 0x20000184 + 52e8: 2000018a .long 0x2000018a + 52ec: 2000073e .long 0x2000073e + 52f0: 200007ae .long 0x200007ae + +Disassembly of section .text.TK_Baseline_tracking: + +000052f4 : + 52f4: 14d4 push r4-r7, r15 + 52f6: 1421 subi r14, r14, 4 + 52f8: 014a lrw r2, 0x200005fa // 564c + 52fa: 8260 ld.b r3, (r2, 0x0) + 52fc: 2300 addi r3, 1 + 52fe: 74cc zextb r3, r3 + 5300: a260 st.b r3, (r2, 0x0) + 5302: 8260 ld.b r3, (r2, 0x0) + 5304: 012c lrw r1, 0x20000181 // 5650 + 5306: 8120 ld.b r1, (r1, 0x0) + 5308: 644c cmphs r3, r1 + 530a: 0803 bt 0x5310 // 5310 + 530c: e800020f br 0x572a // 572a + 5310: 3300 movi r3, 0 + 5312: a260 st.b r3, (r2, 0x0) + 5314: 016f lrw r3, 0x200004fc // 5654 + 5316: 9360 ld.w r3, (r3, 0x0) + 5318: 3b40 cmpnei r3, 0 + 531a: 0c03 bf 0x5320 // 5320 + 531c: e8000209 br 0x572e // 572e + 5320: 0171 lrw r3, 0x2000051c // 5658 + 5322: 0150 lrw r2, 0x200001ae // 565c + 5324: 3100 movi r1, 0 + 5326: b860 st.w r3, (r14, 0x0) + 5328: 6d0f mov r4, r3 + 532a: 0111 lrw r0, 0x2000045c // 5660 + 532c: 4161 lsli r3, r1, 1 + 532e: 98a0 ld.w r5, (r14, 0x0) + 5330: 614c addu r5, r3 + 5332: 8da0 ld.h r5, (r5, 0x0) + 5334: 7557 sexth r5, r5 + 5336: 3ddf btsti r5, 31 + 5338: 0c1c bf 0x5370 // 5370 + 533a: 01d4 lrw r6, 0x200007ae // 5664 + 533c: 58ac addu r5, r0, r3 + 533e: 618c addu r6, r3 + 5340: 8da0 ld.h r5, (r5, 0x0) + 5342: 8ec0 ld.h r6, (r6, 0x0) + 5344: 7599 zexth r6, r6 + 5346: 7555 zexth r5, r5 + 5348: 615a subu r5, r6 + 534a: 8ac0 ld.h r6, (r2, 0x0) + 534c: 6595 cmplt r5, r6 + 534e: 0811 bt 0x5370 // 5370 + 5350: 01b9 lrw r5, 0x200006c0 // 5668 + 5352: 6144 addu r5, r1 + 5354: 85c0 ld.b r6, (r5, 0x0) + 5356: 2600 addi r6, 1 + 5358: 7598 zextb r6, r6 + 535a: a5c0 st.b r6, (r5, 0x0) + 535c: 01db lrw r6, 0x20000088 // 566c + 535e: 85e0 ld.b r7, (r5, 0x0) + 5360: 86ca ld.b r6, (r6, 0xa) + 5362: 65d8 cmphs r6, r7 + 5364: 0806 bt 0x5370 // 5370 + 5366: 01dc lrw r6, 0x20000568 // 5670 + 5368: 3701 movi r7, 1 + 536a: a6e0 st.b r7, (r6, 0x0) + 536c: 3600 movi r6, 0 + 536e: a5c0 st.b r6, (r5, 0x0) + 5370: 5cac addu r5, r4, r3 + 5372: 8da0 ld.h r5, (r5, 0x0) + 5374: 7557 sexth r5, r5 + 5376: 3d20 cmplti r5, 1 + 5378: 081d bt 0x53b2 // 53b2 + 537a: 02a4 lrw r5, 0x200007ae // 5664 + 537c: 614c addu r5, r3 + 537e: 58cc addu r6, r0, r3 + 5380: 8da0 ld.h r5, (r5, 0x0) + 5382: 8ec0 ld.h r6, (r6, 0x0) + 5384: 7599 zexth r6, r6 + 5386: 7555 zexth r5, r5 + 5388: 615a subu r5, r6 + 538a: 8ac0 ld.h r6, (r2, 0x0) + 538c: 46c2 lsli r6, r6, 2 + 538e: 6595 cmplt r5, r6 + 5390: 0811 bt 0x53b2 // 53b2 + 5392: 02a6 lrw r5, 0x20000628 // 5674 + 5394: 6144 addu r5, r1 + 5396: 85c0 ld.b r6, (r5, 0x0) + 5398: 2600 addi r6, 1 + 539a: 7598 zextb r6, r6 + 539c: a5c0 st.b r6, (r5, 0x0) + 539e: 02cb lrw r6, 0x20000088 // 566c + 53a0: 85e0 ld.b r7, (r5, 0x0) + 53a2: 86cb ld.b r6, (r6, 0xb) + 53a4: 65d8 cmphs r6, r7 + 53a6: 0806 bt 0x53b2 // 53b2 + 53a8: 02cd lrw r6, 0x20000568 // 5670 + 53aa: 3701 movi r7, 1 + 53ac: a6e0 st.b r7, (r6, 0x0) + 53ae: 3600 movi r6, 0 + 53b0: a5c0 st.b r6, (r5, 0x0) + 53b2: 5cac addu r5, r4, r3 + 53b4: 8da0 ld.h r5, (r5, 0x0) + 53b6: 7557 sexth r5, r5 + 53b8: 3ddf btsti r5, 31 + 53ba: 0c10 bf 0x53da // 53da + 53bc: 02f5 lrw r7, 0x200007ae // 5664 + 53be: 58cc addu r6, r0, r3 + 53c0: 61cc addu r7, r3 + 53c2: 8ea0 ld.h r5, (r6, 0x0) + 53c4: 8fe0 ld.h r7, (r7, 0x0) + 53c6: 75dd zexth r7, r7 + 53c8: 7555 zexth r5, r5 + 53ca: 615e subu r5, r7 + 53cc: 8ae0 ld.h r7, (r2, 0x0) + 53ce: 65d5 cmplt r5, r7 + 53d0: 0c05 bf 0x53da // 53da + 53d2: 8ea0 ld.h r5, (r6, 0x0) + 53d4: 2d00 subi r5, 1 + 53d6: 7555 zexth r5, r5 + 53d8: aea0 st.h r5, (r6, 0x0) + 53da: 5cac addu r5, r4, r3 + 53dc: 8da0 ld.h r5, (r5, 0x0) + 53de: 7557 sexth r5, r5 + 53e0: 3ddf btsti r5, 31 + 53e2: 0c11 bf 0x5404 // 5404 + 53e4: 02ff lrw r7, 0x200007ae // 5664 + 53e6: 58cc addu r6, r0, r3 + 53e8: 61cc addu r7, r3 + 53ea: 8ea0 ld.h r5, (r6, 0x0) + 53ec: 8fe0 ld.h r7, (r7, 0x0) + 53ee: 75dd zexth r7, r7 + 53f0: 7555 zexth r5, r5 + 53f2: 615e subu r5, r7 + 53f4: 8ae0 ld.h r7, (r2, 0x0) + 53f6: 4fe1 lsri r7, r7, 1 + 53f8: 65d5 cmplt r5, r7 + 53fa: 0805 bt 0x5404 // 5404 + 53fc: 8ea0 ld.h r5, (r6, 0x0) + 53fe: 2d01 subi r5, 2 + 5400: 7555 zexth r5, r5 + 5402: aea0 st.h r5, (r6, 0x0) + 5404: 5ccc addu r6, r4, r3 + 5406: 8ea0 ld.h r5, (r6, 0x0) + 5408: 7557 sexth r5, r5 + 540a: 3d20 cmplti r5, 1 + 540c: 080c bt 0x5424 // 5424 + 540e: 8ec0 ld.h r6, (r6, 0x0) + 5410: 8aa0 ld.h r5, (r2, 0x0) + 5412: 759b sexth r6, r6 + 5414: 4da1 lsri r5, r5, 1 + 5416: 6559 cmplt r6, r5 + 5418: 0c06 bf 0x5424 // 5424 + 541a: 58cc addu r6, r0, r3 + 541c: 8ea0 ld.h r5, (r6, 0x0) + 541e: 2500 addi r5, 1 + 5420: 7555 zexth r5, r5 + 5422: aea0 st.h r5, (r6, 0x0) + 5424: 5ccc addu r6, r4, r3 + 5426: 8ea0 ld.h r5, (r6, 0x0) + 5428: 7557 sexth r5, r5 + 542a: 3d20 cmplti r5, 1 + 542c: 0810 bt 0x544c // 544c + 542e: 8ee0 ld.h r7, (r6, 0x0) + 5430: 75df sexth r7, r7 + 5432: 8aa0 ld.h r5, (r2, 0x0) + 5434: 655d cmplt r7, r5 + 5436: 0c0b bf 0x544c // 544c + 5438: 8ec0 ld.h r6, (r6, 0x0) + 543a: 759b sexth r6, r6 + 543c: 4da1 lsri r5, r5, 1 + 543e: 6559 cmplt r6, r5 + 5440: 0806 bt 0x544c // 544c + 5442: 60c0 addu r3, r0 + 5444: 8ba0 ld.h r5, (r3, 0x0) + 5446: 2501 addi r5, 2 + 5448: 7555 zexth r5, r5 + 544a: aba0 st.h r5, (r3, 0x0) + 544c: 2100 addi r1, 1 + 544e: 3951 cmpnei r1, 17 + 5450: 2201 addi r2, 2 + 5452: 0b6d bt 0x532c // 532c + 5454: 0376 lrw r3, 0x20000490 // 5678 + 5456: 9360 ld.w r3, (r3, 0x0) + 5458: 3b40 cmpnei r3, 0 + 545a: 0980 bt 0x575a // 575a + 545c: 0377 lrw r3, 0x2000065c // 567c + 545e: 035f lrw r2, 0x200001ae // 565c + 5460: 3100 movi r1, 0 + 5462: b860 st.w r3, (r14, 0x0) + 5464: 6d0f mov r4, r3 + 5466: 0318 lrw r0, 0x20000606 // 5680 + 5468: 4161 lsli r3, r1, 1 + 546a: 98a0 ld.w r5, (r14, 0x0) + 546c: 614c addu r5, r3 + 546e: 8da0 ld.h r5, (r5, 0x0) + 5470: 7557 sexth r5, r5 + 5472: 3ddf btsti r5, 31 + 5474: 0c1c bf 0x54ac // 54ac + 5476: 03db lrw r6, 0x20000544 // 5684 + 5478: 58ac addu r5, r0, r3 + 547a: 618c addu r6, r3 + 547c: 8da0 ld.h r5, (r5, 0x0) + 547e: 8ec0 ld.h r6, (r6, 0x0) + 5480: 7599 zexth r6, r6 + 5482: 7555 zexth r5, r5 + 5484: 615a subu r5, r6 + 5486: 8ac0 ld.h r6, (r2, 0x0) + 5488: 6595 cmplt r5, r6 + 548a: 0811 bt 0x54ac // 54ac + 548c: 13bf lrw r5, 0x200006a0 // 5688 + 548e: 6144 addu r5, r1 + 5490: 85c0 ld.b r6, (r5, 0x0) + 5492: 2600 addi r6, 1 + 5494: 7598 zextb r6, r6 + 5496: a5c0 st.b r6, (r5, 0x0) + 5498: 13d5 lrw r6, 0x20000088 // 566c + 549a: 85e0 ld.b r7, (r5, 0x0) + 549c: 86ca ld.b r6, (r6, 0xa) + 549e: 65d8 cmphs r6, r7 + 54a0: 0806 bt 0x54ac // 54ac + 54a2: 13d4 lrw r6, 0x20000568 // 5670 + 54a4: 3701 movi r7, 1 + 54a6: a6e1 st.b r7, (r6, 0x1) + 54a8: 3600 movi r6, 0 + 54aa: a5c0 st.b r6, (r5, 0x0) + 54ac: 5cac addu r5, r4, r3 + 54ae: 8da0 ld.h r5, (r5, 0x0) + 54b0: 7557 sexth r5, r5 + 54b2: 3d20 cmplti r5, 1 + 54b4: 081d bt 0x54ee // 54ee + 54b6: 13b4 lrw r5, 0x20000544 // 5684 + 54b8: 614c addu r5, r3 + 54ba: 58cc addu r6, r0, r3 + 54bc: 8da0 ld.h r5, (r5, 0x0) + 54be: 8ec0 ld.h r6, (r6, 0x0) + 54c0: 7599 zexth r6, r6 + 54c2: 7555 zexth r5, r5 + 54c4: 615a subu r5, r6 + 54c6: 8ac0 ld.h r6, (r2, 0x0) + 54c8: 46c2 lsli r6, r6, 2 + 54ca: 6595 cmplt r5, r6 + 54cc: 0811 bt 0x54ee // 54ee + 54ce: 13b0 lrw r5, 0x200005a2 // 568c + 54d0: 6144 addu r5, r1 + 54d2: 85c0 ld.b r6, (r5, 0x0) + 54d4: 2600 addi r6, 1 + 54d6: 7598 zextb r6, r6 + 54d8: a5c0 st.b r6, (r5, 0x0) + 54da: 13c5 lrw r6, 0x20000088 // 566c + 54dc: 85e0 ld.b r7, (r5, 0x0) + 54de: 86cb ld.b r6, (r6, 0xb) + 54e0: 65d8 cmphs r6, r7 + 54e2: 0806 bt 0x54ee // 54ee + 54e4: 13c3 lrw r6, 0x20000568 // 5670 + 54e6: 3701 movi r7, 1 + 54e8: a6e1 st.b r7, (r6, 0x1) + 54ea: 3600 movi r6, 0 + 54ec: a5c0 st.b r6, (r5, 0x0) + 54ee: 5cac addu r5, r4, r3 + 54f0: 8da0 ld.h r5, (r5, 0x0) + 54f2: 7557 sexth r5, r5 + 54f4: 3ddf btsti r5, 31 + 54f6: 0c10 bf 0x5516 // 5516 + 54f8: 13e3 lrw r7, 0x20000544 // 5684 + 54fa: 58cc addu r6, r0, r3 + 54fc: 61cc addu r7, r3 + 54fe: 8ea0 ld.h r5, (r6, 0x0) + 5500: 8fe0 ld.h r7, (r7, 0x0) + 5502: 75dd zexth r7, r7 + 5504: 7555 zexth r5, r5 + 5506: 615e subu r5, r7 + 5508: 8ae0 ld.h r7, (r2, 0x0) + 550a: 65d5 cmplt r5, r7 + 550c: 0c05 bf 0x5516 // 5516 + 550e: 8ea0 ld.h r5, (r6, 0x0) + 5510: 2d00 subi r5, 1 + 5512: 7555 zexth r5, r5 + 5514: aea0 st.h r5, (r6, 0x0) + 5516: 5cac addu r5, r4, r3 + 5518: 8da0 ld.h r5, (r5, 0x0) + 551a: 7557 sexth r5, r5 + 551c: 3ddf btsti r5, 31 + 551e: 0c11 bf 0x5540 // 5540 + 5520: 12f9 lrw r7, 0x20000544 // 5684 + 5522: 58cc addu r6, r0, r3 + 5524: 61cc addu r7, r3 + 5526: 8ea0 ld.h r5, (r6, 0x0) + 5528: 8fe0 ld.h r7, (r7, 0x0) + 552a: 75dd zexth r7, r7 + 552c: 7555 zexth r5, r5 + 552e: 615e subu r5, r7 + 5530: 8ae0 ld.h r7, (r2, 0x0) + 5532: 4fe1 lsri r7, r7, 1 + 5534: 65d5 cmplt r5, r7 + 5536: 0805 bt 0x5540 // 5540 + 5538: 8ea0 ld.h r5, (r6, 0x0) + 553a: 2d01 subi r5, 2 + 553c: 7555 zexth r5, r5 + 553e: aea0 st.h r5, (r6, 0x0) + 5540: 5ccc addu r6, r4, r3 + 5542: 8ea0 ld.h r5, (r6, 0x0) + 5544: 7557 sexth r5, r5 + 5546: 3d20 cmplti r5, 1 + 5548: 080c bt 0x5560 // 5560 + 554a: 8ec0 ld.h r6, (r6, 0x0) + 554c: 8aa0 ld.h r5, (r2, 0x0) + 554e: 759b sexth r6, r6 + 5550: 4da1 lsri r5, r5, 1 + 5552: 6559 cmplt r6, r5 + 5554: 0c06 bf 0x5560 // 5560 + 5556: 58cc addu r6, r0, r3 + 5558: 8ea0 ld.h r5, (r6, 0x0) + 555a: 2500 addi r5, 1 + 555c: 7555 zexth r5, r5 + 555e: aea0 st.h r5, (r6, 0x0) + 5560: 5ccc addu r6, r4, r3 + 5562: 8ea0 ld.h r5, (r6, 0x0) + 5564: 7557 sexth r5, r5 + 5566: 3d20 cmplti r5, 1 + 5568: 0810 bt 0x5588 // 5588 + 556a: 8ee0 ld.h r7, (r6, 0x0) + 556c: 75df sexth r7, r7 + 556e: 8aa0 ld.h r5, (r2, 0x0) + 5570: 655d cmplt r7, r5 + 5572: 0c0b bf 0x5588 // 5588 + 5574: 8ec0 ld.h r6, (r6, 0x0) + 5576: 759b sexth r6, r6 + 5578: 4da1 lsri r5, r5, 1 + 557a: 6559 cmplt r6, r5 + 557c: 0806 bt 0x5588 // 5588 + 557e: 60c0 addu r3, r0 + 5580: 8ba0 ld.h r5, (r3, 0x0) + 5582: 2501 addi r5, 2 + 5584: 7555 zexth r5, r5 + 5586: aba0 st.h r5, (r3, 0x0) + 5588: 2100 addi r1, 1 + 558a: 3951 cmpnei r1, 17 + 558c: 2201 addi r2, 2 + 558e: 0b6d bt 0x5468 // 5468 + 5590: 1260 lrw r3, 0x20000574 // 5690 + 5592: 9360 ld.w r3, (r3, 0x0) + 5594: 3b40 cmpnei r3, 0 + 5596: 08f8 bt 0x5786 // 5786 + 5598: 117f lrw r3, 0x20000788 // 5694 + 559a: 1151 lrw r2, 0x200001ae // 565c + 559c: 3100 movi r1, 0 + 559e: b860 st.w r3, (r14, 0x0) + 55a0: 6d0f mov r4, r3 + 55a2: 111e lrw r0, 0x2000071c // 5698 + 55a4: 4161 lsli r3, r1, 1 + 55a6: 98a0 ld.w r5, (r14, 0x0) + 55a8: 614c addu r5, r3 + 55aa: 8da0 ld.h r5, (r5, 0x0) + 55ac: 7557 sexth r5, r5 + 55ae: 3ddf btsti r5, 31 + 55b0: 0c1c bf 0x55e8 // 55e8 + 55b2: 11db lrw r6, 0x2000063a // 569c + 55b4: 58ac addu r5, r0, r3 + 55b6: 618c addu r6, r3 + 55b8: 8da0 ld.h r5, (r5, 0x0) + 55ba: 8ec0 ld.h r6, (r6, 0x0) + 55bc: 7599 zexth r6, r6 + 55be: 7555 zexth r5, r5 + 55c0: 615a subu r5, r6 + 55c2: 8ac0 ld.h r6, (r2, 0x0) + 55c4: 6595 cmplt r5, r6 + 55c6: 0811 bt 0x55e8 // 55e8 + 55c8: 11b6 lrw r5, 0x20000590 // 56a0 + 55ca: 6144 addu r5, r1 + 55cc: 85c0 ld.b r6, (r5, 0x0) + 55ce: 2600 addi r6, 1 + 55d0: 7598 zextb r6, r6 + 55d2: a5c0 st.b r6, (r5, 0x0) + 55d4: 11c6 lrw r6, 0x20000088 // 566c + 55d6: 85e0 ld.b r7, (r5, 0x0) + 55d8: 86ca ld.b r6, (r6, 0xa) + 55da: 65d8 cmphs r6, r7 + 55dc: 0806 bt 0x55e8 // 55e8 + 55de: 11c5 lrw r6, 0x20000568 // 5670 + 55e0: 3701 movi r7, 1 + 55e2: a6e2 st.b r7, (r6, 0x2) + 55e4: 3600 movi r6, 0 + 55e6: a5c0 st.b r6, (r5, 0x0) + 55e8: 5cac addu r5, r4, r3 + 55ea: 8da0 ld.h r5, (r5, 0x0) + 55ec: 7557 sexth r5, r5 + 55ee: 3d20 cmplti r5, 1 + 55f0: 081d bt 0x562a // 562a + 55f2: 11ab lrw r5, 0x2000063a // 569c + 55f4: 614c addu r5, r3 + 55f6: 58cc addu r6, r0, r3 + 55f8: 8da0 ld.h r5, (r5, 0x0) + 55fa: 8ec0 ld.h r6, (r6, 0x0) + 55fc: 7599 zexth r6, r6 + 55fe: 7555 zexth r5, r5 + 5600: 615a subu r5, r6 + 5602: 8ac0 ld.h r6, (r2, 0x0) + 5604: 46c2 lsli r6, r6, 2 + 5606: 6595 cmplt r5, r6 + 5608: 0811 bt 0x562a // 562a + 560a: 11a7 lrw r5, 0x2000047e // 56a4 + 560c: 6144 addu r5, r1 + 560e: 85c0 ld.b r6, (r5, 0x0) + 5610: 2600 addi r6, 1 + 5612: 7598 zextb r6, r6 + 5614: a5c0 st.b r6, (r5, 0x0) + 5616: 10d6 lrw r6, 0x20000088 // 566c + 5618: 85e0 ld.b r7, (r5, 0x0) + 561a: 86cb ld.b r6, (r6, 0xb) + 561c: 65d8 cmphs r6, r7 + 561e: 0806 bt 0x562a // 562a + 5620: 10d4 lrw r6, 0x20000568 // 5670 + 5622: 3701 movi r7, 1 + 5624: a6e2 st.b r7, (r6, 0x2) + 5626: 3600 movi r6, 0 + 5628: a5c0 st.b r6, (r5, 0x0) + 562a: 5cac addu r5, r4, r3 + 562c: 8da0 ld.h r5, (r5, 0x0) + 562e: 7557 sexth r5, r5 + 5630: 3ddf btsti r5, 31 + 5632: 0c3f bf 0x56b0 // 56b0 + 5634: 10fa lrw r7, 0x2000063a // 569c + 5636: 58cc addu r6, r0, r3 + 5638: 61cc addu r7, r3 + 563a: 8ea0 ld.h r5, (r6, 0x0) + 563c: 8fe0 ld.h r7, (r7, 0x0) + 563e: 75dd zexth r7, r7 + 5640: 7555 zexth r5, r5 + 5642: 615e subu r5, r7 + 5644: 8ae0 ld.h r7, (r2, 0x0) + 5646: 65d5 cmplt r5, r7 + 5648: 0c34 bf 0x56b0 // 56b0 + 564a: 042f br 0x56a8 // 56a8 + 564c: 200005fa .long 0x200005fa + 5650: 20000181 .long 0x20000181 + 5654: 200004fc .long 0x200004fc + 5658: 2000051c .long 0x2000051c + 565c: 200001ae .long 0x200001ae + 5660: 2000045c .long 0x2000045c + 5664: 200007ae .long 0x200007ae + 5668: 200006c0 .long 0x200006c0 + 566c: 20000088 .long 0x20000088 + 5670: 20000568 .long 0x20000568 + 5674: 20000628 .long 0x20000628 + 5678: 20000490 .long 0x20000490 + 567c: 2000065c .long 0x2000065c + 5680: 20000606 .long 0x20000606 + 5684: 20000544 .long 0x20000544 + 5688: 200006a0 .long 0x200006a0 + 568c: 200005a2 .long 0x200005a2 + 5690: 20000574 .long 0x20000574 + 5694: 20000788 .long 0x20000788 + 5698: 2000071c .long 0x2000071c + 569c: 2000063a .long 0x2000063a + 56a0: 20000590 .long 0x20000590 + 56a4: 2000047e .long 0x2000047e + 56a8: 8ea0 ld.h r5, (r6, 0x0) + 56aa: 2d00 subi r5, 1 + 56ac: 7555 zexth r5, r5 + 56ae: aea0 st.h r5, (r6, 0x0) + 56b0: 5cac addu r5, r4, r3 + 56b2: 8da0 ld.h r5, (r5, 0x0) + 56b4: 7557 sexth r5, r5 + 56b6: 3ddf btsti r5, 31 + 56b8: 0c11 bf 0x56da // 56da + 56ba: 11ff lrw r7, 0x2000063a // 57b4 + 56bc: 58cc addu r6, r0, r3 + 56be: 61cc addu r7, r3 + 56c0: 8ea0 ld.h r5, (r6, 0x0) + 56c2: 8fe0 ld.h r7, (r7, 0x0) + 56c4: 75dd zexth r7, r7 + 56c6: 7555 zexth r5, r5 + 56c8: 615e subu r5, r7 + 56ca: 8ae0 ld.h r7, (r2, 0x0) + 56cc: 4fe1 lsri r7, r7, 1 + 56ce: 65d5 cmplt r5, r7 + 56d0: 0805 bt 0x56da // 56da + 56d2: 8ea0 ld.h r5, (r6, 0x0) + 56d4: 2d01 subi r5, 2 + 56d6: 7555 zexth r5, r5 + 56d8: aea0 st.h r5, (r6, 0x0) + 56da: 5ccc addu r6, r4, r3 + 56dc: 8ea0 ld.h r5, (r6, 0x0) + 56de: 7557 sexth r5, r5 + 56e0: 3d20 cmplti r5, 1 + 56e2: 080c bt 0x56fa // 56fa + 56e4: 8ec0 ld.h r6, (r6, 0x0) + 56e6: 8aa0 ld.h r5, (r2, 0x0) + 56e8: 759b sexth r6, r6 + 56ea: 4da1 lsri r5, r5, 1 + 56ec: 6559 cmplt r6, r5 + 56ee: 0c06 bf 0x56fa // 56fa + 56f0: 58cc addu r6, r0, r3 + 56f2: 8ea0 ld.h r5, (r6, 0x0) + 56f4: 2500 addi r5, 1 + 56f6: 7555 zexth r5, r5 + 56f8: aea0 st.h r5, (r6, 0x0) + 56fa: 5ccc addu r6, r4, r3 + 56fc: 8ea0 ld.h r5, (r6, 0x0) + 56fe: 7557 sexth r5, r5 + 5700: 3d20 cmplti r5, 1 + 5702: 0810 bt 0x5722 // 5722 + 5704: 8ee0 ld.h r7, (r6, 0x0) + 5706: 75df sexth r7, r7 + 5708: 8aa0 ld.h r5, (r2, 0x0) + 570a: 655d cmplt r7, r5 + 570c: 0c0b bf 0x5722 // 5722 + 570e: 8ec0 ld.h r6, (r6, 0x0) + 5710: 759b sexth r6, r6 + 5712: 4da1 lsri r5, r5, 1 + 5714: 6559 cmplt r6, r5 + 5716: 0806 bt 0x5722 // 5722 + 5718: 60c0 addu r3, r0 + 571a: 8ba0 ld.h r5, (r3, 0x0) + 571c: 2501 addi r5, 2 + 571e: 7555 zexth r5, r5 + 5720: aba0 st.h r5, (r3, 0x0) + 5722: 2100 addi r1, 1 + 5724: 3951 cmpnei r1, 17 + 5726: 2201 addi r2, 2 + 5728: 0b3e bt 0x55a4 // 55a4 + 572a: 1401 addi r14, r14, 4 + 572c: 1494 pop r4-r7, r15 + 572e: e3fff8a7 bsr 0x487c // 487c + 5732: 1162 lrw r3, 0x20000088 // 57b8 + 5734: 836c ld.b r3, (r3, 0xc) + 5736: 64c0 cmphs r0, r3 + 5738: 1141 lrw r2, 0x20000494 // 57bc + 573a: 0c0e bf 0x5756 // 5756 + 573c: 8260 ld.b r3, (r2, 0x0) + 573e: 74cc zextb r3, r3 + 5740: 3b01 cmphsi r3, 2 + 5742: 0c05 bf 0x574c // 574c + 5744: 107f lrw r3, 0x20000568 // 57c0 + 5746: 3201 movi r2, 1 + 5748: a340 st.b r2, (r3, 0x0) + 574a: 0685 br 0x5454 // 5454 + 574c: 8260 ld.b r3, (r2, 0x0) + 574e: 2300 addi r3, 1 + 5750: 74cc zextb r3, r3 + 5752: a260 st.b r3, (r2, 0x0) + 5754: 0680 br 0x5454 // 5454 + 5756: 3300 movi r3, 0 + 5758: 07fd br 0x5752 // 5752 + 575a: e3fff8a5 bsr 0x48a4 // 48a4 + 575e: 1077 lrw r3, 0x20000088 // 57b8 + 5760: 836c ld.b r3, (r3, 0xc) + 5762: 64c0 cmphs r0, r3 + 5764: 1056 lrw r2, 0x20000494 // 57bc + 5766: 0c0e bf 0x5782 // 5782 + 5768: 8261 ld.b r3, (r2, 0x1) + 576a: 74cc zextb r3, r3 + 576c: 3b01 cmphsi r3, 2 + 576e: 0c05 bf 0x5778 // 5778 + 5770: 1074 lrw r3, 0x20000568 // 57c0 + 5772: 3201 movi r2, 1 + 5774: a341 st.b r2, (r3, 0x1) + 5776: 070d br 0x5590 // 5590 + 5778: 8261 ld.b r3, (r2, 0x1) + 577a: 2300 addi r3, 1 + 577c: 74cc zextb r3, r3 + 577e: a261 st.b r3, (r2, 0x1) + 5780: 0708 br 0x5590 // 5590 + 5782: 3300 movi r3, 0 + 5784: 07fd br 0x577e // 577e + 5786: e3fff8a3 bsr 0x48cc // 48cc + 578a: 106c lrw r3, 0x20000088 // 57b8 + 578c: 836c ld.b r3, (r3, 0xc) + 578e: 64c0 cmphs r0, r3 + 5790: 104b lrw r2, 0x20000494 // 57bc + 5792: 0c0e bf 0x57ae // 57ae + 5794: 8262 ld.b r3, (r2, 0x2) + 5796: 74cc zextb r3, r3 + 5798: 3b01 cmphsi r3, 2 + 579a: 0c05 bf 0x57a4 // 57a4 + 579c: 1069 lrw r3, 0x20000568 // 57c0 + 579e: 3201 movi r2, 1 + 57a0: a342 st.b r2, (r3, 0x2) + 57a2: 07c4 br 0x572a // 572a + 57a4: 8262 ld.b r3, (r2, 0x2) + 57a6: 2300 addi r3, 1 + 57a8: 74cc zextb r3, r3 + 57aa: a262 st.b r3, (r2, 0x2) + 57ac: 07bf br 0x572a // 572a + 57ae: 3300 movi r3, 0 + 57b0: 07fd br 0x57aa // 57aa + 57b2: 0000 bkpt + 57b4: 2000063a .long 0x2000063a + 57b8: 20000088 .long 0x20000088 + 57bc: 20000494 .long 0x20000494 + 57c0: 20000568 .long 0x20000568 + +Disassembly of section .text.TK_result_prog: + +000057c4 : + 57c4: 14d4 push r4-r7, r15 + 57c6: 1424 subi r14, r14, 16 + 57c8: 111f lrw r0, 0x200004fc // 58c4 + 57ca: 1220 lrw r1, 0x20000490 // 58c8 + 57cc: 1240 lrw r2, 0x20000574 // 58cc + 57ce: b821 st.w r1, (r14, 0x4) + 57d0: 9060 ld.w r3, (r0, 0x0) + 57d2: 91a0 ld.w r5, (r1, 0x0) + 57d4: 6cd4 or r3, r5 + 57d6: 9280 ld.w r4, (r2, 0x0) + 57d8: 6cd0 or r3, r4 + 57da: 3b40 cmpnei r3, 0 + 57dc: b800 st.w r0, (r14, 0x0) + 57de: b842 st.w r2, (r14, 0x8) + 57e0: 119c lrw r4, 0x200005fc // 58d0 + 57e2: 0c67 bf 0x58b0 // 58b0 + 57e4: 111c lrw r0, 0x200006d4 // 58d4 + 57e6: 3500 movi r5, 0 + 57e8: 117c lrw r3, 0x2000069c // 58d8 + 57ea: b803 st.w r0, (r14, 0xc) + 57ec: 3201 movi r2, 1 + 57ee: 7094 lsl r2, r5 + 57f0: b040 st.w r2, (r0, 0x0) + 57f2: 9840 ld.w r2, (r14, 0x0) + 57f4: 9240 ld.w r2, (r2, 0x0) + 57f6: 9020 ld.w r1, (r0, 0x0) + 57f8: 6884 and r2, r1 + 57fa: b340 st.w r2, (r3, 0x0) + 57fc: 9841 ld.w r2, (r14, 0x4) + 57fe: 9240 ld.w r2, (r2, 0x0) + 5800: 9020 ld.w r1, (r0, 0x0) + 5802: 6848 and r1, r2 + 5804: 1156 lrw r2, 0x20000760 // 58dc + 5806: b220 st.w r1, (r2, 0x0) + 5808: 9822 ld.w r1, (r14, 0x8) + 580a: 9120 ld.w r1, (r1, 0x0) + 580c: 90c0 ld.w r6, (r0, 0x0) + 580e: 6984 and r6, r1 + 5810: 1134 lrw r1, 0x20000600 // 58e0 + 5812: b1c0 st.w r6, (r1, 0x0) + 5814: 93e0 ld.w r7, (r3, 0x0) + 5816: 92c0 ld.w r6, (r2, 0x0) + 5818: 659e cmpne r7, r6 + 581a: 0807 bt 0x5828 // 5828 + 581c: 92e0 ld.w r7, (r2, 0x0) + 581e: 91c0 ld.w r6, (r1, 0x0) + 5820: 659e cmpne r7, r6 + 5822: 0803 bt 0x5828 // 5828 + 5824: 9340 ld.w r2, (r3, 0x0) + 5826: 040c br 0x583e // 583e + 5828: 92c0 ld.w r6, (r2, 0x0) + 582a: 3e40 cmpnei r6, 0 + 582c: 0c29 bf 0x587e // 587e + 582e: 91c0 ld.w r6, (r1, 0x0) + 5830: 3e40 cmpnei r6, 0 + 5832: 0c26 bf 0x587e // 587e + 5834: 92e0 ld.w r7, (r2, 0x0) + 5836: 91c0 ld.w r6, (r1, 0x0) + 5838: 659e cmpne r7, r6 + 583a: 0822 bt 0x587e // 587e + 583c: 9240 ld.w r2, (r2, 0x0) + 583e: 9420 ld.w r1, (r4, 0x0) + 5840: 6c84 or r2, r1 + 5842: 2500 addi r5, 1 + 5844: 3d51 cmpnei r5, 17 + 5846: b440 st.w r2, (r4, 0x0) + 5848: 0bd2 bt 0x57ec // 57ec + 584a: 9460 ld.w r3, (r4, 0x0) + 584c: 3b40 cmpnei r3, 0 + 584e: 1146 lrw r2, 0x20000704 // 58e4 + 5850: 0c32 bf 0x58b4 // 58b4 + 5852: 9420 ld.w r1, (r4, 0x0) + 5854: 9260 ld.w r3, (r2, 0x0) + 5856: 64c6 cmpne r1, r3 + 5858: 0c06 bf 0x5864 // 5864 + 585a: 9460 ld.w r3, (r4, 0x0) + 585c: b260 st.w r3, (r2, 0x0) + 585e: 3200 movi r2, 0 + 5860: 1162 lrw r3, 0x2000051a // 58e8 + 5862: a340 st.b r2, (r3, 0x0) + 5864: e3fff7f8 bsr 0x4854 // 4854 + 5868: 1161 lrw r3, 0x20000188 // 58ec + 586a: 8360 ld.b r3, (r3, 0x0) + 586c: 640c cmphs r3, r0 + 586e: 0806 bt 0x587a // 587a + 5870: 3300 movi r3, 0 + 5872: b460 st.w r3, (r4, 0x0) + 5874: 3201 movi r2, 1 + 5876: 107d lrw r3, 0x2000051a // 58e8 + 5878: a340 st.b r2, (r3, 0x0) + 587a: 1404 addi r14, r14, 16 + 587c: 1494 pop r4-r7, r15 + 587e: 93c0 ld.w r6, (r3, 0x0) + 5880: 3e40 cmpnei r6, 0 + 5882: 0c08 bf 0x5892 // 5892 + 5884: 92c0 ld.w r6, (r2, 0x0) + 5886: 3e40 cmpnei r6, 0 + 5888: 0c05 bf 0x5892 // 5892 + 588a: 93c0 ld.w r6, (r3, 0x0) + 588c: 9240 ld.w r2, (r2, 0x0) + 588e: 649a cmpne r6, r2 + 5890: 0fca bf 0x5824 // 5824 + 5892: 9340 ld.w r2, (r3, 0x0) + 5894: 3a40 cmpnei r2, 0 + 5896: 0c08 bf 0x58a6 // 58a6 + 5898: 9140 ld.w r2, (r1, 0x0) + 589a: 3a40 cmpnei r2, 0 + 589c: 0c05 bf 0x58a6 // 58a6 + 589e: 9340 ld.w r2, (r3, 0x0) + 58a0: 9120 ld.w r1, (r1, 0x0) + 58a2: 644a cmpne r2, r1 + 58a4: 0fc0 bf 0x5824 // 5824 + 58a6: 9843 ld.w r2, (r14, 0xc) + 58a8: 9220 ld.w r1, (r2, 0x0) + 58aa: 9440 ld.w r2, (r4, 0x0) + 58ac: 6885 andn r2, r1 + 58ae: 07ca br 0x5842 // 5842 + 58b0: b460 st.w r3, (r4, 0x0) + 58b2: 07cc br 0x584a // 584a + 58b4: b260 st.w r3, (r2, 0x0) + 58b6: 3100 movi r1, 0 + 58b8: 104c lrw r2, 0x2000051a // 58e8 + 58ba: a220 st.b r1, (r2, 0x0) + 58bc: 104d lrw r2, 0x200005f4 // 58f0 + 58be: b260 st.w r3, (r2, 0x0) + 58c0: 07dd br 0x587a // 587a + 58c2: 0000 bkpt + 58c4: 200004fc .long 0x200004fc + 58c8: 20000490 .long 0x20000490 + 58cc: 20000574 .long 0x20000574 + 58d0: 200005fc .long 0x200005fc + 58d4: 200006d4 .long 0x200006d4 + 58d8: 2000069c .long 0x2000069c + 58dc: 20000760 .long 0x20000760 + 58e0: 20000600 .long 0x20000600 + 58e4: 20000704 .long 0x20000704 + 58e8: 2000051a .long 0x2000051a + 58ec: 20000188 .long 0x20000188 + 58f0: 200005f4 .long 0x200005f4 + +Disassembly of section .text.TKEYIntHandler: + +000058f4 : + 58f4: 1460 nie + 58f6: 1462 ipush + 58f8: 14d1 push r4, r15 + 58fa: 1183 lrw r4, 0x20000068 // 5984 + 58fc: 8460 ld.b r3, (r4, 0x0) + 58fe: 3b40 cmpnei r3, 0 + 5900: 0815 bt 0x592a // 592a + 5902: 3301 movi r3, 1 + 5904: a460 st.b r3, (r4, 0x0) + 5906: 1161 lrw r3, 0x20000508 // 5988 + 5908: 8360 ld.b r3, (r3, 0x0) + 590a: 3b41 cmpnei r3, 1 + 590c: 080f bt 0x592a // 592a + 590e: 1140 lrw r2, 0x20000719 // 598c + 5910: 8260 ld.b r3, (r2, 0x0) + 5912: 2300 addi r3, 1 + 5914: 74cc zextb r3, r3 + 5916: a260 st.b r3, (r2, 0x0) + 5918: 8260 ld.b r3, (r2, 0x0) + 591a: 3b43 cmpnei r3, 3 + 591c: 0803 bt 0x5922 // 5922 + 591e: 3300 movi r3, 0 + 5920: a260 st.b r3, (r2, 0x0) + 5922: e3fff733 bsr 0x4788 // 4788 + 5926: 3301 movi r3, 1 + 5928: a461 st.b r3, (r4, 0x1) + 592a: 107a lrw r3, 0x20000058 // 5990 + 592c: 3101 movi r1, 1 + 592e: 9360 ld.w r3, (r3, 0x0) + 5930: 934a ld.w r2, (r3, 0x28) + 5932: 6884 and r2, r1 + 5934: 3a40 cmpnei r2, 0 + 5936: 0c02 bf 0x593a // 593a + 5938: b32c st.w r1, (r3, 0x30) + 593a: 934a ld.w r2, (r3, 0x28) + 593c: 3102 movi r1, 2 + 593e: 6884 and r2, r1 + 5940: 3a40 cmpnei r2, 0 + 5942: 0c02 bf 0x5946 // 5946 + 5944: b32c st.w r1, (r3, 0x30) + 5946: 934a ld.w r2, (r3, 0x28) + 5948: 3104 movi r1, 4 + 594a: 6884 and r2, r1 + 594c: 3a40 cmpnei r2, 0 + 594e: 0c02 bf 0x5952 // 5952 + 5950: b32c st.w r1, (r3, 0x30) + 5952: 934a ld.w r2, (r3, 0x28) + 5954: 3108 movi r1, 8 + 5956: 6884 and r2, r1 + 5958: 3a40 cmpnei r2, 0 + 595a: 0c02 bf 0x595e // 595e + 595c: b32c st.w r1, (r3, 0x30) + 595e: 934a ld.w r2, (r3, 0x28) + 5960: 3110 movi r1, 16 + 5962: 6884 and r2, r1 + 5964: 3a40 cmpnei r2, 0 + 5966: 0c02 bf 0x596a // 596a + 5968: b32c st.w r1, (r3, 0x30) + 596a: 934a ld.w r2, (r3, 0x28) + 596c: 3120 movi r1, 32 + 596e: 6884 and r2, r1 + 5970: 3a40 cmpnei r2, 0 + 5972: 0c02 bf 0x5976 // 5976 + 5974: b32c st.w r1, (r3, 0x30) + 5976: d9ee2001 ld.w r15, (r14, 0x4) + 597a: 9880 ld.w r4, (r14, 0x0) + 597c: 1402 addi r14, r14, 8 + 597e: 1463 ipop + 5980: 1461 nir + 5982: 0000 bkpt + 5984: 20000068 .long 0x20000068 + 5988: 20000508 .long 0x20000508 + 598c: 20000719 .long 0x20000719 + 5990: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +00005994 : + 5994: 1460 nie + 5996: 1462 ipush + 5998: 14d3 push r4-r6, r15 + 599a: 1269 lrw r3, 0x20000064 // 5abc + 599c: 3400 movi r4, 0 + 599e: 9360 ld.w r3, (r3, 0x0) + 59a0: b386 st.w r4, (r3, 0x18) + 59a2: 1268 lrw r3, 0x20000508 // 5ac0 + 59a4: 8360 ld.b r3, (r3, 0x0) + 59a6: 3b41 cmpnei r3, 1 + 59a8: 0840 bt 0x5a28 // 5a28 + 59aa: e3fff7a5 bsr 0x48f4 // 48f4 + 59ae: e3fff7d7 bsr 0x495c // 495c + 59b2: e3fffc0d bsr 0x51cc // 51cc + 59b6: e3fffc9f bsr 0x52f4 // 52f4 + 59ba: e3fff653 bsr 0x4660 // 4660 + 59be: e3ffff03 bsr 0x57c4 // 57c4 + 59c2: 1261 lrw r3, 0x200005fc // 5ac4 + 59c4: 9360 ld.w r3, (r3, 0x0) + 59c6: 3b40 cmpnei r3, 0 + 59c8: 0c12 bf 0x59ec // 59ec + 59ca: 1260 lrw r3, 0x20000158 // 5ac8 + 59cc: 9340 ld.w r2, (r3, 0x0) + 59ce: 3a40 cmpnei r2, 0 + 59d0: 0c0e bf 0x59ec // 59ec + 59d2: 117f lrw r3, 0x200005f4 // 5acc + 59d4: 3064 movi r0, 100 + 59d6: 9320 ld.w r1, (r3, 0x0) + 59d8: 2100 addi r1, 1 + 59da: b320 st.w r1, (r3, 0x0) + 59dc: 9320 ld.w r1, (r3, 0x0) + 59de: 7c80 mult r2, r0 + 59e0: 6448 cmphs r2, r1 + 59e2: 0805 bt 0x59ec // 59ec + 59e4: 115b lrw r2, 0x200005a1 // 5ad0 + 59e6: 3101 movi r1, 1 + 59e8: a220 st.b r1, (r2, 0x0) + 59ea: b380 st.w r4, (r3, 0x0) + 59ec: 117a lrw r3, 0x20000150 // 5ad4 + 59ee: 8340 ld.b r2, (r3, 0x0) + 59f0: 3a41 cmpnei r2, 1 + 59f2: 0823 bt 0x5a38 // 5a38 + 59f4: 1139 lrw r1, 0x200004fc // 5ad8 + 59f6: 115a lrw r2, 0x20000490 // 5adc + 59f8: 9100 ld.w r0, (r1, 0x0) + 59fa: 9260 ld.w r3, (r2, 0x0) + 59fc: 64c2 cmpne r0, r3 + 59fe: 1179 lrw r3, 0x20000698 // 5ae0 + 5a00: 080a bt 0x5a14 // 5a14 + 5a02: 9280 ld.w r4, (r2, 0x0) + 5a04: 1158 lrw r2, 0x20000574 // 5ae4 + 5a06: 9200 ld.w r0, (r2, 0x0) + 5a08: 6412 cmpne r4, r0 + 5a0a: 0805 bt 0x5a14 // 5a14 + 5a0c: 9120 ld.w r1, (r1, 0x0) + 5a0e: 9240 ld.w r2, (r2, 0x0) + 5a10: 6486 cmpne r1, r2 + 5a12: 0c09 bf 0x5a24 // 5a24 + 5a14: 9340 ld.w r2, (r3, 0x0) + 5a16: 2200 addi r2, 1 + 5a18: b340 st.w r2, (r3, 0x0) + 5a1a: 1154 lrw r2, 0x20000088 // 5ae8 + 5a1c: 823c ld.b r1, (r2, 0x1c) + 5a1e: 9340 ld.w r2, (r3, 0x0) + 5a20: 6484 cmphs r1, r2 + 5a22: 0803 bt 0x5a28 // 5a28 + 5a24: 3200 movi r2, 0 + 5a26: b340 st.w r2, (r3, 0x0) + 5a28: d9ee2003 ld.w r15, (r14, 0xc) + 5a2c: 98c2 ld.w r6, (r14, 0x8) + 5a2e: 98a1 ld.w r5, (r14, 0x4) + 5a30: 9880 ld.w r4, (r14, 0x0) + 5a32: 1404 addi r14, r14, 16 + 5a34: 1463 ipop + 5a36: 1461 nir + 5a38: 83a0 ld.b r5, (r3, 0x0) + 5a3a: 7554 zextb r5, r5 + 5a3c: 3d40 cmpnei r5, 0 + 5a3e: 0bf5 bt 0x5a28 // 5a28 + 5a40: 1166 lrw r3, 0x200004fc // 5ad8 + 5a42: 1147 lrw r2, 0x20000490 // 5adc + 5a44: 9300 ld.w r0, (r3, 0x0) + 5a46: 9220 ld.w r1, (r2, 0x0) + 5a48: 6442 cmpne r0, r1 + 5a4a: 1127 lrw r1, 0x20000574 // 5ae4 + 5a4c: 1105 lrw r0, 0x20000698 // 5ae0 + 5a4e: 0c33 bf 0x5ab4 // 5ab4 + 5a50: 92c0 ld.w r6, (r2, 0x0) + 5a52: 9180 ld.w r4, (r1, 0x0) + 5a54: 651a cmpne r6, r4 + 5a56: 0c2f bf 0x5ab4 // 5ab4 + 5a58: 93c0 ld.w r6, (r3, 0x0) + 5a5a: 9180 ld.w r4, (r1, 0x0) + 5a5c: 651a cmpne r6, r4 + 5a5e: 0c2b bf 0x5ab4 // 5ab4 + 5a60: 9080 ld.w r4, (r0, 0x0) + 5a62: 2400 addi r4, 1 + 5a64: b080 st.w r4, (r0, 0x0) + 5a66: 1181 lrw r4, 0x20000088 // 5ae8 + 5a68: 84dc ld.b r6, (r4, 0x1c) + 5a6a: 9080 ld.w r4, (r0, 0x0) + 5a6c: 6518 cmphs r6, r4 + 5a6e: 0802 bt 0x5a72 // 5a72 + 5a70: b0a0 st.w r5, (r0, 0x0) + 5a72: 9380 ld.w r4, (r3, 0x0) + 5a74: 9200 ld.w r0, (r2, 0x0) + 5a76: 6412 cmpne r4, r0 + 5a78: 101d lrw r0, 0x200006d8 // 5aec + 5a7a: 0c04 bf 0x5a82 // 5a82 + 5a7c: 9180 ld.w r4, (r1, 0x0) + 5a7e: 3c40 cmpnei r4, 0 + 5a80: 0c0f bf 0x5a9e // 5a9e + 5a82: 93a0 ld.w r5, (r3, 0x0) + 5a84: 9180 ld.w r4, (r1, 0x0) + 5a86: 6516 cmpne r5, r4 + 5a88: 0c04 bf 0x5a90 // 5a90 + 5a8a: 9280 ld.w r4, (r2, 0x0) + 5a8c: 3c40 cmpnei r4, 0 + 5a8e: 0c08 bf 0x5a9e // 5a9e + 5a90: 9120 ld.w r1, (r1, 0x0) + 5a92: 9240 ld.w r2, (r2, 0x0) + 5a94: 6486 cmpne r1, r2 + 5a96: 0c0c bf 0x5aae // 5aae + 5a98: 9360 ld.w r3, (r3, 0x0) + 5a9a: 3b40 cmpnei r3, 0 + 5a9c: 0809 bt 0x5aae // 5aae + 5a9e: 9060 ld.w r3, (r0, 0x0) + 5aa0: 2300 addi r3, 1 + 5aa2: b060 st.w r3, (r0, 0x0) + 5aa4: 1071 lrw r3, 0x20000088 // 5ae8 + 5aa6: 835c ld.b r2, (r3, 0x1c) + 5aa8: 9060 ld.w r3, (r0, 0x0) + 5aaa: 64c8 cmphs r2, r3 + 5aac: 0bbe bt 0x5a28 // 5a28 + 5aae: 3300 movi r3, 0 + 5ab0: b060 st.w r3, (r0, 0x0) + 5ab2: 07bb br 0x5a28 // 5a28 + 5ab4: 3400 movi r4, 0 + 5ab6: b080 st.w r4, (r0, 0x0) + 5ab8: 07dd br 0x5a72 // 5a72 + 5aba: 0000 bkpt + 5abc: 20000064 .long 0x20000064 + 5ac0: 20000508 .long 0x20000508 + 5ac4: 200005fc .long 0x200005fc + 5ac8: 20000158 .long 0x20000158 + 5acc: 200005f4 .long 0x200005f4 + 5ad0: 200005a1 .long 0x200005a1 + 5ad4: 20000150 .long 0x20000150 + 5ad8: 200004fc .long 0x200004fc + 5adc: 20000490 .long 0x20000490 + 5ae0: 20000698 .long 0x20000698 + 5ae4: 20000574 .long 0x20000574 + 5ae8: 20000088 .long 0x20000088 + 5aec: 200006d8 .long 0x200006d8 + +Disassembly of section .text.std_clk_calib: + +00005af0 : + 5af0: 14d4 push r4-r7, r15 + 5af2: 142d subi r14, r14, 52 + 5af4: 3201 movi r2, 1 + 5af6: 03ce lrw r6, 0x2000005c // 5d38 + 5af8: 6cc3 mov r3, r0 + 5afa: dc4e000a st.b r2, (r14, 0xa) + 5afe: 9640 ld.w r2, (r6, 0x0) + 5b00: 9247 ld.w r2, (r2, 0x1c) + 5b02: 7488 zextb r2, r2 + 5b04: dc4e0009 st.b r2, (r14, 0x9) + 5b08: d84e0009 ld.b r2, (r14, 0x9) + 5b0c: 3a40 cmpnei r2, 0 + 5b0e: 0c08 bf 0x5b1e // 5b1e + 5b10: d84e0009 ld.b r2, (r14, 0x9) + 5b14: 3a42 cmpnei r2, 2 + 5b16: 0c04 bf 0x5b1e // 5b1e + 5b18: 3000 movi r0, 0 + 5b1a: 140d addi r14, r14, 52 + 5b1c: 1494 pop r4-r7, r15 + 5b1e: 0397 lrw r4, 0x2000000c // 5d3c + 5b20: 3209 movi r2, 9 + 5b22: 9400 ld.w r0, (r4, 0x0) + 5b24: 3b40 cmpnei r3, 0 + 5b26: b041 st.w r2, (r0, 0x4) + 5b28: 0857 bt 0x5bd6 // 5bd6 + 5b2a: 3307 movi r3, 7 + 5b2c: dc6e000b st.b r3, (r14, 0xb) + 5b30: 037b lrw r3, 0x2dc6c00 // 5d40 + 5b32: b863 st.w r3, (r14, 0xc) + 5b34: 3380 movi r3, 128 + 5b36: 4362 lsli r3, r3, 2 + 5b38: b867 st.w r3, (r14, 0x1c) + 5b3a: d86e000b ld.b r3, (r14, 0xb) + 5b3e: 74cc zextb r3, r3 + 5b40: b062 st.w r3, (r0, 0x8) + 5b42: 037e lrw r3, 0xffff // 5d44 + 5b44: b063 st.w r3, (r0, 0xc) + 5b46: 3201 movi r2, 1 + 5b48: 3101 movi r1, 1 + 5b4a: 03bf lrw r5, 0x20000014 // 5d48 + 5b4c: e3ffe322 bsr 0x2190 // 2190 + 5b50: 95e0 ld.w r7, (r5, 0x0) + 5b52: 137f lrw r3, 0xbe9c0005 // 5d4c + 5b54: b760 st.w r3, (r7, 0x0) + 5b56: 135f lrw r2, 0x30010 // 5d50 + 5b58: 3300 movi r3, 0 + 5b5a: b762 st.w r3, (r7, 0x8) + 5b5c: b743 st.w r2, (r7, 0xc) + 5b5e: 32d8 movi r2, 216 + 5b60: b745 st.w r2, (r7, 0x14) + 5b62: 974f ld.w r2, (r7, 0x3c) + 5b64: 3aa2 bseti r2, 2 + 5b66: b74f st.w r2, (r7, 0x3c) + 5b68: 9803 ld.w r0, (r14, 0xc) + 5b6a: d82e000b ld.b r1, (r14, 0xb) + 5b6e: 327d movi r2, 125 + 5b70: 2100 addi r1, 1 + 5b72: 7c48 mult r1, r2 + 5b74: b861 st.w r3, (r14, 0x4) + 5b76: e3ffea77 bsr 0x3064 // 3064 <__udivsi3> + 5b7a: b804 st.w r0, (r14, 0x10) + 5b7c: 32fa movi r2, 250 + 5b7e: 9824 ld.w r1, (r14, 0x10) + 5b80: 4242 lsli r2, r2, 2 + 5b82: 6448 cmphs r2, r1 + 5b84: 0bca bt 0x5b18 // 5b18 + 5b86: 9844 ld.w r2, (r14, 0x10) + 5b88: 3178 movi r1, 120 + 5b8a: 9804 ld.w r0, (r14, 0x10) + 5b8c: b840 st.w r2, (r14, 0x0) + 5b8e: e3ffea6b bsr 0x3064 // 3064 <__udivsi3> + 5b92: 9840 ld.w r2, (r14, 0x0) + 5b94: 6082 subu r2, r0 + 5b96: b845 st.w r2, (r14, 0x14) + 5b98: 9804 ld.w r0, (r14, 0x10) + 5b9a: 3178 movi r1, 120 + 5b9c: 9844 ld.w r2, (r14, 0x10) + 5b9e: b840 st.w r2, (r14, 0x0) + 5ba0: e3ffea62 bsr 0x3064 // 3064 <__udivsi3> + 5ba4: 9840 ld.w r2, (r14, 0x0) + 5ba6: 6008 addu r0, r2 + 5ba8: b806 st.w r0, (r14, 0x18) + 5baa: c0807020 psrclr ie + 5bae: 9640 ld.w r2, (r6, 0x0) + 5bb0: 9254 ld.w r2, (r2, 0x50) + 5bb2: b848 st.w r2, (r14, 0x20) + 5bb4: 9861 ld.w r3, (r14, 0x4) + 5bb6: 9440 ld.w r2, (r4, 0x0) + 5bb8: b260 st.w r3, (r2, 0x0) + 5bba: b761 st.w r3, (r7, 0x4) + 5bbc: d86e000a ld.b r3, (r14, 0xa) + 5bc0: 3b40 cmpnei r3, 0 + 5bc2: 083e bt 0x5c3e // 5c3e + 5bc4: e3ffe298 bsr 0x20f4 // 20f4 + 5bc8: 9400 ld.w r0, (r4, 0x0) + 5bca: e3ffe2b9 bsr 0x213c // 213c + 5bce: c1807420 psrset ee, ie + 5bd2: 3001 movi r0, 1 + 5bd4: 07a3 br 0x5b1a // 5b1a + 5bd6: 3b41 cmpnei r3, 1 + 5bd8: 0806 bt 0x5be4 // 5be4 + 5bda: 3303 movi r3, 3 + 5bdc: dc6e000b st.b r3, (r14, 0xb) + 5be0: 127d lrw r3, 0x16e3600 // 5d54 + 5be2: 07a8 br 0x5b32 // 5b32 + 5be4: 3b42 cmpnei r3, 2 + 5be6: 0806 bt 0x5bf2 // 5bf2 + 5be8: 3301 movi r3, 1 + 5bea: dc6e000b st.b r3, (r14, 0xb) + 5bee: 127b lrw r3, 0xb71b00 // 5d58 + 5bf0: 07a1 br 0x5b32 // 5b32 + 5bf2: 3b43 cmpnei r3, 3 + 5bf4: 0806 bt 0x5c00 // 5c00 + 5bf6: 3300 movi r3, 0 + 5bf8: dc6e000b st.b r3, (r14, 0xb) + 5bfc: 1278 lrw r3, 0x5b8d80 // 5d5c + 5bfe: 079a br 0x5b32 // 5b32 + 5c00: 3b44 cmpnei r3, 4 + 5c02: 0809 bt 0x5c14 // 5c14 + 5c04: 3300 movi r3, 0 + 5c06: dc6e000b st.b r3, (r14, 0xb) + 5c0a: 1276 lrw r3, 0x54c720 // 5d60 + 5c0c: b863 st.w r3, (r14, 0xc) + 5c0e: 3380 movi r3, 128 + 5c10: 4369 lsli r3, r3, 9 + 5c12: 0793 br 0x5b38 // 5b38 + 5c14: 3b45 cmpnei r3, 5 + 5c16: 0806 bt 0x5c22 // 5c22 + 5c18: 3300 movi r3, 0 + 5c1a: dc6e000b st.b r3, (r14, 0xb) + 5c1e: 1272 lrw r3, 0x3ffed0 // 5d64 + 5c20: 07f6 br 0x5c0c // 5c0c + 5c22: 3b46 cmpnei r3, 6 + 5c24: 0806 bt 0x5c30 // 5c30 + 5c26: 3300 movi r3, 0 + 5c28: dc6e000b st.b r3, (r14, 0xb) + 5c2c: 126f lrw r3, 0x1fff68 // 5d68 + 5c2e: 07ef br 0x5c0c // 5c0c + 5c30: 3b47 cmpnei r3, 7 + 5c32: 0b84 bt 0x5b3a // 5b3a + 5c34: 3300 movi r3, 0 + 5c36: dc6e000b st.b r3, (r14, 0xb) + 5c3a: 126d lrw r3, 0x1ffb8 // 5d6c + 5c3c: 07e8 br 0x5c0c // 5c0c + 5c3e: 9560 ld.w r3, (r5, 0x0) + 5c40: 3101 movi r1, 1 + 5c42: 9440 ld.w r2, (r4, 0x0) + 5c44: b321 st.w r1, (r3, 0x4) + 5c46: b220 st.w r1, (r2, 0x0) + 5c48: 3100 movi r1, 0 + 5c4a: b327 st.w r1, (r3, 0x1c) + 5c4c: 3004 movi r0, 4 + 5c4e: b225 st.w r1, (r2, 0x14) + 5c50: 932e ld.w r1, (r3, 0x38) + 5c52: 6840 and r1, r0 + 5c54: 3940 cmpnei r1, 0 + 5c56: 0ffd bf 0x5c50 // 5c50 + 5c58: 9225 ld.w r1, (r2, 0x14) + 5c5a: b82a st.w r1, (r14, 0x28) + 5c5c: 3100 movi r1, 0 + 5c5e: b310 st.w r0, (r3, 0x40) + 5c60: b327 st.w r1, (r3, 0x1c) + 5c62: 3004 movi r0, 4 + 5c64: b225 st.w r1, (r2, 0x14) + 5c66: 932e ld.w r1, (r3, 0x38) + 5c68: 6840 and r1, r0 + 5c6a: 3940 cmpnei r1, 0 + 5c6c: 0ffd bf 0x5c66 // 5c66 + 5c6e: 9225 ld.w r1, (r2, 0x14) + 5c70: b82b st.w r1, (r14, 0x2c) + 5c72: 3100 movi r1, 0 + 5c74: b310 st.w r0, (r3, 0x40) + 5c76: b327 st.w r1, (r3, 0x1c) + 5c78: 3004 movi r0, 4 + 5c7a: b225 st.w r1, (r2, 0x14) + 5c7c: 932e ld.w r1, (r3, 0x38) + 5c7e: 6840 and r1, r0 + 5c80: 3940 cmpnei r1, 0 + 5c82: 0ffd bf 0x5c7c // 5c7c + 5c84: 9225 ld.w r1, (r2, 0x14) + 5c86: b82c st.w r1, (r14, 0x30) + 5c88: b310 st.w r0, (r3, 0x40) + 5c8a: 982b ld.w r1, (r14, 0x2c) + 5c8c: 980c ld.w r0, (r14, 0x30) + 5c8e: 6040 addu r1, r0 + 5c90: b829 st.w r1, (r14, 0x24) + 5c92: 9829 ld.w r1, (r14, 0x24) + 5c94: 4921 lsri r1, r1, 1 + 5c96: b829 st.w r1, (r14, 0x24) + 5c98: 3100 movi r1, 0 + 5c9a: b321 st.w r1, (r3, 0x4) + 5c9c: b220 st.w r1, (r2, 0x0) + 5c9e: b327 st.w r1, (r3, 0x1c) + 5ca0: b225 st.w r1, (r2, 0x14) + 5ca2: d86e0009 ld.b r3, (r14, 0x9) + 5ca6: 3b42 cmpnei r3, 2 + 5ca8: 9849 ld.w r2, (r14, 0x24) + 5caa: 082c bt 0x5d02 // 5d02 + 5cac: 1171 lrw r3, 0x7ff // 5d70 + 5cae: 648c cmphs r3, r2 + 5cb0: 0c03 bf 0x5cb6 // 5cb6 + 5cb2: 3300 movi r3, 0 + 5cb4: 040f br 0x5cd2 // 5cd2 + 5cb6: 9849 ld.w r2, (r14, 0x24) + 5cb8: 9866 ld.w r3, (r14, 0x18) + 5cba: 648c cmphs r3, r2 + 5cbc: 080e bt 0x5cd8 // 5cd8 + 5cbe: 9868 ld.w r3, (r14, 0x20) + 5cc0: 9847 ld.w r2, (r14, 0x1c) + 5cc2: 60ca subu r3, r2 + 5cc4: b868 st.w r3, (r14, 0x20) + 5cc6: 32fe movi r2, 254 + 5cc8: 9868 ld.w r3, (r14, 0x20) + 5cca: 4248 lsli r2, r2, 8 + 5ccc: 68c8 and r3, r2 + 5cce: 3b40 cmpnei r3, 0 + 5cd0: 0812 bt 0x5cf4 // 5cf4 + 5cd2: dc6e000a st.b r3, (r14, 0xa) + 5cd6: 0721 br 0x5b18 // 5b18 + 5cd8: 9849 ld.w r2, (r14, 0x24) + 5cda: 9865 ld.w r3, (r14, 0x14) + 5cdc: 64c8 cmphs r2, r3 + 5cde: 0829 bt 0x5d30 // 5d30 + 5ce0: 9868 ld.w r3, (r14, 0x20) + 5ce2: 9847 ld.w r2, (r14, 0x1c) + 5ce4: 60c8 addu r3, r2 + 5ce6: b868 st.w r3, (r14, 0x20) + 5ce8: 33fe movi r3, 254 + 5cea: 9848 ld.w r2, (r14, 0x20) + 5cec: 4368 lsli r3, r3, 8 + 5cee: 688c and r2, r3 + 5cf0: 64ca cmpne r2, r3 + 5cf2: 0fe0 bf 0x5cb2 // 5cb2 + 5cf4: 9660 ld.w r3, (r6, 0x0) + 5cf6: 9848 ld.w r2, (r14, 0x20) + 5cf8: b354 st.w r2, (r3, 0x50) + 5cfa: 3001 movi r0, 1 + 5cfc: e3ffe3c0 bsr 0x247c // 247c + 5d00: 075e br 0x5bbc // 5bbc + 5d02: 9866 ld.w r3, (r14, 0x18) + 5d04: 648c cmphs r3, r2 + 5d06: 0809 bt 0x5d18 // 5d18 + 5d08: 9868 ld.w r3, (r14, 0x20) + 5d0a: 9847 ld.w r2, (r14, 0x1c) + 5d0c: 60ca subu r3, r2 + 5d0e: b868 st.w r3, (r14, 0x20) + 5d10: 32ff movi r2, 255 + 5d12: 9868 ld.w r3, (r14, 0x20) + 5d14: 4250 lsli r2, r2, 16 + 5d16: 07db br 0x5ccc // 5ccc + 5d18: 9849 ld.w r2, (r14, 0x24) + 5d1a: 9865 ld.w r3, (r14, 0x14) + 5d1c: 64c8 cmphs r2, r3 + 5d1e: 0809 bt 0x5d30 // 5d30 + 5d20: 9868 ld.w r3, (r14, 0x20) + 5d22: 9847 ld.w r2, (r14, 0x1c) + 5d24: 60c8 addu r3, r2 + 5d26: b868 st.w r3, (r14, 0x20) + 5d28: 33ff movi r3, 255 + 5d2a: 9848 ld.w r2, (r14, 0x20) + 5d2c: 4370 lsli r3, r3, 16 + 5d2e: 07e0 br 0x5cee // 5cee + 5d30: 3300 movi r3, 0 + 5d32: dc6e000a st.b r3, (r14, 0xa) + 5d36: 07e2 br 0x5cfa // 5cfa + 5d38: 2000005c .long 0x2000005c + 5d3c: 2000000c .long 0x2000000c + 5d40: 02dc6c00 .long 0x02dc6c00 + 5d44: 0000ffff .long 0x0000ffff + 5d48: 20000014 .long 0x20000014 + 5d4c: be9c0005 .long 0xbe9c0005 + 5d50: 00030010 .long 0x00030010 + 5d54: 016e3600 .long 0x016e3600 + 5d58: 00b71b00 .long 0x00b71b00 + 5d5c: 005b8d80 .long 0x005b8d80 + 5d60: 0054c720 .long 0x0054c720 + 5d64: 003ffed0 .long 0x003ffed0 + 5d68: 001fff68 .long 0x001fff68 + 5d6c: 0001ffb8 .long 0x0001ffb8 + 5d70: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH.map new file mode 100644 index 0000000..f5882df --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH.map @@ -0,0 +1,2392 @@ +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: 349696 (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: 172 + Section header string table index: 169 + +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.EXI3_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_DeInit PROGBITS 00001ddc 002ddc 000064 00 AX 0 0 4 + [23] .text.GPIO_Init PROGBITS 00001e40 002e40 0000e0 00 AX 0 0 4 + [24] .text.GPIO_PullHi PROGBITS 00001f20 002f20 000014 00 AX 0 0 2 + [25] .text.GPIO_DriveS PROGBITS 00001f34 002f34 00000e 00 AX 0 0 2 + [26] .text.GPIO_IntGro PROGBITS 00001f44 002f44 00010c 00 AX 0 0 4 + [27] .text.GPIOB0_EXI_ PROGBITS 00002050 003050 00006c 00 AX 0 0 4 + [28] .text.GPIO_Write_ PROGBITS 000020bc 0030bc 000008 00 AX 0 0 2 + [29] .text.GPIO_Write_ PROGBITS 000020c4 0030c4 000008 00 AX 0 0 2 + [30] .text.GPIO_Revers PROGBITS 000020cc 0030cc 000016 00 AX 0 0 2 + [31] .text.GPIO_Read_S PROGBITS 000020e2 0030e2 000010 00 AX 0 0 2 + [32] .text.LPT_Soft_Re PROGBITS 000020f4 0030f4 000014 00 AX 0 0 4 + [33] .text.WWDT_CNT_Lo PROGBITS 00002108 003108 000010 00 AX 0 0 4 + [34] .text.BT_DeInit PROGBITS 00002118 003118 00001c 00 AX 0 0 2 + [35] .text.BT_Start PROGBITS 00002134 003134 000008 00 AX 0 0 2 + [36] .text.BT_Soft_Res PROGBITS 0000213c 00313c 00000a 00 AX 0 0 2 + [37] .text.BT_Configur PROGBITS 00002146 003146 000018 00 AX 0 0 2 + [38] .text.BT_ControlS PROGBITS 0000215e 00315e 00002c 00 AX 0 0 2 + [39] .text.BT_Period_C PROGBITS 0000218a 00318a 000006 00 AX 0 0 2 + [40] .text.BT_ConfigIn PROGBITS 00002190 003190 000012 00 AX 0 0 2 + [41] .text.BT1_INT_ENA PROGBITS 000021a4 0031a4 000010 00 AX 0 0 4 + [42] .text.UART0_DeIni PROGBITS 000021b4 0031b4 000018 00 AX 0 0 4 + [43] .text.UART1_DeIni PROGBITS 000021cc 0031cc 000018 00 AX 0 0 4 + [44] .text.UART2_DeIni PROGBITS 000021e4 0031e4 000018 00 AX 0 0 4 + [45] .text.UART1_Int_E PROGBITS 000021fc 0031fc 00001c 00 AX 0 0 4 + [46] .text.UART2_Int_E PROGBITS 00002218 003218 00001c 00 AX 0 0 4 + [47] .text.UART_IO_Ini PROGBITS 00002234 003234 0000ec 00 AX 0 0 4 + [48] .text.UARTInitRxT PROGBITS 00002320 003320 000010 00 AX 0 0 4 + [49] .text.UARTTransmi PROGBITS 00002330 003330 00001e 00 AX 0 0 2 + [50] .text.EPT_Stop PROGBITS 00002350 003350 000028 00 AX 0 0 4 + [51] .text.Page_Progra PROGBITS 00002378 003378 0000a0 00 AX 0 0 4 + [52] .text.ReadDataArr PROGBITS 00002418 003418 00002a 00 AX 0 0 2 + [53] .text.startup.mai PROGBITS 00002444 003444 000038 00 AX 0 0 4 + [54] .text.delay_nms PROGBITS 0000247c 00347c 00002c 00 AX 0 0 2 + [55] .text.delay_nus PROGBITS 000024a8 0034a8 000022 00 AX 0 0 2 + [56] .text.BT_CONFIG PROGBITS 000024cc 0034cc 000060 00 AX 0 0 4 + [57] .text.SYSCON_CONF PROGBITS 0000252c 00352c 000062 00 AX 0 0 2 + [58] .text.APT32F102_i PROGBITS 00002590 003590 000094 00 AX 0 0 4 + [59] .text.SYSCONIntHa PROGBITS 00002624 003624 0000f0 00 AX 0 0 4 + [60] .text.IFCIntHandl PROGBITS 00002714 003714 000068 00 AX 0 0 4 + [61] .text.ADCIntHandl PROGBITS 0000277c 00377c 000068 00 AX 0 0 4 + [62] .text.EPT0IntHand PROGBITS 000027e4 0037e4 0001ac 00 AX 0 0 4 + [63] .text.WWDTHandler PROGBITS 00002990 003990 000034 00 AX 0 0 4 + [64] .text.GPT0IntHand PROGBITS 000029c4 0039c4 000080 00 AX 0 0 4 + [65] .text.RTCIntHandl PROGBITS 00002a44 003a44 000070 00 AX 0 0 4 + [66] .text.UART0IntHan PROGBITS 00002ab4 003ab4 000060 00 AX 0 0 4 + [67] .text.UART1IntHan PROGBITS 00002b14 003b14 000094 00 AX 0 0 4 + [68] .text.UART2IntHan PROGBITS 00002ba8 003ba8 000094 00 AX 0 0 4 + [69] .text.SPI0IntHand PROGBITS 00002c3c 003c3c 0000e8 00 AX 0 0 4 + [70] .text.SIO0IntHand PROGBITS 00002d24 003d24 000054 00 AX 0 0 4 + [71] .text.EXI0IntHand PROGBITS 00002d78 003d78 000030 00 AX 0 0 4 + [72] .text.EXI1IntHand PROGBITS 00002da8 003da8 000030 00 AX 0 0 4 + [73] .text.EXI2to3IntH PROGBITS 00002dd8 003dd8 000048 00 AX 0 0 4 + [74] .text.EXI4to9IntH PROGBITS 00002e20 003e20 00006c 00 AX 0 0 4 + [75] .text.EXI10to15In PROGBITS 00002e8c 003e8c 000060 00 AX 0 0 4 + [76] .text.LPTIntHandl PROGBITS 00002eec 003eec 000034 00 AX 0 0 4 + [77] .text.BT0IntHandl PROGBITS 00002f20 003f20 00004c 00 AX 0 0 4 + [78] .text.BT1IntHandl PROGBITS 00002f6c 003f6c 000070 00 AX 0 0 4 + [79] .text.PriviledgeV PROGBITS 00002fdc 003fdc 000002 00 AX 0 0 2 + [80] .text.PendTrapHan PROGBITS 00002fde 003fde 000008 00 AX 0 0 2 + [81] .text.Trap3Handle PROGBITS 00002fe6 003fe6 000008 00 AX 0 0 2 + [82] .text.Trap2Handle PROGBITS 00002fee 003fee 000008 00 AX 0 0 2 + [83] .text.Trap1Handle PROGBITS 00002ff6 003ff6 000008 00 AX 0 0 2 + [84] .text.Trap0Handle PROGBITS 00002ffe 003ffe 000008 00 AX 0 0 2 + [85] .text.UnrecExecpH PROGBITS 00003006 004006 000008 00 AX 0 0 2 + [86] .text.BreakPointH PROGBITS 0000300e 00400e 000008 00 AX 0 0 2 + [87] .text.AccessErrHa PROGBITS 00003016 004016 000008 00 AX 0 0 2 + [88] .text.IllegalInst PROGBITS 0000301e 00401e 000008 00 AX 0 0 2 + [89] .text.MisalignedH PROGBITS 00003026 004026 000008 00 AX 0 0 2 + [90] .text.CNTAIntHand PROGBITS 0000302e 00402e 000008 00 AX 0 0 2 + [91] .text.I2CIntHandl PROGBITS 00003036 004036 000008 00 AX 0 0 2 + [92] .text.__divsi3 PROGBITS 00003040 004040 000024 00 AX 0 0 4 + [93] .text.__udivsi3 PROGBITS 00003064 004064 000024 00 AX 0 0 4 + [94] .text.__umodsi3 PROGBITS 00003088 004088 000024 00 AX 0 0 4 + [95] .text.CK_CPU_EnAl PROGBITS 000030ac 0040ac 000006 00 AX 0 0 2 + [96] .text.CK_CPU_DisA PROGBITS 000030b2 0040b2 000006 00 AX 0 0 2 + [97] .text.UARTx_Init PROGBITS 000030b8 0040b8 000158 00 AX 0 0 4 + [98] .text.UART0_RecvI PROGBITS 00003210 004210 000038 00 AX 0 0 4 + [99] .text.UART1_RecvI PROGBITS 00003248 004248 000038 00 AX 0 0 4 + [100] .text.UART1_TASK PROGBITS 00003280 004280 00006c 00 AX 0 0 4 + [101] .text.UART2_RecvI PROGBITS 000032ec 0042ec 000044 00 AX 0 0 4 + [102] .text.UART2_TASK PROGBITS 00003330 004330 000078 00 AX 0 0 4 + [103] .text.Controller4 PROGBITS 000033a8 0043a8 0000a8 00 AX 0 0 4 + [104] .text.BUS485_Send PROGBITS 00003450 004450 0000c4 00 AX 0 0 4 + [105] .text.MultSend_Ta PROGBITS 00003514 004514 000074 00 AX 0 0 4 + [106] .text.Set_GroupSe PROGBITS 00003588 004588 000064 00 AX 0 0 4 + [107] .text.Clear_SendF PROGBITS 000035ec 0045ec 000010 00 AX 0 0 4 + [108] .text.BUS485Send_ PROGBITS 000035fc 0045fc 000034 00 AX 0 0 4 + [109] .text.BusIdle_Tas PROGBITS 00003630 004630 000040 00 AX 0 0 4 + [110] .text.BusBusy_Tas PROGBITS 00003670 004670 00005c 00 AX 0 0 4 + [111] .text.Dbg_Println PROGBITS 000036cc 0046cc 00000c 00 AX 0 0 2 + [112] .text.EEPROM_Chec PROGBITS 000036d8 0046d8 000016 00 AX 0 0 2 + [113] .text.EEPROM_Read PROGBITS 000036f0 0046f0 000074 00 AX 0 0 4 + [114] .text.EEPROM_Writ PROGBITS 00003764 004764 000044 00 AX 0 0 4 + [115] .text.EEPROM_Vali PROGBITS 000037a8 0047a8 000030 00 AX 0 0 4 + [116] .text.EEPROM_Defa PROGBITS 000037d8 0047d8 000020 00 AX 0 0 2 + [117] .text.EEPROM_Init PROGBITS 000037f8 0047f8 000054 00 AX 0 0 4 + [118] .text.TemCtrl_Ini PROGBITS 0000384c 00484c 00015c 00 AX 0 0 4 + [119] .text.Tem_Valve_C PROGBITS 000039a8 0049a8 000060 00 AX 0 0 4 + [120] .text.DisPlay_Tas PROGBITS 00003a08 004a08 000194 00 AX 0 0 4 + [121] .text.Ctrller_Que PROGBITS 00003b9c 004b9c 000044 00 AX 0 0 4 + [122] .text.Ctrller_Ctr PROGBITS 00003be0 004be0 0000a4 00 AX 0 0 4 + [123] .text.TemCtrl_Pro PROGBITS 00003c84 004c84 0000cc 00 AX 0 0 4 + [124] .text.Ctrller_Air PROGBITS 00003d50 004d50 0000d4 00 AX 0 0 4 + [125] .text.Ctrller_Ctr PROGBITS 00003e24 004e24 000020 00 AX 0 0 4 + [126] .text.Ctrller_Rec PROGBITS 00003e44 004e44 0000b8 00 AX 0 0 4 + [127] .text.NetCRC16_Ch PROGBITS 00003efc 004efc 00004c 00 AX 0 0 4 + [128] .text.GetCRC16 PROGBITS 00003f48 004f48 00003c 00 AX 0 0 4 + [129] .text.SOR_CRC PROGBITS 00003f84 004f84 000016 00 AX 0 0 2 + [130] .text.Rs485_ASend PROGBITS 00003f9c 004f9c 000110 00 AX 0 0 4 + [131] .text.Rs485AskCyc PROGBITS 000040ac 0050ac 000104 00 AX 0 0 4 + [132] .text.Rs485AskCtr PROGBITS 000041b0 0051b0 00005c 00 AX 0 0 4 + [133] .text.Rs485AskRea PROGBITS 0000420c 00520c 00006c 00 AX 0 0 4 + [134] .text.Rs485_DevPo PROGBITS 00004278 005278 000018 00 AX 0 0 2 + [135] .text.Temp_Rec_An PROGBITS 00004290 005290 0001b8 00 AX 0 0 4 + [136] .text.Tem_Rs485_R PROGBITS 00004448 005448 0000c0 00 AX 0 0 4 + [137] .text.DIP_GetSwit PROGBITS 00004508 005508 000034 00 AX 0 0 4 + [138] .text.DIP_Switch_ PROGBITS 0000453c 00553c 00008c 00 AX 0 0 4 + [139] .text.DIP_ScanTas PROGBITS 000045c8 0055c8 000098 00 AX 0 0 4 + [140] .text.TK_Single_L PROGBITS 00004660 005660 000128 00 AX 0 0 4 + [141] .text.TK_Sampling PROGBITS 00004788 005788 0000cc 00 AX 0 0 4 + [142] .text.get_key_num PROGBITS 00004854 005854 000028 00 AX 0 0 4 + [143] .text.get_key_num PROGBITS 0000487c 00587c 000028 00 AX 0 0 4 + [144] .text.get_key_num PROGBITS 000048a4 0058a4 000028 00 AX 0 0 4 + [145] .text.get_key_num PROGBITS 000048cc 0058cc 000028 00 AX 0 0 4 + [146] .text.TK_Scan_Sta PROGBITS 000048f4 0058f4 000068 00 AX 0 0 4 + [147] .text.TK_Keymap_p PROGBITS 0000495c 00595c 000870 00 AX 0 0 4 + [148] .text.TK_overflow PROGBITS 000051cc 0061cc 000128 00 AX 0 0 4 + [149] .text.TK_Baseline PROGBITS 000052f4 0062f4 0004d0 00 AX 0 0 4 + [150] .text.TK_result_p PROGBITS 000057c4 0067c4 000130 00 AX 0 0 4 + [151] .text.TKEYIntHand PROGBITS 000058f4 0068f4 0000a0 00 AX 0 0 4 + [152] .text.CORETHandle PROGBITS 00005994 006994 00015c 00 AX 0 0 4 + [153] .text.std_clk_cal PROGBITS 00005af0 006af0 000284 00 AX 0 0 4 + [154] .RomCode PROGBITS 00005d74 0070a8 000000 00 W 0 0 1 + [155] .rodata PROGBITS 00005d74 006d74 000270 00 A 0 0 4 + [156] .data PROGBITS 20000000 007000 0000a8 00 WA 0 0 4 + [157] .bss NOBITS 200000a8 0070a8 00072c 00 WA 0 0 4 + [158] .csky.attributes CSKY_ATTRIBUTES 00000000 0070a8 000022 00 0 0 1 + [159] .comment PROGBITS 00000000 0070ca 000042 01 MS 0 0 1 + [160] .csky_stack_size PROGBITS 00000000 007110 0008ec 00 0 0 16 + [161] .debug_line PROGBITS 00000000 0079fc 0040fd 00 0 0 1 + [162] .debug_info PROGBITS 00000000 00baf9 031962 00 0 0 1 + [163] .debug_abbrev PROGBITS 00000000 03d45b 002ddc 00 0 0 1 + [164] .debug_aranges PROGBITS 00000000 040238 000cc8 00 0 0 8 + [165] .debug_ranges PROGBITS 00000000 040f00 000be0 00 0 0 1 + [166] .debug_str PROGBITS 00000000 041ae0 008bf0 01 MS 0 0 1 + [167] .debug_frame PROGBITS 00000000 04a6d0 001e50 00 0 0 4 + [168] .debug_loc PROGBITS 00000000 04c520 002822 00 0 0 1 + [169] .shstrtab STRTAB 00000000 0547ef 000e11 00 0 0 1 + [170] .symtab SYMTAB 00000000 04ed44 0043d0 10 171 727 4 + [171] .strtab STRTAB 00000000 053114 0016db 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 0x05fe4 0x05fe4 R E 0x1000 + LOAD 0x007000 0x20000000 0x00005fe4 0x000a8 0x007d4 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.EXI3_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.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.UART0_RecvINT_Processing .text.UART1_RecvINT_Processing .text.UART1_TASK .text.UART2_RecvINT_Processing .text.UART2_TASK .text.Controller485_SendData .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.TemCtrl_Init .text.Tem_Valve_Ctrl .text.DisPlay_Task .text.Ctrller_Query_AirState .text.Ctrller_Ctrl_AirState .text.TemCtrl_Pro .text.Ctrller_AirState_Processing .text.Ctrller_CtrlAirState_Processing .text.Ctrller_RecData_Processing .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.TKEYIntHandler .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/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.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/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_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.EXI3_Int_Enable) for EXI3_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.Controller485_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.Controller485_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.GPIOB0_EXI_Init) for GPIOB0_EXI_Init + Obj/SYSTEM_uart.o(.text.Controller485_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.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.Controller485_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.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + 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.Controller485_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 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.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.Controller485_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.Controller485_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/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_tempctrl_unit.o(.text.Ctrller_Query_AirState) refers to Obj/SYSTEM_uart.o(.text.Controller485_SendData) for Controller485_SendData + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Ctrl_AirState) refers to Obj/SYSTEM_uart.o(.text.Controller485_SendData) for Controller485_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_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + 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.EXI4to9IntHandler) 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_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) 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.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Query_AirState) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Ctrl_AirState) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tempctrl_unit.o(.text.DisPlay_Task) for DisPlay_Task + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Query_AirState) for Ctrller_Query_AirState + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Ctrl_AirState) for Ctrller_Ctrl_AirState + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_AirState_Processing) for Ctrller_AirState_Processing + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_CtrlAirState_Processing) for Ctrller_CtrlAirState_Processing + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/SYSTEM_tempctrl_unit.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_eeprom.o(.text.EEPROM_ReadParaInfo) 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_tempctrl_unit.o(.text.TemCtrl_Init) 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/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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) 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), (2901 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_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_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_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.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 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), (3095 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), (3412 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), (3157 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), (8020 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), (4125 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), (3528 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), (3644 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), (4844 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), (4952 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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .text.tk_parameter_init(Obj/FWlib_apt32f102_tkey_parameter.o), (304 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), (2850 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.GPIO_CONFIG(Obj/mcu_initial.o), (76 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (64 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 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), (56 bytes). + Removing .text.EEPROM_Validate_MCUDevInfo(Obj/SYSTEM_eeprom.o), (88 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_Function_Init(Obj/SYSTEM_Bootload_fun.o), (96 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), (92 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), (392 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), (264 bytes). + Removing .debug_info(Obj/SYSTEM_Bootload_fun.o), (12776 bytes). + Removing .debug_abbrev(Obj/SYSTEM_Bootload_fun.o), (794 bytes). + Removing .debug_loc(Obj/SYSTEM_Bootload_fun.o), (702 bytes). + Removing .debug_aranges(Obj/SYSTEM_Bootload_fun.o), (120 bytes). + Removing .debug_ranges(Obj/SYSTEM_Bootload_fun.o), (136 bytes). + Removing .debug_line(Obj/SYSTEM_Bootload_fun.o), (972 bytes). + Removing .debug_str(Obj/SYSTEM_Bootload_fun.o), (9886 bytes). + Removing .comment(Obj/SYSTEM_Bootload_fun.o), (67 bytes). + Removing .debug_frame(Obj/SYSTEM_Bootload_fun.o), (356 bytes). + Removing .csky.attributes(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing COMMON(Obj/SYSTEM_Bootload_fun.o), (572 bytes). + Removing .text(Obj/SYSTEM_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/SYSTEM_tempctrl_unit.o), (0 bytes). + Removing .text.Ctrller_Query_AirFun(Obj/SYSTEM_tempctrl_unit.o), (68 bytes). + Removing .text.Ctrller_AirFun_Processing(Obj/SYSTEM_tempctrl_unit.o), (8 bytes). + Removing .text(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .bss(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.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), (115 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_f_1_18.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_f_1_18.o), (16 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_f_1_18.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.tk_io_enable(FWlib_apt32f102_tkey_f_1_18.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_f_1_18.o), (336 bytes). + Removing .text.TK_Baseline_prog2(FWlib_apt32f102_tkey_f_1_18.o), (328 bytes). + Removing .text.tk_poweron_data_fineturn(FWlib_apt32f102_tkey_f_1_18.o), (292 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_f_1_18.o), (56 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_f_1_18.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_f_1_18.o), (28 bytes). + Removing .text.tk_freq_para_init(FWlib_apt32f102_tkey_f_1_18.o), (172 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_f_1_18.o), (272 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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). + +651 unused seciton(s) (total 212852 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_f_1_18.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_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart_protocol.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.EXI3_Int_Enable + $t 0x00001d60 0 .text.EXI3_Int_Enable + $d 0x00001d6c 0 .text.EXI3_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_DeInit + $t 0x00001ddc 0 .text.GPIO_DeInit + $d 0x00001e30 0 .text.GPIO_DeInit + $d 0x00001e40 0 .text.GPIO_Init + $t 0x00001e40 0 .text.GPIO_Init + $d 0x00001e52 0 .text.GPIO_Init + $t 0x00001e5a 0 .text.GPIO_Init + $d 0x00001eb6 0 .text.GPIO_Init + $t 0x00001ebe 0 .text.GPIO_Init + $d 0x00001f0c 0 .text.GPIO_Init + $d 0x00001f20 0 .text.GPIO_PullHigh_Init + $t 0x00001f20 0 .text.GPIO_PullHigh_Init + $d 0x00001f34 0 .text.GPIO_DriveStrength_EN + $t 0x00001f34 0 .text.GPIO_DriveStrength_EN + $d 0x00001f44 0 .text.GPIO_IntGroup_Set + $t 0x00001f44 0 .text.GPIO_IntGroup_Set + $d 0x00002038 0 .text.GPIO_IntGroup_Set + $d 0x00002050 0 .text.GPIOB0_EXI_Init + $t 0x00002050 0 .text.GPIOB0_EXI_Init + $d 0x0000205c 0 .text.GPIOB0_EXI_Init + $t 0x00002062 0 .text.GPIOB0_EXI_Init + $d 0x000020b8 0 .text.GPIOB0_EXI_Init + $d 0x000020bc 0 .text.GPIO_Write_High + $t 0x000020bc 0 .text.GPIO_Write_High + $d 0x000020c4 0 .text.GPIO_Write_Low + $t 0x000020c4 0 .text.GPIO_Write_Low + $d 0x000020cc 0 .text.GPIO_Reverse + $t 0x000020cc 0 .text.GPIO_Reverse + $d 0x000020e2 0 .text.GPIO_Read_Status + $t 0x000020e2 0 .text.GPIO_Read_Status + $d 0x000020f4 0 .text.LPT_Soft_Reset + $t 0x000020f4 0 .text.LPT_Soft_Reset + $d 0x00002104 0 .text.LPT_Soft_Reset + $d 0x00002108 0 .text.WWDT_CNT_Load + $t 0x00002108 0 .text.WWDT_CNT_Load + $d 0x00002114 0 .text.WWDT_CNT_Load + $d 0x00002118 0 .text.BT_DeInit + $t 0x00002118 0 .text.BT_DeInit + $d 0x00002134 0 .text.BT_Start + $t 0x00002134 0 .text.BT_Start + $d 0x0000213c 0 .text.BT_Soft_Reset + $t 0x0000213c 0 .text.BT_Soft_Reset + $d 0x00002146 0 .text.BT_Configure + $t 0x00002146 0 .text.BT_Configure + $d 0x0000215e 0 .text.BT_ControlSet_Configure + $t 0x0000215e 0 .text.BT_ControlSet_Configure + $d 0x0000218a 0 .text.BT_Period_CMP_Write + $t 0x0000218a 0 .text.BT_Period_CMP_Write + $d 0x00002190 0 .text.BT_ConfigInterrupt_CMD + $t 0x00002190 0 .text.BT_ConfigInterrupt_CMD + $d 0x000021a4 0 .text.BT1_INT_ENABLE + $t 0x000021a4 0 .text.BT1_INT_ENABLE + $d 0x000021b0 0 .text.BT1_INT_ENABLE + $d 0x000021b4 0 .text.UART0_DeInit + $t 0x000021b4 0 .text.UART0_DeInit + $d 0x000021c8 0 .text.UART0_DeInit + $d 0x000021cc 0 .text.UART1_DeInit + $t 0x000021cc 0 .text.UART1_DeInit + $d 0x000021e0 0 .text.UART1_DeInit + $d 0x000021e4 0 .text.UART2_DeInit + $t 0x000021e4 0 .text.UART2_DeInit + $d 0x000021f8 0 .text.UART2_DeInit + $d 0x000021fc 0 .text.UART1_Int_Enable + $t 0x000021fc 0 .text.UART1_Int_Enable + $d 0x00002210 0 .text.UART1_Int_Enable + $d 0x00002218 0 .text.UART2_Int_Enable + $t 0x00002218 0 .text.UART2_Int_Enable + $d 0x0000222c 0 .text.UART2_Int_Enable + $d 0x00002234 0 .text.UART_IO_Init + $t 0x00002234 0 .text.UART_IO_Init + $d 0x00002318 0 .text.UART_IO_Init + $d 0x00002320 0 .text.UARTInitRxTxIntEn + $t 0x00002320 0 .text.UARTInitRxTxIntEn + $d 0x0000232c 0 .text.UARTInitRxTxIntEn + $d 0x00002330 0 .text.UARTTransmit + $t 0x00002330 0 .text.UARTTransmit + $d 0x00002350 0 .text.EPT_Stop + $t 0x00002350 0 .text.EPT_Stop + $d 0x00002370 0 .text.EPT_Stop + $d 0x00002378 0 .text.Page_ProgramData + $t 0x00002378 0 .text.Page_ProgramData + $d 0x00002410 0 .text.Page_ProgramData + $d 0x00002418 0 .text.ReadDataArry_U8 + $t 0x00002418 0 .text.ReadDataArry_U8 + $d 0x00002444 0 .text.startup.main + $t 0x00002444 0 .text.startup.main + $d 0x00002474 0 .text.startup.main + $d 0x0000247c 0 .text.delay_nms + $t 0x0000247c 0 .text.delay_nms + $d 0x000024a8 0 .text.delay_nus + $t 0x000024a8 0 .text.delay_nus + $d 0x000024cc 0 .text.BT_CONFIG + $t 0x000024cc 0 .text.BT_CONFIG + $d 0x00002524 0 .text.BT_CONFIG + $d 0x0000252c 0 .text.SYSCON_CONFIG + $t 0x0000252c 0 .text.SYSCON_CONFIG + $d 0x00002590 0 .text.APT32F102_init + $t 0x00002590 0 .text.APT32F102_init + $d 0x0000260c 0 .text.APT32F102_init + $d 0x00002624 0 .text.SYSCONIntHandler + $t 0x00002624 0 .text.SYSCONIntHandler + $d 0x00002710 0 .text.SYSCONIntHandler + $d 0x00002714 0 .text.IFCIntHandler + $t 0x00002714 0 .text.IFCIntHandler + $d 0x00002778 0 .text.IFCIntHandler + $d 0x0000277c 0 .text.ADCIntHandler + $t 0x0000277c 0 .text.ADCIntHandler + $d 0x000027e0 0 .text.ADCIntHandler + $d 0x000027e4 0 .text.EPT0IntHandler + $t 0x000027e4 0 .text.EPT0IntHandler + $d 0x00002984 0 .text.EPT0IntHandler + $d 0x00002990 0 .text.WWDTHandler + $t 0x00002990 0 .text.WWDTHandler + $d 0x000029c0 0 .text.WWDTHandler + $d 0x000029c4 0 .text.GPT0IntHandler + $t 0x000029c4 0 .text.GPT0IntHandler + $d 0x00002a40 0 .text.GPT0IntHandler + $d 0x00002a44 0 .text.RTCIntHandler + $t 0x00002a44 0 .text.RTCIntHandler + $d 0x00002aac 0 .text.RTCIntHandler + $d 0x00002ab4 0 .text.UART0IntHandler + $t 0x00002ab4 0 .text.UART0IntHandler + $d 0x00002b10 0 .text.UART0IntHandler + $d 0x00002b14 0 .text.UART1IntHandler + $t 0x00002b14 0 .text.UART1IntHandler + $d 0x00002b94 0 .text.UART1IntHandler + $d 0x00002ba8 0 .text.UART2IntHandler + $t 0x00002ba8 0 .text.UART2IntHandler + $d 0x00002c28 0 .text.UART2IntHandler + $d 0x00002c3c 0 .text.SPI0IntHandler + $t 0x00002c3c 0 .text.SPI0IntHandler + $d 0x00002d20 0 .text.SPI0IntHandler + $d 0x00002d24 0 .text.SIO0IntHandler + $t 0x00002d24 0 .text.SIO0IntHandler + $d 0x00002d74 0 .text.SIO0IntHandler + $d 0x00002d78 0 .text.EXI0IntHandler + $t 0x00002d78 0 .text.EXI0IntHandler + $d 0x00002da4 0 .text.EXI0IntHandler + $d 0x00002da8 0 .text.EXI1IntHandler + $t 0x00002da8 0 .text.EXI1IntHandler + $d 0x00002dd4 0 .text.EXI1IntHandler + $d 0x00002dd8 0 .text.EXI2to3IntHandler + $t 0x00002dd8 0 .text.EXI2to3IntHandler + $d 0x00002e1c 0 .text.EXI2to3IntHandler + $d 0x00002e20 0 .text.EXI4to9IntHandler + $t 0x00002e20 0 .text.EXI4to9IntHandler + $d 0x00002e88 0 .text.EXI4to9IntHandler + $d 0x00002e8c 0 .text.EXI10to15IntHandler + $t 0x00002e8c 0 .text.EXI10to15IntHandler + $d 0x00002ee8 0 .text.EXI10to15IntHandler + $d 0x00002eec 0 .text.LPTIntHandler + $t 0x00002eec 0 .text.LPTIntHandler + $d 0x00002f1c 0 .text.LPTIntHandler + $d 0x00002f20 0 .text.BT0IntHandler + $t 0x00002f20 0 .text.BT0IntHandler + $d 0x00002f68 0 .text.BT0IntHandler + $d 0x00002f6c 0 .text.BT1IntHandler + $t 0x00002f6c 0 .text.BT1IntHandler + $d 0x00002fd4 0 .text.BT1IntHandler + $d 0x00002fdc 0 .text.PriviledgeVioHandler + $t 0x00002fdc 0 .text.PriviledgeVioHandler + $d 0x00002fde 0 .text.PendTrapHandler + $t 0x00002fde 0 .text.PendTrapHandler + $d 0x00002fe6 0 .text.Trap3Handler + $t 0x00002fe6 0 .text.Trap3Handler + $d 0x00002fee 0 .text.Trap2Handler + $t 0x00002fee 0 .text.Trap2Handler + $d 0x00002ff6 0 .text.Trap1Handler + $t 0x00002ff6 0 .text.Trap1Handler + $d 0x00002ffe 0 .text.Trap0Handler + $t 0x00002ffe 0 .text.Trap0Handler + $d 0x00003006 0 .text.UnrecExecpHandler + $t 0x00003006 0 .text.UnrecExecpHandler + $d 0x0000300e 0 .text.BreakPointHandler + $t 0x0000300e 0 .text.BreakPointHandler + $d 0x00003016 0 .text.AccessErrHandler + $t 0x00003016 0 .text.AccessErrHandler + $d 0x0000301e 0 .text.IllegalInstrHandler + $t 0x0000301e 0 .text.IllegalInstrHandler + $d 0x00003026 0 .text.MisalignedHandler + $t 0x00003026 0 .text.MisalignedHandler + $d 0x0000302e 0 .text.CNTAIntHandler + $t 0x0000302e 0 .text.CNTAIntHandler + $d 0x00003036 0 .text.I2CIntHandler + $t 0x00003036 0 .text.I2CIntHandler + $d 0x00003040 0 .text.__divsi3 + $t 0x00003040 0 .text.__divsi3 + $d 0x00003060 0 .text.__divsi3 + $d 0x00003064 0 .text.__udivsi3 + $t 0x00003064 0 .text.__udivsi3 + $d 0x00003084 0 .text.__udivsi3 + $d 0x00003088 0 .text.__umodsi3 + $t 0x00003088 0 .text.__umodsi3 + $d 0x000030a8 0 .text.__umodsi3 + $d 0x000030ac 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000030ac 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000030b2 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000030b2 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000030b8 0 .text.UARTx_Init + $t 0x000030b8 0 .text.UARTx_Init + $d 0x000031dc 0 .text.UARTx_Init + $d 0x00003210 0 .text.UART0_RecvINT_Processing + $t 0x00003210 0 .text.UART0_RecvINT_Processing + $d 0x0000323c 0 .text.UART0_RecvINT_Processing + $d 0x00003248 0 .text.UART1_RecvINT_Processing + $t 0x00003248 0 .text.UART1_RecvINT_Processing + $d 0x00003274 0 .text.UART1_RecvINT_Processing + $d 0x00003280 0 .text.UART1_TASK + $t 0x00003280 0 .text.UART1_TASK + $d 0x000032d4 0 .text.UART1_TASK + $d 0x000032ec 0 .text.UART2_RecvINT_Processing + $t 0x000032ec 0 .text.UART2_RecvINT_Processing + $d 0x00003324 0 .text.UART2_RecvINT_Processing + $d 0x00003330 0 .text.UART2_TASK + $t 0x00003330 0 .text.UART2_TASK + $d 0x00003390 0 .text.UART2_TASK + $d 0x000033a8 0 .text.Controller485_SendData + $t 0x000033a8 0 .text.Controller485_SendData + $d 0x00003440 0 .text.Controller485_SendData + $d 0x00003450 0 .text.BUS485_Send + $t 0x00003450 0 .text.BUS485_Send + $d 0x000034fc 0 .text.BUS485_Send + $d 0x00003514 0 .text.MultSend_Task + $t 0x00003514 0 .text.MultSend_Task + $d 0x00003580 0 .text.MultSend_Task + $d 0x00003588 0 .text.Set_GroupSend + $t 0x00003588 0 .text.Set_GroupSend + $d 0x000035e4 0 .text.Set_GroupSend + $d 0x000035ec 0 .text.Clear_SendFlag + $t 0x000035ec 0 .text.Clear_SendFlag + $d 0x000035f8 0 .text.Clear_SendFlag + $d 0x000035fc 0 .text.BUS485Send_Task + $t 0x000035fc 0 .text.BUS485Send_Task + $d 0x00003624 0 .text.BUS485Send_Task + $d 0x00003630 0 .text.BusIdle_Task + $t 0x00003630 0 .text.BusIdle_Task + $d 0x00003668 0 .text.BusIdle_Task + $d 0x00003670 0 .text.BusBusy_Task + $t 0x00003670 0 .text.BusBusy_Task + $d 0x000036c0 0 .text.BusBusy_Task + $d 0x000036cc 0 .text.Dbg_Println + $t 0x000036cc 0 .text.Dbg_Println + $d 0x000036d8 0 .text.EEPROM_CheckSum + $t 0x000036d8 0 .text.EEPROM_CheckSum + $d 0x000036f0 0 .text.EEPROM_ReadParaInfo + $t 0x000036f0 0 .text.EEPROM_ReadParaInfo + $d 0x0000375c 0 .text.EEPROM_ReadParaInfo + $d 0x00003764 0 .text.EEPROM_WriteParaInfo + $t 0x00003764 0 .text.EEPROM_WriteParaInfo + $d 0x000037a4 0 .text.EEPROM_WriteParaInfo + $d 0x000037a8 0 .text.EEPROM_Validate_ParaInfo + $t 0x000037a8 0 .text.EEPROM_Validate_ParaInfo + $d 0x000037d4 0 .text.EEPROM_Validate_ParaInfo + $d 0x000037d8 0 .text.EEPROM_Default_ParaInfo + $t 0x000037d8 0 .text.EEPROM_Default_ParaInfo + $d 0x000037f8 0 .text.EEPROM_Init + $t 0x000037f8 0 .text.EEPROM_Init + $d 0x00003840 0 .text.EEPROM_Init + $d 0x0000384c 0 .text.TemCtrl_Init + $t 0x0000384c 0 .text.TemCtrl_Init + $d 0x00003994 0 .text.TemCtrl_Init + $d 0x000039a8 0 .text.Tem_Valve_Ctrl + $t 0x000039a8 0 .text.Tem_Valve_Ctrl + $d 0x00003a04 0 .text.Tem_Valve_Ctrl + $d 0x00003a08 0 .text.DisPlay_Task + $t 0x00003a08 0 .text.DisPlay_Task + $d 0x00003b78 0 .text.DisPlay_Task + $d 0x00003b9c 0 .text.Ctrller_Query_AirState + $t 0x00003b9c 0 .text.Ctrller_Query_AirState + $d 0x00003bdc 0 .text.Ctrller_Query_AirState + $d 0x00003be0 0 .text.Ctrller_Ctrl_AirState + $t 0x00003be0 0 .text.Ctrller_Ctrl_AirState + $d 0x00003c7c 0 .text.Ctrller_Ctrl_AirState + $d 0x00003c84 0 .text.TemCtrl_Pro + $t 0x00003c84 0 .text.TemCtrl_Pro + $d 0x00003d3c 0 .text.TemCtrl_Pro + $d 0x00003d50 0 .text.Ctrller_AirState_Processing + $t 0x00003d50 0 .text.Ctrller_AirState_Processing + $d 0x00003e20 0 .text.Ctrller_AirState_Processing + $d 0x00003e24 0 .text.Ctrller_CtrlAirState_Processing + $t 0x00003e24 0 .text.Ctrller_CtrlAirState_Processing + $d 0x00003e40 0 .text.Ctrller_CtrlAirState_Processing + $d 0x00003e44 0 .text.Ctrller_RecData_Processing + $t 0x00003e44 0 .text.Ctrller_RecData_Processing + $d 0x00003ee8 0 .text.Ctrller_RecData_Processing + $d 0x00003efc 0 .text.NetCRC16_Check + $t 0x00003efc 0 .text.NetCRC16_Check + $d 0x00003f40 0 .text.NetCRC16_Check + $d 0x00003f48 0 .text.GetCRC16 + $t 0x00003f48 0 .text.GetCRC16 + $d 0x00003f7c 0 .text.GetCRC16 + $d 0x00003f84 0 .text.SOR_CRC + $t 0x00003f84 0 .text.SOR_CRC + $d 0x00003f9c 0 .text.Rs485_ASend + $t 0x00003f9c 0 .text.Rs485_ASend + $d 0x0000401c 0 .text.Rs485_ASend + $t 0x00004020 0 .text.Rs485_ASend + $d 0x000040a0 0 .text.Rs485_ASend + $d 0x000040ac 0 .text.Rs485AskCycleSend + $t 0x000040ac 0 .text.Rs485AskCycleSend + $d 0x00004122 0 .text.Rs485AskCycleSend + $t 0x00004126 0 .text.Rs485AskCycleSend + $d 0x000041a8 0 .text.Rs485AskCycleSend + $d 0x000041b0 0 .text.Rs485AskCtrlSend + $t 0x000041b0 0 .text.Rs485AskCtrlSend + $d 0x00004208 0 .text.Rs485AskCtrlSend + $d 0x0000420c 0 .text.Rs485AskReadSend + $t 0x0000420c 0 .text.Rs485AskReadSend + $d 0x00004270 0 .text.Rs485AskReadSend + $d 0x00004278 0 .text.Rs485_DevPort_ACK + $t 0x00004278 0 .text.Rs485_DevPort_ACK + $d 0x00004290 0 .text.Temp_Rec_Analysis + $t 0x00004290 0 .text.Temp_Rec_Analysis + $d 0x000042f8 0 .text.Temp_Rec_Analysis + $t 0x0000430a 0 .text.Temp_Rec_Analysis + $d 0x00004324 0 .text.Temp_Rec_Analysis + $t 0x00004328 0 .text.Temp_Rec_Analysis + $d 0x00004418 0 .text.Temp_Rec_Analysis + $t 0x0000441c 0 .text.Temp_Rec_Analysis + $d 0x00004438 0 .text.Temp_Rec_Analysis + $d 0x00004448 0 .text.Tem_Rs485_Rec_Pro + $t 0x00004448 0 .text.Tem_Rs485_Rec_Pro + $d 0x000044f8 0 .text.Tem_Rs485_Rec_Pro + $d 0x00004508 0 .text.DIP_GetSwitchState + $t 0x00004508 0 .text.DIP_GetSwitchState + $d 0x00004538 0 .text.DIP_GetSwitchState + $d 0x0000453c 0 .text.DIP_Switch_Init + $t 0x0000453c 0 .text.DIP_Switch_Init + $d 0x000045bc 0 .text.DIP_Switch_Init + $d 0x000045c8 0 .text.DIP_ScanTask + $t 0x000045c8 0 .text.DIP_ScanTask + $d 0x00004650 0 .text.DIP_ScanTask + $d 0x00004660 0 .text.TK_Single_Longpress_prg + $t 0x00004660 0 .text.TK_Single_Longpress_prg + $d 0x00004754 0 .text.TK_Single_Longpress_prg + $d 0x00004788 0 .text.TK_Sampling_prog + $t 0x00004788 0 .text.TK_Sampling_prog + $d 0x00004830 0 .text.TK_Sampling_prog + $d 0x00004854 0 .text.get_key_number + $t 0x00004854 0 .text.get_key_number + $d 0x00004878 0 .text.get_key_number + $d 0x0000487c 0 .text.get_key_number0 + $t 0x0000487c 0 .text.get_key_number0 + $d 0x000048a0 0 .text.get_key_number0 + $d 0x000048a4 0 .text.get_key_number1 + $t 0x000048a4 0 .text.get_key_number1 + $d 0x000048c8 0 .text.get_key_number1 + $d 0x000048cc 0 .text.get_key_number2 + $t 0x000048cc 0 .text.get_key_number2 + $d 0x000048f0 0 .text.get_key_number2 + $d 0x000048f4 0 .text.TK_Scan_Start + $t 0x000048f4 0 .text.TK_Scan_Start + $d 0x00004940 0 .text.TK_Scan_Start + $d 0x0000495c 0 .text.TK_Keymap_prog + $t 0x0000495c 0 .text.TK_Keymap_prog + $d 0x00004c98 0 .text.TK_Keymap_prog + $t 0x00004d1c 0 .text.TK_Keymap_prog + $d 0x00005078 0 .text.TK_Keymap_prog + $t 0x000050bc 0 .text.TK_Keymap_prog + $d 0x000051b8 0 .text.TK_Keymap_prog + $d 0x000051cc 0 .text.TK_overflow_predict + $t 0x000051cc 0 .text.TK_overflow_predict + $d 0x000052c0 0 .text.TK_overflow_predict + $d 0x000052f4 0 .text.TK_Baseline_tracking + $t 0x000052f4 0 .text.TK_Baseline_tracking + $d 0x0000564c 0 .text.TK_Baseline_tracking + $t 0x000056a8 0 .text.TK_Baseline_tracking + $d 0x000057b4 0 .text.TK_Baseline_tracking + $d 0x000057c4 0 .text.TK_result_prog + $t 0x000057c4 0 .text.TK_result_prog + $d 0x000058c4 0 .text.TK_result_prog + $d 0x000058f4 0 .text.TKEYIntHandler + $t 0x000058f4 0 .text.TKEYIntHandler + $d 0x00005984 0 .text.TKEYIntHandler + $d 0x00005994 0 .text.CORETHandler + $t 0x00005994 0 .text.CORETHandler + $d 0x00005abc 0 .text.CORETHandler + $d 0x00005af0 0 .text.std_clk_calib + $t 0x00005af0 0 .text.std_clk_calib + $d 0x00005d38 0 .text.std_clk_calib + bp 0x00005d74 O 16 .rodata + dp_l 0x00005d84 O 16 .rodata + dp_h 0x00005d94 O 16 .rodata + NUM.6207 0x200000b0 O 1 .bss + OpenDisPlay_Flag.6114 0x20000144 O 1 .bss + TemCtrl_tick.6118 0x20000148 O 4 .bss + update_20ms.6113 0x2000014c 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 + EXI3_Int_Enable 0x00001d60 F 16 .text.EXI3_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_DeInit 0x00001ddc F 100 .text.GPIO_DeInit + GPIO_Init 0x00001e40 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f20 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f34 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f44 F 268 .text.GPIO_IntGroup_Set + GPIOB0_EXI_Init 0x00002050 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x000020bc F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000020c4 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000020cc F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000020e2 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000020f4 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002108 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002118 F 28 .text.BT_DeInit + BT_Start 0x00002134 F 8 .text.BT_Start + BT_Soft_Reset 0x0000213c F 10 .text.BT_Soft_Reset + BT_Configure 0x00002146 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000215e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000218a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00002190 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x000021a4 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x000021b4 F 24 .text.UART0_DeInit + UART1_DeInit 0x000021cc F 24 .text.UART1_DeInit + UART2_DeInit 0x000021e4 F 24 .text.UART2_DeInit + UART1_Int_Enable 0x000021fc F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00002218 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002234 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00002320 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002330 F 30 .text.UARTTransmit + EPT_Stop 0x00002350 F 40 .text.EPT_Stop + Page_ProgramData 0x00002378 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002418 F 42 .text.ReadDataArry_U8 + main 0x00002444 F 56 .text.startup.main + delay_nms 0x0000247c F 44 .text.delay_nms + delay_nus 0x000024a8 F 34 .text.delay_nus + BT_CONFIG 0x000024cc F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x0000252c F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002590 F 148 .text.APT32F102_init + SYSCONIntHandler 0x00002624 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002714 F 104 .text.IFCIntHandler + ADCIntHandler 0x0000277c F 104 .text.ADCIntHandler + EPT0IntHandler 0x000027e4 F 428 .text.EPT0IntHandler + WWDTHandler 0x00002990 F 52 .text.WWDTHandler + GPT0IntHandler 0x000029c4 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00002a44 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002ab4 F 96 .text.UART0IntHandler + UART1IntHandler 0x00002b14 F 148 .text.UART1IntHandler + UART2IntHandler 0x00002ba8 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00002c3c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002d24 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002d78 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002da8 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002dd8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002e20 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002e8c F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00002eec F 52 .text.LPTIntHandler + BT0IntHandler 0x00002f20 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002f6c F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00002fdc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00002fde F 8 .text.PendTrapHandler + Trap3Handler 0x00002fe6 F 8 .text.Trap3Handler + Trap2Handler 0x00002fee F 8 .text.Trap2Handler + Trap1Handler 0x00002ff6 F 8 .text.Trap1Handler + Trap0Handler 0x00002ffe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003006 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000300e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003016 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000301e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003026 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000302e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003036 F 8 .text.I2CIntHandler + __divsi3 0x00003040 F 36 .text.__divsi3 + __udivsi3 0x00003064 F 36 .text.__udivsi3 + __umodsi3 0x00003088 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000030ac F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000030b2 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000030b8 F 344 .text.UARTx_Init + UART0_RecvINT_Processing 0x00003210 F 56 .text.UART0_RecvINT_Processing + UART1_RecvINT_Processing 0x00003248 F 56 .text.UART1_RecvINT_Processing + UART1_TASK 0x00003280 F 108 .text.UART1_TASK + UART2_RecvINT_Processing 0x000032ec F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003330 F 120 .text.UART2_TASK + Controller485_SendData 0x000033a8 F 168 .text.Controller485_SendData + BUS485_Send 0x00003450 F 196 .text.BUS485_Send + MultSend_Task 0x00003514 F 116 .text.MultSend_Task + Set_GroupSend 0x00003588 F 100 .text.Set_GroupSend + Clear_SendFlag 0x000035ec F 16 .text.Clear_SendFlag + BUS485Send_Task 0x000035fc F 52 .text.BUS485Send_Task + BusIdle_Task 0x00003630 F 64 .text.BusIdle_Task + BusBusy_Task 0x00003670 F 92 .text.BusBusy_Task + Dbg_Println 0x000036cc F 12 .text.Dbg_Println + EEPROM_CheckSum 0x000036d8 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x000036f0 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00003764 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x000037a8 F 48 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x000037d8 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x000037f8 F 84 .text.EEPROM_Init + TemCtrl_Init 0x0000384c F 348 .text.TemCtrl_Init + Tem_Valve_Ctrl 0x000039a8 F 96 .text.Tem_Valve_Ctrl + DisPlay_Task 0x00003a08 F 404 .text.DisPlay_Task + Ctrller_Query_AirState 0x00003b9c F 68 .text.Ctrller_Query_AirState + Ctrller_Ctrl_AirState 0x00003be0 F 164 .text.Ctrller_Ctrl_AirState + TemCtrl_Pro 0x00003c84 F 204 .text.TemCtrl_Pro + Ctrller_AirState_Processing 0x00003d50 F 212 .text.Ctrller_AirState_Processing + Ctrller_CtrlAirState_Processing 0x00003e24 F 32 .text.Ctrller_CtrlAirState_Processing + Ctrller_RecData_Processing 0x00003e44 F 184 .text.Ctrller_RecData_Processing + NetCRC16_Check 0x00003efc F 76 .text.NetCRC16_Check + GetCRC16 0x00003f48 F 60 .text.GetCRC16 + SOR_CRC 0x00003f84 F 22 .text.SOR_CRC + Rs485_ASend 0x00003f9c F 272 .text.Rs485_ASend + Rs485AskCycleSend 0x000040ac F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x000041b0 F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x0000420c F 108 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x00004278 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x00004290 F 440 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00004448 F 192 .text.Tem_Rs485_Rec_Pro + DIP_GetSwitchState 0x00004508 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x0000453c F 140 .text.DIP_Switch_Init + DIP_ScanTask 0x000045c8 F 152 .text.DIP_ScanTask + TK_Single_Longpress_prg 0x00004660 F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x00004788 F 204 .text.TK_Sampling_prog + get_key_number 0x00004854 F 40 .text.get_key_number + get_key_number0 0x0000487c F 40 .text.get_key_number0 + get_key_number1 0x000048a4 F 40 .text.get_key_number1 + get_key_number2 0x000048cc F 40 .text.get_key_number2 + TK_Scan_Start 0x000048f4 F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x0000495c F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x000051cc F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x000052f4 F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x000057c4 F 304 .text.TK_result_prog + TKEYIntHandler 0x000058f4 F 160 .text.TKEYIntHandler + CORETHandler 0x00005994 F 348 .text.CORETHandler + std_clk_calib 0x00005af0 F 644 .text.std_clk_calib + __thenan_df 0x00005da4 O 20 .rodata + __clz_tab 0x00005db8 O 256 .rodata + _end_rodata 0x00005fe4 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 1 .data + samp_setover_f 0x20000069 O 1 .data + scan_step_temp 0x2000006a O 1 .data + SigleTK_longpress_time 0x2000006c O 2 .data + tk_dataturn_en 0x2000006e O 1 .data + tk_overflow_en 0x2000006f O 1 .data + tk_div 0x20000070 O 34 .data + neg_build_bounce 0x20000092 O 1 .data + pos_build_bounce 0x20000093 O 1 .data + Valid_SingleKey_Num 0x20000094 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + tk_scan_para1 0x2000009c O 4 .data + tk_scan_para2 0x200000a0 O 4 .data + TkeyRebaseTime 0x200000a4 O 1 .data + _end_data 0x200000a8 0 .data + Sav_Temp 0x200000a8 O 4 .bss + _bss_start 0x200000a8 0 .bss + Sys_RSR 0x200000ac O 4 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + DealBuffer 0x200000bc O 100 .bss + DealLen 0x20000120 O 2 .bss + RS485_Comming 0x20000124 O 4 .bss + RS485_Comm_Flag 0x20000128 O 4 .bss + RS485_Comm_Start 0x2000012c O 4 .bss + RS485_Comm_End 0x20000130 O 4 .bss + RS485_Comming1 0x20000134 O 4 .bss + RS485_Comm_Flag1 0x20000138 O 4 .bss + RS485_Comm_Start1 0x2000013c O 4 .bss + RS485_Comm_End1 0x20000140 O 4 .bss + keymap_strict_mode 0x20000150 O 1 .bss + Press_debounce_data 0x20000154 O 1 .bss + TK_Lowpower_mode 0x20000155 O 1 .bss + TK_Lowpower_level 0x20000156 O 1 .bss + TK_longpress_time 0x20000158 O 4 .bss + Release_debounce_data 0x2000015c O 1 .bss + Key_mode 0x2000015d O 1 .bss + TK_icon 0x2000015e O 34 .bss + MultiTimes_Filter 0x20000180 O 1 .bss + Base_Speed 0x20000181 O 1 .bss + TK_IO_ENABLE 0x20000184 O 4 .bss + Valid_Key_Num 0x20000188 O 1 .bss + TK_senprd 0x2000018a O 34 .bss + TK_Wakeup_level 0x200001ac O 1 .bss + TK_Triggerlevel 0x200001ae O 34 .bss + TK_EC_LEVEL 0x200001d0 O 2 .bss + TK_FVR_LEVEL 0x200001d2 O 2 .bss + TK_BaseCnt 0x200001d4 O 4 .bss + TK_PSEL_MODE 0x200001d8 O 2 .bss + R_CMPB_BUF 0x200001dc O 4 .bss + R_CMPA_BUF 0x200001e0 O 4 .bss + R_SIORX_buf 0x200001e4 O 40 .bss + g_uart 0x2000020c O 348 .bss + m_send 0x20000368 O 136 .bss + g_eeprom 0x200003f0 O 8 .bss + g_mcu_dev 0x200003f8 O 37 .bss + TempCtrl 0x20000420 O 40 .bss + g_Dip 0x20000448 O 16 .bss + Tk_press_time_cnt4 0x20000458 O 4 .bss + baseline_data0 0x2000045c O 34 .bss + TK_Postive_build2 0x2000047e O 17 .bss + Key_Map1 0x20000490 O 4 .bss + Valid_Key_Num_CNT 0x20000494 O 3 .bss + offset_data2_abs 0x20000498 O 34 .bss + time_cnt0 0x200004bc O 4 .bss + offset0_max_tempB 0x200004c0 O 2 .bss + scan_f 0x200004c2 O 1 .bss + offset_data1_abs 0x200004c4 O 34 .bss + TK_Slider1_Value 0x200004e6 O 1 .bss + TK_Wheel_Value 0x200004e7 O 1 .bss + Release_debounce0 0x200004e8 O 17 .bss + Key_Map0 0x200004fc O 4 .bss + Tk_press_time_cnt2 0x20000500 O 4 .bss + TK_Slider0_Seq 0x20000504 O 4 .bss + bsae_over_f 0x20000508 O 1 .bss + Press_debounce0 0x20000509 O 17 .bss + Valid_key_f 0x2000051a O 1 .bss + offset_data0 0x2000051c O 34 .bss + offset2_max_tempA 0x2000053e O 2 .bss + TK_Scan_Freq1 0x20000540 O 4 .bss + sampling_data1 0x20000544 O 34 .bss + TK_Slider1_Level 0x20000566 O 1 .bss + TK_Slider1_Function 0x20000567 O 1 .bss + base_update_fs 0x20000568 O 3 .bss + TK_Slider0_Function 0x2000056b O 1 .bss + Tk_press_time_cnt3 0x2000056c O 4 .bss + TK_Scan_Freq2 0x20000570 O 4 .bss + Key_Map2 0x20000574 O 4 .bss + Release_debounce1 0x20000578 O 17 .bss + tk_overflow_f 0x20000589 O 1 .bss + time_cnt2 0x2000058c O 4 .bss + TK_Negtive_build2 0x20000590 O 17 .bss + base_update_f 0x200005a1 O 1 .bss + TK_Postive_build1 0x200005a2 O 17 .bss + offset_max_data 0x200005b4 O 64 .bss + time_cnt 0x200005f4 O 4 .bss + lpt_scan_pend_cnt 0x200005f8 O 2 .bss + TK_track_cnt 0x200005fa O 1 .bss + Key_Map 0x200005fc O 4 .bss + Key_Map2_temp 0x20000600 O 4 .bss + offset2_max_tempB 0x20000604 O 2 .bss + baseline_data1 0x20000606 O 34 .bss + TK_Postive_build0 0x20000628 O 17 .bss + sampling_data2 0x2000063a O 34 .bss + offset_data1 0x2000065c O 34 .bss + TK_ovrdect_cnt 0x2000067e O 1 .bss + TK_Slider0_Level 0x2000067f O 1 .bss + time_cnt1 0x20000680 O 4 .bss + Press_debounce2 0x20000684 O 17 .bss + Tk_press_time_cnt0 0x20000698 O 4 .bss + Key_Map0_temp 0x2000069c O 4 .bss + TK_Negtive_build1 0x200006a0 O 17 .bss + coret_spread_step 0x200006b1 O 1 .bss + time_cnts 0x200006b2 O 3 .bss + offset0_max_tempA 0x200006b6 O 2 .bss + tk_num 0x200006b8 O 1 .bss + TK_Slider1_Seq 0x200006b9 O 4 .bss + offset1_max_tempB 0x200006be O 2 .bss + TK_Negtive_build0 0x200006c0 O 17 .bss + R_Debounce_temp2 0x200006d4 O 4 .bss + Tk_press_time_cnt1 0x200006d8 O 4 .bss + Press_debounce1 0x200006dc O 17 .bss + TK_Wheel_Seq 0x200006ed O 4 .bss + TK_Slider0_Value 0x200006f1 O 1 .bss + Release_debounce2 0x200006f2 O 17 .bss + r_Key_Map_Temp 0x20000704 O 4 .bss + tk_seque 0x20000708 O 17 .bss + scan_step 0x20000719 O 1 .bss + TK_Wheel_Level 0x2000071a O 1 .bss + baseline_data2 0x2000071c O 34 .bss + tk_sampling_max 0x2000073e O 34 .bss + Key_Map1_temp 0x20000760 O 4 .bss + coret_spread_cnt 0x20000764 O 2 .bss + offset_data0_abs 0x20000766 O 34 .bss + offset_data2 0x20000788 O 34 .bss + TK_Wheel_Function 0x200007aa O 1 .bss + offset1_max_tempA 0x200007ac O 2 .bss + sampling_data0 0x200007ae O 34 .bss + TK_Scan_Freq0 0x200007d0 O 4 .bss + _ebss 0x200007d4 0 .bss + _end 0x200007d4 0 .bss + end 0x200007d4 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: 0x00005fe4, 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 1081 .text pow.o + 0x00000b5e 0x00000006 Code RO 1089 .text fabs.o + 0x00000b64 0x00000020 Code RO 1095 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1102 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1113 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1118 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1125 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1132 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1139 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1146 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1153 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1160 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1167 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1174 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1188 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1195 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1202 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1208 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1215 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1222 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1243 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1248 .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 89 .text.EXI3_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 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00001e40 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f20 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f34 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f44 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002050 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000020bc 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000020c4 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000020cc 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000020e2 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000020f4 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002108 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002118 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002134 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x0000213c 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002146 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000215e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000218a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00002190 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x000021a4 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x000021b4 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021cc 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021e4 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021fc 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002218 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002234 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002320 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002330 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002350 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002378 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002418 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002444 0x00000038 Code RO 705 .text.startup.main Obj/main.o + 0x0000247c 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x000024a8 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x000024cc 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x0000252c 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002590 0x00000094 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002624 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002714 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x0000277c 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x000027e4 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00002990 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000029c4 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00002a44 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002ab4 0x00000060 Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002b14 0x00000094 Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002ba8 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002c3c 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002d24 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002d78 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002da8 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002dd8 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002e20 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002e8c 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002eec 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002f20 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002f6c 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00002fdc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00002fde 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00002fe6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00002fee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00002ff6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00002ffe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003006 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000300e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003016 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000301e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003026 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000302e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003036 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003040 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003064 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003088 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000030ac 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000030b2 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000030b8 0x00000158 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003210 0x00000038 Code RO 835 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003248 0x00000038 Code RO 837 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003280 0x0000006c Code RO 838 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x000032ec 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003330 0x00000078 Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000033a8 0x000000a8 Code RO 843 .text.Controller485_SendData Obj/SYSTEM_uart.o + 0x00003450 0x000000c4 Code RO 844 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003514 0x00000074 Code RO 845 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003588 0x00000064 Code RO 846 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x000035ec 0x00000010 Code RO 847 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x000035fc 0x00000034 Code RO 849 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00003630 0x00000040 Code RO 851 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00003670 0x0000005c Code RO 852 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x000036cc 0x0000000c Code RO 854 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000036d8 0x00000016 Code RO 872 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x000036f0 0x00000074 Code RO 873 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00003764 0x00000044 Code RO 874 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x000037a8 0x00000030 Code RO 876 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x000037d8 0x00000020 Code RO 877 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000037f8 0x00000054 Code RO 878 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x0000384c 0x0000015c Code RO 928 .text.TemCtrl_Init Obj/SYSTEM_tempctrl_unit.o + 0x000039a8 0x00000060 Code RO 929 .text.Tem_Valve_Ctrl Obj/SYSTEM_tempctrl_unit.o + 0x00003a08 0x00000194 Code RO 930 .text.DisPlay_Task Obj/SYSTEM_tempctrl_unit.o + 0x00003b9c 0x00000044 Code RO 932 .text.Ctrller_Query_AirState Obj/SYSTEM_tempctrl_unit.o + 0x00003be0 0x000000a4 Code RO 933 .text.Ctrller_Ctrl_AirState Obj/SYSTEM_tempctrl_unit.o + 0x00003c84 0x000000cc Code RO 934 .text.TemCtrl_Pro Obj/SYSTEM_tempctrl_unit.o + 0x00003d50 0x000000d4 Code RO 936 .text.Ctrller_AirState_Processing Obj/SYSTEM_tempctrl_unit.o + 0x00003e24 0x00000020 Code RO 937 .text.Ctrller_CtrlAirState_Processing Obj/SYSTEM_tempctrl_unit.o + 0x00003e44 0x000000b8 Code RO 938 .text.Ctrller_RecData_Processing Obj/SYSTEM_tempctrl_unit.o + 0x00003efc 0x0000004c Code RO 956 .text.NetCRC16_Check Obj/SYSTEM_uart_protocol.o + 0x00003f48 0x0000003c Code RO 957 .text.GetCRC16 Obj/SYSTEM_uart_protocol.o + 0x00003f84 0x00000016 Code RO 958 .text.SOR_CRC Obj/SYSTEM_uart_protocol.o + 0x00003f9c 0x00000110 Code RO 959 .text.Rs485_ASend Obj/SYSTEM_uart_protocol.o + 0x000040ac 0x00000104 Code RO 960 .text.Rs485AskCycleSend Obj/SYSTEM_uart_protocol.o + 0x000041b0 0x0000005c Code RO 961 .text.Rs485AskCtrlSend Obj/SYSTEM_uart_protocol.o + 0x0000420c 0x0000006c Code RO 962 .text.Rs485AskReadSend Obj/SYSTEM_uart_protocol.o + 0x00004278 0x00000018 Code RO 963 .text.Rs485_DevPort_ACK Obj/SYSTEM_uart_protocol.o + 0x00004290 0x000001b8 Code RO 964 .text.Temp_Rec_Analysis Obj/SYSTEM_uart_protocol.o + 0x00004448 0x000000c0 Code RO 965 .text.Tem_Rs485_Rec_Pro Obj/SYSTEM_uart_protocol.o + 0x00004508 0x00000034 Code RO 982 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x0000453c 0x0000008c Code RO 983 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x000045c8 0x00000098 Code RO 984 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00004660 0x00000128 Code RO 1019 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x00004788 0x000000cc Code RO 1020 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00004854 0x00000028 Code RO 1024 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x0000487c 0x00000028 Code RO 1025 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000048a4 0x00000028 Code RO 1026 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x000048cc 0x00000028 Code RO 1027 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x000048f4 0x00000068 Code RO 1031 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x0000495c 0x00000870 Code RO 1032 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000051cc 0x00000128 Code RO 1033 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x000052f4 0x000004d0 Code RO 1034 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x000057c4 0x00000130 Code RO 1035 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000058f4 0x000000a0 Code RO 1041 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00005994 0x0000015c Code RO 1042 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00005af0 0x00000284 Code RO 1061 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005d74 0x00000030 Data RO 1084 .rodata pow.o + 0x00005da4 0x00000014 Data RO 1184 .rodata _thenan_df.o + 0x00005db8 0x00000100 Data RO 1232 .rodata _clz.o + 0x00005eb8 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00005ec6 0x00000083 Data RO 883 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00005f49 0x0000004f Data RO 939 .rodata.str1.1 Obj/SYSTEM_tempctrl_unit.o + 0x00005f98 0x0000002c Data RO 966 .rodata.str1.1 Obj/SYSTEM_uart_protocol.o + 0x00005fc4 0x0000001f Data RO 985 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + 0x00005fe3 0x00000001 PAD + + Region RAM (Base: 0x20000000, Size: 0x000007d4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x0000003d Data RW 1009 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000a5 0x00000003 PAD + 0x200000a8 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000088 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x20000144 0x00000008 Zero RW 927 .bss Obj/SYSTEM_tempctrl_unit.o + 0x2000014c 0x00000004 Zero RW 981 .bss Obj/SYSTEM_dip_switch.o + 0x20000150 0x00000001 Zero RW 1010 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000151 0x00000003 PAD + 0x20000154 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200001da 0x00000002 PAD + 0x200001dc 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x2000020c 0x000001e4 Zero RW 868 COMMON Obj/SYSTEM_uart.o + 0x200003f0 0x0000002d Zero RW 896 COMMON Obj/SYSTEM_eeprom.o + 0x2000041d 0x00000003 PAD + 0x20000420 0x00000028 Zero RW 952 COMMON Obj/SYSTEM_tempctrl_unit.o + 0x20000448 0x00000010 Zero RW 998 COMMON Obj/SYSTEM_dip_switch.o + 0x20000458 0x0000037c Zero RW 1057 COMMON FWlib_apt32f102_tkey_f_1_18.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 276 Obj/arch_crt0.o + 56 0 0 0 810 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 852 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 788 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 + 410 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 134 8693 Obj/FWlib_apt32f102_tkey_parameter.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 56 14 0 8 12083 Obj/main.o + 420 0 0 0 16825 Obj/mcu_initial.o + 2586 0 0 60 15349 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1568 0 0 620 16226 Obj/SYSTEM_uart.o + 370 131 0 45 13118 Obj/SYSTEM_eeprom.o + 0 0 0 0 0 Obj/SYSTEM_Bootload_fun.o + 1712 79 0 48 13255 Obj/SYSTEM_tempctrl_unit.o + 1546 44 0 0 13567 Obj/SYSTEM_uart_protocol.o + 344 31 0 20 11467 Obj/SYSTEM_dip_switch.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 11696 299 104 935 262908 Object Totals + 4 1 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 5264 0 61 893 20070 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 5264 0 61 893 20070 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 + 23904 624 168 1836 291653 Grand Totals + 23904 624 168 1836 291653 Elf Image Totals + 23904 624 168 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 24528 ( 23.95kB) +Total RW Size (RW Data + ZI Data) 2004 ( 1.96kB) +Total ROM Size (Code + RO Data + RW Data) 24696 ( 24.12kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH_V01.asm b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH_V01.asm new file mode 100644 index 0000000..08c8633 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH_V01.asm @@ -0,0 +1,14894 @@ + +.//Obj/T1_TC_34650_ZH_V01.elf: file format elf32-csky-little + + +Disassembly of section .text: + +00000000 : +void tk_parameter_init(void) +{ +/**************************************************** +//TK parameter define +*****************************************************/ + TK_IO_ENABLE=0x4F01; //TK IO ENABLE Bit16-->Bit0;0=DISABLE 1=ENABLE + 0: 0000010c .long 0x0000010c + 4: 00003026 .long 0x00003026 + + TK_senprd[0]=180; //TCH0 scan period = TCH0 sens + 8: 00003016 .long 0x00003016 + TK_senprd[1]=70; //TCH1 scan period = TCH1 sens + c: 00000184 .long 0x00000184 + TK_senprd[2]=70; //TCH2 scan period = TCH2 sens + 10: 0000301e .long 0x0000301e + TK_senprd[3]=70; //TCH3 scan period = TCH3 sens + TK_senprd[4]=70; //TCH4 scan period = TCH4 sens + 14: 00002fdc .long 0x00002fdc + TK_senprd[5]=70; //TCH5 scan period = TCH5 sens + TK_senprd[6]=70; //TCH6 scan period = TCH6 sens + 18: 00000184 .long 0x00000184 + TK_senprd[7]=70; //TCH7 scan period = TCH7 sens + TK_senprd[8]=180; //TCH8 scan period = TCH8 sens + 1c: 0000300e .long 0x0000300e + TK_senprd[9]=180; //TCH9 scan period = TCH9 sens + 20: 00003006 .long 0x00003006 + TK_senprd[10]=70; //TCH10 scan period = TCH10 sens + 24: 00000184 .long 0x00000184 + TK_senprd[11]=70; //TCH11 scan period = TCH11 sens + TK_senprd[12]=180; //TCH12 scan period = TCH12 sens + 28: 00000184 .long 0x00000184 + TK_senprd[13]=180; //TCH13 scan period = TCH13 sens + 2c: 00000184 .long 0x00000184 + TK_senprd[14]=180; //TCH14 scan period = TCH14 sens + TK_senprd[15]=70; //TCH15 scan period = TCH15 sens + 30: 00000184 .long 0x00000184 + TK_senprd[16]=70; //TCH16 scan period = TCH16 sens + 34: 00000184 .long 0x00000184 + TK_Triggerlevel[0]=100; //TCH0 TK_Trigger level + 38: 00000184 .long 0x00000184 + TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level + 3c: 00000184 .long 0x00000184 + TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level + 40: 00002ffe .long 0x00002ffe + TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level + TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level + 44: 00002ff6 .long 0x00002ff6 + TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level + TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level + 48: 00002fee .long 0x00002fee + TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level + TK_Triggerlevel[8]=100; //TCH8 TK_Trigger level + 4c: 00002fe6 .long 0x00002fe6 + TK_Triggerlevel[9]=100; //TCH9 TK_Trigger level + 50: 00000184 .long 0x00000184 + TK_Triggerlevel[10]=40; //TCH10 TK_Trigger level + 54: 00000184 .long 0x00000184 + TK_Triggerlevel[11]=40; //TCH11 TK_Trigger level + TK_Triggerlevel[12]=100; //TCH12 TK_Trigger level + 58: 00000184 .long 0x00000184 + TK_Triggerlevel[13]=100; //TCH13 TK_Trigger level + 5c: 00000184 .long 0x00000184 + TK_Triggerlevel[14]=100; //TCH14 TK_Trigger level + TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level + 60: 00000184 .long 0x00000184 + TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level + 64: 00000184 .long 0x00000184 + Press_debounce_data=6; //Press debounce 1~10 + 68: 00000184 .long 0x00000184 + Release_debounce_data=5; //Release debounce 1~10 + 6c: 00000184 .long 0x00000184 + 70: 00000184 .long 0x00000184 + Key_mode=1; //Key mode 0=single key 1=multi key + 74: 00000184 .long 0x00000184 + MultiTimes_Filter=40; //MultiTimes Filter,>4 ENABLE <4 DISABLE + 78: 00000184 .long 0x00000184 + 7c: 00002fde .long 0x00002fde + Valid_Key_Num=6; //Valid Key number when touched + 80: 00005994 .long 0x00005994 + Base_Speed=20; //baseline update speed + 84: 00002624 .long 0x00002624 + 88: 00002714 .long 0x00002714 + TK_longpress_time=8; //longpress rebuild time = _TK_longpress_time1*1s 0=disable + 8c: 0000277c .long 0x0000277c + TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed + 90: 000027e4 .long 0x000027e4 + 94: 00000184 .long 0x00000184 + +/**************************************************** +//TK low power function define +*****************************************************/ + TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable + 98: 00002990 .long 0x00002990 + TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep + 9c: 00002d78 .long 0x00002d78 + a0: 00002da8 .long 0x00002da8 + TK_Wakeup_level=50; //touch key Trigger level in sleep + a4: 000029c4 .long 0x000029c4 +/**************************************************** +//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 + a8: 00000184 .long 0x00000184 + ac: 00000184 .long 0x00000184 + TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V + b0: 00002a44 .long 0x00002a44 + TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V + b4: 00002ab4 .long 0x00002ab4 + TK_icon[0]=6; //TCH0 TK Scan icon range 0~7 + b8: 00002b14 .long 0x00002b14 + bc: 00002ba8 .long 0x00002ba8 + TK_icon[1]=6; //TCH1 TK Scan icon range 0~7 + TK_icon[2]=6; //TCH2 TK Scan icon range 0~7 + c0: 00000184 .long 0x00000184 + TK_icon[3]=6; //TCH3 TK Scan icon range 0~7 + TK_icon[4]=6; //TCH4 TK Scan icon range 0~7 + c4: 00003036 .long 0x00003036 + TK_icon[5]=6; //TCH5 TK Scan icon range 0~7 + TK_icon[6]=6; //TCH6 TK Scan icon range 0~7 + c8: 00000184 .long 0x00000184 + TK_icon[7]=6; //TCH7 TK Scan icon range 0~7 + TK_icon[8]=6; //TCH8 TK Scan icon range 0~7 + cc: 00002c3c .long 0x00002c3c + TK_icon[9]=6; //TCH9 TK Scan icon range 0~7 + TK_icon[10]=6; //TCH10 TK Scan icon range 0~7 + d0: 00002d24 .long 0x00002d24 + TK_icon[11]=6; //TCH11 TK Scan icon range 0~7 + TK_icon[12]=6; //TCH12 TK Scan icon range 0~7 + d4: 00002dd8 .long 0x00002dd8 + TK_icon[13]=6; //TCH13 TK Scan icon range 0~7 + TK_icon[14]=6; //TCH14 TK Scan icon range 0~7 + d8: 00002e20 .long 0x00002e20 + TK_icon[15]=6; //TCH15 TK Scan icon range 0~7 + TK_icon[16]=6; //TCH16 TK Scan icon range 0~7 + dc: 00002e8c .long 0x00002e8c + e0: 0000302e .long 0x0000302e + e4: 000058f4 .long 0x000058f4 + e8: 00002eec .long 0x00002eec + ec: 00000184 .long 0x00000184 + f0: 00002f20 .long 0x00002f20 + f4: 00002f6c .long 0x00002f6c + 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, 0x2444 // 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: 00002444 .long 0x00002444 + 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, 0x5d74 // 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: 00005d74 .long 0x00005d74 + 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, 0x5d74 // 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, 0x5d74 // 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: 00005d74 .long 0x00005d74 + 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, 0x5da4 // 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: 00005da4 .long 0x00005da4 + +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, 0x5da4 // 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: 00005da4 .long 0x00005da4 + 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, 0x5da4 // 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: 00005da4 .long 0x00005da4 + +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, 0x5db8 // 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: 00005db8 .long 0x00005db8 + +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, 0x5fdc // 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, 0x200000a8 // 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, 0x200007d4 // 1a80 <__main+0x30> + 1a64: 1008 lrw r0, 0x200000a8 // 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: 00005fdc .long 0x00005fdc + 1a7c: 200000a8 .long 0x200000a8 + 1a80: 200007d4 .long 0x200007d4 + 1a84: 200000a8 .long 0x200000a8 + +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.EXI3_Int_Enable: + +00001d60 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI3_Int_Enable(void) +{ + INTC_ISER_WRITE(EXI3_INT); + 1d60: 3380 movi r3, 128 + 1d62: 436f lsli r3, r3, 15 + 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_DeInit: + +00001ddc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPIO_DeInit(void) +{ + GPIOA0->CONLR &= 0xFF000000; + 1ddc: 1075 lrw r3, 0x2000004c // 1e30 + GPIOA0->CONHR = GPIO_RESET_VALUE; + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1dde: 1036 lrw r1, 0x20000048 // 1e34 + 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; + 1de0: 1016 lrw r0, 0xffff // 1e38 + GPIOA0->CONLR &= 0xFF000000; + 1de2: 9340 ld.w r2, (r3, 0x0) + 1de4: 9260 ld.w r3, (r2, 0x0) + 1de6: 4b78 lsri r3, r3, 24 + 1de8: 4378 lsli r3, r3, 24 + 1dea: b260 st.w r3, (r2, 0x0) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1dec: 9120 ld.w r1, (r1, 0x0) + GPIOA0->CONHR = GPIO_RESET_VALUE; + 1dee: 3300 movi r3, 0 + 1df0: b261 st.w r3, (r2, 0x4) + GPIOB0->CONLR = GPIO_RESET_VALUE; + 1df2: b160 st.w r3, (r1, 0x0) + GPIOB0->CONHR = GPIO_RESET_VALUE; + 1df4: b161 st.w r3, (r1, 0x4) + GPIOA0->WODR = GPIO_RESET_VALUE; + 1df6: b262 st.w r3, (r2, 0x8) + GPIOB0->WODR = GPIO_RESET_VALUE; + 1df8: b162 st.w r3, (r1, 0x8) + GPIOA0->SODR = GPIO_RESET_VALUE; + 1dfa: b263 st.w r3, (r2, 0xc) + GPIOB0->SODR = GPIO_RESET_VALUE; + 1dfc: b163 st.w r3, (r1, 0xc) + GPIOA0->CODR = GPIO_RESET_VALUE; + 1dfe: b264 st.w r3, (r2, 0x10) + GPIOB0->CODR = GPIO_RESET_VALUE; + 1e00: b164 st.w r3, (r1, 0x10) + GPIOA0->ODSR = GPIO_RESET_VALUE; + 1e02: b265 st.w r3, (r2, 0x14) + GPIOB0->ODSR = GPIO_RESET_VALUE; + 1e04: b165 st.w r3, (r1, 0x14) + GPIOA0->PSDR = GPIO_RESET_VALUE; + 1e06: b266 st.w r3, (r2, 0x18) + GPIOB0->PSDR = GPIO_RESET_VALUE; + 1e08: b166 st.w r3, (r1, 0x18) + GPIOA0->FLTEN = 0xffff; + 1e0a: b207 st.w r0, (r2, 0x1c) + GPIOB0->FLTEN = 0x3f; + 1e0c: 303f movi r0, 63 + 1e0e: b107 st.w r0, (r1, 0x1c) + GPIOA0->PUDR = GPIO_RESET_VALUE; + 1e10: b268 st.w r3, (r2, 0x20) + GPIOB0->PUDR = GPIO_RESET_VALUE; + 1e12: b168 st.w r3, (r1, 0x20) + GPIOA0->DSCR = GPIO_RESET_VALUE; + 1e14: b269 st.w r3, (r2, 0x24) + GPIOB0->DSCR = GPIO_RESET_VALUE; + 1e16: b169 st.w r3, (r1, 0x24) + GPIOA0->OMCR = GPIO_RESET_VALUE; + 1e18: b26a st.w r3, (r2, 0x28) + GPIOB0->OMCR = GPIO_RESET_VALUE; + 1e1a: b16a st.w r3, (r1, 0x28) + GPIOA0->IECR = GPIO_RESET_VALUE; + 1e1c: b26b st.w r3, (r2, 0x2c) + GPIOB0->IECR = GPIO_RESET_VALUE; + 1e1e: b16b st.w r3, (r1, 0x2c) + GPIOGRP->IGRPL = GPIO_RESET_VALUE; + 1e20: 1047 lrw r2, 0x20000044 // 1e3c + 1e22: 9240 ld.w r2, (r2, 0x0) + 1e24: b260 st.w r3, (r2, 0x0) + GPIOGRP->IGRPH = GPIO_RESET_VALUE; + 1e26: b261 st.w r3, (r2, 0x4) + GPIOGRP->IGREX = GPIO_RESET_VALUE; + 1e28: b262 st.w r3, (r2, 0x8) + GPIOGRP->IO_CLKEN = 0xf; + 1e2a: 330f movi r3, 15 + 1e2c: b263 st.w r3, (r2, 0xc) +} + 1e2e: 783c jmp r15 + 1e30: 2000004c .long 0x2000004c + 1e34: 20000048 .long 0x20000048 + 1e38: 0000ffff .long 0x0000ffff + 1e3c: 20000044 .long 0x20000044 + +Disassembly of section .text.GPIO_Init: + +00001e40 : +//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) +{ + 1e40: 14d1 push r4, r15 + uint32_t data_temp; + uint8_t GPIO_Pin; + if(PinNum<8) + 1e42: 3907 cmphsi r1, 8 +{ + 1e44: 6d03 mov r4, r0 + if(PinNum<8) + 1e46: 0830 bt 0x1ea6 // 1ea6 + { + switch (PinNum) + 1e48: 5903 subi r0, r1, 1 + 1e4a: 3806 cmphsi r0, 7 + 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 0:data_temp=0xfffffff0;GPIO_Pin=0;break; + case 1:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1e5a: 3300 movi r3, 0 + 1e5c: 3104 movi r1, 4 + 1e5e: 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) + 1e60: 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< + 1e76: 07f5 br 0x1e60 // 1e60 + case 3:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1e78: 310c movi r1, 12 + 1e7a: 1166 lrw r3, 0xffff0fff // 1f10 + 1e7c: 07f2 br 0x1e60 // 1e60 + case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1e7e: 3110 movi r1, 16 + 1e80: 1165 lrw r3, 0xfff10000 // 1f14 + case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1e82: 2b00 subi r3, 1 + 1e84: 07ee br 0x1e60 // 1e60 + case 5:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1e86: 3114 movi r1, 20 + 1e88: 1164 lrw r3, 0xff100000 // 1f18 + 1e8a: 07fc br 0x1e82 // 1e82 + case 6: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 7:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1e94: 311c movi r1, 28 + 1e96: 1162 lrw r3, 0xfffffff // 1f1c + 1e98: 07e4 br 0x1e60 // 1e60 + case 0: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)->CONLR = ((GPIOx)->CONLR & data_temp) | 2< + else if (PinNum<16) + 1ea6: 390f cmphsi r1, 16 + 1ea8: 0be4 bt 0x1e70 // 1e70 + switch (PinNum) + 1eaa: 2908 subi r1, 9 + 1eac: 3906 cmphsi r1, 7 + 1eae: 6c07 mov r0, r1 + 1eb0: 0827 bt 0x1efe // 1efe + 1eb2: e3fff725 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 1eb6: 1004 .short 0x1004 + 1eb8: 1d1a1613 .long 0x1d1a1613 + 1ebc: 0021 .short 0x0021 + case 9:data_temp=0xffffff0f;GPIO_Pin=4;break; + 1ebe: 3300 movi r3, 0 + 1ec0: 3104 movi r1, 4 + 1ec2: 2bf0 subi r3, 241 + if (Dir) + 1ec4: 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; + 1ed6: 3108 movi r1, 8 + 1ed8: 106d lrw r3, 0xfffff0ff // 1f0c + 1eda: 07f5 br 0x1ec4 // 1ec4 + case 11:data_temp=0xffff0fff;GPIO_Pin=12;break; + 1edc: 310c movi r1, 12 + 1ede: 106d lrw r3, 0xffff0fff // 1f10 + 1ee0: 07f2 br 0x1ec4 // 1ec4 + case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break; + 1ee2: 3110 movi r1, 16 + 1ee4: 106c lrw r3, 0xfff10000 // 1f14 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ee6: 2b00 subi r3, 1 + 1ee8: 07ee br 0x1ec4 // 1ec4 + case 13:data_temp=0xff0fffff;GPIO_Pin=20;break; + 1eea: 3114 movi r1, 20 + 1eec: 106b lrw r3, 0xff100000 // 1f18 + 1eee: 07fc br 0x1ee6 // 1ee6 + case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break; + 1ef0: 33f1 movi r3, 241 + 1ef2: 3118 movi r1, 24 + 1ef4: 4378 lsli r3, r3, 24 + 1ef6: 07f8 br 0x1ee6 // 1ee6 + case 15:data_temp=0x0fffffff;GPIO_Pin=28;break; + 1ef8: 311c movi r1, 28 + 1efa: 1069 lrw r3, 0xfffffff // 1f1c + 1efc: 07e4 br 0x1ec4 // 1ec4 + case 8:data_temp=0xfffffff0;GPIO_Pin=0;break; + 1efe: 3300 movi r3, 0 + 1f00: 3100 movi r1, 0 + 1f02: 2b0f subi r3, 16 + 1f04: 07e0 br 0x1ec4 // 1ec4 + (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2< + 1f0a: 0000 bkpt + 1f0c: fffff0ff .long 0xfffff0ff + 1f10: ffff0fff .long 0xffff0fff + 1f14: fff10000 .long 0xfff10000 + 1f18: ff100000 .long 0xff100000 + 1f1c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIO_PullHigh_Init: + +00001f20 : +//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)); + 1f20: 4121 lsli r1, r1, 1 + 1f22: 3203 movi r2, 3 + 1f24: 9068 ld.w r3, (r0, 0x20) + 1f26: 7084 lsl r2, r1 + 1f28: 68c9 andn r3, r2 + 1f2a: 3201 movi r2, 1 + 1f2c: 7084 lsl r2, r1 + 1f2e: 6cc8 or r3, r2 + 1f30: b068 st.w r3, (r0, 0x20) +} + 1f32: 783c jmp r15 + +Disassembly of section .text.GPIO_DriveStrength_EN: + +00001f34 : +//bit:0~15 +//ReturnValue:VALUE +/*************************************************************/ +void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit) +{ + (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2)); + 1f34: 4121 lsli r1, r1, 1 + 1f36: 3301 movi r3, 1 + 1f38: 9049 ld.w r2, (r0, 0x24) + 1f3a: 70c4 lsl r3, r1 + 1f3c: 6cc8 or r3, r2 + 1f3e: b069 st.w r3, (r0, 0x24) +} + 1f40: 783c jmp r15 + +Disassembly of section .text.GPIO_IntGroup_Set: + +00001f44 : +//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) +{ + 1f44: 14c1 push r4 + 1f46: 1422 subi r14, r14, 8 + volatile unsigned int R_data_temp; + volatile unsigned char R_GPIO_Pin; + if(Selete_EXI_x<16) + 1f48: 3a0f cmphsi r2, 16 + 1f4a: 084f bt 0x1fe8 // 1fe8 + { + if((Selete_EXI_x==0)||(Selete_EXI_x==8)) + 1f4c: 6ccb mov r3, r2 + 1f4e: 3b83 bclri r3, 3 + 1f50: 3b40 cmpnei r3, 0 + 1f52: 0813 bt 0x1f78 // 1f78 + { + R_data_temp=0xfffffff0; + 1f54: 2b0f subi r3, 16 + 1f56: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=0; + 1f58: 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) + 1f5a: 3a07 cmphsi r2, 8 + R_GPIO_Pin=28; + 1f5c: dc6e0003 st.b r3, (r14, 0x3) + 1f60: 1176 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x<8) + 1f62: 0c38 bf 0x1fd2 // 1fd2 + { + 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)) + 1f78: 3b41 cmpnei r3, 1 + 1f7a: 0806 bt 0x1f86 // 1f86 + R_data_temp=0xffffff0f; + 1f7c: 3300 movi r3, 0 + 1f7e: 2bf0 subi r3, 241 + 1f80: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=4; + 1f82: 3304 movi r3, 4 + 1f84: 07eb br 0x1f5a // 1f5a + else if((Selete_EXI_x==2)||(Selete_EXI_x==10)) + 1f86: 3b42 cmpnei r3, 2 + 1f88: 0805 bt 0x1f92 // 1f92 + R_data_temp=0xfffff0ff; + 1f8a: 116d lrw r3, 0xfffff0ff // 203c + 1f8c: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=8; + 1f8e: 3308 movi r3, 8 + 1f90: 07e5 br 0x1f5a // 1f5a + else if((Selete_EXI_x==3)||(Selete_EXI_x==11)) + 1f92: 3b43 cmpnei r3, 3 + 1f94: 0805 bt 0x1f9e // 1f9e + R_data_temp=0xffff0fff; + 1f96: 116b lrw r3, 0xffff0fff // 2040 + 1f98: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=12; + 1f9a: 330c movi r3, 12 + 1f9c: 07df br 0x1f5a // 1f5a + else if((Selete_EXI_x==4)||(Selete_EXI_x==12)) + 1f9e: 3b44 cmpnei r3, 4 + 1fa0: 0806 bt 0x1fac // 1fac + R_data_temp=0xfff0ffff; + 1fa2: 1169 lrw r3, 0xfff10000 // 2044 + 1fa4: 2b00 subi r3, 1 + 1fa6: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=16; + 1fa8: 3310 movi r3, 16 + 1faa: 07d8 br 0x1f5a // 1f5a + else if((Selete_EXI_x==5)||(Selete_EXI_x==13)) + 1fac: 3b45 cmpnei r3, 5 + 1fae: 0806 bt 0x1fba // 1fba + R_data_temp=0xff0fffff; + 1fb0: 1166 lrw r3, 0xff100000 // 2048 + 1fb2: 2b00 subi r3, 1 + 1fb4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=20; + 1fb6: 3314 movi r3, 20 + 1fb8: 07d1 br 0x1f5a // 1f5a + else if((Selete_EXI_x==6)||(Selete_EXI_x==14)) + 1fba: 3b46 cmpnei r3, 6 + 1fbc: 0807 bt 0x1fca // 1fca + R_data_temp=0xf0ffffff; + 1fbe: 33f1 movi r3, 241 + 1fc0: 4378 lsli r3, r3, 24 + 1fc2: 2b00 subi r3, 1 + 1fc4: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=24; + 1fc6: 3318 movi r3, 24 + 1fc8: 07c9 br 0x1f5a // 1f5a + R_data_temp=0x0fffffff; + 1fca: 1161 lrw r3, 0xfffffff // 204c + 1fcc: b861 st.w r3, (r14, 0x4) + R_GPIO_Pin=28; + 1fce: 331c movi r3, 28 + 1fd0: 07c5 br 0x1f5a // 1f5a + GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + } + } + } +} + 1fe4: 1402 addi r14, r14, 8 + 1fe6: 1481 pop r4 + else if(Selete_EXI_x<20) + 1fe8: 3a13 cmphsi r2, 20 + 1fea: 0bfd bt 0x1fe4 // 1fe4 + if((IO_MODE==0)&&((Selete_EXI_x==16)||((Selete_EXI_x==17)))) //PA0.0~PA0.7 + 1fec: 3840 cmpnei r0, 0 + 1fee: 0814 bt 0x2016 // 2016 + 1ff0: 3300 movi r3, 0 + 1ff2: 2b0f subi r3, 16 + 1ff4: 60c8 addu r3, r2 + 1ff6: 3b01 cmphsi r3, 2 + 1ff8: 0bf6 bt 0x1fe4 // 1fe4 + if(Selete_EXI_x==16) + 1ffa: 3a50 cmpnei r2, 16 + 1ffc: 106f lrw r3, 0x20000044 // 2038 + 1ffe: 0806 bt 0x200a // 200a + GPIOGRP->IGREX =(GPIOGRP->IGREX)|PinNum; + 2000: 9340 ld.w r2, (r3, 0x0) + 2002: 9262 ld.w r3, (r2, 0x8) + 2004: 6c4c or r1, r3 + 2006: b222 st.w r1, (r2, 0x8) + 2008: 07ee br 0x1fe4 // 1fe4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4); + 200a: 9360 ld.w r3, (r3, 0x0) + 200c: 9342 ld.w r2, (r3, 0x8) + 200e: 4124 lsli r1, r1, 4 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2010: 6c48 or r1, r2 + 2012: b322 st.w r1, (r3, 0x8) +} + 2014: 07e8 br 0x1fe4 // 1fe4 + else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3 + 2016: 3842 cmpnei r0, 2 + 2018: 0be6 bt 0x1fe4 // 1fe4 + 201a: 3300 movi r3, 0 + 201c: 2b11 subi r3, 18 + 201e: 60c8 addu r3, r2 + 2020: 3b01 cmphsi r3, 2 + 2022: 0be1 bt 0x1fe4 // 1fe4 + 2024: 1065 lrw r3, 0x20000044 // 2038 + if(Selete_EXI_x==18) + 2026: 3a52 cmpnei r2, 18 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 2028: 9360 ld.w r3, (r3, 0x0) + 202a: 9342 ld.w r2, (r3, 0x8) + if(Selete_EXI_x==18) + 202c: 0803 bt 0x2032 // 2032 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8); + 202e: 4128 lsli r1, r1, 8 + 2030: 07f0 br 0x2010 // 2010 + GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12); + 2032: 412c lsli r1, r1, 12 + 2034: 07ee br 0x2010 // 2010 + 2036: 0000 bkpt + 2038: 20000044 .long 0x20000044 + 203c: fffff0ff .long 0xfffff0ff + 2040: ffff0fff .long 0xffff0fff + 2044: fff10000 .long 0xfff10000 + 2048: ff100000 .long 0xff100000 + 204c: 0fffffff .long 0x0fffffff + +Disassembly of section .text.GPIOB0_EXI_Init: + +00002050 : + 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) +{ + 2050: 14d0 push r15 + switch (EXI_IO) + 2052: 3805 cmphsi r0, 6 + 2054: 080d bt 0x206e // 206e + 2056: 1079 lrw r3, 0x20000048 // 20b8 + 2058: e3fff652 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 205c: 18100a03 .long 0x18100a03 + 2060: 261f .short 0x261f + { + case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break; + 2062: 9340 ld.w r2, (r3, 0x0) + 2064: 9260 ld.w r3, (r2, 0x0) + 2066: 310f movi r1, 15 + 2068: 68c5 andn r3, r1 + 206a: 3ba0 bseti r3, 0 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 206c: b260 st.w r3, (r2, 0x0) + 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; + } +} + 206e: 1490 pop r15 + case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break; + 2070: 9340 ld.w r2, (r3, 0x0) + 2072: 9260 ld.w r3, (r2, 0x0) + 2074: 31f0 movi r1, 240 + 2076: 68c5 andn r3, r1 + 2078: 3ba4 bseti r3, 4 + 207a: 07f9 br 0x206c // 206c + case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break; + 207c: 9320 ld.w r1, (r3, 0x0) + 207e: 32f0 movi r2, 240 + 2080: 9160 ld.w r3, (r1, 0x0) + 2082: 4244 lsli r2, r2, 4 + 2084: 68c9 andn r3, r2 + 2086: 3ba8 bseti r3, 8 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 2088: b160 st.w r3, (r1, 0x0) +} + 208a: 07f2 br 0x206e // 206e + case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break; + 208c: 9320 ld.w r1, (r3, 0x0) + 208e: 32f0 movi r2, 240 + 2090: 9160 ld.w r3, (r1, 0x0) + 2092: 4248 lsli r2, r2, 8 + 2094: 68c9 andn r3, r2 + 2096: 3bac bseti r3, 12 + 2098: 07f8 br 0x2088 // 2088 + case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break; + 209a: 9320 ld.w r1, (r3, 0x0) + 209c: 32f0 movi r2, 240 + 209e: 9160 ld.w r3, (r1, 0x0) + 20a0: 424c lsli r2, r2, 12 + 20a2: 68c9 andn r3, r2 + 20a4: 3bb0 bseti r3, 16 + 20a6: 07f1 br 0x2088 // 2088 + case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break; + 20a8: 9320 ld.w r1, (r3, 0x0) + 20aa: 32f0 movi r2, 240 + 20ac: 9160 ld.w r3, (r1, 0x0) + 20ae: 4250 lsli r2, r2, 16 + 20b0: 68c9 andn r3, r2 + 20b2: 3bb4 bseti r3, 20 + 20b4: 07ea br 0x2088 // 2088 + 20b6: 0000 bkpt + 20b8: 20000048 .long 0x20000048 + +Disassembly of section .text.GPIO_Write_High: + +000020bc : +//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; + 20cc: 9045 ld.w r2, (r0, 0x14) + 20ce: 3301 movi r3, 1 + 20d0: 7085 lsr r2, r1 + 20d2: 688c and r2, r3 + { + if (dat==1) + 20d4: 3a40 cmpnei r2, 0 + 20d6: 70c4 lsl r3, r1 + 20d8: 0c03 bf 0x20de // 20de + { + (GPIOx)->CODR = (1ul<SODR = (1ul<SODR = (1ul< + +Disassembly of section .text.GPIO_Read_Status: + +000020e2 : +/*************************************************************/ +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); + 20f4: 1064 lrw r3, 0x20000014 // 2104 + 20f6: 9340 ld.w r2, (r3, 0x0) + 20f8: 9261 ld.w r3, (r2, 0x4) + 20fa: 3bac bseti r3, 12 + 20fc: 3bae bseti r3, 14 + 20fe: b261 st.w r3, (r2, 0x4) +} + 2100: 783c jmp r15 + 2102: 0000 bkpt + 2104: 20000014 .long 0x20000014 + +Disassembly of section .text.WWDT_CNT_Load: + +00002108 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDT_CNT_Load(U8_T cnt_data) +{ + WWDT->CR |= cnt_data; //SET + 2108: 1063 lrw r3, 0x20000010 // 2114 + 210a: 9360 ld.w r3, (r3, 0x0) + 210c: 9340 ld.w r2, (r3, 0x0) + 210e: 6c08 or r0, r2 + 2110: b300 st.w r0, (r3, 0x0) +} + 2112: 783c jmp r15 + 2114: 20000010 .long 0x20000010 + +Disassembly of section .text.BT_DeInit: + +00002118 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_DeInit(CSP_BT_T *BTx) +{ + BTx->RSSR=BT_RESET_VALUE; + 2118: 3300 movi r3, 0 + 211a: b060 st.w r3, (r0, 0x0) + BTx->CR=BT_RESET_VALUE; + 211c: b061 st.w r3, (r0, 0x4) + BTx->PSCR=BT_RESET_VALUE; + 211e: b062 st.w r3, (r0, 0x8) + BTx->PRDR=BT_RESET_VALUE; + 2120: b063 st.w r3, (r0, 0xc) + BTx->CMP=BT_RESET_VALUE; + 2122: b064 st.w r3, (r0, 0x10) + BTx->CNT=BT_RESET_VALUE; + 2124: b065 st.w r3, (r0, 0x14) + BTx->EVTRG=BT_RESET_VALUE; + 2126: b066 st.w r3, (r0, 0x18) + BTx->EVSWF=BT_RESET_VALUE; + 2128: b069 st.w r3, (r0, 0x24) + BTx->RISR=BT_RESET_VALUE; + 212a: b06a st.w r3, (r0, 0x28) + BTx->IMCR=BT_RESET_VALUE; + 212c: b06b st.w r3, (r0, 0x2c) + BTx->MISR=BT_RESET_VALUE; + 212e: b06c st.w r3, (r0, 0x30) + BTx->ICR=BT_RESET_VALUE; + 2130: b06d st.w r3, (r0, 0x34) +} + 2132: 783c jmp r15 + +Disassembly of section .text.BT_Start: + +00002134 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Start(CSP_BT_T *BTx) +{ + BTx->RSSR |=0X01; + 2134: 9060 ld.w r3, (r0, 0x0) + 2136: 3ba0 bseti r3, 0 + 2138: b060 st.w r3, (r0, 0x0) +} + 213a: 783c jmp r15 + +Disassembly of section .text.BT_Soft_Reset: + +0000213c : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_Soft_Reset(CSP_BT_T *BTx) +{ + BTx->RSSR |= (0X5<<12); + 213c: 9060 ld.w r3, (r0, 0x0) + 213e: 3bac bseti r3, 12 + 2140: 3bae bseti r3, 14 + 2142: b060 st.w r3, (r0, 0x0) +} + 2144: 783c jmp r15 + +Disassembly of section .text.BT_Configure: + +00002146 : +//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) +{ + 2146: 14c3 push r4-r6 + 2148: 98a4 ld.w r5, (r14, 0x10) + 214a: 6d97 mov r6, r5 + 214c: 9883 ld.w r4, (r14, 0xc) + BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM; + 214e: 6d18 or r4, r6 + 2150: 6cd0 or r3, r4 + 2152: 90a1 ld.w r5, (r0, 0x4) + 2154: 6c4c or r1, r3 + 2156: 6c54 or r1, r5 + 2158: b021 st.w r1, (r0, 0x4) + BTx->PSCR = PSCR_DATA; + 215a: b042 st.w r2, (r0, 0x8) +} + 215c: 1483 pop r4-r6 + +Disassembly of section .text.BT_ControlSet_Configure: + +0000215e : +//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) +{ + 215e: 14c4 push r4-r7 + 2160: 1421 subi r14, r14, 4 + 2162: 9885 ld.w r4, (r14, 0x14) + 2164: 6dd3 mov r7, r4 + 2166: 9886 ld.w r4, (r14, 0x18) + 2168: b880 st.w r4, (r14, 0x0) + 216a: 9887 ld.w r4, (r14, 0x1c) + 216c: 6d93 mov r6, r4 + 216e: 98a8 ld.w r5, (r14, 0x20) + BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD; + 2170: 6d58 or r5, r6 + 2172: 98c0 ld.w r6, (r14, 0x0) + 2174: 6d58 or r5, r6 + 2176: 6d5c or r5, r7 + 2178: 6cd4 or r3, r5 + 217a: 6c8c or r2, r3 + 217c: 9081 ld.w r4, (r0, 0x4) + 217e: 6c48 or r1, r2 + 2180: 6d04 or r4, r1 + 2182: 6d9f mov r6, r7 + 2184: b081 st.w r4, (r0, 0x4) +} + 2186: 1401 addi r14, r14, 4 + 2188: 1484 pop r4-r7 + +Disassembly of section .text.BT_Period_CMP_Write: + +0000218a : +//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; + 218a: b023 st.w r1, (r0, 0xc) + BTx->CMP =BTCMP_DATA; + 218c: b044 st.w r2, (r0, 0x10) +} + 218e: 783c jmp r15 + +Disassembly of section .text.BT_ConfigInterrupt_CMD: + +00002190 : +//NewState:ENABLE,DISABLE +//ReturnValue:NONE +/*************************************************************/ +void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X) +{ + if (NewState != DISABLE) + 2190: 3940 cmpnei r1, 0 + { + BTx->IMCR |= BT_IMSCR_X; + 2192: 906b ld.w r3, (r0, 0x2c) + if (NewState != DISABLE) + 2194: 0c04 bf 0x219c // 219c + BTx->IMCR |= BT_IMSCR_X; + 2196: 6c8c or r2, r3 + 2198: b04b st.w r2, (r0, 0x2c) + } + else + { + BTx->IMCR &= ~BT_IMSCR_X; + } +} + 219a: 783c jmp r15 + BTx->IMCR &= ~BT_IMSCR_X; + 219c: 68c9 andn r3, r2 + 219e: b06b st.w r3, (r0, 0x2c) +} + 21a0: 07fd br 0x219a // 219a + +Disassembly of section .text.BT1_INT_ENABLE: + +000021a4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1_INT_ENABLE(void) +{ + INTC_ISER_WRITE(BT1_INT); + 21a4: 3380 movi r3, 128 + 21a6: 4376 lsli r3, r3, 22 + 21a8: 1042 lrw r2, 0xe000e100 // 21b0 + 21aa: b260 st.w r3, (r2, 0x0) +} + 21ac: 783c jmp r15 + 21ae: 0000 bkpt + 21b0: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART0_DeInit: + +000021b4 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0_DeInit(void) +{ + UART0->DATA = UART_RESET_VALUE; + 21b4: 1065 lrw r3, 0x20000040 // 21c8 + 21b6: 3200 movi r2, 0 + 21b8: 9360 ld.w r3, (r3, 0x0) + 21ba: b340 st.w r2, (r3, 0x0) + UART0->SR = UART_RESET_VALUE; + 21bc: b341 st.w r2, (r3, 0x4) + UART0->CTRL = UART_RESET_VALUE; + 21be: b342 st.w r2, (r3, 0x8) + UART0->ISR = UART_RESET_VALUE; + 21c0: b343 st.w r2, (r3, 0xc) + UART0->BRDIV =UART_RESET_VALUE; + 21c2: b344 st.w r2, (r3, 0x10) +} + 21c4: 783c jmp r15 + 21c6: 0000 bkpt + 21c8: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1_DeInit: + +000021cc : +void UART1_DeInit(void) +{ + UART1->DATA = UART_RESET_VALUE; + 21cc: 1065 lrw r3, 0x2000003c // 21e0 + 21ce: 3200 movi r2, 0 + 21d0: 9360 ld.w r3, (r3, 0x0) + 21d2: b340 st.w r2, (r3, 0x0) + UART1->SR = UART_RESET_VALUE; + 21d4: b341 st.w r2, (r3, 0x4) + UART1->CTRL = UART_RESET_VALUE; + 21d6: b342 st.w r2, (r3, 0x8) + UART1->ISR = UART_RESET_VALUE; + 21d8: b343 st.w r2, (r3, 0xc) + UART1->BRDIV =UART_RESET_VALUE; + 21da: b344 st.w r2, (r3, 0x10) +} + 21dc: 783c jmp r15 + 21de: 0000 bkpt + 21e0: 2000003c .long 0x2000003c + +Disassembly of section .text.UART2_DeInit: + +000021e4 : +void UART2_DeInit(void) +{ + UART2->DATA = UART_RESET_VALUE; + 21e4: 1065 lrw r3, 0x20000038 // 21f8 + 21e6: 3200 movi r2, 0 + 21e8: 9360 ld.w r3, (r3, 0x0) + 21ea: b340 st.w r2, (r3, 0x0) + UART2->SR = UART_RESET_VALUE; + 21ec: b341 st.w r2, (r3, 0x4) + UART2->CTRL = UART_RESET_VALUE; + 21ee: b342 st.w r2, (r3, 0x8) + UART2->ISR = UART_RESET_VALUE; + 21f0: b343 st.w r2, (r3, 0xc) + UART2->BRDIV =UART_RESET_VALUE; + 21f2: b344 st.w r2, (r3, 0x10) +} + 21f4: 783c jmp r15 + 21f6: 0000 bkpt + 21f8: 20000038 .long 0x20000038 + +Disassembly of section .text.UART1_Int_Enable: + +000021fc : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1_Int_Enable(void) +{ + UART1->ISR=0x0F; //clear UART1 INT status + 21fc: 1065 lrw r3, 0x2000003c // 2210 + 21fe: 320f movi r2, 15 + 2200: 9360 ld.w r3, (r3, 0x0) + 2202: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2204: 3380 movi r3, 128 + 2206: 4367 lsli r3, r3, 7 + 2208: 1043 lrw r2, 0xe000e100 // 2214 + 220a: b260 st.w r3, (r2, 0x0) +} + 220c: 783c jmp r15 + 220e: 0000 bkpt + 2210: 2000003c .long 0x2000003c + 2214: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART2_Int_Enable: + +00002218 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2_Int_Enable(void) +{ + UART2->ISR=0x0F; //clear UART1 INT status + 2218: 1065 lrw r3, 0x20000038 // 222c + 221a: 320f movi r2, 15 + 221c: 9360 ld.w r3, (r3, 0x0) + 221e: b343 st.w r2, (r3, 0xc) + INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802 + 2220: 3380 movi r3, 128 + 2222: 4368 lsli r3, r3, 8 + 2224: 1043 lrw r2, 0xe000e100 // 2230 + 2226: b260 st.w r3, (r2, 0x0) +} + 2228: 783c jmp r15 + 222a: 0000 bkpt + 222c: 20000038 .long 0x20000038 + 2230: e000e100 .long 0xe000e100 + +Disassembly of section .text.UART_IO_Init: + +00002234 : +//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) + 2234: 3840 cmpnei r0, 0 + 2236: 0821 bt 0x2278 // 2278 + { + if(UART_IO_G==0) + 2238: 3940 cmpnei r1, 0 + 223a: 080a bt 0x224e // 224e + { + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0 + 223c: 1177 lrw r3, 0x2000004c // 2318 + 223e: 31ff movi r1, 255 + 2240: 9340 ld.w r2, (r3, 0x0) + 2242: 9260 ld.w r3, (r2, 0x0) + 2244: 68c5 andn r3, r1 + 2246: 3ba2 bseti r3, 2 + 2248: 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 + 224a: b260 st.w r3, (r2, 0x0) + 224c: 0415 br 0x2276 // 2276 + else if(UART_IO_G==1) + 224e: 3941 cmpnei r1, 1 + 2250: 0813 bt 0x2276 // 2276 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0 + 2252: 1172 lrw r3, 0x2000004c // 2318 + 2254: 31f0 movi r1, 240 + 2256: 9340 ld.w r2, (r3, 0x0) + 2258: 9260 ld.w r3, (r2, 0x0) + 225a: 4130 lsli r1, r1, 16 + 225c: 68c5 andn r3, r1 + 225e: 31e0 movi r1, 224 + 2260: 412f lsli r1, r1, 15 + 2262: 6cc4 or r3, r1 + 2264: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000; + 2266: 31f0 movi r1, 240 + 2268: 9261 ld.w r3, (r2, 0x4) + 226a: 412c lsli r1, r1, 12 + 226c: 68c5 andn r3, r1 + 226e: 31e0 movi r1, 224 + 2270: 412b lsli r1, r1, 11 + 2272: 6cc4 or r3, r1 + 2274: b261 st.w r3, (r2, 0x4) + else if(UART_IO_G==2) + { + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + } + } +} + 2276: 783c jmp r15 + if (IO_UART_NUM==IO_UART1) + 2278: 3841 cmpnei r0, 1 + 227a: 082d bt 0x22d4 // 22d4 + if(UART_IO_G==0) + 227c: 3940 cmpnei r1, 0 + 227e: 0814 bt 0x22a6 // 22a6 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1 + 2280: 1167 lrw r3, 0x20000048 // 231c + 2282: 310f movi r1, 15 + 2284: 9340 ld.w r2, (r3, 0x0) + 2286: 9260 ld.w r3, (r2, 0x0) + 2288: 68c5 andn r3, r1 + 228a: 3107 movi r1, 7 + 228c: 6cc4 or r3, r1 + 228e: b260 st.w r3, (r2, 0x0) + GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000; + 2290: 32f0 movi r2, 240 + 2292: 1162 lrw r3, 0x2000004c // 2318 + 2294: 4250 lsli r2, r2, 16 + 2296: 9320 ld.w r1, (r3, 0x0) + 2298: 9161 ld.w r3, (r1, 0x4) + 229a: 68c9 andn r3, r2 + 229c: 32e0 movi r2, 224 + 229e: 424f lsli r2, r2, 15 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 22a0: 6cc8 or r3, r2 + 22a2: b161 st.w r3, (r1, 0x4) + 22a4: 07e9 br 0x2276 // 2276 + else if(UART_IO_G==1) + 22a6: 3941 cmpnei r1, 1 + 22a8: 080c bt 0x22c0 // 22c0 + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1 + 22aa: 107c lrw r3, 0x2000004c // 2318 + 22ac: 32ff movi r2, 255 + 22ae: 9320 ld.w r1, (r3, 0x0) + 22b0: 424c lsli r2, r2, 12 + 22b2: 9160 ld.w r3, (r1, 0x0) + 22b4: 68c9 andn r3, r2 + 22b6: 32ee movi r2, 238 + 22b8: 424b lsli r2, r2, 11 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 22ba: 6cc8 or r3, r2 + 22bc: b160 st.w r3, (r1, 0x0) +} + 22be: 07dc br 0x2276 // 2276 + else if(UART_IO_G==2) + 22c0: 3942 cmpnei r1, 2 + 22c2: 0bda bt 0x2276 // 2276 + GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1 + 22c4: 1075 lrw r3, 0x2000004c // 2318 + 22c6: 32ee movi r2, 238 + 22c8: 9320 ld.w r1, (r3, 0x0) + 22ca: 9161 ld.w r3, (r1, 0x4) + 22cc: 4368 lsli r3, r3, 8 + 22ce: 4b68 lsri r3, r3, 8 + 22d0: 4257 lsli r2, r2, 23 + 22d2: 07e7 br 0x22a0 // 22a0 + if (IO_UART_NUM==IO_UART2) + 22d4: 3842 cmpnei r0, 2 + 22d6: 0bd0 bt 0x2276 // 2276 + if(UART_IO_G==0) + 22d8: 3940 cmpnei r1, 0 + 22da: 0809 bt 0x22ec // 22ec + GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2 + 22dc: 106f lrw r3, 0x2000004c // 2318 + 22de: 31ff movi r1, 255 + 22e0: 9340 ld.w r2, (r3, 0x0) + 22e2: 9260 ld.w r3, (r2, 0x0) + 22e4: 68c5 andn r3, r1 + 22e6: 3177 movi r1, 119 + 22e8: 6cc4 or r3, r1 + 22ea: 07b0 br 0x224a // 224a + else if(UART_IO_G==1) + 22ec: 3941 cmpnei r1, 1 + 22ee: 0809 bt 0x2300 // 2300 + GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2 + 22f0: 106a lrw r3, 0x2000004c // 2318 + 22f2: 32ee movi r2, 238 + 22f4: 9320 ld.w r1, (r3, 0x0) + 22f6: 9160 ld.w r3, (r1, 0x0) + 22f8: 4368 lsli r3, r3, 8 + 22fa: 4b68 lsri r3, r3, 8 + 22fc: 4257 lsli r2, r2, 23 + 22fe: 07de br 0x22ba // 22ba + else if(UART_IO_G==2) + 2300: 3942 cmpnei r1, 2 + 2302: 0bba bt 0x2276 // 2276 + GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2 + 2304: 1066 lrw r3, 0x20000048 // 231c + 2306: 32ff movi r2, 255 + 2308: 9320 ld.w r1, (r3, 0x0) + 230a: 4250 lsli r2, r2, 16 + 230c: 9160 ld.w r3, (r1, 0x0) + 230e: 68c9 andn r3, r2 + 2310: 32cc movi r2, 204 + 2312: 424f lsli r2, r2, 15 + 2314: 07d3 br 0x22ba // 22ba + 2316: 0000 bkpt + 2318: 2000004c .long 0x2000004c + 231c: 20000048 .long 0x20000048 + +Disassembly of section .text.UARTInitRxTxIntEn: + +00002320 : +//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); + 2320: 1063 lrw r3, 0x8000f // 232c + 2322: 6c8c or r2, r3 + 2324: b042 st.w r2, (r0, 0x8) + // Set Baudrate + CSP_UART_SET_BRDIV(uart, baudrate_u16); + 2326: b024 st.w r1, (r0, 0x10) +} + 2328: 783c jmp r15 + 232a: 0000 bkpt + 232c: 0008000f .long 0x0008000f + +Disassembly of section .text.UARTTransmit: + +00002330 : +//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) +{ + 2330: 14c2 push r4-r5 + unsigned int DataI,DataJ; + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2332: 6cc7 mov r3, r1 + { + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + do{ + DataI = CSP_UART_GET_SR(uart); + DataI = DataI & UART_TX_FULL; + 2334: 3501 movi r5, 1 + for(DataJ = 0;DataJ < length_u16 ;DataJ ++) + 2336: 5b85 subu r4, r3, r1 + 2338: 6490 cmphs r4, r2 + 233a: 0c02 bf 0x233e // 233e + }while(DataI == UART_TX_FULL); //Loop when tx is full + } +} + 233c: 1482 pop r4-r5 + CSP_UART_SET_DATA(uart,*sourceAddress_u16++); + 233e: 8380 ld.b r4, (r3, 0x0) + 2340: b080 st.w r4, (r0, 0x0) + DataI = CSP_UART_GET_SR(uart); + 2342: 9081 ld.w r4, (r0, 0x4) + DataI = DataI & UART_TX_FULL; + 2344: 6914 and r4, r5 + }while(DataI == UART_TX_FULL); //Loop when tx is full + 2346: 3c40 cmpnei r4, 0 + 2348: 0bfd bt 0x2342 // 2342 + 234a: 2300 addi r3, 1 + 234c: 07f5 br 0x2336 // 2336 + +Disassembly of section .text.EPT_Stop: + +00002350 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT_Stop(void) +{ + EPT0->REGPROT = (0xA55A<<16) | 0xC73A; + 2350: 1068 lrw r3, 0x20000020 // 2370 + 2352: 3280 movi r2, 128 + 2354: 9360 ld.w r3, (r3, 0x0) + 2356: 608c addu r2, r3 + 2358: 1027 lrw r1, 0xa55ac73a // 2374 + 235a: b23a st.w r1, (r2, 0x68) + EPT0->RSSR&=0Xfe; + 235c: 9341 ld.w r2, (r3, 0x4) + 235e: 31fe movi r1, 254 + 2360: 6884 and r2, r1 + 2362: b341 st.w r2, (r3, 0x4) + while(EPT0->RSSR&0x01); + 2364: 3101 movi r1, 1 + 2366: 9341 ld.w r2, (r3, 0x4) + 2368: 6884 and r2, r1 + 236a: 3a40 cmpnei r2, 0 + 236c: 0bfd bt 0x2366 // 2366 +} + 236e: 783c jmp r15 + 2370: 20000020 .long 0x20000020 + 2374: a55ac73a .long 0xa55ac73a + +Disassembly of section .text.Page_ProgramData: + +00002378 : + 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) +{ + 2378: 14c4 push r4-r7 + 237a: 1422 subi r14, r14, 8 + int i,DataBuffer; + + //Page cache wipe 1 + SetUserKey; + 237c: 1165 lrw r3, 0x20000060 // 2410 + 237e: 1186 lrw r4, 0x5a5a5a5a // 2414 + 2380: 9360 ld.w r3, (r3, 0x0) + 2382: b388 st.w r4, (r3, 0x20) + IFC->CMR=0x07; + 2384: 3407 movi r4, 7 + 2386: b383 st.w r4, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 2388: 3401 movi r4, 1 + IFC->FM_ADDR=FlashAdd; + 238a: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 238c: b384 st.w r4, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 238e: 9384 ld.w r4, (r3, 0x10) + 2390: 3c40 cmpnei r4, 0 + 2392: 0bfe bt 0x238e // 238e + //Write data to the cache 2 + for(i=0;i<((DataSize+3)/4);i++) //sizeof structure + 2394: 2102 addi r1, 3 + 2396: 4922 lsri r1, r1, 2 + 2398: 4122 lsli r1, r1, 2 + 239a: 6048 addu r1, r2 + 239c: b820 st.w r1, (r14, 0x0) + 239e: 5829 subu r1, r0, r2 + 23a0: b821 st.w r1, (r14, 0x4) + 23a2: 9820 ld.w r1, (r14, 0x0) + 23a4: 644a cmpne r2, r1 + 23a6: 0826 bt 0x23f2 // 23f2 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + BufArry +=4; + } + //Pre-programmed operation settings 3 + SetUserKey; + IFC->CMR=0x06; + 23a8: 3106 movi r1, 6 + SetUserKey; + 23aa: 105b lrw r2, 0x5a5a5a5a // 2414 + 23ac: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x06; + 23ae: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; + IFC->CR=0X01; //Start Program + 23b0: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; + 23b2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23b4: b324 st.w r1, (r3, 0x10) + while(IFC->CR!=0x0); //Wait for the operation to complete + 23b6: 9324 ld.w r1, (r3, 0x10) + 23b8: 3940 cmpnei r1, 0 + 23ba: 0bfe bt 0x23b6 // 23b6 + //Perform pre-programming 4 + SetUserKey; + 23bc: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 23be: 3201 movi r2, 1 + 23c0: b343 st.w r2, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 23c2: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23c4: b344 st.w r2, (r3, 0x10) + while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete + 23c6: 934a ld.w r2, (r3, 0x28) + 23c8: 3a44 cmpnei r2, 4 + 23ca: 0bfe bt 0x23c6 // 23c6 + //Page erase 5 + SetUserKey; + IFC->CMR=0x02; + 23cc: 3102 movi r1, 2 + SetUserKey; + 23ce: 1052 lrw r2, 0x5a5a5a5a // 2414 + 23d0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x02; + 23d2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + IFC->CR=0X01; //Start Program + 23d4: 3101 movi r1, 1 + IFC->FM_ADDR=FlashAdd; // + 23d6: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23d8: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete + 23da: 932a ld.w r1, (r3, 0x28) + 23dc: 3941 cmpnei r1, 1 + 23de: 0bfe bt 0x23da // 23da + //Write page cache data to flash memory 6 + SetUserKey; + 23e0: b348 st.w r2, (r3, 0x20) + IFC->CMR=0x01; + 23e2: b323 st.w r1, (r3, 0xc) + IFC->FM_ADDR=FlashAdd; // + 23e4: b306 st.w r0, (r3, 0x18) + IFC->CR=0X01; //Start Program + 23e6: b324 st.w r1, (r3, 0x10) + while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete + 23e8: 934a ld.w r2, (r3, 0x28) + 23ea: 3a42 cmpnei r2, 2 + 23ec: 0bfe bt 0x23e8 // 23e8 +} + 23ee: 1402 addi r14, r14, 8 + 23f0: 1484 pop r4-r7 + DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24); + 23f2: 82e0 ld.b r7, (r2, 0x0) + 23f4: 8281 ld.b r4, (r2, 0x1) + 23f6: 4488 lsli r4, r4, 8 + 23f8: 8222 ld.b r1, (r2, 0x2) + 23fa: 611c addu r4, r7 + 23fc: 82a3 ld.b r5, (r2, 0x3) + 23fe: 4130 lsli r1, r1, 16 + 2400: 98c1 ld.w r6, (r14, 0x4) + 2402: 6050 addu r1, r4 + 2404: 45b8 lsli r5, r5, 24 + 2406: 6188 addu r6, r2 + 2408: 6054 addu r1, r5 + *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer; + 240a: b620 st.w r1, (r6, 0x0) + BufArry +=4; + 240c: 2203 addi r2, 4 + 240e: 07ca br 0x23a2 // 23a2 + 2410: 20000060 .long 0x20000060 + 2414: 5a5a5a5a .long 0x5a5a5a5a + +Disassembly of section .text.ReadDataArry_U8: + +00002418 : +//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) +{ + 2418: 14c3 push r4-r6 + unsigned int i; + for (i=0;i + RdStartAdd +=4; + } + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + DataArryPoint++; + } +} + 2424: 1483 pop r4-r6 + if((i!=0)&&(i%4==0)) + 2426: 3b40 cmpnei r3, 0 + 2428: 0c06 bf 0x2434 // 2434 + 242a: 6d0f mov r4, r3 + 242c: 6914 and r4, r5 + 242e: 3c40 cmpnei r4, 0 + 2430: 0802 bt 0x2434 // 2434 + RdStartAdd +=4; + 2432: 2003 addi r0, 4 + *DataArryPoint=*(U8_T *)(RdStartAdd+ (i%4)); + 2434: 6d0f mov r4, r3 + 2436: 6914 and r4, r5 + 2438: 6100 addu r4, r0 + 243a: 8480 ld.b r4, (r4, 0x0) + 243c: a680 st.b r4, (r6, 0x0) + for (i=0;i + +Disassembly of section .text.startup.main: + +00002444
: +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ + 2444: 14d0 push r15 +// delay_nms(20000); + APT32F102_init(); //102 initial + 2446: e00000a5 bsr 0x2590 // 2590 + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_Dip.DIP_addr); + 244a: 106b lrw r3, 0x20000448 // 2474 + 244c: 8346 ld.b r2, (r3, 0x6) + 244e: 102b lrw r1, 0x5eb8 // 2478 + 2450: 3000 movi r0, 0 + 2452: e000093d bsr 0x36cc // 36cc + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + 2456: e3fffc07 bsr 0x1c64 // 1c64 + + UART1_TASK(); + 245a: e0000713 bsr 0x3280 // 3280 + + UART2_TASK(); + 245e: e0000769 bsr 0x3330 // 3330 + + DIP_ScanTask(); + 2462: e00010b3 bsr 0x45c8 // 45c8 + + TemCtrl_Pro(); + 2466: e0000c0f bsr 0x3c84 // 3c84 + + DisPlay_Task(); + 246a: e0000acf bsr 0x3a08 // 3a08 + + BUS485Send_Task(); + 246e: e00008c7 bsr 0x35fc // 35fc + 2472: 07f2 br 0x2456 // 2456 + 2474: 20000448 .long 0x20000448 + 2478: 00005eb8 .long 0x00005eb8 + +Disassembly of section .text.delay_nms: + +0000247c : +//software delay +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void delay_nms(unsigned int t) +{ + 247c: 14d0 push r15 + 247e: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + j = 50* t; + 2480: 3232 movi r2, 50 + volatile unsigned int i,j ,k=0; + 2482: 3300 movi r3, 0 + j = 50* t; + 2484: 7c08 mult r0, r2 + volatile unsigned int i,j ,k=0; + 2486: b862 st.w r3, (r14, 0x8) + j = 50* t; + 2488: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 248a: b860 st.w r3, (r14, 0x0) + 248c: 9840 ld.w r2, (r14, 0x0) + 248e: 9861 ld.w r3, (r14, 0x4) + 2490: 64c8 cmphs r2, r3 + 2492: 0c03 bf 0x2498 // 2498 + { + k++; + SYSCON_IWDCNT_Reload(); + } +} + 2494: 1403 addi r14, r14, 12 + 2496: 1490 pop r15 + k++; + 2498: 9862 ld.w r3, (r14, 0x8) + 249a: 2300 addi r3, 1 + 249c: b862 st.w r3, (r14, 0x8) + SYSCON_IWDCNT_Reload(); + 249e: e3fffbe3 bsr 0x1c64 // 1c64 + for ( i = 0; i < j; i++ ) + 24a2: 9860 ld.w r3, (r14, 0x0) + 24a4: 2300 addi r3, 1 + 24a6: 07f2 br 0x248a // 248a + +Disassembly of section .text.delay_nus: + +000024a8 : +void delay_nus(unsigned int t) +{ + 24a8: 1423 subi r14, r14, 12 + volatile unsigned int i,j ,k=0; + 24aa: 3300 movi r3, 0 + 24ac: b862 st.w r3, (r14, 0x8) + j = 1* t; + 24ae: b801 st.w r0, (r14, 0x4) + for ( i = 0; i < j; i++ ) + 24b0: b860 st.w r3, (r14, 0x0) + 24b2: 9840 ld.w r2, (r14, 0x0) + 24b4: 9861 ld.w r3, (r14, 0x4) + 24b6: 64c8 cmphs r2, r3 + 24b8: 0c03 bf 0x24be // 24be + { + k++; + } +} + 24ba: 1403 addi r14, r14, 12 + 24bc: 783c jmp r15 + k++; + 24be: 9862 ld.w r3, (r14, 0x8) + 24c0: 2300 addi r3, 1 + 24c2: b862 st.w r3, (r14, 0x8) + for ( i = 0; i < j; i++ ) + 24c4: 9860 ld.w r3, (r14, 0x0) + 24c6: 2300 addi r3, 1 + 24c8: 07f4 br 0x24b0 // 24b0 + +Disassembly of section .text.BT_CONFIG: + +000024cc : +//BT Initial +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT_CONFIG(void) +{ + 24cc: 14d2 push r4-r5, r15 + 24ce: 1424 subi r14, r14, 16 +// BT_ConfigInterrupt_CMD(BT0,ENABLE,BT_PEND); +// BT0_INT_ENABLE(); + + + //100us 定时器初始化 + BT_DeInit(BT1); + 24d0: 1095 lrw r4, 0x20000008 // 2524 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24d2: 3500 movi r5, 0 + BT_DeInit(BT1); + 24d4: 9400 ld.w r0, (r4, 0x0) + 24d6: e3fffe21 bsr 0x2118 // 2118 + BT_Configure(BT1,BTCLK_EN,0,BT_IMMEDIATE,BT_CONTINUOUS,BT_PCLKDIV); + 24da: 9400 ld.w r0, (r4, 0x0) + 24dc: b8a1 st.w r5, (r14, 0x4) + 24de: b8a0 st.w r5, (r14, 0x0) + 24e0: 3308 movi r3, 8 + 24e2: 3200 movi r2, 0 + 24e4: 3101 movi r1, 1 + 24e6: e3fffe30 bsr 0x2146 // 2146 + 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); + 24ea: 3380 movi r3, 128 + 24ec: 4363 lsli r3, r3, 3 + 24ee: b861 st.w r3, (r14, 0x4) + 24f0: 9400 ld.w r0, (r4, 0x0) + 24f2: 3300 movi r3, 0 + 24f4: b8a3 st.w r5, (r14, 0xc) + 24f6: b8a2 st.w r5, (r14, 0x8) + 24f8: b8a0 st.w r5, (r14, 0x0) + 24fa: 3200 movi r2, 0 + 24fc: 3180 movi r1, 128 + 24fe: e3fffe30 bsr 0x215e // 215e + BT_Period_CMP_Write(BT1,4780,1); + 2502: 3201 movi r2, 1 + 2504: 1029 lrw r1, 0x12ac // 2528 + 2506: 9400 ld.w r0, (r4, 0x0) + 2508: e3fffe41 bsr 0x218a // 218a + BT_Start(BT1); + 250c: 9400 ld.w r0, (r4, 0x0) + 250e: e3fffe13 bsr 0x2134 // 2134 + BT_ConfigInterrupt_CMD(BT1,ENABLE,BT_CMP); + 2512: 9400 ld.w r0, (r4, 0x0) + 2514: 3202 movi r2, 2 + 2516: 3101 movi r1, 1 + 2518: e3fffe3c bsr 0x2190 // 2190 + BT1_INT_ENABLE(); + 251c: e3fffe44 bsr 0x21a4 // 21a4 + +} + 2520: 1404 addi r14, r14, 16 + 2522: 1492 pop r4-r5, r15 + 2524: 20000008 .long 0x20000008 + 2528: 000012ac .long 0x000012ac + +Disassembly of section .text.SYSCON_CONFIG: + +0000252c : +//syscon Functions +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCON_CONFIG(void) +{ + 252c: 14d0 push r15 + 252e: 1421 subi r14, r14, 4 +//------SYSTEM CLK AND PCLK FUNTION---------------------------/ + SYSCON_RST_VALUE(); //SYSCON all register clr + 2530: e3fffae6 bsr 0x1afc // 1afc + SYSCON_General_CMD(ENABLE,ENDIS_ISOSC); //SYSCON enable/disable clock source + 2534: 3101 movi r1, 1 + 2536: 3001 movi r0, 1 + 2538: e3fffb08 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 + 253c: 3000 movi r0, 0 + 253e: e3fffb61 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 + 2542: 3180 movi r1, 128 + 2544: 3308 movi r3, 8 + 2546: 3200 movi r2, 0 + 2548: 4121 lsli r1, r1, 1 + 254a: 3002 movi r0, 2 + 254c: e3fffb16 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 + 2550: 3080 movi r0, 128 + 2552: 3118 movi r1, 24 + 2554: 4002 lsli r0, r0, 2 + 2556: e3fffb91 bsr 0x1c78 // 1c78 + SYSCON_WDT_CMD(ENABLE); //enable/disable WDT + 255a: 3001 movi r0, 1 + 255c: e3fffb66 bsr 0x1c28 // 1c28 + SYSCON_IWDCNT_Reload(); //reload WDT + 2560: e3fffb82 bsr 0x1c64 // 1c64 + IWDT_Int_Enable(); + 2564: e3fffbb4 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 + 2568: 3340 movi r3, 64 + 256a: b860 st.w r3, (r14, 0x0) + 256c: 31c0 movi r1, 192 + 256e: 3380 movi r3, 128 + 2570: 4364 lsli r3, r3, 4 + 2572: 3200 movi r2, 0 + 2574: 4123 lsli r1, r1, 3 + 2576: 3000 movi r0, 0 + 2578: e3fffb8c bsr 0x1c90 // 1c90 + LVD_Int_Enable(); + 257c: e3fffb9a bsr 0x1cb0 // 1cb0 +//------------ SYSCON Vector --------------------------------/ + SYSCON_Int_Enable(); //SYSCON VECTOR + 2580: e3fffbf8 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 + 2584: 3000 movi r0, 0 + 2586: e0001ab5 bsr 0x5af0 // 5af0 + +} + 258a: 1401 addi r14, r14, 4 + 258c: 1490 pop r15 + +Disassembly of section .text.APT32F102_init: + +00002590 : +//APT32F102_init / +//EntryParameter:NONE / +//ReturnValue:NONE / +/*********************************************************************************/ +void APT32F102_init(void) +{ + 2590: 14d0 push r15 + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2592: 107f lrw r3, 0x2000005c // 260c + Sys_RSR = 0x00000000; + 2594: 105f lrw r2, 0x200000ac // 2610 + 2596: 3100 movi r1, 0 + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 2598: 9360 ld.w r3, (r3, 0x0) + 259a: 3080 movi r0, 128 + Sys_RSR = 0x00000000; + 259c: b220 st.w r1, (r2, 0x0) + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + 259e: 600c addu r0, r3 + 25a0: 9004 ld.w r0, (r0, 0x10) + 25a2: b200 st.w r0, (r2, 0x0) + + Sav_Temp = 0x00000000; + 25a4: 105c lrw r2, 0x200000a8 // 2614 + 25a6: b220 st.w r1, (r2, 0x0) + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 + 25a8: 3180 movi r1, 128 + 25aa: 4121 lsli r1, r1, 1 + 25ac: 604c addu r1, r3 + 25ae: 9120 ld.w r1, (r1, 0x0) + 25b0: b220 st.w r1, (r2, 0x0) +//------------------------------------------------------------/ +//Peripheral clock enable and disable +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON->PCER0=0xFFFFFFF; //PCLK Enable + 25b2: 105a lrw r2, 0xfffffff // 2618 + 25b4: b34a st.w r2, (r3, 0x28) + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 25b6: 3101 movi r1, 1 + SYSCON->PCER1=0xFFFFFFF; //PCLK Enable + 25b8: b34d st.w r2, (r3, 0x34) + while(!(SYSCON->PCSR0&0x1)); //Wait PCLK enabled + 25ba: 934c ld.w r2, (r3, 0x30) + 25bc: 6884 and r2, r1 + 25be: 3a40 cmpnei r2, 0 + 25c0: 0ffd bf 0x25ba // 25ba +//------------------------------------------------------------/ +//ISOSC/IMOSC/EMOSC/SYSCLK/IWDT/LVD/EM_CMFAIL/EM_CMRCV/CMD_ERR OSC stable interrupt +//EntryParameter:NONE +//ReturnValue:NONE +//------------------------------------------------------------/ + SYSCON_CONFIG(); //syscon initial + 25c2: e3ffffb5 bsr 0x252c // 252c + CK_CPU_EnAllNormalIrq(); //enable all IRQ + 25c6: e0000573 bsr 0x30ac // 30ac + SYSCON_INT_Priority(); //initial all Priority=0xC0 + 25ca: e3fffbdf bsr 0x1d88 // 1d88 + + //设置中断优先级 0最高,3最低 + Set_INT_Priority(UART2_IRQ,1); //串口优先级最高 + 25ce: 3101 movi r1, 1 + 25d0: 300f movi r0, 15 + 25d2: e3fffbed bsr 0x1dac // 1dac + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + 25d6: 3101 movi r1, 1 + 25d8: 300e movi r0, 14 + 25da: e3fffbe9 bsr 0x1dac // 1dac + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + 25de: 3101 movi r1, 1 + 25e0: 3016 movi r0, 22 + 25e2: e3fffbe5 bsr 0x1dac // 1dac + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO + 25e6: e3fffbfb bsr 0x1ddc // 1ddc +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + 25ea: e3ffff71 bsr 0x24cc // 24cc + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + 25ee: 102c lrw r1, 0x4448 // 261c + 25f0: 3002 movi r0, 2 + 25f2: e0000563 bsr 0x30b8 // 30b8 + UARTx_Init(UART_1,Ctrller_RecData_Processing); //通讯串口 + 25f6: 102b lrw r1, 0x3e44 // 2620 + 25f8: 3001 movi r0, 1 + 25fa: e000055f bsr 0x30b8 // 30b8 + + EEPROM_Init(); + 25fe: e00008fd bsr 0x37f8 // 37f8 + + DIP_Switch_Init(); + 2602: e0000f9d bsr 0x453c // 453c + + TemCtrl_Init(); + 2606: e0000923 bsr 0x384c // 384c + +} + 260a: 1490 pop r15 + 260c: 2000005c .long 0x2000005c + 2610: 200000ac .long 0x200000ac + 2614: 200000a8 .long 0x200000a8 + 2618: 0fffffff .long 0x0fffffff + 261c: 00004448 .long 0x00004448 + 2620: 00003e44 .long 0x00003e44 + +Disassembly of section .text.SYSCONIntHandler: + +00002624 : +//SYSCON Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SYSCONIntHandler(void) +{ + 2624: 1460 nie + 2626: 1462 ipush + // ISR content ... + nop; + 2628: 6c03 mov r0, r0 + if((SYSCON->MISR&ISOSC_ST)==ISOSC_ST) //ISOSC stable interrupt + 262a: 117a lrw r3, 0x2000005c // 2710 + 262c: 3280 movi r2, 128 + 262e: 9360 ld.w r3, (r3, 0x0) + 2630: 60c8 addu r3, r2 + 2632: 9323 ld.w r1, (r3, 0xc) + 2634: 3001 movi r0, 1 + 2636: 6840 and r1, r0 + 2638: 3940 cmpnei r1, 0 + 263a: 0c04 bf 0x2642 // 2642 + { + SYSCON->ICR = EMOSC_ST; + } + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + { + SYSCON->ICR = HFOSC_ST; + 263c: b301 st.w r0, (r3, 0x4) + } + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + { + SYSCON->ICR = CMD_ERR_ST; + } +} + 263e: 1463 ipop + 2640: 1461 nir + else if((SYSCON->MISR&IMOSC_ST)==IMOSC_ST) //IMOSC stable interrupt + 2642: 9323 ld.w r1, (r3, 0xc) + 2644: 3002 movi r0, 2 + 2646: 6840 and r1, r0 + 2648: 3940 cmpnei r1, 0 + 264a: 0bf9 bt 0x263c // 263c + else if((SYSCON->MISR&EMOSC_ST)==EMOSC_ST) //EMOSC stable interrupt + 264c: 9323 ld.w r1, (r3, 0xc) + 264e: 3008 movi r0, 8 + 2650: 6840 and r1, r0 + 2652: 3940 cmpnei r1, 0 + 2654: 0bf4 bt 0x263c // 263c + else if((SYSCON->MISR&HFOSC_ST)==HFOSC_ST) //HFOSC stable interrupt + 2656: 9323 ld.w r1, (r3, 0xc) + 2658: 3010 movi r0, 16 + 265a: 6840 and r1, r0 + 265c: 3940 cmpnei r1, 0 + 265e: 0bef bt 0x263c // 263c + else if((SYSCON->MISR&SYSCLK_ST)==SYSCLK_ST) //SYSCLK change end & stable interrupt + 2660: 9323 ld.w r1, (r3, 0xc) + 2662: 6848 and r1, r2 + 2664: 3940 cmpnei r1, 0 + 2666: 0c03 bf 0x266c // 266c + SYSCON->ICR = CMD_ERR_ST; + 2668: b341 st.w r2, (r3, 0x4) +} + 266a: 07ea br 0x263e // 263e + else if((SYSCON->MISR&IWDT_INT_ST)==IWDT_INT_ST) //IWDT alarm window interrupt + 266c: 3280 movi r2, 128 + 266e: 9323 ld.w r1, (r3, 0xc) + 2670: 4241 lsli r2, r2, 1 + 2672: 6848 and r1, r2 + 2674: 3940 cmpnei r1, 0 + 2676: 0bf9 bt 0x2668 // 2668 + else if((SYSCON->MISR&WKI_INT_ST)==WKI_INT_ST) + 2678: 3280 movi r2, 128 + 267a: 9323 ld.w r1, (r3, 0xc) + 267c: 4242 lsli r2, r2, 2 + 267e: 6848 and r1, r2 + 2680: 3940 cmpnei r1, 0 + 2682: 0bf3 bt 0x2668 // 2668 + else if((SYSCON->MISR&RAMERRINT_ST)==RAMERRINT_ST) //SRAM check fail interrupt + 2684: 3280 movi r2, 128 + 2686: 9323 ld.w r1, (r3, 0xc) + 2688: 4243 lsli r2, r2, 3 + 268a: 6848 and r1, r2 + 268c: 3940 cmpnei r1, 0 + 268e: 0bed bt 0x2668 // 2668 + else if((SYSCON->MISR&LVD_INT_ST)==LVD_INT_ST) //LVD threshold interrupt + 2690: 3280 movi r2, 128 + 2692: 9323 ld.w r1, (r3, 0xc) + 2694: 4244 lsli r2, r2, 4 + 2696: 6848 and r1, r2 + 2698: 3940 cmpnei r1, 0 + 269a: 0c03 bf 0x26a0 // 26a0 + nop; + 269c: 6c03 mov r0, r0 + 269e: 07e5 br 0x2668 // 2668 + else if((SYSCON->MISR&HWD_ERR_ST)==HWD_ERR_ST) //Hardware Divider divisor = 0 interrupt + 26a0: 3280 movi r2, 128 + 26a2: 9323 ld.w r1, (r3, 0xc) + 26a4: 4245 lsli r2, r2, 5 + 26a6: 6848 and r1, r2 + 26a8: 3940 cmpnei r1, 0 + 26aa: 0bdf bt 0x2668 // 2668 + else if((SYSCON->MISR&EFL_ERR_ST)==EFL_ERR_ST) //Flash check fail interrupt + 26ac: 3280 movi r2, 128 + 26ae: 9323 ld.w r1, (r3, 0xc) + 26b0: 4246 lsli r2, r2, 6 + 26b2: 6848 and r1, r2 + 26b4: 3940 cmpnei r1, 0 + 26b6: 0bd9 bt 0x2668 // 2668 + else if((SYSCON->MISR&OPTERR_INT)==OPTERR_INT) //Option load fail interrupt + 26b8: 3280 movi r2, 128 + 26ba: 9323 ld.w r1, (r3, 0xc) + 26bc: 4247 lsli r2, r2, 7 + 26be: 6848 and r1, r2 + 26c0: 3940 cmpnei r1, 0 + 26c2: 0bd3 bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_CMLST_ST)==EM_CMLST_ST) //EMOSC clock monitor fail interrupt + 26c4: 3280 movi r2, 128 + 26c6: 9323 ld.w r1, (r3, 0xc) + 26c8: 424b lsli r2, r2, 11 + 26ca: 6848 and r1, r2 + 26cc: 3940 cmpnei r1, 0 + 26ce: 0bcd bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG0_ST)==EM_EVTRG0_ST) //Event Trigger Channel 0 Interrupt + 26d0: 3280 movi r2, 128 + 26d2: 9323 ld.w r1, (r3, 0xc) + 26d4: 424c lsli r2, r2, 12 + 26d6: 6848 and r1, r2 + 26d8: 3940 cmpnei r1, 0 + 26da: 0bc7 bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG1_ST)==EM_EVTRG1_ST) //Event Trigger Channel 1 Interrupt + 26dc: 3280 movi r2, 128 + 26de: 9323 ld.w r1, (r3, 0xc) + 26e0: 424d lsli r2, r2, 13 + 26e2: 6848 and r1, r2 + 26e4: 3940 cmpnei r1, 0 + 26e6: 0bc1 bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG2_ST)==EM_EVTRG2_ST) //Event Trigger Channel 2 Interrupt + 26e8: 3280 movi r2, 128 + 26ea: 9323 ld.w r1, (r3, 0xc) + 26ec: 424e lsli r2, r2, 14 + 26ee: 6848 and r1, r2 + 26f0: 3940 cmpnei r1, 0 + 26f2: 0bbb bt 0x2668 // 2668 + else if((SYSCON->MISR&EM_EVTRG3_ST)==EM_EVTRG3_ST) //Event Trigger Channel 3 Interrupt + 26f4: 3280 movi r2, 128 + 26f6: 9323 ld.w r1, (r3, 0xc) + 26f8: 424f lsli r2, r2, 15 + 26fa: 6848 and r1, r2 + 26fc: 3940 cmpnei r1, 0 + 26fe: 0bb5 bt 0x2668 // 2668 + else if((SYSCON->MISR&CMD_ERR_ST)==CMD_ERR_ST) //Command error interrupt + 2700: 3280 movi r2, 128 + 2702: 9323 ld.w r1, (r3, 0xc) + 2704: 4256 lsli r2, r2, 22 + 2706: 6848 and r1, r2 + 2708: 3940 cmpnei r1, 0 + 270a: 0baf bt 0x2668 // 2668 + 270c: 0799 br 0x263e // 263e + 270e: 0000 bkpt + 2710: 2000005c .long 0x2000005c + +Disassembly of section .text.IFCIntHandler: + +00002714 : +//IFC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void IFCIntHandler(void) +{ + 2714: 1460 nie + 2716: 1462 ipush + // ISR content ... + if(IFC->MISR&ERS_END_INT) + 2718: 1078 lrw r3, 0x20000060 // 2778 + 271a: 3101 movi r1, 1 + 271c: 9360 ld.w r3, (r3, 0x0) + 271e: 934b ld.w r2, (r3, 0x2c) + 2720: 6884 and r2, r1 + 2722: 3a40 cmpnei r2, 0 + 2724: 0c04 bf 0x272c // 272c + { + IFC->ICR=RGM_END_INT; + } + else if(IFC->MISR&PEP_END_INT) + { + IFC->ICR=PEP_END_INT; + 2726: b32c st.w r1, (r3, 0x30) + } + else if(IFC->MISR&OVW_ERR_INT) + { + IFC->ICR=OVW_ERR_INT; + } +} + 2728: 1463 ipop + 272a: 1461 nir + else if(IFC->MISR&RGM_END_INT) + 272c: 934b ld.w r2, (r3, 0x2c) + 272e: 3102 movi r1, 2 + 2730: 6884 and r2, r1 + 2732: 3a40 cmpnei r2, 0 + 2734: 0bf9 bt 0x2726 // 2726 + else if(IFC->MISR&PEP_END_INT) + 2736: 934b ld.w r2, (r3, 0x2c) + 2738: 3104 movi r1, 4 + 273a: 6884 and r2, r1 + 273c: 3a40 cmpnei r2, 0 + 273e: 0bf4 bt 0x2726 // 2726 + else if(IFC->MISR&PROT_ERR_INT) + 2740: 3280 movi r2, 128 + 2742: 932b ld.w r1, (r3, 0x2c) + 2744: 4245 lsli r2, r2, 5 + 2746: 6848 and r1, r2 + 2748: 3940 cmpnei r1, 0 + 274a: 0c03 bf 0x2750 // 2750 + IFC->ICR=OVW_ERR_INT; + 274c: b34c st.w r2, (r3, 0x30) +} + 274e: 07ed br 0x2728 // 2728 + else if(IFC->MISR&UDEF_ERR_INT) + 2750: 3280 movi r2, 128 + 2752: 932b ld.w r1, (r3, 0x2c) + 2754: 4246 lsli r2, r2, 6 + 2756: 6848 and r1, r2 + 2758: 3940 cmpnei r1, 0 + 275a: 0bf9 bt 0x274c // 274c + else if(IFC->MISR&ADDR_ERR_INT) + 275c: 3280 movi r2, 128 + 275e: 932b ld.w r1, (r3, 0x2c) + 2760: 4247 lsli r2, r2, 7 + 2762: 6848 and r1, r2 + 2764: 3940 cmpnei r1, 0 + 2766: 0bf3 bt 0x274c // 274c + else if(IFC->MISR&OVW_ERR_INT) + 2768: 3280 movi r2, 128 + 276a: 932b ld.w r1, (r3, 0x2c) + 276c: 4248 lsli r2, r2, 8 + 276e: 6848 and r1, r2 + 2770: 3940 cmpnei r1, 0 + 2772: 0bed bt 0x274c // 274c + 2774: 07da br 0x2728 // 2728 + 2776: 0000 bkpt + 2778: 20000060 .long 0x20000060 + +Disassembly of section .text.ADCIntHandler: + +0000277c : +//ADC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void ADCIntHandler(void) +{ + 277c: 1460 nie + 277e: 1462 ipush + // ISR content ... + if((ADC0->SR&ADC12_EOC)==ADC12_EOC) //ADC EOC interrupt + 2780: 1078 lrw r3, 0x20000050 // 27e0 + 2782: 3101 movi r1, 1 + 2784: 9360 ld.w r3, (r3, 0x0) + 2786: 9348 ld.w r2, (r3, 0x20) + 2788: 6884 and r2, r1 + 278a: 3a40 cmpnei r2, 0 + 278c: 0c04 bf 0x2794 // 2794 + { + ADC0->CSR = ADC12_CMP1H; + } + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + { + ADC0->CSR = ADC12_CMP1L; + 278e: 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; + } +} + 2790: 1463 ipop + 2792: 1461 nir + else if((ADC0->SR&ADC12_READY)==ADC12_READY) //ADC READY interrupt + 2794: 9348 ld.w r2, (r3, 0x20) + 2796: 3102 movi r1, 2 + 2798: 6884 and r2, r1 + 279a: 3a40 cmpnei r2, 0 + 279c: 0bf9 bt 0x278e // 278e + else if((ADC0->SR&ADC12_OVR)==ADC12_OVR) //ADC OVR interrupt + 279e: 9348 ld.w r2, (r3, 0x20) + 27a0: 3104 movi r1, 4 + 27a2: 6884 and r2, r1 + 27a4: 3a40 cmpnei r2, 0 + 27a6: 0bf4 bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP0H)==ADC12_CMP0H) //ADC CMP0H interrupt + 27a8: 9348 ld.w r2, (r3, 0x20) + 27aa: 3110 movi r1, 16 + 27ac: 6884 and r2, r1 + 27ae: 3a40 cmpnei r2, 0 + 27b0: 0bef bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP0L)==ADC12_CMP0L) //ADC CMP0L interrupt. + 27b2: 9348 ld.w r2, (r3, 0x20) + 27b4: 3120 movi r1, 32 + 27b6: 6884 and r2, r1 + 27b8: 3a40 cmpnei r2, 0 + 27ba: 0bea bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP1H)==ADC12_CMP1H) //ADC CMP1H interrupt. + 27bc: 9348 ld.w r2, (r3, 0x20) + 27be: 3140 movi r1, 64 + 27c0: 6884 and r2, r1 + 27c2: 3a40 cmpnei r2, 0 + 27c4: 0be5 bt 0x278e // 278e + else if((ADC0->SR&ADC12_CMP1L)==ADC12_CMP1L) //ADC CMP1L interrupt. + 27c6: 9348 ld.w r2, (r3, 0x20) + 27c8: 3180 movi r1, 128 + 27ca: 6884 and r2, r1 + 27cc: 3a40 cmpnei r2, 0 + 27ce: 0be0 bt 0x278e // 278e + 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 + 27d0: 3280 movi r2, 128 + 27d2: 9328 ld.w r1, (r3, 0x20) + 27d4: 4249 lsli r2, r2, 9 + 27d6: 6848 and r1, r2 + 27d8: 3940 cmpnei r1, 0 + 27da: 0fdb bf 0x2790 // 2790 + ADC0->CSR = ADC12_SEQ_END0; + 27dc: b347 st.w r2, (r3, 0x1c) +} + 27de: 07d9 br 0x2790 // 2790 + 27e0: 20000050 .long 0x20000050 + +Disassembly of section .text.EPT0IntHandler: + +000027e4 : +//EPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EPT0IntHandler(void) +{ + 27e4: 1460 nie + 27e6: 1462 ipush + 27e8: 14d1 push r4, r15 + // ISR content ... + if((EPT0->MISR&EPT_TRGEV0_INT)==EPT_TRGEV0_INT) //TRGEV0 interrupt + 27ea: 1387 lrw r4, 0x20000020 // 2984 + 27ec: 3280 movi r2, 128 + 27ee: 9460 ld.w r3, (r4, 0x0) + 27f0: 60c8 addu r3, r2 + 27f2: 9335 ld.w r1, (r3, 0x54) + 27f4: 3001 movi r0, 1 + 27f6: 6840 and r1, r0 + 27f8: 3940 cmpnei r1, 0 + 27fa: 0c03 bf 0x2800 // 2800 + 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; + 27fc: b317 st.w r0, (r3, 0x5c) + 27fe: 0424 br 0x2846 // 2846 + else if((EPT0->MISR&EPT_TRGEV1_INT)==EPT_TRGEV1_INT) //TRGEV1 interrupt + 2800: 9335 ld.w r1, (r3, 0x54) + 2802: 3002 movi r0, 2 + 2804: 6840 and r1, r0 + 2806: 3940 cmpnei r1, 0 + 2808: 0bfa bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_TRGEV2_INT)==EPT_TRGEV2_INT) //TRGEV2 interrupt + 280a: 9335 ld.w r1, (r3, 0x54) + 280c: 3004 movi r0, 4 + 280e: 6840 and r1, r0 + 2810: 3940 cmpnei r1, 0 + 2812: 0bf5 bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_TRGEV3_INT)==EPT_TRGEV3_INT) //TRGEV3 interrupt + 2814: 9335 ld.w r1, (r3, 0x54) + 2816: 3008 movi r0, 8 + 2818: 6840 and r1, r0 + 281a: 3940 cmpnei r1, 0 + 281c: 0bf0 bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_CAP_LD0)==EPT_CAP_LD0) //Capture Load to CMPA interrupt + 281e: 9335 ld.w r1, (r3, 0x54) + 2820: 3010 movi r0, 16 + 2822: 6840 and r1, r0 + 2824: 3940 cmpnei r1, 0 + 2826: 0c1f bf 0x2864 // 2864 + EPT0->ICR=EPT_CAP_LD0; + 2828: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIRT); + 282a: 3200 movi r2, 0 + 282c: 3101 movi r1, 1 + 282e: 3000 movi r0, 0 + 2830: e3fffa5c bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIFT); + 2834: 3201 movi r2, 1 + 2836: 3101 movi r1, 1 + 2838: 3001 movi r0, 1 + 283a: e3fffa57 bsr 0x1ce8 // 1ce8 + R_CMPA_BUF=EPT0->CMPA; //Low voltage counter + 283e: 9460 ld.w r3, (r4, 0x0) + 2840: 934b ld.w r2, (r3, 0x2c) + 2842: 1272 lrw r3, 0x200001e0 // 2988 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2844: 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 + 2846: 9460 ld.w r3, (r4, 0x0) + 2848: 3280 movi r2, 128 + 284a: 60c8 addu r3, r2 + 284c: 932b ld.w r1, (r3, 0x2c) + 284e: 3001 movi r0, 1 + 2850: 6840 and r1, r0 + 2852: 3940 cmpnei r1, 0 + 2854: 0c61 bf 0x2916 // 2916 + { + 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; + 2856: 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; + } +} + 2858: d9ee2001 ld.w r15, (r14, 0x4) + 285c: 9880 ld.w r4, (r14, 0x0) + 285e: 1402 addi r14, r14, 8 + 2860: 1463 ipop + 2862: 1461 nir + else if((EPT0->MISR&EPT_CAP_LD1)==EPT_CAP_LD1) //Capture Load to CMPB interrupt + 2864: 9335 ld.w r1, (r3, 0x54) + 2866: 3020 movi r0, 32 + 2868: 6840 and r1, r0 + 286a: 3940 cmpnei r1, 0 + 286c: 0c10 bf 0x288c // 288c + EPT0->ICR=EPT_CAP_LD1; + 286e: b317 st.w r0, (r3, 0x5c) + EXTI_trigger_CMD(ENABLE,EXI_PIN0,_EXIRT); + 2870: 3200 movi r2, 0 + 2872: 3101 movi r1, 1 + 2874: 3001 movi r0, 1 + 2876: e3fffa39 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(DISABLE,EXI_PIN0,_EXIFT); + 287a: 3201 movi r2, 1 + 287c: 3101 movi r1, 1 + 287e: 3000 movi r0, 0 + 2880: e3fffa34 bsr 0x1ce8 // 1ce8 + R_CMPB_BUF=EPT0->CMPB; //Duty counter + 2884: 9460 ld.w r3, (r4, 0x0) + 2886: 934c ld.w r2, (r3, 0x30) + 2888: 1261 lrw r3, 0x200001dc // 298c + 288a: 07dd br 0x2844 // 2844 + else if((EPT0->MISR&EPT_CAP_LD2)==EPT_CAP_LD2) //Capture Load to CMPC interrupt + 288c: 9335 ld.w r1, (r3, 0x54) + 288e: 3040 movi r0, 64 + 2890: 6840 and r1, r0 + 2892: 3940 cmpnei r1, 0 + 2894: 0bb4 bt 0x27fc // 27fc + else if((EPT0->MISR&EPT_CAP_LD3)==EPT_CAP_LD3) //Capture Load to CMPD interrupt + 2896: 9335 ld.w r1, (r3, 0x54) + 2898: 6848 and r1, r2 + 289a: 3940 cmpnei r1, 0 + 289c: 0c03 bf 0x28a2 // 28a2 + EPT0->ICR=EPT_CDD; + 289e: b357 st.w r2, (r3, 0x5c) + 28a0: 07d3 br 0x2846 // 2846 + else if((EPT0->MISR&EPT_CAU)==EPT_CAU) //Up-Counting phase CNT = CMPA interrupt + 28a2: 3280 movi r2, 128 + 28a4: 9335 ld.w r1, (r3, 0x54) + 28a6: 4241 lsli r2, r2, 1 + 28a8: 6848 and r1, r2 + 28aa: 3940 cmpnei r1, 0 + 28ac: 0bf9 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CAD)==EPT_CAD) //Down-Counting phase CNT = CMPA interrupt + 28ae: 3280 movi r2, 128 + 28b0: 9335 ld.w r1, (r3, 0x54) + 28b2: 4242 lsli r2, r2, 2 + 28b4: 6848 and r1, r2 + 28b6: 3940 cmpnei r1, 0 + 28b8: 0bf3 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CBU)==EPT_CBU) //Up-Counting phase CNT = CMPB interrupt + 28ba: 3280 movi r2, 128 + 28bc: 9335 ld.w r1, (r3, 0x54) + 28be: 4243 lsli r2, r2, 3 + 28c0: 6848 and r1, r2 + 28c2: 3940 cmpnei r1, 0 + 28c4: 0bed bt 0x289e // 289e + else if((EPT0->MISR&EPT_CBD)==EPT_CBD) //Down-Counting phase CNT = CMPB interrupt + 28c6: 3280 movi r2, 128 + 28c8: 9335 ld.w r1, (r3, 0x54) + 28ca: 4244 lsli r2, r2, 4 + 28cc: 6848 and r1, r2 + 28ce: 3940 cmpnei r1, 0 + 28d0: 0be7 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CCU)==EPT_CCU) //Up-Counting phase CNT = CMPC interrupt + 28d2: 3280 movi r2, 128 + 28d4: 9335 ld.w r1, (r3, 0x54) + 28d6: 4245 lsli r2, r2, 5 + 28d8: 6848 and r1, r2 + 28da: 3940 cmpnei r1, 0 + 28dc: 0be1 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CCD)==EPT_CCD) //Down-Counting phase CNT = CMPC interrupt + 28de: 3280 movi r2, 128 + 28e0: 9335 ld.w r1, (r3, 0x54) + 28e2: 4246 lsli r2, r2, 6 + 28e4: 6848 and r1, r2 + 28e6: 3940 cmpnei r1, 0 + 28e8: 0bdb bt 0x289e // 289e + else if((EPT0->MISR&EPT_CDU)==EPT_CDU) //Up-Counting phase CNT = CMPD interrupt + 28ea: 3280 movi r2, 128 + 28ec: 9335 ld.w r1, (r3, 0x54) + 28ee: 4247 lsli r2, r2, 7 + 28f0: 6848 and r1, r2 + 28f2: 3940 cmpnei r1, 0 + 28f4: 0bd5 bt 0x289e // 289e + else if((EPT0->MISR&EPT_CDD)==EPT_CDD) //Down-Counting phase CNT = CMPD interrupt + 28f6: 3280 movi r2, 128 + 28f8: 9335 ld.w r1, (r3, 0x54) + 28fa: 4248 lsli r2, r2, 8 + 28fc: 6848 and r1, r2 + 28fe: 3940 cmpnei r1, 0 + 2900: 0bcf bt 0x289e // 289e + else if((EPT0->MISR&EPT_PEND)==EPT_PEND) //End of cycle interrupt + 2902: 3280 movi r2, 128 + 2904: 9335 ld.w r1, (r3, 0x54) + 2906: 4249 lsli r2, r2, 9 + 2908: 6848 and r1, r2 + 290a: 3940 cmpnei r1, 0 + 290c: 0f9d bf 0x2846 // 2846 + EPT0->ICR=EPT_PEND; + 290e: b357 st.w r2, (r3, 0x5c) + EPT_Stop(); + 2910: e3fffd20 bsr 0x2350 // 2350 + 2914: 0799 br 0x2846 // 2846 + else if((EPT0->EMMISR&EPT_EP1_EMINT)==EPT_EP1_EMINT) //interrupt flag of EP1 event + 2916: 932b ld.w r1, (r3, 0x2c) + 2918: 3002 movi r0, 2 + 291a: 6840 and r1, r0 + 291c: 3940 cmpnei r1, 0 + 291e: 0b9c bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP2_EMINT)==EPT_EP2_EMINT) //interrupt flag of EP2 event + 2920: 932b ld.w r1, (r3, 0x2c) + 2922: 3004 movi r0, 4 + 2924: 6840 and r1, r0 + 2926: 3940 cmpnei r1, 0 + 2928: 0b97 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP3_EMINT)==EPT_EP3_EMINT) //interrupt flag of EP3 event + 292a: 932b ld.w r1, (r3, 0x2c) + 292c: 3008 movi r0, 8 + 292e: 6840 and r1, r0 + 2930: 3940 cmpnei r1, 0 + 2932: 0b92 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP4_EMINT)==EPT_EP4_EMINT) //interrupt flag of EP4 event + 2934: 932b ld.w r1, (r3, 0x2c) + 2936: 3010 movi r0, 16 + 2938: 6840 and r1, r0 + 293a: 3940 cmpnei r1, 0 + 293c: 0b8d bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP5_EMINT)==EPT_EP5_EMINT) //interrupt flag of EP5 event + 293e: 932b ld.w r1, (r3, 0x2c) + 2940: 3020 movi r0, 32 + 2942: 6840 and r1, r0 + 2944: 3940 cmpnei r1, 0 + 2946: 0b88 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP6_EMINT)==EPT_EP6_EMINT) //interrupt flag of EP6 event + 2948: 932b ld.w r1, (r3, 0x2c) + 294a: 3040 movi r0, 64 + 294c: 6840 and r1, r0 + 294e: 3940 cmpnei r1, 0 + 2950: 0b83 bt 0x2856 // 2856 + else if((EPT0->EMMISR&EPT_EP7_EMINT)==EPT_EP7_EMINT) //interrupt flag of EP7 event + 2952: 932b ld.w r1, (r3, 0x2c) + 2954: 6848 and r1, r2 + 2956: 3940 cmpnei r1, 0 + 2958: 0c03 bf 0x295e // 295e + EPT0->EMICR=EPT_EOM_FAULT_EMINT; + 295a: b34d st.w r2, (r3, 0x34) +} + 295c: 077e br 0x2858 // 2858 + else if((EPT0->EMMISR&EPT_CPU_FAULT_EMINT)==EPT_CPU_FAULT_EMINT) //interrupt flag of CPU_FAULT event + 295e: 3280 movi r2, 128 + 2960: 932b ld.w r1, (r3, 0x2c) + 2962: 4241 lsli r2, r2, 1 + 2964: 6848 and r1, r2 + 2966: 3940 cmpnei r1, 0 + 2968: 0bf9 bt 0x295a // 295a + else if((EPT0->EMMISR&EPT_MEM_FAULT_EMINT)==EPT_MEM_FAULT_EMINT) //interrupt flag of MEM_FAULT event + 296a: 3280 movi r2, 128 + 296c: 932b ld.w r1, (r3, 0x2c) + 296e: 4242 lsli r2, r2, 2 + 2970: 6848 and r1, r2 + 2972: 3940 cmpnei r1, 0 + 2974: 0bf3 bt 0x295a // 295a + else if((EPT0->EMMISR&EPT_EOM_FAULT_EMINT)==EPT_EOM_FAULT_EMINT) //interrupt flag of EOM_FAULT event + 2976: 3280 movi r2, 128 + 2978: 932b ld.w r1, (r3, 0x2c) + 297a: 4243 lsli r2, r2, 3 + 297c: 6848 and r1, r2 + 297e: 3940 cmpnei r1, 0 + 2980: 0bed bt 0x295a // 295a + 2982: 076b br 0x2858 // 2858 + 2984: 20000020 .long 0x20000020 + 2988: 200001e0 .long 0x200001e0 + 298c: 200001dc .long 0x200001dc + +Disassembly of section .text.WWDTHandler: + +00002990 : +//WWDT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void WWDTHandler(void) +{ + 2990: 1460 nie + 2992: 1462 ipush + 2994: 14d2 push r4-r5, r15 + WWDT->ICR=0X01; + 2996: 10ab lrw r5, 0x20000010 // 29c0 + 2998: 3401 movi r4, 1 + 299a: 9560 ld.w r3, (r5, 0x0) + 299c: b385 st.w r4, (r3, 0x14) + WWDT_CNT_Load(0xFF); + 299e: 30ff movi r0, 255 + 29a0: e3fffbb4 bsr 0x2108 // 2108 + if((WWDT->MISR&WWDT_EVI)==WWDT_EVI) //WWDT EVI interrupt + 29a4: 9540 ld.w r2, (r5, 0x0) + 29a6: 9263 ld.w r3, (r2, 0xc) + 29a8: 68d0 and r3, r4 + 29aa: 3b40 cmpnei r3, 0 + 29ac: 0c02 bf 0x29b0 // 29b0 + { + WWDT->ICR = WWDT_EVI; + 29ae: b285 st.w r4, (r2, 0x14) + } +} + 29b0: d9ee2002 ld.w r15, (r14, 0x8) + 29b4: 98a1 ld.w r5, (r14, 0x4) + 29b6: 9880 ld.w r4, (r14, 0x0) + 29b8: 1403 addi r14, r14, 12 + 29ba: 1463 ipop + 29bc: 1461 nir + 29be: 0000 bkpt + 29c0: 20000010 .long 0x20000010 + +Disassembly of section .text.GPT0IntHandler: + +000029c4 : +//GPT0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void GPT0IntHandler(void) +{ + 29c4: 1460 nie + 29c6: 1462 ipush + // ISR content ... + if((GPT0->MISR&GPT_INT_TRGEV0)==GPT_INT_TRGEV0) //TRGEV0 interrupt + 29c8: 107e lrw r3, 0x20000024 // 2a40 + 29ca: 3101 movi r1, 1 + 29cc: 9360 ld.w r3, (r3, 0x0) + 29ce: 237f addi r3, 128 + 29d0: 9355 ld.w r2, (r3, 0x54) + 29d2: 6884 and r2, r1 + 29d4: 3a40 cmpnei r2, 0 + 29d6: 0c04 bf 0x29de // 29de + { + 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; + 29d8: 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; + } +} + 29da: 1463 ipop + 29dc: 1461 nir + else if((GPT0->MISR&GPT_INT_TRGEV1)==GPT_INT_TRGEV1) //TRGEV1 interrupt + 29de: 9355 ld.w r2, (r3, 0x54) + 29e0: 3102 movi r1, 2 + 29e2: 6884 and r2, r1 + 29e4: 3a40 cmpnei r2, 0 + 29e6: 0bf9 bt 0x29d8 // 29d8 + else if((GPT0->MISR&GPT_INT_CAPLD0)==GPT_INT_CAPLD0) //Capture Load to CMPA interrupt + 29e8: 9355 ld.w r2, (r3, 0x54) + 29ea: 3110 movi r1, 16 + 29ec: 6884 and r2, r1 + 29ee: 3a40 cmpnei r2, 0 + 29f0: 0bf4 bt 0x29d8 // 29d8 + else if((GPT0->MISR&GPT_INT_CAPLD1)==GPT_INT_CAPLD1) //Capture Load to CMPB interrupt + 29f2: 9355 ld.w r2, (r3, 0x54) + 29f4: 3120 movi r1, 32 + 29f6: 6884 and r2, r1 + 29f8: 3a40 cmpnei r2, 0 + 29fa: 0bef bt 0x29d8 // 29d8 + else if((GPT0->MISR&GPT_INT_CAU)==GPT_INT_CAU) //Up-Counting phase CNT = CMPA Interrupt + 29fc: 3280 movi r2, 128 + 29fe: 9335 ld.w r1, (r3, 0x54) + 2a00: 4241 lsli r2, r2, 1 + 2a02: 6848 and r1, r2 + 2a04: 3940 cmpnei r1, 0 + 2a06: 0c03 bf 0x2a0c // 2a0c + GPT0->ICR = GPT_INT_PEND; + 2a08: b357 st.w r2, (r3, 0x5c) +} + 2a0a: 07e8 br 0x29da // 29da + else if((GPT0->MISR&GPT_INT_CAD)==GPT_INT_CAD) //Down-Counting phase CNT = CMPA Interrupt + 2a0c: 3280 movi r2, 128 + 2a0e: 9335 ld.w r1, (r3, 0x54) + 2a10: 4242 lsli r2, r2, 2 + 2a12: 6848 and r1, r2 + 2a14: 3940 cmpnei r1, 0 + 2a16: 0bf9 bt 0x2a08 // 2a08 + else if((GPT0->MISR&GPT_INT_CBU)==GPT_INT_CBU) //Up-Counting phase CNT = CMPB Interrupt + 2a18: 3280 movi r2, 128 + 2a1a: 9335 ld.w r1, (r3, 0x54) + 2a1c: 4243 lsli r2, r2, 3 + 2a1e: 6848 and r1, r2 + 2a20: 3940 cmpnei r1, 0 + 2a22: 0bf3 bt 0x2a08 // 2a08 + else if((GPT0->MISR&GPT_INT_CBD)==GPT_INT_CBD) //Down-Counting phase CNT = CMPB Interrupt + 2a24: 3280 movi r2, 128 + 2a26: 9335 ld.w r1, (r3, 0x54) + 2a28: 4244 lsli r2, r2, 4 + 2a2a: 6848 and r1, r2 + 2a2c: 3940 cmpnei r1, 0 + 2a2e: 0bed bt 0x2a08 // 2a08 + else if((GPT0->MISR&GPT_INT_PEND)==GPT_INT_PEND) //End of cycle interrupt + 2a30: 3280 movi r2, 128 + 2a32: 9335 ld.w r1, (r3, 0x54) + 2a34: 4249 lsli r2, r2, 9 + 2a36: 6848 and r1, r2 + 2a38: 3940 cmpnei r1, 0 + 2a3a: 0be7 bt 0x2a08 // 2a08 + 2a3c: 07cf br 0x29da // 29da + 2a3e: 0000 bkpt + 2a40: 20000024 .long 0x20000024 + +Disassembly of section .text.RTCIntHandler: + +00002a44 : +//RTC Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void RTCIntHandler(void) +{ + 2a44: 1460 nie + 2a46: 1462 ipush + // ISR content ... + if((RTC->MISR&ALRA_INT)==ALRA_INT) //Interrupt of alarm A + 2a48: 1079 lrw r3, 0x20000018 // 2aac + 2a4a: 3101 movi r1, 1 + 2a4c: 9360 ld.w r3, (r3, 0x0) + 2a4e: 934a ld.w r2, (r3, 0x28) + 2a50: 6884 and r2, r1 + 2a52: 3a40 cmpnei r2, 0 + 2a54: 0c14 bf 0x2a7c // 2a7c + { + RTC->ICR=ALRA_INT; + RTC->KEY=0XCA53; + 2a56: 1057 lrw r2, 0xca53 // 2ab0 + RTC->ICR=ALRA_INT; + 2a58: b32b st.w r1, (r3, 0x2c) + RTC->KEY=0XCA53; + 2a5a: b34c st.w r2, (r3, 0x30) + RTC->CR=RTC->CR|0x01; + 2a5c: 9342 ld.w r2, (r3, 0x8) + 2a5e: 6c84 or r2, r1 + 2a60: b342 st.w r2, (r3, 0x8) + RTC->TIMR=(0x10<<16)|(0x00<<8)|(0x00); //Hour bit6->0:am 1:pm + 2a62: 3280 movi r2, 128 + 2a64: 424d lsli r2, r2, 13 + 2a66: b340 st.w r2, (r3, 0x0) + while(RTC->CR&0x02); //busy TIMR DATR ALRAR ALRBR Update done + 2a68: 3102 movi r1, 2 + 2a6a: 9342 ld.w r2, (r3, 0x8) + 2a6c: 6884 and r2, r1 + 2a6e: 3a40 cmpnei r2, 0 + 2a70: 0bfd bt 0x2a6a // 2a6a + RTC->CR &= ~0x1; + 2a72: 9342 ld.w r2, (r3, 0x8) + 2a74: 3a80 bclri r2, 0 + 2a76: 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; + } +} + 2a78: 1463 ipop + 2a7a: 1461 nir + else if((RTC->MISR&ALRB_INT)==ALRB_INT) //Interrupt of alarm B + 2a7c: 934a ld.w r2, (r3, 0x28) + 2a7e: 3102 movi r1, 2 + 2a80: 6884 and r2, r1 + 2a82: 3a40 cmpnei r2, 0 + 2a84: 0c03 bf 0x2a8a // 2a8a + RTC->ICR=RTC_TRGEV1_INT; + 2a86: b32b st.w r1, (r3, 0x2c) +} + 2a88: 07f8 br 0x2a78 // 2a78 + else if((RTC->MISR&CPRD_INT)==CPRD_INT) //Interrupt of alarm CPRD + 2a8a: 934a ld.w r2, (r3, 0x28) + 2a8c: 3104 movi r1, 4 + 2a8e: 6884 and r2, r1 + 2a90: 3a40 cmpnei r2, 0 + 2a92: 0bfa bt 0x2a86 // 2a86 + else if((RTC->MISR&RTC_TRGEV0_INT)==RTC_TRGEV0_INT) //Interrupt of trigger event 0 + 2a94: 934a ld.w r2, (r3, 0x28) + 2a96: 3108 movi r1, 8 + 2a98: 6884 and r2, r1 + 2a9a: 3a40 cmpnei r2, 0 + 2a9c: 0bf5 bt 0x2a86 // 2a86 + else if((RTC->MISR&RTC_TRGEV1_INT)==RTC_TRGEV1_INT) //Interrupt of trigger event 1 + 2a9e: 934a ld.w r2, (r3, 0x28) + 2aa0: 3110 movi r1, 16 + 2aa2: 6884 and r2, r1 + 2aa4: 3a40 cmpnei r2, 0 + 2aa6: 0bf0 bt 0x2a86 // 2a86 + 2aa8: 07e8 br 0x2a78 // 2a78 + 2aaa: 0000 bkpt + 2aac: 20000018 .long 0x20000018 + 2ab0: 0000ca53 .long 0x0000ca53 + +Disassembly of section .text.UART0IntHandler: + +00002ab4 : +//UART0 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART0IntHandler(void) +{ + 2ab4: 1460 nie + 2ab6: 1462 ipush + 2ab8: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART0->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2aba: 1076 lrw r3, 0x20000040 // 2b10 + 2abc: 3102 movi r1, 2 + 2abe: 9360 ld.w r3, (r3, 0x0) + 2ac0: 9343 ld.w r2, (r3, 0xc) + 2ac2: 6884 and r2, r1 + 2ac4: 3a40 cmpnei r2, 0 + 2ac6: 0c0b bf 0x2adc // 2adc + { + UART0->ISR=UART_RX_INT_S; + 2ac8: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART0); + 2aca: 9300 ld.w r0, (r3, 0x0) + UART0_RecvINT_Processing(inchar); + 2acc: 7400 zextb r0, r0 + 2ace: e00003a1 bsr 0x3210 // 3210 + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + { + UART0->ISR=UART_TX_DONE_S; + } + +} + 2ad2: d9ee2000 ld.w r15, (r14, 0x0) + 2ad6: 1401 addi r14, r14, 4 + 2ad8: 1463 ipop + 2ada: 1461 nir + else if( (UART0->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2adc: 9343 ld.w r2, (r3, 0xc) + 2ade: 3101 movi r1, 1 + 2ae0: 6884 and r2, r1 + 2ae2: 3a40 cmpnei r2, 0 + 2ae4: 0c03 bf 0x2aea // 2aea + UART0->ISR=UART_TX_IOV_S; + 2ae6: b323 st.w r1, (r3, 0xc) + 2ae8: 07f5 br 0x2ad2 // 2ad2 + else if ((UART0->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2aea: 9343 ld.w r2, (r3, 0xc) + 2aec: 3108 movi r1, 8 + 2aee: 6884 and r2, r1 + 2af0: 3a40 cmpnei r2, 0 + 2af2: 0bfa bt 0x2ae6 // 2ae6 + else if ((UART0->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2af4: 9343 ld.w r2, (r3, 0xc) + 2af6: 3104 movi r1, 4 + 2af8: 6884 and r2, r1 + 2afa: 3a40 cmpnei r2, 0 + 2afc: 0bf5 bt 0x2ae6 // 2ae6 + else if ((UART0->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2afe: 3280 movi r2, 128 + 2b00: 9323 ld.w r1, (r3, 0xc) + 2b02: 424c lsli r2, r2, 12 + 2b04: 6848 and r1, r2 + 2b06: 3940 cmpnei r1, 0 + 2b08: 0fe5 bf 0x2ad2 // 2ad2 + UART0->ISR=UART_TX_DONE_S; + 2b0a: b343 st.w r2, (r3, 0xc) +} + 2b0c: 07e3 br 0x2ad2 // 2ad2 + 2b0e: 0000 bkpt + 2b10: 20000040 .long 0x20000040 + +Disassembly of section .text.UART1IntHandler: + +00002b14 : +//UART1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART1IntHandler(void) +{ + 2b14: 1460 nie + 2b16: 1462 ipush + 2b18: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART1->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2b1a: 107f lrw r3, 0x2000003c // 2b94 + 2b1c: 3102 movi r1, 2 + 2b1e: 9360 ld.w r3, (r3, 0x0) + 2b20: 9343 ld.w r2, (r3, 0xc) + 2b22: 6884 and r2, r1 + 2b24: 3a40 cmpnei r2, 0 + 2b26: 0c0b bf 0x2b3c // 2b3c + { + UART1->ISR=UART_RX_INT_S; + 2b28: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART1); + 2b2a: 9300 ld.w r0, (r3, 0x0) + UART1_RecvINT_Processing(inchar); + 2b2c: 7400 zextb r0, r0 + 2b2e: e000038d bsr 0x3248 // 3248 + if(RS485_Comm_Flag1 == 0x01){ + RS485_Comm_End1 ++; + } + + } +} + 2b32: d9ee2000 ld.w r15, (r14, 0x0) + 2b36: 1401 addi r14, r14, 4 + 2b38: 1463 ipop + 2b3a: 1461 nir + else if( (UART1->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2b3c: 9323 ld.w r1, (r3, 0xc) + 2b3e: 3201 movi r2, 1 + 2b40: 6848 and r1, r2 + 2b42: 3940 cmpnei r1, 0 + 2b44: 0c0d bf 0x2b5e // 2b5e + UART1->ISR=UART_TX_INT_S; + 2b46: b343 st.w r2, (r3, 0xc) + RS485_Comming1 = 0x01; + 2b48: 1074 lrw r3, 0x20000134 // 2b98 + 2b4a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag1 == 0x01){ + 2b4c: 1074 lrw r3, 0x20000138 // 2b9c + 2b4e: 9360 ld.w r3, (r3, 0x0) + 2b50: 3b41 cmpnei r3, 1 + 2b52: 0bf0 bt 0x2b32 // 2b32 + RS485_Comm_Start1 ++; + 2b54: 1053 lrw r2, 0x2000013c // 2ba0 + RS485_Comm_End1 ++; + 2b56: 9260 ld.w r3, (r2, 0x0) + 2b58: 2300 addi r3, 1 + 2b5a: b260 st.w r3, (r2, 0x0) +} + 2b5c: 07eb br 0x2b32 // 2b32 + else if ((UART1->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2b5e: 9343 ld.w r2, (r3, 0xc) + 2b60: 3108 movi r1, 8 + 2b62: 6884 and r2, r1 + 2b64: 3a40 cmpnei r2, 0 + 2b66: 0c03 bf 0x2b6c // 2b6c + UART1->ISR=UART_TX_IOV_S; + 2b68: b323 st.w r1, (r3, 0xc) + 2b6a: 07e4 br 0x2b32 // 2b32 + else if ((UART1->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2b6c: 9343 ld.w r2, (r3, 0xc) + 2b6e: 3104 movi r1, 4 + 2b70: 6884 and r2, r1 + 2b72: 3a40 cmpnei r2, 0 + 2b74: 0bfa bt 0x2b68 // 2b68 + else if ((UART1->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2b76: 3180 movi r1, 128 + 2b78: 9303 ld.w r0, (r3, 0xc) + 2b7a: 412c lsli r1, r1, 12 + 2b7c: 6804 and r0, r1 + 2b7e: 3840 cmpnei r0, 0 + 2b80: 0fd9 bf 0x2b32 // 2b32 + UART1->ISR=UART_TX_DONE_S; + 2b82: b323 st.w r1, (r3, 0xc) + RS485_Comming1 = 0x00; + 2b84: 1065 lrw r3, 0x20000134 // 2b98 + 2b86: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag1 == 0x01){ + 2b88: 1065 lrw r3, 0x20000138 // 2b9c + 2b8a: 9360 ld.w r3, (r3, 0x0) + 2b8c: 3b41 cmpnei r3, 1 + 2b8e: 0bd2 bt 0x2b32 // 2b32 + RS485_Comm_End1 ++; + 2b90: 1045 lrw r2, 0x20000140 // 2ba4 + 2b92: 07e2 br 0x2b56 // 2b56 + 2b94: 2000003c .long 0x2000003c + 2b98: 20000134 .long 0x20000134 + 2b9c: 20000138 .long 0x20000138 + 2ba0: 2000013c .long 0x2000013c + 2ba4: 20000140 .long 0x20000140 + +Disassembly of section .text.UART2IntHandler: + +00002ba8 : +//UART2 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void UART2IntHandler(void) +{ + 2ba8: 1460 nie + 2baa: 1462 ipush + 2bac: 14d0 push r15 + char inchar = 0; + + // ISR content ... + if ((UART2->ISR&UART_RX_INT_S)==UART_RX_INT_S) //RX interrupt + 2bae: 107f lrw r3, 0x20000038 // 2c28 + 2bb0: 3102 movi r1, 2 + 2bb2: 9360 ld.w r3, (r3, 0x0) + 2bb4: 9343 ld.w r2, (r3, 0xc) + 2bb6: 6884 and r2, r1 + 2bb8: 3a40 cmpnei r2, 0 + 2bba: 0c0b bf 0x2bd0 // 2bd0 + { + UART2->ISR=UART_RX_INT_S; + 2bbc: b323 st.w r1, (r3, 0xc) + inchar = CSP_UART_GET_DATA(UART2); + 2bbe: 9300 ld.w r0, (r3, 0x0) + UART2_RecvINT_Processing(inchar); + 2bc0: 7400 zextb r0, r0 + 2bc2: e0000395 bsr 0x32ec // 32ec + RS485_Comm_End ++; + } + + } + +} + 2bc6: d9ee2000 ld.w r15, (r14, 0x0) + 2bca: 1401 addi r14, r14, 4 + 2bcc: 1463 ipop + 2bce: 1461 nir + else if( (UART2->ISR&UART_TX_INT_S)==UART_TX_INT_S ) //TX interrupt + 2bd0: 9323 ld.w r1, (r3, 0xc) + 2bd2: 3201 movi r2, 1 + 2bd4: 6848 and r1, r2 + 2bd6: 3940 cmpnei r1, 0 + 2bd8: 0c0d bf 0x2bf2 // 2bf2 + UART2->ISR=UART_TX_INT_S; + 2bda: b343 st.w r2, (r3, 0xc) + RS485_Comming = 0x01; + 2bdc: 1074 lrw r3, 0x20000124 // 2c2c + 2bde: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2be0: 1074 lrw r3, 0x20000128 // 2c30 + 2be2: 9360 ld.w r3, (r3, 0x0) + 2be4: 3b41 cmpnei r3, 1 + 2be6: 0bf0 bt 0x2bc6 // 2bc6 + RS485_Comm_Start ++; + 2be8: 1053 lrw r2, 0x2000012c // 2c34 + RS485_Comm_End ++; + 2bea: 9260 ld.w r3, (r2, 0x0) + 2bec: 2300 addi r3, 1 + 2bee: b260 st.w r3, (r2, 0x0) +} + 2bf0: 07eb br 0x2bc6 // 2bc6 + else if ((UART2->ISR&UART_RX_IOV_S)==UART_RX_IOV_S) //RX overrun interrupt + 2bf2: 9343 ld.w r2, (r3, 0xc) + 2bf4: 3108 movi r1, 8 + 2bf6: 6884 and r2, r1 + 2bf8: 3a40 cmpnei r2, 0 + 2bfa: 0c03 bf 0x2c00 // 2c00 + UART2->ISR=UART_TX_IOV_S; + 2bfc: b323 st.w r1, (r3, 0xc) + 2bfe: 07e4 br 0x2bc6 // 2bc6 + else if ((UART2->ISR&UART_TX_IOV_S)==UART_TX_IOV_S) //TX overrun interrupt + 2c00: 9343 ld.w r2, (r3, 0xc) + 2c02: 3104 movi r1, 4 + 2c04: 6884 and r2, r1 + 2c06: 3a40 cmpnei r2, 0 + 2c08: 0bfa bt 0x2bfc // 2bfc + else if ((UART2->ISR&UART_TX_DONE_S)==UART_TX_DONE_S) + 2c0a: 3180 movi r1, 128 + 2c0c: 9303 ld.w r0, (r3, 0xc) + 2c0e: 412c lsli r1, r1, 12 + 2c10: 6804 and r0, r1 + 2c12: 3840 cmpnei r0, 0 + 2c14: 0fd9 bf 0x2bc6 // 2bc6 + UART2->ISR=UART_TX_DONE_S; + 2c16: b323 st.w r1, (r3, 0xc) + RS485_Comming = 0x00; + 2c18: 1065 lrw r3, 0x20000124 // 2c2c + 2c1a: b340 st.w r2, (r3, 0x0) + if(RS485_Comm_Flag == 0x01){ + 2c1c: 1065 lrw r3, 0x20000128 // 2c30 + 2c1e: 9360 ld.w r3, (r3, 0x0) + 2c20: 3b41 cmpnei r3, 1 + 2c22: 0bd2 bt 0x2bc6 // 2bc6 + RS485_Comm_End ++; + 2c24: 1045 lrw r2, 0x20000130 // 2c38 + 2c26: 07e2 br 0x2bea // 2bea + 2c28: 20000038 .long 0x20000038 + 2c2c: 20000124 .long 0x20000124 + 2c30: 20000128 .long 0x20000128 + 2c34: 2000012c .long 0x2000012c + 2c38: 20000130 .long 0x20000130 + +Disassembly of section .text.SPI0IntHandler: + +00002c3c : +//SPI Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SPI0IntHandler(void) +{ + 2c3c: 1460 nie + 2c3e: 1462 ipush + // ISR content ... + if((SPI0->MISR&SPI_PORIM)==SPI_PORIM) //Receive Overrun Interrupt + 2c40: 1178 lrw r3, 0x20000034 // 2d20 + 2c42: 3101 movi r1, 1 + 2c44: 9360 ld.w r3, (r3, 0x0) + 2c46: 9347 ld.w r2, (r3, 0x1c) + 2c48: 6884 and r2, r1 + 2c4a: 3a40 cmpnei r2, 0 + 2c4c: 0c03 bf 0x2c52 // 2c52 + } + } + } + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + { + SPI0->ICR = SPI_TXIM; + 2c4e: b328 st.w r1, (r3, 0x20) + } + +} + 2c50: 0407 br 0x2c5e // 2c5e + else if((SPI0->MISR&SPI_RTIM)==SPI_RTIM) //Receive Timeout Interrupt + 2c52: 9347 ld.w r2, (r3, 0x1c) + 2c54: 3002 movi r0, 2 + 2c56: 6880 and r2, r0 + 2c58: 3a40 cmpnei r2, 0 + 2c5a: 0c04 bf 0x2c62 // 2c62 + SPI0->ICR = SPI_RTIM; + 2c5c: b308 st.w r0, (r3, 0x20) +} + 2c5e: 1463 ipop + 2c60: 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 + 2c62: 9347 ld.w r2, (r3, 0x1c) + 2c64: 3004 movi r0, 4 + 2c66: 6880 and r2, r0 + 2c68: 3a40 cmpnei r2, 0 + 2c6a: 0c55 bf 0x2d14 // 2d14 + SPI0->ICR = SPI_RXIM; + 2c6c: b308 st.w r0, (r3, 0x20) + if(SPI0->DR==0xaa) + 2c6e: 9302 ld.w r0, (r3, 0x8) + 2c70: 32aa movi r2, 170 + 2c72: 6482 cmpne r0, r2 + 2c74: 083e bt 0x2cf0 // 2cf0 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c76: 3102 movi r1, 2 + 2c78: 9343 ld.w r2, (r3, 0xc) + 2c7a: 6884 and r2, r1 + 2c7c: 3a40 cmpnei r2, 0 + 2c7e: 0ffd bf 0x2c78 // 2c78 + SPI0->DR = 0x11; + 2c80: 3211 movi r2, 17 + 2c82: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c84: 3110 movi r1, 16 + 2c86: 9343 ld.w r2, (r3, 0xc) + 2c88: 6884 and r2, r1 + 2c8a: 3a40 cmpnei r2, 0 + 2c8c: 0bfd bt 0x2c86 // 2c86 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2c8e: 3102 movi r1, 2 + 2c90: 9343 ld.w r2, (r3, 0xc) + 2c92: 6884 and r2, r1 + 2c94: 3a40 cmpnei r2, 0 + 2c96: 0ffd bf 0x2c90 // 2c90 + SPI0->DR = 0x12; + 2c98: 3212 movi r2, 18 + 2c9a: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2c9c: 3110 movi r1, 16 + 2c9e: 9343 ld.w r2, (r3, 0xc) + 2ca0: 6884 and r2, r1 + 2ca2: 3a40 cmpnei r2, 0 + 2ca4: 0bfd bt 0x2c9e // 2c9e + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2ca6: 3102 movi r1, 2 + 2ca8: 9343 ld.w r2, (r3, 0xc) + 2caa: 6884 and r2, r1 + 2cac: 3a40 cmpnei r2, 0 + 2cae: 0ffd bf 0x2ca8 // 2ca8 + SPI0->DR = 0x13; + 2cb0: 3213 movi r2, 19 + 2cb2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cb4: 3110 movi r1, 16 + 2cb6: 9343 ld.w r2, (r3, 0xc) + 2cb8: 6884 and r2, r1 + 2cba: 3a40 cmpnei r2, 0 + 2cbc: 0bfd bt 0x2cb6 // 2cb6 + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2cbe: 3102 movi r1, 2 + 2cc0: 9343 ld.w r2, (r3, 0xc) + 2cc2: 6884 and r2, r1 + 2cc4: 3a40 cmpnei r2, 0 + 2cc6: 0ffd bf 0x2cc0 // 2cc0 + SPI0->DR = 0x14; + 2cc8: 3214 movi r2, 20 + 2cca: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ccc: 3110 movi r1, 16 + 2cce: 9343 ld.w r2, (r3, 0xc) + 2cd0: 6884 and r2, r1 + 2cd2: 3a40 cmpnei r2, 0 + 2cd4: 0bfd bt 0x2cce // 2cce + while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full? + 2cd6: 3102 movi r1, 2 + 2cd8: 9343 ld.w r2, (r3, 0xc) + 2cda: 6884 and r2, r1 + 2cdc: 3a40 cmpnei r2, 0 + 2cde: 0ffd bf 0x2cd8 // 2cd8 + SPI0->DR = 0x15; + 2ce0: 3215 movi r2, 21 + 2ce2: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2ce4: 3110 movi r1, 16 + 2ce6: 9343 ld.w r2, (r3, 0xc) + 2ce8: 6884 and r2, r1 + 2cea: 3a40 cmpnei r2, 0 + 2cec: 0bfd bt 0x2ce6 // 2ce6 + 2cee: 07b8 br 0x2c5e // 2c5e + if(((SPI0->SR) & SSP_TFE)!=SSP_TFE) + 2cf0: 9343 ld.w r2, (r3, 0xc) + 2cf2: 6884 and r2, r1 + 2cf4: 3a40 cmpnei r2, 0 + 2cf6: 0bb4 bt 0x2c5e // 2c5e + SPI0->DR=0x0; //FIFO=0 + 2cf8: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2cfa: 3110 movi r1, 16 + SPI0->DR=0x0; //FIFO=0 + 2cfc: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2cfe: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d00: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d02: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d04: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d06: b342 st.w r2, (r3, 0x8) + SPI0->DR=0x0; //FIFO=0 + 2d08: b342 st.w r2, (r3, 0x8) + while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over? + 2d0a: 9343 ld.w r2, (r3, 0xc) + 2d0c: 6884 and r2, r1 + 2d0e: 3a40 cmpnei r2, 0 + 2d10: 0bfd bt 0x2d0a // 2d0a + 2d12: 07a6 br 0x2c5e // 2c5e + else if((SPI0->MISR&SPI_TXIM)==SPI_TXIM) //Transmit FIFO Interrupt + 2d14: 9347 ld.w r2, (r3, 0x1c) + 2d16: 3108 movi r1, 8 + 2d18: 6884 and r2, r1 + 2d1a: 3a40 cmpnei r2, 0 + 2d1c: 0b99 bt 0x2c4e // 2c4e + 2d1e: 07a0 br 0x2c5e // 2c5e + 2d20: 20000034 .long 0x20000034 + +Disassembly of section .text.SIO0IntHandler: + +00002d24 : +//SIO Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void SIO0IntHandler(void) +{ + 2d24: 1460 nie + 2d26: 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) + 2d28: 1073 lrw r3, 0x2000002c // 2d74 + 2d2a: 3104 movi r1, 4 + 2d2c: 9360 ld.w r3, (r3, 0x0) + 2d2e: 9349 ld.w r2, (r3, 0x24) + 2d30: 6884 and r2, r1 + 2d32: 3a40 cmpnei r2, 0 + 2d34: 0c02 bf 0x2d38 // 2d38 + { + SIO0->ICR=0X04; + 2d36: b32b st.w r1, (r3, 0x2c) + + } + if(SIO0->MISR&0X01) //TXDNE 发送完成 + 2d38: 9349 ld.w r2, (r3, 0x24) + 2d3a: 3101 movi r1, 1 + 2d3c: 6884 and r2, r1 + 2d3e: 3a40 cmpnei r2, 0 + 2d40: 0c02 bf 0x2d44 // 2d44 + { + SIO0->ICR=0X01; + 2d42: 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 + 2d44: 9349 ld.w r2, (r3, 0x24) + 2d46: 3102 movi r1, 2 + 2d48: 6884 and r2, r1 + 2d4a: 3a40 cmpnei r2, 0 + 2d4c: 0c03 bf 0x2d52 // 2d52 + { + SIO0->ICR=0X10; + } + else if(SIO0->MISR&0X020) //TIMEOUT + { + SIO0->ICR=0X20; + 2d4e: b32b st.w r1, (r3, 0x2c) + } +} + 2d50: 0410 br 0x2d70 // 2d70 + else if(SIO0->MISR&0X08) //RXBUFFULL + 2d52: 9349 ld.w r2, (r3, 0x24) + 2d54: 3108 movi r1, 8 + 2d56: 6884 and r2, r1 + 2d58: 3a40 cmpnei r2, 0 + 2d5a: 0bfa bt 0x2d4e // 2d4e + else if(SIO0->MISR&0X010) //BREAK + 2d5c: 9349 ld.w r2, (r3, 0x24) + 2d5e: 3110 movi r1, 16 + 2d60: 6884 and r2, r1 + 2d62: 3a40 cmpnei r2, 0 + 2d64: 0bf5 bt 0x2d4e // 2d4e + else if(SIO0->MISR&0X020) //TIMEOUT + 2d66: 9349 ld.w r2, (r3, 0x24) + 2d68: 3120 movi r1, 32 + 2d6a: 6884 and r2, r1 + 2d6c: 3a40 cmpnei r2, 0 + 2d6e: 0bf0 bt 0x2d4e // 2d4e +} + 2d70: 1463 ipop + 2d72: 1461 nir + 2d74: 2000002c .long 0x2000002c + +Disassembly of section .text.EXI0IntHandler: + +00002d78 : +//EXT0/16 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI0IntHandler(void) +{ + 2d78: 1460 nie + 2d7a: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN0)==EXI_PIN0) //EXT0 Interrupt + 2d7c: 106a lrw r3, 0x2000005c // 2da4 + 2d7e: 3101 movi r1, 1 + 2d80: 9360 ld.w r3, (r3, 0x0) + 2d82: 237f addi r3, 128 + 2d84: 934c ld.w r2, (r3, 0x30) + 2d86: 6884 and r2, r1 + 2d88: 3a40 cmpnei r2, 0 + 2d8a: 0c04 bf 0x2d92 // 2d92 + { + SYSCON->EXICR = EXI_PIN0; + 2d8c: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + { + SYSCON->EXICR = EXI_PIN16; + } +} + 2d8e: 1463 ipop + 2d90: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN16)==EXI_PIN16) //EXT16 Interrupt + 2d92: 3280 movi r2, 128 + 2d94: 932c ld.w r1, (r3, 0x30) + 2d96: 4249 lsli r2, r2, 9 + 2d98: 6848 and r1, r2 + 2d9a: 3940 cmpnei r1, 0 + 2d9c: 0ff9 bf 0x2d8e // 2d8e + SYSCON->EXICR = EXI_PIN16; + 2d9e: b34b st.w r2, (r3, 0x2c) +} + 2da0: 07f7 br 0x2d8e // 2d8e + 2da2: 0000 bkpt + 2da4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI1IntHandler: + +00002da8 : +//EXT1/17 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI1IntHandler(void) +{ + 2da8: 1460 nie + 2daa: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN1)==EXI_PIN1) //EXT1 Interrupt + 2dac: 106a lrw r3, 0x2000005c // 2dd4 + 2dae: 3102 movi r1, 2 + 2db0: 9360 ld.w r3, (r3, 0x0) + 2db2: 237f addi r3, 128 + 2db4: 934c ld.w r2, (r3, 0x30) + 2db6: 6884 and r2, r1 + 2db8: 3a40 cmpnei r2, 0 + 2dba: 0c04 bf 0x2dc2 // 2dc2 + { + SYSCON->EXICR = EXI_PIN1; + 2dbc: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + { + SYSCON->EXICR = EXI_PIN17; + } +} + 2dbe: 1463 ipop + 2dc0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN17)==EXI_PIN17) //EXT17 Interrupt + 2dc2: 3280 movi r2, 128 + 2dc4: 932c ld.w r1, (r3, 0x30) + 2dc6: 424a lsli r2, r2, 10 + 2dc8: 6848 and r1, r2 + 2dca: 3940 cmpnei r1, 0 + 2dcc: 0ff9 bf 0x2dbe // 2dbe + SYSCON->EXICR = EXI_PIN17; + 2dce: b34b st.w r2, (r3, 0x2c) +} + 2dd0: 07f7 br 0x2dbe // 2dbe + 2dd2: 0000 bkpt + 2dd4: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI2to3IntHandler: + +00002dd8 : +//EXI2~3 18~19Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI2to3IntHandler(void) +{ + 2dd8: 1460 nie + 2dda: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN2)==EXI_PIN2) //EXT2 Interrupt + 2ddc: 1070 lrw r3, 0x2000005c // 2e1c + 2dde: 3104 movi r1, 4 + 2de0: 9360 ld.w r3, (r3, 0x0) + 2de2: 237f addi r3, 128 + 2de4: 934c ld.w r2, (r3, 0x30) + 2de6: 6884 and r2, r1 + 2de8: 3a40 cmpnei r2, 0 + 2dea: 0c04 bf 0x2df2 // 2df2 + SYSCON->EXICR = EXI_PIN2; +// RLY_State_Multi_Control(); + } + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + { + SYSCON->EXICR = EXI_PIN3; + 2dec: b32b st.w r1, (r3, 0x2c) + } + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + { + SYSCON->EXICR = EXI_PIN19; + } +} + 2dee: 1463 ipop + 2df0: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN3)==EXI_PIN3) //EXT3 Interrupt + 2df2: 934c ld.w r2, (r3, 0x30) + 2df4: 3108 movi r1, 8 + 2df6: 6884 and r2, r1 + 2df8: 3a40 cmpnei r2, 0 + 2dfa: 0bf9 bt 0x2dec // 2dec + else if ((SYSCON->EXIRS&EXI_PIN18)==EXI_PIN18) //EXT18 Interrupt + 2dfc: 3280 movi r2, 128 + 2dfe: 932c ld.w r1, (r3, 0x30) + 2e00: 424b lsli r2, r2, 11 + 2e02: 6848 and r1, r2 + 2e04: 3940 cmpnei r1, 0 + 2e06: 0c03 bf 0x2e0c // 2e0c + SYSCON->EXICR = EXI_PIN19; + 2e08: b34b st.w r2, (r3, 0x2c) +} + 2e0a: 07f2 br 0x2dee // 2dee + else if ((SYSCON->EXIRS&EXI_PIN19)==EXI_PIN19) //EXT19 Interrupt + 2e0c: 3280 movi r2, 128 + 2e0e: 932c ld.w r1, (r3, 0x30) + 2e10: 424c lsli r2, r2, 12 + 2e12: 6848 and r1, r2 + 2e14: 3940 cmpnei r1, 0 + 2e16: 0bf9 bt 0x2e08 // 2e08 + 2e18: 07eb br 0x2dee // 2dee + 2e1a: 0000 bkpt + 2e1c: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI4to9IntHandler: + +00002e20 : +//EXI4~9 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI4to9IntHandler(void) +{ + 2e20: 1460 nie + 2e22: 1462 ipush + 2e24: 14d0 push r15 + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN4)==EXI_PIN4) //EXT4 Interrupt + 2e26: 1079 lrw r3, 0x2000005c // 2e88 + 2e28: 3280 movi r2, 128 + 2e2a: 9360 ld.w r3, (r3, 0x0) + 2e2c: 60c8 addu r3, r2 + 2e2e: 932c ld.w r1, (r3, 0x30) + 2e30: 3010 movi r0, 16 + 2e32: 6840 and r1, r0 + 2e34: 3940 cmpnei r1, 0 + 2e36: 0c03 bf 0x2e3c // 2e3c + BusBusy_Task(); + + } + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + { + SYSCON->EXICR = EXI_PIN6; + 2e38: b30b st.w r0, (r3, 0x2c) + 2e3a: 0409 br 0x2e4c // 2e4c + else if ((SYSCON->EXIRS&EXI_PIN5)==EXI_PIN5) //EXT5 Interrupt + 2e3c: 932c ld.w r1, (r3, 0x30) + 2e3e: 3020 movi r0, 32 + 2e40: 6840 and r1, r0 + 2e42: 3940 cmpnei r1, 0 + 2e44: 0c09 bf 0x2e56 // 2e56 + SYSCON->EXICR = EXI_PIN5; + 2e46: b30b st.w r0, (r3, 0x2c) + BusBusy_Task(); + 2e48: e0000414 bsr 0x3670 // 3670 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + { + SYSCON->EXICR = EXI_PIN9; + } + +} + 2e4c: d9ee2000 ld.w r15, (r14, 0x0) + 2e50: 1401 addi r14, r14, 4 + 2e52: 1463 ipop + 2e54: 1461 nir + else if ((SYSCON->EXIRS&EXI_PIN6)==EXI_PIN6) //EXT6 Interrupt + 2e56: 932c ld.w r1, (r3, 0x30) + 2e58: 3040 movi r0, 64 + 2e5a: 6840 and r1, r0 + 2e5c: 3940 cmpnei r1, 0 + 2e5e: 0bed bt 0x2e38 // 2e38 + else if ((SYSCON->EXIRS&EXI_PIN7)==EXI_PIN7) //EXT7 Interrupt + 2e60: 932c ld.w r1, (r3, 0x30) + 2e62: 6848 and r1, r2 + 2e64: 3940 cmpnei r1, 0 + 2e66: 0c03 bf 0x2e6c // 2e6c + SYSCON->EXICR = EXI_PIN9; + 2e68: b34b st.w r2, (r3, 0x2c) +} + 2e6a: 07f1 br 0x2e4c // 2e4c + else if ((SYSCON->EXIRS&EXI_PIN8)==EXI_PIN8) //EXT8 Interrupt + 2e6c: 3280 movi r2, 128 + 2e6e: 932c ld.w r1, (r3, 0x30) + 2e70: 4241 lsli r2, r2, 1 + 2e72: 6848 and r1, r2 + 2e74: 3940 cmpnei r1, 0 + 2e76: 0bf9 bt 0x2e68 // 2e68 + else if ((SYSCON->EXIRS&EXI_PIN9)==EXI_PIN9) //EXT9 Interrupt + 2e78: 3280 movi r2, 128 + 2e7a: 932c ld.w r1, (r3, 0x30) + 2e7c: 4242 lsli r2, r2, 2 + 2e7e: 6848 and r1, r2 + 2e80: 3940 cmpnei r1, 0 + 2e82: 0bf3 bt 0x2e68 // 2e68 + 2e84: 07e4 br 0x2e4c // 2e4c + 2e86: 0000 bkpt + 2e88: 2000005c .long 0x2000005c + +Disassembly of section .text.EXI10to15IntHandler: + +00002e8c : +//EXI4 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void EXI10to15IntHandler(void) +{ + 2e8c: 1460 nie + 2e8e: 1462 ipush + // ISR content ... + if ((SYSCON->EXIRS&EXI_PIN10)==EXI_PIN10) //EXT10 Interrupt + 2e90: 1076 lrw r3, 0x2000005c // 2ee8 + 2e92: 3280 movi r2, 128 + 2e94: 9360 ld.w r3, (r3, 0x0) + 2e96: 237f addi r3, 128 + 2e98: 932c ld.w r1, (r3, 0x30) + 2e9a: 4243 lsli r2, r2, 3 + 2e9c: 6848 and r1, r2 + 2e9e: 3940 cmpnei r1, 0 + 2ea0: 0c03 bf 0x2ea6 // 2ea6 + SYSCON->EXICR = EXI_PIN14; + + } + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + { + SYSCON->EXICR = EXI_PIN15; + 2ea2: b34b st.w r2, (r3, 0x2c) + } +} + 2ea4: 041f br 0x2ee2 // 2ee2 + else if ((SYSCON->EXIRS&EXI_PIN11)==EXI_PIN11) //EXT11 Interrupt + 2ea6: 3280 movi r2, 128 + 2ea8: 932c ld.w r1, (r3, 0x30) + 2eaa: 4244 lsli r2, r2, 4 + 2eac: 6848 and r1, r2 + 2eae: 3940 cmpnei r1, 0 + 2eb0: 0bf9 bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN12)==EXI_PIN12) //EXT12 Interrupt + 2eb2: 3280 movi r2, 128 + 2eb4: 932c ld.w r1, (r3, 0x30) + 2eb6: 4245 lsli r2, r2, 5 + 2eb8: 6848 and r1, r2 + 2eba: 3940 cmpnei r1, 0 + 2ebc: 0bf3 bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN13)==EXI_PIN13) //EXT13 Interrupt + 2ebe: 3280 movi r2, 128 + 2ec0: 932c ld.w r1, (r3, 0x30) + 2ec2: 4246 lsli r2, r2, 6 + 2ec4: 6848 and r1, r2 + 2ec6: 3940 cmpnei r1, 0 + 2ec8: 0bed bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN14)==EXI_PIN14) //EXT14 Interrupt + 2eca: 3280 movi r2, 128 + 2ecc: 932c ld.w r1, (r3, 0x30) + 2ece: 4247 lsli r2, r2, 7 + 2ed0: 6848 and r1, r2 + 2ed2: 3940 cmpnei r1, 0 + 2ed4: 0be7 bt 0x2ea2 // 2ea2 + else if ((SYSCON->EXIRS&EXI_PIN15)==EXI_PIN15) //EXT15 Interrupt + 2ed6: 3280 movi r2, 128 + 2ed8: 932c ld.w r1, (r3, 0x30) + 2eda: 4248 lsli r2, r2, 8 + 2edc: 6848 and r1, r2 + 2ede: 3940 cmpnei r1, 0 + 2ee0: 0be1 bt 0x2ea2 // 2ea2 +} + 2ee2: 1463 ipop + 2ee4: 1461 nir + 2ee6: 0000 bkpt + 2ee8: 2000005c .long 0x2000005c + +Disassembly of section .text.LPTIntHandler: + +00002eec : +//LPT Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void LPTIntHandler(void) +{ + 2eec: 1460 nie + 2eee: 1462 ipush + // ISR content ... + if((LPT->MISR&LPT_TRGEV0)==LPT_TRGEV0) //TRGEV0 interrupt + 2ef0: 106b lrw r3, 0x20000014 // 2f1c + 2ef2: 3101 movi r1, 1 + 2ef4: 9360 ld.w r3, (r3, 0x0) + 2ef6: 934e ld.w r2, (r3, 0x38) + 2ef8: 6884 and r2, r1 + 2efa: 3a40 cmpnei r2, 0 + 2efc: 0c03 bf 0x2f02 // 2f02 + { + LPT->ICR = LPT_MATCH; + } + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + { + LPT->ICR = LPT_PEND; + 2efe: b330 st.w r1, (r3, 0x40) + } +} + 2f00: 040b br 0x2f16 // 2f16 + else if((LPT->MISR&LPT_MATCH)==LPT_MATCH) //MATCH interrupt + 2f02: 934e ld.w r2, (r3, 0x38) + 2f04: 3102 movi r1, 2 + 2f06: 6884 and r2, r1 + 2f08: 3a40 cmpnei r2, 0 + 2f0a: 0bfa bt 0x2efe // 2efe + else if((LPT->MISR&LPT_PEND)==LPT_PEND) //PEND interrupt + 2f0c: 934e ld.w r2, (r3, 0x38) + 2f0e: 3104 movi r1, 4 + 2f10: 6884 and r2, r1 + 2f12: 3a40 cmpnei r2, 0 + 2f14: 0bf5 bt 0x2efe // 2efe +} + 2f16: 1463 ipop + 2f18: 1461 nir + 2f1a: 0000 bkpt + 2f1c: 20000014 .long 0x20000014 + +Disassembly of section .text.BT0IntHandler: + +00002f20 : +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +U8_T BT_TEMP_State = 1; +void BT0IntHandler(void) +{ + 2f20: 1460 nie + 2f22: 1462 ipush + // ISR content ... + if((BT0->MISR&BT_PEND)==BT_PEND) //BT0 PEND interrupt + 2f24: 1071 lrw r3, 0x2000000c // 2f68 + 2f26: 3101 movi r1, 1 + 2f28: 9360 ld.w r3, (r3, 0x0) + 2f2a: 934c ld.w r2, (r3, 0x30) + 2f2c: 6884 and r2, r1 + 2f2e: 3a40 cmpnei r2, 0 + 2f30: 0c0a bf 0x2f44 // 2f44 + { + BT0->ICR = BT_PEND; + 2f32: b32d st.w r1, (r3, 0x34) + + //BT_Stop_Low(BT0); + + BT0->CR =BT0->CR & ~(0x01<<6); + 2f34: 9341 ld.w r2, (r3, 0x4) + 2f36: 3a86 bclri r2, 6 + 2f38: b341 st.w r2, (r3, 0x4) + BT0->RSSR &=0X0; + 2f3a: 9340 ld.w r2, (r3, 0x0) + 2f3c: 3200 movi r2, 0 + 2f3e: b340 st.w r2, (r3, 0x0) + } + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + { + BT0->ICR = BT_EVTRG; + } +} + 2f40: 1463 ipop + 2f42: 1461 nir + else if((BT0->MISR&BT_CMP)==BT_CMP) //BT0 CMP Match interrupt + 2f44: 934c ld.w r2, (r3, 0x30) + 2f46: 3102 movi r1, 2 + 2f48: 6884 and r2, r1 + 2f4a: 3a40 cmpnei r2, 0 + 2f4c: 0c03 bf 0x2f52 // 2f52 + BT0->ICR = BT_EVTRG; + 2f4e: b32d st.w r1, (r3, 0x34) +} + 2f50: 07f8 br 0x2f40 // 2f40 + else if((BT0->MISR&BT_OVF)==BT_OVF) //BT0 OVF interrupt + 2f52: 934c ld.w r2, (r3, 0x30) + 2f54: 3104 movi r1, 4 + 2f56: 6884 and r2, r1 + 2f58: 3a40 cmpnei r2, 0 + 2f5a: 0bfa bt 0x2f4e // 2f4e + else if((BT0->MISR&BT_EVTRG)==BT_EVTRG) //BT0 Event trigger interrupt + 2f5c: 934c ld.w r2, (r3, 0x30) + 2f5e: 3108 movi r1, 8 + 2f60: 6884 and r2, r1 + 2f62: 3a40 cmpnei r2, 0 + 2f64: 0bf5 bt 0x2f4e // 2f4e + 2f66: 07ed br 0x2f40 // 2f40 + 2f68: 2000000c .long 0x2000000c + +Disassembly of section .text.BT1IntHandler: + +00002f6c : +//BT1 Interrupt +//EntryParameter:NONE +//ReturnValue:NONE +/*************************************************************/ +void BT1IntHandler(void) +{ + 2f6c: 1460 nie + 2f6e: 1462 ipush + 2f70: 14d0 push r15 + static U8_T NUM = 0; + // ISR content ... + if((BT1->MISR&BT_PEND)==BT_PEND) //BT1 PEND interrupt + 2f72: 1079 lrw r3, 0x20000008 // 2fd4 + 2f74: 3101 movi r1, 1 + 2f76: 9360 ld.w r3, (r3, 0x0) + 2f78: 934c ld.w r2, (r3, 0x30) + 2f7a: 6884 and r2, r1 + 2f7c: 3a40 cmpnei r2, 0 + 2f7e: 0c03 bf 0x2f84 // 2f84 + { + BT1->ICR = BT_OVF; + } + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + { + BT1->ICR = BT_EVTRG; + 2f80: b32d st.w r1, (r3, 0x34) + } +} + 2f82: 0418 br 0x2fb2 // 2fb2 + else if((BT1->MISR&BT_CMP)==BT_CMP) //BT1 CMP Match interrupt + 2f84: 934c ld.w r2, (r3, 0x30) + 2f86: 3102 movi r1, 2 + 2f88: 6884 and r2, r1 + 2f8a: 3a40 cmpnei r2, 0 + 2f8c: 0c18 bf 0x2fbc // 2fbc + BT1->ICR = BT_CMP; + 2f8e: b32d st.w r1, (r3, 0x34) + NUM++; + 2f90: 1072 lrw r3, 0x200000b0 // 2fd8 + 2f92: 8340 ld.b r2, (r3, 0x0) + 2f94: 2200 addi r2, 1 + 2f96: 7488 zextb r2, r2 + SysTick_100us++; + 2f98: 9321 ld.w r1, (r3, 0x4) + 2f9a: 2100 addi r1, 1 + if(NUM >= 10){ + 2f9c: 3a09 cmphsi r2, 10 + NUM++; + 2f9e: a340 st.b r2, (r3, 0x0) + SysTick_100us++; + 2fa0: b321 st.w r1, (r3, 0x4) + if(NUM >= 10){ + 2fa2: 0c08 bf 0x2fb2 // 2fb2 + NUM = 0; + 2fa4: 3200 movi r2, 0 + 2fa6: a340 st.b r2, (r3, 0x0) + SysTick_1ms++; + 2fa8: 9342 ld.w r2, (r3, 0x8) + 2faa: 2200 addi r2, 1 + 2fac: b342 st.w r2, (r3, 0x8) + BusIdle_Task(); + 2fae: e0000341 bsr 0x3630 // 3630 +} + 2fb2: d9ee2000 ld.w r15, (r14, 0x0) + 2fb6: 1401 addi r14, r14, 4 + 2fb8: 1463 ipop + 2fba: 1461 nir + else if((BT1->MISR&BT_OVF)==BT_OVF) //BT1 OVF interrupt + 2fbc: 934c ld.w r2, (r3, 0x30) + 2fbe: 3104 movi r1, 4 + 2fc0: 6884 and r2, r1 + 2fc2: 3a40 cmpnei r2, 0 + 2fc4: 0bde bt 0x2f80 // 2f80 + else if((BT1->MISR&BT_EVTRG)==BT_EVTRG) //BT1 Event trigger interrupt + 2fc6: 934c ld.w r2, (r3, 0x30) + 2fc8: 3108 movi r1, 8 + 2fca: 6884 and r2, r1 + 2fcc: 3a40 cmpnei r2, 0 + 2fce: 0bd9 bt 0x2f80 // 2f80 + 2fd0: 07f1 br 0x2fb2 // 2fb2 + 2fd2: 0000 bkpt + 2fd4: 20000008 .long 0x20000008 + 2fd8: 200000b0 .long 0x200000b0 + +Disassembly of section .text.PriviledgeVioHandler: + +00002fdc : + 2fdc: 783c jmp r15 + +Disassembly of section .text.PendTrapHandler: + +00002fde : + // ISR content ... + +} + +void PendTrapHandler(void) +{ + 2fde: 1460 nie + 2fe0: 1462 ipush + // ISR content ... + +} + 2fe2: 1463 ipop + 2fe4: 1461 nir + +Disassembly of section .text.Trap3Handler: + +00002fe6 : + 2fe6: 1460 nie + 2fe8: 1462 ipush + 2fea: 1463 ipop + 2fec: 1461 nir + +Disassembly of section .text.Trap2Handler: + +00002fee : + 2fee: 1460 nie + 2ff0: 1462 ipush + 2ff2: 1463 ipop + 2ff4: 1461 nir + +Disassembly of section .text.Trap1Handler: + +00002ff6 : + 2ff6: 1460 nie + 2ff8: 1462 ipush + 2ffa: 1463 ipop + 2ffc: 1461 nir + +Disassembly of section .text.Trap0Handler: + +00002ffe : + 2ffe: 1460 nie + 3000: 1462 ipush + 3002: 1463 ipop + 3004: 1461 nir + +Disassembly of section .text.UnrecExecpHandler: + +00003006 : + 3006: 1460 nie + 3008: 1462 ipush + 300a: 1463 ipop + 300c: 1461 nir + +Disassembly of section .text.BreakPointHandler: + +0000300e : + 300e: 1460 nie + 3010: 1462 ipush + 3012: 1463 ipop + 3014: 1461 nir + +Disassembly of section .text.AccessErrHandler: + +00003016 : + 3016: 1460 nie + 3018: 1462 ipush + 301a: 1463 ipop + 301c: 1461 nir + +Disassembly of section .text.IllegalInstrHandler: + +0000301e : + 301e: 1460 nie + 3020: 1462 ipush + 3022: 1463 ipop + 3024: 1461 nir + +Disassembly of section .text.MisalignedHandler: + +00003026 : + 3026: 1460 nie + 3028: 1462 ipush + 302a: 1463 ipop + 302c: 1461 nir + +Disassembly of section .text.CNTAIntHandler: + +0000302e : + 302e: 1460 nie + 3030: 1462 ipush + 3032: 1463 ipop + 3034: 1461 nir + +Disassembly of section .text.I2CIntHandler: + +00003036 : + 3036: 1460 nie + 3038: 1462 ipush + 303a: 1463 ipop + 303c: 1461 nir + +Disassembly of section .text.__divsi3: + +00003040 <__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) +{ + 3040: 14c1 push r4 + int PSR; + __asm volatile( + 3042: c0006023 mfcr r3, cr<0, 0> + 3046: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 0; + 304a: 1046 lrw r2, 0x20000000 // 3060 <__divsi3+0x20> + 304c: 3400 movi r4, 0 + 304e: 9240 ld.w r2, (r2, 0x0) + 3050: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3052: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3054: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 3056: b221 st.w r1, (r2, 0x4) + __asm volatile( + 3058: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 305c: 9202 ld.w r0, (r2, 0x8) +} + 305e: 1481 pop r4 + 3060: 20000000 .long 0x20000000 + +Disassembly of section .text.__udivsi3: + +00003064 <__udivsi3>: + unsigned int __udivsi3 ( unsigned int a, unsigned int b) +{ + 3064: 14c1 push r4 + int PSR; + __asm volatile( + 3066: c0006023 mfcr r3, cr<0, 0> + 306a: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 306e: 1046 lrw r2, 0x20000000 // 3084 <__udivsi3+0x20> + 3070: 3401 movi r4, 1 + 3072: 9240 ld.w r2, (r2, 0x0) + 3074: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 3076: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 3078: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 307a: b221 st.w r1, (r2, 0x4) + __asm volatile( + 307c: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + + return HWD->QUOTIENT; + 3080: 9202 ld.w r0, (r2, 0x8) +} + 3082: 1481 pop r4 + 3084: 20000000 .long 0x20000000 + +Disassembly of section .text.__umodsi3: + +00003088 <__umodsi3>: + ); + return HWD->REMAIN; +} + +unsigned int __umodsi3 ( unsigned int a, unsigned int b) +{ + 3088: 14c1 push r4 + int PSR; + __asm volatile( + 308a: c0006023 mfcr r3, cr<0, 0> + 308e: c0807020 psrclr ie + "mfcr %0 , psr \n\r" + "psrclr ie \n\r" + : "=r"(PSR) + ); + + HWD->CR = 1; + 3092: 1046 lrw r2, 0x20000000 // 30a8 <__umodsi3+0x20> + 3094: 3401 movi r4, 1 + 3096: 9240 ld.w r2, (r2, 0x0) + 3098: b284 st.w r4, (r2, 0x10) + HWD->DIVIDENT = a; + HWD->DIVISOR = b; + + PSR |= 0x80000000; + 309a: 3bbf bseti r3, 31 + HWD->DIVIDENT = a; + 309c: b200 st.w r0, (r2, 0x0) + HWD->DIVISOR = b; + 309e: b221 st.w r1, (r2, 0x4) + __asm volatile( + 30a0: c0036420 mtcr r3, cr<0, 0> + "mtcr %0 , psr \n\r" + : + :"r"(PSR) + ); + return HWD->REMAIN; + 30a4: 9203 ld.w r0, (r2, 0xc) +} + 30a6: 1481 pop r4 + 30a8: 20000000 .long 0x20000000 + +Disassembly of section .text.CK_CPU_EnAllNormalIrq: + +000030ac : +} + + +void CK_CPU_EnAllNormalIrq(void) +{ + asm ("psrset ee,ie"); + 30ac: c1807420 psrset ee, ie +} + 30b0: 783c jmp r15 + +Disassembly of section .text.CK_CPU_DisAllNormalIrq: + +000030b2 : + +void CK_CPU_DisAllNormalIrq(void) +{ + asm ("psrclr ie"); + 30b2: c0807020 psrclr ie +} + 30b6: 783c jmp r15 + +Disassembly of section .text.UARTx_Init: + +000030b8 : +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 30b8: 14d2 push r4-r5, r15 + switch(uart_id){ + 30ba: 3841 cmpnei r0, 1 +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + 30bc: 6d07 mov r4, r1 + switch(uart_id){ + 30be: 0c1d bf 0x30f8 // 30f8 + 30c0: 3840 cmpnei r0, 0 + 30c2: 0c04 bf 0x30ca // 30ca + 30c4: 3842 cmpnei r0, 2 + 30c6: 0c3f bf 0x3144 // 3144 + GPIO_Init(GPIOB0,3,Output); + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + break; + } +} + 30c8: 1492 pop r4-r5, r15 + UART0_DeInit(); //clear all UART Register + 30ca: e3fff875 bsr 0x21b4 // 21b4 + UART_IO_Init(IO_UART0,0); //use PA0.1->RXD0, PA0.0->TXD0 + 30ce: 3100 movi r1, 0 + 30d0: 3000 movi r0, 0 + 30d2: e3fff8b1 bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 30d6: 1262 lrw r3, 0x20000040 // 31dc + 30d8: 31d0 movi r1, 208 + 30da: 9300 ld.w r0, (r3, 0x0) + 30dc: 3200 movi r2, 0 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 30de: 12a1 lrw r5, 0x2000020c // 31e0 + UARTInitRxTxIntEn(UART0,416,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled + 30e0: 4121 lsli r1, r1, 1 + 30e2: e3fff91f bsr 0x2320 // 2320 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 30e6: 3274 movi r2, 116 + 30e8: 3100 movi r1, 0 + 30ea: 6c17 mov r0, r5 + 30ec: e3fff43c bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_0].RecvTimeout = Recv_115200_TimeOut; + 30f0: 3303 movi r3, 3 + 30f2: b57a st.w r3, (r5, 0x68) + g_uart[UART_0].processing_cf = prt_cf; + 30f4: b59c st.w r4, (r5, 0x70) + break; + 30f6: 07e9 br 0x30c8 // 30c8 + UART1_DeInit(); //clear all UART Register + 30f8: e3fff86a bsr 0x21cc // 21cc + UART_IO_Init(IO_UART1,2); //use PA0.13->RXD1, PB0.0->TXD1 + 30fc: 3102 movi r1, 2 + 30fe: 3001 movi r0, 1 + 3100: e3fff89a bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART1,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 3104: 1178 lrw r3, 0x2000003c // 31e4 + 3106: 3200 movi r2, 0 + 3108: 9300 ld.w r0, (r3, 0x0) + 310a: 1138 lrw r1, 0x1388 // 31e8 + 310c: e3fff90a bsr 0x2320 // 2320 + UART1_Int_Enable(); + 3110: e3fff876 bsr 0x21fc // 21fc + memset(&g_uart[UART_1],0,sizeof(UART_t)); + 3114: 3274 movi r2, 116 + 3116: 3100 movi r1, 0 + 3118: 1115 lrw r0, 0x20000280 // 31ec + 311a: e3fff425 bsr 0x1964 // 1964 <__memset_fast> + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 311e: 1175 lrw r3, 0x2000028c // 31f0 + g_uart[UART_1].processing_cf = prt_cf; + 3120: b399 st.w r4, (r3, 0x64) + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 3122: 3203 movi r2, 3 + GPIO_Init(GPIOA0,13,Output); + 3124: 1194 lrw r4, 0x2000004c // 31f4 + 3126: 310d movi r1, 13 + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + 3128: b357 st.w r2, (r3, 0x5c) + GPIO_Init(GPIOA0,13,Output); + 312a: 9400 ld.w r0, (r4, 0x0) + 312c: 3200 movi r2, 0 + 312e: e3fff689 bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOA0,13); + 3132: 310d movi r1, 13 + 3134: 9400 ld.w r0, (r4, 0x0) + 3136: e3fff6ff bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOA0,13); + 313a: 9400 ld.w r0, (r4, 0x0) + 313c: 310d movi r1, 13 + GPIO_Write_Low(GPIOB0,3); + 313e: e3fff7c3 bsr 0x20c4 // 20c4 +} + 3142: 07c3 br 0x30c8 // 30c8 + memset(&g_uart[UART_2],0,sizeof(UART_t)); + 3144: 3274 movi r2, 116 + 3146: 3100 movi r1, 0 + 3148: 110c lrw r0, 0x200002f4 // 31f8 + 314a: e3fff40d bsr 0x1964 // 1964 <__memset_fast> + memset(&m_send,0,sizeof(MULIT_t)); + 314e: 3288 movi r2, 136 + 3150: 3100 movi r1, 0 + 3152: 110b lrw r0, 0x20000368 // 31fc + 3154: e3fff408 bsr 0x1964 // 1964 <__memset_fast> + m_send.HighBit_Flag = 0x01; + 3158: 116a lrw r3, 0x200003c8 // 3200 + 315a: 3201 movi r2, 1 + 315c: a345 st.b r2, (r3, 0x5) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 315e: 116a lrw r3, 0x2000030c // 3204 + g_uart[UART_2].processing_cf = prt_cf; + 3160: b396 st.w r4, (r3, 0x58) + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3162: 3203 movi r2, 3 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 3164: 1189 lrw r4, 0x20000048 // 3208 + 3166: 3105 movi r1, 5 + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + 3168: b354 st.w r2, (r3, 0x50) + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + 316a: 9400 ld.w r0, (r4, 0x0) + 316c: e3fff6da bsr 0x1f20 // 1f20 + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + 3170: 3205 movi r2, 5 + 3172: 3105 movi r1, 5 + 3174: 3002 movi r0, 2 + 3176: e3fff6e7 bsr 0x1f44 // 1f44 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + 317a: 3005 movi r0, 5 + 317c: e3fff76a bsr 0x2050 // 2050 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + 3180: 3201 movi r2, 1 + 3182: 3120 movi r1, 32 + 3184: 3001 movi r0, 1 + 3186: e3fff5b1 bsr 0x1ce8 // 1ce8 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + 318a: 3200 movi r2, 0 + 318c: 3120 movi r1, 32 + 318e: 3001 movi r0, 1 + 3190: e3fff5ac bsr 0x1ce8 // 1ce8 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + 3194: 3120 movi r1, 32 + 3196: 3001 movi r0, 1 + 3198: e3fff5c8 bsr 0x1d28 // 1d28 + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + 319c: 3120 movi r1, 32 + 319e: 9400 ld.w r0, (r4, 0x0) + 31a0: e3fff5de bsr 0x1d5c // 1d5c + EXI3_Int_Enable(); + 31a4: e3fff5de bsr 0x1d60 // 1d60 + UART2_DeInit(); //clear all UART Register + 31a8: e3fff81e bsr 0x21e4 // 21e4 + UART_IO_Init(IO_UART2,2); //use PB0.4->RXD1, PB0.5->TXD1 + 31ac: 3102 movi r1, 2 + 31ae: 3002 movi r0, 2 + 31b0: e3fff842 bsr 0x2234 // 2234 + UARTInitRxTxIntEn(UART2,5000,UART_PAR_NONE); //baudrate=sysclock 48M/416=115200 tx rx int enabled + 31b4: 1076 lrw r3, 0x20000038 // 320c + 31b6: 3200 movi r2, 0 + 31b8: 9300 ld.w r0, (r3, 0x0) + 31ba: 102c lrw r1, 0x1388 // 31e8 + 31bc: e3fff8b2 bsr 0x2320 // 2320 + UART2_Int_Enable(); + 31c0: e3fff82c bsr 0x2218 // 2218 + GPIO_Init(GPIOB0,3,Output); + 31c4: 3200 movi r2, 0 + 31c6: 3103 movi r1, 3 + 31c8: 9400 ld.w r0, (r4, 0x0) + 31ca: e3fff63b bsr 0x1e40 // 1e40 + GPIO_DriveStrength_EN(GPIOB0,3); + 31ce: 3103 movi r1, 3 + 31d0: 9400 ld.w r0, (r4, 0x0) + 31d2: e3fff6b1 bsr 0x1f34 // 1f34 + GPIO_Write_Low(GPIOB0,3); + 31d6: 9400 ld.w r0, (r4, 0x0) + 31d8: 3103 movi r1, 3 + 31da: 07b2 br 0x313e // 313e + 31dc: 20000040 .long 0x20000040 + 31e0: 2000020c .long 0x2000020c + 31e4: 2000003c .long 0x2000003c + 31e8: 00001388 .long 0x00001388 + 31ec: 20000280 .long 0x20000280 + 31f0: 2000028c .long 0x2000028c + 31f4: 2000004c .long 0x2000004c + 31f8: 200002f4 .long 0x200002f4 + 31fc: 20000368 .long 0x20000368 + 3200: 200003c8 .long 0x200003c8 + 3204: 2000030c .long 0x2000030c + 3208: 20000048 .long 0x20000048 + 320c: 20000038 .long 0x20000038 + +Disassembly of section .text.UART0_RecvINT_Processing: + +00003210 : + +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + 3210: 14c1 push r4 + if((g_uart[UART_0].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + 3212: 106b lrw r3, 0x2000024c // 323c + 3214: 8b33 ld.h r1, (r3, 0x26) + 3216: 3262 movi r2, 98 + 3218: 6449 cmplt r2, r1 + 321a: 0c03 bf 0x3220 // 3220 + 321c: 3200 movi r2, 0 + 321e: ab53 st.h r2, (r3, 0x26) + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 3220: 8b33 ld.h r1, (r3, 0x26) + 3222: 5982 addi r4, r1, 1 + 3224: ab93 st.h r4, (r3, 0x26) + 3226: 1047 lrw r2, 0x2000020c // 3240 + + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 3228: 1067 lrw r3, 0x200000b8 // 3244 + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 322a: 6048 addu r1, r2 + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 322c: 9360 ld.w r3, (r3, 0x0) + 322e: b27b st.w r3, (r2, 0x6c) + g_uart[UART_0].Receiving = 0x01; + 3230: 225f addi r2, 96 + 3232: 3301 movi r3, 1 + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + 3234: a100 st.b r0, (r1, 0x0) + g_uart[UART_0].Receiving = 0x01; + 3236: a264 st.b r3, (r2, 0x4) +} + 3238: 1481 pop r4 + 323a: 0000 bkpt + 323c: 2000024c .long 0x2000024c + 3240: 2000020c .long 0x2000020c + 3244: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART1_RecvINT_Processing: + +00003248 : + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + 3248: 14c1 push r4 + if((g_uart[UART_1].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_1].RecvLen = 0; + 324a: 106b lrw r3, 0x200002cc // 3274 + 324c: 8b2d ld.h r1, (r3, 0x1a) + 324e: 3262 movi r2, 98 + 3250: 6449 cmplt r2, r1 + 3252: 0c03 bf 0x3258 // 3258 + 3254: 3200 movi r2, 0 + 3256: ab4d st.h r2, (r3, 0x1a) + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + 3258: 8b4d ld.h r2, (r3, 0x1a) + 325a: 1028 lrw r1, 0x2000020c // 3278 + 325c: 5a82 addi r4, r2, 1 + 325e: 6084 addu r2, r1 + 3260: 2273 addi r2, 116 + 3262: a200 st.b r0, (r2, 0x0) + + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 3264: 217f addi r1, 128 + 3266: 1046 lrw r2, 0x200000b8 // 327c + 3268: 9240 ld.w r2, (r2, 0x0) + 326a: b158 st.w r2, (r1, 0x60) + g_uart[UART_1].Receiving = 0x01; + 326c: 3201 movi r2, 1 + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + 326e: ab8d st.h r4, (r3, 0x1a) + g_uart[UART_1].Receiving = 0x01; + 3270: a358 st.b r2, (r3, 0x18) +} + 3272: 1481 pop r4 + 3274: 200002cc .long 0x200002cc + 3278: 2000020c .long 0x2000020c + 327c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART1_TASK: + +00003280 : + + +void UART1_TASK(void){ + 3280: 14d4 push r4-r7, r15 + U8_T rev = 0xFF; + if(g_uart[UART_1].Receiving == 0x01){ + 3282: 10b5 lrw r5, 0x200002cc // 32d4 + 3284: 8578 ld.b r3, (r5, 0x18) + 3286: 3b41 cmpnei r3, 1 + 3288: 0825 bt 0x32d2 // 32d2 + if(SysTick_1ms - g_uart[UART_1].RecvIdleTiming > g_uart[UART_1].RecvTimeout){ + 328a: 1094 lrw r4, 0x2000028c // 32d8 + 328c: 10d4 lrw r6, 0x200000b8 // 32dc + 328e: 9660 ld.w r3, (r6, 0x0) + 3290: 9458 ld.w r2, (r4, 0x60) + 3292: 60ca subu r3, r2 + 3294: 9457 ld.w r2, (r4, 0x5c) + 3296: 64c8 cmphs r2, r3 + 3298: 081d bt 0x32d2 // 32d2 + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 329a: e3fff571 bsr 0x1d7c // 1d7c + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + 329e: 8ded ld.h r7, (r5, 0x1a) + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 32a0: 9660 ld.w r3, (r6, 0x0) + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + 32a2: 6c9f mov r2, r7 + 32a4: 102f lrw r1, 0x20000280 // 32e0 + 32a6: 1010 lrw r0, 0x200000bc // 32e4 + DealLen = g_uart[UART_1].RecvLen; + 32a8: 10d0 lrw r6, 0x200000fc // 32e8 + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + 32aa: b478 st.w r3, (r4, 0x60) + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + 32ac: e3fff3a0 bsr 0x19ec // 19ec <__memcpy_fast> + g_uart[UART_1].RecvLen = 0; + 32b0: 3300 movi r3, 0 + 32b2: ad6d st.h r3, (r5, 0x1a) + g_uart[UART_1].Receiving = 0; + 32b4: a578 st.b r3, (r5, 0x18) + DealLen = g_uart[UART_1].RecvLen; + 32b6: aef2 st.h r7, (r6, 0x24) + SYSCON_Int_Enable(); + 32b8: e3fff55c bsr 0x1d70 // 1d70 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_1].processing_cf != NULL){ + 32bc: 9479 ld.w r3, (r4, 0x64) + 32be: 3b40 cmpnei r3, 0 + 32c0: 0c04 bf 0x32c8 // 32c8 + rev = g_uart[UART_1].processing_cf(DealBuffer,DealLen); + 32c2: 8e32 ld.h r1, (r6, 0x24) + 32c4: 1008 lrw r0, 0x200000bc // 32e4 + 32c6: 7bcd jsr r3 + } + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 32c8: 3264 movi r2, 100 + 32ca: 3100 movi r1, 0 + 32cc: 1006 lrw r0, 0x200000bc // 32e4 + 32ce: e3fff34b bsr 0x1964 // 1964 <__memset_fast> + } + } +} + 32d2: 1494 pop r4-r7, r15 + 32d4: 200002cc .long 0x200002cc + 32d8: 2000028c .long 0x2000028c + 32dc: 200000b8 .long 0x200000b8 + 32e0: 20000280 .long 0x20000280 + 32e4: 200000bc .long 0x200000bc + 32e8: 200000fc .long 0x200000fc + +Disassembly of section .text.UART2_RecvINT_Processing: + +000032ec : + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + 32ec: 14c1 push r4 + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + 32ee: 104e lrw r2, 0x2000035a // 3324 + 32f0: 8a20 ld.h r1, (r2, 0x0) + 32f2: 3362 movi r3, 98 + 32f4: 644d cmplt r3, r1 + 32f6: 0c03 bf 0x32fc // 32fc + 32f8: 3300 movi r3, 0 + 32fa: aa60 st.h r3, (r2, 0x0) + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + 32fc: 8a60 ld.h r3, (r2, 0x0) + 32fe: 102b lrw r1, 0x2000020c // 3328 + 3300: 5b82 addi r4, r3, 1 + 3302: 60c4 addu r3, r1 + 3304: 23e7 addi r3, 232 + 3306: a300 st.b r0, (r3, 0x0) + 3308: aa80 st.h r4, (r2, 0x0) + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 330a: 1069 lrw r3, 0x200000b8 // 332c + 330c: 9340 ld.w r2, (r3, 0x0) + 330e: 3380 movi r3, 128 + 3310: 4361 lsli r3, r3, 1 + 3312: 60c4 addu r3, r1 + 3314: b355 st.w r2, (r3, 0x54) + g_uart[UART_2].Receiving = 0x01; + 3316: 33a6 movi r3, 166 + 3318: 4361 lsli r3, r3, 1 + 331a: 604c addu r1, r3 + 331c: 3301 movi r3, 1 + 331e: a160 st.b r3, (r1, 0x0) +} + 3320: 1481 pop r4 + 3322: 0000 bkpt + 3324: 2000035a .long 0x2000035a + 3328: 2000020c .long 0x2000020c + 332c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.UART2_TASK: + +00003330 : + + +void UART2_TASK(void){ + 3330: 14d4 push r4-r7, r15 + 3332: 1421 subi r14, r14, 4 + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + 3334: 10b7 lrw r5, 0x20000358 // 3390 + 3336: 8560 ld.b r3, (r5, 0x0) + 3338: 3b41 cmpnei r3, 1 + 333a: 0828 bt 0x338a // 338a + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + 333c: 1096 lrw r4, 0x2000030c // 3394 + 333e: 10d7 lrw r6, 0x200000b8 // 3398 + 3340: 9660 ld.w r3, (r6, 0x0) + 3342: 9455 ld.w r2, (r4, 0x54) + 3344: 60ca subu r3, r2 + 3346: 9454 ld.w r2, (r4, 0x50) + 3348: 64c8 cmphs r2, r3 + 334a: 0820 bt 0x338a // 338a + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + 334c: e3fff518 bsr 0x1d7c // 1d7c + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + 3350: 9660 ld.w r3, (r6, 0x0) + 3352: b475 st.w r3, (r4, 0x54) + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3354: 8d61 ld.h r3, (r5, 0x2) + 3356: 6c8f mov r2, r3 + 3358: 1031 lrw r1, 0x200002f4 // 339c + 335a: 1012 lrw r0, 0x200000bc // 33a0 + DealLen = g_uart[UART_2].RecvLen; + 335c: 10d2 lrw r6, 0x200000fc // 33a4 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 335e: b860 st.w r3, (r14, 0x0) + 3360: e3fff346 bsr 0x19ec // 19ec <__memcpy_fast> + DealLen = g_uart[UART_2].RecvLen; + 3364: 9860 ld.w r3, (r14, 0x0) + 3366: ae72 st.h r3, (r6, 0x24) + g_uart[UART_2].RecvLen = 0; + 3368: 3300 movi r3, 0 + 336a: ad61 st.h r3, (r5, 0x2) + g_uart[UART_2].Receiving = 0; + 336c: a560 st.b r3, (r5, 0x0) + SYSCON_Int_Enable(); + 336e: e3fff501 bsr 0x1d70 // 1d70 + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + 3372: 9476 ld.w r3, (r4, 0x58) + 3374: 3b40 cmpnei r3, 0 + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + 3376: 5de6 addi r7, r5, 2 + if(g_uart[UART_2].processing_cf != NULL){ + 3378: 0c04 bf 0x3380 // 3380 + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + 337a: 8e32 ld.h r1, (r6, 0x24) + 337c: 1009 lrw r0, 0x200000bc // 33a0 + 337e: 7bcd jsr r3 +// { +// Boot_Comm_UpgradeProcess(DealBuffer,DealLen); +// } + + + memset(DealBuffer,0,USART_BUFFER_SIZE); + 3380: 3264 movi r2, 100 + 3382: 3100 movi r1, 0 + 3384: 1007 lrw r0, 0x200000bc // 33a0 + 3386: e3fff2ef bsr 0x1964 // 1964 <__memset_fast> + } + } +} + 338a: 1401 addi r14, r14, 4 + 338c: 1494 pop r4-r7, r15 + 338e: 0000 bkpt + 3390: 20000358 .long 0x20000358 + 3394: 2000030c .long 0x2000030c + 3398: 200000b8 .long 0x200000b8 + 339c: 200002f4 .long 0x200002f4 + 33a0: 200000bc .long 0x200000bc + 33a4: 200000fc .long 0x200000fc + +Disassembly of section .text.Controller485_SendData: + +000033a8 : + CK_CPU_EnAllNormalIrq(); +} + +//发送给设备端的485发送函数 +void Controller485_SendData(U8_T *buff,U16_T len) +{ + 33a8: 14d4 push r4-r7, r15 + 33aa: 1422 subi r14, r14, 8 + 33ac: b800 st.w r0, (r14, 0x0) + 33ae: 6dc7 mov r7, r1 + unsigned int Dataval = 0,delay_cnt = 0; + 33b0: 3400 movi r4, 0 + + //等待通讯发送完成 + while(RS485_Comming1 == 0x01){ + 33b2: 11a4 lrw r5, 0x200000bc // 3440 + 33b4: 11c4 lrw r6, 0x2000004c // 3444 + 33b6: 957e ld.w r3, (r5, 0x78) + 33b8: 3b41 cmpnei r3, 1 + 33ba: 0c36 bf 0x3426 // 3426 + } + + GPIO_Reverse(GPIOA0,13); + } + + delay_nus(500); + 33bc: 30fa movi r0, 250 + 33be: 4001 lsli r0, r0, 1 + 33c0: e3fff874 bsr 0x24a8 // 24a8 + + CK_CPU_DisAllNormalIrq(); + 33c4: e3fffe77 bsr 0x30b2 // 30b2 + GPIO_Write_High(GPIOA0,13); + 33c8: 310d movi r1, 13 + 33ca: 9600 ld.w r0, (r6, 0x0) + 33cc: e3fff678 bsr 0x20bc // 20bc + + RS485_Comm_Flag1 = 0x01; + 33d0: 3301 movi r3, 1 + 33d2: b57f st.w r3, (r5, 0x7c) + RS485_Comm_Start1 = 0x00; + 33d4: 3200 movi r2, 0 + 33d6: 107d lrw r3, 0x2000013c // 3448 + 33d8: b340 st.w r2, (r3, 0x0) + RS485_Comm_End1 = 0x00; + 33da: b861 st.w r3, (r14, 0x4) + 33dc: b341 st.w r2, (r3, 0x4) + CK_CPU_EnAllNormalIrq(); + 33de: e3fffe67 bsr 0x30ac // 30ac + + UARTTransmit(UART1,buff,len); + 33e2: 105b lrw r2, 0x2000003c // 344c + 33e4: 9200 ld.w r0, (r2, 0x0) + 33e6: 9820 ld.w r1, (r14, 0x0) + 33e8: 6c9f mov r2, r7 + 33ea: e3fff7a3 bsr 0x2330 // 2330 + 33ee: 9861 ld.w r3, (r14, 0x4) + + do{ + delay_nus(100); + 33f0: 3064 movi r0, 100 + 33f2: b860 st.w r3, (r14, 0x0) + + delay_cnt ++; + 33f4: 2400 addi r4, 1 + delay_nus(100); + 33f6: e3fff859 bsr 0x24a8 // 24a8 + if(delay_cnt >= 100){ + 33fa: 3263 movi r2, 99 + 33fc: 6508 cmphs r2, r4 + 33fe: 0c08 bf 0x340e // 340e + break; + } + + }while((RS485_Comm_Start1 < len) || (RS485_Comm_End1 < len)); //发送完成 + 3400: 9860 ld.w r3, (r14, 0x0) + 3402: 9340 ld.w r2, (r3, 0x0) + 3404: 65c9 cmplt r2, r7 + 3406: 0bf5 bt 0x33f0 // 33f0 + 3408: 9341 ld.w r2, (r3, 0x4) + 340a: 65c9 cmplt r2, r7 + 340c: 0bf2 bt 0x33f0 // 33f0 + + CK_CPU_DisAllNormalIrq(); + 340e: e3fffe52 bsr 0x30b2 // 30b2 + GPIO_Write_Low(GPIOA0,13); + 3412: 9600 ld.w r0, (r6, 0x0) + 3414: 310d movi r1, 13 + 3416: e3fff657 bsr 0x20c4 // 20c4 + + RS485_Comm_Flag1 = 0x00; + 341a: 3300 movi r3, 0 + 341c: b57f st.w r3, (r5, 0x7c) + CK_CPU_EnAllNormalIrq(); + 341e: e3fffe47 bsr 0x30ac // 30ac +} + 3422: 1402 addi r14, r14, 8 + 3424: 1494 pop r4-r7, r15 + delay_nus(100); + 3426: 3064 movi r0, 100 + 3428: e3fff840 bsr 0x24a8 // 24a8 + delay_cnt ++; + 342c: 2400 addi r4, 1 + if(delay_cnt >= 100){ + 342e: 3364 movi r3, 100 + 3430: 64d2 cmpne r4, r3 + 3432: 0fc5 bf 0x33bc // 33bc + GPIO_Reverse(GPIOA0,13); + 3434: 310d movi r1, 13 + 3436: 9600 ld.w r0, (r6, 0x0) + 3438: e3fff64a bsr 0x20cc // 20cc + 343c: 07bd br 0x33b6 // 33b6 + 343e: 0000 bkpt + 3440: 200000bc .long 0x200000bc + 3444: 2000004c .long 0x2000004c + 3448: 2000013c .long 0x2000013c + 344c: 2000003c .long 0x2000003c + +Disassembly of section .text.BUS485_Send: + +00003450 : + * buff:发送数据 + * len:数据长度 + * @retval + * */ +U8_T BUS485_Send(U8_T *buff,U16_T len) +{ + 3450: 14d4 push r4-r7, r15 + 3452: 1423 subi r14, r14, 12 + 3454: b802 st.w r0, (r14, 0x8) + 3456: b820 st.w r1, (r14, 0x0) + unsigned int Dataval = 0,delay_cnt = 0; + 3458: 3500 movi r5, 0 + + //等待通讯发送完成 + while(RS485_Comming == 0x01){ + 345a: 1189 lrw r4, 0x200000bc // 34fc + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + GPIO_Reverse(GPIOB0,3); + 345c: 11c9 lrw r6, 0x20000048 // 3500 + while(RS485_Comming == 0x01){ + 345e: 947a ld.w r3, (r4, 0x68) + 3460: 3b41 cmpnei r3, 1 + 3462: 0c3e bf 0x34de // 34de + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + 3464: 1168 lrw r3, 0x200003c8 // 3504 + 3466: 83c4 ld.b r6, (r3, 0x4) + 3468: 3e40 cmpnei r6, 0 + 346a: b861 st.w r3, (r14, 0x4) + 346c: 0845 bt 0x34f6 // 34f6 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + 346e: 11e5 lrw r7, 0x20000048 // 3500 + CK_CPU_DisAllNormalIrq(); + 3470: e3fffe21 bsr 0x30b2 // 30b2 + GPIO_Write_High(GPIOB0,3); + 3474: 3103 movi r1, 3 + 3476: 9700 ld.w r0, (r7, 0x0) + 3478: e3fff622 bsr 0x20bc // 20bc + + RS485_Comm_Flag = 0x01; + 347c: 3201 movi r2, 1 + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 347e: 9861 ld.w r3, (r14, 0x4) + RS485_Comm_Flag = 0x01; + 3480: b45b st.w r2, (r4, 0x6c) + m_send.BusState_Flag = UART_BUSBUSY;//发送前总线置位繁忙 + 3482: a344 st.b r2, (r3, 0x4) + RS485_Comm_Start = 0x00; + 3484: b4dc st.w r6, (r4, 0x70) + m_send.BUSBUSY_LOCK = 0x01; //锁定总线状态 + 3486: a346 st.b r2, (r3, 0x6) + RS485_Comm_End = 0x00; + 3488: b4dd st.w r6, (r4, 0x74) + + CK_CPU_EnAllNormalIrq(); + 348a: e3fffe11 bsr 0x30ac // 30ac + + UARTTransmit(UART2,buff,len); + 348e: 105f lrw r2, 0x20000038 // 3508 + 3490: 9200 ld.w r0, (r2, 0x0) + 3492: 9822 ld.w r1, (r14, 0x8) + 3494: 9840 ld.w r2, (r14, 0x0) + 3496: e3fff74d bsr 0x2330 // 2330 + do{ + delay_nus(100); + 349a: 3064 movi r0, 100 + 349c: e3fff806 bsr 0x24a8 // 24a8 + delay_cnt ++; + 34a0: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 34a2: 3363 movi r3, 99 + 34a4: 654c cmphs r3, r5 + 34a6: 0c08 bf 0x34b6 // 34b6 + break; + } + + }while((RS485_Comm_Start < len) || (RS485_Comm_End < len)); //发送完成 + 34a8: 947c ld.w r3, (r4, 0x70) + 34aa: 9840 ld.w r2, (r14, 0x0) + 34ac: 648d cmplt r3, r2 + 34ae: 0bf6 bt 0x349a // 349a + 34b0: 947d ld.w r3, (r4, 0x74) + 34b2: 648d cmplt r3, r2 + 34b4: 0bf3 bt 0x349a // 349a + + + CK_CPU_DisAllNormalIrq(); + 34b6: e3fffdfe bsr 0x30b2 // 30b2 + + GPIO_Write_Low(GPIOB0,3); + 34ba: 9700 ld.w r0, (r7, 0x0) + 34bc: 3103 movi r1, 3 + 34be: e3fff603 bsr 0x20c4 // 20c4 + RS485_Comm_Flag = 0x00; + 34c2: 3300 movi r3, 0 + 34c4: b47b st.w r3, (r4, 0x6c) + + m_send.BusState_Tick = SysTick_1ms; + 34c6: 1072 lrw r3, 0x200000b8 // 350c + 34c8: 9340 ld.w r2, (r3, 0x0) + 34ca: 1072 lrw r3, 0x20000368 // 3510 + 34cc: b35f st.w r2, (r3, 0x7c) + m_send.BUSBUSY_LOCK = 0x00; //解锁总线状态 + 34ce: 9861 ld.w r3, (r14, 0x4) + 34d0: 3200 movi r2, 0 + 34d2: a346 st.b r2, (r3, 0x6) + + CK_CPU_EnAllNormalIrq(); + 34d4: e3fffdec bsr 0x30ac // 30ac + { + return UART_BUSBUSY; //发送失败 + } + + return 0x02; //传入状态无效 +} + 34d8: 6c1b mov r0, r6 + 34da: 1403 addi r14, r14, 12 + 34dc: 1494 pop r4-r7, r15 + delay_nus(100); + 34de: 3064 movi r0, 100 + 34e0: e3fff7e4 bsr 0x24a8 // 24a8 + delay_cnt ++; + 34e4: 2500 addi r5, 1 + if(delay_cnt >= 100){ + 34e6: 3364 movi r3, 100 + 34e8: 64d6 cmpne r5, r3 + 34ea: 0fbd bf 0x3464 // 3464 + GPIO_Reverse(GPIOB0,3); + 34ec: 3103 movi r1, 3 + 34ee: 9600 ld.w r0, (r6, 0x0) + 34f0: e3fff5ee bsr 0x20cc // 20cc + 34f4: 07b5 br 0x345e // 345e + return UART_BUSBUSY; //发送失败 + 34f6: 3601 movi r6, 1 + 34f8: 07f0 br 0x34d8 // 34d8 + 34fa: 0000 bkpt + 34fc: 200000bc .long 0x200000bc + 3500: 20000048 .long 0x20000048 + 3504: 200003c8 .long 0x200003c8 + 3508: 20000038 .long 0x20000038 + 350c: 200000b8 .long 0x200000b8 + 3510: 20000368 .long 0x20000368 + +Disassembly of section .text.MultSend_Task: + +00003514 : + * DatSd:发送标记,0x00:无发送,0x01:有数据发送 + * + * @retval 0x00:发送成功 0x01:等待发送 0x02:数据无效 + * */ +U8_T MultSend_Task(U8_T *buff,U16_T len,U8_T DatSd) +{ + 3514: 14d4 push r4-r7, r15 + 3516: 1421 subi r14, r14, 4 + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3518: 5963 subi r3, r1, 1 + 351a: 74cd zexth r3, r3 + 351c: 3463 movi r4, 99 + 351e: 64d0 cmphs r4, r3 +{ + 3520: b800 st.w r0, (r14, 0x0) + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3522: 0c29 bf 0x3574 // 3574 + + if(DatSd == 0x01) + 3524: 3a41 cmpnei r2, 1 + 3526: 0c04 bf 0x352e // 352e + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"retry end,%d",m_send.ResendCnt ); + return RETRY_END;//没有重发次数 + } + } + return BUSSEND_WAIT;//等待 + 3528: 3001 movi r0, 1 +} + 352a: 1401 addi r14, r14, 4 + 352c: 1494 pop r4-r7, r15 + if( m_send.ResendCnt < m_send.TotalCnt) //判断数据是否还在有效期,是否还有发送次数 + 352e: 1075 lrw r3, 0x20000368 // 3580 + 3530: 3760 movi r7, 96 + 3532: 61cc addu r7, r3 + 3534: 87c8 ld.b r6, (r7, 0x8) + 3536: 874a ld.b r2, (r7, 0xa) + 3538: 6498 cmphs r6, r2 + 353a: 081f bt 0x3578 // 3578 + if(SysTick_1ms - m_send.BusbusyTimeout < m_send.DataValid_Time) + 353c: 3480 movi r4, 128 + 353e: 10b2 lrw r5, 0x200000b8 // 3584 + 3540: 610c addu r4, r3 + 3542: 9401 ld.w r0, (r4, 0x4) + 3544: 9540 ld.w r2, (r5, 0x0) + 3546: 6082 subu r2, r0 + 3548: 931e ld.w r0, (r3, 0x78) + 354a: 6408 cmphs r2, r0 + 354c: 0818 bt 0x357c // 357c + if( (m_send.ResendCnt == 0x00) || (SysTick_1ms - m_send.ASend_Tick >= m_send.DataWait_Time) ){//数据发送间隔 + 354e: 3e40 cmpnei r6, 0 + 3550: 0c07 bf 0x355e // 355e + 3552: 9540 ld.w r2, (r5, 0x0) + 3554: 94c0 ld.w r6, (r4, 0x0) + 3556: 609a subu r2, r6 + 3558: 937d ld.w r3, (r3, 0x74) + 355a: 64c8 cmphs r2, r3 + 355c: 0fe6 bf 0x3528 // 3528 + if(BUS485_Send(buff,len) == UART_BUSIDLE){ //发送数据 + 355e: 9800 ld.w r0, (r14, 0x0) + 3560: e3ffff78 bsr 0x3450 // 3450 + 3564: 3840 cmpnei r0, 0 + 3566: 0be1 bt 0x3528 // 3528 + m_send.ASend_Tick = SysTick_1ms; + 3568: 9560 ld.w r3, (r5, 0x0) + 356a: b460 st.w r3, (r4, 0x0) + m_send.ResendCnt++; + 356c: 8768 ld.b r3, (r7, 0x8) + 356e: 2300 addi r3, 1 + 3570: a768 st.b r3, (r7, 0x8) + 3572: 07dc br 0x352a // 352a + if( (len == 0)||(len > USART_SEND_SIZE) ) return LEN_ERR; + 3574: 3004 movi r0, 4 + 3576: 07da br 0x352a // 352a + return RETRY_END;//没有重发次数 + 3578: 3003 movi r0, 3 + 357a: 07d8 br 0x352a // 352a + return DATA_END;//数据有效期结束 + 357c: 3002 movi r0, 2 + 357e: 07d6 br 0x352a // 352a + 3580: 20000368 .long 0x20000368 + 3584: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Set_GroupSend: + +00003588 : + * indate: 设置数据有效期 + * tim_val: 发送时间间隔 + * @retval None + * */ +void Set_GroupSend(U8_T *data,U16_T sled,U8_T SCnt,U32_T indate,U32_T tim_val) +{ + 3588: 14d4 push r4-r7, r15 + 358a: 1422 subi r14, r14, 8 + 358c: 6d8b mov r6, r2 + 358e: 9847 ld.w r2, (r14, 0x1c) + 3590: b840 st.w r2, (r14, 0x0) + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3592: 5943 subi r2, r1, 1 +{ + 3594: 6d47 mov r5, r1 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 3596: 7489 zexth r2, r2 + 3598: 3163 movi r1, 99 + 359a: 6484 cmphs r1, r2 +{ + 359c: 6dc3 mov r7, r0 + if((sled == 0x00)|| (sled > USART_SEND_SIZE)) return; + 359e: 0c20 bf 0x35de // 35de + + memset(m_send.SendBuffer,0, USART_SEND_SIZE); + 35a0: 1091 lrw r4, 0x20000368 // 35e4 + 35a2: 3264 movi r2, 100 + 35a4: 3100 movi r1, 0 + 35a6: 6c13 mov r0, r4 + 35a8: b861 st.w r3, (r14, 0x4) + 35aa: e3fff1dd bsr 0x1964 // 1964 <__memset_fast> + memcpy(m_send.SendBuffer,data,sled); + 35ae: 6c97 mov r2, r5 + 35b0: 6c13 mov r0, r4 + 35b2: 6c5f mov r1, r7 + 35b4: e3fff21c bsr 0x19ec // 19ec <__memcpy_fast> + m_send.SendLen = sled; + 35b8: 3240 movi r2, 64 + 35ba: 6090 addu r2, r4 + + m_send.DataValid_Time = indate;//数据有效期 + 35bc: 9861 ld.w r3, (r14, 0x4) + 35be: b47e st.w r3, (r4, 0x78) + m_send.SendLen = sled; + 35c0: aab7 st.h r5, (r2, 0x2e) + m_send.TotalCnt = SCnt; //数据发送次数 + 35c2: 3360 movi r3, 96 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 35c4: 9840 ld.w r2, (r14, 0x0) + m_send.TotalCnt = SCnt; //数据发送次数 + 35c6: 60d0 addu r3, r4 + m_send.DataWait_Time = tim_val;//发送数据间隔 + 35c8: b45d st.w r2, (r4, 0x74) + + m_send.ASend_Flag = 0x01; + 35ca: 3201 movi r2, 1 + 35cc: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_WAIT; + 35ce: a347 st.b r2, (r3, 0x7) + m_send.ResendCnt = 0x00; + 35d0: 3200 movi r2, 0 + m_send.TotalCnt = SCnt; //数据发送次数 + 35d2: a3ca st.b r6, (r3, 0xa) + m_send.ResendCnt = 0x00; + 35d4: a348 st.b r2, (r3, 0x8) + m_send.BusbusyTimeout = SysTick_1ms; + 35d6: 247f addi r4, 128 + 35d8: 1064 lrw r3, 0x200000b8 // 35e8 + 35da: 9360 ld.w r3, (r3, 0x0) + 35dc: b461 st.w r3, (r4, 0x4) +} + 35de: 1402 addi r14, r14, 8 + 35e0: 1494 pop r4-r7, r15 + 35e2: 0000 bkpt + 35e4: 20000368 .long 0x20000368 + 35e8: 200000b8 .long 0x200000b8 + +Disassembly of section .text.Clear_SendFlag: + +000035ec : +//清除发送标志 +void Clear_SendFlag(void) +{ + m_send.ASend_Flag = 0x00; + 35ec: 1063 lrw r3, 0x200003c8 // 35f8 + 35ee: 3200 movi r2, 0 + 35f0: a349 st.b r2, (r3, 0x9) + m_send.SendState = BUSSEND_SUCC; + 35f2: a347 st.b r2, (r3, 0x7) +} + 35f4: 783c jmp r15 + 35f6: 0000 bkpt + 35f8: 200003c8 .long 0x200003c8 + +Disassembly of section .text.BUS485Send_Task: + +000035fc : + m_send.Jump_Flag = jump; +} + +//485发送任务 +void BUS485Send_Task(void) //2025-03-29 +{ + 35fc: 14d1 push r4, r15 + //空闲等待 + if(m_send.ASend_Flag == 0x01) + 35fe: 108a lrw r4, 0x200003c8 // 3624 + 3600: 8469 ld.b r3, (r4, 0x9) + 3602: 3b41 cmpnei r3, 1 + 3604: 080e bt 0x3620 // 3620 + { + m_send.SendState = MultSend_Task(m_send.SendBuffer,m_send.SendLen,m_send.ASend_Flag); + 3606: 1069 lrw r3, 0x200003a8 // 3628 + 3608: 8b37 ld.h r1, (r3, 0x2e) + 360a: 3201 movi r2, 1 + 360c: 1008 lrw r0, 0x20000368 // 362c + 360e: e3ffff83 bsr 0x3514 // 3514 + 3612: a407 st.b r0, (r4, 0x7) + + if( (m_send.SendState == DATA_END)||(m_send.SendState == RETRY_END) )//判断发送数据是否有效 + 3614: 2801 subi r0, 2 + 3616: 7400 zextb r0, r0 + 3618: 3801 cmphsi r0, 2 + 361a: 0803 bt 0x3620 // 3620 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + 361c: 3300 movi r3, 0 + 361e: a469 st.b r3, (r4, 0x9) +// SYSCON->UREG3 = g_boot.bootTimeout; //向Boot 设定Boot超时时间 +// SYSCON_Software_Reset(); +// } + } + } +} + 3620: 1491 pop r4, r15 + 3622: 0000 bkpt + 3624: 200003c8 .long 0x200003c8 + 3628: 200003a8 .long 0x200003a8 + 362c: 20000368 .long 0x20000368 + +Disassembly of section .text.BusIdle_Task: + +00003630 : +/********************************************************** + * @brief 2025-03-25,检测总线空闲,在定时器中断里调用 + * @retval None + * */ +void BusIdle_Task(void) +{ + 3630: 14d2 push r4-r5, r15 + if((m_send.BusState_Flag != UART_BUSIDLE)&&(m_send.BUSBUSY_LOCK != 0x01)) + 3632: 10ae lrw r5, 0x20000368 // 3668 + 3634: 3460 movi r4, 96 + 3636: 6114 addu r4, r5 + 3638: 8464 ld.b r3, (r4, 0x4) + 363a: 3b40 cmpnei r3, 0 + 363c: 0c15 bf 0x3666 // 3666 + 363e: 8466 ld.b r3, (r4, 0x6) + 3640: 3b41 cmpnei r3, 1 + 3642: 0c12 bf 0x3666 // 3666 + { + CK_CPU_DisAllNormalIrq(); + 3644: e3fffd37 bsr 0x30b2 // 30b2 + if( (m_send.HighBit_Flag == 0x01)&&(SysTick_1ms - m_send.BusState_Tick >= (6 + m_send.Bus_DelayTime)) ) + 3648: 8465 ld.b r3, (r4, 0x5) + 364a: 3b41 cmpnei r3, 1 + 364c: 080b bt 0x3662 // 3662 + 364e: 1068 lrw r3, 0x200000b8 // 366c + 3650: 9340 ld.w r2, (r3, 0x0) + 3652: 957f ld.w r3, (r5, 0x7c) + 3654: 608e subu r2, r3 + 3656: 957c ld.w r3, (r5, 0x70) + 3658: 2305 addi r3, 6 + 365a: 64c8 cmphs r2, r3 + 365c: 0c03 bf 0x3662 // 3662 + { + m_send.BusState_Flag = UART_BUSIDLE; + 365e: 3300 movi r3, 0 + 3660: a464 st.b r3, (r4, 0x4) + } + CK_CPU_EnAllNormalIrq(); + 3662: e3fffd25 bsr 0x30ac // 30ac + } +} + 3666: 1492 pop r4-r5, r15 + 3668: 20000368 .long 0x20000368 + 366c: 200000b8 .long 0x200000b8 + +Disassembly of section .text.BusBusy_Task: + +00003670 : +/******************************************************************* + * @brief 检测总线繁忙,在串口接收RX引脚的外部中断服务函数里调用 + * @retval None + * */ +void BusBusy_Task(void) +{ + 3670: 14d2 push r4-r5, r15 + CK_CPU_DisAllNormalIrq(); + m_send.BusState_Flag = UART_BUSBUSY; + 3672: 1094 lrw r4, 0x20000368 // 36c0 + 3674: 3560 movi r5, 96 + CK_CPU_DisAllNormalIrq(); + 3676: e3fffd1e bsr 0x30b2 // 30b2 + m_send.BusState_Flag = UART_BUSBUSY; + 367a: 6150 addu r5, r4 + 367c: 3301 movi r3, 1 + 367e: a564 st.b r3, (r5, 0x4) + m_send.BusState_Tick = SysTick_1ms; + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3680: 310a movi r1, 10 + m_send.BusState_Tick = SysTick_1ms; + 3682: 1071 lrw r3, 0x200000b8 // 36c4 + 3684: 9340 ld.w r2, (r3, 0x0) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3686: 9300 ld.w r0, (r3, 0x0) + 3688: 3380 movi r3, 128 + 368a: 60d0 addu r3, r4 + 368c: 9360 ld.w r3, (r3, 0x0) + m_send.BusState_Tick = SysTick_1ms; + 368e: b45f st.w r2, (r4, 0x7c) + m_send.Bus_DelayTime = (SysTick_1ms - m_send.ASend_Tick)%10;//随机延时 + 3690: 600e subu r0, r3 + 3692: e3fffcfb bsr 0x3088 // 3088 <__umodsi3> + 3696: b41c st.w r0, (r4, 0x70) + + if(READ_RXLEVEL_STATE == 0x01){ + 3698: 3105 movi r1, 5 + 369a: 108c lrw r4, 0x20000048 // 36c8 + 369c: 9400 ld.w r0, (r4, 0x0) + 369e: e3fff522 bsr 0x20e2 // 20e2 + 36a2: 3841 cmpnei r0, 1 + 36a4: 0806 bt 0x36b0 // 36b0 + m_send.HighBit_Flag = 0x01; //高电平标志置位 + 36a6: 3301 movi r3, 1 + }else if(READ_RXLEVEL_STATE == 0x00){ + m_send.HighBit_Flag = 0x00; //低电平 + 36a8: a565 st.b r3, (r5, 0x5) + } + CK_CPU_EnAllNormalIrq(); + 36aa: e3fffd01 bsr 0x30ac // 30ac +} + 36ae: 1492 pop r4-r5, r15 + }else if(READ_RXLEVEL_STATE == 0x00){ + 36b0: 9400 ld.w r0, (r4, 0x0) + 36b2: 3105 movi r1, 5 + 36b4: e3fff517 bsr 0x20e2 // 20e2 + 36b8: 3840 cmpnei r0, 0 + 36ba: 0bf8 bt 0x36aa // 36aa + m_send.HighBit_Flag = 0x00; //低电平 + 36bc: 3300 movi r3, 0 + 36be: 07f5 br 0x36a8 // 36a8 + 36c0: 20000368 .long 0x20000368 + 36c4: 200000b8 .long 0x200000b8 + 36c8: 20000048 .long 0x20000048 + +Disassembly of section .text.Dbg_Println: + +000036cc : + } + +#endif +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...){ + 36cc: 1423 subi r14, r14, 12 + 36ce: b862 st.w r3, (r14, 0x8) + 36d0: b841 st.w r2, (r14, 0x4) + 36d2: b820 st.w r1, (r14, 0x0) + + + } + +#endif +} + 36d4: 1403 addi r14, r14, 12 + 36d6: 783c jmp r15 + +Disassembly of section .text.EEPROM_CheckSum: + +000036d8 : +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +U8_T EEPROM_CheckSum(U8_T *data,U16_T len) +{ + 36d8: 6cc3 mov r3, r0 + 36da: 6040 addu r1, r0 + U8_T data_sum = 0; + 36dc: 3000 movi r0, 0 + + for(U16_T i = 0;i + { + data_sum += data[i]; + } + return data_sum; +} + 36e2: 783c jmp r15 + data_sum += data[i]; + 36e4: 8340 ld.b r2, (r3, 0x0) + 36e6: 6008 addu r0, r2 + 36e8: 7400 zextb r0, r0 + 36ea: 2300 addi r3, 1 + 36ec: 07f9 br 0x36de // 36de + +Disassembly of section .text.EEPROM_ReadParaInfo: + +000036f0 : + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + 36f0: 14d1 push r4, r15 + 36f2: 143b subi r14, r14, 108 + 36f4: 6d03 mov r4, r0 + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_DATA_Size_Max]; + U16_T read_len = 0; + + memset(read_info,0,sizeof(read_info)); + 36f6: 3300 movi r3, 0 + memset(para_data,0,sizeof(para_data)); + 36f8: 3264 movi r2, 100 + 36fa: 3100 movi r1, 0 + 36fc: 1802 addi r0, r14, 8 + memset(read_info,0,sizeof(read_info)); + 36fe: b860 st.w r3, (r14, 0x0) + 3700: dc6e1002 st.h r3, (r14, 0x4) + memset(para_data,0,sizeof(para_data)); + 3704: e3fff130 bsr 0x1964 // 1964 <__memset_fast> + + ReadDataArry_U8(EEPROM_ParaInfo_Address,4,read_info); + 3708: 6cbb mov r2, r14 + 370a: 3104 movi r1, 4 + 370c: 1014 lrw r0, 0x10000100 // 375c + 370e: e3fff685 bsr 0x2418 // 2418 + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + 3712: d84e0000 ld.b r2, (r14, 0x0) + 3716: 33a6 movi r3, 166 + 3718: 64ca cmpne r2, r3 + 371a: 0c04 bf 0x3722 // 3722 + return 0x00; + } + } + } + + return 0x01; + 371c: 3001 movi r0, 1 +} + 371e: 141b addi r14, r14, 108 + 3720: 1491 pop r4, r15 + read_len |= read_info[1]; + 3722: d82e0002 ld.b r1, (r14, 0x2) + 3726: d86e0001 ld.b r3, (r14, 0x1) + 372a: 4128 lsli r1, r1, 8 + 372c: 6c4c or r1, r3 + if(read_len <= EEPROM_APP_DATA_Size_Max){ + 372e: 3364 movi r3, 100 + 3730: 644c cmphs r3, r1 + 3732: 0ff5 bf 0x371c // 371c + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + 3734: 1a02 addi r2, r14, 8 + 3736: 100b lrw r0, 0x10000104 // 3760 + 3738: e3fff670 bsr 0x2418 // 2418 + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + 373c: 3108 movi r1, 8 + 373e: 1802 addi r0, r14, 8 + 3740: e3ffffcc bsr 0x36d8 // 36d8 + 3744: d86e0003 ld.b r3, (r14, 0x3) + 3748: 640e cmpne r3, r0 + 374a: 0be9 bt 0x371c // 371c + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + 374c: 3208 movi r2, 8 + 374e: 1902 addi r1, r14, 8 + 3750: 6c13 mov r0, r4 + 3752: e3fff14d bsr 0x19ec // 19ec <__memcpy_fast> + return 0x00; + 3756: 3000 movi r0, 0 + 3758: 07e3 br 0x371e // 371e + 375a: 0000 bkpt + 375c: 10000100 .long 0x10000100 + 3760: 10000104 .long 0x10000104 + +Disassembly of section .text.EEPROM_WriteParaInfo: + +00003764 : + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 3764: 14d0 push r15 + 3766: 143b subi r14, r14, 108 + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_SVAE_FLAG; + 3768: 3300 movi r3, 0 + 376a: 2b59 subi r3, 90 + 376c: dc6e0000 st.b r3, (r14, 0x0) + save_data[1] = save_len & 0xFF; + 3770: 3308 movi r3, 8 + 3772: dc6e0001 st.b r3, (r14, 0x1) + save_data[2] = (save_len >> 8) & 0xFF; + 3776: 3300 movi r3, 0 + 3778: dc6e0002 st.b r3, (r14, 0x2) + + memcpy(&save_data[4],(uint8_t *)info,save_len); + 377c: 1b01 addi r3, r14, 4 +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + 377e: 6c43 mov r1, r0 + memcpy(&save_data[4],(uint8_t *)info,save_len); + 3780: 3208 movi r2, 8 + 3782: 6c0f mov r0, r3 + 3784: e3fff134 bsr 0x19ec // 19ec <__memcpy_fast> + + save_data[3] = EEPROM_CheckSum(&save_data[4],save_len); + 3788: 3108 movi r1, 8 + 378a: e3ffffa7 bsr 0x36d8 // 36d8 + 378e: dc0e0003 st.b r0, (r14, 0x3) + + save_len+=4; + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + 3792: 6cbb mov r2, r14 + 3794: 310c movi r1, 12 + 3796: 1004 lrw r0, 0x10000100 // 37a4 + 3798: e3fff5f0 bsr 0x2378 // 2378 + + return 0; +} + 379c: 3000 movi r0, 0 + 379e: 141b addi r14, r14, 108 + 37a0: 1490 pop r15 + 37a2: 0000 bkpt + 37a4: 10000100 .long 0x10000100 + +Disassembly of section .text.EEPROM_Validate_ParaInfo: + +000037a8 : + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + 37a8: 14d0 push r15 + 37aa: 1423 subi r14, r14, 12 +// { +// info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 +// } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + 37ac: 8067 ld.b r3, (r0, 0x7) + 37ae: 3b02 cmphsi r3, 3 + 37b0: 0c03 bf 0x37b6 // 37b6 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + 37b2: 3301 movi r3, 1 + 37b4: a067 st.b r3, (r0, 0x7) + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + 37b6: 8027 ld.b r1, (r0, 0x7) + 37b8: 8064 ld.b r3, (r0, 0x4) + 37ba: 8043 ld.b r2, (r0, 0x3) + 37bc: b822 st.w r1, (r14, 0x8) + 37be: 8020 ld.b r1, (r0, 0x0) + 37c0: b821 st.w r1, (r14, 0x4) + 37c2: 8025 ld.b r1, (r0, 0x5) + 37c4: b820 st.w r1, (r14, 0x0) + 37c6: 3000 movi r0, 0 + 37c8: 1023 lrw r1, 0x5ec6 // 37d4 + 37ca: e3ffff81 bsr 0x36cc // 36cc + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + 37ce: 3000 movi r0, 0 + 37d0: 1403 addi r14, r14, 12 + 37d2: 1490 pop r15 + 37d4: 00005ec6 .long 0x00005ec6 + +Disassembly of section .text.EEPROM_Default_ParaInfo: + +000037d8 : + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + 37d8: 3301 movi r3, 1 + 37da: a060 st.b r3, (r0, 0x0) + info->pipe_flag = 0x00; + 37dc: 3300 movi r3, 0 + 37de: a061 st.b r3, (r0, 0x1) + info->temp_diff = EEPROM_TempDifference_Default; + 37e0: 3309 movi r3, 9 + 37e2: a062 st.b r3, (r0, 0x2) + info->temp_select = EEPROM_TempSelect_Default; + 37e4: 3300 movi r3, 0 + 37e6: a063 st.b r3, (r0, 0x3) + info->backlight_en = 0x00; + 37e8: a064 st.b r3, (r0, 0x4) + info->key_sens_level = EEPROM_TouchLevel_Default; + 37ea: 3301 movi r3, 1 + 37ec: a065 st.b r3, (r0, 0x5) + info->langue_select = EEPROM_LangueSelect_Default; + 37ee: 3300 movi r3, 0 + 37f0: a066 st.b r3, (r0, 0x6) + info->dev_port = POLLING_PORT; //2024-12-16 + 37f2: 3301 movi r3, 1 + 37f4: a067 st.b r3, (r0, 0x7) + +} + 37f6: 783c jmp r15 + +Disassembly of section .text.EEPROM_Init: + +000037f8 : +void EEPROM_Init(void){ + 37f8: 14d1 push r4, r15 + EnIFCClk; //使能 IFC 时钟 + 37fa: 1072 lrw r3, 0x20000060 // 3840 + 37fc: 3201 movi r2, 1 + 37fe: 9360 ld.w r3, (r3, 0x0) + 3800: b341 st.w r2, (r3, 0x4) + IFC->MR |= 0x10002; //高速模式,延迟 2 个周期 + 3802: 9345 ld.w r2, (r3, 0x14) + 3804: 3aa1 bseti r2, 1 + 3806: 3ab0 bseti r2, 16 + 3808: b345 st.w r2, (r3, 0x14) + delay_nms(10); + 380a: 300a movi r0, 10 + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 380c: 108e lrw r4, 0x200003f0 // 3844 + delay_nms(10); + 380e: e3fff637 bsr 0x247c // 247c + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + 3812: 3208 movi r2, 8 + 3814: 3100 movi r1, 0 + 3816: 6c13 mov r0, r4 + 3818: e3fff0a6 bsr 0x1964 // 1964 <__memset_fast> + rev = EEPROM_ReadParaInfo(&g_eeprom); + 381c: 6c13 mov r0, r4 + 381e: e3ffff69 bsr 0x36f0 // 36f0 + if(rev == 0x00){ + 3822: 3840 cmpnei r0, 0 + EEPROM_Validate_ParaInfo(&g_eeprom); + 3824: 6c13 mov r0, r4 + if(rev == 0x00){ + 3826: 0804 bt 0x382e // 382e + EEPROM_Validate_ParaInfo(&g_eeprom); + 3828: e3ffffc0 bsr 0x37a8 // 37a8 +} + 382c: 1491 pop r4, r15 + EEPROM_Default_ParaInfo(&g_eeprom); + 382e: e3ffffd5 bsr 0x37d8 // 37d8 + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + 3832: 8441 ld.b r2, (r4, 0x1) + 3834: 1025 lrw r1, 0x5f20 // 3848 + 3836: 3000 movi r0, 0 + 3838: e3ffff4a bsr 0x36cc // 36cc +} + 383c: 07f8 br 0x382c // 382c + 383e: 0000 bkpt + 3840: 20000060 .long 0x20000060 + 3844: 200003f0 .long 0x200003f0 + 3848: 00005f20 .long 0x00005f20 + +Disassembly of section .text.TemCtrl_Init: + +0000384c : + * 函数功能:温控初始化 + * + * +*****************************************************************/ +void TemCtrl_Init(void) +{ + 384c: 14d1 push r4, r15 + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + 384e: 1292 lrw r4, 0x20000420 // 3994 + 3850: 3228 movi r2, 40 + 3852: 3100 movi r1, 0 + 3854: 6c13 mov r0, r4 + 3856: e3fff087 bsr 0x1964 // 1964 <__memset_fast> + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + 385a: 1270 lrw r3, 0x200000ac // 3998 + 385c: 9360 ld.w r3, (r3, 0x0) + 385e: 3b80 bclri r3, 0 + 3860: 3b40 cmpnei r3, 0 + 3862: 0c92 bf 0x3986 // 3986 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + 3864: 122e lrw r1, 0x5f42 // 399c + 3866: 3000 movi r0, 0 + 3868: e3ffff32 bsr 0x36cc // 36cc + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + 386c: 126d lrw r3, 0x200000a8 // 39a0 + 386e: 30ff movi r0, 255 + 3870: 9320 ld.w r1, (r3, 0x0) + 3872: 6840 and r1, r0 + 3874: 3940 cmpnei r1, 0 + 3876: 0c05 bf 0x3880 // 3880 + 3878: 9340 ld.w r2, (r3, 0x0) + 387a: 6880 and r2, r0 + 387c: 3a41 cmpnei r2, 1 + 387e: 0877 bt 0x396c // 396c + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + 3880: 9340 ld.w r2, (r3, 0x0) + 3882: 4227 lsli r1, r2, 7 + 3884: 307f movi r0, 127 + 3886: 8442 ld.b r2, (r4, 0x2) + 3888: 6880 and r2, r0 + 388a: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 388c: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + 388e: 9340 ld.w r2, (r3, 0x0) + 3890: 4a48 lsri r2, r2, 8 + 3892: 30ff movi r0, 255 + 3894: 6880 and r2, r0 + 3896: 3a40 cmpnei r2, 0 + 3898: 0c10 bf 0x38b8 // 38b8 + 389a: 9340 ld.w r2, (r3, 0x0) + 389c: 4a48 lsri r2, r2, 8 + 389e: 6880 and r2, r0 + 38a0: 3a42 cmpnei r2, 2 + 38a2: 0c0b bf 0x38b8 // 38b8 + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + 38a4: 9320 ld.w r1, (r3, 0x0) + 38a6: 4928 lsri r1, r1, 8 + 38a8: 6840 and r1, r0 + 38aa: 3944 cmpnei r1, 4 + 38ac: 0c06 bf 0x38b8 // 38b8 + 38ae: 9340 ld.w r2, (r3, 0x0) + 38b0: 4a48 lsri r2, r2, 8 + 38b2: 6880 and r2, r0 + 38b4: 3a46 cmpnei r2, 6 + 38b6: 085f bt 0x3974 // 3974 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + 38b8: 9340 ld.w r2, (r3, 0x0) + 38ba: 3107 movi r1, 7 + 38bc: 4a48 lsri r2, r2, 8 + 38be: 6884 and r2, r1 + 38c0: 3070 movi r0, 112 + 38c2: 8422 ld.b r1, (r4, 0x2) + 38c4: 4244 lsli r2, r2, 4 + 38c6: 6841 andn r1, r0 + 38c8: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + 38ca: a442 st.b r2, (r4, 0x2) + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + 38cc: 9340 ld.w r2, (r3, 0x0) + 38ce: 4a50 lsri r2, r2, 16 + 38d0: 30ff movi r0, 255 + 38d2: 6880 and r2, r0 + 38d4: 3a40 cmpnei r2, 0 + 38d6: 0c10 bf 0x38f6 // 38f6 + 38d8: 9340 ld.w r2, (r3, 0x0) + 38da: 4a50 lsri r2, r2, 16 + 38dc: 6880 and r2, r0 + 38de: 3a41 cmpnei r2, 1 + 38e0: 0c0b bf 0x38f6 // 38f6 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + 38e2: 9320 ld.w r1, (r3, 0x0) + 38e4: 4930 lsri r1, r1, 16 + 38e6: 6840 and r1, r0 + 38e8: 3942 cmpnei r1, 2 + 38ea: 0c06 bf 0x38f6 // 38f6 + 38ec: 9340 ld.w r2, (r3, 0x0) + 38ee: 4a50 lsri r2, r2, 16 + 38f0: 6880 and r2, r0 + 38f2: 3a43 cmpnei r2, 3 + 38f4: 0844 bt 0x397c // 397c + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + 38f6: 9340 ld.w r2, (r3, 0x0) + 38f8: 3107 movi r1, 7 + 38fa: 4a50 lsri r2, r2, 16 + 38fc: 6884 and r2, r1 + 38fe: 300e movi r0, 14 + 3900: 8422 ld.b r1, (r4, 0x2) + 3902: 4241 lsli r2, r2, 1 + 3904: 6841 andn r1, r0 + 3906: 6c84 or r2, r1 + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + 3908: a442 st.b r2, (r4, 0x2) + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + 390a: 9340 ld.w r2, (r3, 0x0) + 390c: 4a58 lsri r2, r2, 24 + 390e: 3a0f cmphsi r2, 16 + 3910: 0c40 bf 0x3990 // 3990 + 3912: 3284 movi r2, 132 + 3914: 4256 lsli r2, r2, 22 + 3916: 9320 ld.w r1, (r3, 0x0) + 3918: 2a00 subi r2, 1 + 391a: 6448 cmphs r2, r1 + 391c: 0c3a bf 0x3990 // 3990 + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + 391e: 9360 ld.w r3, (r3, 0x0) + 3920: 4b78 lsri r3, r3, 24 + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + 3922: a461 st.b r3, (r4, 0x1) + } + + TempCtrl.TemState_Now.indoor_t = 24; + 3924: 3318 movi r3, 24 + 3926: a460 st.b r3, (r4, 0x0) + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3928: a464 st.b r3, (r4, 0x4) + TempCtrl.TemState_Ctrller.indoor_t = TempCtrl.TemState_Now.indoor_t; + 392a: a468 st.b r3, (r4, 0x8) + + TempCtrl.CardState = 0x01; //默认插卡 + 392c: 3301 movi r3, 1 + 392e: a46d st.b r3, (r4, 0xd) + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + 3930: 3300 movi r3, 0 + 3932: a46f st.b r3, (r4, 0xf) + + SYSCON->UREG0 = 0x00000000; + 3934: 3200 movi r2, 0 + 3936: 107c lrw r3, 0x2000005c // 39a4 + 3938: 9360 ld.w r3, (r3, 0x0) + 393a: 23ff addi r3, 256 + 393c: b340 st.w r2, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 393e: 8442 ld.b r2, (r4, 0x2) + 3940: 4239 lsli r1, r2, 25 + 3942: 493d lsri r1, r1, 29 + 3944: 9300 ld.w r0, (r3, 0x0) + 3946: 4128 lsli r1, r1, 8 + 3948: 6c40 or r1, r0 + 394a: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 394c: 423c lsli r1, r2, 28 + 394e: 493d lsri r1, r1, 29 + 3950: 9300 ld.w r0, (r3, 0x0) + 3952: 4130 lsli r1, r1, 16 + 3954: 6c40 or r1, r0 + 3956: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3958: 8421 ld.b r1, (r4, 0x1) + 395a: 9300 ld.w r0, (r3, 0x0) + 395c: 4138 lsli r1, r1, 24 + 395e: 6c40 or r1, r0 + 3960: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 3962: 9320 ld.w r1, (r3, 0x0) + 3964: 4a47 lsri r2, r2, 7 + 3966: 6c84 or r2, r1 + 3968: b340 st.w r2, (r3, 0x0) +} + 396a: 1491 pop r4, r15 + TempCtrl.TemState_Now.on_off = TEMP_OFF; + 396c: 8442 ld.b r2, (r4, 0x2) + 396e: 317f movi r1, 127 + 3970: 6884 and r2, r1 + 3972: 078d br 0x388c // 388c + TempCtrl.TemState_Now.mode = MODEL_COLD; + 3974: 8442 ld.b r2, (r4, 0x2) + 3976: 3170 movi r1, 112 + 3978: 6885 andn r2, r1 + 397a: 07a8 br 0x38ca // 38ca + TempCtrl.TemState_Now.fan = FAN_MID; + 397c: 8442 ld.b r2, (r4, 0x2) + 397e: 310e movi r1, 14 + 3980: 6885 andn r2, r1 + 3982: 3aa1 bseti r2, 1 + 3984: 07c2 br 0x3908 // 3908 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 3986: 8462 ld.b r3, (r4, 0x2) + 3988: 320e movi r2, 14 + 398a: 68c9 andn r3, r2 + 398c: 3ba1 bseti r3, 1 + 398e: a462 st.b r3, (r4, 0x2) + TempCtrl.TemState_Now.set_t = 24; //24 + 3990: 3318 movi r3, 24 + 3992: 07c8 br 0x3922 // 3922 + 3994: 20000420 .long 0x20000420 + 3998: 200000ac .long 0x200000ac + 399c: 00005f42 .long 0x00005f42 + 39a0: 200000a8 .long 0x200000a8 + 39a4: 2000005c .long 0x2000005c + +Disassembly of section .text.Tem_Valve_Ctrl: + +000039a8 : + * 函数功能:阀门控制 + * + * +*****************************************************************/ +void Tem_Valve_Ctrl(void) +{ + 39a8: 14c1 push r4 + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + 39aa: 1077 lrw r3, 0x20000420 // 3a04 + 39ac: 8300 ld.b r0, (r3, 0x0) + 39ae: 3840 cmpnei r0, 0 + 39b0: 0802 bt 0x39b4 // 39b4 + 39b2: 3020 movi r0, 32 + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + 39b4: 8341 ld.b r2, (r3, 0x1) + 39b6: 3a40 cmpnei r2, 0 + 39b8: 0802 bt 0x39bc // 39bc + 39ba: 3220 movi r2, 32 + switch(TempCtrl.TemState_Now.on_off) // + 39bc: 8322 ld.b r1, (r3, 0x2) + 39be: 4987 lsri r4, r1, 7 + 39c0: 3c40 cmpnei r4, 0 + 39c2: 0c1e bf 0x39fe // 39fe + 39c4: 3c41 cmpnei r4, 1 + 39c6: 080f bt 0x39e4 // 39e4 + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + 39c8: 4199 lsli r4, r1, 25 + 39ca: 4c9d lsri r4, r4, 29 + 39cc: 3c42 cmpnei r4, 2 + 39ce: 0c12 bf 0x39f2 // 39f2 + 39d0: 3c44 cmpnei r4, 4 + 39d2: 0c16 bf 0x39fe // 39fe + 39d4: 3c40 cmpnei r4, 0 + 39d6: 0807 bt 0x39e4 // 39e4 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 39d8: 5a23 subi r1, r2, 1 + 39da: 6441 cmplt r0, r1 + 39dc: 0c05 bf 0x39e6 // 39e6 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 39de: 8342 ld.b r2, (r3, 0x2) + 39e0: 3a80 bclri r2, 0 + } + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 39e2: a342 st.b r2, (r3, 0x2) + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + 39e4: 1481 pop r4 + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 39e6: 2200 addi r2, 1 + 39e8: 6409 cmplt r2, r0 + 39ea: 0ffd bf 0x39e4 // 39e4 + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + 39ec: 8342 ld.b r2, (r3, 0x2) + 39ee: 3aa0 bseti r2, 0 + 39f0: 07f9 br 0x39e2 // 39e2 + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + 39f2: 5a22 addi r1, r2, 1 + 39f4: 6405 cmplt r1, r0 + 39f6: 0bf4 bt 0x39de // 39de + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + 39f8: 2a00 subi r2, 1 + 39fa: 6481 cmplt r0, r2 + 39fc: 07f7 br 0x39ea // 39ea + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + 39fe: 3980 bclri r1, 0 + 3a00: a322 st.b r1, (r3, 0x2) +} + 3a02: 07f1 br 0x39e4 // 39e4 + 3a04: 20000420 .long 0x20000420 + +Disassembly of section .text.DisPlay_Task: + +00003a08 : + * 函数功能:设置模式下参数保存,状态改变上报 + * + * +**********************************************************************************/ +void DisPlay_Task(void) +{ + 3a08: 14d2 push r4-r5, r15 + static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 + + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + 3a0a: 129c lrw r4, 0x20000420 // 3b78 + 3a0c: 8462 ld.b r3, (r4, 0x2) + 3a0e: 748e sextb r2, r3 + 3a10: 3adf btsti r2, 31 + 3a12: 12bb lrw r5, 0x200000b8 // 3b7c + 3a14: 0c70 bf 0x3af4 // 3af4 + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + 3a16: 8446 ld.b r2, (r4, 0x6) + 3a18: 4379 lsli r3, r3, 25 + 3a1a: 4239 lsli r1, r2, 25 + 3a1c: 4b7d lsri r3, r3, 29 + 3a1e: 493d lsri r1, r1, 29 + 3a20: 64c6 cmpne r1, r3 + 3a22: 0c16 bf 0x3a4e // 3a4e + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + 3a24: 3070 movi r0, 112 + 3a26: 4324 lsli r1, r3, 4 + 3a28: 6881 andn r2, r0 + 3a2a: 6c84 or r2, r1 + 3a2c: a446 st.b r2, (r4, 0x6) + + SYSCON->UREG0 &= 0xFFFF00FF; + 3a2e: 30ff movi r0, 255 + 3a30: 1254 lrw r2, 0x2000005c // 3b80 + 3a32: 4008 lsli r0, r0, 8 + 3a34: 9240 ld.w r2, (r2, 0x0) + 3a36: 22ff addi r2, 256 + 3a38: 9220 ld.w r1, (r2, 0x0) + 3a3a: 6841 andn r1, r0 + 3a3c: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + 3a3e: 9220 ld.w r1, (r2, 0x0) + 3a40: 4368 lsli r3, r3, 8 + 3a42: 6cc4 or r3, r1 + 3a44: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3a46: 3301 movi r3, 1 + 3a48: a472 st.b r3, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a4a: 9560 ld.w r3, (r5, 0x0) + 3a4c: b468 st.w r3, (r4, 0x20) + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + 3a4e: 8462 ld.b r3, (r4, 0x2) + 3a50: 8446 ld.b r2, (r4, 0x6) + 3a52: 437c lsli r3, r3, 28 + 3a54: 425c lsli r2, r2, 28 + 3a56: 4a5d lsri r2, r2, 29 + 3a58: 4b7d lsri r3, r3, 29 + 3a5a: 64ca cmpne r2, r3 + 3a5c: 124a lrw r2, 0x20000144 // 3b84 + 3a5e: 0804 bt 0x3a66 // 3a66 + 3a60: 8220 ld.b r1, (r2, 0x0) + 3a62: 3941 cmpnei r1, 1 + 3a64: 0819 bt 0x3a96 // 3a96 + { + OpenDisPlay_Flag = 0x00; + 3a66: 3100 movi r1, 0 + 3a68: a220 st.b r1, (r2, 0x0) + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + 3a6a: 8446 ld.b r2, (r4, 0x6) + 3a6c: 300e movi r0, 14 + 3a6e: 4321 lsli r1, r3, 1 + 3a70: 6881 andn r2, r0 + 3a72: 6c84 or r2, r1 + 3a74: a446 st.b r2, (r4, 0x6) + + + SYSCON->UREG0 &= 0xFF00FFFF; + 3a76: 30ff movi r0, 255 + 3a78: 1242 lrw r2, 0x2000005c // 3b80 + 3a7a: 4010 lsli r0, r0, 16 + 3a7c: 9240 ld.w r2, (r2, 0x0) + 3a7e: 22ff addi r2, 256 + 3a80: 9220 ld.w r1, (r2, 0x0) + 3a82: 6841 andn r1, r0 + 3a84: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + 3a86: 9220 ld.w r1, (r2, 0x0) + 3a88: 4370 lsli r3, r3, 16 + 3a8a: 6cc4 or r3, r1 + 3a8c: b260 st.w r3, (r2, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3a8e: 3301 movi r3, 1 + 3a90: a472 st.b r3, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3a92: 9560 ld.w r3, (r5, 0x0) + 3a94: b468 st.w r3, (r4, 0x20) + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + 3a96: 8461 ld.b r3, (r4, 0x1) + 3a98: 8445 ld.b r2, (r4, 0x5) + 3a9a: 64ca cmpne r2, r3 + 3a9c: 0c11 bf 0x3abe // 3abe + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + 3a9e: 1159 lrw r2, 0x2000005c // 3b80 + 3aa0: 9220 ld.w r1, (r2, 0x0) + 3aa2: 21ff addi r1, 256 + 3aa4: 9140 ld.w r2, (r1, 0x0) + 3aa6: 4248 lsli r2, r2, 8 + 3aa8: 4a48 lsri r2, r2, 8 + 3aaa: b140 st.w r2, (r1, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3aac: 9100 ld.w r0, (r1, 0x0) + 3aae: 4358 lsli r2, r3, 24 + 3ab0: 6c80 or r2, r0 + 3ab2: b140 st.w r2, (r1, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3ab4: 3201 movi r2, 1 + 3ab6: a452 st.b r2, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3ab8: 9540 ld.w r2, (r5, 0x0) + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + 3aba: a465 st.b r3, (r4, 0x5) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3abc: b448 st.w r2, (r4, 0x20) + } + + + if(TempCtrl.TemStateLast.indoor_t != TempCtrl.TemState_Now.indoor_t) //刷新室内温度 + 3abe: 8400 ld.b r0, (r4, 0x0) + 3ac0: 8444 ld.b r2, (r4, 0x4) + 3ac2: 640a cmpne r2, r0 + 3ac4: 0c0d bf 0x3ade // 3ade + { + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + 3ac6: 114f lrw r2, 0x2000005c // 3b80 + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3ac8: 4378 lsli r3, r3, 24 + SYSCON->UREG0 &= 0x00FFFFFF; + 3aca: 9240 ld.w r2, (r2, 0x0) + 3acc: 22ff addi r2, 256 + 3ace: 9220 ld.w r1, (r2, 0x0) + 3ad0: 4128 lsli r1, r1, 8 + 3ad2: 4928 lsri r1, r1, 8 + 3ad4: b220 st.w r1, (r2, 0x0) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3ad6: 9220 ld.w r1, (r2, 0x0) + 3ad8: 6cc4 or r3, r1 + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3ada: a404 st.b r0, (r4, 0x4) + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + 3adc: b260 st.w r3, (r2, 0x0) + } + + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000) + 3ade: 9447 ld.w r2, (r4, 0x1c) + 3ae0: 9560 ld.w r3, (r5, 0x0) + 3ae2: 60ca subu r3, r2 + 3ae4: 1149 lrw r2, 0x752f // 3b88 + 3ae6: 64c8 cmphs r2, r3 + 3ae8: 0806 bt 0x3af4 // 3af4 + { + TempCtrl.Temp_SendTick = SysTick_1ms; + 3aea: 9560 ld.w r3, (r5, 0x0) + 3aec: b467 st.w r3, (r4, 0x1c) + + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 3aee: 3301 movi r3, 1 + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3af0: a404 st.b r0, (r4, 0x4) + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + 3af2: a472 st.b r3, (r4, 0x12) + + } + } + + //开机状态 + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + 3af4: 8442 ld.b r2, (r4, 0x2) + 3af6: 8466 ld.b r3, (r4, 0x6) + 3af8: 4a47 lsri r2, r2, 7 + 3afa: 4b27 lsri r1, r3, 7 + 3afc: 6486 cmpne r1, r2 + 3afe: 0c14 bf 0x3b26 // 3b26 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + 3b00: 307f movi r0, 127 + 3b02: 4227 lsli r1, r2, 7 + 3b04: 68c0 and r3, r0 + 3b06: 6cc4 or r3, r1 + 3b08: a466 st.b r3, (r4, 0x6) + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + 3b0a: 30ff movi r0, 255 + 3b0c: 107d lrw r3, 0x2000005c // 3b80 + 3b0e: 9360 ld.w r3, (r3, 0x0) + 3b10: 23ff addi r3, 256 + 3b12: 9320 ld.w r1, (r3, 0x0) + 3b14: 6841 andn r1, r0 + 3b16: b320 st.w r1, (r3, 0x0) + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + 3b18: 9320 ld.w r1, (r3, 0x0) + 3b1a: 6c84 or r2, r1 + 3b1c: b340 st.w r2, (r3, 0x0) + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + 3b1e: 3301 movi r3, 1 + 3b20: a472 st.b r3, (r4, 0x12) + TempCtrl.TempChange_Tick = SysTick_1ms; + 3b22: 9560 ld.w r3, (r5, 0x0) + 3b24: b468 st.w r3, (r4, 0x20) + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + 3b26: 8472 ld.b r3, (r4, 0x12) + 3b28: 3b41 cmpnei r3, 1 + 3b2a: 0815 bt 0x3b54 // 3b54 + 3b2c: 9448 ld.w r2, (r4, 0x20) + 3b2e: 9560 ld.w r3, (r5, 0x0) + 3b30: 60ca subu r3, r2 + 3b32: 1057 lrw r2, 0x3e7 // 3b8c + 3b34: 64c8 cmphs r2, r3 + 3b36: 080f bt 0x3b54 // 3b54 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 3b38: 9560 ld.w r3, (r5, 0x0) + 3b3a: b468 st.w r3, (r4, 0x20) + TempCtrl.TempChange_Flag = 0x00; + 3b3c: 3300 movi r3, 0 + 3b3e: a472 st.b r3, (r4, 0x12) + + TempCtrl.Temp_SendTick = SysTick_1ms; + 3b40: 9560 ld.w r3, (r5, 0x0) + 3b42: b467 st.w r3, (r4, 0x1c) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 3b44: 1073 lrw r3, 0x200003f0 // 3b90 + 3b46: 8367 ld.b r3, (r3, 0x7) + 3b48: 3b42 cmpnei r3, 2 + 3b4a: 0805 bt 0x3b54 // 3b54 + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + 3b4c: 30fa movi r0, 250 + 3b4e: 4002 lsli r0, r0, 2 + 3b50: e0000226 bsr 0x3f9c // 3f9c + + } + + + //状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + 3b54: 9448 ld.w r2, (r4, 0x20) + 3b56: 9560 ld.w r3, (r5, 0x0) + 3b58: 60ca subu r3, r2 + 3b5a: 104f lrw r2, 0x493df // 3b94 + 3b5c: 64c8 cmphs r2, r3 + 3b5e: 080c bt 0x3b76 // 3b76 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + 3b60: 9560 ld.w r3, (r5, 0x0) + 3b62: b468 st.w r3, (r4, 0x20) + TempCtrl.Temp_SendTick = SysTick_1ms; + 3b64: 9560 ld.w r3, (r5, 0x0) + 3b66: b467 st.w r3, (r4, 0x1c) + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + 3b68: 106a lrw r3, 0x200003f0 // 3b90 + 3b6a: 8367 ld.b r3, (r3, 0x7) + 3b6c: 3b42 cmpnei r3, 2 + 3b6e: 0804 bt 0x3b76 // 3b76 + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + 3b70: 100a lrw r0, 0xea60 // 3b98 + 3b72: e0000215 bsr 0x3f9c // 3f9c + } + } + +} + 3b76: 1492 pop r4-r5, r15 + 3b78: 20000420 .long 0x20000420 + 3b7c: 200000b8 .long 0x200000b8 + 3b80: 2000005c .long 0x2000005c + 3b84: 20000144 .long 0x20000144 + 3b88: 0000752f .long 0x0000752f + 3b8c: 000003e7 .long 0x000003e7 + 3b90: 200003f0 .long 0x200003f0 + 3b94: 000493df .long 0x000493df + 3b98: 0000ea60 .long 0x0000ea60 + +Disassembly of section .text.Ctrller_Query_AirState: + +00003b9c : + * 函数功能 : 查询空调状态 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Query_AirState(void) +{ + 3b9c: 14d0 push r15 + 3b9e: 1422 subi r14, r14, 8 + U8_T SdBuff[8]; + U16_T SdLen = 0x06; + + SdBuff[0] = 0xDD; + 3ba0: 3300 movi r3, 0 + 3ba2: 2b22 subi r3, 35 + 3ba4: dc6e0000 st.b r3, (r14, 0x0) + SdBuff[1] = 0x06; + 3ba8: 3306 movi r3, 6 + 3baa: dc6e0001 st.b r3, (r14, 0x1) + SdBuff[2] = 0xFF; + 3bae: 3300 movi r3, 0 + 3bb0: 2b00 subi r3, 1 + 3bb2: dc6e0002 st.b r3, (r14, 0x2) + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x02; //命令字 + + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + 3bb6: 3105 movi r1, 5 + SdBuff[3] = g_Dip.DIP_addr; + 3bb8: 1069 lrw r3, 0x20000448 // 3bdc + 3bba: 8366 ld.b r3, (r3, 0x6) + 3bbc: dc6e0003 st.b r3, (r14, 0x3) + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + 3bc0: 6c3b mov r0, r14 + SdBuff[4] = 0x02; //命令字 + 3bc2: 3302 movi r3, 2 + 3bc4: dc6e0004 st.b r3, (r14, 0x4) + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + 3bc8: e3fffd88 bsr 0x36d8 // 36d8 + 3bcc: dc0e0005 st.b r0, (r14, 0x5) + + Controller485_SendData(SdBuff,SdLen); + 3bd0: 3106 movi r1, 6 + 3bd2: 6c3b mov r0, r14 + 3bd4: e3fffbea bsr 0x33a8 // 33a8 +} + 3bd8: 1402 addi r14, r14, 8 + 3bda: 1490 pop r15 + 3bdc: 20000448 .long 0x20000448 + +Disassembly of section .text.Ctrller_Ctrl_AirState: + +00003be0 : + * 函数功能 : 控制空调状态 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Ctrl_AirState(void) +{ + 3be0: 14d0 push r15 + 3be2: 1423 subi r14, r14, 12 + U8_T SdBuff[12]; + U16_T SdLen = 0x0B; + + SdBuff[0] = 0xDD; + 3be4: 3300 movi r3, 0 + 3be6: 2b22 subi r3, 35 + 3be8: dc6e0000 st.b r3, (r14, 0x0) + SdBuff[1] = 0x0B; + 3bec: 330b movi r3, 11 + 3bee: dc6e0001 st.b r3, (r14, 0x1) + SdBuff[2] = 0xFF; + 3bf2: 3300 movi r3, 0 + 3bf4: 2b00 subi r3, 1 + 3bf6: dc6e0002 st.b r3, (r14, 0x2) + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x03; //命令字 + + SdBuff[5] = TempCtrl.TemState_Now.on_off; //开关机状态 + 3bfa: 1141 lrw r2, 0x20000420 // 3c7c + SdBuff[3] = g_Dip.DIP_addr; + 3bfc: 1161 lrw r3, 0x20000448 // 3c80 + 3bfe: 8366 ld.b r3, (r3, 0x6) + 3c00: dc6e0003 st.b r3, (r14, 0x3) + SdBuff[4] = 0x03; //命令字 + 3c04: 3303 movi r3, 3 + 3c06: dc6e0004 st.b r3, (r14, 0x4) + SdBuff[5] = TempCtrl.TemState_Now.on_off; //开关机状态 + 3c0a: 8262 ld.b r3, (r2, 0x2) + 3c0c: 4b27 lsri r1, r3, 7 + 3c0e: dc2e0005 st.b r1, (r14, 0x5) + + SdBuff[6] = TempCtrl.TemState_Now.set_t; //设定温度 + 3c12: 8221 ld.b r1, (r2, 0x1) + 3c14: dc2e0006 st.b r1, (r14, 0x6) + + if(TempCtrl.TemState_Now.mode == MODEL_COLD){ //空调工作模式, 0x01:制热, 0x02:制冷, 0x04:送风 + 3c18: 74cc zextb r3, r3 + 3c1a: 3170 movi r1, 112 + 3c1c: 684c and r1, r3 + 3c1e: 3940 cmpnei r1, 0 + 3c20: 081a bt 0x3c54 // 3c54 + SdBuff[7] = 0x02; + 3c22: 3102 movi r1, 2 + }else if(TempCtrl.TemState_Now.mode == MODEL_HOT){ + SdBuff[7] = 0x01; + }else if(TempCtrl.TemState_Now.mode == MODEL_WIND){ + SdBuff[7] = 0x04; + 3c24: dc2e0007 st.b r1, (r14, 0x7) + }else{ + SdBuff[7] = 0x02; + } + + if(TempCtrl.TemState_Now.fan == FAN_AUTO){ //空调风速, 0x00:自动, 0x01:低风速, 0x02:中风速, 0x03:高风速 + 3c28: 310e movi r1, 14 + 3c2a: 68c4 and r3, r1 + 3c2c: 3b46 cmpnei r3, 6 + 3c2e: 081d bt 0x3c68 // 3c68 + SdBuff[8] = 0x00; + 3c30: 3300 movi r3, 0 + }else if(TempCtrl.TemState_Now.fan == FAN_LOW){ + SdBuff[8] = 0x01; + }else if(TempCtrl.TemState_Now.fan == FAN_MID){ + SdBuff[8] = 0x02; + }else if(TempCtrl.TemState_Now.fan == FAN_HIGH){ + SdBuff[8] = 0x03; + 3c32: dc6e0008 st.b r3, (r14, 0x8) + SdBuff[8] = 0x00; + } + + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + 3c36: 310a movi r1, 10 + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + 3c38: 826c ld.b r3, (r2, 0xc) + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + 3c3a: 6c3b mov r0, r14 + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + 3c3c: dc6e0009 st.b r3, (r14, 0x9) + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + 3c40: e3fffd4c bsr 0x36d8 // 36d8 + 3c44: dc0e000a st.b r0, (r14, 0xa) + + Controller485_SendData(SdBuff,SdLen); + 3c48: 310b movi r1, 11 + 3c4a: 6c3b mov r0, r14 + 3c4c: e3fffbae bsr 0x33a8 // 33a8 +} + 3c50: 1403 addi r14, r14, 12 + 3c52: 1490 pop r15 + }else if(TempCtrl.TemState_Now.mode == MODEL_HOT){ + 3c54: 3020 movi r0, 32 + 3c56: 6406 cmpne r1, r0 + 3c58: 0803 bt 0x3c5e // 3c5e + SdBuff[7] = 0x01; + 3c5a: 3101 movi r1, 1 + 3c5c: 07e4 br 0x3c24 // 3c24 + }else if(TempCtrl.TemState_Now.mode == MODEL_WIND){ + 3c5e: 3040 movi r0, 64 + 3c60: 6406 cmpne r1, r0 + 3c62: 0be0 bt 0x3c22 // 3c22 + SdBuff[7] = 0x04; + 3c64: 3104 movi r1, 4 + 3c66: 07df br 0x3c24 // 3c24 + }else if(TempCtrl.TemState_Now.fan == FAN_LOW){ + 3c68: 3b40 cmpnei r3, 0 + 3c6a: 0803 bt 0x3c70 // 3c70 + SdBuff[8] = 0x01; + 3c6c: 3301 movi r3, 1 + 3c6e: 07e2 br 0x3c32 // 3c32 + }else if(TempCtrl.TemState_Now.fan == FAN_MID){ + 3c70: 3b42 cmpnei r3, 2 + 3c72: 0fe0 bf 0x3c32 // 3c32 + }else if(TempCtrl.TemState_Now.fan == FAN_HIGH){ + 3c74: 3b44 cmpnei r3, 4 + 3c76: 0bdd bt 0x3c30 // 3c30 + SdBuff[8] = 0x03; + 3c78: 3303 movi r3, 3 + 3c7a: 07dc br 0x3c32 // 3c32 + 3c7c: 20000420 .long 0x20000420 + 3c80: 20000448 .long 0x20000448 + +Disassembly of section .text.TemCtrl_Pro: + +00003c84 : +{ + 3c84: 14d2 push r4-r5, r15 + if(TempCtrl.TemState_Now.on_off != TempCtrl.TemState_Ctrller.on_off) + 3c86: 118e lrw r4, 0x20000420 // 3d3c + Tem_Valve_Ctrl(); + 3c88: e3fffe90 bsr 0x39a8 // 39a8 + if(TempCtrl.TemState_Now.on_off != TempCtrl.TemState_Ctrller.on_off) + 3c8c: 8442 ld.b r2, (r4, 0x2) + 3c8e: 846a ld.b r3, (r4, 0xa) + 3c90: 4a47 lsri r2, r2, 7 + 3c92: 4b27 lsri r1, r3, 7 + 3c94: 6486 cmpne r1, r2 + 3c96: 0c08 bf 0x3ca6 // 3ca6 + TempCtrl.TemState_Ctrller.on_off = TempCtrl.TemState_Now.on_off; + 3c98: 317f movi r1, 127 + 3c9a: 4247 lsli r2, r2, 7 + 3c9c: 68c4 and r3, r1 + 3c9e: 6cc8 or r3, r2 + 3ca0: a46a st.b r3, (r4, 0xa) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3ca2: 3301 movi r3, 1 + 3ca4: a474 st.b r3, (r4, 0x14) + if(TempCtrl.TemState_Now.set_t != TempCtrl.TemState_Ctrller.set_t) + 3ca6: 8461 ld.b r3, (r4, 0x1) + 3ca8: 8449 ld.b r2, (r4, 0x9) + 3caa: 64ca cmpne r2, r3 + 3cac: 0c04 bf 0x3cb4 // 3cb4 + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + 3cae: a469 st.b r3, (r4, 0x9) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3cb0: 3301 movi r3, 1 + 3cb2: a474 st.b r3, (r4, 0x14) + if(TempCtrl.TemState_Now.mode != TempCtrl.TemState_Ctrller.mode) + 3cb4: 8462 ld.b r3, (r4, 0x2) + 3cb6: 844a ld.b r2, (r4, 0xa) + 3cb8: 4379 lsli r3, r3, 25 + 3cba: 4239 lsli r1, r2, 25 + 3cbc: 4b7d lsri r3, r3, 29 + 3cbe: 493d lsri r1, r1, 29 + 3cc0: 64c6 cmpne r1, r3 + 3cc2: 0c08 bf 0x3cd2 // 3cd2 + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3cc4: 3170 movi r1, 112 + 3cc6: 4364 lsli r3, r3, 4 + 3cc8: 6885 andn r2, r1 + 3cca: 6cc8 or r3, r2 + 3ccc: a46a st.b r3, (r4, 0xa) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3cce: 3301 movi r3, 1 + 3cd0: a474 st.b r3, (r4, 0x14) + if(TempCtrl.TemState_Now.fan != TempCtrl.TemState_Ctrller.fan) + 3cd2: 8462 ld.b r3, (r4, 0x2) + 3cd4: 844a ld.b r2, (r4, 0xa) + 3cd6: 437c lsli r3, r3, 28 + 3cd8: 423c lsli r1, r2, 28 + 3cda: 4b7d lsri r3, r3, 29 + 3cdc: 493d lsri r1, r1, 29 + 3cde: 64c6 cmpne r1, r3 + 3ce0: 0c08 bf 0x3cf0 // 3cf0 + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + 3ce2: 310e movi r1, 14 + 3ce4: 4361 lsli r3, r3, 1 + 3ce6: 6885 andn r2, r1 + 3ce8: 6cc8 or r3, r2 + 3cea: a46a st.b r3, (r4, 0xa) + TempCtrl.TempCtrllerChange_Flag = 0x01; + 3cec: 3301 movi r3, 1 + 3cee: a474 st.b r3, (r4, 0x14) + if( (TempCtrl.TempCtrllerChange_Flag == 0x01)&&(SysTick_1ms - TemCtrl_tick >= 300) ) + 3cf0: 8474 ld.b r3, (r4, 0x14) + 3cf2: 3b41 cmpnei r3, 1 + 3cf4: 10b3 lrw r5, 0x200000b8 // 3d40 + 3cf6: 0813 bt 0x3d1c // 3d1c + 3cf8: 1053 lrw r2, 0x20000144 // 3d44 + 3cfa: 9221 ld.w r1, (r2, 0x4) + 3cfc: 9560 ld.w r3, (r5, 0x0) + 3cfe: 60c6 subu r3, r1 + 3d00: 1032 lrw r1, 0x12b // 3d48 + 3d02: 64c4 cmphs r1, r3 + 3d04: 080c bt 0x3d1c // 3d1c + TempCtrl.TemQuery_1S_tick = SysTick_1ms; + 3d06: 9560 ld.w r3, (r5, 0x0) + 3d08: b469 st.w r3, (r4, 0x24) + TemCtrl_tick = SysTick_1ms; + 3d0a: 9560 ld.w r3, (r5, 0x0) + 3d0c: b261 st.w r3, (r2, 0x4) + if(TempCtrl.TempCtrller_Cnt <= 0x03) + 3d0e: 8473 ld.b r3, (r4, 0x13) + 3d10: 3b03 cmphsi r3, 4 + 3d12: 0810 bt 0x3d32 // 3d32 + TempCtrl.TempCtrller_Cnt++; + 3d14: 2300 addi r3, 1 + 3d16: a473 st.b r3, (r4, 0x13) + Ctrller_Ctrl_AirState(); + 3d18: e3ffff64 bsr 0x3be0 // 3be0 + if(SysTick_1ms - TempCtrl.TemQuery_1S_tick >= 1000) + 3d1c: 9449 ld.w r2, (r4, 0x24) + 3d1e: 9560 ld.w r3, (r5, 0x0) + 3d20: 60ca subu r3, r2 + 3d22: 104b lrw r2, 0x3e7 // 3d4c + 3d24: 64c8 cmphs r2, r3 + 3d26: 0805 bt 0x3d30 // 3d30 + TempCtrl.TemQuery_1S_tick = SysTick_1ms; + 3d28: 9560 ld.w r3, (r5, 0x0) + 3d2a: b469 st.w r3, (r4, 0x24) + Ctrller_Query_AirState(); + 3d2c: e3ffff38 bsr 0x3b9c // 3b9c +} + 3d30: 1492 pop r4-r5, r15 + TempCtrl.TempCtrllerChange_Flag = 0x00; + 3d32: 3300 movi r3, 0 + 3d34: a474 st.b r3, (r4, 0x14) + TempCtrl.TempCtrller_Cnt = 0x00; + 3d36: a473 st.b r3, (r4, 0x13) + 3d38: 07f2 br 0x3d1c // 3d1c + 3d3a: 0000 bkpt + 3d3c: 20000420 .long 0x20000420 + 3d40: 200000b8 .long 0x200000b8 + 3d44: 20000144 .long 0x20000144 + 3d48: 0000012b .long 0x0000012b + 3d4c: 000003e7 .long 0x000003e7 + +Disassembly of section .text.Ctrller_AirState_Processing: + +00003d50 : + * RecData : 接收数据 + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_AirState_Processing(U8_T *RecData, U16_T Len) +{ + 3d50: 14c1 push r4 + if(Len < 13) return 0x01; + 3d52: 390c cmphsi r1, 13 + 3d54: 0c63 bf 0x3e1a // 3e1a + + //开关机状态, 0x00:关机, 0x01:开机 + if(RecData[5] <= 0x01){ + 3d56: 8045 ld.b r2, (r0, 0x5) + 3d58: 3a01 cmphsi r2, 2 + 3d5a: 1172 lrw r3, 0x20000420 // 3e20 + 3d5c: 0807 bt 0x3d6a // 3d6a + TempCtrl.TemState_Now.on_off = RecData[5]; + 3d5e: 4227 lsli r1, r2, 7 + 3d60: 347f movi r4, 127 + 3d62: 8342 ld.b r2, (r3, 0x2) + 3d64: 6890 and r2, r4 + 3d66: 6c84 or r2, r1 + 3d68: a342 st.b r2, (r3, 0x2) + } + + //空调的设定温度, 16~30 + if( (RecData[6] >= TEM_MIN_SET)&&(RecData[6] <= TEM_MAX_SET) ){ + 3d6a: 3200 movi r2, 0 + 3d6c: 8026 ld.b r1, (r0, 0x6) + 3d6e: 2a0f subi r2, 16 + 3d70: 6084 addu r2, r1 + 3d72: 7488 zextb r2, r2 + 3d74: 3a10 cmphsi r2, 17 + 3d76: 0802 bt 0x3d7a // 3d7a + TempCtrl.TemState_Now.set_t = RecData[6]; + 3d78: a321 st.b r1, (r3, 0x1) + } + + //空调的工作模式, 0x01:制热, 0x02:制冷, 0x04:送风, 0x08:除湿 + if(RecData[7] == 0x01){ + 3d7a: 8047 ld.b r2, (r0, 0x7) + 3d7c: 3a41 cmpnei r2, 1 + 3d7e: 0833 bt 0x3de4 // 3de4 + TempCtrl.TemState_Now.mode = MODEL_HOT; + 3d80: 8342 ld.b r2, (r3, 0x2) + 3d82: 3170 movi r1, 112 + 3d84: 6885 andn r2, r1 + 3d86: 3aa5 bseti r2, 5 + }else if(RecData[7] == 0x02){ + TempCtrl.TemState_Now.mode = MODEL_COLD; + }else if(RecData[7] == 0x04){ + TempCtrl.TemState_Now.mode = MODEL_WIND; + 3d88: a342 st.b r2, (r3, 0x2) + }else{ + TempCtrl.TemState_Now.mode = MODEL_COLD; + } + + //空调的风速, 0x00:自动, 0x01:低风速, 0x02:中风速, 0x03:高风速 + if(RecData[8] == 0x00){ + 3d8a: 8048 ld.b r2, (r0, 0x8) + 3d8c: 3a40 cmpnei r2, 0 + 3d8e: 0832 bt 0x3df2 // 3df2 + TempCtrl.TemState_Now.fan = FAN_AUTO; + 3d90: 8342 ld.b r2, (r3, 0x2) + 3d92: 310e movi r1, 14 + 3d94: 6885 andn r2, r1 + 3d96: 3aa1 bseti r2, 1 + 3d98: 3aa2 bseti r2, 2 + }else if(RecData[8] == 0x01){ + TempCtrl.TemState_Now.fan = FAN_LOW; + }else if(RecData[8] == 0x02){ + TempCtrl.TemState_Now.fan = FAN_MID; + }else if(RecData[8] == 0x03){ + TempCtrl.TemState_Now.fan = FAN_HIGH; + 3d9a: a342 st.b r2, (r3, 0x2) + }else{ + TempCtrl.TemState_Now.fan = FAN_LOW; + } + + //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + TempCtrl.Temp_dirwind = RecData[9]; + 3d9c: 8049 ld.b r2, (r0, 0x9) + 3d9e: a34c st.b r2, (r3, 0xc) + + //室内温度, 0~40 + if(RecData[10] <= 40){ + 3da0: 804a ld.b r2, (r0, 0xa) + 3da2: 3128 movi r1, 40 + 3da4: 6484 cmphs r1, r2 + 3da6: 0c02 bf 0x3daa // 3daa + TempCtrl.TemState_Now.indoor_t = RecData[10]; + 3da8: a340 st.b r2, (r3, 0x0) + } + + //空调的故障码, + + + TempCtrl.TemState_Ctrller.on_off = TempCtrl.TemState_Now.on_off; + 3daa: 8342 ld.b r2, (r3, 0x2) + 3dac: 4a47 lsri r2, r2, 7 + 3dae: 4227 lsli r1, r2, 7 + 3db0: 307f movi r0, 127 + 3db2: 834a ld.b r2, (r3, 0xa) + 3db4: 6880 and r2, r0 + 3db6: 6c84 or r2, r1 + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3db8: 8302 ld.b r0, (r3, 0x2) + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + 3dba: 8321 ld.b r1, (r3, 0x1) + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3dbc: 3407 movi r4, 7 + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + 3dbe: a329 st.b r1, (r3, 0x9) + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3dc0: 4804 lsri r0, r0, 4 + 3dc2: 318f movi r1, 143 + 3dc4: 6884 and r2, r1 + 3dc6: 6810 and r0, r4 + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + 3dc8: 8322 ld.b r1, (r3, 0x2) + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + 3dca: 4004 lsli r0, r0, 4 + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + 3dcc: 4921 lsri r1, r1, 1 + 3dce: 6c80 or r2, r0 + 3dd0: 6850 and r1, r4 + 3dd2: 300e movi r0, 14 + 3dd4: 6881 andn r2, r0 + 3dd6: 4121 lsli r1, r1, 1 + 3dd8: 6c84 or r2, r1 + 3dda: a34a st.b r2, (r3, 0xa) + TempCtrl.TemState_Ctrller.indoor_t = TempCtrl.TemState_Now.indoor_t; + 3ddc: 8340 ld.b r2, (r3, 0x0) + 3dde: a348 st.b r2, (r3, 0x8) + 3de0: 3000 movi r0, 0 + + return 0x00; +} + 3de2: 1481 pop r4 + }else if(RecData[7] == 0x02){ + 3de4: 3a44 cmpnei r2, 4 + TempCtrl.TemState_Now.mode = MODEL_COLD; + 3de6: 3170 movi r1, 112 + 3de8: 8342 ld.b r2, (r3, 0x2) + 3dea: 6885 andn r2, r1 + }else if(RecData[7] == 0x02){ + 3dec: 0bce bt 0x3d88 // 3d88 + TempCtrl.TemState_Now.mode = MODEL_WIND; + 3dee: 3aa6 bseti r2, 6 + 3df0: 07cc br 0x3d88 // 3d88 + }else if(RecData[8] == 0x01){ + 3df2: 3a41 cmpnei r2, 1 + 3df4: 0805 bt 0x3dfe // 3dfe + TempCtrl.TemState_Now.fan = FAN_LOW; + 3df6: 8342 ld.b r2, (r3, 0x2) + 3df8: 310e movi r1, 14 + 3dfa: 6885 andn r2, r1 + 3dfc: 07cf br 0x3d9a // 3d9a + }else if(RecData[8] == 0x02){ + 3dfe: 3a42 cmpnei r2, 2 + 3e00: 0806 bt 0x3e0c // 3e0c + TempCtrl.TemState_Now.fan = FAN_MID; + 3e02: 8342 ld.b r2, (r3, 0x2) + 3e04: 310e movi r1, 14 + 3e06: 6885 andn r2, r1 + 3e08: 3aa1 bseti r2, 1 + 3e0a: 07c8 br 0x3d9a // 3d9a + }else if(RecData[8] == 0x03){ + 3e0c: 3a43 cmpnei r2, 3 + 3e0e: 0bf4 bt 0x3df6 // 3df6 + TempCtrl.TemState_Now.fan = FAN_HIGH; + 3e10: 8342 ld.b r2, (r3, 0x2) + 3e12: 310e movi r1, 14 + 3e14: 6885 andn r2, r1 + 3e16: 3aa2 bseti r2, 2 + 3e18: 07c1 br 0x3d9a // 3d9a + if(Len < 13) return 0x01; + 3e1a: 3001 movi r0, 1 + 3e1c: 07e3 br 0x3de2 // 3de2 + 3e1e: 0000 bkpt + 3e20: 20000420 .long 0x20000420 + +Disassembly of section .text.Ctrller_CtrlAirState_Processing: + +00003e24 : + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_CtrlAirState_Processing(U8_T *RecData, U16_T Len) +{ + if(Len < 7) return 0x01; + 3e24: 3906 cmphsi r1, 7 + 3e26: 0c0a bf 0x3e3a // 3e3a + + if(RecData[5] == 0x00) //控制设定失败 + { + + } + else if(RecData[5] == 0x01) //控制设定成功 + 3e28: 8065 ld.b r3, (r0, 0x5) + 3e2a: 3b41 cmpnei r3, 1 + 3e2c: 0805 bt 0x3e36 // 3e36 + { + TempCtrl.TempCtrllerChange_Flag = 0x00; + 3e2e: 1065 lrw r3, 0x20000420 // 3e40 + 3e30: 3200 movi r2, 0 + 3e32: a354 st.b r2, (r3, 0x14) + TempCtrl.TempCtrller_Cnt = 0x00; + 3e34: a353 st.b r2, (r3, 0x13) + else if(RecData[5] == 0x01) //控制设定成功 + 3e36: 3000 movi r0, 0 + 3e38: 0402 br 0x3e3c // 3e3c + if(Len < 7) return 0x01; + 3e3a: 3001 movi r0, 1 + } + + return 0x00; +} + 3e3c: 783c jmp r15 + 3e3e: 0000 bkpt + 3e40: 20000420 .long 0x20000420 + +Disassembly of section .text.Ctrller_RecData_Processing: + +00003e44 : + * RecData : 接收数据缓冲区 + * Len : 接收数据长度 + * 函数输出 : 处理状态 +**********************************************************************************/ +U8_T Ctrller_RecData_Processing(U8_T *RecData, U16_T Len) +{ + 3e44: 14d4 push r4-r7, r15 + if( (Len < 6)||(RecData[1] != Len) ) + 3e46: 3905 cmphsi r1, 6 +{ + 3e48: 6d03 mov r4, r0 + 3e4a: 6c87 mov r2, r1 + if( (Len < 6)||(RecData[1] != Len) ) + 3e4c: 0c04 bf 0x3e54 // 3e54 + 3e4e: 80a1 ld.b r5, (r0, 0x1) + 3e50: 6456 cmpne r5, r1 + 3e52: 0c07 bf 0x3e60 // 3e60 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",Len); + 3e54: 3000 movi r0, 0 + 3e56: 1125 lrw r1, 0x5f5b // 3ee8 + 3e58: e3fffc3a bsr 0x36cc // 36cc + return 0x01; + 3e5c: 3001 movi r0, 1 + break; + } + + + return 0x00; +} + 3e5e: 1494 pop r4-r7, r15 + if(RecData[0] != 0xCC) + 3e60: 8040 ld.b r2, (r0, 0x0) + 3e62: 33cc movi r3, 204 + 3e64: 64ca cmpne r2, r3 + 3e66: 0c07 bf 0x3e74 // 3e74 + Dbg_Println(DBG_BIT_SYS_STATUS,"Head Err"); + 3e68: 3000 movi r0, 0 + 3e6a: 1121 lrw r1, 0x5f66 // 3eec + 3e6c: e3fffc30 bsr 0x36cc // 36cc + return 0x02; + 3e70: 3002 movi r0, 2 + 3e72: 07f6 br 0x3e5e // 3e5e + if( (RecData[2] != 0xFF)||(RecData[3] != g_Dip.DIP_addr) ) + 3e74: 8042 ld.b r2, (r0, 0x2) + 3e76: 33ff movi r3, 255 + 3e78: 64ca cmpne r2, r3 + 3e7a: 105e lrw r2, 0x20000448 // 3ef0 + 3e7c: 8063 ld.b r3, (r0, 0x3) + 3e7e: 0804 bt 0x3e86 // 3e86 + 3e80: 8226 ld.b r1, (r2, 0x6) + 3e82: 644e cmpne r3, r1 + 3e84: 0c09 bf 0x3e96 // 3e96 + Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Err:%d, %d",g_Dip.DIP_addr,RecData[3]); + 3e86: 3000 movi r0, 0 + 3e88: 74cc zextb r3, r3 + 3e8a: 8246 ld.b r2, (r2, 0x6) + 3e8c: 103a lrw r1, 0x5f6f // 3ef4 + 3e8e: e3fffc1f bsr 0x36cc // 36cc + return 0x03; + 3e92: 3003 movi r0, 3 + 3e94: 07e5 br 0x3e5e // 3e5e + if(RecData[Len-1] != EEPROM_CheckSum(RecData,(Len-1))) + 3e96: 5dc3 subi r6, r5, 1 + 3e98: 5874 addu r3, r0, r5 + 3e9a: 7599 zexth r6, r6 + 3e9c: 2b00 subi r3, 1 + 3e9e: 6c5b mov r1, r6 + 3ea0: 83e0 ld.b r7, (r3, 0x0) + 3ea2: e3fffc1b bsr 0x36d8 // 36d8 + 3ea6: 641e cmpne r7, r0 + 3ea8: 0c0e bf 0x3ec4 // 3ec4 + Dbg_Println(DBG_BIT_SYS_STATUS,"SumCRC Err:%d, %d",RecData[5],EEPROM_CheckSum(RecData,(Len-1))); + 3eaa: 6c5b mov r1, r6 + 3eac: 6c13 mov r0, r4 + 3eae: 84a5 ld.b r5, (r4, 0x5) + 3eb0: e3fffc14 bsr 0x36d8 // 36d8 + 3eb4: 6cc3 mov r3, r0 + 3eb6: 6c97 mov r2, r5 + 3eb8: 3000 movi r0, 0 + 3eba: 1030 lrw r1, 0x5f7f // 3ef8 + 3ebc: e3fffc08 bsr 0x36cc // 36cc + return 0x04; + 3ec0: 3004 movi r0, 4 + 3ec2: 07ce br 0x3e5e // 3e5e + switch(RecData[4]) + 3ec4: 8464 ld.b r3, (r4, 0x4) + 3ec6: 3b42 cmpnei r3, 2 + 3ec8: 0c05 bf 0x3ed2 // 3ed2 + 3eca: 3b43 cmpnei r3, 3 + 3ecc: 0c08 bf 0x3edc // 3edc + return 0x00; + 3ece: 3000 movi r0, 0 + 3ed0: 07c7 br 0x3e5e // 3e5e + Ctrller_AirState_Processing(RecData,Len); + 3ed2: 6c57 mov r1, r5 + 3ed4: 6c13 mov r0, r4 + 3ed6: e3ffff3d bsr 0x3d50 // 3d50 + 3eda: 07fa br 0x3ece // 3ece + Ctrller_CtrlAirState_Processing(RecData,Len); + 3edc: 6c57 mov r1, r5 + 3ede: 6c13 mov r0, r4 + 3ee0: e3ffffa2 bsr 0x3e24 // 3e24 + 3ee4: 07f5 br 0x3ece // 3ece + 3ee6: 0000 bkpt + 3ee8: 00005f5b .long 0x00005f5b + 3eec: 00005f66 .long 0x00005f66 + 3ef0: 20000448 .long 0x20000448 + 3ef4: 00005f6f .long 0x00005f6f + 3ef8: 00005f7f .long 0x00005f7f + +Disassembly of section .text.NetCRC16_Check: + +00003efc : + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + 3efc: 14c4 push r4-r7 + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + 3efe: 3902 cmphsi r1, 3 + 3f00: 0c1f bf 0x3f3e // 3f3e + U16_T alen = len-2; //CRC16??????? + 3f02: 2901 subi r1, 2 + 3f04: 7445 zexth r1, r1 + 3f06: 6d43 mov r5, r0 + 3f08: 3200 movi r2, 0 + 3f0a: 106e lrw r3, 0xffff // 3f40 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 3f14: 6d8f mov r6, r3 + 3f16: 699c and r6, r7 + 3f18: 3e40 cmpnei r6, 0 + 3f1a: 4b61 lsri r3, r3, 1 + 3f1c: 0c04 bf 0x3f24 // 3f24 + 3f1e: 10ca lrw r6, 0xffffa001 // 3f44 + 3f20: 6cd9 xor r3, r6 + 3f22: 74cd zexth r3, r3 + 3f24: 2c00 subi r4, 1 + 3f26: 7511 zexth r4, r4 + for(j=0;j<8;j++) + 3f28: 3c40 cmpnei r4, 0 + 3f2a: 0bf5 bt 0x3f14 // 3f14 + for(i=0;i + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + 3f36: 6040 addu r1, r0 + 3f38: a160 st.b r3, (r1, 0x0) + aStr[alen+1] = (U8_T)(xda>>8) ; + 3f3a: 4b68 lsri r3, r3, 8 + 3f3c: a161 st.b r3, (r1, 0x1) +} + 3f3e: 1484 pop r4-r7 + 3f40: 0000ffff .long 0x0000ffff + 3f44: ffffa001 .long 0xffffa001 + +Disassembly of section .text.GetCRC16: + +00003f48 : +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( U8_T *aStr , U16_T len) +{ + 3f48: 14c3 push r4-r6 + 3f4a: 6cc3 mov r3, r0 + 3f4c: 6040 addu r1, r0 + xda ^= aStr[i] ; + for (j = 0; j < 8; j++) + { + xdabit = (unsigned char)(xda & 0x01) ; + xda >>= 1 ; + if ( xdabit ) xda ^= xdapoly ; + 3f4e: 10ac lrw r5, 0xffffa001 // 3f7c + xda = 0xFFFF ; + 3f50: 100c lrw r0, 0xffff // 3f80 + for (i = 0; i < len; i++) + 3f52: 644e cmpne r3, r1 + 3f54: 0802 bt 0x3f58 // 3f58 + } + } + + return xda; +} + 3f56: 1483 pop r4-r6 + xda ^= aStr[i] ; + 3f58: 8340 ld.b r2, (r3, 0x0) + 3f5a: 6c09 xor r0, r2 + xdabit = (unsigned char)(xda & 0x01) ; + 3f5c: 3601 movi r6, 1 + xda ^= aStr[i] ; + 3f5e: 3208 movi r2, 8 + if ( xdabit ) xda ^= xdapoly ; + 3f60: 6d03 mov r4, r0 + 3f62: 6918 and r4, r6 + 3f64: 3c40 cmpnei r4, 0 + 3f66: 4801 lsri r0, r0, 1 + 3f68: 0c03 bf 0x3f6e // 3f6e + 3f6a: 6c15 xor r0, r5 + 3f6c: 7401 zexth r0, r0 + 3f6e: 2a00 subi r2, 1 + 3f70: 7489 zexth r2, r2 + for (j = 0; j < 8; j++) + 3f72: 3a40 cmpnei r2, 0 + 3f74: 0bf6 bt 0x3f60 // 3f60 + 3f76: 2300 addi r3, 1 + 3f78: 07ed br 0x3f52 // 3f52 + 3f7a: 0000 bkpt + 3f7c: ffffa001 .long 0xffffa001 + 3f80: 0000ffff .long 0x0000ffff + +Disassembly of section .text.SOR_CRC: + +00003f84 : + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + 3f84: 6cc3 mov r3, r0 + 3f86: 6040 addu r1, r0 + U8_T i; + U8_T sor_data = 0; + 3f88: 3000 movi r0, 0 + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + 3f8a: 644e cmpne r3, r1 + 3f8c: 0802 bt 0x3f90 // 3f90 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + 3f8e: 783c jmp r15 + sor_data = sor_data+Data[i]; + 3f90: 8340 ld.b r2, (r3, 0x0) + 3f92: 6008 addu r0, r2 + 3f94: 7400 zextb r0, r0 + 3f96: 2300 addi r3, 1 + 3f98: 07f9 br 0x3f8a // 3f8a + +Disassembly of section .text.Rs485_ASend: + +00003f9c : + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + 3f9c: 14d1 push r4, r15 + 3f9e: 1427 subi r14, r14, 28 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 3fa0: 1260 lrw r3, 0x200003f0 // 40a0 + 3fa2: 8367 ld.b r3, (r3, 0x7) + 3fa4: 3b42 cmpnei r3, 2 +{ + 3fa6: 6d03 mov r4, r0 + if(g_eeprom.dev_port != ACTIVE_PORT) return; + 3fa8: 0871 bt 0x408a // 408a + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 3faa: 3355 movi r3, 85 + 3fac: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 3fb0: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 3fb4: 3300 movi r3, 0 + 3fb6: 2b11 subi r3, 18 + 3fb8: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 3fbc: 3315 movi r3, 21 + 3fbe: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 3fc2: 3303 movi r3, 3 + 3fc4: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_Dip.DIP_addr; + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3fc8: 1157 lrw r2, 0x20000420 // 40a4 + SendData[5] = g_Dip.DIP_addr; + 3fca: 1178 lrw r3, 0x20000448 // 40a8 + 3fcc: 8366 ld.b r3, (r3, 0x6) + 3fce: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 3fd2: 3300 movi r3, 0 + 3fd4: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 3fd8: 8262 ld.b r3, (r2, 0x2) + 3fda: 4b27 lsri r1, r3, 7 + 3fdc: dc2e000b st.b r1, (r14, 0xb) + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 3fe0: 3100 movi r1, 0 + 3fe2: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + 3fe6: 3170 movi r1, 112 + 3fe8: 68c4 and r3, r1 + 3fea: 3b40 cmpnei r3, 0 + 3fec: 081a bt 0x4020 // 4020 + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + 3fee: 3301 movi r3, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 3ff0: dc6e000d st.b r3, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3ff4: 8261 ld.b r3, (r2, 0x1) + 3ff6: 3b40 cmpnei r3, 0 + 3ff8: 0802 bt 0x3ffc // 3ffc + 3ffa: 3320 movi r3, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 3ffc: 8202 ld.b r0, (r2, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 3ffe: dc6e000e st.b r3, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4002: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 4004: 3300 movi r3, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4006: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 4008: dc6e000f st.b r3, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 400c: 3304 movi r3, 4 + 400e: 60c2 subu r3, r0 + switch(TempCtrl.TemState_Now.fan) + 4010: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4012: dc6e0010 st.b r3, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 4016: 0842 bt 0x409a // 409a + 4018: e3ffe672 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 401c: 3d3b390c .long 0x3d3b390c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 4020: 3120 movi r1, 32 + 4022: 644e cmpne r3, r1 + 4024: 0803 bt 0x402a // 402a + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + 4026: 3302 movi r3, 2 + 4028: 07e4 br 0x3ff0 // 3ff0 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 402a: 3140 movi r1, 64 + 402c: 644e cmpne r3, r1 + 402e: 0be3 bt 0x3ff4 // 3ff4 + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + 4030: 3303 movi r3, 3 + 4032: 07df br 0x3ff0 // 3ff0 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + 4034: 3303 movi r3, 3 + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4036: 8222 ld.b r1, (r2, 0x2) + SendData[13] = 0x04; // + 4038: dc6e0011 st.b r3, (r14, 0x11) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 403c: 413f lsli r1, r1, 31 + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 403e: 3300 movi r3, 0 + 4040: dc6e0012 st.b r3, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 4044: dc6e0013 st.b r3, (r14, 0x13) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4048: 493f lsri r1, r1, 31 + SendData[17] = 0x00; //Func11 备用字节1 + 404a: dc6e0015 st.b r3, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 404e: dc6e0016 st.b r3, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 4052: dc6e0017 st.b r3, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4056: 8260 ld.b r3, (r2, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4058: 4123 lsli r1, r1, 3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 405a: 3b40 cmpnei r3, 0 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 405c: dc2e0014 st.b r1, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4060: 0802 bt 0x4064 // 4064 + 4062: 3320 movi r3, 32 + 4064: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 4068: 3300 movi r3, 0 + 406a: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 406e: 1b01 addi r3, r14, 4 + 4070: 5b0a addi r0, r3, 3 + 4072: 3115 movi r1, 21 + 4074: e3ffff44 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + 4078: 3396 movi r3, 150 + 407a: 4361 lsli r3, r3, 1 + 407c: b860 st.w r3, (r14, 0x0) + 407e: 3201 movi r2, 1 + 4080: 6cd3 mov r3, r4 + 4082: 3118 movi r1, 24 + 4084: 1801 addi r0, r14, 4 + 4086: e3fffa81 bsr 0x3588 // 3588 + +} + 408a: 1407 addi r14, r14, 28 + 408c: 1491 pop r4, r15 + SendData[13] = 0x02; + 408e: 3302 movi r3, 2 + 4090: 07d3 br 0x4036 // 4036 + SendData[13] = 0x01; + 4092: 3301 movi r3, 1 + 4094: 07d1 br 0x4036 // 4036 + SendData[13] = 0x00; // + 4096: 3300 movi r3, 0 + 4098: 07cf br 0x4036 // 4036 + SendData[13] = 0x04; // + 409a: 3304 movi r3, 4 + 409c: 07cd br 0x4036 // 4036 + 409e: 0000 bkpt + 40a0: 200003f0 .long 0x200003f0 + 40a4: 20000420 .long 0x20000420 + 40a8: 20000448 .long 0x20000448 + +Disassembly of section .text.Rs485AskCycleSend: + +000040ac : + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + 40ac: 14d0 push r15 + 40ae: 1427 subi r14, r14, 28 + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + 40b0: 3355 movi r3, 85 + 40b2: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 40b6: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; + 40ba: 3300 movi r3, 0 + 40bc: 2b11 subi r3, 18 + 40be: dc6e0006 st.b r3, (r14, 0x6) + SendData[3] = 0x15; + 40c2: 3315 movi r3, 21 + 40c4: dc6e0007 st.b r3, (r14, 0x7) + + SendData[4] = 0x03; //类型 + 40c8: 3303 movi r3, 3 + 40ca: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_Dip.DIP_addr; + 40ce: 1177 lrw r3, 0x20000448 // 41a8 + 40d0: 8366 ld.b r3, (r3, 0x6) + 40d2: dc6e0009 st.b r3, (r14, 0x9) + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + 40d6: 3300 movi r3, 0 + 40d8: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + 40dc: 1174 lrw r3, 0x20000420 // 41ac + 40de: 8342 ld.b r2, (r3, 0x2) + 40e0: 4a27 lsri r1, r2, 7 + 40e2: dc2e000b st.b r1, (r14, 0xb) + + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + 40e6: 3100 movi r1, 0 + 40e8: dc2e000c st.b r1, (r14, 0xc) + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { //Func3 模式低字节 1制冷 2制热 3通风 + 40ec: 3170 movi r1, 112 + 40ee: 6884 and r2, r1 + 40f0: 3a40 cmpnei r2, 0 + 40f2: 081a bt 0x4126 // 4126 + SendData[9] = 0x01; + 40f4: 3201 movi r2, 1 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; + 40f6: dc4e000d st.b r2, (r14, 0xd) + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 40fa: 8341 ld.b r2, (r3, 0x1) + 40fc: 3a40 cmpnei r2, 0 + 40fe: 0802 bt 0x4102 // 4102 + 4100: 3220 movi r2, 32 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4102: 8302 ld.b r0, (r3, 0x2) + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + 4104: dc4e000e st.b r2, (r14, 0xe) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4108: 401c lsli r0, r0, 28 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 410a: 3200 movi r2, 0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 410c: 481d lsri r0, r0, 29 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + 410e: dc4e000f st.b r2, (r14, 0xf) + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4112: 3204 movi r2, 4 + 4114: 6082 subu r2, r0 + switch(TempCtrl.TemState_Now.fan) + 4116: 3803 cmphsi r0, 4 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + 4118: dc4e0010 st.b r2, (r14, 0x10) + switch(TempCtrl.TemState_Now.fan) + 411c: 0843 bt 0x41a2 // 41a2 + 411e: e3ffe5ef bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4122: 3a0c .short 0x3a0c + 4124: 3e3c .short 0x3e3c + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + 4126: 3120 movi r1, 32 + 4128: 644a cmpne r2, r1 + 412a: 0803 bt 0x4130 // 4130 + SendData[9] = 0x02; + 412c: 3202 movi r2, 2 + 412e: 07e4 br 0x40f6 // 40f6 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + 4130: 3140 movi r1, 64 + 4132: 644a cmpne r2, r1 + 4134: 0be3 bt 0x40fa // 40fa + SendData[9] = 0x03; + 4136: 3203 movi r2, 3 + 4138: 07df br 0x40f6 // 40f6 + { + case FAN_LOW: //低速 + SendData[13] = 0x03; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + 413a: 3203 movi r2, 3 + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + 413c: dc4e0011 st.b r2, (r14, 0x11) + break; + } + + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + 4140: 3200 movi r2, 0 + 4142: dc4e0012 st.b r2, (r14, 0x12) + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + 4146: dc4e0013 st.b r2, (r14, 0x13) + + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 414a: 8342 ld.b r2, (r3, 0x2) + 414c: 425f lsli r2, r2, 31 + 414e: 4a5f lsri r2, r2, 31 + 4150: 4243 lsli r2, r2, 3 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4152: 8360 ld.b r3, (r3, 0x0) + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + 4154: dc4e0014 st.b r2, (r14, 0x14) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4158: 3b40 cmpnei r3, 0 + SendData[17] = 0x00; //Func11 备用字节1 + 415a: 3200 movi r2, 0 + 415c: dc4e0015 st.b r2, (r14, 0x15) + SendData[18] = 0x00; //Func12 备用字节2 + 4160: dc4e0016 st.b r2, (r14, 0x16) + SendData[19] = 0x00; //Func13 备用字节3 + 4164: dc4e0017 st.b r2, (r14, 0x17) + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + 4168: 0802 bt 0x416c // 416c + 416a: 3320 movi r3, 32 + 416c: dc6e0018 st.b r3, (r14, 0x18) + SendData[21] = 0x00; //Func15 室内温度小数值 + 4170: 3300 movi r3, 0 + 4172: dc6e0019 st.b r3, (r14, 0x19) + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 4176: 1b01 addi r3, r14, 4 + 4178: 5b0a addi r0, r3, 3 + 417a: 3115 movi r1, 21 + 417c: e3fffec0 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + 4180: 3314 movi r3, 20 + 4182: b860 st.w r3, (r14, 0x0) + 4184: 3396 movi r3, 150 + 4186: 4361 lsli r3, r3, 1 + 4188: 3201 movi r2, 1 + 418a: 3118 movi r1, 24 + 418c: 1801 addi r0, r14, 4 + 418e: e3fff9fd bsr 0x3588 // 3588 + +} + 4192: 1407 addi r14, r14, 28 + 4194: 1490 pop r15 + SendData[13] = 0x02; + 4196: 3202 movi r2, 2 + 4198: 07d2 br 0x413c // 413c + SendData[13] = 0x01; + 419a: 3201 movi r2, 1 + 419c: 07d0 br 0x413c // 413c + SendData[13] = 0x00; // + 419e: 3200 movi r2, 0 + 41a0: 07ce br 0x413c // 413c + SendData[13] = 0x04; // + 41a2: 3204 movi r2, 4 + 41a4: 07cc br 0x413c // 413c + 41a6: 0000 bkpt + 41a8: 20000448 .long 0x20000448 + 41ac: 20000420 .long 0x20000420 + +Disassembly of section .text.Rs485AskCtrlSend: + +000041b0 : + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + 41b0: 14d0 push r15 + 41b2: 1424 subi r14, r14, 16 + U8_T SendData[10]; + + SendData[0] = 0x55; + 41b4: 3355 movi r3, 85 + 41b6: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 41ba: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 41be: 3300 movi r3, 0 + 41c0: 2b11 subi r3, 18 + 41c2: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x07; //长度 + 41c6: 3307 movi r3, 7 + 41c8: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 41cc: 3303 movi r3, 3 + 41ce: dc6e0008 st.b r3, (r14, 0x8) + SendData[5] = g_Dip.DIP_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 41d2: 3107 movi r1, 7 + SendData[5] = g_Dip.DIP_addr; + 41d4: 106d lrw r3, 0x20000448 // 4208 + 41d6: 8366 ld.b r3, (r3, 0x6) + 41d8: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + 41dc: 8066 ld.b r3, (r0, 0x6) + 41de: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Recdata[7];//0x01; //内容 + 41e2: 8067 ld.b r3, (r0, 0x7) + 41e4: dc6e000b st.b r3, (r14, 0xb) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 41e8: 1b01 addi r3, r14, 4 + 41ea: 5b0a addi r0, r3, 3 + 41ec: e3fffe88 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + 41f0: 3314 movi r3, 20 + 41f2: b860 st.w r3, (r14, 0x0) + 41f4: 3396 movi r3, 150 + 41f6: 4361 lsli r3, r3, 1 + 41f8: 3201 movi r2, 1 + 41fa: 310a movi r1, 10 + 41fc: 1801 addi r0, r14, 4 + 41fe: e3fff9c5 bsr 0x3588 // 3588 + +} + 4202: 1404 addi r14, r14, 16 + 4204: 1490 pop r15 + 4206: 0000 bkpt + 4208: 20000448 .long 0x20000448 + +Disassembly of section .text.Rs485AskReadSend: + +0000420c : + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + 420c: 14d0 push r15 + 420e: 1424 subi r14, r14, 16 + U8_T SendData[11]; + + SendData[0] = 0x55; + 4210: 3355 movi r3, 85 + 4212: dc6e0004 st.b r3, (r14, 0x4) + SendData[1] = 0x55; + 4216: dc6e0005 st.b r3, (r14, 0x5) + SendData[2] = 0xee; //头 + 421a: 3300 movi r3, 0 + 421c: 2b11 subi r3, 18 + 421e: dc6e0006 st.b r3, (r14, 0x6) + + SendData[3] = 0x09; //长度 + 4222: 3309 movi r3, 9 + 4224: dc6e0007 st.b r3, (r14, 0x7) + SendData[4] = 0x03; //类型 + 4228: 3303 movi r3, 3 + 422a: dc6e0008 st.b r3, (r14, 0x8) + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 422e: 3109 movi r1, 9 + SendData[5] = g_Dip.DIP_addr; + 4230: 1070 lrw r3, 0x20000448 // 4270 + 4232: 8366 ld.b r3, (r3, 0x6) + 4234: dc6e0009 st.b r3, (r14, 0x9) + SendData[6] = Recdata[6]; + 4238: 8066 ld.b r3, (r0, 0x6) + 423a: dc6e000a st.b r3, (r14, 0xa) + SendData[7] = Project_FW_Version; + 423e: 3301 movi r3, 1 + 4240: dc6e000b st.b r3, (r14, 0xb) + SendData[8] = Project_HW_Version; + 4244: 3302 movi r3, 2 + 4246: dc6e000c st.b r3, (r14, 0xc) + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + 424a: 106b lrw r3, 0x200003f0 // 4274 + 424c: 8367 ld.b r3, (r3, 0x7) + 424e: dc6e000d st.b r3, (r14, 0xd) + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + 4252: 1b01 addi r3, r14, 4 + 4254: 5b0a addi r0, r3, 3 + 4256: e3fffe53 bsr 0x3efc // 3efc + + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 + 425a: 3314 movi r3, 20 + 425c: b860 st.w r3, (r14, 0x0) + 425e: 3396 movi r3, 150 + 4260: 4361 lsli r3, r3, 1 + 4262: 3201 movi r2, 1 + 4264: 310c movi r1, 12 + 4266: 1801 addi r0, r14, 4 + 4268: e3fff990 bsr 0x3588 // 3588 +} + 426c: 1404 addi r14, r14, 16 + 426e: 1490 pop r15 + 4270: 20000448 .long 0x20000448 + 4274: 200003f0 .long 0x200003f0 + +Disassembly of section .text.Rs485_DevPort_ACK: + +00004278 : + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + 4278: 14d0 push r15 + 427a: 1421 subi r14, r14, 4 + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 + 427c: 3314 movi r3, 20 + 427e: b860 st.w r3, (r14, 0x0) + 4280: 3396 movi r3, 150 + 4282: 7445 zexth r1, r1 + 4284: 4361 lsli r3, r3, 1 + 4286: 3201 movi r2, 1 + 4288: e3fff980 bsr 0x3588 // 3588 +} + 428c: 1401 addi r14, r14, 4 + 428e: 1490 pop r15 + +Disassembly of section .text.Temp_Rec_Analysis: + +00004290 : + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + 4290: 14d3 push r4-r6, r15 + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + 4292: 3300 movi r3, 0 + 4294: 2b08 subi r3, 9 + 4296: 60c4 addu r3, r1 + 4298: 74cd zexth r3, r3 + 429a: 3b01 cmphsi r3, 2 +{ + 429c: 6d03 mov r4, r0 + 429e: 6d47 mov r5, r1 + if((0x09 != Len) && (0x0A != Len)) + 42a0: 08ca bt 0x4434 // 4434 + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + 42a2: 8060 ld.b r3, (r0, 0x0) + 42a4: 3255 movi r2, 85 + 42a6: 648e cmpne r3, r2 + 42a8: 08c2 bt 0x442c // 442c + 42aa: 8041 ld.b r2, (r0, 0x1) + 42ac: 64ca cmpne r2, r3 + 42ae: 08bf bt 0x442c // 442c + 42b0: 8042 ld.b r2, (r0, 0x2) + 42b2: 33ee movi r3, 238 + 42b4: 64ca cmpne r2, r3 + 42b6: 08bb bt 0x442c // 442c + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_Dip.DIP_addr != RecData[5]) ) + 42b8: 8023 ld.b r1, (r0, 0x3) + 42ba: 596a addi r3, r1, 3 + 42bc: 654e cmpne r3, r5 + 42be: 08b9 bt 0x4430 // 4430 + 42c0: 8004 ld.b r0, (r0, 0x4) + 42c2: 3843 cmpnei r0, 3 + 42c4: 08b6 bt 0x4430 // 4430 + 42c6: 127d lrw r3, 0x20000448 // 4438 + 42c8: 8346 ld.b r2, (r3, 0x6) + 42ca: 8465 ld.b r3, (r4, 0x5) + 42cc: 64ca cmpne r2, r3 + 42ce: 08b0 bt 0x442e // 442e + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + 42d0: 2901 subi r1, 2 + 42d2: 7445 zexth r1, r1 + 42d4: 5c0a addi r0, r4, 3 + 42d6: e3fffe39 bsr 0x3f48 // 3f48 + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + 42da: 5c54 addu r2, r4, r5 + 42dc: 5a63 subi r3, r2, 1 + 42de: 8360 ld.b r3, (r3, 0x0) + 42e0: 2a01 subi r2, 2 + 42e2: 4368 lsli r3, r3, 8 + 42e4: 8240 ld.b r2, (r2, 0x0) + 42e6: 60c8 addu r3, r2 + 42e8: 64c2 cmpne r0, r3 + 42ea: 08a5 bt 0x4434 // 4434 + { + switch(RecData[6]) + 42ec: 8406 ld.b r0, (r4, 0x6) + 42ee: 2800 subi r0, 1 + 42f0: 3811 cmphsi r0, 18 + 42f2: 0812 bt 0x4316 // 4316 + 42f4: e3ffe504 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 42f8: 1f1f1f1f .long 0x1f1f1f1f + 42fc: 0f0f0f0f .long 0x0f0f0f0f + 4300: 0f0f090f .long 0x0f0f090f + 4304: 230f0f0f .long 0x230f0f0f + 4308: 3a27 .short 0x3a27 + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + 430a: 126d lrw r3, 0x200003f0 // 443c + 430c: 8367 ld.b r3, (r3, 0x7) + 430e: 3b42 cmpnei r3, 2 + 4310: 080c bt 0x4328 // 4328 + { + Clear_SendFlag(); + 4312: e3fff96d bsr 0x35ec // 35ec + } + break; + } + + + switch(RecData[6]) + 4316: 8406 ld.b r0, (r4, 0x6) + 4318: 2800 subi r0, 1 + 431a: 3803 cmphsi r0, 4 + 431c: 0808 bt 0x432c // 432c + 431e: 8467 ld.b r3, (r4, 0x7) + 4320: e3ffe4ee bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4324: 71614937 .long 0x71614937 + else if(g_eeprom.dev_port == POLLING_PORT) + 4328: 3b41 cmpnei r3, 1 + 432a: 0c03 bf 0x4330 // 4330 + break; + } + break; + } + + return ret; + 432c: 3000 movi r0, 0 + 432e: 0480 br 0x442e // 442e + Rs485AskCycleSend(); + 4330: e3fffebe bsr 0x40ac // 40ac + 4334: 07f1 br 0x4316 // 4316 + Rs485AskCtrlSend(RecData); + 4336: 6c13 mov r0, r4 + 4338: e3ffff3c bsr 0x41b0 // 41b0 + 433c: 07ed br 0x4316 // 4316 + Rs485AskReadSend(RecData); //版本号查询 + 433e: 6c13 mov r0, r4 + 4340: e3ffff66 bsr 0x420c // 420c + 4344: 07e9 br 0x4316 // 4316 + Rs485AskCtrlSend(RecData); + 4346: 6c13 mov r0, r4 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 4348: 11be lrw r5, 0x20000420 // 4440 + Rs485AskCtrlSend(RecData); + 434a: e3ffff33 bsr 0x41b0 // 41b0 + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + 434e: 854f ld.b r2, (r5, 0xf) + 4350: 113d lrw r1, 0x5f91 // 4444 + 4352: 3000 movi r0, 0 + 4354: e3fff9bc bsr 0x36cc // 36cc + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + 4358: 8467 ld.b r3, (r4, 0x7) + 435a: 854f ld.b r2, (r5, 0xf) + 435c: 64ca cmpne r2, r3 + 435e: 0fdc bf 0x4316 // 4316 + if(TempCtrl.CardEn == 0x00) + 4360: 3b40 cmpnei r3, 0 + TempCtrl.CardEn = RecData[7]; + 4362: a56f st.b r3, (r5, 0xf) + if(TempCtrl.CardEn == 0x00) + 4364: 0bd9 bt 0x4316 // 4316 + TempCtrl.CardState = 0x01; + 4366: 3301 movi r3, 1 + 4368: a56d st.b r3, (r5, 0xd) + 436a: 07d6 br 0x4316 // 4316 + if(RecData[7] != g_eeprom.dev_port) + 436c: 11d4 lrw r6, 0x200003f0 // 443c + 436e: 8467 ld.b r3, (r4, 0x7) + 4370: 8647 ld.b r2, (r6, 0x7) + 4372: 64ca cmpne r2, r3 + 4374: 0fdc bf 0x432c // 432c + EEPROM_WriteParaInfo(&g_eeprom); + 4376: 6c1b mov r0, r6 + g_eeprom.dev_port = RecData[7]; + 4378: a667 st.b r3, (r6, 0x7) + EEPROM_WriteParaInfo(&g_eeprom); + 437a: e3fff9f5 bsr 0x3764 // 3764 + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + 437e: 6c1b mov r0, r6 + 4380: e3fff9b8 bsr 0x36f0 // 36f0 + if(rev_val == 0x00){ + 4384: 3840 cmpnei r0, 0 + 4386: 0bc8 bt 0x4316 // 4316 + Rs485_DevPort_ACK(RecData,Len); + 4388: 7454 zextb r1, r5 + 438a: 6c13 mov r0, r4 + 438c: e3ffff76 bsr 0x4278 // 4278 + 4390: 07c3 br 0x4316 // 4316 + switch(RecData[7]) + 4392: 74cc zextb r3, r3 + 4394: 3b40 cmpnei r3, 0 + 4396: 0c0a bf 0x43aa // 43aa + 4398: 3b41 cmpnei r3, 1 + 439a: 0bc9 bt 0x432c // 432c + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + 439c: 1129 lrw r1, 0x20000420 // 4440 + 439e: 3200 movi r2, 0 + 43a0: 8162 ld.b r3, (r1, 0x2) + 43a2: 2a7f subi r2, 128 + 43a4: 6cc8 or r3, r2 + 43a6: a162 st.b r3, (r1, 0x2) + 43a8: 07c2 br 0x432c // 432c + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + 43aa: 1146 lrw r2, 0x20000420 // 4440 + 43ac: 8262 ld.b r3, (r2, 0x2) + 43ae: 317f movi r1, 127 + 43b0: 68c4 and r3, r1 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 43b2: a262 st.b r3, (r2, 0x2) + 43b4: 07bc br 0x432c // 432c + switch(RecData[7]) // + 43b6: 74cc zextb r3, r3 + 43b8: 3b42 cmpnei r3, 2 + 43ba: 0c0a bf 0x43ce // 43ce + 43bc: 3b43 cmpnei r3, 3 + 43be: 0c0e bf 0x43da // 43da + 43c0: 3b41 cmpnei r3, 1 + 43c2: 0bb5 bt 0x432c // 432c + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + 43c4: 105f lrw r2, 0x20000420 // 4440 + 43c6: 8262 ld.b r3, (r2, 0x2) + 43c8: 3170 movi r1, 112 + 43ca: 68c5 andn r3, r1 + 43cc: 07f3 br 0x43b2 // 43b2 + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + 43ce: 105d lrw r2, 0x20000420 // 4440 + 43d0: 8262 ld.b r3, (r2, 0x2) + 43d2: 3170 movi r1, 112 + 43d4: 68c5 andn r3, r1 + 43d6: 3ba5 bseti r3, 5 + 43d8: 07ed br 0x43b2 // 43b2 + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + 43da: 105a lrw r2, 0x20000420 // 4440 + 43dc: 8262 ld.b r3, (r2, 0x2) + 43de: 3170 movi r1, 112 + 43e0: 68c5 andn r3, r1 + 43e2: 3ba6 bseti r3, 6 + 43e4: 07e7 br 0x43b2 // 43b2 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + 43e6: 3200 movi r2, 0 + 43e8: 74cc zextb r3, r3 + 43ea: 2a0f subi r2, 16 + 43ec: 608c addu r2, r3 + 43ee: 7488 zextb r2, r2 + 43f0: 3a0f cmphsi r2, 16 + 43f2: 0804 bt 0x43fa // 43fa + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + 43f4: 1053 lrw r2, 0x20000420 // 4440 + 43f6: a261 st.b r3, (r2, 0x1) + 43f8: 079a br 0x432c // 432c + }else if(RecData[7] == TEM_MAX_SET){ + 43fa: 3220 movi r2, 32 + 43fc: 648e cmpne r3, r2 + 43fe: 0b97 bt 0x432c // 432c + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + 4400: 1070 lrw r3, 0x20000420 // 4440 + 4402: a341 st.b r2, (r3, 0x1) + 4404: 0794 br 0x432c // 432c + switch(RecData[7]) //风速 + 4406: 740c zextb r0, r3 + 4408: 106e lrw r3, 0x20000420 // 4440 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 440a: 8342 ld.b r2, (r3, 0x2) + 440c: 310e movi r1, 14 + switch(RecData[7]) //风速 + 440e: 3803 cmphsi r0, 4 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 4410: 6885 andn r2, r1 + switch(RecData[7]) //风速 + 4412: 0807 bt 0x4420 // 4420 + 4414: e3ffe474 bsr 0xcfc // cfc <___gnu_csky_case_uqi> + 4418: 04080602 .long 0x04080602 + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + 441c: 3aa1 bseti r2, 1 + 441e: 3aa2 bseti r2, 2 + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + 4420: a342 st.b r2, (r3, 0x2) + 4422: 0785 br 0x432c // 432c + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + 4424: 3aa2 bseti r2, 2 + 4426: 07fd br 0x4420 // 4420 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + 4428: 3aa1 bseti r2, 1 + 442a: 07fb br 0x4420 // 4420 + return 0x02; + 442c: 3002 movi r0, 2 + } + else + { + return ret = 0x01; + } +} + 442e: 1493 pop r4-r6, r15 + return 0x03; + 4430: 3003 movi r0, 3 + 4432: 07fe br 0x442e // 442e + return 0x01; + 4434: 3001 movi r0, 1 + 4436: 07fc br 0x442e // 442e + 4438: 20000448 .long 0x20000448 + 443c: 200003f0 .long 0x200003f0 + 4440: 20000420 .long 0x20000420 + 4444: 00005f91 .long 0x00005f91 + +Disassembly of section .text.Tem_Rs485_Rec_Pro: + +00004448 : + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + 4448: 14d2 push r4-r5, r15 + 444a: 6d43 mov r5, r0 + 444c: 6d07 mov r4, r1 + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + 444e: e3ffff21 bsr 0x4290 // 4290 + 4452: 3840 cmpnei r0, 0 + 4454: 0803 bt 0x445a // 445a + { + return ret = 1; + } + } + + return ret; + 4456: 3000 movi r0, 0 + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 4458: 0404 br 0x4460 // 4460 + if (Len < 5){ //长度校验 + 445a: 3c04 cmphsi r4, 5 + 445c: 0803 bt 0x4462 // 4462 + return ret = 1; + 445e: 3001 movi r0, 1 + 4460: 1492 pop r4-r5, r15 + if(RecData[0] != 0xFF && RecData[1] != 0x08) + 4462: 8540 ld.b r2, (r5, 0x0) + 4464: 33ff movi r3, 255 + 4466: 64ca cmpne r2, r3 + 4468: 0c04 bf 0x4470 // 4470 + 446a: 8561 ld.b r3, (r5, 0x1) + 446c: 3b48 cmpnei r3, 8 + 446e: 0bf8 bt 0x445e // 445e + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + 4470: 1122 lrw r1, 0x5fa0 // 44f8 + 4472: 3000 movi r0, 0 + 4474: e3fff92c bsr 0x36cc // 36cc + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + 4478: 3c45 cmpnei r4, 5 + 447a: 0814 bt 0x44a2 // 44a2 + 447c: 3104 movi r1, 4 + 447e: 6c17 mov r0, r5 + 4480: e3fffd82 bsr 0x3f84 // 3f84 + 4484: 8564 ld.b r3, (r5, 0x4) + 4486: 640e cmpne r3, r0 + 4488: 0beb bt 0x445e // 445e + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + 448a: 107d lrw r3, 0x20000420 // 44fc + 448c: 8542 ld.b r2, (r5, 0x2) + 448e: 832d ld.b r1, (r3, 0xd) + 4490: 6486 cmpne r1, r2 + 4492: 0fe2 bf 0x4456 // 4456 + 4494: 832f ld.b r1, (r3, 0xf) + 4496: 3941 cmpnei r1, 1 + 4498: 0bdf bt 0x4456 // 4456 + TempCtrl.CardState = RecData[2]; + 449a: a34d st.b r2, (r3, 0xd) + TempCtrl.CardFlag = 0x01; + 449c: 3201 movi r2, 1 + 449e: a34e st.b r2, (r3, 0xe) + 44a0: 07db br 0x4456 // 4456 + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + 44a2: 3c09 cmphsi r4, 10 + 44a4: 0fdd bf 0x445e // 445e + 44a6: 5c27 subi r1, r4, 2 + 44a8: 7445 zexth r1, r1 + 44aa: 6114 addu r4, r5 + 44ac: 6c17 mov r0, r5 + 44ae: e3fffd4d bsr 0x3f48 // 3f48 + 44b2: 5c63 subi r3, r4, 1 + 44b4: 8360 ld.b r3, (r3, 0x0) + 44b6: 2c01 subi r4, 2 + 44b8: 4368 lsli r3, r3, 8 + 44ba: 8440 ld.b r2, (r4, 0x0) + 44bc: 60c8 addu r3, r2 + 44be: 64c2 cmpne r0, r3 + 44c0: 0bcf bt 0x445e // 445e + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + 44c2: 106f lrw r3, 0x20000420 // 44fc + 44c4: 8543 ld.b r2, (r5, 0x3) + 44c6: 832d ld.b r1, (r3, 0xd) + 44c8: 6486 cmpne r1, r2 + 44ca: 0c07 bf 0x44d8 // 44d8 + 44cc: 832f ld.b r1, (r3, 0xf) + 44ce: 3941 cmpnei r1, 1 + 44d0: 0804 bt 0x44d8 // 44d8 + TempCtrl.CardState = RecData[3]; + 44d2: a34d st.b r2, (r3, 0xd) + TempCtrl.CardFlag = 0x01; + 44d4: 3201 movi r2, 1 + 44d6: a34e st.b r2, (r3, 0xe) + if(TempCtrl.SceneNo != RecData[7]) + 44d8: 8547 ld.b r2, (r5, 0x7) + 44da: 8330 ld.b r1, (r3, 0x10) + 44dc: 6486 cmpne r1, r2 + 44de: 0c07 bf 0x44ec // 44ec + TempCtrl.SceneNo = RecData[7]; + 44e0: a350 st.b r2, (r3, 0x10) + TempCtrl.SceneNoTick = SysTick_1ms; + 44e2: 1048 lrw r2, 0x200000b8 // 4500 + 44e4: 9240 ld.w r2, (r2, 0x0) + 44e6: b346 st.w r2, (r3, 0x18) + TempCtrl.SceneFlag = 0x01; + 44e8: 3201 movi r2, 1 + 44ea: a351 st.b r2, (r3, 0x11) + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + 44ec: 8350 ld.b r2, (r3, 0x10) + 44ee: 1026 lrw r1, 0x5fb2 // 4504 + 44f0: 3000 movi r0, 0 + 44f2: e3fff8ed bsr 0x36cc // 36cc + 44f6: 07b0 br 0x4456 // 4456 + 44f8: 00005fa0 .long 0x00005fa0 + 44fc: 20000420 .long 0x20000420 + 4500: 200000b8 .long 0x200000b8 + 4504: 00005fb2 .long 0x00005fb2 + +Disassembly of section .text.DIP_GetSwitchState: + +00004508 : + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); +} + +U8_T DIP_GetSwitchState(U8_T i){ + 4508: 14d0 push r15 + U8_T val = 0; + + switch (i) + 450a: 3841 cmpnei r0, 1 + 450c: 0c0d bf 0x4526 // 4526 + 450e: 3840 cmpnei r0, 0 + 4510: 0c05 bf 0x451a // 451a + 4512: 3842 cmpnei r0, 2 + 4514: 0c0d bf 0x452e // 452e + U8_T val = 0; + 4516: 3000 movi r0, 0 + 4518: 0406 br 0x4524 // 4524 + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOB0,2); + 451a: 1068 lrw r3, 0x20000048 // 4538 + 451c: 3102 movi r1, 2 + 451e: 9300 ld.w r0, (r3, 0x0) + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOB0,1); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOB0,0); + 4520: e3ffede1 bsr 0x20e2 // 20e2 + break; + } + return val; +} + 4524: 1490 pop r15 + val = GPIO_Read_Status(GPIOB0,1); + 4526: 1065 lrw r3, 0x20000048 // 4538 + 4528: 3101 movi r1, 1 + 452a: 9300 ld.w r0, (r3, 0x0) + 452c: 07fa br 0x4520 // 4520 + val = GPIO_Read_Status(GPIOB0,0); + 452e: 1063 lrw r3, 0x20000048 // 4538 + 4530: 3100 movi r1, 0 + 4532: 9300 ld.w r0, (r3, 0x0) + 4534: 07f6 br 0x4520 // 4520 + 4536: 0000 bkpt + 4538: 20000048 .long 0x20000048 + +Disassembly of section .text.DIP_Switch_Init: + +0000453c : +void DIP_Switch_Init(void){ + 453c: 14d2 push r4-r5, r15 + GPIO_Init(GPIOB0,0,Intput); + 453e: 1180 lrw r4, 0x20000048 // 45bc + 4540: 3201 movi r2, 1 + 4542: 9400 ld.w r0, (r4, 0x0) + 4544: 3100 movi r1, 0 + 4546: e3ffec7d bsr 0x1e40 // 1e40 + GPIO_Init(GPIOB0,1,Intput); + 454a: 9400 ld.w r0, (r4, 0x0) + 454c: 3201 movi r2, 1 + 454e: 3101 movi r1, 1 + 4550: e3ffec78 bsr 0x1e40 // 1e40 + GPIO_Init(GPIOB0,2,Intput); + 4554: 3201 movi r2, 1 + 4556: 9400 ld.w r0, (r4, 0x0) + 4558: 3102 movi r1, 2 + 455a: e3ffec73 bsr 0x1e40 // 1e40 + GPIO_PullHigh_Init(GPIOB0,0); + 455e: 9400 ld.w r0, (r4, 0x0) + 4560: 3100 movi r1, 0 + 4562: e3ffecdf bsr 0x1f20 // 1f20 + GPIO_PullHigh_Init(GPIOB0,1); + 4566: 9400 ld.w r0, (r4, 0x0) + 4568: 3101 movi r1, 1 + 456a: e3ffecdb bsr 0x1f20 // 1f20 + GPIO_PullHigh_Init(GPIOB0,2); + 456e: 9400 ld.w r0, (r4, 0x0) + 4570: 3102 movi r1, 2 + 4572: e3ffecd7 bsr 0x1f20 // 1f20 + memset(&g_Dip,0,sizeof(DIP_t)); + 4576: 3210 movi r2, 16 + 4578: 3100 movi r1, 0 + 457a: 1012 lrw r0, 0x20000448 // 45c0 + 457c: e3ffe9f4 bsr 0x1964 // 1964 <__memset_fast> + delay_nms(20); + 4580: 3014 movi r0, 20 + 4582: e3ffef7d bsr 0x247c // 247c + 4586: 3400 movi r4, 0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 4588: 10ae lrw r5, 0x20000448 // 45c0 + if(DIP_GetSwitchState(i) == DIP_PRESS){ + 458a: 7410 zextb r0, r4 + 458c: e3ffffbe bsr 0x4508 // 4508 + 4590: 3840 cmpnei r0, 0 + 4592: 0807 bt 0x45a0 // 45a0 + g_Dip.DIP_val |= DIP_VAL_ON << i; + 4594: 3301 movi r3, 1 + 4596: 70d0 lsl r3, r4 + 4598: 6c8f mov r2, r3 + 459a: 9562 ld.w r3, (r5, 0x8) + 459c: 6cc8 or r3, r2 + 459e: b562 st.w r3, (r5, 0x8) + 45a0: 2400 addi r4, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) { + 45a2: 3c43 cmpnei r4, 3 + 45a4: 0bf3 bt 0x458a // 458a + g_Dip.DIP_last_val = g_Dip.DIP_val; + 45a6: 1067 lrw r3, 0x20000448 // 45c0 + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 45a8: 3107 movi r1, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 45aa: 9342 ld.w r2, (r3, 0x8) + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 45ac: 6848 and r1, r2 + 45ae: a326 st.b r1, (r3, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); + 45b0: 3000 movi r0, 0 + 45b2: 1025 lrw r1, 0x5fbd // 45c4 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 45b4: b343 st.w r2, (r3, 0xc) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); + 45b6: e3fff88b bsr 0x36cc // 36cc +} + 45ba: 1492 pop r4-r5, r15 + 45bc: 20000048 .long 0x20000048 + 45c0: 20000448 .long 0x20000448 + 45c4: 00005fbd .long 0x00005fbd + +Disassembly of section .text.DIP_ScanTask: + +000045c8 : + +void DIP_ScanTask(void) +{ + 45c8: 14d3 push r4-r6, r15 + static U32_T update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 45ca: 1122 lrw r1, 0x200000b8 // 4650 + 45cc: 1142 lrw r2, 0x2000014c // 4654 + 45ce: 11a3 lrw r5, 0x20000448 // 4658 + 45d0: 9200 ld.w r0, (r2, 0x0) + 45d2: 9160 ld.w r3, (r1, 0x0) + 45d4: 60c2 subu r3, r0 + 45d6: 3b14 cmphsi r3, 21 + 45d8: 0806 bt 0x45e4 // 45e4 + } + } + } + } + + if(g_Dip.DIP_val != g_Dip.DIP_last_val) + 45da: 9542 ld.w r2, (r5, 0x8) + 45dc: 9563 ld.w r3, (r5, 0xc) + 45de: 64ca cmpne r2, r3 + 45e0: 082e bt 0x463c // 463c + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + } + +} + 45e2: 1493 pop r4-r6, r15 + update_20ms = SysTick_1ms; + 45e4: 9160 ld.w r3, (r1, 0x0) + 45e6: b260 st.w r3, (r2, 0x0) + 45e8: 6d17 mov r4, r5 + 45ea: 3600 movi r6, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 45ec: 7418 zextb r0, r6 + 45ee: e3ffff8d bsr 0x4508 // 4508 + 45f2: 3840 cmpnei r0, 0 + g_Dip.delayCnt_OFF[i] = 0; + 45f4: 3300 movi r3, 0 + if (DIP_GetSwitchState(i) == DIP_PRESS) + 45f6: 0814 bt 0x461e // 461e + g_Dip.delayCnt_OFF[i] = 0; + 45f8: a463 st.b r3, (r4, 0x3) + if (g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 45fa: 8460 ld.b r3, (r4, 0x0) + 45fc: 3b04 cmphsi r3, 5 + 45fe: 0808 bt 0x460e // 460e + g_Dip.delayCnt_ON[i]++; + 4600: 2300 addi r3, 1 + g_Dip.delayCnt_ON[i] = 0; + 4602: a460 st.b r3, (r4, 0x0) + 4604: 2600 addi r6, 1 + for (U8_T i = 0; i < DIP_CHN_MAX; i++) + 4606: 3e43 cmpnei r6, 3 + 4608: 2400 addi r4, 1 + 460a: 0bf1 bt 0x45ec // 45ec + 460c: 07e7 br 0x45da // 45da + g_Dip.DIP_val |= (DIP_VAL_ON << i); + 460e: 3301 movi r3, 1 + 4610: 70d8 lsl r3, r6 + 4612: 6c8f mov r2, r3 + 4614: 9562 ld.w r3, (r5, 0x8) + 4616: 6cc8 or r3, r2 + 4618: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_ON[i] = 0; + 461a: 3300 movi r3, 0 + 461c: 07f3 br 0x4602 // 4602 + g_Dip.delayCnt_ON[i] = 0; + 461e: a460 st.b r3, (r4, 0x0) + if (g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 4620: 8463 ld.b r3, (r4, 0x3) + 4622: 3b04 cmphsi r3, 5 + 4624: 0804 bt 0x462c // 462c + g_Dip.delayCnt_OFF[i]++; + 4626: 2300 addi r3, 1 + g_Dip.delayCnt_OFF[i] = 0; + 4628: a463 st.b r3, (r4, 0x3) + 462a: 07ed br 0x4604 // 4604 + g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 462c: 3300 movi r3, 0 + 462e: 2b01 subi r3, 2 + 4630: 9542 ld.w r2, (r5, 0x8) + 4632: 70db rotl r3, r6 + 4634: 68c8 and r3, r2 + 4636: b562 st.w r3, (r5, 0x8) + g_Dip.delayCnt_OFF[i] = 0; + 4638: 3300 movi r3, 0 + 463a: 07f7 br 0x4628 // 4628 + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 463c: 3307 movi r3, 7 + g_Dip.DIP_last_val = g_Dip.DIP_val; + 463e: b543 st.w r2, (r5, 0xc) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + 4640: 3000 movi r0, 0 + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 4642: 688c and r2, r3 + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + 4644: 1026 lrw r1, 0x5fc9 // 465c + g_Dip.DIP_addr = g_Dip.DIP_val & 0x07; + 4646: a546 st.b r2, (r5, 0x6) + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + 4648: e3fff842 bsr 0x36cc // 36cc +} + 464c: 07cb br 0x45e2 // 45e2 + 464e: 0000 bkpt + 4650: 200000b8 .long 0x200000b8 + 4654: 2000014c .long 0x2000014c + 4658: 20000448 .long 0x20000448 + 465c: 00005fc9 .long 0x00005fc9 + +Disassembly of section .text.TK_Single_Longpress_prg: + +00004660 : + 4660: 14c2 push r4-r5 + 4662: 117d lrw r3, 0x200005fc // 4754 + 4664: 115d lrw r2, 0x20000568 // 4758 + 4666: 9360 ld.w r3, (r3, 0x0) + 4668: 3b40 cmpnei r3, 0 + 466a: 0840 bt 0x46ea // 46ea + 466c: 113c lrw r1, 0x20000068 // 475c + 466e: 8962 ld.h r3, (r1, 0x4) + 4670: 74cd zexth r3, r3 + 4672: 3b40 cmpnei r3, 0 + 4674: 0c3b bf 0x46ea // 46ea + 4676: 117b lrw r3, 0x200004fc // 4760 + 4678: 9360 ld.w r3, (r3, 0x0) + 467a: 3b40 cmpnei r3, 0 + 467c: 117a lrw r3, 0x200006b2 // 4764 + 467e: 0c0e bf 0x469a // 469a + 4680: 8300 ld.b r0, (r3, 0x0) + 4682: 2000 addi r0, 1 + 4684: 7400 zextb r0, r0 + 4686: a300 st.b r0, (r3, 0x0) + 4688: 8380 ld.b r4, (r3, 0x0) + 468a: 8902 ld.h r0, (r1, 0x4) + 468c: 7401 zexth r0, r0 + 468e: 3564 movi r5, 100 + 4690: 7c14 mult r0, r5 + 4692: 6501 cmplt r0, r4 + 4694: 0c05 bf 0x469e // 469e + 4696: 3001 movi r0, 1 + 4698: a200 st.b r0, (r2, 0x0) + 469a: 3000 movi r0, 0 + 469c: a300 st.b r0, (r3, 0x0) + 469e: 1113 lrw r0, 0x20000490 // 4768 + 46a0: 9000 ld.w r0, (r0, 0x0) + 46a2: 3840 cmpnei r0, 0 + 46a4: 0c0e bf 0x46c0 // 46c0 + 46a6: 8301 ld.b r0, (r3, 0x1) + 46a8: 2000 addi r0, 1 + 46aa: 7400 zextb r0, r0 + 46ac: a301 st.b r0, (r3, 0x1) + 46ae: 8381 ld.b r4, (r3, 0x1) + 46b0: 8902 ld.h r0, (r1, 0x4) + 46b2: 7401 zexth r0, r0 + 46b4: 3564 movi r5, 100 + 46b6: 7c14 mult r0, r5 + 46b8: 6501 cmplt r0, r4 + 46ba: 0c05 bf 0x46c4 // 46c4 + 46bc: 3001 movi r0, 1 + 46be: a201 st.b r0, (r2, 0x1) + 46c0: 3000 movi r0, 0 + 46c2: a301 st.b r0, (r3, 0x1) + 46c4: 110a lrw r0, 0x20000574 // 476c + 46c6: 9000 ld.w r0, (r0, 0x0) + 46c8: 3840 cmpnei r0, 0 + 46ca: 0c0e bf 0x46e6 // 46e6 + 46cc: 8302 ld.b r0, (r3, 0x2) + 46ce: 2000 addi r0, 1 + 46d0: 7400 zextb r0, r0 + 46d2: a302 st.b r0, (r3, 0x2) + 46d4: 8302 ld.b r0, (r3, 0x2) + 46d6: 8922 ld.h r1, (r1, 0x4) + 46d8: 7445 zexth r1, r1 + 46da: 3464 movi r4, 100 + 46dc: 7c50 mult r1, r4 + 46de: 6405 cmplt r1, r0 + 46e0: 0c05 bf 0x46ea // 46ea + 46e2: 3101 movi r1, 1 + 46e4: a222 st.b r1, (r2, 0x2) + 46e6: 3100 movi r1, 0 + 46e8: a322 st.b r1, (r3, 0x2) + 46ea: 8260 ld.b r3, (r2, 0x0) + 46ec: 3b41 cmpnei r3, 1 + 46ee: 080f bt 0x470c // 470c + 46f0: 3300 movi r3, 0 + 46f2: 11a0 lrw r5, 0x200007ae // 4770 + 46f4: 1180 lrw r4, 0x2000045c // 4774 + 46f6: 4321 lsli r1, r3, 1 + 46f8: 5d04 addu r0, r5, r1 + 46fa: 8800 ld.h r0, (r0, 0x0) + 46fc: 2300 addi r3, 1 + 46fe: 7401 zexth r0, r0 + 4700: 6050 addu r1, r4 + 4702: 3b51 cmpnei r3, 17 + 4704: a900 st.h r0, (r1, 0x0) + 4706: 0bf8 bt 0x46f6 // 46f6 + 4708: 3300 movi r3, 0 + 470a: a260 st.b r3, (r2, 0x0) + 470c: 8261 ld.b r3, (r2, 0x1) + 470e: 3b41 cmpnei r3, 1 + 4710: 080f bt 0x472e // 472e + 4712: 3300 movi r3, 0 + 4714: 10b9 lrw r5, 0x20000544 // 4778 + 4716: 109a lrw r4, 0x20000606 // 477c + 4718: 4321 lsli r1, r3, 1 + 471a: 5d04 addu r0, r5, r1 + 471c: 8800 ld.h r0, (r0, 0x0) + 471e: 2300 addi r3, 1 + 4720: 7401 zexth r0, r0 + 4722: 6050 addu r1, r4 + 4724: 3b51 cmpnei r3, 17 + 4726: a900 st.h r0, (r1, 0x0) + 4728: 0bf8 bt 0x4718 // 4718 + 472a: 3300 movi r3, 0 + 472c: a261 st.b r3, (r2, 0x1) + 472e: 8262 ld.b r3, (r2, 0x2) + 4730: 3b41 cmpnei r3, 1 + 4732: 080f bt 0x4750 // 4750 + 4734: 3300 movi r3, 0 + 4736: 10b3 lrw r5, 0x2000063a // 4780 + 4738: 1093 lrw r4, 0x2000071c // 4784 + 473a: 4321 lsli r1, r3, 1 + 473c: 5d04 addu r0, r5, r1 + 473e: 8800 ld.h r0, (r0, 0x0) + 4740: 2300 addi r3, 1 + 4742: 7401 zexth r0, r0 + 4744: 6050 addu r1, r4 + 4746: 3b51 cmpnei r3, 17 + 4748: a900 st.h r0, (r1, 0x0) + 474a: 0bf8 bt 0x473a // 473a + 474c: 3300 movi r3, 0 + 474e: a262 st.b r3, (r2, 0x2) + 4750: 1482 pop r4-r5 + 4752: 0000 bkpt + 4754: 200005fc .long 0x200005fc + 4758: 20000568 .long 0x20000568 + 475c: 20000068 .long 0x20000068 + 4760: 200004fc .long 0x200004fc + 4764: 200006b2 .long 0x200006b2 + 4768: 20000490 .long 0x20000490 + 476c: 20000574 .long 0x20000574 + 4770: 200007ae .long 0x200007ae + 4774: 2000045c .long 0x2000045c + 4778: 20000544 .long 0x20000544 + 477c: 20000606 .long 0x20000606 + 4780: 2000063a .long 0x2000063a + 4784: 2000071c .long 0x2000071c + +Disassembly of section .text.TK_Sampling_prog: + +00004788 : + 4788: 14c4 push r4-r7 + 478a: 1423 subi r14, r14, 12 + 478c: 1169 lrw r3, 0x20000054 // 4830 + 478e: 114a lrw r2, 0x20000719 // 4834 + 4790: 6d0b mov r4, r2 + 4792: 9320 ld.w r1, (r3, 0x0) + 4794: b840 st.w r2, (r14, 0x0) + 4796: 3300 movi r3, 0 + 4798: 11a8 lrw r5, 0x200007ae // 4838 + 479a: 9840 ld.w r2, (r14, 0x0) + 479c: 8240 ld.b r2, (r2, 0x0) + 479e: 3a41 cmpnei r2, 1 + 47a0: 0808 bt 0x47b0 // 47b0 + 47a2: 4342 lsli r2, r3, 2 + 47a4: 6084 addu r2, r1 + 47a6: 9200 ld.w r0, (r2, 0x0) + 47a8: 4341 lsli r2, r3, 1 + 47aa: 7401 zexth r0, r0 + 47ac: 6094 addu r2, r5 + 47ae: aa00 st.h r0, (r2, 0x0) + 47b0: 8440 ld.b r2, (r4, 0x0) + 47b2: 3a42 cmpnei r2, 2 + 47b4: 0809 bt 0x47c6 // 47c6 + 47b6: 4342 lsli r2, r3, 2 + 47b8: 6084 addu r2, r1 + 47ba: 9200 ld.w r0, (r2, 0x0) + 47bc: 4341 lsli r2, r3, 1 + 47be: 11c0 lrw r6, 0x20000544 // 483c + 47c0: 7401 zexth r0, r0 + 47c2: 6098 addu r2, r6 + 47c4: aa00 st.h r0, (r2, 0x0) + 47c6: 8440 ld.b r2, (r4, 0x0) + 47c8: 3a40 cmpnei r2, 0 + 47ca: 0809 bt 0x47dc // 47dc + 47cc: 4342 lsli r2, r3, 2 + 47ce: 6084 addu r2, r1 + 47d0: 9200 ld.w r0, (r2, 0x0) + 47d2: 4341 lsli r2, r3, 1 + 47d4: 10db lrw r6, 0x2000063a // 4840 + 47d6: 7401 zexth r0, r0 + 47d8: 6098 addu r2, r6 + 47da: aa00 st.h r0, (r2, 0x0) + 47dc: 10da lrw r6, 0x200005a1 // 4844 + 47de: 8640 ld.b r2, (r6, 0x0) + 47e0: 3a41 cmpnei r2, 1 + 47e2: 0821 bt 0x4824 // 4824 + 47e4: 1079 lrw r3, 0x2000045c // 4848 + 47e6: 3200 movi r2, 0 + 47e8: b861 st.w r3, (r14, 0x4) + 47ea: 1075 lrw r3, 0x20000544 // 483c + 47ec: b862 st.w r3, (r14, 0x8) + 47ee: 4261 lsli r3, r2, 1 + 47f0: 5d0c addu r0, r5, r3 + 47f2: 8800 ld.h r0, (r0, 0x0) + 47f4: 98e1 ld.w r7, (r14, 0x4) + 47f6: 61cc addu r7, r3 + 47f8: 7401 zexth r0, r0 + 47fa: af00 st.h r0, (r7, 0x0) + 47fc: 9802 ld.w r0, (r14, 0x8) + 47fe: 600c addu r0, r3 + 4800: 8800 ld.h r0, (r0, 0x0) + 4802: 10f3 lrw r7, 0x20000606 // 484c + 4804: 61cc addu r7, r3 + 4806: 7401 zexth r0, r0 + 4808: af00 st.h r0, (r7, 0x0) + 480a: 2200 addi r2, 1 + 480c: 100d lrw r0, 0x2000063a // 4840 + 480e: 600c addu r0, r3 + 4810: 8800 ld.h r0, (r0, 0x0) + 4812: 10f0 lrw r7, 0x2000071c // 4850 + 4814: 7401 zexth r0, r0 + 4816: 60dc addu r3, r7 + 4818: 3a51 cmpnei r2, 17 + 481a: ab00 st.h r0, (r3, 0x0) + 481c: 0be9 bt 0x47ee // 47ee + 481e: 3300 movi r3, 0 + 4820: a660 st.b r3, (r6, 0x0) + 4822: 3311 movi r3, 17 + 4824: 2300 addi r3, 1 + 4826: 74cc zextb r3, r3 + 4828: 3b10 cmphsi r3, 17 + 482a: 0fb8 bf 0x479a // 479a + 482c: 1403 addi r14, r14, 12 + 482e: 1484 pop r4-r7 + 4830: 20000054 .long 0x20000054 + 4834: 20000719 .long 0x20000719 + 4838: 200007ae .long 0x200007ae + 483c: 20000544 .long 0x20000544 + 4840: 2000063a .long 0x2000063a + 4844: 200005a1 .long 0x200005a1 + 4848: 2000045c .long 0x2000045c + 484c: 20000606 .long 0x20000606 + 4850: 2000071c .long 0x2000071c + +Disassembly of section .text.get_key_number: + +00004854 : + 4854: 14c2 push r4-r5 + 4856: 3200 movi r2, 0 + 4858: 3000 movi r0, 0 + 485a: 1088 lrw r4, 0x200005fc // 4878 + 485c: 3501 movi r5, 1 + 485e: 3120 movi r1, 32 + 4860: 9460 ld.w r3, (r4, 0x0) + 4862: 70c9 lsr r3, r2 + 4864: 68d4 and r3, r5 + 4866: 3b40 cmpnei r3, 0 + 4868: 0c02 bf 0x486c // 486c + 486a: 2000 addi r0, 1 + 486c: 2200 addi r2, 1 + 486e: 644a cmpne r2, r1 + 4870: 0bf8 bt 0x4860 // 4860 + 4872: 7400 zextb r0, r0 + 4874: 1482 pop r4-r5 + 4876: 0000 bkpt + 4878: 200005fc .long 0x200005fc + +Disassembly of section .text.get_key_number0: + +0000487c : + 487c: 14c2 push r4-r5 + 487e: 3200 movi r2, 0 + 4880: 3000 movi r0, 0 + 4882: 1088 lrw r4, 0x200004fc // 48a0 + 4884: 3501 movi r5, 1 + 4886: 3120 movi r1, 32 + 4888: 9460 ld.w r3, (r4, 0x0) + 488a: 70c9 lsr r3, r2 + 488c: 68d4 and r3, r5 + 488e: 3b40 cmpnei r3, 0 + 4890: 0c02 bf 0x4894 // 4894 + 4892: 2000 addi r0, 1 + 4894: 2200 addi r2, 1 + 4896: 644a cmpne r2, r1 + 4898: 0bf8 bt 0x4888 // 4888 + 489a: 7400 zextb r0, r0 + 489c: 1482 pop r4-r5 + 489e: 0000 bkpt + 48a0: 200004fc .long 0x200004fc + +Disassembly of section .text.get_key_number1: + +000048a4 : + 48a4: 14c2 push r4-r5 + 48a6: 3200 movi r2, 0 + 48a8: 3000 movi r0, 0 + 48aa: 1088 lrw r4, 0x20000490 // 48c8 + 48ac: 3501 movi r5, 1 + 48ae: 3120 movi r1, 32 + 48b0: 9460 ld.w r3, (r4, 0x0) + 48b2: 70c9 lsr r3, r2 + 48b4: 68d4 and r3, r5 + 48b6: 3b40 cmpnei r3, 0 + 48b8: 0c02 bf 0x48bc // 48bc + 48ba: 2000 addi r0, 1 + 48bc: 2200 addi r2, 1 + 48be: 644a cmpne r2, r1 + 48c0: 0bf8 bt 0x48b0 // 48b0 + 48c2: 7400 zextb r0, r0 + 48c4: 1482 pop r4-r5 + 48c6: 0000 bkpt + 48c8: 20000490 .long 0x20000490 + +Disassembly of section .text.get_key_number2: + +000048cc : + 48cc: 14c2 push r4-r5 + 48ce: 3200 movi r2, 0 + 48d0: 3000 movi r0, 0 + 48d2: 1088 lrw r4, 0x20000574 // 48f0 + 48d4: 3501 movi r5, 1 + 48d6: 3120 movi r1, 32 + 48d8: 9460 ld.w r3, (r4, 0x0) + 48da: 70c9 lsr r3, r2 + 48dc: 68d4 and r3, r5 + 48de: 3b40 cmpnei r3, 0 + 48e0: 0c02 bf 0x48e4 // 48e4 + 48e2: 2000 addi r0, 1 + 48e4: 2200 addi r2, 1 + 48e6: 644a cmpne r2, r1 + 48e8: 0bf8 bt 0x48d8 // 48d8 + 48ea: 7400 zextb r0, r0 + 48ec: 1482 pop r4-r5 + 48ee: 0000 bkpt + 48f0: 20000574 .long 0x20000574 + +Disassembly of section .text.TK_Scan_Start: + +000048f4 : + 48f4: 1073 lrw r3, 0x20000068 // 4940 + 48f6: 1054 lrw r2, 0x20000719 // 4944 + 48f8: 8302 ld.b r0, (r3, 0x2) + 48fa: 8220 ld.b r1, (r2, 0x0) + 48fc: 6442 cmpne r0, r1 + 48fe: 0c16 bf 0x492a // 492a + 4900: 8220 ld.b r1, (r2, 0x0) + 4902: 7444 zextb r1, r1 + 4904: 3941 cmpnei r1, 1 + 4906: 0c18 bf 0x4936 // 4936 + 4908: 3940 cmpnei r1, 0 + 490a: 0c11 bf 0x492c // 492c + 490c: 3942 cmpnei r1, 2 + 490e: 0c16 bf 0x493a // 493a + 4910: 8240 ld.b r2, (r2, 0x0) + 4912: 7488 zextb r2, r2 + 4914: a342 st.b r2, (r3, 0x2) + 4916: 8341 ld.b r2, (r3, 0x1) + 4918: 7488 zextb r2, r2 + 491a: 3a41 cmpnei r2, 1 + 491c: 0807 bt 0x492a // 492a + 491e: 102b lrw r1, 0x20000058 // 4948 + 4920: 9120 ld.w r1, (r1, 0x0) + 4922: b142 st.w r2, (r1, 0x8) + 4924: 3200 movi r2, 0 + 4926: a340 st.b r2, (r3, 0x0) + 4928: a341 st.b r2, (r3, 0x1) + 492a: 783c jmp r15 + 492c: 1028 lrw r1, 0x200007d0 // 494c + 492e: 9100 ld.w r0, (r1, 0x0) + 4930: 1028 lrw r1, 0x40011200 // 4950 + 4932: b110 st.w r0, (r1, 0x40) + 4934: 07ee br 0x4910 // 4910 + 4936: 1028 lrw r1, 0x20000540 // 4954 + 4938: 07fb br 0x492e // 492e + 493a: 1028 lrw r1, 0x20000570 // 4958 + 493c: 07f9 br 0x492e // 492e + 493e: 0000 bkpt + 4940: 20000068 .long 0x20000068 + 4944: 20000719 .long 0x20000719 + 4948: 20000058 .long 0x20000058 + 494c: 200007d0 .long 0x200007d0 + 4950: 40011200 .long 0x40011200 + 4954: 20000540 .long 0x20000540 + 4958: 20000570 .long 0x20000570 + +Disassembly of section .text.TK_Keymap_prog: + +0000495c : + 495c: 14d4 push r4-r7, r15 + 495e: 142a subi r14, r14, 40 + 4960: 0171 lrw r3, 0x20000180 // 4c98 + 4962: 8360 ld.b r3, (r3, 0x0) + 4964: b860 st.w r3, (r14, 0x0) + 4966: 3400 movi r4, 0 + 4968: 0172 lrw r3, 0x20000154 // 4c9c + 496a: 8360 ld.b r3, (r3, 0x0) + 496c: b863 st.w r3, (r14, 0xc) + 496e: 0172 lrw r3, 0x2000015d // 4ca0 + 4970: 83a0 ld.b r5, (r3, 0x0) + 4972: 0172 lrw r3, 0x2000015c // 4ca4 + 4974: 8360 ld.b r3, (r3, 0x0) + 4976: b866 st.w r3, (r14, 0x18) + 4978: 0173 lrw r3, 0x200007ae // 4ca8 + 497a: b868 st.w r3, (r14, 0x20) + 497c: 0173 lrw r3, 0x2000051c // 4cac + 497e: b864 st.w r3, (r14, 0x10) + 4980: b869 st.w r3, (r14, 0x24) + 4982: 4461 lsli r3, r4, 1 + 4984: 9848 ld.w r2, (r14, 0x20) + 4986: 608c addu r2, r3 + 4988: 0135 lrw r1, 0x2000045c // 4cb0 + 498a: 604c addu r1, r3 + 498c: 8a40 ld.h r2, (r2, 0x0) + 498e: 8920 ld.h r1, (r1, 0x0) + 4990: 6086 subu r2, r1 + 4992: 9829 ld.w r1, (r14, 0x24) + 4994: 604c addu r1, r3 + 4996: 748b sexth r2, r2 + 4998: a940 st.h r2, (r1, 0x0) + 499a: 0118 lrw r0, 0x20000606 // 4cb4 + 499c: 0158 lrw r2, 0x20000544 // 4cb8 + 499e: 608c addu r2, r3 + 49a0: 600c addu r0, r3 + 49a2: 8a40 ld.h r2, (r2, 0x0) + 49a4: 8800 ld.h r0, (r0, 0x0) + 49a6: 6082 subu r2, r0 + 49a8: 01da lrw r6, 0x2000065c // 4cbc + 49aa: 5e0c addu r0, r6, r3 + 49ac: 748b sexth r2, r2 + 49ae: a840 st.h r2, (r0, 0x0) + 49b0: b8c1 st.w r6, (r14, 0x4) + 49b2: 015b lrw r2, 0x2000063a // 4cc0 + 49b4: 011b lrw r0, 0x2000071c // 4cc4 + 49b6: 608c addu r2, r3 + 49b8: 600c addu r0, r3 + 49ba: 8a40 ld.h r2, (r2, 0x0) + 49bc: 8800 ld.h r0, (r0, 0x0) + 49be: 6082 subu r2, r0 + 49c0: 011d lrw r0, 0x20000788 // 4cc8 + 49c2: 748b sexth r2, r2 + 49c4: 58ec addu r7, r0, r3 + 49c6: af40 st.h r2, (r7, 0x0) + 49c8: 8940 ld.h r2, (r1, 0x0) + 49ca: 748b sexth r2, r2 + 49cc: 3adf btsti r2, 31 + 49ce: 015f lrw r2, 0x20000766 // 4ccc + 49d0: 60c8 addu r3, r2 + 49d2: b802 st.w r0, (r14, 0x8) + 49d4: 0c49 bf 0x4a66 // 4a66 + 49d6: 3200 movi r2, 0 + 49d8: ab40 st.h r2, (r3, 0x0) + 49da: 9821 ld.w r1, (r14, 0x4) + 49dc: 4461 lsli r3, r4, 1 + 49de: 604c addu r1, r3 + 49e0: 8940 ld.h r2, (r1, 0x0) + 49e2: 748b sexth r2, r2 + 49e4: 3adf btsti r2, 31 + 49e6: 0244 lrw r2, 0x200004c4 // 4cd0 + 49e8: 60c8 addu r3, r2 + 49ea: 0c41 bf 0x4a6c // 4a6c + 49ec: 3200 movi r2, 0 + 49ee: ab40 st.h r2, (r3, 0x0) + 49f0: 9822 ld.w r1, (r14, 0x8) + 49f2: 4461 lsli r3, r4, 1 + 49f4: 604c addu r1, r3 + 49f6: 8940 ld.h r2, (r1, 0x0) + 49f8: 748b sexth r2, r2 + 49fa: 3adf btsti r2, 31 + 49fc: 0249 lrw r2, 0x20000498 // 4cd4 + 49fe: 60c8 addu r3, r2 + 4a00: 0c39 bf 0x4a72 // 4a72 + 4a02: 3200 movi r2, 0 + 4a04: ab40 st.h r2, (r3, 0x0) + 4a06: 9860 ld.w r3, (r14, 0x0) + 4a08: 3b03 cmphsi r3, 4 + 4a0a: 4421 lsli r1, r4, 1 + 4a0c: 0cb5 bf 0x4b76 // 4b76 + 4a0e: 9864 ld.w r3, (r14, 0x10) + 4a10: 60c4 addu r3, r1 + 4a12: 024d lrw r2, 0x200001ae // 4cd8 + 4a14: 6048 addu r1, r2 + 4a16: 8b00 ld.h r0, (r3, 0x0) + 4a18: 8940 ld.h r2, (r1, 0x0) + 4a1a: 7403 sexth r0, r0 + 4a1c: 6409 cmplt r2, r0 + 4a1e: 9820 ld.w r1, (r14, 0x0) + 4a20: 7c84 mult r2, r1 + 4a22: 0c9b bf 0x4b58 // 4b58 + 4a24: 8b20 ld.h r1, (r3, 0x0) + 4a26: 7447 sexth r1, r1 + 4a28: 6485 cmplt r1, r2 + 4a2a: 0c97 bf 0x4b58 // 4b58 + 4a2c: 0233 lrw r1, 0x20000509 // 4cdc + 4a2e: 6050 addu r1, r4 + 4a30: 8140 ld.b r2, (r1, 0x0) + 4a32: 2200 addi r2, 1 + 4a34: 7488 zextb r2, r2 + 4a36: a140 st.b r2, (r1, 0x0) + 4a38: 3000 movi r0, 0 + 4a3a: 0255 lrw r2, 0x200004e8 // 4ce0 + 4a3c: 6090 addu r2, r4 + 4a3e: a200 st.b r0, (r2, 0x0) + 4a40: 0256 lrw r2, 0x20000628 // 4ce4 + 4a42: 6090 addu r2, r4 + 4a44: a200 st.b r0, (r2, 0x0) + 4a46: 0256 lrw r2, 0x200006c0 // 4ce8 + 4a48: 6090 addu r2, r4 + 4a4a: a200 st.b r0, (r2, 0x0) + 4a4c: 8140 ld.b r2, (r1, 0x0) + 4a4e: 9803 ld.w r0, (r14, 0xc) + 4a50: 6480 cmphs r0, r2 + 4a52: 081d bt 0x4a8c // 4a8c + 4a54: 3d40 cmpnei r5, 0 + 4a56: 0811 bt 0x4a78 // 4a78 + 4a58: 025a lrw r2, 0x200004fc // 4cec + 4a5a: 9260 ld.w r3, (r2, 0x0) + 4a5c: 3b40 cmpnei r3, 0 + 4a5e: 0815 bt 0x4a88 // 4a88 + 4a60: 9200 ld.w r0, (r2, 0x0) + 4a62: 3301 movi r3, 1 + 4a64: 040f br 0x4a82 // 4a82 + 4a66: 8940 ld.h r2, (r1, 0x0) + 4a68: 7489 zexth r2, r2 + 4a6a: 07b7 br 0x49d8 // 49d8 + 4a6c: 8940 ld.h r2, (r1, 0x0) + 4a6e: 7489 zexth r2, r2 + 4a70: 07bf br 0x49ee // 49ee + 4a72: 8940 ld.h r2, (r1, 0x0) + 4a74: 7489 zexth r2, r2 + 4a76: 07c7 br 0x4a04 // 4a04 + 4a78: 3d41 cmpnei r5, 1 + 4a7a: 085c bt 0x4b32 // 4b32 + 4a7c: 0343 lrw r2, 0x200004fc // 4cec + 4a7e: 6cd7 mov r3, r5 + 4a80: 9200 ld.w r0, (r2, 0x0) + 4a82: 70d0 lsl r3, r4 + 4a84: 6cc0 or r3, r0 + 4a86: b260 st.w r3, (r2, 0x0) + 4a88: 3300 movi r3, 0 + 4a8a: a160 st.b r3, (r1, 0x0) + 4a8c: 4461 lsli r3, r4, 1 + 4a8e: 9844 ld.w r2, (r14, 0x10) + 4a90: 608c addu r2, r3 + 4a92: 8ac0 ld.h r6, (r2, 0x0) + 4a94: 034e lrw r2, 0x200001ae // 4cd8 + 4a96: 60c8 addu r3, r2 + 4a98: 8be0 ld.h r7, (r3, 0x0) + 4a9a: 4702 lsli r0, r7, 2 + 4a9c: 3105 movi r1, 5 + 4a9e: e3fff2d1 bsr 0x3040 // 3040 <__divsi3> + 4aa2: 759b sexth r6, r6 + 4aa4: 6419 cmplt r6, r0 + 4aa6: b805 st.w r0, (r14, 0x14) + 4aa8: 0c18 bf 0x4ad8 // 4ad8 + 4aaa: 0351 lrw r2, 0x200004e8 // 4ce0 + 4aac: 6090 addu r2, r4 + 4aae: 8260 ld.b r3, (r2, 0x0) + 4ab0: 2300 addi r3, 1 + 4ab2: 74cc zextb r3, r3 + 4ab4: a260 st.b r3, (r2, 0x0) + 4ab6: 3100 movi r1, 0 + 4ab8: 0376 lrw r3, 0x20000509 // 4cdc + 4aba: 60d0 addu r3, r4 + 4abc: a320 st.b r1, (r3, 0x0) + 4abe: 8260 ld.b r3, (r2, 0x0) + 4ac0: 9826 ld.w r1, (r14, 0x18) + 4ac2: 64c4 cmphs r1, r3 + 4ac4: 080a bt 0x4ad8 // 4ad8 + 4ac6: 3300 movi r3, 0 + 4ac8: 0336 lrw r1, 0x200004fc // 4cec + 4aca: 2b01 subi r3, 2 + 4acc: 9100 ld.w r0, (r1, 0x0) + 4ace: 70d3 rotl r3, r4 + 4ad0: 68c0 and r3, r0 + 4ad2: b160 st.w r3, (r1, 0x0) + 4ad4: 3300 movi r3, 0 + 4ad6: a260 st.b r3, (r2, 0x0) + 4ad8: 9860 ld.w r3, (r14, 0x0) + 4ada: 9841 ld.w r2, (r14, 0x4) + 4adc: 3b03 cmphsi r3, 4 + 4ade: 4461 lsli r3, r4, 1 + 4ae0: 60c8 addu r3, r2 + 4ae2: 8b40 ld.h r2, (r3, 0x0) + 4ae4: 748b sexth r2, r2 + 4ae6: 0d4d bf 0x4d80 // 4d80 + 4ae8: 649d cmplt r7, r2 + 4aea: 0d3a bf 0x4d5e // 4d5e + 4aec: 8b40 ld.h r2, (r3, 0x0) + 4aee: 9820 ld.w r1, (r14, 0x0) + 4af0: 748b sexth r2, r2 + 4af2: 7c5c mult r1, r7 + 4af4: 6449 cmplt r2, r1 + 4af6: 0d34 bf 0x4d5e // 4d5e + 4af8: 133e lrw r1, 0x200006dc // 4cf0 + 4afa: 6050 addu r1, r4 + 4afc: 8140 ld.b r2, (r1, 0x0) + 4afe: 2200 addi r2, 1 + 4b00: 7488 zextb r2, r2 + 4b02: a140 st.b r2, (r1, 0x0) + 4b04: 3000 movi r0, 0 + 4b06: 135c lrw r2, 0x20000578 // 4cf4 + 4b08: 6090 addu r2, r4 + 4b0a: a200 st.b r0, (r2, 0x0) + 4b0c: 135b lrw r2, 0x200005a2 // 4cf8 + 4b0e: 6090 addu r2, r4 + 4b10: a200 st.b r0, (r2, 0x0) + 4b12: 135b lrw r2, 0x200006a0 // 4cfc + 4b14: 6090 addu r2, r4 + 4b16: a200 st.b r0, (r2, 0x0) + 4b18: 8140 ld.b r2, (r1, 0x0) + 4b1a: 9803 ld.w r0, (r14, 0xc) + 4b1c: 6480 cmphs r0, r2 + 4b1e: 087d bt 0x4c18 // 4c18 + 4b20: 3d40 cmpnei r5, 0 + 4b22: 0871 bt 0x4c04 // 4c04 + 4b24: 1357 lrw r2, 0x20000490 // 4d00 + 4b26: 9260 ld.w r3, (r2, 0x0) + 4b28: 3b40 cmpnei r3, 0 + 4b2a: 0875 bt 0x4c14 // 4c14 + 4b2c: 9200 ld.w r0, (r2, 0x0) + 4b2e: 3301 movi r3, 1 + 4b30: 046f br 0x4c0e // 4c0e + 4b32: 3d42 cmpnei r5, 2 + 4b34: 0c03 bf 0x4b3a // 4b3a + 4b36: e8000201 br 0x4f38 // 4f38 + 4b3a: 13d3 lrw r6, 0x200006b6 // 4d04 + 4b3c: 8b00 ld.h r0, (r3, 0x0) + 4b3e: 8e40 ld.h r2, (r6, 0x0) + 4b40: 7489 zexth r2, r2 + 4b42: 7403 sexth r0, r0 + 4b44: 2209 addi r2, 10 + 4b46: 6409 cmplt r2, r0 + 4b48: 0fa0 bf 0x4a88 // 4a88 + 4b4a: 8b60 ld.h r3, (r3, 0x0) + 4b4c: 74cd zexth r3, r3 + 4b4e: ae60 st.h r3, (r6, 0x0) + 4b50: 3300 movi r3, 0 + 4b52: 1347 lrw r2, 0x200004fc // 4cec + 4b54: b260 st.w r3, (r2, 0x0) + 4b56: 0785 br 0x4a60 // 4a60 + 4b58: 4461 lsli r3, r4, 1 + 4b5a: 9824 ld.w r1, (r14, 0x10) + 4b5c: 60c4 addu r3, r1 + 4b5e: 8b60 ld.h r3, (r3, 0x0) + 4b60: 74cf sexth r3, r3 + 4b62: 64c9 cmplt r2, r3 + 4b64: 0f94 bf 0x4a8c // 4a8c + 4b66: 3300 movi r3, 0 + 4b68: 1341 lrw r2, 0x200004fc // 4cec + 4b6a: 2b01 subi r3, 2 + 4b6c: 9220 ld.w r1, (r2, 0x0) + 4b6e: 70d3 rotl r3, r4 + 4b70: 68c4 and r3, r1 + 4b72: b260 st.w r3, (r2, 0x0) + 4b74: 078c br 0x4a8c // 4a8c + 4b76: 9844 ld.w r2, (r14, 0x10) + 4b78: 6084 addu r2, r1 + 4b7a: 1218 lrw r0, 0x200001ae // 4cd8 + 4b7c: 8a60 ld.h r3, (r2, 0x0) + 4b7e: 6040 addu r1, r0 + 4b80: 74cf sexth r3, r3 + 4b82: 8920 ld.h r1, (r1, 0x0) + 4b84: 64c5 cmplt r1, r3 + 4b86: 0f83 bf 0x4a8c // 4a8c + 4b88: 1360 lrw r3, 0x2000051a // 4d08 + 4b8a: 8360 ld.b r3, (r3, 0x0) + 4b8c: 74cc zextb r3, r3 + 4b8e: 3b40 cmpnei r3, 0 + 4b90: 0b7e bt 0x4a8c // 4a8c + 4b92: 1213 lrw r0, 0x20000509 // 4cdc + 4b94: 6010 addu r0, r4 + 4b96: 8020 ld.b r1, (r0, 0x0) + 4b98: 2100 addi r1, 1 + 4b9a: 7444 zextb r1, r1 + 4b9c: a020 st.b r1, (r0, 0x0) + 4b9e: 3600 movi r6, 0 + 4ba0: 1230 lrw r1, 0x200004e8 // 4ce0 + 4ba2: 6050 addu r1, r4 + 4ba4: a1c0 st.b r6, (r1, 0x0) + 4ba6: 1230 lrw r1, 0x20000628 // 4ce4 + 4ba8: 6050 addu r1, r4 + 4baa: a1c0 st.b r6, (r1, 0x0) + 4bac: 122f lrw r1, 0x200006c0 // 4ce8 + 4bae: 6050 addu r1, r4 + 4bb0: a1c0 st.b r6, (r1, 0x0) + 4bb2: 8020 ld.b r1, (r0, 0x0) + 4bb4: 98c3 ld.w r6, (r14, 0xc) + 4bb6: 6458 cmphs r6, r1 + 4bb8: 0b6a bt 0x4a8c // 4a8c + 4bba: 3d40 cmpnei r5, 0 + 4bbc: 0808 bt 0x4bcc // 4bcc + 4bbe: 124c lrw r2, 0x200004fc // 4cec + 4bc0: 9260 ld.w r3, (r2, 0x0) + 4bc2: 3b40 cmpnei r3, 0 + 4bc4: 080c bt 0x4bdc // 4bdc + 4bc6: 9220 ld.w r1, (r2, 0x0) + 4bc8: 3301 movi r3, 1 + 4bca: 0406 br 0x4bd6 // 4bd6 + 4bcc: 3d41 cmpnei r5, 1 + 4bce: 080a bt 0x4be2 // 4be2 + 4bd0: 1247 lrw r2, 0x200004fc // 4cec + 4bd2: 6cd7 mov r3, r5 + 4bd4: 9220 ld.w r1, (r2, 0x0) + 4bd6: 70d0 lsl r3, r4 + 4bd8: 6cc4 or r3, r1 + 4bda: b260 st.w r3, (r2, 0x0) + 4bdc: 3300 movi r3, 0 + 4bde: a060 st.b r3, (r0, 0x0) + 4be0: 0756 br 0x4a8c // 4a8c + 4be2: 3d42 cmpnei r5, 2 + 4be4: 0c02 bf 0x4be8 // 4be8 + 4be6: 05dc br 0x4f9e // 4f9e + 4be8: 12e7 lrw r7, 0x200006b6 // 4d04 + 4bea: 8ac0 ld.h r6, (r2, 0x0) + 4bec: 8f20 ld.h r1, (r7, 0x0) + 4bee: 7445 zexth r1, r1 + 4bf0: 759b sexth r6, r6 + 4bf2: 2109 addi r1, 10 + 4bf4: 6585 cmplt r1, r6 + 4bf6: 0ff3 bf 0x4bdc // 4bdc + 4bf8: 8a40 ld.h r2, (r2, 0x0) + 4bfa: 7489 zexth r2, r2 + 4bfc: af40 st.h r2, (r7, 0x0) + 4bfe: 115c lrw r2, 0x200004fc // 4cec + 4c00: b260 st.w r3, (r2, 0x0) + 4c02: 07e2 br 0x4bc6 // 4bc6 + 4c04: 3d41 cmpnei r5, 1 + 4c06: 089b bt 0x4d3c // 4d3c + 4c08: 115e lrw r2, 0x20000490 // 4d00 + 4c0a: 6cd7 mov r3, r5 + 4c0c: 9200 ld.w r0, (r2, 0x0) + 4c0e: 70d0 lsl r3, r4 + 4c10: 6cc0 or r3, r0 + 4c12: b260 st.w r3, (r2, 0x0) + 4c14: 3300 movi r3, 0 + 4c16: a160 st.b r3, (r1, 0x0) + 4c18: 4461 lsli r3, r4, 1 + 4c1a: 9841 ld.w r2, (r14, 0x4) + 4c1c: 608c addu r2, r3 + 4c1e: 8a60 ld.h r3, (r2, 0x0) + 4c20: 74cf sexth r3, r3 + 4c22: 9845 ld.w r2, (r14, 0x14) + 4c24: 648d cmplt r3, r2 + 4c26: 0c18 bf 0x4c56 // 4c56 + 4c28: 1153 lrw r2, 0x20000578 // 4cf4 + 4c2a: 6090 addu r2, r4 + 4c2c: 8260 ld.b r3, (r2, 0x0) + 4c2e: 2300 addi r3, 1 + 4c30: 74cc zextb r3, r3 + 4c32: a260 st.b r3, (r2, 0x0) + 4c34: 3100 movi r1, 0 + 4c36: 116f lrw r3, 0x200006dc // 4cf0 + 4c38: 60d0 addu r3, r4 + 4c3a: a320 st.b r1, (r3, 0x0) + 4c3c: 8260 ld.b r3, (r2, 0x0) + 4c3e: 9826 ld.w r1, (r14, 0x18) + 4c40: 64c4 cmphs r1, r3 + 4c42: 080a bt 0x4c56 // 4c56 + 4c44: 3300 movi r3, 0 + 4c46: 112f lrw r1, 0x20000490 // 4d00 + 4c48: 2b01 subi r3, 2 + 4c4a: 9100 ld.w r0, (r1, 0x0) + 4c4c: 70d3 rotl r3, r4 + 4c4e: 68c0 and r3, r0 + 4c50: b160 st.w r3, (r1, 0x0) + 4c52: 3300 movi r3, 0 + 4c54: a260 st.b r3, (r2, 0x0) + 4c56: 9860 ld.w r3, (r14, 0x0) + 4c58: 9842 ld.w r2, (r14, 0x8) + 4c5a: 3b03 cmphsi r3, 4 + 4c5c: 4461 lsli r3, r4, 1 + 4c5e: 60c8 addu r3, r2 + 4c60: 8b40 ld.h r2, (r3, 0x0) + 4c62: 748b sexth r2, r2 + 4c64: 0d26 bf 0x4eb0 // 4eb0 + 4c66: 9820 ld.w r1, (r14, 0x0) + 4c68: 649d cmplt r7, r2 + 4c6a: 7c5c mult r1, r7 + 4c6c: 0d13 bf 0x4e92 // 4e92 + 4c6e: 8b40 ld.h r2, (r3, 0x0) + 4c70: 748b sexth r2, r2 + 4c72: 6449 cmplt r2, r1 + 4c74: 0d0f bf 0x4e92 // 4e92 + 4c76: 1126 lrw r1, 0x20000684 // 4d0c + 4c78: 6050 addu r1, r4 + 4c7a: 8140 ld.b r2, (r1, 0x0) + 4c7c: 2200 addi r2, 1 + 4c7e: 7488 zextb r2, r2 + 4c80: a140 st.b r2, (r1, 0x0) + 4c82: 3000 movi r0, 0 + 4c84: 1143 lrw r2, 0x200006f2 // 4d10 + 4c86: 6090 addu r2, r4 + 4c88: a200 st.b r0, (r2, 0x0) + 4c8a: 1143 lrw r2, 0x2000047e // 4d14 + 4c8c: 6090 addu r2, r4 + 4c8e: a200 st.b r0, (r2, 0x0) + 4c90: 1142 lrw r2, 0x20000590 // 4d18 + 4c92: 6090 addu r2, r4 + 4c94: a200 st.b r0, (r2, 0x0) + 4c96: 0443 br 0x4d1c // 4d1c + 4c98: 20000180 .long 0x20000180 + 4c9c: 20000154 .long 0x20000154 + 4ca0: 2000015d .long 0x2000015d + 4ca4: 2000015c .long 0x2000015c + 4ca8: 200007ae .long 0x200007ae + 4cac: 2000051c .long 0x2000051c + 4cb0: 2000045c .long 0x2000045c + 4cb4: 20000606 .long 0x20000606 + 4cb8: 20000544 .long 0x20000544 + 4cbc: 2000065c .long 0x2000065c + 4cc0: 2000063a .long 0x2000063a + 4cc4: 2000071c .long 0x2000071c + 4cc8: 20000788 .long 0x20000788 + 4ccc: 20000766 .long 0x20000766 + 4cd0: 200004c4 .long 0x200004c4 + 4cd4: 20000498 .long 0x20000498 + 4cd8: 200001ae .long 0x200001ae + 4cdc: 20000509 .long 0x20000509 + 4ce0: 200004e8 .long 0x200004e8 + 4ce4: 20000628 .long 0x20000628 + 4ce8: 200006c0 .long 0x200006c0 + 4cec: 200004fc .long 0x200004fc + 4cf0: 200006dc .long 0x200006dc + 4cf4: 20000578 .long 0x20000578 + 4cf8: 200005a2 .long 0x200005a2 + 4cfc: 200006a0 .long 0x200006a0 + 4d00: 20000490 .long 0x20000490 + 4d04: 200006b6 .long 0x200006b6 + 4d08: 2000051a .long 0x2000051a + 4d0c: 20000684 .long 0x20000684 + 4d10: 200006f2 .long 0x200006f2 + 4d14: 2000047e .long 0x2000047e + 4d18: 20000590 .long 0x20000590 + 4d1c: 8140 ld.b r2, (r1, 0x0) + 4d1e: 9803 ld.w r0, (r14, 0xc) + 4d20: 6480 cmphs r0, r2 + 4d22: 0881 bt 0x4e24 // 4e24 + 4d24: 3d40 cmpnei r5, 0 + 4d26: 0874 bt 0x4e0e // 4e0e + 4d28: 014b lrw r2, 0x20000574 // 5078 + 4d2a: 9260 ld.w r3, (r2, 0x0) + 4d2c: 3b40 cmpnei r3, 0 + 4d2e: 0879 bt 0x4e20 // 4e20 + 4d30: 3301 movi r3, 1 + 4d32: 9200 ld.w r0, (r2, 0x0) + 4d34: 70d0 lsl r3, r4 + 4d36: 6cc0 or r3, r0 + 4d38: b260 st.w r3, (r2, 0x0) + 4d3a: 0473 br 0x4e20 // 4e20 + 4d3c: 3d42 cmpnei r5, 2 + 4d3e: 0960 bt 0x4ffe // 4ffe + 4d40: 01d0 lrw r6, 0x200007ac // 507c + 4d42: 8b00 ld.h r0, (r3, 0x0) + 4d44: 8e40 ld.h r2, (r6, 0x0) + 4d46: 7489 zexth r2, r2 + 4d48: 7403 sexth r0, r0 + 4d4a: 2209 addi r2, 10 + 4d4c: 6409 cmplt r2, r0 + 4d4e: 0f63 bf 0x4c14 // 4c14 + 4d50: 8b60 ld.h r3, (r3, 0x0) + 4d52: 74cd zexth r3, r3 + 4d54: ae60 st.h r3, (r6, 0x0) + 4d56: 3300 movi r3, 0 + 4d58: 0155 lrw r2, 0x20000490 // 5080 + 4d5a: b260 st.w r3, (r2, 0x0) + 4d5c: 06e8 br 0x4b2c // 4b2c + 4d5e: 9841 ld.w r2, (r14, 0x4) + 4d60: 4461 lsli r3, r4, 1 + 4d62: 60c8 addu r3, r2 + 4d64: 8b60 ld.h r3, (r3, 0x0) + 4d66: 9840 ld.w r2, (r14, 0x0) + 4d68: 74cf sexth r3, r3 + 4d6a: 7c9c mult r2, r7 + 4d6c: 64c9 cmplt r2, r3 + 4d6e: 0f55 bf 0x4c18 // 4c18 + 4d70: 3300 movi r3, 0 + 4d72: 015b lrw r2, 0x20000490 // 5080 + 4d74: 2b01 subi r3, 2 + 4d76: 9220 ld.w r1, (r2, 0x0) + 4d78: 70d3 rotl r3, r4 + 4d7a: 68c4 and r3, r1 + 4d7c: b260 st.w r3, (r2, 0x0) + 4d7e: 074d br 0x4c18 // 4c18 + 4d80: 649d cmplt r7, r2 + 4d82: 0f4b bf 0x4c18 // 4c18 + 4d84: 015f lrw r2, 0x2000051a // 5084 + 4d86: 8240 ld.b r2, (r2, 0x0) + 4d88: 7488 zextb r2, r2 + 4d8a: 3a40 cmpnei r2, 0 + 4d8c: b847 st.w r2, (r14, 0x1c) + 4d8e: 0b45 bt 0x4c18 // 4c18 + 4d90: 0201 lrw r0, 0x200006dc // 5088 + 4d92: 6010 addu r0, r4 + 4d94: 8020 ld.b r1, (r0, 0x0) + 4d96: 2100 addi r1, 1 + 4d98: 7444 zextb r1, r1 + 4d9a: a020 st.b r1, (r0, 0x0) + 4d9c: 3600 movi r6, 0 + 4d9e: 0223 lrw r1, 0x20000578 // 508c + 4da0: 6050 addu r1, r4 + 4da2: a1c0 st.b r6, (r1, 0x0) + 4da4: 0224 lrw r1, 0x200005a2 // 5090 + 4da6: 6050 addu r1, r4 + 4da8: a1c0 st.b r6, (r1, 0x0) + 4daa: 0224 lrw r1, 0x200006a0 // 5094 + 4dac: 6050 addu r1, r4 + 4dae: a1c0 st.b r6, (r1, 0x0) + 4db0: 8020 ld.b r1, (r0, 0x0) + 4db2: 98c3 ld.w r6, (r14, 0xc) + 4db4: 6458 cmphs r6, r1 + 4db6: 0b31 bt 0x4c18 // 4c18 + 4db8: 3d40 cmpnei r5, 0 + 4dba: 0808 bt 0x4dca // 4dca + 4dbc: 024e lrw r2, 0x20000490 // 5080 + 4dbe: 9260 ld.w r3, (r2, 0x0) + 4dc0: 3b40 cmpnei r3, 0 + 4dc2: 0823 bt 0x4e08 // 4e08 + 4dc4: 9220 ld.w r1, (r2, 0x0) + 4dc6: 3301 movi r3, 1 + 4dc8: 0406 br 0x4dd4 // 4dd4 + 4dca: 3d41 cmpnei r5, 1 + 4dcc: 0808 bt 0x4ddc // 4ddc + 4dce: 0252 lrw r2, 0x20000490 // 5080 + 4dd0: 6cd7 mov r3, r5 + 4dd2: 9220 ld.w r1, (r2, 0x0) + 4dd4: 70d0 lsl r3, r4 + 4dd6: 6cc4 or r3, r1 + 4dd8: b260 st.w r3, (r2, 0x0) + 4dda: 0417 br 0x4e08 // 4e08 + 4ddc: 3d42 cmpnei r5, 2 + 4dde: 0942 bt 0x5062 // 5062 + 4de0: 8bc0 ld.h r6, (r3, 0x0) + 4de2: 745b sexth r1, r6 + 4de4: 02d9 lrw r6, 0x200007ac // 507c + 4de6: 6c87 mov r2, r1 + 4de8: 8e20 ld.h r1, (r6, 0x0) + 4dea: 7445 zexth r1, r1 + 4dec: 2109 addi r1, 10 + 4dee: 6485 cmplt r1, r2 + 4df0: 0c0c bf 0x4e08 // 4e08 + 4df2: 8b60 ld.h r3, (r3, 0x0) + 4df4: 74cd zexth r3, r3 + 4df6: ae60 st.h r3, (r6, 0x0) + 4df8: 9867 ld.w r3, (r14, 0x1c) + 4dfa: 023d lrw r1, 0x20000490 // 5080 + 4dfc: b160 st.w r3, (r1, 0x0) + 4dfe: 3301 movi r3, 1 + 4e00: 9140 ld.w r2, (r1, 0x0) + 4e02: 70d0 lsl r3, r4 + 4e04: 6cc8 or r3, r2 + 4e06: b160 st.w r3, (r1, 0x0) + 4e08: 3300 movi r3, 0 + 4e0a: a060 st.b r3, (r0, 0x0) + 4e0c: 0706 br 0x4c18 // 4c18 + 4e0e: 3d41 cmpnei r5, 1 + 4e10: 0830 bt 0x4e70 // 4e70 + 4e12: 0345 lrw r2, 0x20000574 // 5078 + 4e14: 6cd7 mov r3, r5 + 4e16: 9200 ld.w r0, (r2, 0x0) + 4e18: 70d0 lsl r3, r4 + 4e1a: 6cc0 or r3, r0 + 4e1c: b260 st.w r3, (r2, 0x0) + 4e1e: 6c03 mov r0, r0 + 4e20: 3300 movi r3, 0 + 4e22: a160 st.b r3, (r1, 0x0) + 4e24: 4461 lsli r3, r4, 1 + 4e26: 9842 ld.w r2, (r14, 0x8) + 4e28: 608c addu r2, r3 + 4e2a: 8a60 ld.h r3, (r2, 0x0) + 4e2c: 74cf sexth r3, r3 + 4e2e: 9845 ld.w r2, (r14, 0x14) + 4e30: 648d cmplt r3, r2 + 4e32: 0c18 bf 0x4e62 // 4e62 + 4e34: 0346 lrw r2, 0x200006f2 // 5098 + 4e36: 6090 addu r2, r4 + 4e38: 8260 ld.b r3, (r2, 0x0) + 4e3a: 2300 addi r3, 1 + 4e3c: 74cc zextb r3, r3 + 4e3e: a260 st.b r3, (r2, 0x0) + 4e40: 3100 movi r1, 0 + 4e42: 0368 lrw r3, 0x20000684 // 509c + 4e44: 60d0 addu r3, r4 + 4e46: a320 st.b r1, (r3, 0x0) + 4e48: 8260 ld.b r3, (r2, 0x0) + 4e4a: 9826 ld.w r1, (r14, 0x18) + 4e4c: 64c4 cmphs r1, r3 + 4e4e: 080a bt 0x4e62 // 4e62 + 4e50: 3300 movi r3, 0 + 4e52: 0335 lrw r1, 0x20000574 // 5078 + 4e54: 2b01 subi r3, 2 + 4e56: 9100 ld.w r0, (r1, 0x0) + 4e58: 70d3 rotl r3, r4 + 4e5a: 68c0 and r3, r0 + 4e5c: b160 st.w r3, (r1, 0x0) + 4e5e: 3300 movi r3, 0 + 4e60: a260 st.b r3, (r2, 0x0) + 4e62: 2400 addi r4, 1 + 4e64: 3c51 cmpnei r4, 17 + 4e66: 0c03 bf 0x4e6c // 4e6c + 4e68: e800fd8d br 0x4982 // 4982 + 4e6c: 140a addi r14, r14, 40 + 4e6e: 1494 pop r4-r7, r15 + 4e70: 3d42 cmpnei r5, 2 + 4e72: 0948 bt 0x5102 // 5102 + 4e74: 03d4 lrw r6, 0x2000053e // 50a0 + 4e76: 8b00 ld.h r0, (r3, 0x0) + 4e78: 8e40 ld.h r2, (r6, 0x0) + 4e7a: 7489 zexth r2, r2 + 4e7c: 7403 sexth r0, r0 + 4e7e: 2209 addi r2, 10 + 4e80: 6409 cmplt r2, r0 + 4e82: 0fcf bf 0x4e20 // 4e20 + 4e84: 8b60 ld.h r3, (r3, 0x0) + 4e86: 74cd zexth r3, r3 + 4e88: ae60 st.h r3, (r6, 0x0) + 4e8a: 3300 movi r3, 0 + 4e8c: 135b lrw r2, 0x20000574 // 5078 + 4e8e: b260 st.w r3, (r2, 0x0) + 4e90: 0750 br 0x4d30 // 4d30 + 4e92: 4461 lsli r3, r4, 1 + 4e94: 9842 ld.w r2, (r14, 0x8) + 4e96: 60c8 addu r3, r2 + 4e98: 8b60 ld.h r3, (r3, 0x0) + 4e9a: 74cf sexth r3, r3 + 4e9c: 64c5 cmplt r1, r3 + 4e9e: 0fc3 bf 0x4e24 // 4e24 + 4ea0: 3300 movi r3, 0 + 4ea2: 1356 lrw r2, 0x20000574 // 5078 + 4ea4: 2b01 subi r3, 2 + 4ea6: 9220 ld.w r1, (r2, 0x0) + 4ea8: 70d3 rotl r3, r4 + 4eaa: 68c4 and r3, r1 + 4eac: b260 st.w r3, (r2, 0x0) + 4eae: 07bb br 0x4e24 // 4e24 + 4eb0: 649d cmplt r7, r2 + 4eb2: 0fb9 bf 0x4e24 // 4e24 + 4eb4: 1354 lrw r2, 0x2000051a // 5084 + 4eb6: 8240 ld.b r2, (r2, 0x0) + 4eb8: 7488 zextb r2, r2 + 4eba: 3a40 cmpnei r2, 0 + 4ebc: 0bb4 bt 0x4e24 // 4e24 + 4ebe: 1318 lrw r0, 0x20000684 // 509c + 4ec0: 6010 addu r0, r4 + 4ec2: 8020 ld.b r1, (r0, 0x0) + 4ec4: 2100 addi r1, 1 + 4ec6: 7444 zextb r1, r1 + 4ec8: a020 st.b r1, (r0, 0x0) + 4eca: 3600 movi r6, 0 + 4ecc: 1333 lrw r1, 0x200006f2 // 5098 + 4ece: 6050 addu r1, r4 + 4ed0: a1c0 st.b r6, (r1, 0x0) + 4ed2: 1335 lrw r1, 0x2000047e // 50a4 + 4ed4: 6050 addu r1, r4 + 4ed6: a1c0 st.b r6, (r1, 0x0) + 4ed8: 1334 lrw r1, 0x20000590 // 50a8 + 4eda: 6050 addu r1, r4 + 4edc: a1c0 st.b r6, (r1, 0x0) + 4ede: 8020 ld.b r1, (r0, 0x0) + 4ee0: 98c3 ld.w r6, (r14, 0xc) + 4ee2: 6458 cmphs r6, r1 + 4ee4: 0ba0 bt 0x4e24 // 4e24 + 4ee6: 3d40 cmpnei r5, 0 + 4ee8: 0808 bt 0x4ef8 // 4ef8 + 4eea: 1344 lrw r2, 0x20000574 // 5078 + 4eec: 9260 ld.w r3, (r2, 0x0) + 4eee: 3b40 cmpnei r3, 0 + 4ef0: 0821 bt 0x4f32 // 4f32 + 4ef2: 9220 ld.w r1, (r2, 0x0) + 4ef4: 3301 movi r3, 1 + 4ef6: 0406 br 0x4f02 // 4f02 + 4ef8: 3d41 cmpnei r5, 1 + 4efa: 0808 bt 0x4f0a // 4f0a + 4efc: 125f lrw r2, 0x20000574 // 5078 + 4efe: 6cd7 mov r3, r5 + 4f00: 9220 ld.w r1, (r2, 0x0) + 4f02: 70d0 lsl r3, r4 + 4f04: 6cc4 or r3, r1 + 4f06: b260 st.w r3, (r2, 0x0) + 4f08: 0415 br 0x4f32 // 4f32 + 4f0a: 3d42 cmpnei r5, 2 + 4f0c: 092a bt 0x5160 // 5160 + 4f0e: 13e5 lrw r7, 0x2000053e // 50a0 + 4f10: 8bc0 ld.h r6, (r3, 0x0) + 4f12: 8f20 ld.h r1, (r7, 0x0) + 4f14: 7445 zexth r1, r1 + 4f16: 759b sexth r6, r6 + 4f18: 2109 addi r1, 10 + 4f1a: 6585 cmplt r1, r6 + 4f1c: 0c0b bf 0x4f32 // 4f32 + 4f1e: 8b60 ld.h r3, (r3, 0x0) + 4f20: 1236 lrw r1, 0x20000574 // 5078 + 4f22: 74cd zexth r3, r3 + 4f24: af60 st.h r3, (r7, 0x0) + 4f26: b140 st.w r2, (r1, 0x0) + 4f28: 3301 movi r3, 1 + 4f2a: 9140 ld.w r2, (r1, 0x0) + 4f2c: 70d0 lsl r3, r4 + 4f2e: 6cc8 or r3, r2 + 4f30: b160 st.w r3, (r1, 0x0) + 4f32: 3300 movi r3, 0 + 4f34: a060 st.b r3, (r0, 0x0) + 4f36: 0777 br 0x4e24 // 4e24 + 4f38: 3d43 cmpnei r5, 3 + 4f3a: 0c03 bf 0x4f40 // 4f40 + 4f3c: e800fda6 br 0x4a88 // 4a88 + 4f40: 125b lrw r2, 0x200006b6 // 50ac + 4f42: 8bc0 ld.h r6, (r3, 0x0) + 4f44: 8a00 ld.h r0, (r2, 0x0) + 4f46: 7401 zexth r0, r0 + 4f48: 759b sexth r6, r6 + 4f4a: 2009 addi r0, 10 + 4f4c: 6581 cmplt r0, r6 + 4f4e: 0c0c bf 0x4f66 // 4f66 + 4f50: 8b60 ld.h r3, (r3, 0x0) + 4f52: 74cd zexth r3, r3 + 4f54: aa60 st.h r3, (r2, 0x0) + 4f56: 3300 movi r3, 0 + 4f58: 1216 lrw r0, 0x200004fc // 50b0 + 4f5a: b060 st.w r3, (r0, 0x0) + 4f5c: 3301 movi r3, 1 + 4f5e: 90c0 ld.w r6, (r0, 0x0) + 4f60: 70d0 lsl r3, r4 + 4f62: 6cd8 or r3, r6 + 4f64: b060 st.w r3, (r0, 0x0) + 4f66: 9804 ld.w r0, (r14, 0x10) + 4f68: 4461 lsli r3, r4, 1 + 4f6a: 60c0 addu r3, r0 + 4f6c: 8b00 ld.h r0, (r3, 0x0) + 4f6e: 8a40 ld.h r2, (r2, 0x0) + 4f70: 7489 zexth r2, r2 + 4f72: 7403 sexth r0, r0 + 4f74: 2a04 subi r2, 5 + 4f76: 6481 cmplt r0, r2 + 4f78: 0803 bt 0x4f7e // 4f7e + 4f7a: e800fd87 br 0x4a88 // 4a88 + 4f7e: 12ce lrw r6, 0x200004c0 // 50b4 + 4f80: 8b00 ld.h r0, (r3, 0x0) + 4f82: 8e40 ld.h r2, (r6, 0x0) + 4f84: 7489 zexth r2, r2 + 4f86: 7403 sexth r0, r0 + 4f88: 2204 addi r2, 5 + 4f8a: 6409 cmplt r2, r0 + 4f8c: 0803 bt 0x4f92 // 4f92 + 4f8e: e800fd7d br 0x4a88 // 4a88 + 4f92: 8b60 ld.h r3, (r3, 0x0) + 4f94: 74cd zexth r3, r3 + 4f96: ae60 st.h r3, (r6, 0x0) + 4f98: 1246 lrw r2, 0x200004fc // 50b0 + 4f9a: e800fd63 br 0x4a60 // 4a60 + 4f9e: 3d43 cmpnei r5, 3 + 4fa0: 0c02 bf 0x4fa4 // 4fa4 + 4fa2: 061d br 0x4bdc // 4bdc + 4fa4: 12c2 lrw r6, 0x200006b6 // 50ac + 4fa6: 8ae0 ld.h r7, (r2, 0x0) + 4fa8: 8e20 ld.h r1, (r6, 0x0) + 4faa: 7445 zexth r1, r1 + 4fac: 75df sexth r7, r7 + 4fae: 2109 addi r1, 10 + 4fb0: 65c5 cmplt r1, r7 + 4fb2: 0c0b bf 0x4fc8 // 4fc8 + 4fb4: 8a40 ld.h r2, (r2, 0x0) + 4fb6: 7489 zexth r2, r2 + 4fb8: ae40 st.h r2, (r6, 0x0) + 4fba: 115e lrw r2, 0x200004fc // 50b0 + 4fbc: b260 st.w r3, (r2, 0x0) + 4fbe: 3301 movi r3, 1 + 4fc0: 9220 ld.w r1, (r2, 0x0) + 4fc2: 70d0 lsl r3, r4 + 4fc4: 6cc4 or r3, r1 + 4fc6: b260 st.w r3, (r2, 0x0) + 4fc8: 9844 ld.w r2, (r14, 0x10) + 4fca: 4461 lsli r3, r4, 1 + 4fcc: 60c8 addu r3, r2 + 4fce: 8b40 ld.h r2, (r3, 0x0) + 4fd0: 8e20 ld.h r1, (r6, 0x0) + 4fd2: 7445 zexth r1, r1 + 4fd4: 748b sexth r2, r2 + 4fd6: 2904 subi r1, 5 + 4fd8: 6449 cmplt r2, r1 + 4fda: 0802 bt 0x4fde // 4fde + 4fdc: 0600 br 0x4bdc // 4bdc + 4fde: 11d6 lrw r6, 0x200004c0 // 50b4 + 4fe0: 8b20 ld.h r1, (r3, 0x0) + 4fe2: 8e40 ld.h r2, (r6, 0x0) + 4fe4: 7489 zexth r2, r2 + 4fe6: 7447 sexth r1, r1 + 4fe8: 2204 addi r2, 5 + 4fea: 6449 cmplt r2, r1 + 4fec: 0803 bt 0x4ff2 // 4ff2 + 4fee: e800fdf7 br 0x4bdc // 4bdc + 4ff2: 8b60 ld.h r3, (r3, 0x0) + 4ff4: 74cd zexth r3, r3 + 4ff6: ae60 st.h r3, (r6, 0x0) + 4ff8: 114e lrw r2, 0x200004fc // 50b0 + 4ffa: e800fde6 br 0x4bc6 // 4bc6 + 4ffe: 3d43 cmpnei r5, 3 + 5000: 0c02 bf 0x5004 // 5004 + 5002: 0609 br 0x4c14 // 4c14 + 5004: 105e lrw r2, 0x200007ac // 507c + 5006: 8bc0 ld.h r6, (r3, 0x0) + 5008: 8a00 ld.h r0, (r2, 0x0) + 500a: 7401 zexth r0, r0 + 500c: 759b sexth r6, r6 + 500e: 2009 addi r0, 10 + 5010: 6581 cmplt r0, r6 + 5012: 0c0c bf 0x502a // 502a + 5014: 8b60 ld.h r3, (r3, 0x0) + 5016: 74cd zexth r3, r3 + 5018: aa60 st.h r3, (r2, 0x0) + 501a: 3300 movi r3, 0 + 501c: 1019 lrw r0, 0x20000490 // 5080 + 501e: b060 st.w r3, (r0, 0x0) + 5020: 3301 movi r3, 1 + 5022: 90c0 ld.w r6, (r0, 0x0) + 5024: 70d0 lsl r3, r4 + 5026: 6cd8 or r3, r6 + 5028: b060 st.w r3, (r0, 0x0) + 502a: 9801 ld.w r0, (r14, 0x4) + 502c: 4461 lsli r3, r4, 1 + 502e: 60c0 addu r3, r0 + 5030: 8b00 ld.h r0, (r3, 0x0) + 5032: 8a40 ld.h r2, (r2, 0x0) + 5034: 7489 zexth r2, r2 + 5036: 7403 sexth r0, r0 + 5038: 2a04 subi r2, 5 + 503a: 6481 cmplt r0, r2 + 503c: 0803 bt 0x5042 // 5042 + 503e: e800fdeb br 0x4c14 // 4c14 + 5042: 10de lrw r6, 0x200006be // 50b8 + 5044: 8b00 ld.h r0, (r3, 0x0) + 5046: 8e40 ld.h r2, (r6, 0x0) + 5048: 7489 zexth r2, r2 + 504a: 7403 sexth r0, r0 + 504c: 2204 addi r2, 5 + 504e: 6409 cmplt r2, r0 + 5050: 0803 bt 0x5056 // 5056 + 5052: e800fde1 br 0x4c14 // 4c14 + 5056: 8b60 ld.h r3, (r3, 0x0) + 5058: 74cd zexth r3, r3 + 505a: ae60 st.h r3, (r6, 0x0) + 505c: 1049 lrw r2, 0x20000490 // 5080 + 505e: e800fd67 br 0x4b2c // 4b2c + 5062: 3d43 cmpnei r5, 3 + 5064: 0ad2 bt 0x4e08 // 4e08 + 5066: 8b20 ld.h r1, (r3, 0x0) + 5068: 10c5 lrw r6, 0x200007ac // 507c + 506a: 7487 sexth r2, r1 + 506c: 8e20 ld.h r1, (r6, 0x0) + 506e: 7445 zexth r1, r1 + 5070: 2109 addi r1, 10 + 5072: 6485 cmplt r1, r2 + 5074: 0c2f bf 0x50d2 // 50d2 + 5076: 0423 br 0x50bc // 50bc + 5078: 20000574 .long 0x20000574 + 507c: 200007ac .long 0x200007ac + 5080: 20000490 .long 0x20000490 + 5084: 2000051a .long 0x2000051a + 5088: 200006dc .long 0x200006dc + 508c: 20000578 .long 0x20000578 + 5090: 200005a2 .long 0x200005a2 + 5094: 200006a0 .long 0x200006a0 + 5098: 200006f2 .long 0x200006f2 + 509c: 20000684 .long 0x20000684 + 50a0: 2000053e .long 0x2000053e + 50a4: 2000047e .long 0x2000047e + 50a8: 20000590 .long 0x20000590 + 50ac: 200006b6 .long 0x200006b6 + 50b0: 200004fc .long 0x200004fc + 50b4: 200004c0 .long 0x200004c0 + 50b8: 200006be .long 0x200006be + 50bc: 8b60 ld.h r3, (r3, 0x0) + 50be: 74cd zexth r3, r3 + 50c0: ae60 st.h r3, (r6, 0x0) + 50c2: 9867 ld.w r3, (r14, 0x1c) + 50c4: 113d lrw r1, 0x20000490 // 51b8 + 50c6: b160 st.w r3, (r1, 0x0) + 50c8: 3301 movi r3, 1 + 50ca: 9140 ld.w r2, (r1, 0x0) + 50cc: 70d0 lsl r3, r4 + 50ce: 6cc8 or r3, r2 + 50d0: b160 st.w r3, (r1, 0x0) + 50d2: 9841 ld.w r2, (r14, 0x4) + 50d4: 4461 lsli r3, r4, 1 + 50d6: 60c8 addu r3, r2 + 50d8: 8b40 ld.h r2, (r3, 0x0) + 50da: 8e20 ld.h r1, (r6, 0x0) + 50dc: 7445 zexth r1, r1 + 50de: 748b sexth r2, r2 + 50e0: 2904 subi r1, 5 + 50e2: 6449 cmplt r2, r1 + 50e4: 0e92 bf 0x4e08 // 4e08 + 50e6: 11d6 lrw r6, 0x200006be // 51bc + 50e8: 8b20 ld.h r1, (r3, 0x0) + 50ea: 8e40 ld.h r2, (r6, 0x0) + 50ec: 7489 zexth r2, r2 + 50ee: 7447 sexth r1, r1 + 50f0: 2204 addi r2, 5 + 50f2: 6449 cmplt r2, r1 + 50f4: 0802 bt 0x50f8 // 50f8 + 50f6: 0689 br 0x4e08 // 4e08 + 50f8: 8b60 ld.h r3, (r3, 0x0) + 50fa: 74cd zexth r3, r3 + 50fc: ae60 st.h r3, (r6, 0x0) + 50fe: 114f lrw r2, 0x20000490 // 51b8 + 5100: 0662 br 0x4dc4 // 4dc4 + 5102: 3d43 cmpnei r5, 3 + 5104: 0a8e bt 0x4e20 // 4e20 + 5106: 114f lrw r2, 0x2000053e // 51c0 + 5108: 8bc0 ld.h r6, (r3, 0x0) + 510a: 8a00 ld.h r0, (r2, 0x0) + 510c: 7401 zexth r0, r0 + 510e: 759b sexth r6, r6 + 5110: 2009 addi r0, 10 + 5112: 6581 cmplt r0, r6 + 5114: 0c0c bf 0x512c // 512c + 5116: 8b60 ld.h r3, (r3, 0x0) + 5118: 74cd zexth r3, r3 + 511a: aa60 st.h r3, (r2, 0x0) + 511c: 3300 movi r3, 0 + 511e: 110a lrw r0, 0x20000574 // 51c4 + 5120: b060 st.w r3, (r0, 0x0) + 5122: 3301 movi r3, 1 + 5124: 90c0 ld.w r6, (r0, 0x0) + 5126: 70d0 lsl r3, r4 + 5128: 6cd8 or r3, r6 + 512a: b060 st.w r3, (r0, 0x0) + 512c: 9802 ld.w r0, (r14, 0x8) + 512e: 4461 lsli r3, r4, 1 + 5130: 60c0 addu r3, r0 + 5132: 8b00 ld.h r0, (r3, 0x0) + 5134: 8a40 ld.h r2, (r2, 0x0) + 5136: 7489 zexth r2, r2 + 5138: 7403 sexth r0, r0 + 513a: 2a04 subi r2, 5 + 513c: 6481 cmplt r0, r2 + 513e: 0802 bt 0x5142 // 5142 + 5140: 0670 br 0x4e20 // 4e20 + 5142: 11c2 lrw r6, 0x20000604 // 51c8 + 5144: 8b00 ld.h r0, (r3, 0x0) + 5146: 8e40 ld.h r2, (r6, 0x0) + 5148: 7489 zexth r2, r2 + 514a: 7403 sexth r0, r0 + 514c: 2204 addi r2, 5 + 514e: 6409 cmplt r2, r0 + 5150: 0802 bt 0x5154 // 5154 + 5152: 0667 br 0x4e20 // 4e20 + 5154: 8b60 ld.h r3, (r3, 0x0) + 5156: 74cd zexth r3, r3 + 5158: ae60 st.h r3, (r6, 0x0) + 515a: 105b lrw r2, 0x20000574 // 51c4 + 515c: e800fdea br 0x4d30 // 4d30 + 5160: 3d43 cmpnei r5, 3 + 5162: 0ae8 bt 0x4f32 // 4f32 + 5164: 10d7 lrw r6, 0x2000053e // 51c0 + 5166: 8be0 ld.h r7, (r3, 0x0) + 5168: 8e20 ld.h r1, (r6, 0x0) + 516a: 7445 zexth r1, r1 + 516c: 75df sexth r7, r7 + 516e: 2109 addi r1, 10 + 5170: 65c5 cmplt r1, r7 + 5172: 0c0b bf 0x5188 // 5188 + 5174: 8b60 ld.h r3, (r3, 0x0) + 5176: 1034 lrw r1, 0x20000574 // 51c4 + 5178: 74cd zexth r3, r3 + 517a: ae60 st.h r3, (r6, 0x0) + 517c: b140 st.w r2, (r1, 0x0) + 517e: 3301 movi r3, 1 + 5180: 9140 ld.w r2, (r1, 0x0) + 5182: 70d0 lsl r3, r4 + 5184: 6cc8 or r3, r2 + 5186: b160 st.w r3, (r1, 0x0) + 5188: 9842 ld.w r2, (r14, 0x8) + 518a: 4461 lsli r3, r4, 1 + 518c: 60c8 addu r3, r2 + 518e: 8b40 ld.h r2, (r3, 0x0) + 5190: 8e20 ld.h r1, (r6, 0x0) + 5192: 7445 zexth r1, r1 + 5194: 748b sexth r2, r2 + 5196: 2904 subi r1, 5 + 5198: 6449 cmplt r2, r1 + 519a: 0ecc bf 0x4f32 // 4f32 + 519c: 10cb lrw r6, 0x20000604 // 51c8 + 519e: 8b20 ld.h r1, (r3, 0x0) + 51a0: 8e40 ld.h r2, (r6, 0x0) + 51a2: 7489 zexth r2, r2 + 51a4: 7447 sexth r1, r1 + 51a6: 2204 addi r2, 5 + 51a8: 6449 cmplt r2, r1 + 51aa: 0ec4 bf 0x4f32 // 4f32 + 51ac: 8b60 ld.h r3, (r3, 0x0) + 51ae: 74cd zexth r3, r3 + 51b0: ae60 st.h r3, (r6, 0x0) + 51b2: 1045 lrw r2, 0x20000574 // 51c4 + 51b4: 069f br 0x4ef2 // 4ef2 + 51b6: 0000 bkpt + 51b8: 20000490 .long 0x20000490 + 51bc: 200006be .long 0x200006be + 51c0: 2000053e .long 0x2000053e + 51c4: 20000574 .long 0x20000574 + 51c8: 20000604 .long 0x20000604 + +Disassembly of section .text.TK_overflow_predict: + +000051cc : + 51cc: 14d4 push r4-r7, r15 + 51ce: 1422 subi r14, r14, 8 + 51d0: 113c lrw r1, 0x20000068 // 52c0 + 51d2: 8167 ld.b r3, (r1, 0x7) + 51d4: 3b41 cmpnei r3, 1 + 51d6: 0823 bt 0x521c // 521c + 51d8: 115b lrw r2, 0x2000067e // 52c4 + 51da: 8260 ld.b r3, (r2, 0x0) + 51dc: 2300 addi r3, 1 + 51de: 74cc zextb r3, r3 + 51e0: a260 st.b r3, (r2, 0x0) + 51e2: 8260 ld.b r3, (r2, 0x0) + 51e4: 1119 lrw r0, 0x20000181 // 52c8 + 51e6: 8000 ld.b r0, (r0, 0x0) + 51e8: 64c0 cmphs r0, r3 + 51ea: 0819 bt 0x521c // 521c + 51ec: 3300 movi r3, 0 + 51ee: a260 st.b r3, (r2, 0x0) + 51f0: 11b7 lrw r5, 0x20000589 // 52cc + 51f2: 8560 ld.b r3, (r5, 0x0) + 51f4: 3b40 cmpnei r3, 0 + 51f6: 0c15 bf 0x5220 // 5220 + 51f8: 8560 ld.b r3, (r5, 0x0) + 51fa: 3b41 cmpnei r3, 1 + 51fc: 0810 bt 0x521c // 521c + 51fe: 3300 movi r3, 0 + 5200: a560 st.b r3, (r5, 0x0) + 5202: 3200 movi r2, 0 + 5204: 1173 lrw r3, 0x20000058 // 52d0 + 5206: 1114 lrw r0, 0x200006b8 // 52d4 + 5208: 11b4 lrw r5, 0x20000708 // 52d8 + 520a: 11d5 lrw r6, 0x2000015e // 52dc + 520c: 9360 ld.w r3, (r3, 0x0) + 520e: b342 st.w r2, (r3, 0x8) + 5210: 1174 lrw r3, 0x20000054 // 52e0 + 5212: 9380 ld.w r4, (r3, 0x0) + 5214: 3300 movi r3, 0 + 5216: 8040 ld.b r2, (r0, 0x0) + 5218: 648c cmphs r3, r2 + 521a: 0c44 bf 0x52a2 // 52a2 + 521c: 1402 addi r14, r14, 8 + 521e: 1494 pop r4-r7, r15 + 5220: 597e addi r3, r1, 8 + 5222: 3600 movi r6, 0 + 5224: 11f0 lrw r7, 0x20000184 // 52e4 + 5226: b860 st.w r3, (r14, 0x0) + 5228: 9760 ld.w r3, (r7, 0x0) + 522a: 70d9 lsr r3, r6 + 522c: 3201 movi r2, 1 + 522e: 68c8 and r3, r2 + 5230: 3b40 cmpnei r3, 0 + 5232: 0c34 bf 0x529a // 529a + 5234: 4681 lsli r4, r6, 1 + 5236: 9860 ld.w r3, (r14, 0x0) + 5238: 60d0 addu r3, r4 + 523a: 8b00 ld.h r0, (r3, 0x0) + 523c: e3ffe1b2 bsr 0x15a0 // 15a0 <__floatunsidf> + 5240: 6cc7 mov r3, r1 + 5242: 3180 movi r1, 128 + 5244: 6c83 mov r2, r0 + 5246: 4137 lsli r1, r1, 23 + 5248: 3000 movi r0, 0 + 524a: e3ffd7b5 bsr 0x1b4 // 1b4 <__GI_pow> + 524e: 1167 lrw r3, 0x2000018a // 52e8 + 5250: 60d0 addu r3, r4 + 5252: 8b60 ld.h r3, (r3, 0x0) + 5254: 4364 lsli r3, r3, 4 + 5256: 230e addi r3, 15 + 5258: b861 st.w r3, (r14, 0x4) + 525a: e3ffdd5b bsr 0xd10 // d10 <__fixunsdfsi> + 525e: 9861 ld.w r3, (r14, 0x4) + 5260: 7cc0 mult r3, r0 + 5262: 1143 lrw r2, 0x2000073e // 52ec + 5264: 740d zexth r0, r3 + 5266: 6090 addu r2, r4 + 5268: 1162 lrw r3, 0x200007ae // 52f0 + 526a: 60d0 addu r3, r4 + 526c: aa00 st.h r0, (r2, 0x0) + 526e: 8b60 ld.h r3, (r3, 0x0) + 5270: 8a00 ld.h r0, (r2, 0x0) + 5272: 7401 zexth r0, r0 + 5274: 325f movi r2, 95 + 5276: 74cd zexth r3, r3 + 5278: 7c08 mult r0, r2 + 527a: 3164 movi r1, 100 + 527c: b861 st.w r3, (r14, 0x4) + 527e: e3ffeee1 bsr 0x3040 // 3040 <__divsi3> + 5282: 9861 ld.w r3, (r14, 0x4) + 5284: 64c1 cmplt r0, r3 + 5286: 0c0a bf 0x529a // 529a + 5288: 1075 lrw r3, 0x2000015e // 52dc + 528a: 610c addu r4, r3 + 528c: 8c60 ld.h r3, (r4, 0x0) + 528e: 3b06 cmphsi r3, 7 + 5290: 0805 bt 0x529a // 529a + 5292: 2300 addi r3, 1 + 5294: ac60 st.h r3, (r4, 0x0) + 5296: 3301 movi r3, 1 + 5298: a560 st.b r3, (r5, 0x0) + 529a: 2600 addi r6, 1 + 529c: 3e51 cmpnei r6, 17 + 529e: 0bc5 bt 0x5228 // 5228 + 52a0: 07ac br 0x51f8 // 51f8 + 52a2: 5d4c addu r2, r5, r3 + 52a4: 8240 ld.b r2, (r2, 0x0) + 52a6: 4241 lsli r2, r2, 1 + 52a8: 4322 lsli r1, r3, 2 + 52aa: 6098 addu r2, r6 + 52ac: 6050 addu r1, r4 + 52ae: 8a40 ld.h r2, (r2, 0x0) + 52b0: 91f2 ld.w r7, (r1, 0x48) + 52b2: 4254 lsli r2, r2, 20 + 52b4: 6c9c or r2, r7 + 52b6: 2300 addi r3, 1 + 52b8: b152 st.w r2, (r1, 0x48) + 52ba: 74cc zextb r3, r3 + 52bc: 07ad br 0x5216 // 5216 + 52be: 0000 bkpt + 52c0: 20000068 .long 0x20000068 + 52c4: 2000067e .long 0x2000067e + 52c8: 20000181 .long 0x20000181 + 52cc: 20000589 .long 0x20000589 + 52d0: 20000058 .long 0x20000058 + 52d4: 200006b8 .long 0x200006b8 + 52d8: 20000708 .long 0x20000708 + 52dc: 2000015e .long 0x2000015e + 52e0: 20000054 .long 0x20000054 + 52e4: 20000184 .long 0x20000184 + 52e8: 2000018a .long 0x2000018a + 52ec: 2000073e .long 0x2000073e + 52f0: 200007ae .long 0x200007ae + +Disassembly of section .text.TK_Baseline_tracking: + +000052f4 : + 52f4: 14d4 push r4-r7, r15 + 52f6: 1421 subi r14, r14, 4 + 52f8: 014a lrw r2, 0x200005fa // 564c + 52fa: 8260 ld.b r3, (r2, 0x0) + 52fc: 2300 addi r3, 1 + 52fe: 74cc zextb r3, r3 + 5300: a260 st.b r3, (r2, 0x0) + 5302: 8260 ld.b r3, (r2, 0x0) + 5304: 012c lrw r1, 0x20000181 // 5650 + 5306: 8120 ld.b r1, (r1, 0x0) + 5308: 644c cmphs r3, r1 + 530a: 0803 bt 0x5310 // 5310 + 530c: e800020f br 0x572a // 572a + 5310: 3300 movi r3, 0 + 5312: a260 st.b r3, (r2, 0x0) + 5314: 016f lrw r3, 0x200004fc // 5654 + 5316: 9360 ld.w r3, (r3, 0x0) + 5318: 3b40 cmpnei r3, 0 + 531a: 0c03 bf 0x5320 // 5320 + 531c: e8000209 br 0x572e // 572e + 5320: 0171 lrw r3, 0x2000051c // 5658 + 5322: 0150 lrw r2, 0x200001ae // 565c + 5324: 3100 movi r1, 0 + 5326: b860 st.w r3, (r14, 0x0) + 5328: 6d0f mov r4, r3 + 532a: 0111 lrw r0, 0x2000045c // 5660 + 532c: 4161 lsli r3, r1, 1 + 532e: 98a0 ld.w r5, (r14, 0x0) + 5330: 614c addu r5, r3 + 5332: 8da0 ld.h r5, (r5, 0x0) + 5334: 7557 sexth r5, r5 + 5336: 3ddf btsti r5, 31 + 5338: 0c1c bf 0x5370 // 5370 + 533a: 01d4 lrw r6, 0x200007ae // 5664 + 533c: 58ac addu r5, r0, r3 + 533e: 618c addu r6, r3 + 5340: 8da0 ld.h r5, (r5, 0x0) + 5342: 8ec0 ld.h r6, (r6, 0x0) + 5344: 7599 zexth r6, r6 + 5346: 7555 zexth r5, r5 + 5348: 615a subu r5, r6 + 534a: 8ac0 ld.h r6, (r2, 0x0) + 534c: 6595 cmplt r5, r6 + 534e: 0811 bt 0x5370 // 5370 + 5350: 01b9 lrw r5, 0x200006c0 // 5668 + 5352: 6144 addu r5, r1 + 5354: 85c0 ld.b r6, (r5, 0x0) + 5356: 2600 addi r6, 1 + 5358: 7598 zextb r6, r6 + 535a: a5c0 st.b r6, (r5, 0x0) + 535c: 01db lrw r6, 0x20000088 // 566c + 535e: 85e0 ld.b r7, (r5, 0x0) + 5360: 86ca ld.b r6, (r6, 0xa) + 5362: 65d8 cmphs r6, r7 + 5364: 0806 bt 0x5370 // 5370 + 5366: 01dc lrw r6, 0x20000568 // 5670 + 5368: 3701 movi r7, 1 + 536a: a6e0 st.b r7, (r6, 0x0) + 536c: 3600 movi r6, 0 + 536e: a5c0 st.b r6, (r5, 0x0) + 5370: 5cac addu r5, r4, r3 + 5372: 8da0 ld.h r5, (r5, 0x0) + 5374: 7557 sexth r5, r5 + 5376: 3d20 cmplti r5, 1 + 5378: 081d bt 0x53b2 // 53b2 + 537a: 02a4 lrw r5, 0x200007ae // 5664 + 537c: 614c addu r5, r3 + 537e: 58cc addu r6, r0, r3 + 5380: 8da0 ld.h r5, (r5, 0x0) + 5382: 8ec0 ld.h r6, (r6, 0x0) + 5384: 7599 zexth r6, r6 + 5386: 7555 zexth r5, r5 + 5388: 615a subu r5, r6 + 538a: 8ac0 ld.h r6, (r2, 0x0) + 538c: 46c2 lsli r6, r6, 2 + 538e: 6595 cmplt r5, r6 + 5390: 0811 bt 0x53b2 // 53b2 + 5392: 02a6 lrw r5, 0x20000628 // 5674 + 5394: 6144 addu r5, r1 + 5396: 85c0 ld.b r6, (r5, 0x0) + 5398: 2600 addi r6, 1 + 539a: 7598 zextb r6, r6 + 539c: a5c0 st.b r6, (r5, 0x0) + 539e: 02cb lrw r6, 0x20000088 // 566c + 53a0: 85e0 ld.b r7, (r5, 0x0) + 53a2: 86cb ld.b r6, (r6, 0xb) + 53a4: 65d8 cmphs r6, r7 + 53a6: 0806 bt 0x53b2 // 53b2 + 53a8: 02cd lrw r6, 0x20000568 // 5670 + 53aa: 3701 movi r7, 1 + 53ac: a6e0 st.b r7, (r6, 0x0) + 53ae: 3600 movi r6, 0 + 53b0: a5c0 st.b r6, (r5, 0x0) + 53b2: 5cac addu r5, r4, r3 + 53b4: 8da0 ld.h r5, (r5, 0x0) + 53b6: 7557 sexth r5, r5 + 53b8: 3ddf btsti r5, 31 + 53ba: 0c10 bf 0x53da // 53da + 53bc: 02f5 lrw r7, 0x200007ae // 5664 + 53be: 58cc addu r6, r0, r3 + 53c0: 61cc addu r7, r3 + 53c2: 8ea0 ld.h r5, (r6, 0x0) + 53c4: 8fe0 ld.h r7, (r7, 0x0) + 53c6: 75dd zexth r7, r7 + 53c8: 7555 zexth r5, r5 + 53ca: 615e subu r5, r7 + 53cc: 8ae0 ld.h r7, (r2, 0x0) + 53ce: 65d5 cmplt r5, r7 + 53d0: 0c05 bf 0x53da // 53da + 53d2: 8ea0 ld.h r5, (r6, 0x0) + 53d4: 2d00 subi r5, 1 + 53d6: 7555 zexth r5, r5 + 53d8: aea0 st.h r5, (r6, 0x0) + 53da: 5cac addu r5, r4, r3 + 53dc: 8da0 ld.h r5, (r5, 0x0) + 53de: 7557 sexth r5, r5 + 53e0: 3ddf btsti r5, 31 + 53e2: 0c11 bf 0x5404 // 5404 + 53e4: 02ff lrw r7, 0x200007ae // 5664 + 53e6: 58cc addu r6, r0, r3 + 53e8: 61cc addu r7, r3 + 53ea: 8ea0 ld.h r5, (r6, 0x0) + 53ec: 8fe0 ld.h r7, (r7, 0x0) + 53ee: 75dd zexth r7, r7 + 53f0: 7555 zexth r5, r5 + 53f2: 615e subu r5, r7 + 53f4: 8ae0 ld.h r7, (r2, 0x0) + 53f6: 4fe1 lsri r7, r7, 1 + 53f8: 65d5 cmplt r5, r7 + 53fa: 0805 bt 0x5404 // 5404 + 53fc: 8ea0 ld.h r5, (r6, 0x0) + 53fe: 2d01 subi r5, 2 + 5400: 7555 zexth r5, r5 + 5402: aea0 st.h r5, (r6, 0x0) + 5404: 5ccc addu r6, r4, r3 + 5406: 8ea0 ld.h r5, (r6, 0x0) + 5408: 7557 sexth r5, r5 + 540a: 3d20 cmplti r5, 1 + 540c: 080c bt 0x5424 // 5424 + 540e: 8ec0 ld.h r6, (r6, 0x0) + 5410: 8aa0 ld.h r5, (r2, 0x0) + 5412: 759b sexth r6, r6 + 5414: 4da1 lsri r5, r5, 1 + 5416: 6559 cmplt r6, r5 + 5418: 0c06 bf 0x5424 // 5424 + 541a: 58cc addu r6, r0, r3 + 541c: 8ea0 ld.h r5, (r6, 0x0) + 541e: 2500 addi r5, 1 + 5420: 7555 zexth r5, r5 + 5422: aea0 st.h r5, (r6, 0x0) + 5424: 5ccc addu r6, r4, r3 + 5426: 8ea0 ld.h r5, (r6, 0x0) + 5428: 7557 sexth r5, r5 + 542a: 3d20 cmplti r5, 1 + 542c: 0810 bt 0x544c // 544c + 542e: 8ee0 ld.h r7, (r6, 0x0) + 5430: 75df sexth r7, r7 + 5432: 8aa0 ld.h r5, (r2, 0x0) + 5434: 655d cmplt r7, r5 + 5436: 0c0b bf 0x544c // 544c + 5438: 8ec0 ld.h r6, (r6, 0x0) + 543a: 759b sexth r6, r6 + 543c: 4da1 lsri r5, r5, 1 + 543e: 6559 cmplt r6, r5 + 5440: 0806 bt 0x544c // 544c + 5442: 60c0 addu r3, r0 + 5444: 8ba0 ld.h r5, (r3, 0x0) + 5446: 2501 addi r5, 2 + 5448: 7555 zexth r5, r5 + 544a: aba0 st.h r5, (r3, 0x0) + 544c: 2100 addi r1, 1 + 544e: 3951 cmpnei r1, 17 + 5450: 2201 addi r2, 2 + 5452: 0b6d bt 0x532c // 532c + 5454: 0376 lrw r3, 0x20000490 // 5678 + 5456: 9360 ld.w r3, (r3, 0x0) + 5458: 3b40 cmpnei r3, 0 + 545a: 0980 bt 0x575a // 575a + 545c: 0377 lrw r3, 0x2000065c // 567c + 545e: 035f lrw r2, 0x200001ae // 565c + 5460: 3100 movi r1, 0 + 5462: b860 st.w r3, (r14, 0x0) + 5464: 6d0f mov r4, r3 + 5466: 0318 lrw r0, 0x20000606 // 5680 + 5468: 4161 lsli r3, r1, 1 + 546a: 98a0 ld.w r5, (r14, 0x0) + 546c: 614c addu r5, r3 + 546e: 8da0 ld.h r5, (r5, 0x0) + 5470: 7557 sexth r5, r5 + 5472: 3ddf btsti r5, 31 + 5474: 0c1c bf 0x54ac // 54ac + 5476: 03db lrw r6, 0x20000544 // 5684 + 5478: 58ac addu r5, r0, r3 + 547a: 618c addu r6, r3 + 547c: 8da0 ld.h r5, (r5, 0x0) + 547e: 8ec0 ld.h r6, (r6, 0x0) + 5480: 7599 zexth r6, r6 + 5482: 7555 zexth r5, r5 + 5484: 615a subu r5, r6 + 5486: 8ac0 ld.h r6, (r2, 0x0) + 5488: 6595 cmplt r5, r6 + 548a: 0811 bt 0x54ac // 54ac + 548c: 13bf lrw r5, 0x200006a0 // 5688 + 548e: 6144 addu r5, r1 + 5490: 85c0 ld.b r6, (r5, 0x0) + 5492: 2600 addi r6, 1 + 5494: 7598 zextb r6, r6 + 5496: a5c0 st.b r6, (r5, 0x0) + 5498: 13d5 lrw r6, 0x20000088 // 566c + 549a: 85e0 ld.b r7, (r5, 0x0) + 549c: 86ca ld.b r6, (r6, 0xa) + 549e: 65d8 cmphs r6, r7 + 54a0: 0806 bt 0x54ac // 54ac + 54a2: 13d4 lrw r6, 0x20000568 // 5670 + 54a4: 3701 movi r7, 1 + 54a6: a6e1 st.b r7, (r6, 0x1) + 54a8: 3600 movi r6, 0 + 54aa: a5c0 st.b r6, (r5, 0x0) + 54ac: 5cac addu r5, r4, r3 + 54ae: 8da0 ld.h r5, (r5, 0x0) + 54b0: 7557 sexth r5, r5 + 54b2: 3d20 cmplti r5, 1 + 54b4: 081d bt 0x54ee // 54ee + 54b6: 13b4 lrw r5, 0x20000544 // 5684 + 54b8: 614c addu r5, r3 + 54ba: 58cc addu r6, r0, r3 + 54bc: 8da0 ld.h r5, (r5, 0x0) + 54be: 8ec0 ld.h r6, (r6, 0x0) + 54c0: 7599 zexth r6, r6 + 54c2: 7555 zexth r5, r5 + 54c4: 615a subu r5, r6 + 54c6: 8ac0 ld.h r6, (r2, 0x0) + 54c8: 46c2 lsli r6, r6, 2 + 54ca: 6595 cmplt r5, r6 + 54cc: 0811 bt 0x54ee // 54ee + 54ce: 13b0 lrw r5, 0x200005a2 // 568c + 54d0: 6144 addu r5, r1 + 54d2: 85c0 ld.b r6, (r5, 0x0) + 54d4: 2600 addi r6, 1 + 54d6: 7598 zextb r6, r6 + 54d8: a5c0 st.b r6, (r5, 0x0) + 54da: 13c5 lrw r6, 0x20000088 // 566c + 54dc: 85e0 ld.b r7, (r5, 0x0) + 54de: 86cb ld.b r6, (r6, 0xb) + 54e0: 65d8 cmphs r6, r7 + 54e2: 0806 bt 0x54ee // 54ee + 54e4: 13c3 lrw r6, 0x20000568 // 5670 + 54e6: 3701 movi r7, 1 + 54e8: a6e1 st.b r7, (r6, 0x1) + 54ea: 3600 movi r6, 0 + 54ec: a5c0 st.b r6, (r5, 0x0) + 54ee: 5cac addu r5, r4, r3 + 54f0: 8da0 ld.h r5, (r5, 0x0) + 54f2: 7557 sexth r5, r5 + 54f4: 3ddf btsti r5, 31 + 54f6: 0c10 bf 0x5516 // 5516 + 54f8: 13e3 lrw r7, 0x20000544 // 5684 + 54fa: 58cc addu r6, r0, r3 + 54fc: 61cc addu r7, r3 + 54fe: 8ea0 ld.h r5, (r6, 0x0) + 5500: 8fe0 ld.h r7, (r7, 0x0) + 5502: 75dd zexth r7, r7 + 5504: 7555 zexth r5, r5 + 5506: 615e subu r5, r7 + 5508: 8ae0 ld.h r7, (r2, 0x0) + 550a: 65d5 cmplt r5, r7 + 550c: 0c05 bf 0x5516 // 5516 + 550e: 8ea0 ld.h r5, (r6, 0x0) + 5510: 2d00 subi r5, 1 + 5512: 7555 zexth r5, r5 + 5514: aea0 st.h r5, (r6, 0x0) + 5516: 5cac addu r5, r4, r3 + 5518: 8da0 ld.h r5, (r5, 0x0) + 551a: 7557 sexth r5, r5 + 551c: 3ddf btsti r5, 31 + 551e: 0c11 bf 0x5540 // 5540 + 5520: 12f9 lrw r7, 0x20000544 // 5684 + 5522: 58cc addu r6, r0, r3 + 5524: 61cc addu r7, r3 + 5526: 8ea0 ld.h r5, (r6, 0x0) + 5528: 8fe0 ld.h r7, (r7, 0x0) + 552a: 75dd zexth r7, r7 + 552c: 7555 zexth r5, r5 + 552e: 615e subu r5, r7 + 5530: 8ae0 ld.h r7, (r2, 0x0) + 5532: 4fe1 lsri r7, r7, 1 + 5534: 65d5 cmplt r5, r7 + 5536: 0805 bt 0x5540 // 5540 + 5538: 8ea0 ld.h r5, (r6, 0x0) + 553a: 2d01 subi r5, 2 + 553c: 7555 zexth r5, r5 + 553e: aea0 st.h r5, (r6, 0x0) + 5540: 5ccc addu r6, r4, r3 + 5542: 8ea0 ld.h r5, (r6, 0x0) + 5544: 7557 sexth r5, r5 + 5546: 3d20 cmplti r5, 1 + 5548: 080c bt 0x5560 // 5560 + 554a: 8ec0 ld.h r6, (r6, 0x0) + 554c: 8aa0 ld.h r5, (r2, 0x0) + 554e: 759b sexth r6, r6 + 5550: 4da1 lsri r5, r5, 1 + 5552: 6559 cmplt r6, r5 + 5554: 0c06 bf 0x5560 // 5560 + 5556: 58cc addu r6, r0, r3 + 5558: 8ea0 ld.h r5, (r6, 0x0) + 555a: 2500 addi r5, 1 + 555c: 7555 zexth r5, r5 + 555e: aea0 st.h r5, (r6, 0x0) + 5560: 5ccc addu r6, r4, r3 + 5562: 8ea0 ld.h r5, (r6, 0x0) + 5564: 7557 sexth r5, r5 + 5566: 3d20 cmplti r5, 1 + 5568: 0810 bt 0x5588 // 5588 + 556a: 8ee0 ld.h r7, (r6, 0x0) + 556c: 75df sexth r7, r7 + 556e: 8aa0 ld.h r5, (r2, 0x0) + 5570: 655d cmplt r7, r5 + 5572: 0c0b bf 0x5588 // 5588 + 5574: 8ec0 ld.h r6, (r6, 0x0) + 5576: 759b sexth r6, r6 + 5578: 4da1 lsri r5, r5, 1 + 557a: 6559 cmplt r6, r5 + 557c: 0806 bt 0x5588 // 5588 + 557e: 60c0 addu r3, r0 + 5580: 8ba0 ld.h r5, (r3, 0x0) + 5582: 2501 addi r5, 2 + 5584: 7555 zexth r5, r5 + 5586: aba0 st.h r5, (r3, 0x0) + 5588: 2100 addi r1, 1 + 558a: 3951 cmpnei r1, 17 + 558c: 2201 addi r2, 2 + 558e: 0b6d bt 0x5468 // 5468 + 5590: 1260 lrw r3, 0x20000574 // 5690 + 5592: 9360 ld.w r3, (r3, 0x0) + 5594: 3b40 cmpnei r3, 0 + 5596: 08f8 bt 0x5786 // 5786 + 5598: 117f lrw r3, 0x20000788 // 5694 + 559a: 1151 lrw r2, 0x200001ae // 565c + 559c: 3100 movi r1, 0 + 559e: b860 st.w r3, (r14, 0x0) + 55a0: 6d0f mov r4, r3 + 55a2: 111e lrw r0, 0x2000071c // 5698 + 55a4: 4161 lsli r3, r1, 1 + 55a6: 98a0 ld.w r5, (r14, 0x0) + 55a8: 614c addu r5, r3 + 55aa: 8da0 ld.h r5, (r5, 0x0) + 55ac: 7557 sexth r5, r5 + 55ae: 3ddf btsti r5, 31 + 55b0: 0c1c bf 0x55e8 // 55e8 + 55b2: 11db lrw r6, 0x2000063a // 569c + 55b4: 58ac addu r5, r0, r3 + 55b6: 618c addu r6, r3 + 55b8: 8da0 ld.h r5, (r5, 0x0) + 55ba: 8ec0 ld.h r6, (r6, 0x0) + 55bc: 7599 zexth r6, r6 + 55be: 7555 zexth r5, r5 + 55c0: 615a subu r5, r6 + 55c2: 8ac0 ld.h r6, (r2, 0x0) + 55c4: 6595 cmplt r5, r6 + 55c6: 0811 bt 0x55e8 // 55e8 + 55c8: 11b6 lrw r5, 0x20000590 // 56a0 + 55ca: 6144 addu r5, r1 + 55cc: 85c0 ld.b r6, (r5, 0x0) + 55ce: 2600 addi r6, 1 + 55d0: 7598 zextb r6, r6 + 55d2: a5c0 st.b r6, (r5, 0x0) + 55d4: 11c6 lrw r6, 0x20000088 // 566c + 55d6: 85e0 ld.b r7, (r5, 0x0) + 55d8: 86ca ld.b r6, (r6, 0xa) + 55da: 65d8 cmphs r6, r7 + 55dc: 0806 bt 0x55e8 // 55e8 + 55de: 11c5 lrw r6, 0x20000568 // 5670 + 55e0: 3701 movi r7, 1 + 55e2: a6e2 st.b r7, (r6, 0x2) + 55e4: 3600 movi r6, 0 + 55e6: a5c0 st.b r6, (r5, 0x0) + 55e8: 5cac addu r5, r4, r3 + 55ea: 8da0 ld.h r5, (r5, 0x0) + 55ec: 7557 sexth r5, r5 + 55ee: 3d20 cmplti r5, 1 + 55f0: 081d bt 0x562a // 562a + 55f2: 11ab lrw r5, 0x2000063a // 569c + 55f4: 614c addu r5, r3 + 55f6: 58cc addu r6, r0, r3 + 55f8: 8da0 ld.h r5, (r5, 0x0) + 55fa: 8ec0 ld.h r6, (r6, 0x0) + 55fc: 7599 zexth r6, r6 + 55fe: 7555 zexth r5, r5 + 5600: 615a subu r5, r6 + 5602: 8ac0 ld.h r6, (r2, 0x0) + 5604: 46c2 lsli r6, r6, 2 + 5606: 6595 cmplt r5, r6 + 5608: 0811 bt 0x562a // 562a + 560a: 11a7 lrw r5, 0x2000047e // 56a4 + 560c: 6144 addu r5, r1 + 560e: 85c0 ld.b r6, (r5, 0x0) + 5610: 2600 addi r6, 1 + 5612: 7598 zextb r6, r6 + 5614: a5c0 st.b r6, (r5, 0x0) + 5616: 10d6 lrw r6, 0x20000088 // 566c + 5618: 85e0 ld.b r7, (r5, 0x0) + 561a: 86cb ld.b r6, (r6, 0xb) + 561c: 65d8 cmphs r6, r7 + 561e: 0806 bt 0x562a // 562a + 5620: 10d4 lrw r6, 0x20000568 // 5670 + 5622: 3701 movi r7, 1 + 5624: a6e2 st.b r7, (r6, 0x2) + 5626: 3600 movi r6, 0 + 5628: a5c0 st.b r6, (r5, 0x0) + 562a: 5cac addu r5, r4, r3 + 562c: 8da0 ld.h r5, (r5, 0x0) + 562e: 7557 sexth r5, r5 + 5630: 3ddf btsti r5, 31 + 5632: 0c3f bf 0x56b0 // 56b0 + 5634: 10fa lrw r7, 0x2000063a // 569c + 5636: 58cc addu r6, r0, r3 + 5638: 61cc addu r7, r3 + 563a: 8ea0 ld.h r5, (r6, 0x0) + 563c: 8fe0 ld.h r7, (r7, 0x0) + 563e: 75dd zexth r7, r7 + 5640: 7555 zexth r5, r5 + 5642: 615e subu r5, r7 + 5644: 8ae0 ld.h r7, (r2, 0x0) + 5646: 65d5 cmplt r5, r7 + 5648: 0c34 bf 0x56b0 // 56b0 + 564a: 042f br 0x56a8 // 56a8 + 564c: 200005fa .long 0x200005fa + 5650: 20000181 .long 0x20000181 + 5654: 200004fc .long 0x200004fc + 5658: 2000051c .long 0x2000051c + 565c: 200001ae .long 0x200001ae + 5660: 2000045c .long 0x2000045c + 5664: 200007ae .long 0x200007ae + 5668: 200006c0 .long 0x200006c0 + 566c: 20000088 .long 0x20000088 + 5670: 20000568 .long 0x20000568 + 5674: 20000628 .long 0x20000628 + 5678: 20000490 .long 0x20000490 + 567c: 2000065c .long 0x2000065c + 5680: 20000606 .long 0x20000606 + 5684: 20000544 .long 0x20000544 + 5688: 200006a0 .long 0x200006a0 + 568c: 200005a2 .long 0x200005a2 + 5690: 20000574 .long 0x20000574 + 5694: 20000788 .long 0x20000788 + 5698: 2000071c .long 0x2000071c + 569c: 2000063a .long 0x2000063a + 56a0: 20000590 .long 0x20000590 + 56a4: 2000047e .long 0x2000047e + 56a8: 8ea0 ld.h r5, (r6, 0x0) + 56aa: 2d00 subi r5, 1 + 56ac: 7555 zexth r5, r5 + 56ae: aea0 st.h r5, (r6, 0x0) + 56b0: 5cac addu r5, r4, r3 + 56b2: 8da0 ld.h r5, (r5, 0x0) + 56b4: 7557 sexth r5, r5 + 56b6: 3ddf btsti r5, 31 + 56b8: 0c11 bf 0x56da // 56da + 56ba: 11ff lrw r7, 0x2000063a // 57b4 + 56bc: 58cc addu r6, r0, r3 + 56be: 61cc addu r7, r3 + 56c0: 8ea0 ld.h r5, (r6, 0x0) + 56c2: 8fe0 ld.h r7, (r7, 0x0) + 56c4: 75dd zexth r7, r7 + 56c6: 7555 zexth r5, r5 + 56c8: 615e subu r5, r7 + 56ca: 8ae0 ld.h r7, (r2, 0x0) + 56cc: 4fe1 lsri r7, r7, 1 + 56ce: 65d5 cmplt r5, r7 + 56d0: 0805 bt 0x56da // 56da + 56d2: 8ea0 ld.h r5, (r6, 0x0) + 56d4: 2d01 subi r5, 2 + 56d6: 7555 zexth r5, r5 + 56d8: aea0 st.h r5, (r6, 0x0) + 56da: 5ccc addu r6, r4, r3 + 56dc: 8ea0 ld.h r5, (r6, 0x0) + 56de: 7557 sexth r5, r5 + 56e0: 3d20 cmplti r5, 1 + 56e2: 080c bt 0x56fa // 56fa + 56e4: 8ec0 ld.h r6, (r6, 0x0) + 56e6: 8aa0 ld.h r5, (r2, 0x0) + 56e8: 759b sexth r6, r6 + 56ea: 4da1 lsri r5, r5, 1 + 56ec: 6559 cmplt r6, r5 + 56ee: 0c06 bf 0x56fa // 56fa + 56f0: 58cc addu r6, r0, r3 + 56f2: 8ea0 ld.h r5, (r6, 0x0) + 56f4: 2500 addi r5, 1 + 56f6: 7555 zexth r5, r5 + 56f8: aea0 st.h r5, (r6, 0x0) + 56fa: 5ccc addu r6, r4, r3 + 56fc: 8ea0 ld.h r5, (r6, 0x0) + 56fe: 7557 sexth r5, r5 + 5700: 3d20 cmplti r5, 1 + 5702: 0810 bt 0x5722 // 5722 + 5704: 8ee0 ld.h r7, (r6, 0x0) + 5706: 75df sexth r7, r7 + 5708: 8aa0 ld.h r5, (r2, 0x0) + 570a: 655d cmplt r7, r5 + 570c: 0c0b bf 0x5722 // 5722 + 570e: 8ec0 ld.h r6, (r6, 0x0) + 5710: 759b sexth r6, r6 + 5712: 4da1 lsri r5, r5, 1 + 5714: 6559 cmplt r6, r5 + 5716: 0806 bt 0x5722 // 5722 + 5718: 60c0 addu r3, r0 + 571a: 8ba0 ld.h r5, (r3, 0x0) + 571c: 2501 addi r5, 2 + 571e: 7555 zexth r5, r5 + 5720: aba0 st.h r5, (r3, 0x0) + 5722: 2100 addi r1, 1 + 5724: 3951 cmpnei r1, 17 + 5726: 2201 addi r2, 2 + 5728: 0b3e bt 0x55a4 // 55a4 + 572a: 1401 addi r14, r14, 4 + 572c: 1494 pop r4-r7, r15 + 572e: e3fff8a7 bsr 0x487c // 487c + 5732: 1162 lrw r3, 0x20000088 // 57b8 + 5734: 836c ld.b r3, (r3, 0xc) + 5736: 64c0 cmphs r0, r3 + 5738: 1141 lrw r2, 0x20000494 // 57bc + 573a: 0c0e bf 0x5756 // 5756 + 573c: 8260 ld.b r3, (r2, 0x0) + 573e: 74cc zextb r3, r3 + 5740: 3b01 cmphsi r3, 2 + 5742: 0c05 bf 0x574c // 574c + 5744: 107f lrw r3, 0x20000568 // 57c0 + 5746: 3201 movi r2, 1 + 5748: a340 st.b r2, (r3, 0x0) + 574a: 0685 br 0x5454 // 5454 + 574c: 8260 ld.b r3, (r2, 0x0) + 574e: 2300 addi r3, 1 + 5750: 74cc zextb r3, r3 + 5752: a260 st.b r3, (r2, 0x0) + 5754: 0680 br 0x5454 // 5454 + 5756: 3300 movi r3, 0 + 5758: 07fd br 0x5752 // 5752 + 575a: e3fff8a5 bsr 0x48a4 // 48a4 + 575e: 1077 lrw r3, 0x20000088 // 57b8 + 5760: 836c ld.b r3, (r3, 0xc) + 5762: 64c0 cmphs r0, r3 + 5764: 1056 lrw r2, 0x20000494 // 57bc + 5766: 0c0e bf 0x5782 // 5782 + 5768: 8261 ld.b r3, (r2, 0x1) + 576a: 74cc zextb r3, r3 + 576c: 3b01 cmphsi r3, 2 + 576e: 0c05 bf 0x5778 // 5778 + 5770: 1074 lrw r3, 0x20000568 // 57c0 + 5772: 3201 movi r2, 1 + 5774: a341 st.b r2, (r3, 0x1) + 5776: 070d br 0x5590 // 5590 + 5778: 8261 ld.b r3, (r2, 0x1) + 577a: 2300 addi r3, 1 + 577c: 74cc zextb r3, r3 + 577e: a261 st.b r3, (r2, 0x1) + 5780: 0708 br 0x5590 // 5590 + 5782: 3300 movi r3, 0 + 5784: 07fd br 0x577e // 577e + 5786: e3fff8a3 bsr 0x48cc // 48cc + 578a: 106c lrw r3, 0x20000088 // 57b8 + 578c: 836c ld.b r3, (r3, 0xc) + 578e: 64c0 cmphs r0, r3 + 5790: 104b lrw r2, 0x20000494 // 57bc + 5792: 0c0e bf 0x57ae // 57ae + 5794: 8262 ld.b r3, (r2, 0x2) + 5796: 74cc zextb r3, r3 + 5798: 3b01 cmphsi r3, 2 + 579a: 0c05 bf 0x57a4 // 57a4 + 579c: 1069 lrw r3, 0x20000568 // 57c0 + 579e: 3201 movi r2, 1 + 57a0: a342 st.b r2, (r3, 0x2) + 57a2: 07c4 br 0x572a // 572a + 57a4: 8262 ld.b r3, (r2, 0x2) + 57a6: 2300 addi r3, 1 + 57a8: 74cc zextb r3, r3 + 57aa: a262 st.b r3, (r2, 0x2) + 57ac: 07bf br 0x572a // 572a + 57ae: 3300 movi r3, 0 + 57b0: 07fd br 0x57aa // 57aa + 57b2: 0000 bkpt + 57b4: 2000063a .long 0x2000063a + 57b8: 20000088 .long 0x20000088 + 57bc: 20000494 .long 0x20000494 + 57c0: 20000568 .long 0x20000568 + +Disassembly of section .text.TK_result_prog: + +000057c4 : + 57c4: 14d4 push r4-r7, r15 + 57c6: 1424 subi r14, r14, 16 + 57c8: 111f lrw r0, 0x200004fc // 58c4 + 57ca: 1220 lrw r1, 0x20000490 // 58c8 + 57cc: 1240 lrw r2, 0x20000574 // 58cc + 57ce: b821 st.w r1, (r14, 0x4) + 57d0: 9060 ld.w r3, (r0, 0x0) + 57d2: 91a0 ld.w r5, (r1, 0x0) + 57d4: 6cd4 or r3, r5 + 57d6: 9280 ld.w r4, (r2, 0x0) + 57d8: 6cd0 or r3, r4 + 57da: 3b40 cmpnei r3, 0 + 57dc: b800 st.w r0, (r14, 0x0) + 57de: b842 st.w r2, (r14, 0x8) + 57e0: 119c lrw r4, 0x200005fc // 58d0 + 57e2: 0c67 bf 0x58b0 // 58b0 + 57e4: 111c lrw r0, 0x200006d4 // 58d4 + 57e6: 3500 movi r5, 0 + 57e8: 117c lrw r3, 0x2000069c // 58d8 + 57ea: b803 st.w r0, (r14, 0xc) + 57ec: 3201 movi r2, 1 + 57ee: 7094 lsl r2, r5 + 57f0: b040 st.w r2, (r0, 0x0) + 57f2: 9840 ld.w r2, (r14, 0x0) + 57f4: 9240 ld.w r2, (r2, 0x0) + 57f6: 9020 ld.w r1, (r0, 0x0) + 57f8: 6884 and r2, r1 + 57fa: b340 st.w r2, (r3, 0x0) + 57fc: 9841 ld.w r2, (r14, 0x4) + 57fe: 9240 ld.w r2, (r2, 0x0) + 5800: 9020 ld.w r1, (r0, 0x0) + 5802: 6848 and r1, r2 + 5804: 1156 lrw r2, 0x20000760 // 58dc + 5806: b220 st.w r1, (r2, 0x0) + 5808: 9822 ld.w r1, (r14, 0x8) + 580a: 9120 ld.w r1, (r1, 0x0) + 580c: 90c0 ld.w r6, (r0, 0x0) + 580e: 6984 and r6, r1 + 5810: 1134 lrw r1, 0x20000600 // 58e0 + 5812: b1c0 st.w r6, (r1, 0x0) + 5814: 93e0 ld.w r7, (r3, 0x0) + 5816: 92c0 ld.w r6, (r2, 0x0) + 5818: 659e cmpne r7, r6 + 581a: 0807 bt 0x5828 // 5828 + 581c: 92e0 ld.w r7, (r2, 0x0) + 581e: 91c0 ld.w r6, (r1, 0x0) + 5820: 659e cmpne r7, r6 + 5822: 0803 bt 0x5828 // 5828 + 5824: 9340 ld.w r2, (r3, 0x0) + 5826: 040c br 0x583e // 583e + 5828: 92c0 ld.w r6, (r2, 0x0) + 582a: 3e40 cmpnei r6, 0 + 582c: 0c29 bf 0x587e // 587e + 582e: 91c0 ld.w r6, (r1, 0x0) + 5830: 3e40 cmpnei r6, 0 + 5832: 0c26 bf 0x587e // 587e + 5834: 92e0 ld.w r7, (r2, 0x0) + 5836: 91c0 ld.w r6, (r1, 0x0) + 5838: 659e cmpne r7, r6 + 583a: 0822 bt 0x587e // 587e + 583c: 9240 ld.w r2, (r2, 0x0) + 583e: 9420 ld.w r1, (r4, 0x0) + 5840: 6c84 or r2, r1 + 5842: 2500 addi r5, 1 + 5844: 3d51 cmpnei r5, 17 + 5846: b440 st.w r2, (r4, 0x0) + 5848: 0bd2 bt 0x57ec // 57ec + 584a: 9460 ld.w r3, (r4, 0x0) + 584c: 3b40 cmpnei r3, 0 + 584e: 1146 lrw r2, 0x20000704 // 58e4 + 5850: 0c32 bf 0x58b4 // 58b4 + 5852: 9420 ld.w r1, (r4, 0x0) + 5854: 9260 ld.w r3, (r2, 0x0) + 5856: 64c6 cmpne r1, r3 + 5858: 0c06 bf 0x5864 // 5864 + 585a: 9460 ld.w r3, (r4, 0x0) + 585c: b260 st.w r3, (r2, 0x0) + 585e: 3200 movi r2, 0 + 5860: 1162 lrw r3, 0x2000051a // 58e8 + 5862: a340 st.b r2, (r3, 0x0) + 5864: e3fff7f8 bsr 0x4854 // 4854 + 5868: 1161 lrw r3, 0x20000188 // 58ec + 586a: 8360 ld.b r3, (r3, 0x0) + 586c: 640c cmphs r3, r0 + 586e: 0806 bt 0x587a // 587a + 5870: 3300 movi r3, 0 + 5872: b460 st.w r3, (r4, 0x0) + 5874: 3201 movi r2, 1 + 5876: 107d lrw r3, 0x2000051a // 58e8 + 5878: a340 st.b r2, (r3, 0x0) + 587a: 1404 addi r14, r14, 16 + 587c: 1494 pop r4-r7, r15 + 587e: 93c0 ld.w r6, (r3, 0x0) + 5880: 3e40 cmpnei r6, 0 + 5882: 0c08 bf 0x5892 // 5892 + 5884: 92c0 ld.w r6, (r2, 0x0) + 5886: 3e40 cmpnei r6, 0 + 5888: 0c05 bf 0x5892 // 5892 + 588a: 93c0 ld.w r6, (r3, 0x0) + 588c: 9240 ld.w r2, (r2, 0x0) + 588e: 649a cmpne r6, r2 + 5890: 0fca bf 0x5824 // 5824 + 5892: 9340 ld.w r2, (r3, 0x0) + 5894: 3a40 cmpnei r2, 0 + 5896: 0c08 bf 0x58a6 // 58a6 + 5898: 9140 ld.w r2, (r1, 0x0) + 589a: 3a40 cmpnei r2, 0 + 589c: 0c05 bf 0x58a6 // 58a6 + 589e: 9340 ld.w r2, (r3, 0x0) + 58a0: 9120 ld.w r1, (r1, 0x0) + 58a2: 644a cmpne r2, r1 + 58a4: 0fc0 bf 0x5824 // 5824 + 58a6: 9843 ld.w r2, (r14, 0xc) + 58a8: 9220 ld.w r1, (r2, 0x0) + 58aa: 9440 ld.w r2, (r4, 0x0) + 58ac: 6885 andn r2, r1 + 58ae: 07ca br 0x5842 // 5842 + 58b0: b460 st.w r3, (r4, 0x0) + 58b2: 07cc br 0x584a // 584a + 58b4: b260 st.w r3, (r2, 0x0) + 58b6: 3100 movi r1, 0 + 58b8: 104c lrw r2, 0x2000051a // 58e8 + 58ba: a220 st.b r1, (r2, 0x0) + 58bc: 104d lrw r2, 0x200005f4 // 58f0 + 58be: b260 st.w r3, (r2, 0x0) + 58c0: 07dd br 0x587a // 587a + 58c2: 0000 bkpt + 58c4: 200004fc .long 0x200004fc + 58c8: 20000490 .long 0x20000490 + 58cc: 20000574 .long 0x20000574 + 58d0: 200005fc .long 0x200005fc + 58d4: 200006d4 .long 0x200006d4 + 58d8: 2000069c .long 0x2000069c + 58dc: 20000760 .long 0x20000760 + 58e0: 20000600 .long 0x20000600 + 58e4: 20000704 .long 0x20000704 + 58e8: 2000051a .long 0x2000051a + 58ec: 20000188 .long 0x20000188 + 58f0: 200005f4 .long 0x200005f4 + +Disassembly of section .text.TKEYIntHandler: + +000058f4 : + 58f4: 1460 nie + 58f6: 1462 ipush + 58f8: 14d1 push r4, r15 + 58fa: 1183 lrw r4, 0x20000068 // 5984 + 58fc: 8460 ld.b r3, (r4, 0x0) + 58fe: 3b40 cmpnei r3, 0 + 5900: 0815 bt 0x592a // 592a + 5902: 3301 movi r3, 1 + 5904: a460 st.b r3, (r4, 0x0) + 5906: 1161 lrw r3, 0x20000508 // 5988 + 5908: 8360 ld.b r3, (r3, 0x0) + 590a: 3b41 cmpnei r3, 1 + 590c: 080f bt 0x592a // 592a + 590e: 1140 lrw r2, 0x20000719 // 598c + 5910: 8260 ld.b r3, (r2, 0x0) + 5912: 2300 addi r3, 1 + 5914: 74cc zextb r3, r3 + 5916: a260 st.b r3, (r2, 0x0) + 5918: 8260 ld.b r3, (r2, 0x0) + 591a: 3b43 cmpnei r3, 3 + 591c: 0803 bt 0x5922 // 5922 + 591e: 3300 movi r3, 0 + 5920: a260 st.b r3, (r2, 0x0) + 5922: e3fff733 bsr 0x4788 // 4788 + 5926: 3301 movi r3, 1 + 5928: a461 st.b r3, (r4, 0x1) + 592a: 107a lrw r3, 0x20000058 // 5990 + 592c: 3101 movi r1, 1 + 592e: 9360 ld.w r3, (r3, 0x0) + 5930: 934a ld.w r2, (r3, 0x28) + 5932: 6884 and r2, r1 + 5934: 3a40 cmpnei r2, 0 + 5936: 0c02 bf 0x593a // 593a + 5938: b32c st.w r1, (r3, 0x30) + 593a: 934a ld.w r2, (r3, 0x28) + 593c: 3102 movi r1, 2 + 593e: 6884 and r2, r1 + 5940: 3a40 cmpnei r2, 0 + 5942: 0c02 bf 0x5946 // 5946 + 5944: b32c st.w r1, (r3, 0x30) + 5946: 934a ld.w r2, (r3, 0x28) + 5948: 3104 movi r1, 4 + 594a: 6884 and r2, r1 + 594c: 3a40 cmpnei r2, 0 + 594e: 0c02 bf 0x5952 // 5952 + 5950: b32c st.w r1, (r3, 0x30) + 5952: 934a ld.w r2, (r3, 0x28) + 5954: 3108 movi r1, 8 + 5956: 6884 and r2, r1 + 5958: 3a40 cmpnei r2, 0 + 595a: 0c02 bf 0x595e // 595e + 595c: b32c st.w r1, (r3, 0x30) + 595e: 934a ld.w r2, (r3, 0x28) + 5960: 3110 movi r1, 16 + 5962: 6884 and r2, r1 + 5964: 3a40 cmpnei r2, 0 + 5966: 0c02 bf 0x596a // 596a + 5968: b32c st.w r1, (r3, 0x30) + 596a: 934a ld.w r2, (r3, 0x28) + 596c: 3120 movi r1, 32 + 596e: 6884 and r2, r1 + 5970: 3a40 cmpnei r2, 0 + 5972: 0c02 bf 0x5976 // 5976 + 5974: b32c st.w r1, (r3, 0x30) + 5976: d9ee2001 ld.w r15, (r14, 0x4) + 597a: 9880 ld.w r4, (r14, 0x0) + 597c: 1402 addi r14, r14, 8 + 597e: 1463 ipop + 5980: 1461 nir + 5982: 0000 bkpt + 5984: 20000068 .long 0x20000068 + 5988: 20000508 .long 0x20000508 + 598c: 20000719 .long 0x20000719 + 5990: 20000058 .long 0x20000058 + +Disassembly of section .text.CORETHandler: + +00005994 : + 5994: 1460 nie + 5996: 1462 ipush + 5998: 14d3 push r4-r6, r15 + 599a: 1269 lrw r3, 0x20000064 // 5abc + 599c: 3400 movi r4, 0 + 599e: 9360 ld.w r3, (r3, 0x0) + 59a0: b386 st.w r4, (r3, 0x18) + 59a2: 1268 lrw r3, 0x20000508 // 5ac0 + 59a4: 8360 ld.b r3, (r3, 0x0) + 59a6: 3b41 cmpnei r3, 1 + 59a8: 0840 bt 0x5a28 // 5a28 + 59aa: e3fff7a5 bsr 0x48f4 // 48f4 + 59ae: e3fff7d7 bsr 0x495c // 495c + 59b2: e3fffc0d bsr 0x51cc // 51cc + 59b6: e3fffc9f bsr 0x52f4 // 52f4 + 59ba: e3fff653 bsr 0x4660 // 4660 + 59be: e3ffff03 bsr 0x57c4 // 57c4 + 59c2: 1261 lrw r3, 0x200005fc // 5ac4 + 59c4: 9360 ld.w r3, (r3, 0x0) + 59c6: 3b40 cmpnei r3, 0 + 59c8: 0c12 bf 0x59ec // 59ec + 59ca: 1260 lrw r3, 0x20000158 // 5ac8 + 59cc: 9340 ld.w r2, (r3, 0x0) + 59ce: 3a40 cmpnei r2, 0 + 59d0: 0c0e bf 0x59ec // 59ec + 59d2: 117f lrw r3, 0x200005f4 // 5acc + 59d4: 3064 movi r0, 100 + 59d6: 9320 ld.w r1, (r3, 0x0) + 59d8: 2100 addi r1, 1 + 59da: b320 st.w r1, (r3, 0x0) + 59dc: 9320 ld.w r1, (r3, 0x0) + 59de: 7c80 mult r2, r0 + 59e0: 6448 cmphs r2, r1 + 59e2: 0805 bt 0x59ec // 59ec + 59e4: 115b lrw r2, 0x200005a1 // 5ad0 + 59e6: 3101 movi r1, 1 + 59e8: a220 st.b r1, (r2, 0x0) + 59ea: b380 st.w r4, (r3, 0x0) + 59ec: 117a lrw r3, 0x20000150 // 5ad4 + 59ee: 8340 ld.b r2, (r3, 0x0) + 59f0: 3a41 cmpnei r2, 1 + 59f2: 0823 bt 0x5a38 // 5a38 + 59f4: 1139 lrw r1, 0x200004fc // 5ad8 + 59f6: 115a lrw r2, 0x20000490 // 5adc + 59f8: 9100 ld.w r0, (r1, 0x0) + 59fa: 9260 ld.w r3, (r2, 0x0) + 59fc: 64c2 cmpne r0, r3 + 59fe: 1179 lrw r3, 0x20000698 // 5ae0 + 5a00: 080a bt 0x5a14 // 5a14 + 5a02: 9280 ld.w r4, (r2, 0x0) + 5a04: 1158 lrw r2, 0x20000574 // 5ae4 + 5a06: 9200 ld.w r0, (r2, 0x0) + 5a08: 6412 cmpne r4, r0 + 5a0a: 0805 bt 0x5a14 // 5a14 + 5a0c: 9120 ld.w r1, (r1, 0x0) + 5a0e: 9240 ld.w r2, (r2, 0x0) + 5a10: 6486 cmpne r1, r2 + 5a12: 0c09 bf 0x5a24 // 5a24 + 5a14: 9340 ld.w r2, (r3, 0x0) + 5a16: 2200 addi r2, 1 + 5a18: b340 st.w r2, (r3, 0x0) + 5a1a: 1154 lrw r2, 0x20000088 // 5ae8 + 5a1c: 823c ld.b r1, (r2, 0x1c) + 5a1e: 9340 ld.w r2, (r3, 0x0) + 5a20: 6484 cmphs r1, r2 + 5a22: 0803 bt 0x5a28 // 5a28 + 5a24: 3200 movi r2, 0 + 5a26: b340 st.w r2, (r3, 0x0) + 5a28: d9ee2003 ld.w r15, (r14, 0xc) + 5a2c: 98c2 ld.w r6, (r14, 0x8) + 5a2e: 98a1 ld.w r5, (r14, 0x4) + 5a30: 9880 ld.w r4, (r14, 0x0) + 5a32: 1404 addi r14, r14, 16 + 5a34: 1463 ipop + 5a36: 1461 nir + 5a38: 83a0 ld.b r5, (r3, 0x0) + 5a3a: 7554 zextb r5, r5 + 5a3c: 3d40 cmpnei r5, 0 + 5a3e: 0bf5 bt 0x5a28 // 5a28 + 5a40: 1166 lrw r3, 0x200004fc // 5ad8 + 5a42: 1147 lrw r2, 0x20000490 // 5adc + 5a44: 9300 ld.w r0, (r3, 0x0) + 5a46: 9220 ld.w r1, (r2, 0x0) + 5a48: 6442 cmpne r0, r1 + 5a4a: 1127 lrw r1, 0x20000574 // 5ae4 + 5a4c: 1105 lrw r0, 0x20000698 // 5ae0 + 5a4e: 0c33 bf 0x5ab4 // 5ab4 + 5a50: 92c0 ld.w r6, (r2, 0x0) + 5a52: 9180 ld.w r4, (r1, 0x0) + 5a54: 651a cmpne r6, r4 + 5a56: 0c2f bf 0x5ab4 // 5ab4 + 5a58: 93c0 ld.w r6, (r3, 0x0) + 5a5a: 9180 ld.w r4, (r1, 0x0) + 5a5c: 651a cmpne r6, r4 + 5a5e: 0c2b bf 0x5ab4 // 5ab4 + 5a60: 9080 ld.w r4, (r0, 0x0) + 5a62: 2400 addi r4, 1 + 5a64: b080 st.w r4, (r0, 0x0) + 5a66: 1181 lrw r4, 0x20000088 // 5ae8 + 5a68: 84dc ld.b r6, (r4, 0x1c) + 5a6a: 9080 ld.w r4, (r0, 0x0) + 5a6c: 6518 cmphs r6, r4 + 5a6e: 0802 bt 0x5a72 // 5a72 + 5a70: b0a0 st.w r5, (r0, 0x0) + 5a72: 9380 ld.w r4, (r3, 0x0) + 5a74: 9200 ld.w r0, (r2, 0x0) + 5a76: 6412 cmpne r4, r0 + 5a78: 101d lrw r0, 0x200006d8 // 5aec + 5a7a: 0c04 bf 0x5a82 // 5a82 + 5a7c: 9180 ld.w r4, (r1, 0x0) + 5a7e: 3c40 cmpnei r4, 0 + 5a80: 0c0f bf 0x5a9e // 5a9e + 5a82: 93a0 ld.w r5, (r3, 0x0) + 5a84: 9180 ld.w r4, (r1, 0x0) + 5a86: 6516 cmpne r5, r4 + 5a88: 0c04 bf 0x5a90 // 5a90 + 5a8a: 9280 ld.w r4, (r2, 0x0) + 5a8c: 3c40 cmpnei r4, 0 + 5a8e: 0c08 bf 0x5a9e // 5a9e + 5a90: 9120 ld.w r1, (r1, 0x0) + 5a92: 9240 ld.w r2, (r2, 0x0) + 5a94: 6486 cmpne r1, r2 + 5a96: 0c0c bf 0x5aae // 5aae + 5a98: 9360 ld.w r3, (r3, 0x0) + 5a9a: 3b40 cmpnei r3, 0 + 5a9c: 0809 bt 0x5aae // 5aae + 5a9e: 9060 ld.w r3, (r0, 0x0) + 5aa0: 2300 addi r3, 1 + 5aa2: b060 st.w r3, (r0, 0x0) + 5aa4: 1071 lrw r3, 0x20000088 // 5ae8 + 5aa6: 835c ld.b r2, (r3, 0x1c) + 5aa8: 9060 ld.w r3, (r0, 0x0) + 5aaa: 64c8 cmphs r2, r3 + 5aac: 0bbe bt 0x5a28 // 5a28 + 5aae: 3300 movi r3, 0 + 5ab0: b060 st.w r3, (r0, 0x0) + 5ab2: 07bb br 0x5a28 // 5a28 + 5ab4: 3400 movi r4, 0 + 5ab6: b080 st.w r4, (r0, 0x0) + 5ab8: 07dd br 0x5a72 // 5a72 + 5aba: 0000 bkpt + 5abc: 20000064 .long 0x20000064 + 5ac0: 20000508 .long 0x20000508 + 5ac4: 200005fc .long 0x200005fc + 5ac8: 20000158 .long 0x20000158 + 5acc: 200005f4 .long 0x200005f4 + 5ad0: 200005a1 .long 0x200005a1 + 5ad4: 20000150 .long 0x20000150 + 5ad8: 200004fc .long 0x200004fc + 5adc: 20000490 .long 0x20000490 + 5ae0: 20000698 .long 0x20000698 + 5ae4: 20000574 .long 0x20000574 + 5ae8: 20000088 .long 0x20000088 + 5aec: 200006d8 .long 0x200006d8 + +Disassembly of section .text.std_clk_calib: + +00005af0 : + 5af0: 14d4 push r4-r7, r15 + 5af2: 142d subi r14, r14, 52 + 5af4: 3201 movi r2, 1 + 5af6: 03ce lrw r6, 0x2000005c // 5d38 + 5af8: 6cc3 mov r3, r0 + 5afa: dc4e000a st.b r2, (r14, 0xa) + 5afe: 9640 ld.w r2, (r6, 0x0) + 5b00: 9247 ld.w r2, (r2, 0x1c) + 5b02: 7488 zextb r2, r2 + 5b04: dc4e0009 st.b r2, (r14, 0x9) + 5b08: d84e0009 ld.b r2, (r14, 0x9) + 5b0c: 3a40 cmpnei r2, 0 + 5b0e: 0c08 bf 0x5b1e // 5b1e + 5b10: d84e0009 ld.b r2, (r14, 0x9) + 5b14: 3a42 cmpnei r2, 2 + 5b16: 0c04 bf 0x5b1e // 5b1e + 5b18: 3000 movi r0, 0 + 5b1a: 140d addi r14, r14, 52 + 5b1c: 1494 pop r4-r7, r15 + 5b1e: 0397 lrw r4, 0x2000000c // 5d3c + 5b20: 3209 movi r2, 9 + 5b22: 9400 ld.w r0, (r4, 0x0) + 5b24: 3b40 cmpnei r3, 0 + 5b26: b041 st.w r2, (r0, 0x4) + 5b28: 0857 bt 0x5bd6 // 5bd6 + 5b2a: 3307 movi r3, 7 + 5b2c: dc6e000b st.b r3, (r14, 0xb) + 5b30: 037b lrw r3, 0x2dc6c00 // 5d40 + 5b32: b863 st.w r3, (r14, 0xc) + 5b34: 3380 movi r3, 128 + 5b36: 4362 lsli r3, r3, 2 + 5b38: b867 st.w r3, (r14, 0x1c) + 5b3a: d86e000b ld.b r3, (r14, 0xb) + 5b3e: 74cc zextb r3, r3 + 5b40: b062 st.w r3, (r0, 0x8) + 5b42: 037e lrw r3, 0xffff // 5d44 + 5b44: b063 st.w r3, (r0, 0xc) + 5b46: 3201 movi r2, 1 + 5b48: 3101 movi r1, 1 + 5b4a: 03bf lrw r5, 0x20000014 // 5d48 + 5b4c: e3ffe322 bsr 0x2190 // 2190 + 5b50: 95e0 ld.w r7, (r5, 0x0) + 5b52: 137f lrw r3, 0xbe9c0005 // 5d4c + 5b54: b760 st.w r3, (r7, 0x0) + 5b56: 135f lrw r2, 0x30010 // 5d50 + 5b58: 3300 movi r3, 0 + 5b5a: b762 st.w r3, (r7, 0x8) + 5b5c: b743 st.w r2, (r7, 0xc) + 5b5e: 32d8 movi r2, 216 + 5b60: b745 st.w r2, (r7, 0x14) + 5b62: 974f ld.w r2, (r7, 0x3c) + 5b64: 3aa2 bseti r2, 2 + 5b66: b74f st.w r2, (r7, 0x3c) + 5b68: 9803 ld.w r0, (r14, 0xc) + 5b6a: d82e000b ld.b r1, (r14, 0xb) + 5b6e: 327d movi r2, 125 + 5b70: 2100 addi r1, 1 + 5b72: 7c48 mult r1, r2 + 5b74: b861 st.w r3, (r14, 0x4) + 5b76: e3ffea77 bsr 0x3064 // 3064 <__udivsi3> + 5b7a: b804 st.w r0, (r14, 0x10) + 5b7c: 32fa movi r2, 250 + 5b7e: 9824 ld.w r1, (r14, 0x10) + 5b80: 4242 lsli r2, r2, 2 + 5b82: 6448 cmphs r2, r1 + 5b84: 0bca bt 0x5b18 // 5b18 + 5b86: 9844 ld.w r2, (r14, 0x10) + 5b88: 3178 movi r1, 120 + 5b8a: 9804 ld.w r0, (r14, 0x10) + 5b8c: b840 st.w r2, (r14, 0x0) + 5b8e: e3ffea6b bsr 0x3064 // 3064 <__udivsi3> + 5b92: 9840 ld.w r2, (r14, 0x0) + 5b94: 6082 subu r2, r0 + 5b96: b845 st.w r2, (r14, 0x14) + 5b98: 9804 ld.w r0, (r14, 0x10) + 5b9a: 3178 movi r1, 120 + 5b9c: 9844 ld.w r2, (r14, 0x10) + 5b9e: b840 st.w r2, (r14, 0x0) + 5ba0: e3ffea62 bsr 0x3064 // 3064 <__udivsi3> + 5ba4: 9840 ld.w r2, (r14, 0x0) + 5ba6: 6008 addu r0, r2 + 5ba8: b806 st.w r0, (r14, 0x18) + 5baa: c0807020 psrclr ie + 5bae: 9640 ld.w r2, (r6, 0x0) + 5bb0: 9254 ld.w r2, (r2, 0x50) + 5bb2: b848 st.w r2, (r14, 0x20) + 5bb4: 9861 ld.w r3, (r14, 0x4) + 5bb6: 9440 ld.w r2, (r4, 0x0) + 5bb8: b260 st.w r3, (r2, 0x0) + 5bba: b761 st.w r3, (r7, 0x4) + 5bbc: d86e000a ld.b r3, (r14, 0xa) + 5bc0: 3b40 cmpnei r3, 0 + 5bc2: 083e bt 0x5c3e // 5c3e + 5bc4: e3ffe298 bsr 0x20f4 // 20f4 + 5bc8: 9400 ld.w r0, (r4, 0x0) + 5bca: e3ffe2b9 bsr 0x213c // 213c + 5bce: c1807420 psrset ee, ie + 5bd2: 3001 movi r0, 1 + 5bd4: 07a3 br 0x5b1a // 5b1a + 5bd6: 3b41 cmpnei r3, 1 + 5bd8: 0806 bt 0x5be4 // 5be4 + 5bda: 3303 movi r3, 3 + 5bdc: dc6e000b st.b r3, (r14, 0xb) + 5be0: 127d lrw r3, 0x16e3600 // 5d54 + 5be2: 07a8 br 0x5b32 // 5b32 + 5be4: 3b42 cmpnei r3, 2 + 5be6: 0806 bt 0x5bf2 // 5bf2 + 5be8: 3301 movi r3, 1 + 5bea: dc6e000b st.b r3, (r14, 0xb) + 5bee: 127b lrw r3, 0xb71b00 // 5d58 + 5bf0: 07a1 br 0x5b32 // 5b32 + 5bf2: 3b43 cmpnei r3, 3 + 5bf4: 0806 bt 0x5c00 // 5c00 + 5bf6: 3300 movi r3, 0 + 5bf8: dc6e000b st.b r3, (r14, 0xb) + 5bfc: 1278 lrw r3, 0x5b8d80 // 5d5c + 5bfe: 079a br 0x5b32 // 5b32 + 5c00: 3b44 cmpnei r3, 4 + 5c02: 0809 bt 0x5c14 // 5c14 + 5c04: 3300 movi r3, 0 + 5c06: dc6e000b st.b r3, (r14, 0xb) + 5c0a: 1276 lrw r3, 0x54c720 // 5d60 + 5c0c: b863 st.w r3, (r14, 0xc) + 5c0e: 3380 movi r3, 128 + 5c10: 4369 lsli r3, r3, 9 + 5c12: 0793 br 0x5b38 // 5b38 + 5c14: 3b45 cmpnei r3, 5 + 5c16: 0806 bt 0x5c22 // 5c22 + 5c18: 3300 movi r3, 0 + 5c1a: dc6e000b st.b r3, (r14, 0xb) + 5c1e: 1272 lrw r3, 0x3ffed0 // 5d64 + 5c20: 07f6 br 0x5c0c // 5c0c + 5c22: 3b46 cmpnei r3, 6 + 5c24: 0806 bt 0x5c30 // 5c30 + 5c26: 3300 movi r3, 0 + 5c28: dc6e000b st.b r3, (r14, 0xb) + 5c2c: 126f lrw r3, 0x1fff68 // 5d68 + 5c2e: 07ef br 0x5c0c // 5c0c + 5c30: 3b47 cmpnei r3, 7 + 5c32: 0b84 bt 0x5b3a // 5b3a + 5c34: 3300 movi r3, 0 + 5c36: dc6e000b st.b r3, (r14, 0xb) + 5c3a: 126d lrw r3, 0x1ffb8 // 5d6c + 5c3c: 07e8 br 0x5c0c // 5c0c + 5c3e: 9560 ld.w r3, (r5, 0x0) + 5c40: 3101 movi r1, 1 + 5c42: 9440 ld.w r2, (r4, 0x0) + 5c44: b321 st.w r1, (r3, 0x4) + 5c46: b220 st.w r1, (r2, 0x0) + 5c48: 3100 movi r1, 0 + 5c4a: b327 st.w r1, (r3, 0x1c) + 5c4c: 3004 movi r0, 4 + 5c4e: b225 st.w r1, (r2, 0x14) + 5c50: 932e ld.w r1, (r3, 0x38) + 5c52: 6840 and r1, r0 + 5c54: 3940 cmpnei r1, 0 + 5c56: 0ffd bf 0x5c50 // 5c50 + 5c58: 9225 ld.w r1, (r2, 0x14) + 5c5a: b82a st.w r1, (r14, 0x28) + 5c5c: 3100 movi r1, 0 + 5c5e: b310 st.w r0, (r3, 0x40) + 5c60: b327 st.w r1, (r3, 0x1c) + 5c62: 3004 movi r0, 4 + 5c64: b225 st.w r1, (r2, 0x14) + 5c66: 932e ld.w r1, (r3, 0x38) + 5c68: 6840 and r1, r0 + 5c6a: 3940 cmpnei r1, 0 + 5c6c: 0ffd bf 0x5c66 // 5c66 + 5c6e: 9225 ld.w r1, (r2, 0x14) + 5c70: b82b st.w r1, (r14, 0x2c) + 5c72: 3100 movi r1, 0 + 5c74: b310 st.w r0, (r3, 0x40) + 5c76: b327 st.w r1, (r3, 0x1c) + 5c78: 3004 movi r0, 4 + 5c7a: b225 st.w r1, (r2, 0x14) + 5c7c: 932e ld.w r1, (r3, 0x38) + 5c7e: 6840 and r1, r0 + 5c80: 3940 cmpnei r1, 0 + 5c82: 0ffd bf 0x5c7c // 5c7c + 5c84: 9225 ld.w r1, (r2, 0x14) + 5c86: b82c st.w r1, (r14, 0x30) + 5c88: b310 st.w r0, (r3, 0x40) + 5c8a: 982b ld.w r1, (r14, 0x2c) + 5c8c: 980c ld.w r0, (r14, 0x30) + 5c8e: 6040 addu r1, r0 + 5c90: b829 st.w r1, (r14, 0x24) + 5c92: 9829 ld.w r1, (r14, 0x24) + 5c94: 4921 lsri r1, r1, 1 + 5c96: b829 st.w r1, (r14, 0x24) + 5c98: 3100 movi r1, 0 + 5c9a: b321 st.w r1, (r3, 0x4) + 5c9c: b220 st.w r1, (r2, 0x0) + 5c9e: b327 st.w r1, (r3, 0x1c) + 5ca0: b225 st.w r1, (r2, 0x14) + 5ca2: d86e0009 ld.b r3, (r14, 0x9) + 5ca6: 3b42 cmpnei r3, 2 + 5ca8: 9849 ld.w r2, (r14, 0x24) + 5caa: 082c bt 0x5d02 // 5d02 + 5cac: 1171 lrw r3, 0x7ff // 5d70 + 5cae: 648c cmphs r3, r2 + 5cb0: 0c03 bf 0x5cb6 // 5cb6 + 5cb2: 3300 movi r3, 0 + 5cb4: 040f br 0x5cd2 // 5cd2 + 5cb6: 9849 ld.w r2, (r14, 0x24) + 5cb8: 9866 ld.w r3, (r14, 0x18) + 5cba: 648c cmphs r3, r2 + 5cbc: 080e bt 0x5cd8 // 5cd8 + 5cbe: 9868 ld.w r3, (r14, 0x20) + 5cc0: 9847 ld.w r2, (r14, 0x1c) + 5cc2: 60ca subu r3, r2 + 5cc4: b868 st.w r3, (r14, 0x20) + 5cc6: 32fe movi r2, 254 + 5cc8: 9868 ld.w r3, (r14, 0x20) + 5cca: 4248 lsli r2, r2, 8 + 5ccc: 68c8 and r3, r2 + 5cce: 3b40 cmpnei r3, 0 + 5cd0: 0812 bt 0x5cf4 // 5cf4 + 5cd2: dc6e000a st.b r3, (r14, 0xa) + 5cd6: 0721 br 0x5b18 // 5b18 + 5cd8: 9849 ld.w r2, (r14, 0x24) + 5cda: 9865 ld.w r3, (r14, 0x14) + 5cdc: 64c8 cmphs r2, r3 + 5cde: 0829 bt 0x5d30 // 5d30 + 5ce0: 9868 ld.w r3, (r14, 0x20) + 5ce2: 9847 ld.w r2, (r14, 0x1c) + 5ce4: 60c8 addu r3, r2 + 5ce6: b868 st.w r3, (r14, 0x20) + 5ce8: 33fe movi r3, 254 + 5cea: 9848 ld.w r2, (r14, 0x20) + 5cec: 4368 lsli r3, r3, 8 + 5cee: 688c and r2, r3 + 5cf0: 64ca cmpne r2, r3 + 5cf2: 0fe0 bf 0x5cb2 // 5cb2 + 5cf4: 9660 ld.w r3, (r6, 0x0) + 5cf6: 9848 ld.w r2, (r14, 0x20) + 5cf8: b354 st.w r2, (r3, 0x50) + 5cfa: 3001 movi r0, 1 + 5cfc: e3ffe3c0 bsr 0x247c // 247c + 5d00: 075e br 0x5bbc // 5bbc + 5d02: 9866 ld.w r3, (r14, 0x18) + 5d04: 648c cmphs r3, r2 + 5d06: 0809 bt 0x5d18 // 5d18 + 5d08: 9868 ld.w r3, (r14, 0x20) + 5d0a: 9847 ld.w r2, (r14, 0x1c) + 5d0c: 60ca subu r3, r2 + 5d0e: b868 st.w r3, (r14, 0x20) + 5d10: 32ff movi r2, 255 + 5d12: 9868 ld.w r3, (r14, 0x20) + 5d14: 4250 lsli r2, r2, 16 + 5d16: 07db br 0x5ccc // 5ccc + 5d18: 9849 ld.w r2, (r14, 0x24) + 5d1a: 9865 ld.w r3, (r14, 0x14) + 5d1c: 64c8 cmphs r2, r3 + 5d1e: 0809 bt 0x5d30 // 5d30 + 5d20: 9868 ld.w r3, (r14, 0x20) + 5d22: 9847 ld.w r2, (r14, 0x1c) + 5d24: 60c8 addu r3, r2 + 5d26: b868 st.w r3, (r14, 0x20) + 5d28: 33ff movi r3, 255 + 5d2a: 9848 ld.w r2, (r14, 0x20) + 5d2c: 4370 lsli r3, r3, 16 + 5d2e: 07e0 br 0x5cee // 5cee + 5d30: 3300 movi r3, 0 + 5d32: dc6e000a st.b r3, (r14, 0xa) + 5d36: 07e2 br 0x5cfa // 5cfa + 5d38: 2000005c .long 0x2000005c + 5d3c: 2000000c .long 0x2000000c + 5d40: 02dc6c00 .long 0x02dc6c00 + 5d44: 0000ffff .long 0x0000ffff + 5d48: 20000014 .long 0x20000014 + 5d4c: be9c0005 .long 0xbe9c0005 + 5d50: 00030010 .long 0x00030010 + 5d54: 016e3600 .long 0x016e3600 + 5d58: 00b71b00 .long 0x00b71b00 + 5d5c: 005b8d80 .long 0x005b8d80 + 5d60: 0054c720 .long 0x0054c720 + 5d64: 003ffed0 .long 0x003ffed0 + 5d68: 001fff68 .long 0x001fff68 + 5d6c: 0001ffb8 .long 0x0001ffb8 + 5d70: 000007ff .long 0x000007ff diff --git a/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH_V01.map b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH_V01.map new file mode 100644 index 0000000..d29f9ed --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Lst/T1_TC_34650_ZH_V01.map @@ -0,0 +1,2391 @@ +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: 349696 (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: 172 + Section header string table index: 169 + +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.EXI3_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_DeInit PROGBITS 00001ddc 002ddc 000064 00 AX 0 0 4 + [23] .text.GPIO_Init PROGBITS 00001e40 002e40 0000e0 00 AX 0 0 4 + [24] .text.GPIO_PullHi PROGBITS 00001f20 002f20 000014 00 AX 0 0 2 + [25] .text.GPIO_DriveS PROGBITS 00001f34 002f34 00000e 00 AX 0 0 2 + [26] .text.GPIO_IntGro PROGBITS 00001f44 002f44 00010c 00 AX 0 0 4 + [27] .text.GPIOB0_EXI_ PROGBITS 00002050 003050 00006c 00 AX 0 0 4 + [28] .text.GPIO_Write_ PROGBITS 000020bc 0030bc 000008 00 AX 0 0 2 + [29] .text.GPIO_Write_ PROGBITS 000020c4 0030c4 000008 00 AX 0 0 2 + [30] .text.GPIO_Revers PROGBITS 000020cc 0030cc 000016 00 AX 0 0 2 + [31] .text.GPIO_Read_S PROGBITS 000020e2 0030e2 000010 00 AX 0 0 2 + [32] .text.LPT_Soft_Re PROGBITS 000020f4 0030f4 000014 00 AX 0 0 4 + [33] .text.WWDT_CNT_Lo PROGBITS 00002108 003108 000010 00 AX 0 0 4 + [34] .text.BT_DeInit PROGBITS 00002118 003118 00001c 00 AX 0 0 2 + [35] .text.BT_Start PROGBITS 00002134 003134 000008 00 AX 0 0 2 + [36] .text.BT_Soft_Res PROGBITS 0000213c 00313c 00000a 00 AX 0 0 2 + [37] .text.BT_Configur PROGBITS 00002146 003146 000018 00 AX 0 0 2 + [38] .text.BT_ControlS PROGBITS 0000215e 00315e 00002c 00 AX 0 0 2 + [39] .text.BT_Period_C PROGBITS 0000218a 00318a 000006 00 AX 0 0 2 + [40] .text.BT_ConfigIn PROGBITS 00002190 003190 000012 00 AX 0 0 2 + [41] .text.BT1_INT_ENA PROGBITS 000021a4 0031a4 000010 00 AX 0 0 4 + [42] .text.UART0_DeIni PROGBITS 000021b4 0031b4 000018 00 AX 0 0 4 + [43] .text.UART1_DeIni PROGBITS 000021cc 0031cc 000018 00 AX 0 0 4 + [44] .text.UART2_DeIni PROGBITS 000021e4 0031e4 000018 00 AX 0 0 4 + [45] .text.UART1_Int_E PROGBITS 000021fc 0031fc 00001c 00 AX 0 0 4 + [46] .text.UART2_Int_E PROGBITS 00002218 003218 00001c 00 AX 0 0 4 + [47] .text.UART_IO_Ini PROGBITS 00002234 003234 0000ec 00 AX 0 0 4 + [48] .text.UARTInitRxT PROGBITS 00002320 003320 000010 00 AX 0 0 4 + [49] .text.UARTTransmi PROGBITS 00002330 003330 00001e 00 AX 0 0 2 + [50] .text.EPT_Stop PROGBITS 00002350 003350 000028 00 AX 0 0 4 + [51] .text.Page_Progra PROGBITS 00002378 003378 0000a0 00 AX 0 0 4 + [52] .text.ReadDataArr PROGBITS 00002418 003418 00002a 00 AX 0 0 2 + [53] .text.startup.mai PROGBITS 00002444 003444 000038 00 AX 0 0 4 + [54] .text.delay_nms PROGBITS 0000247c 00347c 00002c 00 AX 0 0 2 + [55] .text.delay_nus PROGBITS 000024a8 0034a8 000022 00 AX 0 0 2 + [56] .text.BT_CONFIG PROGBITS 000024cc 0034cc 000060 00 AX 0 0 4 + [57] .text.SYSCON_CONF PROGBITS 0000252c 00352c 000062 00 AX 0 0 2 + [58] .text.APT32F102_i PROGBITS 00002590 003590 000094 00 AX 0 0 4 + [59] .text.SYSCONIntHa PROGBITS 00002624 003624 0000f0 00 AX 0 0 4 + [60] .text.IFCIntHandl PROGBITS 00002714 003714 000068 00 AX 0 0 4 + [61] .text.ADCIntHandl PROGBITS 0000277c 00377c 000068 00 AX 0 0 4 + [62] .text.EPT0IntHand PROGBITS 000027e4 0037e4 0001ac 00 AX 0 0 4 + [63] .text.WWDTHandler PROGBITS 00002990 003990 000034 00 AX 0 0 4 + [64] .text.GPT0IntHand PROGBITS 000029c4 0039c4 000080 00 AX 0 0 4 + [65] .text.RTCIntHandl PROGBITS 00002a44 003a44 000070 00 AX 0 0 4 + [66] .text.UART0IntHan PROGBITS 00002ab4 003ab4 000060 00 AX 0 0 4 + [67] .text.UART1IntHan PROGBITS 00002b14 003b14 000094 00 AX 0 0 4 + [68] .text.UART2IntHan PROGBITS 00002ba8 003ba8 000094 00 AX 0 0 4 + [69] .text.SPI0IntHand PROGBITS 00002c3c 003c3c 0000e8 00 AX 0 0 4 + [70] .text.SIO0IntHand PROGBITS 00002d24 003d24 000054 00 AX 0 0 4 + [71] .text.EXI0IntHand PROGBITS 00002d78 003d78 000030 00 AX 0 0 4 + [72] .text.EXI1IntHand PROGBITS 00002da8 003da8 000030 00 AX 0 0 4 + [73] .text.EXI2to3IntH PROGBITS 00002dd8 003dd8 000048 00 AX 0 0 4 + [74] .text.EXI4to9IntH PROGBITS 00002e20 003e20 00006c 00 AX 0 0 4 + [75] .text.EXI10to15In PROGBITS 00002e8c 003e8c 000060 00 AX 0 0 4 + [76] .text.LPTIntHandl PROGBITS 00002eec 003eec 000034 00 AX 0 0 4 + [77] .text.BT0IntHandl PROGBITS 00002f20 003f20 00004c 00 AX 0 0 4 + [78] .text.BT1IntHandl PROGBITS 00002f6c 003f6c 000070 00 AX 0 0 4 + [79] .text.PriviledgeV PROGBITS 00002fdc 003fdc 000002 00 AX 0 0 2 + [80] .text.PendTrapHan PROGBITS 00002fde 003fde 000008 00 AX 0 0 2 + [81] .text.Trap3Handle PROGBITS 00002fe6 003fe6 000008 00 AX 0 0 2 + [82] .text.Trap2Handle PROGBITS 00002fee 003fee 000008 00 AX 0 0 2 + [83] .text.Trap1Handle PROGBITS 00002ff6 003ff6 000008 00 AX 0 0 2 + [84] .text.Trap0Handle PROGBITS 00002ffe 003ffe 000008 00 AX 0 0 2 + [85] .text.UnrecExecpH PROGBITS 00003006 004006 000008 00 AX 0 0 2 + [86] .text.BreakPointH PROGBITS 0000300e 00400e 000008 00 AX 0 0 2 + [87] .text.AccessErrHa PROGBITS 00003016 004016 000008 00 AX 0 0 2 + [88] .text.IllegalInst PROGBITS 0000301e 00401e 000008 00 AX 0 0 2 + [89] .text.MisalignedH PROGBITS 00003026 004026 000008 00 AX 0 0 2 + [90] .text.CNTAIntHand PROGBITS 0000302e 00402e 000008 00 AX 0 0 2 + [91] .text.I2CIntHandl PROGBITS 00003036 004036 000008 00 AX 0 0 2 + [92] .text.__divsi3 PROGBITS 00003040 004040 000024 00 AX 0 0 4 + [93] .text.__udivsi3 PROGBITS 00003064 004064 000024 00 AX 0 0 4 + [94] .text.__umodsi3 PROGBITS 00003088 004088 000024 00 AX 0 0 4 + [95] .text.CK_CPU_EnAl PROGBITS 000030ac 0040ac 000006 00 AX 0 0 2 + [96] .text.CK_CPU_DisA PROGBITS 000030b2 0040b2 000006 00 AX 0 0 2 + [97] .text.UARTx_Init PROGBITS 000030b8 0040b8 000158 00 AX 0 0 4 + [98] .text.UART0_RecvI PROGBITS 00003210 004210 000038 00 AX 0 0 4 + [99] .text.UART1_RecvI PROGBITS 00003248 004248 000038 00 AX 0 0 4 + [100] .text.UART1_TASK PROGBITS 00003280 004280 00006c 00 AX 0 0 4 + [101] .text.UART2_RecvI PROGBITS 000032ec 0042ec 000044 00 AX 0 0 4 + [102] .text.UART2_TASK PROGBITS 00003330 004330 000078 00 AX 0 0 4 + [103] .text.Controller4 PROGBITS 000033a8 0043a8 0000a8 00 AX 0 0 4 + [104] .text.BUS485_Send PROGBITS 00003450 004450 0000c4 00 AX 0 0 4 + [105] .text.MultSend_Ta PROGBITS 00003514 004514 000074 00 AX 0 0 4 + [106] .text.Set_GroupSe PROGBITS 00003588 004588 000064 00 AX 0 0 4 + [107] .text.Clear_SendF PROGBITS 000035ec 0045ec 000010 00 AX 0 0 4 + [108] .text.BUS485Send_ PROGBITS 000035fc 0045fc 000034 00 AX 0 0 4 + [109] .text.BusIdle_Tas PROGBITS 00003630 004630 000040 00 AX 0 0 4 + [110] .text.BusBusy_Tas PROGBITS 00003670 004670 00005c 00 AX 0 0 4 + [111] .text.Dbg_Println PROGBITS 000036cc 0046cc 00000c 00 AX 0 0 2 + [112] .text.EEPROM_Chec PROGBITS 000036d8 0046d8 000016 00 AX 0 0 2 + [113] .text.EEPROM_Read PROGBITS 000036f0 0046f0 000074 00 AX 0 0 4 + [114] .text.EEPROM_Writ PROGBITS 00003764 004764 000044 00 AX 0 0 4 + [115] .text.EEPROM_Vali PROGBITS 000037a8 0047a8 000030 00 AX 0 0 4 + [116] .text.EEPROM_Defa PROGBITS 000037d8 0047d8 000020 00 AX 0 0 2 + [117] .text.EEPROM_Init PROGBITS 000037f8 0047f8 000054 00 AX 0 0 4 + [118] .text.TemCtrl_Ini PROGBITS 0000384c 00484c 00015c 00 AX 0 0 4 + [119] .text.Tem_Valve_C PROGBITS 000039a8 0049a8 000060 00 AX 0 0 4 + [120] .text.DisPlay_Tas PROGBITS 00003a08 004a08 000194 00 AX 0 0 4 + [121] .text.Ctrller_Que PROGBITS 00003b9c 004b9c 000044 00 AX 0 0 4 + [122] .text.Ctrller_Ctr PROGBITS 00003be0 004be0 0000a4 00 AX 0 0 4 + [123] .text.TemCtrl_Pro PROGBITS 00003c84 004c84 0000cc 00 AX 0 0 4 + [124] .text.Ctrller_Air PROGBITS 00003d50 004d50 0000d4 00 AX 0 0 4 + [125] .text.Ctrller_Ctr PROGBITS 00003e24 004e24 000020 00 AX 0 0 4 + [126] .text.Ctrller_Rec PROGBITS 00003e44 004e44 0000b8 00 AX 0 0 4 + [127] .text.NetCRC16_Ch PROGBITS 00003efc 004efc 00004c 00 AX 0 0 4 + [128] .text.GetCRC16 PROGBITS 00003f48 004f48 00003c 00 AX 0 0 4 + [129] .text.SOR_CRC PROGBITS 00003f84 004f84 000016 00 AX 0 0 2 + [130] .text.Rs485_ASend PROGBITS 00003f9c 004f9c 000110 00 AX 0 0 4 + [131] .text.Rs485AskCyc PROGBITS 000040ac 0050ac 000104 00 AX 0 0 4 + [132] .text.Rs485AskCtr PROGBITS 000041b0 0051b0 00005c 00 AX 0 0 4 + [133] .text.Rs485AskRea PROGBITS 0000420c 00520c 00006c 00 AX 0 0 4 + [134] .text.Rs485_DevPo PROGBITS 00004278 005278 000018 00 AX 0 0 2 + [135] .text.Temp_Rec_An PROGBITS 00004290 005290 0001b8 00 AX 0 0 4 + [136] .text.Tem_Rs485_R PROGBITS 00004448 005448 0000c0 00 AX 0 0 4 + [137] .text.DIP_GetSwit PROGBITS 00004508 005508 000034 00 AX 0 0 4 + [138] .text.DIP_Switch_ PROGBITS 0000453c 00553c 00008c 00 AX 0 0 4 + [139] .text.DIP_ScanTas PROGBITS 000045c8 0055c8 000098 00 AX 0 0 4 + [140] .text.TK_Single_L PROGBITS 00004660 005660 000128 00 AX 0 0 4 + [141] .text.TK_Sampling PROGBITS 00004788 005788 0000cc 00 AX 0 0 4 + [142] .text.get_key_num PROGBITS 00004854 005854 000028 00 AX 0 0 4 + [143] .text.get_key_num PROGBITS 0000487c 00587c 000028 00 AX 0 0 4 + [144] .text.get_key_num PROGBITS 000048a4 0058a4 000028 00 AX 0 0 4 + [145] .text.get_key_num PROGBITS 000048cc 0058cc 000028 00 AX 0 0 4 + [146] .text.TK_Scan_Sta PROGBITS 000048f4 0058f4 000068 00 AX 0 0 4 + [147] .text.TK_Keymap_p PROGBITS 0000495c 00595c 000870 00 AX 0 0 4 + [148] .text.TK_overflow PROGBITS 000051cc 0061cc 000128 00 AX 0 0 4 + [149] .text.TK_Baseline PROGBITS 000052f4 0062f4 0004d0 00 AX 0 0 4 + [150] .text.TK_result_p PROGBITS 000057c4 0067c4 000130 00 AX 0 0 4 + [151] .text.TKEYIntHand PROGBITS 000058f4 0068f4 0000a0 00 AX 0 0 4 + [152] .text.CORETHandle PROGBITS 00005994 006994 00015c 00 AX 0 0 4 + [153] .text.std_clk_cal PROGBITS 00005af0 006af0 000284 00 AX 0 0 4 + [154] .RomCode PROGBITS 00005d74 0070a8 000000 00 W 0 0 1 + [155] .rodata PROGBITS 00005d74 006d74 000268 00 A 0 0 4 + [156] .data PROGBITS 20000000 007000 0000a8 00 WA 0 0 4 + [157] .bss NOBITS 200000a8 0070a8 00072c 00 WA 0 0 4 + [158] .csky.attributes CSKY_ATTRIBUTES 00000000 0070a8 000022 00 0 0 1 + [159] .comment PROGBITS 00000000 0070ca 000042 01 MS 0 0 1 + [160] .csky_stack_size PROGBITS 00000000 007110 0008ec 00 0 0 16 + [161] .debug_line PROGBITS 00000000 0079fc 0040fd 00 0 0 1 + [162] .debug_info PROGBITS 00000000 00baf9 031962 00 0 0 1 + [163] .debug_abbrev PROGBITS 00000000 03d45b 002ddc 00 0 0 1 + [164] .debug_aranges PROGBITS 00000000 040238 000cc8 00 0 0 8 + [165] .debug_ranges PROGBITS 00000000 040f00 000be0 00 0 0 1 + [166] .debug_str PROGBITS 00000000 041ae0 008bf0 01 MS 0 0 1 + [167] .debug_frame PROGBITS 00000000 04a6d0 001e50 00 0 0 4 + [168] .debug_loc PROGBITS 00000000 04c520 002822 00 0 0 1 + [169] .shstrtab STRTAB 00000000 0547ef 000e11 00 0 0 1 + [170] .symtab SYMTAB 00000000 04ed44 0043d0 10 171 727 4 + [171] .strtab STRTAB 00000000 053114 0016db 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 0x05fdc 0x05fdc R E 0x1000 + LOAD 0x007000 0x20000000 0x00005fdc 0x000a8 0x007d4 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.EXI3_Int_Enable .text.SYSCON_Int_Enable .text.SYSCON_Int_Disable .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.GPIOB0_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.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.UART0_RecvINT_Processing .text.UART1_RecvINT_Processing .text.UART1_TASK .text.UART2_RecvINT_Processing .text.UART2_TASK .text.Controller485_SendData .text.BUS485_Send .text.MultSend_Task .text.Set_GroupSend .text.Clear_SendFlag .text.BUS485Send_Task .text.BusIdle_Task .text.BusBusy_Task .text.Dbg_Println .text.EEPROM_CheckSum .text.EEPROM_ReadParaInfo .text.EEPROM_WriteParaInfo .text.EEPROM_Validate_ParaInfo .text.EEPROM_Default_ParaInfo .text.EEPROM_Init .text.TemCtrl_Init .text.Tem_Valve_Ctrl .text.DisPlay_Task .text.Ctrller_Query_AirState .text.Ctrller_Ctrl_AirState .text.TemCtrl_Pro .text.Ctrller_AirState_Processing .text.Ctrller_CtrlAirState_Processing .text.Ctrller_RecData_Processing .text.NetCRC16_Check .text.GetCRC16 .text.SOR_CRC .text.Rs485_ASend .text.Rs485AskCycleSend .text.Rs485AskCtrlSend .text.Rs485AskReadSend .text.Rs485_DevPort_ACK .text.Temp_Rec_Analysis .text.Tem_Rs485_Rec_Pro .text.DIP_GetSwitchState .text.DIP_Switch_Init .text.DIP_ScanTask .text.TK_Single_Longpress_prg .text.TK_Sampling_prog .text.get_key_number .text.get_key_number0 .text.get_key_number1 .text.get_key_number2 .text.TK_Scan_Start .text.TK_Keymap_prog .text.TK_overflow_predict .text.TK_Baseline_tracking .text.TK_result_prog .text.TKEYIntHandler .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/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.UART2_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/SYSTEM_uart.o(.text.UART2_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_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.EXI3_Int_Enable) for EXI3_Int_Enable + 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.GPIOB0_EXI_Init) for GPIOB0_EXI_Init + Obj/SYSTEM_uart.o(.text.Controller485_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.Controller485_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.Controller485_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.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.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.Controller485_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.EEPROM_WriteParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.Page_ProgramData) for Page_ProgramData + Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/FWlib_apt32f102_ifc.o(.text.ReadDataArry_U8) for ReadDataArry_U8 + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/mcu_initial.o(.text.delay_nms) for delay_nms + 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.Controller485_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 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) refers to Obj/drivers_apt32f102.o(.text.__divsi3) for __divsi3 + FWlib_apt32f102_tkey_f_1_18.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.Controller485_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.Controller485_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_interrupt.o(.text.EXI4to9IntHandler) 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_eeprom.o(.text.EEPROM_Validate_ParaInfo) 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_tempctrl_unit.o(.text.TemCtrl_Init) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Dbg_Println) for Dbg_Println + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) 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/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/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_tempctrl_unit.o(.text.Ctrller_Query_AirState) refers to Obj/SYSTEM_uart.o(.text.Controller485_SendData) for Controller485_SendData + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Ctrl_AirState) refers to Obj/SYSTEM_uart.o(.text.Controller485_SendData) for Controller485_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_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Rs485_DevPort_ACK) refers to Obj/SYSTEM_uart.o(.text.Set_GroupSend) for Set_GroupSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart.o(.text.Clear_SendFlag) for Clear_SendFlag + 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/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Query_AirState) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Ctrl_AirState) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_CheckSum) for EEPROM_CheckSum + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) 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_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_ReadParaInfo) for EEPROM_ReadParaInfo + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) for EEPROM_WriteParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Validate_ParaInfo) for EEPROM_Validate_ParaInfo + Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Default_ParaInfo) for EEPROM_Default_ParaInfo + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_eeprom.o(.text.EEPROM_Init) for EEPROM_Init + Obj/mcu_initial.o(.text.APT32F102_init) refers to Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Init) for TemCtrl_Init + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Tem_Valve_Ctrl) for Tem_Valve_Ctrl + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tempctrl_unit.o(.text.DisPlay_Task) for DisPlay_Task + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Query_AirState) for Ctrller_Query_AirState + Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_Ctrl_AirState) for Ctrller_Ctrl_AirState + Obj/main.o(.text.startup.main) refers to Obj/SYSTEM_tempctrl_unit.o(.text.TemCtrl_Pro) for TemCtrl_Pro + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_AirState_Processing) for Ctrller_AirState_Processing + Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_RecData_Processing) refers to Obj/SYSTEM_tempctrl_unit.o(.text.Ctrller_CtrlAirState_Processing) for Ctrller_CtrlAirState_Processing + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) refers to Obj/SYSTEM_uart_protocol.o(.text.NetCRC16_Check) for NetCRC16_Check + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.GetCRC16) for GetCRC16 + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.SOR_CRC) for SOR_CRC + Obj/SYSTEM_tempctrl_unit.o(.text.DisPlay_Task) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) for Rs485_ASend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) for Rs485AskCycleSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCtrlSend) for Rs485AskCtrlSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485AskReadSend) for Rs485AskReadSend + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to Obj/SYSTEM_uart_protocol.o(.text.Rs485_DevPort_ACK) for Rs485_DevPort_ACK + Obj/SYSTEM_uart_protocol.o(.text.Tem_Rs485_Rec_Pro) refers to Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) for Temp_Rec_Analysis + 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 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Single_Longpress_prg) for TK_Single_Longpress_prg + FWlib_apt32f102_tkey_f_1_18.o(.text.TKEYIntHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Sampling_prog) for TK_Sampling_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_result_prog) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number) for get_key_number + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number0) for get_key_number0 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number1) for get_key_number1 + FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.get_key_number2) for get_key_number2 + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Scan_Start) for TK_Scan_Start + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Keymap_prog) for TK_Keymap_prog + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_overflow_predict) for TK_overflow_predict + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.o(.text.TK_Baseline_tracking) for TK_Baseline_tracking + FWlib_apt32f102_tkey_f_1_18.o(.text.CORETHandler) refers to FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.GPIOB0_EXI_Init) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Rs485_ASend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Rs485AskCycleSend) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + Obj/SYSTEM_uart_protocol.o(.text.Temp_Rec_Analysis) refers to _csky_case_uqi.o(.text) for ___gnu_csky_case_uqi + FWlib_apt32f102_tkey_f_1_18.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_f_1_18.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.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_eeprom.o(.text.EEPROM_ReadParaInfo) 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_tempctrl_unit.o(.text.TemCtrl_Init) 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/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.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.EEPROM_ReadParaInfo) refers to memcpy_fast.o(.text) for memcpy + Obj/SYSTEM_eeprom.o(.text.EEPROM_WriteParaInfo) 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), (2901 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_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_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_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.GPIOA0_EXI_Init(Obj/FWlib_apt32f102_gpio.o), (252 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), (3095 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), (3412 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), (3157 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), (8020 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), (4125 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), (3528 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), (3644 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), (4844 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), (4952 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_tkey_parameter.o), (0 bytes). + Removing .data(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .bss(Obj/FWlib_apt32f102_tkey_parameter.o), (0 bytes). + Removing .text.tk_parameter_init(Obj/FWlib_apt32f102_tkey_parameter.o), (304 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), (2850 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.GPIO_CONFIG(Obj/mcu_initial.o), (76 bytes). + Removing .text.EPT0_CONFIG(Obj/mcu_initial.o), (96 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), (64 bytes). + Removing .text.UART_Waiting_For_Send(Obj/SYSTEM_uart.o), (32 bytes). + Removing .text.MCU485_SendData(Obj/SYSTEM_uart.o), (152 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_eeprom.o), (0 bytes). + Removing .data(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .bss(Obj/SYSTEM_eeprom.o), (0 bytes). + Removing .text.EEPROM_ClearParaInfo(Obj/SYSTEM_eeprom.o), (36 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), (56 bytes). + Removing .text.EEPROM_Validate_MCUDevInfo(Obj/SYSTEM_eeprom.o), (88 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_Function_Init(Obj/SYSTEM_Bootload_fun.o), (96 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), (92 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), (392 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), (264 bytes). + Removing .debug_info(Obj/SYSTEM_Bootload_fun.o), (12776 bytes). + Removing .debug_abbrev(Obj/SYSTEM_Bootload_fun.o), (794 bytes). + Removing .debug_loc(Obj/SYSTEM_Bootload_fun.o), (702 bytes). + Removing .debug_aranges(Obj/SYSTEM_Bootload_fun.o), (120 bytes). + Removing .debug_ranges(Obj/SYSTEM_Bootload_fun.o), (136 bytes). + Removing .debug_line(Obj/SYSTEM_Bootload_fun.o), (972 bytes). + Removing .debug_str(Obj/SYSTEM_Bootload_fun.o), (9886 bytes). + Removing .comment(Obj/SYSTEM_Bootload_fun.o), (67 bytes). + Removing .debug_frame(Obj/SYSTEM_Bootload_fun.o), (356 bytes). + Removing .csky.attributes(Obj/SYSTEM_Bootload_fun.o), (32 bytes). + Removing COMMON(Obj/SYSTEM_Bootload_fun.o), (572 bytes). + Removing .text(Obj/SYSTEM_tempctrl_unit.o), (0 bytes). + Removing .data(Obj/SYSTEM_tempctrl_unit.o), (0 bytes). + Removing .text.Ctrller_Query_AirFun(Obj/SYSTEM_tempctrl_unit.o), (68 bytes). + Removing .text.Ctrller_AirFun_Processing(Obj/SYSTEM_tempctrl_unit.o), (8 bytes). + Removing .text(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .data(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .bss(Obj/SYSTEM_uart_protocol.o), (0 bytes). + Removing .text(Obj/SYSTEM_dip_switch.o), (0 bytes). + Removing .data(Obj/SYSTEM_dip_switch.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), (115 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_f_1_18.o), (0 bytes). + Removing .text.TK_ConfigInterrupt_CMD.part.0(FWlib_apt32f102_tkey_f_1_18.o), (16 bytes). + Removing .text.tk_sram_clr(FWlib_apt32f102_tkey_f_1_18.o), (560 bytes). + Removing .text.TK_DeInit(FWlib_apt32f102_tkey_f_1_18.o), (60 bytes). + Removing .text.tk_clk_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_con0_config(FWlib_apt32f102_tkey_f_1_18.o), (188 bytes). + Removing .text.tk_scan_config(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_ConfigInterrupt_CMD(FWlib_apt32f102_tkey_f_1_18.o), (32 bytes). + Removing .text.tk_io_enable(FWlib_apt32f102_tkey_f_1_18.o), (308 bytes). + Removing .text.lpt_init(FWlib_apt32f102_tkey_f_1_18.o), (76 bytes). + Removing .text.TK_setup_sleep(FWlib_apt32f102_tkey_f_1_18.o), (92 bytes). + Removing .text.TK_quit_sleep(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.TK_Baseline_prog(FWlib_apt32f102_tkey_f_1_18.o), (336 bytes). + Removing .text.TK_Baseline_prog2(FWlib_apt32f102_tkey_f_1_18.o), (328 bytes). + Removing .text.tk_poweron_data_fineturn(FWlib_apt32f102_tkey_f_1_18.o), (292 bytes). + Removing .text.get_key_seq(FWlib_apt32f102_tkey_f_1_18.o), (56 bytes). + Removing .text.CORET_CONFIG(FWlib_apt32f102_tkey_f_1_18.o), (56 bytes). + Removing .text.tk_chxval_seqxcon_clr(FWlib_apt32f102_tkey_f_1_18.o), (28 bytes). + Removing .text.tk_freq_para_init(FWlib_apt32f102_tkey_f_1_18.o), (172 bytes). + Removing .text.tk_reserved_init(FWlib_apt32f102_tkey_f_1_18.o), (40 bytes). + Removing .text.tk_init(FWlib_apt32f102_tkey_f_1_18.o), (272 bytes). + Removing .text.tk_prgm(FWlib_apt32f102_tkey_f_1_18.o), (2 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). + +651 unused seciton(s) (total 212852 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_f_1_18.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_dip_switch.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_eeprom.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_tempctrl_unit.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart.o 0x00000000 df 0 *ABS* + Obj/SYSTEM_uart_protocol.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.EXI3_Int_Enable + $t 0x00001d60 0 .text.EXI3_Int_Enable + $d 0x00001d6c 0 .text.EXI3_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_DeInit + $t 0x00001ddc 0 .text.GPIO_DeInit + $d 0x00001e30 0 .text.GPIO_DeInit + $d 0x00001e40 0 .text.GPIO_Init + $t 0x00001e40 0 .text.GPIO_Init + $d 0x00001e52 0 .text.GPIO_Init + $t 0x00001e5a 0 .text.GPIO_Init + $d 0x00001eb6 0 .text.GPIO_Init + $t 0x00001ebe 0 .text.GPIO_Init + $d 0x00001f0c 0 .text.GPIO_Init + $d 0x00001f20 0 .text.GPIO_PullHigh_Init + $t 0x00001f20 0 .text.GPIO_PullHigh_Init + $d 0x00001f34 0 .text.GPIO_DriveStrength_EN + $t 0x00001f34 0 .text.GPIO_DriveStrength_EN + $d 0x00001f44 0 .text.GPIO_IntGroup_Set + $t 0x00001f44 0 .text.GPIO_IntGroup_Set + $d 0x00002038 0 .text.GPIO_IntGroup_Set + $d 0x00002050 0 .text.GPIOB0_EXI_Init + $t 0x00002050 0 .text.GPIOB0_EXI_Init + $d 0x0000205c 0 .text.GPIOB0_EXI_Init + $t 0x00002062 0 .text.GPIOB0_EXI_Init + $d 0x000020b8 0 .text.GPIOB0_EXI_Init + $d 0x000020bc 0 .text.GPIO_Write_High + $t 0x000020bc 0 .text.GPIO_Write_High + $d 0x000020c4 0 .text.GPIO_Write_Low + $t 0x000020c4 0 .text.GPIO_Write_Low + $d 0x000020cc 0 .text.GPIO_Reverse + $t 0x000020cc 0 .text.GPIO_Reverse + $d 0x000020e2 0 .text.GPIO_Read_Status + $t 0x000020e2 0 .text.GPIO_Read_Status + $d 0x000020f4 0 .text.LPT_Soft_Reset + $t 0x000020f4 0 .text.LPT_Soft_Reset + $d 0x00002104 0 .text.LPT_Soft_Reset + $d 0x00002108 0 .text.WWDT_CNT_Load + $t 0x00002108 0 .text.WWDT_CNT_Load + $d 0x00002114 0 .text.WWDT_CNT_Load + $d 0x00002118 0 .text.BT_DeInit + $t 0x00002118 0 .text.BT_DeInit + $d 0x00002134 0 .text.BT_Start + $t 0x00002134 0 .text.BT_Start + $d 0x0000213c 0 .text.BT_Soft_Reset + $t 0x0000213c 0 .text.BT_Soft_Reset + $d 0x00002146 0 .text.BT_Configure + $t 0x00002146 0 .text.BT_Configure + $d 0x0000215e 0 .text.BT_ControlSet_Configure + $t 0x0000215e 0 .text.BT_ControlSet_Configure + $d 0x0000218a 0 .text.BT_Period_CMP_Write + $t 0x0000218a 0 .text.BT_Period_CMP_Write + $d 0x00002190 0 .text.BT_ConfigInterrupt_CMD + $t 0x00002190 0 .text.BT_ConfigInterrupt_CMD + $d 0x000021a4 0 .text.BT1_INT_ENABLE + $t 0x000021a4 0 .text.BT1_INT_ENABLE + $d 0x000021b0 0 .text.BT1_INT_ENABLE + $d 0x000021b4 0 .text.UART0_DeInit + $t 0x000021b4 0 .text.UART0_DeInit + $d 0x000021c8 0 .text.UART0_DeInit + $d 0x000021cc 0 .text.UART1_DeInit + $t 0x000021cc 0 .text.UART1_DeInit + $d 0x000021e0 0 .text.UART1_DeInit + $d 0x000021e4 0 .text.UART2_DeInit + $t 0x000021e4 0 .text.UART2_DeInit + $d 0x000021f8 0 .text.UART2_DeInit + $d 0x000021fc 0 .text.UART1_Int_Enable + $t 0x000021fc 0 .text.UART1_Int_Enable + $d 0x00002210 0 .text.UART1_Int_Enable + $d 0x00002218 0 .text.UART2_Int_Enable + $t 0x00002218 0 .text.UART2_Int_Enable + $d 0x0000222c 0 .text.UART2_Int_Enable + $d 0x00002234 0 .text.UART_IO_Init + $t 0x00002234 0 .text.UART_IO_Init + $d 0x00002318 0 .text.UART_IO_Init + $d 0x00002320 0 .text.UARTInitRxTxIntEn + $t 0x00002320 0 .text.UARTInitRxTxIntEn + $d 0x0000232c 0 .text.UARTInitRxTxIntEn + $d 0x00002330 0 .text.UARTTransmit + $t 0x00002330 0 .text.UARTTransmit + $d 0x00002350 0 .text.EPT_Stop + $t 0x00002350 0 .text.EPT_Stop + $d 0x00002370 0 .text.EPT_Stop + $d 0x00002378 0 .text.Page_ProgramData + $t 0x00002378 0 .text.Page_ProgramData + $d 0x00002410 0 .text.Page_ProgramData + $d 0x00002418 0 .text.ReadDataArry_U8 + $t 0x00002418 0 .text.ReadDataArry_U8 + $d 0x00002444 0 .text.startup.main + $t 0x00002444 0 .text.startup.main + $d 0x00002474 0 .text.startup.main + $d 0x0000247c 0 .text.delay_nms + $t 0x0000247c 0 .text.delay_nms + $d 0x000024a8 0 .text.delay_nus + $t 0x000024a8 0 .text.delay_nus + $d 0x000024cc 0 .text.BT_CONFIG + $t 0x000024cc 0 .text.BT_CONFIG + $d 0x00002524 0 .text.BT_CONFIG + $d 0x0000252c 0 .text.SYSCON_CONFIG + $t 0x0000252c 0 .text.SYSCON_CONFIG + $d 0x00002590 0 .text.APT32F102_init + $t 0x00002590 0 .text.APT32F102_init + $d 0x0000260c 0 .text.APT32F102_init + $d 0x00002624 0 .text.SYSCONIntHandler + $t 0x00002624 0 .text.SYSCONIntHandler + $d 0x00002710 0 .text.SYSCONIntHandler + $d 0x00002714 0 .text.IFCIntHandler + $t 0x00002714 0 .text.IFCIntHandler + $d 0x00002778 0 .text.IFCIntHandler + $d 0x0000277c 0 .text.ADCIntHandler + $t 0x0000277c 0 .text.ADCIntHandler + $d 0x000027e0 0 .text.ADCIntHandler + $d 0x000027e4 0 .text.EPT0IntHandler + $t 0x000027e4 0 .text.EPT0IntHandler + $d 0x00002984 0 .text.EPT0IntHandler + $d 0x00002990 0 .text.WWDTHandler + $t 0x00002990 0 .text.WWDTHandler + $d 0x000029c0 0 .text.WWDTHandler + $d 0x000029c4 0 .text.GPT0IntHandler + $t 0x000029c4 0 .text.GPT0IntHandler + $d 0x00002a40 0 .text.GPT0IntHandler + $d 0x00002a44 0 .text.RTCIntHandler + $t 0x00002a44 0 .text.RTCIntHandler + $d 0x00002aac 0 .text.RTCIntHandler + $d 0x00002ab4 0 .text.UART0IntHandler + $t 0x00002ab4 0 .text.UART0IntHandler + $d 0x00002b10 0 .text.UART0IntHandler + $d 0x00002b14 0 .text.UART1IntHandler + $t 0x00002b14 0 .text.UART1IntHandler + $d 0x00002b94 0 .text.UART1IntHandler + $d 0x00002ba8 0 .text.UART2IntHandler + $t 0x00002ba8 0 .text.UART2IntHandler + $d 0x00002c28 0 .text.UART2IntHandler + $d 0x00002c3c 0 .text.SPI0IntHandler + $t 0x00002c3c 0 .text.SPI0IntHandler + $d 0x00002d20 0 .text.SPI0IntHandler + $d 0x00002d24 0 .text.SIO0IntHandler + $t 0x00002d24 0 .text.SIO0IntHandler + $d 0x00002d74 0 .text.SIO0IntHandler + $d 0x00002d78 0 .text.EXI0IntHandler + $t 0x00002d78 0 .text.EXI0IntHandler + $d 0x00002da4 0 .text.EXI0IntHandler + $d 0x00002da8 0 .text.EXI1IntHandler + $t 0x00002da8 0 .text.EXI1IntHandler + $d 0x00002dd4 0 .text.EXI1IntHandler + $d 0x00002dd8 0 .text.EXI2to3IntHandler + $t 0x00002dd8 0 .text.EXI2to3IntHandler + $d 0x00002e1c 0 .text.EXI2to3IntHandler + $d 0x00002e20 0 .text.EXI4to9IntHandler + $t 0x00002e20 0 .text.EXI4to9IntHandler + $d 0x00002e88 0 .text.EXI4to9IntHandler + $d 0x00002e8c 0 .text.EXI10to15IntHandler + $t 0x00002e8c 0 .text.EXI10to15IntHandler + $d 0x00002ee8 0 .text.EXI10to15IntHandler + $d 0x00002eec 0 .text.LPTIntHandler + $t 0x00002eec 0 .text.LPTIntHandler + $d 0x00002f1c 0 .text.LPTIntHandler + $d 0x00002f20 0 .text.BT0IntHandler + $t 0x00002f20 0 .text.BT0IntHandler + $d 0x00002f68 0 .text.BT0IntHandler + $d 0x00002f6c 0 .text.BT1IntHandler + $t 0x00002f6c 0 .text.BT1IntHandler + $d 0x00002fd4 0 .text.BT1IntHandler + $d 0x00002fdc 0 .text.PriviledgeVioHandler + $t 0x00002fdc 0 .text.PriviledgeVioHandler + $d 0x00002fde 0 .text.PendTrapHandler + $t 0x00002fde 0 .text.PendTrapHandler + $d 0x00002fe6 0 .text.Trap3Handler + $t 0x00002fe6 0 .text.Trap3Handler + $d 0x00002fee 0 .text.Trap2Handler + $t 0x00002fee 0 .text.Trap2Handler + $d 0x00002ff6 0 .text.Trap1Handler + $t 0x00002ff6 0 .text.Trap1Handler + $d 0x00002ffe 0 .text.Trap0Handler + $t 0x00002ffe 0 .text.Trap0Handler + $d 0x00003006 0 .text.UnrecExecpHandler + $t 0x00003006 0 .text.UnrecExecpHandler + $d 0x0000300e 0 .text.BreakPointHandler + $t 0x0000300e 0 .text.BreakPointHandler + $d 0x00003016 0 .text.AccessErrHandler + $t 0x00003016 0 .text.AccessErrHandler + $d 0x0000301e 0 .text.IllegalInstrHandler + $t 0x0000301e 0 .text.IllegalInstrHandler + $d 0x00003026 0 .text.MisalignedHandler + $t 0x00003026 0 .text.MisalignedHandler + $d 0x0000302e 0 .text.CNTAIntHandler + $t 0x0000302e 0 .text.CNTAIntHandler + $d 0x00003036 0 .text.I2CIntHandler + $t 0x00003036 0 .text.I2CIntHandler + $d 0x00003040 0 .text.__divsi3 + $t 0x00003040 0 .text.__divsi3 + $d 0x00003060 0 .text.__divsi3 + $d 0x00003064 0 .text.__udivsi3 + $t 0x00003064 0 .text.__udivsi3 + $d 0x00003084 0 .text.__udivsi3 + $d 0x00003088 0 .text.__umodsi3 + $t 0x00003088 0 .text.__umodsi3 + $d 0x000030a8 0 .text.__umodsi3 + $d 0x000030ac 0 .text.CK_CPU_EnAllNormalIrq + $t 0x000030ac 0 .text.CK_CPU_EnAllNormalIrq + $d 0x000030b2 0 .text.CK_CPU_DisAllNormalIrq + $t 0x000030b2 0 .text.CK_CPU_DisAllNormalIrq + $d 0x000030b8 0 .text.UARTx_Init + $t 0x000030b8 0 .text.UARTx_Init + $d 0x000031dc 0 .text.UARTx_Init + $d 0x00003210 0 .text.UART0_RecvINT_Processing + $t 0x00003210 0 .text.UART0_RecvINT_Processing + $d 0x0000323c 0 .text.UART0_RecvINT_Processing + $d 0x00003248 0 .text.UART1_RecvINT_Processing + $t 0x00003248 0 .text.UART1_RecvINT_Processing + $d 0x00003274 0 .text.UART1_RecvINT_Processing + $d 0x00003280 0 .text.UART1_TASK + $t 0x00003280 0 .text.UART1_TASK + $d 0x000032d4 0 .text.UART1_TASK + $d 0x000032ec 0 .text.UART2_RecvINT_Processing + $t 0x000032ec 0 .text.UART2_RecvINT_Processing + $d 0x00003324 0 .text.UART2_RecvINT_Processing + $d 0x00003330 0 .text.UART2_TASK + $t 0x00003330 0 .text.UART2_TASK + $d 0x00003390 0 .text.UART2_TASK + $d 0x000033a8 0 .text.Controller485_SendData + $t 0x000033a8 0 .text.Controller485_SendData + $d 0x00003440 0 .text.Controller485_SendData + $d 0x00003450 0 .text.BUS485_Send + $t 0x00003450 0 .text.BUS485_Send + $d 0x000034fc 0 .text.BUS485_Send + $d 0x00003514 0 .text.MultSend_Task + $t 0x00003514 0 .text.MultSend_Task + $d 0x00003580 0 .text.MultSend_Task + $d 0x00003588 0 .text.Set_GroupSend + $t 0x00003588 0 .text.Set_GroupSend + $d 0x000035e4 0 .text.Set_GroupSend + $d 0x000035ec 0 .text.Clear_SendFlag + $t 0x000035ec 0 .text.Clear_SendFlag + $d 0x000035f8 0 .text.Clear_SendFlag + $d 0x000035fc 0 .text.BUS485Send_Task + $t 0x000035fc 0 .text.BUS485Send_Task + $d 0x00003624 0 .text.BUS485Send_Task + $d 0x00003630 0 .text.BusIdle_Task + $t 0x00003630 0 .text.BusIdle_Task + $d 0x00003668 0 .text.BusIdle_Task + $d 0x00003670 0 .text.BusBusy_Task + $t 0x00003670 0 .text.BusBusy_Task + $d 0x000036c0 0 .text.BusBusy_Task + $d 0x000036cc 0 .text.Dbg_Println + $t 0x000036cc 0 .text.Dbg_Println + $d 0x000036d8 0 .text.EEPROM_CheckSum + $t 0x000036d8 0 .text.EEPROM_CheckSum + $d 0x000036f0 0 .text.EEPROM_ReadParaInfo + $t 0x000036f0 0 .text.EEPROM_ReadParaInfo + $d 0x0000375c 0 .text.EEPROM_ReadParaInfo + $d 0x00003764 0 .text.EEPROM_WriteParaInfo + $t 0x00003764 0 .text.EEPROM_WriteParaInfo + $d 0x000037a4 0 .text.EEPROM_WriteParaInfo + $d 0x000037a8 0 .text.EEPROM_Validate_ParaInfo + $t 0x000037a8 0 .text.EEPROM_Validate_ParaInfo + $d 0x000037d4 0 .text.EEPROM_Validate_ParaInfo + $d 0x000037d8 0 .text.EEPROM_Default_ParaInfo + $t 0x000037d8 0 .text.EEPROM_Default_ParaInfo + $d 0x000037f8 0 .text.EEPROM_Init + $t 0x000037f8 0 .text.EEPROM_Init + $d 0x00003840 0 .text.EEPROM_Init + $d 0x0000384c 0 .text.TemCtrl_Init + $t 0x0000384c 0 .text.TemCtrl_Init + $d 0x00003994 0 .text.TemCtrl_Init + $d 0x000039a8 0 .text.Tem_Valve_Ctrl + $t 0x000039a8 0 .text.Tem_Valve_Ctrl + $d 0x00003a04 0 .text.Tem_Valve_Ctrl + $d 0x00003a08 0 .text.DisPlay_Task + $t 0x00003a08 0 .text.DisPlay_Task + $d 0x00003b78 0 .text.DisPlay_Task + $d 0x00003b9c 0 .text.Ctrller_Query_AirState + $t 0x00003b9c 0 .text.Ctrller_Query_AirState + $d 0x00003bdc 0 .text.Ctrller_Query_AirState + $d 0x00003be0 0 .text.Ctrller_Ctrl_AirState + $t 0x00003be0 0 .text.Ctrller_Ctrl_AirState + $d 0x00003c7c 0 .text.Ctrller_Ctrl_AirState + $d 0x00003c84 0 .text.TemCtrl_Pro + $t 0x00003c84 0 .text.TemCtrl_Pro + $d 0x00003d3c 0 .text.TemCtrl_Pro + $d 0x00003d50 0 .text.Ctrller_AirState_Processing + $t 0x00003d50 0 .text.Ctrller_AirState_Processing + $d 0x00003e20 0 .text.Ctrller_AirState_Processing + $d 0x00003e24 0 .text.Ctrller_CtrlAirState_Processing + $t 0x00003e24 0 .text.Ctrller_CtrlAirState_Processing + $d 0x00003e40 0 .text.Ctrller_CtrlAirState_Processing + $d 0x00003e44 0 .text.Ctrller_RecData_Processing + $t 0x00003e44 0 .text.Ctrller_RecData_Processing + $d 0x00003ee8 0 .text.Ctrller_RecData_Processing + $d 0x00003efc 0 .text.NetCRC16_Check + $t 0x00003efc 0 .text.NetCRC16_Check + $d 0x00003f40 0 .text.NetCRC16_Check + $d 0x00003f48 0 .text.GetCRC16 + $t 0x00003f48 0 .text.GetCRC16 + $d 0x00003f7c 0 .text.GetCRC16 + $d 0x00003f84 0 .text.SOR_CRC + $t 0x00003f84 0 .text.SOR_CRC + $d 0x00003f9c 0 .text.Rs485_ASend + $t 0x00003f9c 0 .text.Rs485_ASend + $d 0x0000401c 0 .text.Rs485_ASend + $t 0x00004020 0 .text.Rs485_ASend + $d 0x000040a0 0 .text.Rs485_ASend + $d 0x000040ac 0 .text.Rs485AskCycleSend + $t 0x000040ac 0 .text.Rs485AskCycleSend + $d 0x00004122 0 .text.Rs485AskCycleSend + $t 0x00004126 0 .text.Rs485AskCycleSend + $d 0x000041a8 0 .text.Rs485AskCycleSend + $d 0x000041b0 0 .text.Rs485AskCtrlSend + $t 0x000041b0 0 .text.Rs485AskCtrlSend + $d 0x00004208 0 .text.Rs485AskCtrlSend + $d 0x0000420c 0 .text.Rs485AskReadSend + $t 0x0000420c 0 .text.Rs485AskReadSend + $d 0x00004270 0 .text.Rs485AskReadSend + $d 0x00004278 0 .text.Rs485_DevPort_ACK + $t 0x00004278 0 .text.Rs485_DevPort_ACK + $d 0x00004290 0 .text.Temp_Rec_Analysis + $t 0x00004290 0 .text.Temp_Rec_Analysis + $d 0x000042f8 0 .text.Temp_Rec_Analysis + $t 0x0000430a 0 .text.Temp_Rec_Analysis + $d 0x00004324 0 .text.Temp_Rec_Analysis + $t 0x00004328 0 .text.Temp_Rec_Analysis + $d 0x00004418 0 .text.Temp_Rec_Analysis + $t 0x0000441c 0 .text.Temp_Rec_Analysis + $d 0x00004438 0 .text.Temp_Rec_Analysis + $d 0x00004448 0 .text.Tem_Rs485_Rec_Pro + $t 0x00004448 0 .text.Tem_Rs485_Rec_Pro + $d 0x000044f8 0 .text.Tem_Rs485_Rec_Pro + $d 0x00004508 0 .text.DIP_GetSwitchState + $t 0x00004508 0 .text.DIP_GetSwitchState + $d 0x00004538 0 .text.DIP_GetSwitchState + $d 0x0000453c 0 .text.DIP_Switch_Init + $t 0x0000453c 0 .text.DIP_Switch_Init + $d 0x000045bc 0 .text.DIP_Switch_Init + $d 0x000045c8 0 .text.DIP_ScanTask + $t 0x000045c8 0 .text.DIP_ScanTask + $d 0x00004650 0 .text.DIP_ScanTask + $d 0x00004660 0 .text.TK_Single_Longpress_prg + $t 0x00004660 0 .text.TK_Single_Longpress_prg + $d 0x00004754 0 .text.TK_Single_Longpress_prg + $d 0x00004788 0 .text.TK_Sampling_prog + $t 0x00004788 0 .text.TK_Sampling_prog + $d 0x00004830 0 .text.TK_Sampling_prog + $d 0x00004854 0 .text.get_key_number + $t 0x00004854 0 .text.get_key_number + $d 0x00004878 0 .text.get_key_number + $d 0x0000487c 0 .text.get_key_number0 + $t 0x0000487c 0 .text.get_key_number0 + $d 0x000048a0 0 .text.get_key_number0 + $d 0x000048a4 0 .text.get_key_number1 + $t 0x000048a4 0 .text.get_key_number1 + $d 0x000048c8 0 .text.get_key_number1 + $d 0x000048cc 0 .text.get_key_number2 + $t 0x000048cc 0 .text.get_key_number2 + $d 0x000048f0 0 .text.get_key_number2 + $d 0x000048f4 0 .text.TK_Scan_Start + $t 0x000048f4 0 .text.TK_Scan_Start + $d 0x00004940 0 .text.TK_Scan_Start + $d 0x0000495c 0 .text.TK_Keymap_prog + $t 0x0000495c 0 .text.TK_Keymap_prog + $d 0x00004c98 0 .text.TK_Keymap_prog + $t 0x00004d1c 0 .text.TK_Keymap_prog + $d 0x00005078 0 .text.TK_Keymap_prog + $t 0x000050bc 0 .text.TK_Keymap_prog + $d 0x000051b8 0 .text.TK_Keymap_prog + $d 0x000051cc 0 .text.TK_overflow_predict + $t 0x000051cc 0 .text.TK_overflow_predict + $d 0x000052c0 0 .text.TK_overflow_predict + $d 0x000052f4 0 .text.TK_Baseline_tracking + $t 0x000052f4 0 .text.TK_Baseline_tracking + $d 0x0000564c 0 .text.TK_Baseline_tracking + $t 0x000056a8 0 .text.TK_Baseline_tracking + $d 0x000057b4 0 .text.TK_Baseline_tracking + $d 0x000057c4 0 .text.TK_result_prog + $t 0x000057c4 0 .text.TK_result_prog + $d 0x000058c4 0 .text.TK_result_prog + $d 0x000058f4 0 .text.TKEYIntHandler + $t 0x000058f4 0 .text.TKEYIntHandler + $d 0x00005984 0 .text.TKEYIntHandler + $d 0x00005994 0 .text.CORETHandler + $t 0x00005994 0 .text.CORETHandler + $d 0x00005abc 0 .text.CORETHandler + $d 0x00005af0 0 .text.std_clk_calib + $t 0x00005af0 0 .text.std_clk_calib + $d 0x00005d38 0 .text.std_clk_calib + bp 0x00005d74 O 16 .rodata + dp_l 0x00005d84 O 16 .rodata + dp_h 0x00005d94 O 16 .rodata + NUM.6207 0x200000b0 O 1 .bss + OpenDisPlay_Flag.6114 0x20000144 O 1 .bss + TemCtrl_tick.6118 0x20000148 O 4 .bss + update_20ms.6113 0x2000014c 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 + EXI3_Int_Enable 0x00001d60 F 16 .text.EXI3_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_DeInit 0x00001ddc F 100 .text.GPIO_DeInit + GPIO_Init 0x00001e40 F 224 .text.GPIO_Init + GPIO_PullHigh_Init 0x00001f20 F 20 .text.GPIO_PullHigh_Init + GPIO_DriveStrength_EN 0x00001f34 F 14 .text.GPIO_DriveStrength_EN + GPIO_IntGroup_Set 0x00001f44 F 268 .text.GPIO_IntGroup_Set + GPIOB0_EXI_Init 0x00002050 F 108 .text.GPIOB0_EXI_Init + GPIO_Write_High 0x000020bc F 8 .text.GPIO_Write_High + GPIO_Write_Low 0x000020c4 F 8 .text.GPIO_Write_Low + GPIO_Reverse 0x000020cc F 22 .text.GPIO_Reverse + GPIO_Read_Status 0x000020e2 F 16 .text.GPIO_Read_Status + LPT_Soft_Reset 0x000020f4 F 20 .text.LPT_Soft_Reset + WWDT_CNT_Load 0x00002108 F 16 .text.WWDT_CNT_Load + BT_DeInit 0x00002118 F 28 .text.BT_DeInit + BT_Start 0x00002134 F 8 .text.BT_Start + BT_Soft_Reset 0x0000213c F 10 .text.BT_Soft_Reset + BT_Configure 0x00002146 F 24 .text.BT_Configure + BT_ControlSet_Configure 0x0000215e F 44 .text.BT_ControlSet_Configure + BT_Period_CMP_Write 0x0000218a F 6 .text.BT_Period_CMP_Write + BT_ConfigInterrupt_CMD 0x00002190 F 18 .text.BT_ConfigInterrupt_CMD + BT1_INT_ENABLE 0x000021a4 F 16 .text.BT1_INT_ENABLE + UART0_DeInit 0x000021b4 F 24 .text.UART0_DeInit + UART1_DeInit 0x000021cc F 24 .text.UART1_DeInit + UART2_DeInit 0x000021e4 F 24 .text.UART2_DeInit + UART1_Int_Enable 0x000021fc F 28 .text.UART1_Int_Enable + UART2_Int_Enable 0x00002218 F 28 .text.UART2_Int_Enable + UART_IO_Init 0x00002234 F 236 .text.UART_IO_Init + UARTInitRxTxIntEn 0x00002320 F 16 .text.UARTInitRxTxIntEn + UARTTransmit 0x00002330 F 30 .text.UARTTransmit + EPT_Stop 0x00002350 F 40 .text.EPT_Stop + Page_ProgramData 0x00002378 F 160 .text.Page_ProgramData + ReadDataArry_U8 0x00002418 F 42 .text.ReadDataArry_U8 + main 0x00002444 F 56 .text.startup.main + delay_nms 0x0000247c F 44 .text.delay_nms + delay_nus 0x000024a8 F 34 .text.delay_nus + BT_CONFIG 0x000024cc F 96 .text.BT_CONFIG + SYSCON_CONFIG 0x0000252c F 98 .text.SYSCON_CONFIG + APT32F102_init 0x00002590 F 148 .text.APT32F102_init + SYSCONIntHandler 0x00002624 F 240 .text.SYSCONIntHandler + IFCIntHandler 0x00002714 F 104 .text.IFCIntHandler + ADCIntHandler 0x0000277c F 104 .text.ADCIntHandler + EPT0IntHandler 0x000027e4 F 428 .text.EPT0IntHandler + WWDTHandler 0x00002990 F 52 .text.WWDTHandler + GPT0IntHandler 0x000029c4 F 128 .text.GPT0IntHandler + RTCIntHandler 0x00002a44 F 112 .text.RTCIntHandler + UART0IntHandler 0x00002ab4 F 96 .text.UART0IntHandler + UART1IntHandler 0x00002b14 F 148 .text.UART1IntHandler + UART2IntHandler 0x00002ba8 F 148 .text.UART2IntHandler + SPI0IntHandler 0x00002c3c F 232 .text.SPI0IntHandler + SIO0IntHandler 0x00002d24 F 84 .text.SIO0IntHandler + EXI0IntHandler 0x00002d78 F 48 .text.EXI0IntHandler + EXI1IntHandler 0x00002da8 F 48 .text.EXI1IntHandler + EXI2to3IntHandler 0x00002dd8 F 72 .text.EXI2to3IntHandler + EXI4to9IntHandler 0x00002e20 F 108 .text.EXI4to9IntHandler + EXI10to15IntHandler 0x00002e8c F 96 .text.EXI10to15IntHandler + LPTIntHandler 0x00002eec F 52 .text.LPTIntHandler + BT0IntHandler 0x00002f20 F 76 .text.BT0IntHandler + BT1IntHandler 0x00002f6c F 112 .text.BT1IntHandler + PriviledgeVioHandler 0x00002fdc F 2 .text.PriviledgeVioHandler + PendTrapHandler 0x00002fde F 8 .text.PendTrapHandler + Trap3Handler 0x00002fe6 F 8 .text.Trap3Handler + Trap2Handler 0x00002fee F 8 .text.Trap2Handler + Trap1Handler 0x00002ff6 F 8 .text.Trap1Handler + Trap0Handler 0x00002ffe F 8 .text.Trap0Handler + UnrecExecpHandler 0x00003006 F 8 .text.UnrecExecpHandler + BreakPointHandler 0x0000300e F 8 .text.BreakPointHandler + AccessErrHandler 0x00003016 F 8 .text.AccessErrHandler + IllegalInstrHandler 0x0000301e F 8 .text.IllegalInstrHandler + MisalignedHandler 0x00003026 F 8 .text.MisalignedHandler + CNTAIntHandler 0x0000302e F 8 .text.CNTAIntHandler + I2CIntHandler 0x00003036 F 8 .text.I2CIntHandler + __divsi3 0x00003040 F 36 .text.__divsi3 + __udivsi3 0x00003064 F 36 .text.__udivsi3 + __umodsi3 0x00003088 F 36 .text.__umodsi3 + CK_CPU_EnAllNormalIrq 0x000030ac F 6 .text.CK_CPU_EnAllNormalIrq + CK_CPU_DisAllNormalIrq 0x000030b2 F 6 .text.CK_CPU_DisAllNormalIrq + UARTx_Init 0x000030b8 F 344 .text.UARTx_Init + UART0_RecvINT_Processing 0x00003210 F 56 .text.UART0_RecvINT_Processing + UART1_RecvINT_Processing 0x00003248 F 56 .text.UART1_RecvINT_Processing + UART1_TASK 0x00003280 F 108 .text.UART1_TASK + UART2_RecvINT_Processing 0x000032ec F 68 .text.UART2_RecvINT_Processing + UART2_TASK 0x00003330 F 120 .text.UART2_TASK + Controller485_SendData 0x000033a8 F 168 .text.Controller485_SendData + BUS485_Send 0x00003450 F 196 .text.BUS485_Send + MultSend_Task 0x00003514 F 116 .text.MultSend_Task + Set_GroupSend 0x00003588 F 100 .text.Set_GroupSend + Clear_SendFlag 0x000035ec F 16 .text.Clear_SendFlag + BUS485Send_Task 0x000035fc F 52 .text.BUS485Send_Task + BusIdle_Task 0x00003630 F 64 .text.BusIdle_Task + BusBusy_Task 0x00003670 F 92 .text.BusBusy_Task + Dbg_Println 0x000036cc F 12 .text.Dbg_Println + EEPROM_CheckSum 0x000036d8 F 22 .text.EEPROM_CheckSum + EEPROM_ReadParaInfo 0x000036f0 F 116 .text.EEPROM_ReadParaInfo + EEPROM_WriteParaInfo 0x00003764 F 68 .text.EEPROM_WriteParaInfo + EEPROM_Validate_ParaInfo 0x000037a8 F 48 .text.EEPROM_Validate_ParaInfo + EEPROM_Default_ParaInfo 0x000037d8 F 32 .text.EEPROM_Default_ParaInfo + EEPROM_Init 0x000037f8 F 84 .text.EEPROM_Init + TemCtrl_Init 0x0000384c F 348 .text.TemCtrl_Init + Tem_Valve_Ctrl 0x000039a8 F 96 .text.Tem_Valve_Ctrl + DisPlay_Task 0x00003a08 F 404 .text.DisPlay_Task + Ctrller_Query_AirState 0x00003b9c F 68 .text.Ctrller_Query_AirState + Ctrller_Ctrl_AirState 0x00003be0 F 164 .text.Ctrller_Ctrl_AirState + TemCtrl_Pro 0x00003c84 F 204 .text.TemCtrl_Pro + Ctrller_AirState_Processing 0x00003d50 F 212 .text.Ctrller_AirState_Processing + Ctrller_CtrlAirState_Processing 0x00003e24 F 32 .text.Ctrller_CtrlAirState_Processing + Ctrller_RecData_Processing 0x00003e44 F 184 .text.Ctrller_RecData_Processing + NetCRC16_Check 0x00003efc F 76 .text.NetCRC16_Check + GetCRC16 0x00003f48 F 60 .text.GetCRC16 + SOR_CRC 0x00003f84 F 22 .text.SOR_CRC + Rs485_ASend 0x00003f9c F 272 .text.Rs485_ASend + Rs485AskCycleSend 0x000040ac F 260 .text.Rs485AskCycleSend + Rs485AskCtrlSend 0x000041b0 F 92 .text.Rs485AskCtrlSend + Rs485AskReadSend 0x0000420c F 108 .text.Rs485AskReadSend + Rs485_DevPort_ACK 0x00004278 F 24 .text.Rs485_DevPort_ACK + Temp_Rec_Analysis 0x00004290 F 440 .text.Temp_Rec_Analysis + Tem_Rs485_Rec_Pro 0x00004448 F 192 .text.Tem_Rs485_Rec_Pro + DIP_GetSwitchState 0x00004508 F 52 .text.DIP_GetSwitchState + DIP_Switch_Init 0x0000453c F 140 .text.DIP_Switch_Init + DIP_ScanTask 0x000045c8 F 152 .text.DIP_ScanTask + TK_Single_Longpress_prg 0x00004660 F 296 .text.TK_Single_Longpress_prg + TK_Sampling_prog 0x00004788 F 204 .text.TK_Sampling_prog + get_key_number 0x00004854 F 40 .text.get_key_number + get_key_number0 0x0000487c F 40 .text.get_key_number0 + get_key_number1 0x000048a4 F 40 .text.get_key_number1 + get_key_number2 0x000048cc F 40 .text.get_key_number2 + TK_Scan_Start 0x000048f4 F 104 .text.TK_Scan_Start + TK_Keymap_prog 0x0000495c F 2160 .text.TK_Keymap_prog + TK_overflow_predict 0x000051cc F 296 .text.TK_overflow_predict + TK_Baseline_tracking 0x000052f4 F 1232 .text.TK_Baseline_tracking + TK_result_prog 0x000057c4 F 304 .text.TK_result_prog + TKEYIntHandler 0x000058f4 F 160 .text.TKEYIntHandler + CORETHandler 0x00005994 F 348 .text.CORETHandler + std_clk_calib 0x00005af0 F 644 .text.std_clk_calib + __thenan_df 0x00005da4 O 20 .rodata + __clz_tab 0x00005db8 O 256 .rodata + _end_rodata 0x00005fdc 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 1 .data + samp_setover_f 0x20000069 O 1 .data + scan_step_temp 0x2000006a O 1 .data + SigleTK_longpress_time 0x2000006c O 2 .data + tk_dataturn_en 0x2000006e O 1 .data + tk_overflow_en 0x2000006f O 1 .data + tk_div 0x20000070 O 34 .data + neg_build_bounce 0x20000092 O 1 .data + pos_build_bounce 0x20000093 O 1 .data + Valid_SingleKey_Num 0x20000094 O 1 .data + tk_scan_para0 0x20000098 O 4 .data + tk_scan_para1 0x2000009c O 4 .data + tk_scan_para2 0x200000a0 O 4 .data + TkeyRebaseTime 0x200000a4 O 1 .data + _end_data 0x200000a8 0 .data + Sav_Temp 0x200000a8 O 4 .bss + _bss_start 0x200000a8 0 .bss + Sys_RSR 0x200000ac O 4 .bss + SysTick_100us 0x200000b4 O 4 .bss + SysTick_1ms 0x200000b8 O 4 .bss + DealBuffer 0x200000bc O 100 .bss + DealLen 0x20000120 O 2 .bss + RS485_Comming 0x20000124 O 4 .bss + RS485_Comm_Flag 0x20000128 O 4 .bss + RS485_Comm_Start 0x2000012c O 4 .bss + RS485_Comm_End 0x20000130 O 4 .bss + RS485_Comming1 0x20000134 O 4 .bss + RS485_Comm_Flag1 0x20000138 O 4 .bss + RS485_Comm_Start1 0x2000013c O 4 .bss + RS485_Comm_End1 0x20000140 O 4 .bss + keymap_strict_mode 0x20000150 O 1 .bss + Press_debounce_data 0x20000154 O 1 .bss + TK_Lowpower_mode 0x20000155 O 1 .bss + TK_Lowpower_level 0x20000156 O 1 .bss + TK_longpress_time 0x20000158 O 4 .bss + Release_debounce_data 0x2000015c O 1 .bss + Key_mode 0x2000015d O 1 .bss + TK_icon 0x2000015e O 34 .bss + MultiTimes_Filter 0x20000180 O 1 .bss + Base_Speed 0x20000181 O 1 .bss + TK_IO_ENABLE 0x20000184 O 4 .bss + Valid_Key_Num 0x20000188 O 1 .bss + TK_senprd 0x2000018a O 34 .bss + TK_Wakeup_level 0x200001ac O 1 .bss + TK_Triggerlevel 0x200001ae O 34 .bss + TK_EC_LEVEL 0x200001d0 O 2 .bss + TK_FVR_LEVEL 0x200001d2 O 2 .bss + TK_BaseCnt 0x200001d4 O 4 .bss + TK_PSEL_MODE 0x200001d8 O 2 .bss + R_CMPB_BUF 0x200001dc O 4 .bss + R_CMPA_BUF 0x200001e0 O 4 .bss + R_SIORX_buf 0x200001e4 O 40 .bss + g_uart 0x2000020c O 348 .bss + m_send 0x20000368 O 136 .bss + g_eeprom 0x200003f0 O 8 .bss + g_mcu_dev 0x200003f8 O 37 .bss + TempCtrl 0x20000420 O 40 .bss + g_Dip 0x20000448 O 16 .bss + Tk_press_time_cnt4 0x20000458 O 4 .bss + baseline_data0 0x2000045c O 34 .bss + TK_Postive_build2 0x2000047e O 17 .bss + Key_Map1 0x20000490 O 4 .bss + Valid_Key_Num_CNT 0x20000494 O 3 .bss + offset_data2_abs 0x20000498 O 34 .bss + time_cnt0 0x200004bc O 4 .bss + offset0_max_tempB 0x200004c0 O 2 .bss + scan_f 0x200004c2 O 1 .bss + offset_data1_abs 0x200004c4 O 34 .bss + TK_Slider1_Value 0x200004e6 O 1 .bss + TK_Wheel_Value 0x200004e7 O 1 .bss + Release_debounce0 0x200004e8 O 17 .bss + Key_Map0 0x200004fc O 4 .bss + Tk_press_time_cnt2 0x20000500 O 4 .bss + TK_Slider0_Seq 0x20000504 O 4 .bss + bsae_over_f 0x20000508 O 1 .bss + Press_debounce0 0x20000509 O 17 .bss + Valid_key_f 0x2000051a O 1 .bss + offset_data0 0x2000051c O 34 .bss + offset2_max_tempA 0x2000053e O 2 .bss + TK_Scan_Freq1 0x20000540 O 4 .bss + sampling_data1 0x20000544 O 34 .bss + TK_Slider1_Level 0x20000566 O 1 .bss + TK_Slider1_Function 0x20000567 O 1 .bss + base_update_fs 0x20000568 O 3 .bss + TK_Slider0_Function 0x2000056b O 1 .bss + Tk_press_time_cnt3 0x2000056c O 4 .bss + TK_Scan_Freq2 0x20000570 O 4 .bss + Key_Map2 0x20000574 O 4 .bss + Release_debounce1 0x20000578 O 17 .bss + tk_overflow_f 0x20000589 O 1 .bss + time_cnt2 0x2000058c O 4 .bss + TK_Negtive_build2 0x20000590 O 17 .bss + base_update_f 0x200005a1 O 1 .bss + TK_Postive_build1 0x200005a2 O 17 .bss + offset_max_data 0x200005b4 O 64 .bss + time_cnt 0x200005f4 O 4 .bss + lpt_scan_pend_cnt 0x200005f8 O 2 .bss + TK_track_cnt 0x200005fa O 1 .bss + Key_Map 0x200005fc O 4 .bss + Key_Map2_temp 0x20000600 O 4 .bss + offset2_max_tempB 0x20000604 O 2 .bss + baseline_data1 0x20000606 O 34 .bss + TK_Postive_build0 0x20000628 O 17 .bss + sampling_data2 0x2000063a O 34 .bss + offset_data1 0x2000065c O 34 .bss + TK_ovrdect_cnt 0x2000067e O 1 .bss + TK_Slider0_Level 0x2000067f O 1 .bss + time_cnt1 0x20000680 O 4 .bss + Press_debounce2 0x20000684 O 17 .bss + Tk_press_time_cnt0 0x20000698 O 4 .bss + Key_Map0_temp 0x2000069c O 4 .bss + TK_Negtive_build1 0x200006a0 O 17 .bss + coret_spread_step 0x200006b1 O 1 .bss + time_cnts 0x200006b2 O 3 .bss + offset0_max_tempA 0x200006b6 O 2 .bss + tk_num 0x200006b8 O 1 .bss + TK_Slider1_Seq 0x200006b9 O 4 .bss + offset1_max_tempB 0x200006be O 2 .bss + TK_Negtive_build0 0x200006c0 O 17 .bss + R_Debounce_temp2 0x200006d4 O 4 .bss + Tk_press_time_cnt1 0x200006d8 O 4 .bss + Press_debounce1 0x200006dc O 17 .bss + TK_Wheel_Seq 0x200006ed O 4 .bss + TK_Slider0_Value 0x200006f1 O 1 .bss + Release_debounce2 0x200006f2 O 17 .bss + r_Key_Map_Temp 0x20000704 O 4 .bss + tk_seque 0x20000708 O 17 .bss + scan_step 0x20000719 O 1 .bss + TK_Wheel_Level 0x2000071a O 1 .bss + baseline_data2 0x2000071c O 34 .bss + tk_sampling_max 0x2000073e O 34 .bss + Key_Map1_temp 0x20000760 O 4 .bss + coret_spread_cnt 0x20000764 O 2 .bss + offset_data0_abs 0x20000766 O 34 .bss + offset_data2 0x20000788 O 34 .bss + TK_Wheel_Function 0x200007aa O 1 .bss + offset1_max_tempA 0x200007ac O 2 .bss + sampling_data0 0x200007ae O 34 .bss + TK_Scan_Freq0 0x200007d0 O 4 .bss + _ebss 0x200007d4 0 .bss + _end 0x200007d4 0 .bss + end 0x200007d4 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: 0x00005fdc, 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 1081 .text pow.o + 0x00000b5e 0x00000006 Code RO 1089 .text fabs.o + 0x00000b64 0x00000020 Code RO 1095 .text scalbn.o + 0x00000b84 0x00000178 Code RO 1102 .text sqrt.o + 0x00000cfc 0x00000014 Code RO 1113 .text _csky_case_uqi.o + 0x00000d10 0x00000038 Code RO 1118 .text _fixunsdfsi.o + 0x00000d48 0x0000033a Code RO 1125 .text _addsub_df.o + 0x00001082 0x00000002 PAD + 0x00001084 0x00000234 Code RO 1132 .text _mul_df.o + 0x000012b8 0x00000154 Code RO 1139 .text _div_df.o + 0x0000140c 0x0000003c Code RO 1146 .text _gt_df.o + 0x00001448 0x0000003c Code RO 1153 .text _ge_df.o + 0x00001484 0x0000003a Code RO 1160 .text _le_df.o + 0x000014be 0x00000002 PAD + 0x000014c0 0x00000070 Code RO 1167 .text _si_to_df.o + 0x00001530 0x00000070 Code RO 1174 .text _df_to_si.o + 0x000015a0 0x00000054 Code RO 1188 .text _usi_to_df.o + 0x000015f4 0x00000044 Code RO 1195 .text _muldi3.o + 0x00001638 0x00000040 Code RO 1202 .text _clzsi2.o + 0x00001678 0x0000019c Code RO 1208 .text _pack_df.o + 0x00001814 0x000000c4 Code RO 1215 .text _unpack_df.o + 0x000018d8 0x0000008c Code RO 1222 .text _fpcmp_parts_df.o + 0x00001964 0x00000088 Code RO 1243 .text memset_fast.o + 0x000019ec 0x00000064 Code RO 1248 .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 89 .text.EXI3_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 0x00000064 Code RO 130 .text.GPIO_DeInit Obj/FWlib_apt32f102_gpio.o + 0x00001e40 0x000000e0 Code RO 132 .text.GPIO_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f20 0x00000014 Code RO 135 .text.GPIO_PullHigh_Init Obj/FWlib_apt32f102_gpio.o + 0x00001f34 0x0000000e Code RO 141 .text.GPIO_DriveStrength_EN Obj/FWlib_apt32f102_gpio.o + 0x00001f44 0x0000010c Code RO 143 .text.GPIO_IntGroup_Set Obj/FWlib_apt32f102_gpio.o + 0x00002050 0x0000006c Code RO 145 .text.GPIOB0_EXI_Init Obj/FWlib_apt32f102_gpio.o + 0x000020bc 0x00000008 Code RO 147 .text.GPIO_Write_High Obj/FWlib_apt32f102_gpio.o + 0x000020c4 0x00000008 Code RO 148 .text.GPIO_Write_Low Obj/FWlib_apt32f102_gpio.o + 0x000020cc 0x00000016 Code RO 150 .text.GPIO_Reverse Obj/FWlib_apt32f102_gpio.o + 0x000020e2 0x00000010 Code RO 151 .text.GPIO_Read_Status Obj/FWlib_apt32f102_gpio.o + 0x000020f4 0x00000014 Code RO 185 .text.LPT_Soft_Reset Obj/FWlib_apt32f102_lpt.o + 0x00002108 0x00000010 Code RO 234 .text.WWDT_CNT_Load Obj/FWlib_apt32f102_wwdt.o + 0x00002118 0x0000001c Code RO 303 .text.BT_DeInit Obj/FWlib_apt32f102_bt.o + 0x00002134 0x00000008 Code RO 305 .text.BT_Start Obj/FWlib_apt32f102_bt.o + 0x0000213c 0x0000000a Code RO 309 .text.BT_Soft_Reset Obj/FWlib_apt32f102_bt.o + 0x00002146 0x00000018 Code RO 310 .text.BT_Configure Obj/FWlib_apt32f102_bt.o + 0x0000215e 0x0000002c Code RO 311 .text.BT_ControlSet_Configure Obj/FWlib_apt32f102_bt.o + 0x0000218a 0x00000006 Code RO 312 .text.BT_Period_CMP_Write Obj/FWlib_apt32f102_bt.o + 0x00002190 0x00000012 Code RO 319 .text.BT_ConfigInterrupt_CMD Obj/FWlib_apt32f102_bt.o + 0x000021a4 0x00000010 Code RO 322 .text.BT1_INT_ENABLE Obj/FWlib_apt32f102_bt.o + 0x000021b4 0x00000018 Code RO 435 .text.UART0_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021cc 0x00000018 Code RO 436 .text.UART1_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021e4 0x00000018 Code RO 437 .text.UART2_DeInit Obj/FWlib_apt32f102_uart.o + 0x000021fc 0x0000001c Code RO 440 .text.UART1_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002218 0x0000001c Code RO 442 .text.UART2_Int_Enable Obj/FWlib_apt32f102_uart.o + 0x00002234 0x000000ec Code RO 450 .text.UART_IO_Init Obj/FWlib_apt32f102_uart.o + 0x00002320 0x00000010 Code RO 452 .text.UARTInitRxTxIntEn Obj/FWlib_apt32f102_uart.o + 0x00002330 0x0000001e Code RO 456 .text.UARTTransmit Obj/FWlib_apt32f102_uart.o + 0x00002350 0x00000028 Code RO 516 .text.EPT_Stop Obj/FWlib_apt32f102_ept.o + 0x00002378 0x000000a0 Code RO 641 .text.Page_ProgramData Obj/FWlib_apt32f102_ifc.o + 0x00002418 0x0000002a Code RO 644 .text.ReadDataArry_U8 Obj/FWlib_apt32f102_ifc.o + 0x00002444 0x00000038 Code RO 705 .text.startup.main Obj/main.o + 0x0000247c 0x0000002c Code RO 721 .text.delay_nms Obj/mcu_initial.o + 0x000024a8 0x00000022 Code RO 722 .text.delay_nus Obj/mcu_initial.o + 0x000024cc 0x00000060 Code RO 725 .text.BT_CONFIG Obj/mcu_initial.o + 0x0000252c 0x00000062 Code RO 731 .text.SYSCON_CONFIG Obj/mcu_initial.o + 0x00002590 0x00000094 Code RO 732 .text.APT32F102_init Obj/mcu_initial.o + 0x00002624 0x000000f0 Code RO 748 .text.SYSCONIntHandler Obj/mcu_interrupt.o + 0x00002714 0x00000068 Code RO 749 .text.IFCIntHandler Obj/mcu_interrupt.o + 0x0000277c 0x00000068 Code RO 750 .text.ADCIntHandler Obj/mcu_interrupt.o + 0x000027e4 0x000001ac Code RO 751 .text.EPT0IntHandler Obj/mcu_interrupt.o + 0x00002990 0x00000034 Code RO 752 .text.WWDTHandler Obj/mcu_interrupt.o + 0x000029c4 0x00000080 Code RO 753 .text.GPT0IntHandler Obj/mcu_interrupt.o + 0x00002a44 0x00000070 Code RO 754 .text.RTCIntHandler Obj/mcu_interrupt.o + 0x00002ab4 0x00000060 Code RO 755 .text.UART0IntHandler Obj/mcu_interrupt.o + 0x00002b14 0x00000094 Code RO 756 .text.UART1IntHandler Obj/mcu_interrupt.o + 0x00002ba8 0x00000094 Code RO 757 .text.UART2IntHandler Obj/mcu_interrupt.o + 0x00002c3c 0x000000e8 Code RO 758 .text.SPI0IntHandler Obj/mcu_interrupt.o + 0x00002d24 0x00000054 Code RO 759 .text.SIO0IntHandler Obj/mcu_interrupt.o + 0x00002d78 0x00000030 Code RO 760 .text.EXI0IntHandler Obj/mcu_interrupt.o + 0x00002da8 0x00000030 Code RO 761 .text.EXI1IntHandler Obj/mcu_interrupt.o + 0x00002dd8 0x00000048 Code RO 762 .text.EXI2to3IntHandler Obj/mcu_interrupt.o + 0x00002e20 0x0000006c Code RO 763 .text.EXI4to9IntHandler Obj/mcu_interrupt.o + 0x00002e8c 0x00000060 Code RO 764 .text.EXI10to15IntHandler Obj/mcu_interrupt.o + 0x00002eec 0x00000034 Code RO 765 .text.LPTIntHandler Obj/mcu_interrupt.o + 0x00002f20 0x0000004c Code RO 766 .text.BT0IntHandler Obj/mcu_interrupt.o + 0x00002f6c 0x00000070 Code RO 767 .text.BT1IntHandler Obj/mcu_interrupt.o + 0x00002fdc 0x00000002 Code RO 768 .text.PriviledgeVioHandler Obj/mcu_interrupt.o + 0x00002fde 0x00000008 Code RO 770 .text.PendTrapHandler Obj/mcu_interrupt.o + 0x00002fe6 0x00000008 Code RO 771 .text.Trap3Handler Obj/mcu_interrupt.o + 0x00002fee 0x00000008 Code RO 772 .text.Trap2Handler Obj/mcu_interrupt.o + 0x00002ff6 0x00000008 Code RO 773 .text.Trap1Handler Obj/mcu_interrupt.o + 0x00002ffe 0x00000008 Code RO 774 .text.Trap0Handler Obj/mcu_interrupt.o + 0x00003006 0x00000008 Code RO 775 .text.UnrecExecpHandler Obj/mcu_interrupt.o + 0x0000300e 0x00000008 Code RO 776 .text.BreakPointHandler Obj/mcu_interrupt.o + 0x00003016 0x00000008 Code RO 777 .text.AccessErrHandler Obj/mcu_interrupt.o + 0x0000301e 0x00000008 Code RO 778 .text.IllegalInstrHandler Obj/mcu_interrupt.o + 0x00003026 0x00000008 Code RO 779 .text.MisalignedHandler Obj/mcu_interrupt.o + 0x0000302e 0x00000008 Code RO 780 .text.CNTAIntHandler Obj/mcu_interrupt.o + 0x00003036 0x00000008 Code RO 781 .text.I2CIntHandler Obj/mcu_interrupt.o + 0x00003040 0x00000024 Code RO 798 .text.__divsi3 Obj/drivers_apt32f102.o + 0x00003064 0x00000024 Code RO 799 .text.__udivsi3 Obj/drivers_apt32f102.o + 0x00003088 0x00000024 Code RO 801 .text.__umodsi3 Obj/drivers_apt32f102.o + 0x000030ac 0x00000006 Code RO 819 .text.CK_CPU_EnAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000030b2 0x00000006 Code RO 820 .text.CK_CPU_DisAllNormalIrq Obj/drivers_apt32f102_ck801.o + 0x000030b8 0x00000158 Code RO 834 .text.UARTx_Init Obj/SYSTEM_uart.o + 0x00003210 0x00000038 Code RO 835 .text.UART0_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003248 0x00000038 Code RO 837 .text.UART1_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003280 0x0000006c Code RO 838 .text.UART1_TASK Obj/SYSTEM_uart.o + 0x000032ec 0x00000044 Code RO 839 .text.UART2_RecvINT_Processing Obj/SYSTEM_uart.o + 0x00003330 0x00000078 Code RO 840 .text.UART2_TASK Obj/SYSTEM_uart.o + 0x000033a8 0x000000a8 Code RO 843 .text.Controller485_SendData Obj/SYSTEM_uart.o + 0x00003450 0x000000c4 Code RO 844 .text.BUS485_Send Obj/SYSTEM_uart.o + 0x00003514 0x00000074 Code RO 845 .text.MultSend_Task Obj/SYSTEM_uart.o + 0x00003588 0x00000064 Code RO 846 .text.Set_GroupSend Obj/SYSTEM_uart.o + 0x000035ec 0x00000010 Code RO 847 .text.Clear_SendFlag Obj/SYSTEM_uart.o + 0x000035fc 0x00000034 Code RO 849 .text.BUS485Send_Task Obj/SYSTEM_uart.o + 0x00003630 0x00000040 Code RO 851 .text.BusIdle_Task Obj/SYSTEM_uart.o + 0x00003670 0x0000005c Code RO 852 .text.BusBusy_Task Obj/SYSTEM_uart.o + 0x000036cc 0x0000000c Code RO 854 .text.Dbg_Println Obj/SYSTEM_uart.o + 0x000036d8 0x00000016 Code RO 872 .text.EEPROM_CheckSum Obj/SYSTEM_eeprom.o + 0x000036f0 0x00000074 Code RO 873 .text.EEPROM_ReadParaInfo Obj/SYSTEM_eeprom.o + 0x00003764 0x00000044 Code RO 874 .text.EEPROM_WriteParaInfo Obj/SYSTEM_eeprom.o + 0x000037a8 0x00000030 Code RO 876 .text.EEPROM_Validate_ParaInfo Obj/SYSTEM_eeprom.o + 0x000037d8 0x00000020 Code RO 877 .text.EEPROM_Default_ParaInfo Obj/SYSTEM_eeprom.o + 0x000037f8 0x00000054 Code RO 878 .text.EEPROM_Init Obj/SYSTEM_eeprom.o + 0x0000384c 0x0000015c Code RO 928 .text.TemCtrl_Init Obj/SYSTEM_tempctrl_unit.o + 0x000039a8 0x00000060 Code RO 929 .text.Tem_Valve_Ctrl Obj/SYSTEM_tempctrl_unit.o + 0x00003a08 0x00000194 Code RO 930 .text.DisPlay_Task Obj/SYSTEM_tempctrl_unit.o + 0x00003b9c 0x00000044 Code RO 932 .text.Ctrller_Query_AirState Obj/SYSTEM_tempctrl_unit.o + 0x00003be0 0x000000a4 Code RO 933 .text.Ctrller_Ctrl_AirState Obj/SYSTEM_tempctrl_unit.o + 0x00003c84 0x000000cc Code RO 934 .text.TemCtrl_Pro Obj/SYSTEM_tempctrl_unit.o + 0x00003d50 0x000000d4 Code RO 936 .text.Ctrller_AirState_Processing Obj/SYSTEM_tempctrl_unit.o + 0x00003e24 0x00000020 Code RO 937 .text.Ctrller_CtrlAirState_Processing Obj/SYSTEM_tempctrl_unit.o + 0x00003e44 0x000000b8 Code RO 938 .text.Ctrller_RecData_Processing Obj/SYSTEM_tempctrl_unit.o + 0x00003efc 0x0000004c Code RO 956 .text.NetCRC16_Check Obj/SYSTEM_uart_protocol.o + 0x00003f48 0x0000003c Code RO 957 .text.GetCRC16 Obj/SYSTEM_uart_protocol.o + 0x00003f84 0x00000016 Code RO 958 .text.SOR_CRC Obj/SYSTEM_uart_protocol.o + 0x00003f9c 0x00000110 Code RO 959 .text.Rs485_ASend Obj/SYSTEM_uart_protocol.o + 0x000040ac 0x00000104 Code RO 960 .text.Rs485AskCycleSend Obj/SYSTEM_uart_protocol.o + 0x000041b0 0x0000005c Code RO 961 .text.Rs485AskCtrlSend Obj/SYSTEM_uart_protocol.o + 0x0000420c 0x0000006c Code RO 962 .text.Rs485AskReadSend Obj/SYSTEM_uart_protocol.o + 0x00004278 0x00000018 Code RO 963 .text.Rs485_DevPort_ACK Obj/SYSTEM_uart_protocol.o + 0x00004290 0x000001b8 Code RO 964 .text.Temp_Rec_Analysis Obj/SYSTEM_uart_protocol.o + 0x00004448 0x000000c0 Code RO 965 .text.Tem_Rs485_Rec_Pro Obj/SYSTEM_uart_protocol.o + 0x00004508 0x00000034 Code RO 982 .text.DIP_GetSwitchState Obj/SYSTEM_dip_switch.o + 0x0000453c 0x0000008c Code RO 983 .text.DIP_Switch_Init Obj/SYSTEM_dip_switch.o + 0x000045c8 0x00000098 Code RO 984 .text.DIP_ScanTask Obj/SYSTEM_dip_switch.o + 0x00004660 0x00000128 Code RO 1019 .text.TK_Single_Longpress_prg FWlib_apt32f102_tkey_f_1_18.o + 0x00004788 0x000000cc Code RO 1020 .text.TK_Sampling_prog FWlib_apt32f102_tkey_f_1_18.o + 0x00004854 0x00000028 Code RO 1024 .text.get_key_number FWlib_apt32f102_tkey_f_1_18.o + 0x0000487c 0x00000028 Code RO 1025 .text.get_key_number0 FWlib_apt32f102_tkey_f_1_18.o + 0x000048a4 0x00000028 Code RO 1026 .text.get_key_number1 FWlib_apt32f102_tkey_f_1_18.o + 0x000048cc 0x00000028 Code RO 1027 .text.get_key_number2 FWlib_apt32f102_tkey_f_1_18.o + 0x000048f4 0x00000068 Code RO 1031 .text.TK_Scan_Start FWlib_apt32f102_tkey_f_1_18.o + 0x0000495c 0x00000870 Code RO 1032 .text.TK_Keymap_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000051cc 0x00000128 Code RO 1033 .text.TK_overflow_predict FWlib_apt32f102_tkey_f_1_18.o + 0x000052f4 0x000004d0 Code RO 1034 .text.TK_Baseline_tracking FWlib_apt32f102_tkey_f_1_18.o + 0x000057c4 0x00000130 Code RO 1035 .text.TK_result_prog FWlib_apt32f102_tkey_f_1_18.o + 0x000058f4 0x000000a0 Code RO 1041 .text.TKEYIntHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00005994 0x0000015c Code RO 1042 .text.CORETHandler FWlib_apt32f102_tkey_f_1_18.o + 0x00005af0 0x00000284 Code RO 1061 .text.std_clk_calib FWlib_apt32f102_clkcalib.o + 0x00005d74 0x00000030 Data RO 1084 .rodata pow.o + 0x00005da4 0x00000014 Data RO 1184 .rodata _thenan_df.o + 0x00005db8 0x00000100 Data RO 1232 .rodata _clz.o + 0x00005eb8 0x0000000e Data RO 706 .rodata.str1.1 Obj/main.o + 0x00005ec6 0x0000007c Data RO 883 .rodata.str1.1 Obj/SYSTEM_eeprom.o + 0x00005f42 0x0000004f Data RO 939 .rodata.str1.1 Obj/SYSTEM_tempctrl_unit.o + 0x00005f91 0x0000002c Data RO 966 .rodata.str1.1 Obj/SYSTEM_uart_protocol.o + 0x00005fbd 0x0000001f Data RO 985 .rodata.str1.1 Obj/SYSTEM_dip_switch.o + + Region RAM (Base: 0x20000000, Size: 0x000007d4, Max: 0x00001000) + + Base Addr Size Type Attr Idx Section Name Object + 0x20000000 0x00000068 Data RW 796 .data Obj/drivers_apt32f102.o + 0x20000068 0x0000003d Data RW 1009 .data FWlib_apt32f102_tkey_f_1_18.o + 0x200000a5 0x00000003 PAD + 0x200000a8 0x00000008 Zero RW 704 .bss Obj/main.o + 0x200000b0 0x0000000c Zero RW 747 .bss Obj/mcu_interrupt.o + 0x200000bc 0x00000088 Zero RW 833 .bss Obj/SYSTEM_uart.o + 0x20000144 0x00000008 Zero RW 927 .bss Obj/SYSTEM_tempctrl_unit.o + 0x2000014c 0x00000004 Zero RW 981 .bss Obj/SYSTEM_dip_switch.o + 0x20000150 0x00000001 Zero RW 1010 .bss FWlib_apt32f102_tkey_f_1_18.o + 0x20000151 0x00000003 PAD + 0x20000154 0x00000086 Zero RW 676 COMMON Obj/FWlib_apt32f102_tkey_parameter.o + 0x200001da 0x00000002 PAD + 0x200001dc 0x00000030 Zero RW 794 COMMON Obj/mcu_interrupt.o + 0x2000020c 0x000001e4 Zero RW 868 COMMON Obj/SYSTEM_uart.o + 0x200003f0 0x0000002d Zero RW 896 COMMON Obj/SYSTEM_eeprom.o + 0x2000041d 0x00000003 PAD + 0x20000420 0x00000028 Zero RW 952 COMMON Obj/SYSTEM_tempctrl_unit.o + 0x20000448 0x00000010 Zero RW 998 COMMON Obj/SYSTEM_dip_switch.o + 0x20000458 0x0000037c Zero RW 1057 COMMON FWlib_apt32f102_tkey_f_1_18.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 276 Obj/arch_crt0.o + 56 0 0 0 810 Obj/arch_mem_init.o + 0 0 0 0 0 Obj/arch_apt32f102_iostring.o + 852 0 0 0 21139 Obj/FWlib_apt32f102_syscon.o + 788 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 + 410 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 134 8693 Obj/FWlib_apt32f102_tkey_parameter.o + 0 0 0 0 0 Obj/FWlib_apt32f102_coret.o + 56 14 0 8 12083 Obj/main.o + 420 0 0 0 16825 Obj/mcu_initial.o + 2586 0 0 60 15349 Obj/mcu_interrupt.o + 108 0 104 0 8379 Obj/drivers_apt32f102.o + 12 0 0 0 8319 Obj/drivers_apt32f102_ck801.o + 1568 0 0 620 16226 Obj/SYSTEM_uart.o + 370 124 0 45 13118 Obj/SYSTEM_eeprom.o + 0 0 0 0 0 Obj/SYSTEM_Bootload_fun.o + 1712 79 0 48 13255 Obj/SYSTEM_tempctrl_unit.o + 1546 44 0 0 13567 Obj/SYSTEM_uart_protocol.o + 344 31 0 20 11467 Obj/SYSTEM_dip_switch.o + 0 0 0 0 0 Obj/__rt_entry.o + ------------------------------------------------------------ + 11696 292 104 935 262908 Object Totals + 4 0 3 8 0 Pad + 0 0 0 0 0 LD_GEN + + ------------------------------------------------------------ + [Library Name]: .\lib_102TKey_f_1_18B_240629.a + ------------------------------------------------------------ + Code RO Data RW Data ZI Data Debug Library Member Name + + 5264 0 61 893 20070 FWlib_apt32f102_tkey_f_1_18.o + ------------------------------------------------------------ + 5264 0 61 893 20070 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 + 23904 616 168 1836 291653 Grand Totals + 23904 616 168 1836 291653 Elf Image Totals + 23904 616 168 0 0 ROM Totals + +====================================================================== + +Total RO Size (Code + RO Data) 24520 ( 23.95kB) +Total RW Size (RW Data + ZI Data) 2004 ( 1.96kB) +Total ROM Size (Code + RO Data + RW Data) 24688 ( 24.11kB) + +====================================================================== diff --git a/T1_TC_ZH_V01_20251128/Source/MD203F8P.mk b/T1_TC_ZH_V01_20251128/Source/MD203F8P.mk new file mode 100644 index 0000000..7b32997 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/MD203F8P.mk @@ -0,0 +1,278 @@ +## +## 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 :=27/11/2025 +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 :=T1_TC_34650_ZH_V01 +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)RF_SDK/inc $(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)RF_SDK/inc $(IncludeSwitch)SYSTEM/inc $(IncludeSwitch)USRCTRL/inc +Libs := -Wl,--start-group -Wl,--end-group $(LibrarySwitch)_102TKey_f_1_18B_240629 $(LibrarySwitch)_102ClkCalib_1_03 $(LibrarySwitch)m +ArLibs := "lib_102TKey_f_1_18B_240629" "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_tkey_parameter$(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_eeprom$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_Bootload_fun$(ObjectSuffix) \ + $(IntermediateDirectory)/SYSTEM_tempctrl_unit$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_uart_protocol$(ObjectSuffix) $(IntermediateDirectory)/SYSTEM_dip_switch$(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_tkey_parameter$(ObjectSuffix): FWlib/apt32f102_tkey_parameter.c + $(CC) $(SourceSwitch) FWlib/apt32f102_tkey_parameter.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/FWlib_apt32f102_tkey_parameter$(ObjectSuffix) -MF$(IntermediateDirectory)/FWlib_apt32f102_tkey_parameter$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/FWlib_apt32f102_tkey_parameter$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/FWlib_apt32f102_tkey_parameter$(PreprocessSuffix): FWlib/apt32f102_tkey_parameter.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/FWlib_apt32f102_tkey_parameter$(PreprocessSuffix) FWlib/apt32f102_tkey_parameter.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_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_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_tempctrl_unit$(ObjectSuffix): SYSTEM/tempctrl_unit.c + $(CC) $(SourceSwitch) SYSTEM/tempctrl_unit.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_tempctrl_unit$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_tempctrl_unit$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_tempctrl_unit$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_tempctrl_unit$(PreprocessSuffix): SYSTEM/tempctrl_unit.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_tempctrl_unit$(PreprocessSuffix) SYSTEM/tempctrl_unit.c + +$(IntermediateDirectory)/SYSTEM_uart_protocol$(ObjectSuffix): SYSTEM/uart_protocol.c + $(CC) $(SourceSwitch) SYSTEM/uart_protocol.c $(CFLAGS) -MMD -MP -MT$(IntermediateDirectory)/SYSTEM_uart_protocol$(ObjectSuffix) -MF$(IntermediateDirectory)/SYSTEM_uart_protocol$(DependSuffix) $(ObjectSwitch)$(IntermediateDirectory)/SYSTEM_uart_protocol$(ObjectSuffix) $(IncludeCPath) $(IncludePackagePath) +Lst/SYSTEM_uart_protocol$(PreprocessSuffix): SYSTEM/uart_protocol.c + $(CC) $(CFLAGS)$(IncludeCPath) $(PreprocessOnlySwitch) $(OutputSwitch) Lst/SYSTEM_uart_protocol$(PreprocessSuffix) SYSTEM/uart_protocol.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)/__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/T1_TC_ZH_V01_20251128/Source/MD203F8P.modify.bat b/T1_TC_ZH_V01_20251128/Source/MD203F8P.modify.bat new file mode 100644 index 0000000..fc3c788 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/MD203F8P.txt b/T1_TC_ZH_V01_20251128/Source/MD203F8P.txt new file mode 100644 index 0000000..0d52d0d --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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_tkey_parameter.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_touch_key.o Obj/SYSTEM_eeprom.o Obj/SYSTEM_adc.o Obj/SYSTEM_ht1621.o Obj/USRCTRL_tempctrl_unit.o Obj/USRCTRL_key_logic.o Obj/USRCTRL_display_logic.o Obj/USRCTRL_debug_unit.o Obj/USRCTRL_rf_uart_protocol.o Obj/USRCTRL_myrelay.o Obj/__rt_entry.o \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/Makefile b/T1_TC_ZH_V01_20251128/Source/Makefile new file mode 100644 index 0000000..dc3cb84 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_adc.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_adc.d new file mode 100644 index 0000000..1b0fd65 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_adc.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_adc.o new file mode 100644 index 0000000..e6ba4e1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_adc.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_bt.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_bt.d new file mode 100644 index 0000000..d3afe77 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_bt.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_bt.o new file mode 100644 index 0000000..eca682d Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_bt.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_coret.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_coret.d new file mode 100644 index 0000000..c348c18 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_coret.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_coret.o new file mode 100644 index 0000000..ba02822 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_coret.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_countera.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_countera.d new file mode 100644 index 0000000..7e6968f --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_countera.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_countera.o new file mode 100644 index 0000000..ff07289 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_countera.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_crc.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_crc.d new file mode 100644 index 0000000..20a9e11 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_crc.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_crc.o new file mode 100644 index 0000000..d00ee93 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_crc.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ept.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ept.d new file mode 100644 index 0000000..b340f6c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ept.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ept.o new file mode 100644 index 0000000..c688b72 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ept.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_et.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_et.d new file mode 100644 index 0000000..53a2f02 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_et.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_et.o new file mode 100644 index 0000000..5ed653f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_et.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpio.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpio.d new file mode 100644 index 0000000..86af067 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpio.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpio.o new file mode 100644 index 0000000..e2f6072 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpio.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpt.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpt.d new file mode 100644 index 0000000..fd9e95c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpt.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpt.o new file mode 100644 index 0000000..3ebcaa6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_gpt.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_i2c.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_i2c.d new file mode 100644 index 0000000..d3e7f34 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_i2c.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_i2c.o new file mode 100644 index 0000000..3c93fa7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_i2c.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ifc.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ifc.d new file mode 100644 index 0000000..1913cf8 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ifc.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ifc.o new file mode 100644 index 0000000..8519fb4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_ifc.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_lpt.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_lpt.d new file mode 100644 index 0000000..deda227 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_lpt.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_lpt.o new file mode 100644 index 0000000..6d04dd1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_lpt.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_rtc.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_rtc.d new file mode 100644 index 0000000..615321c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_rtc.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_rtc.o new file mode 100644 index 0000000..751c722 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_rtc.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_sio.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_sio.d new file mode 100644 index 0000000..a96733c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_sio.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_sio.o new file mode 100644 index 0000000..3f406ad Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_sio.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_spi.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_spi.d new file mode 100644 index 0000000..097eac5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_spi.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_spi.o new file mode 100644 index 0000000..5c57143 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_spi.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_syscon.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_syscon.d new file mode 100644 index 0000000..622babc --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_syscon.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_syscon.o new file mode 100644 index 0000000..83070dc Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_syscon.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_tkey_parameter.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_tkey_parameter.d new file mode 100644 index 0000000..e42f532 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_tkey_parameter.d @@ -0,0 +1,11 @@ +Obj/FWlib_apt32f102_tkey_parameter.o: FWlib/apt32f102_tkey_parameter.c \ + include/apt32f102_tkey.h include/apt32f102.h \ + include/apt32f102_types_local.h include/apt32f102_ck801.h + +include/apt32f102_tkey.h: + +include/apt32f102.h: + +include/apt32f102_types_local.h: + +include/apt32f102_ck801.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_tkey_parameter.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_tkey_parameter.o new file mode 100644 index 0000000..1f628b3 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_tkey_parameter.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_uart.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_uart.d new file mode 100644 index 0000000..cb50615 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_uart.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_uart.o new file mode 100644 index 0000000..801c22c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_uart.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_wwdt.d b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_wwdt.d new file mode 100644 index 0000000..671e7e6 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_wwdt.o b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_wwdt.o new file mode 100644 index 0000000..06d2000 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/FWlib_apt32f102_wwdt.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/MD203F8P.txt b/T1_TC_ZH_V01_20251128/Source/Obj/MD203F8P.txt new file mode 100644 index 0000000..06815f3 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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_tkey_parameter.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_eeprom.o Obj/SYSTEM_Bootload_fun.o Obj/SYSTEM_tempctrl_unit.o Obj/SYSTEM_uart_protocol.o Obj/SYSTEM_dip_switch.o Obj/__rt_entry.o \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_Bootload_fun.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_Bootload_fun.d new file mode 100644 index 0000000..d4de25b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/eeprom.h \ + SYSTEM/inc/tempctrl_unit.h SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_Bootload_fun.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_Bootload_fun.o new file mode 100644 index 0000000..2f5ccd7 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_Bootload_fun.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_adc.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_adc.d new file mode 100644 index 0000000..449fe76 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_adc.d @@ -0,0 +1,101 @@ +Obj/SYSTEM_adc.o: SYSTEM/adc.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/touch_key.h SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h \ + SYSTEM/inc/adc.h SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/myrelay.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h SYSTEM/inc/switch_fun.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_adc.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_adc.o new file mode 100644 index 0000000..91bb7be Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_adc.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_dip_switch.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_dip_switch.d new file mode 100644 index 0000000..2cdb01b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/eeprom.h \ + SYSTEM/inc/tempctrl_unit.h SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_dip_switch.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_dip_switch.o new file mode 100644 index 0000000..be32324 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_dip_switch.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_display_logic.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_display_logic.d new file mode 100644 index 0000000..27e8b82 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_display_logic.d @@ -0,0 +1,83 @@ +Obj/SYSTEM_display_logic.o: SYSTEM/display_logic.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/eeprom.h \ + SYSTEM/inc/display_logic.h SYSTEM/inc/tempctrl_unit.h \ + SYSTEM/inc/tempctrl_unit.h SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h \ + SYSTEM/inc/Bootload_fun.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/eeprom.h: + +SYSTEM/inc/display_logic.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_display_logic.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_display_logic.o new file mode 100644 index 0000000..6ed0210 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_display_logic.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_eeprom.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_eeprom.d new file mode 100644 index 0000000..ebf1ace --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_eeprom.d @@ -0,0 +1,80 @@ +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/eeprom.h SYSTEM/inc/tempctrl_unit.h \ + SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_eeprom.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_eeprom.o new file mode 100644 index 0000000..182e498 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_eeprom.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_ht1621.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_ht1621.d new file mode 100644 index 0000000..87cc78e --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_ht1621.d @@ -0,0 +1,101 @@ +Obj/SYSTEM_ht1621.o: SYSTEM/ht1621.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/touch_key.h SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h \ + SYSTEM/inc/adc.h SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/myrelay.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h SYSTEM/inc/switch_fun.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_ht1621.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_ht1621.o new file mode 100644 index 0000000..c3351ed Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_ht1621.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_switch_fun.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_switch_fun.d new file mode 100644 index 0000000..2198192 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_switch_fun.d @@ -0,0 +1,101 @@ +Obj/SYSTEM_switch_fun.o: SYSTEM/switch_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/touch_key.h \ + SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h SYSTEM/inc/adc.h \ + SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h USRCTRL/inc/display_logic.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/myrelay.h USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h \ + SYSTEM/inc/switch_fun.h SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_switch_fun.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_switch_fun.o new file mode 100644 index 0000000..3b4301e Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_switch_fun.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tempctrl_unit.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tempctrl_unit.d new file mode 100644 index 0000000..736deb0 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tempctrl_unit.d @@ -0,0 +1,80 @@ +Obj/SYSTEM_tempctrl_unit.o: SYSTEM/tempctrl_unit.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/eeprom.h \ + SYSTEM/inc/tempctrl_unit.h SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tempctrl_unit.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tempctrl_unit.o new file mode 100644 index 0000000..1a3052a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tempctrl_unit.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tm1812.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tm1812.d new file mode 100644 index 0000000..b49e796 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tm1812.d @@ -0,0 +1,101 @@ +Obj/SYSTEM_tm1812.o: SYSTEM/tm1812.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/touch_key.h SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h \ + SYSTEM/inc/adc.h SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/myrelay.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h SYSTEM/inc/switch_fun.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tm1812.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tm1812.o new file mode 100644 index 0000000..a5ef7bf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_tm1812.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_touch_key.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_touch_key.d new file mode 100644 index 0000000..f055246 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_touch_key.d @@ -0,0 +1,101 @@ +Obj/SYSTEM_touch_key.o: SYSTEM/touch_key.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/touch_key.h SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h \ + SYSTEM/inc/adc.h SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/myrelay.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h SYSTEM/inc/switch_fun.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_touch_key.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_touch_key.o new file mode 100644 index 0000000..2468017 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_touch_key.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart.d new file mode 100644 index 0000000..9a1a472 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart.d @@ -0,0 +1,80 @@ +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/eeprom.h SYSTEM/inc/tempctrl_unit.h \ + SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart.o new file mode 100644 index 0000000..84660f1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart_protocol.d b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart_protocol.d new file mode 100644 index 0000000..27eab3b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart_protocol.d @@ -0,0 +1,80 @@ +Obj/SYSTEM_uart_protocol.o: SYSTEM/uart_protocol.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/eeprom.h \ + SYSTEM/inc/tempctrl_unit.h SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart_protocol.o b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart_protocol.o new file mode 100644 index 0000000..92f52da Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/SYSTEM_uart_protocol.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_V06_20250815.elf b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_V06_20250815.elf new file mode 100644 index 0000000..5ca7a91 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_V06_20250815.elf differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH.elf b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH.elf new file mode 100644 index 0000000..a71b299 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH.elf differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH.ihex b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH.ihex new file mode 100644 index 0000000..f2a1480 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH.ihex @@ -0,0 +1,1608 @@ +:100000000C010000263000001630000084010000C2 +:100010001E300000DC2F0000840100000E300000C4 +:10002000063000008401000084010000840100000B +:1000300084010000840100008401000084010000AC +:10004000FE2F0000F62F0000EE2F0000E62F00002C +:10005000840100008401000084010000840100008C +:10006000840100008401000084010000840100007C +:10007000840100008401000084010000DE2F0000E4 +:100080009459000024260000142700007C2700005B +:10009000E42700008401000090290000782D000072 +:1000A000A82D0000C4290000840100008401000084 +:1000B000442A0000B42A0000142B0000A82B0000E2 +:1000C0008401000036300000840100003C2C000058 +:1000D000242D0000D82D0000202E00008C2E0000C2 +:1000E0002E300000F4580000EC2E000084010000C7 +:1000F000202F00006C2F000084010000840100000C +:100100000500AA550000000000000000003000318A +:100110000032003300340035003600375B1002C077 +:10012000216400C02260A83A02C020643810003266 +:1001300040B1F8109F6FCF5F04338D5F003503240B +:10014000A0B41865FD0B1410C17B036C036C8FEA1F +:10015000130013100078036C036C036C036C036CC6 +:100160009010436DA0B400C021602F1001C02B641B +:100170002E10003020B02E1001C02B642D10003046 +:1001800020B0FA07F90700000000000090EF00E03F +:10019000F80F0020501A0000600100004424000005 +:1001A00000300020FFFF0000FF0F0000EEEE000017 +:1001B000EE0E0000D4142D1460B86143814B42B898 +:1001C000906C403AC36D876D030800E86204A1415A +:1001D000A14D550049650C0896640308403808088D +:1001E0000965060892640E08029840380B0C429884 +:1001F00060981F6C5B6C00E01307036D136C0D14AB +:100200009414DF3E510C2101002905654B08620161 +:10021000002B0D65490C545404018060343A2108C8 +:100220003433CA6042988D704B6C4C7002984264B3 +:100230003B08013184680233495B0298403841B879 +:100240006208510192641F082F015460C46D403F41 +:100250002D08609800324F6C003000E0F906CE07A0 +:10026000229840394E0814314A60936C86700B6CAA +:1002700004701264030C00E87104013184680230D8 +:10028000695861B82002526425088098DF3C030851 +:1002900000E807049F6CDB6C0030250200E00E08CC +:1002A000AD070232CB070032C9076902002B4D654A +:1002B0000098080CDF38030800E8EF030034003131 +:1002C0009E07DF38FC0F0034436C803278424C606C +:1002D00096078033174340980A6408089F6CDB6CCC +:1002E0001F6C5B6C00E0D006890776022098C6641C +:1002F0000A08DF3E08081F6C5B6C00E045047E07BF +:10030000003361B81F6C5B6C83B800E02A04403F87 +:10031000036D63982608403D050C424602030A64BB +:1003200020084098DF3A080C936CC76C00302A0311 +:1003300000E0C407036DDF3E620F6B034C61019860 +:10034000406D403D0A08936CC76C0B6C4F6C00E02D +:100350007F06836CC76CA3074198413A500BB607E0 +:100360005F4E002A47B807984198806C403A0408CD +:100370009F6CDB6CEB075703C964BF0C5803C9645F +:100380007F030C0C002B4D650F082098DF39970F69 +:100390005C037B030B6C4F6CA607012B4D65F60FBE +:1003A00018134165050C00982038F30F88070032B8 +:1003B00074131F6C5B6CC03600E04A0657467A1314 +:1003C000436D076D00E06006C36D876D57137813AA +:1003D000176C536C00E0580603B824B8003275134C +:1003E000176C536C00E05006836CC76C1213331308 +:1003F00000E02E06976CD36C00E04606836CC76C59 +:100400000030231300E0240605B8976CD36C26B89F +:10041000176C536C00E03806836CC76C05982698FF +:1004200000E032064613601300E02E06836CC76CB2 +:100430000398249800E00C06836CC76C436D076D2D +:100440001F6C5B6C00E0EC059F6CDB6C003023B82C +:1004500000E0FE05836CC76C176C536C00E0F80578 +:10046000076D219800294798486C4039436D020C6C +:10047000F005741261B86098003202984F6C00E089 +:10048000E7056398003200E0FF05C36D876D429871 +:100490006098176C536C00E0F705836CC76C1F6C99 +:1004A0005B6C00E0BD05C36D6098876D00322398DA +:1004B000003000E0E90502B803B824B8836CC76CCB +:1004C000476D1F6C5B6C00E0AB05076D3E110029AA +:1004D000056500B8030800E8B3027C11D060C06C69 +:1004E000403B0208B8054E116E110030219800E023 +:1004F000CB054B116B11F706D5115965A609136C85 +:1005000000327F1000E0C0050037036D476D342FC7 +:1005100014553D10AC454C4D04606E111C608D644B +:10052000F81004B8C86D090CCB119964900D836C58 +:1005300000220A1144B8C0610035C3456811234543 +:10054000D860409328B86193136C5F6C45B866B867 +:1005500000E07E0509B8459866982AB8136C5F6C70 +:1005600000E05E05836CC76C0030261000E0A60634 +:10057000836CC76C360400000000F07F000040432D +:100580000000F03F01FCFFFF000010C00000E03F52 +:100590000000C0FF0000E0410000F0439C750088AF +:1005A0003CE4377E4715F73F44DF5DF80BAE543E21 +:1005B0000000D03F555555555555D53FFE822B650A +:1005C0000000F0BF00009040000070BFFFFF0F0070 +:1005D0008E98030079B60B000000F0FF745D0000F8 +:1005E0000BB82CB809982A9800E04E0503B8803261 +:1005F0000157876DBD382C420460B2454061D76C0D +:1006000000325B6C003000E03F05836CC76C0998DA +:100610002A9800E01D0509B8459866982AB8003068 +:10062000576C00E01505836CC76C136C5F6C00E0C1 +:100630000F05DB6C003200E02705836CC76C09985E +:100640002A9800E005054B986C9800E01D0543983A +:10065000DB6C05B826B80B6C5B6C00E0150582EA14 +:10066000130183EA1301436D076D00E00D0582EA73 +:10067000110183EA110100E0D304976CD36C00E010 +:10068000030582EA0E0183EA0E0100E0C904976CBB +:10069000D36C00E0F90482EA0B0183EA0B0100E06D +:1006A000BF04976CD36C00E0EF0482EA080183EA90 +:1006B000080100E0B504976CD36C00E0E50482EA21 +:1006C000050183EA050100E0AB04C36D976CD36CB0 +:1006D00029B8176C536C00E0D704836CC76C1F6C8F +:1006E000299800E0D104436D076DDB6C003203985C +:1006F0005B6C00E095044598669800E0C504976C33 +:10070000D36C00E08D04436DDB6C29B800325B6C68 +:10071000003000E0B90400326F00C36D2AB800E079 +:100720007F04976C699800E07B04076DC76C00320A +:100730005B6C003000E0A8040BB82CB800327800E5 +:10074000536C003000E084049F6C6A9800E08004E1 +:10075000836CC76C176C299800E07A044398DB6CB3 +:1007600000E09204836D476DD36C003205982698A3 +:1007700000E08A04836CC76C1B6C576C00E050046B +:10078000C36D876D836CC76C0B982C9800E0480490 +:10079000E033584300306D01076D00E0750405B883 +:1007A00026B84B986C98536C003000E05104836C71 +:1007B000C76C1F6C5B6C00E04B045501770100E0D7 +:1007C0006304C36D476D57017701536C003000E03F +:1007D0005B04836CC76C1F6C576C00E02104DB0169 +:1007E000489888614496659600E01A0409B8049810 +:1007F0002AB800E06706836D0202476D1F20289823 +:1008000004608090E19049986A980598269800E0E5 +:100810000704936CDF6C00E003049B6CD76C00E072 +:10082000FF039B6CD76C003023B800E01104936C7D +:10083000DF6C00E00D044598669800E00904836CC5 +:10084000C76C09982A980B060037630601357606AF +:1008500077021106570276021F6C5B6C00E0E00322 +:1008600005B826B84298D76C0098536C00E0F003A6 +:10087000836CC76C0598269800E0CA0520380208EA +:1008800033062144014961030D64FD0C34504203D9 +:10089000803048604D40867090606142354B050362 +:1008A00040606503C6700B6C0D684C42C36C4C4ACB +:1008B0001430B43A25588670DF3C40B8050C409897 +:1008C00000340A6180B800320298576C00E0C0031F +:1008D00003B824B803989F6CDB6C249800E0A00355 +:1008E000003274030030076D00E0CE03476D43987B +:1008F000649802B8536C003000E0AA03836CC76CA4 +:100900001F6C5B6C00E0A4035D037C0300E0BC0390 +:10091000C36D876D5E037D03536C003000E0B4034C +:10092000836CC76C1F6C5B6C00E07A03076D836C93 +:10093000C76C03B8576C029800E072034298D76CFA +:10094000C36D876D00E08403836CC76C0398536CA0 +:1009500000E07E0302B823B89F6CDB6C1F6C5B6CFD +:1009600000E092034F137013436D076D00E08C039A +:100970004E136F1300E06C03976CD36C00E084039C +:100980004C136D1300E04C03976CD36C00E07C03B8 +:100990004A136B1300E05C03976CD36C00E07403A4 +:1009A0004813691300E03C03976CD36C00E06C03C0 +:1009B000836CC76C1F6C5B6C00E04A03436D076D72 +:1009C000836CC76C1F6C5B6C00E05E03803304B803 +:1009D00025B800327743176C536C00E03903836C01 +:1009E000C76C0498259800E06904076D436D429830 +:1009F00063981F6C5B6C00E047034298639800E0CB +:100A00000F03836CC76C176C536C00E021039F6C61 +:100A1000DB6C00E01D03836CC76C0030351100E017 +:100A2000170340987442C4609453203C2F0C4098A4 +:100A300000E09A000032619800E856FC01446148E9 +:100A40004212C9641F0F221250600098406C403956 +:100A50000B0C401260120030219800E015035D116C +:100A60007D1100E841FC4298D76C0098536C00E07F +:100A7000EF02836CC76C1F6C5B6C00E005052038CF +:100A8000010FE8070035A0B826074F6CD4070034E3 +:100A9000381000E8B5FB0034209800E8B1FB1F6D6A +:100AA0005B6C00E8ADFB0000EF4E454A287ECA3F74 +:100AB00065DBC9934A86CD3F01411DA96074D13FD2 +:100AC0004D268F515555D53FFFAB6FDBB66DDB3FE4 +:100AD000033333333333E33F0000084009C7EE3FAD +:100AE000FD033ADCF5015B14E02F3EBE745D0000AF +:100AF0000000F03FFE822B654715973C0000E03F69 +:100B000002FCFFFF01FCFFFFFFFF0F00432EE63F4B +:100B1000EF39FAFE422EE63F396CA80C615C20BE2C +:100B2000D0A4BE726937663EF16BD2C541BDBB3EF3 +:100B30002CDE25AF6A56113F93BDBE166CC1663FD1 +:100B40003E5555555555C53FFFCB904000346F3F3E +:100B500059F3F8C21F6EA501003300E894FB214150 +:100B600021493C78C114C76CC06C403B080C65102F +:100B7000076D0C69544290604D68486C8114000008 +:100B80000000F07FD41423147A12436D076D076CB4 +:100B90004C68C664976C1208D36C176C536C00E0F9 +:100BA0007302836CC76C176C536C00E03902436DA1 +:100BB000076D176C536C03149414203C130C6144A0 +:100BC000214B546C4039F60F403C0C0C976CD36CA5 +:100BD000176C536C00E03C02836CC76C00E06E0342 +:100BE000E7079454403C12084038760C80350033B7 +:100BF0002D45836D8469403E730C235B203606616E +:100C00008E614B6C5970046C8C707B110C610136D9 +:100C10000C4090690C48403EB438050C3F4AA14056 +:100C2000145941427F4AC060815480360031C0600F +:100C300082B8414216350E4620B880590D65060827 +:100C4000C0988061205CD260C0B8002D9F4A61438B +:100C5000403DD06041420148F10B203680340030E5 +:100C6000C1B89844C564D45C05084E641008886512 +:100C70000E0CDF3EB05E370CDF3D3508E25988656B +:100C8000C6600208002B9A6010605F6CDF4A8C61BE +:100C9000D860C198002E403E4142814CC1B8E30B60 +:100CA000C86C403B090C0033002BC2641E0800983E +:100CB000002000B8003001346098A0980C694155BC +:100CC0002E10403C48600148020CBF38A298944561 +:100CD0000461436D6F070B4A142C5542860701408F +:100CE00000238807C76DCC0700208038E507000087 +:100CF0000000F07F01FCFFFF0000E03F211420B85E +:100D00007F6C406020812141C463209801143C78AD +:100D1000D21400326C10436D076D00E09703DF388A +:100D2000060C176C536C00E0050492140032661038 +:100D3000176C536C00E08C0100E0FC0380337843B7 +:100D40000C6092140000E041C4142A146090013B2E +:100D5000CB6D670C4091013A660C443BDE0C443A83 +:100D6000620C423AB70C423B5E0C43906490829016 +:100D7000A29142B863B84391649140B861B8755C80 +:100D8000DF3B8F6CD2083F369964500C1565BF0C61 +:100D90000032003340B861B8619041918E64780CA4 +:100DA000403BAD0C009821984298639800640B601A +:100DB0004F60DF39BD08003361B782B7836CC76C01 +:100DC00003B724B70030003100280029016409600E +:100DD0004D608F035064670C0665FD0C0030229750 +:100DE00001280029D40302B8E0B803049665830CF7 +:100DF00001439F4A006DA142976CD36C00350034CB +:100E0000002C002D116509614D615865076C0029A2 +:100E1000EE0BE09843B764B7033302B760B71F6CBB +:100E20000A148414076C0A148414203B8C080033C1 +:100E30001F2BC860DF3B66B8BB08A1984D71A4B8F2 +:100E40000035A5B86698DF3B00350036AD080132A5 +:100E50008C708B6D00320033002A002B8964956002 +:100E6000D960A098C19848698C69976CDB6C8C6CD0 +:100E7000403A00355561976C0033A498C598486D89 +:100E80008C6D619041918E64A0B8C1B88A0B61B736 +:100E9000009821984298639889648160C56082B700 +:100EA00043B764B7033120B73B12C46410089F43B3 +:100EB000014A106C00350134214B9068D468806C75 +:100EC000C46C43B764B76297002362B71F6C0A14FF +:100ED0008414423BA60B60B7619061B7629062B721 +:100EE000639063B76490419164B76190C86861B7DB +:100EF0001F6C9707E2981C657C0B8C07029823985F +:100F00004098619800640B604F60540700320033D2 +:100F1000176D42B863B84107443A830B4190619121 +:100F2000CA647F0F1D117D0700328E602D070133CB +:100F300061B70032003388648360C76082B743B70B +:100F400064B74107403B290F00331F2BC860DF3BCC +:100F5000086166B849086398A698D57064B80033EC +:100F600065B86698DF3B003500363A0801328C7070 +:100F70008B6D00320033002A002B89649560D960A4 +:100F8000A298C39848698C69976CDB6C8C6C403A6A +:100F900000355561976C0033A498C598486D8C6DE9 +:100FA000A2B8C3B8FA060133C8704F6D54076198F0 +:100FB0001F36A1438A615871A9B8A098C198A7B8F3 +:100FC000C8B86798C970A998D46C64B86898C97093 +:100FD00065B83907003101290464010B6407013346 +:100FE000C8704F6DC7076398C1431F35695D5B6D5E +:100FF0004C71A9B8A298C398A7B8C8B86798C97027 +:10100000A998D46C64B86898C97065B8AB0700003B +:10101000FFFFFF0FFFFFFF1FA45D0000D01433147C +:1010200000B821B83B6C041963B842B800E0F4037F +:101030000919021800E0F0030E1A09190418FFE359 +:1010400085FE00E01B03131490140000D014331429 +:1010500000B821B83B6C041942B863B800E0DC0367 +:101060000919021800E0D8036A980132C96C0919FD +:101070000E1A04186AB8FFE369FE00E0FF021314B9 +:1010800090140000D4143B1408B829B808180C199F +:101090006BB84AB800E0C00311190A1800E0BC039D +:1010A0006C98013BAC0C5198013A9C0C443BA50C4C +:1010B000443A960C423BA30C423A940CEF98B498F5 +:1010C00075988F6D9F6C0033176C003100E09402AF +:1010D00004B825B89F6C00331B6C00319098C2B8DF +:1010E00000E08A02836DC76D42980033136C0031B3 +:1010F00000E0820206B827B8976C0033136C003109 +:1011000000E07A02016419605D60C465910C5E6460 +:101110008D0C0033003462B883B88498A5980036EB +:10112000C36D936CD76C89649960DD608B6DCF6DF6 +:10113000936CD76CDC64700CCE656C0C876C0033E0 +:1011400006982798016409604D60836CC76C02980B +:101150002398016409604D60836CC76C8E98339846 +:1011600004612E5C38B80D9832984264B012003198 +:101170004560D46437B879080424A4B8013000313C +:1011800008684C68046C403882B80E0C3F47014E2A +:10119000046C214F00B821B88031C098E19800302C +:1011A0003841806DC46D214BBF43014AC76C249800 +:1011B000406DC464976C0024E20F229838B8FF3069 +:1011C000003108684C6880340265370C59B87AB829 +:1011D000033376B8161800E051021B149414423BF6 +:1011E000420C72984D98CA640033CD60111872B8E1 +:1011F00000E044021B149414423A350C4D98729846 +:10120000CA640033CD600C186DB800E037021B14BF +:1012100094149864940B8298A3980132003311655A +:1012200009614D6182B8A3B88A078065730B0033EA +:10123000013462B883B872074039C90B803121414B +:1012400048684039C40B5B6C5C6C4039C00F80301F +:101250000031016409604D60FF34436D5169976C42 +:10126000C76CB5071310B8073310C464A90F022464 +:1012700022B81F4A2143A142046CDF3F80B8976C1B +:10128000C36C070C01300031086C4C6C836CC76C6C +:1012900021471F4E046C2298A146C464976DC36D0C +:1012A000002CE80B209838B88B070000FFFFFF1FC9 +:1012B000A45D0000FFFFFF0FD414321404B825B85A +:1012C0000418081967B846B800E0A6020D190618F8 +:1012D00000E0A2026898013B660C2D980139920C3F +:1012E00049980E98816C443B49B8620C423B600CB3 +:1012F0004439620C4239820C2A986F984E6090985B +:10130000B1984B986C984C652AB8936DD76D050CC5 +:10131000D6640B08086509089F4A0143A142006D85 +:101320000029976CD36C2AB80030003102B823B87A +:1013300080313D3400303541C0B8E1B8A098C19843 +:101340008C65100CDA64030848650C0CA298C398ED +:10135000406D846DA2B8C3B8A098C19888649760A6 +:10136000DB60BF41E148976DA1499C6D576CBF4A56 +:101370001B6C002C976DA143946D6142403CCF6D76 +:101380008F6CDB6CDC0BFF3000318298A398006916 +:101390004469136C576C80340265150C629883980D +:1013A0006BB88CB8081800E06901121494144E64EC +:1013B000FA0B1610F907003300346BB88CB86AB812 +:1013C0000818F2074039EB0B803121418298A3982D +:1013D00050684039E40B986C403AE10F803200339A +:1013E000136C576C016409604D60836CC76C0B6CA7 +:1013F000FF31056802B863B8D207043368B808182B +:10140000D3070D18D1070000A45D0000D0142E14DE +:1014100000B821B83B6C041963B842B800E0FC0185 +:101420000919021800E0F8016498013B0A0C699858 +:10143000013B070C0919041800E050020E14901427 +:10144000003000280E149014D0142E1400B821B8C7 +:101450003B6C041963B842B800E0DE0109190218B8 +:1014600000E0DA016498013B0A0C6998013B070C23 +:101470000919041800E032020E14901400300028FC +:101480000E149014D0142E1400B821B83B6C04191B +:1014900063B842B800E0C0010919021800E0BC01BD +:1014A0006498013B0A0C6998013B070C0919041860 +:1014B00000E014020E14901401300E149014000079 +:1014C000D1142514033360B840387F4861B8080848 +:1014D000023360B83B6C00E0D10005149114DF3892 +:1014E0001208036D136C00E0A9001D328060022811 +:1014F000DF3810080071003384B863B83C33CA6029 +:1015000062B8E90780337843C2640D0C003402618D +:10151000EA071F31614C4A60136CC570087064B8EB +:1015200003B8ED0700302210D90700000000E0C129 +:10153000D014271400B821B83B6C021900E06C01EC +:101540006298023B200C443B160C6498DF3B1B085E +:101550003E3B110C3C326D5A00321F2A8C60DF3A40 +:101560001508069809706398403B0B0C0033015B2B +:10157000071490146398403B0030016068100C60C1 +:101580000714901400300714901446981F314142FC +:101590004E60059884700D70086CE607FFFFFF7FB2 +:1015A000D214251440380035036DA1B8150C03334F +:1015B00060B800E043001D3280600228DF38130865 +:1015C000007184B8A3B83C33CA603B6C62B800E0D9 +:1015D00055000514921402333B6C60B800E04E00D5 +:1015E000051492141F31614C4A60C570087164B8CB +:1015F00083B8EA07C41421140175B048C975836D16 +:1016000020B8136C304A1C7C047DD47D1C61447D61 +:1016100030480461D0650408803129414461304C70 +:10162000D87C44614F6C6098C87C90444C600174D5 +:1016300010605460011484146D100C64070CFF33A7 +:101640000C640F0C2033003206046A100C640C0882 +:10165000083318320970481008604080095B3C78F4 +:1016600018330832F80710331032F507FFFF000077 +:10167000FFFFFF00B85D0000C41422146090013B1E +:10168000C390E4902190460C443B400C423B270C15 +:10169000DB6CDC6C403B230C62905A128D64550865 +:1016A0005912C9643308FF34003518695C69803207 +:1016B00092643F0C7F34003599659161D561531276 +:1016C000C8651A0C90120C611847684F484E806C20 +:1016D0000C436C480E124B6D006904040034003258 +:1016E00000330C430C4874449F41436C4C6C506C69 +:1016F0000B6C021484149F47014E006D936D80346F +:10170000414F8344CB6D0C61E007811200320033FE +:10171000E907084E9847006D80350547936C6D4882 +:101720000034AC45906CD46C0C436C489811DA07CB +:10173000403DC10B41429868403AC20F80340035A9 +:1017400099659161D561BC076D5A3832C964C70B80 +:1017500000321F2A8C60DF3A48081F6C097000B8FD +:10176000003001B8DF3A3C080133C8704F6D0033D8 +:101770000F6D00320033002A002B116509614D61A5 +:101780009069D4699C6D403E00300160836C0033E9 +:101790008098A198086D4C6DFF3200339068D46832 +:1017A00080300A641B08403B190880336143D068CD +:1017B000403B060C80320033116509614D611845CC +:1017C000484C684D9310806C50650C436C48013058 +:1017D000020C00308E10006985077F32ED07013260 +:1017E0008C7000350B6DC6071F340E6101471070F9 +:1017F0001B6D0D71006D1F6C0D7080B801B8B307C3 +:1018000002FCFFFFFF030000FFFFFF1FFF070000B8 +:10181000FFFFFF0F231480B8C1B8E2B843885142DC +:1018200061908090554A07806C430748403A6C4B62 +:1018300001B11908936C8C6C403A2D0C584C6843DC +:10184000C86C0332084440B18111C2115F48614342 +:10185000C86CD864936C0140002CF90B42B103B101 +:1018600064B114041C100A64190C1910806042B190 +:101870000332E84340B18033584CC86DC84400324D +:101880007543886DCC6DC3B1E4B1E298C19880987E +:1018900003143C78023360B1F907936C8C6C403AC6 +:1018A000100C80324C428C68403A0E0C013240B130 +:1018B000584C6843C86C08449B3B03B164B1E607CD +:1018C000043360B1E30740B1F407000001FCFFFFFF +:1018D000FFFFFF0FFF070000C1146090013B120CD7 +:1018E0004091013A0F0C443B170C443A0F0C423B19 +:1018F0000B0C423A130C619041918E64140C403BE6 +:10190000080801308114423A280C6191403BFA0BDF +:10191000003000288114443A220C6190403BF90BBE +:101920000130F107829042910965EA0B91640D083C +:1019300044908390039124918464E20F4A640308E5 +:101940000065DE0F48640508403BE30F0130DB070C +:10195000866403081064F90F00308114619141908E +:10196000095B8114C3144474403A1F0C436D036D2A +:1019700003361869403C1A0C20A5002A403A150C81 +:101980000025176D03361869403C100C20A5002A6D +:10199000403A0B0C0025176D03361869403C060CC5 +:1019A00020A5002A00250204831468414C6C704174 +:1019B0004C6C2F3A090820B521B522B523B50F2A62 +:1019C0000F252F3AF90F233A0608032A20B50325DD +:1019D000233AFC0F403AE90F002A20A5403AE50FD0 +:1019E000002A21A5403AE10F22A58314C314836D78 +:1019F000076D186D03330C69403C0B0C403A080C22 +:101A000060810021002A60A60026403AFA0B831468 +:101A10002F3A0E08A09161918291A0B6A39161B670 +:101A200082B6A3B60F2A0F210F262F3AF40F233ABE +:101A300008086091032A032160B60326233AFA0FAF +:101A4000403AE60F60810021002A60A60026F907CF +:101A5000D014091029104264050C49108260FFE37C +:101A6000C7FF481008100A64050C82600031FFE3CC +:101A70007BFF901400000020E45F0000A80000201D +:081A8000D4070020A80000209B +:101A880048380A087A10FF32209360914C42C9689E +:101A9800AE3BB23B60B1771060934193806C41B329 +:101AA80043938068403AFD0F423807080231449357 +:101AB8008468403AFD0F3C78023809084138FC0B2D +:101AC800013144938468403AFD0FF6074838070807 +:101AD800083144938468403AFD0FEE075038EC0B08 +:101AE800103144938468403AFD0FE6074C0000200B +:041AF8005C0000206E +:101AFC006C104D10609345B34C1046B34C1047B36B +:101B0C004C1050B30A3253B32B107F23003245B321 +:101B1C0046B32DB329102EB35DB35EB35FB33C78DF +:101B2C005C000020FFFF0000FFFFFF0000002DD233 +:0C1B3C00FF3BFF700C070000FE030000E0 +:101B4800D0144038050C076CFFE39CFF9014681014 +:101B580060934293846C42B343938468403AFD0B8C +:101B68007F230193406C21B3F20700005C00002042 +:101B7800C214483B28089D1001358094A1B404354F +:101B8800A5B4835B013C2B0C8B5B043C030C4B3BE7 +:101B9800070876100134609381B3003485B394103C +:101BA800106C7410406C6093803027B3014024930C +:101BB80040684039FD0F3010486C28B328934A64B8 +:101BC800FE0B8214403B030C493B07088710013584 +:101BD8008094A1B40235A5B44A3BD40B83100135D7 +:101BE8008094A1B4A5B4D1076000002000002DD2D4 +:081BF8005C00002000003CC36A +:101C0000D114036D10310030FFE3A0FF6610609324 +:101C1000199384388538106C19B31030FFE336FF00 +:081C2000911400005C0000209B +:101C28006C10403860937F230A0C4B1080314FB3FF +:101C380025414D938468403AFD0F3C784710803128 +:101C48004FB325414D938468403AFD0BF7070000D8 +:0C1C58005C00002000008778AA55877807 +:101C64006410B43260937F2357424EB33C78000033 +:041C74005C000020F0 +:101C780044106510486C6093046C7F230DB33C7866 +:081C8800000078875C000020D9 +:101C9000C3148398C510186DD06C8C6C486CA4105C +:101CA000046CA09513B5831400004BB45C000020B5 +:101CB00066108031609380324C60444241B15D9344 +:0C1CC000AB3A5DB33C7800005C000020F3 +:101CCC0066108031609380324C60414241B15D932B +:0C1CDC00A83A5DB33C7800005C000020DA +:101CE800403A040C413A0E0C3C786D104038609331 +:101CF8007F234593040C486C25B3F707856845B3E3 +:101D0800F4076710403860937F234693040C486CAF +:101D180026B3EB07856846B3E80700005C0000209F +:101D28006B104C1060937F2340384BB30C0C4793D7 +:101D3800846C47B349938468403AFD0F4B93486CD1 +:101D48002BB33C784893486C28B3FC075C00002010 +:041D5800FF3F000049 +:041D5C002BB03C78F4 +:101D600080336F43421060B23C78000000E100E035 +:0C1D70000232621040B33C7800E100E059 +:0C1D7C000232621040B33C7880E100E0CD +:101D880066104710271040B341B342B343B344B37E +:101D980045B326B347B33C7800E400E0C0C0C0C0F8 +:041DA800C000C0C0F7 +:101DAC00C114624842436A1003346093C8608032A5 +:101DBC0043421068C8600340FF34409300712641D1 +:101DCC0091684070486C20B38114000064000020BE +:101DDC0075103610161040936092784B784360B2B1 +:101DEC002091003361B260B161B162B262B163B291 +:101DFC0063B164B264B165B265B166B266B107B283 +:101E0C003F3007B168B268B169B269B16AB26AB100 +:101E1C006BB26BB14710409260B261B262B20F33D9 +:101E2C0063B23C784C00002048000020FFFF00000B +:041E3C00440000203E +:101E4000D1140739036D3008035906382708FFE31A +:101E500057F7041013161A1D210000330431F02B1C +:101E6000403A4094C8681E0C01328470C86C60B45B +:101E7000911408316611F5070C316611F207103123 +:101E80006511002BEE0714316411FC07F133183192 +:101E90007843F8071C316211E407003300310F2B3F +:101EA000E0070232E3070F39E40B08290639076C13 +:101EB0002708FFE325F7041013161A1D210000332D +:101EC0000431F02B403A4194C8681E0C01328470F2 +:101ED000C86C61B4CE0708316D10F5070C316D1078 +:101EE000F20710316C10002BEE0714316B10FC0759 +:101EF000F13318317843F8071C316910E4070033D7 +:101F000000310F2BE0070232E3070000FFF0FFFF74 +:101F1000FF0FFFFF0000F1FF000010FFFFFFFF0FAA +:101F20002141033268908470C96801328470C86CA2 +:041F300068B03C78E1 +:0E1F3400214101334990C470C86C69B03C78FB +:101F4400C11422140F3A4F08CB6C833B403B130857 +:101F54000F2B61B80033073A6EDC03007611380C9E +:101F64004093619281982ED80300D06804700C6C61 +:101F740001B23704413B06080033F02B61B8043347 +:101F8400EB07423B05086D1161B80833E507433B95 +:101F940005086B1161B80C33DF07443B060869116F +:101FA400002B61B81033D807453B06086611002B97 +:101FB40061B81433D107463B0708F1337843002B4B +:101FC40061B81833C907611161B81C33C507409360 +:101FD400609281982ED80300D06804700C6C00B213 +:101FE40002148114133AFD0B4038140800330F2BEC +:101FF400C860013BF60B503A6F100608409362929A +:102004004C6C22B2EE07609342932441486C22B395 +:10201400E8074238E60B0033112BC860013BE10BA3 +:102024006510523A6093429303082841F0072C410B +:10203400EE07000044000020FFF0FFFFFF0FFFFF4A +:0C2044000000F1FF000010FFFFFFFF0F85 +:10205000D01405380D087910FFE352F6030A101862 +:102060001F26409360920F31C568A03B60B2901468 +:1020700040936092F031C568A43BF9072093F03299 +:1020800060914442C968A83B60B1F2072093F032E6 +:1020900060914842C968AC3BF8072093F0326091E8 +:1020A0004C42C968B03BF1072093F0326091504236 +:0C20B000C968B43BEA07000048000020AB +:0820BC000133C47063B03C78ED +:0820C4000133C47064B03C78E4 +:1020CC004590013385708C68403AC470030C64B041 +:0620DC003C7863B0FE0732 +:1020E20001334690C4708C68CA64036400743C78FF +:1020F400641040936192AC3BAE3B61B23C7800000B +:0421040014000020A3 +:10210800631060934093086C00B33C781000002083 +:10211800003360B061B062B063B064B065B066B0FF +:0C21280069B06AB06BB06CB06DB03C7870 +:082134006090A03B60B03C7814 +:0A213C006090AC3BAE3B60B03C7815 +:10214600C314A498976D8398186DD06CA1904C6CAD +:08215600546C21B042B0831467 +:10215E00C41421148598D36D869880B88798936D92 +:10216E00A898586DC098586D5C6DD46C8C6C81902D +:0C217E00486C046D9F6D81B00114841446 +:06218A0023B044B03C78D4 +:1021900040396B90040C8C6C4BB03C78C9686BB0C8 +:0221A000FD0739 +:1021A40080337643421060B23C78000000E100E0E6 +:1021B40065100032609340B341B342B343B344B3B8 +:0821C4003C78000040000020FF +:1021CC0065100032609340B341B342B343B344B3A0 +:0821DC003C7800003C000020EB +:1021E40065100032609340B341B342B343B344B388 +:0821F4003C78000038000020D7 +:1021FC0065100F32609343B380336743431060B272 +:0C220C003C7800003C00002000E100E0F5 +:1022180065100F32609343B380336843431060B254 +:0C2228003C7800003800002000E100E0DD +:102234004038210840390A087711FF3140936092F1 +:10224400C568A23BA63B60B215044139130872115C +:10225400F031409360923041C568E0312F41C46C45 +:1022640060B2F03161922C41C568E0312B41C46CFD +:1022740061B23C7841382D084039140867110F3198 +:1022840040936092C5680731C46C60B2F032621149 +:10229400504220936191C968E0324F42C86C61B1E9 +:1022A400E90741390C087C10FF3220934C426091BD +:1022B400C968EE324B42C86C60B1DC074239DA0BB4 +:1022C4007510EE32209361916843684B5742E707DB +:1022D4004238D00B403909086F10FF3140936092A7 +:1022E400C5687731C46CB007413909086A10EE3209 +:1022F400209360916843684B5742DE074239BA0B1A +:102304006610FF32209350426091C968CC324F422C +:0C231400D30700004C000020480000200F +:1023200063108C6C42B024B03C7800000F000800B1 +:10233000C214C76C0135855B9064020C82148083E3 +:0E23400080B081901469403CFD0B0023F5072E +:102350006810803260938C6027103AB24193FE314E +:10236000846841B3013141938468403AFD0B3C7865 +:08237000200000203AC75AA525 +:10237800C414221465118611609388B3073483B39B +:10238800013406B384B38493403CFE0B02212249F6 +:102398002241486020B8295821B820984A64260864 +:1023A80006315B1048B323B3013106B324B3249339 +:1023B8004039FE0B48B3013243B306B344B34A93E2 +:1023C800443AFE0B0231521048B323B3013106B32D +:1023D80024B32A934139FE0B48B323B306B324B37D +:1023E8004A93423AFE0B02148414E08281828844A4 +:1023F80022821C61A3823041C1985060B84588612F +:10240800546020B60322CA07600000205A5A5A5A5C +:10241800C314003303354E64CC5A02088314403B7E +:10242800060C0F6D1469403C020803200F6D1469F7 +:0A2438000061808480A60023EF07F6 +:10244400D01400E0A5006B1046832B10003000E090 +:102454003D09FFE307FC00E0130700E0690700E023 +:10246400B31000E00F0C00E0CF0A00E0C708F20749 +:0824740048040020B85E0000DE +:10247C00D014231432320033087C62B801B860B82F +:10248C0040986198C864030C03149014629800235C +:0C249C0062B8FFE3E3FB60980023F20746 +:1024A8002314003362B801B860B840986198C864D2 +:1024B800030C03143C786298002362B860980023E8 +:0224C800F40717 +:1024CC00D2142414951000350094FFE321FE0094DF +:1024DC00A1B8A0B8083300320131FFE330FE8033DD +:1024EC00634361B800940033A3B8A2B8A0B800321B +:1024FC008031FFE330FE013229100094FFE341FEEE +:10250C000094FFE313FE009402320131FFE33CFE22 +:10251C00FFE344FE0414921408000020AC120000E7 +:10252C00D0142114FFE3E6FA01310130FFE308FB7C +:10253C000030FFE361FB803108330032214102306F +:10254C00FFE316FB803018310240FFE391FB0130B2 +:10255C00FFE366FBFFE382FBFFE3B4FB403360B8B1 +:10256C00C03180336443003223410030FFE38CFBE5 +:10257C00FFE39AFBFFE3F8FB003000E0B51A01140F +:02258C009014A9 +:10259000D0147F105F1000316093803020B20C6047 +:1025A000049000B25C1020B2803121414C60209137 +:1025B00020B25A104AB301314DB34C938468403A6B +:1025C000FD0FFFE3B5FF00E07305FFE3DFFB013123 +:1025D0000F30FFE3EDFB01310E30FFE3E9FB01318A +:1025E0001630FFE3E5FBFFE3FBFBFFE371FF2C107D +:1025F000023000E063052B10013000E05F0500E0D1 +:10260000FD0800E09D0F00E0230990145C0000200D +:10261000AC000020A8000020FFFFFF0F484400008E +:04262000443E000034 +:1026240060146214036C7A1180326093C86023933F +:10263400013040684039040C01B3631461142393DE +:10264400023040684039F90B239308304068403920 +:10265400F40B2393103040684039EF0B2393486800 +:102664004039030C41B3EA0780322393414248685E +:102674004039F90B80322393424248684039F30BC6 +:1026840080322393434248684039ED0B80322393D0 +:10269400444248684039030C036CE50780322393B5 +:1026A400454248684039DF0B8032239346424868EC +:1026B4004039D90B80322393474248684039D30BC1 +:1026C400803223934B4248684039CD0B80322393A8 +:1026D4004C4248684039C70B803223934D424868C6 +:1026E4004039C10B803223934E4248684039BB0BBA +:1026F400803223934F4248684039B50B803223938C +:10270400564248684039AF0B990700005C0000202E +:10271400601462147810013160934B938468403ADA +:10272400040C2CB3631461144B9302318468403A53 +:10273400F90B4B9304318468403AF40B80322B93A9 +:10274400454248684039030C4CB3ED0780322B9363 +:10275400464248684039F90B80322B934742486817 +:102764004039F30B80322B93484248684039ED0BD3 +:08277400DA07000060000020FC +:10277C006014621478100131609348938468403A75 +:10278C00040C27B363146114489302318468403AF3 +:10279C00F90B489304318468403AF40B4893103198 +:1027AC008468403AEF0B489320318468403AEA0B36 +:1027BC00489340318468403AE50B489380318468F3 +:1027CC00403AE00B80322893494248684039DB0F8D +:0827DC0047B3D90750000020AB +:1027E40060146214D114871380326094C8603593E6 +:1027F400013040684039030C17B324043593023088 +:1028040040684039FA0B3593043040684039F50B81 +:102814003593083040684039F00B359310304068E8 +:1028240040391F0C17B3003201310030FFE35CFA6A +:10283400013201310130FFE357FA60944B93721275 +:1028440040B360948032C8602B93013040684039B3 +:10285400610C0DB3EED90120809802146314611445 +:102864003593203040684039100C17B300320131E1 +:102874000130FFE339FA013201310030FFE334FA69 +:1028840060944C936112DD073593403040684039C1 +:10289400B40B359348684039030C57B3D3078032DF +:1028A4003593414248684039F90B803235934242AE +:1028B40048684039F30B80323593434248684039C5 +:1028C400ED0B80323593444248684039E70B80323F +:1028D4003593454248684039E10B8032359346428E +:1028E40048684039DB0B80323593474248684039A9 +:1028F400D50B80323593484248684039CF0B80323B +:1029040035934942486840399D0F57B3FFE320FD92 +:1029140099072B930230406840399C0B2B93043069 +:1029240040684039970B2B93083040684039920B2C +:102934002B931030406840398D0B2B932030406826 +:102944004039880B2B93403040684039830B2B93DC +:1029540048684039030C4DB37E0780322B934142C3 +:1029640048684039F90B80322B9342424868403919 +:10297400F30B80322B93434248684039ED0B6B07CD +:0C29840020000020E0010020DC01002009 +:1029900060146214D214AB100134609585B3FF301B +:1029A000FFE3B4FB40956392D068403B020C85B2D4 +:1029B000EED90220A19880980314631461140000DA +:0429C00010000020E3 +:1029C400601462147E10013160937F2355938468F0 +:1029D400403A040C37B3631461145593023184688C +:1029E400403AF90B559310318468403AF40B5593EF +:1029F40020318468403AEF0B803235934142486875 +:102A04004039030C57B3E807803235934242486893 +:102A14004039F90B80323593434248684039F30B0F +:102A240080323593444248684039ED0B8032359307 +:102A3400494248684039E70BCF07000024000020D2 +:102A4400601462147910013160934A938468403AA7 +:102A5400140C57102BB34CB34293846C42B38032A2 +:102A64004D4240B3023142938468403AFD0B429395 +:102A7400803A42B3631461144A9302318468403A41 +:102A8400030C2BB3F8074A9304318468403AFA0BD9 +:102A94004A9308318468403AF50B4A9310318468AC +:102AA400403AF00BE80700001800002053CA000069 +:102AB40060146214D01476100231609343938468D6 +:102AC400403A0B0C23B30093007400E0A103EED949 +:102AD4000020011463146114439301318468403A63 +:102AE400030C23B3F507439308318468403AFA0B87 +:102AF400439304318468403AF50B803223934C426B +:102B040048684039E50F43B3E30700004000002064 +:102B140060146214D0147F1002316093439384686C +:102B2400403A0B0C23B30093007400E08D03EED9FC +:102B3400002001146314611423930132486840395E +:102B44000D0C43B3741040B374106093413BF00B0D +:102B540053106092002360B2EB07439308318468FA +:102B6400403A030C23B3E407439304318468403AA6 +:102B7400FA0B803103932C4104684038D90F23B3F6 +:102B8400651040B365106093413BD20B4510E207DA +:102B94003C00002034010020380100203C010020CA +:042BA40040010020CC +:102BA80060146214D0147F100231609343938468D8 +:102BB800403A0B0C23B30093007400E09503EED960 +:102BC80000200114631461142393013248684039CA +:102BD8000D0C43B3741040B374106093413BF00B79 +:102BE80053106092002360B2EB0743930831846866 +:102BF800403A030C23B3E407439304318468403A12 +:102C0800FA0B803103932C4104684038D90F23B361 +:102C1800651040B365106093413BD20B4510E20745 +:102C28003800002024010020280100202C01002069 +:042C38003001002047 +:102C3C006014621478110131609347938468403AB0 +:102C4C00030C28B30704479302308068403A040C05 +:102C5C0008B363146114479304308068403A550CF0 +:102C6C0008B30293AA3282643E080231439384680B +:102C7C00403AFD0F113242B3103143938468403A0D +:102C8C00FD0B023143938468403AFD0F123242B37C +:102C9C00103143938468403AFD0B023143938468AE +:102CAC00403AFD0F133242B3103143938468403ADB +:102CBC00FD0B023143938468403AFD0F143242B34A +:102CCC00103143938468403AFD0B0231439384687E +:102CDC00403AFD0F153242B3103143938468403AA9 +:102CEC00FD0BB80743938468403AB40B42B31031E0 +:102CFC0042B342B342B342B342B342B342B343933F +:102D0C008468403AFD0BA607479308318468403A23 +:082D1C00990BA0073400002010 +:102D24006014621473100431609349938468403AC8 +:102D3400020C2BB3499301318468403A020C2BB343 +:102D4400499302318468403A030C2BB3100449932D +:102D540008318468403AFA0B499310318468403A48 +:102D6400F50B499320318468403AF00B63146114E5 +:042D74002C0000200F +:102D7800601462146A10013160937F234C93846855 +:102D8800403A040C2BB36314611480322C934942EB +:102D980048684039F90F4BB3F70700005C00002082 +:102DA800601462146A10023160937F234C93846824 +:102DB800403A040C2BB36314611480322C934A42BA +:102DC80048684039F90F4BB3F70700005C00002052 +:102DD800601462147010043160937F234C938468EC +:102DE800403A040C2BB3631461144C930831846883 +:102DF800403AF90B80322C934B4248684039030C17 +:102E08004BB3F20780322C934C4248684039F90B97 +:082E1800EB0700005C00002044 +:102E200060146214D014791080326093C8602C93BF +:102E3000103040684039030C0BB309042C93203048 +:102E400040684039090C0BB300E01404EED90020AF +:102E50000114631461142C93403040684039ED0B29 +:102E60002C9348684039030C4BB3F10780322C9304 +:102E7000414248684039F90B80322C9342424868FD +:0C2E80004039F30BE40700005C00002068 +:102E8C00601462147610803260937F232C9343423B +:102E9C0048684039030C4BB31F0480322C934442D6 +:102EAC0048684039F90B80322C93454248684039C8 +:102EBC00F30B80322C93464248684039ED0B80323C +:102ECC002C93474248684039E70B80322C93484298 +:102EDC0048684039E10B6314611400005C00002069 +:102EEC00601462146B10013160934E938468403A05 +:102EFC00030C30B30B044E9302318468403AFA0B46 +:102F0C004E9304318468403AF50B6314611400004D +:042F1C00140000207D +:102F2000601462147110013160934C938468403ACC +:102F30000A0C2DB34193863A41B34093003240B31B +:102F4000631461144C9302318468403A030C2DB32E +:102F5000F8074C9304318468403AFA0B4C930831DB +:0C2F60008468403AF50BED070C000020DF +:102F6C0060146214D0147910013160934C9384680E +:102F7C00403A030C2DB318044C9302318468403A48 +:102F8C00180C2DB3721040830022887421930021F9 +:102F9C00093A40A321B3080C003240A3429300220B +:102FAC0042B300E04103EED9002001146314611414 +:102FBC004C9304318468403ADE0B4C93083184689E +:102FCC00403AD90BF107000008000020B0000020A7 +:022FDC003C783F +:082FDE00601462146314611415 +:082FE60060146214631461140D +:082FEE00601462146314611405 +:082FF6006014621463146114FD +:082FFE006014621463146114F5 +:083006006014621463146114EC +:08300E006014621463146114E4 +:083016006014621463146114DC +:08301E006014621463146114D4 +:083026006014621463146114CC +:08302E006014621463146114C4 +:083036006014621463146114BC +:10304000C11400C0236080C020704610003440923C +:1030500084B2BF3B00B221B203C02064029281144B +:04306000000000204C +:10306400C11400C0236080C0207046100134409217 +:1030740084B2BF3B00B221B203C020640292811427 +:043084000000002028 +:10308800C11400C0236080C02070461001344092F3 +:1030980084B2BF3B00B221B203C020640392811402 +:0430A8000000002004 +:0630AC0080C120743C7895 +:0630B20080C020703C7894 +:1030B800D2144138076D1D0C4038040C42383F0CBF +:1030C8009214FFE375F800310030FFE3B1F86212A3 +:1030D800D03100930032A1122141FFE31FF974326D +:1030E8000031176CFFE33CF403337AB59CB5E9076C +:1030F800FFE36AF802310130FFE39AF878110032F1 +:1031080000933811FFE30AF9FFE376F874320031CF +:103118001511FFE325F4751199B3033294110D319C +:1031280057B300940032FFE389F60D310094FFE3B2 +:10313800FFF600940D31FFE3C3F7C3077432003183 +:103148000C11FFE30DF4883200310B11FFE308F492 +:103158006A11013245A36A1196B303328911053108 +:1031680054B30094FFE3DAF6053205310230FFE389 +:10317800E7F60530FFE36AF7013220310130FFE35B +:10318800B1F5003220310130FFE3ACF520310130D8 +:10319800FFE3C8F520310094FFE3DEF5FFE3DEF539 +:1031A800FFE31EF802310230FFE342F876100032E6 +:1031B80000932C10FFE3B2F8FFE32CF80032033140 +:1031C8000094FFE33BF603310094FFE3B1F600946B +:1031D8000331B207400000200C0200203C00002010 +:1031E80088130000800200208C0200204C00002080 +:1031F800F402002068030020C80300200C0300200C +:083208004800002038000020FE +:10321000C1146B10338B62324964030C003253AB20 +:10322000338B825993AB47106710486060937BB231 +:103230005F22013300A164A2811400004C0200202F +:083240000C020020B800002080 +:10324800C1146B102D8B62324964030C00324DABF4 +:103258004D8B2810825A8460732200A27F21461069 +:10326800409258B101328DAB58A38114CC02002092 +:083278000C020020B800002048 +:10328000D414B5107885413B25089410D41060966D +:103290005894CA605794C8641D08FFE371F5ED8D1A +:1032A00060969F6C2F101010D01078B4FFE3A0F33D +:1032B00000336DAD78A5F2AEFFE35CF57994403B49 +:1032C000040C328E0810CD7B643200310610FFE30F +:1032D0004BF39414CC0200208C020020B800002094 +:0C32E00080020020BC000020FC00002048 +:1032EC00C1144E10208A62334D64030C003360AA63 +:1032FC00608A2B10825BC460E72300A380AA69104C +:10330C00409380336143C46055B3A63361434C6032 +:10331C00013360A1811400005A0300200C0200202C +:04332C00B8000020C5 +:10333000D4142114B7106085413B28089610D7108B +:1033400060965594CA605494C8642008FFE318F549 +:10335000609675B4618D8F6C31101210D21060B808 +:10336000FFE346F3609872AE003361AD60A5FFE302 +:1033700001F57694403BE65D040C328E0910CD7B5E +:10338000643200310710FFE3EFF2011494140000DF +:10339000580300200C030020B8000020F402002095 +:0833A000BC000020FC0000202D +:1033A800D414221400B8C76D0034A411C4117E953A +:1033B800413B360CFA300140FFE374F8FFE377FE37 +:1033C8000D310096FFE378F601337FB500327D10AA +:1033D80040B361B841B3FFE367FE5B1000922098E9 +:1033E8009F6CFFE3A3F76198643060B80024FFE3A3 +:1033F80059F863320865080C60984093C965F50B65 +:103408004193C965F20BFFE352FE00960D31FFE3CD +:1034180057F600337FB5FFE347FE02149414643077 +:10342800FFE340F800246433D264C50F0D310096E1 +:10343800FFE34AF6BD070000BC0000204C00002056 +:083448003C0100203C000020C3 +:10345000D414231402B820B800358911C9117A9404 +:10346000413B3E0C6811C483403E61B84508E511FC +:10347000FFE321FE03310097FFE322F6013261985A +:103480005BB444A3DCB446A3DDB4FFE311FE5F10DC +:10349000009222984098FFE34DF76430FFE306F86E +:1034A000002563334C65080C7C9440988D64F60BC2 +:1034B0007D948D64F30BFFE3FEFD00970331FFE382 +:1034C00003F600337BB47210409372105FB36198BF +:1034D000003246A3FFE3ECFD1B6C0314941464302C +:1034E000FFE3E4F700256433D664BD0F0331009693 +:1034F000FFE3EEF5B5070136F0070000BC00002041 +:1035000048000020C803002038000020B800002038 +:04351000680300202C +:10351400D41421146359CD746334D06400B8290CD5 +:10352400413A040C01300114941475106037CC61D5 +:10353400C8874A8798641F088034B2100C610194CC +:10354400409582601E9308641808403E070C40951D +:10355400C0949A607D93C864E60F0098FFE378FFF7 +:103564004038E10B609560B46887002368A7DC07E6 +:103574000430DA070330D8070230D6076803002086 +:04358400B80000206B +:10358800D41422148B6D479840B84359476D8974F9 +:1035980063318464C36D200C911064320031136C64 +:1035A80061B8FFE3DDF1976C136C5F6CFFE31CF20D +:1035B8004032906061987EB4B7AA60334098D0607A +:1035C8005DB4013249A347A30032CAA348A37F24AC +:1035D8006410609361B4021494140000680300201E +:0435E800B800002007 +:1035EC006310003249A347A33C780000C8030020B5 +:1035FC00D1148A106984413B0E086910378B013253 +:10360C000810FFE383FF07A40128007401380308A6 +:10361C00003369A491140000C8030020A803002003 +:04362C00680300200F +:10363000D214AE10603414616484403B150C66846F +:10364000413B120CFFE337FD6584413B0B086810DA +:1036500040937F958E607C950523C864030C0033EE +:1036600064A4FFE325FD921468030020B800002045 +:10367000D21494106035FFE31EFD5061013364A540 +:103680000A317110409300938033D06060935FB42F +:103690000E60FFE3FBFC1CB405318C100094FFE3CB +:1036A00022F541380608013365A5FFE301FD9214B8 +:1036B00000940531FFE317F54038F80B0033F507A8 +:0C36C00068030020B80000204800002033 +:0C36CC00231462B841B820B803143C7805 +:1036D800C36C406000304E6402083C784083086048 +:0636E80000740023F90745 +:1036F000D1143B14036D003364320031021860B8FA +:103700006EDC0210FFE330F1BB6C04311410FFE3F8 +:1037100085F64ED80000A633CA64040C01301B1491 +:1037200091142ED802006ED8010028414C6C6433ED +:103730004C64F50F021A0B10FFE370F60831021803 +:10374000FFE3CCFF6ED803000E64E90B08320219C8 +:10375000136CFFE34DF10030E3070000000100109F +:043760000401001050 +:10376400D0143B140033592B6EDC000008336EDC9C +:10377400010000336EDC0200011B436C08320F6C45 +:10378400FFE334F10831FFE3A7FF0EDC0300BB6C59 +:103794000C310410FFE3F0F500301B14901400000A +:0437A4000001001010 +:1037A800D01423146780023B030C013367A02780E1 +:1037B8006480438022B8208021B8258020B800305A +:1037C8002310FFE381FF003003149014C65E00004D +:1037D800013360A0003361A0093362A0003363A005 +:1037E80064A0013365A0003366A0013367A03C786C +:1037F800D11472100132609341B34593A13AB03AA3 +:1038080045B30A308E10FFE337F608320031136CE7 +:10381800FFE3A6F0136CFFE369FF4038136C04085C +:10382800FFE3C0FF9114FFE3D5FF4184251000306A +:10383800FFE34AFFF807000060000020F0030020C3 +:04384800205F0000FD +:10384C00D114921228320031136CFFE387F07012FE +:10385C006093803B403B920C2E120030FFE332FF12 +:10386C006D12FF30209340684039050C40938068FE +:10387C00413A7708409327427F3042848068846CB9 +:10388C0042A44093484AFF308068403A100C409361 +:10389C00484A8068423A0B0C2093284940684439C6 +:1038AC00060C4093484A8068463A5F0840930731BB +:1038BC00484A84687030228444424168846C42A433 +:1038CC004093504AFF308068403A100C4093504A65 +:1038DC008068413A0B0C2093304940684239060C01 +:1038EC004093504A8068433A440840930731504A09 +:1038FC0084680E30228441424168846C42A4409317 +:10390C00584A0F3A400C843256422093002A48649D +:10391C003A0C6093784B61A4183360A464A468A437 +:10392C0001336DA400336FA400327C106093FF232D +:10393C0040B3428439423D4900932841406C20B346 +:10394C003C423D4900933041406C20B321840093AC +:10395C003841406C20B32093474A846C40B3911497 +:10396C0042847F3184688D07428470318568A80752 +:10397C0042840E318568A13AC20762840E32C9684E +:10398C00A13B62A41833C80720040020AC0000201F +:0C399C00495F0000A80000205C00002033 +:1039A800C114771000834038020820304183403A20 +:1039B8000208203222838749403C1E0C413C0F08F4 +:1039C80099419D4C423C120C443C160C403C070863 +:1039D800235A4164050C4283803A42A38114002291 +:1039E8000964FD0F4283A03AF907225A0564F40BD3 +:1039F800002A8164F707803922A3F10720040020F8 +:103A0800D2149C1262848E74DF3ABB12700C468406 +:103A1800794339427D4B3D49C664160C70302443C6 +:103A28008168846C46A4FF30541208404092FF22FB +:103A38002092416820B220926843C46C60B201337E +:103A480072A4609568B4628446847C435C425D4A93 +:103A58007D4BCA644A120408208241391908003192 +:103A680020A246840E3021438168846C46A4FF302E +:103A7800421210404092FF222092416820B22092C8 +:103A88007043C46C60B2013372A4609568B46184F9 +:103A98004584CA64110C59112092FF214091484273 +:103AA800484A40B100915843806C40B1013252A459 +:103AB800409565A448B4008444840A640D0C4F11F1 +:103AC80078434092FF2220922841284920B2209230 +:103AD800C46C04A460B247946095CA604911C86474 +:103AE8000608609567B4013304A472A4428466840E +:103AF800474A274B8664140C7F302742C068C46C41 +:103B080066A4FF307D106093FF232093416820B3A3 +:103B18002093846C40B3013372A4609568B47284B6 +:103B2800413B150848946095CA605710C8640F084F +:103B3800609568B4003372A4609567B473106783A6 +:103B4800423B0508FA30024000E02602489460959E +:103B5800CA604F10C8640C08609568B4609567B473 +:103B68006A106783423B04080A1000E015029214A9 +:103B780020040020B80000205C0000204401002040 +:103B88002F750000E7030000F0030020DF93040016 +:043B980060EA0000DF +:103B9C00D01422140033222B6EDC000006336EDCB2 +:103BAC0001000033002B6EDC0200053169106683C6 +:103BBC006EDC03003B6C02336EDC0400FFE388FD1B +:103BCC000EDC050006313B6CFFE3EAFB021490149B +:043BDC004804002079 +:103BE000D01423140033222B6EDC00000B336EDC68 +:103BF00001000033002B6EDC02004111611166836D +:103C00006EDC030003336EDC04006282274B2EDC83 +:103C1000050021822EDC0600CC7470314C684039DE +:103C20001A0802312EDC07000E31C468463B1D081D +:103C300000336EDC08000A316C823B6C6EDC0900DC +:103C4000FFE34CFD0EDC0A000B313B6CFFE3AEFBE7 +:103C5000031490142030066403080131E407403057 +:103C60000664E00B0431DF07403B03080133E20741 +:103C7000423BE00F443BDD0B0333DC072004002014 +:043C800048040020D4 +:103C8400D2148E11FFE390FE42846A84474A274B84 +:103C94008664080C7F314742C468C86C6AA4013347 +:103CA40074A461844984CA64040C69A4013374A4AF +:103CB40062844A84794339427D4B3D49C664080C89 +:103CC400703164438568C86C6AA4013374A4628447 +:103CD4004A847C433C427D4B3D49C664080C0E310A +:103CE40061438568C86C6AA4013374A47484413B3D +:103CF400B3101308531021926095C6603210C46447 +:103D04000C08609569B4609561B27384033B100834 +:103D1400002373A4FFE364FF49946095CA604B10C9 +:103D2400C8640508609569B4FFE338FF9214003352 +:103D340074A473A4F207000020040020B80000203B +:0C3D4400440100202B010000E7030000F8 +:103D5000C1140C39630C4580013A721107082742DF +:103D60007F3442839068846C42A3003226800F2AFD +:103D700084608874103A020821A34780413A3308CE +:103D8000428370318568A53A42A34880403A3208A0 +:103D900042830E318568A13AA23A42A349804CA3DE +:103DA0004A8028318464020C40A34283474A274258 +:103DB0007F304A838068846C02832183073429A37F +:103DC00004488F3184681068228304402149806C44 +:103DD00050680E3081682141846C4AA3408348A317 +:103DE00000308114443A703142838568CE0BA63A84 +:103DF000CC07413A050842830E318568CF07423A25 +:103E0000060842830E318568A13AC807433AF40B8D +:103E100042830E318568A23AC1070130E3070000F2 +:043E2000200400205A +:103E240006390A0C6580413B05086510003254A32D +:103E340053A30030020401303C7800002004002029 +:103E4400D4140539036D876C040CA1805664070CE7 +:103E540000302511FFE33AFC013094144080CC3348 +:103E6400CA64070C00302111FFE330FC0230F6076E +:103E74004280FF33CA645E106380040826824E6465 +:103E8400090C0030CC7446823A10FFE31FFC033067 +:103E9400E507C35D74589975002B5B6CE083FFE301 +:103EA4001BFC1E640E0C5B6C136CA584FFE314FCFA +:103EB400C36C976C00303010FFE308FC0430CE076D +:103EC4006484423B050C433B080C0030C707576C25 +:103ED400136CFFE33DFFFA07576C136CFFE3A2FF7B +:103EE400F5070000625F00006D5F000048040020D9 +:083EF400765F0000865F00000C +:103EFC00C41402391F0C01294574436D00326E1035 +:103F0C008085D16C013708348F6D9C69403E614BC4 +:103F1C00040CCA10D96CCD74002C1175403CF50BF7 +:103F2C000022897448640025EC0F406060A1684B46 +:0C3F3C0061A18414FFFF000001A0FFFF42 +:103F4800C314C36C4060AC100C104E640208831498 +:103F58004083096C01360832036D1869403C0148FA +:103F6800030C156C0174002A8974403AF60B00237F +:0C3F7800ED07000001A0FFFFFFFF0000AC +:103F8400C36C406000304E6402083C784083086093 +:063F940000740023F90790 +:103F9C00D114271460126783423B036D71085533AB +:103FAC006EDC04006EDC05000033112B6EDC0600A9 +:103FBC0015336EDC070003336EDC080057117811E3 +:103FCC0066836EDC090000336EDC0A006282274BCC +:103FDC002EDC0B0000312EDC0C007031C468403B31 +:103FEC001A0801336EDC0D006182403B020820335D +:103FFC0002826EDC0E001C4000331D486EDC0F008C +:10400C000433C26003386EDC10004208FFE372E632 +:10401C000C393B3D20314E6403080233E407403138 +:10402C004E64E30B0333DF07033322826EDC110093 +:10403C003F4100336EDC12006EDC13003F496EDC36 +:10404C0015006EDC16006EDC170060822341403BCD +:10405C002EDC1400020820336EDC180000336EDCFA +:10406C001900011B0A5B1531FFE344FF96336143D2 +:10407C0060B80132D36C18310118FFE381FA0714D0 +:10408C0091140233D3070133D1070033CF07043324 +:10409C00CD070000F003002020040020480400207D +:1040AC00D014271455336EDC04006EDC050000338D +:1040BC00112B6EDC060015336EDC070003336EDC4F +:1040CC000800771166836EDC090000336EDC0A0091 +:1040DC0074114283274A2EDC0B0000312EDC0C00BD +:1040EC0070318468403A1A0801324EDC0D0041836D +:1040FC00403A0208203202834EDC0E001C40003293 +:10410C001D484EDC0F000432826003384EDC100078 +:10411C004308FFE3EFE50C3A3C3E20314A640308C8 +:10412C000232E40740314A64E30B0332DF07033207 +:10413C004EDC110000324EDC12004EDC13004283C8 +:10414C005F425F4A434260834EDC1400403B0032C6 +:10415C004EDC15004EDC16004EDC17000208203336 +:10416C006EDC180000336EDC1900011B0A5B153184 +:10417C00FFE3C0FE143360B896336143013218314B +:10418C000118FFE3FDF9071490140232D207013233 +:10419C00D0070032CE070432CC07000048040020C0 +:0441AC0020040020CB +:1041B000D014241455336EDC04006EDC050000338B +:1041C000112B6EDC060007336EDC070003336EDC58 +:1041D000080007316D1066836EDC090066806EDCB6 +:1041E0000A0067806EDC0B00011B0A5BFFE388FEA0 +:1041F000143360B89633614301320A310118FFE38A +:0C420000C5F904149014000048040020CC +:10420C00D014241455336EDC04006EDC050000332E +:10421C00112B6EDC060009336EDC070003336EDCF9 +:10422C0008000931701066836EDC090066806EDC54 +:10423C000A0006336EDC0B0002336EDC0C006B10D4 +:10424C0067836EDC0D00011B0A5BFFE353FE143326 +:10425C0060B89633614301320C310118FFE390F9D9 +:0C426C000414901448040020F00300200B +:10427800D0142114143360B8963345746143013265 +:08428800FFE380F9011490141A +:10429000D3140033082BC460CD74013B036D476D0C +:1042A000CA08608055328E64C2084180CA64BF0863 +:1042B0004280EE33CA64BB0823806A594E65B90850 +:1042C00004804338B6087D1246836584CA64B0080A +:1042D000012945740A5CFFE339FE545C635A60832C +:1042E000012A68434082C860C264A5080684002889 +:1042F00011381208FFE304E51F1F1F1F0F0F0F0FD8 +:104300000F090F0F0F0F0F23273A6D126783423BE0 +:104310000C08FFE36DF90684002803380808678459 +:10432000FFE3EEE437496171413B030C0030800448 +:10433000FFE3BEFEF107136CFFE33CFFED07136CD8 +:10434000FFE366FFE907136CBE11FFE333FF4F8500 +:104350003D110030FFE3BCF967844F85CA64DC0F70 +:10436000403B6FA5D90B01336DA5D607D4116784E7 +:104370004786CA64DC0F1B6C67A6FFE3F5F91B6C6C +:10438000FFE3B8F94038C80B5474136CFFE376FFB1 +:10439000C307CC74403B0A0C413BC90B29110032C6 +:1043A00062817F2AC86C62A1C207461162827F3196 +:1043B000C46862A2BC07CC74423B0A0C433B0E0C9F +:1043C000413BB50B5F1062827031C568F3075D1029 +:1043D00062827031C568A53BED075A106282703168 +:1043E000C568A63BE7070032CC740F2A8C6088743E +:1043F0000F3A0408531061A29A0720328E64970B7B +:10440000701041A394070C746E1042830E31033870 +:1044100085680708FFE374E402060804A13AA23A9B +:1044200042A38507A23AFD07A13AFB070230931485 +:104430000330FE070130FC0748040020F003002091 +:0844400020040020985F000039 +:10444800D214436D076DFFE321FF403803080030A5 +:104458000404043C0308013092144085FF33CA6405 +:10446800040C6185483BF80B22110030FFE32CF95E +:10447800453C14080431176CFFE382FD64850E6423 +:10448800EB0B7D1042852D838664E20F2F83413923 +:10449800DF0B4DA301324EA3DB07093CDD0F275C80 +:1044A80045741461176CFFE34DFD635C6083012C58 +:1044B80068434084C860C264CF0B6F1043852D8366 +:1044C8008664070C2F83413904084DA301324EA39B +:1044D800478530838664070C50A34810409246B342 +:1044E800013251A3508326100030FFE3EDF8B007E6 +:1044F800A75F000020040020B8000020B95F00007A +:10450800D01441380D0C4038050C42380D0C0030E1 +:104518000604681002310093FFE3E1ED9014651082 +:1045280001310093FA07631000310093F607000089 +:044538004800002017 +:10453C00D2148011013200940031FFE37DEC009421 +:10454C0001320131FFE378EC013200940231FFE3D8 +:10455C0073EC00940031FFE3DFEC00940131FFE3D6 +:10456C00DBEC00940231FFE3D7EC10320031121077 +:10457C00FFE3F4E91430FFE37DEF0034AE10107468 +:10458C00FFE3BEFF403807080133D0708F6C629593 +:10459C00C86C62B50024433CF30B6710073142939F +:1045AC00486826A30030251043B3FFE38BF8921420 +:0C45BC004800002048040020C45F0000FC +:1045C800D31422114211A31100926091C260143BCE +:1045D800060842956395CA642E089314609160B2E8 +:1045E800176D00361874FFE38DFF40380033140848 +:1045F80063A46084043B0808002360A40026433EAB +:104608000024F10BE7070133D8708F6C6295C86CF2 +:1046180062B50033F30760A46384043B04080023F5 +:1046280063A4ED070033012B4295DB70C86862B5BF +:104638000033F707073343B500308C68261046A5CA +:10464800FFE342F8CB070000B80000204C0100202F +:0846580048040020D05F0000BF +:10466000C2147D115D116093403B40083C1162898A +:10467000CD74403B3B0C7B116093403B7A110E0C98 +:1046800000830020007400A38083028901746435D4 +:10469000147C0165050C013000A2003000A3131149 +:1046A000009040380E0C01830020007401A3818328 +:1046B000028901746435147C0165050C013001A286 +:1046C000003001A30A11009040380E0C0283002034 +:1046D000007402A30283228945746434507C05640B +:1046E000050C013122A2003122A36082413B0F0858 +:1046F0000033A01180112143045D00880023017460 +:104700005060513B00A9F80B003360A26182413B2D +:104710000F080033B9109A102143045D008800236C +:1047200001745060513B00A9F80B003361A2628212 +:10473000413B0F080033B31093102143045D008800 +:10474000002301745060513B00A9F80B003362A2B2 +:1047500082140000FC05002068050020680000208D +:10476000FC040020B2060020900400207405002004 +:10477000AE0700205C04002044050020060600204F +:084780003A0600201C0700208E +:10478800C414231469114A110B6D209340B80033E7 +:10479800A81140984082413A080842438460009238 +:1047A80041430174946000AA4084423A0908424394 +:1047B800846000924143C0110174986000AA40844B +:1047C800403A09084243846000924143DB10017477 +:1047D800986000AADA104086413A21087910003220 +:1047E80061B8751062B861420C5D0088E198CC61CF +:1047F800017400AF02980C600088F310CC6101745A +:1048080000AF00220D100C600088F0100174DC600D +:10481800513A00ABE90B003360A611330023CC7486 +:10482800103BB80F0314841454000020190700200B +:10483800AE070020440500203A060020A10500200C +:0C4848005C040020060600201C07002075 +:10485400C214003200308810013520316094C970D0 +:10486400D468403B020C002000224A64F80B007418 +:0848740082140000FC05002085 +:10487C00C214003200308810013520316094C970A8 +:10488C00D468403B020C002000224A64F80B0074F0 +:08489C0082140000FC0400205E +:1048A400C214003200308810013520316094C97080 +:1048B400D468403B020C002000224A64F80B0074C8 +:0848C4008214000090040020A2 +:1048CC00C214003200308810013520316094C97058 +:1048DC00D468403B020C002000224A64F80B0074A0 +:0848EC00821400007405002095 +:1048F40073105410028320824264160C2082447484 +:104904004139180C4039110C4239160C4082887414 +:1049140042A341838874413A07082B10209142B185 +:10492400003240A341A33C7828100091281010B114 +:10493400EE072810FB072810F90700006800002084 +:104944001907002058000020D00700200012014061 +:08495400400500207005002061 +:10495C00D4142A147101608360B80034720160832E +:10496C0063B87201A0837201608366B8730168B882 +:10497C00730164B869B8614448988C6035014C6027 +:10498C00408A2089866029984C608B7440A9180154 +:10499C0058018C600C60408A00888260DA010C5EE1 +:1049AC008B7440A8C1B85B011B018C600C60408A01 +:1049BC00008882601D018B74EC5840AF40898B7469 +:1049CC00DF3A5F01C86002B8490C003240AB219855 +:1049DC0061444C6040898B74DF3A4402C860410CDE +:1049EC00003240AB229861444C6040898B74DF3AB2 +:1049FC004902C860390C003240AB6098033B21443B +:104A0C00B50C6498C4604D024860008B40890374F7 +:104A1C0009642098847C9B0C208B47748564970CCC +:104A2C003302506040810022887440A1003055024E +:104A3C00906000A25602906000A25602906000A204 +:104A4C004081039880641D08403D11085A02609211 +:104A5C00403B1508009201330F0440898974B70755 +:104A6C0040898974BF0740898974C707413D5C0838 +:104A7C004303D76C0092D070C06C60B2003360A15D +:104A8C00614444988C60C08A4E03C860E08B024736 +:104A9C000531FFE3D1F29B75196405B8180C51036D +:104AAC00906060820023CC7460A200317603D060E9 +:104ABC0020A360822698C4640A0800333603012BB5 +:104ACC000091D370C06860B1003360A260984198C7 +:104ADC00033B6144C860408B8B744D0D9D643A0D53 +:104AEC00408B20988B745C7C4964340D3E13506071 +:104AFC0040810022887440A100305C13906000A2B9 +:104B0C005B13906000A25B13906000A2408103983D +:104B1C0080647D08403D710857136092403B7508D6 +:104B2C00009201336F04423D030C00E80102D313E1 +:104B3C00008B408E8974037409220964A00F608B6A +:104B4C00CD7460AE0033471360B28507614424987E +:104B5C00C460608BCF74C964940F00334113012B74 +:104B6C002092D370C46860B28C0744988460181289 +:104B7C00608A4060CF742089C564830F60136083A2 +:104B8C00CC74403B7E0B13121060208000214474C7 +:104B9C0020A0003630125060C0A130125060C0A16D +:104BAC002F125060C0A12080C39858646A0B403DFE +:104BBC0008084C126092403B0C082092013306040A +:104BCC00413D0A084712D76C2092D070C46C60B279 +:104BDC00003360A05607423D020CDC05E712C08A88 +:104BEC00208F45749B7509218565F30F408A897464 +:104BFC0040AF5C1160B2E207413D9B085E11D76C7F +:104C0C000092D070C06C60B2003360A161444198D6 +:104C1C008C60608ACF7445988D64180C5311906029 +:104C2C0060820023CC7460A200316F11D06020A38D +:104C3C0060822698C4640A0800332F11012B00915E +:104C4C00D370C06860B1003360A260984298033B97 +:104C5C006144C860408B8B74260D20989D645C7CED +:104C6C00130D408B8B7449640F0D261150604081DD +:104C7C000022887440A100304311906000A24311BF +:104C8C00906000A24211906000A2430480010020B9 +:104C9C00540100205D0100205C010020AE070020C3 +:104CAC001C0500205C0400200606002044050020A2 +:104CBC005C0600203A0600201C0700208807002014 +:104CCC0066070020C404002098040020AE010020D8 +:104CDC0009050020E804002028060020C00600205A +:104CEC00FC040020DC06002078050020A205002032 +:104CFC00A006002090040020B60600201A05002013 +:104D0C0084060020F20600207E040020900500207E +:104D1C004081039880648108403D74084B01609287 +:104D2C00403B790801330092D070C06C60B27304C0 +:104D3C00423D6009D001008B408E897403740922B6 +:104D4C000964630F608BCD7460AE0033550160B2A3 +:104D5C00E80641986144C860608B4098CF749C7C95 +:104D6C00C964550F00335B01012B2092D370C468CA +:104D7C0060B24D079D644B0F5F0140828874403ACE +:104D8C0047B8450B0102106020800021447420A01C +:104D9C00003623025060C0A124025060C0A124023E +:104DAC005060C0A12080C3985864310B403D080866 +:104DBC004E026092403B2308209201330604413D91 +:104DCC0008085202D76C2092D070C46C60B21704E1 +:104DDC00423D4209C08B5B74D902876C208E4574AE +:104DEC00092185640C0C608BCD7460AE67983D0214 +:104DFC0060B101334091D070C86C60B1003360A0D9 +:104E0C000607413D30084503D76C0092D070C06C4A +:104E1C0060B2036C003360A1614442988C60608A7C +:104E2C00CF7445988D64180C460390606082002303 +:104E3C00CC7460A200316803D06020A360822698F5 +:104E4C00C4640A0800333503012B0091D370C06889 +:104E5C0060B1003360A20024513C030C00E88DFDCE +:104E6C000A149414423D4809D403008B408E897473 +:104E7C00037409220964CF0F608BCD7460AE0033CC +:104E8C005B1360B2500761444298C860608BCF746A +:104E9C00C564C30F00335613012B2092D370C46822 +:104EAC0060B2BB079D64B90F541340828874403ABA +:104EBC00B40B1813106020800021447420A000361D +:104ECC0033135060C0A135135060C0A1341350602F +:104EDC00C0A12080C3985864A00B403D080844131F +:104EEC006092403B2108209201330604413D0808A2 +:104EFC005F12D76C2092D070C46C60B21504423D26 +:104F0C002A09E513C08B208F45749B750921856593 +:104F1C000B0C608B3612CD7460AF40B101334091F5 +:104F2C00D070C86C60B1003360A07707433D030CB0 +:104F3C0000E8A6FD5B12C08B008A01749B750920EA +:104F4C0081650C0C608BCD7460AA0033161260B0B6 +:104F5C000133C090D070D86C60B004986144C060CC +:104F6C00008B408A89740374042A8164030800E866 +:104F7C0087FDCE12008B408E897403740422096461 +:104F8C00030800E87DFD608BCD7460AE461200E82E +:104F9C0063FD433D020C1D06C212E08A208E45744F +:104FAC00DF750921C5650B0C408A897440AE5E1112 +:104FBC0060B201332092D070C46C60B244986144EA +:104FCC00C860408B208E45748B7404294964020898 +:104FDC000006D611208B408E8974477404224964D4 +:104FEC00030800E8F7FD608BCD7460AE4E1100E84D +:104FFC00E6FD433D020C09065E10C08B008A01746D +:10500C009B75092081650C0C608BCD7460AA0033F4 +:10501C00191060B00133C090D070D86C60B001989A +:10502C006144C060008B408A89740374042A8164D3 +:10503C00030800E8EBFDDE10008B408E89740374CE +:10504C0004220964030800E8E1FD608BCD7460AEB6 +:10505C00491000E867FD433DD20A208BC5108774C8 +:10506C00208E4574092185642F0C230474050020BF +:10507C00AC070020900400201A050020DC0600205C +:10508C0078050020A2050020A0060020F2060020D2 +:10509C00840600203E0500207E04002090050020A0 +:1050AC00B6060020FC040020C0040020BE06002030 +:1050BC00608BCD7460AE67983D1160B10133409147 +:1050CC00D070C86C60B141986144C860408B208E30 +:1050DC0045748B7404294964920ED611208B408E32 +:1050EC00897447740422496402088906608BCD7464 +:1050FC0060AE4F116206433D8E0A4F11C08B008A81 +:10510C0001749B75092081650C0C608BCD7460AAB1 +:10511C0000330A1160B00133C090D070D86C60B00D +:10512C0002986144C060008B408A89740374042A1D +:10513C00816402087006C211008B408E897403745E +:10514C000422096402086706608BCD7460AE5B10A4 +:10515C0000E8EAFD433DE80AD710E08B208E457449 +:10516C00DF750921C5650B0C608B3410CD7460AEF6 +:10517C0040B101334091D070C86C60B14298614429 +:10518C00C860408B208E45748B7404294964CC0E06 +:10519C00CB10208B408E8974477404224964C40E52 +:1051AC00608BCD7460AE45109F060000900400200B +:1051BC00BE0600203E0500207405002004060020D9 +:1051CC00D41422143C116781413B23085B1160828B +:1051DC000023CC7460A2608219110080C06419088D +:1051EC00003360A2B7116085403B150C6085413BD4 +:1051FC001008003360A5003273111411B411D511CD +:10520C00609342B374118093003340808C64440CDF +:10521C00021494147E590036F01160B86097D9705E +:10522C000132C868403B340C81466098D060008BDA +:10523C00FFE3B2E1C76C8031836C37410030FFE390 +:10524C00B5D76711D060608B64430E2361B8FFE360 +:10525C005BDD6198C07C43110D7490606211D0606D +:10526C0000AA608B008A01745F32CD74087C6431B3 +:10527C0061B8FFE3E1EE6198C1640A0C75100C6132 +:10528C00608C063B0508002360AC013360A500264A +:10529C00513EC50BAC074C5D4082414222439860A5 +:1052AC005060408AF29154429C6C002352B1CC74F1 +:1052BC00AD070000680000207E0600208101002060 +:1052CC008905002058000020B8060020080700209F +:1052DC005E01002054000020840100208A0100207F +:0852EC003E070020AE07002080 +:1052F400D41421144A0160820023CC7460A2608219 +:105304002C0120814C64030800E80F02003360A2E2 +:105314006F016093403B030C00E8090271015001E6 +:10532400003160B80F6D11016141A0984C61A08DEE +:105334005775DF3D1C0CD401AC588C61A08DC08E18 +:10534400997555755A61C08A95651108B90144610A +:10535400C08500269875C0A5DB01E085CA86D8659E +:105364000608DC010137E0A60036C0A5AC5CA08DC0 +:105374005775203D1D08A4024C61CC58A08DC08EE9 +:10538400997555755A61C08AC24695651108A60279 +:105394004461C08500269875C0A5CB02E085CB8604 +:1053A400D8650608CD020137E0A60036C0A5AC5C7E +:1053B400A08D5775DF3D100CF502CC58CC61A08E42 +:1053C400E08FDD7555755E61E08AD565050CA08EAC +:1053D400002D5575A0AEAC5CA08D5775DF3D110C4A +:1053E400FF02CC58CC61A08EE08FDD7555755E61EF +:1053F400E08AE14FD5650508A08E012D5575A0AE54 +:10540400CC5CA08E5775203D0C08C08EA08A9B757D +:10541400A14D5965060CCC58A08E00255575A0AE3B +:10542400CC5CA08E5775203D1008E08EDF75A08AF5 +:105434005D650B0CC08E9B75A14D59650608C06057 +:10544400A08B01255575A0AB0021513901226D0BAC +:1054540076036093403B800977035F03003160B8B3 +:105464000F6D18036141A0984C61A08D5775DF3D05 +:105474001C0CDB03AC588C61A08DC08E99755575DE +:105484005A61C08A95651108BF134461C08500261E +:105494009875C0A5D513E085CA86D8650608D413C7 +:1054A4000137E1A60036C0A5AC5CA08D5775203D40 +:1054B4001D08B4134C61CC58A08DC08E99755575D8 +:1054C4005A61C08AC24695651108B0134461C0850B +:1054D40000269875C0A5C513E085CB86D865060857 +:1054E400C3130137E1A60036C0A5AC5CA08D577587 +:1054F400DF3D100CE313CC58CC61A08EE08FDD753A +:1055040055755E61E08AD565050CA08E002D557534 +:10551400A0AEAC5CA08D5775DF3D110CF912CC58D0 +:10552400CC61A08EE08FDD7555755E61E08AE14F38 +:10553400D5650508A08E012D5575A0AECC5CA08E56 +:105544005775203D0C08C08EA08A9B75A14D5965E6 +:10555400060CCC58A08E00255575A0AECC5CA08E50 +:105564005775203D1008E08EDF75A08A5D650B0C31 +:10557400C08E9B75A14D59650608C060A08B01259E +:105584005575A0AB0021513901226D0B6012609357 +:10559400403BF8087F115111003160B80F6D1E11A6 +:1055A4006141A0984C61A08D5775DF3D1C0CDB1147 +:1055B400AC588C61A08DC08E997555755A61C08A9E +:1055C40095651108B6114461C08500269875C0A57B +:1055D400C611E085CA86D8650608C5110137E2A65A +:1055E4000036C0A5AC5CA08D5775203D1D08AB11DD +:1055F4004C61CC58A08DC08E997555755A61C08A7E +:10560400C24695651108A7114461C08500269875A6 +:10561400C0A5D610E085CB86D8650608D41001371E +:10562400E2A60036C0A5AC5CA08D5775DF3D3F0CEB +:10563400FA10CC58CC61A08EE08FDD7555755E6193 +:10564400E08AD565340C2F04FA050020810100207E +:10565400FC0400201C050020AE0100205C04002096 +:10566400AE070020C0060020880000206805002046 +:1056740028060020900400205C0600200606002076 +:1056840044050020A0060020A20500207405002087 +:10569400880700201C0700203A06002090050020FF +:1056A4007E040020A08E002D5575A0AEAC5CA08DAC +:1056B4005775DF3D110CFF11CC58CC61A08EE08FE3 +:1056C400DD7555755E61E08AE14FD5650508A08EEC +:1056D400012D5575A0AECC5CA08E5775203D0C08ED +:1056E400C08EA08A9B75A14D5965060CCC58A08E1E +:1056F40000255575A0AECC5CA08E5775203D1008D2 +:10570400E08EDF75A08A5D650B0CC08E9B75A14D84 +:1057140059650608C060A08B01255575A0AB002112 +:10572400513901223E0B01149414FFE3A7F86211CE +:105734006C83C06441110E0C6082CC74013B050C77 +:105744007F10013240A3850660820023CC7460A2DE +:1057540080060033FD07FFE3A5F877106C83C0646F +:1057640056100E0C6182CC74013B050C741001328E +:1057740041A30D0761820023CC7461A208070033A2 +:10578400FD07FFE3A3F86C106C83C0644B100E0C90 +:105794006282CC74013B050C6910013242A3C40738 +:1057A40062820023CC7462A2BF070033FD070000AD +:1057B4003A06002088000020940400206805002098 +:1057C400D41424141F112012401221B86090A09107 +:1057D400D46C8092D06C403B00B842B89C11670CEA +:1057E4001C1100357C1103B80132947040B040980C +:1057F40040922090846840B3419840922090486839 +:10580400561120B222982091C09084693411C0B1FD +:10581400E093C0929E650708E092C0919E650308DC +:1058240040930C04C092403E290CC091403E260C8B +:10583400E092C0919E65220840922094846C0025D9 +:10584400513D40B4D20B6094403B4611320C20943D +:105854006092C664060C609460B20032621140A388 +:10586400FFE3F8F7611160830C640608003360B449 +:1058740001327D1040A304149414C093403E080CDC +:10588400C092403E050CC09340929A64CA0F409364 +:10589400403A080C4091403A050C409320914A64E8 +:1058A400C00F4398209240948568CA0760B4CC071F +:1058B40060B200314C1020A24D1060B2DD07000030 +:1058C400FC0400209004002074050020FC05002046 +:1058D400D40600209C06002060070020000600205B +:1058E400040700201A05002088010020F405002088 +:1058F40060146214D11483116084403B1508013391 +:1059040060A461116083413B0F0840116082002351 +:10591400CC7460A26082433B0308003360A2FFE3BF +:1059240033F7013361A47A10013160934A93846898 +:10593400403A020C2CB34A9302318468403A020C78 +:105944002CB34A9304318468403A020C2CB34A9332 +:1059540008318468403A020C2CB34A9310318468AD +:10596400403A020C2CB34A9320318468403A020C2A +:105974002CB3EED901208098021463146114000042 +:1059840068000020080500201907002058000020A6 +:1059940060146214D31469120034609386B36812DD +:1059A4006083413B4008FFE3A5F7FFE3D7F7FFE33C +:1059B4000DFCFFE39FFCFFE353F6FFE303FF6112DB +:1059C4006093403B120C60124093403A0E0C7F11DE +:1059D40064302093002120B32093807C4864050820 +:1059E4005B11013120A280B37A114083413A23082C +:1059F40039115A1100916092C26479110A08809297 +:105A04005811009212640508209140928664090C92 +:105A14004093002240B354113C82409384640308B1 +:105A2400003240B3EED90320C298A19880980414A0 +:105A340063146114A0835475403DF50B661147113E +:105A440000932092426427110511330CC092809177 +:105A54001A652F0CC09380911A652B0C809000243A +:105A640080B08111DC84809018650208A0B0809316 +:105A7400009212641D10040C8091403C0F0CA09302 +:105A840080911665040C8092403C080C2091409251 +:105A940086640C0C6093403B09086090002360B05E +:105AA40071105C836090C864BE0B003360B0BB07A8 +:105AB400003480B0DD0700006400002008050020E9 +:105AC400FC05002058010020F4050020A105002059 +:105AD40050010020FC0400209004002098060020BF +:0C5AE4007405002088000020D806002077 +:105AF000D4142D140132CE03C36C4EDC0A00409640 +:105B0000479288744EDC09004ED80900403A080CD0 +:105B10004ED80900423A040C00300D149414970337 +:105B200009320094403B41B0570807336EDC0B004C +:105B30007B0363B88033624367B86ED80B00CC74C4 +:105B400062B07E0363B001320131BF03FFE322E3A1 +:105B5000E0957F1360B75F13003362B743B7D83265 +:105B600045B74F97A23A4FB703982ED80B007D3216 +:105B70000021487C61B8FFE377EA04B8FA32249840 +:105B800042424864CA0B44987831049840B8FFE315 +:105B90006BEA4098826045B804987831449840B8E0 +:105BA000FFE362EA4098086006B880C02070409623 +:105BB000549248B86198409460B261B76ED80A00B8 +:105BC000403B3E08FFE398E20094FFE3B9E280C166 +:105BD00020740130A307413B060803336EDC0B0041 +:105BE0007D12A807423B060801336EDC0B007B12D6 +:105BF000A107433B060800336EDC0B0078129A07BE +:105C0000443B090800336EDC0B00761263B8803326 +:105C100069439307453B060800336EDC0B007212A4 +:105C2000F607463B060800336EDC0B006F12EF07E9 +:105C3000473B840B00336EDC0B006D12E807609568 +:105C40000131409421B320B2003127B3043025B292 +:105C50002E9340684039FD0F25922AB8003110B3C9 +:105C600027B3043025B22E9340684039FD0F2592AA +:105C70002BB8003110B327B3043025B22E934068FF +:105C80004039FD0F25922CB810B32B980C9840602A +:105C900029B82998214929B8003121B320B227B366 +:105CA00025B26ED80900423B49982C0871118C64CA +:105CB000030C00330F04499866988C640E086898AA +:105CC0004798CA6068B8FE3268984842C868403B46 +:105CD00012086EDC0A00210749986598C8642908F3 +:105CE00068984798C86068B8FE33489868438C68DD +:105CF000CA64E00F6096489854B30130FFE3C0E3F4 +:105D00005E0766988C64090868984798CA6068B806 +:105D1000FF3268985042DB0749986598C8640908C3 +:105D200068984798C86068B8FF3348987043E007A0 +:105D300000336EDC0A00E2075C0000200C0000204B +:105D4000006CDC02FFFF00001400002005009CBE78 +:105D50001000030000366E01001BB700808D5B0051 +:105D600020C75400D0FE3F0068FF1F00B8FF0100AD +:045D7000FF07000029 +:105D7400000000000000F03F000000000000F83FB9 +:105D8400000000000000000006D0CF43EBFD4C3EB5 +:105D940000000000000000000000004003B8E23FE3 +:105DA40000000000000000000000000000000000EF +:105DB40000000000000102020303030304040404BE +:105DC4000404040405050505050505050505050583 +:105DD4000505050506060606060606060606060663 +:105DE400060606060606060606060606060606064F +:105DF4000606060607070707070707070707070733 +:105E0400070707070707070707070707070707071E +:105E1400070707070707070707070707070707070E +:105E240007070707070707070707070707070707FE +:105E340007070707080808080808080808080808E2 +:105E440008080808080808080808080808080808CE +:105E540008080808080808080808080808080808BE +:105E640008080808080808080808080808080808AE +:105E7400080808080808080808080808080808089E +:105E8400080808080808080808080808080808088E +:105E9400080808080808080808080808080808087E +:105EA400080808080808080808080808080808086E +:105EB400080808084D435520537461727421202545 +:105EC40064005061726120496E666F2074656D7064 +:105ED40020756E69743A256420206261636B6C6975 +:105EE4006768745F656E3A256420206B65795F731B +:105EF400656E735F6C6576656C3A256420646576BF +:105F04006963655F616464723A2564202064657620 +:105F14006963655F706F72743A25640050617261E1 +:105F240020496E666F205573652044656661756C03 +:105F3400743A25640054315F54435F33343635304A +:105F44005F563032004D43552072657365742C7270 +:105F540065636F76657220737461746521004C65A6 +:105F64006E204572723A256400486561642045726A +:105F7400720041646472204572723A25642C2025B3 +:105F8400640053756D435243204572723A25642C64 +:105F940020256400436172645F454E205365743A62 +:105FA40025640054656D5F52733438355F52656300 +:105FB4005F50726F005363656E654E6F3A256400DF +:105FC40044495020416464723A2564004449502095 +:105FD4004368616E676520416464723A2564000019 +:105FE4000000007000000050002005400010054033 +:105FF400002006400010064000000640002001403A +:1060040000900540005005400000054000000B4092 +:1060140000000A4000000940002008400010084029 +:106024000000084000F000600020006000000060F4 +:106034000000034000100240000002400010014034 +:106044000000014000E000E0010103000200010142 +:10605400020002000200020002000200020002002C +:10606400020002000200020002000200020002001C +:1060740002000A0A04000000070008000A000800E1 +:086084000D0008000A000000F5 +:040000050000010CEA +:00000001FF diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_0x0.bin b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_0x0.bin new file mode 100644 index 0000000..bf5cd35 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_0x0.bin differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01.elf b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01.elf new file mode 100644 index 0000000..29e48e0 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01.elf differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01.ihex b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01.ihex new file mode 100644 index 0000000..be28e7e --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01.ihex @@ -0,0 +1,1608 @@ +:100000000C010000263000001630000084010000C2 +:100010001E300000DC2F0000840100000E300000C4 +:10002000063000008401000084010000840100000B +:1000300084010000840100008401000084010000AC +:10004000FE2F0000F62F0000EE2F0000E62F00002C +:10005000840100008401000084010000840100008C +:10006000840100008401000084010000840100007C +:10007000840100008401000084010000DE2F0000E4 +:100080009459000024260000142700007C2700005B +:10009000E42700008401000090290000782D000072 +:1000A000A82D0000C4290000840100008401000084 +:1000B000442A0000B42A0000142B0000A82B0000E2 +:1000C0008401000036300000840100003C2C000058 +:1000D000242D0000D82D0000202E00008C2E0000C2 +:1000E0002E300000F4580000EC2E000084010000C7 +:1000F000202F00006C2F000084010000840100000C +:100100000500AA550000000000000000003000318A +:100110000032003300340035003600375B1002C077 +:10012000216400C02260A83A02C020643810003266 +:1001300040B1F8109F6FCF5F04338D5F003503240B +:10014000A0B41865FD0B1410C17B036C036C8FEA1F +:10015000130013100078036C036C036C036C036CC6 +:100160009010436DA0B400C021602F1001C02B641B +:100170002E10003020B02E1001C02B642D10003046 +:1001800020B0FA07F90700000000000090EF00E03F +:10019000F80F0020501A0000600100004424000005 +:1001A00000300020FFFF0000FF0F0000EEEE000017 +:1001B000EE0E0000D4142D1460B86143814B42B898 +:1001C000906C403AC36D876D030800E86204A1415A +:1001D000A14D550049650C0896640308403808088D +:1001E0000965060892640E08029840380B0C429884 +:1001F00060981F6C5B6C00E01307036D136C0D14AB +:100200009414DF3E510C2101002905654B08620161 +:10021000002B0D65490C545404018060343A2108C8 +:100220003433CA6042988D704B6C4C7002984264B3 +:100230003B08013184680233495B0298403841B879 +:100240006208510192641F082F015460C46D403F41 +:100250002D08609800324F6C003000E0F906CE07A0 +:10026000229840394E0814314A60936C86700B6CAA +:1002700004701264030C00E87104013184680230D8 +:10028000695861B82002526425088098DF3C030851 +:1002900000E807049F6CDB6C0030250200E00E08CC +:1002A000AD070232CB070032C9076902002B4D654A +:1002B0000098080CDF38030800E8EF030034003131 +:1002C0009E07DF38FC0F0034436C803278424C606C +:1002D00096078033174340980A6408089F6CDB6CCC +:1002E0001F6C5B6C00E0D006890776022098C6641C +:1002F0000A08DF3E08081F6C5B6C00E045047E07BF +:10030000003361B81F6C5B6C83B800E02A04403F87 +:10031000036D63982608403D050C424602030A64BB +:1003200020084098DF3A080C936CC76C00302A0311 +:1003300000E0C407036DDF3E620F6B034C61019860 +:10034000406D403D0A08936CC76C0B6C4F6C00E02D +:100350007F06836CC76CA3074198413A500BB607E0 +:100360005F4E002A47B807984198806C403A0408CD +:100370009F6CDB6CEB075703C964BF0C5803C9645F +:100380007F030C0C002B4D650F082098DF39970F69 +:100390005C037B030B6C4F6CA607012B4D65F60FBE +:1003A00018134165050C00982038F30F88070032B8 +:1003B00074131F6C5B6CC03600E04A0657467A1314 +:1003C000436D076D00E06006C36D876D57137813AA +:1003D000176C536C00E0580603B824B8003275134C +:1003E000176C536C00E05006836CC76C1213331308 +:1003F00000E02E06976CD36C00E04606836CC76C59 +:100400000030231300E0240605B8976CD36C26B89F +:10041000176C536C00E03806836CC76C05982698FF +:1004200000E032064613601300E02E06836CC76CB2 +:100430000398249800E00C06836CC76C436D076D2D +:100440001F6C5B6C00E0EC059F6CDB6C003023B82C +:1004500000E0FE05836CC76C176C536C00E0F80578 +:10046000076D219800294798486C4039436D020C6C +:10047000F005741261B86098003202984F6C00E089 +:10048000E7056398003200E0FF05C36D876D429871 +:100490006098176C536C00E0F705836CC76C1F6C99 +:1004A0005B6C00E0BD05C36D6098876D00322398DA +:1004B000003000E0E90502B803B824B8836CC76CCB +:1004C000476D1F6C5B6C00E0AB05076D3E110029AA +:1004D000056500B8030800E8B3027C11D060C06C69 +:1004E000403B0208B8054E116E110030219800E023 +:1004F000CB054B116B11F706D5115965A609136C85 +:1005000000327F1000E0C0050037036D476D342FC7 +:1005100014553D10AC454C4D04606E111C608D644B +:10052000F81004B8C86D090CCB119964900D836C58 +:1005300000220A1144B8C0610035C3456811234543 +:10054000D860409328B86193136C5F6C45B866B867 +:1005500000E07E0509B8459866982AB8136C5F6C70 +:1005600000E05E05836CC76C0030261000E0A60634 +:10057000836CC76C360400000000F07F000040432D +:100580000000F03F01FCFFFF000010C00000E03F52 +:100590000000C0FF0000E0410000F0439C750088AF +:1005A0003CE4377E4715F73F44DF5DF80BAE543E21 +:1005B0000000D03F555555555555D53FFE822B650A +:1005C0000000F0BF00009040000070BFFFFF0F0070 +:1005D0008E98030079B60B000000F0FF745D0000F8 +:1005E0000BB82CB809982A9800E04E0503B8803261 +:1005F0000157876DBD382C420460B2454061D76C0D +:1006000000325B6C003000E03F05836CC76C0998DA +:100610002A9800E01D0509B8459866982AB8003068 +:10062000576C00E01505836CC76C136C5F6C00E0C1 +:100630000F05DB6C003200E02705836CC76C09985E +:100640002A9800E005054B986C9800E01D0543983A +:10065000DB6C05B826B80B6C5B6C00E0150582EA14 +:10066000130183EA1301436D076D00E00D0582EA73 +:10067000110183EA110100E0D304976CD36C00E010 +:10068000030582EA0E0183EA0E0100E0C904976CBB +:10069000D36C00E0F90482EA0B0183EA0B0100E06D +:1006A000BF04976CD36C00E0EF0482EA080183EA90 +:1006B000080100E0B504976CD36C00E0E50482EA21 +:1006C000050183EA050100E0AB04C36D976CD36CB0 +:1006D00029B8176C536C00E0D704836CC76C1F6C8F +:1006E000299800E0D104436D076DDB6C003203985C +:1006F0005B6C00E095044598669800E0C504976C33 +:10070000D36C00E08D04436DDB6C29B800325B6C68 +:10071000003000E0B90400326F00C36D2AB800E079 +:100720007F04976C699800E07B04076DC76C00320A +:100730005B6C003000E0A8040BB82CB800327800E5 +:10074000536C003000E084049F6C6A9800E08004E1 +:10075000836CC76C176C299800E07A044398DB6CB3 +:1007600000E09204836D476DD36C003205982698A3 +:1007700000E08A04836CC76C1B6C576C00E050046B +:10078000C36D876D836CC76C0B982C9800E0480490 +:10079000E033584300306D01076D00E0750405B883 +:1007A00026B84B986C98536C003000E05104836C71 +:1007B000C76C1F6C5B6C00E04B045501770100E0D7 +:1007C0006304C36D476D57017701536C003000E03F +:1007D0005B04836CC76C1F6C576C00E02104DB0169 +:1007E000489888614496659600E01A0409B8049810 +:1007F0002AB800E06706836D0202476D1F20289823 +:1008000004608090E19049986A980598269800E0E5 +:100810000704936CDF6C00E003049B6CD76C00E072 +:10082000FF039B6CD76C003023B800E01104936C7D +:10083000DF6C00E00D044598669800E00904836CC5 +:10084000C76C09982A980B060037630601357606AF +:1008500077021106570276021F6C5B6C00E0E00322 +:1008600005B826B84298D76C0098536C00E0F003A6 +:10087000836CC76C0598269800E0CA0520380208EA +:1008800033062144014961030D64FD0C34504203D9 +:10089000803048604D40867090606142354B050362 +:1008A00040606503C6700B6C0D684C42C36C4C4ACB +:1008B0001430B43A25588670DF3C40B8050C409897 +:1008C00000340A6180B800320298576C00E0C0031F +:1008D00003B824B803989F6CDB6C249800E0A00355 +:1008E000003274030030076D00E0CE03476D43987B +:1008F000649802B8536C003000E0AA03836CC76CA4 +:100900001F6C5B6C00E0A4035D037C0300E0BC0390 +:10091000C36D876D5E037D03536C003000E0B4034C +:10092000836CC76C1F6C5B6C00E07A03076D836C93 +:10093000C76C03B8576C029800E072034298D76CFA +:10094000C36D876D00E08403836CC76C0398536CA0 +:1009500000E07E0302B823B89F6CDB6C1F6C5B6CFD +:1009600000E092034F137013436D076D00E08C039A +:100970004E136F1300E06C03976CD36C00E084039C +:100980004C136D1300E04C03976CD36C00E07C03B8 +:100990004A136B1300E05C03976CD36C00E07403A4 +:1009A0004813691300E03C03976CD36C00E06C03C0 +:1009B000836CC76C1F6C5B6C00E04A03436D076D72 +:1009C000836CC76C1F6C5B6C00E05E03803304B803 +:1009D00025B800327743176C536C00E03903836C01 +:1009E000C76C0498259800E06904076D436D429830 +:1009F00063981F6C5B6C00E047034298639800E0CB +:100A00000F03836CC76C176C536C00E021039F6C61 +:100A1000DB6C00E01D03836CC76C0030351100E017 +:100A2000170340987442C4609453203C2F0C4098A4 +:100A300000E09A000032619800E856FC01446148E9 +:100A40004212C9641F0F221250600098406C403956 +:100A50000B0C401260120030219800E015035D116C +:100A60007D1100E841FC4298D76C0098536C00E07F +:100A7000EF02836CC76C1F6C5B6C00E005052038CF +:100A8000010FE8070035A0B826074F6CD4070034E3 +:100A9000381000E8B5FB0034209800E8B1FB1F6D6A +:100AA0005B6C00E8ADFB0000EF4E454A287ECA3F74 +:100AB00065DBC9934A86CD3F01411DA96074D13FD2 +:100AC0004D268F515555D53FFFAB6FDBB66DDB3FE4 +:100AD000033333333333E33F0000084009C7EE3FAD +:100AE000FD033ADCF5015B14E02F3EBE745D0000AF +:100AF0000000F03FFE822B654715973C0000E03F69 +:100B000002FCFFFF01FCFFFFFFFF0F00432EE63F4B +:100B1000EF39FAFE422EE63F396CA80C615C20BE2C +:100B2000D0A4BE726937663EF16BD2C541BDBB3EF3 +:100B30002CDE25AF6A56113F93BDBE166CC1663FD1 +:100B40003E5555555555C53FFFCB904000346F3F3E +:100B500059F3F8C21F6EA501003300E894FB214150 +:100B600021493C78C114C76CC06C403B080C65102F +:100B7000076D0C69544290604D68486C8114000008 +:100B80000000F07FD41423147A12436D076D076CB4 +:100B90004C68C664976C1208D36C176C536C00E0F9 +:100BA0007302836CC76C176C536C00E03902436DA1 +:100BB000076D176C536C03149414203C130C6144A0 +:100BC000214B546C4039F60F403C0C0C976CD36CA5 +:100BD000176C536C00E03C02836CC76C00E06E0342 +:100BE000E7079454403C12084038760C80350033B7 +:100BF0002D45836D8469403E730C235B203606616E +:100C00008E614B6C5970046C8C707B110C610136D9 +:100C10000C4090690C48403EB438050C3F4AA14056 +:100C2000145941427F4AC060815480360031C0600F +:100C300082B8414216350E4620B880590D65060827 +:100C4000C0988061205CD260C0B8002D9F4A61438B +:100C5000403DD06041420148F10B203680340030E5 +:100C6000C1B89844C564D45C05084E641008886512 +:100C70000E0CDF3EB05E370CDF3D3508E25988656B +:100C8000C6600208002B9A6010605F6CDF4A8C61BE +:100C9000D860C198002E403E4142814CC1B8E30B60 +:100CA000C86C403B090C0033002BC2641E0800983E +:100CB000002000B8003001346098A0980C694155BC +:100CC0002E10403C48600148020CBF38A298944561 +:100CD0000461436D6F070B4A142C5542860701408F +:100CE00000238807C76DCC0700208038E507000087 +:100CF0000000F07F01FCFFFF0000E03F211420B85E +:100D00007F6C406020812141C463209801143C78AD +:100D1000D21400326C10436D076D00E09703DF388A +:100D2000060C176C536C00E0050492140032661038 +:100D3000176C536C00E08C0100E0FC0380337843B7 +:100D40000C6092140000E041C4142A146090013B2E +:100D5000CB6D670C4091013A660C443BDE0C443A83 +:100D6000620C423AB70C423B5E0C43906490829016 +:100D7000A29142B863B84391649140B861B8755C80 +:100D8000DF3B8F6CD2083F369964500C1565BF0C61 +:100D90000032003340B861B8619041918E64780CA4 +:100DA000403BAD0C009821984298639800640B601A +:100DB0004F60DF39BD08003361B782B7836CC76C01 +:100DC00003B724B70030003100280029016409600E +:100DD0004D608F035064670C0665FD0C0030229750 +:100DE00001280029D40302B8E0B803049665830CF7 +:100DF00001439F4A006DA142976CD36C00350034CB +:100E0000002C002D116509614D615865076C0029A2 +:100E1000EE0BE09843B764B7033302B760B71F6CBB +:100E20000A148414076C0A148414203B8C080033C1 +:100E30001F2BC860DF3B66B8BB08A1984D71A4B8F2 +:100E40000035A5B86698DF3B00350036AD080132A5 +:100E50008C708B6D00320033002A002B8964956002 +:100E6000D960A098C19848698C69976CDB6C8C6CD0 +:100E7000403A00355561976C0033A498C598486D89 +:100E80008C6D619041918E64A0B8C1B88A0B61B736 +:100E9000009821984298639889648160C56082B700 +:100EA00043B764B7033120B73B12C46410089F43B3 +:100EB000014A106C00350134214B9068D468806C75 +:100EC000C46C43B764B76297002362B71F6C0A14FF +:100ED0008414423BA60B60B7619061B7629062B721 +:100EE000639063B76490419164B76190C86861B7DB +:100EF0001F6C9707E2981C657C0B8C07029823985F +:100F00004098619800640B604F60540700320033D2 +:100F1000176D42B863B84107443A830B4190619121 +:100F2000CA647F0F1D117D0700328E602D070133CB +:100F300061B70032003388648360C76082B743B70B +:100F400064B74107403B290F00331F2BC860DF3BCC +:100F5000086166B849086398A698D57064B80033EC +:100F600065B86698DF3B003500363A0801328C7070 +:100F70008B6D00320033002A002B89649560D960A4 +:100F8000A298C39848698C69976CDB6C8C6C403A6A +:100F900000355561976C0033A498C598486D8C6DE9 +:100FA000A2B8C3B8FA060133C8704F6D54076198F0 +:100FB0001F36A1438A615871A9B8A098C198A7B8F3 +:100FC000C8B86798C970A998D46C64B86898C97093 +:100FD00065B83907003101290464010B6407013346 +:100FE000C8704F6DC7076398C1431F35695D5B6D5E +:100FF0004C71A9B8A298C398A7B8C8B86798C97027 +:10100000A998D46C64B86898C97065B8AB0700003B +:10101000FFFFFF0FFFFFFF1FA45D0000D01433147C +:1010200000B821B83B6C041963B842B800E0F4037F +:101030000919021800E0F0030E1A09190418FFE359 +:1010400085FE00E01B03131490140000D014331429 +:1010500000B821B83B6C041942B863B800E0DC0367 +:101060000919021800E0D8036A980132C96C0919FD +:101070000E1A04186AB8FFE369FE00E0FF021314B9 +:1010800090140000D4143B1408B829B808180C199F +:101090006BB84AB800E0C00311190A1800E0BC039D +:1010A0006C98013BAC0C5198013A9C0C443BA50C4C +:1010B000443A960C423BA30C423A940CEF98B498F5 +:1010C00075988F6D9F6C0033176C003100E09402AF +:1010D00004B825B89F6C00331B6C00319098C2B8DF +:1010E00000E08A02836DC76D42980033136C0031B3 +:1010F00000E0820206B827B8976C0033136C003109 +:1011000000E07A02016419605D60C465910C5E6460 +:101110008D0C0033003462B883B88498A5980036EB +:10112000C36D936CD76C89649960DD608B6DCF6DF6 +:10113000936CD76CDC64700CCE656C0C876C0033E0 +:1011400006982798016409604D60836CC76C02980B +:101150002398016409604D60836CC76C8E98339846 +:1011600004612E5C38B80D9832984264B012003198 +:101170004560D46437B879080424A4B8013000313C +:1011800008684C68046C403882B80E0C3F47014E2A +:10119000046C214F00B821B88031C098E19800302C +:1011A0003841806DC46D214BBF43014AC76C249800 +:1011B000406DC464976C0024E20F229838B8FF3069 +:1011C000003108684C6880340265370C59B87AB829 +:1011D000033376B8161800E051021B149414423BF6 +:1011E000420C72984D98CA640033CD60111872B8E1 +:1011F00000E044021B149414423A350C4D98729846 +:10120000CA640033CD600C186DB800E037021B14BF +:1012100094149864940B8298A3980132003311655A +:1012200009614D6182B8A3B88A078065730B0033EA +:10123000013462B883B872074039C90B803121414B +:1012400048684039C40B5B6C5C6C4039C00F80301F +:101250000031016409604D60FF34436D5169976C42 +:10126000C76CB5071310B8073310C464A90F022464 +:1012700022B81F4A2143A142046CDF3F80B8976C1B +:10128000C36C070C01300031086C4C6C836CC76C6C +:1012900021471F4E046C2298A146C464976DC36D0C +:1012A000002CE80B209838B88B070000FFFFFF1FC9 +:1012B000A45D0000FFFFFF0FD414321404B825B85A +:1012C0000418081967B846B800E0A6020D190618F8 +:1012D00000E0A2026898013B660C2D980139920C3F +:1012E00049980E98816C443B49B8620C423B600CB3 +:1012F0004439620C4239820C2A986F984E6090985B +:10130000B1984B986C984C652AB8936DD76D050CC5 +:10131000D6640B08086509089F4A0143A142006D85 +:101320000029976CD36C2AB80030003102B823B87A +:1013300080313D3400303541C0B8E1B8A098C19843 +:101340008C65100CDA64030848650C0CA298C398ED +:10135000406D846DA2B8C3B8A098C19888649760A6 +:10136000DB60BF41E148976DA1499C6D576CBF4A56 +:101370001B6C002C976DA143946D6142403CCF6D76 +:101380008F6CDB6CDC0BFF3000318298A398006916 +:101390004469136C576C80340265150C629883980D +:1013A0006BB88CB8081800E06901121494144E64EC +:1013B000FA0B1610F907003300346BB88CB86AB812 +:1013C0000818F2074039EB0B803121418298A3982D +:1013D00050684039E40B986C403AE10F803200339A +:1013E000136C576C016409604D60836CC76C0B6CA7 +:1013F000FF31056802B863B8D207043368B808182B +:10140000D3070D18D1070000A45D0000D0142E14DE +:1014100000B821B83B6C041963B842B800E0FC0185 +:101420000919021800E0F8016498013B0A0C699858 +:10143000013B070C0919041800E050020E14901427 +:10144000003000280E149014D0142E1400B821B8C7 +:101450003B6C041963B842B800E0DE0109190218B8 +:1014600000E0DA016498013B0A0C6998013B070C23 +:101470000919041800E032020E14901400300028FC +:101480000E149014D0142E1400B821B83B6C04191B +:1014900063B842B800E0C0010919021800E0BC01BD +:1014A0006498013B0A0C6998013B070C0919041860 +:1014B00000E014020E14901401300E149014000079 +:1014C000D1142514033360B840387F4861B8080848 +:1014D000023360B83B6C00E0D10005149114DF3892 +:1014E0001208036D136C00E0A9001D328060022811 +:1014F000DF3810080071003384B863B83C33CA6029 +:1015000062B8E90780337843C2640D0C003402618D +:10151000EA071F31614C4A60136CC570087064B8EB +:1015200003B8ED0700302210D90700000000E0C129 +:10153000D014271400B821B83B6C021900E06C01EC +:101540006298023B200C443B160C6498DF3B1B085E +:101550003E3B110C3C326D5A00321F2A8C60DF3A40 +:101560001508069809706398403B0B0C0033015B2B +:10157000071490146398403B0030016068100C60C1 +:101580000714901400300714901446981F314142FC +:101590004E60059884700D70086CE607FFFFFF7FB2 +:1015A000D214251440380035036DA1B8150C03334F +:1015B00060B800E043001D3280600228DF38130865 +:1015C000007184B8A3B83C33CA603B6C62B800E0D9 +:1015D00055000514921402333B6C60B800E04E00D5 +:1015E000051492141F31614C4A60C570087164B8CB +:1015F00083B8EA07C41421140175B048C975836D16 +:1016000020B8136C304A1C7C047DD47D1C61447D61 +:1016100030480461D0650408803129414461304C70 +:10162000D87C44614F6C6098C87C90444C600174D5 +:1016300010605460011484146D100C64070CFF33A7 +:101640000C640F0C2033003206046A100C640C0882 +:10165000083318320970481008604080095B3C78F4 +:1016600018330832F80710331032F507FFFF000077 +:10167000FFFFFF00B85D0000C41422146090013B1E +:10168000C390E4902190460C443B400C423B270C15 +:10169000DB6CDC6C403B230C62905A128D64550865 +:1016A0005912C9643308FF34003518695C69803207 +:1016B00092643F0C7F34003599659161D561531276 +:1016C000C8651A0C90120C611847684F484E806C20 +:1016D0000C436C480E124B6D006904040034003258 +:1016E00000330C430C4874449F41436C4C6C506C69 +:1016F0000B6C021484149F47014E006D936D80346F +:10170000414F8344CB6D0C61E007811200320033FE +:10171000E907084E9847006D80350547936C6D4882 +:101720000034AC45906CD46C0C436C489811DA07CB +:10173000403DC10B41429868403AC20F80340035A9 +:1017400099659161D561BC076D5A3832C964C70B80 +:1017500000321F2A8C60DF3A48081F6C097000B8FD +:10176000003001B8DF3A3C080133C8704F6D0033D8 +:101770000F6D00320033002A002B116509614D61A5 +:101780009069D4699C6D403E00300160836C0033E9 +:101790008098A198086D4C6DFF3200339068D46832 +:1017A00080300A641B08403B190880336143D068CD +:1017B000403B060C80320033116509614D611845CC +:1017C000484C684D9310806C50650C436C48013058 +:1017D000020C00308E10006985077F32ED07013260 +:1017E0008C7000350B6DC6071F340E6101471070F9 +:1017F0001B6D0D71006D1F6C0D7080B801B8B307C3 +:1018000002FCFFFFFF030000FFFFFF1FFF070000B8 +:10181000FFFFFF0F231480B8C1B8E2B843885142DC +:1018200061908090554A07806C430748403A6C4B62 +:1018300001B11908936C8C6C403A2D0C584C6843DC +:10184000C86C0332084440B18111C2115F48614342 +:10185000C86CD864936C0140002CF90B42B103B101 +:1018600064B114041C100A64190C1910806042B190 +:101870000332E84340B18033584CC86DC84400324D +:101880007543886DCC6DC3B1E4B1E298C19880987E +:1018900003143C78023360B1F907936C8C6C403AC6 +:1018A000100C80324C428C68403A0E0C013240B130 +:1018B000584C6843C86C08449B3B03B164B1E607CD +:1018C000043360B1E30740B1F407000001FCFFFFFF +:1018D000FFFFFF0FFF070000C1146090013B120CD7 +:1018E0004091013A0F0C443B170C443A0F0C423B19 +:1018F0000B0C423A130C619041918E64140C403BE6 +:10190000080801308114423A280C6191403BFA0BDF +:10191000003000288114443A220C6190403BF90BBE +:101920000130F107829042910965EA0B91640D083C +:1019300044908390039124918464E20F4A640308E5 +:101940000065DE0F48640508403BE30F0130DB070C +:10195000866403081064F90F00308114619141908E +:10196000095B8114C3144474403A1F0C436D036D2A +:1019700003361869403C1A0C20A5002A403A150C81 +:101980000025176D03361869403C100C20A5002A6D +:10199000403A0B0C0025176D03361869403C060CC5 +:1019A00020A5002A00250204831468414C6C704174 +:1019B0004C6C2F3A090820B521B522B523B50F2A62 +:1019C0000F252F3AF90F233A0608032A20B50325DD +:1019D000233AFC0F403AE90F002A20A5403AE50FD0 +:1019E000002A21A5403AE10F22A58314C314836D78 +:1019F000076D186D03330C69403C0B0C403A080C22 +:101A000060810021002A60A60026403AFA0B831468 +:101A10002F3A0E08A09161918291A0B6A39161B670 +:101A200082B6A3B60F2A0F210F262F3AF40F233ABE +:101A300008086091032A032160B60326233AFA0FAF +:101A4000403AE60F60810021002A60A60026F907CF +:101A5000D014091029104264050C49108260FFE37C +:101A6000C7FF481008100A64050C82600031FFE3CC +:101A70007BFF901400000020DC5F0000A800002025 +:081A8000D4070020A80000209B +:101A880048380A087A10FF32209360914C42C9689E +:101A9800AE3BB23B60B1771060934193806C41B329 +:101AA80043938068403AFD0F423807080231449357 +:101AB8008468403AFD0F3C78023809084138FC0B2D +:101AC800013144938468403AFD0FF6074838070807 +:101AD800083144938468403AFD0FEE075038EC0B08 +:101AE800103144938468403AFD0FE6074C0000200B +:041AF8005C0000206E +:101AFC006C104D10609345B34C1046B34C1047B36B +:101B0C004C1050B30A3253B32B107F23003245B321 +:101B1C0046B32DB329102EB35DB35EB35FB33C78DF +:101B2C005C000020FFFF0000FFFFFF0000002DD233 +:0C1B3C00FF3BFF700C070000FE030000E0 +:101B4800D0144038050C076CFFE39CFF9014681014 +:101B580060934293846C42B343938468403AFD0B8C +:101B68007F230193406C21B3F20700005C00002042 +:101B7800C214483B28089D1001358094A1B404354F +:101B8800A5B4835B013C2B0C8B5B043C030C4B3BE7 +:101B9800070876100134609381B3003485B394103C +:101BA800106C7410406C6093803027B3014024930C +:101BB80040684039FD0F3010486C28B328934A64B8 +:101BC800FE0B8214403B030C493B07088710013584 +:101BD8008094A1B40235A5B44A3BD40B83100135D7 +:101BE8008094A1B4A5B4D1076000002000002DD2D4 +:081BF8005C00002000003CC36A +:101C0000D114036D10310030FFE3A0FF6610609324 +:101C1000199384388538106C19B31030FFE336FF00 +:081C2000911400005C0000209B +:101C28006C10403860937F230A0C4B1080314FB3FF +:101C380025414D938468403AFD0F3C784710803128 +:101C48004FB325414D938468403AFD0BF7070000D8 +:0C1C58005C00002000008778AA55877807 +:101C64006410B43260937F2357424EB33C78000033 +:041C74005C000020F0 +:101C780044106510486C6093046C7F230DB33C7866 +:081C8800000078875C000020D9 +:101C9000C3148398C510186DD06C8C6C486CA4105C +:101CA000046CA09513B5831400004BB45C000020B5 +:101CB00066108031609380324C60444241B15D9344 +:0C1CC000AB3A5DB33C7800005C000020F3 +:101CCC0066108031609380324C60414241B15D932B +:0C1CDC00A83A5DB33C7800005C000020DA +:101CE800403A040C413A0E0C3C786D104038609331 +:101CF8007F234593040C486C25B3F707856845B3E3 +:101D0800F4076710403860937F234693040C486CAF +:101D180026B3EB07856846B3E80700005C0000209F +:101D28006B104C1060937F2340384BB30C0C4793D7 +:101D3800846C47B349938468403AFD0F4B93486CD1 +:101D48002BB33C784893486C28B3FC075C00002010 +:041D5800FF3F000049 +:041D5C002BB03C78F4 +:101D600080336F43421060B23C78000000E100E035 +:0C1D70000232621040B33C7800E100E059 +:0C1D7C000232621040B33C7880E100E0CD +:101D880066104710271040B341B342B343B344B37E +:101D980045B326B347B33C7800E400E0C0C0C0C0F8 +:041DA800C000C0C0F7 +:101DAC00C114624842436A1003346093C8608032A5 +:101DBC0043421068C8600340FF34409300712641D1 +:101DCC0091684070486C20B38114000064000020BE +:101DDC0075103610161040936092784B784360B2B1 +:101DEC002091003361B260B161B162B262B163B291 +:101DFC0063B164B264B165B265B166B266B107B283 +:101E0C003F3007B168B268B169B269B16AB26AB100 +:101E1C006BB26BB14710409260B261B262B20F33D9 +:101E2C0063B23C784C00002048000020FFFF00000B +:041E3C00440000203E +:101E4000D1140739036D3008035906382708FFE31A +:101E500057F7041013161A1D210000330431F02B1C +:101E6000403A4094C8681E0C01328470C86C60B45B +:101E7000911408316611F5070C316611F207103123 +:101E80006511002BEE0714316411FC07F133183192 +:101E90007843F8071C316211E407003300310F2B3F +:101EA000E0070232E3070F39E40B08290639076C13 +:101EB0002708FFE325F7041013161A1D210000332D +:101EC0000431F02B403A4194C8681E0C01328470F2 +:101ED000C86C61B4CE0708316D10F5070C316D1078 +:101EE000F20710316C10002BEE0714316B10FC0759 +:101EF000F13318317843F8071C316910E4070033D7 +:101F000000310F2BE0070232E3070000FFF0FFFF74 +:101F1000FF0FFFFF0000F1FF000010FFFFFFFF0FAA +:101F20002141033268908470C96801328470C86CA2 +:041F300068B03C78E1 +:0E1F3400214101334990C470C86C69B03C78FB +:101F4400C11422140F3A4F08CB6C833B403B130857 +:101F54000F2B61B80033073A6EDC03007611380C9E +:101F64004093619281982ED80300D06804700C6C61 +:101F740001B23704413B06080033F02B61B8043347 +:101F8400EB07423B05086D1161B80833E507433B95 +:101F940005086B1161B80C33DF07443B060869116F +:101FA400002B61B81033D807453B06086611002B97 +:101FB40061B81433D107463B0708F1337843002B4B +:101FC40061B81833C907611161B81C33C507409360 +:101FD400609281982ED80300D06804700C6C00B213 +:101FE40002148114133AFD0B4038140800330F2BEC +:101FF400C860013BF60B503A6F100608409362929A +:102004004C6C22B2EE07609342932441486C22B395 +:10201400E8074238E60B0033112BC860013BE10BA3 +:102024006510523A6093429303082841F0072C410B +:10203400EE07000044000020FFF0FFFFFF0FFFFF4A +:0C2044000000F1FF000010FFFFFFFF0F85 +:10205000D01405380D087910FFE352F6030A101862 +:102060001F26409360920F31C568A03B60B2901468 +:1020700040936092F031C568A43BF9072093F03299 +:1020800060914442C968A83B60B1F2072093F032E6 +:1020900060914842C968AC3BF8072093F0326091E8 +:1020A0004C42C968B03BF1072093F0326091504236 +:0C20B000C968B43BEA07000048000020AB +:0820BC000133C47063B03C78ED +:0820C4000133C47064B03C78E4 +:1020CC004590013385708C68403AC470030C64B041 +:0620DC003C7863B0FE0732 +:1020E20001334690C4708C68CA64036400743C78FF +:1020F400641040936192AC3BAE3B61B23C7800000B +:0421040014000020A3 +:10210800631060934093086C00B33C781000002083 +:10211800003360B061B062B063B064B065B066B0FF +:0C21280069B06AB06BB06CB06DB03C7870 +:082134006090A03B60B03C7814 +:0A213C006090AC3BAE3B60B03C7815 +:10214600C314A498976D8398186DD06CA1904C6CAD +:08215600546C21B042B0831467 +:10215E00C41421148598D36D869880B88798936D92 +:10216E00A898586DC098586D5C6DD46C8C6C81902D +:0C217E00486C046D9F6D81B00114841446 +:06218A0023B044B03C78D4 +:1021900040396B90040C8C6C4BB03C78C9686BB0C8 +:0221A000FD0739 +:1021A40080337643421060B23C78000000E100E0E6 +:1021B40065100032609340B341B342B343B344B3B8 +:0821C4003C78000040000020FF +:1021CC0065100032609340B341B342B343B344B3A0 +:0821DC003C7800003C000020EB +:1021E40065100032609340B341B342B343B344B388 +:0821F4003C78000038000020D7 +:1021FC0065100F32609343B380336743431060B272 +:0C220C003C7800003C00002000E100E0F5 +:1022180065100F32609343B380336843431060B254 +:0C2228003C7800003800002000E100E0DD +:102234004038210840390A087711FF3140936092F1 +:10224400C568A23BA63B60B215044139130872115C +:10225400F031409360923041C568E0312F41C46C45 +:1022640060B2F03161922C41C568E0312B41C46CFD +:1022740061B23C7841382D084039140867110F3198 +:1022840040936092C5680731C46C60B2F032621149 +:10229400504220936191C968E0324F42C86C61B1E9 +:1022A400E90741390C087C10FF3220934C426091BD +:1022B400C968EE324B42C86C60B1DC074239DA0BB4 +:1022C4007510EE32209361916843684B5742E707DB +:1022D4004238D00B403909086F10FF3140936092A7 +:1022E400C5687731C46CB007413909086A10EE3209 +:1022F400209360916843684B5742DE074239BA0B1A +:102304006610FF32209350426091C968CC324F422C +:0C231400D30700004C000020480000200F +:1023200063108C6C42B024B03C7800000F000800B1 +:10233000C214C76C0135855B9064020C82148083E3 +:0E23400080B081901469403CFD0B0023F5072E +:102350006810803260938C6027103AB24193FE314E +:10236000846841B3013141938468403AFD0B3C7865 +:08237000200000203AC75AA525 +:10237800C414221465118611609388B3073483B39B +:10238800013406B384B38493403CFE0B02212249F6 +:102398002241486020B8295821B820984A64260864 +:1023A80006315B1048B323B3013106B324B3249339 +:1023B8004039FE0B48B3013243B306B344B34A93E2 +:1023C800443AFE0B0231521048B323B3013106B32D +:1023D80024B32A934139FE0B48B323B306B324B37D +:1023E8004A93423AFE0B02148414E08281828844A4 +:1023F80022821C61A3823041C1985060B84588612F +:10240800546020B60322CA07600000205A5A5A5A5C +:10241800C314003303354E64CC5A02088314403B7E +:10242800060C0F6D1469403C020803200F6D1469F7 +:0A2438000061808480A60023EF07F6 +:10244400D01400E0A5006B1046832B10003000E090 +:102454003D09FFE307FC00E0130700E0690700E023 +:10246400B31000E00F0C00E0CF0A00E0C708F20749 +:0824740048040020B85E0000DE +:10247C00D014231432320033087C62B801B860B82F +:10248C0040986198C864030C03149014629800235C +:0C249C0062B8FFE3E3FB60980023F20746 +:1024A8002314003362B801B860B840986198C864D2 +:1024B800030C03143C786298002362B860980023E8 +:0224C800F40717 +:1024CC00D2142414951000350094FFE321FE0094DF +:1024DC00A1B8A0B8083300320131FFE330FE8033DD +:1024EC00634361B800940033A3B8A2B8A0B800321B +:1024FC008031FFE330FE013229100094FFE341FEEE +:10250C000094FFE313FE009402320131FFE33CFE22 +:10251C00FFE344FE0414921408000020AC120000E7 +:10252C00D0142114FFE3E6FA01310130FFE308FB7C +:10253C000030FFE361FB803108330032214102306F +:10254C00FFE316FB803018310240FFE391FB0130B2 +:10255C00FFE366FBFFE382FBFFE3B4FB403360B8B1 +:10256C00C03180336443003223410030FFE38CFBE5 +:10257C00FFE39AFBFFE3F8FB003000E0B51A01140F +:02258C009014A9 +:10259000D0147F105F1000316093803020B20C6047 +:1025A000049000B25C1020B2803121414C60209137 +:1025B00020B25A104AB301314DB34C938468403A6B +:1025C000FD0FFFE3B5FF00E07305FFE3DFFB013123 +:1025D0000F30FFE3EDFB01310E30FFE3E9FB01318A +:1025E0001630FFE3E5FBFFE3FBFBFFE371FF2C107D +:1025F000023000E063052B10013000E05F0500E0D1 +:10260000FD0800E09D0F00E0230990145C0000200D +:10261000AC000020A8000020FFFFFF0F484400008E +:04262000443E000034 +:1026240060146214036C7A1180326093C86023933F +:10263400013040684039040C01B3631461142393DE +:10264400023040684039F90B239308304068403920 +:10265400F40B2393103040684039EF0B2393486800 +:102664004039030C41B3EA0780322393414248685E +:102674004039F90B80322393424248684039F30BC6 +:1026840080322393434248684039ED0B80322393D0 +:10269400444248684039030C036CE50780322393B5 +:1026A400454248684039DF0B8032239346424868EC +:1026B4004039D90B80322393474248684039D30BC1 +:1026C400803223934B4248684039CD0B80322393A8 +:1026D4004C4248684039C70B803223934D424868C6 +:1026E4004039C10B803223934E4248684039BB0BBA +:1026F400803223934F4248684039B50B803223938C +:10270400564248684039AF0B990700005C0000202E +:10271400601462147810013160934B938468403ADA +:10272400040C2CB3631461144B9302318468403A53 +:10273400F90B4B9304318468403AF40B80322B93A9 +:10274400454248684039030C4CB3ED0780322B9363 +:10275400464248684039F90B80322B934742486817 +:102764004039F30B80322B93484248684039ED0BD3 +:08277400DA07000060000020FC +:10277C006014621478100131609348938468403A75 +:10278C00040C27B363146114489302318468403AF3 +:10279C00F90B489304318468403AF40B4893103198 +:1027AC008468403AEF0B489320318468403AEA0B36 +:1027BC00489340318468403AE50B489380318468F3 +:1027CC00403AE00B80322893494248684039DB0F8D +:0827DC0047B3D90750000020AB +:1027E40060146214D114871380326094C8603593E6 +:1027F400013040684039030C17B324043593023088 +:1028040040684039FA0B3593043040684039F50B81 +:102814003593083040684039F00B359310304068E8 +:1028240040391F0C17B3003201310030FFE35CFA6A +:10283400013201310130FFE357FA60944B93721275 +:1028440040B360948032C8602B93013040684039B3 +:10285400610C0DB3EED90120809802146314611445 +:102864003593203040684039100C17B300320131E1 +:102874000130FFE339FA013201310030FFE334FA69 +:1028840060944C936112DD073593403040684039C1 +:10289400B40B359348684039030C57B3D3078032DF +:1028A4003593414248684039F90B803235934242AE +:1028B40048684039F30B80323593434248684039C5 +:1028C400ED0B80323593444248684039E70B80323F +:1028D4003593454248684039E10B8032359346428E +:1028E40048684039DB0B80323593474248684039A9 +:1028F400D50B80323593484248684039CF0B80323B +:1029040035934942486840399D0F57B3FFE320FD92 +:1029140099072B930230406840399C0B2B93043069 +:1029240040684039970B2B93083040684039920B2C +:102934002B931030406840398D0B2B932030406826 +:102944004039880B2B93403040684039830B2B93DC +:1029540048684039030C4DB37E0780322B934142C3 +:1029640048684039F90B80322B9342424868403919 +:10297400F30B80322B93434248684039ED0B6B07CD +:0C29840020000020E0010020DC01002009 +:1029900060146214D214AB100134609585B3FF301B +:1029A000FFE3B4FB40956392D068403B020C85B2D4 +:1029B000EED90220A19880980314631461140000DA +:0429C00010000020E3 +:1029C400601462147E10013160937F2355938468F0 +:1029D400403A040C37B3631461145593023184688C +:1029E400403AF90B559310318468403AF40B5593EF +:1029F40020318468403AEF0B803235934142486875 +:102A04004039030C57B3E807803235934242486893 +:102A14004039F90B80323593434248684039F30B0F +:102A240080323593444248684039ED0B8032359307 +:102A3400494248684039E70BCF07000024000020D2 +:102A4400601462147910013160934A938468403AA7 +:102A5400140C57102BB34CB34293846C42B38032A2 +:102A64004D4240B3023142938468403AFD0B429395 +:102A7400803A42B3631461144A9302318468403A41 +:102A8400030C2BB3F8074A9304318468403AFA0BD9 +:102A94004A9308318468403AF50B4A9310318468AC +:102AA400403AF00BE80700001800002053CA000069 +:102AB40060146214D01476100231609343938468D6 +:102AC400403A0B0C23B30093007400E0A103EED949 +:102AD4000020011463146114439301318468403A63 +:102AE400030C23B3F507439308318468403AFA0B87 +:102AF400439304318468403AF50B803223934C426B +:102B040048684039E50F43B3E30700004000002064 +:102B140060146214D0147F1002316093439384686C +:102B2400403A0B0C23B30093007400E08D03EED9FC +:102B3400002001146314611423930132486840395E +:102B44000D0C43B3741040B374106093413BF00B0D +:102B540053106092002360B2EB07439308318468FA +:102B6400403A030C23B3E407439304318468403AA6 +:102B7400FA0B803103932C4104684038D90F23B3F6 +:102B8400651040B365106093413BD20B4510E207DA +:102B94003C00002034010020380100203C010020CA +:042BA40040010020CC +:102BA80060146214D0147F100231609343938468D8 +:102BB800403A0B0C23B30093007400E09503EED960 +:102BC80000200114631461142393013248684039CA +:102BD8000D0C43B3741040B374106093413BF00B79 +:102BE80053106092002360B2EB0743930831846866 +:102BF800403A030C23B3E407439304318468403A12 +:102C0800FA0B803103932C4104684038D90F23B361 +:102C1800651040B365106093413BD20B4510E20745 +:102C28003800002024010020280100202C01002069 +:042C38003001002047 +:102C3C006014621478110131609347938468403AB0 +:102C4C00030C28B30704479302308068403A040C05 +:102C5C0008B363146114479304308068403A550CF0 +:102C6C0008B30293AA3282643E080231439384680B +:102C7C00403AFD0F113242B3103143938468403A0D +:102C8C00FD0B023143938468403AFD0F123242B37C +:102C9C00103143938468403AFD0B023143938468AE +:102CAC00403AFD0F133242B3103143938468403ADB +:102CBC00FD0B023143938468403AFD0F143242B34A +:102CCC00103143938468403AFD0B0231439384687E +:102CDC00403AFD0F153242B3103143938468403AA9 +:102CEC00FD0BB80743938468403AB40B42B31031E0 +:102CFC0042B342B342B342B342B342B342B343933F +:102D0C008468403AFD0BA607479308318468403A23 +:082D1C00990BA0073400002010 +:102D24006014621473100431609349938468403AC8 +:102D3400020C2BB3499301318468403A020C2BB343 +:102D4400499302318468403A030C2BB3100449932D +:102D540008318468403AFA0B499310318468403A48 +:102D6400F50B499320318468403AF00B63146114E5 +:042D74002C0000200F +:102D7800601462146A10013160937F234C93846855 +:102D8800403A040C2BB36314611480322C934942EB +:102D980048684039F90F4BB3F70700005C00002082 +:102DA800601462146A10023160937F234C93846824 +:102DB800403A040C2BB36314611480322C934A42BA +:102DC80048684039F90F4BB3F70700005C00002052 +:102DD800601462147010043160937F234C938468EC +:102DE800403A040C2BB3631461144C930831846883 +:102DF800403AF90B80322C934B4248684039030C17 +:102E08004BB3F20780322C934C4248684039F90B97 +:082E1800EB0700005C00002044 +:102E200060146214D014791080326093C8602C93BF +:102E3000103040684039030C0BB309042C93203048 +:102E400040684039090C0BB300E01404EED90020AF +:102E50000114631461142C93403040684039ED0B29 +:102E60002C9348684039030C4BB3F10780322C9304 +:102E7000414248684039F90B80322C9342424868FD +:0C2E80004039F30BE40700005C00002068 +:102E8C00601462147610803260937F232C9343423B +:102E9C0048684039030C4BB31F0480322C934442D6 +:102EAC0048684039F90B80322C93454248684039C8 +:102EBC00F30B80322C93464248684039ED0B80323C +:102ECC002C93474248684039E70B80322C93484298 +:102EDC0048684039E10B6314611400005C00002069 +:102EEC00601462146B10013160934E938468403A05 +:102EFC00030C30B30B044E9302318468403AFA0B46 +:102F0C004E9304318468403AF50B6314611400004D +:042F1C00140000207D +:102F2000601462147110013160934C938468403ACC +:102F30000A0C2DB34193863A41B34093003240B31B +:102F4000631461144C9302318468403A030C2DB32E +:102F5000F8074C9304318468403AFA0B4C930831DB +:0C2F60008468403AF50BED070C000020DF +:102F6C0060146214D0147910013160934C9384680E +:102F7C00403A030C2DB318044C9302318468403A48 +:102F8C00180C2DB3721040830022887421930021F9 +:102F9C00093A40A321B3080C003240A3429300220B +:102FAC0042B300E04103EED9002001146314611414 +:102FBC004C9304318468403ADE0B4C93083184689E +:102FCC00403AD90BF107000008000020B0000020A7 +:022FDC003C783F +:082FDE00601462146314611415 +:082FE60060146214631461140D +:082FEE00601462146314611405 +:082FF6006014621463146114FD +:082FFE006014621463146114F5 +:083006006014621463146114EC +:08300E006014621463146114E4 +:083016006014621463146114DC +:08301E006014621463146114D4 +:083026006014621463146114CC +:08302E006014621463146114C4 +:083036006014621463146114BC +:10304000C11400C0236080C020704610003440923C +:1030500084B2BF3B00B221B203C02064029281144B +:04306000000000204C +:10306400C11400C0236080C0207046100134409217 +:1030740084B2BF3B00B221B203C020640292811427 +:043084000000002028 +:10308800C11400C0236080C02070461001344092F3 +:1030980084B2BF3B00B221B203C020640392811402 +:0430A8000000002004 +:0630AC0080C120743C7895 +:0630B20080C020703C7894 +:1030B800D2144138076D1D0C4038040C42383F0CBF +:1030C8009214FFE375F800310030FFE3B1F86212A3 +:1030D800D03100930032A1122141FFE31FF974326D +:1030E8000031176CFFE33CF403337AB59CB5E9076C +:1030F800FFE36AF802310130FFE39AF878110032F1 +:1031080000933811FFE30AF9FFE376F874320031CF +:103118001511FFE325F4751199B3033294110D319C +:1031280057B300940032FFE389F60D310094FFE3B2 +:10313800FFF600940D31FFE3C3F7C3077432003183 +:103148000C11FFE30DF4883200310B11FFE308F492 +:103158006A11013245A36A1196B303328911053108 +:1031680054B30094FFE3DAF6053205310230FFE389 +:10317800E7F60530FFE36AF7013220310130FFE35B +:10318800B1F5003220310130FFE3ACF520310130D8 +:10319800FFE3C8F520310094FFE3DEF5FFE3DEF539 +:1031A800FFE31EF802310230FFE342F876100032E6 +:1031B80000932C10FFE3B2F8FFE32CF80032033140 +:1031C8000094FFE33BF603310094FFE3B1F600946B +:1031D8000331B207400000200C0200203C00002010 +:1031E80088130000800200208C0200204C00002080 +:1031F800F402002068030020C80300200C0300200C +:083208004800002038000020FE +:10321000C1146B10338B62324964030C003253AB20 +:10322000338B825993AB47106710486060937BB231 +:103230005F22013300A164A2811400004C0200202F +:083240000C020020B800002080 +:10324800C1146B102D8B62324964030C00324DABF4 +:103258004D8B2810825A8460732200A27F21461069 +:10326800409258B101328DAB58A38114CC02002092 +:083278000C020020B800002048 +:10328000D414B5107885413B25089410D41060966D +:103290005894CA605794C8641D08FFE371F5ED8D1A +:1032A00060969F6C2F101010D01078B4FFE3A0F33D +:1032B00000336DAD78A5F2AEFFE35CF57994403B49 +:1032C000040C328E0810CD7B643200310610FFE30F +:1032D0004BF39414CC0200208C020020B800002094 +:0C32E00080020020BC000020FC00002048 +:1032EC00C1144E10208A62334D64030C003360AA63 +:1032FC00608A2B10825BC460E72300A380AA69104C +:10330C00409380336143C46055B3A63361434C6032 +:10331C00013360A1811400005A0300200C0200202C +:04332C00B8000020C5 +:10333000D4142114B7106085413B28089610D7108B +:1033400060965594CA605494C8642008FFE318F549 +:10335000609675B4618D8F6C31101210D21060B808 +:10336000FFE346F3609872AE003361AD60A5FFE302 +:1033700001F57694403BE65D040C328E0910CD7B5E +:10338000643200310710FFE3EFF2011494140000DF +:10339000580300200C030020B8000020F402002095 +:0833A000BC000020FC0000202D +:1033A800D414221400B8C76D0034A411C4117E953A +:1033B800413B360CFA300140FFE374F8FFE377FE37 +:1033C8000D310096FFE378F601337FB500327D10AA +:1033D80040B361B841B3FFE367FE5B1000922098E9 +:1033E8009F6CFFE3A3F76198643060B80024FFE3A3 +:1033F80059F863320865080C60984093C965F50B65 +:103408004193C965F20BFFE352FE00960D31FFE3CD +:1034180057F600337FB5FFE347FE02149414643077 +:10342800FFE340F800246433D264C50F0D310096E1 +:10343800FFE34AF6BD070000BC0000204C00002056 +:083448003C0100203C000020C3 +:10345000D414231402B820B800358911C9117A9404 +:10346000413B3E0C6811C483403E61B84508E511FC +:10347000FFE321FE03310097FFE322F6013261985A +:103480005BB444A3DCB446A3DDB4FFE311FE5F10DC +:10349000009222984098FFE34DF76430FFE306F86E +:1034A000002563334C65080C7C9440988D64F60BC2 +:1034B0007D948D64F30BFFE3FEFD00970331FFE382 +:1034C00003F600337BB47210409372105FB36198BF +:1034D000003246A3FFE3ECFD1B6C0314941464302C +:1034E000FFE3E4F700256433D664BD0F0331009693 +:1034F000FFE3EEF5B5070136F0070000BC00002041 +:1035000048000020C803002038000020B800002038 +:04351000680300202C +:10351400D41421146359CD746334D06400B8290CD5 +:10352400413A040C01300114941475106037CC61D5 +:10353400C8874A8798641F088034B2100C610194CC +:10354400409582601E9308641808403E070C40951D +:10355400C0949A607D93C864E60F0098FFE378FFF7 +:103564004038E10B609560B46887002368A7DC07E6 +:103574000430DA070330D8070230D6076803002086 +:04358400B80000206B +:10358800D41422148B6D479840B84359476D8974F9 +:1035980063318464C36D200C911064320031136C64 +:1035A80061B8FFE3DDF1976C136C5F6CFFE31CF20D +:1035B8004032906061987EB4B7AA60334098D0607A +:1035C8005DB4013249A347A30032CAA348A37F24AC +:1035D8006410609361B4021494140000680300201E +:0435E800B800002007 +:1035EC006310003249A347A33C780000C8030020B5 +:1035FC00D1148A106984413B0E086910378B013253 +:10360C000810FFE383FF07A40128007401380308A6 +:10361C00003369A491140000C8030020A803002003 +:04362C00680300200F +:10363000D214AE10603414616484403B150C66846F +:10364000413B120CFFE337FD6584413B0B086810DA +:1036500040937F958E607C950523C864030C0033EE +:1036600064A4FFE325FD921468030020B800002045 +:10367000D21494106035FFE31EFD5061013364A540 +:103680000A317110409300938033D06060935FB42F +:103690000E60FFE3FBFC1CB405318C100094FFE3CB +:1036A00022F541380608013365A5FFE301FD9214B8 +:1036B00000940531FFE317F54038F80B0033F507A8 +:0C36C00068030020B80000204800002033 +:0C36CC00231462B841B820B803143C7805 +:1036D800C36C406000304E6402083C784083086048 +:0636E80000740023F90745 +:1036F000D1143B14036D003364320031021860B8FA +:103700006EDC0210FFE330F1BB6C04311410FFE3F8 +:1037100085F64ED80000A633CA64040C01301B1491 +:1037200091142ED802006ED8010028414C6C6433ED +:103730004C64F50F021A0B10FFE370F60831021803 +:10374000FFE3CCFF6ED803000E64E90B08320219C8 +:10375000136CFFE34DF10030E3070000000100109F +:043760000401001050 +:10376400D0143B140033592B6EDC000008336EDC9C +:10377400010000336EDC0200011B436C08320F6C45 +:10378400FFE334F10831FFE3A7FF0EDC0300BB6C59 +:103794000C310410FFE3F0F500301B14901400000A +:0437A4000001001010 +:1037A800D01423146780023B030C013367A02780E1 +:1037B8006480438022B8208021B8258020B800305A +:1037C8002310FFE381FF003003149014C65E00004D +:1037D800013360A0003361A0093362A0003363A005 +:1037E80064A0013365A0003366A0013367A03C786C +:1037F800D11472100132609341B34593A13AB03AA3 +:1038080045B30A308E10FFE337F608320031136CE7 +:10381800FFE3A6F0136CFFE369FF4038136C04085C +:10382800FFE3C0FF9114FFE3D5FF4184251000306A +:10383800FFE34AFFF807000060000020F0030020C3 +:04384800205F0000FD +:10384C00D114921228320031136CFFE387F07012FE +:10385C006093803B403B920C2E120030FFE332FF12 +:10386C006D12FF30209340684039050C40938068FE +:10387C00413A7708409327427F3042848068846CB9 +:10388C0042A44093484AFF308068403A100C409361 +:10389C00484A8068423A0B0C2093284940684439C6 +:1038AC00060C4093484A8068463A5F0840930731BB +:1038BC00484A84687030228444424168846C42A433 +:1038CC004093504AFF308068403A100C4093504A65 +:1038DC008068413A0B0C2093304940684239060C01 +:1038EC004093504A8068433A440840930731504A09 +:1038FC0084680E30228441424168846C42A4409317 +:10390C00584A0F3A400C843256422093002A48649D +:10391C003A0C6093784B61A4183360A464A468A437 +:10392C0001336DA400336FA400327C106093FF232D +:10393C0040B3428439423D4900932841406C20B346 +:10394C003C423D4900933041406C20B321840093AC +:10395C003841406C20B32093474A846C40B3911497 +:10396C0042847F3184688D07428470318568A80752 +:10397C0042840E318568A13AC20762840E32C9684E +:10398C00A13B62A41833C80720040020AC0000201F +:0C399C00425F0000A80000205C0000203A +:1039A800C114771000834038020820304183403A20 +:1039B8000208203222838749403C1E0C413C0F08F4 +:1039C80099419D4C423C120C443C160C403C070863 +:1039D800235A4164050C4283803A42A38114002291 +:1039E8000964FD0F4283A03AF907225A0564F40BD3 +:1039F800002A8164F707803922A3F10720040020F8 +:103A0800D2149C1262848E74DF3ABB12700C468406 +:103A1800794339427D4B3D49C664160C70302443C6 +:103A28008168846C46A4FF30541208404092FF22FB +:103A38002092416820B220926843C46C60B201337E +:103A480072A4609568B4628446847C435C425D4A93 +:103A58007D4BCA644A120408208241391908003192 +:103A680020A246840E3021438168846C46A4FF302E +:103A7800421210404092FF222092416820B22092C8 +:103A88007043C46C60B2013372A4609568B46184F9 +:103A98004584CA64110C59112092FF214091484273 +:103AA800484A40B100915843806C40B1013252A459 +:103AB800409565A448B4008444840A640D0C4F11F1 +:103AC80078434092FF2220922841284920B2209230 +:103AD800C46C04A460B247946095CA604911C86474 +:103AE8000608609567B4013304A472A4428466840E +:103AF800474A274B8664140C7F302742C068C46C41 +:103B080066A4FF307D106093FF232093416820B3A3 +:103B18002093846C40B3013372A4609568B47284B6 +:103B2800413B150848946095CA605710C8640F084F +:103B3800609568B4003372A4609567B473106783A6 +:103B4800423B0508FA30024000E02602489460959E +:103B5800CA604F10C8640C08609568B4609567B473 +:103B68006A106783423B04080A1000E015029214A9 +:103B780020040020B80000205C0000204401002040 +:103B88002F750000E7030000F0030020DF93040016 +:043B980060EA0000DF +:103B9C00D01422140033222B6EDC000006336EDCB2 +:103BAC0001000033002B6EDC0200053169106683C6 +:103BBC006EDC03003B6C02336EDC0400FFE388FD1B +:103BCC000EDC050006313B6CFFE3EAFB021490149B +:043BDC004804002079 +:103BE000D01423140033222B6EDC00000B336EDC68 +:103BF00001000033002B6EDC02004111611166836D +:103C00006EDC030003336EDC04006282274B2EDC83 +:103C1000050021822EDC0600CC7470314C684039DE +:103C20001A0802312EDC07000E31C468463B1D081D +:103C300000336EDC08000A316C823B6C6EDC0900DC +:103C4000FFE34CFD0EDC0A000B313B6CFFE3AEFBE7 +:103C5000031490142030066403080131E407403057 +:103C60000664E00B0431DF07403B03080133E20741 +:103C7000423BE00F443BDD0B0333DC072004002014 +:043C800048040020D4 +:103C8400D2148E11FFE390FE42846A84474A274B84 +:103C94008664080C7F314742C468C86C6AA4013347 +:103CA40074A461844984CA64040C69A4013374A4AF +:103CB40062844A84794339427D4B3D49C664080C89 +:103CC400703164438568C86C6AA4013374A4628447 +:103CD4004A847C433C427D4B3D49C664080C0E310A +:103CE40061438568C86C6AA4013374A47484413B3D +:103CF400B3101308531021926095C6603210C46447 +:103D04000C08609569B4609561B27384033B100834 +:103D1400002373A4FFE364FF49946095CA604B10C9 +:103D2400C8640508609569B4FFE338FF9214003352 +:103D340074A473A4F207000020040020B80000203B +:0C3D4400440100202B010000E7030000F8 +:103D5000C1140C39630C4580013A721107082742DF +:103D60007F3442839068846C42A3003226800F2AFD +:103D700084608874103A020821A34780413A3308CE +:103D8000428370318568A53A42A34880403A3208A0 +:103D900042830E318568A13AA23A42A349804CA3DE +:103DA0004A8028318464020C40A34283474A274258 +:103DB0007F304A838068846C02832183073429A37F +:103DC00004488F3184681068228304402149806C44 +:103DD00050680E3081682141846C4AA3408348A317 +:103DE00000308114443A703142838568CE0BA63A84 +:103DF000CC07413A050842830E318568CF07423A25 +:103E0000060842830E318568A13AC807433AF40B8D +:103E100042830E318568A23AC1070130E3070000F2 +:043E2000200400205A +:103E240006390A0C6580413B05086510003254A32D +:103E340053A30030020401303C7800002004002029 +:103E4400D4140539036D876C040CA1805664070CE7 +:103E540000302511FFE33AFC013094144080CC3348 +:103E6400CA64070C00302111FFE330FC0230F6076E +:103E74004280FF33CA645E106380040826824E6465 +:103E8400090C0030CC7446823A10FFE31FFC033067 +:103E9400E507C35D74589975002B5B6CE083FFE301 +:103EA4001BFC1E640E0C5B6C136CA584FFE314FCFA +:103EB400C36C976C00303010FFE308FC0430CE076D +:103EC4006484423B050C433B080C0030C707576C25 +:103ED400136CFFE33DFFFA07576C136CFFE3A2FF7B +:103EE400F50700005B5F0000665F000048040020E7 +:083EF4006F5F00007F5F00001A +:103EFC00C41402391F0C01294574436D00326E1035 +:103F0C008085D16C013708348F6D9C69403E614BC4 +:103F1C00040CCA10D96CCD74002C1175403CF50BF7 +:103F2C000022897448640025EC0F406060A1684B46 +:0C3F3C0061A18414FFFF000001A0FFFF42 +:103F4800C314C36C4060AC100C104E640208831498 +:103F58004083096C01360832036D1869403C0148FA +:103F6800030C156C0174002A8974403AF60B00237F +:0C3F7800ED07000001A0FFFFFFFF0000AC +:103F8400C36C406000304E6402083C784083086093 +:063F940000740023F90790 +:103F9C00D114271460126783423B036D71085533AB +:103FAC006EDC04006EDC05000033112B6EDC0600A9 +:103FBC0015336EDC070003336EDC080057117811E3 +:103FCC0066836EDC090000336EDC0A006282274BCC +:103FDC002EDC0B0000312EDC0C007031C468403B31 +:103FEC001A0801336EDC0D006182403B020820335D +:103FFC0002826EDC0E001C4000331D486EDC0F008C +:10400C000433C26003386EDC10004208FFE372E632 +:10401C000C393B3D20314E6403080233E407403138 +:10402C004E64E30B0333DF07033322826EDC110093 +:10403C003F4100336EDC12006EDC13003F496EDC36 +:10404C0015006EDC16006EDC170060822341403BCD +:10405C002EDC1400020820336EDC180000336EDCFA +:10406C001900011B0A5B1531FFE344FF96336143D2 +:10407C0060B80132D36C18310118FFE381FA0714D0 +:10408C0091140233D3070133D1070033CF07043324 +:10409C00CD070000F003002020040020480400207D +:1040AC00D014271455336EDC04006EDC050000338D +:1040BC00112B6EDC060015336EDC070003336EDC4F +:1040CC000800771166836EDC090000336EDC0A0091 +:1040DC0074114283274A2EDC0B0000312EDC0C00BD +:1040EC0070318468403A1A0801324EDC0D0041836D +:1040FC00403A0208203202834EDC0E001C40003293 +:10410C001D484EDC0F000432826003384EDC100078 +:10411C004308FFE3EFE50C3A3C3E20314A640308C8 +:10412C000232E40740314A64E30B0332DF07033207 +:10413C004EDC110000324EDC12004EDC13004283C8 +:10414C005F425F4A434260834EDC1400403B0032C6 +:10415C004EDC15004EDC16004EDC17000208203336 +:10416C006EDC180000336EDC1900011B0A5B153184 +:10417C00FFE3C0FE143360B896336143013218314B +:10418C000118FFE3FDF9071490140232D207013233 +:10419C00D0070032CE070432CC07000048040020C0 +:0441AC0020040020CB +:1041B000D014241455336EDC04006EDC050000338B +:1041C000112B6EDC060007336EDC070003336EDC58 +:1041D000080007316D1066836EDC090066806EDCB6 +:1041E0000A0067806EDC0B00011B0A5BFFE388FEA0 +:1041F000143360B89633614301320A310118FFE38A +:0C420000C5F904149014000048040020CC +:10420C00D014241455336EDC04006EDC050000332E +:10421C00112B6EDC060009336EDC070003336EDCF9 +:10422C0008000931701066836EDC090066806EDC54 +:10423C000A0001336EDC0B0002336EDC0C006B10D9 +:10424C0067836EDC0D00011B0A5BFFE353FE143326 +:10425C0060B89633614301320C310118FFE390F9D9 +:0C426C000414901448040020F00300200B +:10427800D0142114143360B8963345746143013265 +:08428800FFE380F9011490141A +:10429000D3140033082BC460CD74013B036D476D0C +:1042A000CA08608055328E64C2084180CA64BF0863 +:1042B0004280EE33CA64BB0823806A594E65B90850 +:1042C00004804338B6087D1246836584CA64B0080A +:1042D000012945740A5CFFE339FE545C635A60832C +:1042E000012A68434082C860C264A5080684002889 +:1042F00011381208FFE304E51F1F1F1F0F0F0F0FD8 +:104300000F090F0F0F0F0F23273A6D126783423BE0 +:104310000C08FFE36DF90684002803380808678459 +:10432000FFE3EEE437496171413B030C0030800448 +:10433000FFE3BEFEF107136CFFE33CFFED07136CD8 +:10434000FFE366FFE907136CBE11FFE333FF4F8500 +:104350003D110030FFE3BCF967844F85CA64DC0F70 +:10436000403B6FA5D90B01336DA5D607D4116784E7 +:104370004786CA64DC0F1B6C67A6FFE3F5F91B6C6C +:10438000FFE3B8F94038C80B5474136CFFE376FFB1 +:10439000C307CC74403B0A0C413BC90B29110032C6 +:1043A00062817F2AC86C62A1C207461162827F3196 +:1043B000C46862A2BC07CC74423B0A0C433B0E0C9F +:1043C000413BB50B5F1062827031C568F3075D1029 +:1043D00062827031C568A53BED075A106282703168 +:1043E000C568A63BE7070032CC740F2A8C6088743E +:1043F0000F3A0408531061A29A0720328E64970B7B +:10440000701041A394070C746E1042830E31033870 +:1044100085680708FFE374E402060804A13AA23A9B +:1044200042A38507A23AFD07A13AFB070230931485 +:104430000330FE070130FC0748040020F003002091 +:0844400020040020915F000040 +:10444800D214436D076DFFE321FF403803080030A5 +:104458000404043C0308013092144085FF33CA6405 +:10446800040C6185483BF80B22110030FFE32CF95E +:10447800453C14080431176CFFE382FD64850E6423 +:10448800EB0B7D1042852D838664E20F2F83413923 +:10449800DF0B4DA301324EA3DB07093CDD0F275C80 +:1044A80045741461176CFFE34DFD635C6083012C58 +:1044B80068434084C860C264CF0B6F1043852D8366 +:1044C8008664070C2F83413904084DA301324EA39B +:1044D800478530838664070C50A34810409246B342 +:1044E800013251A3508326100030FFE3EDF8B007E6 +:1044F800A05F000020040020B8000020B25F000088 +:10450800D01441380D0C4038050C42380D0C0030E1 +:104518000604681002310093FFE3E1ED9014651082 +:1045280001310093FA07631000310093F607000089 +:044538004800002017 +:10453C00D2148011013200940031FFE37DEC009421 +:10454C0001320131FFE378EC013200940231FFE3D8 +:10455C0073EC00940031FFE3DFEC00940131FFE3D6 +:10456C00DBEC00940231FFE3D7EC10320031121077 +:10457C00FFE3F4E91430FFE37DEF0034AE10107468 +:10458C00FFE3BEFF403807080133D0708F6C629593 +:10459C00C86C62B50024433CF30B6710073142939F +:1045AC00486826A30030251043B3FFE38BF8921420 +:0C45BC004800002048040020BD5F000003 +:1045C800D31422114211A31100926091C260143BCE +:1045D800060842956395CA642E089314609160B2E8 +:1045E800176D00361874FFE38DFF40380033140848 +:1045F80063A46084043B0808002360A40026433EAB +:104608000024F10BE7070133D8708F6C6295C86CF2 +:1046180062B50033F30760A46384043B04080023F5 +:1046280063A4ED070033012B4295DB70C86862B5BF +:104638000033F707073343B500308C68261046A5CA +:10464800FFE342F8CB070000B80000204C0100202F +:0846580048040020C95F0000C6 +:10466000C2147D115D116093403B40083C1162898A +:10467000CD74403B3B0C7B116093403B7A110E0C98 +:1046800000830020007400A38083028901746435D4 +:10469000147C0165050C013000A2003000A3131149 +:1046A000009040380E0C01830020007401A3818328 +:1046B000028901746435147C0165050C013001A286 +:1046C000003001A30A11009040380E0C0283002034 +:1046D000007402A30283228945746434507C05640B +:1046E000050C013122A2003122A36082413B0F0858 +:1046F0000033A01180112143045D00880023017460 +:104700005060513B00A9F80B003360A26182413B2D +:104710000F080033B9109A102143045D008800236C +:1047200001745060513B00A9F80B003361A2628212 +:10473000413B0F080033B31093102143045D008800 +:10474000002301745060513B00A9F80B003362A2B2 +:1047500082140000FC05002068050020680000208D +:10476000FC040020B2060020900400207405002004 +:10477000AE0700205C04002044050020060600204F +:084780003A0600201C0700208E +:10478800C414231469114A110B6D209340B80033E7 +:10479800A81140984082413A080842438460009238 +:1047A80041430174946000AA4084423A0908424394 +:1047B800846000924143C0110174986000AA40844B +:1047C800403A09084243846000924143DB10017477 +:1047D800986000AADA104086413A21087910003220 +:1047E80061B8751062B861420C5D0088E198CC61CF +:1047F800017400AF02980C600088F310CC6101745A +:1048080000AF00220D100C600088F0100174DC600D +:10481800513A00ABE90B003360A611330023CC7486 +:10482800103BB80F0314841454000020190700200B +:10483800AE070020440500203A060020A10500200C +:0C4848005C040020060600201C07002075 +:10485400C214003200308810013520316094C970D0 +:10486400D468403B020C002000224A64F80B007418 +:0848740082140000FC05002085 +:10487C00C214003200308810013520316094C970A8 +:10488C00D468403B020C002000224A64F80B0074F0 +:08489C0082140000FC0400205E +:1048A400C214003200308810013520316094C97080 +:1048B400D468403B020C002000224A64F80B0074C8 +:0848C4008214000090040020A2 +:1048CC00C214003200308810013520316094C97058 +:1048DC00D468403B020C002000224A64F80B0074A0 +:0848EC00821400007405002095 +:1048F40073105410028320824264160C2082447484 +:104904004139180C4039110C4239160C4082887414 +:1049140042A341838874413A07082B10209142B185 +:10492400003240A341A33C7828100091281010B114 +:10493400EE072810FB072810F90700006800002084 +:104944001907002058000020D00700200012014061 +:08495400400500207005002061 +:10495C00D4142A147101608360B80034720160832E +:10496C0063B87201A0837201608366B8730168B882 +:10497C00730164B869B8614448988C6035014C6027 +:10498C00408A2089866029984C608B7440A9180154 +:10499C0058018C600C60408A00888260DA010C5EE1 +:1049AC008B7440A8C1B85B011B018C600C60408A01 +:1049BC00008882601D018B74EC5840AF40898B7469 +:1049CC00DF3A5F01C86002B8490C003240AB219855 +:1049DC0061444C6040898B74DF3A4402C860410CDE +:1049EC00003240AB229861444C6040898B74DF3AB2 +:1049FC004902C860390C003240AB6098033B21443B +:104A0C00B50C6498C4604D024860008B40890374F7 +:104A1C0009642098847C9B0C208B47748564970CCC +:104A2C003302506040810022887440A1003055024E +:104A3C00906000A25602906000A25602906000A204 +:104A4C004081039880641D08403D11085A02609211 +:104A5C00403B1508009201330F0440898974B70755 +:104A6C0040898974BF0740898974C707413D5C0838 +:104A7C004303D76C0092D070C06C60B2003360A15D +:104A8C00614444988C60C08A4E03C860E08B024736 +:104A9C000531FFE3D1F29B75196405B8180C51036D +:104AAC00906060820023CC7460A200317603D060E9 +:104ABC0020A360822698C4640A0800333603012BB5 +:104ACC000091D370C06860B1003360A260984198C7 +:104ADC00033B6144C860408B8B744D0D9D643A0D53 +:104AEC00408B20988B745C7C4964340D3E13506071 +:104AFC0040810022887440A100305C13906000A2B9 +:104B0C005B13906000A25B13906000A2408103983D +:104B1C0080647D08403D710857136092403B7508D6 +:104B2C00009201336F04423D030C00E80102D313E1 +:104B3C00008B408E8974037409220964A00F608B6A +:104B4C00CD7460AE0033471360B28507614424987E +:104B5C00C460608BCF74C964940F00334113012B74 +:104B6C002092D370C46860B28C0744988460181289 +:104B7C00608A4060CF742089C564830F60136083A2 +:104B8C00CC74403B7E0B13121060208000214474C7 +:104B9C0020A0003630125060C0A130125060C0A16D +:104BAC002F125060C0A12080C39858646A0B403DFE +:104BBC0008084C126092403B0C082092013306040A +:104BCC00413D0A084712D76C2092D070C46C60B279 +:104BDC00003360A05607423D020CDC05E712C08A88 +:104BEC00208F45749B7509218565F30F408A897464 +:104BFC0040AF5C1160B2E207413D9B085E11D76C7F +:104C0C000092D070C06C60B2003360A161444198D6 +:104C1C008C60608ACF7445988D64180C5311906029 +:104C2C0060820023CC7460A200316F11D06020A38D +:104C3C0060822698C4640A0800332F11012B00915E +:104C4C00D370C06860B1003360A260984298033B97 +:104C5C006144C860408B8B74260D20989D645C7CED +:104C6C00130D408B8B7449640F0D261150604081DD +:104C7C000022887440A100304311906000A24311BF +:104C8C00906000A24211906000A2430480010020B9 +:104C9C00540100205D0100205C010020AE070020C3 +:104CAC001C0500205C0400200606002044050020A2 +:104CBC005C0600203A0600201C0700208807002014 +:104CCC0066070020C404002098040020AE010020D8 +:104CDC0009050020E804002028060020C00600205A +:104CEC00FC040020DC06002078050020A205002032 +:104CFC00A006002090040020B60600201A05002013 +:104D0C0084060020F20600207E040020900500207E +:104D1C004081039880648108403D74084B01609287 +:104D2C00403B790801330092D070C06C60B27304C0 +:104D3C00423D6009D001008B408E897403740922B6 +:104D4C000964630F608BCD7460AE0033550160B2A3 +:104D5C00E80641986144C860608B4098CF749C7C95 +:104D6C00C964550F00335B01012B2092D370C468CA +:104D7C0060B24D079D644B0F5F0140828874403ACE +:104D8C0047B8450B0102106020800021447420A01C +:104D9C00003623025060C0A124025060C0A124023E +:104DAC005060C0A12080C3985864310B403D080866 +:104DBC004E026092403B2308209201330604413D91 +:104DCC0008085202D76C2092D070C46C60B21704E1 +:104DDC00423D4209C08B5B74D902876C208E4574AE +:104DEC00092185640C0C608BCD7460AE67983D0214 +:104DFC0060B101334091D070C86C60B1003360A0D9 +:104E0C000607413D30084503D76C0092D070C06C4A +:104E1C0060B2036C003360A1614442988C60608A7C +:104E2C00CF7445988D64180C460390606082002303 +:104E3C00CC7460A200316803D06020A360822698F5 +:104E4C00C4640A0800333503012B0091D370C06889 +:104E5C0060B1003360A20024513C030C00E88DFDCE +:104E6C000A149414423D4809D403008B408E897473 +:104E7C00037409220964CF0F608BCD7460AE0033CC +:104E8C005B1360B2500761444298C860608BCF746A +:104E9C00C564C30F00335613012B2092D370C46822 +:104EAC0060B2BB079D64B90F541340828874403ABA +:104EBC00B40B1813106020800021447420A000361D +:104ECC0033135060C0A135135060C0A1341350602F +:104EDC00C0A12080C3985864A00B403D080844131F +:104EEC006092403B2108209201330604413D0808A2 +:104EFC005F12D76C2092D070C46C60B21504423D26 +:104F0C002A09E513C08B208F45749B750921856593 +:104F1C000B0C608B3612CD7460AF40B101334091F5 +:104F2C00D070C86C60B1003360A07707433D030CB0 +:104F3C0000E8A6FD5B12C08B008A01749B750920EA +:104F4C0081650C0C608BCD7460AA0033161260B0B6 +:104F5C000133C090D070D86C60B004986144C060CC +:104F6C00008B408A89740374042A8164030800E866 +:104F7C0087FDCE12008B408E897403740422096461 +:104F8C00030800E87DFD608BCD7460AE461200E82E +:104F9C0063FD433D020C1D06C212E08A208E45744F +:104FAC00DF750921C5650B0C408A897440AE5E1112 +:104FBC0060B201332092D070C46C60B244986144EA +:104FCC00C860408B208E45748B7404294964020898 +:104FDC000006D611208B408E8974477404224964D4 +:104FEC00030800E8F7FD608BCD7460AE4E1100E84D +:104FFC00E6FD433D020C09065E10C08B008A01746D +:10500C009B75092081650C0C608BCD7460AA0033F4 +:10501C00191060B00133C090D070D86C60B001989A +:10502C006144C060008B408A89740374042A8164D3 +:10503C00030800E8EBFDDE10008B408E89740374CE +:10504C0004220964030800E8E1FD608BCD7460AEB6 +:10505C00491000E867FD433DD20A208BC5108774C8 +:10506C00208E4574092185642F0C230474050020BF +:10507C00AC070020900400201A050020DC0600205C +:10508C0078050020A2050020A0060020F2060020D2 +:10509C00840600203E0500207E04002090050020A0 +:1050AC00B6060020FC040020C0040020BE06002030 +:1050BC00608BCD7460AE67983D1160B10133409147 +:1050CC00D070C86C60B141986144C860408B208E30 +:1050DC0045748B7404294964920ED611208B408E32 +:1050EC00897447740422496402088906608BCD7464 +:1050FC0060AE4F116206433D8E0A4F11C08B008A81 +:10510C0001749B75092081650C0C608BCD7460AAB1 +:10511C0000330A1160B00133C090D070D86C60B00D +:10512C0002986144C060008B408A89740374042A1D +:10513C00816402087006C211008B408E897403745E +:10514C000422096402086706608BCD7460AE5B10A4 +:10515C0000E8EAFD433DE80AD710E08B208E457449 +:10516C00DF750921C5650B0C608B3410CD7460AEF6 +:10517C0040B101334091D070C86C60B14298614429 +:10518C00C860408B208E45748B7404294964CC0E06 +:10519C00CB10208B408E8974477404224964C40E52 +:1051AC00608BCD7460AE45109F060000900400200B +:1051BC00BE0600203E0500207405002004060020D9 +:1051CC00D41422143C116781413B23085B1160828B +:1051DC000023CC7460A2608219110080C06419088D +:1051EC00003360A2B7116085403B150C6085413BD4 +:1051FC001008003360A5003273111411B411D511CD +:10520C00609342B374118093003340808C64440CDF +:10521C00021494147E590036F01160B86097D9705E +:10522C000132C868403B340C81466098D060008BDA +:10523C00FFE3B2E1C76C8031836C37410030FFE390 +:10524C00B5D76711D060608B64430E2361B8FFE360 +:10525C005BDD6198C07C43110D7490606211D0606D +:10526C0000AA608B008A01745F32CD74087C6431B3 +:10527C0061B8FFE3E1EE6198C1640A0C75100C6132 +:10528C00608C063B0508002360AC013360A500264A +:10529C00513EC50BAC074C5D4082414222439860A5 +:1052AC005060408AF29154429C6C002352B1CC74F1 +:1052BC00AD070000680000207E0600208101002060 +:1052CC008905002058000020B8060020080700209F +:1052DC005E01002054000020840100208A0100207F +:0852EC003E070020AE07002080 +:1052F400D41421144A0160820023CC7460A2608219 +:105304002C0120814C64030800E80F02003360A2E2 +:105314006F016093403B030C00E8090271015001E6 +:10532400003160B80F6D11016141A0984C61A08DEE +:105334005775DF3D1C0CD401AC588C61A08DC08E18 +:10534400997555755A61C08A95651108B90144610A +:10535400C08500269875C0A5DB01E085CA86D8659E +:105364000608DC010137E0A60036C0A5AC5CA08DC0 +:105374005775203D1D08A4024C61CC58A08DC08EE9 +:10538400997555755A61C08AC24695651108A60279 +:105394004461C08500269875C0A5CB02E085CB8604 +:1053A400D8650608CD020137E0A60036C0A5AC5C7E +:1053B400A08D5775DF3D100CF502CC58CC61A08E42 +:1053C400E08FDD7555755E61E08AD565050CA08EAC +:1053D400002D5575A0AEAC5CA08D5775DF3D110C4A +:1053E400FF02CC58CC61A08EE08FDD7555755E61EF +:1053F400E08AE14FD5650508A08E012D5575A0AE54 +:10540400CC5CA08E5775203D0C08C08EA08A9B757D +:10541400A14D5965060CCC58A08E00255575A0AE3B +:10542400CC5CA08E5775203D1008E08EDF75A08AF5 +:105434005D650B0CC08E9B75A14D59650608C06057 +:10544400A08B01255575A0AB0021513901226D0BAC +:1054540076036093403B800977035F03003160B8B3 +:105464000F6D18036141A0984C61A08D5775DF3D05 +:105474001C0CDB03AC588C61A08DC08E99755575DE +:105484005A61C08A95651108BF134461C08500261E +:105494009875C0A5D513E085CA86D8650608D413C7 +:1054A4000137E1A60036C0A5AC5CA08D5775203D40 +:1054B4001D08B4134C61CC58A08DC08E99755575D8 +:1054C4005A61C08AC24695651108B0134461C0850B +:1054D40000269875C0A5C513E085CB86D865060857 +:1054E400C3130137E1A60036C0A5AC5CA08D577587 +:1054F400DF3D100CE313CC58CC61A08EE08FDD753A +:1055040055755E61E08AD565050CA08E002D557534 +:10551400A0AEAC5CA08D5775DF3D110CF912CC58D0 +:10552400CC61A08EE08FDD7555755E61E08AE14F38 +:10553400D5650508A08E012D5575A0AECC5CA08E56 +:105544005775203D0C08C08EA08A9B75A14D5965E6 +:10555400060CCC58A08E00255575A0AECC5CA08E50 +:105564005775203D1008E08EDF75A08A5D650B0C31 +:10557400C08E9B75A14D59650608C060A08B01259E +:105584005575A0AB0021513901226D0B6012609357 +:10559400403BF8087F115111003160B80F6D1E11A6 +:1055A4006141A0984C61A08D5775DF3D1C0CDB1147 +:1055B400AC588C61A08DC08E997555755A61C08A9E +:1055C40095651108B6114461C08500269875C0A57B +:1055D400C611E085CA86D8650608C5110137E2A65A +:1055E4000036C0A5AC5CA08D5775203D1D08AB11DD +:1055F4004C61CC58A08DC08E997555755A61C08A7E +:10560400C24695651108A7114461C08500269875A6 +:10561400C0A5D610E085CB86D8650608D41001371E +:10562400E2A60036C0A5AC5CA08D5775DF3D3F0CEB +:10563400FA10CC58CC61A08EE08FDD7555755E6193 +:10564400E08AD565340C2F04FA050020810100207E +:10565400FC0400201C050020AE0100205C04002096 +:10566400AE070020C0060020880000206805002046 +:1056740028060020900400205C0600200606002076 +:1056840044050020A0060020A20500207405002087 +:10569400880700201C0700203A06002090050020FF +:1056A4007E040020A08E002D5575A0AEAC5CA08DAC +:1056B4005775DF3D110CFF11CC58CC61A08EE08FE3 +:1056C400DD7555755E61E08AE14FD5650508A08EEC +:1056D400012D5575A0AECC5CA08E5775203D0C08ED +:1056E400C08EA08A9B75A14D5965060CCC58A08E1E +:1056F40000255575A0AECC5CA08E5775203D1008D2 +:10570400E08EDF75A08A5D650B0CC08E9B75A14D84 +:1057140059650608C060A08B01255575A0AB002112 +:10572400513901223E0B01149414FFE3A7F86211CE +:105734006C83C06441110E0C6082CC74013B050C77 +:105744007F10013240A3850660820023CC7460A2DE +:1057540080060033FD07FFE3A5F877106C83C0646F +:1057640056100E0C6182CC74013B050C741001328E +:1057740041A30D0761820023CC7461A208070033A2 +:10578400FD07FFE3A3F86C106C83C0644B100E0C90 +:105794006282CC74013B050C6910013242A3C40738 +:1057A40062820023CC7462A2BF070033FD070000AD +:1057B4003A06002088000020940400206805002098 +:1057C400D41424141F112012401221B86090A09107 +:1057D400D46C8092D06C403B00B842B89C11670CEA +:1057E4001C1100357C1103B80132947040B040980C +:1057F40040922090846840B3419840922090486839 +:10580400561120B222982091C09084693411C0B1FD +:10581400E093C0929E650708E092C0919E650308DC +:1058240040930C04C092403E290CC091403E260C8B +:10583400E092C0919E65220840922094846C0025D9 +:10584400513D40B4D20B6094403B4611320C20943D +:105854006092C664060C609460B20032621140A388 +:10586400FFE3F8F7611160830C640608003360B449 +:1058740001327D1040A304149414C093403E080CDC +:10588400C092403E050CC09340929A64CA0F409364 +:10589400403A080C4091403A050C409320914A64E8 +:1058A400C00F4398209240948568CA0760B4CC071F +:1058B40060B200314C1020A24D1060B2DD07000030 +:1058C400FC0400209004002074050020FC05002046 +:1058D400D40600209C06002060070020000600205B +:1058E400040700201A05002088010020F405002088 +:1058F40060146214D11483116084403B1508013391 +:1059040060A461116083413B0F0840116082002351 +:10591400CC7460A26082433B0308003360A2FFE3BF +:1059240033F7013361A47A10013160934A93846898 +:10593400403A020C2CB34A9302318468403A020C78 +:105944002CB34A9304318468403A020C2CB34A9332 +:1059540008318468403A020C2CB34A9310318468AD +:10596400403A020C2CB34A9320318468403A020C2A +:105974002CB3EED901208098021463146114000042 +:1059840068000020080500201907002058000020A6 +:1059940060146214D31469120034609386B36812DD +:1059A4006083413B4008FFE3A5F7FFE3D7F7FFE33C +:1059B4000DFCFFE39FFCFFE353F6FFE303FF6112DB +:1059C4006093403B120C60124093403A0E0C7F11DE +:1059D40064302093002120B32093807C4864050820 +:1059E4005B11013120A280B37A114083413A23082C +:1059F40039115A1100916092C26479110A08809297 +:105A04005811009212640508209140928664090C92 +:105A14004093002240B354113C82409384640308B1 +:105A2400003240B3EED90320C298A19880980414A0 +:105A340063146114A0835475403DF50B661147113E +:105A440000932092426427110511330CC092809177 +:105A54001A652F0CC09380911A652B0C809000243A +:105A640080B08111DC84809018650208A0B0809316 +:105A7400009212641D10040C8091403C0F0CA09302 +:105A840080911665040C8092403C080C2091409251 +:105A940086640C0C6093403B09086090002360B05E +:105AA40071105C836090C864BE0B003360B0BB07A8 +:105AB400003480B0DD0700006400002008050020E9 +:105AC400FC05002058010020F4050020A105002059 +:105AD40050010020FC0400209004002098060020BF +:0C5AE4007405002088000020D806002077 +:105AF000D4142D140132CE03C36C4EDC0A00409640 +:105B0000479288744EDC09004ED80900403A080CD0 +:105B10004ED80900423A040C00300D149414970337 +:105B200009320094403B41B0570807336EDC0B004C +:105B30007B0363B88033624367B86ED80B00CC74C4 +:105B400062B07E0363B001320131BF03FFE322E3A1 +:105B5000E0957F1360B75F13003362B743B7D83265 +:105B600045B74F97A23A4FB703982ED80B007D3216 +:105B70000021487C61B8FFE377EA04B8FA32249840 +:105B800042424864CA0B44987831049840B8FFE315 +:105B90006BEA4098826045B804987831449840B8E0 +:105BA000FFE362EA4098086006B880C02070409623 +:105BB000549248B86198409460B261B76ED80A00B8 +:105BC000403B3E08FFE398E20094FFE3B9E280C166 +:105BD00020740130A307413B060803336EDC0B0041 +:105BE0007D12A807423B060801336EDC0B007B12D6 +:105BF000A107433B060800336EDC0B0078129A07BE +:105C0000443B090800336EDC0B00761263B8803326 +:105C100069439307453B060800336EDC0B007212A4 +:105C2000F607463B060800336EDC0B006F12EF07E9 +:105C3000473B840B00336EDC0B006D12E807609568 +:105C40000131409421B320B2003127B3043025B292 +:105C50002E9340684039FD0F25922AB8003110B3C9 +:105C600027B3043025B22E9340684039FD0F2592AA +:105C70002BB8003110B327B3043025B22E934068FF +:105C80004039FD0F25922CB810B32B980C9840602A +:105C900029B82998214929B8003121B320B227B366 +:105CA00025B26ED80900423B49982C0871118C64CA +:105CB000030C00330F04499866988C640E086898AA +:105CC0004798CA6068B8FE3268984842C868403B46 +:105CD00012086EDC0A00210749986598C8642908F3 +:105CE00068984798C86068B8FE33489868438C68DD +:105CF000CA64E00F6096489854B30130FFE3C0E3F4 +:105D00005E0766988C64090868984798CA6068B806 +:105D1000FF3268985042DB0749986598C8640908C3 +:105D200068984798C86068B8FF3348987043E007A0 +:105D300000336EDC0A00E2075C0000200C0000204B +:105D4000006CDC02FFFF00001400002005009CBE78 +:105D50001000030000366E01001BB700808D5B0051 +:105D600020C75400D0FE3F0068FF1F00B8FF0100AD +:045D7000FF07000029 +:105D7400000000000000F03F000000000000F83FB9 +:105D8400000000000000000006D0CF43EBFD4C3EB5 +:105D940000000000000000000000004003B8E23FE3 +:105DA40000000000000000000000000000000000EF +:105DB40000000000000102020303030304040404BE +:105DC4000404040405050505050505050505050583 +:105DD4000505050506060606060606060606060663 +:105DE400060606060606060606060606060606064F +:105DF4000606060607070707070707070707070733 +:105E0400070707070707070707070707070707071E +:105E1400070707070707070707070707070707070E +:105E240007070707070707070707070707070707FE +:105E340007070707080808080808080808080808E2 +:105E440008080808080808080808080808080808CE +:105E540008080808080808080808080808080808BE +:105E640008080808080808080808080808080808AE +:105E7400080808080808080808080808080808089E +:105E8400080808080808080808080808080808088E +:105E9400080808080808080808080808080808087E +:105EA400080808080808080808080808080808086E +:105EB400080808084D435520537461727421202545 +:105EC40064005061726120496E666F2074656D7064 +:105ED40020756E69743A256420206261636B6C6975 +:105EE4006768745F656E3A256420206B65795F731B +:105EF400656E735F6C6576656C3A256420646576BF +:105F04006963655F616464723A2564202064657620 +:105F14006963655F706F72743A25640050617261E1 +:105F240020496E666F205573652044656661756C03 +:105F3400743A25640054315F54435F5A48004D431A +:105F4400552072657365742C7265636F7665722073 +:105F5400737461746521004C656E204572723A2534 +:105F64006400486561642045727200416464722073 +:105F74004572723A25642C2025640053756D435292 +:105F840043204572723A25642C20256400436172D3 +:105F9400645F454E205365743A25640054656D5F13 +:105FA40052733438355F5265635F50726F005363C8 +:105FB400656E654E6F3A256400444950204164641F +:105FC400723A256400444950204368616E67652035 +:085FD400416464723A25640087 +:105FDC00000000700000005000200540001005403B +:105FEC000020064000100640000006400020014042 +:105FFC0000900540005005400000054000000B409B +:10600C0000000A4000000940002008400010084031 +:10601C000000084000F000600020006000000060FC +:10602C00000003400010024000000240001001403C +:10603C000000014000E000E001010300020001014A +:10604C000200020002000200020002000200020034 +:10605C000200020002000200020002000200020024 +:10606C0002000A0A04000000070008000A000800E9 +:08607C000D0008000A000000FD +:040000050000010CEA +:00000001FF diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01_0x0.bin b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01_0x0.bin new file mode 100644 index 0000000..9cb7a5a Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/T1_TC_34650_ZH_V01_0x0.bin differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_debug_unit.d b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_debug_unit.d new file mode 100644 index 0000000..d6bd8d3 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_debug_unit.d @@ -0,0 +1,85 @@ +Obj/USRCTRL_debug_unit.o: USRCTRL/debug_unit.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/eeprom.h \ + USRCTRL/inc/debug_unit.h USRCTRL/inc/display_logic.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/eeprom.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_debug_unit.o b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_debug_unit.o new file mode 100644 index 0000000..e58b498 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_debug_unit.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_display_logic.d b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_display_logic.d new file mode 100644 index 0000000..6b5cb4c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_display_logic.d @@ -0,0 +1,83 @@ +Obj/USRCTRL_display_logic.o: USRCTRL/display_logic.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/eeprom.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/uart_protocol.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/eeprom.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_display_logic.o b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_display_logic.o new file mode 100644 index 0000000..963a9cf Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_display_logic.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_key_logic.d b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_key_logic.d new file mode 100644 index 0000000..c5b1374 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_key_logic.d @@ -0,0 +1,104 @@ +Obj/USRCTRL_key_logic.o: USRCTRL/key_logic.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/touch_key.h \ + SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h SYSTEM/inc/adc.h \ + SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h USRCTRL/inc/display_logic.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/key_logic.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/myrelay.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h SYSTEM/inc/switch_fun.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/key_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_key_logic.o b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_key_logic.o new file mode 100644 index 0000000..2c1c37b Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_key_logic.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_myrelay.d b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_myrelay.d new file mode 100644 index 0000000..1a3a7f5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_myrelay.d @@ -0,0 +1,101 @@ +Obj/USRCTRL_myrelay.o: USRCTRL/myrelay.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/touch_key.h SYSTEM/inc/eeprom.h SYSTEM/inc/touch_key.h \ + SYSTEM/inc/adc.h SYSTEM/inc/ht1621.h USRCTRL/inc/debug_unit.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/myrelay.h \ + USRCTRL/inc/uart_protocol.h SYSTEM/inc/tm1812.h SYSTEM/inc/switch_fun.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/touch_key.h: + +SYSTEM/inc/eeprom.h: + +SYSTEM/inc/touch_key.h: + +SYSTEM/inc/adc.h: + +SYSTEM/inc/ht1621.h: + +USRCTRL/inc/debug_unit.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/myrelay.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/tm1812.h: + +SYSTEM/inc/switch_fun.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_tempctrl_unit.d b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_tempctrl_unit.d new file mode 100644 index 0000000..8d898e5 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_tempctrl_unit.d @@ -0,0 +1,83 @@ +Obj/USRCTRL_tempctrl_unit.o: USRCTRL/tempctrl_unit.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/eeprom.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/uart_protocol.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/eeprom.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_tempctrl_unit.o b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_tempctrl_unit.o new file mode 100644 index 0000000..d72b5bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_tempctrl_unit.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_uart_protocol.d b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_uart_protocol.d new file mode 100644 index 0000000..a9d32b3 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_uart_protocol.d @@ -0,0 +1,83 @@ +Obj/USRCTRL_uart_protocol.o: USRCTRL/uart_protocol.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/eeprom.h \ + USRCTRL/inc/display_logic.h USRCTRL/inc/tempctrl_unit.h \ + USRCTRL/inc/tempctrl_unit.h USRCTRL/inc/uart_protocol.h \ + SYSTEM/inc/Bootload_fun.h SYSTEM/inc/uart.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/eeprom.h: + +USRCTRL/inc/display_logic.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/tempctrl_unit.h: + +USRCTRL/inc/uart_protocol.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/uart.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_uart_protocol.o b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_uart_protocol.o new file mode 100644 index 0000000..cae5ab6 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/USRCTRL_uart_protocol.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.S b/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.S new file mode 100644 index 0000000..8b9bb64 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.d b/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.d new file mode 100644 index 0000000..21afacb --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.d @@ -0,0 +1 @@ +Obj/__rt_entry.o: Obj/__rt_entry.S diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.o b/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.o new file mode 100644 index 0000000..4fa5563 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/__rt_entry.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/arch_apt32f102_iostring.d b/T1_TC_ZH_V01_20251128/Source/Obj/arch_apt32f102_iostring.d new file mode 100644 index 0000000..8aea0fc --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/arch_apt32f102_iostring.o b/T1_TC_ZH_V01_20251128/Source/Obj/arch_apt32f102_iostring.o new file mode 100644 index 0000000..94dd84f Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/arch_apt32f102_iostring.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/arch_crt0.d b/T1_TC_ZH_V01_20251128/Source/Obj/arch_crt0.d new file mode 100644 index 0000000..430c939 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/arch_crt0.d @@ -0,0 +1 @@ +Obj/arch_crt0.o: arch/crt0.S diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/arch_crt0.o b/T1_TC_ZH_V01_20251128/Source/Obj/arch_crt0.o new file mode 100644 index 0000000..21119cd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/arch_crt0.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/arch_mem_init.d b/T1_TC_ZH_V01_20251128/Source/Obj/arch_mem_init.d new file mode 100644 index 0000000..c3cd9c6 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/arch_mem_init.d @@ -0,0 +1 @@ +Obj/arch_mem_init.o: arch/mem_init.c diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/arch_mem_init.o b/T1_TC_ZH_V01_20251128/Source/Obj/arch_mem_init.o new file mode 100644 index 0000000..2eaec33 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/arch_mem_init.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102.d b/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102.d new file mode 100644 index 0000000..9d7f972 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102.o b/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102.o new file mode 100644 index 0000000..0e82cfd Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102_ck801.d b/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102_ck801.d new file mode 100644 index 0000000..8d9ab1a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102_ck801.o b/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102_ck801.o new file mode 100644 index 0000000..82122e1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/drivers_apt32f102_ck801.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/main.d b/T1_TC_ZH_V01_20251128/Source/Obj/main.d new file mode 100644 index 0000000..e8c500b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/main.d @@ -0,0 +1,80 @@ +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/eeprom.h SYSTEM/inc/tempctrl_unit.h \ + SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/main.o b/T1_TC_ZH_V01_20251128/Source/Obj/main.o new file mode 100644 index 0000000..f417097 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/main.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/mcu_initial.d b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_initial.d new file mode 100644 index 0000000..a78c02c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_initial.d @@ -0,0 +1,80 @@ +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/eeprom.h SYSTEM/inc/tempctrl_unit.h \ + SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/mcu_initial.o b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_initial.o new file mode 100644 index 0000000..72d4bf4 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_initial.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/mcu_interrupt.d b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_interrupt.d new file mode 100644 index 0000000..0b90eeb --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_interrupt.d @@ -0,0 +1,80 @@ +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/eeprom.h SYSTEM/inc/tempctrl_unit.h \ + SYSTEM/inc/uart_protocol.h SYSTEM/inc/uart.h SYSTEM/inc/Bootload_fun.h \ + SYSTEM/inc/dip_switch.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/eeprom.h: + +SYSTEM/inc/tempctrl_unit.h: + +SYSTEM/inc/uart_protocol.h: + +SYSTEM/inc/uart.h: + +SYSTEM/inc/Bootload_fun.h: + +SYSTEM/inc/dip_switch.h: diff --git a/T1_TC_ZH_V01_20251128/Source/Obj/mcu_interrupt.o b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_interrupt.o new file mode 100644 index 0000000..471d014 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Obj/mcu_interrupt.o differ diff --git a/T1_TC_ZH_V01_20251128/Source/Project.cdkproj b/T1_TC_ZH_V01_20251128/Source/Project.cdkproj new file mode 100644 index 0000000..061d262 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Project.cdkproj @@ -0,0 +1,472 @@ + + + + + + yes + + + + + 108 + 93 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + T1_TC_34650_ZH_V01 + 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)/RF_SDK/inc;$(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)/RF_SDK/inc;$(ProjectPath)/SYSTEM/inc;$(ProjectPath)/USRCTRL/inc + + gdwarf2 + + + yes + yes + $(ProjectPath)/ckcpu.ld + lib_102TKey_f_1_18B_240629;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 + APT32F102_FLASHDOWN.elf + yes + yes + yes + Soft Reset + abcd1234 + no + 0 + no + + + + + + diff --git a/T1_TC_ZH_V01_20251128/Source/Project.cdkws b/T1_TC_ZH_V01_20251128/Source/Project.cdkws new file mode 100644 index 0000000..2dd9677 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Project.cdkws @@ -0,0 +1,11 @@ + + + $(CDKWS)\__workspace_pack__ + + + + + + + + diff --git a/T1_TC_ZH_V01_20251128/Source/Project.tags b/T1_TC_ZH_V01_20251128/Source/Project.tags new file mode 100644 index 0000000..66596bb Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/Project.tags differ diff --git a/T1_TC_ZH_V01_20251128/Source/Readme.txt b/T1_TC_ZH_V01_20251128/Source/Readme.txt new file mode 100644 index 0000000..c9fa82c --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/Readme.txt @@ -0,0 +1,11 @@ +版本记录: + 2023-11-24 发布给楼下生产,发布文件:T1_Switch_V01_20231124.ihex CHECK:0x1466AC3B + 调试完成 - + 目前触摸参数确定, + TM1812增加定期刷新 - 在没控制的时候2S 刷新一次 + 串口协议中增加读取版本号命令 - 01 01 00 00 02 + + 增加触摸检测异常,便执行软件重启,软件重启不改变背光指示灯状态 + + 2023-10-07 使用芯片APT32F1023 + 1、调试T1-G6-V04-2023\9\22 硬件 \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/Bootload_fun.c b/T1_TC_ZH_V01_20251128/Source/SYSTEM/Bootload_fun.c new file mode 100644 index 0000000..83b18a9 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/Bootload_fun.c @@ -0,0 +1,500 @@ +/* + ****************************************************************************** + * @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/T1_TC_ZH_V01_20251128/Source/SYSTEM/dip_switch.c b/T1_TC_ZH_V01_20251128/Source/SYSTEM/dip_switch.c new file mode 100644 index 0000000..cb65c9a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/dip_switch.c @@ -0,0 +1,105 @@ +#include "includes.h" + +DIP_t g_Dip; + +void DIP_Switch_Init(void){ + + GPIO_Init(GPIOB0,0,Intput); + GPIO_Init(GPIOB0,1,Intput); + GPIO_Init(GPIOB0,2,Intput); + + + + GPIO_PullHigh_Init(GPIOB0,0); + GPIO_PullHigh_Init(GPIOB0,1); + GPIO_PullHigh_Init(GPIOB0,2); + + 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.DIP_addr = g_Dip.DIP_val & 0x07; + + /*进入设置界面 - 先决条件*/ + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Addr:%d",g_Dip.DIP_val); +} + +U8_T DIP_GetSwitchState(U8_T i){ + U8_T val = 0; + + switch (i) + { + case DIP_CH1: + val = GPIO_Read_Status(GPIOB0,2); + break; + case DIP_CH2: + val = GPIO_Read_Status(GPIOB0,1); + break; + case DIP_CH3: + val = GPIO_Read_Status(GPIOB0,0); + 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.DIP_addr = g_Dip.DIP_val & 0x07; + + Dbg_Println(DBG_BIT_SYS_STATUS,"DIP Change Addr:%d",g_Dip.DIP_addr); + } + +} + + + diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/eeprom.c b/T1_TC_ZH_V01_20251128/Source/SYSTEM/eeprom.c new file mode 100644 index 0000000..7a7cc91 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/eeprom.c @@ -0,0 +1,336 @@ +#include "includes.h" + +E_PARA_INFO g_eeprom; + +E_MCU_DEV_INFO g_mcu_dev; + +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); + + memset(&g_eeprom,0,sizeof(E_PARA_INFO)); + + rev = EEPROM_ReadParaInfo(&g_eeprom); + if(rev == 0x00){ + //读取成功,开始校验以下参数 + EEPROM_Validate_ParaInfo(&g_eeprom); + }else{ + //读取失败,恢复默认参数 + EEPROM_Default_ParaInfo(&g_eeprom); + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info Use Default:%d",g_eeprom.pipe_flag); + } + +} + + +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info){ + U8_T read_info[6]; + U8_T para_data[EEPROM_APP_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_ParaInfo_Address,4,read_info); + + if(read_info[0] == EEPROM_APP_SVAE_FLAG){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= EEPROM_APP_DATA_Size_Max){ + + ReadDataArry_U8(EEPROM_ParaInfo_Address+EEPROM_Offset_Data,read_len,para_data); + if(EEPROM_CheckSum(para_data,sizeof(E_PARA_INFO)) == read_info[3]){ + //校验成功 + memcpy((uint8_t *)info,para_data,sizeof(E_PARA_INFO)); + + return 0x00; + } + } + } + + return 0x01; +} + +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info){ + U8_T save_data[EEPROM_APP_DATA_Size_Max + 6]; + U16_T save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_data[0] = EEPROM_APP_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_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_ClearParaInfo(void){ + U8_T save_data[EEPROM_APP_DATA_Size_Max+10]; + UINT16 save_len = sizeof(E_PARA_INFO); + + if(save_len >= EEPROM_APP_DATA_Size_Max) save_len = EEPROM_APP_DATA_Size_Max; + + save_len += 4; + memset(save_data,0xFF,save_len); + + Page_ProgramData(EEPROM_ParaInfo_Address,save_len,save_data); + + return 0; +} + +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info){ + U8_T i=0; + + //以下为本地参数 + +// //温差 +// if(info->temp_diff > 18 ){ +// info->temp_diff = EEPROM_TempDifference_Default; //默认 +// } +// Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp_diff %d",info->temp_diff); +// +// //温度显示单位 +// if(info->temp_select > 0x02 ){ +// info->temp_select = EEPROM_TempSelect_Default; //默认保护电流为10A +// } +// +// +// if(info->backlight_en >= 0x02) +// { +// info->backlight_en = 0x00; +// } +// +// if(info->pipe_flag > 0x02) +// { +// info->pipe_flag = 0x00; +// } +// +// if((info->dev_addr == 0x00) || (info->dev_addr == 0xff)) +// { +// info->dev_addr = 0x01; +// } +// +// //按键灵敏度 +// if(info->key_sens_level > 2) +// { +// info->key_sens_level = EEPROM_TouchLevel_Default; //默认中灵敏度 +// } +// +// //显示语言 +// if(info->langue_select > 2) +// { +// info->langue_select = EEPROM_LangueSelect_Default;//默认中英文混合 +// } + + //设备端口类型 + if(info->dev_port > 2) //2024-12-16 + { + info->dev_port = POLLING_PORT; //默认轮训端口 + } + + + Dbg_Println(DBG_BIT_SYS_STATUS,"Para Info temp unit:%d backlight_en:%d key_sens_level:%d device_addr:%d device_port:%d",\ + info->temp_select,info->backlight_en,info->key_sens_level,info->dev_addr,info->dev_port); + + return 0; +} + +/*恢复默认值*/ +void EEPROM_Default_ParaInfo(E_PARA_INFO *info){ + info->dev_addr = 0x01; + info->pipe_flag = 0x00; + info->temp_diff = EEPROM_TempDifference_Default; + info->temp_select = EEPROM_TempSelect_Default; + info->backlight_en = 0x00; + info->key_sens_level = EEPROM_TouchLevel_Default; + info->langue_select = EEPROM_LangueSelect_Default; + info->dev_port = POLLING_PORT; //2024-12-16 + +} + + + +/*************<- 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 + 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); +#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 = 0x01; + 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/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/Bootload_fun.h b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/Bootload_fun.h new file mode 100644 index 0000000..2a186f9 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/dip_switch.h b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/dip_switch.h new file mode 100644 index 0000000..8b6d357 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/dip_switch.h @@ -0,0 +1,42 @@ +#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 //每次扫描时间 + +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 DIP_addr; //设备地址 + + 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/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/eeprom.h b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/eeprom.h new file mode 100644 index 0000000..f85d305 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/eeprom.h @@ -0,0 +1,93 @@ +#ifndef _EEPROM_H_ +#define _EEPROM_H_ + +#include "apt32f102.h" + +/*地址范围:0x10000000~0x100007FF,DROM 每页64BYTE,按页分配*/ +#define EEPROM_MCUDevInfo_Address 0x10000000 //MCU 设备信息地址固定为0x10000000,大小为0x40 此区域不可改动 + +/*APP*/ +#define EEPROM_ParaInfo_Address 0x10000100 + +#define EEPROM_TOUCHPARA1_SaveAddr 0x10000200 +#define EEPROM_TOUCHPARA2_SaveAddr 0x10000280 +#define EEPROM_TOUCHPARA3_SaveAddr 0x10000300 +/* EEPROM 保存数据格式: + * FLAG - 1Byte 保存标志位 + * LEN - 2Byte 保存数据长度 + * CHECK - 1Byte 保存数据校验 + * DATA - nByte 保存数据内容 + * + * */ + + /*APP*/ +#define EEPROM_APP_SVAE_FLAG 0xA6 +#define EEPROM_APP_DATA_Size_Max 100 //目前保存数据内容最长为100Byte +//#define EEPROM_PARA_Size 50 + +#define EEPROM_Offset_SaveFlag 0x00 +#define EEPROM_Offset_Datalen 0x01 +#define EEPROM_Offset_Check 0x03 +#define EEPROM_Offset_Data 0x04 + +#define EEPROM_TempDifference_Default 0x09 //温差 - 默认为0x09 +#define EEPROM_TempSelect_Default 0x00 //温度显示 - 默认摄氏度 +#define EEPROM_TouchLevel_Default 0x01 //触摸按键等级 - 默认为0x01 中灵敏度 +#define EEPROM_LangueSelect_Default 0x00 //显示语言 - 默认0x00中英文混合 + +#define ACTIVE_PORT 0x02 //主动端口 +#define POLLING_PORT 0x01 //轮训端口 + +/*boot*/ + +#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{ + + U8_T dev_addr; //设备地址 + U8_T pipe_flag; //管制选择 + U8_T temp_diff; //温差 0~18 + U8_T temp_select; //温度显示单位选择 0x00:摄氏度 0x01:华氏度 + U8_T backlight_en; //背光延时关闭标记 0x00:延时关 0x01:延时关闭开 + U8_T key_sens_level; //按键灵敏度 + U8_T langue_select; //设置显示语言 + + U8_T dev_port; //设备处于RCU的端口类型 1:轮训端口 2:主动端口 2024-12-16增加 +}E_PARA_INFO; + + +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 E_PARA_INFO g_eeprom; + +void EEPROM_Init(void); +U8_T EEPROM_CheckSum(U8_T *data,U16_T len); +U8_T EEPROM_ReadParaInfo(E_PARA_INFO *info); +U8_T EEPROM_WriteParaInfo(E_PARA_INFO *info); +U8_T EEPROM_ClearParaInfo(void); +U8_T EEPROM_Validate_ParaInfo(E_PARA_INFO *info); +void EEPROM_Default_ParaInfo(E_PARA_INFO *info); + + + +/*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); + +#endif diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/tempctrl_unit.h b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/tempctrl_unit.h new file mode 100644 index 0000000..cf6aa5a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/tempctrl_unit.h @@ -0,0 +1,105 @@ +#ifndef __TEMPCTRL_UNIT_H__ +#define __TEMPCTRL_UNIT_H__ + + +#include "apt32f102_types_local.h" + +/*温控相关宏定义开始*/ +#define TEM_MIN_SET 0x10 //最低温度 +#define TEM_MAX_SET 0x20 //最高温度 + +#define TEM_VALVE_OPEN 0x01 //阀开 +#define TEM_VALVE_CLOSE 0x00 //阀关 + + +#define FAN_LOW 0x00 //低风速 +#define FAN_MID 0x01 //中风速 +#define FAN_HIGH 0x02 //高风速 +#define FAN_AUTO 0x03 //自动风 +#define FAN_STOP 0x04 //停 + +#define MODEL_COLD 0x00 //制冷模式 +#define MODEL_HOT 0x02 //制热模式 +#define MODEL_WIND 0x04 //送风模式 +#define MODEL_AUTO 0x06 //自动模式 + +#define TEMP_ON 0x01 //开机 +#define TEMP_OFF 0x00 //关机 + +#define CARDIN 0x01 //插卡 +#define CARDOUT 0x00 //拔卡 + +#define TEM_DEPARTTURE 0x09 //偏差温度标准 + + +#define uint5_t(data) (data&0x1f) + +#define TEMSTATECONVER(data) (*(U16_T *)&data) //实际u16的值 +#define TEMTEMPCONVER(data) ((0x00 == data)?TEM_MAX_SET:data) //温控器温度转换为0,就输出32度 + + +/*温控相关宏定义结束*/ + + +typedef struct +{ + U32_T indoor_t : 8; //0~50(°C),室温 + U32_T set_t : 8; //5~40(°C),设定温度 + U32_T valve : 1; //阀门状态 + U32_T fan : 3; //风速 + U32_T mode : 3; //工作模式 + U32_T on_off : 1; //开关机状态 + U32_T reserved : 8; +}TemState_Struct; + + +typedef struct +{ + TemState_Struct TemState_Now; + TemState_Struct TemStateLast; //温控器的上一个状态 用于输出屏幕 + TemState_Struct TemState_Ctrller; //中宏网关读取到的温控状态 + + U8_T Temp_dirwind; //风向值,不做控制,值只记录,默认0 + +// U16_T IndoorTem; +// U16_T IndoorTemLast; //用于显示 +// +// U16_T ReportTem; //用于上报 +// U16_T ReportTemLast; + + U8_T CardState; //插卡状态 + U8_T CardFlag; //插卡状态改变标记 + U8_T CardEn; //插卡状态功能启用标记 + U8_T SceneNo; //场景编号 + U8_T SceneFlag; //场景改变标记 + + U8_T TempChange_Flag; //状态改变标记 + + U8_T TempCtrller_Cnt; //发送次数 + U8_T TempCtrllerChange_Flag;//状态改变下发网关标记 + + U32_T SceneNoTick; + U32_T Temp_SendTick; //温度定时上报间隔时间戳 + U32_T TempChange_Tick; + U32_T TemQuery_1S_tick; //查询网关温控状态时间戳 +}TempCtrl_Unit; + + +extern TempCtrl_Unit TempCtrl; + + +void Debug_Init(void); +void DisPlay_Task(void); + +/*相关函数声明开始*/ +void TemCtrl_Init(void); //初始化函数 +void TemCtrl_Pro(void); +U8_T Ctrller_RecData_Processing(U8_T *RecData, U16_T Len); + +void Ctrller_Query_AirFun(void); +void Ctrller_Query_AirState(void); +void Ctrller_Ctrl_AirState(void); + +/*相关函数声明结束*/ + +#endif diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/uart.h b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/uart.h new file mode 100644 index 0000000..e03c395 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/uart.h @@ -0,0 +1,152 @@ +#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 100 +#define USART_SEND_SIZE 100 +#define READ_RXLEVEL_STATE GPIO_Read_Status(GPIOB0,5) //RCU通讯485总线RX引脚 + +#define UART_SEND_BUFFER_NUM 10 +#define UART_SEND_BUFFER_SIZE 20 + +#define UART_BUSBUSY 0x01 //总线繁忙 +#define UART_BUSIDLE 0x00 //总线空闲 + +#define BUSSend_ValidTime1 60000 //数据有效期 +#define BUSSend_ValidTime2 1000 //数据有效期 +#define BUSSend_ValidTime3 300 //数据有效期 + +#define BUSSend_Cnt 1 //数据发送次数 +#define BUSSend_Tick 300 //数据发送间隔 + + + +/*调试信息相关定义*/ +#ifndef DBG_LOG_EN +#define DBG_LOG_EN 0 //DEBUG LOG 输出总开关 +#endif + +/*调试信息初始状态*/ +#define DBG_OPT_Debug_STATUS 0 //临时调试信息打印开关 +#define DBG_OPT_DEVICE_STATUS 0 //设备驱动层打印调试信息打印开关 +#define DBG_OPT_SYS_STATUS 1 //系统调试信息打印开关 + +/*调试信息输出控制位*/ +#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) +#else +#define DBG_SendByte(data) //UARTTxByte(UART1,data) +#define DBG_Printf +#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 Receiving; + + 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[3]; +extern U32_T Dbg_Switch; + +extern U8_T DealBuffer[USART_BUFFER_SIZE]; //数据处理缓冲 +extern U16_T DealLen; + +extern volatile int RS485_Comm_Flag,RS485_Comm_Start,RS485_Comm_End,RS485_Comming; +extern volatile int RS485_Comm_Flag1,RS485_Comm_Start1,RS485_Comm_End1,RS485_Comming1; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf); +void UART1_RecvINT_Processing(char data); +void UART1_TASK(void); +void UART2_TASK(void); +void UART0_RecvINT_Processing(char data); +void UART1_RecvINT_Processing(char data); +void UART2_RecvINT_Processing(char data); +void MCU485_SendData(U8_T *buff,U16_T len); +void Controller485_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 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); +U8_T Get_BUS485_Send_State(void); +void BUS485_Jump_Boot(U8_T jump); + +#endif + diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/uart_protocol.h b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/uart_protocol.h new file mode 100644 index 0000000..2d4b791 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/inc/uart_protocol.h @@ -0,0 +1,18 @@ +#ifndef __UART_PROTOCOL_H__ +#define __UART_PROTOCOL_H__ + +#include "apt32f102_types_local.h" +#include "uart.h" + +#define Tem_Type 0x03 //温控器类型 + + + + +void Rs485AskCycleSend(void); +void Rs485AskCtrlSend(U8_T* Recdata); +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len); +void Rs485_ASend(U32_T valtim); + + +#endif \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/tempctrl_unit.c b/T1_TC_ZH_V01_20251128/Source/SYSTEM/tempctrl_unit.c new file mode 100644 index 0000000..bb1bf94 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/tempctrl_unit.c @@ -0,0 +1,586 @@ +#include "includes.h" + +TempCtrl_Unit TempCtrl; + + +/****************************************************************** + * 函数功能:温控初始化 + * + * +*****************************************************************/ +void TemCtrl_Init(void) +{ + memset(&TempCtrl,0x00,sizeof(TempCtrl_Unit)); + + if(Sys_RSR & 0xFFFFFFFE) //除上电复位外其他复位源则恢复温控状态 + { + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU reset,recover state!"); + + if(((Sav_Temp & 0xFF) == TEMP_OFF) || ((Sav_Temp & 0xFF) == TEMP_ON)) //读取的温控开关机状态合法 + { + TempCtrl.TemState_Now.on_off = (Sav_Temp & 0xFF); + } + else + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; + } + + if( (((Sav_Temp >> 8) & 0xFF) == MODEL_COLD) || (((Sav_Temp >> 8) & 0xFF) == MODEL_HOT) + || (((Sav_Temp >> 8) & 0xFF) == MODEL_WIND) || (((Sav_Temp >> 8) & 0xFF) == MODEL_AUTO) ) //读取的温控模式状态合法 + { + TempCtrl.TemState_Now.mode = ((Sav_Temp >> 8) & 0xFF); + } + else + { + TempCtrl.TemState_Now.mode = MODEL_COLD; + } + + if( (((Sav_Temp >> 16) & 0xFF) == FAN_LOW) || (((Sav_Temp >> 16) & 0xFF) == FAN_MID) //读取的温控风速状态合法 + || (((Sav_Temp >> 16) & 0xFF) == FAN_HIGH)|| (((Sav_Temp >> 16) & 0xFF) == FAN_AUTO)) + { + TempCtrl.TemState_Now.fan = ((Sav_Temp >> 16) & 0xFF); + } + else + { + TempCtrl.TemState_Now.fan = FAN_MID; + } + //读取的温控设置温度合法 2024-04-18增加0==32的判断 + if(((((Sav_Temp >> 24) & 0xFF) >= 16) && (((Sav_Temp >> 24) & 0xFF) <= 32)) ) + { + TempCtrl.TemState_Now.set_t = ((Sav_Temp >> 24) & 0xFF); + } + else + { + TempCtrl.TemState_Now.set_t = 24; + } + + } + else //正常上电温控状态 + { + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + TempCtrl.TemState_Now.set_t = 24; //24 + } + + TempCtrl.TemState_Now.indoor_t = 24; + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + TempCtrl.TemState_Ctrller.indoor_t = TempCtrl.TemState_Now.indoor_t; + + TempCtrl.CardState = 0x01; //默认插卡 + TempCtrl.CardEn = 0x00; //插卡状态功能默认关闭 + + SYSCON->UREG0 = 0x00000000; + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 +} + + + +/******************************************************************** + * 函数功能:阀门控制 + * + * +*****************************************************************/ +void Tem_Valve_Ctrl(void) +{ + uint8_t TemIndoor = 0x00; + uint8_t TemSet = 0x00; + + TemIndoor = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); + TemSet = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); + switch(TempCtrl.TemState_Now.on_off) // + { + case TEMP_ON: + switch(TempCtrl.TemState_Now.mode) //模式 + { + case MODEL_COLD: + if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + } + else if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + } + break; + case MODEL_HOT: + if(TemIndoor > TemSet + 1) //室内温度大于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + } + else if(TemIndoor < TemSet - 1) //室内温度小于设置温度 + { + TempCtrl.TemState_Now.valve = TEM_VALVE_OPEN; + } + break; + case MODEL_WIND: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + break; + } + break; + case TEMP_OFF: + TempCtrl.TemState_Now.valve = TEM_VALVE_CLOSE; + + break; + default: + break; + } + +// Dbg_Println(DBG_BIT_SYS_STATUS,"valve:%d",TempCtrl.TemState_Now.valve); +} + + + + + + +/************************************************************************************ + * 函数功能:设置模式下参数保存,状态改变上报 + * + * +**********************************************************************************/ +void DisPlay_Task(void) +{ + static U8_T OpenDisPlay_Flag = 0x00; //开机刷新标志 + + + ///4、温控状态变化刷新屏幕内容 + if(TempCtrl.TemState_Now.on_off == TEMP_ON) + { + if(TempCtrl.TemStateLast.mode != TempCtrl.TemState_Now.mode) //刷新模式 + { + TempCtrl.TemStateLast.mode = TempCtrl.TemState_Now.mode; + + SYSCON->UREG0 &= 0xFFFF00FF; + SYSCON->UREG0 |= (TempCtrl.TemState_Now.mode << 8); + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + TempCtrl.TempChange_Tick = SysTick_1ms; + } + + if((TempCtrl.TemStateLast.fan != TempCtrl.TemState_Now.fan) || (OpenDisPlay_Flag == 0x01)) //刷新风速,2025-03-20 + { + OpenDisPlay_Flag = 0x00; + + TempCtrl.TemStateLast.fan = TempCtrl.TemState_Now.fan; + + + SYSCON->UREG0 &= 0xFF00FFFF; + SYSCON->UREG0 |= (TempCtrl.TemState_Now.fan << 16); + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + TempCtrl.TempChange_Tick = SysTick_1ms; + } + + if(TempCtrl.TemStateLast.set_t != TempCtrl.TemState_Now.set_t) //刷新设置温度 + { + TempCtrl.TemStateLast.set_t = TempCtrl.TemState_Now.set_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + TempCtrl.TempChange_Tick = SysTick_1ms; + } + + + if(TempCtrl.TemStateLast.indoor_t != TempCtrl.TemState_Now.indoor_t) //刷新室内温度 + { + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + + SYSCON->UREG0 &= 0x00FFFFFF; + SYSCON->UREG0 |= (TempCtrl.TemState_Now.set_t << 24); + } + + + if(SysTick_1ms - TempCtrl.Temp_SendTick >= 30000) + { + TempCtrl.Temp_SendTick = SysTick_1ms; + + TempCtrl.TemStateLast.indoor_t = TempCtrl.TemState_Now.indoor_t; + TempCtrl.TempChange_Flag = 0x01; //2025-02-25,温度变化每隔30s未变化,上报一次。 + + } + } + + //开机状态 + if(TempCtrl.TemStateLast.on_off != TempCtrl.TemState_Now.on_off) //刷新开关机 + { + TempCtrl.TemStateLast.on_off = TempCtrl.TemState_Now.on_off; + + SYSCON->UREG0 &= 0xFFFFFF00; //2024-03-15 + SYSCON->UREG0 |= TempCtrl.TemState_Now.on_off; //2024-03-15 + + TempCtrl.TempChange_Flag = 0x01; //2024-12-16 + TempCtrl.TempChange_Tick = SysTick_1ms; + } + + //发送组包 + if((TempCtrl.TempChange_Flag == 0x01) && (SysTick_1ms - TempCtrl.TempChange_Tick >= 1000)) //2025-03-24,温度变化人为操作1s间隔上报一次 + { + TempCtrl.TempChange_Tick = SysTick_1ms; + TempCtrl.TempChange_Flag = 0x00; + + TempCtrl.Temp_SendTick = SysTick_1ms; + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + Rs485_ASend(BUSSend_ValidTime2);//组包发送 + } + + } + + + //状态5min未变化,上报 + if((SysTick_1ms - TempCtrl.TempChange_Tick >= 300000)) + { + TempCtrl.TempChange_Tick = SysTick_1ms; + TempCtrl.Temp_SendTick = SysTick_1ms; + + //防冲撞上报 + if(g_eeprom.dev_port == ACTIVE_PORT) { + Rs485_ASend(BUSSend_ValidTime1);//组包发送 + } + } + +} + + + +/****************************************************************** + * 函数功能:温控轮询任务,获得温控器状态、阀门状态 + * + * +*****************************************************************/ +void TemCtrl_Pro(void) +{ + static uint32_t TemCtrl_tick = 0x00; + + //1、阀门控制 + Tem_Valve_Ctrl(); + + //2、网关读取到的开关机状态 + if(TempCtrl.TemState_Now.on_off != TempCtrl.TemState_Ctrller.on_off) + { + TempCtrl.TemState_Ctrller.on_off = TempCtrl.TemState_Now.on_off; + TempCtrl.TempCtrllerChange_Flag = 0x01; + } + + if(TempCtrl.TemState_Now.set_t != TempCtrl.TemState_Ctrller.set_t) + { + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + TempCtrl.TempCtrllerChange_Flag = 0x01; + } + + if(TempCtrl.TemState_Now.mode != TempCtrl.TemState_Ctrller.mode) + { + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + TempCtrl.TempCtrllerChange_Flag = 0x01; + } + + if(TempCtrl.TemState_Now.fan != TempCtrl.TemState_Ctrller.fan) + { + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + TempCtrl.TempCtrllerChange_Flag = 0x01; + } + + + + //3、发送控制网关空调状态命令 + if( (TempCtrl.TempCtrllerChange_Flag == 0x01)&&(SysTick_1ms - TemCtrl_tick >= 300) ) + { + TempCtrl.TemQuery_1S_tick = SysTick_1ms; + TemCtrl_tick = SysTick_1ms; + + if(TempCtrl.TempCtrller_Cnt <= 0x03) + { + TempCtrl.TempCtrller_Cnt++; + Ctrller_Ctrl_AirState(); + + }else{ + TempCtrl.TempCtrllerChange_Flag = 0x00; + TempCtrl.TempCtrller_Cnt = 0x00; + } + + } + + //4、发送读取网关空调状态命令,获取温控器状态 + if(SysTick_1ms - TempCtrl.TemQuery_1S_tick >= 1000) + { + TempCtrl.TemQuery_1S_tick = SysTick_1ms; + + Ctrller_Query_AirState(); + } + +} + + +/************************************************************************************ + * 函数名称 : Ctrller_Query_AirFun + * 函数功能 : 查询空调性能 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Query_AirFun(void) +{ + U8_T SdBuff[8]; + U16_T SdLen = 0x06; + + SdBuff[0] = 0xDD; + SdBuff[1] = 0x06; + SdBuff[2] = 0xFF; + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x01; //命令字 + + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + + Controller485_SendData(SdBuff,SdLen); +} + + + +/************************************************************************************ + * 函数名称 : Ctrller_Query_AirState + * 函数功能 : 查询空调状态 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Query_AirState(void) +{ + U8_T SdBuff[8]; + U16_T SdLen = 0x06; + + SdBuff[0] = 0xDD; + SdBuff[1] = 0x06; + SdBuff[2] = 0xFF; + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x02; //命令字 + + SdBuff[5] = EEPROM_CheckSum(SdBuff,0x05); + + Controller485_SendData(SdBuff,SdLen); +} + + +/************************************************************************************ + * 函数名称 : Ctrller_Ctrl_AirState + * 函数功能 : 控制空调状态 + * 函数输入 : + * 函数输出 : +**********************************************************************************/ +void Ctrller_Ctrl_AirState(void) +{ + U8_T SdBuff[12]; + U16_T SdLen = 0x0B; + + SdBuff[0] = 0xDD; + SdBuff[1] = 0x0B; + SdBuff[2] = 0xFF; + SdBuff[3] = g_Dip.DIP_addr; + SdBuff[4] = 0x03; //命令字 + + SdBuff[5] = TempCtrl.TemState_Now.on_off; //开关机状态 + + SdBuff[6] = TempCtrl.TemState_Now.set_t; //设定温度 + + if(TempCtrl.TemState_Now.mode == MODEL_COLD){ //空调工作模式, 0x01:制热, 0x02:制冷, 0x04:送风 + SdBuff[7] = 0x02; + }else if(TempCtrl.TemState_Now.mode == MODEL_HOT){ + SdBuff[7] = 0x01; + }else if(TempCtrl.TemState_Now.mode == MODEL_WIND){ + SdBuff[7] = 0x04; + }else{ + SdBuff[7] = 0x02; + } + + if(TempCtrl.TemState_Now.fan == FAN_AUTO){ //空调风速, 0x00:自动, 0x01:低风速, 0x02:中风速, 0x03:高风速 + SdBuff[8] = 0x00; + }else if(TempCtrl.TemState_Now.fan == FAN_LOW){ + SdBuff[8] = 0x01; + }else if(TempCtrl.TemState_Now.fan == FAN_MID){ + SdBuff[8] = 0x02; + }else if(TempCtrl.TemState_Now.fan == FAN_HIGH){ + SdBuff[8] = 0x03; + }else{ + SdBuff[8] = 0x00; + } + + SdBuff[9] = TempCtrl.Temp_dirwind; //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + + SdBuff[10] = EEPROM_CheckSum(SdBuff,0x0A); + + Controller485_SendData(SdBuff,SdLen); +} + + + +/************************************************************************************ + * 函数名称 : Ctrller_AirFun_Processing + * 函数功能 : 查询空调性能命令的回复数据处理 + * 函数输入 : + * RecData : 接收数据 + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_AirFun_Processing(U8_T *RecData, U16_T Len) +{ + if(Len < 12) return 0x01; + + + return 0x00; +} + + +/************************************************************************************ + * 函数名称 : Ctrller_AirState_Processing + * 函数功能 : 查询空调状态的回复数据处理 + * 函数输入 : + * RecData : 接收数据 + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_AirState_Processing(U8_T *RecData, U16_T Len) +{ + if(Len < 13) return 0x01; + + //开关机状态, 0x00:关机, 0x01:开机 + if(RecData[5] <= 0x01){ + TempCtrl.TemState_Now.on_off = RecData[5]; + } + + //空调的设定温度, 16~30 + if( (RecData[6] >= TEM_MIN_SET)&&(RecData[6] <= TEM_MAX_SET) ){ + TempCtrl.TemState_Now.set_t = RecData[6]; + } + + //空调的工作模式, 0x01:制热, 0x02:制冷, 0x04:送风, 0x08:除湿 + if(RecData[7] == 0x01){ + TempCtrl.TemState_Now.mode = MODEL_HOT; + }else if(RecData[7] == 0x02){ + TempCtrl.TemState_Now.mode = MODEL_COLD; + }else if(RecData[7] == 0x04){ + TempCtrl.TemState_Now.mode = MODEL_WIND; + }else{ + TempCtrl.TemState_Now.mode = MODEL_COLD; + } + + //空调的风速, 0x00:自动, 0x01:低风速, 0x02:中风速, 0x03:高风速 + if(RecData[8] == 0x00){ + TempCtrl.TemState_Now.fan = FAN_AUTO; + }else if(RecData[8] == 0x01){ + TempCtrl.TemState_Now.fan = FAN_LOW; + }else if(RecData[8] == 0x02){ + TempCtrl.TemState_Now.fan = FAN_MID; + }else if(RecData[8] == 0x03){ + TempCtrl.TemState_Now.fan = FAN_HIGH; + }else{ + TempCtrl.TemState_Now.fan = FAN_LOW; + } + + //空调的风向值, 0x00:无风向, 0x01:代表风向板位于位置1, ..., 0x07:代表风向板位于位置7, 0xFF:自动摆动 + TempCtrl.Temp_dirwind = RecData[9]; + + //室内温度, 0~40 + if(RecData[10] <= 40){ + TempCtrl.TemState_Now.indoor_t = RecData[10]; + } + + //空调的故障码, + + + TempCtrl.TemState_Ctrller.on_off = TempCtrl.TemState_Now.on_off; + TempCtrl.TemState_Ctrller.set_t = TempCtrl.TemState_Now.set_t; + TempCtrl.TemState_Ctrller.mode = TempCtrl.TemState_Now.mode; + TempCtrl.TemState_Ctrller.fan = TempCtrl.TemState_Now.fan; + TempCtrl.TemState_Ctrller.indoor_t = TempCtrl.TemState_Now.indoor_t; + + return 0x00; +} + + +/************************************************************************************ + * 函数名称 : Ctrller_CtrlAirState_Processing + * 函数功能 : 控制空调状态的回复数据处理 + * 函数输入 : + * RecData : 接收数据 + * Len : 接收数据长度 + * 函数输出 : +**********************************************************************************/ +U8_T Ctrller_CtrlAirState_Processing(U8_T *RecData, U16_T Len) +{ + if(Len < 7) return 0x01; + + if(RecData[5] == 0x00) //控制设定失败 + { + + } + else if(RecData[5] == 0x01) //控制设定成功 + { + TempCtrl.TempCtrllerChange_Flag = 0x00; + TempCtrl.TempCtrller_Cnt = 0x00; + } + + return 0x00; +} + + + +/************************************************************************************ + * 函数名称 : Ctrller_RecData_Processing + * 函数功能 : 接收网关数据 + * 函数输入 : + * RecData : 接收数据缓冲区 + * Len : 接收数据长度 + * 函数输出 : 处理状态 +**********************************************************************************/ +U8_T Ctrller_RecData_Processing(U8_T *RecData, U16_T Len) +{ + if( (Len < 6)||(RecData[1] != Len) ) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Len Err:%d",Len); + return 0x01; + } + + if(RecData[0] != 0xCC) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Head Err"); + return 0x02; + } + + if( (RecData[2] != 0xFF)||(RecData[3] != g_Dip.DIP_addr) ) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"Addr Err:%d, %d",g_Dip.DIP_addr,RecData[3]); + return 0x03; + } + + if(RecData[Len-1] != EEPROM_CheckSum(RecData,(Len-1))) + { + Dbg_Println(DBG_BIT_SYS_STATUS,"SumCRC Err:%d, %d",RecData[5],EEPROM_CheckSum(RecData,(Len-1))); + return 0x04; + } + + switch(RecData[4]) + { + case 0x01: //查询网关连接的空调性能的回复 + Ctrller_AirFun_Processing(RecData,Len); + break; + case 0x02: //查询网关连接的空调状态的回复 + Ctrller_AirState_Processing(RecData,Len); + break; + case 0x03: //控制网关连接的空调状态的回复 + Ctrller_CtrlAirState_Processing(RecData,Len); + break; + case 0x04: //查询网关连接的空调原厂故障代码值的回复 + + break; + default: + + break; + } + + + return 0x00; +} diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/uart.c b/T1_TC_ZH_V01_20251128/Source/SYSTEM/uart.c new file mode 100644 index 0000000..5c6152a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/uart.c @@ -0,0 +1,627 @@ +#include "includes.h" +#include +#include + +/** + * BLV_C8_PB 串口使用情况 + * UART1 用与RCU进行双向通讯 115200 -> 对应设置 416 + * UART0 用于PB数据发送,没有接收 9600 -> 对应设置 5000 + * */ + +UART_t g_uart[3]; +U8_T DealBuffer[USART_BUFFER_SIZE] = {0}; //数据处理缓冲 +U16_T DealLen = 0x00; +MULIT_t m_send; + +void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf) { + switch(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,416,UART_PAR_NONE); //baudrate=sysclock 48M/1000=4800,tx rx int enabled +// UART0_Int_Enable(); + + memset(&g_uart[UART_0],0,sizeof(UART_t)); + + g_uart[UART_0].RecvTimeout = Recv_115200_TimeOut; + g_uart[UART_0].processing_cf = prt_cf; + break; + case UART_1: + 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(); + + memset(&g_uart[UART_1],0,sizeof(UART_t)); + + g_uart[UART_1].RecvTimeout = Recv_9600_TimeOut; + g_uart[UART_1].processing_cf = prt_cf; + + GPIO_Init(GPIOA0,13,Output); + GPIO_DriveStrength_EN(GPIOA0,13); + GPIO_Write_Low(GPIOA0,13); + break; + case UART_2: + memset(&g_uart[UART_2],0,sizeof(UART_t)); + memset(&m_send,0,sizeof(MULIT_t)); + m_send.HighBit_Flag = 0x01; + + g_uart[UART_2].RecvTimeout = Recv_9600_TimeOut; + g_uart[UART_2].processing_cf = prt_cf; + + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + EXI3_Int_Enable(); + + + 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 + UART2_Int_Enable(); + + GPIO_Init(GPIOB0,3,Output); + GPIO_DriveStrength_EN(GPIOB0,3); + GPIO_Write_Low(GPIOB0,3); + break; + } +} + + +/******************************************************************************* +* Function Name : UART0_RecvINT_Processing +* Description : 串口0 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART0_RecvINT_Processing(char data){ + if((g_uart[UART_0].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen++] = (U8_T)data; + + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + g_uart[UART_0].Receiving = 0x01; +} + + +void UART0_TASK(void){ + if(g_uart[UART_0].Receiving == 0x01){ + if(SysTick_1ms - g_uart[UART_0].RecvIdleTiming > g_uart[UART_0].RecvTimeout){ + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + + Dbg_Println(DBG_BIT_SYS_STATUS, "UART0 recv Len %d", g_uart[UART_0].RecvLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART0 buff",g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); + + if(g_uart[UART_0].processing_cf != NULL){ + g_uart[UART_0].processing_cf(g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); + } + + g_uart[UART_0].RecvLen = 0; + g_uart[UART_0].Receiving = 0; + } + } +} + + + +/******************************************************************************* +* Function Name : UART1_RecvINT_Processing +* Description : 串口1 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART1_RecvINT_Processing(char data){ + if((g_uart[UART_1].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_1].RecvLen = 0; + g_uart[UART_1].RecvBuffer[g_uart[UART_1].RecvLen++] = (U8_T)data; + + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + g_uart[UART_1].Receiving = 0x01; +} + + +void UART1_TASK(void){ + U8_T rev = 0xFF; + if(g_uart[UART_1].Receiving == 0x01){ + if(SysTick_1ms - g_uart[UART_1].RecvIdleTiming > g_uart[UART_1].RecvTimeout){ + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + g_uart[UART_1].RecvIdleTiming = SysTick_1ms; + memcpy(DealBuffer,g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen); + DealLen = g_uart[UART_1].RecvLen; + g_uart[UART_1].RecvLen = 0; + g_uart[UART_1].Receiving = 0; + SYSCON_Int_Enable(); + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART1 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART1 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_1].processing_cf != NULL){ + rev = g_uart[UART_1].processing_cf(DealBuffer,DealLen); + } + + memset(DealBuffer,0,USART_BUFFER_SIZE); + } + } +} + +/******************************************************************************* +* Function Name : UART2_RecvINT_Processing +* Description : 串口2 接收中断处理函数 - 接收中断调用 +*******************************************************************************/ +void UART2_RecvINT_Processing(char data){ + if((g_uart[UART_2].RecvLen + 1) >= USART_BUFFER_SIZE) g_uart[UART_2].RecvLen = 0; + g_uart[UART_2].RecvBuffer[g_uart[UART_2].RecvLen++] = (U8_T)data; + + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + g_uart[UART_2].Receiving = 0x01; +} + + +void UART2_TASK(void){ + U8_T rev = 0xFF; + if(g_uart[UART_2].Receiving == 0x01){ + if(SysTick_1ms - g_uart[UART_2].RecvIdleTiming > g_uart[UART_2].RecvTimeout){ + + SYSCON_Int_Disable(); //2025-03-19,复制接收缓冲到数据处理缓冲内 + g_uart[UART_2].RecvIdleTiming = SysTick_1ms; + memcpy(DealBuffer,g_uart[UART_2].RecvBuffer,g_uart[UART_2].RecvLen); + DealLen = g_uart[UART_2].RecvLen; + g_uart[UART_2].RecvLen = 0; + g_uart[UART_2].Receiving = 0; + SYSCON_Int_Enable(); + + +#if DBG_LOG_EN + Dbg_Println(DBG_BIT_SYS_STATUS, "UART2 recv Len %d", DealLen); + Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"UART2 buff",DealBuffer,DealLen); +#endif + if(g_uart[UART_2].processing_cf != NULL){ + rev = g_uart[UART_2].processing_cf(DealBuffer,DealLen); + } + + +// /*Boot处理函数 */ +// if(rev != 0x00) +// { +// Boot_Comm_UpgradeProcess(DealBuffer,DealLen); +// } + + + memset(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; +volatile int RS485_Comm_Flag1 = 0,RS485_Comm_Start1 = 0,RS485_Comm_End1 = 0,RS485_Comming1 = 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; + } + + GPIO_Reverse(GPIOB0,3); + } + + delay_nus(500); + + CK_CPU_DisAllNormalIrq(); + GPIO_Write_High(GPIOB0,3); + + RS485_Comm_Flag = 0x01; + RS485_Comm_Start = 0x00; + RS485_Comm_End = 0x00; + CK_CPU_EnAllNormalIrq(); + + UARTTransmit(UART2,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(); + GPIO_Write_Low(GPIOB0,3); + + RS485_Comm_Flag = 0x00; + CK_CPU_EnAllNormalIrq(); +} + +//发送给设备端的485发送函数 +void Controller485_SendData(U8_T *buff,U16_T len) +{ + unsigned int Dataval = 0,delay_cnt = 0; + + //等待通讯发送完成 + while(RS485_Comming1 == 0x01){ + delay_nus(100); + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + GPIO_Reverse(GPIOA0,13); + } + + delay_nus(500); + + CK_CPU_DisAllNormalIrq(); + GPIO_Write_High(GPIOA0,13); + + RS485_Comm_Flag1 = 0x01; + RS485_Comm_Start1 = 0x00; + RS485_Comm_End1 = 0x00; + CK_CPU_EnAllNormalIrq(); + + UARTTransmit(UART1,buff,len); + + do{ + delay_nus(100); + + delay_cnt ++; + if(delay_cnt >= 100){ + break; + } + + }while((RS485_Comm_Start1 < len) || (RS485_Comm_End1 < len)); //发送完成 + + CK_CPU_DisAllNormalIrq(); + GPIO_Write_Low(GPIOA0,13); + + RS485_Comm_Flag1 = 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; + } + GPIO_Reverse(GPIOB0,3); + } + + if(m_send.BusState_Flag == UART_BUSIDLE){ //总线空闲 + + CK_CPU_DisAllNormalIrq(); + + GPIO_Write_High(GPIOB0,3); + + 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(UART2,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(); + + GPIO_Write_Low(GPIOB0,3); + 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++; + Dbg_Println(DBG_BIT_SYS_STATUS,"SendCnt:%d success",m_send.ResendCnt); + return BUSSEND_SUCC;//数据发送成功 + } + } + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"data end"); + return DATA_END;//数据有效期结束 + } + }else{ + Dbg_Println(DBG_BIT_SYS_STATUS,"retry end,%d",m_send.ResendCnt ); + 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_SYS_STATUS,"send end"); + + m_send.ASend_Flag = 0x00; //清除发生标志位 + + /*设置波特率*/ +// if( m_send.SetBaudFlag == 0x01 ){ +// +// UARTx_ChangeBaud(UART_2,m_send.SetBaud); +// m_send.SetBaudFlag = 0x00; +// m_send.SetBaud = 0x00; +// } + +// if(m_send.Jump_Flag == 0x01){ +// Dbg_Println(DBG_BIT_Debug_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_RXLEVEL_STATE == 0x01){ + m_send.HighBit_Flag = 0x01; //高电平标志置位 + }else if(READ_RXLEVEL_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); + +#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 +} + + + + + + + + diff --git a/T1_TC_ZH_V01_20251128/Source/SYSTEM/uart_protocol.c b/T1_TC_ZH_V01_20251128/Source/SYSTEM/uart_protocol.c new file mode 100644 index 0000000..a775b67 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/SYSTEM/uart_protocol.c @@ -0,0 +1,453 @@ +#include "includes.h" + + +/*两字节CRC校验 +*len包括校验的长度 +*/ +void NetCRC16_Check(U8_T *aStr ,U16_T len) +{ + U16_T alen = len-2; //CRC16??????? + U16_T xda , xdapoly ; //校验后的结果,多项式 + U16_T i,j, xdabit ; //缓存变量 + + if(len < 3) //长度小于3 + { + return ; //直接返回 + } + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + } + } + aStr[alen] = (U8_T)(xda & 0xFF) ; + aStr[alen+1] = (U8_T)(xda>>8) ; +} + + + +/** @name CRC16校验得到 +* @para +* aStr 数组首地址 +* len 数组长度,不包括校验 +*/ +U16_T GetCRC16( 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; +} + +/*和校验*/ +U8_T SOR_CRC(U8_T *Data, U8_T DataLen) +{ + U8_T i; + U8_T sor_data = 0; + + for(i = 0; i < DataLen; i++)//i可能为0 ,也可以是1 + { + sor_data = sor_data+Data[i]; + } + return sor_data; +} + +/*主动回复组包报文*/ +void Rs485_ASend(U32_T valtim) +{ + if(g_eeprom.dev_port != ACTIVE_PORT) return; + + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + SendData[1] = 0x55; + SendData[2] = 0xee; + SendData[3] = 0x15; + + SendData[4] = 0x03; //类型 + SendData[5] = g_Dip.DIP_addr; + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { + SendData[9] = 0x01; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; //Func3 模式低字节 1制冷 2制热 3通风 + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; //Func3 模式低字节 1制冷 2制热 3通风 + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + switch(TempCtrl.TemState_Now.fan) + { + case FAN_LOW: //低速 + SendData[13] = 0x03; + break; + case FAN_MID: + SendData[13] = 0x02; + break; + case FAN_HIGH: + //SendData[13] = 0x04 - TempCtrl.TemState_Now.fan; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + SendData[13] = 0x01; + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + break; + } + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + + Set_GroupSend(SendData,24,BUSSend_Cnt,valtim,300); + +} + + +/*轮询回复报文*/ +void Rs485AskCycleSend(void) +{ + U8_T SendData[24]; //24个字节 + SendData[0] = 0x55; + SendData[1] = 0x55; + SendData[2] = 0xee; + SendData[3] = 0x15; + + SendData[4] = 0x03; //类型 + SendData[5] = g_Dip.DIP_addr; + + SendData[6] = 0x00; //Func0 温控器高字节,通常为0 + SendData[7] = TempCtrl.TemState_Now.on_off; //Func1 温控器低字节,0关 1开 + + SendData[8] = 0x00; //Func2 模式高字节 通常为0 + if (TempCtrl.TemState_Now.mode == MODEL_COLD) { //Func3 模式低字节 1制冷 2制热 3通风 + SendData[9] = 0x01; + }else if (TempCtrl.TemState_Now.mode == MODEL_HOT) { + SendData[9] = 0x02; + }else if (TempCtrl.TemState_Now.mode == MODEL_WIND) { + SendData[9] = 0x03; + } + + SendData[10] = TEMTEMPCONVER(TempCtrl.TemState_Now.set_t); //Func4 设定温度值高字节 整数值 + SendData[11] = 0x00; //Func5 设定温度值低字节 小数值 ,没有就给0 + + SendData[12] = 0x04 - TempCtrl.TemState_Now.fan; //Func6 风速高字节 为0 + switch(TempCtrl.TemState_Now.fan) + { + case FAN_LOW: //低速 + SendData[13] = 0x03; //Func7 温控器风速低字节:1 高速,2 中速,3 低速,0 自动,4 停 + break; + case FAN_MID: + SendData[13] = 0x02; + break; + case FAN_HIGH: + SendData[13] = 0x01; + break; + case FAN_AUTO: + SendData[13] = 0x00; // + break; + default: + SendData[13] = 0x04; // + break; + } + + SendData[14] = 0x00; //Func8 温控器机器型号高字节 + SendData[15] = 0x00; //Func9 温控器机器型号低字节 + + SendData[16] = TempCtrl.TemState_Now.valve<<3; //Func10 第3位作为阀开阀关标志位 + SendData[17] = 0x00; //Func11 备用字节1 + SendData[18] = 0x00; //Func12 备用字节2 + SendData[19] = 0x00; //Func13 备用字节3 + + SendData[20] = TEMTEMPCONVER(TempCtrl.TemState_Now.indoor_t); //Func14 室内温度整数值 + SendData[21] = 0x00; //Func15 室内温度小数值 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + + Set_GroupSend(SendData,24,1,BUSSend_ValidTime3,20); //组包 + +} + + +/*控制回复报文*/ +void Rs485AskCtrlSend(U8_T* Recdata) +{ + U8_T SendData[10]; + + SendData[0] = 0x55; + SendData[1] = 0x55; + SendData[2] = 0xee; //头 + + SendData[3] = 0x07; //长度 + SendData[4] = 0x03; //类型 + SendData[5] = g_Dip.DIP_addr; + SendData[6] = Recdata[6];//Rs485Tem.AskModeState; //类型 + SendData[7] = Recdata[7];//0x01; //内容 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + + Set_GroupSend(SendData,10,1,BUSSend_ValidTime3,20); //组包 + +} + + +/*控制回复报文cmd:0x10*/ +void Rs485AskReadSend(U8_T* Recdata) +{ + U8_T SendData[11]; + + SendData[0] = 0x55; + SendData[1] = 0x55; + SendData[2] = 0xee; //头 + + SendData[3] = 0x09; //长度 + SendData[4] = 0x03; //类型 + SendData[5] = g_Dip.DIP_addr; + SendData[6] = Recdata[6]; + SendData[7] = Project_FW_Version; + SendData[8] = Project_HW_Version; + SendData[9] = g_eeprom.dev_port; //所处RCU端口 2024-12-16 + + NetCRC16_Check(&SendData[0+3], SendData[0+3]); //校验 + + Set_GroupSend(SendData,12,1,BUSSend_ValidTime3,20); //组包 +} + +/*设置端口回复报文cmd:0x12*/ +void Rs485_DevPort_ACK(U8_T* Recdata,U8_T Lens) +{ + Set_GroupSend(Recdata,Lens,1,BUSSend_ValidTime3,20); //组包 +} + +U8_T Temp_Rec_Analysis(U8_T *RecData, U16_T Len) +{ + U8_T ret = 0; + U16_T Crc_buf; //正确报文校验保存 + + if((0x09 != Len) && (0x0A != Len)) + { + return 0x01; + } + + if((0x55 != RecData[0]) || (0x55 != RecData[1])|| (0xee != RecData[2]) ) + { + return 0x02; + } + if( (RecData[3] + 3 != Len) || (Tem_Type != RecData[4]) || (g_Dip.DIP_addr != RecData[5]) ) + { + return 0x03; + } + + Crc_buf = GetCRC16(&RecData[3], RecData[3]-2); + if(Crc_buf == (RecData[Len-2]+(RecData[Len-1]<<8))) //校验通过 + { + switch(RecData[6]) + { + case 0x0A: + if(g_eeprom.dev_port == ACTIVE_PORT) + { + Clear_SendFlag(); + } + else if(g_eeprom.dev_port == POLLING_PORT) + { + Rs485AskCycleSend(); + } + break; //轮询温控器 + case 0x01: //开关机 + case 0x02: //模式 + case 0x03: //温度 + case 0x04: //风速 + Rs485AskCtrlSend(RecData); + break; + case 0x10: + Rs485AskReadSend(RecData); //版本号查询 + + break; + case 0x11: //设置插卡状态同步功能开启/关闭 + Rs485AskCtrlSend(RecData); + Dbg_Println(DBG_BIT_SYS_STATUS,"Card_EN Set:%d",TempCtrl.CardEn); + if(TempCtrl.CardEn != RecData[7]) //00:关闭 01:开启 + { + TempCtrl.CardEn = RecData[7]; + if(TempCtrl.CardEn == 0x00) + { + TempCtrl.CardState = 0x01; + } + } + break; + case 0x12: //设置端口 2024-12-16 + if(RecData[7] != g_eeprom.dev_port) + { + U8_T rev_val = 0; + + g_eeprom.dev_port = RecData[7]; + EEPROM_WriteParaInfo(&g_eeprom); + + rev_val = EEPROM_ReadParaInfo(&g_eeprom); + if(rev_val == 0x00){ + //写入数据成功 + Rs485_DevPort_ACK(RecData,Len); + } + + } + break; + } + + + switch(RecData[6]) + { + case 0x01: //开关机命令 + switch(RecData[7]) + { + case 0x00: + TempCtrl.TemState_Now.on_off = TEMP_OFF; //关机 + break; + case 0x01: + TempCtrl.TemState_Now.on_off = TEMP_ON; //开机 + break; + default: + break; //报文有误 + } + break; + case 0x02: //模式命令 + switch(RecData[7]) // + { + case 0x01: + TempCtrl.TemState_Now.mode = MODEL_COLD; //制冷 + break; + case 0x02: + TempCtrl.TemState_Now.mode = MODEL_HOT; //制热 + break; + case 0x03: + TempCtrl.TemState_Now.mode = MODEL_WIND; //送风 + break; + default: + break; + } + break; + case 0x03: //设置温度命令 + if((TEM_MIN_SET <= RecData[7]) && (RecData[7] < TEM_MAX_SET)) //在指定温度范围内 + { + TempCtrl.TemState_Now.set_t = (RecData[7]&0x1f); + }else if(RecData[7] == TEM_MAX_SET){ + TempCtrl.TemState_Now.set_t = (RecData[7]&0x20); + } + break; + case 0x04: //风速 + switch(RecData[7]) //风速 + { + case 0x00: + TempCtrl.TemState_Now.fan = FAN_AUTO; //自动风 + break; + case 0x01: + TempCtrl.TemState_Now.fan = FAN_HIGH; //高风速 + break; + case 0x02: + TempCtrl.TemState_Now.fan = FAN_MID; //中风速 + break; + case 0x03: + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + break; + default: + TempCtrl.TemState_Now.fan = FAN_LOW; //低风速 + break; + } + break; + } + + return ret; + + } + else + { + return ret = 0x01; + } +} + +/************************************************************************** + * 函数名:Tem_Rs485_Rec_Pro + * 描述 :温控器接收处理函数 + * 输入 : + * RecData 接收数据 + * Len 数据长度 + * 输出 :无 + * 调用 :无 + *************************************************************************/ +U8_T Tem_Rs485_Rec_Pro(U8_T *RecData, U16_T Len) +{ + U8_T ret = 0x00; + if(Temp_Rec_Analysis(RecData,Len) != 0x00) + { + if (Len < 5){ //长度校验 + return ret = 1; + } + + if(RecData[0] != 0xFF && RecData[1] != 0x08) + { + return ret = 1; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"Tem_Rs485_Rec_Pro"); + + if(Len == 0x05 && RecData[4]==SOR_CRC(RecData,4)) //长度为5的旧版协议广播数据 + { + if(TempCtrl.CardState != RecData[2] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 + { + TempCtrl.CardState = RecData[2]; + TempCtrl.CardFlag = 0x01; + } + } + else if((Len >= 0x0A) && (GetCRC16(RecData, (Len-2)) == (RecData[Len-2]+(RecData[Len-1]<<8)))) //长度不固定的新版协议广播数据 + { + if(TempCtrl.CardState != RecData[3] && TempCtrl.CardEn == 0x01) //启用了插卡状态功能 2024-04-17 修正判断条件1错误导致定期亮屏问题 + { + TempCtrl.CardState = RecData[3]; + TempCtrl.CardFlag = 0x01; + } + + if(TempCtrl.SceneNo != RecData[7]) + { + TempCtrl.SceneNo = RecData[7]; + TempCtrl.SceneNoTick = SysTick_1ms; + TempCtrl.SceneFlag = 0x01; + } + + Dbg_Println(DBG_BIT_SYS_STATUS,"SceneNo:%d",TempCtrl.SceneNo); + } + else + { + return ret = 1; + } + } + + return ret; +} \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/arch/apt32f102_iostring.c b/T1_TC_ZH_V01_20251128/Source/arch/apt32f102_iostring.c new file mode 100644 index 0000000..71147a1 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/arch/apt32f102a.svc b/T1_TC_ZH_V01_20251128/Source/arch/apt32f102a.svc new file mode 100644 index 0000000..e6d8764 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/arch/apt32f102a.svc @@ -0,0 +1,3453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/arch/crt0.S b/T1_TC_ZH_V01_20251128/Source/arch/crt0.S new file mode 100644 index 0000000..cc28c85 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/arch/mem_init.c b/T1_TC_ZH_V01_20251128/Source/arch/mem_init.c new file mode 100644 index 0000000..d9d8c00 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/cdkws.mk b/T1_TC_ZH_V01_20251128/Source/cdkws.mk new file mode 100644 index 0000000..c897709 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/ckcpu.ld b/T1_TC_ZH_V01_20251128/Source/ckcpu.ld new file mode 100644 index 0000000..69c30de --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/ckcpu.ld @@ -0,0 +1,58 @@ +MEMORY +{ +ROM(RX) : ORIGIN = 0x00000000, LENGTH = 64K +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/T1_TC_ZH_V01_20251128/Source/doc/APT32F102_Lib_Fix_Log.md b/T1_TC_ZH_V01_20251128/Source/doc/APT32F102_Lib_Fix_Log.md new file mode 100644 index 0000000..f4df6c0 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/doc/APT32F102_TKLib_Version.md b/T1_TC_ZH_V01_20251128/Source/doc/APT32F102_TKLib_Version.md new file mode 100644 index 0000000..0c108e4 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/drivers/apt32f102.c b/T1_TC_ZH_V01_20251128/Source/drivers/apt32f102.c new file mode 100644 index 0000000..0eb4720 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/drivers/apt32f102_ck801.c b/T1_TC_ZH_V01_20251128/Source/drivers/apt32f102_ck801.c new file mode 100644 index 0000000..3cf5be2 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102.h new file mode 100644 index 0000000..05a3ad0 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_adc.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_adc.h new file mode 100644 index 0000000..97896bf --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_bt.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_bt.h new file mode 100644 index 0000000..cb203fc --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_ck801.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_ck801.h new file mode 100644 index 0000000..1d99c9e --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_clkcalib.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_clkcalib.h new file mode 100644 index 0000000..17bfa98 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_coret.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_coret.h new file mode 100644 index 0000000..190130e --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_countera.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_countera.h new file mode 100644 index 0000000..6492c35 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_crc.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_crc.h new file mode 100644 index 0000000..8516a64 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_ept.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_ept.h new file mode 100644 index 0000000..d172a14 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_et.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_et.h new file mode 100644 index 0000000..8c66ee3 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_gpio.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_gpio.h new file mode 100644 index 0000000..5e6994a --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_gpt.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_gpt.h new file mode 100644 index 0000000..ad6a874 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_hwdiv.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_hwdiv.h new file mode 100644 index 0000000..821f6d9 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_i2c.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_i2c.h new file mode 100644 index 0000000..474e5a1 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_lpt.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_lpt.h new file mode 100644 index 0000000..7226993 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_rtc.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_rtc.h new file mode 100644 index 0000000..746da50 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_sio.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_sio.h new file mode 100644 index 0000000..e090013 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_spi.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_spi.h new file mode 100644 index 0000000..0829ccd --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_syscon.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_syscon.h new file mode 100644 index 0000000..f023b74 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_tkey.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_tkey.h new file mode 100644 index 0000000..bf1cf36 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_uart.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_uart.h new file mode 100644 index 0000000..03502ad --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/include/apt32f102_wwdt.h b/T1_TC_ZH_V01_20251128/Source/include/apt32f102_wwdt.h new file mode 100644 index 0000000..3afc329 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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/T1_TC_ZH_V01_20251128/Source/includes.h b/T1_TC_ZH_V01_20251128/Source/includes.h new file mode 100644 index 0000000..53113b1 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/includes.h @@ -0,0 +1,60 @@ +#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 "eeprom.h" +#include "tempctrl_unit.h" +#include "uart_protocol.h" +#include "Bootload_fun.h" +#include "dip_switch.h" + +/*工程名称及软件版本号 + 此定义在每个工程中必须定义,用于识别当前工程对应的机型 + Boot中会通过读取EEPROM中保存的设备信息来判断当前是什么机型 + 如果EEPROM 中没有保存设备信息,那么当前就是Boot程序,设备地址为0x00,设备类型为0x00 +*/ +#define Project_Area 0x02 //工程所处区域为APP区域 0x01:Boot区域;0x02:APP区域 +#define Peoject_Name "T1_TC_ZH" //工程名称 +#define Project_FW_Version 0x01 //工程对应的软件版本号 +#define Project_Type 0x07 //工程对应的设备类型 Boot默认设备类型 + +#define Project_HW_Version 0x02 //软件对应的硬件版本号 + + +extern volatile U32_T SysTick_100us; +extern volatile U32_T SysTick_1ms; + + +extern volatile unsigned int Sys_RSR; +extern volatile unsigned int Sav_Temp; + + +#endif diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102ClkCalib_1_03.a b/T1_TC_ZH_V01_20251128/Source/lib_102ClkCalib_1_03.a new file mode 100644 index 0000000..fe1f46c Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102ClkCalib_1_03.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15.a b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15.a new file mode 100644 index 0000000..c4b7504 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15C.a b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15C.a new file mode 100644 index 0000000..78b7518 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15C.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15M.a b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15M.a new file mode 100644 index 0000000..d442d99 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15M.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15MC.a b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15MC.a new file mode 100644 index 0000000..bb55e43 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_1_15MC.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102TKey_c_1_16P0.a b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_c_1_16P0.a new file mode 100644 index 0000000..4f1cc58 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_c_1_16P0.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/lib_102TKey_f_1_18B_240629.a b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_f_1_18B_240629.a new file mode 100644 index 0000000..d70d5c1 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Source/lib_102TKey_f_1_18B_240629.a differ diff --git a/T1_TC_ZH_V01_20251128/Source/main.c b/T1_TC_ZH_V01_20251128/Source/main.c new file mode 100644 index 0000000..e853015 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/main.c @@ -0,0 +1,35 @@ +#include "includes.h" + + +extern void delay_nms(unsigned int t); +extern void APT32F102_init(void); + +volatile unsigned int Sys_RSR = 0; +volatile unsigned int Sav_Temp = 0; +/***************************************************/ +//main +/**************************************************/ +int main(void) +{ +// delay_nms(20000); + APT32F102_init(); //102 initial + + Dbg_Println(DBG_BIT_SYS_STATUS,"MCU Start! %d",g_Dip.DIP_addr); + + while(1) + { + SYSCON_IWDCNT_Reload(); //IWDT Clear + + UART1_TASK(); + + UART2_TASK(); + + DIP_ScanTask(); + + TemCtrl_Pro(); + + DisPlay_Task(); + + BUS485Send_Task(); + } +} diff --git a/T1_TC_ZH_V01_20251128/Source/mcu_initial.c b/T1_TC_ZH_V01_20251128/Source/mcu_initial.c new file mode 100644 index 0000000..80e13ce --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/mcu_initial.c @@ -0,0 +1,331 @@ +#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) +{ + //2025-03-29,串口2的RX管脚外部中断,用于通讯总线繁忙判断。 + GPIO_PullHigh_Init(GPIOB0,5); //RX,PB0.5 + + GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.2 + GPIOB0_EXI_Init(EXI5); //PB0.2 as input + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge,下降沿触发 + EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //上升沿触发 + EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI + GPIO_EXTI_interrupt(GPIOB0,0b0000000000100000); //enable GPIOB02 as EXI + EXI3_Int_Enable(); + +// GPIO_PullHigh_Init(GPIOB0,5); +////------------ EXI FUNTION --------------------------------/ +////EXI0_INT= EXI0/EXI16,EXI1_INT= EXI1/EXI17, EXI2_INT=EXI2~EXI3/EXI18/EXI19, EXI3_INT=EXI4~EXI9, EXI4_INT=EXI10~EXI15 +// GPIO_IntGroup_Set(PB0,5,Selete_EXI_PIN5); //EXI0 set PB0.5 +// GPIOB0_EXI_Init(EXI5); //PB0.5 as input +// EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIFT); //ENABLE falling edge +// EXTI_trigger_CMD(ENABLE,EXI_PIN5,_EXIRT); //ENABLE falling edge +// EXTI_interrupt_CMD(ENABLE,EXI_PIN5); //enable EXI +// GPIO_EXTI_interrupt(GPIOB0,0b00000000100000); //enable GPIOB05 as EXI +// EXI3_Int_Enable(); //EXI2~EXI3 INT Vector + + //GPIO初始化 +// GPIO_Init(GPIOB0,3,0); //PB0.4 set as output +// +// GPIO_DriveStrength_EN(GPIOB0,3); +// +// GPIO_Write_High(GPIOB0,3); //上电默认为高电平 + +} + +/*************************************************************/ +//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_PB00); //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,0,3000,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(); + +} + +/*************************************************************/ +//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) +{ + Sys_RSR = 0x00000000; + Sys_RSR = SYSCON->RSR; //读取复位源 2024-03-15 + + Sav_Temp = 0x00000000; + Sav_Temp = SYSCON->UREG0; //读取保存的温控数据 2024-03-15 +//------------------------------------------------------------/ +//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(UART2_IRQ,1); //串口优先级最高 + Set_INT_Priority(UART1_IRQ,1); //串口优先级最高 + Set_INT_Priority(EXI3_IRQ, 1); //总线繁忙判断外部IO中断 + + GPIO_DeInit(); //复位所有IO,bootload中初始化了所有IO +//------------------------------------------------------------/ +//Other IP config +//------------------------------------------------------------/ + BT_CONFIG(); //BT initial + + UARTx_Init(UART_2,Tem_Rs485_Rec_Pro); //通讯串口 + UARTx_Init(UART_1,Ctrller_RecData_Processing); //通讯串口 + + EEPROM_Init(); + + DIP_Switch_Init(); + + TemCtrl_Init(); + +} + +/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/ \ No newline at end of file diff --git a/T1_TC_ZH_V01_20251128/Source/mcu_interrupt.c b/T1_TC_ZH_V01_20251128/Source/mcu_interrupt.c new file mode 100644 index 0000000..101ac3b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Source/mcu_interrupt.c @@ -0,0 +1,1016 @@ +#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_Comming1 = 0x01; + + if(RS485_Comm_Flag1 == 0x01){ + RS485_Comm_Start1 ++; + } + } + 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_Comming1 = 0x00; + if(RS485_Comm_Flag1 == 0x01){ + RS485_Comm_End1 ++; + } + + } +} +/*************************************************************/ +//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; + + RS485_Comming = 0x01; + + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_Start ++; + } + } + 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; + + RS485_Comming = 0x00; + if(RS485_Comm_Flag == 0x01){ + RS485_Comm_End ++; + } + + } + +} +/*************************************************************/ +//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; + + + + //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; +// RLY_State_Multi_Control(); + } + 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; + + //2025-03-24,总线繁忙判断 + + BusBusy_Task(); + + } + 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; + } +} +/*************************************************************/ +//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/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.session b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.session new file mode 100644 index 0000000..ed59b42 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.session @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.tags b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.tags new file mode 100644 index 0000000..6755c29 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/APT32F102x_StdPeriph_Lib.tags differ diff --git a/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/refactoring.db b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/refactoring.db new file mode 100644 index 0000000..602adc9 Binary files /dev/null and b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/.cdk/refactoring.db differ diff --git a/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/APT32F102x_StdPeriph_Lib.cdkws b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/APT32F102x_StdPeriph_Lib.cdkws new file mode 100644 index 0000000..9af6a88 --- /dev/null +++ b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/APT32F102x_StdPeriph_Lib.cdkws @@ -0,0 +1,11 @@ + + + $(CDKWS)\__workspace_pack__ + + + + + + + + diff --git a/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/cdkws.mk b/T1_TC_ZH_V01_20251128/Workspace/APT32F102x_StdPeriph_Lib/cdkws.mk new file mode 100644 index 0000000..f0f7a3b --- /dev/null +++ b/T1_TC_ZH_V01_20251128/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 ]----------" +